{% comment %} Confirmation Modal Component ============================ Pre-styled confirmation dialog for destructive or important actions. Purpose: Provides a standardized confirmation dialog with customizable title, message, and action buttons. Usage Examples: Basic confirmation:
{% include 'components/modals/modal_confirm.html' with modal_id='delete-confirm' show_var='showDeleteModal' title='Delete Park' message='Are you sure you want to delete this park? This action cannot be undone.' confirm_text='Delete' confirm_variant='destructive' %}
With icon: {% include 'components/modals/modal_confirm.html' with modal_id='publish-confirm' show_var='showPublishModal' title='Publish Changes' message='This will make your changes visible to all users.' icon='fas fa-globe' icon_variant='info' confirm_text='Publish' %} With HTMX: {% include 'components/modals/modal_confirm.html' with modal_id='archive-confirm' show_var='showArchiveModal' title='Archive Item' message='This will archive the item.' confirm_hx_post='/api/archive/123/' %} Parameters: Required: - modal_id: Unique identifier for the modal - show_var: Alpine.js variable name for show/hide state - title: Modal title - message: Confirmation message Optional: - icon: Icon class (default: auto based on variant) - icon_variant: 'destructive', 'warning', 'info', 'success' (default: 'warning') - confirm_text: Confirm button text (default: 'Confirm') - confirm_variant: 'destructive', 'primary', 'warning' (default: 'primary') - cancel_text: Cancel button text (default: 'Cancel') - confirm_url: URL for confirm action (makes it a link) - confirm_hx_post: HTMX post URL for confirm action - confirm_hx_delete: HTMX delete URL for confirm action - on_confirm: Alpine.js expression to run on confirm Dependencies: - modal_base.html component - Tailwind CSS - Alpine.js - HTMX (optional) {% endcomment %} {% with icon_variant=icon_variant|default:'warning' confirm_variant=confirm_variant|default:'primary' confirm_text=confirm_text|default:'Confirm' cancel_text=cancel_text|default:'Cancel' %} {# Determine icon based on variant if not specified #} {% with default_icon=icon|default:'fas fa-exclamation-triangle' %} {% endwith %} {% endwith %}