diff --git a/resources/views/filament/resources/schedule-resource/pages/schedule-resource/pages/upload-schedules.blade.php b/resources/views/filament/resources/schedule-resource/pages/schedule-resource/pages/upload-schedules.blade.php
new file mode 100644
index 0000000..94b19af
--- /dev/null
+++ b/resources/views/filament/resources/schedule-resource/pages/schedule-resource/pages/upload-schedules.blade.php
@@ -0,0 +1,10 @@
+
+
+ {{ $this->form }}
+
+
+
+
+
diff --git a/resources/views/vendor/filament/assets.blade.php b/resources/views/vendor/filament/assets.blade.php
new file mode 100644
index 0000000..1cf3bde
--- /dev/null
+++ b/resources/views/vendor/filament/assets.blade.php
@@ -0,0 +1,17 @@
+@if (isset($data))
+
+@endif
+
+@foreach ($assets as $asset)
+ @if (! $asset->isLoadedOnRequest())
+ {{ $asset->getHtml() }}
+ @endif
+@endforeach
+
+
diff --git a/resources/views/vendor/filament/components/actions.blade.php b/resources/views/vendor/filament/components/actions.blade.php
new file mode 100644
index 0000000..607d546
--- /dev/null
+++ b/resources/views/vendor/filament/components/actions.blade.php
@@ -0,0 +1,64 @@
+@php
+ use Filament\Support\Enums\Alignment;
+@endphp
+
+@props([
+ 'actions' => [],
+ 'alignment' => Alignment::Start,
+ 'fullWidth' => false,
+])
+
+@php
+ if (is_array($actions)) {
+ $actions = array_filter(
+ $actions,
+ fn ($action): bool => $action->isVisible(),
+ );
+ }
+
+ if (! $alignment instanceof Alignment) {
+ $alignment = filled($alignment) ? (Alignment::tryFrom($alignment) ?? $alignment) : null;
+ }
+
+ $hasActions = false;
+
+ $hasSlot = ! \Filament\Support\is_slot_empty($slot);
+ $actionsAreHtmlable = $actions instanceof \Illuminate\Contracts\Support\Htmlable;
+
+ if ($hasSlot) {
+ $hasActions = true;
+ } elseif ($actionsAreHtmlable) {
+ $hasActions = ! \Filament\Support\is_slot_empty($actions);
+ } else {
+ $hasActions = filled($actions);
+ }
+@endphp
+
+@if ($hasActions)
+
class([
+ 'fi-ac gap-3',
+ 'flex flex-wrap items-center' => ! $fullWidth,
+ match ($alignment) {
+ Alignment::Start, Alignment::Left => 'justify-start',
+ Alignment::Center => 'justify-center',
+ Alignment::End, Alignment::Right => 'flex-row-reverse',
+ Alignment::Between, Alignment::Justify => 'justify-between',
+ default => $alignment,
+ } => ! $fullWidth,
+ 'grid grid-cols-[repeat(auto-fit,minmax(0,1fr))]' => $fullWidth,
+ ])
+ }}
+ >
+ @if ($hasSlot)
+ {{ $slot }}
+ @elseif ($actionsAreHtmlable)
+ {{ $actions }}
+ @else
+ @foreach ($actions as $action)
+ {{ $action }}
+ @endforeach
+ @endif
+
+@endif
diff --git a/resources/views/vendor/filament/components/avatar.blade.php b/resources/views/vendor/filament/components/avatar.blade.php
new file mode 100644
index 0000000..aa81aae
--- /dev/null
+++ b/resources/views/vendor/filament/components/avatar.blade.php
@@ -0,0 +1,21 @@
+@props([
+ 'circular' => true,
+ 'size' => 'md',
+])
+
+class([
+ 'fi-btn-group grid grid-flow-col rounded-lg shadow-sm ring-1 ring-gray-950/10 dark:ring-white/20',
+ ])
+ }}
+>
+ {{ $slot }}
+
diff --git a/resources/views/vendor/filament/components/button/index.blade.php b/resources/views/vendor/filament/components/button/index.blade.php
new file mode 100644
index 0000000..1928120
--- /dev/null
+++ b/resources/views/vendor/filament/components/button/index.blade.php
@@ -0,0 +1,332 @@
+@php
+ use Filament\Support\Enums\ActionSize;
+ use Filament\Support\Enums\IconPosition;
+ use Filament\Support\Enums\IconSize;
+@endphp
+
+@props([
+ 'badge' => null,
+ 'badgeColor' => 'primary',
+ 'badgeSize' => 'xs',
+ 'color' => 'primary',
+ 'disabled' => false,
+ 'form' => null,
+ 'formId' => null,
+ 'grouped' => false,
+ 'href' => null,
+ 'icon' => null,
+ 'iconAlias' => null,
+ 'iconPosition' => IconPosition::Before,
+ 'iconSize' => null,
+ 'keyBindings' => null,
+ 'labeledFrom' => null,
+ 'labelSrOnly' => false,
+ 'loadingIndicator' => true,
+ 'outlined' => false,
+ 'size' => ActionSize::Medium,
+ 'spaMode' => null,
+ 'tag' => 'button',
+ 'target' => null,
+ 'tooltip' => null,
+ 'type' => 'button',
+])
+
+@php
+ if (! $iconPosition instanceof IconPosition) {
+ $iconPosition = filled($iconPosition) ? (IconPosition::tryFrom($iconPosition) ?? $iconPosition) : null;
+ }
+
+ if (! $size instanceof ActionSize) {
+ $size = filled($size) ? (ActionSize::tryFrom($size) ?? $size) : null;
+ }
+
+ $iconSize ??= match ($size) {
+ ActionSize::ExtraSmall, ActionSize::Small => IconSize::Small,
+ default => IconSize::Medium,
+ };
+
+ if (! $iconSize instanceof IconSize) {
+ $iconSize = filled($iconSize) ? (IconSize::tryFrom($iconSize) ?? $iconSize) : null;
+ }
+
+ $buttonClasses = \Illuminate\Support\Arr::toCssClasses([
+ ...[
+ 'fi-btn relative grid-flow-col items-center justify-center font-semibold outline-none transition duration-75 focus-visible:ring-2',
+ 'pointer-events-none opacity-70' => $disabled,
+ 'rounded-lg' => ! $grouped,
+ 'flex-1 [&:nth-child(1_of_.fi-btn)]:rounded-s-lg [&:nth-last-child(1_of_.fi-btn)]:rounded-e-lg [&:not(:nth-child(1_of_.fi-btn))]:shadow-[-1px_0_0_0_theme(colors.gray.200)] [&:not(:nth-last-child(1_of_.fi-btn))]:me-px dark:[&:not(:nth-child(1_of_.fi-btn))]:shadow-[-1px_0_0_0_theme(colors.white/20%)]' => $grouped,
+ 'cursor-pointer' => $tag === 'label',
+ match ($color) {
+ 'gray' => null,
+ default => 'fi-color-custom',
+ },
+ // @deprecated `fi-btn-color-*` has been replaced by `fi-color-*` and `fi-color-custom`.
+ is_string($color) ? "fi-btn-color-{$color}" : null,
+ is_string($color) ? "fi-color-{$color}" : null,
+ ($size instanceof ActionSize) ? "fi-size-{$size->value}" : null,
+ // @deprecated `fi-btn-size-*` has been replaced by `fi-size-*`.
+ ($size instanceof ActionSize) ? "fi-btn-size-{$size->value}" : null,
+ match ($size) {
+ ActionSize::ExtraSmall => 'gap-1 px-2 py-1.5 text-xs',
+ ActionSize::Small => 'gap-1 px-2.5 py-1.5 text-sm',
+ ActionSize::Medium => 'gap-1.5 px-3 py-2 text-sm',
+ ActionSize::Large => 'gap-1.5 px-3.5 py-2.5 text-sm',
+ ActionSize::ExtraLarge => 'gap-1.5 px-4 py-3 text-sm',
+ default => $size,
+ },
+ 'hidden' => $labeledFrom,
+ match ($labeledFrom) {
+ 'sm' => 'sm:inline-grid',
+ 'md' => 'md:inline-grid',
+ 'lg' => 'lg:inline-grid',
+ 'xl' => 'xl:inline-grid',
+ '2xl' => '2xl:inline-grid',
+ default => 'inline-grid',
+ },
+ ],
+ ...(
+ $outlined ?
+ [
+ 'fi-btn-outlined ring-1',
+ match ($color) {
+ 'gray' => 'text-gray-950 ring-gray-300 hover:bg-gray-400/10 focus-visible:ring-gray-400/40 dark:text-white dark:ring-gray-700',
+ default => 'text-custom-600 ring-custom-600 hover:bg-custom-400/10 dark:text-custom-400 dark:ring-custom-500',
+ },
+ ] :
+ [
+ 'shadow-sm' => ! $grouped,
+ 'bg-white text-gray-950 hover:bg-gray-50 dark:bg-white/5 dark:text-white dark:hover:bg-white/10' => ($color === 'gray') || ($tag === 'label'),
+ 'ring-1 ring-gray-950/10 dark:ring-white/20' => (($color === 'gray') || ($tag === 'label')) && (! $grouped),
+ 'bg-custom-600 text-white hover:bg-custom-500 focus-visible:ring-custom-500/50 dark:bg-custom-500 dark:hover:bg-custom-400 dark:focus-visible:ring-custom-400/50' => ($color !== 'gray') && ($tag !== 'label'),
+ '[input:checked+&]:bg-custom-600 [input:checked+&]:text-white [input:checked+&]:ring-0 [input:checked+&]:hover:bg-custom-500 dark:[input:checked+&]:bg-custom-500 dark:[input:checked+&]:hover:bg-custom-400 [input:checked:focus-visible+&]:ring-custom-500/50 dark:[input:checked:focus-visible+&]:ring-custom-400/50 [input:focus-visible+&]:z-10 [input:focus-visible+&]:ring-2 [input:focus-visible+&]:ring-gray-950/10 dark:[input:focus-visible+&]:ring-white/20' => ($color !== 'gray') && ($tag === 'label'),
+ '[input:checked+&]:bg-gray-400 [input:checked+&]:text-white [input:checked+&]:ring-0 [input:checked+&]:hover:bg-gray-300 dark:[input:checked+&]:bg-gray-600 dark:[input:checked+&]:hover:bg-gray-500' => ($color === 'gray'),
+ ]
+ ),
+ ]);
+
+ $buttonStyles = \Illuminate\Support\Arr::toCssStyles([
+ \Filament\Support\get_color_css_variables(
+ $color,
+ shades: [400, 500, 600],
+ alias: 'button',
+ ) => $color !== 'gray',
+ ]);
+
+ $iconClasses = \Illuminate\Support\Arr::toCssClasses([
+ 'fi-btn-icon transition duration-75',
+ match ($iconSize) {
+ IconSize::Small => 'h-4 w-4',
+ IconSize::Medium => 'h-5 w-5',
+ IconSize::Large => 'h-6 w-6',
+ default => $iconSize,
+ },
+ 'text-gray-400 dark:text-gray-500' => ($color === 'gray') || ($tag === 'label'),
+ 'text-white' => ($color !== 'gray') && ($tag !== 'label') && (! $outlined),
+ '[:checked+*>&]:text-white' => $tag === 'label',
+ ]);
+
+ $badgeContainerClasses = 'fi-btn-badge-ctn absolute start-full top-0 z-[1] w-max -translate-x-1/2 -translate-y-1/2 rounded-md bg-white dark:bg-gray-900 rtl:translate-x-1/2';
+
+ $labelClasses = \Illuminate\Support\Arr::toCssClasses([
+ 'fi-btn-label',
+ 'sr-only' => $labelSrOnly,
+ ]);
+
+ $wireTarget = $loadingIndicator ? $attributes->whereStartsWith(['wire:target', 'wire:click'])->filter(fn ($value): bool => filled($value))->first() : null;
+
+ $hasFormProcessingLoadingIndicator = $type === 'submit' && filled($form);
+ $hasLoadingIndicator = filled($wireTarget) || $hasFormProcessingLoadingIndicator;
+
+ if ($hasLoadingIndicator) {
+ $loadingIndicatorTarget = html_entity_decode($wireTarget ?: $form, ENT_QUOTES);
+ }
+
+ $hasTooltip = filled($tooltip);
+@endphp
+
+@if ($labeledFrom)
+ 'h-4 w-4',
+ IconSize::Medium, 'md' => 'h-5 w-5',
+ IconSize::Large, 'lg' => 'h-6 w-6',
+ default => $iconSize,
+ },
+ match ($color) {
+ 'gray' => 'text-gray-400 dark:text-gray-500',
+ default => 'text-custom-500 dark:text-custom-400',
+ },
+ ])
+ @style([
+ \Filament\Support\get_color_css_variables(
+ $color,
+ shades: [400, 500],
+ alias: 'dropdown.header.icon',
+ ) => $color !== 'gray',
+ ])
+ />
+ @endif
+
+ 'text-gray-700 dark:text-gray-200',
+ default => 'text-custom-600 dark:text-custom-400',
+ },
+ ])
+ @style([
+ \Filament\Support\get_color_css_variables(
+ $color,
+ shades: [400, 600],
+ alias: 'dropdown.header.label',
+ ) => $color !== 'gray',
+ ])
+ >
+ {{ $slot }}
+
+{{ $tag }}>
diff --git a/resources/views/vendor/filament/components/dropdown/index.blade.php b/resources/views/vendor/filament/components/dropdown/index.blade.php
new file mode 100644
index 0000000..7b3fbab
--- /dev/null
+++ b/resources/views/vendor/filament/components/dropdown/index.blade.php
@@ -0,0 +1,86 @@
+@props([
+ 'availableHeight' => null,
+ 'availableWidth' => null,
+ 'maxHeight' => null,
+ 'offset' => 8,
+ 'placement' => null,
+ 'shift' => false,
+ 'size' => false,
+ 'sizePadding' => 16,
+ 'teleport' => false,
+ 'trigger' => null,
+ 'width' => null,
+])
+
+@php
+ use Filament\Support\Enums\MaxWidth;
+
+ $sizeConfig = collect([
+ 'availableHeight' => $availableHeight,
+ 'availableWidth' => $availableWidth,
+ 'padding' => $sizePadding,
+ ])->filter()->toJson();
+@endphp
+
+class(['fi-dropdown']) }}
+>
+
attributes->class(['fi-dropdown-trigger flex cursor-pointer']) }}
+ >
+ {{ $trigger }}
+
+
+ @if (! \Filament\Support\is_slot_empty($slot))
+
has('wire:key'))
+ wire:ignore.self
+ wire:key="{{ $attributes->get('wire:key') }}.panel"
+ @endif
+ @class([
+ 'fi-dropdown-panel absolute z-10 w-screen divide-y divide-gray-100 rounded-lg bg-white shadow-lg ring-1 ring-gray-950/5 transition dark:divide-white/5 dark:bg-gray-900 dark:ring-white/10',
+ match ($width) {
+ // These max width classes need to be `!important` otherwise they will be usurped by the Floating UI "size" middleware.
+ MaxWidth::ExtraSmall, 'xs' => '!max-w-xs',
+ MaxWidth::Small, 'sm' => '!max-w-sm',
+ MaxWidth::Medium, 'md' => '!max-w-md',
+ MaxWidth::Large, 'lg' => '!max-w-lg',
+ MaxWidth::ExtraLarge, 'xl' => '!max-w-xl',
+ MaxWidth::TwoExtraLarge, '2xl' => '!max-w-2xl',
+ MaxWidth::ThreeExtraLarge, '3xl' => '!max-w-3xl',
+ MaxWidth::FourExtraLarge, '4xl' => '!max-w-4xl',
+ MaxWidth::FiveExtraLarge, '5xl' => '!max-w-5xl',
+ MaxWidth::SixExtraLarge, '6xl' => '!max-w-6xl',
+ MaxWidth::SevenExtraLarge, '7xl' => '!max-w-7xl',
+ null => '!max-w-[14rem]',
+ default => $width,
+ },
+ 'overflow-y-auto' => $maxHeight || $size,
+ ])
+ @style([
+ "max-height: {$maxHeight}" => $maxHeight,
+ ])
+ >
+ {{ $slot }}
+
+ @endif
+
diff --git a/resources/views/vendor/filament/components/dropdown/list/index.blade.php b/resources/views/vendor/filament/components/dropdown/list/index.blade.php
new file mode 100644
index 0000000..fceb894
--- /dev/null
+++ b/resources/views/vendor/filament/components/dropdown/list/index.blade.php
@@ -0,0 +1,3 @@
+class(['fi-dropdown-list p-1']) }}>
+ {{ $slot }}
+
diff --git a/resources/views/vendor/filament/components/dropdown/list/item.blade.php b/resources/views/vendor/filament/components/dropdown/list/item.blade.php
new file mode 100644
index 0000000..99b9cf7
--- /dev/null
+++ b/resources/views/vendor/filament/components/dropdown/list/item.blade.php
@@ -0,0 +1,275 @@
+@php
+ use Filament\Support\Enums\IconSize;
+@endphp
+
+@props([
+ 'badge' => null,
+ 'badgeColor' => null,
+ 'badgeTooltip' => null,
+ 'color' => 'gray',
+ 'disabled' => false,
+ 'href' => null,
+ 'icon' => null,
+ 'iconAlias' => null,
+ 'iconColor' => null,
+ 'iconSize' => IconSize::Medium,
+ 'image' => null,
+ 'keyBindings' => null,
+ 'loadingIndicator' => true,
+ 'spaMode' => null,
+ 'tag' => 'button',
+ 'target' => null,
+ 'tooltip' => null,
+])
+
+@php
+ $buttonClasses = \Illuminate\Support\Arr::toCssClasses([
+ 'fi-dropdown-list-item flex w-full items-center gap-2 whitespace-nowrap rounded-md p-2 text-sm transition-colors duration-75 outline-none disabled:pointer-events-none disabled:opacity-70',
+ 'pointer-events-none opacity-70' => $disabled,
+ match ($color) {
+ 'gray' => 'hover:bg-gray-50 focus-visible:bg-gray-50 dark:hover:bg-white/5 dark:focus-visible:bg-white/5',
+ default => 'fi-color-custom hover:bg-custom-50 focus-visible:bg-custom-50 dark:hover:bg-custom-400/10 dark:focus-visible:bg-custom-400/10',
+ },
+ // @deprecated `fi-dropdown-list-item-color-*` has been replaced by `fi-color-*` and `fi-color-custom`.
+ is_string($color) ? "fi-dropdown-list-item-color-{$color}" : null,
+ is_string($color) ? "fi-color-{$color}" : null,
+ ]);
+
+ $buttonStyles = \Illuminate\Support\Arr::toCssStyles([
+ \Filament\Support\get_color_css_variables(
+ $color,
+ shades: [50, 400],
+ alias: 'dropdown.list.item',
+ ) => $color !== 'gray',
+ ]);
+
+ $iconColor ??= $color;
+
+ $iconClasses = \Illuminate\Support\Arr::toCssClasses([
+ 'fi-dropdown-list-item-icon',
+ match ($iconSize) {
+ IconSize::Small, 'sm' => 'h-4 w-4',
+ IconSize::Medium, 'md' => 'h-5 w-5',
+ IconSize::Large, 'lg' => 'h-6 w-6',
+ default => $iconSize,
+ },
+ match ($iconColor) {
+ 'gray' => 'text-gray-400 dark:text-gray-500',
+ default => 'text-custom-500 dark:text-custom-400',
+ },
+ ]);
+
+ $iconStyles = \Illuminate\Support\Arr::toCssStyles([
+ \Filament\Support\get_color_css_variables(
+ $iconColor,
+ shades: [400, 500],
+ alias: 'dropdown.list.item.icon',
+ ) => $iconColor !== 'gray',
+ ]);
+
+ $imageClasses = 'fi-dropdown-list-item-image h-5 w-5 rounded-full bg-cover bg-center';
+
+ $labelClasses = \Illuminate\Support\Arr::toCssClasses([
+ 'fi-dropdown-list-item-label flex-1 truncate text-start',
+ match ($color) {
+ 'gray' => 'text-gray-700 dark:text-gray-200',
+ default => 'text-custom-600 dark:text-custom-400 ',
+ },
+ ]);
+
+ $labelStyles = \Illuminate\Support\Arr::toCssStyles([
+ \Filament\Support\get_color_css_variables(
+ $color,
+ shades: [400, 600],
+ alias: 'dropdown.list.item.label',
+ ) => $color !== 'gray',
+ ]);
+
+ $wireTarget = $loadingIndicator ? $attributes->whereStartsWith(['wire:target', 'wire:click'])->filter(fn ($value): bool => filled($value))->first() : null;
+
+ $hasLoadingIndicator = filled($wireTarget);
+
+ if ($hasLoadingIndicator) {
+ $loadingIndicatorTarget = html_entity_decode($wireTarget, ENT_QUOTES);
+ }
+
+ $hasTooltip = filled($tooltip);
+@endphp
+
+@if ($tag === 'button')
+
+@elseif ($tag === 'a')
+ map(fn (string $keyBinding): string => str_replace('+', '-', $keyBinding))->implode('.') }}="document.getElementById($el.id).click()"
+ @endif
+ @if ($hasTooltip)
+ x-tooltip="{
+ content: @js($tooltip),
+ theme: $store.theme,
+ }"
+ @endif
+ {{
+ $attributes
+ ->class([$buttonClasses])
+ ->style([$buttonStyles])
+ }}
+ >
+ @if ($icon)
+
+ @endif
+
+ @if ($image)
+
+ @endif
+
+
+ {{ $slot }}
+
+
+ @if (filled($badge))
+
+ {{ $badge }}
+
+ @endif
+
+@elseif ($tag === 'form')
+
+@endif
diff --git a/resources/views/vendor/filament/components/fieldset.blade.php b/resources/views/vendor/filament/components/fieldset.blade.php
new file mode 100644
index 0000000..7c8370f
--- /dev/null
+++ b/resources/views/vendor/filament/components/fieldset.blade.php
@@ -0,0 +1,25 @@
+@props([
+ 'label' => null,
+ 'labelHidden' => false,
+])
+
+
diff --git a/resources/views/vendor/filament/components/grid/column.blade.php b/resources/views/vendor/filament/components/grid/column.blade.php
new file mode 100644
index 0000000..119dbcf
--- /dev/null
+++ b/resources/views/vendor/filament/components/grid/column.blade.php
@@ -0,0 +1,62 @@
+@props([
+ 'default' => 1,
+ 'sm' => null,
+ 'md' => null,
+ 'lg' => null,
+ 'xl' => null,
+ 'twoXl' => null,
+ 'defaultStart' => null,
+ 'smStart' => null,
+ 'mdStart' => null,
+ 'lgStart' => null,
+ 'xlStart' => null,
+ 'twoXlStart' => null,
+ 'hidden' => false,
+])
+
+@php
+ $getSpanValue = function ($span): string {
+ if ($span === 'full') {
+ return '1 / -1';
+ }
+
+ return "span {$span} / span {$span}";
+ };
+@endphp
+
+class([
+ 'hidden' => $hidden || $default === 'hidden',
+ 'col-[--col-span-default]' => $default && (! $hidden),
+ 'sm:col-[--col-span-sm]' => $sm && (! $hidden),
+ 'md:col-[--col-span-md]' => $md && (! $hidden),
+ 'lg:col-[--col-span-lg]' => $lg && (! $hidden),
+ 'xl:col-[--col-span-xl]' => $xl && (! $hidden),
+ '2xl:col-[--col-span-2xl]' => $twoXl && (! $hidden),
+ 'col-start-[--col-start-default]' => $defaultStart && (! $hidden),
+ 'sm:col-start-[--col-start-sm]' => $smStart && (! $hidden),
+ 'md:col-start-[--col-start-md]' => $mdStart && (! $hidden),
+ 'lg:col-start-[--col-start-lg]' => $lgStart && (! $hidden),
+ 'xl:col-start-[--col-start-xl]' => $xlStart && (! $hidden),
+ '2xl:col-start-[--col-start-2xl]' => $twoXlStart && (! $hidden),
+ ])
+ ->style([
+ "--col-span-default: {$getSpanValue($default)}" => $default,
+ "--col-span-sm: {$getSpanValue($sm)}" => $sm,
+ "--col-span-md: {$getSpanValue($md)}" => $md,
+ "--col-span-lg: {$getSpanValue($lg)}" => $lg,
+ "--col-span-xl: {$getSpanValue($xl)}" => $xl,
+ "--col-span-2xl: {$getSpanValue($twoXl)}" => $twoXl,
+ "--col-start-default: {$defaultStart}" => $defaultStart,
+ "--col-start-sm: {$smStart}" => $smStart,
+ "--col-start-md: {$mdStart}" => $mdStart,
+ "--col-start-lg: {$lgStart}" => $lgStart,
+ "--col-start-xl: {$xlStart}" => $xlStart,
+ "--col-start-2xl: {$twoXlStart}" => $twoXlStart,
+ ])
+ }}
+>
+ {{ $slot }}
+
diff --git a/resources/views/vendor/filament/components/grid/index.blade.php b/resources/views/vendor/filament/components/grid/index.blade.php
new file mode 100644
index 0000000..c4fba7b
--- /dev/null
+++ b/resources/views/vendor/filament/components/grid/index.blade.php
@@ -0,0 +1,53 @@
+@props([
+ 'isGrid' => true,
+ 'default' => 1,
+ 'direction' => 'row',
+ 'sm' => null,
+ 'md' => null,
+ 'lg' => null,
+ 'xl' => null,
+ 'twoXl' => null,
+])
+
+class([
+ 'grid' => $isGrid && $direction === 'row',
+ 'grid-cols-[--cols-default]' => $default && ($direction === 'row'),
+ 'columns-[--cols-default]' => $default && ($direction === 'column'),
+ 'sm:grid-cols-[--cols-sm]' => $sm && ($direction === 'row'),
+ 'sm:columns-[--cols-sm]' => $sm && ($direction === 'column'),
+ 'md:grid-cols-[--cols-md]' => $md && ($direction === 'row'),
+ 'md:columns-[--cols-md]' => $md && ($direction === 'column'),
+ 'lg:grid-cols-[--cols-lg]' => $lg && ($direction === 'row'),
+ 'lg:columns-[--cols-lg]' => $lg && ($direction === 'column'),
+ 'xl:grid-cols-[--cols-xl]' => $xl && ($direction === 'row'),
+ 'xl:columns-[--cols-xl]' => $xl && ($direction === 'column'),
+ '2xl:grid-cols-[--cols-2xl]' => $twoXl && ($direction === 'row'),
+ '2xl:columns-[--cols-2xl]' => $twoXl && ($direction === 'column'),
+ ])
+ ->style(
+ match ($direction) {
+ 'column' => [
+ "--cols-default: {$default}" => $default,
+ "--cols-sm: {$sm}" => $sm,
+ "--cols-md: {$md}" => $md,
+ "--cols-lg: {$lg}" => $lg,
+ "--cols-xl: {$xl}" => $xl,
+ "--cols-2xl: {$twoXl}" => $twoXl,
+ ],
+ 'row' => [
+ "--cols-default: repeat({$default}, minmax(0, 1fr))" => $default,
+ "--cols-sm: repeat({$sm}, minmax(0, 1fr))" => $sm,
+ "--cols-md: repeat({$md}, minmax(0, 1fr))" => $md,
+ "--cols-lg: repeat({$lg}, minmax(0, 1fr))" => $lg,
+ "--cols-xl: repeat({$xl}, minmax(0, 1fr))" => $xl,
+ "--cols-2xl: repeat({$twoXl}, minmax(0, 1fr))" => $twoXl,
+ ],
+ },
+ )
+ }}
+>
+ {{ $slot }}
+
diff --git a/resources/views/vendor/filament/components/icon-button.blade.php b/resources/views/vendor/filament/components/icon-button.blade.php
new file mode 100644
index 0000000..6ddfa27
--- /dev/null
+++ b/resources/views/vendor/filament/components/icon-button.blade.php
@@ -0,0 +1,242 @@
+@php
+ use Filament\Support\Enums\ActionSize;
+ use Filament\Support\Enums\IconSize;
+@endphp
+
+@props([
+ 'badge' => null,
+ 'badgeColor' => 'primary',
+ 'badgeSize' => 'xs',
+ 'color' => 'primary',
+ 'disabled' => false,
+ 'form' => null,
+ 'formId' => null,
+ 'href' => null,
+ 'icon' => null,
+ 'iconAlias' => null,
+ 'iconSize' => null,
+ 'keyBindings' => null,
+ 'label' => null,
+ 'loadingIndicator' => true,
+ 'size' => ActionSize::Medium,
+ 'spaMode' => null,
+ 'tag' => 'button',
+ 'target' => null,
+ 'tooltip' => null,
+ 'type' => 'button',
+])
+
+@php
+ if (! $size instanceof ActionSize) {
+ $size = filled($size) ? (ActionSize::tryFrom($size) ?? $size) : null;
+ }
+
+ $iconSize ??= match ($size) {
+ ActionSize::ExtraSmall => IconSize::Small,
+ ActionSize::Small, ActionSize::Medium => IconSize::Medium,
+ ActionSize::Large, ActionSize::ExtraLarge => IconSize::Large,
+ default => IconSize::Medium,
+ };
+
+ if (! $iconSize instanceof IconSize) {
+ $iconSize = filled($iconSize) ? (IconSize::tryFrom($iconSize) ?? $iconSize) : null;
+ }
+
+ $buttonClasses = \Illuminate\Support\Arr::toCssClasses([
+ 'fi-icon-btn relative flex items-center justify-center rounded-lg outline-none transition duration-75 focus-visible:ring-2',
+ 'pointer-events-none opacity-70' => $disabled,
+ ...match ($size) {
+ ActionSize::ExtraSmall => [
+ match ($iconSize) {
+ IconSize::Small => '-m-1.5',
+ IconSize::Medium => '-m-1',
+ IconSize::Large => '-m-0.5',
+ },
+ 'h-7 w-7',
+ ],
+ ActionSize::Small => [
+ match ($iconSize) {
+ IconSize::Small => '-m-2',
+ IconSize::Medium => '-m-1.5',
+ IconSize::Large => '-m-1',
+ },
+ 'h-8 w-8',
+ ],
+ ActionSize::Medium => [
+ match ($iconSize) {
+ IconSize::Small => '-m-2.5',
+ IconSize::Medium => '-m-2',
+ IconSize::Large => '-m-1.5',
+ },
+ 'h-9 w-9',
+ ],
+ ActionSize::Large => [
+ match ($iconSize) {
+ IconSize::Small => '-m-3',
+ IconSize::Medium => '-m-2.5',
+ IconSize::Large => '-m-2',
+ },
+ 'h-10 w-10',
+ ],
+ ActionSize::ExtraLarge => [
+ match ($iconSize) {
+ IconSize::Small => '-m-3.5',
+ IconSize::Medium => '-m-3',
+ IconSize::Large => '-m-2.5',
+ },
+ 'h-11 w-11',
+ ],
+ },
+ match ($color) {
+ 'gray' => 'text-gray-400 hover:text-gray-500 focus-visible:ring-primary-600 dark:text-gray-500 dark:hover:text-gray-400 dark:focus-visible:ring-primary-500',
+ default => 'fi-color-custom text-custom-500 hover:text-custom-600 focus-visible:ring-custom-600 dark:text-custom-400 dark:hover:text-custom-300 dark:focus-visible:ring-custom-500',
+ },
+ is_string($color) ? "fi-color-{$color}" : null,
+ ]);
+
+ $buttonStyles = \Filament\Support\get_color_css_variables(
+ $color,
+ shades: [300, 400, 500, 600],
+ alias: 'icon-button',
+ );
+
+ $iconClasses = \Illuminate\Support\Arr::toCssClasses([
+ 'fi-icon-btn-icon',
+ match ($iconSize) {
+ IconSize::Small => 'h-4 w-4',
+ IconSize::Medium => 'h-5 w-5',
+ IconSize::Large => 'h-6 w-6',
+ default => $iconSize,
+ },
+ ]);
+
+ $badgeContainerClasses = 'fi-icon-btn-badge-ctn absolute start-full top-1 z-[1] w-max -translate-x-1/2 -translate-y-1/2 rounded-md bg-white dark:bg-gray-900 rtl:translate-x-1/2';
+
+ $wireTarget = $loadingIndicator ? $attributes->whereStartsWith(['wire:target', 'wire:click'])->filter(fn ($value): bool => filled($value))->first() : null;
+
+ $hasLoadingIndicator = filled($wireTarget) || ($type === 'submit' && filled($form));
+
+ if ($hasLoadingIndicator) {
+ $loadingIndicatorTarget = html_entity_decode($wireTarget ?: $form, ENT_QUOTES);
+ }
+
+ $hasTooltip = filled($tooltip);
+@endphp
+
+@if ($tag === 'button')
+
+@elseif ($tag === 'a')
+ map(fn (string $keyBinding): string => str_replace('+', '-', $keyBinding))->implode('.') }}="document.getElementById($el.id).click()"
+ @endif
+ @if ($hasTooltip)
+ x-tooltip="{
+ content: @js($tooltip),
+ theme: $store.theme,
+ }"
+ @endif
+ {{
+ $attributes
+ ->merge([
+ 'title' => $label,
+ ], escape: true)
+ ->class([$buttonClasses])
+ ->style([$buttonStyles])
+ }}
+ >
+ @if ($label)
+
+ {{ $label }}
+
+ @endif
+
+
+
+ @if (filled($badge))
+
+
+ {{ $badge }}
+
+
+ @endif
+
+@endif
diff --git a/resources/views/vendor/filament/components/icon.blade.php b/resources/views/vendor/filament/components/icon.blade.php
new file mode 100644
index 0000000..86a4a3d
--- /dev/null
+++ b/resources/views/vendor/filament/components/icon.blade.php
@@ -0,0 +1,29 @@
+@props([
+ 'alias' => null,
+ 'class' => '',
+ 'icon' => null,
+])
+
+@php
+ $icon = ($alias ? \Filament\Support\Facades\FilamentIcon::resolve($alias) : null) ?: ($icon ?? $slot);
+@endphp
+
+@if ($icon instanceof \Illuminate\Contracts\Support\Htmlable)
+ class($class) }}>
+ {{ $icon }}
+
+@elseif (str_contains($icon, '/'))
+
merge(['src' => $icon])
+ ->class($class)
+ }}
+ />
+@else
+ @svg(
+ $icon,
+ $class,
+ array_filter($attributes->getAttributes()),
+ )
+@endif
diff --git a/resources/views/vendor/filament/components/input/checkbox.blade.php b/resources/views/vendor/filament/components/input/checkbox.blade.php
new file mode 100644
index 0000000..aa282de
--- /dev/null
+++ b/resources/views/vendor/filament/components/input/checkbox.blade.php
@@ -0,0 +1,29 @@
+@props([
+ 'alpineValid' => null,
+ 'valid' => true,
+])
+
+@php
+ $hasAlpineValidClasses = filled($alpineValid);
+
+ $validInputClasses = 'text-primary-600 ring-gray-950/10 focus:ring-primary-600 checked:focus:ring-primary-500/50 dark:text-primary-500 dark:ring-white/20 dark:checked:bg-primary-500 dark:focus:ring-primary-500 dark:checked:focus:ring-primary-400/50 dark:disabled:ring-white/10';
+ $invalidInputClasses = 'fi-invalid text-danger-600 ring-danger-600 focus:ring-danger-600 checked:focus:ring-danger-500/50 dark:text-danger-500 dark:ring-danger-500 dark:checked:bg-danger-500 dark:focus:ring-danger-500 dark:checked:focus:ring-danger-400/50';
+@endphp
+
+class([
+ 'fi-checkbox-input rounded border-none bg-white shadow-sm ring-1 transition duration-75 checked:ring-0 focus:ring-2 focus:ring-offset-0 disabled:pointer-events-none disabled:bg-gray-50 disabled:text-gray-50 disabled:checked:bg-current disabled:checked:text-gray-400 dark:bg-white/5 dark:disabled:bg-transparent dark:disabled:checked:bg-gray-600',
+ $validInputClasses => (! $hasAlpineValidClasses) && $valid,
+ $invalidInputClasses => (! $hasAlpineValidClasses) && (! $valid),
+ ])
+ }}
+/>
diff --git a/resources/views/vendor/filament/components/input/index.blade.php b/resources/views/vendor/filament/components/input/index.blade.php
new file mode 100644
index 0000000..7b458b5
--- /dev/null
+++ b/resources/views/vendor/filament/components/input/index.blade.php
@@ -0,0 +1,22 @@
+@props([
+ 'inlinePrefix' => false,
+ 'inlineSuffix' => false,
+])
+
+class([
+ 'fi-input block w-full border-none py-1.5 text-base text-gray-950 transition duration-75 placeholder:text-gray-400 focus:ring-0 disabled:text-gray-500 disabled:[-webkit-text-fill-color:theme(colors.gray.500)] disabled:placeholder:[-webkit-text-fill-color:theme(colors.gray.400)] dark:text-white dark:placeholder:text-gray-500 dark:disabled:text-gray-400 dark:disabled:[-webkit-text-fill-color:theme(colors.gray.400)] dark:disabled:placeholder:[-webkit-text-fill-color:theme(colors.gray.500)] sm:text-sm sm:leading-6',
+ // A fully transparent white background color is used
+ // instead of transparent to fix a Safari bug
+ // where the date/time input "placeholder" colors too dark.
+ //
+ // https://github.com/filamentphp/filament/issues/7087
+ 'bg-white/0',
+ 'ps-0' => $inlinePrefix,
+ 'ps-3' => ! $inlinePrefix,
+ 'pe-0' => $inlineSuffix,
+ 'pe-3' => ! $inlineSuffix,
+ ])
+ }}
+/>
diff --git a/resources/views/vendor/filament/components/input/radio.blade.php b/resources/views/vendor/filament/components/input/radio.blade.php
new file mode 100644
index 0000000..0e31593
--- /dev/null
+++ b/resources/views/vendor/filament/components/input/radio.blade.php
@@ -0,0 +1,15 @@
+@props([
+ 'valid' => true,
+])
+
+class([
+ 'fi-radio-input border-none bg-white shadow-sm ring-1 transition duration-75 checked:ring-0 focus:ring-2 focus:ring-offset-0 disabled:bg-gray-50 disabled:text-gray-50 disabled:checked:bg-current disabled:checked:text-gray-400 dark:bg-white/5 dark:disabled:bg-transparent dark:disabled:checked:bg-gray-600',
+ 'text-primary-600 ring-gray-950/10 focus:ring-primary-600 checked:focus:ring-primary-500/50 dark:text-primary-500 dark:ring-white/20 dark:checked:bg-primary-500 dark:focus:ring-primary-500 dark:checked:focus:ring-primary-400/50 dark:disabled:ring-white/10' => $valid,
+ 'fi-invalid text-danger-600 ring-danger-600 focus:ring-danger-600 checked:focus:ring-danger-500/50 dark:text-danger-500 dark:ring-danger-500 dark:checked:bg-danger-500 dark:focus:ring-danger-500 dark:checked:focus:ring-danger-400/50' => ! $valid,
+ ])
+ }}
+/>
diff --git a/resources/views/vendor/filament/components/input/select.blade.php b/resources/views/vendor/filament/components/input/select.blade.php
new file mode 100644
index 0000000..b15bd89
--- /dev/null
+++ b/resources/views/vendor/filament/components/input/select.blade.php
@@ -0,0 +1,16 @@
+@props([
+ 'inlinePrefix' => false,
+ 'inlineSuffix' => false,
+])
+
+
diff --git a/resources/views/vendor/filament/components/input/wrapper.blade.php b/resources/views/vendor/filament/components/input/wrapper.blade.php
new file mode 100644
index 0000000..c8f869f
--- /dev/null
+++ b/resources/views/vendor/filament/components/input/wrapper.blade.php
@@ -0,0 +1,212 @@
+@props([
+ 'alpineDisabled' => null,
+ 'alpineValid' => null,
+ 'disabled' => false,
+ 'inlinePrefix' => false,
+ 'inlineSuffix' => false,
+ 'prefix' => null,
+ 'prefixActions' => [],
+ 'prefixIcon' => null,
+ 'prefixIconColor' => 'gray',
+ 'prefixIconAlias' => null,
+ 'suffix' => null,
+ 'suffixActions' => [],
+ 'suffixIcon' => null,
+ 'suffixIconColor' => 'gray',
+ 'suffixIconAlias' => null,
+ 'valid' => true,
+])
+
+@php
+ $prefixActions = array_filter(
+ $prefixActions,
+ fn (\Filament\Forms\Components\Actions\Action $prefixAction): bool => $prefixAction->isVisible(),
+ );
+
+ $suffixActions = array_filter(
+ $suffixActions,
+ fn (\Filament\Forms\Components\Actions\Action $suffixAction): bool => $suffixAction->isVisible(),
+ );
+
+ $hasPrefix = count($prefixActions) || $prefixIcon || filled($prefix);
+ $hasSuffix = count($suffixActions) || $suffixIcon || filled($suffix);
+
+ $hasAlpineDisabledClasses = filled($alpineDisabled);
+ $hasAlpineValidClasses = filled($alpineValid);
+ $hasAlpineClasses = $hasAlpineDisabledClasses || $hasAlpineValidClasses;
+
+ $enabledWrapperClasses = 'bg-white dark:bg-white/5 [&:not(:has(.fi-ac-action:focus))]:focus-within:ring-2';
+ $disabledWrapperClasses = 'fi-disabled bg-gray-50 dark:bg-transparent';
+ $validWrapperClasses = 'ring-gray-950/10';
+ $invalidWrapperClasses = 'fi-invalid ring-danger-600 dark:ring-danger-500';
+ $enabledValidWrapperClasses = 'dark:ring-white/20 [&:not(:has(.fi-ac-action:focus))]:focus-within:ring-primary-600 dark:[&:not(:has(.fi-ac-action:focus))]:focus-within:ring-primary-500';
+ $enabledInvalidWrapperClasses = '[&:not(:has(.fi-ac-action:focus))]:focus-within:ring-danger-600 dark:[&:not(:has(.fi-ac-action:focus))]:focus-within:ring-danger-500';
+ $disabledValidWrapperClasses = 'dark:ring-white/10';
+
+ $actionsClasses = 'flex items-center gap-3';
+ $labelClasses = 'fi-input-wrp-label whitespace-nowrap text-sm text-gray-500 dark:text-gray-400';
+
+ $getIconClasses = fn (string | array $color = 'gray'): string => \Illuminate\Support\Arr::toCssClasses([
+ 'fi-input-wrp-icon h-5 w-5',
+ match ($color) {
+ 'gray' => 'text-gray-400 dark:text-gray-500',
+ default => 'text-custom-500',
+ },
+ ]);
+
+ $getIconStyles = fn (string | array $color = 'gray'): string => \Illuminate\Support\Arr::toCssStyles([
+ \Filament\Support\get_color_css_variables(
+ $color,
+ shades: [500],
+ alias: 'input-wrapper.icon',
+ ) => $color !== 'gray',
+ ]);
+
+ $wireTarget = $attributes->whereStartsWith(['wire:target'])->first();
+
+ $hasLoadingIndicator = filled($wireTarget);
+
+ if ($hasLoadingIndicator) {
+ $loadingIndicatorTarget = html_entity_decode($wireTarget, ENT_QUOTES);
+ }
+@endphp
+
+except(['wire:target', 'tabindex'])
+ ->class([
+ 'fi-input-wrp flex rounded-lg shadow-sm ring-1 transition duration-75',
+ $enabledWrapperClasses => (! $hasAlpineClasses) && (! $disabled),
+ $disabledWrapperClasses => (! $hasAlpineClasses) && $disabled,
+ $validWrapperClasses => (! $hasAlpineClasses) && $valid,
+ $invalidWrapperClasses => (! $hasAlpineClasses) && (! $valid),
+ $enabledValidWrapperClasses => (! $hasAlpineClasses) && (! $disabled) && $valid,
+ $enabledInvalidWrapperClasses => (! $hasAlpineClasses) && (! $disabled) && (! $valid),
+ $disabledValidWrapperClasses => (! $hasAlpineClasses) && $disabled && $valid,
+ ])
+ }}
+>
+ @if ($hasPrefix || $hasLoadingIndicator)
+
$hasPrefix,
+ 'hidden' => ! $hasPrefix,
+ 'pe-1' => $inlinePrefix && filled($prefix),
+ 'pe-2' => $inlinePrefix && blank($prefix),
+ 'border-e border-gray-200 pe-3 ps-3 dark:border-white/10' => ! $inlinePrefix,
+ ])
+ >
+ @if (count($prefixActions))
+
+ @foreach ($prefixActions as $prefixAction)
+ {{ $prefixAction }}
+ @endforeach
+
+ @endif
+
+ @if ($prefixIcon)
+
+ @endif
+
+ @if ($hasLoadingIndicator)
+
+ @endif
+
+ @if (filled($prefix))
+
+ {{ $prefix }}
+
+ @endif
+
+ @endif
+
+
$hasLoadingIndicator && (! $hasPrefix) && $inlinePrefix,
+ ])
+ >
+ {{ $slot }}
+
+
+ @if ($hasSuffix)
+
$inlineSuffix && filled($suffix),
+ 'ps-2' => $inlineSuffix && blank($suffix),
+ 'border-s border-gray-200 ps-3 dark:border-white/10' => ! $inlineSuffix,
+ ])
+ >
+ @if (filled($suffix))
+
+ {{ $suffix }}
+
+ @endif
+
+ @if ($suffixIcon)
+
+ @endif
+
+ @if (count($suffixActions))
+
+ @foreach ($suffixActions as $suffixAction)
+ {{ $suffixAction }}
+ @endforeach
+
+ @endif
+
+ @endif
+
diff --git a/resources/views/vendor/filament/components/link.blade.php b/resources/views/vendor/filament/components/link.blade.php
new file mode 100644
index 0000000..4d7c2ea
--- /dev/null
+++ b/resources/views/vendor/filament/components/link.blade.php
@@ -0,0 +1,304 @@
+@php
+ use Filament\Support\Enums\ActionSize;
+ use Filament\Support\Enums\FontWeight;
+ use Filament\Support\Enums\IconPosition;
+ use Filament\Support\Enums\IconSize;
+@endphp
+
+@props([
+ 'badge' => null,
+ 'badgeColor' => 'primary',
+ 'badgeSize' => 'xs',
+ 'color' => 'primary',
+ 'disabled' => false,
+ 'form' => null,
+ 'formId' => null,
+ 'href' => null,
+ 'icon' => null,
+ 'iconAlias' => null,
+ 'iconPosition' => IconPosition::Before,
+ 'iconSize' => null,
+ 'keyBindings' => null,
+ 'labelSrOnly' => false,
+ 'loadingIndicator' => true,
+ 'size' => ActionSize::Medium,
+ 'spaMode' => null,
+ 'tag' => 'a',
+ 'target' => null,
+ 'tooltip' => null,
+ 'type' => 'button',
+ 'weight' => FontWeight::SemiBold,
+])
+
+@php
+ if (! $iconPosition instanceof IconPosition) {
+ $iconPosition = filled($iconPosition) ? (IconPosition::tryFrom($iconPosition) ?? $iconPosition) : null;
+ }
+
+ if (! $size instanceof ActionSize) {
+ $size = filled($size) ? (ActionSize::tryFrom($size) ?? $size) : null;
+ }
+
+ $iconSize ??= match ($size) {
+ ActionSize::ExtraSmall, ActionSize::Small => IconSize::Small,
+ default => IconSize::Medium,
+ };
+
+ if (! $iconSize instanceof IconSize) {
+ $iconSize = filled($iconSize) ? (IconSize::tryFrom($iconSize) ?? $iconSize) : null;
+ }
+
+ $linkClasses = \Illuminate\Support\Arr::toCssClasses([
+ 'fi-link group/link relative inline-flex items-center justify-center outline-none',
+ 'pointer-events-none opacity-70' => $disabled,
+ ($size instanceof ActionSize) ? "fi-size-{$size->value}" : null,
+ // @deprecated `fi-link-size-*` has been replaced by `fi-size-*`.
+ ($size instanceof ActionSize) ? "fi-link-size-{$size->value}" : null,
+ match ($size) {
+ ActionSize::ExtraSmall => 'gap-1',
+ ActionSize::Small => 'gap-1',
+ ActionSize::Medium => 'gap-1.5',
+ ActionSize::Large => 'gap-1.5',
+ ActionSize::ExtraLarge => 'gap-1.5',
+ default => $size,
+ },
+ match ($color) {
+ 'gray' => null,
+ default => 'fi-color-custom',
+ },
+ is_string($color) ? "fi-color-{$color}" : null,
+ ]);
+
+ if (! $labelSrOnly) {
+ $labelClasses = \Illuminate\Support\Arr::toCssClasses([
+ match ($weight) {
+ FontWeight::Thin, 'thin' => 'font-thin',
+ FontWeight::ExtraLight, 'extralight' => 'font-extralight',
+ FontWeight::Light, 'light' => 'font-light',
+ FontWeight::Medium, 'medium' => 'font-medium',
+ FontWeight::Normal, 'normal' => 'font-normal',
+ FontWeight::SemiBold, 'semibold' => 'font-semibold',
+ FontWeight::Bold, 'bold' => 'font-bold',
+ FontWeight::ExtraBold, 'extrabold' => 'font-extrabold',
+ FontWeight::Black, 'black' => 'font-black',
+ default => $weight,
+ },
+ match ($size) {
+ ActionSize::ExtraSmall => 'text-xs',
+ ActionSize::Small => 'text-sm',
+ ActionSize::Medium => 'text-sm',
+ ActionSize::Large => 'text-sm',
+ ActionSize::ExtraLarge => 'text-sm',
+ default => null,
+ },
+ match ($color) {
+ 'gray' => 'text-gray-700 dark:text-gray-200',
+ default => 'text-custom-600 dark:text-custom-400',
+ },
+ 'group-hover/link:underline group-focus-visible/link:underline',
+ ]);
+ } else {
+ $labelClasses = 'sr-only';
+ }
+
+ $labelStyles = \Illuminate\Support\Arr::toCssStyles([
+ \Filament\Support\get_color_css_variables(
+ $color,
+ shades: [400, 600],
+ alias: 'link.label',
+ ) => $color !== 'gray',
+ ]);
+
+ $iconClasses = \Illuminate\Support\Arr::toCssClasses([
+ 'fi-link-icon',
+ match ($iconSize) {
+ IconSize::Small => 'h-4 w-4',
+ IconSize::Medium => 'h-5 w-5',
+ IconSize::Large => 'h-6 w-6',
+ default => $iconSize,
+ },
+ match ($color) {
+ 'gray' => 'text-gray-400 dark:text-gray-500',
+ default => 'text-custom-600 dark:text-custom-400',
+ },
+ ]);
+
+ $iconStyles = \Illuminate\Support\Arr::toCssStyles([
+ \Filament\Support\get_color_css_variables(
+ $color,
+ shades: [400, 600],
+ alias: 'link.icon',
+ ) => $color !== 'gray',
+ ]);
+
+ $badgeContainerClasses = 'fi-link-badge-ctn absolute start-full top-0 z-[1] w-max -translate-x-1/4 -translate-y-3/4 rounded-md bg-white dark:bg-gray-900 rtl:translate-x-1/4';
+
+ $wireTarget = $loadingIndicator ? $attributes->whereStartsWith(['wire:target', 'wire:click'])->filter(fn ($value): bool => filled($value))->first() : null;
+
+ $hasLoadingIndicator = filled($wireTarget) || ($type === 'submit' && filled($form));
+
+ if ($hasLoadingIndicator) {
+ $loadingIndicatorTarget = html_entity_decode($wireTarget ?: $form, ENT_QUOTES);
+ }
+
+ $hasTooltip = filled($tooltip);
+@endphp
+
+@if ($tag === 'a')
+ map(fn (string $keyBinding): string => str_replace('+', '-', $keyBinding))->implode('.') }}="document.getElementById($el.id).click()"
+ @endif
+ @if ($hasTooltip)
+ x-tooltip="{
+ content: @js($tooltip),
+ theme: $store.theme,
+ }"
+ @endif
+ {{ $attributes->class([$linkClasses]) }}
+ >
+ @if ($icon && $iconPosition === IconPosition::Before)
+
+ @endif
+
+
+ {{ $slot }}
+
+
+ @if ($icon && $iconPosition === IconPosition::After)
+
+ @endif
+
+ @if (filled($badge))
+
+
+ {{ $badge }}
+
+
+ @endif
+
+ @trim
+@elseif ($tag === 'button')
+
+ @trim
+@endif
diff --git a/resources/views/vendor/filament/components/loading-indicator.blade.php b/resources/views/vendor/filament/components/loading-indicator.blade.php
new file mode 100644
index 0000000..c8929da
--- /dev/null
+++ b/resources/views/vendor/filament/components/loading-indicator.blade.php
@@ -0,0 +1,18 @@
+
diff --git a/resources/views/vendor/filament/components/loading-section.blade.php b/resources/views/vendor/filament/components/loading-section.blade.php
new file mode 100644
index 0000000..3e77c0a
--- /dev/null
+++ b/resources/views/vendor/filament/components/loading-section.blade.php
@@ -0,0 +1,33 @@
+@php
+ if ((! isset($columnSpan)) || (! is_array($columnSpan))) {
+ $columnSpan = [
+ 'default' => $columnSpan ?? null,
+ ];
+ }
+
+ if ((! isset($columnStart)) || (! is_array($columnStart))) {
+ $columnStart = [
+ 'default' => $columnStart ?? null,
+ ];
+ }
+
+ $height ??= '8rem';
+@endphp
+
+
+
+
diff --git a/resources/views/vendor/filament/components/modal/description.blade.php b/resources/views/vendor/filament/components/modal/description.blade.php
new file mode 100644
index 0000000..343fdef
--- /dev/null
+++ b/resources/views/vendor/filament/components/modal/description.blade.php
@@ -0,0 +1,5 @@
+class(['fi-modal-description text-sm text-gray-500 dark:text-gray-400']) }}
+>
+ {{ $slot }}
+
diff --git a/resources/views/vendor/filament/components/modal/heading.blade.php b/resources/views/vendor/filament/components/modal/heading.blade.php
new file mode 100644
index 0000000..be4fadc
--- /dev/null
+++ b/resources/views/vendor/filament/components/modal/heading.blade.php
@@ -0,0 +1,5 @@
+class(['fi-modal-heading text-base font-semibold leading-6 text-gray-950 dark:text-white']) }}
+>
+ {{ $slot }}
+
diff --git a/resources/views/vendor/filament/components/modal/index.blade.php b/resources/views/vendor/filament/components/modal/index.blade.php
new file mode 100644
index 0000000..e6d27be
--- /dev/null
+++ b/resources/views/vendor/filament/components/modal/index.blade.php
@@ -0,0 +1,371 @@
+@php
+ use Filament\Support\Enums\Alignment;
+ use Filament\Support\Enums\MaxWidth;
+ use Filament\Support\Facades\FilamentView;
+@endphp
+
+@props([
+ 'alignment' => Alignment::Start,
+ 'ariaLabelledby' => null,
+ 'autofocus' => \Filament\Support\View\Components\Modal::$isAutofocused,
+ 'closeButton' => \Filament\Support\View\Components\Modal::$hasCloseButton,
+ 'closeByClickingAway' => \Filament\Support\View\Components\Modal::$isClosedByClickingAway,
+ 'closeByEscaping' => \Filament\Support\View\Components\Modal::$isClosedByEscaping,
+ 'closeEventName' => 'close-modal',
+ 'description' => null,
+ 'displayClasses' => 'inline-block',
+ 'extraModalWindowAttributeBag' => null,
+ 'footer' => null,
+ 'footerActions' => [],
+ 'footerActionsAlignment' => Alignment::Start,
+ 'header' => null,
+ 'heading' => null,
+ 'icon' => null,
+ 'iconAlias' => null,
+ 'iconColor' => 'primary',
+ 'id' => null,
+ 'openEventName' => 'open-modal',
+ 'slideOver' => false,
+ 'stickyFooter' => false,
+ 'stickyHeader' => false,
+ 'trigger' => null,
+ 'visible' => true,
+ 'width' => 'sm',
+])
+
+@php
+ $hasDescription = filled($description);
+ $hasFooter = (! \Filament\Support\is_slot_empty($footer)) || (is_array($footerActions) && count($footerActions)) || (! is_array($footerActions) && (! \Filament\Support\is_slot_empty($footerActions)));
+ $hasHeading = filled($heading);
+ $hasIcon = filled($icon);
+ $hasSlot = ! \Filament\Support\is_slot_empty($slot);
+
+ if (! $alignment instanceof Alignment) {
+ $alignment = filled($alignment) ? (Alignment::tryFrom($alignment) ?? $alignment) : null;
+ }
+
+ if (! $footerActionsAlignment instanceof Alignment) {
+ $footerActionsAlignment = filled($footerActionsAlignment) ? (Alignment::tryFrom($footerActionsAlignment) ?? $footerActionsAlignment) : null;
+ }
+
+ if (! $width instanceof MaxWidth) {
+ $width = filled($width) ? (MaxWidth::tryFrom($width) ?? $width) : null;
+ }
+
+ $closeEventHandler = filled($id) ? '$dispatch(' . \Illuminate\Support\Js::from($closeEventName) . ', { id: ' . \Illuminate\Support\Js::from($id) . ' })' : 'close()';
+@endphp
+
+ $width === MaxWidth::Screen,
+ $displayClasses,
+ ])
+>
+ @if ($trigger)
+
attributes->class(['fi-modal-trigger flex cursor-pointer']) }}
+ >
+ {{ $trigger }}
+
+ @endif
+
+
+
+
+
! ($slideOver || ($width === MaxWidth::Screen)),
+ 'cursor-pointer' => $closeByClickingAway,
+ ])
+ >
+
class([
+ 'relative grid min-h-full grid-rows-[1fr_auto_1fr] justify-items-center sm:grid-rows-[1fr_auto_3fr]',
+ 'p-4' => ! ($slideOver || ($width === MaxWidth::Screen)),
+ ])
+ }}
+ >
+
class([
+ 'fi-modal-window pointer-events-auto relative row-start-2 flex w-full cursor-default flex-col bg-white shadow-xl ring-1 ring-gray-950/5 dark:bg-gray-900 dark:ring-white/10',
+ 'fi-modal-slide-over-window ms-auto overflow-y-auto' => $slideOver,
+ // Using an arbitrary value instead of the h-dvh class that was added in Tailwind CSS v3.4.0
+ // to ensure compatibility with custom themes that may use an older version of Tailwind CSS.
+ 'h-[100dvh]' => $slideOver || ($width === MaxWidth::Screen),
+ 'mx-auto rounded-xl' => ! ($slideOver || ($width === MaxWidth::Screen)),
+ 'hidden' => ! $visible,
+ match ($width) {
+ MaxWidth::ExtraSmall => 'max-w-xs',
+ MaxWidth::Small => 'max-w-sm',
+ MaxWidth::Medium => 'max-w-md',
+ MaxWidth::Large => 'max-w-lg',
+ MaxWidth::ExtraLarge => 'max-w-xl',
+ MaxWidth::TwoExtraLarge => 'max-w-2xl',
+ MaxWidth::ThreeExtraLarge => 'max-w-3xl',
+ MaxWidth::FourExtraLarge => 'max-w-4xl',
+ MaxWidth::FiveExtraLarge => 'max-w-5xl',
+ MaxWidth::SixExtraLarge => 'max-w-6xl',
+ MaxWidth::SevenExtraLarge => 'max-w-7xl',
+ MaxWidth::Full => 'max-w-full',
+ MaxWidth::MinContent => 'max-w-min',
+ MaxWidth::MaxContent => 'max-w-max',
+ MaxWidth::FitContent => 'max-w-fit',
+ MaxWidth::Prose => 'max-w-prose',
+ MaxWidth::ScreenSmall => 'max-w-screen-sm',
+ MaxWidth::ScreenMedium => 'max-w-screen-md',
+ MaxWidth::ScreenLarge => 'max-w-screen-lg',
+ MaxWidth::ScreenExtraLarge => 'max-w-screen-xl',
+ MaxWidth::ScreenTwoExtraLarge => 'max-w-screen-2xl',
+ MaxWidth::Screen => 'fixed inset-0',
+ default => $width,
+ },
+ ])
+ }}
+ >
+ @if ($heading || $header)
+
(! $hasSlot) && (! $hasFooter),
+ 'fi-sticky sticky top-0 z-10 border-b border-gray-200 bg-white pb-6 dark:border-white/10 dark:bg-gray-900' => $stickyHeader,
+ 'rounded-t-xl' => $stickyHeader && ! ($slideOver || ($width === MaxWidth::Screen)),
+ match ($alignment) {
+ Alignment::Start, Alignment::Left => 'gap-x-5',
+ Alignment::Center => 'flex-col',
+ default => null,
+ },
+ 'items-center' => $hasIcon && $hasHeading && (! $hasDescription) && in_array($alignment, [Alignment::Start, Alignment::Left]),
+ ])
+ >
+ @if ($closeButton)
+
! $slideOver,
+ 'end-6 top-6' => $slideOver,
+ ])
+ >
+
+
+ @endif
+
+ @if ($header)
+ {{ $header }}
+ @else
+ @if ($hasIcon)
+
$alignment === Alignment::Center,
+ ])
+ >
+
'bg-gray-100 dark:bg-gray-500/20',
+ default => 'fi-color-custom bg-custom-100 dark:bg-custom-500/20',
+ },
+ is_string($iconColor) ? "fi-color-{$iconColor}" : null,
+ match ($alignment) {
+ Alignment::Start, Alignment::Left => 'p-2',
+ Alignment::Center => 'p-3',
+ default => null,
+ },
+ ])
+ @style([
+ \Filament\Support\get_color_css_variables(
+ $iconColor,
+ shades: [100, 400, 500, 600],
+ alias: 'modal.icon',
+ ) => $iconColor !== 'gray',
+ ])
+ >
+ 'text-gray-500 dark:text-gray-400',
+ default => 'text-custom-600 dark:text-custom-400',
+ },
+ ])
+ />
+
+
+ @endif
+
+
$alignment === Alignment::Center,
+ ])
+ >
+
+ {{ $heading }}
+
+
+ @if ($hasDescription)
+
+ {{ $description }}
+
+ @endif
+
+ @endif
+
+ @endif
+
+ @if ($hasSlot)
+
($width === MaxWidth::Screen) || $slideOver,
+ 'pe-6 ps-[5.25rem]' => $hasIcon && ($alignment === Alignment::Start) && (! $stickyHeader),
+ 'px-6' => ! ($hasIcon && ($alignment === Alignment::Start) && (! $stickyHeader)),
+ ])
+ >
+ {{ $slot }}
+
+ @endif
+
+ @if ($hasFooter)
+
$hasIcon && ($alignment === Alignment::Start) && ($footerActionsAlignment !== Alignment::Center) && (! $stickyFooter),
+ 'px-6' => ! ($hasIcon && ($alignment === Alignment::Start) && ($footerActionsAlignment !== Alignment::Center) && (! $stickyFooter)),
+ 'fi-sticky sticky bottom-0 border-t border-gray-200 bg-white py-5 dark:border-white/10 dark:bg-gray-900' => $stickyFooter,
+ 'rounded-b-xl' => $stickyFooter && ! ($slideOver || ($width === MaxWidth::Screen)),
+ 'pb-6' => ! $stickyFooter,
+ 'mt-6' => (! $stickyFooter) && (! $hasSlot),
+ 'mt-auto' => $slideOver,
+ ])
+ >
+ @if (! \Filament\Support\is_slot_empty($footer))
+ {{ $footer }}
+ @else
+
'flex flex-wrap items-center',
+ Alignment::Center => 'flex flex-col-reverse sm:grid sm:grid-cols-[repeat(auto-fit,minmax(0,1fr))]',
+ Alignment::End, Alignment::Right => 'flex flex-row-reverse flex-wrap items-center',
+ default => null,
+ },
+ ])
+ >
+ @if (is_array($footerActions))
+ @foreach ($footerActions as $action)
+ {{ $action }}
+ @endforeach
+ @else
+ {{ $footerActions }}
+ @endif
+
+ @endif
+
+ @endif
+
+
+
+
+
diff --git a/resources/views/vendor/filament/components/pagination/index.blade.php b/resources/views/vendor/filament/components/pagination/index.blade.php
new file mode 100644
index 0000000..4768d5b
--- /dev/null
+++ b/resources/views/vendor/filament/components/pagination/index.blade.php
@@ -0,0 +1,190 @@
+@props([
+ 'currentPageOptionProperty' => 'tableRecordsPerPage',
+ 'extremeLinks' => false,
+ 'paginator',
+ 'pageOptions' => [],
+])
+
+@php
+ use Illuminate\Contracts\Pagination\CursorPaginator;
+
+ $isRtl = __('filament-panels::layout.direction') === 'rtl';
+ $isSimple = ! $paginator instanceof \Illuminate\Pagination\LengthAwarePaginator;
+@endphp
+
+
diff --git a/resources/views/vendor/filament/components/pagination/item.blade.php b/resources/views/vendor/filament/components/pagination/item.blade.php
new file mode 100644
index 0000000..d997d70
--- /dev/null
+++ b/resources/views/vendor/filament/components/pagination/item.blade.php
@@ -0,0 +1,50 @@
+@props([
+ 'active' => false,
+ 'ariaLabel' => null,
+ 'disabled' => false,
+ 'icon' => null,
+ 'iconAlias' => null,
+ 'label' => null,
+])
+
+class([
+ 'fi-pagination-item group/item border-x-[0.5px] border-gray-200 first:border-s-0 last:border-e-0 dark:border-white/10',
+ 'fi-disabled' => $disabled,
+ 'fi-active' => $active,
+ ])
+ }}
+>
+
+
diff --git a/resources/views/vendor/filament/components/section/description.blade.php b/resources/views/vendor/filament/components/section/description.blade.php
new file mode 100644
index 0000000..b6b8644
--- /dev/null
+++ b/resources/views/vendor/filament/components/section/description.blade.php
@@ -0,0 +1,5 @@
+class(['fi-section-header-description overflow-hidden break-words text-sm text-gray-500 dark:text-gray-400']) }}
+>
+ {{ $slot }}
+
diff --git a/resources/views/vendor/filament/components/section/heading.blade.php b/resources/views/vendor/filament/components/section/heading.blade.php
new file mode 100644
index 0000000..d0b550c
--- /dev/null
+++ b/resources/views/vendor/filament/components/section/heading.blade.php
@@ -0,0 +1,5 @@
+class(['fi-section-header-heading text-base font-semibold leading-6 text-gray-950 dark:text-white']) }}
+>
+ {{ $slot }}
+
diff --git a/resources/views/vendor/filament/components/section/index.blade.php b/resources/views/vendor/filament/components/section/index.blade.php
new file mode 100644
index 0000000..3b8a75a
--- /dev/null
+++ b/resources/views/vendor/filament/components/section/index.blade.php
@@ -0,0 +1,213 @@
+@php
+ use Filament\Support\Enums\Alignment;
+ use Filament\Support\Enums\IconSize;
+@endphp
+
+@props([
+ 'aside' => false,
+ 'collapsed' => false,
+ 'collapsible' => false,
+ 'compact' => false,
+ 'contentBefore' => false,
+ 'description' => null,
+ 'footerActions' => [],
+ 'footerActionsAlignment' => Alignment::Start,
+ 'headerActions' => [],
+ 'headerEnd' => null,
+ 'heading' => null,
+ 'icon' => null,
+ 'iconColor' => 'gray',
+ 'iconSize' => IconSize::Large,
+ 'persistCollapsed' => false,
+])
+
+@php
+ $hasDescription = filled((string) $description);
+ $hasHeading = filled($heading);
+ $hasIcon = filled($icon);
+
+ if (is_array($headerActions)) {
+ $headerActions = array_filter(
+ $headerActions,
+ fn ($headerAction): bool => $headerAction->isVisible(),
+ );
+ }
+
+ if (is_array($footerActions)) {
+ $footerActions = array_filter(
+ $footerActions,
+ fn ($footerAction): bool => $footerAction->isVisible(),
+ );
+ }
+
+ $hasHeaderActions = $headerActions instanceof \Illuminate\Contracts\Support\Htmlable
+ ? ! \Filament\Support\is_slot_empty($headerActions)
+ : filled($headerActions);
+
+ $hasFooterActions = $footerActions instanceof \Illuminate\Contracts\Support\Htmlable
+ ? ! \Filament\Support\is_slot_empty($footerActions)
+ : filled($footerActions);
+
+ $hasHeader = $hasIcon || $hasHeading || $hasDescription || $collapsible || $hasHeaderActions || filled((string) $headerEnd);
+@endphp
+
+class([
+ 'fi-section',
+ match ($aside) {
+ true => 'fi-aside grid grid-cols-1 items-start gap-x-6 gap-y-4 md:grid-cols-3',
+ false => 'rounded-xl bg-white shadow-sm ring-1 ring-gray-950/5 dark:bg-gray-900 dark:ring-white/10',
+ },
+ ])
+ }}
+>
+ @if ($hasHeader)
+ $collapsible,
+ match ($compact) {
+ true => 'px-4 py-2.5',
+ false => 'px-6 py-4',
+ } => ! $aside,
+ ])
+ >
+
+ @if ($hasIcon)
+
'text-gray-400 dark:text-gray-500',
+ default => 'fi-color-custom text-custom-500 dark:text-custom-400',
+ },
+ is_string($iconColor) ? "fi-color-{$iconColor}" : null,
+ match ($iconSize) {
+ IconSize::Small, 'sm' => 'h-4 w-4 mt-1',
+ IconSize::Medium, 'md' => 'h-5 w-5 mt-0.5',
+ IconSize::Large, 'lg' => 'h-6 w-6',
+ default => $iconSize,
+ },
+ ])
+ @style([
+ \Filament\Support\get_color_css_variables(
+ $iconColor,
+ shades: [400, 500],
+ alias: 'section.header.icon',
+ ) => $iconColor !== 'gray',
+ ])
+ />
+ @endif
+
+ @if ($hasHeading || $hasDescription)
+
+ @if ($hasHeading)
+
+ {{ $heading }}
+
+ @endif
+
+ @if ($hasDescription)
+
+ {{ $description }}
+
+ @endif
+
+ @endif
+
+ @if ($hasHeaderActions)
+
+
+
+ @endif
+
+ {{ $headerEnd }}
+
+ @if ($collapsible)
+
+ @endif
+
+
+ @if ($hasHeaderActions)
+
+
+
+ @endif
+
+ @endif
+
+ $hasHeader && (! $aside),
+ 'rounded-xl bg-white shadow-sm ring-1 ring-gray-950/5 dark:bg-gray-900 dark:ring-white/10 md:col-span-2' => $aside,
+ 'md:order-first' => $contentBefore,
+ ])
+ >
+
'p-4',
+ false => 'p-6',
+ },
+ ])
+ >
+ {{ $slot }}
+
+
+ @if ($hasFooterActions)
+
+ @endif
+
+
diff --git a/resources/views/vendor/filament/components/tabs/index.blade.php b/resources/views/vendor/filament/components/tabs/index.blade.php
new file mode 100644
index 0000000..d57c7fe
--- /dev/null
+++ b/resources/views/vendor/filament/components/tabs/index.blade.php
@@ -0,0 +1,21 @@
+@props([
+ 'contained' => false,
+ 'label' => null,
+])
+
+
diff --git a/resources/views/vendor/filament/components/tabs/item.blade.php b/resources/views/vendor/filament/components/tabs/item.blade.php
new file mode 100644
index 0000000..3068ee8
--- /dev/null
+++ b/resources/views/vendor/filament/components/tabs/item.blade.php
@@ -0,0 +1,123 @@
+@php
+ use Filament\Support\Enums\IconPosition;
+@endphp
+
+@props([
+ 'active' => false,
+ 'alpineActive' => null,
+ 'badge' => null,
+ 'badgeColor' => null,
+ 'badgeTooltip' => null,
+ 'badgeIcon' => null,
+ 'badgeIconPosition' => IconPosition::Before,
+ 'href' => null,
+ 'icon' => null,
+ 'iconColor' => 'gray',
+ 'iconPosition' => IconPosition::Before,
+ 'spaMode' => null,
+ 'tag' => 'button',
+ 'target' => null,
+ 'type' => 'button',
+])
+
+@php
+ if (! $iconPosition instanceof IconPosition) {
+ $iconPosition = filled($iconPosition) ? (IconPosition::tryFrom($iconPosition) ?? $iconPosition) : null;
+ }
+
+ $hasAlpineActiveClasses = filled($alpineActive);
+
+ $inactiveItemClasses = 'hover:bg-gray-50 focus-visible:bg-gray-50 dark:hover:bg-white/5 dark:focus-visible:bg-white/5';
+
+ // @deprecated `fi-tabs-item-active` has been replaced by `fi-active`.
+ $activeItemClasses = 'fi-active fi-tabs-item-active bg-gray-50 dark:bg-white/5';
+
+ $inactiveLabelClasses = 'text-gray-500 group-hover:text-gray-700 group-focus-visible:text-gray-700 dark:text-gray-400 dark:group-hover:text-gray-200 dark:group-focus-visible:text-gray-200';
+
+ $activeLabelClasses = 'text-primary-600 dark:text-primary-400';
+
+ $iconClasses = 'fi-tabs-item-icon h-5 w-5 shrink-0 transition duration-75';
+
+ $inactiveIconClasses = 'text-gray-400 dark:text-gray-500';
+
+ $activeIconClasses = 'text-primary-600 dark:text-primary-400';
+@endphp
+
+<{{ $tag }}
+ @if ($tag === 'button')
+ type="{{ $type }}"
+ @elseif ($tag === 'a')
+ {{ \Filament\Support\generate_href_html($href, $target === '_blank', $spaMode) }}
+ @endif
+ @if ($hasAlpineActiveClasses)
+ x-bind:class="{
+ @js($inactiveItemClasses): {{-- format-ignore-start --}} ! ({{ $alpineActive }}) {{-- format-ignore-end --}},
+ @js($activeItemClasses): {{ $alpineActive }},
+ }"
+ @endif
+ {{
+ $attributes
+ ->merge([
+ 'aria-selected' => $active,
+ 'role' => 'tab',
+ ])
+ ->class([
+ 'fi-tabs-item group flex items-center justify-center gap-x-2 rounded-lg px-3 py-2 text-sm font-medium outline-none transition duration-75',
+ $inactiveItemClasses => (! $hasAlpineActiveClasses) && (! $active),
+ $activeItemClasses => (! $hasAlpineActiveClasses) && $active,
+ ])
+ }}
+>
+ @if ($icon && $iconPosition === IconPosition::Before)
+ (! $hasAlpineActiveClasses) && (! $active),
+ $activeIconClasses => (! $hasAlpineActiveClasses) && $active,
+ ])
+ />
+ @endif
+
+ (! $hasAlpineActiveClasses) && (! $active),
+ $activeLabelClasses => (! $hasAlpineActiveClasses) && $active,
+ ])
+ >
+ {{ $slot }}
+
+
+ @if ($icon && $iconPosition === IconPosition::After)
+ (! $hasAlpineActiveClasses) && (! $active),
+ $activeIconClasses => (! $hasAlpineActiveClasses) && $active,
+ ])
+ />
+ @endif
+
+ @if (filled($badge))
+
+ {{ $badge }}
+
+ @endif
+{{ $tag }}>