voodoojs 0.10.1 → 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +1 -1
  2. package/dist/{chunk-5E3UZREN.js → chunk-32J7GDLD.js} +7 -7
  3. package/dist/{chunk-2UST7MKN.js → chunk-BEQEBFQ2.js} +3 -3
  4. package/dist/{chunk-5D7TM3GL.js → chunk-FCJ2APGN.js} +5 -5
  5. package/dist/{chunk-246ZC2JD.js → chunk-FITEA237.js} +4 -4
  6. package/dist/{chunk-D4DNTWIS.js → chunk-GC3BKNPT.js} +3 -3
  7. package/dist/{chunk-KQRWQPD6.js → chunk-J6RTM5P4.js} +4 -4
  8. package/dist/{chunk-DNIQLT66.js → chunk-KE6WWJOB.js} +6 -6
  9. package/dist/{chunk-WYSN4IOV.js → chunk-OHSGDVPA.js} +5 -5
  10. package/dist/{chunk-F3Z3HMZR.js → chunk-OJDW7KXT.js} +4 -4
  11. package/dist/{chunk-RREZZ4FB.js → chunk-TXWSOPF2.js} +4 -4
  12. package/dist/{chunk-4MJIS5RZ.js → chunk-XG2UDP4O.js} +13 -13
  13. package/dist/essential.cjs +2 -2
  14. package/dist/essential.d.cts +1 -1
  15. package/dist/essential.d.ts +1 -1
  16. package/dist/essential.js +10 -10
  17. package/dist/gpu.cjs +1 -1
  18. package/dist/gpu.js +10 -10
  19. package/dist/http.cjs +1 -1
  20. package/dist/http.js +5 -5
  21. package/dist/index.cjs +64 -10
  22. package/dist/index.d.cts +2 -2
  23. package/dist/index.d.ts +2 -2
  24. package/dist/index.js +82 -28
  25. package/dist/reactivity.cjs +1 -1
  26. package/dist/reactivity.js +2 -2
  27. package/dist/socket.cjs +1 -1
  28. package/dist/socket.js +9 -9
  29. package/dist/style-MX6ZATL4.js +5 -0
  30. package/dist/utils.cjs +1 -1
  31. package/dist/utils.js +2 -2
  32. package/dist/voodoo.core.js +2 -2
  33. package/dist/voodoo.core.min.js +2 -2
  34. package/dist/voodoo.full.js +66 -11
  35. package/dist/voodoo.full.min.js +25 -25
  36. package/dist/voodoo.js +2 -2
  37. package/dist/voodoo.min.js +2 -2
  38. package/package.json +1 -1
  39. package/dist/style-BSEVBI4K.js +0 -5
  40. package/dist/{query-DiQAS73Q.d.cts → query-CbHihkvO.d.cts} +28 -28
  41. package/dist/{query-Cf-7iibE.d.ts → query-p04Fl8VW.d.ts} +28 -28
package/dist/index.js CHANGED
@@ -1,25 +1,25 @@
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-4MJIS5RZ.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-4MJIS5RZ.js';
3
- export { gpu, reflectWgsl } from './chunk-WYSN4IOV.js';
4
- import { http } from './chunk-DNIQLT66.js';
5
- export { HttpError, http, request } from './chunk-DNIQLT66.js';
6
- import { devtoolsBus } from './chunk-5D7TM3GL.js';
7
- export { createSocket, devtoolsBus, socket, socketSupported } from './chunk-5D7TM3GL.js';
8
- import { magic, markSkipChildren, onStart, rootScope, findScope, destroy, readAttr, evaluate, parse, Scope, getScope, walk, unwrap, addCleanup, hadDirectives, collectDirectives, getEffectScopes, evaluateIn } from './chunk-5E3UZREN.js';
9
- export { Scope, VoodooRuntimeError, VoodooSyntaxError, addCleanup, allowedGlobals, clearParseCache, destroy, evaluate, findScope, getScope, magic, magics, parse, refresh, rootScope, start, stringify, tokenize, walk } from './chunk-5E3UZREN.js';
10
- import { reactive, warn, handleError, effect, queuePostFlush, nextTick } from './chunk-246ZC2JD.js';
11
- export { EffectScope, computed, effect, effectScope, flushSync, isReactive, markRaw, nextTick, reactive, ref, shallowRef, stop, toRaw, unref, watch, watchEffect } from './chunk-246ZC2JD.js';
12
- import { warnAlias } from './chunk-RREZZ4FB.js';
13
- import { parseDuration, formatNumber, formatCurrency, formatDate, relativeTime, device, setFormatDefaults, uid, merge, escapeHtml, truncate, get, titleCase } from './chunk-F3Z3HMZR.js';
14
- export { capitalize, chunk, clone, debounce, device, escapeHtml, formatCurrency, formatDate, formatFileSize, formatNumber, formatPercent, get, groupBy, isBrowser, matchesMedia, memoize, merge, once, parseDuration, random, relativeTime, sample, set, setFormatDefaults, sleep, slugify, sortBy, stripTags, throttle, titleCase, truncate, uid, unique, uuid } from './chunk-F3Z3HMZR.js';
15
- import { ensureTokens, injectStyle } from './chunk-KQRWQPD6.js';
16
- export { ensureTokens, injectStyle } from './chunk-KQRWQPD6.js';
17
- import { defineDirective, PRIORITY, config } from './chunk-D4DNTWIS.js';
18
- export { PRIORITY, config, defineDirective } from './chunk-D4DNTWIS.js';
19
- import './chunk-2UST7MKN.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-XG2UDP4O.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-XG2UDP4O.js';
3
+ export { gpu, reflectWgsl } from './chunk-OHSGDVPA.js';
4
+ import { http } from './chunk-KE6WWJOB.js';
5
+ export { HttpError, http, request } from './chunk-KE6WWJOB.js';
6
+ import { devtoolsBus } from './chunk-FCJ2APGN.js';
7
+ export { createSocket, devtoolsBus, socket, socketSupported } from './chunk-FCJ2APGN.js';
8
+ import { magic, markSkipChildren, onStart, rootScope, findScope, destroy, readAttr, evaluate, parse, Scope, getScope, walk, unwrap, addCleanup, hadDirectives, collectDirectives, getEffectScopes, evaluateIn } from './chunk-32J7GDLD.js';
9
+ export { Scope, VoodooRuntimeError, VoodooSyntaxError, addCleanup, allowedGlobals, clearParseCache, destroy, evaluate, findScope, getScope, magic, magics, parse, refresh, rootScope, start, stringify, tokenize, walk } from './chunk-32J7GDLD.js';
10
+ import { reactive, warn, handleError, effect, queuePostFlush, nextTick } from './chunk-FITEA237.js';
11
+ export { EffectScope, computed, effect, effectScope, flushSync, isReactive, markRaw, nextTick, reactive, ref, shallowRef, stop, toRaw, unref, watch, watchEffect } from './chunk-FITEA237.js';
12
+ import { warnAlias } from './chunk-TXWSOPF2.js';
13
+ import { parseDuration, formatNumber, formatCurrency, formatDate, relativeTime, device, setFormatDefaults, uid, merge, escapeHtml, truncate, get, titleCase } from './chunk-OJDW7KXT.js';
14
+ export { capitalize, chunk, clone, debounce, device, escapeHtml, formatCurrency, formatDate, formatFileSize, formatNumber, formatPercent, get, groupBy, isBrowser, matchesMedia, memoize, merge, once, parseDuration, random, relativeTime, sample, set, setFormatDefaults, sleep, slugify, sortBy, stripTags, throttle, titleCase, truncate, uid, unique, uuid } from './chunk-OJDW7KXT.js';
15
+ import { ensureTokens, injectStyle } from './chunk-J6RTM5P4.js';
16
+ export { ensureTokens, injectStyle } from './chunk-J6RTM5P4.js';
17
+ import { defineDirective, PRIORITY, config } from './chunk-GC3BKNPT.js';
18
+ export { PRIORITY, config, defineDirective } from './chunk-GC3BKNPT.js';
19
+ import './chunk-BEQEBFQ2.js';
20
20
 
21
21
  /**
22
- * Voodoo.js v0.10.1
22
+ * Voodoo.js v0.11.1
23
23
  * JavaScript feels like magic.
24
24
  * (c) 2026 Voodoo.js contributors. MIT License.
25
25
  */
@@ -6631,6 +6631,30 @@ function collect(start2, offset) {
6631
6631
  if (!closed) return null;
6632
6632
  return { source, templates, nodes, tail };
6633
6633
  }
6634
+ function recoverFromTable(collected) {
6635
+ const empties = collected.source.match(/\(\s*\)/g);
6636
+ if (!empties) return false;
6637
+ const first = collected.nodes[0];
6638
+ const last = collected.nodes[collected.nodes.length - 1];
6639
+ const table = [last?.nextSibling, first?.previousSibling].map((from) => {
6640
+ let node = from ?? null;
6641
+ while (node && node.nodeType === Node.TEXT_NODE && !(node.textContent ?? "").trim()) {
6642
+ node = node === last?.nextSibling ? node.nextSibling : node.previousSibling;
6643
+ }
6644
+ return node && node.nodeType === Node.ELEMENT_NODE ? node : null;
6645
+ }).find((el) => el?.tagName === "TABLE");
6646
+ if (!table) return false;
6647
+ const body = table.querySelector("tbody");
6648
+ if (!body) return false;
6649
+ const rows = Array.from(body.children).filter((el) => el.tagName === "TR");
6650
+ if (rows.length !== empties.length) return false;
6651
+ let index = 0;
6652
+ collected.source = collected.source.replace(/\(\s*\)/g, () => `($t(${index++}, $__jsx))`);
6653
+ collected.templates = rows;
6654
+ collected.host = body;
6655
+ collected.nodes.push(...rows);
6656
+ return true;
6657
+ }
6634
6658
  function render(value, templates, scope, out) {
6635
6659
  if (value == null || value === false || value === true) return;
6636
6660
  if (Array.isArray(value)) {
@@ -6672,7 +6696,11 @@ function applyRegions(root, parentScope) {
6672
6696
  continue;
6673
6697
  }
6674
6698
  const collected = collect(child, open);
6675
- if (!collected || collected.templates.length === 0) {
6699
+ if (!collected) {
6700
+ child = next;
6701
+ continue;
6702
+ }
6703
+ if (collected.templates.length === 0 && !recoverFromTable(collected)) {
6676
6704
  child = next;
6677
6705
  continue;
6678
6706
  }
@@ -6695,8 +6723,9 @@ function install(parent, collected, hint) {
6695
6723
  if (tail && tail.offset < (tail.node.textContent ?? "").length) {
6696
6724
  tail.node.splitText(tail.offset);
6697
6725
  }
6726
+ const target = collected.host ?? parent;
6698
6727
  const anchor = document.createComment("v-jsx");
6699
- parent.insertBefore(anchor, nodes[0]);
6728
+ target.insertBefore(anchor, collected.host ? collected.host.firstChild : nodes[0]);
6700
6729
  for (const node of nodes) node.remove();
6701
6730
  let rendered = [];
6702
6731
  pending.push(() => activateRegion());
@@ -6712,7 +6741,7 @@ function install(parent, collected, hint) {
6712
6741
  render(value, templates, local, out);
6713
6742
  for (const node of rendered) node.remove();
6714
6743
  rendered = out;
6715
- for (const node of out) parent.insertBefore(node, anchor);
6744
+ for (const node of out) target.insertBefore(node, anchor);
6716
6745
  });
6717
6746
  addCleanup(anchor, () => {
6718
6747
  runner.effect.stop();
@@ -6723,10 +6752,14 @@ function install(parent, collected, hint) {
6723
6752
  function readDeclarationBlock(root = document.body) {
6724
6753
  for (const node of Array.from(root.childNodes)) {
6725
6754
  if (node.nodeType !== Node.TEXT_NODE) continue;
6726
- const text = (node.textContent ?? "").trim();
6727
- if (!text.startsWith("{") || !text.endsWith("}")) continue;
6728
- if (!/\b(const|let|var)\s/.test(text)) continue;
6729
- const body = text.slice(1, -1).replace(/\b(?:const|let|var)\s+/g, "");
6755
+ const raw = node.textContent ?? "";
6756
+ const open = raw.indexOf("{");
6757
+ if (open < 0) continue;
6758
+ const end = matchBrace(raw, open);
6759
+ if (end < 0) continue;
6760
+ const group = raw.slice(open, end + 1);
6761
+ if (!/\b(?:const|let|var)\s/.test(group)) continue;
6762
+ const body = group.slice(1, -1).replace(/\b(?:const|let|var)\s+/g, "");
6730
6763
  const data = reactive({});
6731
6764
  try {
6732
6765
  evaluate(parse(body), new Scope(data));
@@ -6736,11 +6769,32 @@ function readDeclarationBlock(root = document.body) {
6736
6769
  }
6737
6770
  return null;
6738
6771
  }
6739
- node.remove();
6772
+ node.textContent = raw.slice(0, open) + raw.slice(end + 1);
6740
6773
  return data;
6741
6774
  }
6742
6775
  return null;
6743
6776
  }
6777
+ function matchBrace(text, from) {
6778
+ let depth = 0;
6779
+ let quote = null;
6780
+ let escaped = false;
6781
+ for (let i = from; i < text.length; i++) {
6782
+ const ch = text[i];
6783
+ if (escaped) {
6784
+ escaped = false;
6785
+ continue;
6786
+ }
6787
+ if (quote) {
6788
+ if (ch === "\\") escaped = true;
6789
+ else if (ch === quote) quote = null;
6790
+ continue;
6791
+ }
6792
+ if (ch === '"' || ch === "'" || ch === "`") quote = ch;
6793
+ else if (ch === "{") depth++;
6794
+ else if (ch === "}" && --depth === 0) return i;
6795
+ }
6796
+ return -1;
6797
+ }
6744
6798
  function activateJsx() {
6745
6799
  const work = pending.splice(0, pending.length);
6746
6800
  for (const run of work) {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  /**
4
- * Voodoo.js v0.10.1
4
+ * Voodoo.js v0.11.1
5
5
  * JavaScript feels like magic.
6
6
  * (c) 2026 Voodoo.js contributors. MIT License.
7
7
  */
@@ -1,4 +1,4 @@
1
- export { EffectScope, ITERATE_KEY, ReactiveEffect, TriggerType, computed, effect, effectScope, enableTracking, flushSync, getActiveEffect, getActiveScope, handleError, hasChanged, isReactive, isRef, markRaw, nextTick, pauseTracking, queueJob, queuePostFlush, reactive, ref, resetTracking, setErrorHandler, shallowRef, stop, toRaw, track, trigger, unref, warn, watch, watchEffect } from './chunk-246ZC2JD.js';
2
- import './chunk-2UST7MKN.js';
1
+ export { EffectScope, ITERATE_KEY, ReactiveEffect, TriggerType, computed, effect, effectScope, enableTracking, flushSync, getActiveEffect, getActiveScope, handleError, hasChanged, isReactive, isRef, markRaw, nextTick, pauseTracking, queueJob, queuePostFlush, reactive, ref, resetTracking, setErrorHandler, shallowRef, stop, toRaw, track, trigger, unref, warn, watch, watchEffect } from './chunk-FITEA237.js';
2
+ import './chunk-BEQEBFQ2.js';
3
3
  //# sourceMappingURL=reactivity.js.map
4
4
  //# sourceMappingURL=reactivity.js.map
package/dist/socket.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  /**
6
- * Voodoo.js v0.10.1
6
+ * Voodoo.js v0.11.1
7
7
  * JavaScript feels like magic.
8
8
  * (c) 2026 Voodoo.js contributors. MIT License.
9
9
  */
package/dist/socket.js CHANGED
@@ -1,14 +1,14 @@
1
- import { socketSupported, createSocket, socket } from './chunk-5D7TM3GL.js';
2
- export { ENGINE, SIO, createSocket, decodeEngine, decodeSocketIo, encodeSocketIo, engineURL, resolveSocketURL, socket, socketSupported } from './chunk-5D7TM3GL.js';
3
- import { evaluateIn, readAttr } from './chunk-5E3UZREN.js';
4
- import { reactive } from './chunk-246ZC2JD.js';
5
- import { warnAlias } from './chunk-RREZZ4FB.js';
6
- import { parseDuration } from './chunk-F3Z3HMZR.js';
7
- import { defineDirective, PRIORITY, config } from './chunk-D4DNTWIS.js';
8
- import './chunk-2UST7MKN.js';
1
+ import { socketSupported, createSocket, socket } from './chunk-FCJ2APGN.js';
2
+ export { ENGINE, SIO, createSocket, decodeEngine, decodeSocketIo, encodeSocketIo, engineURL, resolveSocketURL, socket, socketSupported } from './chunk-FCJ2APGN.js';
3
+ import { evaluateIn, readAttr } from './chunk-32J7GDLD.js';
4
+ import { reactive } from './chunk-FITEA237.js';
5
+ import { warnAlias } from './chunk-TXWSOPF2.js';
6
+ import { parseDuration } from './chunk-OJDW7KXT.js';
7
+ import { defineDirective, PRIORITY, config } from './chunk-GC3BKNPT.js';
8
+ import './chunk-BEQEBFQ2.js';
9
9
 
10
10
  /**
11
- * Voodoo.js v0.10.1
11
+ * Voodoo.js v0.11.1
12
12
  * JavaScript feels like magic.
13
13
  * (c) 2026 Voodoo.js contributors. MIT License.
14
14
  */
@@ -0,0 +1,5 @@
1
+ export { BASE_TOKENS, ensureTokens, injectStyle } from './chunk-J6RTM5P4.js';
2
+ import './chunk-GC3BKNPT.js';
3
+ import './chunk-BEQEBFQ2.js';
4
+ //# sourceMappingURL=style-MX6ZATL4.js.map
5
+ //# sourceMappingURL=style-MX6ZATL4.js.map
package/dist/utils.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  /**
4
- * Voodoo.js v0.10.1
4
+ * Voodoo.js v0.11.1
5
5
  * JavaScript feels like magic.
6
6
  * (c) 2026 Voodoo.js contributors. MIT License.
7
7
  */
package/dist/utils.js CHANGED
@@ -1,4 +1,4 @@
1
- export { capitalize, chunk, clone, debounce, device, escapeHtml, formatCurrency, formatDate, formatFileSize, formatNumber, formatPercent, get, groupBy, isBrowser, matchesMedia, memoize, merge, once, parseDuration, random, relativeTime, sample, set, setFormatDefaults, sleep, slugify, sortBy, stripTags, throttle, titleCase, truncate, uid, unique, uuid } from './chunk-F3Z3HMZR.js';
2
- import './chunk-2UST7MKN.js';
1
+ export { capitalize, chunk, clone, debounce, device, escapeHtml, formatCurrency, formatDate, formatFileSize, formatNumber, formatPercent, get, groupBy, isBrowser, matchesMedia, memoize, merge, once, parseDuration, random, relativeTime, sample, set, setFormatDefaults, sleep, slugify, sortBy, stripTags, throttle, titleCase, truncate, uid, unique, uuid } from './chunk-OJDW7KXT.js';
2
+ import './chunk-BEQEBFQ2.js';
3
3
  //# sourceMappingURL=utils.js.map
4
4
  //# sourceMappingURL=utils.js.map
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Voodoo.js v0.10.1
2
+ * Voodoo.js v0.11.1
3
3
  * JavaScript feels like magic.
4
4
  * (c) 2026 Voodoo.js contributors. MIT License.
5
5
  */
@@ -6825,7 +6825,7 @@ Suggestion: attribute expressions accept a single value. If the logic spans more
6825
6825
  Object.defineProperties(rootScope.data, Object.getOwnPropertyDescriptors(values));
6826
6826
  return rootScope.data;
6827
6827
  }
6828
- var version2 = "0.10.1";
6828
+ var version2 = "0.11.1";
6829
6829
  var core = {
6830
6830
  // Utilities first: Voodoo's own names can override.
6831
6831
  ...utils_exports,
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Voodoo.js v0.10.1
2
+ * Voodoo.js v0.11.1
3
3
  * JavaScript feels like magic.
4
4
  * (c) 2026 Voodoo.js contributors. MIT License.
5
5
  */
@@ -135,7 +135,7 @@ Suggestion: attribute expressions accept a single value. If the logic spans more
135
135
  .v-json-object dt{font-weight:600;color:var(--v-text-muted,#6B6580)}
136
136
  .v-json-object dd{margin:0}
137
137
  .v-json-empty{color:var(--v-text-muted,#6B6580);font-style:italic}
138
- `)}))}function lc(e){let t=e.tagName;if(t==="FORM")return"submit";if(t==="INPUT"||t==="SELECT"||t==="TEXTAREA"){let n=e.type;return n==="button"||n==="submit"?"click":"change"}return"click"}function dc({el:e,cleanup:t,run:n}){var l,f;let r=E(e,"trigger")||lc(e),[o,...s]=r.split(/[.\s]+/),i=_((l=E(e,"poll"))!=null?l:void 0,0);if(i>0){n();let p=setInterval(()=>{document.visibilityState==="visible"&&n()},i);t(()=>clearInterval(p));return}if(o==="load"||o==="ready"){n();return}if(o==="visible"||o==="revealed"){if(typeof IntersectionObserver=="undefined"){n();return}let p=new IntersectionObserver(d=>{for(let m of d)m.isIntersecting&&(n(),s.includes("repeat")||p.unobserve(e))},{rootMargin:"80px"});p.observe(e),t(()=>p.disconnect());return}let a=s.includes("once"),c=_((f=E(e,"debounce"))!=null?f:void 0,0),u=p=>{(e.tagName==="FORM"||e.href)&&p.preventDefault(),n(p)};c>0&&(u=Fe(u,c)),e.addEventListener(o,u,{once:a}),t(()=>e.removeEventListener(o,u))}var fc=[["get","GET"],["post","POST"],["put","PUT"],["patch","PATCH"],["delete","DELETE"]];for(let[e,t]of fc)A(e,({el:n,scope:r,expression:o,cleanup:s})=>{dc({el:n,scope:r,cleanup:s,run:a=>{let c=jt(o,r);if(!c)return;let u=E(n,"body")||E(n,"data-body"),l=u?O(u,r.child({$event:a}),"v-body"):void 0,f=E(n,"params"),p=f?O(f,r,"v-params"):void 0;It({el:n,scope:r,method:t,url:c,body:l,params:p,event:a})}})});function jt(e,t){let n=e.trim();if(!n)return"";if((/^[./#?]/.test(n)||/^https?:\/\//i.test(n)||/^[\w-]+\/[\w\-/.]*$/.test(n))&&!/[+`'"]|\$\{/.test(n))return n;let o=O(n,t,"URL");return typeof o=="string"?o:n}A("load",({el:e,scope:t,expression:n})=>{let r=jt(n,t);r&&It({el:e,scope:t,method:"GET",url:r})});A("load-visible",({el:e,scope:t,cleanup:n,expression:r})=>{let o=jt(r,t);if(!o)return;if(typeof IntersectionObserver=="undefined"){It({el:e,scope:t,method:"GET",url:o});return}let s=new IntersectionObserver(i=>{for(let a of i)a.isIntersecting&&(s.unobserve(e),It({el:e,scope:t,method:"GET",url:o}))},{rootMargin:"120px"});s.observe(e),n(()=>s.disconnect())});A("search",({el:e,scope:t,expression:n,cleanup:r})=>{var f,p;let o=e,s=jt(n,t),i=E(e,"param")||o.getAttribute("name")||"q",a=_((f=E(e,"debounce"))!=null?f:void 0,300),c=Number((p=E(e,"min-length"))!=null?p:0),u=Fe(()=>{let d=o.value.trim();d.length<c||It({el:e,scope:t,method:"GET",url:s,params:{[i]:d}})},a),l=()=>u();o.addEventListener("input",l),r(()=>{o.removeEventListener("input",l),u.cancel()})});A("resource",({el:e,scope:t,expression:n,cleanup:r})=>{var c,u,l,f;let o=n.indexOf(":"),s=E(e,"as")||"resource",i=n.trim();if(o>-1){let p=n.slice(0,o).trim();/^[A-Za-z_$][\w$]*$/.test(p)&&(s=p,i=n.slice(o+1).trim())}let a=bn(()=>jt(i,t),{method:(E(e,"method")||"GET").toUpperCase(),params:()=>E(e,"params")?O(E(e,"params"),t,"v-params"):void 0,cache:_((c=E(e,"cache"))!=null?c:void 0,0)||void 0,retry:Number((u=E(e,"retry"))!=null?u:0),timeout:_((l=E(e,"timeout"))!=null?l:void 0,oe.defaults.timeout),jsonPath:E(e,"json-path"),poll:_((f=E(e,"poll"))!=null?f:void 0,0),manual:Nr(e,"manual"),onSuccess:p=>ht(e,"voodoo:success",{data:p}),onError:(p,d)=>ht(e,"voodoo:error",{error:p,message:d})});t.set(s,a),r(()=>a.stop())},{priority:U.DATA});for(let e of["target","swap","trigger","poll","param","params","body","data-body","headers","cache","retry","timeout","as","json-path","template","offline-queue","min-length","scroll-to","manual","debounce","throttle","indicator"])A(e,()=>{},{priority:U.TRANSITION});Fo(zo);Wo(At);Jo(js);vs();var Ft=new Map;function Is(e,t){let n=Ft.get(e);return n||Ft.set(e,n=new Set),n.add(t),()=>n.delete(t)}function pc(e,t){let n=Is(e,r=>{n(),t(r)});return n}function mc(e,t){let n=Ft.get(e);if(n)for(let r of[...n])try{r(t)}catch(o){$(o,`event "${e}"`)}}function hc(e,t){var n;if(!t){Ft.delete(e);return}(n=Ft.get(e))==null||n.delete(t)}function js(e,t){var r,o;let n=typeof t=="function"?{mounted:t,updated:t}:t;A(e,s=>{var l,f;let i,a=!1,c=p=>{var d,m;return{el:s.el,value:p,oldValue:i,arg:s.arg,modifiers:s.modifiers,expression:s.expression,scope:s.scope,instance:(m=(d=s.scope.owner)==null?void 0:d.component)!=null?m:null}},u=n.raw?s.expression:s.evaluate();(l=n.created)==null||l.call(n,s.el,c(u)),(f=n.beforeMount)==null||f.call(n,s.el,c(u)),s.effect(()=>{var m,g;let p=n.raw?s.expression:s.evaluate();if(!a){a=!0,i=p,(m=n.mounted)==null||m.call(n,s.el,c(p));return}if(p===i)return;let d=c(p);(g=n.updated)==null||g.call(n,s.el,d),i=p}),s.cleanup(()=>{var d,m;let p=c(i);(d=n.beforeUnmount)==null||d.call(n,s.el,p),(m=n.unmounted)==null||m.call(n,s.el,p)})},{priority:(r=n.priority)!=null?r:U.DEFAULT,terminal:(o=n.terminal)!=null?o:!1})}function gc(e){return Object.defineProperties(de.data,Object.getOwnPropertyDescriptors(e)),de.data}var yc="0.10.1",En={...wr,version:yc,config:w,reactive:F,ref:Tt,shallowRef:Kn,computed:xt,effect:te,watch:ue,watchEffect:Yn,nextTick:$e,toRaw:K,markRaw:zn,unref:Gn,stop:qn,effectScope:_n,EffectScope:ne,flushSync:jn,data:gc,store:ns,stores:ln,removeStore:rs,storeNames:os,scope:de,component:rt,components:z,directive:js,directives:ve,magic:N,magics:kt,createApp:Zo,start:Uo,whenReady:an,whenElement:cn,walk:j,refresh:_o,destroy:H,stopObserving:qo,getScope:et,findScope:xe,addCleanup:fe,parseAttribute:Je,parse:le,tokenize:Jt,evaluate:x,evaluateIn:O,stringify:ye,clearParseCache:uo,globals:G,http:oe,request:Lt,HttpError:X,resource:bn,toast:Pe,storage:se,session:mn,cookie:hn,cache:yn,url:gn,theme:ft,clipboard:Ar,screen:ie,network:_e,enter:Ot,leave:$t,fadeIn:wn,fadeOut:Tn,slideUp:Dt,slideDown:Ht,viewTransition:Es,injectStyle:Ee,ensureTokens:Ue,on:Is,once:pc,off:hc,emit:mc,use(e,t){Zt(En,e,t)},onError(e){Fn(e)},instances:on,Scope:De,PRIORITY:U,VoodooSyntaxError:L,VoodooRuntimeError:B};ts(En);Z();var vc=new Set(["animation-iteration-count","aspect-ratio","border-image-slice","column-count","flex","flex-grow","flex-shrink","font-weight","grid-area","grid-column","grid-row","line-height","opacity","order","orphans","scale","tab-size","widows","z-index","zoom"]);function Qs(e){return e.startsWith("--")?e:e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}function ae(e){return e.length<2?e:Array.from(new Set(e))}function Ve(e){return String(e!=null?e:"").split(/\s+/).filter(Boolean)}function Or(e){if(typeof document=="undefined")return[];let t=document.createElement("template");t.innerHTML=e.trim();let n=[];for(let r of Array.from(t.content.children))n.push(r);return n}function Ks(e){return e.length>2&&e.charCodeAt(0)===60&&e.endsWith(">")}function bc(e){if(e==null)return typeof document=="undefined"?[]:[document];if(e instanceof pe)return e.toArray();if(typeof e=="string")return We(e);if(typeof e=="function")return typeof document=="undefined"?[]:[document];let t=We(e);return t.length?t:typeof document=="undefined"?[]:[document]}function We(e,t){if(e==null)return[];if(typeof e=="string"){let o=e.trim();if(!o)return[];if(Ks(o))return Or(o);let s=[];for(let i of bc(t))try{for(let a of Array.from(i.querySelectorAll(o)))s.push(a)}catch(a){}return ae(s)}if(e instanceof pe)return e.toArray();if(typeof e=="function")return[];let n=e;if(typeof n.nodeType=="number"){if(n.nodeType===1)return[n];if(n.nodeType===9){let o=n;return o.documentElement?[o.documentElement]:[]}return n.nodeType===11?Array.from(n.children):[]}let r=e;if(typeof r.length=="number"){let o=[];for(let s=0;s<r.length;s++){let i=r[s];i&&i.nodeType===1&&o.push(i)}return ae(o)}return[]}function Fs(e){if(e==null)return[];if(typeof e=="string"){let r=e;return Ks(r.trim())?Or(r):[document.createTextNode(r)]}if(e instanceof pe)return e.toArray();if(typeof e=="function")return[];let t=e;if(typeof t.nodeType=="number")return[t];let n=e;if(typeof n.length=="number"){let r=[];for(let o=0;o<n.length;o++)n[o]&&r.push(n[o]);return r}return[]}function kn(e,t,n){let r=Qs(t);if(n===null||n===""){e.style.removeProperty(r);return}let o=typeof n=="number"&&!vc.has(r)&&!r.startsWith("--")?`${n}px`:String(n);e.style.setProperty(r,o)}function wc(e,t){for(let[n,r]of Object.entries(t))kn(e,n,r)}function Bs(e){if(e===void 0)return;if(e==="")return"";if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;if(/^-?\d+(\.\d+)?$/.test(e))return Number(e);let t=e.charCodeAt(0);if(t===123||t===91||t===34)try{return JSON.parse(e)}catch(n){return e}return e}function Us(e){return e.replace(/-([a-z0-9])/g,(t,n)=>n.toUpperCase())}var Gs=new WeakMap;function qs(e){return e.hasAttribute("hidden")||e.style.display==="none"?!0:e.isConnected?getComputedStyle(e).display==="none":!1}function _s(e){e.removeAttribute("hidden");let t=Gs.get(e);t!==void 0&&t!=="none"?e.style.display=t:e.style.removeProperty("display"),e.isConnected&&getComputedStyle(e).display==="none"&&(e.style.display="block")}function Vs(e){let t=e.style.display;t&&t!=="none"&&Gs.set(e,t),e.style.display="none"}var Ws="input,select,textarea";function zs(e){return e.matches(Ws)?[e]:Array.from(e.querySelectorAll(Ws))}function Tc(e){let t=e;if(!t.name||t.disabled)return!1;let n=(t.getAttribute("type")||"").toLowerCase();return!(n==="file"||n==="submit"||n==="reset"||n==="button"||(n==="checkbox"||n==="radio")&&!t.checked)}var Sn=new WeakMap;function xc(e){let t=Sn.get(e);return t||Sn.set(e,t=[]),t}var pe=class e{constructor(t=[]){M(this,"length");M(this,"elements");this.elements=t,this.length=t.length;let n=this;for(let r=0;r<t.length;r++)n[r]=t[r]}[Symbol.iterator](){return this.elements[Symbol.iterator]()}find(t){let n=[];for(let r of this.elements)try{for(let o of Array.from(r.querySelectorAll(t)))n.push(o)}catch(o){}return new e(ae(n))}closest(t){let n=[];for(let r of this.elements){let o=r.closest(t);o&&n.push(o)}return new e(ae(n))}parent(t){let n=[];for(let r of this.elements){let o=r.parentElement;o&&(!t||o.matches(t))&&n.push(o)}return new e(ae(n))}parents(t){let n=[];for(let r of this.elements){let o=r.parentElement;for(;o;)(!t||o.matches(t))&&n.push(o),o=o.parentElement}return new e(ae(n))}children(t){let n=[];for(let r of this.elements)for(let o of Array.from(r.children))(!t||o.matches(t))&&n.push(o);return new e(ae(n))}siblings(t){let n=[];for(let r of this.elements){let o=r.parentElement;if(o)for(let s of Array.from(o.children))s!==r&&(!t||s.matches(t))&&n.push(s)}return new e(ae(n))}next(t){let n=[];for(let r of this.elements){let o=r.nextElementSibling;o&&(!t||o.matches(t))&&n.push(o)}return new e(ae(n))}prev(t){let n=[];for(let r of this.elements){let o=r.previousElementSibling;o&&(!t||o.matches(t))&&n.push(o)}return new e(ae(n))}first(){return this.eq(0)}last(){return this.eq(-1)}eq(t){let n=t<0?this.elements.length+t:t,r=this.elements[n];return new e(r?[r]:[])}filter(t){let n=this.elements.filter((r,o)=>typeof t=="function"?t(r,o):r.matches(t));return new e(n)}not(t){let n=this.elements.filter((r,o)=>typeof t=="function"?!t(r,o):!r.matches(t));return new e(n)}has(t){let n=this.elements.filter(r=>typeof t=="string"?r.querySelector(t)!==null:r.contains(t));return new e(n)}is(t){return this.elements.some((n,r)=>typeof t=="function"?t(n,r):n.matches(t))}map(t){return this.elements.map((n,r)=>t(n,r))}each(t){for(let n=0;n<this.elements.length;n++){let r=this.elements[n];if(t.call(r,r,n)===!1)break}return this}get(...t){if(!t.length)return this.toArray();let n=Number(t[0]);return this.elements[n<0?this.elements.length+n:n]}toArray(){return this.elements.slice()}add(t,n){return new e(ae([...this.elements,...We(t,n)]))}slice(t,n){return new e(this.elements.slice(t,n))}text(...t){var o,s;if(!t.length)return(s=(o=this.elements[0])==null?void 0:o.textContent)!=null?s:"";let n=t[0],r=n==null?"":String(n);for(let i of this.elements){for(let a of Array.from(i.childNodes))H(a);i.textContent=r}return this}html(...t){var o,s;if(!t.length)return(s=(o=this.elements[0])==null?void 0:o.innerHTML)!=null?s:"";let n=t[0],r=n==null?"":String(n);for(let i of this.elements){for(let a of Array.from(i.childNodes))H(a);i.innerHTML=r}return this}val(...t){var r;if(!t.length){let o=this.elements[0];if(!o)return"";let s=o;return o.tagName==="SELECT"&&s.multiple?Array.from(s.selectedOptions).map(i=>i.value):o.type==="checkbox"?o.checked?o.value||"on":"":(r=o.value)!=null?r:""}let n=t[0];for(let o of this.elements){let s=o,i=o;if(s.tagName==="SELECT"&&i.multiple){let a=(Array.isArray(n)?n:[n]).map(String);for(let c of Array.from(i.options))c.selected=a.includes(c.value);continue}if(s.type==="checkbox"||s.type==="radio"){s.checked=Array.isArray(n)?n.map(String).includes(s.value):n===!0||String(n)===s.value;continue}s.value=n==null?"":String(n)}return this}attr(...t){var s,i;let n=t[0];if(n!==null&&typeof n=="object"){for(let a of this.elements)for(let[c,u]of Object.entries(n))u===null||u===!1?a.removeAttribute(c):a.setAttribute(c,u===!0?"":String(u));return this}let r=String(n);if(t.length<2)return(i=(s=this.elements[0])==null?void 0:s.getAttribute(r))!=null?i:void 0;let o=t[1];for(let a of this.elements)o===null||o===!1?a.removeAttribute(r):a.setAttribute(r,o===!0?"":String(o));return this}removeAttr(t){let n=Ve(t);for(let r of this.elements)for(let o of n)r.removeAttribute(o);return this}prop(...t){let n=String(t[0]);if(t.length<2){let r=this.elements[0];return r?r[n]:void 0}for(let r of this.elements)r[n]=t[1];return this}data(...t){let n=t[0];if(!t.length){let s=this.elements[0];if(!s)return{};let i={};for(let[a,c]of Object.entries(s.dataset))i[a]=Bs(c);return i}if(n!==null&&typeof n=="object"){for(let s of this.elements)for(let[i,a]of Object.entries(n))s.dataset[Us(i)]=typeof a=="string"?a:JSON.stringify(a!=null?a:null);return this}let r=Us(String(n));if(t.length<2){let s=this.elements[0];return s?Bs(s.dataset[r]):void 0}let o=t[1];for(let s of this.elements)s.dataset[r]=typeof o=="string"?o:JSON.stringify(o!=null?o:null);return this}css(...t){let n=t[0];if(n!==null&&typeof n=="object"){for(let o of this.elements)wc(o,n);return this}let r=String(n);if(t.length<2){let o=this.elements[0];if(!o)return"";let s=Qs(r);return((o.isConnected?getComputedStyle(o).getPropertyValue(s):"")||o.style.getPropertyValue(s)).trim()}for(let o of this.elements)kn(o,r,t[1]);return this}width(...t){if(!t.length){let n=this.elements[0];return n?n.getBoundingClientRect().width:0}for(let n of this.elements)kn(n,"width",t[0]);return this}height(...t){if(!t.length){let n=this.elements[0];return n?n.getBoundingClientRect().height:0}for(let n of this.elements)kn(n,"height",t[0]);return this}offset(){let t=this.elements[0];if(!t)return{top:0,left:0};let n=t.getBoundingClientRect();return{top:n.top+window.scrollY,left:n.left+window.scrollX}}position(){let t=this.elements[0];return t?{top:t.offsetTop,left:t.offsetLeft}:{top:0,left:0}}scrollTop(...t){var r,o;if(!t.length)return(o=(r=this.elements[0])==null?void 0:r.scrollTop)!=null?o:0;let n=Number(t[0])||0;for(let s of this.elements)s.scrollTop=n;return this}addClass(t){let n=Ve(t);if(n.length)for(let r of this.elements)r.classList.add(...n);return this}removeClass(t){let n=Ve(t);if(n.length)for(let r of this.elements)r.classList.remove(...n);return this}toggleClass(t,n){let r=Ve(t);for(let o of this.elements)for(let s of r)n===void 0?o.classList.toggle(s):o.classList.toggle(s,n);return this}hasClass(t){let n=Ve(t);return n.length?this.elements.some(r=>n.every(o=>r.classList.contains(o))):!1}insert(t,n){let r=this.elements.length;for(let o=0;o<r;o++){let s=this.elements[o];for(let i of Fs(t))n(s,o===r-1?i:i.cloneNode(!0))}return this}append(t){return this.insert(t,(n,r)=>n.appendChild(r))}prepend(t){return this.insert(t,(n,r)=>n.insertBefore(r,n.firstChild))}before(t){return this.insert(t,(n,r)=>{var o;return(o=n.parentNode)==null?void 0:o.insertBefore(r,n)})}after(t){return this.insert(t,(n,r)=>{var o;return(o=n.parentNode)==null?void 0:o.insertBefore(r,n.nextSibling)})}appendTo(t){let n=We(t);for(let r=0;r<n.length;r++)for(let o of this.elements)n[r].appendChild(r===n.length-1?o:o.cloneNode(!0));return this}prependTo(t){let n=We(t);for(let r=0;r<n.length;r++){let o=n[r],s=this.elements.map(i=>r===n.length-1?i:i.cloneNode(!0));for(let i=s.length-1;i>=0;i--)o.insertBefore(s[i],o.firstChild)}return this}replaceWith(t){for(let n of this.elements){let r=n.parentNode;if(r){for(let o of Fs(t))r.insertBefore(o,n);H(n),n.remove()}}return this}wrap(t){var n;for(let r of this.elements){let o=We(t)[0];if(!o)continue;let s=o.cloneNode(!0);(n=r.parentNode)==null||n.insertBefore(s,r);let i=s;for(;i.firstElementChild;)i=i.firstElementChild;i.appendChild(r)}return this}unwrap(){let t=new Set;for(let n of this.elements){let r=n.parentElement;r&&r!==document.body&&t.add(r)}for(let n of t){let r=n.parentNode;if(r){for(;n.firstChild;)r.insertBefore(n.firstChild,n);H(n),n.remove()}}return this}remove(){for(let t of this.elements)H(t),t.remove();return this}empty(){for(let t of this.elements){for(let n of Array.from(t.childNodes))H(n);t.replaceChildren()}return this}clone(t=!0){return new e(this.elements.map(n=>n.cloneNode(t)))}on(t,...n){var a;let r=typeof n[0]=="string",o=r?n[0]:null,s=r?n[1]:n[0],i=(a=r?n[2]:n[1])!=null?a:{};if(typeof s!="function")return this;for(let c of this.elements)for(let u of Ve(t)){let l=f=>{if(!o){s.call(c,f);return}let p=f.target,d=p==null?void 0:p.closest(o);!d||!c.contains(d)||s.call(d,f)};c.addEventListener(u,l,i),xc(c).push({type:u,selector:o,handler:s,wrapped:l,options:i})}return this}off(t,n,r){let o=typeof n=="string"?n:null,s=typeof n=="function"?n:r!=null?r:null,i=t?Ve(t):null;for(let a of this.elements){let c=Sn.get(a);if(!c)continue;let u=[];for(let l of c){let f=!i||i.includes(l.type),p=o===null||l.selector===o,d=s===null||l.handler===s;f&&p&&d?a.removeEventListener(l.type,l.wrapped,l.options):u.push(l)}Sn.set(a,u)}return this}once(t,...n){let r=typeof n[0]=="string",o=r?n[0]:null,s=r?n[1]:n[0];if(typeof s!="function")return this;let i=this,a=function(c){return o?i.off(t,o,a):i.off(t,a),s.call(this,c)};return o?this.on(t,o,a):this.on(t,a)}trigger(t,n){for(let r of this.elements){if(n===void 0&&typeof r[t]=="function"){r[t]();continue}let o=new CustomEvent(t,{detail:n,bubbles:!0,cancelable:!0});o.__voodoo=!0,r.dispatchEvent(o)}return this}emit(t,n){for(let r of this.elements){let o=new CustomEvent(t,{detail:n,bubbles:!0,cancelable:!0});o.__voodoo=!0,r.dispatchEvent(o)}return this}show(){for(let t of this.elements)_s(t);return this}hide(){for(let t of this.elements)Vs(t);return this}toggle(t){for(let n of this.elements)(t===void 0?qs(n):t)?_s(n):Vs(n);return this}fadeIn(t=220){for(let n of this.elements)n.removeAttribute("hidden"),wn(n,t);return this}fadeOut(t=220){for(let n of this.elements)Tn(n,t);return this}slideUp(t=240){for(let n of this.elements)Dt(n,t);return this}slideDown(t=240){for(let n of this.elements)n.removeAttribute("hidden"),Ht(n,t);return this}slideToggle(t=240){for(let n of this.elements)qs(n)?(n.removeAttribute("hidden"),Ht(n,t)):Dt(n,t);return this}animate(t,n=300){for(let r of this.elements)typeof r.animate=="function"&&r.animate(t,n);return this}scrollIntoView(t={behavior:"smooth",block:"start"}){var n;return(n=this.elements[0])==null||n.scrollIntoView(t),this}serialize(){let t=this.elements[0];if(!t)return"";let n=new URLSearchParams;for(let r of zs(t)){if(!Tc(r))continue;let o=r,s=r;if(o.tagName==="SELECT"&&s.multiple){for(let i of Array.from(s.selectedOptions))n.append(o.name,i.value);continue}n.append(o.name,o.value)}return n.toString()}serializeObject(){var r,o,s,i;let t=this.elements[0],n={};if(!t)return n;for(let a of zs(t)){let c=a;if(!c.name||c.disabled)continue;let u=(c.getAttribute("type")||"").toLowerCase();if(u==="submit"||u==="reset"||u==="button")continue;let l=c.name.endsWith("[]"),f=l?c.name.slice(0,-2):c.name,p=a,d;if(u==="checkbox"){if(!c.checked&&!l){n[f]=(r=n[f])!=null?r:!1;continue}if(!c.checked)continue;d=c.value==="on"?!0:c.value}else if(u==="radio"){if(!c.checked)continue;d=c.value}else u==="file"?d=c.multiple?Array.from((o=c.files)!=null?o:[]):(i=(s=c.files)==null?void 0:s[0])!=null?i:null:c.tagName==="SELECT"&&p.multiple?d=Array.from(p.selectedOptions).map(m=>m.value):u==="number"||u==="range"?d=c.value===""?null:Number(c.value):d=c.value;if(l){let m=n[f];Array.isArray(m)?m.push(d):n[f]=[d];continue}if(Object.prototype.hasOwnProperty.call(n,f)){let m=n[f];Array.isArray(m)?m.push(d):m===void 0||m===!1?n[f]=d:n[f]=[m,d];continue}n[f]=d}return n}focus(t){var n;return(n=this.elements[0])==null||n.focus(t),this}blur(){for(let t of this.elements)t.blur();return this}select(){for(let t of this.elements){let n=t;typeof n.select=="function"&&n.select()}return this}walk(t=!1){for(let n of this.elements)t&&H(n),j(n,xe(n.parentNode));return this}destroy(){for(let t of this.elements)H(t);return this}};function $r(e,t){if(typeof e=="function"){Hr(e);let n=typeof document!="undefined"?document.documentElement:null;return new pe(n?[n]:[])}return new pe(We(e,t))}function Hr(e){return typeof document=="undefined"?Promise.resolve():new Promise(t=>{Xo(()=>{try{e==null||e()}catch(n){$(n,"V.ready")}t()})})}function Ys(e){return new pe(Or(e))}var Xs=((e,t)=>$r(e,t));Object.assign(Xs,En,{query:$r,ready:Hr,fromHtml:Ys,Collection:pe,magic:N});var Dr=Xs;re();ut();re();var Ec=/^#([0-9a-f])([0-9a-f])([0-9a-f])[0-9a-f]?$/i,kc=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})(?:[0-9a-f]{2})?$/i,Sc=/^rgba?\(([^)]+)\)$/i,Ac=/^hsla?\(([^)]+)\)$/i;function Js(e){return e.split(/[\s,/]+/).map(t=>parseFloat(t)).filter(t=>!Number.isNaN(t))}function Rc(e,t,n){let r=(e%360+360)%360,o=J(t/100,0,1),s=J(n/100,0,1),i=(1-Math.abs(2*s-1))*o,a=i*(1-Math.abs(r/60%2-1)),c=s-i/2,u=Math.floor(r/60)%6,l=[[i,a,0],[a,i,0],[0,i,a],[0,a,i],[a,0,i],[i,0,a]],[f,p,d]=l[u];return{r:Math.round((f+c)*255),g:Math.round((p+c)*255),b:Math.round((d+c)*255)}}function me(e){let t=String(e!=null?e:"").trim();if(!t)return null;let n=Ec.exec(t);if(n)return{r:parseInt(n[1]+n[1],16),g:parseInt(n[2]+n[2],16),b:parseInt(n[3]+n[3],16)};let r=kc.exec(t);if(r)return{r:parseInt(r[1],16),g:parseInt(r[2],16),b:parseInt(r[3],16)};let o=Sc.exec(t);if(o){let[i,a,c]=Js(o[1]);return i===void 0||a===void 0||c===void 0?null:{r:J(i,0,255),g:J(a,0,255),b:J(c,0,255)}}let s=Ac.exec(t);if(s){let[i,a,c]=Js(s[1]);return i===void 0||a===void 0||c===void 0?null:Rc(i,a,c)}return null}function J(e,t,n){return e<t?t:e>n?n:e}function vt(e){let t=e/255;return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Ir(e){return e<=.0031308?e*12.92:1.055*Math.pow(e,.4166666666666667)-.055}function Cc(e){let t=vt(e.r),n=vt(e.g),r=vt(e.b),o=.4122214708*t+.5363325363*n+.0514459929*r,s=.2119034982*t+.6806995451*n+.1073969566*r,i=.0883024619*t+.2817188376*n+.6299787005*r,a=Math.cbrt(o),c=Math.cbrt(s),u=Math.cbrt(i);return{l:.2104542553*a+.793617785*c-.0040720468*u,a:1.9779984951*a-2.428592205*c+.4505937099*u,b:.0259040371*a+.7827717662*c-.808675766*u}}function Pc(e){let t=e.l+.3963377774*e.a+.2158037573*e.b,n=e.l-.1055613458*e.a-.0638541728*e.b,r=e.l-.0894841775*e.a-1.291485548*e.b,o=t*t*t,s=n*n*n,i=r*r*r;return{r:Ir(4.0767416621*o-3.3077115913*s+.2309699292*i),g:Ir(-1.2684380046*o+2.6097574011*s-.3413193965*i),b:Ir(-.0041960863*o-.7034186147*s+1.707614701*i)}}function Rn(e){let t=Cc(e),n=Math.sqrt(t.a*t.a+t.b*t.b),r=Math.atan2(t.b,t.a)*180/Math.PI;return r<0&&(r+=360),{l:t.l,c:n,h:n<1e-5?0:r}}function Zs(e){let t=e.h*Math.PI/180;return Pc({l:e.l,a:Math.cos(t)*e.c,b:Math.sin(t)*e.c})}function yt(e){let t=Math.max(0,e.c);for(let r=0;r<32;r++){let o=Zs({l:J(e.l,0,1),c:t,h:e.h});if(o.r>=-.001&&o.r<=1.001&&o.g>=-.001&&o.g<=1.001&&o.b>=-.001&&o.b<=1.001)return{r:Math.round(J(o.r,0,1)*255),g:Math.round(J(o.g,0,1)*255),b:Math.round(J(o.b,0,1)*255)};t*=.92}let n=Zs({l:J(e.l,0,1),c:0,h:e.h});return{r:Math.round(J(n.r,0,1)*255),g:Math.round(J(n.g,0,1)*255),b:Math.round(J(n.b,0,1)*255)}}function jr(e){return J(Math.round(e),0,255).toString(16).padStart(2,"0")}function ze(e){return`#${jr(e.r)}${jr(e.g)}${jr(e.b)}`}function gt(e,t){return`rgba(${Math.round(e.r)}, ${Math.round(e.g)}, ${Math.round(e.b)}, ${Number(t.toFixed(3))})`}function oi(e){return ze(yt(e))}function Br(e){return .2126*vt(e.r)+.7152*vt(e.g)+.0722*vt(e.b)}function Ur(e,t){let n=typeof e=="string"?me(e):e,r=typeof t=="string"?me(t):t;if(!n||!r)return 1;let o=Br(n),s=Br(r),i=Math.max(o,s),a=Math.min(o,s);return(i+.05)/(a+.05)}var si={r:255,g:255,b:255},Cn={r:0,g:0,b:0};function Bt(e){let t=typeof e=="string"?me(e):e;return t?Ur(t,si)>=Ur(t,Cn)?"#ffffff":"#000000":"#ffffff"}var qr=[50,100,200,300,400,500,600,700,800,900],ii=[.973,.941,.889,.819,.732,.638,.558,.478,.399,.327],Mc=[.14,.26,.46,.68,.88,1,.97,.89,.78,.65],ai=[.244,.286,.343,.408,.484,.588,.668,.748,.836,.928],Lc=[.3,.42,.6,.78,.92,1,.92,.78,.57,.33];function ci(e,t=!1){var a;let n=typeof e=="string"?(a=me(e))!=null?a:Cn:e,r=Rn(n),o=t?ai:ii,s=t?Lc:Mc,i={};return qr.forEach((c,u)=>{i[String(c)]=oi({l:o[u],c:r.c*s[u],h:r.h})}),i}var Pn={violeta:{primary:"#6D3BF5",accent:"#FF3D8B",success:"#16A34A",warning:"#D97706",danger:"#E11D48",info:"#7C6BFF"},oceano:{primary:"#0E7BC4",accent:"#0FB5C9",success:"#0F9D6E",warning:"#D08700",danger:"#DC2F3E",info:"#3B82F6"},floresta:{primary:"#1F8A4C",accent:"#7FA80E",success:"#18A05A",warning:"#C97A0A",danger:"#C93A2E",info:"#2C8FA8"},poente:{primary:"#E4632A",accent:"#D62F63",success:"#3E9B52",warning:"#D99000",danger:"#D32F2F",info:"#B45FC0"},grafite:{primary:"#4C5A70",accent:"#2E7FD1",success:"#2F8F60",warning:"#B57A12",danger:"#C2453F",info:"#5B7A99"}},ui=["primary","accent","success","warning","danger","info"],_r="voodoo:palette",ei="voodoo-palette",Nc="system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif",Oc="ui-monospace, SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace";function ti(e,t){let n=(e!=null?e:"").trim();return n?n.includes(",")?n:`${/^['"]/.test(n)?n:`'${n}'`}, ${t}`:t}var $c=/^([\d.]+)(px|rem|em)$/;function Hc(e){let t=(e||"12px").trim(),n=$c.exec(t);if(!n)return{"--v-radius":t,"--v-radius-sm":`calc(${t} * 0.6)`,"--v-radius-lg":`calc(${t} * 1.5)`,"--v-radius-xl":`calc(${t} * 2)`,"--v-radius-full":"999px"};let r=parseFloat(n[1]),o=n[2],s=i=>`${Math.round(i*1e3)/1e3}${o}`;return{"--v-radius":s(r),"--v-radius-sm":s(Math.max(r*.55,0)),"--v-radius-lg":s(r*1.5),"--v-radius-xl":s(r*2),"--v-radius-full":"999px"}}function ni(e,t){var u,l,f,p;let n={},r={},o={};for(let d of ui){let m=(u=me(e[d]))!=null?u:Cn,g=Rn(m),h=ci(m,t);r[d]=h;for(let P of qr)n[`--v-${d}-${P}`]=h[String(P)];let y=t?{l:Math.max(g.l,.62),c:g.c*.95,h:g.h}:g,S=t?{l:Math.min(y.l+.07,.94),c:y.c*.95,h:y.h}:{l:Math.max(y.l-.055,.12),c:y.c,h:y.h},V=t?{l:Math.min(y.l+.13,.97),c:y.c*.88,h:y.h}:{l:Math.max(y.l-.105,.1),c:y.c,h:y.h},k=yt(y),v=yt(S),I=yt(V);n[`--v-${d}`]=ze(t?k:m),n[`--v-${d}-hover`]=ze(v),n[`--v-${d}-active`]=ze(I),n[`--v-${d}-contrast`]=Bt(t?k:m),n[`--v-${d}-contrast-hover`]=Bt(v),n[`--v-${d}-contrast-active`]=Bt(I);let D=h[50],C=h[100],W=t?h[800]:h[700];n[`--v-${d}-soft`]=D,n[`--v-${d}-soft-hover`]=C,n[`--v-${d}-soft-text`]=W,n[`--v-${d}-ring`]=gt(k,t?.45:.32),n[`--v-${d}-border`]=t?h[300]:h[200],o[d]=n[`--v-${d}-contrast`]}let s=(f=me((l=e.neutral)!=null?l:e.primary))!=null?f:Cn,i=Rn(s).h,a=(d,m)=>oi({l:d,c:m,h:i}),c={};if(qr.forEach((d,m)=>{let g=t?ai:ii;c[String(d)]=a(g[m],.012),n[`--v-neutral-${d}`]=c[String(d)]}),r.neutral=c,t)n["--v-surface"]=a(.248,.021),n["--v-surface-2"]=a(.196,.021),n["--v-surface-3"]=a(.305,.024),n["--v-surface-inset"]=a(.17,.02),n["--v-text"]=a(.965,.008),n["--v-text-muted"]=a(.748,.017),n["--v-text-soft"]=a(.63,.017),n["--v-border"]=a(.355,.023),n["--v-border-strong"]=a(.46,.026),n["--v-overlay"]="rgba(0, 0, 0, 0.62)",n["--v-shadow-sm"]="0 1px 2px rgba(0, 0, 0, 0.5)",n["--v-shadow"]="0 10px 30px rgba(0, 0, 0, 0.5)",n["--v-shadow-lg"]="0 24px 60px rgba(0, 0, 0, 0.62)";else{let d=yt({l:.24,c:.028,h:i});n["--v-surface"]=a(1,0),n["--v-surface-2"]=a(.981,.006),n["--v-surface-3"]=a(.955,.009),n["--v-surface-inset"]=a(.968,.008),n["--v-text"]=ze(d),n["--v-text-muted"]=a(.53,.023),n["--v-text-soft"]=a(.655,.018),n["--v-border"]=a(.906,.012),n["--v-border-strong"]=a(.828,.016),n["--v-overlay"]=gt(d,.45),n["--v-shadow-sm"]=`0 1px 2px ${gt(d,.08)}`,n["--v-shadow"]=`0 10px 30px ${gt(d,.14)}`,n["--v-shadow-lg"]=`0 24px 60px ${gt(d,.2)}`}return n["--v-focus-ring"]=n["--v-primary-ring"],o.surface=Bt((p=me(n["--v-surface"]))!=null?p:si),{vars:n,scales:r,contrast:o}}function Fr(e,t){let n=Object.entries(t).map(([r,o])=>` ${r}: ${o};`).join(`
138
+ `)}))}function lc(e){let t=e.tagName;if(t==="FORM")return"submit";if(t==="INPUT"||t==="SELECT"||t==="TEXTAREA"){let n=e.type;return n==="button"||n==="submit"?"click":"change"}return"click"}function dc({el:e,cleanup:t,run:n}){var l,f;let r=E(e,"trigger")||lc(e),[o,...s]=r.split(/[.\s]+/),i=_((l=E(e,"poll"))!=null?l:void 0,0);if(i>0){n();let p=setInterval(()=>{document.visibilityState==="visible"&&n()},i);t(()=>clearInterval(p));return}if(o==="load"||o==="ready"){n();return}if(o==="visible"||o==="revealed"){if(typeof IntersectionObserver=="undefined"){n();return}let p=new IntersectionObserver(d=>{for(let m of d)m.isIntersecting&&(n(),s.includes("repeat")||p.unobserve(e))},{rootMargin:"80px"});p.observe(e),t(()=>p.disconnect());return}let a=s.includes("once"),c=_((f=E(e,"debounce"))!=null?f:void 0,0),u=p=>{(e.tagName==="FORM"||e.href)&&p.preventDefault(),n(p)};c>0&&(u=Fe(u,c)),e.addEventListener(o,u,{once:a}),t(()=>e.removeEventListener(o,u))}var fc=[["get","GET"],["post","POST"],["put","PUT"],["patch","PATCH"],["delete","DELETE"]];for(let[e,t]of fc)A(e,({el:n,scope:r,expression:o,cleanup:s})=>{dc({el:n,scope:r,cleanup:s,run:a=>{let c=jt(o,r);if(!c)return;let u=E(n,"body")||E(n,"data-body"),l=u?O(u,r.child({$event:a}),"v-body"):void 0,f=E(n,"params"),p=f?O(f,r,"v-params"):void 0;It({el:n,scope:r,method:t,url:c,body:l,params:p,event:a})}})});function jt(e,t){let n=e.trim();if(!n)return"";if((/^[./#?]/.test(n)||/^https?:\/\//i.test(n)||/^[\w-]+\/[\w\-/.]*$/.test(n))&&!/[+`'"]|\$\{/.test(n))return n;let o=O(n,t,"URL");return typeof o=="string"?o:n}A("load",({el:e,scope:t,expression:n})=>{let r=jt(n,t);r&&It({el:e,scope:t,method:"GET",url:r})});A("load-visible",({el:e,scope:t,cleanup:n,expression:r})=>{let o=jt(r,t);if(!o)return;if(typeof IntersectionObserver=="undefined"){It({el:e,scope:t,method:"GET",url:o});return}let s=new IntersectionObserver(i=>{for(let a of i)a.isIntersecting&&(s.unobserve(e),It({el:e,scope:t,method:"GET",url:o}))},{rootMargin:"120px"});s.observe(e),n(()=>s.disconnect())});A("search",({el:e,scope:t,expression:n,cleanup:r})=>{var f,p;let o=e,s=jt(n,t),i=E(e,"param")||o.getAttribute("name")||"q",a=_((f=E(e,"debounce"))!=null?f:void 0,300),c=Number((p=E(e,"min-length"))!=null?p:0),u=Fe(()=>{let d=o.value.trim();d.length<c||It({el:e,scope:t,method:"GET",url:s,params:{[i]:d}})},a),l=()=>u();o.addEventListener("input",l),r(()=>{o.removeEventListener("input",l),u.cancel()})});A("resource",({el:e,scope:t,expression:n,cleanup:r})=>{var c,u,l,f;let o=n.indexOf(":"),s=E(e,"as")||"resource",i=n.trim();if(o>-1){let p=n.slice(0,o).trim();/^[A-Za-z_$][\w$]*$/.test(p)&&(s=p,i=n.slice(o+1).trim())}let a=bn(()=>jt(i,t),{method:(E(e,"method")||"GET").toUpperCase(),params:()=>E(e,"params")?O(E(e,"params"),t,"v-params"):void 0,cache:_((c=E(e,"cache"))!=null?c:void 0,0)||void 0,retry:Number((u=E(e,"retry"))!=null?u:0),timeout:_((l=E(e,"timeout"))!=null?l:void 0,oe.defaults.timeout),jsonPath:E(e,"json-path"),poll:_((f=E(e,"poll"))!=null?f:void 0,0),manual:Nr(e,"manual"),onSuccess:p=>ht(e,"voodoo:success",{data:p}),onError:(p,d)=>ht(e,"voodoo:error",{error:p,message:d})});t.set(s,a),r(()=>a.stop())},{priority:U.DATA});for(let e of["target","swap","trigger","poll","param","params","body","data-body","headers","cache","retry","timeout","as","json-path","template","offline-queue","min-length","scroll-to","manual","debounce","throttle","indicator"])A(e,()=>{},{priority:U.TRANSITION});Fo(zo);Wo(At);Jo(js);vs();var Ft=new Map;function Is(e,t){let n=Ft.get(e);return n||Ft.set(e,n=new Set),n.add(t),()=>n.delete(t)}function pc(e,t){let n=Is(e,r=>{n(),t(r)});return n}function mc(e,t){let n=Ft.get(e);if(n)for(let r of[...n])try{r(t)}catch(o){$(o,`event "${e}"`)}}function hc(e,t){var n;if(!t){Ft.delete(e);return}(n=Ft.get(e))==null||n.delete(t)}function js(e,t){var r,o;let n=typeof t=="function"?{mounted:t,updated:t}:t;A(e,s=>{var l,f;let i,a=!1,c=p=>{var d,m;return{el:s.el,value:p,oldValue:i,arg:s.arg,modifiers:s.modifiers,expression:s.expression,scope:s.scope,instance:(m=(d=s.scope.owner)==null?void 0:d.component)!=null?m:null}},u=n.raw?s.expression:s.evaluate();(l=n.created)==null||l.call(n,s.el,c(u)),(f=n.beforeMount)==null||f.call(n,s.el,c(u)),s.effect(()=>{var m,g;let p=n.raw?s.expression:s.evaluate();if(!a){a=!0,i=p,(m=n.mounted)==null||m.call(n,s.el,c(p));return}if(p===i)return;let d=c(p);(g=n.updated)==null||g.call(n,s.el,d),i=p}),s.cleanup(()=>{var d,m;let p=c(i);(d=n.beforeUnmount)==null||d.call(n,s.el,p),(m=n.unmounted)==null||m.call(n,s.el,p)})},{priority:(r=n.priority)!=null?r:U.DEFAULT,terminal:(o=n.terminal)!=null?o:!1})}function gc(e){return Object.defineProperties(de.data,Object.getOwnPropertyDescriptors(e)),de.data}var yc="0.11.1",En={...wr,version:yc,config:w,reactive:F,ref:Tt,shallowRef:Kn,computed:xt,effect:te,watch:ue,watchEffect:Yn,nextTick:$e,toRaw:K,markRaw:zn,unref:Gn,stop:qn,effectScope:_n,EffectScope:ne,flushSync:jn,data:gc,store:ns,stores:ln,removeStore:rs,storeNames:os,scope:de,component:rt,components:z,directive:js,directives:ve,magic:N,magics:kt,createApp:Zo,start:Uo,whenReady:an,whenElement:cn,walk:j,refresh:_o,destroy:H,stopObserving:qo,getScope:et,findScope:xe,addCleanup:fe,parseAttribute:Je,parse:le,tokenize:Jt,evaluate:x,evaluateIn:O,stringify:ye,clearParseCache:uo,globals:G,http:oe,request:Lt,HttpError:X,resource:bn,toast:Pe,storage:se,session:mn,cookie:hn,cache:yn,url:gn,theme:ft,clipboard:Ar,screen:ie,network:_e,enter:Ot,leave:$t,fadeIn:wn,fadeOut:Tn,slideUp:Dt,slideDown:Ht,viewTransition:Es,injectStyle:Ee,ensureTokens:Ue,on:Is,once:pc,off:hc,emit:mc,use(e,t){Zt(En,e,t)},onError(e){Fn(e)},instances:on,Scope:De,PRIORITY:U,VoodooSyntaxError:L,VoodooRuntimeError:B};ts(En);Z();var vc=new Set(["animation-iteration-count","aspect-ratio","border-image-slice","column-count","flex","flex-grow","flex-shrink","font-weight","grid-area","grid-column","grid-row","line-height","opacity","order","orphans","scale","tab-size","widows","z-index","zoom"]);function Qs(e){return e.startsWith("--")?e:e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}function ae(e){return e.length<2?e:Array.from(new Set(e))}function Ve(e){return String(e!=null?e:"").split(/\s+/).filter(Boolean)}function Or(e){if(typeof document=="undefined")return[];let t=document.createElement("template");t.innerHTML=e.trim();let n=[];for(let r of Array.from(t.content.children))n.push(r);return n}function Ks(e){return e.length>2&&e.charCodeAt(0)===60&&e.endsWith(">")}function bc(e){if(e==null)return typeof document=="undefined"?[]:[document];if(e instanceof pe)return e.toArray();if(typeof e=="string")return We(e);if(typeof e=="function")return typeof document=="undefined"?[]:[document];let t=We(e);return t.length?t:typeof document=="undefined"?[]:[document]}function We(e,t){if(e==null)return[];if(typeof e=="string"){let o=e.trim();if(!o)return[];if(Ks(o))return Or(o);let s=[];for(let i of bc(t))try{for(let a of Array.from(i.querySelectorAll(o)))s.push(a)}catch(a){}return ae(s)}if(e instanceof pe)return e.toArray();if(typeof e=="function")return[];let n=e;if(typeof n.nodeType=="number"){if(n.nodeType===1)return[n];if(n.nodeType===9){let o=n;return o.documentElement?[o.documentElement]:[]}return n.nodeType===11?Array.from(n.children):[]}let r=e;if(typeof r.length=="number"){let o=[];for(let s=0;s<r.length;s++){let i=r[s];i&&i.nodeType===1&&o.push(i)}return ae(o)}return[]}function Fs(e){if(e==null)return[];if(typeof e=="string"){let r=e;return Ks(r.trim())?Or(r):[document.createTextNode(r)]}if(e instanceof pe)return e.toArray();if(typeof e=="function")return[];let t=e;if(typeof t.nodeType=="number")return[t];let n=e;if(typeof n.length=="number"){let r=[];for(let o=0;o<n.length;o++)n[o]&&r.push(n[o]);return r}return[]}function kn(e,t,n){let r=Qs(t);if(n===null||n===""){e.style.removeProperty(r);return}let o=typeof n=="number"&&!vc.has(r)&&!r.startsWith("--")?`${n}px`:String(n);e.style.setProperty(r,o)}function wc(e,t){for(let[n,r]of Object.entries(t))kn(e,n,r)}function Bs(e){if(e===void 0)return;if(e==="")return"";if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;if(/^-?\d+(\.\d+)?$/.test(e))return Number(e);let t=e.charCodeAt(0);if(t===123||t===91||t===34)try{return JSON.parse(e)}catch(n){return e}return e}function Us(e){return e.replace(/-([a-z0-9])/g,(t,n)=>n.toUpperCase())}var Gs=new WeakMap;function qs(e){return e.hasAttribute("hidden")||e.style.display==="none"?!0:e.isConnected?getComputedStyle(e).display==="none":!1}function _s(e){e.removeAttribute("hidden");let t=Gs.get(e);t!==void 0&&t!=="none"?e.style.display=t:e.style.removeProperty("display"),e.isConnected&&getComputedStyle(e).display==="none"&&(e.style.display="block")}function Vs(e){let t=e.style.display;t&&t!=="none"&&Gs.set(e,t),e.style.display="none"}var Ws="input,select,textarea";function zs(e){return e.matches(Ws)?[e]:Array.from(e.querySelectorAll(Ws))}function Tc(e){let t=e;if(!t.name||t.disabled)return!1;let n=(t.getAttribute("type")||"").toLowerCase();return!(n==="file"||n==="submit"||n==="reset"||n==="button"||(n==="checkbox"||n==="radio")&&!t.checked)}var Sn=new WeakMap;function xc(e){let t=Sn.get(e);return t||Sn.set(e,t=[]),t}var pe=class e{constructor(t=[]){M(this,"length");M(this,"elements");this.elements=t,this.length=t.length;let n=this;for(let r=0;r<t.length;r++)n[r]=t[r]}[Symbol.iterator](){return this.elements[Symbol.iterator]()}find(t){let n=[];for(let r of this.elements)try{for(let o of Array.from(r.querySelectorAll(t)))n.push(o)}catch(o){}return new e(ae(n))}closest(t){let n=[];for(let r of this.elements){let o=r.closest(t);o&&n.push(o)}return new e(ae(n))}parent(t){let n=[];for(let r of this.elements){let o=r.parentElement;o&&(!t||o.matches(t))&&n.push(o)}return new e(ae(n))}parents(t){let n=[];for(let r of this.elements){let o=r.parentElement;for(;o;)(!t||o.matches(t))&&n.push(o),o=o.parentElement}return new e(ae(n))}children(t){let n=[];for(let r of this.elements)for(let o of Array.from(r.children))(!t||o.matches(t))&&n.push(o);return new e(ae(n))}siblings(t){let n=[];for(let r of this.elements){let o=r.parentElement;if(o)for(let s of Array.from(o.children))s!==r&&(!t||s.matches(t))&&n.push(s)}return new e(ae(n))}next(t){let n=[];for(let r of this.elements){let o=r.nextElementSibling;o&&(!t||o.matches(t))&&n.push(o)}return new e(ae(n))}prev(t){let n=[];for(let r of this.elements){let o=r.previousElementSibling;o&&(!t||o.matches(t))&&n.push(o)}return new e(ae(n))}first(){return this.eq(0)}last(){return this.eq(-1)}eq(t){let n=t<0?this.elements.length+t:t,r=this.elements[n];return new e(r?[r]:[])}filter(t){let n=this.elements.filter((r,o)=>typeof t=="function"?t(r,o):r.matches(t));return new e(n)}not(t){let n=this.elements.filter((r,o)=>typeof t=="function"?!t(r,o):!r.matches(t));return new e(n)}has(t){let n=this.elements.filter(r=>typeof t=="string"?r.querySelector(t)!==null:r.contains(t));return new e(n)}is(t){return this.elements.some((n,r)=>typeof t=="function"?t(n,r):n.matches(t))}map(t){return this.elements.map((n,r)=>t(n,r))}each(t){for(let n=0;n<this.elements.length;n++){let r=this.elements[n];if(t.call(r,r,n)===!1)break}return this}get(...t){if(!t.length)return this.toArray();let n=Number(t[0]);return this.elements[n<0?this.elements.length+n:n]}toArray(){return this.elements.slice()}add(t,n){return new e(ae([...this.elements,...We(t,n)]))}slice(t,n){return new e(this.elements.slice(t,n))}text(...t){var o,s;if(!t.length)return(s=(o=this.elements[0])==null?void 0:o.textContent)!=null?s:"";let n=t[0],r=n==null?"":String(n);for(let i of this.elements){for(let a of Array.from(i.childNodes))H(a);i.textContent=r}return this}html(...t){var o,s;if(!t.length)return(s=(o=this.elements[0])==null?void 0:o.innerHTML)!=null?s:"";let n=t[0],r=n==null?"":String(n);for(let i of this.elements){for(let a of Array.from(i.childNodes))H(a);i.innerHTML=r}return this}val(...t){var r;if(!t.length){let o=this.elements[0];if(!o)return"";let s=o;return o.tagName==="SELECT"&&s.multiple?Array.from(s.selectedOptions).map(i=>i.value):o.type==="checkbox"?o.checked?o.value||"on":"":(r=o.value)!=null?r:""}let n=t[0];for(let o of this.elements){let s=o,i=o;if(s.tagName==="SELECT"&&i.multiple){let a=(Array.isArray(n)?n:[n]).map(String);for(let c of Array.from(i.options))c.selected=a.includes(c.value);continue}if(s.type==="checkbox"||s.type==="radio"){s.checked=Array.isArray(n)?n.map(String).includes(s.value):n===!0||String(n)===s.value;continue}s.value=n==null?"":String(n)}return this}attr(...t){var s,i;let n=t[0];if(n!==null&&typeof n=="object"){for(let a of this.elements)for(let[c,u]of Object.entries(n))u===null||u===!1?a.removeAttribute(c):a.setAttribute(c,u===!0?"":String(u));return this}let r=String(n);if(t.length<2)return(i=(s=this.elements[0])==null?void 0:s.getAttribute(r))!=null?i:void 0;let o=t[1];for(let a of this.elements)o===null||o===!1?a.removeAttribute(r):a.setAttribute(r,o===!0?"":String(o));return this}removeAttr(t){let n=Ve(t);for(let r of this.elements)for(let o of n)r.removeAttribute(o);return this}prop(...t){let n=String(t[0]);if(t.length<2){let r=this.elements[0];return r?r[n]:void 0}for(let r of this.elements)r[n]=t[1];return this}data(...t){let n=t[0];if(!t.length){let s=this.elements[0];if(!s)return{};let i={};for(let[a,c]of Object.entries(s.dataset))i[a]=Bs(c);return i}if(n!==null&&typeof n=="object"){for(let s of this.elements)for(let[i,a]of Object.entries(n))s.dataset[Us(i)]=typeof a=="string"?a:JSON.stringify(a!=null?a:null);return this}let r=Us(String(n));if(t.length<2){let s=this.elements[0];return s?Bs(s.dataset[r]):void 0}let o=t[1];for(let s of this.elements)s.dataset[r]=typeof o=="string"?o:JSON.stringify(o!=null?o:null);return this}css(...t){let n=t[0];if(n!==null&&typeof n=="object"){for(let o of this.elements)wc(o,n);return this}let r=String(n);if(t.length<2){let o=this.elements[0];if(!o)return"";let s=Qs(r);return((o.isConnected?getComputedStyle(o).getPropertyValue(s):"")||o.style.getPropertyValue(s)).trim()}for(let o of this.elements)kn(o,r,t[1]);return this}width(...t){if(!t.length){let n=this.elements[0];return n?n.getBoundingClientRect().width:0}for(let n of this.elements)kn(n,"width",t[0]);return this}height(...t){if(!t.length){let n=this.elements[0];return n?n.getBoundingClientRect().height:0}for(let n of this.elements)kn(n,"height",t[0]);return this}offset(){let t=this.elements[0];if(!t)return{top:0,left:0};let n=t.getBoundingClientRect();return{top:n.top+window.scrollY,left:n.left+window.scrollX}}position(){let t=this.elements[0];return t?{top:t.offsetTop,left:t.offsetLeft}:{top:0,left:0}}scrollTop(...t){var r,o;if(!t.length)return(o=(r=this.elements[0])==null?void 0:r.scrollTop)!=null?o:0;let n=Number(t[0])||0;for(let s of this.elements)s.scrollTop=n;return this}addClass(t){let n=Ve(t);if(n.length)for(let r of this.elements)r.classList.add(...n);return this}removeClass(t){let n=Ve(t);if(n.length)for(let r of this.elements)r.classList.remove(...n);return this}toggleClass(t,n){let r=Ve(t);for(let o of this.elements)for(let s of r)n===void 0?o.classList.toggle(s):o.classList.toggle(s,n);return this}hasClass(t){let n=Ve(t);return n.length?this.elements.some(r=>n.every(o=>r.classList.contains(o))):!1}insert(t,n){let r=this.elements.length;for(let o=0;o<r;o++){let s=this.elements[o];for(let i of Fs(t))n(s,o===r-1?i:i.cloneNode(!0))}return this}append(t){return this.insert(t,(n,r)=>n.appendChild(r))}prepend(t){return this.insert(t,(n,r)=>n.insertBefore(r,n.firstChild))}before(t){return this.insert(t,(n,r)=>{var o;return(o=n.parentNode)==null?void 0:o.insertBefore(r,n)})}after(t){return this.insert(t,(n,r)=>{var o;return(o=n.parentNode)==null?void 0:o.insertBefore(r,n.nextSibling)})}appendTo(t){let n=We(t);for(let r=0;r<n.length;r++)for(let o of this.elements)n[r].appendChild(r===n.length-1?o:o.cloneNode(!0));return this}prependTo(t){let n=We(t);for(let r=0;r<n.length;r++){let o=n[r],s=this.elements.map(i=>r===n.length-1?i:i.cloneNode(!0));for(let i=s.length-1;i>=0;i--)o.insertBefore(s[i],o.firstChild)}return this}replaceWith(t){for(let n of this.elements){let r=n.parentNode;if(r){for(let o of Fs(t))r.insertBefore(o,n);H(n),n.remove()}}return this}wrap(t){var n;for(let r of this.elements){let o=We(t)[0];if(!o)continue;let s=o.cloneNode(!0);(n=r.parentNode)==null||n.insertBefore(s,r);let i=s;for(;i.firstElementChild;)i=i.firstElementChild;i.appendChild(r)}return this}unwrap(){let t=new Set;for(let n of this.elements){let r=n.parentElement;r&&r!==document.body&&t.add(r)}for(let n of t){let r=n.parentNode;if(r){for(;n.firstChild;)r.insertBefore(n.firstChild,n);H(n),n.remove()}}return this}remove(){for(let t of this.elements)H(t),t.remove();return this}empty(){for(let t of this.elements){for(let n of Array.from(t.childNodes))H(n);t.replaceChildren()}return this}clone(t=!0){return new e(this.elements.map(n=>n.cloneNode(t)))}on(t,...n){var a;let r=typeof n[0]=="string",o=r?n[0]:null,s=r?n[1]:n[0],i=(a=r?n[2]:n[1])!=null?a:{};if(typeof s!="function")return this;for(let c of this.elements)for(let u of Ve(t)){let l=f=>{if(!o){s.call(c,f);return}let p=f.target,d=p==null?void 0:p.closest(o);!d||!c.contains(d)||s.call(d,f)};c.addEventListener(u,l,i),xc(c).push({type:u,selector:o,handler:s,wrapped:l,options:i})}return this}off(t,n,r){let o=typeof n=="string"?n:null,s=typeof n=="function"?n:r!=null?r:null,i=t?Ve(t):null;for(let a of this.elements){let c=Sn.get(a);if(!c)continue;let u=[];for(let l of c){let f=!i||i.includes(l.type),p=o===null||l.selector===o,d=s===null||l.handler===s;f&&p&&d?a.removeEventListener(l.type,l.wrapped,l.options):u.push(l)}Sn.set(a,u)}return this}once(t,...n){let r=typeof n[0]=="string",o=r?n[0]:null,s=r?n[1]:n[0];if(typeof s!="function")return this;let i=this,a=function(c){return o?i.off(t,o,a):i.off(t,a),s.call(this,c)};return o?this.on(t,o,a):this.on(t,a)}trigger(t,n){for(let r of this.elements){if(n===void 0&&typeof r[t]=="function"){r[t]();continue}let o=new CustomEvent(t,{detail:n,bubbles:!0,cancelable:!0});o.__voodoo=!0,r.dispatchEvent(o)}return this}emit(t,n){for(let r of this.elements){let o=new CustomEvent(t,{detail:n,bubbles:!0,cancelable:!0});o.__voodoo=!0,r.dispatchEvent(o)}return this}show(){for(let t of this.elements)_s(t);return this}hide(){for(let t of this.elements)Vs(t);return this}toggle(t){for(let n of this.elements)(t===void 0?qs(n):t)?_s(n):Vs(n);return this}fadeIn(t=220){for(let n of this.elements)n.removeAttribute("hidden"),wn(n,t);return this}fadeOut(t=220){for(let n of this.elements)Tn(n,t);return this}slideUp(t=240){for(let n of this.elements)Dt(n,t);return this}slideDown(t=240){for(let n of this.elements)n.removeAttribute("hidden"),Ht(n,t);return this}slideToggle(t=240){for(let n of this.elements)qs(n)?(n.removeAttribute("hidden"),Ht(n,t)):Dt(n,t);return this}animate(t,n=300){for(let r of this.elements)typeof r.animate=="function"&&r.animate(t,n);return this}scrollIntoView(t={behavior:"smooth",block:"start"}){var n;return(n=this.elements[0])==null||n.scrollIntoView(t),this}serialize(){let t=this.elements[0];if(!t)return"";let n=new URLSearchParams;for(let r of zs(t)){if(!Tc(r))continue;let o=r,s=r;if(o.tagName==="SELECT"&&s.multiple){for(let i of Array.from(s.selectedOptions))n.append(o.name,i.value);continue}n.append(o.name,o.value)}return n.toString()}serializeObject(){var r,o,s,i;let t=this.elements[0],n={};if(!t)return n;for(let a of zs(t)){let c=a;if(!c.name||c.disabled)continue;let u=(c.getAttribute("type")||"").toLowerCase();if(u==="submit"||u==="reset"||u==="button")continue;let l=c.name.endsWith("[]"),f=l?c.name.slice(0,-2):c.name,p=a,d;if(u==="checkbox"){if(!c.checked&&!l){n[f]=(r=n[f])!=null?r:!1;continue}if(!c.checked)continue;d=c.value==="on"?!0:c.value}else if(u==="radio"){if(!c.checked)continue;d=c.value}else u==="file"?d=c.multiple?Array.from((o=c.files)!=null?o:[]):(i=(s=c.files)==null?void 0:s[0])!=null?i:null:c.tagName==="SELECT"&&p.multiple?d=Array.from(p.selectedOptions).map(m=>m.value):u==="number"||u==="range"?d=c.value===""?null:Number(c.value):d=c.value;if(l){let m=n[f];Array.isArray(m)?m.push(d):n[f]=[d];continue}if(Object.prototype.hasOwnProperty.call(n,f)){let m=n[f];Array.isArray(m)?m.push(d):m===void 0||m===!1?n[f]=d:n[f]=[m,d];continue}n[f]=d}return n}focus(t){var n;return(n=this.elements[0])==null||n.focus(t),this}blur(){for(let t of this.elements)t.blur();return this}select(){for(let t of this.elements){let n=t;typeof n.select=="function"&&n.select()}return this}walk(t=!1){for(let n of this.elements)t&&H(n),j(n,xe(n.parentNode));return this}destroy(){for(let t of this.elements)H(t);return this}};function $r(e,t){if(typeof e=="function"){Hr(e);let n=typeof document!="undefined"?document.documentElement:null;return new pe(n?[n]:[])}return new pe(We(e,t))}function Hr(e){return typeof document=="undefined"?Promise.resolve():new Promise(t=>{Xo(()=>{try{e==null||e()}catch(n){$(n,"V.ready")}t()})})}function Ys(e){return new pe(Or(e))}var Xs=((e,t)=>$r(e,t));Object.assign(Xs,En,{query:$r,ready:Hr,fromHtml:Ys,Collection:pe,magic:N});var Dr=Xs;re();ut();re();var Ec=/^#([0-9a-f])([0-9a-f])([0-9a-f])[0-9a-f]?$/i,kc=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})(?:[0-9a-f]{2})?$/i,Sc=/^rgba?\(([^)]+)\)$/i,Ac=/^hsla?\(([^)]+)\)$/i;function Js(e){return e.split(/[\s,/]+/).map(t=>parseFloat(t)).filter(t=>!Number.isNaN(t))}function Rc(e,t,n){let r=(e%360+360)%360,o=J(t/100,0,1),s=J(n/100,0,1),i=(1-Math.abs(2*s-1))*o,a=i*(1-Math.abs(r/60%2-1)),c=s-i/2,u=Math.floor(r/60)%6,l=[[i,a,0],[a,i,0],[0,i,a],[0,a,i],[a,0,i],[i,0,a]],[f,p,d]=l[u];return{r:Math.round((f+c)*255),g:Math.round((p+c)*255),b:Math.round((d+c)*255)}}function me(e){let t=String(e!=null?e:"").trim();if(!t)return null;let n=Ec.exec(t);if(n)return{r:parseInt(n[1]+n[1],16),g:parseInt(n[2]+n[2],16),b:parseInt(n[3]+n[3],16)};let r=kc.exec(t);if(r)return{r:parseInt(r[1],16),g:parseInt(r[2],16),b:parseInt(r[3],16)};let o=Sc.exec(t);if(o){let[i,a,c]=Js(o[1]);return i===void 0||a===void 0||c===void 0?null:{r:J(i,0,255),g:J(a,0,255),b:J(c,0,255)}}let s=Ac.exec(t);if(s){let[i,a,c]=Js(s[1]);return i===void 0||a===void 0||c===void 0?null:Rc(i,a,c)}return null}function J(e,t,n){return e<t?t:e>n?n:e}function vt(e){let t=e/255;return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Ir(e){return e<=.0031308?e*12.92:1.055*Math.pow(e,.4166666666666667)-.055}function Cc(e){let t=vt(e.r),n=vt(e.g),r=vt(e.b),o=.4122214708*t+.5363325363*n+.0514459929*r,s=.2119034982*t+.6806995451*n+.1073969566*r,i=.0883024619*t+.2817188376*n+.6299787005*r,a=Math.cbrt(o),c=Math.cbrt(s),u=Math.cbrt(i);return{l:.2104542553*a+.793617785*c-.0040720468*u,a:1.9779984951*a-2.428592205*c+.4505937099*u,b:.0259040371*a+.7827717662*c-.808675766*u}}function Pc(e){let t=e.l+.3963377774*e.a+.2158037573*e.b,n=e.l-.1055613458*e.a-.0638541728*e.b,r=e.l-.0894841775*e.a-1.291485548*e.b,o=t*t*t,s=n*n*n,i=r*r*r;return{r:Ir(4.0767416621*o-3.3077115913*s+.2309699292*i),g:Ir(-1.2684380046*o+2.6097574011*s-.3413193965*i),b:Ir(-.0041960863*o-.7034186147*s+1.707614701*i)}}function Rn(e){let t=Cc(e),n=Math.sqrt(t.a*t.a+t.b*t.b),r=Math.atan2(t.b,t.a)*180/Math.PI;return r<0&&(r+=360),{l:t.l,c:n,h:n<1e-5?0:r}}function Zs(e){let t=e.h*Math.PI/180;return Pc({l:e.l,a:Math.cos(t)*e.c,b:Math.sin(t)*e.c})}function yt(e){let t=Math.max(0,e.c);for(let r=0;r<32;r++){let o=Zs({l:J(e.l,0,1),c:t,h:e.h});if(o.r>=-.001&&o.r<=1.001&&o.g>=-.001&&o.g<=1.001&&o.b>=-.001&&o.b<=1.001)return{r:Math.round(J(o.r,0,1)*255),g:Math.round(J(o.g,0,1)*255),b:Math.round(J(o.b,0,1)*255)};t*=.92}let n=Zs({l:J(e.l,0,1),c:0,h:e.h});return{r:Math.round(J(n.r,0,1)*255),g:Math.round(J(n.g,0,1)*255),b:Math.round(J(n.b,0,1)*255)}}function jr(e){return J(Math.round(e),0,255).toString(16).padStart(2,"0")}function ze(e){return`#${jr(e.r)}${jr(e.g)}${jr(e.b)}`}function gt(e,t){return`rgba(${Math.round(e.r)}, ${Math.round(e.g)}, ${Math.round(e.b)}, ${Number(t.toFixed(3))})`}function oi(e){return ze(yt(e))}function Br(e){return .2126*vt(e.r)+.7152*vt(e.g)+.0722*vt(e.b)}function Ur(e,t){let n=typeof e=="string"?me(e):e,r=typeof t=="string"?me(t):t;if(!n||!r)return 1;let o=Br(n),s=Br(r),i=Math.max(o,s),a=Math.min(o,s);return(i+.05)/(a+.05)}var si={r:255,g:255,b:255},Cn={r:0,g:0,b:0};function Bt(e){let t=typeof e=="string"?me(e):e;return t?Ur(t,si)>=Ur(t,Cn)?"#ffffff":"#000000":"#ffffff"}var qr=[50,100,200,300,400,500,600,700,800,900],ii=[.973,.941,.889,.819,.732,.638,.558,.478,.399,.327],Mc=[.14,.26,.46,.68,.88,1,.97,.89,.78,.65],ai=[.244,.286,.343,.408,.484,.588,.668,.748,.836,.928],Lc=[.3,.42,.6,.78,.92,1,.92,.78,.57,.33];function ci(e,t=!1){var a;let n=typeof e=="string"?(a=me(e))!=null?a:Cn:e,r=Rn(n),o=t?ai:ii,s=t?Lc:Mc,i={};return qr.forEach((c,u)=>{i[String(c)]=oi({l:o[u],c:r.c*s[u],h:r.h})}),i}var Pn={violeta:{primary:"#6D3BF5",accent:"#FF3D8B",success:"#16A34A",warning:"#D97706",danger:"#E11D48",info:"#7C6BFF"},oceano:{primary:"#0E7BC4",accent:"#0FB5C9",success:"#0F9D6E",warning:"#D08700",danger:"#DC2F3E",info:"#3B82F6"},floresta:{primary:"#1F8A4C",accent:"#7FA80E",success:"#18A05A",warning:"#C97A0A",danger:"#C93A2E",info:"#2C8FA8"},poente:{primary:"#E4632A",accent:"#D62F63",success:"#3E9B52",warning:"#D99000",danger:"#D32F2F",info:"#B45FC0"},grafite:{primary:"#4C5A70",accent:"#2E7FD1",success:"#2F8F60",warning:"#B57A12",danger:"#C2453F",info:"#5B7A99"}},ui=["primary","accent","success","warning","danger","info"],_r="voodoo:palette",ei="voodoo-palette",Nc="system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif",Oc="ui-monospace, SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace";function ti(e,t){let n=(e!=null?e:"").trim();return n?n.includes(",")?n:`${/^['"]/.test(n)?n:`'${n}'`}, ${t}`:t}var $c=/^([\d.]+)(px|rem|em)$/;function Hc(e){let t=(e||"12px").trim(),n=$c.exec(t);if(!n)return{"--v-radius":t,"--v-radius-sm":`calc(${t} * 0.6)`,"--v-radius-lg":`calc(${t} * 1.5)`,"--v-radius-xl":`calc(${t} * 2)`,"--v-radius-full":"999px"};let r=parseFloat(n[1]),o=n[2],s=i=>`${Math.round(i*1e3)/1e3}${o}`;return{"--v-radius":s(r),"--v-radius-sm":s(Math.max(r*.55,0)),"--v-radius-lg":s(r*1.5),"--v-radius-xl":s(r*2),"--v-radius-full":"999px"}}function ni(e,t){var u,l,f,p;let n={},r={},o={};for(let d of ui){let m=(u=me(e[d]))!=null?u:Cn,g=Rn(m),h=ci(m,t);r[d]=h;for(let P of qr)n[`--v-${d}-${P}`]=h[String(P)];let y=t?{l:Math.max(g.l,.62),c:g.c*.95,h:g.h}:g,S=t?{l:Math.min(y.l+.07,.94),c:y.c*.95,h:y.h}:{l:Math.max(y.l-.055,.12),c:y.c,h:y.h},V=t?{l:Math.min(y.l+.13,.97),c:y.c*.88,h:y.h}:{l:Math.max(y.l-.105,.1),c:y.c,h:y.h},k=yt(y),v=yt(S),I=yt(V);n[`--v-${d}`]=ze(t?k:m),n[`--v-${d}-hover`]=ze(v),n[`--v-${d}-active`]=ze(I),n[`--v-${d}-contrast`]=Bt(t?k:m),n[`--v-${d}-contrast-hover`]=Bt(v),n[`--v-${d}-contrast-active`]=Bt(I);let D=h[50],C=h[100],W=t?h[800]:h[700];n[`--v-${d}-soft`]=D,n[`--v-${d}-soft-hover`]=C,n[`--v-${d}-soft-text`]=W,n[`--v-${d}-ring`]=gt(k,t?.45:.32),n[`--v-${d}-border`]=t?h[300]:h[200],o[d]=n[`--v-${d}-contrast`]}let s=(f=me((l=e.neutral)!=null?l:e.primary))!=null?f:Cn,i=Rn(s).h,a=(d,m)=>oi({l:d,c:m,h:i}),c={};if(qr.forEach((d,m)=>{let g=t?ai:ii;c[String(d)]=a(g[m],.012),n[`--v-neutral-${d}`]=c[String(d)]}),r.neutral=c,t)n["--v-surface"]=a(.248,.021),n["--v-surface-2"]=a(.196,.021),n["--v-surface-3"]=a(.305,.024),n["--v-surface-inset"]=a(.17,.02),n["--v-text"]=a(.965,.008),n["--v-text-muted"]=a(.748,.017),n["--v-text-soft"]=a(.63,.017),n["--v-border"]=a(.355,.023),n["--v-border-strong"]=a(.46,.026),n["--v-overlay"]="rgba(0, 0, 0, 0.62)",n["--v-shadow-sm"]="0 1px 2px rgba(0, 0, 0, 0.5)",n["--v-shadow"]="0 10px 30px rgba(0, 0, 0, 0.5)",n["--v-shadow-lg"]="0 24px 60px rgba(0, 0, 0, 0.62)";else{let d=yt({l:.24,c:.028,h:i});n["--v-surface"]=a(1,0),n["--v-surface-2"]=a(.981,.006),n["--v-surface-3"]=a(.955,.009),n["--v-surface-inset"]=a(.968,.008),n["--v-text"]=ze(d),n["--v-text-muted"]=a(.53,.023),n["--v-text-soft"]=a(.655,.018),n["--v-border"]=a(.906,.012),n["--v-border-strong"]=a(.828,.016),n["--v-overlay"]=gt(d,.45),n["--v-shadow-sm"]=`0 1px 2px ${gt(d,.08)}`,n["--v-shadow"]=`0 10px 30px ${gt(d,.14)}`,n["--v-shadow-lg"]=`0 24px 60px ${gt(d,.2)}`}return n["--v-focus-ring"]=n["--v-primary-ring"],o.surface=Bt((p=me(n["--v-surface"]))!=null?p:si),{vars:n,scales:r,contrast:o}}function Fr(e,t){let n=Object.entries(t).map(([r,o])=>` ${r}: ${o};`).join(`
139
139
  `);return`${e} {
140
140
  ${n}
141
141
  }`}var qt=null,Ut=null;function Dc(e){var r,o,s,i,a,c,u,l,f;let t=(r=Pn[e.preset])!=null?r:Pn.violeta,n={primary:(o=e.primary)!=null?o:t.primary,accent:(s=e.accent)!=null?s:t.accent,success:(i=e.success)!=null?i:t.success,warning:(a=e.warning)!=null?a:t.warning,danger:(c=e.danger)!=null?c:t.danger,info:(u=e.info)!=null?u:t.info,neutral:(l=e.neutral)!=null?l:t.neutral};for(let p of ui)me(n[p])||(console.warn(`[Voodoo] invalid color in palette.${p}: "${n[p]}". Using preset.`),n[p]=t[p]);return{colors:n,radius:(f=e.radius)!=null?f:"12px",font:ti(e.font,Nc),mono:ti(e.monoFont,Oc)}}function Ic(e){if(typeof document=="undefined"||!w.injectStyles)return;Ue();let t=document.getElementById(ei);t||(t=document.createElement("style"),t.id=ei,t.setAttribute("data-voodoo","palette"),document.head.appendChild(t)),t.textContent=e}function An(e={}){let{colors:t,radius:n,font:r,mono:o}=Dc(e),s=ni(t,!1),i=ni(t,!0),a={...Hc(n),"--v-font-sans":r,"--v-font-mono":o},c=["/* Palette generated by V.palette(). Do not edit manually. */",Fr(":root",{...a,...s.vars}),`@media (prefers-color-scheme: dark) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Voodoo.js v0.10.1
2
+ * Voodoo.js v0.11.1
3
3
  * JavaScript feels like magic.
4
4
  * (c) 2026 Voodoo.js contributors. MIT License.
5
5
  */
@@ -6883,7 +6883,7 @@ Suggestion: attribute expressions accept a single value. If the logic spans more
6883
6883
  Object.defineProperties(rootScope.data, Object.getOwnPropertyDescriptors(values));
6884
6884
  return rootScope.data;
6885
6885
  }
6886
- var version2 = "0.10.1";
6886
+ var version2 = "0.11.1";
6887
6887
  var core = {
6888
6888
  // Utilities first: Voodoo's own names can override.
6889
6889
  ...utils_exports,
@@ -21107,6 +21107,31 @@ textarea.v-dialog-input{min-height:96px;resize:vertical}
21107
21107
  if (!closed) return null;
21108
21108
  return { source, templates, nodes, tail };
21109
21109
  }
21110
+ function recoverFromTable(collected) {
21111
+ const empties = collected.source.match(/\(\s*\)/g);
21112
+ if (!empties) return false;
21113
+ const first = collected.nodes[0];
21114
+ const last = collected.nodes[collected.nodes.length - 1];
21115
+ const table = [last == null ? void 0 : last.nextSibling, first == null ? void 0 : first.previousSibling].map((from) => {
21116
+ var _a2;
21117
+ let node = from != null ? from : null;
21118
+ while (node && node.nodeType === Node.TEXT_NODE && !((_a2 = node.textContent) != null ? _a2 : "").trim()) {
21119
+ node = node === (last == null ? void 0 : last.nextSibling) ? node.nextSibling : node.previousSibling;
21120
+ }
21121
+ return node && node.nodeType === Node.ELEMENT_NODE ? node : null;
21122
+ }).find((el) => (el == null ? void 0 : el.tagName) === "TABLE");
21123
+ if (!table) return false;
21124
+ const body = table.querySelector("tbody");
21125
+ if (!body) return false;
21126
+ const rows = Array.from(body.children).filter((el) => el.tagName === "TR");
21127
+ if (rows.length !== empties.length) return false;
21128
+ let index = 0;
21129
+ collected.source = collected.source.replace(/\(\s*\)/g, () => `($t(${index++}, $__jsx))`);
21130
+ collected.templates = rows;
21131
+ collected.host = body;
21132
+ collected.nodes.push(...rows);
21133
+ return true;
21134
+ }
21110
21135
  function render2(value, templates, scope, out) {
21111
21136
  var _a2;
21112
21137
  if (value == null || value === false || value === true) return;
@@ -21150,7 +21175,11 @@ textarea.v-dialog-input{min-height:96px;resize:vertical}
21150
21175
  continue;
21151
21176
  }
21152
21177
  const collected = collect(child, open);
21153
- if (!collected || collected.templates.length === 0) {
21178
+ if (!collected) {
21179
+ child = next;
21180
+ continue;
21181
+ }
21182
+ if (collected.templates.length === 0 && !recoverFromTable(collected)) {
21154
21183
  child = next;
21155
21184
  continue;
21156
21185
  }
@@ -21160,7 +21189,7 @@ textarea.v-dialog-input{min-height:96px;resize:vertical}
21160
21189
  }
21161
21190
  var pending = [];
21162
21191
  function install(parent, collected, hint) {
21163
- var _a2;
21192
+ var _a2, _b;
21164
21193
  const { source, templates, nodes, tail } = collected;
21165
21194
  let ast;
21166
21195
  try {
@@ -21174,8 +21203,9 @@ textarea.v-dialog-input{min-height:96px;resize:vertical}
21174
21203
  if (tail && tail.offset < ((_a2 = tail.node.textContent) != null ? _a2 : "").length) {
21175
21204
  tail.node.splitText(tail.offset);
21176
21205
  }
21206
+ const target = (_b = collected.host) != null ? _b : parent;
21177
21207
  const anchor = document.createComment("v-jsx");
21178
- parent.insertBefore(anchor, nodes[0]);
21208
+ target.insertBefore(anchor, collected.host ? collected.host.firstChild : nodes[0]);
21179
21209
  for (const node of nodes) node.remove();
21180
21210
  let rendered = [];
21181
21211
  pending.push(() => activateRegion());
@@ -21191,7 +21221,7 @@ textarea.v-dialog-input{min-height:96px;resize:vertical}
21191
21221
  render2(value, templates, local, out);
21192
21222
  for (const node of rendered) node.remove();
21193
21223
  rendered = out;
21194
- for (const node of out) parent.insertBefore(node, anchor);
21224
+ for (const node of out) target.insertBefore(node, anchor);
21195
21225
  });
21196
21226
  addCleanup(anchor, () => {
21197
21227
  runner.effect.stop();
@@ -21203,10 +21233,14 @@ textarea.v-dialog-input{min-height:96px;resize:vertical}
21203
21233
  var _a2;
21204
21234
  for (const node of Array.from(root.childNodes)) {
21205
21235
  if (node.nodeType !== Node.TEXT_NODE) continue;
21206
- const text = ((_a2 = node.textContent) != null ? _a2 : "").trim();
21207
- if (!text.startsWith("{") || !text.endsWith("}")) continue;
21208
- if (!/\b(const|let|var)\s/.test(text)) continue;
21209
- const body = text.slice(1, -1).replace(/\b(?:const|let|var)\s+/g, "");
21236
+ const raw = (_a2 = node.textContent) != null ? _a2 : "";
21237
+ const open = raw.indexOf("{");
21238
+ if (open < 0) continue;
21239
+ const end = matchBrace(raw, open);
21240
+ if (end < 0) continue;
21241
+ const group = raw.slice(open, end + 1);
21242
+ if (!/\b(?:const|let|var)\s/.test(group)) continue;
21243
+ const body = group.slice(1, -1).replace(/\b(?:const|let|var)\s+/g, "");
21210
21244
  const data2 = reactive({});
21211
21245
  try {
21212
21246
  evaluate(parse(body), new Scope(data2));
@@ -21216,11 +21250,32 @@ textarea.v-dialog-input{min-height:96px;resize:vertical}
21216
21250
  }
21217
21251
  return null;
21218
21252
  }
21219
- node.remove();
21253
+ node.textContent = raw.slice(0, open) + raw.slice(end + 1);
21220
21254
  return data2;
21221
21255
  }
21222
21256
  return null;
21223
21257
  }
21258
+ function matchBrace(text, from) {
21259
+ let depth = 0;
21260
+ let quote = null;
21261
+ let escaped = false;
21262
+ for (let i = from; i < text.length; i++) {
21263
+ const ch = text[i];
21264
+ if (escaped) {
21265
+ escaped = false;
21266
+ continue;
21267
+ }
21268
+ if (quote) {
21269
+ if (ch === "\\") escaped = true;
21270
+ else if (ch === quote) quote = null;
21271
+ continue;
21272
+ }
21273
+ if (ch === '"' || ch === "'" || ch === "`") quote = ch;
21274
+ else if (ch === "{") depth++;
21275
+ else if (ch === "}" && --depth === 0) return i;
21276
+ }
21277
+ return -1;
21278
+ }
21224
21279
  function activateJsx() {
21225
21280
  const work = pending.splice(0, pending.length);
21226
21281
  for (const run of work) {