{# Datepicker Macros ================= Date and time picker components using Flatpickr with Alpine.js integration. Prerequisites: Add Flatpickr CDN to your base template: Usage: {% from 'shared/macros/datepicker.html' import datepicker, daterange_picker, datetime_picker %} {# Basic date picker #} {{ datepicker('startDate', 'formData.startDate', label='Start Date') }} {# Date range picker #} {{ daterange_picker('dateRange', 'formData.dateRange', label='Date Range') }} {# Date and time picker #} {{ datetime_picker('scheduledAt', 'formData.scheduledAt', label='Schedule') }} #} {# Datepicker ========== A single date picker input. Parameters: - id: Unique ID for the input - x_model: Alpine.js x-model binding - label: Input label (optional) - placeholder: Placeholder text (default: 'Select date') - format: Date format (default: 'Y-m-d') - min_date: Minimum selectable date (default: none) - max_date: Maximum selectable date (default: none) - disabled: Alpine.js expression for disabled state - required: Whether the field is required - error: Alpine.js expression for error message - class_extra: Additional CSS classes #} {% macro datepicker(id, x_model, label=none, placeholder='Select date', format='Y-m-d', min_date=none, max_date=none, disabled=none, required=false, error=none, class_extra='') %}