vanilla-jui 0.5.0 → 0.5.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.js CHANGED
@@ -1 +1 @@
1
- import{createDeepStore as e,createEffect as t,createRoot as n,flushSync as r,jsx as i,onCleanup as a,render as o,untrack as s}from"vanilla-signal";import{t as c}from"vanilla-signal-i18n";function l(){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 u(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(()=>d(t)):Promise.resolve(d(t))}function d(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)}}const f=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),p={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])}},m=e=>e===null?`null`:Array.isArray(e)?`array`:typeof HTMLElement<`u`&&e instanceof HTMLElement?`HTMLElement`:typeof Node<`u`&&e instanceof Node?`Node`:typeof e,h=e=>typeof e==`function`&&e.prototype!==null&&e.prototype.constructor===e,ee=e=>typeof e==`function`&&/^class\s/.test(Function.prototype.toString.call(e));function te(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function ne(e){return Array.isArray(e)?e.slice():te(e)?{...e}:e}function g(e={}){return typeof e==`string`||Array.isArray(e)?{type:e}:!e||typeof e!=`object`?{}:e}function re(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}`)}}const ie=(e,t,n,r=[])=>{let i=Array.isArray(n)?n:[n],a=m(t);if(!i.some(e=>e===a)){let t=i.join(`, `);throw Error(`Validator: ${e} expects ${t}, but got ${a}.`)}return re(e,t,r),t};function ae(e,t){return e?`${e}.${t}`:t}function oe(e){if(f(e,`default`))return ne(e.factory&&typeof e.default==`function`?e.default():e.default)}function _(e,t,n={},r=``,i={}){let a=g(n),o=ae(r,e),s=f(a,`types`)?a.types:a.type;if(a.required&&t==null)throw Error(`Validator: ${o} is required.`);if(s===void 0?re(o,t,a.conditions):ie(o,t,s,a.conditions),Array.isArray(a.enum)&&!a.enum.includes(t))throw Error(`Validator: ${o} expects one of ${a.enum.join(`, `)}.`);if(typeof a.validate==`function`&&!a.validate(t,{...i,name:e,value:t,namespace:r}))throw Error(`Validator: ${o} ${a.message||`does not satisfy the required condition.`}`);return t}function se(e,t,n=`Options`){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Validator: ${n} expects object.`);for(let[r,i]of Object.entries(t||{}))_(r,e[r],i,n,{key:r,options:e,schema:t});return e}function v(e={},t={},n=`Options`){let r=e??{};if(typeof r!=`object`||Array.isArray(r))throw Error(`Validator: ${n} expects object.`);let i={...r},a=Object.entries(t||{});for(let[e,t]of a){let n=g(t);i[e]=f(r,e)?r[e]:oe(n)}for(let[e,n]of a){let a=g(n);typeof a.normalize==`function`&&(i[e]=a.normalize(i[e],{key:e,input:r,options:i,schema:t}))}return se(i,t,n)}function ce(){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 y(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}const b=new Map,x=new Map,le=(e,t=[],n=``,r=!1,i=null)=>{if(!h(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()===``?y():n;if(b.has(a)&&!r)return b.get(a).proxy;let o=new e(...t),s=new Proxy(o,{get(e,t,n){return i&&ue(a,i),Reflect.get(e,t,n)},set(e,t,n,r){return Reflect.set(e,t,n,r)}});return b.set(a,{instance:o,proxy:s}),s};function ue(e,t){x.has(e)&&clearTimeout(x.get(e));let n=setTimeout(()=>{de(e)},t);x.set(e,n)}function de(e){if(b.has(e)){let{instance:t}=b.get(e);if(typeof t.destroy==`function`)try{t.destroy()}catch{throw Error(`release(): destroy() failed on instance with key "${e}".`)}b.delete(e)}x.has(e)&&(clearTimeout(x.get(e)),x.delete(e))}function fe(){for(let{instance:e}of b.values())if(typeof e.destroy==`function`)try{e.destroy()}catch{}b.clear();for(let e of x.values())clearTimeout(e);x.clear()}const pe={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 S(){return typeof document<`u`}function C(){return!S()||typeof document.createElement!=`function`?!1:typeof document.createElement(`div`).insertBefore==`function`}function w(e){return S()&&typeof Node<`u`&&e instanceof Node}function T(e){return typeof Element<`u`&&e instanceof Element}function E(e){return e==null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`||typeof e==`function`||Array.isArray(e)||w(e)}function D(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=>D(e,t));if(w(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 O(e,t=document){return t.querySelector(e)}function k(e,t=document){return Array.from(t.querySelectorAll(e))}function A(e,t=`getEl`){if(typeof Element<`u`&&e instanceof Element)return e;if(typeof e==`string`)return O(e);if(e===!1||e==null)return null;throw Error(`${t}: expects Element or string.`)}const me=()=>{};function he(e){return!!e&&typeof e.addEventListener==`function`&&typeof e.removeEventListener==`function`}function ge(e,t){if(!he(e))throw TypeError(`${t}: target expects EventTarget.`)}function _e(e,t){if(typeof e!=`string`||e.trim()===``)throw TypeError(`${t}: type expects a non-empty string.`)}function ve(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){ge(e,`listen`),_e(t,`listen`),ve(n,`listen`);let i=!0;return e.addEventListener(t,n,r),()=>{i&&(i=!1,e.removeEventListener(t,n,r))}}function ye(e,t,n,r){ge(e,`unlisten`),_e(t,`unlisten`),ve(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 me;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 be(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()}const xe=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 Se(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 Ce(e){return typeof document>`u`?!0:(document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`,!N(e))}const 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 we(e){if(!(e in P))throw Error(`Icon "${e}" not found.`)}function F(e){return we(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(!C())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 L(e){return F(e)}const Te=L;function Ee(){return{...P}}function De(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}}const Oe={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():y():e??y()},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`}},R={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 z(e){return _(`items`,e,R,`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||y()}})}var je=class{constructor(e,t={}){if(!C())throw Error(`Accordion: DOM render environment is required.`);if(e!==!1&&!T(e))throw Error(`Accordion: element expects a valid HTMLElement or false.`);let n=v(t,Oe,`Accordion.options`);this.config={options:n},this.dom={root:null,headers:[],panels:[]},this.cleanup={events:M()},this.runtime={dynamic:e===!1,activeNames:[],destroyed:!1};try{this.init(e,n)}catch(e){throw this.destroy(),e}}get root(){return this.dom?.root||null}set root(e){this.dom||(this.dom={headers:[],panels:[]}),this.dom.root=e}get options(){return this.config?.options||{}}set options(e){this.config||(this.config={}),this.config.options=e||{}}get dynamic(){return!!this.runtime?.dynamic}get destroyed(){return!!this.runtime?.destroyed}get activeNames(){return this.runtime?.activeNames||[]}set activeNames(e){this.runtime||(this.runtime={}),this.runtime.activeNames=Array.isArray(e)?e:[]}init(e,t){if(this.root=e===!1?this.buildRoot(t):e,this.refreshDom(),this.headers.length===0||this.panels.length===0)throw Error(`Accordion: .accordion-header or .accordion-panel not found.`);this.prepareItems(),this.activeNames=this.resolveActiveNames(t.active),this.syncAll(),this.bindEvents()}refreshDom(){if(!this.root){this.dom.headers=[],this.dom.panels=[];return}this.dom.headers=k(`.accordion-header`,this.root),this.dom.panels=k(`.accordion-panel`,this.root)}assertActive(e){if(this.destroyed)throw Error(`Accordion.${e}: instance has been destroyed.`)}buildRoot(e){let t=z(e.items),n=i(`div`,{className:`j-accordion`,id:e.id});return n.append(this.buildItems(t)),n}buildItems(e){let t=document.createDocumentFragment();return e.forEach((e,n)=>{let r=e.name||y(),a=`${this.options.id}_header_${n}`,o=`${this.options.id}_panel_${n}`,s=i(`span`,{className:`header-title`});s.append(...this.contentView(e.title,e,n,`title`));let c=i(`div`,{className:`accordion-header`,"data-item":r,id:a,role:`button`,tabindex:`0`,"aria-controls":o,children:[s,i(`span`,{className:`header-arrow`,"aria-hidden":`true`,children:I(`arrow-down`)})]}),l=i(`div`,{className:`panel-content`});l.append(...this.contentView(e.content,e,n,`content`));let u=i(`div`,{className:`accordion-panel`,id:o,role:`region`,"aria-labelledby":a,children:l});t.append(c,u)}),t}contentView(e,t,n,r){return D(e,{accordion:this,item:t,index:n,type:r,active:this.isActive(t.name)})}prepareItems(){this.headers.forEach((e,t)=>{let n=this.panels[t];if(!n)return;let r=e.dataset.item||y();e.dataset.item=r,e.id||(e.id=`${this.options.id}_header_${t}`),n.id||(n.id=`${this.options.id}_panel_${t}`),e.setAttribute(`role`,`button`),e.setAttribute(`tabindex`,`0`),e.setAttribute(`aria-controls`,n.id),n.setAttribute(`role`,`region`),n.setAttribute(`aria-labelledby`,e.id)})}resolveActiveNames(e){if(e==null){let e=this.headers.filter((e,t)=>{let n=this.panels[t];return e.classList.contains(`is-active`)||n?.classList.contains(`is-active`)});return e.map(e=>e.dataset.item).slice(0,this.options.multiple?e.length:1)}let t=Array.isArray(e)?e:[e],n=[];for(let e of t){let t=this.getIndex(e);if(!(t<0||t>=this.headers.length)&&(n.push(this.headers[t].dataset.item||String(t)),!this.options.multiple))break}return Array.from(new Set(n))}bindEvents(){this.unbindEvents(),this.cleanup.events.on(`click`,this.root,`click`,e=>{let t=e.target.closest(`.accordion-header`);!t||!this.headers.includes(t)||this.active(this.headers.indexOf(t))}),this.cleanup.events.on(`keydown`,this.root,`keydown`,e=>{if(e.key!==`Enter`&&e.key!==` `)return;let t=e.target.closest(`.accordion-header`);!t||!this.headers.includes(t)||(e.preventDefault(),this.active(this.headers.indexOf(t)))})}unbindEvents(){this.cleanup.events.clear()}syncAll(){this.headers.forEach((e,t)=>{this.syncItem(t,this.isActive(e.dataset.item))})}syncItem(e,t){let n=this.headers[e],r=this.panels[e];!n||!r||(n.classList.toggle(`is-active`,t),r.classList.toggle(`is-active`,t),n.setAttribute(`aria-expanded`,String(t)),r.setAttribute(`aria-hidden`,String(!t)),r.hidden=!t)}isActive(e){return this.activeNames.includes(e)}async activateItem(e,t=!0){let n=this.getIndex(e);if(n<0||n>=this.headers.length)return;let r=this.headers[n],i=this.panels[n],a=r.dataset.item||String(n),o=this.isActive(a);o&&!this.options.multiple&&!this.options.collapsible||(this.options.multiple?this.activeNames=o?this.activeNames.filter(e=>e!==a):[...this.activeNames,a]:o?this.options.collapsible&&(this.activeNames=[]):this.activeNames=[a],this.syncAll(),t&&this.options.onChange&&await Promise.resolve(this.options.onChange(n,a,r,i,this)))}getIndex(e){return typeof e==`number`?e:typeof e==`string`?this.headers.findIndex(t=>t.dataset.item===e):-1}get headers(){return this.dom?.headers||[]}get panels(){return this.dom?.panels||[]}get current(){let e=this.activeNames[0];return e?this.getIndex(e):null}get state(){return{activeNames:[...this.activeNames],current:this.current}}async active(e){this.assertActive(`active`),await this.activateItem(e,!0)}setItems(e,t=0){this.assertActive(`setItems`),_(`items`,e,R,`Accordion.setItems`),_(`active`,t,ke,`Accordion.setItems`);let n=z(e);this.options.items=Ae(n),this.options.active=t,this.root.textContent=``,this.root.append(this.buildItems(n)),this.refreshDom(),this.prepareItems(),this.activeNames=this.resolveActiveNames(t),this.syncAll()}destroy(){if(this.destroyed)return;let e=this.root,t=this.dynamic;this.runtime.destroyed=!0,this.unbindEvents();for(let e of this.headers)e.classList.remove(`is-active`),e.removeAttribute(`aria-expanded`);for(let e of this.panels)e.classList.remove(`is-active`),e.removeAttribute(`aria-hidden`),e.hidden=!1;t&&e?.parentNode&&e.parentNode.removeChild(e),this.root=null,this.options={},this.activeNames=[],this.cleanup.events.clear(),this.dom.headers=[],this.dom.panels=[]}};const Me={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():y():e??y()},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 B=class{constructor(e,t={}){if(!C())throw Error(`Drop: DOM render environment is required.`);if(!T(e))throw Error(`Drop: element expects a valid HTMLElement.`);this.target=e,this.options=v(t,Me,`Drop.options`),this._init(this.options)}_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:t,content:n,id:r,name:a,containerClassName:o}=e,s=t||``,c=w(n)&&n.nodeType===1?n:i(`div`,{className:o?`drop-container ${o}`:`drop-container`,children:D(n,this)}),l=i(`div`,{className:s?`j-drop ${s}`:`j-drop`,id:r,"data-drop":a||y(),children:c});this.root=l,document.body.appendChild(l)}_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())),this.cleanup.events.on(`root:enter`,this.root,`mouseenter`,()=>this.show()),this.cleanup.events.on(`root:leave`,this.root,`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)))}_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.options;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._setPosition():(this.root.style.top=``,this.root.style.left=``),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.options.onShown&&this.options.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.options.onHidden&&this.options.onHidden())}toggle(){this.isVisible?this.hide():this.show()}destroy(){this.options&&(clearTimeout(this._timer?.show),clearTimeout(this._timer?.hide),this.root&&this._exec(!1),this.options&&this._unbindEvents(),this.root?.parentNode&&this.root.parentNode.removeChild(this.root),this.options=null,this.root=null,this.target=null,this._timer={show:null,hide:null},this.cleanup?.events.clear(),this.cleanup=null)}};function Ne(e){return e==null||typeof e==`string`||typeof e==`function`||Array.isArray(e)||typeof Node<`u`&&e instanceof Node}function Pe(e){return!!e&&typeof e==`object`&&typeof e.id==`string`}function Fe(e){return e==null||e===!1||typeof e==`function`}function V(e){return e&&typeof e==`object`&&!Array.isArray(e)?{...e}:{}}function Ie(e){return Array.isArray(e)?[...e]:[]}function Le(e){return Array.isArray(e)?e.map(e=>({...e,data:V(e.data),view:V(e.view)})):[]}function Re(e,t){return typeof e==`string`?{id:e}:e&&typeof e==`object`?e:{id:t}}const ze={validate:Pe,message:`expects a step object with a string id.`},Be={validate:Ne,message:`expects string, Node, array, function or null.`},Ve={validate:e=>Array.isArray(e)&&e.length>0,message:`expects a non-empty steps array.`},H={validate:e=>e==null||typeof e==`object`&&!Array.isArray(e),message:`expects an object or null.`},U={validate:Fe,message:`expects function, false or null.`},He={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():y():e??y()},steps:{default:[],...Ve},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`},backText:{default:`Back`,type:`string`},nextText:{default:`Next`,type:`string`},finishText:{default:`Finish`,type:`string`},resetText:{default:`Reset`,type:`string`},className:{default:``,type:`string`},renderHeader:{default:null,...U},renderSteps:{default:null,...U},renderBody:{default:null,...U},renderFooter:{default:null,...U},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=v(e,He,`Flow.options`),this._init(this.options)}_init(t){this.steps=Le(t.steps),this._validateSteps(this.steps),this._stepMap=new Map(this.steps.map((e,t)=>[e.id,t])),this._initialStepId=this._resolveInitialStepId(t.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=e({id:t.id,currentId:this._initialStepId,currentIndex:this._stepMap.get(this._initialStepId),previousId:null,previousIndex:null,direction:null,history:[this._initialStepId],data:V(this._initialData.global),stepData:V(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:V(this.state.data),stepData:V(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(!C())throw Error(`Flow.mount: DOM environment is required.`);let t=typeof e==`string`?document.querySelector(e):e;if(!T(t))throw Error(`Flow.mount: container expects Element or selector.`);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`),_(`payload`,e,H,`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}=Re(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`),_(`payload`,e,H,`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}=Re(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`),_(`payload`,t,H,`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`),_(`data`,e,H,`Flow.setData`),e?(r(()=>{Object.assign(this.state.data,e),this.state.version+=1}),this._emitChange(),this):this}setStepData(e,t,n={}){return this._assertActive(`setStepData`),_(`stepId`,e,{type:`string`},`Flow.setStepData`),_(`data`,t,H,`Flow.setStepData`),!t||!this._stepMap.has(e)?this:(r(()=>{this.state.stepData[e]={...V(this.state.stepData[e]),...t},this.options.cache&&Object.assign(this.state.data,t),this.state.version+=1}),n.silent||this._emitChange(),this)}getStepData(e){return V(this.state.stepData[e])}reset(){return this._assertActive(`reset`),r(()=>{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,V(this._initialData.global)),this._replaceObject(this.state.stepData,V(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`),_(`payload`,e,H,`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(_(String(n),r,ze,`Flow.options.steps`),_(`content`,r.content??null,Be,`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]=V(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:t,payload:n,fromStep:i}){let a=this.snapshot(),o=this._captureState();try{n&&this.setStepData(i.id,n,{silent:!0}),await this._assertCanLeave(i,e,t),await this._assertCanEnter(e,i,t),typeof i.onLeave==`function`&&await this._callHook(i.onLeave,[this._createContext({direction:t,step:i,targetId:e.id})]);let o=this.state.currentId,s=this.state.currentIndex,c=this._stepMap.get(e.id);r(()=>{this.state.previousId=o,this.state.previousIndex=s,this.state.currentId=e.id,this.state.currentIndex=c,this.state.direction=t,t===`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:t,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:V(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,t=this.state?.busyAction||null){this.state&&r(()=>{this.state.loading=e,this.state.busyAction=e?t:null})}_handleError(e,t=null){this.state&&(r(()=>{this.state.error=e,this.state.version+=1}),typeof this.options.onError==`function`&&this.options.onError(e,this.snapshot(),this,t))}_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:Ie(this.state.history),data:V(this.state.data),stepData:V(this.state.stepData),loading:this.state.loading,busyAction:this.state.busyAction,error:this.state.error,version:this.state.version}}_restoreState(e,t={}){r(()=>{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=t.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 i(`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=n(e=>(a(o(()=>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 i(`div`,{className:`flow-header`,children:[i(`div`,{id:`${this.options.id}-title`,className:`flow-title`,children:e.currentStep?.title||e.currentStep?.id||``}),e.currentStep?.description?i(`div`,{className:`flow-description`,children:e.currentStep.description}):null]})}_stepsView(e){return i(`ol`,{className:`flow-steps`,role:`list`,"aria-label":`Flow steps`,children:this.steps.map((t,n)=>i(`li`,{className:this._stepClass(n,e.currentIndex),"aria-current":n===e.currentIndex?`step`:void 0,children:[i(`button`,{type:`button`,className:`flow-step-button`,disabled:this.options.linear&&n>e.currentIndex,"aria-current":n===e.currentIndex?`step`:void 0,"aria-disabled":this.options.linear&&n>e.currentIndex?`true`:`false`,"aria-label":`${n+1}. ${t.title||t.id}`,onClick:()=>{n!==e.currentIndex&&this.goTo(n)},children:[i(`span`,{className:`flow-step-index`,children:n+1}),i(`span`,{className:`flow-step-title`,children:t.title||t.id})]})]}))})}_bodyView(e){return i(`div`,{className:`flow-body`,role:`region`,"aria-live":`polite`,"aria-busy":e.loading?`true`:`false`,children:this._contentView(e.currentStep?.content)})}_footerView(e){return i(`div`,{className:`flow-footer`,children:[this.options.showReset?i(`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.resetText}):null,this.options.showBack?i(`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.backText}):null,this.options.showNext?i(`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.finishText:this.options.nextText}):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)}const Ge={type:{default:`mobile`,type:`string`},id:{default:``,type:`string`,normalize:e=>e.trim()===``?y():e.trim()},items:{default:[],type:`array`},backText:{default:`Back`,type:`string`}},Ke={type:`array`};var qe=class{constructor(e,t={}){this._element=e,this.options=v(t,Ge,`Menu.options`),this.root=null,this.cleanup={events:M()},this._bound=!1,this._destroyed=!1,this._validateOptions()}get menu(){return this.root}_validateOptions(){let{items:e}=this.options;this._element!==!1&&_(`element`,this._element,[`HTMLElement`,`string`],`Menu`),this._verifyItems(e)}_verifyItems(e){_(`items`,e,Ke,`Menu`)}build(){if(this._bound)return this;if(!C())throw Error(`Menu: DOM render environment is required.`);if(this._element===!1)this.root=this._buildRoot(),this._bound=!0;else{let e=A(this._element,`Menu.element`);if(!e)throw Error(`Element not found`);this.root=e,this._bound=!0}return this._bindEvents(),this}_buildRoot(){let{items:e,id:t,type:n}=this.options;return i(`nav`,{className:`j-${n}-menu`,children:i(`ul`,{className:`menu`,id:t,children:e.map(e=>this._buildItem(e))})})}_buildItem(e){let t=e.children&&e.children.length>0,n=[`menu-item`];t&&n.push(`menu-item-has-children`),e.classes&&Array.isArray(e.classes)&&n.push(...e.classes);let r=[i(`a`,{className:`menu-link`,href:e.url||`#`,...e.target&&{target:e.target},children:e.title})];return t&&r.push(i(`ul`,{className:`sub-menu`,children:e.children.map(e=>this._buildItem(e))})),i(`li`,{className:n.join(` `),id:`menu-item-${e.id||y()}`,children:r})}_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._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 t=O(`:scope > .sub-menu`,e);if(!t||O(`:scope > .menu-item.back`,t))return;let n=i(`li`,{className:`menu-item back`,children:i(`a`,{className:`menu-link`,children:[i(`icon`,{className:`el-icon el-prefix`,children:I(`arrow-left`)}),i(`span`,{className:`menu-text`,children:this.options.backText})]})});t.insertBefore(n,t.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 t=this.root.matches?.(`.menu`)||this.root.matches?.(`ul`)||this.root.matches?.(`ol`)?this.root:O(`:scope > .menu`,this.root)||O(`.menu`,this.root);if(!t)throw Error(`Menu: .menu element not found for setItems().`);this._unbindEvents(),t.textContent=``,t.append(...e.map(e=>this._buildItem(e))),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 W(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 G(e){return{...e,fields:Array.isArray(e.fields)?W(e.fields):e.fields}}function Je(e){return e&&typeof e==`object`?e:{value:e,text:e}}function K(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Ye(e){return e==null||typeof e==`string`||typeof e==`function`||Array.isArray(e)||w(e)}function Xe(e){return K(e)}function Ze(e){return e==null||typeof e==`object`&&typeof e.next==`function`&&typeof e.back==`function`&&typeof e.snapshot==`function`}function q(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Qe(e,t){return!Array.isArray(e)||!K(t)?e:e.map(e=>{if(!e?.name||!q(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){return{...e,fields:Array.isArray(e.fields)?W(e.fields):null,loading:!1,submitting:!1,visible:!1,data:null,extraData:null}}function et(e,t){return!t||typeof t!=`object`?e:Object.assign(e,t)}const tt={validate:Ye,message:`expects string, Node, array, function or null.`},nt={types:[`array`,`null`]},rt={validate:e=>typeof e==`string`||e===!1,message:`expects string or false.`},J={title:{default:`Tip`,type:`string`},content:{default:``,...tt},position:{default:`center`,type:`string`},confirmText:{default:`Confirm`,type:`string`},cancelText:{default:`Cancel`,type:`string`},showCancel:{default:!0,type:`boolean`},showClose:{default:!0,type:`boolean`},showBack:{default:!1,type:`boolean`},showNext:{default:!1,type:`boolean`},fullscreen:{default:!1,type:`boolean`},flow:{default:null,validate:Ze,message:`expects a Flow instance or null.`},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`]},onBack:{default:null,types:[`function`,`null`]},onNext:{default:null,types:[`function`,`null`]},fields:{default:null,...nt},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():y():e??y()},escClose:{default:!1,type:`boolean`},bgClose:{default:!1,type:`boolean`},lazy:{default:!1,type:`boolean`},backText:{default:`Back`,...rt},nextText:{default:`Next`,...rt}},it={...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`]}},at=new Set([`id`,`lazy`]),ot={validate:e=>!!e&&typeof e==`object`&&!Array.isArray(e),message:`expects an object.`},st={validate:Xe,message:`expects an options object.`},Y=[];let X=0,Z=``;var ct=class{constructor(e={}){let t=v(e,J,`Modal.options`);this.init(t)}static get modalStack(){return Y}init(t){this.dom={root:null},this.cleanup={events:M(),state:null,view:null,hideTimer:null},this.cache={initial:G(t),fieldIds:new Map,baseStyle:``,previousActiveElement:null,formId:`${t.id}_form`},this.runtime={scrollLocked:!1,visibleApplied:!1,destroyed:!1},this.state=e($e(t)),this.bindReactiveVisibility(),!this.state.lazy&&C()&&this.buildRoot()}get root(){return this.dom?.root||null}set root(e){this.dom||(this.dom={}),this.dom.root=e}get modal(){return this.dom.modal||(this.root?O(`.j-modal`,this.root):null)}get form(){return this.dom.form&&this.root?.contains(this.dom.form)?this.dom.form:this.root?O(`form`,this.root):null}get initialOptions(){return this.cache.initial?G(this.cache.initial):null}get initialFields(){return this.cache.initial?.fields?W(this.cache.initial.fields):null}get initialContent(){return this.cache.initial?.content??null}get content(){return this.state?.content??null}get data(){return this.state?.data??null}get visible(){return!!this.state?.visible}set visible(e){this.state&&r(()=>{this.state.visible=!!e})}buildRoot(){if(this.root)return this.root;let{id:e}=this.state,t=i(`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.title||`Modal`,children:i(`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:[i(`div`,{className:`modal-header`,style:()=>({display:this.state.header?``:`none`}),ref:e=>{this.dom.header=e}}),i(`div`,{className:`modal-body`,ref:e=>{this.dom.body=e}}),i(`div`,{className:`modal-footer`,style:()=>({display:this.state.footer?``:`none`}),ref:e=>{this.dom.footer=e}})]})});return this.root=t,this.mountView(),t}mountView(){this.cleanup.view||!this.dom.body||(this.cleanup.view=n(e=>(this.dom.header&&a(o(()=>this.headerView(),this.dom.header)),a(o(()=>this.bodyView(),this.dom.body)),this.dom.footer&&a(o(()=>this.footerView(),this.dom.footer)),this.bindReactiveLoading(),this.bindReactiveStyle(),e)))}headerView(){return()=>this.state.header?[i(`div`,{className:`modal-title`,id:`${this.state.id}_title`,children:()=>this.state.title}),this.state.showClose?i(`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?i(`button`,{type:`button`,className:`j-button is-ghost modal-cancel`,"data-action":`close`,"aria-label":`close`,disabled:()=>this.isBusy(),children:()=>this.state.cancelText}):null,this.state.showBack&&this.state.backText!==!1?i(`button`,{type:`button`,className:`j-button is-ghost modal-back`,"data-action":`back`,disabled:()=>this.isBusy(),children:()=>this.state.backText}):null,this.state.showNext&&this.state.nextText!==!1?i(`button`,{type:`button`,className:`j-button is-secondary modal-next`,"data-action":`next`,disabled:()=>this.isBusy(),children:()=>this.state.nextText}):null,i(`button`,{type:()=>this.isFormMode()?`submit`:`button`,form:()=>this.isFormMode()?this.cache.formId:null,className:`j-button is-primary modal-confirm`,"data-action":`confirm`,disabled:()=>this.isBusy(),children:()=>this.state.confirmText})]:null}bodyView(){return this.isFormMode()?this.formView():(this.dom.form=null,this.contentView(this.state.content))}formView(){return i(`div`,{className:`modal-form-container`,children:i(`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,t){let n=this.resolveFieldId(e,t),r=this.labelView(e,n);return i(`div`,{className:`form-item`,style:{display:e.type===`hidden`?`none`:``},children:[r,i(`div`,{className:`form-control`,children:this.controlView(e,n)})]})}labelView(e,t){return i(`label`,{className:`item-label ${e.required?`is-required`:``}`,for:t,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}_${y()}`),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,t){let n=e.type||`text`,r={type:n,className:`j-input`,name:e.name,id:t,placeholder:e.placeholder||``,value:e.value??``,autocomplete:e.autocomplete||this.autoComplete(n),required:!!e.required,disabled:!!e.disabled,readonly:!!e.readonly};return e.checked!==void 0&&(r.checked=!!e.checked),i(`input`,r)}textareaView(e,t){return i(`textarea`,{className:`j-textarea`,name:e.name,id:t,placeholder:e.placeholder||``,value:e.value??``,required:!!e.required,disabled:!!e.disabled,readonly:!!e.readonly})}selectView(e,t){let n=e.value;return i(`select`,{className:`j-select`,name:e.name,id:t,autocomplete:`off`,required:!!e.required,disabled:!!e.disabled,readonly:!!e.readonly,multiple:!!e.multiple,children:(e.options||[]).map(e=>{let t=Je(e);return i(`option`,{value:t.value??``,disabled:!!t.disabled,selected:this.isSelected(n,t.value),children:t.text??t.label??t.value??``})})})}contentView(e){if(typeof e==`function`)return e(this);if(Array.isArray(e)||w(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;t(()=>{this.state.loading&&!e?(e=i(`div`,{className:`j-loading is-active`,"aria-live":`polite`,children:i(`div`,{className:`loading-spinner`})}),this.dom.modal.appendChild(e)):!this.state.loading&&e&&(e.remove(),e=null)}),a(()=>{e?.remove(),e=null})}bindReactiveStyle(){t(()=>{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)}validateOptionPatch(e,t=`Modal.update`){_(`options`,e,st,t);for(let n of Object.keys(e)){if(!Object.prototype.hasOwnProperty.call(J,n))throw Error(`Validator: ${t}.${n} is not a supported modal option.`);if(at.has(n))throw Error(`Modal.update: "${n}" cannot be updated after initialization.`);_(n,e[n],J[n],t)}}applyOptions(e,{validate:t=!0}={}){if(t&&this.validateOptionPatch(e),!e||Object.keys(e).length===0)return this;let n=Object.prototype.hasOwnProperty.call(e,`fields`);if(Object.prototype.hasOwnProperty.call(e,`content`)&&!n&&this.isFormMode())throw Error(`Modal.update: Cannot update content when fields are defined.`);return r(()=>{n&&(this.cache.fieldIds.clear(),this.state.fields=Array.isArray(e.fields)?W(e.fields):null);for(let[t,n]of Object.entries(e))t!==`fields`&&(this.state[t]=n)}),Object.prototype.hasOwnProperty.call(e,`style`)&&this.modal&&this.applyStyle(this.modal,this.state.style),this.visible&&(Object.prototype.hasOwnProperty.call(e,`bgClose`)||Object.prototype.hasOwnProperty.call(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.state=n(e=>(t(()=>{let e=!!this.state.visible;s(()=>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(!C())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.pushStack(),this.runtime.visibleApplied=!0,this.normalizeIcon(this.modal),this.bindEvents(this.root),this.focusFirst(),t&&t()}hideFromState(){if(!this.runtime.visibleApplied||!this.root)return;let{onHide:e,onHidden:t}=this.state;e&&e(),this.runtime.visibleApplied=!1,this.removeFromStack(),this.clearEvents(),r(()=>{this.state.loading=!1,this.state.extraData=null,this.state.data=null}),this.modal&&(this.modal.style.transition=`opacity 300ms ease-out, transform 300ms ease-out`,this.modal.style.opacity=`0`,this.modal.style.transform=`scale(0.3)`),this.cancelHideTimer(),this.cleanup.hideTimer=setTimeout(()=>this.finishHide(t),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.isTop()&&this.hide()})}bindDocumentKeyEvent(){this.cleanup.events.on(`keydown`,document,`keydown`,e=>{if(!(!this.visible||!this.isTop())){if(e.key===`Escape`&&this.state.escClose){e.preventDefault(),this.hide();return}e.key===`Tab`&&this.trapFocus(e)}})}bindInsideEvent(){this.modal&&this.cleanup.events.on(`inside`,this.modal,`click`,e=>{let t=(e.target instanceof Element?e.target:null)?.closest(`[data-action]`);if(!t||!this.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.form){this.handleConfirm();return}if(typeof this.form.requestSubmit==`function`){this.form.requestSubmit();return}let e=new Event(`submit`,{bubbles:!0,cancelable:!0});this.form.dispatchEvent(e)}async handleFormSubmit(e){if(e.preventDefault(),this.isBusy())return;let t=e.currentTarget;if(!t.checkValidity()){t.reportValidity();return}let n=et(this.collectFormData(t),this.state.extraData);r(()=>{this.state.data=n}),await this.handleSubmit(n)}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())Object.prototype.hasOwnProperty.call(t,e)?t[e]=Array.isArray(t[e])?[...t[e],r]:[t[e],r]:t[e]=r;return t}async handleNext(){if(!this.isBusy()){if(this.hasFlow()){await this.moveFlow(`next`);return}if(typeof this.state.onNext==`function`){r(()=>{this.state.submitting=!0});try{let e=await Promise.resolve(this.state.onNext(this));K(e)&&this.update(e)}catch(e){console.error(`Modal.onNext error:`,e)}finally{this.state&&r(()=>{this.state.submitting=!1})}}}}async handleBack(){if(!this.isBusy()){if(this.hasFlow()){await this.moveFlow(`back`);return}if(typeof this.state.onBack==`function`){r(()=>{this.state.submitting=!0});try{let e=await Promise.resolve(this.state.onBack(this));K(e)&&this.update(e)}catch(e){console.error(`Modal.onBack error:`,e)}finally{this.state&&r(()=>{this.state.submitting=!1})}}}}hasFlow(){return Ze(this.state.flow)&&!!this.state.flow}async moveFlow(e){let t=this.createFlowPayload();if(t!==!1){r(()=>{this.state.submitting=!0});try{let n=await this.state.flow[e](t);this.syncFlowView(this.state.flow,n)}catch(t){console.error(`Modal.flow.${e} error:`,t),this.syncFlowView(this.state.flow)}finally{this.state&&r(()=>{this.state.submitting=!1})}}}createFlowPayload(){if(!this.isFormMode())return null;let e=this.form;if(!e)return this.state.data||null;if(!e.checkValidity())return e.reportValidity(),!1;let t=et(this.collectFormData(e),this.state.extraData);return r(()=>{this.state.data=t}),this.state.data}syncFlowView(e,t=null){if(!e||!this.state)return;let n=e.snapshot()||t,r=e.currentStep||n?.currentStep||t?.currentStep,i={...K(r?.view)?r.view:{}};Array.isArray(i.fields)&&(i.fields=Qe(i.fields,n?.currentData)),q(i,`showBack`)||(i.showBack=!!n?.canBack),q(i,`showNext`)||(i.showNext=!!n?.canNext),!q(i,`fields`)&&q(i,`content`)&&(i.fields=null),this.update(i)}async handleConfirm(){if(!this.isBusy()){r(()=>{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&&r(()=>{this.state.submitting=!1})}}}async handleCancel(){if(!this.isBusy()){r(()=>{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&&r(()=>{this.state.submitting=!1})}}}async handleSubmit(e){if(this.state.onSubmit){r(()=>{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&&r(()=>{this.state.submitting=!1})}}}trapFocus(e){if(!this.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.modal)).filter(e=>e.offsetParent!==null||e===document.activeElement);if(t.length===0){e.preventDefault(),this.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.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.form||this.modal);e?e.focus():(this.modal.setAttribute(`tabindex`,`-1`),this.modal.focus())}lockScroll(){this.runtime.scrollLocked||!S()||(X===0&&(Z=document.body.style.overflow,document.body.style.overflow=`hidden`),X+=1,this.runtime.scrollLocked=!0)}unlockScroll(){!this.runtime.scrollLocked||!S()||(X=Math.max(0,X-1),X===0&&(document.body.style.overflow=Z,Z=``),this.runtime.scrollLocked=!1)}pushStack(){this.removeFromStack(),Y.push(this)}removeFromStack(){let e=Y.indexOf(this);e>=0&&Y.splice(e,1)}isTop(){return Y[Y.length-1]===this}cancelHideTimer(){this.cleanup.hideTimer&&(clearTimeout(this.cleanup.hideTimer),this.cleanup.hideTimer=null)}resetAnimationStyles(){this.modal&&(this.cache.baseStyle?this.modal.setAttribute(`style`,this.cache.baseStyle):this.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.`)}setState(e,t){if(this.assertActive(`setState`),typeof e!=`string`||!e)throw Error(`Modal.setState: key expects a non-empty string.`);if(!q(it,e))throw Error(`Modal.setState: "${e}" is not a supported state key.`);if(at.has(e))throw Error(`Modal.setState: "${e}" cannot be updated after initialization.`);return _(e,t,it[e],`Modal.setState`),r(()=>{e===`fields`&&this.cache.fieldIds.clear(),this.state[e]=e===`fields`&&Array.isArray(t)?W(t):t}),this}show(){return this.assertActive(`show`),r(()=>{this.state.visible=!0}),this}hide(){return this.assertActive(`hide`),r(()=>{this.state.visible=!1}),this}setFields(e){return _(`data`,e,nt,`Modal.setFields`),this.applyOptions({fields:e},{validate:!1}),this}addFields(e){return _(`data`,e,ot,`Modal.addFields`),r(()=>{this.state.extraData=e}),this}setContent(e){if(_(`content`,e,tt,`Modal.setContent`),this.isFormMode())throw Error(`Modal.setContent: Cannot setContent when fields are defined.`);return this.applyOptions({content:e},{validate:!1}),this}update(e={}){return this.applyOptions(e)}reset(){this.cache.fieldIds.clear();let e=G(this.cache.initial);return delete e.id,delete e.lazy,this.applyOptions(e,{validate:!1}),r(()=>{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)?W(this.cache.initial.fields):null)}destroy(){if(this.runtime.destroyed)return;this.runtime.destroyed=!0;let e=!!this.runtime.visibleApplied,t=this.state?.onHide,n=this.state?.onHidden;e&&t&&t(),this.cancelHideTimer(),this.clearEvents(),this.removeFromStack(),this.unlockScroll(),this.cleanup.state?.(),this.cleanup.state=null,this.cleanup.view?.(),this.cleanup.view=null,this.root?.parentNode&&this.root.parentNode.removeChild(this.root),e&&n&&n(),this.cleanup.events.clear(),this.dom={root:null},this.cache={initial:null,fieldIds:null,baseStyle:``,previousActiveElement:null,formId:``},this.state=null,this.runtime.visibleApplied=!1}};const lt={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():y():e??y()},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 ut=class{constructor(e={}){if(!C())throw Error(`Offcanvas: DOM render environment is required.`);this.options=v(e,lt,`Offcanvas.options`),this._init(this.options)}_init(e){this.isVisible=!1,e.overlay&&(this._overlay=this._buildOverlay(e)),this.root=this._buildRoot(e),this.cleanup={events:M()},this._removeTimer=null,this._showTimer=null,this._shownTimer=null,this._destroyed=!1}_esc(e){e.key===`Escape`&&this.isVisible&&this.hide()}_bindEvents(){let{bgClose:e,escClose:t}=this.options;this._unbindEvents(),this._overlay&&e&&this.cleanup.events.on(`overlay`,this._overlay,`click`,()=>{this.hide()}),t&&this.cleanup.events.on(`esc`,document,`keydown`,e=>this._esc(e)),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()}_buildOverlay(e){let t=e.filter,n=t?`backdropFilter`:``,r=t?`blur(2px)`:``;return i(`div`,{className:`j-offcanvas-overlay`,style:t?{[n]:r}:{}})}_buildRoot(e){let{id:t,direction:n,animation:r,content:a}=e;return i(`div`,{className:`j-offcanvas ${n?`is-${n}`:``} ${r?`is-${r}`:``}`,id:t,children:i(`div`,{className:`offcanvas-content`,children:D(a,this)})})}_render(){let{overlay:e,animation:t,direction:n}=this.options;if(e&&document.body.appendChild(this._overlay),document.body.appendChild(this.root),document.body.style.overflow=`hidden`,t===`push`){document.body.classList.add(`offcanvas-push-body`);let e=window.scrollY;this._overlay&&(this._overlay.style.top=`${e}px`),this.root.style.top=`${e}px`}clearTimeout(this._showTimer),this._showTimer=setTimeout(()=>{this.root&&(this._overlay&&this._overlay.classList.add(`is-active`),t===`push`&&document.body.classList.add(`offcanvas-push-${n}`),this.root.classList.add(`is-active`),this._showTimer=null)},10)}_remove(){let{animation:e,direction:t}=this.options;this._overlay&&this._overlay.classList.remove(`is-active`),this.root.classList.remove(`is-active`),e===`push`&&document.body.classList.remove(`offcanvas-push-${t}`),clearTimeout(this._removeTimer),this._removeTimer=setTimeout(()=>{this._overlay&&this._overlay.parentNode&&this._overlay.parentNode.removeChild(this._overlay),this.root&&this.root.parentNode&&this.root.parentNode.removeChild(this.root),e===`push`&&document.body.classList.remove(`offcanvas-push-body`),document.body.style.overflow=``,this._removeTimer=null},100)}async show(){if(this._destroyed)return;let{onShow:e,onShown:t}=this.options;this.isVisible||(e&&await Promise.resolve(e()),this._render(),this._bindEvents(),this.isVisible=!0,clearTimeout(this._shownTimer),this._shownTimer=setTimeout(()=>{this._destroyed||(t&&t(),this._shownTimer=null)},100))}async hide(){if(this._destroyed)return;let{onHide:e,onHidden:t}=this.options;this.isVisible&&(e&&await Promise.resolve(e()),this._unbindEvents(),this._remove(),this.isVisible=!1,t&&t())}destroy(){if(this._destroyed)return;this._destroyed=!0;let e=this.isVisible;clearTimeout(this._removeTimer),clearTimeout(this._showTimer),clearTimeout(this._shownTimer),e&&(this._unbindEvents(),this.root?.classList.remove(`is-active`)),this.root?.parentNode?.removeChild(this.root),this._overlay?.parentNode?.removeChild(this._overlay),document.body.style.overflow=``,document.body.classList.remove(`offcanvas-push-body`,`offcanvas-push-${this.options.direction}`),this.options=null,this.root=null,this._overlay=null,this.cleanup?.events.clear(),this.cleanup=null,this._removeTimer=null,this._showTimer=null,this._shownTimer=null,this.isVisible=null}};const dt={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,types:[`HTMLElement`,`string`]},to:{default:null,types:[`HTMLElement`,`string`]},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 ft=class{constructor(e){if(!C())throw Error(`Parabola: DOM render environment is required.`);this.options=v(e,dt,`Parabola.options`),this._init(this.options)}_init(e){if(this.hidden=!1,this._ball=null,this._animationId=null,this._showTimeoutId=null,this._hideTimeoutId=null,this.hidden)return;let t=A(e.from),n=A(e.to);if(!t||!n)throw this.hidden=!0,Error(`Parabola: from or to element not found.`);this._createBall(e)}_createBall(e){if(this.hidden||this._ball)return;let{color:t,size:n}=e.ball;this._ball=i(`div`,{className:`parabola-ball`,style:{backgroundColor:t,width:n,height:n,position:`fixed`,borderRadius:`50%`,transform:`translate(-50%, -50%)`,pointerEvents:`none`,zIndex:`9999`,opacity:`1`}}),document.body.appendChild(this._ball)}_calculatePath(e){let t=A(e.from)?.getBoundingClientRect(),n=A(e.to)?.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=>{this._showTimeoutId=setTimeout(()=>{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)},this.options.showDelay)})}destroy(){this.hidden||(this._ball?.parentNode&&this._ball.parentNode.removeChild(this._ball),this._showTimeoutId&&clearTimeout(this._showTimeoutId),this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._animationId&&cancelAnimationFrame(this._animationId),this._ball=null,this.hidden=!0,this.options.onHidden&&this.options.onHidden())}start(){return this.show()}};const pt={data:{default:null,validate:e=>e==null||Array.isArray(e),message:`expects an array or null.`},loop:{default:!1,type:`boolean`},autoplay:{default:!1,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`}},mt={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.children==null||E(e.children)),message:`expects items with optional image, url, title, sort and children fields.`};function ht(e){return!!e?.closest?.(`a, button, input, textarea, select, label, [data-swiper-ignore]`)}var gt=class{constructor(e,t={}){if(!C())throw Error(`Swiper: DOM render environment is required.`);let n=v(t,pt,`Swiper.options`),r=Array.isArray(n.data),i=typeof e==`string`?O(e):T(e)?e:null;!i&&!r&&_(`container`,i,{validate:T,message:`expects a valid HTMLElement or selector.`},`Swiper`);let a=i,o=null,s=r;if(r)o=i||document.body,a=document.createElement(`div`),a.className=`j-swiper`,o.appendChild(a);else if(!a.classList.contains(`j-swiper`))throw Error(`Swiper: root element must have .j-swiper.`);this.settings={options:n};let c=r?this.createDataView(a,n.data):O(`.swiper-wrapper`,a);if(!c)throw Error(`Swiper: .swiper-wrapper not found.`);let l=k(`.swiper-slide`,c);this.dom={root:a,wrapper:c,slides:l,pagination:O(`.swiper-pagination`,a),prevButton:O(`.swiper-navigation.is-prev`,a),nextButton:O(`.swiper-navigation.is-next`,a),bullets:[],createdPagination:!1,createdPrevButton:!1,createdNextButton:!1,createdRoot:s,createdSlides:r,mountTarget:o},this.runtime={realCount:l.length,index:0,transform:0,width:0,timer:null,logs:[],startTarget:null,touching:!1,scrolling:!1,swiping:!1,animating:!1,clickPrevented:!1,destroyed:!1},this.cleanup={events:M()},this.slides.length!==0&&this.init()}createDataView(e,t){let n=this.normalizeData(t),r=document.createElement(`div`);return r.className=`swiper-wrapper`,e.textContent=``,n.forEach((e,t)=>{r.appendChild(this.createDataSlide(e,t,this.config))}),e.appendChild(r),r}normalizeData(e){e.forEach((e,t)=>{_(String(t),e,mt,`Swiper.options.data`)});let t=e.map((e,t)=>({...e,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,t,n=this.config){let r=e.url?document.createElement(`a`):document.createElement(`div`);if(r.className=`swiper-slide`,r.setAttribute(`data-swiper-index`,String(t)),e.url&&(r.href=e.url),e.children!=null)return r.append(...D(e.children,{swiper:this,item:e,index:t})),r;if(e.image){let t=document.createElement(`img`);t.className=`swiper-image`,t.alt=e.title||``,t.loading=`lazy`,n.lazyload?t.dataset.lazy=e.image:t.src=e.image,r.appendChild(t)}if(e.title){let t=document.createElement(`span`);t.className=`swiper-slide-title`,t.textContent=e.title,r.appendChild(t)}return r}get config(){return this.settings?.options||{}}set config(e){this.settings||(this.settings={}),this.settings.options=e||{}}get el(){return this.dom?.root||null}set el(e){this.dom||(this.dom={}),this.dom.root=e}get wrapper(){return this.dom?.wrapper||null}set wrapper(e){this.dom||(this.dom={}),this.dom.wrapper=e}get slides(){return this.dom?.slides||[]}set slides(e){this.dom||(this.dom={}),this.dom.slides=Array.isArray(e)?e:[]}get bullets(){return this.dom?.bullets||[]}set bullets(e){this.dom||(this.dom={}),this.dom.bullets=Array.isArray(e)?e:[]}get pagination(){return this.dom?.pagination||null}set pagination(e){this.dom||(this.dom={}),this.dom.pagination=e}get prevButton(){return this.dom?.prevButton||null}set prevButton(e){this.dom||(this.dom={}),this.dom.prevButton=e}get nextButton(){return this.dom?.nextButton||null}set nextButton(e){this.dom||(this.dom={}),this.dom.nextButton=e}get realCount(){return this.runtime?.realCount||0}set realCount(e){this.runtime||(this.runtime={}),this.runtime.realCount=Number(e)||0}get index(){return this.runtime?.index||0}set index(e){this.runtime||(this.runtime={}),this.runtime.index=Number(e)||0}get transform(){return this.runtime?.transform||0}set transform(e){this.runtime||(this.runtime={}),this.runtime.transform=Number(e)||0}get width(){return this.runtime?.width||0}set width(e){this.runtime||(this.runtime={}),this.runtime.width=Number(e)||0}get timer(){return this.runtime?.timer||null}set timer(e){this.runtime||(this.runtime={}),this.runtime.timer=e}get logs(){return this.runtime?.logs||[]}set logs(e){this.runtime||(this.runtime={}),this.runtime.logs=Array.isArray(e)?e:[]}get touching(){return!!this.runtime?.touching}set touching(e){this.runtime||(this.runtime={}),this.runtime.touching=!!e}get scrolling(){return!!this.runtime?.scrolling}set scrolling(e){this.runtime||(this.runtime={}),this.runtime.scrolling=!!e}get swiping(){return!!this.runtime?.swiping}set swiping(e){this.runtime||(this.runtime={}),this.runtime.swiping=!!e}get animating(){return!!this.runtime?.animating}set animating(e){this.runtime||(this.runtime={}),this.runtime.animating=!!e}init(){this.updateSize(),this.config.loop&&this.slides.length>1&&this.initLoop(),this.setupStyles(),this.index=+!!this.config.loop,this.transform=-this.index*this.width,this.render(!1),this.bindEvents(),this.config.pagination&&this.initPagination(),this.config.navigation&&this.initNavigation(),this.updateControls(),this.config.lazyload&&this.loadImages(),this.config.autoplay&&this.play()}updateSize(){this.width=this.el.clientWidth||this.el.offsetWidth}refreshSlides(){this.slides=k(`.swiper-slide`,this.wrapper)}initLoop(){let e=this.slides[0].cloneNode(!0),t=this.slides[this.slides.length-1].cloneNode(!0);e.setAttribute(`data-clone`,``),t.setAttribute(`data-clone`,``),this.wrapper.appendChild(e),this.wrapper.insertBefore(t,this.slides[0]),this.refreshSlides()}setupStyles(){this.wrapper.style.display=`flex`,this.wrapper.style.willChange=`transform`,this.slides.forEach(e=>{e.style.flexShrink=`0`,e.style.width=`${this.width}px`})}bindEvents(){this.cleanup.events.on(`touchstart`,this.wrapper,`touchstart`,e=>{e.touches[0]&&this.onStart(e.touches[0],e.target)},{passive:!0}),this.cleanup.events.on(`touchmove`,this.wrapper,`touchmove`,e=>{e.touches[0]&&this.onMove(e.touches[0],e)},{passive:!1}),this.cleanup.events.on(`touchend`,this.wrapper,`touchend`,e=>{e.changedTouches[0]&&this.pushLog(e.changedTouches[0]),this.onEnd()}),this.cleanup.events.on(`touchcancel`,this.wrapper,`touchcancel`,()=>{this.resetDrag(!0)}),this.cleanup.events.on(`window:touchcancel`,window,`touchcancel`,()=>{this.resetDrag(!0)}),this.cleanup.events.on(`mousedown`,this.wrapper,`mousedown`,e=>{e.button===0&&(this.onStart(e,e.target),this.wrapper.style.cursor=`grabbing`)}),this.cleanup.events.on(`mousemove`,this.wrapper,`mousemove`,e=>{e.buttons===1&&this.onMove(e,e)}),this.cleanup.events.on(`mouseup`,this.wrapper,`mouseup`,e=>{this.wrapper.style.cursor=`grab`,this.pushLog(e),this.onEnd()}),this.cleanup.events.on(`window:mouseup`,window,`mouseup`,e=>{this.touching&&(this.wrapper.style.cursor=`grab`,this.pushLog(e),this.onEnd())}),this.cleanup.events.on(`wrapper:mouseleave`,this.wrapper,`mouseleave`,()=>{this.touching&&(this.wrapper.style.cursor=`grab`,this.onEnd())}),this.cleanup.events.on(`click`,this.wrapper,`click`,e=>{!this.runtime.clickPrevented||!this.config.preventClick||(e.preventDefault(),e.stopPropagation(),this.runtime.clickPrevented=!1)},{capture:!0}),this.cleanup.events.on(`dragstart`,this.wrapper,`dragstart`,e=>e.preventDefault()),this.cleanup.events.on(`transitionend`,this.wrapper,`transitionend`,()=>this.onTransitionEnd()),this.cleanup.events.on(`root:mouseenter`,this.el,`mouseenter`,()=>this.pause()),this.cleanup.events.on(`root:mouseleave`,this.el,`mouseleave`,()=>this.resume())}onStart(e,t=null){this.animating||(this.logs=[],this.pushLog(e),this.runtime.startTarget=t,this.touching=!0,this.scrolling=!1,this.swiping=!1,this.runtime.clickPrevented=!1,this.pause(),this.wrapper.style.transition=`none`)}onMove(e,t){if(!this.touching||this.scrolling||this.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.swiping)if(Math.atan2(i,r)*180/Math.PI<this.config.touchAngle)this.swiping=!0,this.runtime.clickPrevented=ht(this.runtime.startTarget);else{this.scrolling=!0,this.resetDrag(!0);return}this.swiping&&(t.preventDefault(),this.transform=-this.index*this.width+n.x*this.config.touchRatio,this.render(!1))}}onEnd(){if(!this.touching)return;if(this.touching=!1,!this.swiping){this.resetDrag(!0);return}let e=this.getDuration(),t=this.getOffset().x,n=this.index;if(e>this.config.longSwipesMs){let e=Math.ceil(Math.abs(t)/this.width-this.config.longSwipesRatio);e>0&&(n=this.index+e*(t>0?-1:1))}else{let e=Math.abs(t)/this.width,r=e>=this.config.longSwipesRatio?Math.max(1,Math.ceil(e-this.config.longSwipesRatio)):0;r>0&&(n=t>0?this.index-r:this.index+r)}this.slideTo(n),this.logs=[],this.resume()}resetDrag(e=!0){let t=this.index===0?0:-this.index*this.width,n=e&&this.transform!==t;this.touching=!1,this.scrolling=!1,this.swiping=!1,this.logs=[],this.runtime.startTarget=null,this.transform=t,this.render(n),this.resume()}onTransitionEnd(){this.animating=!1,this.config.loop&&(this.index===0?(this.index=this.realCount,this.transform=-this.index*this.width,this.render(!1)):this.index===this.slides.length-1&&(this.index=1,this.transform=-this.index*this.width,this.render(!1))),this.updateControls()}pushLog(e){this.logs.push({x:e.pageX??e.clientX??0,y:e.pageY??e.clientY??0,time:Date.now()}),this.logs.length>5&&this.logs.shift()}getDuration(){return this.logs.length===0?0:this.logs[this.logs.length-1].time-this.logs[0].time}getOffset(){if(this.logs.length===0)return{x:0,y:0};let e=this.logs[0],t=this.logs[this.logs.length-1];return{x:t.x-e.x,y:t.y-e.y}}toRealIndex(e=this.index){return this.config.loop?e===0?this.realCount-1:e===this.slides.length-1?0:e-1:e}slideTo(e){if(this.animating)return;let t=e;this.config.loop?e<0?t=0:e>=this.slides.length&&(t=this.slides.length-1):t=Math.max(0,Math.min(e,this.slides.length-1)),this.index=t,this.transform=-t*this.width,this.render(!0),this.updateControls(),this.config.lazyload&&this.loadImages()}next(){this.animating||this.slideTo(this.index+1)}prev(){this.animating||this.slideTo(this.index-1)}render(e){e?(this.wrapper.style.transition=`transform ${this.config.speed}ms cubic-bezier(0.25, 0.46, 0.45, 0.94)`,this.animating=!0):(this.wrapper.style.transition=`none`,this.animating=!1),this.wrapper.style.transform=`translate3d(${this.transform}px, 0, 0)`}loadImages(){let e=[this.index];this.index>0&&e.push(this.index-1),this.index<this.slides.length-1&&e.push(this.index+1),e.forEach(e=>{let t=this.slides[e];if(!t)return;let n=O(`img[data-lazy]`,t);!n||n.src||(n.classList.add(`loading`),n.src=n.dataset.lazy,n.onload=()=>{n.classList.remove(`loading`),n.classList.add(`loaded`)},n.onerror=()=>{n.classList.remove(`loading`),n.classList.add(`error`)})})}initPagination(){this.pagination?this.pagination.classList.add(`is-horizontal`,`is-clickable`,`is-bullet`):(this.pagination=document.createElement(`div`),this.pagination.className=`swiper-pagination is-horizontal is-clickable is-bullet`,this.el.appendChild(this.pagination),this.dom.createdPagination=!0),this.pagination.textContent=``,this.bullets=[];for(let e=0;e<this.realCount;e++){let t=document.createElement(`span`);t.className=`swiper-pagination-indicator swiper-pagination-bullet`,t.setAttribute(`role`,`button`),t.setAttribute(`tabindex`,`0`),t.setAttribute(`aria-label`,`Go to slide ${e+1}`),this.cleanup.events.on(`bullet:${e}:click`,t,`click`,()=>{this.slideTo(this.config.loop?e+1:e)}),this.cleanup.events.on(`bullet:${e}:keydown`,t,`keydown`,t=>{t.key!==`Enter`&&t.key!==` `||(t.preventDefault(),this.slideTo(this.config.loop?e+1:e))}),this.bullets.push(t),this.pagination.appendChild(t)}}initNavigation(){this.prevButton=this.ensureNavigation(`prev`,`arrow-left`),this.nextButton=this.ensureNavigation(`next`,`arrow-right`),this.cleanup.events.on(`nav:prev`,this.prevButton,`click`,()=>this.prev()),this.cleanup.events.on(`nav:next`,this.nextButton,`click`,()=>this.next())}ensureNavigation(e,t){let n=e===`prev`?`createdPrevButton`:`createdNextButton`,r=`swiper-navigation is-${e}`,i=O(`.swiper-navigation.is-${e}`,this.el);return i?i.matches(`button`)||(i.setAttribute(`role`,`button`),i.setAttribute(`tabindex`,`0`),i.classList.add(`swiper-navigation`,`is-${e}`)):(i=document.createElement(`button`),i.type=`button`,i.className=r,this.el.appendChild(i),this.dom[n]=!0),i.setAttribute(`aria-label`,e===`prev`?`Previous slide`:`Next slide`),i.querySelector(`svg`)||(i.textContent=``,i.appendChild(I(t))),i}updateControls(){this.updatePagination(),this.updateNavigation()}updatePagination(){if(!this.bullets.length)return;let e=this.toRealIndex();this.bullets.forEach((t,n)=>{let r=n===e;t.classList.toggle(`is-active`,r),t.classList.toggle(`active`,r),t.setAttribute(`aria-current`,r?`true`:`false`)})}updateNavigation(){if(this.config.loop)return;let e=this.index<=0,t=this.index>=this.slides.length-1;this.prevButton&&(this.prevButton.classList.toggle(`is-disabled`,e),this.prevButton.toggleAttribute(`disabled`,e)),this.nextButton&&(this.nextButton.classList.toggle(`is-disabled`,t),this.nextButton.toggleAttribute(`disabled`,t))}play(){this.timer||(this.timer=setInterval(()=>this.next(),this.config.delay))}pause(){this.timer&&(clearInterval(this.timer),this.timer=null)}resume(){this.config.autoplay&&!this.timer&&this.play()}update(){this.updateSize(),this.setupStyles(),this.transform=-this.index*this.width,this.render(!1),this.updateControls()}destroy(){this.runtime?.destroyed||(this.runtime.destroyed=!0,this.pause(),this.cleanup.events.clear(),k(`[data-clone]`,this.wrapper).forEach(e=>e.remove()),this.dom.createdPagination&&this.pagination?.remove(),this.dom.createdPrevButton&&this.prevButton?.remove(),this.dom.createdNextButton&&this.nextButton?.remove(),this.dom.createdRoot&&this.el?.remove(),this.dom={root:null,wrapper:null,slides:[],pagination:null,prevButton:null,nextButton:null,bullets:[],createdRoot:!1,createdSlides:!1,mountTarget:null},this.runtime={destroyed:!0},this.settings=null)}};const _t={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():y():e??y()},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`]}},vt={type:`object`,validate:e=>!!e&&E(e.title)&&E(e.content),message:`expects an object with renderable title and content: string, Node, array, function or null.`};var yt=class{constructor(e,t={}){if(!C())throw Error(`Tabs: DOM render environment is required.`);if(e!==!1&&!T(e))throw Error(`Tabs: element expects a valid HTMLElement or false.`);this.options=v(t,_t,`Tabs.options`),this._dynamic=e===!1,this._init(e)}_init(e){this.root=e,this.current=null,this.cleanup={events:M()},this._disabledIndex=[],this._destroyed=!1;let{tabs:t,disabled:n,active:r}=this.options;if(this.root===!1&&(this.root=this._buildRoot(t)),this.tabs.length===0||this.panels.length===0)throw Error(`.tab-item or .panel-item not found.`);this._disabledIndex=this._parseDisabled(n),this._markDisabledTabs(),this._bindEvents(),this._activate(r,!1),this._initDrag()}get tabs(){return this.root?k(`.tab-item`,this.root):[]}get panels(){return this.root?k(`.panel-item`,this.root):[]}get _dragContainer(){return this.root?O(`.tab-wrap`,this.root):null}get _dragInner(){return this.root?O(`.tab-list`,this.root):null}_buildRoot(e){let{id:t,direction:n}=this.options;for(let t of e)_(`tab`,t,vt,`Tabs.options.tabs`);let r=i(`nav`,{className:`tab-list`}),a=i(`div`,{className:`tab-wrap`,children:r}),o=i(`div`,{className:`tab-panel`});for(let t of e){let e=this._createTab(t);r.appendChild(e);let n=this._createPanel(t);o.appendChild(n)}return i(`div`,{className:`j-tabs is-${n}`,id:t,children:[a,o]})}_createTab(e){let t=i(`div`,{className:`tab-item`,"data-tab":e.name||y()}),n=i(`span`);return n.append(...D(e.title,{tabs:this,item:e})),t.appendChild(n),t}_createPanel(e){let t=i(`div`,{className:`panel-item`}),n=i(`div`);return n.append(...D(e.content,{tabs:this,item:e})),t.appendChild(n),t}_parseDisabled(e){if(e==null)return[];let t=e=>typeof e==`number`?e:typeof e==`string`?this.tabs.findIndex(t=>t.dataset.tab===e):-1;if(Array.isArray(e))return e.map(t).filter(e=>e>=0);{let n=t(e);return n>=0?[n]:[]}}_markDisabledTabs(){for(let[e,t]of this.tabs.entries())this._disabledIndex.includes(e)?(t.setAttribute(`disabled`,`true`),t.classList.add(`is-disabled`)):(t.removeAttribute(`disabled`),t.classList.remove(`is-disabled`))}_bindEvents(){this._unbindEvents(),this._dragInner&&this.cleanup.events.on(`tabClick`,this._dragInner,`click`,e=>{let t=e.target.closest(`.tab-item`);if(!t||!this.tabs.includes(t))return;let n=this.tabs.indexOf(t);n>=0&&!this._disabledIndex.includes(n)&&this.activate(n)})}_unbindEvents(){this.cleanup.events.off(`tabClick`)}async _activate(e,t=!0){let{onChange:n}=this.options,r=this._getIndex(e);if(!(r<0||r>=this.tabs.length||this._disabledIndex.includes(r)||this.current===r)){this.current=r;for(let[e,t]of this.tabs.entries())t.classList.toggle(`is-active`,e===r);for(let[e,t]of this.panels.entries())t.classList.toggle(`is-active`,e===r);if(t&&n){let e=this.tabs[r],t=this.panels[r],i=e&&e.dataset.tab||r;await Promise.resolve(n(r,i,e,t))}}}_getIndex(e){return typeof e==`number`?e:typeof e==`string`?this.tabs.findIndex(t=>t.dataset.tab===e):-1}_initDrag(){let{direction:e}=this.options;if(!(!this._dragContainer||!this._dragInner)){if(this.isVertical=e===`left`||e===`right`,this.draggable=this._draggable(),!this.draggable){this._removeDragEvents();return}this._bindDragEvents(),this.cleanup.events.on(`resize`,window,`resize`,()=>{cancelAnimationFrame(this._resizeRaf),this._resizeRaf=requestAnimationFrame(()=>{this._refreshDrag()})})}}_draggable(){return this.isVertical?this._dragInner.scrollHeight>this._dragContainer.clientHeight+5:this._dragInner.scrollWidth>this._dragContainer.clientWidth+5}_bindDragEvents(){this._removeDragEvents();let e=this._dragContainer,t=this._dragInner,n=this.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.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()}async activate(e){await this._activate(e,!0)}async reInit(e={}){this.options=v({...this.options,...e},_t,`Tabs.options`);let{disabled:t,active:n}=this.options;this._disabledIndex=this._parseDisabled(t),this._markDisabledTabs(),this._bindEvents(),await this._activate(n,!1),this._refreshDrag()}async addTab(e){_(`tabConfig`,e,vt,`Tabs.addTab`);let{title:t,name:n,content:r}=e,i=O(`.tab-panel`,this.root);e.name=n||y();let a=this._createTab(e);this._dragInner&&this._dragInner.appendChild(a);let o=this._createPanel({title:t,name:n,content:r});i.appendChild(o),this._markDisabledTabs(),this._bindEvents();let{onAdd:s}=this.options;s&&await Promise.resolve(s(this.tabs.length-1,e,a,o)),this._refreshDrag()}async deleteTab(e){if(this.tabs.length<=1)return;let t=this._getIndex(e);if(t<0||t>=this.tabs.length)return;let n=this.tabs[t],r=this.panels[t],i=n.dataset.tab||t;n&&n.parentNode&&n.parentNode.removeChild(n),r&&r.parentNode&&r.parentNode.removeChild(r),this._markDisabledTabs(),this._bindEvents();let{onRemove:a}=this.options;a&&await Promise.resolve(a(t,i)),n.classList.contains(`is-active`)&&await this._activate(this.tabs.length-1,!1),this._refreshDrag()}disableTab(e){let t=this._getIndex(e);t>=0&&!this._disabledIndex.includes(t)&&(this._disabledIndex.push(t),this._markDisabledTabs(),this._bindEvents())}enableTab(e){let t=this._getIndex(e),n=this._disabledIndex.indexOf(t);n>=0&&(this._disabledIndex.splice(n,1),this._markDisabledTabs(),this._bindEvents())}destroy(){if(this._destroyed)return;let e=this.root,t=this._dynamic;this._destroyed=!0,this._unbindEvents(),this._removeDragEvents(),cancelAnimationFrame(this.raf),cancelAnimationFrame(this._resizeRaf);for(let e of this.tabs)e.classList.remove(`is-active`,`is-disabled`),e.removeAttribute(`disabled`);for(let e of this.panels)e.classList.remove(`is-active`);this.cleanup.events.off(`resize`),t&&e?.parentNode&&e.parentNode.removeChild(e),this.root=null,this.options={},this.isVertical=!1,this.cleanup.events.clear(),this.cleanup=null}},bt={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:`自动`}},xt=class{constructor(e={}){if(!C())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=bt,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 c(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);Se(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`,t=null){let n=t||[{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 i(`div`,{className:e,children:[i(`div`,{style:{display:`flex`,justifyContent:`center`},children:i(`button`,{className:`j-button is-text`,"data-action":`close`,children:this._t(`b`)})}),i(`h3`,{children:this._t(`t`)}),i(`p`,{style:{marginTop:0,fontSize:`var(--text-sm, 0.875rem)`},children:this._t(`d`)}),i(`div`,{className:`palette-container`,children:n.map(e=>i(`div`,{className:`palette-item`,"data-palette":e.type,children:[i(`div`,{className:`item-title`,children:e.title}),i(`div`,{className:`items`,children:e.buttons.map(([t,n])=>i(`button`,{className:`j-button is-default${String(this.options[e.type])===String(t)?` is-active`:``}`,"data-palette":t,children:[e.type===`theme`?i(`span`,{className:`el-prefix item-hex`,style:{backgroundColor:`var(--${t}-10)`}}):null,i(`span`,{className:`button-text`,children:n})]}))})]}))})]})}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)}};function Q(e){"@babel/helpers - typeof";return Q=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},Q(e)}function St(e,t){if(Q(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Q(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Ct(e){var t=St(e,`string`);return Q(t)==`symbol`?t:t+``}function wt(e,t,n){return(t=Ct(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Tt={type:`string`,enum:[`info`,`success`,`warning`,`error`,`primary`]},Et={type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},Dt={type:`number`,validate:e=>e>0,message:`expects a number greater than 0.`};var $=class e{_z(){}static show(t=``,n=3e3,r=`info`){if(!C())throw Error(`Toast: DOM render environment is required.`);Ot(t,n,r);let a=O(`.j-toast-container`);a||(a=i(`div`,{className:`j-toast-container`}),document.body.appendChild(a));let o=I(r===`primary`?`info`:r),s=i(`div`,{className:`j-toast is-${r}`,"data-toast":y(),children:[i(`span`,{className:`toast-icon`,children:o}),i(`span`,{className:`toast-message`,children:t})]});a.appendChild(s),e._setTimer(()=>{s.classList.add(`toast-show`)},10),n>0&&e._setTimer(()=>{e.hide(s)},n);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){t&&(e.disposers.get(t)?.(),e.disposers.delete(t),t.classList.remove(`toast-show`),t.classList.add(`toast-hide`),e._setTimer(()=>{t.parentNode&&t.parentNode.removeChild(t);let e=O(`.j-toast-container`);e&&e.children.length===0&&e.parentNode.removeChild(e)},300))}static lite(t=``,n=2e3){if(!C())throw Error(`Toast: DOM render environment is required.`);_(`message`,t,`string`,`Toast.lite`),_(`duration`,n,Dt,`Toast.lite`);let r=O(`.j-toast-lite`);r&&r.remove();let a=i(`div`,{className:`j-toast-lite`,children:t});return document.body.appendChild(a),e._setTimer(()=>a.classList.add(`is-shown`),10),e._setTimer(()=>{a.classList.remove(`is-shown`),a.classList.add(`is-hidden`),e._setTimer(()=>a.remove(),300)},n),a}static _setTimer(t,n){let r=setTimeout(()=>{e.timers.delete(r),t()},n);return e.timers.add(r),r}static clearAll(){for(let t of e.timers)clearTimeout(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()}};wt($,`timers`,new Set),wt($,`disposers`,new Map);function Ot(e,t,n){_(`message`,e,`string`,`Toast.show`),_(`duration`,t,Et,`Toast.show`),_(`type`,n,Tt,`Toast.show`)}const kt={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 At=class{constructor(e,t={}){if(!C())throw Error(`Tooltip: DOM render environment is required.`);if(!T(e))throw Error(`Tooltip: element expects a valid HTMLElement.`);let n=v(t,kt,`Tooltip.options`),r=this._buildTooltipContainer(n);this.options=n,this._destroyed=!1,this.drop=new B(e,{name:n.name,mode:n.mode,position:n.position,offset:n.offset,content:r,className:n.className,id:n.id,delay:n.delay,hoverIntent:n.hoverIntent})}_buildTooltipContainer(e){let t=i(`div`,{className:`tooltip-message`,children:e.message});return i(`div`,{className:e.className?`j-tooltip ${e.className}`:`j-tooltip`,children:t})}show(e=!0){this.drop.show(e)}hide(e=!0){this.drop.hide(e)}toggle(){this.drop.toggle()}destroy(){this._destroyed||(this._destroyed=!0,this.drop?.destroy(),this.drop=null,this.options=null)}};const jt={rules:{default:{},type:`object`},messages:{default:{},type:`object`},onSubmit:{default:null,types:[`function`,`null`]}};var Mt=class{constructor(e,t={},n=!1){if(!C())throw Error(`Validator: DOM render environment is required.`);this.options=v(t,jt,`Validator.options`),this._validateOptions(e,this.options,n),this._init(e),n&&this._bindEvents()}_validateOptions(e,t,n){_(`element`,e,[`HTMLElement`,`string`],`Validator`),_(`bindEvents`,n,`boolean`,`Validator`)}_init(e){if(this.root=A(e,`Validator.element`),!this.root)throw Error(`Validator: element not found.`);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`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}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}_validateNoSpace(e,t){return!/\s/.test(e.value)||t!==!0}_errorMsg(e,t,n){e.type!==`checkbox`&&(e.classList.remove(`is-valid`),e.classList.add(`is-invalid`));let r=this.options.messages[t]&&this.options.messages[t][n];if(r){this.message=r;let t=e.closest(`.form-control`),n=t?O(`.help-block`,t):null;n||(n=i(`div`,{className:`help-block is-invalid`,children:r}),t.appendChild(n))}}_success(e){this.message=``;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,this.message=``}destroy(){this._destroyed||(this._destroyed=!0,this._unbindEvents(),this.reset(),this.root=null,this.options=null,this.message=null,this.valid=null,this.cleanup?.events.clear(),this.cleanup=null)}};export{je as Accordion,B as Drop,Ue as Flow,qe as Menu,ct as Modal,ut as Offcanvas,ft as Parabola,gt as Swiper,yt as Tabs,xt as Theme,$ as Toast,At as Tooltip,Mt as Validator,De as addIcons,k as all,C as canRenderDOM,S as canUseDOM,u as copy,M as createEventManager,We as createFlow,fe as destroyAll,N as getCookie,A as getEl,Ee as getIcons,m as getType,I as icon,L as iconHtml,Te as iconMarkup,ee as isClass,T as isElement,h as isFunction,l as isMobile,w as isNode,E as isRenderableContent,j as listen,D as normalizeContentNodes,be as postJson,O as q,y as randomId,de as release,Ce as removeCookie,v as resolveOptions,xe as restUrl,pe as service,Se as setCookie,le as singleton,p as timer,ye as unlisten,ce as uuid,ie as validate,se as validateOptions,_ as validateParam};
1
+ import{createDeepStore as e,createEffect as t,createRoot as n,flushSync as r,jsx as i,onCleanup as a,render as o,untrack as s}from"vanilla-signal";import{t as c}from"vanilla-signal-i18n";function l(){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 u(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(()=>d(t)):Promise.resolve(d(t))}function d(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)}}const f=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),p={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])}},m=e=>e===null?`null`:Array.isArray(e)?`array`:typeof HTMLElement<`u`&&e instanceof HTMLElement?`HTMLElement`:typeof Node<`u`&&e instanceof Node?`Node`:typeof e,h=e=>typeof e==`function`&&e.prototype!==null&&e.prototype.constructor===e,ee=e=>typeof e==`function`&&/^class\s/.test(Function.prototype.toString.call(e));function te(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function ne(e){return Array.isArray(e)?e.slice():te(e)?{...e}:e}function g(e={}){return typeof e==`string`||Array.isArray(e)?{type:e}:!e||typeof e!=`object`?{}:e}function re(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}`)}}const ie=(e,t,n,r=[])=>{let i=Array.isArray(n)?n:[n],a=m(t);if(!i.some(e=>e===a)){let t=i.join(`, `);throw Error(`Validator: ${e} expects ${t}, but got ${a}.`)}return re(e,t,r),t};function ae(e,t){return e?`${e}.${t}`:t}function oe(e){if(f(e,`default`))return ne(e.factory&&typeof e.default==`function`?e.default():e.default)}function _(e,t,n={},r=``,i={}){let a=g(n),o=ae(r,e),s=f(a,`types`)?a.types:a.type;if(a.required&&t==null)throw Error(`Validator: ${o} is required.`);if(s===void 0?re(o,t,a.conditions):ie(o,t,s,a.conditions),Array.isArray(a.enum)&&!a.enum.includes(t))throw Error(`Validator: ${o} expects one of ${a.enum.join(`, `)}.`);if(typeof a.validate==`function`&&!a.validate(t,{...i,name:e,value:t,namespace:r}))throw Error(`Validator: ${o} ${a.message||`does not satisfy the required condition.`}`);return t}function se(e,t,n=`Options`){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Validator: ${n} expects object.`);for(let[r,i]of Object.entries(t||{}))_(r,e[r],i,n,{key:r,options:e,schema:t});return e}function v(e={},t={},n=`Options`){let r=e??{};if(typeof r!=`object`||Array.isArray(r))throw Error(`Validator: ${n} expects object.`);let i={...r},a=Object.entries(t||{});for(let[e,t]of a){let n=g(t);i[e]=f(r,e)?r[e]:oe(n)}for(let[e,n]of a){let a=g(n);typeof a.normalize==`function`&&(i[e]=a.normalize(i[e],{key:e,input:r,options:i,schema:t}))}return se(i,t,n)}function ce(){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 y(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}const b=new Map,x=new Map,le=(e,t=[],n=``,r=!1,i=null)=>{if(!h(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()===``?y():n;if(b.has(a)&&!r)return b.get(a).proxy;let o=new e(...t),s=new Proxy(o,{get(e,t,n){return i&&ue(a,i),Reflect.get(e,t,n)},set(e,t,n,r){return Reflect.set(e,t,n,r)}});return b.set(a,{instance:o,proxy:s}),s};function ue(e,t){x.has(e)&&clearTimeout(x.get(e));let n=setTimeout(()=>{de(e)},t);x.set(e,n)}function de(e){if(b.has(e)){let{instance:t}=b.get(e);if(typeof t.destroy==`function`)try{t.destroy()}catch{throw Error(`release(): destroy() failed on instance with key "${e}".`)}b.delete(e)}x.has(e)&&(clearTimeout(x.get(e)),x.delete(e))}function fe(){for(let{instance:e}of b.values())if(typeof e.destroy==`function`)try{e.destroy()}catch{}b.clear();for(let e of x.values())clearTimeout(e);x.clear()}const pe={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 S(){return typeof document<`u`}function C(){return!S()||typeof document.createElement!=`function`?!1:typeof document.createElement(`div`).insertBefore==`function`}function w(e){return S()&&typeof Node<`u`&&e instanceof Node}function T(e){return typeof Element<`u`&&e instanceof Element}function E(e){return e==null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`||typeof e==`function`||Array.isArray(e)||w(e)}function D(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=>D(e,t));if(w(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 O(e,t=document){return t.querySelector(e)}function k(e,t=document){return Array.from(t.querySelectorAll(e))}function A(e,t=`getEl`){if(typeof Element<`u`&&e instanceof Element)return e;if(typeof e==`string`)return O(e);if(e===!1||e==null)return null;throw Error(`${t}: expects Element or string.`)}const me=()=>{};function he(e){return!!e&&typeof e.addEventListener==`function`&&typeof e.removeEventListener==`function`}function ge(e,t){if(!he(e))throw TypeError(`${t}: target expects EventTarget.`)}function _e(e,t){if(typeof e!=`string`||e.trim()===``)throw TypeError(`${t}: type expects a non-empty string.`)}function ve(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){ge(e,`listen`),_e(t,`listen`),ve(n,`listen`);let i=!0;return e.addEventListener(t,n,r),()=>{i&&(i=!1,e.removeEventListener(t,n,r))}}function ye(e,t,n,r){ge(e,`unlisten`),_e(t,`unlisten`),ve(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 me;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 be(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()}const xe=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 Se(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 Ce(e){return typeof document>`u`?!0:(document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`,!N(e))}const 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 we(e){if(!(e in P))throw Error(`Icon "${e}" not found.`)}function F(e){return we(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(!C())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 L(e){return F(e)}const Te=L;function Ee(){return{...P}}function De(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}}const Oe={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():y():e??y()},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`}},R={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 z(e){return _(`items`,e,R,`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||y()}})}var je=class{constructor(e,t={}){if(!C())throw Error(`Accordion: DOM render environment is required.`);if(e!==!1&&!T(e))throw Error(`Accordion: element expects a valid HTMLElement or false.`);let n=v(t,Oe,`Accordion.options`);this.config={options:n},this.dom={root:null,headers:[],panels:[]},this.cleanup={events:M()},this.runtime={dynamic:e===!1,activeNames:[],destroyed:!1};try{this.init(e,n)}catch(e){throw this.destroy(),e}}get root(){return this.dom?.root||null}set root(e){this.dom||(this.dom={headers:[],panels:[]}),this.dom.root=e}get options(){return this.config?.options||{}}set options(e){this.config||(this.config={}),this.config.options=e||{}}get dynamic(){return!!this.runtime?.dynamic}get destroyed(){return!!this.runtime?.destroyed}get activeNames(){return this.runtime?.activeNames||[]}set activeNames(e){this.runtime||(this.runtime={}),this.runtime.activeNames=Array.isArray(e)?e:[]}init(e,t){if(this.root=e===!1?this.buildRoot(t):e,this.refreshDom(),this.headers.length===0||this.panels.length===0)throw Error(`Accordion: .accordion-header or .accordion-panel not found.`);this.prepareItems(),this.activeNames=this.resolveActiveNames(t.active),this.syncAll(),this.bindEvents()}refreshDom(){if(!this.root){this.dom.headers=[],this.dom.panels=[];return}this.dom.headers=k(`.accordion-header`,this.root),this.dom.panels=k(`.accordion-panel`,this.root)}assertActive(e){if(this.destroyed)throw Error(`Accordion.${e}: instance has been destroyed.`)}buildRoot(e){let t=z(e.items),n=i(`div`,{className:`j-accordion`,id:e.id});return n.append(this.buildItems(t)),n}buildItems(e){let t=document.createDocumentFragment();return e.forEach((e,n)=>{let r=e.name||y(),a=`${this.options.id}_header_${n}`,o=`${this.options.id}_panel_${n}`,s=i(`span`,{className:`header-title`});s.append(...this.contentView(e.title,e,n,`title`));let c=i(`div`,{className:`accordion-header`,"data-item":r,id:a,role:`button`,tabindex:`0`,"aria-controls":o,children:[s,i(`span`,{className:`header-arrow`,"aria-hidden":`true`,children:I(`arrow-down`)})]}),l=i(`div`,{className:`panel-content`});l.append(...this.contentView(e.content,e,n,`content`));let u=i(`div`,{className:`accordion-panel`,id:o,role:`region`,"aria-labelledby":a,children:l});t.append(c,u)}),t}contentView(e,t,n,r){return D(e,{accordion:this,item:t,index:n,type:r,active:this.isActive(t.name)})}prepareItems(){this.headers.forEach((e,t)=>{let n=this.panels[t];if(!n)return;let r=e.dataset.item||y();e.dataset.item=r,e.id||(e.id=`${this.options.id}_header_${t}`),n.id||(n.id=`${this.options.id}_panel_${t}`),e.setAttribute(`role`,`button`),e.setAttribute(`tabindex`,`0`),e.setAttribute(`aria-controls`,n.id),n.setAttribute(`role`,`region`),n.setAttribute(`aria-labelledby`,e.id)})}resolveActiveNames(e){if(e==null){let e=this.headers.filter((e,t)=>{let n=this.panels[t];return e.classList.contains(`is-active`)||n?.classList.contains(`is-active`)});return e.map(e=>e.dataset.item).slice(0,this.options.multiple?e.length:1)}let t=Array.isArray(e)?e:[e],n=[];for(let e of t){let t=this.getIndex(e);if(!(t<0||t>=this.headers.length)&&(n.push(this.headers[t].dataset.item||String(t)),!this.options.multiple))break}return Array.from(new Set(n))}bindEvents(){this.unbindEvents(),this.cleanup.events.on(`click`,this.root,`click`,e=>{let t=e.target.closest(`.accordion-header`);!t||!this.headers.includes(t)||this.active(this.headers.indexOf(t))}),this.cleanup.events.on(`keydown`,this.root,`keydown`,e=>{if(e.key!==`Enter`&&e.key!==` `)return;let t=e.target.closest(`.accordion-header`);!t||!this.headers.includes(t)||(e.preventDefault(),this.active(this.headers.indexOf(t)))})}unbindEvents(){this.cleanup.events.clear()}syncAll(){this.headers.forEach((e,t)=>{this.syncItem(t,this.isActive(e.dataset.item))})}syncItem(e,t){let n=this.headers[e],r=this.panels[e];!n||!r||(n.classList.toggle(`is-active`,t),r.classList.toggle(`is-active`,t),n.setAttribute(`aria-expanded`,String(t)),r.setAttribute(`aria-hidden`,String(!t)),r.hidden=!t)}isActive(e){return this.activeNames.includes(e)}async activateItem(e,t=!0){let n=this.getIndex(e);if(n<0||n>=this.headers.length)return;let r=this.headers[n],i=this.panels[n],a=r.dataset.item||String(n),o=this.isActive(a);o&&!this.options.multiple&&!this.options.collapsible||(this.options.multiple?this.activeNames=o?this.activeNames.filter(e=>e!==a):[...this.activeNames,a]:o?this.options.collapsible&&(this.activeNames=[]):this.activeNames=[a],this.syncAll(),t&&this.options.onChange&&await Promise.resolve(this.options.onChange(n,a,r,i,this)))}getIndex(e){return typeof e==`number`?e:typeof e==`string`?this.headers.findIndex(t=>t.dataset.item===e):-1}get headers(){return this.dom?.headers||[]}get panels(){return this.dom?.panels||[]}get current(){let e=this.activeNames[0];return e?this.getIndex(e):null}get state(){return{activeNames:[...this.activeNames],current:this.current}}async active(e){this.assertActive(`active`),await this.activateItem(e,!0)}setItems(e,t=0){this.assertActive(`setItems`),_(`items`,e,R,`Accordion.setItems`),_(`active`,t,ke,`Accordion.setItems`);let n=z(e);this.options.items=Ae(n),this.options.active=t,this.root.textContent=``,this.root.append(this.buildItems(n)),this.refreshDom(),this.prepareItems(),this.activeNames=this.resolveActiveNames(t),this.syncAll()}destroy(){if(this.destroyed)return;let e=this.root,t=this.dynamic;this.runtime.destroyed=!0,this.unbindEvents();for(let e of this.headers)e.classList.remove(`is-active`),e.removeAttribute(`aria-expanded`);for(let e of this.panels)e.classList.remove(`is-active`),e.removeAttribute(`aria-hidden`),e.hidden=!1;t&&e?.parentNode&&e.parentNode.removeChild(e),this.root=null,this.options={},this.activeNames=[],this.cleanup.events.clear(),this.dom.headers=[],this.dom.panels=[]}};const Me={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():y():e??y()},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 B=class{constructor(e,t={}){if(!C())throw Error(`Drop: DOM render environment is required.`);if(!T(e))throw Error(`Drop: element expects a valid HTMLElement.`);this.target=e,this.options=v(t,Me,`Drop.options`),this._init(this.options)}_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:t,content:n,id:r,name:a,containerClassName:o}=e,s=t||``,c=w(n)&&n.nodeType===1?n:i(`div`,{className:o?`drop-container ${o}`:`drop-container`,children:D(n,this)}),l=i(`div`,{className:s?`j-drop ${s}`:`j-drop`,id:r,"data-drop":a||y(),children:c});this.root=l,document.body.appendChild(l)}_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())),this.cleanup.events.on(`root:enter`,this.root,`mouseenter`,()=>this.show()),this.cleanup.events.on(`root:leave`,this.root,`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)))}_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.options;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._setPosition():(this.root.style.top=``,this.root.style.left=``),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.options.onShown&&this.options.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.options.onHidden&&this.options.onHidden())}toggle(){this.isVisible?this.hide():this.show()}destroy(){this.options&&(clearTimeout(this._timer?.show),clearTimeout(this._timer?.hide),this.root&&this._exec(!1),this.options&&this._unbindEvents(),this.root?.parentNode&&this.root.parentNode.removeChild(this.root),this.options=null,this.root=null,this.target=null,this._timer={show:null,hide:null},this.cleanup?.events.clear(),this.cleanup=null)}};function Ne(e){return e==null||typeof e==`string`||typeof e==`function`||Array.isArray(e)||typeof Node<`u`&&e instanceof Node}function Pe(e){return!!e&&typeof e==`object`&&typeof e.id==`string`}function Fe(e){return e==null||e===!1||typeof e==`function`}function V(e){return e&&typeof e==`object`&&!Array.isArray(e)?{...e}:{}}function Ie(e){return Array.isArray(e)?[...e]:[]}function Le(e){return Array.isArray(e)?e.map(e=>({...e,data:V(e.data),view:V(e.view)})):[]}function Re(e,t){return typeof e==`string`?{id:e}:e&&typeof e==`object`?e:{id:t}}const ze={validate:Pe,message:`expects a step object with a string id.`},Be={validate:Ne,message:`expects string, Node, array, function or null.`},Ve={validate:e=>Array.isArray(e)&&e.length>0,message:`expects a non-empty steps array.`},H={validate:e=>e==null||typeof e==`object`&&!Array.isArray(e),message:`expects an object or null.`},U={validate:Fe,message:`expects function, false or null.`},He={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():y():e??y()},steps:{default:[],...Ve},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`},backText:{default:`Back`,type:`string`},nextText:{default:`Next`,type:`string`},finishText:{default:`Finish`,type:`string`},resetText:{default:`Reset`,type:`string`},className:{default:``,type:`string`},renderHeader:{default:null,...U},renderSteps:{default:null,...U},renderBody:{default:null,...U},renderFooter:{default:null,...U},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=v(e,He,`Flow.options`),this._init(this.options)}_init(t){this.steps=Le(t.steps),this._validateSteps(this.steps),this._stepMap=new Map(this.steps.map((e,t)=>[e.id,t])),this._initialStepId=this._resolveInitialStepId(t.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=e({id:t.id,currentId:this._initialStepId,currentIndex:this._stepMap.get(this._initialStepId),previousId:null,previousIndex:null,direction:null,history:[this._initialStepId],data:V(this._initialData.global),stepData:V(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:V(this.state.data),stepData:V(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(!C())throw Error(`Flow.mount: DOM environment is required.`);let t=typeof e==`string`?document.querySelector(e):e;if(!T(t))throw Error(`Flow.mount: container expects Element or selector.`);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`),_(`payload`,e,H,`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}=Re(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`),_(`payload`,e,H,`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}=Re(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`),_(`payload`,t,H,`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`),_(`data`,e,H,`Flow.setData`),e?(r(()=>{Object.assign(this.state.data,e),this.state.version+=1}),this._emitChange(),this):this}setStepData(e,t,n={}){return this._assertActive(`setStepData`),_(`stepId`,e,{type:`string`},`Flow.setStepData`),_(`data`,t,H,`Flow.setStepData`),!t||!this._stepMap.has(e)?this:(r(()=>{this.state.stepData[e]={...V(this.state.stepData[e]),...t},this.options.cache&&Object.assign(this.state.data,t),this.state.version+=1}),n.silent||this._emitChange(),this)}getStepData(e){return V(this.state.stepData[e])}reset(){return this._assertActive(`reset`),r(()=>{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,V(this._initialData.global)),this._replaceObject(this.state.stepData,V(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`),_(`payload`,e,H,`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(_(String(n),r,ze,`Flow.options.steps`),_(`content`,r.content??null,Be,`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]=V(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:t,payload:n,fromStep:i}){let a=this.snapshot(),o=this._captureState();try{n&&this.setStepData(i.id,n,{silent:!0}),await this._assertCanLeave(i,e,t),await this._assertCanEnter(e,i,t),typeof i.onLeave==`function`&&await this._callHook(i.onLeave,[this._createContext({direction:t,step:i,targetId:e.id})]);let o=this.state.currentId,s=this.state.currentIndex,c=this._stepMap.get(e.id);r(()=>{this.state.previousId=o,this.state.previousIndex=s,this.state.currentId=e.id,this.state.currentIndex=c,this.state.direction=t,t===`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:t,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:V(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,t=this.state?.busyAction||null){this.state&&r(()=>{this.state.loading=e,this.state.busyAction=e?t:null})}_handleError(e,t=null){this.state&&(r(()=>{this.state.error=e,this.state.version+=1}),typeof this.options.onError==`function`&&this.options.onError(e,this.snapshot(),this,t))}_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:Ie(this.state.history),data:V(this.state.data),stepData:V(this.state.stepData),loading:this.state.loading,busyAction:this.state.busyAction,error:this.state.error,version:this.state.version}}_restoreState(e,t={}){r(()=>{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=t.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 i(`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=n(e=>(a(o(()=>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 i(`div`,{className:`flow-header`,children:[i(`div`,{id:`${this.options.id}-title`,className:`flow-title`,children:e.currentStep?.title||e.currentStep?.id||``}),e.currentStep?.description?i(`div`,{className:`flow-description`,children:e.currentStep.description}):null]})}_stepsView(e){return i(`ol`,{className:`flow-steps`,role:`list`,"aria-label":`Flow steps`,children:this.steps.map((t,n)=>i(`li`,{className:this._stepClass(n,e.currentIndex),"aria-current":n===e.currentIndex?`step`:void 0,children:[i(`button`,{type:`button`,className:`flow-step-button`,disabled:this.options.linear&&n>e.currentIndex,"aria-current":n===e.currentIndex?`step`:void 0,"aria-disabled":this.options.linear&&n>e.currentIndex?`true`:`false`,"aria-label":`${n+1}. ${t.title||t.id}`,onClick:()=>{n!==e.currentIndex&&this.goTo(n)},children:[i(`span`,{className:`flow-step-index`,children:n+1}),i(`span`,{className:`flow-step-title`,children:t.title||t.id})]})]}))})}_bodyView(e){return i(`div`,{className:`flow-body`,role:`region`,"aria-live":`polite`,"aria-busy":e.loading?`true`:`false`,children:this._contentView(e.currentStep?.content)})}_footerView(e){return i(`div`,{className:`flow-footer`,children:[this.options.showReset?i(`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.resetText}):null,this.options.showBack?i(`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.backText}):null,this.options.showNext?i(`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.finishText:this.options.nextText}):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)}const Ge={type:{default:`mobile`,type:`string`},id:{default:``,type:`string`,normalize:e=>e.trim()===``?y():e.trim()},items:{default:[],type:`array`},backText:{default:`Back`,type:`string`}},Ke={type:`array`};var qe=class{constructor(e,t={}){this._element=e,this.options=v(t,Ge,`Menu.options`),this.root=null,this.cleanup={events:M()},this._bound=!1,this._destroyed=!1,this._validateOptions()}get menu(){return this.root}_validateOptions(){let{items:e}=this.options;this._element!==!1&&_(`element`,this._element,[`HTMLElement`,`string`],`Menu`),this._verifyItems(e)}_verifyItems(e){_(`items`,e,Ke,`Menu`)}build(){if(this._bound)return this;if(!C())throw Error(`Menu: DOM render environment is required.`);if(this._element===!1)this.root=this._buildRoot(),this._bound=!0;else{let e=A(this._element,`Menu.element`);if(!e)throw Error(`Element not found`);this.root=e,this._bound=!0}return this._bindEvents(),this}_buildRoot(){let{items:e,id:t,type:n}=this.options;return i(`nav`,{className:`j-${n}-menu`,children:i(`ul`,{className:`menu`,id:t,children:e.map(e=>this._buildItem(e))})})}_buildItem(e){let t=e.children&&e.children.length>0,n=[`menu-item`];t&&n.push(`menu-item-has-children`),e.classes&&Array.isArray(e.classes)&&n.push(...e.classes);let r=[i(`a`,{className:`menu-link`,href:e.url||`#`,...e.target&&{target:e.target},children:e.title})];return t&&r.push(i(`ul`,{className:`sub-menu`,children:e.children.map(e=>this._buildItem(e))})),i(`li`,{className:n.join(` `),id:`menu-item-${e.id||y()}`,children:r})}_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._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 t=O(`:scope > .sub-menu`,e);if(!t||O(`:scope > .menu-item.back`,t))return;let n=i(`li`,{className:`menu-item back`,children:i(`a`,{className:`menu-link`,children:[i(`icon`,{className:`el-icon el-prefix`,children:I(`arrow-left`)}),i(`span`,{className:`menu-text`,children:this.options.backText})]})});t.insertBefore(n,t.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 t=this.root.matches?.(`.menu`)||this.root.matches?.(`ul`)||this.root.matches?.(`ol`)?this.root:O(`:scope > .menu`,this.root)||O(`.menu`,this.root);if(!t)throw Error(`Menu: .menu element not found for setItems().`);this._unbindEvents(),t.textContent=``,t.append(...e.map(e=>this._buildItem(e))),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 W(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 G(e){return{...e,fields:Array.isArray(e.fields)?W(e.fields):e.fields}}function Je(e){return e&&typeof e==`object`?e:{value:e,text:e}}function K(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Ye(e){return e==null||typeof e==`string`||typeof e==`function`||Array.isArray(e)||w(e)}function Xe(e){return K(e)}function Ze(e){return e==null||typeof e==`object`&&typeof e.next==`function`&&typeof e.back==`function`&&typeof e.snapshot==`function`}function q(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Qe(e,t){return!Array.isArray(e)||!K(t)?e:e.map(e=>{if(!e?.name||!q(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){return{...e,fields:Array.isArray(e.fields)?W(e.fields):null,loading:!1,submitting:!1,visible:!1,data:null,extraData:null}}function et(e,t){return!t||typeof t!=`object`?e:Object.assign(e,t)}const tt={validate:Ye,message:`expects string, Node, array, function or null.`},nt={types:[`array`,`null`]},rt={validate:e=>typeof e==`string`||e===!1,message:`expects string or false.`},J={title:{default:`Tip`,type:`string`},content:{default:``,...tt},position:{default:`center`,type:`string`},confirmText:{default:`Confirm`,type:`string`},cancelText:{default:`Cancel`,type:`string`},showCancel:{default:!0,type:`boolean`},showClose:{default:!0,type:`boolean`},showBack:{default:!1,type:`boolean`},showNext:{default:!1,type:`boolean`},fullscreen:{default:!1,type:`boolean`},flow:{default:null,validate:Ze,message:`expects a Flow instance or null.`},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`]},onBack:{default:null,types:[`function`,`null`]},onNext:{default:null,types:[`function`,`null`]},fields:{default:null,...nt},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():y():e??y()},escClose:{default:!1,type:`boolean`},bgClose:{default:!1,type:`boolean`},lazy:{default:!1,type:`boolean`},backText:{default:`Back`,...rt},nextText:{default:`Next`,...rt}},it={...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`]}},at=new Set([`id`,`lazy`]),ot={validate:e=>!!e&&typeof e==`object`&&!Array.isArray(e),message:`expects an object.`},st={validate:Xe,message:`expects an options object.`},Y=[];let X=0,Z=``;var ct=class{constructor(e={}){let t=v(e,J,`Modal.options`);this.init(t)}static get modalStack(){return Y}init(t){this.dom={root:null},this.cleanup={events:M(),state:null,view:null,hideTimer:null},this.cache={initial:G(t),fieldIds:new Map,baseStyle:``,previousActiveElement:null,formId:`${t.id}_form`},this.runtime={scrollLocked:!1,visibleApplied:!1,destroyed:!1},this.state=e($e(t)),this.bindReactiveVisibility(),!this.state.lazy&&C()&&this.buildRoot()}get root(){return this.dom?.root||null}set root(e){this.dom||(this.dom={}),this.dom.root=e}get modal(){return this.dom.modal||(this.root?O(`.j-modal`,this.root):null)}get form(){return this.dom.form&&this.root?.contains(this.dom.form)?this.dom.form:this.root?O(`form`,this.root):null}get initialOptions(){return this.cache.initial?G(this.cache.initial):null}get initialFields(){return this.cache.initial?.fields?W(this.cache.initial.fields):null}get initialContent(){return this.cache.initial?.content??null}get content(){return this.state?.content??null}get data(){return this.state?.data??null}get visible(){return!!this.state?.visible}set visible(e){this.state&&r(()=>{this.state.visible=!!e})}buildRoot(){if(this.root)return this.root;let{id:e}=this.state,t=i(`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.title||`Modal`,children:i(`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:[i(`div`,{className:`modal-header`,style:()=>({display:this.state.header?``:`none`}),ref:e=>{this.dom.header=e}}),i(`div`,{className:`modal-body`,ref:e=>{this.dom.body=e}}),i(`div`,{className:`modal-footer`,style:()=>({display:this.state.footer?``:`none`}),ref:e=>{this.dom.footer=e}})]})});return this.root=t,this.mountView(),t}mountView(){this.cleanup.view||!this.dom.body||(this.cleanup.view=n(e=>(this.dom.header&&a(o(()=>this.headerView(),this.dom.header)),a(o(()=>this.bodyView(),this.dom.body)),this.dom.footer&&a(o(()=>this.footerView(),this.dom.footer)),this.bindReactiveLoading(),this.bindReactiveStyle(),e)))}headerView(){return()=>this.state.header?[i(`div`,{className:`modal-title`,id:`${this.state.id}_title`,children:()=>this.state.title}),this.state.showClose?i(`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?i(`button`,{type:`button`,className:`j-button is-ghost modal-cancel`,"data-action":`close`,"aria-label":`close`,disabled:()=>this.isBusy(),children:()=>this.state.cancelText}):null,this.state.showBack&&this.state.backText!==!1?i(`button`,{type:`button`,className:`j-button is-ghost modal-back`,"data-action":`back`,disabled:()=>this.isBusy(),children:()=>this.state.backText}):null,this.state.showNext&&this.state.nextText!==!1?i(`button`,{type:`button`,className:`j-button is-secondary modal-next`,"data-action":`next`,disabled:()=>this.isBusy(),children:()=>this.state.nextText}):null,i(`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.confirmText})]:null}bodyView(){return this.isFormMode()?this.formView():(this.dom.form=null,this.contentView(this.state.content))}formView(){return i(`div`,{className:`modal-form-container`,children:i(`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,t){let n=this.resolveFieldId(e,t),r=this.labelView(e,n);return i(`div`,{className:`form-item`,style:{display:e.type===`hidden`?`none`:``},children:[r,i(`div`,{className:`form-control`,children:this.controlView(e,n)})]})}labelView(e,t){return i(`label`,{className:`item-label ${e.required?`is-required`:``}`,for:t,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}_${y()}`),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,t){let n=e.type||`text`,r={type:n,className:`j-input`,name:e.name,id:t,placeholder:e.placeholder||``,value:e.value??``,autocomplete:e.autocomplete||this.autoComplete(n),required:!!e.required,disabled:!!e.disabled,readonly:!!e.readonly};return e.checked!==void 0&&(r.checked=!!e.checked),i(`input`,r)}textareaView(e,t){return i(`textarea`,{className:`j-textarea`,name:e.name,id:t,placeholder:e.placeholder||``,value:e.value??``,required:!!e.required,disabled:!!e.disabled,readonly:!!e.readonly})}selectView(e,t){let n=e.value;return i(`select`,{className:`j-select`,name:e.name,id:t,autocomplete:`off`,required:!!e.required,disabled:!!e.disabled,readonly:!!e.readonly,multiple:!!e.multiple,children:(e.options||[]).map(e=>{let t=Je(e);return i(`option`,{value:t.value??``,disabled:!!t.disabled,selected:this.isSelected(n,t.value),children:t.text??t.label??t.value??``})})})}contentView(e){if(typeof e==`function`)return e(this);if(Array.isArray(e)||w(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;t(()=>{this.state.loading&&!e?(e=i(`div`,{className:`j-loading is-active`,"aria-live":`polite`,children:i(`div`,{className:`loading-spinner`})}),this.dom.modal.appendChild(e)):!this.state.loading&&e&&(e.remove(),e=null)}),a(()=>{e?.remove(),e=null})}bindReactiveStyle(){t(()=>{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)}validateOptionPatch(e,t=`Modal.update`){_(`options`,e,st,t);for(let n of Object.keys(e)){if(!Object.prototype.hasOwnProperty.call(J,n))throw Error(`Validator: ${t}.${n} is not a supported modal option.`);if(at.has(n))throw Error(`Modal.update: "${n}" cannot be updated after initialization.`);_(n,e[n],J[n],t)}}applyOptions(e,{validate:t=!0}={}){if(t&&this.validateOptionPatch(e),!e||Object.keys(e).length===0)return this;let n=Object.prototype.hasOwnProperty.call(e,`fields`);if(Object.prototype.hasOwnProperty.call(e,`content`)&&!n&&this.isFormMode())throw Error(`Modal.update: Cannot update content when fields are defined.`);return r(()=>{n&&(this.cache.fieldIds.clear(),this.state.fields=Array.isArray(e.fields)?W(e.fields):null);for(let[t,n]of Object.entries(e))t!==`fields`&&(this.state[t]=n)}),Object.prototype.hasOwnProperty.call(e,`style`)&&this.modal&&this.applyStyle(this.modal,this.state.style),this.visible&&(Object.prototype.hasOwnProperty.call(e,`bgClose`)||Object.prototype.hasOwnProperty.call(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.state=n(e=>(t(()=>{let e=!!this.state.visible;s(()=>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(!C())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.pushStack(),this.runtime.visibleApplied=!0,this.normalizeIcon(this.modal),this.bindEvents(this.root),this.focusFirst(),t&&t()}hideFromState(){if(!this.runtime.visibleApplied||!this.root)return;let{onHide:e,onHidden:t}=this.state;e&&e(),this.runtime.visibleApplied=!1,this.removeFromStack(),this.clearEvents(),r(()=>{this.state.loading=!1,this.state.extraData=null,this.state.data=null}),this.modal&&(this.modal.style.transition=`opacity 300ms ease-out, transform 300ms ease-out`,this.modal.style.opacity=`0`,this.modal.style.transform=`scale(0.3)`),this.cancelHideTimer(),this.cleanup.hideTimer=setTimeout(()=>this.finishHide(t),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.isTop()&&this.hide()})}bindDocumentKeyEvent(){this.cleanup.events.on(`keydown`,document,`keydown`,e=>{if(!(!this.visible||!this.isTop())){if(e.key===`Escape`&&this.state.escClose){e.preventDefault(),this.hide();return}e.key===`Tab`&&this.trapFocus(e)}})}bindInsideEvent(){this.modal&&this.cleanup.events.on(`inside`,this.modal,`click`,e=>{let t=(e.target instanceof Element?e.target:null)?.closest(`[data-action]`);if(!t||!this.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.form){this.handleConfirm();return}if(typeof this.form.requestSubmit==`function`){this.form.requestSubmit();return}let e=new Event(`submit`,{bubbles:!0,cancelable:!0});this.form.dispatchEvent(e)}async handleFormSubmit(e){if(e.preventDefault(),this.isBusy())return;let t=e.currentTarget;if(!t.checkValidity()){t.reportValidity();return}let n=et(this.collectFormData(t),this.state.extraData);r(()=>{this.state.data=n}),await this.handleSubmit(n)}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())Object.prototype.hasOwnProperty.call(t,e)?t[e]=Array.isArray(t[e])?[...t[e],r]:[t[e],r]:t[e]=r;return t}async handleNext(){if(!this.isBusy()){if(this.hasFlow()){await this.moveFlow(`next`);return}if(typeof this.state.onNext==`function`){r(()=>{this.state.submitting=!0});try{let e=await Promise.resolve(this.state.onNext(this));K(e)&&this.update(e)}catch(e){console.error(`Modal.onNext error:`,e)}finally{this.state&&r(()=>{this.state.submitting=!1})}}}}async handleBack(){if(!this.isBusy()){if(this.hasFlow()){await this.moveFlow(`back`);return}if(typeof this.state.onBack==`function`){r(()=>{this.state.submitting=!0});try{let e=await Promise.resolve(this.state.onBack(this));K(e)&&this.update(e)}catch(e){console.error(`Modal.onBack error:`,e)}finally{this.state&&r(()=>{this.state.submitting=!1})}}}}hasFlow(){return Ze(this.state.flow)&&!!this.state.flow}async moveFlow(e){let t=this.createFlowPayload();if(t!==!1){r(()=>{this.state.submitting=!0});try{let n=await this.state.flow[e](t);this.syncFlowView(this.state.flow,n)}catch(t){console.error(`Modal.flow.${e} error:`,t),this.syncFlowView(this.state.flow)}finally{this.state&&r(()=>{this.state.submitting=!1})}}}createFlowPayload(){if(!this.isFormMode())return null;let e=this.form;if(!e)return this.state.data||null;if(!e.checkValidity())return e.reportValidity(),!1;let t=et(this.collectFormData(e),this.state.extraData);return r(()=>{this.state.data=t}),this.state.data}syncFlowView(e,t=null){if(!e||!this.state)return;let n=e.snapshot()||t,r=e.currentStep||n?.currentStep||t?.currentStep,i={...K(r?.view)?r.view:{}};Array.isArray(i.fields)&&(i.fields=Qe(i.fields,n?.currentData)),q(i,`showBack`)||(i.showBack=!!n?.canBack),q(i,`showNext`)||(i.showNext=!!n?.canNext),!q(i,`fields`)&&q(i,`content`)&&(i.fields=null),this.update(i)}async handleConfirm(){if(!this.isBusy()){r(()=>{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&&r(()=>{this.state.submitting=!1})}}}async handleCancel(){if(!this.isBusy()){r(()=>{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&&r(()=>{this.state.submitting=!1})}}}async handleSubmit(e){if(this.state.onSubmit){r(()=>{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&&r(()=>{this.state.submitting=!1})}}}trapFocus(e){if(!this.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.modal)).filter(e=>e.offsetParent!==null||e===document.activeElement);if(t.length===0){e.preventDefault(),this.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.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.form||this.modal);e?e.focus():(this.modal.setAttribute(`tabindex`,`-1`),this.modal.focus())}lockScroll(){this.runtime.scrollLocked||!S()||(X===0&&(Z=document.body.style.overflow,document.body.style.overflow=`hidden`),X+=1,this.runtime.scrollLocked=!0)}unlockScroll(){!this.runtime.scrollLocked||!S()||(X=Math.max(0,X-1),X===0&&(document.body.style.overflow=Z,Z=``),this.runtime.scrollLocked=!1)}pushStack(){this.removeFromStack(),Y.push(this)}removeFromStack(){let e=Y.indexOf(this);e>=0&&Y.splice(e,1)}isTop(){return Y[Y.length-1]===this}cancelHideTimer(){this.cleanup.hideTimer&&(clearTimeout(this.cleanup.hideTimer),this.cleanup.hideTimer=null)}resetAnimationStyles(){this.modal&&(this.cache.baseStyle?this.modal.setAttribute(`style`,this.cache.baseStyle):this.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.`)}setState(e,t){if(this.assertActive(`setState`),typeof e!=`string`||!e)throw Error(`Modal.setState: key expects a non-empty string.`);if(!q(it,e))throw Error(`Modal.setState: "${e}" is not a supported state key.`);if(at.has(e))throw Error(`Modal.setState: "${e}" cannot be updated after initialization.`);return _(e,t,it[e],`Modal.setState`),r(()=>{e===`fields`&&this.cache.fieldIds.clear(),this.state[e]=e===`fields`&&Array.isArray(t)?W(t):t}),this}show(){return this.assertActive(`show`),r(()=>{this.state.visible=!0}),this}hide(){return this.assertActive(`hide`),r(()=>{this.state.visible=!1}),this}setFields(e){return _(`data`,e,nt,`Modal.setFields`),this.applyOptions({fields:e},{validate:!1}),this}addFields(e){return _(`data`,e,ot,`Modal.addFields`),r(()=>{this.state.extraData=e}),this}setContent(e){if(_(`content`,e,tt,`Modal.setContent`),this.isFormMode())throw Error(`Modal.setContent: Cannot setContent when fields are defined.`);return this.applyOptions({content:e},{validate:!1}),this}update(e={}){return this.applyOptions(e)}reset(){this.cache.fieldIds.clear();let e=G(this.cache.initial);return delete e.id,delete e.lazy,this.applyOptions(e,{validate:!1}),r(()=>{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)?W(this.cache.initial.fields):null)}destroy(){if(this.runtime.destroyed)return;this.runtime.destroyed=!0;let e=!!this.runtime.visibleApplied,t=this.state?.onHide,n=this.state?.onHidden;e&&t&&t(),this.cancelHideTimer(),this.clearEvents(),this.removeFromStack(),this.unlockScroll(),this.cleanup.state?.(),this.cleanup.state=null,this.cleanup.view?.(),this.cleanup.view=null,this.root?.parentNode&&this.root.parentNode.removeChild(this.root),e&&n&&n(),this.cleanup.events.clear(),this.dom={root:null},this.cache={initial:null,fieldIds:null,baseStyle:``,previousActiveElement:null,formId:``},this.state=null,this.runtime.visibleApplied=!1}};const lt={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():y():e??y()},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 ut=class{constructor(e={}){if(!C())throw Error(`Offcanvas: DOM render environment is required.`);this.options=v(e,lt,`Offcanvas.options`),this._init(this.options)}_init(e){this.isVisible=!1,e.overlay&&(this._overlay=this._buildOverlay(e)),this.root=this._buildRoot(e),this.cleanup={events:M()},this._removeTimer=null,this._showTimer=null,this._shownTimer=null,this._destroyed=!1}_esc(e){e.key===`Escape`&&this.isVisible&&this.hide()}_bindEvents(){let{bgClose:e,escClose:t}=this.options;this._unbindEvents(),this._overlay&&e&&this.cleanup.events.on(`overlay`,this._overlay,`click`,()=>{this.hide()}),t&&this.cleanup.events.on(`esc`,document,`keydown`,e=>this._esc(e)),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()}_buildOverlay(e){let t=e.filter,n=t?`backdropFilter`:``,r=t?`blur(2px)`:``;return i(`div`,{className:`j-offcanvas-overlay`,style:t?{[n]:r}:{}})}_buildRoot(e){let{id:t,direction:n,animation:r,content:a}=e;return i(`div`,{className:`j-offcanvas ${n?`is-${n}`:``} ${r?`is-${r}`:``}`,id:t,children:i(`div`,{className:`offcanvas-content`,children:D(a,this)})})}_render(){let{overlay:e,animation:t,direction:n}=this.options;if(e&&document.body.appendChild(this._overlay),document.body.appendChild(this.root),document.body.style.overflow=`hidden`,t===`push`){document.body.classList.add(`offcanvas-push-body`);let e=window.scrollY;this._overlay&&(this._overlay.style.top=`${e}px`),this.root.style.top=`${e}px`}clearTimeout(this._showTimer),this._showTimer=setTimeout(()=>{this.root&&(this._overlay&&this._overlay.classList.add(`is-active`),t===`push`&&document.body.classList.add(`offcanvas-push-${n}`),this.root.classList.add(`is-active`),this._showTimer=null)},10)}_remove(){let{animation:e,direction:t}=this.options;this._overlay&&this._overlay.classList.remove(`is-active`),this.root.classList.remove(`is-active`),e===`push`&&document.body.classList.remove(`offcanvas-push-${t}`),clearTimeout(this._removeTimer),this._removeTimer=setTimeout(()=>{this._overlay&&this._overlay.parentNode&&this._overlay.parentNode.removeChild(this._overlay),this.root&&this.root.parentNode&&this.root.parentNode.removeChild(this.root),e===`push`&&document.body.classList.remove(`offcanvas-push-body`),document.body.style.overflow=``,this._removeTimer=null},100)}async show(){if(this._destroyed)return;let{onShow:e,onShown:t}=this.options;this.isVisible||(e&&await Promise.resolve(e()),this._render(),this._bindEvents(),this.isVisible=!0,clearTimeout(this._shownTimer),this._shownTimer=setTimeout(()=>{this._destroyed||(t&&t(),this._shownTimer=null)},100))}async hide(){if(this._destroyed)return;let{onHide:e,onHidden:t}=this.options;this.isVisible&&(e&&await Promise.resolve(e()),this._unbindEvents(),this._remove(),this.isVisible=!1,t&&t())}destroy(){if(this._destroyed)return;this._destroyed=!0;let e=this.isVisible;clearTimeout(this._removeTimer),clearTimeout(this._showTimer),clearTimeout(this._shownTimer),e&&(this._unbindEvents(),this.root?.classList.remove(`is-active`)),this.root?.parentNode?.removeChild(this.root),this._overlay?.parentNode?.removeChild(this._overlay),document.body.style.overflow=``,document.body.classList.remove(`offcanvas-push-body`,`offcanvas-push-${this.options.direction}`),this.options=null,this.root=null,this._overlay=null,this.cleanup?.events.clear(),this.cleanup=null,this._removeTimer=null,this._showTimer=null,this._shownTimer=null,this.isVisible=null}};const dt={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,types:[`HTMLElement`,`string`]},to:{default:null,types:[`HTMLElement`,`string`]},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 ft=class{constructor(e){if(!C())throw Error(`Parabola: DOM render environment is required.`);this.options=v(e,dt,`Parabola.options`),this._init(this.options)}_init(e){if(this.hidden=!1,this._ball=null,this._animationId=null,this._showTimeoutId=null,this._hideTimeoutId=null,this.hidden)return;let t=A(e.from),n=A(e.to);if(!t||!n)throw this.hidden=!0,Error(`Parabola: from or to element not found.`);this._createBall(e)}_createBall(e){if(this.hidden||this._ball)return;let{color:t,size:n}=e.ball;this._ball=i(`div`,{className:`parabola-ball`,style:{backgroundColor:t,width:n,height:n,position:`fixed`,borderRadius:`50%`,transform:`translate(-50%, -50%)`,pointerEvents:`none`,zIndex:`9999`,opacity:`1`}}),document.body.appendChild(this._ball)}_calculatePath(e){let t=A(e.from)?.getBoundingClientRect(),n=A(e.to)?.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=>{this._showTimeoutId=setTimeout(()=>{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)},this.options.showDelay)})}destroy(){this.hidden||(this._ball?.parentNode&&this._ball.parentNode.removeChild(this._ball),this._showTimeoutId&&clearTimeout(this._showTimeoutId),this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._animationId&&cancelAnimationFrame(this._animationId),this._ball=null,this.hidden=!0,this.options.onHidden&&this.options.onHidden())}start(){return this.show()}};const pt={data:{default:null,validate:e=>e==null||Array.isArray(e),message:`expects an array or null.`},loop:{default:!1,type:`boolean`},autoplay:{default:!1,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`}},mt={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.children==null||E(e.children)),message:`expects items with optional image, url, title, sort and children fields.`};function ht(e){return!!e?.closest?.(`a, button, input, textarea, select, label, [data-swiper-ignore]`)}var gt=class{constructor(e,t={}){if(!C())throw Error(`Swiper: DOM render environment is required.`);let n=v(t,pt,`Swiper.options`),r=Array.isArray(n.data),i=typeof e==`string`?O(e):T(e)?e:null;!i&&!r&&_(`container`,i,{validate:T,message:`expects a valid HTMLElement or selector.`},`Swiper`);let a=i,o=null,s=r;if(r)o=i||document.body,a=document.createElement(`div`),a.className=`j-swiper`,o.appendChild(a);else if(!a.classList.contains(`j-swiper`))throw Error(`Swiper: root element must have .j-swiper.`);this.settings={options:n};let c=r?this.createDataView(a,n.data):O(`.swiper-wrapper`,a);if(!c)throw Error(`Swiper: .swiper-wrapper not found.`);let l=k(`.swiper-slide`,c);this.dom={root:a,wrapper:c,slides:l,pagination:O(`.swiper-pagination`,a),prevButton:O(`.swiper-navigation.is-prev`,a),nextButton:O(`.swiper-navigation.is-next`,a),bullets:[],createdPagination:!1,createdPrevButton:!1,createdNextButton:!1,createdRoot:s,createdSlides:r,mountTarget:o},this.runtime={realCount:l.length,index:0,transform:0,width:0,timer:null,logs:[],startTarget:null,touching:!1,scrolling:!1,swiping:!1,animating:!1,clickPrevented:!1,destroyed:!1},this.cleanup={events:M()},this.slides.length!==0&&this.init()}createDataView(e,t){let n=this.normalizeData(t),r=document.createElement(`div`);return r.className=`swiper-wrapper`,e.textContent=``,n.forEach((e,t)=>{r.appendChild(this.createDataSlide(e,t,this.config))}),e.appendChild(r),r}normalizeData(e){e.forEach((e,t)=>{_(String(t),e,mt,`Swiper.options.data`)});let t=e.map((e,t)=>({...e,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,t,n=this.config){let r=e.url?document.createElement(`a`):document.createElement(`div`);if(r.className=`swiper-slide`,r.setAttribute(`data-swiper-index`,String(t)),e.url&&(r.href=e.url),e.children!=null)return r.append(...D(e.children,{swiper:this,item:e,index:t})),r;if(e.image){let t=document.createElement(`img`);t.className=`swiper-image`,t.alt=e.title||``,t.loading=`lazy`,n.lazyload?t.dataset.lazy=e.image:t.src=e.image,r.appendChild(t)}if(e.title){let t=document.createElement(`span`);t.className=`swiper-slide-title`,t.textContent=e.title,r.appendChild(t)}return r}get config(){return this.settings?.options||{}}set config(e){this.settings||(this.settings={}),this.settings.options=e||{}}get el(){return this.dom?.root||null}set el(e){this.dom||(this.dom={}),this.dom.root=e}get wrapper(){return this.dom?.wrapper||null}set wrapper(e){this.dom||(this.dom={}),this.dom.wrapper=e}get slides(){return this.dom?.slides||[]}set slides(e){this.dom||(this.dom={}),this.dom.slides=Array.isArray(e)?e:[]}get bullets(){return this.dom?.bullets||[]}set bullets(e){this.dom||(this.dom={}),this.dom.bullets=Array.isArray(e)?e:[]}get pagination(){return this.dom?.pagination||null}set pagination(e){this.dom||(this.dom={}),this.dom.pagination=e}get prevButton(){return this.dom?.prevButton||null}set prevButton(e){this.dom||(this.dom={}),this.dom.prevButton=e}get nextButton(){return this.dom?.nextButton||null}set nextButton(e){this.dom||(this.dom={}),this.dom.nextButton=e}get realCount(){return this.runtime?.realCount||0}set realCount(e){this.runtime||(this.runtime={}),this.runtime.realCount=Number(e)||0}get index(){return this.runtime?.index||0}set index(e){this.runtime||(this.runtime={}),this.runtime.index=Number(e)||0}get transform(){return this.runtime?.transform||0}set transform(e){this.runtime||(this.runtime={}),this.runtime.transform=Number(e)||0}get width(){return this.runtime?.width||0}set width(e){this.runtime||(this.runtime={}),this.runtime.width=Number(e)||0}get timer(){return this.runtime?.timer||null}set timer(e){this.runtime||(this.runtime={}),this.runtime.timer=e}get logs(){return this.runtime?.logs||[]}set logs(e){this.runtime||(this.runtime={}),this.runtime.logs=Array.isArray(e)?e:[]}get touching(){return!!this.runtime?.touching}set touching(e){this.runtime||(this.runtime={}),this.runtime.touching=!!e}get scrolling(){return!!this.runtime?.scrolling}set scrolling(e){this.runtime||(this.runtime={}),this.runtime.scrolling=!!e}get swiping(){return!!this.runtime?.swiping}set swiping(e){this.runtime||(this.runtime={}),this.runtime.swiping=!!e}get animating(){return!!this.runtime?.animating}set animating(e){this.runtime||(this.runtime={}),this.runtime.animating=!!e}init(){this.updateSize(),this.config.loop&&this.slides.length>1&&this.initLoop(),this.setupStyles(),this.index=+!!this.config.loop,this.transform=-this.index*this.width,this.render(!1),this.bindEvents(),this.config.pagination&&this.initPagination(),this.config.navigation&&this.initNavigation(),this.updateControls(),this.config.lazyload&&this.loadImages(),this.config.autoplay&&this.play()}updateSize(){this.width=this.el.clientWidth||this.el.offsetWidth}refreshSlides(){this.slides=k(`.swiper-slide`,this.wrapper)}initLoop(){let e=this.slides[0].cloneNode(!0),t=this.slides[this.slides.length-1].cloneNode(!0);e.setAttribute(`data-clone`,``),t.setAttribute(`data-clone`,``),this.wrapper.appendChild(e),this.wrapper.insertBefore(t,this.slides[0]),this.refreshSlides()}setupStyles(){this.wrapper.style.display=`flex`,this.wrapper.style.willChange=`transform`,this.slides.forEach(e=>{e.style.flexShrink=`0`,e.style.width=`${this.width}px`})}bindEvents(){this.cleanup.events.on(`touchstart`,this.wrapper,`touchstart`,e=>{e.touches[0]&&this.onStart(e.touches[0],e.target)},{passive:!0}),this.cleanup.events.on(`touchmove`,this.wrapper,`touchmove`,e=>{e.touches[0]&&this.onMove(e.touches[0],e)},{passive:!1}),this.cleanup.events.on(`touchend`,this.wrapper,`touchend`,e=>{e.changedTouches[0]&&this.pushLog(e.changedTouches[0]),this.onEnd()}),this.cleanup.events.on(`touchcancel`,this.wrapper,`touchcancel`,()=>{this.resetDrag(!0)}),this.cleanup.events.on(`window:touchcancel`,window,`touchcancel`,()=>{this.resetDrag(!0)}),this.cleanup.events.on(`mousedown`,this.wrapper,`mousedown`,e=>{e.button===0&&(this.onStart(e,e.target),this.wrapper.style.cursor=`grabbing`)}),this.cleanup.events.on(`mousemove`,this.wrapper,`mousemove`,e=>{e.buttons===1&&this.onMove(e,e)}),this.cleanup.events.on(`mouseup`,this.wrapper,`mouseup`,e=>{this.wrapper.style.cursor=`grab`,this.pushLog(e),this.onEnd()}),this.cleanup.events.on(`window:mouseup`,window,`mouseup`,e=>{this.touching&&(this.wrapper.style.cursor=`grab`,this.pushLog(e),this.onEnd())}),this.cleanup.events.on(`wrapper:mouseleave`,this.wrapper,`mouseleave`,()=>{this.touching&&(this.wrapper.style.cursor=`grab`,this.onEnd())}),this.cleanup.events.on(`click`,this.wrapper,`click`,e=>{!this.runtime.clickPrevented||!this.config.preventClick||(e.preventDefault(),e.stopPropagation(),this.runtime.clickPrevented=!1)},{capture:!0}),this.cleanup.events.on(`dragstart`,this.wrapper,`dragstart`,e=>e.preventDefault()),this.cleanup.events.on(`transitionend`,this.wrapper,`transitionend`,()=>this.onTransitionEnd()),this.cleanup.events.on(`root:mouseenter`,this.el,`mouseenter`,()=>this.pause()),this.cleanup.events.on(`root:mouseleave`,this.el,`mouseleave`,()=>this.resume())}onStart(e,t=null){this.animating||(this.logs=[],this.pushLog(e),this.runtime.startTarget=t,this.touching=!0,this.scrolling=!1,this.swiping=!1,this.runtime.clickPrevented=!1,this.pause(),this.wrapper.style.transition=`none`)}onMove(e,t){if(!this.touching||this.scrolling||this.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.swiping)if(Math.atan2(i,r)*180/Math.PI<this.config.touchAngle)this.swiping=!0,this.runtime.clickPrevented=ht(this.runtime.startTarget);else{this.scrolling=!0,this.resetDrag(!0);return}this.swiping&&(t.preventDefault(),this.transform=-this.index*this.width+n.x*this.config.touchRatio,this.render(!1))}}onEnd(){if(!this.touching)return;if(this.touching=!1,!this.swiping){this.resetDrag(!0);return}let e=this.getDuration(),t=this.getOffset().x,n=this.index;if(e>this.config.longSwipesMs){let e=Math.ceil(Math.abs(t)/this.width-this.config.longSwipesRatio);e>0&&(n=this.index+e*(t>0?-1:1))}else{let e=Math.abs(t)/this.width,r=e>=this.config.longSwipesRatio?Math.max(1,Math.ceil(e-this.config.longSwipesRatio)):0;r>0&&(n=t>0?this.index-r:this.index+r)}this.slideTo(n),this.logs=[],this.resume()}resetDrag(e=!0){let t=this.index===0?0:-this.index*this.width,n=e&&this.transform!==t;this.touching=!1,this.scrolling=!1,this.swiping=!1,this.logs=[],this.runtime.startTarget=null,this.transform=t,this.render(n),this.resume()}onTransitionEnd(){this.animating=!1,this.config.loop&&(this.index===0?(this.index=this.realCount,this.transform=-this.index*this.width,this.render(!1)):this.index===this.slides.length-1&&(this.index=1,this.transform=-this.index*this.width,this.render(!1))),this.updateControls()}pushLog(e){this.logs.push({x:e.pageX??e.clientX??0,y:e.pageY??e.clientY??0,time:Date.now()}),this.logs.length>5&&this.logs.shift()}getDuration(){return this.logs.length===0?0:this.logs[this.logs.length-1].time-this.logs[0].time}getOffset(){if(this.logs.length===0)return{x:0,y:0};let e=this.logs[0],t=this.logs[this.logs.length-1];return{x:t.x-e.x,y:t.y-e.y}}toRealIndex(e=this.index){return this.config.loop?e===0?this.realCount-1:e===this.slides.length-1?0:e-1:e}slideTo(e){if(this.animating)return;let t=e;this.config.loop?e<0?t=0:e>=this.slides.length&&(t=this.slides.length-1):t=Math.max(0,Math.min(e,this.slides.length-1)),this.index=t,this.transform=-t*this.width,this.render(!0),this.updateControls(),this.config.lazyload&&this.loadImages()}next(){this.animating||this.slideTo(this.index+1)}prev(){this.animating||this.slideTo(this.index-1)}render(e){e?(this.wrapper.style.transition=`transform ${this.config.speed}ms cubic-bezier(0.25, 0.46, 0.45, 0.94)`,this.animating=!0):(this.wrapper.style.transition=`none`,this.animating=!1),this.wrapper.style.transform=`translate3d(${this.transform}px, 0, 0)`}loadImages(){let e=[this.index];this.index>0&&e.push(this.index-1),this.index<this.slides.length-1&&e.push(this.index+1),e.forEach(e=>{let t=this.slides[e];if(!t)return;let n=O(`img[data-lazy]`,t);!n||n.src||(n.classList.add(`loading`),n.src=n.dataset.lazy,n.onload=()=>{n.classList.remove(`loading`),n.classList.add(`loaded`)},n.onerror=()=>{n.classList.remove(`loading`),n.classList.add(`error`)})})}initPagination(){this.pagination?this.pagination.classList.add(`is-horizontal`,`is-clickable`,`is-bullet`):(this.pagination=document.createElement(`div`),this.pagination.className=`swiper-pagination is-horizontal is-clickable is-bullet`,this.el.appendChild(this.pagination),this.dom.createdPagination=!0),this.pagination.textContent=``,this.bullets=[];for(let e=0;e<this.realCount;e++){let t=document.createElement(`span`);t.className=`swiper-pagination-indicator swiper-pagination-bullet`,t.setAttribute(`role`,`button`),t.setAttribute(`tabindex`,`0`),t.setAttribute(`aria-label`,`Go to slide ${e+1}`),this.cleanup.events.on(`bullet:${e}:click`,t,`click`,()=>{this.slideTo(this.config.loop?e+1:e)}),this.cleanup.events.on(`bullet:${e}:keydown`,t,`keydown`,t=>{t.key!==`Enter`&&t.key!==` `||(t.preventDefault(),this.slideTo(this.config.loop?e+1:e))}),this.bullets.push(t),this.pagination.appendChild(t)}}initNavigation(){this.prevButton=this.ensureNavigation(`prev`,`arrow-left`),this.nextButton=this.ensureNavigation(`next`,`arrow-right`),this.cleanup.events.on(`nav:prev`,this.prevButton,`click`,()=>this.prev()),this.cleanup.events.on(`nav:next`,this.nextButton,`click`,()=>this.next())}ensureNavigation(e,t){let n=e===`prev`?`createdPrevButton`:`createdNextButton`,r=`swiper-navigation is-${e}`,i=O(`.swiper-navigation.is-${e}`,this.el);return i?i.matches(`button`)||(i.setAttribute(`role`,`button`),i.setAttribute(`tabindex`,`0`),i.classList.add(`swiper-navigation`,`is-${e}`)):(i=document.createElement(`button`),i.type=`button`,i.className=r,this.el.appendChild(i),this.dom[n]=!0),i.setAttribute(`aria-label`,e===`prev`?`Previous slide`:`Next slide`),i.querySelector(`svg`)||(i.textContent=``,i.appendChild(I(t))),i}updateControls(){this.updatePagination(),this.updateNavigation()}updatePagination(){if(!this.bullets.length)return;let e=this.toRealIndex();this.bullets.forEach((t,n)=>{let r=n===e;t.classList.toggle(`is-active`,r),t.classList.toggle(`active`,r),t.setAttribute(`aria-current`,r?`true`:`false`)})}updateNavigation(){if(this.config.loop)return;let e=this.index<=0,t=this.index>=this.slides.length-1;this.prevButton&&(this.prevButton.classList.toggle(`is-disabled`,e),this.prevButton.toggleAttribute(`disabled`,e)),this.nextButton&&(this.nextButton.classList.toggle(`is-disabled`,t),this.nextButton.toggleAttribute(`disabled`,t))}play(){this.timer||(this.timer=setInterval(()=>this.next(),this.config.delay))}pause(){this.timer&&(clearInterval(this.timer),this.timer=null)}resume(){this.config.autoplay&&!this.timer&&this.play()}update(){this.updateSize(),this.setupStyles(),this.transform=-this.index*this.width,this.render(!1),this.updateControls()}destroy(){this.runtime?.destroyed||(this.runtime.destroyed=!0,this.pause(),this.cleanup.events.clear(),k(`[data-clone]`,this.wrapper).forEach(e=>e.remove()),this.dom.createdPagination&&this.pagination?.remove(),this.dom.createdPrevButton&&this.prevButton?.remove(),this.dom.createdNextButton&&this.nextButton?.remove(),this.dom.createdRoot&&this.el?.remove(),this.dom={root:null,wrapper:null,slides:[],pagination:null,prevButton:null,nextButton:null,bullets:[],createdRoot:!1,createdSlides:!1,mountTarget:null},this.runtime={destroyed:!0},this.settings=null)}};const _t={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():y():e??y()},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`]}},vt={type:`object`,validate:e=>!!e&&E(e.title)&&E(e.content),message:`expects an object with renderable title and content: string, Node, array, function or null.`};var yt=class{constructor(e,t={}){if(!C())throw Error(`Tabs: DOM render environment is required.`);if(e!==!1&&!T(e))throw Error(`Tabs: element expects a valid HTMLElement or false.`);this.options=v(t,_t,`Tabs.options`),this._dynamic=e===!1,this._init(e)}_init(e){this.root=e,this.current=null,this.cleanup={events:M()},this._disabledIndex=[],this._destroyed=!1;let{tabs:t,disabled:n,active:r}=this.options;if(this.root===!1&&(this.root=this._buildRoot(t)),this.tabs.length===0||this.panels.length===0)throw Error(`.tab-item or .panel-item not found.`);this._disabledIndex=this._parseDisabled(n),this._markDisabledTabs(),this._bindEvents(),this._activate(r,!1),this._initDrag()}get tabs(){return this.root?k(`.tab-item`,this.root):[]}get panels(){return this.root?k(`.panel-item`,this.root):[]}get _dragContainer(){return this.root?O(`.tab-wrap`,this.root):null}get _dragInner(){return this.root?O(`.tab-list`,this.root):null}_buildRoot(e){let{id:t,direction:n}=this.options;for(let t of e)_(`tab`,t,vt,`Tabs.options.tabs`);let r=i(`nav`,{className:`tab-list`}),a=i(`div`,{className:`tab-wrap`,children:r}),o=i(`div`,{className:`tab-panel`});for(let t of e){let e=this._createTab(t);r.appendChild(e);let n=this._createPanel(t);o.appendChild(n)}return i(`div`,{className:`j-tabs is-${n}`,id:t,children:[a,o]})}_createTab(e){let t=i(`div`,{className:`tab-item`,"data-tab":e.name||y()}),n=i(`span`);return n.append(...D(e.title,{tabs:this,item:e})),t.appendChild(n),t}_createPanel(e){let t=i(`div`,{className:`panel-item`}),n=i(`div`);return n.append(...D(e.content,{tabs:this,item:e})),t.appendChild(n),t}_parseDisabled(e){if(e==null)return[];let t=e=>typeof e==`number`?e:typeof e==`string`?this.tabs.findIndex(t=>t.dataset.tab===e):-1;if(Array.isArray(e))return e.map(t).filter(e=>e>=0);{let n=t(e);return n>=0?[n]:[]}}_markDisabledTabs(){for(let[e,t]of this.tabs.entries())this._disabledIndex.includes(e)?(t.setAttribute(`disabled`,`true`),t.classList.add(`is-disabled`)):(t.removeAttribute(`disabled`),t.classList.remove(`is-disabled`))}_bindEvents(){this._unbindEvents(),this._dragInner&&this.cleanup.events.on(`tabClick`,this._dragInner,`click`,e=>{let t=e.target.closest(`.tab-item`);if(!t||!this.tabs.includes(t))return;let n=this.tabs.indexOf(t);n>=0&&!this._disabledIndex.includes(n)&&this.activate(n)})}_unbindEvents(){this.cleanup.events.off(`tabClick`)}async _activate(e,t=!0){let{onChange:n}=this.options,r=this._getIndex(e);if(!(r<0||r>=this.tabs.length||this._disabledIndex.includes(r)||this.current===r)){this.current=r;for(let[e,t]of this.tabs.entries())t.classList.toggle(`is-active`,e===r);for(let[e,t]of this.panels.entries())t.classList.toggle(`is-active`,e===r);if(t&&n){let e=this.tabs[r],t=this.panels[r],i=e&&e.dataset.tab||r;await Promise.resolve(n(r,i,e,t))}}}_getIndex(e){return typeof e==`number`?e:typeof e==`string`?this.tabs.findIndex(t=>t.dataset.tab===e):-1}_initDrag(){let{direction:e}=this.options;if(!(!this._dragContainer||!this._dragInner)){if(this.isVertical=e===`left`||e===`right`,this.draggable=this._draggable(),!this.draggable){this._removeDragEvents();return}this._bindDragEvents(),this.cleanup.events.on(`resize`,window,`resize`,()=>{cancelAnimationFrame(this._resizeRaf),this._resizeRaf=requestAnimationFrame(()=>{this._refreshDrag()})})}}_draggable(){return this.isVertical?this._dragInner.scrollHeight>this._dragContainer.clientHeight+5:this._dragInner.scrollWidth>this._dragContainer.clientWidth+5}_bindDragEvents(){this._removeDragEvents();let e=this._dragContainer,t=this._dragInner,n=this.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.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()}async activate(e){await this._activate(e,!0)}async reInit(e={}){this.options=v({...this.options,...e},_t,`Tabs.options`);let{disabled:t,active:n}=this.options;this._disabledIndex=this._parseDisabled(t),this._markDisabledTabs(),this._bindEvents(),await this._activate(n,!1),this._refreshDrag()}async addTab(e){_(`tabConfig`,e,vt,`Tabs.addTab`);let{title:t,name:n,content:r}=e,i=O(`.tab-panel`,this.root);e.name=n||y();let a=this._createTab(e);this._dragInner&&this._dragInner.appendChild(a);let o=this._createPanel({title:t,name:n,content:r});i.appendChild(o),this._markDisabledTabs(),this._bindEvents();let{onAdd:s}=this.options;s&&await Promise.resolve(s(this.tabs.length-1,e,a,o)),this._refreshDrag()}async deleteTab(e){if(this.tabs.length<=1)return;let t=this._getIndex(e);if(t<0||t>=this.tabs.length)return;let n=this.tabs[t],r=this.panels[t],i=n.dataset.tab||t;n&&n.parentNode&&n.parentNode.removeChild(n),r&&r.parentNode&&r.parentNode.removeChild(r),this._markDisabledTabs(),this._bindEvents();let{onRemove:a}=this.options;a&&await Promise.resolve(a(t,i)),n.classList.contains(`is-active`)&&await this._activate(this.tabs.length-1,!1),this._refreshDrag()}disableTab(e){let t=this._getIndex(e);t>=0&&!this._disabledIndex.includes(t)&&(this._disabledIndex.push(t),this._markDisabledTabs(),this._bindEvents())}enableTab(e){let t=this._getIndex(e),n=this._disabledIndex.indexOf(t);n>=0&&(this._disabledIndex.splice(n,1),this._markDisabledTabs(),this._bindEvents())}destroy(){if(this._destroyed)return;let e=this.root,t=this._dynamic;this._destroyed=!0,this._unbindEvents(),this._removeDragEvents(),cancelAnimationFrame(this.raf),cancelAnimationFrame(this._resizeRaf);for(let e of this.tabs)e.classList.remove(`is-active`,`is-disabled`),e.removeAttribute(`disabled`);for(let e of this.panels)e.classList.remove(`is-active`);this.cleanup.events.off(`resize`),t&&e?.parentNode&&e.parentNode.removeChild(e),this.root=null,this.options={},this.isVertical=!1,this.cleanup.events.clear(),this.cleanup=null}},bt={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:`自动`}},xt=class{constructor(e={}){if(!C())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=bt,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 c(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);Se(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`,t=null){let n=t||[{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 i(`div`,{className:e,children:[i(`div`,{style:{display:`flex`,justifyContent:`center`},children:i(`button`,{className:`j-button is-text`,"data-action":`close`,children:this._t(`b`)})}),i(`h3`,{children:this._t(`t`)}),i(`p`,{style:{marginTop:0,fontSize:`var(--text-sm, 0.875rem)`},children:this._t(`d`)}),i(`div`,{className:`palette-container`,children:n.map(e=>i(`div`,{className:`palette-item`,"data-palette":e.type,children:[i(`div`,{className:`item-title`,children:e.title}),i(`div`,{className:`items`,children:e.buttons.map(([t,n])=>i(`button`,{className:`j-button is-default${String(this.options[e.type])===String(t)?` is-active`:``}`,"data-palette":t,children:[e.type===`theme`?i(`span`,{className:`el-prefix item-hex`,style:{backgroundColor:`var(--${t}-10)`}}):null,i(`span`,{className:`button-text`,children:n})]}))})]}))})]})}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)}};function Q(e){"@babel/helpers - typeof";return Q=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},Q(e)}function St(e,t){if(Q(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Q(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Ct(e){var t=St(e,`string`);return Q(t)==`symbol`?t:t+``}function wt(e,t,n){return(t=Ct(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Tt={type:`string`,enum:[`info`,`success`,`warning`,`error`,`primary`]},Et={type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},Dt={type:`number`,validate:e=>e>0,message:`expects a number greater than 0.`};var $=class e{_z(){}static show(t=``,n=3e3,r=`info`){if(!C())throw Error(`Toast: DOM render environment is required.`);Ot(t,n,r);let a=O(`.j-toast-container`);a||(a=i(`div`,{className:`j-toast-container`}),document.body.appendChild(a));let o=I(r===`primary`?`info`:r),s=i(`div`,{className:`j-toast is-${r}`,"data-toast":y(),children:[i(`span`,{className:`toast-icon`,children:o}),i(`span`,{className:`toast-message`,children:t})]});a.appendChild(s),e._setTimer(()=>{s.classList.add(`toast-show`)},10),n>0&&e._setTimer(()=>{e.hide(s)},n);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){t&&(e.disposers.get(t)?.(),e.disposers.delete(t),t.classList.remove(`toast-show`),t.classList.add(`toast-hide`),e._setTimer(()=>{t.parentNode&&t.parentNode.removeChild(t);let e=O(`.j-toast-container`);e&&e.children.length===0&&e.parentNode.removeChild(e)},300))}static lite(t=``,n=2e3){if(!C())throw Error(`Toast: DOM render environment is required.`);_(`message`,t,`string`,`Toast.lite`),_(`duration`,n,Dt,`Toast.lite`);let r=O(`.j-toast-lite`);r&&r.remove();let a=i(`div`,{className:`j-toast-lite`,children:t});return document.body.appendChild(a),e._setTimer(()=>a.classList.add(`is-shown`),10),e._setTimer(()=>{a.classList.remove(`is-shown`),a.classList.add(`is-hidden`),e._setTimer(()=>a.remove(),300)},n),a}static _setTimer(t,n){let r=setTimeout(()=>{e.timers.delete(r),t()},n);return e.timers.add(r),r}static clearAll(){for(let t of e.timers)clearTimeout(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()}};wt($,`timers`,new Set),wt($,`disposers`,new Map);function Ot(e,t,n){_(`message`,e,`string`,`Toast.show`),_(`duration`,t,Et,`Toast.show`),_(`type`,n,Tt,`Toast.show`)}const kt={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 At=class{constructor(e,t={}){if(!C())throw Error(`Tooltip: DOM render environment is required.`);if(!T(e))throw Error(`Tooltip: element expects a valid HTMLElement.`);let n=v(t,kt,`Tooltip.options`),r=this._buildTooltipContainer(n);this.options=n,this._destroyed=!1,this.drop=new B(e,{name:n.name,mode:n.mode,position:n.position,offset:n.offset,content:r,className:n.className,id:n.id,delay:n.delay,hoverIntent:n.hoverIntent})}_buildTooltipContainer(e){let t=i(`div`,{className:`tooltip-message`,children:e.message});return i(`div`,{className:e.className?`j-tooltip ${e.className}`:`j-tooltip`,children:t})}show(e=!0){this.drop.show(e)}hide(e=!0){this.drop.hide(e)}toggle(){this.drop.toggle()}destroy(){this._destroyed||(this._destroyed=!0,this.drop?.destroy(),this.drop=null,this.options=null)}};const jt={rules:{default:{},type:`object`},messages:{default:{},type:`object`},onSubmit:{default:null,types:[`function`,`null`]}};var Mt=class{constructor(e,t={},n=!1){if(!C())throw Error(`Validator: DOM render environment is required.`);this.options=v(t,jt,`Validator.options`),this._validateOptions(e,this.options,n),this._init(e),n&&this._bindEvents()}_validateOptions(e,t,n){_(`element`,e,[`HTMLElement`,`string`],`Validator`),_(`bindEvents`,n,`boolean`,`Validator`)}_init(e){if(this.root=A(e,`Validator.element`),!this.root)throw Error(`Validator: element not found.`);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`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}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}_validateNoSpace(e,t){return!/\s/.test(e.value)||t!==!0}_errorMsg(e,t,n){e.type!==`checkbox`&&(e.classList.remove(`is-valid`),e.classList.add(`is-invalid`));let r=this.options.messages[t]&&this.options.messages[t][n];if(r){this.message=r;let t=e.closest(`.form-control`),n=t?O(`.help-block`,t):null;n||(n=i(`div`,{className:`help-block is-invalid`,children:r}),t.appendChild(n))}}_success(e){this.message=``;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,this.message=``}destroy(){this._destroyed||(this._destroyed=!0,this._unbindEvents(),this.reset(),this.root=null,this.options=null,this.message=null,this.valid=null,this.cleanup?.events.clear(),this.cleanup=null)}};export{je as Accordion,B as Drop,Ue as Flow,qe as Menu,ct as Modal,ut as Offcanvas,ft as Parabola,gt as Swiper,yt as Tabs,xt as Theme,$ as Toast,At as Tooltip,Mt as Validator,De as addIcons,k as all,C as canRenderDOM,S as canUseDOM,u as copy,M as createEventManager,We as createFlow,fe as destroyAll,N as getCookie,A as getEl,Ee as getIcons,m as getType,I as icon,L as iconHtml,Te as iconMarkup,ee as isClass,T as isElement,h as isFunction,l as isMobile,w as isNode,E as isRenderableContent,j as listen,D as normalizeContentNodes,be as postJson,O as q,y as randomId,de as release,Ce as removeCookie,v as resolveOptions,xe as restUrl,pe as service,Se as setCookie,le as singleton,p as timer,ye as unlisten,ce as uuid,ie as validate,se as validateOptions,_ as validateParam};
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}`)}}let h=(e,t,n,r=[])=>{let i=Array.isArray(n)?n:[n],a=c(t);if(!i.some(e=>e===a)){let t=i.join(`, `);throw Error(`Validator: ${e} expects ${t}, but got ${a}.`)}return m(e,t,r),t};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 g(e,t,n={},r=``,i={}){let a=p(n),s=ee(r,e),c=o(a,`types`)?a.types:a.type;if(a.required&&t==null)throw Error(`Validator: ${s} is required.`);if(c===void 0?m(s,t,a.conditions):h(s,t,c,a.conditions),Array.isArray(a.enum)&&!a.enum.includes(t))throw Error(`Validator: ${s} expects one of ${a.enum.join(`, `)}.`);if(typeof a.validate==`function`&&!a.validate(t,{...i,name:e,value:t,namespace:r}))throw Error(`Validator: ${s} ${a.message||`does not satisfy the required condition.`}`);return t}function ne(e,t,n=`Options`){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Validator: ${n} expects object.`);for(let[r,i]of Object.entries(t||{}))g(r,e[r],i,n,{key:r,options:e,schema:t});return e}function _(e={},t={},n=`Options`){let r=e??{};if(typeof r!=`object`||Array.isArray(r))throw Error(`Validator: ${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}))}return ne(i,t,n)}function re(){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 v(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 y=new Map,b=new Map,ie=(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()===``?v():n;if(y.has(a)&&!r)return y.get(a).proxy;let o=new e(...t),s=new Proxy(o,{get(e,t,n){return i&&ae(a,i),Reflect.get(e,t,n)},set(e,t,n,r){return Reflect.set(e,t,n,r)}});return y.set(a,{instance:o,proxy:s}),s};function ae(e,t){b.has(e)&&clearTimeout(b.get(e));let n=setTimeout(()=>{oe(e)},t);b.set(e,n)}function oe(e){if(y.has(e)){let{instance:t}=y.get(e);if(typeof t.destroy==`function`)try{t.destroy()}catch{throw Error(`release(): destroy() failed on instance with key "${e}".`)}y.delete(e)}b.has(e)&&(clearTimeout(b.get(e)),b.delete(e))}function se(){for(let{instance:e}of y.values())if(typeof e.destroy==`function`)try{e.destroy()}catch{}y.clear();for(let e of b.values())clearTimeout(e);b.clear()}let ce={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 T(e){return e==null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`||typeof e==`function`||Array.isArray(e)||C(e)}function E(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=>E(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 D(e,t=document){return t.querySelector(e)}function O(e,t=document){return Array.from(t.querySelectorAll(e))}function k(e,t=`getEl`){if(typeof Element<`u`&&e instanceof Element)return e;if(typeof e==`string`)return D(e);if(e===!1||e==null)return null;throw Error(`${t}: expects Element or string.`)}let le=()=>{};function ue(e){return!!e&&typeof e.addEventListener==`function`&&typeof e.removeEventListener==`function`}function de(e,t){if(!ue(e))throw TypeError(`${t}: target expects EventTarget.`)}function fe(e,t){if(typeof e!=`string`||e.trim()===``)throw TypeError(`${t}: type expects a non-empty string.`)}function pe(e,t){if(typeof e!=`function`&&(!e||typeof e.handleEvent!=`function`))throw TypeError(`${t}: handler expects a function or EventListener object.`)}function A(e,t,n,r){de(e,`listen`),fe(t,`listen`),pe(n,`listen`);let i=!0;return e.addEventListener(t,n,r),()=>{i&&(i=!1,e.removeEventListener(t,n,r))}}function me(e,t,n,r){de(e,`unlisten`),fe(t,`unlisten`),pe(n,`unlisten`),e.removeEventListener(t,n,r)}function j(){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 le;let s=A(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 he(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 ge=typeof window<`u`?`${window.location.origin}/wp-json`:``;function M(e){if(typeof document>`u`)return null;let t=`; ${document.cookie}`.split(`; ${e}=`);return t.length===2?t.pop().split(`;`).shift():null}function N(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(`; `),M(e)===t}function _e(e){return typeof document>`u`?!0:(document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`,!M(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 ve(e){if(!(e in P))throw Error(`Icon "${e}" not found.`)}function F(e){return ve(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 L(e){return F(e)}let ye=L;function be(){return{...P}}function xe(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}}let Se={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():v():e??v()},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`}},R={type:`array`,validate:e=>e.length>0,message:`expects a non-empty array.`},Ce={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 we(e){return Array.isArray(e)?e.map(e=>({...e})):[]}function z(e){return g(`items`,e,R,`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(!T(e.title))throw Error(`Accordion: item title expects string, Node, array, function or null.`);if(!T(e.content))throw Error(`Accordion: item content expects string, Node, array, function or null.`);return{...e,name:e.name||v()}})}var Te=class{constructor(e,t={}){if(!S())throw Error(`Accordion: DOM render environment is required.`);if(e!==!1&&!w(e))throw Error(`Accordion: element expects a valid HTMLElement or false.`);let n=_(t,Se,`Accordion.options`);this.config={options:n},this.dom={root:null,headers:[],panels:[]},this.cleanup={events:j()},this.runtime={dynamic:e===!1,activeNames:[],destroyed:!1};try{this.init(e,n)}catch(e){throw this.destroy(),e}}get root(){return this.dom?.root||null}set root(e){this.dom||(this.dom={headers:[],panels:[]}),this.dom.root=e}get options(){return this.config?.options||{}}set options(e){this.config||(this.config={}),this.config.options=e||{}}get dynamic(){return!!this.runtime?.dynamic}get destroyed(){return!!this.runtime?.destroyed}get activeNames(){return this.runtime?.activeNames||[]}set activeNames(e){this.runtime||(this.runtime={}),this.runtime.activeNames=Array.isArray(e)?e:[]}init(e,t){if(this.root=e===!1?this.buildRoot(t):e,this.refreshDom(),this.headers.length===0||this.panels.length===0)throw Error(`Accordion: .accordion-header or .accordion-panel not found.`);this.prepareItems(),this.activeNames=this.resolveActiveNames(t.active),this.syncAll(),this.bindEvents()}refreshDom(){if(!this.root){this.dom.headers=[],this.dom.panels=[];return}this.dom.headers=O(`.accordion-header`,this.root),this.dom.panels=O(`.accordion-panel`,this.root)}assertActive(e){if(this.destroyed)throw Error(`Accordion.${e}: instance has been destroyed.`)}buildRoot(e){let n=z(e.items),r=(0,t.jsx)(`div`,{className:`j-accordion`,id:e.id});return r.append(this.buildItems(n)),r}buildItems(e){let n=document.createDocumentFragment();return e.forEach((e,r)=>{let i=e.name||v(),a=`${this.options.id}_header_${r}`,o=`${this.options.id}_panel_${r}`,s=(0,t.jsx)(`span`,{className:`header-title`});s.append(...this.contentView(e.title,e,r,`title`));let c=(0,t.jsx)(`div`,{className:`accordion-header`,"data-item":i,id:a,role:`button`,tabindex:`0`,"aria-controls":o,children:[s,(0,t.jsx)(`span`,{className:`header-arrow`,"aria-hidden":`true`,children:I(`arrow-down`)})]}),l=(0,t.jsx)(`div`,{className:`panel-content`});l.append(...this.contentView(e.content,e,r,`content`));let u=(0,t.jsx)(`div`,{className:`accordion-panel`,id:o,role:`region`,"aria-labelledby":a,children:l});n.append(c,u)}),n}contentView(e,t,n,r){return E(e,{accordion:this,item:t,index:n,type:r,active:this.isActive(t.name)})}prepareItems(){this.headers.forEach((e,t)=>{let n=this.panels[t];if(!n)return;let r=e.dataset.item||v();e.dataset.item=r,e.id||(e.id=`${this.options.id}_header_${t}`),n.id||(n.id=`${this.options.id}_panel_${t}`),e.setAttribute(`role`,`button`),e.setAttribute(`tabindex`,`0`),e.setAttribute(`aria-controls`,n.id),n.setAttribute(`role`,`region`),n.setAttribute(`aria-labelledby`,e.id)})}resolveActiveNames(e){if(e==null){let e=this.headers.filter((e,t)=>{let n=this.panels[t];return e.classList.contains(`is-active`)||n?.classList.contains(`is-active`)});return e.map(e=>e.dataset.item).slice(0,this.options.multiple?e.length:1)}let t=Array.isArray(e)?e:[e],n=[];for(let e of t){let t=this.getIndex(e);if(!(t<0||t>=this.headers.length)&&(n.push(this.headers[t].dataset.item||String(t)),!this.options.multiple))break}return Array.from(new Set(n))}bindEvents(){this.unbindEvents(),this.cleanup.events.on(`click`,this.root,`click`,e=>{let t=e.target.closest(`.accordion-header`);!t||!this.headers.includes(t)||this.active(this.headers.indexOf(t))}),this.cleanup.events.on(`keydown`,this.root,`keydown`,e=>{if(e.key!==`Enter`&&e.key!==` `)return;let t=e.target.closest(`.accordion-header`);!t||!this.headers.includes(t)||(e.preventDefault(),this.active(this.headers.indexOf(t)))})}unbindEvents(){this.cleanup.events.clear()}syncAll(){this.headers.forEach((e,t)=>{this.syncItem(t,this.isActive(e.dataset.item))})}syncItem(e,t){let n=this.headers[e],r=this.panels[e];!n||!r||(n.classList.toggle(`is-active`,t),r.classList.toggle(`is-active`,t),n.setAttribute(`aria-expanded`,String(t)),r.setAttribute(`aria-hidden`,String(!t)),r.hidden=!t)}isActive(e){return this.activeNames.includes(e)}async activateItem(e,t=!0){let n=this.getIndex(e);if(n<0||n>=this.headers.length)return;let r=this.headers[n],i=this.panels[n],a=r.dataset.item||String(n),o=this.isActive(a);o&&!this.options.multiple&&!this.options.collapsible||(this.options.multiple?this.activeNames=o?this.activeNames.filter(e=>e!==a):[...this.activeNames,a]:o?this.options.collapsible&&(this.activeNames=[]):this.activeNames=[a],this.syncAll(),t&&this.options.onChange&&await Promise.resolve(this.options.onChange(n,a,r,i,this)))}getIndex(e){return typeof e==`number`?e:typeof e==`string`?this.headers.findIndex(t=>t.dataset.item===e):-1}get headers(){return this.dom?.headers||[]}get panels(){return this.dom?.panels||[]}get current(){let e=this.activeNames[0];return e?this.getIndex(e):null}get state(){return{activeNames:[...this.activeNames],current:this.current}}async active(e){this.assertActive(`active`),await this.activateItem(e,!0)}setItems(e,t=0){this.assertActive(`setItems`),g(`items`,e,R,`Accordion.setItems`),g(`active`,t,Ce,`Accordion.setItems`);let n=z(e);this.options.items=we(n),this.options.active=t,this.root.textContent=``,this.root.append(this.buildItems(n)),this.refreshDom(),this.prepareItems(),this.activeNames=this.resolveActiveNames(t),this.syncAll()}destroy(){if(this.destroyed)return;let e=this.root,t=this.dynamic;this.runtime.destroyed=!0,this.unbindEvents();for(let e of this.headers)e.classList.remove(`is-active`),e.removeAttribute(`aria-expanded`);for(let e of this.panels)e.classList.remove(`is-active`),e.removeAttribute(`aria-hidden`),e.hidden=!1;t&&e?.parentNode&&e.parentNode.removeChild(e),this.root=null,this.options={},this.activeNames=[],this.cleanup.events.clear(),this.dom.headers=[],this.dom.panels=[]}};let Ee={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:T,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():v():e??v()},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 De=class{constructor(e,t={}){if(!S())throw Error(`Drop: DOM render environment is required.`);if(!w(e))throw Error(`Drop: element expects a valid HTMLElement.`);this.target=e,this.options=_(t,Ee,`Drop.options`),this._init(this.options)}_init(e){this.isVisible=!1,this.root=null,this.cleanup={events:j()},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:E(r,this)}),l=(0,t.jsx)(`div`,{className:s?`j-drop ${s}`:`j-drop`,id:i,"data-drop":a||v(),children:c});this.root=l,document.body.appendChild(l)}_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())),this.cleanup.events.on(`root:enter`,this.root,`mouseenter`,()=>this.show()),this.cleanup.events.on(`root:leave`,this.root,`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)))}_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.options;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._setPosition():(this.root.style.top=``,this.root.style.left=``),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.options.onShown&&this.options.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.options.onHidden&&this.options.onHidden())}toggle(){this.isVisible?this.hide():this.show()}destroy(){this.options&&(clearTimeout(this._timer?.show),clearTimeout(this._timer?.hide),this.root&&this._exec(!1),this.options&&this._unbindEvents(),this.root?.parentNode&&this.root.parentNode.removeChild(this.root),this.options=null,this.root=null,this.target=null,this._timer={show:null,hide:null},this.cleanup?.events.clear(),this.cleanup=null)}};function Oe(e){return e==null||typeof e==`string`||typeof e==`function`||Array.isArray(e)||typeof Node<`u`&&e instanceof Node}function ke(e){return!!e&&typeof e==`object`&&typeof e.id==`string`}function Ae(e){return e==null||e===!1||typeof e==`function`}function B(e){return e&&typeof e==`object`&&!Array.isArray(e)?{...e}:{}}function je(e){return Array.isArray(e)?[...e]:[]}function Me(e){return Array.isArray(e)?e.map(e=>({...e,data:B(e.data),view:B(e.view)})):[]}function Ne(e,t){return typeof e==`string`?{id:e}:e&&typeof e==`object`?e:{id:t}}let Pe={validate:ke,message:`expects a step object with a string id.`},Fe={validate:Oe,message:`expects string, Node, array, function or null.`},Ie={validate:e=>Array.isArray(e)&&e.length>0,message:`expects a non-empty steps array.`},V={validate:e=>e==null||typeof e==`object`&&!Array.isArray(e),message:`expects an object or null.`},H={validate:Ae,message:`expects function, false or null.`},Le={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():v():e??v()},steps:{default:[],...Ie},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`},backText:{default:`Back`,type:`string`},nextText:{default:`Next`,type:`string`},finishText:{default:`Finish`,type:`string`},resetText:{default:`Reset`,type:`string`},className:{default:``,type:`string`},renderHeader:{default:null,...H},renderSteps:{default:null,...H},renderBody:{default:null,...H},renderFooter:{default:null,...H},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 Re=class{constructor(e={}){this.options=_(e,Le,`Flow.options`),this._init(this.options)}_init(e){this.steps=Me(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:B(this._initialData.global),stepData:B(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:B(this.state.data),stepData:B(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=typeof e==`string`?document.querySelector(e):e;if(!w(t))throw Error(`Flow.mount: container expects Element or selector.`);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`),g(`payload`,e,V,`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}=Ne(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`),g(`payload`,e,V,`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}=Ne(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`),g(`payload`,t,V,`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`),g(`data`,e,V,`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`),g(`stepId`,e,{type:`string`},`Flow.setStepData`),g(`data`,n,V,`Flow.setStepData`),!n||!this._stepMap.has(e)?this:((0,t.flushSync)(()=>{this.state.stepData[e]={...B(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 B(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,B(this._initialData.global)),this._replaceObject(this.state.stepData,B(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`),g(`payload`,e,V,`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(g(String(n),r,Pe,`Flow.options.steps`),g(`content`,r.content??null,Fe,`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]=B(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:B(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:je(this.state.history),data:B(this.state.data),stepData:B(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.resetText}):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.backText}):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.finishText:this.options.nextText}):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 ze(e){return new Re(e)}let Be={type:{default:`mobile`,type:`string`},id:{default:``,type:`string`,normalize:e=>e.trim()===``?v():e.trim()},items:{default:[],type:`array`},backText:{default:`Back`,type:`string`}},Ve={type:`array`};var He=class{constructor(e,t={}){this._element=e,this.options=_(t,Be,`Menu.options`),this.root=null,this.cleanup={events:j()},this._bound=!1,this._destroyed=!1,this._validateOptions()}get menu(){return this.root}_validateOptions(){let{items:e}=this.options;this._element!==!1&&g(`element`,this._element,[`HTMLElement`,`string`],`Menu`),this._verifyItems(e)}_verifyItems(e){g(`items`,e,Ve,`Menu`)}build(){if(this._bound)return this;if(!S())throw Error(`Menu: DOM render environment is required.`);if(this._element===!1)this.root=this._buildRoot(),this._bound=!0;else{let e=k(this._element,`Menu.element`);if(!e)throw Error(`Element not found`);this.root=e,this._bound=!0}return 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||v()}`,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=D(`: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)):D(`.menu-item.is-active`,this.root)?.classList.remove(`is-active`)}))}_unbindEvents(){this.cleanup.events.clear()}_teardown({keepElement:e=!1}={}){this._unbindEvents(),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=D(`:scope > .sub-menu`,e);if(!n||D(`: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`);D(`.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 t=this.root.matches?.(`.menu`)||this.root.matches?.(`ul`)||this.root.matches?.(`ol`)?this.root:D(`:scope > .menu`,this.root)||D(`.menu`,this.root);if(!t)throw Error(`Menu: .menu element not found for setItems().`);this._unbindEvents(),t.textContent=``,t.append(...e.map(e=>this._buildItem(e))),this._bindEvents()}return this}removeItem(e){if(!this.root)return this;let t=D(`[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 U(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 W(e){return{...e,fields:Array.isArray(e.fields)?U(e.fields):e.fields}}function Ue(e){return e&&typeof e==`object`?e:{value:e,text:e}}function G(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function We(e){return e==null||typeof e==`string`||typeof e==`function`||Array.isArray(e)||C(e)}function Ge(e){return G(e)}function Ke(e){return e==null||typeof e==`object`&&typeof e.next==`function`&&typeof e.back==`function`&&typeof e.snapshot==`function`}function K(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function qe(e,t){return!Array.isArray(e)||!G(t)?e:e.map(e=>{if(!e?.name||!K(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 Je(e){return{...e,fields:Array.isArray(e.fields)?U(e.fields):null,loading:!1,submitting:!1,visible:!1,data:null,extraData:null}}function Ye(e,t){return!t||typeof t!=`object`?e:Object.assign(e,t)}let Xe={validate:We,message:`expects string, Node, array, function or null.`},Ze={types:[`array`,`null`]},Qe={validate:e=>typeof e==`string`||e===!1,message:`expects string or false.`},q={title:{default:`Tip`,type:`string`},content:{default:``,...Xe},position:{default:`center`,type:`string`},confirmText:{default:`Confirm`,type:`string`},cancelText:{default:`Cancel`,type:`string`},showCancel:{default:!0,type:`boolean`},showClose:{default:!0,type:`boolean`},showBack:{default:!1,type:`boolean`},showNext:{default:!1,type:`boolean`},fullscreen:{default:!1,type:`boolean`},flow:{default:null,validate:Ke,message:`expects a Flow instance or null.`},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`]},onBack:{default:null,types:[`function`,`null`]},onNext:{default:null,types:[`function`,`null`]},fields:{default:null,...Ze},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():v():e??v()},escClose:{default:!1,type:`boolean`},bgClose:{default:!1,type:`boolean`},lazy:{default:!1,type:`boolean`},backText:{default:`Back`,...Qe},nextText:{default:`Next`,...Qe}},$e={...q,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`]}},et=new Set([`id`,`lazy`]),tt={validate:e=>!!e&&typeof e==`object`&&!Array.isArray(e),message:`expects an object.`},nt={validate:Ge,message:`expects an options object.`},J=[],Y=0,X=``;var rt=class{constructor(e={}){let t=_(e,q,`Modal.options`);this.init(t)}static get modalStack(){return J}init(e){this.dom={root:null},this.cleanup={events:j(),state:null,view:null,hideTimer:null},this.cache={initial:W(e),fieldIds:new Map,baseStyle:``,previousActiveElement:null,formId:`${e.id}_form`},this.runtime={scrollLocked:!1,visibleApplied:!1,destroyed:!1},this.state=(0,t.createDeepStore)(Je(e)),this.bindReactiveVisibility(),!this.state.lazy&&S()&&this.buildRoot()}get root(){return this.dom?.root||null}set root(e){this.dom||(this.dom={}),this.dom.root=e}get modal(){return this.dom.modal||(this.root?D(`.j-modal`,this.root):null)}get form(){return this.dom.form&&this.root?.contains(this.dom.form)?this.dom.form:this.root?D(`form`,this.root):null}get initialOptions(){return this.cache.initial?W(this.cache.initial):null}get initialFields(){return this.cache.initial?.fields?U(this.cache.initial.fields):null}get initialContent(){return this.cache.initial?.content??null}get content(){return this.state?.content??null}get data(){return this.state?.data??null}get visible(){return!!this.state?.visible}set visible(e){this.state&&(0,t.flushSync)(()=>{this.state.visible=!!e})}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.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.onCleanup)((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.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.cancelText}):null,this.state.showBack&&this.state.backText!==!1?(0,t.jsx)(`button`,{type:`button`,className:`j-button is-ghost modal-back`,"data-action":`back`,disabled:()=>this.isBusy(),children:()=>this.state.backText}):null,this.state.showNext&&this.state.nextText!==!1?(0,t.jsx)(`button`,{type:`button`,className:`j-button is-secondary modal-next`,"data-action":`next`,disabled:()=>this.isBusy(),children:()=>this.state.nextText}):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":`confirm`,disabled:()=>this.isBusy(),children:()=>this.state.confirmText})]: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}_${v()}`),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=Ue(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)}validateOptionPatch(e,t=`Modal.update`){g(`options`,e,nt,t);for(let n of Object.keys(e)){if(!Object.prototype.hasOwnProperty.call(q,n))throw Error(`Validator: ${t}.${n} is not a supported modal option.`);if(et.has(n))throw Error(`Modal.update: "${n}" cannot be updated after initialization.`);g(n,e[n],q[n],t)}}applyOptions(e,{validate:n=!0}={}){if(n&&this.validateOptionPatch(e),!e||Object.keys(e).length===0)return this;let r=Object.prototype.hasOwnProperty.call(e,`fields`);if(Object.prototype.hasOwnProperty.call(e,`content`)&&!r&&this.isFormMode())throw Error(`Modal.update: Cannot update content when fields are defined.`);return(0,t.flushSync)(()=>{r&&(this.cache.fieldIds.clear(),this.state.fields=Array.isArray(e.fields)?U(e.fields):null);for(let[t,n]of Object.entries(e))t!==`fields`&&(this.state[t]=n)}),Object.prototype.hasOwnProperty.call(e,`style`)&&this.modal&&this.applyStyle(this.modal,this.state.style),this.visible&&(Object.prototype.hasOwnProperty.call(e,`bgClose`)||Object.prototype.hasOwnProperty.call(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=D(`.modal-close`,e);t&&(t.style.transform=`translateX(${t.clientHeight/3}px)`)}bindReactiveVisibility(){this.cleanup.state=(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.pushStack(),this.runtime.visibleApplied=!0,this.normalizeIcon(this.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.removeFromStack(),this.clearEvents(),(0,t.flushSync)(()=>{this.state.loading=!1,this.state.extraData=null,this.state.data=null}),this.modal&&(this.modal.style.transition=`opacity 300ms ease-out, transform 300ms ease-out`,this.modal.style.opacity=`0`,this.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.isTop()&&this.hide()})}bindDocumentKeyEvent(){this.cleanup.events.on(`keydown`,document,`keydown`,e=>{if(!(!this.visible||!this.isTop())){if(e.key===`Escape`&&this.state.escClose){e.preventDefault(),this.hide();return}e.key===`Tab`&&this.trapFocus(e)}})}bindInsideEvent(){this.modal&&this.cleanup.events.on(`inside`,this.modal,`click`,e=>{let t=(e.target instanceof Element?e.target:null)?.closest(`[data-action]`);if(!t||!this.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.form){this.handleConfirm();return}if(typeof this.form.requestSubmit==`function`){this.form.requestSubmit();return}let e=new Event(`submit`,{bubbles:!0,cancelable:!0});this.form.dispatchEvent(e)}async handleFormSubmit(e){if(e.preventDefault(),this.isBusy())return;let n=e.currentTarget;if(!n.checkValidity()){n.reportValidity();return}let r=Ye(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())Object.prototype.hasOwnProperty.call(t,e)?t[e]=Array.isArray(t[e])?[...t[e],r]:[t[e],r]:t[e]=r;return t}async handleNext(){if(!this.isBusy()){if(this.hasFlow()){await this.moveFlow(`next`);return}if(typeof this.state.onNext==`function`){(0,t.flushSync)(()=>{this.state.submitting=!0});try{let e=await Promise.resolve(this.state.onNext(this));G(e)&&this.update(e)}catch(e){console.error(`Modal.onNext error:`,e)}finally{this.state&&(0,t.flushSync)(()=>{this.state.submitting=!1})}}}}async handleBack(){if(!this.isBusy()){if(this.hasFlow()){await this.moveFlow(`back`);return}if(typeof this.state.onBack==`function`){(0,t.flushSync)(()=>{this.state.submitting=!0});try{let e=await Promise.resolve(this.state.onBack(this));G(e)&&this.update(e)}catch(e){console.error(`Modal.onBack error:`,e)}finally{this.state&&(0,t.flushSync)(()=>{this.state.submitting=!1})}}}}hasFlow(){return Ke(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.form;if(!e)return this.state.data||null;if(!e.checkValidity())return e.reportValidity(),!1;let n=Ye(this.collectFormData(e),this.state.extraData);return(0,t.flushSync)(()=>{this.state.data=n}),this.state.data}syncFlowView(e,t=null){if(!e||!this.state)return;let n=e.snapshot()||t,r=e.currentStep||n?.currentStep||t?.currentStep,i={...G(r?.view)?r.view:{}};Array.isArray(i.fields)&&(i.fields=qe(i.fields,n?.currentData)),K(i,`showBack`)||(i.showBack=!!n?.canBack),K(i,`showNext`)||(i.showNext=!!n?.canNext),!K(i,`fields`)&&K(i,`content`)&&(i.fields=null),this.update(i)}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.modal)return;let t=Array.from(O(`a[href], button:not([disabled]):not([data-action=close]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])`,this.modal)).filter(e=>e.offsetParent!==null||e===document.activeElement);if(t.length===0){e.preventDefault(),this.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.modal)return;let e=D(`input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]):not([data-action=close]), [tabindex]:not([tabindex="-1"])`,this.form||this.modal);e?e.focus():(this.modal.setAttribute(`tabindex`,`-1`),this.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)}pushStack(){this.removeFromStack(),J.push(this)}removeFromStack(){let e=J.indexOf(this);e>=0&&J.splice(e,1)}isTop(){return J[J.length-1]===this}cancelHideTimer(){this.cleanup.hideTimer&&(clearTimeout(this.cleanup.hideTimer),this.cleanup.hideTimer=null)}resetAnimationStyles(){this.modal&&(this.cache.baseStyle?this.modal.setAttribute(`style`,this.cache.baseStyle):this.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.`)}setState(e,n){if(this.assertActive(`setState`),typeof e!=`string`||!e)throw Error(`Modal.setState: key expects a non-empty string.`);if(!K($e,e))throw Error(`Modal.setState: "${e}" is not a supported state key.`);if(et.has(e))throw Error(`Modal.setState: "${e}" cannot be updated after initialization.`);return g(e,n,$e[e],`Modal.setState`),(0,t.flushSync)(()=>{e===`fields`&&this.cache.fieldIds.clear(),this.state[e]=e===`fields`&&Array.isArray(n)?U(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){return g(`data`,e,Ze,`Modal.setFields`),this.applyOptions({fields:e},{validate:!1}),this}addFields(e){return g(`data`,e,tt,`Modal.addFields`),(0,t.flushSync)(()=>{this.state.extraData=e}),this}setContent(e){if(g(`content`,e,Xe,`Modal.setContent`),this.isFormMode())throw Error(`Modal.setContent: Cannot setContent when fields are defined.`);return this.applyOptions({content:e},{validate:!1}),this}update(e={}){return this.applyOptions(e)}reset(){this.cache.fieldIds.clear();let e=W(this.cache.initial);return delete e.id,delete e.lazy,this.applyOptions(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)?U(this.cache.initial.fields):null)}destroy(){if(this.runtime.destroyed)return;this.runtime.destroyed=!0;let e=!!this.runtime.visibleApplied,t=this.state?.onHide,n=this.state?.onHidden;e&&t&&t(),this.cancelHideTimer(),this.clearEvents(),this.removeFromStack(),this.unlockScroll(),this.cleanup.state?.(),this.cleanup.state=null,this.cleanup.view?.(),this.cleanup.view=null,this.root?.parentNode&&this.root.parentNode.removeChild(this.root),e&&n&&n(),this.cleanup.events.clear(),this.dom={root:null},this.cache={initial:null,fieldIds:null,baseStyle:``,previousActiveElement:null,formId:``},this.state=null,this.runtime.visibleApplied=!1}};let it={content:{default:``,validate:T,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():v():e??v()},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 at=class{constructor(e={}){if(!S())throw Error(`Offcanvas: DOM render environment is required.`);this.options=_(e,it,`Offcanvas.options`),this._init(this.options)}_init(e){this.isVisible=!1,e.overlay&&(this._overlay=this._buildOverlay(e)),this.root=this._buildRoot(e),this.cleanup={events:j()},this._removeTimer=null,this._showTimer=null,this._shownTimer=null,this._destroyed=!1}_esc(e){e.key===`Escape`&&this.isVisible&&this.hide()}_bindEvents(){let{bgClose:e,escClose:t}=this.options;this._unbindEvents(),this._overlay&&e&&this.cleanup.events.on(`overlay`,this._overlay,`click`,()=>{this.hide()}),t&&this.cleanup.events.on(`esc`,document,`keydown`,e=>this._esc(e)),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()}_buildOverlay(e){let n=e.filter,r=n?`backdropFilter`:``,i=n?`blur(2px)`:``;return(0,t.jsx)(`div`,{className:`j-offcanvas-overlay`,style:n?{[r]:i}:{}})}_buildRoot(e){let{id:n,direction:r,animation:i,content:a}=e;return(0,t.jsx)(`div`,{className:`j-offcanvas ${r?`is-${r}`:``} ${i?`is-${i}`:``}`,id:n,children:(0,t.jsx)(`div`,{className:`offcanvas-content`,children:E(a,this)})})}_render(){let{overlay:e,animation:t,direction:n}=this.options;if(e&&document.body.appendChild(this._overlay),document.body.appendChild(this.root),document.body.style.overflow=`hidden`,t===`push`){document.body.classList.add(`offcanvas-push-body`);let e=window.scrollY;this._overlay&&(this._overlay.style.top=`${e}px`),this.root.style.top=`${e}px`}clearTimeout(this._showTimer),this._showTimer=setTimeout(()=>{this.root&&(this._overlay&&this._overlay.classList.add(`is-active`),t===`push`&&document.body.classList.add(`offcanvas-push-${n}`),this.root.classList.add(`is-active`),this._showTimer=null)},10)}_remove(){let{animation:e,direction:t}=this.options;this._overlay&&this._overlay.classList.remove(`is-active`),this.root.classList.remove(`is-active`),e===`push`&&document.body.classList.remove(`offcanvas-push-${t}`),clearTimeout(this._removeTimer),this._removeTimer=setTimeout(()=>{this._overlay&&this._overlay.parentNode&&this._overlay.parentNode.removeChild(this._overlay),this.root&&this.root.parentNode&&this.root.parentNode.removeChild(this.root),e===`push`&&document.body.classList.remove(`offcanvas-push-body`),document.body.style.overflow=``,this._removeTimer=null},100)}async show(){if(this._destroyed)return;let{onShow:e,onShown:t}=this.options;this.isVisible||(e&&await Promise.resolve(e()),this._render(),this._bindEvents(),this.isVisible=!0,clearTimeout(this._shownTimer),this._shownTimer=setTimeout(()=>{this._destroyed||(t&&t(),this._shownTimer=null)},100))}async hide(){if(this._destroyed)return;let{onHide:e,onHidden:t}=this.options;this.isVisible&&(e&&await Promise.resolve(e()),this._unbindEvents(),this._remove(),this.isVisible=!1,t&&t())}destroy(){if(this._destroyed)return;this._destroyed=!0;let e=this.isVisible;clearTimeout(this._removeTimer),clearTimeout(this._showTimer),clearTimeout(this._shownTimer),e&&(this._unbindEvents(),this.root?.classList.remove(`is-active`)),this.root?.parentNode?.removeChild(this.root),this._overlay?.parentNode?.removeChild(this._overlay),document.body.style.overflow=``,document.body.classList.remove(`offcanvas-push-body`,`offcanvas-push-${this.options.direction}`),this.options=null,this.root=null,this._overlay=null,this.cleanup?.events.clear(),this.cleanup=null,this._removeTimer=null,this._showTimer=null,this._shownTimer=null,this.isVisible=null}};let ot={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,types:[`HTMLElement`,`string`]},to:{default:null,types:[`HTMLElement`,`string`]},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 st=class{constructor(e){if(!S())throw Error(`Parabola: DOM render environment is required.`);this.options=_(e,ot,`Parabola.options`),this._init(this.options)}_init(e){if(this.hidden=!1,this._ball=null,this._animationId=null,this._showTimeoutId=null,this._hideTimeoutId=null,this.hidden)return;let t=k(e.from),n=k(e.to);if(!t||!n)throw this.hidden=!0,Error(`Parabola: from or to element not found.`);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=k(e.from)?.getBoundingClientRect(),n=k(e.to)?.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=>{this._showTimeoutId=setTimeout(()=>{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)},this.options.showDelay)})}destroy(){this.hidden||(this._ball?.parentNode&&this._ball.parentNode.removeChild(this._ball),this._showTimeoutId&&clearTimeout(this._showTimeoutId),this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._animationId&&cancelAnimationFrame(this._animationId),this._ball=null,this.hidden=!0,this.options.onHidden&&this.options.onHidden())}start(){return this.show()}};let ct={data:{default:null,validate:e=>e==null||Array.isArray(e),message:`expects an array or null.`},loop:{default:!1,type:`boolean`},autoplay:{default:!1,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`}},lt={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.children==null||T(e.children)),message:`expects items with optional image, url, title, sort and children fields.`};function ut(e){return!!e?.closest?.(`a, button, input, textarea, select, label, [data-swiper-ignore]`)}var dt=class{constructor(e,t={}){if(!S())throw Error(`Swiper: DOM render environment is required.`);let n=_(t,ct,`Swiper.options`),r=Array.isArray(n.data),i=typeof e==`string`?D(e):w(e)?e:null;!i&&!r&&g(`container`,i,{validate:w,message:`expects a valid HTMLElement or selector.`},`Swiper`);let a=i,o=null,s=r;if(r)o=i||document.body,a=document.createElement(`div`),a.className=`j-swiper`,o.appendChild(a);else if(!a.classList.contains(`j-swiper`))throw Error(`Swiper: root element must have .j-swiper.`);this.settings={options:n};let c=r?this.createDataView(a,n.data):D(`.swiper-wrapper`,a);if(!c)throw Error(`Swiper: .swiper-wrapper not found.`);let l=O(`.swiper-slide`,c);this.dom={root:a,wrapper:c,slides:l,pagination:D(`.swiper-pagination`,a),prevButton:D(`.swiper-navigation.is-prev`,a),nextButton:D(`.swiper-navigation.is-next`,a),bullets:[],createdPagination:!1,createdPrevButton:!1,createdNextButton:!1,createdRoot:s,createdSlides:r,mountTarget:o},this.runtime={realCount:l.length,index:0,transform:0,width:0,timer:null,logs:[],startTarget:null,touching:!1,scrolling:!1,swiping:!1,animating:!1,clickPrevented:!1,destroyed:!1},this.cleanup={events:j()},this.slides.length!==0&&this.init()}createDataView(e,t){let n=this.normalizeData(t),r=document.createElement(`div`);return r.className=`swiper-wrapper`,e.textContent=``,n.forEach((e,t)=>{r.appendChild(this.createDataSlide(e,t,this.config))}),e.appendChild(r),r}normalizeData(e){e.forEach((e,t)=>{g(String(t),e,lt,`Swiper.options.data`)});let t=e.map((e,t)=>({...e,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,t,n=this.config){let r=e.url?document.createElement(`a`):document.createElement(`div`);if(r.className=`swiper-slide`,r.setAttribute(`data-swiper-index`,String(t)),e.url&&(r.href=e.url),e.children!=null)return r.append(...E(e.children,{swiper:this,item:e,index:t})),r;if(e.image){let t=document.createElement(`img`);t.className=`swiper-image`,t.alt=e.title||``,t.loading=`lazy`,n.lazyload?t.dataset.lazy=e.image:t.src=e.image,r.appendChild(t)}if(e.title){let t=document.createElement(`span`);t.className=`swiper-slide-title`,t.textContent=e.title,r.appendChild(t)}return r}get config(){return this.settings?.options||{}}set config(e){this.settings||(this.settings={}),this.settings.options=e||{}}get el(){return this.dom?.root||null}set el(e){this.dom||(this.dom={}),this.dom.root=e}get wrapper(){return this.dom?.wrapper||null}set wrapper(e){this.dom||(this.dom={}),this.dom.wrapper=e}get slides(){return this.dom?.slides||[]}set slides(e){this.dom||(this.dom={}),this.dom.slides=Array.isArray(e)?e:[]}get bullets(){return this.dom?.bullets||[]}set bullets(e){this.dom||(this.dom={}),this.dom.bullets=Array.isArray(e)?e:[]}get pagination(){return this.dom?.pagination||null}set pagination(e){this.dom||(this.dom={}),this.dom.pagination=e}get prevButton(){return this.dom?.prevButton||null}set prevButton(e){this.dom||(this.dom={}),this.dom.prevButton=e}get nextButton(){return this.dom?.nextButton||null}set nextButton(e){this.dom||(this.dom={}),this.dom.nextButton=e}get realCount(){return this.runtime?.realCount||0}set realCount(e){this.runtime||(this.runtime={}),this.runtime.realCount=Number(e)||0}get index(){return this.runtime?.index||0}set index(e){this.runtime||(this.runtime={}),this.runtime.index=Number(e)||0}get transform(){return this.runtime?.transform||0}set transform(e){this.runtime||(this.runtime={}),this.runtime.transform=Number(e)||0}get width(){return this.runtime?.width||0}set width(e){this.runtime||(this.runtime={}),this.runtime.width=Number(e)||0}get timer(){return this.runtime?.timer||null}set timer(e){this.runtime||(this.runtime={}),this.runtime.timer=e}get logs(){return this.runtime?.logs||[]}set logs(e){this.runtime||(this.runtime={}),this.runtime.logs=Array.isArray(e)?e:[]}get touching(){return!!this.runtime?.touching}set touching(e){this.runtime||(this.runtime={}),this.runtime.touching=!!e}get scrolling(){return!!this.runtime?.scrolling}set scrolling(e){this.runtime||(this.runtime={}),this.runtime.scrolling=!!e}get swiping(){return!!this.runtime?.swiping}set swiping(e){this.runtime||(this.runtime={}),this.runtime.swiping=!!e}get animating(){return!!this.runtime?.animating}set animating(e){this.runtime||(this.runtime={}),this.runtime.animating=!!e}init(){this.updateSize(),this.config.loop&&this.slides.length>1&&this.initLoop(),this.setupStyles(),this.index=+!!this.config.loop,this.transform=-this.index*this.width,this.render(!1),this.bindEvents(),this.config.pagination&&this.initPagination(),this.config.navigation&&this.initNavigation(),this.updateControls(),this.config.lazyload&&this.loadImages(),this.config.autoplay&&this.play()}updateSize(){this.width=this.el.clientWidth||this.el.offsetWidth}refreshSlides(){this.slides=O(`.swiper-slide`,this.wrapper)}initLoop(){let e=this.slides[0].cloneNode(!0),t=this.slides[this.slides.length-1].cloneNode(!0);e.setAttribute(`data-clone`,``),t.setAttribute(`data-clone`,``),this.wrapper.appendChild(e),this.wrapper.insertBefore(t,this.slides[0]),this.refreshSlides()}setupStyles(){this.wrapper.style.display=`flex`,this.wrapper.style.willChange=`transform`,this.slides.forEach(e=>{e.style.flexShrink=`0`,e.style.width=`${this.width}px`})}bindEvents(){this.cleanup.events.on(`touchstart`,this.wrapper,`touchstart`,e=>{e.touches[0]&&this.onStart(e.touches[0],e.target)},{passive:!0}),this.cleanup.events.on(`touchmove`,this.wrapper,`touchmove`,e=>{e.touches[0]&&this.onMove(e.touches[0],e)},{passive:!1}),this.cleanup.events.on(`touchend`,this.wrapper,`touchend`,e=>{e.changedTouches[0]&&this.pushLog(e.changedTouches[0]),this.onEnd()}),this.cleanup.events.on(`touchcancel`,this.wrapper,`touchcancel`,()=>{this.resetDrag(!0)}),this.cleanup.events.on(`window:touchcancel`,window,`touchcancel`,()=>{this.resetDrag(!0)}),this.cleanup.events.on(`mousedown`,this.wrapper,`mousedown`,e=>{e.button===0&&(this.onStart(e,e.target),this.wrapper.style.cursor=`grabbing`)}),this.cleanup.events.on(`mousemove`,this.wrapper,`mousemove`,e=>{e.buttons===1&&this.onMove(e,e)}),this.cleanup.events.on(`mouseup`,this.wrapper,`mouseup`,e=>{this.wrapper.style.cursor=`grab`,this.pushLog(e),this.onEnd()}),this.cleanup.events.on(`window:mouseup`,window,`mouseup`,e=>{this.touching&&(this.wrapper.style.cursor=`grab`,this.pushLog(e),this.onEnd())}),this.cleanup.events.on(`wrapper:mouseleave`,this.wrapper,`mouseleave`,()=>{this.touching&&(this.wrapper.style.cursor=`grab`,this.onEnd())}),this.cleanup.events.on(`click`,this.wrapper,`click`,e=>{!this.runtime.clickPrevented||!this.config.preventClick||(e.preventDefault(),e.stopPropagation(),this.runtime.clickPrevented=!1)},{capture:!0}),this.cleanup.events.on(`dragstart`,this.wrapper,`dragstart`,e=>e.preventDefault()),this.cleanup.events.on(`transitionend`,this.wrapper,`transitionend`,()=>this.onTransitionEnd()),this.cleanup.events.on(`root:mouseenter`,this.el,`mouseenter`,()=>this.pause()),this.cleanup.events.on(`root:mouseleave`,this.el,`mouseleave`,()=>this.resume())}onStart(e,t=null){this.animating||(this.logs=[],this.pushLog(e),this.runtime.startTarget=t,this.touching=!0,this.scrolling=!1,this.swiping=!1,this.runtime.clickPrevented=!1,this.pause(),this.wrapper.style.transition=`none`)}onMove(e,t){if(!this.touching||this.scrolling||this.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.swiping)if(Math.atan2(i,r)*180/Math.PI<this.config.touchAngle)this.swiping=!0,this.runtime.clickPrevented=ut(this.runtime.startTarget);else{this.scrolling=!0,this.resetDrag(!0);return}this.swiping&&(t.preventDefault(),this.transform=-this.index*this.width+n.x*this.config.touchRatio,this.render(!1))}}onEnd(){if(!this.touching)return;if(this.touching=!1,!this.swiping){this.resetDrag(!0);return}let e=this.getDuration(),t=this.getOffset().x,n=this.index;if(e>this.config.longSwipesMs){let e=Math.ceil(Math.abs(t)/this.width-this.config.longSwipesRatio);e>0&&(n=this.index+e*(t>0?-1:1))}else{let e=Math.abs(t)/this.width,r=e>=this.config.longSwipesRatio?Math.max(1,Math.ceil(e-this.config.longSwipesRatio)):0;r>0&&(n=t>0?this.index-r:this.index+r)}this.slideTo(n),this.logs=[],this.resume()}resetDrag(e=!0){let t=this.index===0?0:-this.index*this.width,n=e&&this.transform!==t;this.touching=!1,this.scrolling=!1,this.swiping=!1,this.logs=[],this.runtime.startTarget=null,this.transform=t,this.render(n),this.resume()}onTransitionEnd(){this.animating=!1,this.config.loop&&(this.index===0?(this.index=this.realCount,this.transform=-this.index*this.width,this.render(!1)):this.index===this.slides.length-1&&(this.index=1,this.transform=-this.index*this.width,this.render(!1))),this.updateControls()}pushLog(e){this.logs.push({x:e.pageX??e.clientX??0,y:e.pageY??e.clientY??0,time:Date.now()}),this.logs.length>5&&this.logs.shift()}getDuration(){return this.logs.length===0?0:this.logs[this.logs.length-1].time-this.logs[0].time}getOffset(){if(this.logs.length===0)return{x:0,y:0};let e=this.logs[0],t=this.logs[this.logs.length-1];return{x:t.x-e.x,y:t.y-e.y}}toRealIndex(e=this.index){return this.config.loop?e===0?this.realCount-1:e===this.slides.length-1?0:e-1:e}slideTo(e){if(this.animating)return;let t=e;this.config.loop?e<0?t=0:e>=this.slides.length&&(t=this.slides.length-1):t=Math.max(0,Math.min(e,this.slides.length-1)),this.index=t,this.transform=-t*this.width,this.render(!0),this.updateControls(),this.config.lazyload&&this.loadImages()}next(){this.animating||this.slideTo(this.index+1)}prev(){this.animating||this.slideTo(this.index-1)}render(e){e?(this.wrapper.style.transition=`transform ${this.config.speed}ms cubic-bezier(0.25, 0.46, 0.45, 0.94)`,this.animating=!0):(this.wrapper.style.transition=`none`,this.animating=!1),this.wrapper.style.transform=`translate3d(${this.transform}px, 0, 0)`}loadImages(){let e=[this.index];this.index>0&&e.push(this.index-1),this.index<this.slides.length-1&&e.push(this.index+1),e.forEach(e=>{let t=this.slides[e];if(!t)return;let n=D(`img[data-lazy]`,t);!n||n.src||(n.classList.add(`loading`),n.src=n.dataset.lazy,n.onload=()=>{n.classList.remove(`loading`),n.classList.add(`loaded`)},n.onerror=()=>{n.classList.remove(`loading`),n.classList.add(`error`)})})}initPagination(){this.pagination?this.pagination.classList.add(`is-horizontal`,`is-clickable`,`is-bullet`):(this.pagination=document.createElement(`div`),this.pagination.className=`swiper-pagination is-horizontal is-clickable is-bullet`,this.el.appendChild(this.pagination),this.dom.createdPagination=!0),this.pagination.textContent=``,this.bullets=[];for(let e=0;e<this.realCount;e++){let t=document.createElement(`span`);t.className=`swiper-pagination-indicator swiper-pagination-bullet`,t.setAttribute(`role`,`button`),t.setAttribute(`tabindex`,`0`),t.setAttribute(`aria-label`,`Go to slide ${e+1}`),this.cleanup.events.on(`bullet:${e}:click`,t,`click`,()=>{this.slideTo(this.config.loop?e+1:e)}),this.cleanup.events.on(`bullet:${e}:keydown`,t,`keydown`,t=>{t.key!==`Enter`&&t.key!==` `||(t.preventDefault(),this.slideTo(this.config.loop?e+1:e))}),this.bullets.push(t),this.pagination.appendChild(t)}}initNavigation(){this.prevButton=this.ensureNavigation(`prev`,`arrow-left`),this.nextButton=this.ensureNavigation(`next`,`arrow-right`),this.cleanup.events.on(`nav:prev`,this.prevButton,`click`,()=>this.prev()),this.cleanup.events.on(`nav:next`,this.nextButton,`click`,()=>this.next())}ensureNavigation(e,t){let n=e===`prev`?`createdPrevButton`:`createdNextButton`,r=`swiper-navigation is-${e}`,i=D(`.swiper-navigation.is-${e}`,this.el);return i?i.matches(`button`)||(i.setAttribute(`role`,`button`),i.setAttribute(`tabindex`,`0`),i.classList.add(`swiper-navigation`,`is-${e}`)):(i=document.createElement(`button`),i.type=`button`,i.className=r,this.el.appendChild(i),this.dom[n]=!0),i.setAttribute(`aria-label`,e===`prev`?`Previous slide`:`Next slide`),i.querySelector(`svg`)||(i.textContent=``,i.appendChild(I(t))),i}updateControls(){this.updatePagination(),this.updateNavigation()}updatePagination(){if(!this.bullets.length)return;let e=this.toRealIndex();this.bullets.forEach((t,n)=>{let r=n===e;t.classList.toggle(`is-active`,r),t.classList.toggle(`active`,r),t.setAttribute(`aria-current`,r?`true`:`false`)})}updateNavigation(){if(this.config.loop)return;let e=this.index<=0,t=this.index>=this.slides.length-1;this.prevButton&&(this.prevButton.classList.toggle(`is-disabled`,e),this.prevButton.toggleAttribute(`disabled`,e)),this.nextButton&&(this.nextButton.classList.toggle(`is-disabled`,t),this.nextButton.toggleAttribute(`disabled`,t))}play(){this.timer||(this.timer=setInterval(()=>this.next(),this.config.delay))}pause(){this.timer&&(clearInterval(this.timer),this.timer=null)}resume(){this.config.autoplay&&!this.timer&&this.play()}update(){this.updateSize(),this.setupStyles(),this.transform=-this.index*this.width,this.render(!1),this.updateControls()}destroy(){this.runtime?.destroyed||(this.runtime.destroyed=!0,this.pause(),this.cleanup.events.clear(),O(`[data-clone]`,this.wrapper).forEach(e=>e.remove()),this.dom.createdPagination&&this.pagination?.remove(),this.dom.createdPrevButton&&this.prevButton?.remove(),this.dom.createdNextButton&&this.nextButton?.remove(),this.dom.createdRoot&&this.el?.remove(),this.dom={root:null,wrapper:null,slides:[],pagination:null,prevButton:null,nextButton:null,bullets:[],createdRoot:!1,createdSlides:!1,mountTarget:null},this.runtime={destroyed:!0},this.settings=null)}};let ft={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():v():e??v()},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`]}},pt={type:`object`,validate:e=>!!e&&T(e.title)&&T(e.content),message:`expects an object with renderable title and content: string, Node, array, function or null.`};var mt=class{constructor(e,t={}){if(!S())throw Error(`Tabs: DOM render environment is required.`);if(e!==!1&&!w(e))throw Error(`Tabs: element expects a valid HTMLElement or false.`);this.options=_(t,ft,`Tabs.options`),this._dynamic=e===!1,this._init(e)}_init(e){this.root=e,this.current=null,this.cleanup={events:j()},this._disabledIndex=[],this._destroyed=!1;let{tabs:t,disabled:n,active:r}=this.options;if(this.root===!1&&(this.root=this._buildRoot(t)),this.tabs.length===0||this.panels.length===0)throw Error(`.tab-item or .panel-item not found.`);this._disabledIndex=this._parseDisabled(n),this._markDisabledTabs(),this._bindEvents(),this._activate(r,!1),this._initDrag()}get tabs(){return this.root?O(`.tab-item`,this.root):[]}get panels(){return this.root?O(`.panel-item`,this.root):[]}get _dragContainer(){return this.root?D(`.tab-wrap`,this.root):null}get _dragInner(){return this.root?D(`.tab-list`,this.root):null}_buildRoot(e){let{id:n,direction:r}=this.options;for(let t of e)g(`tab`,t,pt,`Tabs.options.tabs`);let i=(0,t.jsx)(`nav`,{className:`tab-list`}),a=(0,t.jsx)(`div`,{className:`tab-wrap`,children:i}),o=(0,t.jsx)(`div`,{className:`tab-panel`});for(let t of e){let e=this._createTab(t);i.appendChild(e);let n=this._createPanel(t);o.appendChild(n)}return(0,t.jsx)(`div`,{className:`j-tabs is-${r}`,id:n,children:[a,o]})}_createTab(e){let n=(0,t.jsx)(`div`,{className:`tab-item`,"data-tab":e.name||v()}),r=(0,t.jsx)(`span`);return r.append(...E(e.title,{tabs:this,item:e})),n.appendChild(r),n}_createPanel(e){let n=(0,t.jsx)(`div`,{className:`panel-item`}),r=(0,t.jsx)(`div`);return r.append(...E(e.content,{tabs:this,item:e})),n.appendChild(r),n}_parseDisabled(e){if(e==null)return[];let t=e=>typeof e==`number`?e:typeof e==`string`?this.tabs.findIndex(t=>t.dataset.tab===e):-1;if(Array.isArray(e))return e.map(t).filter(e=>e>=0);{let n=t(e);return n>=0?[n]:[]}}_markDisabledTabs(){for(let[e,t]of this.tabs.entries())this._disabledIndex.includes(e)?(t.setAttribute(`disabled`,`true`),t.classList.add(`is-disabled`)):(t.removeAttribute(`disabled`),t.classList.remove(`is-disabled`))}_bindEvents(){this._unbindEvents(),this._dragInner&&this.cleanup.events.on(`tabClick`,this._dragInner,`click`,e=>{let t=e.target.closest(`.tab-item`);if(!t||!this.tabs.includes(t))return;let n=this.tabs.indexOf(t);n>=0&&!this._disabledIndex.includes(n)&&this.activate(n)})}_unbindEvents(){this.cleanup.events.off(`tabClick`)}async _activate(e,t=!0){let{onChange:n}=this.options,r=this._getIndex(e);if(!(r<0||r>=this.tabs.length||this._disabledIndex.includes(r)||this.current===r)){this.current=r;for(let[e,t]of this.tabs.entries())t.classList.toggle(`is-active`,e===r);for(let[e,t]of this.panels.entries())t.classList.toggle(`is-active`,e===r);if(t&&n){let e=this.tabs[r],t=this.panels[r],i=e&&e.dataset.tab||r;await Promise.resolve(n(r,i,e,t))}}}_getIndex(e){return typeof e==`number`?e:typeof e==`string`?this.tabs.findIndex(t=>t.dataset.tab===e):-1}_initDrag(){let{direction:e}=this.options;if(!(!this._dragContainer||!this._dragInner)){if(this.isVertical=e===`left`||e===`right`,this.draggable=this._draggable(),!this.draggable){this._removeDragEvents();return}this._bindDragEvents(),this.cleanup.events.on(`resize`,window,`resize`,()=>{cancelAnimationFrame(this._resizeRaf),this._resizeRaf=requestAnimationFrame(()=>{this._refreshDrag()})})}}_draggable(){return this.isVertical?this._dragInner.scrollHeight>this._dragContainer.clientHeight+5:this._dragInner.scrollWidth>this._dragContainer.clientWidth+5}_bindDragEvents(){this._removeDragEvents();let e=this._dragContainer,t=this._dragInner,n=this.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.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()}async activate(e){await this._activate(e,!0)}async reInit(e={}){this.options=_({...this.options,...e},ft,`Tabs.options`);let{disabled:t,active:n}=this.options;this._disabledIndex=this._parseDisabled(t),this._markDisabledTabs(),this._bindEvents(),await this._activate(n,!1),this._refreshDrag()}async addTab(e){g(`tabConfig`,e,pt,`Tabs.addTab`);let{title:t,name:n,content:r}=e,i=D(`.tab-panel`,this.root);e.name=n||v();let a=this._createTab(e);this._dragInner&&this._dragInner.appendChild(a);let o=this._createPanel({title:t,name:n,content:r});i.appendChild(o),this._markDisabledTabs(),this._bindEvents();let{onAdd:s}=this.options;s&&await Promise.resolve(s(this.tabs.length-1,e,a,o)),this._refreshDrag()}async deleteTab(e){if(this.tabs.length<=1)return;let t=this._getIndex(e);if(t<0||t>=this.tabs.length)return;let n=this.tabs[t],r=this.panels[t],i=n.dataset.tab||t;n&&n.parentNode&&n.parentNode.removeChild(n),r&&r.parentNode&&r.parentNode.removeChild(r),this._markDisabledTabs(),this._bindEvents();let{onRemove:a}=this.options;a&&await Promise.resolve(a(t,i)),n.classList.contains(`is-active`)&&await this._activate(this.tabs.length-1,!1),this._refreshDrag()}disableTab(e){let t=this._getIndex(e);t>=0&&!this._disabledIndex.includes(t)&&(this._disabledIndex.push(t),this._markDisabledTabs(),this._bindEvents())}enableTab(e){let t=this._getIndex(e),n=this._disabledIndex.indexOf(t);n>=0&&(this._disabledIndex.splice(n,1),this._markDisabledTabs(),this._bindEvents())}destroy(){if(this._destroyed)return;let e=this.root,t=this._dynamic;this._destroyed=!0,this._unbindEvents(),this._removeDragEvents(),cancelAnimationFrame(this.raf),cancelAnimationFrame(this._resizeRaf);for(let e of this.tabs)e.classList.remove(`is-active`,`is-disabled`),e.removeAttribute(`disabled`);for(let e of this.panels)e.classList.remove(`is-active`);this.cleanup.events.off(`resize`),t&&e?.parentNode&&e.parentNode.removeChild(e),this.root=null,this.options={},this.isVertical=!1,this.cleanup.events.clear(),this.cleanup=null}},ht={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:`自动`}},gt=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=ht,this._init()}_init(){this.cleanup={events:j()},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=M(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);N(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=O(`.palette-item`,e);for(let e of t){let t=e.dataset.palette,n=this.options[t],r=O(`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)}};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 _t(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 vt(e){var t=_t(e,`string`);return Z(t)==`symbol`?t:t+``}function Q(e,t,n){return(t=vt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let yt={type:`string`,enum:[`info`,`success`,`warning`,`error`,`primary`]},bt={type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},xt={type:`number`,validate:e=>e>0,message:`expects a number greater than 0.`};var $=class e{_z(){}static show(n=``,r=3e3,i=`info`){if(!S())throw Error(`Toast: DOM render environment is required.`);St(n,r,i);let a=D(`.j-toast-container`);a||(a=(0,t.jsx)(`div`,{className:`j-toast-container`}),document.body.appendChild(a));let o=I(i===`primary`?`info`:i),s=(0,t.jsx)(`div`,{className:`j-toast is-${i}`,"data-toast":v(),children:[(0,t.jsx)(`span`,{className:`toast-icon`,children:o}),(0,t.jsx)(`span`,{className:`toast-message`,children:n})]});a.appendChild(s),e._setTimer(()=>{s.classList.add(`toast-show`)},10),r>0&&e._setTimer(()=>{e.hide(s)},r);let c=A(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){t&&(e.disposers.get(t)?.(),e.disposers.delete(t),t.classList.remove(`toast-show`),t.classList.add(`toast-hide`),e._setTimer(()=>{t.parentNode&&t.parentNode.removeChild(t);let e=D(`.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.`);g(`message`,n,`string`,`Toast.lite`),g(`duration`,r,xt,`Toast.lite`);let i=D(`.j-toast-lite`);i&&i.remove();let a=(0,t.jsx)(`div`,{className:`j-toast-lite`,children:n});return document.body.appendChild(a),e._setTimer(()=>a.classList.add(`is-shown`),10),e._setTimer(()=>{a.classList.remove(`is-shown`),a.classList.add(`is-hidden`),e._setTimer(()=>a.remove(),300)},r),a}static _setTimer(t,n){let r=setTimeout(()=>{e.timers.delete(r),t()},n);return e.timers.add(r),r}static clearAll(){for(let t of e.timers)clearTimeout(t);e.timers.clear();for(let t of e.disposers.values())t();e.disposers.clear(),D(`.j-toast-container`)?.remove(),D(`.j-toast-lite`)?.remove()}static destroyAll(){e.clearAll()}};Q($,`timers`,new Set),Q($,`disposers`,new Map);function St(e,t,n){g(`message`,e,`string`,`Toast.show`),g(`duration`,t,bt,`Toast.show`),g(`type`,n,yt,`Toast.show`)}let Ct={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 wt=class{constructor(e,t={}){if(!S())throw Error(`Tooltip: DOM render environment is required.`);if(!w(e))throw Error(`Tooltip: element expects a valid HTMLElement.`);let n=_(t,Ct,`Tooltip.options`),r=this._buildTooltipContainer(n);this.options=n,this._destroyed=!1,this.drop=new De(e,{name:n.name,mode:n.mode,position:n.position,offset:n.offset,content:r,className:n.className,id:n.id,delay:n.delay,hoverIntent:n.hoverIntent})}_buildTooltipContainer(e){let n=(0,t.jsx)(`div`,{className:`tooltip-message`,children:e.message});return(0,t.jsx)(`div`,{className:e.className?`j-tooltip ${e.className}`:`j-tooltip`,children:n})}show(e=!0){this.drop.show(e)}hide(e=!0){this.drop.hide(e)}toggle(){this.drop.toggle()}destroy(){this._destroyed||(this._destroyed=!0,this.drop?.destroy(),this.drop=null,this.options=null)}};let Tt={rules:{default:{},type:`object`},messages:{default:{},type:`object`},onSubmit:{default:null,types:[`function`,`null`]}};var Et=class{constructor(e,t={},n=!1){if(!S())throw Error(`Validator: DOM render environment is required.`);this.options=_(t,Tt,`Validator.options`),this._validateOptions(e,this.options,n),this._init(e),n&&this._bindEvents()}_validateOptions(e,t,n){g(`element`,e,[`HTMLElement`,`string`],`Validator`),g(`bindEvents`,n,`boolean`,`Validator`)}_init(e){if(this.root=k(e,`Validator.element`),!this.root)throw Error(`Validator: element not found.`);this.valid=!0,this.cleanup={events:j()},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`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}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}_validateNoSpace(e,t){return!/\s/.test(e.value)||t!==!0}_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.message=i;let n=e.closest(`.form-control`),r=n?D(`.help-block`,n):null;r||(r=(0,t.jsx)(`div`,{className:`help-block is-invalid`,children:i}),n.appendChild(r))}}_success(e){this.message=``;let t=e.closest(`.form-control`),n=t?D(`.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=O(`.help-block`,this.root);for(let t of e)t.remove();this.valid=!0,this.message=``}destroy(){this._destroyed||(this._destroyed=!0,this._unbindEvents(),this.reset(),this.root=null,this.options=null,this.message=null,this.valid=null,this.cleanup?.events.clear(),this.cleanup=null)}};e.Accordion=Te,e.Drop=De,e.Flow=Re,e.Menu=He,e.Modal=rt,e.Offcanvas=at,e.Parabola=st,e.Swiper=dt,e.Tabs=mt,e.Theme=gt,e.Toast=$,e.Tooltip=wt,e.Validator=Et,e.addIcons=xe,e.all=O,e.canRenderDOM=S,e.canUseDOM=x,e.copy=i,e.createEventManager=j,e.createFlow=ze,e.destroyAll=se,e.getCookie=M,e.getEl=k,e.getIcons=be,e.getType=c,e.icon=I,e.iconHtml=L,e.iconMarkup=ye,e.isClass=u,e.isElement=w,e.isFunction=l,e.isMobile=r,e.isNode=C,e.isRenderableContent=T,e.listen=A,e.normalizeContentNodes=E,e.postJson=he,e.q=D,e.randomId=v,e.release=oe,e.removeCookie=_e,e.resolveOptions=_,e.restUrl=ge,e.service=ce,e.setCookie=N,e.singleton=ie,e.timer=s,e.unlisten=me,e.uuid=re,e.validate=h,e.validateOptions=ne,e.validateParam=g});
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}`)}}let h=(e,t,n,r=[])=>{let i=Array.isArray(n)?n:[n],a=c(t);if(!i.some(e=>e===a)){let t=i.join(`, `);throw Error(`Validator: ${e} expects ${t}, but got ${a}.`)}return m(e,t,r),t};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 g(e,t,n={},r=``,i={}){let a=p(n),s=ee(r,e),c=o(a,`types`)?a.types:a.type;if(a.required&&t==null)throw Error(`Validator: ${s} is required.`);if(c===void 0?m(s,t,a.conditions):h(s,t,c,a.conditions),Array.isArray(a.enum)&&!a.enum.includes(t))throw Error(`Validator: ${s} expects one of ${a.enum.join(`, `)}.`);if(typeof a.validate==`function`&&!a.validate(t,{...i,name:e,value:t,namespace:r}))throw Error(`Validator: ${s} ${a.message||`does not satisfy the required condition.`}`);return t}function ne(e,t,n=`Options`){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Validator: ${n} expects object.`);for(let[r,i]of Object.entries(t||{}))g(r,e[r],i,n,{key:r,options:e,schema:t});return e}function _(e={},t={},n=`Options`){let r=e??{};if(typeof r!=`object`||Array.isArray(r))throw Error(`Validator: ${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}))}return ne(i,t,n)}function re(){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 v(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 y=new Map,b=new Map,ie=(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()===``?v():n;if(y.has(a)&&!r)return y.get(a).proxy;let o=new e(...t),s=new Proxy(o,{get(e,t,n){return i&&ae(a,i),Reflect.get(e,t,n)},set(e,t,n,r){return Reflect.set(e,t,n,r)}});return y.set(a,{instance:o,proxy:s}),s};function ae(e,t){b.has(e)&&clearTimeout(b.get(e));let n=setTimeout(()=>{oe(e)},t);b.set(e,n)}function oe(e){if(y.has(e)){let{instance:t}=y.get(e);if(typeof t.destroy==`function`)try{t.destroy()}catch{throw Error(`release(): destroy() failed on instance with key "${e}".`)}y.delete(e)}b.has(e)&&(clearTimeout(b.get(e)),b.delete(e))}function se(){for(let{instance:e}of y.values())if(typeof e.destroy==`function`)try{e.destroy()}catch{}y.clear();for(let e of b.values())clearTimeout(e);b.clear()}let ce={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 T(e){return e==null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`||typeof e==`function`||Array.isArray(e)||C(e)}function E(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=>E(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 D(e,t=document){return t.querySelector(e)}function O(e,t=document){return Array.from(t.querySelectorAll(e))}function k(e,t=`getEl`){if(typeof Element<`u`&&e instanceof Element)return e;if(typeof e==`string`)return D(e);if(e===!1||e==null)return null;throw Error(`${t}: expects Element or string.`)}let le=()=>{};function ue(e){return!!e&&typeof e.addEventListener==`function`&&typeof e.removeEventListener==`function`}function de(e,t){if(!ue(e))throw TypeError(`${t}: target expects EventTarget.`)}function fe(e,t){if(typeof e!=`string`||e.trim()===``)throw TypeError(`${t}: type expects a non-empty string.`)}function pe(e,t){if(typeof e!=`function`&&(!e||typeof e.handleEvent!=`function`))throw TypeError(`${t}: handler expects a function or EventListener object.`)}function A(e,t,n,r){de(e,`listen`),fe(t,`listen`),pe(n,`listen`);let i=!0;return e.addEventListener(t,n,r),()=>{i&&(i=!1,e.removeEventListener(t,n,r))}}function me(e,t,n,r){de(e,`unlisten`),fe(t,`unlisten`),pe(n,`unlisten`),e.removeEventListener(t,n,r)}function j(){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 le;let s=A(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 he(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 ge=typeof window<`u`?`${window.location.origin}/wp-json`:``;function M(e){if(typeof document>`u`)return null;let t=`; ${document.cookie}`.split(`; ${e}=`);return t.length===2?t.pop().split(`;`).shift():null}function N(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(`; `),M(e)===t}function _e(e){return typeof document>`u`?!0:(document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`,!M(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 ve(e){if(!(e in P))throw Error(`Icon "${e}" not found.`)}function F(e){return ve(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 L(e){return F(e)}let ye=L;function be(){return{...P}}function xe(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}}let Se={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():v():e??v()},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`}},R={type:`array`,validate:e=>e.length>0,message:`expects a non-empty array.`},Ce={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 we(e){return Array.isArray(e)?e.map(e=>({...e})):[]}function z(e){return g(`items`,e,R,`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(!T(e.title))throw Error(`Accordion: item title expects string, Node, array, function or null.`);if(!T(e.content))throw Error(`Accordion: item content expects string, Node, array, function or null.`);return{...e,name:e.name||v()}})}var Te=class{constructor(e,t={}){if(!S())throw Error(`Accordion: DOM render environment is required.`);if(e!==!1&&!w(e))throw Error(`Accordion: element expects a valid HTMLElement or false.`);let n=_(t,Se,`Accordion.options`);this.config={options:n},this.dom={root:null,headers:[],panels:[]},this.cleanup={events:j()},this.runtime={dynamic:e===!1,activeNames:[],destroyed:!1};try{this.init(e,n)}catch(e){throw this.destroy(),e}}get root(){return this.dom?.root||null}set root(e){this.dom||(this.dom={headers:[],panels:[]}),this.dom.root=e}get options(){return this.config?.options||{}}set options(e){this.config||(this.config={}),this.config.options=e||{}}get dynamic(){return!!this.runtime?.dynamic}get destroyed(){return!!this.runtime?.destroyed}get activeNames(){return this.runtime?.activeNames||[]}set activeNames(e){this.runtime||(this.runtime={}),this.runtime.activeNames=Array.isArray(e)?e:[]}init(e,t){if(this.root=e===!1?this.buildRoot(t):e,this.refreshDom(),this.headers.length===0||this.panels.length===0)throw Error(`Accordion: .accordion-header or .accordion-panel not found.`);this.prepareItems(),this.activeNames=this.resolveActiveNames(t.active),this.syncAll(),this.bindEvents()}refreshDom(){if(!this.root){this.dom.headers=[],this.dom.panels=[];return}this.dom.headers=O(`.accordion-header`,this.root),this.dom.panels=O(`.accordion-panel`,this.root)}assertActive(e){if(this.destroyed)throw Error(`Accordion.${e}: instance has been destroyed.`)}buildRoot(e){let n=z(e.items),r=(0,t.jsx)(`div`,{className:`j-accordion`,id:e.id});return r.append(this.buildItems(n)),r}buildItems(e){let n=document.createDocumentFragment();return e.forEach((e,r)=>{let i=e.name||v(),a=`${this.options.id}_header_${r}`,o=`${this.options.id}_panel_${r}`,s=(0,t.jsx)(`span`,{className:`header-title`});s.append(...this.contentView(e.title,e,r,`title`));let c=(0,t.jsx)(`div`,{className:`accordion-header`,"data-item":i,id:a,role:`button`,tabindex:`0`,"aria-controls":o,children:[s,(0,t.jsx)(`span`,{className:`header-arrow`,"aria-hidden":`true`,children:I(`arrow-down`)})]}),l=(0,t.jsx)(`div`,{className:`panel-content`});l.append(...this.contentView(e.content,e,r,`content`));let u=(0,t.jsx)(`div`,{className:`accordion-panel`,id:o,role:`region`,"aria-labelledby":a,children:l});n.append(c,u)}),n}contentView(e,t,n,r){return E(e,{accordion:this,item:t,index:n,type:r,active:this.isActive(t.name)})}prepareItems(){this.headers.forEach((e,t)=>{let n=this.panels[t];if(!n)return;let r=e.dataset.item||v();e.dataset.item=r,e.id||(e.id=`${this.options.id}_header_${t}`),n.id||(n.id=`${this.options.id}_panel_${t}`),e.setAttribute(`role`,`button`),e.setAttribute(`tabindex`,`0`),e.setAttribute(`aria-controls`,n.id),n.setAttribute(`role`,`region`),n.setAttribute(`aria-labelledby`,e.id)})}resolveActiveNames(e){if(e==null){let e=this.headers.filter((e,t)=>{let n=this.panels[t];return e.classList.contains(`is-active`)||n?.classList.contains(`is-active`)});return e.map(e=>e.dataset.item).slice(0,this.options.multiple?e.length:1)}let t=Array.isArray(e)?e:[e],n=[];for(let e of t){let t=this.getIndex(e);if(!(t<0||t>=this.headers.length)&&(n.push(this.headers[t].dataset.item||String(t)),!this.options.multiple))break}return Array.from(new Set(n))}bindEvents(){this.unbindEvents(),this.cleanup.events.on(`click`,this.root,`click`,e=>{let t=e.target.closest(`.accordion-header`);!t||!this.headers.includes(t)||this.active(this.headers.indexOf(t))}),this.cleanup.events.on(`keydown`,this.root,`keydown`,e=>{if(e.key!==`Enter`&&e.key!==` `)return;let t=e.target.closest(`.accordion-header`);!t||!this.headers.includes(t)||(e.preventDefault(),this.active(this.headers.indexOf(t)))})}unbindEvents(){this.cleanup.events.clear()}syncAll(){this.headers.forEach((e,t)=>{this.syncItem(t,this.isActive(e.dataset.item))})}syncItem(e,t){let n=this.headers[e],r=this.panels[e];!n||!r||(n.classList.toggle(`is-active`,t),r.classList.toggle(`is-active`,t),n.setAttribute(`aria-expanded`,String(t)),r.setAttribute(`aria-hidden`,String(!t)),r.hidden=!t)}isActive(e){return this.activeNames.includes(e)}async activateItem(e,t=!0){let n=this.getIndex(e);if(n<0||n>=this.headers.length)return;let r=this.headers[n],i=this.panels[n],a=r.dataset.item||String(n),o=this.isActive(a);o&&!this.options.multiple&&!this.options.collapsible||(this.options.multiple?this.activeNames=o?this.activeNames.filter(e=>e!==a):[...this.activeNames,a]:o?this.options.collapsible&&(this.activeNames=[]):this.activeNames=[a],this.syncAll(),t&&this.options.onChange&&await Promise.resolve(this.options.onChange(n,a,r,i,this)))}getIndex(e){return typeof e==`number`?e:typeof e==`string`?this.headers.findIndex(t=>t.dataset.item===e):-1}get headers(){return this.dom?.headers||[]}get panels(){return this.dom?.panels||[]}get current(){let e=this.activeNames[0];return e?this.getIndex(e):null}get state(){return{activeNames:[...this.activeNames],current:this.current}}async active(e){this.assertActive(`active`),await this.activateItem(e,!0)}setItems(e,t=0){this.assertActive(`setItems`),g(`items`,e,R,`Accordion.setItems`),g(`active`,t,Ce,`Accordion.setItems`);let n=z(e);this.options.items=we(n),this.options.active=t,this.root.textContent=``,this.root.append(this.buildItems(n)),this.refreshDom(),this.prepareItems(),this.activeNames=this.resolveActiveNames(t),this.syncAll()}destroy(){if(this.destroyed)return;let e=this.root,t=this.dynamic;this.runtime.destroyed=!0,this.unbindEvents();for(let e of this.headers)e.classList.remove(`is-active`),e.removeAttribute(`aria-expanded`);for(let e of this.panels)e.classList.remove(`is-active`),e.removeAttribute(`aria-hidden`),e.hidden=!1;t&&e?.parentNode&&e.parentNode.removeChild(e),this.root=null,this.options={},this.activeNames=[],this.cleanup.events.clear(),this.dom.headers=[],this.dom.panels=[]}};let Ee={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:T,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():v():e??v()},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 De=class{constructor(e,t={}){if(!S())throw Error(`Drop: DOM render environment is required.`);if(!w(e))throw Error(`Drop: element expects a valid HTMLElement.`);this.target=e,this.options=_(t,Ee,`Drop.options`),this._init(this.options)}_init(e){this.isVisible=!1,this.root=null,this.cleanup={events:j()},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:E(r,this)}),l=(0,t.jsx)(`div`,{className:s?`j-drop ${s}`:`j-drop`,id:i,"data-drop":a||v(),children:c});this.root=l,document.body.appendChild(l)}_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())),this.cleanup.events.on(`root:enter`,this.root,`mouseenter`,()=>this.show()),this.cleanup.events.on(`root:leave`,this.root,`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)))}_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.options;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._setPosition():(this.root.style.top=``,this.root.style.left=``),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.options.onShown&&this.options.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.options.onHidden&&this.options.onHidden())}toggle(){this.isVisible?this.hide():this.show()}destroy(){this.options&&(clearTimeout(this._timer?.show),clearTimeout(this._timer?.hide),this.root&&this._exec(!1),this.options&&this._unbindEvents(),this.root?.parentNode&&this.root.parentNode.removeChild(this.root),this.options=null,this.root=null,this.target=null,this._timer={show:null,hide:null},this.cleanup?.events.clear(),this.cleanup=null)}};function Oe(e){return e==null||typeof e==`string`||typeof e==`function`||Array.isArray(e)||typeof Node<`u`&&e instanceof Node}function ke(e){return!!e&&typeof e==`object`&&typeof e.id==`string`}function Ae(e){return e==null||e===!1||typeof e==`function`}function B(e){return e&&typeof e==`object`&&!Array.isArray(e)?{...e}:{}}function je(e){return Array.isArray(e)?[...e]:[]}function Me(e){return Array.isArray(e)?e.map(e=>({...e,data:B(e.data),view:B(e.view)})):[]}function Ne(e,t){return typeof e==`string`?{id:e}:e&&typeof e==`object`?e:{id:t}}let Pe={validate:ke,message:`expects a step object with a string id.`},Fe={validate:Oe,message:`expects string, Node, array, function or null.`},Ie={validate:e=>Array.isArray(e)&&e.length>0,message:`expects a non-empty steps array.`},V={validate:e=>e==null||typeof e==`object`&&!Array.isArray(e),message:`expects an object or null.`},H={validate:Ae,message:`expects function, false or null.`},Le={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():v():e??v()},steps:{default:[],...Ie},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`},backText:{default:`Back`,type:`string`},nextText:{default:`Next`,type:`string`},finishText:{default:`Finish`,type:`string`},resetText:{default:`Reset`,type:`string`},className:{default:``,type:`string`},renderHeader:{default:null,...H},renderSteps:{default:null,...H},renderBody:{default:null,...H},renderFooter:{default:null,...H},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 Re=class{constructor(e={}){this.options=_(e,Le,`Flow.options`),this._init(this.options)}_init(e){this.steps=Me(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:B(this._initialData.global),stepData:B(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:B(this.state.data),stepData:B(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=typeof e==`string`?document.querySelector(e):e;if(!w(t))throw Error(`Flow.mount: container expects Element or selector.`);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`),g(`payload`,e,V,`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}=Ne(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`),g(`payload`,e,V,`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}=Ne(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`),g(`payload`,t,V,`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`),g(`data`,e,V,`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`),g(`stepId`,e,{type:`string`},`Flow.setStepData`),g(`data`,n,V,`Flow.setStepData`),!n||!this._stepMap.has(e)?this:((0,t.flushSync)(()=>{this.state.stepData[e]={...B(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 B(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,B(this._initialData.global)),this._replaceObject(this.state.stepData,B(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`),g(`payload`,e,V,`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(g(String(n),r,Pe,`Flow.options.steps`),g(`content`,r.content??null,Fe,`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]=B(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:B(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:je(this.state.history),data:B(this.state.data),stepData:B(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.resetText}):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.backText}):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.finishText:this.options.nextText}):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 ze(e){return new Re(e)}let Be={type:{default:`mobile`,type:`string`},id:{default:``,type:`string`,normalize:e=>e.trim()===``?v():e.trim()},items:{default:[],type:`array`},backText:{default:`Back`,type:`string`}},Ve={type:`array`};var He=class{constructor(e,t={}){this._element=e,this.options=_(t,Be,`Menu.options`),this.root=null,this.cleanup={events:j()},this._bound=!1,this._destroyed=!1,this._validateOptions()}get menu(){return this.root}_validateOptions(){let{items:e}=this.options;this._element!==!1&&g(`element`,this._element,[`HTMLElement`,`string`],`Menu`),this._verifyItems(e)}_verifyItems(e){g(`items`,e,Ve,`Menu`)}build(){if(this._bound)return this;if(!S())throw Error(`Menu: DOM render environment is required.`);if(this._element===!1)this.root=this._buildRoot(),this._bound=!0;else{let e=k(this._element,`Menu.element`);if(!e)throw Error(`Element not found`);this.root=e,this._bound=!0}return 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||v()}`,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=D(`: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)):D(`.menu-item.is-active`,this.root)?.classList.remove(`is-active`)}))}_unbindEvents(){this.cleanup.events.clear()}_teardown({keepElement:e=!1}={}){this._unbindEvents(),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=D(`:scope > .sub-menu`,e);if(!n||D(`: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`);D(`.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 t=this.root.matches?.(`.menu`)||this.root.matches?.(`ul`)||this.root.matches?.(`ol`)?this.root:D(`:scope > .menu`,this.root)||D(`.menu`,this.root);if(!t)throw Error(`Menu: .menu element not found for setItems().`);this._unbindEvents(),t.textContent=``,t.append(...e.map(e=>this._buildItem(e))),this._bindEvents()}return this}removeItem(e){if(!this.root)return this;let t=D(`[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 U(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 W(e){return{...e,fields:Array.isArray(e.fields)?U(e.fields):e.fields}}function Ue(e){return e&&typeof e==`object`?e:{value:e,text:e}}function G(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function We(e){return e==null||typeof e==`string`||typeof e==`function`||Array.isArray(e)||C(e)}function Ge(e){return G(e)}function Ke(e){return e==null||typeof e==`object`&&typeof e.next==`function`&&typeof e.back==`function`&&typeof e.snapshot==`function`}function K(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function qe(e,t){return!Array.isArray(e)||!G(t)?e:e.map(e=>{if(!e?.name||!K(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 Je(e){return{...e,fields:Array.isArray(e.fields)?U(e.fields):null,loading:!1,submitting:!1,visible:!1,data:null,extraData:null}}function Ye(e,t){return!t||typeof t!=`object`?e:Object.assign(e,t)}let Xe={validate:We,message:`expects string, Node, array, function or null.`},Ze={types:[`array`,`null`]},Qe={validate:e=>typeof e==`string`||e===!1,message:`expects string or false.`},q={title:{default:`Tip`,type:`string`},content:{default:``,...Xe},position:{default:`center`,type:`string`},confirmText:{default:`Confirm`,type:`string`},cancelText:{default:`Cancel`,type:`string`},showCancel:{default:!0,type:`boolean`},showClose:{default:!0,type:`boolean`},showBack:{default:!1,type:`boolean`},showNext:{default:!1,type:`boolean`},fullscreen:{default:!1,type:`boolean`},flow:{default:null,validate:Ke,message:`expects a Flow instance or null.`},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`]},onBack:{default:null,types:[`function`,`null`]},onNext:{default:null,types:[`function`,`null`]},fields:{default:null,...Ze},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():v():e??v()},escClose:{default:!1,type:`boolean`},bgClose:{default:!1,type:`boolean`},lazy:{default:!1,type:`boolean`},backText:{default:`Back`,...Qe},nextText:{default:`Next`,...Qe}},$e={...q,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`]}},et=new Set([`id`,`lazy`]),tt={validate:e=>!!e&&typeof e==`object`&&!Array.isArray(e),message:`expects an object.`},nt={validate:Ge,message:`expects an options object.`},J=[],Y=0,X=``;var rt=class{constructor(e={}){let t=_(e,q,`Modal.options`);this.init(t)}static get modalStack(){return J}init(e){this.dom={root:null},this.cleanup={events:j(),state:null,view:null,hideTimer:null},this.cache={initial:W(e),fieldIds:new Map,baseStyle:``,previousActiveElement:null,formId:`${e.id}_form`},this.runtime={scrollLocked:!1,visibleApplied:!1,destroyed:!1},this.state=(0,t.createDeepStore)(Je(e)),this.bindReactiveVisibility(),!this.state.lazy&&S()&&this.buildRoot()}get root(){return this.dom?.root||null}set root(e){this.dom||(this.dom={}),this.dom.root=e}get modal(){return this.dom.modal||(this.root?D(`.j-modal`,this.root):null)}get form(){return this.dom.form&&this.root?.contains(this.dom.form)?this.dom.form:this.root?D(`form`,this.root):null}get initialOptions(){return this.cache.initial?W(this.cache.initial):null}get initialFields(){return this.cache.initial?.fields?U(this.cache.initial.fields):null}get initialContent(){return this.cache.initial?.content??null}get content(){return this.state?.content??null}get data(){return this.state?.data??null}get visible(){return!!this.state?.visible}set visible(e){this.state&&(0,t.flushSync)(()=>{this.state.visible=!!e})}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.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.onCleanup)((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.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.cancelText}):null,this.state.showBack&&this.state.backText!==!1?(0,t.jsx)(`button`,{type:`button`,className:`j-button is-ghost modal-back`,"data-action":`back`,disabled:()=>this.isBusy(),children:()=>this.state.backText}):null,this.state.showNext&&this.state.nextText!==!1?(0,t.jsx)(`button`,{type:`button`,className:`j-button is-secondary modal-next`,"data-action":`next`,disabled:()=>this.isBusy(),children:()=>this.state.nextText}):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.confirmText})]: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}_${v()}`),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=Ue(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)}validateOptionPatch(e,t=`Modal.update`){g(`options`,e,nt,t);for(let n of Object.keys(e)){if(!Object.prototype.hasOwnProperty.call(q,n))throw Error(`Validator: ${t}.${n} is not a supported modal option.`);if(et.has(n))throw Error(`Modal.update: "${n}" cannot be updated after initialization.`);g(n,e[n],q[n],t)}}applyOptions(e,{validate:n=!0}={}){if(n&&this.validateOptionPatch(e),!e||Object.keys(e).length===0)return this;let r=Object.prototype.hasOwnProperty.call(e,`fields`);if(Object.prototype.hasOwnProperty.call(e,`content`)&&!r&&this.isFormMode())throw Error(`Modal.update: Cannot update content when fields are defined.`);return(0,t.flushSync)(()=>{r&&(this.cache.fieldIds.clear(),this.state.fields=Array.isArray(e.fields)?U(e.fields):null);for(let[t,n]of Object.entries(e))t!==`fields`&&(this.state[t]=n)}),Object.prototype.hasOwnProperty.call(e,`style`)&&this.modal&&this.applyStyle(this.modal,this.state.style),this.visible&&(Object.prototype.hasOwnProperty.call(e,`bgClose`)||Object.prototype.hasOwnProperty.call(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=D(`.modal-close`,e);t&&(t.style.transform=`translateX(${t.clientHeight/3}px)`)}bindReactiveVisibility(){this.cleanup.state=(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.pushStack(),this.runtime.visibleApplied=!0,this.normalizeIcon(this.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.removeFromStack(),this.clearEvents(),(0,t.flushSync)(()=>{this.state.loading=!1,this.state.extraData=null,this.state.data=null}),this.modal&&(this.modal.style.transition=`opacity 300ms ease-out, transform 300ms ease-out`,this.modal.style.opacity=`0`,this.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.isTop()&&this.hide()})}bindDocumentKeyEvent(){this.cleanup.events.on(`keydown`,document,`keydown`,e=>{if(!(!this.visible||!this.isTop())){if(e.key===`Escape`&&this.state.escClose){e.preventDefault(),this.hide();return}e.key===`Tab`&&this.trapFocus(e)}})}bindInsideEvent(){this.modal&&this.cleanup.events.on(`inside`,this.modal,`click`,e=>{let t=(e.target instanceof Element?e.target:null)?.closest(`[data-action]`);if(!t||!this.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.form){this.handleConfirm();return}if(typeof this.form.requestSubmit==`function`){this.form.requestSubmit();return}let e=new Event(`submit`,{bubbles:!0,cancelable:!0});this.form.dispatchEvent(e)}async handleFormSubmit(e){if(e.preventDefault(),this.isBusy())return;let n=e.currentTarget;if(!n.checkValidity()){n.reportValidity();return}let r=Ye(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())Object.prototype.hasOwnProperty.call(t,e)?t[e]=Array.isArray(t[e])?[...t[e],r]:[t[e],r]:t[e]=r;return t}async handleNext(){if(!this.isBusy()){if(this.hasFlow()){await this.moveFlow(`next`);return}if(typeof this.state.onNext==`function`){(0,t.flushSync)(()=>{this.state.submitting=!0});try{let e=await Promise.resolve(this.state.onNext(this));G(e)&&this.update(e)}catch(e){console.error(`Modal.onNext error:`,e)}finally{this.state&&(0,t.flushSync)(()=>{this.state.submitting=!1})}}}}async handleBack(){if(!this.isBusy()){if(this.hasFlow()){await this.moveFlow(`back`);return}if(typeof this.state.onBack==`function`){(0,t.flushSync)(()=>{this.state.submitting=!0});try{let e=await Promise.resolve(this.state.onBack(this));G(e)&&this.update(e)}catch(e){console.error(`Modal.onBack error:`,e)}finally{this.state&&(0,t.flushSync)(()=>{this.state.submitting=!1})}}}}hasFlow(){return Ke(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.form;if(!e)return this.state.data||null;if(!e.checkValidity())return e.reportValidity(),!1;let n=Ye(this.collectFormData(e),this.state.extraData);return(0,t.flushSync)(()=>{this.state.data=n}),this.state.data}syncFlowView(e,t=null){if(!e||!this.state)return;let n=e.snapshot()||t,r=e.currentStep||n?.currentStep||t?.currentStep,i={...G(r?.view)?r.view:{}};Array.isArray(i.fields)&&(i.fields=qe(i.fields,n?.currentData)),K(i,`showBack`)||(i.showBack=!!n?.canBack),K(i,`showNext`)||(i.showNext=!!n?.canNext),!K(i,`fields`)&&K(i,`content`)&&(i.fields=null),this.update(i)}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.modal)return;let t=Array.from(O(`a[href], button:not([disabled]):not([data-action=close]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])`,this.modal)).filter(e=>e.offsetParent!==null||e===document.activeElement);if(t.length===0){e.preventDefault(),this.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.modal)return;let e=D(`input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]):not([data-action=close]), [tabindex]:not([tabindex="-1"])`,this.form||this.modal);e?e.focus():(this.modal.setAttribute(`tabindex`,`-1`),this.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)}pushStack(){this.removeFromStack(),J.push(this)}removeFromStack(){let e=J.indexOf(this);e>=0&&J.splice(e,1)}isTop(){return J[J.length-1]===this}cancelHideTimer(){this.cleanup.hideTimer&&(clearTimeout(this.cleanup.hideTimer),this.cleanup.hideTimer=null)}resetAnimationStyles(){this.modal&&(this.cache.baseStyle?this.modal.setAttribute(`style`,this.cache.baseStyle):this.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.`)}setState(e,n){if(this.assertActive(`setState`),typeof e!=`string`||!e)throw Error(`Modal.setState: key expects a non-empty string.`);if(!K($e,e))throw Error(`Modal.setState: "${e}" is not a supported state key.`);if(et.has(e))throw Error(`Modal.setState: "${e}" cannot be updated after initialization.`);return g(e,n,$e[e],`Modal.setState`),(0,t.flushSync)(()=>{e===`fields`&&this.cache.fieldIds.clear(),this.state[e]=e===`fields`&&Array.isArray(n)?U(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){return g(`data`,e,Ze,`Modal.setFields`),this.applyOptions({fields:e},{validate:!1}),this}addFields(e){return g(`data`,e,tt,`Modal.addFields`),(0,t.flushSync)(()=>{this.state.extraData=e}),this}setContent(e){if(g(`content`,e,Xe,`Modal.setContent`),this.isFormMode())throw Error(`Modal.setContent: Cannot setContent when fields are defined.`);return this.applyOptions({content:e},{validate:!1}),this}update(e={}){return this.applyOptions(e)}reset(){this.cache.fieldIds.clear();let e=W(this.cache.initial);return delete e.id,delete e.lazy,this.applyOptions(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)?U(this.cache.initial.fields):null)}destroy(){if(this.runtime.destroyed)return;this.runtime.destroyed=!0;let e=!!this.runtime.visibleApplied,t=this.state?.onHide,n=this.state?.onHidden;e&&t&&t(),this.cancelHideTimer(),this.clearEvents(),this.removeFromStack(),this.unlockScroll(),this.cleanup.state?.(),this.cleanup.state=null,this.cleanup.view?.(),this.cleanup.view=null,this.root?.parentNode&&this.root.parentNode.removeChild(this.root),e&&n&&n(),this.cleanup.events.clear(),this.dom={root:null},this.cache={initial:null,fieldIds:null,baseStyle:``,previousActiveElement:null,formId:``},this.state=null,this.runtime.visibleApplied=!1}};let it={content:{default:``,validate:T,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():v():e??v()},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 at=class{constructor(e={}){if(!S())throw Error(`Offcanvas: DOM render environment is required.`);this.options=_(e,it,`Offcanvas.options`),this._init(this.options)}_init(e){this.isVisible=!1,e.overlay&&(this._overlay=this._buildOverlay(e)),this.root=this._buildRoot(e),this.cleanup={events:j()},this._removeTimer=null,this._showTimer=null,this._shownTimer=null,this._destroyed=!1}_esc(e){e.key===`Escape`&&this.isVisible&&this.hide()}_bindEvents(){let{bgClose:e,escClose:t}=this.options;this._unbindEvents(),this._overlay&&e&&this.cleanup.events.on(`overlay`,this._overlay,`click`,()=>{this.hide()}),t&&this.cleanup.events.on(`esc`,document,`keydown`,e=>this._esc(e)),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()}_buildOverlay(e){let n=e.filter,r=n?`backdropFilter`:``,i=n?`blur(2px)`:``;return(0,t.jsx)(`div`,{className:`j-offcanvas-overlay`,style:n?{[r]:i}:{}})}_buildRoot(e){let{id:n,direction:r,animation:i,content:a}=e;return(0,t.jsx)(`div`,{className:`j-offcanvas ${r?`is-${r}`:``} ${i?`is-${i}`:``}`,id:n,children:(0,t.jsx)(`div`,{className:`offcanvas-content`,children:E(a,this)})})}_render(){let{overlay:e,animation:t,direction:n}=this.options;if(e&&document.body.appendChild(this._overlay),document.body.appendChild(this.root),document.body.style.overflow=`hidden`,t===`push`){document.body.classList.add(`offcanvas-push-body`);let e=window.scrollY;this._overlay&&(this._overlay.style.top=`${e}px`),this.root.style.top=`${e}px`}clearTimeout(this._showTimer),this._showTimer=setTimeout(()=>{this.root&&(this._overlay&&this._overlay.classList.add(`is-active`),t===`push`&&document.body.classList.add(`offcanvas-push-${n}`),this.root.classList.add(`is-active`),this._showTimer=null)},10)}_remove(){let{animation:e,direction:t}=this.options;this._overlay&&this._overlay.classList.remove(`is-active`),this.root.classList.remove(`is-active`),e===`push`&&document.body.classList.remove(`offcanvas-push-${t}`),clearTimeout(this._removeTimer),this._removeTimer=setTimeout(()=>{this._overlay&&this._overlay.parentNode&&this._overlay.parentNode.removeChild(this._overlay),this.root&&this.root.parentNode&&this.root.parentNode.removeChild(this.root),e===`push`&&document.body.classList.remove(`offcanvas-push-body`),document.body.style.overflow=``,this._removeTimer=null},100)}async show(){if(this._destroyed)return;let{onShow:e,onShown:t}=this.options;this.isVisible||(e&&await Promise.resolve(e()),this._render(),this._bindEvents(),this.isVisible=!0,clearTimeout(this._shownTimer),this._shownTimer=setTimeout(()=>{this._destroyed||(t&&t(),this._shownTimer=null)},100))}async hide(){if(this._destroyed)return;let{onHide:e,onHidden:t}=this.options;this.isVisible&&(e&&await Promise.resolve(e()),this._unbindEvents(),this._remove(),this.isVisible=!1,t&&t())}destroy(){if(this._destroyed)return;this._destroyed=!0;let e=this.isVisible;clearTimeout(this._removeTimer),clearTimeout(this._showTimer),clearTimeout(this._shownTimer),e&&(this._unbindEvents(),this.root?.classList.remove(`is-active`)),this.root?.parentNode?.removeChild(this.root),this._overlay?.parentNode?.removeChild(this._overlay),document.body.style.overflow=``,document.body.classList.remove(`offcanvas-push-body`,`offcanvas-push-${this.options.direction}`),this.options=null,this.root=null,this._overlay=null,this.cleanup?.events.clear(),this.cleanup=null,this._removeTimer=null,this._showTimer=null,this._shownTimer=null,this.isVisible=null}};let ot={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,types:[`HTMLElement`,`string`]},to:{default:null,types:[`HTMLElement`,`string`]},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 st=class{constructor(e){if(!S())throw Error(`Parabola: DOM render environment is required.`);this.options=_(e,ot,`Parabola.options`),this._init(this.options)}_init(e){if(this.hidden=!1,this._ball=null,this._animationId=null,this._showTimeoutId=null,this._hideTimeoutId=null,this.hidden)return;let t=k(e.from),n=k(e.to);if(!t||!n)throw this.hidden=!0,Error(`Parabola: from or to element not found.`);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=k(e.from)?.getBoundingClientRect(),n=k(e.to)?.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=>{this._showTimeoutId=setTimeout(()=>{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)},this.options.showDelay)})}destroy(){this.hidden||(this._ball?.parentNode&&this._ball.parentNode.removeChild(this._ball),this._showTimeoutId&&clearTimeout(this._showTimeoutId),this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._animationId&&cancelAnimationFrame(this._animationId),this._ball=null,this.hidden=!0,this.options.onHidden&&this.options.onHidden())}start(){return this.show()}};let ct={data:{default:null,validate:e=>e==null||Array.isArray(e),message:`expects an array or null.`},loop:{default:!1,type:`boolean`},autoplay:{default:!1,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`}},lt={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.children==null||T(e.children)),message:`expects items with optional image, url, title, sort and children fields.`};function ut(e){return!!e?.closest?.(`a, button, input, textarea, select, label, [data-swiper-ignore]`)}var dt=class{constructor(e,t={}){if(!S())throw Error(`Swiper: DOM render environment is required.`);let n=_(t,ct,`Swiper.options`),r=Array.isArray(n.data),i=typeof e==`string`?D(e):w(e)?e:null;!i&&!r&&g(`container`,i,{validate:w,message:`expects a valid HTMLElement or selector.`},`Swiper`);let a=i,o=null,s=r;if(r)o=i||document.body,a=document.createElement(`div`),a.className=`j-swiper`,o.appendChild(a);else if(!a.classList.contains(`j-swiper`))throw Error(`Swiper: root element must have .j-swiper.`);this.settings={options:n};let c=r?this.createDataView(a,n.data):D(`.swiper-wrapper`,a);if(!c)throw Error(`Swiper: .swiper-wrapper not found.`);let l=O(`.swiper-slide`,c);this.dom={root:a,wrapper:c,slides:l,pagination:D(`.swiper-pagination`,a),prevButton:D(`.swiper-navigation.is-prev`,a),nextButton:D(`.swiper-navigation.is-next`,a),bullets:[],createdPagination:!1,createdPrevButton:!1,createdNextButton:!1,createdRoot:s,createdSlides:r,mountTarget:o},this.runtime={realCount:l.length,index:0,transform:0,width:0,timer:null,logs:[],startTarget:null,touching:!1,scrolling:!1,swiping:!1,animating:!1,clickPrevented:!1,destroyed:!1},this.cleanup={events:j()},this.slides.length!==0&&this.init()}createDataView(e,t){let n=this.normalizeData(t),r=document.createElement(`div`);return r.className=`swiper-wrapper`,e.textContent=``,n.forEach((e,t)=>{r.appendChild(this.createDataSlide(e,t,this.config))}),e.appendChild(r),r}normalizeData(e){e.forEach((e,t)=>{g(String(t),e,lt,`Swiper.options.data`)});let t=e.map((e,t)=>({...e,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,t,n=this.config){let r=e.url?document.createElement(`a`):document.createElement(`div`);if(r.className=`swiper-slide`,r.setAttribute(`data-swiper-index`,String(t)),e.url&&(r.href=e.url),e.children!=null)return r.append(...E(e.children,{swiper:this,item:e,index:t})),r;if(e.image){let t=document.createElement(`img`);t.className=`swiper-image`,t.alt=e.title||``,t.loading=`lazy`,n.lazyload?t.dataset.lazy=e.image:t.src=e.image,r.appendChild(t)}if(e.title){let t=document.createElement(`span`);t.className=`swiper-slide-title`,t.textContent=e.title,r.appendChild(t)}return r}get config(){return this.settings?.options||{}}set config(e){this.settings||(this.settings={}),this.settings.options=e||{}}get el(){return this.dom?.root||null}set el(e){this.dom||(this.dom={}),this.dom.root=e}get wrapper(){return this.dom?.wrapper||null}set wrapper(e){this.dom||(this.dom={}),this.dom.wrapper=e}get slides(){return this.dom?.slides||[]}set slides(e){this.dom||(this.dom={}),this.dom.slides=Array.isArray(e)?e:[]}get bullets(){return this.dom?.bullets||[]}set bullets(e){this.dom||(this.dom={}),this.dom.bullets=Array.isArray(e)?e:[]}get pagination(){return this.dom?.pagination||null}set pagination(e){this.dom||(this.dom={}),this.dom.pagination=e}get prevButton(){return this.dom?.prevButton||null}set prevButton(e){this.dom||(this.dom={}),this.dom.prevButton=e}get nextButton(){return this.dom?.nextButton||null}set nextButton(e){this.dom||(this.dom={}),this.dom.nextButton=e}get realCount(){return this.runtime?.realCount||0}set realCount(e){this.runtime||(this.runtime={}),this.runtime.realCount=Number(e)||0}get index(){return this.runtime?.index||0}set index(e){this.runtime||(this.runtime={}),this.runtime.index=Number(e)||0}get transform(){return this.runtime?.transform||0}set transform(e){this.runtime||(this.runtime={}),this.runtime.transform=Number(e)||0}get width(){return this.runtime?.width||0}set width(e){this.runtime||(this.runtime={}),this.runtime.width=Number(e)||0}get timer(){return this.runtime?.timer||null}set timer(e){this.runtime||(this.runtime={}),this.runtime.timer=e}get logs(){return this.runtime?.logs||[]}set logs(e){this.runtime||(this.runtime={}),this.runtime.logs=Array.isArray(e)?e:[]}get touching(){return!!this.runtime?.touching}set touching(e){this.runtime||(this.runtime={}),this.runtime.touching=!!e}get scrolling(){return!!this.runtime?.scrolling}set scrolling(e){this.runtime||(this.runtime={}),this.runtime.scrolling=!!e}get swiping(){return!!this.runtime?.swiping}set swiping(e){this.runtime||(this.runtime={}),this.runtime.swiping=!!e}get animating(){return!!this.runtime?.animating}set animating(e){this.runtime||(this.runtime={}),this.runtime.animating=!!e}init(){this.updateSize(),this.config.loop&&this.slides.length>1&&this.initLoop(),this.setupStyles(),this.index=+!!this.config.loop,this.transform=-this.index*this.width,this.render(!1),this.bindEvents(),this.config.pagination&&this.initPagination(),this.config.navigation&&this.initNavigation(),this.updateControls(),this.config.lazyload&&this.loadImages(),this.config.autoplay&&this.play()}updateSize(){this.width=this.el.clientWidth||this.el.offsetWidth}refreshSlides(){this.slides=O(`.swiper-slide`,this.wrapper)}initLoop(){let e=this.slides[0].cloneNode(!0),t=this.slides[this.slides.length-1].cloneNode(!0);e.setAttribute(`data-clone`,``),t.setAttribute(`data-clone`,``),this.wrapper.appendChild(e),this.wrapper.insertBefore(t,this.slides[0]),this.refreshSlides()}setupStyles(){this.wrapper.style.display=`flex`,this.wrapper.style.willChange=`transform`,this.slides.forEach(e=>{e.style.flexShrink=`0`,e.style.width=`${this.width}px`})}bindEvents(){this.cleanup.events.on(`touchstart`,this.wrapper,`touchstart`,e=>{e.touches[0]&&this.onStart(e.touches[0],e.target)},{passive:!0}),this.cleanup.events.on(`touchmove`,this.wrapper,`touchmove`,e=>{e.touches[0]&&this.onMove(e.touches[0],e)},{passive:!1}),this.cleanup.events.on(`touchend`,this.wrapper,`touchend`,e=>{e.changedTouches[0]&&this.pushLog(e.changedTouches[0]),this.onEnd()}),this.cleanup.events.on(`touchcancel`,this.wrapper,`touchcancel`,()=>{this.resetDrag(!0)}),this.cleanup.events.on(`window:touchcancel`,window,`touchcancel`,()=>{this.resetDrag(!0)}),this.cleanup.events.on(`mousedown`,this.wrapper,`mousedown`,e=>{e.button===0&&(this.onStart(e,e.target),this.wrapper.style.cursor=`grabbing`)}),this.cleanup.events.on(`mousemove`,this.wrapper,`mousemove`,e=>{e.buttons===1&&this.onMove(e,e)}),this.cleanup.events.on(`mouseup`,this.wrapper,`mouseup`,e=>{this.wrapper.style.cursor=`grab`,this.pushLog(e),this.onEnd()}),this.cleanup.events.on(`window:mouseup`,window,`mouseup`,e=>{this.touching&&(this.wrapper.style.cursor=`grab`,this.pushLog(e),this.onEnd())}),this.cleanup.events.on(`wrapper:mouseleave`,this.wrapper,`mouseleave`,()=>{this.touching&&(this.wrapper.style.cursor=`grab`,this.onEnd())}),this.cleanup.events.on(`click`,this.wrapper,`click`,e=>{!this.runtime.clickPrevented||!this.config.preventClick||(e.preventDefault(),e.stopPropagation(),this.runtime.clickPrevented=!1)},{capture:!0}),this.cleanup.events.on(`dragstart`,this.wrapper,`dragstart`,e=>e.preventDefault()),this.cleanup.events.on(`transitionend`,this.wrapper,`transitionend`,()=>this.onTransitionEnd()),this.cleanup.events.on(`root:mouseenter`,this.el,`mouseenter`,()=>this.pause()),this.cleanup.events.on(`root:mouseleave`,this.el,`mouseleave`,()=>this.resume())}onStart(e,t=null){this.animating||(this.logs=[],this.pushLog(e),this.runtime.startTarget=t,this.touching=!0,this.scrolling=!1,this.swiping=!1,this.runtime.clickPrevented=!1,this.pause(),this.wrapper.style.transition=`none`)}onMove(e,t){if(!this.touching||this.scrolling||this.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.swiping)if(Math.atan2(i,r)*180/Math.PI<this.config.touchAngle)this.swiping=!0,this.runtime.clickPrevented=ut(this.runtime.startTarget);else{this.scrolling=!0,this.resetDrag(!0);return}this.swiping&&(t.preventDefault(),this.transform=-this.index*this.width+n.x*this.config.touchRatio,this.render(!1))}}onEnd(){if(!this.touching)return;if(this.touching=!1,!this.swiping){this.resetDrag(!0);return}let e=this.getDuration(),t=this.getOffset().x,n=this.index;if(e>this.config.longSwipesMs){let e=Math.ceil(Math.abs(t)/this.width-this.config.longSwipesRatio);e>0&&(n=this.index+e*(t>0?-1:1))}else{let e=Math.abs(t)/this.width,r=e>=this.config.longSwipesRatio?Math.max(1,Math.ceil(e-this.config.longSwipesRatio)):0;r>0&&(n=t>0?this.index-r:this.index+r)}this.slideTo(n),this.logs=[],this.resume()}resetDrag(e=!0){let t=this.index===0?0:-this.index*this.width,n=e&&this.transform!==t;this.touching=!1,this.scrolling=!1,this.swiping=!1,this.logs=[],this.runtime.startTarget=null,this.transform=t,this.render(n),this.resume()}onTransitionEnd(){this.animating=!1,this.config.loop&&(this.index===0?(this.index=this.realCount,this.transform=-this.index*this.width,this.render(!1)):this.index===this.slides.length-1&&(this.index=1,this.transform=-this.index*this.width,this.render(!1))),this.updateControls()}pushLog(e){this.logs.push({x:e.pageX??e.clientX??0,y:e.pageY??e.clientY??0,time:Date.now()}),this.logs.length>5&&this.logs.shift()}getDuration(){return this.logs.length===0?0:this.logs[this.logs.length-1].time-this.logs[0].time}getOffset(){if(this.logs.length===0)return{x:0,y:0};let e=this.logs[0],t=this.logs[this.logs.length-1];return{x:t.x-e.x,y:t.y-e.y}}toRealIndex(e=this.index){return this.config.loop?e===0?this.realCount-1:e===this.slides.length-1?0:e-1:e}slideTo(e){if(this.animating)return;let t=e;this.config.loop?e<0?t=0:e>=this.slides.length&&(t=this.slides.length-1):t=Math.max(0,Math.min(e,this.slides.length-1)),this.index=t,this.transform=-t*this.width,this.render(!0),this.updateControls(),this.config.lazyload&&this.loadImages()}next(){this.animating||this.slideTo(this.index+1)}prev(){this.animating||this.slideTo(this.index-1)}render(e){e?(this.wrapper.style.transition=`transform ${this.config.speed}ms cubic-bezier(0.25, 0.46, 0.45, 0.94)`,this.animating=!0):(this.wrapper.style.transition=`none`,this.animating=!1),this.wrapper.style.transform=`translate3d(${this.transform}px, 0, 0)`}loadImages(){let e=[this.index];this.index>0&&e.push(this.index-1),this.index<this.slides.length-1&&e.push(this.index+1),e.forEach(e=>{let t=this.slides[e];if(!t)return;let n=D(`img[data-lazy]`,t);!n||n.src||(n.classList.add(`loading`),n.src=n.dataset.lazy,n.onload=()=>{n.classList.remove(`loading`),n.classList.add(`loaded`)},n.onerror=()=>{n.classList.remove(`loading`),n.classList.add(`error`)})})}initPagination(){this.pagination?this.pagination.classList.add(`is-horizontal`,`is-clickable`,`is-bullet`):(this.pagination=document.createElement(`div`),this.pagination.className=`swiper-pagination is-horizontal is-clickable is-bullet`,this.el.appendChild(this.pagination),this.dom.createdPagination=!0),this.pagination.textContent=``,this.bullets=[];for(let e=0;e<this.realCount;e++){let t=document.createElement(`span`);t.className=`swiper-pagination-indicator swiper-pagination-bullet`,t.setAttribute(`role`,`button`),t.setAttribute(`tabindex`,`0`),t.setAttribute(`aria-label`,`Go to slide ${e+1}`),this.cleanup.events.on(`bullet:${e}:click`,t,`click`,()=>{this.slideTo(this.config.loop?e+1:e)}),this.cleanup.events.on(`bullet:${e}:keydown`,t,`keydown`,t=>{t.key!==`Enter`&&t.key!==` `||(t.preventDefault(),this.slideTo(this.config.loop?e+1:e))}),this.bullets.push(t),this.pagination.appendChild(t)}}initNavigation(){this.prevButton=this.ensureNavigation(`prev`,`arrow-left`),this.nextButton=this.ensureNavigation(`next`,`arrow-right`),this.cleanup.events.on(`nav:prev`,this.prevButton,`click`,()=>this.prev()),this.cleanup.events.on(`nav:next`,this.nextButton,`click`,()=>this.next())}ensureNavigation(e,t){let n=e===`prev`?`createdPrevButton`:`createdNextButton`,r=`swiper-navigation is-${e}`,i=D(`.swiper-navigation.is-${e}`,this.el);return i?i.matches(`button`)||(i.setAttribute(`role`,`button`),i.setAttribute(`tabindex`,`0`),i.classList.add(`swiper-navigation`,`is-${e}`)):(i=document.createElement(`button`),i.type=`button`,i.className=r,this.el.appendChild(i),this.dom[n]=!0),i.setAttribute(`aria-label`,e===`prev`?`Previous slide`:`Next slide`),i.querySelector(`svg`)||(i.textContent=``,i.appendChild(I(t))),i}updateControls(){this.updatePagination(),this.updateNavigation()}updatePagination(){if(!this.bullets.length)return;let e=this.toRealIndex();this.bullets.forEach((t,n)=>{let r=n===e;t.classList.toggle(`is-active`,r),t.classList.toggle(`active`,r),t.setAttribute(`aria-current`,r?`true`:`false`)})}updateNavigation(){if(this.config.loop)return;let e=this.index<=0,t=this.index>=this.slides.length-1;this.prevButton&&(this.prevButton.classList.toggle(`is-disabled`,e),this.prevButton.toggleAttribute(`disabled`,e)),this.nextButton&&(this.nextButton.classList.toggle(`is-disabled`,t),this.nextButton.toggleAttribute(`disabled`,t))}play(){this.timer||(this.timer=setInterval(()=>this.next(),this.config.delay))}pause(){this.timer&&(clearInterval(this.timer),this.timer=null)}resume(){this.config.autoplay&&!this.timer&&this.play()}update(){this.updateSize(),this.setupStyles(),this.transform=-this.index*this.width,this.render(!1),this.updateControls()}destroy(){this.runtime?.destroyed||(this.runtime.destroyed=!0,this.pause(),this.cleanup.events.clear(),O(`[data-clone]`,this.wrapper).forEach(e=>e.remove()),this.dom.createdPagination&&this.pagination?.remove(),this.dom.createdPrevButton&&this.prevButton?.remove(),this.dom.createdNextButton&&this.nextButton?.remove(),this.dom.createdRoot&&this.el?.remove(),this.dom={root:null,wrapper:null,slides:[],pagination:null,prevButton:null,nextButton:null,bullets:[],createdRoot:!1,createdSlides:!1,mountTarget:null},this.runtime={destroyed:!0},this.settings=null)}};let ft={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():v():e??v()},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`]}},pt={type:`object`,validate:e=>!!e&&T(e.title)&&T(e.content),message:`expects an object with renderable title and content: string, Node, array, function or null.`};var mt=class{constructor(e,t={}){if(!S())throw Error(`Tabs: DOM render environment is required.`);if(e!==!1&&!w(e))throw Error(`Tabs: element expects a valid HTMLElement or false.`);this.options=_(t,ft,`Tabs.options`),this._dynamic=e===!1,this._init(e)}_init(e){this.root=e,this.current=null,this.cleanup={events:j()},this._disabledIndex=[],this._destroyed=!1;let{tabs:t,disabled:n,active:r}=this.options;if(this.root===!1&&(this.root=this._buildRoot(t)),this.tabs.length===0||this.panels.length===0)throw Error(`.tab-item or .panel-item not found.`);this._disabledIndex=this._parseDisabled(n),this._markDisabledTabs(),this._bindEvents(),this._activate(r,!1),this._initDrag()}get tabs(){return this.root?O(`.tab-item`,this.root):[]}get panels(){return this.root?O(`.panel-item`,this.root):[]}get _dragContainer(){return this.root?D(`.tab-wrap`,this.root):null}get _dragInner(){return this.root?D(`.tab-list`,this.root):null}_buildRoot(e){let{id:n,direction:r}=this.options;for(let t of e)g(`tab`,t,pt,`Tabs.options.tabs`);let i=(0,t.jsx)(`nav`,{className:`tab-list`}),a=(0,t.jsx)(`div`,{className:`tab-wrap`,children:i}),o=(0,t.jsx)(`div`,{className:`tab-panel`});for(let t of e){let e=this._createTab(t);i.appendChild(e);let n=this._createPanel(t);o.appendChild(n)}return(0,t.jsx)(`div`,{className:`j-tabs is-${r}`,id:n,children:[a,o]})}_createTab(e){let n=(0,t.jsx)(`div`,{className:`tab-item`,"data-tab":e.name||v()}),r=(0,t.jsx)(`span`);return r.append(...E(e.title,{tabs:this,item:e})),n.appendChild(r),n}_createPanel(e){let n=(0,t.jsx)(`div`,{className:`panel-item`}),r=(0,t.jsx)(`div`);return r.append(...E(e.content,{tabs:this,item:e})),n.appendChild(r),n}_parseDisabled(e){if(e==null)return[];let t=e=>typeof e==`number`?e:typeof e==`string`?this.tabs.findIndex(t=>t.dataset.tab===e):-1;if(Array.isArray(e))return e.map(t).filter(e=>e>=0);{let n=t(e);return n>=0?[n]:[]}}_markDisabledTabs(){for(let[e,t]of this.tabs.entries())this._disabledIndex.includes(e)?(t.setAttribute(`disabled`,`true`),t.classList.add(`is-disabled`)):(t.removeAttribute(`disabled`),t.classList.remove(`is-disabled`))}_bindEvents(){this._unbindEvents(),this._dragInner&&this.cleanup.events.on(`tabClick`,this._dragInner,`click`,e=>{let t=e.target.closest(`.tab-item`);if(!t||!this.tabs.includes(t))return;let n=this.tabs.indexOf(t);n>=0&&!this._disabledIndex.includes(n)&&this.activate(n)})}_unbindEvents(){this.cleanup.events.off(`tabClick`)}async _activate(e,t=!0){let{onChange:n}=this.options,r=this._getIndex(e);if(!(r<0||r>=this.tabs.length||this._disabledIndex.includes(r)||this.current===r)){this.current=r;for(let[e,t]of this.tabs.entries())t.classList.toggle(`is-active`,e===r);for(let[e,t]of this.panels.entries())t.classList.toggle(`is-active`,e===r);if(t&&n){let e=this.tabs[r],t=this.panels[r],i=e&&e.dataset.tab||r;await Promise.resolve(n(r,i,e,t))}}}_getIndex(e){return typeof e==`number`?e:typeof e==`string`?this.tabs.findIndex(t=>t.dataset.tab===e):-1}_initDrag(){let{direction:e}=this.options;if(!(!this._dragContainer||!this._dragInner)){if(this.isVertical=e===`left`||e===`right`,this.draggable=this._draggable(),!this.draggable){this._removeDragEvents();return}this._bindDragEvents(),this.cleanup.events.on(`resize`,window,`resize`,()=>{cancelAnimationFrame(this._resizeRaf),this._resizeRaf=requestAnimationFrame(()=>{this._refreshDrag()})})}}_draggable(){return this.isVertical?this._dragInner.scrollHeight>this._dragContainer.clientHeight+5:this._dragInner.scrollWidth>this._dragContainer.clientWidth+5}_bindDragEvents(){this._removeDragEvents();let e=this._dragContainer,t=this._dragInner,n=this.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.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()}async activate(e){await this._activate(e,!0)}async reInit(e={}){this.options=_({...this.options,...e},ft,`Tabs.options`);let{disabled:t,active:n}=this.options;this._disabledIndex=this._parseDisabled(t),this._markDisabledTabs(),this._bindEvents(),await this._activate(n,!1),this._refreshDrag()}async addTab(e){g(`tabConfig`,e,pt,`Tabs.addTab`);let{title:t,name:n,content:r}=e,i=D(`.tab-panel`,this.root);e.name=n||v();let a=this._createTab(e);this._dragInner&&this._dragInner.appendChild(a);let o=this._createPanel({title:t,name:n,content:r});i.appendChild(o),this._markDisabledTabs(),this._bindEvents();let{onAdd:s}=this.options;s&&await Promise.resolve(s(this.tabs.length-1,e,a,o)),this._refreshDrag()}async deleteTab(e){if(this.tabs.length<=1)return;let t=this._getIndex(e);if(t<0||t>=this.tabs.length)return;let n=this.tabs[t],r=this.panels[t],i=n.dataset.tab||t;n&&n.parentNode&&n.parentNode.removeChild(n),r&&r.parentNode&&r.parentNode.removeChild(r),this._markDisabledTabs(),this._bindEvents();let{onRemove:a}=this.options;a&&await Promise.resolve(a(t,i)),n.classList.contains(`is-active`)&&await this._activate(this.tabs.length-1,!1),this._refreshDrag()}disableTab(e){let t=this._getIndex(e);t>=0&&!this._disabledIndex.includes(t)&&(this._disabledIndex.push(t),this._markDisabledTabs(),this._bindEvents())}enableTab(e){let t=this._getIndex(e),n=this._disabledIndex.indexOf(t);n>=0&&(this._disabledIndex.splice(n,1),this._markDisabledTabs(),this._bindEvents())}destroy(){if(this._destroyed)return;let e=this.root,t=this._dynamic;this._destroyed=!0,this._unbindEvents(),this._removeDragEvents(),cancelAnimationFrame(this.raf),cancelAnimationFrame(this._resizeRaf);for(let e of this.tabs)e.classList.remove(`is-active`,`is-disabled`),e.removeAttribute(`disabled`);for(let e of this.panels)e.classList.remove(`is-active`);this.cleanup.events.off(`resize`),t&&e?.parentNode&&e.parentNode.removeChild(e),this.root=null,this.options={},this.isVertical=!1,this.cleanup.events.clear(),this.cleanup=null}},ht={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:`自动`}},gt=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=ht,this._init()}_init(){this.cleanup={events:j()},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=M(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);N(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=O(`.palette-item`,e);for(let e of t){let t=e.dataset.palette,n=this.options[t],r=O(`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)}};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 _t(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 vt(e){var t=_t(e,`string`);return Z(t)==`symbol`?t:t+``}function Q(e,t,n){return(t=vt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let yt={type:`string`,enum:[`info`,`success`,`warning`,`error`,`primary`]},bt={type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},xt={type:`number`,validate:e=>e>0,message:`expects a number greater than 0.`};var $=class e{_z(){}static show(n=``,r=3e3,i=`info`){if(!S())throw Error(`Toast: DOM render environment is required.`);St(n,r,i);let a=D(`.j-toast-container`);a||(a=(0,t.jsx)(`div`,{className:`j-toast-container`}),document.body.appendChild(a));let o=I(i===`primary`?`info`:i),s=(0,t.jsx)(`div`,{className:`j-toast is-${i}`,"data-toast":v(),children:[(0,t.jsx)(`span`,{className:`toast-icon`,children:o}),(0,t.jsx)(`span`,{className:`toast-message`,children:n})]});a.appendChild(s),e._setTimer(()=>{s.classList.add(`toast-show`)},10),r>0&&e._setTimer(()=>{e.hide(s)},r);let c=A(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){t&&(e.disposers.get(t)?.(),e.disposers.delete(t),t.classList.remove(`toast-show`),t.classList.add(`toast-hide`),e._setTimer(()=>{t.parentNode&&t.parentNode.removeChild(t);let e=D(`.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.`);g(`message`,n,`string`,`Toast.lite`),g(`duration`,r,xt,`Toast.lite`);let i=D(`.j-toast-lite`);i&&i.remove();let a=(0,t.jsx)(`div`,{className:`j-toast-lite`,children:n});return document.body.appendChild(a),e._setTimer(()=>a.classList.add(`is-shown`),10),e._setTimer(()=>{a.classList.remove(`is-shown`),a.classList.add(`is-hidden`),e._setTimer(()=>a.remove(),300)},r),a}static _setTimer(t,n){let r=setTimeout(()=>{e.timers.delete(r),t()},n);return e.timers.add(r),r}static clearAll(){for(let t of e.timers)clearTimeout(t);e.timers.clear();for(let t of e.disposers.values())t();e.disposers.clear(),D(`.j-toast-container`)?.remove(),D(`.j-toast-lite`)?.remove()}static destroyAll(){e.clearAll()}};Q($,`timers`,new Set),Q($,`disposers`,new Map);function St(e,t,n){g(`message`,e,`string`,`Toast.show`),g(`duration`,t,bt,`Toast.show`),g(`type`,n,yt,`Toast.show`)}let Ct={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 wt=class{constructor(e,t={}){if(!S())throw Error(`Tooltip: DOM render environment is required.`);if(!w(e))throw Error(`Tooltip: element expects a valid HTMLElement.`);let n=_(t,Ct,`Tooltip.options`),r=this._buildTooltipContainer(n);this.options=n,this._destroyed=!1,this.drop=new De(e,{name:n.name,mode:n.mode,position:n.position,offset:n.offset,content:r,className:n.className,id:n.id,delay:n.delay,hoverIntent:n.hoverIntent})}_buildTooltipContainer(e){let n=(0,t.jsx)(`div`,{className:`tooltip-message`,children:e.message});return(0,t.jsx)(`div`,{className:e.className?`j-tooltip ${e.className}`:`j-tooltip`,children:n})}show(e=!0){this.drop.show(e)}hide(e=!0){this.drop.hide(e)}toggle(){this.drop.toggle()}destroy(){this._destroyed||(this._destroyed=!0,this.drop?.destroy(),this.drop=null,this.options=null)}};let Tt={rules:{default:{},type:`object`},messages:{default:{},type:`object`},onSubmit:{default:null,types:[`function`,`null`]}};var Et=class{constructor(e,t={},n=!1){if(!S())throw Error(`Validator: DOM render environment is required.`);this.options=_(t,Tt,`Validator.options`),this._validateOptions(e,this.options,n),this._init(e),n&&this._bindEvents()}_validateOptions(e,t,n){g(`element`,e,[`HTMLElement`,`string`],`Validator`),g(`bindEvents`,n,`boolean`,`Validator`)}_init(e){if(this.root=k(e,`Validator.element`),!this.root)throw Error(`Validator: element not found.`);this.valid=!0,this.cleanup={events:j()},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`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}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}_validateNoSpace(e,t){return!/\s/.test(e.value)||t!==!0}_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.message=i;let n=e.closest(`.form-control`),r=n?D(`.help-block`,n):null;r||(r=(0,t.jsx)(`div`,{className:`help-block is-invalid`,children:i}),n.appendChild(r))}}_success(e){this.message=``;let t=e.closest(`.form-control`),n=t?D(`.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=O(`.help-block`,this.root);for(let t of e)t.remove();this.valid=!0,this.message=``}destroy(){this._destroyed||(this._destroyed=!0,this._unbindEvents(),this.reset(),this.root=null,this.options=null,this.message=null,this.valid=null,this.cleanup?.events.clear(),this.cleanup=null)}};e.Accordion=Te,e.Drop=De,e.Flow=Re,e.Menu=He,e.Modal=rt,e.Offcanvas=at,e.Parabola=st,e.Swiper=dt,e.Tabs=mt,e.Theme=gt,e.Toast=$,e.Tooltip=wt,e.Validator=Et,e.addIcons=xe,e.all=O,e.canRenderDOM=S,e.canUseDOM=x,e.copy=i,e.createEventManager=j,e.createFlow=ze,e.destroyAll=se,e.getCookie=M,e.getEl=k,e.getIcons=be,e.getType=c,e.icon=I,e.iconHtml=L,e.iconMarkup=ye,e.isClass=u,e.isElement=w,e.isFunction=l,e.isMobile=r,e.isNode=C,e.isRenderableContent=T,e.listen=A,e.normalizeContentNodes=E,e.postJson=he,e.q=D,e.randomId=v,e.release=oe,e.removeCookie=_e,e.resolveOptions=_,e.restUrl=ge,e.service=ce,e.setCookie=N,e.singleton=ie,e.timer=s,e.unlisten=me,e.uuid=re,e.validate=h,e.validateOptions=ne,e.validateParam=g});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vanilla-jui",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "private": false,
5
5
  "description": "A lightweight vanilla JavaScript UI plugin library.",
6
6
  "keywords": [