vanilla-jui 0.5.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 +8 -0
- package/dist/index.js +1 -0
- package/dist/index.umd.js +1 -0
- package/dist/style.css +1 -0
- package/package.json +65 -0
package/README.md
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{createDeepStore as e,createEffect as t,createRoot as n,flushSync as r,jsx as i,onCleanup as a,render as o,untrack as s}from"vanilla-signal";import{t as c}from"vanilla-signal-i18n";function l(){if(navigator.userAgentData&&typeof navigator.userAgentData.mobile==`boolean`)return navigator.userAgentData.mobile;let e=navigator.userAgent||navigator.vendor||window.opera,t=/Android|iPhone|iPad|iPod|Mobile|Windows Phone|webOS|BlackBerry|IEMobile|Opera Mini/i.test(e),n=/iPad|Android(?!.*Mobile)|Tablet/i.test(e),r=`maxTouchPoints`in navigator?navigator.maxTouchPoints>0:`ontouchstart`in window,i=Math.min(window.screen.width,window.screen.height)<=768;if(t&&!n){if(/iPhone|iPod|Windows Phone|webOS|BlackBerry|IEMobile|Opera Mini/i.test(e))return!0;if(/Android/i.test(e))return i||r}return/Macintosh|MacIntel/i.test(e)&&r&&i}async function u(e){if(typeof window>`u`||typeof document>`u`)return Promise.resolve(!1);let t=typeof e==`string`?e:String(e);return navigator.clipboard&&typeof navigator.clipboard.writeText==`function`?navigator.clipboard.writeText(t).then(()=>!0).catch(()=>d(t)):Promise.resolve(d(t))}function d(e){let t=null;try{return t=document.createElement(`textarea`),t.value=e,t.setAttribute(`readonly`,``),t.style.position=`absolute`,t.style.left=`-9999px`,t.style.opacity=`0`,document.body.appendChild(t),t.select(),t.setSelectionRange(0,e.length),!!document.execCommand(`copy`)}catch{return!1}finally{t&&t.parentNode&&t.parentNode.removeChild(t)}}const f=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),p={timers:{},start(e,t,n){this.timers[e]&&clearTimeout(this.timers[e]),this.timers[e]=setTimeout(()=>{n(),delete this.timers[e]},t)},cancel(e){this.timers[e]&&(clearTimeout(this.timers[e]),delete this.timers[e])}},m=e=>e===null?`null`:Array.isArray(e)?`array`:typeof HTMLElement<`u`&&e instanceof HTMLElement?`HTMLElement`:typeof Node<`u`&&e instanceof Node?`Node`:typeof e,h=e=>typeof e==`function`&&e.prototype!==null&&e.prototype.constructor===e,ee=e=>typeof e==`function`&&/^class\s/.test(Function.prototype.toString.call(e));function te(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function ne(e){return Array.isArray(e)?e.slice():te(e)?{...e}:e}function g(e={}){return typeof e==`string`||Array.isArray(e)?{type:e}:!e||typeof e!=`object`?{}:e}function re(e,t,n=[]){let r=Array.isArray(n)?n:n?[n]:[];for(let n of r){let r,i;if(typeof n==`function`)r=n,i=`does not satisfy the required condition.`;else if(n&&typeof n.test==`function`)r=n.test,i=n.message||`condition failed.`;else throw Error(`Validator: Condition must be a function or { test, message }.`);if(!r(t))throw Error(`Validator: ${e} ${i}`)}}const ie=(e,t,n,r=[])=>{let i=Array.isArray(n)?n:[n],a=m(t);if(!i.some(e=>e===a)){let t=i.join(`, `);throw Error(`Validator: ${e} expects ${t}, but got ${a}.`)}return re(e,t,r),t};function ae(e,t){return e?`${e}.${t}`:t}function oe(e){if(f(e,`default`))return ne(e.factory&&typeof e.default==`function`?e.default():e.default)}function _(e,t,n={},r=``,i={}){let a=g(n),o=ae(r,e),s=f(a,`types`)?a.types:a.type;if(a.required&&t==null)throw Error(`Validator: ${o} is required.`);if(s===void 0?re(o,t,a.conditions):ie(o,t,s,a.conditions),Array.isArray(a.enum)&&!a.enum.includes(t))throw Error(`Validator: ${o} expects one of ${a.enum.join(`, `)}.`);if(typeof a.validate==`function`&&!a.validate(t,{...i,name:e,value:t,namespace:r}))throw Error(`Validator: ${o} ${a.message||`does not satisfy the required condition.`}`);return t}function se(e,t,n=`Options`){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Validator: ${n} expects object.`);for(let[r,i]of Object.entries(t||{}))_(r,e[r],i,n,{key:r,options:e,schema:t});return e}function v(e={},t={},n=`Options`){let r=e??{};if(typeof r!=`object`||Array.isArray(r))throw Error(`Validator: ${n} expects object.`);let i={...r},a=Object.entries(t||{});for(let[e,t]of a){let n=g(t);i[e]=f(r,e)?r[e]:oe(n)}for(let[e,n]of a){let a=g(n);typeof a.normalize==`function`&&(i[e]=a.normalize(i[e],{key:e,input:r,options:i,schema:t}))}return se(i,t,n)}function ce(){if(typeof crypto.randomUUID==`function`)return crypto.randomUUID();let e=new Uint8Array(16);if(typeof crypto.getRandomValues!=`function`)throw Error(`Your browser is too old to support secure login.`);crypto.getRandomValues(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e).map(e=>e.toString(16).padStart(2,`0`)).join(``);return[t.slice(0,8),t.slice(8,12),t.slice(12,16),t.slice(16,20),t.slice(20,32)].join(`-`)}function y(e=8){if(!Number.isInteger(e)||e<1||e>32)throw Error(`Length must be an integer between 1 and 32`);let t=new Uint8Array(e);crypto.getRandomValues(t);let n=``;for(let r=0;r<e;r++)n+=`abcdefghijkmnpqrstuvwxyz23456789`[t[r]&31];return n}const b=new Map,x=new Map,le=(e,t=[],n=``,r=!1,i=null)=>{if(!h(e))throw Error(`First argument expects a class/constructor function.`);if(!Array.isArray(t))throw Error(`Second argument must be an array of arguments.`);if(typeof n!=`string`)throw Error(`Third argument expects a string.`);if(typeof r!=`boolean`)throw Error(`Fourth argument expects a boolean.`);if(typeof i!=`number`&&i!==null)throw Error(`Fifth argument expects a number or null.`);let a=n.trim()===``?y():n;if(b.has(a)&&!r)return b.get(a).proxy;let o=new e(...t),s=new Proxy(o,{get(e,t,n){return i&&ue(a,i),Reflect.get(e,t,n)},set(e,t,n,r){return Reflect.set(e,t,n,r)}});return b.set(a,{instance:o,proxy:s}),s};function ue(e,t){x.has(e)&&clearTimeout(x.get(e));let n=setTimeout(()=>{de(e)},t);x.set(e,n)}function de(e){if(b.has(e)){let{instance:t}=b.get(e);if(typeof t.destroy==`function`)try{t.destroy()}catch{throw Error(`release(): destroy() failed on instance with key "${e}".`)}b.delete(e)}x.has(e)&&(clearTimeout(x.get(e)),x.delete(e))}function fe(){for(let{instance:e}of b.values())if(typeof e.destroy==`function`)try{e.destroy()}catch{}b.clear();for(let e of x.values())clearTimeout(e);x.clear()}const pe={instances:new Map,get(e,t){return this.instances.has(e)||this.instances.set(e,t()),this.instances.get(e)},destroy(e){if(this.instances.has(e)){let t=this.instances.get(e);t.destroy&&t.destroy(),this.instances.delete(e)}},destroyAll(){for(let e of this.instances.values())e.destroy&&e.destroy();this.instances.clear()}};function S(){return typeof document<`u`}function C(){return!S()||typeof document.createElement!=`function`?!1:typeof document.createElement(`div`).insertBefore==`function`}function w(e){return S()&&typeof Node<`u`&&e instanceof Node}function T(e){return typeof Element<`u`&&e instanceof Element}function E(e){return e==null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`||typeof e==`function`||Array.isArray(e)||w(e)}function D(e,t){let n=typeof e==`function`?e(t):e;if(n==null||n===!1||n===!0)return[];if(Array.isArray(n))return n.flatMap(e=>D(e,t));if(w(n))return[n];if(typeof n==`string`){let e=document.createElement(`template`);return e.innerHTML=n,Array.from(e.content.childNodes)}return[document.createTextNode(String(n))]}function O(e,t=document){return t.querySelector(e)}function k(e,t=document){return Array.from(t.querySelectorAll(e))}function A(e,t=`getEl`){if(typeof Element<`u`&&e instanceof Element)return e;if(typeof e==`string`)return O(e);if(e===!1||e==null)return null;throw Error(`${t}: expects Element or string.`)}const me=()=>{};function he(e){return!!e&&typeof e.addEventListener==`function`&&typeof e.removeEventListener==`function`}function ge(e,t){if(!he(e))throw TypeError(`${t}: target expects EventTarget.`)}function _e(e,t){if(typeof e!=`string`||e.trim()===``)throw TypeError(`${t}: type expects a non-empty string.`)}function ve(e,t){if(typeof e!=`function`&&(!e||typeof e.handleEvent!=`function`))throw TypeError(`${t}: handler expects a function or EventListener object.`)}function j(e,t,n,r){ge(e,`listen`),_e(t,`listen`),ve(n,`listen`);let i=!0;return e.addEventListener(t,n,r),()=>{i&&(i=!1,e.removeEventListener(t,n,r))}}function ye(e,t,n,r){ge(e,`unlisten`),_e(t,`unlisten`),ve(n,`unlisten`),e.removeEventListener(t,n,r)}function M(){let e=new Map,t=t=>{let n=e.get(t);return n?(n(),e.delete(t),!0):!1};return{on(n,r,i,a,o){if(typeof n!=`string`||n.trim()===``)throw TypeError(`EventManager.on: key expects a non-empty string.`);if(t(n),r==null)return me;let s=j(r,i,a,o);return e.set(n,s),s},off:t,clear(){for(let t of e.values())t();e.clear()},size(){return e.size}}}async function be(e,t,n={}){let r=new Headers(n.headers);return r.has(`Content-Type`)||r.set(`Content-Type`,`application/json`),(await fetch(e,{...n,method:n.method||`POST`,headers:r,body:JSON.stringify(t)})).json()}const xe=typeof window<`u`?`${window.location.origin}/wp-json`:``;function N(e){if(typeof document>`u`)return null;let t=`; ${document.cookie}`.split(`; ${e}=`);return t.length===2?t.pop().split(`;`).shift():null}function Se(e,t,n=3600*24){if(typeof document>`u`)return!1;let r=new Date(Date.now()+n*1e3).toUTCString();return document.cookie=[`${e}=${t}`,`expires=${r}`,`path=/`,`sameSite=strict`].join(`; `),N(e)===t}function Ce(e){return typeof document>`u`?!0:(document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`,!N(e))}const P={info:`<path d="M12 22C6.47715 22 2 17.5228 2 12 2 6.47715 6.47715 2 12 2 17.5228 2 22 6.47715 22 12 22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM13 10.5V15H14V17H10V15H11V12.5H10V10.5H13ZM13.5 8C13.5 8.82843 12.8284 9.5 12 9.5 11.1716 9.5 10.5 8.82843 10.5 8 10.5 7.17157 11.1716 6.5 12 6.5 12.8284 6.5 13.5 7.17157 13.5 8Z"></path>`,success:`<path d="M4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12C20 16.4183 16.4183 20 12 20C7.58172 20 4 16.4183 4 12ZM12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2ZM17.4571 9.45711L16.0429 8.04289L11 13.0858L8.20711 10.2929L6.79289 11.7071L11 15.9142L17.4571 9.45711Z"></path>`,warning:`<path d="M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM11 15H13V17H11V15ZM11 7H13V13H11V7Z"></path>`,error:`<path d="M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM12 10.5858L14.8284 7.75736L16.2426 9.17157L13.4142 12L16.2426 14.8284L14.8284 16.2426L12 13.4142L9.17157 16.2426L7.75736 14.8284L10.5858 12L7.75736 9.17157L9.17157 7.75736L12 10.5858Z"></path>`,"arrow-left":`<path d="M10.8284 12.0007L15.7782 16.9504L14.364 18.3646L8 12.0007L14.364 5.63672L15.7782 7.05093L10.8284 12.0007Z"></path>`,"arrow-right":`<path d="M13.1717 12.0007L8.22192 7.05093L9.63614 5.63672L16.0001 12.0007L9.63614 18.3646L8.22192 16.9504L13.1717 12.0007Z"></path>`,"arrow-up":`<path d="M11.9999 10.8284L7.0502 15.7782L5.63599 14.364L11.9999 8L18.3639 14.364L16.9497 15.7782L11.9999 10.8284Z"></path>`,"arrow-down":`<path d="M11.9999 13.1714L16.9497 8.22168L18.3639 9.63589L11.9999 15.9999L5.63599 9.63589L7.0502 8.22168L11.9999 13.1714Z"></path>`,close:`<path d="M11.9997 10.5865L16.9495 5.63672L18.3637 7.05093L13.4139 12.0007L18.3637 16.9504L16.9495 18.3646L11.9997 13.4149L7.04996 18.3646L5.63574 16.9504L10.5855 12.0007L5.63574 7.05093L7.04996 5.63672L11.9997 10.5865Z"></path>`,loader:`<path d="M12 3C16.9706 3 21 7.02944 21 12H19C19 8.13401 15.866 5 12 5V3Z"></path>`,menu:`<path d="M3 4H21V6H3V4ZM3 11H21V13H3V11ZM3 18H21V20H3V18Z"></path>`,palette:`<path fill="none" d="M0 0h24v24H0z"></path><path d="M12 2C17.5222 2 22 5.97778 22 10.8889C22 13.9556 19.5111 16.4444 16.4444 16.4444H14.4778C13.5556 16.4444 12.8111 17.1889 12.8111 18.1111C12.8111 18.5333 12.9778 18.9222 13.2333 19.2111C13.5 19.5111 13.6667 19.9 13.6667 20.3333C13.6667 21.2556 12.9 22 12 22C6.47778 22 2 17.5222 2 12C2 6.47778 6.47778 2 12 2ZM10.8111 18.1111C10.8111 16.0843 12.451 14.4444 14.4778 14.4444H16.4444C18.4065 14.4444 20 12.851 20 10.8889C20 7.1392 16.4677 4 12 4C7.58235 4 4 7.58235 4 12C4 16.19 7.2226 19.6285 11.324 19.9718C10.9948 19.4168 10.8111 18.7761 10.8111 18.1111ZM7.5 12C6.67157 12 6 11.3284 6 10.5C6 9.67157 6.67157 9 7.5 9C8.32843 9 9 9.67157 9 10.5C9 11.3284 8.32843 12 7.5 12ZM16.5 12C15.6716 12 15 11.3284 15 10.5C15 9.67157 15.6716 9 16.5 9C17.3284 9 18 9.67157 18 10.5C18 11.3284 17.3284 12 16.5 12ZM12 9C11.1716 9 10.5 8.32843 10.5 7.5C10.5 6.67157 11.1716 6 12 6C12.8284 6 13.5 6.67157 13.5 7.5C13.5 8.32843 12.8284 9 12 9Z"></path>`};function we(e){if(!(e in P))throw Error(`Icon "${e}" not found.`)}function F(e){return we(e),`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false">${P[e]}</svg>`}function I(e,t={}){if(!C())throw Error(`icon(): DOM render environment is required.`);let n=document.createElement(`template`);n.innerHTML=F(e);let r=n.content.firstElementChild;for(let[e,n]of Object.entries(t||{})){if(n==null||n===!1)continue;let t=e===`className`?`class`:e;r.setAttribute(t,n===!0?``:String(n))}return r}function L(e){return F(e)}const Te=L;function Ee(){return{...P}}function De(e){if(typeof e!=`object`||!e)throw Error(`Icons must be a valid object.`);for(let[t,n]of Object.entries(e)){if(typeof n!=`string`||!n.trim().startsWith(`<`))throw Error(`Invalid SVG path for icon "${t}".`);P[t]=n}}const Oe={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():y():e??y()},active:{default:0,types:[`number`,`string`,`array`,`null`]},collapsible:{default:!1,type:`boolean`},multiple:{default:!1,type:`boolean`},onChange:{default:null,types:[`function`,`null`]},items:{default:[],type:`array`}},R={type:`array`,validate:e=>e.length>0,message:`expects a non-empty array.`},ke={types:[`number`,`string`,`array`,`null`],validate:e=>e==null?!0:Array.isArray(e)?e.every(e=>typeof e==`number`||typeof e==`string`):typeof e==`number`?Number.isInteger(e)&&e>=0:e.trim().length>0,message:`expects a positive number, string, array or null.`};function Ae(e){return Array.isArray(e)?e.map(e=>({...e})):[]}function z(e){return _(`items`,e,R,`Accordion`),e.map(e=>{if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Accordion: item expects an object.`);if(e.name!=null&&typeof e.name!=`string`)throw Error(`Accordion: item name expects a string.`);if(!E(e.title))throw Error(`Accordion: item title expects string, Node, array, function or null.`);if(!E(e.content))throw Error(`Accordion: item content expects string, Node, array, function or null.`);return{...e,name:e.name||y()}})}var je=class{constructor(e,t={}){if(!C())throw Error(`Accordion: DOM render environment is required.`);if(e!==!1&&!T(e))throw Error(`Accordion: element expects a valid HTMLElement or false.`);let n=v(t,Oe,`Accordion.options`);this.config={options:n},this.dom={root:null,headers:[],panels:[]},this.cleanup={events:M()},this.runtime={dynamic:e===!1,activeNames:[],destroyed:!1};try{this.init(e,n)}catch(e){throw this.destroy(),e}}get root(){return this.dom?.root||null}set root(e){this.dom||(this.dom={headers:[],panels:[]}),this.dom.root=e}get options(){return this.config?.options||{}}set options(e){this.config||(this.config={}),this.config.options=e||{}}get dynamic(){return!!this.runtime?.dynamic}get destroyed(){return!!this.runtime?.destroyed}get activeNames(){return this.runtime?.activeNames||[]}set activeNames(e){this.runtime||(this.runtime={}),this.runtime.activeNames=Array.isArray(e)?e:[]}init(e,t){if(this.root=e===!1?this.buildRoot(t):e,this.refreshDom(),this.headers.length===0||this.panels.length===0)throw Error(`Accordion: .accordion-header or .accordion-panel not found.`);this.prepareItems(),this.activeNames=this.resolveActiveNames(t.active),this.syncAll(),this.bindEvents()}refreshDom(){if(!this.root){this.dom.headers=[],this.dom.panels=[];return}this.dom.headers=k(`.accordion-header`,this.root),this.dom.panels=k(`.accordion-panel`,this.root)}assertActive(e){if(this.destroyed)throw Error(`Accordion.${e}: instance has been destroyed.`)}buildRoot(e){let t=z(e.items),n=i(`div`,{className:`j-accordion`,id:e.id});return n.append(this.buildItems(t)),n}buildItems(e){let t=document.createDocumentFragment();return e.forEach((e,n)=>{let r=e.name||y(),a=`${this.options.id}_header_${n}`,o=`${this.options.id}_panel_${n}`,s=i(`span`,{className:`header-title`});s.append(...this.contentView(e.title,e,n,`title`));let c=i(`div`,{className:`accordion-header`,"data-item":r,id:a,role:`button`,tabindex:`0`,"aria-controls":o,children:[s,i(`span`,{className:`header-arrow`,"aria-hidden":`true`,children:I(`arrow-down`)})]}),l=i(`div`,{className:`panel-content`});l.append(...this.contentView(e.content,e,n,`content`));let u=i(`div`,{className:`accordion-panel`,id:o,role:`region`,"aria-labelledby":a,children:l});t.append(c,u)}),t}contentView(e,t,n,r){return D(e,{accordion:this,item:t,index:n,type:r,active:this.isActive(t.name)})}prepareItems(){this.headers.forEach((e,t)=>{let n=this.panels[t];if(!n)return;let r=e.dataset.item||y();e.dataset.item=r,e.id||(e.id=`${this.options.id}_header_${t}`),n.id||(n.id=`${this.options.id}_panel_${t}`),e.setAttribute(`role`,`button`),e.setAttribute(`tabindex`,`0`),e.setAttribute(`aria-controls`,n.id),n.setAttribute(`role`,`region`),n.setAttribute(`aria-labelledby`,e.id)})}resolveActiveNames(e){if(e==null){let e=this.headers.filter((e,t)=>{let n=this.panels[t];return e.classList.contains(`is-active`)||n?.classList.contains(`is-active`)});return e.map(e=>e.dataset.item).slice(0,this.options.multiple?e.length:1)}let t=Array.isArray(e)?e:[e],n=[];for(let e of t){let t=this.getIndex(e);if(!(t<0||t>=this.headers.length)&&(n.push(this.headers[t].dataset.item||String(t)),!this.options.multiple))break}return Array.from(new Set(n))}bindEvents(){this.unbindEvents(),this.cleanup.events.on(`click`,this.root,`click`,e=>{let t=e.target.closest(`.accordion-header`);!t||!this.headers.includes(t)||this.active(this.headers.indexOf(t))}),this.cleanup.events.on(`keydown`,this.root,`keydown`,e=>{if(e.key!==`Enter`&&e.key!==` `)return;let t=e.target.closest(`.accordion-header`);!t||!this.headers.includes(t)||(e.preventDefault(),this.active(this.headers.indexOf(t)))})}unbindEvents(){this.cleanup.events.clear()}syncAll(){this.headers.forEach((e,t)=>{this.syncItem(t,this.isActive(e.dataset.item))})}syncItem(e,t){let n=this.headers[e],r=this.panels[e];!n||!r||(n.classList.toggle(`is-active`,t),r.classList.toggle(`is-active`,t),n.setAttribute(`aria-expanded`,String(t)),r.setAttribute(`aria-hidden`,String(!t)),r.hidden=!t)}isActive(e){return this.activeNames.includes(e)}async activateItem(e,t=!0){let n=this.getIndex(e);if(n<0||n>=this.headers.length)return;let r=this.headers[n],i=this.panels[n],a=r.dataset.item||String(n),o=this.isActive(a);o&&!this.options.multiple&&!this.options.collapsible||(this.options.multiple?this.activeNames=o?this.activeNames.filter(e=>e!==a):[...this.activeNames,a]:o?this.options.collapsible&&(this.activeNames=[]):this.activeNames=[a],this.syncAll(),t&&this.options.onChange&&await Promise.resolve(this.options.onChange(n,a,r,i,this)))}getIndex(e){return typeof e==`number`?e:typeof e==`string`?this.headers.findIndex(t=>t.dataset.item===e):-1}get headers(){return this.dom?.headers||[]}get panels(){return this.dom?.panels||[]}get current(){let e=this.activeNames[0];return e?this.getIndex(e):null}get state(){return{activeNames:[...this.activeNames],current:this.current}}async active(e){this.assertActive(`active`),await this.activateItem(e,!0)}setItems(e,t=0){this.assertActive(`setItems`),_(`items`,e,R,`Accordion.setItems`),_(`active`,t,ke,`Accordion.setItems`);let n=z(e);this.options.items=Ae(n),this.options.active=t,this.root.textContent=``,this.root.append(this.buildItems(n)),this.refreshDom(),this.prepareItems(),this.activeNames=this.resolveActiveNames(t),this.syncAll()}destroy(){if(this.destroyed)return;let e=this.root,t=this.dynamic;this.runtime.destroyed=!0,this.unbindEvents();for(let e of this.headers)e.classList.remove(`is-active`),e.removeAttribute(`aria-expanded`);for(let e of this.panels)e.classList.remove(`is-active`),e.removeAttribute(`aria-hidden`),e.hidden=!1;t&&e?.parentNode&&e.parentNode.removeChild(e),this.root=null,this.options={},this.activeNames=[],this.cleanup.events.clear(),this.dom.headers=[],this.dom.panels=[]}};const Me={name:{default:null,types:[`string`,`null`]},mode:{default:`click`,type:`string`,enum:[`hover`,`click`]},position:{default:`auto`,type:`string`,enum:[`auto`,`top-left`,`top-center`,`top-right`,`bottom-left`,`bottom-center`,`bottom-right`,`left`,`right`]},offset:{default:10,type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},content:{default:``,validate:E,message:`expects string, Node, array, function or null.`},className:{default:null,types:[`string`,`null`]},id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():y():e??y()},containerClassName:{default:null,types:[`string`,`null`]},delay:{default:0,types:[`number`,`object`]},hoverIntent:{default:!0,type:`boolean`},onShown:{default:null,types:[`function`,`null`]},onHidden:{default:null,types:[`function`,`null`]}};var B=class{constructor(e,t={}){if(!C())throw Error(`Drop: DOM render environment is required.`);if(!T(e))throw Error(`Drop: element expects a valid HTMLElement.`);this.target=e,this.options=v(t,Me,`Drop.options`),this._init(this.options)}_init(e){this.isVisible=!1,this.root=null,this.cleanup={events:M()},this._timer={show:null,hide:null},this._hoverIntentData={x:0,y:0,lastMoveTime:0};let{delay:t}=e;typeof t==`number`&&t>=0?(this.delayShow=t,this.delayHide=t):typeof t==`object`&&t?(this.delayShow=Number(t.show)||0,this.delayHide=Number(t.hide)||0):(this.delayShow=0,this.delayHide=0),this._buildDrop(e),this._bindEvents(e)}_buildDrop(e){let{className:t,content:n,id:r,name:a,containerClassName:o}=e,s=t||``,c=w(n)&&n.nodeType===1?n:i(`div`,{className:o?`drop-container ${o}`:`drop-container`,children:D(n,this)}),l=i(`div`,{className:s?`j-drop ${s}`:`j-drop`,id:r,"data-drop":a||y(),children:c});this.root=l,document.body.appendChild(l)}_bindEvents(e){let{mode:t,hoverIntent:n}=e;this._unbindEvents(),t===`hover`?(n?(this.cleanup.events.on(`target:enter`,this.target,`mouseenter`,()=>this._startHoverIntent()),this.cleanup.events.on(`target:leave`,this.target,`mouseleave`,()=>this._cancelHoverIntent())):(this.cleanup.events.on(`target:enter`,this.target,`mouseenter`,()=>this.show()),this.cleanup.events.on(`target:leave`,this.target,`mouseleave`,()=>this.hide())),this.cleanup.events.on(`root:enter`,this.root,`mouseenter`,()=>this.show()),this.cleanup.events.on(`root:leave`,this.root,`mouseleave`,()=>this.hide())):t===`click`&&(this.cleanup.events.on(`target:click`,this.target,`click`,()=>this.toggle()),this.cleanup.events.on(`document:click`,document,`click`,e=>this._docClick(e)))}_unbindEvents(){this.cleanup?.events.clear()}_startHoverIntent(){this.cleanup.events.on(`document:mousemove`,document,`mousemove`,e=>this._onMouseMove(e)),clearTimeout(this._timer.show),this._timer.show=setTimeout(()=>{let e=Date.now()-this._hoverIntentData.lastMoveTime;Math.abs(this._hoverIntentData.x-this._lastX||0)+Math.abs(this._hoverIntentData.y-this._lastY||0)<5||e>100?(this.show(),this.cleanup.events.off(`document:mousemove`)):this._startHoverIntent()},this.delayShow)}_cancelHoverIntent(){clearTimeout(this._timer.show),this.cleanup.events.off(`document:mousemove`),this.hide()}_onMouseMove(e){this._lastX=e.clientX,this._lastY=e.clientY,this._hoverIntentData.lastMoveTime=Date.now(),this._hoverIntentData.x=e.clientX,this._hoverIntentData.y=e.clientY}_setPosition(){let e=this.target.getBoundingClientRect(),t=this.root,{offset:n,position:r}=this.options;t.style.visibility=`hidden`,t.style.display=`block`;let i=t.getBoundingClientRect(),a=0,o=0,s=r;switch(s===`auto`&&(s=window.innerHeight-e.bottom>i.height+n?`top-center`:`bottom-center`),s){case`top-left`:a=e.top-i.height-n,o=e.left;break;case`top-center`:a=e.top-i.height-n,o=e.left+e.width/2-i.width/2;break;case`top-right`:a=e.top-i.height-n,o=e.right-i.width;break;case`bottom-left`:a=e.bottom+n,o=e.left;break;case`bottom-center`:a=e.bottom+n,o=e.left+e.width/2-i.width/2;break;case`bottom-right`:a=e.bottom+n,o=e.right-i.width;break;case`left`:a=e.top+e.height/2-i.height/2,o=e.left-i.width-n;break;case`right`:a=e.top+e.height/2-i.height/2,o=e.right+n;break;default:break}a=Math.max(8,Math.min(a,window.innerHeight-i.height-8)),o=Math.max(8,Math.min(o,window.innerWidth-i.width-8)),t.style.top=`${a+window.scrollY}px`,t.style.left=`${o+window.scrollX}px`,t.style.visibility=``,t.style.display=``}_docClick(e){!this.root.contains(e.target)&&!this.target.contains(e.target)&&this.hide()}_exec(e){this.root&&(e?this._setPosition():(this.root.style.top=``,this.root.style.left=``),this.root.classList.toggle(`is-active`,e),this.isVisible=e)}show(e=!0){clearTimeout(this._timer.hide),!this.isVisible&&(e&&this.delayShow>0?(clearTimeout(this._timer.show),this._timer.show=setTimeout(()=>this._exec(!0),this.delayShow)):this._exec(!0),this.options.onShown&&this.options.onShown())}hide(e=!0){clearTimeout(this._timer.show),this.isVisible&&(e&&this.delayHide>0?(clearTimeout(this._timer.hide),this._timer.hide=setTimeout(()=>this._exec(!1),this.delayHide)):this._exec(!1),this.options.onHidden&&this.options.onHidden())}toggle(){this.isVisible?this.hide():this.show()}destroy(){this.options&&(clearTimeout(this._timer?.show),clearTimeout(this._timer?.hide),this.root&&this._exec(!1),this.options&&this._unbindEvents(),this.root?.parentNode&&this.root.parentNode.removeChild(this.root),this.options=null,this.root=null,this.target=null,this._timer={show:null,hide:null},this.cleanup?.events.clear(),this.cleanup=null)}};function Ne(e){return e==null||typeof e==`string`||typeof e==`function`||Array.isArray(e)||typeof Node<`u`&&e instanceof Node}function Pe(e){return!!e&&typeof e==`object`&&typeof e.id==`string`}function Fe(e){return e==null||e===!1||typeof e==`function`}function V(e){return e&&typeof e==`object`&&!Array.isArray(e)?{...e}:{}}function Ie(e){return Array.isArray(e)?[...e]:[]}function Le(e){return Array.isArray(e)?e.map(e=>({...e,data:V(e.data),view:V(e.view)})):[]}function Re(e,t){return typeof e==`string`?{id:e}:e&&typeof e==`object`?e:{id:t}}const ze={validate:Pe,message:`expects a step object with a string id.`},Be={validate:Ne,message:`expects string, Node, array, function or null.`},Ve={validate:e=>Array.isArray(e)&&e.length>0,message:`expects a non-empty steps array.`},H={validate:e=>e==null||typeof e==`object`&&!Array.isArray(e),message:`expects an object or null.`},U={validate:Fe,message:`expects function, false or null.`},He={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():y():e??y()},steps:{default:[],...Ve},initial:{default:null,types:[`string`,`number`,`null`]},cache:{default:!0,type:`boolean`},linear:{default:!0,type:`boolean`},render:{default:!0,type:`boolean`},rollbackOnError:{default:!0,type:`boolean`},busyStrategy:{default:`ignore`,type:`string`,enum:[`ignore`,`throw`]},showHeader:{default:!0,type:`boolean`},showFooter:{default:!0,type:`boolean`},showSteps:{default:!0,type:`boolean`},showBack:{default:!0,type:`boolean`},showNext:{default:!0,type:`boolean`},showReset:{default:!1,type:`boolean`},backText:{default:`Back`,type:`string`},nextText:{default:`Next`,type:`string`},finishText:{default:`Finish`,type:`string`},resetText:{default:`Reset`,type:`string`},className:{default:``,type:`string`},renderHeader:{default:null,...U},renderSteps:{default:null,...U},renderBody:{default:null,...U},renderFooter:{default:null,...U},onChange:{default:null,types:[`function`,`null`]},onNext:{default:null,types:[`function`,`null`]},onBack:{default:null,types:[`function`,`null`]},onFinish:{default:null,types:[`function`,`null`]},onError:{default:null,types:[`function`,`null`]},onBusy:{default:null,types:[`function`,`null`]}};var Ue=class{constructor(e={}){this.options=v(e,He,`Flow.options`),this._init(this.options)}_init(t){this.steps=Le(t.steps),this._validateSteps(this.steps),this._stepMap=new Map(this.steps.map((e,t)=>[e.id,t])),this._initialStepId=this._resolveInitialStepId(t.initial),this._initialData=this._createInitialStepData(),this._subscribers=new Set,this._renderDispose=null,this._cleanupTasks=new Set,this._nodes={},this._destroyed=!1,this._activeAction=null,this._actionController=null,this.root=null,this.state=e({id:t.id,currentId:this._initialStepId,currentIndex:this._stepMap.get(this._initialStepId),previousId:null,previousIndex:null,direction:null,history:[this._initialStepId],data:V(this._initialData.global),stepData:V(this._initialData.stepData),loading:!1,error:null,busyAction:null,version:0})}get currentStep(){return this.steps[this.state.currentIndex]}get currentData(){return this.getStepData(this.state.currentId)}get canBack(){return this.state.currentIndex>0&&!this.state.loading}get canNext(){return this.state.currentIndex<this.steps.length-1&&!this.state.loading}get isLast(){return this.state.currentIndex===this.steps.length-1}subscribe(e){if(this._assertActive(`subscribe`),typeof e!=`function`)throw Error(`Flow.subscribe: handler expects a function.`);return this._subscribers.add(e),e(this.snapshot(),this),()=>this._subscribers.delete(e)}snapshot(){if(!this.state)return null;let e=this.currentStep;return{id:this.state.id,currentId:this.state.currentId,currentIndex:this.state.currentIndex,previousId:this.state.previousId,previousIndex:this.state.previousIndex,direction:this.state.direction,history:[...this.state.history],data:V(this.state.data),stepData:V(this.state.stepData),currentData:this.currentData,currentStep:this._publicStep(e),canBack:this.canBack,canNext:this.canNext,isLast:this.isLast,loading:this.state.loading,busyAction:this.state.busyAction,error:this.state.error}}mount(e){if(this._assertActive(`mount`),!this.options.render)return this;if(!C())throw Error(`Flow.mount: DOM environment is required.`);let t=typeof e==`string`?document.querySelector(e):e;if(!T(t))throw Error(`Flow.mount: container expects Element or selector.`);return this.unmount(),this.root=this._buildRoot(),t.appendChild(this.root),this._mountView(),this}unmount(){return this._renderDispose?.(),this._renderDispose=null,this.root?.parentNode&&this.root.parentNode.removeChild(this.root),this.root=null,this._nodes={},this}async next(e=null){return this._assertActive(`next`),_(`payload`,e,H,`Flow.next`),this._handleBusy(`next`)||this._runAction(`next`,async()=>{if(this.isLast)return this.finish(e,{internal:!0});let t=this.currentStep,n=this.steps[this.state.currentIndex+1]?.id,{id:r,data:i}=Re(await this._runMoveHook(`next`,t,e,n),n);return this.goTo(r,i??e,{direction:`next`,internal:!0})})}async back(e=null){return this._assertActive(`back`),_(`payload`,e,H,`Flow.back`),this._handleBusy(`back`)||(this.canBack?this._runAction(`back`,async()=>{let t=this.currentStep,n=this.steps[this.state.currentIndex-1]?.id,{id:r,data:i}=Re(await this._runMoveHook(`back`,t,e,n),n);return this.goTo(r,i??e,{direction:`back`,internal:!0})}):this.snapshot())}async goTo(e,t=null,n={}){return this._assertActive(`goTo`),_(`payload`,t,H,`Flow.goTo`),(n.internal?null:this._handleBusy(`goTo`))||this._runAction(`goTo`,async()=>{let r=this._resolveStepIndex(e),i=this.steps[r],a=this.currentStep;return!i||i.id===this.state.currentId?(t&&this.setStepData(this.state.currentId,t),this.snapshot()):(await this._transitionTo(i,{direction:n.direction||`go`,payload:t,fromStep:a}),this.snapshot())},{internal:n.internal})}setData(e){return this._assertActive(`setData`),_(`data`,e,H,`Flow.setData`),e?(r(()=>{Object.assign(this.state.data,e),this.state.version+=1}),this._emitChange(),this):this}setStepData(e,t,n={}){return this._assertActive(`setStepData`),_(`stepId`,e,{type:`string`},`Flow.setStepData`),_(`data`,t,H,`Flow.setStepData`),!t||!this._stepMap.has(e)?this:(r(()=>{this.state.stepData[e]={...V(this.state.stepData[e]),...t},this.options.cache&&Object.assign(this.state.data,t),this.state.version+=1}),n.silent||this._emitChange(),this)}getStepData(e){return V(this.state.stepData[e])}reset(){return this._assertActive(`reset`),r(()=>{this.state.currentId=this._initialStepId,this.state.currentIndex=this._stepMap.get(this._initialStepId),this.state.previousId=null,this.state.previousIndex=null,this.state.direction=null,this.state.history.splice(0,this.state.history.length,this._initialStepId),this._replaceObject(this.state.data,V(this._initialData.global)),this._replaceObject(this.state.stepData,V(this._initialData.stepData)),this.state.loading=!1,this.state.busyAction=null,this.state.error=null,this.state.version+=1}),this._emitChange(),this}async finish(e=null,t={}){return this._assertActive(`finish`),_(`payload`,e,H,`Flow.finish`),(t.internal?null:this._handleBusy(`finish`))||this._runAction(`finish`,async()=>(e&&this.setStepData(this.state.currentId,e),await this._callHook(this.options.onFinish,[this.snapshot(),this]),this.snapshot()),{internal:t.internal})}destroy(){if(!this._destroyed){this._destroyed=!0,this._abortActiveAction(),this.unmount();for(let e of Array.from(this._cleanupTasks))e();this._cleanupTasks.clear(),this._subscribers.clear(),this.steps=null,this.options=null,this.state=null,this._stepMap=null,this._initialData=null,this._activeAction=null,this._actionController=null}}_resolveInitialStepId(e){if(typeof e==`number`){let t=this.steps[e];if(!t)throw Error(`Flow.options.initial index is out of range.`);return t.id}if(typeof e==`string`){if(!this._stepMap.has(e))throw Error(`Flow.options.initial step "${e}" does not exist.`);return e}return this.steps[0].id}_validateSteps(e){let t=new Set;for(let[n,r]of e.entries()){if(_(String(n),r,ze,`Flow.options.steps`),_(`content`,r.content??null,Be,`Flow.options.steps.${n}`),t.has(r.id))throw Error(`Flow.options.steps: duplicated step id "${r.id}".`);t.add(r.id)}}_resolveStepIndex(e){if(typeof e==`number`){if(!this.steps[e])throw Error(`Flow.goTo target is out of range.`);return e}if(typeof e==`string`){if(!this._stepMap.has(e))throw Error(`Flow.goTo target "${e}" does not exist.`);return this._stepMap.get(e)}throw Error(`Flow.goTo target expects string or number.`)}_createInitialStepData(){let e={},t={};for(let n of this.steps)e[n.id]=V(n.data),Object.assign(t,e[n.id]);return{stepData:e,global:t}}async _runMoveHook(e,t,n,r){let i=e===`back`?this.options.onBack:this.options.onNext,a=e===`back`?t.onBack:t.onNext,o=this._createContext({payload:n,targetId:r});if(typeof a==`function`){let e=await this._callHook(a,[o]);if(e!=null)return e}if(typeof i==`function`){let e=await this._callHook(i,[o]);if(e!=null)return e}return r}async _transitionTo(e,{direction:t,payload:n,fromStep:i}){let a=this.snapshot(),o=this._captureState();try{n&&this.setStepData(i.id,n,{silent:!0}),await this._assertCanLeave(i,e,t),await this._assertCanEnter(e,i,t),typeof i.onLeave==`function`&&await this._callHook(i.onLeave,[this._createContext({direction:t,step:i,targetId:e.id})]);let o=this.state.currentId,s=this.state.currentIndex,c=this._stepMap.get(e.id);r(()=>{this.state.previousId=o,this.state.previousIndex=s,this.state.currentId=e.id,this.state.currentIndex=c,this.state.direction=t,t===`back`?this.state.history.pop():this.state.history.push(e.id),this.state.error=null,this.state.version+=1}),typeof e.onEnter==`function`&&await this._callHook(e.onEnter,[this._createContext({direction:t,fromId:o,step:e})]),this._emitChange(a)}catch(e){throw this._destroyed||!this.state||!this.options?e:(this.options.rollbackOnError&&this._restoreState(o,{keepLoading:!0}),this._handleError(e,a),e)}}async _assertCanLeave(e,t,n){if(typeof e.canLeave==`function`&&await this._callHook(e.canLeave,[this._createContext({direction:n,targetId:t.id})])===!1)throw Error(`Flow: step "${e.id}" blocked leaving.`)}async _assertCanEnter(e,t,n){if(typeof e.canEnter==`function`&&await this._callHook(e.canEnter,[this._createContext({direction:n,fromId:t.id})])===!1)throw Error(`Flow: step "${e.id}" blocked entering.`)}_createContext(e={}){let t=e.step||this.currentStep,n=this.snapshot();return{...e,flow:this,step:t,state:this.state,signal:this._actionController?.signal||null,snapshot:n,data:V(this.state.data),currentData:this.getStepData(t.id),setData:e=>this.setData(e),setStepData:(e,t)=>this.setStepData(e,t),getStepData:e=>this.getStepData(e),next:e=>this.next(e),back:e=>this.back(e),goTo:(e,t,n)=>this.goTo(e,t,n),addCleanup:e=>this._addCleanup(e)}}async _runAction(e,t,n={}){let r=!n.internal&&!this.state.loading;r&&(this._actionController=typeof AbortController<`u`?new AbortController:null,this._activeAction=e,this._setLoading(!0,e));try{return await t()}catch(e){if(this._destroyed||!this.state)return null;throw!this._destroyed&&this.state?.error!==e&&this._handleError(e),e}finally{r&&!this._destroyed&&(this._setLoading(!1,null),this._activeAction=null,this._actionController=null)}}_handleBusy(e){if(!this.state.loading)return null;let t=Error(`Flow: action "${e}" ignored while loading.`);if(t.code=`FLOW_BUSY`,typeof this.options.onBusy==`function`&&this.options.onBusy(e,this.snapshot(),this),this.options.busyStrategy===`throw`)throw t;return this.snapshot()}_abortActiveAction(){this._actionController?.abort?.(),this._actionController=null,this._activeAction=null}async _callHook(e,t){if(typeof e!=`function`)return;let n=await e(...t);if(this._destroyed||!this.state)throw this._createAbortError();return n}_createAbortError(){let e=Error(`Flow: active action was aborted.`);return e.code=`FLOW_ABORTED`,e}_setLoading(e,t=this.state?.busyAction||null){this.state&&r(()=>{this.state.loading=e,this.state.busyAction=e?t:null})}_handleError(e,t=null){this.state&&(r(()=>{this.state.error=e,this.state.version+=1}),typeof this.options.onError==`function`&&this.options.onError(e,this.snapshot(),this,t))}_emitChange(e=null){let t=this.snapshot();for(let n of Array.from(this._subscribers))n(t,this,e);typeof this.options.onChange==`function`&&this.options.onChange(t,this,e)}_replaceObject(e,t){for(let t of Object.keys(e))delete e[t];Object.assign(e,t)}_captureState(){return{currentId:this.state.currentId,currentIndex:this.state.currentIndex,previousId:this.state.previousId,previousIndex:this.state.previousIndex,direction:this.state.direction,history:Ie(this.state.history),data:V(this.state.data),stepData:V(this.state.stepData),loading:this.state.loading,busyAction:this.state.busyAction,error:this.state.error,version:this.state.version}}_restoreState(e,t={}){r(()=>{this.state.currentId=e.currentId,this.state.currentIndex=e.currentIndex,this.state.previousId=e.previousId,this.state.previousIndex=e.previousIndex,this.state.direction=e.direction,this.state.history.splice(0,this.state.history.length,...e.history),this._replaceObject(this.state.data,e.data),this._replaceObject(this.state.stepData,e.stepData),this.state.loading=t.keepLoading?!0:e.loading,this.state.busyAction=e.busyAction,this.state.error=e.error,this.state.version=e.version+1})}_addCleanup(e){if(typeof e!=`function`)throw Error(`Flow.addCleanup: cleanup expects a function.`);return this._destroyed?(e(),()=>{}):(this._cleanupTasks.add(e),()=>this._cleanupTasks.delete(e))}_assertActive(e){if(this._destroyed||!this.state)throw Error(`Flow.${e}: instance has been destroyed.`)}_publicStep(e){if(!e)return null;let t={...e};return delete t.onEnter,delete t.onLeave,delete t.onNext,delete t.onBack,delete t.canEnter,delete t.canLeave,t}_buildRoot(){return i(`div`,{className:`j-flow ${this.options.className||``}`.trim(),id:this.options.id,role:`group`,"aria-busy":()=>this.state.loading?`true`:`false`,"aria-labelledby":`${this.options.id}-title`,ref:e=>{this._nodes.root=e}})}_mountView(){this._renderDispose||!this.root||(this._renderDispose=n(e=>(a(o(()=>this._view(),this.root)),e)))}_view(){let e=this.snapshot();return[this._renderSlot(`renderHeader`,e,()=>this.options.showHeader?this._headerView(e):null),this._renderSlot(`renderSteps`,e,()=>this.options.showSteps?this._stepsView(e):null),this._renderSlot(`renderBody`,e,()=>this._bodyView(e)),this._renderSlot(`renderFooter`,e,()=>this.options.showFooter?this._footerView(e):null)]}_renderSlot(e,t,n){let r=this.options[e];return r===!1?null:typeof r==`function`?r(this._createRenderContext(t,n)):n()}_createRenderContext(e,t){return{flow:this,snapshot:e,state:this.state,steps:this.steps.map(e=>this._publicStep(e)),currentStep:e.currentStep,currentData:e.currentData,data:e.data,fallback:t,next:e=>this.next(e),back:e=>this.back(e),goTo:(e,t,n)=>this.goTo(e,t,n),reset:()=>this.reset()}}_headerView(e){return i(`div`,{className:`flow-header`,children:[i(`div`,{id:`${this.options.id}-title`,className:`flow-title`,children:e.currentStep?.title||e.currentStep?.id||``}),e.currentStep?.description?i(`div`,{className:`flow-description`,children:e.currentStep.description}):null]})}_stepsView(e){return i(`ol`,{className:`flow-steps`,role:`list`,"aria-label":`Flow steps`,children:this.steps.map((t,n)=>i(`li`,{className:this._stepClass(n,e.currentIndex),"aria-current":n===e.currentIndex?`step`:void 0,children:[i(`button`,{type:`button`,className:`flow-step-button`,disabled:this.options.linear&&n>e.currentIndex,"aria-current":n===e.currentIndex?`step`:void 0,"aria-disabled":this.options.linear&&n>e.currentIndex?`true`:`false`,"aria-label":`${n+1}. ${t.title||t.id}`,onClick:()=>{n!==e.currentIndex&&this.goTo(n)},children:[i(`span`,{className:`flow-step-index`,children:n+1}),i(`span`,{className:`flow-step-title`,children:t.title||t.id})]})]}))})}_bodyView(e){return i(`div`,{className:`flow-body`,role:`region`,"aria-live":`polite`,"aria-busy":e.loading?`true`:`false`,children:this._contentView(e.currentStep?.content)})}_footerView(e){return i(`div`,{className:`flow-footer`,children:[this.options.showReset?i(`button`,{type:`button`,className:`j-button is-ghost flow-reset`,onClick:()=>this.reset(),disabled:e.loading,"aria-disabled":e.loading?`true`:`false`,children:this.options.resetText}):null,this.options.showBack?i(`button`,{type:`button`,className:`j-button is-ghost flow-back`,"data-action":`back`,onClick:()=>void this.back(),disabled:!e.canBack,"aria-disabled":e.canBack?`false`:`true`,children:this.options.backText}):null,this.options.showNext?i(`button`,{type:`button`,className:`j-button is-primary flow-next`,"data-action":`next`,onClick:()=>void this.next(),disabled:e.loading,"aria-disabled":e.loading?`true`:`false`,children:e.isLast?this.options.finishText:this.options.nextText}):null]})}_contentView(e){return typeof e==`function`?e(this._createContext()):Array.isArray(e)||typeof Node<`u`&&e instanceof Node?e:e==null||typeof e!=`string`?``:e}_stepClass(e,t=this.state.currentIndex){let n=[`flow-step`];return e===t&&n.push(`is-active`),e<t&&n.push(`is-complete`),n.join(` `)}};function We(e){return new Ue(e)}const Ge={type:{default:`mobile`,type:`string`},id:{default:``,type:`string`,normalize:e=>e.trim()===``?y():e.trim()},items:{default:[],type:`array`},backText:{default:`Back`,type:`string`}},Ke={type:`array`};var qe=class{constructor(e,t={}){this._element=e,this.options=v(t,Ge,`Menu.options`),this.root=null,this.cleanup={events:M()},this._bound=!1,this._destroyed=!1,this._validateOptions()}get menu(){return this.root}_validateOptions(){let{items:e}=this.options;this._element!==!1&&_(`element`,this._element,[`HTMLElement`,`string`],`Menu`),this._verifyItems(e)}_verifyItems(e){_(`items`,e,Ke,`Menu`)}build(){if(this._bound)return this;if(!C())throw Error(`Menu: DOM render environment is required.`);if(this._element===!1)this.root=this._buildRoot(),this._bound=!0;else{let e=A(this._element,`Menu.element`);if(!e)throw Error(`Element not found`);this.root=e,this._bound=!0}return this._bindEvents(),this}_buildRoot(){let{items:e,id:t,type:n}=this.options;return i(`nav`,{className:`j-${n}-menu`,children:i(`ul`,{className:`menu`,id:t,children:e.map(e=>this._buildItem(e))})})}_buildItem(e){let t=e.children&&e.children.length>0,n=[`menu-item`];t&&n.push(`menu-item-has-children`),e.classes&&Array.isArray(e.classes)&&n.push(...e.classes);let r=[i(`a`,{className:`menu-link`,href:e.url||`#`,...e.target&&{target:e.target},children:e.title})];return t&&r.push(i(`ul`,{className:`sub-menu`,children:e.children.map(e=>this._buildItem(e))})),i(`li`,{className:n.join(` `),id:`menu-item-${e.id||y()}`,children:r})}_bindEvents(){this.root&&(this.options.type===`mobile`?this.cleanup.events.on(`mobile`,this.root,`click`,e=>{let t=e.target;if(t.closest(`.menu-item.back`)){e.preventDefault(),this._handleBack(t);return}let n=t.closest(`.menu-item.menu-item-has-children`);if(n){let r=O(`:scope > a`,n);r&&(t===r||r.contains(t))&&(e.preventDefault(),this._handleMenuClick(n))}}):this.options.type===`bottom`&&this.cleanup.events.on(`bottom`,document,`click`,e=>{let t=e.target;if(t.closest(`.sub-menu a`))return;let n=t.closest(`.menu > .menu-item.menu-item-has-children`);n?(e.preventDefault(),this._toggleActive(n)):O(`.menu-item.is-active`,this.root)?.classList.remove(`is-active`)}))}_unbindEvents(){this.cleanup.events.clear()}_teardown({keepElement:e=!1}={}){this._unbindEvents(),this._element===!1&&this.root?.parentElement&&this.root.remove(),e||(this._element=null),this.root=null,this._bound=!1}_handleMenuClick(e){e.classList.add(`is-active`);let t=O(`:scope > .sub-menu`,e);if(!t||O(`:scope > .menu-item.back`,t))return;let n=i(`li`,{className:`menu-item back`,children:i(`a`,{className:`menu-link`,children:[i(`icon`,{className:`el-icon el-prefix`,children:I(`arrow-left`)}),i(`span`,{className:`menu-text`,children:this.options.backText})]})});t.insertBefore(n,t.firstChild)}_handleBack(e){let t=e.closest(`.menu-item.back`);if(!t)return;let n=t.parentElement.parentElement;n&&n.classList.contains(`menu-item-has-children`)&&n.classList.remove(`is-active`),t.remove()}_toggleActive(e){let t=e.classList.contains(`is-active`);O(`.menu-item.is-active`,this.root)?.classList.remove(`is-active`),t||e.classList.add(`is-active`)}setItems(e){if(this._verifyItems(e),this.options.items=e,this._bound)if(this._element===!1){let e=this._element;this._teardown({keepElement:!0}),this._element=e,this.build()}else{let t=this.root.matches?.(`.menu`)||this.root.matches?.(`ul`)||this.root.matches?.(`ol`)?this.root:O(`:scope > .menu`,this.root)||O(`.menu`,this.root);if(!t)throw Error(`Menu: .menu element not found for setItems().`);this._unbindEvents(),t.textContent=``,t.append(...e.map(e=>this._buildItem(e))),this._bindEvents()}return this}removeItem(e){if(!this.root)return this;let t=O(`[id^="menu-item-${e}"]`,this.root);if(t&&t.remove(),this.options.items){let t=n=>{for(let r=n.length-1;r>=0;r--)n[r].id===e?n.splice(r,1):n[r].children&&t(n[r].children)};t(this.options.items)}return this}destroy(){this._destroyed||(this._destroyed=!0,this._bound?this._teardown():(this._element=null,this.root=null,this.cleanup.events.clear()),this.cleanup=null,this.options=null)}};function W(e){return Array.isArray(e)?e.map(e=>({...e,options:Array.isArray(e.options)?e.options.map(e=>e&&typeof e==`object`?{...e}:e):e.options})):[]}function G(e){return{...e,fields:Array.isArray(e.fields)?W(e.fields):e.fields}}function Je(e){return e&&typeof e==`object`?e:{value:e,text:e}}function K(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Ye(e){return e==null||typeof e==`string`||typeof e==`function`||Array.isArray(e)||w(e)}function Xe(e){return K(e)}function Ze(e){return e==null||typeof e==`object`&&typeof e.next==`function`&&typeof e.back==`function`&&typeof e.snapshot==`function`}function q(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Qe(e,t){return!Array.isArray(e)||!K(t)?e:e.map(e=>{if(!e?.name||!q(t,e.name))return e;let n=t[e.name];if(e.type===`checkbox`||e.type===`radio`){let t=e.value??`on`,r=Array.isArray(n)?n.map(String).includes(String(t)):n===!0||String(n)===String(t);return{...e,checked:r}}return{...e,value:n}})}function $e(e){return{...e,fields:Array.isArray(e.fields)?W(e.fields):null,loading:!1,submitting:!1,visible:!1,data:null,extraData:null}}function et(e,t){return!t||typeof t!=`object`?e:Object.assign(e,t)}const tt={validate:Ye,message:`expects string, Node, array, function or null.`},nt={types:[`array`,`null`]},rt={validate:e=>typeof e==`string`||e===!1,message:`expects string or false.`},J={title:{default:`Tip`,type:`string`},content:{default:``,...tt},position:{default:`center`,type:`string`},confirmText:{default:`Confirm`,type:`string`},cancelText:{default:`Cancel`,type:`string`},showCancel:{default:!0,type:`boolean`},showClose:{default:!0,type:`boolean`},showBack:{default:!1,type:`boolean`},showNext:{default:!1,type:`boolean`},fullscreen:{default:!1,type:`boolean`},flow:{default:null,validate:Ze,message:`expects a Flow instance or null.`},onShow:{default:null,types:[`function`,`null`]},onShown:{default:null,types:[`function`,`null`]},onHide:{default:null,types:[`function`,`null`]},onHidden:{default:null,types:[`function`,`null`]},onConfirm:{default:null,types:[`function`,`null`]},onSubmit:{default:null,types:[`function`,`null`]},onCancel:{default:null,types:[`function`,`null`]},onBack:{default:null,types:[`function`,`null`]},onNext:{default:null,types:[`function`,`null`]},fields:{default:null,...nt},header:{default:!0,type:`boolean`},footer:{default:!0,type:`boolean`},style:{default:null,types:[`string`,`null`,`object`]},id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():y():e??y()},escClose:{default:!1,type:`boolean`},bgClose:{default:!1,type:`boolean`},lazy:{default:!1,type:`boolean`},backText:{default:`Back`,...rt},nextText:{default:`Next`,...rt}},it={...J,loading:{default:!1,type:`boolean`},submitting:{default:!1,type:`boolean`},visible:{default:!1,type:`boolean`},data:{default:null,types:[`object`,`null`]},extraData:{default:null,types:[`object`,`null`]}},at=new Set([`id`,`lazy`]),ot={validate:e=>!!e&&typeof e==`object`&&!Array.isArray(e),message:`expects an object.`},st={validate:Xe,message:`expects an options object.`},Y=[];let X=0,Z=``;var ct=class{constructor(e={}){let t=v(e,J,`Modal.options`);this.init(t)}static get modalStack(){return Y}init(t){this.dom={root:null},this.cleanup={events:M(),state:null,view:null,hideTimer:null},this.cache={initial:G(t),fieldIds:new Map,baseStyle:``,previousActiveElement:null,formId:`${t.id}_form`},this.runtime={scrollLocked:!1,visibleApplied:!1,destroyed:!1},this.state=e($e(t)),this.bindReactiveVisibility(),!this.state.lazy&&C()&&this.buildRoot()}get root(){return this.dom?.root||null}set root(e){this.dom||(this.dom={}),this.dom.root=e}get modal(){return this.dom.modal||(this.root?O(`.j-modal`,this.root):null)}get form(){return this.dom.form&&this.root?.contains(this.dom.form)?this.dom.form:this.root?O(`form`,this.root):null}get initialOptions(){return this.cache.initial?G(this.cache.initial):null}get initialFields(){return this.cache.initial?.fields?W(this.cache.initial.fields):null}get initialContent(){return this.cache.initial?.content??null}get content(){return this.state?.content??null}get data(){return this.state?.data??null}get visible(){return!!this.state?.visible}set visible(e){this.state&&r(()=>{this.state.visible=!!e})}buildRoot(){if(this.root)return this.root;let{id:e}=this.state,t=i(`div`,{className:()=>`j-popup-layout is-${this.state.position}`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":()=>this.state.header?`${e}_title`:null,"aria-label":()=>this.state.header?null:this.state.title||`Modal`,children:i(`div`,{className:()=>this.state.fullscreen?`j-modal is-fullscreen`:`j-modal`,id:e,role:`document`,ref:e=>{this.dom.modal=e,this.applyStyle(e,this.state.style)},children:[i(`div`,{className:`modal-header`,style:()=>({display:this.state.header?``:`none`}),ref:e=>{this.dom.header=e}}),i(`div`,{className:`modal-body`,ref:e=>{this.dom.body=e}}),i(`div`,{className:`modal-footer`,style:()=>({display:this.state.footer?``:`none`}),ref:e=>{this.dom.footer=e}})]})});return this.root=t,this.mountView(),t}mountView(){this.cleanup.view||!this.dom.body||(this.cleanup.view=n(e=>(this.dom.header&&a(o(()=>this.headerView(),this.dom.header)),a(o(()=>this.bodyView(),this.dom.body)),this.dom.footer&&a(o(()=>this.footerView(),this.dom.footer)),this.bindReactiveLoading(),this.bindReactiveStyle(),e)))}headerView(){return()=>this.state.header?[i(`div`,{className:`modal-title`,id:`${this.state.id}_title`,children:()=>this.state.title}),this.state.showClose?i(`button`,{type:`button`,className:`is-reset modal-close`,"data-action":`close`,"aria-label":`close`,children:I(`close`)}):null]:null}footerView(){return()=>this.state.footer?[this.state.showCancel?i(`button`,{type:`button`,className:`j-button is-ghost modal-cancel`,"data-action":`close`,"aria-label":`close`,disabled:()=>this.isBusy(),children:()=>this.state.cancelText}):null,this.state.showBack&&this.state.backText!==!1?i(`button`,{type:`button`,className:`j-button is-ghost modal-back`,"data-action":`back`,disabled:()=>this.isBusy(),children:()=>this.state.backText}):null,this.state.showNext&&this.state.nextText!==!1?i(`button`,{type:`button`,className:`j-button is-secondary modal-next`,"data-action":`next`,disabled:()=>this.isBusy(),children:()=>this.state.nextText}):null,i(`button`,{type:()=>this.isFormMode()?`submit`:`button`,form:()=>this.isFormMode()?this.cache.formId:null,className:`j-button is-primary modal-confirm`,"data-action":`confirm`,disabled:()=>this.isBusy(),children:()=>this.state.confirmText})]:null}bodyView(){return this.isFormMode()?this.formView():(this.dom.form=null,this.contentView(this.state.content))}formView(){return i(`div`,{className:`modal-form-container`,children:i(`form`,{id:this.cache.formId,className:`j-form is-vertical is-item-vertical`,ref:e=>{this.dom.form=e},onSubmit:e=>this.handleFormSubmit(e),onKeyDown:e=>this.handleFormKeydown(e),children:(this.state.fields||[]).map((e,t)=>this.fieldView(e,t))})})}fieldView(e,t){let n=this.resolveFieldId(e,t),r=this.labelView(e,n);return i(`div`,{className:`form-item`,style:{display:e.type===`hidden`?`none`:``},children:[r,i(`div`,{className:`form-control`,children:this.controlView(e,n)})]})}labelView(e,t){return i(`label`,{className:`item-label ${e.required?`is-required`:``}`,for:t,style:{display:e.label===void 0?`none`:``},children:e.label===void 0?``:e.label})}resolveFieldId(e,t){if(e.id)return e.id;let n=e.name||t;return this.cache.fieldIds.has(n)||this.cache.fieldIds.set(n,`${this.state.id}_field_${t}_${y()}`),this.cache.fieldIds.get(n)}controlView(e,t){switch(e.type){case`textarea`:return this.textareaView(e,t);case`select`:return this.selectView(e,t);default:return this.inputView(e,t)}}inputView(e,t){let n=e.type||`text`,r={type:n,className:`j-input`,name:e.name,id:t,placeholder:e.placeholder||``,value:e.value??``,autocomplete:e.autocomplete||this.autoComplete(n),required:!!e.required,disabled:!!e.disabled,readonly:!!e.readonly};return e.checked!==void 0&&(r.checked=!!e.checked),i(`input`,r)}textareaView(e,t){return i(`textarea`,{className:`j-textarea`,name:e.name,id:t,placeholder:e.placeholder||``,value:e.value??``,required:!!e.required,disabled:!!e.disabled,readonly:!!e.readonly})}selectView(e,t){let n=e.value;return i(`select`,{className:`j-select`,name:e.name,id:t,autocomplete:`off`,required:!!e.required,disabled:!!e.disabled,readonly:!!e.readonly,multiple:!!e.multiple,children:(e.options||[]).map(e=>{let t=Je(e);return i(`option`,{value:t.value??``,disabled:!!t.disabled,selected:this.isSelected(n,t.value),children:t.text??t.label??t.value??``})})})}contentView(e){if(typeof e==`function`)return e(this);if(Array.isArray(e)||w(e))return e;if(e==null||typeof e!=`string`)return``;let t=document.createElement(`template`);return t.innerHTML=e,Array.from(t.content.childNodes)}bindReactiveLoading(){let e=null;t(()=>{this.state.loading&&!e?(e=i(`div`,{className:`j-loading is-active`,"aria-live":`polite`,children:i(`div`,{className:`loading-spinner`})}),this.dom.modal.appendChild(e)):!this.state.loading&&e&&(e.remove(),e=null)}),a(()=>{e?.remove(),e=null})}bindReactiveStyle(){t(()=>{let e=this.state.style;this.dom.modal&&this.applyStyle(this.dom.modal,e)})}autoComplete(e){switch(e){case`password`:return`current-password`;case`email`:return`email`;default:return`on`}}isSelected(e,t){return Array.isArray(e)?e.map(String).includes(String(t)):e==t}isFormMode(){return Array.isArray(this.state.fields)}isBusy(){return!!(this.state.loading||this.state.submitting)}validateOptionPatch(e,t=`Modal.update`){_(`options`,e,st,t);for(let n of Object.keys(e)){if(!Object.prototype.hasOwnProperty.call(J,n))throw Error(`Validator: ${t}.${n} is not a supported modal option.`);if(at.has(n))throw Error(`Modal.update: "${n}" cannot be updated after initialization.`);_(n,e[n],J[n],t)}}applyOptions(e,{validate:t=!0}={}){if(t&&this.validateOptionPatch(e),!e||Object.keys(e).length===0)return this;let n=Object.prototype.hasOwnProperty.call(e,`fields`);if(Object.prototype.hasOwnProperty.call(e,`content`)&&!n&&this.isFormMode())throw Error(`Modal.update: Cannot update content when fields are defined.`);return r(()=>{n&&(this.cache.fieldIds.clear(),this.state.fields=Array.isArray(e.fields)?W(e.fields):null);for(let[t,n]of Object.entries(e))t!==`fields`&&(this.state[t]=n)}),Object.prototype.hasOwnProperty.call(e,`style`)&&this.modal&&this.applyStyle(this.modal,this.state.style),this.visible&&(Object.prototype.hasOwnProperty.call(e,`bgClose`)||Object.prototype.hasOwnProperty.call(e,`escClose`))&&this.bindEvents(this.root),this}applyStyle(e,t){if(e.removeAttribute(`style`),!t){this.cache.baseStyle=``;return}if(typeof t==`string`){e.style.cssText=t,this.cache.baseStyle=e.getAttribute(`style`)||``;return}typeof t==`object`&&Object.entries(t).forEach(([t,n])=>{if(n==null)return;let r=t.startsWith(`--`)?t:t.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`);e.style.setProperty(r,String(n))}),this.cache.baseStyle=e.getAttribute(`style`)||``}normalizeIcon(e){if(!(e instanceof Element))return;let t=O(`.modal-close`,e);t&&(t.style.transform=`translateX(${t.clientHeight/3}px)`)}bindReactiveVisibility(){this.cleanup.state=n(e=>(t(()=>{let e=!!this.state.visible;s(()=>this.applyVisibility(e))}),e))}applyVisibility(e){if(e!==this.runtime.visibleApplied){if(e){this.showFromState();return}this.hideFromState()}}showFromState(){if(this.runtime.destroyed)throw Error(`Modal: The current instance has been destroyed.`);if(!C())throw Error(`Modal.show: DOM environment is required.`);this.root||this.buildRoot(),this.cancelHideTimer(),this.resetAnimationStyles();let{onShow:e,onShown:t}=this.state;e&&e(),this.cache.previousActiveElement=document.activeElement,this.root.parentNode||document.body.appendChild(this.root),this.lockScroll(),this.pushStack(),this.runtime.visibleApplied=!0,this.normalizeIcon(this.modal),this.bindEvents(this.root),this.focusFirst(),t&&t()}hideFromState(){if(!this.runtime.visibleApplied||!this.root)return;let{onHide:e,onHidden:t}=this.state;e&&e(),this.runtime.visibleApplied=!1,this.removeFromStack(),this.clearEvents(),r(()=>{this.state.loading=!1,this.state.extraData=null,this.state.data=null}),this.modal&&(this.modal.style.transition=`opacity 300ms ease-out, transform 300ms ease-out`,this.modal.style.opacity=`0`,this.modal.style.transform=`scale(0.3)`),this.cancelHideTimer(),this.cleanup.hideTimer=setTimeout(()=>this.finishHide(t),300)}bindEvents(e){this.clearEvents(),this.bindOverlayCloseEvent(e),this.bindDocumentKeyEvent(),this.bindInsideEvent()}bindOverlayCloseEvent(e){e&&this.cleanup.events.on(`bg`,e,`click`,t=>{this.state.bgClose&&t.target===e&&this.isTop()&&this.hide()})}bindDocumentKeyEvent(){this.cleanup.events.on(`keydown`,document,`keydown`,e=>{if(!(!this.visible||!this.isTop())){if(e.key===`Escape`&&this.state.escClose){e.preventDefault(),this.hide();return}e.key===`Tab`&&this.trapFocus(e)}})}bindInsideEvent(){this.modal&&this.cleanup.events.on(`inside`,this.modal,`click`,e=>{let t=(e.target instanceof Element?e.target:null)?.closest(`[data-action]`);if(!t||!this.modal.contains(t))return;let n=t.dataset.action;if(n===`cancel`||n===`close`||t.classList.contains(`modal-close`)){this.handleCancel();return}if(n===`submit`){this.requestSubmit();return}if(n===`back`){this.handleBack();return}if(n===`next`){this.handleNext();return}if(n===`confirm`){if(this.isFormMode()){if(t.classList.contains(`modal-confirm`))return;this.requestSubmit();return}this.handleConfirm()}})}clearEvents(){this.cleanup.events.clear()}requestSubmit(){if(!this.form){this.handleConfirm();return}if(typeof this.form.requestSubmit==`function`){this.form.requestSubmit();return}let e=new Event(`submit`,{bubbles:!0,cancelable:!0});this.form.dispatchEvent(e)}async handleFormSubmit(e){if(e.preventDefault(),this.isBusy())return;let t=e.currentTarget;if(!t.checkValidity()){t.reportValidity();return}let n=et(this.collectFormData(t),this.state.extraData);r(()=>{this.state.data=n}),await this.handleSubmit(n)}handleFormKeydown(e){if(e.key!==`Enter`||e.isComposing||this.isBusy())return;let t=e.target,n=t?.tagName?.toLowerCase(),r=t?.type?.toLowerCase();n!==`textarea`&&(r===`button`||r===`submit`||r===`reset`||(e.preventDefault(),this.requestSubmit()))}collectFormData(e){let t={},n=new FormData(e);for(let[e,r]of n.entries())Object.prototype.hasOwnProperty.call(t,e)?t[e]=Array.isArray(t[e])?[...t[e],r]:[t[e],r]:t[e]=r;return t}async handleNext(){if(!this.isBusy()){if(this.hasFlow()){await this.moveFlow(`next`);return}if(typeof this.state.onNext==`function`){r(()=>{this.state.submitting=!0});try{let e=await Promise.resolve(this.state.onNext(this));K(e)&&this.update(e)}catch(e){console.error(`Modal.onNext error:`,e)}finally{this.state&&r(()=>{this.state.submitting=!1})}}}}async handleBack(){if(!this.isBusy()){if(this.hasFlow()){await this.moveFlow(`back`);return}if(typeof this.state.onBack==`function`){r(()=>{this.state.submitting=!0});try{let e=await Promise.resolve(this.state.onBack(this));K(e)&&this.update(e)}catch(e){console.error(`Modal.onBack error:`,e)}finally{this.state&&r(()=>{this.state.submitting=!1})}}}}hasFlow(){return Ze(this.state.flow)&&!!this.state.flow}async moveFlow(e){let t=this.createFlowPayload();if(t!==!1){r(()=>{this.state.submitting=!0});try{let n=await this.state.flow[e](t);this.syncFlowView(this.state.flow,n)}catch(t){console.error(`Modal.flow.${e} error:`,t),this.syncFlowView(this.state.flow)}finally{this.state&&r(()=>{this.state.submitting=!1})}}}createFlowPayload(){if(!this.isFormMode())return null;let e=this.form;if(!e)return this.state.data||null;if(!e.checkValidity())return e.reportValidity(),!1;let t=et(this.collectFormData(e),this.state.extraData);return r(()=>{this.state.data=t}),this.state.data}syncFlowView(e,t=null){if(!e||!this.state)return;let n=e.snapshot()||t,r=e.currentStep||n?.currentStep||t?.currentStep,i={...K(r?.view)?r.view:{}};Array.isArray(i.fields)&&(i.fields=Qe(i.fields,n?.currentData)),q(i,`showBack`)||(i.showBack=!!n?.canBack),q(i,`showNext`)||(i.showNext=!!n?.canNext),!q(i,`fields`)&&q(i,`content`)&&(i.fields=null),this.update(i)}async handleConfirm(){if(!this.isBusy()){r(()=>{this.state.submitting=!0});try{this.state.onConfirm&&await Promise.resolve(this.state.onConfirm()),this.hide()}catch(e){console.error(`Modal.onConfirm error:`,e)}finally{this.state&&r(()=>{this.state.submitting=!1})}}}async handleCancel(){if(!this.isBusy()){r(()=>{this.state.submitting=!0});try{this.state.onCancel&&await Promise.resolve(this.state.onCancel(this)),this.hide()}catch(e){console.error(`Modal.onCancel error:`,e)}finally{this.state&&r(()=>{this.state.submitting=!1})}}}async handleSubmit(e){if(this.state.onSubmit){r(()=>{this.state.submitting=!0});try{await Promise.resolve(this.state.onSubmit(e)),this.state.extraData=null}catch(e){console.error(`Modal.onSubmit error:`,e)}finally{this.state&&r(()=>{this.state.submitting=!1})}}}trapFocus(e){if(!this.modal)return;let t=Array.from(k(`a[href], button:not([disabled]):not([data-action=close]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])`,this.modal)).filter(e=>e.offsetParent!==null||e===document.activeElement);if(t.length===0){e.preventDefault(),this.modal.focus();return}let n=t[0],r=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),r.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n.focus())}focusFirst(){if(!this.modal)return;let e=O(`input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]):not([data-action=close]), [tabindex]:not([tabindex="-1"])`,this.form||this.modal);e?e.focus():(this.modal.setAttribute(`tabindex`,`-1`),this.modal.focus())}lockScroll(){this.runtime.scrollLocked||!S()||(X===0&&(Z=document.body.style.overflow,document.body.style.overflow=`hidden`),X+=1,this.runtime.scrollLocked=!0)}unlockScroll(){!this.runtime.scrollLocked||!S()||(X=Math.max(0,X-1),X===0&&(document.body.style.overflow=Z,Z=``),this.runtime.scrollLocked=!1)}pushStack(){this.removeFromStack(),Y.push(this)}removeFromStack(){let e=Y.indexOf(this);e>=0&&Y.splice(e,1)}isTop(){return Y[Y.length-1]===this}cancelHideTimer(){this.cleanup.hideTimer&&(clearTimeout(this.cleanup.hideTimer),this.cleanup.hideTimer=null)}resetAnimationStyles(){this.modal&&(this.cache.baseStyle?this.modal.setAttribute(`style`,this.cache.baseStyle):this.modal.removeAttribute(`style`))}finishHide(e){this.cleanup.hideTimer=null,this.root?.parentNode&&this.root.parentNode.removeChild(this.root),this.resetAnimationStyles(),this.unlockScroll(),this.restoreFocus(),e&&e()}restoreFocus(){let e=this.cache.previousActiveElement;this.cache.previousActiveElement=null,e&&typeof e.focus==`function`&&document.contains(e)&&e.focus()}assertActive(e){if(this.runtime.destroyed)throw Error(`Modal.${e}: The current instance has been destroyed.`)}setState(e,t){if(this.assertActive(`setState`),typeof e!=`string`||!e)throw Error(`Modal.setState: key expects a non-empty string.`);if(!q(it,e))throw Error(`Modal.setState: "${e}" is not a supported state key.`);if(at.has(e))throw Error(`Modal.setState: "${e}" cannot be updated after initialization.`);return _(e,t,it[e],`Modal.setState`),r(()=>{e===`fields`&&this.cache.fieldIds.clear(),this.state[e]=e===`fields`&&Array.isArray(t)?W(t):t}),this}show(){return this.assertActive(`show`),r(()=>{this.state.visible=!0}),this}hide(){return this.assertActive(`hide`),r(()=>{this.state.visible=!1}),this}setFields(e){return _(`data`,e,nt,`Modal.setFields`),this.applyOptions({fields:e},{validate:!1}),this}addFields(e){return _(`data`,e,ot,`Modal.addFields`),r(()=>{this.state.extraData=e}),this}setContent(e){if(_(`content`,e,tt,`Modal.setContent`),this.isFormMode())throw Error(`Modal.setContent: Cannot setContent when fields are defined.`);return this.applyOptions({content:e},{validate:!1}),this}update(e={}){return this.applyOptions(e)}reset(){this.cache.fieldIds.clear();let e=G(this.cache.initial);return delete e.id,delete e.lazy,this.applyOptions(e,{validate:!1}),r(()=>{this.state.data=null,this.state.extraData=null}),this}resetContent(){return this.setContent(this.cache.initial?.content??``)}resetFields(){return this.setFields(Array.isArray(this.cache.initial?.fields)?W(this.cache.initial.fields):null)}destroy(){if(this.runtime.destroyed)return;this.runtime.destroyed=!0;let e=!!this.runtime.visibleApplied,t=this.state?.onHide,n=this.state?.onHidden;e&&t&&t(),this.cancelHideTimer(),this.clearEvents(),this.removeFromStack(),this.unlockScroll(),this.cleanup.state?.(),this.cleanup.state=null,this.cleanup.view?.(),this.cleanup.view=null,this.root?.parentNode&&this.root.parentNode.removeChild(this.root),e&&n&&n(),this.cleanup.events.clear(),this.dom={root:null},this.cache={initial:null,fieldIds:null,baseStyle:``,previousActiveElement:null,formId:``},this.state=null,this.runtime.visibleApplied=!1}};const lt={content:{default:``,validate:E,message:`expects string, Node, array, function or null.`},overlay:{default:!0,type:`boolean`},filter:{default:!0,type:`boolean`},direction:{default:`left`,type:`string`,enum:[`top`,`right`,`bottom`,`left`]},animation:{default:`slide`,type:`string`,enum:[`slide`,`push`,`none`]},bgClose:{default:!0,type:`boolean`},escClose:{default:!0,type:`boolean`},id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():y():e??y()},onShow:{default:null,types:[`function`,`null`]},onShown:{default:null,types:[`function`,`null`]},onHide:{default:null,types:[`function`,`null`]},onHidden:{default:null,types:[`function`,`null`]}};var ut=class{constructor(e={}){if(!C())throw Error(`Offcanvas: DOM render environment is required.`);this.options=v(e,lt,`Offcanvas.options`),this._init(this.options)}_init(e){this.isVisible=!1,e.overlay&&(this._overlay=this._buildOverlay(e)),this.root=this._buildRoot(e),this.cleanup={events:M()},this._removeTimer=null,this._showTimer=null,this._shownTimer=null,this._destroyed=!1}_esc(e){e.key===`Escape`&&this.isVisible&&this.hide()}_bindEvents(){let{bgClose:e,escClose:t}=this.options;this._unbindEvents(),this._overlay&&e&&this.cleanup.events.on(`overlay`,this._overlay,`click`,()=>{this.hide()}),t&&this.cleanup.events.on(`esc`,document,`keydown`,e=>this._esc(e)),this.cleanup.events.on(`close`,this.root,`click`,e=>{let t=e.target.dataset.action;(t===`close`||t===`cancel`)&&this.hide()})}_unbindEvents(){this.cleanup?.events.clear()}_buildOverlay(e){let t=e.filter,n=t?`backdropFilter`:``,r=t?`blur(2px)`:``;return i(`div`,{className:`j-offcanvas-overlay`,style:t?{[n]:r}:{}})}_buildRoot(e){let{id:t,direction:n,animation:r,content:a}=e;return i(`div`,{className:`j-offcanvas ${n?`is-${n}`:``} ${r?`is-${r}`:``}`,id:t,children:i(`div`,{className:`offcanvas-content`,children:D(a,this)})})}_render(){let{overlay:e,animation:t,direction:n}=this.options;if(e&&document.body.appendChild(this._overlay),document.body.appendChild(this.root),document.body.style.overflow=`hidden`,t===`push`){document.body.classList.add(`offcanvas-push-body`);let e=window.scrollY;this._overlay&&(this._overlay.style.top=`${e}px`),this.root.style.top=`${e}px`}clearTimeout(this._showTimer),this._showTimer=setTimeout(()=>{this.root&&(this._overlay&&this._overlay.classList.add(`is-active`),t===`push`&&document.body.classList.add(`offcanvas-push-${n}`),this.root.classList.add(`is-active`),this._showTimer=null)},10)}_remove(){let{animation:e,direction:t}=this.options;this._overlay&&this._overlay.classList.remove(`is-active`),this.root.classList.remove(`is-active`),e===`push`&&document.body.classList.remove(`offcanvas-push-${t}`),clearTimeout(this._removeTimer),this._removeTimer=setTimeout(()=>{this._overlay&&this._overlay.parentNode&&this._overlay.parentNode.removeChild(this._overlay),this.root&&this.root.parentNode&&this.root.parentNode.removeChild(this.root),e===`push`&&document.body.classList.remove(`offcanvas-push-body`),document.body.style.overflow=``,this._removeTimer=null},100)}async show(){if(this._destroyed)return;let{onShow:e,onShown:t}=this.options;this.isVisible||(e&&await Promise.resolve(e()),this._render(),this._bindEvents(),this.isVisible=!0,clearTimeout(this._shownTimer),this._shownTimer=setTimeout(()=>{this._destroyed||(t&&t(),this._shownTimer=null)},100))}async hide(){if(this._destroyed)return;let{onHide:e,onHidden:t}=this.options;this.isVisible&&(e&&await Promise.resolve(e()),this._unbindEvents(),this._remove(),this.isVisible=!1,t&&t())}destroy(){if(this._destroyed)return;this._destroyed=!0;let e=this.isVisible;clearTimeout(this._removeTimer),clearTimeout(this._showTimer),clearTimeout(this._shownTimer),e&&(this._unbindEvents(),this.root?.classList.remove(`is-active`)),this.root?.parentNode?.removeChild(this.root),this._overlay?.parentNode?.removeChild(this._overlay),document.body.style.overflow=``,document.body.classList.remove(`offcanvas-push-body`,`offcanvas-push-${this.options.direction}`),this.options=null,this.root=null,this._overlay=null,this.cleanup?.events.clear(),this.cleanup=null,this._removeTimer=null,this._showTimer=null,this._shownTimer=null,this.isVisible=null}};const dt={ball:{default:{color:`var(--primary, #3e63dd)`,size:`10px`},type:`object`,validate:e=>e&&Object.keys(e).length===2&&typeof e.color==`string`&&typeof e.size==`string`,message:`expects an object with two string properties: "color" and "size".`},from:{default:null,types:[`HTMLElement`,`string`]},to:{default:null,types:[`HTMLElement`,`string`]},direction:{default:`center`,type:`string`,enum:[`center`,`top-right`,`top-left`,`bottom-right`,`bottom-left`]},showDelay:{default:0,type:`number`},hideDelay:{default:0,type:`number`},onShow:{default:null,types:[`function`,`null`]},onHidden:{default:null,types:[`function`,`null`]}};var ft=class{constructor(e){if(!C())throw Error(`Parabola: DOM render environment is required.`);this.options=v(e,dt,`Parabola.options`),this._init(this.options)}_init(e){if(this.hidden=!1,this._ball=null,this._animationId=null,this._showTimeoutId=null,this._hideTimeoutId=null,this.hidden)return;let t=A(e.from),n=A(e.to);if(!t||!n)throw this.hidden=!0,Error(`Parabola: from or to element not found.`);this._createBall(e)}_createBall(e){if(this.hidden||this._ball)return;let{color:t,size:n}=e.ball;this._ball=i(`div`,{className:`parabola-ball`,style:{backgroundColor:t,width:n,height:n,position:`fixed`,borderRadius:`50%`,transform:`translate(-50%, -50%)`,pointerEvents:`none`,zIndex:`9999`,opacity:`1`}}),document.body.appendChild(this._ball)}_calculatePath(e){let t=A(e.from)?.getBoundingClientRect(),n=A(e.to)?.getBoundingClientRect();if(!t||!n)return null;let{left:r,top:i,width:a,height:o}=t,{left:s,top:c,width:l,height:u}=n,d,f;switch(e.direction){case`top-left`:d=r+a*.2,f=i+o*.2;break;case`top-right`:d=r+a*.8,f=i+o*.2;break;case`bottom-left`:d=r+a*.2,f=i+o*.8;break;case`bottom-right`:d=r+a*.8,f=i+o*.8;break;default:d=r+a/2,f=i+o/2}let p=s+l/2,m=c+u/2;return{startX:d,startY:f,endX:p,endY:m}}_easeOutCubic(e){return 1-(1-e)**3}_animate(e,t,n,r,i=800){if(this.hidden)return;let a=performance.now(),o=n-e,s=r-t,c=n=>{if(this.hidden)return;let r=n-a,l=Math.min(r/i,1),u=this._easeOutCubic(l),d=e+o*u,f=t+-100*Math.sin(Math.PI*u)+s*u,p=1-l;this._ball.style.left=`${d}px`,this._ball.style.top=`${f}px`,this._ball.style.opacity=`${p}`,this._ball.style.transform=`translate(-50%, -50%) scale(${1-u*.3})`,l<1?this._animationId=requestAnimationFrame(c):this.destroy()};this._animationId=requestAnimationFrame(c)}async show(){return this.hidden?!1:new Promise(e=>{this._showTimeoutId=setTimeout(()=>{if(this.hidden){e(!1);return}let t=this._calculatePath(this.options);if(!t){this.destroy(),e(!1);return}this._ball.style.left=`${t.startX}px`,this._ball.style.top=`${t.startY}px`,this.options.onShow&&this.options.onShow(),this._animate(t.startX,t.startY,t.endX,t.endY),e(!0)},this.options.showDelay)})}destroy(){this.hidden||(this._ball?.parentNode&&this._ball.parentNode.removeChild(this._ball),this._showTimeoutId&&clearTimeout(this._showTimeoutId),this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._animationId&&cancelAnimationFrame(this._animationId),this._ball=null,this.hidden=!0,this.options.onHidden&&this.options.onHidden())}start(){return this.show()}};const pt={data:{default:null,validate:e=>e==null||Array.isArray(e),message:`expects an array or null.`},loop:{default:!1,type:`boolean`},autoplay:{default:!1,type:`boolean`},delay:{default:3e3,type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},lazyload:{default:!0,type:`boolean`},pagination:{default:!0,type:`boolean`},navigation:{default:!0,type:`boolean`},speed:{default:300,type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},touchRatio:{default:1,type:`number`,validate:e=>e>0,message:`expects a number greater than 0.`},touchAngle:{default:45,type:`number`,validate:e=>e>=0&&e<=90,message:`expects a number between 0 and 90.`},longSwipesMs:{default:300,type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},longSwipesRatio:{default:.05,type:`number`,validate:e=>e>=0&&e<=1,message:`expects a number between 0 and 1.`},preventClick:{default:!0,type:`boolean`}},mt={validate:e=>!e||typeof e!=`object`||Array.isArray(e)?!1:(e.image==null||typeof e.image==`string`)&&(e.url==null||typeof e.url==`string`)&&(e.title==null||typeof e.title==`string`)&&(e.sort==null||typeof e.sort==`number`)&&(e.children==null||E(e.children)),message:`expects items with optional image, url, title, sort and children fields.`};function ht(e){return!!e?.closest?.(`a, button, input, textarea, select, label, [data-swiper-ignore]`)}var gt=class{constructor(e,t={}){if(!C())throw Error(`Swiper: DOM render environment is required.`);let n=v(t,pt,`Swiper.options`),r=Array.isArray(n.data),i=typeof e==`string`?O(e):T(e)?e:null;!i&&!r&&_(`container`,i,{validate:T,message:`expects a valid HTMLElement or selector.`},`Swiper`);let a=i,o=null,s=r;if(r)o=i||document.body,a=document.createElement(`div`),a.className=`j-swiper`,o.appendChild(a);else if(!a.classList.contains(`j-swiper`))throw Error(`Swiper: root element must have .j-swiper.`);this.settings={options:n};let c=r?this.createDataView(a,n.data):O(`.swiper-wrapper`,a);if(!c)throw Error(`Swiper: .swiper-wrapper not found.`);let l=k(`.swiper-slide`,c);this.dom={root:a,wrapper:c,slides:l,pagination:O(`.swiper-pagination`,a),prevButton:O(`.swiper-navigation.is-prev`,a),nextButton:O(`.swiper-navigation.is-next`,a),bullets:[],createdPagination:!1,createdPrevButton:!1,createdNextButton:!1,createdRoot:s,createdSlides:r,mountTarget:o},this.runtime={realCount:l.length,index:0,transform:0,width:0,timer:null,logs:[],startTarget:null,touching:!1,scrolling:!1,swiping:!1,animating:!1,clickPrevented:!1,destroyed:!1},this.cleanup={events:M()},this.slides.length!==0&&this.init()}createDataView(e,t){let n=this.normalizeData(t),r=document.createElement(`div`);return r.className=`swiper-wrapper`,e.textContent=``,n.forEach((e,t)=>{r.appendChild(this.createDataSlide(e,t,this.config))}),e.appendChild(r),r}normalizeData(e){e.forEach((e,t)=>{_(String(t),e,mt,`Swiper.options.data`)});let t=e.map((e,t)=>({...e,index:t}));return t.some(e=>e.sort!=null)?t.sort((e,t)=>e.sort==null&&t.sort==null?e.index-t.index:e.sort==null?1:t.sort==null?-1:e.sort-t.sort||e.index-t.index):t}createDataSlide(e,t,n=this.config){let r=e.url?document.createElement(`a`):document.createElement(`div`);if(r.className=`swiper-slide`,r.setAttribute(`data-swiper-index`,String(t)),e.url&&(r.href=e.url),e.children!=null)return r.append(...D(e.children,{swiper:this,item:e,index:t})),r;if(e.image){let t=document.createElement(`img`);t.className=`swiper-image`,t.alt=e.title||``,t.loading=`lazy`,n.lazyload?t.dataset.lazy=e.image:t.src=e.image,r.appendChild(t)}if(e.title){let t=document.createElement(`span`);t.className=`swiper-slide-title`,t.textContent=e.title,r.appendChild(t)}return r}get config(){return this.settings?.options||{}}set config(e){this.settings||(this.settings={}),this.settings.options=e||{}}get el(){return this.dom?.root||null}set el(e){this.dom||(this.dom={}),this.dom.root=e}get wrapper(){return this.dom?.wrapper||null}set wrapper(e){this.dom||(this.dom={}),this.dom.wrapper=e}get slides(){return this.dom?.slides||[]}set slides(e){this.dom||(this.dom={}),this.dom.slides=Array.isArray(e)?e:[]}get bullets(){return this.dom?.bullets||[]}set bullets(e){this.dom||(this.dom={}),this.dom.bullets=Array.isArray(e)?e:[]}get pagination(){return this.dom?.pagination||null}set pagination(e){this.dom||(this.dom={}),this.dom.pagination=e}get prevButton(){return this.dom?.prevButton||null}set prevButton(e){this.dom||(this.dom={}),this.dom.prevButton=e}get nextButton(){return this.dom?.nextButton||null}set nextButton(e){this.dom||(this.dom={}),this.dom.nextButton=e}get realCount(){return this.runtime?.realCount||0}set realCount(e){this.runtime||(this.runtime={}),this.runtime.realCount=Number(e)||0}get index(){return this.runtime?.index||0}set index(e){this.runtime||(this.runtime={}),this.runtime.index=Number(e)||0}get transform(){return this.runtime?.transform||0}set transform(e){this.runtime||(this.runtime={}),this.runtime.transform=Number(e)||0}get width(){return this.runtime?.width||0}set width(e){this.runtime||(this.runtime={}),this.runtime.width=Number(e)||0}get timer(){return this.runtime?.timer||null}set timer(e){this.runtime||(this.runtime={}),this.runtime.timer=e}get logs(){return this.runtime?.logs||[]}set logs(e){this.runtime||(this.runtime={}),this.runtime.logs=Array.isArray(e)?e:[]}get touching(){return!!this.runtime?.touching}set touching(e){this.runtime||(this.runtime={}),this.runtime.touching=!!e}get scrolling(){return!!this.runtime?.scrolling}set scrolling(e){this.runtime||(this.runtime={}),this.runtime.scrolling=!!e}get swiping(){return!!this.runtime?.swiping}set swiping(e){this.runtime||(this.runtime={}),this.runtime.swiping=!!e}get animating(){return!!this.runtime?.animating}set animating(e){this.runtime||(this.runtime={}),this.runtime.animating=!!e}init(){this.updateSize(),this.config.loop&&this.slides.length>1&&this.initLoop(),this.setupStyles(),this.index=+!!this.config.loop,this.transform=-this.index*this.width,this.render(!1),this.bindEvents(),this.config.pagination&&this.initPagination(),this.config.navigation&&this.initNavigation(),this.updateControls(),this.config.lazyload&&this.loadImages(),this.config.autoplay&&this.play()}updateSize(){this.width=this.el.clientWidth||this.el.offsetWidth}refreshSlides(){this.slides=k(`.swiper-slide`,this.wrapper)}initLoop(){let e=this.slides[0].cloneNode(!0),t=this.slides[this.slides.length-1].cloneNode(!0);e.setAttribute(`data-clone`,``),t.setAttribute(`data-clone`,``),this.wrapper.appendChild(e),this.wrapper.insertBefore(t,this.slides[0]),this.refreshSlides()}setupStyles(){this.wrapper.style.display=`flex`,this.wrapper.style.willChange=`transform`,this.slides.forEach(e=>{e.style.flexShrink=`0`,e.style.width=`${this.width}px`})}bindEvents(){this.cleanup.events.on(`touchstart`,this.wrapper,`touchstart`,e=>{e.touches[0]&&this.onStart(e.touches[0],e.target)},{passive:!0}),this.cleanup.events.on(`touchmove`,this.wrapper,`touchmove`,e=>{e.touches[0]&&this.onMove(e.touches[0],e)},{passive:!1}),this.cleanup.events.on(`touchend`,this.wrapper,`touchend`,e=>{e.changedTouches[0]&&this.pushLog(e.changedTouches[0]),this.onEnd()}),this.cleanup.events.on(`touchcancel`,this.wrapper,`touchcancel`,()=>{this.resetDrag(!0)}),this.cleanup.events.on(`window:touchcancel`,window,`touchcancel`,()=>{this.resetDrag(!0)}),this.cleanup.events.on(`mousedown`,this.wrapper,`mousedown`,e=>{e.button===0&&(this.onStart(e,e.target),this.wrapper.style.cursor=`grabbing`)}),this.cleanup.events.on(`mousemove`,this.wrapper,`mousemove`,e=>{e.buttons===1&&this.onMove(e,e)}),this.cleanup.events.on(`mouseup`,this.wrapper,`mouseup`,e=>{this.wrapper.style.cursor=`grab`,this.pushLog(e),this.onEnd()}),this.cleanup.events.on(`window:mouseup`,window,`mouseup`,e=>{this.touching&&(this.wrapper.style.cursor=`grab`,this.pushLog(e),this.onEnd())}),this.cleanup.events.on(`wrapper:mouseleave`,this.wrapper,`mouseleave`,()=>{this.touching&&(this.wrapper.style.cursor=`grab`,this.onEnd())}),this.cleanup.events.on(`click`,this.wrapper,`click`,e=>{!this.runtime.clickPrevented||!this.config.preventClick||(e.preventDefault(),e.stopPropagation(),this.runtime.clickPrevented=!1)},{capture:!0}),this.cleanup.events.on(`dragstart`,this.wrapper,`dragstart`,e=>e.preventDefault()),this.cleanup.events.on(`transitionend`,this.wrapper,`transitionend`,()=>this.onTransitionEnd()),this.cleanup.events.on(`root:mouseenter`,this.el,`mouseenter`,()=>this.pause()),this.cleanup.events.on(`root:mouseleave`,this.el,`mouseleave`,()=>this.resume())}onStart(e,t=null){this.animating||(this.logs=[],this.pushLog(e),this.runtime.startTarget=t,this.touching=!0,this.scrolling=!1,this.swiping=!1,this.runtime.clickPrevented=!1,this.pause(),this.wrapper.style.transition=`none`)}onMove(e,t){if(!this.touching||this.scrolling||this.animating)return;this.pushLog(e);let n=this.getOffset(),r=Math.abs(n.x),i=Math.abs(n.y);if(!(r<6&&i<6)){if(!this.swiping)if(Math.atan2(i,r)*180/Math.PI<this.config.touchAngle)this.swiping=!0,this.runtime.clickPrevented=ht(this.runtime.startTarget);else{this.scrolling=!0,this.resetDrag(!0);return}this.swiping&&(t.preventDefault(),this.transform=-this.index*this.width+n.x*this.config.touchRatio,this.render(!1))}}onEnd(){if(!this.touching)return;if(this.touching=!1,!this.swiping){this.resetDrag(!0);return}let e=this.getDuration(),t=this.getOffset().x,n=this.index;if(e>this.config.longSwipesMs){let e=Math.ceil(Math.abs(t)/this.width-this.config.longSwipesRatio);e>0&&(n=this.index+e*(t>0?-1:1))}else{let e=Math.abs(t)/this.width,r=e>=this.config.longSwipesRatio?Math.max(1,Math.ceil(e-this.config.longSwipesRatio)):0;r>0&&(n=t>0?this.index-r:this.index+r)}this.slideTo(n),this.logs=[],this.resume()}resetDrag(e=!0){let t=this.index===0?0:-this.index*this.width,n=e&&this.transform!==t;this.touching=!1,this.scrolling=!1,this.swiping=!1,this.logs=[],this.runtime.startTarget=null,this.transform=t,this.render(n),this.resume()}onTransitionEnd(){this.animating=!1,this.config.loop&&(this.index===0?(this.index=this.realCount,this.transform=-this.index*this.width,this.render(!1)):this.index===this.slides.length-1&&(this.index=1,this.transform=-this.index*this.width,this.render(!1))),this.updateControls()}pushLog(e){this.logs.push({x:e.pageX??e.clientX??0,y:e.pageY??e.clientY??0,time:Date.now()}),this.logs.length>5&&this.logs.shift()}getDuration(){return this.logs.length===0?0:this.logs[this.logs.length-1].time-this.logs[0].time}getOffset(){if(this.logs.length===0)return{x:0,y:0};let e=this.logs[0],t=this.logs[this.logs.length-1];return{x:t.x-e.x,y:t.y-e.y}}toRealIndex(e=this.index){return this.config.loop?e===0?this.realCount-1:e===this.slides.length-1?0:e-1:e}slideTo(e){if(this.animating)return;let t=e;this.config.loop?e<0?t=0:e>=this.slides.length&&(t=this.slides.length-1):t=Math.max(0,Math.min(e,this.slides.length-1)),this.index=t,this.transform=-t*this.width,this.render(!0),this.updateControls(),this.config.lazyload&&this.loadImages()}next(){this.animating||this.slideTo(this.index+1)}prev(){this.animating||this.slideTo(this.index-1)}render(e){e?(this.wrapper.style.transition=`transform ${this.config.speed}ms cubic-bezier(0.25, 0.46, 0.45, 0.94)`,this.animating=!0):(this.wrapper.style.transition=`none`,this.animating=!1),this.wrapper.style.transform=`translate3d(${this.transform}px, 0, 0)`}loadImages(){let e=[this.index];this.index>0&&e.push(this.index-1),this.index<this.slides.length-1&&e.push(this.index+1),e.forEach(e=>{let t=this.slides[e];if(!t)return;let n=O(`img[data-lazy]`,t);!n||n.src||(n.classList.add(`loading`),n.src=n.dataset.lazy,n.onload=()=>{n.classList.remove(`loading`),n.classList.add(`loaded`)},n.onerror=()=>{n.classList.remove(`loading`),n.classList.add(`error`)})})}initPagination(){this.pagination?this.pagination.classList.add(`is-horizontal`,`is-clickable`,`is-bullet`):(this.pagination=document.createElement(`div`),this.pagination.className=`swiper-pagination is-horizontal is-clickable is-bullet`,this.el.appendChild(this.pagination),this.dom.createdPagination=!0),this.pagination.textContent=``,this.bullets=[];for(let e=0;e<this.realCount;e++){let t=document.createElement(`span`);t.className=`swiper-pagination-indicator swiper-pagination-bullet`,t.setAttribute(`role`,`button`),t.setAttribute(`tabindex`,`0`),t.setAttribute(`aria-label`,`Go to slide ${e+1}`),this.cleanup.events.on(`bullet:${e}:click`,t,`click`,()=>{this.slideTo(this.config.loop?e+1:e)}),this.cleanup.events.on(`bullet:${e}:keydown`,t,`keydown`,t=>{t.key!==`Enter`&&t.key!==` `||(t.preventDefault(),this.slideTo(this.config.loop?e+1:e))}),this.bullets.push(t),this.pagination.appendChild(t)}}initNavigation(){this.prevButton=this.ensureNavigation(`prev`,`arrow-left`),this.nextButton=this.ensureNavigation(`next`,`arrow-right`),this.cleanup.events.on(`nav:prev`,this.prevButton,`click`,()=>this.prev()),this.cleanup.events.on(`nav:next`,this.nextButton,`click`,()=>this.next())}ensureNavigation(e,t){let n=e===`prev`?`createdPrevButton`:`createdNextButton`,r=`swiper-navigation is-${e}`,i=O(`.swiper-navigation.is-${e}`,this.el);return i?i.matches(`button`)||(i.setAttribute(`role`,`button`),i.setAttribute(`tabindex`,`0`),i.classList.add(`swiper-navigation`,`is-${e}`)):(i=document.createElement(`button`),i.type=`button`,i.className=r,this.el.appendChild(i),this.dom[n]=!0),i.setAttribute(`aria-label`,e===`prev`?`Previous slide`:`Next slide`),i.querySelector(`svg`)||(i.textContent=``,i.appendChild(I(t))),i}updateControls(){this.updatePagination(),this.updateNavigation()}updatePagination(){if(!this.bullets.length)return;let e=this.toRealIndex();this.bullets.forEach((t,n)=>{let r=n===e;t.classList.toggle(`is-active`,r),t.classList.toggle(`active`,r),t.setAttribute(`aria-current`,r?`true`:`false`)})}updateNavigation(){if(this.config.loop)return;let e=this.index<=0,t=this.index>=this.slides.length-1;this.prevButton&&(this.prevButton.classList.toggle(`is-disabled`,e),this.prevButton.toggleAttribute(`disabled`,e)),this.nextButton&&(this.nextButton.classList.toggle(`is-disabled`,t),this.nextButton.toggleAttribute(`disabled`,t))}play(){this.timer||(this.timer=setInterval(()=>this.next(),this.config.delay))}pause(){this.timer&&(clearInterval(this.timer),this.timer=null)}resume(){this.config.autoplay&&!this.timer&&this.play()}update(){this.updateSize(),this.setupStyles(),this.transform=-this.index*this.width,this.render(!1),this.updateControls()}destroy(){this.runtime?.destroyed||(this.runtime.destroyed=!0,this.pause(),this.cleanup.events.clear(),k(`[data-clone]`,this.wrapper).forEach(e=>e.remove()),this.dom.createdPagination&&this.pagination?.remove(),this.dom.createdPrevButton&&this.prevButton?.remove(),this.dom.createdNextButton&&this.nextButton?.remove(),this.dom.createdRoot&&this.el?.remove(),this.dom={root:null,wrapper:null,slides:[],pagination:null,prevButton:null,nextButton:null,bullets:[],createdRoot:!1,createdSlides:!1,mountTarget:null},this.runtime={destroyed:!0},this.settings=null)}};const _t={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():y():e??y()},direction:{default:`top`,type:`string`,enum:[`top`,`bottom`,`left`,`right`]},active:{default:0,types:[`number`,`string`]},disabled:{default:[],types:[`number`,`string`,`array`]},onChange:{default:null,types:[`function`,`null`]},tabs:{default:[],type:`array`},onAdd:{default:null,types:[`function`,`null`]},onRemove:{default:null,types:[`function`,`null`]}},vt={type:`object`,validate:e=>!!e&&E(e.title)&&E(e.content),message:`expects an object with renderable title and content: string, Node, array, function or null.`};var yt=class{constructor(e,t={}){if(!C())throw Error(`Tabs: DOM render environment is required.`);if(e!==!1&&!T(e))throw Error(`Tabs: element expects a valid HTMLElement or false.`);this.options=v(t,_t,`Tabs.options`),this._dynamic=e===!1,this._init(e)}_init(e){this.root=e,this.current=null,this.cleanup={events:M()},this._disabledIndex=[],this._destroyed=!1;let{tabs:t,disabled:n,active:r}=this.options;if(this.root===!1&&(this.root=this._buildRoot(t)),this.tabs.length===0||this.panels.length===0)throw Error(`.tab-item or .panel-item not found.`);this._disabledIndex=this._parseDisabled(n),this._markDisabledTabs(),this._bindEvents(),this._activate(r,!1),this._initDrag()}get tabs(){return this.root?k(`.tab-item`,this.root):[]}get panels(){return this.root?k(`.panel-item`,this.root):[]}get _dragContainer(){return this.root?O(`.tab-wrap`,this.root):null}get _dragInner(){return this.root?O(`.tab-list`,this.root):null}_buildRoot(e){let{id:t,direction:n}=this.options;for(let t of e)_(`tab`,t,vt,`Tabs.options.tabs`);let r=i(`nav`,{className:`tab-list`}),a=i(`div`,{className:`tab-wrap`,children:r}),o=i(`div`,{className:`tab-panel`});for(let t of e){let e=this._createTab(t);r.appendChild(e);let n=this._createPanel(t);o.appendChild(n)}return i(`div`,{className:`j-tabs is-${n}`,id:t,children:[a,o]})}_createTab(e){let t=i(`div`,{className:`tab-item`,"data-tab":e.name||y()}),n=i(`span`);return n.append(...D(e.title,{tabs:this,item:e})),t.appendChild(n),t}_createPanel(e){let t=i(`div`,{className:`panel-item`}),n=i(`div`);return n.append(...D(e.content,{tabs:this,item:e})),t.appendChild(n),t}_parseDisabled(e){if(e==null)return[];let t=e=>typeof e==`number`?e:typeof e==`string`?this.tabs.findIndex(t=>t.dataset.tab===e):-1;if(Array.isArray(e))return e.map(t).filter(e=>e>=0);{let n=t(e);return n>=0?[n]:[]}}_markDisabledTabs(){for(let[e,t]of this.tabs.entries())this._disabledIndex.includes(e)?(t.setAttribute(`disabled`,`true`),t.classList.add(`is-disabled`)):(t.removeAttribute(`disabled`),t.classList.remove(`is-disabled`))}_bindEvents(){this._unbindEvents(),this._dragInner&&this.cleanup.events.on(`tabClick`,this._dragInner,`click`,e=>{let t=e.target.closest(`.tab-item`);if(!t||!this.tabs.includes(t))return;let n=this.tabs.indexOf(t);n>=0&&!this._disabledIndex.includes(n)&&this.activate(n)})}_unbindEvents(){this.cleanup.events.off(`tabClick`)}async _activate(e,t=!0){let{onChange:n}=this.options,r=this._getIndex(e);if(!(r<0||r>=this.tabs.length||this._disabledIndex.includes(r)||this.current===r)){this.current=r;for(let[e,t]of this.tabs.entries())t.classList.toggle(`is-active`,e===r);for(let[e,t]of this.panels.entries())t.classList.toggle(`is-active`,e===r);if(t&&n){let e=this.tabs[r],t=this.panels[r],i=e&&e.dataset.tab||r;await Promise.resolve(n(r,i,e,t))}}}_getIndex(e){return typeof e==`number`?e:typeof e==`string`?this.tabs.findIndex(t=>t.dataset.tab===e):-1}_initDrag(){let{direction:e}=this.options;if(!(!this._dragContainer||!this._dragInner)){if(this.isVertical=e===`left`||e===`right`,this.draggable=this._draggable(),!this.draggable){this._removeDragEvents();return}this._bindDragEvents(),this.cleanup.events.on(`resize`,window,`resize`,()=>{cancelAnimationFrame(this._resizeRaf),this._resizeRaf=requestAnimationFrame(()=>{this._refreshDrag()})})}}_draggable(){return this.isVertical?this._dragInner.scrollHeight>this._dragContainer.clientHeight+5:this._dragInner.scrollWidth>this._dragContainer.clientWidth+5}_bindDragEvents(){this._removeDragEvents();let e=this._dragContainer,t=this._dragInner,n=this.isVertical,r=0,i=0,a=0,o=!1,s=e=>n?e.touches?e.touches[0].pageY:e.pageY:e.touches?e.touches[0].pageX:e.pageX,c=o=>{this.isDragging=!0,t.classList.add(`dragging`),r=s(o),a=r,i=n?e.scrollTop:e.scrollLeft,this._velocity=0,cancelAnimationFrame(this.raf)},l=t=>{if(!this.isDragging)return;t.preventDefault();let c=s(t),l=r-c;this._velocity=a-c,a=c,o||(o=!0,requestAnimationFrame(()=>{o=!1,n?e.scrollTop=i+l:e.scrollLeft=i+l}))},u=()=>{this.isDragging&&(this.isDragging=!1,t.classList.remove(`dragging`),this._startInertiaScroll())};this.cleanup.events.on(`drag:mousedown`,t,`mousedown`,c),this.cleanup.events.on(`drag:touchstart`,t,`touchstart`,c,{passive:!0}),this.cleanup.events.on(`drag:mousemove`,window,`mousemove`,l,{passive:!1}),this.cleanup.events.on(`drag:touchmove`,window,`touchmove`,l,{passive:!1}),this.cleanup.events.on(`drag:mouseup`,window,`mouseup`,u),this.cleanup.events.on(`drag:touchend`,window,`touchend`,u)}_startInertiaScroll(){let e=this._dragContainer,t=this._velocity,n=this.isVertical,r=performance.now(),i=a=>{let o=a-r;r=a,t*=.92,!(Math.abs(t)<.3)&&(n?e.scrollTop+=t*o*.05:e.scrollLeft+=t*o*.05,this.raf=requestAnimationFrame(i))};this.raf=requestAnimationFrame(i)}_removeDragEvents(){this.cleanup.events.off(`drag:mousedown`),this.cleanup.events.off(`drag:touchstart`),this.cleanup.events.off(`drag:mousemove`),this.cleanup.events.off(`drag:touchmove`),this.cleanup.events.off(`drag:mouseup`),this.cleanup.events.off(`drag:touchend`)}_refreshDrag(){this._initDrag()}async activate(e){await this._activate(e,!0)}async reInit(e={}){this.options=v({...this.options,...e},_t,`Tabs.options`);let{disabled:t,active:n}=this.options;this._disabledIndex=this._parseDisabled(t),this._markDisabledTabs(),this._bindEvents(),await this._activate(n,!1),this._refreshDrag()}async addTab(e){_(`tabConfig`,e,vt,`Tabs.addTab`);let{title:t,name:n,content:r}=e,i=O(`.tab-panel`,this.root);e.name=n||y();let a=this._createTab(e);this._dragInner&&this._dragInner.appendChild(a);let o=this._createPanel({title:t,name:n,content:r});i.appendChild(o),this._markDisabledTabs(),this._bindEvents();let{onAdd:s}=this.options;s&&await Promise.resolve(s(this.tabs.length-1,e,a,o)),this._refreshDrag()}async deleteTab(e){if(this.tabs.length<=1)return;let t=this._getIndex(e);if(t<0||t>=this.tabs.length)return;let n=this.tabs[t],r=this.panels[t],i=n.dataset.tab||t;n&&n.parentNode&&n.parentNode.removeChild(n),r&&r.parentNode&&r.parentNode.removeChild(r),this._markDisabledTabs(),this._bindEvents();let{onRemove:a}=this.options;a&&await Promise.resolve(a(t,i)),n.classList.contains(`is-active`)&&await this._activate(this.tabs.length-1,!1),this._refreshDrag()}disableTab(e){let t=this._getIndex(e);t>=0&&!this._disabledIndex.includes(t)&&(this._disabledIndex.push(t),this._markDisabledTabs(),this._bindEvents())}enableTab(e){let t=this._getIndex(e),n=this._disabledIndex.indexOf(t);n>=0&&(this._disabledIndex.splice(n,1),this._markDisabledTabs(),this._bindEvents())}destroy(){if(this._destroyed)return;let e=this.root,t=this._dynamic;this._destroyed=!0,this._unbindEvents(),this._removeDragEvents(),cancelAnimationFrame(this.raf),cancelAnimationFrame(this._resizeRaf);for(let e of this.tabs)e.classList.remove(`is-active`,`is-disabled`),e.removeAttribute(`disabled`);for(let e of this.panels)e.classList.remove(`is-active`);this.cleanup.events.off(`resize`),t&&e?.parentNode&&e.parentNode.removeChild(e),this.root=null,this.options={},this.isVertical=!1,this.cleanup.events.clear(),this.cleanup=null}},bt={en:{b:`Back`,t:`Customize`,d:`Customize your UI experience.`,theme:`Theme`,radius:`Radius`,shadow:`Shadow`,font:`Font`,mode:`Mode`,gray:`Gray`,olive:`Olive`,tomato:`Tomato`,ruby:`Ruby`,pink:`Pink`,violet:`Violet`,indigo:`Indigo`,blue:`Blue`,teal:`Teal`,grass:`Grass`,mint:`Mint`,lime:`Lime`,yellow:`Yellow`,orange:`Orange`,gold:`Gold`,n:`None`,sm:`Small`,md:`Medium`,lg:`Large`,xl:`XL`,round:`Round`,light:`Light`,dark:`Dark`,auto:`Auto`},zh:{b:`返回`,t:`自定义主题`,d:`自定义您的UI体验。`,theme:`主题`,radius:`圆角`,shadow:`阴影`,font:`字号`,mode:`模式`,gray:`灰色`,olive:`橄榄绿`,tomato:`番茄红`,ruby:`红宝石`,pink:`粉红`,violet:`紫罗兰`,indigo:`靛蓝`,blue:`蓝色`,teal:`青色`,grass:`草绿`,mint:`薄荷绿`,lime:`酸橙绿`,yellow:`黄色`,orange:`橙色`,gold:`金色`,n:`无`,sm:`小`,md:`中`,lg:`大`,xl:`更大`,round:`圆角`,light:`浅色`,dark:`深色`,auto:`自动`}},xt=class{constructor(e={}){if(!C())throw Error(`Theme: DOM render environment is required.`);this.options={mode:`dark`,render:`dark`,theme:`indigo`,radius:`sm`,shadow:`sm`,font:`sm`,key:`jui-theme`,...e},this.languages=bt,this._init()}_init(){this.cleanup={events:M()},this._destroyed=!1,this.mq=window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`),this._loadConfig(),this._applyConfig(),this._bindEvent(),this._syncActiveButtons(document)}_t(e){return c(e,this.languages)}_loadConfig(){try{let e=N(this.options.key);e&&e.trim()&&(this.options=Object.assign({},this.options,JSON.parse(e)))}catch{}}_saveConfig(){let e=this.mq&&this.mq.matches?`dark`:`light`;this.options.render=this.options.mode===`auto`?e:this.options.mode;let t=JSON.stringify(this.options);Se(this.options.key,t)}_removePrefixedClasses(){let e=[],t=document.documentElement;for(let n of t.classList)(n===`light`||n===`dark`)&&e.push(n),(n.startsWith(`j-theme-`)||n.startsWith(`j-radius-`)||n.startsWith(`j-shadow-`)||n.startsWith(`j-font-`))&&e.push(n);e.length&&t.classList.remove(...e)}_applyMqClass(){let e=document.documentElement,{mode:t}=this.options;if(t===`auto`){let t=this.mq&&this.mq.matches?`dark`:`light`;e.classList.remove(`light`,`dark`),e.classList.add(t)}else e.classList.remove(`light`,`dark`),e.classList.add(t===`dark`?`dark`:`light`)}_applyConfig(){let{theme:e,radius:t,shadow:n,font:r}=this.options;this._removePrefixedClasses(),this._applyMqClass(),document.documentElement.classList.add(`j-theme-${e}`,`j-radius-${t}`,`j-shadow-${n}`,`j-font-${r}`)}_syncActiveButtons(e=document){let t=k(`.palette-item`,e);for(let e of t){let t=e.dataset.palette,n=this.options[t],r=k(`button[data-palette]`,e);for(let e of r){let t=e.dataset.palette===(n===void 0?null:n);e.classList.toggle(`is-active`,t)}}}_bindEvent(){this.cleanup.events.on(`palette`,document.body,`click`,e=>{let t=e.target.closest(`.palette-item .items > button[data-palette]`);if(!t)return;let n=t.closest(`.palette-item`);if(!n)return;let r=n.dataset.palette,i=t.dataset.palette;t.classList.contains(`is-active`)||(this.options[r]=i,this._applyConfig(),this._saveConfig(),this._syncActiveButtons())})}_unbindEvent(){this.cleanup?.events.clear()}createPanel(e=`j-theme-palette`,t=null){let n=t||[{title:this._t(`theme`),type:`theme`,buttons:[[`gray`,this._t(`gray`)],[`olive`,this._t(`olive`)],[`tomato`,this._t(`tomato`)],[`ruby`,this._t(`ruby`)],[`pink`,this._t(`pink`)],[`violet`,this._t(`violet`)],[`indigo`,this._t(`indigo`)],[`blue`,this._t(`blue`)],[`teal`,this._t(`teal`)],[`grass`,this._t(`grass`)],[`mint`,this._t(`mint`)],[`lime`,this._t(`lime`)],[`yellow`,this._t(`yellow`)],[`orange`,this._t(`orange`)],[`gold`,this._t(`gold`)]]},{title:this._t(`radius`),type:`radius`,buttons:[[`none`,this._t(`n`)],[`sm`,this._t(`sm`)],[`md`,this._t(`md`)],[`lg`,this._t(`lg`)],[`xl`,this._t(`xl`)],[`round`,this._t(`round`)]]},{title:this._t(`shadow`),type:`shadow`,buttons:[[`none`,this._t(`n`)],[`sm`,this._t(`sm`)],[`md`,this._t(`md`)],[`lg`,this._t(`lg`)]]},{title:this._t(`font`),type:`font`,buttons:[[`sm`,this._t(`sm`)],[`md`,this._t(`md`)]]},{title:this._t(`mode`),type:`mode`,buttons:[[`light`,this._t(`light`)],[`dark`,this._t(`dark`)],[`auto`,this._t(`auto`)]]}];return i(`div`,{className:e,children:[i(`div`,{style:{display:`flex`,justifyContent:`center`},children:i(`button`,{className:`j-button is-text`,"data-action":`close`,children:this._t(`b`)})}),i(`h3`,{children:this._t(`t`)}),i(`p`,{style:{marginTop:0,fontSize:`var(--text-sm, 0.875rem)`},children:this._t(`d`)}),i(`div`,{className:`palette-container`,children:n.map(e=>i(`div`,{className:`palette-item`,"data-palette":e.type,children:[i(`div`,{className:`item-title`,children:e.title}),i(`div`,{className:`items`,children:e.buttons.map(([t,n])=>i(`button`,{className:`j-button is-default${String(this.options[e.type])===String(t)?` is-active`:``}`,"data-palette":t,children:[e.type===`theme`?i(`span`,{className:`el-prefix item-hex`,style:{backgroundColor:`var(--${t}-10)`}}):null,i(`span`,{className:`button-text`,children:n})]}))})]}))})]})}setConfig(e){this.options=Object.assign({},this.options,e),this._applyConfig(),this._saveConfig(),this._syncActiveButtons(document)}destroy(){this._destroyed||(this._destroyed=!0,this._unbindEvent(),this.options={},this.languages={},this.cleanup=null,this.mq=null)}};function Q(e){"@babel/helpers - typeof";return Q=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Q(e)}function St(e,t){if(Q(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Q(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Ct(e){var t=St(e,`string`);return Q(t)==`symbol`?t:t+``}function wt(e,t,n){return(t=Ct(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Tt={type:`string`,enum:[`info`,`success`,`warning`,`error`,`primary`]},Et={type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},Dt={type:`number`,validate:e=>e>0,message:`expects a number greater than 0.`};var $=class e{_z(){}static show(t=``,n=3e3,r=`info`){if(!C())throw Error(`Toast: DOM render environment is required.`);Ot(t,n,r);let a=O(`.j-toast-container`);a||(a=i(`div`,{className:`j-toast-container`}),document.body.appendChild(a));let o=I(r===`primary`?`info`:r),s=i(`div`,{className:`j-toast is-${r}`,"data-toast":y(),children:[i(`span`,{className:`toast-icon`,children:o}),i(`span`,{className:`toast-message`,children:t})]});a.appendChild(s),e._setTimer(()=>{s.classList.add(`toast-show`)},10),n>0&&e._setTimer(()=>{e.hide(s)},n);let c=j(s,`click`,()=>{e.hide(s)});return e.disposers.set(s,c),s}static success(t=``,n=3e3){return e.show(t,n,`success`)}static info(t=``,n=3e3){return e.show(t,n,`info`)}static primary(t=``,n=3e3){return e.show(t,n,`primary`)}static warning(t=``,n=3e3){return e.show(t,n,`warning`)}static error(t=``,n=3e3){return e.show(t,n,`error`)}static hide(t){t&&(e.disposers.get(t)?.(),e.disposers.delete(t),t.classList.remove(`toast-show`),t.classList.add(`toast-hide`),e._setTimer(()=>{t.parentNode&&t.parentNode.removeChild(t);let e=O(`.j-toast-container`);e&&e.children.length===0&&e.parentNode.removeChild(e)},300))}static lite(t=``,n=2e3){if(!C())throw Error(`Toast: DOM render environment is required.`);_(`message`,t,`string`,`Toast.lite`),_(`duration`,n,Dt,`Toast.lite`);let r=O(`.j-toast-lite`);r&&r.remove();let a=i(`div`,{className:`j-toast-lite`,children:t});return document.body.appendChild(a),e._setTimer(()=>a.classList.add(`is-shown`),10),e._setTimer(()=>{a.classList.remove(`is-shown`),a.classList.add(`is-hidden`),e._setTimer(()=>a.remove(),300)},n),a}static _setTimer(t,n){let r=setTimeout(()=>{e.timers.delete(r),t()},n);return e.timers.add(r),r}static clearAll(){for(let t of e.timers)clearTimeout(t);e.timers.clear();for(let t of e.disposers.values())t();e.disposers.clear(),O(`.j-toast-container`)?.remove(),O(`.j-toast-lite`)?.remove()}static destroyAll(){e.clearAll()}};wt($,`timers`,new Set),wt($,`disposers`,new Map);function Ot(e,t,n){_(`message`,e,`string`,`Toast.show`),_(`duration`,t,Et,`Toast.show`),_(`type`,n,Tt,`Toast.show`)}const kt={name:{default:null,types:[`string`,`null`]},mode:{default:`hover`,type:`string`},position:{default:`auto`,type:`string`},offset:{default:8,type:`number`},message:{default:``,type:`string`,normalize:e=>String(e||``).trim(),validate:e=>e.length>0,message:`expects a non-empty string.`},className:{default:null,types:[`string`,`null`]},id:{default:null,types:[`string`,`null`]},delay:{default:100,types:[`number`,`object`]},hoverIntent:{default:!0,type:`boolean`}};var At=class{constructor(e,t={}){if(!C())throw Error(`Tooltip: DOM render environment is required.`);if(!T(e))throw Error(`Tooltip: element expects a valid HTMLElement.`);let n=v(t,kt,`Tooltip.options`),r=this._buildTooltipContainer(n);this.options=n,this._destroyed=!1,this.drop=new B(e,{name:n.name,mode:n.mode,position:n.position,offset:n.offset,content:r,className:n.className,id:n.id,delay:n.delay,hoverIntent:n.hoverIntent})}_buildTooltipContainer(e){let t=i(`div`,{className:`tooltip-message`,children:e.message});return i(`div`,{className:e.className?`j-tooltip ${e.className}`:`j-tooltip`,children:t})}show(e=!0){this.drop.show(e)}hide(e=!0){this.drop.hide(e)}toggle(){this.drop.toggle()}destroy(){this._destroyed||(this._destroyed=!0,this.drop?.destroy(),this.drop=null,this.options=null)}};const jt={rules:{default:{},type:`object`},messages:{default:{},type:`object`},onSubmit:{default:null,types:[`function`,`null`]}};var Mt=class{constructor(e,t={},n=!1){if(!C())throw Error(`Validator: DOM render environment is required.`);this.options=v(t,jt,`Validator.options`),this._validateOptions(e,this.options,n),this._init(e),n&&this._bindEvents()}_validateOptions(e,t,n){_(`element`,e,[`HTMLElement`,`string`],`Validator`),_(`bindEvents`,n,`boolean`,`Validator`)}_init(e){if(this.root=A(e,`Validator.element`),!this.root)throw Error(`Validator: element not found.`);this.valid=!0,this.cleanup={events:M()},this._destroyed=!1}_bindEvents(){this._unbindEvents(),this.cleanup.events.on(`submit`,this.root,`submit`,e=>{e.preventDefault(),this.validate()}),this.cleanup.events.on(`reset`,this.root,`reset`,()=>{this.reset()})}_unbindEvents(){this.cleanup?.events.clear()}validate(){this.valid=!0;for(let e of this.root.elements){let t=e.name;if(this.options.rules[t]&&(this.valid=this._validateRule(e,t),!this.valid))break}return this.valid&&this.options.onSubmit&&this.options.onSubmit(),this.valid}_validateRule(e,t){let n=this.options.rules[t];if(e.hasAttribute(`required`)||e.hasAttribute(`minlength`)||e.hasAttribute(`maxlength`)||e.hasAttribute(`pattern`)||e.hasAttribute(`min`)||e.hasAttribute(`max`)||e.hasAttribute(`step`))return this.valid;for(let r in n){switch(r){case`required`:this.valid=this._validateRequired(e,n[r]);break;case`minLength`:this.valid=this._validateMinLength(e,n[r]);break;case`maxLength`:this.valid=this._validateMaxLength(e,n[r]);break;case`equalTo`:this.valid=this._validateEqualTo(e,n[r]);break;case`email`:this.valid=this._validateEmail(e);break;case`checked`:this.valid=this._validateCheck(e,n[r]);break;case`selected`:this.valid=this._validateSelected(e,n[r]);break;case`noSpace`:this.valid=this._validateNoSpace(e,n[r]);break;case`noChinese`:this.valid=!/[\u4e00-\u9fa5]/.test(e.value);break;case`noSpecial`:this.valid=!/[@#$%^&*]+/g.test(e.value);break;case`pattern`:this.valid=new RegExp(n[r]).test(e.value);break}if(this.valid)this._success(e);else{this._errorMsg(e,t,r);break}}return this.valid}_validateRequired(e,t){return e.value.trim().length>=1&&t===!0}_validateMinLength(e,t){return e.value.length>=t}_validateMaxLength(e,t){return e.value.length<=t}_validateEmail(e){return/^([\w-.]+@([\w-]+\.)+[\w-]{2,4})?$/.test(e.value)}_validateEqualTo(e,t){let n=this.root.elements[t];if(n==null)throw Error(`Validator: target element "${t}" not found.`);return e.value===n.value}_validateCheck(e,t){if(e.type!==`checkbox`)throw Error(`Validator: element expects a checkbox input, but ${e.type} given.`);return e.checked===t}_validateSelected(e,t){if(e.tagName!==`SELECT`)throw Error(`Validator: element expects a select element, but ${e.tagName.toLowerCase()} given.`);return t===!0?Array.from(e.selectedOptions).map(e=>e.value.trim()).some(e=>e.length>0):!0}_validateNoSpace(e,t){return!/\s/.test(e.value)||t!==!0}_errorMsg(e,t,n){e.type!==`checkbox`&&(e.classList.remove(`is-valid`),e.classList.add(`is-invalid`));let r=this.options.messages[t]&&this.options.messages[t][n];if(r){this.message=r;let t=e.closest(`.form-control`),n=t?O(`.help-block`,t):null;n||(n=i(`div`,{className:`help-block is-invalid`,children:r}),t.appendChild(n))}}_success(e){this.message=``;let t=e.closest(`.form-control`),n=t?O(`.help-block`,t):null;n&&t.removeChild(n),e.type!==`checkbox`&&(e.classList.remove(`is-invalid`),e.classList.add(`is-valid`))}reset(){this.root.reset();for(let e of this.root.elements)e.classList.remove(`is-valid`),e.classList.remove(`is-invalid`);let e=k(`.help-block`,this.root);for(let t of e)t.remove();this.valid=!0,this.message=``}destroy(){this._destroyed||(this._destroyed=!0,this._unbindEvents(),this.reset(),this.root=null,this.options=null,this.message=null,this.valid=null,this.cleanup?.events.clear(),this.cleanup=null)}};export{je as Accordion,B as Drop,Ue as Flow,qe as Menu,ct as Modal,ut as Offcanvas,ft as Parabola,gt as Swiper,yt as Tabs,xt as Theme,$ as Toast,At as Tooltip,Mt as Validator,De as addIcons,k as all,C as canRenderDOM,S as canUseDOM,u as copy,M as createEventManager,We as createFlow,fe as destroyAll,N as getCookie,A as getEl,Ee as getIcons,m as getType,I as icon,L as iconHtml,Te as iconMarkup,ee as isClass,T as isElement,h as isFunction,l as isMobile,w as isNode,E as isRenderableContent,j as listen,D as normalizeContentNodes,be as postJson,O as q,y as randomId,de as release,Ce as removeCookie,v as resolveOptions,xe as restUrl,pe as service,Se as setCookie,le as singleton,p as timer,ye as unlisten,ce as uuid,ie as validate,se as validateOptions,_ as validateParam};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("vanilla-signal"),require("vanilla-signal-i18n")):typeof define==`function`&&define.amd?define([`exports`,`vanilla-signal`,`vanilla-signal-i18n`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.jui={},e.vanillaSignal,e.vanillaSignalI18n))})(this,function(e,t,n){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function r(){if(navigator.userAgentData&&typeof navigator.userAgentData.mobile==`boolean`)return navigator.userAgentData.mobile;let e=navigator.userAgent||navigator.vendor||window.opera,t=/Android|iPhone|iPad|iPod|Mobile|Windows Phone|webOS|BlackBerry|IEMobile|Opera Mini/i.test(e),n=/iPad|Android(?!.*Mobile)|Tablet/i.test(e),r=`maxTouchPoints`in navigator?navigator.maxTouchPoints>0:`ontouchstart`in window,i=Math.min(window.screen.width,window.screen.height)<=768;if(t&&!n){if(/iPhone|iPod|Windows Phone|webOS|BlackBerry|IEMobile|Opera Mini/i.test(e))return!0;if(/Android/i.test(e))return i||r}return/Macintosh|MacIntel/i.test(e)&&r&&i}async function i(e){if(typeof window>`u`||typeof document>`u`)return Promise.resolve(!1);let t=typeof e==`string`?e:String(e);return navigator.clipboard&&typeof navigator.clipboard.writeText==`function`?navigator.clipboard.writeText(t).then(()=>!0).catch(()=>a(t)):Promise.resolve(a(t))}function a(e){let t=null;try{return t=document.createElement(`textarea`),t.value=e,t.setAttribute(`readonly`,``),t.style.position=`absolute`,t.style.left=`-9999px`,t.style.opacity=`0`,document.body.appendChild(t),t.select(),t.setSelectionRange(0,e.length),!!document.execCommand(`copy`)}catch{return!1}finally{t&&t.parentNode&&t.parentNode.removeChild(t)}}let o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s={timers:{},start(e,t,n){this.timers[e]&&clearTimeout(this.timers[e]),this.timers[e]=setTimeout(()=>{n(),delete this.timers[e]},t)},cancel(e){this.timers[e]&&(clearTimeout(this.timers[e]),delete this.timers[e])}},c=e=>e===null?`null`:Array.isArray(e)?`array`:typeof HTMLElement<`u`&&e instanceof HTMLElement?`HTMLElement`:typeof Node<`u`&&e instanceof Node?`Node`:typeof e,l=e=>typeof e==`function`&&e.prototype!==null&&e.prototype.constructor===e,u=e=>typeof e==`function`&&/^class\s/.test(Function.prototype.toString.call(e));function d(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function f(e){return Array.isArray(e)?e.slice():d(e)?{...e}:e}function p(e={}){return typeof e==`string`||Array.isArray(e)?{type:e}:!e||typeof e!=`object`?{}:e}function m(e,t,n=[]){let r=Array.isArray(n)?n:n?[n]:[];for(let n of r){let r,i;if(typeof n==`function`)r=n,i=`does not satisfy the required condition.`;else if(n&&typeof n.test==`function`)r=n.test,i=n.message||`condition failed.`;else throw Error(`Validator: Condition must be a function or { test, message }.`);if(!r(t))throw Error(`Validator: ${e} ${i}`)}}let h=(e,t,n,r=[])=>{let i=Array.isArray(n)?n:[n],a=c(t);if(!i.some(e=>e===a)){let t=i.join(`, `);throw Error(`Validator: ${e} expects ${t}, but got ${a}.`)}return m(e,t,r),t};function ee(e,t){return e?`${e}.${t}`:t}function te(e){if(o(e,`default`))return f(e.factory&&typeof e.default==`function`?e.default():e.default)}function g(e,t,n={},r=``,i={}){let a=p(n),s=ee(r,e),c=o(a,`types`)?a.types:a.type;if(a.required&&t==null)throw Error(`Validator: ${s} is required.`);if(c===void 0?m(s,t,a.conditions):h(s,t,c,a.conditions),Array.isArray(a.enum)&&!a.enum.includes(t))throw Error(`Validator: ${s} expects one of ${a.enum.join(`, `)}.`);if(typeof a.validate==`function`&&!a.validate(t,{...i,name:e,value:t,namespace:r}))throw Error(`Validator: ${s} ${a.message||`does not satisfy the required condition.`}`);return t}function ne(e,t,n=`Options`){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Validator: ${n} expects object.`);for(let[r,i]of Object.entries(t||{}))g(r,e[r],i,n,{key:r,options:e,schema:t});return e}function _(e={},t={},n=`Options`){let r=e??{};if(typeof r!=`object`||Array.isArray(r))throw Error(`Validator: ${n} expects object.`);let i={...r},a=Object.entries(t||{});for(let[e,t]of a){let n=p(t);i[e]=o(r,e)?r[e]:te(n)}for(let[e,n]of a){let a=p(n);typeof a.normalize==`function`&&(i[e]=a.normalize(i[e],{key:e,input:r,options:i,schema:t}))}return ne(i,t,n)}function re(){if(typeof crypto.randomUUID==`function`)return crypto.randomUUID();let e=new Uint8Array(16);if(typeof crypto.getRandomValues!=`function`)throw Error(`Your browser is too old to support secure login.`);crypto.getRandomValues(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e).map(e=>e.toString(16).padStart(2,`0`)).join(``);return[t.slice(0,8),t.slice(8,12),t.slice(12,16),t.slice(16,20),t.slice(20,32)].join(`-`)}function v(e=8){if(!Number.isInteger(e)||e<1||e>32)throw Error(`Length must be an integer between 1 and 32`);let t=new Uint8Array(e);crypto.getRandomValues(t);let n=``;for(let r=0;r<e;r++)n+=`abcdefghijkmnpqrstuvwxyz23456789`[t[r]&31];return n}let y=new Map,b=new Map,ie=(e,t=[],n=``,r=!1,i=null)=>{if(!l(e))throw Error(`First argument expects a class/constructor function.`);if(!Array.isArray(t))throw Error(`Second argument must be an array of arguments.`);if(typeof n!=`string`)throw Error(`Third argument expects a string.`);if(typeof r!=`boolean`)throw Error(`Fourth argument expects a boolean.`);if(typeof i!=`number`&&i!==null)throw Error(`Fifth argument expects a number or null.`);let a=n.trim()===``?v():n;if(y.has(a)&&!r)return y.get(a).proxy;let o=new e(...t),s=new Proxy(o,{get(e,t,n){return i&&ae(a,i),Reflect.get(e,t,n)},set(e,t,n,r){return Reflect.set(e,t,n,r)}});return y.set(a,{instance:o,proxy:s}),s};function ae(e,t){b.has(e)&&clearTimeout(b.get(e));let n=setTimeout(()=>{oe(e)},t);b.set(e,n)}function oe(e){if(y.has(e)){let{instance:t}=y.get(e);if(typeof t.destroy==`function`)try{t.destroy()}catch{throw Error(`release(): destroy() failed on instance with key "${e}".`)}y.delete(e)}b.has(e)&&(clearTimeout(b.get(e)),b.delete(e))}function se(){for(let{instance:e}of y.values())if(typeof e.destroy==`function`)try{e.destroy()}catch{}y.clear();for(let e of b.values())clearTimeout(e);b.clear()}let ce={instances:new Map,get(e,t){return this.instances.has(e)||this.instances.set(e,t()),this.instances.get(e)},destroy(e){if(this.instances.has(e)){let t=this.instances.get(e);t.destroy&&t.destroy(),this.instances.delete(e)}},destroyAll(){for(let e of this.instances.values())e.destroy&&e.destroy();this.instances.clear()}};function x(){return typeof document<`u`}function S(){return!x()||typeof document.createElement!=`function`?!1:typeof document.createElement(`div`).insertBefore==`function`}function C(e){return x()&&typeof Node<`u`&&e instanceof Node}function w(e){return typeof Element<`u`&&e instanceof Element}function T(e){return e==null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`||typeof e==`function`||Array.isArray(e)||C(e)}function E(e,t){let n=typeof e==`function`?e(t):e;if(n==null||n===!1||n===!0)return[];if(Array.isArray(n))return n.flatMap(e=>E(e,t));if(C(n))return[n];if(typeof n==`string`){let e=document.createElement(`template`);return e.innerHTML=n,Array.from(e.content.childNodes)}return[document.createTextNode(String(n))]}function D(e,t=document){return t.querySelector(e)}function O(e,t=document){return Array.from(t.querySelectorAll(e))}function k(e,t=`getEl`){if(typeof Element<`u`&&e instanceof Element)return e;if(typeof e==`string`)return D(e);if(e===!1||e==null)return null;throw Error(`${t}: expects Element or string.`)}let le=()=>{};function ue(e){return!!e&&typeof e.addEventListener==`function`&&typeof e.removeEventListener==`function`}function de(e,t){if(!ue(e))throw TypeError(`${t}: target expects EventTarget.`)}function fe(e,t){if(typeof e!=`string`||e.trim()===``)throw TypeError(`${t}: type expects a non-empty string.`)}function pe(e,t){if(typeof e!=`function`&&(!e||typeof e.handleEvent!=`function`))throw TypeError(`${t}: handler expects a function or EventListener object.`)}function A(e,t,n,r){de(e,`listen`),fe(t,`listen`),pe(n,`listen`);let i=!0;return e.addEventListener(t,n,r),()=>{i&&(i=!1,e.removeEventListener(t,n,r))}}function me(e,t,n,r){de(e,`unlisten`),fe(t,`unlisten`),pe(n,`unlisten`),e.removeEventListener(t,n,r)}function j(){let e=new Map,t=t=>{let n=e.get(t);return n?(n(),e.delete(t),!0):!1};return{on(n,r,i,a,o){if(typeof n!=`string`||n.trim()===``)throw TypeError(`EventManager.on: key expects a non-empty string.`);if(t(n),r==null)return le;let s=A(r,i,a,o);return e.set(n,s),s},off:t,clear(){for(let t of e.values())t();e.clear()},size(){return e.size}}}async function he(e,t,n={}){let r=new Headers(n.headers);return r.has(`Content-Type`)||r.set(`Content-Type`,`application/json`),(await fetch(e,{...n,method:n.method||`POST`,headers:r,body:JSON.stringify(t)})).json()}let ge=typeof window<`u`?`${window.location.origin}/wp-json`:``;function M(e){if(typeof document>`u`)return null;let t=`; ${document.cookie}`.split(`; ${e}=`);return t.length===2?t.pop().split(`;`).shift():null}function N(e,t,n=3600*24){if(typeof document>`u`)return!1;let r=new Date(Date.now()+n*1e3).toUTCString();return document.cookie=[`${e}=${t}`,`expires=${r}`,`path=/`,`sameSite=strict`].join(`; `),M(e)===t}function _e(e){return typeof document>`u`?!0:(document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`,!M(e))}let P={info:`<path d="M12 22C6.47715 22 2 17.5228 2 12 2 6.47715 6.47715 2 12 2 17.5228 2 22 6.47715 22 12 22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM13 10.5V15H14V17H10V15H11V12.5H10V10.5H13ZM13.5 8C13.5 8.82843 12.8284 9.5 12 9.5 11.1716 9.5 10.5 8.82843 10.5 8 10.5 7.17157 11.1716 6.5 12 6.5 12.8284 6.5 13.5 7.17157 13.5 8Z"></path>`,success:`<path d="M4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12C20 16.4183 16.4183 20 12 20C7.58172 20 4 16.4183 4 12ZM12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2ZM17.4571 9.45711L16.0429 8.04289L11 13.0858L8.20711 10.2929L6.79289 11.7071L11 15.9142L17.4571 9.45711Z"></path>`,warning:`<path d="M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM11 15H13V17H11V15ZM11 7H13V13H11V7Z"></path>`,error:`<path d="M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM12 10.5858L14.8284 7.75736L16.2426 9.17157L13.4142 12L16.2426 14.8284L14.8284 16.2426L12 13.4142L9.17157 16.2426L7.75736 14.8284L10.5858 12L7.75736 9.17157L9.17157 7.75736L12 10.5858Z"></path>`,"arrow-left":`<path d="M10.8284 12.0007L15.7782 16.9504L14.364 18.3646L8 12.0007L14.364 5.63672L15.7782 7.05093L10.8284 12.0007Z"></path>`,"arrow-right":`<path d="M13.1717 12.0007L8.22192 7.05093L9.63614 5.63672L16.0001 12.0007L9.63614 18.3646L8.22192 16.9504L13.1717 12.0007Z"></path>`,"arrow-up":`<path d="M11.9999 10.8284L7.0502 15.7782L5.63599 14.364L11.9999 8L18.3639 14.364L16.9497 15.7782L11.9999 10.8284Z"></path>`,"arrow-down":`<path d="M11.9999 13.1714L16.9497 8.22168L18.3639 9.63589L11.9999 15.9999L5.63599 9.63589L7.0502 8.22168L11.9999 13.1714Z"></path>`,close:`<path d="M11.9997 10.5865L16.9495 5.63672L18.3637 7.05093L13.4139 12.0007L18.3637 16.9504L16.9495 18.3646L11.9997 13.4149L7.04996 18.3646L5.63574 16.9504L10.5855 12.0007L5.63574 7.05093L7.04996 5.63672L11.9997 10.5865Z"></path>`,loader:`<path d="M12 3C16.9706 3 21 7.02944 21 12H19C19 8.13401 15.866 5 12 5V3Z"></path>`,menu:`<path d="M3 4H21V6H3V4ZM3 11H21V13H3V11ZM3 18H21V20H3V18Z"></path>`,palette:`<path fill="none" d="M0 0h24v24H0z"></path><path d="M12 2C17.5222 2 22 5.97778 22 10.8889C22 13.9556 19.5111 16.4444 16.4444 16.4444H14.4778C13.5556 16.4444 12.8111 17.1889 12.8111 18.1111C12.8111 18.5333 12.9778 18.9222 13.2333 19.2111C13.5 19.5111 13.6667 19.9 13.6667 20.3333C13.6667 21.2556 12.9 22 12 22C6.47778 22 2 17.5222 2 12C2 6.47778 6.47778 2 12 2ZM10.8111 18.1111C10.8111 16.0843 12.451 14.4444 14.4778 14.4444H16.4444C18.4065 14.4444 20 12.851 20 10.8889C20 7.1392 16.4677 4 12 4C7.58235 4 4 7.58235 4 12C4 16.19 7.2226 19.6285 11.324 19.9718C10.9948 19.4168 10.8111 18.7761 10.8111 18.1111ZM7.5 12C6.67157 12 6 11.3284 6 10.5C6 9.67157 6.67157 9 7.5 9C8.32843 9 9 9.67157 9 10.5C9 11.3284 8.32843 12 7.5 12ZM16.5 12C15.6716 12 15 11.3284 15 10.5C15 9.67157 15.6716 9 16.5 9C17.3284 9 18 9.67157 18 10.5C18 11.3284 17.3284 12 16.5 12ZM12 9C11.1716 9 10.5 8.32843 10.5 7.5C10.5 6.67157 11.1716 6 12 6C12.8284 6 13.5 6.67157 13.5 7.5C13.5 8.32843 12.8284 9 12 9Z"></path>`};function ve(e){if(!(e in P))throw Error(`Icon "${e}" not found.`)}function F(e){return ve(e),`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false">${P[e]}</svg>`}function I(e,t={}){if(!S())throw Error(`icon(): DOM render environment is required.`);let n=document.createElement(`template`);n.innerHTML=F(e);let r=n.content.firstElementChild;for(let[e,n]of Object.entries(t||{})){if(n==null||n===!1)continue;let t=e===`className`?`class`:e;r.setAttribute(t,n===!0?``:String(n))}return r}function L(e){return F(e)}let ye=L;function be(){return{...P}}function xe(e){if(typeof e!=`object`||!e)throw Error(`Icons must be a valid object.`);for(let[t,n]of Object.entries(e)){if(typeof n!=`string`||!n.trim().startsWith(`<`))throw Error(`Invalid SVG path for icon "${t}".`);P[t]=n}}let Se={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():v():e??v()},active:{default:0,types:[`number`,`string`,`array`,`null`]},collapsible:{default:!1,type:`boolean`},multiple:{default:!1,type:`boolean`},onChange:{default:null,types:[`function`,`null`]},items:{default:[],type:`array`}},R={type:`array`,validate:e=>e.length>0,message:`expects a non-empty array.`},Ce={types:[`number`,`string`,`array`,`null`],validate:e=>e==null?!0:Array.isArray(e)?e.every(e=>typeof e==`number`||typeof e==`string`):typeof e==`number`?Number.isInteger(e)&&e>=0:e.trim().length>0,message:`expects a positive number, string, array or null.`};function we(e){return Array.isArray(e)?e.map(e=>({...e})):[]}function z(e){return g(`items`,e,R,`Accordion`),e.map(e=>{if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Accordion: item expects an object.`);if(e.name!=null&&typeof e.name!=`string`)throw Error(`Accordion: item name expects a string.`);if(!T(e.title))throw Error(`Accordion: item title expects string, Node, array, function or null.`);if(!T(e.content))throw Error(`Accordion: item content expects string, Node, array, function or null.`);return{...e,name:e.name||v()}})}var Te=class{constructor(e,t={}){if(!S())throw Error(`Accordion: DOM render environment is required.`);if(e!==!1&&!w(e))throw Error(`Accordion: element expects a valid HTMLElement or false.`);let n=_(t,Se,`Accordion.options`);this.config={options:n},this.dom={root:null,headers:[],panels:[]},this.cleanup={events:j()},this.runtime={dynamic:e===!1,activeNames:[],destroyed:!1};try{this.init(e,n)}catch(e){throw this.destroy(),e}}get root(){return this.dom?.root||null}set root(e){this.dom||(this.dom={headers:[],panels:[]}),this.dom.root=e}get options(){return this.config?.options||{}}set options(e){this.config||(this.config={}),this.config.options=e||{}}get dynamic(){return!!this.runtime?.dynamic}get destroyed(){return!!this.runtime?.destroyed}get activeNames(){return this.runtime?.activeNames||[]}set activeNames(e){this.runtime||(this.runtime={}),this.runtime.activeNames=Array.isArray(e)?e:[]}init(e,t){if(this.root=e===!1?this.buildRoot(t):e,this.refreshDom(),this.headers.length===0||this.panels.length===0)throw Error(`Accordion: .accordion-header or .accordion-panel not found.`);this.prepareItems(),this.activeNames=this.resolveActiveNames(t.active),this.syncAll(),this.bindEvents()}refreshDom(){if(!this.root){this.dom.headers=[],this.dom.panels=[];return}this.dom.headers=O(`.accordion-header`,this.root),this.dom.panels=O(`.accordion-panel`,this.root)}assertActive(e){if(this.destroyed)throw Error(`Accordion.${e}: instance has been destroyed.`)}buildRoot(e){let n=z(e.items),r=(0,t.jsx)(`div`,{className:`j-accordion`,id:e.id});return r.append(this.buildItems(n)),r}buildItems(e){let n=document.createDocumentFragment();return e.forEach((e,r)=>{let i=e.name||v(),a=`${this.options.id}_header_${r}`,o=`${this.options.id}_panel_${r}`,s=(0,t.jsx)(`span`,{className:`header-title`});s.append(...this.contentView(e.title,e,r,`title`));let c=(0,t.jsx)(`div`,{className:`accordion-header`,"data-item":i,id:a,role:`button`,tabindex:`0`,"aria-controls":o,children:[s,(0,t.jsx)(`span`,{className:`header-arrow`,"aria-hidden":`true`,children:I(`arrow-down`)})]}),l=(0,t.jsx)(`div`,{className:`panel-content`});l.append(...this.contentView(e.content,e,r,`content`));let u=(0,t.jsx)(`div`,{className:`accordion-panel`,id:o,role:`region`,"aria-labelledby":a,children:l});n.append(c,u)}),n}contentView(e,t,n,r){return E(e,{accordion:this,item:t,index:n,type:r,active:this.isActive(t.name)})}prepareItems(){this.headers.forEach((e,t)=>{let n=this.panels[t];if(!n)return;let r=e.dataset.item||v();e.dataset.item=r,e.id||(e.id=`${this.options.id}_header_${t}`),n.id||(n.id=`${this.options.id}_panel_${t}`),e.setAttribute(`role`,`button`),e.setAttribute(`tabindex`,`0`),e.setAttribute(`aria-controls`,n.id),n.setAttribute(`role`,`region`),n.setAttribute(`aria-labelledby`,e.id)})}resolveActiveNames(e){if(e==null){let e=this.headers.filter((e,t)=>{let n=this.panels[t];return e.classList.contains(`is-active`)||n?.classList.contains(`is-active`)});return e.map(e=>e.dataset.item).slice(0,this.options.multiple?e.length:1)}let t=Array.isArray(e)?e:[e],n=[];for(let e of t){let t=this.getIndex(e);if(!(t<0||t>=this.headers.length)&&(n.push(this.headers[t].dataset.item||String(t)),!this.options.multiple))break}return Array.from(new Set(n))}bindEvents(){this.unbindEvents(),this.cleanup.events.on(`click`,this.root,`click`,e=>{let t=e.target.closest(`.accordion-header`);!t||!this.headers.includes(t)||this.active(this.headers.indexOf(t))}),this.cleanup.events.on(`keydown`,this.root,`keydown`,e=>{if(e.key!==`Enter`&&e.key!==` `)return;let t=e.target.closest(`.accordion-header`);!t||!this.headers.includes(t)||(e.preventDefault(),this.active(this.headers.indexOf(t)))})}unbindEvents(){this.cleanup.events.clear()}syncAll(){this.headers.forEach((e,t)=>{this.syncItem(t,this.isActive(e.dataset.item))})}syncItem(e,t){let n=this.headers[e],r=this.panels[e];!n||!r||(n.classList.toggle(`is-active`,t),r.classList.toggle(`is-active`,t),n.setAttribute(`aria-expanded`,String(t)),r.setAttribute(`aria-hidden`,String(!t)),r.hidden=!t)}isActive(e){return this.activeNames.includes(e)}async activateItem(e,t=!0){let n=this.getIndex(e);if(n<0||n>=this.headers.length)return;let r=this.headers[n],i=this.panels[n],a=r.dataset.item||String(n),o=this.isActive(a);o&&!this.options.multiple&&!this.options.collapsible||(this.options.multiple?this.activeNames=o?this.activeNames.filter(e=>e!==a):[...this.activeNames,a]:o?this.options.collapsible&&(this.activeNames=[]):this.activeNames=[a],this.syncAll(),t&&this.options.onChange&&await Promise.resolve(this.options.onChange(n,a,r,i,this)))}getIndex(e){return typeof e==`number`?e:typeof e==`string`?this.headers.findIndex(t=>t.dataset.item===e):-1}get headers(){return this.dom?.headers||[]}get panels(){return this.dom?.panels||[]}get current(){let e=this.activeNames[0];return e?this.getIndex(e):null}get state(){return{activeNames:[...this.activeNames],current:this.current}}async active(e){this.assertActive(`active`),await this.activateItem(e,!0)}setItems(e,t=0){this.assertActive(`setItems`),g(`items`,e,R,`Accordion.setItems`),g(`active`,t,Ce,`Accordion.setItems`);let n=z(e);this.options.items=we(n),this.options.active=t,this.root.textContent=``,this.root.append(this.buildItems(n)),this.refreshDom(),this.prepareItems(),this.activeNames=this.resolveActiveNames(t),this.syncAll()}destroy(){if(this.destroyed)return;let e=this.root,t=this.dynamic;this.runtime.destroyed=!0,this.unbindEvents();for(let e of this.headers)e.classList.remove(`is-active`),e.removeAttribute(`aria-expanded`);for(let e of this.panels)e.classList.remove(`is-active`),e.removeAttribute(`aria-hidden`),e.hidden=!1;t&&e?.parentNode&&e.parentNode.removeChild(e),this.root=null,this.options={},this.activeNames=[],this.cleanup.events.clear(),this.dom.headers=[],this.dom.panels=[]}};let Ee={name:{default:null,types:[`string`,`null`]},mode:{default:`click`,type:`string`,enum:[`hover`,`click`]},position:{default:`auto`,type:`string`,enum:[`auto`,`top-left`,`top-center`,`top-right`,`bottom-left`,`bottom-center`,`bottom-right`,`left`,`right`]},offset:{default:10,type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},content:{default:``,validate:T,message:`expects string, Node, array, function or null.`},className:{default:null,types:[`string`,`null`]},id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():v():e??v()},containerClassName:{default:null,types:[`string`,`null`]},delay:{default:0,types:[`number`,`object`]},hoverIntent:{default:!0,type:`boolean`},onShown:{default:null,types:[`function`,`null`]},onHidden:{default:null,types:[`function`,`null`]}};var De=class{constructor(e,t={}){if(!S())throw Error(`Drop: DOM render environment is required.`);if(!w(e))throw Error(`Drop: element expects a valid HTMLElement.`);this.target=e,this.options=_(t,Ee,`Drop.options`),this._init(this.options)}_init(e){this.isVisible=!1,this.root=null,this.cleanup={events:j()},this._timer={show:null,hide:null},this._hoverIntentData={x:0,y:0,lastMoveTime:0};let{delay:t}=e;typeof t==`number`&&t>=0?(this.delayShow=t,this.delayHide=t):typeof t==`object`&&t?(this.delayShow=Number(t.show)||0,this.delayHide=Number(t.hide)||0):(this.delayShow=0,this.delayHide=0),this._buildDrop(e),this._bindEvents(e)}_buildDrop(e){let{className:n,content:r,id:i,name:a,containerClassName:o}=e,s=n||``,c=C(r)&&r.nodeType===1?r:(0,t.jsx)(`div`,{className:o?`drop-container ${o}`:`drop-container`,children:E(r,this)}),l=(0,t.jsx)(`div`,{className:s?`j-drop ${s}`:`j-drop`,id:i,"data-drop":a||v(),children:c});this.root=l,document.body.appendChild(l)}_bindEvents(e){let{mode:t,hoverIntent:n}=e;this._unbindEvents(),t===`hover`?(n?(this.cleanup.events.on(`target:enter`,this.target,`mouseenter`,()=>this._startHoverIntent()),this.cleanup.events.on(`target:leave`,this.target,`mouseleave`,()=>this._cancelHoverIntent())):(this.cleanup.events.on(`target:enter`,this.target,`mouseenter`,()=>this.show()),this.cleanup.events.on(`target:leave`,this.target,`mouseleave`,()=>this.hide())),this.cleanup.events.on(`root:enter`,this.root,`mouseenter`,()=>this.show()),this.cleanup.events.on(`root:leave`,this.root,`mouseleave`,()=>this.hide())):t===`click`&&(this.cleanup.events.on(`target:click`,this.target,`click`,()=>this.toggle()),this.cleanup.events.on(`document:click`,document,`click`,e=>this._docClick(e)))}_unbindEvents(){this.cleanup?.events.clear()}_startHoverIntent(){this.cleanup.events.on(`document:mousemove`,document,`mousemove`,e=>this._onMouseMove(e)),clearTimeout(this._timer.show),this._timer.show=setTimeout(()=>{let e=Date.now()-this._hoverIntentData.lastMoveTime;Math.abs(this._hoverIntentData.x-this._lastX||0)+Math.abs(this._hoverIntentData.y-this._lastY||0)<5||e>100?(this.show(),this.cleanup.events.off(`document:mousemove`)):this._startHoverIntent()},this.delayShow)}_cancelHoverIntent(){clearTimeout(this._timer.show),this.cleanup.events.off(`document:mousemove`),this.hide()}_onMouseMove(e){this._lastX=e.clientX,this._lastY=e.clientY,this._hoverIntentData.lastMoveTime=Date.now(),this._hoverIntentData.x=e.clientX,this._hoverIntentData.y=e.clientY}_setPosition(){let e=this.target.getBoundingClientRect(),t=this.root,{offset:n,position:r}=this.options;t.style.visibility=`hidden`,t.style.display=`block`;let i=t.getBoundingClientRect(),a=0,o=0,s=r;switch(s===`auto`&&(s=window.innerHeight-e.bottom>i.height+n?`top-center`:`bottom-center`),s){case`top-left`:a=e.top-i.height-n,o=e.left;break;case`top-center`:a=e.top-i.height-n,o=e.left+e.width/2-i.width/2;break;case`top-right`:a=e.top-i.height-n,o=e.right-i.width;break;case`bottom-left`:a=e.bottom+n,o=e.left;break;case`bottom-center`:a=e.bottom+n,o=e.left+e.width/2-i.width/2;break;case`bottom-right`:a=e.bottom+n,o=e.right-i.width;break;case`left`:a=e.top+e.height/2-i.height/2,o=e.left-i.width-n;break;case`right`:a=e.top+e.height/2-i.height/2,o=e.right+n;break;default:break}a=Math.max(8,Math.min(a,window.innerHeight-i.height-8)),o=Math.max(8,Math.min(o,window.innerWidth-i.width-8)),t.style.top=`${a+window.scrollY}px`,t.style.left=`${o+window.scrollX}px`,t.style.visibility=``,t.style.display=``}_docClick(e){!this.root.contains(e.target)&&!this.target.contains(e.target)&&this.hide()}_exec(e){this.root&&(e?this._setPosition():(this.root.style.top=``,this.root.style.left=``),this.root.classList.toggle(`is-active`,e),this.isVisible=e)}show(e=!0){clearTimeout(this._timer.hide),!this.isVisible&&(e&&this.delayShow>0?(clearTimeout(this._timer.show),this._timer.show=setTimeout(()=>this._exec(!0),this.delayShow)):this._exec(!0),this.options.onShown&&this.options.onShown())}hide(e=!0){clearTimeout(this._timer.show),this.isVisible&&(e&&this.delayHide>0?(clearTimeout(this._timer.hide),this._timer.hide=setTimeout(()=>this._exec(!1),this.delayHide)):this._exec(!1),this.options.onHidden&&this.options.onHidden())}toggle(){this.isVisible?this.hide():this.show()}destroy(){this.options&&(clearTimeout(this._timer?.show),clearTimeout(this._timer?.hide),this.root&&this._exec(!1),this.options&&this._unbindEvents(),this.root?.parentNode&&this.root.parentNode.removeChild(this.root),this.options=null,this.root=null,this.target=null,this._timer={show:null,hide:null},this.cleanup?.events.clear(),this.cleanup=null)}};function Oe(e){return e==null||typeof e==`string`||typeof e==`function`||Array.isArray(e)||typeof Node<`u`&&e instanceof Node}function ke(e){return!!e&&typeof e==`object`&&typeof e.id==`string`}function Ae(e){return e==null||e===!1||typeof e==`function`}function B(e){return e&&typeof e==`object`&&!Array.isArray(e)?{...e}:{}}function je(e){return Array.isArray(e)?[...e]:[]}function Me(e){return Array.isArray(e)?e.map(e=>({...e,data:B(e.data),view:B(e.view)})):[]}function Ne(e,t){return typeof e==`string`?{id:e}:e&&typeof e==`object`?e:{id:t}}let Pe={validate:ke,message:`expects a step object with a string id.`},Fe={validate:Oe,message:`expects string, Node, array, function or null.`},Ie={validate:e=>Array.isArray(e)&&e.length>0,message:`expects a non-empty steps array.`},V={validate:e=>e==null||typeof e==`object`&&!Array.isArray(e),message:`expects an object or null.`},H={validate:Ae,message:`expects function, false or null.`},Le={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():v():e??v()},steps:{default:[],...Ie},initial:{default:null,types:[`string`,`number`,`null`]},cache:{default:!0,type:`boolean`},linear:{default:!0,type:`boolean`},render:{default:!0,type:`boolean`},rollbackOnError:{default:!0,type:`boolean`},busyStrategy:{default:`ignore`,type:`string`,enum:[`ignore`,`throw`]},showHeader:{default:!0,type:`boolean`},showFooter:{default:!0,type:`boolean`},showSteps:{default:!0,type:`boolean`},showBack:{default:!0,type:`boolean`},showNext:{default:!0,type:`boolean`},showReset:{default:!1,type:`boolean`},backText:{default:`Back`,type:`string`},nextText:{default:`Next`,type:`string`},finishText:{default:`Finish`,type:`string`},resetText:{default:`Reset`,type:`string`},className:{default:``,type:`string`},renderHeader:{default:null,...H},renderSteps:{default:null,...H},renderBody:{default:null,...H},renderFooter:{default:null,...H},onChange:{default:null,types:[`function`,`null`]},onNext:{default:null,types:[`function`,`null`]},onBack:{default:null,types:[`function`,`null`]},onFinish:{default:null,types:[`function`,`null`]},onError:{default:null,types:[`function`,`null`]},onBusy:{default:null,types:[`function`,`null`]}};var Re=class{constructor(e={}){this.options=_(e,Le,`Flow.options`),this._init(this.options)}_init(e){this.steps=Me(e.steps),this._validateSteps(this.steps),this._stepMap=new Map(this.steps.map((e,t)=>[e.id,t])),this._initialStepId=this._resolveInitialStepId(e.initial),this._initialData=this._createInitialStepData(),this._subscribers=new Set,this._renderDispose=null,this._cleanupTasks=new Set,this._nodes={},this._destroyed=!1,this._activeAction=null,this._actionController=null,this.root=null,this.state=(0,t.createDeepStore)({id:e.id,currentId:this._initialStepId,currentIndex:this._stepMap.get(this._initialStepId),previousId:null,previousIndex:null,direction:null,history:[this._initialStepId],data:B(this._initialData.global),stepData:B(this._initialData.stepData),loading:!1,error:null,busyAction:null,version:0})}get currentStep(){return this.steps[this.state.currentIndex]}get currentData(){return this.getStepData(this.state.currentId)}get canBack(){return this.state.currentIndex>0&&!this.state.loading}get canNext(){return this.state.currentIndex<this.steps.length-1&&!this.state.loading}get isLast(){return this.state.currentIndex===this.steps.length-1}subscribe(e){if(this._assertActive(`subscribe`),typeof e!=`function`)throw Error(`Flow.subscribe: handler expects a function.`);return this._subscribers.add(e),e(this.snapshot(),this),()=>this._subscribers.delete(e)}snapshot(){if(!this.state)return null;let e=this.currentStep;return{id:this.state.id,currentId:this.state.currentId,currentIndex:this.state.currentIndex,previousId:this.state.previousId,previousIndex:this.state.previousIndex,direction:this.state.direction,history:[...this.state.history],data:B(this.state.data),stepData:B(this.state.stepData),currentData:this.currentData,currentStep:this._publicStep(e),canBack:this.canBack,canNext:this.canNext,isLast:this.isLast,loading:this.state.loading,busyAction:this.state.busyAction,error:this.state.error}}mount(e){if(this._assertActive(`mount`),!this.options.render)return this;if(!S())throw Error(`Flow.mount: DOM environment is required.`);let t=typeof e==`string`?document.querySelector(e):e;if(!w(t))throw Error(`Flow.mount: container expects Element or selector.`);return this.unmount(),this.root=this._buildRoot(),t.appendChild(this.root),this._mountView(),this}unmount(){return this._renderDispose?.(),this._renderDispose=null,this.root?.parentNode&&this.root.parentNode.removeChild(this.root),this.root=null,this._nodes={},this}async next(e=null){return this._assertActive(`next`),g(`payload`,e,V,`Flow.next`),this._handleBusy(`next`)||this._runAction(`next`,async()=>{if(this.isLast)return this.finish(e,{internal:!0});let t=this.currentStep,n=this.steps[this.state.currentIndex+1]?.id,{id:r,data:i}=Ne(await this._runMoveHook(`next`,t,e,n),n);return this.goTo(r,i??e,{direction:`next`,internal:!0})})}async back(e=null){return this._assertActive(`back`),g(`payload`,e,V,`Flow.back`),this._handleBusy(`back`)||(this.canBack?this._runAction(`back`,async()=>{let t=this.currentStep,n=this.steps[this.state.currentIndex-1]?.id,{id:r,data:i}=Ne(await this._runMoveHook(`back`,t,e,n),n);return this.goTo(r,i??e,{direction:`back`,internal:!0})}):this.snapshot())}async goTo(e,t=null,n={}){return this._assertActive(`goTo`),g(`payload`,t,V,`Flow.goTo`),(n.internal?null:this._handleBusy(`goTo`))||this._runAction(`goTo`,async()=>{let r=this._resolveStepIndex(e),i=this.steps[r],a=this.currentStep;return!i||i.id===this.state.currentId?(t&&this.setStepData(this.state.currentId,t),this.snapshot()):(await this._transitionTo(i,{direction:n.direction||`go`,payload:t,fromStep:a}),this.snapshot())},{internal:n.internal})}setData(e){return this._assertActive(`setData`),g(`data`,e,V,`Flow.setData`),e?((0,t.flushSync)(()=>{Object.assign(this.state.data,e),this.state.version+=1}),this._emitChange(),this):this}setStepData(e,n,r={}){return this._assertActive(`setStepData`),g(`stepId`,e,{type:`string`},`Flow.setStepData`),g(`data`,n,V,`Flow.setStepData`),!n||!this._stepMap.has(e)?this:((0,t.flushSync)(()=>{this.state.stepData[e]={...B(this.state.stepData[e]),...n},this.options.cache&&Object.assign(this.state.data,n),this.state.version+=1}),r.silent||this._emitChange(),this)}getStepData(e){return B(this.state.stepData[e])}reset(){return this._assertActive(`reset`),(0,t.flushSync)(()=>{this.state.currentId=this._initialStepId,this.state.currentIndex=this._stepMap.get(this._initialStepId),this.state.previousId=null,this.state.previousIndex=null,this.state.direction=null,this.state.history.splice(0,this.state.history.length,this._initialStepId),this._replaceObject(this.state.data,B(this._initialData.global)),this._replaceObject(this.state.stepData,B(this._initialData.stepData)),this.state.loading=!1,this.state.busyAction=null,this.state.error=null,this.state.version+=1}),this._emitChange(),this}async finish(e=null,t={}){return this._assertActive(`finish`),g(`payload`,e,V,`Flow.finish`),(t.internal?null:this._handleBusy(`finish`))||this._runAction(`finish`,async()=>(e&&this.setStepData(this.state.currentId,e),await this._callHook(this.options.onFinish,[this.snapshot(),this]),this.snapshot()),{internal:t.internal})}destroy(){if(!this._destroyed){this._destroyed=!0,this._abortActiveAction(),this.unmount();for(let e of Array.from(this._cleanupTasks))e();this._cleanupTasks.clear(),this._subscribers.clear(),this.steps=null,this.options=null,this.state=null,this._stepMap=null,this._initialData=null,this._activeAction=null,this._actionController=null}}_resolveInitialStepId(e){if(typeof e==`number`){let t=this.steps[e];if(!t)throw Error(`Flow.options.initial index is out of range.`);return t.id}if(typeof e==`string`){if(!this._stepMap.has(e))throw Error(`Flow.options.initial step "${e}" does not exist.`);return e}return this.steps[0].id}_validateSteps(e){let t=new Set;for(let[n,r]of e.entries()){if(g(String(n),r,Pe,`Flow.options.steps`),g(`content`,r.content??null,Fe,`Flow.options.steps.${n}`),t.has(r.id))throw Error(`Flow.options.steps: duplicated step id "${r.id}".`);t.add(r.id)}}_resolveStepIndex(e){if(typeof e==`number`){if(!this.steps[e])throw Error(`Flow.goTo target is out of range.`);return e}if(typeof e==`string`){if(!this._stepMap.has(e))throw Error(`Flow.goTo target "${e}" does not exist.`);return this._stepMap.get(e)}throw Error(`Flow.goTo target expects string or number.`)}_createInitialStepData(){let e={},t={};for(let n of this.steps)e[n.id]=B(n.data),Object.assign(t,e[n.id]);return{stepData:e,global:t}}async _runMoveHook(e,t,n,r){let i=e===`back`?this.options.onBack:this.options.onNext,a=e===`back`?t.onBack:t.onNext,o=this._createContext({payload:n,targetId:r});if(typeof a==`function`){let e=await this._callHook(a,[o]);if(e!=null)return e}if(typeof i==`function`){let e=await this._callHook(i,[o]);if(e!=null)return e}return r}async _transitionTo(e,{direction:n,payload:r,fromStep:i}){let a=this.snapshot(),o=this._captureState();try{r&&this.setStepData(i.id,r,{silent:!0}),await this._assertCanLeave(i,e,n),await this._assertCanEnter(e,i,n),typeof i.onLeave==`function`&&await this._callHook(i.onLeave,[this._createContext({direction:n,step:i,targetId:e.id})]);let o=this.state.currentId,s=this.state.currentIndex,c=this._stepMap.get(e.id);(0,t.flushSync)(()=>{this.state.previousId=o,this.state.previousIndex=s,this.state.currentId=e.id,this.state.currentIndex=c,this.state.direction=n,n===`back`?this.state.history.pop():this.state.history.push(e.id),this.state.error=null,this.state.version+=1}),typeof e.onEnter==`function`&&await this._callHook(e.onEnter,[this._createContext({direction:n,fromId:o,step:e})]),this._emitChange(a)}catch(e){throw this._destroyed||!this.state||!this.options?e:(this.options.rollbackOnError&&this._restoreState(o,{keepLoading:!0}),this._handleError(e,a),e)}}async _assertCanLeave(e,t,n){if(typeof e.canLeave==`function`&&await this._callHook(e.canLeave,[this._createContext({direction:n,targetId:t.id})])===!1)throw Error(`Flow: step "${e.id}" blocked leaving.`)}async _assertCanEnter(e,t,n){if(typeof e.canEnter==`function`&&await this._callHook(e.canEnter,[this._createContext({direction:n,fromId:t.id})])===!1)throw Error(`Flow: step "${e.id}" blocked entering.`)}_createContext(e={}){let t=e.step||this.currentStep,n=this.snapshot();return{...e,flow:this,step:t,state:this.state,signal:this._actionController?.signal||null,snapshot:n,data:B(this.state.data),currentData:this.getStepData(t.id),setData:e=>this.setData(e),setStepData:(e,t)=>this.setStepData(e,t),getStepData:e=>this.getStepData(e),next:e=>this.next(e),back:e=>this.back(e),goTo:(e,t,n)=>this.goTo(e,t,n),addCleanup:e=>this._addCleanup(e)}}async _runAction(e,t,n={}){let r=!n.internal&&!this.state.loading;r&&(this._actionController=typeof AbortController<`u`?new AbortController:null,this._activeAction=e,this._setLoading(!0,e));try{return await t()}catch(e){if(this._destroyed||!this.state)return null;throw!this._destroyed&&this.state?.error!==e&&this._handleError(e),e}finally{r&&!this._destroyed&&(this._setLoading(!1,null),this._activeAction=null,this._actionController=null)}}_handleBusy(e){if(!this.state.loading)return null;let t=Error(`Flow: action "${e}" ignored while loading.`);if(t.code=`FLOW_BUSY`,typeof this.options.onBusy==`function`&&this.options.onBusy(e,this.snapshot(),this),this.options.busyStrategy===`throw`)throw t;return this.snapshot()}_abortActiveAction(){this._actionController?.abort?.(),this._actionController=null,this._activeAction=null}async _callHook(e,t){if(typeof e!=`function`)return;let n=await e(...t);if(this._destroyed||!this.state)throw this._createAbortError();return n}_createAbortError(){let e=Error(`Flow: active action was aborted.`);return e.code=`FLOW_ABORTED`,e}_setLoading(e,n=this.state?.busyAction||null){this.state&&(0,t.flushSync)(()=>{this.state.loading=e,this.state.busyAction=e?n:null})}_handleError(e,n=null){this.state&&((0,t.flushSync)(()=>{this.state.error=e,this.state.version+=1}),typeof this.options.onError==`function`&&this.options.onError(e,this.snapshot(),this,n))}_emitChange(e=null){let t=this.snapshot();for(let n of Array.from(this._subscribers))n(t,this,e);typeof this.options.onChange==`function`&&this.options.onChange(t,this,e)}_replaceObject(e,t){for(let t of Object.keys(e))delete e[t];Object.assign(e,t)}_captureState(){return{currentId:this.state.currentId,currentIndex:this.state.currentIndex,previousId:this.state.previousId,previousIndex:this.state.previousIndex,direction:this.state.direction,history:je(this.state.history),data:B(this.state.data),stepData:B(this.state.stepData),loading:this.state.loading,busyAction:this.state.busyAction,error:this.state.error,version:this.state.version}}_restoreState(e,n={}){(0,t.flushSync)(()=>{this.state.currentId=e.currentId,this.state.currentIndex=e.currentIndex,this.state.previousId=e.previousId,this.state.previousIndex=e.previousIndex,this.state.direction=e.direction,this.state.history.splice(0,this.state.history.length,...e.history),this._replaceObject(this.state.data,e.data),this._replaceObject(this.state.stepData,e.stepData),this.state.loading=n.keepLoading?!0:e.loading,this.state.busyAction=e.busyAction,this.state.error=e.error,this.state.version=e.version+1})}_addCleanup(e){if(typeof e!=`function`)throw Error(`Flow.addCleanup: cleanup expects a function.`);return this._destroyed?(e(),()=>{}):(this._cleanupTasks.add(e),()=>this._cleanupTasks.delete(e))}_assertActive(e){if(this._destroyed||!this.state)throw Error(`Flow.${e}: instance has been destroyed.`)}_publicStep(e){if(!e)return null;let t={...e};return delete t.onEnter,delete t.onLeave,delete t.onNext,delete t.onBack,delete t.canEnter,delete t.canLeave,t}_buildRoot(){return(0,t.jsx)(`div`,{className:`j-flow ${this.options.className||``}`.trim(),id:this.options.id,role:`group`,"aria-busy":()=>this.state.loading?`true`:`false`,"aria-labelledby":`${this.options.id}-title`,ref:e=>{this._nodes.root=e}})}_mountView(){this._renderDispose||!this.root||(this._renderDispose=(0,t.createRoot)(e=>((0,t.onCleanup)((0,t.render)(()=>this._view(),this.root)),e)))}_view(){let e=this.snapshot();return[this._renderSlot(`renderHeader`,e,()=>this.options.showHeader?this._headerView(e):null),this._renderSlot(`renderSteps`,e,()=>this.options.showSteps?this._stepsView(e):null),this._renderSlot(`renderBody`,e,()=>this._bodyView(e)),this._renderSlot(`renderFooter`,e,()=>this.options.showFooter?this._footerView(e):null)]}_renderSlot(e,t,n){let r=this.options[e];return r===!1?null:typeof r==`function`?r(this._createRenderContext(t,n)):n()}_createRenderContext(e,t){return{flow:this,snapshot:e,state:this.state,steps:this.steps.map(e=>this._publicStep(e)),currentStep:e.currentStep,currentData:e.currentData,data:e.data,fallback:t,next:e=>this.next(e),back:e=>this.back(e),goTo:(e,t,n)=>this.goTo(e,t,n),reset:()=>this.reset()}}_headerView(e){return(0,t.jsx)(`div`,{className:`flow-header`,children:[(0,t.jsx)(`div`,{id:`${this.options.id}-title`,className:`flow-title`,children:e.currentStep?.title||e.currentStep?.id||``}),e.currentStep?.description?(0,t.jsx)(`div`,{className:`flow-description`,children:e.currentStep.description}):null]})}_stepsView(e){return(0,t.jsx)(`ol`,{className:`flow-steps`,role:`list`,"aria-label":`Flow steps`,children:this.steps.map((n,r)=>(0,t.jsx)(`li`,{className:this._stepClass(r,e.currentIndex),"aria-current":r===e.currentIndex?`step`:void 0,children:[(0,t.jsx)(`button`,{type:`button`,className:`flow-step-button`,disabled:this.options.linear&&r>e.currentIndex,"aria-current":r===e.currentIndex?`step`:void 0,"aria-disabled":this.options.linear&&r>e.currentIndex?`true`:`false`,"aria-label":`${r+1}. ${n.title||n.id}`,onClick:()=>{r!==e.currentIndex&&this.goTo(r)},children:[(0,t.jsx)(`span`,{className:`flow-step-index`,children:r+1}),(0,t.jsx)(`span`,{className:`flow-step-title`,children:n.title||n.id})]})]}))})}_bodyView(e){return(0,t.jsx)(`div`,{className:`flow-body`,role:`region`,"aria-live":`polite`,"aria-busy":e.loading?`true`:`false`,children:this._contentView(e.currentStep?.content)})}_footerView(e){return(0,t.jsx)(`div`,{className:`flow-footer`,children:[this.options.showReset?(0,t.jsx)(`button`,{type:`button`,className:`j-button is-ghost flow-reset`,onClick:()=>this.reset(),disabled:e.loading,"aria-disabled":e.loading?`true`:`false`,children:this.options.resetText}):null,this.options.showBack?(0,t.jsx)(`button`,{type:`button`,className:`j-button is-ghost flow-back`,"data-action":`back`,onClick:()=>void this.back(),disabled:!e.canBack,"aria-disabled":e.canBack?`false`:`true`,children:this.options.backText}):null,this.options.showNext?(0,t.jsx)(`button`,{type:`button`,className:`j-button is-primary flow-next`,"data-action":`next`,onClick:()=>void this.next(),disabled:e.loading,"aria-disabled":e.loading?`true`:`false`,children:e.isLast?this.options.finishText:this.options.nextText}):null]})}_contentView(e){return typeof e==`function`?e(this._createContext()):Array.isArray(e)||typeof Node<`u`&&e instanceof Node?e:e==null||typeof e!=`string`?``:e}_stepClass(e,t=this.state.currentIndex){let n=[`flow-step`];return e===t&&n.push(`is-active`),e<t&&n.push(`is-complete`),n.join(` `)}};function ze(e){return new Re(e)}let Be={type:{default:`mobile`,type:`string`},id:{default:``,type:`string`,normalize:e=>e.trim()===``?v():e.trim()},items:{default:[],type:`array`},backText:{default:`Back`,type:`string`}},Ve={type:`array`};var He=class{constructor(e,t={}){this._element=e,this.options=_(t,Be,`Menu.options`),this.root=null,this.cleanup={events:j()},this._bound=!1,this._destroyed=!1,this._validateOptions()}get menu(){return this.root}_validateOptions(){let{items:e}=this.options;this._element!==!1&&g(`element`,this._element,[`HTMLElement`,`string`],`Menu`),this._verifyItems(e)}_verifyItems(e){g(`items`,e,Ve,`Menu`)}build(){if(this._bound)return this;if(!S())throw Error(`Menu: DOM render environment is required.`);if(this._element===!1)this.root=this._buildRoot(),this._bound=!0;else{let e=k(this._element,`Menu.element`);if(!e)throw Error(`Element not found`);this.root=e,this._bound=!0}return this._bindEvents(),this}_buildRoot(){let{items:e,id:n,type:r}=this.options;return(0,t.jsx)(`nav`,{className:`j-${r}-menu`,children:(0,t.jsx)(`ul`,{className:`menu`,id:n,children:e.map(e=>this._buildItem(e))})})}_buildItem(e){let n=e.children&&e.children.length>0,r=[`menu-item`];n&&r.push(`menu-item-has-children`),e.classes&&Array.isArray(e.classes)&&r.push(...e.classes);let i=[(0,t.jsx)(`a`,{className:`menu-link`,href:e.url||`#`,...e.target&&{target:e.target},children:e.title})];return n&&i.push((0,t.jsx)(`ul`,{className:`sub-menu`,children:e.children.map(e=>this._buildItem(e))})),(0,t.jsx)(`li`,{className:r.join(` `),id:`menu-item-${e.id||v()}`,children:i})}_bindEvents(){this.root&&(this.options.type===`mobile`?this.cleanup.events.on(`mobile`,this.root,`click`,e=>{let t=e.target;if(t.closest(`.menu-item.back`)){e.preventDefault(),this._handleBack(t);return}let n=t.closest(`.menu-item.menu-item-has-children`);if(n){let r=D(`:scope > a`,n);r&&(t===r||r.contains(t))&&(e.preventDefault(),this._handleMenuClick(n))}}):this.options.type===`bottom`&&this.cleanup.events.on(`bottom`,document,`click`,e=>{let t=e.target;if(t.closest(`.sub-menu a`))return;let n=t.closest(`.menu > .menu-item.menu-item-has-children`);n?(e.preventDefault(),this._toggleActive(n)):D(`.menu-item.is-active`,this.root)?.classList.remove(`is-active`)}))}_unbindEvents(){this.cleanup.events.clear()}_teardown({keepElement:e=!1}={}){this._unbindEvents(),this._element===!1&&this.root?.parentElement&&this.root.remove(),e||(this._element=null),this.root=null,this._bound=!1}_handleMenuClick(e){e.classList.add(`is-active`);let n=D(`:scope > .sub-menu`,e);if(!n||D(`:scope > .menu-item.back`,n))return;let r=(0,t.jsx)(`li`,{className:`menu-item back`,children:(0,t.jsx)(`a`,{className:`menu-link`,children:[(0,t.jsx)(`icon`,{className:`el-icon el-prefix`,children:I(`arrow-left`)}),(0,t.jsx)(`span`,{className:`menu-text`,children:this.options.backText})]})});n.insertBefore(r,n.firstChild)}_handleBack(e){let t=e.closest(`.menu-item.back`);if(!t)return;let n=t.parentElement.parentElement;n&&n.classList.contains(`menu-item-has-children`)&&n.classList.remove(`is-active`),t.remove()}_toggleActive(e){let t=e.classList.contains(`is-active`);D(`.menu-item.is-active`,this.root)?.classList.remove(`is-active`),t||e.classList.add(`is-active`)}setItems(e){if(this._verifyItems(e),this.options.items=e,this._bound)if(this._element===!1){let e=this._element;this._teardown({keepElement:!0}),this._element=e,this.build()}else{let t=this.root.matches?.(`.menu`)||this.root.matches?.(`ul`)||this.root.matches?.(`ol`)?this.root:D(`:scope > .menu`,this.root)||D(`.menu`,this.root);if(!t)throw Error(`Menu: .menu element not found for setItems().`);this._unbindEvents(),t.textContent=``,t.append(...e.map(e=>this._buildItem(e))),this._bindEvents()}return this}removeItem(e){if(!this.root)return this;let t=D(`[id^="menu-item-${e}"]`,this.root);if(t&&t.remove(),this.options.items){let t=n=>{for(let r=n.length-1;r>=0;r--)n[r].id===e?n.splice(r,1):n[r].children&&t(n[r].children)};t(this.options.items)}return this}destroy(){this._destroyed||(this._destroyed=!0,this._bound?this._teardown():(this._element=null,this.root=null,this.cleanup.events.clear()),this.cleanup=null,this.options=null)}};function U(e){return Array.isArray(e)?e.map(e=>({...e,options:Array.isArray(e.options)?e.options.map(e=>e&&typeof e==`object`?{...e}:e):e.options})):[]}function W(e){return{...e,fields:Array.isArray(e.fields)?U(e.fields):e.fields}}function Ue(e){return e&&typeof e==`object`?e:{value:e,text:e}}function G(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function We(e){return e==null||typeof e==`string`||typeof e==`function`||Array.isArray(e)||C(e)}function Ge(e){return G(e)}function Ke(e){return e==null||typeof e==`object`&&typeof e.next==`function`&&typeof e.back==`function`&&typeof e.snapshot==`function`}function K(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function qe(e,t){return!Array.isArray(e)||!G(t)?e:e.map(e=>{if(!e?.name||!K(t,e.name))return e;let n=t[e.name];if(e.type===`checkbox`||e.type===`radio`){let t=e.value??`on`,r=Array.isArray(n)?n.map(String).includes(String(t)):n===!0||String(n)===String(t);return{...e,checked:r}}return{...e,value:n}})}function Je(e){return{...e,fields:Array.isArray(e.fields)?U(e.fields):null,loading:!1,submitting:!1,visible:!1,data:null,extraData:null}}function Ye(e,t){return!t||typeof t!=`object`?e:Object.assign(e,t)}let Xe={validate:We,message:`expects string, Node, array, function or null.`},Ze={types:[`array`,`null`]},Qe={validate:e=>typeof e==`string`||e===!1,message:`expects string or false.`},q={title:{default:`Tip`,type:`string`},content:{default:``,...Xe},position:{default:`center`,type:`string`},confirmText:{default:`Confirm`,type:`string`},cancelText:{default:`Cancel`,type:`string`},showCancel:{default:!0,type:`boolean`},showClose:{default:!0,type:`boolean`},showBack:{default:!1,type:`boolean`},showNext:{default:!1,type:`boolean`},fullscreen:{default:!1,type:`boolean`},flow:{default:null,validate:Ke,message:`expects a Flow instance or null.`},onShow:{default:null,types:[`function`,`null`]},onShown:{default:null,types:[`function`,`null`]},onHide:{default:null,types:[`function`,`null`]},onHidden:{default:null,types:[`function`,`null`]},onConfirm:{default:null,types:[`function`,`null`]},onSubmit:{default:null,types:[`function`,`null`]},onCancel:{default:null,types:[`function`,`null`]},onBack:{default:null,types:[`function`,`null`]},onNext:{default:null,types:[`function`,`null`]},fields:{default:null,...Ze},header:{default:!0,type:`boolean`},footer:{default:!0,type:`boolean`},style:{default:null,types:[`string`,`null`,`object`]},id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():v():e??v()},escClose:{default:!1,type:`boolean`},bgClose:{default:!1,type:`boolean`},lazy:{default:!1,type:`boolean`},backText:{default:`Back`,...Qe},nextText:{default:`Next`,...Qe}},$e={...q,loading:{default:!1,type:`boolean`},submitting:{default:!1,type:`boolean`},visible:{default:!1,type:`boolean`},data:{default:null,types:[`object`,`null`]},extraData:{default:null,types:[`object`,`null`]}},et=new Set([`id`,`lazy`]),tt={validate:e=>!!e&&typeof e==`object`&&!Array.isArray(e),message:`expects an object.`},nt={validate:Ge,message:`expects an options object.`},J=[],Y=0,X=``;var rt=class{constructor(e={}){let t=_(e,q,`Modal.options`);this.init(t)}static get modalStack(){return J}init(e){this.dom={root:null},this.cleanup={events:j(),state:null,view:null,hideTimer:null},this.cache={initial:W(e),fieldIds:new Map,baseStyle:``,previousActiveElement:null,formId:`${e.id}_form`},this.runtime={scrollLocked:!1,visibleApplied:!1,destroyed:!1},this.state=(0,t.createDeepStore)(Je(e)),this.bindReactiveVisibility(),!this.state.lazy&&S()&&this.buildRoot()}get root(){return this.dom?.root||null}set root(e){this.dom||(this.dom={}),this.dom.root=e}get modal(){return this.dom.modal||(this.root?D(`.j-modal`,this.root):null)}get form(){return this.dom.form&&this.root?.contains(this.dom.form)?this.dom.form:this.root?D(`form`,this.root):null}get initialOptions(){return this.cache.initial?W(this.cache.initial):null}get initialFields(){return this.cache.initial?.fields?U(this.cache.initial.fields):null}get initialContent(){return this.cache.initial?.content??null}get content(){return this.state?.content??null}get data(){return this.state?.data??null}get visible(){return!!this.state?.visible}set visible(e){this.state&&(0,t.flushSync)(()=>{this.state.visible=!!e})}buildRoot(){if(this.root)return this.root;let{id:e}=this.state,n=(0,t.jsx)(`div`,{className:()=>`j-popup-layout is-${this.state.position}`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":()=>this.state.header?`${e}_title`:null,"aria-label":()=>this.state.header?null:this.state.title||`Modal`,children:(0,t.jsx)(`div`,{className:()=>this.state.fullscreen?`j-modal is-fullscreen`:`j-modal`,id:e,role:`document`,ref:e=>{this.dom.modal=e,this.applyStyle(e,this.state.style)},children:[(0,t.jsx)(`div`,{className:`modal-header`,style:()=>({display:this.state.header?``:`none`}),ref:e=>{this.dom.header=e}}),(0,t.jsx)(`div`,{className:`modal-body`,ref:e=>{this.dom.body=e}}),(0,t.jsx)(`div`,{className:`modal-footer`,style:()=>({display:this.state.footer?``:`none`}),ref:e=>{this.dom.footer=e}})]})});return this.root=n,this.mountView(),n}mountView(){this.cleanup.view||!this.dom.body||(this.cleanup.view=(0,t.createRoot)(e=>(this.dom.header&&(0,t.onCleanup)((0,t.render)(()=>this.headerView(),this.dom.header)),(0,t.onCleanup)((0,t.render)(()=>this.bodyView(),this.dom.body)),this.dom.footer&&(0,t.onCleanup)((0,t.render)(()=>this.footerView(),this.dom.footer)),this.bindReactiveLoading(),this.bindReactiveStyle(),e)))}headerView(){return()=>this.state.header?[(0,t.jsx)(`div`,{className:`modal-title`,id:`${this.state.id}_title`,children:()=>this.state.title}),this.state.showClose?(0,t.jsx)(`button`,{type:`button`,className:`is-reset modal-close`,"data-action":`close`,"aria-label":`close`,children:I(`close`)}):null]:null}footerView(){return()=>this.state.footer?[this.state.showCancel?(0,t.jsx)(`button`,{type:`button`,className:`j-button is-ghost modal-cancel`,"data-action":`close`,"aria-label":`close`,disabled:()=>this.isBusy(),children:()=>this.state.cancelText}):null,this.state.showBack&&this.state.backText!==!1?(0,t.jsx)(`button`,{type:`button`,className:`j-button is-ghost modal-back`,"data-action":`back`,disabled:()=>this.isBusy(),children:()=>this.state.backText}):null,this.state.showNext&&this.state.nextText!==!1?(0,t.jsx)(`button`,{type:`button`,className:`j-button is-secondary modal-next`,"data-action":`next`,disabled:()=>this.isBusy(),children:()=>this.state.nextText}):null,(0,t.jsx)(`button`,{type:()=>this.isFormMode()?`submit`:`button`,form:()=>this.isFormMode()?this.cache.formId:null,className:`j-button is-primary modal-confirm`,"data-action":`confirm`,disabled:()=>this.isBusy(),children:()=>this.state.confirmText})]:null}bodyView(){return this.isFormMode()?this.formView():(this.dom.form=null,this.contentView(this.state.content))}formView(){return(0,t.jsx)(`div`,{className:`modal-form-container`,children:(0,t.jsx)(`form`,{id:this.cache.formId,className:`j-form is-vertical is-item-vertical`,ref:e=>{this.dom.form=e},onSubmit:e=>this.handleFormSubmit(e),onKeyDown:e=>this.handleFormKeydown(e),children:(this.state.fields||[]).map((e,t)=>this.fieldView(e,t))})})}fieldView(e,n){let r=this.resolveFieldId(e,n),i=this.labelView(e,r);return(0,t.jsx)(`div`,{className:`form-item`,style:{display:e.type===`hidden`?`none`:``},children:[i,(0,t.jsx)(`div`,{className:`form-control`,children:this.controlView(e,r)})]})}labelView(e,n){return(0,t.jsx)(`label`,{className:`item-label ${e.required?`is-required`:``}`,for:n,style:{display:e.label===void 0?`none`:``},children:e.label===void 0?``:e.label})}resolveFieldId(e,t){if(e.id)return e.id;let n=e.name||t;return this.cache.fieldIds.has(n)||this.cache.fieldIds.set(n,`${this.state.id}_field_${t}_${v()}`),this.cache.fieldIds.get(n)}controlView(e,t){switch(e.type){case`textarea`:return this.textareaView(e,t);case`select`:return this.selectView(e,t);default:return this.inputView(e,t)}}inputView(e,n){let r=e.type||`text`,i={type:r,className:`j-input`,name:e.name,id:n,placeholder:e.placeholder||``,value:e.value??``,autocomplete:e.autocomplete||this.autoComplete(r),required:!!e.required,disabled:!!e.disabled,readonly:!!e.readonly};return e.checked!==void 0&&(i.checked=!!e.checked),(0,t.jsx)(`input`,i)}textareaView(e,n){return(0,t.jsx)(`textarea`,{className:`j-textarea`,name:e.name,id:n,placeholder:e.placeholder||``,value:e.value??``,required:!!e.required,disabled:!!e.disabled,readonly:!!e.readonly})}selectView(e,n){let r=e.value;return(0,t.jsx)(`select`,{className:`j-select`,name:e.name,id:n,autocomplete:`off`,required:!!e.required,disabled:!!e.disabled,readonly:!!e.readonly,multiple:!!e.multiple,children:(e.options||[]).map(e=>{let n=Ue(e);return(0,t.jsx)(`option`,{value:n.value??``,disabled:!!n.disabled,selected:this.isSelected(r,n.value),children:n.text??n.label??n.value??``})})})}contentView(e){if(typeof e==`function`)return e(this);if(Array.isArray(e)||C(e))return e;if(e==null||typeof e!=`string`)return``;let t=document.createElement(`template`);return t.innerHTML=e,Array.from(t.content.childNodes)}bindReactiveLoading(){let e=null;(0,t.createEffect)(()=>{this.state.loading&&!e?(e=(0,t.jsx)(`div`,{className:`j-loading is-active`,"aria-live":`polite`,children:(0,t.jsx)(`div`,{className:`loading-spinner`})}),this.dom.modal.appendChild(e)):!this.state.loading&&e&&(e.remove(),e=null)}),(0,t.onCleanup)(()=>{e?.remove(),e=null})}bindReactiveStyle(){(0,t.createEffect)(()=>{let e=this.state.style;this.dom.modal&&this.applyStyle(this.dom.modal,e)})}autoComplete(e){switch(e){case`password`:return`current-password`;case`email`:return`email`;default:return`on`}}isSelected(e,t){return Array.isArray(e)?e.map(String).includes(String(t)):e==t}isFormMode(){return Array.isArray(this.state.fields)}isBusy(){return!!(this.state.loading||this.state.submitting)}validateOptionPatch(e,t=`Modal.update`){g(`options`,e,nt,t);for(let n of Object.keys(e)){if(!Object.prototype.hasOwnProperty.call(q,n))throw Error(`Validator: ${t}.${n} is not a supported modal option.`);if(et.has(n))throw Error(`Modal.update: "${n}" cannot be updated after initialization.`);g(n,e[n],q[n],t)}}applyOptions(e,{validate:n=!0}={}){if(n&&this.validateOptionPatch(e),!e||Object.keys(e).length===0)return this;let r=Object.prototype.hasOwnProperty.call(e,`fields`);if(Object.prototype.hasOwnProperty.call(e,`content`)&&!r&&this.isFormMode())throw Error(`Modal.update: Cannot update content when fields are defined.`);return(0,t.flushSync)(()=>{r&&(this.cache.fieldIds.clear(),this.state.fields=Array.isArray(e.fields)?U(e.fields):null);for(let[t,n]of Object.entries(e))t!==`fields`&&(this.state[t]=n)}),Object.prototype.hasOwnProperty.call(e,`style`)&&this.modal&&this.applyStyle(this.modal,this.state.style),this.visible&&(Object.prototype.hasOwnProperty.call(e,`bgClose`)||Object.prototype.hasOwnProperty.call(e,`escClose`))&&this.bindEvents(this.root),this}applyStyle(e,t){if(e.removeAttribute(`style`),!t){this.cache.baseStyle=``;return}if(typeof t==`string`){e.style.cssText=t,this.cache.baseStyle=e.getAttribute(`style`)||``;return}typeof t==`object`&&Object.entries(t).forEach(([t,n])=>{if(n==null)return;let r=t.startsWith(`--`)?t:t.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`);e.style.setProperty(r,String(n))}),this.cache.baseStyle=e.getAttribute(`style`)||``}normalizeIcon(e){if(!(e instanceof Element))return;let t=D(`.modal-close`,e);t&&(t.style.transform=`translateX(${t.clientHeight/3}px)`)}bindReactiveVisibility(){this.cleanup.state=(0,t.createRoot)(e=>((0,t.createEffect)(()=>{let e=!!this.state.visible;(0,t.untrack)(()=>this.applyVisibility(e))}),e))}applyVisibility(e){if(e!==this.runtime.visibleApplied){if(e){this.showFromState();return}this.hideFromState()}}showFromState(){if(this.runtime.destroyed)throw Error(`Modal: The current instance has been destroyed.`);if(!S())throw Error(`Modal.show: DOM environment is required.`);this.root||this.buildRoot(),this.cancelHideTimer(),this.resetAnimationStyles();let{onShow:e,onShown:t}=this.state;e&&e(),this.cache.previousActiveElement=document.activeElement,this.root.parentNode||document.body.appendChild(this.root),this.lockScroll(),this.pushStack(),this.runtime.visibleApplied=!0,this.normalizeIcon(this.modal),this.bindEvents(this.root),this.focusFirst(),t&&t()}hideFromState(){if(!this.runtime.visibleApplied||!this.root)return;let{onHide:e,onHidden:n}=this.state;e&&e(),this.runtime.visibleApplied=!1,this.removeFromStack(),this.clearEvents(),(0,t.flushSync)(()=>{this.state.loading=!1,this.state.extraData=null,this.state.data=null}),this.modal&&(this.modal.style.transition=`opacity 300ms ease-out, transform 300ms ease-out`,this.modal.style.opacity=`0`,this.modal.style.transform=`scale(0.3)`),this.cancelHideTimer(),this.cleanup.hideTimer=setTimeout(()=>this.finishHide(n),300)}bindEvents(e){this.clearEvents(),this.bindOverlayCloseEvent(e),this.bindDocumentKeyEvent(),this.bindInsideEvent()}bindOverlayCloseEvent(e){e&&this.cleanup.events.on(`bg`,e,`click`,t=>{this.state.bgClose&&t.target===e&&this.isTop()&&this.hide()})}bindDocumentKeyEvent(){this.cleanup.events.on(`keydown`,document,`keydown`,e=>{if(!(!this.visible||!this.isTop())){if(e.key===`Escape`&&this.state.escClose){e.preventDefault(),this.hide();return}e.key===`Tab`&&this.trapFocus(e)}})}bindInsideEvent(){this.modal&&this.cleanup.events.on(`inside`,this.modal,`click`,e=>{let t=(e.target instanceof Element?e.target:null)?.closest(`[data-action]`);if(!t||!this.modal.contains(t))return;let n=t.dataset.action;if(n===`cancel`||n===`close`||t.classList.contains(`modal-close`)){this.handleCancel();return}if(n===`submit`){this.requestSubmit();return}if(n===`back`){this.handleBack();return}if(n===`next`){this.handleNext();return}if(n===`confirm`){if(this.isFormMode()){if(t.classList.contains(`modal-confirm`))return;this.requestSubmit();return}this.handleConfirm()}})}clearEvents(){this.cleanup.events.clear()}requestSubmit(){if(!this.form){this.handleConfirm();return}if(typeof this.form.requestSubmit==`function`){this.form.requestSubmit();return}let e=new Event(`submit`,{bubbles:!0,cancelable:!0});this.form.dispatchEvent(e)}async handleFormSubmit(e){if(e.preventDefault(),this.isBusy())return;let n=e.currentTarget;if(!n.checkValidity()){n.reportValidity();return}let r=Ye(this.collectFormData(n),this.state.extraData);(0,t.flushSync)(()=>{this.state.data=r}),await this.handleSubmit(r)}handleFormKeydown(e){if(e.key!==`Enter`||e.isComposing||this.isBusy())return;let t=e.target,n=t?.tagName?.toLowerCase(),r=t?.type?.toLowerCase();n!==`textarea`&&(r===`button`||r===`submit`||r===`reset`||(e.preventDefault(),this.requestSubmit()))}collectFormData(e){let t={},n=new FormData(e);for(let[e,r]of n.entries())Object.prototype.hasOwnProperty.call(t,e)?t[e]=Array.isArray(t[e])?[...t[e],r]:[t[e],r]:t[e]=r;return t}async handleNext(){if(!this.isBusy()){if(this.hasFlow()){await this.moveFlow(`next`);return}if(typeof this.state.onNext==`function`){(0,t.flushSync)(()=>{this.state.submitting=!0});try{let e=await Promise.resolve(this.state.onNext(this));G(e)&&this.update(e)}catch(e){console.error(`Modal.onNext error:`,e)}finally{this.state&&(0,t.flushSync)(()=>{this.state.submitting=!1})}}}}async handleBack(){if(!this.isBusy()){if(this.hasFlow()){await this.moveFlow(`back`);return}if(typeof this.state.onBack==`function`){(0,t.flushSync)(()=>{this.state.submitting=!0});try{let e=await Promise.resolve(this.state.onBack(this));G(e)&&this.update(e)}catch(e){console.error(`Modal.onBack error:`,e)}finally{this.state&&(0,t.flushSync)(()=>{this.state.submitting=!1})}}}}hasFlow(){return Ke(this.state.flow)&&!!this.state.flow}async moveFlow(e){let n=this.createFlowPayload();if(n!==!1){(0,t.flushSync)(()=>{this.state.submitting=!0});try{let t=await this.state.flow[e](n);this.syncFlowView(this.state.flow,t)}catch(t){console.error(`Modal.flow.${e} error:`,t),this.syncFlowView(this.state.flow)}finally{this.state&&(0,t.flushSync)(()=>{this.state.submitting=!1})}}}createFlowPayload(){if(!this.isFormMode())return null;let e=this.form;if(!e)return this.state.data||null;if(!e.checkValidity())return e.reportValidity(),!1;let n=Ye(this.collectFormData(e),this.state.extraData);return(0,t.flushSync)(()=>{this.state.data=n}),this.state.data}syncFlowView(e,t=null){if(!e||!this.state)return;let n=e.snapshot()||t,r=e.currentStep||n?.currentStep||t?.currentStep,i={...G(r?.view)?r.view:{}};Array.isArray(i.fields)&&(i.fields=qe(i.fields,n?.currentData)),K(i,`showBack`)||(i.showBack=!!n?.canBack),K(i,`showNext`)||(i.showNext=!!n?.canNext),!K(i,`fields`)&&K(i,`content`)&&(i.fields=null),this.update(i)}async handleConfirm(){if(!this.isBusy()){(0,t.flushSync)(()=>{this.state.submitting=!0});try{this.state.onConfirm&&await Promise.resolve(this.state.onConfirm()),this.hide()}catch(e){console.error(`Modal.onConfirm error:`,e)}finally{this.state&&(0,t.flushSync)(()=>{this.state.submitting=!1})}}}async handleCancel(){if(!this.isBusy()){(0,t.flushSync)(()=>{this.state.submitting=!0});try{this.state.onCancel&&await Promise.resolve(this.state.onCancel(this)),this.hide()}catch(e){console.error(`Modal.onCancel error:`,e)}finally{this.state&&(0,t.flushSync)(()=>{this.state.submitting=!1})}}}async handleSubmit(e){if(this.state.onSubmit){(0,t.flushSync)(()=>{this.state.submitting=!0});try{await Promise.resolve(this.state.onSubmit(e)),this.state.extraData=null}catch(e){console.error(`Modal.onSubmit error:`,e)}finally{this.state&&(0,t.flushSync)(()=>{this.state.submitting=!1})}}}trapFocus(e){if(!this.modal)return;let t=Array.from(O(`a[href], button:not([disabled]):not([data-action=close]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])`,this.modal)).filter(e=>e.offsetParent!==null||e===document.activeElement);if(t.length===0){e.preventDefault(),this.modal.focus();return}let n=t[0],r=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),r.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n.focus())}focusFirst(){if(!this.modal)return;let e=D(`input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]):not([data-action=close]), [tabindex]:not([tabindex="-1"])`,this.form||this.modal);e?e.focus():(this.modal.setAttribute(`tabindex`,`-1`),this.modal.focus())}lockScroll(){this.runtime.scrollLocked||!x()||(Y===0&&(X=document.body.style.overflow,document.body.style.overflow=`hidden`),Y+=1,this.runtime.scrollLocked=!0)}unlockScroll(){!this.runtime.scrollLocked||!x()||(Y=Math.max(0,Y-1),Y===0&&(document.body.style.overflow=X,X=``),this.runtime.scrollLocked=!1)}pushStack(){this.removeFromStack(),J.push(this)}removeFromStack(){let e=J.indexOf(this);e>=0&&J.splice(e,1)}isTop(){return J[J.length-1]===this}cancelHideTimer(){this.cleanup.hideTimer&&(clearTimeout(this.cleanup.hideTimer),this.cleanup.hideTimer=null)}resetAnimationStyles(){this.modal&&(this.cache.baseStyle?this.modal.setAttribute(`style`,this.cache.baseStyle):this.modal.removeAttribute(`style`))}finishHide(e){this.cleanup.hideTimer=null,this.root?.parentNode&&this.root.parentNode.removeChild(this.root),this.resetAnimationStyles(),this.unlockScroll(),this.restoreFocus(),e&&e()}restoreFocus(){let e=this.cache.previousActiveElement;this.cache.previousActiveElement=null,e&&typeof e.focus==`function`&&document.contains(e)&&e.focus()}assertActive(e){if(this.runtime.destroyed)throw Error(`Modal.${e}: The current instance has been destroyed.`)}setState(e,n){if(this.assertActive(`setState`),typeof e!=`string`||!e)throw Error(`Modal.setState: key expects a non-empty string.`);if(!K($e,e))throw Error(`Modal.setState: "${e}" is not a supported state key.`);if(et.has(e))throw Error(`Modal.setState: "${e}" cannot be updated after initialization.`);return g(e,n,$e[e],`Modal.setState`),(0,t.flushSync)(()=>{e===`fields`&&this.cache.fieldIds.clear(),this.state[e]=e===`fields`&&Array.isArray(n)?U(n):n}),this}show(){return this.assertActive(`show`),(0,t.flushSync)(()=>{this.state.visible=!0}),this}hide(){return this.assertActive(`hide`),(0,t.flushSync)(()=>{this.state.visible=!1}),this}setFields(e){return g(`data`,e,Ze,`Modal.setFields`),this.applyOptions({fields:e},{validate:!1}),this}addFields(e){return g(`data`,e,tt,`Modal.addFields`),(0,t.flushSync)(()=>{this.state.extraData=e}),this}setContent(e){if(g(`content`,e,Xe,`Modal.setContent`),this.isFormMode())throw Error(`Modal.setContent: Cannot setContent when fields are defined.`);return this.applyOptions({content:e},{validate:!1}),this}update(e={}){return this.applyOptions(e)}reset(){this.cache.fieldIds.clear();let e=W(this.cache.initial);return delete e.id,delete e.lazy,this.applyOptions(e,{validate:!1}),(0,t.flushSync)(()=>{this.state.data=null,this.state.extraData=null}),this}resetContent(){return this.setContent(this.cache.initial?.content??``)}resetFields(){return this.setFields(Array.isArray(this.cache.initial?.fields)?U(this.cache.initial.fields):null)}destroy(){if(this.runtime.destroyed)return;this.runtime.destroyed=!0;let e=!!this.runtime.visibleApplied,t=this.state?.onHide,n=this.state?.onHidden;e&&t&&t(),this.cancelHideTimer(),this.clearEvents(),this.removeFromStack(),this.unlockScroll(),this.cleanup.state?.(),this.cleanup.state=null,this.cleanup.view?.(),this.cleanup.view=null,this.root?.parentNode&&this.root.parentNode.removeChild(this.root),e&&n&&n(),this.cleanup.events.clear(),this.dom={root:null},this.cache={initial:null,fieldIds:null,baseStyle:``,previousActiveElement:null,formId:``},this.state=null,this.runtime.visibleApplied=!1}};let it={content:{default:``,validate:T,message:`expects string, Node, array, function or null.`},overlay:{default:!0,type:`boolean`},filter:{default:!0,type:`boolean`},direction:{default:`left`,type:`string`,enum:[`top`,`right`,`bottom`,`left`]},animation:{default:`slide`,type:`string`,enum:[`slide`,`push`,`none`]},bgClose:{default:!0,type:`boolean`},escClose:{default:!0,type:`boolean`},id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():v():e??v()},onShow:{default:null,types:[`function`,`null`]},onShown:{default:null,types:[`function`,`null`]},onHide:{default:null,types:[`function`,`null`]},onHidden:{default:null,types:[`function`,`null`]}};var at=class{constructor(e={}){if(!S())throw Error(`Offcanvas: DOM render environment is required.`);this.options=_(e,it,`Offcanvas.options`),this._init(this.options)}_init(e){this.isVisible=!1,e.overlay&&(this._overlay=this._buildOverlay(e)),this.root=this._buildRoot(e),this.cleanup={events:j()},this._removeTimer=null,this._showTimer=null,this._shownTimer=null,this._destroyed=!1}_esc(e){e.key===`Escape`&&this.isVisible&&this.hide()}_bindEvents(){let{bgClose:e,escClose:t}=this.options;this._unbindEvents(),this._overlay&&e&&this.cleanup.events.on(`overlay`,this._overlay,`click`,()=>{this.hide()}),t&&this.cleanup.events.on(`esc`,document,`keydown`,e=>this._esc(e)),this.cleanup.events.on(`close`,this.root,`click`,e=>{let t=e.target.dataset.action;(t===`close`||t===`cancel`)&&this.hide()})}_unbindEvents(){this.cleanup?.events.clear()}_buildOverlay(e){let n=e.filter,r=n?`backdropFilter`:``,i=n?`blur(2px)`:``;return(0,t.jsx)(`div`,{className:`j-offcanvas-overlay`,style:n?{[r]:i}:{}})}_buildRoot(e){let{id:n,direction:r,animation:i,content:a}=e;return(0,t.jsx)(`div`,{className:`j-offcanvas ${r?`is-${r}`:``} ${i?`is-${i}`:``}`,id:n,children:(0,t.jsx)(`div`,{className:`offcanvas-content`,children:E(a,this)})})}_render(){let{overlay:e,animation:t,direction:n}=this.options;if(e&&document.body.appendChild(this._overlay),document.body.appendChild(this.root),document.body.style.overflow=`hidden`,t===`push`){document.body.classList.add(`offcanvas-push-body`);let e=window.scrollY;this._overlay&&(this._overlay.style.top=`${e}px`),this.root.style.top=`${e}px`}clearTimeout(this._showTimer),this._showTimer=setTimeout(()=>{this.root&&(this._overlay&&this._overlay.classList.add(`is-active`),t===`push`&&document.body.classList.add(`offcanvas-push-${n}`),this.root.classList.add(`is-active`),this._showTimer=null)},10)}_remove(){let{animation:e,direction:t}=this.options;this._overlay&&this._overlay.classList.remove(`is-active`),this.root.classList.remove(`is-active`),e===`push`&&document.body.classList.remove(`offcanvas-push-${t}`),clearTimeout(this._removeTimer),this._removeTimer=setTimeout(()=>{this._overlay&&this._overlay.parentNode&&this._overlay.parentNode.removeChild(this._overlay),this.root&&this.root.parentNode&&this.root.parentNode.removeChild(this.root),e===`push`&&document.body.classList.remove(`offcanvas-push-body`),document.body.style.overflow=``,this._removeTimer=null},100)}async show(){if(this._destroyed)return;let{onShow:e,onShown:t}=this.options;this.isVisible||(e&&await Promise.resolve(e()),this._render(),this._bindEvents(),this.isVisible=!0,clearTimeout(this._shownTimer),this._shownTimer=setTimeout(()=>{this._destroyed||(t&&t(),this._shownTimer=null)},100))}async hide(){if(this._destroyed)return;let{onHide:e,onHidden:t}=this.options;this.isVisible&&(e&&await Promise.resolve(e()),this._unbindEvents(),this._remove(),this.isVisible=!1,t&&t())}destroy(){if(this._destroyed)return;this._destroyed=!0;let e=this.isVisible;clearTimeout(this._removeTimer),clearTimeout(this._showTimer),clearTimeout(this._shownTimer),e&&(this._unbindEvents(),this.root?.classList.remove(`is-active`)),this.root?.parentNode?.removeChild(this.root),this._overlay?.parentNode?.removeChild(this._overlay),document.body.style.overflow=``,document.body.classList.remove(`offcanvas-push-body`,`offcanvas-push-${this.options.direction}`),this.options=null,this.root=null,this._overlay=null,this.cleanup?.events.clear(),this.cleanup=null,this._removeTimer=null,this._showTimer=null,this._shownTimer=null,this.isVisible=null}};let ot={ball:{default:{color:`var(--primary, #3e63dd)`,size:`10px`},type:`object`,validate:e=>e&&Object.keys(e).length===2&&typeof e.color==`string`&&typeof e.size==`string`,message:`expects an object with two string properties: "color" and "size".`},from:{default:null,types:[`HTMLElement`,`string`]},to:{default:null,types:[`HTMLElement`,`string`]},direction:{default:`center`,type:`string`,enum:[`center`,`top-right`,`top-left`,`bottom-right`,`bottom-left`]},showDelay:{default:0,type:`number`},hideDelay:{default:0,type:`number`},onShow:{default:null,types:[`function`,`null`]},onHidden:{default:null,types:[`function`,`null`]}};var st=class{constructor(e){if(!S())throw Error(`Parabola: DOM render environment is required.`);this.options=_(e,ot,`Parabola.options`),this._init(this.options)}_init(e){if(this.hidden=!1,this._ball=null,this._animationId=null,this._showTimeoutId=null,this._hideTimeoutId=null,this.hidden)return;let t=k(e.from),n=k(e.to);if(!t||!n)throw this.hidden=!0,Error(`Parabola: from or to element not found.`);this._createBall(e)}_createBall(e){if(this.hidden||this._ball)return;let{color:n,size:r}=e.ball;this._ball=(0,t.jsx)(`div`,{className:`parabola-ball`,style:{backgroundColor:n,width:r,height:r,position:`fixed`,borderRadius:`50%`,transform:`translate(-50%, -50%)`,pointerEvents:`none`,zIndex:`9999`,opacity:`1`}}),document.body.appendChild(this._ball)}_calculatePath(e){let t=k(e.from)?.getBoundingClientRect(),n=k(e.to)?.getBoundingClientRect();if(!t||!n)return null;let{left:r,top:i,width:a,height:o}=t,{left:s,top:c,width:l,height:u}=n,d,f;switch(e.direction){case`top-left`:d=r+a*.2,f=i+o*.2;break;case`top-right`:d=r+a*.8,f=i+o*.2;break;case`bottom-left`:d=r+a*.2,f=i+o*.8;break;case`bottom-right`:d=r+a*.8,f=i+o*.8;break;default:d=r+a/2,f=i+o/2}let p=s+l/2,m=c+u/2;return{startX:d,startY:f,endX:p,endY:m}}_easeOutCubic(e){return 1-(1-e)**3}_animate(e,t,n,r,i=800){if(this.hidden)return;let a=performance.now(),o=n-e,s=r-t,c=n=>{if(this.hidden)return;let r=n-a,l=Math.min(r/i,1),u=this._easeOutCubic(l),d=e+o*u,f=t+-100*Math.sin(Math.PI*u)+s*u,p=1-l;this._ball.style.left=`${d}px`,this._ball.style.top=`${f}px`,this._ball.style.opacity=`${p}`,this._ball.style.transform=`translate(-50%, -50%) scale(${1-u*.3})`,l<1?this._animationId=requestAnimationFrame(c):this.destroy()};this._animationId=requestAnimationFrame(c)}async show(){return this.hidden?!1:new Promise(e=>{this._showTimeoutId=setTimeout(()=>{if(this.hidden){e(!1);return}let t=this._calculatePath(this.options);if(!t){this.destroy(),e(!1);return}this._ball.style.left=`${t.startX}px`,this._ball.style.top=`${t.startY}px`,this.options.onShow&&this.options.onShow(),this._animate(t.startX,t.startY,t.endX,t.endY),e(!0)},this.options.showDelay)})}destroy(){this.hidden||(this._ball?.parentNode&&this._ball.parentNode.removeChild(this._ball),this._showTimeoutId&&clearTimeout(this._showTimeoutId),this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._animationId&&cancelAnimationFrame(this._animationId),this._ball=null,this.hidden=!0,this.options.onHidden&&this.options.onHidden())}start(){return this.show()}};let ct={data:{default:null,validate:e=>e==null||Array.isArray(e),message:`expects an array or null.`},loop:{default:!1,type:`boolean`},autoplay:{default:!1,type:`boolean`},delay:{default:3e3,type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},lazyload:{default:!0,type:`boolean`},pagination:{default:!0,type:`boolean`},navigation:{default:!0,type:`boolean`},speed:{default:300,type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},touchRatio:{default:1,type:`number`,validate:e=>e>0,message:`expects a number greater than 0.`},touchAngle:{default:45,type:`number`,validate:e=>e>=0&&e<=90,message:`expects a number between 0 and 90.`},longSwipesMs:{default:300,type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},longSwipesRatio:{default:.05,type:`number`,validate:e=>e>=0&&e<=1,message:`expects a number between 0 and 1.`},preventClick:{default:!0,type:`boolean`}},lt={validate:e=>!e||typeof e!=`object`||Array.isArray(e)?!1:(e.image==null||typeof e.image==`string`)&&(e.url==null||typeof e.url==`string`)&&(e.title==null||typeof e.title==`string`)&&(e.sort==null||typeof e.sort==`number`)&&(e.children==null||T(e.children)),message:`expects items with optional image, url, title, sort and children fields.`};function ut(e){return!!e?.closest?.(`a, button, input, textarea, select, label, [data-swiper-ignore]`)}var dt=class{constructor(e,t={}){if(!S())throw Error(`Swiper: DOM render environment is required.`);let n=_(t,ct,`Swiper.options`),r=Array.isArray(n.data),i=typeof e==`string`?D(e):w(e)?e:null;!i&&!r&&g(`container`,i,{validate:w,message:`expects a valid HTMLElement or selector.`},`Swiper`);let a=i,o=null,s=r;if(r)o=i||document.body,a=document.createElement(`div`),a.className=`j-swiper`,o.appendChild(a);else if(!a.classList.contains(`j-swiper`))throw Error(`Swiper: root element must have .j-swiper.`);this.settings={options:n};let c=r?this.createDataView(a,n.data):D(`.swiper-wrapper`,a);if(!c)throw Error(`Swiper: .swiper-wrapper not found.`);let l=O(`.swiper-slide`,c);this.dom={root:a,wrapper:c,slides:l,pagination:D(`.swiper-pagination`,a),prevButton:D(`.swiper-navigation.is-prev`,a),nextButton:D(`.swiper-navigation.is-next`,a),bullets:[],createdPagination:!1,createdPrevButton:!1,createdNextButton:!1,createdRoot:s,createdSlides:r,mountTarget:o},this.runtime={realCount:l.length,index:0,transform:0,width:0,timer:null,logs:[],startTarget:null,touching:!1,scrolling:!1,swiping:!1,animating:!1,clickPrevented:!1,destroyed:!1},this.cleanup={events:j()},this.slides.length!==0&&this.init()}createDataView(e,t){let n=this.normalizeData(t),r=document.createElement(`div`);return r.className=`swiper-wrapper`,e.textContent=``,n.forEach((e,t)=>{r.appendChild(this.createDataSlide(e,t,this.config))}),e.appendChild(r),r}normalizeData(e){e.forEach((e,t)=>{g(String(t),e,lt,`Swiper.options.data`)});let t=e.map((e,t)=>({...e,index:t}));return t.some(e=>e.sort!=null)?t.sort((e,t)=>e.sort==null&&t.sort==null?e.index-t.index:e.sort==null?1:t.sort==null?-1:e.sort-t.sort||e.index-t.index):t}createDataSlide(e,t,n=this.config){let r=e.url?document.createElement(`a`):document.createElement(`div`);if(r.className=`swiper-slide`,r.setAttribute(`data-swiper-index`,String(t)),e.url&&(r.href=e.url),e.children!=null)return r.append(...E(e.children,{swiper:this,item:e,index:t})),r;if(e.image){let t=document.createElement(`img`);t.className=`swiper-image`,t.alt=e.title||``,t.loading=`lazy`,n.lazyload?t.dataset.lazy=e.image:t.src=e.image,r.appendChild(t)}if(e.title){let t=document.createElement(`span`);t.className=`swiper-slide-title`,t.textContent=e.title,r.appendChild(t)}return r}get config(){return this.settings?.options||{}}set config(e){this.settings||(this.settings={}),this.settings.options=e||{}}get el(){return this.dom?.root||null}set el(e){this.dom||(this.dom={}),this.dom.root=e}get wrapper(){return this.dom?.wrapper||null}set wrapper(e){this.dom||(this.dom={}),this.dom.wrapper=e}get slides(){return this.dom?.slides||[]}set slides(e){this.dom||(this.dom={}),this.dom.slides=Array.isArray(e)?e:[]}get bullets(){return this.dom?.bullets||[]}set bullets(e){this.dom||(this.dom={}),this.dom.bullets=Array.isArray(e)?e:[]}get pagination(){return this.dom?.pagination||null}set pagination(e){this.dom||(this.dom={}),this.dom.pagination=e}get prevButton(){return this.dom?.prevButton||null}set prevButton(e){this.dom||(this.dom={}),this.dom.prevButton=e}get nextButton(){return this.dom?.nextButton||null}set nextButton(e){this.dom||(this.dom={}),this.dom.nextButton=e}get realCount(){return this.runtime?.realCount||0}set realCount(e){this.runtime||(this.runtime={}),this.runtime.realCount=Number(e)||0}get index(){return this.runtime?.index||0}set index(e){this.runtime||(this.runtime={}),this.runtime.index=Number(e)||0}get transform(){return this.runtime?.transform||0}set transform(e){this.runtime||(this.runtime={}),this.runtime.transform=Number(e)||0}get width(){return this.runtime?.width||0}set width(e){this.runtime||(this.runtime={}),this.runtime.width=Number(e)||0}get timer(){return this.runtime?.timer||null}set timer(e){this.runtime||(this.runtime={}),this.runtime.timer=e}get logs(){return this.runtime?.logs||[]}set logs(e){this.runtime||(this.runtime={}),this.runtime.logs=Array.isArray(e)?e:[]}get touching(){return!!this.runtime?.touching}set touching(e){this.runtime||(this.runtime={}),this.runtime.touching=!!e}get scrolling(){return!!this.runtime?.scrolling}set scrolling(e){this.runtime||(this.runtime={}),this.runtime.scrolling=!!e}get swiping(){return!!this.runtime?.swiping}set swiping(e){this.runtime||(this.runtime={}),this.runtime.swiping=!!e}get animating(){return!!this.runtime?.animating}set animating(e){this.runtime||(this.runtime={}),this.runtime.animating=!!e}init(){this.updateSize(),this.config.loop&&this.slides.length>1&&this.initLoop(),this.setupStyles(),this.index=+!!this.config.loop,this.transform=-this.index*this.width,this.render(!1),this.bindEvents(),this.config.pagination&&this.initPagination(),this.config.navigation&&this.initNavigation(),this.updateControls(),this.config.lazyload&&this.loadImages(),this.config.autoplay&&this.play()}updateSize(){this.width=this.el.clientWidth||this.el.offsetWidth}refreshSlides(){this.slides=O(`.swiper-slide`,this.wrapper)}initLoop(){let e=this.slides[0].cloneNode(!0),t=this.slides[this.slides.length-1].cloneNode(!0);e.setAttribute(`data-clone`,``),t.setAttribute(`data-clone`,``),this.wrapper.appendChild(e),this.wrapper.insertBefore(t,this.slides[0]),this.refreshSlides()}setupStyles(){this.wrapper.style.display=`flex`,this.wrapper.style.willChange=`transform`,this.slides.forEach(e=>{e.style.flexShrink=`0`,e.style.width=`${this.width}px`})}bindEvents(){this.cleanup.events.on(`touchstart`,this.wrapper,`touchstart`,e=>{e.touches[0]&&this.onStart(e.touches[0],e.target)},{passive:!0}),this.cleanup.events.on(`touchmove`,this.wrapper,`touchmove`,e=>{e.touches[0]&&this.onMove(e.touches[0],e)},{passive:!1}),this.cleanup.events.on(`touchend`,this.wrapper,`touchend`,e=>{e.changedTouches[0]&&this.pushLog(e.changedTouches[0]),this.onEnd()}),this.cleanup.events.on(`touchcancel`,this.wrapper,`touchcancel`,()=>{this.resetDrag(!0)}),this.cleanup.events.on(`window:touchcancel`,window,`touchcancel`,()=>{this.resetDrag(!0)}),this.cleanup.events.on(`mousedown`,this.wrapper,`mousedown`,e=>{e.button===0&&(this.onStart(e,e.target),this.wrapper.style.cursor=`grabbing`)}),this.cleanup.events.on(`mousemove`,this.wrapper,`mousemove`,e=>{e.buttons===1&&this.onMove(e,e)}),this.cleanup.events.on(`mouseup`,this.wrapper,`mouseup`,e=>{this.wrapper.style.cursor=`grab`,this.pushLog(e),this.onEnd()}),this.cleanup.events.on(`window:mouseup`,window,`mouseup`,e=>{this.touching&&(this.wrapper.style.cursor=`grab`,this.pushLog(e),this.onEnd())}),this.cleanup.events.on(`wrapper:mouseleave`,this.wrapper,`mouseleave`,()=>{this.touching&&(this.wrapper.style.cursor=`grab`,this.onEnd())}),this.cleanup.events.on(`click`,this.wrapper,`click`,e=>{!this.runtime.clickPrevented||!this.config.preventClick||(e.preventDefault(),e.stopPropagation(),this.runtime.clickPrevented=!1)},{capture:!0}),this.cleanup.events.on(`dragstart`,this.wrapper,`dragstart`,e=>e.preventDefault()),this.cleanup.events.on(`transitionend`,this.wrapper,`transitionend`,()=>this.onTransitionEnd()),this.cleanup.events.on(`root:mouseenter`,this.el,`mouseenter`,()=>this.pause()),this.cleanup.events.on(`root:mouseleave`,this.el,`mouseleave`,()=>this.resume())}onStart(e,t=null){this.animating||(this.logs=[],this.pushLog(e),this.runtime.startTarget=t,this.touching=!0,this.scrolling=!1,this.swiping=!1,this.runtime.clickPrevented=!1,this.pause(),this.wrapper.style.transition=`none`)}onMove(e,t){if(!this.touching||this.scrolling||this.animating)return;this.pushLog(e);let n=this.getOffset(),r=Math.abs(n.x),i=Math.abs(n.y);if(!(r<6&&i<6)){if(!this.swiping)if(Math.atan2(i,r)*180/Math.PI<this.config.touchAngle)this.swiping=!0,this.runtime.clickPrevented=ut(this.runtime.startTarget);else{this.scrolling=!0,this.resetDrag(!0);return}this.swiping&&(t.preventDefault(),this.transform=-this.index*this.width+n.x*this.config.touchRatio,this.render(!1))}}onEnd(){if(!this.touching)return;if(this.touching=!1,!this.swiping){this.resetDrag(!0);return}let e=this.getDuration(),t=this.getOffset().x,n=this.index;if(e>this.config.longSwipesMs){let e=Math.ceil(Math.abs(t)/this.width-this.config.longSwipesRatio);e>0&&(n=this.index+e*(t>0?-1:1))}else{let e=Math.abs(t)/this.width,r=e>=this.config.longSwipesRatio?Math.max(1,Math.ceil(e-this.config.longSwipesRatio)):0;r>0&&(n=t>0?this.index-r:this.index+r)}this.slideTo(n),this.logs=[],this.resume()}resetDrag(e=!0){let t=this.index===0?0:-this.index*this.width,n=e&&this.transform!==t;this.touching=!1,this.scrolling=!1,this.swiping=!1,this.logs=[],this.runtime.startTarget=null,this.transform=t,this.render(n),this.resume()}onTransitionEnd(){this.animating=!1,this.config.loop&&(this.index===0?(this.index=this.realCount,this.transform=-this.index*this.width,this.render(!1)):this.index===this.slides.length-1&&(this.index=1,this.transform=-this.index*this.width,this.render(!1))),this.updateControls()}pushLog(e){this.logs.push({x:e.pageX??e.clientX??0,y:e.pageY??e.clientY??0,time:Date.now()}),this.logs.length>5&&this.logs.shift()}getDuration(){return this.logs.length===0?0:this.logs[this.logs.length-1].time-this.logs[0].time}getOffset(){if(this.logs.length===0)return{x:0,y:0};let e=this.logs[0],t=this.logs[this.logs.length-1];return{x:t.x-e.x,y:t.y-e.y}}toRealIndex(e=this.index){return this.config.loop?e===0?this.realCount-1:e===this.slides.length-1?0:e-1:e}slideTo(e){if(this.animating)return;let t=e;this.config.loop?e<0?t=0:e>=this.slides.length&&(t=this.slides.length-1):t=Math.max(0,Math.min(e,this.slides.length-1)),this.index=t,this.transform=-t*this.width,this.render(!0),this.updateControls(),this.config.lazyload&&this.loadImages()}next(){this.animating||this.slideTo(this.index+1)}prev(){this.animating||this.slideTo(this.index-1)}render(e){e?(this.wrapper.style.transition=`transform ${this.config.speed}ms cubic-bezier(0.25, 0.46, 0.45, 0.94)`,this.animating=!0):(this.wrapper.style.transition=`none`,this.animating=!1),this.wrapper.style.transform=`translate3d(${this.transform}px, 0, 0)`}loadImages(){let e=[this.index];this.index>0&&e.push(this.index-1),this.index<this.slides.length-1&&e.push(this.index+1),e.forEach(e=>{let t=this.slides[e];if(!t)return;let n=D(`img[data-lazy]`,t);!n||n.src||(n.classList.add(`loading`),n.src=n.dataset.lazy,n.onload=()=>{n.classList.remove(`loading`),n.classList.add(`loaded`)},n.onerror=()=>{n.classList.remove(`loading`),n.classList.add(`error`)})})}initPagination(){this.pagination?this.pagination.classList.add(`is-horizontal`,`is-clickable`,`is-bullet`):(this.pagination=document.createElement(`div`),this.pagination.className=`swiper-pagination is-horizontal is-clickable is-bullet`,this.el.appendChild(this.pagination),this.dom.createdPagination=!0),this.pagination.textContent=``,this.bullets=[];for(let e=0;e<this.realCount;e++){let t=document.createElement(`span`);t.className=`swiper-pagination-indicator swiper-pagination-bullet`,t.setAttribute(`role`,`button`),t.setAttribute(`tabindex`,`0`),t.setAttribute(`aria-label`,`Go to slide ${e+1}`),this.cleanup.events.on(`bullet:${e}:click`,t,`click`,()=>{this.slideTo(this.config.loop?e+1:e)}),this.cleanup.events.on(`bullet:${e}:keydown`,t,`keydown`,t=>{t.key!==`Enter`&&t.key!==` `||(t.preventDefault(),this.slideTo(this.config.loop?e+1:e))}),this.bullets.push(t),this.pagination.appendChild(t)}}initNavigation(){this.prevButton=this.ensureNavigation(`prev`,`arrow-left`),this.nextButton=this.ensureNavigation(`next`,`arrow-right`),this.cleanup.events.on(`nav:prev`,this.prevButton,`click`,()=>this.prev()),this.cleanup.events.on(`nav:next`,this.nextButton,`click`,()=>this.next())}ensureNavigation(e,t){let n=e===`prev`?`createdPrevButton`:`createdNextButton`,r=`swiper-navigation is-${e}`,i=D(`.swiper-navigation.is-${e}`,this.el);return i?i.matches(`button`)||(i.setAttribute(`role`,`button`),i.setAttribute(`tabindex`,`0`),i.classList.add(`swiper-navigation`,`is-${e}`)):(i=document.createElement(`button`),i.type=`button`,i.className=r,this.el.appendChild(i),this.dom[n]=!0),i.setAttribute(`aria-label`,e===`prev`?`Previous slide`:`Next slide`),i.querySelector(`svg`)||(i.textContent=``,i.appendChild(I(t))),i}updateControls(){this.updatePagination(),this.updateNavigation()}updatePagination(){if(!this.bullets.length)return;let e=this.toRealIndex();this.bullets.forEach((t,n)=>{let r=n===e;t.classList.toggle(`is-active`,r),t.classList.toggle(`active`,r),t.setAttribute(`aria-current`,r?`true`:`false`)})}updateNavigation(){if(this.config.loop)return;let e=this.index<=0,t=this.index>=this.slides.length-1;this.prevButton&&(this.prevButton.classList.toggle(`is-disabled`,e),this.prevButton.toggleAttribute(`disabled`,e)),this.nextButton&&(this.nextButton.classList.toggle(`is-disabled`,t),this.nextButton.toggleAttribute(`disabled`,t))}play(){this.timer||(this.timer=setInterval(()=>this.next(),this.config.delay))}pause(){this.timer&&(clearInterval(this.timer),this.timer=null)}resume(){this.config.autoplay&&!this.timer&&this.play()}update(){this.updateSize(),this.setupStyles(),this.transform=-this.index*this.width,this.render(!1),this.updateControls()}destroy(){this.runtime?.destroyed||(this.runtime.destroyed=!0,this.pause(),this.cleanup.events.clear(),O(`[data-clone]`,this.wrapper).forEach(e=>e.remove()),this.dom.createdPagination&&this.pagination?.remove(),this.dom.createdPrevButton&&this.prevButton?.remove(),this.dom.createdNextButton&&this.nextButton?.remove(),this.dom.createdRoot&&this.el?.remove(),this.dom={root:null,wrapper:null,slides:[],pagination:null,prevButton:null,nextButton:null,bullets:[],createdRoot:!1,createdSlides:!1,mountTarget:null},this.runtime={destroyed:!0},this.settings=null)}};let ft={id:{default:null,types:[`string`,`null`],normalize:e=>typeof e==`string`?e.trim()?e.trim():v():e??v()},direction:{default:`top`,type:`string`,enum:[`top`,`bottom`,`left`,`right`]},active:{default:0,types:[`number`,`string`]},disabled:{default:[],types:[`number`,`string`,`array`]},onChange:{default:null,types:[`function`,`null`]},tabs:{default:[],type:`array`},onAdd:{default:null,types:[`function`,`null`]},onRemove:{default:null,types:[`function`,`null`]}},pt={type:`object`,validate:e=>!!e&&T(e.title)&&T(e.content),message:`expects an object with renderable title and content: string, Node, array, function or null.`};var mt=class{constructor(e,t={}){if(!S())throw Error(`Tabs: DOM render environment is required.`);if(e!==!1&&!w(e))throw Error(`Tabs: element expects a valid HTMLElement or false.`);this.options=_(t,ft,`Tabs.options`),this._dynamic=e===!1,this._init(e)}_init(e){this.root=e,this.current=null,this.cleanup={events:j()},this._disabledIndex=[],this._destroyed=!1;let{tabs:t,disabled:n,active:r}=this.options;if(this.root===!1&&(this.root=this._buildRoot(t)),this.tabs.length===0||this.panels.length===0)throw Error(`.tab-item or .panel-item not found.`);this._disabledIndex=this._parseDisabled(n),this._markDisabledTabs(),this._bindEvents(),this._activate(r,!1),this._initDrag()}get tabs(){return this.root?O(`.tab-item`,this.root):[]}get panels(){return this.root?O(`.panel-item`,this.root):[]}get _dragContainer(){return this.root?D(`.tab-wrap`,this.root):null}get _dragInner(){return this.root?D(`.tab-list`,this.root):null}_buildRoot(e){let{id:n,direction:r}=this.options;for(let t of e)g(`tab`,t,pt,`Tabs.options.tabs`);let i=(0,t.jsx)(`nav`,{className:`tab-list`}),a=(0,t.jsx)(`div`,{className:`tab-wrap`,children:i}),o=(0,t.jsx)(`div`,{className:`tab-panel`});for(let t of e){let e=this._createTab(t);i.appendChild(e);let n=this._createPanel(t);o.appendChild(n)}return(0,t.jsx)(`div`,{className:`j-tabs is-${r}`,id:n,children:[a,o]})}_createTab(e){let n=(0,t.jsx)(`div`,{className:`tab-item`,"data-tab":e.name||v()}),r=(0,t.jsx)(`span`);return r.append(...E(e.title,{tabs:this,item:e})),n.appendChild(r),n}_createPanel(e){let n=(0,t.jsx)(`div`,{className:`panel-item`}),r=(0,t.jsx)(`div`);return r.append(...E(e.content,{tabs:this,item:e})),n.appendChild(r),n}_parseDisabled(e){if(e==null)return[];let t=e=>typeof e==`number`?e:typeof e==`string`?this.tabs.findIndex(t=>t.dataset.tab===e):-1;if(Array.isArray(e))return e.map(t).filter(e=>e>=0);{let n=t(e);return n>=0?[n]:[]}}_markDisabledTabs(){for(let[e,t]of this.tabs.entries())this._disabledIndex.includes(e)?(t.setAttribute(`disabled`,`true`),t.classList.add(`is-disabled`)):(t.removeAttribute(`disabled`),t.classList.remove(`is-disabled`))}_bindEvents(){this._unbindEvents(),this._dragInner&&this.cleanup.events.on(`tabClick`,this._dragInner,`click`,e=>{let t=e.target.closest(`.tab-item`);if(!t||!this.tabs.includes(t))return;let n=this.tabs.indexOf(t);n>=0&&!this._disabledIndex.includes(n)&&this.activate(n)})}_unbindEvents(){this.cleanup.events.off(`tabClick`)}async _activate(e,t=!0){let{onChange:n}=this.options,r=this._getIndex(e);if(!(r<0||r>=this.tabs.length||this._disabledIndex.includes(r)||this.current===r)){this.current=r;for(let[e,t]of this.tabs.entries())t.classList.toggle(`is-active`,e===r);for(let[e,t]of this.panels.entries())t.classList.toggle(`is-active`,e===r);if(t&&n){let e=this.tabs[r],t=this.panels[r],i=e&&e.dataset.tab||r;await Promise.resolve(n(r,i,e,t))}}}_getIndex(e){return typeof e==`number`?e:typeof e==`string`?this.tabs.findIndex(t=>t.dataset.tab===e):-1}_initDrag(){let{direction:e}=this.options;if(!(!this._dragContainer||!this._dragInner)){if(this.isVertical=e===`left`||e===`right`,this.draggable=this._draggable(),!this.draggable){this._removeDragEvents();return}this._bindDragEvents(),this.cleanup.events.on(`resize`,window,`resize`,()=>{cancelAnimationFrame(this._resizeRaf),this._resizeRaf=requestAnimationFrame(()=>{this._refreshDrag()})})}}_draggable(){return this.isVertical?this._dragInner.scrollHeight>this._dragContainer.clientHeight+5:this._dragInner.scrollWidth>this._dragContainer.clientWidth+5}_bindDragEvents(){this._removeDragEvents();let e=this._dragContainer,t=this._dragInner,n=this.isVertical,r=0,i=0,a=0,o=!1,s=e=>n?e.touches?e.touches[0].pageY:e.pageY:e.touches?e.touches[0].pageX:e.pageX,c=o=>{this.isDragging=!0,t.classList.add(`dragging`),r=s(o),a=r,i=n?e.scrollTop:e.scrollLeft,this._velocity=0,cancelAnimationFrame(this.raf)},l=t=>{if(!this.isDragging)return;t.preventDefault();let c=s(t),l=r-c;this._velocity=a-c,a=c,o||(o=!0,requestAnimationFrame(()=>{o=!1,n?e.scrollTop=i+l:e.scrollLeft=i+l}))},u=()=>{this.isDragging&&(this.isDragging=!1,t.classList.remove(`dragging`),this._startInertiaScroll())};this.cleanup.events.on(`drag:mousedown`,t,`mousedown`,c),this.cleanup.events.on(`drag:touchstart`,t,`touchstart`,c,{passive:!0}),this.cleanup.events.on(`drag:mousemove`,window,`mousemove`,l,{passive:!1}),this.cleanup.events.on(`drag:touchmove`,window,`touchmove`,l,{passive:!1}),this.cleanup.events.on(`drag:mouseup`,window,`mouseup`,u),this.cleanup.events.on(`drag:touchend`,window,`touchend`,u)}_startInertiaScroll(){let e=this._dragContainer,t=this._velocity,n=this.isVertical,r=performance.now(),i=a=>{let o=a-r;r=a,t*=.92,!(Math.abs(t)<.3)&&(n?e.scrollTop+=t*o*.05:e.scrollLeft+=t*o*.05,this.raf=requestAnimationFrame(i))};this.raf=requestAnimationFrame(i)}_removeDragEvents(){this.cleanup.events.off(`drag:mousedown`),this.cleanup.events.off(`drag:touchstart`),this.cleanup.events.off(`drag:mousemove`),this.cleanup.events.off(`drag:touchmove`),this.cleanup.events.off(`drag:mouseup`),this.cleanup.events.off(`drag:touchend`)}_refreshDrag(){this._initDrag()}async activate(e){await this._activate(e,!0)}async reInit(e={}){this.options=_({...this.options,...e},ft,`Tabs.options`);let{disabled:t,active:n}=this.options;this._disabledIndex=this._parseDisabled(t),this._markDisabledTabs(),this._bindEvents(),await this._activate(n,!1),this._refreshDrag()}async addTab(e){g(`tabConfig`,e,pt,`Tabs.addTab`);let{title:t,name:n,content:r}=e,i=D(`.tab-panel`,this.root);e.name=n||v();let a=this._createTab(e);this._dragInner&&this._dragInner.appendChild(a);let o=this._createPanel({title:t,name:n,content:r});i.appendChild(o),this._markDisabledTabs(),this._bindEvents();let{onAdd:s}=this.options;s&&await Promise.resolve(s(this.tabs.length-1,e,a,o)),this._refreshDrag()}async deleteTab(e){if(this.tabs.length<=1)return;let t=this._getIndex(e);if(t<0||t>=this.tabs.length)return;let n=this.tabs[t],r=this.panels[t],i=n.dataset.tab||t;n&&n.parentNode&&n.parentNode.removeChild(n),r&&r.parentNode&&r.parentNode.removeChild(r),this._markDisabledTabs(),this._bindEvents();let{onRemove:a}=this.options;a&&await Promise.resolve(a(t,i)),n.classList.contains(`is-active`)&&await this._activate(this.tabs.length-1,!1),this._refreshDrag()}disableTab(e){let t=this._getIndex(e);t>=0&&!this._disabledIndex.includes(t)&&(this._disabledIndex.push(t),this._markDisabledTabs(),this._bindEvents())}enableTab(e){let t=this._getIndex(e),n=this._disabledIndex.indexOf(t);n>=0&&(this._disabledIndex.splice(n,1),this._markDisabledTabs(),this._bindEvents())}destroy(){if(this._destroyed)return;let e=this.root,t=this._dynamic;this._destroyed=!0,this._unbindEvents(),this._removeDragEvents(),cancelAnimationFrame(this.raf),cancelAnimationFrame(this._resizeRaf);for(let e of this.tabs)e.classList.remove(`is-active`,`is-disabled`),e.removeAttribute(`disabled`);for(let e of this.panels)e.classList.remove(`is-active`);this.cleanup.events.off(`resize`),t&&e?.parentNode&&e.parentNode.removeChild(e),this.root=null,this.options={},this.isVertical=!1,this.cleanup.events.clear(),this.cleanup=null}},ht={en:{b:`Back`,t:`Customize`,d:`Customize your UI experience.`,theme:`Theme`,radius:`Radius`,shadow:`Shadow`,font:`Font`,mode:`Mode`,gray:`Gray`,olive:`Olive`,tomato:`Tomato`,ruby:`Ruby`,pink:`Pink`,violet:`Violet`,indigo:`Indigo`,blue:`Blue`,teal:`Teal`,grass:`Grass`,mint:`Mint`,lime:`Lime`,yellow:`Yellow`,orange:`Orange`,gold:`Gold`,n:`None`,sm:`Small`,md:`Medium`,lg:`Large`,xl:`XL`,round:`Round`,light:`Light`,dark:`Dark`,auto:`Auto`},zh:{b:`返回`,t:`自定义主题`,d:`自定义您的UI体验。`,theme:`主题`,radius:`圆角`,shadow:`阴影`,font:`字号`,mode:`模式`,gray:`灰色`,olive:`橄榄绿`,tomato:`番茄红`,ruby:`红宝石`,pink:`粉红`,violet:`紫罗兰`,indigo:`靛蓝`,blue:`蓝色`,teal:`青色`,grass:`草绿`,mint:`薄荷绿`,lime:`酸橙绿`,yellow:`黄色`,orange:`橙色`,gold:`金色`,n:`无`,sm:`小`,md:`中`,lg:`大`,xl:`更大`,round:`圆角`,light:`浅色`,dark:`深色`,auto:`自动`}},gt=class{constructor(e={}){if(!S())throw Error(`Theme: DOM render environment is required.`);this.options={mode:`dark`,render:`dark`,theme:`indigo`,radius:`sm`,shadow:`sm`,font:`sm`,key:`jui-theme`,...e},this.languages=ht,this._init()}_init(){this.cleanup={events:j()},this._destroyed=!1,this.mq=window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`),this._loadConfig(),this._applyConfig(),this._bindEvent(),this._syncActiveButtons(document)}_t(e){return(0,n.t)(e,this.languages)}_loadConfig(){try{let e=M(this.options.key);e&&e.trim()&&(this.options=Object.assign({},this.options,JSON.parse(e)))}catch{}}_saveConfig(){let e=this.mq&&this.mq.matches?`dark`:`light`;this.options.render=this.options.mode===`auto`?e:this.options.mode;let t=JSON.stringify(this.options);N(this.options.key,t)}_removePrefixedClasses(){let e=[],t=document.documentElement;for(let n of t.classList)(n===`light`||n===`dark`)&&e.push(n),(n.startsWith(`j-theme-`)||n.startsWith(`j-radius-`)||n.startsWith(`j-shadow-`)||n.startsWith(`j-font-`))&&e.push(n);e.length&&t.classList.remove(...e)}_applyMqClass(){let e=document.documentElement,{mode:t}=this.options;if(t===`auto`){let t=this.mq&&this.mq.matches?`dark`:`light`;e.classList.remove(`light`,`dark`),e.classList.add(t)}else e.classList.remove(`light`,`dark`),e.classList.add(t===`dark`?`dark`:`light`)}_applyConfig(){let{theme:e,radius:t,shadow:n,font:r}=this.options;this._removePrefixedClasses(),this._applyMqClass(),document.documentElement.classList.add(`j-theme-${e}`,`j-radius-${t}`,`j-shadow-${n}`,`j-font-${r}`)}_syncActiveButtons(e=document){let t=O(`.palette-item`,e);for(let e of t){let t=e.dataset.palette,n=this.options[t],r=O(`button[data-palette]`,e);for(let e of r){let t=e.dataset.palette===(n===void 0?null:n);e.classList.toggle(`is-active`,t)}}}_bindEvent(){this.cleanup.events.on(`palette`,document.body,`click`,e=>{let t=e.target.closest(`.palette-item .items > button[data-palette]`);if(!t)return;let n=t.closest(`.palette-item`);if(!n)return;let r=n.dataset.palette,i=t.dataset.palette;t.classList.contains(`is-active`)||(this.options[r]=i,this._applyConfig(),this._saveConfig(),this._syncActiveButtons())})}_unbindEvent(){this.cleanup?.events.clear()}createPanel(e=`j-theme-palette`,n=null){let r=n||[{title:this._t(`theme`),type:`theme`,buttons:[[`gray`,this._t(`gray`)],[`olive`,this._t(`olive`)],[`tomato`,this._t(`tomato`)],[`ruby`,this._t(`ruby`)],[`pink`,this._t(`pink`)],[`violet`,this._t(`violet`)],[`indigo`,this._t(`indigo`)],[`blue`,this._t(`blue`)],[`teal`,this._t(`teal`)],[`grass`,this._t(`grass`)],[`mint`,this._t(`mint`)],[`lime`,this._t(`lime`)],[`yellow`,this._t(`yellow`)],[`orange`,this._t(`orange`)],[`gold`,this._t(`gold`)]]},{title:this._t(`radius`),type:`radius`,buttons:[[`none`,this._t(`n`)],[`sm`,this._t(`sm`)],[`md`,this._t(`md`)],[`lg`,this._t(`lg`)],[`xl`,this._t(`xl`)],[`round`,this._t(`round`)]]},{title:this._t(`shadow`),type:`shadow`,buttons:[[`none`,this._t(`n`)],[`sm`,this._t(`sm`)],[`md`,this._t(`md`)],[`lg`,this._t(`lg`)]]},{title:this._t(`font`),type:`font`,buttons:[[`sm`,this._t(`sm`)],[`md`,this._t(`md`)]]},{title:this._t(`mode`),type:`mode`,buttons:[[`light`,this._t(`light`)],[`dark`,this._t(`dark`)],[`auto`,this._t(`auto`)]]}];return(0,t.jsx)(`div`,{className:e,children:[(0,t.jsx)(`div`,{style:{display:`flex`,justifyContent:`center`},children:(0,t.jsx)(`button`,{className:`j-button is-text`,"data-action":`close`,children:this._t(`b`)})}),(0,t.jsx)(`h3`,{children:this._t(`t`)}),(0,t.jsx)(`p`,{style:{marginTop:0,fontSize:`var(--text-sm, 0.875rem)`},children:this._t(`d`)}),(0,t.jsx)(`div`,{className:`palette-container`,children:r.map(e=>(0,t.jsx)(`div`,{className:`palette-item`,"data-palette":e.type,children:[(0,t.jsx)(`div`,{className:`item-title`,children:e.title}),(0,t.jsx)(`div`,{className:`items`,children:e.buttons.map(([n,r])=>(0,t.jsx)(`button`,{className:`j-button is-default${String(this.options[e.type])===String(n)?` is-active`:``}`,"data-palette":n,children:[e.type===`theme`?(0,t.jsx)(`span`,{className:`el-prefix item-hex`,style:{backgroundColor:`var(--${n}-10)`}}):null,(0,t.jsx)(`span`,{className:`button-text`,children:r})]}))})]}))})]})}setConfig(e){this.options=Object.assign({},this.options,e),this._applyConfig(),this._saveConfig(),this._syncActiveButtons(document)}destroy(){this._destroyed||(this._destroyed=!0,this._unbindEvent(),this.options={},this.languages={},this.cleanup=null,this.mq=null)}};function Z(e){"@babel/helpers - typeof";return Z=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Z(e)}function _t(e,t){if(Z(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Z(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function vt(e){var t=_t(e,`string`);return Z(t)==`symbol`?t:t+``}function Q(e,t,n){return(t=vt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let yt={type:`string`,enum:[`info`,`success`,`warning`,`error`,`primary`]},bt={type:`number`,validate:e=>e>=0,message:`expects a positive number or 0.`},xt={type:`number`,validate:e=>e>0,message:`expects a number greater than 0.`};var $=class e{_z(){}static show(n=``,r=3e3,i=`info`){if(!S())throw Error(`Toast: DOM render environment is required.`);St(n,r,i);let a=D(`.j-toast-container`);a||(a=(0,t.jsx)(`div`,{className:`j-toast-container`}),document.body.appendChild(a));let o=I(i===`primary`?`info`:i),s=(0,t.jsx)(`div`,{className:`j-toast is-${i}`,"data-toast":v(),children:[(0,t.jsx)(`span`,{className:`toast-icon`,children:o}),(0,t.jsx)(`span`,{className:`toast-message`,children:n})]});a.appendChild(s),e._setTimer(()=>{s.classList.add(`toast-show`)},10),r>0&&e._setTimer(()=>{e.hide(s)},r);let c=A(s,`click`,()=>{e.hide(s)});return e.disposers.set(s,c),s}static success(t=``,n=3e3){return e.show(t,n,`success`)}static info(t=``,n=3e3){return e.show(t,n,`info`)}static primary(t=``,n=3e3){return e.show(t,n,`primary`)}static warning(t=``,n=3e3){return e.show(t,n,`warning`)}static error(t=``,n=3e3){return e.show(t,n,`error`)}static hide(t){t&&(e.disposers.get(t)?.(),e.disposers.delete(t),t.classList.remove(`toast-show`),t.classList.add(`toast-hide`),e._setTimer(()=>{t.parentNode&&t.parentNode.removeChild(t);let e=D(`.j-toast-container`);e&&e.children.length===0&&e.parentNode.removeChild(e)},300))}static lite(n=``,r=2e3){if(!S())throw Error(`Toast: DOM render environment is required.`);g(`message`,n,`string`,`Toast.lite`),g(`duration`,r,xt,`Toast.lite`);let i=D(`.j-toast-lite`);i&&i.remove();let a=(0,t.jsx)(`div`,{className:`j-toast-lite`,children:n});return document.body.appendChild(a),e._setTimer(()=>a.classList.add(`is-shown`),10),e._setTimer(()=>{a.classList.remove(`is-shown`),a.classList.add(`is-hidden`),e._setTimer(()=>a.remove(),300)},r),a}static _setTimer(t,n){let r=setTimeout(()=>{e.timers.delete(r),t()},n);return e.timers.add(r),r}static clearAll(){for(let t of e.timers)clearTimeout(t);e.timers.clear();for(let t of e.disposers.values())t();e.disposers.clear(),D(`.j-toast-container`)?.remove(),D(`.j-toast-lite`)?.remove()}static destroyAll(){e.clearAll()}};Q($,`timers`,new Set),Q($,`disposers`,new Map);function St(e,t,n){g(`message`,e,`string`,`Toast.show`),g(`duration`,t,bt,`Toast.show`),g(`type`,n,yt,`Toast.show`)}let Ct={name:{default:null,types:[`string`,`null`]},mode:{default:`hover`,type:`string`},position:{default:`auto`,type:`string`},offset:{default:8,type:`number`},message:{default:``,type:`string`,normalize:e=>String(e||``).trim(),validate:e=>e.length>0,message:`expects a non-empty string.`},className:{default:null,types:[`string`,`null`]},id:{default:null,types:[`string`,`null`]},delay:{default:100,types:[`number`,`object`]},hoverIntent:{default:!0,type:`boolean`}};var wt=class{constructor(e,t={}){if(!S())throw Error(`Tooltip: DOM render environment is required.`);if(!w(e))throw Error(`Tooltip: element expects a valid HTMLElement.`);let n=_(t,Ct,`Tooltip.options`),r=this._buildTooltipContainer(n);this.options=n,this._destroyed=!1,this.drop=new De(e,{name:n.name,mode:n.mode,position:n.position,offset:n.offset,content:r,className:n.className,id:n.id,delay:n.delay,hoverIntent:n.hoverIntent})}_buildTooltipContainer(e){let n=(0,t.jsx)(`div`,{className:`tooltip-message`,children:e.message});return(0,t.jsx)(`div`,{className:e.className?`j-tooltip ${e.className}`:`j-tooltip`,children:n})}show(e=!0){this.drop.show(e)}hide(e=!0){this.drop.hide(e)}toggle(){this.drop.toggle()}destroy(){this._destroyed||(this._destroyed=!0,this.drop?.destroy(),this.drop=null,this.options=null)}};let Tt={rules:{default:{},type:`object`},messages:{default:{},type:`object`},onSubmit:{default:null,types:[`function`,`null`]}};var Et=class{constructor(e,t={},n=!1){if(!S())throw Error(`Validator: DOM render environment is required.`);this.options=_(t,Tt,`Validator.options`),this._validateOptions(e,this.options,n),this._init(e),n&&this._bindEvents()}_validateOptions(e,t,n){g(`element`,e,[`HTMLElement`,`string`],`Validator`),g(`bindEvents`,n,`boolean`,`Validator`)}_init(e){if(this.root=k(e,`Validator.element`),!this.root)throw Error(`Validator: element not found.`);this.valid=!0,this.cleanup={events:j()},this._destroyed=!1}_bindEvents(){this._unbindEvents(),this.cleanup.events.on(`submit`,this.root,`submit`,e=>{e.preventDefault(),this.validate()}),this.cleanup.events.on(`reset`,this.root,`reset`,()=>{this.reset()})}_unbindEvents(){this.cleanup?.events.clear()}validate(){this.valid=!0;for(let e of this.root.elements){let t=e.name;if(this.options.rules[t]&&(this.valid=this._validateRule(e,t),!this.valid))break}return this.valid&&this.options.onSubmit&&this.options.onSubmit(),this.valid}_validateRule(e,t){let n=this.options.rules[t];if(e.hasAttribute(`required`)||e.hasAttribute(`minlength`)||e.hasAttribute(`maxlength`)||e.hasAttribute(`pattern`)||e.hasAttribute(`min`)||e.hasAttribute(`max`)||e.hasAttribute(`step`))return this.valid;for(let r in n){switch(r){case`required`:this.valid=this._validateRequired(e,n[r]);break;case`minLength`:this.valid=this._validateMinLength(e,n[r]);break;case`maxLength`:this.valid=this._validateMaxLength(e,n[r]);break;case`equalTo`:this.valid=this._validateEqualTo(e,n[r]);break;case`email`:this.valid=this._validateEmail(e);break;case`checked`:this.valid=this._validateCheck(e,n[r]);break;case`selected`:this.valid=this._validateSelected(e,n[r]);break;case`noSpace`:this.valid=this._validateNoSpace(e,n[r]);break;case`noChinese`:this.valid=!/[\u4e00-\u9fa5]/.test(e.value);break;case`noSpecial`:this.valid=!/[@#$%^&*]+/g.test(e.value);break;case`pattern`:this.valid=new RegExp(n[r]).test(e.value);break}if(this.valid)this._success(e);else{this._errorMsg(e,t,r);break}}return this.valid}_validateRequired(e,t){return e.value.trim().length>=1&&t===!0}_validateMinLength(e,t){return e.value.length>=t}_validateMaxLength(e,t){return e.value.length<=t}_validateEmail(e){return/^([\w-.]+@([\w-]+\.)+[\w-]{2,4})?$/.test(e.value)}_validateEqualTo(e,t){let n=this.root.elements[t];if(n==null)throw Error(`Validator: target element "${t}" not found.`);return e.value===n.value}_validateCheck(e,t){if(e.type!==`checkbox`)throw Error(`Validator: element expects a checkbox input, but ${e.type} given.`);return e.checked===t}_validateSelected(e,t){if(e.tagName!==`SELECT`)throw Error(`Validator: element expects a select element, but ${e.tagName.toLowerCase()} given.`);return t===!0?Array.from(e.selectedOptions).map(e=>e.value.trim()).some(e=>e.length>0):!0}_validateNoSpace(e,t){return!/\s/.test(e.value)||t!==!0}_errorMsg(e,n,r){e.type!==`checkbox`&&(e.classList.remove(`is-valid`),e.classList.add(`is-invalid`));let i=this.options.messages[n]&&this.options.messages[n][r];if(i){this.message=i;let n=e.closest(`.form-control`),r=n?D(`.help-block`,n):null;r||(r=(0,t.jsx)(`div`,{className:`help-block is-invalid`,children:i}),n.appendChild(r))}}_success(e){this.message=``;let t=e.closest(`.form-control`),n=t?D(`.help-block`,t):null;n&&t.removeChild(n),e.type!==`checkbox`&&(e.classList.remove(`is-invalid`),e.classList.add(`is-valid`))}reset(){this.root.reset();for(let e of this.root.elements)e.classList.remove(`is-valid`),e.classList.remove(`is-invalid`);let e=O(`.help-block`,this.root);for(let t of e)t.remove();this.valid=!0,this.message=``}destroy(){this._destroyed||(this._destroyed=!0,this._unbindEvents(),this.reset(),this.root=null,this.options=null,this.message=null,this.valid=null,this.cleanup?.events.clear(),this.cleanup=null)}};e.Accordion=Te,e.Drop=De,e.Flow=Re,e.Menu=He,e.Modal=rt,e.Offcanvas=at,e.Parabola=st,e.Swiper=dt,e.Tabs=mt,e.Theme=gt,e.Toast=$,e.Tooltip=wt,e.Validator=Et,e.addIcons=xe,e.all=O,e.canRenderDOM=S,e.canUseDOM=x,e.copy=i,e.createEventManager=j,e.createFlow=ze,e.destroyAll=se,e.getCookie=M,e.getEl=k,e.getIcons=be,e.getType=c,e.icon=I,e.iconHtml=L,e.iconMarkup=ye,e.isClass=u,e.isElement=w,e.isFunction=l,e.isMobile=r,e.isNode=C,e.isRenderableContent=T,e.listen=A,e.normalizeContentNodes=E,e.postJson=he,e.q=D,e.randomId=v,e.release=oe,e.removeCookie=_e,e.resolveOptions=_,e.restUrl=ge,e.service=ce,e.setCookie=N,e.singleton=ie,e.timer=s,e.unlisten=me,e.uuid=re,e.validate=h,e.validateOptions=ne,e.validateParam=g});
|
package/dist/style.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer color{:root,.light,.light-theme{--white:#fff;--black:#000;--gray-1:#fcfcfd;--gray-2:#f9f9fb;--gray-3:#eff0f3;--gray-4:#e7e8ec;--gray-5:#e0e1e6;--gray-6:#d8d9e0;--gray-7:#cdced7;--gray-8:#b9bbc6;--gray-9:#8b8d98;--gray-10:#80828d;--gray-11:#62636c;--gray-12:#1e1f24;--gray-a1:#00005503;--gray-a2:#00005506;--gray-a3:#00104010;--gray-a4:#000b3618;--gray-a5:#0009321f;--gray-a6:#00073527;--gray-a7:#00063332;--gray-a8:#00083046;--gray-a9:#00051d74;--gray-a10:#00051b7f;--gray-a11:#0002119d;--gray-a12:#000107e1;--gray-contrast:#fff;--gray-surface:#fffc;--gray-indicator:#8b8d98;--gray-track:#8b8d98;--olive-1:#fcfdfc;--olive-2:#f8faf8;--olive-3:#eff1ef;--olive-4:#e7e9e6;--olive-5:#e0e2df;--olive-6:#d7dad6;--olive-7:#cccfcb;--olive-8:#b9bcb8;--olive-9:#898e87;--olive-10:#7d827b;--olive-11:#60655e;--olive-12:#1d211c;--olive-a1:#00550003;--olive-a2:#00490007;--olive-a3:#00200010;--olive-a4:#0b1f0019;--olive-a5:#08180020;--olive-a6:#07190029;--olive-a7:#05140034;--olive-a8:#040f0047;--olive-a9:#050f0078;--olive-a10:#040e0084;--olive-a11:#030b00a1;--olive-a12:#010600e3;--olive-contrast:#fff;--olive-surface:#f6f9f6cc;--olive-indicator:#898e87;--olive-track:#898e87;--tomato-1:#fffcfc;--tomato-2:#fff8f7;--tomato-3:#feebe7;--tomato-4:#ffdcd3;--tomato-5:#ffcdc1;--tomato-6:#fdbdae;--tomato-7:#f5a997;--tomato-8:#ec8f7a;--tomato-9:#e54d2e;--tomato-10:#d73d1d;--tomato-11:#cf3716;--tomato-12:#5c281c;--tomato-a1:#ff000003;--tomato-a2:#ff200008;--tomato-a3:#f52b0018;--tomato-a4:#ff35002c;--tomato-a5:#ff32003e;--tomato-a6:#f9300051;--tomato-a7:#e72d0068;--tomato-a8:#db290085;--tomato-a9:#df2600d1;--tomato-a10:#d22400e2;--tomato-a11:#cb2400e9;--tomato-a12:#480e00e3;--tomato-contrast:#fff;--tomato-surface:#fff6f5cc;--tomato-indicator:#e54d2e;--tomato-track:#e54d2e;--ruby-1:#fffcfc;--ruby-2:#fff7f8;--ruby-3:#feeaeb;--ruby-4:#ffdcdf;--ruby-5:#ffcfd2;--ruby-6:#f8bfc4;--ruby-7:#f0acb2;--ruby-8:#e6939b;--ruby-9:#e54666;--ruby-10:#d7365a;--ruby-11:#c8274f;--ruby-12:#651727;--ruby-a1:#ff000003;--ruby-a2:#ff002008;--ruby-a3:#f3000d15;--ruby-a4:#ff001623;--ruby-a5:#ff001030;--ruby-a6:#e4001440;--ruby-a7:#d1001353;--ruby-a8:#c400136c;--ruby-a9:#db002cb9;--ruby-a10:#cc002ec9;--ruby-a11:#be002fd8;--ruby-a12:#560012e8;--ruby-contrast:#fff;--ruby-surface:#fff5f6cc;--ruby-indicator:#e54666;--ruby-track:#e54666;--pink-1:#fffcfe;--pink-2:#fff7fb;--pink-3:#ffe9f4;--pink-4:#fcdcec;--pink-5:#f8cee3;--pink-6:#f1bed9;--pink-7:#e9abcc;--pink-8:#e093bd;--pink-9:#d6409f;--pink-10:#c73192;--pink-11:#c02a8c;--pink-12:#651248;--pink-a1:#ff00aa03;--pink-a2:#ff008008;--pink-a3:#ff008016;--pink-a4:#ea007523;--pink-a5:#db006e31;--pink-a6:#c9006a41;--pink-a7:#bd006554;--pink-a8:#b600646c;--pink-a9:#c8007fbf;--pink-a10:#ba0078ce;--pink-a11:#b40075d5;--pink-a12:#59003aed;--pink-contrast:#fff;--pink-surface:#fff5facc;--pink-indicator:#d6409f;--pink-track:#d6409f;--violet-1:#fcfcfe;--violet-2:#f9f9ff;--violet-3:#f2f1ff;--violet-4:#e7e6ff;--violet-5:#dddaff;--violet-6:#cfcbff;--violet-7:#bcb7f7;--violet-8:#a49bee;--violet-9:#6e56cf;--violet-10:#614cb5;--violet-11:#6450ba;--violet-12:#30265f;--violet-a1:#0000aa03;--violet-a2:#0000ff06;--violet-a3:#1300ff0e;--violet-a4:#0b00ff19;--violet-a5:#1500ff25;--violet-a6:#1400ff34;--violet-a7:#1200e348;--violet-a8:#1700d464;--violet-a9:#2400b7a9;--violet-a10:#1e0096b3;--violet-a11:#1d009baf;--violet-a12:#0c0043d9;--violet-contrast:#fff;--violet-surface:#f8f8ffcc;--violet-indicator:#6e56cf;--violet-track:#6e56cf;--indigo-1:#fdfdfe;--indigo-2:#f7f9ff;--indigo-3:#edf2fe;--indigo-4:#dfeaff;--indigo-5:#d0dfff;--indigo-6:#bdd1ff;--indigo-7:#a7bff9;--indigo-8:#88a5ef;--indigo-9:#3e63dd;--indigo-10:#3657c3;--indigo-11:#3a5bc7;--indigo-12:#1d2d5c;--indigo-a1:#00008002;--indigo-a2:#0040ff08;--indigo-a3:#0047f112;--indigo-a4:#0058ff20;--indigo-a5:#0052ff2f;--indigo-a6:#004eff42;--indigo-a7:#0046ee58;--indigo-a8:#003fdd77;--indigo-a9:#0031d2c1;--indigo-a10:#002ab3c9;--indigo-a11:#002bb7c5;--indigo-a12:#001247e2;--indigo-contrast:#fff;--indigo-surface:#f5f8ffcc;--indigo-indicator:#3e63dd;--indigo-track:#3e63dd;--blue-1:#fbfdff;--blue-2:#f4faff;--blue-3:#e9f3ff;--blue-4:#d9edff;--blue-5:#c7e3ff;--blue-6:#b2d6ff;--blue-7:#97c5f9;--blue-8:#6eadf3;--blue-9:#0090ff;--blue-10:#0084ec;--blue-11:#0073dd;--blue-12:#003463;--blue-a1:#0080ff04;--blue-a2:#008cff0b;--blue-a3:#0074ff16;--blue-a4:#0087ff26;--blue-a5:#0080ff38;--blue-a6:#0078ff4d;--blue-a7:#0071f168;--blue-a8:#006fea91;--blue-a9:#0090ff;--blue-a10:#0084ec;--blue-a11:#0073dd;--blue-a12:#003463;--blue-contrast:#fff;--blue-surface:#f1f9ffcc;--blue-indicator:#0090ff;--blue-track:#0090ff;--teal-1:#fafefd;--teal-2:#f3fbf9;--teal-3:#dff8f3;--teal-4:#ccf3eb;--teal-5:#b7ebe1;--teal-6:#a1ded3;--teal-7:#83cdc0;--teal-8:#54b9a9;--teal-9:#12a594;--teal-10:#009888;--teal-11:#008071;--teal-12:#0f3d36;--teal-a1:#00cc9905;--teal-a2:#00aa800c;--teal-a3:#00c8a020;--teal-a4:#00c39b33;--teal-a5:#00b99548;--teal-a6:#00a6885e;--teal-a7:#00997e7c;--teal-a8:#00977fab;--teal-a9:#009e8ced;--teal-a10:#009888;--teal-a11:#008071;--teal-a12:#003129f0;--teal-contrast:#fff;--teal-surface:#f0faf8cc;--teal-indicator:#12a594;--teal-track:#12a594;--grass-1:#fbfefb;--grass-2:#f5fbf6;--grass-3:#e8f7e9;--grass-4:#daf0db;--grass-5:#c8e9cb;--grass-6:#b2deb6;--grass-7:#94ce9a;--grass-8:#67b973;--grass-9:#46a758;--grass-10:#3d9a4f;--grass-11:#297e3b;--grass-12:#213c24;--grass-a1:#00c00004;--grass-a2:#00991a0a;--grass-a3:#00a70c17;--grass-a4:#00980725;--grass-a5:#00990e37;--grass-a6:#00920e4d;--grass-a7:#018b0f6b;--grass-a8:#008a1498;--grass-a9:#008619b9;--grass-a10:#007a18c2;--grass-a11:#006516d6;--grass-a12:#001f04de;--grass-contrast:#fff;--grass-surface:#f3faf4cc;--grass-indicator:#46a758;--grass-track:#46a758;--mint-1:#f9fefd;--mint-2:#f2fbf9;--mint-3:#ddf9f1;--mint-4:#c8f4e9;--mint-5:#b3ecde;--mint-6:#9ce0d0;--mint-7:#7ecfbd;--mint-8:#4bbba5;--mint-9:#86ead4;--mint-10:#7ce0ca;--mint-11:#007867;--mint-12:#17433a;--mint-a1:#00d5aa06;--mint-a2:#00b18a0d;--mint-a3:#00d29622;--mint-a4:#00cc9937;--mint-a5:#00c0914c;--mint-a6:#00b08663;--mint-a7:#00a17d81;--mint-a8:#009f80b4;--mint-a9:#00d3a579;--mint-a10:#00c39883;--mint-a11:#007867;--mint-a12:#003027e8;--mint-contrast:#062822;--mint-surface:#effaf8cc;--mint-indicator:#86ead4;--mint-track:#86ead4;--lime-1:#fcfdfa;--lime-2:#f7faf3;--lime-3:#eaf7d8;--lime-4:#ddf2c0;--lime-5:#cfe8a9;--lime-6:#bedb93;--lime-7:#aac979;--lime-8:#91b551;--lime-9:#bdee63;--lime-10:#b1e54a;--lime-11:#5f7b2c;--lime-12:#34411e;--lime-a1:#66990005;--lime-a2:#5595000c;--lime-a3:#76cb0027;--lime-a4:#76cb003f;--lime-a5:#71bb0056;--lime-a6:#66aa006c;--lime-a7:#5e990086;--lime-a8:#5e9300ae;--lime-a9:#93e4009c;--lime-a10:#91db00b5;--lime-a11:#3e6000d3;--lime-a12:#192800e1;--lime-contrast:#1d250f;--lime-surface:#f5f9f0cc;--lime-indicator:#bdee63;--lime-track:#bdee63;--yellow-1:#fdfdfa;--yellow-2:#fefceb;--yellow-3:#fff9bf;--yellow-4:#fef29f;--yellow-5:#f8e981;--yellow-6:#e9da79;--yellow-7:#d8cb75;--yellow-8:#c4b54f;--yellow-9:#ffe62a;--yellow-10:#f3dd45;--yellow-11:#897a00;--yellow-12:#413d23;--yellow-a1:#99990005;--yellow-a2:#f3d90014;--yellow-a3:#ffe80040;--yellow-a4:#fddd0060;--yellow-a5:#f1d3007e;--yellow-a6:#d6b90086;--yellow-a7:#b79f008a;--yellow-a8:#aa9400b0;--yellow-a9:#ffe100d5;--yellow-a10:#efd100ba;--yellow-a11:#897a00;--yellow-a12:#231e00dc;--yellow-contrast:#262209;--yellow-surface:#fefbe6cc;--yellow-indicator:#ffe62a;--yellow-track:#ffe62a;--orange-1:#fefcfb;--orange-2:#fff5f0;--orange-3:#ffeadd;--orange-4:#ffd7c0;--orange-5:#ffcaac;--orange-6:#ffba95;--orange-7:#fca882;--orange-8:#f19063;--orange-9:#f76b15;--orange-10:#eb5d00;--orange-11:#d24d00;--orange-12:#572e1a;--orange-a1:#c0400004;--orange-a2:#ff55000f;--orange-a3:#ff620022;--orange-a4:#ff5e003f;--orange-a5:#ff5d0053;--orange-a6:#ff5a016a;--orange-a7:#f94e007d;--orange-a8:#e84a009c;--orange-a9:#f65e00ea;--orange-a10:#eb5d00;--orange-a11:#d24d00;--orange-a12:#441600e5;--orange-contrast:#fff;--orange-surface:#fff3eccc;--orange-indicator:#f76b15;--orange-track:#f76b15;--gold-1:#fdfdfc;--gold-2:#fbf9f7;--gold-3:#f3efea;--gold-4:#ece7de;--gold-5:#e5ded2;--gold-6:#ded3c4;--gold-7:#d4c5b0;--gold-8:#c3b093;--gold-9:#978365;--gold-10:#89775c;--gold-11:#71634e;--gold-12:#302c26;--gold-a1:#55550003;--gold-a2:#80400008;--gold-a3:#6e3d0015;--gold-a4:#6d460021;--gold-a5:#6c44002d;--gold-a6:#7141013b;--gold-a7:#7544004f;--gold-a8:#7245006c;--gold-a9:#5332009a;--gold-a10:#472b00a3;--gold-a11:#331e00b1;--gold-a12:#0c0700d9;--gold-contrast:#fff;--gold-surface:#faf8f5cc;--gold-indicator:#978365;--gold-track:#978365;--red-1:#fffcfc;--red-2:#fff7f7;--red-3:#ffebea;--red-4:#ffdcd9;--red-5:#ffcdca;--red-6:#febdb9;--red-7:#f5a9a5;--red-8:#eb8f8b;--red-9:#e5484d;--red-10:#d73840;--red-11:#cc2e39;--red-12:#64181b;--red-a1:#ff000003;--red-a2:#ff000008;--red-a3:#ff0d0015;--red-a4:#ff150026;--red-a5:#ff0f0035;--red-a6:#fc0f0046;--red-a7:#e30c015a;--red-a8:#d4090074;--red-a9:#db0007b7;--red-a10:#cc000ac7;--red-a11:#c1000ed1;--red-a12:#540003e7;--red-contrast:#fff;--red-surface:#fff5f5cc;--red-indicator:#e5484d;--red-track:#e5484d;--green-1:#fbfefc;--green-2:#f4fbf7;--green-3:#e5f6eb;--green-4:#d6f1df;--green-5:#c4e8d1;--green-6:#adddc0;--green-7:#8fcea8;--green-8:#60b887;--green-9:#30a46c;--green-10:#289662;--green-11:#00814c;--green-12:#1d3b2a;--green-a1:#00c04004;--green-a2:#00a3460b;--green-a3:#00a73b1a;--green-a4:#00a83829;--green-a5:#019c393b;--green-a6:#00963c52;--green-a7:#00903970;--green-a8:#008d3f9f;--green-a9:#008f4acf;--green-a10:#008345d7;--green-a11:#00814c;--green-a12:#00220fe2;--green-contrast:#fff;--green-surface:#f1faf5cc;--green-indicator:#30a46c;--green-track:#30a46c;--amber-1:#fefdfb;--amber-2:#fffaea;--amber-3:#fff2c3;--amber-4:#ffe9a0;--amber-5:#ffde7f;--amber-6:#fcd27a;--amber-7:#e9c16e;--amber-8:#d7a944;--amber-9:#ffca2f;--amber-10:#fac137;--amber-11:#9b6f00;--amber-12:#463a20;--amber-a1:#c0800004;--amber-a2:#ffc30015;--amber-a3:#ffc8003c;--amber-a4:#ffc4005f;--amber-a5:#ffbe0080;--amber-a6:#faa90085;--amber-a7:#d9920091;--amber-a8:#c98a00bb;--amber-a9:#ffbe00d0;--amber-a10:#f9b000c8;--amber-a11:#9b6f00;--amber-a12:#2c1e00df;--amber-contrast:#2b2009;--amber-surface:#fff9e5cc;--amber-indicator:#ffca2f;--amber-track:#ffca2f}.dark,.dark-theme{--white:#000;--black:#fff;--gray-1:#111113;--gray-2:#19191b;--gray-3:#222325;--gray-4:#292a2e;--gray-5:#303136;--gray-6:#393a40;--gray-7:#46484f;--gray-8:#5f606a;--gray-9:#6c6e79;--gray-10:#797b86;--gray-11:#b2b3bd;--gray-12:#eeeef0;--gray-a1:#1111bb03;--gray-a2:#cbcbf90b;--gray-a3:#d6e2f916;--gray-a4:#d1d9f920;--gray-a5:#d7ddfd28;--gray-a6:#d9defc33;--gray-a7:#dae2fd43;--gray-a8:#e0e3fd60;--gray-a9:#e0e4fd70;--gray-a10:#e3e7fd7e;--gray-a11:#eff0feb9;--gray-a12:#fdfdffef;--gray-contrast:#fff;--gray-surface:#0000000d;--gray-indicator:#6c6e79;--gray-track:#6c6e79;--olive-1:#111113;--olive-2:#19191b;--olive-3:#232226;--olive-4:#2a292e;--olive-5:#323137;--olive-6:#3b3a41;--olive-7:#494851;--olive-8:#62606b;--olive-9:#8e8c99;--olive-10:#82808d;--olive-11:#b6b4bf;--olive-12:#ececf1;--olive-a1:#1111bb03;--olive-a2:#cbcbf90b;--olive-a3:#d9cefa17;--olive-a4:#d9d1f920;--olive-a5:#dfd9fe29;--olive-a6:#dfdafc34;--olive-a7:#e0ddfe45;--olive-a8:#e6e0fd61;--olive-a9:#ece8ff92;--olive-a10:#eae6ff85;--olive-a11:#f2effebb;--olive-a12:#fafafff0;--olive-contrast:#fff;--olive-surface:#21212580;--olive-indicator:#8e8c99;--olive-track:#8e8c99;--tomato-1:#160f0e;--tomato-2:#1e1512;--tomato-3:#381710;--tomato-4:#4e160b;--tomato-5:#5e1d10;--tomato-6:#6d2a1c;--tomato-7:#853b2b;--tomato-8:#ac4d39;--tomato-9:#e54d2e;--tomato-10:#d63e1f;--tomato-11:#ff9277;--tomato-12:#fbd3ca;--tomato-a1:#e6000006;--tomato-a2:#fe5a240e;--tomato-a3:#fe360b2a;--tomato-a4:#fd240042;--tomato-a5:#fe360e53;--tomato-a6:#fe522e63;--tomato-a7:#fd67467d;--tomato-a8:#fe6d4ea7;--tomato-a9:#fe5431e4;--tomato-a10:#fe4722d4;--tomato-a11:#ff9277;--tomato-a12:#ffd6cdfb;--tomato-contrast:#fff;--tomato-surface:#2b191380;--tomato-indicator:#e54d2e;--tomato-track:#e54d2e;--ruby-1:#170f0f;--ruby-2:#1e1415;--ruby-3:#3a141a;--ruby-4:#4f131f;--ruby-5:#5e1a27;--ruby-6:#702632;--ruby-7:#893442;--ruby-8:#b44457;--ruby-9:#e54666;--ruby-10:#d6375a;--ruby-11:#ff8e9d;--ruby-12:#ffd2d6;--ruby-a1:#ec000007;--ruby-a2:#fe485a0e;--ruby-a3:#ff23462c;--ruby-a4:#fd184643;--ruby-a5:#fe2d5553;--ruby-a6:#ff466466;--ruby-a7:#ff577281;--ruby-a8:#ff5c77af;--ruby-a9:#fe4c70e4;--ruby-a10:#fe3f69d4;--ruby-a11:#ff8e9d;--ruby-a12:#ffd2d6;--ruby-contrast:#fff;--ruby-surface:#2b171980;--ruby-indicator:#e54666;--ruby-track:#e54666;--pink-1:#170e13;--pink-2:#22111a;--pink-3:#38162a;--pink-4:#4d1338;--pink-5:#5b1b42;--pink-6:#6b2851;--pink-7:#853866;--pink-8:#a94782;--pink-9:#d6409f;--pink-10:#c73092;--pink-11:#ff84d3;--pink-12:#fed1e8;--pink-a1:#ec005a07;--pink-a2:#f6118a13;--pink-a3:#fe30a92a;--pink-a4:#fd19aa41;--pink-a5:#fd31ad50;--pink-a6:#fd4db961;--pink-a7:#fd60be7d;--pink-a8:#ff66c2a3;--pink-a9:#fe49bcd4;--pink-a10:#ff3abac3;--pink-a11:#ff84d3;--pink-a12:#ffd2e9fe;--pink-contrast:#fff;--pink-surface:#33112380;--pink-indicator:#d6409f;--pink-track:#d6409f;--violet-1:#100f1c;--violet-2:#171626;--violet-3:#252045;--violet-4:#30265c;--violet-5:#392f6a;--violet-6:#433978;--violet-7:#52478d;--violet-8:#6659ae;--violet-9:#6e56cf;--violet-10:#6052a7;--violet-11:#b3a8ff;--violet-12:#e0deff;--violet-a1:#0000fb0c;--violet-a2:#5449fa17;--violet-a3:#6d56fe38;--violet-a4:#7253fd51;--violet-a5:#7b60fd60;--violet-a6:#846dfd6f;--violet-a7:#8e79ff85;--violet-a8:#917dfea9;--violet-a9:#8668ffcc;--violet-a10:#8f78ffa1;--violet-a11:#b3a8ff;--violet-a12:#e0deff;--violet-contrast:#fff;--violet-surface:#1d1b3b80;--violet-indicator:#6e56cf;--violet-track:#6e56cf;--indigo-1:#0c111c;--indigo-2:#111725;--indigo-3:#172448;--indigo-4:#1d2e61;--indigo-5:#253974;--indigo-6:#2e4484;--indigo-7:#375097;--indigo-8:#415eb1;--indigo-9:#3e63dd;--indigo-10:#3f5cb0;--indigo-11:#93b4ff;--indigo-12:#d5e2ff;--indigo-a1:#0012fb0c;--indigo-a2:#1156f916;--indigo-a3:#2b64ff3b;--indigo-a4:#3567ff56;--indigo-a5:#4171fd6b;--indigo-a6:#4d7afd7c;--indigo-a7:#5581ff90;--indigo-a8:#5883feac;--indigo-a9:#4671ffdb;--indigo-a10:#5580feab;--indigo-a11:#93b4ff;--indigo-a12:#d5e2ff;--indigo-contrast:#fff;--indigo-surface:#111d3980;--indigo-indicator:#3e63dd;--indigo-track:#3e63dd;--blue-1:#08121c;--blue-2:#0e1926;--blue-3:#0a2847;--blue-4:#003262;--blue-5:#003f75;--blue-6:#104d86;--blue-7:#1d5e9d;--blue-8:#2371bd;--blue-9:#0090ff;--blue-10:#0083f1;--blue-11:#70b8ff;--blue-12:#c8e3ff;--blue-a1:#0027fb0c;--blue-a2:#006afa17;--blue-a3:#0077ff3a;--blue-a4:#0072ff57;--blue-a5:#007efd6c;--blue-a6:#0f8afd7e;--blue-a7:#2694ff96;--blue-a8:#2a95feb9;--blue-a9:#0090ff;--blue-a10:#008afff0;--blue-a11:#70b8ff;--blue-a12:#c8e3ff;--blue-contrast:#fff;--blue-surface:#0c213b80;--blue-indicator:#0090ff;--blue-track:#0090ff;--teal-1:#0b1311;--teal-2:#111c1a;--teal-3:#0e2d28;--teal-4:#043b34;--teal-5:#0b4840;--teal-6:#16574e;--teal-7:#1e695f;--teal-8:#217f72;--teal-9:#12a594;--teal-10:#009888;--teal-11:#55d2c0;--teal-12:#aaf0e3;--teal-a1:#00bb1103;--teal-a2:#12fbd10c;--teal-a3:#00ffd51e;--teal-a4:#00ffd82d;--teal-a5:#00ffdd3b;--teal-a6:#23ffe14b;--teal-a7:#34fde25f;--teal-a8:#34ffe376;--teal-a9:#13ffe49f;--teal-a10:#00ffe391;--teal-a11:#65ffe9cf;--teal-a12:#b4fff1ef;--teal-contrast:#fff;--teal-surface:#11272380;--teal-indicator:#12a594;--teal-track:#12a594;--grass-1:#0d130e;--grass-2:#141a14;--grass-3:#1c2a1d;--grass-4:#1f3a23;--grass-5:#27482b;--grass-6:#2f5735;--grass-7:#37673e;--grass-8:#407948;--grass-9:#46a758;--grass-10:#389a4c;--grass-11:#73d081;--grass-12:#c0f0c4;--grass-a1:#00bb0003;--grass-a2:#5ef75e0a;--grass-a3:#79fe831b;--grass-a4:#63ff7a2c;--grass-a5:#71ff823b;--grass-a6:#77ff8c4b;--grass-a7:#7afd8d5d;--grass-a8:#7cfd8e70;--grass-a9:#65ff82a1;--grass-a10:#55ff7893;--grass-a11:#8bff9dcd;--grass-a12:#ccffd0ef;--grass-contrast:#fff;--grass-surface:#17231780;--grass-indicator:#46a758;--grass-track:#46a758;--mint-1:#0c1311;--mint-2:#0f1b18;--mint-3:#0c2c26;--mint-4:#003a31;--mint-5:#06483d;--mint-6:#16564a;--mint-7:#22685b;--mint-8:#287f6f;--mint-9:#86ead4;--mint-10:#7ce0ca;--mint-11:#6dd2bc;--mint-12:#c0f5e8;--mint-a1:#00bb1103;--mint-a2:#00f9b40b;--mint-a3:#00ffca1d;--mint-a4:#00ffcb2c;--mint-a5:#00ffd03b;--mint-a6:#23ffd64a;--mint-a7:#3ffdda5e;--mint-a8:#43ffdd76;--mint-a9:#92ffe7e9;--mint-a10:#8cffe6de;--mint-a11:#83ffe4cf;--mint-a12:#c7fef0f5;--mint-contrast:#062822;--mint-surface:#0e251f80;--mint-indicator:#86ead4;--mint-track:#86ead4;--lime-1:#0f120b;--lime-2:#151910;--lime-3:#212916;--lime-4:#2c361b;--lime-5:#364321;--lime-6:#415126;--lime-7:#4e612d;--lime-8:#5c7434;--lime-9:#bdee63;--lime-10:#b6e26a;--lime-11:#bae66e;--lime-12:#dff8bc;--lime-a1:#00910002;--lime-a2:#83f40009;--lime-a3:#aefd431a;--lime-a4:#befd5128;--lime-a5:#c0fe5d36;--lime-a6:#c3fe5f45;--lime-a7:#c6ff6556;--lime-a8:#c4fd656b;--lime-a9:#caff69ed;--lime-a10:#cdff76e0;--lime-a11:#cdfe78e5;--lime-a12:#e5ffc1f8;--lime-contrast:#1d250f;--lime-surface:#19211080;--lime-indicator:#bdee63;--lime-track:#bdee63;--yellow-1:#12110b;--yellow-2:#1a1810;--yellow-3:#282409;--yellow-4:#332d00;--yellow-5:#3f3700;--yellow-6:#4c440e;--yellow-7:#5f571f;--yellow-8:#796f2b;--yellow-9:#ffe629;--yellow-10:#f1dd4e;--yellow-11:#f2dd4f;--yellow-12:#f4edb8;--yellow-a1:#91110002;--yellow-a2:#f7c4000a;--yellow-a3:#fcd30019;--yellow-a4:#fbd20025;--yellow-a5:#fcd30032;--yellow-a6:#fddd0640;--yellow-a7:#fee63c54;--yellow-a8:#fde74c70;--yellow-a9:#ffe629;--yellow-a10:#ffea52f0;--yellow-a11:#fee852f2;--yellow-a12:#fef7bff4;--yellow-contrast:#262209;--yellow-surface:#231f1080;--yellow-indicator:#ffe629;--yellow-track:#ffe629;--orange-1:#160f0d;--orange-2:#1f1510;--orange-3:#351c10;--orange-4:#4b1c03;--orange-5:#592508;--orange-6:#693318;--orange-7:#804326;--orange-8:#a55630;--orange-9:#f76b15;--orange-10:#e95f00;--orange-11:#ff9c69;--orange-12:#ffdcca;--orange-a1:#e6000006;--orange-a2:#ff55000f;--orange-a3:#fd590b27;--orange-a4:#fc3e003f;--orange-a5:#fd53004e;--orange-a6:#fd6c245f;--orange-a7:#ff7d3e77;--orange-a8:#ff80439f;--orange-a9:#fe6d15f7;--orange-a10:#fe6600e8;--orange-a11:#ff9c69;--orange-a12:#ffdcca;--orange-contrast:#fff;--orange-surface:#2d191080;--orange-indicator:#f76b15;--orange-track:#f76b15;--gold-1:#12110f;--gold-2:#1a1917;--gold-3:#25221e;--gold-4:#2e2a24;--gold-5:#37322b;--gold-6:#443d32;--gold-7:#554c3d;--gold-8:#6f624e;--gold-9:#978365;--gold-10:#8a7759;--gold-11:#c8b79f;--gold-12:#efe5d7;--gold-a1:#91110002;--gold-a2:#f7deab0a;--gold-a3:#f9d6a816;--gold-a4:#f9d9a920;--gold-a5:#fedfb329;--gold-a6:#feddaa37;--gold-a7:#ffe0ab49;--gold-a8:#ffdeac65;--gold-a9:#ffdba690;--gold-a10:#ffda9f82;--gold-a11:#fee8c9c5;--gold-a12:#fff4e5ee;--gold-contrast:#fff;--gold-surface:#23211d80;--gold-indicator:#978365;--gold-track:#978365;--red-1:#170f0e;--red-2:#201312;--red-3:#3b1212;--red-4:#500f13;--red-5:#61171a;--red-6:#732425;--red-7:#8c3434;--red-8:#b54546;--red-9:#e5484d;--red-10:#d63941;--red-11:#ff8f8b;--red-12:#ffd2ce;--red-a1:#ec000007;--red-a2:#f22f2011;--red-a3:#ff17172d;--red-a4:#fe0a1944;--red-a5:#ff232c56;--red-a6:#ff404269;--red-a7:#ff555584;--red-a8:#ff5d5eb0;--red-a9:#fe4e54e4;--red-a10:#fe414bd4;--red-a11:#ff8f8b;--red-a12:#ffd2ce;--red-contrast:#fff;--red-surface:#2f151380;--red-indicator:#e5484d;--red-track:#e5484d;--green-1:#0c130f;--green-2:#121b16;--green-3:#152c1f;--green-4:#143b27;--green-5:#1b4930;--green-6:#23573b;--green-7:#2b6848;--green-8:#327c55;--green-9:#30a46c;--green-10:#1d9760;--green-11:#63d196;--green-12:#b2f1cb;--green-a1:#00bb0003;--green-a2:#29f9850b;--green-a3:#35ff8d1d;--green-a4:#22ff8e2d;--green-a5:#3cff953c;--green-a6:#4fffa04b;--green-a7:#58fda65e;--green-a8:#5bffa873;--green-a9:#44ffa49e;--green-a10:#27ff9d90;--green-a11:#77ffb6ce;--green-a12:#bcffd7f0;--green-contrast:#fff;--green-surface:#13251b80;--green-indicator:#30a46c;--green-track:#30a46c;--amber-1:#13110c;--amber-2:#1c1810;--amber-3:#2c220c;--amber-4:#3b2900;--amber-5:#483300;--amber-6:#554112;--amber-7:#695323;--amber-8:#84692e;--amber-9:#ffc53d;--amber-10:#f4bb2e;--amber-11:#ffcc4c;--amber-12:#fee7ba;--amber-a1:#bb110003;--amber-a2:#fba6000c;--amber-a3:#ffa7001d;--amber-a4:#ff99002d;--amber-a5:#ffa4003b;--amber-a6:#ffb91549;--amber-a7:#fdc2415f;--amber-a8:#fdc64d7c;--amber-a9:#ffc53d;--amber-a10:#fec22ff4;--amber-a11:#ffcc4c;--amber-a12:#ffe8bbfe;--amber-contrast:#2b2009;--amber-surface:#271f1080;--amber-indicator:#ffc53d;--amber-track:#ffc53d}}@layer config{:root{--z-index-0:0;--z-index-1:1;--z-index-badge:2;--z-index-toolbar-container:2;--z-index-submenu:5;--z-index-drop:9900;--z-index-overlay:9950;--z-index-offcanvas:9960;--z-index-popup:9970;--z-index-toast:9980;--space:.25rem;--speed-sm:.15s;--speed:.25s;--speed-md:.25s;--speed-lg:.5s;--speed-xl:.75s;--text-xs:.75rem;--text-sm:.875rem;--text:1rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--text-6xl:3.75rem;--text-7xl:4.5rem;--text-8xl:6rem;--text-9xl:8rem;--font-thin:100;--font-extraLight:200;--font-light:300;--font-normal:400;--font-medium:500;--font-semiBold:600;--font-bold:700;--font-extraBold:800;--font-black:900;--line-height:1.5;--line-height-paragraph:1.5;--line-height-pre:1.4;--line-height-heading:1.25;--line-height-self:1;--screen-sm:576px;--screen-md:768px;--screen-lg:992px;--screen-xl:1200px;--columns-3xs:16rem;--columns-2xs:18rem;--columns-xs:20rem;--columns-sm:24rem;--columns:28rem;--columns-md:28rem;--columns-lg:32rem;--columns-xl:36rem;--columns-2xl:42rem;--columns-3xl:48rem;--columns-4xl:56rem;--columns-5xl:64rem;--columns-6xl:72rem;--columns-7xl:80rem;--blur-xs:4px;--blur-sm:8px;--blur:12px;--blur-md:12px;--blur-lg:16px;--blur-xl:24px;--blur-2xl:40px;--blur-3xl:64px;--drop-blur-sm:2px;--drop-blur:4px;--drop-blur-md:4px;--drop-blur-lg:6px;--drop-blur-xl:8px;--opacity-disabled:.5;--opacity-readonly:.75;--opacity-hover:.85;--opacity-active:1;--readonly-background:var(--gray-a3);--disabled-background:var(--gray-a6);--border-color-sm:var(--gray-a3);--border-color:var(--gray-a6);--border-color-md:var(--gray-a6);--border-color-lg:var(--gray-a9);--border-sm:1px solid var(--border-color-sm);--border:1px solid var(--border-color);--border-md:1px solid var(--border-color-md);--border-lg:1px solid var(--border-color-lg);--radius-xs:.125rem;--radius-sm:.25rem;--radius:.375rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--radius-4xl:2rem;--circle:50%;--round:.5rem;--shadow-2xs:0 1px #0000000d;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--shadow-2xl:0 25px 50px -12px #00000040;--shadow-inner:0 0 0 1px var(--border-color);--text-shadow-2xs:0px 1px 0px #00000026;--text-shadow-xs:0px 1px 1px #0003;--text-shadow-sm:0px 1px 0px #00000013, 0px 1px 1px #00000013, 0px 2px 2px #00000013;--text-shadow:0px 1px 1px #0000001a, 0px 1px 2px #0000001a, 0px 2px 4px #0000001a;--text-shadow-md:0px 1px 1px #0000001a, 0px 1px 2px #0000001a, 0px 2px 4px #0000001a;--text-shadow-lg:0px 1px 2px #0000001a, 0px 3px 2px #0000001a, 0px 4px 8px #0000001a;--drop-shadow-color-xs:#0000000d;--drop-shadow-color-sm:#00000026;--drop-shadow-color-md:#0000001f;--drop-shadow-color-lg:#00000026;--drop-shadow-color-xl:#0000001a;--drop-shadow-color-2xl:#00000026;--drop-shadow-xs:0 1px 1px var(--drop-shadow-color-xs);--drop-shadow-sm:0 1px 2px var(--drop-shadow-color-sm);--drop-shadow:0 3px 3px var(--drop-shadow-color-md);--drop-shadow-md:0 3px 3px var(--drop-shadow-color-md);--drop-shadow-lg:0 4px 4px var(--drop-shadow-color-lg);--drop-shadow-xl:0 9px 7px var(--drop-shadow-color-xl);--drop-shadow-2xl:0 25px 25px var(--drop-shadow-color-2xl);--drop-shadow-none:0 0 #0000;--foreground:var(--gray-12);--background:var(--gray-1);--primary:var(--indigo-9);--primary-foreground:var(--indigo-contrast);--primary-a:var(--indigo-9a);--secondary:var(--indigo-a3);--secondary-foreground:var(--indigo-a11);--nautral:var(--indigo-a5);--accent:var(--indigo-a2);--danger:var(--red-10);--danger-foreground:var(--red-contrast);--success:var(--green-10);--success-foreground:var(--green-contrast);--warning:var(--amber-10);--warning-foreground:var(--amber-contrast);--surface-sm:var(--gray-2);--surface:var(--gray-3);--surface-md:var(--gray-3);--surface-lg:var(--gray-4);--focus:var(--indigo-6);--link:var(--indigo-9);--link-hover:var(--indigo-10);--link-visited:var(--indigo-11);--placeholder:var(--gray-a6);--code:var(--indigo-a3);--code-foreground:var(--indigo-a11);--popup-background:var(--gray-a11);--input-color:var(--gray-a6)}.j-theme-gray{--primary:var(--gray-12);--primary-foreground:var(--gray-1);--primary-a-sm:var(--gray-a3);--primary-a:var(--gray-a6);--primary-a-lg:var(--gray-a9);--secondary:var(--gray-a3);--secondary-foreground:var(--gray-a11);--nautral:var(--gray-a5);--accent:var(--gray-a2)}.j-theme-olive{--primary:var(--olive-11);--primary-foreground:var(--olive-2);--primary-a-sm:var(--olive-a3);--primary-a:var(--olive-a6);--primary-a-lg:var(--olive-a9);--secondary:var(--olive-a3);--secondary-foreground:var(--olive-a11);--nautral:var(--olive-a5);--accent:var(--olive-a2)}.j-theme-tomato{--primary:var(--tomato-9);--primary-foreground:var(--tomato-contrast);--primary-a-sm:var(--tomato-a3);--primary-a:var(--tomato-a6);--primary-a-lg:var(--tomato-a9);--secondary:var(--tomato-a3);--secondary-foreground:var(--tomato-a11);--nautral:var(--tomato-a5);--accent:var(--tomato-a2);--code:var(--tomato-a3);--code-foreground:var(--tomato-a11)}.j-theme-ruby{--primary:var(--ruby-9);--primary-foreground:var(--ruby-contrast);--primary-a-sm:var(--ruby-a3);--primary-a:var(--ruby-a6);--primary-a-lg:var(--ruby-a9);--secondary:var(--ruby-a3);--secondary-foreground:var(--ruby-a11);--nautral:var(--ruby-a5);--accent:var(--ruby-a2);--code:var(--ruby-a3);--code-foreground:var(--ruby-a11)}.j-theme-pink{--primary:var(--pink-9);--primary-foreground:var(--pink-contrast);--primary-a-sm:var(--pink-a3);--primary-a:var(--pink-a6);--primary-a-lg:var(--pink-a9);--secondary:var(--pink-a3);--secondary-foreground:var(--pink-a11);--nautral:var(--pink-a5);--accent:var(--pink-a2);--code:var(--pink-a3);--code-foreground:var(--pink-a11)}.j-theme-violet{--primary:var(--violet-9);--primary-foreground:var(--violet-contrast);--primary-a-sm:var(--violet-a3);--primary-a:var(--violet-a6);--primary-a-lg:var(--violet-a9);--secondary:var(--violet-a3);--secondary-foreground:var(--violet-a11);--nautral:var(--violet-a5);--accent:var(--violet-a2);--code:var(--violet-a3);--code-foreground:var(--violet-a11)}.j-theme-indigo{--primary:var(--indigo-9);--primary-foreground:var(--indigo-contrast);--primary-a-sm:var(--indigo-a3);--primary-a:var(--indigo-a6);--primary-a-lg:var(--indigo-a9);--secondary:var(--indigo-a3);--secondary-foreground:var(--indigo-a11);--nautral:var(--indigo-a5);--accent:var(--indigo-a2);--code:var(--indigo-a3);--code-foreground:var(--indigo-a11)}.j-theme-blue{--primary:var(--blue-9);--primary-foreground:var(--blue-contrast);--primary-a-sm:var(--blue-a3);--primary-a:var(--blue-a6);--primary-a-lg:var(--blue-a9);--secondary:var(--blue-a3);--secondary-foreground:var(--blue-a11);--nautral:var(--blue-a5);--accent:var(--blue-a2);--code:var(--blue-a3);--code-foreground:var(--blue-a11)}.j-theme-teal{--primary:var(--teal-9);--primary-foreground:var(--teal-contrast);--primary-a-sm:var(--teal-a3);--primary-a:var(--teal-a6);--primary-a-lg:var(--teal-a9);--secondary:var(--teal-a3);--secondary-foreground:var(--teal-a11);--nautral:var(--teal-a5);--accent:var(--teal-a2);--code:var(--teal-a3);--code-foreground:var(--teal-a11)}.j-theme-grass{--primary:var(--grass-9);--primary-foreground:var(--grass-contrast);--primary-a-sm:var(--grass-a3);--primary-a:var(--grass-a6);--primary-a-lg:var(--grass-a9);--secondary:var(--grass-a3);--secondary-foreground:var(--grass-a11);--nautral:var(--grass-a5);--accent:var(--grass-a2);--code:var(--grass-a3);--code-foreground:var(--grass-a11)}.j-theme-mint{--primary:var(--mint-9);--primary-foreground:var(--mint-contrast);--primary-a-sm:var(--mint-a3);--primary-a:var(--mint-a6);--primary-a-lg:var(--mint-a9);--secondary:var(--mint-a3);--secondary-foreground:var(--mint-a11);--nautral:var(--mint-a5);--accent:var(--mint-a2);--code:var(--mint-a3);--code-foreground:var(--mint-a11)}.j-theme-lime{--primary:var(--lime-9);--primary-foreground:var(--lime-contrast);--secondary:var(--lime-a3);--secondary-foreground:var(--lime-a11);--nautral:var(--lime-a5);--accent:var(--lime-a2);--code:var(--lime-a3);--code-foreground:var(--lime-a11)}.j-theme-yellow{--primary:var(--yellow-9);--primary-foreground:var(--yellow-contrast);--primary-a-sm:var(--yellow-a3);--primary-a:var(--yellow-a6);--primary-a-lg:var(--yellow-a9);--secondary:var(--yellow-a3);--secondary-foreground:var(--yellow-a11);--nautral:var(--yellow-a5);--accent:var(--yellow-a2);--code:var(--yellow-a3);--code-foreground:var(--yellow-a11)}.j-theme-orange{--primary:var(--orange-9);--primary-foreground:var(--orange-contrast);--primary-a-sm:var(--orange-a3);--primary-a:var(--orange-a6);--primary-a-lg:var(--orange-a9);--secondary:var(--orange-a3);--secondary-foreground:var(--orange-a11);--nautral:var(--orange-a5);--accent:var(--orange-a2);--code:var(--orange-a3);--code-foreground:var(--orange-a11)}.j-theme-gold{--primary:var(--gold-9);--primary-foreground:var(--gold-contrast);--primary-a-sm:var(--gold-a3);--primary-a:var(--gold-a6);--primary-a-lg:var(--gold-a9);--secondary:var(--gold-a3);--secondary-foreground:var(--gold-a11);--nautral:var(--gold-a5);--accent:var(--gold-a2);--code:var(--gold-a3);--code-foreground:var(--gold-a11)}.dark{--popup-background:var(--gray-a2);--shadow-2xs:0 1px #0003;--shadow-xs:0 1px 2px 0 #0003;--shadow-sm:0 1px 3px 0 #00000040, 0 1px 2px -1px #0003;--shadow:0 4px 6px -1px #0000004d, 0 2px 4px -2px #0003;--shadow-md:0 4px 6px -1px #0000004d, 0 2px 4px -2px #0003;--shadow-lg:0 10px 15px -3px #00000059, 0 4px 6px -4px #00000040;--shadow-xl:0 20px 25px -5px #0006, 0 8px 10px -6px #0000004d;--shadow-2xl:0 25px 50px -12px #00000080}.j-font-sm{--font-size-2xl:1.5rem;--font-size-xl:1.125rem;--font-size-lg:1rem;--font-size:.875rem;--font-size-md:.875rem;--font-size-sm:.75rem;--el-height-2xs:calc(var(--space) * 3);--el-height-xs:calc(var(--space) * 4);--el-height-sm:calc(var(--space) * 6);--el-height:calc(var(--space) * 8);--el-height-md:calc(var(--space) * 8);--el-height-lg:calc(var(--space) * 10)}.j-font-md{--font-size-2xl:2.25rem;--font-size-xl:1.5rem;--font-size-lg:1.25rem;--font-size:1rem;--font-size-md:1rem;--font-size-sm:.875rem;--el-height-2xs:calc(var(--space) * 4);--el-height-xs:calc(var(--space) * 6);--el-height-sm:calc(var(--space) * 8);--el-height:calc(var(--space) * 10);--el-height-md:calc(var(--space) * 10);--el-height-lg:calc(var(--space) * 12)}.j-shadow-sm{--box-shadow-sm:var(--shadow-xs);--box-shadow:var(--shadow-sm)}.j-shadow-md{--box-shadow-sm:var(--shadow-sm);--box-shadow:var(--shadow-md)}.j-shadow-lg{--box-shadow-sm:var(--shadow-md);--box-shadow:var(--shadow-lg)}.j-shadow-none{--box-shadow-sm:0 0 0 0;--box-shadow:0 0 0 0}.j-radius-sm{--border-radius:3px;--border-radius-sm:2px}.j-radius-md{--border-radius:6px;--border-radius-sm:4px}.j-radius-lg{--border-radius:9px;--border-radius-sm:6px}.j-radius-xl{--border-radius:15px;--border-radius-sm:12px}.j-radius-round{--border-radius:9999px;--border-radius-sm:9999px}.j-radius-none{--border-radius:0;--border-radius-sm:0}}@layer base;@layer layout{::-webkit-backdrop{box-sizing:border-box}*,:after,::backdrop,:before,::file-selector-button{box-sizing:border-box}html:not(.wp-toolbar){-webkit-text-size-adjust:100%;tab-size:4;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;scroll-behavior:smooth;font-feature-settings:normal;font-variation-settings:normal;color:var(--foreground);background-color:var(--background);font-family:system-ui,-apple-system,Segoe UI,Roboto,emoji,Helvetica,Arial,sans-serif}html.light,html.theme-light{color-scheme:light}html.dark,html.theme-dark{color-scheme:dark}body{min-width:var(--screen-xs,320px);min-height:100vh;font-size:var(--font-size);text-rendering:optimizespeed;margin:0}img,video{max-width:100%;height:auto}img{object-fit:cover}.is-reset:where(a){cursor:pointer;color:inherit;outline:none;text-decoration:none}.is-reset:where(button){-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:default;font-size:inherit;font-family:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;text-align:initial;-webkit-tap-highlight-color:transparent;background-color:#0000;border:none;outline:none;margin:0;padding:0}.is-reset:where(h1,h2,h3,h4,h5,h6){font-size:inherit;font-weight:inherit;margin:0}.is-reset:where(ol,ul){margin:0;padding:0;list-style:none}.is-reset:where(p){margin:0}.is-reset:where(pre){margin:0;font-family:inherit}.j-background-grid{background-image:linear-gradient(to right, var(--gray-a3) 1px, transparent 1px), linear-gradient(to bottom, var(--gray-a3) 1px, transparent 1px);pointer-events:none;user-select:none;background-size:24px 36px;position:absolute;inset:0;mask-image:radial-gradient(70% 20% at 50% 0,#000 60%,#0000 300%)}.dark .j-background-grid{background-image:linear-gradient(to right, var(--gray-a2) 1px, transparent 1px), linear-gradient(to bottom, var(--gray-a2) 1px, transparent 1px)}.container{width:100%;max-width:var(--screen-xl,1200px);padding-inline:var(--container-padding-inline,1rem);margin-inline:auto}.auto-container{max-width:100%;padding:1px;overflow:auto hidden}.block-center{height:fit-content;margin-inline:auto}.flex-container{gap:var(--flex-container-gap,1rem);flex-wrap:wrap;display:flex}.flex-col{flex:1;min-width:0}.flex-col-auto{flex:none;width:auto}.flex-col-1{width:calc((100% - 0 * var(--flex-container-gap,1rem)) / 1)}.flex-col-2{width:calc((100% - 1 * var(--flex-container-gap,1rem)) / 2)}.flex-col-3{width:calc((100% - 2 * var(--flex-container-gap,1rem)) / 3)}.flex-col-4{width:calc((100% - 3 * var(--flex-container-gap,1rem)) / 4)}.flex-col-5{width:calc((100% - 4 * var(--flex-container-gap,1rem)) / 5)}.flex-col-6{width:calc((100% - 5 * var(--flex-container-gap,1rem)) / 6)}.flex-col-7{width:calc((100% - 6 * var(--flex-container-gap,1rem)) / 7)}.flex-col-8{width:calc((100% - 7 * var(--flex-container-gap,1rem)) / 8)}.flex-col-9{width:calc((100% - 8 * var(--flex-container-gap,1rem)) / 9)}.flex-col-10{width:calc((100% - 9 * var(--flex-container-gap,1rem)) / 10)}.flex-col-11{width:calc((100% - 10 * var(--flex-container-gap,1rem)) / 11)}.flex-col-12{width:calc((100% - 11 * var(--flex-container-gap,1rem)) / 12)}[class*=flex-col-]{flex:none}@media (width>=576px){.flex-col-sm-1{width:calc((100% - 0 * var(--flex-container-gap,1rem)) / 1)}.flex-col-sm-2{width:calc((100% - 1 * var(--flex-container-gap,1rem)) / 2)}.flex-col-sm-3{width:calc((100% - 2 * var(--flex-container-gap,1rem)) / 3)}.flex-col-sm-4{width:calc((100% - 3 * var(--flex-container-gap,1rem)) / 4)}.flex-col-sm-5{width:calc((100% - 4 * var(--flex-container-gap,1rem)) / 5)}.flex-col-sm-6{width:calc((100% - 5 * var(--flex-container-gap,1rem)) / 6)}.flex-col-sm-7{width:calc((100% - 6 * var(--flex-container-gap,1rem)) / 7)}.flex-col-sm-8{width:calc((100% - 7 * var(--flex-container-gap,1rem)) / 8)}.flex-col-sm-9{width:calc((100% - 8 * var(--flex-container-gap,1rem)) / 9)}.flex-col-sm-10{width:calc((100% - 9 * var(--flex-container-gap,1rem)) / 10)}.flex-col-sm-11{width:calc((100% - 10 * var(--flex-container-gap,1rem)) / 11)}.flex-col-sm-12{width:calc((100% - 11 * var(--flex-container-gap,1rem)) / 12)}}@media (width>=768px){.flex-col-md-1{width:calc((100% - 0 * var(--flex-container-gap,1rem)) / 1)}.flex-col-md-2{width:calc((100% - 1 * var(--flex-container-gap,1rem)) / 2)}.flex-col-md-3{width:calc((100% - 2 * var(--flex-container-gap,1rem)) / 3)}.flex-col-md-4{width:calc((100% - 3 * var(--flex-container-gap,1rem)) / 4)}.flex-col-md-5{width:calc((100% - 4 * var(--flex-container-gap,1rem)) / 5)}.flex-col-md-6{width:calc((100% - 5 * var(--flex-container-gap,1rem)) / 6)}.flex-col-md-7{width:calc((100% - 6 * var(--flex-container-gap,1rem)) / 7)}.flex-col-md-8{width:calc((100% - 7 * var(--flex-container-gap,1rem)) / 8)}.flex-col-md-9{width:calc((100% - 8 * var(--flex-container-gap,1rem)) / 9)}.flex-col-md-10{width:calc((100% - 9 * var(--flex-container-gap,1rem)) / 10)}.flex-col-md-11{width:calc((100% - 10 * var(--flex-container-gap,1rem)) / 11)}.flex-col-md-12{width:calc((100% - 11 * var(--flex-container-gap,1rem)) / 12)}}@media (width>=992px){.flex-col-lg-1{width:calc((100% - 0 * var(--flex-container-gap,1rem)) / 1)}.flex-col-lg-2{width:calc((100% - 1 * var(--flex-container-gap,1rem)) / 2)}.flex-col-lg-3{width:calc((100% - 2 * var(--flex-container-gap,1rem)) / 3)}.flex-col-lg-4{width:calc((100% - 3 * var(--flex-container-gap,1rem)) / 4)}.flex-col-lg-5{width:calc((100% - 4 * var(--flex-container-gap,1rem)) / 5)}.flex-col-lg-6{width:calc((100% - 5 * var(--flex-container-gap,1rem)) / 6)}.flex-col-lg-7{width:calc((100% - 6 * var(--flex-container-gap,1rem)) / 7)}.flex-col-lg-8{width:calc((100% - 7 * var(--flex-container-gap,1rem)) / 8)}.flex-col-lg-9{width:calc((100% - 8 * var(--flex-container-gap,1rem)) / 9)}.flex-col-lg-10{width:calc((100% - 9 * var(--flex-container-gap,1rem)) / 10)}.flex-col-lg-11{width:calc((100% - 10 * var(--flex-container-gap,1rem)) / 11)}.flex-col-lg-12{width:calc((100% - 11 * var(--flex-container-gap,1rem)) / 12)}}@media (width>=1200px){.flex-col-xl-1{width:calc((100% - 0 * var(--flex-container-gap,1rem)) / 1)}.flex-col-xl-2{width:calc((100% - 1 * var(--flex-container-gap,1rem)) / 2)}.flex-col-xl-3{width:calc((100% - 2 * var(--flex-container-gap,1rem)) / 3)}.flex-col-xl-4{width:calc((100% - 3 * var(--flex-container-gap,1rem)) / 4)}.flex-col-xl-5{width:calc((100% - 4 * var(--flex-container-gap,1rem)) / 5)}.flex-col-xl-6{width:calc((100% - 5 * var(--flex-container-gap,1rem)) / 6)}.flex-col-xl-7{width:calc((100% - 6 * var(--flex-container-gap,1rem)) / 7)}.flex-col-xl-8{width:calc((100% - 7 * var(--flex-container-gap,1rem)) / 8)}.flex-col-xl-9{width:calc((100% - 8 * var(--flex-container-gap,1rem)) / 9)}.flex-col-xl-10{width:calc((100% - 9 * var(--flex-container-gap,1rem)) / 10)}.flex-col-xl-11{width:calc((100% - 10 * var(--flex-container-gap,1rem)) / 11)}.flex-col-xl-12{width:calc((100% - 11 * var(--flex-container-gap,1rem)) / 12)}}.grid-container{gap:var(--grid-container-gap,calc(var(--space) * 2));grid-template-columns:1fr;width:100%;display:grid}.grid-col-1{grid-template-columns:repeat(1,1fr)}.grid-col-2{grid-template-columns:repeat(2,1fr)}.grid-col-3{grid-template-columns:repeat(3,1fr)}.grid-col-4{grid-template-columns:repeat(4,1fr)}.grid-col-5{grid-template-columns:repeat(5,1fr)}.grid-col-6{grid-template-columns:repeat(6,1fr)}.grid-col-7{grid-template-columns:repeat(7,1fr)}.grid-col-8{grid-template-columns:repeat(8,1fr)}.grid-col-9{grid-template-columns:repeat(9,1fr)}.grid-col-10{grid-template-columns:repeat(10,1fr)}.grid-col-11{grid-template-columns:repeat(11,1fr)}.grid-col-12{grid-template-columns:repeat(12,1fr)}.grid-col-auto-150{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.grid-col-auto-200{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.grid-col-auto-250{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.grid-col-auto-300{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}@media (width>=576px){.grid-col-sm-1{grid-template-columns:repeat(1,1fr)}.grid-col-sm-2{grid-template-columns:repeat(2,1fr)}.grid-col-sm-3{grid-template-columns:repeat(3,1fr)}.grid-col-sm-4{grid-template-columns:repeat(4,1fr)}.grid-col-sm-5{grid-template-columns:repeat(5,1fr)}.grid-col-sm-6{grid-template-columns:repeat(6,1fr)}.grid-col-sm-7{grid-template-columns:repeat(7,1fr)}.grid-col-sm-8{grid-template-columns:repeat(8,1fr)}.grid-col-sm-9{grid-template-columns:repeat(9,1fr)}.grid-col-sm-10{grid-template-columns:repeat(10,1fr)}.grid-col-sm-11{grid-template-columns:repeat(11,1fr)}.grid-col-sm-12{grid-template-columns:repeat(12,1fr)}}@media (width>=768px){.grid-col-md-1{grid-template-columns:repeat(1,1fr)}.grid-col-md-2{grid-template-columns:repeat(2,1fr)}.grid-col-md-3{grid-template-columns:repeat(3,1fr)}.grid-col-md-4{grid-template-columns:repeat(4,1fr)}.grid-col-md-6{grid-template-columns:repeat(6,1fr)}.grid-col-md-12{grid-template-columns:repeat(12,1fr)}}@media (width>=992px){.grid-col-lg-1{grid-template-columns:repeat(1,1fr)}.grid-col-lg-2{grid-template-columns:repeat(2,1fr)}.grid-col-lg-3{grid-template-columns:repeat(3,1fr)}.grid-col-lg-4{grid-template-columns:repeat(4,1fr)}.grid-col-lg-6{grid-template-columns:repeat(6,1fr)}.grid-col-lg-12{grid-template-columns:repeat(12,1fr)}}@media (width>=1200px){.grid-col-xl-1{grid-template-columns:repeat(1,1fr)}.grid-col-xl-2{grid-template-columns:repeat(2,1fr)}.grid-col-xl-3{grid-template-columns:repeat(3,1fr)}.grid-col-xl-4{grid-template-columns:repeat(4,1fr)}.grid-col-xl-6{grid-template-columns:repeat(6,1fr)}.grid-col-xl-12{grid-template-columns:repeat(12,1fr)}}.ios-safe-x{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.ios-safe-y{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.ios-safe-left{padding-left:env(safe-area-inset-left)}.ios-safe-right{padding-right:env(safe-area-inset-right)}.ios-safe-top{padding-top:env(safe-area-inset-top)}.ios-safe-bottom{padding-bottom:env(safe-area-inset-bottom)}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:16/9}.aspect-auto{aspect-ratio:auto}.columns-auto{-moz-columns:auto;columns:auto}.columns-3xs{-moz-columns:var(--columns-3xs);columns:var(--columns-3xs)}.columns-2xs{-moz-columns:var(--columns-2xs);columns:var(--columns-2xs)}.columns-xs{-moz-columns:var(--columns-xs);columns:var(--columns-xs)}.columns-sm{-moz-columns:var(--columns-sm);columns:var(--columns-sm)}.columns-md{-moz-columns:var(--columns-md);columns:var(--columns-md)}.columns-lg{-moz-columns:var(--columns-lg);columns:var(--columns-lg)}.columns-xl{-moz-columns:var(--columns-xl);columns:var(--columns-xl)}.columns-2xl{-moz-columns:var(--columns-2xl);columns:var(--columns-2xl)}.columns-3xl{-moz-columns:var(--columns-3xl);columns:var(--columns-3xl)}.columns-4xl{-moz-columns:var(--columns-4xl);columns:var(--columns-4xl)}.columns-5xl{-moz-columns:var(--columns-5xl);columns:var(--columns-5xl)}.columns-6xl{-moz-columns:var(--columns-6xl);columns:var(--columns-6xl)}.columns-7xl{-moz-columns:var(--columns-7xl);columns:var(--columns-7xl)}.w-full{width:100%}.w-half{width:50%}.w-screen{width:100vw}}@layer content{.j-content{--content-block-margin:1.5em;--content-block-margin-bottom:1em;--content-heading-margin:1.75em;--content-heading-margin-bottom:1em;line-height:1.5}.j-content,.j-content.is-md{font-size:var(--font-size-lg)}.j-content.is-sm{font-size:var(--font-size)}.j-content.is-lg{font-size:var(--font-size-xl)}.j-content.is-xl{font-size:var(--font-size-2xl)}.j-content *,.j-content :before,.j-content :after{box-sizing:border-box}.j-content p,.j-content div{margin:0 0 var(--content-block-margin-bottom)}.j-content h1,.j-content h2,.j-content h3,.j-content h4,.j-content h5,.j-content h6{margin:var(--content-heading-margin) 0 var(--content-heading-margin-bottom);font-weight:600;line-height:1.25}.j-content h1{font-size:2em}.j-content h2{font-size:1.75em}.j-content h3{font-size:1.5em}.j-content h4{font-size:1.25em}.j-content h5{font-size:1.125em}.j-content h6{font-size:1em}.j-content strong,.j-content b{font-weight:700}.j-content em,.j-content i{font-style:italic}.j-content u{text-decoration:underline}.j-content s,.j-content del{text-decoration:line-through}.j-content mark{background-color:var(--yellow-9);border-radius:.2em;padding:0 .2em}.j-content small{font-size:.875em}.j-content sub{vertical-align:sub;font-size:.75em}.j-content sup{vertical-align:super;font-size:.75em}.j-content a{color:var(--link);text-decoration:none}.j-content a:hover{color:var(--link-hover);text-decoration:underline}.j-content a:focus{color:var(--link-focus);text-decoration:underline}.j-content ul,.j-content ol{margin:0 0 var(--content-block-margin-bottom);padding-left:1.5em}.j-content ul li,.j-content ol li{margin-bottom:.25em}.j-content ul{list-style-type:disc}.j-content ol{list-style-type:decimal}.j-content ul ul,.j-content ol ul{list-style-type:circle}.j-content ol ol,.j-content ul ol{list-style-type:lower-alpha}.j-content ul p,.j-content ol p{margin:0}.j-content dl{margin:0 0 var(--content-block-margin)}.j-content dt{margin-top:.8em;margin-bottom:.2em;font-weight:600}.j-content dt:first-child{margin-top:0}.j-content dd{color:var(--gray-11);margin:0 0 .8em;padding-left:0}.j-content dd+dt{margin-top:1em}.j-content blockquote{border-left:.25em solid var(--gray-6);color:var(--gray-11);background-color:var(--gray-3);margin:1.5em 4em;padding:1.2em;font-style:italic}@media screen and (width<=768px){.j-content blockquote{margin:1.5em 0;padding:.5em 1em;font-size:.85em}}.j-content blockquote p{margin:0}.j-content cite{color:var(--gray-9);margin-top:.5em;font-size:.9em;font-style:normal;display:block}.j-content code{background-color:var(--accent);border:1px solid var(--secondary);color:var(--primary);border-radius:.2em;padding:.15em .3em;font-family:Consolas,Monaco,Andale Mono,monospace;font-size:.9em}.j-content kbd{background-color:var(--gray-3);border:1px solid var(--gray-6);border-radius:.2em;padding:.1em .3em;font-family:inherit;font-size:.9em}.j-content pre{margin:var(--content-block-margin) 0;background-color:var(--gray-a3);border-radius:var(--border-radius);padding:.8em;font-family:Consolas,Monaco,Andale Mono,monospace;font-size:.9em;line-height:1.4;overflow-x:auto}.j-content pre code{color:inherit;font-size:inherit;background:0 0;border:none;padding:0}.j-content q{quotes:"“" "”" "‘" "’";text-underline-offset:var(--space);text-decoration:underline;text-decoration-color:var(--amber-9)}.j-content abbr[title]{border-bottom:1px dotted var(--border-color);cursor:help}.j-content time{white-space:nowrap}.j-content address{margin:0 0 var(--content-block-margin-bottom);color:var(--gray-9);font-style:normal}.j-content ruby{font-size:.95em}.j-content rt{color:var(--gray-9);font-size:.7em}.j-content progress,.j-content meter{max-width:100%;height:.8em;margin:.125em 0}.j-content img{max-width:100%;height:auto;margin:.5em 0}.j-content figure{margin:var(--content-block-margin) 0;text-align:center}.j-content figure img,.j-content figure video,.j-content figure iframe{margin:0}.j-content figcaption{color:var(--gray-9);text-align:center;margin-top:.5em;font-size:.9em}.j-content table{min-width:240px;max-width:100%;margin:var(--content-block-margin) 0;border-collapse:collapse;-webkit-overflow-scrolling:touch;font-size:.95em;display:block;overflow-x:auto}.j-content th,.j-content td{border:1px solid var(--border-color);text-align:left;padding:.5em .75em}.j-content th{background-color:var(--gray-a3);font-weight:600}.j-content tbody tr:nth-child(2n){background-color:var(--gray-a2)}.j-content hr{margin:var(--content-block-margin) 0;border:0;border-top:1px solid var(--gray-3)}.j-content details{margin:var(--content-block-margin) 0;background-color:var(--accent);border-radius:var(--border-radius);border:1px solid var(--border-color-sm);padding:.8em}.j-content summary{cursor:pointer;outline:none;font-weight:600}.j-content details[open]>summary{margin-bottom:.6em}.j-content iframe,.j-content video,.j-content audio{max-width:100%}.j-content video,.j-content audio{border-radius:var(--border-radius);display:block}.j-content video{background-color:var(--foreground)}.j-content figure:has(audio){flex-direction:column;justify-content:center;align-items:center;display:flex}.j-content .j-loading,.j-content .j-loading>*{margin:0}.j-content>:first-child{margin-top:0}.j-content>:last-child{margin-bottom:0}.j-content .block-item{margin:var(--content-block-margin) 0}}@layer icon{svg{display:block}.icon-loader{width:var(--font-size-xl);height:var(--font-size-xl);animation:var(--speed-xl) linear infinite animate-spin;border:1px solid;border-right-color:#0000;border-radius:50%;display:inline-block}.icon-close{box-sizing:border-box;width:var(--font-size-xl);height:var(--font-size-xl);color:inherit;cursor:pointer;border:1px solid;border-radius:50%;display:block;position:relative;transform:scale(1)}.icon-close:after,.icon-close:before{content:"";box-sizing:border-box;transform-origin:50%;background:currentColor;border-radius:1px;width:12px;height:2px;position:absolute;top:50%;left:50%}.icon-close:before{transform:translate(-50%,-50%)rotate(45deg)}.icon-close:after{transform:translate(-50%,-50%)rotate(-45deg)}.icon-close:active{transform:translateY(1px)}.icon-close:focus-within{background-color:var(--accent)}.el-icon[data-action-close]{cursor:pointer}.el-icon[data-action-close]:active{transform:scale(.85)}}@layer font{body{-webkit-text-size-adjust:100%;tab-size:4;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;scroll-behavior:smooth;font-feature-settings:normal;font-variation-settings:normal;color:var(--foreground);background-color:var(--background);font-family:system-ui,-apple-system,Segoe UI,Roboto,emoji,Helvetica,Arial,sans-serif}@font-face{font-family:emoji;src:local(Apple Color Emoji),local(Segoe UI Emoji),local(Segoe UI Symbol),local(Noto Color Emoji);unicode-range:U+1F000-1F644,U+203C-3299}.font-serif{font-family:Georgia,Cambria,Times New Roman,Times,serif}.font-mono{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-math{font-family:Cambria Math,Latin Modern Math}}@layer components{.divider{opacity:.1;border-color:currentColor;border-top-width:1px;border-left-width:1px;align-self:stretch}.j-button{justify-content:center;align-items:center;gap:var(--button-gap,calc(var(--space) * 1) calc(var(--space) * 1.5));white-space:nowrap;font-weight:var(--button-font-weight,var(--font-medium));font-size:var(--button-font-size,var(--font-size));height:var(--button-height,var(--el-height));line-height:var(--button-line-height,var(--line-height-self));background-color:var(--button-background,transparent);padding:var(--button-padding,0 calc(var(--space) * 3));border-width:var(--button-border-width,1px);border-style:var(--button-border-style,solid);border-color:var(--button-border-color,transparent);border-radius:var(--button-border-radius,var(--border-radius));box-shadow:var(--button-box-shadow,var(--box-shadow-sm));appearance:button;user-select:none;touch-action:manipulation;flex-wrap:nowrap;display:flex}.j-button .button-content{display:contents}.j-button svg{width:var(--font-size);fill:currentColor}.j-button a,.j-button a:hover{color:inherit}.j-button.is-sm{font-size:var(--font-size-sm);height:var(--button-height-sm,var(--el-height-sm));padding:var(--button-padding-sm,calc(var(--space) * 1) calc(var(--space) * 2))}.j-button.is-lg{font-size:var(--font-size-lg);height:var(--button-height-lg,var(--el-height-lg));padding:var(--button-padding-lg,calc(var(--space) * 3) calc(var(--space) * 4))}.j-button.is-default{--button-background:var(--background);--button-border-color:var(--border-color);color:var(--foreground)}.j-button.is-contrast{--button-background:var(--foreground);color:var(--background)}.j-button.is-primary{--button-background:var(--primary);color:var(--primary-foreground)}.j-button.is-secondary{--button-border-color:transparent;--button-background:var(--secondary);color:var(--secondary-foreground)}.j-button.is-outline{--button-background:transparent;--button-border-color:var(--primary);color:var(--primary)}.j-button.is-ghost{--button-box-shadow:none;transition-property:none}.j-button.is-text{--button-border-color:transparent;height:var(--button-text-height,auto);padding:var(--button-text-padding,0);box-shadow:var(--button-text-box-shadow,none)}.j-button.is-icon{aspect-ratio:var(--aspect-icon,1);padding:var(--icon-padding,0)}.j-button.is-danger{--button-background:var(--danger);color:var(--danger-foreground)}.j-button.is-warning{--button-background:var(--warning);color:var(--warning-foreground)}.j-button.is-success{--button-background:var(--success);color:var(--success-foreground)}.j-button.is-error{--button-background:var(--red-3);color:var(--red-a11)}.j-button[class*=is-surface-]{--button-border-color:var(--border-color);color:var(--foreground)}.j-button.is-surface-sm{--button-background:var(--surface-sm)}.j-button.is-surface-md{--button-background:var(--surface-md)}.j-button.is-surface-lg{--button-background:var(--surface-lg)}.j-button-group{margin:0;display:flex}.j-button-group .j-button:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.j-button-group .j-button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.j-button-group .j-button:not(:first-child):not(:last-child){border-block-width:var(--button-border-width,1px);border-inline-width:0}.j-button-group.is-vertical{flex-direction:column}.j-button-group.is-vertical .j-button:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0}.j-button-group.is-vertical .j-button:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;margin-left:0}.j-button-group.is-vertical .j-button:not(:last-child):not(:first-child){border-block-width:0;border-inline-width:var(--button-border-width,1px)}.j-button-group.is-vertical .j-button:first-child{border-top-right-radius:var(--border-radius)}.j-button-group.is-vertical .j-button:last-child{border-bottom-left-radius:var(--border-radius)}.j-button:disabled{opacity:var(--opacity-disabled,.5)}.j-button:not(:disabled):hover{opacity:var(--opacity-hover)}.j-button:not(:disabled):active{opacity:var(--opacity-active)}.j-button:not(:disabled).is-active,.j-button:not(:disabled):focus-visible{outline:2px solid var(--button-ring,var(--primary));outline-offset:1px;border-color:#0000}.j-button.is-default:hover:not(:disabled){background-color:var(--gray-a2)}.j-button.is-outline:hover:not(:disabled),.j-button.is-ghost:hover:not(:disabled){background-color:var(--accent)}.j-button.is-text:not(:disabled):active,.j-button.is-text:not(:disabled):focus-visible,.j-button.is-text:not(:disabled).is-active{color:var(--primary);text-underline-offset:var(--space);outline:none;text-decoration:underline}.j-button.is-contrast:not(:disabled):active,.j-button.is-contrast:not(:disabled):focus-visible{--button-ring:var(--foreground)}.j-button.is-success:not(:disabled):active,.j-button.is-success:not(:disabled):focus-visible{--button-ring:var(--success)}.j-button.is-warning:not(:disabled):active,.j-button.is-warning:not(:disabled):focus-visible{--button-ring:var(--warning)}.j-button.is-danger:not(:disabled):active,.j-button.is-danger:not(:disabled):focus-visible{--button-ring:var(--danger)}.j-button.is-error:not(:disabled):active,.j-button.is-error:not(:disabled):focus-visible{--button-ring:var(--red-3)}.j-button.is-surface-sm:not(:disabled):active,.j-button.is-surface-sm:not(:disabled):focus-visible{--button-ring:var(--gray-a4)}.j-button.is-surface-md:not(:disabled):active,.j-button.is-surface-md:not(:disabled):focus-visible{--button-ring:var(--gray-a6)}.j-button.is-surface-lg:not(:disabled):active,.j-button.is-surface-lg:not(:disabled):focus-visible{--button-ring:var(--gray-a8)}.j-button-group .j-button:active,.j-button-group .j-button:focus-visible{--button-border-color:transparent;--button-box-shadow:0 0 0 2px var(--primary);z-index:1;outline:none}.j-button-group .j-button.is-primary:not(:disabled):active,.j-button-group .j-button.is-primary:not(:disabled):focus-visible{outline:2px solid var(--button-ring,var(--primary));outline-offset:1px;--button-border-color:transparent;--button-box-shadow:var(--box-shadow-sm)}.j-avatar{--avatar-size:var(--el-height);vertical-align:middle;border-radius:var(--avatar-border-radius,var(--border-radius));width:var(--avatar-size);height:var(--avatar-size);user-select:none;object-fit:cover;box-shadow:var(--avatar-box-shadow,var(--box-shadow-sm));display:inline-block;overflow:hidden}.j-avatar img,.j-avatar svg{margin:0}.j-avatar.is-sm{--avatar-size:var(--el-height-sm)}.j-avatar.is-lg{--avatar-size:var(--el-height-lg)}.j-avatar.is-round{border-radius:var(--round)}.j-avatar.is-text{background-color:var(--accent);color:var(--primary);font-weight:var(--font-medium);justify-content:center;align-items:center;display:flex}.j-avatar-group{flex-wrap:nowrap;justify-content:center;align-items:center;display:flex}.j-avatar-group .j-avatar{border:1.5px solid var(--avatar-border-color,var(--background))}.j-avatar-group .j-avatar:not(:first-child){margin-inline-start:calc(var(--space) * -3)}.j-avatar-group .j-avatar:last-child{font-size:var(--font-size-sm,.75rem);background-color:var(--background);box-shadow:var(--avatar-box-shadow,var(--shadow-sm))}.j-badge{padding:0 var(--badge-padding,var(--space));min-width:var(--badge-min-width,var(--el-height-xs));height:var(--badge-height,var(--el-height-xs));line-height:var(--badge-line-height,var(--line-height-self));font-size:var(--badge-font-size,var(--font-size-sm));font-weight:var(--badge-font-weight,var(--font-medium));border-radius:var(--badge-radius,500px);border:1px solid var(--badge-border-color,var(--border-color));color:var(--badge-color,var(--foreground));background-color:var(--badge-background,var(--background));box-shadow:var(--badge-box-shadow,var(--box-shadow-sm));justify-content:center;align-items:center;display:inline-flex}.j-badge.is-sm{--badge-padding:.125rem;--badge-min-width:.75rem;--badge-height:var(--el-height-2xs);--badge-font-size:.625rem}.j-badge.is-contrast{--badge-background:var(--foreground);--badge-color:var(--background)}.j-badge.is-primary{--badge-background:var(--primary);--badge-color:var(--primary-foreground);--badge-border-color:var(--primary)}.j-badge.is-secondary{--badge-background:var(--secondary);--badge-color:var(--secondary-foreground);--badge-border-color:var(--secondary)}.j-badge.is-success{--badge-background:var(--success);--badge-color:var(--success-foreground);--badge-border-color:var(--success)}.j-badge.is-warning{--badge-background:var(--warning);--badge-color:var(--warning-foreground);--badge-border-color:var(--warning)}.j-badge.is-danger{--badge-background:var(--danger);--badge-color:var(--danger-foreground);--badge-border-color:var(--danger)}.j-badge.is-error{--badge-border-color:var(--red-a3);--badge-background:var(--red-a3);--badge-color:var(--red-a11)}.j-tag{justify-content:center;align-items:center;gap:var(--tag-gap,var(--space));padding:0 var(--tag-padding,calc(var(--space) * 1.5));height:var(--tag-height,calc(var(--space) * 6));line-height:var(--tag-line-height,var(--line-height-self));font-size:var(--tag-font-size,var(--font-size-sm));font-weight:var(--font-normal);border-radius:var(--tag-radius,var(--border-radius));border:1px solid var(--tag-border-color,var(--border-color));color:var(--tag-foreground,var(--foreground));background-color:var(--tag-background,var(--background));box-shadow:var(--tag-box-shadow,var(--box-shadow-sm));display:inline-flex}.j-font-md .j-tag{--tag-padding:calc(var(--space) * 2);--tag-height:calc(var(--space) * 8)}.j-tag.is-contrast{--tag-background:var(--foreground);--tag-foreground:var(--background)}.j-tag.is-primary{--tag-background:var(--primary);--tag-foreground:var(--primary-foreground);--tag-border-color:var(--primary)}.j-tag.is-secondary{--tag-background:var(--secondary);--tag-foreground:var(--secondary-foreground);--tag-border-color:transparent}.j-tag.is-outline{--tag-background:transparent;--tag-foreground:var(--primary);--tag-border-color:var(--primary)}.j-tag.is-ghost{--tag-border-color:transparent;--tag-shadow:none}.j-tag span{justify-content:center;align-items:center;display:inline-flex}.j-tag img,.j-tag svg{width:var(--tag-icon-size,var(--font-size-sm));height:var(--tag-icon-size,var(--font-size-sm))}.j-tag:hover{opacity:var(--opacity-hover,.9)}.j-tag.is-default:hover{background-color:var(--gray-a2)}.j-tag.is-outline:hover,.j-tag.is-ghost:hover{background-color:var(--accent)}.j-tag .el-icon[data-action=close]:hover{color:var(--primary-foreground);background-color:var(--primary);border-radius:50%}.j-tag.is-default .el-icon[data-action=close]:hover,.j-tag.is-ghost .el-icon[data-action=close]:hover{background-color:var(--gray-a12);color:var(--gray-2)}.j-tag.is-contrast .el-icon[data-action=close]:hover{color:var(--foreground);background-color:var(--background)}.j-tag.is-primary .el-icon[data-action=close]:hover{color:var(--primary);background-color:var(--primary-foreground)}.j-tip{width:var(--tip-width,100%);align-items:flex-start;row-gap:var(--tip-gap,calc(var(--space,.25rem) * 2));border-radius:var(--tip-border-radius,var(--border-radius));border-style:var(--tip-border-style,solid);border-width:var(--tip-border-width,1px);border-color:var(--tip-border-color,var(--border-color));padding-inline:calc(var(--space,.25rem) * 4);padding-block:calc(var(--space,.25rem) * 3);font-size:var(--tip-font-size,var(--font-size));color:var(--tip-color,var(--foreground));background-color:var(--tip-background,var(--background));box-shadow:var(--tip-box-shadow,var(--box-shadow-sm));grid-template-columns:0 1fr;display:grid;position:relative}.j-tip:has(.tip-icon){column-gap:calc(var(--space,.25rem) * 3);grid-template-columns:calc(var(--space) * 4) 1fr}.j-font-md .j-tip:has(.tip-icon){column-gap:calc(var(--space,.25rem) * 5)}.j-tip .tip-icon,.j-tip .tip-icon svg{width:var(--tip-icon-size,var(--font-size-xl));height:var(--tip-icon-size,var(--font-size-xl))}.j-tip .tip-icon{color:var(--tip-icon-color,var(--tip-color));transform:translateY(calc(var(--space,.25rem) * .5));margin:0}.j-tip .tip-title{-webkit-line-clamp:1;line-clamp:1;line-height:var(--tip-title-line-height,var(--line-height-paragraph));font-weight:var(--font-medium,500);-webkit-box-orient:vertical;grid-column-start:2;margin:0;display:-webkit-box;overflow:hidden}.j-tip .tip-content{justify-items:start;gap:calc(var(--space,.25rem) * 2);line-height:var(--line-height-paragraph);grid-column-start:2;margin:0;display:grid}.j-tip .tip-content>*{margin:0}.j-tip.is-success{--tip-border-color:var(--success);--tip-icon-color:var(--success)}.j-tip.is-warning{--tip-border-color:var(--warning);--tip-icon-color:var(--warning)}.j-tip.is-danger{--tip-border-color:var(--danger);--tip-icon-color:var(--danger)}.j-loading{background-color:var(--loading-background,var(--gray-1));width:100%;height:100%;backdrop-filter:var(--loading-backdrop-filter,blur(var(--drop-blur-sm)));justify-content:center;align-items:center;display:none;position:absolute;top:0;left:0}.j-loading.is-active{z-index:var(--loading-index,inherit);display:flex}.loading-spinner{width:var(--loading-spinner-size,3rem);height:var(--loading-spinner-size,3rem);border:var(--loading-spinner-width,4px) solid var(--loading-spinner-background,var(--secondary));border-top:var(--loading-spinner-width,4px) solid var(--loading-spinner-color,var(--primary));border-radius:50%;animation:1s linear infinite animate-spin}.j-loading.is-bold .loading-spinner{aspect-ratio:1;background:radial-gradient(farthest-side, var(--primary) 94%, #0000) top/8px 8px no-repeat, conic-gradient(#0000 30%, var(--primary));border:none;mask:radial-gradient(farthest-side,#0000 calc(100% - 8px),#000 0)}.j-skeleton{--skeleton-background:var(--gray-4);--skeleton-radius:var(--radius-sm,4px);--skeleton-duration:1.5s;width:100%;min-height:var(--el-height-2xs);border-radius:var(--skeleton-radius);background:var(--skeleton-background);color:#0000;pointer-events:none;user-select:none;animation:animate-pulse var(--skeleton-duration) cubic-bezier(.4, 0, .6, 1) infinite;display:block}.j-skeleton::selection{color:#0000;background:0 0}.j-skeleton.skeleton-inline{vertical-align:middle;width:8rem;display:inline-block}.j-skeleton.skeleton-text{width:100%;height:var(--el-height-xs);min-height:var(--el-height-xs)}.j-skeleton.skeleton-title{width:60%;height:var(--el-height-sm);min-height:var(--el-height-sm)}.j-skeleton.skeleton-block{width:100%;height:calc(var(--el-height-sm) * 4);min-height:calc(var(--el-height-sm) * 4)}.j-skeleton.skeleton-avatar,.j-skeleton.skeleton-circle{aspect-ratio:1;border-radius:999px}.j-skeleton.skeleton-avatar{width:var(--el-height);min-height:var(--el-height)}.j-skeleton.skeleton-button{width:5.5rem;min-height:var(--el-height-sm)}.j-skeleton.skeleton-image{aspect-ratio:16/9;min-height:0}.j-skeleton.skeleton-static,.j-skeleton[aria-busy=false]{animation:none}@media (prefers-reduced-motion:reduce){.j-skeleton{animation:none}}.j-popup-layout{background-color:var(--popup-background);width:100%;height:100%;backdrop-filter:var(--popup-backdrop-filter,blur(var(--drop-blur)));padding:var(--popup-layout-padding,calc(var(--space) * 4));z-index:var(--z-index-popup);display:flex;position:fixed;top:0;left:0}.j-popup-layout,.j-popup-layout.is-center,.j-popup-layout.is-center-center{justify-content:center;align-items:center}.j-popup-layout.is-top,.j-popup-layout.is-top-center{justify-content:center;align-items:flex-start}.j-popup-layout.is-bottom,.j-popup-layout.is-bottom-center{justify-content:center;align-items:flex-end}.j-popup-layout.is-left,.j-popup-layout.is-left-center{justify-content:flex-start;align-items:center}.j-popup-layout.is-right,.j-popup-layout.is-right-center{justify-content:flex-end;align-items:center}.j-popup-layout.is-top-left,.j-popup-layout.is-left-top{justify-content:flex-start;align-items:flex-start}.j-popup-layout.is-top-right,.j-popup-layout.is-right-top{justify-content:flex-end;align-items:flex-start}.j-popup-layout.is-bottom-left,.j-popup-layout.is-left-bottom{justify-content:flex-start;align-items:flex-end}.j-popup-layout.is-bottom-right,.j-popup-layout.is-right-bottom{justify-content:flex-end;align-items:flex-end}.j-modal{--modal-background:var(--background);--modal-border-radius:var(--border-radius);--modal-box-shadow:var(--box-shadow);--modal-min-width:300px;--modal-max-width:500px;--modal-max-height:90vh;--modal-border:var(--modal-border-width,1px) var(--modal-border-style,solid) var(--modal-border-color,transparent);--modal-header-padding:calc(var(--space) * 2) calc(var(--space) * 3);--modal-header-gap:var(--space);--modal-title-font-size:var(--font-size);--modal-close-icon-size:var(--el-height-xs);--modal-close-font-size:var(--font-size-lg);--modal-close-color:var(--gray-11);--modal-body-padding:calc(var(--space) * 3);--modal-body-line-height:var(--line-height-paragraph);--modal-footer-padding:calc(var(--space) * 2) calc(var(--space) * 3);--modal-footer-gap:calc(var(--space) * 2);background:var(--modal-background);border-radius:var(--modal-border-radius);box-shadow:var(--modal-box-shadow);min-width:var(--modal-min-width);max-width:var(--modal-max-width);max-height:var(--modal-max-height);flex-direction:column;animation:.35s ease-in-out animate-fade-in;display:flex;position:relative;overflow:hidden}.j-popup-layout:has(.is-fullscreen){padding:0}.j-modal.is-fullscreen{--modal-border-color:var(--border-color-sm);width:100%;max-width:none;height:100%;max-height:none}.j-modal .modal-header{padding:var(--modal-header-padding);border-bottom:var(--modal-border);justify-content:space-between;align-items:center;gap:var(--modal-header-gap);display:flex}.j-modal .modal-header .modal-title{font-size:var(--modal-title-font-size);margin:0;font-weight:500}.j-modal .modal-header .modal-close{width:var(--modal-close-icon-size);height:var(--modal-close-icon-size);font-size:var(--modal-close-font-size);color:var(--modal-close-color);text-align:center;justify-content:center;align-items:center;display:inline-flex}.j-modal .modal-header .modal-close:focus-within{outline:2px solid var(--primary);color:var(--primary)}.j-modal .modal-header .modal-close:hover{color:var(--primary);background-color:var(--accent)}.j-modal .modal-body{padding:var(--modal-body-padding);overflow-wrap:break-word;flex:1;overflow-y:auto}.j-modal .modal-body p{line-height:var(--modal-body-line-height);margin:0}.j-modal .modal-footer{padding:var(--modal-footer-padding);border-top:var(--modal-footer-border,var(--modal-border));justify-content:flex-end;gap:var(--modal-footer-gap);display:flex}.j-flow{--flow-gap:calc(var(--space) * 2);--flow-step-size:28px;--flow-border:1px solid var(--border-color-sm);gap:var(--flow-gap);display:grid}.j-flow .flow-header{gap:calc(var(--space) / 2);display:grid}.j-flow .flow-title{font-size:var(--font-size-lg);font-weight:600}.j-flow .flow-description{color:var(--gray-11);font-size:var(--font-size-sm);line-height:var(--line-height-paragraph)}.j-flow .flow-steps{gap:var(--flow-gap);margin:0;padding:0;list-style:none;display:flex}.j-flow .flow-step{min-width:0}.j-flow .flow-step-button{align-items:center;gap:var(--space);color:var(--gray-11);cursor:pointer;background:0 0;border:0;padding:0;display:inline-flex}.j-flow .flow-step-button:disabled{cursor:not-allowed;opacity:.55}.j-flow .flow-step-index{background:var(--gray-4);height:var(--flow-step-size);min-width:var(--flow-step-size);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.j-flow .flow-step.is-active .flow-step-button{color:var(--primary)}.j-flow .flow-step.is-active .flow-step-index,.j-flow .flow-step.is-complete .flow-step-index{background:var(--primary);color:var(--primary-foreground)}.j-flow .flow-body{min-width:0}.j-flow .flow-footer{border-top:var(--flow-border);gap:var(--space);padding-top:var(--flow-gap);justify-content:flex-end;display:flex}.j-toast-container{top:var(--toast-container-offset,calc(var(--space) * 2));right:var(--toast-container-offset,calc(var(--space) * 2));z-index:var(--z-index-toast);gap:var(--toast-container-gap,calc(var(--space) * 2));pointer-events:none;flex-direction:column;align-items:center;display:flex;position:fixed;left:50%;transform:translate(-50%)}.j-toast{padding:var(--toast-padding,calc(var(--space) * 3) calc(var(--space) * 4));border-radius:var(--toast-border-radius,var(--border-radius));box-shadow:var(--toast-box-shadow,var(--box-shadow));font-size:var(--toast-font-size,var(--font-size));font-weight:var(--toast-font-weight,var(--font-medium));opacity:0;cursor:pointer;min-width:var(--toast-min-width,200px);max-width:var(--toast-max-width,310px);word-break:break-all;pointer-events:auto;align-items:center;transition:all .3s ease-in-out;display:flex;transform:translateY(-100%)}.j-toast.toast-show{opacity:1;transform:translateY(0)}.j-toast.toast-hide{opacity:0;transform:translateY(-100%)}.j-toast .toast-icon{margin-right:calc(var(--space) * 2);width:var(--toast-icon-size,var(--font-size-lg))}.j-toast .toast-message{flex:1}.j-toast.is-success{color:var(--toast-success-color,var(--green-10));background-color:var(--toast-success-background,var(--green-2));border:1px solid var(--toast-success-border-color,var(--green-6))}.j-toast.is-success .toast-icon{color:var(--toast-success-icon-color,var(--green-10))}.j-toast.is-error{color:var(--toast-error-color,var(--red-10));background-color:var(--toast-error-background,var(--red-2));border:1px solid var(--toast-error-border-color,var(--red-6))}.j-toast.is-error .toast-icon{color:var(--toast-error-icon-color,var(--red-10))}.j-toast.is-warning{color:var(--toast-warning-color,var(--amber-10));background-color:var(--toast-warning-background,var(--amber-2));border:1px solid var(--toast-warning-border-color,var(--amber-6))}.j-toast.is-warning .toast-icon{color:var(--toast-warning-icon-color,var(--amber-10))}.j-toast.is-info{color:var(--toast-info-color,var(--foreground));background-color:var(--toast-info-background,var(--background));border:1px solid var(--toast-info-border-color,var(--border-color))}.j-toast.is-info .toast-icon{color:var(--toast-info-icon-color,var(--foreground))}.j-toast.is-primary{color:var(--toast-info-color,var(--indigo-9));background-color:var(--toast-info-background,var(--indigo-2));border:1px solid var(--toast-info-border-color,var(--indigo-6))}.j-toast.is-primary .toast-icon{color:var(--toast-info-icon-color,var(--indigo-9))}.j-toast-lite{transition:opacity var(--speed-sm) ease-in-out;opacity:0;z-index:var(--z-index-toast);font-size:var(--toast-lite-font-size,var(--font-size));text-align:center;color:var(--toast-lite-color,#fff);background:var(--toast-lite-background,#000c);border-radius:var(--toast-lite-border-radius,var(--border-radius));padding:var(--toast-lite-padding,calc(var(--space) * 2) calc(var(--space) * 3));max-width:var(--toast-lite-max-width,calc(var(--screen-sm) / 2));user-select:none;pointer-events:none;position:fixed;top:45%;left:50%;transform:translate(-50%,-50%)}.j-toast-lite.is-shown{opacity:1;transform:scale(1)}.j-toast-lite.is-hidden{opacity:0;transform:scale(.9)}.j-tabs{display:flex}.j-tabs,.j-tabs.is-top{flex-direction:column}.j-tabs.is-bottom{flex-direction:column-reverse}.j-tabs.is-left{flex-direction:row}.j-tabs.is-right{flex-direction:row-reverse}.j-tabs .tab-wrap{margin:0;position:relative;overflow:hidden}.j-tabs .tab-list{user-select:none;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;display:flex}.j-tabs.is-left .tab-list,.j-tabs.is-right .tab-list{flex-direction:column}.j-tabs .tab-list .tab-item{padding:var(--tab-list-item-padding,calc(var(--space) * 2) calc(var(--space) * 3));margin:var(--tab-list-item-margin,0);cursor:pointer;flex-shrink:0}.j-tabs.is-top .tab-wrap{border-bottom:var(--tab-wrap-bottom-border,var(--border-sm))}.j-tabs.is-bottom .tab-wrap{border-top:var(--tab-wrap-top-border,var(--border-sm))}.j-tabs.is-left .tab-wrap{border-right:var(--tab-wrap-right-border,var(--border-sm))}.j-tabs.is-right .tab-wrap{border-left:var(--tab-wrap-left-border,var(--border-sm))}.j-tabs .tab-list .tab-item.is-active{color:var(--primary);font-weight:var(--font-medium)}.j-tabs .tab-list .tab-item.is-disabled{color:var(--gray-a8);cursor:not-allowed}.j-tabs .tab-panel{padding:var(--tab-panel-padding,calc(var(--space) * 2) calc(var(--space) * 3));margin:var(--tab-panel-margin,0)}.j-tabs .tab-panel .panel-item{margin:var(--tab-panel-item-margin,0);display:none}.j-tabs .tab-panel .panel-item.is-active{display:block}.j-tabs .tab-panel .panel-item>*{margin:0}.j-offcanvas-overlay{background-color:var(--offcanvas-overlay-background,var(--gray-a1));width:100%;height:100%;z-index:var(--z-index-overlay);opacity:0;transition:opacity .3s;position:fixed;top:0;left:0}.j-offcanvas-overlay.is-active{opacity:1}.j-offcanvas{z-index:var(--z-index-offcanvas);background:var(--offcanvas-background,var(--background));box-shadow:var(--offcanvas-box-shadow,var(--box-shadow));--offcanvas-border:var(--border-sm);position:fixed}.j-offcanvas.is-slide,.j-offcanvas.is-push{transition:transform .3s}.j-offcanvas:not(.is-slide):not(.is-push){transition:none}.j-offcanvas.is-left{border-right:var(--offcanvas-border);width:300px;height:100%;top:0;left:0;transform:translate(-100%)}.j-offcanvas.is-right{border-left:var(--offcanvas-border);width:300px;height:100%;top:0;right:0;transform:translate(100%)}.j-offcanvas.is-top{border-bottom:var(--offcanvas-border);width:100%;height:200px;top:0;left:0;transform:translateY(-100%)}.j-offcanvas.is-bottom{border-top:var(--offcanvas-border);width:100%;height:200px;bottom:0;left:0;transform:translateY(100%)}.j-offcanvas.is-slide.is-active,.j-offcanvas.is-active:not(.is-push){transform:translate(0)}.offcanvas-push-body{width:100vw;height:100vh;transition:transform .3s;overflow:hidden}.offcanvas-push-left{transform:translate(300px)}.offcanvas-push-right{transform:translate(-300px)}.offcanvas-push-top{transform:translateY(200px)}.offcanvas-push-bottom{transform:translateY(-200px)}.j-offcanvas .offcanvas-content{box-sizing:border-box;height:100%;overflow-y:auto}.j-accordion{--accordion-border:var(--border-sm);--accordion-icon-size:var(--font-size-lg)}.j-accordion .accordion-header{cursor:pointer;padding:var(--accordion-header-padding,calc(var(--space) * 2) calc(var(--space) * 3));margin:var(--accordion-header-margin,0);border-bottom:var(--accordion-border);font-size:var(--accordion-header-font-size,var(--font-size));font-weight:var(--font-medium);user-select:none;align-items:center;display:flex}.j-accordion .accordion-header:hover:not(.is-active){background:var(--accordion-header-hover-background,var(--gray-a2))}.j-accordion .accordion-header.is-active{border-color:#0000}.j-accordion .accordion-header .header-title{text-align:left;font-size:var(--accordion-title-font-size,var(--font-size));flex:1}.j-accordion .accordion-header.is-active .header-title{font-weight:var(--font-bold)}.j-accordion .accordion-header .header-arrow{width:var(--accordion-icon-size);height:var(--accordion-icon-size);justify-content:center;align-items:center;transition:transform .3s ease-out;display:flex;transform:rotate(0)}.j-accordion .accordion-header.is-active .header-arrow{transform:rotate(180deg)}.j-accordion .accordion-panel{height:0;margin:0;transition:height .3s ease-out;overflow:hidden}.j-accordion .accordion-panel .panel-content{margin:var(--accordion-panel-content-margin,0);padding:var(--accordion-panel-content-padding,0 calc(var(--space) * 3) calc(var(--space) * 2));border-bottom:var(--accordion-border);font-size:var(--accordion-font-size,var(--font-size))}.j-accordion .accordion-panel.is-active{height:auto}.j-accordion .accordion-panel:last-child .panel-content{border-bottom:none}.j-theme-palette{padding:var(--palette-padding,calc(var(--space) * 4))}.j-theme-palette>h3{margin:var(--palette-title-margin,calc(var(--space) * 2) 0)}.j-theme-palette .palette-container{gap:var(--palette-container-gap,calc(var(--space) * 4));flex-direction:column;display:flex}.j-theme-palette .palette-container .palette-item{gap:var(--palette-item-gap,calc(var(--space) * 2));flex-direction:column;display:flex}.j-theme-palette .palette-container .palette-item .item-title{font-size:var(--palette-item-title-font-size,var(--font-size));line-height:var(--line-height);font-weight:var(--font-bold);margin:0}.j-theme-palette .palette-container .palette-item .items{gap:var(--space);grid-template-columns:repeat(3,1fr);display:grid}.j-theme-palette .palette-container .palette-item .items>button{padding-left:calc(var(--space) * 2);padding-right:calc(var(--space) * 2);min-width:0;overflow:hidden}.j-theme-palette .palette-container .palette-item[data-palette=theme] .items>button{justify-content:flex-start}.j-theme-palette .palette-container .palette-item .items>button span.item-hex{width:var(--font-size-sm);height:var(--font-size-sm);margin-right:var(--space);border-radius:50%;flex-shrink:0;display:inline-block}.j-theme-palette .palette-container .palette-item .items>button span.button-text{text-overflow:ellipsis;overflow:hidden}.j-drop{opacity:0;pointer-events:none;z-index:var(--z-index-drop);transition:opacity .2s;display:none;position:absolute;top:0;left:0}.j-drop.is-active{opacity:1;pointer-events:auto;display:block}.drop-container{border-width:var(--drop-border-width,1px);border-style:var(--drop-border-style,solid);border-color:var(--drop-border-color,var(--border-color));border-radius:var(--border-radius,var(--border-radius));background-color:var(--drop-background,var(--background));color:var(--drop-foreground,var(--foreground));box-shadow:var(--drop-box-shadow,var(--box-shadow-sm))}.j-swiper{border-radius:var(--swiper-radius,var(--border-radius));touch-action:pan-y;user-select:none;width:100%;display:block;position:relative;overflow:hidden}.j-swiper .swiper-wrapper{will-change:transform;width:100%;height:100%;display:flex}.j-swiper .swiper-slide{min-width:100%;color:inherit;user-select:none;text-decoration:none;display:block;position:relative;overflow:hidden}.j-swiper .swiper-image{width:100%;height:100%;min-height:var(--swiper-min-height,180px);object-fit:cover;pointer-events:none;display:block}.j-swiper .swiper-slide-title{right:var(--swiper-title-inset,calc(var(--space) * 3));bottom:var(--swiper-title-inset,calc(var(--space) * 3));left:var(--swiper-title-inset,calc(var(--space) * 3));z-index:1;padding:calc(var(--space) * 1.5) calc(var(--space) * 2);color:var(--swiper-title-color,#fff);font-size:var(--swiper-title-font-size,var(--font-size-lg));font-weight:var(--font-weight-bold,700);text-overflow:ellipsis;white-space:nowrap;background:var(--swiper-title-background,#00000059);border-radius:var(--radius-sm);line-height:1.35;display:block;position:absolute;overflow:hidden}.j-swiper .swiper-pagination{z-index:2;gap:var(--swiper-pagination-gap,7px);justify-content:center;align-items:center;display:flex;position:absolute}.j-swiper .swiper-pagination.is-horizontal{right:calc(var(--space) * 3);bottom:calc(var(--space) * 2);left:calc(var(--space) * 3)}.j-swiper .swiper-pagination-indicator{width:var(--swiper-indicator-size,8px);height:var(--swiper-indicator-size,8px);cursor:pointer;background:var(--swiper-indicator-background,#ffffff9e);transition:width var(--duration-fast,.16s) ease, background-color var(--duration-fast,.16s) ease, opacity var(--duration-fast,.16s) ease;border:0;border-radius:999px;outline:none;padding:0;display:inline-block}.j-swiper .swiper-pagination-indicator:hover,.j-swiper .swiper-pagination-indicator:focus-visible{background:var(--swiper-indicator-hover-background,#ffffffdb)}.j-swiper .swiper-pagination-indicator.is-active,.j-swiper .swiper-pagination-indicator.active{width:var(--swiper-indicator-active-width,22px);background:var(--swiper-indicator-active-background,#fff)}.j-swiper .swiper-navigation{z-index:2;width:var(--swiper-navigation-size,36px);height:var(--swiper-navigation-size,36px);color:var(--swiper-navigation-color,#fff);cursor:pointer;background:var(--swiper-navigation-background,#00000059);transition:background-color var(--duration-fast,.16s) ease, opacity var(--duration-fast,.16s) ease;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.j-swiper .swiper-navigation:hover,.j-swiper .swiper-navigation:focus-visible{background:var(--swiper-navigation-hover-background,#000000a6);outline:none}.j-swiper .swiper-navigation.is-prev{left:calc(var(--space) * 2)}.j-swiper .swiper-navigation.is-next{right:calc(var(--space) * 2)}.j-swiper .swiper-navigation svg{width:var(--swiper-navigation-icon-size,18px);height:var(--swiper-navigation-icon-size,18px);pointer-events:none}.j-swiper .swiper-navigation.is-disabled,.j-swiper .swiper-navigation:disabled{cursor:default;opacity:.36}@media (width<=640px){.j-swiper .swiper-slide-title{right:calc(var(--space) * 2);bottom:calc(var(--space) * 2);left:calc(var(--space) * 2);font-size:var(--font-size)}.j-swiper .swiper-navigation{width:32px;height:32px}}.j-breadcrumb,.j-breadcrumb.is-md{font-size:var(--breadcrumb-font-size,var(--font-size));color:var(--breadcrumb-color,var(--gray-10));white-space:nowrap;user-select:none}.j-breadcrumb.is-sm{--breadcrumb-font-size:var(--font-size-sm)}.j-breadcrumb.is-lg{--breadcrumb-font-size:var(--font-size-lg)}.j-breadcrumb svg,.j-breadcrumb.is-md svg{width:var(--breadcrumb-icon-size,var(--font-size));height:var(--breadcrumb-icon-size,var(--font-size))}.j-breadcrumb.is-sm svg{--breadcrumb-icon-size:var(--font-size-sm)}.j-breadcrumb.is-lg svg{--breadcrumb-icon-size:var(--font-size-lg)}.j-breadcrumb>ol,.j-breadcrumb>ul{flex-wrap:wrap;justify-content:flex-start;align-items:flex-start;margin:0;padding:0;display:flex}.j-breadcrumb>ol li,.j-breadcrumb>ul li{justify-content:center;align-items:center;display:flex}.j-breadcrumb li:first-child a{padding-inline-start:0}.j-breadcrumb li+li:before{color:var(--breadcrumb-item-separator-color,var(--gray-9));content:"/"}.j-breadcrumb.is-dot li+li:before{content:"•"}.j-breadcrumb.is-arrow li+li:before{content:">"}.j-breadcrumb.is-dash li+li:before{content:"–"}.j-breadcrumb a{justify-content:center;align-items:center;gap:var(--space);color:var(--breadcrumb-link-color,var(--primary));padding:var(--breadcrumb-item-padding-vertical,0) var(--breadcrumb-item-padding-horizontal,calc(var(--space) * 2));text-decoration:none;display:flex}.j-breadcrumb a span{justify-content:center;align-items:center;display:flex}.j-breadcrumb li.is-active a{--breadcrumb-link-color:var(--gray-9);cursor:default;pointer-events:none}.j-breadcrumb.is-center ul,.j-breadcrumb.is-center ol{justify-content:center}.j-breadcrumb.is-right ul,.j-breadcrumb.is-right ol{justify-content:flex-end}.j-table-container{max-width:100%;overflow:auto hidden}table.j-table{text-indent:0;border-color:inherit;border-collapse:collapse;border-spacing:0}table.j-table tr.is-selected{background-color:var(--table-selected-background,var(--secondary))}table.j-table td,table.j-table th{border-width:var(--table-border-width,0 0 1px);border-style:var(--table-border-style,solid);border-color:var(--table-border-color,var(--border-color));padding:var(--table-padding,.5em .75em)}table.j-table th:not([align]){text-align:var(--table-cell-text-align,left)}table.j-table td:not([align]),table.j-table th:not([align]){text-align:inherit}table.j-table a{text-decoration:var(--table-link-decoration,inherit);color:var(--table-link-color,var(--primary))}table.j-table.is-striped thead tr,table.j-table.is-striped tbody tr:not(.is-selected):nth-child(2n){background-color:var(--table-striped-background,var(--secondary))}table.j-table.is-hoverable tbody tr:hover{background-color:var(--table-hover-background,var(--secondary))}table.j-table.is-bordered td,table.j-table.is-bordered th{border-width:var(--table-border-width,var(--border-width,1px))}.j-pagination{font-size:var(--pagination-font-size,var(--font-size))}.j-pagination a{color:var(--pagination-link-color,var(--foreground));text-decoration:none}.pagination{justify-content:center;align-items:center;gap:var(--pagination-gap,calc(var(--space) * 1));margin:0;padding:0;list-style:none;display:flex}.pagination .more span:active{outline:none}.j-card{max-width:100%;color:var(--card-color,var(--foreground));background-color:var(--card-background,var(--background));border:1px solid var(--card-border-color,var(--border-color));border-radius:var(--card-border-radius,var(--border-radius));box-shadow:var(--box-shadow-sm);flex-direction:column;display:flex;position:relative}.border-radius{border-radius:var(--border-radius);overflow:hidden}.j-card .card-header{background-color:var(--card-header-background);align-items:center;display:flex}.j-card .card-header .header-title{color:var(--card-header-color);font-size:var(--font-size);font-weight:var(--card-header-weight,var(--font-medium));padding:var(--card-header-padding,calc(var(--space) * 3) calc(var(--space) * 4));flex-grow:1;align-items:center;margin:0;display:flex}.j-card .card-header .header-icon{color:inherit;padding:0;padding:var(--card-header-padding,calc(var(--space) * 1) calc(var(--space) * 2));appearance:none;cursor:pointer;background:0 0;border:none;align-items:center;margin:0;font-family:inherit;font-size:1em;display:flex}.j-card .card-header .header-icon,.j-card .card-header .header-title.is-centered{justify-content:center}.j-card .card-media,.image{display:block;position:relative}.j-card figure{margin:0}.j-card figure img{object-fit:cover;width:100%;height:100%}.j-card .card-media figure.image img{position:absolute;inset:0}.j-card .card-media:first-child img{border-start-start-radius:var(--card-border-radius,var(--border-radius));border-start-end-radius:var(--card-border-radius,var(--border-radius))}.j-card .card-content{background-color:var(--card-content-background);padding:var(--card-content-padding,calc(var(--space) * 4));line-height:var(--line-height-paragraph)}.j-card .card-content:last-child,.j-card .card-footer:last-child,.j-card .card-header:last-child{border-end-end-radius:var(--card-border-radius,var(--border-radius));border-end-start-radius:var(--card-border-radius,var(--border-radius))}.j-card .card-content:first-child,.j-card .card-footer:first-child,.j-card .card-header:first-child{border-start-start-radius:var(--card-border-radius,var(--border-radius));border-start-end-radius:var(--card-border-radius,var(--border-radius))}.j-card .card-footer{background-color:var(--card-footer-background);align-items:stretch;gap:calc(var(--space)*2);display:flex;overflow:hidden}.j-radius-round .j-card{border-radius:24px}.j-card.is-vertical .card-header{align-items:flex-start;gap:calc(var(--space) * 2);padding:var(--card-header-padding,calc(var(--space) * 4) calc(var(--space) * 4) 0);flex-direction:column}.j-card.is-vertical .card-header .header-title{font-size:var(--vertical-card-title-font-size,var(--font-size-lg))}.j-card.is-vertical .card-header .header-description{color:var(--gray-11)}.j-card.is-vertical .card-header .header-title,.j-card.is-vertical .card-header .header-description{margin:0;padding:0}.j-card .card-footer{padding:var(--vertical-card-footer-padding,calc(var(--space) * 4));border-top:none}.j-card .card-content+.card-footer{padding-top:0}.j-card .card-footer:has(.j-button-group){padding-top:2px}.j-toolbar-container{position:var(--toolbar-container-position,sticky);width:100%;z-index:var(--z-index-toolbar-container);-webkit-overflow-scrolling:touch;scrollbar-color:transparent transparent;scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth;background:var(--toolbar-container-background,var(--background));border-bottom:var(--toolbar-container-border,1px solid var(--border-color));top:0;overflow:auto hidden}.j-toolbar{justify-content:center;align-items:center;gap:var(--toolbar-gap,0);padding:var(--toolbar-padding,calc(var(--space) * 2));box-shadow:var(--toolbar-box-shadow,var(--box-shadow-sm));display:flex;position:relative}@media screen and (width<=992px){.j-toolbar{justify-content:flex-start}}.j-toolbar button svg{width:var(--toolbar-icon-size,var(--font-size-xl));height:var(--toolbar-icon-size,var(--font-size-xl))}.j-toolbar button.is-sm svg{--toolbar-icon-size:var(--font-size-lg)}.j-toolbar button.is-lg svg{--toolbar-icon-size:var(--font-size-2xl)}}@layer menu{.j-menu{white-space:nowrap;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;-ms-overflow-style:none;scrollbar-width:none;user-select:none;width:100%;overflow:auto hidden}.j-menu::-webkit-scrollbar{display:none}.j-menu ol,.j-menu ul,.j-menu ol li,.j-menu ul li{margin:0;padding:0;list-style:none}.j-menu .menu{align-items:center;display:flex}.j-menu .menu .menu-item{flex-shrink:0}.j-menu .menu .menu-item:not(:has(a)){font-size:var(--font-size);font-weight:var(--font-normal);padding:var(--button-padding,.5rem 1rem);height:var(--button-height,var(--el-height));line-height:var(--line-height);text-decoration:underline wavy;text-decoration-color:var(--danger);text-underline-offset:4px;cursor:help;position:relative}.j-menu .menu .menu-item:has(a) a{justify-content:center;align-items:center;gap:calc(var(--space) * 1);white-space:nowrap;cursor:pointer;appearance:button;touch-action:manipulation;color:currentColor;background-color:inherit;font-weight:var(--font-medium);font-size:var(--font-size);flex-wrap:nowrap;display:flex}.j-menu .menu .menu-item:has(a) a .el-icon,.j-menu .menu .menu-item:has(a) a svg{width:var(--font-size-lg);height:var(--font-size-lg)}.j-menu .menu .menu-item.menu-item-has-children>a{pointer-events:none}.j-menu .menu .menu-item.menu-item-has-children>a:after{content:"";vertical-align:middle;border-top:5px solid;border-left:4px solid #0000;border-right:4px solid #0000;width:0;height:0;margin-left:4px;transition:transform .2s ease-in-out}.j-menu .menu .menu-item.menu-item-has-children:hover>a:after{transform:rotate(180deg)}.j-menu .menu .menu-item:has(a) a{padding:var(--button-padding,.5rem 1rem);height:var(--button-height,var(--el-height));line-height:var(--line-height);border-width:var(--border-width,1px);border-style:var(--border-style,solid);border-color:var(--button-border-color,transparent);border-radius:var(--button-border-radius,var(--border-radius))}.j-menu .menu .menu-item .sub-menu{padding:calc(var(--space) * 2) 0;background-color:var(--surface-sm);border:1px solid var(--border-color);border-radius:var(--border-radius);min-width:120px;max-width:240px;box-shadow:var(--box-shadow-sm);display:none;position:absolute;transform:translateY(1px)}.j-menu .menu .menu-item .sub-menu .menu-item a{white-space:normal;border-radius:0;flex-wrap:wrap;justify-content:flex-start;height:auto}.j-menu .menu .menu-item.menu-item-has-children:hover .sub-menu{z-index:var(--z-index-submenu);display:block}.j-menu .menu .menu-item .sub-menu .menu-item:hover a{background-color:var(--primary);color:var(--primary-foreground);outline:1px solid var(--primary)}.j-menu .menu .menu-item a:hover,.j-menu .menu .menu-item.menu-item-has-children:hover>a{background-color:var(--secondary);color:var(--secondary-foreground);text-decoration:none}.j-menu .menu>.menu-item.current-menu-item>a{color:var(--primary)}.j-menu .menu .menu-item.current-menu-item>.sub-menu>.menu-item:not(.current-menu-item) a{color:inherit}.j-menu .menu-item.current-menu-item>.sub-menu>.menu-item:not(.current-menu-item):hover a{color:var(--primary-foreground)}.j-menu .menu-item.menu-item-has-children:hover>.sub-menu>.menu-item.current-menu-item a{color:var(--primary-foreground);background-color:var(--primary);outline:1px solid var(--primary)}.j-menu .menu .menu-item:not(:has(a)):hover,.j-mobile-menu .menu .menu-item:not(:has(a)):hover{background-color:var(--ruby-a2);border-radius:var(--space)}.j-menu .menu .menu-item:not(:has(a)):hover:after,.j-mobile-menu .menu .menu-item:not(:has(a)):hover:after{content:"Error";background-color:var(--danger);color:var(--danger-foreground);font-size:var(--font-size-sm);padding:0 var(--space);border-radius:var(--space);position:absolute;top:0;right:0}.j-menu .menu-item.menu-item-has-children.list-card-menu:hover>.sub-menu{grid-template-columns:repeat(2,1fr);width:auto;min-width:240px;max-width:360px;display:grid;transform:translate(-20%)translateY(1px)}.j-menu .menu-item.list-card-menu>.sub-menu>.menu-item>a{-webkit-line-clamp:1;line-clamp:1;padding:calc(var(--space) * 1.25) calc(var(--space) * 2.5);-webkit-box-orient:vertical;line-height:1.75;display:-webkit-box;overflow:hidden}.j-menu .menu-item.menu-item-has-children.advanced-card-menu:hover>.sub-menu{grid-column-gap:0px;grid-row-gap:0px;grid-template-rows:repeat(6,1fr);grid-template-columns:repeat(6,1fr);min-width:400px;max-width:600px;display:grid;transform:translate(-33.33%)translateY(1px)}.j-menu .menu-item.menu-item-has-children.advanced-card-menu:hover>.sub-menu img{margin:0}.j-menu .menu-item.menu-item-has-children.advanced-card-menu:hover>.sub-menu>.menu-item:first-child{grid-area:1/1/2/3}.j-menu .menu-item.menu-item-has-children.advanced-card-menu:hover>.sub-menu>.menu-item:nth-child(2){grid-area:1/3/4/5}.j-menu .menu-item.menu-item-has-children.advanced-card-menu:hover>.sub-menu>.menu-item:nth-child(3){grid-area:1/5/4/7}.j-menu .menu-item.menu-item-has-children.advanced-card-menu:hover>.sub-menu>.menu-item:nth-child(4){grid-area:2/1/3/3}.j-menu .menu-item.menu-item-has-children.advanced-card-menu:hover>.sub-menu>.menu-item:nth-child(5){grid-area:3/1/4/3}.j-menu .menu-item.menu-item-has-children.advanced-card-menu:hover>.sub-menu>.menu-item:nth-child(6){grid-area:4/1/5/3}.j-menu .menu-item.menu-item-has-children.advanced-card-menu:hover>.sub-menu>.menu-item:nth-child(7){grid-area:4/3/7/5}.j-menu .menu-item.menu-item-has-children.advanced-card-menu:hover>.sub-menu>.menu-item:nth-child(8){grid-area:4/5/7/7}.j-menu .menu-item.menu-item-has-children.advanced-card-menu:hover>.sub-menu>.menu-item:nth-child(9){grid-area:5/1/6/3}.j-menu .menu-item.menu-item-has-children.advanced-card-menu:hover>.sub-menu>.menu-item:nth-child(10){grid-area:6/1/7/3}.j-menu .menu-item.menu-item-has-children.advanced-card-menu:hover>.sub-menu>.menu-item:nth-child(2) a,.j-menu .menu-item.menu-item-has-children.advanced-card-menu:hover>.sub-menu>.menu-item:nth-child(3) a,.j-menu .menu-item.menu-item-has-children.advanced-card-menu:hover>.sub-menu>.menu-item:nth-child(7) a,.j-menu .menu-item.menu-item-has-children.advanced-card-menu:hover>.sub-menu>.menu-item:nth-child(8) a{padding:0}.j-menu .menu-item.menu-item-has-children.advanced-card-menu:hover>.sub-menu>.menu-item:nth-child(2) a:hover,.j-menu .menu-item.menu-item-has-children.advanced-card-menu:hover>.sub-menu>.menu-item:nth-child(3) a:hover,.j-menu .menu-item.menu-item-has-children.advanced-card-menu:hover>.sub-menu>.menu-item:nth-child(7) a:hover,.j-menu .menu-item.menu-item-has-children.advanced-card-menu:hover>.sub-menu>.menu-item:nth-child(8) a:hover{background-color:#0000;outline-color:#0000}.j-mobile-menu{white-space:nowrap;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;-ms-overflow-style:none;scrollbar-width:none;user-select:none;background-color:var(--background);width:100%;overflow:hidden auto}.j-mobile-menu::-webkit-scrollbar{display:none}.j-mobile-menu ol,.j-mobile-menu ul,.j-mobile-menu ol li,.j-mobile-menu ul li{margin:0;padding:0;list-style:none}.j-mobile-menu .menu{flex-direction:column;align-items:flex-start;display:flex;position:relative}.j-mobile-menu .menu .menu-item{width:100%;font-size:var(--font-size);font-weight:var(--font-medium);flex-shrink:0}.j-mobile-menu .menu .menu-item:not(:has(a)){padding:var(--button-padding,.5rem 1rem);height:var(--button-height,var(--el-height-lg));text-decoration:underline wavy;text-decoration-color:var(--danger);text-underline-offset:4px;cursor:help;position:relative}.j-mobile-menu .menu .menu-item:has(a) a{justify-content:flex-start;align-items:center;gap:calc(var(--space) * 2);white-space:normal;appearance:button;touch-action:manipulation;color:currentColor;min-height:var(--el-height-lg);padding:calc(var(--space) * 2) calc(var(--space) * 4);line-height:var(--line-height-paragraph);flex-wrap:wrap;text-decoration:none;display:flex;position:relative}.j-mobile-menu .menu .menu-item:has(a) a .menu-text{line-height:var(--line-height-paragraph)}.j-mobile-menu .menu .menu-item:has(a) a .el-icon,.j-mobile-menu .menu .menu-item:has(a) a svg{width:var(--font-size-lg);height:var(--font-size-lg)}.j-mobile-menu .menu .menu-item.menu-item-has-children>a:after{content:"";vertical-align:middle;border-top:4px solid #0000;border-bottom:4px solid #0000;border-left:5px solid;width:0;height:0;margin:0;position:absolute;right:1rem}.j-mobile-menu .menu .menu-item .sub-menu{visibility:hidden;opacity:0;background-color:var(--background);z-index:-1;width:100%;max-width:100%;transition:opacity .3s ease-in-out,visibility .3s ease-in-out;display:block;position:absolute;top:0;left:0;transform:translate(100%)}.j-mobile-menu>.menu>.menu-item:hover>a,.j-mobile-menu>.menu>.menu-item.menu-item-has-children .sub-menu>.menu-item:hover>a{background-color:var(--primary);color:var(--primary-foreground);text-decoration:none}.j-mobile-menu .menu .menu-item.menu-item-has-children.is-active>.sub-menu{visibility:visible;opacity:1;height:100%;z-index:var(--z-index-submenu);transform:translate(0)}.j-bottom-menu{white-space:nowrap;user-select:none;width:100%;position:fixed;bottom:0;left:0}.j-bottom-menu ol,.j-bottom-menu ul,.j-bottom-menu ol li,.j-bottom-menu ul li{margin:0;padding:0;list-style:none}.j-bottom-menu .menu{border-top:var(--border-sm);background:linear-gradient(to bottom, var(--surface-sm) 10%, var(--gray-3) 30%, var(--gray-5) 50%, var(--gray-3) 70%, var(--surface-sm) 90%);font-size:var(--font-size);justify-content:space-between;align-items:center;gap:1px;display:flex;position:relative}.j-bottom-menu .menu .menu-item{background-color:var(--surface-sm);justify-content:center;align-items:center;width:100%;display:flex}.j-bottom-menu .menu .menu-item>a{text-align:center;width:100%;height:var(--el-height-lg);justify-content:center;align-items:center;gap:calc(var(--space) * 1);color:var(--foreground);padding:calc(var(--space) * 1.5);text-decoration:none;display:flex}.j-bottom-menu .menu .menu-item:has(a) a .el-icon,.j-bottom-menu .menu .menu-item:has(a) a svg{width:var(--font-size-lg);height:var(--font-size-lg)}.j-bottom-menu>.menu>.menu-item.menu-item-has-children>a:after{content:"☰";font-size:var(--font-size-sm)}.j-bottom-menu .menu .menu-item.current-menu-parent>a,.j-bottom-menu .menu .menu-item.current-menu-item>a,.j-bottom-menu .menu .menu-item.menu-item-has-children.is-active>a{color:var(--primary)}.j-bottom-menu .menu .menu-item.menu-item-has-children>.sub-menu{opacity:0;visibility:hidden;background:linear-gradient(to right, var(--surface-sm) 10%, var(--gray-3) 30%, var(--gray-5) 50%, var(--gray-3) 70%, var(--surface-sm) 90%);border:var(--border-sm);min-width:calc(var(--space) * 30);max-width:calc(var(--space) * 76);left:50%;bottom:calc(100% + var(--space));flex-direction:column;justify-content:center;align-items:center;gap:1px;transition:visibility .3s ease-in-out,opacity .3s ease-in-out;display:flex;position:absolute;transform:translate(-50%)}.j-bottom-menu .menu .menu-item.menu-item-has-children.is-active>.sub-menu{opacity:1;visibility:visible}.j-bottom-menu .menu .menu-item.menu-item-has-children>.sub-menu>.menu-item{background-color:var(--surface-sm);white-space:normal}.j-bottom-menu .menu .menu-item.menu-item-has-children>.sub-menu>.menu-item>a{padding:calc(var(--space) * 1.5) calc(var(--space) * 3)}.drop-menu{min-width:100px;max-width:200px;padding:calc(var(--space) * 2);font-size:var(--font-size);background-color:var(--surface-sm)}.drop-menu ul,.drop-menu ol,.drop-menu ul li,.drop-menu ol li{margin:0;padding:0;list-style:none}.drop-menu .menu-item a{align-items:center;gap:var(--drop-menu-item-gap,calc(var(--space) * 2));width:100%;padding:calc(var(--space) * 1) calc(var(--space) * 2);color:var(--gray-a11);border-radius:var(--border-radius);user-select:none;text-decoration:none;display:flex}.drop-menu .menu-item a .menu-text{flex-grow:1}.drop-menu .menu-item a:hover{background-color:var(--primary);color:var(--primary-foreground)}.drop-menu .el-icon,.drop-menu svg{width:var(--drop-menu-icon-size,calc(var(--space) * 4));height:var(--drop-menu-icon-size,calc(var(--space) * 4))}.drop-menu .menu-item.menu-heading{padding:var(--menu-item-heading,calc(var(--space) * 1) calc(var(--space) * 2));color:var(--gray-10);font-size:var(--font-size-sm)}}@layer form{.j-form,.j-form .form-item,.j-form .form-item .item-label{display:flex}.j-form.is-vertical{gap:var(--form-gap-vertical,calc(var(--space) * 3));flex-direction:column}.j-form.is-horizontal{gap:var(--form-gap-horizontal,calc(var(--space) * 2));flex-direction:row}.j-form .form-item{gap:var(--form-label-gap,calc(var(--space) * 1));margin:0}.j-form.is-item-vertical .form-item{flex-direction:column}.j-form.is-item-horizontal .form-item{flex-direction:row}.j-form .form-item .item-label{color:var(--form-item-label-color,var(--gray-11));font-size:var(--form-item-label-size,var(--font-size-sm))}.j-form .form-item .item-label,.j-form .form-item .form-control{gap:var(--form-label-gap,calc(var(--space) * 1))}.j-form.is-horizontal .form-item .item-label{height:var(--horizontal-form-label-height,var(--el-height));align-items:center}label.is-required:after{content:"*";color:var(--required-color,var(--red-9))}.j-form .form-item .form-control{flex-direction:column;margin:0;display:flex}.j-form .form-item .form-control .help-block{font-size:var(--form-help-block-font-size,var(--font-size-sm));color:var(--form-help-block-color,var(--gray-10));margin:0}.j-form .form-item .form-control .help-block.is-invalid{color:var(--danger)}.j-form .form-buttons{gap:var(--form-buttons-gap,calc(var(--space) * 2));margin:0;display:flex}.j-input:not([type=checkbox]){padding:var(--input-padding,calc(var(--space) * 1.5) calc(var(--space) * 2));border-width:var(--input-border-width,1px);border-style:var(--input-border-style,solid);border-color:var(--input-border-color,var(--input-color));border-radius:var(--input-border-radius,var(--border-radius));height:var(--input-height,var(--el-height));line-height:var(--input-line-height,var(--line-height));box-shadow:var(--input-box-shadow,var(--box-shadow-sm));background-color:inherit;color:inherit;display:block}.j-input:not([type=file]){font-size:var(--input-font-size,var(--font-size))}.j-input.is-sm{height:var(--input-height-sm,var(--el-height-sm));font-size:var(--input-font-size-sm,var(--font-size-sm,.75rem));line-height:var(--input-line-height-sm,var(--line-height-self))}.j-input.is-lg{height:var(--input-height-lg,var(--el-height-lg));font-size:var(--input-font-size-lg,var(--font-size-lg,1rem));line-height:var(--input-line-height-lg,var(--line-height))}.j-input[type=file]{appearance:none;cursor:pointer;font-size:var(--font-size-sm);background-clip:padding-box;overflow:hidden}.j-input[type=file]::file-selector-button,html.j-font-sm .j-input[type=file]::file-selector-button{appearance:none;margin:calc(var(--space) * -2);padding:calc(var(--space) * 2);border-width:0;border-inline-end-width:1px;border-color:var(--input-border-color,var(--input-color));background-color:var(--gray-a3);font-size:var(--font-size-sm,.75rem);border-radius:0;margin-inline-end:calc(var(--space) * 2)}html.j-font-md .j-input[type=file]::file-selector-button{padding:calc(var(--space) * 2.75);margin-inline-end:calc(var(--space) * 2.75)}.j-input.is-line:not([type=checkbox]){border-top-color:#0000;border-left-color:#0000;border-right-color:#0000;padding-left:0;padding-right:0}.j-input.is-ghost:not([type=checkbox]){background-color:var(--accent);border-color:#0000}.j-input.is-blank:not([type=checkbox]){border-color:#0000;padding-left:0;padding-right:0}.j-input.is-valid,.j-input.is-invalid{background-position:right calc(.357143em + .21875rem) center;background-repeat:no-repeat;background-size:calc(.714286em + .4375rem) calc(.714286em + .4375rem);padding-right:calc(1.42857em + .875rem)}.j-input.is-valid{border-color:var(--form-valid-border-color,var(--success));background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232fb344' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e")}.j-input.is-invalid{border-color:var(--form-invalid-border-color,var(--danger));background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e")}.j-input[type=color]{--input-padding:var(--space)}.j-radio{gap:var(--radio-gap);flex-wrap:wrap;display:flex}.j-radio.is-vertical{--radio-gap:calc(var(--space) * 3);flex-direction:column}.j-radio,.j-radio.is-horizontal{--radio-gap:calc(var(--space) * 4);flex-direction:row}.j-radio label{align-items:center;gap:var(--radio-label-gap,calc(var(--space) * 1));font-size:var(--font-size);display:flex}.j-radio label input[type=radio]{background-color:var(--background);border:1px solid var(--gray-a8);appearance:none;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;margin:0;display:flex}.j-radio label input[type=radio]:checked{background-color:var(--primary);border-color:var(--primary)}.j-radio label input[type=radio]:before{content:"";background-color:var(--background);border-radius:50%;width:6px;height:6px;transition:all .1s cubic-bezier(.165,.84,.44,1);transform:scale(0)}.j-radio label input[type=radio]:checked:before{transform:scale(1)}.j-radio.is-group{flex-wrap:nowrap;gap:0}.j-radio.is-group input[type=radio]{clip:rect(0 0 0 0);clip-path:inset(100%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.j-radio.is-group label.radio-label span.radio-text{cursor:pointer;background-color:var(--background);padding:var(--radio-group-padding,calc(var(--space) * 1.5) calc(var(--space) * 3));height:var(--el-height);line-height:var(--line-height);box-shadow:0 0 0 .0625em var(--gray-a8);text-align:center;user-select:none;justify-content:center;align-items:center;display:flex;position:relative}.j-radio.is-group label.radio-label:not(:first-child) span.radio-text{margin-left:1px}.j-radio.is-group input[type=radio]:checked+span.radio-text{box-shadow:0 0 0 .0625em var(--primary);background-color:var(--primary);z-index:1;color:var(--primary-foreground)}.j-radio.is-group label.radio-label:first-child span{border-radius:var(--border-radius-sm) 0 0 var(--border-radius-sm)}.j-radio.is-group label.radio-label:last-child span{border-radius:0 var(--border-radius-sm) var(--border-radius-sm) 0}.j-radio.is-group.is-sm label{font-size:var(--font-size-sm)}.j-radio.is-group.is-sm label.radio-label span.radio-text{--radio-group-padding:calc(var(--space) * 1) calc(var(--space) * 2);height:var(--el-height-sm)}.j-radio.is-group label{font-size:var(--font-size-md)}.j-radio.is-group.is-lg label{font-size:var(--font-size-lg)}.j-radio.is-group.is-lg label.radio-label span.radio-text{--radio-group-padding:calc(var(--space) * 3) calc(var(--space) * 4);height:var(--el-height-lg)}.j-checkbox{gap:var(--checkbox-gap);flex-wrap:wrap;margin:0;display:flex}.j-checkbox.is-vertical{--checkbox-gap:calc(var(--space) * 3);flex-direction:column}.j-checkbox,.j-checkbox.is-horizontal{--checkbox-gap:calc(var(--space) * 4);flex-direction:row}.j-checkbox label{align-items:center;gap:var(--checkbox-label-gap,calc(var(--space) * 1));font-size:var(--checkbox-label-font-size,var(--font-size));display:flex}.j-checkbox input[type=checkbox]{appearance:none;aspect-ratio:1;border-width:var(--input-border-width,1px);border-style:var(--input-border-style,solid);border-color:var(--input-border-color,var(--input-color));border-radius:var(--input-border-radius,var(--border-radius-sm));cursor:pointer;width:1rem;height:1rem;margin:0;position:relative}.j-checkbox input[type=checkbox]:checked{border-radius:var(--border-radius);background-color:var(--primary);print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:contain;border-color:#0000}.j-theme-yellow .j-checkbox input[type=checkbox]:checked,.j-theme-mint .j-checkbox input[type=checkbox]:checked,.j-theme-lime .j-checkbox input[type=checkbox]:checked,.dark.j-theme-gray .j-checkbox input[type=checkbox]:checked,.dark.j-theme-olive .j-checkbox input[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23000000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e")}.j-switch.is-default{position:relative}.j-switch.is-default.is-sm{width:1.75rem;height:var(--switch-height-sm,calc(var(--space,0 .25rem) * 4))}.j-switch.is-default.is-md{width:2.625rem;height:var(--switch-height-md,calc(var(--space,0 .25rem) * 6))}.j-switch.is-default.is-lg{width:3.5rem;height:var(--switch-height-lg,calc(var(--space,0 .25rem) * 8))}.j-switch.is-default input[type=checkbox]{opacity:0;width:0;height:0}.j-switch.is-default .switch-slider{cursor:pointer;background-color:var(--gray-a6);border-radius:50px;transition:all .3s;position:absolute;inset:0}.j-switch.is-default .switch-slider:after{content:"";background-color:#fff;border-radius:50%;transition:all .3s;position:absolute;box-shadow:0 1px 3px #0000004d}.j-switch.is-default.is-sm .switch-slider:after{width:.75rem;height:.75rem;bottom:.125rem;left:.125rem}.j-switch.is-default.is-md .switch-slider:after{width:1.125rem;height:1.125rem;bottom:.1875rem;left:.1875rem}.j-switch.is-default.is-lg .switch-slider:after{width:1.5rem;height:1.5rem;bottom:.25rem;left:.25rem}.j-switch.is-default input[type=checkbox]:checked+.switch-slider{background-color:var(--primary)}.j-switch.is-default.is-sm input[type=checkbox]:checked+.switch-slider:after{transform:translate(.75rem)}.j-switch.is-default.is-md input[type=checkbox]:checked+.switch-slider:after{transform:translate(1.125rem)}.j-switch.is-default.is-lg input[type=checkbox]:checked+.switch-slider:after{transform:translate(1.5rem)}.j-theme-gray .j-switch.is-default input[type=checkbox]:checked+.switch-slider:after{background-color:var(--gray-1)}.j-theme-olive .j-switch.is-default input[type=checkbox]:checked+.switch-slider:after{background-color:var(--olive-1)}.j-switch.is-default .switch-slider:hover{opacity:var(--opacity-hover,.9)}.j-switch.is-line{display:inline-block;position:relative}.j-switch.is-line.is-sm{width:1.75rem;height:calc(var(--space,0 .25rem) * 4)}.j-switch.is-line.is-md{width:2.625rem;height:calc(var(--space,0 .25rem) * 6)}.j-switch.is-line.is-lg{width:3.5rem;height:calc(var(--space,0 .25rem) * 8)}.j-switch.is-line input[type=checkbox]{opacity:0;width:0;height:0}.j-switch.is-line .switch-slider{cursor:pointer;border:1px solid var(--input-border-color,var(--input-color));border-radius:50px;transition:all .4s cubic-bezier(.175,.885,.32,1.275);position:absolute;inset:0}.j-switch.is-line.is-md .switch-slider,.j-switch.is-line.is-lg .switch-slider{border-width:2px}.j-switch.is-line .switch-slider:before{content:"";background-color:var(--gray-a8);border-radius:inherit;transition:all .4s cubic-bezier(.23,1,.32,1);position:absolute}.j-switch.is-line.is-sm .switch-slider:before{width:.625rem;height:.625rem;bottom:.125rem;left:.125rem}.j-switch.is-line.is-md .switch-slider:before{width:1rem;height:1rem;bottom:.125rem;left:.125rem}.j-switch.is-line.is-lg .switch-slider:before{width:1.375rem;height:1.375rem;bottom:.1875rem;left:.1875rem}.j-switch.is-line input:checked+.switch-slider{box-shadow:0 0 8px var(--primary);border-color:var(--primary)}.j-switch.is-line input:checked+.switch-slider:before{background-color:var(--primary)}.j-switch.is-line.is-sm input:checked+.switch-slider:before{transform:translate(.75rem)}.j-switch.is-line.is-md input:checked+.switch-slider:before{transform:translate(1.125rem)}.j-switch.is-line.is-lg input:checked+.switch-slider:before{transform:translate(1.5rem)}select.j-select{padding:var(--input-padding,calc(var(--space) * 1.5) calc(var(--space) * 1.5));border-width:var(--input-border-width,1px);border-style:var(--input-border-style,solid);border-color:var(--input-border-color,var(--input-color));border-radius:var(--input-border-radius,var(--border-radius));height:var(--input-height,var(--el-height));line-height:var(--input-line-height,var(--line-height));box-shadow:var(--input-box-shadow,var(--box-shadow-sm));background-color:inherit;font-size:var(--input-font-size,var(--font-size))}select.j-select.is-sm{--input-height:var(--el-height-sm);--input-padding:calc(var(--space) * 1) calc(var(--space) * 1);--input-font-size:var(--font-size-sm)}select.j-select.is-lg{--input-height:var(--el-height-lg);--input-padding:calc(var(--space) * 2) calc(var(--space) * 2);--input-font-size:var(--font-size-lg)}textarea.j-textarea{min-height:var(--textarea-min-height,calc(var(--space) * 18));border:var(--textarea-border-width,1px) var(--textarea-border-style,solid) var(--textarea-border,var(--gray-a8));border-radius:var(--textarea-border-radius,var(--border-radius,4px));resize:vertical;padding:var(--textarea-padding,calc(var(--space) * 2));background-color:inherit}.j-form.is-vertical input.j-input:not([type=checkbox]):not([type=radio]),.j-form.is-vertical select.j-select,.j-form.is-vertical textarea.j-textarea{width:100%}.input-group{flex-wrap:wrap;align-items:stretch;width:100%;display:flex;position:relative}.input-group>input.j-input,.input-group>select.j-select{letter-spacing:.4px;flex:auto;width:1%;min-width:0;position:relative}.input-group>.el-addon>.j-button{border-color:var(--input-border-color,var(--input-color));position:relative}.input-group>.el-addon>.is-text{white-space:nowrap;font-size:var(--font-size,.875rem);line-height:var(--line-height,1.25rem);color:var(--gray-11);background-color:var(--input-group-text-addon-background,var(--gray-3));padding:var(--input-group-text-addon-padding,.5rem .75rem);height:var(--button-height,var(--el-height));border-width:var(--border-width,1px);border-style:var(--border-style,solid);border-color:var(--input-border-color,var(--input-color));border-radius:var(--button-border-radius,var(--border-radius));box-shadow:var(--box-shadow-sm);user-select:none;align-items:center;display:flex}.input-group>.el-addon>.is-text.icon-close{width:var(--button-height,var(--el-height))}.input-group>:not(:first-child){margin-left:-1px}.input-group>input.j-input:not(:first-child),.input-group>select.j-select:not(:first-child),.input-group>:not(select.j-select)+.el-addon:not(:first-child)>.is-text{border-left-color:#0000}.input-group>input.j-input:not(:first-child),.input-group>:not(:first-child)>*,.input-group>:not(:first-child)>.is-text{border-top-left-radius:0;border-bottom-left-radius:0}.input-group>input.j-input:not(:last-child),.input-group>:not(:last-child)>*,.input-group>:not(:last-child)>.is-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-inner-group{position:relative}.input-inner-group>input.j-input{letter-spacing:.4px;width:100%}.input-inner-group>input.j-input:not(:last-child){padding-right:var(--el-height)}.input-inner-group>input.j-input:not(:first-child){padding-left:var(--el-height)}.input-inner-group>.el-addon{min-width:var(--el-height);color:var(--gray-9);justify-content:center;align-items:center;font-size:.875em;display:flex;position:absolute;top:0;bottom:0;left:0}.input-inner-group>.el-addon:last-child{left:auto;right:0}.input-inner-group>.el-addon:first-child.is-text:has(.j-button:not(.is-icon)){left:var(--space)}.input-inner-group>.el-addon:last-child.is-text:has(.j-button:not(.is-icon)){right:var(--space)}.input-inner-group>.el-addon>svg{width:var(--font-size-xl);height:var(--font-size-xl)}.input-inner-group>.el-addon>.el-text{color:currentColor}.input-inner-group>.el-addon.is-text{color:var(--foreground);gap:var(--space);display:flex}.input-group>.el-addon>.j-button:not(:disabled):active{outline:var(--input-focus-outline,2px solid var(--primary));z-index:2;border-color:#0000;transform:none}select.j-select:focus-visible,.j-input:focus-within{outline:var(--input-focus-outline,2px solid var(--primary));box-shadow:var(--input-focus-shadow,none);border-color:#0000}.j-input.is-valid:focus-within{outline-color:var(--form-valid-border-color,var(--success));border-color:#0000}.j-input.is-invalid:focus-within{outline-color:var(--form-invalid-border-color,var(--danger));border-color:#0000}.input-group>.j-input:focus-within{z-index:2}.j-textarea:focus-within{outline:var(--textarea-focus-outline,2px solid var(--primary));border-color:#0000}.j-radio label input[type=radio]:focus-within{outline-offset:1px;border-color:#0000}.j-checkbox input[type=checkbox]:focus-within{border-color:var(--primary);outline-offset:1px}.j-input:not([type=file]):not(.is-line):not(.is-blank)[readonly]{background-color:var(--input-readonly-background,var(--readonly-background))}.j-textarea[readonly]{background-color:var(--readonly-background)}.j-input:disabled,.j-textarea:disabled{opacity:var(--input-disabled-opacity,var(--opacity-disabled))}.j-input:disabled:not(.is-line):not(.is-ghost):not(.is-blank){background-color:var(--gray-a5)}.j-textarea[disabled]{background-color:var(--disabled-background)}.j-radio label:has(input[type=radio]:disabled){cursor:not-allowed;opacity:var(--opacity-disabled)}.j-radio label input[type=radio]:disabled{background-color:var(--disabled-background)}.j-radio.is-group label.radio-label input[type=radio]:disabled+.radio-text{cursor:not-allowed;background-color:var(--disabled-background);opacity:var(--opacity-disabled);box-shadow:0 0 0 .0625em var(--gray-a11)}.j-checkbox label:has(input[type=checkbox]:disabled){cursor:not-allowed;opacity:var(--opacity-disabled)}.j-checkbox label input[type=checkbox]:disabled{background-color:var(--disabled-background)}input.j-input:not([type=file]):not(:placeholder-shown),select.j-select:valid{background-color:var(--accent)}}@layer animation{.animate-none{animation:none}.animate-spin{animation:1s linear infinite animate-spin}@keyframes animate-spin{to{transform:rotate(360deg)}}.animate-ping{animation:1s cubic-bezier(0,0,.2,1) infinite animate-ping}@keyframes animate-ping{75%,to{opacity:0;transform:scale(2)}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite animate-pulse}@keyframes animate-pulse{50%{opacity:.5}}.animate-bounce{animation:1s infinite animate-bounce}@keyframes animate-bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:translateY(0)}}.animate-fade-in{animation:.3s ease-in-out animate-fade-in}@keyframes animate-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.animate-fade-out{animation:.3s ease-in-out animate-fade-out}@keyframes animate-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}.animate-shake{animation:.3s ease-in-out animate-shake}@keyframes animate-shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}50%{transform:translate(10px)}75%{transform:translate(-10px)}}.animate-slide-to-top{animation:.3s ease-in-out animate-slide-to-top}@keyframes animate-slide-to-top{0%{transform:translateY(0)}to{transform:translateY(-100%)}}.animate-slide-to-right{animation:.3s ease-in-out animate-slide-to-right}@keyframes animate-slide-to-right{0%{transform:translate(0)}to{transform:translate(100%)}}.animate-slide-to-bottom{animation:.3s ease-in-out animate-slide-to-bottom}@keyframes animate-slide-to-bottom{0%{transform:translateY(0)}to{transform:translateY(100%)}}.animate-slide-to-left{animation:.3s ease-in-out animate-slide-to-left}@keyframes animate-slide-to-left{0%{transform:translate(0)}to{transform:translate(-100%)}}}@layer utilities;@layer status{.is-sad{filter:grayscale()}[disabled],:disabled,.is-disabled{cursor:not-allowed;user-select:none}[readonly]{opacity:var(--opacity-readonly);cursor:default}[data-action]{cursor:pointer}.is-circle{border-radius:var(--circle)}.is-round{border-radius:var(--round)}.dragging{cursor:move;cursor:grab}.dragging:active{cursor:grabbing}}@layer comopnents{.j-tooltip{background:var(--tooltip-background,#000);color:var(--tooltip-foreground,#fff);border-width:var(--tooltip-border-width,1px);border-style:var(--tooltip-border-style,solid);border-color:var(--tooltip-border-color,#111);border-radius:var(--tooltip-radius,var(--border-radius));max-width:var(--tooltip-max-width,260px);position:relative}.j-tooltip .tooltip-message{word-wrap:break-word;padding:var(--tooltip-padding,calc(var(--space) * 1.5) calc(var(--space) * 2));font-size:var(--tooltip-font-size,var(--font-size));line-height:var(--tooltip-line-height,var(--line-height))}}
|
package/package.json
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "vanilla-jui",
|
|
3
|
+
"version": "0.5.0",
|
|
4
|
+
"private": false,
|
|
5
|
+
"description": "A lightweight vanilla JavaScript UI plugin library.",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"accordion",
|
|
8
|
+
"components",
|
|
9
|
+
"drop",
|
|
10
|
+
"jui",
|
|
11
|
+
"menu",
|
|
12
|
+
"modal",
|
|
13
|
+
"offcanvas",
|
|
14
|
+
"parabola",
|
|
15
|
+
"tabs",
|
|
16
|
+
"theme",
|
|
17
|
+
"toast",
|
|
18
|
+
"tooltip",
|
|
19
|
+
"validator",
|
|
20
|
+
"vanilla"
|
|
21
|
+
],
|
|
22
|
+
"homepage": "https://github.com/WangShai123/vanilla-jui",
|
|
23
|
+
"bugs": {
|
|
24
|
+
"url": "https://github.com/WangShai123/vanilla-jui/issues"
|
|
25
|
+
},
|
|
26
|
+
"license": "ISC",
|
|
27
|
+
"author": "Wang Shai <hiwangshai@gmail.com>",
|
|
28
|
+
"files": [
|
|
29
|
+
"dist"
|
|
30
|
+
],
|
|
31
|
+
"type": "module",
|
|
32
|
+
"main": "./dist/index.js",
|
|
33
|
+
"module": "./dist/index.js",
|
|
34
|
+
"browser": "dist/index.umd.js",
|
|
35
|
+
"unpkg": "dist/index.umd.js",
|
|
36
|
+
"exports": {
|
|
37
|
+
".": "./dist/index.js",
|
|
38
|
+
"./package.json": "./package.json",
|
|
39
|
+
"./style.css": "./dist/style.css"
|
|
40
|
+
},
|
|
41
|
+
"publishConfig": {
|
|
42
|
+
"access": "public"
|
|
43
|
+
},
|
|
44
|
+
"scripts": {
|
|
45
|
+
"build": "vp pack",
|
|
46
|
+
"pack": "vp pack",
|
|
47
|
+
"dev": "vp dev",
|
|
48
|
+
"test": "vp test",
|
|
49
|
+
"check": "vp check",
|
|
50
|
+
"lint": "vp lint",
|
|
51
|
+
"prepublishOnly": "vp run build"
|
|
52
|
+
},
|
|
53
|
+
"dependencies": {
|
|
54
|
+
"vanilla-signal": "1.1.0",
|
|
55
|
+
"vanilla-signal-i18n": "1.1.0"
|
|
56
|
+
},
|
|
57
|
+
"devDependencies": {
|
|
58
|
+
"@tsdown/css": "^0.22.2",
|
|
59
|
+
"vite-plus": "latest"
|
|
60
|
+
},
|
|
61
|
+
"registry": {
|
|
62
|
+
"type": "git",
|
|
63
|
+
"url": "git+https://github.com/WangShai123/vanilla-jui.git"
|
|
64
|
+
}
|
|
65
|
+
}
|