diff --git a/app/Providers/Filament/AdminPanelProvider.php b/app/Providers/Filament/AdminPanelProvider.php
index 234e721..1206467 100644
--- a/app/Providers/Filament/AdminPanelProvider.php
+++ b/app/Providers/Filament/AdminPanelProvider.php
@@ -27,6 +27,8 @@ class AdminPanelProvider extends PanelProvider
->id('admin')
->path('admin')
->default()
+ ->brandLogo(asset('logos/citrus-yatay.svg'))
+ ->darkModeBrandLogo(asset('logos/citrus-yatay-dark.svg'))
->colors([
'primary' => Color::Amber,
])
@@ -54,6 +56,9 @@ class AdminPanelProvider extends PanelProvider
->authMiddleware([
Authenticate::class,
])
- ->login();
+ ->login()
+ ->assets([
+ \Filament\Support\Assets\Css::make('citrus', resource_path('css/citrus.css')),
+ ]);
}
}
diff --git a/app/Providers/Filament/TruncgilPanelProvider.php b/app/Providers/Filament/TruncgilPanelProvider.php
deleted file mode 100644
index f014790..0000000
--- a/app/Providers/Filament/TruncgilPanelProvider.php
+++ /dev/null
@@ -1,58 +0,0 @@
-id('truncgil')
- ->path('truncgil')
- ->colors([
- 'primary' => Color::Amber,
- ])
- ->discoverResources(in: app_path('Filament/Truncgil/Resources'), for: 'App\Filament\Truncgil\Resources')
- ->discoverPages(in: app_path('Filament/Truncgil/Pages'), for: 'App\Filament\Truncgil\Pages')
- ->pages([
- Dashboard::class,
- ])
- ->discoverWidgets(in: app_path('Filament/Truncgil/Widgets'), for: 'App\Filament\Truncgil\Widgets')
- ->widgets([
- AccountWidget::class,
- FilamentInfoWidget::class,
- ])
- ->middleware([
- EncryptCookies::class,
- AddQueuedCookiesToResponse::class,
- StartSession::class,
- AuthenticateSession::class,
- ShareErrorsFromSession::class,
- VerifyCsrfToken::class,
- SubstituteBindings::class,
- DisableBladeIconComponents::class,
- DispatchServingFilamentEvent::class,
- ])
- ->authMiddleware([
- Authenticate::class,
- ])
- ->login();
- }
-}
diff --git a/public/css/app/citrus.css b/public/css/app/citrus.css
new file mode 100644
index 0000000..115d0c3
--- /dev/null
+++ b/public/css/app/citrus.css
@@ -0,0 +1,26 @@
+/* Login sayfası logo boyutu */
+.fi-logo {
+ height: 6rem !important;
+ width: auto !important;
+}
+
+/* Login sayfası brand logo boyutu */
+.fi-brand-logo {
+ height: 6rem !important;
+ width: auto !important;
+}
+
+/* Login sayfası brand logo container */
+.fi-brand-logo-container {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin-bottom: 2rem;
+}
+
+/* Login sayfası brand logo img */
+.fi-brand-logo img {
+ height: 6rem !important;
+ width: auto !important;
+ max-width: none !important;
+}
diff --git a/public/css/filament/filament/custom.css b/public/css/filament/filament/custom.css
new file mode 100644
index 0000000..115d0c3
--- /dev/null
+++ b/public/css/filament/filament/custom.css
@@ -0,0 +1,26 @@
+/* Login sayfası logo boyutu */
+.fi-logo {
+ height: 6rem !important;
+ width: auto !important;
+}
+
+/* Login sayfası brand logo boyutu */
+.fi-brand-logo {
+ height: 6rem !important;
+ width: auto !important;
+}
+
+/* Login sayfası brand logo container */
+.fi-brand-logo-container {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin-bottom: 2rem;
+}
+
+/* Login sayfası brand logo img */
+.fi-brand-logo img {
+ height: 6rem !important;
+ width: auto !important;
+ max-width: none !important;
+}
diff --git a/resources/css/citrus.css b/resources/css/citrus.css
new file mode 100644
index 0000000..115d0c3
--- /dev/null
+++ b/resources/css/citrus.css
@@ -0,0 +1,26 @@
+/* Login sayfası logo boyutu */
+.fi-logo {
+ height: 6rem !important;
+ width: auto !important;
+}
+
+/* Login sayfası brand logo boyutu */
+.fi-brand-logo {
+ height: 6rem !important;
+ width: auto !important;
+}
+
+/* Login sayfası brand logo container */
+.fi-brand-logo-container {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin-bottom: 2rem;
+}
+
+/* Login sayfası brand logo img */
+.fi-brand-logo img {
+ height: 6rem !important;
+ width: auto !important;
+ max-width: none !important;
+}
diff --git a/resources/views/vendor/filament/anonymous-partial.blade.php b/resources/views/vendor/filament/anonymous-partial.blade.php
new file mode 100644
index 0000000..e588c8d
--- /dev/null
+++ b/resources/views/vendor/filament/anonymous-partial.blade.php
@@ -0,0 +1 @@
+{!! value($html) !!}
diff --git a/resources/views/vendor/filament/assets.blade.php b/resources/views/vendor/filament/assets.blade.php
new file mode 100644
index 0000000..11de771
--- /dev/null
+++ b/resources/views/vendor/filament/assets.blade.php
@@ -0,0 +1,19 @@
+@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..aee116b
--- /dev/null
+++ b/resources/views/vendor/filament/components/actions.blade.php
@@ -0,0 +1,57 @@
+@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',
+ 'fi-width-full' => $fullWidth,
+ ($alignment instanceof Alignment) ? "fi-align-{$alignment->value}" : (is_string($alignment) ? $alignment : null) => ! $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..657eba0
--- /dev/null
+++ b/resources/views/vendor/filament/components/avatar.blade.php
@@ -0,0 +1,18 @@
+@props([
+ 'circular' => true,
+ 'size' => 'md',
+])
+
+
class([
+ 'fi-avatar',
+ 'fi-circular' => $circular,
+ match ($size) {
+ 'sm', 'md', 'lg' => "fi-size-{$size}",
+ default => $size,
+ },
+ ])
+ }}
+/>
diff --git a/resources/views/vendor/filament/components/badge.blade.php b/resources/views/vendor/filament/components/badge.blade.php
new file mode 100644
index 0000000..ea27884
--- /dev/null
+++ b/resources/views/vendor/filament/components/badge.blade.php
@@ -0,0 +1,182 @@
+@php
+ use Filament\Support\Enums\IconPosition;
+ use Filament\Support\Enums\IconSize;
+ use Filament\Support\Enums\Size;
+ use Filament\Support\View\Components\BadgeComponent;
+ use Illuminate\View\ComponentAttributeBag;
+@endphp
+
+@props([
+ 'color' => 'primary',
+ 'deleteButton' => null,
+ 'disabled' => false,
+ 'form' => null,
+ 'formId' => null,
+ 'href' => null,
+ 'icon' => null,
+ 'iconAlias' => null,
+ 'iconPosition' => IconPosition::Before,
+ 'iconSize' => null,
+ 'keyBindings' => null,
+ 'loadingIndicator' => true,
+ 'size' => Size::Medium,
+ 'spaMode' => null,
+ 'tag' => 'span',
+ 'target' => null,
+ 'tooltip' => null,
+ 'type' => 'button',
+])
+
+@php
+ if (! $iconPosition instanceof IconPosition) {
+ $iconPosition = filled($iconPosition) ? (IconPosition::tryFrom($iconPosition) ?? $iconPosition) : null;
+ }
+
+ if (! $size instanceof Size) {
+ $size = filled($size) ? (Size::tryFrom($size) ?? $size) : null;
+ }
+
+ if (filled($iconSize) && (! $iconSize instanceof IconSize)) {
+ $iconSize = IconSize::tryFrom($iconSize) ?? $iconSize;
+ }
+
+ $isDeletable = count($deleteButton?->attributes->getAttributes() ?? []) > 0;
+
+ $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
+
+<{{ $tag }}
+ @if (($tag === 'a') && (! ($disabled && $hasTooltip)))
+ {{ \Filament\Support\generate_href_html($href, $target === '_blank', $spaMode) }}
+ @endif
+ @if ($keyBindings)
+ x-bind:id="$id('key-bindings')"
+ x-mousetrap.global.{{ collect($keyBindings)->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([
+ 'aria-disabled' => $disabled ? 'true' : null,
+ 'disabled' => $disabled && blank($tooltip),
+ 'form' => $tag === 'button' ? $formId : null,
+ 'type' => $tag === 'button' ? $type : null,
+ 'wire:loading.attr' => $tag === 'button' ? 'disabled' : null,
+ 'wire:target' => ($hasLoadingIndicator && $loadingIndicatorTarget) ? $loadingIndicatorTarget : null,
+ ], escape: false)
+ ->when(
+ $disabled && $hasTooltip,
+ fn (ComponentAttributeBag $attributes) => $attributes->filter(
+ fn (mixed $value, string $key): bool => ! str($key)->startsWith(['href', 'x-on:', 'wire:click']),
+ ),
+ )
+ ->class([
+ 'fi-badge',
+ 'fi-disabled' => $disabled,
+ ($size instanceof Size) ? "fi-size-{$size->value}" : (is_string($size) ? $size : ''),
+ ])
+ ->color(BadgeComponent::class, $color)
+ }}
+>
+ @if ($iconPosition === IconPosition::Before)
+ @if ($icon)
+ {{
+ \Filament\Support\generate_icon_html($icon, $iconAlias, (new \Illuminate\View\ComponentAttributeBag([
+ 'wire:loading.remove.delay.' . config('filament.livewire_loading_delay', 'default') => $hasLoadingIndicator,
+ 'wire:target' => $hasLoadingIndicator ? $loadingIndicatorTarget : false,
+ ])), size: $iconSize ?? \Filament\Support\Enums\IconSize::Small)
+ }}
+ @endif
+
+ @if ($hasLoadingIndicator)
+ {{
+ \Filament\Support\generate_loading_indicator_html((new \Illuminate\View\ComponentAttributeBag([
+ 'wire:loading.delay.' . config('filament.livewire_loading_delay', 'default') => '',
+ 'wire:target' => $loadingIndicatorTarget,
+ ])), size: $iconSize ?? \Filament\Support\Enums\IconSize::Small)
+ }}
+ @endif
+ @endif
+
+
+
+ {{ $slot }}
+
+
+
+ @if ($isDeletable)
+ @php
+ $deleteButtonWireTarget = $deleteButton->attributes->whereStartsWith(['wire:target', 'wire:click'])->filter(fn ($value): bool => filled($value))->first();
+
+ $deleteButtonHasLoadingIndicator = filled($deleteButtonWireTarget);
+
+ if ($deleteButtonHasLoadingIndicator) {
+ $deleteButtonLoadingIndicatorTarget = html_entity_decode($deleteButtonWireTarget, ENT_QUOTES);
+ }
+ @endphp
+
+
+ @elseif ($iconPosition === IconPosition::After)
+ @if ($icon)
+ {{
+ \Filament\Support\generate_icon_html($icon, $iconAlias, (new \Illuminate\View\ComponentAttributeBag([
+ 'wire:loading.remove.delay.' . config('filament.livewire_loading_delay', 'default') => $hasLoadingIndicator,
+ 'wire:target' => $hasLoadingIndicator ? $loadingIndicatorTarget : false,
+ ])), size: $iconSize ?? \Filament\Support\Enums\IconSize::Small)
+ }}
+ @endif
+
+ @if ($hasLoadingIndicator)
+ {{
+ \Filament\Support\generate_loading_indicator_html((new \Illuminate\View\ComponentAttributeBag([
+ 'wire:loading.delay.' . config('filament.livewire_loading_delay', 'default') => '',
+ 'wire:target' => $loadingIndicatorTarget,
+ ])), size: $iconSize ?? \Filament\Support\Enums\IconSize::Small)
+ }}
+ @endif
+ @endif
+{{ $tag }}>
diff --git a/resources/views/vendor/filament/components/breadcrumbs.blade.php b/resources/views/vendor/filament/components/breadcrumbs.blade.php
new file mode 100644
index 0000000..1fe8911
--- /dev/null
+++ b/resources/views/vendor/filament/components/breadcrumbs.blade.php
@@ -0,0 +1,44 @@
+@php
+ use Illuminate\View\ComponentAttributeBag;
+
+ use function Filament\Support\generate_icon_html;
+@endphp
+
+@props([
+ 'breadcrumbs' => [],
+])
+
+
diff --git a/resources/views/vendor/filament/components/button/group.blade.php b/resources/views/vendor/filament/components/button/group.blade.php
new file mode 100644
index 0000000..384f879
--- /dev/null
+++ b/resources/views/vendor/filament/components/button/group.blade.php
@@ -0,0 +1,3 @@
+class(['fi-btn-group']) }}>
+ {{ $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..eea41fe
--- /dev/null
+++ b/resources/views/vendor/filament/components/button/index.blade.php
@@ -0,0 +1,237 @@
+@php
+ use Filament\Support\Enums\IconPosition;
+ use Filament\Support\Enums\IconSize;
+ use Filament\Support\Enums\Size;
+ use Filament\Support\View\Components\BadgeComponent;
+ use Filament\Support\View\Components\ButtonComponent;
+ use Illuminate\View\ComponentAttributeBag;
+@endphp
+
+@props([
+ 'badge' => null,
+ 'badgeColor' => 'primary',
+ 'badgeSize' => Size::ExtraSmall,
+ 'color' => 'primary',
+ 'disabled' => false,
+ 'form' => null,
+ 'formId' => null,
+ 'href' => null,
+ 'icon' => null,
+ 'iconAlias' => null,
+ 'iconPosition' => IconPosition::Before,
+ 'iconSize' => null,
+ 'keyBindings' => null,
+ 'labeledFrom' => null,
+ 'labelSrOnly' => false,
+ 'loadingIndicator' => true,
+ 'outlined' => false,
+ 'size' => Size::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 Size) {
+ $size = filled($size) ? (Size::tryFrom($size) ?? $size) : null;
+ }
+
+ if (! $badgeSize instanceof Size) {
+ $badgeSize = filled($badgeSize) ? (Size::tryFrom($badgeSize) ?? $badgeSize) : null;
+ }
+
+ if (filled($iconSize) && (! $iconSize instanceof IconSize)) {
+ $iconSize = IconSize::tryFrom($iconSize) ?? $iconSize;
+ }
+
+ $iconSize ??= match ($size) {
+ Size::ExtraSmall, Size::Small => IconSize::Small,
+ default => null,
+ };
+
+ $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)
+
+@endif
+
+<{{ $tag }}
+ @if (($tag === 'a') && (! ($disabled && $hasTooltip)))
+ {{ \Filament\Support\generate_href_html($href, $target === '_blank', $spaMode) }}
+ @endif
+ @if ($keyBindings)
+ x-bind:id="$id('key-bindings')"
+ x-mousetrap.global.{{ collect($keyBindings)->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
+ @if ($hasFormProcessingLoadingIndicator)
+ x-data="filamentFormButton"
+ x-bind:class="{ 'fi-processing': isProcessing }"
+ @endif
+ {{
+ $attributes
+ ->merge([
+ 'aria-disabled' => $disabled ? 'true' : null,
+ 'aria-label' => $labelSrOnly ? trim(strip_tags($slot->toHtml())) : null,
+ 'disabled' => $disabled && blank($tooltip),
+ 'form' => $formId,
+ 'type' => $tag === 'button' ? $type : null,
+ 'wire:loading.attr' => $tag === 'button' ? 'disabled' : null,
+ 'wire:target' => ($hasLoadingIndicator && $loadingIndicatorTarget) ? $loadingIndicatorTarget : null,
+ 'x-bind:disabled' => $hasFormProcessingLoadingIndicator ? 'isProcessing' : null,
+ 'x-bind:aria-label' => ($labelSrOnly && $hasFormProcessingLoadingIndicator) ? ('isProcessing ? processingMessage : ' . \Illuminate\Support\Js::from(trim(strip_tags($slot->toHtml())))) : null,
+ ], escape: false)
+ ->when(
+ $disabled && $hasTooltip,
+ fn (ComponentAttributeBag $attributes) => $attributes->filter(
+ fn (mixed $value, string $key): bool => ! str($key)->startsWith(['href', 'x-on:', 'wire:click']),
+ ),
+ )
+ ->class([
+ 'fi-btn',
+ 'fi-disabled' => $disabled,
+ 'fi-outlined' => $outlined,
+ ($size instanceof Size) ? "fi-size-{$size->value}" : (is_string($size) ? $size : ''),
+ is_string($labeledFrom) ? "fi-labeled-from-{$labeledFrom}" : null,
+ ])
+ ->color(app(ButtonComponent::class, ['isOutlined' => $outlined]), $color)
+ }}
+>
+ @if ($iconPosition === IconPosition::Before)
+ @if ($icon)
+ {{
+ \Filament\Support\generate_icon_html($icon, $iconAlias, (new \Illuminate\View\ComponentAttributeBag([
+ 'wire:loading.remove.delay.' . config('filament.livewire_loading_delay', 'default') => $hasLoadingIndicator,
+ 'wire:target' => $hasLoadingIndicator ? $loadingIndicatorTarget : false,
+ ])), size: $iconSize)
+ }}
+ @endif
+
+ @if ($hasLoadingIndicator)
+ {{
+ \Filament\Support\generate_loading_indicator_html((new \Illuminate\View\ComponentAttributeBag([
+ 'wire:loading.delay.' . config('filament.livewire_loading_delay', 'default') => '',
+ 'wire:target' => $loadingIndicatorTarget,
+ ])), size: $iconSize)
+ }}
+ @endif
+
+ @if ($hasFormProcessingLoadingIndicator)
+ {{
+ \Filament\Support\generate_loading_indicator_html((new \Illuminate\View\ComponentAttributeBag([
+ 'x-cloak' => 'x-cloak',
+ 'x-show' => 'isProcessing',
+ ])), size: $iconSize)
+ }}
+ @endif
+ @endif
+
+ @if (! $labelSrOnly)
+ @if ($hasFormProcessingLoadingIndicator)
+
+ {{ $slot }}
+
+ @else
+ {{ $slot }}
+ @endif
+ @endif
+
+ @if ($hasFormProcessingLoadingIndicator && (! $labelSrOnly))
+
+ @endif
+
+ @if ($iconPosition === IconPosition::After)
+ @if ($icon)
+ {{
+ \Filament\Support\generate_icon_html($icon, $iconAlias, (new \Illuminate\View\ComponentAttributeBag([
+ 'wire:loading.remove.delay.' . config('filament.livewire_loading_delay', 'default') => $hasLoadingIndicator,
+ 'wire:target' => $hasLoadingIndicator ? $loadingIndicatorTarget : false,
+ ])), size: $iconSize)
+ }}
+ @endif
+
+ @if ($hasLoadingIndicator)
+ {{
+ \Filament\Support\generate_loading_indicator_html((new \Illuminate\View\ComponentAttributeBag([
+ 'wire:loading.delay.' . config('filament.livewire_loading_delay', 'default') => '',
+ 'wire:target' => $loadingIndicatorTarget,
+ ])), size: $iconSize)
+ }}
+ @endif
+
+ @if ($hasFormProcessingLoadingIndicator)
+ {{
+ \Filament\Support\generate_loading_indicator_html((new \Illuminate\View\ComponentAttributeBag([
+ 'x-cloak' => 'x-cloak',
+ 'x-show' => 'isProcessing',
+ ])), size: $iconSize)
+ }}
+ @endif
+ @endif
+
+ @if (filled($badge))
+
+ @if ($badge instanceof \Illuminate\View\ComponentSlot)
+ {{ $badge }}
+ @else
+ color(BadgeComponent::class, $badgeColor)->class([
+ 'fi-badge',
+ ($badgeSize instanceof Size) ? "fi-size-{$badgeSize->value}" : (is_string($badgeSize) ? $badgeSize : ''),
+ ])
+ }}
+ >
+ {{ $badge }}
+
+ @endif
+
+ @endif
+{{ $tag }}>
diff --git a/resources/views/vendor/filament/components/card.blade.php b/resources/views/vendor/filament/components/card.blade.php
new file mode 100644
index 0000000..2317921
--- /dev/null
+++ b/resources/views/vendor/filament/components/card.blade.php
@@ -0,0 +1,5 @@
+
+ {{ $slot }}
+
diff --git a/resources/views/vendor/filament/components/dropdown/header.blade.php b/resources/views/vendor/filament/components/dropdown/header.blade.php
new file mode 100644
index 0000000..ade6953
--- /dev/null
+++ b/resources/views/vendor/filament/components/dropdown/header.blade.php
@@ -0,0 +1,34 @@
+@php
+ use Filament\Support\Enums\IconSize;
+ use Filament\Support\View\Components\DropdownComponent\HeaderComponent;
+ use Illuminate\View\ComponentAttributeBag;
+@endphp
+
+@props([
+ 'color' => 'gray',
+ 'icon' => null,
+ 'iconSize' => null,
+ 'tag' => 'div',
+])
+
+@php
+ if (! ($iconSize instanceof IconSize)) {
+ $iconSize = filled($iconSize) ? (IconSize::tryFrom($iconSize) ?? $iconSize) : null;
+ }
+@endphp
+
+<{{ $tag }}
+ {{
+ $attributes
+ ->class([
+ 'fi-dropdown-header',
+ ])
+ ->color(HeaderComponent::class, $color)
+ }}
+>
+ {{ \Filament\Support\generate_icon_html($icon, size: $iconSize) }}
+
+
+ {{ $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..3a32c6a
--- /dev/null
+++ b/resources/views/vendor/filament/components/dropdown/index.blade.php
@@ -0,0 +1,64 @@
+@props([
+ 'availableHeight' => null,
+ 'availableWidth' => null,
+ 'flip' => true,
+ 'maxHeight' => null,
+ 'offset' => 8,
+ 'placement' => null,
+ 'shift' => false,
+ 'size' => false,
+ 'sizePadding' => 16,
+ 'teleport' => false,
+ 'trigger' => null,
+ 'width' => null,
+])
+
+@php
+ use Filament\Support\Enums\Width;
+
+ $sizeConfig = collect([
+ 'availableHeight' => $availableHeight,
+ 'availableWidth' => $availableWidth,
+ 'padding' => $sizePadding,
+ ])->filter()->toJson();
+
+ if (is_string($width)) {
+ $width = Width::tryFrom($width) ?? $width;
+ }
+@endphp
+
+class(['fi-dropdown']) }}
+>
+
attributes->class(['fi-dropdown-trigger']) }}
+ >
+ {{ $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',
+ ($width instanceof Width) ? "fi-width-{$width->value}" : (is_string($width) ? $width : ''),
+ 'fi-scrollable' => $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..f0ca5c4
--- /dev/null
+++ b/resources/views/vendor/filament/components/dropdown/list/index.blade.php
@@ -0,0 +1,3 @@
+class(['fi-dropdown-list']) }}>
+ {{ $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..dad7ecd
--- /dev/null
+++ b/resources/views/vendor/filament/components/dropdown/list/item.blade.php
@@ -0,0 +1,150 @@
+@php
+ use Filament\Support\Enums\IconSize;
+ use Filament\Support\Enums\Size;
+ use Filament\Support\View\Components\BadgeComponent;
+ use Filament\Support\View\Components\DropdownComponent\ItemComponent;
+ use Filament\Support\View\Components\DropdownComponent\ItemComponent\IconComponent;
+ use Illuminate\View\ComponentAttributeBag;
+@endphp
+
+@props([
+ 'badge' => null,
+ 'badgeColor' => 'primary',
+ 'badgeTooltip' => null,
+ 'color' => 'gray',
+ 'disabled' => false,
+ 'href' => null,
+ 'icon' => null,
+ 'iconAlias' => null,
+ 'iconColor' => null,
+ 'iconSize' => null,
+ 'image' => null,
+ 'keyBindings' => null,
+ 'loadingIndicator' => true,
+ 'spaMode' => null,
+ 'tag' => 'button',
+ 'target' => null,
+ 'tooltip' => null,
+])
+
+@php
+ if (filled($iconSize) && (! $iconSize instanceof IconSize)) {
+ $iconSize = IconSize::tryFrom($iconSize) ?? $iconSize;
+ }
+
+ $iconColor ??= $color;
+
+ $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
+
+{!! ($tag === 'form') ? ('' : '' !!}
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..85e5064
--- /dev/null
+++ b/resources/views/vendor/filament/components/fieldset.blade.php
@@ -0,0 +1,25 @@
+@props([
+ 'contained' => true,
+ 'label' => null,
+ 'labelHidden' => false,
+ 'required' => false,
+])
+
+
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..5d63f7a
--- /dev/null
+++ b/resources/views/vendor/filament/components/icon-button.blade.php
@@ -0,0 +1,138 @@
+@php
+ use Filament\Support\Enums\IconSize;
+ use Filament\Support\Enums\Size;
+ use Filament\Support\View\Components\BadgeComponent;
+ use Filament\Support\View\Components\IconButtonComponent;
+ use Illuminate\View\ComponentAttributeBag;
+@endphp
+
+@props([
+ 'badge' => null,
+ 'badgeColor' => 'primary',
+ 'badgeSize' => Size::ExtraSmall,
+ 'color' => 'primary',
+ 'disabled' => false,
+ 'form' => null,
+ 'formId' => null,
+ 'href' => null,
+ 'icon' => null,
+ 'iconAlias' => null,
+ 'iconSize' => null,
+ 'keyBindings' => null,
+ 'label' => null,
+ 'loadingIndicator' => true,
+ 'size' => Size::Medium,
+ 'spaMode' => null,
+ 'tag' => 'button',
+ 'target' => null,
+ 'tooltip' => null,
+ 'type' => 'button',
+])
+
+@php
+ if (! $size instanceof Size) {
+ $size = filled($size) ? (Size::tryFrom($size) ?? $size) : null;
+ }
+
+ if (! $badgeSize instanceof Size) {
+ $badgeSize = filled($badgeSize) ? (Size::tryFrom($badgeSize) ?? $badgeSize) : null;
+ }
+
+ if (filled($iconSize) && (! $iconSize instanceof IconSize)) {
+ $iconSize = IconSize::tryFrom($iconSize) ?? $iconSize;
+ }
+
+ $iconSize ??= match ($size) {
+ Size::ExtraSmall => IconSize::Small,
+ Size::Large, Size::ExtraLarge => IconSize::Large,
+ default => null,
+ };
+
+ $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 = $hasTooltip = filled($tooltip);
+@endphp
+
+<{{ $tag }}
+ @if (($tag === 'a') && (! ($disabled && $hasTooltip)))
+ {{ \Filament\Support\generate_href_html($href, $target === '_blank', $spaMode) }}
+ @endif
+ @if ($keyBindings)
+ x-bind:id="$id('key-bindings')"
+ x-mousetrap.global.{{ collect($keyBindings)->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([
+ 'aria-disabled' => $disabled ? 'true' : null,
+ 'aria-label' => $label,
+ 'disabled' => $disabled && blank($tooltip),
+ 'form' => $formId,
+ 'type' => $tag === 'button' ? $type : null,
+ 'wire:loading.attr' => $tag === 'button' ? 'disabled' : null,
+ 'wire:target' => ($hasLoadingIndicator && $loadingIndicatorTarget) ? $loadingIndicatorTarget : null,
+ ], escape: false)
+ ->merge([
+ 'title' => $hasTooltip ? null : $label,
+ ], escape: true)
+ ->when(
+ $disabled && $hasTooltip,
+ fn (ComponentAttributeBag $attributes) => $attributes->filter(
+ fn (mixed $value, string $key): bool => ! str($key)->startsWith(['href', 'x-on:', 'wire:click']),
+ ),
+ )
+ ->class([
+ 'fi-icon-btn',
+ 'fi-disabled' => $disabled,
+ ($size instanceof Size) ? "fi-size-{$size->value}" : (is_string($size) ? $size : ''),
+ ])
+ ->color(IconButtonComponent::class, $color)
+ }}
+>
+ {{
+ \Filament\Support\generate_icon_html($icon, $iconAlias, (new \Illuminate\View\ComponentAttributeBag([
+ 'wire:loading.remove.delay.' . config('filament.livewire_loading_delay', 'default') => $hasLoadingIndicator,
+ 'wire:target' => $hasLoadingIndicator ? $loadingIndicatorTarget : false,
+ ])), size: $iconSize)
+ }}
+
+ @if ($hasLoadingIndicator)
+ {{
+ \Filament\Support\generate_loading_indicator_html((new \Illuminate\View\ComponentAttributeBag([
+ 'wire:loading.delay.' . config('filament.livewire_loading_delay', 'default') => '',
+ 'wire:target' => $loadingIndicatorTarget,
+ ])), size: $iconSize)
+ }}
+ @endif
+
+ @if (filled($badge))
+
+ @if ($badge instanceof \Illuminate\View\ComponentSlot)
+ {{ $badge }}
+ @else
+ color(BadgeComponent::class, $badgeColor)->class([
+ 'fi-badge',
+ ($badgeSize instanceof Size) ? "fi-size-{$badgeSize->value}" : (is_string($badgeSize) ? $badgeSize : ''),
+ ])
+ }}
+ >
+ {{ $badge }}
+
+ @endif
+
+ @endif
+{{ $tag }}>
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..8dd0c64
--- /dev/null
+++ b/resources/views/vendor/filament/components/icon.blade.php
@@ -0,0 +1,7 @@
+@props([
+ 'alias' => null,
+ 'icon' => null,
+ 'size' => null,
+])
+
+{{ \Filament\Support\generate_icon_html($icon, $alias, $attributes, $size) }}
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..1423a4d
--- /dev/null
+++ b/resources/views/vendor/filament/components/input/checkbox.blade.php
@@ -0,0 +1,26 @@
+@props([
+ 'alpineValid' => null,
+ 'valid' => true,
+])
+
+@php
+ $hasAlpineValidClasses = filled($alpineValid);
+@endphp
+
+class([
+ 'fi-checkbox-input',
+ 'fi-valid' => (! $hasAlpineValidClasses) && $valid,
+ 'fi-invalid' => (! $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..ff30a0b
--- /dev/null
+++ b/resources/views/vendor/filament/components/input/index.blade.php
@@ -0,0 +1,14 @@
+@props([
+ 'inlinePrefix' => false,
+ 'inlineSuffix' => false,
+])
+
+class([
+ 'fi-input',
+ 'fi-input-has-inline-prefix' => $inlinePrefix,
+ 'fi-input-has-inline-suffix' => $inlineSuffix,
+ ])
+ }}
+/>
diff --git a/resources/views/vendor/filament/components/input/one-time-code.blade.php b/resources/views/vendor/filament/components/input/one-time-code.blade.php
new file mode 100644
index 0000000..41783bc
--- /dev/null
+++ b/resources/views/vendor/filament/components/input/one-time-code.blade.php
@@ -0,0 +1,42 @@
+@props([
+ 'length' => 6,
+])
+
+class([
+ 'fi-one-time-code-input-ctn',
+ ])
+ }}
+>
+ @foreach (range(1, $length) as $digit)
+
+ @endforeach
+
+
+
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..6bfdac4
--- /dev/null
+++ b/resources/views/vendor/filament/components/input/radio.blade.php
@@ -0,0 +1,14 @@
+@props([
+ 'valid' => true,
+])
+
+class([
+ 'fi-radio-input',
+ 'fi-invalid' => ! $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..4776de3
--- /dev/null
+++ b/resources/views/vendor/filament/components/input/select.blade.php
@@ -0,0 +1,15 @@
+@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..002521f
--- /dev/null
+++ b/resources/views/vendor/filament/components/input/wrapper.blade.php
@@ -0,0 +1,163 @@
+@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
+ use Filament\Support\View\Components\InputComponent\WrapperComponent\IconComponent;
+ use Illuminate\View\ComponentAttributeBag;
+
+ $prefixActions = array_filter(
+ $prefixActions,
+ fn (\Filament\Actions\Action $prefixAction): bool => $prefixAction->isVisible(),
+ );
+
+ $suffixActions = array_filter(
+ $suffixActions,
+ fn (\Filament\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;
+
+ $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',
+ 'fi-disabled' => (! $hasAlpineClasses) && $disabled,
+ 'fi-invalid' => (! $hasAlpineClasses) && (! $valid),
+ ])
+ }}
+>
+ @if ($hasPrefix || $hasLoadingIndicator)
+
$hasPrefix,
+ 'fi-inline' => $inlinePrefix,
+ 'fi-input-wrp-prefix-has-label' => filled($prefix),
+ ])
+ >
+ @if (count($prefixActions))
+
+ @foreach ($prefixActions as $prefixAction)
+ {{ $prefixAction }}
+ @endforeach
+
+ @endif
+
+ {{
+ \Filament\Support\generate_icon_html($prefixIcon, $prefixIconAlias, (new \Illuminate\View\ComponentAttributeBag)
+ ->merge([
+ 'wire:loading.remove.delay.' . config('filament.livewire_loading_delay', 'default') => $hasLoadingIndicator,
+ 'wire:target' => $hasLoadingIndicator ? $loadingIndicatorTarget : false,
+ ], escape: false)
+ ->color(IconComponent::class, $prefixIconColor))
+ }}
+
+ @if ($hasLoadingIndicator)
+ {{
+ \Filament\Support\generate_loading_indicator_html((new \Illuminate\View\ComponentAttributeBag([
+ 'wire:loading.delay.' . config('filament.livewire_loading_delay', 'default') => $hasPrefix,
+ 'wire:target' => $hasPrefix ? $loadingIndicatorTarget : null,
+ ]))->color(IconComponent::class, 'gray'))
+ }}
+ @endif
+
+ @if (filled($prefix))
+
+ {{ $prefix }}
+
+ @endif
+
+ @endif
+
+
$hasLoadingIndicator && (! $hasPrefix) && $inlinePrefix,
+ ])
+ >
+ {{ $slot }}
+
+
+ @if ($hasSuffix)
+
$inlineSuffix,
+ 'fi-input-wrp-suffix-has-label' => filled($suffix),
+ ])
+ >
+ @if (filled($suffix))
+
+ {{ $suffix }}
+
+ @endif
+
+ {{
+ \Filament\Support\generate_icon_html($suffixIcon, $suffixIconAlias, (new \Illuminate\View\ComponentAttributeBag)
+ ->merge([
+ 'wire:loading.remove.delay.' . config('filament.livewire_loading_delay', 'default') => $hasLoadingIndicator,
+ 'wire:target' => $hasLoadingIndicator ? $loadingIndicatorTarget : false,
+ ], escape: false)
+ ->color(IconComponent::class, $suffixIconColor))
+ }}
+
+ @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..2615ae3
--- /dev/null
+++ b/resources/views/vendor/filament/components/link.blade.php
@@ -0,0 +1,175 @@
+@php
+ use Filament\Support\Enums\FontWeight;
+ use Filament\Support\Enums\IconPosition;
+ use Filament\Support\Enums\IconSize;
+ use Filament\Support\Enums\Size;
+ use Filament\Support\View\Components\BadgeComponent;
+ use Filament\Support\View\Components\LinkComponent;
+ use Illuminate\View\ComponentAttributeBag;
+@endphp
+
+@props([
+ 'badge' => null,
+ 'badgeColor' => 'primary',
+ 'badgeSize' => Size::ExtraSmall,
+ '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' => Size::Medium,
+ 'spaMode' => null,
+ 'tag' => 'a',
+ 'target' => null,
+ 'tooltip' => null,
+ 'type' => 'button',
+ 'weight' => null,
+])
+
+@php
+ if (! $iconPosition instanceof IconPosition) {
+ $iconPosition = filled($iconPosition) ? (IconPosition::tryFrom($iconPosition) ?? $iconPosition) : null;
+ }
+
+ if (! $badgeSize instanceof Size) {
+ $badgeSize = filled($badgeSize) ? (Size::tryFrom($badgeSize) ?? $badgeSize) : null;
+ }
+
+ if (! $size instanceof Size) {
+ $size = filled($size) ? (Size::tryFrom($size) ?? $size) : null;
+ }
+
+ if (filled($iconSize) && (! $iconSize instanceof IconSize)) {
+ $iconSize = IconSize::tryFrom($iconSize) ?? $iconSize;
+ }
+
+ $iconSize ??= match ($size) {
+ Size::ExtraSmall, Size::Small => IconSize::Small,
+ default => null,
+ };
+
+ if (! $weight instanceof FontWeight) {
+ $weight = filled($weight) ? (FontWeight::tryFrom($weight) ?? $weight) : null;
+ }
+
+ $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
+
+<{{ $tag }}
+ @if (($tag === 'a') && (! ($disabled && $hasTooltip)))
+ {{ \Filament\Support\generate_href_html($href, $target === '_blank', $spaMode) }}
+ @endif
+ @if ($keyBindings)
+ x-bind:id="$id('key-bindings')"
+ x-mousetrap.global.{{ collect($keyBindings)->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([
+ 'aria-disabled' => $disabled ? 'true' : null,
+ 'disabled' => $disabled && blank($tooltip),
+ 'form' => $formId,
+ 'type' => $tag === 'button' ? $type : null,
+ 'wire:loading.attr' => $tag === 'button' ? 'disabled' : null,
+ 'wire:target' => ($hasLoadingIndicator && $loadingIndicatorTarget) ? $loadingIndicatorTarget : null,
+ ], escape: false)
+ ->when(
+ $disabled && $hasTooltip,
+ fn (ComponentAttributeBag $attributes) => $attributes->filter(
+ fn (mixed $value, string $key): bool => ! str($key)->startsWith(['href', 'x-on:', 'wire:click']),
+ ),
+ )
+ ->class([
+ 'fi-link',
+ 'fi-disabled' => $disabled,
+ ($size instanceof Size) ? "fi-size-{$size->value}" : (is_string($size) ? $size : ''),
+ ($weight instanceof FontWeight) ? "fi-font-{$weight->value}" : (is_string($weight) ? $weight : ''),
+ ])
+ ->color(LinkComponent::class, $color)
+ }}
+>
+ @if ($iconPosition === IconPosition::Before)
+ @if ($icon)
+ {{
+ \Filament\Support\generate_icon_html($icon, $iconAlias, (new \Illuminate\View\ComponentAttributeBag([
+ 'wire:loading.remove.delay.' . config('filament.livewire_loading_delay', 'default') => $hasLoadingIndicator,
+ 'wire:target' => $hasLoadingIndicator ? $loadingIndicatorTarget : false,
+ ])), size: $iconSize)
+ }}
+ @endif
+
+ @if ($hasLoadingIndicator)
+ {{
+ \Filament\Support\generate_loading_indicator_html((new \Illuminate\View\ComponentAttributeBag([
+ 'wire:loading.delay.' . config('filament.livewire_loading_delay', 'default') => '',
+ 'wire:target' => $loadingIndicatorTarget,
+ ])), size: $iconSize)
+ }}
+ @endif
+ @endif
+
+ @if (! $labelSrOnly)
+ {{ $slot }}
+ @endif
+
+ @if ($iconPosition === IconPosition::After)
+ @if ($icon)
+ {{
+ \Filament\Support\generate_icon_html($icon, $iconAlias, (new \Illuminate\View\ComponentAttributeBag([
+ 'wire:loading.remove.delay.' . config('filament.livewire_loading_delay', 'default') => $hasLoadingIndicator,
+ 'wire:target' => $hasLoadingIndicator ? $loadingIndicatorTarget : false,
+ ])), size: $iconSize)
+ }}
+ @endif
+
+ @if ($hasLoadingIndicator)
+ {{
+ \Filament\Support\generate_loading_indicator_html((new \Illuminate\View\ComponentAttributeBag([
+ 'wire:loading.delay.' . config('filament.livewire_loading_delay', 'default') => '',
+ 'wire:target' => $loadingIndicatorTarget,
+ ])), size: $iconSize)
+ }}
+ @endif
+ @endif
+
+ @if (filled($badge))
+
+ @if ($badge instanceof \Illuminate\View\ComponentSlot)
+ {{ $badge }}
+ @else
+ color(BadgeComponent::class, $badgeColor)->class([
+ 'fi-badge',
+ ($badgeSize instanceof Size) ? "fi-size-{$badgeSize->value}" : (is_string($badgeSize) ? $badgeSize : ''),
+ ])
+ }}
+ >
+ {{ $badge }}
+
+ @endif
+
+ @endif
+{{ $tag }}>
+@trim
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..b4aeeda
--- /dev/null
+++ b/resources/views/vendor/filament/components/loading-indicator.blade.php
@@ -0,0 +1 @@
+{{ \Filament\Support\generate_loading_indicator_html($attributes) }}
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..d2b436e
--- /dev/null
+++ b/resources/views/vendor/filament/components/loading-section.blade.php
@@ -0,0 +1,14 @@
+@props([
+ 'columnSpan' => [],
+ 'columnStart' => [],
+ 'height' => null,
+])
+
+gridColumn($columnSpan, $columnStart)
+ ->class(['fi-section fi-loading-section'])
+ ->style(['height: ' . ($height ?? '8rem')])
+ }}
+>
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..1355014
--- /dev/null
+++ b/resources/views/vendor/filament/components/modal/description.blade.php
@@ -0,0 +1,5 @@
+class(['fi-modal-description']) }}
+>
+ {{ $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..a3127cd
--- /dev/null
+++ b/resources/views/vendor/filament/components/modal/heading.blade.php
@@ -0,0 +1,5 @@
+class(['fi-modal-heading']) }}
+>
+ {{ $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..ec3489a
--- /dev/null
+++ b/resources/views/vendor/filament/components/modal/index.blade.php
@@ -0,0 +1,267 @@
+@php
+ use Filament\Support\Enums\Alignment;
+ use Filament\Support\Enums\Width;
+ use Filament\Support\View\Components\ModalComponent\IconComponent;
+ use Illuminate\View\ComponentAttributeBag;
+@endphp
+
+@props([
+ 'alignment' => Alignment::Start,
+ 'ariaLabelledby' => null,
+ 'autofocus' => \Filament\Support\View\Components\ModalComponent::$isAutofocused,
+ 'closeButton' => \Filament\Support\View\Components\ModalComponent::$hasCloseButton,
+ 'closeByClickingAway' => \Filament\Support\View\Components\ModalComponent::$isClosedByClickingAway,
+ 'closeByEscaping' => \Filament\Support\View\Components\ModalComponent::$isClosedByEscaping,
+ 'closeEventName' => 'close-modal',
+ 'closeQuietlyEventName' => 'close-modal-quietly',
+ 'description' => null,
+ '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
+ $hasContent = ! \Filament\Support\is_slot_empty($slot);
+ $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);
+
+ 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 (is_string($width)) {
+ $width = Width::tryFrom($width) ?? $width;
+ }
+
+ $closeEventHandler = filled($id) ? '$dispatch(' . \Illuminate\Support\Js::from($closeEventName) . ', { id: ' . \Illuminate\Support\Js::from($id) . ' })' : 'close()';
+
+ $wireSubmitHandler = $attributes->get('wire:submit.prevent');
+ $attributes = $attributes->except(['wire:submit.prevent']);
+@endphp
+
+@if ($trigger)
+ {!! '' !!}
+ {{-- Avoid formatting issues with unclosed elements --}}
+
+
attributes->get('disabled'))
+ @if ($id)
+ x-on:click="$dispatch(@js($openEventName), { id: @js($id) })"
+ @else
+ x-on:click="$el.nextElementSibling.dispatchEvent(new CustomEvent(@js($openEventName)))"
+ @endif
+ @endif
+ {{ $trigger->attributes->except(['disabled'])->class(['fi-modal-trigger']) }}
+ >
+ {{ $trigger }}
+
+@endif
+
+
class([
+ 'fi-modal',
+ 'fi-absolute-positioning-context',
+ 'fi-modal-slide-over' => $slideOver,
+ 'fi-width-screen' => $width === Width::Screen,
+ ])
+ }}
+>
+
+
+
$closeByClickingAway,
+ ])
+ >
+ <{{ filled($wireSubmitHandler) ? 'form' : 'div' }}
+ @if ($closeByEscaping)
+ x-on:keydown.window.escape="{{ $closeEventHandler }}"
+ @endif
+ x-show="isWindowVisible"
+ x-transition:enter="fi-transition-enter"
+ x-transition:leave="fi-transition-leave"
+ @if ($width !== Width::Screen)
+ x-transition:enter-start="fi-transition-enter-start"
+ x-transition:enter-end="fi-transition-enter-end"
+ x-transition:leave-start="fi-transition-leave-start"
+ x-transition:leave-end="fi-transition-leave-end"
+ @endif
+ @if (filled($wireSubmitHandler))
+ wire:submit.prevent="{!! $wireSubmitHandler !!}"
+ @endif
+ @if (filled($id))
+ wire:key="{{ isset($this) ? "{$this->getId()}." : '' }}modal.{{ $id }}.window"
+ @endif
+ {{
+ ($extraModalWindowAttributeBag ?? new \Illuminate\View\ComponentAttributeBag)->class([
+ 'fi-modal-window',
+ 'fi-modal-window-has-close-btn' => $closeButton,
+ 'fi-modal-window-has-content' => $hasContent,
+ 'fi-modal-window-has-footer' => $hasFooter,
+ 'fi-modal-window-has-icon' => $hasIcon,
+ 'fi-modal-window-has-sticky-header' => $stickyHeader,
+ 'fi-hidden' => ! $visible,
+ ($alignment instanceof Alignment) ? "fi-align-{$alignment->value}" : null,
+ ($width instanceof Width) ? "fi-width-{$width->value}" : (is_string($width) ? $width : null),
+ ])
+ }}
+ >
+ @if ($heading || $header)
+
getId()}." : '' }}modal.{{ $id }}.header"
+ @endif
+ @class([
+ 'fi-modal-header',
+ 'fi-sticky' => $stickyHeader,
+ 'fi-vertical-align-center' => $hasIcon && $hasHeading && (! $hasDescription) && in_array($alignment, [Alignment::Start, Alignment::Left]),
+ ])
+ >
+ @if ($closeButton)
+
+ @endif
+
+ @if ($header)
+ {{ $header }}
+ @else
+ @if ($hasIcon)
+
+
color(IconComponent::class, $iconColor)->class(['fi-modal-icon-bg']) }}
+ >
+ {{ \Filament\Support\generate_icon_html($icon, $iconAlias, size: \Filament\Support\Enums\IconSize::Large) }}
+
+
+ @endif
+
+
+
+ {{ $heading }}
+
+
+ @if ($hasDescription)
+
+ {{ $description }}
+
+ @endif
+
+ @endif
+
+ @endif
+
+ @if ($hasContent)
+
getId()}." : '' }}modal.{{ $id }}.content"
+ @endif
+ class="fi-modal-content"
+ >
+ {{ $slot }}
+
+ @endif
+
+ @if ($hasFooter)
+
getId()}." : '' }}modal.{{ $id }}.footer"
+ @endif
+ @class([
+ 'fi-modal-footer',
+ 'fi-sticky' => $stickyFooter,
+ ($footerActionsAlignment instanceof Alignment) ? "fi-align-{$footerActionsAlignment->value}" : null,
+ ])
+ >
+ @if (! \Filament\Support\is_slot_empty($footer))
+ {{ $footer }}
+ @else
+
+ @endif
+
+ @endif
+ {{ filled($wireSubmitHandler) ? 'form' : 'div' }}>
+
+
+
+@if ($trigger)
+ {!! '
' !!}
+ {{-- Avoid formatting issues with unclosed elements --}}
+@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..509a295
--- /dev/null
+++ b/resources/views/vendor/filament/components/pagination/index.blade.php
@@ -0,0 +1,208 @@
+@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..f81314d
--- /dev/null
+++ b/resources/views/vendor/filament/components/pagination/item.blade.php
@@ -0,0 +1,39 @@
+@props([
+ 'active' => false,
+ 'ariaLabel' => null,
+ 'disabled' => false,
+ 'icon' => null,
+ 'iconAlias' => null,
+ 'label' => null,
+])
+
+class([
+ 'fi-pagination-item',
+ '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..089fe24
--- /dev/null
+++ b/resources/views/vendor/filament/components/section/description.blade.php
@@ -0,0 +1,5 @@
+class(['fi-section-header-description']) }}
+>
+ {{ $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..c4b2413
--- /dev/null
+++ b/resources/views/vendor/filament/components/section/heading.blade.php
@@ -0,0 +1,5 @@
+class(['fi-section-header-heading']) }}
+>
+ {{ $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..76efc62
--- /dev/null
+++ b/resources/views/vendor/filament/components/section/index.blade.php
@@ -0,0 +1,138 @@
+@php
+ use Filament\Support\Enums\Alignment;
+ use Filament\Support\Enums\IconSize;
+ use Filament\Support\View\Components\SectionComponent\IconComponent;
+
+ use function Filament\Support\is_slot_empty;
+@endphp
+
+@props([
+ 'afterHeader' => null,
+ 'aside' => false,
+ 'collapsed' => false,
+ 'collapseId' => null,
+ 'collapsible' => false,
+ 'compact' => false,
+ 'contained' => true,
+ 'contentBefore' => false,
+ 'description' => null,
+ 'divided' => false,
+ 'footer' => null,
+ 'hasContentEl' => true,
+ 'heading' => null,
+ 'headingTag' => 'h2',
+ 'icon' => null,
+ 'iconColor' => 'gray',
+ 'iconSize' => null,
+ 'persistCollapsed' => false,
+ 'secondary' => false,
+])
+
+@php
+ if (filled($iconSize) && (! $iconSize instanceof IconSize)) {
+ $iconSize = IconSize::tryFrom($iconSize) ?? $iconSize;
+ }
+
+ $hasDescription = filled((string) $description);
+ $hasHeading = filled($heading);
+ $hasIcon = filled($icon);
+ $hasHeader = $hasIcon || $hasHeading || $hasDescription || $collapsible || (! is_slot_empty($afterHeader));
+@endphp
+
+class([
+ 'fi-section',
+ 'fi-section-not-contained' => ! $contained,
+ 'fi-section-has-content-before' => $contentBefore,
+ 'fi-section-has-header' => $hasHeader,
+ 'fi-aside' => $aside,
+ 'fi-compact' => $compact,
+ 'fi-collapsible' => $collapsible,
+ 'fi-divided' => $divided,
+ 'fi-secondary' => $secondary,
+ ])
+ }}
+>
+ @if ($hasHeader)
+
+ @endif
+
+
+ @if ($hasContentEl)
+
+ {{ $slot }}
+
+ @else
+ {{ $slot }}
+ @endif
+
+ @if (! is_slot_empty($footer))
+
+ @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..56dcd47
--- /dev/null
+++ b/resources/views/vendor/filament/components/tabs/index.blade.php
@@ -0,0 +1,22 @@
+@props([
+ 'contained' => false,
+ 'label' => null,
+ 'vertical' => false,
+])
+
+
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..3cb559f
--- /dev/null
+++ b/resources/views/vendor/filament/components/tabs/item.blade.php
@@ -0,0 +1,81 @@
+@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);
+@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="{
+ 'fi-active': {{ $alpineActive }},
+ }"
+ @endif
+ {{
+ $attributes
+ ->merge([
+ 'aria-selected' => $active,
+ 'role' => 'tab',
+ ])
+ ->class([
+ 'fi-tabs-item',
+ 'fi-active' => (! $hasAlpineActiveClasses) && $active,
+ ])
+ }}
+>
+ @if ($icon && $iconPosition === IconPosition::Before)
+ {{ \Filament\Support\generate_icon_html($icon) }}
+ @endif
+
+
+ {{ $slot }}
+
+
+ @if ($icon && $iconPosition === IconPosition::After)
+ {{ \Filament\Support\generate_icon_html($icon) }}
+ @endif
+
+ @if (filled($badge))
+ @if ($badge instanceof \Illuminate\View\ComponentSlot)
+ {{ $badge }}
+ @else
+
+ {{ $badge }}
+
+ @endif
+ @endif
+{{ $tag }}>
diff --git a/resources/views/vendor/filament/components/toggle.blade.php b/resources/views/vendor/filament/components/toggle.blade.php
new file mode 100644
index 0000000..348e76f
--- /dev/null
+++ b/resources/views/vendor/filament/components/toggle.blade.php
@@ -0,0 +1,67 @@
+@php
+ use Filament\Support\View\Components\ToggleComponent;
+ use Illuminate\Support\Arr;
+@endphp
+
+@props([
+ 'state',
+ 'offColor' => 'gray',
+ 'offIcon' => null,
+ 'onColor' => 'primary',
+ 'onIcon' => null,
+])
+
+
+
+@if ($state)
+
+
+
+
+
+ {{ \Filament\Support\generate_icon_html($onIcon, size: \Filament\Support\Enums\IconSize::ExtraSmall) }}
+
+
+
+@endif