vanilla-jui 0.5.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,8 +1,3 @@
1
1
  # JUI Library
2
2
 
3
3
  A lightweight vanilla UI library for building user interfaces.
4
-
5
- ## 进度
6
-
7
- - 开发中。
8
- - 规则见:todo/todo.md
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":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};
1
+ import{bindAttr as e,bindClass as t,createDeepStore as n,createEffect as r,createRoot as i,flushSync as a,h as o,insert as s,jsx as c,onCleanup as l,render as u,untrack as d}from"vanilla-signal";import{t as f}from"vanilla-signal-i18n";function p(){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 ee(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(()=>te(t)):Promise.resolve(te(t))}function te(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 m=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),h={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])}},ne=e=>e===null?`null`:Array.isArray(e)?`array`:typeof HTMLElement<`u`&&e instanceof HTMLElement?`HTMLElement`:typeof Node<`u`&&e instanceof Node?`Node`:typeof e,re=e=>typeof e==`function`&&e.prototype!==null&&e.prototype.constructor===e,ie=e=>typeof e==`function`&&/^class\s/.test(Function.prototype.toString.call(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 ae(e){return Array.isArray(e)?e.slice():g(e)?{...e}:e}function _(e={}){return typeof e==`string`||Array.isArray(e)?{type:e}:!e||typeof e!=`object`?{}:e}function oe(e,t,n=[]){let r=Array.isArray(n)?n:n?[n]:[];for(let n of r){let r,i;if(typeof n==`function`)r=n,i=`does not satisfy the required condition.`;else if(n&&typeof n.test==`function`)r=n.test,i=n.message||`condition failed.`;else throw Error(`Validator: Condition must be a function or { test, message }.`);if(!r(t))throw Error(`Validator: ${e} ${i}`)}}function se(e,t){return e?`${e}.${t}`:t}function ce(e){if(m(e,`default`))return ae(e.factory&&typeof e.default==`function`?e.default():e.default)}function v(e,t,n={},r=``){let i=_(n),a=se(r,e),o=m(i,`types`)?i.types:i.type;if(i.required&&t==null)throw Error(`Validator: ${a} is required.`);if(o!==void 0){let e=Array.isArray(o)?o:[o],n=ne(t);if(!e.some(e=>e===n)){let t=e.join(`, `);throw Error(`Validator: ${a} expects ${t}, but got ${n}.`)}oe(a,t,i.conditions)}else oe(a,t,i.conditions);if(Array.isArray(i.enum)&&!i.enum.includes(t))throw Error(`Validator: ${a} expects one of ${i.enum.join(`, `)}.`);if(typeof i.validate==`function`&&!i.validate(t))throw Error(`Validator: ${a} ${i.message||`does not satisfy the required condition.`}`);return t}function y(e={},t={},n=`Options`){let r=e??{};if(typeof r!=`object`||Array.isArray(r))throw Error(`${n} expects object.`);let i={...r},a=Object.entries(t||{});for(let[e,t]of a){let n=_(t);i[e]=m(r,e)?r[e]:ce(n)}for(let[e,n]of a){let a=_(n);typeof a.normalize==`function`&&(i[e]=a.normalize(i[e],{key:e,input:r,options:i,schema:t}))}for(let[e,r]of Object.entries(t||{}))v(e,i[e],r,n);return i}function le(){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 b(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 x=new Map,S=new Map,ue=(e,t=[],n=``,r=!1,i=null)=>{if(!re(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()===``?b():n;if(x.has(a)&&!r)return x.get(a).proxy;let o=new e(...t),s=new Proxy(o,{get(e,t,n){return i&&de(a,i),Reflect.get(e,t,n)},set(e,t,n,r){return Reflect.set(e,t,n,r)}});return x.set(a,{instance:o,proxy:s}),s};function de(e,t){S.has(e)&&clearTimeout(S.get(e));let n=setTimeout(()=>{fe(e)},t);S.set(e,n)}function fe(e){if(x.has(e)){let{instance:t}=x.get(e);if(typeof t.destroy==`function`)try{t.destroy()}catch{throw Error(`release(): destroy() failed on instance with key "${e}".`)}x.delete(e)}S.has(e)&&(clearTimeout(S.get(e)),S.delete(e))}function pe(){for(let{instance:e}of x.values())if(typeof e.destroy==`function`)try{e.destroy()}catch{}x.clear();for(let e of S.values())clearTimeout(e);S.clear()}const me={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 C(){return typeof document<`u`}function w(){return!C()||typeof document.createElement!=`function`?!1:typeof document.createElement(`div`).insertBefore==`function`}function T(e){return C()&&typeof Node<`u`&&e instanceof Node}function E(e){return typeof Element<`u`&&e instanceof Element}function he(e){let t=e.flatMap(e=>k(e));return t.find(E)||t.find(T)||null}const D=(e,t=`Component`)=>M(e,`${t}.container`);function O(e){return e==null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`||typeof e==`function`||Array.isArray(e)||T(e)}function ge(e){let t=document.createElement(`template`);return t.innerHTML=e,Array.from(t.content.childNodes)}function k(e,t){let n=typeof e==`function`?e(t):e;return n==null||n===!1||n===!0?[]:Array.isArray(n)?n.flatMap(e=>k(e,t)):T(n)?[n]:typeof n==`string`?ge(n):[document.createTextNode(String(n))]}function A(e,t=document){return t.querySelector(e)}function j(e,t=document){return Array.from(t.querySelectorAll(e))}function _e(e,t=`getEl`){if(E(e)||T(e))return e;if(typeof e==`string`)return A(e);if(Array.isArray(e))return he(e);if(e===!1||e==null)return null;throw Error(`${t}: expects Element, Node, selector or JSX node.`)}function M(e,t=`resolveElement`){let n=_e(e,t);if(!E(n))throw Error(`${t}: expects a valid Element.`);return n}const ve=()=>{};function ye(e){return!!e&&typeof e.addEventListener==`function`&&typeof e.removeEventListener==`function`}function be(e,t){if(!ye(e))throw TypeError(`${t}: target expects EventTarget.`)}function N(e,t){if(typeof e!=`string`||e.trim()===``)throw TypeError(`${t}: type expects a non-empty string.`)}function xe(e,t){if(typeof e!=`function`&&(!e||typeof e.handleEvent!=`function`))throw TypeError(`${t}: handler expects a function or EventListener object.`)}function P(e,t,n,r){be(e,`listen`),N(t,`listen`),xe(n,`listen`);let i=!0;return e.addEventListener(t,n,r),()=>{i&&(i=!1,e.removeEventListener(t,n,r))}}function Se(e,t,n,r){be(e,`unlisten`),N(t,`unlisten`),xe(n,`unlisten`),e.removeEventListener(t,n,r)}function F(){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 ve;let s=P(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 Ce(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 we=typeof window<`u`?`${window.location.origin}/wp-json`:``;function I(e){if(typeof document>`u`)return null;let t=`; ${document.cookie}`.split(`; ${e}=`);return t.length===2?t.pop().split(`;`).shift():null}function Te(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(`; `),I(e)===t}function Ee(e){return typeof document>`u`?!0:(document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`,!I(e))}const L={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 De(e){if(!(e in L))throw Error(`Icon "${e}" not found.`)}function Oe(e){return De(e),`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false">${L[e]}</svg>`}function R(e,t={}){if(!w())throw Error(`icon(): DOM render environment is required.`);let n=document.createElement(`template`);n.innerHTML=Oe(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 ke(e){return Oe(e)}const Ae=ke;function je(){return{...L}}function Me(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}".`);L[t]=n}}function z(e){"@babel/helpers - typeof";return z=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},z(e)}function Ne(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 Pe(e){var t=Ne(e,`string`);return z(t)==`symbol`?t:t+``}function B(e,t,n){return(t=Pe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var V=class e{constructor(e={}){this.props=e||{},this.dom={root:null},this.plugins=new Map,this.cleanup={events:F(),plugins:new Map},this._listeners={init:[],beforeUpdate:[],afterUpdate:[],destroy:[]},this.state=n({}),this.runtime={destroyed:!1},this.installGlobalPlugins()}get root(){return this.dom?.root||null}set root(e){this.dom||(this.dom={}),this.dom.root=e}use(e,t){if(!e)return this;let n=typeof e==`function`?e(this,t):e.install?.(this,t);return this.cleanup.plugins.set(e,n),this}on(e,t){return!this._listeners[e]||typeof t!=`function`||this._listeners[e].push(t),this}off(e,t){return this._listeners[e]&&(this._listeners[e]=this._listeners[e].filter(e=>e!==t)),this}installGlobalPlugins(){for(let t of e.globalPlugins.values())this.use(t)}static useGlobal(t,n){!t||!n||e.globalPlugins.set(t,n)}emit(e,...t){let n=this._listeners[e];if(!n)return this;for(let e of n)try{e(...t)}catch{}return this}init(e={}){if(this.runtime.destroyed)throw Error(`Component.init: instance destroyed`);return e&&typeof e==`object`&&!Array.isArray(e)&&(this.props=Object.assign({},this.props,e)),typeof this.onInit==`function`&&this.onInit(this.props),this.emit(`init`,this.props),this}setState(e={},t){if(this.runtime.destroyed)throw Error(`Component.setState: instance destroyed`);let n=typeof e==`string`&&arguments.length>1?{[e]:t}:e;if(!n||typeof n!=`object`||Array.isArray(n))throw Error(`Component.setState: expects a plain object patch.`);return a(()=>{for(let[e,t]of Object.entries(n))this.state[e]=t}),this}update(e={},{force:t=!1}={}){if(this.runtime.destroyed)throw Error(`Component.update: instance destroyed`);return e&&typeof e==`object`&&(this.props=Object.assign({},this.props,e)),this.emit(`beforeUpdate`,e,{force:t}),typeof this.onUpdate==`function`&&this.onUpdate(e,{force:t}),this.emit(`afterUpdate`,e,{force:t}),this}destroy(){if(!this.runtime.destroyed){this.runtime.destroyed=!0,typeof this.onDestroy==`function`&&this.onDestroy(),this.emit(`destroy`);for(let e of this.cleanup.plugins.values())try{typeof e==`function`?e():e&&typeof e.destroy==`function`&&e.destroy()}catch{}this.cleanup.plugins.clear(),this.cleanup.events.clear(),this.dom={root:null},this.state=null}}};B(V,`globalPlugins`,new Map);const Fe={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():b():e??b()},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`}},Ie={type:`array`,validate:e=>e.length>0,message:`expects a non-empty array.`},Le={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 Re(e){return Array.isArray(e)?e.map(e=>({...e})):[]}function ze(e){return v(`items`,e,Ie,`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(!O(e.title))throw Error(`Accordion: item title expects string, Node, array, function or null.`);if(!O(e.content))throw Error(`Accordion: item content expects string, Node, array, function or null.`);return{...e,name:e.name||b()}})}var Be=class extends V{constructor(e,t={}){if(!w())throw Error(`Accordion: DOM render environment is required.`);let r=D(e,`Accordion`),i=y(t,Fe,`Accordion`);super(i),this.container=r,this.dom.headers=[],this.dom.panels=[],this.state=n({activeNames:[],current:{index:null,name:null}});try{this.onInit(i)}catch(e){throw this.destroy(),e}}onInit(e){this.root=this.buildRoot(e),this.buildItems(e),this.syncActiveNames(this.resolveActiveNames(e.active)),this.bindEvents()}buildRoot(e){return c(`div`,{className:`j-accordion`,id:e.id})}buildItems(n){let r=ze(n.items),a=document.createDocumentFragment();this.dom.headers=[],this.dom.panels=[],r.forEach((e,t)=>{let r=e.name||b(),i=`${n.id}_header_${t}`,o=`${n.id}_panel_${t}`,s=c(`div`,{className:`accordion-header`,"data-item":r,id:i,role:`button`,tabindex:`0`,"aria-controls":o,children:[c(`span`,{className:`header-title`,children:this.contentView(e.title,e,t,`title`)}),c(`span`,{className:`header-arrow`,"aria-hidden":`true`,children:R(`arrow-down`)})]}),l=c(`div`,{className:`accordion-panel`,id:o,role:`region`,"aria-labelledby":i,children:c(`div`,{className:`panel-content`,children:this.contentView(e.content,e,t,`content`)})});this.dom.headers.push(s),this.dom.panels.push(l),a.append(s,l)}),this.root.append(a),this.cleanup.bindings?.(),this.cleanup.bindings=i(n=>(this.dom.headers.forEach(n=>{let r=n.dataset.item;t(n,`is-active`,()=>this.state.activeNames.includes(r)),e(n,`aria-expanded`,()=>this.state.activeNames.includes(r))}),this.dom.panels.forEach((n,r)=>{let i=this.dom.headers[r]?.dataset.item;t(n,`is-active`,()=>this.state.activeNames.includes(i)),e(n,`aria-hidden`,()=>this.state.activeNames.includes(i)?`false`:`true`),e(n,`hidden`,()=>!this.state.activeNames.includes(i))}),n))}contentView(e,t,n,r){return k(e,{accordion:this,item:t,index:n,type:r,active:!1})}resolveActiveNames(e){if(e==null)return[];let t=Array.isArray(e)?e:[e],n=[];for(let e of t){let t=this.getIndex(e);if(!(t<0||t>=this.dom.headers.length)&&(n.push(this.dom.headers[t].dataset.item||String(t)),!this.props.multiple))break}return Array.from(new Set(n))}syncActiveNames(e){let t=e[0]||null,n=t?this.getIndex(t):null;a(()=>{this.state.activeNames=e,this.state.current={index:n,name:t}})}bindEvents(){this.unbindEvents(),this.cleanup.events.on(`click`,this.root,`click`,e=>{let t=e.target.closest(`.accordion-header`);t&&this.active(t.dataset.item)}),this.cleanup.events.on(`keydown`,this.root,`keydown`,e=>{if(e.key!==`Enter`&&e.key!==` `)return;let t=e.target.closest(`.accordion-header`);t&&(e.preventDefault(),this.active(t.dataset.item))})}unbindEvents(){this.cleanup.events.clear()}isActive(e){return this.state.activeNames.includes(e)}assertActive(e){if(this.runtime.destroyed)throw Error(`Accordion.${e}: instance has been destroyed.`)}async activateItem(e,t=!0){let n=this.getIndex(e);if(n<0||n>=this.dom.headers.length)return;let r=this.dom.headers[n],i=this.dom.panels[n],a=r.dataset.item||String(n),o=this.isActive(a);if(o&&!this.props.multiple&&!this.props.collapsible)return;let s;s=this.props.multiple?o?this.state.activeNames.filter(e=>e!==a):[...this.state.activeNames,a]:o?this.props.collapsible?[]:this.state.activeNames:[a],this.syncActiveNames(s),t&&this.props.onChange&&await Promise.resolve(this.props.onChange(n,a,r,i,this))}getIndex(e){return typeof e==`number`?e:typeof e==`string`?this.dom.headers.findIndex(t=>t.dataset.item===e):-1}async active(e){this.assertActive(`active`),await this.activateItem(e,!0)}render(){this.assertActive(`render`),s(this.container,()=>this.root)}setItems(e,t=0){this.assertActive(`setItems`),v(`items`,e,Ie,`Accordion.setItems`),v(`active`,t,Le,`Accordion.setItems`),this.props.items=Re(ze(e)),this.props.active=t,this.root.textContent=``,this.buildItems(this.props),this.syncActiveNames(this.resolveActiveNames(t)),this.bindEvents()}onDestroy(){this.unbindEvents(),this.cleanup.bindings?.(),this.cleanup.bindings=null,this.root?.parentNode&&this.root.parentNode.removeChild(this.root)}};const Ve={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:O,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():b():e??b()},containerClassName:{default:null,types:[`string`,`null`]},delay:{default:0,types:[`number`,`object`]},hoverIntent:{default:!0,type:`boolean`},onShown:{default:null,types:[`function`,`null`]},onHidden:{default:null,types:[`function`,`null`]}};var H=class{constructor(e,t={}){if(!w())throw Error(`Drop: DOM render environment is required.`);this.target=M(e,`Drop.element`),this.props=y(t,Ve,`Drop`),this._init(this.props)}_init(e){this.isVisible=!1,this.root=null,this.cleanup={events:F()},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:i,containerClassName:a}=e,o=t||``,s=T(n)&&n.nodeType===1?n:c(`div`,{className:a?`drop-container ${a}`:`drop-container`,children:k(n,this)});this.root=c(`div`,{className:o?`j-drop ${o}`:`j-drop`,id:r,"data-drop":i||b(),children:s})}_bindEvents(e){let{mode:t,hoverIntent:n}=e;this._unbindEvents(),t===`hover`?n?(this.cleanup.events.on(`target:enter`,this.target,`mouseenter`,()=>this._startHoverIntent()),this.cleanup.events.on(`target:leave`,this.target,`mouseleave`,()=>this._cancelHoverIntent())):(this.cleanup.events.on(`target:enter`,this.target,`mouseenter`,()=>this.show()),this.cleanup.events.on(`target:leave`,this.target,`mouseleave`,()=>this.hide())):t===`click`&&(this.cleanup.events.on(`target:click`,this.target,`click`,()=>this.toggle()),this.cleanup.events.on(`document:click`,document,`click`,e=>this._docClick(e)))}_bindRootEvents(){!this.root||this.props.mode!==`hover`||(this.cleanup.events.on(`root:enter`,this.root,`mouseenter`,()=>this.show()),this.cleanup.events.on(`root:leave`,this.root,`mouseleave`,()=>this.hide()))}_unbindRootEvents(){this.cleanup.events.off(`root:enter`),this.cleanup.events.off(`root:leave`)}_unbindEvents(){this.cleanup?.events.clear()}_startHoverIntent(){this.cleanup.events.on(`document:mousemove`,document,`mousemove`,e=>this._onMouseMove(e)),clearTimeout(this._timer.show),this._timer.show=setTimeout(()=>{let e=Date.now()-this._hoverIntentData.lastMoveTime;Math.abs(this._hoverIntentData.x-this._lastX||0)+Math.abs(this._hoverIntentData.y-this._lastY||0)<5||e>100?(this.show(),this.cleanup.events.off(`document:mousemove`)):this._startHoverIntent()},this.delayShow)}_cancelHoverIntent(){clearTimeout(this._timer.show),this.cleanup.events.off(`document:mousemove`),this.hide()}_onMouseMove(e){this._lastX=e.clientX,this._lastY=e.clientY,this._hoverIntentData.lastMoveTime=Date.now(),this._hoverIntentData.x=e.clientX,this._hoverIntentData.y=e.clientY}_setPosition(){let e=this.target.getBoundingClientRect(),t=this.root,{offset:n,position:r}=this.props;t.style.visibility=`hidden`,t.style.display=`block`;let i=t.getBoundingClientRect(),a=0,o=0,s=r;switch(s===`auto`&&(s=window.innerHeight-e.bottom>i.height+n?`top-center`:`bottom-center`),s){case`top-left`:a=e.top-i.height-n,o=e.left;break;case`top-center`:a=e.top-i.height-n,o=e.left+e.width/2-i.width/2;break;case`top-right`:a=e.top-i.height-n,o=e.right-i.width;break;case`bottom-left`:a=e.bottom+n,o=e.left;break;case`bottom-center`:a=e.bottom+n,o=e.left+e.width/2-i.width/2;break;case`bottom-right`:a=e.bottom+n,o=e.right-i.width;break;case`left`:a=e.top+e.height/2-i.height/2,o=e.left-i.width-n;break;case`right`:a=e.top+e.height/2-i.height/2,o=e.right+n;break;default:break}a=Math.max(8,Math.min(a,window.innerHeight-i.height-8)),o=Math.max(8,Math.min(o,window.innerWidth-i.width-8)),t.style.top=`${a+window.scrollY}px`,t.style.left=`${o+window.scrollX}px`,t.style.visibility=``,t.style.display=``}_docClick(e){!this.root.contains(e.target)&&!this.target.contains(e.target)&&this.hide()}_exec(e){this.root&&(e?(this.root.parentNode||document.body.appendChild(this.root),this._bindRootEvents(),this._setPosition()):(this._unbindRootEvents(),this.root.style.top=``,this.root.style.left=``,this.root.parentNode&&this.root.parentNode.removeChild(this.root)),this.root.classList.toggle(`is-active`,e),this.isVisible=e)}show(e=!0){clearTimeout(this._timer.hide),!this.isVisible&&(e&&this.delayShow>0?(clearTimeout(this._timer.show),this._timer.show=setTimeout(()=>this._exec(!0),this.delayShow)):this._exec(!0),this.props.onShown&&this.props.onShown())}hide(e=!0){clearTimeout(this._timer.show),this.isVisible&&(e&&this.delayHide>0?(clearTimeout(this._timer.hide),this._timer.hide=setTimeout(()=>this._exec(!1),this.delayHide)):this._exec(!1),this.props.onHidden&&this.props.onHidden())}toggle(){this.isVisible?this.hide():this.show()}destroy(){this.props&&(clearTimeout(this._timer?.show),clearTimeout(this._timer?.hide),this._unbindEvents(),this.root?.parentNode&&this.root.parentNode.removeChild(this.root),this.props=null,this.root=null,this.target=null,this._timer={show:null,hide:null},this.cleanup?.events.clear(),this.cleanup=null)}};function He(e){return e==null||typeof e==`string`||typeof e==`function`||Array.isArray(e)||typeof Node<`u`&&e instanceof Node}function Ue(e){return!!e&&typeof e==`object`&&typeof e.id==`string`}function We(e){return e==null||e===!1||typeof e==`function`}function U(e){return e&&typeof e==`object`&&!Array.isArray(e)?{...e}:{}}function Ge(e){return Array.isArray(e)?[...e]:[]}function Ke(e){return Array.isArray(e)?e.map(e=>({...e,data:U(e.data),modal:U(e.modal),view:U(e.view)})):[]}function qe(e,t){return typeof e==`string`?{id:e}:e&&typeof e==`object`?e:{id:t}}const Je={validate:Ue,message:`expects a step object with a string id.`},Ye={validate:He,message:`expects string, Node, array, function or null.`},Xe={validate:e=>Array.isArray(e)&&e.length>0,message:`expects a non-empty steps array.`},W={validate:e=>e==null||typeof e==`object`&&!Array.isArray(e),message:`expects an object or null.`},G={validate:We,message:`expects function, false or null.`},Ze={default:{},validate:e=>g(e),message:`expects an object with text fields.`,normalize:e=>{let t=g(e)?e:{};return{...t,back:typeof t.back==`string`?t.back:`Back`,next:typeof t.next==`string`?t.next:`Next`,finish:typeof t.finish==`string`?t.finish:`Finish`,reset:typeof t.reset==`string`?t.reset:`Reset`}}},Qe={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():b():e??b()},steps:{default:[],...Xe},initial:{default:null,types:[`string`,`number`,`null`]},cache:{default:!0,type:`boolean`},linear:{default:!0,type:`boolean`},render:{default:!0,type:`boolean`},rollbackOnError:{default:!0,type:`boolean`},busyStrategy:{default:`ignore`,type:`string`,enum:[`ignore`,`throw`]},showHeader:{default:!0,type:`boolean`},showFooter:{default:!0,type:`boolean`},showSteps:{default:!0,type:`boolean`},showBack:{default:!0,type:`boolean`},showNext:{default:!0,type:`boolean`},showReset:{default:!1,type:`boolean`},text:Ze,className:{default:``,type:`string`},renderHeader:{default:null,...G},renderSteps:{default:null,...G},renderBody:{default:null,...G},renderFooter:{default:null,...G},onChange:{default:null,types:[`function`,`null`]},onNext:{default:null,types:[`function`,`null`]},onBack:{default:null,types:[`function`,`null`]},onFinish:{default:null,types:[`function`,`null`]},onError:{default:null,types:[`function`,`null`]},onBusy:{default:null,types:[`function`,`null`]}};var $e=class{constructor(e={}){this.options=y(e,Qe,`Flow.options`),this._init(this.options)}_init(e){this.steps=Ke(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=n({id:e.id,currentId:this._initialStepId,currentIndex:this._stepMap.get(this._initialStepId),previousId:null,previousIndex:null,direction:null,history:[this._initialStepId],data:U(this._initialData.global),stepData:U(this._initialData.stepData),loading:!1,error:null,busyAction:null,version:0})}get currentStep(){return this.steps[this.state.currentIndex]}get currentData(){return this.getStepData(this.state.currentId)}get canBack(){return this.state.currentIndex>0&&!this.state.loading}get canNext(){return this.state.currentIndex<this.steps.length-1&&!this.state.loading}get isLast(){return this.state.currentIndex===this.steps.length-1}subscribe(e){if(this._assertActive(`subscribe`),typeof e!=`function`)throw Error(`Flow.subscribe: handler expects a function.`);return this._subscribers.add(e),e(this.snapshot(),this),()=>this._subscribers.delete(e)}snapshot(){if(!this.state)return null;let e=this.currentStep;return{id:this.state.id,currentId:this.state.currentId,currentIndex:this.state.currentIndex,previousId:this.state.previousId,previousIndex:this.state.previousIndex,direction:this.state.direction,history:[...this.state.history],data:U(this.state.data),stepData:U(this.state.stepData),currentData:this.currentData,currentStep:this._publicStep(e),canBack:this.canBack,canNext:this.canNext,isLast:this.isLast,loading:this.state.loading,busyAction:this.state.busyAction,error:this.state.error}}mount(e){if(this._assertActive(`mount`),!this.options.render)return this;if(!w())throw Error(`Flow.mount: DOM environment is required.`);let t=M(e,`Flow.mount.container`);return this.unmount(),this.root=this._buildRoot(),t.appendChild(this.root),this._mountView(),this}unmount(){return this._renderDispose?.(),this._renderDispose=null,this.root?.parentNode&&this.root.parentNode.removeChild(this.root),this.root=null,this._nodes={},this}async next(e=null){return this._assertActive(`next`),v(`payload`,e,W,`Flow.next`),this._handleBusy(`next`)||this._runAction(`next`,async()=>{if(this.isLast)return this.finish(e,{internal:!0});let t=this.currentStep,n=this.steps[this.state.currentIndex+1]?.id,{id:r,data:i}=qe(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`),v(`payload`,e,W,`Flow.back`),this._handleBusy(`back`)||(this.canBack?this._runAction(`back`,async()=>{let t=this.currentStep,n=this.steps[this.state.currentIndex-1]?.id,{id:r,data:i}=qe(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`),v(`payload`,t,W,`Flow.goTo`),(n.internal?null:this._handleBusy(`goTo`))||this._runAction(`goTo`,async()=>{let r=this._resolveStepIndex(e),i=this.steps[r],a=this.currentStep;return!i||i.id===this.state.currentId?(t&&this.setStepData(this.state.currentId,t),this.snapshot()):(await this._transitionTo(i,{direction:n.direction||`go`,payload:t,fromStep:a}),this.snapshot())},{internal:n.internal})}setData(e){return this._assertActive(`setData`),v(`data`,e,W,`Flow.setData`),e?(a(()=>{Object.assign(this.state.data,e),this.state.version+=1}),this._emitChange(),this):this}setStepData(e,t,n={}){return this._assertActive(`setStepData`),v(`stepId`,e,{type:`string`},`Flow.setStepData`),v(`data`,t,W,`Flow.setStepData`),!t||!this._stepMap.has(e)?this:(a(()=>{this.state.stepData[e]={...U(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 U(this.state.stepData[e])}reset(){return this._assertActive(`reset`),a(()=>{this.state.currentId=this._initialStepId,this.state.currentIndex=this._stepMap.get(this._initialStepId),this.state.previousId=null,this.state.previousIndex=null,this.state.direction=null,this.state.history.splice(0,this.state.history.length,this._initialStepId),this._replaceObject(this.state.data,U(this._initialData.global)),this._replaceObject(this.state.stepData,U(this._initialData.stepData)),this.state.loading=!1,this.state.busyAction=null,this.state.error=null,this.state.version+=1}),this._emitChange(),this}async finish(e=null,t={}){return this._assertActive(`finish`),v(`payload`,e,W,`Flow.finish`),(t.internal?null:this._handleBusy(`finish`))||this._runAction(`finish`,async()=>(e&&this.setStepData(this.state.currentId,e),await this._callHook(this.options.onFinish,[this.snapshot(),this]),this.snapshot()),{internal:t.internal})}destroy(){if(!this._destroyed){this._destroyed=!0,this._abortActiveAction(),this.unmount();for(let e of Array.from(this._cleanupTasks))e();this._cleanupTasks.clear(),this._subscribers.clear(),this.steps=null,this.options=null,this.state=null,this._stepMap=null,this._initialData=null,this._activeAction=null,this._actionController=null}}_resolveInitialStepId(e){if(typeof e==`number`){let t=this.steps[e];if(!t)throw Error(`Flow.options.initial index is out of range.`);return t.id}if(typeof e==`string`){if(!this._stepMap.has(e))throw Error(`Flow.options.initial step "${e}" does not exist.`);return e}return this.steps[0].id}_validateSteps(e){let t=new Set;for(let[n,r]of e.entries()){if(v(String(n),r,Je,`Flow.options.steps`),v(`content`,r.content??null,Ye,`Flow.options.steps.${n}`),t.has(r.id))throw Error(`Flow.options.steps: duplicated step id "${r.id}".`);t.add(r.id)}}_resolveStepIndex(e){if(typeof e==`number`){if(!this.steps[e])throw Error(`Flow.goTo target is out of range.`);return e}if(typeof e==`string`){if(!this._stepMap.has(e))throw Error(`Flow.goTo target "${e}" does not exist.`);return this._stepMap.get(e)}throw Error(`Flow.goTo target expects string or number.`)}_createInitialStepData(){let e={},t={};for(let n of this.steps)e[n.id]=U(n.data),Object.assign(t,e[n.id]);return{stepData:e,global:t}}async _runMoveHook(e,t,n,r){let i=e===`back`?this.options.onBack:this.options.onNext,a=e===`back`?t.onBack:t.onNext,o=this._createContext({payload:n,targetId:r});if(typeof a==`function`){let e=await this._callHook(a,[o]);if(e!=null)return e}if(typeof i==`function`){let e=await this._callHook(i,[o]);if(e!=null)return e}return r}async _transitionTo(e,{direction:t,payload:n,fromStep:r}){let i=this.snapshot(),o=this._captureState();try{n&&this.setStepData(r.id,n,{silent:!0}),await this._assertCanLeave(r,e,t),await this._assertCanEnter(e,r,t),typeof r.onLeave==`function`&&await this._callHook(r.onLeave,[this._createContext({direction:t,step:r,targetId:e.id})]);let o=this.state.currentId,s=this.state.currentIndex,c=this._stepMap.get(e.id);a(()=>{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(i)}catch(e){throw this._destroyed||!this.state||!this.options?e:(this.options.rollbackOnError&&this._restoreState(o,{keepLoading:!0}),this._handleError(e,i),e)}}async _assertCanLeave(e,t,n){if(typeof e.canLeave==`function`&&await this._callHook(e.canLeave,[this._createContext({direction:n,targetId:t.id})])===!1)throw Error(`Flow: step "${e.id}" blocked leaving.`)}async _assertCanEnter(e,t,n){if(typeof e.canEnter==`function`&&await this._callHook(e.canEnter,[this._createContext({direction:n,fromId:t.id})])===!1)throw Error(`Flow: step "${e.id}" blocked entering.`)}_createContext(e={}){let t=e.step||this.currentStep,n=this.snapshot();return{...e,flow:this,step:t,state:this.state,signal:this._actionController?.signal||null,snapshot:n,data:U(this.state.data),currentData:this.getStepData(t.id),setData:e=>this.setData(e),setStepData:(e,t)=>this.setStepData(e,t),getStepData:e=>this.getStepData(e),next:e=>this.next(e),back:e=>this.back(e),goTo:(e,t,n)=>this.goTo(e,t,n),addCleanup:e=>this._addCleanup(e)}}async _runAction(e,t,n={}){let r=!n.internal&&!this.state.loading;r&&(this._actionController=typeof AbortController<`u`?new AbortController:null,this._activeAction=e,this._setLoading(!0,e));try{return await t()}catch(e){if(this._destroyed||!this.state)return null;throw!this._destroyed&&this.state?.error!==e&&this._handleError(e),e}finally{r&&!this._destroyed&&(this._setLoading(!1,null),this._activeAction=null,this._actionController=null)}}_handleBusy(e){if(!this.state.loading)return null;let t=Error(`Flow: action "${e}" ignored while loading.`);if(t.code=`FLOW_BUSY`,typeof this.options.onBusy==`function`&&this.options.onBusy(e,this.snapshot(),this),this.options.busyStrategy===`throw`)throw t;return this.snapshot()}_abortActiveAction(){this._actionController?.abort?.(),this._actionController=null,this._activeAction=null}async _callHook(e,t){if(typeof e!=`function`)return;let n=await e(...t);if(this._destroyed||!this.state)throw this._createAbortError();return n}_createAbortError(){let e=Error(`Flow: active action was aborted.`);return e.code=`FLOW_ABORTED`,e}_setLoading(e,t=this.state?.busyAction||null){this.state&&a(()=>{this.state.loading=e,this.state.busyAction=e?t:null})}_handleError(e,t=null){this.state&&(a(()=>{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:Ge(this.state.history),data:U(this.state.data),stepData:U(this.state.stepData),loading:this.state.loading,busyAction:this.state.busyAction,error:this.state.error,version:this.state.version}}_restoreState(e,t={}){a(()=>{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 c(`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=i(e=>(l(u(()=>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 c(`div`,{className:`flow-header`,children:[c(`div`,{id:`${this.options.id}-title`,className:`flow-title`,children:e.currentStep?.title||e.currentStep?.id||``}),e.currentStep?.description?c(`div`,{className:`flow-description`,children:e.currentStep.description}):null]})}_stepsView(e){return c(`ol`,{className:`flow-steps`,role:`list`,"aria-label":`Flow steps`,children:this.steps.map((t,n)=>c(`li`,{className:this._stepClass(n,e.currentIndex),"aria-current":n===e.currentIndex?`step`:void 0,children:[c(`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:[c(`span`,{className:`flow-step-index`,children:n+1}),c(`span`,{className:`flow-step-title`,children:t.title||t.id})]})]}))})}_bodyView(e){return c(`div`,{className:`flow-body`,role:`region`,"aria-live":`polite`,"aria-busy":e.loading?`true`:`false`,children:this._contentView(e.currentStep?.content)})}_footerView(e){return c(`div`,{className:`flow-footer`,children:[this.options.showReset?c(`button`,{type:`button`,className:`j-button is-ghost flow-reset`,onClick:()=>this.reset(),disabled:e.loading,"aria-disabled":e.loading?`true`:`false`,children:this.options.text.reset}):null,this.options.showBack?c(`button`,{type:`button`,className:`j-button is-ghost flow-back`,"data-action":`back`,onClick:()=>void this.back(),disabled:!e.canBack,"aria-disabled":e.canBack?`false`:`true`,children:this.options.text.back}):null,this.options.showNext?c(`button`,{type:`button`,className:`j-button is-primary flow-next`,"data-action":`next`,onClick:()=>void this.next(),disabled:e.loading,"aria-disabled":e.loading?`true`:`false`,children:e.isLast?this.options.text.finish:this.options.text.next}):null]})}_contentView(e){return typeof e==`function`?e(this._createContext()):Array.isArray(e)||typeof Node<`u`&&e instanceof Node?e:e==null||typeof e!=`string`?``:e}_stepClass(e,t=this.state.currentIndex){let n=[`flow-step`];return e===t&&n.push(`is-active`),e<t&&n.push(`is-complete`),n.join(` `)}};function et(e){return new $e(e)}const tt={type:{default:`mobile`,type:`string`},id:{default:``,type:`string`,normalize:e=>e.trim()===``?b():e.trim()},items:{default:[],type:`array`},backText:{default:`Back`,type:`string`}},nt={type:`array`};var rt=class{constructor(e={},t=!1){this.options=y(e,tt,`Menu.options`),this._element=t,this.root=null,this.cleanup={events:F()},this._bound=!1,this._destroyed=!1}_verifyItems(e){v(`items`,e,nt,`Menu`)}build(){if(this._bound)return this;if(!w())throw Error(`Menu: DOM render environment is required.`);return this._element===!1?(this.root=this._buildRoot(),this._bound=!0):(this.root=M(this._element,`Menu.element`),this._bound=!0),this._bindEvents(),this}_buildRoot(){let{items:e,id:t,type:n}=this.options;return c(`nav`,{className:`j-${n}-menu`,children:c(`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=[c(`a`,{className:`menu-link`,href:e.url||`#`,...e.target&&{target:e.target},children:e.title})];return t&&r.push(c(`ul`,{className:`sub-menu`,children:e.children.map(e=>this._buildItem(e))})),c(`li`,{className:n.join(` `),id:`menu-item-${e.id||b()}`,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=A(`: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)):A(`.menu-item.is-active`,this.root)?.classList.remove(`is-active`)}))}_unbindEvents(){this.cleanup.events.clear()}_teardown({keepElement:e=!1}={}){this._unbindEvents(),this.cleanup.items?.(),this.cleanup.items=null,this._element===!1&&this.root?.parentElement&&this.root.remove(),e||(this._element=null),this.root=null,this._bound=!1}_handleMenuClick(e){e.classList.add(`is-active`);let t=A(`:scope > .sub-menu`,e);if(!t||A(`:scope > .menu-item.back`,t))return;let n=c(`li`,{className:`menu-item back`,children:c(`a`,{className:`menu-link`,children:[c(`icon`,{className:`el-icon el-prefix`,children:R(`arrow-left`)}),c(`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`);A(`.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:A(`:scope > .menu`,this.root)||A(`.menu`,this.root);if(!t)throw Error(`Menu: .menu element not found for setItems().`);this._unbindEvents(),this.cleanup.items?.(),this.cleanup.items=u(()=>e.map(e=>this._buildItem(e)),t),this._bindEvents()}return this}removeItem(e){if(!this.root)return this;let t=A(`[id^="menu-item-${e}"]`,this.root);if(t&&t.remove(),this.options.items){let t=n=>{for(let r=n.length-1;r>=0;r--)n[r].id===e?n.splice(r,1):n[r].children&&t(n[r].children)};t(this.options.items)}return this}destroy(){this._destroyed||(this._destroyed=!0,this._bound?this._teardown():(this._element=null,this.root=null,this.cleanup.events.clear()),this.cleanup=null,this.options=null)}};function K(e){return Array.isArray(e)?e.map(e=>({...e,options:Array.isArray(e.options)?e.options.map(e=>e&&typeof e==`object`?{...e}:e):e.options})):[]}function q(e){return{...e,fields:Array.isArray(e.fields)?K(e.fields):e.fields}}function it(e){return e&&typeof e==`object`?e:{value:e,text:e}}function at(e){return e==null||typeof e==`string`||typeof e==`function`||Array.isArray(e)||T(e)}function ot(e){return g(e)}function st(e){return e==null||typeof e==`object`&&typeof e.next==`function`&&typeof e.back==`function`&&typeof e.snapshot==`function`}function ct(e,t){return!Array.isArray(e)||!g(t)?e:e.map(e=>{if(!e?.name||!m(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 lt(e){let t=g(e?.text)?e.text:{};return{title:typeof t.title==`string`?t.title:`Tip`,confirm:typeof t.confirm==`string`?t.confirm:`Confirm`,cancel:typeof t.cancel==`string`?t.cancel:`Cancel`}}function ut(e){return{...e,fields:Array.isArray(e.fields)?K(e.fields):null,text:lt(e),loading:!1,submitting:!1,visible:!1,data:null,extraData:null}}function dt(e,t){return!t||typeof t!=`object`?e:Object.assign(e,t)}function ft(e){return g(e)?{...e}:{}}const pt={validate:at,message:`expects string, Node, array, function or null.`},mt={default:{},validate:e=>g(e),message:`expects an object with text fields.`,normalize:e=>{let t=g(e)?e:{};return{...t,title:typeof t.title==`string`?t.title:`Tip`,confirm:typeof t.confirm==`string`?t.confirm:`Confirm`,cancel:typeof t.cancel==`string`?t.cancel:`Cancel`}}},ht={types:[`array`,`null`]},J={content:{default:``,...pt},position:{default:`center`,type:`string`},showCancel:{default:!0,type:`boolean`},showClose:{default:!0,type:`boolean`},fullscreen:{default:!1,type:`boolean`},flow:{default:null,validate:st,message:`expects a Flow instance or null.`},text:mt,onShow:{default:null,types:[`function`,`null`]},onShown:{default:null,types:[`function`,`null`]},onHide:{default:null,types:[`function`,`null`]},onHidden:{default:null,types:[`function`,`null`]},onConfirm:{default:null,types:[`function`,`null`]},onSubmit:{default:null,types:[`function`,`null`]},onCancel:{default:null,types:[`function`,`null`]},fields:{default:null,...ht},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():b():e??b()},escClose:{default:!1,type:`boolean`},bgClose:{default:!1,type:`boolean`},lazy:{default:!1,type:`boolean`}},gt={...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`]}},_t=new Set([`id`,`lazy`]),vt={validate:e=>!!e&&typeof e==`object`&&!Array.isArray(e),message:`expects an object.`},yt={validate:ot,message:`expects a props object.`};let Y=0,X=``;var bt=class extends V{constructor(e={}){let t=y(e,J,`Modal`);super(t),this.dom.modal=null,this.dom.header=null,this.dom.body=null,this.dom.footer=null,this.dom.form=null,this.cleanup.visibility=null,this.cleanup.view=null,this.cleanup.hideTimer=null,this.runtime.scrollLocked=!1,this.runtime.visibleApplied=!1,this.cache={initial:q(this.props),fieldIds:new Map,baseStyle:``,previousActiveElement:null,formId:`${this.props.id}_form`},this.state=n(ut(this.props)),this.init(t)}onInit(){this.bindReactiveVisibility(),!this.state.lazy&&w()&&this.buildRoot()}buildRoot(){if(this.root)return this.root;let{id:e}=this.state,t=c(`div`,{className:()=>`j-popup-layout is-${this.state.position}`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":()=>this.state.header?`${e}_title`:null,"aria-label":()=>this.state.header?null:this.state.text?.title||`Modal`,children:c(`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:[c(`div`,{className:`modal-header`,style:()=>({display:this.state.header?``:`none`}),ref:e=>{this.dom.header=e}}),c(`div`,{className:`modal-body`,ref:e=>{this.dom.body=e}}),c(`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=i(e=>(this.dom.header&&l(u(()=>this.headerView(),this.dom.header)),u(()=>this.bodyView(),this.dom.body),this.dom.footer&&l(u(()=>this.footerView(),this.dom.footer)),this.bindReactiveLoading(),this.bindReactiveStyle(),e)))}headerView(){return()=>this.state.header?[c(`div`,{className:`modal-title`,id:`${this.state.id}_title`,children:()=>this.state.text?.title}),this.state.showClose?c(`button`,{type:`button`,className:`is-reset modal-close`,"data-action":`close`,"aria-label":`close`,children:R(`close`)}):null]:null}footerView(){return()=>this.state.footer?[this.state.showCancel?c(`button`,{type:`button`,className:`j-button is-ghost modal-cancel`,"data-action":`close`,"aria-label":`close`,disabled:()=>this.isBusy(),children:()=>this.state.text?.cancel}):null,c(`button`,{type:()=>this.isFormMode()?`submit`:`button`,form:()=>this.isFormMode()?this.cache.formId:null,className:`j-button is-primary modal-confirm`,"data-action":this.isFormMode()?`submit`:`confirm`,disabled:()=>this.isBusy(),children:()=>this.state.text?.confirm})]:null}bodyView(){return this.isFormMode()?this.formView():(this.dom.form=null,this.contentView(this.state.content))}formView(){return c(`div`,{className:`modal-form-container`,children:c(`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 c(`div`,{className:`form-item`,style:{display:e.type===`hidden`?`none`:``},children:[r,c(`div`,{className:`form-control`,children:this.controlView(e,n)})]})}labelView(e,t){return c(`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}_${b()}`),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),c(`input`,r)}textareaView(e,t){return c(`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 c(`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=it(e);return c(`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)||T(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;r(()=>{this.state.loading&&!e?(e=c(`div`,{className:`j-loading is-active`,"aria-live":`polite`,children:c(`div`,{className:`loading-spinner`})}),this.dom.modal.appendChild(e)):!this.state.loading&&e&&(e.remove(),e=null)}),l(()=>{e?.remove(),e=null})}bindReactiveStyle(){r(()=>{let e=this.state.style;this.dom.modal&&this.applyStyle(this.dom.modal,e)})}autoComplete(e){switch(e){case`password`:return`current-password`;case`email`:return`email`;default:return`on`}}isSelected(e,t){return Array.isArray(e)?e.map(String).includes(String(t)):e==t}isFormMode(){return Array.isArray(this.state.fields)}isBusy(){return!!(this.state.loading||this.state.submitting)}validatePropsPatch(e,t=`Modal.update`){v(`props`,e,yt,t);for(let n of Object.keys(e)){if(!m(J,n))throw Error(`Validator: ${t}.${n} is not a supported modal prop.`);if(_t.has(n))throw Error(`Modal.update: "${n}" cannot be updated after initialization.`);v(n,e[n],J[n],t)}}applyProps(e,{validate:t=!0,force:n=!1}={}){if(t&&this.validatePropsPatch(e),!e||Object.keys(e).length===0)return this;let r=m(e,`fields`);if(m(e,`content`)&&!r&&this.isFormMode()&&!n)throw Error(`Modal.update: Cannot update content when fields are defined.`);let i=Object.assign({},this.props,e);m(e,`text`)&&(i.text=Object.assign({},this.props.text||{},e.text)),this.props=i,super.update(e,{force:n}),this.props=i;let o={};r&&(this.cache.fieldIds.clear(),o.fields=Array.isArray(e.fields)?K(e.fields):null);for(let[t,n]of Object.entries(e))t===`fields`||t===`text`||(o[t]=n);return m(e,`text`)&&(o.text=lt(this.props)),a(()=>{for(let[e,t]of Object.entries(o))this.state[e]=t}),m(e,`style`)&&this.dom.modal&&this.applyStyle(this.dom.modal,this.state.style),this.state.visible&&(m(e,`bgClose`)||m(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=A(`.modal-close`,e);t&&(t.style.transform=`translateX(${t.clientHeight/3}px)`)}bindReactiveVisibility(){this.cleanup.visibility=i(e=>(r(()=>{let e=!!this.state.visible;d(()=>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(!w())throw Error(`Modal.show: DOM environment is required.`);this.root||this.buildRoot(),this.cancelHideTimer(),this.resetAnimationStyles();let{onShow:e,onShown:t}=this.state;e&&e(),this.cache.previousActiveElement=document.activeElement,this.root.parentNode||document.body.appendChild(this.root),this.lockScroll(),this.runtime.visibleApplied=!0,this.normalizeIcon(this.dom.modal),this.bindEvents(this.root),this.focusFirst(),t&&t()}hideFromState(){if(!this.runtime.visibleApplied||!this.root)return;let{onHide:e,onHidden:t}=this.state;e&&e(),this.runtime.visibleApplied=!1,this.clearEvents(),a(()=>{this.state.loading=!1,this.state.extraData=null,this.state.data=null}),this.dom.modal&&(this.dom.modal.style.transition=`opacity 300ms ease-out, transform 300ms ease-out`,this.dom.modal.style.opacity=`0`,this.dom.modal.style.transform=`scale(0.3)`),this.cancelHideTimer(),this.cleanup.hideTimer=setTimeout(()=>this.finishHide(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.hide()})}bindDocumentKeyEvent(){this.cleanup.events.on(`keydown`,document,`keydown`,e=>{if(this.state.visible){if(e.key===`Escape`&&this.state.escClose){e.preventDefault(),this.hide();return}e.key===`Tab`&&this.trapFocus(e)}})}bindInsideEvent(){this.dom.modal&&this.cleanup.events.on(`inside`,this.dom.modal,`click`,e=>{let t=(e.target instanceof Element?e.target:null)?.closest(`[data-action]`);if(!t||!this.dom.modal.contains(t))return;let n=t.dataset.action;if(n===`cancel`||n===`close`||t.classList.contains(`modal-close`)){this.handleCancel();return}if(n===`submit`){this.requestSubmit();return}if(n===`back`){this.handleBack();return}if(n===`next`){this.handleNext();return}if(n===`confirm`){if(this.isFormMode()){if(t.classList.contains(`modal-confirm`))return;this.requestSubmit();return}this.handleConfirm()}})}clearEvents(){this.cleanup.events.clear()}requestSubmit(){if(!this.dom.form){this.handleConfirm();return}if(typeof this.dom.form.requestSubmit==`function`){this.dom.form.requestSubmit();return}let e=new Event(`submit`,{bubbles:!0,cancelable:!0});this.dom.form.dispatchEvent(e)}async handleFormSubmit(e){if(e.preventDefault(),this.isBusy())return;let t=e.currentTarget;if(!t.checkValidity()){t.reportValidity();return}let n=dt(this.collectFormData(t),this.state.extraData);a(()=>{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())m(t,e)?t[e]=Array.isArray(t[e])?[...t[e],r]:[t[e],r]:t[e]=r;return t}async handleNext(){this.isBusy()||this.hasFlow()&&await this.moveFlow(`next`)}async handleBack(){this.isBusy()||this.hasFlow()&&await this.moveFlow(`back`)}hasFlow(){return st(this.state.flow)&&!!this.state.flow}async moveFlow(e){let t=this.createFlowPayload();if(t!==!1){a(()=>{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&&a(()=>{this.state.submitting=!1})}}}createFlowPayload(){if(!this.isFormMode())return null;let e=this.dom.form;if(!e)return this.state.data||null;if(!e.checkValidity())return e.reportValidity(),!1;let t=dt(this.collectFormData(e),this.state.extraData);return a(()=>{this.state.data=t}),this.state.data}resolveFlowModalView(e,t,n){let r=n?.modal??n?.view;if(typeof r==`function`){let i=r({flow:e,snapshot:t,step:n,modal:this,data:t?.data??null,currentData:t?.currentData??null});return g(i)?i:{}}return ft(r)}syncFlowView(e,t=null){if(!e||!this.state)return;let n=e.snapshot()||t,r=e.currentStep||n?.currentStep||t?.currentStep,i=this.resolveFlowModalView(e,n,r),a=g(i.text)?i.text:{},o={...(!m(i,`text`)||!m(a,`title`))&&r?.title!=null?{text:{...a,title:r.title}}:{},...!m(i,`content`)&&!m(i,`fields`)?{content:r?.content??null}:{},...i};Array.isArray(o.fields)&&(o.fields=ct(o.fields,n?.currentData)),!m(o,`fields`)&&m(o,`content`)&&(o.fields=null),this.update(o)}async handleConfirm(){if(!this.isBusy()){a(()=>{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&&a(()=>{this.state.submitting=!1})}}}async handleCancel(){if(!this.isBusy()){a(()=>{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&&a(()=>{this.state.submitting=!1})}}}async handleSubmit(e){if(this.state.onSubmit){a(()=>{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&&a(()=>{this.state.submitting=!1})}}}trapFocus(e){if(!this.dom.modal)return;let t=Array.from(j(`a[href], button:not([disabled]):not([data-action=close]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])`,this.dom.modal)).filter(e=>e.offsetParent!==null||e===document.activeElement);if(t.length===0){e.preventDefault(),this.dom.modal.focus();return}let n=t[0],r=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),r.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n.focus())}focusFirst(){if(!this.dom.modal)return;let e=A(`input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]):not([data-action=close]), [tabindex]:not([tabindex="-1"])`,this.dom.form||this.dom.modal);e?e.focus():(this.dom.modal.setAttribute(`tabindex`,`-1`),this.dom.modal.focus())}lockScroll(){this.runtime.scrollLocked||!C()||(Y===0&&(X=document.body.style.overflow,document.body.style.overflow=`hidden`),Y+=1,this.runtime.scrollLocked=!0)}unlockScroll(){!this.runtime.scrollLocked||!C()||(Y=Math.max(0,Y-1),Y===0&&(document.body.style.overflow=X,X=``),this.runtime.scrollLocked=!1)}cancelHideTimer(){this.cleanup.hideTimer&&(clearTimeout(this.cleanup.hideTimer),this.cleanup.hideTimer=null)}resetAnimationStyles(){this.dom.modal&&(this.cache.baseStyle?this.dom.modal.setAttribute(`style`,this.cache.baseStyle):this.dom.modal.removeAttribute(`style`))}finishHide(e){this.cleanup.hideTimer=null,this.root?.parentNode&&this.root.parentNode.removeChild(this.root),this.resetAnimationStyles(),this.unlockScroll(),this.restoreFocus(),e&&e()}restoreFocus(){let e=this.cache.previousActiveElement;this.cache.previousActiveElement=null,e&&typeof e.focus==`function`&&document.contains(e)&&e.focus()}assertActive(e){if(this.runtime.destroyed)throw Error(`Modal.${e}: The current instance has been destroyed.`)}validateStatePatch(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Modal.setState: expects a plain object patch.`);for(let t of Object.keys(e)){if(!m(gt,t))throw Error(`Modal.setState: "${t}" is not a supported state key.`);if(_t.has(t))throw Error(`Modal.setState: "${t}" cannot be updated after initialization.`);v(t,e[t],gt[t],`Modal.setState`)}}setState(e={}){return this.assertActive(`setState`),this.validateStatePatch(e),a(()=>{for(let[t,n]of Object.entries(e))t===`fields`&&this.cache.fieldIds.clear(),this.state[t]=t===`fields`&&Array.isArray(n)?K(n):n}),this}show(){return this.assertActive(`show`),a(()=>{this.state.visible=!0}),this}hide(){return this.assertActive(`hide`),a(()=>{this.state.visible=!1}),this}setFields(e,t=!1){return v(`data`,e,ht,`Modal.setFields`),this.applyProps({fields:e},{validate:!1,force:t}),this}addFields(e){return v(`data`,e,vt,`Modal.addFields`),a(()=>{this.state.extraData=e}),this}setContent(e,t=!1){if(v(`content`,e,pt,`Modal.setContent`),this.isFormMode()&&!t)throw Error(`Modal.setContent: Cannot setContent when fields are defined.`);return this.applyProps({content:e},{validate:!1,force:t}),this}update(e={},t=!1){return this.applyProps(e,{validate:!0,force:t})}reset(){this.cache.fieldIds.clear();let e=q(this.cache.initial);return delete e.id,delete e.lazy,this.props=q(e),this.applyProps(e,{validate:!1}),a(()=>{this.state.data=null,this.state.extraData=null}),this}resetContent(){return this.setContent(this.cache.initial?.content??``)}resetFields(){return this.setFields(Array.isArray(this.cache.initial?.fields)?K(this.cache.initial.fields):null)}onDestroy(){let e=!!this.runtime.visibleApplied,t=this.state?.onHide,n=this.state?.onHidden;e&&t&&t(),this.cancelHideTimer(),this.clearEvents(),this.unlockScroll(),this.cleanup.visibility?.(),this.cleanup.visibility=null,this.cleanup.view?.(),this.cleanup.view=null,this.root?.parentNode&&this.root.parentNode.removeChild(this.root),e&&n&&n(),this.cache={initial:null,fieldIds:null,baseStyle:``,previousActiveElement:null,formId:``}}destroy(){if(!this.runtime.destroyed)return super.destroy(),this}};const xt={content:{default:``,validate:O,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():b():e??b()},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 St=class extends V{constructor(e={}){if(!w())throw Error(`Offcanvas: DOM render environment is required.`);let t=y(e,xt,`Offcanvas`);super(t),this._overlay=null,this.state=n({visible:!1}),this.onInit(t)}onInit(e){e.overlay&&(this._overlay=this._buildOverlay(e)),this.root=this._buildRoot(e)}_buildOverlay(e){return c(`div`,{className:`j-offcanvas-overlay`,style:e.filter?{backdropFilter:`blur(2px)`}:{}})}_buildRoot(e){return c(`div`,{className:`j-offcanvas is-${e.direction} is-${e.animation}`,id:e.id,children:c(`div`,{className:`offcanvas-content`,children:k(e.content,this)})})}_bindEvents(){this.unbindEvents();let{bgClose:e,escClose:t}=this.props;this._overlay&&e&&this.cleanup.events.on(`overlay`,this._overlay,`click`,()=>{this.hide()}),t&&this.cleanup.events.on(`esc`,document,`keydown`,e=>{e.key===`Escape`&&this.state.visible&&this.hide()}),this.cleanup.events.on(`close`,this.root,`click`,e=>{let t=e.target.dataset.action;(t===`close`||t===`cancel`)&&this.hide()})}unbindEvents(){this.cleanup?.events.clear()}_render(){let{overlay:e,animation:t,direction:n,id:r}=this.props,i=document.body;e&&i.appendChild(this._overlay),i.appendChild(this.root),i.style.overflow=`hidden`,t===`push`&&i.classList.add(`offcanvas-push-body`),h.start(`oc-show-${r}`,10,()=>{this.root&&(this._overlay&&this._overlay.classList.add(`is-active`),t===`push`&&i.classList.add(`offcanvas-push-${n}`),this.root.classList.add(`is-active`))})}_remove(){let{animation:e,direction:t,id:n}=this.props,r=document.body;this._overlay&&this._overlay.classList.remove(`is-active`),this.root.classList.remove(`is-active`),e===`push`&&r.classList.remove(`offcanvas-push-${t}`),h.start(`oc-remove-${n}`,100,()=>{this._overlay?.parentNode?.removeChild(this._overlay),this.root?.parentNode?.removeChild(this.root),e===`push`&&r.classList.remove(`offcanvas-push-body`),r.style.overflow=``})}async show(){if(this.runtime.destroyed||this.state.visible)return;let{onShow:e,onShown:t,id:n}=this.props;e&&await Promise.resolve(e()),this._render(),this._bindEvents(),a(()=>{this.state.visible=!0}),h.start(`oc-shown-${n}`,300,()=>{this.runtime.destroyed||t&&t()})}async hide(){if(this.runtime.destroyed||!this.state.visible)return;let{onHide:e,onHidden:t}=this.props;e&&await Promise.resolve(e()),this.unbindEvents(),this._remove(),a(()=>{this.state.visible=!1}),t&&t()}onDestroy(){let{id:e}=this.props;h.cancel(`oc-show-${e}`),h.cancel(`oc-remove-${e}`),h.cancel(`oc-shown-${e}`),this.state.visible&&this.unbindEvents(),this.root?.classList.remove(`is-active`),this.root?.parentNode?.removeChild(this.root),this._overlay?.parentNode?.removeChild(this._overlay);let t=document.body;t.style.overflow=``,t.classList.remove(`offcanvas-push-body`,`offcanvas-push-${this.props.direction}`),this._overlay=null}};const Ct={validate:e=>e==null||typeof e==`string`||Array.isArray(e)||T(e),message:`expects Element, Node, selector or JSX node.`},wt={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,...Ct},to:{default:null,...Ct},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 Tt=class{constructor(e){if(!w())throw Error(`Parabola: DOM render environment is required.`);this.options=y(e,wt,`Parabola.options`),this._init(this.options)}_init(e){this.hidden=!1,this._ball=null,this._animationId=null;let t=M(e.from,`Parabola.from`),n=M(e.to,`Parabola.to`);this._fromEl=t,this._toEl=n,this._createBall(e)}_createBall(e){if(this.hidden||this._ball)return;let{color:t,size:n}=e.ball;this._ball=c(`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=this._fromEl?.getBoundingClientRect(),n=this._toEl?.getBoundingClientRect();if(!t||!n)return null;let{left:r,top:i,width:a,height:o}=t,{left:s,top:c,width:l,height:u}=n,d,f;switch(e.direction){case`top-left`:d=r+a*.2,f=i+o*.2;break;case`top-right`:d=r+a*.8,f=i+o*.2;break;case`bottom-left`:d=r+a*.2,f=i+o*.8;break;case`bottom-right`:d=r+a*.8,f=i+o*.8;break;default:d=r+a/2,f=i+o/2}let p=s+l/2,ee=c+u/2;return{startX:d,startY:f,endX:p,endY:ee}}_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=>{h.start(`show`,this.options.showDelay,()=>{if(this.hidden){e(!1);return}let t=this._calculatePath(this.options);if(!t){this.destroy(),e(!1);return}this._ball.style.left=`${t.startX}px`,this._ball.style.top=`${t.startY}px`,this.options.onShow&&this.options.onShow(),this._animate(t.startX,t.startY,t.endX,t.endY),e(!0)})})}destroy(){this.hidden||(this._ball?.remove(),h.cancel(`show`),this._animationId&&cancelAnimationFrame(this._animationId),this._ball=null,this._fromEl=null,this._toEl=null,this.hidden=!0,this.options.onHidden&&this.options.onHidden())}start(){return this.show()}};const Z={data:{default:null,validate:e=>e==null||Array.isArray(e),message:`expects an array or null.`},loop:{default:!0,type:`boolean`},autoplay:{default:!0,type:`boolean`},delay:{default:3e3,type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},lazyload:{default:!0,type:`boolean`},pagination:{default:!0,type:`boolean`},navigation:{default:!0,type:`boolean`},speed:{default:300,type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},touchRatio:{default:1,type:`number`,validate:e=>e>0,message:`expects a number greater than 0.`},touchAngle:{default:45,type:`number`,validate:e=>e>=0&&e<=90,message:`expects a number between 0 and 90.`},longSwipesMs:{default:300,type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},longSwipesRatio:{default:.05,type:`number`,validate:e=>e>=0&&e<=1,message:`expects a number between 0 and 1.`},preventClick:{default:!0,type:`boolean`}},Et={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||O(e.children)),message:`expects items with optional image, url, title, sort and children fields.`};function Dt(e){return!!e?.closest?.(`a, button, input, textarea, select, label, [data-swiper-ignore]`)}function Q(e,t=0){let n=Number(e);return Number.isFinite(n)?n:t}function Ot(e,t){return k(e,t)}function kt(e){let t=j(`.j-swiper`,e);return v(`container`,t,{validate:e=>e.length===1,message:`expects exactly one .j-swiper descendant.`},`Swiper`),t[0]}var At=class extends V{constructor(e,t={}){let r=y(t,Z,`Swiper.options`);super(r),this._container=e,this._built=!1,this.dom.mountTarget=null,this.dom.createdRoot=!1,this.dom.createdSlides=!1,this.dom.wrapper=null,this.dom.slides=[],this.dom.pagination=null,this.dom.prevButton=null,this.dom.nextButton=null,this.dom.bullets=[],this.dom.createdPagination=!1,this.dom.createdPrevButton=!1,this.dom.createdNextButton=!1,this.runtime.logs=[],this.runtime.startTarget=null,this.runtime.touching=!1,this.runtime.scrolling=!1,this.runtime.swiping=!1,this.runtime.clickPrevented=!1,this.runtime.timer=null,this.runtime.imageCleanups=new Set,this.runtime.realCount=0,this.state=n({index:0,trackIndex:0,transform:0,animating:!1,width:0})}build(){if(this.runtime.destroyed)throw Error(`Swiper.build: instance destroyed`);if(this._built)return this;if(!w())throw Error(`Swiper: DOM render environment is required.`);let e=Array.isArray(this.props.data),t=D(this._container,`Swiper`),n=null,r=null;e?(r=t,n=o(`div`,{className:`j-swiper`}),r.appendChild(n)):n=kt(t);try{this.dom.root=n,this.dom.mountTarget=r,this.dom.createdRoot=e,this.dom.createdSlides=e;let t=e?this.createDataView(n,this.props.data):A(`.swiper-wrapper`,n);v(`wrapper`,t,{validate:E,message:`expects .swiper-wrapper in the root element.`},`Swiper`),this.dom.wrapper=t,this.dom.slides=j(`.swiper-slide`,t),this.dom.pagination=A(`.swiper-pagination`,n),this.dom.prevButton=A(`.swiper-navigation.is-prev`,n),this.dom.nextButton=A(`.swiper-navigation.is-next`,n),this.dom.bullets=[],this.dom.createdPagination=!1,this.dom.createdPrevButton=!1,this.dom.createdNextButton=!1,this.runtime.realCount=this.dom.slides.length,this._built=!0,this.dom.slides.length>0&&this.onInit()}catch(e){throw this.destroy(),e}return this.emit(`init`,this.props),this}set index(e){this.setState({index:Q(e)})}set trackIndex(e){this.setState({trackIndex:Q(e)})}set transform(e){this.setState({transform:Q(e)})}set animating(e){this.setState({animating:!!e})}set width(e){this.setState({width:Q(e)})}get realCount(){return this.runtime?.destroyed?0:this.runtime?.realCount||0}get realIndex(){return this.toRealIndex()}assertBuilt(e){if(!this._built)throw Error(`Swiper.${e}: call build() first.`)}createDataView(e,t){let n=this.normalizeData(t),r=o(`div`,{className:`swiper-wrapper`,"aria-live":`polite`});return e.textContent=``,n.forEach((e,t)=>{r.appendChild(this.createDataSlide(e,t))}),e.appendChild(r),r}normalizeData(e){e.forEach((e,t)=>{v(String(t),e,Et,`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){let n=o(e.url?`a`:`div`,{className:`swiper-slide`,href:e.url||void 0,"data-swiper-index":String(t),role:`group`,"aria-label":`Slide ${t+1}`});if(e.children!=null)return n.append(...Ot(e.children,{swiper:this,item:e,index:t})),n;if(e.image){let t=o(`img`,{className:`swiper-image`,alt:e.title||``,loading:`lazy`});this.props.lazyload?t.dataset.lazy=e.image:t.src=e.image,n.appendChild(t)}return e.title&&n.appendChild(o(`span`,{className:`swiper-slide-title`,children:e.title})),n}onInit(){this.dom.wrapper.setAttribute(`aria-live`,`polite`),this.updateSize(),this.props.loop&&this.realCount>1&&this.initLoop(),this.setupStyles(),this.setTrackIndex(+!!this.props.loop,!1),this.render(!1),this.bindEvents(),this.props.pagination&&this.initPagination(),this.props.navigation&&this.initNavigation(),this.props.lazyload&&this.loadImages(),this.props.autoplay&&this.play()}onDestroy(){this.pause(),this.clearImageCleanups(),this.cleanup.events.clear(),this.cleanup.bindings?.(),this.cleanup.bindings=null,this.cleanup.navBindings?.(),this.cleanup.navBindings=null,this.dom.wrapper&&j(`[data-clone]`,this.dom.wrapper).forEach(e=>e.remove()),this.dom.createdPagination&&this.dom.pagination?.remove(),this.dom.createdPrevButton&&this.dom.prevButton?.remove(),this.dom.createdNextButton&&this.dom.nextButton?.remove(),this.dom.createdRoot&&this.dom.root?.remove(),this._built=!1}updateSize(){this.assertBuilt(`updateSize`),this.width=this.dom.root.clientWidth||this.dom.root.offsetWidth}refreshSlides(){this.dom.slides=j(`.swiper-slide`,this.dom.wrapper),this.runtime.realCount=this.dom.slides.filter(e=>!e.hasAttribute(`data-clone`)).length}initLoop(){let e=this.dom.slides[0].cloneNode(!0),t=this.dom.slides[this.dom.slides.length-1].cloneNode(!0);e.setAttribute(`data-clone`,``),t.setAttribute(`data-clone`,``),e.removeAttribute(`data-swiper-index`),t.removeAttribute(`data-swiper-index`),this.dom.wrapper.appendChild(e),this.dom.wrapper.insertBefore(t,this.dom.slides[0]),this.refreshSlides()}setupStyles(){this.dom.root.style.setProperty(`--swiper-slide-width`,`${this.state.width}px`)}reInitView(){this.pause(),this.clearImageCleanups(),this.cleanup.bindings?.(),this.cleanup.bindings=null,this.cleanup.navBindings?.(),this.cleanup.navBindings=null,this.cleanup.events.clear(),j(`[data-clone]`,this.dom.wrapper).forEach(e=>e.remove()),this.refreshSlides(),this.props.loop&&this.realCount>1&&this.initLoop(),this.updateSize(),this.setupStyles(),this.setTrackIndex(this.trackIndexForRealIndex(this.state.index),!1),this.render(!1),this.bindEvents(),this.props.pagination?this.initPagination():this.clearPagination(),this.props.navigation?this.initNavigation():this.clearNavigation(),this.props.lazyload&&this.loadImages(),this.props.autoplay&&this.play()}clearPagination(){this.cleanup.bindings?.(),this.cleanup.bindings=null,this.dom.bullets.forEach((e,t)=>{this.cleanup.events.off(`bullet:${t}:click`),this.cleanup.events.off(`bullet:${t}:keydown`)}),this.dom.bullets=[],this.dom.createdPagination?(this.dom.pagination?.remove(),this.dom.pagination=null,this.dom.createdPagination=!1):this.dom.pagination&&(this.dom.pagination.textContent=``)}clearNavigation(){this.cleanup.navBindings?.(),this.cleanup.navBindings=null,this.cleanup.events.off(`nav:prev`),this.cleanup.events.off(`nav:next`),this.dom.createdPrevButton&&(this.dom.prevButton?.remove(),this.dom.prevButton=null,this.dom.createdPrevButton=!1),this.dom.createdNextButton&&(this.dom.nextButton?.remove(),this.dom.nextButton=null,this.dom.createdNextButton=!1)}bindEvents(){this.cleanup.events.on(`touchstart`,this.dom.wrapper,`touchstart`,e=>{e.touches[0]&&this.onStart(e.touches[0],e.target)},{passive:!0}),this.cleanup.events.on(`touchmove`,this.dom.wrapper,`touchmove`,e=>{e.touches[0]&&this.onMove(e.touches[0],e)},{passive:!1}),this.cleanup.events.on(`touchend`,this.dom.wrapper,`touchend`,e=>{e.changedTouches[0]&&this.pushLog(e.changedTouches[0]),this.onEnd()}),this.cleanup.events.on(`touchcancel`,this.dom.wrapper,`touchcancel`,()=>{this.resetDrag(!0)}),this.cleanup.events.on(`window:touchcancel`,window,`touchcancel`,()=>{this.resetDrag(!0)}),this.cleanup.events.on(`mousedown`,this.dom.wrapper,`mousedown`,e=>{e.button===0&&(this.onStart(e,e.target),this.dom.wrapper.style.cursor=`grabbing`)}),this.cleanup.events.on(`mousemove`,this.dom.wrapper,`mousemove`,e=>{e.buttons===1&&this.onMove(e,e)}),this.cleanup.events.on(`window:mousemove`,window,`mousemove`,e=>{this.runtime.touching&&e.buttons===1&&this.onMove(e,e)}),this.cleanup.events.on(`mouseup`,this.dom.wrapper,`mouseup`,e=>{this.dom.wrapper.style.cursor=`grab`,this.pushLog(e),this.onEnd()}),this.cleanup.events.on(`window:mouseup`,window,`mouseup`,e=>{this.runtime.touching&&(this.dom.wrapper.style.cursor=`grab`,this.pushLog(e),this.onEnd())}),this.cleanup.events.on(`wrapper:mouseleave`,this.dom.wrapper,`mouseleave`,()=>{this.dom.wrapper.style.cursor=`grab`}),this.cleanup.events.on(`click`,this.dom.wrapper,`click`,e=>{!this.runtime.clickPrevented||!this.props.preventClick||(e.preventDefault(),e.stopPropagation(),this.runtime.clickPrevented=!1)},{capture:!0}),this.cleanup.events.on(`dragstart`,this.dom.wrapper,`dragstart`,e=>e.preventDefault()),this.cleanup.events.on(`transitionend`,this.dom.wrapper,`transitionend`,e=>this.onTransitionEnd(e)),this.cleanup.events.on(`window:resize`,window,`resize`,()=>this.update(null,{force:!0})),this.cleanup.events.on(`root:mouseenter`,this.dom.root,`mouseenter`,()=>this.pause()),this.cleanup.events.on(`root:mouseleave`,this.dom.root,`mouseleave`,()=>this.resume())}onStart(e,t=null){this.state.animating||(this.runtime.logs=[],this.pushLog(e),this.runtime.startTarget=t,this.runtime.touching=!0,this.runtime.scrolling=!1,this.runtime.swiping=!1,this.runtime.clickPrevented=!1,this.pause(),this.dom.wrapper.style.transition=`none`)}onMove(e,t){if(!this.runtime.touching||this.runtime.scrolling||this.state.animating)return;this.pushLog(e);let n=this.getOffset(),r=Math.abs(n.x),i=Math.abs(n.y);if(!(r<6&&i<6)){if(!this.runtime.swiping)if(Math.atan2(i,r)*180/Math.PI<this.props.touchAngle)this.runtime.swiping=!0,this.runtime.clickPrevented=Dt(this.runtime.startTarget);else{this.runtime.scrolling=!0,this.resetDrag(!0);return}this.runtime.swiping&&(t.preventDefault(),this.transform=-this.state.trackIndex*this.state.width+n.x*this.props.touchRatio,this.render(!1))}}onEnd(){if(!this.runtime.touching)return;if(this.runtime.touching=!1,!this.runtime.swiping){this.resetDrag(!0);return}let e=this.getDuration(),t=this.getOffset().x,n=this.state.trackIndex;if(e>this.props.longSwipesMs){let e=Math.ceil(Math.abs(t)/this.state.width-this.props.longSwipesRatio);e>0&&(n=this.state.trackIndex+e*(t>0?-1:1))}else{let e=Math.abs(t)/this.state.width,r=e>=this.props.longSwipesRatio?Math.max(1,Math.ceil(e-this.props.longSwipesRatio)):0;r>0&&(n=t>0?this.state.trackIndex-r:this.state.trackIndex+r)}this.slideToTrack(n),this.runtime.logs=[],this.resume()}resetDrag(e=!0){let t=this.state.trackIndex===0?0:-this.state.trackIndex*this.state.width,n=e&&this.state.transform!==t;this.runtime.touching=!1,this.runtime.scrolling=!1,this.runtime.swiping=!1,this.runtime.logs=[],this.runtime.startTarget=null,this.transform=t,this.render(n),this.resume()}onTransitionEnd(e){e&&(e.target!==this.dom.wrapper||e.propertyName!==`transform`)||(this.animating=!1,this.props.loop&&(this.state.trackIndex===0?(this.setTrackIndex(this.realCount,!1),this.render(!1)):this.state.trackIndex===this.dom.slides.length-1&&(this.setTrackIndex(1,!1),this.render(!1))))}pushLog(e){this.runtime.logs.push({x:e.pageX??e.clientX??0,y:e.pageY??e.clientY??0,time:Date.now()}),this.runtime.logs.length>5&&this.runtime.logs.shift()}getDuration(){return this.runtime.logs.length===0?0:this.runtime.logs[this.runtime.logs.length-1].time-this.runtime.logs[0].time}getOffset(){if(this.runtime.logs.length===0)return{x:0,y:0};let e=this.runtime.logs[0],t=this.runtime.logs[this.runtime.logs.length-1];return{x:t.x-e.x,y:t.y-e.y}}toRealIndex(e=this.state.trackIndex){return this.realCount?this.props.loop?e===0?this.realCount-1:e===this.dom.slides.length-1?0:e-1:e:0}trackIndexForRealIndex(e){if(!this.realCount)return 0;let t=Math.max(0,Math.min(e,this.realCount-1));return this.props.loop&&this.realCount>1?t+1:t}setTrackIndex(e,t=!0){let n=Q(e);this.setState({trackIndex:n,index:this.toRealIndex(n),transform:-n*this.state.width}),t!=null&&this.render(t)}slideTo(e){return this.slideToTrack(this.trackIndexForRealIndex(e))}slideToTrack(e){if(this.assertBuilt(`slideToTrack`),this.state.animating||this.dom.slides.length===0)return;let t=e;this.props.loop?e<0?t=0:e>=this.dom.slides.length&&(t=this.dom.slides.length-1):t=Math.max(0,Math.min(e,this.dom.slides.length-1)),this.setTrackIndex(t,!0),this.props.lazyload&&this.loadImages()}next(){this.assertBuilt(`next`),!this.state.animating&&this.slideToTrack(this.state.trackIndex+1)}prev(){this.assertBuilt(`prev`),!this.state.animating&&this.slideToTrack(this.state.trackIndex-1)}render(e){this.assertBuilt(`render`),e?(this.dom.wrapper.style.transition=`transform ${this.props.speed}ms cubic-bezier(0.25, 0.46, 0.45, 0.94)`,this.animating=!0):(this.dom.wrapper.style.transition=`none`,this.animating=!1),this.dom.wrapper.style.transform=`translate3d(${this.state.transform}px, 0, 0)`}loadImages(){this.assertBuilt(`loadImages`);let e=[this.state.trackIndex];this.state.trackIndex>0&&e.push(this.state.trackIndex-1),this.state.trackIndex<this.dom.slides.length-1&&e.push(this.state.trackIndex+1),e.forEach(e=>{let t=this.dom.slides[e];if(!t)return;let n=A(`img[data-lazy]`,t);if(!n||n.src)return;n.classList.add(`loading`),n.src=n.dataset.lazy;let r=()=>{n.onload=null,n.onerror=null,this.runtime.imageCleanups.delete(r)};this.runtime.imageCleanups.add(r),n.onload=()=>{n.classList.remove(`loading`),n.classList.add(`loaded`),r()},n.onerror=()=>{n.classList.remove(`loading`),n.classList.add(`error`),r()}})}clearImageCleanups(){this.runtime.imageCleanups?.forEach(e=>e()),this.runtime.imageCleanups?.clear()}initPagination(){this.dom.pagination?this.dom.pagination.classList.add(`is-horizontal`,`is-clickable`,`is-bullet`):(this.dom.pagination=o(`div`,{className:`swiper-pagination is-horizontal is-clickable is-bullet`}),this.dom.root.appendChild(this.dom.pagination),this.dom.createdPagination=!0),this.dom.pagination.textContent=``,this.dom.bullets=[];for(let e=0;e<this.realCount;e++){let t=o(`button`,{type:`button`,className:`swiper-pagination-indicator swiper-pagination-bullet`,"aria-label":`Go to slide ${e+1}`});this.cleanup.events.on(`bullet:${e}:click`,t,`click`,()=>{this.slideTo(e)}),this.cleanup.events.on(`bullet:${e}:keydown`,t,`keydown`,t=>{t.key!==`Enter`&&t.key!==` `||(t.preventDefault(),this.slideTo(e))}),this.dom.bullets.push(t),this.dom.pagination.appendChild(t)}this.cleanup.bindings=i(n=>(this.dom.bullets.forEach((n,r)=>{t(n,`is-active`,()=>this.state.index===r),e(n,`aria-current`,()=>this.state.index===r?`true`:null)}),n))}initNavigation(){this.dom.prevButton=this.ensureNavigation(`prev`,`arrow-left`),this.dom.nextButton=this.ensureNavigation(`next`,`arrow-right`),this.cleanup.events.on(`nav:prev`,this.dom.prevButton,`click`,()=>this.prev()),this.cleanup.events.on(`nav:next`,this.dom.nextButton,`click`,()=>this.next()),this.props.loop||(this.cleanup.navBindings=i(n=>(t(this.dom.prevButton,`is-disabled`,()=>this.state.trackIndex<=0),e(this.dom.prevButton,`disabled`,()=>this.state.trackIndex<=0?``:null),t(this.dom.nextButton,`is-disabled`,()=>this.state.trackIndex>=this.dom.slides.length-1),e(this.dom.nextButton,`disabled`,()=>this.state.trackIndex>=this.dom.slides.length-1?``:null),n)))}ensureNavigation(e,t){let n=e===`prev`?`createdPrevButton`:`createdNextButton`,r=`swiper-navigation is-${e}`,i=A(`.swiper-navigation.is-${e}`,this.dom.root);return i?i.matches(`button`)||(i.setAttribute(`role`,`button`),i.setAttribute(`tabindex`,`0`),i.classList.add(`swiper-navigation`,`is-${e}`)):(i=o(`button`,{type:`button`,className:r}),this.dom.root.appendChild(i),this.dom[n]=!0),i.setAttribute(`aria-label`,e===`prev`?`Previous slide`:`Next slide`),i.querySelector(`svg`)||(i.textContent=``,i.appendChild(R(t))),i}play(){if(this.assertBuilt(`play`),this.runtime.destroyed||this.runtime.timer||this.realCount<=1)return;let e=Math.max(this.props.delay,16);this.runtime.timer=setInterval(()=>this.next(),e)}pause(){this.runtime.timer&&(clearInterval(this.runtime.timer),this.runtime.timer=null)}resume(){this.runtime.destroyed||this.props.autoplay&&!this.runtime.timer&&this.play()}restartAutoplay(){this.pause(),this.props.autoplay&&this.play()}update(e={},{force:t=!1}={}){if(this.runtime.destroyed)throw Error(`Component.update: instance destroyed`);this.assertBuilt(`update`);let n=e&&typeof e==`object`&&!Array.isArray(e)?e:{},r=y(Object.assign({},this.props,n),Z,`Swiper.options`),i={};return Object.keys(n).forEach(e=>{i[e]=r[e]}),this.props=r,this.emit(`beforeUpdate`,i,{force:t}),this.onUpdate(i,{force:t}),this.emit(`afterUpdate`,i,{force:t}),this}onUpdate(e={}){if(e&&Object.prototype.hasOwnProperty.call(e,`data`)){this.updateData(e.data);return}if([`loop`,`pagination`,`navigation`,`lazyload`].some(t=>Object.prototype.hasOwnProperty.call(e,t))){this.reInitView();return}this.updateSize(),this.setupStyles(),this.setTrackIndex(this.trackIndexForRealIndex(this.state.index),!1),Object.prototype.hasOwnProperty.call(e,`autoplay`)||Object.prototype.hasOwnProperty.call(e,`delay`)?this.restartAutoplay():this.props.autoplay?this.resume():this.pause()}updateData(e=this.props.data){if(this.runtime.destroyed)throw Error(`Swiper.updateData: instance destroyed`);if(this.assertBuilt(`updateData`),v(`data`,e,Z.data,`Swiper.options`),!Array.isArray(e))return this.props.data=e,this.reInitView(),this;this.props.data=e;let t=this.state.index;this.pause(),this.clearImageCleanups(),this.cleanup.bindings?.(),this.cleanup.bindings=null,this.cleanup.navBindings?.(),this.cleanup.navBindings=null,this.cleanup.events.clear();let n=this.normalizeData(e);return this.dom.wrapper.textContent=``,n.forEach((e,t)=>{this.dom.wrapper.appendChild(this.createDataSlide(e,t))}),this.refreshSlides(),this.runtime.realCount=this.dom.slides.length,this.setState({index:Math.min(t,Math.max(0,this.realCount-1))}),this.reInitView(),this}};const jt={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():b():e??b()},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`]}},Mt={type:`object`,validate:e=>!!e&&O(e.title)&&O(e.panel),message:`expects an object with renderable title and panel: string, Node, array, function or null.`};function Nt(e){return Array.isArray(e)?e.map(e=>({...e})):[]}var Pt=class extends V{constructor(e,t={}){if(!w())throw Error(`Tabs: DOM render environment is required.`);let r=D(e,`Tabs`),i=y(t,jt,`Tabs`);super(i),this.container=r,this.state=n({activeIndex:-1,disabledNames:this._parseDisabled(i.disabled),isVertical:i.direction===`left`||i.direction===`right`,draggable:!1});try{this.onInit(i)}catch(e){throw this.destroy(),e}}onInit(e){this.root=this.buildRoot(e),this.rebuildItems(),this._activate(e.active,!1),this.bindEvents(),this._initDrag()}buildRoot(e){let{id:t,direction:n}=e,r=c(`div`,{className:`tab-wrap`,children:c(`nav`,{className:`tab-list`})}),i=c(`div`,{className:`tab-panel`});return c(`div`,{className:`j-tabs is-${n}`,id:t,children:[r,i]})}rebuildItems(){let n=A(`.tab-list`,this.root),r=A(`.tab-panel`,this.root);if(!n||!r)return;n.textContent=``,r.textContent=``,this.dom.tabs=[],this.dom.panels=[];let a=document.createDocumentFragment(),o=document.createDocumentFragment();this.props.tabs.forEach(e=>{let t=c(`div`,{className:`tab-item`,"data-tab":e.name||b(),children:c(`span`,{children:k(e.title,{tabs:this,item:e})})});this.dom.tabs.push(t),this.dom.panels.push(c(`div`,{className:`panel-item`,role:`tabpanel`,children:c(`div`,{children:k(e.panel,{tabs:this,item:e})})})),a.append(t),o.append(panelItem)}),n.append(a),r.append(o),this.cleanup.bindings?.(),this.cleanup.bindings=i(n=>(this.dom.tabs.forEach((n,r)=>{let i=n.dataset.tab;t(n,`is-active`,()=>this.state.activeIndex===r),t(n,`is-disabled`,()=>this.state.disabledNames.includes(i)),e(n,`aria-selected`,()=>this.state.activeIndex===r),e(n,`aria-disabled`,()=>this.state.disabledNames.includes(i))}),this.dom.panels.forEach((n,r)=>{t(n,`is-active`,()=>this.state.activeIndex===r),e(n,`aria-hidden`,()=>this.state.activeIndex!==r)}),n))}_parseDisabled(e){if(e==null)return[];let t=e=>typeof e==`number`?this.props.tabs[e]?.name||null:typeof e==`string`?e:null;if(Array.isArray(e))return e.map(t).filter(Boolean);let n=t(e);return n?[n]:[]}bindEvents(){this.unbindEvents();let e=A(`.tab-list`,this.root);e&&this.cleanup.events.on(`tabClick`,e,`click`,e=>{let t=e.target.closest(`.tab-item`);if(!t)return;let n=t.dataset.tab;n&&!this.state.disabledNames.includes(n)&&this.activate(n)})}unbindEvents(){this.cleanup.events.clear()}assertActive(e){if(this.runtime.destroyed)throw Error(`Tabs.${e}: instance has been destroyed.`)}_getIndex(e){return typeof e==`number`?e:typeof e==`string`?this.dom.tabs.findIndex(t=>t.dataset.tab===e):-1}async _activate(e,t=!0){let n=this._getIndex(e);if(!(n<0||n>=this.dom.tabs.length||this.state.disabledNames.includes(this.dom.tabs[n]?.dataset.tab)||this.state.activeIndex===n)&&(a(()=>{this.state.activeIndex=n}),t&&this.props.onChange)){let e=this.dom.tabs[n],t=this.dom.panels[n];await Promise.resolve(this.props.onChange(n,e?.dataset.tab||n,e,t))}}async activate(e){this.assertActive(`activate`),await this._activate(e,!0)}render(){this.assertActive(`render`),s(this.container,()=>this.root)}async add(e){this.assertActive(`add`),v(`tabConfig`,e,Mt,`Tabs.add`),e.name=e.name||b(),this.props.tabs=[...Nt(this.props.tabs),e],this.rebuildItems(),this.syncActiveNames(this.resolveActiveNames(this.props.active)),this.bindEvents(),this._refreshDrag();let{onAdd:t}=this.props;if(t){let n=this.props.tabs.length-1;await Promise.resolve(t(n,e,this.dom.tabs[n],this.dom.panels[n]))}}async delete(e){if(this.assertActive(`delete`),this.props.tabs.length<=1)return;let t=this._getIndex(e);if(t<0||t>=this.props.tabs.length)return;let n=this.props.tabs[t].name,{onRemove:r}=this.props;this.props.tabs=this.props.tabs.filter((e,n)=>n!==t),this.state.activeIndex>=this.props.tabs.length?a(()=>{this.state.activeIndex=this.props.tabs.length-1}):this.state.activeIndex>t&&a(()=>{this.state.activeIndex=this.state.activeIndex-1}),this.rebuildItems(),this.bindEvents(),this._refreshDrag(),r&&await Promise.resolve(r(t,n))}disable(e){this.assertActive(`disable`);let t=typeof e==`number`?this.dom.tabs[e]?.dataset.tab:e;t&&!this.state.disabledNames.includes(t)&&a(()=>{this.state.disabledNames=[...this.state.disabledNames,t]})}enable(e){this.assertActive(`enable`);let t=typeof e==`number`?this.dom.tabs[e]?.dataset.tab:e;t&&a(()=>{this.state.disabledNames=this.state.disabledNames.filter(e=>e!==t)})}resolveActiveNames(e){return e==null?-1:typeof e==`number`?e:typeof e==`string`?this.dom.tabs.findIndex(t=>t.dataset.tab===e):0}syncActiveNames(e){a(()=>{this.state.activeIndex=e})}async reInit(e={}){this.assertActive(`reInit`),Object.assign(this.props,y(e,jt,`Tabs`)),a(()=>{this.state.disabledNames=this._parseDisabled(this.props.disabled)}),this.rebuildItems(),this.syncActiveNames(this.resolveActiveNames(this.props.active)),this.bindEvents(),this._refreshDrag()}get _dragContainer(){return this.root?A(`.tab-wrap`,this.root):null}get _dragInner(){return this.root?A(`.tab-list`,this.root):null}_initDrag(){let{direction:e}=this.props;if(!this._dragContainer||!this._dragInner)return;let t=e===`left`||e===`right`,n=t?this._dragInner.scrollHeight>this._dragContainer.clientHeight+5:this._dragInner.scrollWidth>this._dragContainer.clientWidth+5;if(a(()=>{this.state.isVertical=t,this.state.draggable=n}),!n){this._removeDragEvents();return}this._bindDragEvents(),this.cleanup.events.on(`resize`,window,`resize`,()=>{cancelAnimationFrame(this._resizeRaf),this._resizeRaf=requestAnimationFrame(()=>{this._refreshDrag()})})}_bindDragEvents(){this._removeDragEvents();let e=this._dragContainer,t=this._dragInner,n=this.state.isVertical,r=0,i=0,a=0,o=!1,s=e=>n?e.touches?e.touches[0].pageY:e.pageY:e.touches?e.touches[0].pageX:e.pageX,c=o=>{this.isDragging=!0,t.classList.add(`dragging`),r=s(o),a=r,i=n?e.scrollTop:e.scrollLeft,this._velocity=0,cancelAnimationFrame(this.raf)},l=t=>{if(!this.isDragging)return;t.preventDefault();let c=s(t),l=r-c;this._velocity=a-c,a=c,o||(o=!0,requestAnimationFrame(()=>{o=!1,n?e.scrollTop=i+l:e.scrollLeft=i+l}))},u=()=>{this.isDragging&&(this.isDragging=!1,t.classList.remove(`dragging`),this._startInertiaScroll())};this.cleanup.events.on(`drag:mousedown`,t,`mousedown`,c),this.cleanup.events.on(`drag:touchstart`,t,`touchstart`,c,{passive:!0}),this.cleanup.events.on(`drag:mousemove`,window,`mousemove`,l,{passive:!1}),this.cleanup.events.on(`drag:touchmove`,window,`touchmove`,l,{passive:!1}),this.cleanup.events.on(`drag:mouseup`,window,`mouseup`,u),this.cleanup.events.on(`drag:touchend`,window,`touchend`,u)}_startInertiaScroll(){let e=this._dragContainer,t=this._velocity,n=this.state.isVertical,r=performance.now(),i=a=>{let o=a-r;r=a,t*=.92,!(Math.abs(t)<.3)&&(n?e.scrollTop+=t*o*.05:e.scrollLeft+=t*o*.05,this.raf=requestAnimationFrame(i))};this.raf=requestAnimationFrame(i)}_removeDragEvents(){this.cleanup.events.off(`drag:mousedown`),this.cleanup.events.off(`drag:touchstart`),this.cleanup.events.off(`drag:mousemove`),this.cleanup.events.off(`drag:touchmove`),this.cleanup.events.off(`drag:mouseup`),this.cleanup.events.off(`drag:touchend`)}_refreshDrag(){this._initDrag()}onDestroy(){this.unbindEvents(),this._removeDragEvents(),this.cleanup.bindings?.(),this.cleanup.bindings=null,cancelAnimationFrame(this.raf),cancelAnimationFrame(this._resizeRaf),this.cleanup.events.off(`resize`),this.root?.parentNode&&this.root.parentNode.removeChild(this.root)}},Ft={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:`自动`}},It=class{constructor(e={}){if(!w())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=Ft,this._init()}_init(){this.cleanup={events:F()},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 f(e,this.languages)}_loadConfig(){try{let e=I(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);Te(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=j(`.palette-item`,e);for(let e of t){let t=e.dataset.palette,n=this.options[t],r=j(`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 c(`div`,{className:e,children:[c(`div`,{style:{display:`flex`,justifyContent:`center`},children:c(`button`,{className:`j-button is-text`,"data-action":`close`,children:this._t(`b`)})}),c(`h3`,{children:this._t(`t`)}),c(`p`,{style:{marginTop:0,fontSize:`var(--text-sm, 0.875rem)`},children:this._t(`d`)}),c(`div`,{className:`palette-container`,children:n.map(e=>c(`div`,{className:`palette-item`,"data-palette":e.type,children:[c(`div`,{className:`item-title`,children:e.title}),c(`div`,{className:`items`,children:e.buttons.map(([t,n])=>c(`button`,{className:`j-button is-default${String(this.options[e.type])===String(t)?` is-active`:``}`,"data-palette":t,children:[e.type===`theme`?c(`span`,{className:`el-prefix item-hex`,style:{backgroundColor:`var(--${t}-10)`}}):null,c(`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)}};const Lt={type:`string`,enum:[`info`,`success`,`warning`,`error`,`primary`]},Rt={type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},zt={type:`number`,validate:e=>e>0,message:`expects a number greater than 0.`};var $=class e{static show(t=``,n=3e3,r=`info`){if(!w())throw Error(`Toast: DOM render environment is required.`);v(`message`,t,`string`,`Toast.show`),v(`duration`,n,Rt,`Toast.show`),v(`type`,r,Lt,`Toast.show`);let i=A(`.j-toast-container`);i||(i=c(`div`,{className:`j-toast-container`}),document.body.appendChild(i));let a=b(),o=c(`div`,{className:`j-toast is-${r}`,"data-toast":a,children:[c(`span`,{className:`toast-icon`,children:R(r===`primary`?`info`:r)}),c(`span`,{className:`toast-message`,children:t})]});i.appendChild(o),e._setTimer(a,`show`,()=>{o.classList.add(`toast-show`)},10),n>0&&e._setTimer(a,`hide`,()=>{e.hide(o)},n);let s=P(o,`click`,()=>{e.hide(o)});return e.disposers.set(o,s),o}static success(t=``,n=3e3){return e.show(t,n,`success`)}static info(t=``,n=3e3){return e.show(t,n,`info`)}static primary(t=``,n=3e3){return e.show(t,n,`primary`)}static warning(t=``,n=3e3){return e.show(t,n,`warning`)}static error(t=``,n=3e3){return e.show(t,n,`error`)}static hide(t){if(t){e.disposers.get(t)?.(),e.disposers.delete(t),t.classList.remove(`toast-show`),t.classList.add(`toast-hide`);let n=t.dataset.toast;e._setTimer(n,`remove`,()=>{t.parentNode&&t.parentNode.removeChild(t);let e=A(`.j-toast-container`);e&&e.children.length===0&&e.parentNode.removeChild(e)},300)}}static lite(t=``,n=2e3){if(!w())throw Error(`Toast: DOM render environment is required.`);v(`message`,t,`string`,`Toast.lite`),v(`duration`,n,zt,`Toast.lite`);let r=A(`.j-toast-lite`);r&&r.remove();let i=b(),a=c(`div`,{className:`j-toast-lite`,"data-toast":i,children:t});return document.body.appendChild(a),e._setTimer(i,`show`,()=>a.classList.add(`is-shown`),10),e._setTimer(i,`hide`,()=>{a.classList.remove(`is-shown`),a.classList.add(`is-hidden`),e._setTimer(i,`remove`,()=>a.remove(),300)},n),a}static _setTimer(t,n,r,i){let a=`${t}-${n}`;return e.timers.add(a),h.start(a,i,()=>{e.timers.delete(a),r()}),a}static clearAll(){for(let t of e.timers)h.cancel(t);e.timers.clear();for(let t of e.disposers.values())t();e.disposers.clear(),A(`.j-toast-container`)?.remove(),A(`.j-toast-lite`)?.remove()}static destroyAll(){e.clearAll()}};B($,`timers`,new Set),B($,`disposers`,new Map);const Bt={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 Vt=class{constructor(e,t={}){let n=y(t,Bt,`Tooltip.props`);this.drop=new H(e,{...n,content:this._buildContent(n)})}_buildContent(e){return c(`div`,{className:e.className?`j-tooltip ${e.className}`:`j-tooltip`,children:c(`div`,{className:`tooltip-message`,children:e.message})})}show(e=!0){this.drop.show(e)}hide(e=!0){this.drop.hide(e)}toggle(){this.drop.toggle()}destroy(){this.drop&&(this.drop.destroy(),this.drop=null)}};const Ht={rules:{default:{},type:`object`},messages:{default:{},type:`object`},onSubmit:{default:null,types:[`function`,`null`]}};var Ut=class{constructor(e,t={},n=!1){if(!w())throw Error(`Validator: DOM render environment is required.`);this.options=y(t,Ht,`Validator.options`),this._validateOptions(e,this.options,n),this._init(e),n&&this._bindEvents()}_validateOptions(e,t,n){v(`bindEvents`,n,`boolean`,`Validator`)}_init(e){this.root=M(e,`Validator.element`),this.valid=!0,this.cleanup={events:F()},this._destroyed=!1}_bindEvents(){this._unbindEvents(),this.cleanup.events.on(`submit`,this.root,`submit`,e=>{e.preventDefault(),this.validate()}),this.cleanup.events.on(`reset`,this.root,`reset`,()=>{this.reset()})}_unbindEvents(){this.cleanup?.events.clear()}validate(){this.valid=!0;for(let e of this.root.elements){let t=e.name;if(this.options.rules[t]&&(this.valid=this._validateRule(e,t),!this.valid))break}return this.valid&&this.options.onSubmit&&this.options.onSubmit(),this.valid}_validateRule(e,t){let n=this.options.rules[t];if(e.hasAttribute(`required`)||e.hasAttribute(`minlength`)||e.hasAttribute(`maxlength`)||e.hasAttribute(`pattern`)||e.hasAttribute(`min`)||e.hasAttribute(`max`)||e.hasAttribute(`step`))return this.valid;for(let r in n){switch(r){case`required`:this.valid=this._validateRequired(e,n[r]);break;case`minLength`:this.valid=this._validateMinLength(e,n[r]);break;case`maxLength`:this.valid=this._validateMaxLength(e,n[r]);break;case`equalTo`:this.valid=this._validateEqualTo(e,n[r]);break;case`email`:this.valid=this._validateEmail(e);break;case`checked`:this.valid=this._validateCheck(e,n[r]);break;case`selected`:this.valid=this._validateSelected(e,n[r]);break;case`multiple`:this.valid=this._validateMultiple(e,n[r]);break;case`min`:this.valid=this._validateSelectMin(e,n[r]);break;case`max`:this.valid=this._validateSelectMax(e,n[r]);break;case`noSpace`:this.valid=this._validateNoSpace(e,n[r]);break;case`noChinese`:this.valid=!/[\u4e00-\u9fa5]/.test(e.value);break;case`noSpecial`:this.valid=!/[@#$%^&*]+/g.test(e.value);break;case`pattern`:this.valid=new RegExp(n[r]).test(e.value);break;case`file`:this.valid=this._validateFile(e,n[r]);break;case`minSize`:this.valid=this._validateMinSize(e,n[r]);break;case`maxSize`:this.valid=this._validateMaxSize(e,n[r]);break;case`accept`:this.valid=this._validateAccept(e,n[r]);break;case`validate`:this.valid=this._validateCustom(e,n[r]);break}if(this.valid)this._success(e);else{this._errorMsg(e,t,r);break}}return this.valid}_validateRequired(e,t){return e.value.trim().length>=1&&t===!0}_validateMinLength(e,t){return e.value.length>=t}_validateMaxLength(e,t){return e.value.length<=t}_validateEmail(e){return/^([\w-.]+@([\w-]+\.)+[\w-]{2,4})?$/.test(e.value)}_validateEqualTo(e,t){let n=this.root.elements[t];if(n==null)throw Error(`Validator: target element "${t}" not found.`);return e.value===n.value}_validateCheck(e,t){if(e.type!==`checkbox`)throw Error(`Validator: element expects a checkbox input, but ${e.type} given.`);return e.checked===t}_validateSelected(e,t){if(e.tagName!==`SELECT`)throw Error(`Validator: element expects a select element, but ${e.tagName.toLowerCase()} given.`);return t===!0?Array.from(e.selectedOptions).map(e=>e.value.trim()).some(e=>e.length>0):!0}_validateMultiple(e,t){if(e.tagName!==`SELECT`)throw Error(`Validator: element expects a select element, but ${e.tagName.toLowerCase()} given.`);return t===!0?e.selectedOptions.length>0:!0}_validateSelectMin(e,t){return e.tagName===`SELECT`?e.selectedOptions.length>=t:!0}_validateSelectMax(e,t){return e.tagName===`SELECT`?e.selectedOptions.length<=t:!0}_validateNoSpace(e,t){return!/\s/.test(e.value)||t!==!0}_validateFile(e,t){return e.type===`file`&&t===!0?e.files.length>0:!0}_validateMinSize(e,t){return e.type!==`file`||!e.files.length?!0:e.files[0].size>=t}_validateMaxSize(e,t){return e.type!==`file`||!e.files.length?!0:e.files[0].size<=t}_validateAccept(e,t){if(e.type!==`file`||!e.files.length)return!0;let n=e.files[0];return t.split(`,`).map(e=>e.trim().toLowerCase()).some(e=>e.startsWith(`.`)?n.name.toLowerCase().endsWith(e):e.endsWith(`/*`)?n.type.startsWith(e.replace(`/*`,`/`)):n.type===e)}_validateCustom(e,t){if(typeof t!=`function`)return!0;let n=t(e);return typeof n==`string`?!1:!!n}_errorMsg(e,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){let t=e.closest(`.form-control`),n=t?A(`.help-block`,t):null;n||(n=c(`div`,{className:`help-block is-invalid`,children:r}),t.appendChild(n))}}_success(e){let t=e.closest(`.form-control`),n=t?A(`.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=j(`.help-block`,this.root);for(let t of e)t.remove();this.valid=!0}destroy(){this._destroyed||(this._destroyed=!0,this._unbindEvents(),this.reset(),this.root=null,this.options=null,this.valid=null,this.cleanup?.events.clear(),this.cleanup=null)}};export{Be as Accordion,V as Component,H as Drop,$e as Flow,rt as Menu,bt as Modal,St as Offcanvas,Tt as Parabola,At as Swiper,Pt as Tabs,It as Theme,$ as Toast,Vt as Tooltip,Ut as Validator,Me as addIcons,j as all,w as canRenderDOM,C as canUseDOM,ee as copy,F as createEventManager,et as createFlow,pe as destroyAll,I as getCookie,_e as getEl,je as getRegistedIconPath,ne as getType,m as hasOwn,R as icon,ke as iconHtml,Ae as iconMarkup,ie as isClass,E as isElement,re as isFunction,p as isMobile,T as isNode,g as isPlainObject,O as isRenderableContent,P as listen,k as normalizeContentNodes,Ce as postJson,A as q,b as randomId,fe as release,Ee as removeCookie,D as resolveContainer,M as resolveElement,y as resolveProps,we as restUrl,me as service,Te as setCookie,ue as singleton,h as timer,Se as unlisten,le as uuid,v as validateParam};