diff --git a/.gitignore b/.gitignore
index 0083e76434..8fffa06ae3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,11 +1,26 @@
-# OS generated files #
-######################
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# Dependencies
+node_modules
+pnpm-lock.yaml
+package-lock.json
+yarn.lock
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+dist
+.editorconfig
+
+# Misc
.DS_Store
.DS_Store?
._*
-.Spotlight-V100
-.Trashes
-.idea
-ehthumbs.db
Thumbs.db
-node_modules
+logs
+*.log
+.env
+
+# Adastra
+assets/adastra.manifest.json
diff --git a/README.md b/README.md
index 926d8c0e3b..9dd394ccad 100644
--- a/README.md
+++ b/README.md
@@ -1,185 +1,126 @@
-Brought to you and maintained by [Trellis Commerce](https://trellis.co/) - A full-service eCommerce agency based in Boston, MA
+# Adastra Necessary Template ✨
-Latest merged code from [Dawn v15.0.1](https://github.com/Shopify/dawn/releases/tag/v15.0.1)
-
-# Dawn + Tailwind CSS + Prettier Shopify Starter Theme
-
-Shopify Dawn theme with Tailwind CSS & Prettier integrations
-
-The starter theme includes an integration of:
-
-## [Tailwind CSS](https://tailwindcss.com/)
-
-- [Configured](https://markustripp.medium.com/extend-shopify-dawn-theme-with-a-custom-tailwind-css-carousel-section-e3efe3ecf18e) to use `prefix: twcss-` in order to not clash with Dawn’s existing styles
-
-## [Trellis' Prettier config](https://www.npmjs.com/package/@trelliscommerce/prettier-config) with Husky pre-commit hooks
-
-- Formats JS & CSS whenever a git commit is made
-- Set up your own VSCode to apply Prettier formatting when a file is saved (optional)
-
-## Other Noted Modifications
-
-- Set the default page width to 1440px and tweaked the desktop page width range to be 1200px to 1600px with a step adjustment of 10px (standard desktop width used at Trellis and allows for more fine tuning)
-- There is a page template called `noindexnofollow` with the meta tag `noindex, nofollow` for any pages that need to be hidden from search engine site crawlers
-
-## Steps to Start Using this Starter Theme
-
-1. Fork this repository & enable actions in the repo's Actions tab.
-
-| :bangbang: | When forking this repo, make sure to change the settings in the forked repo under Settings > Actions > General > Workflow permissions to be `Read and write permissions` and check `Allow GitHub Actions to create and approve pull requests` for the Theme Check & Lighthouse actions to run |
-|:----------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-
-2. Clone the forked repo, navigate to the directory in your terminal, & run `npm install`.
-
-3. In the theme section of your Shopify admin you can connect to a GitHub repository via “Add theme” button.
-
-
-
-4. In your terminal, navigate to the cloned repo directory, and use the Shopify CLI to launch the development server to your store with `shopify theme dev --store=mystore.myshopify.com` and upload the theme with `shopify theme share`.
-
-| :bangbang: | If you are working on a development store and are signed in via your partner dashboard, you must add a separate user in that Shopify store with admin rights and sign in with this new user when logging in using the Shopify CLI |
-|:----------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-
-You can add users in the store Settings:
-
-
-
-## Add GitHub secrets for Lighthouse CI Performance Evaluation Actions
-
-| :bangbang: | This repo does not have the following secrets configured, which is why the Lighthouse action is failing. |
-|:----------:|:---------------------------------------------------------------------------------------------------------|
-
-First, make sure your `Workflow permissions` are set like below in order for the actions to run:
-
-
-
-In your GitHub repo, navigate to Settings > Secrets > Actions and add the following repository secrets:
-
-`SHOP_ACCESS_TOKEN`
-
-- Settings > Apps and sales channels > Develop Apps > Create an app. Name it something like `Lighthouse` and give the app permissions of `read_products,write_themes`. Install the app and use the token value that will start with `shpat_`.
-
-`SHOP_STORE`
-
-- `mystore.myshopify.com` (ex. `trellis-sandbox.myshopify.com`)
-
-`SHOP_PASSWORD`
-
-- Need if Preferences > Password protection is enabled
-
-`SHOP_COLLECTION_HANDLE`
-
-- Collection with products **manually added** needs to be created and the handle used here
-- Make sure data shows for the API request: https://mystore.myshopify.com/admin/api/2021-04/custom_collections.json?published_status=published&limit=1
-
-`SHOP_PRODUCT_HANDLE`
-
-- Select a product handle for a product that comes back from the API request: https://mystore.myshopify.com/admin/api/2021-04/products.json?published_status=published&limit=1
-
-`LHCI_GITHUB_APP_TOKEN`
-
-- To enable GitHub status checks via the official GitHub app, [install and authorize the app](https://github.com/apps/lighthouse-ci) with the owner of the target repo. If the repo is within an organization, organization approval might be necessary. Copy the app token provided on the authorization confirmation page and add it to your build environment as `LHCI_GITHUB_APP_TOKEN`
-
-These secret values are used in the `ci.yml` GitHub workflow:
-
-
-
-## Install [Shopify Liquid VSCode extension](https://marketplace.visualstudio.com/items?itemName=Shopify.theme-check-vscode)
-
-- Includes [Shopify Theme Check](https://shopify.dev/themes/tools/theme-check) linting
-
-## Common local development commands
-
-1. Before beginning any work, it is good practice to pull down the latest changes from the Shopify Dawn theme:
- `git fetch upstream`
- `git pull upstream main`
-
-2. Add upstream link if you get the error `fatal: 'upstream' does not appear to be a git repository` run:
- `git remote add upstream https://github.com/Shopify/dawn.git` or `git remote add upstream https://github.com/TrellisCommerce/shopify-tailwind-starter-base` depending on which repository you want to pull updates from
-
-3. Pull down changes from the theme editor:
- `shopify theme pull -d`
+```bash
+npm create adastra@latest -- --template necessary
+```
-4. Anytime you add a Tailwind CSS class (remember to prefix it with twcss-), run the CLI tool to scan your template files for classes and build your CSS to assets/app.css:
- `npx tailwindcss -i ./assets/app-tailwind.css -o ./assets/app.css --watch`
+Using Yarn/PNPM
-- Run this command in a separate terminal, so it will continue to run while you are developing.
-- Note that using a Tailwind CSS class without a space afterward when followed by a liquid tag causes compiling issues:
-`lg:!twcss-px-[32px]{% endif %}'>`
-But this does work:
-`lg:!twcss-px-[32px] {% endif %}'>`
+```bash
+yarn create adastra@latest --template necessary
+# pnpm create adastra@latest --template necessary
+```
-5. Launch the local development server:
- `shopify theme dev`
-
----
+[](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=603560480)
-# Other Versions of the Starter Theme
+> 🧑🚀 **Hey astronaut?** Have fun building Shopify themes with Adastra!
-## Tailwind Admin Fields
+
-- [Branch](https://github.com/TrellisCommerce/shopify-tailwind-starter-base/tree/tailwind-admin-fields)
+## Launch development server
-### How Is It Different
+### Using Adastra CLI ✨
-Multiple admin fields have been added at the theme level, as well as at the section level, to allow for more granular control over the Dawn theme's settings and elements directly through the admin by inputting Tailwind CSS classes as values.
+To launch the development server for the first time, you will need to replace the development command inside the `package.json` with the following:
-### How To Use
+```json
+"scripts": {
+ - "dev": "adastra dev",
+ "dev": "adastra dev -s example-store.myshopify.com",
+ ...
+}
+```
-First, decide if you want to configure the `tailwind.config.js` file to allow for your specific font families, sizes, colors, etc to cut down on the generated Tailwind CSS file from the start, or you can just jump in and take advantage of all the default Tailwind CSS classes.
+> 💡 The command will launch two dev servers, the first for Vite at `localhost:5173` to server static files from the `src` directory and the second for Shopify at `localhost:9292` to serve your theme.
-1. Affect global animation timing & easing from [Easing Functions Cheat Sheet](https://easings.net/) in Theme Settings under Animations:
+### Using Vite and Shopify CLI
-
+```json
+"scripts": {
+ - "dev": "adastra dev",
+ "dev": "vite",
+ "dev:shopify": "shopify theme dev -s example-store.myshopify.com",
+ "build": "vite build",
+ ...
+}
+```
-2. Affect global elements in the Theme Settings under the Tailwind CSS accordion:
+> 💡 Both commands will launch two dev servers, however you will need to spawn two terminal sessions for each server.
+
+## Theme Structure
+
+Inside your Adastra ✨ theme project, you'll see the following folders and files.
+
+1. Most Shopify themes files and folders remain the same.
+2. There is only one additional **Super Special** folder called `src` (you can change its name in `vite.config.js` file).
+3. Instead of directly editing static assets in the theme `assets` directory, you will use the new `src` directory instead.
+4. Static files inside the `src` directory are served by [Vite](https://vitejs.dev).
+5. When launching the developement sever command `npm run dev` the command launches two dev servers, one for [Vite](https://vitejs.dev) to serve static files and the other one for Shopify to upload the development theme to remote Shopify server (Takes a bit of time).
+
+```shell
+/
+├── assets
+├── config
+├── layout
+├── locales
+├── sections/
+│ └── hello-world.liquid
+├── snippets/
+│ └── colors.liquid
+├── src/ # Source directory (name can be changed in vite.config.js)
+│ ├── entrypoints/ # Entrypoints directory (name can be changed in vite.config.js)
+│ │ ├── base.css
+│ │ └── index.js
+│ └── hello-world.js
+├── templates
+├── vite.config.js
+└── package.json
+```
-
+Adastra ✨ detects entrypoint files automatically in the `entrypoints/` directory. In this case `base.css` for styles and `index.js` for modules.
-3. Affect global elements and page-level sections under the Tailwind CSS heading for each Dawn element in the admin:
+So everything you import to these two files will be shipped to the theme `assets` folder when building for production.
-
+You can create other folders like `src/utils/` if you want, or a `src/components/` folder for Native/React/Vue/Lit/Preact components. Only the files/modules imported in the entrypoint files will be served by Vite.
-### If Using in Conjunction with a Development Team
+Any static assets, like custom fonts, manifest files, `.css.liquid` or `.js.liquid`, can be placed inside the `assets` theme folder, just make sure to add the configuration below to avoid clearing the assets directory when building for production.
-#### Optimizing CSS
+```js
+// vite.config.js
-In order to make all the Tailwind classes available for the editor in the admin, the following was added to the `tailwind.config.js` file to include ALL classes, as well as breakpoint & hover variants, and to add `!important` to each class to make sure it overrides any existing Dawn styles:
+import { defineConfig } from 'vite'
+import adastra from 'adastra-plugin'
+export default defineConfig({
+ plugins: [adastra()],
+ build: {
+ emptyOutDir: false
+ }
+})
```
-...
-// safelist is added to provide all styles for design to add through the admin
-safelist: [
- {
- pattern: /.*/,
- variants: ['xs', 'sm', 'md', 'lg', 'hover', 'group-hover'],
- },
-],
-// !important is added to override core Dawn styles for design
-important: true,
-...
-```
-
-If this theme is handed over to a development team who will be editing the code directly, the safelist array will need to be removed (ideal to also remove the `important` key, but that would require adjusting any conflicting Dawn styles) from the config file and the following added to the content array to have Tailwind recognize the classes added through the admin fields:
-```
-content: [
- ...
- './**/*.json',
-],
-```
+## Commands
-If desired, run the Tailwind compile command to purge any unused styles (this step is optional as making a commit with changes to the tailwind config file will auto-generate a new `app.css` file after the commit is pushed, but this step will allow for a quick check on the proper purging of the classes): `npx tailwindcss -i ./assets/app-tailwind.css -o ./assets/app.css`
+Adastra CLI ✨ is built on top of Shopify CLI 3.X, this means that existing Adastra commands are the same as Shopify's.
-#### Lock Down the Admin Fields
+```bash
+adastra dev -s example-store.myshopify.com
+# same as shopify theme dev -s example-store.myshopify.com
+```
-To lock down the Tailwind CSS admin fields from being editied through the admin, run `gulp` in your terminal to transform all Tailwind text fields to checkbox fields instead and to add the following paragraph text to all Tailwind sections:
+All commands are run from the root of the theme project, from a terminal:
-_Tailwind fields are not editable through the admin at this stage. Please contact a Trellis engineer if changes are needed._
+### Other commands
-| :bangbang: | Note that toggling one of the checkboxes after running `gulp` will remove the contents of the tailwind admin fields. Since removing the fields also removes the entered values, swapping to a different field type preserves the values and does not allow for editing the values. |
-|:----------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Command | Action |
+| :--------------------- | :----------------------------------------------- |
+| `npm install` | Installs dependencies |
+| `npm run build` | Build and minifies your production static files to `./assets/` folder |
+| `npm run preview` | Preview of your remote development theme, before deploying |
+| `npm run check` | Run theme check to lint the theme |
+| `npm run adastra ...` | Run CLI commands like `adastra dev`, `adastra check` |
+| `npm run adastra --help` | Get help using the Adastra CLI |
-#### Code Review of Classes Inserted Through the Admin
+## Want to learn more?
-It is recommended to have a separate branch & connected theme version created for the design team to use when adding in classes through the admin fields. This way, when it is time to merge in the changes from that branch to another theme branch, a pull request can be created and all the commits can be reviewed all at once instead of reviewing each individual commit generated by `shopify[bot]`.
+Feel free to check [our documentation](https://docs.odestry.com) or jump into our [Discord server](https://help.odestry.com).
diff --git a/assets/adastra.manifest.json b/assets/adastra.manifest.json
new file mode 100644
index 0000000000..a89538719f
--- /dev/null
+++ b/assets/adastra.manifest.json
@@ -0,0 +1,20 @@
+{
+ "src/entrypoints/base.css": {
+ "file": "mm-base-056c9d6d.css",
+ "isEntry": true,
+ "src": "src/entrypoints/base.css"
+ },
+ "src/entrypoints/index.css": {
+ "file": "mm-index-db544325.css",
+ "src": "src/entrypoints/index.css"
+ },
+ "src/entrypoints/index.js": {
+ "css": [
+ "mm-index-db544325.css",
+ "mm-base-056c9d6d.css"
+ ],
+ "file": "mm-index-b9f6c250.js",
+ "isEntry": true,
+ "src": "src/entrypoints/index.js"
+ }
+}
\ No newline at end of file
diff --git a/assets/app.css b/assets/app.css
index b158105889..7c79c25895 100644
--- a/assets/app.css
+++ b/assets/app.css
@@ -107,7 +107,7 @@
}
/*
-! tailwindcss v3.4.12 | MIT License | https://tailwindcss.com
+! tailwindcss v3.4.14 | MIT License | https://tailwindcss.com
*/
/*
@@ -550,6 +550,1133 @@ video {
/* Make elements with the HTML hidden attribute stay hidden by default */
-[hidden] {
+[hidden]:where(:not([hidden="until-found"])) {
display: none;
}
+
+.container {
+ width: 100%;
+}
+
+@media (min-width: 320px) {
+ .container {
+ max-width: 320px;
+ }
+}
+
+@media (min-width: 750px) {
+ .container {
+ max-width: 750px;
+ }
+}
+
+@media (min-width: 990px) {
+ .container {
+ max-width: 990px;
+ }
+}
+
+@media (min-width: 1440px) {
+ .container {
+ max-width: 1440px;
+ }
+}
+
+@media (min-width: 1624px) {
+ .container {
+ max-width: 1624px;
+ }
+}
+
+@media (min-width: 1920px) {
+ .container {
+ max-width: 1920px;
+ }
+}
+
+.\!visible {
+ visibility: visible !important;
+}
+
+.invisible {
+ visibility: hidden;
+}
+
+.fixed {
+ position: fixed;
+}
+
+.absolute {
+ position: absolute;
+}
+
+.relative {
+ position: relative;
+}
+
+.sticky {
+ position: sticky;
+}
+
+.-bottom-16 {
+ bottom: -4rem;
+}
+
+.bottom-0 {
+ bottom: 0px;
+}
+
+.left-0 {
+ left: 0px;
+}
+
+.right-0 {
+ right: 0px;
+}
+
+.right-4 {
+ right: 1rem;
+}
+
+.isolate {
+ isolation: isolate;
+}
+
+.z-\[2\] {
+ z-index: 2;
+}
+
+.order-1 {
+ order: 1;
+}
+
+.order-2 {
+ order: 2;
+}
+
+.order-3 {
+ order: 3;
+}
+
+.order-4 {
+ order: 4;
+}
+
+.mx-auto {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.\!ml-1 {
+ margin-left: 0.25rem !important;
+}
+
+.-mt-1 {
+ margin-top: -0.25rem;
+}
+
+.-mt-20 {
+ margin-top: -5rem;
+}
+
+.mb-1 {
+ margin-bottom: 0.25rem;
+}
+
+.mb-10 {
+ margin-bottom: 2.5rem;
+}
+
+.mb-4 {
+ margin-bottom: 1rem;
+}
+
+.mb-5 {
+ margin-bottom: 1.25rem;
+}
+
+.mb-8 {
+ margin-bottom: 2rem;
+}
+
+.ml-4 {
+ margin-left: 1rem;
+}
+
+.mt-4 {
+ margin-top: 1rem;
+}
+
+.mt-3 {
+ margin-top: 0.75rem;
+}
+
+.mb-3 {
+ margin-bottom: 0.75rem;
+}
+
+.\!mb-3 {
+ margin-bottom: 0.75rem !important;
+}
+
+.\!block {
+ display: block !important;
+}
+
+.block {
+ display: block;
+}
+
+.inline-block {
+ display: inline-block;
+}
+
+.inline {
+ display: inline;
+}
+
+.flex {
+ display: flex;
+}
+
+.inline-flex {
+ display: inline-flex;
+}
+
+.table {
+ display: table;
+}
+
+.grid {
+ display: grid;
+}
+
+.\!hidden {
+ display: none !important;
+}
+
+.hidden {
+ display: none;
+}
+
+.aspect-square {
+ aspect-ratio: 1 / 1;
+}
+
+.\!h-auto {
+ height: auto !important;
+}
+
+.h-0 {
+ height: 0px;
+}
+
+.h-3 {
+ height: 0.75rem;
+}
+
+.h-5 {
+ height: 1.25rem;
+}
+
+.h-8 {
+ height: 2rem;
+}
+
+.h-\[1px\] {
+ height: 1px;
+}
+
+.h-auto {
+ height: auto;
+}
+
+.h-full {
+ height: 100%;
+}
+
+.min-h-20 {
+ min-height: 5rem;
+}
+
+.\!w-full {
+ width: 100% !important;
+}
+
+.w-3 {
+ width: 0.75rem;
+}
+
+.w-4 {
+ width: 1rem;
+}
+
+.w-5 {
+ width: 1.25rem;
+}
+
+.w-8 {
+ width: 2rem;
+}
+
+.w-fit {
+ width: -moz-fit-content;
+ width: fit-content;
+}
+
+.w-full {
+ width: 100%;
+}
+
+.min-w-\[250px\] {
+ min-width: 250px;
+}
+
+.min-w-full {
+ min-width: 100%;
+}
+
+.max-w-\[100px\] {
+ max-width: 100px;
+}
+
+.max-w-\[250px\] {
+ max-width: 250px;
+}
+
+.max-w-\[80vw\] {
+ max-width: 80vw;
+}
+
+.max-w-full {
+ max-width: 100%;
+}
+
+.max-w-none {
+ max-width: none;
+}
+
+.grow {
+ flex-grow: 1;
+}
+
+.-translate-x-2 {
+ --tw-translate-x: -0.5rem;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+
+.-translate-y-5 {
+ --tw-translate-y: -1.25rem;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+
+.translate-y-0 {
+ --tw-translate-y: 0px;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+
+.-rotate-\[8deg\] {
+ --tw-rotate: -8deg;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+
+.rotate-0 {
+ --tw-rotate: 0deg;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+
+.rotate-180 {
+ --tw-rotate: 180deg;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+
+.transform {
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+
+.cursor-pointer {
+ cursor: pointer;
+}
+
+.grid-cols-1 {
+ grid-template-columns: repeat(1, minmax(0, 1fr));
+}
+
+.grid-cols-2 {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+}
+
+.flex-col {
+ flex-direction: column;
+}
+
+.flex-wrap {
+ flex-wrap: wrap;
+}
+
+.items-start {
+ align-items: flex-start;
+}
+
+.items-end {
+ align-items: flex-end;
+}
+
+.items-center {
+ align-items: center;
+}
+
+.justify-start {
+ justify-content: flex-start;
+}
+
+.justify-center {
+ justify-content: center;
+}
+
+.justify-between {
+ justify-content: space-between;
+}
+
+.gap-0 {
+ gap: 0px;
+}
+
+.gap-10 {
+ gap: 2.5rem;
+}
+
+.gap-2 {
+ gap: 0.5rem;
+}
+
+.gap-4 {
+ gap: 1rem;
+}
+
+.overflow-hidden {
+ overflow: hidden;
+}
+
+.truncate {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.whitespace-normal {
+ white-space: normal;
+}
+
+.whitespace-nowrap {
+ white-space: nowrap;
+}
+
+.\!border-0 {
+ border-width: 0px !important;
+}
+
+.border {
+ border-width: 1px;
+}
+
+.\!border-t-0 {
+ border-top-width: 0px !important;
+}
+
+.border-b {
+ border-bottom-width: 1px;
+}
+
+.border-t {
+ border-top-width: 1px;
+}
+
+.border-\[grey\] {
+ --tw-border-opacity: 1;
+ border-color: rgb(128 128 128 / var(--tw-border-opacity));
+}
+
+.border-black {
+ --tw-border-opacity: 1;
+ border-color: rgb(0 0 0 / var(--tw-border-opacity));
+}
+
+.border-white {
+ --tw-border-opacity: 1;
+ border-color: rgb(255 255 255 / var(--tw-border-opacity));
+}
+
+.\!bg-\[\#FBEB34\] {
+ --tw-bg-opacity: 1 !important;
+ background-color: rgb(251 235 52 / var(--tw-bg-opacity)) !important;
+}
+
+.bg-\[\#292929\] {
+ --tw-bg-opacity: 1;
+ background-color: rgb(41 41 41 / var(--tw-bg-opacity));
+}
+
+.bg-\[\#6E6E6E\] {
+ --tw-bg-opacity: 1;
+ background-color: rgb(110 110 110 / var(--tw-bg-opacity));
+}
+
+.bg-\[\#A42325\] {
+ --tw-bg-opacity: 1;
+ background-color: rgb(164 35 37 / var(--tw-bg-opacity));
+}
+
+.bg-\[\#FFECEC\] {
+ --tw-bg-opacity: 1;
+ background-color: rgb(255 236 236 / var(--tw-bg-opacity));
+}
+
+.bg-\[rgba\(255\2c 255\2c 255\2c 0\.7\)\] {
+ background-color: rgba(255,255,255,0.7);
+}
+
+.bg-black {
+ --tw-bg-opacity: 1;
+ background-color: rgb(0 0 0 / var(--tw-bg-opacity));
+}
+
+.object-cover {
+ -o-object-fit: cover;
+ object-fit: cover;
+}
+
+.\!p-0 {
+ padding: 0px !important;
+}
+
+.p-10 {
+ padding: 2.5rem;
+}
+
+.p-2 {
+ padding: 0.5rem;
+}
+
+.p-3 {
+ padding: 0.75rem;
+}
+
+.p-4 {
+ padding: 1rem;
+}
+
+.\!px-1 {
+ padding-left: 0.25rem !important;
+ padding-right: 0.25rem !important;
+}
+
+.\!px-4 {
+ padding-left: 1rem !important;
+ padding-right: 1rem !important;
+}
+
+.\!py-10 {
+ padding-top: 2.5rem !important;
+ padding-bottom: 2.5rem !important;
+}
+
+.px-3 {
+ padding-left: 0.75rem;
+ padding-right: 0.75rem;
+}
+
+.px-4 {
+ padding-left: 1rem;
+ padding-right: 1rem;
+}
+
+.px-8 {
+ padding-left: 2rem;
+ padding-right: 2rem;
+}
+
+.py-1 {
+ padding-top: 0.25rem;
+ padding-bottom: 0.25rem;
+}
+
+.py-2 {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+}
+
+.py-3 {
+ padding-top: 0.75rem;
+ padding-bottom: 0.75rem;
+}
+
+.py-4 {
+ padding-top: 1rem;
+ padding-bottom: 1rem;
+}
+
+.pb-10 {
+ padding-bottom: 2.5rem;
+}
+
+.pb-8 {
+ padding-bottom: 2rem;
+}
+
+.pt-1 {
+ padding-top: 0.25rem;
+}
+
+.pt-10 {
+ padding-top: 2.5rem;
+}
+
+.pt-5 {
+ padding-top: 1.25rem;
+}
+
+.text-center {
+ text-align: center;
+}
+
+.\!font-body {
+ font-family: var(--font-body-family) !important;
+}
+
+.\!font-heading {
+ font-family: var(--font-heading-family) !important;
+}
+
+.font-heading {
+ font-family: var(--font-heading-family);
+}
+
+.font-script {
+ font-family: var(--font-script-family);
+}
+
+.font-body {
+ font-family: var(--font-body-family);
+}
+
+.\!text-base {
+ font-size: 1rem !important;
+ line-height: 1.5rem !important;
+}
+
+.\!text-lg {
+ font-size: 1.125rem !important;
+ line-height: 1.75rem !important;
+}
+
+.\!text-sm {
+ font-size: 0.875rem !important;
+ line-height: 1.25rem !important;
+}
+
+.text-2xl {
+ font-size: 1.5rem;
+ line-height: 2rem;
+}
+
+.text-4xl {
+ font-size: 2.25rem;
+ line-height: 2.5rem;
+}
+
+.text-\[12px\] {
+ font-size: 12px;
+}
+
+.text-\[28px\] {
+ font-size: 28px;
+}
+
+.text-\[5vw\] {
+ font-size: 5vw;
+}
+
+.text-\[8vw\] {
+ font-size: 8vw;
+}
+
+.text-base {
+ font-size: 1rem;
+ line-height: 1.5rem;
+}
+
+.text-lg {
+ font-size: 1.125rem;
+ line-height: 1.75rem;
+}
+
+.text-sm {
+ font-size: 0.875rem;
+ line-height: 1.25rem;
+}
+
+.text-xl {
+ font-size: 1.25rem;
+ line-height: 1.75rem;
+}
+
+.text-xs {
+ font-size: 0.75rem;
+ line-height: 1rem;
+}
+
+.text-3xl {
+ font-size: 1.875rem;
+ line-height: 2.25rem;
+}
+
+.font-bold {
+ font-weight: 700;
+}
+
+.font-medium {
+ font-weight: 500;
+}
+
+.font-semibold {
+ font-weight: 600;
+}
+
+.uppercase {
+ text-transform: uppercase;
+}
+
+.lowercase {
+ text-transform: lowercase;
+}
+
+.capitalize {
+ text-transform: capitalize;
+}
+
+.italic {
+ font-style: italic;
+}
+
+.\!tracking-wide {
+ letter-spacing: 0.025em !important;
+}
+
+.tracking-wide {
+ letter-spacing: 0.025em;
+}
+
+.tracking-widest {
+ letter-spacing: 0.1em;
+}
+
+.\!text-\[grey\] {
+ --tw-text-opacity: 1 !important;
+ color: rgb(128 128 128 / var(--tw-text-opacity)) !important;
+}
+
+.text-\[\#A42325\] {
+ --tw-text-opacity: 1;
+ color: rgb(164 35 37 / var(--tw-text-opacity));
+}
+
+.text-\[\#FBEB34\] {
+ --tw-text-opacity: 1;
+ color: rgb(251 235 52 / var(--tw-text-opacity));
+}
+
+.text-\[grey\] {
+ --tw-text-opacity: 1;
+ color: rgb(128 128 128 / var(--tw-text-opacity));
+}
+
+.text-black {
+ --tw-text-opacity: 1;
+ color: rgb(0 0 0 / var(--tw-text-opacity));
+}
+
+.text-white {
+ --tw-text-opacity: 1;
+ color: rgb(255 255 255 / var(--tw-text-opacity));
+}
+
+.underline {
+ text-decoration-line: underline;
+}
+
+.opacity-0 {
+ opacity: 0;
+}
+
+.opacity-100 {
+ opacity: 1;
+}
+
+.shadow {
+ --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
+ --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
+}
+
+.shadow-lg {
+ --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
+ --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
+}
+
+.outline {
+ outline-style: solid;
+}
+
+.grayscale-0 {
+ --tw-grayscale: grayscale(0);
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+}
+
+.filter {
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+}
+
+.transition {
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+ transition-duration: 150ms;
+}
+
+.duration-200 {
+ transition-duration: 200ms;
+}
+
+.duration-500 {
+ transition-duration: 500ms;
+}
+
+.hover\:bg-\[\#520303\]:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(82 3 3 / var(--tw-bg-opacity));
+}
+
+.hover\:text-\[\#FBEB34\]:hover {
+ --tw-text-opacity: 1;
+ color: rgb(251 235 52 / var(--tw-text-opacity));
+}
+
+.hover\:\!shadow-none:hover {
+ --tw-shadow: 0 0 #0000 !important;
+ --tw-shadow-colored: 0 0 #0000 !important;
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important;
+}
+
+.hover\:brightness-90:hover {
+ --tw-brightness: brightness(.9);
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+}
+
+.hover\:backdrop-brightness-90:hover {
+ --tw-backdrop-brightness: brightness(.9);
+ -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
+ backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
+}
+
+.focus-visible\:\!shadow-none:focus-visible {
+ --tw-shadow: 0 0 #0000 !important;
+ --tw-shadow-colored: 0 0 #0000 !important;
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important;
+}
+
+.focus-visible\:shadow-none:focus-visible {
+ --tw-shadow: 0 0 #0000;
+ --tw-shadow-colored: 0 0 #0000;
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
+}
+
+.focus-visible\:\!outline-none:focus-visible {
+ outline: 2px solid transparent !important;
+ outline-offset: 2px !important;
+}
+
+.focus-visible\:outline-2:focus-visible {
+ outline-width: 2px;
+}
+
+.focus-visible\:\!outline-offset-0:focus-visible {
+ outline-offset: 0px !important;
+}
+
+.focus-visible\:outline-offset-0:focus-visible {
+ outline-offset: 0px;
+}
+
+.group:hover .group-hover\:visible {
+ visibility: visible;
+}
+
+.group:hover .group-hover\:translate-x-0 {
+ --tw-translate-x: 0px;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+
+.group:hover .group-hover\:opacity-100 {
+ opacity: 1;
+}
+
+.group:hover .group-hover\:grayscale-0 {
+ --tw-grayscale: grayscale(0);
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+}
+
+@media (min-width: 750px) {
+ .md\:mb-0 {
+ margin-bottom: 0px;
+ }
+
+ .md\:mb-10 {
+ margin-bottom: 2.5rem;
+ }
+
+ .md\:\!flex {
+ display: flex !important;
+ }
+
+ .md\:grid-cols-2 {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ }
+
+ .md\:gap-4 {
+ gap: 1rem;
+ }
+
+ .md\:\!px-\[3\.2rem\] {
+ padding-left: 3.2rem !important;
+ padding-right: 3.2rem !important;
+ }
+
+ .md\:text-2xl {
+ font-size: 1.5rem;
+ line-height: 2rem;
+ }
+
+ .md\:text-5xl {
+ font-size: 3rem;
+ line-height: 1;
+ }
+}
+
+@media (min-width: 990px) {
+ .lg\:visible {
+ visibility: visible;
+ }
+
+ .lg\:static {
+ position: static;
+ }
+
+ .lg\:order-1 {
+ order: 1;
+ }
+
+ .lg\:order-2 {
+ order: 2;
+ }
+
+ .lg\:order-3 {
+ order: 3;
+ }
+
+ .lg\:order-4 {
+ order: 4;
+ }
+
+ .lg\:mb-0 {
+ margin-bottom: 0px;
+ }
+
+ .lg\:mb-4 {
+ margin-bottom: 1rem;
+ }
+
+ .lg\:\!block {
+ display: block !important;
+ }
+
+ .lg\:flex {
+ display: flex;
+ }
+
+ .lg\:\!hidden {
+ display: none !important;
+ }
+
+ .lg\:hidden {
+ display: none;
+ }
+
+ .lg\:h-auto {
+ height: auto;
+ }
+
+ .lg\:h-full {
+ height: 100%;
+ }
+
+ .lg\:min-h-0 {
+ min-height: 0px;
+ }
+
+ .lg\:\!w-full {
+ width: 100% !important;
+ }
+
+ .lg\:w-auto {
+ width: auto;
+ }
+
+ .lg\:max-w-\[40vw\] {
+ max-width: 40vw;
+ }
+
+ .lg\:max-w-full {
+ max-width: 100%;
+ }
+
+ .lg\:translate-y-0 {
+ --tw-translate-y: 0px;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+ }
+
+ .lg\:cursor-auto {
+ cursor: auto;
+ }
+
+ .lg\:grid-cols-2 {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ }
+
+ .lg\:grid-cols-\[300px_auto\] {
+ grid-template-columns: 300px auto;
+ }
+
+ .lg\:flex-row {
+ flex-direction: row;
+ }
+
+ .lg\:flex-col {
+ flex-direction: column;
+ }
+
+ .lg\:justify-start {
+ justify-content: flex-start;
+ }
+
+ .lg\:gap-4 {
+ gap: 1rem;
+ }
+
+ .lg\:whitespace-nowrap {
+ white-space: nowrap;
+ }
+
+ .lg\:border-none {
+ border-style: none;
+ }
+
+ .lg\:bg-transparent {
+ background-color: transparent;
+ }
+
+ .lg\:\!px-\[5rem\] {
+ padding-left: 5rem !important;
+ padding-right: 5rem !important;
+ }
+
+ .lg\:\!py-20 {
+ padding-top: 5rem !important;
+ padding-bottom: 5rem !important;
+ }
+
+ .lg\:px-0 {
+ padding-left: 0px;
+ padding-right: 0px;
+ }
+
+ .lg\:py-0 {
+ padding-top: 0px;
+ padding-bottom: 0px;
+ }
+
+ .lg\:py-2 {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+ }
+
+ .lg\:text-\[2\.5vw\] {
+ font-size: 2.5vw;
+ }
+
+ .lg\:text-\[5vw\] {
+ font-size: 5vw;
+ }
+
+ .lg\:text-lg {
+ font-size: 1.125rem;
+ line-height: 1.75rem;
+ }
+
+ .lg\:font-normal {
+ font-weight: 400;
+ }
+
+ .lg\:text-\[grey\] {
+ --tw-text-opacity: 1;
+ color: rgb(128 128 128 / var(--tw-text-opacity));
+ }
+
+ .lg\:text-black {
+ --tw-text-opacity: 1;
+ color: rgb(0 0 0 / var(--tw-text-opacity));
+ }
+
+ .lg\:text-inherit {
+ color: inherit;
+ }
+
+ .lg\:opacity-100 {
+ opacity: 1;
+ }
+
+ .lg\:shadow-none {
+ --tw-shadow: 0 0 #0000;
+ --tw-shadow-colored: 0 0 #0000;
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
+ }
+
+ .lg\:grayscale {
+ --tw-grayscale: grayscale(100%);
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+ }
+
+ .lg\:hover\:brightness-100:hover {
+ --tw-brightness: brightness(1);
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+ }
+
+ .lg\:hover\:backdrop-brightness-100:hover {
+ --tw-backdrop-brightness: brightness(1);
+ -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
+ backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
+ }
+
+ .group:hover .group-hover\:lg\:text-\[\#A42325\] {
+ --tw-text-opacity: 1;
+ color: rgb(164 35 37 / var(--tw-text-opacity));
+ }
+}
+
+@media (min-width: 1440px) {
+ .xl\:flex {
+ display: flex;
+ }
+}
diff --git a/assets/base.css b/assets/base.css
index 90da2e8bf7..afca0adca5 100644
--- a/assets/base.css
+++ b/assets/base.css
@@ -103,7 +103,7 @@ body:has(.section-header .drawer-menu) .announcement-bar-section .page-width {
@media screen and (min-width: 750px) {
.page-width {
- padding: 0 5rem;
+ padding: 0 1rem;
}
.header.page-width,
@@ -193,7 +193,7 @@ body:has(.section-header .drawer-menu) .announcement-bar-section .page-width {
}
.hidden {
- display: none !important;
+ display: none;
}
.visually-hidden {
@@ -240,7 +240,7 @@ body:has(.section-header .drawer-menu) .announcement-bar-section .page-width {
}
.text-body {
- font-size: 1.5rem;
+ font-size: 1rem;
letter-spacing: 0.06rem;
line-height: calc(1 + 0.8 / var(--font-body-scale));
font-family: var(--font-body-family);
@@ -408,7 +408,7 @@ blockquote {
.field__input,
.form__label,
.select__select {
- font-size: 1.3rem;
+ font-size: 1rem;
line-height: calc(1 + 0.5 / var(--font-body-scale));
letter-spacing: 0.04rem;
}
@@ -496,7 +496,7 @@ h6:empty {
text-underline-offset: 0.3rem;
color: rgb(var(--color-link));
background-color: transparent;
- font-size: 1.4rem;
+ font-size: 1.2rem;
font-family: inherit;
}
@@ -704,9 +704,9 @@ summary::-webkit-details-marker {
}
*:focus-visible {
- outline: var(--focused-base-outline);
- outline-offset: var(--focused-base-outline-offset);
- box-shadow: var(--focused-base-box-shadow);
+ outline: inherit;
+ /* outline-offset: var(--focused-base-outline-offset);
+ box-shadow: var(--focused-base-box-shadow); */
}
/* Fallback - for browsers that don't support :focus-visible, a fallback is set for :focus */
@@ -1199,8 +1199,8 @@ button.shopify-payment-button__button--unbranded,
.shopify-challenge__button,
.customer button,
button.shopify-payment-button__button--unbranded {
- min-width: calc(12rem + var(--buttons-border-width) * 2);
- min-height: calc(4.5rem + var(--buttons-border-width) * 2);
+ /* min-width: calc(12rem + var(--buttons-border-width) * 2); */
+ min-height: 42px;
}
.shopify-payment-button__button--branded {
@@ -1297,7 +1297,9 @@ button.shopify-payment-button__button--unbranded {
}
.button:focus:not(:focus-visible):not(.focused),
-.shopify-payment-button__button--unbranded:focus:not(:focus-visible):not(.focused),
+.shopify-payment-button__button--unbranded:focus:not(:focus-visible):not(
+ .focused
+ ),
.shopify-payment-button
[role='button']:focus:not(:focus-visible):not(.focused) {
box-shadow: inherit;
@@ -1313,7 +1315,7 @@ button.shopify-payment-button__button--unbranded {
.button-label,
.shopify-challenge__button,
.customer button {
- font-size: 1.5rem;
+ font-size: 1rem;
letter-spacing: 0.1rem;
line-height: calc(1 + 0.2 / var(--font-body-scale));
}
@@ -1885,10 +1887,10 @@ input[type='checkbox'] {
.quantity {
color: rgba(var(--color-foreground));
position: relative;
- width: calc(14rem / var(--font-body-scale) + var(--inputs-border-width) * 2);
+ width: calc(8rem / var(--font-body-scale) + var(--inputs-border-width));
display: flex;
border-radius: var(--inputs-radius);
- min-height: calc((var(--inputs-border-width) * 2) + 4.5rem);
+ min-height: calc((var(--inputs-border-width) * 2) + 2.5rem);
}
.quantity:after {
@@ -1928,7 +1930,7 @@ input[type='checkbox'] {
font-family: var(--font-body-family);
font-style: var(--font-body-style);
font-weight: var(--font-body-weight);
- font-size: 1.6rem;
+ font-size: 1rem;
font-weight: 500;
opacity: 0.85;
text-align: center;
@@ -1942,9 +1944,9 @@ input[type='checkbox'] {
}
.quantity__button {
- width: calc(4.5rem / var(--font-body-scale));
+ width: calc(2rem / var(--font-body-scale));
flex-shrink: 0;
- font-size: 1.8rem;
+ font-size: 1rem;
border: 0;
background-color: transparent;
cursor: pointer;
@@ -1982,8 +1984,8 @@ input[type='checkbox'] {
.quantity__button:not(:focus-visible):not(.focused),
.quantity__input:not(:focus-visible):not(.focused) {
- box-shadow: inherit;
- background-color: inherit;
+ box-shadow: none;
+ background-color: none;
}
.quantity__input:-webkit-autofill,
@@ -2094,8 +2096,8 @@ input[type='checkbox'] {
justify-content: center;
align-items: center;
font-size: 0.9rem;
- bottom: 0.8rem;
- left: 2.2rem;
+ bottom: 0.5rem;
+ left: 2rem;
line-height: calc(1 + 0.1 / var(--font-body-scale));
}
@@ -2395,7 +2397,7 @@ input[type='checkbox'] {
.header--middle-left {
grid-template-areas: 'heading navigation icons';
- grid-template-columns: auto auto 1fr;
+ grid-template-columns: auto auto auto;
column-gap: 2rem;
}
@@ -2552,16 +2554,16 @@ input[type='checkbox'] {
}
.header__icon .icon {
- height: 2rem;
- width: 2rem;
+ height: 1.5rem;
+ width: 1.5rem;
fill: none;
vertical-align: middle;
}
.header__icon,
.header__icon--cart .icon {
- height: 4.4rem;
- width: 4.4rem;
+ height: 3rem;
+ width: 3rem;
padding: 0;
}
@@ -2773,7 +2775,8 @@ details[open] > .header__submenu {
@media screen and (min-width: 990px) {
.header__inline-menu {
- display: block;
+ display: flex;
+ justify-content: center;
}
.header--top-center .header__inline-menu {
@@ -2794,7 +2797,7 @@ details[open] > .header__submenu {
}
.header__menu-item {
- padding: 1.2rem;
+ padding: 1.2rem 1rem;
text-decoration: none;
color: rgba(var(--color-foreground), 0.75);
}
@@ -2924,10 +2927,11 @@ details-disclosure > details {
border: 1px solid transparent;
border-radius: var(--badge-corner-radius);
display: inline-block;
- font-size: 1.2rem;
+ font-size: 0.75rem;
letter-spacing: 0.1rem;
line-height: 1;
- padding: 0.5rem 1.3rem 0.6rem 1.3rem;
+ padding: 0.25rem;
+ text-transform: uppercase;
text-align: center;
background-color: rgb(var(--color-badge-background));
border-color: rgba(var(--color-badge-border), var(--alpha-badge-border));
@@ -3551,6 +3555,7 @@ details-disclosure > details {
position: absolute;
z-index: 1;
width: 1.8rem;
+ display: none !important;
}
.loading__spinner {
@@ -3644,3 +3649,9 @@ details-disclosure > details {
transform: translateX(100%) scaleX(0);
}
}
+
+.article-template__content,
+.article-template__social-sharing,
+.article-template__title {
+ @apply px-4;
+}
diff --git a/assets/component-article-card.css b/assets/component-article-card.css
index 998f100cbe..63f9733135 100644
--- a/assets/component-article-card.css
+++ b/assets/component-article-card.css
@@ -48,6 +48,7 @@
.article-card .card__heading {
margin-bottom: 0.6rem;
+ font-size: 2.4rem;
}
.blog-articles .article-card .card__information,
@@ -76,6 +77,7 @@
.article-card__excerpt {
width: 100%;
margin-top: 1.2rem;
+ font-size: 1rem;
}
.article-card__link:not(:only-child) {
diff --git a/assets/component-card.css b/assets/component-card.css
index aa41a4f800..776858cd9f 100644
--- a/assets/component-card.css
+++ b/assets/component-card.css
@@ -286,6 +286,14 @@
align-self: flex-end;
grid-row-start: 3;
justify-self: flex-start;
+ display: flex;
+}
+
+.card__badge.left {
+ align-self: flex-end;
+ grid-row-start: 3;
+ justify-self: flex-start;
+ display: flex;
}
.card__badge.top {
@@ -303,7 +311,7 @@
.card__media .media img {
height: 100%;
- object-fit: cover;
+ object-fit: contain;
object-position: center center;
width: 100%;
}
diff --git a/assets/component-cart-drawer.css b/assets/component-cart-drawer.css
index 94cab92376..e28614ae79 100644
--- a/assets/component-cart-drawer.css
+++ b/assets/component-cart-drawer.css
@@ -19,7 +19,7 @@
height: 100%;
width: 40rem;
max-width: calc(100vw - 3rem);
- padding: 0 1.5rem;
+ padding: 0 1rem;
border: 0.1rem solid rgba(var(--color-foreground), 0.2);
border-right: 0;
overflow: hidden;
@@ -81,14 +81,16 @@ cart-drawer:not(.is-empty) .cart-drawer__collection {
}
.drawer__close {
- display: inline-block;
+ display: flex;
+ justify-content: center;
+ align-items: center;
padding: 0;
- min-width: 4.4rem;
- min-height: 4.4rem;
+ width: 1.5rem;
+ height: 1.5rem;
box-shadow: 0 0 0 0.2rem rgba(var(--color-button), 0);
position: absolute;
- top: 10px;
- right: -10px;
+ top: 1.5rem;
+ right: 1rem;
color: rgb(var(--color-foreground));
background-color: transparent;
border: none;
@@ -255,10 +257,6 @@ cart-drawer-items {
padding-top: 1.7rem;
}
-.cart-drawer .cart-item > td + td {
- padding-left: 1rem;
-}
-
.cart-drawer .cart-item__details {
width: auto;
grid-column: 2 / 4;
diff --git a/assets/component-cart-items.css b/assets/component-cart-items.css
index d2294b4e96..c8448e70ef 100644
--- a/assets/component-cart-items.css
+++ b/assets/component-cart-items.css
@@ -41,7 +41,7 @@ cart-items .title-wrapper-with-link {
max-width: calc(10rem / var(--font-body-scale));
}
-@media screen and (min-width: 750px) {
+@media screen and (min-width: 1024px) {
.cart-item__image {
max-width: 100%;
}
@@ -110,7 +110,7 @@ cart-items .title-wrapper-with-link {
}
.product-option {
- font-size: 1.4rem;
+ font-size: 1rem;
word-break: break-word;
line-height: calc(1 + 0.5 / var(--font-body-scale));
}
@@ -120,12 +120,12 @@ cart-items .title-wrapper-with-link {
margin-left: 1rem;
}
-@media screen and (min-width: 750px) and (max-width: 989px) {
+/* @media screen and (min-width: 750px) and (max-width: 989px) {
.cart-item cart-remove-button {
width: 4.5rem;
height: 4.5rem;
}
-}
+} */
cart-remove-button .button {
min-width: calc(4.5rem / var(--font-body-scale));
@@ -143,7 +143,7 @@ cart-remove-button .button:not([disabled]):hover {
color: rgb(var(--color-foreground));
}
-@media screen and (min-width: 750px) {
+@media screen and (min-width: 1024px) {
cart-remove-button .button {
min-width: 3.5rem;
min-height: 3.5rem;
@@ -163,7 +163,7 @@ cart-remove-button .icon-remove {
padding: 0;
}
-@media screen and (min-width: 750px) {
+@media screen and (min-width: 1024px) {
.cart-item .loading__spinner {
right: 0;
padding-top: 4.5rem;
@@ -215,7 +215,7 @@ cart-remove-button .icon-remove {
text-transform: uppercase;
}
-@media screen and (max-width: 749px) {
+@media screen and (max-width: 1023px) {
.cart-items,
.cart-items thead,
.cart-items tbody {
@@ -232,8 +232,8 @@ cart-remove-button .icon-remove {
.cart-item {
display: grid;
- grid-template: repeat(2, auto) / repeat(4, 1fr);
- gap: 1.5rem;
+ /* grid-template: repeat(2, auto) / repeat(4, 1fr); */
+ gap: 1rem;
margin-bottom: 3.5rem;
}
@@ -253,18 +253,30 @@ cart-remove-button .icon-remove {
grid-column: 2 / 5;
}
- .cart-item__quantity-wrapper {
- flex-wrap: wrap;
- }
-
.cart-item__totals {
display: flex;
align-items: flex-start;
justify-content: flex-end;
}
+
+ quantity-input .quantity__button {
+ width: 45px;
+ }
+
+ .quantity {
+ width: 140px;
+ }
+
+ .quantity__input {
+ font-size: 1rem;
+ }
+
+ .cart-item__image {
+ max-width: calc(6rem / var(--font-body-scale));
+ }
}
-@media screen and (min-width: 750px) {
+@media screen and (min-width: 1024px) {
.cart-items {
border-spacing: 0;
border-collapse: separate;
@@ -319,7 +331,7 @@ cart-remove-button .icon-remove {
}
}
-@media screen and (min-width: 990px) {
+/* @media screen and (min-width: 990px) {
.cart-item .cart-item__quantity,
.cart-items .cart-items__heading--wide {
padding-left: 6rem;
@@ -332,9 +344,9 @@ cart-remove-button .icon-remove {
.cart-items thead th:first-child {
width: 60%;
}
-}
+} */
-@media screen and (min-width: 750px) {
+@media screen and (min-width: 1024px) {
.cart-items .cart-items__heading--quantity,
.cart-item .cart-item__quantity,
.cart-item__quantity--info quantity-popover > * {
@@ -348,7 +360,7 @@ cart-remove-button .icon-remove {
}
}
-@media screen and (max-width: 989px) {
+@media screen and (max-width: 1023px) {
.cart-items .quantity-popover__info-button {
padding-left: 0;
}
diff --git a/assets/component-facets.css b/assets/component-facets.css
index 0c2ebd88f7..91943eed8b 100644
--- a/assets/component-facets.css
+++ b/assets/component-facets.css
@@ -360,10 +360,12 @@
transition-property: outline-color, outline-width, box-shadow;
transition-duration: var(--duration-short);
transition-timing-function: ease;
+ font-size: 16px;
}
.facets-layout-grid--image .facet-checkbox__text {
padding: 0.4rem;
+ font-size: 16px;
}
/* Active state */
@@ -441,7 +443,7 @@
}
.facet-checkbox {
- padding: 1rem 2rem 1rem 0;
+ padding: 0.5rem 2rem 0.5rem 0;
flex-grow: 1;
position: relative;
font-size: 1.4rem;
@@ -488,6 +490,7 @@
z-index: -1;
appearance: none;
-webkit-appearance: none;
+ font-size: 16px;
}
.facets-layout-grid input[type='checkbox'],
@@ -518,9 +521,9 @@
.facet-checkbox .icon-checkmark {
visibility: hidden;
position: absolute;
- left: 0.3rem;
+ left: 0.1rem;
z-index: 5;
- top: 1.4rem;
+ top: auto;
}
.facet-checkbox > input[type='checkbox']:checked ~ .icon-checkmark {
@@ -590,7 +593,7 @@ span.active-facets__button-inner {
color: rgb(var(--color-foreground));
box-shadow: 0 0 0 0.1rem rgb(var(--color-foreground));
border-radius: 2.6rem;
- font-size: 1rem;
+ font-size: 0.75rem;
min-height: 0;
min-width: 0;
padding: 0.5rem 1rem;
@@ -621,7 +624,7 @@ span.active-facets__button-inner:after {
.active-facets__button-wrapper *,
span.active-facets__button-inner {
- font-size: 1.4rem;
+ font-size: 0.75rem;
}
}
@@ -824,7 +827,7 @@ a.active-facets__button.focused .active-facets__button-inner {
.mobile-facets__count {
color: rgba(var(--color-foreground), 0.7);
- font-size: 1.3rem;
+ font-size: 1rem;
margin: 0;
flex-grow: 1;
}
@@ -910,7 +913,7 @@ details.menu-opening .mobile-facets__close svg {
margin-top: 1.5rem;
padding: 1.2rem 2.6rem;
text-decoration: none;
-
+ font-family: var(--font-heading-family);
display: grid;
grid-template-columns: min-content 1fr;
text-align: start;
@@ -958,6 +961,7 @@ details.menu-opening .mobile-facets__close svg {
.mobile-facets__summary {
padding: 1.3rem 2.5rem;
+ font-family: var(--font-heading-family);
}
.mobile-facets__summary svg {
diff --git a/assets/component-pagination.css b/assets/component-pagination.css
index 5232c3933d..5caf7d09b3 100644
--- a/assets/component-pagination.css
+++ b/assets/component-pagination.css
@@ -16,11 +16,11 @@
.pagination__list > li {
flex: 1 0 4.4rem;
- max-width: 4.4rem;
+ max-width: 2rem;
}
.pagination__list > li:not(:last-child) {
- margin-right: 1rem;
+ margin-right: 0.7rem;
}
.pagination__item {
diff --git a/assets/component-price.css b/assets/component-price.css
index 17d6cf969b..1c04904193 100644
--- a/assets/component-price.css
+++ b/assets/component-price.css
@@ -1,8 +1,9 @@
.price {
- font-size: 1.6rem;
+ font-size: 1rem;
letter-spacing: 0.1rem;
line-height: calc(1 + 0.5 / var(--font-body-scale));
color: rgb(var(--color-foreground));
+ white-space: nowrap;
}
.price > * {
@@ -38,9 +39,10 @@
}
.price--large {
- font-size: 1.6rem;
- line-height: calc(1 + 0.5 / var(--font-body-scale));
+ font-size: 1rem;
+ line-height: 1.2rem;
letter-spacing: 0.13rem;
+ font-weight: 600;
}
@media screen and (min-width: 750px) {
diff --git a/assets/component-totals.css b/assets/component-totals.css
index 156c05b717..37ceeedb62 100644
--- a/assets/component-totals.css
+++ b/assets/component-totals.css
@@ -10,7 +10,7 @@
}
.totals > h2 {
- font-size: calc(var(--font-heading-scale) * 1.6rem);
+ font-size: calc(var(--font-heading-scale) * 1.2rem);
}
.totals * {
@@ -26,7 +26,10 @@
}
.totals__total-value {
- font-size: 1.8rem;
+ font-size: 1.2rem;
+ white-space: nowrap;
+ color: black;
+ font-weight: 600;
}
.cart__ctas + .totals {
diff --git a/assets/customer.css b/assets/customer.css
index 9d831a9207..466f53190e 100644
--- a/assets/customer.css
+++ b/assets/customer.css
@@ -443,7 +443,7 @@
:is(.account, .order) p {
margin: 0 0 2rem;
- font-size: 1.6rem;
+ font-size: 1rem;
}
:is(.account, .order) h1 {
diff --git a/assets/index.css b/assets/index.css
new file mode 100644
index 0000000000..78a21fbac5
--- /dev/null
+++ b/assets/index.css
@@ -0,0 +1,278 @@
+:root {
+ font-family: var(--font-body-family);
+ line-height: 1.5;
+ font-weight: var(--font-body-weight);
+ font-size: var(--font-size-base);
+ color: hsla(var(--color-accent) / 1);
+ background-color: hsla(var(--color-surface) / 1);
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-text-size-adjust: 100%;
+}
+body {
+ margin: 0;
+ padding: 0;
+ display: grid;
+ place-items: center;
+ min-height: 100vh;
+}
+a {
+ color: hsla(var(--color-accent) / 1);
+ text-decoration: none;
+}
+h1,
+h2,
+p {
+ margin: 0;
+ padding: 0;
+}
+h1 {
+ font-family: var(--font-heading-family);
+ font-size: calc(2.5 * var(--font-size-xl));
+ line-height: 1.1;
+}
+button {
+ border-radius: 0.5rem;
+ border: 1px solid transparent;
+ padding: 0.75rem 1.5rem;
+ font-size: var(--font-size-base);
+ font-weight: 700;
+ font-family: var(--font-body-family);
+ background-color: hsla(var(--color-contrast) / 1);
+ color: hsla(var(--color-primary) / 1);
+ cursor: pointer;
+ margin: 2rem 0;
+}
+button:focus,
+button:focus-visible {
+ outline: 4px auto hsla(var(--color-primary) / 1);
+}
+.container {
+ max-width: 800px;
+ margin: 0 auto;
+ padding: 0 2rem;
+}
+footer {
+ opacity: 0.6;
+}
+@font-face {
+ font-family: swiper-icons;
+ src: url(data:application/font-woff;charset=utf-8;base64,\ d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA);
+ font-weight: 400;
+ font-style: normal;
+}
+:root {
+ --swiper-theme-color: #007aff;
+}
+:host {
+ position: relative;
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+ z-index: 1;
+}
+.swiper {
+ margin-left: auto;
+ margin-right: auto;
+ position: relative;
+ overflow: hidden;
+ list-style: none;
+ padding: 0;
+ z-index: 1;
+ display: block;
+}
+.swiper-vertical > .swiper-wrapper {
+ flex-direction: column;
+}
+.swiper-wrapper {
+ position: relative;
+ width: 100%;
+ height: 100%;
+ z-index: 1;
+ display: flex;
+ transition-property: transform;
+ transition-timing-function: var(
+ --swiper-wrapper-transition-timing-function,
+ initial
+ );
+ box-sizing: content-box;
+}
+.swiper-android .swiper-slide,
+.swiper-ios .swiper-slide,
+.swiper-wrapper {
+ transform: translateZ(0);
+}
+.swiper-horizontal {
+ touch-action: pan-y;
+}
+.swiper-vertical {
+ touch-action: pan-x;
+}
+.swiper-slide {
+ flex-shrink: 0;
+ width: 100%;
+ height: 100%;
+ position: relative;
+ transition-property: transform;
+ display: block;
+}
+.swiper-slide-invisible-blank {
+ visibility: hidden;
+}
+.swiper-autoheight,
+.swiper-autoheight .swiper-slide {
+ height: auto;
+}
+.swiper-autoheight .swiper-wrapper {
+ align-items: flex-start;
+ transition-property: transform, height;
+}
+.swiper-backface-hidden .swiper-slide {
+ transform: translateZ(0);
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+}
+.swiper-3d.swiper-css-mode .swiper-wrapper {
+ perspective: 1200px;
+}
+.swiper-3d .swiper-wrapper {
+ transform-style: preserve-3d;
+}
+.swiper-3d {
+ perspective: 1200px;
+}
+.swiper-3d .swiper-slide,
+.swiper-3d .swiper-cube-shadow {
+ transform-style: preserve-3d;
+}
+.swiper-css-mode > .swiper-wrapper {
+ overflow: auto;
+ scrollbar-width: none;
+ -ms-overflow-style: none;
+}
+.swiper-css-mode > .swiper-wrapper::-webkit-scrollbar {
+ display: none;
+}
+.swiper-css-mode > .swiper-wrapper > .swiper-slide {
+ scroll-snap-align: start start;
+}
+.swiper-css-mode.swiper-horizontal > .swiper-wrapper {
+ scroll-snap-type: x mandatory;
+}
+.swiper-css-mode.swiper-vertical > .swiper-wrapper {
+ scroll-snap-type: y mandatory;
+}
+.swiper-css-mode.swiper-free-mode > .swiper-wrapper {
+ scroll-snap-type: none;
+}
+.swiper-css-mode.swiper-free-mode > .swiper-wrapper > .swiper-slide {
+ scroll-snap-align: none;
+}
+.swiper-css-mode.swiper-centered > .swiper-wrapper:before {
+ content: '';
+ flex-shrink: 0;
+ order: 9999;
+}
+.swiper-css-mode.swiper-centered > .swiper-wrapper > .swiper-slide {
+ scroll-snap-align: center center;
+ scroll-snap-stop: always;
+}
+.swiper-css-mode.swiper-centered.swiper-horizontal
+ > .swiper-wrapper
+ > .swiper-slide:first-child {
+ margin-inline-start: var(--swiper-centered-offset-before);
+}
+.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper:before {
+ height: 100%;
+ min-height: 1px;
+ width: var(--swiper-centered-offset-after);
+}
+.swiper-css-mode.swiper-centered.swiper-vertical
+ > .swiper-wrapper
+ > .swiper-slide:first-child {
+ margin-block-start: var(--swiper-centered-offset-before);
+}
+.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper:before {
+ width: 100%;
+ min-width: 1px;
+ height: var(--swiper-centered-offset-after);
+}
+.swiper-3d .swiper-slide-shadow,
+.swiper-3d .swiper-slide-shadow-left,
+.swiper-3d .swiper-slide-shadow-right,
+.swiper-3d .swiper-slide-shadow-top,
+.swiper-3d .swiper-slide-shadow-bottom {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ pointer-events: none;
+ z-index: 10;
+}
+.swiper-3d .swiper-slide-shadow {
+ background: rgba(0, 0, 0, 0.15);
+}
+.swiper-3d .swiper-slide-shadow-left {
+ background-image: linear-gradient(
+ to left,
+ rgba(0, 0, 0, 0.5),
+ rgba(0, 0, 0, 0)
+ );
+}
+.swiper-3d .swiper-slide-shadow-right {
+ background-image: linear-gradient(
+ to right,
+ rgba(0, 0, 0, 0.5),
+ rgba(0, 0, 0, 0)
+ );
+}
+.swiper-3d .swiper-slide-shadow-top {
+ background-image: linear-gradient(
+ to top,
+ rgba(0, 0, 0, 0.5),
+ rgba(0, 0, 0, 0)
+ );
+}
+.swiper-3d .swiper-slide-shadow-bottom {
+ background-image: linear-gradient(
+ to bottom,
+ rgba(0, 0, 0, 0.5),
+ rgba(0, 0, 0, 0)
+ );
+}
+.swiper-lazy-preloader {
+ width: 42px;
+ height: 42px;
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ margin-left: -21px;
+ margin-top: -21px;
+ z-index: 10;
+ transform-origin: 50%;
+ box-sizing: border-box;
+ border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));
+ border-radius: 50%;
+ border-top-color: transparent;
+}
+.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,
+.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader {
+ animation: swiper-preloader-spin 1s infinite linear;
+}
+.swiper-lazy-preloader-white {
+ --swiper-preloader-color: #fff;
+}
+.swiper-lazy-preloader-black {
+ --swiper-preloader-color: #000;
+}
+@keyframes swiper-preloader-spin {
+ 0% {
+ transform: rotate(0);
+ }
+ to {
+ transform: rotate(360deg);
+ }
+}
diff --git a/assets/index.js b/assets/index.js
new file mode 100644
index 0000000000..44b1db1f0c
--- /dev/null
+++ b/assets/index.js
@@ -0,0 +1,4248 @@
+function me(s) {
+ return (
+ s !== null &&
+ typeof s == 'object' &&
+ 'constructor' in s &&
+ s.constructor === Object
+ );
+}
+function fe(s, e) {
+ s === void 0 && (s = {}),
+ e === void 0 && (e = {}),
+ Object.keys(e).forEach((t) => {
+ typeof s[t] > 'u'
+ ? (s[t] = e[t])
+ : me(e[t]) &&
+ me(s[t]) &&
+ Object.keys(e[t]).length > 0 &&
+ fe(s[t], e[t]);
+ });
+}
+const Se = {
+ body: {},
+ addEventListener() {},
+ removeEventListener() {},
+ activeElement: { blur() {}, nodeName: '' },
+ querySelector() {
+ return null;
+ },
+ querySelectorAll() {
+ return [];
+ },
+ getElementById() {
+ return null;
+ },
+ createEvent() {
+ return { initEvent() {} };
+ },
+ createElement() {
+ return {
+ children: [],
+ childNodes: [],
+ style: {},
+ setAttribute() {},
+ getElementsByTagName() {
+ return [];
+ },
+ };
+ },
+ createElementNS() {
+ return {};
+ },
+ importNode() {
+ return null;
+ },
+ location: {
+ hash: '',
+ host: '',
+ hostname: '',
+ href: '',
+ origin: '',
+ pathname: '',
+ protocol: '',
+ search: '',
+ },
+};
+function R() {
+ const s = typeof document < 'u' ? document : {};
+ return fe(s, Se), s;
+}
+const Ie = {
+ document: Se,
+ navigator: { userAgent: '' },
+ location: {
+ hash: '',
+ host: '',
+ hostname: '',
+ href: '',
+ origin: '',
+ pathname: '',
+ protocol: '',
+ search: '',
+ },
+ history: { replaceState() {}, pushState() {}, go() {}, back() {} },
+ CustomEvent: function () {
+ return this;
+ },
+ addEventListener() {},
+ removeEventListener() {},
+ getComputedStyle() {
+ return {
+ getPropertyValue() {
+ return '';
+ },
+ };
+ },
+ Image() {},
+ Date() {},
+ screen: {},
+ setTimeout() {},
+ clearTimeout() {},
+ matchMedia() {
+ return {};
+ },
+ requestAnimationFrame(s) {
+ return typeof setTimeout > 'u' ? (s(), null) : setTimeout(s, 0);
+ },
+ cancelAnimationFrame(s) {
+ typeof setTimeout > 'u' || clearTimeout(s);
+ },
+};
+function B() {
+ const s = typeof window < 'u' ? window : {};
+ return fe(s, Ie), s;
+}
+function N(s) {
+ return (
+ s === void 0 && (s = ''),
+ s
+ .trim()
+ .split(' ')
+ .filter((e) => !!e.trim())
+ );
+}
+function ze(s) {
+ const e = s;
+ Object.keys(e).forEach((t) => {
+ try {
+ e[t] = null;
+ } catch {}
+ try {
+ delete e[t];
+ } catch {}
+ });
+}
+function U(s, e) {
+ return e === void 0 && (e = 0), setTimeout(s, e);
+}
+function K() {
+ return Date.now();
+}
+function Oe(s) {
+ const e = B();
+ let t;
+ return (
+ e.getComputedStyle && (t = e.getComputedStyle(s, null)),
+ !t && s.currentStyle && (t = s.currentStyle),
+ t || (t = s.style),
+ t
+ );
+}
+function Ae(s, e) {
+ e === void 0 && (e = 'x');
+ const t = B();
+ let i, n, r;
+ const o = Oe(s);
+ return (
+ t.WebKitCSSMatrix
+ ? ((n = o.transform || o.webkitTransform),
+ n.split(',').length > 6 &&
+ (n = n
+ .split(', ')
+ .map((l) => l.replace(',', '.'))
+ .join(', ')),
+ (r = new t.WebKitCSSMatrix(n === 'none' ? '' : n)))
+ : ((r =
+ o.MozTransform ||
+ o.OTransform ||
+ o.MsTransform ||
+ o.msTransform ||
+ o.transform ||
+ o
+ .getPropertyValue('transform')
+ .replace('translate(', 'matrix(1, 0, 0, 1,')),
+ (i = r.toString().split(','))),
+ e === 'x' &&
+ (t.WebKitCSSMatrix
+ ? (n = r.m41)
+ : i.length === 16
+ ? (n = parseFloat(i[12]))
+ : (n = parseFloat(i[4]))),
+ e === 'y' &&
+ (t.WebKitCSSMatrix
+ ? (n = r.m42)
+ : i.length === 16
+ ? (n = parseFloat(i[13]))
+ : (n = parseFloat(i[5]))),
+ n || 0
+ );
+}
+function j(s) {
+ return (
+ typeof s == 'object' &&
+ s !== null &&
+ s.constructor &&
+ Object.prototype.toString.call(s).slice(8, -1) === 'Object'
+ );
+}
+function De(s) {
+ return typeof window < 'u' && typeof window.HTMLElement < 'u'
+ ? s instanceof HTMLElement
+ : s && (s.nodeType === 1 || s.nodeType === 11);
+}
+function $() {
+ const s = Object(arguments.length <= 0 ? void 0 : arguments[0]),
+ e = ['__proto__', 'constructor', 'prototype'];
+ for (let t = 1; t < arguments.length; t += 1) {
+ const i = t < 0 || arguments.length <= t ? void 0 : arguments[t];
+ if (i != null && !De(i)) {
+ const n = Object.keys(Object(i)).filter((r) => e.indexOf(r) < 0);
+ for (let r = 0, o = n.length; r < o; r += 1) {
+ const l = n[r],
+ a = Object.getOwnPropertyDescriptor(i, l);
+ a !== void 0 &&
+ a.enumerable &&
+ (j(s[l]) && j(i[l])
+ ? i[l].__swiper__
+ ? (s[l] = i[l])
+ : $(s[l], i[l])
+ : !j(s[l]) && j(i[l])
+ ? ((s[l] = {}), i[l].__swiper__ ? (s[l] = i[l]) : $(s[l], i[l]))
+ : (s[l] = i[l]));
+ }
+ }
+ }
+ return s;
+}
+function Y(s, e, t) {
+ s.style.setProperty(e, t);
+}
+function ye(s) {
+ let { swiper: e, targetPosition: t, side: i } = s;
+ const n = B(),
+ r = -e.translate;
+ let o = null,
+ l;
+ const a = e.params.speed;
+ (e.wrapperEl.style.scrollSnapType = 'none'),
+ n.cancelAnimationFrame(e.cssModeFrameID);
+ const u = t > r ? 'next' : 'prev',
+ f = (g, m) => (u === 'next' && g >= m) || (u === 'prev' && g <= m),
+ p = () => {
+ (l = new Date().getTime()), o === null && (o = l);
+ const g = Math.max(Math.min((l - o) / a, 1), 0),
+ m = 0.5 - Math.cos(g * Math.PI) / 2;
+ let h = r + m * (t - r);
+ if ((f(h, t) && (h = t), e.wrapperEl.scrollTo({ [i]: h }), f(h, t))) {
+ (e.wrapperEl.style.overflow = 'hidden'),
+ (e.wrapperEl.style.scrollSnapType = ''),
+ setTimeout(() => {
+ (e.wrapperEl.style.overflow = ''), e.wrapperEl.scrollTo({ [i]: h });
+ }),
+ n.cancelAnimationFrame(e.cssModeFrameID);
+ return;
+ }
+ e.cssModeFrameID = n.requestAnimationFrame(p);
+ };
+ p();
+}
+function H(s, e) {
+ e === void 0 && (e = '');
+ const t = [...s.children];
+ return (
+ s instanceof HTMLSlotElement && t.push(...s.assignedElements()),
+ e ? t.filter((i) => i.matches(e)) : t
+ );
+}
+function ke(s, e) {
+ const t = e.contains(s);
+ return !t && e instanceof HTMLSlotElement
+ ? [...e.assignedElements()].includes(s)
+ : t;
+}
+function J(s) {
+ try {
+ console.warn(s);
+ return;
+ } catch {}
+}
+function q(s, e) {
+ e === void 0 && (e = []);
+ const t = document.createElement(s);
+ return t.classList.add(...(Array.isArray(e) ? e : N(e))), t;
+}
+function Ge(s) {
+ const e = B(),
+ t = R(),
+ i = s.getBoundingClientRect(),
+ n = t.body,
+ r = s.clientTop || n.clientTop || 0,
+ o = s.clientLeft || n.clientLeft || 0,
+ l = s === e ? e.scrollY : s.scrollTop,
+ a = s === e ? e.scrollX : s.scrollLeft;
+ return { top: i.top + l - r, left: i.left + a - o };
+}
+function Be(s, e) {
+ const t = [];
+ for (; s.previousElementSibling; ) {
+ const i = s.previousElementSibling;
+ e ? i.matches(e) && t.push(i) : t.push(i), (s = i);
+ }
+ return t;
+}
+function $e(s, e) {
+ const t = [];
+ for (; s.nextElementSibling; ) {
+ const i = s.nextElementSibling;
+ e ? i.matches(e) && t.push(i) : t.push(i), (s = i);
+ }
+ return t;
+}
+function _(s, e) {
+ return B().getComputedStyle(s, null).getPropertyValue(e);
+}
+function Q(s) {
+ let e = s,
+ t;
+ if (e) {
+ for (t = 0; (e = e.previousSibling) !== null; )
+ e.nodeType === 1 && (t += 1);
+ return t;
+ }
+}
+function Te(s, e) {
+ const t = [];
+ let i = s.parentElement;
+ for (; i; ) e ? i.matches(e) && t.push(i) : t.push(i), (i = i.parentElement);
+ return t;
+}
+function ae(s, e, t) {
+ const i = B();
+ return t
+ ? s[e === 'width' ? 'offsetWidth' : 'offsetHeight'] +
+ parseFloat(
+ i
+ .getComputedStyle(s, null)
+ .getPropertyValue(e === 'width' ? 'margin-right' : 'margin-top'),
+ ) +
+ parseFloat(
+ i
+ .getComputedStyle(s, null)
+ .getPropertyValue(e === 'width' ? 'margin-left' : 'margin-bottom'),
+ )
+ : s.offsetWidth;
+}
+function k(s) {
+ return (Array.isArray(s) ? s : [s]).filter((e) => !!e);
+}
+let Z;
+function Ve() {
+ const s = B(),
+ e = R();
+ return {
+ smoothScroll:
+ e.documentElement &&
+ e.documentElement.style &&
+ 'scrollBehavior' in e.documentElement.style,
+ touch: !!(
+ 'ontouchstart' in s ||
+ (s.DocumentTouch && e instanceof s.DocumentTouch)
+ ),
+ };
+}
+function xe() {
+ return Z || (Z = Ve()), Z;
+}
+let ee;
+function Fe(s) {
+ let { userAgent: e } = s === void 0 ? {} : s;
+ const t = xe(),
+ i = B(),
+ n = i.navigator.platform,
+ r = e || i.navigator.userAgent,
+ o = { ios: !1, android: !1 },
+ l = i.screen.width,
+ a = i.screen.height,
+ u = r.match(/(Android);?[\s\/]+([\d.]+)?/);
+ let f = r.match(/(iPad).*OS\s([\d_]+)/);
+ const p = r.match(/(iPod)(.*OS\s([\d_]+))?/),
+ g = !f && r.match(/(iPhone\sOS|iOS)\s([\d_]+)/),
+ m = n === 'Win32';
+ let h = n === 'MacIntel';
+ const v = [
+ '1024x1366',
+ '1366x1024',
+ '834x1194',
+ '1194x834',
+ '834x1112',
+ '1112x834',
+ '768x1024',
+ '1024x768',
+ '820x1180',
+ '1180x820',
+ '810x1080',
+ '1080x810',
+ ];
+ return (
+ !f &&
+ h &&
+ t.touch &&
+ v.indexOf(`${l}x${a}`) >= 0 &&
+ ((f = r.match(/(Version)\/([\d.]+)/)),
+ f || (f = [0, 1, '13_0_0']),
+ (h = !1)),
+ u && !m && ((o.os = 'android'), (o.android = !0)),
+ (f || g || p) && ((o.os = 'ios'), (o.ios = !0)),
+ o
+ );
+}
+function Ee(s) {
+ return s === void 0 && (s = {}), ee || (ee = Fe(s)), ee;
+}
+let te;
+function He() {
+ const s = B(),
+ e = Ee();
+ let t = !1;
+ function i() {
+ const l = s.navigator.userAgent.toLowerCase();
+ return (
+ l.indexOf('safari') >= 0 &&
+ l.indexOf('chrome') < 0 &&
+ l.indexOf('android') < 0
+ );
+ }
+ if (i()) {
+ const l = String(s.navigator.userAgent);
+ if (l.includes('Version/')) {
+ const [a, u] = l
+ .split('Version/')[1]
+ .split(' ')[0]
+ .split('.')
+ .map((f) => Number(f));
+ t = a < 16 || (a === 16 && u < 2);
+ }
+ }
+ const n = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(
+ s.navigator.userAgent,
+ ),
+ r = i(),
+ o = r || (n && e.ios);
+ return {
+ isSafari: t || r,
+ needPerspectiveFix: t,
+ need3dFix: o,
+ isWebView: n,
+ };
+}
+function Ne() {
+ return te || (te = He()), te;
+}
+function _e(s) {
+ let { swiper: e, on: t, emit: i } = s;
+ const n = B();
+ let r = null,
+ o = null;
+ const l = () => {
+ !e || e.destroyed || !e.initialized || (i('beforeResize'), i('resize'));
+ },
+ a = () => {
+ !e ||
+ e.destroyed ||
+ !e.initialized ||
+ ((r = new ResizeObserver((p) => {
+ o = n.requestAnimationFrame(() => {
+ const { width: g, height: m } = e;
+ let h = g,
+ v = m;
+ p.forEach((E) => {
+ let { contentBoxSize: y, contentRect: d, target: c } = E;
+ (c && c !== e.el) ||
+ ((h = d ? d.width : (y[0] || y).inlineSize),
+ (v = d ? d.height : (y[0] || y).blockSize));
+ }),
+ (h !== g || v !== m) && l();
+ });
+ })),
+ r.observe(e.el));
+ },
+ u = () => {
+ o && n.cancelAnimationFrame(o),
+ r && r.unobserve && e.el && (r.unobserve(e.el), (r = null));
+ },
+ f = () => {
+ !e || e.destroyed || !e.initialized || i('orientationchange');
+ };
+ t('init', () => {
+ if (e.params.resizeObserver && typeof n.ResizeObserver < 'u') {
+ a();
+ return;
+ }
+ n.addEventListener('resize', l), n.addEventListener('orientationchange', f);
+ }),
+ t('destroy', () => {
+ u(),
+ n.removeEventListener('resize', l),
+ n.removeEventListener('orientationchange', f);
+ });
+}
+function Re(s) {
+ let { swiper: e, extendParams: t, on: i, emit: n } = s;
+ const r = [],
+ o = B(),
+ l = function (f, p) {
+ p === void 0 && (p = {});
+ const g = o.MutationObserver || o.WebkitMutationObserver,
+ m = new g((h) => {
+ if (e.__preventObserver__) return;
+ if (h.length === 1) {
+ n('observerUpdate', h[0]);
+ return;
+ }
+ const v = function () {
+ n('observerUpdate', h[0]);
+ };
+ o.requestAnimationFrame
+ ? o.requestAnimationFrame(v)
+ : o.setTimeout(v, 0);
+ });
+ m.observe(f, {
+ attributes: typeof p.attributes > 'u' ? !0 : p.attributes,
+ childList: e.isElement || (typeof p.childList > 'u' ? !0 : p).childList,
+ characterData: typeof p.characterData > 'u' ? !0 : p.characterData,
+ }),
+ r.push(m);
+ },
+ a = () => {
+ if (e.params.observer) {
+ if (e.params.observeParents) {
+ const f = Te(e.hostEl);
+ for (let p = 0; p < f.length; p += 1) l(f[p]);
+ }
+ l(e.hostEl, { childList: e.params.observeSlideChildren }),
+ l(e.wrapperEl, { attributes: !1 });
+ }
+ },
+ u = () => {
+ r.forEach((f) => {
+ f.disconnect();
+ }),
+ r.splice(0, r.length);
+ };
+ t({ observer: !1, observeParents: !1, observeSlideChildren: !1 }),
+ i('init', a),
+ i('destroy', u);
+}
+var We = {
+ on(s, e, t) {
+ const i = this;
+ if (!i.eventsListeners || i.destroyed || typeof e != 'function') return i;
+ const n = t ? 'unshift' : 'push';
+ return (
+ s.split(' ').forEach((r) => {
+ i.eventsListeners[r] || (i.eventsListeners[r] = []),
+ i.eventsListeners[r][n](e);
+ }),
+ i
+ );
+ },
+ once(s, e, t) {
+ const i = this;
+ if (!i.eventsListeners || i.destroyed || typeof e != 'function') return i;
+ function n() {
+ i.off(s, n), n.__emitterProxy && delete n.__emitterProxy;
+ for (var r = arguments.length, o = new Array(r), l = 0; l < r; l++)
+ o[l] = arguments[l];
+ e.apply(i, o);
+ }
+ return (n.__emitterProxy = e), i.on(s, n, t);
+ },
+ onAny(s, e) {
+ const t = this;
+ if (!t.eventsListeners || t.destroyed || typeof s != 'function') return t;
+ const i = e ? 'unshift' : 'push';
+ return t.eventsAnyListeners.indexOf(s) < 0 && t.eventsAnyListeners[i](s), t;
+ },
+ offAny(s) {
+ const e = this;
+ if (!e.eventsListeners || e.destroyed || !e.eventsAnyListeners) return e;
+ const t = e.eventsAnyListeners.indexOf(s);
+ return t >= 0 && e.eventsAnyListeners.splice(t, 1), e;
+ },
+ off(s, e) {
+ const t = this;
+ return (
+ !t.eventsListeners ||
+ t.destroyed ||
+ !t.eventsListeners ||
+ s.split(' ').forEach((i) => {
+ typeof e > 'u'
+ ? (t.eventsListeners[i] = [])
+ : t.eventsListeners[i] &&
+ t.eventsListeners[i].forEach((n, r) => {
+ (n === e || (n.__emitterProxy && n.__emitterProxy === e)) &&
+ t.eventsListeners[i].splice(r, 1);
+ });
+ }),
+ t
+ );
+ },
+ emit() {
+ const s = this;
+ if (!s.eventsListeners || s.destroyed || !s.eventsListeners) return s;
+ let e, t, i;
+ for (var n = arguments.length, r = new Array(n), o = 0; o < n; o++)
+ r[o] = arguments[o];
+ return (
+ typeof r[0] == 'string' || Array.isArray(r[0])
+ ? ((e = r[0]), (t = r.slice(1, r.length)), (i = s))
+ : ((e = r[0].events), (t = r[0].data), (i = r[0].context || s)),
+ t.unshift(i),
+ (Array.isArray(e) ? e : e.split(' ')).forEach((a) => {
+ s.eventsAnyListeners &&
+ s.eventsAnyListeners.length &&
+ s.eventsAnyListeners.forEach((u) => {
+ u.apply(i, [a, ...t]);
+ }),
+ s.eventsListeners &&
+ s.eventsListeners[a] &&
+ s.eventsListeners[a].forEach((u) => {
+ u.apply(i, t);
+ });
+ }),
+ s
+ );
+ },
+};
+function qe() {
+ const s = this;
+ let e, t;
+ const i = s.el;
+ typeof s.params.width < 'u' && s.params.width !== null
+ ? (e = s.params.width)
+ : (e = i.clientWidth),
+ typeof s.params.height < 'u' && s.params.height !== null
+ ? (t = s.params.height)
+ : (t = i.clientHeight),
+ !((e === 0 && s.isHorizontal()) || (t === 0 && s.isVertical())) &&
+ ((e =
+ e -
+ parseInt(_(i, 'padding-left') || 0, 10) -
+ parseInt(_(i, 'padding-right') || 0, 10)),
+ (t =
+ t -
+ parseInt(_(i, 'padding-top') || 0, 10) -
+ parseInt(_(i, 'padding-bottom') || 0, 10)),
+ Number.isNaN(e) && (e = 0),
+ Number.isNaN(t) && (t = 0),
+ Object.assign(s, {
+ width: e,
+ height: t,
+ size: s.isHorizontal() ? e : t,
+ }));
+}
+function je() {
+ const s = this;
+ function e(C, P) {
+ return parseFloat(C.getPropertyValue(s.getDirectionLabel(P)) || 0);
+ }
+ const t = s.params,
+ { wrapperEl: i, slidesEl: n, size: r, rtlTranslate: o, wrongRTL: l } = s,
+ a = s.virtual && t.virtual.enabled,
+ u = a ? s.virtual.slides.length : s.slides.length,
+ f = H(n, `.${s.params.slideClass}, swiper-slide`),
+ p = a ? s.virtual.slides.length : f.length;
+ let g = [];
+ const m = [],
+ h = [];
+ let v = t.slidesOffsetBefore;
+ typeof v == 'function' && (v = t.slidesOffsetBefore.call(s));
+ let E = t.slidesOffsetAfter;
+ typeof E == 'function' && (E = t.slidesOffsetAfter.call(s));
+ const y = s.snapGrid.length,
+ d = s.slidesGrid.length;
+ let c = t.spaceBetween,
+ w = -v,
+ b = 0,
+ L = 0;
+ if (typeof r > 'u') return;
+ typeof c == 'string' && c.indexOf('%') >= 0
+ ? (c = (parseFloat(c.replace('%', '')) / 100) * r)
+ : typeof c == 'string' && (c = parseFloat(c)),
+ (s.virtualSize = -c),
+ f.forEach((C) => {
+ o ? (C.style.marginLeft = '') : (C.style.marginRight = ''),
+ (C.style.marginBottom = ''),
+ (C.style.marginTop = '');
+ }),
+ t.centeredSlides &&
+ t.cssMode &&
+ (Y(i, '--swiper-centered-offset-before', ''),
+ Y(i, '--swiper-centered-offset-after', ''));
+ const A = t.grid && t.grid.rows > 1 && s.grid;
+ A ? s.grid.initSlides(f) : s.grid && s.grid.unsetSlides();
+ let z;
+ const O =
+ t.slidesPerView === 'auto' &&
+ t.breakpoints &&
+ Object.keys(t.breakpoints).filter(
+ (C) => typeof t.breakpoints[C].slidesPerView < 'u',
+ ).length > 0;
+ for (let C = 0; C < p; C += 1) {
+ z = 0;
+ let P;
+ if (
+ (f[C] && (P = f[C]),
+ A && s.grid.updateSlide(C, P, f),
+ !(f[C] && _(P, 'display') === 'none'))
+ ) {
+ if (t.slidesPerView === 'auto') {
+ O && (f[C].style[s.getDirectionLabel('width')] = '');
+ const T = getComputedStyle(P),
+ S = P.style.transform,
+ x = P.style.webkitTransform;
+ if (
+ (S && (P.style.transform = 'none'),
+ x && (P.style.webkitTransform = 'none'),
+ t.roundLengths)
+ )
+ z = s.isHorizontal() ? ae(P, 'width', !0) : ae(P, 'height', !0);
+ else {
+ const M = e(T, 'width'),
+ I = e(T, 'padding-left'),
+ V = e(T, 'padding-right'),
+ F = e(T, 'margin-left'),
+ D = e(T, 'margin-right'),
+ pe = T.getPropertyValue('box-sizing');
+ if (pe && pe === 'border-box') z = M + F + D;
+ else {
+ const { clientWidth: Pe, offsetWidth: Le } = P;
+ z = M + I + V + F + D + (Le - Pe);
+ }
+ }
+ S && (P.style.transform = S),
+ x && (P.style.webkitTransform = x),
+ t.roundLengths && (z = Math.floor(z));
+ } else
+ (z = (r - (t.slidesPerView - 1) * c) / t.slidesPerView),
+ t.roundLengths && (z = Math.floor(z)),
+ f[C] && (f[C].style[s.getDirectionLabel('width')] = `${z}px`);
+ f[C] && (f[C].swiperSlideSize = z),
+ h.push(z),
+ t.centeredSlides
+ ? ((w = w + z / 2 + b / 2 + c),
+ b === 0 && C !== 0 && (w = w - r / 2 - c),
+ C === 0 && (w = w - r / 2 - c),
+ Math.abs(w) < 1 / 1e3 && (w = 0),
+ t.roundLengths && (w = Math.floor(w)),
+ L % t.slidesPerGroup === 0 && g.push(w),
+ m.push(w))
+ : (t.roundLengths && (w = Math.floor(w)),
+ (L - Math.min(s.params.slidesPerGroupSkip, L)) %
+ s.params.slidesPerGroup ===
+ 0 && g.push(w),
+ m.push(w),
+ (w = w + z + c)),
+ (s.virtualSize += z + c),
+ (b = z),
+ (L += 1);
+ }
+ }
+ if (
+ ((s.virtualSize = Math.max(s.virtualSize, r) + E),
+ o &&
+ l &&
+ (t.effect === 'slide' || t.effect === 'coverflow') &&
+ (i.style.width = `${s.virtualSize + c}px`),
+ t.setWrapperSize &&
+ (i.style[s.getDirectionLabel('width')] = `${s.virtualSize + c}px`),
+ A && s.grid.updateWrapperSize(z, g),
+ !t.centeredSlides)
+ ) {
+ const C = [];
+ for (let P = 0; P < g.length; P += 1) {
+ let T = g[P];
+ t.roundLengths && (T = Math.floor(T)),
+ g[P] <= s.virtualSize - r && C.push(T);
+ }
+ (g = C),
+ Math.floor(s.virtualSize - r) - Math.floor(g[g.length - 1]) > 1 &&
+ g.push(s.virtualSize - r);
+ }
+ if (a && t.loop) {
+ const C = h[0] + c;
+ if (t.slidesPerGroup > 1) {
+ const P = Math.ceil(
+ (s.virtual.slidesBefore + s.virtual.slidesAfter) / t.slidesPerGroup,
+ ),
+ T = C * t.slidesPerGroup;
+ for (let S = 0; S < P; S += 1) g.push(g[g.length - 1] + T);
+ }
+ for (let P = 0; P < s.virtual.slidesBefore + s.virtual.slidesAfter; P += 1)
+ t.slidesPerGroup === 1 && g.push(g[g.length - 1] + C),
+ m.push(m[m.length - 1] + C),
+ (s.virtualSize += C);
+ }
+ if ((g.length === 0 && (g = [0]), c !== 0)) {
+ const C =
+ s.isHorizontal() && o ? 'marginLeft' : s.getDirectionLabel('marginRight');
+ f.filter((P, T) =>
+ !t.cssMode || t.loop ? !0 : T !== f.length - 1,
+ ).forEach((P) => {
+ P.style[C] = `${c}px`;
+ });
+ }
+ if (t.centeredSlides && t.centeredSlidesBounds) {
+ let C = 0;
+ h.forEach((T) => {
+ C += T + (c || 0);
+ }),
+ (C -= c);
+ const P = C > r ? C - r : 0;
+ g = g.map((T) => (T <= 0 ? -v : T > P ? P + E : T));
+ }
+ if (t.centerInsufficientSlides) {
+ let C = 0;
+ h.forEach((T) => {
+ C += T + (c || 0);
+ }),
+ (C -= c);
+ const P = (t.slidesOffsetBefore || 0) + (t.slidesOffsetAfter || 0);
+ if (C + P < r) {
+ const T = (r - C - P) / 2;
+ g.forEach((S, x) => {
+ g[x] = S - T;
+ }),
+ m.forEach((S, x) => {
+ m[x] = S + T;
+ });
+ }
+ }
+ if (
+ (Object.assign(s, {
+ slides: f,
+ snapGrid: g,
+ slidesGrid: m,
+ slidesSizesGrid: h,
+ }),
+ t.centeredSlides && t.cssMode && !t.centeredSlidesBounds)
+ ) {
+ Y(i, '--swiper-centered-offset-before', `${-g[0]}px`),
+ Y(
+ i,
+ '--swiper-centered-offset-after',
+ `${s.size / 2 - h[h.length - 1] / 2}px`,
+ );
+ const C = -s.snapGrid[0],
+ P = -s.slidesGrid[0];
+ (s.snapGrid = s.snapGrid.map((T) => T + C)),
+ (s.slidesGrid = s.slidesGrid.map((T) => T + P));
+ }
+ if (
+ (p !== u && s.emit('slidesLengthChange'),
+ g.length !== y &&
+ (s.params.watchOverflow && s.checkOverflow(),
+ s.emit('snapGridLengthChange')),
+ m.length !== d && s.emit('slidesGridLengthChange'),
+ t.watchSlidesProgress && s.updateSlidesOffset(),
+ s.emit('slidesUpdated'),
+ !a && !t.cssMode && (t.effect === 'slide' || t.effect === 'fade'))
+ ) {
+ const C = `${t.containerModifierClass}backface-hidden`,
+ P = s.el.classList.contains(C);
+ p <= t.maxBackfaceHiddenSlides
+ ? P || s.el.classList.add(C)
+ : P && s.el.classList.remove(C);
+ }
+}
+function Ye(s) {
+ const e = this,
+ t = [],
+ i = e.virtual && e.params.virtual.enabled;
+ let n = 0,
+ r;
+ typeof s == 'number'
+ ? e.setTransition(s)
+ : s === !0 && e.setTransition(e.params.speed);
+ const o = (l) => (i ? e.slides[e.getSlideIndexByData(l)] : e.slides[l]);
+ if (e.params.slidesPerView !== 'auto' && e.params.slidesPerView > 1)
+ if (e.params.centeredSlides)
+ (e.visibleSlides || []).forEach((l) => {
+ t.push(l);
+ });
+ else
+ for (r = 0; r < Math.ceil(e.params.slidesPerView); r += 1) {
+ const l = e.activeIndex + r;
+ if (l > e.slides.length && !i) break;
+ t.push(o(l));
+ }
+ else t.push(o(e.activeIndex));
+ for (r = 0; r < t.length; r += 1)
+ if (typeof t[r] < 'u') {
+ const l = t[r].offsetHeight;
+ n = l > n ? l : n;
+ }
+ (n || n === 0) && (e.wrapperEl.style.height = `${n}px`);
+}
+function Xe() {
+ const s = this,
+ e = s.slides,
+ t = s.isElement
+ ? s.isHorizontal()
+ ? s.wrapperEl.offsetLeft
+ : s.wrapperEl.offsetTop
+ : 0;
+ for (let i = 0; i < e.length; i += 1)
+ e[i].swiperSlideOffset =
+ (s.isHorizontal() ? e[i].offsetLeft : e[i].offsetTop) -
+ t -
+ s.cssOverflowAdjustment();
+}
+const he = (s, e, t) => {
+ e && !s.classList.contains(t)
+ ? s.classList.add(t)
+ : !e && s.classList.contains(t) && s.classList.remove(t);
+};
+function Ue(s) {
+ s === void 0 && (s = (this && this.translate) || 0);
+ const e = this,
+ t = e.params,
+ { slides: i, rtlTranslate: n, snapGrid: r } = e;
+ if (i.length === 0) return;
+ typeof i[0].swiperSlideOffset > 'u' && e.updateSlidesOffset();
+ let o = -s;
+ n && (o = s), (e.visibleSlidesIndexes = []), (e.visibleSlides = []);
+ let l = t.spaceBetween;
+ typeof l == 'string' && l.indexOf('%') >= 0
+ ? (l = (parseFloat(l.replace('%', '')) / 100) * e.size)
+ : typeof l == 'string' && (l = parseFloat(l));
+ for (let a = 0; a < i.length; a += 1) {
+ const u = i[a];
+ let f = u.swiperSlideOffset;
+ t.cssMode && t.centeredSlides && (f -= i[0].swiperSlideOffset);
+ const p =
+ (o + (t.centeredSlides ? e.minTranslate() : 0) - f) /
+ (u.swiperSlideSize + l),
+ g =
+ (o - r[0] + (t.centeredSlides ? e.minTranslate() : 0) - f) /
+ (u.swiperSlideSize + l),
+ m = -(o - f),
+ h = m + e.slidesSizesGrid[a],
+ v = m >= 0 && m <= e.size - e.slidesSizesGrid[a],
+ E =
+ (m >= 0 && m < e.size - 1) ||
+ (h > 1 && h <= e.size) ||
+ (m <= 0 && h >= e.size);
+ E && (e.visibleSlides.push(u), e.visibleSlidesIndexes.push(a)),
+ he(u, E, t.slideVisibleClass),
+ he(u, v, t.slideFullyVisibleClass),
+ (u.progress = n ? -p : p),
+ (u.originalProgress = n ? -g : g);
+ }
+}
+function Ke(s) {
+ const e = this;
+ if (typeof s > 'u') {
+ const f = e.rtlTranslate ? -1 : 1;
+ s = (e && e.translate && e.translate * f) || 0;
+ }
+ const t = e.params,
+ i = e.maxTranslate() - e.minTranslate();
+ let { progress: n, isBeginning: r, isEnd: o, progressLoop: l } = e;
+ const a = r,
+ u = o;
+ if (i === 0) (n = 0), (r = !0), (o = !0);
+ else {
+ n = (s - e.minTranslate()) / i;
+ const f = Math.abs(s - e.minTranslate()) < 1,
+ p = Math.abs(s - e.maxTranslate()) < 1;
+ (r = f || n <= 0), (o = p || n >= 1), f && (n = 0), p && (n = 1);
+ }
+ if (t.loop) {
+ const f = e.getSlideIndexByData(0),
+ p = e.getSlideIndexByData(e.slides.length - 1),
+ g = e.slidesGrid[f],
+ m = e.slidesGrid[p],
+ h = e.slidesGrid[e.slidesGrid.length - 1],
+ v = Math.abs(s);
+ v >= g ? (l = (v - g) / h) : (l = (v + h - m) / h), l > 1 && (l -= 1);
+ }
+ Object.assign(e, { progress: n, progressLoop: l, isBeginning: r, isEnd: o }),
+ (t.watchSlidesProgress || (t.centeredSlides && t.autoHeight)) &&
+ e.updateSlidesProgress(s),
+ r && !a && e.emit('reachBeginning toEdge'),
+ o && !u && e.emit('reachEnd toEdge'),
+ ((a && !r) || (u && !o)) && e.emit('fromEdge'),
+ e.emit('progress', n);
+}
+const se = (s, e, t) => {
+ e && !s.classList.contains(t)
+ ? s.classList.add(t)
+ : !e && s.classList.contains(t) && s.classList.remove(t);
+};
+function Je() {
+ const s = this,
+ { slides: e, params: t, slidesEl: i, activeIndex: n } = s,
+ r = s.virtual && t.virtual.enabled,
+ o = s.grid && t.grid && t.grid.rows > 1,
+ l = (p) => H(i, `.${t.slideClass}${p}, swiper-slide${p}`)[0];
+ let a, u, f;
+ if (r)
+ if (t.loop) {
+ let p = n - s.virtual.slidesBefore;
+ p < 0 && (p = s.virtual.slides.length + p),
+ p >= s.virtual.slides.length && (p -= s.virtual.slides.length),
+ (a = l(`[data-swiper-slide-index="${p}"]`));
+ } else a = l(`[data-swiper-slide-index="${n}"]`);
+ else
+ o
+ ? ((a = e.filter((p) => p.column === n)[0]),
+ (f = e.filter((p) => p.column === n + 1)[0]),
+ (u = e.filter((p) => p.column === n - 1)[0]))
+ : (a = e[n]);
+ a &&
+ (o ||
+ ((f = $e(a, `.${t.slideClass}, swiper-slide`)[0]),
+ t.loop && !f && (f = e[0]),
+ (u = Be(a, `.${t.slideClass}, swiper-slide`)[0]),
+ t.loop && !u === 0 && (u = e[e.length - 1]))),
+ e.forEach((p) => {
+ se(p, p === a, t.slideActiveClass),
+ se(p, p === f, t.slideNextClass),
+ se(p, p === u, t.slidePrevClass);
+ }),
+ s.emitSlidesClasses();
+}
+const X = (s, e) => {
+ if (!s || s.destroyed || !s.params) return;
+ const t = () => (s.isElement ? 'swiper-slide' : `.${s.params.slideClass}`),
+ i = e.closest(t());
+ if (i) {
+ let n = i.querySelector(`.${s.params.lazyPreloaderClass}`);
+ !n &&
+ s.isElement &&
+ (i.shadowRoot
+ ? (n = i.shadowRoot.querySelector(`.${s.params.lazyPreloaderClass}`))
+ : requestAnimationFrame(() => {
+ i.shadowRoot &&
+ ((n = i.shadowRoot.querySelector(
+ `.${s.params.lazyPreloaderClass}`,
+ )),
+ n && n.remove());
+ })),
+ n && n.remove();
+ }
+ },
+ ie = (s, e) => {
+ if (!s.slides[e]) return;
+ const t = s.slides[e].querySelector('[loading="lazy"]');
+ t && t.removeAttribute('loading');
+ },
+ le = (s) => {
+ if (!s || s.destroyed || !s.params) return;
+ let e = s.params.lazyPreloadPrevNext;
+ const t = s.slides.length;
+ if (!t || !e || e < 0) return;
+ e = Math.min(e, t);
+ const i =
+ s.params.slidesPerView === 'auto'
+ ? s.slidesPerViewDynamic()
+ : Math.ceil(s.params.slidesPerView),
+ n = s.activeIndex;
+ if (s.params.grid && s.params.grid.rows > 1) {
+ const o = n,
+ l = [o - e];
+ l.push(...Array.from({ length: e }).map((a, u) => o + i + u)),
+ s.slides.forEach((a, u) => {
+ l.includes(a.column) && ie(s, u);
+ });
+ return;
+ }
+ const r = n + i - 1;
+ if (s.params.rewind || s.params.loop)
+ for (let o = n - e; o <= r + e; o += 1) {
+ const l = ((o % t) + t) % t;
+ (l < n || l > r) && ie(s, l);
+ }
+ else
+ for (let o = Math.max(n - e, 0); o <= Math.min(r + e, t - 1); o += 1)
+ o !== n && (o > r || o < n) && ie(s, o);
+ };
+function Qe(s) {
+ const { slidesGrid: e, params: t } = s,
+ i = s.rtlTranslate ? s.translate : -s.translate;
+ let n;
+ for (let r = 0; r < e.length; r += 1)
+ typeof e[r + 1] < 'u'
+ ? i >= e[r] && i < e[r + 1] - (e[r + 1] - e[r]) / 2
+ ? (n = r)
+ : i >= e[r] && i < e[r + 1] && (n = r + 1)
+ : i >= e[r] && (n = r);
+ return t.normalizeSlideIndex && (n < 0 || typeof n > 'u') && (n = 0), n;
+}
+function Ze(s) {
+ const e = this,
+ t = e.rtlTranslate ? e.translate : -e.translate,
+ { snapGrid: i, params: n, activeIndex: r, realIndex: o, snapIndex: l } = e;
+ let a = s,
+ u;
+ const f = (m) => {
+ let h = m - e.virtual.slidesBefore;
+ return (
+ h < 0 && (h = e.virtual.slides.length + h),
+ h >= e.virtual.slides.length && (h -= e.virtual.slides.length),
+ h
+ );
+ };
+ if ((typeof a > 'u' && (a = Qe(e)), i.indexOf(t) >= 0)) u = i.indexOf(t);
+ else {
+ const m = Math.min(n.slidesPerGroupSkip, a);
+ u = m + Math.floor((a - m) / n.slidesPerGroup);
+ }
+ if ((u >= i.length && (u = i.length - 1), a === r && !e.params.loop)) {
+ u !== l && ((e.snapIndex = u), e.emit('snapIndexChange'));
+ return;
+ }
+ if (a === r && e.params.loop && e.virtual && e.params.virtual.enabled) {
+ e.realIndex = f(a);
+ return;
+ }
+ const p = e.grid && n.grid && n.grid.rows > 1;
+ let g;
+ if (e.virtual && n.virtual.enabled && n.loop) g = f(a);
+ else if (p) {
+ const m = e.slides.filter((v) => v.column === a)[0];
+ let h = parseInt(m.getAttribute('data-swiper-slide-index'), 10);
+ Number.isNaN(h) && (h = Math.max(e.slides.indexOf(m), 0)),
+ (g = Math.floor(h / n.grid.rows));
+ } else if (e.slides[a]) {
+ const m = e.slides[a].getAttribute('data-swiper-slide-index');
+ m ? (g = parseInt(m, 10)) : (g = a);
+ } else g = a;
+ Object.assign(e, {
+ previousSnapIndex: l,
+ snapIndex: u,
+ previousRealIndex: o,
+ realIndex: g,
+ previousIndex: r,
+ activeIndex: a,
+ }),
+ e.initialized && le(e),
+ e.emit('activeIndexChange'),
+ e.emit('snapIndexChange'),
+ (e.initialized || e.params.runCallbacksOnInit) &&
+ (o !== g && e.emit('realIndexChange'), e.emit('slideChange'));
+}
+function et(s, e) {
+ const t = this,
+ i = t.params;
+ let n = s.closest(`.${i.slideClass}, swiper-slide`);
+ !n &&
+ t.isElement &&
+ e &&
+ e.length > 1 &&
+ e.includes(s) &&
+ [...e.slice(e.indexOf(s) + 1, e.length)].forEach((l) => {
+ !n && l.matches && l.matches(`.${i.slideClass}, swiper-slide`) && (n = l);
+ });
+ let r = !1,
+ o;
+ if (n) {
+ for (let l = 0; l < t.slides.length; l += 1)
+ if (t.slides[l] === n) {
+ (r = !0), (o = l);
+ break;
+ }
+ }
+ if (n && r)
+ (t.clickedSlide = n),
+ t.virtual && t.params.virtual.enabled
+ ? (t.clickedIndex = parseInt(
+ n.getAttribute('data-swiper-slide-index'),
+ 10,
+ ))
+ : (t.clickedIndex = o);
+ else {
+ (t.clickedSlide = void 0), (t.clickedIndex = void 0);
+ return;
+ }
+ i.slideToClickedSlide &&
+ t.clickedIndex !== void 0 &&
+ t.clickedIndex !== t.activeIndex &&
+ t.slideToClickedSlide();
+}
+var tt = {
+ updateSize: qe,
+ updateSlides: je,
+ updateAutoHeight: Ye,
+ updateSlidesOffset: Xe,
+ updateSlidesProgress: Ue,
+ updateProgress: Ke,
+ updateSlidesClasses: Je,
+ updateActiveIndex: Ze,
+ updateClickedSlide: et,
+};
+function st(s) {
+ s === void 0 && (s = this.isHorizontal() ? 'x' : 'y');
+ const e = this,
+ { params: t, rtlTranslate: i, translate: n, wrapperEl: r } = e;
+ if (t.virtualTranslate) return i ? -n : n;
+ if (t.cssMode) return n;
+ let o = Ae(r, s);
+ return (o += e.cssOverflowAdjustment()), i && (o = -o), o || 0;
+}
+function it(s, e) {
+ const t = this,
+ { rtlTranslate: i, params: n, wrapperEl: r, progress: o } = t;
+ let l = 0,
+ a = 0;
+ const u = 0;
+ t.isHorizontal() ? (l = i ? -s : s) : (a = s),
+ n.roundLengths && ((l = Math.floor(l)), (a = Math.floor(a))),
+ (t.previousTranslate = t.translate),
+ (t.translate = t.isHorizontal() ? l : a),
+ n.cssMode
+ ? (r[t.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = t.isHorizontal()
+ ? -l
+ : -a)
+ : n.virtualTranslate ||
+ (t.isHorizontal()
+ ? (l -= t.cssOverflowAdjustment())
+ : (a -= t.cssOverflowAdjustment()),
+ (r.style.transform = `translate3d(${l}px, ${a}px, ${u}px)`));
+ let f;
+ const p = t.maxTranslate() - t.minTranslate();
+ p === 0 ? (f = 0) : (f = (s - t.minTranslate()) / p),
+ f !== o && t.updateProgress(s),
+ t.emit('setTranslate', t.translate, e);
+}
+function rt() {
+ return -this.snapGrid[0];
+}
+function nt() {
+ return -this.snapGrid[this.snapGrid.length - 1];
+}
+function at(s, e, t, i, n) {
+ s === void 0 && (s = 0),
+ e === void 0 && (e = this.params.speed),
+ t === void 0 && (t = !0),
+ i === void 0 && (i = !0);
+ const r = this,
+ { params: o, wrapperEl: l } = r;
+ if (r.animating && o.preventInteractionOnTransition) return !1;
+ const a = r.minTranslate(),
+ u = r.maxTranslate();
+ let f;
+ if (
+ (i && s > a ? (f = a) : i && s < u ? (f = u) : (f = s),
+ r.updateProgress(f),
+ o.cssMode)
+ ) {
+ const p = r.isHorizontal();
+ if (e === 0) l[p ? 'scrollLeft' : 'scrollTop'] = -f;
+ else {
+ if (!r.support.smoothScroll)
+ return (
+ ye({ swiper: r, targetPosition: -f, side: p ? 'left' : 'top' }), !0
+ );
+ l.scrollTo({ [p ? 'left' : 'top']: -f, behavior: 'smooth' });
+ }
+ return !0;
+ }
+ return (
+ e === 0
+ ? (r.setTransition(0),
+ r.setTranslate(f),
+ t && (r.emit('beforeTransitionStart', e, n), r.emit('transitionEnd')))
+ : (r.setTransition(e),
+ r.setTranslate(f),
+ t && (r.emit('beforeTransitionStart', e, n), r.emit('transitionStart')),
+ r.animating ||
+ ((r.animating = !0),
+ r.onTranslateToWrapperTransitionEnd ||
+ (r.onTranslateToWrapperTransitionEnd = function (g) {
+ !r ||
+ r.destroyed ||
+ (g.target === this &&
+ (r.wrapperEl.removeEventListener(
+ 'transitionend',
+ r.onTranslateToWrapperTransitionEnd,
+ ),
+ (r.onTranslateToWrapperTransitionEnd = null),
+ delete r.onTranslateToWrapperTransitionEnd,
+ (r.animating = !1),
+ t && r.emit('transitionEnd')));
+ }),
+ r.wrapperEl.addEventListener(
+ 'transitionend',
+ r.onTranslateToWrapperTransitionEnd,
+ ))),
+ !0
+ );
+}
+var lt = {
+ getTranslate: st,
+ setTranslate: it,
+ minTranslate: rt,
+ maxTranslate: nt,
+ translateTo: at,
+};
+function ot(s, e) {
+ const t = this;
+ t.params.cssMode ||
+ ((t.wrapperEl.style.transitionDuration = `${s}ms`),
+ (t.wrapperEl.style.transitionDelay = s === 0 ? '0ms' : '')),
+ t.emit('setTransition', s, e);
+}
+function Ce(s) {
+ let { swiper: e, runCallbacks: t, direction: i, step: n } = s;
+ const { activeIndex: r, previousIndex: o } = e;
+ let l = i;
+ if (
+ (l || (r > o ? (l = 'next') : r < o ? (l = 'prev') : (l = 'reset')),
+ e.emit(`transition${n}`),
+ t && r !== o)
+ ) {
+ if (l === 'reset') {
+ e.emit(`slideResetTransition${n}`);
+ return;
+ }
+ e.emit(`slideChangeTransition${n}`),
+ l === 'next'
+ ? e.emit(`slideNextTransition${n}`)
+ : e.emit(`slidePrevTransition${n}`);
+ }
+}
+function dt(s, e) {
+ s === void 0 && (s = !0);
+ const t = this,
+ { params: i } = t;
+ i.cssMode ||
+ (i.autoHeight && t.updateAutoHeight(),
+ Ce({ swiper: t, runCallbacks: s, direction: e, step: 'Start' }));
+}
+function ct(s, e) {
+ s === void 0 && (s = !0);
+ const t = this,
+ { params: i } = t;
+ (t.animating = !1),
+ !i.cssMode &&
+ (t.setTransition(0),
+ Ce({ swiper: t, runCallbacks: s, direction: e, step: 'End' }));
+}
+var ft = { setTransition: ot, transitionStart: dt, transitionEnd: ct };
+function ut(s, e, t, i, n) {
+ s === void 0 && (s = 0),
+ t === void 0 && (t = !0),
+ typeof s == 'string' && (s = parseInt(s, 10));
+ const r = this;
+ let o = s;
+ o < 0 && (o = 0);
+ const {
+ params: l,
+ snapGrid: a,
+ slidesGrid: u,
+ previousIndex: f,
+ activeIndex: p,
+ rtlTranslate: g,
+ wrapperEl: m,
+ enabled: h,
+ } = r;
+ if (
+ (!h && !i && !n) ||
+ r.destroyed ||
+ (r.animating && l.preventInteractionOnTransition)
+ )
+ return !1;
+ typeof e > 'u' && (e = r.params.speed);
+ const v = Math.min(r.params.slidesPerGroupSkip, o);
+ let E = v + Math.floor((o - v) / r.params.slidesPerGroup);
+ E >= a.length && (E = a.length - 1);
+ const y = -a[E];
+ if (l.normalizeSlideIndex)
+ for (let b = 0; b < u.length; b += 1) {
+ const L = -Math.floor(y * 100),
+ A = Math.floor(u[b] * 100),
+ z = Math.floor(u[b + 1] * 100);
+ typeof u[b + 1] < 'u'
+ ? L >= A && L < z - (z - A) / 2
+ ? (o = b)
+ : L >= A && L < z && (o = b + 1)
+ : L >= A && (o = b);
+ }
+ if (
+ r.initialized &&
+ o !== p &&
+ ((!r.allowSlideNext &&
+ (g
+ ? y > r.translate && y > r.minTranslate()
+ : y < r.translate && y < r.minTranslate())) ||
+ (!r.allowSlidePrev &&
+ y > r.translate &&
+ y > r.maxTranslate() &&
+ (p || 0) !== o))
+ )
+ return !1;
+ o !== (f || 0) && t && r.emit('beforeSlideChangeStart'), r.updateProgress(y);
+ let d;
+ o > p ? (d = 'next') : o < p ? (d = 'prev') : (d = 'reset');
+ const c = r.virtual && r.params.virtual.enabled;
+ if (!(c && n) && ((g && -y === r.translate) || (!g && y === r.translate)))
+ return (
+ r.updateActiveIndex(o),
+ l.autoHeight && r.updateAutoHeight(),
+ r.updateSlidesClasses(),
+ l.effect !== 'slide' && r.setTranslate(y),
+ d !== 'reset' && (r.transitionStart(t, d), r.transitionEnd(t, d)),
+ !1
+ );
+ if (l.cssMode) {
+ const b = r.isHorizontal(),
+ L = g ? y : -y;
+ if (e === 0)
+ c &&
+ ((r.wrapperEl.style.scrollSnapType = 'none'),
+ (r._immediateVirtual = !0)),
+ c && !r._cssModeVirtualInitialSet && r.params.initialSlide > 0
+ ? ((r._cssModeVirtualInitialSet = !0),
+ requestAnimationFrame(() => {
+ m[b ? 'scrollLeft' : 'scrollTop'] = L;
+ }))
+ : (m[b ? 'scrollLeft' : 'scrollTop'] = L),
+ c &&
+ requestAnimationFrame(() => {
+ (r.wrapperEl.style.scrollSnapType = ''), (r._immediateVirtual = !1);
+ });
+ else {
+ if (!r.support.smoothScroll)
+ return (
+ ye({ swiper: r, targetPosition: L, side: b ? 'left' : 'top' }), !0
+ );
+ m.scrollTo({ [b ? 'left' : 'top']: L, behavior: 'smooth' });
+ }
+ return !0;
+ }
+ return (
+ r.setTransition(e),
+ r.setTranslate(y),
+ r.updateActiveIndex(o),
+ r.updateSlidesClasses(),
+ r.emit('beforeTransitionStart', e, i),
+ r.transitionStart(t, d),
+ e === 0
+ ? r.transitionEnd(t, d)
+ : r.animating ||
+ ((r.animating = !0),
+ r.onSlideToWrapperTransitionEnd ||
+ (r.onSlideToWrapperTransitionEnd = function (L) {
+ !r ||
+ r.destroyed ||
+ (L.target === this &&
+ (r.wrapperEl.removeEventListener(
+ 'transitionend',
+ r.onSlideToWrapperTransitionEnd,
+ ),
+ (r.onSlideToWrapperTransitionEnd = null),
+ delete r.onSlideToWrapperTransitionEnd,
+ r.transitionEnd(t, d)));
+ }),
+ r.wrapperEl.addEventListener(
+ 'transitionend',
+ r.onSlideToWrapperTransitionEnd,
+ )),
+ !0
+ );
+}
+function pt(s, e, t, i) {
+ s === void 0 && (s = 0),
+ t === void 0 && (t = !0),
+ typeof s == 'string' && (s = parseInt(s, 10));
+ const n = this;
+ if (n.destroyed) return;
+ typeof e > 'u' && (e = n.params.speed);
+ const r = n.grid && n.params.grid && n.params.grid.rows > 1;
+ let o = s;
+ if (n.params.loop)
+ if (n.virtual && n.params.virtual.enabled) o = o + n.virtual.slidesBefore;
+ else {
+ let l;
+ if (r) {
+ const g = o * n.params.grid.rows;
+ l = n.slides.filter(
+ (m) => m.getAttribute('data-swiper-slide-index') * 1 === g,
+ )[0].column;
+ } else l = n.getSlideIndexByData(o);
+ const a = r
+ ? Math.ceil(n.slides.length / n.params.grid.rows)
+ : n.slides.length,
+ { centeredSlides: u } = n.params;
+ let f = n.params.slidesPerView;
+ f === 'auto'
+ ? (f = n.slidesPerViewDynamic())
+ : ((f = Math.ceil(parseFloat(n.params.slidesPerView, 10))),
+ u && f % 2 === 0 && (f = f + 1));
+ let p = a - l < f;
+ if (
+ (u && (p = p || l < Math.ceil(f / 2)),
+ i && u && n.params.slidesPerView !== 'auto' && !r && (p = !1),
+ p)
+ ) {
+ const g = u
+ ? l < n.activeIndex
+ ? 'prev'
+ : 'next'
+ : l - n.activeIndex - 1 < n.params.slidesPerView
+ ? 'next'
+ : 'prev';
+ n.loopFix({
+ direction: g,
+ slideTo: !0,
+ activeSlideIndex: g === 'next' ? l + 1 : l - a + 1,
+ slideRealIndex: g === 'next' ? n.realIndex : void 0,
+ });
+ }
+ if (r) {
+ const g = o * n.params.grid.rows;
+ o = n.slides.filter(
+ (m) => m.getAttribute('data-swiper-slide-index') * 1 === g,
+ )[0].column;
+ } else o = n.getSlideIndexByData(o);
+ }
+ return (
+ requestAnimationFrame(() => {
+ n.slideTo(o, e, t, i);
+ }),
+ n
+ );
+}
+function mt(s, e, t) {
+ e === void 0 && (e = !0);
+ const i = this,
+ { enabled: n, params: r, animating: o } = i;
+ if (!n || i.destroyed) return i;
+ typeof s > 'u' && (s = i.params.speed);
+ let l = r.slidesPerGroup;
+ r.slidesPerView === 'auto' &&
+ r.slidesPerGroup === 1 &&
+ r.slidesPerGroupAuto &&
+ (l = Math.max(i.slidesPerViewDynamic('current', !0), 1));
+ const a = i.activeIndex < r.slidesPerGroupSkip ? 1 : l,
+ u = i.virtual && r.virtual.enabled;
+ if (r.loop) {
+ if (o && !u && r.loopPreventsSliding) return !1;
+ if (
+ (i.loopFix({ direction: 'next' }),
+ (i._clientLeft = i.wrapperEl.clientLeft),
+ i.activeIndex === i.slides.length - 1 && r.cssMode)
+ )
+ return (
+ requestAnimationFrame(() => {
+ i.slideTo(i.activeIndex + a, s, e, t);
+ }),
+ !0
+ );
+ }
+ return r.rewind && i.isEnd
+ ? i.slideTo(0, s, e, t)
+ : i.slideTo(i.activeIndex + a, s, e, t);
+}
+function ht(s, e, t) {
+ e === void 0 && (e = !0);
+ const i = this,
+ {
+ params: n,
+ snapGrid: r,
+ slidesGrid: o,
+ rtlTranslate: l,
+ enabled: a,
+ animating: u,
+ } = i;
+ if (!a || i.destroyed) return i;
+ typeof s > 'u' && (s = i.params.speed);
+ const f = i.virtual && n.virtual.enabled;
+ if (n.loop) {
+ if (u && !f && n.loopPreventsSliding) return !1;
+ i.loopFix({ direction: 'prev' }), (i._clientLeft = i.wrapperEl.clientLeft);
+ }
+ const p = l ? i.translate : -i.translate;
+ function g(y) {
+ return y < 0 ? -Math.floor(Math.abs(y)) : Math.floor(y);
+ }
+ const m = g(p),
+ h = r.map((y) => g(y));
+ let v = r[h.indexOf(m) - 1];
+ if (typeof v > 'u' && n.cssMode) {
+ let y;
+ r.forEach((d, c) => {
+ m >= d && (y = c);
+ }),
+ typeof y < 'u' && (v = r[y > 0 ? y - 1 : y]);
+ }
+ let E = 0;
+ if (
+ (typeof v < 'u' &&
+ ((E = o.indexOf(v)),
+ E < 0 && (E = i.activeIndex - 1),
+ n.slidesPerView === 'auto' &&
+ n.slidesPerGroup === 1 &&
+ n.slidesPerGroupAuto &&
+ ((E = E - i.slidesPerViewDynamic('previous', !0) + 1),
+ (E = Math.max(E, 0)))),
+ n.rewind && i.isBeginning)
+ ) {
+ const y =
+ i.params.virtual && i.params.virtual.enabled && i.virtual
+ ? i.virtual.slides.length - 1
+ : i.slides.length - 1;
+ return i.slideTo(y, s, e, t);
+ } else if (n.loop && i.activeIndex === 0 && n.cssMode)
+ return (
+ requestAnimationFrame(() => {
+ i.slideTo(E, s, e, t);
+ }),
+ !0
+ );
+ return i.slideTo(E, s, e, t);
+}
+function gt(s, e, t) {
+ e === void 0 && (e = !0);
+ const i = this;
+ if (!i.destroyed)
+ return (
+ typeof s > 'u' && (s = i.params.speed), i.slideTo(i.activeIndex, s, e, t)
+ );
+}
+function vt(s, e, t, i) {
+ e === void 0 && (e = !0), i === void 0 && (i = 0.5);
+ const n = this;
+ if (n.destroyed) return;
+ typeof s > 'u' && (s = n.params.speed);
+ let r = n.activeIndex;
+ const o = Math.min(n.params.slidesPerGroupSkip, r),
+ l = o + Math.floor((r - o) / n.params.slidesPerGroup),
+ a = n.rtlTranslate ? n.translate : -n.translate;
+ if (a >= n.snapGrid[l]) {
+ const u = n.snapGrid[l],
+ f = n.snapGrid[l + 1];
+ a - u > (f - u) * i && (r += n.params.slidesPerGroup);
+ } else {
+ const u = n.snapGrid[l - 1],
+ f = n.snapGrid[l];
+ a - u <= (f - u) * i && (r -= n.params.slidesPerGroup);
+ }
+ return (
+ (r = Math.max(r, 0)),
+ (r = Math.min(r, n.slidesGrid.length - 1)),
+ n.slideTo(r, s, e, t)
+ );
+}
+function wt() {
+ const s = this;
+ if (s.destroyed) return;
+ const { params: e, slidesEl: t } = s,
+ i = e.slidesPerView === 'auto' ? s.slidesPerViewDynamic() : e.slidesPerView;
+ let n = s.clickedIndex,
+ r;
+ const o = s.isElement ? 'swiper-slide' : `.${e.slideClass}`;
+ if (e.loop) {
+ if (s.animating) return;
+ (r = parseInt(s.clickedSlide.getAttribute('data-swiper-slide-index'), 10)),
+ e.centeredSlides
+ ? n < s.loopedSlides - i / 2 ||
+ n > s.slides.length - s.loopedSlides + i / 2
+ ? (s.loopFix(),
+ (n = s.getSlideIndex(
+ H(t, `${o}[data-swiper-slide-index="${r}"]`)[0],
+ )),
+ U(() => {
+ s.slideTo(n);
+ }))
+ : s.slideTo(n)
+ : n > s.slides.length - i
+ ? (s.loopFix(),
+ (n = s.getSlideIndex(
+ H(t, `${o}[data-swiper-slide-index="${r}"]`)[0],
+ )),
+ U(() => {
+ s.slideTo(n);
+ }))
+ : s.slideTo(n);
+ } else s.slideTo(n);
+}
+var bt = {
+ slideTo: ut,
+ slideToLoop: pt,
+ slideNext: mt,
+ slidePrev: ht,
+ slideReset: gt,
+ slideToClosest: vt,
+ slideToClickedSlide: wt,
+};
+function St(s) {
+ const e = this,
+ { params: t, slidesEl: i } = e;
+ if (!t.loop || (e.virtual && e.params.virtual.enabled)) return;
+ const n = () => {
+ H(i, `.${t.slideClass}, swiper-slide`).forEach((p, g) => {
+ p.setAttribute('data-swiper-slide-index', g);
+ });
+ },
+ r = e.grid && t.grid && t.grid.rows > 1,
+ o = t.slidesPerGroup * (r ? t.grid.rows : 1),
+ l = e.slides.length % o !== 0,
+ a = r && e.slides.length % t.grid.rows !== 0,
+ u = (f) => {
+ for (let p = 0; p < f; p += 1) {
+ const g = e.isElement
+ ? q('swiper-slide', [t.slideBlankClass])
+ : q('div', [t.slideClass, t.slideBlankClass]);
+ e.slidesEl.append(g);
+ }
+ };
+ if (l) {
+ if (t.loopAddBlankSlides) {
+ const f = o - (e.slides.length % o);
+ u(f), e.recalcSlides(), e.updateSlides();
+ } else
+ J(
+ 'Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)',
+ );
+ n();
+ } else if (a) {
+ if (t.loopAddBlankSlides) {
+ const f = t.grid.rows - (e.slides.length % t.grid.rows);
+ u(f), e.recalcSlides(), e.updateSlides();
+ } else
+ J(
+ 'Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)',
+ );
+ n();
+ } else n();
+ e.loopFix({
+ slideRealIndex: s,
+ direction: t.centeredSlides ? void 0 : 'next',
+ });
+}
+function yt(s) {
+ let {
+ slideRealIndex: e,
+ slideTo: t = !0,
+ direction: i,
+ setTranslate: n,
+ activeSlideIndex: r,
+ byController: o,
+ byMousewheel: l,
+ } = s === void 0 ? {} : s;
+ const a = this;
+ if (!a.params.loop) return;
+ a.emit('beforeLoopFix');
+ const {
+ slides: u,
+ allowSlidePrev: f,
+ allowSlideNext: p,
+ slidesEl: g,
+ params: m,
+ } = a,
+ { centeredSlides: h } = m;
+ if (
+ ((a.allowSlidePrev = !0),
+ (a.allowSlideNext = !0),
+ a.virtual && m.virtual.enabled)
+ ) {
+ t &&
+ (!m.centeredSlides && a.snapIndex === 0
+ ? a.slideTo(a.virtual.slides.length, 0, !1, !0)
+ : m.centeredSlides && a.snapIndex < m.slidesPerView
+ ? a.slideTo(a.virtual.slides.length + a.snapIndex, 0, !1, !0)
+ : a.snapIndex === a.snapGrid.length - 1 &&
+ a.slideTo(a.virtual.slidesBefore, 0, !1, !0)),
+ (a.allowSlidePrev = f),
+ (a.allowSlideNext = p),
+ a.emit('loopFix');
+ return;
+ }
+ let v = m.slidesPerView;
+ v === 'auto'
+ ? (v = a.slidesPerViewDynamic())
+ : ((v = Math.ceil(parseFloat(m.slidesPerView, 10))),
+ h && v % 2 === 0 && (v = v + 1));
+ const E = m.slidesPerGroupAuto ? v : m.slidesPerGroup;
+ let y = E;
+ y % E !== 0 && (y += E - (y % E)),
+ (y += m.loopAdditionalSlides),
+ (a.loopedSlides = y);
+ const d = a.grid && m.grid && m.grid.rows > 1;
+ u.length < v + y
+ ? J(
+ 'Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters',
+ )
+ : d &&
+ m.grid.fill === 'row' &&
+ J(
+ 'Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`',
+ );
+ const c = [],
+ w = [];
+ let b = a.activeIndex;
+ typeof r > 'u'
+ ? (r = a.getSlideIndex(
+ u.filter((S) => S.classList.contains(m.slideActiveClass))[0],
+ ))
+ : (b = r);
+ const L = i === 'next' || !i,
+ A = i === 'prev' || !i;
+ let z = 0,
+ O = 0;
+ const C = d ? Math.ceil(u.length / m.grid.rows) : u.length,
+ T = (d ? u[r].column : r) + (h && typeof n > 'u' ? -v / 2 + 0.5 : 0);
+ if (T < y) {
+ z = Math.max(y - T, E);
+ for (let S = 0; S < y - T; S += 1) {
+ const x = S - Math.floor(S / C) * C;
+ if (d) {
+ const M = C - x - 1;
+ for (let I = u.length - 1; I >= 0; I -= 1)
+ u[I].column === M && c.push(I);
+ } else c.push(C - x - 1);
+ }
+ } else if (T + v > C - y) {
+ O = Math.max(T - (C - y * 2), E);
+ for (let S = 0; S < O; S += 1) {
+ const x = S - Math.floor(S / C) * C;
+ d
+ ? u.forEach((M, I) => {
+ M.column === x && w.push(I);
+ })
+ : w.push(x);
+ }
+ }
+ if (
+ ((a.__preventObserver__ = !0),
+ requestAnimationFrame(() => {
+ a.__preventObserver__ = !1;
+ }),
+ A &&
+ c.forEach((S) => {
+ (u[S].swiperLoopMoveDOM = !0),
+ g.prepend(u[S]),
+ (u[S].swiperLoopMoveDOM = !1);
+ }),
+ L &&
+ w.forEach((S) => {
+ (u[S].swiperLoopMoveDOM = !0),
+ g.append(u[S]),
+ (u[S].swiperLoopMoveDOM = !1);
+ }),
+ a.recalcSlides(),
+ m.slidesPerView === 'auto'
+ ? a.updateSlides()
+ : d &&
+ ((c.length > 0 && A) || (w.length > 0 && L)) &&
+ a.slides.forEach((S, x) => {
+ a.grid.updateSlide(x, S, a.slides);
+ }),
+ m.watchSlidesProgress && a.updateSlidesOffset(),
+ t)
+ ) {
+ if (c.length > 0 && A) {
+ if (typeof e > 'u') {
+ const S = a.slidesGrid[b],
+ M = a.slidesGrid[b + z] - S;
+ l
+ ? a.setTranslate(a.translate - M)
+ : (a.slideTo(b + Math.ceil(z), 0, !1, !0),
+ n &&
+ ((a.touchEventsData.startTranslate =
+ a.touchEventsData.startTranslate - M),
+ (a.touchEventsData.currentTranslate =
+ a.touchEventsData.currentTranslate - M)));
+ } else if (n) {
+ const S = d ? c.length / m.grid.rows : c.length;
+ a.slideTo(a.activeIndex + S, 0, !1, !0),
+ (a.touchEventsData.currentTranslate = a.translate);
+ }
+ } else if (w.length > 0 && L)
+ if (typeof e > 'u') {
+ const S = a.slidesGrid[b],
+ M = a.slidesGrid[b - O] - S;
+ l
+ ? a.setTranslate(a.translate - M)
+ : (a.slideTo(b - O, 0, !1, !0),
+ n &&
+ ((a.touchEventsData.startTranslate =
+ a.touchEventsData.startTranslate - M),
+ (a.touchEventsData.currentTranslate =
+ a.touchEventsData.currentTranslate - M)));
+ } else {
+ const S = d ? w.length / m.grid.rows : w.length;
+ a.slideTo(a.activeIndex - S, 0, !1, !0);
+ }
+ }
+ if (
+ ((a.allowSlidePrev = f),
+ (a.allowSlideNext = p),
+ a.controller && a.controller.control && !o)
+ ) {
+ const S = {
+ slideRealIndex: e,
+ direction: i,
+ setTranslate: n,
+ activeSlideIndex: r,
+ byController: !0,
+ };
+ Array.isArray(a.controller.control)
+ ? a.controller.control.forEach((x) => {
+ !x.destroyed &&
+ x.params.loop &&
+ x.loopFix({
+ ...S,
+ slideTo: x.params.slidesPerView === m.slidesPerView ? t : !1,
+ });
+ })
+ : a.controller.control instanceof a.constructor &&
+ a.controller.control.params.loop &&
+ a.controller.control.loopFix({
+ ...S,
+ slideTo:
+ a.controller.control.params.slidesPerView === m.slidesPerView
+ ? t
+ : !1,
+ });
+ }
+ a.emit('loopFix');
+}
+function Tt() {
+ const s = this,
+ { params: e, slidesEl: t } = s;
+ if (!e.loop || (s.virtual && s.params.virtual.enabled)) return;
+ s.recalcSlides();
+ const i = [];
+ s.slides.forEach((n) => {
+ const r =
+ typeof n.swiperSlideIndex > 'u'
+ ? n.getAttribute('data-swiper-slide-index') * 1
+ : n.swiperSlideIndex;
+ i[r] = n;
+ }),
+ s.slides.forEach((n) => {
+ n.removeAttribute('data-swiper-slide-index');
+ }),
+ i.forEach((n) => {
+ t.append(n);
+ }),
+ s.recalcSlides(),
+ s.slideTo(s.realIndex, 0);
+}
+var xt = { loopCreate: St, loopFix: yt, loopDestroy: Tt };
+function Et(s) {
+ const e = this;
+ if (
+ !e.params.simulateTouch ||
+ (e.params.watchOverflow && e.isLocked) ||
+ e.params.cssMode
+ )
+ return;
+ const t = e.params.touchEventsTarget === 'container' ? e.el : e.wrapperEl;
+ e.isElement && (e.__preventObserver__ = !0),
+ (t.style.cursor = 'move'),
+ (t.style.cursor = s ? 'grabbing' : 'grab'),
+ e.isElement &&
+ requestAnimationFrame(() => {
+ e.__preventObserver__ = !1;
+ });
+}
+function Ct() {
+ const s = this;
+ (s.params.watchOverflow && s.isLocked) ||
+ s.params.cssMode ||
+ (s.isElement && (s.__preventObserver__ = !0),
+ (s[
+ s.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'
+ ].style.cursor = ''),
+ s.isElement &&
+ requestAnimationFrame(() => {
+ s.__preventObserver__ = !1;
+ }));
+}
+var Mt = { setGrabCursor: Et, unsetGrabCursor: Ct };
+function Pt(s, e) {
+ e === void 0 && (e = this);
+ function t(i) {
+ if (!i || i === R() || i === B()) return null;
+ i.assignedSlot && (i = i.assignedSlot);
+ const n = i.closest(s);
+ return !n && !i.getRootNode ? null : n || t(i.getRootNode().host);
+ }
+ return t(e);
+}
+function ge(s, e, t) {
+ const i = B(),
+ { params: n } = s,
+ r = n.edgeSwipeDetection,
+ o = n.edgeSwipeThreshold;
+ return r && (t <= o || t >= i.innerWidth - o)
+ ? r === 'prevent'
+ ? (e.preventDefault(), !0)
+ : !1
+ : !0;
+}
+function Lt(s) {
+ const e = this,
+ t = R();
+ let i = s;
+ i.originalEvent && (i = i.originalEvent);
+ const n = e.touchEventsData;
+ if (i.type === 'pointerdown') {
+ if (n.pointerId !== null && n.pointerId !== i.pointerId) return;
+ n.pointerId = i.pointerId;
+ } else
+ i.type === 'touchstart' &&
+ i.targetTouches.length === 1 &&
+ (n.touchId = i.targetTouches[0].identifier);
+ if (i.type === 'touchstart') {
+ ge(e, i, i.targetTouches[0].pageX);
+ return;
+ }
+ const { params: r, touches: o, enabled: l } = e;
+ if (
+ !l ||
+ (!r.simulateTouch && i.pointerType === 'mouse') ||
+ (e.animating && r.preventInteractionOnTransition)
+ )
+ return;
+ !e.animating && r.cssMode && r.loop && e.loopFix();
+ let a = i.target;
+ if (
+ (r.touchEventsTarget === 'wrapper' && !ke(a, e.wrapperEl)) ||
+ ('which' in i && i.which === 3) ||
+ ('button' in i && i.button > 0) ||
+ (n.isTouched && n.isMoved)
+ )
+ return;
+ const u = !!r.noSwipingClass && r.noSwipingClass !== '',
+ f = i.composedPath ? i.composedPath() : i.path;
+ u && i.target && i.target.shadowRoot && f && (a = f[0]);
+ const p = r.noSwipingSelector ? r.noSwipingSelector : `.${r.noSwipingClass}`,
+ g = !!(i.target && i.target.shadowRoot);
+ if (r.noSwiping && (g ? Pt(p, a) : a.closest(p))) {
+ e.allowClick = !0;
+ return;
+ }
+ if (r.swipeHandler && !a.closest(r.swipeHandler)) return;
+ (o.currentX = i.pageX), (o.currentY = i.pageY);
+ const m = o.currentX,
+ h = o.currentY;
+ if (!ge(e, i, m)) return;
+ Object.assign(n, {
+ isTouched: !0,
+ isMoved: !1,
+ allowTouchCallbacks: !0,
+ isScrolling: void 0,
+ startMoving: void 0,
+ }),
+ (o.startX = m),
+ (o.startY = h),
+ (n.touchStartTime = K()),
+ (e.allowClick = !0),
+ e.updateSize(),
+ (e.swipeDirection = void 0),
+ r.threshold > 0 && (n.allowThresholdMove = !1);
+ let v = !0;
+ a.matches(n.focusableElements) &&
+ ((v = !1), a.nodeName === 'SELECT' && (n.isTouched = !1)),
+ t.activeElement &&
+ t.activeElement.matches(n.focusableElements) &&
+ t.activeElement !== a &&
+ (i.pointerType === 'mouse' ||
+ (i.pointerType !== 'mouse' && !a.matches(n.focusableElements))) &&
+ t.activeElement.blur();
+ const E = v && e.allowTouchMove && r.touchStartPreventDefault;
+ (r.touchStartForcePreventDefault || E) &&
+ !a.isContentEditable &&
+ i.preventDefault(),
+ r.freeMode &&
+ r.freeMode.enabled &&
+ e.freeMode &&
+ e.animating &&
+ !r.cssMode &&
+ e.freeMode.onTouchStart(),
+ e.emit('touchStart', i);
+}
+function It(s) {
+ const e = R(),
+ t = this,
+ i = t.touchEventsData,
+ { params: n, touches: r, rtlTranslate: o, enabled: l } = t;
+ if (!l || (!n.simulateTouch && s.pointerType === 'mouse')) return;
+ let a = s;
+ if (
+ (a.originalEvent && (a = a.originalEvent),
+ a.type === 'pointermove' &&
+ (i.touchId !== null || a.pointerId !== i.pointerId))
+ )
+ return;
+ let u;
+ if (a.type === 'touchmove') {
+ if (
+ ((u = [...a.changedTouches].filter((L) => L.identifier === i.touchId)[0]),
+ !u || u.identifier !== i.touchId)
+ )
+ return;
+ } else u = a;
+ if (!i.isTouched) {
+ i.startMoving && i.isScrolling && t.emit('touchMoveOpposite', a);
+ return;
+ }
+ const f = u.pageX,
+ p = u.pageY;
+ if (a.preventedByNestedSwiper) {
+ (r.startX = f), (r.startY = p);
+ return;
+ }
+ if (!t.allowTouchMove) {
+ a.target.matches(i.focusableElements) || (t.allowClick = !1),
+ i.isTouched &&
+ (Object.assign(r, { startX: f, startY: p, currentX: f, currentY: p }),
+ (i.touchStartTime = K()));
+ return;
+ }
+ if (n.touchReleaseOnEdges && !n.loop) {
+ if (t.isVertical()) {
+ if (
+ (p < r.startY && t.translate <= t.maxTranslate()) ||
+ (p > r.startY && t.translate >= t.minTranslate())
+ ) {
+ (i.isTouched = !1), (i.isMoved = !1);
+ return;
+ }
+ } else if (
+ (f < r.startX && t.translate <= t.maxTranslate()) ||
+ (f > r.startX && t.translate >= t.minTranslate())
+ )
+ return;
+ }
+ if (
+ (e.activeElement &&
+ e.activeElement.matches(i.focusableElements) &&
+ e.activeElement !== a.target &&
+ a.pointerType !== 'mouse' &&
+ e.activeElement.blur(),
+ e.activeElement &&
+ a.target === e.activeElement &&
+ a.target.matches(i.focusableElements))
+ ) {
+ (i.isMoved = !0), (t.allowClick = !1);
+ return;
+ }
+ i.allowTouchCallbacks && t.emit('touchMove', a),
+ (r.previousX = r.currentX),
+ (r.previousY = r.currentY),
+ (r.currentX = f),
+ (r.currentY = p);
+ const g = r.currentX - r.startX,
+ m = r.currentY - r.startY;
+ if (t.params.threshold && Math.sqrt(g ** 2 + m ** 2) < t.params.threshold)
+ return;
+ if (typeof i.isScrolling > 'u') {
+ let L;
+ (t.isHorizontal() && r.currentY === r.startY) ||
+ (t.isVertical() && r.currentX === r.startX)
+ ? (i.isScrolling = !1)
+ : g * g + m * m >= 25 &&
+ ((L = (Math.atan2(Math.abs(m), Math.abs(g)) * 180) / Math.PI),
+ (i.isScrolling = t.isHorizontal()
+ ? L > n.touchAngle
+ : 90 - L > n.touchAngle));
+ }
+ if (
+ (i.isScrolling && t.emit('touchMoveOpposite', a),
+ typeof i.startMoving > 'u' &&
+ (r.currentX !== r.startX || r.currentY !== r.startY) &&
+ (i.startMoving = !0),
+ i.isScrolling ||
+ (a.type === 'touchmove' && i.preventTouchMoveFromPointerMove))
+ ) {
+ i.isTouched = !1;
+ return;
+ }
+ if (!i.startMoving) return;
+ (t.allowClick = !1),
+ !n.cssMode && a.cancelable && a.preventDefault(),
+ n.touchMoveStopPropagation && !n.nested && a.stopPropagation();
+ let h = t.isHorizontal() ? g : m,
+ v = t.isHorizontal() ? r.currentX - r.previousX : r.currentY - r.previousY;
+ n.oneWayMovement &&
+ ((h = Math.abs(h) * (o ? 1 : -1)), (v = Math.abs(v) * (o ? 1 : -1))),
+ (r.diff = h),
+ (h *= n.touchRatio),
+ o && ((h = -h), (v = -v));
+ const E = t.touchesDirection;
+ (t.swipeDirection = h > 0 ? 'prev' : 'next'),
+ (t.touchesDirection = v > 0 ? 'prev' : 'next');
+ const y = t.params.loop && !n.cssMode,
+ d =
+ (t.touchesDirection === 'next' && t.allowSlideNext) ||
+ (t.touchesDirection === 'prev' && t.allowSlidePrev);
+ if (!i.isMoved) {
+ if (
+ (y && d && t.loopFix({ direction: t.swipeDirection }),
+ (i.startTranslate = t.getTranslate()),
+ t.setTransition(0),
+ t.animating)
+ ) {
+ const L = new window.CustomEvent('transitionend', {
+ bubbles: !0,
+ cancelable: !0,
+ detail: { bySwiperTouchMove: !0 },
+ });
+ t.wrapperEl.dispatchEvent(L);
+ }
+ (i.allowMomentumBounce = !1),
+ n.grabCursor &&
+ (t.allowSlideNext === !0 || t.allowSlidePrev === !0) &&
+ t.setGrabCursor(!0),
+ t.emit('sliderFirstMove', a);
+ }
+ let c;
+ if (
+ (new Date().getTime(),
+ i.isMoved &&
+ i.allowThresholdMove &&
+ E !== t.touchesDirection &&
+ y &&
+ d &&
+ Math.abs(h) >= 1)
+ ) {
+ Object.assign(r, {
+ startX: f,
+ startY: p,
+ currentX: f,
+ currentY: p,
+ startTranslate: i.currentTranslate,
+ }),
+ (i.loopSwapReset = !0),
+ (i.startTranslate = i.currentTranslate);
+ return;
+ }
+ t.emit('sliderMove', a),
+ (i.isMoved = !0),
+ (i.currentTranslate = h + i.startTranslate);
+ let w = !0,
+ b = n.resistanceRatio;
+ if (
+ (n.touchReleaseOnEdges && (b = 0),
+ h > 0
+ ? (y &&
+ d &&
+ !c &&
+ i.allowThresholdMove &&
+ i.currentTranslate >
+ (n.centeredSlides
+ ? t.minTranslate() -
+ t.slidesSizesGrid[t.activeIndex + 1] -
+ (n.slidesPerView !== 'auto' &&
+ t.slides.length - n.slidesPerView >= 2
+ ? t.slidesSizesGrid[t.activeIndex + 1] + t.params.spaceBetween
+ : 0) -
+ t.params.spaceBetween
+ : t.minTranslate()) &&
+ t.loopFix({
+ direction: 'prev',
+ setTranslate: !0,
+ activeSlideIndex: 0,
+ }),
+ i.currentTranslate > t.minTranslate() &&
+ ((w = !1),
+ n.resistance &&
+ (i.currentTranslate =
+ t.minTranslate() -
+ 1 +
+ (-t.minTranslate() + i.startTranslate + h) ** b)))
+ : h < 0 &&
+ (y &&
+ d &&
+ !c &&
+ i.allowThresholdMove &&
+ i.currentTranslate <
+ (n.centeredSlides
+ ? t.maxTranslate() +
+ t.slidesSizesGrid[t.slidesSizesGrid.length - 1] +
+ t.params.spaceBetween +
+ (n.slidesPerView !== 'auto' &&
+ t.slides.length - n.slidesPerView >= 2
+ ? t.slidesSizesGrid[t.slidesSizesGrid.length - 1] +
+ t.params.spaceBetween
+ : 0)
+ : t.maxTranslate()) &&
+ t.loopFix({
+ direction: 'next',
+ setTranslate: !0,
+ activeSlideIndex:
+ t.slides.length -
+ (n.slidesPerView === 'auto'
+ ? t.slidesPerViewDynamic()
+ : Math.ceil(parseFloat(n.slidesPerView, 10))),
+ }),
+ i.currentTranslate < t.maxTranslate() &&
+ ((w = !1),
+ n.resistance &&
+ (i.currentTranslate =
+ t.maxTranslate() +
+ 1 -
+ (t.maxTranslate() - i.startTranslate - h) ** b))),
+ w && (a.preventedByNestedSwiper = !0),
+ !t.allowSlideNext &&
+ t.swipeDirection === 'next' &&
+ i.currentTranslate < i.startTranslate &&
+ (i.currentTranslate = i.startTranslate),
+ !t.allowSlidePrev &&
+ t.swipeDirection === 'prev' &&
+ i.currentTranslate > i.startTranslate &&
+ (i.currentTranslate = i.startTranslate),
+ !t.allowSlidePrev &&
+ !t.allowSlideNext &&
+ (i.currentTranslate = i.startTranslate),
+ n.threshold > 0)
+ )
+ if (Math.abs(h) > n.threshold || i.allowThresholdMove) {
+ if (!i.allowThresholdMove) {
+ (i.allowThresholdMove = !0),
+ (r.startX = r.currentX),
+ (r.startY = r.currentY),
+ (i.currentTranslate = i.startTranslate),
+ (r.diff = t.isHorizontal()
+ ? r.currentX - r.startX
+ : r.currentY - r.startY);
+ return;
+ }
+ } else {
+ i.currentTranslate = i.startTranslate;
+ return;
+ }
+ !n.followFinger ||
+ n.cssMode ||
+ (((n.freeMode && n.freeMode.enabled && t.freeMode) ||
+ n.watchSlidesProgress) &&
+ (t.updateActiveIndex(), t.updateSlidesClasses()),
+ n.freeMode && n.freeMode.enabled && t.freeMode && t.freeMode.onTouchMove(),
+ t.updateProgress(i.currentTranslate),
+ t.setTranslate(i.currentTranslate));
+}
+function zt(s) {
+ const e = this,
+ t = e.touchEventsData;
+ let i = s;
+ i.originalEvent && (i = i.originalEvent);
+ let n;
+ if (i.type === 'touchend' || i.type === 'touchcancel') {
+ if (
+ ((n = [...i.changedTouches].filter((b) => b.identifier === t.touchId)[0]),
+ !n || n.identifier !== t.touchId)
+ )
+ return;
+ } else {
+ if (t.touchId !== null || i.pointerId !== t.pointerId) return;
+ n = i;
+ }
+ if (
+ ['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(
+ i.type,
+ ) &&
+ !(
+ ['pointercancel', 'contextmenu'].includes(i.type) &&
+ (e.browser.isSafari || e.browser.isWebView)
+ )
+ )
+ return;
+ (t.pointerId = null), (t.touchId = null);
+ const {
+ params: o,
+ touches: l,
+ rtlTranslate: a,
+ slidesGrid: u,
+ enabled: f,
+ } = e;
+ if (!f || (!o.simulateTouch && i.pointerType === 'mouse')) return;
+ if (
+ (t.allowTouchCallbacks && e.emit('touchEnd', i),
+ (t.allowTouchCallbacks = !1),
+ !t.isTouched)
+ ) {
+ t.isMoved && o.grabCursor && e.setGrabCursor(!1),
+ (t.isMoved = !1),
+ (t.startMoving = !1);
+ return;
+ }
+ o.grabCursor &&
+ t.isMoved &&
+ t.isTouched &&
+ (e.allowSlideNext === !0 || e.allowSlidePrev === !0) &&
+ e.setGrabCursor(!1);
+ const p = K(),
+ g = p - t.touchStartTime;
+ if (e.allowClick) {
+ const b = i.path || (i.composedPath && i.composedPath());
+ e.updateClickedSlide((b && b[0]) || i.target, b),
+ e.emit('tap click', i),
+ g < 300 &&
+ p - t.lastClickTime < 300 &&
+ e.emit('doubleTap doubleClick', i);
+ }
+ if (
+ ((t.lastClickTime = K()),
+ U(() => {
+ e.destroyed || (e.allowClick = !0);
+ }),
+ !t.isTouched ||
+ !t.isMoved ||
+ !e.swipeDirection ||
+ (l.diff === 0 && !t.loopSwapReset) ||
+ (t.currentTranslate === t.startTranslate && !t.loopSwapReset))
+ ) {
+ (t.isTouched = !1), (t.isMoved = !1), (t.startMoving = !1);
+ return;
+ }
+ (t.isTouched = !1), (t.isMoved = !1), (t.startMoving = !1);
+ let m;
+ if (
+ (o.followFinger
+ ? (m = a ? e.translate : -e.translate)
+ : (m = -t.currentTranslate),
+ o.cssMode)
+ )
+ return;
+ if (o.freeMode && o.freeMode.enabled) {
+ e.freeMode.onTouchEnd({ currentPos: m });
+ return;
+ }
+ const h = m >= -e.maxTranslate() && !e.params.loop;
+ let v = 0,
+ E = e.slidesSizesGrid[0];
+ for (
+ let b = 0;
+ b < u.length;
+ b += b < o.slidesPerGroupSkip ? 1 : o.slidesPerGroup
+ ) {
+ const L = b < o.slidesPerGroupSkip - 1 ? 1 : o.slidesPerGroup;
+ typeof u[b + L] < 'u'
+ ? (h || (m >= u[b] && m < u[b + L])) && ((v = b), (E = u[b + L] - u[b]))
+ : (h || m >= u[b]) && ((v = b), (E = u[u.length - 1] - u[u.length - 2]));
+ }
+ let y = null,
+ d = null;
+ o.rewind &&
+ (e.isBeginning
+ ? (d =
+ o.virtual && o.virtual.enabled && e.virtual
+ ? e.virtual.slides.length - 1
+ : e.slides.length - 1)
+ : e.isEnd && (y = 0));
+ const c = (m - u[v]) / E,
+ w = v < o.slidesPerGroupSkip - 1 ? 1 : o.slidesPerGroup;
+ if (g > o.longSwipesMs) {
+ if (!o.longSwipes) {
+ e.slideTo(e.activeIndex);
+ return;
+ }
+ e.swipeDirection === 'next' &&
+ (c >= o.longSwipesRatio
+ ? e.slideTo(o.rewind && e.isEnd ? y : v + w)
+ : e.slideTo(v)),
+ e.swipeDirection === 'prev' &&
+ (c > 1 - o.longSwipesRatio
+ ? e.slideTo(v + w)
+ : d !== null && c < 0 && Math.abs(c) > o.longSwipesRatio
+ ? e.slideTo(d)
+ : e.slideTo(v));
+ } else {
+ if (!o.shortSwipes) {
+ e.slideTo(e.activeIndex);
+ return;
+ }
+ e.navigation &&
+ (i.target === e.navigation.nextEl || i.target === e.navigation.prevEl)
+ ? i.target === e.navigation.nextEl
+ ? e.slideTo(v + w)
+ : e.slideTo(v)
+ : (e.swipeDirection === 'next' && e.slideTo(y !== null ? y : v + w),
+ e.swipeDirection === 'prev' && e.slideTo(d !== null ? d : v));
+ }
+}
+function ve() {
+ const s = this,
+ { params: e, el: t } = s;
+ if (t && t.offsetWidth === 0) return;
+ e.breakpoints && s.setBreakpoint();
+ const { allowSlideNext: i, allowSlidePrev: n, snapGrid: r } = s,
+ o = s.virtual && s.params.virtual.enabled;
+ (s.allowSlideNext = !0),
+ (s.allowSlidePrev = !0),
+ s.updateSize(),
+ s.updateSlides(),
+ s.updateSlidesClasses();
+ const l = o && e.loop;
+ (e.slidesPerView === 'auto' || e.slidesPerView > 1) &&
+ s.isEnd &&
+ !s.isBeginning &&
+ !s.params.centeredSlides &&
+ !l
+ ? s.slideTo(s.slides.length - 1, 0, !1, !0)
+ : s.params.loop && !o
+ ? s.slideToLoop(s.realIndex, 0, !1, !0)
+ : s.slideTo(s.activeIndex, 0, !1, !0),
+ s.autoplay &&
+ s.autoplay.running &&
+ s.autoplay.paused &&
+ (clearTimeout(s.autoplay.resizeTimeout),
+ (s.autoplay.resizeTimeout = setTimeout(() => {
+ s.autoplay &&
+ s.autoplay.running &&
+ s.autoplay.paused &&
+ s.autoplay.resume();
+ }, 500))),
+ (s.allowSlidePrev = n),
+ (s.allowSlideNext = i),
+ s.params.watchOverflow && r !== s.snapGrid && s.checkOverflow();
+}
+function Ot(s) {
+ const e = this;
+ e.enabled &&
+ (e.allowClick ||
+ (e.params.preventClicks && s.preventDefault(),
+ e.params.preventClicksPropagation &&
+ e.animating &&
+ (s.stopPropagation(), s.stopImmediatePropagation())));
+}
+function At() {
+ const s = this,
+ { wrapperEl: e, rtlTranslate: t, enabled: i } = s;
+ if (!i) return;
+ (s.previousTranslate = s.translate),
+ s.isHorizontal()
+ ? (s.translate = -e.scrollLeft)
+ : (s.translate = -e.scrollTop),
+ s.translate === 0 && (s.translate = 0),
+ s.updateActiveIndex(),
+ s.updateSlidesClasses();
+ let n;
+ const r = s.maxTranslate() - s.minTranslate();
+ r === 0 ? (n = 0) : (n = (s.translate - s.minTranslate()) / r),
+ n !== s.progress && s.updateProgress(t ? -s.translate : s.translate),
+ s.emit('setTranslate', s.translate, !1);
+}
+function Dt(s) {
+ const e = this;
+ X(e, s.target),
+ !(
+ e.params.cssMode ||
+ (e.params.slidesPerView !== 'auto' && !e.params.autoHeight)
+ ) && e.update();
+}
+function kt() {
+ const s = this;
+ s.documentTouchHandlerProceeded ||
+ ((s.documentTouchHandlerProceeded = !0),
+ s.params.touchReleaseOnEdges && (s.el.style.touchAction = 'auto'));
+}
+const Me = (s, e) => {
+ const t = R(),
+ { params: i, el: n, wrapperEl: r, device: o } = s,
+ l = !!i.nested,
+ a = e === 'on' ? 'addEventListener' : 'removeEventListener',
+ u = e;
+ !n ||
+ typeof n == 'string' ||
+ (t[a]('touchstart', s.onDocumentTouchStart, { passive: !1, capture: l }),
+ n[a]('touchstart', s.onTouchStart, { passive: !1 }),
+ n[a]('pointerdown', s.onTouchStart, { passive: !1 }),
+ t[a]('touchmove', s.onTouchMove, { passive: !1, capture: l }),
+ t[a]('pointermove', s.onTouchMove, { passive: !1, capture: l }),
+ t[a]('touchend', s.onTouchEnd, { passive: !0 }),
+ t[a]('pointerup', s.onTouchEnd, { passive: !0 }),
+ t[a]('pointercancel', s.onTouchEnd, { passive: !0 }),
+ t[a]('touchcancel', s.onTouchEnd, { passive: !0 }),
+ t[a]('pointerout', s.onTouchEnd, { passive: !0 }),
+ t[a]('pointerleave', s.onTouchEnd, { passive: !0 }),
+ t[a]('contextmenu', s.onTouchEnd, { passive: !0 }),
+ (i.preventClicks || i.preventClicksPropagation) &&
+ n[a]('click', s.onClick, !0),
+ i.cssMode && r[a]('scroll', s.onScroll),
+ i.updateOnWindowResize
+ ? s[u](
+ o.ios || o.android
+ ? 'resize orientationchange observerUpdate'
+ : 'resize observerUpdate',
+ ve,
+ !0,
+ )
+ : s[u]('observerUpdate', ve, !0),
+ n[a]('load', s.onLoad, { capture: !0 }));
+};
+function Gt() {
+ const s = this,
+ { params: e } = s;
+ (s.onTouchStart = Lt.bind(s)),
+ (s.onTouchMove = It.bind(s)),
+ (s.onTouchEnd = zt.bind(s)),
+ (s.onDocumentTouchStart = kt.bind(s)),
+ e.cssMode && (s.onScroll = At.bind(s)),
+ (s.onClick = Ot.bind(s)),
+ (s.onLoad = Dt.bind(s)),
+ Me(s, 'on');
+}
+function Bt() {
+ Me(this, 'off');
+}
+var $t = { attachEvents: Gt, detachEvents: Bt };
+const we = (s, e) => s.grid && e.grid && e.grid.rows > 1;
+function Vt() {
+ const s = this,
+ { realIndex: e, initialized: t, params: i, el: n } = s,
+ r = i.breakpoints;
+ if (!r || (r && Object.keys(r).length === 0)) return;
+ const o = s.getBreakpoint(r, s.params.breakpointsBase, s.el);
+ if (!o || s.currentBreakpoint === o) return;
+ const a = (o in r ? r[o] : void 0) || s.originalParams,
+ u = we(s, i),
+ f = we(s, a),
+ p = s.params.grabCursor,
+ g = a.grabCursor,
+ m = i.enabled;
+ u && !f
+ ? (n.classList.remove(
+ `${i.containerModifierClass}grid`,
+ `${i.containerModifierClass}grid-column`,
+ ),
+ s.emitContainerClasses())
+ : !u &&
+ f &&
+ (n.classList.add(`${i.containerModifierClass}grid`),
+ ((a.grid.fill && a.grid.fill === 'column') ||
+ (!a.grid.fill && i.grid.fill === 'column')) &&
+ n.classList.add(`${i.containerModifierClass}grid-column`),
+ s.emitContainerClasses()),
+ p && !g ? s.unsetGrabCursor() : !p && g && s.setGrabCursor(),
+ ['navigation', 'pagination', 'scrollbar'].forEach((c) => {
+ if (typeof a[c] > 'u') return;
+ const w = i[c] && i[c].enabled,
+ b = a[c] && a[c].enabled;
+ w && !b && s[c].disable(), !w && b && s[c].enable();
+ });
+ const h = a.direction && a.direction !== i.direction,
+ v = i.loop && (a.slidesPerView !== i.slidesPerView || h),
+ E = i.loop;
+ h && t && s.changeDirection(), $(s.params, a);
+ const y = s.params.enabled,
+ d = s.params.loop;
+ Object.assign(s, {
+ allowTouchMove: s.params.allowTouchMove,
+ allowSlideNext: s.params.allowSlideNext,
+ allowSlidePrev: s.params.allowSlidePrev,
+ }),
+ m && !y ? s.disable() : !m && y && s.enable(),
+ (s.currentBreakpoint = o),
+ s.emit('_beforeBreakpoint', a),
+ t &&
+ (v
+ ? (s.loopDestroy(), s.loopCreate(e), s.updateSlides())
+ : !E && d
+ ? (s.loopCreate(e), s.updateSlides())
+ : E && !d && s.loopDestroy()),
+ s.emit('breakpoint', a);
+}
+function Ft(s, e, t) {
+ if ((e === void 0 && (e = 'window'), !s || (e === 'container' && !t))) return;
+ let i = !1;
+ const n = B(),
+ r = e === 'window' ? n.innerHeight : t.clientHeight,
+ o = Object.keys(s).map((l) => {
+ if (typeof l == 'string' && l.indexOf('@') === 0) {
+ const a = parseFloat(l.substr(1));
+ return { value: r * a, point: l };
+ }
+ return { value: l, point: l };
+ });
+ o.sort((l, a) => parseInt(l.value, 10) - parseInt(a.value, 10));
+ for (let l = 0; l < o.length; l += 1) {
+ const { point: a, value: u } = o[l];
+ e === 'window'
+ ? n.matchMedia(`(min-width: ${u}px)`).matches && (i = a)
+ : u <= t.clientWidth && (i = a);
+ }
+ return i || 'max';
+}
+var Ht = { setBreakpoint: Vt, getBreakpoint: Ft };
+function Nt(s, e) {
+ const t = [];
+ return (
+ s.forEach((i) => {
+ typeof i == 'object'
+ ? Object.keys(i).forEach((n) => {
+ i[n] && t.push(e + n);
+ })
+ : typeof i == 'string' && t.push(e + i);
+ }),
+ t
+ );
+}
+function _t() {
+ const s = this,
+ { classNames: e, params: t, rtl: i, el: n, device: r } = s,
+ o = Nt(
+ [
+ 'initialized',
+ t.direction,
+ { 'free-mode': s.params.freeMode && t.freeMode.enabled },
+ { autoheight: t.autoHeight },
+ { rtl: i },
+ { grid: t.grid && t.grid.rows > 1 },
+ {
+ 'grid-column': t.grid && t.grid.rows > 1 && t.grid.fill === 'column',
+ },
+ { android: r.android },
+ { ios: r.ios },
+ { 'css-mode': t.cssMode },
+ { centered: t.cssMode && t.centeredSlides },
+ { 'watch-progress': t.watchSlidesProgress },
+ ],
+ t.containerModifierClass,
+ );
+ e.push(...o), n.classList.add(...e), s.emitContainerClasses();
+}
+function Rt() {
+ const s = this,
+ { el: e, classNames: t } = s;
+ !e ||
+ typeof e == 'string' ||
+ (e.classList.remove(...t), s.emitContainerClasses());
+}
+var Wt = { addClasses: _t, removeClasses: Rt };
+function qt() {
+ const s = this,
+ { isLocked: e, params: t } = s,
+ { slidesOffsetBefore: i } = t;
+ if (i) {
+ const n = s.slides.length - 1,
+ r = s.slidesGrid[n] + s.slidesSizesGrid[n] + i * 2;
+ s.isLocked = s.size > r;
+ } else s.isLocked = s.snapGrid.length === 1;
+ t.allowSlideNext === !0 && (s.allowSlideNext = !s.isLocked),
+ t.allowSlidePrev === !0 && (s.allowSlidePrev = !s.isLocked),
+ e && e !== s.isLocked && (s.isEnd = !1),
+ e !== s.isLocked && s.emit(s.isLocked ? 'lock' : 'unlock');
+}
+var jt = { checkOverflow: qt },
+ be = {
+ init: !0,
+ direction: 'horizontal',
+ oneWayMovement: !1,
+ swiperElementNodeName: 'SWIPER-CONTAINER',
+ touchEventsTarget: 'wrapper',
+ initialSlide: 0,
+ speed: 300,
+ cssMode: !1,
+ updateOnWindowResize: !0,
+ resizeObserver: !0,
+ nested: !1,
+ createElements: !1,
+ eventsPrefix: 'swiper',
+ enabled: !0,
+ focusableElements: 'input, select, option, textarea, button, video, label',
+ width: null,
+ height: null,
+ preventInteractionOnTransition: !1,
+ userAgent: null,
+ url: null,
+ edgeSwipeDetection: !1,
+ edgeSwipeThreshold: 20,
+ autoHeight: !1,
+ setWrapperSize: !1,
+ virtualTranslate: !1,
+ effect: 'slide',
+ breakpoints: void 0,
+ breakpointsBase: 'window',
+ spaceBetween: 0,
+ slidesPerView: 1,
+ slidesPerGroup: 1,
+ slidesPerGroupSkip: 0,
+ slidesPerGroupAuto: !1,
+ centeredSlides: !1,
+ centeredSlidesBounds: !1,
+ slidesOffsetBefore: 0,
+ slidesOffsetAfter: 0,
+ normalizeSlideIndex: !0,
+ centerInsufficientSlides: !1,
+ watchOverflow: !0,
+ roundLengths: !1,
+ touchRatio: 1,
+ touchAngle: 45,
+ simulateTouch: !0,
+ shortSwipes: !0,
+ longSwipes: !0,
+ longSwipesRatio: 0.5,
+ longSwipesMs: 300,
+ followFinger: !0,
+ allowTouchMove: !0,
+ threshold: 5,
+ touchMoveStopPropagation: !1,
+ touchStartPreventDefault: !0,
+ touchStartForcePreventDefault: !1,
+ touchReleaseOnEdges: !1,
+ uniqueNavElements: !0,
+ resistance: !0,
+ resistanceRatio: 0.85,
+ watchSlidesProgress: !1,
+ grabCursor: !1,
+ preventClicks: !0,
+ preventClicksPropagation: !0,
+ slideToClickedSlide: !1,
+ loop: !1,
+ loopAddBlankSlides: !0,
+ loopAdditionalSlides: 0,
+ loopPreventsSliding: !0,
+ rewind: !1,
+ allowSlidePrev: !0,
+ allowSlideNext: !0,
+ swipeHandler: null,
+ noSwiping: !0,
+ noSwipingClass: 'swiper-no-swiping',
+ noSwipingSelector: null,
+ passiveListeners: !0,
+ maxBackfaceHiddenSlides: 10,
+ containerModifierClass: 'swiper-',
+ slideClass: 'swiper-slide',
+ slideBlankClass: 'swiper-slide-blank',
+ slideActiveClass: 'swiper-slide-active',
+ slideVisibleClass: 'swiper-slide-visible',
+ slideFullyVisibleClass: 'swiper-slide-fully-visible',
+ slideNextClass: 'swiper-slide-next',
+ slidePrevClass: 'swiper-slide-prev',
+ wrapperClass: 'swiper-wrapper',
+ lazyPreloaderClass: 'swiper-lazy-preloader',
+ lazyPreloadPrevNext: 0,
+ runCallbacksOnInit: !0,
+ _emitClasses: !1,
+ };
+function Yt(s, e) {
+ return function (i) {
+ i === void 0 && (i = {});
+ const n = Object.keys(i)[0],
+ r = i[n];
+ if (typeof r != 'object' || r === null) {
+ $(e, i);
+ return;
+ }
+ if (
+ (s[n] === !0 && (s[n] = { enabled: !0 }),
+ n === 'navigation' &&
+ s[n] &&
+ s[n].enabled &&
+ !s[n].prevEl &&
+ !s[n].nextEl &&
+ (s[n].auto = !0),
+ ['pagination', 'scrollbar'].indexOf(n) >= 0 &&
+ s[n] &&
+ s[n].enabled &&
+ !s[n].el &&
+ (s[n].auto = !0),
+ !(n in s && 'enabled' in r))
+ ) {
+ $(e, i);
+ return;
+ }
+ typeof s[n] == 'object' && !('enabled' in s[n]) && (s[n].enabled = !0),
+ s[n] || (s[n] = { enabled: !1 }),
+ $(e, i);
+ };
+}
+const re = {
+ eventsEmitter: We,
+ update: tt,
+ translate: lt,
+ transition: ft,
+ slide: bt,
+ loop: xt,
+ grabCursor: Mt,
+ events: $t,
+ breakpoints: Ht,
+ checkOverflow: jt,
+ classes: Wt,
+ },
+ ne = {};
+class G {
+ constructor() {
+ let e, t;
+ for (var i = arguments.length, n = new Array(i), r = 0; r < i; r++)
+ n[r] = arguments[r];
+ n.length === 1 &&
+ n[0].constructor &&
+ Object.prototype.toString.call(n[0]).slice(8, -1) === 'Object'
+ ? (t = n[0])
+ : ([e, t] = n),
+ t || (t = {}),
+ (t = $({}, t)),
+ e && !t.el && (t.el = e);
+ const o = R();
+ if (
+ t.el &&
+ typeof t.el == 'string' &&
+ o.querySelectorAll(t.el).length > 1
+ ) {
+ const f = [];
+ return (
+ o.querySelectorAll(t.el).forEach((p) => {
+ const g = $({}, t, { el: p });
+ f.push(new G(g));
+ }),
+ f
+ );
+ }
+ const l = this;
+ (l.__swiper__ = !0),
+ (l.support = xe()),
+ (l.device = Ee({ userAgent: t.userAgent })),
+ (l.browser = Ne()),
+ (l.eventsListeners = {}),
+ (l.eventsAnyListeners = []),
+ (l.modules = [...l.__modules__]),
+ t.modules && Array.isArray(t.modules) && l.modules.push(...t.modules);
+ const a = {};
+ l.modules.forEach((f) => {
+ f({
+ params: t,
+ swiper: l,
+ extendParams: Yt(t, a),
+ on: l.on.bind(l),
+ once: l.once.bind(l),
+ off: l.off.bind(l),
+ emit: l.emit.bind(l),
+ });
+ });
+ const u = $({}, be, a);
+ return (
+ (l.params = $({}, u, ne, t)),
+ (l.originalParams = $({}, l.params)),
+ (l.passedParams = $({}, t)),
+ l.params &&
+ l.params.on &&
+ Object.keys(l.params.on).forEach((f) => {
+ l.on(f, l.params.on[f]);
+ }),
+ l.params && l.params.onAny && l.onAny(l.params.onAny),
+ Object.assign(l, {
+ enabled: l.params.enabled,
+ el: e,
+ classNames: [],
+ slides: [],
+ slidesGrid: [],
+ snapGrid: [],
+ slidesSizesGrid: [],
+ isHorizontal() {
+ return l.params.direction === 'horizontal';
+ },
+ isVertical() {
+ return l.params.direction === 'vertical';
+ },
+ activeIndex: 0,
+ realIndex: 0,
+ isBeginning: !0,
+ isEnd: !1,
+ translate: 0,
+ previousTranslate: 0,
+ progress: 0,
+ velocity: 0,
+ animating: !1,
+ cssOverflowAdjustment() {
+ return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;
+ },
+ allowSlideNext: l.params.allowSlideNext,
+ allowSlidePrev: l.params.allowSlidePrev,
+ touchEventsData: {
+ isTouched: void 0,
+ isMoved: void 0,
+ allowTouchCallbacks: void 0,
+ touchStartTime: void 0,
+ isScrolling: void 0,
+ currentTranslate: void 0,
+ startTranslate: void 0,
+ allowThresholdMove: void 0,
+ focusableElements: l.params.focusableElements,
+ lastClickTime: 0,
+ clickTimeout: void 0,
+ velocities: [],
+ allowMomentumBounce: void 0,
+ startMoving: void 0,
+ pointerId: null,
+ touchId: null,
+ },
+ allowClick: !0,
+ allowTouchMove: l.params.allowTouchMove,
+ touches: { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 },
+ imagesToLoad: [],
+ imagesLoaded: 0,
+ }),
+ l.emit('_swiper'),
+ l.params.init && l.init(),
+ l
+ );
+ }
+ getDirectionLabel(e) {
+ return this.isHorizontal()
+ ? e
+ : {
+ width: 'height',
+ 'margin-top': 'margin-left',
+ 'margin-bottom ': 'margin-right',
+ 'margin-left': 'margin-top',
+ 'margin-right': 'margin-bottom',
+ 'padding-left': 'padding-top',
+ 'padding-right': 'padding-bottom',
+ marginRight: 'marginBottom',
+ }[e];
+ }
+ getSlideIndex(e) {
+ const { slidesEl: t, params: i } = this,
+ n = H(t, `.${i.slideClass}, swiper-slide`),
+ r = Q(n[0]);
+ return Q(e) - r;
+ }
+ getSlideIndexByData(e) {
+ return this.getSlideIndex(
+ this.slides.filter(
+ (t) => t.getAttribute('data-swiper-slide-index') * 1 === e,
+ )[0],
+ );
+ }
+ recalcSlides() {
+ const e = this,
+ { slidesEl: t, params: i } = e;
+ e.slides = H(t, `.${i.slideClass}, swiper-slide`);
+ }
+ enable() {
+ const e = this;
+ e.enabled ||
+ ((e.enabled = !0),
+ e.params.grabCursor && e.setGrabCursor(),
+ e.emit('enable'));
+ }
+ disable() {
+ const e = this;
+ e.enabled &&
+ ((e.enabled = !1),
+ e.params.grabCursor && e.unsetGrabCursor(),
+ e.emit('disable'));
+ }
+ setProgress(e, t) {
+ const i = this;
+ e = Math.min(Math.max(e, 0), 1);
+ const n = i.minTranslate(),
+ o = (i.maxTranslate() - n) * e + n;
+ i.translateTo(o, typeof t > 'u' ? 0 : t),
+ i.updateActiveIndex(),
+ i.updateSlidesClasses();
+ }
+ emitContainerClasses() {
+ const e = this;
+ if (!e.params._emitClasses || !e.el) return;
+ const t = e.el.className
+ .split(' ')
+ .filter(
+ (i) =>
+ i.indexOf('swiper') === 0 ||
+ i.indexOf(e.params.containerModifierClass) === 0,
+ );
+ e.emit('_containerClasses', t.join(' '));
+ }
+ getSlideClasses(e) {
+ const t = this;
+ return t.destroyed
+ ? ''
+ : e.className
+ .split(' ')
+ .filter(
+ (i) =>
+ i.indexOf('swiper-slide') === 0 ||
+ i.indexOf(t.params.slideClass) === 0,
+ )
+ .join(' ');
+ }
+ emitSlidesClasses() {
+ const e = this;
+ if (!e.params._emitClasses || !e.el) return;
+ const t = [];
+ e.slides.forEach((i) => {
+ const n = e.getSlideClasses(i);
+ t.push({ slideEl: i, classNames: n }), e.emit('_slideClass', i, n);
+ }),
+ e.emit('_slideClasses', t);
+ }
+ slidesPerViewDynamic(e, t) {
+ e === void 0 && (e = 'current'), t === void 0 && (t = !1);
+ const i = this,
+ {
+ params: n,
+ slides: r,
+ slidesGrid: o,
+ slidesSizesGrid: l,
+ size: a,
+ activeIndex: u,
+ } = i;
+ let f = 1;
+ if (typeof n.slidesPerView == 'number') return n.slidesPerView;
+ if (n.centeredSlides) {
+ let p = r[u] ? Math.ceil(r[u].swiperSlideSize) : 0,
+ g;
+ for (let m = u + 1; m < r.length; m += 1)
+ r[m] &&
+ !g &&
+ ((p += Math.ceil(r[m].swiperSlideSize)), (f += 1), p > a && (g = !0));
+ for (let m = u - 1; m >= 0; m -= 1)
+ r[m] &&
+ !g &&
+ ((p += r[m].swiperSlideSize), (f += 1), p > a && (g = !0));
+ } else if (e === 'current')
+ for (let p = u + 1; p < r.length; p += 1)
+ (t ? o[p] + l[p] - o[u] < a : o[p] - o[u] < a) && (f += 1);
+ else for (let p = u - 1; p >= 0; p -= 1) o[u] - o[p] < a && (f += 1);
+ return f;
+ }
+ update() {
+ const e = this;
+ if (!e || e.destroyed) return;
+ const { snapGrid: t, params: i } = e;
+ i.breakpoints && e.setBreakpoint(),
+ [...e.el.querySelectorAll('[loading="lazy"]')].forEach((o) => {
+ o.complete && X(e, o);
+ }),
+ e.updateSize(),
+ e.updateSlides(),
+ e.updateProgress(),
+ e.updateSlidesClasses();
+ function n() {
+ const o = e.rtlTranslate ? e.translate * -1 : e.translate,
+ l = Math.min(Math.max(o, e.maxTranslate()), e.minTranslate());
+ e.setTranslate(l), e.updateActiveIndex(), e.updateSlidesClasses();
+ }
+ let r;
+ if (i.freeMode && i.freeMode.enabled && !i.cssMode)
+ n(), i.autoHeight && e.updateAutoHeight();
+ else {
+ if (
+ (i.slidesPerView === 'auto' || i.slidesPerView > 1) &&
+ e.isEnd &&
+ !i.centeredSlides
+ ) {
+ const o = e.virtual && i.virtual.enabled ? e.virtual.slides : e.slides;
+ r = e.slideTo(o.length - 1, 0, !1, !0);
+ } else r = e.slideTo(e.activeIndex, 0, !1, !0);
+ r || n();
+ }
+ i.watchOverflow && t !== e.snapGrid && e.checkOverflow(), e.emit('update');
+ }
+ changeDirection(e, t) {
+ t === void 0 && (t = !0);
+ const i = this,
+ n = i.params.direction;
+ return (
+ e || (e = n === 'horizontal' ? 'vertical' : 'horizontal'),
+ e === n ||
+ (e !== 'horizontal' && e !== 'vertical') ||
+ (i.el.classList.remove(`${i.params.containerModifierClass}${n}`),
+ i.el.classList.add(`${i.params.containerModifierClass}${e}`),
+ i.emitContainerClasses(),
+ (i.params.direction = e),
+ i.slides.forEach((r) => {
+ e === 'vertical' ? (r.style.width = '') : (r.style.height = '');
+ }),
+ i.emit('changeDirection'),
+ t && i.update()),
+ i
+ );
+ }
+ changeLanguageDirection(e) {
+ const t = this;
+ (t.rtl && e === 'rtl') ||
+ (!t.rtl && e === 'ltr') ||
+ ((t.rtl = e === 'rtl'),
+ (t.rtlTranslate = t.params.direction === 'horizontal' && t.rtl),
+ t.rtl
+ ? (t.el.classList.add(`${t.params.containerModifierClass}rtl`),
+ (t.el.dir = 'rtl'))
+ : (t.el.classList.remove(`${t.params.containerModifierClass}rtl`),
+ (t.el.dir = 'ltr')),
+ t.update());
+ }
+ mount(e) {
+ const t = this;
+ if (t.mounted) return !0;
+ let i = e || t.params.el;
+ if ((typeof i == 'string' && (i = document.querySelector(i)), !i))
+ return !1;
+ (i.swiper = t),
+ i.parentNode &&
+ i.parentNode.host &&
+ i.parentNode.host.nodeName ===
+ t.params.swiperElementNodeName.toUpperCase() &&
+ (t.isElement = !0);
+ const n = () =>
+ `.${(t.params.wrapperClass || '').trim().split(' ').join('.')}`;
+ let o = (() =>
+ i && i.shadowRoot && i.shadowRoot.querySelector
+ ? i.shadowRoot.querySelector(n())
+ : H(i, n())[0])();
+ return (
+ !o &&
+ t.params.createElements &&
+ ((o = q('div', t.params.wrapperClass)),
+ i.append(o),
+ H(i, `.${t.params.slideClass}`).forEach((l) => {
+ o.append(l);
+ })),
+ Object.assign(t, {
+ el: i,
+ wrapperEl: o,
+ slidesEl:
+ t.isElement && !i.parentNode.host.slideSlots ? i.parentNode.host : o,
+ hostEl: t.isElement ? i.parentNode.host : i,
+ mounted: !0,
+ rtl: i.dir.toLowerCase() === 'rtl' || _(i, 'direction') === 'rtl',
+ rtlTranslate:
+ t.params.direction === 'horizontal' &&
+ (i.dir.toLowerCase() === 'rtl' || _(i, 'direction') === 'rtl'),
+ wrongRTL: _(o, 'display') === '-webkit-box',
+ }),
+ !0
+ );
+ }
+ init(e) {
+ const t = this;
+ if (t.initialized || t.mount(e) === !1) return t;
+ t.emit('beforeInit'),
+ t.params.breakpoints && t.setBreakpoint(),
+ t.addClasses(),
+ t.updateSize(),
+ t.updateSlides(),
+ t.params.watchOverflow && t.checkOverflow(),
+ t.params.grabCursor && t.enabled && t.setGrabCursor(),
+ t.params.loop && t.virtual && t.params.virtual.enabled
+ ? t.slideTo(
+ t.params.initialSlide + t.virtual.slidesBefore,
+ 0,
+ t.params.runCallbacksOnInit,
+ !1,
+ !0,
+ )
+ : t.slideTo(
+ t.params.initialSlide,
+ 0,
+ t.params.runCallbacksOnInit,
+ !1,
+ !0,
+ ),
+ t.params.loop && t.loopCreate(),
+ t.attachEvents();
+ const n = [...t.el.querySelectorAll('[loading="lazy"]')];
+ return (
+ t.isElement && n.push(...t.hostEl.querySelectorAll('[loading="lazy"]')),
+ n.forEach((r) => {
+ r.complete
+ ? X(t, r)
+ : r.addEventListener('load', (o) => {
+ X(t, o.target);
+ });
+ }),
+ le(t),
+ (t.initialized = !0),
+ le(t),
+ t.emit('init'),
+ t.emit('afterInit'),
+ t
+ );
+ }
+ destroy(e, t) {
+ e === void 0 && (e = !0), t === void 0 && (t = !0);
+ const i = this,
+ { params: n, el: r, wrapperEl: o, slides: l } = i;
+ return (
+ typeof i.params > 'u' ||
+ i.destroyed ||
+ (i.emit('beforeDestroy'),
+ (i.initialized = !1),
+ i.detachEvents(),
+ n.loop && i.loopDestroy(),
+ t &&
+ (i.removeClasses(),
+ r && typeof r != 'string' && r.removeAttribute('style'),
+ o && o.removeAttribute('style'),
+ l &&
+ l.length &&
+ l.forEach((a) => {
+ a.classList.remove(
+ n.slideVisibleClass,
+ n.slideFullyVisibleClass,
+ n.slideActiveClass,
+ n.slideNextClass,
+ n.slidePrevClass,
+ ),
+ a.removeAttribute('style'),
+ a.removeAttribute('data-swiper-slide-index');
+ })),
+ i.emit('destroy'),
+ Object.keys(i.eventsListeners).forEach((a) => {
+ i.off(a);
+ }),
+ e !== !1 &&
+ (i.el && typeof i.el != 'string' && (i.el.swiper = null), ze(i)),
+ (i.destroyed = !0)),
+ null
+ );
+ }
+ static extendDefaults(e) {
+ $(ne, e);
+ }
+ static get extendedDefaults() {
+ return ne;
+ }
+ static get defaults() {
+ return be;
+ }
+ static installModule(e) {
+ G.prototype.__modules__ || (G.prototype.__modules__ = []);
+ const t = G.prototype.__modules__;
+ typeof e == 'function' && t.indexOf(e) < 0 && t.push(e);
+ }
+ static use(e) {
+ return Array.isArray(e)
+ ? (e.forEach((t) => G.installModule(t)), G)
+ : (G.installModule(e), G);
+ }
+}
+Object.keys(re).forEach((s) => {
+ Object.keys(re[s]).forEach((e) => {
+ G.prototype[e] = re[s][e];
+ });
+});
+G.use([_e, Re]);
+function ue(s, e, t, i) {
+ return (
+ s.params.createElements &&
+ Object.keys(i).forEach((n) => {
+ if (!t[n] && t.auto === !0) {
+ let r = H(s.el, `.${i[n]}`)[0];
+ r || ((r = q('div', i[n])), (r.className = i[n]), s.el.append(r)),
+ (t[n] = r),
+ (e[n] = r);
+ }
+ }),
+ t
+ );
+}
+function oe(s) {
+ let { swiper: e, extendParams: t, on: i, emit: n } = s;
+ t({
+ navigation: {
+ nextEl: null,
+ prevEl: null,
+ hideOnClick: !1,
+ disabledClass: 'swiper-button-disabled',
+ hiddenClass: 'swiper-button-hidden',
+ lockClass: 'swiper-button-lock',
+ navigationDisabledClass: 'swiper-navigation-disabled',
+ },
+ }),
+ (e.navigation = { nextEl: null, prevEl: null });
+ function r(h) {
+ let v;
+ return h &&
+ typeof h == 'string' &&
+ e.isElement &&
+ ((v = e.el.querySelector(h) || e.hostEl.querySelector(h)), v)
+ ? v
+ : (h &&
+ (typeof h == 'string' && (v = [...document.querySelectorAll(h)]),
+ e.params.uniqueNavElements &&
+ typeof h == 'string' &&
+ v &&
+ v.length > 1 &&
+ e.el.querySelectorAll(h).length === 1
+ ? (v = e.el.querySelector(h))
+ : v && v.length === 1 && (v = v[0])),
+ h && !v ? h : v);
+ }
+ function o(h, v) {
+ const E = e.params.navigation;
+ (h = k(h)),
+ h.forEach((y) => {
+ y &&
+ (y.classList[v ? 'add' : 'remove'](...E.disabledClass.split(' ')),
+ y.tagName === 'BUTTON' && (y.disabled = v),
+ e.params.watchOverflow &&
+ e.enabled &&
+ y.classList[e.isLocked ? 'add' : 'remove'](E.lockClass));
+ });
+ }
+ function l() {
+ const { nextEl: h, prevEl: v } = e.navigation;
+ if (e.params.loop) {
+ o(v, !1), o(h, !1);
+ return;
+ }
+ o(v, e.isBeginning && !e.params.rewind), o(h, e.isEnd && !e.params.rewind);
+ }
+ function a(h) {
+ h.preventDefault(),
+ !(e.isBeginning && !e.params.loop && !e.params.rewind) &&
+ (e.slidePrev(), n('navigationPrev'));
+ }
+ function u(h) {
+ h.preventDefault(),
+ !(e.isEnd && !e.params.loop && !e.params.rewind) &&
+ (e.slideNext(), n('navigationNext'));
+ }
+ function f() {
+ const h = e.params.navigation;
+ if (
+ ((e.params.navigation = ue(
+ e,
+ e.originalParams.navigation,
+ e.params.navigation,
+ { nextEl: 'swiper-button-next', prevEl: 'swiper-button-prev' },
+ )),
+ !(h.nextEl || h.prevEl))
+ )
+ return;
+ let v = r(h.nextEl),
+ E = r(h.prevEl);
+ Object.assign(e.navigation, { nextEl: v, prevEl: E }),
+ (v = k(v)),
+ (E = k(E));
+ const y = (d, c) => {
+ d && d.addEventListener('click', c === 'next' ? u : a),
+ !e.enabled && d && d.classList.add(...h.lockClass.split(' '));
+ };
+ v.forEach((d) => y(d, 'next')), E.forEach((d) => y(d, 'prev'));
+ }
+ function p() {
+ let { nextEl: h, prevEl: v } = e.navigation;
+ (h = k(h)), (v = k(v));
+ const E = (y, d) => {
+ y.removeEventListener('click', d === 'next' ? u : a),
+ y.classList.remove(...e.params.navigation.disabledClass.split(' '));
+ };
+ h.forEach((y) => E(y, 'next')), v.forEach((y) => E(y, 'prev'));
+ }
+ i('init', () => {
+ e.params.navigation.enabled === !1 ? m() : (f(), l());
+ }),
+ i('toEdge fromEdge lock unlock', () => {
+ l();
+ }),
+ i('destroy', () => {
+ p();
+ }),
+ i('enable disable', () => {
+ let { nextEl: h, prevEl: v } = e.navigation;
+ if (((h = k(h)), (v = k(v)), e.enabled)) {
+ l();
+ return;
+ }
+ [...h, ...v]
+ .filter((E) => !!E)
+ .forEach((E) => E.classList.add(e.params.navigation.lockClass));
+ }),
+ i('click', (h, v) => {
+ let { nextEl: E, prevEl: y } = e.navigation;
+ (E = k(E)), (y = k(y));
+ const d = v.target;
+ let c = y.includes(d) || E.includes(d);
+ if (e.isElement && !c) {
+ const w = v.path || (v.composedPath && v.composedPath());
+ w && (c = w.find((b) => E.includes(b) || y.includes(b)));
+ }
+ if (e.params.navigation.hideOnClick && !c) {
+ if (
+ e.pagination &&
+ e.params.pagination &&
+ e.params.pagination.clickable &&
+ (e.pagination.el === d || e.pagination.el.contains(d))
+ )
+ return;
+ let w;
+ E.length
+ ? (w = E[0].classList.contains(e.params.navigation.hiddenClass))
+ : y.length &&
+ (w = y[0].classList.contains(e.params.navigation.hiddenClass)),
+ n(w === !0 ? 'navigationShow' : 'navigationHide'),
+ [...E, ...y]
+ .filter((b) => !!b)
+ .forEach((b) =>
+ b.classList.toggle(e.params.navigation.hiddenClass),
+ );
+ }
+ });
+ const g = () => {
+ e.el.classList.remove(
+ ...e.params.navigation.navigationDisabledClass.split(' '),
+ ),
+ f(),
+ l();
+ },
+ m = () => {
+ e.el.classList.add(
+ ...e.params.navigation.navigationDisabledClass.split(' '),
+ ),
+ p();
+ };
+ Object.assign(e.navigation, {
+ enable: g,
+ disable: m,
+ update: l,
+ init: f,
+ destroy: p,
+ });
+}
+function W(s) {
+ return (
+ s === void 0 && (s = ''),
+ `.${s
+ .trim()
+ .replace(/([\.:!+\/])/g, '\\$1')
+ .replace(/ /g, '.')}`
+ );
+}
+function de(s) {
+ let { swiper: e, extendParams: t, on: i, emit: n } = s;
+ const r = 'swiper-pagination';
+ t({
+ pagination: {
+ el: null,
+ bulletElement: 'span',
+ clickable: !1,
+ hideOnClick: !1,
+ renderBullet: null,
+ renderProgressbar: null,
+ renderFraction: null,
+ renderCustom: null,
+ progressbarOpposite: !1,
+ type: 'bullets',
+ dynamicBullets: !1,
+ dynamicMainBullets: 1,
+ formatFractionCurrent: (d) => d,
+ formatFractionTotal: (d) => d,
+ bulletClass: `${r}-bullet`,
+ bulletActiveClass: `${r}-bullet-active`,
+ modifierClass: `${r}-`,
+ currentClass: `${r}-current`,
+ totalClass: `${r}-total`,
+ hiddenClass: `${r}-hidden`,
+ progressbarFillClass: `${r}-progressbar-fill`,
+ progressbarOppositeClass: `${r}-progressbar-opposite`,
+ clickableClass: `${r}-clickable`,
+ lockClass: `${r}-lock`,
+ horizontalClass: `${r}-horizontal`,
+ verticalClass: `${r}-vertical`,
+ paginationDisabledClass: `${r}-disabled`,
+ },
+ }),
+ (e.pagination = { el: null, bullets: [] });
+ let o,
+ l = 0;
+ function a() {
+ return (
+ !e.params.pagination.el ||
+ !e.pagination.el ||
+ (Array.isArray(e.pagination.el) && e.pagination.el.length === 0)
+ );
+ }
+ function u(d, c) {
+ const { bulletActiveClass: w } = e.params.pagination;
+ d &&
+ ((d = d[`${c === 'prev' ? 'previous' : 'next'}ElementSibling`]),
+ d &&
+ (d.classList.add(`${w}-${c}`),
+ (d = d[`${c === 'prev' ? 'previous' : 'next'}ElementSibling`]),
+ d && d.classList.add(`${w}-${c}-${c}`)));
+ }
+ function f(d, c, w) {
+ if (((d = d % w), (c = c % w), c === d + 1)) return 'next';
+ if (c === d - 1) return 'previous';
+ }
+ function p(d) {
+ const c = d.target.closest(W(e.params.pagination.bulletClass));
+ if (!c) return;
+ d.preventDefault();
+ const w = Q(c) * e.params.slidesPerGroup;
+ if (e.params.loop) {
+ if (e.realIndex === w) return;
+ const b = f(e.realIndex, w, e.slides.length);
+ b === 'next'
+ ? e.slideNext()
+ : b === 'previous'
+ ? e.slidePrev()
+ : e.slideToLoop(w);
+ } else e.slideTo(w);
+ }
+ function g() {
+ const d = e.rtl,
+ c = e.params.pagination;
+ if (a()) return;
+ let w = e.pagination.el;
+ w = k(w);
+ let b, L;
+ const A =
+ e.virtual && e.params.virtual.enabled
+ ? e.virtual.slides.length
+ : e.slides.length,
+ z = e.params.loop
+ ? Math.ceil(A / e.params.slidesPerGroup)
+ : e.snapGrid.length;
+ if (
+ (e.params.loop
+ ? ((L = e.previousRealIndex || 0),
+ (b =
+ e.params.slidesPerGroup > 1
+ ? Math.floor(e.realIndex / e.params.slidesPerGroup)
+ : e.realIndex))
+ : typeof e.snapIndex < 'u'
+ ? ((b = e.snapIndex), (L = e.previousSnapIndex))
+ : ((L = e.previousIndex || 0), (b = e.activeIndex || 0)),
+ c.type === 'bullets' &&
+ e.pagination.bullets &&
+ e.pagination.bullets.length > 0)
+ ) {
+ const O = e.pagination.bullets;
+ let C, P, T;
+ if (
+ (c.dynamicBullets &&
+ ((o = ae(O[0], e.isHorizontal() ? 'width' : 'height', !0)),
+ w.forEach((S) => {
+ S.style[e.isHorizontal() ? 'width' : 'height'] = `${
+ o * (c.dynamicMainBullets + 4)
+ }px`;
+ }),
+ c.dynamicMainBullets > 1 &&
+ L !== void 0 &&
+ ((l += b - (L || 0)),
+ l > c.dynamicMainBullets - 1
+ ? (l = c.dynamicMainBullets - 1)
+ : l < 0 && (l = 0)),
+ (C = Math.max(b - l, 0)),
+ (P = C + (Math.min(O.length, c.dynamicMainBullets) - 1)),
+ (T = (P + C) / 2)),
+ O.forEach((S) => {
+ const x = [
+ ...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(
+ (M) => `${c.bulletActiveClass}${M}`,
+ ),
+ ]
+ .map((M) =>
+ typeof M == 'string' && M.includes(' ') ? M.split(' ') : M,
+ )
+ .flat();
+ S.classList.remove(...x);
+ }),
+ w.length > 1)
+ )
+ O.forEach((S) => {
+ const x = Q(S);
+ x === b
+ ? S.classList.add(...c.bulletActiveClass.split(' '))
+ : e.isElement && S.setAttribute('part', 'bullet'),
+ c.dynamicBullets &&
+ (x >= C &&
+ x <= P &&
+ S.classList.add(...`${c.bulletActiveClass}-main`.split(' ')),
+ x === C && u(S, 'prev'),
+ x === P && u(S, 'next'));
+ });
+ else {
+ const S = O[b];
+ if (
+ (S && S.classList.add(...c.bulletActiveClass.split(' ')),
+ e.isElement &&
+ O.forEach((x, M) => {
+ x.setAttribute('part', M === b ? 'bullet-active' : 'bullet');
+ }),
+ c.dynamicBullets)
+ ) {
+ const x = O[C],
+ M = O[P];
+ for (let I = C; I <= P; I += 1)
+ O[I] &&
+ O[I].classList.add(...`${c.bulletActiveClass}-main`.split(' '));
+ u(x, 'prev'), u(M, 'next');
+ }
+ }
+ if (c.dynamicBullets) {
+ const S = Math.min(O.length, c.dynamicMainBullets + 4),
+ x = (o * S - o) / 2 - T * o,
+ M = d ? 'right' : 'left';
+ O.forEach((I) => {
+ I.style[e.isHorizontal() ? M : 'top'] = `${x}px`;
+ });
+ }
+ }
+ w.forEach((O, C) => {
+ if (
+ (c.type === 'fraction' &&
+ (O.querySelectorAll(W(c.currentClass)).forEach((P) => {
+ P.textContent = c.formatFractionCurrent(b + 1);
+ }),
+ O.querySelectorAll(W(c.totalClass)).forEach((P) => {
+ P.textContent = c.formatFractionTotal(z);
+ })),
+ c.type === 'progressbar')
+ ) {
+ let P;
+ c.progressbarOpposite
+ ? (P = e.isHorizontal() ? 'vertical' : 'horizontal')
+ : (P = e.isHorizontal() ? 'horizontal' : 'vertical');
+ const T = (b + 1) / z;
+ let S = 1,
+ x = 1;
+ P === 'horizontal' ? (S = T) : (x = T),
+ O.querySelectorAll(W(c.progressbarFillClass)).forEach((M) => {
+ (M.style.transform = `translate3d(0,0,0) scaleX(${S}) scaleY(${x})`),
+ (M.style.transitionDuration = `${e.params.speed}ms`);
+ });
+ }
+ c.type === 'custom' && c.renderCustom
+ ? ((O.innerHTML = c.renderCustom(e, b + 1, z)),
+ C === 0 && n('paginationRender', O))
+ : (C === 0 && n('paginationRender', O), n('paginationUpdate', O)),
+ e.params.watchOverflow &&
+ e.enabled &&
+ O.classList[e.isLocked ? 'add' : 'remove'](c.lockClass);
+ });
+ }
+ function m() {
+ const d = e.params.pagination;
+ if (a()) return;
+ const c =
+ e.virtual && e.params.virtual.enabled
+ ? e.virtual.slides.length
+ : e.grid && e.params.grid.rows > 1
+ ? e.slides.length / Math.ceil(e.params.grid.rows)
+ : e.slides.length;
+ let w = e.pagination.el;
+ w = k(w);
+ let b = '';
+ if (d.type === 'bullets') {
+ let L = e.params.loop
+ ? Math.ceil(c / e.params.slidesPerGroup)
+ : e.snapGrid.length;
+ e.params.freeMode && e.params.freeMode.enabled && L > c && (L = c);
+ for (let A = 0; A < L; A += 1)
+ d.renderBullet
+ ? (b += d.renderBullet.call(e, A, d.bulletClass))
+ : (b += `<${d.bulletElement} ${
+ e.isElement ? 'part="bullet"' : ''
+ } class="${d.bulletClass}">${d.bulletElement}>`);
+ }
+ d.type === 'fraction' &&
+ (d.renderFraction
+ ? (b = d.renderFraction.call(e, d.currentClass, d.totalClass))
+ : (b = ` / `)),
+ d.type === 'progressbar' &&
+ (d.renderProgressbar
+ ? (b = d.renderProgressbar.call(e, d.progressbarFillClass))
+ : (b = ``)),
+ (e.pagination.bullets = []),
+ w.forEach((L) => {
+ d.type !== 'custom' && (L.innerHTML = b || ''),
+ d.type === 'bullets' &&
+ e.pagination.bullets.push(...L.querySelectorAll(W(d.bulletClass)));
+ }),
+ d.type !== 'custom' && n('paginationRender', w[0]);
+ }
+ function h() {
+ e.params.pagination = ue(
+ e,
+ e.originalParams.pagination,
+ e.params.pagination,
+ { el: 'swiper-pagination' },
+ );
+ const d = e.params.pagination;
+ if (!d.el) return;
+ let c;
+ typeof d.el == 'string' && e.isElement && (c = e.el.querySelector(d.el)),
+ !c &&
+ typeof d.el == 'string' &&
+ (c = [...document.querySelectorAll(d.el)]),
+ c || (c = d.el),
+ !(!c || c.length === 0) &&
+ (e.params.uniqueNavElements &&
+ typeof d.el == 'string' &&
+ Array.isArray(c) &&
+ c.length > 1 &&
+ ((c = [...e.el.querySelectorAll(d.el)]),
+ c.length > 1 &&
+ (c = c.filter((w) => Te(w, '.swiper')[0] === e.el)[0])),
+ Array.isArray(c) && c.length === 1 && (c = c[0]),
+ Object.assign(e.pagination, { el: c }),
+ (c = k(c)),
+ c.forEach((w) => {
+ d.type === 'bullets' &&
+ d.clickable &&
+ w.classList.add(...(d.clickableClass || '').split(' ')),
+ w.classList.add(d.modifierClass + d.type),
+ w.classList.add(
+ e.isHorizontal() ? d.horizontalClass : d.verticalClass,
+ ),
+ d.type === 'bullets' &&
+ d.dynamicBullets &&
+ (w.classList.add(`${d.modifierClass}${d.type}-dynamic`),
+ (l = 0),
+ d.dynamicMainBullets < 1 && (d.dynamicMainBullets = 1)),
+ d.type === 'progressbar' &&
+ d.progressbarOpposite &&
+ w.classList.add(d.progressbarOppositeClass),
+ d.clickable && w.addEventListener('click', p),
+ e.enabled || w.classList.add(d.lockClass);
+ }));
+ }
+ function v() {
+ const d = e.params.pagination;
+ if (a()) return;
+ let c = e.pagination.el;
+ c &&
+ ((c = k(c)),
+ c.forEach((w) => {
+ w.classList.remove(d.hiddenClass),
+ w.classList.remove(d.modifierClass + d.type),
+ w.classList.remove(
+ e.isHorizontal() ? d.horizontalClass : d.verticalClass,
+ ),
+ d.clickable &&
+ (w.classList.remove(...(d.clickableClass || '').split(' ')),
+ w.removeEventListener('click', p));
+ })),
+ e.pagination.bullets &&
+ e.pagination.bullets.forEach((w) =>
+ w.classList.remove(...d.bulletActiveClass.split(' ')),
+ );
+ }
+ i('changeDirection', () => {
+ if (!e.pagination || !e.pagination.el) return;
+ const d = e.params.pagination;
+ let { el: c } = e.pagination;
+ (c = k(c)),
+ c.forEach((w) => {
+ w.classList.remove(d.horizontalClass, d.verticalClass),
+ w.classList.add(
+ e.isHorizontal() ? d.horizontalClass : d.verticalClass,
+ );
+ });
+ }),
+ i('init', () => {
+ e.params.pagination.enabled === !1 ? y() : (h(), m(), g());
+ }),
+ i('activeIndexChange', () => {
+ typeof e.snapIndex > 'u' && g();
+ }),
+ i('snapIndexChange', () => {
+ g();
+ }),
+ i('snapGridLengthChange', () => {
+ m(), g();
+ }),
+ i('destroy', () => {
+ v();
+ }),
+ i('enable disable', () => {
+ let { el: d } = e.pagination;
+ d &&
+ ((d = k(d)),
+ d.forEach((c) =>
+ c.classList[e.enabled ? 'remove' : 'add'](
+ e.params.pagination.lockClass,
+ ),
+ ));
+ }),
+ i('lock unlock', () => {
+ g();
+ }),
+ i('click', (d, c) => {
+ const w = c.target,
+ b = k(e.pagination.el);
+ if (
+ e.params.pagination.el &&
+ e.params.pagination.hideOnClick &&
+ b &&
+ b.length > 0 &&
+ !w.classList.contains(e.params.pagination.bulletClass)
+ ) {
+ if (
+ e.navigation &&
+ ((e.navigation.nextEl && w === e.navigation.nextEl) ||
+ (e.navigation.prevEl && w === e.navigation.prevEl))
+ )
+ return;
+ const L = b[0].classList.contains(e.params.pagination.hiddenClass);
+ n(L === !0 ? 'paginationShow' : 'paginationHide'),
+ b.forEach((A) => A.classList.toggle(e.params.pagination.hiddenClass));
+ }
+ });
+ const E = () => {
+ e.el.classList.remove(e.params.pagination.paginationDisabledClass);
+ let { el: d } = e.pagination;
+ d &&
+ ((d = k(d)),
+ d.forEach((c) =>
+ c.classList.remove(e.params.pagination.paginationDisabledClass),
+ )),
+ h(),
+ m(),
+ g();
+ },
+ y = () => {
+ e.el.classList.add(e.params.pagination.paginationDisabledClass);
+ let { el: d } = e.pagination;
+ d &&
+ ((d = k(d)),
+ d.forEach((c) =>
+ c.classList.add(e.params.pagination.paginationDisabledClass),
+ )),
+ v();
+ };
+ Object.assign(e.pagination, {
+ enable: E,
+ disable: y,
+ render: m,
+ update: g,
+ init: h,
+ destroy: v,
+ });
+}
+function ce(s) {
+ let { swiper: e, extendParams: t, on: i, emit: n } = s;
+ const r = R();
+ let o = !1,
+ l = null,
+ a = null,
+ u,
+ f,
+ p,
+ g;
+ t({
+ scrollbar: {
+ el: null,
+ dragSize: 'auto',
+ hide: !1,
+ draggable: !1,
+ snapOnRelease: !0,
+ lockClass: 'swiper-scrollbar-lock',
+ dragClass: 'swiper-scrollbar-drag',
+ scrollbarDisabledClass: 'swiper-scrollbar-disabled',
+ horizontalClass: 'swiper-scrollbar-horizontal',
+ verticalClass: 'swiper-scrollbar-vertical',
+ },
+ }),
+ (e.scrollbar = { el: null, dragEl: null });
+ function m() {
+ if (!e.params.scrollbar.el || !e.scrollbar.el) return;
+ const { scrollbar: T, rtlTranslate: S } = e,
+ { dragEl: x, el: M } = T,
+ I = e.params.scrollbar,
+ V = e.params.loop ? e.progressLoop : e.progress;
+ let F = f,
+ D = (p - f) * V;
+ S
+ ? ((D = -D), D > 0 ? ((F = f - D), (D = 0)) : -D + f > p && (F = p + D))
+ : D < 0
+ ? ((F = f + D), (D = 0))
+ : D + f > p && (F = p - D),
+ e.isHorizontal()
+ ? ((x.style.transform = `translate3d(${D}px, 0, 0)`),
+ (x.style.width = `${F}px`))
+ : ((x.style.transform = `translate3d(0px, ${D}px, 0)`),
+ (x.style.height = `${F}px`)),
+ I.hide &&
+ (clearTimeout(l),
+ (M.style.opacity = 1),
+ (l = setTimeout(() => {
+ (M.style.opacity = 0), (M.style.transitionDuration = '400ms');
+ }, 1e3)));
+ }
+ function h(T) {
+ !e.params.scrollbar.el ||
+ !e.scrollbar.el ||
+ (e.scrollbar.dragEl.style.transitionDuration = `${T}ms`);
+ }
+ function v() {
+ if (!e.params.scrollbar.el || !e.scrollbar.el) return;
+ const { scrollbar: T } = e,
+ { dragEl: S, el: x } = T;
+ (S.style.width = ''),
+ (S.style.height = ''),
+ (p = e.isHorizontal() ? x.offsetWidth : x.offsetHeight),
+ (g =
+ e.size /
+ (e.virtualSize +
+ e.params.slidesOffsetBefore -
+ (e.params.centeredSlides ? e.snapGrid[0] : 0))),
+ e.params.scrollbar.dragSize === 'auto'
+ ? (f = p * g)
+ : (f = parseInt(e.params.scrollbar.dragSize, 10)),
+ e.isHorizontal()
+ ? (S.style.width = `${f}px`)
+ : (S.style.height = `${f}px`),
+ g >= 1 ? (x.style.display = 'none') : (x.style.display = ''),
+ e.params.scrollbar.hide && (x.style.opacity = 0),
+ e.params.watchOverflow &&
+ e.enabled &&
+ T.el.classList[e.isLocked ? 'add' : 'remove'](
+ e.params.scrollbar.lockClass,
+ );
+ }
+ function E(T) {
+ return e.isHorizontal() ? T.clientX : T.clientY;
+ }
+ function y(T) {
+ const { scrollbar: S, rtlTranslate: x } = e,
+ { el: M } = S;
+ let I;
+ (I =
+ (E(T) -
+ Ge(M)[e.isHorizontal() ? 'left' : 'top'] -
+ (u !== null ? u : f / 2)) /
+ (p - f)),
+ (I = Math.max(Math.min(I, 1), 0)),
+ x && (I = 1 - I);
+ const V = e.minTranslate() + (e.maxTranslate() - e.minTranslate()) * I;
+ e.updateProgress(V),
+ e.setTranslate(V),
+ e.updateActiveIndex(),
+ e.updateSlidesClasses();
+ }
+ function d(T) {
+ const S = e.params.scrollbar,
+ { scrollbar: x, wrapperEl: M } = e,
+ { el: I, dragEl: V } = x;
+ (o = !0),
+ (u =
+ T.target === V
+ ? E(T) -
+ T.target.getBoundingClientRect()[e.isHorizontal() ? 'left' : 'top']
+ : null),
+ T.preventDefault(),
+ T.stopPropagation(),
+ (M.style.transitionDuration = '100ms'),
+ (V.style.transitionDuration = '100ms'),
+ y(T),
+ clearTimeout(a),
+ (I.style.transitionDuration = '0ms'),
+ S.hide && (I.style.opacity = 1),
+ e.params.cssMode && (e.wrapperEl.style['scroll-snap-type'] = 'none'),
+ n('scrollbarDragStart', T);
+ }
+ function c(T) {
+ const { scrollbar: S, wrapperEl: x } = e,
+ { el: M, dragEl: I } = S;
+ o &&
+ (T.preventDefault && T.cancelable
+ ? T.preventDefault()
+ : (T.returnValue = !1),
+ y(T),
+ (x.style.transitionDuration = '0ms'),
+ (M.style.transitionDuration = '0ms'),
+ (I.style.transitionDuration = '0ms'),
+ n('scrollbarDragMove', T));
+ }
+ function w(T) {
+ const S = e.params.scrollbar,
+ { scrollbar: x, wrapperEl: M } = e,
+ { el: I } = x;
+ o &&
+ ((o = !1),
+ e.params.cssMode &&
+ ((e.wrapperEl.style['scroll-snap-type'] = ''),
+ (M.style.transitionDuration = '')),
+ S.hide &&
+ (clearTimeout(a),
+ (a = U(() => {
+ (I.style.opacity = 0), (I.style.transitionDuration = '400ms');
+ }, 1e3))),
+ n('scrollbarDragEnd', T),
+ S.snapOnRelease && e.slideToClosest());
+ }
+ function b(T) {
+ const { scrollbar: S, params: x } = e,
+ M = S.el;
+ if (!M) return;
+ const I = M,
+ V = x.passiveListeners ? { passive: !1, capture: !1 } : !1,
+ F = x.passiveListeners ? { passive: !0, capture: !1 } : !1;
+ if (!I) return;
+ const D = T === 'on' ? 'addEventListener' : 'removeEventListener';
+ I[D]('pointerdown', d, V),
+ r[D]('pointermove', c, V),
+ r[D]('pointerup', w, F);
+ }
+ function L() {
+ !e.params.scrollbar.el || !e.scrollbar.el || b('on');
+ }
+ function A() {
+ !e.params.scrollbar.el || !e.scrollbar.el || b('off');
+ }
+ function z() {
+ const { scrollbar: T, el: S } = e;
+ e.params.scrollbar = ue(e, e.originalParams.scrollbar, e.params.scrollbar, {
+ el: 'swiper-scrollbar',
+ });
+ const x = e.params.scrollbar;
+ if (!x.el) return;
+ let M;
+ if (
+ (typeof x.el == 'string' && e.isElement && (M = e.el.querySelector(x.el)),
+ !M && typeof x.el == 'string')
+ ) {
+ if (((M = r.querySelectorAll(x.el)), !M.length)) return;
+ } else M || (M = x.el);
+ e.params.uniqueNavElements &&
+ typeof x.el == 'string' &&
+ M.length > 1 &&
+ S.querySelectorAll(x.el).length === 1 &&
+ (M = S.querySelector(x.el)),
+ M.length > 0 && (M = M[0]),
+ M.classList.add(e.isHorizontal() ? x.horizontalClass : x.verticalClass);
+ let I;
+ M &&
+ ((I = M.querySelector(W(e.params.scrollbar.dragClass))),
+ I || ((I = q('div', e.params.scrollbar.dragClass)), M.append(I))),
+ Object.assign(T, { el: M, dragEl: I }),
+ x.draggable && L(),
+ M &&
+ M.classList[e.enabled ? 'remove' : 'add'](
+ ...N(e.params.scrollbar.lockClass),
+ );
+ }
+ function O() {
+ const T = e.params.scrollbar,
+ S = e.scrollbar.el;
+ S &&
+ S.classList.remove(
+ ...N(e.isHorizontal() ? T.horizontalClass : T.verticalClass),
+ ),
+ A();
+ }
+ i('changeDirection', () => {
+ if (!e.scrollbar || !e.scrollbar.el) return;
+ const T = e.params.scrollbar;
+ let { el: S } = e.scrollbar;
+ (S = k(S)),
+ S.forEach((x) => {
+ x.classList.remove(T.horizontalClass, T.verticalClass),
+ x.classList.add(
+ e.isHorizontal() ? T.horizontalClass : T.verticalClass,
+ );
+ });
+ }),
+ i('init', () => {
+ e.params.scrollbar.enabled === !1 ? P() : (z(), v(), m());
+ }),
+ i('update resize observerUpdate lock unlock changeDirection', () => {
+ v();
+ }),
+ i('setTranslate', () => {
+ m();
+ }),
+ i('setTransition', (T, S) => {
+ h(S);
+ }),
+ i('enable disable', () => {
+ const { el: T } = e.scrollbar;
+ T &&
+ T.classList[e.enabled ? 'remove' : 'add'](
+ ...N(e.params.scrollbar.lockClass),
+ );
+ }),
+ i('destroy', () => {
+ O();
+ });
+ const C = () => {
+ e.el.classList.remove(...N(e.params.scrollbar.scrollbarDisabledClass)),
+ e.scrollbar.el &&
+ e.scrollbar.el.classList.remove(
+ ...N(e.params.scrollbar.scrollbarDisabledClass),
+ ),
+ z(),
+ v(),
+ m();
+ },
+ P = () => {
+ e.el.classList.add(...N(e.params.scrollbar.scrollbarDisabledClass)),
+ e.scrollbar.el &&
+ e.scrollbar.el.classList.add(
+ ...N(e.params.scrollbar.scrollbarDisabledClass),
+ ),
+ O();
+ };
+ Object.assign(e.scrollbar, {
+ enable: C,
+ disable: P,
+ updateSize: v,
+ setTranslate: m,
+ init: z,
+ destroy: O,
+ });
+}
+class Xt extends window.HTMLElement {
+ constructor() {
+ super(),
+ (this.slider = new G('.swiper', {
+ modules: [oe, de, ce],
+ slidesPerView: 4,
+ autoplay: !1,
+ Scrollbar: !0,
+ spaceBetween: 10,
+ }));
+ }
+}
+class Ut extends window.HTMLElement {
+ constructor() {
+ super(),
+ console.log('test'),
+ (this.slider = new G('.menu.swiper', {
+ modules: [oe, de, ce],
+ slidesPerView: 4,
+ autoplay: !1,
+ scrollbar: { draggable: !0 },
+ spaceBetween: 10,
+ })),
+ (this.handleResize = this.handleResize.bind(this));
+ }
+ connectedCallback() {
+ window.addEventListener('resize', this.handleResize),
+ window.innerWidth > 768 ? this.destroySlider() : this.initSlider();
+ }
+ handleResize() {
+ window.innerWidth > 768 ? this.destroySlider() : this.initSlider();
+ }
+ initSlider() {
+ (this.slider = new G('.menu.swiper', {
+ modules: [oe, de, ce],
+ slidesPerView: 4,
+ autoplay: !1,
+ scrollbar: { draggable: !0 },
+ spaceBetween: 10,
+ })),
+ console.log('slider init', this.slider);
+ }
+ destroySlider() {
+ this.slider &&
+ (this.slider.destroy(!0, !0), console.log('this slider', this.slider));
+ }
+}
+window.customElements.define('swiper-slider', Xt);
+window.customElements.define('menu-swiper', Ut);
diff --git a/assets/mm-base-056c9d6d.css b/assets/mm-base-056c9d6d.css
new file mode 100644
index 0000000000..3317135bf4
--- /dev/null
+++ b/assets/mm-base-056c9d6d.css
@@ -0,0 +1,112 @@
+:root {
+ font-family: var(--font-body-family);
+ line-height: 1.5;
+ font-weight: var(--font-body-weight);
+ font-size: var(--font-size-base);
+ color: hsla(var(--color-accent) / 1);
+ background-color: hsla(var(--color-surface) / 1);
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-text-size-adjust: 100%;
+}
+.font-scale {
+ font-family: Rexlia, sans-serif;
+}
+body {
+ margin: 0;
+ padding: 0;
+ display: grid;
+ place-items: center;
+ min-height: 100vh;
+}
+.font-script {
+ font-family: var(--font-script-family);
+}
+main {
+ max-width: 100%;
+}
+a {
+ color: hsla(var(--color-accent) / 1);
+ text-decoration: none;
+}
+h1,
+h2,
+p {
+ margin: 0;
+ padding: 0;
+}
+h1 {
+ font-family: var(--font-heading-family);
+ font-size: calc(2.5 * var(--font-size-xl));
+ line-height: 1.1;
+}
+button {
+ border-radius: 0.5rem;
+ border: 1px solid transparent;
+ padding: 0.75rem 1.5rem;
+ font-size: var(--font-size-base);
+ font-weight: 700;
+ font-family: var(--font-body-family);
+ background-color: hsla(var(--color-contrast) / 1);
+ color: hsla(var(--color-primary) / 1);
+ cursor: pointer;
+ margin: 2rem 0;
+}
+button:focus,
+button:focus-visible {
+ outline: 4px auto hsla(var(--color-primary) / 1);
+}
+.container {
+ max-width: 800px;
+ margin: 0 auto;
+ padding: 0 2rem;
+}
+.mm-grid {
+ display: grid;
+}
+.swiper-scrollbar-drag {
+ display: block !important;
+ background: black;
+}
+.announcement-bar-section {
+ width: 100% !important;
+}
+.swiper-button-prev,
+.swiper-button-next {
+ display: block !important;
+}
+.section-header {
+ width: 100% !important;
+}
+.justify-between {
+ justify-content: space-between;
+}
+.shopify-section.shopify-section-group-footer-group {
+ width: 100% !important;
+}
+.swiper-button-next:after,
+.swiper-button-prev:after {
+ display: none;
+}
+.swiper-horizontal > .swiper-scrollbar,
+.swiper-scrollbar.swiper-scrollbar-horizontal {
+ z-index: 1 !important;
+}
+.swiper-button-prev,
+.swiper-button-next {
+ z-index: 1 !important;
+}
+.article-template__content .workshops .row {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+.article-template .page-width {
+ padding-left: 16px;
+ padding-right: 16px;
+}
+.overflow-clip {
+ overflow: clip;
+}
diff --git a/assets/mm-index-b9f6c250.js b/assets/mm-index-b9f6c250.js
new file mode 100644
index 0000000000..e53c522933
--- /dev/null
+++ b/assets/mm-index-b9f6c250.js
@@ -0,0 +1,10449 @@
+/* empty css */ var Yt = !1,
+ qt = !1,
+ we = [],
+ jt = -1;
+function Er(t) {
+ Tr(t);
+}
+function Tr(t) {
+ we.includes(t) || we.push(t), _r();
+}
+function Mr(t) {
+ let e = we.indexOf(t);
+ e !== -1 && e > jt && we.splice(e, 1);
+}
+function _r() {
+ !qt && !Yt && ((Yt = !0), queueMicrotask(Cr));
+}
+function Cr() {
+ (Yt = !1), (qt = !0);
+ for (let t = 0; t < we.length; t++) we[t](), (jt = t);
+ (we.length = 0), (jt = -1), (qt = !1);
+}
+var Ie,
+ Me,
+ Oe,
+ ns,
+ Wt = !0;
+function Pr(t) {
+ (Wt = !1), t(), (Wt = !0);
+}
+function Ar(t) {
+ (Ie = t.reactive),
+ (Oe = t.release),
+ (Me = (e) =>
+ t.effect(e, {
+ scheduler: (i) => {
+ Wt ? Er(i) : i();
+ },
+ })),
+ (ns = t.raw);
+}
+function Hi(t) {
+ Me = t;
+}
+function Lr(t) {
+ let e = () => {};
+ return [
+ (s) => {
+ let r = Me(s);
+ return (
+ t._x_effects ||
+ ((t._x_effects = new Set()),
+ (t._x_runEffects = () => {
+ t._x_effects.forEach((n) => n());
+ })),
+ t._x_effects.add(r),
+ (e = () => {
+ r !== void 0 && (t._x_effects.delete(r), Oe(r));
+ }),
+ r
+ );
+ },
+ () => {
+ e();
+ },
+ ];
+}
+function as(t, e) {
+ let i = !0,
+ s,
+ r = Me(() => {
+ let n = t();
+ JSON.stringify(n),
+ i
+ ? (s = n)
+ : queueMicrotask(() => {
+ e(n, s), (s = n);
+ }),
+ (i = !1);
+ });
+ return () => Oe(r);
+}
+var os = [],
+ ls = [],
+ ds = [];
+function Ir(t) {
+ ds.push(t);
+}
+function ui(t, e) {
+ typeof e == 'function'
+ ? (t._x_cleanups || (t._x_cleanups = []), t._x_cleanups.push(e))
+ : ((e = t), ls.push(e));
+}
+function cs(t) {
+ os.push(t);
+}
+function us(t, e, i) {
+ t._x_attributeCleanups || (t._x_attributeCleanups = {}),
+ t._x_attributeCleanups[e] || (t._x_attributeCleanups[e] = []),
+ t._x_attributeCleanups[e].push(i);
+}
+function fs(t, e) {
+ t._x_attributeCleanups &&
+ Object.entries(t._x_attributeCleanups).forEach(([i, s]) => {
+ (e === void 0 || e.includes(i)) &&
+ (s.forEach((r) => r()), delete t._x_attributeCleanups[i]);
+ });
+}
+function Or(t) {
+ var e, i;
+ for (
+ (e = t._x_effects) == null || e.forEach(Mr);
+ (i = t._x_cleanups) != null && i.length;
+
+ )
+ t._x_cleanups.pop()();
+}
+var fi = new MutationObserver(gi),
+ pi = !1;
+function mi() {
+ fi.observe(document, {
+ subtree: !0,
+ childList: !0,
+ attributes: !0,
+ attributeOldValue: !0,
+ }),
+ (pi = !0);
+}
+function ps() {
+ zr(), fi.disconnect(), (pi = !1);
+}
+var Be = [];
+function zr() {
+ let t = fi.takeRecords();
+ Be.push(() => t.length > 0 && gi(t));
+ let e = Be.length;
+ queueMicrotask(() => {
+ if (Be.length === e) for (; Be.length > 0; ) Be.shift()();
+ });
+}
+function Y(t) {
+ if (!pi) return t();
+ ps();
+ let e = t();
+ return mi(), e;
+}
+var hi = !1,
+ ut = [];
+function $r() {
+ hi = !0;
+}
+function Dr() {
+ (hi = !1), gi(ut), (ut = []);
+}
+function gi(t) {
+ if (hi) {
+ ut = ut.concat(t);
+ return;
+ }
+ let e = new Set(),
+ i = new Set(),
+ s = new Map(),
+ r = new Map();
+ for (let n = 0; n < t.length; n++)
+ if (
+ !t[n].target._x_ignoreMutationObserver &&
+ (t[n].type === 'childList' &&
+ (t[n].addedNodes.forEach((a) => a.nodeType === 1 && e.add(a)),
+ t[n].removedNodes.forEach((a) => a.nodeType === 1 && i.add(a))),
+ t[n].type === 'attributes')
+ ) {
+ let a = t[n].target,
+ l = t[n].attributeName,
+ o = t[n].oldValue,
+ f = () => {
+ s.has(a) || s.set(a, []),
+ s.get(a).push({ name: l, value: a.getAttribute(l) });
+ },
+ c = () => {
+ r.has(a) || r.set(a, []), r.get(a).push(l);
+ };
+ a.hasAttribute(l) && o === null
+ ? f()
+ : a.hasAttribute(l)
+ ? (c(), f())
+ : c();
+ }
+ r.forEach((n, a) => {
+ fs(a, n);
+ }),
+ s.forEach((n, a) => {
+ os.forEach((l) => l(a, n));
+ });
+ for (let n of i) e.has(n) || ls.forEach((a) => a(n));
+ e.forEach((n) => {
+ (n._x_ignoreSelf = !0), (n._x_ignore = !0);
+ });
+ for (let n of e)
+ i.has(n) ||
+ (n.isConnected &&
+ (delete n._x_ignoreSelf,
+ delete n._x_ignore,
+ ds.forEach((a) => a(n)),
+ (n._x_ignore = !0),
+ (n._x_ignoreSelf = !0)));
+ e.forEach((n) => {
+ delete n._x_ignoreSelf, delete n._x_ignore;
+ }),
+ (e = null),
+ (i = null),
+ (s = null),
+ (r = null);
+}
+function ms(t) {
+ return Ue(Pe(t));
+}
+function Ke(t, e, i) {
+ return (
+ (t._x_dataStack = [e, ...Pe(i || t)]),
+ () => {
+ t._x_dataStack = t._x_dataStack.filter((s) => s !== e);
+ }
+ );
+}
+function Pe(t) {
+ return t._x_dataStack
+ ? t._x_dataStack
+ : typeof ShadowRoot == 'function' && t instanceof ShadowRoot
+ ? Pe(t.host)
+ : t.parentNode
+ ? Pe(t.parentNode)
+ : [];
+}
+function Ue(t) {
+ return new Proxy({ objects: t }, kr);
+}
+var kr = {
+ ownKeys({ objects: t }) {
+ return Array.from(new Set(t.flatMap((e) => Object.keys(e))));
+ },
+ has({ objects: t }, e) {
+ return e == Symbol.unscopables
+ ? !1
+ : t.some(
+ (i) =>
+ Object.prototype.hasOwnProperty.call(i, e) || Reflect.has(i, e),
+ );
+ },
+ get({ objects: t }, e, i) {
+ return e == 'toJSON'
+ ? Rr
+ : Reflect.get(t.find((s) => Reflect.has(s, e)) || {}, e, i);
+ },
+ set({ objects: t }, e, i, s) {
+ const r =
+ t.find((a) => Object.prototype.hasOwnProperty.call(a, e)) ||
+ t[t.length - 1],
+ n = Object.getOwnPropertyDescriptor(r, e);
+ return n != null && n.set && n != null && n.get
+ ? n.set.call(s, i) || !0
+ : Reflect.set(r, e, i);
+ },
+};
+function Rr() {
+ return Reflect.ownKeys(this).reduce(
+ (e, i) => ((e[i] = Reflect.get(this, i)), e),
+ {},
+ );
+}
+function hs(t) {
+ let e = (s) => typeof s == 'object' && !Array.isArray(s) && s !== null,
+ i = (s, r = '') => {
+ Object.entries(Object.getOwnPropertyDescriptors(s)).forEach(
+ ([n, { value: a, enumerable: l }]) => {
+ if (
+ l === !1 ||
+ a === void 0 ||
+ (typeof a == 'object' && a !== null && a.__v_skip)
+ )
+ return;
+ let o = r === '' ? n : `${r}.${n}`;
+ typeof a == 'object' && a !== null && a._x_interceptor
+ ? (s[n] = a.initialize(t, o, n))
+ : e(a) && a !== s && !(a instanceof Element) && i(a, o);
+ },
+ );
+ };
+ return i(t);
+}
+function gs(t, e = () => {}) {
+ let i = {
+ initialValue: void 0,
+ _x_interceptor: !0,
+ initialize(s, r, n) {
+ return t(
+ this.initialValue,
+ () => Br(s, r),
+ (a) => Kt(s, r, a),
+ r,
+ n,
+ );
+ },
+ };
+ return (
+ e(i),
+ (s) => {
+ if (typeof s == 'object' && s !== null && s._x_interceptor) {
+ let r = i.initialize.bind(i);
+ i.initialize = (n, a, l) => {
+ let o = s.initialize(n, a, l);
+ return (i.initialValue = o), r(n, a, l);
+ };
+ } else i.initialValue = s;
+ return i;
+ }
+ );
+}
+function Br(t, e) {
+ return e.split('.').reduce((i, s) => i[s], t);
+}
+function Kt(t, e, i) {
+ if ((typeof e == 'string' && (e = e.split('.')), e.length === 1)) t[e[0]] = i;
+ else {
+ if (e.length === 0) throw error;
+ return t[e[0]] || (t[e[0]] = {}), Kt(t[e[0]], e.slice(1), i);
+ }
+}
+var vs = {};
+function re(t, e) {
+ vs[t] = e;
+}
+function Ut(t, e) {
+ let i = Hr(e);
+ return (
+ Object.entries(vs).forEach(([s, r]) => {
+ Object.defineProperty(t, `$${s}`, {
+ get() {
+ return r(e, i);
+ },
+ enumerable: !1,
+ });
+ }),
+ t
+ );
+}
+function Hr(t) {
+ let [e, i] = Es(t),
+ s = { interceptor: gs, ...e };
+ return ui(t, i), s;
+}
+function Nr(t, e, i, ...s) {
+ try {
+ return i(...s);
+ } catch (r) {
+ je(r, t, e);
+ }
+}
+function je(t, e, i = void 0) {
+ (t = Object.assign(t ?? { message: 'No error message given.' }, {
+ el: e,
+ expression: i,
+ })),
+ console.warn(
+ `Alpine Expression Error: ${t.message}
+
+${
+ i
+ ? 'Expression: "' +
+ i +
+ `"
+
+`
+ : ''
+}`,
+ e,
+ ),
+ setTimeout(() => {
+ throw t;
+ }, 0);
+}
+var lt = !0;
+function ws(t) {
+ let e = lt;
+ lt = !1;
+ let i = t();
+ return (lt = e), i;
+}
+function ye(t, e, i = {}) {
+ let s;
+ return Z(t, e)((r) => (s = r), i), s;
+}
+function Z(...t) {
+ return ys(...t);
+}
+var ys = bs;
+function Gr(t) {
+ ys = t;
+}
+function bs(t, e) {
+ let i = {};
+ Ut(i, t);
+ let s = [i, ...Pe(t)],
+ r = typeof e == 'function' ? Fr(s, e) : Xr(s, e, t);
+ return Nr.bind(null, t, e, r);
+}
+function Fr(t, e) {
+ return (i = () => {}, { scope: s = {}, params: r = [] } = {}) => {
+ let n = e.apply(Ue([s, ...t]), r);
+ ft(i, n);
+ };
+}
+var zt = {};
+function Vr(t, e) {
+ if (zt[t]) return zt[t];
+ let i = Object.getPrototypeOf(async function () {}).constructor,
+ s =
+ /^[\n\s]*if.*\(.*\)/.test(t.trim()) || /^(let|const)\s/.test(t.trim())
+ ? `(async()=>{ ${t} })()`
+ : t,
+ n = (() => {
+ try {
+ let a = new i(
+ ['__self', 'scope'],
+ `with (scope) { __self.result = ${s} }; __self.finished = true; return __self.result;`,
+ );
+ return Object.defineProperty(a, 'name', { value: `[Alpine] ${t}` }), a;
+ } catch (a) {
+ return je(a, e, t), Promise.resolve();
+ }
+ })();
+ return (zt[t] = n), n;
+}
+function Xr(t, e, i) {
+ let s = Vr(e, i);
+ return (r = () => {}, { scope: n = {}, params: a = [] } = {}) => {
+ (s.result = void 0), (s.finished = !1);
+ let l = Ue([n, ...t]);
+ if (typeof s == 'function') {
+ let o = s(s, l).catch((f) => je(f, i, e));
+ s.finished
+ ? (ft(r, s.result, l, a, i), (s.result = void 0))
+ : o
+ .then((f) => {
+ ft(r, f, l, a, i);
+ })
+ .catch((f) => je(f, i, e))
+ .finally(() => (s.result = void 0));
+ }
+ };
+}
+function ft(t, e, i, s, r) {
+ if (lt && typeof e == 'function') {
+ let n = e.apply(i, s);
+ n instanceof Promise
+ ? n.then((a) => ft(t, a, i, s)).catch((a) => je(a, r, e))
+ : t(n);
+ } else
+ typeof e == 'object' && e instanceof Promise ? e.then((n) => t(n)) : t(e);
+}
+var vi = 'x-';
+function ze(t = '') {
+ return vi + t;
+}
+function Yr(t) {
+ vi = t;
+}
+var pt = {};
+function j(t, e) {
+ return (
+ (pt[t] = e),
+ {
+ before(i) {
+ if (!pt[i]) {
+ console.warn(
+ String.raw`Cannot find directive \`${i}\`. \`${t}\` will use the default order of execution`,
+ );
+ return;
+ }
+ const s = ve.indexOf(i);
+ ve.splice(s >= 0 ? s : ve.indexOf('DEFAULT'), 0, t);
+ },
+ }
+ );
+}
+function qr(t) {
+ return Object.keys(pt).includes(t);
+}
+function wi(t, e, i) {
+ if (((e = Array.from(e)), t._x_virtualDirectives)) {
+ let n = Object.entries(t._x_virtualDirectives).map(([l, o]) => ({
+ name: l,
+ value: o,
+ })),
+ a = xs(n);
+ (n = n.map((l) =>
+ a.find((o) => o.name === l.name)
+ ? { name: `x-bind:${l.name}`, value: `"${l.value}"` }
+ : l,
+ )),
+ (e = e.concat(n));
+ }
+ let s = {};
+ return e
+ .map(_s((n, a) => (s[n] = a)))
+ .filter(Ps)
+ .map(Kr(s, i))
+ .sort(Ur)
+ .map((n) => Wr(t, n));
+}
+function xs(t) {
+ return Array.from(t)
+ .map(_s())
+ .filter((e) => !Ps(e));
+}
+var Jt = !1,
+ Ge = new Map(),
+ Ss = Symbol();
+function jr(t) {
+ Jt = !0;
+ let e = Symbol();
+ (Ss = e), Ge.set(e, []);
+ let i = () => {
+ for (; Ge.get(e).length; ) Ge.get(e).shift()();
+ Ge.delete(e);
+ },
+ s = () => {
+ (Jt = !1), i();
+ };
+ t(i), s();
+}
+function Es(t) {
+ let e = [],
+ i = (l) => e.push(l),
+ [s, r] = Lr(t);
+ return (
+ e.push(r),
+ [
+ {
+ Alpine: Ze,
+ effect: s,
+ cleanup: i,
+ evaluateLater: Z.bind(Z, t),
+ evaluate: ye.bind(ye, t),
+ },
+ () => e.forEach((l) => l()),
+ ]
+ );
+}
+function Wr(t, e) {
+ let i = () => {},
+ s = pt[e.type] || i,
+ [r, n] = Es(t);
+ us(t, e.original, n);
+ let a = () => {
+ t._x_ignore ||
+ t._x_ignoreSelf ||
+ (s.inline && s.inline(t, e, r),
+ (s = s.bind(s, t, e, r)),
+ Jt ? Ge.get(Ss).push(s) : s());
+ };
+ return (a.runCleanups = n), a;
+}
+var Ts =
+ (t, e) =>
+ ({ name: i, value: s }) => (
+ i.startsWith(t) && (i = i.replace(t, e)), { name: i, value: s }
+ ),
+ Ms = (t) => t;
+function _s(t = () => {}) {
+ return ({ name: e, value: i }) => {
+ let { name: s, value: r } = Cs.reduce((n, a) => a(n), {
+ name: e,
+ value: i,
+ });
+ return s !== e && t(s, e), { name: s, value: r };
+ };
+}
+var Cs = [];
+function yi(t) {
+ Cs.push(t);
+}
+function Ps({ name: t }) {
+ return As().test(t);
+}
+var As = () => new RegExp(`^${vi}([^:^.]+)\\b`);
+function Kr(t, e) {
+ return ({ name: i, value: s }) => {
+ let r = i.match(As()),
+ n = i.match(/:([a-zA-Z0-9\-_:]+)/),
+ a = i.match(/\.[^.\]]+(?=[^\]]*$)/g) || [],
+ l = e || t[i] || i;
+ return {
+ type: r ? r[1] : null,
+ value: n ? n[1] : null,
+ modifiers: a.map((o) => o.replace('.', '')),
+ expression: s,
+ original: l,
+ };
+ };
+}
+var Zt = 'DEFAULT',
+ ve = [
+ 'ignore',
+ 'ref',
+ 'data',
+ 'id',
+ 'anchor',
+ 'bind',
+ 'init',
+ 'for',
+ 'model',
+ 'modelable',
+ 'transition',
+ 'show',
+ 'if',
+ Zt,
+ 'teleport',
+ ];
+function Ur(t, e) {
+ let i = ve.indexOf(t.type) === -1 ? Zt : t.type,
+ s = ve.indexOf(e.type) === -1 ? Zt : e.type;
+ return ve.indexOf(i) - ve.indexOf(s);
+}
+function Xe(t, e, i = {}) {
+ t.dispatchEvent(
+ new CustomEvent(e, {
+ detail: i,
+ bubbles: !0,
+ composed: !0,
+ cancelable: !0,
+ }),
+ );
+}
+function Ee(t, e) {
+ if (typeof ShadowRoot == 'function' && t instanceof ShadowRoot) {
+ Array.from(t.children).forEach((r) => Ee(r, e));
+ return;
+ }
+ let i = !1;
+ if ((e(t, () => (i = !0)), i)) return;
+ let s = t.firstElementChild;
+ for (; s; ) Ee(s, e), (s = s.nextElementSibling);
+}
+function ie(t, ...e) {
+ console.warn(`Alpine Warning: ${t}`, ...e);
+}
+var Ni = !1;
+function Jr() {
+ Ni &&
+ ie(
+ 'Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems.',
+ ),
+ (Ni = !0),
+ document.body ||
+ ie(
+ "Unable to initialize. Trying to load Alpine before `