vanilla-jui 1.1.1 → 1.2.1

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.
package/dist/index.umd.js CHANGED
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("vanilla-signal"),require("vanilla-signal-i18n")):typeof define==`function`&&define.amd?define([`exports`,`vanilla-signal`,`vanilla-signal-i18n`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.jui={},e.vanillaSignal,e.vanillaSignalI18n))})(this,function(e,t,n){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function r(){if(navigator.userAgentData&&typeof navigator.userAgentData.mobile==`boolean`)return navigator.userAgentData.mobile;let e=navigator.userAgent||navigator.vendor||window.opera,t=/Android|iPhone|iPad|iPod|Mobile|Windows Phone|webOS|BlackBerry|IEMobile|Opera Mini/i.test(e),n=/iPad|Android(?!.*Mobile)|Tablet/i.test(e),r=`maxTouchPoints`in navigator?navigator.maxTouchPoints>0:`ontouchstart`in window,i=Math.min(window.screen.width,window.screen.height)<=768;if(t&&!n){if(/iPhone|iPod|Windows Phone|webOS|BlackBerry|IEMobile|Opera Mini/i.test(e))return!0;if(/Android/i.test(e))return i||r}return/Macintosh|MacIntel/i.test(e)&&r&&i}async function i(e){if(typeof window>`u`||typeof document>`u`)return Promise.resolve(!1);let t=typeof e==`string`?e:String(e);return navigator.clipboard&&typeof navigator.clipboard.writeText==`function`?navigator.clipboard.writeText(t).then(()=>!0).catch(()=>a(t)):Promise.resolve(a(t))}function a(e){let t=null;try{return t=document.createElement(`textarea`),t.value=e,t.setAttribute(`readonly`,``),t.style.position=`absolute`,t.style.left=`-9999px`,t.style.opacity=`0`,document.body.appendChild(t),t.select(),t.setSelectionRange(0,e.length),!!document.execCommand(`copy`)}catch{return!1}finally{t&&t.parentNode&&t.parentNode.removeChild(t)}}let o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s={timers:{},start(e,t,n){this.timers[e]&&clearTimeout(this.timers[e]),this.timers[e]=setTimeout(()=>{n(),delete this.timers[e]},t)},cancel(e){this.timers[e]&&(clearTimeout(this.timers[e]),delete this.timers[e])}},c=e=>e===null?`null`:Array.isArray(e)?`array`:typeof HTMLElement<`u`&&e instanceof HTMLElement?`HTMLElement`:typeof Node<`u`&&e instanceof Node?`Node`:typeof e,l=e=>typeof e==`function`&&e.prototype!==null&&e.prototype.constructor===e,u=e=>typeof e==`function`&&/^class\s/.test(Function.prototype.toString.call(e));function d(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function f(e){return Array.isArray(e)?e.slice():d(e)?{...e}:e}function p(e={}){return typeof e==`string`||Array.isArray(e)?{type:e}:!e||typeof e!=`object`?{}:e}function m(e,t,n=[]){let r=Array.isArray(n)?n:n?[n]:[];for(let n of r){let r,i;if(typeof n==`function`)r=n,i=`does not satisfy the required condition.`;else if(n&&typeof n.test==`function`)r=n.test,i=n.message||`condition failed.`;else throw Error(`Validator: Condition must be a function or { test, message }.`);if(!r(t))throw Error(`Validator: ${e} ${i}`)}}function ee(e,t){return e?`${e}.${t}`:t}function te(e){if(o(e,`default`))return f(e.factory&&typeof e.default==`function`?e.default():e.default)}function h(e,t,n={},r=``){let i=p(n),a=ee(r,e),s=o(i,`types`)?i.types:i.type;if(i.required&&t==null)throw Error(`Validator: ${a} is required.`);if(s!==void 0){let e=Array.isArray(s)?s:[s],n=c(t);if(!e.some(e=>e===n)){let t=e.join(`, `);throw Error(`Validator: ${a} expects ${t}, but got ${n}.`)}m(a,t,i.conditions)}else m(a,t,i.conditions);if(Array.isArray(i.enum)&&!i.enum.includes(t))throw Error(`Validator: ${a} expects one of ${i.enum.join(`, `)}.`);if(typeof i.validate==`function`&&!i.validate(t))throw Error(`Validator: ${a} ${i.message||`does not satisfy the required condition.`}`);return t}function g(e={},t={},n=`Options`){let r=e??{};if(typeof r!=`object`||Array.isArray(r))throw Error(`${n} expects object.`);let i={...r},a=Object.entries(t||{});for(let[e,t]of a){let n=p(t);i[e]=o(r,e)?r[e]:te(n)}for(let[e,n]of a){let a=p(n);typeof a.normalize==`function`&&(i[e]=a.normalize(i[e],{key:e,input:r,options:i,schema:t}))}for(let[e,r]of Object.entries(t||{}))h(e,i[e],r,n);return i}function ne(){if(typeof crypto.randomUUID==`function`)return crypto.randomUUID();let e=new Uint8Array(16);if(typeof crypto.getRandomValues!=`function`)throw Error(`Your browser is too old to support secure login.`);crypto.getRandomValues(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e).map(e=>e.toString(16).padStart(2,`0`)).join(``);return[t.slice(0,8),t.slice(8,12),t.slice(12,16),t.slice(16,20),t.slice(20,32)].join(`-`)}function _(e=8){if(!Number.isInteger(e)||e<1||e>32)throw Error(`Length must be an integer between 1 and 32`);let t=new Uint8Array(e);crypto.getRandomValues(t);let n=``;for(let r=0;r<e;r++)n+=`abcdefghijkmnpqrstuvwxyz23456789`[t[r]&31];return n}let v=new Map,y=new Map,re=(e,t=[],n=``,r=!1,i=null)=>{if(!l(e))throw Error(`First argument expects a class/constructor function.`);if(!Array.isArray(t))throw Error(`Second argument must be an array of arguments.`);if(typeof n!=`string`)throw Error(`Third argument expects a string.`);if(typeof r!=`boolean`)throw Error(`Fourth argument expects a boolean.`);if(typeof i!=`number`&&i!==null)throw Error(`Fifth argument expects a number or null.`);let a=n.trim()===``?_():n;if(v.has(a)&&!r)return v.get(a).proxy;let o=new e(...t),s=new Proxy(o,{get(e,t,n){return i&&ie(a,i),Reflect.get(e,t,n)},set(e,t,n,r){return Reflect.set(e,t,n,r)}});return v.set(a,{instance:o,proxy:s}),s};function ie(e,t){y.has(e)&&clearTimeout(y.get(e));let n=setTimeout(()=>{b(e)},t);y.set(e,n)}function b(e){if(v.has(e)){let{instance:t}=v.get(e);if(typeof t.destroy==`function`)try{t.destroy()}catch{throw Error(`release(): destroy() failed on instance with key "${e}".`)}v.delete(e)}y.has(e)&&(clearTimeout(y.get(e)),y.delete(e))}function ae(){for(let{instance:e}of v.values())if(typeof e.destroy==`function`)try{e.destroy()}catch{}v.clear();for(let e of y.values())clearTimeout(e);y.clear()}let oe={instances:new Map,get(e,t){return this.instances.has(e)||this.instances.set(e,t()),this.instances.get(e)},destroy(e){if(this.instances.has(e)){let t=this.instances.get(e);t.destroy&&t.destroy(),this.instances.delete(e)}},destroyAll(){for(let e of this.instances.values())e.destroy&&e.destroy();this.instances.clear()}};function x(){return typeof document<`u`}function S(){return!x()||typeof document.createElement!=`function`?!1:typeof document.createElement(`div`).insertBefore==`function`}function C(e){return x()&&typeof Node<`u`&&e instanceof Node}function w(e){return typeof Element<`u`&&e instanceof Element}function se(e){let t=e.flatMap(e=>D(e));return t.find(w)||t.find(C)||null}let T=(e,t=`Component`)=>A(e,`${t}.container`);function E(e){return e==null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`||typeof e==`function`||Array.isArray(e)||C(e)}function ce(e){let t=document.createElement(`template`);return t.innerHTML=e,Array.from(t.content.childNodes)}function D(e,t){let n=typeof e==`function`?e(t):e;return n==null||n===!1||n===!0?[]:Array.isArray(n)?n.flatMap(e=>D(e,t)):C(n)?[n]:typeof n==`string`?ce(n):[document.createTextNode(String(n))]}function O(e,t=document){return t.querySelector(e)}function k(e,t=document){return Array.from(t.querySelectorAll(e))}function le(e,t=`getEl`){if(w(e)||C(e))return e;if(typeof e==`string`)return O(e);if(Array.isArray(e))return se(e);if(e===!1||e==null)return null;throw Error(`${t}: expects Element, Node, selector or JSX node.`)}function A(e,t=`resolveElement`){let n=le(e,t);if(!w(n))throw Error(`${t}: expects a valid Element.`);return n}let ue=()=>{};function de(e){return!!e&&typeof e.addEventListener==`function`&&typeof e.removeEventListener==`function`}function fe(e,t){if(!de(e))throw TypeError(`${t}: target expects EventTarget.`)}function pe(e,t){if(typeof e!=`string`||e.trim()===``)throw TypeError(`${t}: type expects a non-empty string.`)}function me(e,t){if(typeof e!=`function`&&(!e||typeof e.handleEvent!=`function`))throw TypeError(`${t}: handler expects a function or EventListener object.`)}function j(e,t,n,r){fe(e,`listen`),pe(t,`listen`),me(n,`listen`);let i=!0;return e.addEventListener(t,n,r),()=>{i&&(i=!1,e.removeEventListener(t,n,r))}}function he(e,t,n,r){fe(e,`unlisten`),pe(t,`unlisten`),me(n,`unlisten`),e.removeEventListener(t,n,r)}function M(){let e=new Map,t=t=>{let n=e.get(t);return n?(n(),e.delete(t),!0):!1};return{on(n,r,i,a,o){if(typeof n!=`string`||n.trim()===``)throw TypeError(`EventManager.on: key expects a non-empty string.`);if(t(n),r==null)return ue;let s=j(r,i,a,o);return e.set(n,s),s},off:t,clear(){for(let t of e.values())t();e.clear()},size(){return e.size}}}async function ge(e,t,n={}){let r=new Headers(n.headers);return r.has(`Content-Type`)||r.set(`Content-Type`,`application/json`),(await fetch(e,{...n,method:n.method||`POST`,headers:r,body:JSON.stringify(t)})).json()}let _e=typeof window<`u`?`${window.location.origin}/wp-json`:``;function N(e){if(typeof document>`u`)return null;let t=`; ${document.cookie}`.split(`; ${e}=`);return t.length===2?t.pop().split(`;`).shift():null}function ve(e,t,n=3600*24){if(typeof document>`u`)return!1;let r=new Date(Date.now()+n*1e3).toUTCString();return document.cookie=[`${e}=${t}`,`expires=${r}`,`path=/`,`sameSite=strict`].join(`; `),N(e)===t}function ye(e){return typeof document>`u`?!0:(document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`,!N(e))}let P={info:`<path d="M12 22C6.47715 22 2 17.5228 2 12 2 6.47715 6.47715 2 12 2 17.5228 2 22 6.47715 22 12 22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM13 10.5V15H14V17H10V15H11V12.5H10V10.5H13ZM13.5 8C13.5 8.82843 12.8284 9.5 12 9.5 11.1716 9.5 10.5 8.82843 10.5 8 10.5 7.17157 11.1716 6.5 12 6.5 12.8284 6.5 13.5 7.17157 13.5 8Z"></path>`,success:`<path d="M4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12C20 16.4183 16.4183 20 12 20C7.58172 20 4 16.4183 4 12ZM12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2ZM17.4571 9.45711L16.0429 8.04289L11 13.0858L8.20711 10.2929L6.79289 11.7071L11 15.9142L17.4571 9.45711Z"></path>`,warning:`<path d="M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM11 15H13V17H11V15ZM11 7H13V13H11V7Z"></path>`,error:`<path d="M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM12 10.5858L14.8284 7.75736L16.2426 9.17157L13.4142 12L16.2426 14.8284L14.8284 16.2426L12 13.4142L9.17157 16.2426L7.75736 14.8284L10.5858 12L7.75736 9.17157L9.17157 7.75736L12 10.5858Z"></path>`,"arrow-left":`<path d="M10.8284 12.0007L15.7782 16.9504L14.364 18.3646L8 12.0007L14.364 5.63672L15.7782 7.05093L10.8284 12.0007Z"></path>`,"arrow-right":`<path d="M13.1717 12.0007L8.22192 7.05093L9.63614 5.63672L16.0001 12.0007L9.63614 18.3646L8.22192 16.9504L13.1717 12.0007Z"></path>`,"arrow-up":`<path d="M11.9999 10.8284L7.0502 15.7782L5.63599 14.364L11.9999 8L18.3639 14.364L16.9497 15.7782L11.9999 10.8284Z"></path>`,"arrow-down":`<path d="M11.9999 13.1714L16.9497 8.22168L18.3639 9.63589L11.9999 15.9999L5.63599 9.63589L7.0502 8.22168L11.9999 13.1714Z"></path>`,close:`<path d="M11.9997 10.5865L16.9495 5.63672L18.3637 7.05093L13.4139 12.0007L18.3637 16.9504L16.9495 18.3646L11.9997 13.4149L7.04996 18.3646L5.63574 16.9504L10.5855 12.0007L5.63574 7.05093L7.04996 5.63672L11.9997 10.5865Z"></path>`,loader:`<path d="M12 3C16.9706 3 21 7.02944 21 12H19C19 8.13401 15.866 5 12 5V3Z"></path>`,menu:`<path d="M3 4H21V6H3V4ZM3 11H21V13H3V11ZM3 18H21V20H3V18Z"></path>`,palette:`<path fill="none" d="M0 0h24v24H0z"></path><path d="M12 2C17.5222 2 22 5.97778 22 10.8889C22 13.9556 19.5111 16.4444 16.4444 16.4444H14.4778C13.5556 16.4444 12.8111 17.1889 12.8111 18.1111C12.8111 18.5333 12.9778 18.9222 13.2333 19.2111C13.5 19.5111 13.6667 19.9 13.6667 20.3333C13.6667 21.2556 12.9 22 12 22C6.47778 22 2 17.5222 2 12C2 6.47778 6.47778 2 12 2ZM10.8111 18.1111C10.8111 16.0843 12.451 14.4444 14.4778 14.4444H16.4444C18.4065 14.4444 20 12.851 20 10.8889C20 7.1392 16.4677 4 12 4C7.58235 4 4 7.58235 4 12C4 16.19 7.2226 19.6285 11.324 19.9718C10.9948 19.4168 10.8111 18.7761 10.8111 18.1111ZM7.5 12C6.67157 12 6 11.3284 6 10.5C6 9.67157 6.67157 9 7.5 9C8.32843 9 9 9.67157 9 10.5C9 11.3284 8.32843 12 7.5 12ZM16.5 12C15.6716 12 15 11.3284 15 10.5C15 9.67157 15.6716 9 16.5 9C17.3284 9 18 9.67157 18 10.5C18 11.3284 17.3284 12 16.5 12ZM12 9C11.1716 9 10.5 8.32843 10.5 7.5C10.5 6.67157 11.1716 6 12 6C12.8284 6 13.5 6.67157 13.5 7.5C13.5 8.32843 12.8284 9 12 9Z"></path>`};function be(e){if(!(e in P))throw Error(`Icon "${e}" not found.`)}function F(e){return be(e),`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false">${P[e]}</svg>`}function I(e,t={}){if(!S())throw Error(`icon(): DOM render environment is required.`);let n=document.createElement(`template`);n.innerHTML=F(e);let r=n.content.firstElementChild;for(let[e,n]of Object.entries(t||{})){if(n==null||n===!1)continue;let t=e===`className`?`class`:e;r.setAttribute(t,n===!0?``:String(n))}return r}function xe(e){return F(e)}let Se=xe;function Ce(){return{...P}}function we(e){if(typeof e!=`object`||!e)throw Error(`Icons must be a valid object.`);for(let[t,n]of Object.entries(e)){if(typeof n!=`string`||!n.trim().startsWith(`<`))throw Error(`Invalid SVG path for icon "${t}".`);P[t]=n}}function L(e){"@babel/helpers - typeof";return L=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},L(e)}function Te(e,t){if(L(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(L(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Ee(e){var t=Te(e,`string`);return L(t)==`symbol`?t:t+``}function R(e,t,n){return(t=Ee(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var z=class e{constructor(e={}){this.props=e||{},this.dom={root:null},this.plugins=new Map,this.cleanup={events:M(),plugins:new Map},this._listeners={init:[],beforeUpdate:[],afterUpdate:[],destroy:[]},this.state=(0,t.createDeepStore)({}),this.runtime={destroyed:!1},this.installGlobalPlugins()}get root(){return this.dom?.root||null}set root(e){this.dom||(this.dom={}),this.dom.root=e}use(e,t){if(!e)return this;let n=typeof e==`function`?e(this,t):e.install?.(this,t);return this.cleanup.plugins.set(e,n),this}on(e,t){return!this._listeners[e]||typeof t!=`function`||this._listeners[e].push(t),this}off(e,t){return this._listeners[e]&&(this._listeners[e]=this._listeners[e].filter(e=>e!==t)),this}installGlobalPlugins(){for(let t of e.globalPlugins.values())this.use(t)}static useGlobal(t,n){!t||!n||e.globalPlugins.set(t,n)}emit(e,...t){let n=this._listeners[e];if(!n)return this;for(let e of n)try{e(...t)}catch{}return this}init(e={}){if(this.runtime.destroyed)throw Error(`Component.init: instance destroyed`);return e&&typeof e==`object`&&!Array.isArray(e)&&(this.props=Object.assign({},this.props,e)),typeof this.onInit==`function`&&this.onInit(this.props),this.emit(`init`,this.props),this}setState(e={},n){if(this.runtime.destroyed)throw Error(`Component.setState: instance destroyed`);let r=typeof e==`string`&&arguments.length>1?{[e]:n}:e;if(!r||typeof r!=`object`||Array.isArray(r))throw Error(`Component.setState: expects a plain object patch.`);return(0,t.flushSync)(()=>{for(let[e,t]of Object.entries(r))this.state[e]=t}),this}update(e={},{force:t=!1}={}){if(this.runtime.destroyed)throw Error(`Component.update: instance destroyed`);return e&&typeof e==`object`&&(this.props=Object.assign({},this.props,e)),this.emit(`beforeUpdate`,e,{force:t}),typeof this.onUpdate==`function`&&this.onUpdate(e,{force:t}),this.emit(`afterUpdate`,e,{force:t}),this}destroy(){if(!this.runtime.destroyed){this.runtime.destroyed=!0,typeof this.onDestroy==`function`&&this.onDestroy(),this.emit(`destroy`);for(let e of this.cleanup.plugins.values())try{typeof e==`function`?e():e&&typeof e.destroy==`function`&&e.destroy()}catch{}this.cleanup.plugins.clear(),this.cleanup.events.clear(),this.dom={root:null},this.state=null}}};R(z,`globalPlugins`,new Map);let De={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():_():e??_()},active:{default:0,types:[`number`,`string`,`array`,`null`]},collapsible:{default:!1,type:`boolean`},multiple:{default:!1,type:`boolean`},onChange:{default:null,types:[`function`,`null`]},items:{default:[],type:`array`}},B={type:`array`,validate:e=>e.length>0,message:`expects a non-empty array.`},Oe={types:[`number`,`string`,`array`,`null`],validate:e=>e==null?!0:Array.isArray(e)?e.every(e=>typeof e==`number`||typeof e==`string`):typeof e==`number`?Number.isInteger(e)&&e>=0:e.trim().length>0,message:`expects a positive number, string, array or null.`};function ke(e){return Array.isArray(e)?e.map(e=>({...e})):[]}function V(e){return h(`items`,e,B,`Accordion`),e.map(e=>{if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Accordion: item expects an object.`);if(e.name!=null&&typeof e.name!=`string`)throw Error(`Accordion: item name expects a string.`);if(!E(e.title))throw Error(`Accordion: item title expects string, Node, array, function or null.`);if(!E(e.content))throw Error(`Accordion: item content expects string, Node, array, function or null.`);return{...e,name:e.name||_()}})}var Ae=class extends z{constructor(e,n={}){if(!S())throw Error(`Accordion: DOM render environment is required.`);let r=T(e,`Accordion`),i=g(n,De,`Accordion`);super(i),this.container=r,this.dom.headers=[],this.dom.panels=[],this.state=(0,t.createDeepStore)({activeNames:[],current:{index:null,name:null}});try{this.onInit(i)}catch(e){throw this.destroy(),e}}onInit(e){this.root=this.buildRoot(e),this.buildItems(e),this.syncActiveNames(this.resolveActiveNames(e.active)),this.bindEvents()}buildRoot(e){return(0,t.jsx)(`div`,{className:`j-accordion`,id:e.id})}buildItems(e){let n=V(e.items),r=document.createDocumentFragment();this.dom.headers=[],this.dom.panels=[],n.forEach((n,i)=>{let a=n.name||_(),o=`${e.id}_header_${i}`,s=`${e.id}_panel_${i}`,c=(0,t.jsx)(`div`,{className:`accordion-header`,"data-item":a,id:o,role:`button`,tabindex:`0`,"aria-controls":s,children:[(0,t.jsx)(`span`,{className:`header-title`,children:this.contentView(n.title,n,i,`title`)}),(0,t.jsx)(`span`,{className:`header-arrow`,"aria-hidden":`true`,children:I(`arrow-down`)})]}),l=(0,t.jsx)(`div`,{className:`accordion-panel`,id:s,role:`region`,"aria-labelledby":o,children:(0,t.jsx)(`div`,{className:`panel-content`,children:this.contentView(n.content,n,i,`content`)})});this.dom.headers.push(c),this.dom.panels.push(l),r.append(c,l)}),this.root.append(r),this.cleanup.bindings?.(),this.cleanup.bindings=(0,t.createRoot)(e=>(this.dom.headers.forEach(e=>{let n=e.dataset.item;(0,t.bindClass)(e,`is-active`,()=>this.state.activeNames.includes(n)),(0,t.bindAttr)(e,`aria-expanded`,()=>this.state.activeNames.includes(n))}),this.dom.panels.forEach((e,n)=>{let r=this.dom.headers[n]?.dataset.item;(0,t.bindClass)(e,`is-active`,()=>this.state.activeNames.includes(r)),(0,t.bindAttr)(e,`aria-hidden`,()=>this.state.activeNames.includes(r)?`false`:`true`),(0,t.bindAttr)(e,`hidden`,()=>!this.state.activeNames.includes(r))}),e))}contentView(e,t,n,r){return D(e,{accordion:this,item:t,index:n,type:r,active:!1})}resolveActiveNames(e){if(e==null)return[];let t=Array.isArray(e)?e:[e],n=[];for(let e of t){let t=this.getIndex(e);if(!(t<0||t>=this.dom.headers.length)&&(n.push(this.dom.headers[t].dataset.item||String(t)),!this.props.multiple))break}return Array.from(new Set(n))}syncActiveNames(e){let n=e[0]||null,r=n?this.getIndex(n):null;(0,t.flushSync)(()=>{this.state.activeNames=e,this.state.current={index:r,name:n}})}bindEvents(){this.unbindEvents(),this.cleanup.events.on(`click`,this.root,`click`,e=>{let t=e.target.closest(`.accordion-header`);t&&this.active(t.dataset.item)}),this.cleanup.events.on(`keydown`,this.root,`keydown`,e=>{if(e.key!==`Enter`&&e.key!==` `)return;let t=e.target.closest(`.accordion-header`);t&&(e.preventDefault(),this.active(t.dataset.item))})}unbindEvents(){this.cleanup.events.clear()}isActive(e){return this.state.activeNames.includes(e)}assertActive(e){if(this.runtime.destroyed)throw Error(`Accordion.${e}: instance has been destroyed.`)}async activateItem(e,t=!0){let n=this.getIndex(e);if(n<0||n>=this.dom.headers.length)return;let r=this.dom.headers[n],i=this.dom.panels[n],a=r.dataset.item||String(n),o=this.isActive(a);if(o&&!this.props.multiple&&!this.props.collapsible)return;let s;s=this.props.multiple?o?this.state.activeNames.filter(e=>e!==a):[...this.state.activeNames,a]:o?this.props.collapsible?[]:this.state.activeNames:[a],this.syncActiveNames(s),t&&this.props.onChange&&await Promise.resolve(this.props.onChange(n,a,r,i,this))}getIndex(e){return typeof e==`number`?e:typeof e==`string`?this.dom.headers.findIndex(t=>t.dataset.item===e):-1}async active(e){this.assertActive(`active`),await this.activateItem(e,!0)}render(){this.assertActive(`render`),(0,t.insert)(this.container,()=>this.root)}setItems(e,t=0){this.assertActive(`setItems`),h(`items`,e,B,`Accordion.setItems`),h(`active`,t,Oe,`Accordion.setItems`),this.props.items=ke(V(e)),this.props.active=t,this.root.textContent=``,this.buildItems(this.props),this.syncActiveNames(this.resolveActiveNames(t)),this.bindEvents()}onDestroy(){this.unbindEvents(),this.cleanup.bindings?.(),this.cleanup.bindings=null,this.root?.parentNode&&this.root.parentNode.removeChild(this.root)}};let je={name:{default:null,types:[`string`,`null`]},mode:{default:`click`,type:`string`,enum:[`hover`,`click`]},position:{default:`auto`,type:`string`,enum:[`auto`,`top-left`,`top-center`,`top-right`,`bottom-left`,`bottom-center`,`bottom-right`,`left`,`right`]},offset:{default:10,type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},content:{default:``,validate:E,message:`expects string, Node, array, function or null.`},className:{default:null,types:[`string`,`null`]},id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():_():e??_()},containerClassName:{default:null,types:[`string`,`null`]},delay:{default:0,types:[`number`,`object`]},hoverIntent:{default:!0,type:`boolean`},onShown:{default:null,types:[`function`,`null`]},onHidden:{default:null,types:[`function`,`null`]}};var H=class{constructor(e,t={}){if(!S())throw Error(`Drop: DOM render environment is required.`);this.target=A(e,`Drop.element`),this.props=g(t,je,`Drop`),this._init(this.props)}_init(e){this.isVisible=!1,this.root=null,this.cleanup={events:M()},this._timer={show:null,hide:null},this._hoverIntentData={x:0,y:0,lastMoveTime:0};let{delay:t}=e;typeof t==`number`&&t>=0?(this.delayShow=t,this.delayHide=t):typeof t==`object`&&t?(this.delayShow=Number(t.show)||0,this.delayHide=Number(t.hide)||0):(this.delayShow=0,this.delayHide=0),this._buildDrop(e),this._bindEvents(e)}_buildDrop(e){let{className:n,content:r,id:i,name:a,containerClassName:o}=e,s=n||``,c=C(r)&&r.nodeType===1?r:(0,t.jsx)(`div`,{className:o?`drop-container ${o}`:`drop-container`,children:D(r,this)});this.root=(0,t.jsx)(`div`,{className:s?`j-drop ${s}`:`j-drop`,id:i,"data-drop":a||_(),children:c})}_bindEvents(e){let{mode:t,hoverIntent:n}=e;this._unbindEvents(),t===`hover`?n?(this.cleanup.events.on(`target:enter`,this.target,`mouseenter`,()=>this._startHoverIntent()),this.cleanup.events.on(`target:leave`,this.target,`mouseleave`,()=>this._cancelHoverIntent())):(this.cleanup.events.on(`target:enter`,this.target,`mouseenter`,()=>this.show()),this.cleanup.events.on(`target:leave`,this.target,`mouseleave`,()=>this.hide())):t===`click`&&(this.cleanup.events.on(`target:click`,this.target,`click`,()=>this.toggle()),this.cleanup.events.on(`document:click`,document,`click`,e=>this._docClick(e)))}_bindRootEvents(){!this.root||this.props.mode!==`hover`||(this.cleanup.events.on(`root:enter`,this.root,`mouseenter`,()=>this.show()),this.cleanup.events.on(`root:leave`,this.root,`mouseleave`,()=>this.hide()))}_unbindRootEvents(){this.cleanup.events.off(`root:enter`),this.cleanup.events.off(`root:leave`)}_unbindEvents(){this.cleanup?.events.clear()}_startHoverIntent(){this.cleanup.events.on(`document:mousemove`,document,`mousemove`,e=>this._onMouseMove(e)),clearTimeout(this._timer.show),this._timer.show=setTimeout(()=>{let e=Date.now()-this._hoverIntentData.lastMoveTime;Math.abs(this._hoverIntentData.x-this._lastX||0)+Math.abs(this._hoverIntentData.y-this._lastY||0)<5||e>100?(this.show(),this.cleanup.events.off(`document:mousemove`)):this._startHoverIntent()},this.delayShow)}_cancelHoverIntent(){clearTimeout(this._timer.show),this.cleanup.events.off(`document:mousemove`),this.hide()}_onMouseMove(e){this._lastX=e.clientX,this._lastY=e.clientY,this._hoverIntentData.lastMoveTime=Date.now(),this._hoverIntentData.x=e.clientX,this._hoverIntentData.y=e.clientY}_setPosition(){let e=this.target.getBoundingClientRect(),t=this.root,{offset:n,position:r}=this.props;t.style.visibility=`hidden`,t.style.display=`block`;let i=t.getBoundingClientRect(),a=0,o=0,s=r;switch(s===`auto`&&(s=window.innerHeight-e.bottom>i.height+n?`top-center`:`bottom-center`),s){case`top-left`:a=e.top-i.height-n,o=e.left;break;case`top-center`:a=e.top-i.height-n,o=e.left+e.width/2-i.width/2;break;case`top-right`:a=e.top-i.height-n,o=e.right-i.width;break;case`bottom-left`:a=e.bottom+n,o=e.left;break;case`bottom-center`:a=e.bottom+n,o=e.left+e.width/2-i.width/2;break;case`bottom-right`:a=e.bottom+n,o=e.right-i.width;break;case`left`:a=e.top+e.height/2-i.height/2,o=e.left-i.width-n;break;case`right`:a=e.top+e.height/2-i.height/2,o=e.right+n;break;default:break}a=Math.max(8,Math.min(a,window.innerHeight-i.height-8)),o=Math.max(8,Math.min(o,window.innerWidth-i.width-8)),t.style.top=`${a+window.scrollY}px`,t.style.left=`${o+window.scrollX}px`,t.style.visibility=``,t.style.display=``}_docClick(e){!this.root.contains(e.target)&&!this.target.contains(e.target)&&this.hide()}_exec(e){this.root&&(e?(this.root.parentNode||document.body.appendChild(this.root),this._bindRootEvents(),this._setPosition()):(this._unbindRootEvents(),this.root.style.top=``,this.root.style.left=``,this.root.parentNode&&this.root.parentNode.removeChild(this.root)),this.root.classList.toggle(`is-active`,e),this.isVisible=e)}show(e=!0){clearTimeout(this._timer.hide),!this.isVisible&&(e&&this.delayShow>0?(clearTimeout(this._timer.show),this._timer.show=setTimeout(()=>this._exec(!0),this.delayShow)):this._exec(!0),this.props.onShown&&this.props.onShown())}hide(e=!0){clearTimeout(this._timer.show),this.isVisible&&(e&&this.delayHide>0?(clearTimeout(this._timer.hide),this._timer.hide=setTimeout(()=>this._exec(!1),this.delayHide)):this._exec(!1),this.props.onHidden&&this.props.onHidden())}toggle(){this.isVisible?this.hide():this.show()}destroy(){this.props&&(clearTimeout(this._timer?.show),clearTimeout(this._timer?.hide),this._unbindEvents(),this.root?.parentNode&&this.root.parentNode.removeChild(this.root),this.props=null,this.root=null,this.target=null,this._timer={show:null,hide:null},this.cleanup?.events.clear(),this.cleanup=null)}};function Me(e){return e==null||typeof e==`string`||typeof e==`function`||Array.isArray(e)||typeof Node<`u`&&e instanceof Node}function Ne(e){return!!e&&typeof e==`object`&&typeof e.id==`string`}function Pe(e){return e==null||e===!1||typeof e==`function`}function U(e){return e&&typeof e==`object`&&!Array.isArray(e)?{...e}:{}}function Fe(e){return Array.isArray(e)?[...e]:[]}function Ie(e){return Array.isArray(e)?e.map(e=>({...e,data:U(e.data),modal:U(e.modal),view:U(e.view)})):[]}function Le(e,t){return typeof e==`string`?{id:e}:e&&typeof e==`object`?e:{id:t}}let Re={validate:Ne,message:`expects a step object with a string id.`},ze={validate:Me,message:`expects string, Node, array, function or null.`},Be={validate:e=>Array.isArray(e)&&e.length>0,message:`expects a non-empty steps array.`},W={validate:e=>e==null||typeof e==`object`&&!Array.isArray(e),message:`expects an object or null.`},G={validate:Pe,message:`expects function, false or null.`},Ve={default:{},validate:e=>d(e),message:`expects an object with text fields.`,normalize:e=>{let t=d(e)?e:{};return{...t,back:typeof t.back==`string`?t.back:`Back`,next:typeof t.next==`string`?t.next:`Next`,finish:typeof t.finish==`string`?t.finish:`Finish`,reset:typeof t.reset==`string`?t.reset:`Reset`}}},He={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():_():e??_()},steps:{default:[],...Be},initial:{default:null,types:[`string`,`number`,`null`]},cache:{default:!0,type:`boolean`},linear:{default:!0,type:`boolean`},render:{default:!0,type:`boolean`},rollbackOnError:{default:!0,type:`boolean`},busyStrategy:{default:`ignore`,type:`string`,enum:[`ignore`,`throw`]},showHeader:{default:!0,type:`boolean`},showFooter:{default:!0,type:`boolean`},showSteps:{default:!0,type:`boolean`},showBack:{default:!0,type:`boolean`},showNext:{default:!0,type:`boolean`},showReset:{default:!1,type:`boolean`},text:Ve,className:{default:``,type:`string`},renderHeader:{default:null,...G},renderSteps:{default:null,...G},renderBody:{default:null,...G},renderFooter:{default:null,...G},onChange:{default:null,types:[`function`,`null`]},onNext:{default:null,types:[`function`,`null`]},onBack:{default:null,types:[`function`,`null`]},onFinish:{default:null,types:[`function`,`null`]},onError:{default:null,types:[`function`,`null`]},onBusy:{default:null,types:[`function`,`null`]}};var Ue=class{constructor(e={}){this.options=g(e,He,`Flow.options`),this._init(this.options)}_init(e){this.steps=Ie(e.steps),this._validateSteps(this.steps),this._stepMap=new Map(this.steps.map((e,t)=>[e.id,t])),this._initialStepId=this._resolveInitialStepId(e.initial),this._initialData=this._createInitialStepData(),this._subscribers=new Set,this._renderDispose=null,this._cleanupTasks=new Set,this._nodes={},this._destroyed=!1,this._activeAction=null,this._actionController=null,this.root=null,this.state=(0,t.createDeepStore)({id:e.id,currentId:this._initialStepId,currentIndex:this._stepMap.get(this._initialStepId),previousId:null,previousIndex:null,direction:null,history:[this._initialStepId],data:U(this._initialData.global),stepData:U(this._initialData.stepData),loading:!1,error:null,busyAction:null,version:0})}get currentStep(){return this.steps[this.state.currentIndex]}get currentData(){return this.getStepData(this.state.currentId)}get canBack(){return this.state.currentIndex>0&&!this.state.loading}get canNext(){return this.state.currentIndex<this.steps.length-1&&!this.state.loading}get isLast(){return this.state.currentIndex===this.steps.length-1}subscribe(e){if(this._assertActive(`subscribe`),typeof e!=`function`)throw Error(`Flow.subscribe: handler expects a function.`);return this._subscribers.add(e),e(this.snapshot(),this),()=>this._subscribers.delete(e)}snapshot(){if(!this.state)return null;let e=this.currentStep;return{id:this.state.id,currentId:this.state.currentId,currentIndex:this.state.currentIndex,previousId:this.state.previousId,previousIndex:this.state.previousIndex,direction:this.state.direction,history:[...this.state.history],data:U(this.state.data),stepData:U(this.state.stepData),currentData:this.currentData,currentStep:this._publicStep(e),canBack:this.canBack,canNext:this.canNext,isLast:this.isLast,loading:this.state.loading,busyAction:this.state.busyAction,error:this.state.error}}mount(e){if(this._assertActive(`mount`),!this.options.render)return this;if(!S())throw Error(`Flow.mount: DOM environment is required.`);let t=A(e,`Flow.mount.container`);return this.unmount(),this.root=this._buildRoot(),t.appendChild(this.root),this._mountView(),this}unmount(){return this._renderDispose?.(),this._renderDispose=null,this.root?.parentNode&&this.root.parentNode.removeChild(this.root),this.root=null,this._nodes={},this}async next(e=null){return this._assertActive(`next`),h(`payload`,e,W,`Flow.next`),this._handleBusy(`next`)||this._runAction(`next`,async()=>{if(this.isLast)return this.finish(e,{internal:!0});let t=this.currentStep,n=this.steps[this.state.currentIndex+1]?.id,{id:r,data:i}=Le(await this._runMoveHook(`next`,t,e,n),n);return this.goTo(r,i??e,{direction:`next`,internal:!0})})}async back(e=null){return this._assertActive(`back`),h(`payload`,e,W,`Flow.back`),this._handleBusy(`back`)||(this.canBack?this._runAction(`back`,async()=>{let t=this.currentStep,n=this.steps[this.state.currentIndex-1]?.id,{id:r,data:i}=Le(await this._runMoveHook(`back`,t,e,n),n);return this.goTo(r,i??e,{direction:`back`,internal:!0})}):this.snapshot())}async goTo(e,t=null,n={}){return this._assertActive(`goTo`),h(`payload`,t,W,`Flow.goTo`),(n.internal?null:this._handleBusy(`goTo`))||this._runAction(`goTo`,async()=>{let r=this._resolveStepIndex(e),i=this.steps[r],a=this.currentStep;return!i||i.id===this.state.currentId?(t&&this.setStepData(this.state.currentId,t),this.snapshot()):(await this._transitionTo(i,{direction:n.direction||`go`,payload:t,fromStep:a}),this.snapshot())},{internal:n.internal})}setData(e){return this._assertActive(`setData`),h(`data`,e,W,`Flow.setData`),e?((0,t.flushSync)(()=>{Object.assign(this.state.data,e),this.state.version+=1}),this._emitChange(),this):this}setStepData(e,n,r={}){return this._assertActive(`setStepData`),h(`stepId`,e,{type:`string`},`Flow.setStepData`),h(`data`,n,W,`Flow.setStepData`),!n||!this._stepMap.has(e)?this:((0,t.flushSync)(()=>{this.state.stepData[e]={...U(this.state.stepData[e]),...n},this.options.cache&&Object.assign(this.state.data,n),this.state.version+=1}),r.silent||this._emitChange(),this)}getStepData(e){return U(this.state.stepData[e])}reset(){return this._assertActive(`reset`),(0,t.flushSync)(()=>{this.state.currentId=this._initialStepId,this.state.currentIndex=this._stepMap.get(this._initialStepId),this.state.previousId=null,this.state.previousIndex=null,this.state.direction=null,this.state.history.splice(0,this.state.history.length,this._initialStepId),this._replaceObject(this.state.data,U(this._initialData.global)),this._replaceObject(this.state.stepData,U(this._initialData.stepData)),this.state.loading=!1,this.state.busyAction=null,this.state.error=null,this.state.version+=1}),this._emitChange(),this}async finish(e=null,t={}){return this._assertActive(`finish`),h(`payload`,e,W,`Flow.finish`),(t.internal?null:this._handleBusy(`finish`))||this._runAction(`finish`,async()=>(e&&this.setStepData(this.state.currentId,e),await this._callHook(this.options.onFinish,[this.snapshot(),this]),this.snapshot()),{internal:t.internal})}destroy(){if(!this._destroyed){this._destroyed=!0,this._abortActiveAction(),this.unmount();for(let e of Array.from(this._cleanupTasks))e();this._cleanupTasks.clear(),this._subscribers.clear(),this.steps=null,this.options=null,this.state=null,this._stepMap=null,this._initialData=null,this._activeAction=null,this._actionController=null}}_resolveInitialStepId(e){if(typeof e==`number`){let t=this.steps[e];if(!t)throw Error(`Flow.options.initial index is out of range.`);return t.id}if(typeof e==`string`){if(!this._stepMap.has(e))throw Error(`Flow.options.initial step "${e}" does not exist.`);return e}return this.steps[0].id}_validateSteps(e){let t=new Set;for(let[n,r]of e.entries()){if(h(String(n),r,Re,`Flow.options.steps`),h(`content`,r.content??null,ze,`Flow.options.steps.${n}`),t.has(r.id))throw Error(`Flow.options.steps: duplicated step id "${r.id}".`);t.add(r.id)}}_resolveStepIndex(e){if(typeof e==`number`){if(!this.steps[e])throw Error(`Flow.goTo target is out of range.`);return e}if(typeof e==`string`){if(!this._stepMap.has(e))throw Error(`Flow.goTo target "${e}" does not exist.`);return this._stepMap.get(e)}throw Error(`Flow.goTo target expects string or number.`)}_createInitialStepData(){let e={},t={};for(let n of this.steps)e[n.id]=U(n.data),Object.assign(t,e[n.id]);return{stepData:e,global:t}}async _runMoveHook(e,t,n,r){let i=e===`back`?this.options.onBack:this.options.onNext,a=e===`back`?t.onBack:t.onNext,o=this._createContext({payload:n,targetId:r});if(typeof a==`function`){let e=await this._callHook(a,[o]);if(e!=null)return e}if(typeof i==`function`){let e=await this._callHook(i,[o]);if(e!=null)return e}return r}async _transitionTo(e,{direction:n,payload:r,fromStep:i}){let a=this.snapshot(),o=this._captureState();try{r&&this.setStepData(i.id,r,{silent:!0}),await this._assertCanLeave(i,e,n),await this._assertCanEnter(e,i,n),typeof i.onLeave==`function`&&await this._callHook(i.onLeave,[this._createContext({direction:n,step:i,targetId:e.id})]);let o=this.state.currentId,s=this.state.currentIndex,c=this._stepMap.get(e.id);(0,t.flushSync)(()=>{this.state.previousId=o,this.state.previousIndex=s,this.state.currentId=e.id,this.state.currentIndex=c,this.state.direction=n,n===`back`?this.state.history.pop():this.state.history.push(e.id),this.state.error=null,this.state.version+=1}),typeof e.onEnter==`function`&&await this._callHook(e.onEnter,[this._createContext({direction:n,fromId:o,step:e})]),this._emitChange(a)}catch(e){throw this._destroyed||!this.state||!this.options?e:(this.options.rollbackOnError&&this._restoreState(o,{keepLoading:!0}),this._handleError(e,a),e)}}async _assertCanLeave(e,t,n){if(typeof e.canLeave==`function`&&await this._callHook(e.canLeave,[this._createContext({direction:n,targetId:t.id})])===!1)throw Error(`Flow: step "${e.id}" blocked leaving.`)}async _assertCanEnter(e,t,n){if(typeof e.canEnter==`function`&&await this._callHook(e.canEnter,[this._createContext({direction:n,fromId:t.id})])===!1)throw Error(`Flow: step "${e.id}" blocked entering.`)}_createContext(e={}){let t=e.step||this.currentStep,n=this.snapshot();return{...e,flow:this,step:t,state:this.state,signal:this._actionController?.signal||null,snapshot:n,data:U(this.state.data),currentData:this.getStepData(t.id),setData:e=>this.setData(e),setStepData:(e,t)=>this.setStepData(e,t),getStepData:e=>this.getStepData(e),next:e=>this.next(e),back:e=>this.back(e),goTo:(e,t,n)=>this.goTo(e,t,n),addCleanup:e=>this._addCleanup(e)}}async _runAction(e,t,n={}){let r=!n.internal&&!this.state.loading;r&&(this._actionController=typeof AbortController<`u`?new AbortController:null,this._activeAction=e,this._setLoading(!0,e));try{return await t()}catch(e){if(this._destroyed||!this.state)return null;throw!this._destroyed&&this.state?.error!==e&&this._handleError(e),e}finally{r&&!this._destroyed&&(this._setLoading(!1,null),this._activeAction=null,this._actionController=null)}}_handleBusy(e){if(!this.state.loading)return null;let t=Error(`Flow: action "${e}" ignored while loading.`);if(t.code=`FLOW_BUSY`,typeof this.options.onBusy==`function`&&this.options.onBusy(e,this.snapshot(),this),this.options.busyStrategy===`throw`)throw t;return this.snapshot()}_abortActiveAction(){this._actionController?.abort?.(),this._actionController=null,this._activeAction=null}async _callHook(e,t){if(typeof e!=`function`)return;let n=await e(...t);if(this._destroyed||!this.state)throw this._createAbortError();return n}_createAbortError(){let e=Error(`Flow: active action was aborted.`);return e.code=`FLOW_ABORTED`,e}_setLoading(e,n=this.state?.busyAction||null){this.state&&(0,t.flushSync)(()=>{this.state.loading=e,this.state.busyAction=e?n:null})}_handleError(e,n=null){this.state&&((0,t.flushSync)(()=>{this.state.error=e,this.state.version+=1}),typeof this.options.onError==`function`&&this.options.onError(e,this.snapshot(),this,n))}_emitChange(e=null){let t=this.snapshot();for(let n of Array.from(this._subscribers))n(t,this,e);typeof this.options.onChange==`function`&&this.options.onChange(t,this,e)}_replaceObject(e,t){for(let t of Object.keys(e))delete e[t];Object.assign(e,t)}_captureState(){return{currentId:this.state.currentId,currentIndex:this.state.currentIndex,previousId:this.state.previousId,previousIndex:this.state.previousIndex,direction:this.state.direction,history:Fe(this.state.history),data:U(this.state.data),stepData:U(this.state.stepData),loading:this.state.loading,busyAction:this.state.busyAction,error:this.state.error,version:this.state.version}}_restoreState(e,n={}){(0,t.flushSync)(()=>{this.state.currentId=e.currentId,this.state.currentIndex=e.currentIndex,this.state.previousId=e.previousId,this.state.previousIndex=e.previousIndex,this.state.direction=e.direction,this.state.history.splice(0,this.state.history.length,...e.history),this._replaceObject(this.state.data,e.data),this._replaceObject(this.state.stepData,e.stepData),this.state.loading=n.keepLoading?!0:e.loading,this.state.busyAction=e.busyAction,this.state.error=e.error,this.state.version=e.version+1})}_addCleanup(e){if(typeof e!=`function`)throw Error(`Flow.addCleanup: cleanup expects a function.`);return this._destroyed?(e(),()=>{}):(this._cleanupTasks.add(e),()=>this._cleanupTasks.delete(e))}_assertActive(e){if(this._destroyed||!this.state)throw Error(`Flow.${e}: instance has been destroyed.`)}_publicStep(e){if(!e)return null;let t={...e};return delete t.onEnter,delete t.onLeave,delete t.onNext,delete t.onBack,delete t.canEnter,delete t.canLeave,t}_buildRoot(){return(0,t.jsx)(`div`,{className:`j-flow ${this.options.className||``}`.trim(),id:this.options.id,role:`group`,"aria-busy":()=>this.state.loading?`true`:`false`,"aria-labelledby":`${this.options.id}-title`,ref:e=>{this._nodes.root=e}})}_mountView(){this._renderDispose||!this.root||(this._renderDispose=(0,t.createRoot)(e=>((0,t.onCleanup)((0,t.render)(()=>this._view(),this.root)),e)))}_view(){let e=this.snapshot();return[this._renderSlot(`renderHeader`,e,()=>this.options.showHeader?this._headerView(e):null),this._renderSlot(`renderSteps`,e,()=>this.options.showSteps?this._stepsView(e):null),this._renderSlot(`renderBody`,e,()=>this._bodyView(e)),this._renderSlot(`renderFooter`,e,()=>this.options.showFooter?this._footerView(e):null)]}_renderSlot(e,t,n){let r=this.options[e];return r===!1?null:typeof r==`function`?r(this._createRenderContext(t,n)):n()}_createRenderContext(e,t){return{flow:this,snapshot:e,state:this.state,steps:this.steps.map(e=>this._publicStep(e)),currentStep:e.currentStep,currentData:e.currentData,data:e.data,fallback:t,next:e=>this.next(e),back:e=>this.back(e),goTo:(e,t,n)=>this.goTo(e,t,n),reset:()=>this.reset()}}_headerView(e){return(0,t.jsx)(`div`,{className:`flow-header`,children:[(0,t.jsx)(`div`,{id:`${this.options.id}-title`,className:`flow-title`,children:e.currentStep?.title||e.currentStep?.id||``}),e.currentStep?.description?(0,t.jsx)(`div`,{className:`flow-description`,children:e.currentStep.description}):null]})}_stepsView(e){return(0,t.jsx)(`ol`,{className:`flow-steps`,role:`list`,"aria-label":`Flow steps`,children:this.steps.map((n,r)=>(0,t.jsx)(`li`,{className:this._stepClass(r,e.currentIndex),"aria-current":r===e.currentIndex?`step`:void 0,children:[(0,t.jsx)(`button`,{type:`button`,className:`flow-step-button`,disabled:this.options.linear&&r>e.currentIndex,"aria-current":r===e.currentIndex?`step`:void 0,"aria-disabled":this.options.linear&&r>e.currentIndex?`true`:`false`,"aria-label":`${r+1}. ${n.title||n.id}`,onClick:()=>{r!==e.currentIndex&&this.goTo(r)},children:[(0,t.jsx)(`span`,{className:`flow-step-index`,children:r+1}),(0,t.jsx)(`span`,{className:`flow-step-title`,children:n.title||n.id})]})]}))})}_bodyView(e){return(0,t.jsx)(`div`,{className:`flow-body`,role:`region`,"aria-live":`polite`,"aria-busy":e.loading?`true`:`false`,children:this._contentView(e.currentStep?.content)})}_footerView(e){return(0,t.jsx)(`div`,{className:`flow-footer`,children:[this.options.showReset?(0,t.jsx)(`button`,{type:`button`,className:`j-button is-ghost flow-reset`,onClick:()=>this.reset(),disabled:e.loading,"aria-disabled":e.loading?`true`:`false`,children:this.options.text.reset}):null,this.options.showBack?(0,t.jsx)(`button`,{type:`button`,className:`j-button is-ghost flow-back`,"data-action":`back`,onClick:()=>void this.back(),disabled:!e.canBack,"aria-disabled":e.canBack?`false`:`true`,children:this.options.text.back}):null,this.options.showNext?(0,t.jsx)(`button`,{type:`button`,className:`j-button is-primary flow-next`,"data-action":`next`,onClick:()=>void this.next(),disabled:e.loading,"aria-disabled":e.loading?`true`:`false`,children:e.isLast?this.options.text.finish:this.options.text.next}):null]})}_contentView(e){return typeof e==`function`?e(this._createContext()):Array.isArray(e)||typeof Node<`u`&&e instanceof Node?e:e==null||typeof e!=`string`?``:e}_stepClass(e,t=this.state.currentIndex){let n=[`flow-step`];return e===t&&n.push(`is-active`),e<t&&n.push(`is-complete`),n.join(` `)}};function We(e){return new Ue(e)}let Ge={type:{default:`mobile`,type:`string`},id:{default:``,type:`string`,normalize:e=>e.trim()===``?_():e.trim()},items:{default:[],type:`array`},backText:{default:`Back`,type:`string`}},Ke={type:`array`};var qe=class{constructor(e={},t=!1){this.options=g(e,Ge,`Menu.options`),this._element=t,this.root=null,this.cleanup={events:M()},this._bound=!1,this._destroyed=!1}_verifyItems(e){h(`items`,e,Ke,`Menu`)}build(){if(this._bound)return this;if(!S())throw Error(`Menu: DOM render environment is required.`);return this._element===!1?(this.root=this._buildRoot(),this._bound=!0):(this.root=A(this._element,`Menu.element`),this._bound=!0),this._bindEvents(),this}_buildRoot(){let{items:e,id:n,type:r}=this.options;return(0,t.jsx)(`nav`,{className:`j-${r}-menu`,children:(0,t.jsx)(`ul`,{className:`menu`,id:n,children:e.map(e=>this._buildItem(e))})})}_buildItem(e){let n=e.children&&e.children.length>0,r=[`menu-item`];n&&r.push(`menu-item-has-children`),e.classes&&Array.isArray(e.classes)&&r.push(...e.classes);let i=[(0,t.jsx)(`a`,{className:`menu-link`,href:e.url||`#`,...e.target&&{target:e.target},children:e.title})];return n&&i.push((0,t.jsx)(`ul`,{className:`sub-menu`,children:e.children.map(e=>this._buildItem(e))})),(0,t.jsx)(`li`,{className:r.join(` `),id:`menu-item-${e.id||_()}`,children:i})}_bindEvents(){this.root&&(this.options.type===`mobile`?this.cleanup.events.on(`mobile`,this.root,`click`,e=>{let t=e.target;if(t.closest(`.menu-item.back`)){e.preventDefault(),this._handleBack(t);return}let n=t.closest(`.menu-item.menu-item-has-children`);if(n){let r=O(`:scope > a`,n);r&&(t===r||r.contains(t))&&(e.preventDefault(),this._handleMenuClick(n))}}):this.options.type===`bottom`&&this.cleanup.events.on(`bottom`,document,`click`,e=>{let t=e.target;if(t.closest(`.sub-menu a`))return;let n=t.closest(`.menu > .menu-item.menu-item-has-children`);n?(e.preventDefault(),this._toggleActive(n)):O(`.menu-item.is-active`,this.root)?.classList.remove(`is-active`)}))}_unbindEvents(){this.cleanup.events.clear()}_teardown({keepElement:e=!1}={}){this._unbindEvents(),this.cleanup.items?.(),this.cleanup.items=null,this._element===!1&&this.root?.parentElement&&this.root.remove(),e||(this._element=null),this.root=null,this._bound=!1}_handleMenuClick(e){e.classList.add(`is-active`);let n=O(`:scope > .sub-menu`,e);if(!n||O(`:scope > .menu-item.back`,n))return;let r=(0,t.jsx)(`li`,{className:`menu-item back`,children:(0,t.jsx)(`a`,{className:`menu-link`,children:[(0,t.jsx)(`icon`,{className:`el-icon el-prefix`,children:I(`arrow-left`)}),(0,t.jsx)(`span`,{className:`menu-text`,children:this.options.backText})]})});n.insertBefore(r,n.firstChild)}_handleBack(e){let t=e.closest(`.menu-item.back`);if(!t)return;let n=t.parentElement.parentElement;n&&n.classList.contains(`menu-item-has-children`)&&n.classList.remove(`is-active`),t.remove()}_toggleActive(e){let t=e.classList.contains(`is-active`);O(`.menu-item.is-active`,this.root)?.classList.remove(`is-active`),t||e.classList.add(`is-active`)}setItems(e){if(this._verifyItems(e),this.options.items=e,this._bound)if(this._element===!1){let e=this._element;this._teardown({keepElement:!0}),this._element=e,this.build()}else{let n=this.root.matches?.(`.menu`)||this.root.matches?.(`ul`)||this.root.matches?.(`ol`)?this.root:O(`:scope > .menu`,this.root)||O(`.menu`,this.root);if(!n)throw Error(`Menu: .menu element not found for setItems().`);this._unbindEvents(),this.cleanup.items?.(),this.cleanup.items=(0,t.render)(()=>e.map(e=>this._buildItem(e)),n),this._bindEvents()}return this}removeItem(e){if(!this.root)return this;let t=O(`[id^="menu-item-${e}"]`,this.root);if(t&&t.remove(),this.options.items){let t=n=>{for(let r=n.length-1;r>=0;r--)n[r].id===e?n.splice(r,1):n[r].children&&t(n[r].children)};t(this.options.items)}return this}destroy(){this._destroyed||(this._destroyed=!0,this._bound?this._teardown():(this._element=null,this.root=null,this.cleanup.events.clear()),this.cleanup=null,this.options=null)}};function K(e){return Array.isArray(e)?e.map(e=>({...e,options:Array.isArray(e.options)?e.options.map(e=>e&&typeof e==`object`?{...e}:e):e.options})):[]}function q(e){return{...e,fields:Array.isArray(e.fields)?K(e.fields):e.fields}}function Je(e){return e&&typeof e==`object`?e:{value:e,text:e}}function Ye(e){return e==null||typeof e==`string`||typeof e==`function`||Array.isArray(e)||C(e)}function Xe(e){return d(e)}function Ze(e){return e==null||typeof e==`object`&&typeof e.next==`function`&&typeof e.back==`function`&&typeof e.snapshot==`function`}function Qe(e,t){return!Array.isArray(e)||!d(t)?e:e.map(e=>{if(!e?.name||!o(t,e.name))return e;let n=t[e.name];if(e.type===`checkbox`||e.type===`radio`){let t=e.value??`on`,r=Array.isArray(n)?n.map(String).includes(String(t)):n===!0||String(n)===String(t);return{...e,checked:r}}return{...e,value:n}})}function $e(e){let t=d(e?.text)?e.text:{};return{title:typeof t.title==`string`?t.title:`Tip`,confirm:typeof t.confirm==`string`?t.confirm:`Confirm`,cancel:typeof t.cancel==`string`?t.cancel:`Cancel`}}function et(e){return{...e,fields:Array.isArray(e.fields)?K(e.fields):null,text:$e(e),loading:!1,submitting:!1,visible:!1,data:null,extraData:null}}function tt(e,t){return!t||typeof t!=`object`?e:Object.assign(e,t)}function nt(e){return d(e)?{...e}:{}}let rt={validate:Ye,message:`expects string, Node, array, function or null.`},it={default:{},validate:e=>d(e),message:`expects an object with text fields.`,normalize:e=>{let t=d(e)?e:{};return{...t,title:typeof t.title==`string`?t.title:`Tip`,confirm:typeof t.confirm==`string`?t.confirm:`Confirm`,cancel:typeof t.cancel==`string`?t.cancel:`Cancel`}}},at={types:[`array`,`null`]},J={content:{default:``,...rt},position:{default:`center`,type:`string`},showCancel:{default:!0,type:`boolean`},showClose:{default:!0,type:`boolean`},fullscreen:{default:!1,type:`boolean`},flow:{default:null,validate:Ze,message:`expects a Flow instance or null.`},text:it,onShow:{default:null,types:[`function`,`null`]},onShown:{default:null,types:[`function`,`null`]},onHide:{default:null,types:[`function`,`null`]},onHidden:{default:null,types:[`function`,`null`]},onConfirm:{default:null,types:[`function`,`null`]},onSubmit:{default:null,types:[`function`,`null`]},onCancel:{default:null,types:[`function`,`null`]},fields:{default:null,...at},header:{default:!0,type:`boolean`},footer:{default:!0,type:`boolean`},style:{default:null,types:[`string`,`null`,`object`]},id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():_():e??_()},escClose:{default:!1,type:`boolean`},bgClose:{default:!1,type:`boolean`},lazy:{default:!1,type:`boolean`}},ot={...J,loading:{default:!1,type:`boolean`},submitting:{default:!1,type:`boolean`},visible:{default:!1,type:`boolean`},data:{default:null,types:[`object`,`null`]},extraData:{default:null,types:[`object`,`null`]}},st=new Set([`id`,`lazy`]),ct={validate:e=>!!e&&typeof e==`object`&&!Array.isArray(e),message:`expects an object.`},lt={validate:Xe,message:`expects a props object.`},Y=0,X=``;var ut=class extends z{constructor(e={}){let n=g(e,J,`Modal`);super(n),this.dom.modal=null,this.dom.header=null,this.dom.body=null,this.dom.footer=null,this.dom.form=null,this.cleanup.visibility=null,this.cleanup.view=null,this.cleanup.hideTimer=null,this.runtime.scrollLocked=!1,this.runtime.visibleApplied=!1,this.cache={initial:q(this.props),fieldIds:new Map,baseStyle:``,previousActiveElement:null,formId:`${this.props.id}_form`},this.state=(0,t.createDeepStore)(et(this.props)),this.init(n)}onInit(){this.bindReactiveVisibility(),!this.state.lazy&&S()&&this.buildRoot()}buildRoot(){if(this.root)return this.root;let{id:e}=this.state,n=(0,t.jsx)(`div`,{className:()=>`j-popup-layout is-${this.state.position}`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":()=>this.state.header?`${e}_title`:null,"aria-label":()=>this.state.header?null:this.state.text?.title||`Modal`,children:(0,t.jsx)(`div`,{className:()=>this.state.fullscreen?`j-modal is-fullscreen`:`j-modal`,id:e,role:`document`,ref:e=>{this.dom.modal=e,this.applyStyle(e,this.state.style)},children:[(0,t.jsx)(`div`,{className:`modal-header`,style:()=>({display:this.state.header?``:`none`}),ref:e=>{this.dom.header=e}}),(0,t.jsx)(`div`,{className:`modal-body`,ref:e=>{this.dom.body=e}}),(0,t.jsx)(`div`,{className:`modal-footer`,style:()=>({display:this.state.footer?``:`none`}),ref:e=>{this.dom.footer=e}})]})});return this.root=n,this.mountView(),n}mountView(){this.cleanup.view||!this.dom.body||(this.cleanup.view=(0,t.createRoot)(e=>(this.dom.header&&(0,t.onCleanup)((0,t.render)(()=>this.headerView(),this.dom.header)),(0,t.render)(()=>this.bodyView(),this.dom.body),this.dom.footer&&(0,t.onCleanup)((0,t.render)(()=>this.footerView(),this.dom.footer)),this.bindReactiveLoading(),this.bindReactiveStyle(),e)))}headerView(){return()=>this.state.header?[(0,t.jsx)(`div`,{className:`modal-title`,id:`${this.state.id}_title`,children:()=>this.state.text?.title}),this.state.showClose?(0,t.jsx)(`button`,{type:`button`,className:`is-reset modal-close`,"data-action":`close`,"aria-label":`close`,children:I(`close`)}):null]:null}footerView(){return()=>this.state.footer?[this.state.showCancel?(0,t.jsx)(`button`,{type:`button`,className:`j-button is-ghost modal-cancel`,"data-action":`close`,"aria-label":`close`,disabled:()=>this.isBusy(),children:()=>this.state.text?.cancel}):null,(0,t.jsx)(`button`,{type:()=>this.isFormMode()?`submit`:`button`,form:()=>this.isFormMode()?this.cache.formId:null,className:`j-button is-primary modal-confirm`,"data-action":this.isFormMode()?`submit`:`confirm`,disabled:()=>this.isBusy(),children:()=>this.state.text?.confirm})]:null}bodyView(){return this.isFormMode()?this.formView():(this.dom.form=null,this.contentView(this.state.content))}formView(){return(0,t.jsx)(`div`,{className:`modal-form-container`,children:(0,t.jsx)(`form`,{id:this.cache.formId,className:`j-form is-vertical is-item-vertical`,ref:e=>{this.dom.form=e},onSubmit:e=>this.handleFormSubmit(e),onKeyDown:e=>this.handleFormKeydown(e),children:(this.state.fields||[]).map((e,t)=>this.fieldView(e,t))})})}fieldView(e,n){let r=this.resolveFieldId(e,n),i=this.labelView(e,r);return(0,t.jsx)(`div`,{className:`form-item`,style:{display:e.type===`hidden`?`none`:``},children:[i,(0,t.jsx)(`div`,{className:`form-control`,children:this.controlView(e,r)})]})}labelView(e,n){return(0,t.jsx)(`label`,{className:`item-label ${e.required?`is-required`:``}`,for:n,style:{display:e.label===void 0?`none`:``},children:e.label===void 0?``:e.label})}resolveFieldId(e,t){if(e.id)return e.id;let n=e.name||t;return this.cache.fieldIds.has(n)||this.cache.fieldIds.set(n,`${this.state.id}_field_${t}_${_()}`),this.cache.fieldIds.get(n)}controlView(e,t){switch(e.type){case`textarea`:return this.textareaView(e,t);case`select`:return this.selectView(e,t);default:return this.inputView(e,t)}}inputView(e,n){let r=e.type||`text`,i={type:r,className:`j-input`,name:e.name,id:n,placeholder:e.placeholder||``,value:e.value??``,autocomplete:e.autocomplete||this.autoComplete(r),required:!!e.required,disabled:!!e.disabled,readonly:!!e.readonly};return e.checked!==void 0&&(i.checked=!!e.checked),(0,t.jsx)(`input`,i)}textareaView(e,n){return(0,t.jsx)(`textarea`,{className:`j-textarea`,name:e.name,id:n,placeholder:e.placeholder||``,value:e.value??``,required:!!e.required,disabled:!!e.disabled,readonly:!!e.readonly})}selectView(e,n){let r=e.value;return(0,t.jsx)(`select`,{className:`j-select`,name:e.name,id:n,autocomplete:`off`,required:!!e.required,disabled:!!e.disabled,readonly:!!e.readonly,multiple:!!e.multiple,children:(e.options||[]).map(e=>{let n=Je(e);return(0,t.jsx)(`option`,{value:n.value??``,disabled:!!n.disabled,selected:this.isSelected(r,n.value),children:n.text??n.label??n.value??``})})})}contentView(e){if(typeof e==`function`)return e(this);if(Array.isArray(e)||C(e))return e;if(e==null||typeof e!=`string`)return``;let t=document.createElement(`template`);return t.innerHTML=e,Array.from(t.content.childNodes)}bindReactiveLoading(){let e=null;(0,t.createEffect)(()=>{this.state.loading&&!e?(e=(0,t.jsx)(`div`,{className:`j-loading is-active`,"aria-live":`polite`,children:(0,t.jsx)(`div`,{className:`loading-spinner`})}),this.dom.modal.appendChild(e)):!this.state.loading&&e&&(e.remove(),e=null)}),(0,t.onCleanup)(()=>{e?.remove(),e=null})}bindReactiveStyle(){(0,t.createEffect)(()=>{let e=this.state.style;this.dom.modal&&this.applyStyle(this.dom.modal,e)})}autoComplete(e){switch(e){case`password`:return`current-password`;case`email`:return`email`;default:return`on`}}isSelected(e,t){return Array.isArray(e)?e.map(String).includes(String(t)):e==t}isFormMode(){return Array.isArray(this.state.fields)}isBusy(){return!!(this.state.loading||this.state.submitting)}validatePropsPatch(e,t=`Modal.update`){h(`props`,e,lt,t);for(let n of Object.keys(e)){if(!o(J,n))throw Error(`Validator: ${t}.${n} is not a supported modal prop.`);if(st.has(n))throw Error(`Modal.update: "${n}" cannot be updated after initialization.`);h(n,e[n],J[n],t)}}applyProps(e,{validate:n=!0,force:r=!1}={}){if(n&&this.validatePropsPatch(e),!e||Object.keys(e).length===0)return this;let i=o(e,`fields`);if(o(e,`content`)&&!i&&this.isFormMode()&&!r)throw Error(`Modal.update: Cannot update content when fields are defined.`);let a=Object.assign({},this.props,e);o(e,`text`)&&(a.text=Object.assign({},this.props.text||{},e.text)),this.props=a,super.update(e,{force:r}),this.props=a;let s={};i&&(this.cache.fieldIds.clear(),s.fields=Array.isArray(e.fields)?K(e.fields):null);for(let[t,n]of Object.entries(e))t===`fields`||t===`text`||(s[t]=n);return o(e,`text`)&&(s.text=$e(this.props)),(0,t.flushSync)(()=>{for(let[e,t]of Object.entries(s))this.state[e]=t}),o(e,`style`)&&this.dom.modal&&this.applyStyle(this.dom.modal,this.state.style),this.state.visible&&(o(e,`bgClose`)||o(e,`escClose`))&&this.bindEvents(this.root),this}applyStyle(e,t){if(e.removeAttribute(`style`),!t){this.cache.baseStyle=``;return}if(typeof t==`string`){e.style.cssText=t,this.cache.baseStyle=e.getAttribute(`style`)||``;return}typeof t==`object`&&Object.entries(t).forEach(([t,n])=>{if(n==null)return;let r=t.startsWith(`--`)?t:t.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`);e.style.setProperty(r,String(n))}),this.cache.baseStyle=e.getAttribute(`style`)||``}normalizeIcon(e){if(!(e instanceof Element))return;let t=O(`.modal-close`,e);t&&(t.style.transform=`translateX(${t.clientHeight/3}px)`)}bindReactiveVisibility(){this.cleanup.visibility=(0,t.createRoot)(e=>((0,t.createEffect)(()=>{let e=!!this.state.visible;(0,t.untrack)(()=>this.applyVisibility(e))}),e))}applyVisibility(e){if(e!==this.runtime.visibleApplied){if(e){this.showFromState();return}this.hideFromState()}}showFromState(){if(this.runtime.destroyed)throw Error(`Modal: The current instance has been destroyed.`);if(!S())throw Error(`Modal.show: DOM environment is required.`);this.root||this.buildRoot(),this.cancelHideTimer(),this.resetAnimationStyles();let{onShow:e,onShown:t}=this.state;e&&e(),this.cache.previousActiveElement=document.activeElement,this.root.parentNode||document.body.appendChild(this.root),this.lockScroll(),this.runtime.visibleApplied=!0,this.normalizeIcon(this.dom.modal),this.bindEvents(this.root),this.focusFirst(),t&&t()}hideFromState(){if(!this.runtime.visibleApplied||!this.root)return;let{onHide:e,onHidden:n}=this.state;e&&e(),this.runtime.visibleApplied=!1,this.clearEvents(),(0,t.flushSync)(()=>{this.state.loading=!1,this.state.extraData=null,this.state.data=null}),this.dom.modal&&(this.dom.modal.style.transition=`opacity 300ms ease-out, transform 300ms ease-out`,this.dom.modal.style.opacity=`0`,this.dom.modal.style.transform=`scale(0.3)`),this.cancelHideTimer(),this.cleanup.hideTimer=setTimeout(()=>this.finishHide(n),300)}bindEvents(e){this.clearEvents(),this.bindOverlayCloseEvent(e),this.bindDocumentKeyEvent(),this.bindInsideEvent()}bindOverlayCloseEvent(e){e&&this.cleanup.events.on(`bg`,e,`click`,t=>{this.state.bgClose&&t.target===e&&this.hide()})}bindDocumentKeyEvent(){this.cleanup.events.on(`keydown`,document,`keydown`,e=>{if(this.state.visible){if(e.key===`Escape`&&this.state.escClose){e.preventDefault(),this.hide();return}e.key===`Tab`&&this.trapFocus(e)}})}bindInsideEvent(){this.dom.modal&&this.cleanup.events.on(`inside`,this.dom.modal,`click`,e=>{let t=(e.target instanceof Element?e.target:null)?.closest(`[data-action]`);if(!t||!this.dom.modal.contains(t))return;let n=t.dataset.action;if(n===`cancel`||n===`close`||t.classList.contains(`modal-close`)){this.handleCancel();return}if(n===`submit`){this.requestSubmit();return}if(n===`back`){this.handleBack();return}if(n===`next`){this.handleNext();return}if(n===`confirm`){if(this.isFormMode()){if(t.classList.contains(`modal-confirm`))return;this.requestSubmit();return}this.handleConfirm()}})}clearEvents(){this.cleanup.events.clear()}requestSubmit(){if(!this.dom.form){this.handleConfirm();return}if(typeof this.dom.form.requestSubmit==`function`){this.dom.form.requestSubmit();return}let e=new Event(`submit`,{bubbles:!0,cancelable:!0});this.dom.form.dispatchEvent(e)}async handleFormSubmit(e){if(e.preventDefault(),this.isBusy())return;let n=e.currentTarget;if(!n.checkValidity()){n.reportValidity();return}let r=tt(this.collectFormData(n),this.state.extraData);(0,t.flushSync)(()=>{this.state.data=r}),await this.handleSubmit(r)}handleFormKeydown(e){if(e.key!==`Enter`||e.isComposing||this.isBusy())return;let t=e.target,n=t?.tagName?.toLowerCase(),r=t?.type?.toLowerCase();n!==`textarea`&&(r===`button`||r===`submit`||r===`reset`||(e.preventDefault(),this.requestSubmit()))}collectFormData(e){let t={},n=new FormData(e);for(let[e,r]of n.entries())o(t,e)?t[e]=Array.isArray(t[e])?[...t[e],r]:[t[e],r]:t[e]=r;return t}async handleNext(){this.isBusy()||this.hasFlow()&&await this.moveFlow(`next`)}async handleBack(){this.isBusy()||this.hasFlow()&&await this.moveFlow(`back`)}hasFlow(){return Ze(this.state.flow)&&!!this.state.flow}async moveFlow(e){let n=this.createFlowPayload();if(n!==!1){(0,t.flushSync)(()=>{this.state.submitting=!0});try{let t=await this.state.flow[e](n);this.syncFlowView(this.state.flow,t)}catch(t){console.error(`Modal.flow.${e} error:`,t),this.syncFlowView(this.state.flow)}finally{this.state&&(0,t.flushSync)(()=>{this.state.submitting=!1})}}}createFlowPayload(){if(!this.isFormMode())return null;let e=this.dom.form;if(!e)return this.state.data||null;if(!e.checkValidity())return e.reportValidity(),!1;let n=tt(this.collectFormData(e),this.state.extraData);return(0,t.flushSync)(()=>{this.state.data=n}),this.state.data}resolveFlowModalView(e,t,n){let r=n?.modal??n?.view;if(typeof r==`function`){let i=r({flow:e,snapshot:t,step:n,modal:this,data:t?.data??null,currentData:t?.currentData??null});return d(i)?i:{}}return nt(r)}syncFlowView(e,t=null){if(!e||!this.state)return;let n=e.snapshot()||t,r=e.currentStep||n?.currentStep||t?.currentStep,i=this.resolveFlowModalView(e,n,r),a=d(i.text)?i.text:{},s={...(!o(i,`text`)||!o(a,`title`))&&r?.title!=null?{text:{...a,title:r.title}}:{},...!o(i,`content`)&&!o(i,`fields`)?{content:r?.content??null}:{},...i};Array.isArray(s.fields)&&(s.fields=Qe(s.fields,n?.currentData)),!o(s,`fields`)&&o(s,`content`)&&(s.fields=null),this.update(s)}async handleConfirm(){if(!this.isBusy()){(0,t.flushSync)(()=>{this.state.submitting=!0});try{this.state.onConfirm&&await Promise.resolve(this.state.onConfirm()),this.hide()}catch(e){console.error(`Modal.onConfirm error:`,e)}finally{this.state&&(0,t.flushSync)(()=>{this.state.submitting=!1})}}}async handleCancel(){if(!this.isBusy()){(0,t.flushSync)(()=>{this.state.submitting=!0});try{this.state.onCancel&&await Promise.resolve(this.state.onCancel(this)),this.hide()}catch(e){console.error(`Modal.onCancel error:`,e)}finally{this.state&&(0,t.flushSync)(()=>{this.state.submitting=!1})}}}async handleSubmit(e){if(this.state.onSubmit){(0,t.flushSync)(()=>{this.state.submitting=!0});try{await Promise.resolve(this.state.onSubmit(e)),this.state.extraData=null}catch(e){console.error(`Modal.onSubmit error:`,e)}finally{this.state&&(0,t.flushSync)(()=>{this.state.submitting=!1})}}}trapFocus(e){if(!this.dom.modal)return;let t=Array.from(k(`a[href], button:not([disabled]):not([data-action=close]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])`,this.dom.modal)).filter(e=>e.offsetParent!==null||e===document.activeElement);if(t.length===0){e.preventDefault(),this.dom.modal.focus();return}let n=t[0],r=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),r.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n.focus())}focusFirst(){if(!this.dom.modal)return;let e=O(`input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]):not([data-action=close]), [tabindex]:not([tabindex="-1"])`,this.dom.form||this.dom.modal);e?e.focus():(this.dom.modal.setAttribute(`tabindex`,`-1`),this.dom.modal.focus())}lockScroll(){this.runtime.scrollLocked||!x()||(Y===0&&(X=document.body.style.overflow,document.body.style.overflow=`hidden`),Y+=1,this.runtime.scrollLocked=!0)}unlockScroll(){!this.runtime.scrollLocked||!x()||(Y=Math.max(0,Y-1),Y===0&&(document.body.style.overflow=X,X=``),this.runtime.scrollLocked=!1)}cancelHideTimer(){this.cleanup.hideTimer&&(clearTimeout(this.cleanup.hideTimer),this.cleanup.hideTimer=null)}resetAnimationStyles(){this.dom.modal&&(this.cache.baseStyle?this.dom.modal.setAttribute(`style`,this.cache.baseStyle):this.dom.modal.removeAttribute(`style`))}finishHide(e){this.cleanup.hideTimer=null,this.root?.parentNode&&this.root.parentNode.removeChild(this.root),this.resetAnimationStyles(),this.unlockScroll(),this.restoreFocus(),e&&e()}restoreFocus(){let e=this.cache.previousActiveElement;this.cache.previousActiveElement=null,e&&typeof e.focus==`function`&&document.contains(e)&&e.focus()}assertActive(e){if(this.runtime.destroyed)throw Error(`Modal.${e}: The current instance has been destroyed.`)}validateStatePatch(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Modal.setState: expects a plain object patch.`);for(let t of Object.keys(e)){if(!o(ot,t))throw Error(`Modal.setState: "${t}" is not a supported state key.`);if(st.has(t))throw Error(`Modal.setState: "${t}" cannot be updated after initialization.`);h(t,e[t],ot[t],`Modal.setState`)}}setState(e={}){return this.assertActive(`setState`),this.validateStatePatch(e),(0,t.flushSync)(()=>{for(let[t,n]of Object.entries(e))t===`fields`&&this.cache.fieldIds.clear(),this.state[t]=t===`fields`&&Array.isArray(n)?K(n):n}),this}show(){return this.assertActive(`show`),(0,t.flushSync)(()=>{this.state.visible=!0}),this}hide(){return this.assertActive(`hide`),(0,t.flushSync)(()=>{this.state.visible=!1}),this}setFields(e,t=!1){return h(`data`,e,at,`Modal.setFields`),this.applyProps({fields:e},{validate:!1,force:t}),this}addFields(e){return h(`data`,e,ct,`Modal.addFields`),(0,t.flushSync)(()=>{this.state.extraData=e}),this}setContent(e,t=!1){if(h(`content`,e,rt,`Modal.setContent`),this.isFormMode()&&!t)throw Error(`Modal.setContent: Cannot setContent when fields are defined.`);return this.applyProps({content:e},{validate:!1,force:t}),this}update(e={},t=!1){return this.applyProps(e,{validate:!0,force:t})}reset(){this.cache.fieldIds.clear();let e=q(this.cache.initial);return delete e.id,delete e.lazy,this.props=q(e),this.applyProps(e,{validate:!1}),(0,t.flushSync)(()=>{this.state.data=null,this.state.extraData=null}),this}resetContent(){return this.setContent(this.cache.initial?.content??``)}resetFields(){return this.setFields(Array.isArray(this.cache.initial?.fields)?K(this.cache.initial.fields):null)}onDestroy(){let e=!!this.runtime.visibleApplied,t=this.state?.onHide,n=this.state?.onHidden;e&&t&&t(),this.cancelHideTimer(),this.clearEvents(),this.unlockScroll(),this.cleanup.visibility?.(),this.cleanup.visibility=null,this.cleanup.view?.(),this.cleanup.view=null,this.root?.parentNode&&this.root.parentNode.removeChild(this.root),e&&n&&n(),this.cache={initial:null,fieldIds:null,baseStyle:``,previousActiveElement:null,formId:``}}destroy(){if(!this.runtime.destroyed)return super.destroy(),this}};let dt={content:{default:``,validate:E,message:`expects string, Node, array, function or null.`},overlay:{default:!0,type:`boolean`},filter:{default:!0,type:`boolean`},direction:{default:`left`,type:`string`,enum:[`top`,`right`,`bottom`,`left`]},animation:{default:`slide`,type:`string`,enum:[`slide`,`push`,`none`]},bgClose:{default:!0,type:`boolean`},escClose:{default:!0,type:`boolean`},id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():_():e??_()},onShow:{default:null,types:[`function`,`null`]},onShown:{default:null,types:[`function`,`null`]},onHide:{default:null,types:[`function`,`null`]},onHidden:{default:null,types:[`function`,`null`]}};var ft=class extends z{constructor(e={}){if(!S())throw Error(`Offcanvas: DOM render environment is required.`);let n=g(e,dt,`Offcanvas`);super(n),this._overlay=null,this.state=(0,t.createDeepStore)({visible:!1}),this.onInit(n)}onInit(e){e.overlay&&(this._overlay=this._buildOverlay(e)),this.root=this._buildRoot(e)}_buildOverlay(e){return(0,t.jsx)(`div`,{className:`j-offcanvas-overlay`,style:e.filter?{backdropFilter:`blur(2px)`}:{}})}_buildRoot(e){return(0,t.jsx)(`div`,{className:`j-offcanvas is-${e.direction} is-${e.animation}`,id:e.id,children:(0,t.jsx)(`div`,{className:`offcanvas-content`,children:D(e.content,this)})})}_bindEvents(){this.unbindEvents();let{bgClose:e,escClose:t}=this.props;this._overlay&&e&&this.cleanup.events.on(`overlay`,this._overlay,`click`,()=>{this.hide()}),t&&this.cleanup.events.on(`esc`,document,`keydown`,e=>{e.key===`Escape`&&this.state.visible&&this.hide()}),this.cleanup.events.on(`close`,this.root,`click`,e=>{let t=e.target.dataset.action;(t===`close`||t===`cancel`)&&this.hide()})}unbindEvents(){this.cleanup?.events.clear()}_render(){let{overlay:e,animation:t,direction:n,id:r}=this.props,i=document.body;e&&i.appendChild(this._overlay),i.appendChild(this.root),i.style.overflow=`hidden`,t===`push`&&i.classList.add(`offcanvas-push-body`),s.start(`oc-show-${r}`,10,()=>{this.root&&(this._overlay&&this._overlay.classList.add(`is-active`),t===`push`&&i.classList.add(`offcanvas-push-${n}`),this.root.classList.add(`is-active`))})}_remove(){let{animation:e,direction:t,id:n}=this.props,r=document.body;this._overlay&&this._overlay.classList.remove(`is-active`),this.root.classList.remove(`is-active`),e===`push`&&r.classList.remove(`offcanvas-push-${t}`),s.start(`oc-remove-${n}`,100,()=>{this._overlay?.parentNode?.removeChild(this._overlay),this.root?.parentNode?.removeChild(this.root),e===`push`&&r.classList.remove(`offcanvas-push-body`),r.style.overflow=``})}async show(){if(this.runtime.destroyed||this.state.visible)return;let{onShow:e,onShown:n,id:r}=this.props;e&&await Promise.resolve(e()),this._render(),this._bindEvents(),(0,t.flushSync)(()=>{this.state.visible=!0}),s.start(`oc-shown-${r}`,300,()=>{this.runtime.destroyed||n&&n()})}async hide(){if(this.runtime.destroyed||!this.state.visible)return;let{onHide:e,onHidden:n}=this.props;e&&await Promise.resolve(e()),this.unbindEvents(),this._remove(),(0,t.flushSync)(()=>{this.state.visible=!1}),n&&n()}onDestroy(){let{id:e}=this.props;s.cancel(`oc-show-${e}`),s.cancel(`oc-remove-${e}`),s.cancel(`oc-shown-${e}`),this.state.visible&&this.unbindEvents(),this.root?.classList.remove(`is-active`),this.root?.parentNode?.removeChild(this.root),this._overlay?.parentNode?.removeChild(this._overlay);let t=document.body;t.style.overflow=``,t.classList.remove(`offcanvas-push-body`,`offcanvas-push-${this.props.direction}`),this._overlay=null}};let pt={validate:e=>e==null||typeof e==`string`||Array.isArray(e)||C(e),message:`expects Element, Node, selector or JSX node.`},mt={ball:{default:{color:`var(--primary, #3e63dd)`,size:`10px`},type:`object`,validate:e=>e&&Object.keys(e).length===2&&typeof e.color==`string`&&typeof e.size==`string`,message:`expects an object with two string properties: "color" and "size".`},from:{default:null,...pt},to:{default:null,...pt},direction:{default:`center`,type:`string`,enum:[`center`,`top-right`,`top-left`,`bottom-right`,`bottom-left`]},showDelay:{default:0,type:`number`},hideDelay:{default:0,type:`number`},onShow:{default:null,types:[`function`,`null`]},onHidden:{default:null,types:[`function`,`null`]}};var ht=class{constructor(e){if(!S())throw Error(`Parabola: DOM render environment is required.`);this.options=g(e,mt,`Parabola.options`),this._init(this.options)}_init(e){this.hidden=!1,this._ball=null,this._animationId=null;let t=A(e.from,`Parabola.from`),n=A(e.to,`Parabola.to`);this._fromEl=t,this._toEl=n,this._createBall(e)}_createBall(e){if(this.hidden||this._ball)return;let{color:n,size:r}=e.ball;this._ball=(0,t.jsx)(`div`,{className:`parabola-ball`,style:{backgroundColor:n,width:r,height:r,position:`fixed`,borderRadius:`50%`,transform:`translate(-50%, -50%)`,pointerEvents:`none`,zIndex:`9999`,opacity:`1`}}),document.body.appendChild(this._ball)}_calculatePath(e){let t=this._fromEl?.getBoundingClientRect(),n=this._toEl?.getBoundingClientRect();if(!t||!n)return null;let{left:r,top:i,width:a,height:o}=t,{left:s,top:c,width:l,height:u}=n,d,f;switch(e.direction){case`top-left`:d=r+a*.2,f=i+o*.2;break;case`top-right`:d=r+a*.8,f=i+o*.2;break;case`bottom-left`:d=r+a*.2,f=i+o*.8;break;case`bottom-right`:d=r+a*.8,f=i+o*.8;break;default:d=r+a/2,f=i+o/2}let p=s+l/2,m=c+u/2;return{startX:d,startY:f,endX:p,endY:m}}_easeOutCubic(e){return 1-(1-e)**3}_animate(e,t,n,r,i=800){if(this.hidden)return;let a=performance.now(),o=n-e,s=r-t,c=n=>{if(this.hidden)return;let r=n-a,l=Math.min(r/i,1),u=this._easeOutCubic(l),d=e+o*u,f=t+-100*Math.sin(Math.PI*u)+s*u,p=1-l;this._ball.style.left=`${d}px`,this._ball.style.top=`${f}px`,this._ball.style.opacity=`${p}`,this._ball.style.transform=`translate(-50%, -50%) scale(${1-u*.3})`,l<1?this._animationId=requestAnimationFrame(c):this.destroy()};this._animationId=requestAnimationFrame(c)}async show(){return this.hidden?!1:new Promise(e=>{s.start(`show`,this.options.showDelay,()=>{if(this.hidden){e(!1);return}let t=this._calculatePath(this.options);if(!t){this.destroy(),e(!1);return}this._ball.style.left=`${t.startX}px`,this._ball.style.top=`${t.startY}px`,this.options.onShow&&this.options.onShow(),this._animate(t.startX,t.startY,t.endX,t.endY),e(!0)})})}destroy(){this.hidden||(this._ball?.remove(),s.cancel(`show`),this._animationId&&cancelAnimationFrame(this._animationId),this._ball=null,this._fromEl=null,this._toEl=null,this.hidden=!0,this.options.onHidden&&this.options.onHidden())}start(){return this.show()}};let Z={data:{default:null,validate:e=>e==null||Array.isArray(e),message:`expects an array or null.`},loop:{default:!0,type:`boolean`},autoplay:{default:!0,type:`boolean`},delay:{default:3e3,type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},lazyload:{default:!0,type:`boolean`},pagination:{default:!0,type:`boolean`},navigation:{default:!0,type:`boolean`},speed:{default:300,type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},touchRatio:{default:1,type:`number`,validate:e=>e>0,message:`expects a number greater than 0.`},touchAngle:{default:45,type:`number`,validate:e=>e>=0&&e<=90,message:`expects a number between 0 and 90.`},longSwipesMs:{default:300,type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},longSwipesRatio:{default:.05,type:`number`,validate:e=>e>=0&&e<=1,message:`expects a number between 0 and 1.`},preventClick:{default:!0,type:`boolean`}},gt={validate:e=>!e||typeof e!=`object`||Array.isArray(e)?!1:(e.image==null||typeof e.image==`string`)&&(e.url==null||typeof e.url==`string`)&&(e.title==null||typeof e.title==`string`)&&(e.sort==null||typeof e.sort==`number`)&&(e.blank==null||typeof e.blank==`boolean`)&&(e.children==null||E(e.children)),message:`expects items with optional image, url, title, sort, blank and children fields.`};function _t(e){return!!e?.closest?.(`a, button, input, textarea, select, label, [data-swiper-ignore]`)}function Q(e,t=0){let n=Number(e);return Number.isFinite(n)?n:t}function vt(e,t){return D(e,t)}function yt(e){let t=k(`.j-swiper`,e);return h(`container`,t,{validate:e=>e.length===1,message:`expects exactly one .j-swiper descendant.`},`Swiper`),t[0]}var bt=class extends z{constructor(e,n={}){let r=g(n,Z,`Swiper.options`);super(r),this._container=e,this._built=!1,this.dom.mountTarget=null,this.dom.createdRoot=!1,this.dom.createdSlides=!1,this.dom.wrapper=null,this.dom.slides=[],this.dom.pagination=null,this.dom.prevButton=null,this.dom.nextButton=null,this.dom.bullets=[],this.dom.createdPagination=!1,this.dom.createdPrevButton=!1,this.dom.createdNextButton=!1,this.runtime.logs=[],this.runtime.startTarget=null,this.runtime.touching=!1,this.runtime.scrolling=!1,this.runtime.swiping=!1,this.runtime.clickPrevented=!1,this.runtime.timer=null,this.runtime.imageCleanups=new Set,this.runtime.realCount=0,this.state=(0,t.createDeepStore)({index:0,trackIndex:0,transform:0,animating:!1,width:0})}build(){if(this.runtime.destroyed)throw Error(`Swiper.build: instance destroyed`);if(this._built)return this;if(!S())throw Error(`Swiper: DOM render environment is required.`);let e=Array.isArray(this.props.data),n=T(this._container,`Swiper`),r=null,i=null;e?(i=n,r=(0,t.h)(`div`,{className:`j-swiper`}),i.appendChild(r)):r=yt(n);try{this.dom.root=r,this.dom.mountTarget=i,this.dom.createdRoot=e,this.dom.createdSlides=e;let t=e?this.createDataView(r,this.props.data):O(`.swiper-wrapper`,r);h(`wrapper`,t,{validate:w,message:`expects .swiper-wrapper in the root element.`},`Swiper`),this.dom.wrapper=t,this.dom.slides=k(`.swiper-slide`,t),this.dom.pagination=O(`.swiper-pagination`,r),this.dom.prevButton=O(`.swiper-navigation.is-prev`,r),this.dom.nextButton=O(`.swiper-navigation.is-next`,r),this.dom.bullets=[],this.dom.createdPagination=!1,this.dom.createdPrevButton=!1,this.dom.createdNextButton=!1,this.runtime.realCount=this.dom.slides.length,this._built=!0,this.dom.slides.length>0&&this.onInit()}catch(e){throw this.destroy(),e}return this.emit(`init`,this.props),this}set index(e){this.setState({index:Q(e)})}set trackIndex(e){this.setState({trackIndex:Q(e)})}set transform(e){this.setState({transform:Q(e)})}set animating(e){this.setState({animating:!!e})}set width(e){this.setState({width:Q(e)})}get realCount(){return this.runtime?.destroyed?0:this.runtime?.realCount||0}get realIndex(){return this.toRealIndex()}assertBuilt(e){if(!this._built)throw Error(`Swiper.${e}: call build() first.`)}createDataView(e,n){let r=this.normalizeData(n),i=(0,t.h)(`div`,{className:`swiper-wrapper`,"aria-live":`polite`});return e.textContent=``,r.forEach((e,t)=>{i.appendChild(this.createDataSlide(e,t))}),e.appendChild(i),i}normalizeData(e){e.forEach((e,t)=>{h(String(t),e,gt,`Swiper.options.data`)});let t=e.map((e,t)=>({...e,blank:e.blank!==!1,index:t}));return t.some(e=>e.sort!=null)?t.sort((e,t)=>e.sort==null&&t.sort==null?e.index-t.index:e.sort==null?1:t.sort==null?-1:e.sort-t.sort||e.index-t.index):t}createDataSlide(e,n){let r=(0,t.h)(e.url?`a`:`div`,{className:`swiper-slide`,href:e.url||void 0,target:e.url?e.blank?`_blank`:`_self`:void 0,"data-swiper-index":String(n),role:`group`,"aria-label":`Slide ${n+1}`});if(e.children!=null)return r.append(...vt(e.children,{swiper:this,item:e,index:n})),r;if(e.image){let n=(0,t.h)(`img`,{className:`swiper-image`,alt:e.title||``,loading:`lazy`});this.props.lazyload?n.dataset.lazy=e.image:n.src=e.image,r.appendChild(n)}return e.title&&r.appendChild((0,t.h)(`span`,{className:`swiper-slide-title`,children:e.title})),r}onInit(){this.dom.wrapper.setAttribute(`aria-live`,`polite`),this.updateSize(),this.props.loop&&this.realCount>1&&this.initLoop(),this.setupStyles(),this.setTrackIndex(+!!this.props.loop,!1),this.render(!1),this.bindEvents(),this.props.pagination&&this.initPagination(),this.props.navigation&&this.initNavigation(),this.props.lazyload&&this.loadImages(),this.props.autoplay&&this.play()}onDestroy(){this.pause(),this.clearImageCleanups(),this.cleanup.events.clear(),this.cleanup.bindings?.(),this.cleanup.bindings=null,this.cleanup.navBindings?.(),this.cleanup.navBindings=null,this.dom.wrapper&&k(`[data-clone]`,this.dom.wrapper).forEach(e=>e.remove()),this.dom.createdPagination&&this.dom.pagination?.remove(),this.dom.createdPrevButton&&this.dom.prevButton?.remove(),this.dom.createdNextButton&&this.dom.nextButton?.remove(),this.dom.createdRoot&&this.dom.root?.remove(),this._built=!1}updateSize(){this.assertBuilt(`updateSize`),this.width=this.dom.root.clientWidth||this.dom.root.offsetWidth}refreshSlides(){this.dom.slides=k(`.swiper-slide`,this.dom.wrapper),this.runtime.realCount=this.dom.slides.filter(e=>!e.hasAttribute(`data-clone`)).length}initLoop(){let e=this.dom.slides[0].cloneNode(!0),t=this.dom.slides[this.dom.slides.length-1].cloneNode(!0);e.setAttribute(`data-clone`,``),t.setAttribute(`data-clone`,``),e.removeAttribute(`data-swiper-index`),t.removeAttribute(`data-swiper-index`),this.dom.wrapper.appendChild(e),this.dom.wrapper.insertBefore(t,this.dom.slides[0]),this.refreshSlides()}setupStyles(){this.dom.root.style.setProperty(`--swiper-slide-width`,`${this.state.width}px`)}reInitView(){this.pause(),this.clearImageCleanups(),this.cleanup.bindings?.(),this.cleanup.bindings=null,this.cleanup.navBindings?.(),this.cleanup.navBindings=null,this.cleanup.events.clear(),k(`[data-clone]`,this.dom.wrapper).forEach(e=>e.remove()),this.refreshSlides(),this.props.loop&&this.realCount>1&&this.initLoop(),this.updateSize(),this.setupStyles(),this.setTrackIndex(this.trackIndexForRealIndex(this.state.index),!1),this.render(!1),this.bindEvents(),this.props.pagination?this.initPagination():this.clearPagination(),this.props.navigation?this.initNavigation():this.clearNavigation(),this.props.lazyload&&this.loadImages(),this.props.autoplay&&this.play()}clearPagination(){this.cleanup.bindings?.(),this.cleanup.bindings=null,this.dom.bullets.forEach((e,t)=>{this.cleanup.events.off(`bullet:${t}:click`),this.cleanup.events.off(`bullet:${t}:keydown`)}),this.dom.bullets=[],this.dom.createdPagination?(this.dom.pagination?.remove(),this.dom.pagination=null,this.dom.createdPagination=!1):this.dom.pagination&&(this.dom.pagination.textContent=``)}clearNavigation(){this.cleanup.navBindings?.(),this.cleanup.navBindings=null,this.cleanup.events.off(`nav:prev`),this.cleanup.events.off(`nav:next`),this.dom.createdPrevButton&&(this.dom.prevButton?.remove(),this.dom.prevButton=null,this.dom.createdPrevButton=!1),this.dom.createdNextButton&&(this.dom.nextButton?.remove(),this.dom.nextButton=null,this.dom.createdNextButton=!1)}bindEvents(){this.cleanup.events.on(`touchstart`,this.dom.wrapper,`touchstart`,e=>{e.touches[0]&&this.onStart(e.touches[0],e.target)},{passive:!0}),this.cleanup.events.on(`touchmove`,this.dom.wrapper,`touchmove`,e=>{e.touches[0]&&this.onMove(e.touches[0],e)},{passive:!1}),this.cleanup.events.on(`touchend`,this.dom.wrapper,`touchend`,e=>{e.changedTouches[0]&&this.pushLog(e.changedTouches[0]),this.onEnd()}),this.cleanup.events.on(`touchcancel`,this.dom.wrapper,`touchcancel`,()=>{this.resetDrag(!0)}),this.cleanup.events.on(`window:touchcancel`,window,`touchcancel`,()=>{this.resetDrag(!0)}),this.cleanup.events.on(`mousedown`,this.dom.wrapper,`mousedown`,e=>{e.button===0&&(this.onStart(e,e.target),this.dom.wrapper.style.cursor=`grabbing`)}),this.cleanup.events.on(`mousemove`,this.dom.wrapper,`mousemove`,e=>{e.buttons===1&&this.onMove(e,e)}),this.cleanup.events.on(`window:mousemove`,window,`mousemove`,e=>{this.runtime.touching&&e.buttons===1&&this.onMove(e,e)}),this.cleanup.events.on(`mouseup`,this.dom.wrapper,`mouseup`,e=>{this.dom.wrapper.style.cursor=`grab`,this.pushLog(e),this.onEnd()}),this.cleanup.events.on(`window:mouseup`,window,`mouseup`,e=>{this.runtime.touching&&(this.dom.wrapper.style.cursor=`grab`,this.pushLog(e),this.onEnd())}),this.cleanup.events.on(`wrapper:mouseleave`,this.dom.wrapper,`mouseleave`,()=>{this.dom.wrapper.style.cursor=`grab`}),this.cleanup.events.on(`click`,this.dom.wrapper,`click`,e=>{!this.runtime.clickPrevented||!this.props.preventClick||(e.preventDefault(),e.stopPropagation(),this.runtime.clickPrevented=!1)},{capture:!0}),this.cleanup.events.on(`dragstart`,this.dom.wrapper,`dragstart`,e=>e.preventDefault()),this.cleanup.events.on(`transitionend`,this.dom.wrapper,`transitionend`,e=>this.onTransitionEnd(e)),this.cleanup.events.on(`window:resize`,window,`resize`,()=>this.update(null,{force:!0})),this.cleanup.events.on(`root:mouseenter`,this.dom.root,`mouseenter`,()=>this.pause()),this.cleanup.events.on(`root:mouseleave`,this.dom.root,`mouseleave`,()=>this.resume())}onStart(e,t=null){this.state.animating||(this.runtime.logs=[],this.pushLog(e),this.runtime.startTarget=t,this.runtime.touching=!0,this.runtime.scrolling=!1,this.runtime.swiping=!1,this.runtime.clickPrevented=!1,this.pause(),this.dom.wrapper.style.transition=`none`)}onMove(e,t){if(!this.runtime.touching||this.runtime.scrolling||this.state.animating)return;this.pushLog(e);let n=this.getOffset(),r=Math.abs(n.x),i=Math.abs(n.y);if(!(r<6&&i<6)){if(!this.runtime.swiping)if(Math.atan2(i,r)*180/Math.PI<this.props.touchAngle)this.runtime.swiping=!0,this.runtime.clickPrevented=_t(this.runtime.startTarget);else{this.runtime.scrolling=!0,this.resetDrag(!0);return}this.runtime.swiping&&(t.preventDefault(),this.transform=-this.state.trackIndex*this.state.width+n.x*this.props.touchRatio,this.render(!1))}}onEnd(){if(!this.runtime.touching)return;if(this.runtime.touching=!1,!this.runtime.swiping){this.resetDrag(!0);return}let e=this.getDuration(),t=this.getOffset().x,n=this.state.trackIndex;if(e>this.props.longSwipesMs){let e=Math.ceil(Math.abs(t)/this.state.width-this.props.longSwipesRatio);e>0&&(n=this.state.trackIndex+e*(t>0?-1:1))}else{let e=Math.abs(t)/this.state.width,r=e>=this.props.longSwipesRatio?Math.max(1,Math.ceil(e-this.props.longSwipesRatio)):0;r>0&&(n=t>0?this.state.trackIndex-r:this.state.trackIndex+r)}this.slideToTrack(n),this.runtime.logs=[],this.resume()}resetDrag(e=!0){let t=this.state.trackIndex===0?0:-this.state.trackIndex*this.state.width,n=e&&this.state.transform!==t;this.runtime.touching=!1,this.runtime.scrolling=!1,this.runtime.swiping=!1,this.runtime.logs=[],this.runtime.startTarget=null,this.transform=t,this.render(n),this.resume()}onTransitionEnd(e){e&&(e.target!==this.dom.wrapper||e.propertyName!==`transform`)||(this.animating=!1,this.props.loop&&(this.state.trackIndex===0?(this.setTrackIndex(this.realCount,!1),this.render(!1)):this.state.trackIndex===this.dom.slides.length-1&&(this.setTrackIndex(1,!1),this.render(!1))))}pushLog(e){this.runtime.logs.push({x:e.pageX??e.clientX??0,y:e.pageY??e.clientY??0,time:Date.now()}),this.runtime.logs.length>5&&this.runtime.logs.shift()}getDuration(){return this.runtime.logs.length===0?0:this.runtime.logs[this.runtime.logs.length-1].time-this.runtime.logs[0].time}getOffset(){if(this.runtime.logs.length===0)return{x:0,y:0};let e=this.runtime.logs[0],t=this.runtime.logs[this.runtime.logs.length-1];return{x:t.x-e.x,y:t.y-e.y}}toRealIndex(e=this.state.trackIndex){return this.realCount?this.props.loop?e===0?this.realCount-1:e===this.dom.slides.length-1?0:e-1:e:0}trackIndexForRealIndex(e){if(!this.realCount)return 0;let t=Math.max(0,Math.min(e,this.realCount-1));return this.props.loop&&this.realCount>1?t+1:t}setTrackIndex(e,t=!0){let n=Q(e);this.setState({trackIndex:n,index:this.toRealIndex(n),transform:-n*this.state.width}),t!=null&&this.render(t)}slideTo(e){return this.slideToTrack(this.trackIndexForRealIndex(e))}slideToTrack(e){if(this.assertBuilt(`slideToTrack`),this.state.animating||this.dom.slides.length===0)return;let t=e;this.props.loop?e<0?t=0:e>=this.dom.slides.length&&(t=this.dom.slides.length-1):t=Math.max(0,Math.min(e,this.dom.slides.length-1)),this.setTrackIndex(t,!0),this.props.lazyload&&this.loadImages()}next(){this.assertBuilt(`next`),!this.state.animating&&this.slideToTrack(this.state.trackIndex+1)}prev(){this.assertBuilt(`prev`),!this.state.animating&&this.slideToTrack(this.state.trackIndex-1)}render(e){this.assertBuilt(`render`),e?(this.dom.wrapper.style.transition=`transform ${this.props.speed}ms cubic-bezier(0.25, 0.46, 0.45, 0.94)`,this.animating=!0):(this.dom.wrapper.style.transition=`none`,this.animating=!1),this.dom.wrapper.style.transform=`translate3d(${this.state.transform}px, 0, 0)`}loadImages(){this.assertBuilt(`loadImages`);let e=[this.state.trackIndex];this.state.trackIndex>0&&e.push(this.state.trackIndex-1),this.state.trackIndex<this.dom.slides.length-1&&e.push(this.state.trackIndex+1),e.forEach(e=>{let t=this.dom.slides[e];if(!t)return;let n=O(`img[data-lazy]`,t);if(!n||n.src)return;n.classList.add(`loading`),n.src=n.dataset.lazy;let r=()=>{n.onload=null,n.onerror=null,this.runtime.imageCleanups.delete(r)};this.runtime.imageCleanups.add(r),n.onload=()=>{n.classList.remove(`loading`),n.classList.add(`loaded`),r()},n.onerror=()=>{n.classList.remove(`loading`),n.classList.add(`error`),r()}})}clearImageCleanups(){this.runtime.imageCleanups?.forEach(e=>e()),this.runtime.imageCleanups?.clear()}initPagination(){this.dom.pagination?this.dom.pagination.classList.add(`is-horizontal`,`is-clickable`,`is-bullet`):(this.dom.pagination=(0,t.h)(`div`,{className:`swiper-pagination is-horizontal is-clickable is-bullet`}),this.dom.root.appendChild(this.dom.pagination),this.dom.createdPagination=!0),this.dom.pagination.textContent=``,this.dom.bullets=[];for(let e=0;e<this.realCount;e++){let n=(0,t.h)(`button`,{type:`button`,className:`swiper-pagination-indicator swiper-pagination-bullet`,"aria-label":`Go to slide ${e+1}`});this.cleanup.events.on(`bullet:${e}:click`,n,`click`,()=>{this.slideTo(e)}),this.cleanup.events.on(`bullet:${e}:keydown`,n,`keydown`,t=>{t.key!==`Enter`&&t.key!==` `||(t.preventDefault(),this.slideTo(e))}),this.dom.bullets.push(n),this.dom.pagination.appendChild(n)}this.cleanup.bindings=(0,t.createRoot)(e=>(this.dom.bullets.forEach((e,n)=>{(0,t.bindClass)(e,`is-active`,()=>this.state.index===n),(0,t.bindAttr)(e,`aria-current`,()=>this.state.index===n?`true`:null)}),e))}initNavigation(){this.dom.prevButton=this.ensureNavigation(`prev`,`arrow-left`),this.dom.nextButton=this.ensureNavigation(`next`,`arrow-right`),this.cleanup.events.on(`nav:prev`,this.dom.prevButton,`click`,()=>this.prev()),this.cleanup.events.on(`nav:next`,this.dom.nextButton,`click`,()=>this.next()),this.props.loop||(this.cleanup.navBindings=(0,t.createRoot)(e=>((0,t.bindClass)(this.dom.prevButton,`is-disabled`,()=>this.state.trackIndex<=0),(0,t.bindAttr)(this.dom.prevButton,`disabled`,()=>this.state.trackIndex<=0?``:null),(0,t.bindClass)(this.dom.nextButton,`is-disabled`,()=>this.state.trackIndex>=this.dom.slides.length-1),(0,t.bindAttr)(this.dom.nextButton,`disabled`,()=>this.state.trackIndex>=this.dom.slides.length-1?``:null),e)))}ensureNavigation(e,n){let r=e===`prev`?`createdPrevButton`:`createdNextButton`,i=`swiper-navigation is-${e}`,a=O(`.swiper-navigation.is-${e}`,this.dom.root);return a?a.matches(`button`)||(a.setAttribute(`role`,`button`),a.setAttribute(`tabindex`,`0`),a.classList.add(`swiper-navigation`,`is-${e}`)):(a=(0,t.h)(`button`,{type:`button`,className:i}),this.dom.root.appendChild(a),this.dom[r]=!0),a.setAttribute(`aria-label`,e===`prev`?`Previous slide`:`Next slide`),a.querySelector(`svg`)||(a.textContent=``,a.appendChild(I(n))),a}play(){if(this.assertBuilt(`play`),this.runtime.destroyed||this.runtime.timer||this.realCount<=1)return;let e=Math.max(this.props.delay,16);this.runtime.timer=setInterval(()=>this.next(),e)}pause(){this.runtime.timer&&(clearInterval(this.runtime.timer),this.runtime.timer=null)}resume(){this.runtime.destroyed||this.props.autoplay&&!this.runtime.timer&&this.play()}restartAutoplay(){this.pause(),this.props.autoplay&&this.play()}update(e={},{force:t=!1}={}){if(this.runtime.destroyed)throw Error(`Component.update: instance destroyed`);this.assertBuilt(`update`);let n=e&&typeof e==`object`&&!Array.isArray(e)?e:{},r=g(Object.assign({},this.props,n),Z,`Swiper.options`),i={};return Object.keys(n).forEach(e=>{i[e]=r[e]}),this.props=r,this.emit(`beforeUpdate`,i,{force:t}),this.onUpdate(i,{force:t}),this.emit(`afterUpdate`,i,{force:t}),this}onUpdate(e={}){if(e&&Object.prototype.hasOwnProperty.call(e,`data`)){this.updateData(e.data);return}if([`loop`,`pagination`,`navigation`,`lazyload`].some(t=>Object.prototype.hasOwnProperty.call(e,t))){this.reInitView();return}this.updateSize(),this.setupStyles(),this.setTrackIndex(this.trackIndexForRealIndex(this.state.index),!1),Object.prototype.hasOwnProperty.call(e,`autoplay`)||Object.prototype.hasOwnProperty.call(e,`delay`)?this.restartAutoplay():this.props.autoplay?this.resume():this.pause()}updateData(e=this.props.data){if(this.runtime.destroyed)throw Error(`Swiper.updateData: instance destroyed`);if(this.assertBuilt(`updateData`),!this.dom.createdRoot)throw Error(`Swiper.updateData: not supported on DOM-bound instances.`);if(h(`data`,e,Z.data,`Swiper.options`),!Array.isArray(e))return this.props.data=e,this.reInitView(),this;this.props.data=e;let t=this.state.index;this.pause(),this.clearImageCleanups(),this.cleanup.bindings?.(),this.cleanup.bindings=null,this.cleanup.navBindings?.(),this.cleanup.navBindings=null,this.cleanup.events.clear();let n=this.normalizeData(e);return this.dom.wrapper.textContent=``,n.forEach((e,t)=>{this.dom.wrapper.appendChild(this.createDataSlide(e,t))}),this.refreshSlides(),this.runtime.realCount=this.dom.slides.length,this.setState({index:Math.min(t,Math.max(0,this.realCount-1))}),this.reInitView(),this}};let xt={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():_():e??_()},direction:{default:`top`,type:`string`,enum:[`top`,`bottom`,`left`,`right`]},active:{default:0,types:[`number`,`string`]},disabled:{default:[],types:[`number`,`string`,`array`]},onChange:{default:null,types:[`function`,`null`]},tabs:{default:[],type:`array`},onAdd:{default:null,types:[`function`,`null`]},onRemove:{default:null,types:[`function`,`null`]}},St={type:`object`,validate:e=>!!e&&E(e.title)&&E(e.panel),message:`expects an object with renderable title and panel: string, Node, array, function or null.`};function Ct(e){return Array.isArray(e)?e.map(e=>({...e})):[]}var wt=class extends z{constructor(e,n={}){if(!S())throw Error(`Tabs: DOM render environment is required.`);let r=T(e,`Tabs`),i=g(n,xt,`Tabs`);super(i),this.container=r,this.state=(0,t.createDeepStore)({activeIndex:-1,disabledNames:this._parseDisabled(i.disabled),isVertical:i.direction===`left`||i.direction===`right`,draggable:!1});try{this.onInit(i)}catch(e){throw this.destroy(),e}}onInit(e){this.root=this.buildRoot(e),this.rebuildItems(),this._activate(e.active,!1),this.bindEvents(),this._initDrag()}buildRoot(e){let{id:n,direction:r}=e,i=(0,t.jsx)(`div`,{className:`tab-wrap`,children:(0,t.jsx)(`nav`,{className:`tab-list`})}),a=(0,t.jsx)(`div`,{className:`tab-panel`});return(0,t.jsx)(`div`,{className:`j-tabs is-${r}`,id:n,children:[i,a]})}rebuildItems(){let e=O(`.tab-list`,this.root),n=O(`.tab-panel`,this.root);if(!e||!n)return;e.textContent=``,n.textContent=``,this.dom.tabs=[],this.dom.panels=[];let r=document.createDocumentFragment(),i=document.createDocumentFragment();this.props.tabs.forEach(e=>{let n=(0,t.jsx)(`div`,{className:`tab-item`,"data-tab":e.name||_(),children:(0,t.jsx)(`span`,{children:D(e.title,{tabs:this,item:e})})});this.dom.tabs.push(n),this.dom.panels.push((0,t.jsx)(`div`,{className:`panel-item`,role:`tabpanel`,children:(0,t.jsx)(`div`,{children:D(e.panel,{tabs:this,item:e})})})),r.append(n),i.append(panelItem)}),e.append(r),n.append(i),this.cleanup.bindings?.(),this.cleanup.bindings=(0,t.createRoot)(e=>(this.dom.tabs.forEach((e,n)=>{let r=e.dataset.tab;(0,t.bindClass)(e,`is-active`,()=>this.state.activeIndex===n),(0,t.bindClass)(e,`is-disabled`,()=>this.state.disabledNames.includes(r)),(0,t.bindAttr)(e,`aria-selected`,()=>this.state.activeIndex===n),(0,t.bindAttr)(e,`aria-disabled`,()=>this.state.disabledNames.includes(r))}),this.dom.panels.forEach((e,n)=>{(0,t.bindClass)(e,`is-active`,()=>this.state.activeIndex===n),(0,t.bindAttr)(e,`aria-hidden`,()=>this.state.activeIndex!==n)}),e))}_parseDisabled(e){if(e==null)return[];let t=e=>typeof e==`number`?this.props.tabs[e]?.name||null:typeof e==`string`?e:null;if(Array.isArray(e))return e.map(t).filter(Boolean);let n=t(e);return n?[n]:[]}bindEvents(){this.unbindEvents();let e=O(`.tab-list`,this.root);e&&this.cleanup.events.on(`tabClick`,e,`click`,e=>{let t=e.target.closest(`.tab-item`);if(!t)return;let n=t.dataset.tab;n&&!this.state.disabledNames.includes(n)&&this.activate(n)})}unbindEvents(){this.cleanup.events.clear()}assertActive(e){if(this.runtime.destroyed)throw Error(`Tabs.${e}: instance has been destroyed.`)}_getIndex(e){return typeof e==`number`?e:typeof e==`string`?this.dom.tabs.findIndex(t=>t.dataset.tab===e):-1}async _activate(e,n=!0){let r=this._getIndex(e);if(!(r<0||r>=this.dom.tabs.length||this.state.disabledNames.includes(this.dom.tabs[r]?.dataset.tab)||this.state.activeIndex===r)&&((0,t.flushSync)(()=>{this.state.activeIndex=r}),n&&this.props.onChange)){let e=this.dom.tabs[r],t=this.dom.panels[r];await Promise.resolve(this.props.onChange(r,e?.dataset.tab||r,e,t))}}async activate(e){this.assertActive(`activate`),await this._activate(e,!0)}render(){this.assertActive(`render`),(0,t.insert)(this.container,()=>this.root)}async add(e){this.assertActive(`add`),h(`tabConfig`,e,St,`Tabs.add`),e.name=e.name||_(),this.props.tabs=[...Ct(this.props.tabs),e],this.rebuildItems(),this.syncActiveNames(this.resolveActiveNames(this.props.active)),this.bindEvents(),this._refreshDrag();let{onAdd:t}=this.props;if(t){let n=this.props.tabs.length-1;await Promise.resolve(t(n,e,this.dom.tabs[n],this.dom.panels[n]))}}async delete(e){if(this.assertActive(`delete`),this.props.tabs.length<=1)return;let n=this._getIndex(e);if(n<0||n>=this.props.tabs.length)return;let r=this.props.tabs[n].name,{onRemove:i}=this.props;this.props.tabs=this.props.tabs.filter((e,t)=>t!==n),this.state.activeIndex>=this.props.tabs.length?(0,t.flushSync)(()=>{this.state.activeIndex=this.props.tabs.length-1}):this.state.activeIndex>n&&(0,t.flushSync)(()=>{this.state.activeIndex=this.state.activeIndex-1}),this.rebuildItems(),this.bindEvents(),this._refreshDrag(),i&&await Promise.resolve(i(n,r))}disable(e){this.assertActive(`disable`);let n=typeof e==`number`?this.dom.tabs[e]?.dataset.tab:e;n&&!this.state.disabledNames.includes(n)&&(0,t.flushSync)(()=>{this.state.disabledNames=[...this.state.disabledNames,n]})}enable(e){this.assertActive(`enable`);let n=typeof e==`number`?this.dom.tabs[e]?.dataset.tab:e;n&&(0,t.flushSync)(()=>{this.state.disabledNames=this.state.disabledNames.filter(e=>e!==n)})}resolveActiveNames(e){return e==null?-1:typeof e==`number`?e:typeof e==`string`?this.dom.tabs.findIndex(t=>t.dataset.tab===e):0}syncActiveNames(e){(0,t.flushSync)(()=>{this.state.activeIndex=e})}async reInit(e={}){this.assertActive(`reInit`),Object.assign(this.props,g(e,xt,`Tabs`)),(0,t.flushSync)(()=>{this.state.disabledNames=this._parseDisabled(this.props.disabled)}),this.rebuildItems(),this.syncActiveNames(this.resolveActiveNames(this.props.active)),this.bindEvents(),this._refreshDrag()}get _dragContainer(){return this.root?O(`.tab-wrap`,this.root):null}get _dragInner(){return this.root?O(`.tab-list`,this.root):null}_initDrag(){let{direction:e}=this.props;if(!this._dragContainer||!this._dragInner)return;let n=e===`left`||e===`right`,r=n?this._dragInner.scrollHeight>this._dragContainer.clientHeight+5:this._dragInner.scrollWidth>this._dragContainer.clientWidth+5;if((0,t.flushSync)(()=>{this.state.isVertical=n,this.state.draggable=r}),!r){this._removeDragEvents();return}this._bindDragEvents(),this.cleanup.events.on(`resize`,window,`resize`,()=>{cancelAnimationFrame(this._resizeRaf),this._resizeRaf=requestAnimationFrame(()=>{this._refreshDrag()})})}_bindDragEvents(){this._removeDragEvents();let e=this._dragContainer,t=this._dragInner,n=this.state.isVertical,r=0,i=0,a=0,o=!1,s=e=>n?e.touches?e.touches[0].pageY:e.pageY:e.touches?e.touches[0].pageX:e.pageX,c=o=>{this.isDragging=!0,t.classList.add(`dragging`),r=s(o),a=r,i=n?e.scrollTop:e.scrollLeft,this._velocity=0,cancelAnimationFrame(this.raf)},l=t=>{if(!this.isDragging)return;t.preventDefault();let c=s(t),l=r-c;this._velocity=a-c,a=c,o||(o=!0,requestAnimationFrame(()=>{o=!1,n?e.scrollTop=i+l:e.scrollLeft=i+l}))},u=()=>{this.isDragging&&(this.isDragging=!1,t.classList.remove(`dragging`),this._startInertiaScroll())};this.cleanup.events.on(`drag:mousedown`,t,`mousedown`,c),this.cleanup.events.on(`drag:touchstart`,t,`touchstart`,c,{passive:!0}),this.cleanup.events.on(`drag:mousemove`,window,`mousemove`,l,{passive:!1}),this.cleanup.events.on(`drag:touchmove`,window,`touchmove`,l,{passive:!1}),this.cleanup.events.on(`drag:mouseup`,window,`mouseup`,u),this.cleanup.events.on(`drag:touchend`,window,`touchend`,u)}_startInertiaScroll(){let e=this._dragContainer,t=this._velocity,n=this.state.isVertical,r=performance.now(),i=a=>{let o=a-r;r=a,t*=.92,!(Math.abs(t)<.3)&&(n?e.scrollTop+=t*o*.05:e.scrollLeft+=t*o*.05,this.raf=requestAnimationFrame(i))};this.raf=requestAnimationFrame(i)}_removeDragEvents(){this.cleanup.events.off(`drag:mousedown`),this.cleanup.events.off(`drag:touchstart`),this.cleanup.events.off(`drag:mousemove`),this.cleanup.events.off(`drag:touchmove`),this.cleanup.events.off(`drag:mouseup`),this.cleanup.events.off(`drag:touchend`)}_refreshDrag(){this._initDrag()}onDestroy(){this.unbindEvents(),this._removeDragEvents(),this.cleanup.bindings?.(),this.cleanup.bindings=null,cancelAnimationFrame(this.raf),cancelAnimationFrame(this._resizeRaf),this.cleanup.events.off(`resize`),this.root?.parentNode&&this.root.parentNode.removeChild(this.root)}},Tt={en:{b:`Back`,t:`Customize`,d:`Customize your UI experience.`,theme:`Theme`,radius:`Radius`,shadow:`Shadow`,font:`Font`,mode:`Mode`,gray:`Gray`,olive:`Olive`,tomato:`Tomato`,ruby:`Ruby`,pink:`Pink`,violet:`Violet`,indigo:`Indigo`,blue:`Blue`,teal:`Teal`,grass:`Grass`,mint:`Mint`,lime:`Lime`,yellow:`Yellow`,orange:`Orange`,gold:`Gold`,n:`None`,sm:`Small`,md:`Medium`,lg:`Large`,xl:`XL`,round:`Round`,light:`Light`,dark:`Dark`,auto:`Auto`},zh:{b:`返回`,t:`自定义主题`,d:`自定义您的UI体验。`,theme:`主题`,radius:`圆角`,shadow:`阴影`,font:`字号`,mode:`模式`,gray:`灰色`,olive:`橄榄绿`,tomato:`番茄红`,ruby:`红宝石`,pink:`粉红`,violet:`紫罗兰`,indigo:`靛蓝`,blue:`蓝色`,teal:`青色`,grass:`草绿`,mint:`薄荷绿`,lime:`酸橙绿`,yellow:`黄色`,orange:`橙色`,gold:`金色`,n:`无`,sm:`小`,md:`中`,lg:`大`,xl:`更大`,round:`圆角`,light:`浅色`,dark:`深色`,auto:`自动`}},Et=class{constructor(e={}){if(!S())throw Error(`Theme: DOM render environment is required.`);this.options={mode:`dark`,render:`dark`,theme:`indigo`,radius:`sm`,shadow:`sm`,font:`sm`,key:`jui-theme`,...e},this.languages=Tt,this._init()}_init(){this.cleanup={events:M()},this._destroyed=!1,this.mq=window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`),this._loadConfig(),this._applyConfig(),this._bindEvent(),this._syncActiveButtons(document)}_t(e){return(0,n.t)(e,this.languages)}_loadConfig(){try{let e=N(this.options.key);e&&e.trim()&&(this.options=Object.assign({},this.options,JSON.parse(e)))}catch{}}_saveConfig(){let e=this.mq&&this.mq.matches?`dark`:`light`;this.options.render=this.options.mode===`auto`?e:this.options.mode;let t=JSON.stringify(this.options);ve(this.options.key,t)}_removePrefixedClasses(){let e=[],t=document.documentElement;for(let n of t.classList)(n===`light`||n===`dark`)&&e.push(n),(n.startsWith(`j-theme-`)||n.startsWith(`j-radius-`)||n.startsWith(`j-shadow-`)||n.startsWith(`j-font-`))&&e.push(n);e.length&&t.classList.remove(...e)}_applyMqClass(){let e=document.documentElement,{mode:t}=this.options;if(t===`auto`){let t=this.mq&&this.mq.matches?`dark`:`light`;e.classList.remove(`light`,`dark`),e.classList.add(t)}else e.classList.remove(`light`,`dark`),e.classList.add(t===`dark`?`dark`:`light`)}_applyConfig(){let{theme:e,radius:t,shadow:n,font:r}=this.options;this._removePrefixedClasses(),this._applyMqClass(),document.documentElement.classList.add(`j-theme-${e}`,`j-radius-${t}`,`j-shadow-${n}`,`j-font-${r}`)}_syncActiveButtons(e=document){let t=k(`.palette-item`,e);for(let e of t){let t=e.dataset.palette,n=this.options[t],r=k(`button[data-palette]`,e);for(let e of r){let t=e.dataset.palette===(n===void 0?null:n);e.classList.toggle(`is-active`,t)}}}_bindEvent(){this.cleanup.events.on(`palette`,document.body,`click`,e=>{let t=e.target.closest(`.palette-item .items > button[data-palette]`);if(!t)return;let n=t.closest(`.palette-item`);if(!n)return;let r=n.dataset.palette,i=t.dataset.palette;t.classList.contains(`is-active`)||(this.options[r]=i,this._applyConfig(),this._saveConfig(),this._syncActiveButtons())})}_unbindEvent(){this.cleanup?.events.clear()}createPanel(e=`j-theme-palette`,n=null){let r=n||[{title:this._t(`theme`),type:`theme`,buttons:[[`gray`,this._t(`gray`)],[`olive`,this._t(`olive`)],[`tomato`,this._t(`tomato`)],[`ruby`,this._t(`ruby`)],[`pink`,this._t(`pink`)],[`violet`,this._t(`violet`)],[`indigo`,this._t(`indigo`)],[`blue`,this._t(`blue`)],[`teal`,this._t(`teal`)],[`grass`,this._t(`grass`)],[`mint`,this._t(`mint`)],[`lime`,this._t(`lime`)],[`yellow`,this._t(`yellow`)],[`orange`,this._t(`orange`)],[`gold`,this._t(`gold`)]]},{title:this._t(`radius`),type:`radius`,buttons:[[`none`,this._t(`n`)],[`sm`,this._t(`sm`)],[`md`,this._t(`md`)],[`lg`,this._t(`lg`)],[`xl`,this._t(`xl`)],[`round`,this._t(`round`)]]},{title:this._t(`shadow`),type:`shadow`,buttons:[[`none`,this._t(`n`)],[`sm`,this._t(`sm`)],[`md`,this._t(`md`)],[`lg`,this._t(`lg`)]]},{title:this._t(`font`),type:`font`,buttons:[[`sm`,this._t(`sm`)],[`md`,this._t(`md`)]]},{title:this._t(`mode`),type:`mode`,buttons:[[`light`,this._t(`light`)],[`dark`,this._t(`dark`)],[`auto`,this._t(`auto`)]]}];return(0,t.jsx)(`div`,{className:e,children:[(0,t.jsx)(`div`,{style:{display:`flex`,justifyContent:`center`},children:(0,t.jsx)(`button`,{className:`j-button is-text`,"data-action":`close`,children:this._t(`b`)})}),(0,t.jsx)(`h3`,{children:this._t(`t`)}),(0,t.jsx)(`p`,{style:{marginTop:0,fontSize:`var(--text-sm, 0.875rem)`},children:this._t(`d`)}),(0,t.jsx)(`div`,{className:`palette-container`,children:r.map(e=>(0,t.jsx)(`div`,{className:`palette-item`,"data-palette":e.type,children:[(0,t.jsx)(`div`,{className:`item-title`,children:e.title}),(0,t.jsx)(`div`,{className:`items`,children:e.buttons.map(([n,r])=>(0,t.jsx)(`button`,{className:`j-button is-default${String(this.options[e.type])===String(n)?` is-active`:``}`,"data-palette":n,children:[e.type===`theme`?(0,t.jsx)(`span`,{className:`el-prefix item-hex`,style:{backgroundColor:`var(--${n}-10)`}}):null,(0,t.jsx)(`span`,{className:`button-text`,children:r})]}))})]}))})]})}setConfig(e){this.options=Object.assign({},this.options,e),this._applyConfig(),this._saveConfig(),this._syncActiveButtons(document)}destroy(){this._destroyed||(this._destroyed=!0,this._unbindEvent(),this.options={},this.languages={},this.cleanup=null,this.mq=null)}};let Dt={type:`string`,enum:[`info`,`success`,`warning`,`error`,`primary`]},Ot={type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},kt={type:`number`,validate:e=>e>0,message:`expects a number greater than 0.`};var $=class e{static show(n=``,r=3e3,i=`info`){if(!S())throw Error(`Toast: DOM render environment is required.`);h(`message`,n,`string`,`Toast.show`),h(`duration`,r,Ot,`Toast.show`),h(`type`,i,Dt,`Toast.show`);let a=O(`.j-toast-container`);a||(a=(0,t.jsx)(`div`,{className:`j-toast-container`}),document.body.appendChild(a));let o=_(),s=(0,t.jsx)(`div`,{className:`j-toast is-${i}`,"data-toast":o,children:[(0,t.jsx)(`span`,{className:`toast-icon`,children:I(i===`primary`?`info`:i)}),(0,t.jsx)(`span`,{className:`toast-message`,children:n})]});a.appendChild(s),e._setTimer(o,`show`,()=>{s.classList.add(`toast-show`)},10),r>0&&e._setTimer(o,`hide`,()=>{e.hide(s)},r);let c=j(s,`click`,()=>{e.hide(s)});return e.disposers.set(s,c),s}static success(t=``,n=3e3){return e.show(t,n,`success`)}static info(t=``,n=3e3){return e.show(t,n,`info`)}static primary(t=``,n=3e3){return e.show(t,n,`primary`)}static warning(t=``,n=3e3){return e.show(t,n,`warning`)}static error(t=``,n=3e3){return e.show(t,n,`error`)}static hide(t){if(t){e.disposers.get(t)?.(),e.disposers.delete(t),t.classList.remove(`toast-show`),t.classList.add(`toast-hide`);let n=t.dataset.toast;e._setTimer(n,`remove`,()=>{t.parentNode&&t.parentNode.removeChild(t);let e=O(`.j-toast-container`);e&&e.children.length===0&&e.parentNode.removeChild(e)},300)}}static lite(n=``,r=2e3){if(!S())throw Error(`Toast: DOM render environment is required.`);h(`message`,n,`string`,`Toast.lite`),h(`duration`,r,kt,`Toast.lite`);let i=O(`.j-toast-lite`);i&&i.remove();let a=_(),o=(0,t.jsx)(`div`,{className:`j-toast-lite`,"data-toast":a,children:n});return document.body.appendChild(o),e._setTimer(a,`show`,()=>o.classList.add(`is-shown`),10),e._setTimer(a,`hide`,()=>{o.classList.remove(`is-shown`),o.classList.add(`is-hidden`),e._setTimer(a,`remove`,()=>o.remove(),300)},r),o}static _setTimer(t,n,r,i){let a=`${t}-${n}`;return e.timers.add(a),s.start(a,i,()=>{e.timers.delete(a),r()}),a}static clearAll(){for(let t of e.timers)s.cancel(t);e.timers.clear();for(let t of e.disposers.values())t();e.disposers.clear(),O(`.j-toast-container`)?.remove(),O(`.j-toast-lite`)?.remove()}static destroyAll(){e.clearAll()}};R($,`timers`,new Set),R($,`disposers`,new Map);let At={name:{default:null,types:[`string`,`null`]},mode:{default:`hover`,type:`string`},position:{default:`auto`,type:`string`},offset:{default:8,type:`number`},message:{default:``,type:`string`,normalize:e=>String(e||``).trim(),validate:e=>e.length>0,message:`expects a non-empty string.`},className:{default:null,types:[`string`,`null`]},id:{default:null,types:[`string`,`null`]},delay:{default:100,types:[`number`,`object`]},hoverIntent:{default:!0,type:`boolean`}};var jt=class{constructor(e,t={}){let n=g(t,At,`Tooltip.props`);this.drop=new H(e,{...n,content:this._buildContent(n)})}_buildContent(e){return(0,t.jsx)(`div`,{className:e.className?`j-tooltip ${e.className}`:`j-tooltip`,children:(0,t.jsx)(`div`,{className:`tooltip-message`,children:e.message})})}show(e=!0){this.drop.show(e)}hide(e=!0){this.drop.hide(e)}toggle(){this.drop.toggle()}destroy(){this.drop&&(this.drop.destroy(),this.drop=null)}};let Mt={rules:{default:{},type:`object`},messages:{default:{},type:`object`},onSubmit:{default:null,types:[`function`,`null`]}};var Nt=class{constructor(e,t={},n=!1){if(!S())throw Error(`Validator: DOM render environment is required.`);this.options=g(t,Mt,`Validator.options`),this._validateOptions(e,this.options,n),this._init(e),n&&this._bindEvents()}_validateOptions(e,t,n){h(`bindEvents`,n,`boolean`,`Validator`)}_init(e){this.root=A(e,`Validator.element`),this.valid=!0,this.cleanup={events:M()},this._destroyed=!1}_bindEvents(){this._unbindEvents(),this.cleanup.events.on(`submit`,this.root,`submit`,e=>{e.preventDefault(),this.validate()}),this.cleanup.events.on(`reset`,this.root,`reset`,()=>{this.reset()})}_unbindEvents(){this.cleanup?.events.clear()}validate(){this.valid=!0;for(let e of this.root.elements){let t=e.name;if(this.options.rules[t]&&(this.valid=this._validateRule(e,t),!this.valid))break}return this.valid&&this.options.onSubmit&&this.options.onSubmit(),this.valid}_validateRule(e,t){let n=this.options.rules[t];if(e.hasAttribute(`required`)||e.hasAttribute(`minlength`)||e.hasAttribute(`maxlength`)||e.hasAttribute(`pattern`)||e.hasAttribute(`min`)||e.hasAttribute(`max`)||e.hasAttribute(`step`))return this.valid;for(let r in n){switch(r){case`required`:this.valid=this._validateRequired(e,n[r]);break;case`minLength`:this.valid=this._validateMinLength(e,n[r]);break;case`maxLength`:this.valid=this._validateMaxLength(e,n[r]);break;case`equalTo`:this.valid=this._validateEqualTo(e,n[r]);break;case`email`:this.valid=this._validateEmail(e);break;case`checked`:this.valid=this._validateCheck(e,n[r]);break;case`selected`:this.valid=this._validateSelected(e,n[r]);break;case`multiple`:this.valid=this._validateMultiple(e,n[r]);break;case`min`:this.valid=this._validateSelectMin(e,n[r]);break;case`max`:this.valid=this._validateSelectMax(e,n[r]);break;case`noSpace`:this.valid=this._validateNoSpace(e,n[r]);break;case`noChinese`:this.valid=!/[\u4e00-\u9fa5]/.test(e.value);break;case`noSpecial`:this.valid=!/[@#$%^&*]+/g.test(e.value);break;case`pattern`:this.valid=new RegExp(n[r]).test(e.value);break;case`file`:this.valid=this._validateFile(e,n[r]);break;case`minSize`:this.valid=this._validateMinSize(e,n[r]);break;case`maxSize`:this.valid=this._validateMaxSize(e,n[r]);break;case`accept`:this.valid=this._validateAccept(e,n[r]);break;case`validate`:this.valid=this._validateCustom(e,n[r]);break}if(this.valid)this._success(e);else{this._errorMsg(e,t,r);break}}return this.valid}_validateRequired(e,t){return e.value.trim().length>=1&&t===!0}_validateMinLength(e,t){return e.value.length>=t}_validateMaxLength(e,t){return e.value.length<=t}_validateEmail(e){return/^([\w-.]+@([\w-]+\.)+[\w-]{2,4})?$/.test(e.value)}_validateEqualTo(e,t){let n=this.root.elements[t];if(n==null)throw Error(`Validator: target element "${t}" not found.`);return e.value===n.value}_validateCheck(e,t){if(e.type!==`checkbox`)throw Error(`Validator: element expects a checkbox input, but ${e.type} given.`);return e.checked===t}_validateSelected(e,t){if(e.tagName!==`SELECT`)throw Error(`Validator: element expects a select element, but ${e.tagName.toLowerCase()} given.`);return t===!0?Array.from(e.selectedOptions).map(e=>e.value.trim()).some(e=>e.length>0):!0}_validateMultiple(e,t){if(e.tagName!==`SELECT`)throw Error(`Validator: element expects a select element, but ${e.tagName.toLowerCase()} given.`);return t===!0?e.selectedOptions.length>0:!0}_validateSelectMin(e,t){return e.tagName===`SELECT`?e.selectedOptions.length>=t:!0}_validateSelectMax(e,t){return e.tagName===`SELECT`?e.selectedOptions.length<=t:!0}_validateNoSpace(e,t){return!/\s/.test(e.value)||t!==!0}_validateFile(e,t){return e.type===`file`&&t===!0?e.files.length>0:!0}_validateMinSize(e,t){return e.type!==`file`||!e.files.length?!0:e.files[0].size>=t}_validateMaxSize(e,t){return e.type!==`file`||!e.files.length?!0:e.files[0].size<=t}_validateAccept(e,t){if(e.type!==`file`||!e.files.length)return!0;let n=e.files[0];return t.split(`,`).map(e=>e.trim().toLowerCase()).some(e=>e.startsWith(`.`)?n.name.toLowerCase().endsWith(e):e.endsWith(`/*`)?n.type.startsWith(e.replace(`/*`,`/`)):n.type===e)}_validateCustom(e,t){if(typeof t!=`function`)return!0;let n=t(e);return typeof n==`string`?!1:!!n}_errorMsg(e,n,r){e.type!==`checkbox`&&(e.classList.remove(`is-valid`),e.classList.add(`is-invalid`));let i=this.options.messages[n]&&this.options.messages[n][r];if(i){let n=e.closest(`.form-control`),r=n?O(`.help-block`,n):null;r||(r=(0,t.jsx)(`div`,{className:`help-block is-invalid`,children:i}),n.appendChild(r))}}_success(e){let t=e.closest(`.form-control`),n=t?O(`.help-block`,t):null;n&&t.removeChild(n),e.type!==`checkbox`&&(e.classList.remove(`is-invalid`),e.classList.add(`is-valid`))}reset(){this.root.reset();for(let e of this.root.elements)e.classList.remove(`is-valid`),e.classList.remove(`is-invalid`);let e=k(`.help-block`,this.root);for(let t of e)t.remove();this.valid=!0}destroy(){this._destroyed||(this._destroyed=!0,this._unbindEvents(),this.reset(),this.root=null,this.options=null,this.valid=null,this.cleanup?.events.clear(),this.cleanup=null)}};e.Accordion=Ae,e.Component=z,e.Drop=H,e.Flow=Ue,e.Menu=qe,e.Modal=ut,e.Offcanvas=ft,e.Parabola=ht,e.Swiper=bt,e.Tabs=wt,e.Theme=Et,e.Toast=$,e.Tooltip=jt,e.Validator=Nt,e.addIcons=we,e.all=k,e.canRenderDOM=S,e.canUseDOM=x,e.copy=i,e.createEventManager=M,e.createFlow=We,e.destroyAll=ae,e.getCookie=N,e.getEl=le,e.getRegistedIconPath=Ce,e.getType=c,e.hasOwn=o,e.icon=I,e.iconHtml=xe,e.iconMarkup=Se,e.isClass=u,e.isElement=w,e.isFunction=l,e.isMobile=r,e.isNode=C,e.isPlainObject=d,e.isRenderableContent=E,e.listen=j,e.normalizeContentNodes=D,e.postJson=ge,e.q=O,e.randomId=_,e.release=b,e.removeCookie=ye,e.resolveContainer=T,e.resolveElement=A,e.resolveProps=g,e.restUrl=_e,e.service=oe,e.setCookie=ve,e.singleton=re,e.timer=s,e.unlisten=he,e.uuid=ne,e.validateParam=h});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("vanilla-signal"),require("vanilla-signal-i18n")):typeof define==`function`&&define.amd?define([`exports`,`vanilla-signal`,`vanilla-signal-i18n`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.jui={},e.vanillaSignal,e.vanillaSignalI18n))})(this,function(e,t,n){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function r(){if(navigator.userAgentData&&typeof navigator.userAgentData.mobile==`boolean`)return navigator.userAgentData.mobile;let e=navigator.userAgent||navigator.vendor||window.opera,t=/Android|iPhone|iPad|iPod|Mobile|Windows Phone|webOS|BlackBerry|IEMobile|Opera Mini/i.test(e),n=/iPad|Android(?!.*Mobile)|Tablet/i.test(e),r=`maxTouchPoints`in navigator?navigator.maxTouchPoints>0:`ontouchstart`in window,i=Math.min(window.screen.width,window.screen.height)<=768;if(t&&!n){if(/iPhone|iPod|Windows Phone|webOS|BlackBerry|IEMobile|Opera Mini/i.test(e))return!0;if(/Android/i.test(e))return i||r}return/Macintosh|MacIntel/i.test(e)&&r&&i}async function i(e){if(typeof window>`u`||typeof document>`u`)return Promise.resolve(!1);let t=typeof e==`string`?e:String(e);return navigator.clipboard&&typeof navigator.clipboard.writeText==`function`?navigator.clipboard.writeText(t).then(()=>!0).catch(()=>a(t)):Promise.resolve(a(t))}function a(e){let t=null;try{return t=document.createElement(`textarea`),t.value=e,t.setAttribute(`readonly`,``),t.style.position=`absolute`,t.style.left=`-9999px`,t.style.opacity=`0`,document.body.appendChild(t),t.select(),t.setSelectionRange(0,e.length),!!document.execCommand(`copy`)}catch{return!1}finally{t&&t.parentNode&&t.parentNode.removeChild(t)}}let o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s={timers:{},start(e,t,n){this.timers[e]&&clearTimeout(this.timers[e]),this.timers[e]=setTimeout(()=>{n(),delete this.timers[e]},t)},cancel(e){this.timers[e]&&(clearTimeout(this.timers[e]),delete this.timers[e])}},c=e=>e===null?`null`:Array.isArray(e)?`array`:typeof HTMLElement<`u`&&e instanceof HTMLElement?`HTMLElement`:typeof Node<`u`&&e instanceof Node?`Node`:typeof e,l=e=>typeof e==`function`&&e.prototype!==null&&e.prototype.constructor===e,u=e=>typeof e==`function`&&/^class\s/.test(Function.prototype.toString.call(e));function d(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function f(e){return Array.isArray(e)?e.slice():d(e)?{...e}:e}function p(e={}){return typeof e==`string`||Array.isArray(e)?{type:e}:!e||typeof e!=`object`?{}:e}function m(e,t,n=[]){let r=Array.isArray(n)?n:n?[n]:[];for(let n of r){let r,i;if(typeof n==`function`)r=n,i=`does not satisfy the required condition.`;else if(n&&typeof n.test==`function`)r=n.test,i=n.message||`condition failed.`;else throw Error(`Validator: Condition must be a function or { test, message }.`);if(!r(t))throw Error(`Validator: ${e} ${i}`)}}function ee(e,t){return e?`${e}.${t}`:t}function te(e){if(o(e,`default`))return f(e.factory&&typeof e.default==`function`?e.default():e.default)}function h(e,t,n={},r=``){let i=p(n),a=ee(r,e),s=o(i,`types`)?i.types:i.type;if(i.required&&t==null)throw Error(`Validator: ${a} is required.`);if(s!==void 0){let e=Array.isArray(s)?s:[s],n=c(t);if(!e.some(e=>e===n)){let t=e.join(`, `);throw Error(`Validator: ${a} expects ${t}, but got ${n}.`)}m(a,t,i.conditions)}else m(a,t,i.conditions);if(Array.isArray(i.enum)&&!i.enum.includes(t))throw Error(`Validator: ${a} expects one of ${i.enum.join(`, `)}.`);if(typeof i.validate==`function`&&!i.validate(t))throw Error(`Validator: ${a} ${i.message||`does not satisfy the required condition.`}`);return t}function g(e={},t={},n=`Options`){let r=e??{};if(typeof r!=`object`||Array.isArray(r))throw Error(`${n} expects object.`);let i={...r},a=Object.entries(t||{});for(let[e,t]of a){let n=p(t);i[e]=o(r,e)?r[e]:te(n)}for(let[e,n]of a){let a=p(n);typeof a.normalize==`function`&&(i[e]=a.normalize(i[e],{key:e,input:r,options:i,schema:t}))}for(let[e,r]of Object.entries(t||{}))h(e,i[e],r,n);return i}function ne(){if(typeof crypto.randomUUID==`function`)return crypto.randomUUID();let e=new Uint8Array(16);if(typeof crypto.getRandomValues!=`function`)throw Error(`Your browser is too old to support secure login.`);crypto.getRandomValues(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e).map(e=>e.toString(16).padStart(2,`0`)).join(``);return[t.slice(0,8),t.slice(8,12),t.slice(12,16),t.slice(16,20),t.slice(20,32)].join(`-`)}function _(e=8){if(!Number.isInteger(e)||e<1||e>32)throw Error(`Length must be an integer between 1 and 32`);let t=new Uint8Array(e);crypto.getRandomValues(t);let n=``;for(let r=0;r<e;r++)n+=`abcdefghijkmnpqrstuvwxyz23456789`[t[r]&31];return n}let v=new Map,y=new Map,re=(e,t=[],n=``,r=!1,i=null)=>{if(!l(e))throw Error(`First argument expects a class/constructor function.`);if(!Array.isArray(t))throw Error(`Second argument must be an array of arguments.`);if(typeof n!=`string`)throw Error(`Third argument expects a string.`);if(typeof r!=`boolean`)throw Error(`Fourth argument expects a boolean.`);if(typeof i!=`number`&&i!==null)throw Error(`Fifth argument expects a number or null.`);let a=n.trim()===``?_():n;if(v.has(a)&&!r)return v.get(a).proxy;let o=new e(...t),s=new Proxy(o,{get(e,t,n){return i&&ie(a,i),Reflect.get(e,t,n)},set(e,t,n,r){return Reflect.set(e,t,n,r)}});return v.set(a,{instance:o,proxy:s}),s};function ie(e,t){y.has(e)&&clearTimeout(y.get(e));let n=setTimeout(()=>{b(e)},t);y.set(e,n)}function b(e){if(v.has(e)){let{instance:t}=v.get(e);if(typeof t.destroy==`function`)try{t.destroy()}catch{throw Error(`release(): destroy() failed on instance with key "${e}".`)}v.delete(e)}y.has(e)&&(clearTimeout(y.get(e)),y.delete(e))}function ae(){for(let{instance:e}of v.values())if(typeof e.destroy==`function`)try{e.destroy()}catch{}v.clear();for(let e of y.values())clearTimeout(e);y.clear()}let oe={instances:new Map,get(e,t){return this.instances.has(e)||this.instances.set(e,t()),this.instances.get(e)},destroy(e){if(this.instances.has(e)){let t=this.instances.get(e);t.destroy&&t.destroy(),this.instances.delete(e)}},destroyAll(){for(let e of this.instances.values())e.destroy&&e.destroy();this.instances.clear()}};function x(){return typeof document<`u`}function S(){return!x()||typeof document.createElement!=`function`?!1:typeof document.createElement(`div`).insertBefore==`function`}function C(e){return x()&&typeof Node<`u`&&e instanceof Node}function w(e){return x()&&typeof Element<`u`&&e instanceof Element}function se(e){return typeof e==`string`||w(e)||C(e)||Array.isArray(e)}function ce(e){return e.find(w)||null}function le(e,t=[]){for(let n of e){if(Array.isArray(n)){if(!le(n,t))return null;continue}if(C(n)){t.push(n);continue}return null}return t}function T(e,t){let n=typeof e==`function`?e(t):e;if(n==null||n===!1||n===!0)return[];if(Array.isArray(n))return n.flatMap(e=>T(e,t));if(C(n))return[n];if(typeof n==`string`){let e=document.createElement(`template`);return e.innerHTML=n,Array.from(e.content.childNodes)}return[document.createTextNode(String(n))]}function E(e,t=`Component`){if(e===!1||e==null)return null;if(typeof e==`string`){if(!x())return null;let t=Array.from(document.querySelectorAll(e));return t.length>0?t:null}if(Array.isArray(e)){let t=le(e,[]);return t&&t.length>0?t:null}return C(e)?[e]:null}function D(e,t=`Component`){return w(e)||C(e)?e:typeof e==`string`?x()?document.querySelector(e):null:Array.isArray(e)&&(E(e,t)||[])[0]||null}function O(e,t=`Component`){if(!se(e)||e===!1||e==null)return null;if(typeof e==`string`){if(!x())return null;let t=document.querySelector(e);return w(t)?t:null}if(Array.isArray(e)){let n=E(e,t);return Array.isArray(n)?ce(n):null}return w(e)?e:null}function ue(e,t=`Component`,n=`element`){if(![`node`,`element`,`array`].includes(n))throw Error(`${t}: expect must be one of 'node', 'element', 'array'.`);return se(e)?n===`array`?E(e,t):n===`node`?D(e,t):O(e,t):null}function k(e,t=`Component`,n=`element`){let r=ue(e,t,n);if(r==null)throw Error(`${t}: container not found.`);return r}function A(e){return e==null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`||typeof e==`function`||Array.isArray(e)||C(e)}function j(e,t=document){return t.querySelector(e)}function M(e,t=document){return Array.from(t.querySelectorAll(e))}let de=()=>{};function fe(e){return!!e&&typeof e.addEventListener==`function`&&typeof e.removeEventListener==`function`}function pe(e,t){if(!fe(e))throw TypeError(`${t}: target expects EventTarget.`)}function me(e,t){if(typeof e!=`string`||e.trim()===``)throw TypeError(`${t}: type expects a non-empty string.`)}function he(e,t){if(typeof e!=`function`&&(!e||typeof e.handleEvent!=`function`))throw TypeError(`${t}: handler expects a function or EventListener object.`)}function N(e,t,n,r){pe(e,`listen`),me(t,`listen`),he(n,`listen`);let i=!0;return e.addEventListener(t,n,r),()=>{i&&(i=!1,e.removeEventListener(t,n,r))}}function ge(e,t,n,r){pe(e,`unlisten`),me(t,`unlisten`),he(n,`unlisten`),e.removeEventListener(t,n,r)}function P(){let e=new Map,t=t=>{let n=e.get(t);return n?(n(),e.delete(t),!0):!1};return{on(n,r,i,a,o){if(typeof n!=`string`||n.trim()===``)throw TypeError(`EventManager.on: key expects a non-empty string.`);if(t(n),r==null)return de;let s=N(r,i,a,o);return e.set(n,s),s},off:t,clear(){for(let t of e.values())t();e.clear()},size(){return e.size}}}async function _e(e,t,n={}){let r=new Headers(n.headers);return r.has(`Content-Type`)||r.set(`Content-Type`,`application/json`),(await fetch(e,{...n,method:n.method||`POST`,headers:r,body:JSON.stringify(t)})).json()}let ve=typeof window<`u`?`${window.location.origin}/wp-json`:``;function F(e){if(typeof document>`u`)return null;let t=`; ${document.cookie}`.split(`; ${e}=`);return t.length===2?t.pop().split(`;`).shift():null}function ye(e,t,n=3600*24){if(typeof document>`u`)return!1;let r=new Date(Date.now()+n*1e3).toUTCString();return document.cookie=[`${e}=${t}`,`expires=${r}`,`path=/`,`sameSite=strict`].join(`; `),F(e)===t}function be(e){return typeof document>`u`?!0:(document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`,!F(e))}let I={info:`<path d="M12 22C6.47715 22 2 17.5228 2 12 2 6.47715 6.47715 2 12 2 17.5228 2 22 6.47715 22 12 22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM13 10.5V15H14V17H10V15H11V12.5H10V10.5H13ZM13.5 8C13.5 8.82843 12.8284 9.5 12 9.5 11.1716 9.5 10.5 8.82843 10.5 8 10.5 7.17157 11.1716 6.5 12 6.5 12.8284 6.5 13.5 7.17157 13.5 8Z"></path>`,success:`<path d="M4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12C20 16.4183 16.4183 20 12 20C7.58172 20 4 16.4183 4 12ZM12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2ZM17.4571 9.45711L16.0429 8.04289L11 13.0858L8.20711 10.2929L6.79289 11.7071L11 15.9142L17.4571 9.45711Z"></path>`,warning:`<path d="M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM11 15H13V17H11V15ZM11 7H13V13H11V7Z"></path>`,error:`<path d="M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM12 10.5858L14.8284 7.75736L16.2426 9.17157L13.4142 12L16.2426 14.8284L14.8284 16.2426L12 13.4142L9.17157 16.2426L7.75736 14.8284L10.5858 12L7.75736 9.17157L9.17157 7.75736L12 10.5858Z"></path>`,"arrow-left":`<path d="M10.8284 12.0007L15.7782 16.9504L14.364 18.3646L8 12.0007L14.364 5.63672L15.7782 7.05093L10.8284 12.0007Z"></path>`,"arrow-right":`<path d="M13.1717 12.0007L8.22192 7.05093L9.63614 5.63672L16.0001 12.0007L9.63614 18.3646L8.22192 16.9504L13.1717 12.0007Z"></path>`,"arrow-up":`<path d="M11.9999 10.8284L7.0502 15.7782L5.63599 14.364L11.9999 8L18.3639 14.364L16.9497 15.7782L11.9999 10.8284Z"></path>`,"arrow-down":`<path d="M11.9999 13.1714L16.9497 8.22168L18.3639 9.63589L11.9999 15.9999L5.63599 9.63589L7.0502 8.22168L11.9999 13.1714Z"></path>`,close:`<path d="M11.9997 10.5865L16.9495 5.63672L18.3637 7.05093L13.4139 12.0007L18.3637 16.9504L16.9495 18.3646L11.9997 13.4149L7.04996 18.3646L5.63574 16.9504L10.5855 12.0007L5.63574 7.05093L7.04996 5.63672L11.9997 10.5865Z"></path>`,loader:`<path d="M12 3C16.9706 3 21 7.02944 21 12H19C19 8.13401 15.866 5 12 5V3Z"></path>`,menu:`<path d="M3 4H21V6H3V4ZM3 11H21V13H3V11ZM3 18H21V20H3V18Z"></path>`,palette:`<path fill="none" d="M0 0h24v24H0z"></path><path d="M12 2C17.5222 2 22 5.97778 22 10.8889C22 13.9556 19.5111 16.4444 16.4444 16.4444H14.4778C13.5556 16.4444 12.8111 17.1889 12.8111 18.1111C12.8111 18.5333 12.9778 18.9222 13.2333 19.2111C13.5 19.5111 13.6667 19.9 13.6667 20.3333C13.6667 21.2556 12.9 22 12 22C6.47778 22 2 17.5222 2 12C2 6.47778 6.47778 2 12 2ZM10.8111 18.1111C10.8111 16.0843 12.451 14.4444 14.4778 14.4444H16.4444C18.4065 14.4444 20 12.851 20 10.8889C20 7.1392 16.4677 4 12 4C7.58235 4 4 7.58235 4 12C4 16.19 7.2226 19.6285 11.324 19.9718C10.9948 19.4168 10.8111 18.7761 10.8111 18.1111ZM7.5 12C6.67157 12 6 11.3284 6 10.5C6 9.67157 6.67157 9 7.5 9C8.32843 9 9 9.67157 9 10.5C9 11.3284 8.32843 12 7.5 12ZM16.5 12C15.6716 12 15 11.3284 15 10.5C15 9.67157 15.6716 9 16.5 9C17.3284 9 18 9.67157 18 10.5C18 11.3284 17.3284 12 16.5 12ZM12 9C11.1716 9 10.5 8.32843 10.5 7.5C10.5 6.67157 11.1716 6 12 6C12.8284 6 13.5 6.67157 13.5 7.5C13.5 8.32843 12.8284 9 12 9Z"></path>`};function xe(e){if(!(e in I))throw Error(`Icon "${e}" not found.`)}function Se(e){return xe(e),`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false">${I[e]}</svg>`}function L(e,t={}){if(!S())throw Error(`icon(): DOM render environment is required.`);let n=document.createElement(`template`);n.innerHTML=Se(e);let r=n.content.firstElementChild;for(let[e,n]of Object.entries(t||{})){if(n==null||n===!1)continue;let t=e===`className`?`class`:e;r.setAttribute(t,n===!0?``:String(n))}return r}function R(e){return Se(e)}let Ce=R;function we(){return{...I}}function Te(e){if(typeof e!=`object`||!e)throw Error(`Icons must be a valid object.`);for(let[t,n]of Object.entries(e)){if(typeof n!=`string`||!n.trim().startsWith(`<`))throw Error(`Invalid SVG path for icon "${t}".`);I[t]=n}}function z(e){"@babel/helpers - typeof";return z=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},z(e)}function Ee(e,t){if(z(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(z(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function De(e){var t=Ee(e,`string`);return z(t)==`symbol`?t:t+``}function B(e,t,n){return(t=De(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var V=class e{constructor(e={}){this.props=e||{},this.dom={root:null},this.plugins=new Map,this.cleanup={events:P(),plugins:new Map},this._listeners={init:[],beforeUpdate:[],afterUpdate:[],destroy:[]},this.state=(0,t.createDeepStore)({}),this.runtime={destroyed:!1},this.installGlobalPlugins()}get root(){return this.dom?.root||null}set root(e){this.dom||(this.dom={}),this.dom.root=e}use(e,t){if(!e)return this;let n=typeof e==`function`?e(this,t):e.install?.(this,t);return this.cleanup.plugins.set(e,n),this}on(e,t){return!this._listeners[e]||typeof t!=`function`||this._listeners[e].push(t),this}off(e,t){return this._listeners[e]&&(this._listeners[e]=this._listeners[e].filter(e=>e!==t)),this}installGlobalPlugins(){for(let t of e.globalPlugins.values())this.use(t)}static useGlobal(t,n){!t||!n||e.globalPlugins.set(t,n)}emit(e,...t){let n=this._listeners[e];if(!n)return this;for(let e of n)try{e(...t)}catch{}return this}init(e={}){if(this.runtime.destroyed)throw Error(`Component.init: instance destroyed`);return e&&typeof e==`object`&&!Array.isArray(e)&&(this.props=Object.assign({},this.props,e)),typeof this.onInit==`function`&&this.onInit(this.props),this.emit(`init`,this.props),this}setState(e={},n){if(this.runtime.destroyed)throw Error(`Component.setState: instance destroyed`);let r=typeof e==`string`&&arguments.length>1?{[e]:n}:e;if(!r||typeof r!=`object`||Array.isArray(r))throw Error(`Component.setState: expects a plain object patch.`);return(0,t.flushSync)(()=>{for(let[e,t]of Object.entries(r))this.state[e]=t}),this}update(e={},{force:t=!1}={}){if(this.runtime.destroyed)throw Error(`Component.update: instance destroyed`);return e&&typeof e==`object`&&(this.props=Object.assign({},this.props,e)),this.emit(`beforeUpdate`,e,{force:t}),typeof this.onUpdate==`function`&&this.onUpdate(e,{force:t}),this.emit(`afterUpdate`,e,{force:t}),this}destroy(){if(!this.runtime.destroyed){this.runtime.destroyed=!0,typeof this.onDestroy==`function`&&this.onDestroy(),this.emit(`destroy`);for(let e of this.cleanup.plugins.values())try{typeof e==`function`?e():e&&typeof e.destroy==`function`&&e.destroy()}catch{}this.cleanup.plugins.clear(),this.cleanup.events.clear(),this.dom={root:null},this.state=null}}};B(V,`globalPlugins`,new Map);let Oe={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():_():e??_()},active:{default:0,types:[`number`,`string`,`array`,`null`]},collapsible:{default:!1,type:`boolean`},multiple:{default:!1,type:`boolean`},onChange:{default:null,types:[`function`,`null`]},items:{default:[],type:`array`}},H={type:`array`,validate:e=>e.length>0,message:`expects a non-empty array.`},ke={types:[`number`,`string`,`array`,`null`],validate:e=>e==null?!0:Array.isArray(e)?e.every(e=>typeof e==`number`||typeof e==`string`):typeof e==`number`?Number.isInteger(e)&&e>=0:e.trim().length>0,message:`expects a positive number, string, array or null.`};function Ae(e){return Array.isArray(e)?e.map(e=>({...e})):[]}function je(e){return h(`items`,e,H,`Accordion`),e.map(e=>{if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Accordion: item expects an object.`);if(e.name!=null&&typeof e.name!=`string`)throw Error(`Accordion: item name expects a string.`);if(!A(e.title))throw Error(`Accordion: item title expects string, Node, array, function or null.`);if(!A(e.content))throw Error(`Accordion: item content expects string, Node, array, function or null.`);return{...e,name:e.name||_()}})}var Me=class extends V{constructor(e,n={}){if(!S())throw Error(`Accordion: DOM render environment is required.`);let r=k(e,`Accordion`),i=g(n,Oe,`Accordion`);super(i),this.dom.container=r,this.dom.headers=[],this.dom.panels=[],this.state=(0,t.createDeepStore)({activeNames:[],current:{index:null,name:null}});try{this.onInit(i)}catch(e){throw this.destroy(),e}}onInit(e){this.root=this.buildRoot(e),this.buildItems(e),this.syncActiveNames(this.resolveActiveNames(e.active)),this.bindEvents()}buildRoot(e){return(0,t.jsx)(`div`,{className:`j-accordion`,id:e.id})}buildItems(e){let n=je(e.items),r=document.createDocumentFragment();this.dom.headers=[],this.dom.panels=[],n.forEach((n,i)=>{let a=n.name||_(),o=`${e.id}_header_${i}`,s=`${e.id}_panel_${i}`,c=(0,t.jsx)(`div`,{className:`accordion-header`,"data-item":a,id:o,role:`button`,tabindex:`0`,"aria-controls":s,children:[(0,t.jsx)(`span`,{className:`header-title`,children:this.contentView(n.title,n,i,`title`)}),(0,t.jsx)(`span`,{className:`header-arrow`,"aria-hidden":`true`,children:L(`arrow-down`)})]}),l=(0,t.jsx)(`div`,{className:`accordion-panel`,id:s,role:`region`,"aria-labelledby":o,children:(0,t.jsx)(`div`,{className:`panel-content`,children:this.contentView(n.content,n,i,`content`)})});this.dom.headers.push(c),this.dom.panels.push(l),r.append(c,l)}),this.root.append(r),this.cleanup.bindings?.(),this.cleanup.bindings=(0,t.createRoot)(e=>(this.dom.headers.forEach(e=>{let n=e.dataset.item;(0,t.bindClass)(e,`is-active`,()=>this.state.activeNames.includes(n)),(0,t.bindAttr)(e,`aria-expanded`,()=>this.state.activeNames.includes(n))}),this.dom.panels.forEach((e,n)=>{let r=this.dom.headers[n]?.dataset.item;(0,t.bindClass)(e,`is-active`,()=>this.state.activeNames.includes(r)),(0,t.bindAttr)(e,`aria-hidden`,()=>this.state.activeNames.includes(r)?`false`:`true`),(0,t.bindAttr)(e,`hidden`,()=>!this.state.activeNames.includes(r))}),e))}contentView(e,t,n,r){return T(e,{accordion:this,item:t,index:n,type:r,active:!1})}resolveActiveNames(e){if(e==null)return[];let t=Array.isArray(e)?e:[e],n=[];for(let e of t){let t=this.getIndex(e);if(!(t<0||t>=this.dom.headers.length)&&(n.push(this.dom.headers[t].dataset.item||String(t)),!this.props.multiple))break}return Array.from(new Set(n))}syncActiveNames(e){let n=e[0]||null,r=n?this.getIndex(n):null;(0,t.flushSync)(()=>{this.state.activeNames=e,this.state.current={index:r,name:n}})}bindEvents(){this.unbindEvents(),this.cleanup.events.on(`click`,this.root,`click`,e=>{let t=e.target.closest(`.accordion-header`);t&&this.active(t.dataset.item)}),this.cleanup.events.on(`keydown`,this.root,`keydown`,e=>{if(e.key!==`Enter`&&e.key!==` `)return;let t=e.target.closest(`.accordion-header`);t&&(e.preventDefault(),this.active(t.dataset.item))})}unbindEvents(){this.cleanup.events.clear()}isActive(e){return this.state.activeNames.includes(e)}assertActive(e){if(this.runtime.destroyed)throw Error(`Accordion.${e}: instance has been destroyed.`)}async activateItem(e,t=!0){let n=this.getIndex(e);if(n<0||n>=this.dom.headers.length)return;let r=this.dom.headers[n],i=this.dom.panels[n],a=r.dataset.item||String(n),o=this.isActive(a);if(o&&!this.props.multiple&&!this.props.collapsible)return;let s;s=this.props.multiple?o?this.state.activeNames.filter(e=>e!==a):[...this.state.activeNames,a]:o?this.props.collapsible?[]:this.state.activeNames:[a],this.syncActiveNames(s),t&&this.props.onChange&&await Promise.resolve(this.props.onChange(n,a,r,i,this))}getIndex(e){return typeof e==`number`?e:typeof e==`string`?this.dom.headers.findIndex(t=>t.dataset.item===e):-1}async active(e){this.assertActive(`active`),await this.activateItem(e,!0)}render(){this.assertActive(`render`),(0,t.insert)(this.dom.container,()=>this.root)}setItems(e,t=0){this.assertActive(`setItems`),h(`items`,e,H,`Accordion.setItems`),h(`active`,t,ke,`Accordion.setItems`),this.props.items=Ae(je(e)),this.props.active=t,this.root.textContent=``,this.buildItems(this.props),this.syncActiveNames(this.resolveActiveNames(t)),this.bindEvents()}onDestroy(){this.unbindEvents(),this.cleanup.bindings?.(),this.cleanup.bindings=null,this.root?.parentNode&&this.root.parentNode.removeChild(this.root)}};let Ne={name:{default:null,types:[`string`,`null`]},mode:{default:`click`,type:`string`,enum:[`hover`,`click`]},position:{default:`auto`,type:`string`,enum:[`auto`,`top-left`,`top-center`,`top-right`,`bottom-left`,`bottom-center`,`bottom-right`,`left`,`right`]},offset:{default:10,type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},content:{default:``,validate:A,message:`expects string, Node, array, function or null.`},className:{default:null,types:[`string`,`null`]},id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():_():e??_()},containerClassName:{default:null,types:[`string`,`null`]},delay:{default:0,types:[`number`,`object`]},hoverIntent:{default:!0,type:`boolean`},onShown:{default:null,types:[`function`,`null`]},onHidden:{default:null,types:[`function`,`null`]}};var Pe=class{constructor(e,t={}){if(!S())throw Error(`Drop: DOM render environment is required.`);this.target=O(e,`Drop.element`),this.props=g(t,Ne,`Drop`),this._init(this.props)}_init(e){this.isVisible=!1,this.root=null,this.cleanup={events:P()},this._timer={show:null,hide:null},this._hoverIntentData={x:0,y:0,lastMoveTime:0};let{delay:t}=e;typeof t==`number`&&t>=0?(this.delayShow=t,this.delayHide=t):typeof t==`object`&&t?(this.delayShow=Number(t.show)||0,this.delayHide=Number(t.hide)||0):(this.delayShow=0,this.delayHide=0),this._buildDrop(e),this._bindEvents(e)}_buildDrop(e){let{className:n,content:r,id:i,name:a,containerClassName:o}=e,s=n||``,c=C(r)&&r.nodeType===1?r:(0,t.jsx)(`div`,{className:o?`drop-container ${o}`:`drop-container`,children:T(r,this)});this.root=(0,t.jsx)(`div`,{className:s?`j-drop ${s}`:`j-drop`,id:i,"data-drop":a||_(),children:c})}_bindEvents(e){let{mode:t,hoverIntent:n}=e;this._unbindEvents(),t===`hover`?n?(this.cleanup.events.on(`target:enter`,this.target,`mouseenter`,()=>this._startHoverIntent()),this.cleanup.events.on(`target:leave`,this.target,`mouseleave`,()=>this._cancelHoverIntent())):(this.cleanup.events.on(`target:enter`,this.target,`mouseenter`,()=>this.show()),this.cleanup.events.on(`target:leave`,this.target,`mouseleave`,()=>this.hide())):t===`click`&&(this.cleanup.events.on(`target:click`,this.target,`click`,()=>this.toggle()),this.cleanup.events.on(`document:click`,document,`click`,e=>this._docClick(e)))}_bindRootEvents(){!this.root||this.props.mode!==`hover`||(this.cleanup.events.on(`root:enter`,this.root,`mouseenter`,()=>this.show()),this.cleanup.events.on(`root:leave`,this.root,`mouseleave`,()=>this.hide()))}_unbindRootEvents(){this.cleanup.events.off(`root:enter`),this.cleanup.events.off(`root:leave`)}_unbindEvents(){this.cleanup?.events.clear()}_startHoverIntent(){this.cleanup.events.on(`document:mousemove`,document,`mousemove`,e=>this._onMouseMove(e)),clearTimeout(this._timer.show),this._timer.show=setTimeout(()=>{let e=Date.now()-this._hoverIntentData.lastMoveTime;Math.abs(this._hoverIntentData.x-this._lastX||0)+Math.abs(this._hoverIntentData.y-this._lastY||0)<5||e>100?(this.show(),this.cleanup.events.off(`document:mousemove`)):this._startHoverIntent()},this.delayShow)}_cancelHoverIntent(){clearTimeout(this._timer.show),this.cleanup.events.off(`document:mousemove`),this.hide()}_onMouseMove(e){this._lastX=e.clientX,this._lastY=e.clientY,this._hoverIntentData.lastMoveTime=Date.now(),this._hoverIntentData.x=e.clientX,this._hoverIntentData.y=e.clientY}_setPosition(){let e=this.target.getBoundingClientRect(),t=this.root,{offset:n,position:r}=this.props;t.style.visibility=`hidden`,t.style.display=`block`;let i=t.getBoundingClientRect(),a=0,o=0,s=r;switch(s===`auto`&&(s=window.innerHeight-e.bottom>i.height+n?`top-center`:`bottom-center`),s){case`top-left`:a=e.top-i.height-n,o=e.left;break;case`top-center`:a=e.top-i.height-n,o=e.left+e.width/2-i.width/2;break;case`top-right`:a=e.top-i.height-n,o=e.right-i.width;break;case`bottom-left`:a=e.bottom+n,o=e.left;break;case`bottom-center`:a=e.bottom+n,o=e.left+e.width/2-i.width/2;break;case`bottom-right`:a=e.bottom+n,o=e.right-i.width;break;case`left`:a=e.top+e.height/2-i.height/2,o=e.left-i.width-n;break;case`right`:a=e.top+e.height/2-i.height/2,o=e.right+n;break;default:break}a=Math.max(8,Math.min(a,window.innerHeight-i.height-8)),o=Math.max(8,Math.min(o,window.innerWidth-i.width-8)),t.style.top=`${a+window.scrollY}px`,t.style.left=`${o+window.scrollX}px`,t.style.visibility=``,t.style.display=``}_docClick(e){!this.root.contains(e.target)&&!this.target.contains(e.target)&&this.hide()}_exec(e){this.root&&(e?(this.root.parentNode||document.body.appendChild(this.root),this._bindRootEvents(),this._setPosition()):(this._unbindRootEvents(),this.root.style.top=``,this.root.style.left=``,this.root.parentNode&&this.root.parentNode.removeChild(this.root)),this.root.classList.toggle(`is-active`,e),this.isVisible=e)}show(e=!0){clearTimeout(this._timer.hide),!this.isVisible&&(e&&this.delayShow>0?(clearTimeout(this._timer.show),this._timer.show=setTimeout(()=>this._exec(!0),this.delayShow)):this._exec(!0),this.props.onShown&&this.props.onShown())}hide(e=!0){clearTimeout(this._timer.show),this.isVisible&&(e&&this.delayHide>0?(clearTimeout(this._timer.hide),this._timer.hide=setTimeout(()=>this._exec(!1),this.delayHide)):this._exec(!1),this.props.onHidden&&this.props.onHidden())}toggle(){this.isVisible?this.hide():this.show()}destroy(){this.props&&(clearTimeout(this._timer?.show),clearTimeout(this._timer?.hide),this._unbindEvents(),this.root?.parentNode&&this.root.parentNode.removeChild(this.root),this.props=null,this.root=null,this.target=null,this._timer={show:null,hide:null},this.cleanup?.events.clear(),this.cleanup=null)}};function Fe(e){return e==null||typeof e==`string`||typeof e==`function`||Array.isArray(e)||typeof Node<`u`&&e instanceof Node}function Ie(e){return!!e&&typeof e==`object`&&typeof e.id==`string`}function Le(e){return e==null||e===!1||typeof e==`function`}function U(e){return e&&typeof e==`object`&&!Array.isArray(e)?{...e}:{}}function Re(e){return Array.isArray(e)?[...e]:[]}function ze(e){return Array.isArray(e)?e.map(e=>({...e,data:U(e.data),modal:U(e.modal),view:U(e.view)})):[]}function Be(e,t){return typeof e==`string`?{id:e}:e&&typeof e==`object`?e:{id:t}}let Ve={validate:Ie,message:`expects a step object with a string id.`},He={validate:Fe,message:`expects string, Node, array, function or null.`},Ue={validate:e=>Array.isArray(e)&&e.length>0,message:`expects a non-empty steps array.`},W={validate:e=>e==null||typeof e==`object`&&!Array.isArray(e),message:`expects an object or null.`},G={validate:Le,message:`expects function, false or null.`},We={default:{},validate:e=>d(e),message:`expects an object with text fields.`,normalize:e=>{let t=d(e)?e:{};return{...t,back:typeof t.back==`string`?t.back:`Back`,next:typeof t.next==`string`?t.next:`Next`,finish:typeof t.finish==`string`?t.finish:`Finish`,reset:typeof t.reset==`string`?t.reset:`Reset`}}},Ge={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():_():e??_()},steps:{default:[],...Ue},initial:{default:null,types:[`string`,`number`,`null`]},cache:{default:!0,type:`boolean`},linear:{default:!0,type:`boolean`},render:{default:!0,type:`boolean`},rollbackOnError:{default:!0,type:`boolean`},busyStrategy:{default:`ignore`,type:`string`,enum:[`ignore`,`throw`]},showHeader:{default:!0,type:`boolean`},showFooter:{default:!0,type:`boolean`},showSteps:{default:!0,type:`boolean`},showBack:{default:!0,type:`boolean`},showNext:{default:!0,type:`boolean`},showReset:{default:!1,type:`boolean`},text:We,className:{default:``,type:`string`},renderHeader:{default:null,...G},renderSteps:{default:null,...G},renderBody:{default:null,...G},renderFooter:{default:null,...G},onChange:{default:null,types:[`function`,`null`]},onNext:{default:null,types:[`function`,`null`]},onBack:{default:null,types:[`function`,`null`]},onFinish:{default:null,types:[`function`,`null`]},onError:{default:null,types:[`function`,`null`]},onBusy:{default:null,types:[`function`,`null`]}};var Ke=class{constructor(e={}){this.options=g(e,Ge,`Flow.options`),this._init(this.options)}_init(e){this.steps=ze(e.steps),this._validateSteps(this.steps),this._stepMap=new Map(this.steps.map((e,t)=>[e.id,t])),this._initialStepId=this._resolveInitialStepId(e.initial),this._initialData=this._createInitialStepData(),this._subscribers=new Set,this._renderDispose=null,this._cleanupTasks=new Set,this._nodes={},this._destroyed=!1,this._activeAction=null,this._actionController=null,this.root=null,this.state=(0,t.createDeepStore)({id:e.id,currentId:this._initialStepId,currentIndex:this._stepMap.get(this._initialStepId),previousId:null,previousIndex:null,direction:null,history:[this._initialStepId],data:U(this._initialData.global),stepData:U(this._initialData.stepData),loading:!1,error:null,busyAction:null,version:0})}get currentStep(){return this.steps[this.state.currentIndex]}get currentData(){return this.getStepData(this.state.currentId)}get canBack(){return this.state.currentIndex>0&&!this.state.loading}get canNext(){return this.state.currentIndex<this.steps.length-1&&!this.state.loading}get isLast(){return this.state.currentIndex===this.steps.length-1}subscribe(e){if(this._assertActive(`subscribe`),typeof e!=`function`)throw Error(`Flow.subscribe: handler expects a function.`);return this._subscribers.add(e),e(this.snapshot(),this),()=>this._subscribers.delete(e)}snapshot(){if(!this.state)return null;let e=this.currentStep;return{id:this.state.id,currentId:this.state.currentId,currentIndex:this.state.currentIndex,previousId:this.state.previousId,previousIndex:this.state.previousIndex,direction:this.state.direction,history:[...this.state.history],data:U(this.state.data),stepData:U(this.state.stepData),currentData:this.currentData,currentStep:this._publicStep(e),canBack:this.canBack,canNext:this.canNext,isLast:this.isLast,loading:this.state.loading,busyAction:this.state.busyAction,error:this.state.error}}mount(e){if(this._assertActive(`mount`),!this.options.render)return this;if(!S())throw Error(`Flow.mount: DOM environment is required.`);let t=O(e,`Flow.mount.container`);return this.unmount(),this.root=this._buildRoot(),t.appendChild(this.root),this._mountView(),this}unmount(){return this._renderDispose?.(),this._renderDispose=null,this.root?.parentNode&&this.root.parentNode.removeChild(this.root),this.root=null,this._nodes={},this}async next(e=null){return this._assertActive(`next`),h(`payload`,e,W,`Flow.next`),this._handleBusy(`next`)||this._runAction(`next`,async()=>{if(this.isLast)return this.finish(e,{internal:!0});let t=this.currentStep,n=this.steps[this.state.currentIndex+1]?.id,{id:r,data:i}=Be(await this._runMoveHook(`next`,t,e,n),n);return this.goTo(r,i??e,{direction:`next`,internal:!0})})}async back(e=null){return this._assertActive(`back`),h(`payload`,e,W,`Flow.back`),this._handleBusy(`back`)||(this.canBack?this._runAction(`back`,async()=>{let t=this.currentStep,n=this.steps[this.state.currentIndex-1]?.id,{id:r,data:i}=Be(await this._runMoveHook(`back`,t,e,n),n);return this.goTo(r,i??e,{direction:`back`,internal:!0})}):this.snapshot())}async goTo(e,t=null,n={}){return this._assertActive(`goTo`),h(`payload`,t,W,`Flow.goTo`),(n.internal?null:this._handleBusy(`goTo`))||this._runAction(`goTo`,async()=>{let r=this._resolveStepIndex(e),i=this.steps[r],a=this.currentStep;return!i||i.id===this.state.currentId?(t&&this.setStepData(this.state.currentId,t),this.snapshot()):(await this._transitionTo(i,{direction:n.direction||`go`,payload:t,fromStep:a}),this.snapshot())},{internal:n.internal})}setData(e){return this._assertActive(`setData`),h(`data`,e,W,`Flow.setData`),e?((0,t.flushSync)(()=>{Object.assign(this.state.data,e),this.state.version+=1}),this._emitChange(),this):this}setStepData(e,n,r={}){return this._assertActive(`setStepData`),h(`stepId`,e,{type:`string`},`Flow.setStepData`),h(`data`,n,W,`Flow.setStepData`),!n||!this._stepMap.has(e)?this:((0,t.flushSync)(()=>{this.state.stepData[e]={...U(this.state.stepData[e]),...n},this.options.cache&&Object.assign(this.state.data,n),this.state.version+=1}),r.silent||this._emitChange(),this)}getStepData(e){return U(this.state.stepData[e])}reset(){return this._assertActive(`reset`),(0,t.flushSync)(()=>{this.state.currentId=this._initialStepId,this.state.currentIndex=this._stepMap.get(this._initialStepId),this.state.previousId=null,this.state.previousIndex=null,this.state.direction=null,this.state.history.splice(0,this.state.history.length,this._initialStepId),this._replaceObject(this.state.data,U(this._initialData.global)),this._replaceObject(this.state.stepData,U(this._initialData.stepData)),this.state.loading=!1,this.state.busyAction=null,this.state.error=null,this.state.version+=1}),this._emitChange(),this}async finish(e=null,t={}){return this._assertActive(`finish`),h(`payload`,e,W,`Flow.finish`),(t.internal?null:this._handleBusy(`finish`))||this._runAction(`finish`,async()=>(e&&this.setStepData(this.state.currentId,e),await this._callHook(this.options.onFinish,[this.snapshot(),this]),this.snapshot()),{internal:t.internal})}destroy(){if(!this._destroyed){this._destroyed=!0,this._abortActiveAction(),this.unmount();for(let e of Array.from(this._cleanupTasks))e();this._cleanupTasks.clear(),this._subscribers.clear(),this.steps=null,this.options=null,this.state=null,this._stepMap=null,this._initialData=null,this._activeAction=null,this._actionController=null}}_resolveInitialStepId(e){if(typeof e==`number`){let t=this.steps[e];if(!t)throw Error(`Flow.options.initial index is out of range.`);return t.id}if(typeof e==`string`){if(!this._stepMap.has(e))throw Error(`Flow.options.initial step "${e}" does not exist.`);return e}return this.steps[0].id}_validateSteps(e){let t=new Set;for(let[n,r]of e.entries()){if(h(String(n),r,Ve,`Flow.options.steps`),h(`content`,r.content??null,He,`Flow.options.steps.${n}`),t.has(r.id))throw Error(`Flow.options.steps: duplicated step id "${r.id}".`);t.add(r.id)}}_resolveStepIndex(e){if(typeof e==`number`){if(!this.steps[e])throw Error(`Flow.goTo target is out of range.`);return e}if(typeof e==`string`){if(!this._stepMap.has(e))throw Error(`Flow.goTo target "${e}" does not exist.`);return this._stepMap.get(e)}throw Error(`Flow.goTo target expects string or number.`)}_createInitialStepData(){let e={},t={};for(let n of this.steps)e[n.id]=U(n.data),Object.assign(t,e[n.id]);return{stepData:e,global:t}}async _runMoveHook(e,t,n,r){let i=e===`back`?this.options.onBack:this.options.onNext,a=e===`back`?t.onBack:t.onNext,o=this._createContext({payload:n,targetId:r});if(typeof a==`function`){let e=await this._callHook(a,[o]);if(e!=null)return e}if(typeof i==`function`){let e=await this._callHook(i,[o]);if(e!=null)return e}return r}async _transitionTo(e,{direction:n,payload:r,fromStep:i}){let a=this.snapshot(),o=this._captureState();try{r&&this.setStepData(i.id,r,{silent:!0}),await this._assertCanLeave(i,e,n),await this._assertCanEnter(e,i,n),typeof i.onLeave==`function`&&await this._callHook(i.onLeave,[this._createContext({direction:n,step:i,targetId:e.id})]);let o=this.state.currentId,s=this.state.currentIndex,c=this._stepMap.get(e.id);(0,t.flushSync)(()=>{this.state.previousId=o,this.state.previousIndex=s,this.state.currentId=e.id,this.state.currentIndex=c,this.state.direction=n,n===`back`?this.state.history.pop():this.state.history.push(e.id),this.state.error=null,this.state.version+=1}),typeof e.onEnter==`function`&&await this._callHook(e.onEnter,[this._createContext({direction:n,fromId:o,step:e})]),this._emitChange(a)}catch(e){throw this._destroyed||!this.state||!this.options?e:(this.options.rollbackOnError&&this._restoreState(o,{keepLoading:!0}),this._handleError(e,a),e)}}async _assertCanLeave(e,t,n){if(typeof e.canLeave==`function`&&await this._callHook(e.canLeave,[this._createContext({direction:n,targetId:t.id})])===!1)throw Error(`Flow: step "${e.id}" blocked leaving.`)}async _assertCanEnter(e,t,n){if(typeof e.canEnter==`function`&&await this._callHook(e.canEnter,[this._createContext({direction:n,fromId:t.id})])===!1)throw Error(`Flow: step "${e.id}" blocked entering.`)}_createContext(e={}){let t=e.step||this.currentStep,n=this.snapshot();return{...e,flow:this,step:t,state:this.state,signal:this._actionController?.signal||null,snapshot:n,data:U(this.state.data),currentData:this.getStepData(t.id),setData:e=>this.setData(e),setStepData:(e,t)=>this.setStepData(e,t),getStepData:e=>this.getStepData(e),next:e=>this.next(e),back:e=>this.back(e),goTo:(e,t,n)=>this.goTo(e,t,n),addCleanup:e=>this._addCleanup(e)}}async _runAction(e,t,n={}){let r=!n.internal&&!this.state.loading;r&&(this._actionController=typeof AbortController<`u`?new AbortController:null,this._activeAction=e,this._setLoading(!0,e));try{return await t()}catch(e){if(this._destroyed||!this.state)return null;throw!this._destroyed&&this.state?.error!==e&&this._handleError(e),e}finally{r&&!this._destroyed&&(this._setLoading(!1,null),this._activeAction=null,this._actionController=null)}}_handleBusy(e){if(!this.state.loading)return null;let t=Error(`Flow: action "${e}" ignored while loading.`);if(t.code=`FLOW_BUSY`,typeof this.options.onBusy==`function`&&this.options.onBusy(e,this.snapshot(),this),this.options.busyStrategy===`throw`)throw t;return this.snapshot()}_abortActiveAction(){this._actionController?.abort?.(),this._actionController=null,this._activeAction=null}async _callHook(e,t){if(typeof e!=`function`)return;let n=await e(...t);if(this._destroyed||!this.state)throw this._createAbortError();return n}_createAbortError(){let e=Error(`Flow: active action was aborted.`);return e.code=`FLOW_ABORTED`,e}_setLoading(e,n=this.state?.busyAction||null){this.state&&(0,t.flushSync)(()=>{this.state.loading=e,this.state.busyAction=e?n:null})}_handleError(e,n=null){this.state&&((0,t.flushSync)(()=>{this.state.error=e,this.state.version+=1}),typeof this.options.onError==`function`&&this.options.onError(e,this.snapshot(),this,n))}_emitChange(e=null){let t=this.snapshot();for(let n of Array.from(this._subscribers))n(t,this,e);typeof this.options.onChange==`function`&&this.options.onChange(t,this,e)}_replaceObject(e,t){for(let t of Object.keys(e))delete e[t];Object.assign(e,t)}_captureState(){return{currentId:this.state.currentId,currentIndex:this.state.currentIndex,previousId:this.state.previousId,previousIndex:this.state.previousIndex,direction:this.state.direction,history:Re(this.state.history),data:U(this.state.data),stepData:U(this.state.stepData),loading:this.state.loading,busyAction:this.state.busyAction,error:this.state.error,version:this.state.version}}_restoreState(e,n={}){(0,t.flushSync)(()=>{this.state.currentId=e.currentId,this.state.currentIndex=e.currentIndex,this.state.previousId=e.previousId,this.state.previousIndex=e.previousIndex,this.state.direction=e.direction,this.state.history.splice(0,this.state.history.length,...e.history),this._replaceObject(this.state.data,e.data),this._replaceObject(this.state.stepData,e.stepData),this.state.loading=n.keepLoading?!0:e.loading,this.state.busyAction=e.busyAction,this.state.error=e.error,this.state.version=e.version+1})}_addCleanup(e){if(typeof e!=`function`)throw Error(`Flow.addCleanup: cleanup expects a function.`);return this._destroyed?(e(),()=>{}):(this._cleanupTasks.add(e),()=>this._cleanupTasks.delete(e))}_assertActive(e){if(this._destroyed||!this.state)throw Error(`Flow.${e}: instance has been destroyed.`)}_publicStep(e){if(!e)return null;let t={...e};return delete t.onEnter,delete t.onLeave,delete t.onNext,delete t.onBack,delete t.canEnter,delete t.canLeave,t}_buildRoot(){return(0,t.jsx)(`div`,{className:`j-flow ${this.options.className||``}`.trim(),id:this.options.id,role:`group`,"aria-busy":()=>this.state.loading?`true`:`false`,"aria-labelledby":`${this.options.id}-title`,ref:e=>{this._nodes.root=e}})}_mountView(){this._renderDispose||!this.root||(this._renderDispose=(0,t.createRoot)(e=>((0,t.onCleanup)((0,t.render)(()=>this._view(),this.root)),e)))}_view(){let e=this.snapshot();return[this._renderSlot(`renderHeader`,e,()=>this.options.showHeader?this._headerView(e):null),this._renderSlot(`renderSteps`,e,()=>this.options.showSteps?this._stepsView(e):null),this._renderSlot(`renderBody`,e,()=>this._bodyView(e)),this._renderSlot(`renderFooter`,e,()=>this.options.showFooter?this._footerView(e):null)]}_renderSlot(e,t,n){let r=this.options[e];return r===!1?null:typeof r==`function`?r(this._createRenderContext(t,n)):n()}_createRenderContext(e,t){return{flow:this,snapshot:e,state:this.state,steps:this.steps.map(e=>this._publicStep(e)),currentStep:e.currentStep,currentData:e.currentData,data:e.data,fallback:t,next:e=>this.next(e),back:e=>this.back(e),goTo:(e,t,n)=>this.goTo(e,t,n),reset:()=>this.reset()}}_headerView(e){return(0,t.jsx)(`div`,{className:`flow-header`,children:[(0,t.jsx)(`div`,{id:`${this.options.id}-title`,className:`flow-title`,children:e.currentStep?.title||e.currentStep?.id||``}),e.currentStep?.description?(0,t.jsx)(`div`,{className:`flow-description`,children:e.currentStep.description}):null]})}_stepsView(e){return(0,t.jsx)(`ol`,{className:`flow-steps`,role:`list`,"aria-label":`Flow steps`,children:this.steps.map((n,r)=>(0,t.jsx)(`li`,{className:this._stepClass(r,e.currentIndex),"aria-current":r===e.currentIndex?`step`:void 0,children:[(0,t.jsx)(`button`,{type:`button`,className:`flow-step-button`,disabled:this.options.linear&&r>e.currentIndex,"aria-current":r===e.currentIndex?`step`:void 0,"aria-disabled":this.options.linear&&r>e.currentIndex?`true`:`false`,"aria-label":`${r+1}. ${n.title||n.id}`,onClick:()=>{r!==e.currentIndex&&this.goTo(r)},children:[(0,t.jsx)(`span`,{className:`flow-step-index`,children:r+1}),(0,t.jsx)(`span`,{className:`flow-step-title`,children:n.title||n.id})]})]}))})}_bodyView(e){return(0,t.jsx)(`div`,{className:`flow-body`,role:`region`,"aria-live":`polite`,"aria-busy":e.loading?`true`:`false`,children:this._contentView(e.currentStep?.content)})}_footerView(e){return(0,t.jsx)(`div`,{className:`flow-footer`,children:[this.options.showReset?(0,t.jsx)(`button`,{type:`button`,className:`j-button is-ghost flow-reset`,onClick:()=>this.reset(),disabled:e.loading,"aria-disabled":e.loading?`true`:`false`,children:this.options.text.reset}):null,this.options.showBack?(0,t.jsx)(`button`,{type:`button`,className:`j-button is-ghost flow-back`,"data-action":`back`,onClick:()=>void this.back(),disabled:!e.canBack,"aria-disabled":e.canBack?`false`:`true`,children:this.options.text.back}):null,this.options.showNext?(0,t.jsx)(`button`,{type:`button`,className:`j-button is-primary flow-next`,"data-action":`next`,onClick:()=>void this.next(),disabled:e.loading,"aria-disabled":e.loading?`true`:`false`,children:e.isLast?this.options.text.finish:this.options.text.next}):null]})}_contentView(e){return typeof e==`function`?e(this._createContext()):Array.isArray(e)||typeof Node<`u`&&e instanceof Node?e:e==null||typeof e!=`string`?``:e}_stepClass(e,t=this.state.currentIndex){let n=[`flow-step`];return e===t&&n.push(`is-active`),e<t&&n.push(`is-complete`),n.join(` `)}};function qe(e){return new Ke(e)}let Je={type:{default:`mobile`,type:`string`},id:{default:``,type:`string`,normalize:e=>e.trim()===``?_():e.trim()},items:{default:[],type:`array`},backText:{default:`Back`,type:`string`}},Ye={type:`array`};var Xe=class{constructor(e={},t=!1){this.options=g(e,Je,`Menu.options`),this._element=t,this.root=null,this.cleanup={events:P()},this._bound=!1,this._destroyed=!1}_verifyItems(e){h(`items`,e,Ye,`Menu`)}build(){if(this._bound)return this;if(!S())throw Error(`Menu: DOM render environment is required.`);return this._element===!1?(this.root=this._buildRoot(),this._bound=!0):(this.root=O(this._element,`Menu.element`),this._bound=!0),this._bindEvents(),this}_buildRoot(){let{items:e,id:n,type:r}=this.options;return(0,t.jsx)(`nav`,{className:`j-${r}-menu`,children:(0,t.jsx)(`ul`,{className:`menu`,id:n,children:e.map(e=>this._buildItem(e))})})}_buildItem(e){let n=e.children&&e.children.length>0,r=[`menu-item`];n&&r.push(`menu-item-has-children`),e.classes&&Array.isArray(e.classes)&&r.push(...e.classes);let i=[(0,t.jsx)(`a`,{className:`menu-link`,href:e.url||`#`,...e.target&&{target:e.target},children:e.title})];return n&&i.push((0,t.jsx)(`ul`,{className:`sub-menu`,children:e.children.map(e=>this._buildItem(e))})),(0,t.jsx)(`li`,{className:r.join(` `),id:`menu-item-${e.id||_()}`,children:i})}_bindEvents(){this.root&&(this.options.type===`mobile`?this.cleanup.events.on(`mobile`,this.root,`click`,e=>{let t=e.target;if(t.closest(`.menu-item.back`)){e.preventDefault(),this._handleBack(t);return}let n=t.closest(`.menu-item.menu-item-has-children`);if(n){let r=j(`:scope > a`,n);r&&(t===r||r.contains(t))&&(e.preventDefault(),this._handleMenuClick(n))}}):this.options.type===`bottom`&&this.cleanup.events.on(`bottom`,document,`click`,e=>{let t=e.target;if(t.closest(`.sub-menu a`))return;let n=t.closest(`.menu > .menu-item.menu-item-has-children`);n?(e.preventDefault(),this._toggleActive(n)):j(`.menu-item.is-active`,this.root)?.classList.remove(`is-active`)}))}_unbindEvents(){this.cleanup.events.clear()}_teardown({keepElement:e=!1}={}){this._unbindEvents(),this.cleanup.items?.(),this.cleanup.items=null,this._element===!1&&this.root?.parentElement&&this.root.remove(),e||(this._element=null),this.root=null,this._bound=!1}_handleMenuClick(e){e.classList.add(`is-active`);let n=j(`:scope > .sub-menu`,e);if(!n||j(`:scope > .menu-item.back`,n))return;let r=(0,t.jsx)(`li`,{className:`menu-item back`,children:(0,t.jsx)(`a`,{className:`menu-link`,children:[(0,t.jsx)(`icon`,{className:`el-icon el-prefix`,children:L(`arrow-left`)}),(0,t.jsx)(`span`,{className:`menu-text`,children:this.options.backText})]})});n.insertBefore(r,n.firstChild)}_handleBack(e){let t=e.closest(`.menu-item.back`);if(!t)return;let n=t.parentElement.parentElement;n&&n.classList.contains(`menu-item-has-children`)&&n.classList.remove(`is-active`),t.remove()}_toggleActive(e){let t=e.classList.contains(`is-active`);j(`.menu-item.is-active`,this.root)?.classList.remove(`is-active`),t||e.classList.add(`is-active`)}setItems(e){if(this._verifyItems(e),this.options.items=e,this._bound)if(this._element===!1){let e=this._element;this._teardown({keepElement:!0}),this._element=e,this.build()}else{let n=this.root.matches?.(`.menu`)||this.root.matches?.(`ul`)||this.root.matches?.(`ol`)?this.root:j(`:scope > .menu`,this.root)||j(`.menu`,this.root);if(!n)throw Error(`Menu: .menu element not found for setItems().`);this._unbindEvents(),this.cleanup.items?.(),this.cleanup.items=(0,t.render)(()=>e.map(e=>this._buildItem(e)),n),this._bindEvents()}return this}removeItem(e){if(!this.root)return this;let t=j(`[id^="menu-item-${e}"]`,this.root);if(t&&t.remove(),this.options.items){let t=n=>{for(let r=n.length-1;r>=0;r--)n[r].id===e?n.splice(r,1):n[r].children&&t(n[r].children)};t(this.options.items)}return this}destroy(){this._destroyed||(this._destroyed=!0,this._bound?this._teardown():(this._element=null,this.root=null,this.cleanup.events.clear()),this.cleanup=null,this.options=null)}};function K(e){return Array.isArray(e)?e.map(e=>({...e,options:Array.isArray(e.options)?e.options.map(e=>e&&typeof e==`object`?{...e}:e):e.options})):[]}function q(e){return{...e,fields:Array.isArray(e.fields)?K(e.fields):e.fields}}function Ze(e){return e&&typeof e==`object`?e:{value:e,text:e}}function Qe(e){return e==null||typeof e==`string`||typeof e==`function`||Array.isArray(e)||C(e)}function $e(e){return d(e)}function et(e){return e==null||typeof e==`object`&&typeof e.next==`function`&&typeof e.back==`function`&&typeof e.snapshot==`function`}function tt(e,t){return!Array.isArray(e)||!d(t)?e:e.map(e=>{if(!e?.name||!o(t,e.name))return e;let n=t[e.name];if(e.type===`checkbox`||e.type===`radio`){let t=e.value??`on`,r=Array.isArray(n)?n.map(String).includes(String(t)):n===!0||String(n)===String(t);return{...e,checked:r}}return{...e,value:n}})}function nt(e){let t=d(e?.text)?e.text:{};return{title:typeof t.title==`string`?t.title:`Tip`,confirm:typeof t.confirm==`string`?t.confirm:`Confirm`,cancel:typeof t.cancel==`string`?t.cancel:`Cancel`}}function rt(e){return{...e,fields:Array.isArray(e.fields)?K(e.fields):null,text:nt(e),loading:!1,submitting:!1,visible:!1,data:null,extraData:null}}function it(e,t){return!t||typeof t!=`object`?e:Object.assign(e,t)}function at(e){return d(e)?{...e}:{}}let ot={validate:Qe,message:`expects string, Node, array, function or null.`},st={default:{},validate:e=>d(e),message:`expects an object with text fields.`,normalize:e=>{let t=d(e)?e:{};return{...t,title:typeof t.title==`string`?t.title:`Tip`,confirm:typeof t.confirm==`string`?t.confirm:`Confirm`,cancel:typeof t.cancel==`string`?t.cancel:`Cancel`}}},ct={types:[`array`,`null`]},J={content:{default:``,...ot},position:{default:`center`,type:`string`},showCancel:{default:!0,type:`boolean`},showClose:{default:!0,type:`boolean`},fullscreen:{default:!1,type:`boolean`},flow:{default:null,validate:et,message:`expects a Flow instance or null.`},text:st,onShow:{default:null,types:[`function`,`null`]},onShown:{default:null,types:[`function`,`null`]},onHide:{default:null,types:[`function`,`null`]},onHidden:{default:null,types:[`function`,`null`]},onConfirm:{default:null,types:[`function`,`null`]},onSubmit:{default:null,types:[`function`,`null`]},onCancel:{default:null,types:[`function`,`null`]},fields:{default:null,...ct},header:{default:!0,type:`boolean`},footer:{default:!0,type:`boolean`},style:{default:null,types:[`string`,`null`,`object`]},id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():_():e??_()},escClose:{default:!1,type:`boolean`},bgClose:{default:!1,type:`boolean`},lazy:{default:!1,type:`boolean`}},lt={...J,loading:{default:!1,type:`boolean`},submitting:{default:!1,type:`boolean`},visible:{default:!1,type:`boolean`},data:{default:null,types:[`object`,`null`]},extraData:{default:null,types:[`object`,`null`]}},ut=new Set([`id`,`lazy`]),dt={validate:e=>!!e&&typeof e==`object`&&!Array.isArray(e),message:`expects an object.`},ft={validate:$e,message:`expects a props object.`},Y=0,X=``;var pt=class extends V{constructor(e={}){let n=g(e,J,`Modal`);super(n),this.dom.modal=null,this.dom.header=null,this.dom.body=null,this.dom.footer=null,this.dom.form=null,this.cleanup.visibility=null,this.cleanup.view=null,this.cleanup.hideTimer=null,this.runtime.scrollLocked=!1,this.runtime.visibleApplied=!1,this.cache={initial:q(this.props),fieldIds:new Map,baseStyle:``,previousActiveElement:null,formId:`${this.props.id}_form`},this.state=(0,t.createDeepStore)(rt(this.props)),this.init(n)}onInit(){this.bindReactiveVisibility(),!this.state.lazy&&S()&&this.buildRoot()}buildRoot(){if(this.root)return this.root;let{id:e}=this.state,n=(0,t.jsx)(`div`,{className:()=>`j-popup-layout is-${this.state.position}`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":()=>this.state.header?`${e}_title`:null,"aria-label":()=>this.state.header?null:this.state.text?.title||`Modal`,children:(0,t.jsx)(`div`,{className:()=>this.state.fullscreen?`j-modal is-fullscreen`:`j-modal`,id:e,role:`document`,ref:e=>{this.dom.modal=e,this.applyStyle(e,this.state.style)},children:[(0,t.jsx)(`div`,{className:`modal-header`,style:()=>({display:this.state.header?``:`none`}),ref:e=>{this.dom.header=e}}),(0,t.jsx)(`div`,{className:`modal-body`,ref:e=>{this.dom.body=e}}),(0,t.jsx)(`div`,{className:`modal-footer`,style:()=>({display:this.state.footer?``:`none`}),ref:e=>{this.dom.footer=e}})]})});return this.root=n,this.mountView(),n}mountView(){this.cleanup.view||!this.dom.body||(this.cleanup.view=(0,t.createRoot)(e=>(this.dom.header&&(0,t.onCleanup)((0,t.render)(()=>this.headerView(),this.dom.header)),(0,t.render)(()=>this.bodyView(),this.dom.body),this.dom.footer&&(0,t.onCleanup)((0,t.render)(()=>this.footerView(),this.dom.footer)),this.bindReactiveLoading(),this.bindReactiveStyle(),e)))}headerView(){return()=>this.state.header?[(0,t.jsx)(`div`,{className:`modal-title`,id:`${this.state.id}_title`,children:()=>this.state.text?.title}),this.state.showClose?(0,t.jsx)(`button`,{type:`button`,className:`is-reset modal-close`,"data-action":`close`,"aria-label":`close`,children:L(`close`)}):null]:null}footerView(){return()=>this.state.footer?[this.state.showCancel?(0,t.jsx)(`button`,{type:`button`,className:`j-button is-ghost modal-cancel`,"data-action":`close`,"aria-label":`close`,disabled:()=>this.isBusy(),children:()=>this.state.text?.cancel}):null,(0,t.jsx)(`button`,{type:()=>this.isFormMode()?`submit`:`button`,form:()=>this.isFormMode()?this.cache.formId:null,className:`j-button is-primary modal-confirm`,"data-action":this.isFormMode()?`submit`:`confirm`,disabled:()=>this.isBusy(),children:()=>this.state.text?.confirm})]:null}bodyView(){return this.isFormMode()?this.formView():(this.dom.form=null,this.contentView(this.state.content))}formView(){return(0,t.jsx)(`div`,{className:`modal-form-container`,children:(0,t.jsx)(`form`,{id:this.cache.formId,className:`j-form is-vertical is-item-vertical`,ref:e=>{this.dom.form=e},onSubmit:e=>this.handleFormSubmit(e),onKeyDown:e=>this.handleFormKeydown(e),children:(this.state.fields||[]).map((e,t)=>this.fieldView(e,t))})})}fieldView(e,n){let r=this.resolveFieldId(e,n),i=this.labelView(e,r);return(0,t.jsx)(`div`,{className:`form-item`,style:{display:e.type===`hidden`?`none`:``},children:[i,(0,t.jsx)(`div`,{className:`form-control`,children:this.controlView(e,r)})]})}labelView(e,n){return(0,t.jsx)(`label`,{className:`item-label ${e.required?`is-required`:``}`,for:n,style:{display:e.label===void 0?`none`:``},children:e.label===void 0?``:e.label})}resolveFieldId(e,t){if(e.id)return e.id;let n=e.name||t;return this.cache.fieldIds.has(n)||this.cache.fieldIds.set(n,`${this.state.id}_field_${t}_${_()}`),this.cache.fieldIds.get(n)}controlView(e,t){switch(e.type){case`textarea`:return this.textareaView(e,t);case`select`:return this.selectView(e,t);default:return this.inputView(e,t)}}inputView(e,n){let r=e.type||`text`,i={type:r,className:`j-input`,name:e.name,id:n,placeholder:e.placeholder||``,value:e.value??``,autocomplete:e.autocomplete||this.autoComplete(r),required:!!e.required,disabled:!!e.disabled,readonly:!!e.readonly};return e.checked!==void 0&&(i.checked=!!e.checked),(0,t.jsx)(`input`,i)}textareaView(e,n){return(0,t.jsx)(`textarea`,{className:`j-textarea`,name:e.name,id:n,placeholder:e.placeholder||``,value:e.value??``,required:!!e.required,disabled:!!e.disabled,readonly:!!e.readonly})}selectView(e,n){let r=e.value;return(0,t.jsx)(`select`,{className:`j-select`,name:e.name,id:n,autocomplete:`off`,required:!!e.required,disabled:!!e.disabled,readonly:!!e.readonly,multiple:!!e.multiple,children:(e.options||[]).map(e=>{let n=Ze(e);return(0,t.jsx)(`option`,{value:n.value??``,disabled:!!n.disabled,selected:this.isSelected(r,n.value),children:n.text??n.label??n.value??``})})})}contentView(e){if(typeof e==`function`)return e(this);if(Array.isArray(e)||C(e))return e;if(e==null||typeof e!=`string`)return``;let t=document.createElement(`template`);return t.innerHTML=e,Array.from(t.content.childNodes)}bindReactiveLoading(){let e=null;(0,t.createEffect)(()=>{this.state.loading&&!e?(e=(0,t.jsx)(`div`,{className:`j-loading is-active`,"aria-live":`polite`,children:(0,t.jsx)(`div`,{className:`loading-spinner`})}),this.dom.modal.appendChild(e)):!this.state.loading&&e&&(e.remove(),e=null)}),(0,t.onCleanup)(()=>{e?.remove(),e=null})}bindReactiveStyle(){(0,t.createEffect)(()=>{let e=this.state.style;this.dom.modal&&this.applyStyle(this.dom.modal,e)})}autoComplete(e){switch(e){case`password`:return`current-password`;case`email`:return`email`;default:return`on`}}isSelected(e,t){return Array.isArray(e)?e.map(String).includes(String(t)):e==t}isFormMode(){return Array.isArray(this.state.fields)}isBusy(){return!!(this.state.loading||this.state.submitting)}validatePropsPatch(e,t=`Modal.update`){h(`props`,e,ft,t);for(let n of Object.keys(e)){if(!o(J,n))throw Error(`Validator: ${t}.${n} is not a supported modal prop.`);if(ut.has(n))throw Error(`Modal.update: "${n}" cannot be updated after initialization.`);h(n,e[n],J[n],t)}}applyProps(e,{validate:n=!0,force:r=!1}={}){if(n&&this.validatePropsPatch(e),!e||Object.keys(e).length===0)return this;let i=o(e,`fields`);if(o(e,`content`)&&!i&&this.isFormMode()&&!r)throw Error(`Modal.update: Cannot update content when fields are defined.`);let a=Object.assign({},this.props,e);o(e,`text`)&&(a.text=Object.assign({},this.props.text||{},e.text)),this.props=a,super.update(e,{force:r}),this.props=a;let s={};i&&(this.cache.fieldIds.clear(),s.fields=Array.isArray(e.fields)?K(e.fields):null);for(let[t,n]of Object.entries(e))t===`fields`||t===`text`||(s[t]=n);return o(e,`text`)&&(s.text=nt(this.props)),(0,t.flushSync)(()=>{for(let[e,t]of Object.entries(s))this.state[e]=t}),o(e,`style`)&&this.dom.modal&&this.applyStyle(this.dom.modal,this.state.style),this.state.visible&&(o(e,`bgClose`)||o(e,`escClose`))&&this.bindEvents(this.root),this}applyStyle(e,t){if(e.removeAttribute(`style`),!t){this.cache.baseStyle=``;return}if(typeof t==`string`){e.style.cssText=t,this.cache.baseStyle=e.getAttribute(`style`)||``;return}typeof t==`object`&&Object.entries(t).forEach(([t,n])=>{if(n==null)return;let r=t.startsWith(`--`)?t:t.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`);e.style.setProperty(r,String(n))}),this.cache.baseStyle=e.getAttribute(`style`)||``}normalizeIcon(e){if(!(e instanceof Element))return;let t=j(`.modal-close`,e);t&&(t.style.transform=`translateX(${t.clientHeight/3}px)`)}bindReactiveVisibility(){this.cleanup.visibility=(0,t.createRoot)(e=>((0,t.createEffect)(()=>{let e=!!this.state.visible;(0,t.untrack)(()=>this.applyVisibility(e))}),e))}applyVisibility(e){if(e!==this.runtime.visibleApplied){if(e){this.showFromState();return}this.hideFromState()}}showFromState(){if(this.runtime.destroyed)throw Error(`Modal: The current instance has been destroyed.`);if(!S())throw Error(`Modal.show: DOM environment is required.`);this.root||this.buildRoot(),this.cancelHideTimer(),this.resetAnimationStyles();let{onShow:e,onShown:t}=this.state;e&&e(),this.cache.previousActiveElement=document.activeElement,this.root.parentNode||document.body.appendChild(this.root),this.lockScroll(),this.runtime.visibleApplied=!0,this.normalizeIcon(this.dom.modal),this.bindEvents(this.root),this.focusFirst(),t&&t()}hideFromState(){if(!this.runtime.visibleApplied||!this.root)return;let{onHide:e,onHidden:n}=this.state;e&&e(),this.runtime.visibleApplied=!1,this.clearEvents(),(0,t.flushSync)(()=>{this.state.loading=!1,this.state.extraData=null,this.state.data=null}),this.dom.modal&&(this.dom.modal.style.transition=`opacity 300ms ease-out, transform 300ms ease-out`,this.dom.modal.style.opacity=`0`,this.dom.modal.style.transform=`scale(0.3)`),this.cancelHideTimer(),this.cleanup.hideTimer=setTimeout(()=>this.finishHide(n),300)}bindEvents(e){this.clearEvents(),this.bindOverlayCloseEvent(e),this.bindDocumentKeyEvent(),this.bindInsideEvent()}bindOverlayCloseEvent(e){e&&this.cleanup.events.on(`bg`,e,`click`,t=>{this.state.bgClose&&t.target===e&&this.hide()})}bindDocumentKeyEvent(){this.cleanup.events.on(`keydown`,document,`keydown`,e=>{if(this.state.visible){if(e.key===`Escape`&&this.state.escClose){e.preventDefault(),this.hide();return}e.key===`Tab`&&this.trapFocus(e)}})}bindInsideEvent(){this.dom.modal&&this.cleanup.events.on(`inside`,this.dom.modal,`click`,e=>{let t=(e.target instanceof Element?e.target:null)?.closest(`[data-action]`);if(!t||!this.dom.modal.contains(t))return;let n=t.dataset.action;if(n===`cancel`||n===`close`||t.classList.contains(`modal-close`)){this.handleCancel();return}if(n===`submit`){this.requestSubmit();return}if(n===`back`){this.handleBack();return}if(n===`next`){this.handleNext();return}if(n===`confirm`){if(this.isFormMode()){if(t.classList.contains(`modal-confirm`))return;this.requestSubmit();return}this.handleConfirm()}})}clearEvents(){this.cleanup.events.clear()}requestSubmit(){if(!this.dom.form){this.handleConfirm();return}if(typeof this.dom.form.requestSubmit==`function`){this.dom.form.requestSubmit();return}let e=new Event(`submit`,{bubbles:!0,cancelable:!0});this.dom.form.dispatchEvent(e)}async handleFormSubmit(e){if(e.preventDefault(),this.isBusy())return;let n=e.currentTarget;if(!n.checkValidity()){n.reportValidity();return}let r=it(this.collectFormData(n),this.state.extraData);(0,t.flushSync)(()=>{this.state.data=r}),await this.handleSubmit(r)}handleFormKeydown(e){if(e.key!==`Enter`||e.isComposing||this.isBusy())return;let t=e.target,n=t?.tagName?.toLowerCase(),r=t?.type?.toLowerCase();n!==`textarea`&&(r===`button`||r===`submit`||r===`reset`||(e.preventDefault(),this.requestSubmit()))}collectFormData(e){let t={},n=new FormData(e);for(let[e,r]of n.entries())o(t,e)?t[e]=Array.isArray(t[e])?[...t[e],r]:[t[e],r]:t[e]=r;return t}async handleNext(){this.isBusy()||this.hasFlow()&&await this.moveFlow(`next`)}async handleBack(){this.isBusy()||this.hasFlow()&&await this.moveFlow(`back`)}hasFlow(){return et(this.state.flow)&&!!this.state.flow}async moveFlow(e){let n=this.createFlowPayload();if(n!==!1){(0,t.flushSync)(()=>{this.state.submitting=!0});try{let t=await this.state.flow[e](n);this.syncFlowView(this.state.flow,t)}catch(t){console.error(`Modal.flow.${e} error:`,t),this.syncFlowView(this.state.flow)}finally{this.state&&(0,t.flushSync)(()=>{this.state.submitting=!1})}}}createFlowPayload(){if(!this.isFormMode())return null;let e=this.dom.form;if(!e)return this.state.data||null;if(!e.checkValidity())return e.reportValidity(),!1;let n=it(this.collectFormData(e),this.state.extraData);return(0,t.flushSync)(()=>{this.state.data=n}),this.state.data}resolveFlowModalView(e,t,n){let r=n?.modal??n?.view;if(typeof r==`function`){let i=r({flow:e,snapshot:t,step:n,modal:this,data:t?.data??null,currentData:t?.currentData??null});return d(i)?i:{}}return at(r)}syncFlowView(e,t=null){if(!e||!this.state)return;let n=e.snapshot()||t,r=e.currentStep||n?.currentStep||t?.currentStep,i=this.resolveFlowModalView(e,n,r),a=d(i.text)?i.text:{},s={...(!o(i,`text`)||!o(a,`title`))&&r?.title!=null?{text:{...a,title:r.title}}:{},...!o(i,`content`)&&!o(i,`fields`)?{content:r?.content??null}:{},...i};Array.isArray(s.fields)&&(s.fields=tt(s.fields,n?.currentData)),!o(s,`fields`)&&o(s,`content`)&&(s.fields=null),this.update(s)}async handleConfirm(){if(!this.isBusy()){(0,t.flushSync)(()=>{this.state.submitting=!0});try{this.state.onConfirm&&await Promise.resolve(this.state.onConfirm()),this.hide()}catch(e){console.error(`Modal.onConfirm error:`,e)}finally{this.state&&(0,t.flushSync)(()=>{this.state.submitting=!1})}}}async handleCancel(){if(!this.isBusy()){(0,t.flushSync)(()=>{this.state.submitting=!0});try{this.state.onCancel&&await Promise.resolve(this.state.onCancel(this)),this.hide()}catch(e){console.error(`Modal.onCancel error:`,e)}finally{this.state&&(0,t.flushSync)(()=>{this.state.submitting=!1})}}}async handleSubmit(e){if(this.state.onSubmit){(0,t.flushSync)(()=>{this.state.submitting=!0});try{await Promise.resolve(this.state.onSubmit(e)),this.state.extraData=null}catch(e){console.error(`Modal.onSubmit error:`,e)}finally{this.state&&(0,t.flushSync)(()=>{this.state.submitting=!1})}}}trapFocus(e){if(!this.dom.modal)return;let t=Array.from(M(`a[href], button:not([disabled]):not([data-action=close]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])`,this.dom.modal)).filter(e=>e.offsetParent!==null||e===document.activeElement);if(t.length===0){e.preventDefault(),this.dom.modal.focus();return}let n=t[0],r=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),r.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n.focus())}focusFirst(){if(!this.dom.modal)return;let e=j(`input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]):not([data-action=close]), [tabindex]:not([tabindex="-1"])`,this.dom.form||this.dom.modal);e?e.focus():(this.dom.modal.setAttribute(`tabindex`,`-1`),this.dom.modal.focus())}lockScroll(){this.runtime.scrollLocked||!x()||(Y===0&&(X=document.body.style.overflow,document.body.style.overflow=`hidden`),Y+=1,this.runtime.scrollLocked=!0)}unlockScroll(){!this.runtime.scrollLocked||!x()||(Y=Math.max(0,Y-1),Y===0&&(document.body.style.overflow=X,X=``),this.runtime.scrollLocked=!1)}cancelHideTimer(){this.cleanup.hideTimer&&(clearTimeout(this.cleanup.hideTimer),this.cleanup.hideTimer=null)}resetAnimationStyles(){this.dom.modal&&(this.cache.baseStyle?this.dom.modal.setAttribute(`style`,this.cache.baseStyle):this.dom.modal.removeAttribute(`style`))}finishHide(e){this.cleanup.hideTimer=null,this.root?.parentNode&&this.root.parentNode.removeChild(this.root),this.resetAnimationStyles(),this.unlockScroll(),this.restoreFocus(),e&&e()}restoreFocus(){let e=this.cache.previousActiveElement;this.cache.previousActiveElement=null,e&&typeof e.focus==`function`&&document.contains(e)&&e.focus()}assertActive(e){if(this.runtime.destroyed)throw Error(`Modal.${e}: The current instance has been destroyed.`)}validateStatePatch(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Modal.setState: expects a plain object patch.`);for(let t of Object.keys(e)){if(!o(lt,t))throw Error(`Modal.setState: "${t}" is not a supported state key.`);if(ut.has(t))throw Error(`Modal.setState: "${t}" cannot be updated after initialization.`);h(t,e[t],lt[t],`Modal.setState`)}}setState(e={}){return this.assertActive(`setState`),this.validateStatePatch(e),(0,t.flushSync)(()=>{for(let[t,n]of Object.entries(e))t===`fields`&&this.cache.fieldIds.clear(),this.state[t]=t===`fields`&&Array.isArray(n)?K(n):n}),this}show(){return this.assertActive(`show`),(0,t.flushSync)(()=>{this.state.visible=!0}),this}hide(){return this.assertActive(`hide`),(0,t.flushSync)(()=>{this.state.visible=!1}),this}setFields(e,t=!1){return h(`data`,e,ct,`Modal.setFields`),this.applyProps({fields:e},{validate:!1,force:t}),this}addFields(e){return h(`data`,e,dt,`Modal.addFields`),(0,t.flushSync)(()=>{this.state.extraData=e}),this}setContent(e,t=!1){if(h(`content`,e,ot,`Modal.setContent`),this.isFormMode()&&!t)throw Error(`Modal.setContent: Cannot setContent when fields are defined.`);return this.applyProps({content:e},{validate:!1,force:t}),this}update(e={},t=!1){return this.applyProps(e,{validate:!0,force:t})}reset(){this.cache.fieldIds.clear();let e=q(this.cache.initial);return delete e.id,delete e.lazy,this.props=q(e),this.applyProps(e,{validate:!1}),(0,t.flushSync)(()=>{this.state.data=null,this.state.extraData=null}),this}resetContent(){return this.setContent(this.cache.initial?.content??``)}resetFields(){return this.setFields(Array.isArray(this.cache.initial?.fields)?K(this.cache.initial.fields):null)}onDestroy(){let e=!!this.runtime.visibleApplied,t=this.state?.onHide,n=this.state?.onHidden;e&&t&&t(),this.cancelHideTimer(),this.clearEvents(),this.unlockScroll(),this.cleanup.visibility?.(),this.cleanup.visibility=null,this.cleanup.view?.(),this.cleanup.view=null,this.root?.parentNode&&this.root.parentNode.removeChild(this.root),e&&n&&n(),this.cache={initial:null,fieldIds:null,baseStyle:``,previousActiveElement:null,formId:``}}destroy(){if(!this.runtime.destroyed)return super.destroy(),this}};let mt={content:{default:``,validate:A,message:`expects string, Node, array, function or null.`},overlay:{default:!0,type:`boolean`},filter:{default:!0,type:`boolean`},direction:{default:`left`,type:`string`,enum:[`top`,`right`,`bottom`,`left`]},animation:{default:`slide`,type:`string`,enum:[`slide`,`push`,`none`]},bgClose:{default:!0,type:`boolean`},escClose:{default:!0,type:`boolean`},id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():_():e??_()},onShow:{default:null,types:[`function`,`null`]},onShown:{default:null,types:[`function`,`null`]},onHide:{default:null,types:[`function`,`null`]},onHidden:{default:null,types:[`function`,`null`]}};var ht=class extends V{constructor(e={}){if(!S())throw Error(`Offcanvas: DOM render environment is required.`);let n=g(e,mt,`Offcanvas`);super(n),this._overlay=null,this.state=(0,t.createDeepStore)({visible:!1}),this.onInit(n)}onInit(e){e.overlay&&(this._overlay=this._buildOverlay(e)),this.root=this._buildRoot(e)}_buildOverlay(e){return(0,t.jsx)(`div`,{className:`j-offcanvas-overlay`,style:e.filter?{backdropFilter:`blur(2px)`}:{}})}_buildRoot(e){return(0,t.jsx)(`div`,{className:`j-offcanvas is-${e.direction} is-${e.animation}`,id:e.id,children:(0,t.jsx)(`div`,{className:`offcanvas-content`,children:T(e.content,this)})})}_bindEvents(){this.unbindEvents();let{bgClose:e,escClose:t}=this.props;this._overlay&&e&&this.cleanup.events.on(`overlay`,this._overlay,`click`,()=>{this.hide()}),t&&this.cleanup.events.on(`esc`,document,`keydown`,e=>{e.key===`Escape`&&this.state.visible&&this.hide()}),this.cleanup.events.on(`close`,this.root,`click`,e=>{let t=e.target.dataset.action;(t===`close`||t===`cancel`)&&this.hide()})}unbindEvents(){this.cleanup?.events.clear()}_render(){let{overlay:e,animation:t,direction:n,id:r}=this.props,i=document.body;e&&i.appendChild(this._overlay),i.appendChild(this.root),i.style.overflow=`hidden`,t===`push`&&i.classList.add(`offcanvas-push-body`),s.start(`oc-show-${r}`,10,()=>{this.root&&(this._overlay&&this._overlay.classList.add(`is-active`),t===`push`&&i.classList.add(`offcanvas-push-${n}`),this.root.classList.add(`is-active`))})}_remove(){let{animation:e,direction:t,id:n}=this.props,r=document.body;this._overlay&&this._overlay.classList.remove(`is-active`),this.root.classList.remove(`is-active`),e===`push`&&r.classList.remove(`offcanvas-push-${t}`),s.start(`oc-remove-${n}`,100,()=>{this._overlay?.parentNode?.removeChild(this._overlay),this.root?.parentNode?.removeChild(this.root),e===`push`&&r.classList.remove(`offcanvas-push-body`),r.style.overflow=``})}async show(){if(this.runtime.destroyed||this.state.visible)return;let{onShow:e,onShown:n,id:r}=this.props;e&&await Promise.resolve(e()),this._render(),this._bindEvents(),(0,t.flushSync)(()=>{this.state.visible=!0}),s.start(`oc-shown-${r}`,300,()=>{this.runtime.destroyed||n&&n()})}async hide(){if(this.runtime.destroyed||!this.state.visible)return;let{onHide:e,onHidden:n}=this.props;e&&await Promise.resolve(e()),this.unbindEvents(),this._remove(),(0,t.flushSync)(()=>{this.state.visible=!1}),n&&n()}onDestroy(){let{id:e}=this.props;s.cancel(`oc-show-${e}`),s.cancel(`oc-remove-${e}`),s.cancel(`oc-shown-${e}`),this.state.visible&&this.unbindEvents(),this.root?.classList.remove(`is-active`),this.root?.parentNode?.removeChild(this.root),this._overlay?.parentNode?.removeChild(this._overlay);let t=document.body;t.style.overflow=``,t.classList.remove(`offcanvas-push-body`,`offcanvas-push-${this.props.direction}`),this._overlay=null}};let gt={validate:e=>e==null||typeof e==`string`||Array.isArray(e)||C(e),message:`expects Element, Node, selector or JSX node.`},_t={ball:{default:{color:`var(--primary, #3e63dd)`,size:`10px`},type:`object`,validate:e=>e&&Object.keys(e).length===2&&typeof e.color==`string`&&typeof e.size==`string`,message:`expects an object with two string properties: "color" and "size".`},from:{default:null,...gt},to:{default:null,...gt},direction:{default:`center`,type:`string`,enum:[`center`,`top-right`,`top-left`,`bottom-right`,`bottom-left`]},showDelay:{default:0,type:`number`},hideDelay:{default:0,type:`number`},onShow:{default:null,types:[`function`,`null`]},onHidden:{default:null,types:[`function`,`null`]}};var vt=class{constructor(e){if(!S())throw Error(`Parabola: DOM render environment is required.`);this.options=g(e,_t,`Parabola.options`),this._init(this.options)}_init(e){this.hidden=!1,this._ball=null,this._animationId=null;let t=O(e.from,`Parabola.from`),n=O(e.to,`Parabola.to`);this._fromEl=t,this._toEl=n,this._createBall(e)}_createBall(e){if(this.hidden||this._ball)return;let{color:n,size:r}=e.ball;this._ball=(0,t.jsx)(`div`,{className:`parabola-ball`,style:{backgroundColor:n,width:r,height:r,position:`fixed`,borderRadius:`50%`,transform:`translate(-50%, -50%)`,pointerEvents:`none`,zIndex:`9999`,opacity:`1`}}),document.body.appendChild(this._ball)}_calculatePath(e){let t=this._fromEl?.getBoundingClientRect(),n=this._toEl?.getBoundingClientRect();if(!t||!n)return null;let{left:r,top:i,width:a,height:o}=t,{left:s,top:c,width:l,height:u}=n,d,f;switch(e.direction){case`top-left`:d=r+a*.2,f=i+o*.2;break;case`top-right`:d=r+a*.8,f=i+o*.2;break;case`bottom-left`:d=r+a*.2,f=i+o*.8;break;case`bottom-right`:d=r+a*.8,f=i+o*.8;break;default:d=r+a/2,f=i+o/2}let p=s+l/2,m=c+u/2;return{startX:d,startY:f,endX:p,endY:m}}_easeOutCubic(e){return 1-(1-e)**3}_animate(e,t,n,r,i=800){if(this.hidden)return;let a=performance.now(),o=n-e,s=r-t,c=n=>{if(this.hidden)return;let r=n-a,l=Math.min(r/i,1),u=this._easeOutCubic(l),d=e+o*u,f=t+-100*Math.sin(Math.PI*u)+s*u,p=1-l;this._ball.style.left=`${d}px`,this._ball.style.top=`${f}px`,this._ball.style.opacity=`${p}`,this._ball.style.transform=`translate(-50%, -50%) scale(${1-u*.3})`,l<1?this._animationId=requestAnimationFrame(c):this.destroy()};this._animationId=requestAnimationFrame(c)}async show(){return this.hidden?!1:new Promise(e=>{s.start(`show`,this.options.showDelay,()=>{if(this.hidden){e(!1);return}let t=this._calculatePath(this.options);if(!t){this.destroy(),e(!1);return}this._ball.style.left=`${t.startX}px`,this._ball.style.top=`${t.startY}px`,this.options.onShow&&this.options.onShow(),this._animate(t.startX,t.startY,t.endX,t.endY),e(!0)})})}destroy(){this.hidden||(this._ball?.remove(),s.cancel(`show`),this._animationId&&cancelAnimationFrame(this._animationId),this._ball=null,this._fromEl=null,this._toEl=null,this.hidden=!0,this.options.onHidden&&this.options.onHidden())}start(){return this.show()}};let Z={data:{default:null,validate:e=>e==null||Array.isArray(e),message:`expects an array or null.`},loop:{default:!0,type:`boolean`},autoplay:{default:!0,type:`boolean`},delay:{default:3e3,type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},lazyload:{default:!0,type:`boolean`},pagination:{default:!0,type:`boolean`},navigation:{default:!0,type:`boolean`},speed:{default:300,type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},touchRatio:{default:1,type:`number`,validate:e=>e>0,message:`expects a number greater than 0.`},touchAngle:{default:45,type:`number`,validate:e=>e>=0&&e<=90,message:`expects a number between 0 and 90.`},longSwipesMs:{default:300,type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},longSwipesRatio:{default:.05,type:`number`,validate:e=>e>=0&&e<=1,message:`expects a number between 0 and 1.`},preventClick:{default:!0,type:`boolean`}},yt={validate:e=>!e||typeof e!=`object`||Array.isArray(e)?!1:(e.image==null||typeof e.image==`string`)&&(e.url==null||typeof e.url==`string`)&&(e.title==null||typeof e.title==`string`)&&(e.sort==null||typeof e.sort==`number`)&&(e.blank==null||typeof e.blank==`boolean`)&&(e.children==null||A(e.children)),message:`expects items with optional image, url, title, sort, blank and children fields.`};function bt(e){return!!e?.closest?.(`a, button, input, textarea, select, label, [data-swiper-ignore]`)}function Q(e,t=0){let n=Number(e);return Number.isFinite(n)?n:t}function xt(e,t){return T(e,t)}function St(e){let t=M(`.j-swiper`,e);return h(`container`,t,{validate:e=>e.length===1,message:`expects exactly one .j-swiper descendant.`},`Swiper`),t[0]}var Ct=class extends V{constructor(e,n={}){let r=g(n,Z,`Swiper.options`);super(r),this.dom.container=e,this._built=!1,this.dom.mountTarget=null,this.dom.createdRoot=!1,this.dom.createdSlides=!1,this.dom.wrapper=null,this.dom.slides=[],this.dom.pagination=null,this.dom.prevButton=null,this.dom.nextButton=null,this.dom.bullets=[],this.dom.createdPagination=!1,this.dom.createdPrevButton=!1,this.dom.createdNextButton=!1,this.runtime.logs=[],this.runtime.startTarget=null,this.runtime.touching=!1,this.runtime.scrolling=!1,this.runtime.swiping=!1,this.runtime.clickPrevented=!1,this.runtime.timer=null,this.runtime.imageCleanups=new Set,this.runtime.realCount=0,this.state=(0,t.createDeepStore)({index:0,trackIndex:0,transform:0,animating:!1,width:0})}build(){if(this.runtime.destroyed)throw Error(`Swiper.build: instance destroyed`);if(this._built)return this;if(!S())throw Error(`Swiper: DOM render environment is required.`);let e=Array.isArray(this.props.data),n=k(this.dom.container,`Swiper`),r=null,i=null;e?(i=n,r=(0,t.h)(`div`,{className:`j-swiper`}),i.appendChild(r)):r=St(n);try{this.dom.root=r,this.dom.mountTarget=i,this.dom.createdRoot=e,this.dom.createdSlides=e;let t=e?this.createDataView(r,this.props.data):j(`.swiper-wrapper`,r);h(`wrapper`,t,{validate:w,message:`expects .swiper-wrapper in the root element.`},`Swiper`),this.dom.wrapper=t,this.dom.slides=M(`.swiper-slide`,t),this.dom.pagination=j(`.swiper-pagination`,r),this.dom.prevButton=j(`.swiper-navigation.is-prev`,r),this.dom.nextButton=j(`.swiper-navigation.is-next`,r),this.dom.bullets=[],this.dom.createdPagination=!1,this.dom.createdPrevButton=!1,this.dom.createdNextButton=!1,this.runtime.realCount=this.dom.slides.length,this._built=!0,this.dom.slides.length>0&&this.onInit()}catch(e){throw this.destroy(),e}return this.emit(`init`,this.props),this}set index(e){this.setState({index:Q(e)})}set trackIndex(e){this.setState({trackIndex:Q(e)})}set transform(e){this.setState({transform:Q(e)})}set animating(e){this.setState({animating:!!e})}set width(e){this.setState({width:Q(e)})}get realCount(){return this.runtime?.destroyed?0:this.runtime?.realCount||0}get realIndex(){return this.toRealIndex()}assertBuilt(e){if(!this._built)throw Error(`Swiper.${e}: call build() first.`)}createDataView(e,n){let r=this.normalizeData(n),i=(0,t.h)(`div`,{className:`swiper-wrapper`,"aria-live":`polite`});return e.textContent=``,r.forEach((e,t)=>{i.appendChild(this.createDataSlide(e,t))}),e.appendChild(i),i}normalizeData(e){e.forEach((e,t)=>{h(String(t),e,yt,`Swiper.options.data`)});let t=e.map((e,t)=>({...e,blank:e.blank!==!1,index:t}));return t.some(e=>e.sort!=null)?t.sort((e,t)=>e.sort==null&&t.sort==null?e.index-t.index:e.sort==null?1:t.sort==null?-1:e.sort-t.sort||e.index-t.index):t}createDataSlide(e,n){let r=(0,t.h)(e.url?`a`:`div`,{className:`swiper-slide`,href:e.url||void 0,target:e.url?e.blank?`_blank`:`_self`:void 0,"data-swiper-index":String(n),role:`group`,"aria-label":`Slide ${n+1}`});if(e.children!=null)return r.append(...xt(e.children,{swiper:this,item:e,index:n})),r;if(e.image){let n=(0,t.h)(`img`,{className:`swiper-image`,alt:e.title||``,loading:`lazy`});this.props.lazyload?n.dataset.lazy=e.image:n.src=e.image,r.appendChild(n)}return e.title&&r.appendChild((0,t.h)(`span`,{className:`swiper-slide-title`,children:e.title})),r}onInit(){this.dom.wrapper.setAttribute(`aria-live`,`polite`),this.updateSize(),this.props.loop&&this.realCount>1&&this.initLoop(),this.setupStyles(),this.setTrackIndex(+!!this.props.loop,!1),this.render(!1),this.bindEvents(),this.props.pagination&&this.initPagination(),this.props.navigation&&this.initNavigation(),this.props.lazyload&&this.loadImages(),this.props.autoplay&&this.play()}onDestroy(){this.pause(),this.clearImageCleanups(),this.cleanup.events.clear(),this.cleanup.bindings?.(),this.cleanup.bindings=null,this.cleanup.navBindings?.(),this.cleanup.navBindings=null,this.dom.wrapper&&M(`[data-clone]`,this.dom.wrapper).forEach(e=>e.remove()),this.dom.createdPagination&&this.dom.pagination?.remove(),this.dom.createdPrevButton&&this.dom.prevButton?.remove(),this.dom.createdNextButton&&this.dom.nextButton?.remove(),this.dom.createdRoot&&this.dom.root?.remove(),this._built=!1}updateSize(){this.assertBuilt(`updateSize`),this.width=this.dom.root.clientWidth||this.dom.root.offsetWidth}refreshSlides(){this.dom.slides=M(`.swiper-slide`,this.dom.wrapper),this.runtime.realCount=this.dom.slides.filter(e=>!e.hasAttribute(`data-clone`)).length}initLoop(){let e=this.dom.slides[0].cloneNode(!0),t=this.dom.slides[this.dom.slides.length-1].cloneNode(!0);e.setAttribute(`data-clone`,``),t.setAttribute(`data-clone`,``),e.removeAttribute(`data-swiper-index`),t.removeAttribute(`data-swiper-index`),this.dom.wrapper.appendChild(e),this.dom.wrapper.insertBefore(t,this.dom.slides[0]),this.refreshSlides()}setupStyles(){this.dom.root.style.setProperty(`--swiper-slide-width`,`${this.state.width}px`)}reInitView(){this.pause(),this.clearImageCleanups(),this.cleanup.bindings?.(),this.cleanup.bindings=null,this.cleanup.navBindings?.(),this.cleanup.navBindings=null,this.cleanup.events.clear(),M(`[data-clone]`,this.dom.wrapper).forEach(e=>e.remove()),this.refreshSlides(),this.props.loop&&this.realCount>1&&this.initLoop(),this.updateSize(),this.setupStyles(),this.setTrackIndex(this.trackIndexForRealIndex(this.state.index),!1),this.render(!1),this.bindEvents(),this.props.pagination?this.initPagination():this.clearPagination(),this.props.navigation?this.initNavigation():this.clearNavigation(),this.props.lazyload&&this.loadImages(),this.props.autoplay&&this.play()}clearPagination(){this.cleanup.bindings?.(),this.cleanup.bindings=null,this.dom.bullets.forEach((e,t)=>{this.cleanup.events.off(`bullet:${t}:click`),this.cleanup.events.off(`bullet:${t}:keydown`)}),this.dom.bullets=[],this.dom.createdPagination?(this.dom.pagination?.remove(),this.dom.pagination=null,this.dom.createdPagination=!1):this.dom.pagination&&(this.dom.pagination.textContent=``)}clearNavigation(){this.cleanup.navBindings?.(),this.cleanup.navBindings=null,this.cleanup.events.off(`nav:prev`),this.cleanup.events.off(`nav:next`),this.dom.createdPrevButton&&(this.dom.prevButton?.remove(),this.dom.prevButton=null,this.dom.createdPrevButton=!1),this.dom.createdNextButton&&(this.dom.nextButton?.remove(),this.dom.nextButton=null,this.dom.createdNextButton=!1)}bindEvents(){this.cleanup.events.on(`touchstart`,this.dom.wrapper,`touchstart`,e=>{e.touches[0]&&this.onStart(e.touches[0],e.target)},{passive:!0}),this.cleanup.events.on(`touchmove`,this.dom.wrapper,`touchmove`,e=>{e.touches[0]&&this.onMove(e.touches[0],e)},{passive:!1}),this.cleanup.events.on(`touchend`,this.dom.wrapper,`touchend`,e=>{e.changedTouches[0]&&this.pushLog(e.changedTouches[0]),this.onEnd()}),this.cleanup.events.on(`touchcancel`,this.dom.wrapper,`touchcancel`,()=>{this.resetDrag(!0)}),this.cleanup.events.on(`window:touchcancel`,window,`touchcancel`,()=>{this.resetDrag(!0)}),this.cleanup.events.on(`mousedown`,this.dom.wrapper,`mousedown`,e=>{e.button===0&&(this.onStart(e,e.target),this.dom.wrapper.style.cursor=`grabbing`)}),this.cleanup.events.on(`mousemove`,this.dom.wrapper,`mousemove`,e=>{e.buttons===1&&this.onMove(e,e)}),this.cleanup.events.on(`window:mousemove`,window,`mousemove`,e=>{this.runtime.touching&&e.buttons===1&&this.onMove(e,e)}),this.cleanup.events.on(`mouseup`,this.dom.wrapper,`mouseup`,e=>{this.dom.wrapper.style.cursor=`grab`,this.pushLog(e),this.onEnd()}),this.cleanup.events.on(`window:mouseup`,window,`mouseup`,e=>{this.runtime.touching&&(this.dom.wrapper.style.cursor=`grab`,this.pushLog(e),this.onEnd())}),this.cleanup.events.on(`wrapper:mouseleave`,this.dom.wrapper,`mouseleave`,()=>{this.dom.wrapper.style.cursor=`grab`}),this.cleanup.events.on(`click`,this.dom.wrapper,`click`,e=>{!this.runtime.clickPrevented||!this.props.preventClick||(e.preventDefault(),e.stopPropagation(),this.runtime.clickPrevented=!1)},{capture:!0}),this.cleanup.events.on(`dragstart`,this.dom.wrapper,`dragstart`,e=>e.preventDefault()),this.cleanup.events.on(`transitionend`,this.dom.wrapper,`transitionend`,e=>this.onTransitionEnd(e)),this.cleanup.events.on(`window:resize`,window,`resize`,()=>this.update(null,{force:!0})),this.cleanup.events.on(`root:mouseenter`,this.dom.root,`mouseenter`,()=>this.pause()),this.cleanup.events.on(`root:mouseleave`,this.dom.root,`mouseleave`,()=>this.resume())}onStart(e,t=null){this.state.animating||(this.runtime.logs=[],this.pushLog(e),this.runtime.startTarget=t,this.runtime.touching=!0,this.runtime.scrolling=!1,this.runtime.swiping=!1,this.runtime.clickPrevented=!1,this.pause(),this.dom.wrapper.style.transition=`none`)}onMove(e,t){if(!this.runtime.touching||this.runtime.scrolling||this.state.animating)return;this.pushLog(e);let n=this.getOffset(),r=Math.abs(n.x),i=Math.abs(n.y);if(!(r<6&&i<6)){if(!this.runtime.swiping)if(Math.atan2(i,r)*180/Math.PI<this.props.touchAngle)this.runtime.swiping=!0,this.runtime.clickPrevented=bt(this.runtime.startTarget);else{this.runtime.scrolling=!0,this.resetDrag(!0);return}this.runtime.swiping&&(t.preventDefault(),this.transform=-this.state.trackIndex*this.state.width+n.x*this.props.touchRatio,this.render(!1))}}onEnd(){if(!this.runtime.touching)return;if(this.runtime.touching=!1,!this.runtime.swiping){this.resetDrag(!0);return}let e=this.getDuration(),t=this.getOffset().x,n=this.state.trackIndex;if(e>this.props.longSwipesMs){let e=Math.ceil(Math.abs(t)/this.state.width-this.props.longSwipesRatio);e>0&&(n=this.state.trackIndex+e*(t>0?-1:1))}else{let e=Math.abs(t)/this.state.width,r=e>=this.props.longSwipesRatio?Math.max(1,Math.ceil(e-this.props.longSwipesRatio)):0;r>0&&(n=t>0?this.state.trackIndex-r:this.state.trackIndex+r)}this.slideToTrack(n),this.runtime.logs=[],this.resume()}resetDrag(e=!0){let t=this.state.trackIndex===0?0:-this.state.trackIndex*this.state.width,n=e&&this.state.transform!==t;this.runtime.touching=!1,this.runtime.scrolling=!1,this.runtime.swiping=!1,this.runtime.logs=[],this.runtime.startTarget=null,this.transform=t,this.render(n),this.resume()}onTransitionEnd(e){e&&(e.target!==this.dom.wrapper||e.propertyName!==`transform`)||(this.animating=!1,this.props.loop&&(this.state.trackIndex===0?(this.setTrackIndex(this.realCount,!1),this.render(!1)):this.state.trackIndex===this.dom.slides.length-1&&(this.setTrackIndex(1,!1),this.render(!1))))}pushLog(e){this.runtime.logs.push({x:e.pageX??e.clientX??0,y:e.pageY??e.clientY??0,time:Date.now()}),this.runtime.logs.length>5&&this.runtime.logs.shift()}getDuration(){return this.runtime.logs.length===0?0:this.runtime.logs[this.runtime.logs.length-1].time-this.runtime.logs[0].time}getOffset(){if(this.runtime.logs.length===0)return{x:0,y:0};let e=this.runtime.logs[0],t=this.runtime.logs[this.runtime.logs.length-1];return{x:t.x-e.x,y:t.y-e.y}}toRealIndex(e=this.state.trackIndex){return this.realCount?this.props.loop?e===0?this.realCount-1:e===this.dom.slides.length-1?0:e-1:e:0}trackIndexForRealIndex(e){if(!this.realCount)return 0;let t=Math.max(0,Math.min(e,this.realCount-1));return this.props.loop&&this.realCount>1?t+1:t}setTrackIndex(e,t=!0){let n=Q(e);this.setState({trackIndex:n,index:this.toRealIndex(n),transform:-n*this.state.width}),t!=null&&this.render(t)}slideTo(e){return this.slideToTrack(this.trackIndexForRealIndex(e))}slideToTrack(e){if(this.assertBuilt(`slideToTrack`),this.state.animating||this.dom.slides.length===0)return;let t=e;this.props.loop?e<0?t=0:e>=this.dom.slides.length&&(t=this.dom.slides.length-1):t=Math.max(0,Math.min(e,this.dom.slides.length-1)),this.setTrackIndex(t,!0),this.props.lazyload&&this.loadImages()}next(){this.assertBuilt(`next`),!this.state.animating&&this.slideToTrack(this.state.trackIndex+1)}prev(){this.assertBuilt(`prev`),!this.state.animating&&this.slideToTrack(this.state.trackIndex-1)}render(e){this.assertBuilt(`render`),e?(this.dom.wrapper.style.transition=`transform ${this.props.speed}ms cubic-bezier(0.25, 0.46, 0.45, 0.94)`,this.animating=!0):(this.dom.wrapper.style.transition=`none`,this.animating=!1),this.dom.wrapper.style.transform=`translate3d(${this.state.transform}px, 0, 0)`}loadImages(){this.assertBuilt(`loadImages`);let e=[this.state.trackIndex];this.state.trackIndex>0&&e.push(this.state.trackIndex-1),this.state.trackIndex<this.dom.slides.length-1&&e.push(this.state.trackIndex+1),e.forEach(e=>{let t=this.dom.slides[e];if(!t)return;let n=j(`img[data-lazy]`,t);if(!n||n.src)return;n.classList.add(`loading`),n.src=n.dataset.lazy;let r=()=>{n.onload=null,n.onerror=null,this.runtime.imageCleanups.delete(r)};this.runtime.imageCleanups.add(r),n.onload=()=>{n.classList.remove(`loading`),n.classList.add(`loaded`),r()},n.onerror=()=>{n.classList.remove(`loading`),n.classList.add(`error`),r()}})}clearImageCleanups(){this.runtime.imageCleanups?.forEach(e=>e()),this.runtime.imageCleanups?.clear()}initPagination(){this.dom.pagination?this.dom.pagination.classList.add(`is-horizontal`,`is-clickable`,`is-bullet`):(this.dom.pagination=(0,t.h)(`div`,{className:`swiper-pagination is-horizontal is-clickable is-bullet`}),this.dom.root.appendChild(this.dom.pagination),this.dom.createdPagination=!0),this.dom.pagination.textContent=``,this.dom.bullets=[];for(let e=0;e<this.realCount;e++){let n=(0,t.h)(`button`,{type:`button`,className:`swiper-pagination-indicator swiper-pagination-bullet`,"aria-label":`Go to slide ${e+1}`});this.cleanup.events.on(`bullet:${e}:click`,n,`click`,()=>{this.slideTo(e)}),this.cleanup.events.on(`bullet:${e}:keydown`,n,`keydown`,t=>{t.key!==`Enter`&&t.key!==` `||(t.preventDefault(),this.slideTo(e))}),this.dom.bullets.push(n),this.dom.pagination.appendChild(n)}this.cleanup.bindings=(0,t.createRoot)(e=>(this.dom.bullets.forEach((e,n)=>{(0,t.bindClass)(e,`is-active`,()=>this.state.index===n),(0,t.bindAttr)(e,`aria-current`,()=>this.state.index===n?`true`:null)}),e))}initNavigation(){this.dom.prevButton=this.ensureNavigation(`prev`,`arrow-left`),this.dom.nextButton=this.ensureNavigation(`next`,`arrow-right`),this.cleanup.events.on(`nav:prev`,this.dom.prevButton,`click`,()=>this.prev()),this.cleanup.events.on(`nav:next`,this.dom.nextButton,`click`,()=>this.next()),this.props.loop||(this.cleanup.navBindings=(0,t.createRoot)(e=>((0,t.bindClass)(this.dom.prevButton,`is-disabled`,()=>this.state.trackIndex<=0),(0,t.bindAttr)(this.dom.prevButton,`disabled`,()=>this.state.trackIndex<=0?``:null),(0,t.bindClass)(this.dom.nextButton,`is-disabled`,()=>this.state.trackIndex>=this.dom.slides.length-1),(0,t.bindAttr)(this.dom.nextButton,`disabled`,()=>this.state.trackIndex>=this.dom.slides.length-1?``:null),e)))}ensureNavigation(e,n){let r=e===`prev`?`createdPrevButton`:`createdNextButton`,i=`swiper-navigation is-${e}`,a=j(`.swiper-navigation.is-${e}`,this.dom.root);return a?a.matches(`button`)||(a.setAttribute(`role`,`button`),a.setAttribute(`tabindex`,`0`),a.classList.add(`swiper-navigation`,`is-${e}`)):(a=(0,t.h)(`button`,{type:`button`,className:i}),this.dom.root.appendChild(a),this.dom[r]=!0),a.setAttribute(`aria-label`,e===`prev`?`Previous slide`:`Next slide`),a.querySelector(`svg`)||(a.textContent=``,a.appendChild(L(n))),a}play(){if(this.assertBuilt(`play`),this.runtime.destroyed||this.runtime.timer||this.realCount<=1)return;let e=Math.max(this.props.delay,16);this.runtime.timer=setInterval(()=>this.next(),e)}pause(){this.runtime.timer&&(clearInterval(this.runtime.timer),this.runtime.timer=null)}resume(){this.runtime.destroyed||this.props.autoplay&&!this.runtime.timer&&this.play()}restartAutoplay(){this.pause(),this.props.autoplay&&this.play()}update(e={},{force:t=!1}={}){if(this.runtime.destroyed)throw Error(`Component.update: instance destroyed`);this.assertBuilt(`update`);let n=e&&typeof e==`object`&&!Array.isArray(e)?e:{},r=g(Object.assign({},this.props,n),Z,`Swiper.options`),i={};return Object.keys(n).forEach(e=>{i[e]=r[e]}),this.props=r,this.emit(`beforeUpdate`,i,{force:t}),this.onUpdate(i,{force:t}),this.emit(`afterUpdate`,i,{force:t}),this}onUpdate(e={}){if(e&&Object.prototype.hasOwnProperty.call(e,`data`)){this.updateData(e.data);return}if([`loop`,`pagination`,`navigation`,`lazyload`].some(t=>Object.prototype.hasOwnProperty.call(e,t))){this.reInitView();return}this.updateSize(),this.setupStyles(),this.setTrackIndex(this.trackIndexForRealIndex(this.state.index),!1),Object.prototype.hasOwnProperty.call(e,`autoplay`)||Object.prototype.hasOwnProperty.call(e,`delay`)?this.restartAutoplay():this.props.autoplay?this.resume():this.pause()}updateData(e=this.props.data){if(this.runtime.destroyed)throw Error(`Swiper.updateData: instance destroyed`);if(this.assertBuilt(`updateData`),!this.dom.createdRoot)throw Error(`Swiper.updateData: not supported on DOM-bound instances.`);if(h(`data`,e,Z.data,`Swiper.options`),!Array.isArray(e))return this.props.data=e,this.reInitView(),this;this.props.data=e;let t=this.state.index;this.pause(),this.clearImageCleanups(),this.cleanup.bindings?.(),this.cleanup.bindings=null,this.cleanup.navBindings?.(),this.cleanup.navBindings=null,this.cleanup.events.clear();let n=this.normalizeData(e);return this.dom.wrapper.textContent=``,n.forEach((e,t)=>{this.dom.wrapper.appendChild(this.createDataSlide(e,t))}),this.refreshSlides(),this.runtime.realCount=this.dom.slides.length,this.setState({index:Math.min(t,Math.max(0,this.realCount-1))}),this.reInitView(),this}};let wt={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():_():e??_()},direction:{default:`top`,type:`string`,enum:[`top`,`bottom`,`left`,`right`]},active:{default:0,types:[`number`,`string`]},disabled:{default:[],types:[`number`,`string`,`array`]},onChange:{default:null,types:[`function`,`null`]},tabs:{default:[],type:`array`},onAdd:{default:null,types:[`function`,`null`]},onRemove:{default:null,types:[`function`,`null`]}},Tt={type:`object`,validate:e=>!!e&&A(e.title)&&A(e.panel),message:`expects an object with renderable title and panel: string, Node, array, function or null.`};function Et(e){return Array.isArray(e)?e.map(e=>({...e})):[]}var Dt=class extends V{constructor(e,n={}){if(!S())throw Error(`Tabs: DOM render environment is required.`);let r=k(e,`Tabs`),i=g(n,wt,`Tabs`);super(i),this.dom.container=r,this.state=(0,t.createDeepStore)({current:{index:-1,name:null},disabled:this._parseDisabled(i.disabled),isVertical:i.direction===`left`||i.direction===`right`,draggable:!1});try{this.onInit(i)}catch(e){throw this.destroy(),e}}onInit(e){this.root=this.buildRoot(e),this.rebuildItems(),this._activate(e.active,!1),this.bindEvents(),this._initDrag()}buildRoot(e){let{id:n,direction:r}=e,i=(0,t.jsx)(`div`,{className:`tab-wrap`,children:(0,t.jsx)(`nav`,{className:`tab-list`})}),a=(0,t.jsx)(`div`,{className:`tab-panel`});return(0,t.jsx)(`div`,{className:`j-tabs is-${r}`,id:n,children:[i,a]})}rebuildItems(){let e=j(`.tab-list`,this.root),n=j(`.tab-panel`,this.root);if(!e||!n)return;e.textContent=``,n.textContent=``,this.dom.tabs=[],this.dom.panels=[];let r=document.createDocumentFragment(),i=document.createDocumentFragment();this.props.tabs.forEach(e=>{let n=(0,t.jsx)(`div`,{className:`tab-item`,"data-tab":e.name||_(),children:(0,t.jsx)(`span`,{children:T(e.title,{tabs:this,item:e})})});this.dom.tabs.push(n),this.dom.panels.push((0,t.jsx)(`div`,{className:`panel-item`,role:`tabpanel`,children:(0,t.jsx)(`div`,{children:T(e.panel,{tabs:this,item:e})})})),r.append(n),i.append(this.dom.panels[this.dom.panels.length-1])}),e.append(r),n.append(i),this.cleanup.bindings?.(),this.cleanup.bindings=(0,t.createRoot)(e=>(this.dom.tabs.forEach((e,n)=>{let r=e.dataset.tab;(0,t.bindClass)(e,`is-active`,()=>this.state.current.index===n),(0,t.bindClass)(e,`is-disabled`,()=>this.state.disabled.names.includes(r)),(0,t.bindAttr)(e,`aria-selected`,()=>this.state.current.index===n),(0,t.bindAttr)(e,`aria-disabled`,()=>this.state.disabled.names.includes(r))}),this.dom.panels.forEach((e,n)=>{(0,t.bindClass)(e,`is-active`,()=>this.state.current.index===n),(0,t.bindAttr)(e,`aria-hidden`,()=>this.state.current.index!==n)}),e))}_parseDisabled(e){if(e==null)return{names:[],indexes:[]};let t=e=>typeof e==`number`?this.props.tabs[e]?.name||null:typeof e==`string`?e:null,n=Array.isArray(e)?e.map(t).filter(Boolean):(()=>{let n=t(e);return n?[n]:[]})();return this._createDisabledState(n)}_createDisabledState(e){let t=Array.from(new Set(e));return{names:t,indexes:t.map(e=>this.props.tabs.findIndex(t=>t.name===e)).filter(e=>e>=0)}}_syncCurrent(e){this.state.current={index:e,name:e>=0&&e<this.dom.tabs.length&&this.dom.tabs[e]?.dataset.tab||null}}get activeIndex(){return this.state.current.index}get disabledNames(){return this.state.disabled.names}bindEvents(){this.unbindEvents();let e=j(`.tab-list`,this.root);e&&this.cleanup.events.on(`tabClick`,e,`click`,e=>{let t=e.target.closest(`.tab-item`);if(!t)return;let n=t.dataset.tab;n&&!this.state.disabled.names.includes(n)&&this.activate(n)})}unbindEvents(){this.cleanup.events.clear()}assertActive(e){if(this.runtime.destroyed)throw Error(`Tabs.${e}: instance has been destroyed.`)}_getIndex(e){return typeof e==`number`?e:typeof e==`string`?this.dom.tabs.findIndex(t=>t.dataset.tab===e):-1}async _activate(e,n=!0){let r=this._getIndex(e);if(!(r<0||r>=this.dom.tabs.length||this.state.disabled.names.includes(this.dom.tabs[r]?.dataset.tab)||this.state.current.index===r)&&((0,t.flushSync)(()=>{this._syncCurrent(r)}),n&&this.props.onChange)){let e=this.dom.tabs[r],t=this.dom.panels[r];await Promise.resolve(this.props.onChange(r,e?.dataset.tab||r,e,t))}}async activate(e){this.assertActive(`activate`),await this._activate(e,!0)}render(){this.assertActive(`render`),(0,t.insert)(this.dom.container,()=>this.root)}async add(e){this.assertActive(`add`),h(`tabConfig`,e,Tt,`Tabs.add`),e.name=e.name||_(),this.props.tabs=[...Et(this.props.tabs),e],this.rebuildItems(),this.syncActiveNames(this.resolveActiveNames(this.props.active)),this.bindEvents(),this._refreshDrag();let{onAdd:t}=this.props;if(t){let n=this.props.tabs.length-1;await Promise.resolve(t(n,e,this.dom.tabs[n],this.dom.panels[n]))}}async delete(e){if(this.assertActive(`delete`),this.props.tabs.length<=1)return;let n=this._getIndex(e);if(n<0||n>=this.props.tabs.length)return;let r=this.props.tabs[n].name,{onRemove:i}=this.props;this.props.tabs=this.props.tabs.filter((e,t)=>t!==n),this.state.current.index>=this.props.tabs.length?(0,t.flushSync)(()=>{this._syncCurrent(this.props.tabs.length-1)}):this.state.current.index>n&&(0,t.flushSync)(()=>{this._syncCurrent(this.state.current.index-1)}),this.rebuildItems(),this.bindEvents(),this._refreshDrag(),i&&await Promise.resolve(i(n,r))}disable(e){this.assertActive(`disable`);let n=typeof e==`number`?this.dom.tabs[e]?.dataset.tab:e;n&&!this.state.disabled.names.includes(n)&&(0,t.flushSync)(()=>{this.state.disabled=this._createDisabledState([...this.state.disabled.names,n])})}enable(e){this.assertActive(`enable`);let n=typeof e==`number`?this.dom.tabs[e]?.dataset.tab:e;n&&(0,t.flushSync)(()=>{this.state.disabled=this._createDisabledState(this.state.disabled.names.filter(e=>e!==n))})}resolveActiveNames(e){return e==null?-1:typeof e==`number`?e:typeof e==`string`?this.dom.tabs.findIndex(t=>t.dataset.tab===e):0}syncActiveNames(e){(0,t.flushSync)(()=>{this._syncCurrent(e)})}async reInit(e={}){this.assertActive(`reInit`),Object.assign(this.props,g(e,wt,`Tabs`)),(0,t.flushSync)(()=>{this.state.disabled=this._parseDisabled(this.props.disabled)}),this.rebuildItems(),this.syncActiveNames(this.resolveActiveNames(this.props.active)),this.bindEvents(),this._refreshDrag()}get _dragContainer(){return this.root?j(`.tab-wrap`,this.root):null}get _dragInner(){return this.root?j(`.tab-list`,this.root):null}_initDrag(){let{direction:e}=this.props;if(!this._dragContainer||!this._dragInner)return;let n=e===`left`||e===`right`,r=n?this._dragInner.scrollHeight>this._dragContainer.clientHeight+5:this._dragInner.scrollWidth>this._dragContainer.clientWidth+5;if((0,t.flushSync)(()=>{this.state.isVertical=n,this.state.draggable=r}),!r){this._removeDragEvents();return}this._bindDragEvents(),this.cleanup.events.on(`resize`,window,`resize`,()=>{cancelAnimationFrame(this._resizeRaf),this._resizeRaf=requestAnimationFrame(()=>{this._refreshDrag()})})}_bindDragEvents(){this._removeDragEvents();let e=this._dragContainer,t=this._dragInner,n=this.state.isVertical,r=0,i=0,a=0,o=!1,s=e=>n?e.touches?e.touches[0].pageY:e.pageY:e.touches?e.touches[0].pageX:e.pageX,c=o=>{this.isDragging=!0,t.classList.add(`dragging`),r=s(o),a=r,i=n?e.scrollTop:e.scrollLeft,this._velocity=0,cancelAnimationFrame(this.raf)},l=t=>{if(!this.isDragging)return;t.preventDefault();let c=s(t),l=r-c;this._velocity=a-c,a=c,o||(o=!0,requestAnimationFrame(()=>{o=!1,n?e.scrollTop=i+l:e.scrollLeft=i+l}))},u=()=>{this.isDragging&&(this.isDragging=!1,t.classList.remove(`dragging`),this._startInertiaScroll())};this.cleanup.events.on(`drag:mousedown`,t,`mousedown`,c),this.cleanup.events.on(`drag:touchstart`,t,`touchstart`,c,{passive:!0}),this.cleanup.events.on(`drag:mousemove`,window,`mousemove`,l,{passive:!1}),this.cleanup.events.on(`drag:touchmove`,window,`touchmove`,l,{passive:!1}),this.cleanup.events.on(`drag:mouseup`,window,`mouseup`,u),this.cleanup.events.on(`drag:touchend`,window,`touchend`,u)}_startInertiaScroll(){let e=this._dragContainer,t=this._velocity,n=this.state.isVertical,r=performance.now(),i=a=>{let o=a-r;r=a,t*=.92,!(Math.abs(t)<.3)&&(n?e.scrollTop+=t*o*.05:e.scrollLeft+=t*o*.05,this.raf=requestAnimationFrame(i))};this.raf=requestAnimationFrame(i)}_removeDragEvents(){this.cleanup.events.off(`drag:mousedown`),this.cleanup.events.off(`drag:touchstart`),this.cleanup.events.off(`drag:mousemove`),this.cleanup.events.off(`drag:touchmove`),this.cleanup.events.off(`drag:mouseup`),this.cleanup.events.off(`drag:touchend`)}_refreshDrag(){this._initDrag()}onDestroy(){this.unbindEvents(),this._removeDragEvents(),this.cleanup.bindings?.(),this.cleanup.bindings=null,cancelAnimationFrame(this.raf),cancelAnimationFrame(this._resizeRaf),this.cleanup.events.off(`resize`),this.root?.parentNode&&this.root.parentNode.removeChild(this.root)}},Ot={en:{b:`Back`,t:`Customize`,d:`Customize your UI experience.`,theme:`Theme`,radius:`Radius`,shadow:`Shadow`,font:`Font`,mode:`Mode`,gray:`Gray`,olive:`Olive`,tomato:`Tomato`,ruby:`Ruby`,pink:`Pink`,violet:`Violet`,indigo:`Indigo`,blue:`Blue`,teal:`Teal`,grass:`Grass`,mint:`Mint`,lime:`Lime`,yellow:`Yellow`,orange:`Orange`,gold:`Gold`,n:`None`,sm:`Small`,md:`Medium`,lg:`Large`,xl:`XL`,round:`Round`,light:`Light`,dark:`Dark`,auto:`Auto`},zh:{b:`返回`,t:`自定义主题`,d:`自定义您的UI体验。`,theme:`主题`,radius:`圆角`,shadow:`阴影`,font:`字号`,mode:`模式`,gray:`灰色`,olive:`橄榄绿`,tomato:`番茄红`,ruby:`红宝石`,pink:`粉红`,violet:`紫罗兰`,indigo:`靛蓝`,blue:`蓝色`,teal:`青色`,grass:`草绿`,mint:`薄荷绿`,lime:`酸橙绿`,yellow:`黄色`,orange:`橙色`,gold:`金色`,n:`无`,sm:`小`,md:`中`,lg:`大`,xl:`更大`,round:`圆角`,light:`浅色`,dark:`深色`,auto:`自动`}},kt=class{constructor(e={}){if(!S())throw Error(`Theme: DOM render environment is required.`);this.options={mode:`dark`,render:`dark`,theme:`indigo`,radius:`sm`,shadow:`sm`,font:`sm`,key:`jui-theme`,...e},this.languages=Ot,this._init()}_init(){this.cleanup={events:P()},this._destroyed=!1,this.mq=window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`),this._loadConfig(),this._applyConfig(),this._bindEvent(),this._syncActiveButtons(document)}_t(e){return(0,n.t)(e,this.languages)}_loadConfig(){try{let e=F(this.options.key);e&&e.trim()&&(this.options=Object.assign({},this.options,JSON.parse(e)))}catch{}}_saveConfig(){let e=this.mq&&this.mq.matches?`dark`:`light`;this.options.render=this.options.mode===`auto`?e:this.options.mode;let t=JSON.stringify(this.options);ye(this.options.key,t)}_removePrefixedClasses(){let e=[],t=document.documentElement;for(let n of t.classList)(n===`light`||n===`dark`)&&e.push(n),(n.startsWith(`j-theme-`)||n.startsWith(`j-radius-`)||n.startsWith(`j-shadow-`)||n.startsWith(`j-font-`))&&e.push(n);e.length&&t.classList.remove(...e)}_applyMqClass(){let e=document.documentElement,{mode:t}=this.options;if(t===`auto`){let t=this.mq&&this.mq.matches?`dark`:`light`;e.classList.remove(`light`,`dark`),e.classList.add(t)}else e.classList.remove(`light`,`dark`),e.classList.add(t===`dark`?`dark`:`light`)}_applyConfig(){let{theme:e,radius:t,shadow:n,font:r}=this.options;this._removePrefixedClasses(),this._applyMqClass(),document.documentElement.classList.add(`j-theme-${e}`,`j-radius-${t}`,`j-shadow-${n}`,`j-font-${r}`)}_syncActiveButtons(e=document){let t=M(`.palette-item`,e);for(let e of t){let t=e.dataset.palette,n=this.options[t],r=M(`button[data-palette]`,e);for(let e of r){let t=e.dataset.palette===(n===void 0?null:n);e.classList.toggle(`is-active`,t)}}}_bindEvent(){this.cleanup.events.on(`palette`,document.body,`click`,e=>{let t=e.target.closest(`.palette-item .items > button[data-palette]`);if(!t)return;let n=t.closest(`.palette-item`);if(!n)return;let r=n.dataset.palette,i=t.dataset.palette;t.classList.contains(`is-active`)||(this.options[r]=i,this._applyConfig(),this._saveConfig(),this._syncActiveButtons())})}_unbindEvent(){this.cleanup?.events.clear()}createPanel(e=`j-theme-palette`,n=null){let r=n||[{title:this._t(`theme`),type:`theme`,buttons:[[`gray`,this._t(`gray`)],[`olive`,this._t(`olive`)],[`tomato`,this._t(`tomato`)],[`ruby`,this._t(`ruby`)],[`pink`,this._t(`pink`)],[`violet`,this._t(`violet`)],[`indigo`,this._t(`indigo`)],[`blue`,this._t(`blue`)],[`teal`,this._t(`teal`)],[`grass`,this._t(`grass`)],[`mint`,this._t(`mint`)],[`lime`,this._t(`lime`)],[`yellow`,this._t(`yellow`)],[`orange`,this._t(`orange`)],[`gold`,this._t(`gold`)]]},{title:this._t(`radius`),type:`radius`,buttons:[[`none`,this._t(`n`)],[`sm`,this._t(`sm`)],[`md`,this._t(`md`)],[`lg`,this._t(`lg`)],[`xl`,this._t(`xl`)],[`round`,this._t(`round`)]]},{title:this._t(`shadow`),type:`shadow`,buttons:[[`none`,this._t(`n`)],[`sm`,this._t(`sm`)],[`md`,this._t(`md`)],[`lg`,this._t(`lg`)]]},{title:this._t(`font`),type:`font`,buttons:[[`sm`,this._t(`sm`)],[`md`,this._t(`md`)]]},{title:this._t(`mode`),type:`mode`,buttons:[[`light`,this._t(`light`)],[`dark`,this._t(`dark`)],[`auto`,this._t(`auto`)]]}];return(0,t.jsx)(`div`,{className:e,children:[(0,t.jsx)(`div`,{style:{display:`flex`,justifyContent:`center`},children:(0,t.jsx)(`button`,{className:`j-button is-text`,"data-action":`close`,children:this._t(`b`)})}),(0,t.jsx)(`h3`,{children:this._t(`t`)}),(0,t.jsx)(`p`,{style:{marginTop:0,fontSize:`var(--text-sm, 0.875rem)`},children:this._t(`d`)}),(0,t.jsx)(`div`,{className:`palette-container`,children:r.map(e=>(0,t.jsx)(`div`,{className:`palette-item`,"data-palette":e.type,children:[(0,t.jsx)(`div`,{className:`item-title`,children:e.title}),(0,t.jsx)(`div`,{className:`items`,children:e.buttons.map(([n,r])=>(0,t.jsx)(`button`,{className:`j-button is-default${String(this.options[e.type])===String(n)?` is-active`:``}`,"data-palette":n,children:[e.type===`theme`?(0,t.jsx)(`span`,{className:`el-prefix item-hex`,style:{backgroundColor:`var(--ui-${n})`}}):null,(0,t.jsx)(`span`,{className:`button-text`,children:r})]}))})]}))})]})}setConfig(e){this.options=Object.assign({},this.options,e),this._applyConfig(),this._saveConfig(),this._syncActiveButtons(document)}destroy(){this._destroyed||(this._destroyed=!0,this._unbindEvent(),this.options={},this.languages={},this.cleanup=null,this.mq=null)}};let At={type:`string`,enum:[`info`,`success`,`warning`,`error`,`primary`]},jt={type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},Mt={type:`number`,validate:e=>e>0,message:`expects a number greater than 0.`};var $=class e{static show(n=``,r=3e3,i=`info`){if(!S())throw Error(`Toast: DOM render environment is required.`);h(`message`,n,`string`,`Toast.show`),h(`duration`,r,jt,`Toast.show`),h(`type`,i,At,`Toast.show`);let a=j(`.j-toast-container`);a||(a=(0,t.jsx)(`div`,{className:`j-toast-container`}),document.body.appendChild(a));let o=_(),s=(0,t.jsx)(`div`,{className:`j-toast is-${i}`,"data-toast":o,children:[(0,t.jsx)(`span`,{className:`toast-icon`,children:L(i===`primary`?`info`:i)}),(0,t.jsx)(`span`,{className:`toast-message`,children:n})]});a.appendChild(s),e._setTimer(o,`show`,()=>{s.classList.add(`toast-show`)},10),r>0&&e._setTimer(o,`hide`,()=>{e.hide(s)},r);let c=N(s,`click`,()=>{e.hide(s)});return e.disposers.set(s,c),s}static success(t=``,n=3e3){return e.show(t,n,`success`)}static info(t=``,n=3e3){return e.show(t,n,`info`)}static primary(t=``,n=3e3){return e.show(t,n,`primary`)}static warning(t=``,n=3e3){return e.show(t,n,`warning`)}static error(t=``,n=3e3){return e.show(t,n,`error`)}static hide(t){if(t){e.disposers.get(t)?.(),e.disposers.delete(t),t.classList.remove(`toast-show`),t.classList.add(`toast-hide`);let n=t.dataset.toast;e._setTimer(n,`remove`,()=>{t.parentNode&&t.parentNode.removeChild(t);let e=j(`.j-toast-container`);e&&e.children.length===0&&e.parentNode.removeChild(e)},300)}}static lite(n=``,r=2e3){if(!S())throw Error(`Toast: DOM render environment is required.`);h(`message`,n,`string`,`Toast.lite`),h(`duration`,r,Mt,`Toast.lite`);let i=j(`.j-toast-lite`);i&&i.remove();let a=_(),o=(0,t.jsx)(`div`,{className:`j-toast-lite`,"data-toast":a,children:n});return document.body.appendChild(o),e._setTimer(a,`show`,()=>o.classList.add(`is-shown`),10),e._setTimer(a,`hide`,()=>{o.classList.remove(`is-shown`),o.classList.add(`is-hidden`),e._setTimer(a,`remove`,()=>o.remove(),300)},r),o}static _setTimer(t,n,r,i){let a=`${t}-${n}`;return e.timers.add(a),s.start(a,i,()=>{e.timers.delete(a),r()}),a}static clearAll(){for(let t of e.timers)s.cancel(t);e.timers.clear();for(let t of e.disposers.values())t();e.disposers.clear(),j(`.j-toast-container`)?.remove(),j(`.j-toast-lite`)?.remove()}static destroyAll(){e.clearAll()}};B($,`timers`,new Set),B($,`disposers`,new Map);let Nt={name:{default:null,types:[`string`,`null`]},mode:{default:`hover`,type:`string`},position:{default:`auto`,type:`string`},offset:{default:8,type:`number`},message:{default:``,type:`string`,normalize:e=>String(e||``).trim(),validate:e=>e.length>0,message:`expects a non-empty string.`},className:{default:null,types:[`string`,`null`]},id:{default:null,types:[`string`,`null`]},delay:{default:100,types:[`number`,`object`]},hoverIntent:{default:!0,type:`boolean`}};var Pt=class{constructor(e,t={}){let n=g(t,Nt,`Tooltip.props`);this.drop=new Pe(e,{...n,content:this._buildContent(n)})}_buildContent(e){return(0,t.jsx)(`div`,{className:e.className?`j-tooltip ${e.className}`:`j-tooltip`,children:(0,t.jsx)(`div`,{className:`tooltip-message`,children:e.message})})}show(e=!0){this.drop.show(e)}hide(e=!0){this.drop.hide(e)}toggle(){this.drop.toggle()}destroy(){this.drop&&(this.drop.destroy(),this.drop=null)}};let Ft={rules:{default:{},type:`object`},messages:{default:{},type:`object`},onSubmit:{default:null,types:[`function`,`null`]}};var It=class{constructor(e,t={},n=!1){if(!S())throw Error(`Validator: DOM render environment is required.`);this.options=g(t,Ft,`Validator.options`),this._validateOptions(e,this.options,n),this._init(e),n&&this._bindEvents()}_validateOptions(e,t,n){h(`bindEvents`,n,`boolean`,`Validator`)}_init(e){this.root=O(e,`Validator.element`),this.runtime={valid:!0,message:``,destroyed:!1},this.cleanup={events:P()}}_bindEvents(){this._unbindEvents(),this.cleanup.events.on(`submit`,this.root,`submit`,e=>{e.preventDefault(),this.runtime.validate()}),this.cleanup.events.on(`reset`,this.root,`reset`,()=>{this.reset()})}_unbindEvents(){this.cleanup?.events.clear()}validate(){this.runtime.valid=!0,this.runtime.message=``;for(let e of this.root.elements){let t=e.name;if(this.options.rules[t]&&(this.runtime.valid=this._validateRule(e,t),!this.runtime.valid))break}return this.runtime.valid&&this.options.onSubmit&&this.options.onSubmit(),this.runtime.valid}_validateRule(e,t){let n=this.options.rules[t];if(e.hasAttribute(`required`)||e.hasAttribute(`minlength`)||e.hasAttribute(`maxlength`)||e.hasAttribute(`pattern`)||e.hasAttribute(`min`)||e.hasAttribute(`max`)||e.hasAttribute(`step`))return this.runtime.valid;for(let r in n){switch(r){case`required`:this.runtime.valid=this._validateRequired(e,n[r]);break;case`minLength`:this.runtime.valid=this._validateMinLength(e,n[r]);break;case`maxLength`:this.runtime.valid=this._validateMaxLength(e,n[r]);break;case`equalTo`:this.runtime.valid=this._validateEqualTo(e,n[r]);break;case`email`:this.runtime.valid=this._validateEmail(e);break;case`checked`:this.runtime.valid=this._validateCheck(e,n[r]);break;case`selected`:this.runtime.valid=this._validateSelected(e,n[r]);break;case`multiple`:this.runtime.valid=this._validateMultiple(e,n[r]);break;case`min`:this.runtime.valid=this._validateSelectMin(e,n[r]);break;case`max`:this.runtime.valid=this._validateSelectMax(e,n[r]);break;case`noSpace`:this.runtime.valid=this._validateNoSpace(e,n[r]);break;case`noChinese`:this.runtime.valid=!/[\u4e00-\u9fa5]/.test(e.value);break;case`noSpecial`:this.runtime.valid=!/[@#$%^&*]+/g.test(e.value);break;case`pattern`:this.runtime.valid=new RegExp(n[r]).test(e.value);break;case`file`:this.runtime.valid=this._validateFile(e,n[r]);break;case`minSize`:this.runtime.valid=this._validateMinSize(e,n[r]);break;case`maxSize`:this.runtime.valid=this._validateMaxSize(e,n[r]);break;case`accept`:this.runtime.valid=this._validateAccept(e,n[r]);break;case`validate`:this.runtime.valid=this._validateCustom(e,n[r]);break}if(this.runtime.valid)this._success(e);else{this._errorMsg(e,t,r);break}}return this.runtime.valid}_validateRequired(e,t){return e.value.trim().length>=1&&t===!0}_validateMinLength(e,t){return e.value.length>=t}_validateMaxLength(e,t){return e.value.length<=t}_validateEmail(e){return/^([\w-.]+@([\w-]+\.)+[\w-]{2,4})?$/.test(e.value)}_validateEqualTo(e,t){let n=this.root.elements[t];if(n==null)throw Error(`Validator: target element "${t}" not found.`);return e.value===n.value}_validateCheck(e,t){if(e.type!==`checkbox`)throw Error(`Validator: element expects a checkbox input, but ${e.type} given.`);return e.checked===t}_validateSelected(e,t){if(e.tagName!==`SELECT`)throw Error(`Validator: element expects a select element, but ${e.tagName.toLowerCase()} given.`);return t===!0?Array.from(e.selectedOptions).map(e=>e.value.trim()).some(e=>e.length>0):!0}_validateMultiple(e,t){if(e.tagName!==`SELECT`)throw Error(`Validator: element expects a select element, but ${e.tagName.toLowerCase()} given.`);return t===!0?e.selectedOptions.length>0:!0}_validateSelectMin(e,t){return e.tagName===`SELECT`?e.selectedOptions.length>=t:!0}_validateSelectMax(e,t){return e.tagName===`SELECT`?e.selectedOptions.length<=t:!0}_validateNoSpace(e,t){return!/\s/.test(e.value)||t!==!0}_validateFile(e,t){return e.type===`file`&&t===!0?e.files.length>0:!0}_validateMinSize(e,t){return e.type!==`file`||!e.files.length?!0:e.files[0].size>=t}_validateMaxSize(e,t){return e.type!==`file`||!e.files.length?!0:e.files[0].size<=t}_validateAccept(e,t){if(e.type!==`file`||!e.files.length)return!0;let n=e.files[0];return t.split(`,`).map(e=>e.trim().toLowerCase()).some(e=>e.startsWith(`.`)?n.name.toLowerCase().endsWith(e):e.endsWith(`/*`)?n.type.startsWith(e.replace(`/*`,`/`)):n.type===e)}_validateCustom(e,t){if(typeof t!=`function`)return!0;let n=t(e);return typeof n==`string`?!1:!!n}_errorMsg(e,n,r){e.type!==`checkbox`&&(e.classList.remove(`is-valid`),e.classList.add(`is-invalid`));let i=this.options.messages[n]&&this.options.messages[n][r];if(i){this.runtime.message=i;let n=e.closest(`.form-control`),r=n?j(`.help-block`,n):null;r||(r=(0,t.jsx)(`div`,{className:`help-block is-invalid`,children:i}),n.appendChild(r))}}_success(e){let t=e.closest(`.form-control`),n=t?j(`.help-block`,t):null;n&&t.removeChild(n),e.type!==`checkbox`&&(e.classList.remove(`is-invalid`),e.classList.add(`is-valid`))}reset(){this.root.reset();for(let e of this.root.elements)e.classList.remove(`is-valid`),e.classList.remove(`is-invalid`);let e=M(`.help-block`,this.root);for(let t of e)t.remove();this.runtime.valid=!0,this.runtime.message=``}destroy(){this.runtime.destroyed||(this.runtime.destroyed=!0,this._unbindEvents(),this.reset(),this.root=null,this.options=null,this.runtime.valid=null,this.runtime.message=null,this.cleanup?.events.clear(),this.cleanup=null)}};e.Accordion=Me,e.Component=V,e.Drop=Pe,e.Flow=Ke,e.Menu=Xe,e.Modal=pt,e.Offcanvas=ht,e.Parabola=vt,e.Swiper=Ct,e.Tabs=Dt,e.Theme=kt,e.Toast=$,e.Tooltip=Pt,e.Validator=It,e.addIcons=Te,e.all=M,e.canRenderDOM=S,e.canUseDOM=x,e.copy=i,e.createEventManager=P,e.createFlow=qe,e.destroyAll=ae,e.getCookie=F,e.getRegistedIconPath=we,e.getType=c,e.hasOwn=o,e.icon=L,e.iconHtml=R,e.iconMarkup=Ce,e.isClass=u,e.isElement=w,e.isFunction=l,e.isMobile=r,e.isNode=C,e.isPlainObject=d,e.isRenderableContent=A,e.listen=N,e.normalizeContentNodes=T,e.postJson=_e,e.q=j,e.randomId=_,e.release=b,e.removeCookie=be,e.requireContainer=k,e.resolveContainer=ue,e.resolveElement=O,e.resolveNode=D,e.resolveNodeList=E,e.resolveProps=g,e.restUrl=ve,e.service=oe,e.setCookie=ye,e.singleton=re,e.timer=s,e.unlisten=ge,e.uuid=ne,e.validateParam=h});