@props([ 'name' => $attributes->whereStartsWith('wire:model')->first(), 'selectableHeader' => null, 'withConfirmation' => null, 'weekNumbers' => null, 'placeholder' => null, 'withPresets' => null, 'withInputs' => null, 'clearable' => null, 'withToday' => null, 'presets' => null, 'trigger' => null, 'invalid' => null, 'months' => null, 'size' => null, 'mode' => null, ]) @php // Support adding the .self modifier to the wire:model directive... if (($wireModel = $attributes->wire('model')) && $wireModel->directive && ! $wireModel->hasModifier('self')) { unset($attributes[$wireModel->directive]); $wireModel->directive .= '.self'; $attributes = $attributes->merge([$wireModel->directive => $wireModel->value]); } $months = $months ?? ($mode === 'range' ? 2 : 1); $range = $mode === 'range'; $placeholder = $placeholder ?? ($range ? __('Select a date range') : __('Select a date')); // Mark it invalid if the property or any of it's nested attributes have errors... $invalid ??= ($name && ($errors->has($name) || $errors->has($name . '.*'))); $class= Flux::classes() ->add('block min-w-0') // The below reverts styles added by Tailwind Forms plugin... ->add('border-0 p-0 bg-transparent') ; $sizeClasses = match ($size) { '2xl' => $weekNumbers ? 'size-11 sm:size-14' : 'size-12 sm:size-12', 'xl' => $weekNumbers ? 'size-11 sm:size-12' : 'size-12 sm:size-12', 'lg' => $weekNumbers ? 'size-10 sm:size-11' : 'size-11 sm:size-11', default => $weekNumbers ? 'size-10 sm:size-10' : 'size-11 sm:size-10', 'sm' => $weekNumbers ? 'size-10 sm:size-9' : 'size-11 sm:size-9', }; if ($withPresets) { $presets = $presets ?? 'today yesterday thisWeek last7Days thisMonth yearToDate allTime'; } $presetArrayOfStrings = (string) is_string($presets) ? explode(' ', $presets) : []; $presetArray = array_map(function ($preset) { return Flux\DateRangePreset::from($preset); }, $presetArrayOfStrings); @endphp class($class) }} data-flux-control data-flux-date-picker @if ($mode) mode="{{ $mode }}" @endif months="1" sm:months="{{ $months }}" >