From 3153b1bfe166ececd7b37812affdedaf8343efd8 Mon Sep 17 00:00:00 2001 From: Michael Aerni Date: Tue, 29 Oct 2024 14:39:42 -0400 Subject: [PATCH] Export starter kit --- README.md | 13 +++-- app/Jobs/ProcessImages.php | 10 ++-- app/Listeners/ProcessImages.php | 19 ++++--- app/Livewire/Gallery.php | 53 ++++++++++-------- app/Livewire/GalleryItem.php | 2 +- app/Providers/ComputedPropertiesProvider.php | 56 +++++++++++-------- config/statamic/bard_texstyle.php | 18 ++++++ content/assets/galleries.yaml | 7 --- content/collections/galleries/couples.md | 23 -------- content/collections/galleries/engagements.md | 21 ------- content/collections/galleries/families.md | 21 ------- content/collections/galleries/travels.md | 21 ------- content/collections/galleries/weddings.md | 24 -------- content/collections/pages/testimonials.md | 24 ++++++++ .../b13d8e83-6753-4fae-ab57-9f6032cb87b1.md | 27 --------- content/collections/testimonials.yaml | 18 ++++++ .../06f4b45b-6066-4d33-87e4-bcef4e3d55d7.md | 14 +++++ .../438257a2-4e2e-453a-870e-04672c81f6c3.md | 14 +++++ .../486aa65a-7a58-493a-9766-26033562b83a.md | 14 +++++ .../49e2d738-d8c4-4504-adc0-f6ca5f0d40f7.md | 14 +++++ .../4ac51b2d-efc1-4c8e-a186-591239cd5a48.md | 14 +++++ .../666b3e81-2179-4c5f-a300-a5a50c91c981.md | 14 +++++ .../73a6f411-a257-4f08-881e-129df54f8692.md | 14 +++++ .../778feadc-5777-46b6-bd35-722cd711a41e.md | 14 +++++ .../99bcb781-be49-4cc0-8c1c-e2396fce4e89.md | 14 +++++ .../c35df957-8317-482f-aa8f-5f591c2587db.md | 14 +++++ .../ea8f64ba-1928-42a4-a01b-049547b9700b.md | 14 +++++ .../eab12d9e-410f-4c91-880e-a80acbf63cb6.md | 14 +++++ content/globals/settings.yaml | 1 + content/taxonomies/categories/buildings.yaml | 4 -- content/taxonomies/categories/mountains.yaml | 4 -- content/taxonomies/categories/plants.yaml | 4 -- content/taxonomies/categories/portraits.yaml | 1 - content/taxonomies/categories/test.yaml | 1 - content/taxonomies/categories/travels.yaml | 1 - content/taxonomies/categories/weddings.yaml | 1 - content/trees/collections/pages.yaml | 4 +- content/trees/collections/testimonials.yaml | 1 + content/trees/navigation/main.yaml | 3 + .../{site-B9hh6QFi.js => site-BFtSqNcv.js} | 48 ++++++++-------- public/build/assets/site-BppOWkkg.css | 1 - public/build/assets/site-mklssHBj.css | 1 + public/build/manifest.json | 4 +- .../collections/testimonials/testimonial.yaml | 36 ++++++++++++ resources/blueprints/globals/settings.yaml | 28 +++++++++- resources/css/components/grid.css | 15 +++++ resources/css/components/stack.css | 15 ----- resources/css/site.css | 2 +- resources/fieldsets/article.yaml | 2 + resources/fieldsets/gallery.yaml | 8 +++ resources/fieldsets/image_text.yaml | 1 + resources/fieldsets/page_builder.yaml | 15 ++++- resources/fieldsets/testimonials.yaml | 37 ++++++++++++ resources/js/site.js | 3 +- resources/js/stack.js | 17 ------ .../components/gallery-card.antlers.html | 4 +- .../components/gallery-toolbar.blade.php | 4 +- resources/views/components/image.antlers.html | 5 -- .../views/components/masonry-grid.blade.php | 2 +- .../components/pricing-card.antlers.html | 14 +++-- .../components/testimonial-card.antlers.html | 13 +++++ .../components/testimonials-grid.antlers.html | 9 +++ resources/views/default.antlers.html | 2 +- .../galleries/categories/show.antlers.html | 4 +- resources/views/gallery.antlers.html | 4 +- resources/views/layout.antlers.html | 14 ++++- .../views/livewire/gallery-item.blade.php | 9 +-- .../page_builder/blocks/_article.antlers.html | 4 +- .../page_builder/blocks/_bio.antlers.html | 4 +- .../page_builder/blocks/_hero.antlers.html | 2 +- .../blocks/_image_text.antlers.html | 2 +- .../blocks/_inline_gallery.antlers.html | 15 +++++ .../blocks/_testimonials.antlers.html | 17 ++++++ .../private_galleries/layout.antlers.html | 11 +++- .../responsiveImage.blade.php | 3 +- .../auth/protect/password.antlers.html | 37 ++++++------ starter-kit.yaml | 12 ++++ tailwind.config.js | 49 +--------------- 78 files changed, 632 insertions(+), 391 deletions(-) delete mode 100644 content/assets/galleries.yaml delete mode 100644 content/collections/galleries/couples.md delete mode 100644 content/collections/galleries/engagements.md delete mode 100644 content/collections/galleries/families.md delete mode 100644 content/collections/galleries/travels.md delete mode 100644 content/collections/galleries/weddings.md create mode 100644 content/collections/pages/testimonials.md delete mode 100644 content/collections/private_galleries/b13d8e83-6753-4fae-ab57-9f6032cb87b1.md create mode 100644 content/collections/testimonials.yaml create mode 100644 content/collections/testimonials/06f4b45b-6066-4d33-87e4-bcef4e3d55d7.md create mode 100644 content/collections/testimonials/438257a2-4e2e-453a-870e-04672c81f6c3.md create mode 100644 content/collections/testimonials/486aa65a-7a58-493a-9766-26033562b83a.md create mode 100644 content/collections/testimonials/49e2d738-d8c4-4504-adc0-f6ca5f0d40f7.md create mode 100644 content/collections/testimonials/4ac51b2d-efc1-4c8e-a186-591239cd5a48.md create mode 100644 content/collections/testimonials/666b3e81-2179-4c5f-a300-a5a50c91c981.md create mode 100644 content/collections/testimonials/73a6f411-a257-4f08-881e-129df54f8692.md create mode 100644 content/collections/testimonials/778feadc-5777-46b6-bd35-722cd711a41e.md create mode 100644 content/collections/testimonials/99bcb781-be49-4cc0-8c1c-e2396fce4e89.md create mode 100644 content/collections/testimonials/c35df957-8317-482f-aa8f-5f591c2587db.md create mode 100644 content/collections/testimonials/ea8f64ba-1928-42a4-a01b-049547b9700b.md create mode 100644 content/collections/testimonials/eab12d9e-410f-4c91-880e-a80acbf63cb6.md delete mode 100644 content/taxonomies/categories/buildings.yaml delete mode 100644 content/taxonomies/categories/mountains.yaml delete mode 100644 content/taxonomies/categories/plants.yaml delete mode 100644 content/taxonomies/categories/portraits.yaml delete mode 100644 content/taxonomies/categories/test.yaml delete mode 100644 content/taxonomies/categories/travels.yaml delete mode 100644 content/taxonomies/categories/weddings.yaml create mode 100644 content/trees/collections/testimonials.yaml rename public/build/assets/{site-B9hh6QFi.js => site-BFtSqNcv.js} (52%) delete mode 100644 public/build/assets/site-BppOWkkg.css create mode 100644 public/build/assets/site-mklssHBj.css create mode 100644 resources/blueprints/collections/testimonials/testimonial.yaml create mode 100644 resources/css/components/grid.css delete mode 100644 resources/css/components/stack.css create mode 100644 resources/fieldsets/gallery.yaml create mode 100644 resources/fieldsets/testimonials.yaml delete mode 100644 resources/js/stack.js delete mode 100644 resources/views/components/image.antlers.html create mode 100644 resources/views/components/testimonial-card.antlers.html create mode 100644 resources/views/components/testimonials-grid.antlers.html create mode 100644 resources/views/page_builder/blocks/_inline_gallery.antlers.html create mode 100644 resources/views/page_builder/blocks/_testimonials.antlers.html diff --git a/README.md b/README.md index fbf080e..094192d 100644 --- a/README.md +++ b/README.md @@ -5,12 +5,13 @@ ## Features -- Galleries collection to show off your work -- Private galleries to share photo-sessions with your clients -- Categorize your galleries with the categories taxonomy +- Show your work with the galleries collection +- Share photos with private galleries +- Categorize galleries with the categories taxonomy - Interactive categories filter linking to the taxonomy term page -- Responsive images for fast load times -- Page builder with blocks for galleries, bio, forms, and more +- Responsive and lazy-loaded images for fast load times +- Build trust with client testimonials +- Page builder with blocks for galleries, bio, testimonials, forms, and more - Pricing cards - Inquiry form - Clean & modern design @@ -18,7 +19,7 @@ - Built with [Livewire](https://livewire.laravel.com/), [Alpine.js](https://github.com/alpinejs/alpine), and [TailwindCSS](https://tailwindcss.com) ### Private Galleries -- Password protection with a beautiful login page +- Password protection with gallery-aware login page - Image processing with options for watermark and low-res images - Download and like individual images - Download a zip of all images or a selection thereof diff --git a/app/Jobs/ProcessImages.php b/app/Jobs/ProcessImages.php index 8ce3f92..1921ea5 100644 --- a/app/Jobs/ProcessImages.php +++ b/app/Jobs/ProcessImages.php @@ -2,14 +2,14 @@ namespace App\Jobs; +use Illuminate\Contracts\Queue\ShouldQueue; +use Illuminate\Foundation\Queue\Queueable; use Illuminate\Http\File; +use Illuminate\Support\Collection; +use Statamic\Contracts\Assets\Asset; use Statamic\Facades\Glide; use Statamic\Facades\GlobalSet; use Statamic\Globals\Variables; -use Illuminate\Support\Collection; -use Statamic\Contracts\Assets\Asset; -use Illuminate\Foundation\Queue\Queueable; -use Illuminate\Contracts\Queue\ShouldQueue; class ProcessImages implements ShouldQueue { @@ -32,7 +32,7 @@ public function handle(): void } $this->assets - ->filter->isImage() + ->filter(fn (Asset $asset) => $asset->extensionIsOneOf(['jpg', 'jpeg', 'png', 'webp'])) ->each($this->processAsset(...)); } diff --git a/app/Listeners/ProcessImages.php b/app/Listeners/ProcessImages.php index b75a6ca..12fdd7c 100644 --- a/app/Listeners/ProcessImages.php +++ b/app/Listeners/ProcessImages.php @@ -2,9 +2,11 @@ namespace App\Listeners; -use Statamic\Events\EntrySaved; -use Illuminate\Contracts\Queue\ShouldQueue; use App\Jobs\ProcessImages as ProcessImagesJob; +use Illuminate\Contracts\Queue\ShouldQueue; +use Illuminate\Support\Facades\Bus; +use Illuminate\Support\Facades\Cache; +use Statamic\Events\EntrySaved; class ProcessImages implements ShouldQueue { @@ -14,11 +16,14 @@ public function handle(EntrySaved $event): void return; } - ProcessImagesJob::dispatch( - assets: $event->entry->assets, - watermark: $event->entry->watermark, - lowres: $event->entry->lowres, - ); + Bus::chain([ + new ProcessImagesJob( + assets: $event->entry->assets, + watermark: $event->entry->watermark, + lowres: $event->entry->lowres, + ), + fn () => Cache::forget('processed_images'), + ])->dispatch(); } protected function shouldProcessImages(EntrySaved $event): bool diff --git a/app/Livewire/Gallery.php b/app/Livewire/Gallery.php index a4a9089..cc4a850 100644 --- a/app/Livewire/Gallery.php +++ b/app/Livewire/Gallery.php @@ -19,39 +19,37 @@ class Gallery extends Component public array $selection = []; - #[Computed] - public function entry(): Entry + public array $likes = []; + + public function mount() { - return \Statamic\Facades\Entry::find($this->id); + $this->likes = $this->entry->likes->map->id->all(); } - #[Computed] - public function assets(array $selection = []): AssetCollection + #[Computed(persist: true)] + public function entry(): Entry { - return $this->entry->processed_images - ->when($selection, function ($assets) use ($selection) { - return $assets->filter(fn ($asset) => in_array($asset->id(), $selection)); - }); + return \Statamic\Facades\Entry::find($this->id); } - #[Computed] - public function assetsCount(): int + #[Computed(persist: true)] + public function assets(): AssetCollection { - return $this->assets($this->selection)->count(); + return $this->entry->processed_images; } #[Computed] - public function likes(): AssetCollection + public function assetsCount(): int { - return $this->entry->likes->map->id; + return empty($this->selection) ? $this->assets->count() : count($this->selection); } public function isLiked(string $id): bool { - return $this->likes->contains($id); + return in_array($id, $this->likes); } - #[Computed] + #[Computed(persist: true)] public function downloadEnabled(): bool { return $this->entry->download; @@ -60,7 +58,11 @@ public function downloadEnabled(): bool #[Computed] public function zipUrl(): string { - return Zip::make($this->assets($this->selection)->all()) + $assets = empty($this->selection) + ? $this->assets->all() + : $this->assets->filter(fn ($asset) => in_array($asset->id(), $this->selection))->all(); + + return Zip::make($assets) ->filename($this->entry->title) ->url(); } @@ -71,8 +73,8 @@ public function updateSelection(string $id): void $selection = collect($this->selection); $this->selection = $selection->contains($id) - ? $selection->diff($id)->all() - : $selection->push($id)->all(); + ? $selection->diff($id)->values()->all() + : $selection->push($id)->values()->all(); } public function resetSelection(): void @@ -86,12 +88,15 @@ public function resetSelection(): void #[Renderless] public function updateLikes(string $id): void { - $likes = $this->likes->contains($id) - ? $this->likes->diff($id)->all() - : $this->likes->push($id)->all(); + $likes = collect($this->likes); + + $this->likes = $this->isLiked($id) + ? $likes->diff($id)->values()->all() + : $likes->push($id)->values()->all(); - $assets = $this->assets($likes) - ->map(fn ($asset) => $asset->path()) + $assets = $this->assets + ->filter(fn ($asset) => in_array($asset->id(), $this->likes)) + ->map->path() ->unique() ->values() ->all(); diff --git a/app/Livewire/GalleryItem.php b/app/Livewire/GalleryItem.php index 4deee95..15c07c4 100644 --- a/app/Livewire/GalleryItem.php +++ b/app/Livewire/GalleryItem.php @@ -21,7 +21,7 @@ class GalleryItem extends Component public bool $liked = false; - #[Computed] + #[Computed(persist: true)] public function asset(): Asset { return \Statamic\Facades\Asset::find($this->id); diff --git a/app/Providers/ComputedPropertiesProvider.php b/app/Providers/ComputedPropertiesProvider.php index 05be0c2..efe5cd3 100644 --- a/app/Providers/ComputedPropertiesProvider.php +++ b/app/Providers/ComputedPropertiesProvider.php @@ -3,6 +3,7 @@ namespace App\Providers; use Illuminate\Support\Arr; +use Illuminate\Support\Facades\Cache; use Illuminate\Support\ServiceProvider; use Statamic\Facades\Asset; use Statamic\Facades\Collection; @@ -24,30 +25,37 @@ public function boot(): void }); Collection::computed('private_galleries', 'processed_images', function ($entry, $value) { - $images = $entry->get('assets'); - - if (empty($images)) { - return null; - } - - $shouldProcessImages = $entry->get('watermark') || $entry->get('lowres'); - - if (! $shouldProcessImages) { - return $images; - } - - // TODO: Implement caching. - /* Save resources by returning the cached processed images if the selection of images hasn't changed. */ - - return Asset::query() - ->where('container', 'private_galleries') - ->where('folder', str(Arr::first($images))->before('/')->append('/processed')) - ->whereIn('basename', collect($images)->map(fn ($image) => basename($image))->all()) - ->get() - ->map(fn ($image) => $image->path()) - ->sortBy(fn ($processed) => collect($images)->search(fn ($original) => basename($processed) === basename($original))) - ->values() - ->all(); + return Cache::rememberForever('processed_images', function () use ($entry) { + $images = $entry->get('assets'); + + if (empty($images)) { + return null; + } + + $returnProcessedImages = $entry->get('watermark') || $entry->get('lowres'); + + if (! $returnProcessedImages) { + return $images; + } + + $originalImages = collect($images); + + $processedImages = Asset::query() + ->where('container', 'private_galleries') + ->where('folder', str(Arr::first($images))->before('/')->append('/processed')) + ->whereIn('basename', $originalImages->map(fn ($image) => basename($image))->all()) + ->get() + ->map(fn ($image) => $image->path()); + + /* Fall back to the unprocessed image if a processed version doesn't exist. Like GIFs that are never processed. */ + return $originalImages + ->map(function ($originalImage) use ($processedImages) { + $key = $processedImages->search(fn ($processedImage) => basename($processedImage) === basename($originalImage)); + + return is_numeric($key) ? $processedImages->get($key) : $originalImage; + }) + ->all(); + }); }); } } diff --git a/config/statamic/bard_texstyle.php b/config/statamic/bard_texstyle.php index 1c88778..37a8e2b 100644 --- a/config/statamic/bard_texstyle.php +++ b/config/statamic/bard_texstyle.php @@ -59,6 +59,10 @@ 'class' => 'font-serif text-4xl leading-tight md:text-5xl md:leading-tight xl:text-6xl xl:leading-tight my-8 xl:my-12 2xl:my-16 first:mt-0 last:mb-0', ], + 'heading_2' => [ + 'class' => 'font-serif text-2xl leading-tight md:text-3xl md:leading-tight xl:text-4xl xl:leading-tight my-4 xl:my-8 2xl:my-12 first:mt-0 last:mb-0', + ], + 'paragraph' => [ 'class' => 'text-base leading-relaxed md:text-lg md:leading-relaxed my-8 first:mt-0 last:mb-0', ], @@ -66,6 +70,10 @@ 'link' => [ 'class' => 'underline decoration-1 underline-offset-2 transition hover:text-gray-500 hover:decoration-gray-500 focus:outline-none focus-visible:ring-1 focus-visible:ring-black focus-visible:rounded', ], + + 'unordered_list' => [ + 'class' => 'list-disc list-outside text-base leading-relaxed md:text-lg md:leading-relaxed my-8 ml-4 first:mt-0 last:mb-0', + ], ], 'cta' => [ @@ -78,6 +86,16 @@ ], ], + 'testimonial' => [ + 'paragraph' => [ + 'class' => 'text-sm font-medium xl:text-base my-4 first:mt-0 last:mb-0', + ], + + 'link' => [ + 'class' => 'underline decoration-1 underline-offset-4 transition hover:text-gray-500 hover:decoration-gray-500 focus:outline-none focus-visible:ring-1 focus-visible:ring-black focus-visible:rounded', + ], + ], + ], /* diff --git a/content/assets/galleries.yaml b/content/assets/galleries.yaml deleted file mode 100644 index 2612b0f..0000000 --- a/content/assets/galleries.yaml +++ /dev/null @@ -1,7 +0,0 @@ -title: Galleries -disk: galleries -allow_uploads: true -allow_downloading: true -allow_renaming: true -allow_moving: true -create_folders: true diff --git a/content/collections/galleries/couples.md b/content/collections/galleries/couples.md deleted file mode 100644 index c8bb0ca..0000000 --- a/content/collections/galleries/couples.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -id: 86b1c86b-f1dc-47c1-841b-156bfca33660 -blueprint: gallery -title: Couples -images: - - travels/linus-belanger-sk27vrqxfrk-unsplash.jpg - - travels/sasha-matveeva-riqfta7kocg-unsplash.jpg - - travels/richard-stachmann-y5_z34vkamc-unsplash.jpg - - travels/linus-belanger-azxpazbjogu-unsplash.jpg - - travels/richard-stachmann-3byhvjo0ipw-unsplash.jpg - - travels/richard-stachmann-bawct3pkbnq-unsplash.jpg - - travels/richard-stachmann-lokspqfle7a-unsplash.jpg - - travels/sasha-matveeva-kcvbo8eo_mm-unsplash.jpg - - travels/sasha-matveeva-moxsqk3h1xe-unsplash.jpg - - travels/tara-mae-miller-k9003zudrhq-unsplash.jpg -updated_by: e57de76f-ee6a-45b5-911c-7e92dd1905a5 -updated_at: 1728319481 -duplicated_from: a56a6437-5a5d-4479-a6dc-38095322ba8a -featured: false -categories: - - test - - weddings ---- diff --git a/content/collections/galleries/engagements.md b/content/collections/galleries/engagements.md deleted file mode 100644 index 2580bef..0000000 --- a/content/collections/galleries/engagements.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -id: 5429adf7-0a63-4e21-9163-feee07faf1f6 -blueprint: gallery -title: Engagements -images: - - travels/richard-stachmann-lokspqfle7a-unsplash.jpg - - travels/linus-belanger-azxpazbjogu-unsplash.jpg - - travels/linus-belanger-sk27vrqxfrk-unsplash.jpg - - travels/richard-stachmann-3byhvjo0ipw-unsplash.jpg - - travels/richard-stachmann-bawct3pkbnq-unsplash.jpg - - travels/richard-stachmann-y5_z34vkamc-unsplash.jpg - - travels/sasha-matveeva-kcvbo8eo_mm-unsplash.jpg - - travels/sasha-matveeva-moxsqk3h1xe-unsplash.jpg - - travels/sasha-matveeva-riqfta7kocg-unsplash.jpg - - travels/tara-mae-miller-k9003zudrhq-unsplash.jpg -categories: - - weddings -updated_by: e57de76f-ee6a-45b5-911c-7e92dd1905a5 -updated_at: 1727446488 -duplicated_from: bdf45d98-d6fb-471b-81b0-d11714551e24 ---- diff --git a/content/collections/galleries/families.md b/content/collections/galleries/families.md deleted file mode 100644 index 4f8336b..0000000 --- a/content/collections/galleries/families.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -id: bdf45d98-d6fb-471b-81b0-d11714551e24 -blueprint: gallery -title: Families -images: - - travels/richard-stachmann-3byhvjo0ipw-unsplash.jpg - - travels/linus-belanger-azxpazbjogu-unsplash.jpg - - travels/linus-belanger-sk27vrqxfrk-unsplash.jpg - - travels/richard-stachmann-bawct3pkbnq-unsplash.jpg - - travels/richard-stachmann-y5_z34vkamc-unsplash.jpg - - travels/richard-stachmann-lokspqfle7a-unsplash.jpg - - travels/sasha-matveeva-kcvbo8eo_mm-unsplash.jpg - - travels/sasha-matveeva-moxsqk3h1xe-unsplash.jpg - - travels/sasha-matveeva-riqfta7kocg-unsplash.jpg - - travels/tara-mae-miller-k9003zudrhq-unsplash.jpg -updated_by: e57de76f-ee6a-45b5-911c-7e92dd1905a5 -updated_at: 1728319776 -duplicated_from: 86b1c86b-f1dc-47c1-841b-156bfca33660 -categories: - - portraits ---- diff --git a/content/collections/galleries/travels.md b/content/collections/galleries/travels.md deleted file mode 100644 index 0887ce9..0000000 --- a/content/collections/galleries/travels.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -id: a56a6437-5a5d-4479-a6dc-38095322ba8a -blueprint: gallery -title: Travels -images: - - travels/linus-belanger-azxpazbjogu-unsplash.jpg - - travels/linus-belanger-sk27vrqxfrk-unsplash.jpg - - travels/richard-stachmann-3byhvjo0ipw-unsplash.jpg - - travels/richard-stachmann-bawct3pkbnq-unsplash.jpg - - travels/richard-stachmann-lokspqfle7a-unsplash.jpg - - travels/richard-stachmann-y5_z34vkamc-unsplash.jpg - - travels/sasha-matveeva-kcvbo8eo_mm-unsplash.jpg - - travels/sasha-matveeva-moxsqk3h1xe-unsplash.jpg - - travels/sasha-matveeva-riqfta7kocg-unsplash.jpg - - travels/tara-mae-miller-k9003zudrhq-unsplash.jpg -categories: - - travels -updated_by: e57de76f-ee6a-45b5-911c-7e92dd1905a5 -updated_at: 1726666320 -duplicated_from: 97e4e258-5fec-4ef3-8f54-64d855224ac1 ---- diff --git a/content/collections/galleries/weddings.md b/content/collections/galleries/weddings.md deleted file mode 100644 index 797da34..0000000 --- a/content/collections/galleries/weddings.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -id: 97e4e258-5fec-4ef3-8f54-64d855224ac1 -blueprint: gallery -title: Weddings -images: - - travels/tara-mae-miller-k9003zudrhq-unsplash.jpg - - travels/linus-belanger-azxpazbjogu-unsplash.jpg - - travels/linus-belanger-sk27vrqxfrk-unsplash.jpg - - travels/richard-stachmann-3byhvjo0ipw-unsplash.jpg - - travels/richard-stachmann-bawct3pkbnq-unsplash.jpg - - travels/richard-stachmann-lokspqfle7a-unsplash.jpg - - travels/richard-stachmann-y5_z34vkamc-unsplash.jpg - - travels/sasha-matveeva-kcvbo8eo_mm-unsplash.jpg - - travels/sasha-matveeva-moxsqk3h1xe-unsplash.jpg - - travels/sasha-matveeva-riqfta7kocg-unsplash.jpg -categories: - - weddings - - buildings - - plants - - mountains -updated_by: e57de76f-ee6a-45b5-911c-7e92dd1905a5 -updated_at: 1728330975 -preview_image: travels/tara-mae-miller-k9003zudrhq-unsplash.jpg ---- diff --git a/content/collections/pages/testimonials.md b/content/collections/pages/testimonials.md new file mode 100644 index 0000000..3b5d997 --- /dev/null +++ b/content/collections/pages/testimonials.md @@ -0,0 +1,24 @@ +--- +id: 01136c95-8d56-4679-9035-157cbb6c6ff7 +blueprint: page +title: Testimonials +updated_by: e57de76f-ee6a-45b5-911c-7e92dd1905a5 +updated_at: 1729740868 +page_builder: + - + id: m2mqvxd5 + title: + - + type: paragraph + content: + - + type: text + text: Testimonials + type: hero + enabled: true + - + id: m2mqwizf + query: all + type: testimonials + enabled: true +--- diff --git a/content/collections/private_galleries/b13d8e83-6753-4fae-ab57-9f6032cb87b1.md b/content/collections/private_galleries/b13d8e83-6753-4fae-ab57-9f6032cb87b1.md deleted file mode 100644 index 437d158..0000000 --- a/content/collections/private_galleries/b13d8e83-6753-4fae-ab57-9f6032cb87b1.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -id: b13d8e83-6753-4fae-ab57-9f6032cb87b1 -blueprint: private_gallery -title: "Michael & Ruth's Wedding" -assets: - - b13d8e83-6753-4fae-ab57-9f6032cb87b1/richard-stachmann-lokspqfle7a-unsplash.jpg - - b13d8e83-6753-4fae-ab57-9f6032cb87b1/sasha-matveeva-kcvbo8eo_mm-unsplash.jpg - - b13d8e83-6753-4fae-ab57-9f6032cb87b1/richard-stachmann-3byhvjo0ipw-unsplash.jpg - - b13d8e83-6753-4fae-ab57-9f6032cb87b1/sasha-matveeva-riqfta7kocg-unsplash.jpg - - b13d8e83-6753-4fae-ab57-9f6032cb87b1/sasha-matveeva-moxsqk3h1xe-unsplash.jpg - - b13d8e83-6753-4fae-ab57-9f6032cb87b1/linus-belanger-azxpazbjogu-unsplash.jpg - - b13d8e83-6753-4fae-ab57-9f6032cb87b1/linus-belanger-sk27vrqxfrk-unsplash.jpg - - b13d8e83-6753-4fae-ab57-9f6032cb87b1/tara-mae-miller-k9003zudrhq-unsplash.jpg - - b13d8e83-6753-4fae-ab57-9f6032cb87b1/richard-stachmann-y5_z34vkamc-unsplash.jpg - - b13d8e83-6753-4fae-ab57-9f6032cb87b1/richard-stachmann-bawct3pkbnq-unsplash.jpg -updated_by: e57de76f-ee6a-45b5-911c-7e92dd1905a5 -updated_at: 1728411896 -download: true -likes: - - b13d8e83-6753-4fae-ab57-9f6032cb87b1/richard-stachmann-lokspqfle7a-unsplash.jpg - - b13d8e83-6753-4fae-ab57-9f6032cb87b1/richard-stachmann-3byhvjo0ipw-unsplash.jpg - - b13d8e83-6753-4fae-ab57-9f6032cb87b1/sasha-matveeva-riqfta7kocg-unsplash.jpg - - b13d8e83-6753-4fae-ab57-9f6032cb87b1/sasha-matveeva-moxsqk3h1xe-unsplash.jpg - - b13d8e83-6753-4fae-ab57-9f6032cb87b1/linus-belanger-azxpazbjogu-unsplash.jpg - - b13d8e83-6753-4fae-ab57-9f6032cb87b1/richard-stachmann-y5_z34vkamc-unsplash.jpg - - b13d8e83-6753-4fae-ab57-9f6032cb87b1/richard-stachmann-bawct3pkbnq-unsplash.jpg ---- diff --git a/content/collections/testimonials.yaml b/content/collections/testimonials.yaml new file mode 100644 index 0000000..9a5dacb --- /dev/null +++ b/content/collections/testimonials.yaml @@ -0,0 +1,18 @@ +title: Testimonials +template: default +layout: layout +mount: 01136c95-8d56-4679-9035-157cbb6c6ff7 +revisions: false +slugs: false +sort_dir: asc +date_behavior: + past: public + future: private +preview_targets: + - + label: Entry + url: '{permalink}' + refresh: true +structure: + root: false + max_depth: 1 diff --git a/content/collections/testimonials/06f4b45b-6066-4d33-87e4-bcef4e3d55d7.md b/content/collections/testimonials/06f4b45b-6066-4d33-87e4-bcef4e3d55d7.md new file mode 100644 index 0000000..22fbaf9 --- /dev/null +++ b/content/collections/testimonials/06f4b45b-6066-4d33-87e4-bcef4e3d55d7.md @@ -0,0 +1,14 @@ +--- +id: 06f4b45b-6066-4d33-87e4-bcef4e3d55d7 +blueprint: testimonial +title: 'Mia L.' +quote: + - + type: paragraph + content: + - + type: text + text: 'Louise’s portrait of my grandparents is something we’ll treasure forever. She captured not just their image, but their love and years together. It feels timeless, and I can’t thank her enough.' +updated_by: e57de76f-ee6a-45b5-911c-7e92dd1905a5 +updated_at: 1729867707 +--- diff --git a/content/collections/testimonials/438257a2-4e2e-453a-870e-04672c81f6c3.md b/content/collections/testimonials/438257a2-4e2e-453a-870e-04672c81f6c3.md new file mode 100644 index 0000000..3ece6d1 --- /dev/null +++ b/content/collections/testimonials/438257a2-4e2e-453a-870e-04672c81f6c3.md @@ -0,0 +1,14 @@ +--- +id: 438257a2-4e2e-453a-870e-04672c81f6c3 +blueprint: testimonial +title: 'Ben A.' +quote: + - + type: paragraph + content: + - + type: text + text: 'Louise is incredibly talented! Her photos of our team brought out each person’s personality, showing a side of us that’s rarely seen. It was a fun, relaxed shoot, and the results were outstanding.' +updated_by: e57de76f-ee6a-45b5-911c-7e92dd1905a5 +updated_at: 1729867709 +--- diff --git a/content/collections/testimonials/486aa65a-7a58-493a-9766-26033562b83a.md b/content/collections/testimonials/486aa65a-7a58-493a-9766-26033562b83a.md new file mode 100644 index 0000000..780f758 --- /dev/null +++ b/content/collections/testimonials/486aa65a-7a58-493a-9766-26033562b83a.md @@ -0,0 +1,14 @@ +--- +id: 486aa65a-7a58-493a-9766-26033562b83a +blueprint: testimonial +title: 'Carlos T.' +quote: + - + type: paragraph + content: + - + type: text + text: 'Louise’s photos of our cityscape captured its heartbeat perfectly. She has a remarkable way of showcasing the charm and vibrancy of urban life, making each photo feel like a portal to the city’s soul. A true artist with an eye for story!' +updated_by: e57de76f-ee6a-45b5-911c-7e92dd1905a5 +updated_at: 1729867698 +--- diff --git a/content/collections/testimonials/49e2d738-d8c4-4504-adc0-f6ca5f0d40f7.md b/content/collections/testimonials/49e2d738-d8c4-4504-adc0-f6ca5f0d40f7.md new file mode 100644 index 0000000..29f8e7a --- /dev/null +++ b/content/collections/testimonials/49e2d738-d8c4-4504-adc0-f6ca5f0d40f7.md @@ -0,0 +1,14 @@ +--- +id: 49e2d738-d8c4-4504-adc0-f6ca5f0d40f7 +blueprint: testimonial +title: 'Isabella K.' +quote: + - + type: paragraph + content: + - + type: text + text: 'The landscape photos Louise took for our project are stunning. She manages to convey the beauty and tranquility of nature in a way that feels personal and breathtaking. Her talent is undeniable.' +updated_by: e57de76f-ee6a-45b5-911c-7e92dd1905a5 +updated_at: 1729868067 +--- diff --git a/content/collections/testimonials/4ac51b2d-efc1-4c8e-a186-591239cd5a48.md b/content/collections/testimonials/4ac51b2d-efc1-4c8e-a186-591239cd5a48.md new file mode 100644 index 0000000..04caacf --- /dev/null +++ b/content/collections/testimonials/4ac51b2d-efc1-4c8e-a186-591239cd5a48.md @@ -0,0 +1,14 @@ +--- +id: 4ac51b2d-efc1-4c8e-a186-591239cd5a48 +blueprint: testimonial +title: 'Samantha H.' +quote: + - + type: paragraph + content: + - + type: text + text: 'Louise has a remarkable ability to transform the ordinary into extraordinary. She took a simple photo of our house and made it look like something from a magazine. Her eye for beauty is unparalleled.' +updated_by: e57de76f-ee6a-45b5-911c-7e92dd1905a5 +updated_at: 1729867713 +--- diff --git a/content/collections/testimonials/666b3e81-2179-4c5f-a300-a5a50c91c981.md b/content/collections/testimonials/666b3e81-2179-4c5f-a300-a5a50c91c981.md new file mode 100644 index 0000000..ee1d55c --- /dev/null +++ b/content/collections/testimonials/666b3e81-2179-4c5f-a300-a5a50c91c981.md @@ -0,0 +1,14 @@ +--- +id: 666b3e81-2179-4c5f-a300-a5a50c91c981 +blueprint: testimonial +title: 'Raj P.' +quote: + - + type: paragraph + content: + - + type: text + text: 'Louise has a way of capturing light that is simply mesmerizing. Her photographs of our event beautifully balanced the energy of the crowd with the intimacy of personal moments. Every image felt alive.' +updated_by: e57de76f-ee6a-45b5-911c-7e92dd1905a5 +updated_at: 1729867702 +--- diff --git a/content/collections/testimonials/73a6f411-a257-4f08-881e-129df54f8692.md b/content/collections/testimonials/73a6f411-a257-4f08-881e-129df54f8692.md new file mode 100644 index 0000000..96edbb8 --- /dev/null +++ b/content/collections/testimonials/73a6f411-a257-4f08-881e-129df54f8692.md @@ -0,0 +1,14 @@ +--- +id: 73a6f411-a257-4f08-881e-129df54f8692 +blueprint: testimonial +title: 'Sophia M.' +quote: + - + type: paragraph + content: + - + type: text + text: 'Louise brought our family’s essence into every shot, beautifully capturing moments we will cherish forever. Her gentle guidance made the experience feel natural, and the results were beyond what we imagined—stunning, authentic, and deeply meaningful.' +updated_by: e57de76f-ee6a-45b5-911c-7e92dd1905a5 +updated_at: 1729867696 +--- diff --git a/content/collections/testimonials/778feadc-5777-46b6-bd35-722cd711a41e.md b/content/collections/testimonials/778feadc-5777-46b6-bd35-722cd711a41e.md new file mode 100644 index 0000000..d34efe1 --- /dev/null +++ b/content/collections/testimonials/778feadc-5777-46b6-bd35-722cd711a41e.md @@ -0,0 +1,14 @@ +--- +id: 778feadc-5777-46b6-bd35-722cd711a41e +blueprint: testimonial +title: 'James R.' +quote: + - + type: paragraph + content: + - + type: text + text: 'Working with Louise was an unforgettable experience. She has an uncanny ability to capture the soul of a moment, transforming everyday scenes into beautiful, lasting memories. Her eye for detail and unique perspectives make her work truly stand out.' +updated_by: e57de76f-ee6a-45b5-911c-7e92dd1905a5 +updated_at: 1729868026 +--- diff --git a/content/collections/testimonials/99bcb781-be49-4cc0-8c1c-e2396fce4e89.md b/content/collections/testimonials/99bcb781-be49-4cc0-8c1c-e2396fce4e89.md new file mode 100644 index 0000000..cf34aa6 --- /dev/null +++ b/content/collections/testimonials/99bcb781-be49-4cc0-8c1c-e2396fce4e89.md @@ -0,0 +1,14 @@ +--- +id: 99bcb781-be49-4cc0-8c1c-e2396fce4e89 +blueprint: testimonial +title: 'Oliver D.' +quote: + - + type: paragraph + content: + - + type: text + text: 'Louise’s attention to detail is impeccable. She captures the small, often overlooked details that bring each image to life. Her work isn’t just photography—it’s storytelling at its finest.' +updated_by: e57de76f-ee6a-45b5-911c-7e92dd1905a5 +updated_at: 1729867705 +--- diff --git a/content/collections/testimonials/c35df957-8317-482f-aa8f-5f591c2587db.md b/content/collections/testimonials/c35df957-8317-482f-aa8f-5f591c2587db.md new file mode 100644 index 0000000..822c3a1 --- /dev/null +++ b/content/collections/testimonials/c35df957-8317-482f-aa8f-5f591c2587db.md @@ -0,0 +1,14 @@ +--- +id: c35df957-8317-482f-aa8f-5f591c2587db +blueprint: testimonial +title: 'Ethan F.' +quote: + - + type: paragraph + content: + - + type: text + text: 'The aerial shots Louise captured of our hometown left us speechless. She truly has a gift for finding new perspectives, and the results were spectacular. Louise’s work is pure art.' +updated_by: e57de76f-ee6a-45b5-911c-7e92dd1905a5 +updated_at: 1729867714 +--- diff --git a/content/collections/testimonials/ea8f64ba-1928-42a4-a01b-049547b9700b.md b/content/collections/testimonials/ea8f64ba-1928-42a4-a01b-049547b9700b.md new file mode 100644 index 0000000..f0fd57f --- /dev/null +++ b/content/collections/testimonials/ea8f64ba-1928-42a4-a01b-049547b9700b.md @@ -0,0 +1,14 @@ +--- +id: ea8f64ba-1928-42a4-a01b-049547b9700b +blueprint: testimonial +title: 'Rachel C.' +quote: + - + type: paragraph + content: + - + type: text + text: 'Every time I look at the photos Louise took of our wedding, I’m right back in that moment. She captured the joy, love, and every emotion in between. Her work is a gift!' +updated_by: e57de76f-ee6a-45b5-911c-7e92dd1905a5 +updated_at: 1729867710 +--- diff --git a/content/collections/testimonials/eab12d9e-410f-4c91-880e-a80acbf63cb6.md b/content/collections/testimonials/eab12d9e-410f-4c91-880e-a80acbf63cb6.md new file mode 100644 index 0000000..bcb6a77 --- /dev/null +++ b/content/collections/testimonials/eab12d9e-410f-4c91-880e-a80acbf63cb6.md @@ -0,0 +1,14 @@ +--- +id: eab12d9e-410f-4c91-880e-a80acbf63cb6 +blueprint: testimonial +title: 'Emily W.' +quote: + - + type: paragraph + content: + - + type: text + text: 'Incredible talent! Louise’s portraits go beyond mere images—they capture the true spirit of each person. Her ability to connect with her subjects is obvious, and the photos she took of my family radiate warmth and authenticity.' +updated_by: e57de76f-ee6a-45b5-911c-7e92dd1905a5 +updated_at: 1729867700 +--- diff --git a/content/globals/settings.yaml b/content/globals/settings.yaml index 4bfe8cb..f0e3431 100644 --- a/content/globals/settings.yaml +++ b/content/globals/settings.yaml @@ -3,6 +3,7 @@ data: business_name: 'Louise Millan' logo: signature.png galleries_layout: offset + corner_style: rounded-none protected_page_images: - switzerland/boris-baldinger-6ogl3xacolm-unsplash.jpg - portraits/omid-armin-65jdpsttl-0-unsplash.jpg diff --git a/content/taxonomies/categories/buildings.yaml b/content/taxonomies/categories/buildings.yaml deleted file mode 100644 index f0a1cfc..0000000 --- a/content/taxonomies/categories/buildings.yaml +++ /dev/null @@ -1,4 +0,0 @@ -title: Buildings -updated_by: e57de76f-ee6a-45b5-911c-7e92dd1905a5 -updated_at: 1728330944 -blueprint: category diff --git a/content/taxonomies/categories/mountains.yaml b/content/taxonomies/categories/mountains.yaml deleted file mode 100644 index 2acf0aa..0000000 --- a/content/taxonomies/categories/mountains.yaml +++ /dev/null @@ -1,4 +0,0 @@ -title: Mountains -updated_by: e57de76f-ee6a-45b5-911c-7e92dd1905a5 -updated_at: 1728330952 -blueprint: category diff --git a/content/taxonomies/categories/plants.yaml b/content/taxonomies/categories/plants.yaml deleted file mode 100644 index 8552397..0000000 --- a/content/taxonomies/categories/plants.yaml +++ /dev/null @@ -1,4 +0,0 @@ -title: Plants -updated_by: e57de76f-ee6a-45b5-911c-7e92dd1905a5 -updated_at: 1728330948 -blueprint: category diff --git a/content/taxonomies/categories/portraits.yaml b/content/taxonomies/categories/portraits.yaml deleted file mode 100644 index 915781a..0000000 --- a/content/taxonomies/categories/portraits.yaml +++ /dev/null @@ -1 +0,0 @@ -title: Portraits diff --git a/content/taxonomies/categories/test.yaml b/content/taxonomies/categories/test.yaml deleted file mode 100644 index d99e1b8..0000000 --- a/content/taxonomies/categories/test.yaml +++ /dev/null @@ -1 +0,0 @@ -title: Test diff --git a/content/taxonomies/categories/travels.yaml b/content/taxonomies/categories/travels.yaml deleted file mode 100644 index eb44c6b..0000000 --- a/content/taxonomies/categories/travels.yaml +++ /dev/null @@ -1 +0,0 @@ -title: Travels diff --git a/content/taxonomies/categories/weddings.yaml b/content/taxonomies/categories/weddings.yaml deleted file mode 100644 index a1714e4..0000000 --- a/content/taxonomies/categories/weddings.yaml +++ /dev/null @@ -1 +0,0 @@ -title: Weddings diff --git a/content/trees/collections/pages.yaml b/content/trees/collections/pages.yaml index 76dd097..ceec76c 100644 --- a/content/trees/collections/pages.yaml +++ b/content/trees/collections/pages.yaml @@ -4,9 +4,11 @@ tree: - entry: 0acdbdb6-f09f-46c8-8c02-ece71fe392eb - - entry: ffb871f6-7b96-40d8-a038-df57ac9cc115 + entry: 01136c95-8d56-4679-9035-157cbb6c6ff7 - entry: 8f84d77d-c017-493c-9459-5900b413cdfb + - + entry: ffb871f6-7b96-40d8-a038-df57ac9cc115 - entry: ce3c5959-eb7e-46a1-9c31-266fbb0129c7 - diff --git a/content/trees/collections/testimonials.yaml b/content/trees/collections/testimonials.yaml new file mode 100644 index 0000000..f7bcb87 --- /dev/null +++ b/content/trees/collections/testimonials.yaml @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/content/trees/navigation/main.yaml b/content/trees/navigation/main.yaml index 0bc2bb8..7e6215f 100644 --- a/content/trees/navigation/main.yaml +++ b/content/trees/navigation/main.yaml @@ -2,6 +2,9 @@ tree: - id: 7324956f-2b04-494f-b22f-5e431c3aad30 entry: 0acdbdb6-f09f-46c8-8c02-ece71fe392eb + - + id: e9358d00-3aea-467c-bc06-05459bd36ec0 + entry: 01136c95-8d56-4679-9035-157cbb6c6ff7 - id: a38164f5-5de6-42d8-9bd8-1db0938a24ca entry: 8f84d77d-c017-493c-9459-5900b413cdfb diff --git a/public/build/assets/site-B9hh6QFi.js b/public/build/assets/site-BFtSqNcv.js similarity index 52% rename from public/build/assets/site-B9hh6QFi.js rename to public/build/assets/site-BFtSqNcv.js index 220281b..277f7c7 100644 --- a/public/build/assets/site-B9hh6QFi.js +++ b/public/build/assets/site-BFtSqNcv.js @@ -1,10 +1,10 @@ -var Cs=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Ps=Cs((exports,module)=>{var __create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__commonJS=(e,t)=>function(){return t||(0,e[__getOwnPropNames(e)[0]])((t={exports:{}}).exports,t),t.exports},__copyProps=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of __getOwnPropNames(t))!__hasOwnProp.call(e,s)&&s!==r&&__defProp(e,s,{get:()=>t[s],enumerable:!(n=__getOwnPropDesc(t,s))||n.enumerable});return e},__toESM=(e,t,r)=>(r=e!=null?__create(__getProtoOf(e)):{},__copyProps(!e||!e.__esModule?__defProp(r,"default",{value:e,enumerable:!0}):r,e)),require_module_cjs=__commonJS({"../alpine/packages/alpinejs/dist/module.cjs.js"(e,t){var r=Object.create,n=Object.defineProperty,s=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,u=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty,h=(a,c)=>function(){return c||(0,a[l(a)[0]])((c={exports:{}}).exports,c),c.exports},m=(a,c)=>{for(var p in c)n(a,p,{get:c[p],enumerable:!0})},O=(a,c,p,y)=>{if(c&&typeof c=="object"||typeof c=="function")for(let S of l(c))!f.call(a,S)&&S!==p&&n(a,S,{get:()=>c[S],enumerable:!(y=s(c,S))||y.enumerable});return a},k=(a,c,p)=>(p=a!=null?r(u(a)):{},O(!a||!a.__esModule?n(p,"default",{value:a,enumerable:!0}):p,a)),P=a=>O(n({},"__esModule",{value:!0}),a),$=h({"node_modules/@vue/shared/dist/shared.cjs.js"(a){Object.defineProperty(a,"__esModule",{value:!0});function c(I,ce){const ge=Object.create(null),Se=I.split(",");for(let Qe=0;Qe!!ge[Qe.toLowerCase()]:Qe=>!!ge[Qe]}var p={1:"TEXT",2:"CLASS",4:"STYLE",8:"PROPS",16:"FULL_PROPS",32:"HYDRATE_EVENTS",64:"STABLE_FRAGMENT",128:"KEYED_FRAGMENT",256:"UNKEYED_FRAGMENT",512:"NEED_PATCH",1024:"DYNAMIC_SLOTS",2048:"DEV_ROOT_FRAGMENT",[-1]:"HOISTED",[-2]:"BAIL"},y={1:"STABLE",2:"DYNAMIC",3:"FORWARDED"},S="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt",T=c(S),N=2;function U(I,ce=0,ge=I.length){let Se=I.split(/(\r?\n)/);const Qe=Se.filter((Et,bt)=>bt%2===1);Se=Se.filter((Et,bt)=>bt%2===0);let ut=0;const St=[];for(let Et=0;Et=ce){for(let bt=Et-N;bt<=Et+N||ge>ut;bt++){if(bt<0||bt>=Se.length)continue;const Ur=bt+1;St.push(`${Ur}${" ".repeat(Math.max(3-String(Ur).length,0))}| ${Se[bt]}`);const Tr=Se[bt].length,yn=Qe[bt]&&Qe[bt].length||0;if(bt===Et){const Ar=ce-(ut-(Tr+yn)),Gn=Math.max(1,ge>ut?Tr-Ar:ge-ce);St.push(" | "+" ".repeat(Ar)+"^".repeat(Gn))}else if(bt>Et){if(ge>ut){const Ar=Math.max(Math.min(ge-ut,Tr),1);St.push(" | "+"^".repeat(Ar))}ut+=Tr+yn}}break}return St.join(` -`)}var Z="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",he=c(Z),Be=c(Z+",async,autofocus,autoplay,controls,default,defer,disabled,hidden,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected"),ot=/[>/="'\u0009\u000a\u000c\u0020]/,We={};function it(I){if(We.hasOwnProperty(I))return We[I];const ce=ot.test(I);return ce&&console.error(`unsafe attribute name: ${I}`),We[I]=!ce}var Ct={acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},Bt=c("animation-iteration-count,border-image-outset,border-image-slice,border-image-width,box-flex,box-flex-group,box-ordinal-group,column-count,columns,flex,flex-grow,flex-positive,flex-shrink,flex-negative,flex-order,grid-row,grid-row-end,grid-row-span,grid-row-start,grid-column,grid-column-end,grid-column-span,grid-column-start,font-weight,line-clamp,line-height,opacity,order,orphans,tab-size,widows,z-index,zoom,fill-opacity,flood-opacity,stop-opacity,stroke-dasharray,stroke-dashoffset,stroke-miterlimit,stroke-opacity,stroke-width"),Re=c("accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap");function tt(I){if(It(I)){const ce={};for(let ge=0;ge{if(ge){const Se=ge.split(Ye);Se.length>1&&(ce[Se[0].trim()]=Se[1].trim())}}),ce}function Nt(I){let ce="";if(!I)return ce;for(const ge in I){const Se=I[ge],Qe=ge.startsWith("--")?ge:mn(ge);(nr(Se)||typeof Se=="number"&&Bt(Qe))&&(ce+=`${Qe}:${Se};`)}return ce}function Ut(I){let ce="";if(nr(I))ce=I;else if(It(I))for(let ge=0;ge]/;function Mn(I){const ce=""+I,ge=Fn.exec(ce);if(!ge)return ce;let Se="",Qe,ut,St=0;for(ut=ge.index;ut||--!>|mr(ge,ce))}var nn=I=>I==null?"":Ht(I)?JSON.stringify(I,Un,2):String(I),Un=(I,ce)=>rr(ce)?{[`Map(${ce.size})`]:[...ce.entries()].reduce((ge,[Se,Qe])=>(ge[`${Se} =>`]=Qe,ge),{})}:Ft(ce)?{[`Set(${ce.size})`]:[...ce.values()]}:Ht(ce)&&!It(ce)&&!fn(ce)?String(ce):ce,Hn=["bigInt","optionalChaining","nullishCoalescingOperator"],Nr=Object.freeze({}),Ir=Object.freeze([]),Fr=()=>{},br=()=>!1,yr=/^on[^a-z]/,vr=I=>yr.test(I),_r=I=>I.startsWith("onUpdate:"),sn=Object.assign,an=(I,ce)=>{const ge=I.indexOf(ce);ge>-1&&I.splice(ge,1)},ln=Object.prototype.hasOwnProperty,cn=(I,ce)=>ln.call(I,ce),It=Array.isArray,rr=I=>ir(I)==="[object Map]",Ft=I=>ir(I)==="[object Set]",Mr=I=>I instanceof Date,Dr=I=>typeof I=="function",nr=I=>typeof I=="string",qn=I=>typeof I=="symbol",Ht=I=>I!==null&&typeof I=="object",wr=I=>Ht(I)&&Dr(I.then)&&Dr(I.catch),un=Object.prototype.toString,ir=I=>un.call(I),zn=I=>ir(I).slice(8,-1),fn=I=>ir(I)==="[object Object]",dn=I=>nr(I)&&I!=="NaN"&&I[0]!=="-"&&""+parseInt(I,10)===I,pn=c(",key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),sr=I=>{const ce=Object.create(null);return ge=>ce[ge]||(ce[ge]=I(ge))},hn=/-(\w)/g,gn=sr(I=>I.replace(hn,(ce,ge)=>ge?ge.toUpperCase():"")),Wn=/\B([A-Z])/g,mn=sr(I=>I.replace(Wn,"-$1").toLowerCase()),or=sr(I=>I.charAt(0).toUpperCase()+I.slice(1)),Vn=sr(I=>I?`on${or(I)}`:""),Br=(I,ce)=>I!==ce&&(I===I||ce===ce),Kn=(I,ce)=>{for(let ge=0;ge{Object.defineProperty(I,ce,{configurable:!0,enumerable:!1,value:ge})},Sr=I=>{const ce=parseFloat(I);return isNaN(ce)?I:ce},Er,bn=()=>Er||(Er=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});a.EMPTY_ARR=Ir,a.EMPTY_OBJ=Nr,a.NO=br,a.NOOP=Fr,a.PatchFlagNames=p,a.babelParserDefaultPlugins=Hn,a.camelize=gn,a.capitalize=or,a.def=xr,a.escapeHtml=Mn,a.escapeHtmlComment=Dn,a.extend=sn,a.generateCodeFrame=U,a.getGlobalThis=bn,a.hasChanged=Br,a.hasOwn=cn,a.hyphenate=mn,a.invokeArrayFns=Kn,a.isArray=It,a.isBooleanAttr=Be,a.isDate=Mr,a.isFunction=Dr,a.isGloballyWhitelisted=T,a.isHTMLTag=hr,a.isIntegerKey=dn,a.isKnownAttr=Re,a.isMap=rr,a.isModelListener=_r,a.isNoUnitNumericStyleProp=Bt,a.isObject=Ht,a.isOn=vr,a.isPlainObject=fn,a.isPromise=wr,a.isReservedProp=pn,a.isSSRSafeAttrName=it,a.isSVGTag=In,a.isSet=Ft,a.isSpecialBooleanAttr=he,a.isString=nr,a.isSymbol=qn,a.isVoidTag=gr,a.looseEqual=mr,a.looseIndexOf=rn,a.makeMap=c,a.normalizeClass=Ut,a.normalizeStyle=tt,a.objectToString=un,a.parseStringStyle=xt,a.propsToAttrMap=Ct,a.remove=an,a.slotFlagsText=y,a.stringifyStyle=Nt,a.toDisplayString=nn,a.toHandlerKey=Vn,a.toNumber=Sr,a.toRawType=zn,a.toTypeString=ir}}),A=h({"node_modules/@vue/shared/index.js"(a,c){c.exports=$()}}),v=h({"node_modules/@vue/reactivity/dist/reactivity.cjs.js"(a){Object.defineProperty(a,"__esModule",{value:!0});var c=A(),p=new WeakMap,y=[],S,T=Symbol("iterate"),N=Symbol("Map key iterate");function U(g){return g&&g._isEffect===!0}function Z(g,K=c.EMPTY_OBJ){U(g)&&(g=g.raw);const X=ot(g,K);return K.lazy||X(),X}function he(g){g.active&&(We(g),g.options.onStop&&g.options.onStop(),g.active=!1)}var Be=0;function ot(g,K){const X=function(){if(!X.active)return g();if(!y.includes(X)){We(X);try{return Re(),y.push(X),S=X,g()}finally{y.pop(),tt(),S=y[y.length-1]}}};return X.id=Be++,X.allowRecurse=!!K.allowRecurse,X._isEffect=!0,X.active=!0,X.raw=g,X.deps=[],X.options=K,X}function We(g){const{deps:K}=g;if(K.length){for(let X=0;X{vt&&vt.forEach(Mt=>{(Mt!==S||Mt.allowRecurse)&&dt.add(Mt)})};if(K==="clear")qe.forEach(Tt);else if(X==="length"&&c.isArray(g))qe.forEach((vt,Mt)=>{(Mt==="length"||Mt>=ve)&&Tt(vt)});else switch(X!==void 0&&Tt(qe.get(X)),K){case"add":c.isArray(g)?c.isIntegerKey(X)&&Tt(qe.get("length")):(Tt(qe.get(T)),c.isMap(g)&&Tt(qe.get(N)));break;case"delete":c.isArray(g)||(Tt(qe.get(T)),c.isMap(g)&&Tt(qe.get(N)));break;case"set":c.isMap(g)&&Tt(qe.get(T));break}const Hr=vt=>{vt.options.onTrigger&&vt.options.onTrigger({effect:vt,target:g,key:X,type:K,newValue:ve,oldValue:ue,oldTarget:Oe}),vt.options.scheduler?vt.options.scheduler(vt):vt()};dt.forEach(Hr)}var xt=c.makeMap("__proto__,__v_isRef,__isVue"),Nt=new Set(Object.getOwnPropertyNames(Symbol).map(g=>Symbol[g]).filter(c.isSymbol)),Ut=gr(),pr=gr(!1,!0),jr=gr(!0),Lr=gr(!0,!0),hr=In();function In(){const g={};return["includes","indexOf","lastIndexOf"].forEach(K=>{g[K]=function(...X){const ve=I(this);for(let Oe=0,qe=this.length;Oe{g[K]=function(...X){Bt();const ve=I(this)[K].apply(this,X);return tt(),ve}}),g}function gr(g=!1,K=!1){return function(ve,ue,Oe){if(ue==="__v_isReactive")return!g;if(ue==="__v_isReadonly")return g;if(ue==="__v_raw"&&Oe===(g?K?gn:hn:K?sr:pn).get(ve))return ve;const qe=c.isArray(ve);if(!g&&qe&&c.hasOwn(hr,ue))return Reflect.get(hr,ue,Oe);const dt=Reflect.get(ve,ue,Oe);return(c.isSymbol(ue)?Nt.has(ue):xt(ue))||(g||He(ve,"get",ue),K)?dt:Se(dt)?!qe||!c.isIntegerKey(ue)?dt.value:dt:c.isObject(dt)?g?Br(dt):or(dt):dt}}var Fn=tn(),Mn=tn(!0);function tn(g=!1){return function(X,ve,ue,Oe){let qe=X[ve];if(!g&&(ue=I(ue),qe=I(qe),!c.isArray(X)&&Se(qe)&&!Se(ue)))return qe.value=ue,!0;const dt=c.isArray(X)&&c.isIntegerKey(ve)?Number(ve)c.isObject(g)?or(g):g,Ir=g=>c.isObject(g)?Br(g):g,Fr=g=>g,br=g=>Reflect.getPrototypeOf(g);function yr(g,K,X=!1,ve=!1){g=g.__v_raw;const ue=I(g),Oe=I(K);K!==Oe&&!X&&He(ue,"get",K),!X&&He(ue,"get",Oe);const{has:qe}=br(ue),dt=ve?Fr:X?Ir:Nr;if(qe.call(ue,K))return dt(g.get(K));if(qe.call(ue,Oe))return dt(g.get(Oe));g!==ue&&g.get(K)}function vr(g,K=!1){const X=this.__v_raw,ve=I(X),ue=I(g);return g!==ue&&!K&&He(ve,"has",g),!K&&He(ve,"has",ue),g===ue?X.has(g):X.has(g)||X.has(ue)}function _r(g,K=!1){return g=g.__v_raw,!K&&He(I(g),"iterate",T),Reflect.get(g,"size",g)}function sn(g){g=I(g);const K=I(this);return br(K).has.call(K,g)||(K.add(g),Ye(K,"add",g,g)),this}function an(g,K){K=I(K);const X=I(this),{has:ve,get:ue}=br(X);let Oe=ve.call(X,g);Oe?dn(X,ve,g):(g=I(g),Oe=ve.call(X,g));const qe=ue.call(X,g);return X.set(g,K),Oe?c.hasChanged(K,qe)&&Ye(X,"set",g,K,qe):Ye(X,"add",g,K),this}function ln(g){const K=I(this),{has:X,get:ve}=br(K);let ue=X.call(K,g);ue?dn(K,X,g):(g=I(g),ue=X.call(K,g));const Oe=ve?ve.call(K,g):void 0,qe=K.delete(g);return ue&&Ye(K,"delete",g,void 0,Oe),qe}function cn(){const g=I(this),K=g.size!==0,X=c.isMap(g)?new Map(g):new Set(g),ve=g.clear();return K&&Ye(g,"clear",void 0,void 0,X),ve}function It(g,K){return function(ve,ue){const Oe=this,qe=Oe.__v_raw,dt=I(qe),Tt=K?Fr:g?Ir:Nr;return!g&&He(dt,"iterate",T),qe.forEach((Hr,vt)=>ve.call(ue,Tt(Hr),Tt(vt),Oe))}}function rr(g,K,X){return function(...ve){const ue=this.__v_raw,Oe=I(ue),qe=c.isMap(Oe),dt=g==="entries"||g===Symbol.iterator&&qe,Tt=g==="keys"&&qe,Hr=ue[g](...ve),vt=X?Fr:K?Ir:Nr;return!K&&He(Oe,"iterate",Tt?N:T),{next(){const{value:Mt,done:Jn}=Hr.next();return Jn?{value:Mt,done:Jn}:{value:dt?[vt(Mt[0]),vt(Mt[1])]:vt(Mt),done:Jn}},[Symbol.iterator](){return this}}}}function Ft(g){return function(...K){{const X=K[0]?`on key "${K[0]}" `:"";console.warn(`${c.capitalize(g)} operation ${X}failed: target is readonly.`,I(this))}return g==="delete"?!1:this}}function Mr(){const g={get(Oe){return yr(this,Oe)},get size(){return _r(this)},has:vr,add:sn,set:an,delete:ln,clear:cn,forEach:It(!1,!1)},K={get(Oe){return yr(this,Oe,!1,!0)},get size(){return _r(this)},has:vr,add:sn,set:an,delete:ln,clear:cn,forEach:It(!1,!0)},X={get(Oe){return yr(this,Oe,!0)},get size(){return _r(this,!0)},has(Oe){return vr.call(this,Oe,!0)},add:Ft("add"),set:Ft("set"),delete:Ft("delete"),clear:Ft("clear"),forEach:It(!0,!1)},ve={get(Oe){return yr(this,Oe,!0,!0)},get size(){return _r(this,!0)},has(Oe){return vr.call(this,Oe,!0)},add:Ft("add"),set:Ft("set"),delete:Ft("delete"),clear:Ft("clear"),forEach:It(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(Oe=>{g[Oe]=rr(Oe,!1,!1),X[Oe]=rr(Oe,!0,!1),K[Oe]=rr(Oe,!1,!0),ve[Oe]=rr(Oe,!0,!0)}),[g,X,K,ve]}var[Dr,nr,qn,Ht]=Mr();function wr(g,K){const X=K?g?Ht:qn:g?nr:Dr;return(ve,ue,Oe)=>ue==="__v_isReactive"?!g:ue==="__v_isReadonly"?g:ue==="__v_raw"?ve:Reflect.get(c.hasOwn(X,ue)&&ue in ve?X:ve,ue,Oe)}var un={get:wr(!1,!1)},ir={get:wr(!1,!0)},zn={get:wr(!0,!1)},fn={get:wr(!0,!0)};function dn(g,K,X){const ve=I(X);if(ve!==X&&K.call(g,ve)){const ue=c.toRawType(g);console.warn(`Reactive ${ue} contains both the raw and reactive versions of the same object${ue==="Map"?" as keys":""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}var pn=new WeakMap,sr=new WeakMap,hn=new WeakMap,gn=new WeakMap;function Wn(g){switch(g){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function mn(g){return g.__v_skip||!Object.isExtensible(g)?0:Wn(c.toRawType(g))}function or(g){return g&&g.__v_isReadonly?g:xr(g,!1,rn,un,pn)}function Vn(g){return xr(g,!1,Un,ir,sr)}function Br(g){return xr(g,!0,nn,zn,hn)}function Kn(g){return xr(g,!0,Hn,fn,gn)}function xr(g,K,X,ve,ue){if(!c.isObject(g))return console.warn(`value cannot be made reactive: ${String(g)}`),g;if(g.__v_raw&&!(K&&g.__v_isReactive))return g;const Oe=ue.get(g);if(Oe)return Oe;const qe=mn(g);if(qe===0)return g;const dt=new Proxy(g,qe===2?ve:X);return ue.set(g,dt),dt}function Sr(g){return Er(g)?Sr(g.__v_raw):!!(g&&g.__v_isReactive)}function Er(g){return!!(g&&g.__v_isReadonly)}function bn(g){return Sr(g)||Er(g)}function I(g){return g&&I(g.__v_raw)||g}function ce(g){return c.def(g,"__v_skip",!0),g}var ge=g=>c.isObject(g)?or(g):g;function Se(g){return!!(g&&g.__v_isRef===!0)}function Qe(g){return Et(g)}function ut(g){return Et(g,!0)}var St=class{constructor(g,K=!1){this._shallow=K,this.__v_isRef=!0,this._rawValue=K?g:I(g),this._value=K?g:ge(g)}get value(){return He(I(this),"get","value"),this._value}set value(g){g=this._shallow?g:I(g),c.hasChanged(g,this._rawValue)&&(this._rawValue=g,this._value=this._shallow?g:ge(g),Ye(I(this),"set","value",g))}};function Et(g,K=!1){return Se(g)?g:new St(g,K)}function bt(g){Ye(I(g),"set","value",g.value)}function Ur(g){return Se(g)?g.value:g}var Tr={get:(g,K,X)=>Ur(Reflect.get(g,K,X)),set:(g,K,X,ve)=>{const ue=g[K];return Se(ue)&&!Se(X)?(ue.value=X,!0):Reflect.set(g,K,X,ve)}};function yn(g){return Sr(g)?g:new Proxy(g,Tr)}var Ar=class{constructor(g){this.__v_isRef=!0;const{get:K,set:X}=g(()=>He(this,"get","value"),()=>Ye(this,"set","value"));this._get=K,this._set=X}get value(){return this._get()}set value(g){this._set(g)}};function Gn(g){return new Ar(g)}function As(g){bn(g)||console.warn("toRefs() expects a reactive object but received a plain one.");const K=c.isArray(g)?new Array(g.length):{};for(const X in g)K[X]=Ti(g,X);return K}var Os=class{constructor(g,K){this._object=g,this._key=K,this.__v_isRef=!0}get value(){return this._object[this._key]}set value(g){this._object[this._key]=g}};function Ti(g,K){return Se(g[K])?g[K]:new Os(g,K)}var $s=class{constructor(g,K,X){this._setter=K,this._dirty=!0,this.__v_isRef=!0,this.effect=Z(g,{lazy:!0,scheduler:()=>{this._dirty||(this._dirty=!0,Ye(I(this),"set","value"))}}),this.__v_isReadonly=X}get value(){const g=I(this);return g._dirty&&(g._value=this.effect(),g._dirty=!1),He(g,"get","value"),g._value}set value(g){this._setter(g)}};function ks(g){let K,X;return c.isFunction(g)?(K=g,X=()=>{console.warn("Write operation failed: computed value is readonly")}):(K=g.get,X=g.set),new $s(K,X,c.isFunction(g)||!g.set)}a.ITERATE_KEY=T,a.computed=ks,a.customRef=Gn,a.effect=Z,a.enableTracking=Re,a.isProxy=bn,a.isReactive=Sr,a.isReadonly=Er,a.isRef=Se,a.markRaw=ce,a.pauseTracking=Bt,a.proxyRefs=yn,a.reactive=or,a.readonly=Br,a.ref=Qe,a.resetTracking=tt,a.shallowReactive=Vn,a.shallowReadonly=Kn,a.shallowRef=ut,a.stop=he,a.toRaw=I,a.toRef=Ti,a.toRefs=As,a.track=He,a.trigger=Ye,a.triggerRef=bt,a.unref=Ur}}),x=h({"node_modules/@vue/reactivity/index.js"(a,c){c.exports=v()}}),E={};m(E,{Alpine:()=>Ei,default:()=>Ts}),t.exports=P(E);var L=!1,F=!1,H=[],te=-1;function D(a){M(a)}function M(a){H.includes(a)||H.push(a),ae()}function V(a){let c=H.indexOf(a);c!==-1&&c>te&&H.splice(c,1)}function ae(){!F&&!L&&(L=!0,queueMicrotask(me))}function me(){L=!1,F=!0;for(let a=0;aa.effect(c,{scheduler:p=>{Je?D(p):p()}}),Ce=a.raw}function ft(a){W=a}function yt(a){let c=()=>{};return[y=>{let S=W(y);return a._x_effects||(a._x_effects=new Set,a._x_runEffects=()=>{a._x_effects.forEach(T=>T())}),a._x_effects.add(S),c=()=>{S!==void 0&&(a._x_effects.delete(S),se(S))},S},()=>{c()}]}function At(a,c){let p=!0,y,S=W(()=>{let T=a();JSON.stringify(T),p?y=T:queueMicrotask(()=>{c(T,y),y=T}),p=!1});return()=>se(S)}var Ne=[],Pe=[],Ie=[];function Le(a){Ie.push(a)}function Ee(a,c){typeof c=="function"?(a._x_cleanups||(a._x_cleanups=[]),a._x_cleanups.push(c)):(c=a,Pe.push(c))}function pe(a){Ne.push(a)}function et(a,c,p){a._x_attributeCleanups||(a._x_attributeCleanups={}),a._x_attributeCleanups[c]||(a._x_attributeCleanups[c]=[]),a._x_attributeCleanups[c].push(p)}function le(a,c){a._x_attributeCleanups&&Object.entries(a._x_attributeCleanups).forEach(([p,y])=>{(c===void 0||c.includes(p))&&(y.forEach(S=>S()),delete a._x_attributeCleanups[p])})}function be(a){var c,p;for((c=a._x_effects)==null||c.forEach(V);(p=a._x_cleanups)!=null&&p.length;)a._x_cleanups.pop()()}var ke=new MutationObserver(nt),Ve=!1;function $e(){ke.observe(document,{subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0}),Ve=!0}function _e(){at(),ke.disconnect(),Ve=!1}var mt=[];function at(){let a=ke.takeRecords();mt.push(()=>a.length>0&&nt(a));let c=mt.length;queueMicrotask(()=>{if(mt.length===c)for(;mt.length>0;)mt.shift()()})}function de(a){if(!Ve)return a();_e();let c=a();return $e(),c}var J=!1,Q=[];function Ae(){J=!0}function oe(){J=!1,nt(Q),Q=[]}function nt(a){if(J){Q=Q.concat(a);return}let c=new Set,p=new Set,y=new Map,S=new Map;for(let T=0;TN.nodeType===1&&c.add(N)),a[T].removedNodes.forEach(N=>N.nodeType===1&&p.add(N))),a[T].type==="attributes")){let N=a[T].target,U=a[T].attributeName,Z=a[T].oldValue,he=()=>{y.has(N)||y.set(N,[]),y.get(N).push({name:U,value:N.getAttribute(U)})},Be=()=>{S.has(N)||S.set(N,[]),S.get(N).push(U)};N.hasAttribute(U)&&Z===null?he():N.hasAttribute(U)?(Be(),he()):Be()}S.forEach((T,N)=>{le(N,T)}),y.forEach((T,N)=>{Ne.forEach(U=>U(N,T))});for(let T of p)c.has(T)||Pe.forEach(N=>N(T));c.forEach(T=>{T._x_ignoreSelf=!0,T._x_ignore=!0});for(let T of c)p.has(T)||T.isConnected&&(delete T._x_ignoreSelf,delete T._x_ignore,Ie.forEach(N=>N(T)),T._x_ignore=!0,T._x_ignoreSelf=!0);c.forEach(T=>{delete T._x_ignoreSelf,delete T._x_ignore}),c=null,p=null,y=null,S=null}function Te(a){return xe(ie(a))}function re(a,c,p){return a._x_dataStack=[c,...ie(p||a)],()=>{a._x_dataStack=a._x_dataStack.filter(y=>y!==c)}}function ie(a){return a._x_dataStack?a._x_dataStack:typeof ShadowRoot=="function"&&a instanceof ShadowRoot?ie(a.host):a.parentNode?ie(a.parentNode):[]}function xe(a){return new Proxy({objects:a},Xe)}var Xe={ownKeys({objects:a}){return Array.from(new Set(a.flatMap(c=>Object.keys(c))))},has({objects:a},c){return c==Symbol.unscopables?!1:a.some(p=>Object.prototype.hasOwnProperty.call(p,c)||Reflect.has(p,c))},get({objects:a},c,p){return c=="toJSON"?Fe:Reflect.get(a.find(y=>Reflect.has(y,c))||{},c,p)},set({objects:a},c,p,y){const S=a.find(N=>Object.prototype.hasOwnProperty.call(N,c))||a[a.length-1],T=Object.getOwnPropertyDescriptor(S,c);return T!=null&&T.set&&(T!=null&&T.get)?T.set.call(y,p)||!0:Reflect.set(S,c,p)}};function Fe(){return Reflect.ownKeys(this).reduce((c,p)=>(c[p]=Reflect.get(this,p),c),{})}function gt(a){let c=y=>typeof y=="object"&&!Array.isArray(y)&&y!==null,p=(y,S="")=>{Object.entries(Object.getOwnPropertyDescriptors(y)).forEach(([T,{value:N,enumerable:U}])=>{if(U===!1||N===void 0||typeof N=="object"&&N!==null&&N.__v_skip)return;let Z=S===""?T:`${S}.${T}`;typeof N=="object"&&N!==null&&N._x_interceptor?y[T]=N.initialize(a,Z,T):c(N)&&N!==y&&!(N instanceof Element)&&p(N,Z)})};return p(a)}function pt(a,c=()=>{}){let p={initialValue:void 0,_x_interceptor:!0,initialize(y,S,T){return a(this.initialValue,()=>Pt(y,S),N=>Rt(y,S,N),S,T)}};return c(p),y=>{if(typeof y=="object"&&y!==null&&y._x_interceptor){let S=p.initialize.bind(p);p.initialize=(T,N,U)=>{let Z=y.initialize(T,N,U);return p.initialValue=Z,S(T,N,U)}}else p.initialValue=y;return p}}function Pt(a,c){return c.split(".").reduce((p,y)=>p[y],a)}function Rt(a,c,p){if(typeof c=="string"&&(c=c.split(".")),c.length===1)a[c[0]]=p;else{if(c.length===0)throw error;return a[c[0]]||(a[c[0]]={}),Rt(a[c[0]],c.slice(1),p)}}var Qt={};function Ot(a,c){Qt[a]=c}function qt(a,c){let p=er(c);return Object.entries(Qt).forEach(([y,S])=>{Object.defineProperty(a,`$${y}`,{get(){return S(c,p)},enumerable:!1})}),a}function er(a){let[c,p]=ye(a),y={interceptor:pt,...c};return Ee(a,p),y}function qr(a,c,p,...y){try{return p(...y)}catch(S){Gt(S,a,c)}}function Gt(a,c,p=void 0){a=Object.assign(a??{message:"No error message given."},{el:c,expression:p}),console.warn(`Alpine Expression Error: ${a.message} +var Rs=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var js=Rs((exports,module)=>{var __create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__commonJS=(e,t)=>function(){return t||(0,e[__getOwnPropNames(e)[0]])((t={exports:{}}).exports,t),t.exports},__copyProps=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of __getOwnPropNames(t))!__hasOwnProp.call(e,s)&&s!==r&&__defProp(e,s,{get:()=>t[s],enumerable:!(n=__getOwnPropDesc(t,s))||n.enumerable});return e},__toESM=(e,t,r)=>(r=e!=null?__create(__getProtoOf(e)):{},__copyProps(!e||!e.__esModule?__defProp(r,"default",{value:e,enumerable:!0}):r,e)),require_module_cjs=__commonJS({"../alpine/packages/alpinejs/dist/module.cjs.js"(e,t){var r=Object.create,n=Object.defineProperty,s=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,u=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty,h=(a,c)=>function(){return c||(0,a[l(a)[0]])((c={exports:{}}).exports,c),c.exports},m=(a,c)=>{for(var p in c)n(a,p,{get:c[p],enumerable:!0})},$=(a,c,p,y)=>{if(c&&typeof c=="object"||typeof c=="function")for(let S of l(c))!f.call(a,S)&&S!==p&&n(a,S,{get:()=>c[S],enumerable:!(y=s(c,S))||y.enumerable});return a},P=(a,c,p)=>(p=a!=null?r(u(a)):{},$(!a||!a.__esModule?n(p,"default",{value:a,enumerable:!0}):p,a)),R=a=>$(n({},"__esModule",{value:!0}),a),k=h({"node_modules/@vue/shared/dist/shared.cjs.js"(a){Object.defineProperty(a,"__esModule",{value:!0});function c(I,ce){const ge=Object.create(null),Se=I.split(",");for(let Qe=0;Qe!!ge[Qe.toLowerCase()]:Qe=>!!ge[Qe]}var p={1:"TEXT",2:"CLASS",4:"STYLE",8:"PROPS",16:"FULL_PROPS",32:"HYDRATE_EVENTS",64:"STABLE_FRAGMENT",128:"KEYED_FRAGMENT",256:"UNKEYED_FRAGMENT",512:"NEED_PATCH",1024:"DYNAMIC_SLOTS",2048:"DEV_ROOT_FRAGMENT",[-1]:"HOISTED",[-2]:"BAIL"},y={1:"STABLE",2:"DYNAMIC",3:"FORWARDED"},S="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt",T=c(S),N=2;function U(I,ce=0,ge=I.length){let Se=I.split(/(\r?\n)/);const Qe=Se.filter((Et,bt)=>bt%2===1);Se=Se.filter((Et,bt)=>bt%2===0);let ut=0;const St=[];for(let Et=0;Et=ce){for(let bt=Et-N;bt<=Et+N||ge>ut;bt++){if(bt<0||bt>=Se.length)continue;const Ur=bt+1;St.push(`${Ur}${" ".repeat(Math.max(3-String(Ur).length,0))}| ${Se[bt]}`);const Tr=Se[bt].length,yn=Qe[bt]&&Qe[bt].length||0;if(bt===Et){const Ar=ce-(ut-(Tr+yn)),Jn=Math.max(1,ge>ut?Tr-Ar:ge-ce);St.push(" | "+" ".repeat(Ar)+"^".repeat(Jn))}else if(bt>Et){if(ge>ut){const Ar=Math.max(Math.min(ge-ut,Tr),1);St.push(" | "+"^".repeat(Ar))}ut+=Tr+yn}}break}return St.join(` +`)}var Z="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",he=c(Z),Be=c(Z+",async,autofocus,autoplay,controls,default,defer,disabled,hidden,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected"),ot=/[>/="'\u0009\u000a\u000c\u0020]/,We={};function it(I){if(We.hasOwnProperty(I))return We[I];const ce=ot.test(I);return ce&&console.error(`unsafe attribute name: ${I}`),We[I]=!ce}var Ct={acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},Bt=c("animation-iteration-count,border-image-outset,border-image-slice,border-image-width,box-flex,box-flex-group,box-ordinal-group,column-count,columns,flex,flex-grow,flex-positive,flex-shrink,flex-negative,flex-order,grid-row,grid-row-end,grid-row-span,grid-row-start,grid-column,grid-column-end,grid-column-span,grid-column-start,font-weight,line-clamp,line-height,opacity,order,orphans,tab-size,widows,z-index,zoom,fill-opacity,flood-opacity,stop-opacity,stroke-dasharray,stroke-dashoffset,stroke-miterlimit,stroke-opacity,stroke-width"),Re=c("accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap");function tt(I){if(It(I)){const ce={};for(let ge=0;ge{if(ge){const Se=ge.split(Ye);Se.length>1&&(ce[Se[0].trim()]=Se[1].trim())}}),ce}function Nt(I){let ce="";if(!I)return ce;for(const ge in I){const Se=I[ge],Qe=ge.startsWith("--")?ge:mn(ge);(nr(Se)||typeof Se=="number"&&Bt(Qe))&&(ce+=`${Qe}:${Se};`)}return ce}function Ut(I){let ce="";if(nr(I))ce=I;else if(It(I))for(let ge=0;ge]/;function Dn(I){const ce=""+I,ge=Mn.exec(ce);if(!ge)return ce;let Se="",Qe,ut,St=0;for(ut=ge.index;ut||--!>|mr(ge,ce))}var nn=I=>I==null?"":Ht(I)?JSON.stringify(I,Hn,2):String(I),Hn=(I,ce)=>rr(ce)?{[`Map(${ce.size})`]:[...ce.entries()].reduce((ge,[Se,Qe])=>(ge[`${Se} =>`]=Qe,ge),{})}:Ft(ce)?{[`Set(${ce.size})`]:[...ce.values()]}:Ht(ce)&&!It(ce)&&!fn(ce)?String(ce):ce,qn=["bigInt","optionalChaining","nullishCoalescingOperator"],Nr=Object.freeze({}),Ir=Object.freeze([]),Fr=()=>{},br=()=>!1,yr=/^on[^a-z]/,vr=I=>yr.test(I),_r=I=>I.startsWith("onUpdate:"),sn=Object.assign,an=(I,ce)=>{const ge=I.indexOf(ce);ge>-1&&I.splice(ge,1)},ln=Object.prototype.hasOwnProperty,cn=(I,ce)=>ln.call(I,ce),It=Array.isArray,rr=I=>ir(I)==="[object Map]",Ft=I=>ir(I)==="[object Set]",Mr=I=>I instanceof Date,Dr=I=>typeof I=="function",nr=I=>typeof I=="string",zn=I=>typeof I=="symbol",Ht=I=>I!==null&&typeof I=="object",wr=I=>Ht(I)&&Dr(I.then)&&Dr(I.catch),un=Object.prototype.toString,ir=I=>un.call(I),Wn=I=>ir(I).slice(8,-1),fn=I=>ir(I)==="[object Object]",dn=I=>nr(I)&&I!=="NaN"&&I[0]!=="-"&&""+parseInt(I,10)===I,pn=c(",key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),sr=I=>{const ce=Object.create(null);return ge=>ce[ge]||(ce[ge]=I(ge))},hn=/-(\w)/g,gn=sr(I=>I.replace(hn,(ce,ge)=>ge?ge.toUpperCase():"")),Vn=/\B([A-Z])/g,mn=sr(I=>I.replace(Vn,"-$1").toLowerCase()),or=sr(I=>I.charAt(0).toUpperCase()+I.slice(1)),Kn=sr(I=>I?`on${or(I)}`:""),Br=(I,ce)=>I!==ce&&(I===I||ce===ce),Gn=(I,ce)=>{for(let ge=0;ge{Object.defineProperty(I,ce,{configurable:!0,enumerable:!1,value:ge})},Sr=I=>{const ce=parseFloat(I);return isNaN(ce)?I:ce},Er,bn=()=>Er||(Er=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});a.EMPTY_ARR=Ir,a.EMPTY_OBJ=Nr,a.NO=br,a.NOOP=Fr,a.PatchFlagNames=p,a.babelParserDefaultPlugins=qn,a.camelize=gn,a.capitalize=or,a.def=xr,a.escapeHtml=Dn,a.escapeHtmlComment=Bn,a.extend=sn,a.generateCodeFrame=U,a.getGlobalThis=bn,a.hasChanged=Br,a.hasOwn=cn,a.hyphenate=mn,a.invokeArrayFns=Gn,a.isArray=It,a.isBooleanAttr=Be,a.isDate=Mr,a.isFunction=Dr,a.isGloballyWhitelisted=T,a.isHTMLTag=hr,a.isIntegerKey=dn,a.isKnownAttr=Re,a.isMap=rr,a.isModelListener=_r,a.isNoUnitNumericStyleProp=Bt,a.isObject=Ht,a.isOn=vr,a.isPlainObject=fn,a.isPromise=wr,a.isReservedProp=pn,a.isSSRSafeAttrName=it,a.isSVGTag=Fn,a.isSet=Ft,a.isSpecialBooleanAttr=he,a.isString=nr,a.isSymbol=zn,a.isVoidTag=gr,a.looseEqual=mr,a.looseIndexOf=rn,a.makeMap=c,a.normalizeClass=Ut,a.normalizeStyle=tt,a.objectToString=un,a.parseStringStyle=xt,a.propsToAttrMap=Ct,a.remove=an,a.slotFlagsText=y,a.stringifyStyle=Nt,a.toDisplayString=nn,a.toHandlerKey=Kn,a.toNumber=Sr,a.toRawType=Wn,a.toTypeString=ir}}),O=h({"node_modules/@vue/shared/index.js"(a,c){c.exports=k()}}),v=h({"node_modules/@vue/reactivity/dist/reactivity.cjs.js"(a){Object.defineProperty(a,"__esModule",{value:!0});var c=O(),p=new WeakMap,y=[],S,T=Symbol("iterate"),N=Symbol("Map key iterate");function U(g){return g&&g._isEffect===!0}function Z(g,K=c.EMPTY_OBJ){U(g)&&(g=g.raw);const X=ot(g,K);return K.lazy||X(),X}function he(g){g.active&&(We(g),g.options.onStop&&g.options.onStop(),g.active=!1)}var Be=0;function ot(g,K){const X=function(){if(!X.active)return g();if(!y.includes(X)){We(X);try{return Re(),y.push(X),S=X,g()}finally{y.pop(),tt(),S=y[y.length-1]}}};return X.id=Be++,X.allowRecurse=!!K.allowRecurse,X._isEffect=!0,X.active=!0,X.raw=g,X.deps=[],X.options=K,X}function We(g){const{deps:K}=g;if(K.length){for(let X=0;X{vt&&vt.forEach(Mt=>{(Mt!==S||Mt.allowRecurse)&&dt.add(Mt)})};if(K==="clear")qe.forEach(Tt);else if(X==="length"&&c.isArray(g))qe.forEach((vt,Mt)=>{(Mt==="length"||Mt>=ve)&&Tt(vt)});else switch(X!==void 0&&Tt(qe.get(X)),K){case"add":c.isArray(g)?c.isIntegerKey(X)&&Tt(qe.get("length")):(Tt(qe.get(T)),c.isMap(g)&&Tt(qe.get(N)));break;case"delete":c.isArray(g)||(Tt(qe.get(T)),c.isMap(g)&&Tt(qe.get(N)));break;case"set":c.isMap(g)&&Tt(qe.get(T));break}const Hr=vt=>{vt.options.onTrigger&&vt.options.onTrigger({effect:vt,target:g,key:X,type:K,newValue:ve,oldValue:ue,oldTarget:Oe}),vt.options.scheduler?vt.options.scheduler(vt):vt()};dt.forEach(Hr)}var xt=c.makeMap("__proto__,__v_isRef,__isVue"),Nt=new Set(Object.getOwnPropertyNames(Symbol).map(g=>Symbol[g]).filter(c.isSymbol)),Ut=gr(),pr=gr(!1,!0),jr=gr(!0),Lr=gr(!0,!0),hr=Fn();function Fn(){const g={};return["includes","indexOf","lastIndexOf"].forEach(K=>{g[K]=function(...X){const ve=I(this);for(let Oe=0,qe=this.length;Oe{g[K]=function(...X){Bt();const ve=I(this)[K].apply(this,X);return tt(),ve}}),g}function gr(g=!1,K=!1){return function(ve,ue,Oe){if(ue==="__v_isReactive")return!g;if(ue==="__v_isReadonly")return g;if(ue==="__v_raw"&&Oe===(g?K?gn:hn:K?sr:pn).get(ve))return ve;const qe=c.isArray(ve);if(!g&&qe&&c.hasOwn(hr,ue))return Reflect.get(hr,ue,Oe);const dt=Reflect.get(ve,ue,Oe);return(c.isSymbol(ue)?Nt.has(ue):xt(ue))||(g||He(ve,"get",ue),K)?dt:Se(dt)?!qe||!c.isIntegerKey(ue)?dt.value:dt:c.isObject(dt)?g?Br(dt):or(dt):dt}}var Mn=tn(),Dn=tn(!0);function tn(g=!1){return function(X,ve,ue,Oe){let qe=X[ve];if(!g&&(ue=I(ue),qe=I(qe),!c.isArray(X)&&Se(qe)&&!Se(ue)))return qe.value=ue,!0;const dt=c.isArray(X)&&c.isIntegerKey(ve)?Number(ve)c.isObject(g)?or(g):g,Ir=g=>c.isObject(g)?Br(g):g,Fr=g=>g,br=g=>Reflect.getPrototypeOf(g);function yr(g,K,X=!1,ve=!1){g=g.__v_raw;const ue=I(g),Oe=I(K);K!==Oe&&!X&&He(ue,"get",K),!X&&He(ue,"get",Oe);const{has:qe}=br(ue),dt=ve?Fr:X?Ir:Nr;if(qe.call(ue,K))return dt(g.get(K));if(qe.call(ue,Oe))return dt(g.get(Oe));g!==ue&&g.get(K)}function vr(g,K=!1){const X=this.__v_raw,ve=I(X),ue=I(g);return g!==ue&&!K&&He(ve,"has",g),!K&&He(ve,"has",ue),g===ue?X.has(g):X.has(g)||X.has(ue)}function _r(g,K=!1){return g=g.__v_raw,!K&&He(I(g),"iterate",T),Reflect.get(g,"size",g)}function sn(g){g=I(g);const K=I(this);return br(K).has.call(K,g)||(K.add(g),Ye(K,"add",g,g)),this}function an(g,K){K=I(K);const X=I(this),{has:ve,get:ue}=br(X);let Oe=ve.call(X,g);Oe?dn(X,ve,g):(g=I(g),Oe=ve.call(X,g));const qe=ue.call(X,g);return X.set(g,K),Oe?c.hasChanged(K,qe)&&Ye(X,"set",g,K,qe):Ye(X,"add",g,K),this}function ln(g){const K=I(this),{has:X,get:ve}=br(K);let ue=X.call(K,g);ue?dn(K,X,g):(g=I(g),ue=X.call(K,g));const Oe=ve?ve.call(K,g):void 0,qe=K.delete(g);return ue&&Ye(K,"delete",g,void 0,Oe),qe}function cn(){const g=I(this),K=g.size!==0,X=c.isMap(g)?new Map(g):new Set(g),ve=g.clear();return K&&Ye(g,"clear",void 0,void 0,X),ve}function It(g,K){return function(ve,ue){const Oe=this,qe=Oe.__v_raw,dt=I(qe),Tt=K?Fr:g?Ir:Nr;return!g&&He(dt,"iterate",T),qe.forEach((Hr,vt)=>ve.call(ue,Tt(Hr),Tt(vt),Oe))}}function rr(g,K,X){return function(...ve){const ue=this.__v_raw,Oe=I(ue),qe=c.isMap(Oe),dt=g==="entries"||g===Symbol.iterator&&qe,Tt=g==="keys"&&qe,Hr=ue[g](...ve),vt=X?Fr:K?Ir:Nr;return!K&&He(Oe,"iterate",Tt?N:T),{next(){const{value:Mt,done:Xn}=Hr.next();return Xn?{value:Mt,done:Xn}:{value:dt?[vt(Mt[0]),vt(Mt[1])]:vt(Mt),done:Xn}},[Symbol.iterator](){return this}}}}function Ft(g){return function(...K){{const X=K[0]?`on key "${K[0]}" `:"";console.warn(`${c.capitalize(g)} operation ${X}failed: target is readonly.`,I(this))}return g==="delete"?!1:this}}function Mr(){const g={get(Oe){return yr(this,Oe)},get size(){return _r(this)},has:vr,add:sn,set:an,delete:ln,clear:cn,forEach:It(!1,!1)},K={get(Oe){return yr(this,Oe,!1,!0)},get size(){return _r(this)},has:vr,add:sn,set:an,delete:ln,clear:cn,forEach:It(!1,!0)},X={get(Oe){return yr(this,Oe,!0)},get size(){return _r(this,!0)},has(Oe){return vr.call(this,Oe,!0)},add:Ft("add"),set:Ft("set"),delete:Ft("delete"),clear:Ft("clear"),forEach:It(!0,!1)},ve={get(Oe){return yr(this,Oe,!0,!0)},get size(){return _r(this,!0)},has(Oe){return vr.call(this,Oe,!0)},add:Ft("add"),set:Ft("set"),delete:Ft("delete"),clear:Ft("clear"),forEach:It(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(Oe=>{g[Oe]=rr(Oe,!1,!1),X[Oe]=rr(Oe,!0,!1),K[Oe]=rr(Oe,!1,!0),ve[Oe]=rr(Oe,!0,!0)}),[g,X,K,ve]}var[Dr,nr,zn,Ht]=Mr();function wr(g,K){const X=K?g?Ht:zn:g?nr:Dr;return(ve,ue,Oe)=>ue==="__v_isReactive"?!g:ue==="__v_isReadonly"?g:ue==="__v_raw"?ve:Reflect.get(c.hasOwn(X,ue)&&ue in ve?X:ve,ue,Oe)}var un={get:wr(!1,!1)},ir={get:wr(!1,!0)},Wn={get:wr(!0,!1)},fn={get:wr(!0,!0)};function dn(g,K,X){const ve=I(X);if(ve!==X&&K.call(g,ve)){const ue=c.toRawType(g);console.warn(`Reactive ${ue} contains both the raw and reactive versions of the same object${ue==="Map"?" as keys":""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}var pn=new WeakMap,sr=new WeakMap,hn=new WeakMap,gn=new WeakMap;function Vn(g){switch(g){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function mn(g){return g.__v_skip||!Object.isExtensible(g)?0:Vn(c.toRawType(g))}function or(g){return g&&g.__v_isReadonly?g:xr(g,!1,rn,un,pn)}function Kn(g){return xr(g,!1,Hn,ir,sr)}function Br(g){return xr(g,!0,nn,Wn,hn)}function Gn(g){return xr(g,!0,qn,fn,gn)}function xr(g,K,X,ve,ue){if(!c.isObject(g))return console.warn(`value cannot be made reactive: ${String(g)}`),g;if(g.__v_raw&&!(K&&g.__v_isReactive))return g;const Oe=ue.get(g);if(Oe)return Oe;const qe=mn(g);if(qe===0)return g;const dt=new Proxy(g,qe===2?ve:X);return ue.set(g,dt),dt}function Sr(g){return Er(g)?Sr(g.__v_raw):!!(g&&g.__v_isReactive)}function Er(g){return!!(g&&g.__v_isReadonly)}function bn(g){return Sr(g)||Er(g)}function I(g){return g&&I(g.__v_raw)||g}function ce(g){return c.def(g,"__v_skip",!0),g}var ge=g=>c.isObject(g)?or(g):g;function Se(g){return!!(g&&g.__v_isRef===!0)}function Qe(g){return Et(g)}function ut(g){return Et(g,!0)}var St=class{constructor(g,K=!1){this._shallow=K,this.__v_isRef=!0,this._rawValue=K?g:I(g),this._value=K?g:ge(g)}get value(){return He(I(this),"get","value"),this._value}set value(g){g=this._shallow?g:I(g),c.hasChanged(g,this._rawValue)&&(this._rawValue=g,this._value=this._shallow?g:ge(g),Ye(I(this),"set","value",g))}};function Et(g,K=!1){return Se(g)?g:new St(g,K)}function bt(g){Ye(I(g),"set","value",g.value)}function Ur(g){return Se(g)?g.value:g}var Tr={get:(g,K,X)=>Ur(Reflect.get(g,K,X)),set:(g,K,X,ve)=>{const ue=g[K];return Se(ue)&&!Se(X)?(ue.value=X,!0):Reflect.set(g,K,X,ve)}};function yn(g){return Sr(g)?g:new Proxy(g,Tr)}var Ar=class{constructor(g){this.__v_isRef=!0;const{get:K,set:X}=g(()=>He(this,"get","value"),()=>Ye(this,"set","value"));this._get=K,this._set=X}get value(){return this._get()}set value(g){this._set(g)}};function Jn(g){return new Ar(g)}function $s(g){bn(g)||console.warn("toRefs() expects a reactive object but received a plain one.");const K=c.isArray(g)?new Array(g.length):{};for(const X in g)K[X]=Oi(g,X);return K}var ks=class{constructor(g,K){this._object=g,this._key=K,this.__v_isRef=!0}get value(){return this._object[this._key]}set value(g){this._object[this._key]=g}};function Oi(g,K){return Se(g[K])?g[K]:new ks(g,K)}var Cs=class{constructor(g,K,X){this._setter=K,this._dirty=!0,this.__v_isRef=!0,this.effect=Z(g,{lazy:!0,scheduler:()=>{this._dirty||(this._dirty=!0,Ye(I(this),"set","value"))}}),this.__v_isReadonly=X}get value(){const g=I(this);return g._dirty&&(g._value=this.effect(),g._dirty=!1),He(g,"get","value"),g._value}set value(g){this._setter(g)}};function Ps(g){let K,X;return c.isFunction(g)?(K=g,X=()=>{console.warn("Write operation failed: computed value is readonly")}):(K=g.get,X=g.set),new Cs(K,X,c.isFunction(g)||!g.set)}a.ITERATE_KEY=T,a.computed=Ps,a.customRef=Jn,a.effect=Z,a.enableTracking=Re,a.isProxy=bn,a.isReactive=Sr,a.isReadonly=Er,a.isRef=Se,a.markRaw=ce,a.pauseTracking=Bt,a.proxyRefs=yn,a.reactive=or,a.readonly=Br,a.ref=Qe,a.resetTracking=tt,a.shallowReactive=Kn,a.shallowReadonly=Gn,a.shallowRef=ut,a.stop=he,a.toRaw=I,a.toRef=Oi,a.toRefs=$s,a.track=He,a.trigger=Ye,a.triggerRef=bt,a.unref=Ur}}),x=h({"node_modules/@vue/reactivity/index.js"(a,c){c.exports=v()}}),E={};m(E,{Alpine:()=>Ai,default:()=>Os}),t.exports=R(E);var L=!1,F=!1,H=[],te=-1;function D(a){M(a)}function M(a){H.includes(a)||H.push(a),ae()}function V(a){let c=H.indexOf(a);c!==-1&&c>te&&H.splice(c,1)}function ae(){!F&&!L&&(L=!0,queueMicrotask(me))}function me(){L=!1,F=!0;for(let a=0;aa.effect(c,{scheduler:p=>{Je?D(p):p()}}),Ce=a.raw}function ft(a){W=a}function yt(a){let c=()=>{};return[y=>{let S=W(y);return a._x_effects||(a._x_effects=new Set,a._x_runEffects=()=>{a._x_effects.forEach(T=>T())}),a._x_effects.add(S),c=()=>{S!==void 0&&(a._x_effects.delete(S),se(S))},S},()=>{c()}]}function At(a,c){let p=!0,y,S=W(()=>{let T=a();JSON.stringify(T),p?y=T:queueMicrotask(()=>{c(T,y),y=T}),p=!1});return()=>se(S)}var Ne=[],Pe=[],Ie=[];function Le(a){Ie.push(a)}function Ee(a,c){typeof c=="function"?(a._x_cleanups||(a._x_cleanups=[]),a._x_cleanups.push(c)):(c=a,Pe.push(c))}function pe(a){Ne.push(a)}function et(a,c,p){a._x_attributeCleanups||(a._x_attributeCleanups={}),a._x_attributeCleanups[c]||(a._x_attributeCleanups[c]=[]),a._x_attributeCleanups[c].push(p)}function le(a,c){a._x_attributeCleanups&&Object.entries(a._x_attributeCleanups).forEach(([p,y])=>{(c===void 0||c.includes(p))&&(y.forEach(S=>S()),delete a._x_attributeCleanups[p])})}function be(a){var c,p;for((c=a._x_effects)==null||c.forEach(V);(p=a._x_cleanups)!=null&&p.length;)a._x_cleanups.pop()()}var ke=new MutationObserver(nt),Ve=!1;function $e(){ke.observe(document,{subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0}),Ve=!0}function _e(){at(),ke.disconnect(),Ve=!1}var mt=[];function at(){let a=ke.takeRecords();mt.push(()=>a.length>0&&nt(a));let c=mt.length;queueMicrotask(()=>{if(mt.length===c)for(;mt.length>0;)mt.shift()()})}function de(a){if(!Ve)return a();_e();let c=a();return $e(),c}var J=!1,Q=[];function Ae(){J=!0}function oe(){J=!1,nt(Q),Q=[]}function nt(a){if(J){Q=Q.concat(a);return}let c=new Set,p=new Set,y=new Map,S=new Map;for(let T=0;TN.nodeType===1&&c.add(N)),a[T].removedNodes.forEach(N=>N.nodeType===1&&p.add(N))),a[T].type==="attributes")){let N=a[T].target,U=a[T].attributeName,Z=a[T].oldValue,he=()=>{y.has(N)||y.set(N,[]),y.get(N).push({name:U,value:N.getAttribute(U)})},Be=()=>{S.has(N)||S.set(N,[]),S.get(N).push(U)};N.hasAttribute(U)&&Z===null?he():N.hasAttribute(U)?(Be(),he()):Be()}S.forEach((T,N)=>{le(N,T)}),y.forEach((T,N)=>{Ne.forEach(U=>U(N,T))});for(let T of p)c.has(T)||Pe.forEach(N=>N(T));c.forEach(T=>{T._x_ignoreSelf=!0,T._x_ignore=!0});for(let T of c)p.has(T)||T.isConnected&&(delete T._x_ignoreSelf,delete T._x_ignore,Ie.forEach(N=>N(T)),T._x_ignore=!0,T._x_ignoreSelf=!0);c.forEach(T=>{delete T._x_ignoreSelf,delete T._x_ignore}),c=null,p=null,y=null,S=null}function Te(a){return xe(ie(a))}function re(a,c,p){return a._x_dataStack=[c,...ie(p||a)],()=>{a._x_dataStack=a._x_dataStack.filter(y=>y!==c)}}function ie(a){return a._x_dataStack?a._x_dataStack:typeof ShadowRoot=="function"&&a instanceof ShadowRoot?ie(a.host):a.parentNode?ie(a.parentNode):[]}function xe(a){return new Proxy({objects:a},Xe)}var Xe={ownKeys({objects:a}){return Array.from(new Set(a.flatMap(c=>Object.keys(c))))},has({objects:a},c){return c==Symbol.unscopables?!1:a.some(p=>Object.prototype.hasOwnProperty.call(p,c)||Reflect.has(p,c))},get({objects:a},c,p){return c=="toJSON"?Fe:Reflect.get(a.find(y=>Reflect.has(y,c))||{},c,p)},set({objects:a},c,p,y){const S=a.find(N=>Object.prototype.hasOwnProperty.call(N,c))||a[a.length-1],T=Object.getOwnPropertyDescriptor(S,c);return T!=null&&T.set&&(T!=null&&T.get)?T.set.call(y,p)||!0:Reflect.set(S,c,p)}};function Fe(){return Reflect.ownKeys(this).reduce((c,p)=>(c[p]=Reflect.get(this,p),c),{})}function gt(a){let c=y=>typeof y=="object"&&!Array.isArray(y)&&y!==null,p=(y,S="")=>{Object.entries(Object.getOwnPropertyDescriptors(y)).forEach(([T,{value:N,enumerable:U}])=>{if(U===!1||N===void 0||typeof N=="object"&&N!==null&&N.__v_skip)return;let Z=S===""?T:`${S}.${T}`;typeof N=="object"&&N!==null&&N._x_interceptor?y[T]=N.initialize(a,Z,T):c(N)&&N!==y&&!(N instanceof Element)&&p(N,Z)})};return p(a)}function pt(a,c=()=>{}){let p={initialValue:void 0,_x_interceptor:!0,initialize(y,S,T){return a(this.initialValue,()=>Pt(y,S),N=>Rt(y,S,N),S,T)}};return c(p),y=>{if(typeof y=="object"&&y!==null&&y._x_interceptor){let S=p.initialize.bind(p);p.initialize=(T,N,U)=>{let Z=y.initialize(T,N,U);return p.initialValue=Z,S(T,N,U)}}else p.initialValue=y;return p}}function Pt(a,c){return c.split(".").reduce((p,y)=>p[y],a)}function Rt(a,c,p){if(typeof c=="string"&&(c=c.split(".")),c.length===1)a[c[0]]=p;else{if(c.length===0)throw error;return a[c[0]]||(a[c[0]]={}),Rt(a[c[0]],c.slice(1),p)}}var Qt={};function Ot(a,c){Qt[a]=c}function qt(a,c){let p=er(c);return Object.entries(Qt).forEach(([y,S])=>{Object.defineProperty(a,`$${y}`,{get(){return S(c,p)},enumerable:!1})}),a}function er(a){let[c,p]=ye(a),y={interceptor:pt,...c};return Ee(a,p),y}function qr(a,c,p,...y){try{return p(...y)}catch(S){Gt(S,a,c)}}function Gt(a,c,p=void 0){a=Object.assign(a??{message:"No error message given."},{el:c,expression:p}),console.warn(`Alpine Expression Error: ${a.message} ${p?'Expression: "'+p+`" -`:""}`,c),setTimeout(()=>{throw a},0)}var ar=!0;function zr(a){let c=ar;ar=!1;let p=a();return ar=c,p}function zt(a,c,p={}){let y;return _t(a,c)(S=>y=S,p),y}function _t(...a){return Or(...a)}var Or=Vr;function Wr(a){Or=a}function Vr(a,c){let p={};qt(p,a);let y=[p,...ie(a)],S=typeof c=="function"?vn(y,c):wn(y,c,a);return qr.bind(null,a,c,S)}function vn(a,c){return(p=()=>{},{scope:y={},params:S=[]}={})=>{let T=c.apply(xe([y,...a]),S);lr(p,T)}}var $r={};function _n(a,c){if($r[a])return $r[a];let p=Object.getPrototypeOf(async function(){}).constructor,y=/^[\n\s]*if.*\(.*\)/.test(a.trim())||/^(let|const)\s/.test(a.trim())?`(async()=>{ ${a} })()`:a,T=(()=>{try{let N=new p(["__self","scope"],`with (scope) { __self.result = ${y} }; __self.finished = true; return __self.result;`);return Object.defineProperty(N,"name",{value:`[Alpine] ${a}`}),N}catch(N){return Gt(N,c,a),Promise.resolve()}})();return $r[a]=T,T}function wn(a,c,p){let y=_n(c,p);return(S=()=>{},{scope:T={},params:N=[]}={})=>{y.result=void 0,y.finished=!1;let U=xe([T,...a]);if(typeof y=="function"){let Z=y(y,U).catch(he=>Gt(he,p,c));y.finished?(lr(S,y.result,U,N,p),y.result=void 0):Z.then(he=>{lr(S,he,U,N,p)}).catch(he=>Gt(he,p,c)).finally(()=>y.result=void 0)}}}function lr(a,c,p,y,S){if(ar&&typeof c=="function"){let T=c.apply(p,y);T instanceof Promise?T.then(N=>lr(a,N,p,y)).catch(N=>Gt(N,S,c)):a(T)}else typeof c=="object"&&c instanceof Promise?c.then(T=>a(T)):a(c)}var cr="x-";function Wt(a=""){return cr+a}function Kr(a){cr=a}var ur={};function b(a,c){return ur[a]=c,{before(p){if(!ur[p]){console.warn(String.raw`Cannot find directive \`${p}\`. \`${a}\` will use the default order of execution`);return}const y=st.indexOf(p);st.splice(y>=0?y:st.indexOf("DEFAULT"),0,a)}}}function j(a){return Object.keys(ur).includes(a)}function B(a,c,p){if(c=Array.from(c),a._x_virtualDirectives){let T=Object.entries(a._x_virtualDirectives).map(([U,Z])=>({name:U,value:Z})),N=q(T);T=T.map(U=>N.find(Z=>Z.name===U.name)?{name:`x-bind:${U.name}`,value:`"${U.value}"`}:U),c=c.concat(T)}let y={};return c.map(Ke((T,N)=>y[T]=N)).filter(ze).map(Ge(y,p)).sort(kt).map(T=>we(a,T))}function q(a){return Array.from(a).map(Ke()).filter(c=>!ze(c))}var G=!1,ee=new Map,ne=Symbol();function fe(a){G=!0;let c=Symbol();ne=c,ee.set(c,[]);let p=()=>{for(;ee.get(c).length;)ee.get(c).shift()();ee.delete(c)},y=()=>{G=!1,p()};a(p),y()}function ye(a){let c=[],p=U=>c.push(U),[y,S]=yt(a);return c.push(S),[{Alpine:Rr,effect:y,cleanup:p,evaluateLater:_t.bind(_t,a),evaluate:zt.bind(zt,a)},()=>c.forEach(U=>U())]}function we(a,c){let p=()=>{},y=ur[c.type]||p,[S,T]=ye(a);et(a,c.original,T);let N=()=>{a._x_ignore||a._x_ignoreSelf||(y.inline&&y.inline(a,c,S),y=y.bind(y,a,c,S),G?ee.get(ne).push(y):y())};return N.runCleanups=T,N}var Ue=(a,c)=>({name:p,value:y})=>(p.startsWith(a)&&(p=p.replace(a,c)),{name:p,value:y}),Me=a=>a;function Ke(a=()=>{}){return({name:c,value:p})=>{let{name:y,value:S}=je.reduce((T,N)=>N(T),{name:c,value:p});return y!==c&&a(y,c),{name:y,value:S}}}var je=[];function De(a){je.push(a)}function ze({name:a}){return lt().test(a)}var lt=()=>new RegExp(`^${cr}([^:^.]+)\\b`);function Ge(a,c){return({name:p,value:y})=>{let S=p.match(lt()),T=p.match(/:([a-zA-Z0-9\-_:]+)/),N=p.match(/\.[^.\]]+(?=[^\]]*$)/g)||[],U=c||a[p]||p;return{type:S?S[1]:null,value:T?T[1]:null,modifiers:N.map(Z=>Z.replace(".","")),expression:y,original:U}}}var ct="DEFAULT",st=["ignore","ref","data","id","anchor","bind","init","for","model","modelable","transition","show","if",ct,"teleport"];function kt(a,c){let p=st.indexOf(a.type)===-1?ct:a.type,y=st.indexOf(c.type)===-1?ct:c.type;return st.indexOf(p)-st.indexOf(y)}function ht(a,c,p={}){a.dispatchEvent(new CustomEvent(c,{detail:p,bubbles:!0,composed:!0,cancelable:!0}))}function $t(a,c){if(typeof ShadowRoot=="function"&&a instanceof ShadowRoot){Array.from(a.children).forEach(S=>$t(S,c));return}let p=!1;if(c(a,()=>p=!0),p)return;let y=a.firstElementChild;for(;y;)$t(y,c),y=y.nextElementSibling}function wt(a,...c){console.warn(`Alpine Warning: ${a}`,...c)}var Jt=!1;function Gr(){Jt&&wt("Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems."),Jt=!0,document.body||wt("Unable to initialize. Trying to load Alpine before `` is available. Did you forget to add `defer` in Alpine's `