{{-- Premium Opening Hours Component A beautiful day-by-day schedule editor with open/closed toggles and time pickers. Inspired by modern UI patterns with smooth transitions and elegant design. Usage in DataDefinition: 'opening_hours' => [ 'text' => trans('common.opening_hours'), 'type' => 'opening_hours', 'help' => trans('common.opening_hours_help'), 'default' => [ 'monday' => ['open' => '09:00', 'close' => '17:00', 'closed' => false], ... ], 'validate' => ['nullable', 'array'], 'actions' => ['edit', 'view'], ], --}} @props([ 'name' => 'opening_hours', 'value' => [], 'label' => null, 'help' => null, 'required' => false, 'class' => '', ]) @php // Default hours structure for all days $defaultHours = [ 'monday' => ['open' => '09:00', 'close' => '17:00', 'closed' => false], 'tuesday' => ['open' => '09:00', 'close' => '17:00', 'closed' => false], 'wednesday' => ['open' => '09:00', 'close' => '17:00', 'closed' => false], 'thursday' => ['open' => '09:00', 'close' => '17:00', 'closed' => false], 'friday' => ['open' => '09:00', 'close' => '17:00', 'closed' => false], 'saturday' => ['open' => '10:00', 'close' => '16:00', 'closed' => false], 'sunday' => ['open' => '10:00', 'close' => '16:00', 'closed' => true], ]; // Merge provided value with defaults $hours = is_array($value) ? array_merge($defaultHours, $value) : $defaultHours; // Day labels (translatable) $days = [ 'monday' => trans('common.monday'), 'tuesday' => trans('common.tuesday'), 'wednesday' => trans('common.wednesday'), 'thursday' => trans('common.thursday'), 'friday' => trans('common.friday'), 'saturday' => trans('common.saturday'), 'sunday' => trans('common.sunday'), ]; @endphp