luxen-ui 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/cdn/chunks/decorate.js +1 -1
  2. package/cdn/chunks/decorate.js.map +1 -1
  3. package/cdn/custom-elements.json +131 -107
  4. package/cdn/elements/avatar/avatar.js +1 -1
  5. package/cdn/elements/avatar/avatar.js.map +1 -1
  6. package/cdn/elements/badge/badge.js +1 -1
  7. package/cdn/elements/carousel/carousel.d.ts +9 -1
  8. package/cdn/elements/carousel/carousel.d.ts.map +1 -1
  9. package/cdn/elements/carousel/carousel.js +21 -20
  10. package/cdn/elements/carousel/carousel.js.map +1 -1
  11. package/cdn/elements/dialog/dialog.js +1 -1
  12. package/cdn/elements/divider/divider.js +1 -1
  13. package/cdn/elements/drawer/drawer.js +1 -1
  14. package/cdn/elements/dropdown/dropdown.d.ts +5 -2
  15. package/cdn/elements/dropdown/dropdown.d.ts.map +1 -1
  16. package/cdn/elements/dropdown/dropdown.js +6 -3
  17. package/cdn/elements/dropdown/dropdown.js.map +1 -1
  18. package/cdn/elements/dropdown-item/dropdown-item.js +1 -1
  19. package/cdn/elements/dropdown-item/dropdown-item.js.map +1 -1
  20. package/cdn/elements/icon/icon.js +1 -1
  21. package/cdn/elements/input-otp/input-otp.js +1 -1
  22. package/cdn/elements/input-stepper/input-stepper.js +1 -1
  23. package/cdn/elements/popover/popover.js +1 -1
  24. package/cdn/elements/popover/popover.js.map +1 -1
  25. package/cdn/elements/rating/rating.js +1 -1
  26. package/cdn/elements/tabs/tabs.js +1 -1
  27. package/cdn/elements/toast/toast.js +1 -1
  28. package/cdn/elements/toast/toast.js.map +1 -1
  29. package/cdn/elements/tooltip/tooltip.d.ts +3 -3
  30. package/cdn/elements/tooltip/tooltip.js +1 -1
  31. package/cdn/elements/tooltip/tooltip.js.map +1 -1
  32. package/cdn/elements/tree/tree.js +1 -1
  33. package/cdn/elements/tree/tree.js.map +1 -1
  34. package/cdn/elements/tree-item/tree-item.js +1 -1
  35. package/cdn/elements/tree-item/tree-item.js.map +1 -1
  36. package/cdn/shared/luxen-form-associated-element.js +1 -1
  37. package/cdn/styles/elements/divider.css +7 -0
  38. package/cdn/styles/elements/select.css +3 -3
  39. package/dist/css/elements/divider.css +7 -0
  40. package/dist/css/elements/select.css +3 -3
  41. package/dist/custom-elements.json +131 -107
  42. package/dist/elements/avatar/avatar.css +13 -7
  43. package/dist/elements/carousel/carousel.css +7 -0
  44. package/dist/elements/carousel/carousel.d.ts +9 -1
  45. package/dist/elements/carousel/carousel.d.ts.map +1 -1
  46. package/dist/elements/carousel/carousel.js +71 -37
  47. package/dist/elements/dropdown/dropdown.css +14 -3
  48. package/dist/elements/dropdown/dropdown.d.ts +5 -2
  49. package/dist/elements/dropdown/dropdown.d.ts.map +1 -1
  50. package/dist/elements/dropdown/dropdown.js +19 -7
  51. package/dist/elements/tooltip/tooltip.css +15 -7
  52. package/dist/elements/tooltip/tooltip.d.ts +3 -3
  53. package/dist/elements/tooltip/tooltip.js +3 -3
  54. package/dist/skills/luxen-ui/references/select.md +1 -1
  55. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"avatar.js","names":["t","r","e"],"sources":["../../../../../node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/static.js","../../../src/html/elements/avatar/avatar.css?inline","../../../src/html/elements/avatar/avatar.ts"],"sourcesContent":["import{html as t,svg as r,mathml as e}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst a=Symbol.for(\"\"),o=t=>{if(t?.r===a)return t?._$litStatic$},s=t=>({_$litStatic$:t,r:a}),i=(t,...r)=>({_$litStatic$:r.reduce((r,e,a)=>r+(t=>{if(void 0!==t._$litStatic$)return t._$litStatic$;throw Error(`Value passed to 'literal' function must be a 'literal' result: ${t}. Use 'unsafeStatic' to pass non-literal values, but\\n take care to ensure page security.`)})(e)+t[a+1],t[0]),r:a}),l=new Map,n=t=>(r,...e)=>{const a=e.length;let s,i;const n=[],u=[];let c,$=0,f=!1;for(;$<a;){for(c=r[$];$<a&&void 0!==(i=e[$],s=o(i));)c+=s+r[++$],f=!0;$!==a&&u.push(i),n.push(c),$++}if($===a&&n.push(r[a]),f){const t=n.join(\"$$lit$$\");void 0===(r=l.get(t))&&(n.raw=n,l.set(t,r=n)),e=u}return t(r,...e)},u=n(t),c=n(r),$=n(e);export{u as html,i as literal,$ as mathml,c as svg,s as unsafeStatic,n as withStatic};\n//# sourceMappingURL=static.js.map\n",":host {\n --_size: 40px;\n --_font-size: 1rem;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n width: var(--_size);\n height: var(--_size);\n border-radius: calc(var(--_size) * 0.2);\n isolation: isolate;\n vertical-align: middle;\n flex-shrink: 0;\n color: var(--l-color-text-secondary);\n}\n\n:host([size='xs']) {\n --_size: 24px;\n --_font-size: 0.75rem;\n}\n:host([size='sm']) {\n --_size: 32px;\n --_font-size: 0.875rem;\n}\n:host([size='lg']) {\n --_size: 48px;\n --_font-size: 1.25rem;\n}\n:host([size='xl']) {\n --_size: 56px;\n --_font-size: 1.25rem;\n}\n\nimg {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: inherit;\n}\n\n.initials {\n margin: auto;\n}\n\n.icon {\n width: 60%;\n height: 60%;\n color: currentColor;\n}\n\n.badge {\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n height: 12px;\n min-width: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n padding-inline: 2px;\n border-radius: 3px;\n box-shadow: 0 0 0 2px var(--l-color-surface);\n background-color: var(--l-color-surface);\n font-size: 0.625rem;\n font-weight: 500;\n font-variant-numeric: tabular-nums;\n line-height: 1;\n color: var(--l-color-text-primary);\n overflow: hidden;\n}\n\n/*\n * Inset ring via ::after so it renders on top of the <img>.\n * A box-shadow on :host would be covered by the image since\n * it fills the entire element with object-fit: cover.\n */\n.base::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: inherit;\n box-shadow: inset 0 0 0 1px light-dark(oklch(0 0 0 / 7%), oklch(100% 0 0 / 10%));\n pointer-events: none;\n}\n\n.base {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n border: none;\n border-radius: calc(var(--_size) * 0.2);\n background-color: var(--color, var(--l-color-bg-fill-neutral-soft));\n color: oklch(from var(--color) 0.45 calc(c * 2) h);\n font-size: var(--_font-size);\n font-weight: 500;\n line-height: 1;\n text-transform: uppercase;\n padding: 0;\n cursor: inherit;\n}\n\nbutton.base {\n cursor: pointer;\n}\n\nbutton.base:focus-visible {\n outline: 2px solid var(--l-focus-ring);\n outline-offset: 2px;\n}\n\nbutton.base:hover {\n box-shadow: inset 0 0 0 1.5px var(--l-color-border-interactive);\n}\n\n@media (prefers-color-scheme: dark) {\n .base {\n color: oklch(from var(--color) 0.85 calc(c * 1.5) h);\n }\n}\n\n@container style(--appearance: circle) {\n .base {\n border-radius: 50%;\n }\n}\n","import { html, nothing, svg, unsafeCSS } from 'lit';\nimport { LuxenElement } from '../../shared/luxen-element';\nimport { html as staticHtml, literal } from 'lit/static-html.js';\nimport { property, state } from 'lit/decorators.js';\nimport hostStyles from '../../shared/styles/host.styles';\nimport rawStyles from './avatar.css?inline';\n\nconst styles = unsafeCSS(rawStyles);\n\nfunction getInitials(name: string): string {\n return name\n .match(/(\\b\\S)?/g)!\n .join('')\n .match(/(^\\S|\\S$)?/g)!\n .join('')\n .toUpperCase();\n}\n\nconst defaultIcon = svg`<svg class=\"icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z\" />\n</svg>`;\n\n/**\n * @summary An avatar component for displaying user images, initials, or a default icon.\n * @customElement l-avatar\n */\nexport class LuxenAvatar extends LuxenElement {\n static styles = [hostStyles, styles];\n\n @property()\n src = '';\n\n @property()\n name = '';\n\n @property({ reflect: true })\n size = 'md';\n\n @property({ type: Number })\n badge = 0;\n\n @property({ type: Boolean, reflect: true })\n interactive = false;\n\n @state() private _hasError = false;\n\n willUpdate(changed: Map<string, unknown>) {\n if (changed.has('src')) {\n this._hasError = false;\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'img');\n }\n }\n\n updated() {\n if (this.name) {\n this.setAttribute('aria-label', this.name);\n }\n\n const isCircle = getComputedStyle(this).getPropertyValue('--appearance').trim() === 'circle';\n this.style.borderRadius = isCircle ? '50%' : '';\n }\n\n private get _tag() {\n return this.interactive ? literal`button` : literal`div`;\n }\n\n render() {\n const content =\n this.src && !this._hasError\n ? html`<img\n src=${this.src}\n alt=${this.name || ''}\n @error=${this._onError}\n />`\n : this.name\n ? html`<span class=\"initials\">${getInitials(this.name)}</span>`\n : html`<slot>${defaultIcon}</slot>`;\n\n return staticHtml`\n <${this._tag} class=\"base\" type=${this.interactive ? 'button' : nothing}>\n ${content}\n </${this._tag}>\n ${\n this.badge\n ? html`<div\n class=\"badge\"\n aria-hidden=\"true\"\n >\n ${this.badge}\n </div>`\n : nothing\n }\n `;\n }\n\n private _onError() {\n this._hasError = true;\n }\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"avatar.js","names":["t","r","e"],"sources":["../../../../../node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/static.js","../../../src/html/elements/avatar/avatar.css?inline","../../../src/html/elements/avatar/avatar.ts"],"sourcesContent":["import{html as t,svg as r,mathml as e}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst a=Symbol.for(\"\"),o=t=>{if(t?.r===a)return t?._$litStatic$},s=t=>({_$litStatic$:t,r:a}),i=(t,...r)=>({_$litStatic$:r.reduce((r,e,a)=>r+(t=>{if(void 0!==t._$litStatic$)return t._$litStatic$;throw Error(`Value passed to 'literal' function must be a 'literal' result: ${t}. Use 'unsafeStatic' to pass non-literal values, but\\n take care to ensure page security.`)})(e)+t[a+1],t[0]),r:a}),l=new Map,n=t=>(r,...e)=>{const a=e.length;let s,i;const n=[],u=[];let c,$=0,f=!1;for(;$<a;){for(c=r[$];$<a&&void 0!==(i=e[$],s=o(i));)c+=s+r[++$],f=!0;$!==a&&u.push(i),n.push(c),$++}if($===a&&n.push(r[a]),f){const t=n.join(\"$$lit$$\");void 0===(r=l.get(t))&&(n.raw=n,l.set(t,r=n)),e=u}return t(r,...e)},u=n(t),c=n(r),$=n(e);export{u as html,i as literal,$ as mathml,c as svg,s as unsafeStatic,n as withStatic};\n//# sourceMappingURL=static.js.map\n",":host {\n --_size: 40px;\n --_font-size: 1rem;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n width: var(--_size);\n height: var(--_size);\n border-radius: calc(var(--_size) * 0.2);\n isolation: isolate;\n vertical-align: middle;\n flex-shrink: 0;\n color: var(--l-color-text-secondary);\n}\n\n:host([size='xs']) {\n --_size: 24px;\n --_font-size: 0.75rem;\n}\n:host([size='sm']) {\n --_size: 32px;\n --_font-size: 0.875rem;\n}\n:host([size='lg']) {\n --_size: 48px;\n --_font-size: 1.25rem;\n}\n:host([size='xl']) {\n --_size: 56px;\n --_font-size: 1.25rem;\n}\n\nimg {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: inherit;\n}\n\n.initials {\n margin: auto;\n}\n\n.icon {\n width: 60%;\n height: 60%;\n color: currentColor;\n}\n\n.badge {\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n height: 12px;\n min-width: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n padding-inline: 2px;\n border-radius: 3px;\n box-shadow: 0 0 0 2px var(--l-color-surface);\n background-color: var(--l-color-surface);\n font-size: 0.625rem;\n font-weight: 500;\n font-variant-numeric: tabular-nums;\n line-height: 1;\n color: var(--l-color-text-primary);\n overflow: hidden;\n}\n\n/*\n * Inset ring via ::after so it renders on top of the <img>.\n * A box-shadow on :host would be covered by the image since\n * it fills the entire element with object-fit: cover.\n */\n.base::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: inherit;\n box-shadow: inset 0 0 0 1px light-dark(oklch(0 0 0 / 7%), oklch(100% 0 0 / 10%));\n pointer-events: none;\n}\n\n.base {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n border: none;\n border-radius: calc(var(--_size) * 0.2);\n background-color: var(--color, var(--l-color-bg-fill-neutral-soft));\n color: oklch(\n from var(--color) calc(0.65 - 0.2 * sign(l - 0.5)) calc(c * (1.75 + 0.25 * sign(l - 0.5))) h\n );\n font-size: var(--_font-size);\n font-weight: 500;\n line-height: 1;\n text-transform: uppercase;\n padding: 0;\n cursor: inherit;\n}\n\n@supports (color: contrast-color(red vs black, white)) {\n .base {\n color: contrast-color(\n var(--color, var(--l-color-bg-fill-neutral-soft)) vs\n oklch(from var(--color) 0.45 calc(c * 2) h),\n oklch(from var(--color) 0.85 calc(c * 1.5) h) to AA\n );\n }\n}\n\nbutton.base {\n cursor: pointer;\n}\n\nbutton.base:focus-visible {\n outline: 2px solid var(--l-focus-ring);\n outline-offset: 2px;\n}\n\nbutton.base:hover {\n box-shadow: inset 0 0 0 1.5px var(--l-color-border-interactive);\n}\n\n@container style(--appearance: circle) {\n .base {\n border-radius: 50%;\n }\n}\n","import { html, nothing, svg, unsafeCSS } from 'lit';\nimport { LuxenElement } from '../../shared/luxen-element';\nimport { html as staticHtml, literal } from 'lit/static-html.js';\nimport { property, state } from 'lit/decorators.js';\nimport hostStyles from '../../shared/styles/host.styles';\nimport rawStyles from './avatar.css?inline';\n\nconst styles = unsafeCSS(rawStyles);\n\nfunction getInitials(name: string): string {\n return name\n .match(/(\\b\\S)?/g)!\n .join('')\n .match(/(^\\S|\\S$)?/g)!\n .join('')\n .toUpperCase();\n}\n\nconst defaultIcon = svg`<svg class=\"icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z\" />\n</svg>`;\n\n/**\n * @summary An avatar component for displaying user images, initials, or a default icon.\n * @customElement l-avatar\n */\nexport class LuxenAvatar extends LuxenElement {\n static styles = [hostStyles, styles];\n\n @property()\n src = '';\n\n @property()\n name = '';\n\n @property({ reflect: true })\n size = 'md';\n\n @property({ type: Number })\n badge = 0;\n\n @property({ type: Boolean, reflect: true })\n interactive = false;\n\n @state() private _hasError = false;\n\n willUpdate(changed: Map<string, unknown>) {\n if (changed.has('src')) {\n this._hasError = false;\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'img');\n }\n }\n\n updated() {\n if (this.name) {\n this.setAttribute('aria-label', this.name);\n }\n\n const isCircle = getComputedStyle(this).getPropertyValue('--appearance').trim() === 'circle';\n this.style.borderRadius = isCircle ? '50%' : '';\n }\n\n private get _tag() {\n return this.interactive ? literal`button` : literal`div`;\n }\n\n render() {\n const content =\n this.src && !this._hasError\n ? html`<img\n src=${this.src}\n alt=${this.name || ''}\n @error=${this._onError}\n />`\n : this.name\n ? html`<span class=\"initials\">${getInitials(this.name)}</span>`\n : html`<slot>${defaultIcon}</slot>`;\n\n return staticHtml`\n <${this._tag} class=\"base\" type=${this.interactive ? 'button' : nothing}>\n ${content}\n </${this._tag}>\n ${\n this.badge\n ? html`<div\n class=\"badge\"\n aria-hidden=\"true\"\n >\n ${this.badge}\n </div>`\n : nothing\n }\n `;\n }\n\n private _onError() {\n this._hasError = true;\n }\n}\n"],"x_google_ignoreList":[0],"mappings":"uOAMA,IAAM,EAAE,OAAO,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI,EAAE,OAAO,GAAG,cAA0C,GAAG,EAAE,GAAG,KAAK,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,IAAI,GAAG,GAAG,CAAC,GAAY,EAAE,eAAX,IAAK,GAAmB,OAAO,EAAE,aAAa,MAAM,MAAM,kEAAkE,EAAE,sGAAsG,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,IAAyS,GAAnS,IAAI,EAAE,GAAG,IAAI,CAAC,IAAM,EAAE,EAAE,OAAW,EAAE,EAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,CAAK,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAa,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAvB,IAAK,IAAqB,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,IAAM,EAAE,EAAE,KAAK,UAAU,EAAW,EAAE,EAAE,IAAI,EAAE,IAApB,IAAK,KAAmB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,GAAMA,EAAE,CEChsB,EAAS,skEAAoB,CAEnC,SAAS,EAAY,EAAsB,CACzC,OAAO,EACJ,MAAM,WAAW,CACjB,KAAK,GAAG,CACR,MAAM,cAAc,CACpB,KAAK,GAAG,CACR,aAAa,CAGlB,IAAM,EAAc,CAAG;;QAQV,EAAb,cAAiC,CAAa,wCAItC,aAGC,aAGA,gBAGC,mBAGM,kBAEe,sBAjBb,CAAC,EAAY,EAAO,CAmBpC,WAAW,EAA+B,CACpC,EAAQ,IAAI,MAAM,GACpB,KAAK,UAAY,IAIrB,mBAAoB,CAClB,MAAM,mBAAmB,CACpB,KAAK,aAAa,OAAO,EAC5B,KAAK,aAAa,OAAQ,MAAM,CAIpC,SAAU,CACJ,KAAK,MACP,KAAK,aAAa,aAAc,KAAK,KAAK,CAG5C,IAAM,EAAW,iBAAiB,KAAK,CAAC,iBAAiB,eAAe,CAAC,MAAM,GAAK,SACpF,KAAK,MAAM,aAAe,EAAW,MAAQ,GAG/C,IAAY,MAAO,CACjB,OAAO,KAAK,YAAc,CAAO,SAAW,CAAO,MAGrD,QAAS,CACP,IAAM,EACJ,KAAK,KAAO,CAAC,KAAK,UACd,CAAI;kBACI,KAAK,IAAI;kBACT,KAAK,MAAQ,GAAG;qBACb,KAAK,SAAS;cAEzB,KAAK,KACH,CAAI,0BAA0B,EAAY,KAAK,KAAK,CAAC,SACrD,CAAI,SAAS,EAAY,SAEjC,MAAO,EAAU;SACZ,KAAK,KAAK,qBAAqB,KAAK,YAAc,SAAW,EAAQ;UACpE,EAAQ;UACR,KAAK,KAAK;QAEZ,KAAK,MACD,CAAI;;;;gBAIA,KAAK,MAAM;oBAEf,EACL;MAIL,UAAmB,CACjB,KAAK,UAAY,QAzElB,GAAU,CAAA,CAAA,EAAA,UAAA,MAAA,IAAA,GAAA,IAGV,GAAU,CAAA,CAAA,EAAA,UAAA,OAAA,IAAA,GAAA,IAGV,EAAS,CAAE,QAAS,GAAM,CAAC,CAAA,CAAA,EAAA,UAAA,OAAA,IAAA,GAAA,IAG3B,EAAS,CAAE,KAAM,OAAQ,CAAC,CAAA,CAAA,EAAA,UAAA,QAAA,IAAA,GAAA,IAG1B,EAAS,CAAE,KAAM,QAAS,QAAS,GAAM,CAAC,CAAA,CAAA,EAAA,UAAA,cAAA,IAAA,GAAA,IAG1C,GAAO,CAAA,CAAA,EAAA,UAAA,YAAA,IAAA,GAAA"}
@@ -1,2 +1,2 @@
1
- import{LuxenElement as e}from"../../shared/luxen-element.js";import{a as t,t as n}from"../../chunks/decorate.js";var r=class extends e{constructor(...e){super(...e),this.pill=!1}createRenderRoot(){return this}};n([t({reflect:!0})],r.prototype,`variant`,void 0),n([t({type:Boolean,reflect:!0})],r.prototype,`pill`,void 0),n([t({reflect:!0})],r.prototype,`size`,void 0),n([t({reflect:!0})],r.prototype,`appearance`,void 0);export{r as LuxenBadge};
1
+ import{LuxenElement as e}from"../../shared/luxen-element.js";import{i as t,t as n}from"../../chunks/decorate.js";var r=class extends e{constructor(...e){super(...e),this.pill=!1}createRenderRoot(){return this}};n([t({reflect:!0})],r.prototype,`variant`,void 0),n([t({type:Boolean,reflect:!0})],r.prototype,`pill`,void 0),n([t({reflect:!0})],r.prototype,`size`,void 0),n([t({reflect:!0})],r.prototype,`appearance`,void 0);export{r as LuxenBadge};
2
2
  //# sourceMappingURL=badge.js.map
@@ -33,6 +33,7 @@ type ScrollContainOptionType = 'trimSnaps' | 'keepSnaps' | false;
33
33
  * @cssproperty --dot-color - Color of inactive dots.
34
34
  * @cssproperty --dot-color-active - Color of active dot.
35
35
  * @cssproperty --dot-margin - Margin around dots container.
36
+ * @cssproperty --dot-edge-scale - Scale factor applied to edge dots that signal more dots exist beyond the visible window (default `0.5`).
36
37
  */
37
38
  export declare class LuxenCarousel extends LuxenElement {
38
39
  static styles: CSSResultGroup;
@@ -110,12 +111,18 @@ export declare class LuxenCarousel extends LuxenElement {
110
111
  accessor withScrollbar: boolean;
111
112
  accessor withFullscreen: boolean;
112
113
  accessor dotAppearance: 'circle' | 'bar';
114
+ /**
115
+ * Maximum number of dots rendered at once. When the snap count exceeds this,
116
+ * a sliding window keeps the active dot in view and shrinks the edge dot(s)
117
+ * on the side where dots are hidden. `0` (default) renders all dots.
118
+ */
119
+ accessor maxVisibleDots: number;
113
120
  accessor scrollButtonsPosition: 'inside' | 'outside';
121
+ private accessor _selectedSnap;
114
122
  scrollButtons: HTMLElement;
115
123
  previousBtn: HTMLButtonElement;
116
124
  nextBtn: HTMLButtonElement;
117
125
  container: HTMLSlotElement;
118
- dotNodes: HTMLButtonElement[];
119
126
  constructor();
120
127
  connectedCallback(): void;
121
128
  disconnectedCallback(): void;
@@ -142,6 +149,7 @@ export declare class LuxenCarousel extends LuxenElement {
142
149
  isActive(): boolean;
143
150
  renderFullscreenButton(): import('lit').TemplateResult<1>;
144
151
  renderNextPreviousButtons(): import('lit').TemplateResult<1>;
152
+ private renderDots;
145
153
  render(): import('lit').TemplateResult<1>;
146
154
  }
147
155
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.d.ts","sourceRoot":"","sources":["../../../src/html/elements/carousel/carousel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAG1E,KAAK,cAAc,GAAG,GAAG,GAAG,GAAG,CAAC;AAChC,KAAK,mBAAmB,GACpB,OAAO,GACP,QAAQ,GACR,KAAK,GACL,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;AACpE,KAAK,wBAAwB,GAAG,MAAM,GAAG,MAAM,CAAC;AAChD,KAAK,uBAAuB,GAAG,WAAW,GAAG,WAAW,GAAG,KAAK,CAAC;AAEjE,OAAO,EAAmB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGhF,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAM1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAgB,MAAM,EAAE,cAAc,CAAwB;IAE9D,KAAK,EAAG,iBAAiB,CAAC;IAE1B;;OAEG;IAEH,QAAQ,CAAC,QAAQ,SAAK;IAEtB;;;;OAIG;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC;IAE9B;;;;OAIG;IAEH,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAO;IAEpC;;;;OAIG;IAEH,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAW;IAE9C;;OAEG;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAM;IAE/B;;;;OAIG;IAEH,QAAQ,CAAC,IAAI,UAAS;IAEtB;;;;OAIG;IAEH,QAAQ,CAAC,QAAQ,UAAS;IAE1B;;;;OAIG;IAEH,QAAQ,CAAC,QAAQ,SAAM;IAEvB;;;;OAIG;IAEH,QAAQ,CAAC,SAAS,UAAS;IAE3B;;;;OAIG;IAEH,QAAQ,CAAC,cAAc,EAAE,wBAAwB,CAAK;IAEtD;;;;OAIG;IAEH,QAAQ,CAAC,UAAU,SAAK;IAExB;;;;OAIG;IAEH,QAAQ,CAAC,aAAa,EAAE,uBAAuB,CAAe;IAG9D,QAAQ,CAAC,MAAM,UAAS;IAGxB,QAAQ,CAAC,QAAQ,UAAS;IAG1B,QAAQ,CAAC,aAAa,UAAS;IAG/B,QAAQ,CAAC,cAAc,UAAS;IAGhC,QAAQ,CAAC,aAAa,EAAE,QAAQ,GAAG,KAAK,CAAS;IAGjD,QAAQ,CAAC,qBAAqB,EAAE,QAAQ,GAAG,SAAS,CAAY;IAEtC,aAAa,EAAG,WAAW,CAAC;IAC3B,WAAW,EAAG,iBAAiB,CAAC;IACpC,OAAO,EAAG,iBAAiB,CAAC;IAC9B,SAAS,EAAG,eAAe,CAAC;IAC/B,QAAQ,EAAG,iBAAiB,EAAE,CAAC;;IAcxC,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB;cAOV,YAAY,IAAI,IAAI;IAIvC,SAAS,CAAC,WAAW;IAWrB,SAAS,CAAC,cAAc;IAMxB,SAAS,CAAC,MAAM;IAIhB,SAAS,CAAC,QAAQ;IAKlB,SAAS,CAAC,QAAQ;IAOlB,SAAS,CAAC,QAAQ;IAIlB,SAAS,CAAC,oBAAoB;IAK9B,SAAS,CAAC,oBAAoB;IAK9B,SAAS,CAAC,gBAAgB;IAiBX,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC;IAM9D,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,cAAc;IAKtB,OAAO,IAAI,gBAAgB;IA0B3B,IAAI;IAIJ,QAAQ;IAIR,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAIvC,UAAU;IAIV,YAAY;IAIZ,QAAQ;IAIR,sBAAsB;IAoBtB,yBAAyB;IAyChB,MAAM;CAuChB"}
1
+ {"version":3,"file":"carousel.d.ts","sourceRoot":"","sources":["../../../src/html/elements/carousel/carousel.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import{c as e,i as t}from"../../chunks/lit.js";import{LuxenElement as n}from"../../shared/luxen-element.js";import{a as r,n as i,r as a,t as o}from"../../chunks/decorate.js";import s from"../../shared/styles/host.styles.js";function c(e){return typeof e==`number`}function l(e){return typeof e==`string`}function u(e){return typeof e==`boolean`}function d(e){return Object.prototype.toString.call(e)===`[object Object]`}function f(e){return Math.abs(e)}function p(e){return Math.sign(e)}function m(e,t){return f(e-t)}function h(e,t){return e===0||t===0||f(e)<=f(t)?0:f(m(f(e),f(t))/e)}function g(e){return Math.round(e*100)/100}function _(e){return S(e).map(Number)}function v(e){return e[y(e)]}function y(e){return Math.max(0,e.length-1)}function b(e,t){return t===y(e)}function x(e,t=0){return Array.from(Array(e),(e,n)=>t+n)}function S(e){return Object.keys(e)}function C(e,t){return[e,t].reduce((e,t)=>(S(t).forEach(n=>{let r=e[n],i=t[n];e[n]=d(r)&&d(i)?C(r,i):i}),e),{})}function w(e,t){return t.MouseEvent!==void 0&&e instanceof t.MouseEvent}function T(e,t){let n={start:r,center:i,end:a};function r(){return 0}function i(e){return a(e)/2}function a(e){return t-e}function o(r,i){return l(e)?n[e](r):e(t,r,i)}return{measure:o}}function E(){let e=[];function t(t,n,i,a={passive:!0}){let o;if(`addEventListener`in t)t.addEventListener(n,i,a),o=()=>t.removeEventListener(n,i,a);else{let e=t;e.addListener(i),o=()=>e.removeListener(i)}return e.push(o),r}function n(){e=e.filter(e=>e())}let r={add:t,clear:n};return r}function D(e,t,n,r){let i=E(),a=1e3/60,o=null,s=0,c=0;function l(){i.add(e,`visibilitychange`,()=>{e.hidden&&m()})}function u(){p(),i.clear()}function d(e){if(!c)return;o||(o=e,n(),n());let i=e-o;for(o=e,s+=i;s>=a;)n(),s-=a;r(s/a),c&&=t.requestAnimationFrame(d)}function f(){c||=t.requestAnimationFrame(d)}function p(){t.cancelAnimationFrame(c),o=null,s=0,c=0}function m(){o=null,s=0}return{init:l,destroy:u,start:f,stop:p,update:n,render:r}}function O(e,t){let n=t===`rtl`,r=e===`y`,i=r?`y`:`x`,a=r?`x`:`y`,o=!r&&n?-1:1,s=u(),c=d();function l(e){let{height:t,width:n}=e;return r?t:n}function u(){return r?`top`:n?`right`:`left`}function d(){return r?`bottom`:n?`left`:`right`}function f(e){return e*o}return{scroll:i,cross:a,startEdge:s,endEdge:c,measureSize:l,direction:f}}function k(e=0,t=0){let n=f(e-t);function r(t){return t<e}function i(e){return e>t}function a(e){return r(e)||i(e)}function o(n){return a(n)?r(n)?e:t:n}function s(e){return n?e-n*Math.ceil((e-t)/n):e}return{length:n,max:t,min:e,constrain:o,reachedAny:a,reachedMax:i,reachedMin:r,removeOffset:s}}function A(e,t,n){let{constrain:r}=k(0,e),i=e+1,a=o(t);function o(e){return n?f((i+e)%i):r(e)}function s(){return a}function c(e){return a=o(e),d}function l(e){return u().set(s()+e)}function u(){return A(e,s(),n)}let d={get:s,set:c,add:l,clone:u};return d}function ee(e,t,n,r,i,a,o,s,c,l,d,g,_,v,y,b,x,S,C){let{cross:T,direction:D}=e,O=[`INPUT`,`SELECT`,`TEXTAREA`],A={passive:!1},ee=E(),j=E(),te=k(50,225).constrain(v.measure(20)),ne={mouse:300,touch:400},re={mouse:500,touch:600},ie=y?43:25,ae=!1,oe=0,M=0,N=!1,P=!1,F=!1,I=!1;function se(e){if(!C)return;function n(t){(u(C)||C(e,t))&&de(t)}let r=t;ee.add(r,`dragstart`,e=>e.preventDefault(),A).add(r,`touchmove`,()=>void 0,A).add(r,`touchend`,()=>void 0).add(r,`touchstart`,n).add(r,`mousedown`,n).add(r,`touchcancel`,z).add(r,`contextmenu`,z).add(r,`click`,pe,!0)}function ce(){ee.clear(),j.clear()}function le(){let e=I?n:t;j.add(e,`touchmove`,fe,A).add(e,`touchend`,z).add(e,`mousemove`,fe,A).add(e,`mouseup`,z)}function L(e){let t=e.nodeName||``;return O.includes(t)}function R(){return(y?re:ne)[I?`mouse`:`touch`]}function ue(e,t){let n=g.add(p(e)*-1),r=d.byDistance(e,!y).distance;return y||f(e)<te?r:x&&t?r*.5:d.byIndex(n.get(),0).distance}function de(e){let t=w(e,r);I=t,F=y&&t&&!e.buttons&&ae,ae=m(i.get(),o.get())>=2,!(t&&e.button!==0)&&(L(e.target)||(N=!0,a.pointerDown(e),l.useFriction(0).useDuration(0),i.set(o),le(),oe=a.readPoint(e),M=a.readPoint(e,T),_.emit(`pointerDown`)))}function fe(e){if(!w(e,r)&&e.touches.length>=2)return z(e);let t=a.readPoint(e),n=a.readPoint(e,T),o=m(t,oe),c=m(n,M);if(!P&&!I&&(!e.cancelable||(P=o>c,!P)))return z(e);let u=a.pointerMove(e);o>b&&(F=!0),l.useFriction(.3).useDuration(.75),s.start(),i.add(D(u)),e.preventDefault()}function z(e){let t=d.byDistance(0,!1).index!==g.get(),n=a.pointerUp(e)*R(),r=ue(D(n),t),i=h(n,r),o=ie-10*i,s=S+i/50;P=!1,N=!1,j.clear(),l.useDuration(o).useFriction(s),c.distance(r,!y),I=!1,_.emit(`pointerUp`)}function pe(e){F&&=(e.stopPropagation(),e.preventDefault(),!1)}function B(){return N}return{init:se,destroy:ce,pointerDown:B}}function j(e,t){let n,r;function i(e){return e.timeStamp}function a(n,r){let i=`client${(r||e.scroll)===`x`?`X`:`Y`}`;return(w(n,t)?n:n.touches[0])[i]}function o(e){return n=e,r=e,a(e)}function s(e){let t=a(e)-a(r),o=i(e)-i(n)>170;return r=e,o&&(n=e),t}function c(e){if(!n||!r)return 0;let t=a(r)-a(n),o=i(e)-i(n),s=i(e)-i(r)>170,c=t/o;return o&&!s&&f(c)>.1?c:0}return{pointerDown:o,pointerMove:s,pointerUp:c,readPoint:a}}function te(){function e(e){let{offsetTop:t,offsetLeft:n,offsetWidth:r,offsetHeight:i}=e;return{top:t,right:n+r,bottom:t+i,left:n,width:r,height:i}}return{measure:e}}function ne(e){function t(t){return t/100*e}return{measure:t}}function re(e,t,n,r,i,a,o){let s=[e].concat(r),c,l,d=[],p=!1;function m(e){return i.measureSize(o.measure(e))}function h(i){if(!a)return;l=m(e),d=r.map(m);function o(n){for(let a of n){if(p)return;let n=a.target===e,o=r.indexOf(a.target),s=n?l:d[o];if(f(m(n?e:r[o])-s)>=.5){i.reInit(),t.emit(`resize`);break}}}c=new ResizeObserver(e=>{(u(a)||a(i,e))&&o(e)}),n.requestAnimationFrame(()=>{s.forEach(e=>c.observe(e))})}function g(){p=!0,c&&c.disconnect()}return{init:h,destroy:g}}function ie(e,t,n,r,i,a){let o=0,s=0,c=i,l=a,u=e.get(),d=0;function m(){let t=r.get()-e.get(),i=!c,a=0;return i?(o=0,n.set(r),e.set(r),a=t):(n.set(e),o+=t/c,o*=l,u+=o,e.add(o),a=u-d),s=p(a),d=u,C}function h(){return f(r.get()-t.get())<.001}function g(){return c}function _(){return s}function v(){return o}function y(){return x(i)}function b(){return S(a)}function x(e){return c=e,C}function S(e){return l=e,C}let C={direction:_,duration:g,velocity:v,seek:m,settled:h,useBaseFriction:b,useBaseDuration:y,useFriction:S,useDuration:x};return C}function ae(e,t,n,r,i){let a=i.measure(10),o=i.measure(50),s=k(.1,.99),c=!1;function l(){return!(c||!e.reachedAny(n.get())||!e.reachedAny(t.get()))}function u(i){if(!l())return;let c=f(e[e.reachedMin(t.get())?`min`:`max`]-t.get()),u=n.get()-t.get(),d=s.constrain(c/o);n.subtract(u*d),!i&&f(u)<a&&(n.set(e.constrain(n.get())),r.useDuration(25).useBaseFriction())}function d(e){c=!e}return{shouldConstrain:l,constrain:u,toggleActive:d}}function oe(e,t,n,r,i){let a=k(-t+e,0),o=d(),s=u(),c=f();function l(e,t){return m(e,t)<=1}function u(){let e=o[0],t=v(o);return k(o.lastIndexOf(e),o.indexOf(t)+1)}function d(){return n.map((e,t)=>{let{min:r,max:i}=a,o=a.constrain(e),s=!t,c=b(n,t);return s?i:c||l(r,o)?r:l(i,o)?i:o}).map(e=>parseFloat(e.toFixed(3)))}function f(){if(t<=e+i)return[a.max];if(r===`keepSnaps`)return o;let{min:n,max:c}=s;return o.slice(n,c)}return{snapsContained:c,scrollContainLimit:s}}function M(e,t,n){let r=t[0];return{limit:k(n?r-e:v(t),r)}}function N(e,t,n,r){let i=.1,{reachedMin:a,reachedMax:o}=k(t.min+i,t.max+i);function s(e){return e===1?o(n.get()):e===-1?a(n.get()):!1}function c(t){if(!s(t))return;let n=t*-1*e;r.forEach(e=>e.add(n))}return{loop:c}}function P(e){let{max:t,length:n}=e;function r(e){let r=e-t;return n?r/-n:0}return{get:r}}function F(e,t,n,r,i){let{startEdge:a,endEdge:o}=e,{groupSlides:s}=i,c=d().map(t.measure),l=p(),u=m();function d(){return s(r).map(e=>v(e)[o]-e[0][a]).map(f)}function p(){return r.map(e=>n[a]-e[a]).map(e=>-f(e))}function m(){return s(l).map(e=>e[0]).map((e,t)=>e+c[t])}return{snaps:l,snapsAligned:u}}function I(e,t,n,r,i,a){let{groupSlides:o}=i,{min:s,max:c}=r,l=u();function u(){let r=o(a),i=!e||t===`keepSnaps`;return n.length===1?[a]:i?r:r.slice(s,c).map((e,t,n)=>{let r=!t,i=b(n,t);return r?x(v(n[0])+1):i?x(y(a)-v(n)[0]+1,v(n)[0]):e})}return{slideRegistry:l}}function se(e,t,n,r,i){let{reachedAny:a,removeOffset:o,constrain:s}=r;function c(e){return e.concat().sort((e,t)=>f(e)-f(t))[0]}function l(n){let r=e?o(n):s(n),{index:i}=t.map((e,t)=>({diff:u(e-r,0),index:t})).sort((e,t)=>f(e.diff)-f(t.diff))[0];return{index:i,distance:r}}function u(t,r){let i=[t,t+n,t-n];if(!e)return t;if(!r)return c(i);let a=i.filter(e=>p(e)===r);return a.length?c(a):v(i)-n}function d(e,n){return{index:e,distance:u(t[e]-i.get(),n)}}function m(n,r){let o=i.get()+n,{index:s,distance:c}=l(o),d=!e&&a(o);return!r||d?{index:s,distance:n}:{index:s,distance:n+u(t[s]-c,0)}}return{byDistance:m,byIndex:d,shortcut:u}}function ce(e,t,n,r,i,a,o){function s(i){let s=i.distance,c=i.index!==t.get();a.add(s),s&&(r.duration()?e.start():(e.update(),e.render(1),e.update())),c&&(n.set(t.get()),t.set(i.index),o.emit(`select`))}function c(e,t){s(i.byDistance(e,t))}function l(e,n){let r=t.clone().set(e);s(i.byIndex(r.get(),n))}return{distance:c,index:l}}function le(e,t,n,r,i,a,o,s){let l={passive:!0,capture:!0},d=0;function f(f){if(!s)return;function m(t){if(new Date().getTime()-d>10)return;o.emit(`slideFocusStart`),e.scrollLeft=0;let a=n.findIndex(e=>e.includes(t));c(a)&&(i.useDuration(0),r.index(a,0),o.emit(`slideFocus`))}a.add(document,`keydown`,p,!1),t.forEach((e,t)=>{a.add(e,`focus`,e=>{(u(s)||s(f,e))&&m(t)},l)})}function p(e){e.code===`Tab`&&(d=new Date().getTime())}return{init:f}}function L(e){let t=e;function n(){return t}function r(e){t=o(e)}function i(e){t+=o(e)}function a(e){t-=o(e)}function o(e){return c(e)?e:e.get()}return{get:n,set:r,add:i,subtract:a}}function R(e,t){let n=e.scroll===`x`?o:s,r=t.style,i=null,a=!1;function o(e){return`translate3d(${e}px,0px,0px)`}function s(e){return`translate3d(0px,${e}px,0px)`}function c(t){if(a)return;let o=g(e.direction(t));o!==i&&(r.transform=n(o),i=o)}function l(e){a=!e}function u(){a||(r.transform=``,t.getAttribute(`style`)||t.removeAttribute(`style`))}return{clear:u,to:c,toggleActive:l}}function ue(e,t,n,r,i,a,o,s,c){let l=.5,u=_(i),d=_(i).reverse(),f=v().concat(y());function p(e,t){return e.reduce((e,t)=>e-i[t],t)}function m(e,t){return e.reduce((e,n)=>p(e,t)>0?e.concat([n]):e,[])}function h(e){return a.map((n,i)=>({start:n-r[i]+l+e,end:n+t-l+e}))}function g(t,r,i){let a=h(r);return t.map(t=>{let r=i?0:-n,o=i?n:0,l=i?`end`:`start`,u=a[t][l];return{index:t,loopPoint:u,slideLocation:L(-1),translate:R(e,c[t]),target:()=>s.get()>u?r:o}})}function v(){let e=o[0];return g(m(d,e),n,!1)}function y(){return g(m(u,t-o[0]-1),-n,!0)}function b(){return f.every(({index:e})=>p(u.filter(t=>t!==e),t)<=.1)}function x(){f.forEach(e=>{let{target:t,translate:n,slideLocation:r}=e,i=t();i!==r.get()&&(n.to(i),r.set(i))})}function S(){f.forEach(e=>e.translate.clear())}return{canLoop:b,clear:S,loop:x,loopPoints:f}}function de(e,t,n){let r,i=!1;function a(a){if(!n)return;function o(e){for(let n of e)if(n.type===`childList`){a.reInit(),t.emit(`slidesChanged`);break}}r=new MutationObserver(e=>{i||(u(n)||n(a,e))&&o(e)}),r.observe(e,{childList:!0})}function o(){r&&r.disconnect(),i=!0}return{init:a,destroy:o}}function fe(e,t,n,r){let i={},a=null,o=null,s,c=!1;function l(){s=new IntersectionObserver(e=>{c||(e.forEach(e=>{let n=t.indexOf(e.target);i[n]=e}),a=null,o=null,n.emit(`slidesInView`))},{root:e.parentElement,threshold:r}),t.forEach(e=>s.observe(e))}function u(){s&&s.disconnect(),c=!0}function d(e){return S(i).reduce((t,n)=>{let r=parseInt(n),{isIntersecting:a}=i[r];return(e&&a||!e&&!a)&&t.push(r),t},[])}function f(e=!0){if(e&&a)return a;if(!e&&o)return o;let t=d(e);return e&&(a=t),e||(o=t),t}return{init:l,destroy:u,get:f}}function z(e,t,n,r,i,a){let{measureSize:o,startEdge:s,endEdge:c}=e,l=n[0]&&i,u=h(),d=g(),p=n.map(o),m=_();function h(){if(!l)return 0;let e=n[0];return f(t[s]-e[s])}function g(){if(!l)return 0;let e=a.getComputedStyle(v(r));return parseFloat(e.getPropertyValue(`margin-${c}`))}function _(){return n.map((e,t,n)=>{let r=!t,i=b(n,t);return r?p[t]+u:i?p[t]+d:n[t+1][s]-e[s]}).map(f)}return{slideSizes:p,slideSizesWithGaps:m,startGap:u,endGap:d}}function pe(e,t,n,r,i,a,o,s,l){let{startEdge:u,endEdge:d,direction:p}=e,m=c(n);function h(e,t){return _(e).filter(e=>e%t===0).map(n=>e.slice(n,n+t))}function g(e){return e.length?_(e).reduce((n,c,m)=>{let h=v(n)||0,g=h===0,_=c===y(e),b=i[u]-a[h][u],x=i[u]-a[c][d],S=!r&&g?p(o):0,C=f(x-(!r&&_?p(s):0)-(b+S));return m&&C>t+l&&n.push(c),_&&n.push(e.length),n},[]).map((t,n,r)=>{let i=Math.max(r[n-1]||0);return e.slice(i,t)}):[]}function b(e){return m?h(e,n):g(e)}return{groupSlides:b}}function B(e,t,n,r,i,a,o){let{align:s,axis:c,direction:l,startIndex:u,loop:d,duration:f,dragFree:p,dragThreshold:m,inViewThreshold:h,slidesToScroll:g,skipSnaps:b,containScroll:x,watchResize:S,watchSlides:C,watchDrag:w,watchFocus:k}=a,B=te(),V=B.measure(t),H=n.map(B.measure),U=O(c,l),W=U.measureSize(V),G=ne(W),me=T(s,W),he=!d&&!!x,{slideSizes:ge,slideSizesWithGaps:K,startGap:_e,endGap:ve}=z(U,V,H,n,d||!!x,i),q=pe(U,W,g,d,V,H,_e,ve,2),{snaps:ye,snapsAligned:be}=F(U,me,V,H,q),J=-v(ye)+v(K),{snapsContained:xe,scrollContainLimit:Se}=oe(W,J,be,x,2),Y=he?xe:be,{limit:X}=M(J,Y,d),Z=A(y(Y),u,d),Ce=Z.clone(),we=_(n),Te=({dragHandler:e,scrollBody:t,scrollBounds:n,options:{loop:r}})=>{r||n.constrain(e.pointerDown()),t.seek()},Ee=({scrollBody:e,translate:t,location:n,offsetLocation:r,previousLocation:i,scrollLooper:a,slideLooper:o,dragHandler:s,animation:c,eventHandler:l,scrollBounds:u,options:{loop:d}},f)=>{let p=e.settled(),m=!u.shouldConstrain(),h=d?p:p&&m,g=h&&!s.pointerDown();g&&c.stop();let _=n.get()*f+i.get()*(1-f);r.set(_),d&&(a.loop(e.direction()),o.loop()),t.to(r.get()),g&&l.emit(`settle`),h||l.emit(`scroll`)},De=D(r,i,()=>Te(Be),e=>Ee(Be,e)),Oe=.68,ke=Y[Z.get()],Ae=L(ke),je=L(ke),Q=L(ke),$=L(ke),Me=ie(Ae,Q,je,$,f,Oe),Ne=se(d,Y,J,X,$),Pe=ce(De,Z,Ce,Me,Ne,$,o),Fe=P(X),Ie=E(),Le=fe(t,n,o,h),{slideRegistry:Re}=I(he,x,Y,Se,q,we),ze=le(e,n,Re,Pe,Me,Ie,o,k),Be={ownerDocument:r,ownerWindow:i,eventHandler:o,containerRect:V,slideRects:H,animation:De,axis:U,dragHandler:ee(U,e,r,i,$,j(U,i),Ae,De,Pe,Me,Ne,Z,o,G,p,m,b,Oe,w),eventStore:Ie,percentOfView:G,index:Z,indexPrevious:Ce,limit:X,location:Ae,offsetLocation:Q,previousLocation:je,options:a,resizeHandler:re(t,o,i,n,U,S,B),scrollBody:Me,scrollBounds:ae(X,Q,$,Me,G),scrollLooper:N(J,X,Q,[Ae,Q,je,$]),scrollProgress:Fe,scrollSnapList:Y.map(Fe.get),scrollSnaps:Y,scrollTarget:Ne,scrollTo:Pe,slideLooper:ue(U,W,J,ge,K,ye,Y,Q,n),slideFocus:ze,slidesHandler:de(t,o,C),slidesInView:Le,slideIndexes:we,slideRegistry:Re,slidesToScroll:q,target:$,translate:R(U,t)};return Be}function V(){let e={},t;function n(e){t=e}function r(t){return e[t]||[]}function i(e){return r(e).forEach(n=>n(t,e)),c}function a(t,n){return e[t]=r(t).concat([n]),c}function o(t,n){return e[t]=r(t).filter(e=>e!==n),c}function s(){e={}}let c={init:n,emit:i,off:o,on:a,clear:s};return c}var H={align:`center`,axis:`x`,container:null,slides:null,containScroll:`trimSnaps`,direction:`ltr`,slidesToScroll:1,inViewThreshold:0,breakpoints:{},dragFree:!1,dragThreshold:10,loop:!1,skipSnaps:!1,duration:25,startIndex:0,active:!0,watchDrag:!0,watchResize:!0,watchSlides:!0,watchFocus:!0};function U(e){function t(e,t){return C(e,t||{})}function n(n){let r=n.breakpoints||{};return t(n,S(r).filter(t=>e.matchMedia(t).matches).map(e=>r[e]).reduce((e,n)=>t(e,n),{}))}function r(t){return t.map(e=>S(e.breakpoints||{})).reduce((e,t)=>e.concat(t),[]).map(e.matchMedia)}return{mergeOptions:t,optionsAtMedia:n,optionsMediaQueries:r}}function W(e){let t=[];function n(n,r){return t=r.filter(({options:t})=>e.optionsAtMedia(t).active!==!1),t.forEach(t=>t.init(n,e)),r.reduce((e,t)=>Object.assign(e,{[t.name]:t}),{})}function r(){t=t.filter(e=>e.destroy())}return{init:n,destroy:r}}function G(e,t,n){let r=e.ownerDocument,i=r.defaultView,a=U(i),o=W(a),s=E(),c=V(),{mergeOptions:u,optionsAtMedia:d,optionsMediaQueries:f}=a,{on:p,off:m,emit:h}=c,g=k,_=!1,v,y=u(H,G.globalOptions),b=u(y),x=[],S,C,w;function T(){let{container:t,slides:n}=b;C=(l(t)?e.querySelector(t):t)||e.children[0];let r=l(n)?C.querySelectorAll(n):n;w=[].slice.call(r||C.children)}function D(t){let n=B(e,C,w,r,i,t,c);return t.loop&&!n.slideLooper.canLoop()?D(Object.assign({},t,{loop:!1})):n}function O(e,t){_||(y=u(y,e),b=d(y),x=t||x,T(),v=D(b),f([y,...x.map(({options:e})=>e)]).forEach(e=>s.add(e,`change`,k)),b.active&&(v.translate.to(v.location.get()),v.animation.init(),v.slidesInView.init(),v.slideFocus.init(R),v.eventHandler.init(R),v.resizeHandler.init(R),v.slidesHandler.init(R),v.options.loop&&v.slideLooper.loop(),C.offsetParent&&w.length&&v.dragHandler.init(R),S=o.init(R,x)))}function k(e,t){let n=M();A(),O(u({startIndex:n},e),t),c.emit(`reInit`)}function A(){v.dragHandler.destroy(),v.eventStore.clear(),v.translate.clear(),v.slideLooper.clear(),v.resizeHandler.destroy(),v.slidesHandler.destroy(),v.slidesInView.destroy(),v.animation.destroy(),o.destroy(),s.clear()}function ee(){_||(_=!0,s.clear(),A(),c.emit(`destroy`),c.clear())}function j(e,t,n){!b.active||_||(v.scrollBody.useBaseFriction().useDuration(t===!0?0:b.duration),v.scrollTo.index(e,n||0))}function te(e){j(v.index.add(1).get(),e,-1)}function ne(e){j(v.index.add(-1).get(),e,1)}function re(){return v.index.add(1).get()!==M()}function ie(){return v.index.add(-1).get()!==M()}function ae(){return v.scrollSnapList}function oe(){return v.scrollProgress.get(v.offsetLocation.get())}function M(){return v.index.get()}function N(){return v.indexPrevious.get()}function P(){return v.slidesInView.get()}function F(){return v.slidesInView.get(!1)}function I(){return S}function se(){return v}function ce(){return e}function le(){return C}function L(){return w}let R={canScrollNext:re,canScrollPrev:ie,containerNode:le,internalEngine:se,destroy:ee,off:m,on:p,emit:h,plugins:I,previousScrollSnap:N,reInit:g,rootNode:ce,scrollNext:te,scrollPrev:ne,scrollProgress:oe,scrollSnapList:ae,scrollTo:j,selectedScrollSnap:M,slideNodes:L,slidesInView:P,slidesNotInView:F};return O(t,n),setTimeout(()=>c.emit(`init`),0),R}G.globalOptions=void 0;var me={active:!0,breakpoints:{},delay:4e3,jump:!1,playOnInit:!0,stopOnFocusIn:!0,stopOnInteraction:!0,stopOnMouseEnter:!1,stopOnLastSnap:!1,rootNode:null};function he(e,t){let n=e.scrollSnapList();return typeof t==`number`?n.map(()=>t):t(n,e)}function ge(e,t){let n=e.rootNode();return t&&t(n)||n}function K(e={}){let t,n,r,i,a=null,o=0,s=!1,c=!1,l=!1,u=!1;function d(a,o){n=a;let{mergeOptions:s,optionsAtMedia:c}=o;if(t=c(s(s(me,K.globalOptions),e)),n.scrollSnapList().length<=1)return;u=t.jump,r=!1,i=he(n,t.delay);let{eventStore:l,ownerDocument:d}=n.internalEngine(),f=!!n.internalEngine().options.watchDrag,p=ge(n,t.rootNode);l.add(d,`visibilitychange`,_),f&&n.on(`pointerDown`,y),f&&!t.stopOnInteraction&&n.on(`pointerUp`,b),t.stopOnMouseEnter&&l.add(p,`mouseenter`,x),t.stopOnMouseEnter&&!t.stopOnInteraction&&l.add(p,`mouseleave`,S),t.stopOnFocusIn&&n.on(`slideFocusStart`,g),t.stopOnFocusIn&&!t.stopOnInteraction&&l.add(n.containerNode(),`focusout`,h),t.playOnInit&&h()}function f(){n.off(`pointerDown`,y).off(`pointerUp`,b).off(`slideFocusStart`,g),g(),r=!0,s=!1}function p(){let{ownerWindow:e}=n.internalEngine();e.clearTimeout(o),o=e.setTimeout(D,i[n.selectedScrollSnap()]),a=new Date().getTime(),n.emit(`autoplay:timerset`)}function m(){let{ownerWindow:e}=n.internalEngine();e.clearTimeout(o),o=0,a=null,n.emit(`autoplay:timerstopped`)}function h(){if(!r){if(v()){l=!0;return}s||n.emit(`autoplay:play`),p(),s=!0}}function g(){r||(s&&n.emit(`autoplay:stop`),m(),s=!1)}function _(){if(v())return l=s,g();l&&h()}function v(){let{ownerDocument:e}=n.internalEngine();return e.visibilityState===`hidden`}function y(){c||g()}function b(){c||h()}function x(){c=!0,g()}function S(){c=!1,h()}function C(e){e!==void 0&&(u=e),h()}function w(){s&&g()}function T(){s&&h()}function E(){return s}function D(){let{index:e}=n.internalEngine(),r=e.clone().add(1).get(),i=n.scrollSnapList().length-1,a=t.stopOnLastSnap&&r===i;if(n.canScrollNext()?n.scrollNext(u):n.scrollTo(0,u),n.emit(`autoplay:select`),a)return g();h()}function O(){return a?i[n.selectedScrollSnap()]-(new Date().getTime()-a):null}return{name:`autoplay`,options:e,init:d,destroy:f,play:C,stop:w,reset:T,isPlaying:E,timeUntilNext:O}}K.globalOptions=void 0;function*_e(e,t){if(e!==void 0){let n=0;for(let r of e)yield t(r,n++)}}var ve=e(`:host{--slide-height:19rem;--slide-size:100%;--slide-gap:0;--button-size:48px;--button-arrow-size:20px;--button-arrow-color:#4b5563;--button-offset:8px;--button-border-color:#e5e7eb;--button-border-radius:8px;--button-bg:#fffc;--button-color:inherit;--button-box-shadow-hover:0 1px 2px #3c40434d, 0 1px 3px 1px #3c404326;--dot-color:#9ca3af;--dot-color-active:#111827;--dot-margin:.5rem 0;--scrollbar-color:#d1d5db transparent;display:block;position:relative;container-type:inline-size}:host([single]){--slide-size:100%;--slide-gap:0}:host([axis=y]) .container{max-height:var(--slide-height);flex-direction:column}:host([axis=y]) .viewport{max-height:var(--slide-height)}.viewport{overflow:hidden}:host([with-scrollbar]) .viewport{scrollbar-color:var(--scrollbar-color);scrollbar-gutter:stable both-edges;scrollbar-width:thin;overflow-x:scroll}.container{backface-visibility:hidden;gap:var(--slide-gap);touch-action:pan-y pinch-zoom;display:flex}::slotted(l-carousel-item){flex:0 0 var(--slide-size);min-width:0}.scroll-buttons--inside{pointer-events:none;position:absolute;inset:0}.scroll-buttons--outside{justify-content:end;gap:8px;padding-block:8px;display:flex}.scroll-buttons--disabled,.inactive .scroll-buttons{display:none}.button-next,.button-previous,.button-fullscreen{appearance:none;touch-action:manipulation;border:1px solid var(--button-border-color);border-radius:var(--button-border-radius);width:var(--button-size);height:var(--button-size);background-color:var(--button-bg);color:var(--button-color);cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:#31313180;justify-content:center;align-items:center;display:flex}.scroll-buttons--inside .button-previous,.scroll-buttons--inside .button-next,.button-fullscreen{top:calc(50% - (var(--button-size) / 2));z-index:1;position:absolute}.scroll-buttons--inside .button-previous{left:var(--button-offset)}.scroll-buttons--inside .button-next{right:var(--button-offset)}.scroll-buttons--inside .button:disabled{visibility:hidden}.button:disabled{cursor:not-allowed;pointer-events:none;opacity:.4}.button-fullscreen{right:var(--button-offset);top:var(--button-offset);width:calc(var(--button-size) * .75);height:calc(var(--button-size) * .75);border-radius:4px}@container (width>=640px){.button-fullscreen{width:var(--button-size);height:var(--button-size)}}@media (hover:hover){.button:hover:not(:disabled){box-shadow:var(--button-box-shadow-hover)}}.button svg{width:var(--button-arrow-size);height:var(--button-arrow-size);color:var(--button-arrow-color)}.dots{margin:var(--dot-margin);justify-content:center;display:flex}.dot{appearance:none;touch-action:manipulation;cursor:pointer;background:0 0;border:0;place-items:center;padding-block:.5rem;padding-inline:.25rem;display:inline-flex}.dot--bar i{background:var(--dot-color);width:1rem;height:.125rem}.dot--selected i{background:var(--dot-color-active)}.dot--circle i{border:2px solid var(--dot-color-active);border-radius:8px;width:10px;height:10px;display:inline-block}.dot--circle.dot--selected i{width:30px}`),q=class extends n{static{this.styles=[s,ve]}#e=0;get autoplay(){return this.#e}set autoplay(e){this.#e=e}#t;get autoplayOptions(){return this.#t}set autoplayOptions(e){this.#t=e}#n=`x`;get axis(){return this.#n}set axis(e){this.#n=e}#r=`start`;get align(){return this.#r}set align(e){this.#r=e}#i={};get breakpoints(){return this.#i}set breakpoints(e){this.#i=e}#a=!1;get loop(){return this.#a}set loop(e){this.#a=e}#o=!1;get dragFree(){return this.#o}set dragFree(e){this.#o=e}#s=20;get duration(){return this.#s}set duration(e){this.#s=e}#c=!1;get skipSnaps(){return this.#c}set skipSnaps(e){this.#c=e}#l=1;get slidesToScroll(){return this.#l}set slidesToScroll(e){this.#l=e}#u=0;get startIndex(){return this.#u}set startIndex(e){this.#u=e}#d=`trimSnaps`;get containScroll(){return this.#d}set containScroll(e){this.#d=e}#f=!1;get single(){return this.#f}set single(e){this.#f=e}#p=!1;get withDots(){return this.#p}set withDots(e){this.#p=e}#m=!1;get withScrollbar(){return this.#m}set withScrollbar(e){this.#m=e}#h=!1;get withFullscreen(){return this.#h}set withFullscreen(e){this.#h=e}#g=`bar`;get dotAppearance(){return this.#g}set dotAppearance(e){this.#g=e}#_=`inside`;get scrollButtonsPosition(){return this.#_}set scrollButtonsPosition(e){this.#_=e}constructor(){super(),this.next=this.next.bind(this),this.previous=this.previous.bind(this),this.onInit=this.onInit.bind(this),this.onReInit=this.onReInit.bind(this),this.onResize=this.onResize.bind(this),this.onSelect=this.onSelect.bind(this),this.onSlidesInView=this.onSlidesInView.bind(this),this.detachEventListeners=this.detachEventListeners.bind(this)}connectedCallback(){super.connectedCallback(),this.createEmbla()}disconnectedCallback(){super.disconnectedCallback(),this.embla&&this.embla.destroy()}firstUpdated(){this.attachEventListeners()}createEmbla(){this.embla=G(this,this.options()),this.embla.on(`init`,this.onInit).on(`reInit`,this.onReInit).on(`resize`,this.onResize).on(`slidesInView`,this.onSlidesInView).on(`select`,this.onSelect).on(`destroy`,this.detachEventListeners)}onSlidesInView(){this.emit(`slides-in-view`,{detail:{indexes:this.embla.slidesInView()}})}onInit(){this.updateNavigation()}onReInit(){this.updateNavigation(),this.requestUpdate()}onSelect(){this.emit(`select`,{detail:{index:this.embla.selectedScrollSnap()}}),this.updateNavigation()}onResize(){this.requestUpdate()}attachEventListeners(){this.previousBtn.addEventListener(`click`,this.previous),this.nextBtn.addEventListener(`click`,this.next)}detachEventListeners(){this.previousBtn.removeEventListener(`click`,this.previous),this.nextBtn.removeEventListener(`click`,this.next)}updateNavigation(){let e=this.embla.canScrollPrev()||this.embla.canScrollNext();if(this.previousBtn.toggleAttribute(`disabled`,!this.embla.canScrollPrev()),this.nextBtn.toggleAttribute(`disabled`,!this.embla.canScrollNext()),this.scrollButtons.classList.toggle(`scroll-buttons--disabled`,!e),this.withDots){let e=this.embla.previousScrollSnap(),t=this.embla.selectedScrollSnap();this.dotNodes[e]?.classList.remove(`dot--selected`),this.dotNodes[e]?.removeAttribute(`aria-selected`),this.dotNodes[t]?.classList.add(`dot--selected`),this.dotNodes[t]?.setAttribute(`aria-selected`,`true`)}}async updated(e){e.has(`autoplay`)&&this.autoplay&&this.initAutoplay()}initAutoplay(){this.embla.reInit(this.options(),[K(this.autoplayOptions||{delay:this.autoplay})])}handleSlotChange(e){e.target.assignedElements().length>0&&this.embla.reInit(this.options())}handleDotClick(e){let t=e.currentTarget;this.goToSlide(Number(t.dataset.index))}options(){let e=this.shadowRoot.querySelector(`slot`);return e?{container:e,slides:e.assignedElements(),containScroll:this.containScroll,breakpoints:this.breakpoints,axis:this.axis,align:this.align,dragFree:this.dragFree,duration:this.duration,loop:this.loop,slidesToScroll:this.slidesToScroll,skipSnaps:this.skipSnaps,startIndex:this.startIndex}:{container:this,slides:[]}}next(){this.embla.scrollNext()}previous(){this.embla.scrollPrev()}goToSlide(e,t){this.embla.scrollTo(e,t)}slideNodes(){this.embla.slideNodes()}slidesInView(){this.embla.slidesInView()}isActive(){return this.embla?.internalEngine().options.active}renderFullscreenButton(){return t`<button
1
+ import{c as e,i as t,n}from"../../chunks/lit.js";import{LuxenElement as r}from"../../shared/luxen-element.js";import{i,n as a,r as o,t as s}from"../../chunks/decorate.js";import c from"../../shared/styles/host.styles.js";function l(e){return typeof e==`number`}function u(e){return typeof e==`string`}function d(e){return typeof e==`boolean`}function f(e){return Object.prototype.toString.call(e)===`[object Object]`}function p(e){return Math.abs(e)}function m(e){return Math.sign(e)}function h(e,t){return p(e-t)}function g(e,t){return e===0||t===0||p(e)<=p(t)?0:p(h(p(e),p(t))/e)}function _(e){return Math.round(e*100)/100}function v(e){return C(e).map(Number)}function y(e){return e[b(e)]}function b(e){return Math.max(0,e.length-1)}function x(e,t){return t===b(e)}function S(e,t=0){return Array.from(Array(e),(e,n)=>t+n)}function C(e){return Object.keys(e)}function w(e,t){return[e,t].reduce((e,t)=>(C(t).forEach(n=>{let r=e[n],i=t[n];e[n]=f(r)&&f(i)?w(r,i):i}),e),{})}function T(e,t){return t.MouseEvent!==void 0&&e instanceof t.MouseEvent}function E(e,t){let n={start:r,center:i,end:a};function r(){return 0}function i(e){return a(e)/2}function a(e){return t-e}function o(r,i){return u(e)?n[e](r):e(t,r,i)}return{measure:o}}function D(){let e=[];function t(t,n,i,a={passive:!0}){let o;if(`addEventListener`in t)t.addEventListener(n,i,a),o=()=>t.removeEventListener(n,i,a);else{let e=t;e.addListener(i),o=()=>e.removeListener(i)}return e.push(o),r}function n(){e=e.filter(e=>e())}let r={add:t,clear:n};return r}function O(e,t,n,r){let i=D(),a=1e3/60,o=null,s=0,c=0;function l(){i.add(e,`visibilitychange`,()=>{e.hidden&&m()})}function u(){p(),i.clear()}function d(e){if(!c)return;o||(o=e,n(),n());let i=e-o;for(o=e,s+=i;s>=a;)n(),s-=a;r(s/a),c&&=t.requestAnimationFrame(d)}function f(){c||=t.requestAnimationFrame(d)}function p(){t.cancelAnimationFrame(c),o=null,s=0,c=0}function m(){o=null,s=0}return{init:l,destroy:u,start:f,stop:p,update:n,render:r}}function k(e,t){let n=t===`rtl`,r=e===`y`,i=r?`y`:`x`,a=r?`x`:`y`,o=!r&&n?-1:1,s=u(),c=d();function l(e){let{height:t,width:n}=e;return r?t:n}function u(){return r?`top`:n?`right`:`left`}function d(){return r?`bottom`:n?`left`:`right`}function f(e){return e*o}return{scroll:i,cross:a,startEdge:s,endEdge:c,measureSize:l,direction:f}}function A(e=0,t=0){let n=p(e-t);function r(t){return t<e}function i(e){return e>t}function a(e){return r(e)||i(e)}function o(n){return a(n)?r(n)?e:t:n}function s(e){return n?e-n*Math.ceil((e-t)/n):e}return{length:n,max:t,min:e,constrain:o,reachedAny:a,reachedMax:i,reachedMin:r,removeOffset:s}}function j(e,t,n){let{constrain:r}=A(0,e),i=e+1,a=o(t);function o(e){return n?p((i+e)%i):r(e)}function s(){return a}function c(e){return a=o(e),d}function l(e){return u().set(s()+e)}function u(){return j(e,s(),n)}let d={get:s,set:c,add:l,clone:u};return d}function M(e,t,n,r,i,a,o,s,c,l,u,f,_,v,y,b,x,S,C){let{cross:w,direction:E}=e,O=[`INPUT`,`SELECT`,`TEXTAREA`],k={passive:!1},j=D(),M=D(),ee=A(50,225).constrain(v.measure(20)),te={mouse:300,touch:400},ne={mouse:500,touch:600},re=y?43:25,ie=!1,ae=0,N=0,P=!1,F=!1,I=!1,L=!1;function oe(e){if(!C)return;function n(t){(d(C)||C(e,t))&&de(t)}let r=t;j.add(r,`dragstart`,e=>e.preventDefault(),k).add(r,`touchmove`,()=>void 0,k).add(r,`touchend`,()=>void 0).add(r,`touchstart`,n).add(r,`mousedown`,n).add(r,`touchcancel`,z).add(r,`contextmenu`,z).add(r,`click`,pe,!0)}function se(){j.clear(),M.clear()}function ce(){let e=L?n:t;M.add(e,`touchmove`,fe,k).add(e,`touchend`,z).add(e,`mousemove`,fe,k).add(e,`mouseup`,z)}function le(e){let t=e.nodeName||``;return O.includes(t)}function R(){return(y?ne:te)[L?`mouse`:`touch`]}function ue(e,t){let n=f.add(m(e)*-1),r=u.byDistance(e,!y).distance;return y||p(e)<ee?r:x&&t?r*.5:u.byIndex(n.get(),0).distance}function de(e){let t=T(e,r);L=t,I=y&&t&&!e.buttons&&ie,ie=h(i.get(),o.get())>=2,!(t&&e.button!==0)&&(le(e.target)||(P=!0,a.pointerDown(e),l.useFriction(0).useDuration(0),i.set(o),ce(),ae=a.readPoint(e),N=a.readPoint(e,w),_.emit(`pointerDown`)))}function fe(e){if(!T(e,r)&&e.touches.length>=2)return z(e);let t=a.readPoint(e),n=a.readPoint(e,w),o=h(t,ae),c=h(n,N);if(!F&&!L&&(!e.cancelable||(F=o>c,!F)))return z(e);let u=a.pointerMove(e);o>b&&(I=!0),l.useFriction(.3).useDuration(.75),s.start(),i.add(E(u)),e.preventDefault()}function z(e){let t=u.byDistance(0,!1).index!==f.get(),n=a.pointerUp(e)*R(),r=ue(E(n),t),i=g(n,r),o=re-10*i,s=S+i/50;F=!1,P=!1,M.clear(),l.useDuration(o).useFriction(s),c.distance(r,!y),L=!1,_.emit(`pointerUp`)}function pe(e){I&&=(e.stopPropagation(),e.preventDefault(),!1)}function me(){return P}return{init:oe,destroy:se,pointerDown:me}}function ee(e,t){let n,r;function i(e){return e.timeStamp}function a(n,r){let i=`client${(r||e.scroll)===`x`?`X`:`Y`}`;return(T(n,t)?n:n.touches[0])[i]}function o(e){return n=e,r=e,a(e)}function s(e){let t=a(e)-a(r),o=i(e)-i(n)>170;return r=e,o&&(n=e),t}function c(e){if(!n||!r)return 0;let t=a(r)-a(n),o=i(e)-i(n),s=i(e)-i(r)>170,c=t/o;return o&&!s&&p(c)>.1?c:0}return{pointerDown:o,pointerMove:s,pointerUp:c,readPoint:a}}function te(){function e(e){let{offsetTop:t,offsetLeft:n,offsetWidth:r,offsetHeight:i}=e;return{top:t,right:n+r,bottom:t+i,left:n,width:r,height:i}}return{measure:e}}function ne(e){function t(t){return t/100*e}return{measure:t}}function re(e,t,n,r,i,a,o){let s=[e].concat(r),c,l,u=[],f=!1;function m(e){return i.measureSize(o.measure(e))}function h(i){if(!a)return;l=m(e),u=r.map(m);function o(n){for(let a of n){if(f)return;let n=a.target===e,o=r.indexOf(a.target),s=n?l:u[o];if(p(m(n?e:r[o])-s)>=.5){i.reInit(),t.emit(`resize`);break}}}c=new ResizeObserver(e=>{(d(a)||a(i,e))&&o(e)}),n.requestAnimationFrame(()=>{s.forEach(e=>c.observe(e))})}function g(){f=!0,c&&c.disconnect()}return{init:h,destroy:g}}function ie(e,t,n,r,i,a){let o=0,s=0,c=i,l=a,u=e.get(),d=0;function f(){let t=r.get()-e.get(),i=!c,a=0;return i?(o=0,n.set(r),e.set(r),a=t):(n.set(e),o+=t/c,o*=l,u+=o,e.add(o),a=u-d),s=m(a),d=u,C}function h(){return p(r.get()-t.get())<.001}function g(){return c}function _(){return s}function v(){return o}function y(){return x(i)}function b(){return S(a)}function x(e){return c=e,C}function S(e){return l=e,C}let C={direction:_,duration:g,velocity:v,seek:f,settled:h,useBaseFriction:b,useBaseDuration:y,useFriction:S,useDuration:x};return C}function ae(e,t,n,r,i){let a=i.measure(10),o=i.measure(50),s=A(.1,.99),c=!1;function l(){return!(c||!e.reachedAny(n.get())||!e.reachedAny(t.get()))}function u(i){if(!l())return;let c=p(e[e.reachedMin(t.get())?`min`:`max`]-t.get()),u=n.get()-t.get(),d=s.constrain(c/o);n.subtract(u*d),!i&&p(u)<a&&(n.set(e.constrain(n.get())),r.useDuration(25).useBaseFriction())}function d(e){c=!e}return{shouldConstrain:l,constrain:u,toggleActive:d}}function N(e,t,n,r,i){let a=A(-t+e,0),o=d(),s=u(),c=f();function l(e,t){return h(e,t)<=1}function u(){let e=o[0],t=y(o);return A(o.lastIndexOf(e),o.indexOf(t)+1)}function d(){return n.map((e,t)=>{let{min:r,max:i}=a,o=a.constrain(e),s=!t,c=x(n,t);return s?i:c||l(r,o)?r:l(i,o)?i:o}).map(e=>parseFloat(e.toFixed(3)))}function f(){if(t<=e+i)return[a.max];if(r===`keepSnaps`)return o;let{min:n,max:c}=s;return o.slice(n,c)}return{snapsContained:c,scrollContainLimit:s}}function P(e,t,n){let r=t[0];return{limit:A(n?r-e:y(t),r)}}function F(e,t,n,r){let i=.1,{reachedMin:a,reachedMax:o}=A(t.min+i,t.max+i);function s(e){return e===1?o(n.get()):e===-1?a(n.get()):!1}function c(t){if(!s(t))return;let n=t*-1*e;r.forEach(e=>e.add(n))}return{loop:c}}function I(e){let{max:t,length:n}=e;function r(e){let r=e-t;return n?r/-n:0}return{get:r}}function L(e,t,n,r,i){let{startEdge:a,endEdge:o}=e,{groupSlides:s}=i,c=d().map(t.measure),l=f(),u=m();function d(){return s(r).map(e=>y(e)[o]-e[0][a]).map(p)}function f(){return r.map(e=>n[a]-e[a]).map(e=>-p(e))}function m(){return s(l).map(e=>e[0]).map((e,t)=>e+c[t])}return{snaps:l,snapsAligned:u}}function oe(e,t,n,r,i,a){let{groupSlides:o}=i,{min:s,max:c}=r,l=u();function u(){let r=o(a),i=!e||t===`keepSnaps`;return n.length===1?[a]:i?r:r.slice(s,c).map((e,t,n)=>{let r=!t,i=x(n,t);return r?S(y(n[0])+1):i?S(b(a)-y(n)[0]+1,y(n)[0]):e})}return{slideRegistry:l}}function se(e,t,n,r,i){let{reachedAny:a,removeOffset:o,constrain:s}=r;function c(e){return e.concat().sort((e,t)=>p(e)-p(t))[0]}function l(n){let r=e?o(n):s(n),{index:i}=t.map((e,t)=>({diff:u(e-r,0),index:t})).sort((e,t)=>p(e.diff)-p(t.diff))[0];return{index:i,distance:r}}function u(t,r){let i=[t,t+n,t-n];if(!e)return t;if(!r)return c(i);let a=i.filter(e=>m(e)===r);return a.length?c(a):y(i)-n}function d(e,n){return{index:e,distance:u(t[e]-i.get(),n)}}function f(n,r){let o=i.get()+n,{index:s,distance:c}=l(o),d=!e&&a(o);return!r||d?{index:s,distance:n}:{index:s,distance:n+u(t[s]-c,0)}}return{byDistance:f,byIndex:d,shortcut:u}}function ce(e,t,n,r,i,a,o){function s(i){let s=i.distance,c=i.index!==t.get();a.add(s),s&&(r.duration()?e.start():(e.update(),e.render(1),e.update())),c&&(n.set(t.get()),t.set(i.index),o.emit(`select`))}function c(e,t){s(i.byDistance(e,t))}function l(e,n){let r=t.clone().set(e);s(i.byIndex(r.get(),n))}return{distance:c,index:l}}function le(e,t,n,r,i,a,o,s){let c={passive:!0,capture:!0},u=0;function f(f){if(!s)return;function m(t){if(new Date().getTime()-u>10)return;o.emit(`slideFocusStart`),e.scrollLeft=0;let a=n.findIndex(e=>e.includes(t));l(a)&&(i.useDuration(0),r.index(a,0),o.emit(`slideFocus`))}a.add(document,`keydown`,p,!1),t.forEach((e,t)=>{a.add(e,`focus`,e=>{(d(s)||s(f,e))&&m(t)},c)})}function p(e){e.code===`Tab`&&(u=new Date().getTime())}return{init:f}}function R(e){let t=e;function n(){return t}function r(e){t=o(e)}function i(e){t+=o(e)}function a(e){t-=o(e)}function o(e){return l(e)?e:e.get()}return{get:n,set:r,add:i,subtract:a}}function ue(e,t){let n=e.scroll===`x`?o:s,r=t.style,i=null,a=!1;function o(e){return`translate3d(${e}px,0px,0px)`}function s(e){return`translate3d(0px,${e}px,0px)`}function c(t){if(a)return;let o=_(e.direction(t));o!==i&&(r.transform=n(o),i=o)}function l(e){a=!e}function u(){a||(r.transform=``,t.getAttribute(`style`)||t.removeAttribute(`style`))}return{clear:u,to:c,toggleActive:l}}function de(e,t,n,r,i,a,o,s,c){let l=.5,u=v(i),d=v(i).reverse(),f=_().concat(y());function p(e,t){return e.reduce((e,t)=>e-i[t],t)}function m(e,t){return e.reduce((e,n)=>p(e,t)>0?e.concat([n]):e,[])}function h(e){return a.map((n,i)=>({start:n-r[i]+l+e,end:n+t-l+e}))}function g(t,r,i){let a=h(r);return t.map(t=>{let r=i?0:-n,o=i?n:0,l=i?`end`:`start`,u=a[t][l];return{index:t,loopPoint:u,slideLocation:R(-1),translate:ue(e,c[t]),target:()=>s.get()>u?r:o}})}function _(){let e=o[0];return g(m(d,e),n,!1)}function y(){return g(m(u,t-o[0]-1),-n,!0)}function b(){return f.every(({index:e})=>p(u.filter(t=>t!==e),t)<=.1)}function x(){f.forEach(e=>{let{target:t,translate:n,slideLocation:r}=e,i=t();i!==r.get()&&(n.to(i),r.set(i))})}function S(){f.forEach(e=>e.translate.clear())}return{canLoop:b,clear:S,loop:x,loopPoints:f}}function fe(e,t,n){let r,i=!1;function a(a){if(!n)return;function o(e){for(let n of e)if(n.type===`childList`){a.reInit(),t.emit(`slidesChanged`);break}}r=new MutationObserver(e=>{i||(d(n)||n(a,e))&&o(e)}),r.observe(e,{childList:!0})}function o(){r&&r.disconnect(),i=!0}return{init:a,destroy:o}}function z(e,t,n,r){let i={},a=null,o=null,s,c=!1;function l(){s=new IntersectionObserver(e=>{c||(e.forEach(e=>{let n=t.indexOf(e.target);i[n]=e}),a=null,o=null,n.emit(`slidesInView`))},{root:e.parentElement,threshold:r}),t.forEach(e=>s.observe(e))}function u(){s&&s.disconnect(),c=!0}function d(e){return C(i).reduce((t,n)=>{let r=parseInt(n),{isIntersecting:a}=i[r];return(e&&a||!e&&!a)&&t.push(r),t},[])}function f(e=!0){if(e&&a)return a;if(!e&&o)return o;let t=d(e);return e&&(a=t),e||(o=t),t}return{init:l,destroy:u,get:f}}function pe(e,t,n,r,i,a){let{measureSize:o,startEdge:s,endEdge:c}=e,l=n[0]&&i,u=h(),d=g(),f=n.map(o),m=_();function h(){if(!l)return 0;let e=n[0];return p(t[s]-e[s])}function g(){if(!l)return 0;let e=a.getComputedStyle(y(r));return parseFloat(e.getPropertyValue(`margin-${c}`))}function _(){return n.map((e,t,n)=>{let r=!t,i=x(n,t);return r?f[t]+u:i?f[t]+d:n[t+1][s]-e[s]}).map(p)}return{slideSizes:f,slideSizesWithGaps:m,startGap:u,endGap:d}}function me(e,t,n,r,i,a,o,s,c){let{startEdge:u,endEdge:d,direction:f}=e,m=l(n);function h(e,t){return v(e).filter(e=>e%t===0).map(n=>e.slice(n,n+t))}function g(e){return e.length?v(e).reduce((n,l,m)=>{let h=y(n)||0,g=h===0,_=l===b(e),v=i[u]-a[h][u],x=i[u]-a[l][d],S=!r&&g?f(o):0,C=p(x-(!r&&_?f(s):0)-(v+S));return m&&C>t+c&&n.push(l),_&&n.push(e.length),n},[]).map((t,n,r)=>{let i=Math.max(r[n-1]||0);return e.slice(i,t)}):[]}function _(e){return m?h(e,n):g(e)}return{groupSlides:_}}function B(e,t,n,r,i,a,o){let{align:s,axis:c,direction:l,startIndex:u,loop:d,duration:f,dragFree:p,dragThreshold:m,inViewThreshold:h,slidesToScroll:g,skipSnaps:_,containScroll:x,watchResize:S,watchSlides:C,watchDrag:w,watchFocus:T}=a,A=te(),B=A.measure(t),V=n.map(A.measure),H=k(c,l),U=H.measureSize(B),he=ne(U),ge=E(s,U),_e=!d&&!!x,{slideSizes:ve,slideSizesWithGaps:ye,startGap:be,endGap:xe}=pe(H,B,V,n,d||!!x,i),Se=me(H,U,g,d,B,V,be,xe,2),{snaps:W,snapsAligned:Ce}=L(H,ge,B,V,Se),G=-y(W)+y(ye),{snapsContained:we,scrollContainLimit:Te}=N(U,G,Ce,x,2),K=_e?we:Ce,{limit:q}=P(G,K,d),J=j(b(K),u,d),Ee=J.clone(),De=v(n),Oe=({dragHandler:e,scrollBody:t,scrollBounds:n,options:{loop:r}})=>{r||n.constrain(e.pointerDown()),t.seek()},ke=({scrollBody:e,translate:t,location:n,offsetLocation:r,previousLocation:i,scrollLooper:a,slideLooper:o,dragHandler:s,animation:c,eventHandler:l,scrollBounds:u,options:{loop:d}},f)=>{let p=e.settled(),m=!u.shouldConstrain(),h=d?p:p&&m,g=h&&!s.pointerDown();g&&c.stop();let _=n.get()*f+i.get()*(1-f);r.set(_),d&&(a.loop(e.direction()),o.loop()),t.to(r.get()),g&&l.emit(`settle`),h||l.emit(`scroll`)},Ae=O(r,i,()=>Oe(Be),e=>ke(Be,e)),je=.68,Y=K[J.get()],X=R(Y),Me=R(Y),Z=R(Y),Q=R(Y),$=ie(X,Z,Me,Q,f,je),Ne=se(d,K,G,q,Q),Pe=ce(Ae,J,Ee,$,Ne,Q,o),Fe=I(q),Ie=D(),Le=z(t,n,o,h),{slideRegistry:Re}=oe(_e,x,K,Te,Se,De),ze=le(e,n,Re,Pe,$,Ie,o,T),Be={ownerDocument:r,ownerWindow:i,eventHandler:o,containerRect:B,slideRects:V,animation:Ae,axis:H,dragHandler:M(H,e,r,i,Q,ee(H,i),X,Ae,Pe,$,Ne,J,o,he,p,m,_,je,w),eventStore:Ie,percentOfView:he,index:J,indexPrevious:Ee,limit:q,location:X,offsetLocation:Z,previousLocation:Me,options:a,resizeHandler:re(t,o,i,n,H,S,A),scrollBody:$,scrollBounds:ae(q,Z,Q,$,he),scrollLooper:F(G,q,Z,[X,Z,Me,Q]),scrollProgress:Fe,scrollSnapList:K.map(Fe.get),scrollSnaps:K,scrollTarget:Ne,scrollTo:Pe,slideLooper:de(H,U,G,ve,ye,W,K,Z,n),slideFocus:ze,slidesHandler:fe(t,o,C),slidesInView:Le,slideIndexes:De,slideRegistry:Re,slidesToScroll:Se,target:Q,translate:ue(H,t)};return Be}function V(){let e={},t;function n(e){t=e}function r(t){return e[t]||[]}function i(e){return r(e).forEach(n=>n(t,e)),c}function a(t,n){return e[t]=r(t).concat([n]),c}function o(t,n){return e[t]=r(t).filter(e=>e!==n),c}function s(){e={}}let c={init:n,emit:i,off:o,on:a,clear:s};return c}var H={align:`center`,axis:`x`,container:null,slides:null,containScroll:`trimSnaps`,direction:`ltr`,slidesToScroll:1,inViewThreshold:0,breakpoints:{},dragFree:!1,dragThreshold:10,loop:!1,skipSnaps:!1,duration:25,startIndex:0,active:!0,watchDrag:!0,watchResize:!0,watchSlides:!0,watchFocus:!0};function U(e){function t(e,t){return w(e,t||{})}function n(n){let r=n.breakpoints||{};return t(n,C(r).filter(t=>e.matchMedia(t).matches).map(e=>r[e]).reduce((e,n)=>t(e,n),{}))}function r(t){return t.map(e=>C(e.breakpoints||{})).reduce((e,t)=>e.concat(t),[]).map(e.matchMedia)}return{mergeOptions:t,optionsAtMedia:n,optionsMediaQueries:r}}function he(e){let t=[];function n(n,r){return t=r.filter(({options:t})=>e.optionsAtMedia(t).active!==!1),t.forEach(t=>t.init(n,e)),r.reduce((e,t)=>Object.assign(e,{[t.name]:t}),{})}function r(){t=t.filter(e=>e.destroy())}return{init:n,destroy:r}}function ge(e,t,n){let r=e.ownerDocument,i=r.defaultView,a=U(i),o=he(a),s=D(),c=V(),{mergeOptions:l,optionsAtMedia:d,optionsMediaQueries:f}=a,{on:p,off:m,emit:h}=c,g=k,_=!1,v,y=l(H,ge.globalOptions),b=l(y),x=[],S,C,w;function T(){let{container:t,slides:n}=b;C=(u(t)?e.querySelector(t):t)||e.children[0];let r=u(n)?C.querySelectorAll(n):n;w=[].slice.call(r||C.children)}function E(t){let n=B(e,C,w,r,i,t,c);return t.loop&&!n.slideLooper.canLoop()?E(Object.assign({},t,{loop:!1})):n}function O(e,t){_||(y=l(y,e),b=d(y),x=t||x,T(),v=E(b),f([y,...x.map(({options:e})=>e)]).forEach(e=>s.add(e,`change`,k)),b.active&&(v.translate.to(v.location.get()),v.animation.init(),v.slidesInView.init(),v.slideFocus.init(R),v.eventHandler.init(R),v.resizeHandler.init(R),v.slidesHandler.init(R),v.options.loop&&v.slideLooper.loop(),C.offsetParent&&w.length&&v.dragHandler.init(R),S=o.init(R,x)))}function k(e,t){let n=N();A(),O(l({startIndex:n},e),t),c.emit(`reInit`)}function A(){v.dragHandler.destroy(),v.eventStore.clear(),v.translate.clear(),v.slideLooper.clear(),v.resizeHandler.destroy(),v.slidesHandler.destroy(),v.slidesInView.destroy(),v.animation.destroy(),o.destroy(),s.clear()}function j(){_||(_=!0,s.clear(),A(),c.emit(`destroy`),c.clear())}function M(e,t,n){!b.active||_||(v.scrollBody.useBaseFriction().useDuration(t===!0?0:b.duration),v.scrollTo.index(e,n||0))}function ee(e){M(v.index.add(1).get(),e,-1)}function te(e){M(v.index.add(-1).get(),e,1)}function ne(){return v.index.add(1).get()!==N()}function re(){return v.index.add(-1).get()!==N()}function ie(){return v.scrollSnapList}function ae(){return v.scrollProgress.get(v.offsetLocation.get())}function N(){return v.index.get()}function P(){return v.indexPrevious.get()}function F(){return v.slidesInView.get()}function I(){return v.slidesInView.get(!1)}function L(){return S}function oe(){return v}function se(){return e}function ce(){return C}function le(){return w}let R={canScrollNext:ne,canScrollPrev:re,containerNode:ce,internalEngine:oe,destroy:j,off:m,on:p,emit:h,plugins:L,previousScrollSnap:P,reInit:g,rootNode:se,scrollNext:ee,scrollPrev:te,scrollProgress:ae,scrollSnapList:ie,scrollTo:M,selectedScrollSnap:N,slideNodes:le,slidesInView:F,slidesNotInView:I};return O(t,n),setTimeout(()=>c.emit(`init`),0),R}ge.globalOptions=void 0;var _e={active:!0,breakpoints:{},delay:4e3,jump:!1,playOnInit:!0,stopOnFocusIn:!0,stopOnInteraction:!0,stopOnMouseEnter:!1,stopOnLastSnap:!1,rootNode:null};function ve(e,t){let n=e.scrollSnapList();return typeof t==`number`?n.map(()=>t):t(n,e)}function ye(e,t){let n=e.rootNode();return t&&t(n)||n}function be(e={}){let t,n,r,i,a=null,o=0,s=!1,c=!1,l=!1,u=!1;function d(a,o){n=a;let{mergeOptions:s,optionsAtMedia:c}=o;if(t=c(s(s(_e,be.globalOptions),e)),n.scrollSnapList().length<=1)return;u=t.jump,r=!1,i=ve(n,t.delay);let{eventStore:l,ownerDocument:d}=n.internalEngine(),f=!!n.internalEngine().options.watchDrag,p=ye(n,t.rootNode);l.add(d,`visibilitychange`,_),f&&n.on(`pointerDown`,y),f&&!t.stopOnInteraction&&n.on(`pointerUp`,b),t.stopOnMouseEnter&&l.add(p,`mouseenter`,x),t.stopOnMouseEnter&&!t.stopOnInteraction&&l.add(p,`mouseleave`,S),t.stopOnFocusIn&&n.on(`slideFocusStart`,g),t.stopOnFocusIn&&!t.stopOnInteraction&&l.add(n.containerNode(),`focusout`,h),t.playOnInit&&h()}function f(){n.off(`pointerDown`,y).off(`pointerUp`,b).off(`slideFocusStart`,g),g(),r=!0,s=!1}function p(){let{ownerWindow:e}=n.internalEngine();e.clearTimeout(o),o=e.setTimeout(D,i[n.selectedScrollSnap()]),a=new Date().getTime(),n.emit(`autoplay:timerset`)}function m(){let{ownerWindow:e}=n.internalEngine();e.clearTimeout(o),o=0,a=null,n.emit(`autoplay:timerstopped`)}function h(){if(!r){if(v()){l=!0;return}s||n.emit(`autoplay:play`),p(),s=!0}}function g(){r||(s&&n.emit(`autoplay:stop`),m(),s=!1)}function _(){if(v())return l=s,g();l&&h()}function v(){let{ownerDocument:e}=n.internalEngine();return e.visibilityState===`hidden`}function y(){c||g()}function b(){c||h()}function x(){c=!0,g()}function S(){c=!1,h()}function C(e){e!==void 0&&(u=e),h()}function w(){s&&g()}function T(){s&&h()}function E(){return s}function D(){let{index:e}=n.internalEngine(),r=e.clone().add(1).get(),i=n.scrollSnapList().length-1,a=t.stopOnLastSnap&&r===i;if(n.canScrollNext()?n.scrollNext(u):n.scrollTo(0,u),n.emit(`autoplay:select`),a)return g();h()}function O(){return a?i[n.selectedScrollSnap()]-(new Date().getTime()-a):null}return{name:`autoplay`,options:e,init:d,destroy:f,play:C,stop:w,reset:T,isPlaying:E,timeUntilNext:O}}be.globalOptions=void 0;function*xe(e,t){if(e!==void 0){let n=0;for(let r of e)yield t(r,n++)}}var Se=e(`:host{--slide-height:19rem;--slide-size:100%;--slide-gap:0;--button-size:48px;--button-arrow-size:20px;--button-arrow-color:#4b5563;--button-offset:8px;--button-border-color:#e5e7eb;--button-border-radius:8px;--button-bg:#fffc;--button-color:inherit;--button-box-shadow-hover:0 1px 2px #3c40434d, 0 1px 3px 1px #3c404326;--dot-color:#9ca3af;--dot-color-active:#111827;--dot-margin:.5rem 0;--dot-edge-scale:.5;--scrollbar-color:#d1d5db transparent;display:block;position:relative;container-type:inline-size}:host([single]){--slide-size:100%;--slide-gap:0}:host([axis=y]) .container{max-height:var(--slide-height);flex-direction:column}:host([axis=y]) .viewport{max-height:var(--slide-height)}.viewport{overflow:hidden}:host([with-scrollbar]) .viewport{scrollbar-color:var(--scrollbar-color);scrollbar-gutter:stable both-edges;scrollbar-width:thin;overflow-x:scroll}.container{backface-visibility:hidden;gap:var(--slide-gap);touch-action:pan-y pinch-zoom;display:flex}::slotted(l-carousel-item){flex:0 0 var(--slide-size);min-width:0}.scroll-buttons--inside{pointer-events:none;position:absolute;inset:0}.scroll-buttons--outside{justify-content:end;gap:8px;padding-block:8px;display:flex}.scroll-buttons--disabled,.inactive .scroll-buttons{display:none}.button-next,.button-previous,.button-fullscreen{appearance:none;touch-action:manipulation;border:1px solid var(--button-border-color);border-radius:var(--button-border-radius);width:var(--button-size);height:var(--button-size);background-color:var(--button-bg);color:var(--button-color);cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:#31313180;justify-content:center;align-items:center;display:flex}.scroll-buttons--inside .button-previous,.scroll-buttons--inside .button-next,.button-fullscreen{top:calc(50% - (var(--button-size) / 2));z-index:1;position:absolute}.scroll-buttons--inside .button-previous{left:var(--button-offset)}.scroll-buttons--inside .button-next{right:var(--button-offset)}.scroll-buttons--inside .button:disabled{visibility:hidden}.button:disabled{cursor:not-allowed;pointer-events:none;opacity:.4}.button-fullscreen{right:var(--button-offset);top:var(--button-offset);width:calc(var(--button-size) * .75);height:calc(var(--button-size) * .75);border-radius:4px}@container (width>=640px){.button-fullscreen{width:var(--button-size);height:var(--button-size)}}@media (hover:hover){.button:hover:not(:disabled){box-shadow:var(--button-box-shadow-hover)}}.button svg{width:var(--button-arrow-size);height:var(--button-arrow-size);color:var(--button-arrow-color)}.dots{margin:var(--dot-margin);justify-content:center;display:flex}.dot{appearance:none;touch-action:manipulation;cursor:pointer;transform-origin:50%;background:0 0;border:0;place-items:center;padding-block:.5rem;padding-inline:.25rem;transition:transform .18s;display:inline-flex}.dot[data-edge]{transform:scale(var(--dot-edge-scale))}.dot--bar i{background:var(--dot-color);width:1rem;height:.125rem}.dot--selected i{background:var(--dot-color-active)}.dot--circle i{border:2px solid var(--dot-color-active);border-radius:8px;width:10px;height:10px;display:inline-block}.dot--circle.dot--selected i{width:30px}`),W=class extends r{static{this.styles=[c,Se]}#e=0;get autoplay(){return this.#e}set autoplay(e){this.#e=e}#t;get autoplayOptions(){return this.#t}set autoplayOptions(e){this.#t=e}#n=`x`;get axis(){return this.#n}set axis(e){this.#n=e}#r=`start`;get align(){return this.#r}set align(e){this.#r=e}#i={};get breakpoints(){return this.#i}set breakpoints(e){this.#i=e}#a=!1;get loop(){return this.#a}set loop(e){this.#a=e}#o=!1;get dragFree(){return this.#o}set dragFree(e){this.#o=e}#s=20;get duration(){return this.#s}set duration(e){this.#s=e}#c=!1;get skipSnaps(){return this.#c}set skipSnaps(e){this.#c=e}#l=1;get slidesToScroll(){return this.#l}set slidesToScroll(e){this.#l=e}#u=0;get startIndex(){return this.#u}set startIndex(e){this.#u=e}#d=`trimSnaps`;get containScroll(){return this.#d}set containScroll(e){this.#d=e}#f=!1;get single(){return this.#f}set single(e){this.#f=e}#p=!1;get withDots(){return this.#p}set withDots(e){this.#p=e}#m=!1;get withScrollbar(){return this.#m}set withScrollbar(e){this.#m=e}#h=!1;get withFullscreen(){return this.#h}set withFullscreen(e){this.#h=e}#g=`bar`;get dotAppearance(){return this.#g}set dotAppearance(e){this.#g=e}#_=0;get maxVisibleDots(){return this.#_}set maxVisibleDots(e){this.#_=e}#v=`inside`;get scrollButtonsPosition(){return this.#v}set scrollButtonsPosition(e){this.#v=e}#y=0;get _selectedSnap(){return this.#y}set _selectedSnap(e){this.#y=e}constructor(){super(),this.next=this.next.bind(this),this.previous=this.previous.bind(this),this.onInit=this.onInit.bind(this),this.onReInit=this.onReInit.bind(this),this.onResize=this.onResize.bind(this),this.onSelect=this.onSelect.bind(this),this.onSlidesInView=this.onSlidesInView.bind(this),this.detachEventListeners=this.detachEventListeners.bind(this)}connectedCallback(){super.connectedCallback(),this.createEmbla()}disconnectedCallback(){super.disconnectedCallback(),this.embla&&this.embla.destroy()}firstUpdated(){this.attachEventListeners()}createEmbla(){this.embla=ge(this,this.options()),this.embla.on(`init`,this.onInit).on(`reInit`,this.onReInit).on(`resize`,this.onResize).on(`slidesInView`,this.onSlidesInView).on(`select`,this.onSelect).on(`destroy`,this.detachEventListeners)}onSlidesInView(){this.emit(`slides-in-view`,{detail:{indexes:this.embla.slidesInView()}})}onInit(){this.updateNavigation()}onReInit(){this.updateNavigation(),this.requestUpdate()}onSelect(){this.emit(`select`,{detail:{index:this.embla.selectedScrollSnap()}}),this.updateNavigation()}onResize(){this.requestUpdate()}attachEventListeners(){this.previousBtn.addEventListener(`click`,this.previous),this.nextBtn.addEventListener(`click`,this.next)}detachEventListeners(){this.previousBtn.removeEventListener(`click`,this.previous),this.nextBtn.removeEventListener(`click`,this.next)}updateNavigation(){let e=this.embla.canScrollPrev()||this.embla.canScrollNext();this.previousBtn.toggleAttribute(`disabled`,!this.embla.canScrollPrev()),this.nextBtn.toggleAttribute(`disabled`,!this.embla.canScrollNext()),this.scrollButtons.classList.toggle(`scroll-buttons--disabled`,!e),this._selectedSnap=this.embla.selectedScrollSnap()}async updated(e){e.has(`autoplay`)&&this.autoplay&&this.initAutoplay()}initAutoplay(){this.embla.reInit(this.options(),[be(this.autoplayOptions||{delay:this.autoplay})])}handleSlotChange(e){e.target.assignedElements().length>0&&this.embla.reInit(this.options())}handleDotClick(e){let t=e.currentTarget;this.goToSlide(Number(t.dataset.index))}options(){let e=this.shadowRoot.querySelector(`slot`);return e?{container:e,slides:e.assignedElements(),containScroll:this.containScroll,breakpoints:this.breakpoints,axis:this.axis,align:this.align,dragFree:this.dragFree,duration:this.duration,loop:this.loop,slidesToScroll:this.slidesToScroll,skipSnaps:this.skipSnaps,startIndex:this.startIndex}:{container:this,slides:[]}}next(){this.embla.scrollNext()}previous(){this.embla.scrollPrev()}goToSlide(e,t){this.embla.scrollTo(e,t)}slideNodes(){this.embla.slideNodes()}slidesInView(){this.embla.slidesInView()}isActive(){return this.embla?.internalEngine().options.active}renderFullscreenButton(){return t`<button
2
2
  type="button"
3
3
  part="button button-fullscreen"
4
4
  class="button button-fullscreen"
@@ -51,6 +51,24 @@ import{c as e,i as t}from"../../chunks/lit.js";import{LuxenElement as n}from"../
51
51
  />
52
52
  </svg>
53
53
  </button>
54
+ </div>`}renderDots(){if(!this.embla)return n;let e=this.embla.scrollSnapList(),r=e.length;if(r===0)return n;let i=this._selectedSnap,a=this.maxVisibleDots,o=0,s=r;if(a>0&&a<r){let e=Math.floor((a-1)/2);o=Math.max(0,i-e),s=Math.min(r,o+a),s-o<a&&(o=Math.max(0,s-a))}let c=o>0,l=s<r;return t`<div
55
+ class="dots"
56
+ part="dots"
57
+ role="tablist"
58
+ >
59
+ ${xe(e.slice(o,s),(e,r)=>{let a=o+r,u=r===0,d=r===s-o-1,f=a===i,p=!f&&(u&&c||d&&l);return t`<button
60
+ part="button-dot"
61
+ type="button"
62
+ role="tab"
63
+ class="dot dot--${this.dotAppearance} ${f?`dot--selected`:``}"
64
+ aria-label="Go to slide ${a+1}"
65
+ aria-selected=${f?`true`:n}
66
+ data-index="${a}"
67
+ data-edge=${p?``:n}
68
+ @click=${this.handleDotClick}
69
+ >
70
+ <i></i>
71
+ </button>`})}
54
72
  </div>`}render(){return t`
55
73
  <div class="wrapper ${this.isActive()?``:`inactive`}">
56
74
  <div
@@ -64,24 +82,7 @@ import{c as e,i as t}from"../../chunks/lit.js";import{LuxenElement as n}from"../
64
82
  ></slot>
65
83
  </div>
66
84
  ${this.withFullscreen?this.renderFullscreenButton():``}
67
- ${this.renderNextPreviousButtons()}
68
- ${this.withDots?t`<div
69
- class="dots"
70
- part="dots"
71
- role="tablist"
72
- >
73
- ${_e(this.embla.scrollSnapList(),(e,n)=>t`<button
74
- part="button-dot"
75
- type="button"
76
- role="tab"
77
- class="dot dot--${this.dotAppearance}"
78
- aria-label="Go to slide ${n+1}"
79
- data-index="${n}"
80
- @click=${this.handleDotClick}
81
- >
82
- <i></i>
83
- </button>`)}
84
- </div> `:``}
85
+ ${this.renderNextPreviousButtons()} ${this.withDots?this.renderDots():``}
85
86
  </div>
86
- `}};o([r({type:Number,reflect:!0})],q.prototype,`autoplay`,null),o([r({type:Object,attribute:`autoplay-options`})],q.prototype,`autoplayOptions`,null),o([r()],q.prototype,`axis`,null),o([r()],q.prototype,`align`,null),o([r({type:Object,reflect:!0})],q.prototype,`breakpoints`,null),o([r({type:Boolean})],q.prototype,`loop`,null),o([r({type:Boolean,attribute:`drag-free`})],q.prototype,`dragFree`,null),o([r({type:Number})],q.prototype,`duration`,null),o([r({type:Boolean,attribute:`skip-snaps`})],q.prototype,`skipSnaps`,null),o([r({attribute:`slides-to-scroll`})],q.prototype,`slidesToScroll`,null),o([r({type:Number,attribute:`start-index`})],q.prototype,`startIndex`,null),o([r({attribute:`contain-scroll`})],q.prototype,`containScroll`,null),o([r({type:Boolean})],q.prototype,`single`,null),o([r({type:Boolean,attribute:`with-dots`})],q.prototype,`withDots`,null),o([r({type:Boolean,attribute:`with-scrollbar`})],q.prototype,`withScrollbar`,null),o([r({type:Boolean,attribute:`with-fullscreen`})],q.prototype,`withFullscreen`,null),o([r({type:String,attribute:`dot-appearance`})],q.prototype,`dotAppearance`,null),o([r({type:String,attribute:`scroll-buttons-position`})],q.prototype,`scrollButtonsPosition`,null),o([a(`.scroll-buttons`)],q.prototype,`scrollButtons`,void 0),o([a(`.button-previous`)],q.prototype,`previousBtn`,void 0),o([a(`.button-next`)],q.prototype,`nextBtn`,void 0),o([a(`.container`)],q.prototype,`container`,void 0),o([i(`.dot`)],q.prototype,`dotNodes`,void 0);export{q as LuxenCarousel};
87
+ `}};s([i({type:Number,reflect:!0})],W.prototype,`autoplay`,null),s([i({type:Object,attribute:`autoplay-options`})],W.prototype,`autoplayOptions`,null),s([i()],W.prototype,`axis`,null),s([i()],W.prototype,`align`,null),s([i({type:Object,reflect:!0})],W.prototype,`breakpoints`,null),s([i({type:Boolean})],W.prototype,`loop`,null),s([i({type:Boolean,attribute:`drag-free`})],W.prototype,`dragFree`,null),s([i({type:Number})],W.prototype,`duration`,null),s([i({type:Boolean,attribute:`skip-snaps`})],W.prototype,`skipSnaps`,null),s([i({attribute:`slides-to-scroll`})],W.prototype,`slidesToScroll`,null),s([i({type:Number,attribute:`start-index`})],W.prototype,`startIndex`,null),s([i({attribute:`contain-scroll`})],W.prototype,`containScroll`,null),s([i({type:Boolean})],W.prototype,`single`,null),s([i({type:Boolean,attribute:`with-dots`})],W.prototype,`withDots`,null),s([i({type:Boolean,attribute:`with-scrollbar`})],W.prototype,`withScrollbar`,null),s([i({type:Boolean,attribute:`with-fullscreen`})],W.prototype,`withFullscreen`,null),s([i({type:String,attribute:`dot-appearance`})],W.prototype,`dotAppearance`,null),s([i({type:Number,attribute:`max-visible-dots`})],W.prototype,`maxVisibleDots`,null),s([i({type:String,attribute:`scroll-buttons-position`})],W.prototype,`scrollButtonsPosition`,null),s([o()],W.prototype,`_selectedSnap`,null),s([a(`.scroll-buttons`)],W.prototype,`scrollButtons`,void 0),s([a(`.button-previous`)],W.prototype,`previousBtn`,void 0),s([a(`.button-next`)],W.prototype,`nextBtn`,void 0),s([a(`.container`)],W.prototype,`container`,void 0);export{W as LuxenCarousel};
87
88
  //# sourceMappingURL=carousel.js.map