voodoojs 0.4.6 → 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.
@@ -1841,5 +1841,5 @@ function refresh(root) {
1841
1841
  }
1842
1842
 
1843
1843
  export { Scope, VoodooRuntimeError, VoodooSyntaxError, addCleanup, allowedGlobals, clearParseCache, closestDirective, collectDirectives, componentAliases, destroy, evaluate, evaluateIn, findScope, getEffectScopes, getScope, hadDirectives, hasAttr, hasDirectives, isInitialized, magic, magics, markInitialized, markNodeScope, markSkipChildren, originalAttributes, parse, parseAttribute, queryDirective, readAttr, refresh, removeQuietly, restoreAttributes, rootScope, setComponentMounter, start, stopObserving, stringify, tokenize, walk };
1844
- //# sourceMappingURL=chunk-5CKGDARU.js.map
1845
- //# sourceMappingURL=chunk-5CKGDARU.js.map
1844
+ //# sourceMappingURL=chunk-34CGORMO.js.map
1845
+ //# sourceMappingURL=chunk-34CGORMO.js.map
@@ -1,5 +1,5 @@
1
1
  import { http, HttpError, request } from './chunk-PQZEVFVZ.js';
2
- import { stringify, markInitialized, markSkipChildren, destroy, walk, removeQuietly, evaluateIn, addCleanup, markNodeScope, setComponentMounter, closestDirective, magic, readAttr, hasAttr, componentAliases, Scope, queryDirective, parse, evaluate, parseAttribute, originalAttributes, findScope, VoodooRuntimeError, VoodooSyntaxError, allowedGlobals, clearParseCache, tokenize, getScope, stopObserving, refresh, start, magics, rootScope, isInitialized, restoreAttributes, hasDirectives } from './chunk-5CKGDARU.js';
2
+ import { stringify, markInitialized, markSkipChildren, destroy, walk, removeQuietly, evaluateIn, addCleanup, markNodeScope, setComponentMounter, closestDirective, magic, readAttr, hasAttr, componentAliases, Scope, queryDirective, parse, evaluate, parseAttribute, originalAttributes, findScope, VoodooRuntimeError, VoodooSyntaxError, allowedGlobals, clearParseCache, tokenize, getScope, stopObserving, refresh, start, magics, rootScope, isInitialized, restoreAttributes, hasDirectives } from './chunk-34CGORMO.js';
3
3
  import { ref, reactive, handleError, nextTick, queuePostFlush, warn, watch, EffectScope, computed, effect, toRaw, flushSync, effectScope, stop, unref, markRaw, watchEffect, shallowRef, setErrorHandler } from './chunk-NNU6WOOU.js';
4
4
  import { warnDuplicateKey, warn as warn$1, describeElement, warnUnknownComponent, warnAlias, warnRequiredProp } from './chunk-A2UOVQBP.js';
5
5
  import { parseDuration, debounce, utils_exports, throttle, uid, device, escapeHtml } from './chunk-234ZLC6W.js';
@@ -794,6 +794,7 @@ function render(options) {
794
794
  element.setAttribute("data-type", type);
795
795
  element.setAttribute("role", type === "error" ? "alert" : "status");
796
796
  element.setAttribute("aria-live", type === "error" ? "assertive" : "polite");
797
+ element.setAttribute("aria-atomic", "true");
797
798
  let closed = false;
798
799
  let timer = null;
799
800
  const close = () => {
@@ -10267,5 +10268,5 @@ defineDirective(
10267
10268
  );
10268
10269
 
10269
10270
  export { VoodooCollection, alert, allStores, applyMask, cache, clearErrors, clipboard, confirm, cookie, core, createApp, createResource, defineComponent, dialog, efeitos, ensurePalette, enter, fadeIn, fadeOut, fromHtml, hotkey, instances, leave, mask, masks, messages, modal, mountComponent, network, palette, prompt, query, ready, ready2, registerMask, removeStore, screen, serializeForm, session, showFieldError, showFormErrors, slideDown, slideUp, sound, storage, store, storeNames, theme, toast, unmask, url, validate, validator, viewTransition, whenElement, whenReady };
10270
- //# sourceMappingURL=chunk-4HQEOXTK.js.map
10271
- //# sourceMappingURL=chunk-4HQEOXTK.js.map
10271
+ //# sourceMappingURL=chunk-ABRZI32G.js.map
10272
+ //# sourceMappingURL=chunk-ABRZI32G.js.map
@@ -4341,6 +4341,7 @@ function render(options) {
4341
4341
  element.setAttribute("data-type", type);
4342
4342
  element.setAttribute("role", type === "error" ? "alert" : "status");
4343
4343
  element.setAttribute("aria-live", type === "error" ? "assertive" : "polite");
4344
+ element.setAttribute("aria-atomic", "true");
4344
4345
  let closed = false;
4345
4346
  let timer = null;
4346
4347
  const close = () => {
@@ -1,4 +1,4 @@
1
- import { c as core, V as VoodooCollection } from './query-CKJ4oSpG.cjs';
1
+ import { c as core, V as VoodooCollection } from './query-Bja83lRJ.cjs';
2
2
  import './http.cjs';
3
3
  import './utils.cjs';
4
4
  import './reactivity.cjs';
@@ -1,4 +1,4 @@
1
- import { c as core, V as VoodooCollection } from './query-DQFRmu3u.js';
1
+ import { c as core, V as VoodooCollection } from './query-BeYufh-f.js';
2
2
  import './http.js';
3
3
  import './utils.js';
4
4
  import './reactivity.js';
package/dist/essential.js CHANGED
@@ -1,6 +1,6 @@
1
- import { core, sound, hotkey, palette, registerMask, unmask, applyMask, masks, mask, clearErrors, showFieldError, showFormErrors, messages, serializeForm, validate, validator, dialog, prompt, confirm, alert, modal, VoodooCollection, fromHtml, ready2, query } from './chunk-4HQEOXTK.js';
1
+ import { core, sound, hotkey, palette, registerMask, unmask, applyMask, masks, mask, clearErrors, showFieldError, showFormErrors, messages, serializeForm, validate, validator, dialog, prompt, confirm, alert, modal, VoodooCollection, fromHtml, ready2, query } from './chunk-ABRZI32G.js';
2
2
  import './chunk-PQZEVFVZ.js';
3
- import { magic } from './chunk-5CKGDARU.js';
3
+ import { magic } from './chunk-34CGORMO.js';
4
4
  import './chunk-NNU6WOOU.js';
5
5
  import './chunk-A2UOVQBP.js';
6
6
  import './chunk-234ZLC6W.js';
package/dist/gpu.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { supported, clock, shared, gpu, surface, effect, frameLoop, frame } from './chunk-JZIYRIY6.js';
2
2
  export { clock, compute, describeWgslType, destroy, effect, findEntry, flattenValue, frame, frameLoop, gpu, inferStruct, init, packStruct, reflectBindings, reflectEntries, reflectStructs, reflectWgsl, resetShared, shared, splitTopLevel, stripWgslComments, supported, surface, target, uniforms, writeField, writeStruct } from './chunk-JZIYRIY6.js';
3
3
  import { http } from './chunk-PQZEVFVZ.js';
4
- import { originalAttributes, destroy } from './chunk-5CKGDARU.js';
4
+ import { originalAttributes, destroy } from './chunk-34CGORMO.js';
5
5
  import { handleError } from './chunk-NNU6WOOU.js';
6
6
  import { warn, describeElement } from './chunk-A2UOVQBP.js';
7
7
  import './chunk-234ZLC6W.js';
package/dist/index.cjs CHANGED
@@ -4352,6 +4352,7 @@ function render(options) {
4352
4352
  element.setAttribute("data-type", type);
4353
4353
  element.setAttribute("role", type === "error" ? "alert" : "status");
4354
4354
  element.setAttribute("aria-live", type === "error" ? "assertive" : "polite");
4355
+ element.setAttribute("aria-atomic", "true");
4355
4356
  let closed = false;
4356
4357
  let timer = null;
4357
4358
  const close = () => {
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { c as core, V as VoodooCollection } from './query-CKJ4oSpG.cjs';
2
- export { A as App, a as AppOptions, C as ComponentDefinition, D as DirectiveBinding, b as DirectiveHooks, P as PRIORITY, R as Resource, d as ResourceOptions, S as Scope, e as VoodooConfig, f as VoodooPlugin, g as VoodooRuntimeError, h as VoodooSyntaxError, i as addCleanup, j as allStores, k as allowedGlobals, l as cache, m as clearParseCache, n as config, o as cookie, p as createApp, q as createResource, r as defineComponent, s as defineDirective, t as destroy, u as documentReady, v as ensureTokens, w as enter, x as evaluate, y as fadeIn, z as fadeOut, B as findScope, E as fromHtml, F as getScope, G as injectStyle, H as instances, I as leave, J as magic, K as magics, L as mountComponent, M as parse, N as query, O as ready, Q as refresh, T as removeStore, q as resource, U as rootScope, W as session, X as slideDown, Y as slideUp, Z as start, _ as storage, $ as store, a0 as storeNames, a1 as stringify, a2 as theme, a3 as toast, a4 as tokenize, a5 as url, a6 as viewTransition, a7 as walk, a8 as whenElement, a9 as whenReady } from './query-CKJ4oSpG.cjs';
1
+ import { c as core, V as VoodooCollection } from './query-Bja83lRJ.cjs';
2
+ export { A as App, a as AppOptions, C as ComponentDefinition, D as DirectiveBinding, b as DirectiveHooks, P as PRIORITY, R as Resource, d as ResourceOptions, S as Scope, e as VoodooConfig, f as VoodooPlugin, g as VoodooRuntimeError, h as VoodooSyntaxError, i as addCleanup, j as allStores, k as allowedGlobals, l as cache, m as clearParseCache, n as config, o as cookie, p as createApp, q as createResource, r as defineComponent, s as defineDirective, t as destroy, u as documentReady, v as ensureTokens, w as enter, x as evaluate, y as fadeIn, z as fadeOut, B as findScope, E as fromHtml, F as getScope, G as injectStyle, H as instances, I as leave, J as magic, K as magics, L as mountComponent, M as parse, N as query, O as ready, Q as refresh, T as removeStore, q as resource, U as rootScope, W as session, X as slideDown, Y as slideUp, Z as start, _ as storage, $ as store, a0 as storeNames, a1 as stringify, a2 as theme, a3 as toast, a4 as tokenize, a5 as url, a6 as viewTransition, a7 as walk, a8 as whenElement, a9 as whenReady } from './query-Bja83lRJ.cjs';
3
3
  export { EffectScope, computed, effect, effectScope, flushSync, isReactive, markRaw, nextTick, reactive, ref, shallowRef, stop, toRaw, unref, watch, watchEffect } from './reactivity.cjs';
4
4
  export { HttpError, HttpMethod, HttpResponse, RequestConfig, http, request } from './http.cjs';
5
5
  export { R as RoomOptions, a as RoomState, S as SocketMessage, b as SocketOptions, c as SocketRoom, d as SocketState, e as SocketTransport, V as VoodooSocket, f as createSocket, s as socket, g as socketSupported } from './index-DTllqUtj.cjs';
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { c as core, V as VoodooCollection } from './query-DQFRmu3u.js';
2
- export { A as App, a as AppOptions, C as ComponentDefinition, D as DirectiveBinding, b as DirectiveHooks, P as PRIORITY, R as Resource, d as ResourceOptions, S as Scope, e as VoodooConfig, f as VoodooPlugin, g as VoodooRuntimeError, h as VoodooSyntaxError, i as addCleanup, j as allStores, k as allowedGlobals, l as cache, m as clearParseCache, n as config, o as cookie, p as createApp, q as createResource, r as defineComponent, s as defineDirective, t as destroy, u as documentReady, v as ensureTokens, w as enter, x as evaluate, y as fadeIn, z as fadeOut, B as findScope, E as fromHtml, F as getScope, G as injectStyle, H as instances, I as leave, J as magic, K as magics, L as mountComponent, M as parse, N as query, O as ready, Q as refresh, T as removeStore, q as resource, U as rootScope, W as session, X as slideDown, Y as slideUp, Z as start, _ as storage, $ as store, a0 as storeNames, a1 as stringify, a2 as theme, a3 as toast, a4 as tokenize, a5 as url, a6 as viewTransition, a7 as walk, a8 as whenElement, a9 as whenReady } from './query-DQFRmu3u.js';
1
+ import { c as core, V as VoodooCollection } from './query-BeYufh-f.js';
2
+ export { A as App, a as AppOptions, C as ComponentDefinition, D as DirectiveBinding, b as DirectiveHooks, P as PRIORITY, R as Resource, d as ResourceOptions, S as Scope, e as VoodooConfig, f as VoodooPlugin, g as VoodooRuntimeError, h as VoodooSyntaxError, i as addCleanup, j as allStores, k as allowedGlobals, l as cache, m as clearParseCache, n as config, o as cookie, p as createApp, q as createResource, r as defineComponent, s as defineDirective, t as destroy, u as documentReady, v as ensureTokens, w as enter, x as evaluate, y as fadeIn, z as fadeOut, B as findScope, E as fromHtml, F as getScope, G as injectStyle, H as instances, I as leave, J as magic, K as magics, L as mountComponent, M as parse, N as query, O as ready, Q as refresh, T as removeStore, q as resource, U as rootScope, W as session, X as slideDown, Y as slideUp, Z as start, _ as storage, $ as store, a0 as storeNames, a1 as stringify, a2 as theme, a3 as toast, a4 as tokenize, a5 as url, a6 as viewTransition, a7 as walk, a8 as whenElement, a9 as whenReady } from './query-BeYufh-f.js';
3
3
  export { EffectScope, computed, effect, effectScope, flushSync, isReactive, markRaw, nextTick, reactive, ref, shallowRef, stop, toRaw, unref, watch, watchEffect } from './reactivity.js';
4
4
  export { HttpError, HttpMethod, HttpResponse, RequestConfig, http, request } from './http.js';
5
5
  export { R as RoomOptions, a as RoomState, S as SocketMessage, b as SocketOptions, c as SocketRoom, d as SocketState, e as SocketTransport, V as VoodooSocket, f as createSocket, s as socket, g as socketSupported } from './index-DTllqUtj.js';
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
- import { core, sound, hotkey, palette, registerMask, unmask, applyMask, masks, mask, clearErrors, showFieldError, showFormErrors, messages, serializeForm, validate, validator, dialog, prompt, confirm, alert, modal, VoodooCollection, fromHtml, ready2, query, viewTransition, defineComponent, storage, ensurePalette, instances, storeNames, allStores } from './chunk-4HQEOXTK.js';
2
- export { VoodooCollection, alert, allStores, applyMask, cache, clearErrors, clipboard, confirm, cookie, createApp, createResource, defineComponent, dialog, ready as documentReady, enter, fadeIn, fadeOut, fromHtml, hotkey, instances, leave, mask, masks, modal, mountComponent, network, palette, prompt, query, ready2 as ready, registerMask, removeStore, createResource as resource, screen, serializeForm, session, showFormErrors, slideDown, slideUp, sound, efeitos as soundEffects, storage, store, storeNames, theme, toast, unmask, url, validate, validator, viewTransition, whenElement, whenReady } from './chunk-4HQEOXTK.js';
1
+ import { core, sound, hotkey, palette, registerMask, unmask, applyMask, masks, mask, clearErrors, showFieldError, showFormErrors, messages, serializeForm, validate, validator, dialog, prompt, confirm, alert, modal, VoodooCollection, fromHtml, ready2, query, viewTransition, defineComponent, storage, ensurePalette, instances, storeNames, allStores } from './chunk-ABRZI32G.js';
2
+ export { VoodooCollection, alert, allStores, applyMask, cache, clearErrors, clipboard, confirm, cookie, createApp, createResource, defineComponent, dialog, ready as documentReady, enter, fadeIn, fadeOut, fromHtml, hotkey, instances, leave, mask, masks, modal, mountComponent, network, palette, prompt, query, ready2 as ready, registerMask, removeStore, createResource as resource, screen, serializeForm, session, showFormErrors, slideDown, slideUp, sound, efeitos as soundEffects, storage, store, storeNames, theme, toast, unmask, url, validate, validator, viewTransition, whenElement, whenReady } from './chunk-ABRZI32G.js';
3
3
  export { gpu, reflectWgsl } from './chunk-JZIYRIY6.js';
4
4
  import { http } from './chunk-PQZEVFVZ.js';
5
5
  export { HttpError, http, request } from './chunk-PQZEVFVZ.js';
6
6
  import { devtoolsBus } from './chunk-RJUNPXQF.js';
7
7
  export { createSocket, devtoolsBus, socket, socketSupported } from './chunk-RJUNPXQF.js';
8
- import { magic, markSkipChildren, destroy, readAttr, walk, hadDirectives, getScope, collectDirectives, findScope, getEffectScopes, evaluateIn } from './chunk-5CKGDARU.js';
9
- export { Scope, VoodooRuntimeError, VoodooSyntaxError, addCleanup, allowedGlobals, clearParseCache, destroy, evaluate, findScope, getScope, magic, magics, parse, refresh, rootScope, start, stringify, tokenize, walk } from './chunk-5CKGDARU.js';
8
+ import { magic, markSkipChildren, destroy, readAttr, walk, hadDirectives, getScope, collectDirectives, findScope, getEffectScopes, evaluateIn } from './chunk-34CGORMO.js';
9
+ export { Scope, VoodooRuntimeError, VoodooSyntaxError, addCleanup, allowedGlobals, clearParseCache, destroy, evaluate, findScope, getScope, magic, magics, parse, refresh, rootScope, start, stringify, tokenize, walk } from './chunk-34CGORMO.js';
10
10
  import { reactive, warn, handleError, queuePostFlush, nextTick } from './chunk-NNU6WOOU.js';
11
11
  export { EffectScope, computed, effect, effectScope, flushSync, isReactive, markRaw, nextTick, reactive, ref, shallowRef, stop, toRaw, unref, watch, watchEffect } from './chunk-NNU6WOOU.js';
12
12
  import { warnAlias } from './chunk-A2UOVQBP.js';
package/dist/socket.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { socketSupported, createSocket, socket } from './chunk-RJUNPXQF.js';
2
2
  export { ENGINE, SIO, createSocket, decodeEngine, decodeSocketIo, encodeSocketIo, engineURL, resolveSocketURL, socket, socketSupported } from './chunk-RJUNPXQF.js';
3
- import { evaluateIn, readAttr } from './chunk-5CKGDARU.js';
3
+ import { evaluateIn, readAttr } from './chunk-34CGORMO.js';
4
4
  import { reactive } from './chunk-NNU6WOOU.js';
5
5
  import { warnAlias } from './chunk-A2UOVQBP.js';
6
6
  import { parseDuration } from './chunk-234ZLC6W.js';
@@ -4349,6 +4349,7 @@ Suggestion: attribute expressions accept a single value. If the logic spans more
4349
4349
  element.setAttribute("data-type", type);
4350
4350
  element.setAttribute("role", type === "error" ? "alert" : "status");
4351
4351
  element.setAttribute("aria-live", type === "error" ? "assertive" : "polite");
4352
+ element.setAttribute("aria-atomic", "true");
4352
4353
  let closed = false;
4353
4354
  let timer = null;
4354
4355
  const close = () => {
@@ -104,7 +104,7 @@ Suggestion: attribute expressions accept a single value. If the logic spans more
104
104
  border-top-color:var(--v-primary,#6D3BF5);animation:v-spin .7s linear infinite}
105
105
  @keyframes v-spin{to{transform:rotate(360deg)}}
106
106
  @media (prefers-reduced-motion: reduce){.v-toast{transition:none}}
107
- `,Ua={success:"ok",error:"!",warning:"!",info:"i",loading:"",default:""},Pt=new Map,Re={duration:4e3,position:"top-right",max:6};function qa(e){Ue(),Te("toast",Ba);let t=Pt.get(e);return t&&t.isConnected||(t=document.createElement("div"),t.className="v-toaster",t.setAttribute("data-pos",e),t.setAttribute("role","region"),t.setAttribute("aria-label","Notifications"),document.body.appendChild(t),Pt.set(e,t)),t}function qe(e){var p,d,m,g;let t=(p=e.position)!=null?p:Re.position,n=(d=e.type)!=null?d:"default",r=(m=e.duration)!=null?m:n==="loading"?0:Re.duration,o=qa(t),i=gr("toast-"),s=document.createElement("div");s.className="v-toast",s.id=i,s.setAttribute("data-type",n),s.setAttribute("role",n==="error"?"alert":"status"),s.setAttribute("aria-live",n==="error"?"assertive":"polite");let a=!1,c=null,u=()=>{a||(a=!0,c&&clearTimeout(c),s.classList.add("v-out"),s.classList.remove("v-in"),setTimeout(()=>{var h;s.remove(),(h=e.onClose)==null||h.call(e),o.children.length||(o.remove(),Pt.delete(t))},220))},l=h=>{var _,k,y,I;let v=(_=h.type)!=null?_:n;if(s.setAttribute("data-type",v),h.html)s.innerHTML=h.html;else{s.textContent="";let H=document.createElement("span");H.className="v-toast-icon",H.setAttribute("aria-hidden","true"),H.textContent=(k=Ua[v])!=null?k:"",s.appendChild(H);let C=document.createElement("div");C.className="v-toast-body";let V=document.createElement("div");if(V.className="v-toast-title",V.textContent=(y=h.title)!=null?y:"",C.appendChild(V),h.description){let M=document.createElement("div");M.className="v-toast-desc",M.textContent=h.description,C.appendChild(M)}if(s.appendChild(C),h.action){let M=document.createElement("button");M.type="button",M.className="v-toast-action",M.textContent=h.action.label,M.addEventListener("click",()=>{var ee;(ee=h.action)==null||ee.onClick(),u()}),s.appendChild(M)}if(h.closable!==!1&&v!=="loading"){let M=document.createElement("button");M.type="button",M.className="v-toast-close",M.setAttribute("aria-label","Close notification"),M.innerHTML="&times;",M.addEventListener("click",u),s.appendChild(M)}}let S=(I=h.duration)!=null?I:r;if(S>0){let H=document.createElement("div");H.className="v-toast-bar",H.style.animation=`v-toast-bar ${S}ms linear forwards`,s.appendChild(H)}};for(l(e),o.appendChild(s),requestAnimationFrame(()=>s.classList.add("v-in"));o.children.length>Re.max;)(g=o.firstElementChild)==null||g.remove();let f=h=>{c&&clearTimeout(c),h>0&&(c=setTimeout(u,h))};return f(r),s.addEventListener("mouseenter",()=>{c&&clearTimeout(c)}),s.addEventListener("mouseleave",()=>f(r)),{id:i,close:u,update(h){var v;l({...e,...h}),h.duration!==void 0?f(h.duration):((v=h.type)!=null?v:n)!=="loading"&&f(Re.duration)}}}function lt(e,t){return typeof e=="string"?{title:e,type:t}:{type:t,...e}}var Ce=Object.assign((e,t={})=>qe({...lt(e,"default"),...t}),{success:(e,t={})=>qe({...lt(e,"success"),...t}),error:(e,t={})=>qe({...lt(e,"error"),...t}),warning:(e,t={})=>qe({...lt(e,"warning"),...t}),info:(e,t={})=>qe({...lt(e,"info"),...t}),loading:(e,t={})=>qe({...lt(e,"loading"),duration:0,...t}),async promise(e,t={}){var r,o,i;let n=qe({title:(r=t.loading)!=null?r:"Loading...",type:"loading",duration:0});try{let s=await e;return n.update({title:typeof t.success=="function"?t.success(s):(o=t.success)!=null?o:"Done",type:"success",duration:Re.duration}),s}catch(s){throw n.update({title:typeof t.error=="function"?t.error(s):(i=t.error)!=null?i:"Something went wrong",type:"error",duration:Re.duration}),s}},clear(){for(let[e,t]of Pt)t.remove(),Pt.delete(e)},configure(e){Object.assign(Re,e)},settings:Re});function ui(e,t=""){let n=r=>t+r;return{get(r,o){var i;try{let s=(i=e())==null?void 0:i.getItem(n(r));if(s==null)return o;try{return JSON.parse(s)}catch(a){return s}}catch(s){return o}},set(r,o){var i;try{return(i=e())==null||i.setItem(n(r),typeof o=="string"?o:JSON.stringify(o)),!0}catch(s){return!1}},remove(r){var o;try{(o=e())==null||o.removeItem(n(r))}catch(i){}},clear(){try{let r=e();if(!r)return;if(!t){r.clear();return}for(let o of Object.keys(r))o.startsWith(t)&&r.removeItem(o)}catch(r){}},has(r){var o;try{return((o=e())==null?void 0:o.getItem(n(r)))!==null}catch(i){return!1}},keys(){try{let r=e();return r?Object.keys(r).filter(o=>o.startsWith(t)).map(o=>o.slice(t.length)):[]}catch(r){return[]}}}}var ie=ui(()=>typeof localStorage!="undefined"?localStorage:void 0),pn=ui(()=>typeof sessionStorage!="undefined"?sessionStorage:void 0),mn={get(e){if(typeof document=="undefined")return;let t=`${encodeURIComponent(e)}=`;for(let n of document.cookie.split("; "))if(n.startsWith(t))return decodeURIComponent(n.slice(t.length))},set(e,t,n={}){var o,i;if(typeof document=="undefined")return;let r=`${encodeURIComponent(e)}=${encodeURIComponent(t)}`;if(n.expires!==void 0){let s=typeof n.expires=="number"?new Date(Date.now()+n.expires*864e5):n.expires;r+=`; expires=${s.toUTCString()}`}r+=`; path=${(o=n.path)!=null?o:"/"}`,n.domain&&(r+=`; domain=${n.domain}`),n.secure&&(r+="; secure"),r+=`; samesite=${(i=n.sameSite)!=null?i:"Lax"}`,document.cookie=r},remove(e,t={}){this.set(e,"",{...t,expires:-1})},has(e){return this.get(e)!==void 0}},hn={get(e,t){var n;return typeof location=="undefined"?t:(n=new URLSearchParams(location.search).get(e))!=null?n:t},all(){return typeof location=="undefined"?{}:Object.fromEntries(new URLSearchParams(location.search))},set(e,t,n=!0){if(typeof location=="undefined")return;let r=new URL(location.href);t===null||t===""?r.searchParams.delete(e):r.searchParams.set(e,String(t)),history[n?"replaceState":"pushState"]({},"",r.toString())},remove(e,t=!0){this.set(e,null,t)},merge(e,t=!0){if(typeof location=="undefined")return;let n=new URL(location.href);for(let[r,o]of Object.entries(e))o===null||o===""?n.searchParams.delete(r):n.searchParams.set(r,String(o));history[t?"replaceState":"pushState"]({},"",n.toString())}},dt=new Map,gn={set(e,t,n=0){return dt.set(e,{value:t,expires:n>0?Date.now()+n:1/0}),t},get(e,t){let n=dt.get(e);return n?n.expires<Date.now()?(dt.delete(e),t):n.value:t},has(e){return this.get(e)!==void 0},remove(e){dt.delete(e)},clear(){dt.clear()},async remember(e,t,n){let r=this.get(e);if(r!==void 0)return r;let o=await n();return this.set(e,o,t),o},get size(){return dt.size}},Tr="voodoo:theme",ft={get current(){var e;return(e=ie.get(Tr))!=null?e:"system"},get resolved(){let e=this.current;return e!=="system"?e:typeof matchMedia=="undefined"?"light":matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"},set(e){ie.set(Tr,e),this.apply()},toggle(){let e=this.resolved==="dark"?"light":"dark";return this.set(e),e},get chosen(){return ie.get(Tr)!=null},apply(){if(typeof document=="undefined"||!this.chosen)return;let e=this.current,t=document.documentElement;e==="system"?t.removeAttribute("data-theme"):t.setAttribute("data-theme",e),t.style.colorScheme=this.resolved,document.dispatchEvent(new CustomEvent("voodoo:theme",{detail:{theme:e,resolved:this.resolved}}))},init(){typeof document!="undefined"&&(this.apply(),matchMedia==null||matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{this.current==="system"&&this.apply()}))}};var se=F({width:0,height:0,mobile:!1,tablet:!1,desktop:!1,portrait:!1,landscape:!1,matches(e){return typeof matchMedia!="undefined"&&matchMedia(e).matches}});function xr(){typeof window!="undefined"&&(se.width=window.innerWidth,se.height=window.innerHeight,se.mobile=window.innerWidth<768,se.tablet=window.innerWidth>=768&&window.innerWidth<1024,se.desktop=window.innerWidth>=1024,se.portrait=window.innerHeight>=window.innerWidth,se.landscape=!se.portrait)}var _e=F({online:!0,type:"unknown",saveData:!1,slow:!1});function vn(){var t;if(typeof navigator=="undefined")return;_e.online=navigator.onLine;let e=navigator.connection;e&&(_e.type=(t=e.effectiveType)!=null?t:"unknown",_e.saveData=!!e.saveData,_e.slow=e.effectiveType==="slow-2g"||e.effectiveType==="2g")}var Er={async copy(e){var t;try{if((t=navigator.clipboard)!=null&&t.writeText)return await navigator.clipboard.writeText(e),!0}catch(n){}try{let n=document.createElement("textarea");n.value=e,n.setAttribute("readonly",""),n.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(n),n.select();let r=document.execCommand("copy");return n.remove(),r}catch(n){return!1}},async read(){try{return await navigator.clipboard.readText()}catch(e){return""}}},li=!1;function di(){var t,n;if(li||(li=!0,P("$el",r=>r.el),P("$refs",r=>r.allRefs),P("$data",r=>r.data),P("$root",r=>r.root.data),P("$parent",r=>{var o,i;return(i=(o=r.parent)==null?void 0:o.data)!=null?i:null}),P("$self",r=>{var o,i;return(i=(o=r.owner)==null?void 0:o.component)!=null?i:r.data}),P("$store",()=>un),P("$http",()=>oe),P("$toast",()=>Ce),P("$clipboard",()=>Er),P("$storage",()=>ie),P("$session",()=>pn),P("$cookie",()=>mn),P("$cache",()=>gn),P("$url",()=>hn),P("$theme",()=>ft),P("$device",()=>Be),P("$screen",()=>se),P("$network",()=>_e),P("$nextTick",()=>Oe),P("$watch",r=>(o,i)=>ue(()=>N(o,r,"$watch"),i)),P("$dispatch",r=>(o,i)=>{var a;((a=r.el)!=null?a:document).dispatchEvent(new CustomEvent(o,{detail:i,bubbles:!0}))}),P("$log",()=>(...r)=>{console.log("[Voodoo]",...r)}),typeof window=="undefined"))return;xr(),vn();let e=0;window.addEventListener("resize",()=>{cancelAnimationFrame(e),e=requestAnimationFrame(xr)}),window.addEventListener("orientationchange",xr),window.addEventListener("online",vn),window.addEventListener("offline",vn),(n=(t=navigator.connection)==null?void 0:t.addEventListener)==null||n.call(t,"change",vn)}Z();function kr(e,t){if(!t)return e;let n=e;for(let r of t.split(".")){if(n==null)return;n=n[r]}return n}function Sr(e){var n;let t=(n=e.response)==null?void 0:n.data;if(!t||typeof t!="object")return null;for(let r of["message","error","detail","msg"]){let o=t[r];if(typeof o=="string")return o}return null}function yn(e,t={}){let n=()=>typeof e=="function"?e():e,r=()=>typeof t.params=="function"?t.params():t.params,o=null,i=null,s=F({data:null,loading:!1,error:null,loaded:!1,async reload(){var u,l,f,p,d;let a=n();if(!a)return;o==null||o.abort();let c=o=new AbortController;s.loading=!0,s.error=null;try{let m=await oe.request({url:a,method:(t.method||"GET").toUpperCase(),params:r(),headers:t.headers,cache:t.cache||void 0,retry:(u=t.retry)!=null?u:0,timeout:(l=t.timeout)!=null?l:oe.defaults.timeout,signal:c.signal});if(c.signal.aborted)return;s.data=kr(m.data,t.jsonPath),s.loaded=!0,(f=t.onSuccess)==null||f.call(t,s.data)}catch(m){if(c.signal.aborted)return;let g=m instanceof X&&(p=Sr(m))!=null?p:m.message;s.error={name:"ResourceError",message:g},(d=t.onError)==null||d.call(t,m,g)}finally{c.signal.aborted||(s.loading=!1),o===c&&(o=null)}},set(a){s.data=a},stop(){o==null||o.abort(),o=null,s.loading=!1,i!==null&&(clearInterval(i),i=null)}});return t.poll&&t.poll>0&&(i=setInterval(()=>{(typeof document=="undefined"||document.visibilityState==="visible")&&s.reload()},t.poll)),t.manual||s.reload(),s}ut();ut();var fi=`
107
+ `,Ua={success:"ok",error:"!",warning:"!",info:"i",loading:"",default:""},Pt=new Map,Re={duration:4e3,position:"top-right",max:6};function qa(e){Ue(),Te("toast",Ba);let t=Pt.get(e);return t&&t.isConnected||(t=document.createElement("div"),t.className="v-toaster",t.setAttribute("data-pos",e),t.setAttribute("role","region"),t.setAttribute("aria-label","Notifications"),document.body.appendChild(t),Pt.set(e,t)),t}function qe(e){var p,d,m,g;let t=(p=e.position)!=null?p:Re.position,n=(d=e.type)!=null?d:"default",r=(m=e.duration)!=null?m:n==="loading"?0:Re.duration,o=qa(t),i=gr("toast-"),s=document.createElement("div");s.className="v-toast",s.id=i,s.setAttribute("data-type",n),s.setAttribute("role",n==="error"?"alert":"status"),s.setAttribute("aria-live",n==="error"?"assertive":"polite"),s.setAttribute("aria-atomic","true");let a=!1,c=null,u=()=>{a||(a=!0,c&&clearTimeout(c),s.classList.add("v-out"),s.classList.remove("v-in"),setTimeout(()=>{var h;s.remove(),(h=e.onClose)==null||h.call(e),o.children.length||(o.remove(),Pt.delete(t))},220))},l=h=>{var _,k,y,I;let v=(_=h.type)!=null?_:n;if(s.setAttribute("data-type",v),h.html)s.innerHTML=h.html;else{s.textContent="";let H=document.createElement("span");H.className="v-toast-icon",H.setAttribute("aria-hidden","true"),H.textContent=(k=Ua[v])!=null?k:"",s.appendChild(H);let C=document.createElement("div");C.className="v-toast-body";let V=document.createElement("div");if(V.className="v-toast-title",V.textContent=(y=h.title)!=null?y:"",C.appendChild(V),h.description){let M=document.createElement("div");M.className="v-toast-desc",M.textContent=h.description,C.appendChild(M)}if(s.appendChild(C),h.action){let M=document.createElement("button");M.type="button",M.className="v-toast-action",M.textContent=h.action.label,M.addEventListener("click",()=>{var ee;(ee=h.action)==null||ee.onClick(),u()}),s.appendChild(M)}if(h.closable!==!1&&v!=="loading"){let M=document.createElement("button");M.type="button",M.className="v-toast-close",M.setAttribute("aria-label","Close notification"),M.innerHTML="&times;",M.addEventListener("click",u),s.appendChild(M)}}let S=(I=h.duration)!=null?I:r;if(S>0){let H=document.createElement("div");H.className="v-toast-bar",H.style.animation=`v-toast-bar ${S}ms linear forwards`,s.appendChild(H)}};for(l(e),o.appendChild(s),requestAnimationFrame(()=>s.classList.add("v-in"));o.children.length>Re.max;)(g=o.firstElementChild)==null||g.remove();let f=h=>{c&&clearTimeout(c),h>0&&(c=setTimeout(u,h))};return f(r),s.addEventListener("mouseenter",()=>{c&&clearTimeout(c)}),s.addEventListener("mouseleave",()=>f(r)),{id:i,close:u,update(h){var v;l({...e,...h}),h.duration!==void 0?f(h.duration):((v=h.type)!=null?v:n)!=="loading"&&f(Re.duration)}}}function lt(e,t){return typeof e=="string"?{title:e,type:t}:{type:t,...e}}var Ce=Object.assign((e,t={})=>qe({...lt(e,"default"),...t}),{success:(e,t={})=>qe({...lt(e,"success"),...t}),error:(e,t={})=>qe({...lt(e,"error"),...t}),warning:(e,t={})=>qe({...lt(e,"warning"),...t}),info:(e,t={})=>qe({...lt(e,"info"),...t}),loading:(e,t={})=>qe({...lt(e,"loading"),duration:0,...t}),async promise(e,t={}){var r,o,i;let n=qe({title:(r=t.loading)!=null?r:"Loading...",type:"loading",duration:0});try{let s=await e;return n.update({title:typeof t.success=="function"?t.success(s):(o=t.success)!=null?o:"Done",type:"success",duration:Re.duration}),s}catch(s){throw n.update({title:typeof t.error=="function"?t.error(s):(i=t.error)!=null?i:"Something went wrong",type:"error",duration:Re.duration}),s}},clear(){for(let[e,t]of Pt)t.remove(),Pt.delete(e)},configure(e){Object.assign(Re,e)},settings:Re});function ui(e,t=""){let n=r=>t+r;return{get(r,o){var i;try{let s=(i=e())==null?void 0:i.getItem(n(r));if(s==null)return o;try{return JSON.parse(s)}catch(a){return s}}catch(s){return o}},set(r,o){var i;try{return(i=e())==null||i.setItem(n(r),typeof o=="string"?o:JSON.stringify(o)),!0}catch(s){return!1}},remove(r){var o;try{(o=e())==null||o.removeItem(n(r))}catch(i){}},clear(){try{let r=e();if(!r)return;if(!t){r.clear();return}for(let o of Object.keys(r))o.startsWith(t)&&r.removeItem(o)}catch(r){}},has(r){var o;try{return((o=e())==null?void 0:o.getItem(n(r)))!==null}catch(i){return!1}},keys(){try{let r=e();return r?Object.keys(r).filter(o=>o.startsWith(t)).map(o=>o.slice(t.length)):[]}catch(r){return[]}}}}var ie=ui(()=>typeof localStorage!="undefined"?localStorage:void 0),pn=ui(()=>typeof sessionStorage!="undefined"?sessionStorage:void 0),mn={get(e){if(typeof document=="undefined")return;let t=`${encodeURIComponent(e)}=`;for(let n of document.cookie.split("; "))if(n.startsWith(t))return decodeURIComponent(n.slice(t.length))},set(e,t,n={}){var o,i;if(typeof document=="undefined")return;let r=`${encodeURIComponent(e)}=${encodeURIComponent(t)}`;if(n.expires!==void 0){let s=typeof n.expires=="number"?new Date(Date.now()+n.expires*864e5):n.expires;r+=`; expires=${s.toUTCString()}`}r+=`; path=${(o=n.path)!=null?o:"/"}`,n.domain&&(r+=`; domain=${n.domain}`),n.secure&&(r+="; secure"),r+=`; samesite=${(i=n.sameSite)!=null?i:"Lax"}`,document.cookie=r},remove(e,t={}){this.set(e,"",{...t,expires:-1})},has(e){return this.get(e)!==void 0}},hn={get(e,t){var n;return typeof location=="undefined"?t:(n=new URLSearchParams(location.search).get(e))!=null?n:t},all(){return typeof location=="undefined"?{}:Object.fromEntries(new URLSearchParams(location.search))},set(e,t,n=!0){if(typeof location=="undefined")return;let r=new URL(location.href);t===null||t===""?r.searchParams.delete(e):r.searchParams.set(e,String(t)),history[n?"replaceState":"pushState"]({},"",r.toString())},remove(e,t=!0){this.set(e,null,t)},merge(e,t=!0){if(typeof location=="undefined")return;let n=new URL(location.href);for(let[r,o]of Object.entries(e))o===null||o===""?n.searchParams.delete(r):n.searchParams.set(r,String(o));history[t?"replaceState":"pushState"]({},"",n.toString())}},dt=new Map,gn={set(e,t,n=0){return dt.set(e,{value:t,expires:n>0?Date.now()+n:1/0}),t},get(e,t){let n=dt.get(e);return n?n.expires<Date.now()?(dt.delete(e),t):n.value:t},has(e){return this.get(e)!==void 0},remove(e){dt.delete(e)},clear(){dt.clear()},async remember(e,t,n){let r=this.get(e);if(r!==void 0)return r;let o=await n();return this.set(e,o,t),o},get size(){return dt.size}},Tr="voodoo:theme",ft={get current(){var e;return(e=ie.get(Tr))!=null?e:"system"},get resolved(){let e=this.current;return e!=="system"?e:typeof matchMedia=="undefined"?"light":matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"},set(e){ie.set(Tr,e),this.apply()},toggle(){let e=this.resolved==="dark"?"light":"dark";return this.set(e),e},get chosen(){return ie.get(Tr)!=null},apply(){if(typeof document=="undefined"||!this.chosen)return;let e=this.current,t=document.documentElement;e==="system"?t.removeAttribute("data-theme"):t.setAttribute("data-theme",e),t.style.colorScheme=this.resolved,document.dispatchEvent(new CustomEvent("voodoo:theme",{detail:{theme:e,resolved:this.resolved}}))},init(){typeof document!="undefined"&&(this.apply(),matchMedia==null||matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{this.current==="system"&&this.apply()}))}};var se=F({width:0,height:0,mobile:!1,tablet:!1,desktop:!1,portrait:!1,landscape:!1,matches(e){return typeof matchMedia!="undefined"&&matchMedia(e).matches}});function xr(){typeof window!="undefined"&&(se.width=window.innerWidth,se.height=window.innerHeight,se.mobile=window.innerWidth<768,se.tablet=window.innerWidth>=768&&window.innerWidth<1024,se.desktop=window.innerWidth>=1024,se.portrait=window.innerHeight>=window.innerWidth,se.landscape=!se.portrait)}var _e=F({online:!0,type:"unknown",saveData:!1,slow:!1});function vn(){var t;if(typeof navigator=="undefined")return;_e.online=navigator.onLine;let e=navigator.connection;e&&(_e.type=(t=e.effectiveType)!=null?t:"unknown",_e.saveData=!!e.saveData,_e.slow=e.effectiveType==="slow-2g"||e.effectiveType==="2g")}var Er={async copy(e){var t;try{if((t=navigator.clipboard)!=null&&t.writeText)return await navigator.clipboard.writeText(e),!0}catch(n){}try{let n=document.createElement("textarea");n.value=e,n.setAttribute("readonly",""),n.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(n),n.select();let r=document.execCommand("copy");return n.remove(),r}catch(n){return!1}},async read(){try{return await navigator.clipboard.readText()}catch(e){return""}}},li=!1;function di(){var t,n;if(li||(li=!0,P("$el",r=>r.el),P("$refs",r=>r.allRefs),P("$data",r=>r.data),P("$root",r=>r.root.data),P("$parent",r=>{var o,i;return(i=(o=r.parent)==null?void 0:o.data)!=null?i:null}),P("$self",r=>{var o,i;return(i=(o=r.owner)==null?void 0:o.component)!=null?i:r.data}),P("$store",()=>un),P("$http",()=>oe),P("$toast",()=>Ce),P("$clipboard",()=>Er),P("$storage",()=>ie),P("$session",()=>pn),P("$cookie",()=>mn),P("$cache",()=>gn),P("$url",()=>hn),P("$theme",()=>ft),P("$device",()=>Be),P("$screen",()=>se),P("$network",()=>_e),P("$nextTick",()=>Oe),P("$watch",r=>(o,i)=>ue(()=>N(o,r,"$watch"),i)),P("$dispatch",r=>(o,i)=>{var a;((a=r.el)!=null?a:document).dispatchEvent(new CustomEvent(o,{detail:i,bubbles:!0}))}),P("$log",()=>(...r)=>{console.log("[Voodoo]",...r)}),typeof window=="undefined"))return;xr(),vn();let e=0;window.addEventListener("resize",()=>{cancelAnimationFrame(e),e=requestAnimationFrame(xr)}),window.addEventListener("orientationchange",xr),window.addEventListener("online",vn),window.addEventListener("offline",vn),(n=(t=navigator.connection)==null?void 0:t.addEventListener)==null||n.call(t,"change",vn)}Z();function kr(e,t){if(!t)return e;let n=e;for(let r of t.split(".")){if(n==null)return;n=n[r]}return n}function Sr(e){var n;let t=(n=e.response)==null?void 0:n.data;if(!t||typeof t!="object")return null;for(let r of["message","error","detail","msg"]){let o=t[r];if(typeof o=="string")return o}return null}function yn(e,t={}){let n=()=>typeof e=="function"?e():e,r=()=>typeof t.params=="function"?t.params():t.params,o=null,i=null,s=F({data:null,loading:!1,error:null,loaded:!1,async reload(){var u,l,f,p,d;let a=n();if(!a)return;o==null||o.abort();let c=o=new AbortController;s.loading=!0,s.error=null;try{let m=await oe.request({url:a,method:(t.method||"GET").toUpperCase(),params:r(),headers:t.headers,cache:t.cache||void 0,retry:(u=t.retry)!=null?u:0,timeout:(l=t.timeout)!=null?l:oe.defaults.timeout,signal:c.signal});if(c.signal.aborted)return;s.data=kr(m.data,t.jsonPath),s.loaded=!0,(f=t.onSuccess)==null||f.call(t,s.data)}catch(m){if(c.signal.aborted)return;let g=m instanceof X&&(p=Sr(m))!=null?p:m.message;s.error={name:"ResourceError",message:g},(d=t.onError)==null||d.call(t,m,g)}finally{c.signal.aborted||(s.loading=!1),o===c&&(o=null)}},set(a){s.data=a},stop(){o==null||o.abort(),o=null,s.loading=!1,i!==null&&(clearInterval(i),i=null)}});return t.poll&&t.poll>0&&(i=setInterval(()=>{(typeof document=="undefined"||document.visibilityState==="visible")&&s.reload()},t.poll)),t.manual||s.reload(),s}ut();ut();var fi=`
108
108
  .v-fade-enter-active,.v-fade-leave-active{transition:opacity .22s var(--v-ease,ease)}
109
109
  .v-fade-enter-from,.v-fade-leave-to{opacity:0}
110
110
 
@@ -4404,6 +4404,7 @@ Suggestion: attribute expressions accept a single value. If the logic spans more
4404
4404
  element.setAttribute("data-type", type);
4405
4405
  element.setAttribute("role", type === "error" ? "alert" : "status");
4406
4406
  element.setAttribute("aria-live", type === "error" ? "assertive" : "polite");
4407
+ element.setAttribute("aria-atomic", "true");
4407
4408
  let closed = false;
4408
4409
  let timer = null;
4409
4410
  const close = () => {
@@ -104,7 +104,7 @@ Suggestion: attribute expressions accept a single value. If the logic spans more
104
104
  border-top-color:var(--v-primary,#6D3BF5);animation:v-spin .7s linear infinite}
105
105
  @keyframes v-spin{to{transform:rotate(360deg)}}
106
106
  @media (prefers-reduced-motion: reduce){.v-toast{transition:none}}
107
- `,xv={success:"ok",error:"!",warning:"!",info:"i",loading:"",default:""},Ir=new Map,Bt={duration:4e3,position:"top-right",max:6};function wv(e){he(),ne("toast",yv);let t=Ir.get(e);return t&&t.isConnected||(t=document.createElement("div"),t.className="v-toaster",t.setAttribute("data-pos",e),t.setAttribute("role","region"),t.setAttribute("aria-label","Notifications"),document.body.appendChild(t),Ir.set(e,t)),t}function ln(e){var p,f,m,h;let t=(p=e.position)!=null?p:Bt.position,n=(f=e.type)!=null?f:"default",r=(m=e.duration)!=null?m:n==="loading"?0:Bt.duration,o=wv(t),i=ae("toast-"),s=document.createElement("div");s.className="v-toast",s.id=i,s.setAttribute("data-type",n),s.setAttribute("role",n==="error"?"alert":"status"),s.setAttribute("aria-live",n==="error"?"assertive":"polite");let a=!1,l=null,c=()=>{a||(a=!0,l&&clearTimeout(l),s.classList.add("v-out"),s.classList.remove("v-in"),setTimeout(()=>{var v;s.remove(),(v=e.onClose)==null||v.call(e),o.children.length||(o.remove(),Ir.delete(t))},220))},d=v=>{var x,T,k,A;let g=(x=v.type)!=null?x:n;if(s.setAttribute("data-type",g),v.html)s.innerHTML=v.html;else{s.textContent="";let D=document.createElement("span");D.className="v-toast-icon",D.setAttribute("aria-hidden","true"),D.textContent=(T=xv[g])!=null?T:"",s.appendChild(D);let C=document.createElement("div");C.className="v-toast-body";let oe=document.createElement("div");if(oe.className="v-toast-title",oe.textContent=(k=v.title)!=null?k:"",C.appendChild(oe),v.description){let O=document.createElement("div");O.className="v-toast-desc",O.textContent=v.description,C.appendChild(O)}if(s.appendChild(C),v.action){let O=document.createElement("button");O.type="button",O.className="v-toast-action",O.textContent=v.action.label,O.addEventListener("click",()=>{var pe;(pe=v.action)==null||pe.onClick(),c()}),s.appendChild(O)}if(v.closable!==!1&&g!=="loading"){let O=document.createElement("button");O.type="button",O.className="v-toast-close",O.setAttribute("aria-label","Close notification"),O.innerHTML="&times;",O.addEventListener("click",c),s.appendChild(O)}}let b=(A=v.duration)!=null?A:r;if(b>0){let D=document.createElement("div");D.className="v-toast-bar",D.style.animation=`v-toast-bar ${b}ms linear forwards`,s.appendChild(D)}};for(d(e),o.appendChild(s),requestAnimationFrame(()=>s.classList.add("v-in"));o.children.length>Bt.max;)(h=o.firstElementChild)==null||h.remove();let u=v=>{l&&clearTimeout(l),v>0&&(l=setTimeout(c,v))};return u(r),s.addEventListener("mouseenter",()=>{l&&clearTimeout(l)}),s.addEventListener("mouseleave",()=>u(r)),{id:i,close:c,update(v){var g;d({...e,...v}),v.duration!==void 0?u(v.duration):((g=v.type)!=null?g:n)!=="loading"&&u(Bt.duration)}}}function qn(e,t){return typeof e=="string"?{title:e,type:t}:{type:t,...e}}var tt=Object.assign((e,t={})=>ln({...qn(e,"default"),...t}),{success:(e,t={})=>ln({...qn(e,"success"),...t}),error:(e,t={})=>ln({...qn(e,"error"),...t}),warning:(e,t={})=>ln({...qn(e,"warning"),...t}),info:(e,t={})=>ln({...qn(e,"info"),...t}),loading:(e,t={})=>ln({...qn(e,"loading"),duration:0,...t}),async promise(e,t={}){var r,o,i;let n=ln({title:(r=t.loading)!=null?r:"Loading...",type:"loading",duration:0});try{let s=await e;return n.update({title:typeof t.success=="function"?t.success(s):(o=t.success)!=null?o:"Done",type:"success",duration:Bt.duration}),s}catch(s){throw n.update({title:typeof t.error=="function"?t.error(s):(i=t.error)!=null?i:"Something went wrong",type:"error",duration:Bt.duration}),s}},clear(){for(let[e,t]of Ir)t.remove(),Ir.delete(e)},configure(e){Object.assign(Bt,e)},settings:Bt});function Ad(e,t=""){let n=r=>t+r;return{get(r,o){var i;try{let s=(i=e())==null?void 0:i.getItem(n(r));if(s==null)return o;try{return JSON.parse(s)}catch(a){return s}}catch(s){return o}},set(r,o){var i;try{return(i=e())==null||i.setItem(n(r),typeof o=="string"?o:JSON.stringify(o)),!0}catch(s){return!1}},remove(r){var o;try{(o=e())==null||o.removeItem(n(r))}catch(i){}},clear(){try{let r=e();if(!r)return;if(!t){r.clear();return}for(let o of Object.keys(r))o.startsWith(t)&&r.removeItem(o)}catch(r){}},has(r){var o;try{return((o=e())==null?void 0:o.getItem(n(r)))!==null}catch(i){return!1}},keys(){try{let r=e();return r?Object.keys(r).filter(o=>o.startsWith(t)).map(o=>o.slice(t.length)):[]}catch(r){return[]}}}}var ue=Ad(()=>typeof localStorage!="undefined"?localStorage:void 0),ei=Ad(()=>typeof sessionStorage!="undefined"?sessionStorage:void 0),ti={get(e){if(typeof document=="undefined")return;let t=`${encodeURIComponent(e)}=`;for(let n of document.cookie.split("; "))if(n.startsWith(t))return decodeURIComponent(n.slice(t.length))},set(e,t,n={}){var o,i;if(typeof document=="undefined")return;let r=`${encodeURIComponent(e)}=${encodeURIComponent(t)}`;if(n.expires!==void 0){let s=typeof n.expires=="number"?new Date(Date.now()+n.expires*864e5):n.expires;r+=`; expires=${s.toUTCString()}`}r+=`; path=${(o=n.path)!=null?o:"/"}`,n.domain&&(r+=`; domain=${n.domain}`),n.secure&&(r+="; secure"),r+=`; samesite=${(i=n.sameSite)!=null?i:"Lax"}`,document.cookie=r},remove(e,t={}){this.set(e,"",{...t,expires:-1})},has(e){return this.get(e)!==void 0}},jt={get(e,t){var n;return typeof location=="undefined"?t:(n=new URLSearchParams(location.search).get(e))!=null?n:t},all(){return typeof location=="undefined"?{}:Object.fromEntries(new URLSearchParams(location.search))},set(e,t,n=!0){if(typeof location=="undefined")return;let r=new URL(location.href);t===null||t===""?r.searchParams.delete(e):r.searchParams.set(e,String(t)),history[n?"replaceState":"pushState"]({},"",r.toString())},remove(e,t=!0){this.set(e,null,t)},merge(e,t=!0){if(typeof location=="undefined")return;let n=new URL(location.href);for(let[r,o]of Object.entries(e))o===null||o===""?n.searchParams.delete(r):n.searchParams.set(r,String(o));history[t?"replaceState":"pushState"]({},"",n.toString())}},Vn=new Map,ni={set(e,t,n=0){return Vn.set(e,{value:t,expires:n>0?Date.now()+n:1/0}),t},get(e,t){let n=Vn.get(e);return n?n.expires<Date.now()?(Vn.delete(e),t):n.value:t},has(e){return this.get(e)!==void 0},remove(e){Vn.delete(e)},clear(){Vn.clear()},async remember(e,t,n){let r=this.get(e);if(r!==void 0)return r;let o=await n();return this.set(e,o,t),o},get size(){return Vn.size}},da="voodoo:theme",ut={get current(){var e;return(e=ue.get(da))!=null?e:"system"},get resolved(){let e=this.current;return e!=="system"?e:typeof matchMedia=="undefined"?"light":matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"},set(e){ue.set(da,e),this.apply()},toggle(){let e=this.resolved==="dark"?"light":"dark";return this.set(e),e},get chosen(){return ue.get(da)!=null},apply(){if(typeof document=="undefined"||!this.chosen)return;let e=this.current,t=document.documentElement;e==="system"?t.removeAttribute("data-theme"):t.setAttribute("data-theme",e),t.style.colorScheme=this.resolved,document.dispatchEvent(new CustomEvent("voodoo:theme",{detail:{theme:e,resolved:this.resolved}}))},init(){typeof document!="undefined"&&(this.apply(),matchMedia==null||matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{this.current==="system"&&this.apply()}))}};var Ke=Z({width:0,height:0,mobile:!1,tablet:!1,desktop:!1,portrait:!1,landscape:!1,matches(e){return typeof matchMedia!="undefined"&&matchMedia(e).matches}});function ua(){typeof window!="undefined"&&(Ke.width=window.innerWidth,Ke.height=window.innerHeight,Ke.mobile=window.innerWidth<768,Ke.tablet=window.innerWidth>=768&&window.innerWidth<1024,Ke.desktop=window.innerWidth>=1024,Ke.portrait=window.innerHeight>=window.innerWidth,Ke.landscape=!Ke.portrait)}var qt=Z({online:!0,type:"unknown",saveData:!1,slow:!1});function ri(){var t;if(typeof navigator=="undefined")return;qt.online=navigator.onLine;let e=navigator.connection;e&&(qt.type=(t=e.effectiveType)!=null?t:"unknown",qt.saveData=!!e.saveData,qt.slow=e.effectiveType==="slow-2g"||e.effectiveType==="2g")}var oi={async copy(e){var t;try{if((t=navigator.clipboard)!=null&&t.writeText)return await navigator.clipboard.writeText(e),!0}catch(n){}try{let n=document.createElement("textarea");n.value=e,n.setAttribute("readonly",""),n.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(n),n.select();let r=document.execCommand("copy");return n.remove(),r}catch(n){return!1}},async read(){try{return await navigator.clipboard.readText()}catch(e){return""}}},Cd=!1;function Rd(){var t,n;if(Cd||(Cd=!0,P("$el",r=>r.el),P("$refs",r=>r.allRefs),P("$data",r=>r.data),P("$root",r=>r.root.data),P("$parent",r=>{var o,i;return(i=(o=r.parent)==null?void 0:o.data)!=null?i:null}),P("$self",r=>{var o,i;return(i=(o=r.owner)==null?void 0:o.component)!=null?i:r.data}),P("$store",()=>Fn),P("$http",()=>ve),P("$toast",()=>tt),P("$clipboard",()=>oi),P("$storage",()=>ue),P("$session",()=>ei),P("$cookie",()=>ti),P("$cache",()=>ni),P("$url",()=>jt),P("$theme",()=>ut),P("$device",()=>me),P("$screen",()=>Ke),P("$network",()=>qt),P("$nextTick",()=>at),P("$watch",r=>(o,i)=>Ne(()=>q(o,r,"$watch"),i)),P("$dispatch",r=>(o,i)=>{var a;((a=r.el)!=null?a:document).dispatchEvent(new CustomEvent(o,{detail:i,bubbles:!0}))}),P("$log",()=>(...r)=>{console.log("[Voodoo]",...r)}),typeof window=="undefined"))return;ua(),ri();let e=0;window.addEventListener("resize",()=>{cancelAnimationFrame(e),e=requestAnimationFrame(ua)}),window.addEventListener("orientationchange",ua),window.addEventListener("online",ri),window.addEventListener("offline",ri),(n=(t=navigator.connection)==null?void 0:t.addEventListener)==null||n.call(t,"change",ri)}be();function fa(e,t){if(!t)return e;let n=e;for(let r of t.split(".")){if(n==null)return;n=n[r]}return n}function pa(e){var n;let t=(n=e.response)==null?void 0:n.data;if(!t||typeof t!="object")return null;for(let r of["message","error","detail","msg"]){let o=t[r];if(typeof o=="string")return o}return null}function ii(e,t={}){let n=()=>typeof e=="function"?e():e,r=()=>typeof t.params=="function"?t.params():t.params,o=null,i=null,s=Z({data:null,loading:!1,error:null,loaded:!1,async reload(){var c,d,u,p,f;let a=n();if(!a)return;o==null||o.abort();let l=o=new AbortController;s.loading=!0,s.error=null;try{let m=await ve.request({url:a,method:(t.method||"GET").toUpperCase(),params:r(),headers:t.headers,cache:t.cache||void 0,retry:(c=t.retry)!=null?c:0,timeout:(d=t.timeout)!=null?d:ve.defaults.timeout,signal:l.signal});if(l.signal.aborted)return;s.data=fa(m.data,t.jsonPath),s.loaded=!0,(u=t.onSuccess)==null||u.call(t,s.data)}catch(m){if(l.signal.aborted)return;let h=m instanceof Ee&&(p=pa(m))!=null?p:m.message;s.error={name:"ResourceError",message:h},(f=t.onError)==null||f.call(t,m,h)}finally{l.signal.aborted||(s.loading=!1),o===l&&(o=null)}},set(a){s.data=a},stop(){o==null||o.abort(),o=null,s.loading=!1,i!==null&&(clearInterval(i),i=null)}});return t.poll&&t.poll>0&&(i=setInterval(()=>{(typeof document=="undefined"||document.visibilityState==="visible")&&s.reload()},t.poll)),t.manual||s.reload(),s}He();He();var $d=`
107
+ `,xv={success:"ok",error:"!",warning:"!",info:"i",loading:"",default:""},Ir=new Map,Bt={duration:4e3,position:"top-right",max:6};function wv(e){he(),ne("toast",yv);let t=Ir.get(e);return t&&t.isConnected||(t=document.createElement("div"),t.className="v-toaster",t.setAttribute("data-pos",e),t.setAttribute("role","region"),t.setAttribute("aria-label","Notifications"),document.body.appendChild(t),Ir.set(e,t)),t}function ln(e){var p,f,m,h;let t=(p=e.position)!=null?p:Bt.position,n=(f=e.type)!=null?f:"default",r=(m=e.duration)!=null?m:n==="loading"?0:Bt.duration,o=wv(t),i=ae("toast-"),s=document.createElement("div");s.className="v-toast",s.id=i,s.setAttribute("data-type",n),s.setAttribute("role",n==="error"?"alert":"status"),s.setAttribute("aria-live",n==="error"?"assertive":"polite"),s.setAttribute("aria-atomic","true");let a=!1,l=null,c=()=>{a||(a=!0,l&&clearTimeout(l),s.classList.add("v-out"),s.classList.remove("v-in"),setTimeout(()=>{var v;s.remove(),(v=e.onClose)==null||v.call(e),o.children.length||(o.remove(),Ir.delete(t))},220))},d=v=>{var x,T,k,A;let g=(x=v.type)!=null?x:n;if(s.setAttribute("data-type",g),v.html)s.innerHTML=v.html;else{s.textContent="";let D=document.createElement("span");D.className="v-toast-icon",D.setAttribute("aria-hidden","true"),D.textContent=(T=xv[g])!=null?T:"",s.appendChild(D);let C=document.createElement("div");C.className="v-toast-body";let oe=document.createElement("div");if(oe.className="v-toast-title",oe.textContent=(k=v.title)!=null?k:"",C.appendChild(oe),v.description){let O=document.createElement("div");O.className="v-toast-desc",O.textContent=v.description,C.appendChild(O)}if(s.appendChild(C),v.action){let O=document.createElement("button");O.type="button",O.className="v-toast-action",O.textContent=v.action.label,O.addEventListener("click",()=>{var pe;(pe=v.action)==null||pe.onClick(),c()}),s.appendChild(O)}if(v.closable!==!1&&g!=="loading"){let O=document.createElement("button");O.type="button",O.className="v-toast-close",O.setAttribute("aria-label","Close notification"),O.innerHTML="&times;",O.addEventListener("click",c),s.appendChild(O)}}let b=(A=v.duration)!=null?A:r;if(b>0){let D=document.createElement("div");D.className="v-toast-bar",D.style.animation=`v-toast-bar ${b}ms linear forwards`,s.appendChild(D)}};for(d(e),o.appendChild(s),requestAnimationFrame(()=>s.classList.add("v-in"));o.children.length>Bt.max;)(h=o.firstElementChild)==null||h.remove();let u=v=>{l&&clearTimeout(l),v>0&&(l=setTimeout(c,v))};return u(r),s.addEventListener("mouseenter",()=>{l&&clearTimeout(l)}),s.addEventListener("mouseleave",()=>u(r)),{id:i,close:c,update(v){var g;d({...e,...v}),v.duration!==void 0?u(v.duration):((g=v.type)!=null?g:n)!=="loading"&&u(Bt.duration)}}}function qn(e,t){return typeof e=="string"?{title:e,type:t}:{type:t,...e}}var tt=Object.assign((e,t={})=>ln({...qn(e,"default"),...t}),{success:(e,t={})=>ln({...qn(e,"success"),...t}),error:(e,t={})=>ln({...qn(e,"error"),...t}),warning:(e,t={})=>ln({...qn(e,"warning"),...t}),info:(e,t={})=>ln({...qn(e,"info"),...t}),loading:(e,t={})=>ln({...qn(e,"loading"),duration:0,...t}),async promise(e,t={}){var r,o,i;let n=ln({title:(r=t.loading)!=null?r:"Loading...",type:"loading",duration:0});try{let s=await e;return n.update({title:typeof t.success=="function"?t.success(s):(o=t.success)!=null?o:"Done",type:"success",duration:Bt.duration}),s}catch(s){throw n.update({title:typeof t.error=="function"?t.error(s):(i=t.error)!=null?i:"Something went wrong",type:"error",duration:Bt.duration}),s}},clear(){for(let[e,t]of Ir)t.remove(),Ir.delete(e)},configure(e){Object.assign(Bt,e)},settings:Bt});function Ad(e,t=""){let n=r=>t+r;return{get(r,o){var i;try{let s=(i=e())==null?void 0:i.getItem(n(r));if(s==null)return o;try{return JSON.parse(s)}catch(a){return s}}catch(s){return o}},set(r,o){var i;try{return(i=e())==null||i.setItem(n(r),typeof o=="string"?o:JSON.stringify(o)),!0}catch(s){return!1}},remove(r){var o;try{(o=e())==null||o.removeItem(n(r))}catch(i){}},clear(){try{let r=e();if(!r)return;if(!t){r.clear();return}for(let o of Object.keys(r))o.startsWith(t)&&r.removeItem(o)}catch(r){}},has(r){var o;try{return((o=e())==null?void 0:o.getItem(n(r)))!==null}catch(i){return!1}},keys(){try{let r=e();return r?Object.keys(r).filter(o=>o.startsWith(t)).map(o=>o.slice(t.length)):[]}catch(r){return[]}}}}var ue=Ad(()=>typeof localStorage!="undefined"?localStorage:void 0),ei=Ad(()=>typeof sessionStorage!="undefined"?sessionStorage:void 0),ti={get(e){if(typeof document=="undefined")return;let t=`${encodeURIComponent(e)}=`;for(let n of document.cookie.split("; "))if(n.startsWith(t))return decodeURIComponent(n.slice(t.length))},set(e,t,n={}){var o,i;if(typeof document=="undefined")return;let r=`${encodeURIComponent(e)}=${encodeURIComponent(t)}`;if(n.expires!==void 0){let s=typeof n.expires=="number"?new Date(Date.now()+n.expires*864e5):n.expires;r+=`; expires=${s.toUTCString()}`}r+=`; path=${(o=n.path)!=null?o:"/"}`,n.domain&&(r+=`; domain=${n.domain}`),n.secure&&(r+="; secure"),r+=`; samesite=${(i=n.sameSite)!=null?i:"Lax"}`,document.cookie=r},remove(e,t={}){this.set(e,"",{...t,expires:-1})},has(e){return this.get(e)!==void 0}},jt={get(e,t){var n;return typeof location=="undefined"?t:(n=new URLSearchParams(location.search).get(e))!=null?n:t},all(){return typeof location=="undefined"?{}:Object.fromEntries(new URLSearchParams(location.search))},set(e,t,n=!0){if(typeof location=="undefined")return;let r=new URL(location.href);t===null||t===""?r.searchParams.delete(e):r.searchParams.set(e,String(t)),history[n?"replaceState":"pushState"]({},"",r.toString())},remove(e,t=!0){this.set(e,null,t)},merge(e,t=!0){if(typeof location=="undefined")return;let n=new URL(location.href);for(let[r,o]of Object.entries(e))o===null||o===""?n.searchParams.delete(r):n.searchParams.set(r,String(o));history[t?"replaceState":"pushState"]({},"",n.toString())}},Vn=new Map,ni={set(e,t,n=0){return Vn.set(e,{value:t,expires:n>0?Date.now()+n:1/0}),t},get(e,t){let n=Vn.get(e);return n?n.expires<Date.now()?(Vn.delete(e),t):n.value:t},has(e){return this.get(e)!==void 0},remove(e){Vn.delete(e)},clear(){Vn.clear()},async remember(e,t,n){let r=this.get(e);if(r!==void 0)return r;let o=await n();return this.set(e,o,t),o},get size(){return Vn.size}},da="voodoo:theme",ut={get current(){var e;return(e=ue.get(da))!=null?e:"system"},get resolved(){let e=this.current;return e!=="system"?e:typeof matchMedia=="undefined"?"light":matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"},set(e){ue.set(da,e),this.apply()},toggle(){let e=this.resolved==="dark"?"light":"dark";return this.set(e),e},get chosen(){return ue.get(da)!=null},apply(){if(typeof document=="undefined"||!this.chosen)return;let e=this.current,t=document.documentElement;e==="system"?t.removeAttribute("data-theme"):t.setAttribute("data-theme",e),t.style.colorScheme=this.resolved,document.dispatchEvent(new CustomEvent("voodoo:theme",{detail:{theme:e,resolved:this.resolved}}))},init(){typeof document!="undefined"&&(this.apply(),matchMedia==null||matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{this.current==="system"&&this.apply()}))}};var Ke=Z({width:0,height:0,mobile:!1,tablet:!1,desktop:!1,portrait:!1,landscape:!1,matches(e){return typeof matchMedia!="undefined"&&matchMedia(e).matches}});function ua(){typeof window!="undefined"&&(Ke.width=window.innerWidth,Ke.height=window.innerHeight,Ke.mobile=window.innerWidth<768,Ke.tablet=window.innerWidth>=768&&window.innerWidth<1024,Ke.desktop=window.innerWidth>=1024,Ke.portrait=window.innerHeight>=window.innerWidth,Ke.landscape=!Ke.portrait)}var qt=Z({online:!0,type:"unknown",saveData:!1,slow:!1});function ri(){var t;if(typeof navigator=="undefined")return;qt.online=navigator.onLine;let e=navigator.connection;e&&(qt.type=(t=e.effectiveType)!=null?t:"unknown",qt.saveData=!!e.saveData,qt.slow=e.effectiveType==="slow-2g"||e.effectiveType==="2g")}var oi={async copy(e){var t;try{if((t=navigator.clipboard)!=null&&t.writeText)return await navigator.clipboard.writeText(e),!0}catch(n){}try{let n=document.createElement("textarea");n.value=e,n.setAttribute("readonly",""),n.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(n),n.select();let r=document.execCommand("copy");return n.remove(),r}catch(n){return!1}},async read(){try{return await navigator.clipboard.readText()}catch(e){return""}}},Cd=!1;function Rd(){var t,n;if(Cd||(Cd=!0,P("$el",r=>r.el),P("$refs",r=>r.allRefs),P("$data",r=>r.data),P("$root",r=>r.root.data),P("$parent",r=>{var o,i;return(i=(o=r.parent)==null?void 0:o.data)!=null?i:null}),P("$self",r=>{var o,i;return(i=(o=r.owner)==null?void 0:o.component)!=null?i:r.data}),P("$store",()=>Fn),P("$http",()=>ve),P("$toast",()=>tt),P("$clipboard",()=>oi),P("$storage",()=>ue),P("$session",()=>ei),P("$cookie",()=>ti),P("$cache",()=>ni),P("$url",()=>jt),P("$theme",()=>ut),P("$device",()=>me),P("$screen",()=>Ke),P("$network",()=>qt),P("$nextTick",()=>at),P("$watch",r=>(o,i)=>Ne(()=>q(o,r,"$watch"),i)),P("$dispatch",r=>(o,i)=>{var a;((a=r.el)!=null?a:document).dispatchEvent(new CustomEvent(o,{detail:i,bubbles:!0}))}),P("$log",()=>(...r)=>{console.log("[Voodoo]",...r)}),typeof window=="undefined"))return;ua(),ri();let e=0;window.addEventListener("resize",()=>{cancelAnimationFrame(e),e=requestAnimationFrame(ua)}),window.addEventListener("orientationchange",ua),window.addEventListener("online",ri),window.addEventListener("offline",ri),(n=(t=navigator.connection)==null?void 0:t.addEventListener)==null||n.call(t,"change",ri)}be();function fa(e,t){if(!t)return e;let n=e;for(let r of t.split(".")){if(n==null)return;n=n[r]}return n}function pa(e){var n;let t=(n=e.response)==null?void 0:n.data;if(!t||typeof t!="object")return null;for(let r of["message","error","detail","msg"]){let o=t[r];if(typeof o=="string")return o}return null}function ii(e,t={}){let n=()=>typeof e=="function"?e():e,r=()=>typeof t.params=="function"?t.params():t.params,o=null,i=null,s=Z({data:null,loading:!1,error:null,loaded:!1,async reload(){var c,d,u,p,f;let a=n();if(!a)return;o==null||o.abort();let l=o=new AbortController;s.loading=!0,s.error=null;try{let m=await ve.request({url:a,method:(t.method||"GET").toUpperCase(),params:r(),headers:t.headers,cache:t.cache||void 0,retry:(c=t.retry)!=null?c:0,timeout:(d=t.timeout)!=null?d:ve.defaults.timeout,signal:l.signal});if(l.signal.aborted)return;s.data=fa(m.data,t.jsonPath),s.loaded=!0,(u=t.onSuccess)==null||u.call(t,s.data)}catch(m){if(l.signal.aborted)return;let h=m instanceof Ee&&(p=pa(m))!=null?p:m.message;s.error={name:"ResourceError",message:h},(f=t.onError)==null||f.call(t,m,h)}finally{l.signal.aborted||(s.loading=!1),o===l&&(o=null)}},set(a){s.data=a},stop(){o==null||o.abort(),o=null,s.loading=!1,i!==null&&(clearInterval(i),i=null)}});return t.poll&&t.poll>0&&(i=setInterval(()=>{(typeof document=="undefined"||document.visibilityState==="visible")&&s.reload()},t.poll)),t.manual||s.reload(),s}He();He();var $d=`
108
108
  .v-fade-enter-active,.v-fade-leave-active{transition:opacity .22s var(--v-ease,ease)}
109
109
  .v-fade-enter-from,.v-fade-leave-to{opacity:0}
110
110
 
package/dist/voodoo.js CHANGED
@@ -4395,6 +4395,7 @@ Suggestion: attribute expressions accept a single value. If the logic spans more
4395
4395
  element.setAttribute("data-type", type);
4396
4396
  element.setAttribute("role", type === "error" ? "alert" : "status");
4397
4397
  element.setAttribute("aria-live", type === "error" ? "assertive" : "polite");
4398
+ element.setAttribute("aria-atomic", "true");
4398
4399
  let closed = false;
4399
4400
  let timer = null;
4400
4401
  const close = () => {
@@ -104,7 +104,7 @@ Suggestion: attribute expressions accept a single value. If the logic spans more
104
104
  border-top-color:var(--v-primary,#6D3BF5);animation:v-spin .7s linear infinite}
105
105
  @keyframes v-spin{to{transform:rotate(360deg)}}
106
106
  @media (prefers-reduced-motion: reduce){.v-toast{transition:none}}
107
- `,hd={success:"ok",error:"!",warning:"!",info:"i",loading:"",default:""},Mn=new Map,st={duration:4e3,position:"top-right",max:6};function yd(e){ie(),G("toast",vd);let t=Mn.get(e);return t&&t.isConnected||(t=document.createElement("div"),t.className="v-toaster",t.setAttribute("data-pos",e),t.setAttribute("role","region"),t.setAttribute("aria-label","Notifications"),document.body.appendChild(t),Mn.set(e,t)),t}function Lt(e){var p,f,m,v;let t=(p=e.position)!=null?p:st.position,n=(f=e.type)!=null?f:"default",r=(m=e.duration)!=null?m:n==="loading"?0:st.duration,o=yd(t),i=ue("toast-"),s=document.createElement("div");s.className="v-toast",s.id=i,s.setAttribute("data-type",n),s.setAttribute("role",n==="error"?"alert":"status"),s.setAttribute("aria-live",n==="error"?"assertive":"polite");let a=!1,c=null,l=()=>{a||(a=!0,c&&clearTimeout(c),s.classList.add("v-out"),s.classList.remove("v-in"),setTimeout(()=>{var g;s.remove(),(g=e.onClose)==null||g.call(e),o.children.length||(o.remove(),Mn.delete(t))},220))},u=g=>{var w,T,x,M;let h=(w=g.type)!=null?w:n;if(s.setAttribute("data-type",h),g.html)s.innerHTML=g.html;else{s.textContent="";let N=document.createElement("span");N.className="v-toast-icon",N.setAttribute("aria-hidden","true"),N.textContent=(T=hd[h])!=null?T:"",s.appendChild(N);let R=document.createElement("div");R.className="v-toast-body";let ae=document.createElement("div");if(ae.className="v-toast-title",ae.textContent=(x=g.title)!=null?x:"",R.appendChild(ae),g.description){let B=document.createElement("div");B.className="v-toast-desc",B.textContent=g.description,R.appendChild(B)}if(s.appendChild(R),g.action){let B=document.createElement("button");B.type="button",B.className="v-toast-action",B.textContent=g.action.label,B.addEventListener("click",()=>{var we;(we=g.action)==null||we.onClick(),l()}),s.appendChild(B)}if(g.closable!==!1&&h!=="loading"){let B=document.createElement("button");B.type="button",B.className="v-toast-close",B.setAttribute("aria-label","Close notification"),B.innerHTML="&times;",B.addEventListener("click",l),s.appendChild(B)}}let y=(M=g.duration)!=null?M:r;if(y>0){let N=document.createElement("div");N.className="v-toast-bar",N.style.animation=`v-toast-bar ${y}ms linear forwards`,s.appendChild(N)}};for(u(e),o.appendChild(s),requestAnimationFrame(()=>s.classList.add("v-in"));o.children.length>st.max;)(v=o.firstElementChild)==null||v.remove();let d=g=>{c&&clearTimeout(c),g>0&&(c=setTimeout(l,g))};return d(r),s.addEventListener("mouseenter",()=>{c&&clearTimeout(c)}),s.addEventListener("mouseleave",()=>d(r)),{id:i,close:l,update(g){var h;u({...e,...g}),g.duration!==void 0?d(g.duration):((h=g.type)!=null?h:n)!=="loading"&&d(st.duration)}}}function Jt(e,t){return typeof e=="string"?{title:e,type:t}:{type:t,...e}}var Re=Object.assign((e,t={})=>Lt({...Jt(e,"default"),...t}),{success:(e,t={})=>Lt({...Jt(e,"success"),...t}),error:(e,t={})=>Lt({...Jt(e,"error"),...t}),warning:(e,t={})=>Lt({...Jt(e,"warning"),...t}),info:(e,t={})=>Lt({...Jt(e,"info"),...t}),loading:(e,t={})=>Lt({...Jt(e,"loading"),duration:0,...t}),async promise(e,t={}){var r,o,i;let n=Lt({title:(r=t.loading)!=null?r:"Loading...",type:"loading",duration:0});try{let s=await e;return n.update({title:typeof t.success=="function"?t.success(s):(o=t.success)!=null?o:"Done",type:"success",duration:st.duration}),s}catch(s){throw n.update({title:typeof t.error=="function"?t.error(s):(i=t.error)!=null?i:"Something went wrong",type:"error",duration:st.duration}),s}},clear(){for(let[e,t]of Mn)t.remove(),Mn.delete(e)},configure(e){Object.assign(st,e)},settings:st});function Pa(e,t=""){let n=r=>t+r;return{get(r,o){var i;try{let s=(i=e())==null?void 0:i.getItem(n(r));if(s==null)return o;try{return JSON.parse(s)}catch(a){return s}}catch(s){return o}},set(r,o){var i;try{return(i=e())==null||i.setItem(n(r),typeof o=="string"?o:JSON.stringify(o)),!0}catch(s){return!1}},remove(r){var o;try{(o=e())==null||o.removeItem(n(r))}catch(i){}},clear(){try{let r=e();if(!r)return;if(!t){r.clear();return}for(let o of Object.keys(r))o.startsWith(t)&&r.removeItem(o)}catch(r){}},has(r){var o;try{return((o=e())==null?void 0:o.getItem(n(r)))!==null}catch(i){return!1}},keys(){try{let r=e();return r?Object.keys(r).filter(o=>o.startsWith(t)).map(o=>o.slice(t.length)):[]}catch(r){return[]}}}}var Q=Pa(()=>typeof localStorage!="undefined"?localStorage:void 0),wr=Pa(()=>typeof sessionStorage!="undefined"?sessionStorage:void 0),Er={get(e){if(typeof document=="undefined")return;let t=`${encodeURIComponent(e)}=`;for(let n of document.cookie.split("; "))if(n.startsWith(t))return decodeURIComponent(n.slice(t.length))},set(e,t,n={}){var o,i;if(typeof document=="undefined")return;let r=`${encodeURIComponent(e)}=${encodeURIComponent(t)}`;if(n.expires!==void 0){let s=typeof n.expires=="number"?new Date(Date.now()+n.expires*864e5):n.expires;r+=`; expires=${s.toUTCString()}`}r+=`; path=${(o=n.path)!=null?o:"/"}`,n.domain&&(r+=`; domain=${n.domain}`),n.secure&&(r+="; secure"),r+=`; samesite=${(i=n.sameSite)!=null?i:"Lax"}`,document.cookie=r},remove(e,t={}){this.set(e,"",{...t,expires:-1})},has(e){return this.get(e)!==void 0}},at={get(e,t){var n;return typeof location=="undefined"?t:(n=new URLSearchParams(location.search).get(e))!=null?n:t},all(){return typeof location=="undefined"?{}:Object.fromEntries(new URLSearchParams(location.search))},set(e,t,n=!0){if(typeof location=="undefined")return;let r=new URL(location.href);t===null||t===""?r.searchParams.delete(e):r.searchParams.set(e,String(t)),history[n?"replaceState":"pushState"]({},"",r.toString())},remove(e,t=!0){this.set(e,null,t)},merge(e,t=!0){if(typeof location=="undefined")return;let n=new URL(location.href);for(let[r,o]of Object.entries(e))o===null||o===""?n.searchParams.delete(r):n.searchParams.set(r,String(o));history[t?"replaceState":"pushState"]({},"",n.toString())}},Zt=new Map,xr={set(e,t,n=0){return Zt.set(e,{value:t,expires:n>0?Date.now()+n:1/0}),t},get(e,t){let n=Zt.get(e);return n?n.expires<Date.now()?(Zt.delete(e),t):n.value:t},has(e){return this.get(e)!==void 0},remove(e){Zt.delete(e)},clear(){Zt.clear()},async remember(e,t,n){let r=this.get(e);if(r!==void 0)return r;let o=await n();return this.set(e,o,t),o},get size(){return Zt.size}},oi="voodoo:theme",je={get current(){var e;return(e=Q.get(oi))!=null?e:"system"},get resolved(){let e=this.current;return e!=="system"?e:typeof matchMedia=="undefined"?"light":matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"},set(e){Q.set(oi,e),this.apply()},toggle(){let e=this.resolved==="dark"?"light":"dark";return this.set(e),e},get chosen(){return Q.get(oi)!=null},apply(){if(typeof document=="undefined"||!this.chosen)return;let e=this.current,t=document.documentElement;e==="system"?t.removeAttribute("data-theme"):t.setAttribute("data-theme",e),t.style.colorScheme=this.resolved,document.dispatchEvent(new CustomEvent("voodoo:theme",{detail:{theme:e,resolved:this.resolved}}))},init(){typeof document!="undefined"&&(this.apply(),matchMedia==null||matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{this.current==="system"&&this.apply()}))}};var He=V({width:0,height:0,mobile:!1,tablet:!1,desktop:!1,portrait:!1,landscape:!1,matches(e){return typeof matchMedia!="undefined"&&matchMedia(e).matches}});function ii(){typeof window!="undefined"&&(He.width=window.innerWidth,He.height=window.innerHeight,He.mobile=window.innerWidth<768,He.tablet=window.innerWidth>=768&&window.innerWidth<1024,He.desktop=window.innerWidth>=1024,He.portrait=window.innerHeight>=window.innerWidth,He.landscape=!He.portrait)}var At=V({online:!0,type:"unknown",saveData:!1,slow:!1});function Tr(){var t;if(typeof navigator=="undefined")return;At.online=navigator.onLine;let e=navigator.connection;e&&(At.type=(t=e.effectiveType)!=null?t:"unknown",At.saveData=!!e.saveData,At.slow=e.effectiveType==="slow-2g"||e.effectiveType==="2g")}var si={async copy(e){var t;try{if((t=navigator.clipboard)!=null&&t.writeText)return await navigator.clipboard.writeText(e),!0}catch(n){}try{let n=document.createElement("textarea");n.value=e,n.setAttribute("readonly",""),n.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(n),n.select();let r=document.execCommand("copy");return n.remove(),r}catch(n){return!1}},async read(){try{return await navigator.clipboard.readText()}catch(e){return""}}},Na=!1;function Oa(){var t,n;if(Na||(Na=!0,H("$el",r=>r.el),H("$refs",r=>r.allRefs),H("$data",r=>r.data),H("$root",r=>r.root.data),H("$parent",r=>{var o,i;return(i=(o=r.parent)==null?void 0:o.data)!=null?i:null}),H("$self",r=>{var o,i;return(i=(o=r.owner)==null?void 0:o.component)!=null?i:r.data}),H("$store",()=>vr),H("$http",()=>me),H("$toast",()=>Re),H("$clipboard",()=>si),H("$storage",()=>Q),H("$session",()=>wr),H("$cookie",()=>Er),H("$cache",()=>xr),H("$url",()=>at),H("$theme",()=>je),H("$device",()=>ee),H("$screen",()=>He),H("$network",()=>At),H("$nextTick",()=>ht),H("$watch",r=>(o,i)=>ve(()=>O(o,r,"$watch"),i)),H("$dispatch",r=>(o,i)=>{var a;((a=r.el)!=null?a:document).dispatchEvent(new CustomEvent(o,{detail:i,bubbles:!0}))}),H("$log",()=>(...r)=>{console.log("[Voodoo]",...r)}),typeof window=="undefined"))return;ii(),Tr();let e=0;window.addEventListener("resize",()=>{cancelAnimationFrame(e),e=requestAnimationFrame(ii)}),window.addEventListener("orientationchange",ii),window.addEventListener("online",Tr),window.addEventListener("offline",Tr),(n=(t=navigator.connection)==null?void 0:t.addEventListener)==null||n.call(t,"change",Tr)}ne();function ai(e,t){if(!t)return e;let n=e;for(let r of t.split(".")){if(n==null)return;n=n[r]}return n}function ci(e){var n;let t=(n=e.response)==null?void 0:n.data;if(!t||typeof t!="object")return null;for(let r of["message","error","detail","msg"]){let o=t[r];if(typeof o=="string")return o}return null}function kr(e,t={}){let n=()=>typeof e=="function"?e():e,r=()=>typeof t.params=="function"?t.params():t.params,o=null,i=null,s=V({data:null,loading:!1,error:null,loaded:!1,async reload(){var l,u,d,p,f;let a=n();if(!a)return;o==null||o.abort();let c=o=new AbortController;s.loading=!0,s.error=null;try{let m=await me.request({url:a,method:(t.method||"GET").toUpperCase(),params:r(),headers:t.headers,cache:t.cache||void 0,retry:(l=t.retry)!=null?l:0,timeout:(u=t.timeout)!=null?u:me.defaults.timeout,signal:c.signal});if(c.signal.aborted)return;s.data=ai(m.data,t.jsonPath),s.loaded=!0,(d=t.onSuccess)==null||d.call(t,s.data)}catch(m){if(c.signal.aborted)return;let v=m instanceof te&&(p=ci(m))!=null?p:m.message;s.error={name:"ResourceError",message:v},(f=t.onError)==null||f.call(t,m,v)}finally{c.signal.aborted||(s.loading=!1),o===c&&(o=null)}},set(a){s.data=a},stop(){o==null||o.abort(),o=null,s.loading=!1,i!==null&&(clearInterval(i),i=null)}});return t.poll&&t.poll>0&&(i=setInterval(()=>{(typeof document=="undefined"||document.visibilityState==="visible")&&s.reload()},t.poll)),t.manual||s.reload(),s}Te();Te();var $a=`
107
+ `,hd={success:"ok",error:"!",warning:"!",info:"i",loading:"",default:""},Mn=new Map,st={duration:4e3,position:"top-right",max:6};function yd(e){ie(),G("toast",vd);let t=Mn.get(e);return t&&t.isConnected||(t=document.createElement("div"),t.className="v-toaster",t.setAttribute("data-pos",e),t.setAttribute("role","region"),t.setAttribute("aria-label","Notifications"),document.body.appendChild(t),Mn.set(e,t)),t}function Lt(e){var p,f,m,v;let t=(p=e.position)!=null?p:st.position,n=(f=e.type)!=null?f:"default",r=(m=e.duration)!=null?m:n==="loading"?0:st.duration,o=yd(t),i=ue("toast-"),s=document.createElement("div");s.className="v-toast",s.id=i,s.setAttribute("data-type",n),s.setAttribute("role",n==="error"?"alert":"status"),s.setAttribute("aria-live",n==="error"?"assertive":"polite"),s.setAttribute("aria-atomic","true");let a=!1,c=null,l=()=>{a||(a=!0,c&&clearTimeout(c),s.classList.add("v-out"),s.classList.remove("v-in"),setTimeout(()=>{var g;s.remove(),(g=e.onClose)==null||g.call(e),o.children.length||(o.remove(),Mn.delete(t))},220))},u=g=>{var w,T,x,M;let h=(w=g.type)!=null?w:n;if(s.setAttribute("data-type",h),g.html)s.innerHTML=g.html;else{s.textContent="";let N=document.createElement("span");N.className="v-toast-icon",N.setAttribute("aria-hidden","true"),N.textContent=(T=hd[h])!=null?T:"",s.appendChild(N);let R=document.createElement("div");R.className="v-toast-body";let ae=document.createElement("div");if(ae.className="v-toast-title",ae.textContent=(x=g.title)!=null?x:"",R.appendChild(ae),g.description){let B=document.createElement("div");B.className="v-toast-desc",B.textContent=g.description,R.appendChild(B)}if(s.appendChild(R),g.action){let B=document.createElement("button");B.type="button",B.className="v-toast-action",B.textContent=g.action.label,B.addEventListener("click",()=>{var we;(we=g.action)==null||we.onClick(),l()}),s.appendChild(B)}if(g.closable!==!1&&h!=="loading"){let B=document.createElement("button");B.type="button",B.className="v-toast-close",B.setAttribute("aria-label","Close notification"),B.innerHTML="&times;",B.addEventListener("click",l),s.appendChild(B)}}let y=(M=g.duration)!=null?M:r;if(y>0){let N=document.createElement("div");N.className="v-toast-bar",N.style.animation=`v-toast-bar ${y}ms linear forwards`,s.appendChild(N)}};for(u(e),o.appendChild(s),requestAnimationFrame(()=>s.classList.add("v-in"));o.children.length>st.max;)(v=o.firstElementChild)==null||v.remove();let d=g=>{c&&clearTimeout(c),g>0&&(c=setTimeout(l,g))};return d(r),s.addEventListener("mouseenter",()=>{c&&clearTimeout(c)}),s.addEventListener("mouseleave",()=>d(r)),{id:i,close:l,update(g){var h;u({...e,...g}),g.duration!==void 0?d(g.duration):((h=g.type)!=null?h:n)!=="loading"&&d(st.duration)}}}function Jt(e,t){return typeof e=="string"?{title:e,type:t}:{type:t,...e}}var Re=Object.assign((e,t={})=>Lt({...Jt(e,"default"),...t}),{success:(e,t={})=>Lt({...Jt(e,"success"),...t}),error:(e,t={})=>Lt({...Jt(e,"error"),...t}),warning:(e,t={})=>Lt({...Jt(e,"warning"),...t}),info:(e,t={})=>Lt({...Jt(e,"info"),...t}),loading:(e,t={})=>Lt({...Jt(e,"loading"),duration:0,...t}),async promise(e,t={}){var r,o,i;let n=Lt({title:(r=t.loading)!=null?r:"Loading...",type:"loading",duration:0});try{let s=await e;return n.update({title:typeof t.success=="function"?t.success(s):(o=t.success)!=null?o:"Done",type:"success",duration:st.duration}),s}catch(s){throw n.update({title:typeof t.error=="function"?t.error(s):(i=t.error)!=null?i:"Something went wrong",type:"error",duration:st.duration}),s}},clear(){for(let[e,t]of Mn)t.remove(),Mn.delete(e)},configure(e){Object.assign(st,e)},settings:st});function Pa(e,t=""){let n=r=>t+r;return{get(r,o){var i;try{let s=(i=e())==null?void 0:i.getItem(n(r));if(s==null)return o;try{return JSON.parse(s)}catch(a){return s}}catch(s){return o}},set(r,o){var i;try{return(i=e())==null||i.setItem(n(r),typeof o=="string"?o:JSON.stringify(o)),!0}catch(s){return!1}},remove(r){var o;try{(o=e())==null||o.removeItem(n(r))}catch(i){}},clear(){try{let r=e();if(!r)return;if(!t){r.clear();return}for(let o of Object.keys(r))o.startsWith(t)&&r.removeItem(o)}catch(r){}},has(r){var o;try{return((o=e())==null?void 0:o.getItem(n(r)))!==null}catch(i){return!1}},keys(){try{let r=e();return r?Object.keys(r).filter(o=>o.startsWith(t)).map(o=>o.slice(t.length)):[]}catch(r){return[]}}}}var Q=Pa(()=>typeof localStorage!="undefined"?localStorage:void 0),wr=Pa(()=>typeof sessionStorage!="undefined"?sessionStorage:void 0),Er={get(e){if(typeof document=="undefined")return;let t=`${encodeURIComponent(e)}=`;for(let n of document.cookie.split("; "))if(n.startsWith(t))return decodeURIComponent(n.slice(t.length))},set(e,t,n={}){var o,i;if(typeof document=="undefined")return;let r=`${encodeURIComponent(e)}=${encodeURIComponent(t)}`;if(n.expires!==void 0){let s=typeof n.expires=="number"?new Date(Date.now()+n.expires*864e5):n.expires;r+=`; expires=${s.toUTCString()}`}r+=`; path=${(o=n.path)!=null?o:"/"}`,n.domain&&(r+=`; domain=${n.domain}`),n.secure&&(r+="; secure"),r+=`; samesite=${(i=n.sameSite)!=null?i:"Lax"}`,document.cookie=r},remove(e,t={}){this.set(e,"",{...t,expires:-1})},has(e){return this.get(e)!==void 0}},at={get(e,t){var n;return typeof location=="undefined"?t:(n=new URLSearchParams(location.search).get(e))!=null?n:t},all(){return typeof location=="undefined"?{}:Object.fromEntries(new URLSearchParams(location.search))},set(e,t,n=!0){if(typeof location=="undefined")return;let r=new URL(location.href);t===null||t===""?r.searchParams.delete(e):r.searchParams.set(e,String(t)),history[n?"replaceState":"pushState"]({},"",r.toString())},remove(e,t=!0){this.set(e,null,t)},merge(e,t=!0){if(typeof location=="undefined")return;let n=new URL(location.href);for(let[r,o]of Object.entries(e))o===null||o===""?n.searchParams.delete(r):n.searchParams.set(r,String(o));history[t?"replaceState":"pushState"]({},"",n.toString())}},Zt=new Map,xr={set(e,t,n=0){return Zt.set(e,{value:t,expires:n>0?Date.now()+n:1/0}),t},get(e,t){let n=Zt.get(e);return n?n.expires<Date.now()?(Zt.delete(e),t):n.value:t},has(e){return this.get(e)!==void 0},remove(e){Zt.delete(e)},clear(){Zt.clear()},async remember(e,t,n){let r=this.get(e);if(r!==void 0)return r;let o=await n();return this.set(e,o,t),o},get size(){return Zt.size}},oi="voodoo:theme",je={get current(){var e;return(e=Q.get(oi))!=null?e:"system"},get resolved(){let e=this.current;return e!=="system"?e:typeof matchMedia=="undefined"?"light":matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"},set(e){Q.set(oi,e),this.apply()},toggle(){let e=this.resolved==="dark"?"light":"dark";return this.set(e),e},get chosen(){return Q.get(oi)!=null},apply(){if(typeof document=="undefined"||!this.chosen)return;let e=this.current,t=document.documentElement;e==="system"?t.removeAttribute("data-theme"):t.setAttribute("data-theme",e),t.style.colorScheme=this.resolved,document.dispatchEvent(new CustomEvent("voodoo:theme",{detail:{theme:e,resolved:this.resolved}}))},init(){typeof document!="undefined"&&(this.apply(),matchMedia==null||matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{this.current==="system"&&this.apply()}))}};var He=V({width:0,height:0,mobile:!1,tablet:!1,desktop:!1,portrait:!1,landscape:!1,matches(e){return typeof matchMedia!="undefined"&&matchMedia(e).matches}});function ii(){typeof window!="undefined"&&(He.width=window.innerWidth,He.height=window.innerHeight,He.mobile=window.innerWidth<768,He.tablet=window.innerWidth>=768&&window.innerWidth<1024,He.desktop=window.innerWidth>=1024,He.portrait=window.innerHeight>=window.innerWidth,He.landscape=!He.portrait)}var At=V({online:!0,type:"unknown",saveData:!1,slow:!1});function Tr(){var t;if(typeof navigator=="undefined")return;At.online=navigator.onLine;let e=navigator.connection;e&&(At.type=(t=e.effectiveType)!=null?t:"unknown",At.saveData=!!e.saveData,At.slow=e.effectiveType==="slow-2g"||e.effectiveType==="2g")}var si={async copy(e){var t;try{if((t=navigator.clipboard)!=null&&t.writeText)return await navigator.clipboard.writeText(e),!0}catch(n){}try{let n=document.createElement("textarea");n.value=e,n.setAttribute("readonly",""),n.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(n),n.select();let r=document.execCommand("copy");return n.remove(),r}catch(n){return!1}},async read(){try{return await navigator.clipboard.readText()}catch(e){return""}}},Na=!1;function Oa(){var t,n;if(Na||(Na=!0,H("$el",r=>r.el),H("$refs",r=>r.allRefs),H("$data",r=>r.data),H("$root",r=>r.root.data),H("$parent",r=>{var o,i;return(i=(o=r.parent)==null?void 0:o.data)!=null?i:null}),H("$self",r=>{var o,i;return(i=(o=r.owner)==null?void 0:o.component)!=null?i:r.data}),H("$store",()=>vr),H("$http",()=>me),H("$toast",()=>Re),H("$clipboard",()=>si),H("$storage",()=>Q),H("$session",()=>wr),H("$cookie",()=>Er),H("$cache",()=>xr),H("$url",()=>at),H("$theme",()=>je),H("$device",()=>ee),H("$screen",()=>He),H("$network",()=>At),H("$nextTick",()=>ht),H("$watch",r=>(o,i)=>ve(()=>O(o,r,"$watch"),i)),H("$dispatch",r=>(o,i)=>{var a;((a=r.el)!=null?a:document).dispatchEvent(new CustomEvent(o,{detail:i,bubbles:!0}))}),H("$log",()=>(...r)=>{console.log("[Voodoo]",...r)}),typeof window=="undefined"))return;ii(),Tr();let e=0;window.addEventListener("resize",()=>{cancelAnimationFrame(e),e=requestAnimationFrame(ii)}),window.addEventListener("orientationchange",ii),window.addEventListener("online",Tr),window.addEventListener("offline",Tr),(n=(t=navigator.connection)==null?void 0:t.addEventListener)==null||n.call(t,"change",Tr)}ne();function ai(e,t){if(!t)return e;let n=e;for(let r of t.split(".")){if(n==null)return;n=n[r]}return n}function ci(e){var n;let t=(n=e.response)==null?void 0:n.data;if(!t||typeof t!="object")return null;for(let r of["message","error","detail","msg"]){let o=t[r];if(typeof o=="string")return o}return null}function kr(e,t={}){let n=()=>typeof e=="function"?e():e,r=()=>typeof t.params=="function"?t.params():t.params,o=null,i=null,s=V({data:null,loading:!1,error:null,loaded:!1,async reload(){var l,u,d,p,f;let a=n();if(!a)return;o==null||o.abort();let c=o=new AbortController;s.loading=!0,s.error=null;try{let m=await me.request({url:a,method:(t.method||"GET").toUpperCase(),params:r(),headers:t.headers,cache:t.cache||void 0,retry:(l=t.retry)!=null?l:0,timeout:(u=t.timeout)!=null?u:me.defaults.timeout,signal:c.signal});if(c.signal.aborted)return;s.data=ai(m.data,t.jsonPath),s.loaded=!0,(d=t.onSuccess)==null||d.call(t,s.data)}catch(m){if(c.signal.aborted)return;let v=m instanceof te&&(p=ci(m))!=null?p:m.message;s.error={name:"ResourceError",message:v},(f=t.onError)==null||f.call(t,m,v)}finally{c.signal.aborted||(s.loading=!1),o===c&&(o=null)}},set(a){s.data=a},stop(){o==null||o.abort(),o=null,s.loading=!1,i!==null&&(clearInterval(i),i=null)}});return t.poll&&t.poll>0&&(i=setInterval(()=>{(typeof document=="undefined"||document.visibilityState==="visible")&&s.reload()},t.poll)),t.manual||s.reload(),s}Te();Te();var $a=`
108
108
  .v-fade-enter-active,.v-fade-leave-active{transition:opacity .22s var(--v-ease,ease)}
109
109
  .v-fade-enter-from,.v-fade-leave-to{opacity:0}
110
110
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "voodoojs",
3
- "version": "0.4.6",
3
+ "version": "0.5.0",
4
4
  "description": "Voodoo.js: the HTML-first JavaScript framework. Build reactive applications directly in HTML: fine-grained reactivity, components, HTTP, forms, validation, router and UI. No mandatory build step, no runtime dependencies, no Virtual DOM, no eval.",
5
5
  "keywords": [
6
6
  "javascript",
@@ -1046,86 +1046,86 @@ declare const core: {
1046
1046
  http: {
1047
1047
  defaults: HttpDefaults;
1048
1048
  get<T = unknown>(url: string, options?: {
1049
- responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1050
- headers?: Record<string, string> | undefined;
1051
- credentials?: RequestCredentials | undefined;
1052
- signal?: AbortSignal | undefined;
1053
1049
  params?: Record<string, string | number | boolean | null | undefined> | undefined;
1050
+ headers?: Record<string, string> | undefined;
1054
1051
  timeout?: number | undefined;
1055
1052
  retry?: number | undefined;
1056
1053
  retryDelay?: number | undefined;
1057
1054
  retryUnsafe?: boolean | undefined;
1058
1055
  cache?: number | undefined;
1056
+ signal?: AbortSignal | undefined;
1057
+ credentials?: RequestCredentials | undefined;
1058
+ responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1059
1059
  onProgress?: ((loaded: number, total: number) => void) | undefined;
1060
1060
  offlineQueue?: boolean | undefined;
1061
1061
  }): Promise<T>;
1062
1062
  post<T = unknown>(url: string, body?: unknown, options?: {
1063
- responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1064
- headers?: Record<string, string> | undefined;
1065
- credentials?: RequestCredentials | undefined;
1066
- signal?: AbortSignal | undefined;
1067
1063
  params?: Record<string, string | number | boolean | null | undefined> | undefined;
1064
+ headers?: Record<string, string> | undefined;
1068
1065
  timeout?: number | undefined;
1069
1066
  retry?: number | undefined;
1070
1067
  retryDelay?: number | undefined;
1071
1068
  retryUnsafe?: boolean | undefined;
1072
1069
  cache?: number | undefined;
1070
+ signal?: AbortSignal | undefined;
1071
+ credentials?: RequestCredentials | undefined;
1072
+ responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1073
1073
  onProgress?: ((loaded: number, total: number) => void) | undefined;
1074
1074
  offlineQueue?: boolean | undefined;
1075
1075
  }): Promise<T>;
1076
1076
  put<T = unknown>(url: string, body?: unknown, options?: {
1077
- responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1078
- headers?: Record<string, string> | undefined;
1079
- credentials?: RequestCredentials | undefined;
1080
- signal?: AbortSignal | undefined;
1081
1077
  params?: Record<string, string | number | boolean | null | undefined> | undefined;
1078
+ headers?: Record<string, string> | undefined;
1082
1079
  timeout?: number | undefined;
1083
1080
  retry?: number | undefined;
1084
1081
  retryDelay?: number | undefined;
1085
1082
  retryUnsafe?: boolean | undefined;
1086
1083
  cache?: number | undefined;
1084
+ signal?: AbortSignal | undefined;
1085
+ credentials?: RequestCredentials | undefined;
1086
+ responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1087
1087
  onProgress?: ((loaded: number, total: number) => void) | undefined;
1088
1088
  offlineQueue?: boolean | undefined;
1089
1089
  }): Promise<T>;
1090
1090
  patch<T = unknown>(url: string, body?: unknown, options?: {
1091
- responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1092
- headers?: Record<string, string> | undefined;
1093
- credentials?: RequestCredentials | undefined;
1094
- signal?: AbortSignal | undefined;
1095
1091
  params?: Record<string, string | number | boolean | null | undefined> | undefined;
1092
+ headers?: Record<string, string> | undefined;
1096
1093
  timeout?: number | undefined;
1097
1094
  retry?: number | undefined;
1098
1095
  retryDelay?: number | undefined;
1099
1096
  retryUnsafe?: boolean | undefined;
1100
1097
  cache?: number | undefined;
1098
+ signal?: AbortSignal | undefined;
1099
+ credentials?: RequestCredentials | undefined;
1100
+ responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1101
1101
  onProgress?: ((loaded: number, total: number) => void) | undefined;
1102
1102
  offlineQueue?: boolean | undefined;
1103
1103
  }): Promise<T>;
1104
1104
  delete<T = unknown>(url: string, options?: {
1105
- responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1106
- headers?: Record<string, string> | undefined;
1107
- credentials?: RequestCredentials | undefined;
1108
- signal?: AbortSignal | undefined;
1109
1105
  params?: Record<string, string | number | boolean | null | undefined> | undefined;
1106
+ headers?: Record<string, string> | undefined;
1110
1107
  timeout?: number | undefined;
1111
1108
  retry?: number | undefined;
1112
1109
  retryDelay?: number | undefined;
1113
1110
  retryUnsafe?: boolean | undefined;
1114
1111
  cache?: number | undefined;
1112
+ signal?: AbortSignal | undefined;
1113
+ credentials?: RequestCredentials | undefined;
1114
+ responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1115
1115
  onProgress?: ((loaded: number, total: number) => void) | undefined;
1116
1116
  offlineQueue?: boolean | undefined;
1117
1117
  }): Promise<T>;
1118
1118
  head(url: string, options?: {
1119
- responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1120
- headers?: Record<string, string> | undefined;
1121
- credentials?: RequestCredentials | undefined;
1122
- signal?: AbortSignal | undefined;
1123
1119
  params?: Record<string, string | number | boolean | null | undefined> | undefined;
1120
+ headers?: Record<string, string> | undefined;
1124
1121
  timeout?: number | undefined;
1125
1122
  retry?: number | undefined;
1126
1123
  retryDelay?: number | undefined;
1127
1124
  retryUnsafe?: boolean | undefined;
1128
1125
  cache?: number | undefined;
1126
+ signal?: AbortSignal | undefined;
1127
+ credentials?: RequestCredentials | undefined;
1128
+ responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1129
1129
  onProgress?: ((loaded: number, total: number) => void) | undefined;
1130
1130
  offlineQueue?: boolean | undefined;
1131
1131
  }): Promise<unknown>;
@@ -1141,16 +1141,16 @@ declare const core: {
1141
1141
  error?: (e: Event) => void;
1142
1142
  }): EventSource;
1143
1143
  stream(url: string, onLine: (line: string) => void, options?: {
1144
- responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1145
- headers?: Record<string, string> | undefined;
1146
- credentials?: RequestCredentials | undefined;
1147
- signal?: AbortSignal | undefined;
1148
1144
  params?: Record<string, string | number | boolean | null | undefined> | undefined;
1145
+ headers?: Record<string, string> | undefined;
1149
1146
  timeout?: number | undefined;
1150
1147
  retry?: number | undefined;
1151
1148
  retryDelay?: number | undefined;
1152
1149
  retryUnsafe?: boolean | undefined;
1153
1150
  cache?: number | undefined;
1151
+ signal?: AbortSignal | undefined;
1152
+ credentials?: RequestCredentials | undefined;
1153
+ responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1154
1154
  onProgress?: ((loaded: number, total: number) => void) | undefined;
1155
1155
  offlineQueue?: boolean | undefined;
1156
1156
  }): Promise<void>;
@@ -1046,86 +1046,86 @@ declare const core: {
1046
1046
  http: {
1047
1047
  defaults: HttpDefaults;
1048
1048
  get<T = unknown>(url: string, options?: {
1049
- responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1050
- headers?: Record<string, string> | undefined;
1051
- credentials?: RequestCredentials | undefined;
1052
- signal?: AbortSignal | undefined;
1053
1049
  params?: Record<string, string | number | boolean | null | undefined> | undefined;
1050
+ headers?: Record<string, string> | undefined;
1054
1051
  timeout?: number | undefined;
1055
1052
  retry?: number | undefined;
1056
1053
  retryDelay?: number | undefined;
1057
1054
  retryUnsafe?: boolean | undefined;
1058
1055
  cache?: number | undefined;
1056
+ signal?: AbortSignal | undefined;
1057
+ credentials?: RequestCredentials | undefined;
1058
+ responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1059
1059
  onProgress?: ((loaded: number, total: number) => void) | undefined;
1060
1060
  offlineQueue?: boolean | undefined;
1061
1061
  }): Promise<T>;
1062
1062
  post<T = unknown>(url: string, body?: unknown, options?: {
1063
- responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1064
- headers?: Record<string, string> | undefined;
1065
- credentials?: RequestCredentials | undefined;
1066
- signal?: AbortSignal | undefined;
1067
1063
  params?: Record<string, string | number | boolean | null | undefined> | undefined;
1064
+ headers?: Record<string, string> | undefined;
1068
1065
  timeout?: number | undefined;
1069
1066
  retry?: number | undefined;
1070
1067
  retryDelay?: number | undefined;
1071
1068
  retryUnsafe?: boolean | undefined;
1072
1069
  cache?: number | undefined;
1070
+ signal?: AbortSignal | undefined;
1071
+ credentials?: RequestCredentials | undefined;
1072
+ responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1073
1073
  onProgress?: ((loaded: number, total: number) => void) | undefined;
1074
1074
  offlineQueue?: boolean | undefined;
1075
1075
  }): Promise<T>;
1076
1076
  put<T = unknown>(url: string, body?: unknown, options?: {
1077
- responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1078
- headers?: Record<string, string> | undefined;
1079
- credentials?: RequestCredentials | undefined;
1080
- signal?: AbortSignal | undefined;
1081
1077
  params?: Record<string, string | number | boolean | null | undefined> | undefined;
1078
+ headers?: Record<string, string> | undefined;
1082
1079
  timeout?: number | undefined;
1083
1080
  retry?: number | undefined;
1084
1081
  retryDelay?: number | undefined;
1085
1082
  retryUnsafe?: boolean | undefined;
1086
1083
  cache?: number | undefined;
1084
+ signal?: AbortSignal | undefined;
1085
+ credentials?: RequestCredentials | undefined;
1086
+ responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1087
1087
  onProgress?: ((loaded: number, total: number) => void) | undefined;
1088
1088
  offlineQueue?: boolean | undefined;
1089
1089
  }): Promise<T>;
1090
1090
  patch<T = unknown>(url: string, body?: unknown, options?: {
1091
- responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1092
- headers?: Record<string, string> | undefined;
1093
- credentials?: RequestCredentials | undefined;
1094
- signal?: AbortSignal | undefined;
1095
1091
  params?: Record<string, string | number | boolean | null | undefined> | undefined;
1092
+ headers?: Record<string, string> | undefined;
1096
1093
  timeout?: number | undefined;
1097
1094
  retry?: number | undefined;
1098
1095
  retryDelay?: number | undefined;
1099
1096
  retryUnsafe?: boolean | undefined;
1100
1097
  cache?: number | undefined;
1098
+ signal?: AbortSignal | undefined;
1099
+ credentials?: RequestCredentials | undefined;
1100
+ responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1101
1101
  onProgress?: ((loaded: number, total: number) => void) | undefined;
1102
1102
  offlineQueue?: boolean | undefined;
1103
1103
  }): Promise<T>;
1104
1104
  delete<T = unknown>(url: string, options?: {
1105
- responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1106
- headers?: Record<string, string> | undefined;
1107
- credentials?: RequestCredentials | undefined;
1108
- signal?: AbortSignal | undefined;
1109
1105
  params?: Record<string, string | number | boolean | null | undefined> | undefined;
1106
+ headers?: Record<string, string> | undefined;
1110
1107
  timeout?: number | undefined;
1111
1108
  retry?: number | undefined;
1112
1109
  retryDelay?: number | undefined;
1113
1110
  retryUnsafe?: boolean | undefined;
1114
1111
  cache?: number | undefined;
1112
+ signal?: AbortSignal | undefined;
1113
+ credentials?: RequestCredentials | undefined;
1114
+ responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1115
1115
  onProgress?: ((loaded: number, total: number) => void) | undefined;
1116
1116
  offlineQueue?: boolean | undefined;
1117
1117
  }): Promise<T>;
1118
1118
  head(url: string, options?: {
1119
- responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1120
- headers?: Record<string, string> | undefined;
1121
- credentials?: RequestCredentials | undefined;
1122
- signal?: AbortSignal | undefined;
1123
1119
  params?: Record<string, string | number | boolean | null | undefined> | undefined;
1120
+ headers?: Record<string, string> | undefined;
1124
1121
  timeout?: number | undefined;
1125
1122
  retry?: number | undefined;
1126
1123
  retryDelay?: number | undefined;
1127
1124
  retryUnsafe?: boolean | undefined;
1128
1125
  cache?: number | undefined;
1126
+ signal?: AbortSignal | undefined;
1127
+ credentials?: RequestCredentials | undefined;
1128
+ responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1129
1129
  onProgress?: ((loaded: number, total: number) => void) | undefined;
1130
1130
  offlineQueue?: boolean | undefined;
1131
1131
  }): Promise<unknown>;
@@ -1141,16 +1141,16 @@ declare const core: {
1141
1141
  error?: (e: Event) => void;
1142
1142
  }): EventSource;
1143
1143
  stream(url: string, onLine: (line: string) => void, options?: {
1144
- responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1145
- headers?: Record<string, string> | undefined;
1146
- credentials?: RequestCredentials | undefined;
1147
- signal?: AbortSignal | undefined;
1148
1144
  params?: Record<string, string | number | boolean | null | undefined> | undefined;
1145
+ headers?: Record<string, string> | undefined;
1149
1146
  timeout?: number | undefined;
1150
1147
  retry?: number | undefined;
1151
1148
  retryDelay?: number | undefined;
1152
1149
  retryUnsafe?: boolean | undefined;
1153
1150
  cache?: number | undefined;
1151
+ signal?: AbortSignal | undefined;
1152
+ credentials?: RequestCredentials | undefined;
1153
+ responseType?: "auto" | "json" | "text" | "blob" | "arrayBuffer" | "formData" | undefined;
1154
1154
  onProgress?: ((loaded: number, total: number) => void) | undefined;
1155
1155
  offlineQueue?: boolean | undefined;
1156
1156
  }): Promise<void>;