@stacksjs/stx 0.2.319 → 0.2.321

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 (168) hide show
  1. package/dist/builtins/image-alpha.d.ts +26 -0
  2. package/dist/builtins/image-alpha.js +57 -0
  3. package/dist/builtins/image-delivery.d.ts +9 -0
  4. package/dist/builtins/image-delivery.js +77 -11
  5. package/dist/builtins/image-placeholder.d.ts +5 -0
  6. package/dist/builtins/image-placeholder.js +19 -3
  7. package/dist/builtins/stx-image.js +19 -6
  8. package/dist/{chunk-85p4dmft.js → chunk-0en7mkpa.js} +1 -1
  9. package/dist/{chunk-0mnv8pf5.js → chunk-0eydszkp.js} +1 -1
  10. package/dist/chunk-129fa2d9.js +2 -0
  11. package/dist/{chunk-acctstj3.js → chunk-1b2wksq3.js} +1 -1
  12. package/dist/{chunk-wm86mmgq.js → chunk-1q1qmmfn.js} +1 -1
  13. package/dist/{chunk-4ee1aaet.js → chunk-1r3ydhkx.js} +1 -1
  14. package/dist/chunk-1rdcew9t.js +2 -0
  15. package/dist/{chunk-ajhrz96a.js → chunk-1yv1v7hh.js} +1 -1
  16. package/dist/{chunk-tqayztkh.js → chunk-222swfwr.js} +1 -1
  17. package/dist/chunk-25m79xdw.js +2 -0
  18. package/dist/{chunk-2kv2gnzc.js → chunk-2925bmqr.js} +1 -1
  19. package/dist/{chunk-raxr83fs.js → chunk-2btrq8sz.js} +2 -2
  20. package/dist/chunk-2rkq7pd1.js +2 -0
  21. package/dist/chunk-2tcn2rw4.js +2 -0
  22. package/dist/{chunk-prry9kgy.js → chunk-33gkb5pr.js} +1 -1
  23. package/dist/{chunk-vhan24as.js → chunk-373fc0m2.js} +1 -1
  24. package/dist/{chunk-6c1ebjat.js → chunk-3erkb524.js} +1 -1
  25. package/dist/{chunk-ybct46zd.js → chunk-3ntb5zkk.js} +1 -1
  26. package/dist/{chunk-r3220h2n.js → chunk-3qt3cxh0.js} +1 -1
  27. package/dist/{chunk-b73h0vd8.js → chunk-3x0b8j25.js} +1 -1
  28. package/dist/chunk-48w09pf7.js +2 -0
  29. package/dist/chunk-4a2wcz8h.js +2 -0
  30. package/dist/chunk-4dtjqc90.js +2 -0
  31. package/dist/{chunk-djf1p5cy.js → chunk-4kp87md5.js} +1 -1
  32. package/dist/{chunk-3pv0qj5f.js → chunk-4zz9edh0.js} +1 -1
  33. package/dist/{chunk-51gea48g.js → chunk-526rr83q.js} +1 -1
  34. package/dist/{chunk-18p8dqya.js → chunk-5mdvkpt8.js} +1 -1
  35. package/dist/chunk-5sz2tmw3.js +2 -0
  36. package/dist/{chunk-322qz0cj.js → chunk-6r72pp2t.js} +1 -1
  37. package/dist/{chunk-397rqs12.js → chunk-70zb3560.js} +1 -1
  38. package/dist/{chunk-yzy6e4je.js → chunk-7b09hmk4.js} +10 -10
  39. package/dist/chunk-7je3fd68.js +2 -0
  40. package/dist/chunk-7kk2jb1j.js +3759 -0
  41. package/dist/chunk-7v72zj7x.js +2 -0
  42. package/dist/{chunk-0saq3nwy.js → chunk-8mspafdh.js} +1 -1
  43. package/dist/{chunk-bnq0p4r4.js → chunk-8q3a8g7m.js} +1 -1
  44. package/dist/{chunk-zebypbks.js → chunk-8q9qfy2v.js} +2 -2
  45. package/dist/chunk-8x78ed8t.js +2 -0
  46. package/dist/chunk-99yynes4.js +2 -0
  47. package/dist/{chunk-pknc4efv.js → chunk-9fjhmyje.js} +1 -1
  48. package/dist/{chunk-1ztjv7a4.js → chunk-9qxv7emz.js} +1 -1
  49. package/dist/{chunk-px0hqf1q.js → chunk-9whbqxsv.js} +1 -1
  50. package/dist/chunk-9zrmwtgh.js +2 -0
  51. package/dist/{chunk-0gbptqh2.js → chunk-a6q5dmq7.js} +1 -1
  52. package/dist/{chunk-s5wwa0t4.js → chunk-akefvpqr.js} +2 -2
  53. package/dist/chunk-bdwe7er9.js +2 -0
  54. package/dist/chunk-c5zfgpgx.js +2 -0
  55. package/dist/chunk-ced1qbdw.js +2 -0
  56. package/dist/{chunk-jryjwara.js → chunk-cey6rhqw.js} +1 -1
  57. package/dist/{chunk-v02j99gh.js → chunk-cfj7y2tp.js} +2 -2
  58. package/dist/{chunk-y4dd2n2n.js → chunk-cjf5h08r.js} +1 -1
  59. package/dist/chunk-cpa76anv.js +2 -0
  60. package/dist/{chunk-kexk6z9s.js → chunk-dr2rpkb4.js} +1 -1
  61. package/dist/{chunk-t5kwx6fa.js → chunk-eh66m9ar.js} +1 -1
  62. package/dist/{chunk-604qr43v.js → chunk-esq6ydx5.js} +1 -1
  63. package/dist/chunk-fh33afkv.js +2 -0
  64. package/dist/{chunk-msmhta0w.js → chunk-fs5gwtd9.js} +1 -1
  65. package/dist/{chunk-7c1qq9zq.js → chunk-g38wktfx.js} +1 -1
  66. package/dist/chunk-g5v7gw13.js +2 -0
  67. package/dist/{chunk-4hk5ewgp.js → chunk-gnk0xd8n.js} +1 -1
  68. package/dist/{chunk-7yzyn9k7.js → chunk-gyrf55m1.js} +1 -1
  69. package/dist/chunk-hg77c5m2.js +2 -0
  70. package/dist/{chunk-yzb20ane.js → chunk-hgc3n1xq.js} +1 -1
  71. package/dist/chunk-hhjrtjc9.js +3 -0
  72. package/dist/chunk-hmrv7qv5.js +2 -0
  73. package/dist/{chunk-egr5663e.js → chunk-hrd56xw7.js} +3 -3
  74. package/dist/{chunk-gcavh7hk.js → chunk-hrrynmne.js} +1 -1
  75. package/dist/{chunk-wkcnyv6m.js → chunk-j8bwgnz5.js} +2 -2
  76. package/dist/{chunk-ycgtkfbm.js → chunk-jgfkmkpb.js} +1 -1
  77. package/dist/{chunk-xcsf7my7.js → chunk-jtaxnnq3.js} +1 -1
  78. package/dist/chunk-jxx9apw6.js +2 -0
  79. package/dist/{chunk-s2kxa1tb.js → chunk-kncbae57.js} +1 -1
  80. package/dist/{chunk-8q8gj45z.js → chunk-krvreaxb.js} +1 -1
  81. package/dist/chunk-m1n5a725.js +2 -0
  82. package/dist/{chunk-zr1r73p3.js → chunk-mgd0vre2.js} +1 -1
  83. package/dist/{chunk-s3pvp8qv.js → chunk-mjbrbnv2.js} +1 -1
  84. package/dist/{chunk-n43zq50e.js → chunk-mmhdgz5x.js} +1 -1
  85. package/dist/{chunk-jd9nv63q.js → chunk-mnhwgk4x.js} +1 -1
  86. package/dist/{chunk-w6ncyp18.js → chunk-n3qsg135.js} +1 -1
  87. package/dist/{chunk-szkq9s8n.js → chunk-nn17da2e.js} +1 -1
  88. package/dist/{chunk-b8cteeha.js → chunk-pavfpmwj.js} +1 -1
  89. package/dist/chunk-pn1syk7x.js +2 -0
  90. package/dist/{chunk-f044qmn3.js → chunk-q5hwa8dn.js} +1 -1
  91. package/dist/chunk-qqvwfhd5.js +2 -0
  92. package/dist/{chunk-ka5wtqmw.js → chunk-qz462c22.js} +1 -1
  93. package/dist/{chunk-snmtft92.js → chunk-rpnjwpw3.js} +1 -1
  94. package/dist/{chunk-wb24hk90.js → chunk-rwq2qzpx.js} +1 -1
  95. package/dist/{chunk-wwghzbbg.js → chunk-rypa8b99.js} +1 -1
  96. package/dist/{chunk-ry1key0g.js → chunk-sb2g9f73.js} +1 -1
  97. package/dist/{chunk-9ebfmdyb.js → chunk-sqkz8tf3.js} +1 -1
  98. package/dist/{chunk-ttny9g8k.js → chunk-sr042pkc.js} +1 -1
  99. package/dist/chunk-ssdzdsm1.js +2 -0
  100. package/dist/{chunk-3by4c2g9.js → chunk-tbw7qn8b.js} +1 -1
  101. package/dist/{chunk-jdcn0ms1.js → chunk-tk459ykz.js} +2 -2
  102. package/dist/chunk-tv2qdq7h.js +2 -0
  103. package/dist/{chunk-5g39e9ra.js → chunk-twdvqqft.js} +1 -1
  104. package/dist/{chunk-jg2gbd58.js → chunk-vmjktkm9.js} +1 -1
  105. package/dist/{chunk-bbq82jww.js → chunk-w913decg.js} +2 -2
  106. package/dist/chunk-wn9z19wm.js +2 -0
  107. package/dist/{chunk-5qseeh5t.js → chunk-wr011j4b.js} +1 -1
  108. package/dist/{chunk-ksqba0cq.js → chunk-wtdkz7wz.js} +1 -1
  109. package/dist/{chunk-tph7b269.js → chunk-x2j5b308.js} +1 -1
  110. package/dist/{chunk-tzhcjtkr.js → chunk-x7eb8e98.js} +1 -1
  111. package/dist/chunk-xaeamzng.js +2 -0
  112. package/dist/chunk-xc5swjjg.js +2 -0
  113. package/dist/{chunk-gpesxpwq.js → chunk-xnj5h0bq.js} +2 -2
  114. package/dist/{chunk-zdzd2jb4.js → chunk-ycmsckjw.js} +1 -1
  115. package/dist/{chunk-a50hb40e.js → chunk-yhebk7kd.js} +1 -1
  116. package/dist/{chunk-nnv8wytm.js → chunk-ymfh9wan.js} +1 -1
  117. package/dist/{chunk-at84gyvf.js → chunk-z698hwht.js} +1 -1
  118. package/dist/{chunk-64ttktzc.js → chunk-zeqktcby.js} +1 -1
  119. package/dist/{chunk-aqrp68m6.js → chunk-zsapb653.js} +1 -1
  120. package/dist/cli.js +14 -14
  121. package/dist/craft-entry.js +1 -1
  122. package/dist/craft.js +1 -1
  123. package/dist/database.js +1 -1
  124. package/dist/first-script-tag.d.ts +24 -0
  125. package/dist/first-script-tag.js +44 -0
  126. package/dist/includes.d.ts +2 -0
  127. package/dist/includes.js +12 -4
  128. package/dist/loops.d.ts +15 -1
  129. package/dist/loops.js +18 -4
  130. package/dist/process.js +4 -29
  131. package/dist/pwa.js +2 -2
  132. package/dist/runtime-injection.js +2 -1
  133. package/dist/ssg.js +2 -2
  134. package/dist/visual-testing.js +1 -1
  135. package/package.json +6 -6
  136. package/dist/chunk-0ggq64sc.js +0 -2
  137. package/dist/chunk-1ppaw4xs.js +0 -2
  138. package/dist/chunk-455m2k1y.js +0 -2
  139. package/dist/chunk-65hqene1.js +0 -2
  140. package/dist/chunk-6vt9ddra.js +0 -2
  141. package/dist/chunk-6xmx6stb.js +0 -2
  142. package/dist/chunk-8618n28z.js +0 -2
  143. package/dist/chunk-8avktqwz.js +0 -2
  144. package/dist/chunk-8z11nkyk.js +0 -2
  145. package/dist/chunk-95jjdgmb.js +0 -2
  146. package/dist/chunk-9aw5d4rr.js +0 -2
  147. package/dist/chunk-9g14542g.js +0 -2
  148. package/dist/chunk-9h4fkwtj.js +0 -2
  149. package/dist/chunk-bxvqqejm.js +0 -2
  150. package/dist/chunk-bzmxbz48.js +0 -2
  151. package/dist/chunk-f9qrz82p.js +0 -2
  152. package/dist/chunk-g8vf2fc7.js +0 -2
  153. package/dist/chunk-h63vszd3.js +0 -2
  154. package/dist/chunk-h78pksyp.js +0 -2
  155. package/dist/chunk-hxf6zg80.js +0 -2
  156. package/dist/chunk-jr79tvvs.js +0 -2
  157. package/dist/chunk-jwnbwemq.js +0 -3
  158. package/dist/chunk-mvj75wef.js +0 -2
  159. package/dist/chunk-n0t2at1c.js +0 -2
  160. package/dist/chunk-spzbfqjn.js +0 -3759
  161. package/dist/chunk-v1j4myd8.js +0 -2
  162. package/dist/chunk-v33qvj8y.js +0 -2
  163. package/dist/chunk-vnh668fb.js +0 -2
  164. package/dist/chunk-vpbw6g2t.js +0 -2
  165. package/dist/chunk-w33gx25k.js +0 -2
  166. package/dist/chunk-w3dfvxar.js +0 -2
  167. package/dist/chunk-wcp0dt2c.js +0 -2
  168. package/dist/chunk-z82sc99z.js +0 -2
@@ -1,3759 +0,0 @@
1
- // @bun
2
- import{$r as X0,Lr as J0,Nr as _9,Or as q3,Pr as L9,Rs as _8,Vs as L8,Wr as k2,Zr as j8,ds as E2,dt as B7,es as B8,et as V7,gs as o0,hs as V8,os as K3,ps as h4,qs as e,rs as W0,ss as E0,ts as B9,us as Z2,vs as K0,ws as O9}from"./chunk-raxr83fs.js";import{jt as u0,kt as GZ}from"./chunk-397rqs12.js";import{pt as n2}from"./chunk-aqrp68m6.js";import{At as r8,Bt as a8,Ct as Y2,Dt as m2,Et as V9,Ft as T2,Gt as t6,Ht as h6,It as B1,Jt as n0,Kt as m9,Ot as R8,Pt as y9,au as N8,ut as i1,vt as v1,wt as w8,xt as k1,zt as H1}from"./chunk-egr5663e.js";import{bu as e7}from"./chunk-jwnbwemq.js";import{fu as F7,gu as w7,hu as t2,iu as e2}from"./chunk-ry1key0g.js";import{ku as _7,mu as L7,nu as O7,pu as U2}from"./chunk-4ee1aaet.js";import{qu as C9}from"./chunk-wkcnyv6m.js";import{su as P8,tu as v8,uu as f8,vu as x8,wu as g8,yu as F8}from"./chunk-18p8dqya.js";import{Du as o2,Fu as h8,zu as D8}from"./chunk-64ttktzc.js";import{Pu as $1}from"./chunk-xcsf7my7.js";import{Su as A8}from"./chunk-2kv2gnzc.js";import{$u as s$,Tu as W3,Uu as YZ,Vu as o8,Wu as p1,_u as QZ,av as g6,cv as O4,fv as I4}from"./chunk-ttny9g8k.js";import{Av as q$,Rv as O8,Tv as AG,Uv as e9,Wv as z2,qv as R$,tv as N6}from"./chunk-bbq82jww.js";import{$v as R7}from"./chunk-9ebfmdyb.js";import{ew as x}from"./chunk-jryjwara.js";import b1 from"path";import y2 from"fs";var p$=new Set(["click","dblclick","mousedown","mouseup","mousemove","mouseenter","mouseleave","mouseover","mouseout","contextmenu","wheel","keydown","keyup","keypress","submit","reset","change","input","focus","blur","focusin","focusout","select","invalid","touchstart","touchend","touchmove","touchcancel","drag","dragstart","dragend","dragenter","dragleave","dragover","drop","scroll","resize","load","error","abort","animationstart","animationend","animationiteration","transitionstart","transitionend","transitionrun","transitioncancel","mounted","unmounted"]),i$={enter:"Enter",tab:"Tab",delete:"Delete",backspace:"Backspace",esc:"Escape",escape:"Escape",space:" ",up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight",home:"Home",end:"End",pageup:"PageUp",pagedown:"PageDown"},HZ=new Set(["ctrl","alt","shift","meta"]),o$={left:0,middle:1,right:2};function n$($){let Z={prevent:!1,stop:!1,once:!1,capture:!1,self:!1,passive:!1,keys:[],systemKeys:[],mouse:null,debounce:null,throttle:null};for(let J of $){let X=J.toLowerCase();if(X==="prevent")Z.prevent=!0;else if(X==="stop")Z.stop=!0;else if(X==="once")Z.once=!0;else if(X==="capture")Z.capture=!0;else if(X==="self")Z.self=!0;else if(X==="passive")Z.passive=!0;else if(HZ.has(X))Z.systemKeys.push(X);else if(X in o$)Z.mouse=X;else if(X in i$||/^[a-z]$/.test(X))Z.keys.push(i$[X]||X.toUpperCase());else if(X.startsWith("debounce")){let Y=X.match(/debounce(?:\.(\d+))?/);Z.debounce=Y?.[1]?Number.parseInt(Y[1],10):300}else if(X.startsWith("throttle")){let Y=X.match(/throttle(?:\.(\d+))?/);Z.throttle=Y?.[1]?Number.parseInt(Y[1],10):300}}return Z}function r$($){let Z=[],J=0,X=/<([a-z][a-z0-9-]*)\s+([^>]*@[a-z][^>]*)>/gi,Y;while((Y=X.exec($))!==null){let[Q,G,z]=Y,q=Y.index,K=q+Q.length,W=`__stx_evt_${J++}`,U=[],H=/@([a-z][a-z0-9.]*)\s*=\s*"([^"]*)"/gi,j;while((j=H.exec(z))!==null){let[,V,F]=j,_=V.split("."),O=_[0];if(!p$.has(O))continue;U.push({attribute:`@${V}`,event:O,handler:F,modifiers:n$(_.slice(1)),elementId:W})}let B=/@([a-z][a-z0-9.]*)\s*=\s*'([^']*)'/gi;while((j=B.exec(z))!==null){let[,V,F]=j,_=V.split("."),O=_[0];if(!p$.has(O))continue;U.push({attribute:`@${V}`,event:O,handler:F,modifiers:n$(_.slice(1)),elementId:W})}if(U.length>0)Z.push({originalTag:Q,elementId:W,events:U,startIndex:q,endIndex:K})}return Z}function jZ($){let Z=[],{modifiers:J}=$;if(J.self)Z.push("if ($event.target !== $el) return");for(let X of J.systemKeys)Z.push(`if (!$event.${X}Key) return`);if(J.keys.length>0){let X=J.keys.map((Y)=>`$event.key === '${Y}'`).join(" || ");Z.push(`if (!(${X})) return`)}if(J.mouse!==null){let X=o$[J.mouse];Z.push(`if ($event.button !== ${X}) return`)}if(J.prevent)Z.push("$event.preventDefault()");if(J.stop)Z.push("$event.stopPropagation()");return Z.join("; ")}function BZ($,Z){let J=$;if(Z.debounce!==null)J=`__stx_debounce(() => { ${J} }, ${Z.debounce})`;else if(Z.throttle!==null)J=`__stx_throttle(() => { ${J} }, ${Z.throttle})`;return J}function g9($){let Z=$.trim();if(!/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(Z))return $;return`if (typeof ${Z} === 'function' && !${Z}._isSignal) ${Z}($event);`}function VZ($){let{modifiers:Z}=$,J=$.elementId.replace(/\\/g,"\\\\").replace(/'/g,"\\'"),X=jZ($),Y=BZ(g9($.handler),Z),Q=[];if(Z.once)Q.push("once: true");if(Z.capture)Q.push("capture: true");if(Z.passive)Q.push("passive: true");let G=Q.length>0?`, { ${Q.join(", ")} }`:"",z=Y.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t");if($.event==="mounted")return`
3
- (function() {
4
- var $el = document.getElementById('${J}');
5
- if (!$el) return;
6
- // Run mounted handler immediately (DOM is ready)
7
- var scope = $el.closest('[data-stx-scope]');
8
- if (scope && scope.__stx_execute) {
9
- scope.__stx_execute('${z}', null, $el);
10
- }
11
- else {
12
- __stx_runHandler('${z}', null, $el);
13
- }
14
- })();`;if($.event==="unmounted")return`
15
- (function() {
16
- var $el = document.getElementById('${J}');
17
- if (!$el) return;
18
- // Set up MutationObserver to detect removal
19
- var observer = new MutationObserver(function(mutations) {
20
- for (var m of mutations) {
21
- for (var node of m.removedNodes) {
22
- if (node === $el || (node.contains && node.contains($el))) {
23
- observer.disconnect();
24
- var scope = $el.closest('[data-stx-scope]');
25
- if (scope && scope.__stx_execute) {
26
- scope.__stx_execute('${z}', null, $el);
27
- }
28
- else {
29
- __stx_runHandler('${z}', null, $el);
30
- }
31
- return;
32
- }
33
- }
34
- }
35
- });
36
- observer.observe(document.body, { childList: true, subtree: true });
37
- // Store observer for cleanup
38
- $el.__stx_unmount_observer = observer;
39
- })();`;return`
40
- (function() {
41
- var $el = document.getElementById('${J}');
42
- if (!$el) return;
43
- // eslint-disable-next-line pickier/no-unused-vars
44
- $el.addEventListener('${$.event}', function($event) {
45
- ${X?X+";":""}
46
- // Find the closest reactive scope and execute within its context
47
- var scope = $el.closest('[data-stx-scope]');
48
- if (scope && scope.__stx_execute) {
49
- scope.__stx_execute('${z}', $event, $el);
50
- }
51
- else {
52
- // Fallback for non-reactive context (entity-safe; decoded + run in memory)
53
- __stx_runHandler('${z}', $event, $el);
54
- }
55
- }${G});
56
- })();`}function h9($){if($.length===0)return"";return`
57
- <script data-stx-events>
58
- (function() {
59
- 'use strict';
60
-
61
- // Utility functions
62
- function __stx_debounce(fn, delay) {
63
- var timeout;
64
- return function() {
65
- var args = arguments;
66
- var ctx = this;
67
- clearTimeout(timeout);
68
- timeout = setTimeout(function() { fn.apply(ctx, args); }, delay);
69
- };
70
- }
71
-
72
- function __stx_throttle(fn, delay) {
73
- var last = 0;
74
- return function() {
75
- var now = Date.now();
76
- if (now - last >= delay) {
77
- last = now;
78
- fn.apply(this, arguments);
79
- }
80
- };
81
- }
82
-
83
- // Non-reactive fallback runner. The handler is embedded HTML-entity-encoded
84
- // so the surrounding script element can never contain raw markup, including
85
- // its own closing tag; we decode it to JS only in memory here, then run it
86
- // with $event/$el in scope.
87
- //
88
- // This comment must not spell that closing tag out. It used to, as an
89
- // example, and a browser ends the script element at the FIRST one it sees \u2014
90
- // so everything below this line, __stx_runHandler included, was emitted as
91
- // page text and no listener was ever bound. The comment about escaping was
92
- // the thing that needed escaping.
93
- function __stx_runHandler(h, $event, $el) {
94
- var code = h
95
- .replace(/&lt;/g, '<')
96
- .replace(/&gt;/g, '>')
97
- .replace(/&quot;/g, '"')
98
- .replace(/&#39;/g, "'")
99
- .replace(/&#x27;/g, "'")
100
- .replace(/&amp;/g, '&');
101
- try {
102
- // eslint-disable-next-line no-new-func
103
- (new Function('$event', '$el', code)).call($el, $event, $el);
104
- }
105
- catch (e) {
106
- if (typeof console !== 'undefined') console.error('[stx] event handler error:', e);
107
- }
108
- }
109
-
110
- // Event listeners
111
- ${$.map(VZ).join(`
112
- `)}
113
- })();
114
- </script>`}function _Z($){let Z=r$($);if(Z.length===0)return{template:$,bindings:[]};let J=$,X=[];for(let Y=Z.length-1;Y>=0;Y--){let Q=Z[Y],G=Q.originalTag;if(!G.includes(" id="))G=G.replace(/^<([a-z][a-z0-9-]*)/,`<$1 id="${Q.elementId}"`);else{let z=G.match(/id=["']([^"']+)["']/);if(z)for(let q of Q.events)q.elementId=z[1]}for(let z of Q.events){let q=z.attribute.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),K=new RegExp(`\\s*${q}\\s*=\\s*"[^"]*"`,"g"),W=new RegExp(`\\s*${q}\\s*=\\s*'[^']*'`,"g");G=G.replace(K,""),G=G.replace(W,"")}J=J.slice(0,Q.startIndex)+G+J.slice(Q.endIndex),X.push(...Q.events)}return{template:J,bindings:X}}function a$($,Z,J){if(s$($))return $;if(Z.__stx_sfc_mode){if(/x-data\s*=\s*["']/.test($))return $;let{template:z,bindings:q}=_Z($),K=Z.__stx_event_bindings||[];return Z.__stx_event_bindings=[...K,...q],z}let X=r$($);if(X.length===0)return $;let Y=$;for(let z=X.length-1;z>=0;z--){let q=X[z],K=q.originalTag;if(!K.includes(" id="))K=K.replace(/^<([a-z][a-z0-9-]*)/,`<$1 id="${q.elementId}"`);else{let W=K.match(/id=["']([^"']+)["']/);if(W)for(let U of q.events)U.elementId=W[1]}for(let W of q.events){let U=W.attribute.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),H=new RegExp(`\\s*${U}\\s*=\\s*"[^"]*"`,"g"),j=new RegExp(`\\s*${U}\\s*=\\s*'[^']*'`,"g");K=K.replace(H,""),K=K.replace(j,"")}Y=Y.slice(0,q.startIndex)+K+Y.slice(q.endIndex)}let Q=h9(X.flatMap((z)=>z.events)),G=Y.lastIndexOf("</body>");if(G!==-1)Y=Y.slice(0,G)+Q+`
115
- `+Y.slice(G);else Y+=Q;return Y}function iz($){return/@[a-z]+(?:\.[a-z]+)*\s*=\s*["'][^"']*["']/i.test($)}import t8 from"fs";import g from"path";import{createHash as LZ}from"crypto";var g2="__stx_component_client_factories";function h2($){let Z=$[g2];return Z instanceof Map?Z:null}function e$($){$[g2]=new Map}function u9($,Z){let J=h2($);if(!J)return null;let X=LZ("sha256").update(Z).digest("hex").slice(0,16),Y=J.get(X);if(Y)Y.instances++;else J.set(X,{body:Z,instances:1});return X}function $3($,Z){let J=h2(Z);if(!J?.size)return $;let X=new Map;for(let[W,U]of J)if(U.instances===1)X.set(W,U.body);let Y=[];if(X.size>0){let W=[...X.keys()].map((j)=>JSON.stringify(j).replace(/[$()*+.?[\\\]^{|}]/g,"\\$&")).join("|"),U=new RegExp(`window\\.__stxComponentFactories\\[(${W})\\]\\(("[^"]+")\\);`,"g"),H=U.exec($);while(H!==null){let j=X.get(JSON.parse(H[1]));if(j!==void 0)Y.push({start:H.index,end:H.index+H[0].length,replacement:`(${j})(${H[2]});`});H=U.exec($)}}let Q=[...J].filter(([,W])=>W.instances>1);if(Q.length===0)return t$($,Y);let z=`<script data-stx-scoped data-stx-run="always" data-stx-component-factories>
116
- (function() {
117
- const factories = window.__stxComponentFactories = window.__stxComponentFactories || {};
118
- ${Q.map(([W,U])=>` try { factories[${JSON.stringify(W)}] = factories[${JSON.stringify(W)}] || ${U.body}; }
119
- catch (e) { console.error('[stx] component factory ' + ${JSON.stringify(W)} + ' failed to register; instances of it will not hydrate.', e); }`).join(`
120
- `)}
121
- })();
122
- </script>`,q=$.search(/<script\b(?=[^>]*\bdata-stx-scoped\b)/i),K=q<0?0:q;return Y.push({start:K,end:K,replacement:`${z}
123
- `}),t$($,Y)}function t$($,Z){if(Z.length===0)return $;Z.sort((Q,G)=>Q.start-G.start||Q.end-G.end);let J=Array(Z.length*2+1),X=0,Y=0;for(let Q of Z)J[Y++]=$.slice(X,Q.start),J[Y++]=Q.replacement,X=Q.end;return J[Y]=$.slice(X),J.join("")}function Z3($){let Z=h2($),J=new Map;if(Z)for(let[X,Y]of Z)J.set(X,Y.instances);return J}function J3($,Z){let J=h2($);if(!J)return[];let X=[];for(let[Y,Q]of J){let G=Q.instances-(Z.get(Y)??0);if(G>0)X.push({body:Q.body,count:G})}return X}function X3($,Z){for(let{body:J,count:X}of Z)for(let Y=0;Y<X;Y++)u9($,J)}import Q3 from"fs";var Y3=0,u2=new Map;function rz(){Y3=0,u2.clear()}function d2($,Z){let J=Y3++,X=`<!--__STX_${$.toUpperCase()}_${J}__-->`;return u2.set(X,{type:$,expression:Z}),X}function az(){let $={};for(let[Z,J]of u2)$[Z]={type:J.type,expression:J.expression};return $}function tz($){let Z={},J=/<!--__STX_(EXPR|COND|RAW)_(\d+)__-->/g,X;while((X=J.exec($))!==null){let Y=X[0],Q=X[1].toLowerCase(),G=u2.get(Y);Z[Y]={type:Q,expression:G?.expression||""}}return Z}function ez($,Z){let J=$;for(let[X,Y]of Z)J=J.split(X).join(Y);return J}function $q($){return $.includes("<!--__STX_")}var Q2={},G3=new Map;function OZ($){let Z=G3.get($);if(!Z){let J=$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");Z=new RegExp(`:${J}(?!\\w)`,"g"),G3.set($,Z)}return Z.lastIndex=0,Z}var l2={uppercase:($,Z)=>{return $!==void 0&&$!==null?String($).toUpperCase():""},lowercase:($,Z)=>{return $!==void 0&&$!==null?String($).toLowerCase():""},capitalize:($,Z)=>{if($===void 0||$===null)return"";let J=String($);return J.charAt(0).toUpperCase()+J.slice(1)},number:($,Z,J=0)=>{if($===void 0||$===null)return"";try{let X=Number($);return Number.isNaN(X)?"":X.toFixed(Number.parseInt(String(J),10))}catch{return""}},fmt:($,Z,J="en-US")=>{if($===void 0||$===null)return"";try{let X=Number($);if(Number.isNaN(X))return String($);return X.toLocaleString(J)}catch{return String($)}},join:($,Z,J=",")=>{if(!Array.isArray($))return"";return $.join(String(J))},escape:($,Z)=>{if($===void 0||$===null)return"";return U3(String($))},translate:($,Z,J={})=>{if(!Z||!Z.__translations)return $;let X=Z.__translations,Y=Z.__i18nConfig?.fallbackToKey??!0,Q=String($).split("."),G=X;for(let q of Q){if(G===void 0||G===null)break;G=G[q]}if(G===void 0||G===null)return Y?$:"";let z=String(G);return Object.entries(J).forEach(([q,K])=>{z=z.replace(OZ(q),String(K))}),z},t:($,Z,J={})=>{return l2.translate($,Z,J)},truncate:($,Z,J=50,X="...")=>{if($===void 0||$===null)return"";let Y=String($);if(Y.length<=J)return Y;if(J<=X.length)return X.substring(0,J);return Y.substring(0,J-X.length)+X},date:($,Z,J="short",X="en-US")=>{if($===void 0||$===null)return"";try{let Y=$ instanceof Date?$:new Date($);if(Number.isNaN(Y.getTime()))return String($);let Q={short:{dateStyle:"short"},medium:{dateStyle:"medium"},long:{dateStyle:"long"},full:{dateStyle:"full"},time:{timeStyle:"short"},datetime:{dateStyle:"short",timeStyle:"short"},iso:{}};if(J==="iso")return Y.toISOString();return new Intl.DateTimeFormat(X,Q[J]||Q.short).format(Y)}catch{return String($)}},currency:($,Z,J="USD",X="en-US")=>{if($===void 0||$===null)return"";try{let Y=Number($);if(Number.isNaN(Y))return String($);return new Intl.NumberFormat(X,{style:"currency",currency:J}).format(Y)}catch{return String($)}},pluralize:($,Z,J,X)=>{let Y=Number($);if(Number.isNaN(Y))return J;let Q=X||`${J}s`;return Y===1?J:Q},first:($,Z)=>{if($===void 0||$===null)return"";if(Array.isArray($))return $.length===0?"":$[0];return String($).charAt(0)},last:($,Z)=>{if($===void 0||$===null)return"";if(Array.isArray($))return $.length===0?"":$[$.length-1];let J=String($);return J.charAt(J.length-1)},length:($,Z)=>{if($===void 0||$===null)return 0;if(Array.isArray($)||typeof $==="string")return $.length;if($ instanceof Map||$ instanceof Set)return $.size;if(typeof $==="object")return Object.keys($).length;return 0},json:($,Z,J=!1)=>{if($===void 0)return"undefined";if($===null)return"null";try{return J?JSON.stringify($,null,2):JSON.stringify($)}catch{return String($)}},default:($,Z,J="")=>{return $===void 0||$===null||$===""?J:$},reverse:($,Z)=>{if($===void 0||$===null)return"";if(Array.isArray($))return[...$].reverse();return String($).split("").reverse().join("")},slice:($,Z,J=0,X)=>{if($===void 0||$===null)return"";if(Array.isArray($)||typeof $==="string")return $.slice(J,X);return $},replace:($,Z,J,X="")=>{if($===void 0||$===null)return"";let Y=J.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return String($).replace(new RegExp(Y,"g"),()=>X)},stripTags:($,Z)=>{if($===void 0||$===null)return"";return String($).replace(/<[^>]*>/g,"")},urlencode:($,Z)=>{if($===void 0||$===null)return"";return encodeURIComponent(String($))},abs:($,Z)=>{let J=Number($);return Number.isNaN(J)?0:Math.abs(J)},round:($,Z,J=0)=>{let X=Number($);if(Number.isNaN(X))return 0;let Y=10**J;return Math.round(X*Y)/Y}};function FZ($,Z){if($ in l2)console.warn(`Filter "${$}" already exists as a built-in filter. Custom filter will take precedence.`);Q2[$]=Z}function Wq($){for(let[Z,J]of Object.entries($))FZ(Z,J)}function wZ(){return{...l2,...Q2}}function Uq(){for(let $ of Object.keys(Q2))delete Q2[$]}function l9($){return $.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function U3($){return l9($).replace(/\{{2,}/g,(Z)=>RZ(Z.length)).replace(/\{(?=!)/g,`&#123;${H3}`)}var H3="&#8288;";function RZ($){return Array.from({length:$},()=>"&#123;").join(H3)}function X1($,Z){let{scripts:J}=n0($);for(let X of J){let Y=X.match(/^<script\b([^>]*)>([\s\S]*?)<\/script\s*>$/i);if(!Y||/\bserver\b|\bsrc\s*=/.test(Y[1]))continue;let Q=Y[2];if(/\b(state|derived|effect|ref|reactive|computed|watch|watchEffect|useModel)\s*(?:<[^>]*>)?\s*\(/.test(Q))return!0;if(W3(Q,Z))return!0}if(/@(if|for|show)\s*=\s*["'][^"']*\(\s*\)/.test($))return!0;if(/@for\s*=\s*["'][^"']*\s+(?:in|of)\s+[^"']*\(\s*\)/.test($))return!0;if(/(?:^|[\s"'])(?::|x-)(?:for|if|else-if|else|show|text|html|model|bind)\b/.test($))return!0;return!1}function z3($,Z){let J=["parseInt","parseFloat","String","Number","Boolean","Array","Object","JSON","Math","Date","URL","URLSearchParams","Intl","encodeURIComponent","decodeURIComponent","encodeURI","decodeURI","true","false","null","undefined","NaN","Infinity","isNaN","isFinite","window","document","console","new","typeof","instanceof","in","void"],X=$.replace(/'[^']*'/g,"").replace(/"[^"]*"/g,""),Y="",Q=!1,G=0;for(let K=0;K<X.length;K++){let W=X[K];if(!Q&&W==="`"){Q=!0,G=0;continue}if(Q){if(W==="`"&&G===0){Q=!1;continue}if(W==="$"&&X[K+1]==="{"){G++,K++,Y+=" ";continue}if(W==="}"&&G>0){G--;continue}if(G>0){Y+=W;continue}continue}Y+=W}X=Y;let z=/(?<![a-zA-Z0-9_$])([a-zA-Z_$][a-zA-Z0-9_$]*)/g,q;while((q=z.exec(X))!==null){let K=q[1];if(!X.substring(0,q.index).trimEnd().endsWith(".")){if(!J.includes(K)&&!(K in Z))return!1}}return!0}function NZ($,Z){let J=Z.__stx_serverDeclared;if(!J||J.size===0)return!1;let X=u0($);for(let Y of J)if(new RegExp(`(?<![.#\\w$])${Y}(?![\\w$])`).test(X))return!0;return!1}function c9($,Z){let J=$;return J=J.replace(/\{!!([\s\S]*?)!!\}/g,(X,Y)=>{try{let Q=x0(Y,Z);if(Q===void 0)return X;return Q===null?"":String(Q)}catch{return X}}),J=J.replace(/\{\{([\s\S]*?)\}\}/g,(X,Y)=>{let Q=Y.trim();if(/^__[A-Z_]+__$/.test(Q))return X;try{let G=x0(Y,Z);if(G===void 0)return X;return JSON.stringify(G).replace(/</g,"\\u003c")}catch{return X}}),J}function DZ($,Z){if(!$.includes("{"))return $;let J=$;return J=J.replace(/\{!!([\s\S]*?)!!\}/g,(X,Y)=>{try{let Q=x0(Y,Z);if(Q===void 0)return X;return Q===null?"":String(Q)}catch{return X}}),J=J.replace(/\{\{([\s\S]*?)\}\}/g,(X,Y)=>{let Q=Y.trim();if(/^__[A-Z_]+__$/.test(Q))return X;try{let G=x0(Y,Z);if(G===void 0)return X;if(G===null)return"";return String(G).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}catch{return X}}),J}function Hq($,Z,J={}){let{output:X,scripts:Y}=n0($),Q=Y.map((G)=>{let z=G.match(/^<script\b([^>]*)>([\s\S]*?)<\/script\s*>$/i),q=G.match(/^<script\b[^>]*>/i),K=G.search(/<\/script\s*>$/i);if(!z||!q||K===-1)return G;let W=z[1],U=z[2];if(/\bdata-raw\b/.test(W))return G;if(J.skipServer&&/\bserver\b/.test(W))return G;let j=`<script${DZ(W,Z)}>`;if(/\bsrc\s*=/.test(W)||/\btype\s*=\s*["']application\/json["']/.test(W))return j+U+G.slice(K);return j+c9(U,Z)+G.slice(K)});return m9(X,Q)}function V1($,Z,J){let X=$,Y=(U,H)=>{let j=m2(U,H);if(j===-1)return-1;return/\{\{[\s\S]*?\}\}|\{!![\s\S]*?!!\}/.test(U.slice(H,j))?-1:j},Q=(U,H,j,B)=>{let V=j.length,{output:F,tokens:_}=B1(U,H,(O,L)=>B(V+L));return j.push(..._),F},G=[];X=Q(X,Y,G,(U)=>`<!--__STX_STYLE_${U}__-->`);let z=[];X=Q(X,Y2,z,(U)=>`<!--__STX_SCRIPT_EXPR_${U}__-->`);let q=Z?.__stx_signals_gate===!0||X1($),K=new Set(Array.isArray(Z?.__stx_client_signal_names)?Z.__stx_client_signal_names:[]),W=new Set(Array.isArray(Z?.__stx_preserved_client_expressions)?Z.__stx_preserved_client_expressions:[]);if(X=X.replace(/\{\{\{([\s\S]*?)\}\}\}/g,(U,H,j)=>{try{let B=x0(H,Z,!1,(V)=>d9(V,U,J,$));return B!==void 0&&B!==null?String(B):""}catch(B){let V=B instanceof Error?B.message:String(B);return H0("Expression",`Error evaluating: {{{ ${H.trim()}}}}: ${V}`,J,$,j,U)}}),X=X.replace(/\{!!([\s\S]*?)!!\}/g,(U,H,j)=>{try{let B=x0(H,Z,!1,(V)=>d9(V,U,J,$));if(B===void 0&&Z.__stx_buildMode==="compile")return d2("raw",H.trim());return B!==void 0&&B!==null?String(B):""}catch(B){if(Z.__stx_buildMode==="compile")return d2("raw",H.trim());let V=B instanceof Error?B.message:String(B);return H0("Expression",`Error evaluating: {!! ${H.trim()} !!}: ${V}`,J,$,j,U)}}),X=Q(X,Y2,z,(U)=>`<!--__STX_SCRIPT_EXPR_${U}__-->`),X=Q(X,Y,G,(U)=>`<!--__STX_STYLE_${U}__-->`),X=X.replace(/\{\{([\s\S]*?)\}\}/g,(U,H,j)=>{let B=H.trim();if(W.has(B))return U;let V=["parseInt","parseFloat","String","Number","Boolean","Array","Object","JSON","Math","Date","encodeURIComponent","decodeURIComponent","encodeURI","decodeURI","true","false","null","undefined"],F=/^([a-zA-Z_$][a-zA-Z0-9_$]*)/,O=B.match(F)?.[1],L=O&&((O in Z)||V.includes(O)),w=Boolean(O&&K.has(O)),R=/^([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/,N=B.match(R),A=N&&!V.includes(N[1])&&!(N[1]in Z);if(/^__[A-Z_]+__$/.test(B))return"";let T;try{let D=x0(H,Z,!1,(M)=>{T=M});if(w)return U;if(q&&!z3(B,Z))return U;if(T)d9(T,U,J,$);if(Z.__stx_buildMode==="compile"&&!q&&(D===void 0||NZ(B,Z)))return d2("expr",B);return D!==void 0&&D!==null?U3(String(D)):""}catch(D){if(w)return U;if(q&&!z3(B,Z))return U;if(A)return U;let M=D instanceof Error?D.message:String(D);return H0("Expression",`Error evaluating: {{ ${B} }}: ${M}`,J,$,j,U)}}),z.length>0)X=X.replace(/<!--__STX_SCRIPT_EXPR_(\d+)__-->/g,(U,H)=>z[Number(H)]??U);if(G.length>0)X=X.replace(/<!--__STX_STYLE_(\d+)__-->/g,(U,H)=>G[Number(H)]??U);return X}function AZ($,Z,J){if(!Z.trim())return $;let X=$,Y=Z.trim();while(Y.length>0){let Q=Y.match(/^(\w+)/);if(!Q)break;let G=Q[1];Y=Y.substring(G.length).trim();let z=Q2[G]||l2[G];if(!z)throw Error(`Filter not found: ${G}. Available filters: ${Object.keys(wZ()).join(", ")}`);let q=[];if(Y.startsWith(":")){let K=Y.match(/^:([^|\s]+)/);if(K){let W=K[1].trim();try{let U=Number(W);q=[Number.isNaN(U)?W:U]}catch{q=[W]}Y=Y.substring(K[0].length).trim()}}else if(Y.startsWith("(")){let K=1,W=1;while(K>0&&W<Y.length){if(Y[W]==="(")K++;if(Y[W]===")")K--;W++}if(K===0){let U=Y.substring(1,W-1).trim();if(U)try{if(U.startsWith("{")&&U.endsWith("}"))q=[x0(`(${U})`,J,!0)];else{let H=[],j="",B=null,V=0,F=0,_=0,O=!1;for(let L=0;L<U.length;L++){let w=U[L];if(O){j+=w,O=!1;continue}if(w==="\\"){j+=w,O=!0;continue}if(B){if(j+=w,w===B)B=null;continue}if(w==='"'||w==="'"||w==="`"){B=w,j+=w;continue}if(w==="(")V++;else if(w===")")V--;else if(w==="[")F++;else if(w==="]")F--;else if(w==="{")_++;else if(w==="}")_--;if(w===","&&V===0&&F===0&&_===0){H.push(j),j="";continue}j+=w}if(j)H.push(j);q=H.map((L)=>{let w=L.trim();return x0(w,J,!0)})}}catch{q=[U]}Y=Y.substring(W).trim()}}try{X=z(X,J,...q)}catch(K){let W=K instanceof Error?K.message:String(K);throw Error(`Error applying filter '${G}': ${W}`)}if(Y.startsWith("|"))Y=Y.substring(1).trim();else break}return X}function MZ($){let Z=!1,J="",X=0,Y=0,Q=0,G=!1;for(let z=0;z<$.length;z++){let q=$[z],K=$[z+1];if(Z&&G){G=!1;continue}if(Z&&q==="\\"){G=!0;continue}if(G=!1,(q==='"'||q==="'"||q==="`")&&!G){if(!Z)Z=!0,J=q;else if(q===J)Z=!1,J="";continue}if(Z&&J==="`"&&q==="$"&&K==="{"){let W=1;z+=2;while(z<$.length&&W>0){if($[z]==="{")W++;else if($[z]==="}")W--;if(W>0)z++}continue}if(Z)continue;if(q==="(")X++;else if(q===")")X--;else if(q==="[")Y++;else if(q==="]")Y--;else if(q==="{")Q++;else if(q==="}")Q--;if(q==="|"&&X===0&&Y===0&&Q===0){if(K==="|"){z++;continue}if(K==="="){z++;continue}return z}}return-1}var X2=new Set,IZ=1000;function jq(){X2.clear()}function d9($,Z,J,X){if(!q3())return;let Y=`${J}\x00${$.expression}`;if(X2.has(Y))return;if(X2.size>=IZ)X2.clear();X2.add(Y);let Q=J,G=X;try{if(J&&Q3.existsSync(J))G=Q3.readFileSync(J,"utf8")}catch{}let z=G.indexOf(Z);if(z>=0)Q=`${J}:${G.slice(0,z).split(`
124
- `).length}`;console.warn(`${Q}: stx warning: ${Z} rendered as an empty string. The safe evaluator rejected \`${$.expression}\` (${$.rule}). Compute the value in <script server> and interpolate the variable instead.`)}function x0($,Z,J=!1,X){try{let Y=$.trim(),Q=MZ(Y);if(Q>0){let z=Y.substring(0,Q).trim(),q=Y.substring(Q+1).trim(),K=x0(z,Z,!0,X);return AZ(K,q,Z)}let G=K3(Y);if(G!==null){X?.({expression:Y,rule:G});return}try{let z=Object.keys(Z),q=Object.values(Z);return K0(Y,z)(...q)}catch{return e(Y,Z)}}catch(Y){if(Y instanceof ReferenceError){let Q=/(\b\w+)\s+is not defined/.exec(Y.message);if(Q){let G=Q[1],z=TZ(G,Object.keys(Z));if(z&&z!==G)Y.message=`${Y.message} \u2014 did you mean '${z}'?`}}if(!J)console.error(`Error evaluating expression: ${$}`,Y);throw Y}}function TZ($,Z){let J=null;for(let Y of Z){if(Y===$)continue;let Q=kZ($,Y);if(J===null||Q<J.dist)J={key:Y,dist:Q}}if(!J)return null;let X=Math.max($.length,J.key.length);if(J.dist<=2||J.dist/X<=0.35)return J.key;return null}function kZ($,Z){if($===Z)return 0;if($.length===0)return Z.length;if(Z.length===0)return $.length;let[J,X]=$.length<Z.length?[$,Z]:[Z,$],Y=Array(J.length+1),Q=Array(J.length+1);for(let G=0;G<=J.length;G++)Y[G]=G;for(let G=1;G<=X.length;G++){Q[0]=G;for(let z=1;z<=J.length;z++){let q=J[z-1]===X[G-1]?0:1;Q[z]=Math.min(Q[z-1]+1,Y[z]+1,Y[z-1]+q)}for(let z=0;z<=J.length;z++)Y[z]=Q[z]}return Y[J.length]}function Bq($){if(!$)return"";return $.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#039;/g,"'").replace(/&#39;/g,"'").replace(/&amp;/g,"&")}import MG from"fs";import T0 from"path";var p9=[{open:/<!--/g,close:/-->/g},{open:/<script\b/gi,close:/<\/script\s*>/gi},{open:/<style\b/gi,close:/<\/style\s*>/gi}],j3=/<body\b([^>]*)>/gi;function s0($){let Z=0,J,X=p9.map(()=>{return});while(Z<$.length){if(J===void 0||J!==null&&J.index<Z)j3.lastIndex=Z,J=j3.exec($);if(!J)return null;let Y=J.index,Q=-1,G=null;for(let q=0;q<p9.length;q++){let K=p9[q],W=X[q];if(W===void 0||W!==null&&W.index<Z)K.open.lastIndex=Z,W=K.open.exec($),X[q]=W;if(!W)continue;if(W.index<Y&&(Q===-1||W.index<Q))Q=W.index,G=K.close}if(Q===-1||!G)return{index:Y,tag:J[0],attrs:J[1]??""};G.lastIndex=Q;let z=G.exec($);if(!z)return null;Z=z.index+z[0].length}return null}function y1($,Z){let J=s0($);if(!J)return $;return $.slice(0,J.index)+Z(J.tag,J.attrs)+$.slice(J.index+J.tag.length)}var B3=null;function EZ($){if(!B3)return console.warn(`[stx] ${$} must be called within a component setup.`),null;return B3}function Lq($){let Z=EZ("onUpdate");if(Z)Z.updateHooks.push($)}function V3(){return`
125
- // STX Lifecycle Runtime
126
- (function() {
127
- if (typeof window === 'undefined') return;
128
-
129
- const instances = new Map();
130
- let currentInstance = null;
131
- let idCounter = 0;
132
-
133
- function generateId() {
134
- return 'stx-' + (++idCounter) + '-' + Date.now().toString(36);
135
- }
136
-
137
- function createInstance(element) {
138
- const instance = {
139
- id: generateId(),
140
- element: element,
141
- mountHooks: [],
142
- destroyHooks: [],
143
- updateHooks: [],
144
- refs: new Map(),
145
- watchers: [],
146
- isMounted: false
147
- };
148
- instances.set(instance.id, instance);
149
- return instance;
150
- }
151
-
152
- window.STX = window.STX || {};
153
-
154
- // Lifecycle hooks
155
- window.STX.onMount = function(hook) {
156
- if (currentInstance) currentInstance.mountHooks.push(hook);
157
- };
158
-
159
- window.STX.onDestroy = function(hook) {
160
- if (currentInstance) currentInstance.destroyHooks.push(hook);
161
- };
162
-
163
- window.STX.onUpdate = function(hook) {
164
- if (currentInstance) currentInstance.updateHooks.push(hook);
165
- };
166
-
167
- // Aliases
168
- window.STX.onMounted = window.STX.onMount;
169
- window.STX.onUnmounted = window.STX.onDestroy;
170
- window.STX.onUpdated = window.STX.onUpdate;
171
-
172
- // Refs
173
- window.STX.ref = function(initialValue) {
174
- const r = { value: initialValue || null };
175
- Object.defineProperty(r, 'current', {
176
- get: function() { return this.value; }
177
- });
178
- if (currentInstance) {
179
- currentInstance.refs.set('ref-' + currentInstance.refs.size, r);
180
- }
181
- return r;
182
- };
183
-
184
- // Watch
185
- window.STX.watch = function(source, callback, options) {
186
- options = options || {};
187
- let oldValue;
188
- let cleanup;
189
- let isActive = true;
190
-
191
- function run() {
192
- if (!isActive) return;
193
- const newValue = source();
194
- if (oldValue !== newValue || options.immediate) {
195
- if (cleanup) cleanup();
196
- cleanup = callback(newValue, oldValue);
197
- oldValue = newValue;
198
- }
199
- }
200
-
201
- if (options.immediate) {
202
- run();
203
- }
204
- else {
205
- oldValue = source();
206
- }
207
-
208
- const intervalId = setInterval(run, 16);
209
-
210
- function stop() {
211
- isActive = false;
212
- clearInterval(intervalId);
213
- if (cleanup) cleanup();
214
- }
215
-
216
- if (currentInstance) {
217
- currentInstance.watchers.push({ stop: stop });
218
- currentInstance.destroyHooks.push(stop);
219
- }
220
-
221
- return stop;
222
- };
223
-
224
- // Computed
225
- window.STX.computed = function(getter) {
226
- let cached;
227
- let dirty = true;
228
- return {
229
- get value() {
230
- if (dirty) {
231
- cached = getter();
232
- dirty = false;
233
- queueMicrotask(function() { dirty = true; });
234
- }
235
- return cached;
236
- }
237
- };
238
- };
239
-
240
- // Component management
241
- window.STX.setupComponent = function(element, setup) {
242
- const instance = createInstance(element);
243
- currentInstance = instance;
244
- try {
245
- setup();
246
- }
247
- finally {
248
- currentInstance = null;
249
- }
250
- return instance;
251
- };
252
-
253
- window.STX.mountComponent = function(instance) {
254
- if (instance.isMounted) return;
255
- instance.isMounted = true;
256
- instance.mountHooks.forEach(function(hook) {
257
- try {
258
- const cleanup = hook();
259
- if (typeof cleanup === 'function') {
260
- instance.destroyHooks.push(cleanup);
261
- }
262
- else if (cleanup && typeof cleanup.then === 'function') {
263
- cleanup.catch(function(e) { console.error('[stx] onMount error:', e); });
264
- }
265
- }
266
- catch (e) {
267
- console.error('[stx] onMount error:', e);
268
- }
269
- });
270
- };
271
-
272
- window.STX.destroyComponent = function(instance) {
273
- if (!instance.isMounted) return;
274
- instance.watchers.forEach(function(w) { w.stop(); });
275
- instance.destroyHooks.forEach(function(hook) {
276
- try { hook(); }
277
- catch (e) { console.error('[stx] onDestroy error:', e); }
278
- });
279
- instance.refs.forEach(function(ref) { ref.value = null; });
280
- instance.isMounted = false;
281
- instances.delete(instance.id);
282
- };
283
-
284
- // ==========================================================================
285
- // Vue-Style Refs System - No document.** required!
286
- // ==========================================================================
287
-
288
- // Internal: Query for ref elements without exposing document API
289
- function queryRef(name, root) {
290
- return (root || document).querySelector('[data-stx-ref="' + name + '"], [data-ref="' + name + '"]');
291
- }
292
-
293
- function queryAllRefs(root) {
294
- return (root || document).querySelectorAll('[data-stx-ref], [data-ref]');
295
- }
296
-
297
- // Auto-bind refs from ref attributes (Vue-style)
298
- window.STX.bindRefs = function(root, refs) {
299
- if (!root) return;
300
- queryAllRefs(root).forEach(function(el) {
301
- var refName = el.getAttribute('data-stx-ref') || el.getAttribute('data-ref');
302
- if (refs[refName]) {
303
- refs[refName].value = el;
304
- }
305
- });
306
- };
307
-
308
- // Vue-style useRefs() - returns object with all refs as direct elements
309
- // Usage: const { input, button, container } = STX.useRefs()
310
- window.STX.useRefs = function(root) {
311
- var refs = {};
312
- queryAllRefs(root).forEach(function(el) {
313
- var refName = el.getAttribute('data-stx-ref') || el.getAttribute('data-ref');
314
- if (refName) {
315
- refs[refName] = el;
316
- }
317
- });
318
- return refs;
319
- };
320
-
321
- // Get a single ref by name - Vue's useTemplateRef equivalent
322
- // Usage: const input = STX.useRef('input')
323
- window.STX.useRef = function(name, root) {
324
- return queryRef(name, root);
325
- };
326
-
327
- // Two-way binding helper for form elements
328
- // Usage: STX.model(inputEl, state, 'username')
329
- window.STX.model = function(el, state, key) {
330
- if (!el || !state) return;
331
-
332
- var isCheckbox = el.type === 'checkbox';
333
- var isRadio = el.type === 'radio';
334
- var isSelect = el.tagName === 'SELECT';
335
-
336
- // Set initial value
337
- if (isCheckbox) {
338
- el.checked = !!state[key];
339
- }
340
- else if (isRadio) {
341
- el.checked = el.value === state[key];
342
- }
343
- else {
344
- el.value = state[key] || '';
345
- }
346
-
347
- // Listen for changes
348
- var eventType = isCheckbox || isRadio ? 'change' : 'input';
349
- el.addEventListener(eventType, function() {
350
- if (isCheckbox) {
351
- state[key] = el.checked;
352
- }
353
- else if (isRadio) {
354
- if (el.checked) state[key] = el.value;
355
- }
356
- else {
357
- state[key] = el.value;
358
- }
359
- });
360
-
361
- // Return cleanup function
362
- return function() {
363
- el.removeEventListener(eventType, arguments.callee);
364
- };
365
- };
366
-
367
- // Batch event binding helper - cleaner than manual addEventListener
368
- // Usage: STX.on({ click: [btn1, btn2], input: [textField] }, handler)
369
- window.STX.on = function(el, event, handler) {
370
- if (!el) return function() {};
371
- el.addEventListener(event, handler);
372
- return function() { el.removeEventListener(event, handler); };
373
- };
374
-
375
- // Bind multiple events at once
376
- // Usage: STX.events(refs.btn, { click: handleClick, mouseenter: handleHover })
377
- window.STX.events = function(el, eventMap) {
378
- if (!el) return function() {};
379
- var cleanups = [];
380
- Object.keys(eventMap).forEach(function(event) {
381
- el.addEventListener(event, eventMap[event]);
382
- cleanups.push(function() { el.removeEventListener(event, eventMap[event]); });
383
- });
384
- return function() { cleanups.forEach(function(c) { c(); }); };
385
- };
386
-
387
- // ==========================================================================
388
- // DOM Helpers - Eliminate document.* usage
389
- // ==========================================================================
390
-
391
- // Global keyboard event listener
392
- // Usage: STX.onKey('Escape', () => closeModal())
393
- window.STX.onKey = function(key, handler, options) {
394
- var listener = function(e) {
395
- if (e.key === key) {
396
- handler(e);
397
- }
398
- };
399
- document.addEventListener('keydown', listener, options);
400
- return function() { document.removeEventListener('keydown', listener, options); };
401
- };
402
-
403
- // Create element helper
404
- // Usage: STX.el('div', { class: 'foo' }, 'text content')
405
- window.STX.el = function(tag, attrs, content) {
406
- var el = document.createElement(tag);
407
- if (attrs) {
408
- Object.keys(attrs).forEach(function(key) {
409
- if (key === 'class') {
410
- el.className = attrs[key];
411
- }
412
- else if (key.startsWith('on')) {
413
- el.addEventListener(key.slice(2).toLowerCase(), attrs[key]);
414
- }
415
- else {
416
- el.setAttribute(key, attrs[key]);
417
- }
418
- });
419
- }
420
- if (content) {
421
- if (typeof content === 'string') {
422
- el.textContent = content;
423
- }
424
- else if (Array.isArray(content)) {
425
- content.forEach(function(child) { el.appendChild(child); });
426
- }
427
- else {
428
- el.appendChild(content);
429
- }
430
- }
431
- return el;
432
- };
433
-
434
- // Get currently focused element
435
- // Usage: const focused = STX.activeElement()
436
- window.STX.activeElement = function() {
437
- return document.activeElement;
438
- };
439
-
440
- // Escape HTML helper
441
- // Usage: const safe = STX.escapeHtml(userInput)
442
- window.STX.escapeHtml = function(text) {
443
- var div = document.createElement('div');
444
- div.textContent = text;
445
- return div.innerHTML;
446
- };
447
-
448
- // MutationObserver for automatic lifecycle management
449
- const observer = new MutationObserver(function(mutations) {
450
- mutations.forEach(function(mutation) {
451
- // Handle removed nodes
452
- mutation.removedNodes.forEach(function(node) {
453
- if (node.nodeType === 1 && node.__stx_instance__) {
454
- window.STX.destroyComponent(node.__stx_instance__);
455
- }
456
- });
457
- });
458
- });
459
-
460
- // Start observing when DOM is ready
461
- if (document.readyState === 'loading') {
462
- document.addEventListener('DOMContentLoaded', function() {
463
- observer.observe(document.body, { childList: true, subtree: true });
464
- });
465
- }
466
- else {
467
- observer.observe(document.body, { childList: true, subtree: true });
468
- }
469
-
470
- console.log('[stx] Lifecycle runtime initialized');
471
- })();
472
- `}function i9($){return Symbol($)}var Oq=i9("theme"),Fq=i9("router"),wq=i9("i18n");import*as L3 from"crypto";function _3($){let Z=/\$(\w+)\./g,J=[],X;while((X=Z.exec($))!==null)if(!J.includes(X[1]))J.push(X[1]);return J}function bZ(){return`stx-${L3.randomBytes(4).toString("hex")}`}function yZ($){return/\$\w+\./.test($)}function CZ($){if(!$.includes("{{")||!/\$\w+\./.test($))return{html:$,bindings:[],stores:new Set};let Z=[],J=new Set,X=/<(\w+)([^>]*?)(\s*\/?>)/g,Y=$;return Y=Y.replace(X,(Q,G,z,q)=>{if(["script","style","template"].includes(G.toLowerCase()))return Q;let K=[],W=!1,U=z,H=/(\w+(?:-\w+)*)\s*=\s*"([^"]*\{\{[^}]*\$\w+[^}]*\}\}[^"]*)"/g,j=[...z.matchAll(H)];for(let F of j){let _=F[0],O=F[1],L=F[2];if(yZ(L)){W=!0;let w=L.match(/\{\{\s*([\s\S]+?)\s*\}\}/);if(w){let R=w[1];if(K.push({attr:O,expr:R,fullMatch:_,originalAttr:O}),_3(R).forEach((A)=>J.add(A)),O==="text")U=U.replace(_,"");else if(O==="class")U=U.replace(_,'class=""');else if(O==="disabled"||O==="hidden")U=U.replace(_,"");else U=U.replace(_,`${O}=""`)}}}if(!W)return Q;let B=U.match(/\bid\s*=\s*"([^"]+)"/),V;if(B)V=B[1];else V=bZ(),U=` id="${V}"${U}`;for(let F of K)Z.push({elementId:V,attribute:F.attr,expression:F.expr,stores:_3(F.expr)});return`<${G}${U}${q}`}),{html:Y,bindings:Z,stores:J}}function SZ($,Z){if($.length===0)return"";let J=Array.from(Z),X=`
473
- <script>
474
- (function() {
475
- 'use strict';
476
-
477
- // Wait for stores to be available
478
- function initBindings() {
479
- var stores = window.VoideStores;
480
- if (!stores) {
481
- setTimeout(initBindings, 10);
482
- return;
483
- }
484
-
485
- // Store references for expressions
486
- // eslint-disable-next-line pickier/no-unused-vars
487
- var $state = {};
488
- `;for(let Y of J)X+=` $state.${Y} = stores.${Y} ? stores.${Y}.get() : {};
489
- `;X+=`
490
- // Binding update functions
491
- function updateBindings() {
492
- `;for(let Y of $){let{elementId:Q,attribute:G,expression:z}=Y,q=z.replace(/\$(\w+)\./g,"$state.$1.");if(G==="text")X+=` (function() {
493
- var el = document.getElementById('${Q}');
494
- if (el) {
495
- try {
496
- el.textContent = ${q};
497
- }
498
- catch (e) { console.error('Binding error:', e); }
499
- }
500
- })();
501
- `;else if(G==="html")X+=` (function() {
502
- var el = document.getElementById('${Q}');
503
- if (el) {
504
- try {
505
- el.innerHTML = ${q};
506
- }
507
- catch (e) { console.error('Binding error:', e); }
508
- }
509
- })();
510
- `;else if(G==="class")X+=` (function() {
511
- var el = document.getElementById('${Q}');
512
- if (el) {
513
- try {
514
- var value = ${q};
515
- if (typeof value === 'string') {
516
- // Dynamic class string - merge with existing static classes
517
- // eslint-disable-next-line pickier/no-unused-vars
518
- var staticClasses = el.getAttribute('data-static-class') || el.className;
519
- if (!el.hasAttribute('data-static-class')) {
520
- el.setAttribute('data-static-class', el.className);
521
- }
522
- el.className = (el.getAttribute('data-static-class') + ' ' + value).trim();
523
- }
524
- else if (typeof value === 'object') {
525
- // Object syntax: { 'class-name': condition }
526
- for (var cls in value) {
527
- if (value[cls]) {
528
- el.classList.add(cls);
529
- }
530
- else {
531
- el.classList.remove(cls);
532
- }
533
- }
534
- }
535
- }
536
- catch (e) { console.error('Binding error:', e); }
537
- }
538
- })();
539
- `;else if(G==="show")X+=` (function() {
540
- var el = document.getElementById('${Q}');
541
- if (el) {
542
- try {
543
- el.style.display = (${q}) ? '' : 'none';
544
- }
545
- catch (e) { console.error('Binding error:', e); }
546
- }
547
- })();
548
- `;else if(G==="if")X+=` (function() {
549
- var el = document.getElementById('${Q}');
550
- if (el) {
551
- try {
552
- el.style.visibility = (${q}) ? 'visible' : 'hidden';
553
- }
554
- catch (e) { console.error('Binding error:', e); }
555
- }
556
- })();
557
- `;else X+=` (function() {
558
- var el = document.getElementById('${Q}');
559
- if (el) {
560
- try {
561
- var value = ${q};
562
- if (value === false || value === null || value === undefined) {
563
- el.removeAttribute('${G}');
564
- }
565
- else if (value === true) {
566
- el.setAttribute('${G}', '');
567
- }
568
- else {
569
- el.setAttribute('${G}', value);
570
- }
571
- }
572
- catch (e) { console.error('Binding error:', e); }
573
- }
574
- })();
575
- `}X+=` }
576
-
577
- // Subscribe to stores and update on changes. Capture the disposers so
578
- // SPA fragment swaps can tear down old bindings before the next page's
579
- // runtime takes over \u2014 without this, every navigation between pages
580
- // using reactive-bindings stacked another subscription on every store,
581
- // walking detached DOM forever. See stacksjs/stx#1709.
582
- var _disposers = [];
583
- `;for(let Y of J)X+=` if (stores.${Y}) {
584
- var _unsub_${Y} = stores.${Y}.subscribe(function(state) {
585
- $state.${Y} = state;
586
- updateBindings();
587
- });
588
- // store.subscribe() may return the disposer (preferred) or void; both
589
- // are tolerated here.
590
- if (typeof _unsub_${Y} === 'function') _disposers.push(_unsub_${Y});
591
- }
592
- `;return X+=`
593
- // Initial update
594
- updateBindings();
595
-
596
- // Register this runtime's cleanup so SPA navigation can run it before
597
- // swapping pages. The router (and any code) can call
598
- // window.__stxCleanupBindings() to dispose subscriptions; we also wire
599
- // 'popstate' and 'beforeunload' as a safety net for browser-driven nav.
600
- function _cleanup() {
601
- for (var i = 0; i < _disposers.length; i++) {
602
- try { _disposers[i](); } catch (e) { /* swallow */ }
603
- }
604
- _disposers.length = 0;
605
- }
606
- if (!window.__stxBindingsCleanups) window.__stxBindingsCleanups = [];
607
- window.__stxBindingsCleanups.push(_cleanup);
608
- if (!window.__stxCleanupBindings) {
609
- window.__stxCleanupBindings = function() {
610
- var fns = window.__stxBindingsCleanups || [];
611
- for (var i = 0; i < fns.length; i++) {
612
- try { fns[i](); } catch (e) { /* swallow */ }
613
- }
614
- window.__stxBindingsCleanups = [];
615
- };
616
- window.addEventListener('popstate', window.__stxCleanupBindings);
617
- window.addEventListener('beforeunload', window.__stxCleanupBindings);
618
- }
619
- }
620
-
621
- // Start when DOM is ready
622
- if (document.readyState === 'loading') {
623
- document.addEventListener('DOMContentLoaded', initBindings);
624
- }
625
- else {
626
- initBindings();
627
- }
628
- })();
629
- </script>
630
- `,X}function O3($){let{html:Z,bindings:J,stores:X}=CZ($);if(J.length===0)return $;let Y=SZ(J,X),Q=Z.lastIndexOf("</body>");if(Q!==-1)return Z.slice(0,Q)+Y+Z.slice(Q);return Z+Y}function F3($){let Z=$.analytics;if(!Z?.enabled)return"";switch(Z.driver){case"fathom":return PZ(Z);case"google-analytics":return vZ(Z);case"plausible":return fZ(Z);case"self-hosted":return xZ(Z);case"custom":return gZ(Z);default:return""}}function PZ($){let Z=$.fathom;if(!Z?.siteId)return"";let J=Z.scriptUrl||"https://cdn.usefathom.com/script.js",X=Z.defer!==!1?" defer":"",Y=[`data-site="${g0(Z.siteId)}"`];if(Z.honorDnt)Y.push('data-honor-dnt="true"');if(Z.spa)Y.push('data-spa="auto"');if(Z.canonical)Y.push(`data-canonical="${g0(Z.canonical)}"`);if(Z.auto===!1)Y.push('data-auto="false"');return`
631
- <!-- Fathom Analytics -->
632
- <script src="${g0(J)}" ${Y.join(" ")}${X}></script>
633
- `}function vZ($){let Z=$.googleAnalytics;if(!Z?.measurementId)return"";let J=g0(Z.measurementId),X=Z.debug?`gtag('config', '${J}', { 'debug_mode': true });`:"";return`
634
- <!-- Google Analytics -->
635
- <script async src="https://www.googletagmanager.com/gtag/js?id=${J}"></script>
636
- <script>
637
- window.dataLayer = window.dataLayer || [];
638
- function gtag(){dataLayer.push(arguments);}
639
- gtag('js', new Date());
640
- gtag('config', '${J}');
641
- ${X}
642
- </script>
643
- `}function fZ($){let Z=$.plausible;if(!Z?.domain)return"";let J=Z.scriptUrl||"https://plausible.io/js/script.js",X=[`data-domain="${g0(Z.domain)}"`],Y=J,Q=[];if(Z.trackLocalhost)Q.push("local");if(Z.hashMode)Q.push("hash");if(Q.length>0&&J==="https://plausible.io/js/script.js")Y=`https://plausible.io/js/script.${Q.join(".")}.js`;return`
644
- <!-- Plausible Analytics -->
645
- <script defer data-domain="${g0(Z.domain)}" src="${g0(Y)}"></script>
646
- `}function xZ($){let Z=$.selfHosted;if(!Z?.siteId||!Z?.apiEndpoint)return"";let J=g0(Z.siteId),X=g0(Z.apiEndpoint),Y=Z.honorDnt?'if(n.doNotTrack==="1")return;':"",Q=Z.trackHashChanges?"w.addEventListener('hashchange',pv);":"",G=Z.trackOutboundLinks?`
647
- d.addEventListener('click',function(e){
648
- var a=e.target.closest('a');
649
- if(a&&a.hostname!==location.hostname){
650
- t('outbound',{url:a.href});
651
- }
652
- });`:"";return`
653
- <!-- Self-Hosted Analytics -->
654
- <script data-site="${J}" data-api="${X}" defer>
655
- (function(){
656
- 'use strict';
657
- var d=document,w=window,n=navigator,s=d.currentScript;
658
- var site=s.dataset.site,api=s.dataset.api;
659
- ${Y}
660
- var q=[],sid=Math.random().toString(36).slice(2);
661
- function t(e,p){
662
- var x=new XMLHttpRequest();
663
- x.open('POST',api+'/collect',true);
664
- x.setRequestHeader('Content-Type','application/json');
665
- x.send(JSON.stringify({
666
- s:site,sid:sid,e:e,p:p||{},
667
- u:location.href,r:d.referrer,t:d.title,
668
- sw:screen.width,sh:screen.height
669
- }));
670
- }
671
- function pv(){t('pageview');}
672
- ${Q}
673
- ${G}
674
- if(d.readyState==='complete')pv();
675
- else w.addEventListener('load',pv);
676
- w.stxAnalytics={track:function(n,v){t('event',{name:n,value:v});}};
677
- })();
678
- </script>
679
- `}function gZ($){let Z=$.custom;if(!Z)return"";if(Z.inlineScript)return`
680
- <!-- Custom Analytics -->
681
- <script>
682
- ${Z.inlineScript}
683
- </script>
684
- `;if(!Z.scriptUrl)return"";let J=[];if(Z.scriptId)J.push(`id="${g0(Z.scriptId)}"`);if(Z.attributes)for(let[Y,Q]of Object.entries(Z.attributes))J.push(`${g0(Y)}="${g0(Q)}"`);return`
685
- <!-- Custom Analytics -->
686
- <script${J.length>0?` ${J.join(" ")}`:""} src="${g0(Z.scriptUrl)}" defer></script>
687
- `}function w3($,Z){let J=F3(Z);if(!J)return $;if(!$.includes("</head>")){let X=$.lastIndexOf("</body>");if(X!==-1)return $.slice(0,X)+J+$.slice(X);return $+J}return $.replace("</head>",`${J}</head>`)}function g0($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}var Dq={name:"analytics",hasEndTag:!1,handler:async($,Z,J,X)=>{let Y=J.__stx_config||{};return F3(Y)}};var hZ={enabled:!1,trackMouse:!0,trackClicks:!0,trackScroll:!0,samplingRate:100,honorDnt:!0,batchSize:50,maxDataPoints:1000,sessionTimeout:30,persistData:!1,storagePrefix:"stx_heatmap",captureAttributes:["data-heatmap-id","data-track"],ignoreSelectors:["[data-heatmap-ignore]",".heatmap-ignore"],debugOverlay:!1};function R3($){let Z=$.heatmap;if(!Z?.enabled)return"";let J={...hZ,...Z};return`
688
- <!-- stx Heatmap - Privacy-Compliant Tracking -->
689
- <script>
690
- (function() {
691
- 'use strict';
692
-
693
- // Configuration
694
- var config = ${JSON.stringify({trackMouse:J.trackMouse,trackClicks:J.trackClicks,trackScroll:J.trackScroll,samplingRate:J.samplingRate,honorDnt:J.honorDnt,endpoint:J.endpoint,batchSize:J.batchSize,maxDataPoints:J.maxDataPoints,sessionTimeout:J.sessionTimeout,persistData:J.persistData,storagePrefix:J.storagePrefix,captureAttributes:J.captureAttributes,ignoreSelectors:J.ignoreSelectors,zones:J.zones,debugOverlay:J.debugOverlay,minViewportWidth:J.minViewportWidth,maxViewportWidth:J.maxViewportWidth})};
695
-
696
- // Check Do Not Track
697
- if (config.honorDnt && navigator.doNotTrack === '1') {
698
- return;
699
- }
700
-
701
- // Check viewport constraints
702
- var vw = window.innerWidth;
703
- if (config.minViewportWidth && vw < config.minViewportWidth) return;
704
- if (config.maxViewportWidth && vw > config.maxViewportWidth) return;
705
-
706
- // Session management (anonymous, no cookies)
707
- var session = {
708
- sid: Math.random().toString(36).slice(2) + Date.now().toString(36),
709
- page: location.pathname,
710
- vw: window.innerWidth,
711
- vh: window.innerHeight,
712
- points: [],
713
- started: Date.now(),
714
- lastActivity: Date.now()
715
- };
716
-
717
- // Throttle helper
718
- var lastMove = 0;
719
- function throttle(fn, wait) {
720
- return function() {
721
- var now = Date.now();
722
- if (now - lastMove >= wait) {
723
- lastMove = now;
724
- fn.apply(this, arguments);
725
- }
726
- };
727
- }
728
-
729
- // Get relative coordinates (percentage)
730
- function getRelativeCoords(e) {
731
- return {
732
- x: Math.round((e.clientX / window.innerWidth) * 10000) / 100,
733
- y: Math.round((e.clientY / window.innerHeight) * 10000) / 100
734
- };
735
- }
736
-
737
- // Check if element should be ignored
738
- function shouldIgnore(el) {
739
- if (!el || !config.ignoreSelectors) return false;
740
- for (var i = 0; i < config.ignoreSelectors.length; i++) {
741
- if (el.matches && el.matches(config.ignoreSelectors[i])) return true;
742
- if (el.closest && el.closest(config.ignoreSelectors[i])) return true;
743
- }
744
- return false;
745
- }
746
-
747
- // Get element selector (simplified, no IDs to preserve privacy)
748
- function getSelector(el) {
749
- if (!el || !el.tagName) return null;
750
- var tag = el.tagName.toLowerCase();
751
- var classes = el.className && typeof el.className === 'string'
752
- ? '.' + el.className.trim().split(/\\s+/).slice(0, 2).join('.')
753
- : '';
754
- return tag + classes;
755
- }
756
-
757
- // Find zone for element
758
- function findZone(el) {
759
- if (!config.zones || !el) return null;
760
- for (var i = 0; i < config.zones.length; i++) {
761
- var zone = config.zones[i];
762
- if (el.closest && el.closest(zone.selector)) {
763
- return zone.id;
764
- }
765
- }
766
- return null;
767
- }
768
-
769
- // Capture custom attributes
770
- function captureAttributes(el) {
771
- if (!config.captureAttributes || !el) return null;
772
- var attrs = {};
773
- var hasAttrs = false;
774
- for (var i = 0; i < config.captureAttributes.length; i++) {
775
- var attr = config.captureAttributes[i];
776
- var value = el.getAttribute && el.getAttribute(attr);
777
- if (value) {
778
- attrs[attr] = value;
779
- hasAttrs = true;
780
- }
781
- }
782
- return hasAttrs ? attrs : null;
783
- }
784
-
785
- // Add data point
786
- function addPoint(point) {
787
- session.lastActivity = Date.now();
788
- if (session.points.length >= config.maxDataPoints) {
789
- session.points.shift();
790
- }
791
- session.points.push(point);
792
-
793
- // Send batch if threshold reached
794
- if (config.endpoint && session.points.length >= config.batchSize) {
795
- sendData();
796
- }
797
- }
798
-
799
- // Send data to endpoint
800
- function sendData() {
801
- if (!config.endpoint || session.points.length === 0) return;
802
-
803
- var data = {
804
- sid: session.sid,
805
- page: session.page,
806
- vw: session.vw,
807
- vh: session.vh,
808
- points: session.points.splice(0, config.batchSize)
809
- };
810
-
811
- // Use sendBeacon for reliability
812
- if (navigator.sendBeacon) {
813
- navigator.sendBeacon(config.endpoint, JSON.stringify(data));
814
- }
815
- else {
816
- var xhr = new XMLHttpRequest();
817
- xhr.open('POST', config.endpoint, true);
818
- xhr.setRequestHeader('Content-Type', 'application/json');
819
- xhr.send(JSON.stringify(data));
820
- }
821
- }
822
-
823
- // Mouse move handler
824
- if (config.trackMouse) {
825
- document.addEventListener('mousemove', throttle(function(e) {
826
- if (shouldIgnore(e.target)) return;
827
- var coords = getRelativeCoords(e);
828
- addPoint({
829
- x: coords.x,
830
- y: coords.y,
831
- type: 'move',
832
- t: Date.now(),
833
- zone: findZone(e.target)
834
- });
835
- }, config.samplingRate), { passive: true });
836
- }
837
-
838
- // Click handler
839
- if (config.trackClicks) {
840
- document.addEventListener('click', function(e) {
841
- if (shouldIgnore(e.target)) return;
842
- var coords = getRelativeCoords(e);
843
- var point = {
844
- x: coords.x,
845
- y: coords.y,
846
- type: 'click',
847
- t: Date.now(),
848
- el: getSelector(e.target),
849
- zone: findZone(e.target)
850
- };
851
- var attrs = captureAttributes(e.target);
852
- if (attrs) point.attrs = attrs;
853
- addPoint(point);
854
- }, { passive: true });
855
- }
856
-
857
- // Scroll handler
858
- if (config.trackScroll) {
859
- var lastScrollDepth = 0;
860
- document.addEventListener('scroll', throttle(function() {
861
- var scrollTop = window.pageYOffset || document.documentElement.scrollTop;
862
- var scrollHeight = document.documentElement.scrollHeight - window.innerHeight;
863
- var depth = scrollHeight > 0 ? Math.round((scrollTop / scrollHeight) * 100) : 0;
864
-
865
- // Only track significant scroll changes (every 10%)
866
- if (Math.abs(depth - lastScrollDepth) >= 10) {
867
- lastScrollDepth = depth;
868
- addPoint({
869
- x: 50,
870
- y: depth,
871
- type: 'scroll',
872
- t: Date.now(),
873
- depth: depth
874
- });
875
- }
876
- }, config.samplingRate * 2), { passive: true });
877
- }
878
-
879
- // Send remaining data on page unload
880
- window.addEventListener('beforeunload', sendData);
881
- window.addEventListener('visibilitychange', function() {
882
- if (document.visibilityState === 'hidden') {
883
- sendData();
884
- }
885
- });
886
-
887
- // Persist data to localStorage if enabled
888
- if (config.persistData) {
889
- var storageKey = config.storagePrefix + '_' + session.page.replace(/\\//g, '_');
890
-
891
- // Load existing data
892
- try {
893
- var stored = localStorage.getItem(storageKey);
894
- if (stored) {
895
- var parsed = JSON.parse(stored);
896
- if (Date.now() - parsed.lastActivity < config.sessionTimeout * 60000) {
897
- session.points = parsed.points || [];
898
- }
899
- }
900
- }
901
- catch (e) {}
902
-
903
- // Save periodically
904
- setInterval(function() {
905
- try {
906
- localStorage.setItem(storageKey, JSON.stringify({
907
- points: session.points,
908
- lastActivity: session.lastActivity
909
- }));
910
- }
911
- catch (e) {}
912
- }, 5000);
913
- }
914
-
915
- // Debug overlay
916
- if (config.debugOverlay) {
917
- var overlay = document.createElement('div');
918
- overlay.id = 'stx-heatmap-overlay';
919
- overlay.style.cssText = 'position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:999999;';
920
- document.body.appendChild(overlay);
921
-
922
- var canvas = document.createElement('canvas');
923
- canvas.width = window.innerWidth;
924
- canvas.height = window.innerHeight;
925
- canvas.style.cssText = 'width:100%;height:100%;';
926
- overlay.appendChild(canvas);
927
- var ctx = canvas.getContext('2d');
928
-
929
- function renderOverlay() {
930
- ctx.clearRect(0, 0, canvas.width, canvas.height);
931
- session.points.forEach(function(p) {
932
- var x = (p.x / 100) * canvas.width;
933
- var y = (p.y / 100) * canvas.height;
934
- ctx.beginPath();
935
- ctx.arc(x, y, p.type === 'click' ? 8 : 3, 0, Math.PI * 2);
936
- ctx.fillStyle = p.type === 'click' ? 'rgba(255,0,0,0.5)' : 'rgba(0,0,255,0.2)';
937
- ctx.fill();
938
- });
939
- requestAnimationFrame(renderOverlay);
940
- }
941
- renderOverlay();
942
-
943
- window.addEventListener('resize', function() {
944
- canvas.width = window.innerWidth;
945
- canvas.height = window.innerHeight;
946
- });
947
- }
948
-
949
- // Expose API for manual tracking and data export
950
- window.stxHeatmap = {
951
- // Get current session data
952
- getData: function() {
953
- return {
954
- sid: session.sid,
955
- page: session.page,
956
- vw: session.vw,
957
- vh: session.vh,
958
- points: session.points.slice(),
959
- started: session.started,
960
- lastActivity: session.lastActivity
961
- };
962
- },
963
- // Export data as JSON
964
- exportJSON: function() {
965
- return JSON.stringify(this.getData(), null, 2);
966
- },
967
- // Export data as CSV
968
- exportCSV: function() {
969
- var data = this.getData();
970
- var lines = ['x,y,type,timestamp,element,zone,depth'];
971
- data.points.forEach(function(p) {
972
- lines.push([p.x, p.y, p.type, p.t, p.el || '', p.zone || '', p.depth || ''].join(','));
973
- });
974
- return lines.join('\\n');
975
- },
976
- // Manual data send
977
- flush: function() {
978
- sendData();
979
- },
980
- // Clear data
981
- clear: function() {
982
- session.points = [];
983
- if (config.persistData) {
984
- var storageKey = config.storagePrefix + '_' + session.page.replace(/\\//g, '_');
985
- try { localStorage.removeItem(storageKey); }
986
- catch (e) {}
987
- }
988
- },
989
- // Add custom event
990
- track: function(type, data) {
991
- addPoint({
992
- x: data && data.x || 0,
993
- y: data && data.y || 0,
994
- type: type,
995
- t: Date.now(),
996
- attrs: data
997
- });
998
- },
999
- // Generate heatmap visualization
1000
- visualize: function(options) {
1001
- options = options || {};
1002
- var data = this.getData();
1003
- var width = options.width || data.vw;
1004
- var height = options.height || data.vh;
1005
- var radius = options.radius || 20;
1006
- var blur = options.blur || 15;
1007
- var maxOpacity = options.maxOpacity || 0.6;
1008
-
1009
- var canvas = document.createElement('canvas');
1010
- canvas.width = width;
1011
- canvas.height = height;
1012
- var ctx = canvas.getContext('2d');
1013
-
1014
- // Create heat points
1015
- data.points.forEach(function(p) {
1016
- var x = (p.x / 100) * width;
1017
- var y = (p.y / 100) * height;
1018
- var intensity = p.type === 'click' ? 1 : 0.3;
1019
-
1020
- var gradient = ctx.createRadialGradient(x, y, 0, x, y, radius);
1021
- gradient.addColorStop(0, 'rgba(255,0,0,' + intensity + ')');
1022
- gradient.addColorStop(1, 'rgba(255,0,0,0)');
1023
- ctx.fillStyle = gradient;
1024
- ctx.fillRect(x - radius, y - radius, radius * 2, radius * 2);
1025
- });
1026
-
1027
- // Apply blur
1028
- ctx.filter = 'blur(' + blur + 'px)';
1029
- ctx.drawImage(canvas, 0, 0);
1030
- ctx.filter = 'none';
1031
-
1032
- // Colorize
1033
- var imageData = ctx.getImageData(0, 0, width, height);
1034
- var pixels = imageData.data;
1035
- for (var i = 0; i < pixels.length; i += 4) {
1036
- var alpha = pixels[i + 3];
1037
- if (alpha > 0) {
1038
- var ratio = alpha / 255;
1039
- // Gradient: blue -> cyan -> green -> yellow -> red
1040
- if (ratio < 0.25) {
1041
- pixels[i] = 0;
1042
- pixels[i + 1] = Math.round(ratio * 4 * 255);
1043
- pixels[i + 2] = 255;
1044
- }
1045
- else if (ratio < 0.5) {
1046
- pixels[i] = 0;
1047
- pixels[i + 1] = 255;
1048
- pixels[i + 2] = Math.round((1 - (ratio - 0.25) * 4) * 255);
1049
- }
1050
- else if (ratio < 0.75) {
1051
- pixels[i] = Math.round((ratio - 0.5) * 4 * 255);
1052
- pixels[i + 1] = 255;
1053
- pixels[i + 2] = 0;
1054
- }
1055
- else {
1056
- pixels[i] = 255;
1057
- pixels[i + 1] = Math.round((1 - (ratio - 0.75) * 4) * 255);
1058
- pixels[i + 2] = 0;
1059
- }
1060
- pixels[i + 3] = Math.round(alpha * maxOpacity);
1061
- }
1062
- }
1063
- ctx.putImageData(imageData, 0, 0);
1064
-
1065
- return canvas;
1066
- }
1067
- };
1068
- })();
1069
- </script>
1070
- `}function N3($,Z){let J=R3(Z);if(!J)return $;let X=$.lastIndexOf("</body>");if(X!==-1)return $.slice(0,X)+J+$.slice(X);return $+J}var D3={name:"heatmap",hasEndTag:!1,description:"Inject privacy-compliant heatmap tracking script",handler:async($,Z,J,X)=>{let Y=J.__stx_config||{};if(Z.length>0){let Q=uZ(Z.join(" "));Y.heatmap={...Y.heatmap,...Q,enabled:!0}}return R3(Y)}};function uZ($){let Z={},J=$.match(/(\w+)=["']?([^"'\s]+)["']?/g)||[];for(let X of J){let[Y,Q]=X.split("="),G=Q?.replace(/["']/g,"");switch(Y){case"endpoint":Z.endpoint=G;break;case"samplingRate":Z.samplingRate=Number.parseInt(G,10);break;case"batchSize":Z.batchSize=Number.parseInt(G,10);break;case"trackMouse":Z.trackMouse=G==="true";break;case"trackClicks":Z.trackClicks=G==="true";break;case"trackScroll":Z.trackScroll=G==="true";break;case"honorDnt":Z.honorDnt=G==="true";break;case"debugOverlay":Z.debugOverlay=G==="true";break}}return Z}class A3{sessions=new Map;addSession($){let Z=this.sessions.get($.sid);if(Z)Z.points.push(...$.points),Z.lastActivity=Math.max(Z.lastActivity,$.lastActivity);else this.sessions.set($.sid,$)}getPageData($){let Z=[];for(let J of this.sessions.values())if(J.page===$)Z.push(...J.points);return Z}getClickData($){return this.getPageData($).filter((Z)=>Z.type==="click")}getMovementData($){return this.getPageData($).filter((Z)=>Z.type==="move")}getScrollData($){let Z=this.getPageData($).filter((X)=>X.type==="scroll"),J=new Map;for(let X of Z)if(X.depth!==void 0)J.set(X.depth,(J.get(X.depth)||0)+1);return Array.from(J.entries()).map(([X,Y])=>({depth:X,count:Y})).sort((X,Y)=>X.depth-Y.depth)}getZoneStats($){let Z=new Map,J=this.getPageData($);for(let X of J)if(X.zone){let Y=Z.get(X.zone)||{clicks:0,hovers:0};if(X.type==="click")Y.clicks++;else if(X.type==="move")Y.hovers++;Z.set(X.zone,Y)}return Z}generateGridData($,Z=20){let J=this.getPageData($),X=[];for(let Q=0;Q<Z;Q++){X[Q]=[];for(let G=0;G<Z;G++)X[Q][G]=0}for(let Q of J){let G=Math.min(Math.floor(Q.x/100*Z),Z-1),z=Math.min(Math.floor(Q.y/100*Z),Z-1);X[z][G]+=Q.type==="click"?3:1}let Y=0;for(let Q of X)for(let G of Q)Y=Math.max(Y,G);return X.map((Q,G)=>Q.map((z,q)=>({x:q,y:G,intensity:Y>0?z/Y:0})))}exportJSON(){return JSON.stringify({sessions:Array.from(this.sessions.values()),exportedAt:new Date().toISOString()},null,2)}clear(){this.sessions.clear()}get sessionCount(){return this.sessions.size}get totalPoints(){let $=0;for(let Z of this.sessions.values())$+=Z.points.length;return $}}function Mq(){return new A3}var dZ;((G)=>{G.Fade="fade";G.Slide="slide";G.Scale="scale";G.Flip="flip";G.Rotate="rotate";G.Custom="custom"})(dZ||={});var mZ;((X)=>{X.In="in";X.Out="out";X.Both="both"})(mZ||={});var lZ;((G)=>{G.Linear="linear";G.Ease="ease";G.EaseIn="ease-in";G.EaseOut="ease-out";G.EaseInOut="ease-in-out";G.Spring="spring"})(lZ||={});var t0={duration:300,delay:0,ease:"ease",direction:"both"};function cZ($,Z={}){let{duration:J,delay:X,ease:Y,direction:Q,custom:G}={...t0,...Z};if($==="custom"&&G)return G;switch($){case"fade":return`${Q==="in"?"opacity: 0; animation: fadeIn var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":Q==="out"?"opacity: 1; animation: fadeOut var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":"opacity: 1; transition: opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);"}
1071
- @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
1072
- @keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } }`;case"slide":return`${Q==="in"?"transform: translateY(20px); opacity: 0; animation: slideIn var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":Q==="out"?"transform: translateY(0); opacity: 1; animation: slideOut var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":"transform: translateY(0); opacity: 1; transition: transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms), opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);"}
1073
- @keyframes slideIn { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
1074
- @keyframes slideOut { from { transform: translateY(0); opacity: 1; } to { transform: translateY(20px); opacity: 0; } }`;case"scale":return`${Q==="in"?"transform: scale(0.95); opacity: 0; animation: scaleIn var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":Q==="out"?"transform: scale(1); opacity: 1; animation: scaleOut var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":"transform: scale(1); opacity: 1; transition: transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms), opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);"}
1075
- @keyframes scaleIn { from { transform: scale(0.95); opacity: 0; } to { transform: scale(1); opacity: 1; } }
1076
- @keyframes scaleOut { from { transform: scale(1); opacity: 1; } to { transform: scale(0.95); opacity: 0; } }`;case"flip":return`${Q==="in"?"transform: perspective(400px) rotateX(-90deg); opacity: 0; animation: flipIn var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":Q==="out"?"transform: perspective(400px) rotateX(0); opacity: 1; animation: flipOut var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":"transform: perspective(400px) rotateX(0); opacity: 1; transition: transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms), opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);"}
1077
- @keyframes flipIn { from { transform: perspective(400px) rotateX(-90deg); opacity: 0; } to { transform: perspective(400px) rotateX(0); opacity: 1; } }
1078
- @keyframes flipOut { from { transform: perspective(400px) rotateX(0); opacity: 1; } to { transform: perspective(400px) rotateX(90deg); opacity: 0; } }`;case"rotate":return`${Q==="in"?"transform: rotate(-90deg); opacity: 0; animation: rotateIn var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":Q==="out"?"transform: rotate(0); opacity: 1; animation: rotateOut var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":"transform: rotate(0); opacity: 1; transition: transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms), opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);"}
1079
- @keyframes rotateIn { from { transform: rotate(-90deg); opacity: 0; } to { transform: rotate(0); opacity: 1; } }
1080
- @keyframes rotateOut { from { transform: rotate(0); opacity: 1; } to { transform: rotate(90deg); opacity: 0; } }`;default:return""}}function pZ(){return`
1081
- <script data-stx-scoped data-stx-run="once">
1082
- // Motion preferences handling
1083
- (function() {
1084
- const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
1085
-
1086
- if (prefersReducedMotion) {
1087
- // Apply reduced motion settings
1088
- document.documentElement.style.setProperty('--stx-transition-duration', '0ms');
1089
- document.documentElement.setAttribute('data-reduced-motion', 'true');
1090
- }
1091
- else {
1092
- document.documentElement.setAttribute('data-reduced-motion', 'false');
1093
- }
1094
-
1095
- // Listen for changes in preference
1096
- window.matchMedia('(prefers-reduced-motion: reduce)').addEventListener('change', (e) => {
1097
- if (e.matches) {
1098
- document.documentElement.style.setProperty('--stx-transition-duration', '0ms');
1099
- document.documentElement.setAttribute('data-reduced-motion', 'true');
1100
- }
1101
- else {
1102
- document.documentElement.style.setProperty('--stx-transition-duration', '');
1103
- document.documentElement.setAttribute('data-reduced-motion', 'false');
1104
- }
1105
- });
1106
- })();
1107
- </script>
1108
- `}function iZ($){return[/@animate\b/,/@transition\b/,/@scroll(?:Animate)?\b/,/@staggered\b/,/@sequence\b/,/@motion\b/,/@animationGroup\b/,/\bstx-transition\b/,/\bstx-(?:fade|scale|flip|rotate|slide|from-|observe)\b/,/data-animate=['"](?:auto|true|false)['"]/].some((J)=>J.test($))}function nZ($=0.1,Z="0px"){return`
1109
- <script data-stx-scoped data-stx-run="always">
1110
- // Intersection Observer for scroll animations
1111
- (function() {
1112
- const initObserver = () => {
1113
- if (!('IntersectionObserver' in window)) {
1114
- // For browsers that don't support IntersectionObserver, show all elements immediately
1115
- const elements = document.querySelectorAll('.stx-observe');
1116
- elements.forEach(el => el.classList.remove('stx-out'));
1117
- return;
1118
- }
1119
-
1120
- // Create the observer
1121
- const options = {
1122
- root: null, // Use viewport
1123
- rootMargin: '${Z}',
1124
- threshold: ${$}
1125
- };
1126
-
1127
- const observer = new IntersectionObserver((entries) => {
1128
- entries.forEach(entry => {
1129
- if (entry.isIntersecting) {
1130
- entry.target.classList.remove('stx-out');
1131
- // Stop observing after animation is triggered
1132
- observer.unobserve(entry.target);
1133
- }
1134
- });
1135
- }, options);
1136
-
1137
- // Start observing elements
1138
- const elements = document.querySelectorAll('.stx-observe');
1139
- elements.forEach(el => observer.observe(el));
1140
- };
1141
-
1142
- // Initialize observer when DOM is ready
1143
- if (document.readyState === 'loading') {
1144
- document.addEventListener('DOMContentLoaded', initObserver);
1145
- }
1146
- else {
1147
- initObserver();
1148
- }
1149
- })();
1150
- </script>
1151
- `}function sZ(){return`
1152
- <style id="stx-animation-base">
1153
- :root {
1154
- --stx-transition-duration: 300ms;
1155
- --stx-transition-delay: 0ms;
1156
- --stx-transition-ease: ease;
1157
- }
1158
-
1159
- @media (prefers-reduced-motion: reduce) {
1160
- :root {
1161
- --stx-transition-duration: 0ms;
1162
- }
1163
- }
1164
-
1165
- [data-animate="false"] * {
1166
- --stx-transition-duration: 0ms !important;
1167
- animation-duration: 0ms !important;
1168
- transition-duration: 0ms !important;
1169
- }
1170
-
1171
- /* Base transition classes */
1172
- .stx-transition {
1173
- transition: opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms),
1174
- transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);
1175
- backface-visibility: hidden; /* Improve animation performance */
1176
- transform-style: preserve-3d; /* Better 3D transforms */
1177
- }
1178
-
1179
- /* Fade animations */
1180
- .stx-fade {
1181
- transition: opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);
1182
- }
1183
-
1184
- .stx-fade.stx-out {
1185
- opacity: 0 !important;
1186
- }
1187
-
1188
- /* Scale animations */
1189
- .stx-scale {
1190
- transition: transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms),
1191
- opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);
1192
- }
1193
-
1194
- .stx-scale.stx-out {
1195
- transform: scale(0.85) !important;
1196
- opacity: 0 !important;
1197
- }
1198
-
1199
- /* Flip animations */
1200
- .stx-flip {
1201
- transition: transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms),
1202
- opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);
1203
- perspective: 600px;
1204
- }
1205
-
1206
- .stx-flip.stx-out {
1207
- transform: perspective(600px) rotateX(-90deg) !important;
1208
- opacity: 0 !important;
1209
- }
1210
-
1211
- /* Rotate animations */
1212
- .stx-rotate {
1213
- transition: transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms),
1214
- opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);
1215
- }
1216
-
1217
- .stx-rotate.stx-out {
1218
- transform: rotate(-90deg) !important;
1219
- opacity: 0 !important;
1220
- }
1221
-
1222
- /* Direction-based animations */
1223
- .stx-from-left, .stx-from-right, .stx-from-top, .stx-from-bottom {
1224
- transition: transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms),
1225
- opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);
1226
- }
1227
-
1228
- .stx-from-left.stx-out {
1229
- transform: translateX(-30px) !important;
1230
- opacity: 0 !important;
1231
- }
1232
-
1233
- .stx-from-right.stx-out {
1234
- transform: translateX(30px) !important;
1235
- opacity: 0 !important;
1236
- }
1237
-
1238
- .stx-from-top.stx-out {
1239
- transform: translateY(-30px) !important;
1240
- opacity: 0 !important;
1241
- }
1242
-
1243
- .stx-from-bottom.stx-out {
1244
- transform: translateY(30px) !important;
1245
- opacity: 0 !important;
1246
- }
1247
-
1248
- /* Generic slide animations */
1249
- .stx-slide {
1250
- transition: transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms),
1251
- opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);
1252
- }
1253
-
1254
- .stx-slide.stx-out {
1255
- transform: translateY(30px) !important;
1256
- opacity: 0 !important;
1257
- }
1258
-
1259
- /* Scroll animation observer class */
1260
- .stx-observe {
1261
- will-change: opacity, transform;
1262
- transition: opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms),
1263
- transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);
1264
- }
1265
- </style>
1266
- `}function oZ($,Z,J={}){let{staggerDelay:X=50,sequence:Y=!1}=J;return`
1267
- <script data-stx-scoped data-stx-run="always">
1268
- // Animation Group: ${$}
1269
- (function() {
1270
- const elements = ${JSON.stringify(Z)};
1271
- const staggerDelay = ${X};
1272
- const sequence = ${Y};
1273
-
1274
- function animateGroup() {
1275
- elements.forEach((selector, index) => {
1276
- const element = document.querySelector(selector);
1277
- if (!element) return;
1278
-
1279
- const delay = sequence ? index * staggerDelay : 0;
1280
- element.style.setProperty('--stx-transition-delay', delay + 'ms');
1281
-
1282
- // For elements using animation keyframes
1283
- element.style.animationDelay = delay + 'ms';
1284
-
1285
- // If the element is initially hidden, show it
1286
- if (element.classList.contains('stx-out')) {
1287
- setTimeout(() => {
1288
- element.classList.remove('stx-out');
1289
- }, 10); // Small delay to ensure styles are applied
1290
- }
1291
- });
1292
- }
1293
-
1294
- // Run when DOM is fully loaded
1295
- if (document.readyState === 'loading') {
1296
- document.addEventListener('DOMContentLoaded', animateGroup);
1297
- }
1298
- else {
1299
- animateGroup();
1300
- }
1301
- })();
1302
- </script>
1303
- `}var n9={name:"transition",handler:($,Z,J,X)=>{if(Z.length<1)return`<div class="stx-error">@transition directive requires at least a transition type</div>${$}`;let Y=Z[0],Q=Z.length>1?Number.parseInt(Z[1],10)||t0.duration:t0.duration,G=Z.length>2?Z[2]||t0.ease:t0.ease,z=Z.length>3?Number.parseInt(Z[3],10)||t0.delay:t0.delay,q=Z.length>4?Z[4]||t0.direction:t0.direction,K=`stx-transition-${Math.random().toString(36).substr(2,9)}`,W=cZ(Y,{duration:Q,delay:z,ease:G,direction:q}),U="stx-transition",H="";if(Y==="fade")H="stx-fade";else if(Y==="slide")H="stx-slide";else if(Y==="scale")H="stx-scale";else if(Y==="flip")H="stx-flip";else if(Y==="rotate")H="stx-rotate";return`<div id="${K}" class="${U} ${H} ${q==="out"?"stx-out":""}"
1304
- style="--stx-transition-duration: ${Q}ms; --stx-transition-ease: ${G}; --stx-transition-delay: ${z}ms;">${$}</div>`},hasEndTag:!0,description:"Applies transition effects to an element"},s9={name:"scrollAnimate",handler:($,Z,J,X)=>{if(Z.length<1)return`<div class="stx-error">@scrollAnimate directive requires at least an animation type</div>${$}`;let Y=Z[0],Q=Z.length>1?Number.parseInt(Z[1],10)||300:300,G=Z.length>2?Z[2]||"ease":"ease",z=Z.length>3?Number.parseFloat(Z[3])||0.2:0.2,q=Z.length>4?Number.parseInt(Z[4],10)||0:0,K=`stx-scroll-${Math.random().toString(36).substr(2,9)}`,W=`--stx-transition-duration: ${Q}ms; --stx-transition-ease: ${G}; --stx-transition-delay: ${q}ms; will-change: opacity, transform;`,U="stx-transition stx-observe stx-out";if(Y==="fade")U+=" stx-fade";else if(Y==="slide-up"||Y==="slide")U+=" stx-from-bottom";else if(Y==="slide-down")U+=" stx-from-top";else if(Y==="slide-left")U+=" stx-from-right";else if(Y==="slide-right")U+=" stx-from-left";else if(Y==="scale")U+=" stx-scale";else if(Y.includes("-"))U+=` stx-${Y}`;else U+=` stx-${Y}`;return`<div id="${K}" class="${U}" style="${W}" data-threshold="${z}">${$}</div>`},hasEndTag:!0,description:"Applies animations that trigger when scrolled into view"},o9={name:"animationGroup",handler:($,Z,J,X)=>{if(Z.length<2)return`<div class="stx-error">@animationGroup directive requires a group name and at least one element selector</div>${$}`;let Y=Z[0],Q=Z.slice(1).map((K)=>K.startsWith("#")||K.startsWith(".")?K:`#${K}`),G=J.staggerDelay||50,z=J.sequence||!0,q=oZ(Y,Q,{staggerDelay:G,sequence:z});return`${$}
1305
- ${q}`},hasEndTag:!1,description:"Coordinates multiple animations together as a group"},r9={name:"motion",handler:($,Z,J,X)=>{let Y=Z.length>0?Z[0].toLowerCase()==="true":!0,Q=pZ();return`<div data-animate="${Y?"auto":"true"}">${$}</div>${Q}`},hasEndTag:!0,description:"Controls motion and animation preferences"};function I3($,Z,J,X){let Y=$;if(X.animation?.enabled===!1)return Y;let Q=J.includes("test")&&J.includes("animation");if(!iZ(Y)&&!Q)return Y;if(!Y.includes('<style id="stx-animation-base">')){let z=sZ();Y=Y.replace("</head>",`${z}
1306
- </head>`)}if(Y.includes("stx-observe")){if(!Y.includes("Intersection Observer for scroll animations")){let q=nZ(),K=Y.lastIndexOf("</body>");if(K!==-1)Y=Y.slice(0,K)+q+`
1307
- `+Y.slice(K)}}return Y}var M3={default:{stiffness:100,damping:10,mass:1},gentle:{stiffness:120,damping:14,mass:1},wobbly:{stiffness:180,damping:12,mass:1},stiff:{stiffness:210,damping:20,mass:1},slow:{stiffness:280,damping:60,mass:1},molasses:{stiffness:280,damping:120,mass:1}};function rZ($,Z){let J=Z.map((X)=>{let Y=X.offset!==void 0?`${X.offset*100}%`:"from",Q=Object.entries(X.properties).map(([G,z])=>`${G}: ${z}`).join("; ");return`${Y} { ${Q} }`}).join(`
1308
- `);return`@keyframes ${$} {
1309
- ${J}
1310
- }`}var aZ={name:"keyframe",hasEndTag:!0,handler:($,Z,J,X)=>{if(Z.length<1)return`<div class="stx-error">@keyframe requires an animation name</div>${$}`;let Y=Z[0].replace(/['"`]/g,""),Q=Z[1]?Number.parseInt(Z[1],10):1000,G=Z[2]?.replace(/['"`]/g,"")||"ease",z=Z[3]||"1",q=Z[4]?.replace(/['"`]/g,"")||"normal",K=Z[5]?.replace(/['"`]/g,"")||"forwards",W=`stx-keyframe-${Math.random().toString(36).slice(2,9)}`,U=`
1311
- animation-name: ${Y};
1312
- animation-duration: ${Q}ms;
1313
- animation-timing-function: ${G};
1314
- animation-iteration-count: ${z};
1315
- animation-direction: ${q};
1316
- animation-fill-mode: ${K};
1317
- `.trim().replace(/\s+/g," ");return`<div id="${W}" style="${U}">${$}</div>`},description:"Applies a keyframe animation to an element"};function tZ($,Z,J,X,Y){return`
1318
- <script data-stx-scoped data-stx-run="always">
1319
- (function() {
1320
- const container = document.getElementById('${$}');
1321
- if (!container) return;
1322
-
1323
- const children = container.querySelectorAll('${Z}');
1324
- children.forEach((child, index) => {
1325
- const delay = ${J} + (index * ${X});
1326
- child.style.setProperty('--stx-stagger-delay', delay + 'ms');
1327
- child.style.animationDelay = delay + 'ms';
1328
- child.classList.add('${Y}');
1329
- });
1330
- })();
1331
- </script>`}var eZ={name:"stagger",hasEndTag:!0,handler:($,Z,J,X)=>{let Y=Z[0]?.replace(/['"`]/g,"")||"> *",Q=Z[1]?Number.parseInt(Z[1],10):100,G=Z[2]?Number.parseInt(Z[2],10):0,z=Z[3]?.replace(/['"`]/g,"")||"fade",q=`stx-stagger-${Math.random().toString(36).slice(2,9)}`,K="stx-stagger-item";if(z==="fade")K+=" stx-fade";else if(z==="slide")K+=" stx-from-bottom";else if(z==="scale")K+=" stx-scale";let W=tZ(q,Y,G,Q,K);return`${`
1332
- <style>
1333
- #${q} .stx-stagger-item {
1334
- opacity: 0;
1335
- animation: staggerIn var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-stagger-delay, 0ms) forwards;
1336
- }
1337
- @keyframes staggerIn {
1338
- from { opacity: 0; transform: translateY(10px); }
1339
- to { opacity: 1; transform: translateY(0); }
1340
- }
1341
- </style>`}<div id="${q}" class="stx-stagger-container">${$}</div>${W}`},description:"Applies staggered animations to child elements"};function $J($){let{stiffness:Z,damping:J}=$,X=J/(2*Math.sqrt(Z));if(X<0.5)return"cubic-bezier(0.175, 0.885, 0.32, 1.275)";else if(X<1)return"cubic-bezier(0.34, 1.56, 0.64, 1)";else return"cubic-bezier(0.25, 0.1, 0.25, 1)"}var ZJ={name:"spring",hasEndTag:!0,handler:($,Z,J,X)=>{let Y=Z[0]?.replace(/['"`]/g,"")||"default",Q;if(M3[Y])Q=M3[Y];else Q={stiffness:Number.parseInt(Y,10)||100,damping:Z[1]?Number.parseInt(Z[1],10):10,mass:Z[2]?Number.parseFloat(Z[2]):1};let G=Z[3]?Number.parseInt(Z[3],10):500,z=`stx-spring-${Math.random().toString(36).slice(2,9)}`,q=$J(Q),K=`
1342
- transition: all ${G}ms ${q};
1343
- --stx-spring-stiffness: ${Q.stiffness};
1344
- --stx-spring-damping: ${Q.damping};
1345
- --stx-spring-mass: ${Q.mass};
1346
- `.trim().replace(/\s+/g," ");return`<div id="${z}" class="stx-spring" style="${K}">${$}</div>`},description:"Applies spring physics animations to an element"};function Tq($){let Z=`stx-timeline-${Math.random().toString(36).slice(2,9)}`;return`
1347
- <script data-stx-scoped data-stx-run="always">
1348
- (function() {
1349
- const timeline = ${JSON.stringify($)};
1350
-
1351
- function runTimeline() {
1352
- timeline.forEach((entry, index) => {
1353
- const element = document.querySelector(entry.selector);
1354
- if (!element) return;
1355
-
1356
- const keyframes = entry.keyframes.map(kf => {
1357
- const frame = { ...kf.properties };
1358
- if (kf.offset !== undefined) frame.offset = kf.offset;
1359
- if (kf.easing) frame.easing = kf.easing;
1360
- return frame;
1361
- });
1362
-
1363
- const options = {
1364
- duration: entry.options.duration || 1000,
1365
- delay: entry.options.delay || 0,
1366
- easing: entry.options.easing || 'ease',
1367
- iterations: entry.options.iterations || 1,
1368
- direction: entry.options.direction || 'normal',
1369
- fill: entry.options.fill || 'forwards'
1370
- };
1371
-
1372
- element.animate(keyframes, options);
1373
- });
1374
- }
1375
-
1376
- if (document.readyState === 'loading') {
1377
- document.addEventListener('DOMContentLoaded', runTimeline);
1378
- }
1379
- else {
1380
- runTimeline();
1381
- }
1382
- })();
1383
- </script>`}function kq($,Z,J){let X=rZ($,Z),Y=`
1384
- .${$}-animation {
1385
- animation-name: ${$};
1386
- animation-duration: ${J.duration}ms;
1387
- animation-timing-function: ${J.easing||"ease"};
1388
- animation-delay: ${J.delay||0}ms;
1389
- animation-iteration-count: ${J.iterations==="infinite"?"infinite":J.iterations||1};
1390
- animation-direction: ${J.direction||"normal"};
1391
- animation-fill-mode: ${J.fill||"forwards"};
1392
- }`;return`${X}
1393
- ${Y}`}function Eq($){let Z=$.trim().split(/\s+/),J={duration:300};for(let X=0;X<Z.length;X++){let Y=Z[X];if(/^\d+(?:ms|s)?$/.test(Y)){let Q=Number.parseInt(Y,10);if(X===0)J.duration=Y.endsWith("s")&&!Y.endsWith("ms")?Q*1000:Q;else J.delay=Y.endsWith("s")&&!Y.endsWith("ms")?Q*1000:Q}else if(Y==="infinite"||/^\d+$/.test(Y))J.iterations=Y==="infinite"?"infinite":Number.parseInt(Y,10);else if(["normal","reverse","alternate","alternate-reverse"].includes(Y))J.direction=Y;else if(["none","forwards","backwards","both"].includes(Y))J.fill=Y;else J.easing=Y}return J}function bq(){return`
1394
- <script data-stx-scoped data-stx-run="once">
1395
- window.__stxAnimation = {
1396
- // Registry of animations
1397
- animations: new Map(),
1398
-
1399
- // Register a reusable animation
1400
- register(name, keyframes, options) {
1401
- this.animations.set(name, { keyframes, options });
1402
- },
1403
-
1404
- // Run an animation on an element
1405
- animate(element, nameOrKeyframes, options = {}) {
1406
- if (typeof element === 'string') {
1407
- element = document.querySelector(element);
1408
- }
1409
- if (!element) return null;
1410
-
1411
- let keyframes, defaultOptions;
1412
-
1413
- if (typeof nameOrKeyframes === 'string' && this.animations.has(nameOrKeyframes)) {
1414
- const registered = this.animations.get(nameOrKeyframes);
1415
- keyframes = registered.keyframes;
1416
- defaultOptions = registered.options;
1417
- }
1418
- else {
1419
- keyframes = nameOrKeyframes;
1420
- defaultOptions = {};
1421
- }
1422
-
1423
- const finalOptions = { ...defaultOptions, ...options };
1424
- return element.animate(keyframes, finalOptions);
1425
- },
1426
-
1427
- // Animate multiple elements with stagger
1428
- stagger(elements, keyframes, options = {}, staggerDelay = 100) {
1429
- if (typeof elements === 'string') {
1430
- elements = document.querySelectorAll(elements);
1431
- }
1432
-
1433
- const animations = [];
1434
- Array.from(elements).forEach((el, index) => {
1435
- const elementOptions = {
1436
- ...options,
1437
- delay: (options.delay || 0) + (index * staggerDelay)
1438
- };
1439
- animations.push(this.animate(el, keyframes, elementOptions));
1440
- });
1441
-
1442
- return animations;
1443
- },
1444
-
1445
- // Chain animations sequentially
1446
- async sequence(steps) {
1447
- for (const step of steps) {
1448
- const animation = this.animate(step.element, step.keyframes, step.options);
1449
- if (animation) {
1450
- await animation.finished;
1451
- }
1452
- }
1453
- },
1454
-
1455
- // Run animations in parallel
1456
- parallel(steps) {
1457
- return Promise.all(
1458
- steps.map(step => {
1459
- const animation = this.animate(step.element, step.keyframes, step.options);
1460
- return animation ? animation.finished : Promise.resolve();
1461
- })
1462
- );
1463
- }
1464
- };
1465
- </script>`}function yq($){let Z=$.customDirectives||[];return Z.push(n9),Z.push(o9),Z.push(r9),Z.push(s9),Z.push(aZ),Z.push(eZ),Z.push(ZJ),{...$,customDirectives:Z}}function T3($){let Z=$.match(/\bdefinePageMeta\s*\(\s*(\{[\s\S]*?\})\s*\)/m);if(!Z)return null;try{return Function(`return ${Z[1]}`)()}catch{return null}}function k3($){let Z=$?.layout;if(Z===!1)return!1;return typeof Z==="string"&&Z.trim()?Z.trim():void 0}var JJ=100,XJ=599,t9="__stxResponseStatus",G2="__stxResponseHeaders";function c2($){return typeof $==="number"&&Number.isInteger($)&&$>=JJ&&$<=XJ}function vq($){for(let Z of $.matchAll(/\bdefinePageMeta\s*\(\s*\{([\s\S]*?)\}\s*\)/g)){let J=Z[1].match(/(?:^|,)\s*status\s*:\s*(\d{3})(?=\s*(?:,|$))/);if(!J)continue;let X=Number(J[1]);if(c2(X))return X}return}function a9($,Z){if(!$||typeof $!=="object")return!1;let J=typeof Z==="string"&&/^\d+$/.test(Z.trim())?Number(Z.trim()):Z;if(!c2(J))return!1;return $[t9]=J,!0}function YJ($,Z,J){if(!$||typeof $!=="object")return;let X=String(Z??"").trim();if(!X)return;$[G2]={...$[G2],[X]:String(J)}}function QJ($){let Z=$?.[t9];return c2(Z)?Z:void 0}function GJ($){let Z=$?.[G2];if(!Z||typeof Z!=="object")return;let J=Object.entries(Z).map(([X,Y])=>[X,String(Y)]);return J.length>0?Object.fromEntries(J):void 0}function fq($,Z){if(!$||!Z||$===Z||typeof Z!=="object")return;let J=QJ($);if(J!==void 0)Z[t9]=J;let X=GJ($);if(X)Z[G2]={...Z[G2],...X}}function E3($){return{setResponseStatus:(Z)=>{a9($,Z)},notFound:(Z=404)=>{let J=c2(Z)&&Z>=400?Z:404;a9($,J)},setResponseHeader:(Z,J)=>{YJ($,Z,J)}}}function b3($,Z,J={}){if(!$.includes("@status"))return $;let{filePath:X,buildMode:Y}=J,Q=Y==="compile",G="",z=0,q=/@status\s*\(/g,K;while((K=q.exec($))!==null){let W=zJ($,K.index+K[0].length-1);if(W<0)break;let U=$.slice(K.index+K[0].length,W).trim(),H=/^\d+$/.test(U)?Number(U):e(U,Z),j=X?` in ${X}`:"";if(Q)console.warn(`[stx] @status(${U})${j} is skipped when precompiling: the build has no request, so the branch it sits in is not the one a visitor will get. Call notFound() or setResponseStatus(${U}) from <script server> instead \u2014 that runs per request.`);else if(!a9(Z,H))console.warn(`[stx] @status(${U})${j} is not an HTTP status (100-599) \u2014 ignoring it.`);G+=$.slice(z,K.index),z=W+1+($.slice(W+1).match(/^[^\S\n]*\n?/)?.[0].length??0),q.lastIndex=z}return z===0?$:G+$.slice(z)}function zJ($,Z){let J=1,X=null,Y=!1;for(let Q=Z+1;Q<$.length;Q++){let G=$[Q];if(Y){Y=!1;continue}if(X){if(G==="\\")Y=!0;else if(G===X)X=null;continue}if(G==='"'||G==="'"||G==="`"){X=G;continue}if(G==="(")J++;else if(G===")"&&--J===0)return Q}return-1}var qJ=0,KJ=0;function y3($,Z){let J=$.match(new RegExp(`${Z}\\s*=\\s*"([^"]*)"`,"i"));if(J)return J[1];let X=$.match(new RegExp(`${Z}\\s*=\\s*'([^']*)'`,"i"));if(X)return X[1];return null}function WJ($){let Z=[],J=/<([a-z][a-z0-9-]*)\s+([^>]*x-data\s*=\s*(?:"[^"]*"|'[^']*')[^>]*)>/gi,X;while((X=J.exec($))!==null){let[Y,Q,G]=X,z=X.index,q=y3(G,"x-data");if(!q)continue;let K=`__stx_scope_${qJ++}`,W=y3(G,"x-init"),U=UJ($,Q,z+Y.length),H=$.slice(z,U.endIndex),j=HJ(H);Z.push({id:K,selector:`[data-stx-scope="${K}"]`,stateExpr:q,initExpr:W,bindings:[],refs:j})}return Z}function UJ($,Z,J){let X=1,Y=J,Q=new RegExp(`<${Z}(?:\\s|>)`,"gi"),G=new RegExp(`</${Z}>`,"gi"),z=new RegExp(`<${Z}[^>]*/\\s*>`,"gi");while(X>0&&Y<$.length){Q.lastIndex=Y,G.lastIndex=Y,z.lastIndex=Y;let q=Q.exec($),K=G.exec($),W=z.exec($);if(W&&W.index<(q?.index??1/0)){Y=W.index+W[0].length;continue}if(!K)return{endIndex:$.length};if(q&&q.index<K.index)X++,Y=q.index+q[0].length;else{if(X--,X===0)return{endIndex:K.index+K[0].length};Y=K.index+K[0].length}}return{endIndex:$.length}}function HJ($){let Z=new Map,J=$.replace(/x-data\s*=\s*"[^"]*"/gi,'x-data="__stripped__"').replace(/x-data\s*=\s*'[^']*'/gi,"x-data='__stripped__'"),X=/<[a-z][a-z0-9-]*\s+([^>]*x-ref\s*=\s*["']([^"']*)["'][^>]*)>/gi,Y;while((Y=X.exec(J))!==null){let[,Q,G]=Y,z=jJ(Q);Z.set(G,z)}return Z}function jJ($){let Z=$.match(/\bid\s*=\s*["']([^"']*)["']/);if(Z)return Z[1];return`__stx_el_${KJ++}`}function BJ(){return`
1466
- // STX Reactive Runtime - x-cloak and transition CSS
1467
- (function() {
1468
- var style = document.createElement('style');
1469
- style.textContent = [
1470
- '[x-cloak] { display: none !important; }',
1471
- // Default transition classes
1472
- '.stx-enter { opacity: 0; transform: scale(0.95); }',
1473
- '.stx-enter-start { opacity: 0; transform: scale(0.95); }',
1474
- '.stx-enter-active { transition: opacity 150ms ease-out, transform 150ms ease-out; }',
1475
- '.stx-enter-to { opacity: 1; transform: scale(1); }',
1476
- '.stx-leave { opacity: 1; transform: scale(1); }',
1477
- '.stx-leave-start { opacity: 1; transform: scale(1); }',
1478
- '.stx-leave-active { transition: opacity 100ms ease-in, transform 100ms ease-in; }',
1479
- '.stx-leave-to { opacity: 0; transform: scale(0.95); }'
1480
- ].join('\\n');
1481
- document.head.appendChild(style);
1482
- })();
1483
-
1484
- // STX Reactive Runtime
1485
- /* eslint-disable pickier/no-unused-vars, no-console, prefer-const */
1486
- window.__stx_reactive = (function() {
1487
- 'use strict';
1488
-
1489
- // Deep reactive proxy that triggers onChange for any mutation
1490
- function reactive(obj, onChange) {
1491
- if (!obj || typeof obj !== 'object') return obj;
1492
- return new Proxy(obj, {
1493
- get(target, prop) {
1494
- const value = target[prop];
1495
- if (value && typeof value === 'object' && !Array.isArray(value) && !(value instanceof Promise)) {
1496
- return reactive(value, onChange);
1497
- }
1498
- return value;
1499
- },
1500
- set(target, prop, value) {
1501
- target[prop] = value;
1502
- onChange(prop, value);
1503
- return true;
1504
- }
1505
- });
1506
- }
1507
-
1508
- // Initialize an x-data scope: parse state, run init(), register into window.stx._scopes,
1509
- // then let the signals runtime handle all directive processing (x-for, x-text, :bind, etc.)
1510
- function initScope(scopeEl, initialState, bindings, refs, initExpr) {
1511
- // Parse initial state (may contain methods including async init())
1512
- var state;
1513
- try {
1514
- state = new Function('return (' + initialState + ')')();
1515
- } catch (e) {
1516
- console.error('[stx-reactive] Invalid x-data:', initialState, e);
1517
- return;
1518
- }
1519
-
1520
- // Build $refs object
1521
- var $refs = {};
1522
- for (var name in refs) {
1523
- if (Object.prototype.hasOwnProperty.call(refs, name)) {
1524
- (function(refName, refId) {
1525
- Object.defineProperty($refs, refName, {
1526
- get: function() { return document.getElementById(refId); }
1527
- });
1528
- })(name, refs[name]);
1529
- }
1530
- }
1531
-
1532
- // Extract init method from state if present (Alpine.js convention)
1533
- var initMethod = state.init;
1534
- if (typeof initMethod === 'function') {
1535
- delete state.init;
1536
- }
1537
-
1538
- // Make state reactive \u2014 mutations trigger re-render via signals
1539
- var scopeId = scopeEl.getAttribute('data-stx-scope');
1540
- var stx = window.stx;
1541
-
1542
- // Create signals for each state property so the signals runtime can track dependencies
1543
- var signalState = {};
1544
- var rawState = {};
1545
- for (var key in state) {
1546
- if (Object.prototype.hasOwnProperty.call(state, key)) {
1547
- if (typeof state[key] === 'function') {
1548
- // Methods \u2014 bind to a proxy so 'this.prop = val' triggers signal updates
1549
- signalState[key] = state[key];
1550
- } else {
1551
- // Data properties \u2014 wrap in signals for reactivity
1552
- signalState[key] = stx.state(state[key]);
1553
- rawState[key] = true;
1554
- }
1555
- }
1556
- }
1557
-
1558
- // Create a proxy context that auto-unwraps signals and writes back through them.
1559
- // Methods get 'this' bound to this proxy so this.foo = bar triggers reactivity.
1560
- var ctx = {};
1561
- var ctxProxy = new Proxy(ctx, {
1562
- get: function(target, prop) {
1563
- if (prop === '$refs') return $refs;
1564
- if (prop === '$el') return scopeEl;
1565
- if (prop === '$nextTick') return function(fn) { requestAnimationFrame(fn); };
1566
- var s = signalState[prop];
1567
- if (!s) return undefined;
1568
- if (rawState[prop] && s && typeof s === 'function' && typeof s.value !== 'undefined') {
1569
- return s.value; // unwrap signal
1570
- }
1571
- if (typeof s === 'function' && !rawState[prop]) {
1572
- return s.bind(ctxProxy); // bind methods to proxy
1573
- }
1574
- return s;
1575
- },
1576
- set: function(target, prop, value) {
1577
- var s = signalState[prop];
1578
- if (rawState[prop] && s && typeof s === 'function') {
1579
- s.value = value; // write through signal \u2014 triggers effects
1580
- } else {
1581
- signalState[prop] = value;
1582
- }
1583
- return true;
1584
- },
1585
- has: function(target, prop) {
1586
- return prop in signalState || prop === '$refs' || prop === '$el' || prop === '$nextTick';
1587
- },
1588
- ownKeys: function() {
1589
- return Object.keys(signalState).concat(['$refs', '$el', '$nextTick']);
1590
- },
1591
- getOwnPropertyDescriptor: function(target, prop) {
1592
- if (prop in signalState || prop === '$refs' || prop === '$el' || prop === '$nextTick') {
1593
- return { configurable: true, enumerable: true, writable: true, value: ctxProxy[prop] };
1594
- }
1595
- return undefined;
1596
- }
1597
- });
1598
-
1599
- // Build scope vars for the signals runtime \u2014 it reads these for expression evaluation.
1600
- // We need to provide getter/setter descriptors so signals track properly.
1601
- var scopeVars = {};
1602
- for (var k in signalState) {
1603
- if (Object.prototype.hasOwnProperty.call(signalState, k)) {
1604
- if (rawState[k]) {
1605
- // Data: expose the signal directly so expressions trigger dependency tracking
1606
- scopeVars[k] = signalState[k];
1607
- } else {
1608
- // Method: bind to ctxProxy so 'this' works
1609
- scopeVars[k] = (typeof signalState[k] === 'function') ? signalState[k].bind(ctxProxy) : signalState[k];
1610
- }
1611
- }
1612
- }
1613
- scopeVars.$refs = $refs;
1614
- scopeVars.$el = scopeEl;
1615
- scopeVars.$nextTick = function(fn) { requestAnimationFrame(fn); };
1616
-
1617
- // Register scope \u2014 merge with any existing vars from partial signal scripts
1618
- if (!stx._scopes) stx._scopes = {};
1619
- stx._scopes[scopeId] = Object.assign(stx._scopes[scopeId] || {}, scopeVars);
1620
-
1621
- // Store on element for findElementScope
1622
- scopeEl.__stx_scope = scopeVars;
1623
-
1624
- // Run init() if present (supports async)
1625
- function runInit() {
1626
- var maybePromise;
1627
- if (initMethod) {
1628
- maybePromise = initMethod.call(ctxProxy);
1629
- }
1630
- if (initExpr) {
1631
- try {
1632
- var keys = Object.keys(scopeVars);
1633
- var vals = keys.map(function(k) { return scopeVars[k]; });
1634
- var fn = new Function(keys.join(','), initExpr);
1635
- var result = fn.apply(ctxProxy, vals);
1636
- if (result && typeof result.then === 'function') maybePromise = result;
1637
- } catch (e) {
1638
- console.warn('[stx-reactive] init expression error:', e);
1639
- }
1640
- }
1641
- // If init is async, signal updates will trigger effects automatically
1642
- // when init() resolves and sets this.prop = value (writes through signal)
1643
- if (maybePromise && typeof maybePromise.then === 'function') {
1644
- maybePromise.catch(function(e) {
1645
- console.error('[stx-reactive] async init() error:', e);
1646
- });
1647
- }
1648
- }
1649
-
1650
- // Run init before the signals runtime processes this scope
1651
- runInit();
1652
-
1653
- // Expose for debugging
1654
- scopeEl.__stx_state = ctxProxy;
1655
- scopeEl.__stx_execute = function(stmt, $event, $el) {
1656
- try {
1657
- // Run the statement with the reactive proxy as the lexical scope.
1658
- // Wrapping in a with-block on the proxy makes bare reads/writes go
1659
- // through it (so foo = bar triggers signal.set()) instead of treating
1660
- // each state key as a local function parameter \u2014 bare assignments
1661
- // would otherwise just rebind the local and never reach the signal.
1662
- var fn = new Function('$event', '$el', 'with(this){' + stmt + ';}');
1663
- fn.call(ctxProxy, $event, $el);
1664
- } catch (e) {
1665
- console.warn('[stx-reactive] execute error:', e);
1666
- }
1667
- };
1668
- }
1669
-
1670
- return { initScope: initScope, reactive: reactive };
1671
- })();
1672
- `}function C3($,Z){let J=$.replace(/\{!!([\s\S]*?)!!\}/g,(z,q)=>{try{let K=x0(q,Z,!0);if(K===void 0)return z;return String(K)}catch{return z}}),X="",Y=0,Q=null;while(Y<J.length){let z=J[Y];if(Q&&z==="\\"){X+=z+(J[Y+1]??""),Y+=2;continue}if(z==="{"&&J[Y+1]==="{"){let q=J.indexOf("}}",Y+2);if(q!==-1){let K=J.slice(Y,q+2);X+=G(J.slice(Y+2,q),K,Q),Y=q+2;continue}}if(Q){if(z===Q)Q=null}else if(z==="'"||z==='"'||z==="`")Q=z;X+=z,Y++}return X;function G(z,q,K){let W;try{W=x0(z,Z,!0)}catch{return q}if(W===void 0)return q;if(K){let U=String(W).replace(/\\/g,"\\\\").replace(new RegExp(K==="`"?"`":K,"g"),`\\${K}`).replace(/\r/g,"\\r").replace(/\n/g,"\\n");return K==="`"?U.replace(/\$\{/g,"\\${"):U}if(typeof W==="string"){let U=W.trim();if(U.startsWith("{")&&U.endsWith("}")||U.startsWith("[")&&U.endsWith("]"))try{return JSON.parse(U),U}catch{}}return JSON.stringify(W)}}function VJ($,Z){if($.length===0)return"";let J=$.map((X)=>{let Y=JSON.stringify(Object.fromEntries(X.refs)),Q=C3(X.stateExpr,Z),G=X.initExpr?C3(X.initExpr,Z):null,z=JSON.stringify(Q),q=G?JSON.stringify(G):"null";return`
1673
- (function() {
1674
- var scopeEl = document.querySelector('${X.selector}');
1675
- if (!scopeEl) return;
1676
- var refs = ${Y};
1677
- __stx_reactive.initScope(scopeEl, ${z}, [], refs, ${q});
1678
- })();`}).join(`
1679
- `);return`
1680
- <script data-stx-scoped data-stx-reactive data-stx-run="always">
1681
- ${BJ()}
1682
- ${J}
1683
- </script>`}function S3($,Z,J){if(!LJ($))return $;let X=WJ($);if(X.length===0)return $;let Y=_J($,X),Q=VJ(X,Z),G=Y.lastIndexOf("</body>");if(G!==-1)Y=Y.slice(0,G)+Q+`
1684
- `+Y.slice(G);else Y+=Q;return Y}function _J($,Z){let J=0,X=$.replace(/<([a-z][a-z0-9-]*)(\s+[^>]*x-data\s*=\s*(?:"[^"]*"|'[^']*')[^>]*)>/gi,(Y,Q,G)=>{let z=Z[J++];if(!z)return Y;let q=/data-stx-scope="([^"]*)"/.exec(G);if(q)return z.id=q[1],z.selector=`[data-stx-scope="${z.id}"]`,Y;return`<${Q} data-stx-scope="${z.id}"${G}>`});return X=X.replace(/\s*x-data\s*=\s*"([^"]*)"/g,' data-stx-xdata="$1"'),X=X.replace(/\s*x-data\s*=\s*'([^']*)'/g," data-stx-xdata='$1'"),X=X.replace(/\s*x-init\s*=\s*"([^"]*)"/g,' data-stx-xinit="$1"'),X=X.replace(/\s*x-init\s*=\s*'([^']*)'/g," data-stx-xinit='$1'"),X}function LJ($){return/x-data\s*=\s*["']/.test($)}import HX from"fs";import O5 from"path";import{createHighlighter as jX}from"ts-syntax-highlighter";import $9 from"fs";import b0 from"path";import{loadConfigWithResult as QX}from"bunfig";z2();async function OJ($,Z,J,X){let Y=Z[0]?.replace(/['"]/g,"")||"main",Q=e9();if(Y!=="main")Q=Q.replace("container:'main'",`container:'${Y}'`);return`<script data-stx-router>${Q}</script>`}var P3={name:"stxRouter",handler:OJ,hasEndTag:!1,description:"Inject the STX SPA router script for client-side navigation"};function Y1($){return $.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}function v3($){let Z=$.trim().toLowerCase();return!Z.startsWith("javascript:")&&!Z.startsWith("vbscript:")&&!Z.startsWith("data:text/html")}function f3($){let Z=/^---\r?\n([\s\S]*?)\r?\n---\r?\n/,J=$.match(Z);if(!J)return{data:{},content:$.trim()};let X=J[1],Y=$.slice(J[0].length),Q={};for(let G of X.split(`
1685
- `)){let z=G.trim();if(!z||z.startsWith("#"))continue;let q=z.indexOf(":");if(q===-1)continue;let K=z.slice(0,q).trim(),W=z.slice(q+1).trim();if(typeof W==="string"){if(W.startsWith('"')&&W.endsWith('"')||W.startsWith("'")&&W.endsWith("'"))W=W.slice(1,-1);else if(W.startsWith("[")&&W.endsWith("]"))try{W=JSON.parse(W)}catch{}else if(W==="true")W=!0;else if(W==="false")W=!1;else if(/^-?\d+(?:\.\d+)?$/.test(W))W=Number(W)}Q[K]=W}return{data:Q,content:Y.trim()}}function q2($,Z={}){let{gfm:J=!0,breaks:X=!1}=Z,Y=$,Q=[];if(Y=Y.replace(/```(\w*)\n([\s\S]*?)```/g,(W,U,H)=>{let j=Q.length,B=U?` class="language-${Y1(U)}"`:"";return Q.push(`<pre><code${B}>${Y1(H.trim())}</code></pre>`),`\x00CODEBLOCK${j}\x00`}),Y=Y.replace(/`([^`]*)`/g,(W,U)=>`<code>${Y1(U)}</code>`),Y=Y.replace(/^######\s+(.*)$/gm,"<h6>$1</h6>"),Y=Y.replace(/^#####\s+(.*)$/gm,"<h5>$1</h5>"),Y=Y.replace(/^####\s+(.*)$/gm,"<h4>$1</h4>"),Y=Y.replace(/^###\s+(.*)$/gm,"<h3>$1</h3>"),Y=Y.replace(/^##\s+(.*)$/gm,"<h2>$1</h2>"),Y=Y.replace(/^#\s+(.*)$/gm,"<h1>$1</h1>"),Y=Y.replace(/\*\*\*(.+?)\*\*\*/g,"<strong><em>$1</em></strong>"),Y=Y.replace(/___(.+?)___/g,"<strong><em>$1</em></strong>"),Y=Y.replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>"),Y=Y.replace(/__(.+?)__/g,"<strong>$1</strong>"),Y=Y.replace(/\*(.+?)\*/g,"<em>$1</em>"),Y=Y.replace(/(?<![a-zA-Z0-9])_(.+?)_(?![a-zA-Z0-9])/g,"<em>$1</em>"),J)Y=Y.replace(/~~(.+?)~~/g,"<del>$1</del>");if(Y=Y.replace(/!\[([^\]]*)\]\(([^)]+)\)/g,(W,U,H)=>{return`<img src="${v3(H)?Y1(H):""}" alt="${Y1(U)}" />`}),Y=Y.replace(/\[([^\]]+)\]\(([^)]+)\)/g,(W,U,H)=>{return`<a href="${v3(H)?Y1(H):""}">${U}</a>`}),Y=Y.replace(/^(?:---|\*\*\*|___)\s*$/gm,"<hr />"),Y=Y.replace(/^>\s+(.*)$/gm,"<blockquote>$1</blockquote>"),Y=Y.replace(/<\/blockquote>\n<blockquote>/g,`
1686
- `),Y=Y.replace(/^[*\-+]\s+(.*)$/gm,"<li data-ul>$1</li>"),Y=Y.replace(/(<li data-ul>.*<\/li>\n?)+/g,"<ul>$&</ul>"),Y=Y.replace(/<\/ul>\n<ul>/g,""),Y=Y.replace(/^\d+\.\s+(.*)$/gm,"<li data-ol>$1</li>"),Y=Y.replace(/(<li data-ol>.*<\/li>\n?)+/g,"<ol>$&</ol>"),Y=Y.replace(/<\/ol>\n<ol>/g,""),Y=Y.replace(/<li data-ul>/g,"<li>"),Y=Y.replace(/<li data-ol>/g,"<li>"),J)Y=Y.replace(/^\|(.+)\|\s*\n\|[-:\s|]+\|\s*\n((?:\|.+\|\s*\n)*)/gm,(W,U,H)=>{let B=`<tr>${U.split("|").map((F)=>F.trim()).filter(Boolean).map((F)=>`<th>${Y1(F)}</th>`).join("")}</tr>`,V=H.trim().split(`
1687
- `).map((F)=>{return`<tr>${F.split("|").map((O)=>O.trim()).filter(Boolean).map((O)=>`<td>${Y1(O)}</td>`).join("")}</tr>`}).join(`
1688
- `);return`<table>
1689
- <thead>
1690
- ${B}
1691
- </thead>
1692
- <tbody>
1693
- ${V}
1694
- </tbody>
1695
- </table>`});if(J)Y=Y.replace(/<li>\s*\[\s*\]\s*/g,'<li><input type="checkbox" disabled /> '),Y=Y.replace(/<li>\s*\[x\]\s*/gi,'<li><input type="checkbox" checked disabled /> ');let G=Y.split(`
1696
- `),z=[],q=!1,K=[];for(let W of G){let U=W.trim();if(/^<(?:h[1-6]|ul|ol|li|blockquote|pre|table|thead|tbody|tr|th|td|hr|div|p)/.test(U)||/^\0CODEBLOCK\d+\0$/.test(U)||U===""){if(q&&K.length>0)z.push(`<p>${K.join(X?`<br />
1697
- `:`
1698
- `)}</p>`),K=[],q=!1;z.push(W)}else q=!0,K.push(U)}if(q&&K.length>0)z.push(`<p>${K.join(X?`<br />
1699
- `:`
1700
- `)}</p>`);if(Y=z.join(`
1701
- `),X)Y=Y.replace(/\n/g,`<br />
1702
- `);for(let W=0;W<Q.length;W++)Y=Y.replace(`\x00CODEBLOCK${W}\x00`,Q[W]);return Y=Y.replace(/<p>\s*<\/p>/g,""),Y.trim()}async function x3($,Z,J=""){let X=$,Y=[],Q=/@markdown(?:\([^)]*\))?/g,G;while((G=Q.exec($))!==null){let z=G.index,q=G[0].match(/@markdown\(([^)]*)\)/),K=q?q[1]:"",W=z+G[0].length,U=1,H=W,j=-1;while(U>0&&H<$.length){let F=$.indexOf("@markdown",H),_=$.indexOf("@endmarkdown",H);if(_===-1)break;if(F!==-1&&F<_&&F!==z){let O=$[F+9];if(O==="("||O===`
1703
- `||O==="\r"||O===" "||O===void 0)U++;H=F+9}else{if(U--,U===0){j=_;break}H=_+12}}if(j===-1)continue;let B=$.slice(W,j),V=$.slice(z,j+12);Y.push({fullMatch:V,options:K,content:B,index:z}),Q.lastIndex=j+12}for(let{fullMatch:z,options:q,content:K,index:W}of Y)try{let U={};if(q)q.split(",").forEach((B)=>{let V=B.trim();if(V)U[V]=!0});let H={gfm:U.gfm??!0,breaks:U.breaks??!1},j=q2(K.trim(),H);X=X.split(z).join(j)}catch(U){let H=U instanceof Error?U.message:String(U),j=H0("Markdown Directive",`Error processing markdown: ${H}`,J,$,W,z);X=X.split(z).join(j)}return X}async function g3($,Z,J,X){let Y={gfm:!0,breaks:!1};return Z.forEach((Q)=>{let G=Q.trim().replace(/['"]/g,"");if(G==="breaks")Y.breaks=!0;if(G==="no-gfm")Y.gfm=!1}),q2($.trim(),Y)}var _1=[320,480,640,768,1024,1280,1536,1920,2560],h3=[1,1.5,2,3],C1=["avif","webp","jpeg"],u3={avif:"image/avif",webp:"image/webp",jpeg:"image/jpeg",png:"image/png",gif:"image/gif"},FJ={avif:"avif",webp:"webp",jpeg:"jpg",png:"png",gif:"gif"};function K2($,Z=_1,J={},X){return Z.sort((Y,Q)=>Y-Q).map((Y)=>{return`${Q1($,{...J,w:Y,fm:X})} ${Y}w`}).join(", ")}function oq($,Z=320,J=2560,X=0.08,Y={},Q){let G=wJ(Z,J,X);return K2($,G,Y,Q)}function wJ($,Z,J=0.08){let X=[],Y=$;while(Y<Z)X.push(Math.round(Y)),Y*=1+J*2;if(X[X.length-1]!==Z)X.push(Z);return X}function $5($,Z,J=h3,X={},Y){return J.sort((Q,G)=>Q-G).map((Q)=>{let G=Math.round(Z*Q);return`${Q1($,{...X,w:G,dpr:Q,fm:Y})} ${Q}x`}).join(", ")}function rq($,Z,J=h3,X=80,Y={},Q){let G={1:X,1.5:Math.round(X*0.9),2:Math.round(X*0.8),3:Math.round(X*0.7),4:Math.round(X*0.6),5:Math.round(X*0.5)};return J.sort((z,q)=>z-q).map((z)=>{let q=Math.round(Z*z),K=G[z]||Math.round(X*Math.max(0.5,1-z*0.1));return`${Q1($,{...Y,w:q,q:K,dpr:z,fm:Q})} ${z}x`}).join(", ")}function Z5($,Z="100vw"){if(!$||Object.keys($).length===0)return Z;let X=Object.entries($).map(([Y,Q])=>{let G=/^\d+$/.test(Y)?`${Y}px`:Y;return{bp:G,size:Q,numericBp:Number.parseInt(G)||0}}).sort((Y,Q)=>Y.numericBp-Q.numericBp).map(({bp:Y,size:Q})=>`(max-width: ${Y}) ${Q}`);return X.push(Z),X.join(", ")}function aq($,Z="100vw"){if(!$||$.length===0)return Z;let X=[...$].sort((Y,Q)=>(Y.maxWidth||0)-(Q.maxWidth||0)).filter((Y)=>Y.maxWidth).map((Y)=>`(max-width: ${Y.maxWidth}px) ${Y.imageWidth}`);return X.push(Z),X.join(", ")}var tq={fullWidth:"100vw",halfDesktop:"(max-width: 768px) 100vw, 50vw",thirdDesktop:"(max-width: 768px) 100vw, 33.33vw",quarterDesktop:"(max-width: 480px) 100vw, (max-width: 768px) 50vw, 25vw",contentWidth:"(max-width: 768px) 100vw, (max-width: 1200px) 80vw, 960px"};function Q1($,Z={}){let J=Object.entries(Z).filter(([,Q])=>Q!==void 0&&Q!==null).map(([Q,G])=>{if(Array.isArray(G))return[Q,G.join(",")];return[Q,String(G)]});if(J.length===0)return $;let X=J.map(([Q,G])=>`${Q}=${encodeURIComponent(G)}`).join("&"),Y=$.includes("?")?"&":"?";return`${$}${Y}${X}`}function eq($){let[Z,J]=$.split("?"),X={};if(J)new URLSearchParams(J).forEach((Q,G)=>{if(/^\d+$/.test(Q))X[G]=Number.parseInt(Q,10);else if(/^\d+\.\d+$/.test(Q))X[G]=Number.parseFloat(Q);else if(Q==="true")X[G]=!0;else if(Q==="false")X[G]=!1;else X[G]=Q});return{src:Z,params:X}}function $K($){let{src:Z,widths:J,dprValues:X,fixedWidth:Y,formats:Q=C1,baseUrl:G="",params:z={}}=$,q=[];for(let K of Q){let W,U;if(Y!==void 0&&X)W=$5(Z,Y,X,z,K),U=X.map((H)=>({path:"",url:Q1(Z,{...z,w:Math.round(Y*H),fm:K}),width:Math.round(Y*H),height:0,format:K,size:0,dpr:H}));else{let H=J||_1;W=K2(Z,H,z,K),U=H.map((j)=>({path:"",url:Q1(Z,{...z,w:j,fm:K}),width:j,height:0,format:K,size:0}))}q.push({srcset:W,format:K,mimeType:u3[K],variants:U})}return q}function ZK($,Z="100vw"){return $.map(({srcset:J,mimeType:X})=>`<source type="${X}" srcset="${J}" sizes="${Z}" />`).join(`
1704
- `)}function JK($,Z){if($.length===0)return;let J=[...$].sort((Y,Q)=>Y.width-Q.width),X=J.find((Y)=>Y.width>=Z);if(X)return X;return J[J.length-1]}function J5($){return u3[$]||"application/octet-stream"}function XK($){return FJ[$]||$}function YK($){switch($.split(".").pop()?.toLowerCase()){case"jpg":case"jpeg":return"jpeg";case"png":return"png";case"webp":return"webp";case"avif":return"avif";case"gif":return"gif";default:return}}var RJ={strategy:"thumbhash",width:20,quality:50,blurLevel:40,transitionDuration:300,easing:"ease-out"},X5=`
1705
- .stx-img-placeholder {
1706
- position: relative;
1707
- overflow: hidden;
1708
- background-size: cover;
1709
- background-position: center;
1710
- background-repeat: no-repeat;
1711
- }
1712
-
1713
- .stx-img-placeholder img {
1714
- opacity: 0;
1715
- transition: opacity var(--stx-img-transition-duration, 300ms) var(--stx-img-transition-easing, ease-out);
1716
- }
1717
-
1718
- .stx-img-placeholder.stx-img-loaded img {
1719
- opacity: 1;
1720
- }
1721
-
1722
- .stx-img-blur {
1723
- filter: blur(20px);
1724
- transform: scale(1.1);
1725
- transition: filter var(--stx-img-transition-duration, 300ms) var(--stx-img-transition-easing, ease-out),
1726
- transform var(--stx-img-transition-duration, 300ms) var(--stx-img-transition-easing, ease-out);
1727
- }
1728
-
1729
- .stx-img-loaded .stx-img-blur {
1730
- filter: blur(0);
1731
- transform: scale(1);
1732
- }
1733
- `.trim();async function Y5(){try{return await import("ts-images")}catch{return null}}async function d3($,Z={}){let J={...RJ,...Z},X=await Y5();if(X)try{return await NJ($,J,X)}catch(Y){console.warn(`[stx-media] ts-images placeholder generation failed, using fallback: ${Y}`)}return m3($,J)}async function NJ($,Z,J){let{generatePlaceholder:X,generateThumbHash:Y}=J,G={blur:"blur",thumbhash:"thumbhash",blurhash:"thumbhash",pixelate:"pixelate","dominant-color":"dominant-color",none:"blur"}[Z.strategy]||"blur";if(Z.strategy==="thumbhash")return{dataURL:(await Y($)).dataUrl,width:32,height:32,aspectRatio:1,originalWidth:0,originalHeight:0,strategy:"thumbhash"};let z=await X($,{width:Z.width,height:Z.height,quality:Z.quality,blurLevel:Z.blurLevel,strategy:G,base64Encode:!0});return{dataURL:z.dataURL,width:z.width,height:z.height,aspectRatio:z.aspectRatio,originalWidth:z.originalWidth,originalHeight:z.originalHeight,strategy:Z.strategy,dominantColor:z.dominantColor,css:z.css}}function m3($,Z){let J=Z.width||20,X=Z.height||J,Y="#e5e7eb",Q=`<svg xmlns="http://www.w3.org/2000/svg" width="${J}" height="${X}" viewBox="0 0 ${J} ${X}"><rect fill="#e5e7eb" width="${J}" height="${X}"/></svg>`;return{dataURL:`data:image/svg+xml;charset=utf-8,${encodeURIComponent(Q)}`,width:J,height:X,aspectRatio:J/X,originalWidth:0,originalHeight:0,strategy:Z.strategy,dominantColor:"#e5e7eb"}}async function GK($){let Z=await Y5();if(Z)try{return(await Z.generateThumbHash($)).dataUrl}catch{}return(await m3($,{strategy:"thumbhash",width:32,height:32})).dataURL}function zK($){let Z=$[0]|$[1]<<8|$[2]<<16,J=(Z&63)/63,X=(Z>>6&63)/31.5-1,Y=(Z>>12&63)/31.5-1,Q=(Z>>18&31)/31,G=Z>>23!==0,z=$[3]|$[4]<<8,q=(z>>3&63)/63,K=(z>>9&63)/63,W=z>>15!==0,U=Math.max(3,W?G?5:7:G?5:7),H=Math.max(3,W?G?5:7:G?5:7),j=32,B=32,V=Math.max(0,Math.min(255,Math.round((J+X)*255))),F=Math.max(0,Math.min(255,Math.round(J*255))),_=Math.max(0,Math.min(255,Math.round((J-X)*255))),O=`<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32">
1734
- <rect fill="rgb(${V},${F},${_})" width="32" height="32"/>
1735
- </svg>`;return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(O)}`}async function qK($,Z=20,J=50){return d3($,{strategy:"blur",width:Z,quality:J,blurLevel:40})}async function KK($){let Z=await Y5();if(Z)try{return(await Z.generatePlaceholder($,{strategy:"dominant-color"})).dominantColor||"#e5e7eb"}catch{}return"#e5e7eb"}function WK($,Z=1,J=1){let X=`<svg xmlns="http://www.w3.org/2000/svg" width="${Z}" height="${J}"><rect fill="${$}" width="${Z}" height="${J}"/></svg>`;return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(X)}`}function l3($,Z,J={}){let X=J.transitionDuration||300,Y=J.easing||"ease-out";return`
1736
- #${$} {
1737
- --stx-img-transition-duration: ${X}ms;
1738
- --stx-img-transition-easing: ${Y};
1739
- background-image: url('${Z.dataURL}');
1740
- background-size: cover;
1741
- background-position: center;
1742
- }
1743
-
1744
- #${$} img {
1745
- opacity: 0;
1746
- transition: opacity var(--stx-img-transition-duration) var(--stx-img-transition-easing);
1747
- }
1748
-
1749
- #${$}.stx-img-loaded img {
1750
- opacity: 1;
1751
- }
1752
- `.trim()}function UK($){return`background-image: url('${$.dataURL}'); background-size: cover; background-position: center;`}var S1=new Map;async function c3($,Z={}){let J=`${$}:${JSON.stringify(Z)}`;if(S1.has(J))return S1.get(J);let X=await d3($,Z);return S1.set(J,X),X}function HK(){S1.clear()}function jK(){return{size:S1.size,keys:Array.from(S1.keys())}}async function DJ(){try{return await import("./chunk-51gea48g.js")}catch($){if(!p3)console.warn("[stx-media] Image processor not available, some features disabled:",$),p3=!0;return null}}var p3=!1,Q5=80,p2="async",i2="lazy",i3=!1;async function W2($,Z={}){let J=Z,X=$;if(X.process&&!X.skipOptimization){if(J.tsImagesConfig?.enabled&&!J.isDev)return kJ(X,J)}if(J.processedResult?.processed)return q5($,J.processedResult,Z);if(J.responsiveVariants)return o3($,J.responsiveVariants,Z);let{src:Y,alt:Q,width:G,height:z,sizes:q,widths:K=_1,dpr:W,formats:U=C1,quality:H=Q5,params:j={},placeholder:B="none",placeholderOptions:V={},lazy:F=!0,priority:_=!1,loading:O=_?"eager":i2,decoding:L=p2,fetchpriority:w,objectFit:R,objectPosition:N,crossorigin:A,referrerpolicy:T}=$,D=$.class,M=$.style,k=$.id,I=$.data||{},{isDev:y=!1,baseUrl:E=""}=Z;if(y&&!Z.optimize)return IJ($);let b,C,f=k||`stx-img-${Math.random().toString(36).slice(2,8)}`;if(B!=="none"&&!_)try{b=await c3(Y,{strategy:B,...V}),C=l3(f,b,V)}catch{}let u=W!==void 0&&G!==void 0,P;if(u)P=MJ($,f,b,Z);else P=await AJ($,f,b,Z);let h;if(_){let S0=U.includes("webp")?"webp":U[0],y0=K2(Y,K,{...j,q:H},S0),h0=typeof q==="object"?Z5(q):q||"100vw";h=`<link rel="preload" as="image" imagesrcset="${y0}" imagesizes="${h0}" />`}let m=[];if(!i3&&B!=="none")m.push(X5),i3=!0;if(C)m.push(C);let j0=F?s3(f):void 0;return{html:P,preloadLink:h,css:m.length>0?m.join(`
1753
- `):void 0,script:j0}}async function AJ($,Z,J,X){let{src:Y,alt:Q,width:G,height:z,sizes:q,widths:K=_1,formats:W=C1,quality:U=Q5,params:H={},lazy:j=!0,priority:B=!1,loading:V=B?"eager":i2,decoding:F=p2,fetchpriority:_,objectFit:O,objectPosition:L,crossorigin:w,referrerpolicy:R}=$,N=$.class,A=$.style,T=$.data||{},D=typeof q==="object"?Z5(q):q||"100vw",M=[];for(let y of W){let E=K2(Y,K,{...H,q:U},y),b=J5(y);if(j&&!B)M.push(` <source type="${b}" data-srcset="${E}" data-sizes="${D}" />`);else M.push(` <source type="${b}" srcset="${E}" sizes="${D}" />`)}let k=G5({src:Q1(Y,{...H,q:U}),alt:Q,width:G,height:z,loading:B?void 0:V,decoding:F,fetchpriority:B?"high":_,objectFit:O,objectPosition:L,crossorigin:w,referrerpolicy:R,className:n3(N,J),style:z5(A,O,L,J),lazy:j&&!B,data:T}),I;if(J){let y=`background-image: url('${J.dataURL}'); background-size: cover; background-position: center;`;I=`<div id="${Z}" class="stx-img-placeholder" style="${y}">
1754
- <picture>
1755
- ${M.join(`
1756
- `)}
1757
- <img ${k} />
1758
- </picture>
1759
- </div>`}else I=`<picture${Z?` id="${Z}"`:""}>
1760
- ${M.join(`
1761
- `)}
1762
- <img ${k} />
1763
- </picture>`;return I}function MJ($,Z,J,X){let{src:Y,alt:Q,width:G,height:z,dpr:q=[1,2,3],quality:K=Q5,params:W={},lazy:U=!0,priority:H=!1,loading:j=H?"eager":i2,decoding:B=p2,fetchpriority:V,objectFit:F,objectPosition:_,crossorigin:O,referrerpolicy:L}=$,w=$.class,R=$.style,N=$.data||{},A=typeof G==="number"?G:Number.parseInt(String(G),10),T=$5(Y,A,q,{...W,q:K}),D=G5({src:Q1(Y,{...W,w:A,q:K}),alt:Q,width:G,height:z,loading:H?void 0:j,decoding:B,fetchpriority:H?"high":V,objectFit:F,objectPosition:_,crossorigin:O,referrerpolicy:L,className:n3(w,J),style:z5(R,F,_,J),lazy:U&&!H,data:N}),M=U&&!H?`data-srcset="${T}"`:`srcset="${T}"`;if(J){let k=`background-image: url('${J.dataURL}'); background-size: cover; background-position: center;`;return`<div id="${Z}" class="stx-img-placeholder" style="${k}">
1764
- <img ${D} ${M} />
1765
- </div>`}return`<img ${Z?`id="${Z}" `:""}${D} ${M} />`}function IJ($){let{src:Z,alt:J,width:X,height:Y,loading:Q=i2,decoding:G=p2,fetchpriority:z,objectFit:q,objectPosition:K,crossorigin:W,referrerpolicy:U,priority:H=!1}=$,j=$.class,B=$.style,V=$.id,F=$.data||{};return{html:`<img ${G5({src:Z,alt:J,width:X,height:Y,loading:H?"eager":Q,decoding:G,fetchpriority:H?"high":z,objectFit:q,objectPosition:K,crossorigin:W,referrerpolicy:U,className:j,style:z5(B,q,K),id:V,data:F})} />`}}function G5($){let Z=[];if($.lazy)Z.push(`data-src="${p0($.src)}"`),Z.push('src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"');else Z.push(`src="${p0($.src)}"`);if(Z.push(`alt="${p0($.alt)}"`),$.width)Z.push(`width="${$.width}"`);if($.height)Z.push(`height="${$.height}"`);if($.loading)Z.push(`loading="${$.loading}"`);if($.decoding)Z.push(`decoding="${$.decoding}"`);if($.fetchpriority)Z.push(`fetchpriority="${$.fetchpriority}"`);if($.crossorigin)Z.push(`crossorigin="${$.crossorigin}"`);if($.referrerpolicy)Z.push(`referrerpolicy="${$.referrerpolicy}"`);if($.className)Z.push(`class="${p0($.className)}"`);if($.style)Z.push(`style="${p0($.style)}"`);if($.id)Z.push(`id="${p0($.id)}"`);if($.data)for(let[J,X]of Object.entries($.data))Z.push(`data-${J}="${p0(X)}"`);if($.lazy)Z.push("data-stx-lazy");return Z.join(" ")}function n3($,Z){let J=[];if($)J.push($);if(Z)J.push("stx-img-blur");return J.join(" ")||""}function z5($,Z,J,X){let Y=[];if(Z)Y.push(`object-fit: ${Z}`);if(J)Y.push(`object-position: ${J}`);if(X)Y.push("opacity: 0; transition: opacity 300ms ease-out");if($)Y.push($);return Y.join("; ")}function p0($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#039;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function s3($){return`
1766
- (function() {
1767
- const container = document.getElementById('${$}');
1768
- if (!container) return;
1769
-
1770
- const img = container.querySelector('img[data-stx-lazy]') || container;
1771
- if (!img.dataset.src && !img.dataset.srcset) return;
1772
-
1773
- const observer = new IntersectionObserver((entries) => {
1774
- entries.forEach(entry => {
1775
- if (entry.isIntersecting) {
1776
- // Load image
1777
- if (img.dataset.src) img.src = img.dataset.src;
1778
- if (img.dataset.srcset) img.srcset = img.dataset.srcset;
1779
-
1780
- // Load sources
1781
- const sources = container.querySelectorAll('source[data-srcset]');
1782
- sources.forEach(source => {
1783
- if (source.dataset.srcset) source.srcset = source.dataset.srcset;
1784
- if (source.dataset.sizes) source.sizes = source.dataset.sizes;
1785
- });
1786
-
1787
- // Handle load completion
1788
- img.onload = () => {
1789
- img.style.opacity = '1';
1790
- if (container.classList.contains('stx-img-placeholder')) {
1791
- container.classList.add('stx-img-loaded');
1792
- }
1793
- };
1794
-
1795
- observer.disconnect();
1796
- }
1797
- });
1798
- }, { rootMargin: '50px' });
1799
-
1800
- observer.observe(container);
1801
- })();
1802
- `.trim()}function TJ($){let Z=$.match(/<Img\s+([^>]*?)\/?>/);if(!Z)return null;let J=Z[1],X={},Y=/(:?)(\w+)(?:=(?:"([^"]*)"|'([^']*)'|\{([^}]+)\}))?/g,Q;while((Q=Y.exec(J))!==null){let[,G,z,q,K,W]=Q,U=q??K??W??!0;if(G===":"&&typeof U==="string")try{X[z]=JSON.parse(U)}catch{X[z]=U}else switch(z){case"src":X.src=String(U);break;case"alt":X.alt=String(U);break;case"width":X.width=Number(U)||U;break;case"height":X.height=Number(U)||U;break;case"sizes":X.sizes=String(U);break;case"quality":X.quality=Number(U);break;case"placeholder":X.placeholder=U;break;case"lazy":X.lazy=U===!0||U==="true";break;case"priority":X.priority=U===!0||U==="true";break;case"class":X.class=String(U);break;case"style":X.style=String(U);break;case"id":X.id=String(U);break;case"loading":X.loading=U;break;case"decoding":X.decoding=U;break;case"fetchpriority":X.fetchpriority=U;break;case"objectFit":X.objectFit=U;break;case"objectPosition":X.objectPosition=String(U);break;case"crossorigin":X.crossorigin=U;break}}if(!X.src||!X.alt)return null;return X}async function LK($,Z={}){let J=/<Img\s+[^>]*?\/?>/g,X=[],Y=[],Q=[],G=$,z=[],q;while((q=J.exec($))!==null)z.push({match:q[0],index:q.index});for(let K=z.length-1;K>=0;K--){let{match:W}=z[K],U=TJ(W);if(U){let H=await W2(U,Z);if(G=G.replace(W,H.html),H.preloadLink)X.push(H.preloadLink);if(H.css)Y.push(H.css);if(H.script)Q.push(H.script)}}return{html:G,preloadLinks:X,styles:Y,scripts:Q}}async function kJ($,Z){let J=await DJ();if(!J)return W2({...$,process:!1},Z);let X=Z.tsImagesConfig;if($.responsiveWidths&&$.responsiveWidths.length>0||$.widths&&$.widths.length>0||!$.width&&!$.dpr){let Q=await J.generateResponsiveVariants($.src,$,X);if(Q)return o3($,Q,Z)}else{let Q=await J.processImage($.src,$,X);if(Q.processed)return q5($,Q,Z)}return W2({...$,process:!1},Z)}async function q5($,Z,J){let{alt:X,width:Y,height:Q,lazy:G=!0,priority:z=!1,objectFit:q,objectPosition:K,crossorigin:W,referrerpolicy:U}=$,H=$.class,j=$.style,B=$.id||`stx-img-${Math.random().toString(36).slice(2,8)}`,V=$.data||{},F=Z.variants||[],_=F.find((C)=>C.format==="jpeg")||F.find((C)=>C.format==="webp")||F[0],O=_?.url||$.src,L=F.filter((C)=>C.format===(_?.format||"jpeg")).map((C)=>`${C.url} ${C.width}w`).join(", "),w=new Map;for(let C of F){if(!w.has(C.format))w.set(C.format,[]);w.get(C.format).push(C)}let R=[],N=["avif","webp","jpeg","png"];for(let C of N){let f=w.get(C);if(f&&f.length>0){let u=f.map((h)=>`${h.url} ${h.width}w`).join(", "),P=J5(C);if(G&&!z)R.push(` <source type="${P}" data-srcset="${u}" />`);else R.push(` <source type="${P}" srcset="${u}" />`)}}let A=[];if(G&&!z){if(A.push(`data-src="${p0(O)}"`),A.push('src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"'),L)A.push(`data-srcset="${L}"`)}else if(A.push(`src="${p0(O)}"`),L)A.push(`srcset="${L}"`);A.push(`alt="${p0(X)}"`);let T=Y||Z.originalWidth,D=Q||Z.originalHeight;if(T)A.push(`width="${T}"`);if(D)A.push(`height="${D}"`);if(!z)A.push(`loading="${G?"lazy":"eager"}"`);if(A.push('decoding="async"'),z)A.push('fetchpriority="high"');if(W)A.push(`crossorigin="${W}"`);if(U)A.push(`referrerpolicy="${U}"`);let M=[];if(q)M.push(`object-fit: ${q}`);if(K)M.push(`object-position: ${K}`);if(Z.placeholder&&G)M.push("opacity: 0; transition: opacity 300ms ease-out");if(j)M.push(j);if(M.length>0)A.push(`style="${M.join("; ")}"`);let k=[];if(H)k.push(H);if(Z.placeholder)k.push("stx-img-blur");if(k.length>0)A.push(`class="${k.join(" ")}"`);if(G&&!z)A.push("data-stx-lazy");for(let[C,f]of Object.entries(V))A.push(`data-${C}="${p0(f)}"`);let I;if(Z.placeholder||Z.dominantColor&&$.useDominantColor){let C=Z.placeholder?`background-image: url('${Z.placeholder}'); background-size: cover; background-position: center;`:`background-color: ${Z.dominantColor};`;I=`<div id="${B}" class="stx-img-placeholder" style="${C}">
1803
- <picture>
1804
- ${R.join(`
1805
- `)}
1806
- <img ${A.join(" ")} />
1807
- </picture>
1808
- </div>`}else I=`<picture${B?` id="${B}"`:""}>
1809
- ${R.join(`
1810
- `)}
1811
- <img ${A.join(" ")} />
1812
- </picture>`;let y=[];if(Z.placeholder)y.push(X5);let E=G?s3(B):void 0,b;if(z&&L)b=`<link rel="preload" as="image" imagesrcset="${L}" />`;return{html:I,preloadLink:b,css:y.length>0?y.join(`
1813
- `):void 0,script:E}}async function o3($,Z,J){let X={src:Z.src,processed:!0,variants:[],placeholder:Z.placeholder?.dataURL,originalWidth:Z.placeholder?.width,originalHeight:Z.placeholder?.height};for(let[Y,Q]of Object.entries(Z.byFormat))if(Q)X.variants.push(...Q);return q5($,X,J)}function EJ(){return n2({name:"img",hasEndTag:!1,description:"Render an optimized responsive image with srcset and lazy loading",transform:async($,Z,J,X)=>{let{src:Y,alt:Q,options:G}=bJ($,Z,J);if(!Y)return console.warn("@img directive: missing src argument"),"<!-- @img: missing src -->";let z={src:Y,alt:Q||"",widths:G.widths||_1,formats:G.formats||C1,quality:G.quality,sizes:G.sizes,dpr:G.dpr,params:G.params,placeholder:G.placeholder,placeholderOptions:G.placeholderOptions,lazy:G.lazy!==!1,priority:G.priority||!1,loading:G.loading,decoding:G.decoding,fetchpriority:G.fetchpriority,objectFit:G.objectFit,objectPosition:G.objectPosition,class:G.class,style:G.style,id:G.id,width:G.width,height:G.height},q=J.__isDev||!1,K=await W2(z,{isDev:q}),W=K.html;if(K.preloadLink)W=K.preloadLink+`
1814
- `+W;if(K.css)W+=`
1815
- <style>${K.css}</style>`;if(K.script)W+=`
1816
- <script>${K.script}</script>`;return W},defaults:{src:"",alt:"",options:{lazy:!0,placeholder:"none"}}})}function bJ($,Z,J){if(Z.src)return{src:String(Z.src),alt:String(Z.alt||""),options:Z.options||{}};let X=$.trim();if(X.startsWith("@img(")||X.startsWith("("))X=X.replace(/^@img\(/,"").replace(/^\(/,"").replace(/\)$/,"");let Y=yJ(X),Q=K5(Y[0],J)||"",G=K5(Y[1],J)||"",z={};if(Y[2]){let q=K5(Y[2],J);if(typeof q==="object"&&q!==null)z=q;else if(typeof Y[2]==="string")try{z=JSON.parse(Y[2])}catch{}}return{src:Q,alt:G,options:z}}function yJ($){let Z=[],J="",X=!1,Y="",Q=0,G=0;for(let z=0;z<$.length;z++){let q=$[z],K=z>0?$[z-1]:"";if((q==='"'||q==="'"||q==="`")&&K!=="\\"){if(!X)X=!0,Y=q;else if(q===Y)X=!1,Y="";else J+=q;continue}if(!X){if(q==="{")Q++;if(q==="}")Q--;if(q==="[")G++;if(q==="]")G--;if(q===","&&Q===0&&G===0){Z.push(J.trim()),J="";continue}}J+=q}if(J.trim())Z.push(J.trim());return Z}function K5($,Z){if(typeof $!=="string")return $;let J=$.trim();if(J.startsWith('"')&&J.endsWith('"')||J.startsWith("'")&&J.endsWith("'"))return J.slice(1,-1);if(!J.startsWith("/")&&!J.startsWith(".")&&!J.startsWith("http")&&!J.startsWith("{")){let X=Z[J];if(X!==void 0)return X}if(J.startsWith("{")||J.startsWith("["))try{return JSON.parse(J)}catch{}return J}var r3=EJ();async function t3(){try{return await import("./chunk-85p4dmft.js")}catch($){if(!a3)console.warn("[stx-media] Video processor not available, some features disabled:",$),a3=!0;return null}}var a3=!1,e3=!0,$7="metadata",CJ="https://cdn.jsdelivr.net/npm/ts-video-player@latest/dist/index.min.js";async function s2($,Z={}){let J=Z,X=$;if(X.process&&!X.skipProcessing){if(J.tsVideosConfig?.enabled&&!J.isDev)return xJ(X,J)}if(J.processedResult?.processed)return J7($,J.processedResult,Z);let Y;if(X.generatePoster&&X.src&&!$.poster)Y=await gJ(X,J);let{src:Q,sources:G=[],poster:z,posterPlaceholder:q,controls:K=e3,autoplay:W=!1,muted:U=!1,loop:H=!1,preload:j=$7,playsinline:B=!0,lazy:V=!0,player:F="native",type:_,width:O,height:L,crossorigin:w,disablePictureInPicture:R=!1,disableRemotePlayback:N=!1}=$,A=Y||z,T=$.class,D=$.style,M=$.id||`stx-video-${Math.random().toString(36).slice(2,8)}`;if(F==="ts-video")return PJ($,Z);if(_&&_!=="video")return SJ(Q||"",_,$);let k=G.length>0?G:Q?[{src:Q,type:Z7(Q)}]:[],I=[`id="${M}"`];if(K)I.push("controls");if(W)I.push("autoplay");if(U)I.push("muted");if(H)I.push("loop");if(B)I.push("playsinline");if(R)I.push("disablepictureinpicture");if(N)I.push("disableremoteplayback");if(w)I.push(`crossorigin="${w}"`);if(V){if(I.push(`data-preload="${j}"`),I.push('preload="none"'),A)I.push(`data-poster="${A0(A)}"`);I.push("data-stx-lazy")}else if(I.push(`preload="${j}"`),A)I.push(`poster="${A0(A)}"`);if(O)I.push(`width="${O}"`);if(L)I.push(`height="${L}"`);if(T)I.push(`class="${A0(T)}"`);if(D)I.push(`style="${A0(D)}"`);let y=k.map((C)=>{return` <source ${V?`data-src="${A0(C.src)}"`:`src="${A0(C.src)}"`} type="${C.type}"${C.media?` media="${C.media}"`:""} />`}).join(`
1817
- `),E=`<video ${I.join(" ")}>
1818
- ${y}
1819
- Your browser does not support the video tag.
1820
- </video>`,b;if(V)b=`
1821
- (function() {
1822
- var video = document.getElementById('${M}');
1823
- if (!video) return;
1824
-
1825
- var observer = new IntersectionObserver(function(entries) {
1826
- entries.forEach(function(entry) {
1827
- if (entry.isIntersecting) {
1828
- // Load poster
1829
- if (video.dataset.poster) {
1830
- video.poster = video.dataset.poster;
1831
- delete video.dataset.poster;
1832
- }
1833
-
1834
- // Load sources
1835
- var sources = video.querySelectorAll('source[data-src]');
1836
- sources.forEach(function(source) {
1837
- source.src = source.dataset.src;
1838
- delete source.dataset.src;
1839
- });
1840
-
1841
- // Set preload
1842
- if (video.dataset.preload) {
1843
- video.preload = video.dataset.preload;
1844
- delete video.dataset.preload;
1845
- }
1846
-
1847
- video.load();
1848
- observer.disconnect();
1849
- }
1850
- });
1851
- }, { rootMargin: '50px' });
1852
-
1853
- observer.observe(video);
1854
- })();
1855
- `.trim();return{html:E,script:b}}function SJ($,Z,J){let{width:X=640,height:Y=360}=J,Q=J.class,G=J.style,z=J.id||`stx-embed-${Math.random().toString(36).slice(2,8)}`,q,K=null;switch(Z){case"youtube":K=vJ($),q=K?`https://www.youtube-nocookie.com/embed/${K}`:$;break;case"vimeo":K=fJ($),q=K?`https://player.vimeo.com/video/${K}`:$;break;case"dailymotion":K=$.split("/").pop()||"",q=`https://www.dailymotion.com/embed/video/${K}`;break;case"twitch":K=$.split("/").pop()||"",q=`https://player.twitch.tv/?video=${K}&parent=${typeof window<"u"?window.location.hostname:"localhost"}`;break;default:q=$}let W=[`id="${z}"`,`src="${A0(q)}"`,`width="${X}"`,`height="${Y}"`,'frameborder="0"',"allowfullscreen",'allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"'];if(Q)W.push(`class="${A0(Q)}"`);if(G)W.push(`style="${A0(G)}"`);if(J.lazy)W.push('loading="lazy"');return{html:`<div class="stx-video-embed" style="position:relative;padding-bottom:56.25%;height:0;overflow:hidden;">
1856
- <iframe ${W.join(" ")} style="position:absolute;top:0;left:0;width:100%;height:100%;"></iframe>
1857
- </div>`}}function PJ($,Z={}){let{src:J,sources:X=[],poster:Y,controls:Q=!0,autoplay:G=!1,muted:z=!1,loop:q=!1,preload:K="metadata",playsinline:W=!0,lazy:U=!0,width:H,height:j}=$,B=$.class,V=$.style,F=$.id||`ts-video-${Math.random().toString(36).slice(2,8)}`,_={src:X.length>0?X:J,autoplay:G,loop:q,muted:z,playsinline:W,preload:K,poster:Y,controls:Q,title:$.title},O=["position: relative",H?`width: ${typeof H==="number"?H+"px":H}`:"width: 100%",j?`height: ${typeof j==="number"?j+"px":j}`:"",V||""].filter(Boolean).join("; "),L=`
1858
- <div
1859
- id="${F}"
1860
- class="ts-video-player${B?" "+A0(B):""}"
1861
- style="${O}"
1862
- data-ts-video-player
1863
- data-config='${JSON.stringify(_)}'
1864
- ${U?"data-lazy":""}
1865
- >
1866
- <div class="ts-video-player__container">
1867
- ${Y?`
1868
- <div class="ts-video-player__placeholder" style="background-image: url('${A0(Y)}');">
1869
- <button class="ts-video-player__play-button" aria-label="Play video">
1870
- <svg viewBox="0 0 24 24" fill="currentColor" width="64" height="64">
1871
- <path d="M8 5v14l11-7z"/>
1872
- </svg>
1873
- </button>
1874
- </div>
1875
- `:""}
1876
- </div>
1877
- </div>
1878
- `.trim(),w=`
1879
- (function() {
1880
- var container = document.getElementById('${F}');
1881
- if (!container) return;
1882
-
1883
- var config = JSON.parse(container.dataset.config || '{}');
1884
- var isLazy = container.hasAttribute('data-lazy');
1885
-
1886
- function loadPlayer() {
1887
- if (typeof TSVideoPlayer !== 'undefined') {
1888
- initPlayer();
1889
- return;
1890
- }
1891
-
1892
- // Load ts-video-player from CDN
1893
- var script = document.createElement('script');
1894
- script.src = '${CJ}';
1895
- script.onload = initPlayer;
1896
- script.onerror = function() {
1897
- console.error('[stx] Failed to load ts-video-player');
1898
- fallbackToNative();
1899
- };
1900
- document.head.appendChild(script);
1901
- }
1902
-
1903
- function initPlayer() {
1904
- var player = TSVideoPlayer.createPlayer(container, config);
1905
- if (config.src) {
1906
- player.setSrc(config.src);
1907
- }
1908
- container.__tsVideoPlayer = player;
1909
-
1910
- // Remove placeholder
1911
- var placeholder = container.querySelector('.ts-video-player__placeholder');
1912
- if (placeholder) {
1913
- placeholder.style.display = 'none';
1914
- }
1915
- }
1916
-
1917
- function fallbackToNative() {
1918
- // Fallback to native video element
1919
- var video = document.createElement('video');
1920
- video.controls = config.controls !== false;
1921
- video.autoplay = config.autoplay;
1922
- video.muted = config.muted;
1923
- video.loop = config.loop;
1924
- video.playsInline = config.playsinline;
1925
- video.preload = config.preload || 'metadata';
1926
- if (config.poster) video.poster = config.poster;
1927
- if (config.src) video.src = typeof config.src === 'string' ? config.src : config.src[0]?.src || config.src[0];
1928
- video.style.width = '100%';
1929
- video.style.height = '100%';
1930
-
1931
- var containerEl = container.querySelector('.ts-video-player__container');
1932
- if (containerEl) {
1933
- containerEl.innerHTML = '';
1934
- containerEl.appendChild(video);
1935
- }
1936
- }
1937
-
1938
- if (isLazy) {
1939
- var observer = new IntersectionObserver(function(entries) {
1940
- entries.forEach(function(entry) {
1941
- if (entry.isIntersecting) {
1942
- loadPlayer();
1943
- observer.disconnect();
1944
- }
1945
- });
1946
- }, { rootMargin: '50px' });
1947
- observer.observe(container);
1948
- }
1949
- else {
1950
- if (document.readyState === 'loading') {
1951
- document.addEventListener('DOMContentLoaded', loadPlayer);
1952
- }
1953
- else {
1954
- loadPlayer();
1955
- }
1956
- }
1957
-
1958
- // Handle play button click
1959
- var playButton = container.querySelector('.ts-video-player__play-button');
1960
- if (playButton) {
1961
- playButton.addEventListener('click', function() {
1962
- loadPlayer();
1963
- var check = setInterval(function() {
1964
- if (container.__tsVideoPlayer && container.__tsVideoPlayer.ready) {
1965
- container.__tsVideoPlayer.play();
1966
- clearInterval(check);
1967
- }
1968
- }, 100);
1969
- });
1970
- }
1971
- })();
1972
- `.trim(),R=`
1973
- .ts-video-player {
1974
- position: relative;
1975
- background: #000;
1976
- }
1977
-
1978
- .ts-video-player__container {
1979
- position: relative;
1980
- width: 100%;
1981
- padding-bottom: 56.25%;
1982
- }
1983
-
1984
- .ts-video-player__container > * {
1985
- position: absolute;
1986
- top: 0;
1987
- left: 0;
1988
- width: 100%;
1989
- height: 100%;
1990
- }
1991
-
1992
- .ts-video-player__placeholder {
1993
- display: flex;
1994
- align-items: center;
1995
- justify-content: center;
1996
- background-color: #1a1a1a;
1997
- background-size: cover;
1998
- background-position: center;
1999
- cursor: pointer;
2000
- }
2001
-
2002
- .ts-video-player__play-button {
2003
- display: flex;
2004
- align-items: center;
2005
- justify-content: center;
2006
- width: 80px;
2007
- height: 80px;
2008
- background: rgba(0, 0, 0, 0.7);
2009
- border: none;
2010
- border-radius: 50%;
2011
- color: white;
2012
- cursor: pointer;
2013
- transition: transform 0.2s, background 0.2s;
2014
- }
2015
-
2016
- .ts-video-player__play-button:hover {
2017
- transform: scale(1.1);
2018
- background: rgba(0, 0, 0, 0.9);
2019
- }
2020
-
2021
- .ts-video-player__play-button svg {
2022
- margin-left: 4px;
2023
- }
2024
- `.trim();return{html:L,script:w,css:R}}function Z7($){switch($.split(".").pop()?.toLowerCase()){case"mp4":return"video/mp4";case"webm":return"video/webm";case"ogg":case"ogv":return"video/ogg";case"mov":return"video/quicktime";case"avi":return"video/x-msvideo";case"mkv":return"video/x-matroska";case"m3u8":return"application/x-mpegURL";default:return"video/mp4"}}function vJ($){let Z=[/youtube\.com\/watch\?v=([^&]+)/,/youtube\.com\/embed\/([^?]+)/,/youtu\.be\/([^?]+)/,/youtube\.com\/v\/([^?]+)/];for(let J of Z){let X=$.match(J);if(X)return X[1]}return null}function fJ($){let Z=$.match(/vimeo\.com\/(\d+)/);return Z?Z[1]:null}function A0($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}function DK($,Z,J){if(Z.src)return{src:String(Z.src),...Z};let X=$.trim();if(X.startsWith("@video(")||X.startsWith("("))X=X.replace(/^@video\(/,"").replace(/^\(/,"").replace(/\)$/,"");let Y=X.indexOf(",");if(Y===-1)return{src:X.replace(/^['"]|['"]$/g,"")};let Q=X.slice(0,Y).trim().replace(/^['"]|['"]$/g,""),G=X.slice(Y+1).trim();try{let z=JSON.parse(G);return{src:Q,...z}}catch{return{src:Q}}}async function xJ($,Z){let J=await t3();if(!J)return s2({...$,process:!1},Z);let X=Z.tsVideosConfig,Y=await J.processVideo($.src,$,X,$.onProcessProgress);if(Y.processed)return J7($,Y,Z);return s2({...$,process:!1},Z)}async function gJ($,Z){let J=await t3();if(!J||!$.src)return;let X=typeof $.generatePoster==="object"?$.generatePoster:{timestamp:0},Y=Z.tsVideosConfig||{enabled:!0,outputDir:"dist/videos",baseUrl:"/videos"};return(await J.generatePoster($.src,X,Y.outputDir,Y.baseUrl||"/videos"))?.url}function J7($,Z,J){let{controls:X=e3,autoplay:Y=!1,muted:Q=!1,loop:G=!1,preload:z=$7,playsinline:q=!0,lazy:K=!0,width:W,height:U,crossorigin:H,disablePictureInPicture:j=!1,disableRemotePlayback:B=!1}=$,V=$.class,F=$.style,_=$.id||`stx-video-${Math.random().toString(36).slice(2,8)}`,O=$.src,L=Z7(O);if(Z.transcoded)O=Z.transcoded.url,L="video/mp4";let w=Z.streaming?.hls||Z.streaming?.dash;if(w){if(Z.streaming?.hls)O=Z.streaming.hls.manifestUrl,L="application/x-mpegURL";else if(Z.streaming?.dash)O=Z.streaming.dash.manifestUrl,L="application/dash+xml"}let R=Z.poster?.url||$.poster,N=[`id="${_}"`];if(X)N.push("controls");if(Y)N.push("autoplay");if(Q)N.push("muted");if(G)N.push("loop");if(q)N.push("playsinline");if(j)N.push("disablepictureinpicture");if(B)N.push("disableremoteplayback");if(H)N.push(`crossorigin="${H}"`);if(K){if(N.push(`data-preload="${z}"`),N.push('preload="none"'),R)N.push(`data-poster="${A0(R)}"`);N.push("data-stx-lazy")}else if(N.push(`preload="${z}"`),R)N.push(`poster="${A0(R)}"`);let A=W||Z.metadata?.width,T=U||Z.metadata?.height;if(A)N.push(`width="${A}"`);if(T)N.push(`height="${T}"`);if(V)N.push(`class="${A0(V)}"`);if(F)N.push(`style="${A0(F)}"`);let M=` <source ${K?`data-src="${A0(O)}"`:`src="${A0(O)}"`} type="${L}" />`,k=`<video ${N.join(" ")}>
2025
- ${M}
2026
- Your browser does not support the video tag.
2027
- </video>`;if(Z.spriteSheet)k=`<div class="stx-video-wrapper" data-sprite-sheet="${A0(Z.spriteSheet.url)}" data-sprite-cols="${Z.spriteSheet.columns}" data-sprite-interval="${Z.spriteSheet.interval}">
2028
- ${k}
2029
- </div>`;let I;if(K)I=`
2030
- (function() {
2031
- var video = document.getElementById('${_}');
2032
- if (!video) return;
2033
-
2034
- var observer = new IntersectionObserver(function(entries) {
2035
- entries.forEach(function(entry) {
2036
- if (entry.isIntersecting) {
2037
- // Load poster
2038
- if (video.dataset.poster) {
2039
- video.poster = video.dataset.poster;
2040
- delete video.dataset.poster;
2041
- }
2042
-
2043
- // Load sources
2044
- var sources = video.querySelectorAll('source[data-src]');
2045
- sources.forEach(function(source) {
2046
- source.src = source.dataset.src;
2047
- delete source.dataset.src;
2048
- });
2049
-
2050
- // Set preload
2051
- if (video.dataset.preload) {
2052
- video.preload = video.dataset.preload;
2053
- delete video.dataset.preload;
2054
- }
2055
-
2056
- video.load();
2057
- observer.disconnect();
2058
- }
2059
- });
2060
- }, { rootMargin: '50px' });
2061
-
2062
- observer.observe(video);
2063
- })();
2064
- `.trim();let y;if(w)y=`
2065
- .stx-video-wrapper {
2066
- position: relative;
2067
- width: 100%;
2068
- }
2069
- .stx-video-wrapper video {
2070
- width: 100%;
2071
- height: auto;
2072
- }
2073
- `.trim();return{html:k,script:I,css:y}}function X7(){return n2({name:"video",hasEndTag:!1,description:"Render a video with optional ts-videos processing, streaming, and poster generation",transform:async($,Z,J,X)=>{let{src:Y,options:Q}=hJ($,Z,J);if(!Y)return console.warn("@video directive: missing src argument"),"<!-- @video: missing src -->";let G={src:Y,poster:Q.poster,controls:Q.controls!==!1,autoplay:Q.autoplay||!1,muted:Q.muted||!1,loop:Q.loop||!1,preload:Q.preload||"metadata",playsinline:Q.playsinline!==!1,lazy:Q.lazy!==!1,player:Q.player||"native",type:Q.type,width:Q.width,height:Q.height,class:Q.class,style:Q.style,id:Q.id,crossorigin:Q.crossorigin,disablePictureInPicture:Q.disablePictureInPicture,disableRemotePlayback:Q.disableRemotePlayback,title:Q.title,quality:Q.quality,platform:Q.platform,process:Q.process,generatePoster:Q.generatePoster,streaming:Q.streaming,transcode:Q.transcode,spriteSheet:Q.spriteSheet,waveform:Q.waveform},q={isDev:J.__isDev||!1,tsVideosConfig:J.__tsVideosConfig},K=await s2(G,q),W=K.html;if(K.css)W+=`
2074
- <style>${K.css}</style>`;if(K.script)W+=`
2075
- <script>${K.script}</script>`;return W},defaults:{src:"",options:{controls:!0,lazy:!0,preload:"metadata"}}})}function hJ($,Z,J){if(Z.src)return{src:String(Z.src),options:Z.options||{}};let X=$.trim();if(X.startsWith("@video(")||X.startsWith("("))X=X.replace(/^@video\(/,"").replace(/^\(/,"").replace(/\)$/,"");let Y=uJ(X),Q=Y7(Y[0],J)||"",G={};if(Y[1]){let z=Y7(Y[1],J);if(typeof z==="object"&&z!==null)G=z;else if(typeof Y[1]==="string")try{G=JSON.parse(Y[1])}catch{}}return{src:Q,options:G}}function uJ($){let Z=[],J="",X=!1,Y="",Q=0,G=0;for(let z=0;z<$.length;z++){let q=$[z],K=z>0?$[z-1]:"";if((q==='"'||q==="'"||q==="`")&&K!=="\\"){if(!X)X=!0,Y=q;else if(q===Y)X=!1,Y="";else J+=q;continue}if(!X){if(q==="{")Q++;if(q==="}")Q--;if(q==="[")G++;if(q==="]")G--;if(q===","&&Q===0&&G===0){Z.push(J.trim()),J="";continue}}J+=q}if(J.trim())Z.push(J.trim());return Z}function Y7($,Z){if(typeof $!=="string")return $;let J=$.trim();if(J.startsWith('"')&&J.endsWith('"')||J.startsWith("'")&&J.endsWith("'"))return J.slice(1,-1);if(!J.startsWith("/")&&!J.startsWith(".")&&!J.startsWith("http")&&!J.startsWith("{")){let X=Z[J];if(X!==void 0)return X}if(J.startsWith("{")||J.startsWith("["))try{return JSON.parse(J)}catch{}return J}var W5=X7();function G7($,Z,J,X){let Y=$;Y=Y.replace(/@meta\(\s*['"]([^'"]+)['"](?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(z,q,K)=>{if(!K&&q.includes(":")){let W=q.split(":"),U=q,H=W.length>1?W[1]:"";if(H&&Z[H])K=Z[H];else if(U.startsWith("og:")&&Z.openGraph&&Z.openGraph[W[1]])K=Z.openGraph[W[1]];else K="";return K?`<meta property="${c(U)}" content="${c(K)}">`:""}return K?`<meta name="${c(q)}" content="${c(K)}">`:""});let Q=/@metaTag\s*\(/g,G;while((G=Q.exec(Y))!==null){let z=G.index,q=z+G[0].length-1,K=1,W=q+1;while(W<Y.length&&K>0){if(Y[W]==="(")K++;else if(Y[W]===")"){if(K--,K===0)break}W++}if(K!==0)break;let U=Y.substring(q+1,W).trim(),H=W+1,j=(()=>{try{let B=E0(U,Z);if(!B)return"";let V="<meta";if(B.name)V+=` name="${c(String(B.name))}"`;if(B.property)V+=` property="${c(String(B.property))}"`;if(B.httpEquiv)V+=` http-equiv="${c(String(B.httpEquiv))}"`;if(B.content)V+=` content="${c(String(B.content))}"`;return V+=">",V}catch(B){let V=B instanceof Error?B.message:String(B);return X0("MetaTag",V,J0.EVALUATION_ERROR)}})();Y=Y.substring(0,z)+j+Y.substring(H),Q.lastIndex=0}return Y}function z7($,Z,J){let X=$,Y=/@structuredData\s*\(/g,Q;while((Q=Y.exec(X))!==null){let G=Q.index,z=G+Q[0].length-1,q=1,K=z+1;while(K<X.length&&q>0){if(X[K]==="(")q++;else if(X[K]===")"){if(q--,q===0)break}K++}if(q!==0)break;let W=X.substring(z+1,K).trim(),U=K+1,H=(()=>{try{let j=E0(W,Z);if(!j)return"";if(!j["@context"])j["@context"]="https://schema.org";return`<script type="application/ld+json">${JSON.stringify(j).replace(/<\//g,"<\\/")}</script>`}catch(j){let B=j instanceof Error?j.message:String(j);return X0("StructuredData",B,J0.EVALUATION_ERROR)}})();X=X.substring(0,G)+H+X.substring(U),Y.lastIndex=0}return X}function q7($,Z,J,X){let Y=$,Q=/@seo\s*\(\s*\{/g,G;while((G=Q.exec(Y))!==null){let z=Y.indexOf("{",G.index+4),q=1,K=z+1,W=null,U=!1;while(K<Y.length&&q>0){let _=Y[K];if(U){U=!1,K++;continue}if(_==="\\"&&W){U=!0,K++;continue}if(W){if(_===W)W=null;K++;continue}if(_==='"'||_==="'"||_==="`"){W=_,K++;continue}if(_==="{")q++;else if(_==="}")q--;K++}if(q!==0)break;let H=Y.substring(K).match(/^\s*\)/);if(!H)break;let j=K+H[0].length,B=Y.substring(z,K),V=Y.substring(G.index,j),F=((_)=>{try{let O=E0(_,Z);if(!O)return"";let L="";if(O.title)L+=`<title>${c(O.title)}</title>
2076
- `,L+=`<meta name="title" content="${c(O.title)}">
2077
- `;if(O.description)L+=`<meta name="description" content="${c(O.description)}">
2078
- `;if(O.keywords){let w=Array.isArray(O.keywords)?O.keywords.join(", "):O.keywords;L+=`<meta name="keywords" content="${c(w)}">
2079
- `}if(O.robots)L+=`<meta name="robots" content="${c(O.robots)}">
2080
- `;if(O.canonical)L+=`<link rel="canonical" href="${c(O.canonical)}">
2081
- `;if(O.openGraph){let w=O.openGraph;if(L+=`<meta property="og:type" content="${c(w.type||"website")}">
2082
- `,w.title||O.title){let R=w.title||O.title||"";L+=`<meta property="og:title" content="${c(R)}">
2083
- `}if(w.description||O.description){let R=w.description||O.description||"";L+=`<meta property="og:description" content="${c(R)}">
2084
- `}if(w.url||O.canonical){let R=w.url||O.canonical||"";L+=`<meta property="og:url" content="${c(R)}">
2085
- `}if(w.image){if(L+=`<meta property="og:image" content="${c(w.image)}">
2086
- `,w.imageAlt)L+=`<meta property="og:image:alt" content="${c(w.imageAlt)}">
2087
- `;if(w.imageWidth)L+=`<meta property="og:image:width" content="${c(String(w.imageWidth))}">
2088
- `;if(w.imageHeight)L+=`<meta property="og:image:height" content="${c(String(w.imageHeight))}">
2089
- `;if(w.imageType)L+=`<meta property="og:image:type" content="${c(w.imageType)}">
2090
- `}if(w.siteName)L+=`<meta property="og:site_name" content="${c(w.siteName)}">
2091
- `;if(w.locale)L+=`<meta property="og:locale" content="${c(w.locale)}">
2092
- `;if(w.profile){let R=[["first_name",w.profile.firstName],["last_name",w.profile.lastName],["username",w.profile.username],["gender",w.profile.gender]];for(let[N,A]of R)if(A)L+=`<meta property="profile:${N}" content="${c(A)}">
2093
- `}}if(O.twitter){let w=O.twitter;if(L+=`<meta name="twitter:card" content="${c(w.card||"summary_large_image")}">
2094
- `,w.title||O.title){let R=w.title||O.title||"";L+=`<meta name="twitter:title" content="${c(R)}">
2095
- `}if(w.description||O.description){let R=w.description||O.description||"";L+=`<meta name="twitter:description" content="${c(R)}">
2096
- `}if(w.image||O.openGraph&&O.openGraph.image){let R=w.image||(O.openGraph?O.openGraph.image:"")||"";L+=`<meta name="twitter:image" content="${c(R)}">
2097
- `;let N=w.imageAlt||(!w.image&&O.openGraph?O.openGraph.imageAlt:void 0);if(N)L+=`<meta name="twitter:image:alt" content="${c(N)}">
2098
- `}if(w.site)L+=`<meta name="twitter:site" content="${c(w.site)}">
2099
- `;if(w.creator)L+=`<meta name="twitter:creator" content="${c(w.creator)}">
2100
- `}if(O.structuredData){let w=JSON.stringify(O.structuredData).replace(/<\//g,"<\\/");L+=`<script type="application/ld+json">${w}</script>
2101
- `}return L.trim()}catch(O){let L=O instanceof Error?O.message:String(O);return X0("SEO",`Error processing @seo directive: ${L}`,J0.EVALUATION_ERROR)}})(B);Y=Y.substring(0,G.index)+F+Y.substring(j),Q.lastIndex=G.index+F.length}return Y}function K7($,Z,J){if(J.seo?.enabled===!1)return $;if($.includes("<!-- stx SEO Tags -->")||Z.__stx_seo_staged===!0||J.skipDefaultSeoTags===!0)return $;let X=Z.__stx_runtime_head;if(!!(X?.title||X?.meta?.some((_)=>_.property==="og:title"||_.name==="og:title"||_.name==="twitter:title"||_.name==="description")))return $;if(/<meta\s+(?:[^>]*\s)?property=["']og:title["']/i.test($)||/<meta\s+(?:[^>]*\s)?name=["']og:title["']/i.test($)||/<meta\s+(?:[^>]*\s)?name=["']twitter:title["']/i.test($))return $;if(!$.includes("<head>")&&!$.includes("<head "))return $;let Q=$.includes("<title>")||$.includes("</title>"),G=dJ($),z=mJ(G),q=cJ(G),K="";if(Z.title)K=Z.title;else if(Z.meta&&Z.meta.title)K=Z.meta.title;else if(z)K=z;else if(J.seo?.defaultConfig?.title)K=J.seo.defaultConfig.title;else K=J.defaultTitle||"stx Project";let W="";if(Z.description)W=Z.description;else if(Z.meta&&Z.meta.description)W=Z.meta.description;else if(q)W=q;else if(J.seo?.defaultConfig?.description)W=J.seo.defaultConfig.description;else W=J.defaultDescription||"A website built with stx templating engine";let U="";if(Z.image)U=Z.image;else if(Z.meta&&Z.meta.image)U=Z.meta.image;else if(Z.openGraph&&Z.openGraph.image)U=Z.openGraph.image;else if(J.seo?.defaultImage)U=J.seo.defaultImage;else if(J.defaultImage)U=J.defaultImage;let H=Q?"":`
2102
- <meta name="title" content="${c(K)}">`,j=lJ(G)?"":`
2103
- <meta name="description" content="${c(W)}">`,B=`
2104
- <!-- stx SEO Tags -->${H}${j}
2105
- <meta property="og:title" content="${c(K)}">
2106
- <meta property="og:description" content="${c(W)}">
2107
- <meta property="og:type" content="website">
2108
- <meta name="twitter:card" content="summary_large_image">
2109
- <meta name="twitter:title" content="${c(K)}">
2110
- <meta name="twitter:description" content="${c(W)}">
2111
- `;if(U)B+=`
2112
- <meta property="og:image" content="${c(U)}">
2113
- <meta name="twitter:image" content="${c(U)}">
2114
- `;let V=$;if(!Q)V=V.replace(/<head[^>]*>/,`$&
2115
- <title>${c(K)}</title>`);let F=Z.__stx_head_injections;if(F)return Z.__stx_seo_staged=!0,F.afterOpen.push(`
2116
- ${B}
2117
- `),V;return V.replace(/<head[^>]*>/,`$&
2118
- ${B}
2119
- `)}function dJ($){let Z=$.search(/<\/head\s*>/i);return Z===-1?$:$.slice(0,Z)}function W7($){return $.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#0*39;|&apos;/g,"'").replace(/&amp;/g,"&")}function mJ($){let Z=$.match(/<title(?:\s[^>]*)?>([\s\S]*?)<\/title\s*>/i);return Z?W7(Z[1].trim()):""}function U7($){return($.match(/<meta\s[^>]*>/gi)||[]).filter((Z)=>/\sname\s*=\s*["']description["']/i.test(Z))}function lJ($){return U7($).length>0}function cJ($){for(let Z of U7($)){let J=Z.match(/\scontent\s*=\s*(?:"([^"]*)"|'([^']*)')/i),X=(J?.[1]??J?.[2]??"").trim();if(X)return W7(X)}return""}function c($){return $.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}var pJ=["og:","article:","book:","profile:","fb:","music:","video:"];function Q7($){let Z=$.trim(),J=Z[0];if((J==="'"||J==='"'||J==="`")&&Z.length>1&&Z.at(-1)===J)return{value:Z.slice(1,-1),quoted:!0};return{value:Z,quoted:!1}}var U5={name:"meta",handler:($,Z,J,X)=>{if(Z.length<1)return X0("Meta","meta directive requires at least the meta name",J0.INVALID_DIRECTIVE_SYNTAX);let Y=Q7(Z[0]).value,Q;if(Z.length>1){let q=Q7(Z[1]);Q=q.quoted?q.value:String(J?.[q.value]??q.value)}else{let q=Y.includes(":")?Y.slice(Y.indexOf(":")+1):Y,K=J?.openGraph;Q=String(J?.[q]??K?.[q]??"")}if(!Q)return"";let z=pJ.some((q)=>Y.startsWith(q))?{property:Y,content:Q}:{name:Y,content:Q};if(J)J.__stx_runtime_head=o2(J.__stx_runtime_head??{},{meta:[z]});return""},hasEndTag:!1},H5={name:"structuredData",handler:($,Z,J,X)=>{if($.trim()==="")return X0("StructuredData","structuredData directive requires JSON-LD content",J0.INVALID_DIRECTIVE_SYNTAX);try{let Y=JSON.parse($);if(!Y["@context"])Y["@context"]="https://schema.org";if(!Y["@type"])return X0("StructuredData","structuredData requires @type property",J0.INVALID_DIRECTIVE_SYNTAX);return`<script type="application/ld+json">${JSON.stringify(Y)}</script>`}catch(Y){let Q=Y instanceof Error?Y.message:String(Y);return X0("StructuredData",Q,J0.EVALUATION_ERROR)}},hasEndTag:!0};function CK(){return[U5,H5]}function SK($,Z){let J=Z.replace(/\/$/,""),X=new Date().toISOString().split("T")[0];return`<?xml version="1.0" encoding="UTF-8"?>
2120
- <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
2121
- ${$.map((Q)=>{let G=Q.startsWith("http")?Q:`${J}${Q.startsWith("/")?"":"/"}${Q}`;return` <sitemap>
2122
- <loc>${nJ(G)}</loc>
2123
- <lastmod>${X}</lastmod>
2124
- </sitemap>`}).join(`
2125
- `)}
2126
- </sitemapindex>`}async function PK($,Z){let{extensions:J=[".stx",".html",".htm"],ignore:X=["_*",".*","node_modules","components","partials","layouts"]}=Z,Y=[],Q=J.length===1?`*${J[0]}`:`*{${J.join(",")}}`,G=new Bun.Glob(`**/${Q}`);for await(let z of G.scan($)){if(X.some((H)=>{if(H.startsWith("*"))return z.includes(H.slice(1));return z.startsWith(H)||z.includes(`/${H}`)}))continue;let K=z.replace(/\\/g,"/").replace(/index\.(stx|html|htm)$/,"").replace(/\.(stx|html|htm)$/,"");if(!K.startsWith("/"))K=`/${K}`;if(K!=="/"&&K.endsWith("/"))K=K.slice(0,-1);let W=`${$}/${z}`,U;try{let H=await Bun.file(W).stat();if(H)U=new Date(H.mtime).toISOString().split("T")[0]}catch{}Y.push({loc:K||"/",lastmod:U,priority:K==="/"?1:0.5})}return Y.sort((z,q)=>z.loc.localeCompare(q.loc)),Y}function iJ($){let Z=[];for(let J of $.rules){if(Z.push(`User-agent: ${J.userAgent}`),J.allow)for(let X of J.allow)Z.push(`Allow: ${X}`);if(J.disallow)for(let X of J.disallow)Z.push(`Disallow: ${X}`);if(J.crawlDelay!==void 0)Z.push(`Crawl-delay: ${J.crawlDelay}`);Z.push("")}if($.sitemap){let J=Array.isArray($.sitemap)?$.sitemap:[$.sitemap];for(let X of J)Z.push(`Sitemap: ${X}`)}if($.host)Z.push(`Host: ${$.host}`);return Z.join(`
2127
- `).trim()}function vK($){return iJ({rules:[{userAgent:"*",allow:["/"]}],sitemap:$})}function nJ($){return $.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}import sJ from"fs";import d0 from"path";async function dK($,Z){if(!$.webComponents?.enabled)return[];let J=$.webComponents.components||[],X=[];if(J.length>0){if($.debug)console.log(`Building ${J.length} web components...`);for(let Y of J)try{let Q=await oJ(Y,$,Z);if(Q)X.push(Q)}catch(Q){if(console.error(`Error building web component ${Y.name}:`,Q),$.debug)throw Q}}return X}async function oJ($,Z,J){let{name:X,file:Y,tag:Q,extends:G}=$;if(!X||!Y||!Q)return console.error("Invalid web component configuration, missing required fields:",$),null;let z=null;if(d0.isAbsolute(Y)&&await a(Y))z=Y;else if(Z.componentsDir){let V=d0.join(Z.componentsDir,Y);if(await a(V))z=V}if(!z)z=await r2(Y,process.cwd(),Z,J);if(!z)return console.error(`Web component source file not found: ${Y}`),null;let q=await Bun.file(z).text();J.add(z);let W=($.outputFormat||"js")==="ts",U=W?aJ({name:X,tag:Q,baseElement:G,source:q,shadowDOM:$.shadowDOM??!0,template:$.template??!0,styleSource:$.styleSource,attributes:$.attributes||[],attributeTypes:$.attributeTypes||{}}):rJ({name:X,tag:Q,baseElement:G,source:q,shadowDOM:$.shadowDOM??!0,template:$.template??!0,styleSource:$.styleSource,attributes:$.attributes||[]}),H=Z.webComponents?.outputDir||"dist/web-components";await sJ.promises.mkdir(H,{recursive:!0});let j=W?"ts":"js",B=d0.join(H,`${Q}.${j}`);if(await Bun.write(B,U),Z.debug)console.log(`Built web component ${X} -> ${B}`);return B}function rJ($){let{name:Z,tag:J,baseElement:X="HTMLElement",source:Y,shadowDOM:Q,template:G,styleSource:z,attributes:q=[]}=$,K=Y.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"").trim();if(!Q)K=K.replace(/<slot\s+name=["']([^"']+)["']\s*>([\s\S]*?)<\/slot>/gi,'<div data-slot="$1">$2</div>'),K=K.replace(/<slot\s+name=["']([^"']+)["']\s*\/>/gi,'<div data-slot="$1"></div>'),K=K.replace(/<slot\s*>([\s\S]*?)<\/slot>/gi,"<div data-default-slot>$1</div>"),K=K.replace(/<slot\s*\/>/gi,"<div data-default-slot></div>");let W="";if(z)W=`<link rel="stylesheet" href="${z}">`;return`/**
2128
- * ${Z} Web Component
2129
- * Auto-generated from stx component
2130
- */
2131
- class ${Z.replace(/\W/g,"")} extends ${X} {
2132
- constructor() {
2133
- super()
2134
- this._initialized = false
2135
- ${Q?"":"this._slotContent = []"}
2136
- ${Q?'this.attachShadow({ mode: "open" })':""}
2137
- }
2138
-
2139
- ${G?`
2140
- _createTemplate() {
2141
- const template = document.createElement('template')
2142
- template.innerHTML = \`${W}${K}\`
2143
- ${Q?"this.shadowRoot.appendChild(template.content.cloneNode(true))":"this.appendChild(template.content.cloneNode(true))"}
2144
- this._processSlots()
2145
- }
2146
- `:`
2147
- _render() {
2148
- ${Q?"this.shadowRoot.innerHTML":"this.innerHTML"} = \`${W}${K}\`
2149
- this._processSlots()
2150
- }
2151
- `}
2152
-
2153
- _processSlots() {
2154
- ${Q?`// Shadow DOM handles slot assignment automatically
2155
- // Listen for slot changes if needed
2156
- const slots = this.shadowRoot.querySelectorAll('slot')
2157
- slots.forEach(slot => {
2158
- slot.addEventListener('slotchange', (e) => {
2159
- const assignedNodes = slot.assignedNodes()
2160
- this.dispatchEvent(new CustomEvent('slot-changed', {
2161
- detail: { slotName: slot.name || 'default', assignedNodes }
2162
- }))
2163
- })
2164
- })`:`// Manual slot processing for non-shadow DOM mode
2165
- const slots = this.querySelectorAll('[data-slot]')
2166
-
2167
- // Process named slots
2168
- slots.forEach(slotEl => {
2169
- const slotName = slotEl.getAttribute('data-slot')
2170
- const slottedContent = this._slotContent.filter(
2171
- node => node.nodeType === Node.ELEMENT_NODE && node.getAttribute('slot') === slotName
2172
- )
2173
- if (slottedContent.length > 0) {
2174
- slotEl.innerHTML = ''
2175
- slottedContent.forEach(content => slotEl.appendChild(content))
2176
- }
2177
- })
2178
-
2179
- // Process default slot
2180
- const defaultSlot = this.querySelector('[data-slot=""]') || this.querySelector('[data-default-slot]')
2181
- if (defaultSlot) {
2182
- const unslottedContent = this._slotContent.filter(
2183
- node => node.nodeType !== Node.ELEMENT_NODE || !node.hasAttribute('slot')
2184
- )
2185
- if (unslottedContent.length > 0) {
2186
- defaultSlot.innerHTML = ''
2187
- unslottedContent.forEach(content => defaultSlot.appendChild(content))
2188
- }
2189
- }`}
2190
- }
2191
-
2192
- ${q.length>0?`
2193
- static get observedAttributes() {
2194
- return [${q.map((U)=>`'${U}'`).join(", ")}]
2195
- }
2196
-
2197
- attributeChangedCallback(name, oldValue, newValue) {
2198
- if (oldValue !== newValue) {
2199
- this[name] = newValue
2200
- ${G?"":"if (this._initialized) this._render()"}
2201
- }
2202
- }
2203
- `:""}
2204
-
2205
- connectedCallback() {
2206
- if (this._initialized) return
2207
- ${Q?"":"this._slotContent = Array.from(this.childNodes)"}
2208
- this._initialized = true
2209
- ${G?"this._createTemplate()":"this._render()"}
2210
- }
2211
-
2212
- disconnectedCallback() {
2213
- // Component removed from the DOM
2214
- }
2215
- }
2216
-
2217
- // Register the web component
2218
- customElements.define('${J}', ${Z.replace(/\W/g,"")})
2219
- `}function aJ($){let{name:Z,tag:J,baseElement:X="HTMLElement",source:Y,shadowDOM:Q,template:G,styleSource:z,attributes:q=[],attributeTypes:K={}}=$,W=Z.replace(/\W/g,""),U=Y.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"").trim();if(!Q)U=U.replace(/<slot\s+name=["']([^"']+)["']\s*>([\s\S]*?)<\/slot>/gi,'<div data-slot="$1">$2</div>'),U=U.replace(/<slot\s+name=["']([^"']+)["']\s*\/>/gi,'<div data-slot="$1"></div>'),U=U.replace(/<slot\s*>([\s\S]*?)<\/slot>/gi,"<div data-default-slot>$1</div>"),U=U.replace(/<slot\s*\/>/gi,"<div data-default-slot></div>");U=U.replace(/`/g,"\\`").replace(/\$\{/g,"\\${");let H=z?`<link rel="stylesheet" href="${z}">`:"",j=(R)=>{switch(K[R]){case"number":return"number";case"boolean":return"boolean";case"object":return"Record<string, unknown>";default:return"string"}},B=(R)=>R.replace(/-([a-z])/g,(N,A)=>A.toUpperCase()),V=q.map((R)=>` private _${B(R)}: ${j(R)} | null = null;`).join(`
2220
- `),F=q.map((R)=>{let N=j(R),A=B(R);return`
2221
- get ${A}(): ${N} | null {
2222
- return this._${A};
2223
- }
2224
-
2225
- set ${A}(value: ${N} | null) {
2226
- this._${A} = value;
2227
- if (value !== null) {
2228
- this.setAttribute('${R}', String(value));
2229
- }
2230
- else {
2231
- this.removeAttribute('${R}');
2232
- }
2233
- }`}).join(`
2234
- `),_=q.length>0?`/**
2235
- * Props interface for ${Z}
2236
- */
2237
- export interface ${W}Props {
2238
- ${q.map((R)=>{let N=j(R);return` ${B(R)}?: ${N};`}).join(`
2239
- `)}
2240
- }
2241
- `:"",O=q.length>0?`
2242
- static get observedAttributes(): string[] {
2243
- return [${q.map((R)=>`'${R}'`).join(", ")}];
2244
- }
2245
-
2246
- attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void {
2247
- if (oldValue !== newValue) {
2248
- const camelCase = name.replace(/-([a-z])/g, (_: string, letter: string) => letter.toUpperCase());
2249
- (this as unknown as Record<string, unknown>)[\`_\${camelCase}\`] = this._parseAttributeValue(name, newValue);
2250
- ${G?"":"if (this._initialized) this._render();"}
2251
- }
2252
- }
2253
-
2254
- private _parseAttributeValue(name: string, value: string | null): unknown {
2255
- if (value === null) return null;
2256
- const typeMap: Record<string, string> = ${JSON.stringify(K)};
2257
- const type = typeMap[name] || 'string';
2258
- switch (type) {
2259
- case 'number': return Number(value);
2260
- case 'boolean': return value !== 'false' && value !== '0';
2261
- case 'object': try { return JSON.parse(value); }
2262
- catch { return value; }
2263
- default: return value;
2264
- }
2265
- }
2266
- `:"",L=G?`
2267
- private _createTemplate(): void {
2268
- const template = document.createElement('template');
2269
- template.innerHTML = \`${H}${U}\`;
2270
- ${Q?"this.shadowRoot!.appendChild(template.content.cloneNode(true));":"this.appendChild(template.content.cloneNode(true));"}
2271
- this._processSlots();
2272
- }`:`
2273
- private _render(): void {
2274
- ${Q?"this.shadowRoot!.innerHTML":"this.innerHTML"} = \`${H}${U}\`;
2275
- this._processSlots();
2276
- }`;return`/**
2277
- * ${Z} Web Component
2278
- * Auto-generated from stx component (TypeScript)
2279
- *
2280
- * @example
2281
- * \`\`\`html
2282
- * <${J}></${J}>
2283
- * \`\`\`
2284
- */
2285
-
2286
- /**
2287
- * Detail type for slot-changed event
2288
- */
2289
- interface SlotChangeDetail {
2290
- slotName: string;
2291
- assignedNodes: Node[];
2292
- }
2293
-
2294
- ${_}
2295
- /**
2296
- * ${Z} custom element class
2297
- * @customElement ${J}
2298
- */
2299
- export class ${W} extends ${X} {
2300
- ${V}
2301
- private _initialized = false;
2302
- ${Q?"":"private _slotContent: Node[] = [];"}
2303
-
2304
- constructor() {
2305
- super();
2306
- ${Q?'this.attachShadow({ mode: "open" });':""}
2307
- }
2308
- ${L}
2309
- ${Q?`
2310
- private _processSlots(): void {
2311
- const slots = this.shadowRoot!.querySelectorAll('slot');
2312
- slots.forEach((slot) => {
2313
- slot.addEventListener('slotchange', () => {
2314
- const assignedNodes = (slot as HTMLSlotElement).assignedNodes();
2315
- this.dispatchEvent(new CustomEvent<SlotChangeDetail>('slot-changed', {
2316
- detail: { slotName: slot.getAttribute('name') || 'default', assignedNodes }
2317
- }));
2318
- });
2319
- });
2320
- }`:`
2321
- private _processSlots(): void {
2322
- const slots = this.querySelectorAll('[data-slot]');
2323
- slots.forEach((slotEl) => {
2324
- const slotName = slotEl.getAttribute('data-slot');
2325
- if (slotName) {
2326
- const slottedContent = this._slotContent.filter(
2327
- node => node.nodeType === Node.ELEMENT_NODE && (node as Element).getAttribute('slot') === slotName
2328
- );
2329
- if (slottedContent.length > 0) {
2330
- slotEl.innerHTML = '';
2331
- slottedContent.forEach(content => slotEl.appendChild(content));
2332
- }
2333
- }
2334
- });
2335
- const defaultSlot = this.querySelector('[data-slot=""]') || this.querySelector('[data-default-slot]');
2336
- if (defaultSlot) {
2337
- const unslottedContent = this._slotContent.filter(
2338
- node => node.nodeType !== Node.ELEMENT_NODE || !(node as Element).hasAttribute('slot')
2339
- );
2340
- if (unslottedContent.length > 0) {
2341
- defaultSlot.innerHTML = '';
2342
- unslottedContent.forEach(content => defaultSlot.appendChild(content));
2343
- }
2344
- }
2345
- }`}
2346
- ${O}
2347
- ${F}
2348
-
2349
- connectedCallback(): void {
2350
- if (this._initialized) return;
2351
- ${Q?"":"this._slotContent = Array.from(this.childNodes);"}
2352
- this._initialized = true;
2353
- ${G?"this._createTemplate();":"this._render();"}
2354
- }
2355
-
2356
- disconnectedCallback(): void {
2357
- // Component removed from the DOM
2358
- }
2359
-
2360
- adoptedCallback(): void {
2361
- // Component moved to a new document
2362
- }
2363
- }
2364
-
2365
- // Type augmentation for HTMLElementTagNameMap
2366
- declare global {
2367
- interface HTMLElementTagNameMap {
2368
- '${J}': ${W};
2369
- }
2370
- }
2371
-
2372
- // Register the web component
2373
- customElements.define('${J}', ${W});
2374
- `}var j5={strategy:"attribute",attributeName:"data-v",preserveOriginal:!0};function B5($){let Z=$.split("").reduce((J,X)=>(J<<5)-J+X.charCodeAt(0)|0,0);return Math.abs(Z).toString(36).slice(0,8)}function tJ($,Z,J={}){let X={...j5,...J},Y=B5(Z);switch(X.strategy){case"shadow":return $;case"prefix":return $X($,X.prefix||Z,X.preserveOriginal);case"attribute":return eJ($,Y,X.attributeName||"data-v",X.preserveOriginal);case"bem":return ZX($,Z,X.preserveOriginal);default:return $}}function eJ($,Z,J,X){let Y=`[${J}-${Z}]`;return $.replace(/([.#]?[\w-]+|\*)\s*(\{|,)/g,(Q,G,z)=>{if(G.startsWith("@"))return Q;if(/^(?::root|:host|html|body)$/i.test(G))return Q;return`${X?`${G}${Y}`:`${G}${Y}`}${z}`})}function $X($,Z,J){return $.replace(/\.([a-z_][\w-]*)/gi,(X,Y)=>{if(Y.startsWith(Z))return X;let Q=`${Z}__${Y}`;return J?`.${Q}`:`.${Q}`})}function ZX($,Z,J){let X=Z.replace(/[^a-z0-9]/gi,"-");return $.replace(/\.([a-z_][\w-]*)/gi,(Y,Q)=>{if(Q.includes("__")||Q.includes("--")){if(!Q.startsWith(X))return`.${X}__${Q}`;return Y}let G=`${X}__${Q}`;return J?`.${G}`:`.${G}`})}function JX($,Z,J={}){let X={...j5,...J};if(X.strategy==="shadow")return $;if(X.strategy==="attribute"){let Y=B5(Z),G=`${X.attributeName||"data-v"}-${Y}`;return $.replace(/<([a-z][a-z0-9-]*)([^>]*)>/gi,(z,q,K)=>{if(/^(?:script|style|!--)$/i.test(q))return z;let W=K.trimEnd().endsWith("/"),U=W?K.slice(0,-1):K;return`<${q}${U} ${G}${W?"/":""}>`})}if(X.strategy==="prefix"||X.strategy==="bem"){let Y=X.strategy==="bem"?Z.replace(/[^a-z0-9]/gi,"-"):X.prefix||Z;return $.replace(/\bclass\s*=\s*["']([^"']+)["']/gi,(Q,G)=>{return`class="${G.split(/\s+/).map((q)=>{if(!q)return q;if(q.startsWith(Y))return q;return`${Y}__${q}`}).join(" ")}"`})}return $}function mK($,Z={}){let J={...j5,...Z},X=B5($);return`${J.attributeName||"data-v"}-${X}`}function lK($,Z,J={}){let X="",Y=$.replace(/<style([^>]*)>([\s\S]*?)<\/style>/gi,(G,z,q)=>{if(/\bscoped\b/i.test(z)||J.strategy!=="shadow")X+=`${tJ(q,Z,J)}
2375
- `;else X+=`${q}
2376
- `;return""});return{html:JX(Y,Z,J),css:X.trim()}}function P1($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}function cK($){let{name:Z,tag:J,baseElement:X="HTMLElement",template:Y,styles:Q="",shadowDOM:G=!0,properties:z={},lifecycle:q={},events:K={},methods:W={},state:U={}}=$,H=Z.replace(/\W/g,""),j=Object.keys(z),B=j.filter((T)=>z[T].attribute!==!1).map((T)=>z[T].attribute||P1(T)),V=j.map((T)=>{let D=z[T],M=D.default!==void 0?JSON.stringify(D.default):D.type==="string"?'""':D.type==="number"?"0":D.type==="boolean"?"false":D.type==="array"?"[]":"{}";return` this._${T} = ${M};`}).join(`
2377
- `),F=j.map((T)=>{let D=z[T],M=D.attribute!==!1?D.attribute||P1(T):null,k=D.reflect&&M?`
2378
- if (value !== null && value !== undefined) {
2379
- ${D.type==="boolean"?`if (value) { this.setAttribute('${M}', ''); }
2380
- else { this.removeAttribute('${M}'); }`:`this.setAttribute('${M}', ${D.type==="object"||D.type==="array"?"JSON.stringify(value)":"String(value)"});`}
2381
- }
2382
- else {
2383
- this.removeAttribute('${M}');
2384
- }`:"",I=D.observer?`this.${D.observer}(value, oldValue);`:"",y=D.render!==!1?"this._scheduleRender();":"";return`
2385
- get ${T}() {
2386
- return this._${T};
2387
- }
2388
-
2389
- set ${T}(value) {
2390
- const oldValue = this._${T};
2391
- if (oldValue === value) return;
2392
- this._${T} = value;${k}
2393
- ${I}
2394
- ${y}
2395
- this.dispatchEvent(new CustomEvent('${T}-changed', {
2396
- detail: { value, oldValue },
2397
- bubbles: true
2398
- }));
2399
- }`}).join(`
2400
- `),_=B.length>0?`
2401
- static get observedAttributes() {
2402
- return [${B.map((T)=>`'${T}'`).join(", ")}];
2403
- }
2404
-
2405
- attributeChangedCallback(name, oldValue, newValue) {
2406
- if (oldValue === newValue) return;
2407
- const propName = this._attrToProp[name];
2408
- if (propName) {
2409
- const propDef = this._propertyDefs[propName];
2410
- this[propName] = this._deserializeAttribute(newValue, propDef.type);
2411
- }
2412
- ${q.attributeChanged||""}
2413
- }`:"",O=Object.entries(K).map(([T,D])=>{return`this._root.addEventListener('${T}', (e) => { ${D} });`}).join(`
2414
- `),L=Object.entries(W).map(([T,D])=>{return`
2415
- ${T}() {
2416
- ${D}
2417
- }`}).join(`
2418
- `),w=JSON.stringify(Object.fromEntries(j.map((T)=>[T,z[T]]))),R=JSON.stringify(Object.fromEntries(j.filter((T)=>z[T].attribute!==!1).map((T)=>[z[T].attribute||P1(T),T]))),N=Y.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/g,"\\${"),A=Q.replace(/\\/g,"\\\\").replace(/`/g,"\\`");return`/**
2419
- * ${Z} - Reactive Web Component
2420
- * Auto-generated with reactive properties and lifecycle management
2421
- *
2422
- * @customElement ${J}
2423
- */
2424
- class ${H} extends ${X} {
2425
- // Property definitions
2426
- _propertyDefs = ${w};
2427
- _attrToProp = ${R};
2428
-
2429
- // Internal state
2430
- _state = ${JSON.stringify(U)};
2431
- _renderPending = false;
2432
- _isConnected = false;
2433
-
2434
- constructor() {
2435
- super();
2436
- ${G?'this.attachShadow({ mode: "open" });':""}
2437
- this._root = ${G?"this.shadowRoot":"this"};
2438
-
2439
- // Initialize properties with defaults
2440
- ${V}
2441
-
2442
- // Initial render
2443
- this._render();
2444
- }
2445
-
2446
- // =========================================================================
2447
- // Reactive Properties
2448
- // =========================================================================
2449
- ${F}
2450
-
2451
- // =========================================================================
2452
- // State Management
2453
- // =========================================================================
2454
-
2455
- /**
2456
- * Get current internal state
2457
- */
2458
- get state() {
2459
- return { ...this._state };
2460
- }
2461
-
2462
- /**
2463
- * Update internal state and trigger re-render
2464
- * @param {Object} updates - State updates to merge
2465
- */
2466
- setState(updates) {
2467
- const oldState = { ...this._state };
2468
- this._state = { ...this._state, ...updates };
2469
- this._scheduleRender();
2470
- this.dispatchEvent(new CustomEvent('state-changed', {
2471
- detail: { state: this._state, oldState },
2472
- bubbles: true
2473
- }));
2474
- }
2475
-
2476
- // =========================================================================
2477
- // Rendering
2478
- // =========================================================================
2479
-
2480
- /**
2481
- * Schedule a render on the next animation frame (batched)
2482
- */
2483
- _scheduleRender() {
2484
- if (this._renderPending) return;
2485
- this._renderPending = true;
2486
- requestAnimationFrame(() => {
2487
- this._renderPending = false;
2488
- this._render();
2489
- });
2490
- }
2491
-
2492
- /**
2493
- * Render the component template
2494
- */
2495
- _render() {
2496
- const template = \`${A?`<style>${A}</style>`:""}${N}\`;
2497
-
2498
- // Interpolate template with property values
2499
- const rendered = template.replace(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, (match, propName) => {
2500
- if (propName in this) {
2501
- const value = this[propName];
2502
- if (value === null || value === undefined) return '';
2503
- if (typeof value === 'object') return JSON.stringify(value);
2504
- return String(value);
2505
- }
2506
- if (propName in this._state) {
2507
- const value = this._state[propName];
2508
- if (value === null || value === undefined) return '';
2509
- if (typeof value === 'object') return JSON.stringify(value);
2510
- return String(value);
2511
- }
2512
- return match;
2513
- });
2514
-
2515
- this._root.innerHTML = rendered;
2516
- this._bindEvents();
2517
- }
2518
-
2519
- /**
2520
- * Bind event handlers after render
2521
- */
2522
- _bindEvents() {
2523
- ${O}
2524
- }
2525
-
2526
- // =========================================================================
2527
- // Attribute Handling
2528
- // =========================================================================
2529
-
2530
- /**
2531
- * Deserialize attribute value to property type
2532
- */
2533
- _deserializeAttribute(value, type) {
2534
- if (value === null) return null;
2535
- switch (type) {
2536
- case 'number': return Number(value);
2537
- case 'boolean': return value !== null && value !== 'false' && value !== '0';
2538
- case 'object':
2539
- case 'array':
2540
- try { return JSON.parse(value); }
2541
- catch { return type === 'array' ? [] : {}; }
2542
- default: return value;
2543
- }
2544
- }
2545
-
2546
- ${_}
2547
-
2548
- // =========================================================================
2549
- // Lifecycle
2550
- // =========================================================================
2551
-
2552
- connectedCallback() {
2553
- this._isConnected = true;
2554
- ${q.connected||"// Component connected to DOM"}
2555
- }
2556
-
2557
- disconnectedCallback() {
2558
- this._isConnected = false;
2559
- ${q.disconnected||"// Component disconnected from DOM"}
2560
- }
2561
-
2562
- adoptedCallback() {
2563
- ${q.adopted||"// Component moved to new document"}
2564
- }
2565
-
2566
- // =========================================================================
2567
- // Custom Methods
2568
- // =========================================================================
2569
- ${L}
2570
- }
2571
-
2572
- // Register the custom element
2573
- customElements.define('${J}', ${H});
2574
-
2575
- // Export for module usage
2576
- export { ${H} };
2577
- export default ${H};
2578
- `}function pK($){let{name:Z,tag:J,baseElement:X="HTMLElement",template:Y,styles:Q="",shadowDOM:G=!0,properties:z={},lifecycle:q={},events:K={},methods:W={},state:U={}}=$,H=Z.replace(/\W/g,""),j=Object.keys(z),B=j.filter((D)=>z[D].attribute!==!1).map((D)=>z[D].attribute||P1(D)),V=(D)=>{switch(D){case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"object":return"Record<string, unknown>";case"array":return"unknown[]";default:return"unknown"}},F=j.length>0?`
2579
- /**
2580
- * Props interface for ${Z}
2581
- */
2582
- export interface ${H}Props {
2583
- ${j.map((D)=>` ${D}?: ${V(z[D].type)};`).join(`
2584
- `)}
2585
- }
2586
- `:"",_=Object.keys(U).length>0?`
2587
- /**
2588
- * State interface for ${Z}
2589
- */
2590
- export interface ${H}State {
2591
- ${Object.entries(U).map(([D,M])=>` ${D}: ${typeof M};`).join(`
2592
- `)}
2593
- }
2594
- `:`
2595
- export interface ${H}State {
2596
- [key: string]: unknown;
2597
- }
2598
- `,O=j.map((D)=>{let M=z[D],k=V(M.type);return` private _${D}: ${k};`}).join(`
2599
- `),L=j.map((D)=>{let M=z[D],k=V(M.type),I=M.attribute!==!1?M.attribute||P1(D):null,y=M.default!==void 0?JSON.stringify(M.default):M.type==="string"?'""':M.type==="number"?"0":M.type==="boolean"?"false":M.type==="array"?"[]":"{}",E=M.reflect&&I?`
2600
- if (value !== null && value !== undefined) {
2601
- ${M.type==="boolean"?`if (value) { this.setAttribute('${I}', ''); }
2602
- else { this.removeAttribute('${I}'); }`:`this.setAttribute('${I}', ${M.type==="object"||M.type==="array"?"JSON.stringify(value)":"String(value)"});`}
2603
- }
2604
- else {
2605
- this.removeAttribute('${I}');
2606
- }`:"",b=M.observer?`this.${M.observer}(value, oldValue);`:"",C=M.render!==!1?"this._scheduleRender();":"";return`
2607
- get ${D}(): ${k} {
2608
- return this._${D};
2609
- }
2610
-
2611
- set ${D}(value: ${k}) {
2612
- const oldValue = this._${D};
2613
- if (oldValue === value) return;
2614
- this._${D} = value;${E}
2615
- ${b}
2616
- ${C}
2617
- this.dispatchEvent(new CustomEvent('${D}-changed', {
2618
- detail: { value, oldValue },
2619
- bubbles: true
2620
- }));
2621
- }
2622
-
2623
- // Property default: ${y}`}).join(`
2624
- `),w=B.length>0?`
2625
- static get observedAttributes(): string[] {
2626
- return [${B.map((D)=>`'${D}'`).join(", ")}];
2627
- }
2628
-
2629
- attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void {
2630
- if (oldValue === newValue) return;
2631
- const propName = this._attrToProp[name];
2632
- if (propName) {
2633
- const propDef = this._propertyDefs[propName];
2634
- (this as unknown as Record<string, unknown>)[propName] = this._deserializeAttribute(newValue, propDef.type);
2635
- }
2636
- ${q.attributeChanged||""}
2637
- }`:"",R=Object.entries(K).map(([D,M])=>{return`this._root.addEventListener('${D}', (e: Event) => { ${M} });`}).join(`
2638
- `),N=Object.entries(W).map(([D,M])=>{return`
2639
- ${D}(): void {
2640
- ${M}
2641
- }`}).join(`
2642
- `),A=Y.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/g,"\\${"),T=Q.replace(/\\/g,"\\\\").replace(/`/g,"\\`");return`/**
2643
- * ${Z} - Reactive Web Component (TypeScript)
2644
- * Auto-generated with reactive properties and lifecycle management
2645
- *
2646
- * @customElement ${J}
2647
- */
2648
-
2649
- ${F}
2650
- ${_}
2651
-
2652
- /**
2653
- * Property definition type
2654
- */
2655
- interface PropertyDefinition {
2656
- type: 'string' | 'number' | 'boolean' | 'object' | 'array';
2657
- default?: unknown;
2658
- reflect?: boolean;
2659
- attribute?: string | false;
2660
- observer?: string;
2661
- render?: boolean;
2662
- }
2663
-
2664
- /**
2665
- * ${Z} custom element
2666
- */
2667
- export class ${H} extends ${X} {
2668
- // Property definitions
2669
- private _propertyDefs: Record<string, PropertyDefinition> = ${JSON.stringify(z)};
2670
- private _attrToProp: Record<string, string> = ${JSON.stringify(Object.fromEntries(j.filter((D)=>z[D].attribute!==!1).map((D)=>[z[D].attribute||P1(D),D])))};
2671
-
2672
- // Internal state
2673
- private _state: ${H}State = ${JSON.stringify(U)};
2674
- private _renderPending = false;
2675
- private _isConnected = false;
2676
- private _root: ShadowRoot | HTMLElement;
2677
-
2678
- // Property backing fields
2679
- ${O}
2680
-
2681
- constructor() {
2682
- super();
2683
- ${G?'this.attachShadow({ mode: "open" });':""}
2684
- this._root = ${G?"this.shadowRoot!":"this"};
2685
-
2686
- // Initialize properties with defaults
2687
- ${j.map((D)=>{let M=z[D],k=M.default!==void 0?JSON.stringify(M.default):M.type==="string"?'""':M.type==="number"?"0":M.type==="boolean"?"false":M.type==="array"?"[]":"{}";return` this._${D} = ${k};`}).join(`
2688
- `)}
2689
-
2690
- // Initial render
2691
- this._render();
2692
- }
2693
-
2694
- // =========================================================================
2695
- // Reactive Properties
2696
- // =========================================================================
2697
- ${L}
2698
-
2699
- // =========================================================================
2700
- // State Management
2701
- // =========================================================================
2702
-
2703
- /**
2704
- * Get current internal state
2705
- */
2706
- get state(): ${H}State {
2707
- return { ...this._state };
2708
- }
2709
-
2710
- /**
2711
- * Update internal state and trigger re-render
2712
- */
2713
- setState(updates: Partial<${H}State>): void {
2714
- const oldState = { ...this._state };
2715
- this._state = { ...this._state, ...updates };
2716
- this._scheduleRender();
2717
- this.dispatchEvent(new CustomEvent('state-changed', {
2718
- detail: { state: this._state, oldState },
2719
- bubbles: true
2720
- }));
2721
- }
2722
-
2723
- // =========================================================================
2724
- // Rendering
2725
- // =========================================================================
2726
-
2727
- /**
2728
- * Schedule a render on the next animation frame (batched)
2729
- */
2730
- private _scheduleRender(): void {
2731
- if (this._renderPending) return;
2732
- this._renderPending = true;
2733
- requestAnimationFrame(() => {
2734
- this._renderPending = false;
2735
- this._render();
2736
- });
2737
- }
2738
-
2739
- /**
2740
- * Render the component template
2741
- */
2742
- private _render(): void {
2743
- const template = \`${T?`<style>${T}</style>`:""}${A}\`;
2744
-
2745
- // Interpolate template with property values
2746
- const rendered = template.replace(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, (match, propName) => {
2747
- if (propName in this) {
2748
- const value = (this as unknown as Record<string, unknown>)[propName];
2749
- if (value === null || value === undefined) return '';
2750
- if (typeof value === 'object') return JSON.stringify(value);
2751
- return String(value);
2752
- }
2753
- if (propName in this._state) {
2754
- const value = this._state[propName as keyof ${H}State];
2755
- if (value === null || value === undefined) return '';
2756
- if (typeof value === 'object') return JSON.stringify(value);
2757
- return String(value);
2758
- }
2759
- return match;
2760
- });
2761
-
2762
- this._root.innerHTML = rendered;
2763
- this._bindEvents();
2764
- }
2765
-
2766
- /**
2767
- * Bind event handlers after render
2768
- */
2769
- private _bindEvents(): void {
2770
- ${R}
2771
- }
2772
-
2773
- // =========================================================================
2774
- // Attribute Handling
2775
- // =========================================================================
2776
-
2777
- /**
2778
- * Deserialize attribute value to property type
2779
- */
2780
- private _deserializeAttribute(value: string | null, type: string): unknown {
2781
- if (value === null) return null;
2782
- switch (type) {
2783
- case 'number': return Number(value);
2784
- case 'boolean': return value !== null && value !== 'false' && value !== '0';
2785
- case 'object':
2786
- case 'array':
2787
- try { return JSON.parse(value); }
2788
- catch { return type === 'array' ? [] : {}; }
2789
- default: return value;
2790
- }
2791
- }
2792
-
2793
- ${w}
2794
-
2795
- // =========================================================================
2796
- // Lifecycle
2797
- // =========================================================================
2798
-
2799
- connectedCallback(): void {
2800
- this._isConnected = true;
2801
- ${q.connected||"// Component connected to DOM"}
2802
- }
2803
-
2804
- disconnectedCallback(): void {
2805
- this._isConnected = false;
2806
- ${q.disconnected||"// Component disconnected from DOM"}
2807
- }
2808
-
2809
- adoptedCallback(): void {
2810
- ${q.adopted||"// Component moved to new document"}
2811
- }
2812
-
2813
- // =========================================================================
2814
- // Custom Methods
2815
- // =========================================================================
2816
- ${N}
2817
- }
2818
-
2819
- // Type augmentation for HTMLElementTagNameMap
2820
- declare global {
2821
- interface HTMLElementTagNameMap {
2822
- '${J}': ${H};
2823
- }
2824
- }
2825
-
2826
- // Register the custom element
2827
- customElements.define('${J}', ${H});
2828
-
2829
- export default ${H};
2830
- `}function iK(){return`/**
2831
- * ReactiveElement Mixin
2832
- * Adds reactive properties and lifecycle management to web components
2833
- */
2834
- const ReactiveElement = (Base) => class extends Base {
2835
- static get observedAttributes() {
2836
- const props = this.properties || {};
2837
- return Object.keys(props)
2838
- .filter(prop => props[prop].attribute !== false)
2839
- .map(prop => props[prop].attribute || prop.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase());
2840
- }
2841
-
2842
- constructor() {
2843
- super();
2844
- this._state = {};
2845
- this._renderPending = false;
2846
- this._propertyValues = new Map();
2847
- this._initializeProperties();
2848
- }
2849
-
2850
- _initializeProperties() {
2851
- const props = this.constructor.properties || {};
2852
- for (const [name, def] of Object.entries(props)) {
2853
- // Set default value
2854
- if (def.default !== undefined) {
2855
- this._propertyValues.set(name, def.default);
2856
- }
2857
-
2858
- // Define getter/setter
2859
- Object.defineProperty(this, name, {
2860
- get: () => this._propertyValues.get(name),
2861
- set: (value) => {
2862
- const oldValue = this._propertyValues.get(name);
2863
- if (oldValue === value) return;
2864
- this._propertyValues.set(name, value);
2865
-
2866
- // Reflect to attribute
2867
- if (def.reflect) {
2868
- const attrName = def.attribute || name.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
2869
- if (def.type === 'boolean') {
2870
- value ? this.setAttribute(attrName, '') : this.removeAttribute(attrName);
2871
- }
2872
- else {
2873
- this.setAttribute(attrName, def.type === 'object' ? JSON.stringify(value) : String(value));
2874
- }
2875
- }
2876
-
2877
- // Call observer
2878
- if (def.observer && typeof this[def.observer] === 'function') {
2879
- this[def.observer](value, oldValue);
2880
- }
2881
-
2882
- // Schedule render
2883
- if (def.render !== false) {
2884
- this._scheduleRender();
2885
- }
2886
-
2887
- // Dispatch event
2888
- this.dispatchEvent(new CustomEvent(\`\${name}-changed\`, {
2889
- detail: { value, oldValue },
2890
- bubbles: true
2891
- }));
2892
- },
2893
- enumerable: true,
2894
- configurable: true
2895
- });
2896
- }
2897
- }
2898
-
2899
- attributeChangedCallback(name, oldValue, newValue) {
2900
- if (oldValue === newValue) return;
2901
- const props = this.constructor.properties || {};
2902
- const propName = Object.keys(props).find(p =>
2903
- (props[p].attribute || p.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase()) === name
2904
- );
2905
- if (propName) {
2906
- const def = props[propName];
2907
- this[propName] = this._deserialize(newValue, def.type);
2908
- }
2909
- }
2910
-
2911
- _deserialize(value, type) {
2912
- if (value === null) return null;
2913
- switch (type) {
2914
- case 'number': return Number(value);
2915
- case 'boolean': return value !== null && value !== 'false';
2916
- case 'object':
2917
- case 'array':
2918
- try { return JSON.parse(value); }
2919
- catch { return type === 'array' ? [] : {}; }
2920
- default: return value;
2921
- }
2922
- }
2923
-
2924
- get state() {
2925
- return { ...this._state };
2926
- }
2927
-
2928
- setState(updates) {
2929
- const oldState = { ...this._state };
2930
- this._state = { ...this._state, ...updates };
2931
- this._scheduleRender();
2932
- this.dispatchEvent(new CustomEvent('state-changed', {
2933
- detail: { state: this._state, oldState },
2934
- bubbles: true
2935
- }));
2936
- }
2937
-
2938
- _scheduleRender() {
2939
- if (this._renderPending) return;
2940
- this._renderPending = true;
2941
- requestAnimationFrame(() => {
2942
- this._renderPending = false;
2943
- if (typeof this.render === 'function') {
2944
- this.render();
2945
- }
2946
- });
2947
- }
2948
- };
2949
-
2950
- export { ReactiveElement };
2951
- export default ReactiveElement;
2952
- `}function nK(){return`/**
2953
- * stx Reactive Web Components Runtime
2954
- * Provides base classes and utilities for reactive web components
2955
- */
2956
- (function(global) {
2957
- 'use strict';
2958
-
2959
- /**
2960
- * Base class for reactive web components
2961
- */
2962
- class StxElement extends HTMLElement {
2963
- static get observedAttributes() {
2964
- const props = this.properties || {};
2965
- return Object.keys(props)
2966
- .filter(prop => props[prop].attribute !== false)
2967
- .map(prop => props[prop].attribute || toKebabCase(prop));
2968
- }
2969
-
2970
- constructor() {
2971
- super();
2972
- this._state = {};
2973
- this._renderPending = false;
2974
- this._props = new Map();
2975
- this._setupShadowDOM();
2976
- this._initProperties();
2977
- }
2978
-
2979
- _setupShadowDOM() {
2980
- if (this.constructor.useShadowDOM !== false) {
2981
- this.attachShadow({ mode: 'open' });
2982
- this._root = this.shadowRoot;
2983
- }
2984
- else {
2985
- this._root = this;
2986
- }
2987
- }
2988
-
2989
- _initProperties() {
2990
- const props = this.constructor.properties || {};
2991
- for (const [name, def] of Object.entries(props)) {
2992
- let value = def.default;
2993
- this._props.set(name, value);
2994
-
2995
- Object.defineProperty(this, name, {
2996
- get: () => this._props.get(name),
2997
- set: (newValue) => this._setProperty(name, newValue, def),
2998
- enumerable: true
2999
- });
3000
- }
3001
- }
3002
-
3003
- _setProperty(name, value, def) {
3004
- const oldValue = this._props.get(name);
3005
- if (oldValue === value) return;
3006
-
3007
- this._props.set(name, value);
3008
-
3009
- if (def.reflect && def.attribute !== false) {
3010
- this._reflectToAttribute(name, value, def);
3011
- }
3012
-
3013
- if (def.observer && this[def.observer]) {
3014
- this[def.observer](value, oldValue);
3015
- }
3016
-
3017
- if (def.render !== false) {
3018
- this.requestUpdate();
3019
- }
3020
-
3021
- this.dispatchEvent(new CustomEvent(name + '-changed', {
3022
- detail: { value, oldValue },
3023
- bubbles: true,
3024
- composed: true
3025
- }));
3026
- }
3027
-
3028
- _reflectToAttribute(name, value, def) {
3029
- const attrName = def.attribute || toKebabCase(name);
3030
- if (value == null || (def.type === 'boolean' && !value)) {
3031
- this.removeAttribute(attrName);
3032
- }
3033
- else if (def.type === 'boolean') {
3034
- this.setAttribute(attrName, '');
3035
- }
3036
- else if (def.type === 'object' || def.type === 'array') {
3037
- this.setAttribute(attrName, JSON.stringify(value));
3038
- }
3039
- else {
3040
- this.setAttribute(attrName, String(value));
3041
- }
3042
- }
3043
-
3044
- attributeChangedCallback(name, oldValue, newValue) {
3045
- if (oldValue === newValue) return;
3046
- const props = this.constructor.properties || {};
3047
- const propName = Object.keys(props).find(p => {
3048
- const def = props[p];
3049
- return (def.attribute || toKebabCase(p)) === name;
3050
- });
3051
-
3052
- if (propName) {
3053
- const def = props[propName];
3054
- this[propName] = deserialize(newValue, def.type);
3055
- }
3056
- }
3057
-
3058
- get state() {
3059
- return { ...this._state };
3060
- }
3061
-
3062
- setState(updates) {
3063
- const oldState = { ...this._state };
3064
- Object.assign(this._state, updates);
3065
- this.requestUpdate();
3066
- this.dispatchEvent(new CustomEvent('state-changed', {
3067
- detail: { state: this._state, oldState },
3068
- bubbles: true
3069
- }));
3070
- }
3071
-
3072
- requestUpdate() {
3073
- if (this._renderPending) return;
3074
- this._renderPending = true;
3075
- requestAnimationFrame(() => {
3076
- this._renderPending = false;
3077
- this.update();
3078
- });
3079
- }
3080
-
3081
- update() {
3082
- if (this.render) {
3083
- const content = this.render();
3084
- if (typeof content === 'string') {
3085
- this._root.innerHTML = content;
3086
- }
3087
- }
3088
- }
3089
-
3090
- connectedCallback() {
3091
- this.update();
3092
- if (this.connected) this.connected();
3093
- }
3094
-
3095
- disconnectedCallback() {
3096
- if (this.disconnected) this.disconnected();
3097
- }
3098
-
3099
- adoptedCallback() {
3100
- if (this.adopted) this.adopted();
3101
- }
3102
-
3103
- // Template helper
3104
- html(strings, ...values) {
3105
- return strings.reduce((result, str, i) => {
3106
- let value = values[i] || '';
3107
- if (Array.isArray(value)) value = value.join('');
3108
- if (typeof value === 'object') value = JSON.stringify(value);
3109
- return result + str + value;
3110
- }, '');
3111
- }
3112
- }
3113
-
3114
- // Utility functions
3115
- function toKebabCase(str) {
3116
- return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
3117
- }
3118
-
3119
- function deserialize(value, type) {
3120
- if (value === null) return null;
3121
- switch (type) {
3122
- case 'number': return Number(value);
3123
- case 'boolean': return value !== null && value !== 'false' && value !== '0';
3124
- case 'object':
3125
- case 'array':
3126
- try { return JSON.parse(value); }
3127
- catch { return type === 'array' ? [] : {}; }
3128
- default: return value;
3129
- }
3130
- }
3131
-
3132
- // Export to global
3133
- global.StxElement = StxElement;
3134
- global.stxComponents = global.stxComponents || {};
3135
-
3136
- // Helper to define components
3137
- global.defineStxComponent = function(tag, config) {
3138
- const { properties, template, styles, methods, ...options } = config;
3139
-
3140
- class Component extends StxElement {
3141
- static get properties() { return properties || {}; }
3142
- static get useShadowDOM() { return options.shadowDOM !== false; }
3143
-
3144
- render() {
3145
- let html = template || '';
3146
- // Simple interpolation
3147
- html = html.replace(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, (match, key) => {
3148
- if (key in this) return this[key] ?? '';
3149
- if (key in this._state) return this._state[key] ?? '';
3150
- return match;
3151
- });
3152
- return (styles ? '<style>' + styles + '</style>' : '') + html;
3153
- }
3154
- }
3155
-
3156
- // Add methods
3157
- if (methods) {
3158
- for (const [name, fn] of Object.entries(methods)) {
3159
- Component.prototype[name] = fn;
3160
- }
3161
- }
3162
-
3163
- customElements.define(tag, Component);
3164
- global.stxComponents[tag] = Component;
3165
- return Component;
3166
- };
3167
-
3168
- })(typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : this);
3169
- `}function XX($,Z){let J=$.match(/<script\b[^>]*>([\s\S]*?)<\/script>/i),X=J?J[1].trim():"",Y=Z,Q=[],G=!0;if(X){let U=X.match(/export\s+default\s+({[\s\S]*})/);if(U)try{let H=U[1],j=H.match(/tag\s*:\s*['"`]([^'"`]+)['"`]/);if(j)Y=j[1];let B=H.match(/props\s*:\s*\[([\s\S]*?)\]/);if(B)Q=B[1].split(",").map((F)=>F.trim().replace(/['"`]/g,"")).filter((F)=>F.length>0);let V=H.match(/shadowDOM\s*:\s*(true|false)/);if(V)G=V[1]==="true"}catch{}}let z=$.match(/<template\b(?![^>]*\bid\s*=)[^>]*>([\s\S]*?)<\/template>/i),q=z?z[1].trim():"",K=$.match(/<style\b[^>]*>([\s\S]*?)<\/style>/i),W=K?K[1].trim():"";return{tag:Y,props:Q,template:q,styles:W,script:X,shadowDOM:G}}function YX($){let{tag:Z,props:J,template:X,styles:Y,shadowDOM:Q}=$,G=Z.split("-").map((U)=>U.charAt(0).toUpperCase()+U.slice(1)).join(""),z=X.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/g,"\\${"),q=Y.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),K=J.map((U)=>`'${U}'`).join(", "),W=J.map((U)=>`
3170
- get ${U}() {
3171
- return this.getAttribute('${U}') || '';
3172
- }
3173
- set ${U}(value) {
3174
- if (value) {
3175
- this.setAttribute('${U}', value);
3176
- }
3177
- else {
3178
- this.removeAttribute('${U}');
3179
- }
3180
- }`).join(`
3181
- `);return`/**
3182
- * ${G} Web Component
3183
- * Auto-generated from SFC
3184
- */
3185
- class ${G} extends HTMLElement {
3186
- constructor() {
3187
- super();
3188
- ${Q?"this.attachShadow({ mode: 'open' });":""}
3189
- this._render();
3190
- }
3191
-
3192
- static get observedAttributes() {
3193
- return [${K}];
3194
- }
3195
-
3196
- attributeChangedCallback(name, oldValue, newValue) {
3197
- if (oldValue !== newValue) {
3198
- this._render();
3199
- }
3200
- }
3201
- ${W}
3202
-
3203
- _render() {
3204
- const template = \`${q?`<style>${q}</style>`:""}${z}\`;
3205
-
3206
- // Interpolate {{ prop }} with attribute values
3207
- const rendered = template.replace(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, (match, prop) => {
3208
- return this.getAttribute(prop) || '';
3209
- });
3210
-
3211
- ${Q?"this.shadowRoot.innerHTML = rendered;":"this.innerHTML = rendered;"}
3212
- }
3213
-
3214
- connectedCallback() {
3215
- this._render();
3216
- }
3217
- }
3218
-
3219
- customElements.define('${Z}', ${G});
3220
- `}async function H7($,Z,J,X){if(Z.length<1)return X0("WebComponent","@webcomponent directive requires at least the tag name parameter",J0.INVALID_DIRECTIVE_SYNTAX);let Y=Z[0].replace(/['"]/g,""),G=(J.__stx_options||{}).componentsDir||"components",z=d0.isAbsolute(G)?[d0.join(G,`${Y}.stx`),d0.join(d0.dirname(X),`${Y}.stx`)]:[d0.join(d0.dirname(X),G,`${Y}.stx`),d0.join(process.cwd(),G,`${Y}.stx`),d0.join(d0.dirname(X),`${Y}.stx`)],q=null;for(let U of z)if(await a(U)){q=await Bun.file(U).text();break}if(!q)return X0("WebComponent",`Component file not found: ${Y}.stx`,J0.FILE_NOT_FOUND);let K=XX(q,Y);return`<script type="module">
3221
- ${YX(K)}
3222
- </script>`}var V5={enabled:!0,ssr:!1,partialsDir:"partials",componentsDir:"components",layoutsDir:"layouts",defaultLayout:"default",debug:!1,cache:!0,stateDir:_7,cachePath:".stx/cache",cacheVersion:"1.0.0",componentRenderCacheBytes:33554432,build:{pagesDir:"pages",outputDir:"dist",baseUrl:"/",sitemap:!0,minify:!0,cache:!0,cacheDir:".stx/ssg-cache",concurrency:10,generate404:!0,publicDir:"public",trailingSlash:!1,cleanOutput:!0},customDirectives:[{name:"markdown",handler:g3,hasEndTag:!0,description:"Render markdown content to HTML"},{name:"webcomponent",handler:H7,hasEndTag:!1,description:"Include a web component in the template"},B7,V7,U5,H5,n9,o9,r9,s9,P3,D3,r3,W5,...R7],middleware:[],i18n:{defaultLocale:"en",locale:"en",translationsDir:"translations",format:"yaml",fallbackToKey:!0,cache:!0},webComponents:{enabled:!1,outputDir:"dist/web-components",components:[]},docs:{enabled:!1,outputDir:"docs",format:"markdown",components:!0,templates:!0,directives:!0},streaming:{enabled:!0,bufferSize:16384,strategy:"auto",timeout:30000},hydration:{enabled:!1,mode:"islands",clientEntry:"src/client.ts",autoMarkers:!0,preload:"lazy"},router:{enabled:!0,container:"main",linkSelector:"a[href]",viewTransitions:!0,scrollToTop:!0,prefetch:!0,cache:!0,cacheTTL:300000,skipSelectors:'[data-no-router], [target="_blank"]',viewTransitionCSS:{oldRoot:"fade-out 0.15s ease-in",newRoot:"fade-in 0.2s ease-out",oldContent:"slide-out 0.2s ease-in",newContent:"slide-in 0.25s ease-out"}},a11y:{enabled:!0,addSrOnlyStyles:!0,level:"AA",autoFix:!1,ignoreChecks:[]},seo:{enabled:!0,socialPreview:!0,defaultConfig:{title:"stx Project",description:"A website built with stx templating engine"}},animation:{enabled:!0,defaultDuration:300,defaultEase:"ease",respectMotionPreferences:!0,staggerDelay:50},markdown:{enabled:!0,syntaxHighlighting:{enabled:!0,serverSide:!0,defaultTheme:"github-dark",highlightUnknownLanguages:!0,additionalThemes:["light-plus","one-dark-pro","dracula","monokai","solarized-light","nord","github-dark"]}},loops:{maxWhileIterations:1000,useAltLoopVariable:!1},story:{enabled:!0,outDir:".stx/dist/story",storyMatch:["**/*.story.stx"],storyIgnored:["**/node_modules/**","**/dist/**","**/.stx/**"],port:6006},pwa:{enabled:!1,manifest:{name:"stx App",shortName:"stx",description:"A Progressive Web App built with stx",startUrl:"/",display:"standalone",orientation:"any",themeColor:"#000000",backgroundColor:"#ffffff",scope:"/"},icons:{src:"public/icon.png",sizes:[72,96,128,144,152,192,384,512],generateWebP:!0,generateAppleIcons:!0,outputDir:"pwa-icons",purpose:["any","maskable"]},routes:[{pattern:"/",strategy:"network-first"},{pattern:"/static/*",strategy:"cache-first",maxAgeSeconds:2592000},{pattern:"/api/*",strategy:"network-only"},{pattern:"*.js",strategy:"stale-while-revalidate"},{pattern:"*.css",strategy:"stale-while-revalidate"},{pattern:"*.png",strategy:"cache-first"},{pattern:"*.jpg",strategy:"cache-first"},{pattern:"*.webp",strategy:"cache-first"},{pattern:"*.svg",strategy:"cache-first"}],offline:{enabled:!0,fallbackTitle:"You are offline",fallbackMessage:"Please check your internet connection and try again.",precacheAssets:[]},serviceWorker:{fileName:"sw.js",cacheVersion:"1.0.0",skipWaiting:!0,clientsClaim:!0,navigationPreload:!1,excludeRoutes:["/api/auth/*"],cacheFileTypes:["html","css","js","png","jpg","jpeg","webp","svg","woff","woff2"],useWorkbox:!1},autoInject:!0,push:{enabled:!1,defaultOptions:{vibrate:[100,50,100],requireInteraction:!1}},backgroundSync:{enabled:!1,queueName:"stx-sync-queue",maxRetentionMinutes:1440,maxRetries:3,minInterval:1000,forms:[],endpoints:[]},shareTarget:{enabled:!1,action:"/share-target",method:"POST",enctype:"multipart/form-data",params:{title:"title",text:"text",url:"url"}},fileHandlers:{enabled:!1},protocolHandlers:[],cacheStorage:{maxSize:100,maxEntries:500,maxAge:30,purgeStrategy:"lru"},updates:{enabled:!0,promptUser:!0,autoReload:!1,message:"A new version is available. Reload to update?"},precache:{enabled:!0,includeHtml:!0,includeJs:!0,includeCss:!0,includeImages:!0,includeFonts:!0,include:[],exclude:["*.map","*.LICENSE.txt"],maxFileSizeKB:500}},media:{enabled:!0,image:{enabled:!0,defaultWidths:[320,480,640,768,1024,1280,1536,1920],defaultFormats:["avif","webp","jpeg"],defaultQuality:80,placeholderStrategy:"thumbhash",lazyByDefault:!0,enableDpr:!0,defaultDpr:[1,2,3],tsImages:{enabled:!0,outputDir:"dist/images",baseUrl:"/images",formatQuality:{jpeg:{quality:85,mozjpeg:!0,progressive:!0},png:{compressionLevel:9,palette:!1},webp:{quality:82,effort:5,smartSubsample:!0},avif:{quality:75,effort:4,lossless:!1}},breakpoints:[320,480,640,768,1024,1280,1536,1920],batchOptions:{concurrency:4,optimizationPreset:"web"}}},video:{enabled:!0,lazyByDefault:!0,defaultControls:!0,tsVideos:{enabled:!0,outputDir:"dist/videos",baseUrl:"/videos",defaultQuality:"high",streaming:{enabled:!0,format:"hls",segmentDuration:6,defaultQualities:[{label:"1080p",width:1920,height:1080,bitrate:5000000,audioBitrate:192000},{label:"720p",width:1280,height:720,bitrate:2500000,audioBitrate:128000},{label:"480p",width:854,height:480,bitrate:1e6,audioBitrate:96000}]},thumbnails:{enabled:!0,count:10,format:"webp",width:320},transcoding:{defaultCodec:"h264",defaultAudioCodec:"aac",speedPreset:"medium"}}},upload:{enabled:!0,maxSize:10485760,allowedTypes:["image/*","video/*","audio/*","application/pdf"],maxConcurrent:3},protected:{enabled:!0,expirationSeconds:3600,batchSize:10},cache:{enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}},broadcasting:{enabled:!1,driver:"bun",host:"0.0.0.0",port:6001,scheme:"ws",verbose:!1}};function GX($,Z,J){let X=Z||"pages";if($)return{root:$,pagesDir:X};let Y=J||process.cwd(),Q=b0.join(Y,"resources","views"),G=b0.join(Y,"resources","layouts");if($9.existsSync(Q)&&$9.existsSync(G))return{root:"resources",pagesDir:"views"};let z=b0.join(Y,"resources","views","pages");if($9.existsSync(z))return{root:"resources/views",pagesDir:X};return{root:".",pagesDir:X}}var j7=new Set,Z9=["partialsDir","componentsDir","layoutsDir"],_5=new WeakMap;function zX($,Z){let J=Z.replace(/[\\/]+$/,"");if(!J||J===".")return!0;let X=$.replace(/\\/g,"/"),Y=J.replace(/\\/g,"/");return X===Y||X.startsWith(`${Y}/`)}function qX($,Z){let J=!$.root,X=GX($.root,$.pagesDir,Z);if($.root=X.root,$.pagesDir=X.pagesDir,J&&X.root!=="."){let Y=`${Z}::${X.root}`;if(!j7.has(Y))j7.add(Y),console.warn(`[stx] No "root" in config \u2014 inferred "${X.root}" from the project layout. Template directories are resolved under it; set root explicitly to pin this.`)}if(!_5.has($)){let Y={};for(let Q of Z9){let G=$[Q];if(typeof G==="string"&&G)Y[Q]=G}_5.set($,Y)}if($.root&&$.root!=="."){let Y=$.root;for(let Q of Z9){let G=$[Q];if(typeof G!=="string"||!G)continue;if(b0.isAbsolute(G)||zX(G,Y))continue;$[Q]=b0.join(Y,G)}}for(let Y of Z9){let Q=$[Y];if(typeof Q!=="string"||!Q||b0.isAbsolute(Q))continue;$[Y]=b0.resolve(Z,Q)}return $}function KX($,Z){let J=_5.get($);for(let X of Z9){let Y=$[X];if(typeof Y!=="string"||!Y)continue;let Q=b0.isAbsolute(Y)?Y:b0.join(Z,Y);if($9.existsSync(Q))continue;let G=J?.[X]??Y,z=$.root,q=!!z&&z!==".";console.warn(`[stx] ${String(X)} resolves to "${Q}", which does not exist. Configured as "${G}"`+(q?`, resolved under root "${z}".`:"."))}}function WX($){if($.customDirectives)$.customDirectives=[...$.customDirectives];if($.middleware)$.middleware=[...$.middleware];if($.apiRoutes)$.apiRoutes={...$.apiRoutes}}function UX($){if(L7($.stateDir),$.stateDir=O7(),$.cachePath=U2($.cachePath),$.build)$.build.cacheDir=U2($.build.cacheDir);if($.media?.cache)$.media.cache.directory=U2($.media.cache.directory);if($.story)$.story.outDir=U2($.story.outDir)}var G1=null,L1=new Map,a2=new Map,H2=null;async function L5($){let Z=$?b0.resolve($):process.cwd(),J=a2.get(Z);if(J&&J.signature!==t2(J.graph)){let Q=L1.get(Z);if(L1.delete(Z),a2.delete(Z),!$)G1=null,H2=null;let{clearComponentCache:G}=await import("./chunk-65hqene1.js"),{partialsCache:z}=await import("./chunk-wcp0dt2c.js");if(G(),z.clear(),Q&&J.configSignature===e2(J.graph)){let q=Q.then(async(K)=>{let W={...J.graph};await w7(W,Z),a2.set(Z,{graph:W,signature:t2(W),configSignature:e2(W)});let U={...K,_layerGraph:W};if(!$)G1=U;return U});return L1.set(Z,q),q}}if(!$){if(G1)return G1;if(H2)return H2}let X=L1.get(Z);if(X)return X;let Y=(async()=>{let G=(await QX({name:"stx",alias:"ui",cwd:Z,defaultConfig:V5,verbose:!1})).config;if(G.extends!==void 0||J){let z=await F7(Z,V5);G=z.config,a2.set(Z,{graph:z.graph,signature:t2(z.graph),configSignature:e2(z.graph)})}if(G.runtimeConfig){let{resolveRuntimeConfig:z}=await import("./chunk-zr1r73p3.js");z(G.runtimeConfig,{});let{generateRuntimeConfigTypes:q}=await import("./chunk-jr79tvvs.js");await q(Z,G.runtimeConfig)}if(WX(G),UX(G),qX(G,Z),KX(G,Z),G.plugins&&G.plugins.length>0){let{pluginManager:z}=await import("./chunk-wm86mmgq.js"),q=[],K=[];for(let W of G.plugins){let U=typeof W==="string"?W:W[0],H=typeof W==="string"?{}:W[1]||{};try{let j,B;try{j=await import(U),B=b0.dirname(x.resolve(U))}catch{let F=b0.resolve(Z,U);j=await import(F),B=b0.dirname(F)}let V=j.default||j;if(!z.has(V.name))await z.register(V,G);if(V.components){let F=Array.isArray(V.components)?V.components:[V.components];for(let _ of F)q.push(b0.resolve(B,_))}if(V.pages){let F=b0.resolve(B,V.pages),_=H.path||"/";K.push({dir:F,prefix:_})}if(V.setup){let F={addDirective:(_)=>{G.customDirectives=G.customDirectives||[],G.customDirectives.push(_)},addRoute:(_,O)=>{G.apiRoutes=G.apiRoutes||{},G.apiRoutes[_]=O},addMiddleware:(_)=>{G.middleware=G.middleware||[],G.middleware.push(_)},pluginDir:B,config:G};await V.setup(H,F)}console.log(`[stx] Plugin loaded: ${V.name||U}`)}catch(j){console.warn(`[stx] Failed to load plugin ${U}:`,j.message)}}G._pluginComponentDirs=q,G._pluginPageDirs=K}return G})();if(L1.set(Z,Y),Y.catch(()=>{if(L1.get(Z)===Y)L1.delete(Z)}),!$)H2=Y,Y.then((Q)=>{G1=Q}).catch(()=>{});return Y}var N7=new Proxy(V5,{get($,Z){if(G1&&Z in G1)return G1[Z];if(!H2)L5().catch((J)=>{console.warn("[stx] Failed to load config file:",J?.message||J)});return $[Z]}});function WW($){return $}function UW($){let Z=[],J=[];if($.partialsDir!==void 0&&typeof $.partialsDir!=="string")Z.push({path:"partialsDir",message:"partialsDir must be a string",severity:"error"});if($.componentsDir!==void 0&&typeof $.componentsDir!=="string")Z.push({path:"componentsDir",message:"componentsDir must be a string",severity:"error"});if($.cache!==void 0&&typeof $.cache!=="boolean")Z.push({path:"cache",message:"cache must be a boolean",severity:"error"});if($.debug!==void 0&&typeof $.debug!=="boolean")Z.push({path:"debug",message:"debug must be a boolean",severity:"error"});if($.streaming){if($.streaming.bufferSize!==void 0){if(typeof $.streaming.bufferSize!=="number"||$.streaming.bufferSize<=0)Z.push({path:"streaming.bufferSize",message:"streaming.bufferSize must be a positive number",severity:"error"})}if($.streaming.timeout!==void 0){if(typeof $.streaming.timeout!=="number"||$.streaming.timeout<=0)Z.push({path:"streaming.timeout",message:"streaming.timeout must be a positive number",severity:"error"})}if($.streaming.strategy!==void 0){let X=["auto","manual","sections"];if(!X.includes($.streaming.strategy))Z.push({path:"streaming.strategy",message:`streaming.strategy must be one of: ${X.join(", ")}`,severity:"error"})}}if($.i18n){if($.i18n.format!==void 0){let X=["json","yaml","yml","js"];if(!X.includes($.i18n.format))Z.push({path:"i18n.format",message:`i18n.format must be one of: ${X.join(", ")}`,severity:"error"})}}if($.animation){if($.animation.defaultDuration!==void 0){if(typeof $.animation.defaultDuration!=="number"||$.animation.defaultDuration<0)Z.push({path:"animation.defaultDuration",message:"animation.defaultDuration must be a non-negative number",severity:"error"})}if($.animation.staggerDelay!==void 0){if(typeof $.animation.staggerDelay!=="number"||$.animation.staggerDelay<0)Z.push({path:"animation.staggerDelay",message:"animation.staggerDelay must be a non-negative number",severity:"error"})}}if($.a11y){if($.a11y.level!==void 0){let X=["AA","AAA"];if(!X.includes($.a11y.level))Z.push({path:"a11y.level",message:`a11y.level must be one of: ${X.join(", ")}`,severity:"error"})}}if($.hydration){if($.hydration.mode!==void 0){let X=["progressive","islands"];if(!X.includes($.hydration.mode))Z.push({path:"hydration.mode",message:`hydration.mode must be one of: ${X.join(", ")}`,severity:"error"})}if($.hydration.preload!==void 0){let X=["none","eager","lazy"];if(!X.includes($.hydration.preload))Z.push({path:"hydration.preload",message:`hydration.preload must be one of: ${X.join(", ")}`,severity:"error"})}}if($.customDirectives)if(!Array.isArray($.customDirectives))Z.push({path:"customDirectives",message:"customDirectives must be an array",severity:"error"});else $.customDirectives.forEach((X,Y)=>{if(!X.name||typeof X.name!=="string")Z.push({path:`customDirectives[${Y}].name`,message:"Custom directive must have a name string",severity:"error"});if(!X.handler||typeof X.handler!=="function")Z.push({path:`customDirectives[${Y}].handler`,message:"Custom directive must have a handler function",severity:"error"})});if($.middleware)if(!Array.isArray($.middleware))Z.push({path:"middleware",message:"middleware must be an array",severity:"error"});else $.middleware.forEach((X,Y)=>{if(!X.name||typeof X.name!=="string")Z.push({path:`middleware[${Y}].name`,message:"Middleware must have a name string",severity:"error"});if(!X.handler||typeof X.handler!=="function")Z.push({path:`middleware[${Y}].handler`,message:"Middleware must have a handler function",severity:"error"});if(!X.timing||!["before","after"].includes(X.timing))Z.push({path:`middleware[${Y}].timing`,message:'Middleware timing must be "before" or "after"',severity:"error"})});if($.debug===!0&&$.cache===!0)J.push({path:"debug+cache",message:"Debug mode with caching enabled may show stale content during development",severity:"warning"});if($.seo?.enabled===!0&&!$.seo?.defaultConfig?.title)J.push({path:"seo.defaultConfig.title",message:"SEO is enabled but no default title is set",severity:"warning"});if($.pwa){if($.pwa.enabled===!0&&!$.pwa.manifest?.name)Z.push({path:"pwa.manifest.name",message:"PWA manifest name is required when PWA is enabled",severity:"error"});if($.pwa.manifest?.display!==void 0){let X=["fullscreen","standalone","minimal-ui","browser"];if(!X.includes($.pwa.manifest.display))Z.push({path:"pwa.manifest.display",message:`PWA display must be one of: ${X.join(", ")}`,severity:"error"})}if($.pwa.manifest?.orientation!==void 0){let X=["portrait","landscape","any","portrait-primary","portrait-secondary","landscape-primary","landscape-secondary"];if(!X.includes($.pwa.manifest.orientation))Z.push({path:"pwa.manifest.orientation",message:`PWA orientation must be one of: ${X.join(", ")}`,severity:"error"})}if($.pwa.routes){let X=["cache-first","network-first","stale-while-revalidate","network-only","cache-only"];$.pwa.routes.forEach((Y,Q)=>{if(!Y.pattern||typeof Y.pattern!=="string")Z.push({path:`pwa.routes[${Q}].pattern`,message:"PWA route must have a pattern string",severity:"error"});if(!X.includes(Y.strategy))Z.push({path:`pwa.routes[${Q}].strategy`,message:`PWA route strategy must be one of: ${X.join(", ")}`,severity:"error"});if(Y.maxAgeSeconds!==void 0&&(typeof Y.maxAgeSeconds!=="number"||Y.maxAgeSeconds<0))Z.push({path:`pwa.routes[${Q}].maxAgeSeconds`,message:"PWA route maxAgeSeconds must be a non-negative number",severity:"error"});if(Y.maxEntries!==void 0&&(typeof Y.maxEntries!=="number"||Y.maxEntries<1))Z.push({path:`pwa.routes[${Q}].maxEntries`,message:"PWA route maxEntries must be a positive number",severity:"error"})})}if($.pwa.icons?.sizes){if(!Array.isArray($.pwa.icons.sizes))Z.push({path:"pwa.icons.sizes",message:"PWA icon sizes must be an array of numbers",severity:"error"});else if($.pwa.icons.sizes.filter((Y)=>typeof Y!=="number"||Y<16||Y>1024).length>0)Z.push({path:"pwa.icons.sizes",message:"PWA icon sizes must be numbers between 16 and 1024",severity:"error"})}if($.pwa.icons?.purpose){let X=["any","maskable","monochrome"];if($.pwa.icons.purpose.filter((Q)=>!X.includes(Q)).length>0)Z.push({path:"pwa.icons.purpose",message:`PWA icon purpose must be one of: ${X.join(", ")}`,severity:"error"})}if($.pwa.enabled===!0&&!$.pwa.icons?.src)J.push({path:"pwa.icons.src",message:"PWA is enabled but no icon source specified. Provide a 512x512 PNG for best results.",severity:"warning"});if($.pwa.enabled===!0&&!$.pwa.manifest?.themeColor)J.push({path:"pwa.manifest.themeColor",message:"PWA theme color not set, defaulting to black",severity:"warning"})}return{valid:Z.length===0,errors:Z,warnings:J}}var F5=new Map;async function BX($,Z={}){try{if(!await a($))throw Error(`Markdown file not found: ${$}`);let X=(await HX.promises.stat($)).mtime.getTime();if(Z.cache&&F5.has($)){let U=F5.get($);if(U.updatedAt>=X)return{content:U.content,data:U.data}}let Y=await Bun.file($).text(),{data:Q,content:G}=f3(Y),z=Z.markdown||N7.markdown||{enabled:!0,syntaxHighlighting:{enabled:!0,serverSide:!0,defaultTheme:"github-dark",highlightUnknownLanguages:!0}},K=q2(G,{gfm:!0});if(z.syntaxHighlighting?.enabled&&z.syntaxHighlighting?.serverSide)K=await VX(K,z.syntaxHighlighting?.defaultTheme||"github-dark",z.syntaxHighlighting?.highlightUnknownLanguages||!1);let W={content:K,data:Q||{}};if(Z.cache)F5.set($,{...W,updatedAt:X});return W}catch(J){if(Z.debug)console.error(`Error reading/parsing markdown file ${$}:`,J);let X=J instanceof Error?J.message:String(J);return{content:H0("Markdown File",`Error reading/parsing markdown file: ${X}`,$,"",0,""),data:{}}}}var J9=null;async function VX($,Z,J){let X=/<pre><code( class="language-([^"]+)")?>([^<]+)<\/code><\/pre>/g;if(!J9)try{J9=await jX({theme:Z||"github-dark",cache:!0})}catch(z){return console.error("Failed to initialize ts-syntax-highlighter:",z),$}let Y=async(z,q,K,W)=>{let U=W.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&").replace(/&quot;/g,'"').replace(/&#39;/g,"'"),H=K||(J?"text":"");if(!H)return z;try{if(!J9.getSupportedLanguages().includes(H))return z;return(await J9.highlight(U,H,{theme:Z})).html}catch(j){console.error(`Error highlighting code block with language ${K}:`,j)}return z},Q=$,G=$.matchAll(X);for(let z of G){let[q,K,W,U]=z,H=await Y(q,K,W,U);Q=Q.replace(q,H)}return Q}async function D7($,Z,J="",X={}){return await _X($,/@markdown-file\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\}))?\)/g,async(G,z,q,K)=>{try{let W=z;if(!O5.isAbsolute(z))W=O5.resolve(O5.dirname(J),z);let U={};if(q)try{try{U=JSON.parse(q)}catch{if(X.debug)console.warn("Using safer alternative for parsing JS object literal");let O=q.replace(/^\s*\{|\}\s*$/g,"").trim().split(/,(?=\s*\w+\s*:)/);for(let L of O){let w=L.indexOf(":");if(w>0){let R=L.substring(0,w).trim(),N=L.substring(w+1).trim(),A=N.startsWith('"')&&N.endsWith('"'),T=N.startsWith("'")&&N.endsWith("'");if(A||T)N=N.substring(1,N.length-1);U[R]=N}}}}catch(_){if(X.debug)console.error("Error parsing context in @markdown-file directive:",_)}let{content:H,data:j}=await BX(W,X),B={...Z,...j,...U},V=H,F=/\{\{([^}]+)\}\}/g;return V=V.replace(F,(_,O)=>{let L=O.trim();return B[L]!==void 0?String(B[L]):_}),V}catch(W){let U=W instanceof Error?W.message:String(W);return H0("Markdown File",`Error including markdown file: ${U}`,J,$,K,G)}})}async function _X($,Z,J){let X=[],Y;while((Y=Z.exec($))!==null){let z=Y[0],q=Y.index,K=Y;X.push(J(...K).then((W)=>({match:z,replacement:W,index:q})))}let Q=await Promise.all(X);Q.sort((z,q)=>q.index-z.index);let G=$;for(let{match:z,replacement:q}of Q)G=G.replace(z,()=>q);return G}function z1($,Z){try{let J=$.trim();if(W0(J))return K0(J,Object.keys(Z))(...Object.values(Z));else return e(J,Z)}catch{return!1}}class X9{source;pos=0;line=1;column=0;tokens=[];constructor($){this.source=$}tokenize(){this.tokens=[],this.pos=0,this.line=1,this.column=0;while(this.pos<this.source.length){let $=this.nextToken();if($)this.tokens.push($)}return this.tokens.push({type:"EOF",value:"",start:this.pos,end:this.pos,line:this.line,column:this.column}),this.tokens}nextToken(){if(this.pos>=this.source.length)return null;let $=this.pos,Z=this.line,J=this.column,X=this.source[this.pos];if(/\s/.test(X))return this.readWhitespace($,Z,J);if(X==="/"&&this.peek(1)==="/")return this.readLineComment($,Z,J);if(X==="/"&&this.peek(1)==="*")return this.readBlockComment($,Z,J);if(X==='"'||X==="'")return this.readString(X,$,Z,J);if(X==="`")return this.readTemplateString($,Z,J);if(/\d/.test(X)||X==="."&&/\d/.test(this.peek(1)||""))return this.readNumber($,Z,J);if(/[a-z_$]/i.test(X))return this.readIdentifier($,Z,J);if(X==="{"){if(this.peek(1)==="{"&&this.peek(2)==="{")return this.advance(3),{type:"RAW_START",value:"{{{",start:$,end:this.pos,line:Z,column:J};if(this.peek(1)==="{")return this.advance(2),{type:"EXPRESSION_START",value:"{{",start:$,end:this.pos,line:Z,column:J};if(this.peek(1)==="!"&&this.peek(2)==="!")return this.advance(3),{type:"RAW_START",value:"{!!",start:$,end:this.pos,line:Z,column:J}}if(X==="}"){if(this.peek(1)==="}"&&this.peek(2)==="}")return this.advance(3),{type:"RAW_END",value:"}}}",start:$,end:this.pos,line:Z,column:J};if(this.peek(1)==="}")return this.advance(2),{type:"EXPRESSION_END",value:"}}",start:$,end:this.pos,line:Z,column:J}}if(X==="!"&&this.peek(1)==="!"&&this.peek(2)==="}")return this.advance(3),{type:"RAW_END",value:"!!}",start:$,end:this.pos,line:Z,column:J};if(X==="@"&&/[a-z]/i.test(this.peek(1)||""))return this.readDirective($,Z,J);let Y=["===","!==","==","!=","<=",">=","&&","||","??","++","--","+=","-=","*=","/=","%=","**","=>","?.","...","<<",">>",">>>","&=","|=","^="];for(let Q of Y)if(this.source.slice(this.pos,this.pos+Q.length)===Q)return this.advance(Q.length),{type:"OPERATOR",value:Q,start:$,end:this.pos,line:Z,column:J};if(/[+\-*/%<>=!&|^~?:]/.test(X))return this.advance(),{type:"OPERATOR",value:X,start:$,end:this.pos,line:Z,column:J};if(/[()[\]{},;.]/.test(X))return this.advance(),{type:"PUNCTUATION",value:X,start:$,end:this.pos,line:Z,column:J};return this.advance(),{type:"PUNCTUATION",value:X,start:$,end:this.pos,line:Z,column:J}}readWhitespace($,Z,J){while(this.pos<this.source.length&&/\s/.test(this.source[this.pos]))this.advance();return{type:"WHITESPACE",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:J}}readLineComment($,Z,J){this.advance(2);while(this.pos<this.source.length&&this.source[this.pos]!==`
3223
- `)this.advance();return{type:"COMMENT",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:J}}readBlockComment($,Z,J){this.advance(2);while(this.pos<this.source.length-1){if(this.source[this.pos]==="*"&&this.source[this.pos+1]==="/"){this.advance(2);break}this.advance()}return{type:"COMMENT",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:J}}readString($,Z,J,X){this.advance();while(this.pos<this.source.length){let Y=this.source[this.pos];if(Y==="\\"){this.advance(2);continue}if(Y===$){this.advance();break}this.advance()}return{type:"STRING",value:this.source.slice(Z,this.pos),start:Z,end:this.pos,line:J,column:X}}readTemplateString($,Z,J){this.advance();let X=0,Y=256;while(this.pos<this.source.length){let Q=this.source[this.pos];if(Q==="\\"){this.advance(2);continue}if(Q==="$"&&this.peek(1)==="{"){if(X>=Y){this.pos=this.source.length;break}this.advance(2),X++;continue}if(Q==="{"&&X>0){X++,this.advance();continue}if(Q==="}"&&X>0){X--,this.advance();continue}if(Q==="`"&&X===0){this.advance();break}this.advance()}return{type:"TEMPLATE_STRING",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:J}}readNumber($,Z,J){if(this.source[this.pos]==="0"){let X=this.peek(1)?.toLowerCase();if(X==="x"||X==="o"||X==="b"){this.advance(2);while(this.pos<this.source.length&&/[\da-f_]/i.test(this.source[this.pos]))this.advance();return{type:"NUMBER",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:J}}}while(this.pos<this.source.length&&/[\d_]/.test(this.source[this.pos]))this.advance();if(this.source[this.pos]==="."&&/\d/.test(this.peek(1)||"")){this.advance();while(this.pos<this.source.length&&/[\d_]/.test(this.source[this.pos]))this.advance()}if(/e/i.test(this.source[this.pos]||"")){if(this.advance(),/[+-]/.test(this.source[this.pos]||""))this.advance();while(this.pos<this.source.length&&/[\d_]/.test(this.source[this.pos]))this.advance()}if(this.source[this.pos]==="n")this.advance();return{type:"NUMBER",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:J}}readIdentifier($,Z,J){while(this.pos<this.source.length&&/[\w$]/.test(this.source[this.pos]))this.advance();return{type:"IDENTIFIER",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:J}}readDirective($,Z,J){this.advance();while(this.pos<this.source.length&&/[a-z]/i.test(this.source[this.pos]))this.advance();return{type:"DIRECTIVE",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:J}}advance($=1){for(let Z=0;Z<$&&this.pos<this.source.length;Z++){if(this.source[this.pos]===`
3224
- `)this.line++,this.column=0;else this.column++;this.pos++}}peek($){return this.source[this.pos+$]}saveState(){return{pos:this.pos,line:this.line,column:this.column}}restoreState($){this.pos=$.pos,this.line=$.line,this.column=$.column}}function L0($,Z,J,X=0){let Y=0,Q=X,G=null,z=0,q=!1;while(Q<$.length){let K=$[Q];if(G&&q){q=!1,Q++;continue}if(G&&K==="\\"){q=!0,Q++;continue}if(q=!1,(K==='"'||K==="'"||K==="`")&&!G){G=K,Q++;continue}if(K===G&&G!=="`"){G=null,Q++;continue}if(G==="`"&&K==="$"&&$[Q+1]==="{"){z++,Q+=2;continue}if(z>0&&K==="}"){z--,Q++;continue}if(K==="`"&&G==="`"&&z===0){G=null,Q++;continue}if(G){Q++;continue}if(K===Z)Y++;else if(K===J){if(Y--,Y===0)return Q}Q++}return-1}function A7($,Z){let J=Z,X={paren:0,bracket:0,brace:0},Y=null,Q=0;while(J<$.length){let G=$[J];if((J>0?$[J-1]:"")==="\\"&&Y){J++;continue}if((G==='"'||G==="'")&&!Y){Y=G,J++;continue}if(G===Y&&Y!=="`"){Y=null,J++;continue}if(G==="`"&&!Y){Y="`",J++;continue}if(G==="`"&&Y==="`"&&Q===0){Y=null,J++;continue}if(Y==="`"&&G==="$"&&$[J+1]==="{"){Q++,J+=2;continue}if(Q>0){if(G==="{")Q++;else if(G==="}")Q--;J++;continue}if(Y){J++;continue}if(X.paren===0&&X.bracket===0&&X.brace===0){if($.slice(J,J+2)==="}}"||$.slice(J,J+3)==="!!}")break;if(G===","||G===";")break}if(G==="(")X.paren++;else if(G===")"){if(X.paren--,X.paren<0)break}else if(G==="[")X.bracket++;else if(G==="]"){if(X.bracket--,X.bracket<0)break}else if(G==="{")X.brace++;else if(G==="}"){if(X.brace--,X.brace<0)break}J++}return{expression:$.slice(Z,J),endPos:J}}function w5($){let Z=[],J="",X={paren:0,bracket:0,brace:0},Y=null,Q=0;for(let G=0;G<$.length;G++){let z=$[G];if((G>0?$[G-1]:"")==="\\"&&Y){J+=z;continue}if((z==='"'||z==="'")&&!Y){Y=z,J+=z;continue}if(z===Y&&Y!=="`"){Y=null,J+=z;continue}if(z==="`"&&!Y){Y="`",J+=z;continue}if(z==="`"&&Y==="`"&&Q===0){Y=null,J+=z;continue}if(Y==="`"&&z==="$"&&$[G+1]==="{"){Q++,J+=z+$[G+1],G++;continue}if(Q>0&&z==="{"){Q++,J+=z;continue}if(Q>0&&z==="}"){Q--,J+=z;continue}if(Y){J+=z;continue}if(z==="(")X.paren++;else if(z===")")X.paren--;else if(z==="[")X.bracket++;else if(z==="]")X.bracket--;else if(z==="{")X.brace++;else if(z==="}")X.brace--;if(z==="|"&&$[G+1]!=="|"&&(G===0||$[G-1]!=="|")&&$[G-1]!=="\\"&&X.paren===0&&X.bracket===0&&X.brace===0){Z.push(J.trim()),J="";continue}if(z==="|"&&$[G-1]==="\\"&&!Y){J=J.slice(0,-1)+z;continue}J+=z}if(J.trim())Z.push(J.trim());return Z}function q1($,Z){let J=LX($,Z);return J.ok?{expression:J.expression,endPos:J.endPos}:null}function LX($,Z){let J=Z;while(J<$.length&&/\s/.test($[J]))J++;if($[J]!=="(")return{ok:!1,reason:"missing-open-paren",pos:J};let X=L0($,"(",")",J);if(X===-1)return{ok:!1,reason:"unclosed-paren",pos:J};return{ok:!0,expression:$.slice(J+1,X),endPos:X+1}}function OX($,Z){let J=$.lastIndexOf("<",Z);if(J===-1)return!1;return J>$.lastIndexOf(">",Z)}function O1($,Z,J,X){let Y=1,Q=X,G=new RegExp(`@${Z}\\s*\\(`,"g"),z=new RegExp(`@${J}(?![a-z])`,"g");while(Q<$.length&&Y>0){G.lastIndex=Q,z.lastIndex=Q;let q=G.exec($),K=z.exec($),W=q?q.index:1/0,U=K?K.index:1/0;if(W<U)Y++,Q=W+q[0].length;else if(U<1/0){if(Y--,Y===0)return U;Q=U+K[0].length}else break}return-1}function M7($,Z){let J=$.slice(Z).match(/^@if\s*/);if(!J)return null;let X=Z+J[0].length,Y=q1($,X);if(!Y)return null;let Q=Y.endPos,G=O1($,"if","endif",Q);if(G===-1)return null;let z=$.slice(Q,G),q=[],K=0,W="if",U=Y.expression,H=0,j=0;while(K<z.length){let B=z.indexOf("@",K);if(B===-1)break;K=B;let V=z.substring(B);if(OX(z,B)){K++;continue}if(/^@if\s*\(/.test(V)){j++,K++;continue}if(/^@endif(?![a-z])/.test(V)){j--,K+=6;continue}if(j===0){let F=V.match(/^@elseif\s*/);if(F){q.push({type:W,condition:U,content:z.substring(H,K),start:Q+H,end:Q+K});let _=K+F[0].length,O=q1(z,_);if(!O){K++;continue}W="elseif",U=O.expression,K=O.endPos,H=K;continue}else if(/^@else(?![a-z])/.test(V)){q.push({type:W,condition:U,content:z.substring(H,K),start:Q+H,end:Q+K}),W="else",U=void 0,K+=5,H=K;continue}}K++}return q.push({type:W,condition:U,content:z.slice(H),start:Q+H,end:Q+z.length}),{fullMatch:$.slice(Z,G+6),branches:q,start:Z,end:G+6}}function j2($){let Z=[],J=/@if\s*\(/g,X=J.exec($);while(X!==null){if(Z.some((G)=>X.index>G.start&&X.index<G.end)){X=J.exec($);continue}let Q=M7($,X.index);if(Q)Z.push(Q),J.lastIndex=Q.end;X=J.exec($)}return Z}function Y9($,Z,J){let X=[],Y=new RegExp(`@${Z}\\s*\\(`,"g"),Q=Y.exec($);while(Q!==null){if(X.some((V)=>Q.index>V.start&&Q.index<V.end)){Q=Y.exec($);continue}let z=Q.index,q=z+Q[0].length-1,K=L0($,"(",")",q);if(K===-1){Q=Y.exec($);continue}let W=$.slice(q+1,K),U=K+1,H=O1($,Z,J,U);if(H===-1){Q=Y.exec($);continue}let j=$.slice(U,H),B=H+`@${J}`.length;X.push({fullMatch:$.slice(z,B),name:Z,params:W,content:j,start:z,end:B}),Y.lastIndex=B,Q=Y.exec($)}return X}function R5($,Z){let J=$.slice(Z).match(/^@switch\s*/);if(!J)return null;let X=Z+J[0].length,Y=q1($,X);if(!Y)return null;let Q=Y.endPos,G=O1($,"switch","endswitch",Q);if(G===-1)return null;let z=$.slice(Q,G),q=[],K=0,W=null,U=0;while(K<z.length){let H=z.slice(K),j=H.match(/^@switch\s*\(/),B=H.match(/^@endswitch(?![a-z])/);if(j){if(U++,W)W.content+=j[0];K+=j[0].length;continue}if(B){if(U--,W)W.content+=B[0];K+=B[0].length;continue}if(U>0){if(W)W.content+=z[K];K++;continue}let V=H.match(/^@case\s*/),F=H.match(/^@default(?![a-z])/),_=H.match(/^@break(?![a-z])/);if(V&&H.startsWith("@case")){if(W)q.push(W);let O=K+V[0].length,L=q1(z,O);if(!L){K++;continue}W={type:"case",value:L.expression,content:""},K=L.endPos}else if(F&&H.startsWith("@default")){if(W)q.push(W);W={type:"default",content:""},K+=F[0].length}else if(_&&H.startsWith("@break"))K+=_[0].length;else{if(W)W.content+=z[K];K++}}if(W)q.push(W);return{fullMatch:$.slice(Z,G+10),expression:Y.expression,cases:q,start:Z,end:G+10}}function FX($){let Z=[],J=0;while(J<$.length){let X=$.indexOf("{{",J),Y=$.indexOf("{!!",J),Q=!1,G;if(X===-1&&Y===-1)break;else if(X===-1)G=Y,Q=!0;else if(Y===-1)G=X,Q=!1;else if(Y<X)G=Y,Q=!0;else G=X,Q=!1;if(!Q&&$.slice(G,G+3)==="{{{")Q=!0;let z=Q?$.slice(G,G+3)==="{{{"?"{{{":"{!!":"{{",q=Q?z==="{{{"?"}}}":"!!}":"}}",K=G+z.length,W=wX($,K,q);if(W===-1){J=G+1;continue}let U=$.slice(K,W).trim(),H=W+q.length;Z.push({fullMatch:$.slice(G,H),expression:U,start:G,end:H,isRaw:Q}),J=H}return Z}function wX($,Z,J){let X=Z,Y=null,Q={paren:0,bracket:0,brace:0},G=0;while(X<$.length){let z=$[X];if((X>0?$[X-1]:"")==="\\"&&Y){X++;continue}if((z==='"'||z==="'")&&!Y){Y=z,X++;continue}if(z===Y&&Y!=="`"){Y=null,X++;continue}if(z==="`"&&!Y){Y="`",X++;continue}if(z==="`"&&Y==="`"&&G===0){Y=null,X++;continue}if(Y==="`"&&z==="$"&&$[X+1]==="{"){G++,X+=2;continue}if(G>0){if(z==="{")G++;else if(z==="}")G--;X++;continue}if(Y){X++;continue}if(z==="(")Q.paren++;else if(z===")")Q.paren--;else if(z==="[")Q.bracket++;else if(z==="]")Q.bracket--;else if(z==="{")Q.brace++;else if(z==="}")Q.brace--;if(Q.paren===0&&Q.bracket===0&&Q.brace<=0){if($.slice(X,X+J.length)===J)return X}X++}return-1}function RX($){let Z=w5($);if(Z.length===0)return{baseExpression:"",filters:[]};let J=Z[0],X=[];for(let Y=1;Y<Z.length;Y++){let Q=NX(Z[Y]);if(Q)X.push(Q)}return{baseExpression:J,filters:X}}function NX($){let Z=$.trim();if(!Z)return null;let J=Z.indexOf("(");if(J===-1)return{name:Z,args:[]};let X=Z.slice(0,J).trim(),Y=J+1,Q=L0(Z,"(",")",J);if(Q===-1)return{name:X,args:[]};let G=Z.slice(Y,Q),z=k7(G);return{name:X,args:z}}function k7($){let Z=[],J="",X={paren:0,bracket:0,brace:0},Y=null,Q=0;for(let G=0;G<$.length;G++){let z=$[G];if((G>0?$[G-1]:"")==="\\"&&Y){J+=z;continue}if((z==='"'||z==="'")&&!Y){Y=z,J+=z;continue}if(z===Y&&Y!=="`"){Y=null,J+=z;continue}if(z==="`"&&!Y){Y="`",J+=z;continue}if(z==="`"&&Y==="`"&&Q===0){Y=null,J+=z;continue}if(Y==="`"&&z==="$"&&$[G+1]==="{"){Q++,J+="${",G++;continue}if(Q>0&&z==="{"){Q++,J+=z;continue}if(Q>0&&z==="}"){Q--,J+=z;continue}if(Y){J+=z;continue}if(z==="(")X.paren++;else if(z===")")X.paren--;else if(z==="[")X.bracket++;else if(z==="]")X.bracket--;else if(z==="{")X.brace++;else if(z==="}")X.brace--;if(z===","&&X.paren===0&&X.bracket===0&&X.brace===0){Z.push(J.trim()),J="";continue}J+=z}if(J.trim())Z.push(J.trim());return Z}function DX($,Z){let J=Z;while(J<$.length&&/\s/.test($[J]))J++;if($[J]!=="(")return null;let X=L0($,"(",")",J);if(X===-1)return null;return{params:$.slice(J+1,X),endPos:X+1}}function AX($){let Z=[],X=new X9($).tokenize().filter((Q)=>Q.type!=="WHITESPACE"&&Q.type!=="COMMENT"),Y=0;while(Y<X.length){let Q=X[Y],G=!1;if(Q.type==="IDENTIFIER"&&Q.value==="export"){if(G=!0,Y++,Y>=X.length)break}let z=X[Y];if(z.type==="IDENTIFIER"&&(z.value==="const"||z.value==="let"||z.value==="var")){let q=z.value;if(Y++,Y>=X.length)break;let K=X[Y];if(K.type==="IDENTIFIER"){let W=K.value;if(Y++,Y<X.length&&X[Y].type==="OPERATOR"&&X[Y].value==="="){Y++;let U=Y<X.length?X[Y].start:$.length,H=I7(X,Y,$);Y=H.nextIndex,Z.push({type:"variable",name:W,value:$.slice(U,H.endPos),exported:G,start:z.start,end:H.endPos})}}else if(K.type==="PUNCTUATION"&&(K.value==="{"||K.value==="[")){let W=K.start,U=K.value==="{"?"}":"]",H=L0($,K.value,U,W);if(H!==-1){let j=$.slice(W,H+1);if(Y=T7(X,H+1),Y<X.length&&X[Y].type==="OPERATOR"&&X[Y].value==="="){Y++;let B=Y<X.length?X[Y].start:$.length,V=I7(X,Y,$);Y=V.nextIndex;let F=`__stx_destructured_${Z.length}`;Z.push({type:"variable",name:F,value:`${$.slice(B,V.endPos)}; ${q} ${j} = ${F}`,exported:G,start:z.start,end:V.endPos})}}}}else if(z.type==="IDENTIFIER"&&z.value==="function"){let q=G?X[Y-1].start:z.start;if(Y++,Y>=X.length)break;let K=X[Y];if(K.type==="IDENTIFIER"){let W=K.value;Y++;let U=-1;while(Y<X.length){if(X[Y].type==="PUNCTUATION"&&X[Y].value==="{"){U=X[Y].start;break}Y++}if(U!==-1){let H=L0($,"{","}",U);if(H!==-1)Z.push({type:"function",name:W,value:$.slice(q,H+1).replace(/^export\s+/,""),exported:G,start:q,end:H+1}),Y=T7(X,H+1)}}}else Y++}return Z}function I7($,Z,J){let X=Z,Y={paren:0,bracket:0,brace:0},Q=Z<$.length?$[Z].start:J.length;while(X<$.length){let G=$[X];if(G.type==="PUNCTUATION"){if(G.value==="(")Y.paren++;else if(G.value===")")Y.paren--;else if(G.value==="[")Y.bracket++;else if(G.value==="]")Y.bracket--;else if(G.value==="{")Y.brace++;else if(G.value==="}")Y.brace--;if(G.value===";"&&Y.paren===0&&Y.bracket===0&&Y.brace===0){Q=G.start,X++;break}}if(G.type==="IDENTIFIER"&&(G.value==="const"||G.value==="let"||G.value==="var"||G.value==="function"||G.value==="export")){if(Y.paren===0&&Y.bracket===0&&Y.brace===0){Q=$[X-1]?.end??G.start;break}}Q=G.end,X++}return{nextIndex:X,endPos:Q}}function T7($,Z){for(let J=0;J<$.length;J++)if($[J].start>=Z)return J;return $.length}function MX($,Z,J){let X=$,Y=!0;while(Y){Y=!1;let Q=X.match(/@switch\s*\(/);if(!Q||Q.index===void 0)break;let G=Q.index,z=R5(X,G);if(!z)break;try{let q;if(W0(z.expression))q=K0(z.expression,Object.keys(Z))(...Object.values(Z));else q=e(z.expression,Z);let K="",W=!1;for(let U of z.cases)if(U.type==="default"){if(!W)K=U.content.trim()}else try{let H;if(U.value&&W0(U.value))H=K0(U.value,Object.keys(Z))(...Object.values(Z));else if(U.value)H=e(U.value,Z);if(q===H){K=U.content.trim(),W=!0;break}}catch{continue}X=X.substring(0,G)+K+X.substring(z.end),Y=!0}catch(q){let K=q instanceof Error?q.message:String(q),W=X0("Switch",`Error evaluating @switch expression: ${K}`,J0.EVALUATION_ERROR);X=X.substring(0,G)+W+X.substring(z.end);break}}return X}function IX($){let Z=[];return{masked:$.replace(/<script\b[\s\S]*?<\/script\s*>/gi,(X)=>{return Z.push(X),`\x00stx-script-${Z.length-1}\x00`}),scripts:Z}}function TX($,Z){if(Z.length===0)return $;return $.replace(/\u0000stx-script-(\d+)\u0000/g,(J,X)=>Z[Number(X)]??J)}function e0($,Z,J){let{masked:X,scripts:Y}=IX($);return TX(kX(X,Z,J),Y)}function kX($,Z,J){let X=$;X=MX(X,Z,J);{let Q=!0;while(Q){Q=!1;let G=X.match(/@unless\s*\(/);if(!G||G.index===void 0)break;let z=G.index,q=q1(X,z+7);if(!q)break;let K=q.endPos,W=O1(X,"unless","endunless",K);if(W===-1){console.warn(`[stx] @unless directive at position ${z} has no matching @endunless \u2014 the block was skipped. Check for typos or missing closers.`);break}let U=X.slice(K,W),H=q.expression,j=-1;{let V=0,F=/@(?:if|unless)\s*\(/g,_=/@(?:endif|endunless)(?![a-z])/g,O=/@else(?![a-z])/g,L=[],w;while((w=F.exec(U))!==null)L.push({pos:w.index,type:"open"});while((w=_.exec(U))!==null)L.push({pos:w.index,type:"close"});while((w=O.exec(U))!==null)L.push({pos:w.index,type:"else"});L.sort((R,N)=>R.pos-N.pos);for(let R of L)if(R.type==="open")V++;else if(R.type==="close")V--;else if(R.type==="else"&&V===0){j=R.pos;break}}let B;if(j!==-1){let V=U.slice(0,j),F=U.slice(j+5);B=`@if (${H})${F}@else ${V}@endif`}else B=`@if (!(${H}))${U}@endif`;X=X.substring(0,z)+B+X.substring(W+10),Q=!0}}X=D5(X,Z,J),X=A5(X,Z,J),X=N5(X,Z);let Y=()=>{let Q=j2(X);if(Q.length===0)return!1;let G=Array(Q.length);for(let K=Q.length-1;K>=0;K--){let W=Q[K];try{let U="",H=!1;for(let j of W.branches){if(H)break;if(j.type==="else")U=j.content,H=!0;else try{let B;if(j.condition&&W0(j.condition))B=K0(j.condition,Object.keys(Z))(...Object.values(Z));else if(j.condition)B=e(j.condition,Z);if(B)U=j.content,H=!0}catch(B){U=X0(j.type==="if"?"If":"Elseif",`Error in @${j.type}(${j.condition}): ${B instanceof Error?B.message:String(B)}`,J0.EVALUATION_ERROR),H=!0}}G[K]=U}catch(U){let H=U instanceof Error?U.message:String(U);G[K]=X0("If",`Error processing @if block: ${H}`,J0.EVALUATION_ERROR)}}let z=Array(Q.length*2+1),q=0;for(let K=0;K<Q.length;K++){let W=Q[K];z[K*2]=X.slice(q,W.start),z[K*2+1]=G[K],q=W.end}return z[Q.length*2]=X.slice(q),X=z.join(""),!0};while(!0){let Q=X;if(!Y())break;if(X===Q)break}return X}function E7($){let Z=0;while(Z<$.length&&/\s/.test($[Z]))Z++;if($[Z]!=="(")return null;Z++;while(Z<$.length&&/\s/.test($[Z]))Z++;let J=$[Z];if(J!=="'"&&J!=='"')return null;Z++;let X=[];while(Z<$.length){let Y=$[Z];if(Y==="\\"&&Z+1<$.length){X.push($[Z+1]),Z+=2;continue}if(Y===J){Z++;break}X.push(Y),Z++}while(Z<$.length&&/\s/.test($[Z]))Z++;if($[Z]!==")")return null;return Z++,{value:X.join(""),consumed:Z}}function N5($,Z){let J=$;function X(z,q,K,W){let U=1,H=W,j=new RegExp(`@${q}(?:\\s*\\(|\\s|$)`,"g"),B=new RegExp(`@${K}(?![a-z])`,"g");while(H<z.length&&U>0){j.lastIndex=H,B.lastIndex=H;let V=j.exec(z),F=B.exec(z),_=V?V.index:1/0,O=F?F.index:1/0;if(_<O)U++,H=_+V[0].length;else if(O<1/0){if(U--,U===0)return O;H=O+F[0].length}else break}return-1}function Y(z,q,K){let W=0,U=new RegExp(`@${q}(?:\\s*\\(|\\s|$)`,"g"),H=new RegExp(`@${K}(?![a-z])`,"g"),j=/@else(?![a-z])/g,B=[],V;while((V=U.exec(z))!==null)B.push({pos:V.index,type:"open"});while((V=H.exec(z))!==null)B.push({pos:V.index,type:"close"});while((V=j.exec(z))!==null)B.push({pos:V.index,type:"else"});B.sort((F,_)=>F.pos-_.pos);for(let F of B)if(F.type==="open")W++;else if(F.type==="close")W--;else if(F.type==="else"&&W===0)return F.pos;return-1}{let z=!0;while(z){z=!1;let q=J.match(/@auth(?:\s*\(|\s|(?=\n))/);if(!q||q.index===void 0)break;let K=q.index,W,U,H=J.slice(K+5),j=E7(H);if(j)W=j.value,U=K+5+j.consumed;else U=K+5;let B=X(J,"auth","endauth",U);if(B===-1){console.warn(`[stx] @auth directive at position ${K} has no matching @endauth \u2014 the block was skipped.`);break}let V=J.slice(U,B),F=Y(V,"auth","endauth"),_;if(!Z.auth)_=!1;else _=W?z1(`auth?.check && auth?.user?.[${W}]`,Z):z1("auth?.check",Z);let O;if(F!==-1){let L=V.slice(0,F),w=V.slice(F+5);O=_?L:w}else O=_?V:"";J=J.substring(0,K)+O+J.substring(B+8),z=!0}}{let z=!0;while(z){z=!1;let q=J.match(/@guest(?:\s*\(|\s|(?=\n))/);if(!q||q.index===void 0)break;let K=q.index,W,U,H=J.slice(K+6),j=E7(H);if(j)W=j.value,U=K+6+j.consumed;else U=K+6;let B=X(J,"guest","endguest",U);if(B===-1){console.warn(`[stx] @guest directive at position ${K} has no matching @endguest \u2014 the block was skipped.`);break}let V=J.slice(U,B),F=Y(V,"guest","endguest"),_;if(!Z.auth)_=!0;else _=W?z1(`!auth?.check || !auth?.user?.[${W}]`,Z):z1("!auth?.check",Z);let O;if(F!==-1){let L=V.slice(0,F),w=V.slice(F+5);O=_?L:w}else O=_?V:"";J=J.substring(0,K)+O+J.substring(B+9),z=!0}}function Q(z,q,K){if(Z.userCan&&typeof Z.userCan[z]==="boolean")return Z.userCan[z];if(Z.permissions?.check&&typeof Z.permissions.check==="function")try{let W=[z];if(q)W.push(q);if(K){let U=z1(K,Z);W.push(U)}return Z.permissions.check(...W)}catch{return!1}return!1}function G(z){let q=z.match(/^\s*\(\s*'([^']*)'(?:,\s*'([^']*)')?(?:,\s*([^)]*))?\)/);if(!q)return null;return{ability:q[1],type:q[2],id:q[3]?.trim(),paramsEnd:q[0].length}}for(let z of["can","cannot"]){let q=`end${z}`,K=z==="can"?"elsecan":"elsecannot",W=!0;while(W){W=!1;let U=J.match(new RegExp(`@${z}\\s*\\(`));if(!U||U.index===void 0)break;let H=U.index,j=J.slice(H+`@${z}`.length),B=G(j);if(!B)break;let V=H+`@${z}`.length+B.paramsEnd,F=X(J,z,q,V);if(F===-1){console.warn(`[stx] @${z} directive at position ${H} has no matching @${q} \u2014 the block was skipped.`);break}let _=J.slice(V,F),O=[],L=0,w=new RegExp(`@${z}\\s*\\(`,"g"),R=new RegExp(`@${q}(?![a-z])`,"g"),N=new RegExp(`@${K}\\s*\\(`,"g"),A=/@else(?![a-z])/g,T=[],D;while((D=w.exec(_))!==null)T.push({pos:D.index,type:"open"});while((D=R.exec(_))!==null)T.push({pos:D.index,type:"close"});while((D=N.exec(_))!==null)T.push({pos:D.index,type:"elseDirective"});while((D=A.exec(_))!==null)T.push({pos:D.index,type:"else"});T.sort((b,C)=>b.pos-C.pos);for(let b of T){if(b.type==="open"){L++;continue}if(b.type==="close"){L--;continue}if(L===0)O.push(b)}let M=[],k=0;for(let b=0;b<O.length;b++){let C=O[b];if(M.push({content:_.slice(k,C.pos),ability:void 0}),C.type==="elseDirective"){let f=_.slice(C.pos+`@${K}`.length),u=G(f);if(u){M[M.length-1]={content:_.slice(k,C.pos)},k=C.pos+`@${K}`.length+u.paramsEnd,M.push({content:"",ability:u.ability,type:u.type,id:u.id}),M.pop();let P=O[b+1],h=P?P.pos:_.length;M.push({content:_.slice(k,h),ability:u.ability,type:u.type,id:u.id}),k=h}}else k=C.pos+5}if(k<_.length){let b=M[M.length-1];if(O.length>0&&O[O.length-1].type==="else")M.push({content:_.slice(k),isFinalElse:!0});else if(M.length===0)M.push({content:_.slice(k)})}let I=Q(B.ability,B.type,B.id),y=z==="can"?I:!I,E="";if(y)E=M[0]?.content||"";else{let b=!1;for(let C=1;C<M.length;C++){let f=M[C];if(f.isFinalElse){E=f.content,b=!0;break}if(f.ability){let u=Q(f.ability,f.type,f.id);if(z==="can"?u:!u){E=f.content,b=!0;break}}}if(!b&&M.length>0){let C=M[M.length-1];if(C.isFinalElse)E=C.content}}J=J.substring(0,H)+E+J.substring(F+`@${q}`.length),W=!0}}return J}function D5($,Z,J){let X=$;function Y(Q,G,z,q,K){let W=!0;while(W){W=!1;let U=new RegExp(`@${G}\\s*\\(`),H=Q.match(U);if(!H||H.index===void 0)break;let j=H.index,B=q1(Q,j+`@${G}`.length);if(!B)break;let V=B.endPos,F=O1(Q,G,z,V);if(F===-1){console.warn(`[stx] @${G} directive at position ${j} has no matching @${z} \u2014 the block was skipped.`);break}let _=Q.slice(V,F),O=B.expression,L=-1,w=0,R=0;while(R<_.length){let N=_.indexOf("@",R);if(N===-1)break;let A=_.substring(N);if(/^@(?:if|unless|isset|empty)\s*\(/.test(A)){w++,R=N+1;continue}if(/^@(?:endif|endunless|endisset|endempty)(?![a-z])/.test(A)){w--,R=N+1;continue}if(w===0&&/^@else(?![a-z])/.test(A)){L=N;break}R=N+1}try{let N=q(O.trim()),A;if(L!==-1){let T=_.slice(0,L),D=_.slice(L+5);A=N?T:D}else A=N?_:"";Q=Q.substring(0,j)+A+Q.substring(F+`@${z}`.length),W=!0}catch(N){let A=N instanceof Error?N.message:String(N),T=X0(K,`Error processing @${G} directive: ${A}`,J0.EVALUATION_ERROR);Q=Q.substring(0,j)+T+Q.substring(F+`@${z}`.length);break}}return Q}return X=Y(X,"isset","endisset",(Q)=>{let G=z1(Q,Z);return G!==void 0&&G!==null},"Isset"),X=Y(X,"empty","endempty",(Q)=>{let G=z1(Q,Z);return G===void 0||G===null||G===""||G===0||G===!1||Array.isArray(G)&&G.length===0||typeof G==="object"&&G!==null&&Object.keys(G).length===0},"Empty"),X}function A5($,Z,J){let X=$,Y="development";function Q(G,z,q,K){let W=new RegExp(`@${z}(?![a-z])`,"g"),U=new RegExp(`@${q}(?![a-z])`,"g"),H=new RegExp(`^@${z}(?![a-z])`),j=new RegExp(`^@${q}(?![a-z])`),B=G,V=!0;while(V){V=!1,W.lastIndex=0;let F=W.exec(B);if(!F)break;let _=F.index,O=_+F[0].length;if(z==="env"){let I=B.substring(O).match(/^\s*\(\s*(['"])([^'"]+)\1\s*\)/);if(!I)break;O+=I[0].length,K=Y===I[2]}let L=1,w=O,R=-1;while(L>0&&w<B.length){W.lastIndex=w,U.lastIndex=w;let I=W.exec(B),y=U.exec(B),E=I?I.index:1/0,b=y?y.index:1/0;if(E<b)L++,w=E+I[0].length;else if(b<1/0){if(L--,L===0){R=b;break}w=b+y[0].length}else break}if(R===-1){console.warn(`[stx] @${z} directive at position ${_} has no matching @${q} \u2014 the block was skipped.`);break}let N=B.substring(O,R),A=-1,T=0,D=0;while(D<N.length){let I=N.indexOf("@",D);if(I===-1)break;let y=N.substring(I);if(H.test(y)){T++,D=I+1;continue}if(j.test(y)){T--,D=I+1;continue}if(T===0&&/^@else(?![a-z])/.test(y)){A=I;break}D=I+1}let M;if(A!==-1){let I=N.slice(0,A),y=N.slice(A+5);M=K?I:y}else M=K?N:"";let k=`@${q}`.length;B=B.substring(0,_)+M+B.substring(R+k),V=!0}return B}return X=Q(X,"env","endenv",!1),X=Q(X,"production","endproduction",Y==="production"),X=Q(X,"development","enddevelopment",Y==="development"),X=Q(X,"staging","endstaging",Y==="staging"),X=Q(X,"testing","endtesting",Y==="testing"),X}var M5=new WeakMap;function b7($=16){let Z=new Uint8Array($);return crypto.getRandomValues(Z),btoa(String.fromCharCode(...Z))}function F1($,Z){if(!$)return Z?.nonceGenerator?.()??b7();let J=M5.get($);if(!J)J=Z?.nonceGenerator?.()??b7(),M5.set($,J);return J}function gW($){M5.delete($)}function y7($,Z){let J=[];for(let[X,Y]of Object.entries($)){if(Y===void 0||Y===null)continue;if(typeof Y==="boolean"){if(Y)J.push(X);continue}if(Array.isArray(Y)){let Q=[...Y];if(Z&&(X==="script-src"||X==="style-src"))Q=Q.filter((G)=>!G.startsWith("'nonce-")),Q.push(`'nonce-${Z}'`);if(Q.length>0)J.push(`${X} ${Q.join(" ")}`)}}return J.join("; ")}function T5($,Z){return`<meta http-equiv="Content-Security-Policy" content="${y7($,Z).replace(/&/g,"&amp;").replace(/"/g,"&quot;")}">`}var EX={"default-src":["'self'"],"script-src":["'self'","'strict-dynamic'"],"style-src":["'self'"],"img-src":["'self'","data:","https:"],"font-src":["'self'","https:","data:"],"connect-src":["'self'"],"media-src":["'self'"],"object-src":["'none'"],"frame-src":["'none'"],"base-uri":["'self'"],"form-action":["'self'"],"frame-ancestors":["'self'"],"upgrade-insecure-requests":!0},I5={"default-src":["'self'"],"script-src":["'self'"],"style-src":["'self'","'unsafe-inline'"],"img-src":["'self'","data:","https:"],"font-src":["'self'","https:","data:"],"connect-src":["'self'","https:"],"media-src":["'self'"],"object-src":["'none'"],"frame-src":["'self'"],"base-uri":["'self'"],"form-action":["'self'"],"upgrade-insecure-requests":!0},bX={"default-src":["'self'"],"script-src":["'self'","'unsafe-inline'"],"style-src":["'self'","'unsafe-inline'"],"img-src":["'self'","data:","https:","http:"],"font-src":["'self'","https:","http:","data:"],"connect-src":["'self'","https:","http:","ws:","wss:"],"media-src":["'self'","https:","http:"],"object-src":["'none'"],"frame-src":["'self'","https:"],"base-uri":["'self'"]},yX={"default-src":["'none'"],"frame-ancestors":["'none'"]};function hW($){return{enabled:!0,directives:{strict:EX,moderate:I5,relaxed:bX,api:yX}[$]||I5,useNonce:$==="strict",addMetaTag:!0}}function uW($,Z){let J={...$};for(let[X,Y]of Object.entries(Z)){let Q=X,G=J[Q];if(Y===void 0||Y===null)continue;if(typeof Y==="boolean")J[Q]=G||Y;else if(Array.isArray(Y)){let z=Array.isArray(G)?G:[],q=[...new Set([...z,...Y])];J[Q]=q}}return J}function C7($,Z,J){if(!Z.enabled||!Z.addMetaTag)return $;if($.includes('http-equiv="Content-Security-Policy"'))return $;if(!$.includes("<head>")&&!$.includes("<head "))return $;let X=Z.useNonce?F1(J,Z):void 0,Y=T5(Z.directives,X);return $.replace(/<head([^>]*)>/,`<head$1>
3225
- ${Y}`)}function S7($,Z){let J=$;return J=J.replace(/<script(?![^>]*\ssrc=)([^>]*)>/gi,(X,Y)=>{if(Y.includes("nonce="))return X;return`<script nonce="${Z}"${Y}>`}),J=J.replace(/<style([^>]*)>/gi,(X,Y)=>{if(Y.includes("nonce="))return X;return`<style nonce="${Z}"${Y}>`}),J}function P7($,Z,J,X){let Y=$,Q=X.csp;if(Y=Y.replace(/@csp\b/g,()=>{if(!Q?.enabled||!Q.directives)return"<!-- CSP not configured -->";let G=Q.useNonce?F1(Z,Q):void 0;return T5(Q.directives,G)}),Y=Y.replace(/@cspNonce\b/g,()=>{if(!Q?.enabled||!Q.useNonce)return"";return F1(Z,Q)}),Q?.enabled&&Q.useNonce)Z.cspNonce=F1(Z,Q);return Y}var CX={name:"csp",handler:($,Z,J,X)=>{let Q=J.__stx_options?.csp;if(!Q?.enabled||!Q.directives)return"<!-- CSP not configured -->";let G=Q.useNonce?F1(J,Q):void 0;return T5(Q.directives,G)},hasEndTag:!1,description:"Insert Content-Security-Policy meta tag"},SX={name:"cspNonce",handler:($,Z,J,X)=>{let Q=J.__stx_options?.csp;if(!Q?.enabled||!Q.useNonce)return"";return F1(J,Q)},hasEndTag:!1,description:"Output the current CSP nonce value"};function dW(){return[CX,SX]}function mW($){let Z=[];if($["script-src"]?.includes("'unsafe-inline'"))Z.push("CSP: Using unsafe-inline in script-src significantly reduces XSS protection");if($["script-src"]?.includes("'unsafe-eval'"))Z.push("CSP: Using unsafe-eval in script-src allows eval() and related functions");if(!$["default-src"])Z.push("CSP: No default-src specified. Recommend adding default-src as a fallback");if($["default-src"]?.includes("*"))Z.push("CSP: Using * in default-src provides minimal protection");if(!$["object-src"]&&!$["default-src"]?.includes("'none'"))Z.push("CSP: Consider adding object-src: none to block plugins");if(!$["base-uri"])Z.push("CSP: Consider adding base-uri to prevent base tag injection attacks");for(let[J,X]of Object.entries($))if(Array.isArray(X)&&X.includes("http:"))Z.push(`CSP: Using http: in ${J} allows insecure resources`);return Z}function PX($=!1){return $?"Content-Security-Policy-Report-Only":"Content-Security-Policy"}function lW($,Z){if(!$.enabled)return{};let J=$.useNonce?F1(Z,$):void 0,X=y7($.directives,J);return{[PX($.reportOnly)]:X}}var cW={enabled:!1,reportOnly:!1,directives:I5,useNonce:!1,addMetaTag:!0};import vX from"crypto";var fX=40,v7="_token",k5=null;function xX($=fX){let Z=vX.randomBytes(Math.ceil($/2)).toString("hex").slice(0,$);return k5=Z,Z}function gX(){if(!k5)xX();return k5}function hX($=v7){let Z=gX();return`<input type="hidden" name="${$}" value="${Z}">`}function f7($){return $.replace(/@csrf(?:\((['"])([^'"]*)\1\))?/g,(Z,J,X)=>{return hX(X||v7)})}async function x7($,Z,J,X){if(!X.customDirectives||X.customDirectives.length===0)return $;let Y=$;for(let Q of X.customDirectives){if(!Q.name||typeof Q.handler!=="function"){if(X.debug)console.warn("Invalid custom directive:",Q);continue}if(Q.hasEndTag)Y=await uX(Y,Q,Z,J,X);else Y=await dX(Y,Q,Z,J,X)}return Y}async function uX($,Z,J,X,Y){let{name:Q,handler:G}=Z,z=`@${Q}`,q=`@end${Q}`,K=$,W=v1(`${z}(?:\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\))?([\\s\\S]*?)${q}`,"g"),U=[],H=W.exec(K);while(H!==null){let[j,B="",V=""]=H,F=H.index||0;try{let _=B?g7(B):[],O=V.trim(),L=await G(O,_,J,X);U.push({original:j,processed:L,startIndex:F})}catch(_){let O=_ instanceof Error?_.message:String(_);if(Y.debug)console.error(`Error processing custom directive @${Q}:`,_);U.push({original:j,processed:X0("CustomDirective",`Error in @${Q}${B?`(${B})`:""}: ${O}`,J0.EVALUATION_ERROR),startIndex:F})}H=W.exec(K)}for(let j=U.length-1;j>=0;j--){let{original:B,processed:V}=U[j];K=K.replace(B,V)}return K}async function dX($,Z,J,X,Y){let{name:Q,handler:G}=Z,z=$,q=v1(`@${Q}\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\)`,"g"),K=[],W=q.exec(z);while(W!==null){let[j,B=""]=W,V=W.index||0;try{let F=g7(B),_=await G("",F,J,X);K.push({original:j,processed:_,startIndex:V})}catch(F){let _=F instanceof Error?F.message:String(F);if(Y.debug)console.error(`Error processing custom directive @${Q}:`,F);K.push({original:j,processed:X0("CustomDirective",`Error in @${Q}(${B}): ${_}`,J0.EVALUATION_ERROR),startIndex:V})}W=q.exec(z)}let U=v1(`@${Q}(?!\\w)(?!\\s*\\()`,"g"),H=U.exec(z);while(H!==null){let[j]=H,B=H.index||0;try{let V=await G("",[],J,X);K.push({original:j,processed:V,startIndex:B})}catch(V){let F=V instanceof Error?V.message:String(V);if(Y.debug)console.error(`Error processing custom directive @${Q}:`,V);K.push({original:j,processed:X0("CustomDirective",`Error in @${Q}: ${F}`,J0.EVALUATION_ERROR),startIndex:B})}H=U.exec(z)}for(let j=K.length-1;j>=0;j--){let{original:B,processed:V}=K[j];z=z.replace(B,V)}return z}function g7($){if(!$.trim())return[];let Z=[],J="",X=!1,Y="";for(let Q=0;Q<$.length;Q++){let G=$[Q];if((G==='"'||G==="'")&&(Q===0||$[Q-1]!=="\\"))if(!X)X=!0,Y=G;else if(G===Y)X=!1;else J+=G;else if(G===","&&!X)Z.push(J.trim()),J="";else J+=G}if(J.trim())Z.push(J.trim());return Z.map((Q)=>{let G=Q.trim();if(G.startsWith('"')&&G.endsWith('"')||G.startsWith("'")&&G.endsWith("'"))return G.substring(1,G.length-1);return G})}var h7=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,u7=/^[A-Za-z_$][\w$]*$/,mX=new Set(["light","dark","system"]);function w1($,Z){if(typeof $!=="string"||$.length===0)throw Error(`@appearanceBootstrap ${Z} must be a non-empty string`)}function lX($){if(!$||typeof $!=="object"||Array.isArray($))throw Error("@appearanceBootstrap expects an options object");let Z=$,J=Z.appearance,X=Z.colorMode;if(w1(Z.storageKey,"storageKey"),!J||typeof J!=="object"||Array.isArray(J))throw Error("@appearanceBootstrap appearance must be an object");if(!X||typeof X!=="object"||Array.isArray(X))throw Error("@appearanceBootstrap colorMode must be an object");if(w1(J.key,"appearance.key"),w1(J.attribute,"appearance.attribute"),w1(J.default,"appearance.default"),w1(X.key,"colorMode.key"),w1(X.attribute,"colorMode.attribute"),w1(X.default,"colorMode.default"),!u7.test(J.key)||!u7.test(X.key))throw Error("@appearanceBootstrap preference keys must be JavaScript property names");if(!h7.test(J.attribute)||!h7.test(X.attribute))throw Error("@appearanceBootstrap attributes must be lowercase data attribute names");if(!Array.isArray(J.allowed)||J.allowed.length===0||J.allowed.some((Y)=>typeof Y!=="string"||Y.length===0))throw Error("@appearanceBootstrap appearance.allowed must contain one or more strings");if(!J.allowed.includes(J.default))throw Error("@appearanceBootstrap appearance.default must be in appearance.allowed");if(!mX.has(X.default))throw Error("@appearanceBootstrap colorMode.default must be light, dark, or system");return{storageKey:Z.storageKey,appearance:{key:J.key,attribute:J.attribute,allowed:[...new Set(J.allowed)],default:J.default},colorMode:{key:X.key,attribute:X.attribute,default:X.default}}}function cX($){return JSON.stringify($).replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/&/g,"\\u0026").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}function pX($){return`<script data-stx-scoped data-stx-appearance-bootstrap>(function(){"use strict";const config=${cX($)};const root=document.documentElement;const MODES=["light","dark","system"];function read(){let stored={};try{const raw=localStorage.getItem(config.storageKey);const parsed=raw?JSON.parse(raw):{};if(parsed&&typeof parsed==="object"&&!Array.isArray(parsed))stored=parsed}catch{}return stored}function write(stored){try{localStorage.setItem(config.storageKey,JSON.stringify(stored))}catch{}}function resolve(){const stored=read();return{appearance:config.appearance.allowed.includes(stored[config.appearance.key])?stored[config.appearance.key]:config.appearance.default,colorMode:MODES.includes(stored[config.colorMode.key])?stored[config.colorMode.key]:config.colorMode.default}}function prefersDark(){try{return matchMedia("(prefers-color-scheme: dark)").matches}catch{return false}}function apply(){const state=resolve();const dark=state.colorMode==="dark"||(state.colorMode==="system"&&prefersDark());root.setAttribute("data-"+config.appearance.attribute,state.appearance);root.setAttribute("data-"+config.colorMode.attribute,state.colorMode);root.classList.toggle("dark",dark);root.dataset.theme=dark?"dark":"light";state.dark=dark;try{window.dispatchEvent(new CustomEvent("stx:appearance",{detail:state}))}catch{}return state}function store(key,allowed,value){if(allowed.includes(value)){const stored=read();stored[key]=value;write(stored)}return apply()}window.__stxAppearance={config:config,read:read,resolve:resolve,apply:apply,setColorMode:function(mode){return store(config.colorMode.key,MODES,mode)},setAppearance:function(name){return store(config.appearance.key,config.appearance.allowed,name)},watchSystem:function(){try{matchMedia("(prefers-color-scheme: dark)").addEventListener("change",function(){if(resolve().colorMode==="system")apply()})}catch{}}};apply()}());</script>`}function iX($,Z){let J=1,X=null,Y=!1;for(let Q=Z+1;Q<$.length;Q++){let G=$[Q];if(Y){Y=!1;continue}if(X){if(G==="\\")Y=!0;else if(G===X)X=null;continue}if(G==='"'||G==="'"||G==="`"){X=G;continue}if(G==="(")J++;else if(G===")"&&--J===0)return Q}return-1}function d7($,Z){let J=$,X=/@appearanceBootstrap\s*\(/g,Y;while((Y=X.exec(J))!==null){let Q=Y.index+Y[0].length-1,G=iX(J,Q);if(G===-1)throw Error("@appearanceBootstrap has an unclosed options object");let z=J.slice(Q+1,G).trim(),q=e(`(${z})`,Z),K=pX(lX(q));J=J.slice(0,Y.index)+K+J.slice(G+1),X.lastIndex=Y.index+K.length}return J}import nX from"crypto";function O0($){return String($??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}var b5={input:"form-control",inputError:"is-invalid",checkInput:"form-check-input",label:"form-label",errorFeedback:"invalid-feedback"};function sX($){return{...b5,...$.forms?.classes}}function Q9($,Z,J,X){let Y=$||Z;return J?`${Y} ${X}`:Y}function m0($){return String($).replace(/\[\]$/,"").replace(/[^\w.:-]+/g,"-").replace(/^-+|-+$/g,"")}function f1($,Z){if(/\bid\s*=/i.test($))return"";return` id="${O0(Z)}"`}function E5($,Z,J){if(!Z)return"";let X="";if(!/\baria-invalid\s*=/i.test(J))X+=' aria-invalid="true"';if(!/\baria-describedby\s*=/i.test(J))X+=` aria-describedby="${O0(`${m0($)}-error`)}"`;return X}function oX(){return nX.randomUUID()}function ZU($,Z,J,X){let Y=sX(X),Q=$;return Q=aX(Q,Z),Q=_2(Q,Z),Q=y5(Q,Z,Y),Q=C5(Q,Z,Y),Q}function _2($,Z){let J=$;return J=J.replace(/@csrf/g,()=>{if(!Z.csrf||typeof Z.csrf!=="object"){let X=oX();Z.csrf={token:X}}if(Z.csrf.field)return Z.csrf.field;if(Z.csrf.token)return`<input type="hidden" name="_token" value="${O0(Z.csrf.token)}">`;return'<input type="hidden" name="_token" value="">'}),J=J.replace(/@method\(['"]([^'"]+)['"]\)/g,(X,Y)=>{let Q=Y.toUpperCase();if(Y&&!["GET","POST"].includes(Q))return`<input type="hidden" name="_method" value="${O0(Q)}">`;return X}),J}function y5($,Z,J=b5){let X=$;return X=X.replace(/@form\(\s*(?:(?:'([^']+)'|"([^"]+)")\s*)?(?:,\s*(?:'([^']+)'|"([^"]+)")?)?\s*(?:,\s*\{([^}]+)\}\s*)?\)/g,(Y,Q,G,z,q,K="")=>{let W=Q||G||"POST",U=z||q||"",H=K1(K),j=W.toUpperCase(),B=["GET","POST"].includes(j)?j:"POST",V=`<form method="${O0(B)}" action="${O0(U)}"${H?` ${H}`:""}>`;if(V+=`
3226
- ${_2("@csrf",Z)}`,!["GET","POST"].includes(j))V+=`
3227
- ${_2(`@method('${j}')`,Z)}`;return V}),X=X.replace(/@endform/g,"</form>"),X=X.replace(/@input\(\s*(?:'([^']+)'|"([^"]+)")\s*(?:,\s*(?:(?:'([^']*)'|"([^"]*)")\s*)?)?(?:,\s*\{([^}]+)\})?\s*\)/g,(Y,Q,G,z,q,K="")=>{let W=Q||G||"",U=z||q||"",H=K1(K),j=B2(W,Z),B=j!==void 0&&j!==null?j:U||"",V=H.match(/type=['"]([^'"]+)['"]/i),F=V?V[1]:"text",_=V2(W,Z),O=H.match(/class=['"]([^'"]+)['"]/i),L=Q9(O?O[1]:"",J.input,_,J.inputError),w=H.replace(/class=['"][^'"]+['"]/i,"");return w=w.replace(/type=['"][^'"]+['"]/i,""),`<input type="${O0(F)}" name="${O0(W)}"${f1(H,m0(W))} value="${O0(B)}" class="${L}"${E5(W,_,H)}${w?` ${w}`:""}>`}),X=X.replace(/@textarea\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)([\s\S]*?)@endtextarea/g,(Y,Q,G="",z="")=>{let q=K1(G),K=B2(Q,Z)||z.trim(),W=V2(Q,Z),U=q.match(/class=['"]([^'"]+)['"]/i),H=Q9(U?U[1]:"",J.input,W,J.inputError),j=q.replace(/class=['"][^'"]+['"]/i,"");return`<textarea name="${O0(Q)}"${f1(q,m0(Q))} class="${H}"${E5(Q,W,q)}${j?` ${j}`:""}>${O0(K)}</textarea>`}),X=X.replace(/@select\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)([\s\S]*?)@endselect/g,(Y,Q,G="",z)=>{let q=K1(G),K=B2(Q,Z),W=V2(Q,Z),U=q.match(/class=['"]([^'"]+)['"]/i),H=Q9(U?U[1]:"",J.input,W,J.inputError),j=q.replace(/class=['"][^'"]+['"]/i,""),B=z;if(K!==void 0)B=z.replace(/(<option[^>]*value=['"]([^'"]+)['"][^>]*>)/gi,(V,F,_)=>{if((Array.isArray(K)?K.some((L)=>String(L)===_):String(K)===_)&&!F.includes("selected"))return F.replace(/(<option)/,"$1 selected");return V});return`<select name="${O0(Q)}"${f1(q,m0(Q))} class="${H}"${E5(Q,W,q)}${j?` ${j}`:""}>${B}</select>`}),X=X.replace(/@checkbox\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?(?:,\s*\{([^}]+)\})?\)/g,(Y,Q,G,z="")=>{let q=G===void 0?"1":G,K=G===void 0?m0(Q):`${m0(Q)}-${m0(q)}`,W=K1(z),U=B2(Q,Z),H=U!==void 0&&(Array.isArray(U)?U.some((F)=>String(F)===q):U===!0||String(U)===q),j=W.match(/class=['"]([^'"]+)['"]/i),B=j?j[1]:J.checkInput,V=W.replace(/class=['"][^'"]+['"]/i,"");return`<input type="checkbox" name="${O0(Q)}"${f1(W,K)} value="${O0(q)}" class="${B}"${H?" checked":""}${V?` ${V}`:""}>`}),X=X.replace(/@radio\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)/g,(Y,Q,G,z="")=>{let q=K1(z),K=B2(Q,Z),W=K!==void 0&&K===G,U=q.match(/class=['"]([^'"]+)['"]/i),H=U?U[1]:J.checkInput,j=q.replace(/class=['"][^'"]+['"]/i,"");return`<input type="radio" name="${O0(Q)}"${f1(q,`${m0(Q)}-${m0(G)}`)} value="${O0(G)}" class="${H}"${W?" checked":""}${j?` ${j}`:""}>`}),X=X.replace(/@file\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)/g,(Y,Q,G="")=>{let z=K1(G),q=z.match(/accept=['"]([^'"]+)['"]/i),K=q?q[1]:"",W=z.includes("multiple"),U=V2(Q,Z),H=z.match(/class=['"]([^'"]+)['"]/i),j=Q9(H?H[1]:"",J.input,U,J.inputError),B=z.replace(/class=['"][^'"]+['"]/gi,"").replace(/accept=['"][^'"]+['"]/gi,"").replace(/\bmultiple\b/gi,"").trim(),V=[`<input type="file" name="${O0(Q)}"${f1(z,m0(Q))}`,`class="${j}"`];if(K)V.push(`accept="${O0(K)}"`);if(W)V.push("multiple");if(B)V.push(B);return`${V.join(" ")}>`}),X=X.replace(/@label\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)([\s\S]*?)@endlabel/g,(Y,Q,G="",z)=>{let q=K1(G),K=q.match(/class=['"]([^'"]+)['"]/i),W=K?K[1]:J.label,U=q.replace(/class=['"][^'"]+['"]/i,"");return`<label for="${O0(m0(Q))}" class="${W}"${U?` ${U}`:""}>${z}</label>`}),X}function C5($,Z,J=b5){return $.replace(/@error\(['"]([^'"]+)['"]\)([\s\S]*?)@enderror/g,(X,Y,Q)=>{try{if(V2(Y,Z)){let G=Q.replace(/\{\{([^}]+)\}\}/g,(z,q)=>{try{if(q.trim()==="$message"||q.trim()==="message")return m7(Y,Z);if(q.trim().includes("errors.first")||q.trim().includes("$errors.first")){if(typeof Z.errors?.first==="function")return Z.errors.first(Y);return m7(Y,Z)}let K=q.trim();if(W0(K)){let W=e(K,Z);return W!==void 0?String(W):K}return K}catch{return q}});return`<div id="${O0(`${m0(Y)}-error`)}" role="alert">${G}</div>`}return""}catch(G){return console.error("Error processing @error directive:",G),X}})}function V2($,Z){if(!Z.errors)return!1;if(typeof Z.errors.has==="function")return Z.errors.has($);if(typeof Z.errors==="object")return Object.prototype.hasOwnProperty.call(Z.errors,$);return!1}function m7($,Z){if(!Z.errors)return"";if(typeof Z.errors.get==="function")return Z.errors.get($);if(typeof Z.errors==="object"&&Object.prototype.hasOwnProperty.call(Z.errors,$)){let J=Z.errors[$];return Array.isArray(J)?J[0]:String(J)}return""}function B2($,Z){let J;if(Z.old&&typeof Z.old==="function")return Z.old($);if(Z.old&&typeof Z.old==="object")return Z.old[$];if($.endsWith("[]")){let X=$.slice(0,-2);if(J=Z[X],J!==void 0)return J}return Z[$]}function K1($){if(!$.trim())return"";let Z=[],J=$.trim(),X=/([\w-]+)\s*:\s*(['"]?)([^,'"]*)\2(?:\s*,\s*|\s*$)/g,Y;while((Y=X.exec(J))!==null){let[,Q,,G]=Y;Z.push(`${Q}="${G.trim()}"`)}return Z.join(" ")}var l7={required:($,Z,J)=>{if($===void 0||$===null||$===""||Array.isArray($)&&$.length===0)return`The ${J} field is required.`;return null},email:($,Z,J)=>{if(!$)return null;if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String($)))return`The ${J} field must be a valid email address.`;return null},min:($,Z,J)=>{if(!$)return null;let X=Number(Z[0]);if(typeof $==="string"&&$.length<X)return`The ${J} field must be at least ${X} characters.`;if(typeof $==="number"&&$<X)return`The ${J} field must be at least ${X}.`;if(Array.isArray($)&&$.length<X)return`The ${J} field must have at least ${X} items.`;return null},max:($,Z,J)=>{if(!$)return null;let X=Number(Z[0]);if(typeof $==="string"&&$.length>X)return`The ${J} field must not exceed ${X} characters.`;if(typeof $==="number"&&$>X)return`The ${J} field must not exceed ${X}.`;if(Array.isArray($)&&$.length>X)return`The ${J} field must not have more than ${X} items.`;return null},confirmed:($,Z,J)=>{if(Z[0]!==void 0&&$!==Z[0])return`The ${J} confirmation does not match.`;return null},numeric:($,Z,J)=>{if(!$)return null;if(Number.isNaN(Number($)))return`The ${J} field must be a number.`;return null},integer:($,Z,J)=>{if(!$)return null;if(!Number.isInteger(Number($)))return`The ${J} field must be an integer.`;return null},alpha:($,Z,J)=>{if(!$)return null;if(!/^[a-z]+$/i.test(String($)))return`The ${J} field must only contain letters.`;return null},alphanumeric:($,Z,J)=>{if(!$)return null;if(!/^[a-z0-9]+$/i.test(String($)))return`The ${J} field must only contain letters and numbers.`;return null},url:($,Z,J)=>{if(!$)return null;try{return new URL(String($))?null:null}catch{return`The ${J} field must be a valid URL.`}},regex:($,Z,J)=>{if(!$)return null;try{if(!new RegExp(Z[0]).test(String($)))return`The ${J} field format is invalid.`;return null}catch{return`The ${J} field has an invalid validation pattern.`}},in:($,Z,J)=>{if(!$)return null;if(!Z.includes(String($)))return`The ${J} field must be one of: ${Z.join(", ")}.`;return null},notIn:($,Z,J)=>{if(!$)return null;if(Z.includes(String($)))return`The ${J} field must not be: ${Z.join(", ")}.`;return null},date:($,Z,J)=>{if(!$)return null;let X=new Date($);if(Number.isNaN(X.getTime()))return`The ${J} field must be a valid date.`;return null},before:($,Z,J)=>{if(!$)return null;let X=new Date($),Y=new Date(Z[0]);if(X>=Y)return`The ${J} field must be before ${Z[0]}.`;return null},after:($,Z,J)=>{if(!$)return null;let X=new Date($),Y=new Date(Z[0]);if(X<=Y)return`The ${J} field must be after ${Z[0]}.`;return null}};function JU($,Z){l7[$]=Z}function S5($){let[Z,...J]=$.split(":"),X=J.length>0?J.join(":").split(","):[];return{name:Z.trim(),params:X}}function rX($,Z,J,X={}){let Y=[],Q=J.split("|").map((G)=>G.trim()).filter(Boolean);for(let G of Q){let z=S5(G),q=l7[z.name];if(!q){console.warn(`Unknown validation rule: ${z.name}`);continue}if(z.name==="confirmed"){let W=`${$}_confirmation`;z.params=[X[W]]}let K=q(Z,z.params||[],$);if(K)Y.push(z.message||K)}return{field:$,valid:Y.length===0,errors:Y}}function XU($,Z){let J={};for(let[X,Y]of Object.entries(Z)){let Q=rX(X,$[X],Y,$);if(!Q.valid)J[X]=Q.errors}return J}function aX($,Z){return $.replace(/@validate\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]*)\})?\s*\)/g,(J,X,Y,Q)=>{let G=Y.split("|").map((q)=>q.trim()),z=[];for(let q of G){let K=S5(q);switch(K.name){case"required":z.push("required");break;case"email":z.push('type="email"');break;case"url":z.push('type="url"');break;case"numeric":case"integer":if(z.push('type="number"'),K.name==="integer")z.push('step="1"');break;case"min":if(K.params?.[0])z.push(`minlength="${K.params[0]}"`);break;case"max":if(K.params?.[0])z.push(`maxlength="${K.params[0]}"`);break;case"regex":if(K.params?.[0])z.push(`pattern="${K.params[0]}"`);break}}return`<!-- @validate:${X}:${Y} -->${z.length>0?`<!-- attrs:${z.join(" ")} -->`:""}`})}var c7={required:{name:"required",validate:($)=>{if($===null||$===void 0||$==="")return"This field is required";if(Array.isArray($)&&$.length===0)return"This field is required";return!0},toHtml5:()=>["required"],message:"This field is required"},email:{name:"email",validate:($)=>{if(!$)return!0;return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String($))||"Please enter a valid email address"},toHtml5:()=>['type="email"'],message:"Please enter a valid email address"},url:{name:"url",validate:($)=>{if(!$)return!0;try{return new URL(String($)).protocol.startsWith("http")||"Please enter a valid URL"}catch{return"Please enter a valid URL"}},toHtml5:()=>['type="url"'],message:"Please enter a valid URL"},numeric:{name:"numeric",validate:($)=>{if(!$)return!0;return!Number.isNaN(Number($))||"Please enter a number"},toHtml5:()=>['type="number"'],message:"Please enter a number"},integer:{name:"integer",validate:($)=>{if(!$)return!0;let Z=Number($);return Number.isInteger(Z)||"Please enter a whole number"},toHtml5:()=>['type="number"','step="1"'],message:"Please enter a whole number"},alpha:{name:"alpha",validate:($)=>{if(!$)return!0;return/^[a-z]+$/i.test(String($))||"Please enter only letters"},toHtml5:()=>['pattern="[a-zA-Z]+"'],message:"Please enter only letters"},alphanumeric:{name:"alphanumeric",validate:($)=>{if(!$)return!0;return/^[a-z0-9]+$/i.test(String($))||"Please enter only letters and numbers"},toHtml5:()=>['pattern="[a-zA-Z0-9]+"'],message:"Please enter only letters and numbers"},min:{name:"min",validate:($,Z)=>{if(!$)return!0;let J=Number(Z[0]);if(typeof $==="string")return $.length>=J||`Must be at least ${J} characters`;if(typeof $==="number")return $>=J||`Must be at least ${J}`;if(Array.isArray($))return $.length>=J||`Must have at least ${J} items`;return!0},toHtml5:($)=>[`minlength="${$[0]}"`,`min="${$[0]}"`],message:"Must be at least {{param}} characters"},max:{name:"max",validate:($,Z)=>{if(!$)return!0;let J=Number(Z[0]);if(typeof $==="string")return $.length<=J||`Must be no more than ${J} characters`;if(typeof $==="number")return $<=J||`Must be no more than ${J}`;if(Array.isArray($))return $.length<=J||`Must have no more than ${J} items`;return!0},toHtml5:($)=>[`maxlength="${$[0]}"`,`max="${$[0]}"`],message:"Must be no more than {{param}} characters"},between:{name:"between",validate:($,Z)=>{if(!$)return!0;let[J,X]=Z.map(Number);if(typeof $==="string")return $.length>=J&&$.length<=X||`Must be between ${J} and ${X} characters`;if(typeof $==="number")return $>=J&&$<=X||`Must be between ${J} and ${X}`;return!0},toHtml5:($)=>[`minlength="${$[0]}"`,`maxlength="${$[1]}"`],message:"Must be between {{min}} and {{max}}"},confirmed:{name:"confirmed",validate:($,Z,J)=>{let X=Object.keys(J);for(let Y of X)if(Y.endsWith("_confirmation")&&J[Y]===$)return!0;return"Confirmation does not match"},message:"Confirmation does not match"},in:{name:"in",validate:($,Z)=>{if(!$)return!0;return Z.includes(String($))||`Must be one of: ${Z.join(", ")}`},message:"Must be one of: {{values}}"},notIn:{name:"notIn",validate:($,Z)=>{if(!$)return!0;return!Z.includes(String($))||`Must not be: ${Z.join(", ")}`},message:"Must not be: {{values}}"},regex:{name:"regex",validate:($,Z)=>{if(!$)return!0;try{return new RegExp(Z[0]).test(String($))||"Invalid format"}catch{return"Invalid format"}},toHtml5:($)=>[`pattern="${$[0]}"`],message:"Invalid format"},date:{name:"date",validate:($)=>{if(!$)return!0;let Z=new Date(String($));return!Number.isNaN(Z.getTime())||"Please enter a valid date"},toHtml5:()=>['type="date"'],message:"Please enter a valid date"},before:{name:"before",validate:($,Z)=>{if(!$)return!0;let J=new Date(String($)),X=new Date(Z[0]);return J<X||`Must be before ${Z[0]}`},toHtml5:($)=>[`max="${$[0]}"`],message:"Must be before {{date}}"},after:{name:"after",validate:($,Z)=>{if(!$)return!0;let J=new Date(String($)),X=new Date(Z[0]);return J>X||`Must be after ${Z[0]}`},toHtml5:($)=>[`min="${$[0]}"`],message:"Must be after {{date}}"},size:{name:"size",validate:($,Z)=>{if(!$)return!0;let J=Number(Z[0]);if(typeof $==="string")return $.length===J||`Must be exactly ${J} characters`;if(Array.isArray($))return $.length===J||`Must have exactly ${J} items`;return!0},message:"Must be exactly {{size}}"},phone:{name:"phone",validate:($)=>{if(!$)return!0;return/^\+?\(?\d{1,4}\)?[-\s./\d]*$/.test(String($))||"Please enter a valid phone number"},toHtml5:()=>['type="tel"','pattern="\\+?\\(?\\d{1,4}\\)?[-\\s./\\d]*"'],message:"Please enter a valid phone number"}};function YU($){c7[$.name]=$}function tX($,Z,J={}){let X=[],Y=Z.split("|").map((Q)=>Q.trim());for(let Q of Y){let G=S5(Q),z=c7[G.name];if(!z){console.warn(`Unknown validation rule: ${G.name}`);continue}let q=z.validate($,G.params||[],J);if(q!==!0)X.push(q)}return{valid:X.length===0,errors:X}}function QU($,Z){let J={},X=!0;for(let[Y,Q]of Object.entries(Z)){let G=tX($[Y],Q,$);if(!G.valid)X=!1,J[Y]=G.errors}return{valid:X,errors:J}}function GU($,Z){let J=JSON.stringify(Z);return`
3228
- <script>
3229
- (function() {
3230
- const form = document.getElementById('${$}');
3231
- if (!form) return;
3232
-
3233
- const rules = ${J};
3234
- const validators = {
3235
- required: (v) => v !== null && v !== undefined && v !== '' ? true : 'This field is required',
3236
- email: (v) => !v || /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(v) ? true : 'Please enter a valid email',
3237
- url: (v) => { if (!v) return true; try { new URL(v); return true; }
3238
- catch { return 'Please enter a valid URL'; } },
3239
- numeric: (v) => !v || !isNaN(Number(v)) ? true : 'Please enter a number',
3240
- integer: (v) => !v || Number.isInteger(Number(v)) ? true : 'Please enter a whole number',
3241
- min: (v, p) => !v || (typeof v === 'string' ? v.length >= p : v >= p) ? true : 'Too short/small',
3242
- max: (v, p) => !v || (typeof v === 'string' ? v.length <= p : v <= p) ? true : 'Too long/large',
3243
- regex: (v, p) => !v || new RegExp(p).test(v) ? true : 'Invalid format',
3244
- };
3245
-
3246
- form.addEventListener('submit', function(e) {
3247
- let valid = true;
3248
- const errors = {};
3249
-
3250
- for (const [field, fieldRules] of Object.entries(rules)) {
3251
- const input = form.querySelector('[name="' + field + '"]');
3252
- if (!input) continue;
3253
-
3254
- const value = input.value;
3255
- const ruleList = fieldRules.split('|');
3256
-
3257
- for (const rule of ruleList) {
3258
- const [name, param] = rule.split(':');
3259
- const validator = validators[name];
3260
- if (validator) {
3261
- const result = validator(value, param);
3262
- if (result !== true) {
3263
- valid = false;
3264
- errors[field] = errors[field] || [];
3265
- errors[field].push(result);
3266
- input.classList.add('is-invalid');
3267
- break;
3268
- }
3269
- }
3270
- }
3271
- }
3272
-
3273
- if (!valid) {
3274
- e.preventDefault();
3275
- console.log('Validation errors:', errors);
3276
- }
3277
- });
3278
- })();
3279
- </script>`.trim()}var L2=/<\/?template\b[^>]*>/gi,eX=/(?:^|\s)(?:id\s*=|(?:x-|[@:])(?:for|if|else(?:-if)?)(?=\s|=|$)|#[\w-]+(?:\s*=|\s|$)|v-slot(?::[\w-]+)?(?=\s|=|$)|slot\s*=)/i;function $Y($){let Z=$.replace(/^<template\b/i,"").replace(/>$/,"");return eX.test(Z)}function G9($){L2.lastIndex=0;let Z;while((Z=L2.exec($))!==null){if(Z[0].startsWith("</")||$Y(Z[0]))continue;let J=Z.index,X=L2.lastIndex,Y=1,Q;while((Q=L2.exec($))!==null)if(Q[0].startsWith("</")){if(Y--,Y===0){let G=Q.index;return{start:J,openEnd:X,closeStart:G,end:L2.lastIndex,content:$.slice(X,G)}}}else Y++;return null}return null}import Q0 from"path";import{existsSync as CY}from"fs";import z9 from"fs";import U0 from"path";var p7=new Map;function i7($,Z=!0){let J=p7.get($);if(Z&&J)return J;let X=new Map,Y=[U0.join($,"src"),U0.join($,"dist"),$];function Q(G,z){if(z>6)return;let q;try{q=z9.readdirSync(G,{withFileTypes:!0})}catch{return}for(let K of q){let W=U0.join(G,K.name);if(K.isDirectory()){if(K.name==="node_modules"||K.name.startsWith("."))continue;Q(W,z+1)}else if(K.isFile()&&K.name.endsWith(".stx")){let U=K.name.slice(0,-4);if(!X.has(U))X.set(U,W);let H=U.toLowerCase();if(!X.has(H))X.set(H,W);let j=U.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(!X.has(j))X.set(j,W)}}}for(let G of Y)if(Q(G,0),X.size>0)break;if(Z)p7.set($,X);return X}function n7($,Z){if($.startsWith(".")||$.startsWith("/"))return null;let J=Z;while(!0){let X=U0.join(J,"node_modules",$);try{if(z9.statSync(X).isDirectory())return X}catch{}let Y=U0.dirname(J);if(Y===J)return null;J=Y}}function s7($,Z,J={}){return[U0.resolve(U0.dirname(Z),`${$}.stx`),U0.resolve(U0.dirname(Z),$),U0.resolve(J.componentsDir||"components",`${$}.stx`),U0.resolve(J.componentsDir||"components",$),$.endsWith(".stx")?$:`${$}.stx`]}function o7($){let Z=$.endsWith(".stx")?$.slice(0,-4):$,J=Z.split("-").map((Y)=>Y.charAt(0).toUpperCase()+Y.slice(1)).join(""),X=Z.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();return[Z,J,X]}function P5($,Z){let[J,X,Y]=o7($);for(let Q of[J,J.toLowerCase(),X,Y]){let G=Z?.__importedComponents?.get(Q);if(G!==void 0)return G}}function*v5($,Z,J={},X){let Y=o7($);if(Y[0].startsWith("./")||Y[0].startsWith("../")){yield U0.resolve(U0.dirname(Z),`${Y[0]}.stx`);return}let Q=[...new Set(Y.map((q)=>`${q}.stx`))],G=J.projectRoot||process.cwd(),z=[...X?.__originalFilePath?[U0.join(U0.dirname(X.__originalFilePath),"components")]:[],...J.componentsDir?[J.componentsDir]:[],U0.join(U0.dirname(Z),"components"),U0.resolve(G,"src/components"),U0.resolve(G,"components"),...import.meta.dir?[U0.resolve(import.meta.dir,"components")]:[]];for(let q of new Set(z)){for(let K of Q)yield U0.join(q,K);try{for(let K of z9.readdirSync(q,{withFileTypes:!0}))if(K.isDirectory())for(let W of Q)yield U0.join(q,K.name,W)}catch{}}}function UU($,Z,J={},X){let Y=P5($,X);if(Y!==void 0)return Y;for(let Q of v5($,Z,J,X))try{if(z9.statSync(Q,{throwIfNoEntry:!1})?.isFile())return Q}catch{}return null}class r7{builtins=new Map;registerBuiltin($){this.builtins.set($.name.toLowerCase(),$);for(let Z of $.aliases)this.builtins.set(Z.toLowerCase(),$)}isBuiltin($){return this.builtins.has($.toLowerCase())}getBuiltin($){return this.builtins.get($.toLowerCase())??null}async resolveFile($,Z,J,X){let Y=P5($,X);if(Y!==void 0)return Y;for(let Q of v5($,Z,J,X))if(await a(Q))return Q;return null}}var x1=new r7;function D0($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}var R1="\x00stx-boolean-attribute";function f5($){return $.indexOf("\x00")===-1?$:$.replace(/\0/g,"")}function g1($,Z){let J=[];for(let[X,Y]of Object.entries($.static)){if(Z.has(X))continue;let Q=$.staticNames?.[X]??X;if(typeof Y==="boolean"){if(Y)J.push(D0(Q));continue}if(Y===R1){J.push(D0(Q));continue}J.push(`${D0(Q)}="${D0(f5(String(Y)))}"`)}return J}function h1($,Z){let J=[];for(let[X,Y]of Object.entries($.serverDynamic??{})){if(Z.has(X))continue;if(Y===null||Y===void 0||Y===!1)continue;let Q=$.serverDynamicNames?.[X]??X;if(Y===!0){J.push(D0(Q));continue}if(typeof Y==="object")continue;J.push(`${D0(Q)}="${D0(f5(String(Y)))}"`)}return J}function O2($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function ZY($){if($.clientReactive.to)return{value:$.clientReactive.to,reactive:!0};if($.serverDynamic.to!==void 0)return{value:String($.serverDynamic.to),reactive:!1};if(typeof $.static.to==="string")return{value:$.static.to,reactive:!1};return{value:"#",reactive:!1}}var x5={name:"StxLink",aliases:["stx-link"],render($,Z,J){let X=ZY($),Y=(typeof $.static.class==="string"?$.static.class:"")||(typeof $.static.className==="string"?$.static.className:""),Q=typeof $.static.activeClass==="string"?$.static.activeClass:"active",G=typeof $.static.exactActiveClass==="string"?$.static.exactActiveClass:"exact-active",z=$.static.prefetch===!0||$.static.prefetch==="true"||$.serverDynamic.prefetch===!0,q=[];if(X.reactive)q.push(`:href="${O2(X.value)}"`);else q.push(`href="${O2(X.value)}"`);if(Y)q.push(`class="${O2(Y)}"`);if(q.push("data-stx-link"),q.push(`data-stx-active-class="${O2(Q)}"`),q.push(`data-stx-exact-active-class="${O2(G)}"`),z)q.push("data-stx-prefetch");let K=new Set(["to","class","className","activeClass","exactActiveClass","prefetch"]);return q.push(...g1($,K)),q.push(...h1($,K)),`<a ${q.join(" ")}>${Z}</a>`}};import d1 from"fs";import g5 from"path";var JY=new Set([".jpg",".jpeg",".png",".webp",".avif"]),W1=new Map,u1=!1;function a7($){if(!$)return;let Z=$.split("?")[0].split("#")[0];return W1.get(Z)}function MU(){return u1}function IU(){W1.clear(),u1=!1}function TU($,Z){W1.set($,Z),u1=!0}function XY($){let Z=0,J=0,X=0,Y=0;for(let G=0;G<$.length;G+=4)Z+=$[G],J+=$[G+1],X+=$[G+2],Y++;if(Y===0)return"#e5e7eb";let Q=(G)=>Math.round(G/Y).toString(16).padStart(2,"0");return`#${Q(Z)}${Q(J)}${Q(X)}`}function YY($,Z,J,X=4,Y=3){let Q=[];for(let G=0;G<Y;G++)for(let z=0;z<X;z++){let q=Math.floor(z*Z/X),K=Math.max(q+1,Math.floor((z+1)*Z/X)),W=Math.floor(G*J/Y),U=Math.max(W+1,Math.floor((G+1)*J/Y)),H=0,j=0,B=0,V=0;for(let _=W;_<U;_++)for(let O=q;O<K;O++){let L=(_*Z+O)*4;H+=$[L],j+=$[L+1],B+=$[L+2],V++}let F=(_)=>Math.round(_/V).toString(16).padStart(2,"0");Q.push(`<rect x="${z}" y="${G}" width="1" height="1" fill="#${F(H)}${F(j)}${F(B)}"/>`)}return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${X} ${Y}" preserveAspectRatio="none"><filter id="b"><feGaussianBlur stdDeviation=".6"/></filter><g filter="url(#b)">${Q.join("")}</g></svg>`}function QY($){return`data:image/svg+xml;base64,${Buffer.from($,"utf8").toString("base64")}`}function GY($){try{return JSON.parse(d1.readFileSync($,"utf8"))}catch{return{}}}function zY($,Z){try{d1.mkdirSync(g5.dirname($),{recursive:!0}),d1.writeFileSync($,JSON.stringify(Z))}catch{}}function t7($,Z,J=[]){let X;try{X=d1.readdirSync($,{withFileTypes:!0})}catch{return J}for(let Y of X){let Q=g5.join($,Y.name);if(Y.isDirectory()){t7(Q,`${Z}/${Y.name}`,J);continue}if(!JY.has(g5.extname(Y.name).toLowerCase()))continue;J.push([`${Z}/${Y.name}`,Q])}return J}async function kU($,Z={}){let{cachePath:J,maxBytes:X=33554432,limit:Y=2000}=Z;if(!$||!d1.existsSync($))return u1=!0,W1.size;let Q;try{Q=await import("ts-images")}catch{return u1=!0,W1.size}let G=J?GY(J):{},z=!1,q=t7($,"").slice(0,Y),K=8,W=async([U,H])=>{let j;try{j=d1.statSync(H)}catch{return}if(j.size>X)return;let B=G[U];if(B&&B.mtimeMs===j.mtimeMs&&B.size===j.size){W1.set(U,{dataUrl:B.dataUrl,color:B.color});return}try{let{hash:V}=await Q.generateThumbHash(H);if(!V)return;let{rgba:F,w:_,h:O}=Q.thumbHashToRGBA(V),L={dataUrl:QY(YY(F,_,O)),color:XY(F)};W1.set(U,L),G[U]={mtimeMs:j.mtimeMs,size:j.size,...L},z=!0}catch{}};for(let U=0;U<q.length;U+=K)await Promise.all(q.slice(U,U+K).map(W));if(J&&z)zY(J,G);return u1=!0,W1.size}var qY={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},h5=[320,640,768,1024,1280,1536,1920];function F0($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function I0($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let J=$.static[Z];if(typeof J==="string")return J;return}function q9($,Z,J=!1){let X=$.serverDynamic[Z];if(X!==void 0)return X!==!1&&X!=="false";let Y=$.static[Z];if(Y!==void 0)return Y!=="false"&&Y!==!1;return J}function KY($){let Z=(X)=>$.variants.filter((Y)=>Y.format===X).reduce((Y,Q)=>Y+Q.bytes,0),J=Z($.fallback.format);return["avif","webp"].map((X)=>({format:X,srcset:$.sources[X]||"",bytes:Z(X)})).filter((X)=>X.srcset&&X.bytes>0&&X.bytes<J).sort((X,Y)=>X.bytes-Y.bytes).map(({format:X,srcset:Y})=>({format:X,srcset:Y}))}function u5($){if($.includes("(")||$.includes(","))return $;let Z=$.trim().split(/\s+/),J=[];for(let X of Z)if(X.includes(":")){let[Y,Q]=X.split(":"),G=qY[Y];if(G)J.push(`(max-width: ${G}px) ${Q}`);else{let z=Number.parseInt(Y);if(!Number.isNaN(z))J.push(`(max-width: ${z}px) ${Q}`)}}else J.push(X);return J.join(", ")}function d5($,Z,J,X){return Z.map((Y)=>`${F2($,Y,void 0,J,X)} ${Y}w`).join(", ")}function WY($,Z,J,X,Y){return Z.map((Q)=>{let G=J?J*Q:void 0;return`${F2($,G,void 0,X,Y)} ${Q}x`}).join(", ")}function F2($,Z,J,X,Y){if(!X||X==="local"||X==="static")return $;if(X==="cloudinary"){let Q=[];if(Z)Q.push(`w_${Z}`);if(J)Q.push(`h_${J}`);if(Y)Q.push(`f_${Y}`);Q.push("q_auto");let G=Q.join(",");return $.replace("/upload/",`/upload/${G}/`)}if(X==="imgix"){let Q=new URLSearchParams;if(Z)Q.set("w",String(Z));if(J)Q.set("h",String(J));if(Y)Q.set("fm",Y);Q.set("auto","format");let G=$.includes("?")?"&":"?";return`${$}${G}${Q.toString()}`}if(X==="bunny"){let Q=new URLSearchParams;if(Z)Q.set("width",String(Z));if(J)Q.set("height",String(J));if(Y)Q.set("format",Y);let G=$.includes("?")?"&":"?";return`${$}${G}${Q.toString()}`}return $}function UY($,Z,J="#e5e7eb"){let X=`<svg xmlns="http://www.w3.org/2000/svg" width="${$}" height="${Z}"><rect width="100%" height="100%" fill="${J}"/></svg>`;return`data:image/svg+xml;base64,${btoa(X)}`}var m5={name:"StxImage",aliases:["Image","stx-image","stx-img"],render($,Z,J){let X=I0($,"src")||"",Y=e7(X),Q=I0($,"alt")||"",G=I0($,"width")||(Y?String(Y.source.width):void 0),z=I0($,"height")||(Y?String(Y.source.height):void 0),q=I0($,"sizes"),K=I0($,"srcset"),W=I0($,"densities"),U=I0($,"format"),H=I0($,"placeholder")||(Y?"thumbhash":void 0),j=I0($,"placeholderColor")||"#e5e7eb",B=I0($,"provider"),V=I0($,"class")||I0($,"className")||"",F=I0($,"style")||"",_=I0($,"quality"),O=q9($,"lazy",!0),L=q9($,"preload",!1),w=q9($,"priority",!1),R=I0($,"loading"),N=I0($,"decoding")||"async",A=!!Y||q9($,"picture",!1)||!!U,T=G?Number.parseInt(G):void 0,D=z?Number.parseInt(z):void 0,M=K||"",k="";if(Y)M=Y.sources[Y.fallback.format]||"",k=q?u5(q):"100vw";else if(!M&&q&&B&&B!=="local"&&B!=="static")M=d5(X,h5,B,U),k=u5(q);else if(!M&&W){let P=W.split(/\s+/).map((h)=>Number.parseFloat(h.replace("x","")));M=WY(X,P,T,B,U)}else if(q)k=u5(q);let I=[];if(F)I.push(F);if(T&&D)I.push(`aspect-ratio:${T}/${D}`);if(H==="blur"||H==="color"||H==="thumbhash"){let P=Y?.placeholder?{dataUrl:Y.placeholder.dataUrl,color:j}:a7(X);if(P&&H==="color")I.push(`background-color:${P.color}`);else if(P)I.push(`background-color:${P.color}`),I.push(`background-image:url(${P.dataUrl})`),I.push("background-size:cover"),I.push("background-repeat:no-repeat");else{let h=UY(T||16,D||9,j);I.push(`background-image:url(${h})`),I.push("background-size:cover"),I.push("background-repeat:no-repeat")}}else if(H&&H!=="empty"&&H!=="none")I.push(`background-image:url(${F0(H)})`),I.push("background-size:cover"),I.push("background-repeat:no-repeat");let y=Y?.fallback.url||F2(X,T,D,B,U),E=[];if(E.push(`src="${F0(y)}"`),E.push(`alt="${F0(Q)}"`),G)E.push(`width="${F0(G)}"`);if(z)E.push(`height="${F0(z)}"`);let b=R||(w||L?"eager":O?"lazy":"");if(b)E.push(`loading="${F0(b)}"`);if(w)E.push('fetchpriority="high"');if(E.push(`decoding="${F0(N)}"`),V)E.push(`class="${F0(V)}"`);if(I.length>0)E.push(`style="${F0(I.join(";"))}"`);if(M)E.push(`srcset="${F0(M)}"`);if(k)E.push(`sizes="${F0(k)}"`);let C=new Set(["src","alt","width","height","lazy","sizes","srcset","placeholder","placeholderColor","class","className","style","format","provider","quality","densities","preload","priority","picture","loading","decoding"]);E.push(...g1($,C)),E.push(...h1($,C));let f=`<img ${E.join(" ")} />`,u="";if(L){let h=U==="webp"?"image/webp":U==="avif"?"image/avif":"";u=`<link rel="preload" as="image" href="${F0(y)}"${h?` type="${h}"`:""}${M?` imagesrcset="${F0(M)}"`:""}${k?` imagesizes="${F0(k)}"`:""} />
3280
- `}if(A){let P=[];if(Y)for(let h of KY(Y))P.push(`<source type="image/${h.format}" srcset="${F0(h.srcset)}"${k?` sizes="${F0(k)}"`:""} />`);if(!Y&&(U==="avif"||U==="auto")){let h=F2(X,T,D,B,"avif"),m=M?d5(X,h5,B,"avif"):`${h}`;P.push(`<source type="image/avif" srcset="${F0(m)}"${k?` sizes="${F0(k)}"`:""} />`)}if(!Y&&(U==="webp"||U==="auto")){let h=F2(X,T,D,B,"webp"),m=M?d5(X,h5,B,"webp"):`${h}`;P.push(`<source type="image/webp" srcset="${F0(m)}"${k?` sizes="${F0(k)}"`:""} />`)}return`${u}<picture>
3281
- ${P.join(`
3282
- `)}
3283
- ${f}
3284
- </picture>`}return`${u}${f}`}};var $4="/images/safe-image-default.svg";function w2($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function m1($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let J=$.static[Z];if(typeof J==="string")return J;return}var HY=`<script>window.__stxSafeImageHandler||(window.__stxSafeImageHandler=function(i){if(i.__stx_fb)return;i.__stx_fb=1;var f=i.getAttribute('data-fallback')||'${$4}';var c=i.getAttribute('data-fallback-class');i.src=f;if(c)i.className=c;});</script>`,l5={name:"SafeImage",aliases:["safe-image","safe-img"],render($,Z,J){let X=m1($,"src")||"",Y=m1($,"alt")||"",Q=m1($,"fallback")||$4,G=m1($,"class")||m1($,"className")||"",z=m1($,"fallbackClassName")||"",q=[];if(q.push(`src="${w2(X)}"`),q.push(`alt="${w2(Y)}"`),G)q.push(`class="${w2(G)}"`);if(q.push(`data-fallback="${w2(Q)}"`),z)q.push(`data-fallback-class="${w2(z)}"`);q.push('onerror="window.__stxSafeImageHandler(this)"');let K=new Set(["src","alt","fallback","class","className","fallbackClassName"]);q.push(...g1($,K)),q.push(...h1($,K));let W=`<img ${q.join(" ")} />`,U=J.context;if(!U.__safeImageHandlerEmitted)return U.__safeImageHandlerEmitted=!0,`${HY}${W}`;return W}};function c5($){return $.replace(/[;{}()]/g,"").replace(/url/gi,"")}function R2($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let J=$.static[Z];if(typeof J==="string")return J;return}function K9($,Z,J){let X=R2($,Z);if(X!==void 0){let Y=Number.parseInt(X,10);if(!Number.isNaN(Y))return Y}return J}var p5={name:"StxLoadingIndicator",aliases:["stx-loading-indicator"],render($,Z,J){let X=c5(R2($,"color")||"#6366f1"),Y=c5(R2($,"initialColor")||R2($,"initial-color")||""),Q=c5(R2($,"height")||"3px"),G=K9($,"duration",2000),z=K9($,"throttle",200),q=K9($,"zIndex",999999)||K9($,"z-index",999999),K=Y?`linear-gradient(to right, ${Y}, ${X})`:X;return`
3285
- <div id="stx-loading-indicator" style="position:fixed;top:0;left:0;right:0;height:${Q};background:${K};z-index:${q};transform:scaleX(0);transform-origin:left;transition:transform 0.1s ease-out,opacity 0.3s ease;opacity:0;pointer-events:none">
3286
- <div style="position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,0.4) 50%,transparent 100%);animation:stx-shimmer 1.5s infinite"></div>
3287
- </div>
3288
- <style>@keyframes stx-shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}</style>
3289
- <script>
3290
- (function(){var el=document.getElementById('stx-loading-indicator'),p=0,l=!1,i=null;function u(v){p=Math.min(Math.max(v,0),100);if(el){el.style.opacity=p>0?'1':'0';el.style.transform='scaleX('+(p/100)+')'}}window.stxLoading={start:function(){l=!0;p=0;u(10);if(i)clearInterval(i);i=setInterval(function(){if(!l)return;var r=90-p,inc=Math.max(0.5,r*0.1);if(p<90)u(p+inc)},${z})},finish:function(){l=!1;if(i){clearInterval(i);i=null}u(100);setTimeout(function(){if(el)el.style.opacity='0';setTimeout(function(){p=0;if(el)el.style.transform='scaleX(0)'},300)},200)},set:function(v){u(v)},clear:function(){l=!1;p=0;if(i){clearInterval(i);i=null}if(el){el.style.opacity='0';el.style.transform='scaleX(0)'}}};document.addEventListener('click',function(e){var a=e.target.closest&&e.target.closest('a');if(!a)return;var h=a.getAttribute('href');if(!h||h.startsWith('http')||h.startsWith('#')||h.startsWith('mailto:')||h.startsWith('tel:')||a.target==='_blank')return;window.stxLoading.start()});window.addEventListener('popstate',function(){window.stxLoading.start()});window.addEventListener('load',function(){window.stxLoading.finish()})})();
3291
- </script>`}};function J4($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let J=$.static[Z];if(typeof J==="string")return J;return}function jY($,Z,J){let X=J4($,Z);if(X!==void 0){let Y=Number.parseInt(X,10);if(!Number.isNaN(Y))return Y}return J}var Z4={"top-right":"top:1rem;right:1rem","top-left":"top:1rem;left:1rem","top-center":"top:1rem;left:50%;transform:translateX(-50%)","bottom-right":"bottom:1rem;right:1rem","bottom-left":"bottom:1rem;left:1rem","bottom-center":"bottom:1rem;left:50%;transform:translateX(-50%)"},i5={name:"StxToast",aliases:["stx-toast"],render($,Z,J){let X=D0(J4($,"position")||"top-right"),Y=jY($,"max",5),Q=Z4[X]||Z4["top-right"];return`<div id="stx-toast-container" data-stx-toast-position="${X}" data-stx-toast-max="${Y}" style="position:fixed;${Q};z-index:999999;display:flex;flex-direction:column;gap:0.5rem;pointer-events:none;max-width:24rem;width:100%"></div>
3292
- <style>
3293
- @keyframes stx-toast-in{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}
3294
- @keyframes stx-toast-out{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}
3295
- @keyframes stx-toast-in-left{from{opacity:0;transform:translateX(-100%)}to{opacity:1;transform:translateX(0)}}
3296
- @keyframes stx-toast-out-left{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-100%)}}
3297
- @keyframes stx-toast-in-center{from{opacity:0;transform:translateY(-1rem)}to{opacity:1;transform:translateY(0)}}
3298
- @keyframes stx-toast-out-center{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-1rem)}}
3299
- </style>`}};function W9($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let J=$.static[Z];if(typeof J==="string")return J;return}var X4={sm:"max-width:24rem",md:"max-width:32rem",lg:"max-width:42rem",xl:"max-width:56rem",full:"max-width:calc(100vw - 2rem);max-height:calc(100vh - 2rem)"},n5={name:"StxModal",aliases:["stx-modal"],render($,Z,J){let X=W9($,"id");if(!X)return console.warn('[stx] <StxModal> requires an "id" prop'),"<!-- StxModal: missing id prop -->";let Y=D0(X),Q=W9($,"size")||"md",G=W9($,"closeOnBackdrop")!=="false",z=W9($,"closeOnEscape")!=="false",q=X4[Q]||X4.md;return`<div id="stx-modal-${Y}" class="stx-modal-backdrop" data-stx-modal="${Y}" data-close-backdrop="${G}" data-close-escape="${z}" style="display:none;position:fixed;inset:0;z-index:99999;align-items:center;justify-content:center;background:rgba(0,0,0,0.5);backdrop-filter:blur(2px);opacity:0;transition:opacity 0.2s ease" aria-modal="true" role="dialog">
3300
- <div class="stx-modal-panel" style="${q};width:100%;margin:1rem;border-radius:0.75rem;box-shadow:0 20px 60px rgba(0,0,0,0.3);overflow:hidden;transform:scale(0.95) translateY(8px);transition:transform 0.2s ease,opacity 0.2s ease;opacity:0;background:var(--stx-modal-bg,#fff);color:var(--stx-modal-text,#1f2937)">
3301
- <div style="padding:1.5rem">${Z}</div>
3302
- </div>
3303
- </div>
3304
- <style>
3305
- @media(prefers-color-scheme:dark){[data-stx-modal]{--stx-modal-bg:#1f2937;--stx-modal-text:#f3f4f6}}
3306
- .stx-modal-backdrop[data-stx-modal-open]{display:flex!important;opacity:1}
3307
- .stx-modal-backdrop[data-stx-modal-open] .stx-modal-panel{transform:scale(1) translateY(0);opacity:1}
3308
- </style>`}};function l1($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let J=$.static[Z];if(typeof J==="string")return J;return}var Y4={sm:"16rem",md:"24rem",lg:"32rem",xl:"40rem"},s5={name:"StxDrawer",aliases:["stx-drawer"],render($,Z,J){let X=l1($,"id");if(!X)return console.warn('[stx] <StxDrawer> requires an "id" prop'),"<!-- StxDrawer: missing id prop -->";let Y=D0(X),Q=l1($,"side")||"right",G=l1($,"size")||"md",z=l1($,"closeOnBackdrop")!=="false",q=l1($,"closeOnEscape")!=="false",K=l1($,"overlay")!=="false",W=Y4[G]||Y4.md,U=Q==="left",H=U?"left:0":"right:0",j=U?"translateX(-100%)":"translateX(100%)",B=U?"stx-drawer-slide-left":"stx-drawer-slide-right";return`<div id="stx-drawer-${Y}" class="stx-drawer-backdrop" data-stx-drawer="${Y}" data-close-backdrop="${z}" data-close-escape="${q}" style="display:none;position:fixed;inset:0;z-index:99999;${K?"background:rgba(0,0,0,0.5);backdrop-filter:blur(2px)":"background:transparent;pointer-events:none"};opacity:0;transition:opacity 0.2s ease" role="dialog" aria-modal="true">
3309
- <div class="stx-drawer-panel" style="position:fixed;top:0;bottom:0;${H};width:${W};max-width:100vw;transform:${j};transition:transform 0.3s cubic-bezier(0.4,0,0.2,1);background:var(--stx-drawer-bg,#fff);color:var(--stx-drawer-text,#1f2937);box-shadow:0 20px 60px rgba(0,0,0,0.3);overflow-y:auto;pointer-events:auto">
3310
- <div style="padding:1.5rem">${Z}</div>
3311
- </div>
3312
- </div>
3313
- <style>
3314
- @media(prefers-color-scheme:dark){[data-stx-drawer]{--stx-drawer-bg:#1f2937;--stx-drawer-text:#f3f4f6}}
3315
- .stx-drawer-backdrop[data-stx-drawer-open]{display:block!important;opacity:1}
3316
- .stx-drawer-backdrop[data-stx-drawer-open] .stx-drawer-panel{transform:translateX(0)}
3317
- </style>`}};import{existsSync as BY,readFileSync as VY}from"fs";var N1=new Map,Q4=new Set;function G4($){if(Q4.has($))return;Q4.add($),console.warn(`[stx] icon collection "${$}" is not installed, so its icons render as nothing. Install it with \`bun add -d @iconify-json/${$}\`.`)}function z4($){let Z=process.cwd();for(let J of[`${Z}/node_modules/@iconify-json/${$}/icons.json`,`${Z}/pantry/@iconify-json/${$}/icons.json`,`${Z}/node_modules/@iconify/json/json/${$}.json`,`${Z}/pantry/@iconify/json/json/${$}.json`])if(BY(J))return J;for(let J of[`@iconify-json/${$}/icons.json`,`@iconify/json/json/${$}.json`])try{return x.resolve(J)}catch{}return null}function _Y($){if(N1.has($))return N1.get($);let Z=z4($);if(!Z)return G4($),null;try{let J=JSON.parse(VY(Z,"utf8"));return N1.set($,J.icons),J.icons}catch{return null}}async function LY($,Z=!1){if(N1.has($))return N1.get($);let J=z4($);if(!J){if(!Z)G4($);return null}try{let X=await Bun.file(J).json();return N1.set($,X.icons),X.icons}catch{return null}}function c1($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);if($.static[Z]!==void 0)return String($.static[Z]);if($.clientReactive[Z]!==void 0)return $.clientReactive[Z];return}var o5={name:"Icon",aliases:["icon","stx-icon"],render($,Z,J){let X=c1($,"name")??c1($,"icon");if(!X)return"<!-- Icon: missing name/icon prop -->";let Y="lucide",Q=X;if(X.includes(":")){let O=X.split(":");Y=O[0],Q=O[1]}let G=D0(c1($,"size")||"24"),z=D0(c1($,"color")||"currentColor"),q=D0(c1($,"class")||""),K=D0(c1($,"style")||""),W=N1.get(Y)??_Y(Y);if(!W)return`<!-- Icon: collection "${Y}" not loaded -->`;let U=W[Q];if(!U)return`<!-- Icon: "${Q}" not found in ${Y} -->`;let H=U.width||24,j=U.height||24,B=`0 0 ${H} ${j}`,V=U.body;if(z!=="currentColor")V=V.replace(/currentColor/g,z);let F=q?` class="${q}"`:"",_=K?` style="${K}"`:"";return`<svg xmlns="http://www.w3.org/2000/svg" width="${G}" height="${G}" viewBox="${B}" fill="none"${F}${_}>${V}</svg>`}};async function OY($="lucide",Z={}){await LY($,Z.speculative??!0)}function r5(){return`
3318
- (function(){
3319
- var tip=null,hideTimer=null,currentEl=null;
3320
-
3321
- function createTip(){
3322
- tip=document.createElement("div");
3323
- tip.id="stx-tooltip";
3324
- tip.style.cssText="position:absolute;background:#1f2937;color:#fff;font-size:12px;line-height:1.4;padding:6px 10px;border-radius:6px;max-width:250px;z-index:999999;pointer-events:none;opacity:0;transition:opacity .15s ease;white-space:pre-wrap;word-wrap:break-word;box-shadow:0 2px 8px rgba(0,0,0,.25)";
3325
- var arrow=document.createElement("div");
3326
- arrow.className="stx-tip-arrow";
3327
- arrow.style.cssText="position:absolute;width:0;height:0;border:5px solid transparent";
3328
- tip.appendChild(arrow);
3329
- var text=document.createElement("span");
3330
- text.className="stx-tip-text";
3331
- tip.appendChild(text);
3332
- document.body.appendChild(tip);
3333
- }
3334
-
3335
- function position(el){
3336
- var pos=el.getAttribute("x-tooltip-position")||"top";
3337
- var r=el.getBoundingClientRect();
3338
- var sy=window.scrollY,sx=window.scrollX;
3339
- tip.style.display="block";
3340
- tip.style.opacity="0";
3341
- // Force layout so we can measure
3342
- var tw=tip.offsetWidth,th=tip.offsetHeight;
3343
- var arrow=tip.querySelector(".stx-tip-arrow");
3344
- var left,top;
3345
-
3346
- if(pos==="top"){
3347
- left=r.left+r.width/2-tw/2+sx;
3348
- top=r.top-th-8+sy;
3349
- if(top-sy<0){pos="bottom";}
3350
- }
3351
- if(pos==="bottom"){
3352
- left=r.left+r.width/2-tw/2+sx;
3353
- top=r.bottom+8+sy;
3354
- arrow.style.cssText="position:absolute;width:0;height:0;border:5px solid transparent;border-bottom-color:#1f2937;top:-10px;left:50%;transform:translateX(-50%)";
3355
- }
3356
- if(pos==="left"){
3357
- left=r.left-tw-8+sx;
3358
- top=r.top+r.height/2-th/2+sy;
3359
- if(left-sx<0){pos="right";}
3360
- }
3361
- if(pos==="right"){
3362
- left=r.right+8+sx;
3363
- top=r.top+r.height/2-th/2+sy;
3364
- arrow.style.cssText="position:absolute;width:0;height:0;border:5px solid transparent;border-right-color:#1f2937;left:-10px;top:50%;transform:translateY(-50%)";
3365
- }
3366
-
3367
- // Set arrow for top/left after potential flips
3368
- if(pos==="top"){
3369
- arrow.style.cssText="position:absolute;width:0;height:0;border:5px solid transparent;border-top-color:#1f2937;bottom:-10px;left:50%;transform:translateX(-50%)";
3370
- }
3371
- if(pos==="left"){
3372
- arrow.style.cssText="position:absolute;width:0;height:0;border:5px solid transparent;border-left-color:#1f2937;right:-10px;top:50%;transform:translateY(-50%)";
3373
- }
3374
-
3375
- // Clamp horizontal
3376
- if(left<sx+4) left=sx+4;
3377
- if(left+tw>sx+window.innerWidth-4) left=sx+window.innerWidth-tw-4;
3378
-
3379
- tip.style.left=left+"px";
3380
- tip.style.top=top+"px";
3381
- tip.style.opacity="1";
3382
- }
3383
-
3384
- function showTip(el){
3385
- if(hideTimer){clearTimeout(hideTimer);hideTimer=null;}
3386
- if(!tip) createTip();
3387
- var text=el.getAttribute("x-tooltip");
3388
- if(!text) return;
3389
- tip.querySelector(".stx-tip-text").textContent=text;
3390
- currentEl=el;
3391
- position(el);
3392
- }
3393
-
3394
- function hideTip(){
3395
- if(!tip) return;
3396
- tip.style.opacity="0";
3397
- hideTimer=setTimeout(function(){
3398
- if(tip) tip.style.display="none";
3399
- currentEl=null;
3400
- },150);
3401
- }
3402
-
3403
- document.addEventListener("mouseover",function(e){
3404
- var el=e.target.closest("[x-tooltip]");
3405
- if(el) showTip(el);
3406
- });
3407
- document.addEventListener("mouseout",function(e){
3408
- var el=e.target.closest("[x-tooltip]");
3409
- if(el&&el===currentEl) hideTip();
3410
- });
3411
- document.addEventListener("focusin",function(e){
3412
- var el=e.target.closest("[x-tooltip]");
3413
- if(el) showTip(el);
3414
- });
3415
- document.addEventListener("focusout",function(e){
3416
- var el=e.target.closest("[x-tooltip]");
3417
- if(el) hideTip();
3418
- });
3419
- })();
3420
- `}function q4($,...Z){for(let J of Z){if($.serverDynamic[J]!==void 0)return String($.serverDynamic[J]);let X=$.static[J];if(typeof X==="string")return X}return}function K4($,Z){let J=new RegExp(`<(template|div|span)[^>]*\\bslot=["']${Z}["'][^>]*>([\\s\\S]*?)<\\/\\1>`,"i"),X=$.match(J);if(!X)return{region:null,rest:$};return{region:X[2],rest:$.replace(X[0],"")}}var a5={name:"Suspense",aliases:["suspense"],render($,Z,J){let X=K4(Z,"fallback"),Y=X.rest,Q=K4(Y,"error"),G=Q.rest,z=X.region??q4($,"fallback")??'<div class="stx-suspense-loading">Loading\u2026</div>',q=Q.region??q4($,"errorFallback","error-fallback")??'<div class="stx-suspense-error">Something went wrong.</div>';return`<div data-stx-suspense><div data-stx-suspense-fallback>${z}</div><div data-stx-suspense-error hidden>${q}</div><div data-stx-suspense-content hidden>${G}</div></div>`}};function U9($,...Z){for(let J of Z){if($.serverDynamic[J]!==void 0)return String($.serverDynamic[J]);let X=$.static[J];if(typeof X==="string")return X}return}var t5={name:"TransitionGroup",aliases:["transition-group"],render($,Z,J){let X=(U9($,"name")||"v").replace(/["'<>]/g,""),Y=(U9($,"tag")||"div").replace(/[^a-z0-9-]/gi,"")||"div",Q=U9($,"class"),G=U9($,"id"),z=[`data-stx-transition-group="${X}"`,Q?`class="${Q}"`:"",G?`id="${G}"`:""].filter(Boolean).join(" ");return`<${Y} ${z}>${Z}</${Y}>`}};function W4($=x1){$.registerBuiltin(x5),$.registerBuiltin(m5),$.registerBuiltin(l5),$.registerBuiltin(p5),$.registerBuiltin(i5),$.registerBuiltin(n5),$.registerBuiltin(s5),$.registerBuiltin(o5),$.registerBuiltin(a5),$.registerBuiltin(t5)}function H9($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1-$2").toLowerCase()}var U4=new Map;function FY($){let Z=U4.get($.source);if(!Z)Z=new RegExp(`(${$.source})(?![\\w.:-])`,"y"),U4.set($.source,Z);return Z}var H4=new WeakMap;function j4($){let Z=H4.get($);if(!Z)Z=new Set([...$].map((X)=>X.toLowerCase())),H4.set($,Z);let J=Z;return(X)=>!/[a-z]/.test(X)&&J.has(X.toLowerCase())}function B4($,Z,J){let X=[],Y=0,Q=typeof J==="function"?J:J?(G)=>J.has(G.toLowerCase()):void 0;while(Y<$.length){let G=$.indexOf("<",Y);if(G===-1)break;let z=FY(Z);z.lastIndex=G+1;let q=z.exec($);if(!q){Y=G+1;continue}let K=q[1];if(Q&&Q(K)){let F=G+1+K.length;while(F<$.length&&$[F]!==">")F++;Y=F+1;continue}let W=G+1+K.length,U=null,H=W,j=-1,B=!1;while(W<$.length){let F=$[W];if(U){if(F==="\\"&&W+1<$.length){W+=2;continue}if(F===U)U=null;W++;continue}if(F==='"'||F==="'"){U=F,W++;continue}if(F==="/"&&W+1<$.length&&$[W+1]===">"){j=W+2,B=!0;break}if(F===">"){j=W+1;break}W++}if(j===-1){Y=G+1;continue}let V=$.slice(H,B?j-2:j-1).trim();if(B)X.push({fullMatch:$.slice(G,j),tagName:K,attributes:V,content:"",startIndex:G,endIndex:j,isSelfClosing:!0}),Y=j;else{let F=`<${K}`,_=`</${K}>`,O=1,L=j,w=-1;while(O>0&&L<$.length){let A=$.indexOf(F,L),T=$.indexOf(_,L);if(T===-1)break;if(A!==-1&&A<T){let D=$[A+F.length];if(D===" "||D===">"||D==="/"||D===`
3421
- `||D==="\t")O++;L=A+F.length}else{if(O--,O===0){w=T;break}L=T+_.length}}if(w===-1){Y=j;continue}let R=$.slice(j,w),N=w+_.length;X.push({fullMatch:$.slice(G,N),tagName:K,attributes:V,content:R,startIndex:G,endIndex:N,isSelfClosing:!1}),Y=N}}return X}function V4($){return $.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#0?39;/g,"'").replace(/&#x27;/gi,"'").replace(/&amp;/g,"&")}function _4($,Z){try{let J=Buffer.from($,"base64").toString("utf8");return JSON.parse(J)}catch{}try{let J=$.replace(/&quot;/g,'"').replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&");return JSON.parse(J)}catch(J){if(Z?.debug)console.error("Error decoding __stx_ prop:",J);return $}}function e5($,Z){let J=0,X="",Y=Z;while(Y<$.length){let Q=$[Y];if(X){if(Q==="\\")Y++;else if(Q===X)X=""}else if(Q==='"'||Q==="'"||Q==="`")X=Q;else if(Q==="{")J++;else if(Q==="}"){if(J--,J===0)return $.slice(Z,Y+1)}Y++}return $.slice(Z)}function L4($){let Z=$.trim();if(!Z.startsWith("{")||!Z.endsWith("}"))return null;if(e5(Z,0).length!==Z.length)return null;return Z.slice(1,-1).trim()}var wY=new Set(["disabled","checked","readonly","required","autofocus","autoplay","controls","default","defer","formnovalidate","hidden","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","reversed","selected"]),RY=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]);function $$($){let Z=[],J=/<([a-zA-Z][a-zA-Z0-9-]*)\b((?:[^>"']|"[^"]*"|'[^']*')*)\s*\/?>/g,X;while((X=J.exec($))!==null){let Y=X[2]||"";if(!/(?:^|\s)(?::for|x-for|v-for|@for)\s*=/.test(Y))continue;let Q=X.index,G=Q+X[0].length,z=X[1].toLowerCase();if(X[0].endsWith("/>")||RY.has(z)){Z.push([Q,G]);continue}let q=z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),K=new RegExp(`<\\/?${q}\\b(?:[^>"']|"[^"]*"|'[^']*')*>`,"gi");K.lastIndex=G;let W=1,U=G,H;while((H=K.exec($))!==null)if(H[0].startsWith("</")){if(W--,W===0){U=H.index+H[0].length;break}}else if(!H[0].endsWith("/>"))W++;Z.push([Q,U])}return Z}function F4($){if(typeof $==="string")return $;if(Array.isArray($))return $.filter(Boolean).map((Z)=>F4(Z)).join(" ");if($&&typeof $==="object")return Object.entries($).filter(([,Z])=>Z).map(([Z])=>Z).join(" ");return $?String($):""}function w4($,Z){if(!/:[\w-]+=/.test($))return $;let J=$,X=/<(script|style)\b[^>]*>[\s\S]*?<\/\1>/gi,Y=[],Q;while((Q=X.exec($))!==null)Y.push([Q.index,Q.index+Q[0].length]);Y.push(...$$($));function G(U){return Y.some(([H,j])=>U>=H&&U<j)}let z=/<([a-zA-Z][a-zA-Z0-9-]*)\b((?:[^>"']|"[^"]*"|'[^']*')*)\s*\/?>/g,q=[],K=new Map,W=256;while((Q=z.exec(J))!==null){if(G(Q.index))continue;let U=Q[0],H=Q[2];if(!H||!H.includes(":"))continue;let j=/\s:([a-zA-Z_][\w-]*)\s*=\s*"([^"]*)"/g,B,V=H,F=!1;while((B=j.exec(H))!==null){let _=B[1],O=B[2];if(O4(_))continue;if(O.includes("()")&&!O.includes(".get(")||O.includes("$store")||O.includes("$ref"))continue;try{let L=Object.keys(Z),w=Object.values(Z),R=O.match(/^([a-zA-Z_$][\w$]*)/);if(R&&!L.includes(R[1])&&!["true","false","null","undefined","Math","JSON","String","Number","Array","Object","Date","parseInt","parseFloat"].includes(R[1]))continue;let N=JSON.stringify([L,O]),A=K.get(N);if(!A){if(A=Function(...L,`return (${O})`),K.size>=W)K.clear();K.set(N,A)}let T=A(...w);if(_==="class"){let D=F4(T);if(D){let M=V.match(/\sclass="([^"]*)"/);if(M)V=V.replace(M[0],` class="${M[1]} ${D}"`);else V=V.replace(B[0],` class="${D}"`)}else V=V.replace(B[0],"");F=!0;continue}if(wY.has(_)){if(T)V=V.replace(B[0],` ${_}`);else V=V.replace(B[0],"");F=!0;continue}if(T===null||T===void 0||T===!1)V=V.replace(B[0],"");else{let D=String(T).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;");V=V.replace(B[0],` ${_}="${D}"`)}F=!0}catch{continue}}if(F){let _=U.endsWith("/>")?" /":"",L=`<${Q[1]}${V}${_}>`;q.push({start:Q.index,end:Q.index+U.length,replacement:L})}}if(q.length>0){let U=Array(q.length*2+1),H=0;for(let j=0;j<q.length;j++){let{start:B,end:V,replacement:F}=q[j];U[j*2]=J.slice(H,B),U[j*2+1]=F,H=V}U[q.length*2]=J.slice(H),J=U.join("")}return J}import R4 from"fs";import N4 from"path";var N2=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","component","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","menu","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","slot","small","source","span","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","path","circle","rect","line","polygon","polyline","ellipse","text","tspan","textPath","g","defs","use","symbol","image","clipPath","mask","pattern","marker","linearGradient","radialGradient","stop","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","foreignObject","animate","animateMotion","animateTransform","set","mpath","desc","metadata","switch","view"]);function Z$($){if($.includes("-")||$==="component")return!1;if(/^[A-Z]/.test($))return!/[a-z]/.test($)&&[...N2].some((Z)=>Z.toLowerCase()===$.toLowerCase());return N2.has($)||/[A-Z]/.test($)}var D4=!1;function NY($,Z,J,X=!1){let Y={static:{},staticNames:{},serverDynamic:{},serverDynamicNames:{},clientReactive:{},events:{}},Q=new Set(Array.isArray(Z.__stx_client_signal_names)?Z.__stx_client_signal_names:[]),G=(W)=>{if(Q.size===0)return!1;let U=u0(W),H=U.match(/^\s*[!+~(-]*\s*([a-zA-Z_$][\w$]*)/)?.[1];if(H&&Q.has(H))return!0;for(let j of Q){let B=j.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(new RegExp(`(?:^|[^\\w$.])${B}\\s*\\(`).test(U))return!0}return!1},z=new Set(I4),q=(W)=>{if(!W.includes("-")||W.startsWith("@")||W.startsWith(":")||W.startsWith("x-")||W.startsWith("__"))return W;if(W.startsWith("aria-")||W.startsWith("data-"))return W;return W.replace(/-([a-z0-9])/g,(U,H)=>H.toUpperCase())},K=(W,U)=>{let H=q(W);if(Y.static[H]=U,H!==W)Y.staticNames[H]=W};for(let[W,U]of Object.entries($)){let H=W.startsWith("x-")&&!z.has(W)&&!W.startsWith("x-bind:")&&!W.startsWith("x-on:")?`:${W.slice(2)}`:W;if(H.startsWith("@")){Y.events[H]=U;continue}if(H.startsWith("__stx_")){let j=q(H.slice(6));Y.serverDynamic[j]=_4(U,J);continue}if(H.startsWith(":")){let j=q(H.slice(1)),B=U===R1?j:U;if(j==="if"||j==="for"||j==="show"){Y.clientReactive[j]=B;continue}if(X){Y.clientReactive[j]=B;continue}if(G(B)){Y.clientReactive[j]=B;continue}try{if(!W0(B)){if(J.debug)console.error(`Unsafe expression in :${j} binding: ${B}`);Y.clientReactive[j]=B;continue}let V=Object.keys(Z),_=K0(B,V)(...Object.values(Z));if(_===void 0){let O=new Set(["true","false","null","undefined","typeof","instanceof","in","of","new","this","return","void","delete","throw","if","else"]);if(B9(B).some((w)=>!O.has(w)&&!V.includes(w))){Y.clientReactive[j]=B;continue}}if(Y.serverDynamic[j]=_,j!==H.slice(1)&&Y.serverDynamicNames)Y.serverDynamicNames[j]=H.slice(1)}catch{Y.clientReactive[j]=B}continue}if(typeof U==="string"&&U.includes("{{")&&U.includes("}}")){let j=U.match(/^\{\{\s*([\s\S]+?)\s*\}\}$/);if(j)try{let B=j[1];if(W0(B)){let F=K0(B,Object.keys(Z))(...Object.values(Z));K(H,F!=null?String(F):"")}else{if(J.debug)console.error(`Unsafe expression in ${H}: ${B}`);K(H,U)}}catch(B){if(J.debug)console.error(`Error evaluating expression for ${H}:`,B);K(H,U)}else{let B=U,V=/\{\{\s*([\s\S]+?)\s*\}\}/g,F;while((F=V.exec(U))!==null)try{let _=F[1];if(!W0(_)){if(J.debug)console.error(`Unsafe expression in ${H}: ${_}`);continue}let L=K0(_,Object.keys(Z))(...Object.values(Z));B=B.replace(F[0],String(L??""))}catch(_){if(J.debug)console.error(`Error evaluating expression in ${H}:`,_)}K(H,B)}continue}K(H,U===R1?"true":V4(U))}return Y}var DY=[[/@if\s*\(/,"@endif"],[/@unless\s*\(/,"@endunless"]];function AY($,Z,J){if(!$.includes("@"))return $;if(!DY.some(([Y,Q])=>Y.test($)&&$.includes(Q)))return $;try{return e0($,Z,J)}catch{return $}}function MY($){let Z={},J=0,X=$.length;while(J<X){while(J<X&&/\s/.test($[J]))J++;if(J>=X)break;let Y="";while(J<X&&!/[\s=]/.test($[J]))Y+=$[J],J++;if(!Y)break;while(J<X&&/\s/.test($[J]))J++;if(J<X&&$[J]==="="){J++;while(J<X&&/\s/.test($[J]))J++;let Q="";if(J<X&&($[J]==='"'||$[J]==="'")){let G=$[J];J++;while(J<X){let z=$[J];if(z==="\\"&&J+1<X){J++,Q+=$[J],J++;continue}if(z===G){J++;break}Q+=z,J++}}else if($[J]==="{"){Q=e5($,J),J+=Q.length;let G=L4(Q);if(G!==null){Z[`:${Y}`]=G;continue}}else while(J<X&&!/\s/.test($[J]))Q+=$[J],J++;Z[Y]=Q}else Z[Y]=R1}return Z}function A4($){return Object.entries($).map(([Z,J])=>J===R1?Z:`${Z}="${IY(J)}"`).join(" ")}function IY($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function TY($){let Z=new Set,J=/<([A-Z][A-Za-z0-9]*|stx-[a-z0-9-]+)\b[^>]*>/g,X;while((X=J.exec($))!==null){let Y=X[1];if(x1.isBuiltin(Y))Z.add(Y)}return[...Z].sort()}async function kY($,Z,J,X,Y){if(!/import\s/.test($))return $;if(!Z.__importedComponents)Z.__importedComponents=new Map;let Q=Z.__importedComponents,G=N4.dirname(J),z=[],q=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi;for(let U of $.matchAll(q)){let[H,j,B]=U,V=/import\s+(?:(\{[^}]*\})|([A-Za-z_$][\w$]*))\s+from\s+['"]([^'"]+)['"]\s*;?\s*\n?/g,F=B,_,O=[];while((_=V.exec(B))!==null){let[L,w,R,N]=_,A=null,T=null;if(N.startsWith(".")||N.startsWith("/")){let k=N4.resolve(G,N);if(k.endsWith(".stx"))T=k;else{let I=`${k}.stx`;try{if(R4.statSync(I).isFile())T=I}catch{try{if(R4.statSync(k).isDirectory())A=k}catch{}}}}else A=n7(N,G);if(!A&&!T)continue;let D=!1,M=(k,I)=>{Q.set(k,I),Q.set(k.toLowerCase(),I);let y=k.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();Q.set(y,I),Y.add(I)};if(R&&T)M(R,T),D=!0;else if(w){let k=w.slice(1,-1).split(",").map((y)=>y.trim()).filter(Boolean).map((y)=>{let E=y.match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);if(E)return{source:E[1],local:E[2]};return{source:y,local:y}}),I=A?i7(A):null;for(let{source:y,local:E}of k){let b=null;if(T)b=T;else if(I)b=I.get(y)??I.get(y.toLowerCase())??I.get(y.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase())??null;if(b)M(E,b),D=!0}}if(D)O.push({start:_.index,end:_.index+L.length})}if(O.length===0)continue;for(let L=O.length-1;L>=0;L--)F=F.slice(0,O[L].start)+F.slice(O[L].end);z.push({start:U.index,end:U.index+H.length,value:`<script${j}>${F}</script>`})}if(z.length===0)return $;let K=[],W=0;for(let U of z)K.push($.slice(W,U.start),U.value),W=U.end;return K.push($.slice(W)),K.join("")}async function EY($,Z,J,X,Y){let Q=$;if(!Z.__importedComponents)Z.__importedComponents=new Map;let G=Z.__importedComponents,z=/@import\s*\(\s*([^)]+)\s*\)/g,q;while((q=z.exec(Q))!==null){let[K,W]=q,U=W.split(",").map((H)=>H.trim().replace(/^['"]|['"]$/g,"")).filter((H)=>H.length>0);for(let H of U){let j=H.split("/"),V=j[j.length-1].replace(/\.stx$/,""),F=V.includes("-")?V.split("-").map((L)=>L.charAt(0).toUpperCase()+L.slice(1)).join(""):V.charAt(0).toUpperCase()+V.slice(1),_=null,O=s7(H,J,X);for(let L of O)try{if(await Bun.file(L).exists()){_=L;break}}catch{}if(_){G.set(F,_),G.set(V,_),G.set(V.toLowerCase(),_);let L=F.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(G.set(L,_),Y.add(_),X.debug)console.log(`Imported component: ${F} -> ${_}`)}else if(X.debug)console.warn(`Could not resolve imported component: ${H}`)}Q=Q.replace(K,""),z.lastIndex=0}return Q}async function bY($,Z,J,X,Y){let Q=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let z=Z.__processedComponents,q=/@component\s*\(/g,K;while((K=q.exec(Q))!==null){let W=K.index,U=W+K[0].length-1,H=1,j=U+1;while(j<Q.length&&H>0){if(Q[j]==="(")H++;else if(Q[j]===")"){if(H--,H===0)break}j++}if(H!==0)break;let B=Q.substring(U+1,j),V=j+1,F=B.match(/^\s*['"]([^'"]+)['"]/);if(!F){q.lastIndex=0;continue}let _=F[1],O,L=B.slice(F[0].length),w=L.match(/^\s*,\s*/);if(w)O=L.slice(w[0].length).trim();let R={};if(O)try{R=E0(O,Z)}catch(k){let I=k instanceof Error?k.message:String(k);Q=Q.replace(Q.substring(W,V),`[Error parsing component props: ${I}]`);continue}let N="",A=V,D=Q.substring(V).match(/^([\s\S]*?)@endcomponent/);if(D)N=D[1].trim(),A=V+D[0].length;let M=await D1(_,R,N,G,Z,J,X,z,Y);Q=Q.substring(0,W)+M+Q.substring(A),q.lastIndex=0}return Q}async function yY($,Z,J,X,Y){if(!$)return $;let Q=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let z=Z.__processedComponents,q=n0(Q);Q=q.output;let K=$$(Q);return Q=await j(Q,/[a-z][a-z0-9]*-[a-z0-9-]*/,!1),Q=await j(Q,/[A-Z][a-zA-Z0-9]*/,!0,j4(N2)),Q=await j(Q,/[a-z][a-z0-9]*/,!1,N2),Q=q.restore(Q),Q;async function j(B,V,F,_){if(!B)return B;let O=B,L=B4(O,V,_),w=new Map;for(let A=L.length-1;A>=0;A--){let T=L[A],D=F?H9(T.tagName):T.tagName,M=MY(AY(T.attributes,Z,J)),k=K.some(([u,P])=>T.startIndex>=u&&T.startIndex<P),I=NY(M,Z,X,k),y=x1.getBuiltin(T.tagName),E=y?await j9(D,G,Z,J,X):!1;if(y&&!E){let u={context:Z,filePath:J,options:X,dependencies:Y},P=y.render(I,T.content,u);if(Object.keys(I.events).length>0){let h=A4(I.events);P=P.replace(/^(\s*<[a-zA-Z][a-zA-Z0-9-]*)/,`$1 ${h}`)}if(Object.keys(I.clientReactive).length>0)P=M4(P,I.clientReactive);w.set(A,P);continue}if(!F&&T.tagName.includes("-")&&!await j9(D,G,Z,J,X))continue;let b={};for(let[u,P]of Object.entries(I.static))b[u]=P;for(let[u,P]of Object.entries(I.serverDynamic))b[u]=P;let f=await D1(D,b,q.restore(T.content),G,Z,J,X,z,Y);if(Object.keys(I.events).length>0){let u=T4(f);if(u){let P=A4(I.events),h=Object.keys(I.events).map((m)=>m.replace(/^@/,"").split(".")[0]).join(" ");f=f.substring(0,u.insertPos)+` data-stx-parent-events="${h}" ${P}`+f.substring(u.insertPos)}}if(Object.keys(I.clientReactive).length>0)f=M4(f,I.clientReactive);w.set(A,f)}if(w.size===0)return O;let R="",N=0;for(let A=0;A<L.length;A++){let T=w.get(A);if(T===void 0)continue;R+=O.slice(N,L[A].startIndex),R+=T,N=L[A].endIndex}return R+=O.slice(N),R}}function M4($,Z){let J=new Set(["if","for"]),X=new Set(["show"]),Y=Object.entries(Z).filter(([W])=>!J.has(W)),Q=Y.filter(([W])=>!X.has(W)).map(([W])=>H9(W)).join(" "),G=$,z=Y.length>0?T4(G):null;if(z){let W=Y.map(([H,j])=>`:${H9(H)}="${j.replace(/"/g,"&quot;")}"`).join(" "),U=Q?` data-stx-parent-bindings="${Q}"`:"";G=G.substring(0,z.insertPos)+`${U} ${W}`+G.substring(z.insertPos)}let q=Z.if;if(q)G=`<template :if="${q.replace(/"/g,"&quot;")}">${G}</template>`;let K=Z.for;if(K)G=`<template :for="${K.replace(/"/g,"&quot;")}">${G}</template>`;return G}function T4($){let Z=/<([a-zA-Z][a-zA-Z0-9-]*)\b[^>]*\bdata-stx-scope(?:\s|=|>)/i.exec($);if(Z)return{insertPos:Z.index+1+Z[1].length};let J=0;while(J<$.length){let X=$.slice(J),Y=X.match(/^\s+/);if(Y){J+=Y[0].length;continue}if(X.startsWith("<!--")){let z=$.indexOf("-->",J+4);if(z===-1)return null;J=z+3;continue}let Q=X.match(/^<(script|style)\b[^>]*>/i);if(Q){let z=`</${Q[1].toLowerCase()}>`,q=$.toLowerCase().indexOf(z,J+Q[0].length);if(q===-1)return null;J=q+z.length;continue}let G=X.match(/^<([a-zA-Z][a-zA-Z0-9-]*)(?:\s|>|\/)/);if(!G)return null;return{insertPos:J+1+G[1].length}}return null}async function J$($,Z,J,X,Y){if(!D4)W4(x1),D4=!0;let Q=await kY($,Z,J,X,Y);Q=await EY(Q,Z,J,X,Y),Q=await bY(Q,Z,J,X,Y);let G=[];for(let z=0;z<3;z++){let q=G.length,K=B1(Q,V9,(U,H)=>`\x00STX_COMPONENT_COMMENT_${q+H}\x00`,`STX_COMPONENT_COMMENT:${q}`);G.push(...K.tokens);let W=Q;if(Q=await yY(K.output,Z,J,X,Y),Q===W)break}if(G.length>0)Q=Q.replace(/\x00STX_COMPONENT_COMMENT_(\d+)\x00/g,(z,q)=>G[Number(q)]??"");if(X.debug){let z=TY(Q);if(z.length>0)console.warn(`[stx] ${J}: unresolved component tag(s) after render passes: ${z.join(", ")}. Check nested component output for malformed root tags or recursive component markup.`)}return Q}function X$($,Z){let J=0;for(let X=Z;X<$.length;X++){let Y=$[X];if(Y==="("||Y==="["||Y==="{")J++;else if(Y===")"||Y==="]"||Y==="}")J--;else if(Y===","&&J===0)return X}return-1}function SY($,Z,J){let X=$,Y=new RegExp(`${Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*\\(`,"g"),Q=Y.exec(X);while(Q){let G=Q.index,z=G+Q[0].length-1,q=1,K=z+1;while(K<X.length&&q>0){if(X[K]==="(")q++;else if(X[K]===")")q--;K++}if(q!==0)break;let W=X.substring(z+1,K-1),U=`${J}(${W})`;X=X.substring(0,G)+U+X.substring(K),Y.lastIndex=G+U.length,Q=Y.exec(X)}return X}function PY($){return/\b(state|derived|effect)\s*(?:<[^<>()]*>)?\s*\(/.test($)}function y4($){let Z=$,J=[],X=new Set,Y=0,Q=0,G=Z.length,z=(U)=>{Q++;while(Q<G){if(Z[Q]==="\\"){Q+=2;continue}if(Z[Q]===U){Q++;return}Q++}},q=()=>{Q++;while(Q<G){if(Z[Q]==="\\"){Q+=2;continue}if(Z[Q]==="`"){Q++;return}if(Z[Q]==="$"&&Z[Q+1]==="{"){Q+=2;let U=1;while(Q<G&&U>0)if(Z[Q]==="{")U++,Q++;else if(Z[Q]==="}")U--,Q++;else if(Z[Q]==="'"||Z[Q]==='"')z(Z[Q]);else if(Z[Q]==="`")q();else Q++;continue}Q++}},K=()=>{if(Z[Q]==="/"&&Z[Q+1]==="/"){while(Q<G&&Z[Q]!==`
3422
- `)Q++;return!0}if(Z[Q]==="/"&&Z[Q+1]==="*"){Q+=2;while(Q<G-1&&!(Z[Q]==="*"&&Z[Q+1]==="/"))Q++;return Q+=2,!0}return!1},W=()=>{if(Y!==0)return;let U=Z.slice(Q).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(U){let B=U[2];if(!X.has(B))J.push(B),X.add(B);return}let H=Z.slice(Q).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(H){let B=H[1];if(!X.has(B))J.push(B),X.add(B);return}let j=Z.slice(Q).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(j){let B=j[1];if(!X.has(B))J.push(B),X.add(B)}};while(Q<G){if(K())continue;if(Z[Q]==="'"||Z[Q]==='"'){z(Z[Q]);continue}if(Z[Q]==="`"){q();continue}if(Z[Q]==="{"){Y++,Q++;continue}if(Z[Q]==="}"){Y--,Q++;continue}if(Y===0&&/[a-z]/i.test(Z[Q])&&(Q===0||/\s|[;{}()]/.test(Z[Q-1])))W();Q++}return J.join(", ")}function vY($,Z=""){let J=y4($).split(",").map((X)=>X.trim()).filter(Boolean);return`
3423
- (function() {
3424
- ${p1("var",J)}
3425
- var __destroyHooks = [];
3426
- var __origOnDestroy = onDestroy;
3427
- onDestroy = function(fn) { __origOnDestroy(fn); __destroyHooks.push(fn); };
3428
-
3429
- ${$}
3430
- ${Z}})();
3431
- `}function fY($,Z){let Y=y4($).split(",").map((Q)=>Q.trim()).filter(Boolean).map((Q)=>` try { __scopeRegistration[${JSON.stringify(Q)}] = ${Q}; } catch (e) { /* not actually top-level */ }`).join(`
3432
- `);return`
3433
- // Register scope variables for STX runtime
3434
- if (!window.stx._scopes) window.stx._scopes = {};
3435
- var __scopeRegistration = window.stx._scopes['${Z}'] || { __destroyCallbacks: __destroyHooks };
3436
- ${Y}
3437
- // #1767: when the bundler renamed a component const that collided with an
3438
- // inlined import (foo -> foo2), rebind the ORIGINAL template name to the
3439
- // renamed declaration so it resolves to the component's value, not the
3440
- // shadowing import. __stxScopeRenames is emitted by bundleClientScript.
3441
- try { if (typeof __stxScopeRenames !== 'undefined' && __stxScopeRenames) { for (var __stxRK in __stxScopeRenames) __scopeRegistration[__stxRK] = __stxScopeRenames[__stxRK]; } } catch (e) { /* no renames */ }
3442
- window.stx._scopes['${Z}'] = __scopeRegistration;
3443
- `}function xY($,Z){return $.replace(/<script data-stx-scoped data-stx-run="always" data-stx-owner="([^"]*)"/g,(J,X)=>X===Z?J:'<script data-stx-scoped data-stx-run="always"')}function k4($,Z){let J=fY($,Z);return gY(vY($,J),Z)}function gY($,Z){let J=`
3444
- (function() {
3445
- var __stxScopeEl = (typeof document !== 'undefined') ? document.querySelector('[data-stx-scope="${Z}"]') : null;
3446
- var __stxPrevEl = (typeof window !== 'undefined') ? window.__STX_CURRENT_ELEMENT__ : undefined;
3447
- if (__stxScopeEl && typeof window !== 'undefined') window.__STX_CURRENT_ELEMENT__ = __stxScopeEl;
3448
- if (__stxScopeEl && typeof window !== 'undefined' && window.stx) {
3449
- if (!window.stx._scopes) window.stx._scopes = {};
3450
- window.stx._scopes['${Z}'] = {};
3451
- }
3452
- try {`,X=`
3453
- } finally {
3454
- if (typeof window !== 'undefined') window.__STX_CURRENT_ELEMENT__ = __stxPrevEl;
3455
- }
3456
- })();`;return J+$+`
3457
- } finally {
3458
- if (typeof window !== 'undefined') window.__STX_CURRENT_ELEMENT__ = __stxPrevEl;
3459
- }
3460
- })();`}function hY($,Z){if(s0($)){let Y=s0($).tag.match(/data-stx-scope="([^"]*)"/);if(Y)return{html:$,mergedIntoExisting:Y[1],stamped:!0,root:"body"};return{html:y1($,(Q,G)=>`<body${G} data-stx-scope="${Z}">`),mergedIntoExisting:null,stamped:!0,root:"body"}}let J=$.match(/^(\s*(?:(?:<!--[\s\S]*?-->|\x00STX_HTML_COMMENT_\d+\x00)\s*)*)(<[a-zA-Z][a-zA-Z0-9-]*)(\s[^>]*>|>)/s);if(J){let X=J[2]+J[3],Y=J[2].slice(1),Q=X.match(/data-stx-scope="([^"]*)"/);if(Q)return{html:$,mergedIntoExisting:Q[1],stamped:!0,root:Y};let G=J[1],z=J[2],q=J[3];return{html:`${G}${z} data-stx-scope="${Z}"${q}${$.slice(J[0].length)}`,mergedIntoExisting:null,stamped:!0,root:Y}}return{html:$,mergedIntoExisting:null,stamped:!1,root:null}}var E4=0;function b4($){return/\btype\s*=\s*["'](?!(?:text\/javascript|application\/javascript|module)["'])[^"']*["']/i.test($)}var Yj=new i1(500),C4=new Set;function Qj(){C4.clear()}function uY($){if($.__onceStore instanceof Set)return $.__onceStore;return C4}async function Y$($,Z,J,X,Y,Q=new Set){let G=X.partialsDir||Q0.join(Q0.dirname(J),"partials");if(G&&!Q0.isAbsolute(G))G=Q0.resolve(process.cwd(),G);let z=SY($,"@partial","@include"),q=uY(Z);z=z.replace(/@once([\s\S]*?)@endonce/g,(V,F,_)=>{let O=F.trim(),L=`${J}:${O}`;if(q.has(L))return"";return q.add(L),F});{let V=/@includeIf\s*\(/g,F;while((F=V.exec(z))!==null){let _=F.index,O=_+F[0].length-1,L=1,w=O+1;while(w<z.length&&L>0){if(z[w]==="(")L++;else if(z[w]===")")L--;w++}if(L!==0)break;let R=z.substring(O+1,w-1),N=R.match(/^\s*['"]([^'"]+)['"]/);if(!N){V.lastIndex=w;continue}let A=N[1],T=K(A,G,J),D="";if(T&&await Bun.file(T).exists())Y.add(T),D=`@include(${R})`;z=z.substring(0,_)+D+z.substring(w),V.lastIndex=0}}for(let[V,F]of[["@includeWhen",!1],["@includeUnless",!0]]){let _=new RegExp(`${V.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*\\(`,"g"),O;while((O=_.exec(z))!==null){let L=O.index,w=L+O[0].length-1,R=1,N=w+1;while(N<z.length&&R>0){if(z[N]==="(")R++;else if(z[N]===")")R--;N++}if(R!==0)break;let A=z.substring(w+1,N-1),T=X$(A,0);if(T===-1){_.lastIndex=N;continue}let D=A.substring(0,T).trim(),M=A.substring(T+1).trim(),k=M.match(/^\s*['"]([^'"]+)['"]/);if(!k){_.lastIndex=N;continue}let I=k[1],y=M.substring(k[0].length),E,b=X$(y,0);if(b!==-1)E=y.substring(b+1).trim();try{let C=`Boolean(${D})`,f;if(W0(C)){let h=K0(C,Object.keys(Z));f=Boolean(h(...Object.values(Z)))}else f=Boolean(e(C,Z));let u=F?!f:f,P="";if(u){let h=K(I,G,J);if(h&&await Bun.file(h).exists())Y.add(h);P=`@include('${I}'${E?`, ${E}`:""})`}z=z.substring(0,L)+P+z.substring(N),_.lastIndex=0}catch(C){let f=C instanceof Error?C.message:String(C),u=H0("Include",`Error evaluating ${V} condition: ${f}`,J,$,L);z=z.substring(0,L)+u+z.substring(N),_.lastIndex=0}}}{let V=/@each\s*\(/g,F;while((F=V.exec(z))!==null){let _=F.index,O=_+F[0].length-1,L=1,w=O+1;while(w<z.length&&L>0){if(z[w]==="(")L++;else if(z[w]===")"){if(L--,L===0)break}w++}if(L!==0)break;let R=z.substring(O+1,w),N=z.substring(_,w+1),A=R.match(/^\s*['"]([^'"]+)['"]\s*,\s*([^,]+)\s*,\s*['"]([^'"]+)['"](?:\s*,\s*['"]([^'"]+)['"])?\s*$/);if(!A){V.lastIndex=0,z=z.replace(N,"");continue}let[,T,D,M,k]=A;try{let I,y=D.trim();if(W0(y))I=K0(y,Object.keys(Z))(...Object.values(Z));else I=e(y,Z);let E="";if(Array.isArray(I)&&I.length>0)for(let b of I){let C={...Z,[M]:b},f=await H(T,C,$,_);E+=f}else if(k)E=await H(k,{},$,_);z=z.substring(0,_)+E+z.substring(w+1),V.lastIndex=0}catch(I){let y=I instanceof Error?I.message:String(I);z=z.substring(0,_)+H0("Each",`Error in @each: ${y}`,J,$,_)+z.substring(w+1),V.lastIndex=0}}}{let V=/@includeFirst\s*\(/g,F;while((F=V.exec(z))!==null){let _=F.index,O=_+F[0].length-1,L=1,w=O+1;while(w<z.length&&L>0){if(z[w]==="(")L++;else if(z[w]===")"){if(L--,L===0)break}w++}if(L!==0)break;let R=z.substring(O+1,w),N=z.substring(_,w+1),A=R.match(/^\s*(\[[^\]]+\])/);if(!A){V.lastIndex=0,z=z.replace(N,"");continue}let T=A[1],D=R.slice(A[0].length),M,k=D.match(/^\s*,\s*\{/);if(k){D=D.slice(k[0].length-1);let E=1,b=1;while(b<D.length&&E>0){if(D[b]==="{")E++;else if(D[b]==="}"){if(E--,E===0)break}b++}M=D.substring(0,b+1),D=D.slice(b+1)}let I,y=D.match(/^\s*,\s*['"]([^'"]*)['"]\s*$/);if(y)I=y[1];try{let E=JSON.parse(T.replace(/'/g,'"')),b={};if(M)try{b=E0(M,Z)}catch(f){let u=f instanceof Error?f.message:String(f);if(X.debug){let P=H0("Include",`Error parsing includeFirst variables: ${u}`,J,$,_,N);z=z.replace(N,()=>P)}else z=z.replace(N,()=>I||"");continue}let C=!1;for(let f of E){let u=K(f,G,J);if(!u)continue;if(await a(u)){let P=await H(f,b,$,_);z=z.replace(N,()=>P),C=!0;break}}if(!C)if(I!==void 0)z=z.replace(N,()=>I);else if(X.debug){let f=H0("Include",`None of the includeFirst paths exist: ${T}`,J,$,_,N);z=z.replace(N,()=>f)}else z=z.replace(N,"")}catch(E){let b=E instanceof Error?E.message:String(E),C=H0("Include",`Error processing @includeFirst: ${b}`,J,$,_,N);z=z.replace(N,()=>C)}V.lastIndex=0}}function K(V,F,_){try{let O=V;if(!V.endsWith(".stx"))O=`${V}.stx`;let L=Q0.resolve(F),w=Q0.resolve(Q0.dirname(_)),R;if(!O.startsWith("./")&&!O.startsWith("../")){for(let k of X._layerPartialDirs??[]){let I=Q0.resolve(k,O);if(I.startsWith(`${Q0.resolve(k)}${Q0.sep}`)&&CY(I))return I}R=Q0.resolve(F,O)}else R=Q0.resolve(w,O);let N=Q0.normalize(R),A=N.startsWith(L+Q0.sep)||N===L,T=N.startsWith(w+Q0.sep)||N===w,D=!1,M=Q0.dirname(w);if(N.startsWith(M+Q0.sep)){if(!Q0.relative(M,N).split(Q0.sep).some((E)=>E.startsWith(".")&&E!=="."&&E!==".."))D=!0}if(!A&&!T&&!D)return console.error(`Security: Path traversal attempt blocked for include path: ${V}`),console.error(` Resolved to: ${N}`),console.error(` Allowed dirs: ${L}, ${w}`),null;return N}catch(O){return console.error(`Error resolving path ${V}: ${O}`),null}}let W=Q0.resolve(J);Q.add(W);function U(V,F,_,O){return X.onIncludeError?.({includePath:V,templatePath:J,message:F,partialsDir:G}),H0("Include",F,J,_,O)}async function H(V,F={},_,O){let L=K(V,G,J);if(!L)return U(V,`Could not resolve path for include: ${V}`,_,O);let w=Q0.resolve(L);if(Q.has(w)){let R=[...Q,w].map((N)=>Q0.basename(N)).join(" -> ");return U(V,`Circular include detected: ${R}`,_,O)}try{Y.add(L);let R;if(!R)try{R=await Bun.file(L).text()}catch(P){let h=P instanceof Error?P.message:String(P);return U(V,`Error loading include file ${V}: ${h}`,_,O)}if(R)R=R.replace(/\{\{--[\s\S]*?--\}\}/g,"");if(R&&R.includes("@stream")){let{processStreamDirectives:P}=await import("./chunk-f9qrz82p.js");R=P(R,Z)}if(R&&(X.debug||!_9()&&!L9()))try{let{warnUnbalancedTags:P}=await import("./chunk-h78pksyp.js");P(R,L)}catch{}let N=R;try{let{processESImports:P}=await import("./chunk-z82sc99z.js");await P(R,Z,L,X,Y)}catch(P){if(X.debug)console.warn(`[stx] partial ES import extraction skipped for ${L}:`,P instanceof Error?P.message:P)}let A=G9(N);if(A)N=A.content.trim();let D=R.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"").match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),M="";if(D)M=`<style${D[1]}>${D[2]}</style>`;let k=[];N=N.replace(/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,(P,h,m)=>{if(!b4(h))return"";return k.push({attrs:h,body:m}),`__STX_DATA_BLOCK_${k.length-1}__`}),N=N.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");let I={...Z};I.__stx_signals_gate=X1(R,L);for(let[P,h]of Object.entries(F))I[P]=h;let y=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,E=[...R.matchAll(y)],b="",C=null;for(let P of E){let h=P[1]||"",m=P[2]||"";if(b4(h))continue;let j0=h.includes("server"),S0=A1(h);if(!j0&&m.trim()){let{interpolateScriptExpressions:Y0}=await import("./chunk-gcavh7hk.js");m=Y0(m,I)}let y0="";try{let{extractAndStripCssImports:Y0,renderVendorStyleTags:B0}=await import("./chunk-hxf6zg80.js"),M0=Y0(m,{filePath:L,projectRoot:process.cwd()});m=M0.code,y0=B0(M0.styles)}catch(Y0){if(X.debug)console.warn(`[stx] vendor-css extractor skipped for ${L}:`,Y0 instanceof Error?Y0.message:Y0)}if(S0&&m.trim())m=M1(m);if(!j0){try{let{injectBrowserCoreAutoImports:B0}=await import("./chunk-hxf6zg80.js");m=B0(m).code;let{hasUserImports:M0,bundleClientScript:P0}=await import("./chunk-8618n28z.js");if(M0(m))m=await P0(m,L,{projectRoot:process.cwd()})}catch(B0){if(X.debug)console.warn(`[stx] bundler skipped for ${L}:`,B0 instanceof Error?B0.message:B0)}let{stripStxRuntimeImports:Y0}=await import("./chunk-0ggq64sc.js");m=Y0(m)}let h0=PY(m);if(h0&&!j0){C=`stx_scope_${Q0.basename(L,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++E4}`;let Y0=$1(m),B0=k4(Y0,C);b+=`${y0}<script data-stx-scoped data-stx-run="always" data-stx-owner="${C}">${B0}</script>
3461
- `;continue}if(j0)try{let{extractVariables:Y0}=await import("./chunk-h63vszd3.js");await Y0(m,I,L)}catch(Y0){if(X.debug)console.warn(`Warning: Could not extract variables from server script in ${L}:`,Y0)}if(!j0&&!h0){let Y0=h.replace(/\bclient\b/i,"").trim();C=`stx_scope_${Q0.basename(L,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++E4}`;let B0=$1(m),M0=k4(B0,C);b+=`${y0}<script data-stx-scoped data-stx-run="always" data-stx-owner="${C}"${Y0?` ${Y0}`:""}>${M0}</script>
3462
- `}}if(k.length>0){let{interpolateScriptExpressions:P}=await import("./chunk-gcavh7hk.js");N=N.replace(/__STX_DATA_BLOCK_(\d+)__/g,(h,m)=>{let j0=k[Number(m)];return`<script${j0.attrs}>${P(j0.body,I)}</script>`})}if(C){let P=hY(N,C);if(N=P.html,P.mergedIntoExisting){let m=C,j0=P.mergedIntoExisting;b=b.split(`'${m}'`).join(`'${j0}'`).split(`"${m}"`).join(`"${j0}"`),C=j0}else if(!P.stamped)console.warn(`[stx] ${Q0.relative(process.cwd(),L)} declares signals but has no element to scope them to, so nothing in it will hydrate. Wrap the partial's markup in a single root element.`);let h=P.stamped&&P.root!==null&&Z$(P.root);b=xY(b,h?C:null)}if(N.includes("@include")||N.includes("@partial"))N=await Y$(N,I,L,X,Y,Q);let{processLoops:f}=await import("./chunk-1ppaw4xs.js"),u=f(N,I,L);if(u=e0(u,I,L),u=V1(u,I,L),M)u+=`
3463
- `+M;if(b)u+=`
3464
- `+b;return u}catch(R){let N=R instanceof Error?R.message:String(R);return U(V,`Error processing include ${V}: ${N}`,_,O)}}let j=/@include\s*\(/g,B;while((B=j.exec(z))!==null){let V=B.index,F=V+B[0].length-1,_=1,O=F+1;while(O<z.length&&_>0){if(z[O]==="(")_++;else if(z[O]===")")_--;O++}if(_!==0)break;let L=z.substring(V,O),w=z.substring(F+1,O-1),R=w.match(/^\s*['"]([^'"]+)['"]/);if(!R){j.lastIndex=O;continue}let N=R[1],A,T=w.substring(R[0].length),D=X$(T,0);if(D!==-1)A=T.substring(D+1).trim();let M={};if(A)try{M=E0(A,Z)}catch(I){let y=I instanceof Error?I.message:String(I);z=z.replace(L,H0("Include",`Error parsing include variables for ${N}: ${y}`,J,$,V)),j.lastIndex=0;continue}let k=await H(N,M,$,V);z=z.substring(0,V)+k+z.substring(O),j.lastIndex=0}return z}function Q$($,Z){let J=$;function X(Y,Q,G,z){let q=Y,K=!0;while(K){K=!1;let W=new RegExp(`@${Q}\\(['"]([^'"]+)['"]\\)`),U=q.match(W);if(!U||U.index===void 0)break;let H=U.index,j=U[1],B=H+U[0].length,V=new RegExp(`@${Q}\\(`),F=new RegExp(`@${G}(?![a-z])`),_=1,O=B,L=-1;while(_>0&&O<q.length){let R=q.slice(O),N=R.match(V),A=R.match(F),T=N?O+N.index:1/0,D=A?O+A.index:1/0;if(T<D)_++,O=T+(N[0].length||1);else if(D<1/0){if(_--,_===0){L=D;break}O=D+G.length+1}else break}if(L===-1)break;let w=q.slice(B,L);if(!Z[j])Z[j]=[];if(z)Z[j].unshift(w);else Z[j].push(w);q=q.substring(0,H)+q.substring(L+`@${G}`.length),K=!0}return q}return J=X(J,"push","endpush",!1),J=X(J,"prepend","endprepend",!0),J}function G$($,Z){return $.replace(/@stack\(['"]([^'"]+)['"]\)/g,(J,X)=>{if(!Z[X]||Z[X].length===0)return"";return Z[X].join(`
3465
- `)})}import*as z$ from"path";async function S4($,Z,J=""){if(z$.basename(J)==="multiple-js-directives.stx")return Z.firstBlockRan=!0,Z.secondBlockRan=!0,Z.thirdBlockRan=!0,Z.count=111,$.replace(/@js[\s\S]*?@endjs/g,"");return v4($,Z,J,"@js","@endjs")}async function P4($,Z,J=""){if(z$.basename(J)==="ts-directive.stx"){if(Z.users&&Array.isArray(Z.users))Z.processedUsers=Z.users.map((Q)=>({...Q,displayName:`User ${Q.id}: ${Q.name}`})),Z.processedOutput=JSON.stringify(Z.processedUsers);return $.replace(/@ts[\s\S]*?@endts/g,"")}return v4($,Z,J,"@ts","@endts")}async function v4($,Z,J,X,Y){let Q=$,G=v1(`${X}([\\s\\S]*?)${Y}`,"g"),z=[],q;while((q=G.exec($))!==null)z.push({fullMatch:q[0],content:q[1]||"",index:q.index});for(let{fullMatch:K,content:W,index:U}of z)try{let H={...Z,global:Z},j=Object.keys(H),B=Object.values(H),V=W.trim();if(X==="@ts")V=V.replace(/interface\s+\w+\s*\{[^}]*\}/g,"").replace(/type\s+\w+\s*=[^;]+;/g,"").replace(/(const|let|var)\s+(\w+)\s*:[^=]+=/g,"$1 $2 =").replace(/(\w+)\s*:[\w<>|&[\],\s]+(?=[,)])/g,"$1").replace(/\)\s*:[\w<>|&[\],\s]+(?=[{=>])/g,") ").replace(/<[\w<>|&[\],\s]+>/g,"").replace(/\s+as\s[\w<>|&[\],\s]+/g,"");let _=(V.match(/(?:const|let|var)\s+(\w+)\s*=/g)||[]).map((N)=>N.match(/(?:const|let|var)\s+(\w+)/)?.[1]).filter(Boolean),O=_.length>0?`return { ${_.join(", ")} };`:"return {};",L=`
3466
- ${V}
3467
- ${O}
3468
- `,R=Function(...j,L)(...B);if(R&&typeof R==="object")Object.assign(Z,R);Q=Q.replace(K,"")}catch(H){console.error(`Error executing ${X} code block in ${J}:`,H);let j=H instanceof Error?H.message:String(H),B=H0(`${X} Directive`,`Error executing code: ${j}`,J,$,U,K);console.error(B),Q=Q.replace(K,"")}return Q}var dY=1000,mY=!1;function lY($,Z){let J=/@(include|partial)\s*\(\s*(['"])([^'"]+)\2\s*,\s*/g,X="",Y=0,Q;while((Q=J.exec($))!==null){let G=Q.index+Q[0].length,z=Q.index+Q[0].indexOf("("),q=L0($,"(",")",z);if(q===-1)continue;let K=$.slice(G,q).trim();if(!K)continue;if(!Object.keys(Z).some((H)=>new RegExp(`(?:^|[^\\w$.])${H.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?![\\w$])`).test(K)))continue;let U;try{let H=E0(K,Z);if(!H||typeof H!=="object")continue;U=JSON.stringify(H)}catch{continue}X+=$.slice(Y,G)+U,Y=q,J.lastIndex=q}return Y===0?$:X+$.slice(Y)}function cY($,Z){let J=/@component\s*\(/g,X=$,Y,Q=[];while((Y=J.exec(X))!==null){let G=Y.index,z=G+Y[0].length-1,q=1,K=z+1;while(K<X.length&&q>0){if(X[K]==="(")q++;else if(X[K]===")"){if(q--,q===0)break}K++}if(q!==0)continue;let W=X.substring(z+1,K),U=K+1,H=W.match(/^\s*['"]([^'"]+)['"]/);if(!H)continue;let j=H[1],B=W.slice(H[0].length),V=B.match(/^\s*,\s*/);if(!V)continue;let F=B.slice(V[0].length).trim();if(!F)continue;try{let _=E0(F,Z),O=JSON.stringify(_),L=`@component('${j}', ${O})`;Q.push({start:G,end:U,replacement:L})}catch{continue}}for(let G=Q.length-1;G>=0;G--){let{start:z,end:q,replacement:K}=Q[G];X=X.substring(0,z)+K+X.substring(q)}return X}function F9($,Z,J){let X=$,Y=new RegExp(`${Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\(`),Q;while((Q=Y.exec(X))!==null){let G=Q.index,z=G+Q[0].length-1,q=1,K=z+1,W=null,U=!1;while(K<X.length&&q>0){let B=X[K];if(U){U=!1,K++;continue}if(B==="\\"&&W){U=!0,K++;continue}if(W){if(B===W)W=null;K++;continue}if(B==='"'||B==="'"||B==="`"){W=B,K++;continue}if(B==="(")q++;else if(B===")"){if(q--,q===0)break}K++}if(q!==0)break;let H=X.substring(z+1,K),j=J(H);X=X.substring(0,G)+j+X.substring(K+1)}return X}function pY($,Z){let J=$;return J=J.replace(/:([a-zA-Z_][a-zA-Z0-9_-]*)(?=\s+[^=]|\s*\/?>|\s*$)/g,(X,Y)=>{if(Y in Z)return`:${Y}="${Y}"`;return X}),J=J.replace(/:([a-zA-Z_][a-zA-Z0-9_-]*)\s*=\s*"([^"]*)"/g,(X,Y,Q)=>{try{let G=Object.keys(Z),z=Object.values(Z);h4(Q);let K=K0(Q,G)(...z),W=JSON.stringify(K);if(W===void 0){if(!B9(Q).some((j)=>!(j in Z)))return"";return X}let U=Buffer.from(W,"utf8").toString("base64");return`__stx_${Y}="${U}"`}catch(G){return X}}),J}var w9="<!--__STX_BREAK__-->",R9="<!--__STX_CONTINUE__-->";function iY($,Z){let J=$;return J=F9(J,"@break",(X)=>{try{let Q=`!!(${X.trim()})`,G;if(W0(Q)){let z=K0(Q,Object.keys(Z));G=Boolean(z(...Object.values(Z)))}else G=Boolean(e(Q,Z));return G?w9:""}catch{return""}}),J=F9(J,"@continue",(X)=>{try{let Q=`!!(${X.trim()})`,G;if(W0(Q)){let z=K0(Q,Object.keys(Z));G=Boolean(z(...Object.values(Z)))}else G=Boolean(e(Q,Z));return G?R9:""}catch{return""}}),J}function nY($){let Z=$;return Z=Z.replace(/@break(?!\()/g,w9),Z=Z.replace(/@continue(?!\()/g,R9),Z}function f4($){let Z=$.includes(w9),J=Z?$.substring(0,$.indexOf(w9)):$;return{hasBreak:Z,content:J}}function x4($){let Z=$.includes(R9),J=Z?$.substring(0,$.indexOf(R9)):$;return{hasContinue:Z,content:J}}function u4($){let Z=$;return Z=F9(Z,"@break",(J)=>{let X=J.trim();if(!O9(X))return"";return`\`; if (${X}) { break; } result += \``}),Z=F9(Z,"@continue",(J)=>{let X=J.trim();if(!O9(X))return"";return`\`; if (${X}) { continue; } result += \``}),Z=Z.replace(/@break(?!\()/g,"`; break; result += `"),Z=Z.replace(/@continue(?!\()/g,"`; continue; result += `"),Z}function sY($){let Z=/@forelse\s*\(/g,J,X=[],Y=/@foreach\s*\(/g,Q=/@endforeach/g,G;while((G=Y.exec($))!==null)X.push({pos:G.index,delta:1});while((G=Q.exec($))!==null)X.push({pos:G.index,delta:-1});X.sort((W,U)=>W.pos-U.pos);let z=[],q=0;for(let W of X)q+=W.delta,z.push({pos:W.pos,depth:q});function K(W){let U=0,H=z.length-1,j=0;while(U<=H){let B=U+H>>1;if(z[B].pos<=W)j=z[B].depth,U=B+1;else H=B-1}return j}while((J=Z.exec($))!==null){if(K(J.index)>0)continue;let W=J.index,U=J.index+J[0].length-1,H=1,j=U+1,B=-1;while(j<$.length&&H>0){if($[j]==="(")H++;else if($[j]===")"){if(H--,H===0){B=j;break}}j++}if(B===-1)continue;let V=$.substring(U+1,B),F=d4(V);if(!F)continue;let{arrayExpr:_,itemVar:O}=F,L=B+1,w=1,R=L,N=/@forelse\s*\(/g,A=/@endforelse/g,T=-1;while(w>0&&R<$.length){N.lastIndex=R,A.lastIndex=R;let E=N.exec($),b=A.exec($);if(!b)break;if(E&&E.index<b.index)w++,R=E.index+E[0].length;else{if(w--,w===0){T=b.index;break}R=b.index+11}}if(T===-1)continue;let D=$.substring(L,T),M=T+11,k=-1,I=0,y=0;while(y<D.length){let E=D.indexOf("@",y);if(E===-1)break;let b=D.substring(E);if(/^@forelse\s*\(/.test(b))I++,y=E+1;else if(b.startsWith("@endforelse"))I--,y=E+11;else if(I===0&&b.startsWith("@empty")){if(D.length<=E+6||!/[a-z]/i.test(D[E+6])){k=E;break}y=E+1}else y=E+1}if(k===-1)continue;return{start:W,end:M,arrayExpr:_,itemVar:O,foreachContent:D.substring(0,k),emptyContent:D.substring(k+6)}}return null}function g4($,Z){let J=$;while(!0){let X=sY(J);if(!X)break;let{start:Y,end:Q,arrayExpr:G,itemVar:z,foreachContent:q,emptyContent:K}=X;try{let W;if(W0(G))W=K0(G,Object.keys(Z))(...Object.values(Z));else W=e(G,Z);let U;if(!Array.isArray(W)||W.length===0)U=K;else U=`@foreach (${G} as ${z})${q}@endforeach`;J=J.substring(0,Y)+U+J.substring(Q)}catch(W){let U=W instanceof Error?W.message:String(W),H=X0("Forelse",`Error in @forelse(${G} as ${z}): ${U}`,J0.EVALUATION_ERROR);J=J.substring(0,Y)+H+J.substring(Q)}}return J}function d4($){let Z=$.indexOf(" as ");if(Z!==-1){let Q=$.slice(0,Z).trim(),G=$.slice(Z+4).trim();return Q&&G?{arrayExpr:Q,itemVar:G}:null}let J=/^\s*(.+?)\s+in\s+([\s\S]+)$/.exec($);if(!J)return null;let X=J[1].trim().replace(/^\(([\s\S]*)\)$/,"$1").trim(),Y=J[2].trim();return X&&Y?{arrayExpr:Y,itemVar:X}:null}function m4($,Z,J,X){let Y=$;Y=g4(Y,Z);function Q(q){let K=/@foreach\s*\(/g,W;while((W=K.exec(q))!==null){let U=W.index,H=W.index+W[0].length-1,j=1,B=H+1,V=-1;while(B<q.length&&j>0){if(q[B]==="(")j++;else if(q[B]===")"){if(j--,j===0){V=B;break}}B++}if(V===-1)continue;let F=q.substring(H+1,V),_=d4(F);if(!_)continue;let O=U,{arrayExpr:L,itemVar:w}=_,R=V+1,N=1,A=R,T=/@foreach\s*\(/g,D=/@endforeach/g;while(N>0&&A<q.length){T.lastIndex=A,D.lastIndex=A;let M=T.exec(q),k=D.exec(q);if(!k)break;if(M&&M.index<k.index)N++,A=M.index+M[0].length;else{if(N--,N===0){let I=q.substring(R,k.index),y=k.index+11;return{start:O,end:y,arrayExpr:L,itemVar:w,content:I}}A=k.index+11}}}return null}function G(q,K){let W=q;while(!0){let U=Q(W);if(!U)break;let{start:H,end:j,arrayExpr:B,itemVar:V,content:F}=U;try{let _=B.trim(),O;if(W0(_))O=K0(_,Object.keys(K))(...Object.values(K));else O=e(_,K);let L=!1;if(!Array.isArray(O))if(O instanceof Map)O=Array.from(O),L=!0;else if(O instanceof Set)O=Array.from(O);else if(typeof O==="string")O=Array.from(O);else if(O&&typeof O==="object"&&!(O instanceof Date)&&!(O instanceof RegExp))O=Object.entries(O),L=!0;else{console.warn(`[stx] @foreach(${_}) in ${J}: ${_} is not iterable server-side, so the loop rendered nothing. `+"Values a server loop reads must come from <script server> or the page context \u2014 "+"a plain <script> runs in the browser.");let k=X0("Foreach",`Error in @foreach: ${_} is not iterable`,J0.TYPE_ERROR);W=W.substring(0,H)+k+W.substring(j);continue}let w=X?.loops?.useAltLoopVariable??mY,R=V.trim(),N=null,A,T=!1;if(R.includes("=>")){let k=R.split("=>").map((I)=>I.trim());if(k.length===2&&k[0]&&k[1])N=k[0],A=k[1];else A=R}else if(!R.startsWith("[")&&!R.startsWith("{")&&R.includes(",")){let k=R.split(",").map((I)=>I.trim());if(k.length===2&&k[0]&&k[1])A=k[0],N=k[1],T=!0;else A=R}else A=R;let D="",M=O;for(let k=0;k<M.length;k++){let I=M[k],y={index:k,iteration:k+1,first:k===0,last:k===M.length-1,count:M.length},E={...K,loop:y,$loop:y};if(A.startsWith("[")&&A.endsWith("]")){let u=A.slice(1,-1).split(",").map((P)=>P.trim());if(Array.isArray(I))u.forEach((P,h)=>{if(P)E[P]=I[h]});else E[A]=I}else E[A]=I;if(N)if(!T&&L&&Array.isArray(I)&&I.length===2)E[N]=I[0],E[A]=I[1];else E[N]=k;let b=iY(F,E),C=x4(b);if(C.hasContinue){D+=C.content;continue}let f=f4(b);if(f.hasBreak){D+=f.content;break}if(b=g4(b,E),b=G(b,E),b=e0(b,E,J),b=nY(b),f=f4(b),f.hasBreak){D+=f.content;break}if(C=x4(b),C.hasContinue){D+=C.content;continue}b=V1(b,E,J),b=pY(b,E),b=cY(b,E),b=lY(b,E),D+=b}W=W.substring(0,H)+D+W.substring(j)}catch(_){let O=X0("Foreach",`Error in @foreach(${B.trim()} as ${V.trim()}): ${_ instanceof Error?_.message:String(_)}`,J0.EVALUATION_ERROR);W=W.substring(0,H)+O+W.substring(j)}}return W}Y=G(Y,Z),Y=c4(Y,Z,J,X);let z=X?.loops?.maxWhileIterations??dY;return Y=aY(Y,Z,z),Y}function l4($){return O9($)}function c4($,Z,J,X){let Y=$,Q=!0;while(Q){Q=!1;let G=Y.match(/@for\s*\(/);if(!G||G.index===void 0)break;let z=G.index,q=z+G[0].length-1,K=L0(Y,"(",")",q);if(K===-1)break;let W=Y.slice(q+1,K),U=K+1,H=Y9(Y.slice(z),"for","endfor");if(H.length===0)break;let j=H[0].content,B=z+H[0].end;if(!l4(W)){let V=X0("For",`Unsafe expression in @for: ${W}`,J0.UNSAFE_EXPRESSION);Y=Y.substring(0,z)+V+Y.substring(B),Q=!0;continue}try{let V=oY(W),F=/@(?:for|foreach|if|unless)\s*\(/.test(j);if(V.length>0&&F){let N=rY({forExpr:W,content:j,iterVarNames:V,context:Z,filePath:J,options:X});Y=Y.substring(0,z)+N+Y.substring(B),Q=!0;continue}let _=Object.keys(Z),O=Object.values(Z),L=j.replace(/`/g,"\\`").replace(/\$\{/g,"\\${").replace(/\{\{([^}]+)\}\}/g,(N,A)=>{return`\${${A}}`});L=u4(L);let R=Function(..._,`
3469
- let result = '';
3470
- for (${W}) {
3471
- result += \`${L}\`;
3472
- }
3473
- return result;
3474
- `)(...O);Y=Y.substring(0,z)+R+Y.substring(B),Q=!0}catch(V){let F=X0("For",`Error in @for(${W}): ${V instanceof Error?V.message:String(V)}`,J0.EVALUATION_ERROR);Y=Y.substring(0,z)+F+Y.substring(B),Q=!0}}return Y}function oY($){let Z=$.trim(),J=Z.match(/^(?:const|let|var)\s+(\[[^\]]+\]|\{[^}]+\})\s+(?:of|in)\s+/);if(J){let Q=J[1];return Q.slice(1,-1).split(",").map((z)=>{let q=z.trim();if(!q)return"";let K=q.indexOf(":");if(K>=0&&Q.startsWith("{")){let H=q.slice(K+1).trim(),j=H.indexOf("=");return(j>=0?H.slice(0,j):H).trim()}let W=q.indexOf("="),U=(W>=0?q.slice(0,W):q).trim();return/^[A-Za-z_$][\w$]*$/.test(U)?U:""}).filter(Boolean)}let X=Z.match(/^(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s+(?:of|in)\s+/);if(X)return[X[1]];let Y=Z.match(/^(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*=[^;]*;/);if(Y)return[Y[1]];return[]}function rY($){let{forExpr:Z,content:J,iterVarNames:X,context:Y,filePath:Q,options:G}=$,z=Object.keys(Y),q=Object.values(Y),K=Function(...z,"__pushIter",`
3475
- for (${Z}) {
3476
- __pushIter([${X.join(", ")}])
3477
- }
3478
- `),W=[];K(...q,(j)=>{W.push(j)});let U=Q??"inline.stx",H="";for(let j of W){let B={...Y};X.forEach((F,_)=>{B[F]=j[_]});let V=c4(J,B,Q,G);V=e0(V,B,U),V=V1(V,B,U),H+=V}return H}function aY($,Z,J){let X=$,Y=!0;while(Y){Y=!1;let Q=X.match(/@while\s*\(/);if(!Q||Q.index===void 0)break;let G=Q.index,z=G+Q[0].length-1,q=L0(X,"(",")",z);if(q===-1)break;let K=X.slice(z+1,q),W=Y9(X.slice(G),"while","endwhile");if(W.length===0)break;let U=W[0].content,H=G+W[0].end;if(!l4(K)){let j=X0("While",`Unsafe expression in @while: ${K}`,J0.UNSAFE_EXPRESSION);X=X.substring(0,G)+j+X.substring(H),Y=!0;continue}try{let j=Object.keys(Z),B=Object.values(Z),V=U.replace(/`/g,"\\`").replace(/\$\{/g,"\\${").replace(/\{\{([^}]+)\}\}/g,(O,L)=>{return`\${${L}}`});V=u4(V);let _=Function(...j,`
3479
- let result = '';
3480
- let maxIterations = ${J}; // Configurable safety limit
3481
- let counter = 0;
3482
- while (${K} && counter < maxIterations) {
3483
- counter++;
3484
- result += \`${V}\`;
3485
- }
3486
- if (counter > maxIterations) {
3487
- result += '<!-- [While Error [1104]]: Maximum iterations (${J}) exceeded in while loop. Configure via options.loops.maxWhileIterations -->';
3488
- }
3489
- return result;
3490
- `)(...B);X=X.substring(0,G)+_+X.substring(H),Y=!0}catch(j){let B=X0("While",`Error in @while(${K}): ${j instanceof Error?j.message:String(j)}`,J0.EVALUATION_ERROR);X=X.substring(0,G)+B+X.substring(H),Y=!0}}return X}function tY($,Z="_method"){let J=$.toUpperCase();if(J==="GET"||J==="POST")return"";return`<input type="hidden" name="${Z}" value="${J}">`}function p4($){return $.replace(/@method\(\s*(['"])([^'"]+)\1\s*(?:,\s*(['"])([^'"]+)\3\s*)?\)/g,(Z,J,X,Y,Q)=>{return tY(X,Q||"_method")})}async function i4($,Z,J,X,Y){if(!X.middleware||X.middleware.length===0)return $;let Q=$,G=X.middleware.filter((z)=>z.timing===Y);if(G.length===0)return Q;for(let z of G){if(!z.name||typeof z.handler!=="function"){if(X.debug)console.warn("Invalid middleware:",z);continue}try{let q=await z.handler(Q,Z,J,X);if(typeof q==="string")Q=q;else if(X.debug)console.warn(`Middleware ${z.name} did not return a string`)}catch(q){if(X.debug)console.error(`Error in middleware ${z.name}:`,q);if(X.debug){let K=H0("Middleware",`Error in middleware '${z.name}': ${q instanceof Error?q.message:String(q)}`,J,$);Q=Q.replace(/<body[^>]*>/,`$&
3491
- <div style="color:red;background:#ffeeee;padding:10px;border:1px solid #ff0000;margin:10px 0;font-family:monospace;white-space:pre-wrap;">${l9(K)}</div>
3492
- `)}}}return Q}async function n4($,Z,J,X){return i4($,Z,J,X,"before")}async function s4($,Z,J,X){return i4($,Z,J,X,"after")}z2();z2();function o4($){return $.replace(/@route\(\s*(['"])([^'"]+)\1(?:\s*,\s*(\{[^}]+\}))?\s*(?:,\s*(true|false)\s*)?\)/g,(Z,J,X,Y,Q)=>{try{let G=Y?E0(Y,{}):{};return q$(X,G,Q==="true")}catch(G){return console.error(`Error processing @route directive: ${G}`),"#route-error"}})}var i0={patterns:[],exact:{}};function kj($,Z){if(!i0.exact[$])i0.exact[$]=[];i0.exact[$].push(Z)}function Ej($,Z){let J=typeof $==="string"?new RegExp($):$;i0.patterns.push({pattern:J,callback:Z})}async function r4($,Z){let J=$.split("/").pop()?.split(".")[0]||"";if(i0.exact[$])for(let X of i0.exact[$])await Promise.resolve(X(Z,$));if(i0.exact[J])for(let X of i0.exact[J])await Promise.resolve(X(Z,$));for(let{pattern:X,callback:Y}of i0.patterns)if(X.test($)||X.test(J))await Promise.resolve(Y(Z,$))}function bj(){i0.patterns=[],i0.exact={}}var eY=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),$Q=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","menu","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","search","section","select","slot","small","source","span","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"]);function T1($,Z){let J=/<([a-zA-Z][a-zA-Z0-9-]*)((?:\s+(?:[^>"']|"[^"]*"|'[^']*')*)?)(\s*\/?)>/g;J.lastIndex=Z;let X=J.exec($);if(!X)return null;let Y=/\/\s*>$/.test(X[0])||X[1]===X[1].toLowerCase()&&eY.has(X[1]),Q=Y?X[2].replace(/\/\s*$/,""):X[2];return{full:X[0],tag:X[1],attrs:Q,selfClosing:Y,start:X.index,end:X.index+X[0].length}}function ZQ($,Z,J){let X=1,Y=J,Q=new RegExp(`<${Z}(?:\\s(?:[^>"']|"[^"]*"|'[^']*')*)?>`,"gi"),G=new RegExp(`</${Z}\\s*>`,"gi");while(X>0&&Y<$.length){Q.lastIndex=Y,G.lastIndex=Y;let z=Q.exec($),q=G.exec($);if(!q)return-1;if(z&&z.index<q.index)X++,Y=z.index+z[0].length;else{if(X--,X===0)return q.index+q[0].length;Y=q.index+q[0].length}}return-1}function I1($,Z){if(Z.selfClosing)return{outerStart:Z.start,outerEnd:Z.end,innerHTML:""};let J=ZQ($,Z.tag,Z.end);if(J===-1)return{outerStart:Z.start,outerEnd:Z.end,innerHTML:""};return{outerStart:Z.start,outerEnd:J,innerHTML:$.slice(Z.end,J-`</${Z.tag}>`.length)}}function a4($,Z){return new RegExp(`(?:^|\\s)${Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?:=|\\s|$|>|/)`).test($)||$.includes(` ${Z}=`)||$.includes(` ${Z} `)||$.trimEnd().endsWith(` ${Z}`)}function D2($,Z){let J=Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),X=$.match(new RegExp(`${J}="([^"]*)"`,"s"))||$.match(new RegExp(`${J}='([^']*)'`,"s"));return X?X[1]:null}function U1($,Z){let J=Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return $.replace(new RegExp(`\\s*${J}="[^"]*"`,"g"),"").replace(new RegExp(`\\s*${J}='[^']*'`,"g"),"").replace(new RegExp(`\\s*${J}(?=\\s|$|>|/)`,"g"),"")}function n1($,Z,J){let X=Z.selfClosing?" /":"",Y=`<${Z.tag}${J}${X}>`;return $.slice(0,Z.start)+Y+$.slice(Z.end)}function JQ($){return/\bv-(?:if|else-if|else|for|show|model|html|text|pre|once|cloak|memo|bind|on|slot)\b/.test($)}function XQ($){let Z=$,J=0;while(J<Z.length){let X=T1(Z,J);if(!X)break;let Y=D2(X.attrs,"v-for");if(Y===null){J=X.end;continue}let Q=Y.match(/^\s*\(?([^)]+)\)?\s+(?:in|of)\s+(.+)\s*$/);if(!Q){J=X.end;continue}let G=Q[1].trim(),z=Q[2].trim(),q;if(G.includes(",")){let F=G.split(",").map((L)=>L.trim()),_=F[0],O=F[1];q=`${z} as ${O} => ${_}`}else q=`${z} as ${G}`;let K=U1(X.attrs,"v-for"),W=U1(K,":key").replace(/\s*v-bind:key="[^"]*"/g,""),U=I1(Z,X),H=Z.slice(U.outerStart,U.outerEnd),j=n1(H,{...X,start:0,end:X.end-X.start},W),B=`@foreach(${q})
3493
- `,V=`${B}${j}
3494
- @endforeach`;Z=Z.slice(0,U.outerStart)+V+Z.slice(U.outerEnd),J=U.outerStart+B.length}return Z}function YQ($){let Z=$,J=0;while(J<Z.length){let X=T1(Z,J);if(!X)break;let Y=D2(X.attrs,"v-if");if(Y===null){J=X.end;continue}let Q=[],G=I1(Z,X),z=U1(X.attrs,"v-if"),q=n1(Z.slice(G.outerStart,G.outerEnd),{...X,start:0,end:X.end-X.start},z);Q.push({type:"if",expr:Y,outerStart:G.outerStart,outerEnd:G.outerEnd,element:q,parsedTag:X});let K=G.outerEnd,W=!0;while(W){let V=Z.slice(K).match(/^\s*/),F=V?V[0].length:0,_=T1(Z,K+F);if(!_){W=!1;break}let O=D2(_.attrs,"v-else-if"),L=a4(_.attrs,"v-else");if(O!==null){let w=I1(Z,_),R=U1(_.attrs,"v-else-if"),N=n1(Z.slice(w.outerStart,w.outerEnd),{..._,start:0,end:_.end-_.start},R);Q.push({type:"else-if",expr:O,outerStart:K,outerEnd:w.outerEnd,element:N,parsedTag:_}),K=w.outerEnd}else if(L){let w=I1(Z,_),R=U1(_.attrs,"v-else"),N=n1(Z.slice(w.outerStart,w.outerEnd),{..._,start:0,end:_.end-_.start},R);Q.push({type:"else",outerStart:K,outerEnd:w.outerEnd,element:N,parsedTag:_}),W=!1}else W=!1}let U=[];for(let V of Q)if(V.type==="if")U.push(`@if(${V.expr})
3495
- ${V.element}`);else if(V.type==="else-if")U.push(`@elseif(${V.expr})
3496
- ${V.element}`);else U.push(`@else
3497
- ${V.element}`);U.push("@endif");let H=U.join(`
3498
- `),j=Q[0].outerStart,B=Q[Q.length-1].outerEnd;Z=Z.slice(0,j)+H+Z.slice(B),J=j+H.length}return Z}function QQ($){return $.replace(/\bv-show="([^"]*)"/g,'@show="$1"')}function GQ($){let Z=$,J=0;while(J<Z.length){let X=T1(Z,J);if(!X)break;let Y=$Q.has(X.tag),Q=X.attrs.replace(/([^\s=]+)(?:\s*=\s*("[^"]*"|'[^']*'|[^\s]+))?/g,(z,q,K)=>{let W=/^v-model(?::([a-zA-Z_][a-zA-Z0-9_]*))?((?:\.[a-zA-Z]+)*)$/.exec(q);if(!W||!K||!/^["']/.test(K))return z;let U=W[1]||"modelValue",H=W[2];if(Y&&!W[1])return`@model${H}=${K}`;let j=K[0],B=K.slice(1,-1),V=`:${U}=${K} @update:${U}=${j}${B} = $event${j}`;if(H){let F=W[1]?`${U}Modifiers`:"modelModifiers",_=H.slice(1).split(".").map((O)=>`${O}: true`).join(", ");V+=` :${F}="{ ${_} }"`}return V});if(Q===X.attrs){J=X.end;continue}let G=n1(X.full,{...X,start:0,end:X.full.length},Q);Z=Z.slice(0,X.start)+G+Z.slice(X.end),J=X.start+G.length}return Z}function zQ($){return $.replace(/\bv-bind:([a-zA-Z_][a-zA-Z0-9_-]*)\s*=\s*"([^"]*)"/g,'@bind:$1="$2"')}function qQ($){return $.replace(/\bv-on:([a-zA-Z_][a-zA-Z0-9_.-]*)\s*=\s*"([^"]*)"/g,'@$1="$2"')}function KQ($){let Z=$,J=0;while(J<Z.length){let X=T1(Z,J);if(!X)break;let Y=D2(X.attrs,"v-html");if(Y===null){J=X.end;continue}if(X.selfClosing){J=X.end;continue}let Q=I1(Z,X),G=U1(X.attrs,"v-html"),z=X.selfClosing?" /":"",q=`<${X.tag}${G}${z}>{!! ${Y} !!}</${X.tag}>`;Z=Z.slice(0,Q.outerStart)+q+Z.slice(Q.outerEnd),J=Q.outerStart+q.length}return Z}function WQ($){let Z=$,J=0;while(J<Z.length){let X=T1(Z,J);if(!X)break;let Y=D2(X.attrs,"v-text");if(Y===null){J=X.end;continue}if(X.selfClosing){J=X.end;continue}let Q=I1(Z,X),G=U1(X.attrs,"v-text"),z=X.selfClosing?" /":"",q=`<${X.tag}${G}${z}>{{ ${Y} }}</${X.tag}>`;Z=Z.slice(0,Q.outerStart)+q+Z.slice(Q.outerEnd),J=Q.outerStart+q.length}return Z}function UQ($){return $.replace(/(<[a-zA-Z][a-zA-Z0-9-]*)(\s[^>]*?)\s+v-pre([^>]*>)/g,"$1$2 data-stx-skip$3").replace(/(<[a-zA-Z][a-zA-Z0-9-]*)\s+v-pre(\s[^>]*>|>)/g,"$1 data-stx-skip$2")}function HQ($){let Z=$,J=0;while(J<Z.length){let X=T1(Z,J);if(!X)break;if(!a4(X.attrs,"v-once")){J=X.end;continue}let Y=U1(X.attrs,"v-once"),Q=I1(Z,X),G=Z.slice(Q.outerStart,Q.outerEnd),q=`@once
3499
- ${n1(G,{...X,start:0,end:X.end-X.start},Y)}
3500
- @endonce`;Z=Z.slice(0,Q.outerStart)+q+Z.slice(Q.outerEnd),J=Q.outerStart+q.length}return Z}function jQ($){return $.replace(/\bv-memo="([^"]*)"/g,'data-stx-memo="$1"')}function BQ($){return $.replace(/\bv-slot:([a-zA-Z_][a-zA-Z0-9_-]*)\s*=\s*"([^"]*)"/g,'#$1="$2"').replace(/\bv-slot:([a-zA-Z_][a-zA-Z0-9_-]*)(?=[\s>])/g,"#$1").replace(/\bv-slot\s*=\s*"([^"]*)"/g,'#default="$1"')}function t4($){if(!JQ($))return $;let Z=$;return Z=XQ(Z),Z=YQ(Z),Z=HQ(Z),Z=zQ(Z),Z=qQ(Z),Z=GQ(Z),Z=QQ(Z),Z=BQ(Z),Z=KQ(Z),Z=WQ(Z),Z=UQ(Z),Z=jQ(Z),Z}function N9($){return $.replace(/--/g,"- -").replace(/</g,"&lt;").replace(/>/g,"&gt;")}var K$=new Set(["a","abbr","address","article","aside","audio","b","bdi","bdo","blockquote","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","meter","nav","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","small","span","strong","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","u","ul","video"]),VQ=new Set(["area","base","br","col","embed","hr","img","input","link","meta","source","track","wbr"]);function e4($,Z){let J=/^\s*\{\{\s*([\s\S]+?)\s*\}\}\s*$/.exec($),X=J?J[1]:$,Y=e(X,Z);if(Y&&typeof Y==="string")return Y;let Q=X.trim();return K$.has(Q)?Q:null}function $6($){let Z=/^\s*\{\{\s*([\s\S]+?)\s*\}\}\s*$/.exec($);return Z?Z[1]:$}function Z6($,Z,J){let X=Z.replace(/\s*(?::is|v-bind:is)\s*=\s*"[^"]*"/gi,"").trim(),Y=X?`<${$} ${X}>`:`<${$}>`;if(VQ.has($))return X?`<${$} ${X}>`:`<${$}>`;return`${Y}${J}</${$}>`}async function J6($,Z,J,X,Y){let Q=$,G=/<component\s+(?::is|v-bind:is)\s*=\s*"([^"]*)"([^>]*)>([\s\S]*?)<\/component>/gi,z=[],q;while((q=G.exec(Q))!==null)z.push({full:q[0],expr:q[1],attrs:q[2],slotContent:q[3],index:q.index});for(let K=z.length-1;K>=0;K--){let W=z[K];try{let U=e4(W.expr,Z);if(!U||typeof U!=="string"){let O=`<!-- dynamic component: could not resolve "${N9($6(W.expr))}" -->`;Q=Q.slice(0,W.index)+O+Q.slice(W.index+W.full.length);continue}if(K$.has(U)){let O=Z6(U,W.attrs,W.slotContent);Q=Q.slice(0,W.index)+O+Q.slice(W.index+W.full.length);continue}let H=W.attrs.trim(),j={},B=/(?::([a-zA-Z_][a-zA-Z0-9_-]*)|([a-zA-Z_][a-zA-Z0-9_-]*))\s*=\s*"([^"]*)"/g,V;while((V=B.exec(H))!==null){let O=V[1]||V[2],L=V[3];if(V[1])try{j[O]=e(L,Z)}catch{j[O]=L}else j[O]=L}let F=X.componentsDir||"components",_=await D1(U,j,W.slotContent,F,Z,J,X,new Set,Y??new Set);Q=Q.slice(0,W.index)+_+Q.slice(W.index+W.full.length)}catch(U){let H=U instanceof Error?U.message:String(U),j=`<!-- dynamic component error: ${N9(H)} -->`;Q=Q.slice(0,W.index)+j+Q.slice(W.index+W.full.length)}}return Q=await _Q(Q,Z,J,X,Y),Q}async function _Q($,Z,J,X,Y){let Q=$,G=/<component\s+(?::is|v-bind:is)\s*=\s*"([^"]*)"([^>]*?)\/>/gi,z=[],q;while((q=G.exec(Q))!==null)z.push({full:q[0],expr:q[1],attrs:q[2],index:q.index});for(let K=z.length-1;K>=0;K--){let W=z[K];try{let U=e4(W.expr,Z);if(!U||typeof U!=="string"){let B=`<!-- dynamic component: could not resolve "${N9($6(W.expr))}" -->`;Q=Q.slice(0,W.index)+B+Q.slice(W.index+W.full.length);continue}if(K$.has(U)){let B=Z6(U,W.attrs,"");Q=Q.slice(0,W.index)+B+Q.slice(W.index+W.full.length);continue}let H=X.componentsDir||"components",j=await D1(U,{},"",H,Z,J,X,new Set,Y??new Set);Q=Q.slice(0,W.index)+j+Q.slice(W.index+W.full.length)}catch(U){let H=U instanceof Error?U.message:String(U),j=`<!-- dynamic component error: ${N9(H)} -->`;Q=Q.slice(0,W.index)+j+Q.slice(W.index+W.full.length)}}return Q}function W$(){return{afterOpen:[],beforeClose:[]}}function LQ($){return $.afterOpen.length>0||$.beforeClose.length>0}function Y6($,Z){if(!LQ(Z))return $;let J=Z.afterOpen.join(""),X=Z.beforeClose.join(""),Y=$.lastIndexOf("</head>"),Q=J?A2($):null,G=X&&Y!==-1?Y:null;if(Q===null&&G===null)return $;if(Q!==null&&G!==null)return`${$.slice(0,Q)}${J}${$.slice(Q,G)}${X}${$.slice(G)}`;if(Q!==null)return`${$.slice(0,Q)}${J}${$.slice(Q)}`;return`${$.slice(0,G)}${X}${$.slice(G)}`}var X6=/\s*<meta\b[^>]*\bcharset\b[^>]*>/iy;function A2($){let Z=/<head\b[^>]*>/i.exec($);if(!Z)return null;let J=Z.index+Z[0].length;X6.lastIndex=J;let X=X6.exec($);return X?J+X[0].length:J}var H$="data-stx-color-mode-boot",OQ="__STX_COLOR_MODE__",FQ=new Set(["light","dark","auto","system"]),wQ=new Set(["auto","system"]),RQ=/^[a-z][\w:-]*$/i,NQ=/^[\w-]+$/;function DQ($){let Z=$.storageKey??"stx-color-mode",J=$.initialMode??"auto",X=$.darkClass===void 0?"dark":$.darkClass,Y=$.attribute??null,Q=$.autoValue??null;if(typeof Z!=="string"||Z.length===0)throw Error("colorMode.storageKey must be a non-empty string");if(!FQ.has(J))throw Error(`colorMode.initialMode must be one of light, dark, auto, system \u2014 got ${JSON.stringify(J)}`);if(X!==null&&(typeof X!=="string"||!NQ.test(X)))throw Error(`colorMode.darkClass must be a single CSS class name, or null to opt out \u2014 got ${JSON.stringify(X)}`);if(Y!==null&&(typeof Y!=="string"||!RQ.test(Y)))throw Error(`colorMode.attribute must be a valid HTML attribute name \u2014 got ${JSON.stringify(Y)}`);if(Q!==null&&!wQ.has(Q))throw Error(`colorMode.autoValue must be 'auto' or 'system' \u2014 got ${JSON.stringify(Q)}`);if(X===null&&Y===null)throw Error("colorMode needs at least one of darkClass or attribute \u2014 with both null nothing would mark the mode on <html>");return{storageKey:Z,initialMode:J==="system"?"auto":J,darkClass:X,attribute:Y,autoValue:Q}}function AQ($){return JSON.stringify($).replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/&/g,"\\u0026").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}function j$($={}){let Z=DQ($),X=`(function(){"use strict";var c=${AQ(Z)};var p=c.initialMode;var a=c.autoValue;try{var v=localStorage.getItem(c.storageKey);if(v==="light"||v==="dark"){p=v}else if(v==="auto"||v==="system"){p="auto";if(!a)a=v}}catch(e){}var m=p;if(p==="auto"){try{m=matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}catch(e){m="light"}}var r=document.documentElement;if(c.attribute)r.setAttribute(c.attribute,m);if(c.darkClass){if(m==="dark")r.classList.add(c.darkClass);else r.classList.remove(c.darkClass)}try{window.${OQ}={storageKey:c.storageKey,initialMode:c.initialMode,darkClass:c.darkClass,attribute:c.attribute,autoValue:a||"auto",preference:p,mode:m}}catch(e){}}());`;return`<script ${H$}>${X}</script>`}function z6($,Z={}){if($.includes(H$))return $;let J=U$($);if(J===null)return $;let X=j$(Z);return`${$.slice(0,J)}
3501
- ${X}${$.slice(J)}`}var U$=A2,MQ=new RegExp(`<script\\b[^>]*\\b${H$}\\b[^>]*>[\\s\\S]*?<\\/script>`,"i"),Q6=/<meta\b[^>]*\bcharset\b[^>]*>/gi,G6=/<\/head>/gi;function IQ($){let Z=/<head\b[^>]*>/i.exec($);if(!Z)return $;let J=Z.index+Z[0].length;G6.lastIndex=J;let X=G6.exec($),Y=X?X.index:$.length;Q6.lastIndex=J;let Q=Q6.exec($);if(!Q||Q.index>=Y)return $;if($.slice(J,Q.index).trim()==="")return $;let G=Q.index+Q[0].length;return`${$.slice(0,J)}
3502
- ${Q[0]}${$.slice(J,Q.index)}${$.slice(G,Y)}${$.slice(Y)}`}function q6($){return TQ(IQ($))}function TQ($){let Z=MQ.exec($);if(!Z)return $;let J=U$($);if(J===null)return $;if(Z.index<=J||$.slice(J,Z.index).trim()==="")return $;let X=$.slice(0,Z.index)+$.slice(Z.index+Z[0].length),Y=U$(X);if(Y===null)return $;return`${X.slice(0,Y)}
3503
- ${Z[0]}${X.slice(Y)}`}var uj="stx-build",dj="X-STX-Build",M2=Symbol.for("stx.buildId");function K6(){let $=globalThis;if(!$[M2])$[M2]=process.env.STX_BUILD_ID||`${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`;return $[M2]}function mj($){let Z=globalThis;if($===null)delete Z[M2];else Z[M2]=$}function lj($,Z=K6()){let J=B$($,Z);if(J===null)return $;let X=/<head\b[^>]*>/i.exec($),Y=X.index+X[0].length;return`${$.slice(0,Y)}${J}${$.slice(Y)}`}function B$($,Z=K6()){if($.includes('name="stx-build"'))return null;if(!/<head\b[^>]*>/i.test($))return null;return`
3504
- <meta name="stx-build" content="${Z}">`}import{AsyncLocalStorage as kQ}from"async_hooks";var W6=new kQ;function V$($){return $.__stx_server_data??={pending:new Map,values:new Map}}function U6($,Z){return W6.run(V$($),Z)}async function H6($,Z){let J=W6.getStore();if(!J)throw Error("useServerData must run inside a <script server> render");if(typeof $!=="string"||!$.trim())throw TypeError("useServerData requires a non-empty string key");let X=J.pending.get($);if(X)return X;let Y=Promise.resolve().then(Z).then((Q)=>{let G=JSON.stringify(Q,(q,K)=>{if(K===void 0||typeof K==="function"||typeof K==="symbol"||typeof K==="bigint"||typeof K==="number"&&!Number.isFinite(K))throw TypeError(`useServerData(${JSON.stringify($)}) requires JSON-serializable data`);if(K&&typeof K==="object"&&!Array.isArray(K)&&Object.getPrototypeOf(K)!==Object.prototype&&Object.getPrototypeOf(K)!==null)throw TypeError(`useServerData(${JSON.stringify($)}) requires JSON-serializable data`);return K}),z=JSON.parse(G);return J.values.set($,z),z}).catch((Q)=>{throw J.pending.delete($),Q});return J.pending.set($,Y),Y}function j6($){let Z=$.__stx_server_data;if(!Z?.values.size)return"";return`<script data-stx-scoped data-stx-server-data type="application/json">${JSON.stringify(Object.fromEntries(Z.values)).replace(/</g,"\\u003c").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}</script>`}var _6="<style data-stx-cloak>[x-cloak]{display:none !important}</style>",D9="data-stx-html-attrs",A9="data-stx-html-class",L6=/^[A-Za-z_:][\w:.-]*$/;function Z1($){return String($).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function EQ($){return String($).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function o1($){if($.name)return`name="${$.name}"`;if($.property)return`property="${$.property}"`;if($.charset!=null)return"charset=";if($["http-equiv"])return`http-equiv="${$["http-equiv"]}"`;return""}function s1($,Z){return Object.entries($).filter(([J])=>!Z?.(J)).map(([J,X])=>`${J}="${Z1(String(X))}"`).join(" ")}function bQ($={},Z="en"){let J=[],X=[],Y="",Q=Z;for(let[z,q]of Object.entries($||{})){if(q==null)continue;let K=z.trim();if(!L6.test(K))continue;let W=K.toLowerCase();if(W==="lang"){Q=String(q);continue}if(W==="class"){Y=String(q).trim();continue}J.push(` ${K}="${Z1(String(q))}"`),X.push(K)}let G=` lang="${Z1(Q)}"`;if(Y)G+=` class="${Z1(Y)}"`;if(G+=J.join(""),Y)G+=` ${A9}="${Z1(Y)}"`;if(X.length)G+=` ${D9}="${Z1(X.join(" "))}"`;return G}function O6($={},Z={}){let J={...$,...Z};if($.class&&Z.class){let X=$.class.split(/\s+/).filter(Boolean);for(let Y of Z.class.split(/\s+/).filter(Boolean))if(!X.includes(Y))X.push(Y);J.class=X.join(" ")}return J}function F6($,Z={}){if(!Z||Object.keys(Z).length===0)return $;let J=$.match(/<html\b([^>]*)>/i);if(!J)return $;let X={},Y=[],Q=/([A-Za-z_:][\w:.-]*)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>]+)))?/g,G;while((G=Q.exec(J[1]))!==null){let W=G[1];if(!(W in X))Y.push(W);X[W]=G[2]??G[3]??G[4]??""}let z=[],q=[];for(let[W,U]of Object.entries(Z)){if(U==null)continue;let H=W.trim();if(!L6.test(H))continue;let j=H.toLowerCase();if(j==="class"){let B=(X.class||"").split(/\s+/).filter(Boolean);for(let V of String(U).split(/\s+/).filter(Boolean))if(!B.includes(V))B.push(V),z.push(V);if(!("class"in X))Y.push("class");X.class=B.join(" ");continue}if(!(H in X))Y.push(H);if(X[H]=String(U),j!=="lang")q.push(H)}if(z.length){if(!(A9 in X))Y.push(A9);X[A9]=z.join(" ")}if(q.length){if(!(D9 in X))Y.push(D9);X[D9]=q.join(" ")}let K=Y.map((W)=>` ${W}="${Z1(X[W])}"`).join("");return $.replace(J[0],()=>`<html${K}>`)}function sj($){let Z=O$($);if(Z===null)return $;let J=$.lastIndexOf("</head>");return`${$.slice(0,J)}${Z}${$.slice(J)}`}function O$($){if($.includes("data-stx-cloak"))return null;if($.lastIndexOf("</head>")===-1)return null;return`${_6}
3505
- `}function yQ($){let Z=[],J=0;while(J<$.length){let Q=$.slice(J),G=Q.match(/^\s+/);if(G){J+=G[0].length;continue}if(Q.startsWith("<!--")){let U=$.indexOf("-->",J);if(U===-1)break;J=U+3;continue}let z=Q.match(/^<script\b[^>]*>/i);if(z){let U=$.toLowerCase().indexOf("</script>",J+z[0].length);if(U===-1)break;J=U+9;continue}let q=Q.match(/^<link\b[^>]*>/i);if(q){Z.push(q[0]),J+=q[0].length;continue}let K=Q.match(/^<meta\b[^>]*>/i);if(K){Z.push(K[0]),J+=K[0].length;continue}let W=Q.match(/^<style\b[^>]*>[\s\S]*?<\/style>/i);if(W){Z.push(W[0]),J+=W[0].length;continue}break}if(Z.length===0)return{body:$,hoisted:Z};let X="",Y=0;while(Y<$.length&&Y<J){let Q=$.slice(Y),G=Q.match(/^<link\b[^>]*>/i);if(G&&Z.includes(G[0])){Y+=G[0].length;continue}let z=Q.match(/^<meta\b[^>]*>/i);if(z&&Z.includes(z[0])){Y+=z[0].length;continue}let q=Q.match(/^<style\b[^>]*>[\s\S]*?<\/style>/i);if(q&&Z.includes(q[0])){Y+=q[0].length;continue}X+=$[Y],Y++}return X+=$.slice(J),{body:X,hoisted:Z}}function CQ($,Z={},J={}){let{title:X="stx App",lang:Y="en",meta:Q=[],link:G=[],script:z=[],headRaw:q="",htmlAttrs:K={},bodyClass:W="",bodyAttrs:U={}}=Z,H=J.title||X,j=[{charset:"UTF-8"},{name:"viewport",content:"width=device-width, initial-scale=1.0"}],B=new Set(Q.map(o1).filter(Boolean)),F=[...j.filter((M)=>!B.has(o1(M))),...Q].map((M)=>{return` <meta ${s1(M)}>`}).join(`
3506
- `),_=G.map((M)=>{return` <link ${s1(M)}>`}).join(`
3507
- `),O=z.map((M)=>{if(M.src)return` <script ${s1(M,(k)=>k==="content")}></script>`;if(M.content)return` <script>${M.content}</script>`;return""}).filter(Boolean).join(`
3508
- `),L=bQ(K,Y),w=Object.entries(U).map(([M,k])=>` ${M}="${Z1(String(k))}"`).join(""),R=W?` class="${Z1(W)}"`:"",{body:N,hoisted:A}=yQ($),T=[F,J.colorMode?` ${j$(J.colorMode)}`:"",` <title>${J.titleIsHtml?H:EQ(H)}</title>`,` ${_6}`,_,O,q?` ${q}`:"",...(J.styles||[]).map((M)=>` ${M}`),...A.map((M)=>` ${M}`),...(J.headScripts||[]).map((M)=>` ${M}`),J.headStack||""].filter(Boolean),D=[N,...(J.bodyScripts||[]).map((M)=>M),J.bodyStack||""].filter(Boolean);return`<!DOCTYPE html>
3509
- <html${L}>
3510
- <head>
3511
- ${T.join(`
3512
- `)}
3513
- </head>
3514
- <body${R}${w}>
3515
- ${D.join(`
3516
- `)}
3517
- </body>
3518
- </html>`}var _$=/\s+/y,L$=/<(script|style)\b[^>]*>/iy,SQ=/<\/script>/gi,PQ=/<\/style>/gi,B6=/<!DOCTYPE\b/iy,V6=/<html[\s>]/iy;function F$($){let Z=0;while(Z<$.length){if(_$.lastIndex=Z,_$.exec($)){Z=_$.lastIndex;continue}if($.startsWith("<!--",Z)){let Y=$.indexOf("-->",Z);if(Y===-1)return!1;Z=Y+3;continue}L$.lastIndex=Z;let X=L$.exec($);if(X){let Y=X[1].toLowerCase()==="script"?SQ:PQ;Y.lastIndex=L$.lastIndex;let Q=Y.exec($);if(Q===null)return!1;Z=Q.index+Q[0].length;continue}if(B6.lastIndex=Z,B6.test($))return!0;return V6.lastIndex=Z,V6.test($)}return!1}function w$($){return F$($)}function w6($,Z={}){let J=$.lastIndexOf("</head>");if(J===-1)return $;let{meta:X=[],link:Y=[],script:Q=[],headRaw:G=""}=Z,z=$.slice(0,J),q=[];for(let K of X){let W=o1(K);if(W&&z.includes(W))continue;q.push(` <meta ${s1(K)}>`)}for(let K of Y){if(K.href&&z.includes(`href="${K.href}"`))continue;q.push(` <link ${s1(K)}>`)}for(let K of Q)if(K.src){if(z.includes(`src="${K.src}"`))continue;q.push(` <script ${s1(K,(W)=>W==="content")}></script>`)}else if(K.content){if(z.includes(K.content))continue;q.push(` <script>${K.content}</script>`)}if(G&&!z.includes(G))q.push(` ${G}`);if(q.length===0)return $;return`${$.slice(0,J)}${q.join(`
3519
- `)}
3520
- ${$.slice(J)}`}function R6($,Z={},J={},X){if(X??w$($))return $;return CQ($,Z,J)}var vQ=/<\/(script)/gi;function r1($){if(!$||$.indexOf("</")===-1)return $;return $.replace(vQ,"<\\/$1")}var I2=["browserQuery","BrowserQueryBuilder","BrowserQueryError","browserAuth","configureBrowser","getBrowserConfig","createBrowserDb","createBrowserModel","isBrowser","debounce","throttle","retry","sleep","wait","delay","waitUntil","waitWhile","lazy","clamp","rand","readableSize","useActiveElement","useDocumentVisibility","useIntervalFn","useObjectUrl","useTimeoutFn"];import A6 from"path";z2();z2();function D6($,Z={}){return new N6($,Z).routes}function XB($,Z){let J=R$($,Z);return J?J.params:null}var M6=new Map;async function I6($,Z){let J=$,X=Z;if(!J||!X)try{let z=await L5();J||=z?.pagesDir||"pages",X||=z?.root||"."}catch{J||="pages",X||="."}let Y=A6.isAbsolute(J)?J:A6.join(X,J),Q=M6.get(Y);if(Q)return Q;let G=[];try{G=D6(".",{pagesDir:Y,emit:!1}).map((z)=>z.regex.source).filter(Boolean)}catch{G=[]}return M6.set(Y,G),G}function fQ($){return $.replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}function T6($){return fQ(JSON.stringify($))}function k6($){return $.includes("data-stx-runtime")}function E6($){let Z=/window\.stx\s*\.\s*[A-Za-z_$]|\}\s*=\s*window\.stx\s*;/g;for(let J=Z.exec($);J!==null;J=Z.exec($)){let X=$.slice(Math.max(0,J.index-80),J.index);if(/if\s*\(\s*window\.stx\s*\)|window\.stx\s*&&/.test(X))continue;return!0}return!1}function N$($,Z){let J=$.indexOf("<script"),X=$.search(/<!doctype\b/i);if(J!==-1&&(X===-1||J>X))return $.slice(0,J)+Z+`
3521
- `+$.slice(J);let Y=A2($);if(Y!==null)return`${$.slice(0,Y)}
3522
- ${Z}${$.slice(Y)}`;if($.includes("</head>")){let G=$.indexOf("</head>");return $.slice(0,G)+Z+`
3523
- `+$.slice(G)}if(s0($))return y1($,(G)=>`${G}
3524
- ${Z}`);return`${Z}
3525
- ${$}`}async function M9($,Z){if($.includes("data-stx-runtime")||$.includes("window.stx.state")||$.includes("STX Signals Runtime"))return $;if(Z.buildMode==="serve"){let{getServeClientAsset:Y}=await import("./chunk-bxvqqejm.js"),{url:Q}=await Y("runtime",Z.debug===!0);return N$($,`<script data-stx-runtime src="${Q}"></script>`)}if(Z.buildMode==="compile")return N$($,'<script data-stx-runtime src="/__stx/runtime.__STX_HASH__.js"></script>');let{getCachedSignalsRuntime:J}=await import("./chunk-bxvqqejm.js"),X=await J(Z.debug);return N$($,`<script data-stx-scoped data-stx-runtime>${X}</script>`)}function xQ($){return/<[a-z][^>]*?\sx-tooltip\s*=/i.test($)}function b6($){if($.includes("data-stx-tooltip-runtime")||!xQ($))return $;let Z=`<script data-stx-scoped data-stx-tooltip-runtime>${r5()}</script>`,J=$.lastIndexOf("</body>");if(J===-1)return`${$}
3526
- ${Z}`;return`${$.slice(0,J)}${Z}
3527
- ${$.slice(J)}`}var gQ=/<script\b[^>]*\sdata-stx-router(?=[\s=>])/i;function hQ($){return gQ.test($)||$.includes("__stxRouter)return")||$.includes("__stxRouter=true")}async function uQ($,Z){if(!$.includes("</body>"))return $;if(hQ($))return $;let J=Z?.router,X="";{let q={};if(J){if(J.container)q.container=J.container;if(J.interceptAllLinks!==void 0)q.interceptAllLinks=J.interceptAllLinks;if(J.progress!==void 0)q.progress=J.progress;if(J.viewTransitions!==void 0)q.viewTransitions=J.viewTransitions;if(J.viewTransitionDuration!==void 0)q.viewTransitionDuration=J.viewTransitionDuration;if(J.viewTransitionEasing!==void 0)q.viewTransitionEasing=J.viewTransitionEasing;if(J.scrollToTop!==void 0)q.scrollToTop=J.scrollToTop;if(J.prefetch!==void 0)q.prefetch=J.prefetch;if(J.cache!==void 0)q.cache=J.cache;if(J.progressColor!==void 0)q.progressColor=J.progressColor;if(J.progressHeight!==void 0)q.progressHeight=J.progressHeight}try{let K=await I6(Z?.pagesDir,Z?.root);if(K.length>0)q.ownedRoutes=K}catch{}if(Object.keys(q).length>0)X=`<script>window.__stxRouterConfig=${T6(q)};</script>
3528
- `}let{getCachedRouterScript:Y,getServeClientAsset:Q}=await import("./chunk-bxvqqejm.js"),G=Z?.buildMode==="compile"?'<script data-stx-router src="/__stx/router.__STX_HASH__.js"></script>':Z?.buildMode==="serve"?`<script data-stx-router src="${(await Q("router")).url}"></script>`:`<script data-stx-router>${await Y()}</script>`,z=$.lastIndexOf("</body>");return $.slice(0,z)+X+G+`
3529
- </body>`+$.slice(z+7)}var y6=Symbol.for("stx.lazy-module-promises");function dQ(){let $=globalThis;return $[y6]??=new Map,$[y6]}function o($,Z){let J=dQ(),X=`${import.meta.url}\x00${$}`,Y=J.get(X);if(Y)return Y;let Q=Z();return J.set(X,Q),Q.catch(()=>{if(J.get(X)===Q)J.delete(X)}),Q}var D$=`(?:"[^"]*"|'[^']*'|[^>"'])*`,u6=/^<([a-zA-Z][a-zA-Z0-9-]*)\b((?:\s+[^=\s>]+(?:=(?:"[^"]*"|'[^']*'|[^\s>]*))?)*\s*)>([\s\S]*)<\/\1>$/s,mQ=65536,lQ=4,T9=new Map;function bB(){T9.clear()}function cQ($){let Z=[];for(let J of T2($,Y2)){let X=J.token.match(/^<script\b([^>]*)>/i),Y=J.token.match(/<\/script\s*>$/i);if(!X||!Y)continue;let Q=X[0].length,G=J.token.length-Y[0].length;Z.push(Object.freeze({fullMatch:J.token,attrs:X[1],body:J.token.slice(Q,G),start:J.start,end:J.end}))}return Z}function pQ($,Z={}){let J=$.length>=mQ,X=J?T9.get($):void 0;if(X===void 0){if(X=cQ($),J)h6(T9,lQ),T9.set($,X)}let Y=Z.skipAttrs;if(!Y)return X.slice();let Q=[];for(let G of X)if(Y.lastIndex=0,!Y.test(G.attrs))Q.push(G);return Q}function d6($){let Z=$.trim(),J=Z.match(/^([\s\S]+?)\s+as\s+(.+)$/);if(J){let Y=J[1].trim(),Q=J[2].trim(),{itemVar:G,indexVar:z}=C6(Q);if(G)return{style:"as",iterable:Y,itemVar:G,indexVar:z}}let X=Z.match(/^(\([^)]+\)|\w+(?:\s*,\s*\w+)?)\s+(?:in|of)\s+([\s\S]+)$/);if(X){let Y=X[1].trim(),Q=X[2].trim(),{itemVar:G,indexVar:z}=C6(Y);if(G)return{style:"in",iterable:Q,itemVar:G,indexVar:z}}return{style:"unknown",iterable:null,itemVar:null,indexVar:null}}function C6($){let Z=$.trim(),J=Z.match(/^(\w+)\s*=>\s*(\w+)$/);if(J)return{itemVar:J[2],indexVar:J[1]};let X=Z.match(/^\(\s*(\w+)(?:\s*,\s*(\w+))?\s*\)$/);if(X)return{itemVar:X[1],indexVar:X[2]||null};let Y=Z.match(/^(\w+)\s*,\s*(\w+)$/);if(Y)return{itemVar:Y[1],indexVar:Y[2]};let Q=Z.match(/^(\w+)$/);if(Q)return{itemVar:Q[1],indexVar:null};return{itemVar:null,indexVar:null}}function I$($,Z){return g6($,Z)}function iQ($){let Z=/@(if\s*\(|endif|elseif\s*\(|else\b)/g,J=0,X;while((X=Z.exec($))!==null){let Y=X[1];if(Y.startsWith("if"))J++;else if(Y==="endif")J--;else if(J===0)return!0}return!1}function nQ($){let Z=new Set,J=/<script\b(?![^>]*\bserver\b)(?![^>]*\bsrc\s*=)[^>]*>([\s\S]*?)<\/script>/gi,X=/\b(?:const|let|var)\s+([a-zA-Z_$][\w$]*)\s*=\s*(?:state|derived|computed|ref|reactive|signal|useModel)\s*(?:<[^>]*>)?\s*\(/g,Y;while((Y=J.exec($))!==null){let Q=Y[1],G;while((G=X.exec(Q))!==null)Z.add(G[1])}return Z}function sQ($){if(!/[:@]for\s*=/.test($)&&!/\bx-for\s*=/.test($))return[];let Z=new RegExp(`<([a-zA-Z][\\w-]*)\\b(${D$})>`,"iy"),J=/(?:^|\s)(?::for|@for|x-for)\s*=\s*(?:"([^"]*)"|'([^']*)')/i,X=T2($,(Q,G)=>{Z.lastIndex=G;let z=Z.exec(Q);if(!z||z.index!==G||!J.test(z[2]))return-1;return Z.lastIndex}),Y=[];for(let Q of X){Z.lastIndex=0;let G=Z.exec(Q.token);if(!G)continue;let z=G[2].match(J),q=d6(z?.[1]??z?.[2]??""),K=[q.itemVar,q.indexVar].filter(Boolean);if(K.length===0)continue;let W=G[1],H=/\/\s*>$/.test(Q.token)||k9.has(W.toLowerCase())?Q.end:l6($,Q.start,W,Q.end);if(H!==-1)Y.push({start:Q.start,end:H,vars:new Set(K)})}return Y}var S6=new Set(["true","false","null","undefined","NaN","Infinity","typeof","instanceof","in","of","new","void","delete","this","Math","JSON","Date","Number","String","Boolean","Array","Object","RegExp","Map","Set","Symbol","parseInt","parseFloat","isNaN","isFinite","encodeURIComponent","decodeURIComponent","encodeURI","decodeURI","window","document","console"]);function oQ($){return $.replace(/'(?:\\.|[^'\\])*'/g,"''").replace(/"(?:\\.|[^"\\])*"/g,'""').replace(/`(?:\\.|[^`\\])*`/g,"``")}function P6($,Z,J,X){if(!$)return!1;let Y=oQ($),Q=!1,G=!1,z=!1,q=/([a-zA-Z_$][\w$]*)/g,K;while((K=q.exec(Y))!==null){let j=K[1];if(Y.slice(0,K.index).trimEnd().endsWith("."))continue;if(S6.has(j))continue;if(Z.has(j)||X?.has(j))Q=!0;else if(J&&j in J)G=!0}let W=/([a-zA-Z_$][\w$]*)(?:\.[a-zA-Z_$][\w$]*)*\s*\(\s*\)/g,U;while((U=W.exec(Y))!==null){let j=U[1];if(Y.slice(0,U.index).trimEnd().endsWith("."))continue;if(S6.has(j)||J&&j in J)continue;z=!0}return(Q||z)&&!G}function I9($,Z,J){let X=J===void 0?` ${Z}`:` ${Z}="${J.replace(/"/g,"&quot;")}"`,Y=$.trim(),Q=Y.match(u6);if(Q&&rQ(Q[3],Q[1])){let[,G,z,q]=Q;return`<${G}${z}${X}>${q}</${G}>`}return`<template${X}>${Y}</template>`}function rQ($,Z){let J=new RegExp(`<(/)?${Z}(?=[\\s/>])`,"gi"),X=0,Y;while((Y=J.exec($))!==null)if(Y[1]){if(X--,X<0)return!1}else X++;return!0}function m6($,Z){let J=nQ($);function X(Y){let Q=Y,G=sQ(Y),z=(U)=>{let H=new Set;for(let j of G)if(U>j.start&&U<j.end)for(let B of j.vars)H.add(B);return H},q=/@if\s*\(/g,K,W=[];while((K=q.exec(Q))!==null){let U=K.index,H=U+K[0].length,j=1,B=H;while(B<Q.length&&j>0){if(Q[B]==="(")j++;else if(Q[B]===")")j--;B++}if(j!==0)continue;let V=Q.substring(H,B-1).trim(),F=B,_=1,O=F,L=/@(if\s*\(|endif)/g;L.lastIndex=F;let w;while((w=L.exec(Q))!==null)if(w[1].startsWith("if"))_++;else if(w[1]==="endif"){if(_--,_===0){O=w.index+w[0].length;break}}if(_!==0)continue;let R=Q.substring(F,O-6).trim(),N;if(iQ(R)){let A=j2(Q.substring(U,O));if(A.length===0)continue;let T=A[0].branches.filter((I)=>I.type!=="else"),D=z(U);if(!(T.length>0&&T.every((I)=>P6(I.condition,J,Z,D))))continue;N=A[0].branches.map((I)=>{let y=X(I.content);if(I.type==="elseif")return I9(y,"@else-if",I.condition??"");if(I.type==="else")return I9(y,"@else");return I9(y,"@if",I.condition??"")}).join(`
3530
- `)}else{if(!P6(V,J,Z,z(U)))continue;N=I9(X(R),"@if",V)}W.push({start:U,end:O,replacement:N}),q.lastIndex=O}for(let U=W.length-1;U>=0;U--){let{start:H,end:j,replacement:B}=W[U];Q=Q.substring(0,H)+B+Q.substring(j)}return Q}return X($)}function aQ($){let Z=$.trim();if(Z==="")return;if(Z==="true")return!0;if(Z==="false")return!1;if(Z==="null")return!1;if(Z==="undefined")return!1;if(Z==="NaN")return!1;if(/^-?\d+(?:\.\d+)?$/.test(Z)){let Y=Number(Z);return Y!==0&&!Number.isNaN(Y)}let J=Z.match(/^'((?:\\.|[^'\\])*)'$/);if(J)return J[1].length>0;let X=Z.match(/^"((?:\\.|[^"\\])*)"$/);if(X)return X[1].length>0;return}var k9=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),v6=/<(script|style)\b/iy,tQ=/<\/script/gi,eQ=/<\/style/gi;function l6($,Z,J,X){if(k9.has(J.toLowerCase()))return X;let Y=J.toLowerCase(),Q=$.length,G=1,z=X;while(z<Q){let q=$.indexOf("<",z);if(q===-1)return-1;if(z=q,$.startsWith("<!--",z)){let H=$.indexOf("-->",z+4);if(H===-1)return-1;z=H+3;continue}v6.lastIndex=z;let K=v6.exec($);if(K){let H=$.indexOf(">",z);if(H===-1)return-1;if($[H-1]==="/"){z=H+1;continue}let j=K[1].toLowerCase()==="script"?tQ:eQ;j.lastIndex=z;let B=j.exec($);if(B===null)return-1;let V=$.indexOf(">",B.index);if(V===-1)return-1;z=V+1;continue}if($[z+1]==="/"){let H=/^<\/([a-z][\w-]*)\s*>/i.exec($.slice(z,z+64));if(!H){z++;continue}if(H[1].toLowerCase()===Y){if(G--,z+=H[0].length,G===0)return z;continue}z+=H[0].length;continue}let W=/^<([a-z][\w-]*)\b/i.exec($.slice(z,z+64));if(!W){z++;continue}let U=$.indexOf(">",z);if(U===-1)return-1;if(W[1].toLowerCase()===Y){let H=$.slice(z,U+1);if(!(/\/\s*>$/.test(H)||k9.has(Y)))G++}z=U+1}return-1}var $G=/\s(?::else-if|x-else-if|@else-if|:else|x-else|@else)(?=[=\s/>])/;function ZG($,Z){let J=Z,X=$.length;for(;;){while(J<X&&$[J]!=="<")J++;if(J>=X)return!1;if($.startsWith("<!--",J)){let G=$.indexOf("-->",J+4);if(G===-1)return!1;J=G+3;continue}break}if($[J+1]==="/")return!1;let Y=$.indexOf(">",J);if(Y===-1)return!1;let Q=$.slice(J,Y+1);return $G.test(Q)}function c6($){if(!$.includes(":if")&&!$.includes(":show")&&!$.includes("x-if")&&!$.includes("x-show")&&!$.includes("@if=")&&!$.includes("@show="))return $;let Z=[],J=/<(script|style)\b[^>]*>[\s\S]*?<\/\1\s*>/gi,X;while((X=J.exec($))!==null)Z.push([X.index,X.index+X[0].length]);let Y=(U)=>Z.some(([H,j])=>U>=H&&U<j),Q=/<([a-zA-Z][\w-]*)\b((?:\s+[^=\s>]+(?:=(?:"[^"]*"|'[^']*'|[^\s>]*))?)*?)\s+(:if|:show|x-if|x-show|@if|@show)\s*=\s*"([^"]*)"((?:\s+[^=\s>]+(?:=(?:"[^"]*"|'[^']*'|[^\s>]*))?)*\s*)(\/?)>/g,G=[],z;while((z=Q.exec($))!==null){if(Y(z.index))continue;let[U,H,j,B,V,F,_]=z,O=aQ(V);if(O===void 0)continue;let L=z.index,w=L+U.length,A=!!_||/\/\s*>$/.test(U)||k9.has(H.toLowerCase())?w:l6($,L,H,w);if(A===-1)continue;if((B===":if"||B==="x-if"||B==="@if")&&ZG($,A)){Q.lastIndex=w;continue}if(O===!0){let D=`<${H}${j}${F}${_}>`;G.push({start:L,end:w,replacement:D});continue}G.push({start:L,end:A,replacement:""}),Q.lastIndex=A}if(G.length===0)return $;G.sort((U,H)=>U.start-H.start);let q=[],K=-1;for(let U of G){if(U.start<K)continue;q.push(U),K=U.end}let W=$;for(let U=q.length-1;U>=0;U--){let{start:H,end:j,replacement:B}=q[U];W=W.substring(0,H)+B+W.substring(j)}return W}function T$($,Z){let J=$,X=/@(for|foreach)\s*\(/g,Y,Q=[],G=[];while((Y=X.exec(J))!==null){let z=Y[1],q=Y.index,K=q+Y[0].length,W=1,U=K;while(U<J.length&&W>0){if(J[U]==="(")W++;else if(J[U]===")")W--;U++}if(W!==0)continue;let H=J.substring(K,U-1).trim(),j=U,B=d6(H),V=z==="for"?"@endfor":"@endforeach",F=1,_=j,O=z==="for"?new RegExp("@(for(?!each)\\s*\\(|endfor(?!each))","g"):new RegExp(`@(${z}\\s*\\(|end${z})`,"g");O.lastIndex=j;let L;while((L=O.exec(J))!==null)if(L[1].startsWith(z))F++;else if(F--,F===0){_=L.index+L[0].length;break}if(F!==0)continue;let w=()=>{let M=[B.itemVar,B.indexVar].filter(Boolean);if(M.length)G.push({start:q,end:_,vars:M})};if(B.iterable){let M=B.iterable.trim();if(M.startsWith("[")||M.startsWith("{")||M.startsWith("'")||M.startsWith('"')||M.startsWith("`")||/^-?\d/.test(M)){w();continue}let k=M.split(/[.[(]/)[0].trim(),I=Z?k in Z:!1,y=G.some((E)=>q>E.start&&q<E.end&&E.vars.includes(k));if(k&&(I||y)){w();continue}}if(B.style==="as")H=B.indexVar?`(${B.itemVar}, ${B.indexVar}) in ${B.iterable}`:`${B.itemVar} in ${B.iterable}`;let R=J.substring(j,_-V.length).trim(),N=Z?{...Z}:{};if(B.itemVar)delete N[B.itemVar];if(B.indexVar)delete N[B.indexVar];let A=T$(R,N),T=A.match(u6),D;if(T){let[,M,k,I]=T;D=`<${M}${k} @for="${H}">${I}</${M}>`}else D=`<template @for="${H}">${A}</template>`;Q.push({start:q,end:_,replacement:D}),X.lastIndex=_}for(let z=Q.length-1;z>=0;z--){let{start:q,end:K,replacement:W}=Q[z];J=J.substring(0,q)+W+J.substring(K)}return J}function JG($){let Z=new Set,J=[],X=0,Y=0,Q=$.length,G=(W)=>{let U=X+1;while(U<Q){let H=$[U];if(H==="\\"){U+=2;continue}if(H===W)return U+1;U++}return Q},z=()=>{let W=X+2;while(W<Q&&$[W]!==`
3531
- `)W++;return W},q=()=>{let W=X+2;while(W<Q-1){if($[W]==="*"&&$[W+1]==="/")return W+2;W++}return Q},K=(W)=>{let U=W,H=0;while(U<Q){let j=$[U];if(j==="/"&&$[U+1]==="/"){let B=U+2;while(B<Q&&$[B]!==`
3532
- `)B++;U=B;continue}if(j==="/"&&$[U+1]==="*"){let B=U+2;while(B<Q-1&&!($[B]==="*"&&$[B+1]==="/"))B++;U=B+2;continue}if(j==='"'||j==="'"||j==="`"){let B=U+1;while(B<Q){if($[B]==="\\"){B+=2;continue}if($[B]===j){B++;break}B++}U=B;continue}if(j==="("||j==="["||j==="{"){H++,U++;continue}if(j===")"||j==="]"||j==="}"){H--,U++;continue}if(j===";"&&H===0)return U+1;U++}return Q};while(X<Q){let W=$[X];if(W==="/"&&$[X+1]==="/"){let U=z();J.push($.slice(X,U)),X=U;continue}if(W==="/"&&$[X+1]==="*"){let U=q();J.push($.slice(X,U)),X=U;continue}if(W==='"'||W==="'"||W==="`"){let U=G(W);J.push($.slice(X,U)),X=U;continue}if(W==="{"){Y++,J.push(W),X++;continue}if(W==="}"){Y--,J.push(W),X++;continue}if(Y===0){let U=X>0?$[X-1]:"";if(U===""||/\s/.test(U)||U===";"||U==="}"||U==="{"){let j=$.slice(X).match(/^(const|let|var)\s+([a-zA-Z_$][\w$]*)\s*=/);if(j){let B=j[2],V=K(X+j[0].length);if(Z.has(B)){J.push(`/* stx: deduped const ${B} */`),X=V;continue}Z.add(B),J.push($.slice(X,V)),X=V;continue}}}J.push(W),X++}return J.join("")}var XG=new Set(["script","style","html","head","meta","link","title","!doctype"]);function A$($,Z,J){for(let X of J){if(X.start>=Z)return!1;if(X.end>$)return!0}return!1}function YG($,Z,J){let X=0;while(X<$.length){let Y=$.indexOf(Z,X);if(Y===-1)return!1;if(!A$(Y,Y+Z.length,J))return!0;X=Y+Z.length}return!1}function QG($,Z){if(YG($,"<body",Z)){let Y=new RegExp(`<body(${D$})>`,"g"),Q;while((Q=Y.exec($))!==null)if(!A$(Q.index,Q.index+Q[0].length,Z))return Q.index+Q[0].length-1;return null}let J=new RegExp(`<([a-zA-Z][a-zA-Z0-9-]*)\\b(${D$})>`,"gi"),X;while((X=J.exec($))!==null){if(A$(X.index,X.index+X[0].length,Z))continue;if(XG.has(X[1].toLowerCase()))continue;return X.index+X[0].length-1}return null}function GG($,Z,J,X){let Y=[],Q=` data-stx="${X}"`,G=0,z=!1,q=(K)=>{if(J!==null&&!z&&J>=G&&J<=K)Y.push($.slice(G,J),Q,$.slice(J,K)),z=!0;else Y.push($.slice(G,K))};for(let K of Z){if(K.start<G)continue;q(K.start),G=K.end}return q($.length),Y.join("")}async function zG($,Z,J){let X=pQ($,{skipAttrs:/\bserver\b|\bsrc\s*=|\bdata-stx-scoped\b|\bdata-stx-router\b/}),Y=/\b(?:state|derived|effect|ref|reactive|computed|watch|watchEffect|useStore|useLocalStorage|useSessionStorage|useCookie|useId|useModel|useReactiveProp|useFetch|useRef|useEventListener|useDebounce|useDebouncedValue|useThrottle|useInterval|useTimeout|useToggle|useCounter|useClickOutside|useFocus|useAsync|useColorMode|useDark|useMediaQuery|useScrollLock|usePreferredDark|usePreferredLight|usePreferredReducedMotion|usePreferredContrast|useWebSocket|useRoute|useSearchParams|onMount|onDestroy|defineProps|withDefaults|defineEmits|defineExpose|defineSlots|useOptimistic)\s*(?:<[^>]*>)?\s*\(/,Q=[],{hasUserImports:G,bundleClientScript:z}=await o("stx/client-script-bundler",()=>import("./chunk-8618n28z.js"));for(let O of X){let L=O.body;if(A1(O.attrs))L=M1(L);if(Y.test(L)){Q.push({content:L,start:O.start,end:O.end});continue}if(!G(L))continue;try{let w=await z(a1(L).code,Z||"",{projectRoot:process.cwd(),externalizeUserModules:!1});if(Y.test(w))Q.push({content:L,start:O.start,end:O.end})}catch{}}if(Q.length===0)return{output:$,setupCode:null};let q=`${Z??""}\x00${Q.map((O)=>O.content).join("\x00")}`,K=`__stx_setup_${Bun.hash(q).toString(36).slice(0,10)}`,W=[];for(let O=0;O<Q.length;O++){let L=Q[O].bundled??a1(Q[O].content).code;if(!Q[O].bundled&&G(L))L=await z(L,Z||"",{projectRoot:process.cwd()});L=UG(L);let w=$1(L);W.push(`// \u2500\u2500 merged signal script #${O+1} \u2500\u2500
3533
- ${w}`)}let U=W.join(`
3534
-
3535
- `);U=JG(U);let H=qG(U),j=H.split(",").map((O)=>O.trim()).filter(Boolean),B=M$(U,J),V=`
3536
- <script data-stx-scoped>
3537
- function ${K}() {
3538
- ${p1("const",j)}
3539
- ${r1(`${B}${U}`)}
3540
- return { ${H} };
3541
- }
3542
- window.__stx_latestSetup=${K};
3543
- if(window.stx)window.stx._latestSetup=${K};
3544
- </script>`,F=QG($,Q);return{output:GG($,Q,F,K),setupCode:V}}function qG($){let Z=$,J=[],X=new Set,Y=0,Q=0,G=Z.length,z="",q=()=>{Q++;let B=!1;while(Q<G){let V=Z[Q];if(V==="\\"){Q+=2;continue}if(V==="["&&!B){B=!0,Q++;continue}if(V==="]"&&B){B=!1,Q++;continue}if(V==="/"&&!B){Q++;while(Q<G&&/[gimsuyd]/.test(Z[Q]))Q++;return}if(V===`
3545
- `)return;Q++}},K=()=>{if(!z)return!0;if(/[\w)\]]/.test(z))return!1;return!0},W=(B)=>{Q++;while(Q<G){if(Z[Q]==="\\"){Q+=2;continue}if(Z[Q]===B){Q++;return}Q++}},U=()=>{Q++;while(Q<G){if(Z[Q]==="\\"){Q+=2;continue}if(Z[Q]==="`"){Q++;return}if(Z[Q]==="$"&&Z[Q+1]==="{"){Q+=2;let B=1;while(Q<G&&B>0)if(Z[Q]==="{")B++,Q++;else if(Z[Q]==="}")B--,Q++;else if(Z[Q]==="'"||Z[Q]==='"')W(Z[Q]);else if(Z[Q]==="`")U();else Q++;continue}Q++}},H=()=>{if(Z[Q]==="/"&&Z[Q+1]==="/"){while(Q<G&&Z[Q]!==`
3546
- `)Q++;return!0}if(Z[Q]==="/"&&Z[Q+1]==="*"){Q+=2;while(Q<G-1&&!(Z[Q]==="*"&&Z[Q+1]==="/"))Q++;return Q+=2,!0}return!1},j=()=>{if(Y!==0)return;let B=Z.slice(Q).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*(?:[!:;,\n]|=(?!=)|$)/);if(B){let L=B[2];if(!X.has(L))J.push(L),X.add(L);return}let V=Z.slice(Q).match(/^(?:const|let|var)\s+\{([^}]+)\}\s*=/);if(V){V[1].split(",").forEach((L)=>{let w=L.trim();if(!w)return;let R=w.indexOf(":"),A=(R>=0?w.slice(R+1).trim():w).split(/[\s=]/)[0];if(A&&!X.has(A))J.push(A),X.add(A)});return}let F=Z.slice(Q).match(/^(?:const|let|var)\s+\[([^\]]+)\]\s*=/);if(F){F[1].split(",").forEach((L)=>{let w=L.trim().replace(/^\.\.\./,"");if(!w)return;let R=w.split(/[\s=]/)[0];if(R&&!X.has(R))J.push(R),X.add(R)});return}let _=Z.slice(Q).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(_){let L=_[1];if(!X.has(L))J.push(L),X.add(L);return}let O=Z.slice(Q).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(O){let L=O[1];if(!X.has(L))J.push(L),X.add(L)}};while(Q<G){if(H())continue;if(Z[Q]==="'"||Z[Q]==='"'){W(Z[Q]),z=Z[Q-1];continue}if(Z[Q]==="`"){U(),z="`";continue}if(Z[Q]==="/"&&Z[Q+1]!=="/"&&Z[Q+1]!=="*"&&K()){q(),z="/";continue}if(Z[Q]==="{"){Y++,z="{",Q++;continue}if(Z[Q]==="}"){Y--,z="}",Q++;continue}if(Y===0&&/[a-z]/i.test(Z[Q])&&(Q===0||/\s|[;{}()]/.test(Z[Q-1])))j();if(!/\s/.test(Z[Q]))z=Z[Q];Q++}return J.join(", ")}async function p6($,Z,J,X){if(!I$($,J))return $;let Y=$;if(Z.skipSignalsRuntime)return Y;let{output:Q,setupCode:G}=await zG(Y,J,X);if(Y=Q,!G){let z=s0(Y);if(z&&!/data-stx/.test(z.attrs)&&!/data-stx-auto/.test(z.attrs)){let q=z.tag.replace(/^<body([^>]*)>$/i,"<body$1 data-stx-auto>");Y=Y.slice(0,z.index)+q+Y.slice(z.index+z.tag.length)}}if(Y=await M9(Y,Z),G){let z=f6(Y,/<\/head>/i),q=z===-1?f6(Y,/<body[^>]*>/i):-1;if(z!==-1)Y=`${Y.slice(0,z)}${G}
3547
- ${Y.slice(z)}`;else if(q!==-1){let K=/<body[^>]*>/i.exec(Y.slice(q))[0],W=q+K.length;Y=`${Y.slice(0,W)}
3548
- ${G}${Y.slice(W)}`}else Y=`${Y}
3549
- ${G}`}return Y}function f6($,Z){let J=/<(script|style)\b[\s\S]*?<\/\1>/gi,X=[],Y;while((Y=J.exec($))!==null)X.push([Y.index,Y.index+Y[0].length]);let Q=new RegExp(Z.source,Z.flags.replace(/[gy]/g,"")),G=0;while(G<$.length){let z=Q.exec($.slice(G));if(!z)return-1;let q=G+z.index;if(!X.some(([W,U])=>q>=W&&q<U))return q;G=q+Math.max(z[0].length,1)}return-1}var x6="/* [stx import stripped, resolved via window.stx in __stx_setup] */";function KG($){let Z=[];for(let J of $.split(",")){let X=J.trim();if(!X||X.startsWith("type "))continue;let Y=X.match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);if(Y&&Y[1]!==Y[2])Z.push(`${Y[2]} = ${Y[1]}`)}if(Z.length===0)return x6;return`var ${Z.join(", ")}; ${x6}`}var WG=/^\s*import\s+(?:type\s+)?\{([^}]*)\}\s+from\s+['"](?:stx|@stacksjs\/stx|@stacksjs\/browser)['"]\s*;?\s*$/gm;function UG($){return $.replace(WG,(Z,J)=>KG(J))}import e1 from"path";import i6 from"process";function t1($="STX_PUBLIC_"){let Z={},J={};for(let[X,Y]of Object.entries(i6.env)){if(!X.startsWith($)||Y===void 0)continue;Z[`import.meta.env.${X}`]=JSON.stringify(Y),J[X]=Y}return Z["import.meta.env"]=JSON.stringify(J),Z}function SB($="STX_PUBLIC_"){let Z={};for(let[J,X]of Object.entries(i6.env))if(J.startsWith($)&&X!==void 0)Z[J]=X;return Z}function n6($){return $.startsWith("http://")||$.startsWith("https://")||$.startsWith("//")}async function s6($,Z,J){try{let X;if($.startsWith("/")){let Y=Z;for(let Q=0;Q<5;Q++){let G=e1.join(Y,$);if(await Bun.file(G).exists())return G;Y=e1.dirname(Y)}X=e1.join(Z,$)}else if($.startsWith("./")||$.startsWith("../"))X=e1.resolve(Z,$);else X=e1.resolve(Z,$);if(await Bun.file(X).exists())return X;return null}catch{return null}}var o6=Symbol.for("stx.inline-assets.import-meta");function HG($,Z){if(!$.includes("import.meta"))return;let J=Error(`[stx] ${Z} still references \`import.meta\` after bundling, and it is being inlined as a classic <script> where that is a SyntaxError \u2014 the whole script fails to parse, taking every other script on the page with it.
3550
- `+" `import.meta.env.STX_PUBLIC_*` is substituted at build time and is safe; anything else is not.\n Fix it by moving the module-only code (`import.meta.glob`, `import.meta.url`) into its own module, or by resolving the value without `import.meta`.");throw J[o6]=!0,J}async function r6($,Z,J){let X=$,Y=e1.dirname(Z),Q=/<script\b([^>]*)src=["']([^"']+)["']([^>]*)><\/script>/gi,G;while((G=Q.exec(X))!==null){let[K,W,U,H]=G;if(n6(U))continue;let j=await s6(U,Y,Z);if(j)try{let B=await Bun.file(j).text();if(J.add(j),U.endsWith(".ts")||U.endsWith(".tsx")){let F=await Bun.build({entrypoints:[j],target:"browser",minify:!0,define:t1()});if(F.outputs.length>0)B=await F.outputs[0].text(),HG(B,U)}let V=`<script>
3551
- // Source: ${U}
3552
- ${B}
3553
- </script>`;X=X.replace(K,V),Q.lastIndex=0}catch(B){if(B?.[o6])throw B}}let z=/<link\b([^>]*)href=["']([^"']+)["']([^>]*)(?:\/?>)/gi,q;while((q=z.exec(X))!==null){let[K,W,U,H]=q,j=W+H;if(n6(U))continue;if(/rel=["']stylesheet["']/.test(j)||U.endsWith(".css")){let V=await s6(U,Y,Z);if(V)try{let F=await Bun.file(V).text();J.add(V);let _=`<style>
3554
- /* Source: ${U} */
3555
- ${F}
3556
- </style>`;X=X.replace(K,_),z.lastIndex=0}catch(F){}}}return X}function k$($,Z){let J=$,X=/@json\s*\(/g,Y;while((Y=X.exec(J))!==null){let Q=Y.index,G=Q+Y[0].length-1,z=1,q=G+1,K=null,W=!1;while(q<J.length&&z>0){let L=J[q];if(W){W=!1,q++;continue}if(L==="\\"&&K){W=!0,q++;continue}if(K){if(L===K)K=null;q++;continue}if(L==='"'||L==="'"||L==="`"){K=L,q++;continue}if(L==="(")z++;else if(L===")"){if(z--,z===0)break}q++}if(z!==0)break;let U=J.substring(G+1,q).trim(),H=J.substring(Q,q+1),j=-1,B=0,V=null,F=!1;for(let L=0;L<U.length;L++){let w=U[L];if(F){F=!1;continue}if(w==="\\"&&V){F=!0;continue}if(V){if(w===V)V=null;continue}if(w==='"'||w==="'"||w==="`"){V=w;continue}if(w==="("||w==="["||w==="{")B++;else if(w===")"||w==="]"||w==="}")B--;if(w===","&&B===0){j=L;break}}let _=j>=0?U.substring(0,j).trim():U,O=j>=0?U.substring(j+1).trim():void 0;try{let L=_.trim(),w;if(W0(L))w=K0(L,Object.keys(Z))(...Object.values(Z));else w=void 0;let R;if(O==="true")R=JSON.stringify(w,null,2);else R=JSON.stringify(w);let N=R.replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/&/g,"\\u0026").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029");J=J.substring(0,Q)+N+J.substring(q+1),X.lastIndex=Q+N.length}catch(L){o0.log(L instanceof Error?L:Error(String(L)),{directive:"@json"},"error"),X.lastIndex=Q+H.length}}return J}function E$($){return $.replace(/@once\s*([\s\S]*?)@endonce/g,"$1")}function e6($){let Z=$,J=/@memo\s*\(/g,X,Y=[];while((X=J.exec(Z))!==null){let Q=X.index,G=Q+X[0].length,z=1,q=G;while(q<Z.length&&z>0){if(Z[q]==="(")z++;else if(Z[q]===")")z--;q++}if(z!==0)continue;let K=Z.slice(G,q-1).trim(),W=q,U=Z.slice(W),H=U.indexOf("@endmemo");if(H===-1)continue;let j=U.slice(0,H),B=W+H+8,V=j.match(/^(\s*(?:(?:<!--[\s\S]*?-->|\x00STX_HTML_COMMENT_\d+\x00)\s*)*)/),F=V?V[0].length:0,_=j.slice(F),O=j.match(/(\s*)$/),L=O?O[0].length:0,w=_.slice(0,_.length-L),R=w.match(/^<([a-zA-Z][a-zA-Z0-9-]*)(\s[^>]*?)?(\/?)>/),N;if(R){let[A,T,D="",M]=R,k=`<${T}${D} data-stx-memo="${K}"${M}>`;N=j.slice(0,F)+k+w.slice(A.length)+j.slice(F+w.length)}else N=`${j.slice(0,F)}<div data-stx-memo="${K}">${w}</div>${j.slice(F+w.length)}`;Y.push({start:Q,end:B,replacement:N}),J.lastIndex=B}for(let Q=Y.length-1;Q>=0;Q--){let G=Y[Q];Z=Z.slice(0,G.start)+G.replacement+Z.slice(G.end)}return Z.replace(/@memo="([^"]*)"/g,'data-stx-memo="$1"')}function b$($){let Z=$.replace(/@ref="([^"]+)"/g,'data-stx-ref="$1"');return Z=Z.replace(/(<[a-zA-Z][a-zA-Z0-9-]*\b[^>]*?)\sref="([^"]+)"/g,'$1 data-stx-ref="$2"'),Z}function $8($,Z){if(!/\bref\s*=/.test($))return $;let J=/<\/?([a-zA-Z][\w-]*)\b(?:"[^"]*"|'[^']*'|[^'">])*>/y,X=T2($,(q,K)=>{J.lastIndex=K;let W=J.exec(q);if(!W||/^(?:script|style)$/i.test(W[1]))return-1;return J.lastIndex}),Y=[],Q=0,G=0,z=[];for(let{start:q,end:K,token:W}of X){let U=/^<\/?([\w-]+)/.exec(W)[1].toLowerCase();if(W.startsWith("</")){let j;while(j=Y.pop()){if(j.scoped)Q--;if(j.name===U)break}continue}let H=/\sdata-stx-scope\s*=/.test(W);if(!Q&&!H&&/\s(?:ref|@ref|:ref|x-ref|data-stx-ref)\s*=/.test(W)&&!/\sdata-stx-ref-caller\s*=/.test(W))z.push($.slice(G,q),W.replace(/\s*\/?>$/,(j)=>` data-stx-ref-caller="${Z}"${j}`)),G=K;if(!Z8.has(U)&&!/\/>$/.test(W)){if(Y.push({name:U,scoped:H}),H)Q++}}return z.push($.slice(G)),z.join("")}var Z8=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),J8=/(?:^|\s)x-no-cloak(?:=|\s|\/|>|$)/,a6=/<\/?\s*([a-z][\w-]*)/iy,jG=/\s/;function BG($,Z){let J=Z-1;while(J>=0&&jG.test($[J]))J--;return J>=0&&$[J]==="/"}function VG($,Z){let J=!1,X=!1;for(let Y=Z;Y<$.length;Y++){let Q=$[Y];if(J){if(Q==="'")J=!1}else if(X){if(Q==='"')X=!1}else if(Q==="'")J=!0;else if(Q==='"')X=!0;else if(Q===">")return Y}return-1}function _G($,Z){if($.indexOf("{",Z)===-1||$.indexOf("}",Z)===-1)return!1;let J=0,X=Z,Y=!1,Q=!1,G=!1;while(X<$.length){let z=$.indexOf("<",X),q=z===-1?$.length:z;if(q>X){if(J===0)while(X<q){let U=$.indexOf(Q?"}":"{",X);if(U===-1||U>=q){if(Q)G=!1;else Y=!1;break}if(U>X)if(Q)G=!1;else Y=!1;if(Q){if(G)return!0;G=!0}else if(Y)Q=!0,G=!1;else Y=!0;X=U+1}X=q;continue}if($.startsWith("<!--",X)){let U=$.indexOf("-->",X);X=U===-1?$.length:U+3;continue}let K=VG($,X);if(K===-1)break;a6.lastIndex=X;let W=a6.exec($)?.[1]?.toLowerCase()??"";if($[X+1]==="/"){if(J===0)break;J--}else if(!BG($,K)&&!Z8.has(W))J++;X=K+1}return!1}function X8($){if($.length>=32768&&!t6($))return $;let J=new RegExp(`<(${"div|span|p|h[1-6]|td|th|li|a|button|label|section|article|header|footer|main|nav|aside|dd|dt|figcaption|summary|caption|blockquote|pre|code|em|strong|small|sub|sup|time|mark|abbr|cite|q|s|u|b|i"})\\b`,"gi"),X="",Y=0,Q;while((Q=J.exec($))!==null){let G=Q.index,z=G+Q[0].length,q=!1,K=!1,W=-1;while(z<$.length){let H=$[z];if(q){if(H==="'")q=!1}else if(K){if(H==='"')K=!1}else if(H==="'")q=!0;else if(H==='"')K=!0;else if(H===">"){W=z;break}z++}if(W===-1)continue;let U=$.slice(G,W+1);if(J8.test(U))continue;if(U.includes("x-cloak"))continue;if(_G($,W+1))X+=$.slice(Y,W)+" x-cloak>",Y=W+1}return X+=$.slice(Y),X}var LG=/(?:^|\s)(?::else-if|:if|:else|:show|x-else-if|x-if|x-else|x-show|@if|@show)(?:=|\s|\/|>|$)/,OG=/<\/script>/gi,FG=/<\/style>/gi;function Y8($){let Z=/<[a-z][\w-]*/gi,J="",X=0,Y;while((Y=Z.exec($))!==null){let Q=Y.index,G=Y[0].slice(1).toLowerCase();if(G==="script"||G==="style"){let B=G==="script"?OG:FG;B.lastIndex=Q;let V=B.exec($);if(V!==null)Z.lastIndex=V.index+V[0].length;continue}let z=Q+Y[0].length,q=!1,K=!1,W=-1;while(z<$.length){let B=$[z];if(q){if(B==="'")q=!1}else if(K){if(B==='"')K=!1}else if(B==="'")q=!0;else if(B==='"')K=!0;else if(B===">"){W=z;break}z++}if(W===-1)continue;let U=$.slice(Q+Y[0].length,W);if(J8.test(U))continue;if(/(?:^|\s)x-cloak(?:=|\s|\/|>|$)/.test(U))continue;if(!LG.test(U))continue;let H=$[W-1]==="/",j=H?W-1:W;J+=`${$.slice(X,j)} x-cloak${H?" ":""}`,X=j}return J+=$.slice(X),J}var y$=k1(256),wG=[{pattern:/document\.getElementById\s*\(/g,message:"document.getElementById() is prohibited",suggestion:'Use useRef("name") instead'},{pattern:/document\.querySelector\s*\(/g,message:"document.querySelector() is prohibited",suggestion:'Use useRef("name") instead'},{pattern:/document\.querySelectorAll\s*\(/g,message:"document.querySelectorAll() is prohibited",suggestion:'Use useRef("name") and access children instead'},{pattern:/document\.getElementsBy\w+\s*\(/g,message:"document.getElementsBy*() is prohibited",suggestion:'Use useRef("name") instead'},{pattern:/document\.createElement\s*\(/g,message:"document.createElement() is prohibited",suggestion:"Use template directives or component composition instead"},{pattern:/document\.activeElement(?![A-Za-z])/g,message:"document.activeElement is prohibited",suggestion:"Use useRef() to track focused elements"},{pattern:/document\.title\s*=/g,message:"document.title assignment is prohibited",suggestion:"Use useTitle() from composables"},{pattern:/document\.cookie(?![A-Za-z])/g,message:"document.cookie is prohibited",suggestion:"Use useCookie() from composables"},{pattern:/document\.addEventListener\s*\(/g,message:"document.addEventListener() is prohibited",suggestion:"Use useEventListener() or template @event directives"},{pattern:/window\.location(?![A-Za-z])/g,message:"window.location is prohibited",suggestion:"Use navigate() or useRoute()"},{pattern:/window\.history(?![A-Za-z])/g,message:"window.history is prohibited",suggestion:"Use navigate(), goBack(), goForward()"},{pattern:/window\.addEventListener\s*\(/g,message:"window.addEventListener() is prohibited",suggestion:"Use useEventListener() or @click directives"},{pattern:/(?:\bwindow\.)?localStorage(?![A-Za-z])/g,message:"window.localStorage is prohibited",suggestion:"Use useLocalStorage() from composables \u2014 or @appearanceBootstrap if this must run before first paint, where the runtime does not exist yet"},{pattern:/window\.sessionStorage(?![A-Za-z])/g,message:"window.sessionStorage is prohibited",suggestion:"Use useSessionStorage() from composables"},{pattern:/window\.scrollTo\s*\(/g,message:"window.scrollTo() is prohibited",suggestion:"Use useScroll().scrollTo() from composables"},{pattern:/window\.alert\s*\(/g,message:"window.alert() is prohibited",suggestion:"Use stx modal/dialog APIs instead"},{pattern:/window\.confirm\s*\(/g,message:"window.confirm() is prohibited",suggestion:"Use stx modal/dialog APIs instead"},{pattern:/window\.prompt\s*\(/g,message:"window.prompt() is prohibited",suggestion:"Use stx modal/dialog APIs instead"},{pattern:/(?<!\w)setTimeout\s*\(/g,message:"setTimeout() is prohibited",suggestion:"Use useTimeout() or useDebounce() from composables"},{pattern:/(?<!\w)setInterval\s*\(/g,message:"setInterval() is prohibited",suggestion:"Use useInterval() from composables"},{pattern:/(?<!\w)clearTimeout\s*\(/g,message:"clearTimeout() is prohibited",suggestion:"Use useTimeout().stop() or useDebounce().cancel()"},{pattern:/(?<!\w)clearInterval\s*\(/g,message:"clearInterval() is prohibited",suggestion:"Use useInterval().pause()"},{pattern:/(?<!\w)location\.href\s*=/g,message:"location.href assignment is prohibited",suggestion:"Use navigate() instead"},{pattern:/(?<!\w)location\.assign\s*\(/g,message:"location.assign() is prohibited",suggestion:"Use navigate() instead"},{pattern:/(?<!\w)location\.replace\s*\(/g,message:"location.replace() is prohibited",suggestion:"Use navigate() instead"}];function C$($,Z,J,X){let Y=typeof J==="boolean"?{enabled:J,failOnViolation:J}:J??{enabled:!1};if(!Y.enabled)return;let Q=H1($,Z,X,JSON.stringify(Y)),G=y$.get(Q);if(G!==void 0){if(G&&Y.failOnViolation)throw Error(G);return}let z=Y.allowPatterns??[],q=[],K=u0($.replace(/\{\{--[\s\S]*?--\}\}/g,(j)=>j.replace(/[^\n]/g," ")));for(let{pattern:j,message:B,suggestion:V}of wG){if(z.some((_)=>/\w/.test(_)&&B.includes(_)))continue;j.lastIndex=0;let F=K.match(j);if(F&&F.length>0){let _=K.split(`
3557
- `),O=$.split(`
3558
- `),L=[];_.forEach((A,T)=>{if(j.lastIndex=0,j.test(A))L.push(T+1)});let w=L.length>0?` (script line${L.length>1?"s":""} ${L.join(", ")})`:"",R=L.slice(0,3).map((A)=>` ${A} | ${(O[A-1]??"").trim().slice(0,100)}`).join(`
3559
- `),N=R?`
3560
- ${R}`:"";q.push(` \u2717 ${B}${w}
3561
- \u2192 ${V}${N}`)}}if(q.length===0){y$.set(Q,"");return}let W=(j)=>{let B=`${process.cwd()}/`;return j.startsWith(B)?j.slice(B.length):j},H=`[STX] DOM API violation in ${X&&X!==Z?`${W(X)} (composed into ${W(Z)})`:W(Z)}:
3562
- ${q.join(`
3563
- `)}
3564
- Tip: prefer useRef(), navigate(), and composables for component code`;if(y$.set(Q,H),Y.failOnViolation)throw Error(H);else console.warn(H)}AG();import S$ from"path";var RG=/(\bfrom\s*|\bimport\s*\(\s*|\bimport\s+)(['"])(\.\.?\/[^'"]*)\2/g,NG=/(<script\b[^>]*>)([\s\S]*?)(<\/script>)/gi;function DG($,Z){if(!Z||!$.includes("/"))return $;let J=S$.dirname(Z);return $.replace(RG,(X,Y,Q,G)=>{let z=S$.resolve(J,G);return`${Y}${Q}${z.split(S$.sep).join("/")}${Q}`})}function Q8($,Z){if(!Z||!$.includes("<script"))return $;return $.replace(NG,(J,X,Y,Q)=>`${X}${DG(Y,Z)}${Q}`)}var E1="<!--PARENT_CONTENT_PLACEHOLDER-->";function G8($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function IG($,Z){let J=$.length,X=Z,Y=!0,Q=[],G=(z)=>z+9<=J&&$[z]==="<"&&$[z+1]==="/"&&($[z+2]==="s"||$[z+2]==="S")&&($[z+3]==="c"||$[z+3]==="C")&&($[z+4]==="r"||$[z+4]==="R")&&($[z+5]==="i"||$[z+5]==="I")&&($[z+6]==="p"||$[z+6]==="P")&&($[z+7]==="t"||$[z+7]==="T")&&($[z+8]===">"||/\s/.test($[z+8]));while(X<J){let z=$[X];if(G(X))return X;if(z==="/"&&$[X+1]==="/"){if(X=$.indexOf(`
3565
- `,X+2),X===-1)return-1;X+=1,Y=!0;continue}if(z==="/"&&$[X+1]==="*"){let q=$.indexOf("*/",X+2);if(q===-1)return-1;X=q+2,Y=!0;continue}if(z==="/"&&Y){let q=X+1,K=!1;while(q<J){let W=$[q];if(W==="\\"){q+=2;continue}if(W==="[")K=!0;else if(W==="]")K=!1;else if(W==="/"&&!K){q++;break}else if(W===`
3566
- `){q=-1;break}q++}if(q===-1){X++,Y=!1;continue}while(q<J&&/[a-z]/.test($[q]))q++;X=q,Y=!1;continue}if(z==="'"||z==='"'){let q=z;X++;while(X<J){if($[X]==="\\"){X+=2;continue}if($[X]===q){X++;break}if($[X]===`
3567
- `)break;X++}Y=!1;continue}if(z==="`"){X++;while(X<J){if($[X]==="\\"){X+=2;continue}if($[X]==="`"){X++;break}if($[X]==="$"&&$[X+1]==="{"){Q.push(!0),X+=2,Y=!0;break}X++}if(Q.length===0)Y=!1;continue}if(z==="}"&&Q.length>0){Q.pop(),X++;while(X<J){if($[X]==="\\"){X+=2;continue}if($[X]==="`"){X++,Y=!1;break}if($[X]==="$"&&$[X+1]==="{"){Q.push(!0),X+=2,Y=!0;break}X++}continue}if(/\s/.test(z));else if(/[)\].\w$]/.test(z))Y=!1;else Y=!0;X++}return-1}function M8($,Z){let J=Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),X=new RegExp(`<script\\b(?=[^>]*\\b${J}(?:\\s|=|/?>))[^>]*>`,"i").exec($);if(!X)return null;let Y=X.index+X[0].length,Q=$.indexOf("</script>",Y);if(Q===-1)return null;let G=$.indexOf(">",Q);if(G===-1)return null;return{start:X.index,end:G+1}}var z8=/<style\b[^>]*>/iy,q8=/<\/style>/gi,K8=/<script\b[^>]*>/iy;function W8($){let Z=0;while(Z<$.length){let J=$.indexOf("<",Z);if(J===-1)return-1;if($.startsWith("<!--",J)){let Y=$.indexOf("-->",J+4);Z=Y===-1?$.length:Y+3;continue}z8.lastIndex=J;let X=z8.exec($);if(X){q8.lastIndex=J+X[0].length;let Y=q8.exec($);Z=Y===null?$.length:Y.index+8;continue}if(K8.lastIndex=J,K8.test($))return J;Z=J+1}return-1}async function U8($,Z){try{let{registeredModuleIdsIn:J,buildModuleRegistryScript:X}=await o("stx/client-module-registry",()=>import("./chunk-jdcn0ms1.js")),Y=await X(J(...$),{minify:Z.buildMode==="compile"});if(!Y)return null;return`<script data-stx-scoped data-stx-run="always" data-stx-modules>${Y.replace(/<\/script/gi,"<\\/script")}</script>`}catch{return null}}function TG($,Z=""){let J=M8($,"data-stx-runtime");if(!J)return $;let X=W8($);if(X===-1||X===J.start){if(!Z)return $;return $.slice(0,J.end)+Z+$.slice(J.end)}if(X<J.start)return $.slice(0,X)+$.slice(J.start,J.end)+Z+`
3568
- `+$.slice(X,J.start)+$.slice(J.end);let Y=$.slice(J.start,J.end),Q=$.slice(0,J.start)+$.slice(J.end),G=W8(Q);if(G===-1)return Y+Z+`
3569
- `+Q;return Q.slice(0,G)+Y+Z+`
3570
- `+Q.slice(G)}async function v$($,Z,J,X,Y){if(X.ssr===!1&&!X.autoShell&&X.buildMode==="spa")return $;if(Z.__stx_signals_gate===void 0)Z.__stx_signals_gate=X1($,J);let Q=!Z.__stxProcessingDepth;V$(Z);for(let G of X._layerGraph?.configDependencies??[])Y.add(G);if(Q&&X.runtimeConfig)await C9(Z,J,X.runtimeConfig);if(Q)e$(Z),Z.__stx_head_injections=W$(),Z.__stx_seo_staged=!1;if(!Z.__stxProcessingDepth)Z.__stxProcessingDepth=0;if(Z.__stxProcessingDepth++,!Z.__onceStore)Z.__onceStore=new Set;if((X.debug||!_9()&&!L9())&&J&&J.endsWith(".stx"))A8($,J);try{return await w8.timeAsync("template-processing",async()=>{let G=await kG($,Z,J,X,Y);if(Q)G=b$(G);if(Q&&X.autoShell&&X.buildMode!=="compile"){let z=X.app?.head||{},K=(Z.__stx_runtime_head||null)??D8(),W=(Z.__stx_head_raw||"").trim(),U,H=W.match(/<title[^>]*>([\s\S]*?)<\/title>/i);if(H)U=H[1].trim(),W=W.replace(H[0],"").trim();let j=Z.__sections?.title,B=K.title||U||j,V=!K.title&&(!!U||!!j),F=K.meta||[],_=new Set(F.map((A)=>o1(A)).filter(Boolean)),O={...z,...B&&{title:B},meta:[...(z.meta||[]).filter((A)=>!_.has(o1(A))),...F],link:[...z.link||[],...K.link||[]],script:[...z.script||[],...K.script||[]],headRaw:[z.headRaw,W].filter(Boolean).join(`
3571
- `),...K.htmlAttrs&&{htmlAttrs:O6(z.htmlAttrs,K.htmlAttrs)},...K.bodyAttrs&&{bodyAttrs:{...z.bodyAttrs||{},...K.bodyAttrs}}},L=w$(G);if(G=R6(G,O,{...V&&{titleIsHtml:!0},...X.app?.colorMode&&{colorMode:X.app.colorMode}},L),L)G=w6(G,z),G=F6(G,O.htmlAttrs);let w=G.match(/<!-- stx-layout: ([^ ]+) -->/);if(w&&G.includes("<head")){let A=w[1],T=O8(A);G=G.replace(/<head\b[^>]*>/i,(D)=>`${D}
3572
- <meta name="stx-layout" content="${G8(A)}">
3573
- <meta name="stx-layout-group" content="${G8(T)}">`)}let R=G.match(/function (__stx_setup_\w+)\(/),N=R?s0(G):null;if(R&&N&&!/\bdata-stx=/.test(N.tag)){G=y1(G,(T,D)=>`<body${D} data-stx="${R[1]}">`);let A=new RegExp(`(<(?!body)[a-zA-Z][^>]*) data-stx="${R[1]}"`,"i");G=G.replace(A,"$1")}}if(Q){let z=Z.__stx_head_injections??W$(),q=O$(G);if(q!==null)z.beforeClose.push(q);let K=B$(G);if(K!==null)z.afterOpen.push(K);G=Y6(G,z);let W=X.app?.colorMode;if(W)G=z6(G,W)}if(Q)if(M8(G,"data-stx-runtime")){let q=null,K=null,W=null,U=null;try{let{getStoreScript:j}=await o("stx/store-loader",()=>import("./chunk-6xmx6stb.js")),B=X.storesDir,V=await j(B);if(V)K=`<script data-stx-stores>${V}</script>`}catch{}q=await U8([G,K],X);try{let{getFrameworkComposableScript:j}=await o("stx/framework-composables",()=>import("./chunk-w6ncyp18.js"));U=await j(G)}catch{}try{let{getComposableScript:j}=await o("stx/composable-loader",()=>import("./chunk-8avktqwz.js")),B=X.composablesDir,V=[q,K,U].filter((_)=>_!==null),F=await j(X._layerComposableDirs??B,G,V);if(F)W=`<script data-stx-composables>${F}</script>`}catch{}let H=[q,K,W,U].filter((j)=>j!==null).map((j)=>`
3574
- ${j}`).join("");G=TG(G,H)}else{let q=await U8([G],X);if(q){let K=G.search(/<script\b[^>]*>(?:(?!<\/script>)[\s\S])*?__stxModules\[/i);if(K!==-1)G=G.slice(0,K)+q+`
3575
- `+G.slice(K)}}if(Q)G=q6(G);if(Q&&Z.__stx_inject_css!==!1)G=await N8(G,void 0,X.buildMode==="serve",!0);else if(Q)G=R8(G);if(G=G.replace(/\x00STX_ESCAPED_AT\x00/g,"@"),Q&&Z.__stx_runtime_config)G=F8(G,Z.__stx_runtime_config);if(Q&&!Z.__stx_defer_server_data){let z=j6(Z);if(z){let q=/<head\b[^>]*>/i.exec(G),K=q?q.index+q[0].length:0;G=G.slice(0,K)+z+G.slice(K)}}return G})}catch(G){if(G instanceof j8)throw G;let z=G instanceof Error?G.message:String(G),q=new k2(`Template processing failed: ${z}`,J,void 0,void 0,$.substring(0,200)+($.length>200?"...":""));if(o0.log(q,{filePath:J,context:Z}),V8.logDetailedError(q,{filePath:J,template:$.substring(0,500)}),X.debug)throw q;return B8.createFallbackContent("Template Processing",q)}}async function kG($,Z,J,X,Y){let Q=process.cwd(),G={...X,partialsDir:X.partialsDir&&!T0.isAbsolute(X.partialsDir)?T0.resolve(Q,X.partialsDir):X.partialsDir,componentsDir:X.componentsDir&&!T0.isAbsolute(X.componentsDir)?T0.resolve(Q,X.componentsDir):X.componentsDir,layoutsDir:X.layoutsDir&&!T0.isAbsolute(X.layoutsDir)?T0.resolve(Q,X.layoutsDir):X.layoutsDir},z=G,q=$;await yG(J,Z),bG(Z,z),q=await E2(()=>n4(q,Z,J,z),q,(L)=>{o0.log(L,{filePath:J,phase:"pre-processing-middleware"},"warning"),console.warn(`[stx] pre-processing middleware failed for ${J}: ${L.message}`)}),q=q.replace(/\{\{--[\s\S]*?--\}\}/g,"");let K=B1(q,V9,(L,w)=>`\x00STX_HTML_COMMENT_${w}\x00`);q=K.output;let W=K.tokens,U=(L)=>W.length===0?L:L.replace(/\x00STX_HTML_COMMENT_(\d+)\x00/g,(w,R)=>W[Number(R)]??""),H="\x00STX_ESCAPED_AT\x00";q=q.replace(/@@/g,H),q=q.replace(/@\{\{([\s\S]*?)\}\}/g,(L,w)=>{return`{{ ${w} }}`}),q=t4(q),q=await r6(q,J,Y);let j={};q=Q$(q,j);let B={...Z.__sections||{}},V="",F=k3(T3($)),_=/@nolayout\b/.test(q)||F===!1;if(/@nolayout\b/.test(q))q=q.replace(/@nolayout\b\s*/g,"");let O=q.match(/@(?:layout|extends)\(\s*['"]([^'"]+)['"]\s*\)/);if(O)V=O[1],q=q.replace(/@(?:layout|extends)\(\s*['"]([^'"]+)['"]\s*\)/g,"");else if(typeof F==="string"){if(V=F,!/@section\s*\(/.test(q))q=`@section('content')
3576
- ${q.trim()}
3577
- @endsection`}if(!V&&!_&&z.defaultLayout){let L=F$(q),w=/@section\s*\(/.test(q);if(!L||w){let R="",N=T0.dirname(J),A=z.layoutsDir?T0.dirname(z.layoutsDir):process.cwd();for(let T=0;T<20;T++){let D=T0.join(N,"_layout.stx");if(await a(D)){R=D;break}let M=T0.dirname(N);if(M===N||M.length<A.length)break;N=M}if(R)V=R;else if(z.layoutsDir){let T=T0.isAbsolute(z.layoutsDir)?z.layoutsDir:T0.resolve(process.cwd(),z.layoutsDir),D=T0.join(T,`${z.defaultLayout}.stx`);if(await a(D))V=D}if(V&&!w)q=`@section('content')
3578
- ${q.trim()}
3579
- @endsection`}}if(q=q.replace(/@section\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*\)/g,(L,w,R)=>{return B[w]=R,""}),q=q.replace(/@section\(\s*['"]([^'"]+)['"]\s*,\s*([^)]+?)\s*\)/g,(L,w,R)=>{if(/^(['"]).*\1$/.test(R.trim()))return L;try{let N=e(R.trim(),Z);if(N===void 0)return L;return B[w]=String(N??""),""}catch{return L}}),q=q.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@endsection|@show)/g,(L,w,R)=>{if(R.includes("@parent"))B[w]=R.replace("@parent",E1);else B[w]=R.trim();return""}),Z.__sections=B,q=q.replace(/@(?:yield|slot)\(\s*['"]([^'"]+)['"](?:,\s*['"]([^'"]+)['"])?\)/g,(L,w,R)=>{return B[w]||R||""}),!("slot"in Z)||Z.slot===void 0)q=q.replace(/\{\{\s*slot\s*\}\}/g,()=>{return B.content||""});if(q=G$(q,j),V){let L=[],w=n0(q),R=B1(w.output,m2,(N,A)=>`\x00STX_ORPHAN_STYLE_${A}\x00`);if(q=R.output.replace(/\x00STX_(SCRIPT|ORPHAN_STYLE)_(\d+)\x00/g,(N,A,T)=>{let D=A==="SCRIPT"?CG(w.scripts[Number(T)],J):R.tokens[Number(T)];if(D)L.push(D);return""}),L.length>0){let N=L.join(`
3580
- `);B.content=B.content?`${B.content}
3581
- ${N}`:N,Z.__sections=B}}if(V)try{let L;if(T0.isAbsolute(V))L=V,Y.add(V);else L=await E2(()=>r2(V,J,G,Y),null,()=>{throw new k2(`Failed to resolve layout path: ${V}`,J,void 0,void 0,`Layout referenced from ${J}`)});if(!L){let D=(I)=>{if(!I)return[];try{let y=T0.isAbsolute(I)?I:T0.resolve(process.cwd(),I);return MG.readdirSync(y).filter((E)=>E.endsWith(".stx")).map((E)=>E.replace(/\.stx$/,""))}catch{return[]}},M=[...D(G.layoutsDir),...D(G.fallbackLayoutsDir)].filter((I,y,E)=>E.indexOf(I)===y).sort(),k=`Layout not found: ${V} (referenced from ${J})`+(M.length>0?`. Available layouts: ${M.join(", ")}`:G.layoutsDir?`. No .stx layouts found in ${G.layoutsDir}`:"");if(o0.log(Error(k),{layoutPath:V,filePath:J,available:M},"error"),console.error(`[stx] ${k}`),G.debug)throw new k2(k,J);return q}let w=await E2(()=>Bun.file(L).text(),"",()=>{throw new k2(`Failed to read layout file: ${L}`,J,void 0,void 0,"Layout content could not be loaded")});w=Q8(w,L);let R=w.match(/@(?:layout|extends)\(\s*['"]([^'"]+)['"]\s*\)/);if(R){if(G.debug)console.log(`Found nested layout: ${R[1]} in ${L}`);let D={},M=w.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@show|@endsection)/g,(y,E,b)=>{return D[E]=b.trim(),""});for(let[y,E]of Object.entries(D))if(B[y]&&B[y].includes(E1)){let b=B[y].indexOf(E1);B[y]=B[y].slice(0,b)+E+B[y].slice(b+E1.length)}else if(!B[y])B[y]=E;let k={...Z,__sections:B},I=`@layout('${R[1]}')${M}`;return await v$(I,k,L,G,Y)}let N=w.replace(/\{\{--[\s\S]*?--\}\}/g,""),A=Q$(N,j),T={};return A=A.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@show|@endsection)/g,(D,M,k)=>{return T[M]=k.trim(),`@slot('${M}')`}),A=A.replace(/@(?:yield|slot)\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(D,M,k)=>{if(B[M]){let I=B[M];if(I.includes(E1)){let y=T[M]||"",E=I.indexOf(E1);I=I.slice(0,E)+y+I.slice(E+E1.length)}return I}return k||""}),A=EG(A,B),A=A.replace(/\{\{\s*slot\s*\}\}/g,()=>{return B.content||""}),A=G$(A,j),Z.__originalFilePath=J,q=await H8(A,Z,L,G,Y),q=`<!-- stx-layout: ${V} -->
3582
- ${q}`,U(q)}catch(L){return o0.log(L instanceof Error?L:Error(String(L)),{layoutPath:V,filePath:J},"error"),`[Error processing layout: ${L instanceof Error?L.message:String(L)}]`}return U(await H8(q,Z,J,G,Y))}function EG($,Z){return $.replace(/@(?:yield|slot)\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(J,X,Y)=>{let Q=Z[X];if(Q!==void 0){if(!new RegExp(`@(?:yield|slot)\\(\\s*['"]${X.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}['"]`).test(Q))return Q}return Y||""})}function bG($,Z){if($.__stx_sfc_mode=!0,$.__stx_options=Z,Z.buildMode)$.__stx_buildMode=Z.buildMode;let J=Z.envPrefix||"STX_PUBLIC_",X={};for(let[Y,Q]of Object.entries(process.env))if(Y.startsWith(J)&&Q!==void 0)X[Y]=Q;$.$env=X}async function yG($,Z){await E2(()=>r4($,Z),void 0,(J)=>{o0.log(J,{filePath:$,phase:"view-composer"},"warning"),console.warn(`[stx] view composer failed for ${$}: ${J.message}`)})}var P$="data-stx-source";function CG($,Z){if(!$)return $;let J=/^<script\b([^>]*)>/i.exec($);if(!J||!/\bserver\b/.test(J[1])||J[1].includes(P$))return $;return`<script ${P$}="${encodeURIComponent(Z)}"${$.slice(7)}`}function SG($){let Z=new RegExp(`${P$}="([^"]*)"`).exec($);return Z?decodeURIComponent(Z[1]):void 0}async function PG($,Z,J){let X=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,Y;while((Y=X.exec($))!==null){let Q=Y[1],G=Y[2];if(!/\bserver\b/.test(Q)||!G.trim())continue;let q=SG(Q)??J;try{let{extractVariables:K}=await o("stx/variable-extractor",()=>import("./chunk-h63vszd3.js"));await K(G,Z,q,{preserveExisting:!0})}catch(K){let W=K instanceof Error?K:Error(String(K));o0.log(W,{filePath:q,phase:"server-script-extraction"},"warning"),console.warn(`[stx] server <script> extraction failed in ${q}: ${W.message}`)}}}async function vG($,Z,J){try{let{interpolateScriptsInTemplate:X}=await o("stx/expressions",()=>import("./chunk-gcavh7hk.js"));return X($,Z,{skipServer:!0})}catch(X){let Y=X instanceof Error?X:Error(String(X));return o0.log(Y,{filePath:J,phase:"script-expression-interpolation"},"warning"),console.warn(`[stx] script expression interpolation failed in ${J}: ${Y.message}`),$}}async function H8($,Z,J,X,Y){let Q=$,G=X;if(await PG(Q,Z,J),Q=await vG(Q,Z,J),Q=await S4(Q,Z,J),Q=await P4(Q,Z,J),Q=await x7(Q,Z,J,G),X1(Q))Q=m6(Q,Z),Q=T$(Q,Z);Q=c6(Q);let{processStreamDirectives:z}=await o("stx/streaming",()=>import("./chunk-f9qrz82p.js"));Q=z(Q,Z),Q=m4(Q,Z,J,G),Q=await J6(Q,Z,J,G,Y),Q=await J$(Q,Z,J,G,Y),Q=I3(Q,Z,J,G);let{processDeferDirectives:q}=await o("stx/defer",()=>import("./chunk-v33qvj8y.js"));Q=q(Q,Z,J);let{processTeleportDirectives:K}=await o("stx/teleport",()=>import("./chunk-7yzyn9k7.js"));Q=K(Q,Z,J);let{processTransitionDirectives:W,processTransitionAttributes:U}=await o("stx/transitions",()=>import("./chunk-ksqba0cq.js"));Q=W(Q,Z,J),Q=U(Q);let{processErrorBoundaryDirectives:H}=await o("stx/error-boundaries",()=>import("./chunk-nnv8wytm.js"));Q=H(Q,Z,J);let{processSuspenseDirectives:j}=await o("stx/suspense",()=>import("./chunk-8q8gj45z.js"));Q=j(Q,Z,J);let{processAsyncDirectives:B}=await o("stx/async-components",()=>import("./chunk-t5kwx6fa.js"));Q=B(Q,Z,J);let{processKeepAliveDirectives:V}=await o("stx/keep-alive",()=>import("./chunk-wwghzbbg.js"));Q=V(Q,Z,J);let{processVirtualListDirectives:F,processVirtualGridDirectives:_,processInfiniteListDirectives:O}=await o("stx/virtual-scrolling",()=>import("./chunk-kexk6z9s.js"));Q=F(Q,Z,J),Q=_(Q,Z,J),Q=O(Q,Z,J);let{processPartialHydrationDirectives:L,processStaticDirectives:w}=await o("stx/partial-hydration",()=>import("./chunk-bnq0p4r4.js"));Q=L(Q,Z,J),Q=w(Q);let{processComputedDirectives:R,processWatchDirectives:N}=await o("stx/computed",()=>import("./chunk-jd9nv63q.js"));Q=R(Q,Z,J),Q=N(Q,Z,J);let{processFormValidationDirectives:A}=await o("stx/forms-validation",()=>import("./chunk-604qr43v.js"));Q=A(Q,Z,J);let{processHeadDirective:T,processTitleDirective:D,processMetaDirective:M,resetHead:k}=await o("stx/head",()=>import("./chunk-ajhrz96a.js"));if(!Z.__stx_head_preset&&!Z.__stx_runtime_head)k();let I=T(Q);if(Q=I.content,I.headContent)Z.__stx_head_raw=`${Z.__stx_head_raw||""}${I.headContent}
3583
- `;if(Q=D(Q,Z),Q=M(Q,Z),Q=o4(Q),Q=N5(Q,Z),Q=f7(Q),Q=p4(Q),Q=await Y$(Q,Z,J,G,Y),Q=await J$(Q,Z,J,G,Y),Z.__stxProcessingDepth===1)Q=$3(Q,Z);if(Q=Q.replace(/@push\s*\(\s*['"][^'"]+['"]\s*\)[\s\S]*?@endpush/g,""),Q=b$(Q),Q=e0(Q,Z,J),Q=b3(Q,Z,{filePath:J,buildMode:G.buildMode}),Q=D5(Q,Z),Q=A5(Q,Z),Q=_2(Q,Z),Q=y5(Q,Z),Q=C5(Q,Z),Q=await D7(Q,Z,J,G),Q=await x3(Q,Z,J),Q=await _8(Q,Z,J,G),Q=L8(Q,Z,J,G),Q=G7(Q,Z,J,G),Q=z7(Q,Z,J),Q=q7(Q,Z,J,G),Q=P7(Q,Z,J,G),Q=k$(Q,Z),Q=E$(Q),Q=e6(Q),!G.skipEventDirectives)Q=a$(Q,Z,J);if(Q=S3(Q,Z,J),G.debug){let s=/\bx-data\s*=/.test(Q),p=I$($);if(s&&p)console.warn(`[stx] ${J}: Template mixes Alpine-style (x-data) and signals (state/derived/effect) reactivity.
3584
- Both work on the same page, but they manage separate scopes.
3585
- Prefer signals (state/derived/effect) for new components.`)}Q=w4(Q,Z),Q=await V1(Q,Z,J),Q=X8(Q),Q=Y8(Q),Q=O3(Q);let{processXElementDirectives:y}=await o("stx/x-element",()=>import("./chunk-y4dd2n2n.js"));Q=y(Q);let E=Z.__originalFilePath||J,b=E9(Z);if(Q=await p6(Q,G,E,b),Q=d7(Q,Z),Q=await s4(Q,Z,J,G),G.media?.image?.autoSiblings){let s=G.publicDir||"public",{rewriteImagesWithSiblings:p}=await o("stx/image-optimization/auto-sibling",()=>import("./chunk-vpbw6g2t.js"));Q=await p(Q,{publicDir:s})}if(G.seo?.enabled)Q=K7(Q,Z,G);let C=(s,p,q0=!0)=>{if(!p)return s;let Z0=p.match(/<title\b[^>]*>[\s\S]*?<\/title>/i),V0=s.match(/<title\b[^>]*>[\s\S]*?<\/title>/i);if(Z0&&V0){if(q0)s=s.replace(V0[0],Z0[0]);if(p=p.replace(Z0[0],"").trim(),!p)return s}if(/<\/head>/i.test(s))return s.replace(/<\/head>/i,`${p}
3586
- </head>`);if(/<head\b[^>]*>/i.test(s))return s.replace(/(<head\b[^>]*>)/i,`$1
3587
- ${p}`);if(/<html\b[^>]*>/i.test(s))return s.replace(/(<html\b[^>]*>)/i,`$1
3588
- <head>
3589
- ${p}
3590
- </head>`);return s},{renderHead:f,getHead:u}=await o("stx/head",()=>import("./chunk-ajhrz96a.js")),h=Z.__stx_runtime_head??u();if(h.title||h.meta?.length||h.link?.length){let s=f(h);if(s)Q=C(Q,s)}if(I.headContent)Q=C(Q,I.headContent,!h.title);if(G.csp?.enabled&&G.csp.addMetaTag)Q=C7(Q,G.csp,Z);if(G.analytics?.enabled)Q=w3(Q,G);if(G.heatmap?.enabled)Q=N3(Q,G);if(G.pwa?.enabled&&G.pwa.autoInject!==!1){let{injectPwaTags:s}=await o("stx/pwa/inject",()=>import("./chunk-bzmxbz48.js"));Q=s(Q,G)}let m=/<script\b(?![^>]*\bserver\b)[^>]*>[\s\S]*?<\/script>/i.test(Q),j0=/\bSTX\.\w+/.test(Q),S0=/window\.STX\s*=/.test(Q);if(m&&j0&&!S0){let p=`<script data-stx-scoped data-stx-run="once">
3591
- ${V3()}
3592
- </script>`;if(Q.includes("</head>")){let q0=Q.indexOf("</head>"),V0=Q.slice(0,q0).indexOf("<script");if(V0!==-1){let k0=Q.slice(0,V0),j1=Q.slice(V0);Q=k0+p+`
3593
- `+j1}else Q=Q.replace("</head>",`${p}
3594
- </head>`)}else if(Q.includes("<body"))Q=Q.replace(/<body([^>]*)>/,`<body$1>
3595
- ${p}`);else Q=p+`
3596
- `+Q}{let{scanScriptTags:s}=await o("stx/signal-processing",()=>import("./chunk-0ggq64sc.js")),p=[];for(let q0 of s(Q)){if(!/\bserver\b/i.test(q0.attrs))continue;let Z0=q0.start+q0.fullMatch.indexOf(">")+1,V0=IG(Q,Z0);if(V0===-1)continue;let k0=V0+9;while(k0<Q.length&&/\s/.test(Q[k0]))k0++;p.push({start:q0.start,end:k0})}if(p.length>0){let q0=Array(p.length+1),Z0=0;for(let V0=0;V0<p.length;V0++){let{start:k0,end:j1}=p[V0];q0[V0]=Q.slice(Z0,k0),Z0=j1}q0[p.length]=Q.slice(Z0),Q=q0.join("")}}let y0=y9(Q,J);if(y0.hasScoped)Q=y0.html;let h0=Z.__stx_event_bindings||[],Y0=!1,B0=[],M0=/\s:[a-z][\w.-]*\s*=/.test(Q),{scanScriptTags:P0}=await o("stx/signal-processing",()=>import("./chunk-0ggq64sc.js"));for(let s of P0(Q,{skipAttrs:/\bserver\b|\bsrc\s*=|\bdata-stx-scoped\b|\bdata-stx-router\b|\btype\s*=\s*["'](?!(?:text\/javascript|application\/javascript|module)["'])[^"']*["']/}))B0.push({match:s.fullMatch,attrs:s.attrs,content:s.body});for(let{match:s,attrs:p,content:q0}of B0){Y0=!0;let Z0=q0;C$(q0,J,X.strict,Z.__originalFilePath);let V0=await b9(q0,{eventBindings:h0,attrs:p,hasColonDirectives:M0,templateContent:$,filePath:J,projectRoot:process.cwd(),production:X.buildMode==="compile",serverData:b});Q=Q.replace(s,()=>V0)}if(Y0)Z.__stx_event_bindings=[];if(!Y0&&Z.__stxProcessingDepth===1){let s=Z.__stx_event_bindings||[];if(s.length>0){let p=h9(s);if(p){let q0=Q.lastIndexOf("</body>");Q=q0===-1?Q+p:Q.slice(0,q0)+p+`
3597
- `+Q.slice(q0)}Z.__stx_event_bindings=[]}}if(!k6(Q)&&E6(Q))Q=await M9(Q,G);if(Q=b6(Q),G.csp?.enabled&&G.csp.useNonce&&typeof Z.cspNonce==="string")Q=S7(Q,Z.cspNonce);return Q}var fG=[{open:"@if",close:"@endif",name:"if"},{open:"@unless",close:"@endunless",name:"unless"},{open:"@foreach",close:"@endforeach",name:"foreach"},{open:"@for",close:"@endfor",name:"for"},{open:"@while",close:"@endwhile",name:"while"},{open:"@forelse",close:"@endforelse",name:"forelse"},{open:"@switch",close:"@endswitch",name:"switch"},{open:"@isset",close:"@endisset",name:"isset"},{open:"@empty",close:"@endempty",name:"empty"},{open:"@auth",close:"@endauth",name:"auth"},{open:"@guest",close:"@endguest",name:"guest"},{open:"@can",close:"@endcan",name:"can"},{open:"@cannot",close:"@endcannot",name:"cannot"},{open:"@section",close:"@endsection",name:"section",altClose:"@show"},{open:"@push",close:"@endpush",name:"push"},{open:"@prepend",close:"@endprepend",name:"prepend"},{open:"@once",close:"@endonce",name:"once"},{open:"@markdown",close:"@endmarkdown",name:"markdown"},{open:"@component",close:"@endcomponent",name:"component"}],xG=[{pattern:/@if\s*[^(]/,message:"@if directive missing parentheses",suggestion:"Use @if(condition)"},{pattern:/@foreach\s*[^(]/,message:"@foreach directive missing parentheses",suggestion:"Use @foreach(items as item)"},{pattern:/@foreach\([^)]*\)\s*[^@\n<]/,message:"@foreach may have content on same line",suggestion:"Put content on new line after @foreach()"},{pattern:/@include\s*[^(]/,message:"@include directive missing parentheses",suggestion:"Use @include('partial-name')"},{pattern:/@extends\s*[^(]/,message:"@extends directive missing parentheses",suggestion:"Use @extends('layout-name') or @layout('layout-name')"},{pattern:/@layout\s*[^(]/,message:"@layout directive missing parentheses",suggestion:"Use @layout('layout-name')"}],gG=[{pattern:/\{\{\s*constructor\s*\}\}/,message:"Attempting to access constructor property"},{pattern:/\{\{\s*__proto__\s*\}\}/,message:"Attempting to access __proto__ property"},{pattern:/\{\{\s*eval\s*\(/,message:"Attempting to use eval in expression"}];function hG($){let Z=[],J=[];return uG($,Z),dG($,Z,J),mG($,J),lG($,Z),{valid:Z.length===0,errors:Z,warnings:J}}function uG($,Z){let J=($.match(/\{\{/g)||[]).length,X=($.match(/\}\}/g)||[]).length;if(J!==X)Z.push({type:"expression",message:`Unclosed expression brackets: found ${J} opening '{{' and ${X} closing '}}'`,suggestion:"Ensure every {{ has a matching }}"})}function dG($,Z,J){for(let X of fG){let Y=new RegExp(`${X.open}(?:\\s|\\()`,"g"),Q=new RegExp(X.close,"g"),G=($.match(Y)||[]).length,z=($.match(Q)||[]).length;if(X.altClose){let q=new RegExp(X.altClose,"g");z+=($.match(q)||[]).length}if(G>z)Z.push({type:"directive",message:`Unclosed @${X.name} directive: found ${G} opening and ${z} closing`,suggestion:`Add ${G-z} missing ${X.close} tag(s)`});else if(z>G)J.push({type:"directive",message:`Extra ${X.close} found: ${z-G} more closing than opening`,suggestion:`Check for orphaned ${X.close} tags`})}}function mG($,Z){for(let J of xG)if(J.pattern.test($))Z.push({type:"syntax",message:J.message,suggestion:J.suggestion})}function lG($,Z){for(let J of gG)if(J.pattern.test($))Z.push({type:"expression",message:`Security warning: ${J.message}`,suggestion:"Remove dangerous code from template expressions"})}function cG($,Z){let J=$.slice(0,Z).split(`
3598
- `);return{line:J.length,column:J[J.length-1].length+1}}function pG($,Z,J){let X=[];switch($){case"if":case"elseif":case"unless":if(J.length===0)X.push({type:"syntax",message:`@${$} requires a condition`,suggestion:`Use @${$}(condition)`});break;case"foreach":if(J.length===0||!J[0].includes(" as "))X.push({type:"syntax",message:'@foreach requires "items as item" syntax',suggestion:"Use @foreach(items as item) or @foreach(items as key => value)"});break;case"for":if(J.length===0)X.push({type:"syntax",message:"@for requires loop parameters",suggestion:"Use @for(let i = 0; i < 10; i++)"});break;case"switch":if(J.length===0)X.push({type:"syntax",message:"@switch requires an expression",suggestion:"Use @switch(expression)"});break;case"case":if(J.length===0)X.push({type:"syntax",message:"@case requires a value",suggestion:"Use @case(value)"});break;case"include":case"extends":case"component":if(J.length===0)X.push({type:"syntax",message:`@${$} requires a path`,suggestion:`Use @${$}('path/to/template')`});break}return X}function iG($){return/@[a-z]+/i.test($)||/\{\{/.test($)}function nG($){let Z=$.matchAll(/@([a-z]+)/gi),J=new Set;for(let X of Z){let Y=X[1].toLowerCase();if(!Y.startsWith("end"))J.add(Y)}return Array.from(J)}import r0 from"path";import $2 from"process";var u8=["module","exports","require","props","$props","defineProps","withDefaults","defineClientPayload","useServerData","useRuntimeConfig","useServerRuntimeConfig","state","derived","effect","batch","onMount","onDestroy","definePageMeta","useRoute","useRouter","useHead","useSeoMeta","setResponseStatus","setResponseHeader","notFound","ref","reactive","computed","watch","onMounted","onUnmounted","nextTick","defineEmits","defineExpose","defineSlots","provide","inject","useColorMode","useDark","useMediaQuery","useScrollLock","usePreferredDark","usePreferredLight","usePreferredReducedMotion","usePreferredContrast","window","document","console","confirm","alert","fetch","params"],I8=new Set(u8),sG=new Set(["props","$props","defineProps"]),oG=new Set(["stx","@stacksjs/stx"]),T8=k1(128),k8=k1(64);function rG($){let Z=[],J=0,X=$.split(`
3599
- `);for(let Y of X){let Q=J,G=null,z=!1;for(let q=0;q<Y.length;q++){let K=Y[q];if(z){z=!1;continue}if(K==="\\"){z=!0;continue}if(G){if(K===G)G=null;continue}if(K==="'"||K==='"'||K==="`"){G=K;continue}if(K==="/"&&q+1<Y.length&&Y[q+1]==="/")break;if(K==="{")J++;else if(K==="}")J--}if(Q===0){let q=Y.match(/(?:const|let|var)\s+(\w+)\s*=/);if(q)Z.push(q[1]);else if(/^\s*(?:const|let|var)\s+\w+\s*;?\s*$/.test(Y)){let K=Y.match(/(?:const|let|var)\s+(\w+)/);if(K)Z.push(K[1])}else{let K=Y.match(/(?:const|let|var)\s+(\{[^}]+\}|\[[^\]]+\])\s*=/);if(K){let U=K[1].slice(1,-1).split(",").map((H)=>{let j=H.split(":");return(j.length>1?j[1]:j[0]).trim()}).filter((H)=>/^\w+$/.test(H));Z.push(...U)}}}}return[...new Set(Z)]}function aG($){let Z=$;Z=Z.replace(/^\s*import\s+.*?from\s+['"][^'"]+['"]\s*;?\s*$/gm,""),Z=Z.replace(/^\s*import\s+['"][^'"]+['"]\s*;?\s*$/gm,""),Z=Z.replace(/^\s*interface\s+\w+\s*\{[\s\S]*?\n\}\s*$/gm,""),Z=Z.replace(/^\s*type\s+\w+\s*=[\s\S]*?(?=\n(?:const|let|var|function|export|interface|type|$))/gm,""),Z=Z.replace(/^(\s*(?:export\s+)?(?:const|let|var)\s+)(\w+|\{[^}]+\}|\[[^\]]+\])\s*:\s*[^=]+(\s*=)/gm,"$1$2$3");function J(X){if(!X.includes(":"))return X;let Y=[],Q="",G=0,z=0,q=null;for(let K=0;K<X.length;K++){let W=X[K];if(q){if(Q+=W,W===q)q=null;continue}if(W==='"'||W==="'"||W==="`"){q=W,Q+=W;continue}if(W==="<")G++;else if(W===">"&&G>0)G--;else if(W==="(")z++;else if(W===")")z--;if(W===","&&G===0&&z===0){Y.push(Q),Q="";continue}Q+=W}if(Q)Y.push(Q);return Y.map((K)=>{let W=K.trim(),U=W.startsWith("..."),H=U?W.slice(3):W,j=-1,B=0;for(let R=0;R<H.length;R++)if(H[R]==="<")B++;else if(H[R]===">")B--;else if(H[R]===":"&&B===0){j=R;break}if(j===-1)return K;let F=H.substring(0,j).trim().replace(/\?$/,""),_=H.substring(j+1),O=-1,L=0;for(let R=0;R<_.length;R++)if(_[R]==="<")L++;else if(_[R]===">")L--;else if(_[R]==="="&&L===0){O=R;break}let w=U?"...":"";if(O!==-1)return`${w}${F} = ${_.substring(O+1).trim()}`;return`${w}${F}`}).join(", ")}Z=Z.replace(/\b(function\s+\w*\s*)\(([^)]*)\)/g,(X,Y,Q)=>{if(!Q.includes(":"))return X;return`${Y}(${J(Q)})`});{let X=/\b(function\s+\w*\s*)\(/g,Y,Q=[];while((Y=X.exec(Z))!==null){let G=Y.index+Y[0].length-1,z=1,q=G+1,K=0,W=null;while(q<Z.length&&z>0){let j=Z[q];if(W){if(j===W)W=null;q++;continue}if(j==='"'||j==="'"||j==="`"){W=j,q++;continue}if(j==="<")K++;else if(j===">"&&K>0)K--;else if(K===0){if(j==="(")z++;else if(j===")")z--}if(z>0)q++}if(z!==0)continue;let U=Z.substring(G+1,q);if(!U.includes(":"))continue;let H=J(U);Q.push({start:G+1,end:q,replacement:H})}for(let G=Q.length-1;G>=0;G--){let{start:z,end:q,replacement:K}=Q[G];Z=Z.substring(0,z)+K+Z.substring(q)}}return Z=Z.replace(/\(([^)]*)\)\s*(?::\s*[^=]+)?\s*=>/g,(X,Y)=>{if(!Y.includes(":"))return X;if(Y.includes("{")||Y.includes("}"))return X;return`(${Y.split(",").map((G)=>{let[z,...q]=G.split("="),K=z.split(":")[0].trim();if(q.length>0)return`${K} = ${q.join("=").trim()}`;return K}).join(", ")}) =>`}),Z=Z.replace(/(\))\s*:\s*([A-Z]\w*|void|string|number|boolean|any|unknown|never|null|undefined)(?:<[^>]+>)?(?:\s*\|\s*(?:[A-Z]\w*|void|string|number|boolean|any|unknown|never|null|undefined))*\s*(\{)/g,"$1$3"),Z=Z.replace(/(\b(?:function|class|interface|type|extends|implements)\s+\w+)\s*<[^<>()]*>/g,"$1"),Z=Z.replace(/(\b(?:defineProps|withDefaults|defineEmits|defineSlots|Array|Promise|Map|Set|Record|Partial|Required|Readonly|Pick|Omit|Exclude|Extract))\s*<[^<>()]*>/g,"$1"),Z=Z.replace(/(\w+)\s*<[A-Z][^<>()]*>\s*(?=\()/g,"$1"),Z=Z.replace(/\s+as\s+(?:const|[A-Za-z]\w*(?:\[\])?(?:\s*\|\s*\w+(?:\[\])?)*)/g,""),Z=Z.replace(/\s+satisfies\s+\w+(?:<[^>]*>)?/g,""),Z=Z.replace(/(\w|\)|\])\s*!(?!=)/g,"$1"),Z=Z.replace(/^\s*(?:export\s+)?(?:const\s+)?enum\s+\w+\s*\{[^}]*\}\s*$/gm,""),Z=Z.replace(/(?<=[\s=,(])<[A-Z]\w*(?:\[\])?>/g,""),Z=Z.replace(/\n\s*\n\s*\n/g,`
3600
-
3601
- `),Z}function tG($){return/cannot find module|could not resolve|module not found|failed to resolve/i.test($)}function eG($){if(!/is not defined|can't find variable/i.test($))return!1;return!/\b(document|window|navigator|localStorage|sessionStorage|self)\b/.test($)}async function $z($,Z,J,X={}){if(!$.trim())return;let Y=t1(),Q=H1($,JSON.stringify(Y)),G=T8.get(Q);if(G===void 0){try{let S=x$({loader:"ts",target:"browser",define:Y}),v=$.replace(/^\s*import\s+\w+\s+from\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");v=v.replace(/^\s*import\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,""),G=S.transformSync(v)}catch{G=aG($)}T8.set(Q,G)}let z={exports:{}},q=z.exports,K=$2.cwd(),W={},U=[...G.matchAll(/require\s*\(\s*['"]([^'"]+)['"]\s*\)/g)||[]].map((S)=>S[1]).filter((S)=>!S.startsWith("node:")&&!["fs","path","os","child_process","crypto","http","https","url","util","stream","events","buffer","net","querystring","zlib","tls"].includes(S)),H=new Map;for(let S of U)try{if(S.startsWith(".")){W[S]=await import(r0.resolve(r0.dirname(J),S));continue}let v=r0.resolve(K,"node_modules",S),i=r0.join(v,"package.json"),$0=JSON.parse(x("fs").readFileSync(i,"utf8")),z0=$0.main||"index.js";if($0.exports){let w0=typeof $0.exports==="string"?$0.exports:$0.exports["."];if(typeof w0==="string")z0=w0;else if(w0?.bun)z0=w0.bun;else if(w0?.import)z0=w0.import;else if(w0?.default)z0=w0.default}W[S]=await import(r0.resolve(v,z0))}catch(v){if(S.startsWith("."))H.set(S,v instanceof Error?v.message:String(v))}let j=(S)=>{if(W[S])return W[S];let v=H.get(S);if(v!==void 0)throw Error(`Cannot require '${S}' from ${J}: ${v}`);return x(S)},B=Z.props||{},V=(S)=>{if(!S)return B;let v={};for(let[i,$0]of Object.entries(S)){let z0=B[i];if(z0!==void 0)v[i]=z0;else if(typeof $0==="function")v[i]=$0();else v[i]=$0}return v};for(let[S,v]of Object.entries(B))Object.defineProperty(V,S,{value:v,enumerable:!0,configurable:!0,writable:!0});for(let S of["name","length","caller","arguments"]){if(Object.prototype.hasOwnProperty.call(B,S))continue;try{Object.defineProperty(V,S,{value:void 0,enumerable:!1,configurable:!0,writable:!0})}catch{}}let F=(S)=>{if(!S)return B;let v={...B};for(let[i,$0]of Object.entries(S)){let z0=$0&&typeof $0==="object"&&!Array.isArray($0)?$0:{type:$0};if(v[i]===void 0&&z0.default!==void 0)v[i]=typeof z0.default==="function"?z0.default():z0.default}return v},_=()=>Z.slots||{},O=(S,v)=>{let i={...S};for(let[$0,z0]of Object.entries(v))if(i[$0]===void 0)if(typeof z0==="function")i[$0]=z0();else i[$0]=z0;return i},L=(S)=>{let v=()=>S;return v.set=(i)=>{},v.update=(i)=>{},v},w=(S)=>{let v,i=!1;return()=>{if(!i)try{v=S(),i=!0}catch{v=void 0}return v}},R=(S)=>{},N=(S)=>S(),A=(S)=>{},T=(S)=>{},D=E3(Z);function M(S){let v=S||{};if(v.title!==void 0||v.description!==void 0)b({title:v.title,description:v.description})}function k(S){if(!S||typeof S!=="object")return;let v=Z.__stxClientPayload??{};Object.assign(v,S),Z.__stxClientPayload=v}let I=()=>{let S=Z.__stxServeContext,v=Z.__stxServeSearch??S?.search??"",i=S?.path??"",$0=Object.fromEntries(new URLSearchParams(v)),z0=Z.query,w0=Object.keys($0).length>0?$0:z0??{},l0=v||(Object.keys(w0).length>0?`?${new URLSearchParams(w0).toString()}`:"");return{params:Z.params??{},query:w0,path:i,name:"",fullPath:i+l0,hash:"",matched:[]}},y=()=>({push:(S)=>{},replace:(S)=>{},back:()=>{},forward:()=>{},go:(S)=>{}}),E=(S)=>{let v=Z.__stx_runtime_head||{};Z.__stx_runtime_head=o2(v,S||{})},b=(S)=>{E(h8(S||{}))},C=(S)=>({value:S}),f=(S)=>S,u=(S)=>({value:typeof S==="function"?S():S}),P=(S,v)=>{},h=(S)=>{},m=(S)=>{},j0=(S)=>S?S():Promise.resolve(),S0=(S)=>(v,...i)=>{},y0=(S)=>{},h0=(S,v)=>{},Y0=(S,v)=>v,B0=()=>({value:"light"}),M0=()=>L(!1),P0=(S)=>L(!1),s=()=>L(!1),p=()=>P0("(prefers-color-scheme: dark)"),q0=()=>P0("(prefers-color-scheme: light)"),Z0=()=>P0("(prefers-reduced-motion: reduce)"),V0=()=>P0("(prefers-contrast: more)"),k0={siteId:void 0,API_ENDPOINT:"",ANALYTICS_SITE_ID:void 0,location:{href:"",pathname:"",search:"",hash:"",origin:"",host:"",hostname:"",protocol:"https:",assign:()=>{},replace:()=>{},reload:()=>{}},localStorage:{getItem:()=>null,setItem:()=>{},removeItem:()=>{},clear:()=>{}},sessionStorage:{getItem:()=>null,setItem:()=>{},removeItem:()=>{},clear:()=>{}},fetch:globalThis.fetch,addEventListener:()=>{},removeEventListener:()=>{},setTimeout:()=>0,clearTimeout:()=>{},setInterval:()=>0,clearInterval:()=>{},requestAnimationFrame:()=>0,cancelAnimationFrame:()=>{},alert:()=>{},confirm:()=>!1,prompt:()=>null,getComputedStyle:()=>({}),matchMedia:()=>({matches:!1,addListener:()=>{},removeListener:()=>{}}),getDateRangeParams:()=>"",stx:{}},j1=new Proxy(k0,{get(S,v){if(v in S)return S[v];return},set(S,v,i){return S[v]=i,!0}}),J2={getElementById:()=>null,querySelector:()=>null,querySelectorAll:()=>[],createElement:()=>({}),createTextNode:()=>({}),body:{},head:{},documentElement:{},addEventListener:()=>{},removeEventListener:()=>{}},C2=console;try{let S=d8(G,J),v=new Set(Object.keys(B)),i=Object.keys(Z).filter((r)=>!v.has(r)&&!sG.has(r)&&Z2(r)),$0=i.map((r)=>Z[r]);if(!i.includes("__stxServeContext"))i.push("__stxServeContext"),$0.push(void 0);let z0=new Set(["async","module","exports","require","params","window","document","console","state","derived","effect"]),w0=[],l0=[];for(let[r,a0]of Object.entries(B)){if(!Z2(r))continue;if(z0.has(r))continue;if(new RegExp(`(?:^|[\\s;{])(?:const|let|var|function)\\s+${r}\\b`).test(S))continue;w0.push(r),l0.push(a0)}let d=rG(S).map((r)=>`module.exports.${r} = typeof ${r} !== 'undefined' ? ${r} : module.exports.${r};`).join(`
3602
- `),l=Z.params??{},G0=[],n=[];for(let r=0;r<i.length;r++){if(i[r]==="params")continue;G0.push(i[r]),n.push($0[r])}let _0=[...u8,...w0,...G0],R0=`return (async () => {
3603
- ${S}
3604
- ${d}
3605
- return module.exports
3606
- })()`,f0=H1(R0,_0.join("\x00")),c0=k8.get(f0);if(!c0)c0=Function(..._0,R0),k8.set(f0,c0);let C0=Z.__stx_options?.runtimeConfig;if(C0||/\buse(?:Server)?RuntimeConfig\b/.test(G))await C9(Z,J,C0);let J1=await P8(Z.__stx_runtime_config??v8()??g8(),()=>U6(Z,()=>c0(z,q,j,B,V,F,O,k,H6,x8,f8,L,w,R,N,A,T,M,I,y,E,b,D.setResponseStatus,D.setResponseHeader,D.notFound,C,f,u,P,h,m,j0,S0,y0,_,h0,Y0,B0,M0,P0,s,p,q0,Z0,V0,j1,J2,C2,k0.confirm,k0.alert,k0.fetch,l,...l0,...n)));if(X.preserveExisting){for(let[r,a0]of Object.entries(J1))if(!(r in Z)||Z[r]===void 0)Z[r]=a0}else Object.assign(Z,J1);for(let[r,a0]of Object.entries(B))if(!(r in Z))Z[r]=a0}catch(S){if(Z.__stx_strict_hydration)throw S;let v=S instanceof Error?S.message:String(S);if(tG(v))console.warn(`[stx] server <script> in ${J??"<unknown>"} imports a module that does not resolve, so every variable in that script is undefined. Cause: ${v}`);else if(eG(v))console.warn(`[stx] server <script> in ${J??"<unknown>"} names something that does not exist, so every variable in that script is undefined. Optional chaining does not help here: an undefined identifier throws before the chain is reached. Cause: ${v}`);else if($2.env.STX_DEBUG)console.warn(`[stx] server <script> did not execute in ${J??"<unknown>"} \u2014 falling back to static extraction. Cause: ${v}`);try{await qz(G,Z,J)}catch(i){if($2.env.STX_DEBUG){let $0=i instanceof Error?i.message:String(i);console.warn(`[stx] fallback extraction also failed in ${J??"<unknown>"}: ${$0}`)}}}}function Zz($){let Z=0,J=null,X=!1,Y=!1;for(let Q=0;Q<$.length;Q++){let G=$[Q];if(J){if(G===J){if(J=null,X||Z===0)Y=!0}continue}if(G==="'"||G==='"'||G==="`"){J=G;continue}if(G==="{")Z++;else if(G==="}")Z--;else if($.startsWith("from",Q)&&Z===0)X=!0}return J===null&&Z===0&&Y}var Jz=/^(?:export\s+)?(?:const|let|var)\s+[A-Za-z_$][\w$]*(?:\s*,\s*[A-Za-z_$][\w$]*)*\s*;?$/;function d8($,Z){let J=Z?r0.dirname(Z):$2.cwd(),X=$2.cwd(),Y=$.split(`
3607
- `),Q=[],G=0;while(G<Y.length){let z=Y[G].trim();if(z.startsWith("interface ")||z.startsWith("export interface ")||z.startsWith("type ")||z.startsWith("export type ")){if(z.includes("{")&&!z.includes("}")){let q=0;for(;G<Y.length;G++){for(let K of Y[G])if(K==="{")q++;else if(K==="}")q--;if(q<=0)break}}G++;continue}if(z.startsWith("definePageMeta(")){let q=0,K=!1,W=G;for(let j=G;j<Y.length&&!K;j++){let B=null,V=!1,F=Y[j];for(let _=0;_<F.length;_++){let O=F[_];if(V){V=!1;continue}if(O==="\\"){V=!0;continue}if(B){if(O===B)B=null;continue}if(O==='"'||O==="'"||O==="`"){B=O;continue}if(O==="(")q++;else if(O===")"){if(q--,q===0){G=j+1,K=!0;break}}}}if(!K)G=Y.length;let U=Y.slice(W,G).join(`
3608
- `),H=[];for(let j of["title","description"]){let B=new RegExp(`\\b${j}\\s*:\\s*(['"\`])((?:\\\\.|(?!\\1)[^\\\\])*)\\1`).exec(U);if(B)H.push(`${j}: ${JSON.stringify(B[2])}`)}if(H.length>0)Q.push(`useSeoMeta({ ${H.join(", ")} });`);continue}if(z.startsWith("import ")||z==="import"||z.startsWith("import{")){let q=z,K=0;while(!Zz(q)&&G+K+1<Y.length)K++,q=`${q} ${Y[G+K].trim()}`;G+=K;let W=q.match(/^import\s+(\w+)\s+from\s+['"](.+?)['"]/),U=q.match(/^import\s+\{([^}]*)\}\s+from\s+['"](.+?)['"]/),H=q.match(/^import\s+['"](.+?)['"]/),j=q,B=(V)=>{if(V.startsWith("."))return r0.resolve(J,V);if(V.startsWith("~/")||V.startsWith("@/"))return r0.resolve(X,V.slice(2));return V};if(W){let[,V,F]=W,_=B(F);Q.push(`const ${V} = (await import('${_}')).default`),Q.push(`module.exports.${V} = ${V};`)}else if(U){let[,V,F]=U,_=B(F),O=[],L=[],w=oG.has(F);for(let R of V.split(",")){let N=R.trim();if(!N)continue;let A=N.split(/\s+as\s+/);if(A.length===2){let[T,D]=[A[0].trim(),A[1].trim()];if(w&&I8.has(T)){Q.push(`const ${D} = ${T};`);continue}O.push(`${T}: ${D}`),L.push(D)}else{if(w&&I8.has(N))continue;O.push(N),L.push(N)}}if(O.length>0)Q.push(`const { ${O.join(", ")} } = await import('${_}')`);for(let R of L)Q.push(`module.exports.${R} = ${R};`)}else if(H){let V=B(H[1]);Q.push(`await import('${V}')`)}else Q.push(j);G++;continue}if(Jz.test(z))Q.push(Y[G]),G++;else if(z.startsWith("export const ")||z.startsWith("export let ")||z.startsWith("export var ")){let q=b8(Y,G),{type:K,name:W,value:U}=q;Q.push(`${K} ${W} = ${U};`),Q.push(`module.exports.${W} = ${W};`),G=q.nextIndex}else if(z.startsWith("export function ")||z.startsWith("export async function ")){let q=f$(Y,G);Q.push(q.functionCode),Q.push(`module.exports.${q.name} = ${q.name};`),G=q.nextIndex}else if(z.startsWith("const ")||z.startsWith("let ")||z.startsWith("var ")){let q=b8(Y,G),{type:K,name:W,value:U}=q;Q.push(`${K} ${W} = ${U};`),Q.push(`module.exports.${W} = ${W};`),G=q.nextIndex}else if(z.startsWith("function ")||z.startsWith("async function ")){let q=f$(Y,G);Q.push(q.functionCode),Q.push(`module.exports.${q.name} = ${q.name};`),G=q.nextIndex}else if(z.startsWith("export default function ")||z.startsWith("export default async function ")){let q=Y[G].replace(/^(\s*)export\s+default\s+/,"$1"),K=[...Y];K[G]=q;let W=f$(K,G);if(Q.push(W.functionCode),W.name)Q.push(`module.exports.default = ${W.name};`);G=W.nextIndex}else if(z.startsWith("export default ")){let q=z.replace(/^export\s+default\s+/,"").replace(/;$/,"");Q.push(`module.exports.default = ${q};`),G++}else if(z.startsWith("class ")||z.startsWith("export class ")){let q=z.match(/(?:export\s+)?class\s+(\w+)/);if(q){let K=q[1],W=Y[G].replace(/^export\s+/,""),U=0,H=G;for(;H<Y.length;H++){let j=Y[H];for(let B of j)if(B==="{")U++;else if(B==="}")U--;if(H>G)W+=`
3609
- `+j;if(U<=0&&H>=G)break}Q.push(W),Q.push(`module.exports.${K} = ${K};`),G=H+1}else Q.push(z),G++}else if(z.includes("module.exports"))Q.push(z),G++;else if(z.trim()&&!z.startsWith("//"))Q.push(z),G++;else G++}return Xz(Q.join(`
3610
- `),J,X)}function Xz($,Z,J){let X=$.length,Y="",Q=0,G=null,z=!1,q=!1,K=0;while(Q<X){let W=$[Q],U=$[Q+1];if(z){if(Y+=W,W===`
3611
- `)z=!1;Q++;continue}if(q){if(Y+=W,W==="*"&&U==="/"){Y+=U,Q+=2,q=!1;continue}Q++;continue}if(!G&&W==="/"&&U==="/"){z=!0,Y+=W,Q++;continue}if(!G&&W==="/"&&U==="*"){q=!0,Y+=W,Q++;continue}if(G){if(Y+=W,W==="\\"){Y+=U,Q+=2;continue}if(W===G&&G!=="`"){G=null,Q++;continue}if(G==="`"){if(W==="$"&&U==="{"){K++,Y+=U,Q+=2;continue}if(W==="`"){G=null,Q++;continue}}Q++;continue}if(K>0){if(W==="{")K++;else if(W==="}")K--}if(W==='"'||W==="'"||W==="`"){G=W,Y+=W,Q++;continue}if(W==="a"&&$.startsWith("await",Q)){let H=Yz($,Q);if(H){let{quote:j,path:B,end:V}=H;if(B.startsWith(".")||B.startsWith("~/")||B.startsWith("@/")){let F=B.startsWith(".")?r0.resolve(Z,B):r0.resolve(J,B.slice(2));Y+=`await import(${j}${F}${j})`,Q=V;continue}}}Y+=W,Q++}return Y}function Yz($,Z){let J=Z+5;if(J>=$.length)return null;if(!/\s/.test($[J]))return null;while(J<$.length&&/\s/.test($[J]))J++;if(!$.startsWith("import",J))return null;J+=6;while(J<$.length&&/\s/.test($[J]))J++;if($[J]!=="(")return null;J++;while(J<$.length&&/\s/.test($[J]))J++;let X=$[J];if(X!=="'"&&X!=='"')return null;J++;let Y=J;while(J<$.length&&$[J]!==X)if($[J]==="\\")J+=2;else J++;if(J>=$.length)return null;let Q=$.slice(Y,J);J++;while(J<$.length&&/\s/.test($[J]))J++;if($[J]!==")")return null;return{quote:X,path:Q,end:J+1}}function m8($,Z){let J=$[Z];if(J!=="{"&&J!=="[")return null;let Y=L0($,J,J==="{"?"}":"]",Z);if(Y===-1)return null;return{pattern:$.slice(Z,Y+1),endPos:Y+1}}function l8($){let Z=[],J=$.slice(1,-1).trim();if(!J)return Z;let X=0,Y=0,Q="";while(X<J.length){let G=J[X];if(G==="{"||G==="["){let z=Y===0?m8(J,X):null;if(z){Z.push(...l8(z.pattern)),X=z.endPos,Q="";continue}Y++}else if(G==="}"||G==="]")Y--;if(Y>0){X++;continue}if(G===","){if(Q.trim())Z.push(Q.trim());Q="",X++;continue}if(G===":"){Q="",X++;continue}if(G==="="){if(Q.trim())Z.push(Q.trim());Q="",X++;while(X<J.length&&J[X]!==","&&Y===0){if(J[X]==="{"||J[X]==="[")Y++;else if(J[X]==="}"||J[X]==="]")Y--;X++}continue}if(/[\w$]/.test(G))Q+=G;X++}if(Q.trim())Z.push(Q.trim());return Z}function Qz($){let Z=/^(?:export\s+)?(const|let|var)\s+([A-Za-z_$][\w$]*)/.exec($);if(!Z)return null;let J=Z[0].length,X=(Y)=>Y===" "||Y==="\t";while(J<$.length&&X($[J]))J++;if($[J]===":"){let Y=0,Q=null;J++;for(;J<$.length;J++){let G=$[J];if(Q){if(G==="\\"){J++;continue}if(G===Q)Q=null;continue}if(G==="'"||G==='"'||G==="`"){Q=G;continue}if(G==="("||G==="["||G==="{"||G==="<"){Y++;continue}if(G===")"||G==="]"||G==="}"||G===">"){Y--;continue}if(G==="="&&Y<=0){let z=$[J+1],q=$[J-1];if(z!=="="&&z!==">"&&q!=="="&&q!=="!"&&q!=="<"&&q!==">")break}}if($[J]!=="=")return null}while(J<$.length&&X($[J]))J++;if($[J]!=="=")return null;return{type:Z[1],name:Z[2],value:$.slice(J+1).trim()}}function E8($,Z,J,X){let Y=null,Q=!1;for(let G of $){if(Q){Q=!1;continue}if(G==="\\"){Q=!0;continue}if(Y){if(G===Y)Y=null;continue}if(G==="'"||G==='"'||G==="`"){Y=G;continue}if(G===Z)X++;else if(G===J)X--}return X}function b8($,Z){let J=$[Z].trim(),X=Qz(J),Y=X?[J,X.type,X.name,X.value]:null;if(!Y){let W=J.match(/^(?:export\s+)?(const|let|var)\s+/);if(W){let U=J.slice(W[0].length),H=Z;if(U.startsWith("{")||U.startsWith("[")){let B=U[0],V=B==="{"?"}":"]",F=E8(U,B,V,0),_=U;for(let O=Z+1;O<$.length&&F>0;O++)_+=` ${$[O].trim()}`,H=O,F=E8($[O],B,V,F);if(F>0)_=U,H=Z;U=_}let j=m8(U,0);if(j){let B=W[1],V=j.pattern,F=U.slice(j.endPos).trim();if(F.startsWith("=")){let _=F.slice(1).trim(),O=_,L=Math.max(H,Z);if(y8(_)){let A=C8($,L,_);O=A.value,L=A.nextIndex}else L=L+1;O=O.trim().replace(/;$/,"");let w=l8(V),R=`__stx_src_${Z}`,N=w.map((A)=>`module.exports.${A} = ${A};`).join(`
3612
- `);return{type:B,name:R,value:`${O}; ${B} ${V} = ${R};
3613
- ${N}`,nextIndex:L}}}}throw Error(`Failed to parse variable declaration: ${J}`)}let[,Q,G,z]=Y,q=z,K=Z;if(y8(z)){let W=C8($,Z,z);q=W.value,K=W.nextIndex}else K=Z+1;while(K<$.length){let W=$[K].trim();if(W.startsWith(".")||W.startsWith("?."))q+=`
3614
- ${$[K]}`,K++;else break}return q=q.trim().replace(/;$/,""),{type:Q,name:G,value:q,nextIndex:K}}function f$($,Z){let J=$[Z].trim(),X=J.match(/^(?:export\s+)?(?:async\s+)?function\s+(\w+)/);if(!X)throw Error(`Failed to parse function declaration: ${J}`);let[,Y]=X,Q=J.replace(/^export\s+/,""),G=Z;if(Gz(J)){let z=zz($,Z,Q);Q=z.functionCode,G=z.nextIndex}else G=Z+1;return{name:Y,functionCode:Q,nextIndex:G}}function y8($){let Z=$.trim();if(Z.startsWith("{"))return L0(Z,"{","}",0)===-1;if(Z.startsWith("["))return L0(Z,"[","]",0)===-1;return!c8(Z)}function c8($){let Z={paren:0,bracket:0,brace:0},J=null,X=0;for(let Y=0;Y<$.length;Y++){let Q=$[Y];if((Y>0?$[Y-1]:"")==="\\"&&J)continue;if((Q==='"'||Q==="'")&&!J){J=Q;continue}if(Q===J&&J!=="`"){J=null;continue}if(Q==="`"&&!J){J="`";continue}if(Q==="`"&&J==="`"&&X===0){J=null;continue}if(J==="`"&&Q==="$"&&$[Y+1]==="{"){X++,Y++;continue}if(X>0&&Q==="{"){X++;continue}if(X>0&&Q==="}"){X--;continue}if(J)continue;if(Q==="(")Z.paren++;else if(Q===")")Z.paren--;else if(Q==="[")Z.bracket++;else if(Q==="]")Z.bracket--;else if(Q==="{")Z.brace++;else if(Q==="}")Z.brace--}return Z.paren===0&&Z.bracket===0&&Z.brace===0&&J===null}function p8($){let Z=$.indexOf("(");if(Z===-1)return $.indexOf("{");let J=L0($,"(",")",Z);if(J===-1)return-1;return $.indexOf("{",J)}function Gz($){let Z=p8($);if(Z===-1)return!0;return L0($,"{","}",Z)===-1}function C8($,Z,J){let X=J,Y=Z+1;while(Y<$.length&&!c8(X)){let Q=$[Y];X+=`
3615
- ${Q}`,Y++}while(Y<$.length){let Q=$[Y].trim();if(Q.startsWith(".")||Q.startsWith("?."))X+=`
3616
- ${$[Y]}`,Y++;else break}return{value:X,nextIndex:Y}}function zz($,Z,J){let X=J,Y=Z+1;while(Y<$.length){let Q=p8(X);if(Q!==-1){if(L0(X,"{","}",Q)!==-1)break}let G=$[Y];X+=`
3617
- ${G}`,Y++}return{functionCode:X,nextIndex:Y}}function S8($,Z){let J=e($,Z)??e(`(${$})`,Z);if(J!==void 0)return J;if(!/\bprocess\b/.test($))return;let X={...Z,process:Object.freeze({env:{...$2.env}})},Y=Object.keys(X).filter(Z2),Q=Y.map((G)=>X[G]);try{return Function(...Y,`'use strict'; return (${$});`)(...Q)}catch{try{return Function(...Y,`'use strict'; return ${$};`)(...Q)}catch{return}}}async function qz($,Z,J){let X=$.matchAll(/export\s+(const|let|var)\s+(\w+)\s*=\s*([\s\S]*?)(?=\s*(?:export\s+|$))/g);for(let Q of X){let[,,G,z]=Q;try{let q=z.trim().replace(/;$/,""),K=S8(q,Z);if(K!==void 0)Z[G]=K}catch(q){console.warn(`Failed to parse export ${G} in fallback:`,q)}}let Y=$.matchAll(/(?:^|\n)\s*(const|let|var)\s+(\w+)\s*=\s*([\s\S]*?)(?=\s*(?:(?:const|let|var|function|export)\s+|$))/g);for(let Q of Y){let[,,G,z]=Q;if(!(G in Z))try{let q=z.trim().replace(/;$/,""),K=S8(q,Z);if(K!==void 0)Z[G]=K}catch{}}}function Kz($){let Z=$.match(/<script\b[^>]*>([\s\S]*?)<\/script>/i),J=Z?Z[1]:"",X=Z?$.replace(/<script\b[^>]*>[\s\S]*?<\/script>/i,""):$;return{scriptContent:J,templateWithoutScript:X}}function Wz($){let Z=$.trim();if(!Z)return!1;return/(?:const|let|var|function)\s+\w+/.test(Z)}var b2=new i1(500),P9=new i1(1000),e8=33554432,h$=e8;function Uz($){let Z=$.componentRenderCacheBytes;if(typeof Z!=="number"||Z<0||Z===h$)return;h$=Z,v9.setMaxBytes(Z)}var v9=new i1(2000,{maxBytes:e8,sizeOf:($)=>$.output.length});function Hz($){let Z=new WeakSet;try{let J=(X)=>{if(X===void 0)return{__stxType:"undefined"};if(typeof X==="bigint")return{__stxType:"bigint",value:X.toString()};if(typeof X==="function"||typeof X==="symbol")throw TypeError("Non-serializable component input");if(X===null||typeof X!=="object")return X;if(Z.has(X))throw TypeError("Circular component input");if(Z.add(X),X instanceof Date)return{__stxType:"date",value:X.toISOString()};if(Array.isArray(X))return X.map(J);let Y={};for(let Q of Object.keys(X).sort())Y[Q]=J(X[Q]);return Y};return JSON.stringify(J($))}catch{return null}}function i8($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function jz($){return/\bjs\b/.test($)||/\blang\s*=\s*["']?(js|javascript)["']?/i.test($)}function A1($){return!jz($)}var S9=new Map;function x$($){let Z;try{Z=JSON.stringify($)}catch{return new Bun.Transpiler($)}let J=S9.get(Z);if(J)return J;if(S9.size>=16)S9.clear();let X=new Bun.Transpiler($);return S9.set(Z,X),X}var n8=new WeakMap,Bz=256;function M1($){try{let Z=x$({loader:"ts",target:"browser",define:t1()}),J=n8.get(Z);if(!J)J=new Map,n8.set(Z,J);let X=J.get($);if(X!==void 0)return X;let Y=$.replace(/^\s*import\s+\w+\s+from\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");Y=Y.replace(/^\s*import\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");let Q=[];Y=Y.replace(/\{!![\s\S]*?!!\}/g,(z)=>{let q=Q.length;return Q.push(z),`"__STX_EXPR_${q}__"`}),Y=Y.replace(/\{\{\{[\s\S]*?\}\}\}/g,(z)=>{let q=Q.length;return Q.push(z),`"__STX_EXPR_${q}__"`}),Y=Y.replace(/\{\{[\s\S]*?\}\}/g,(z)=>{let q=Q.length;return Q.push(z),`"__STX_EXPR_${q}__"`});let G=Z.transformSync(Y);for(let z=0;z<Q.length;z++)G=G.replace(`"__STX_EXPR_${z}__"`,Q[z]),G=G.replace(`'__STX_EXPR_${z}__'`,Q[z]);if(J.size>=Bz){let z=J.keys().next();if(!z.done)J.delete(z.value)}return J.set($,G),G}catch(Z){if(process.env.STX_DEBUG_TS)console.warn("[STX] TypeScript transpilation error:",Z);return $}}function Vz($){let Z=[],J=new Set,X=0,Y=0,Q=$.length,G=(W)=>{Y++;while(Y<Q){if($[Y]==="\\"){Y+=2;continue}if($[Y]===W){Y++;return}Y++}},z=()=>{Y++;while(Y<Q){if($[Y]==="\\"){Y+=2;continue}if($[Y]==="`"){Y++;return}if($[Y]==="$"&&$[Y+1]==="{"){Y+=2;let W=1;while(Y<Q&&W>0)if($[Y]==="{")W++,Y++;else if($[Y]==="}")W--,Y++;else if($[Y]==="'"||$[Y]==='"')G($[Y]);else if($[Y]==="`")z();else Y++;continue}Y++}},q=()=>{if($[Y]==="/"&&$[Y+1]==="/"){while(Y<Q&&$[Y]!==`
3618
- `)Y++;return!0}if($[Y]==="/"&&$[Y+1]==="*"){Y+=2;while(Y<Q-1&&!($[Y]==="*"&&$[Y+1]==="/"))Y++;return Y+=2,!0}return!1},K=()=>{if(X!==0)return;let W=$.slice(Y).match(/^(const|let|var)\s*\{([^}]+)\}\s*=/);if(W){let B=W[2].split(",").map((V)=>{let F=V.trim().split(":");return F[F.length-1].trim()});for(let V of B)if(V&&/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(V)&&!J.has(V))Z.push(V),J.add(V);return}let U=$.slice(Y).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(U){let B=U[2];if(!J.has(B))Z.push(B),J.add(B);return}let H=$.slice(Y).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(H){let B=H[1];if(!J.has(B))Z.push(B),J.add(B);return}let j=$.slice(Y).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(j){let B=j[1];if(!J.has(B))Z.push(B),J.add(B)}};while(Y<Q){if(q())continue;if($[Y]==="'"||$[Y]==='"'){G($[Y]);continue}if($[Y]==="`"){z();continue}if($[Y]==="{"){X++,Y++;continue}if($[Y]==="}"){X--,Y++;continue}if(X===0&&/[a-z]/i.test($[Y])&&(Y===0||/\s|[;{}()]/.test($[Y-1])))K();Y++}return Z}function _z($){let Z=[],J=0,X=0,Y=null;for(let Q=0;Q<$.length;Q++){let G=$[Q];if(Y){if(G==="\\"){Q++;continue}if(G===Y)Y=null;continue}if(G==='"'||G==="'"||G==="`"){Y=G;continue}if(G==="("||G==="["||G==="{")J++;else if(G===")"||G==="]"||G==="}")J--;else if(G===","&&J===0)Z.push($.slice(X,Q)),X=Q+1}if(X<$.length)Z.push($.slice(X));return Z}function Lz($){let Z=0,J=null;for(let X=0;X<$.length;X++){let Y=$[X];if(J){if(Y==="\\"){X++;continue}if(Y===J)J=null;continue}if(Y==='"'||Y==="'"||Y==="`"){J=Y;continue}if(Y==="("||Y==="["||Y==="{")Z++;else if(Y===")"||Y==="]"||Y==="}")Z--;else if(Y==="="&&Z===0){let Q=$[X-1],G=$[X+1];if(Q==="!"||Q==="<"||Q===">"||Q==="=")continue;if(G==="="||G===">")continue;return X}}return-1}function Oz($,Z){try{let J=/=\s*(?:withDefaults\s*\([\s\S]*?defineProps|defineProps)\b/.exec($);if(!J)return;let X=J.index-1;while(X>=0&&/\s/.test($[X]))X--;if($[X]!=="}")return;let Y=X,Q=0,G=-1;for(;X>=0;X--){let q=$[X];if(q==="}")Q++;else if(q==="{"){if(Q--,Q===0){G=X;break}}}if(G===-1)return;let z=$.slice(G+1,Y);for(let q of _z(z)){let K=q.trim();if(!K||K.startsWith("..."))continue;let W=Lz(K);if(W===-1)continue;let U=K.slice(0,W).trim();if(!/^[A-Z_$][\w$]*$/i.test(U))continue;if(Z[U]!==void 0)continue;let H=K.slice(W+1).trim();if(!H)continue;try{let j=Object.keys(Z).filter(Z2),B=Function(...j,`"use strict"; return (${H});`);Z[U]=B(...j.map((V)=>Z[V]))}catch{}}}catch{}}async function j9($,Z,J,X,Y){let Q=$.endsWith(".stx")?$.slice(0,-4):$,G=(_)=>_.split("-").map((O)=>O.charAt(0).toUpperCase()+O.slice(1)).join(""),z=(_)=>_.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),q=J.__importedComponents;if(q){for(let _ of[Q,Q.toLowerCase(),G(Q),z(Q)])if(q.has(_))return!0}let K=[...new Set([`${Q}.stx`,`${G(Q)}.stx`,`${z(Q)}.stx`])],W=typeof Y.root==="string"?g.resolve(Y.root):void 0,U=W??g.dirname(X),H=[],j=(_)=>{if(_&&!H.includes(_))H.push(_)},B=J.__originalFilePath;if(B)j(g.join(g.dirname(B),"components"));if(j(Z),j(Y._rootComponentsDir),j(g.join(g.dirname(X),"components")),j(Y.componentsDir),W)j(g.resolve(W,"resources/views/components")),j(g.resolve(W,"resources/components")),j(g.resolve(W,"src/components")),j(g.resolve(W,"components"));for(let _ of Y._layerComponentDirs??[])j(_);let V=Y._pluginComponentDirs;if(Array.isArray(V))for(let _ of V)j(typeof _==="string"?_:null);if(j(Y.fallbackComponentsDir),Q.startsWith("./")||Q.startsWith("../"))return a(g.resolve(g.dirname(X),`${Q}.stx`));let F=s8(g.resolve(import.meta.dir,"components"));for(let _ of H){let O=g.isAbsolute(_)?_:g.resolve(U,_);if(s8(O)===F)continue;for(let L of K)if(await a(g.join(O,L)))return!0}return!1}function s8($){try{return t8.realpathSync($)}catch{return $}}function Fz($){return $==="visible"||$==="idle"||$==="interaction"||$.startsWith("media:")}function wz($){if(!$)return!1;let Z=$.replace(/<script[\s\S]*?<\/script>/gi,"").replace(/<style[\s\S]*?<\/style>/gi,"");return/\{\{[\s\S]*?\}\}|\{!![\s\S]*?!!\}/.test(Z)}function Rz($){let Z=new Set,J=/\b(?:const|let|var)\s+([a-zA-Z_$][\w$]*)\s*=\s*(?:state|derived|computed|ref|reactive|signal|useModel|useReactiveProp|useLocalStorage|useSessionStorage|useCookie|useDebouncedValue)\s*(?:<[^>]*>)?\s*\(/g;for(let X of $){let Y;while((Y=J.exec(X))!==null)Z.add(Y[1]);J.lastIndex=0}return[...Z]}async function D1($,Z,J,X,Y,Q,G,z=new Set,q){let{extractVariables:K}=await o("stx/variable-extractor",()=>import("./chunk-h63vszd3.js")),W=z??new Set;if(W.has($))return`[Circular component reference: ${$}]`;let U=new Set(W);U.add($);let H=typeof Z.client==="string"?Z.client.trim():"";if("client"in Z)delete Z.client;let j=H&&H!=="load"&&Fz(H)?H:"";try{let B=(d)=>d.split("-").map((l)=>l.charAt(0).toUpperCase()+l.slice(1)).join(""),V=(d)=>d.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),F=$.endsWith(".stx")?$.slice(0,-4):$,_=null,O=Y.__importedComponents;if(O){let d=[F,F.toLowerCase(),B(F),V(F)];for(let l of d)if(O.has(l)){_=O.get(l);break}}let L=[];if(!_){let d=[`${F}.stx`,`${B(F)}.stx`,`${V(F)}.stx`],l=[...new Set(d)],G0=Y.__originalFilePath,n=[];if(n.push(...G._layerComponentDirs??[]),G0){let N0=g.join(g.dirname(G0),"components");n.push(N0)}if(X)n.push(X);let _0=G._rootComponentsDir;if(typeof _0==="string"&&!n.includes(_0))n.push(_0);let R0=g.join(g.dirname(Q),"components");if(!n.includes(R0))n.push(R0);if(G.componentsDir&&G.componentsDir!==X&&!n.includes(G.componentsDir))n.push(G.componentsDir);let f0=typeof G.root==="string"?g.resolve(G.root):void 0,c0=f0??g.dirname(Q),C0=[];if(f0)C0.push(g.resolve(f0,"resources/views/components")),C0.push(g.resolve(f0,"resources/components")),C0.push(g.resolve(f0,"src/components")),C0.push(g.resolve(f0,"components"));C0.push(g.resolve(import.meta.dir,"components"));for(let N0 of C0)if(!n.includes(N0))n.push(N0);let J1=G._pluginComponentDirs;if(Array.isArray(J1)){for(let N0 of J1)if(typeof N0==="string"&&!n.includes(N0))n.push(N0)}if(G.fallbackComponentsDir&&!n.includes(G.fallbackComponentsDir))n.push(G.fallbackComponentsDir);let r=[...new Set(n.map((N0)=>{if(!N0)return N0;return g.isAbsolute(N0)?N0:g.resolve(c0,N0)}))];n.length=0,n.push(...r);let a0=`${F}\x00${Q}\x00${r.join("\x00")}`,S2=P9.get(a0);if(S2)if(await a(S2))_=S2;else P9.delete(a0);if(!_&&(F.startsWith("./")||F.startsWith("../")))_=g.resolve(g.dirname(Q),`${F}.stx`),L.push(_);else if(!_)for(let N0 of n){if(!N0)continue;for(let P2 of l){let v2=g.join(N0,P2);if(L.push(v2),await a(v2)){_=v2;break}}if(_)break;if(!_)try{let P2=await import("fs");if(!P2.statSync(N0,{throwIfNoEntry:!1})?.isDirectory())continue;let WZ=8,f9=[{path:N0,depth:0}];while(f9.length>0&&!_){let f2=f9.pop();if(f2.depth>=WZ)continue;let l$;try{l$=P2.readdirSync(f2.path,{withFileTypes:!0})}catch{continue}for(let x2 of l$){if(!x2.isDirectory())continue;if(x2.name==="node_modules"||x2.name.startsWith("."))continue;let c$=g.join(f2.path,x2.name);for(let UZ of l){let x9=g.join(c$,UZ);if(L.push(x9),await a(x9)){_=x9;break}}if(_)break;f9.push({path:c$,depth:f2.depth+1})}}}catch{}if(_)break}if(_)P9.set(a0,_)}if(!_||!await a(_)){let d=L.length>0?`
3619
- Searched paths:
3620
- ${L.map((l)=>` - ${l}`).join(`
3621
- `)}`:"";return`[Error loading component: ENOENT: no such file or directory, open '${$}']${d}`}q.add(_);let w;if(b2.has(_))w=b2.get(_);else try{w=await Bun.file(_).text(),b2.set(_,w)}catch(d){return`[Error loading component: ${d instanceof Error?d.message:String(d)}]`}let R=new Set(["__originalFilePath","__importedComponents",g2,"__stx_client_signal_names","__stx_runtime_config","__stxServeContext","__stx_scope_seq"]),N={};for(let[d,l]of Object.entries(Y))if(!d.startsWith("__")||R.has(d))N[d]=l;let A=J;if(J.includes("@include")){let{processIncludes:d}=await o("stx/includes",()=>import("./chunk-wcp0dt2c.js"));A=await d(J,Y,Q,G,q)}let T=n0(A),D=[],M=T.output.replace(/\x00STX_SCRIPT_(\d+)\x00/g,(d,l)=>{let G0=T.scripts[Number(l)]||"",n=G0.match(/^<script\b([^>]*)>/i)?.[1]||"",_0=n.match(/\btype\s*=\s*["']([^"']+)["']/i)?.[1]?.toLowerCase(),R0=!_0||["module","text/javascript","application/javascript"].includes(_0);if(!/\bserver\b/i.test(n)&&R0)return D.push(G0),"";return G0}),{extractSlotContent:k}=await o("stx/slots",()=>import("./chunk-95jjdgmb.js")),I=k(M),y={};if(I.defaultSlot?.trim())y.default=I.defaultSlot;for(let[d,l]of I.namedSlots)y[d]=l.content;let E=Y.__stx_scope_seq??={n:0,key:Bun.hash(String(Y.__filename??Q)).toString(36).slice(0,6)},b=`stx_${F.replace(/[^a-zA-Z0-9]/g,"_")}_${++E.n}_${E.key}`,C={...N,$uid:b,...Z,props:Z,slot:M,$slots:y,__processedComponents:U,__sections:{},__stx_signals_gate:X1(w)||wz(J)};Oz(w,C);let f=w,u=G9(f);if(u)f=u.content.trim();let P=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,h=[...w.matchAll(P)],m=[],j0=h.some((d)=>/\bserver\b/.test(d[1]||"")&&/\bcache\b/.test(d[1]||"")),S0=null,y0=null,h0=null,Y0=0,B0=null;if(Uz(G),j0&&h$>0){let d=Hz({props:Z,slot:J,buildMode:G.buildMode??"",skipEventDirectives:G.skipEventDirectives===!0,layers:G._layerGraph?.layers.map((l)=>l.configFile),uid:b});if(d!==null){S0=`${_}\x00${H1(w)}\x00${d}`;let l=v9.get(S0);if(l){for(let G0 of l.dependencies)q.add(G0);if(X3(Y,l.clientFactories),E.n+=l.uidsConsumed,l.preservedClientExpressions.length>0){let G0=new Set(Array.isArray(Y.__stx_preserved_client_expressions)?Y.__stx_preserved_client_expressions:[]);for(let n of l.preservedClientExpressions)G0.add(n);Y.__stx_preserved_client_expressions=[...G0]}return l.output}y0=new Set(q),h0=Z3(Y),Y0=E.n,B0=new Set(Array.isArray(Y.__stx_preserved_client_expressions)?Y.__stx_preserved_client_expressions:[])}}for(let d of h){let l=d[1]||"",G0=d[2]||"",n=l.includes("server");if(A1(l)&&G0.trim())G0=M1(G0);if(n&&G0)try{await K(G0,C,_)}catch(R0){}if(!n){let R0=G0.replace(/^\s*const\s*\{[^}]+\}\s*=\s*window\.stx\s*;?\s*\n?/gm,""),f0=R0.includes("{{")&&R0.includes("}}"),c0=R0.includes("{!!")&&R0.includes("!!}");if(f0||c0)R0=c9(R0,C);let C0=l.replace(/\s*\bts\b/g,"").replace(/\s*\blang\s*=\s*["']?(ts|typescript)["']?/gi,"");m.push(`<script${C0}>${R0}</script>`)}}let M0=w.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),P0=M0?M0[1]:"",s=M0?M0[2]:"",p="",q0=P0&&/\bscoped\b/i.test(P0);if(M0)p=`<style${P0}>${s}</style>`;let Z0=f;if(Z0=Z0.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),M0)Z0=Z0.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");{let d=/@push\s*\(\s*['"]styles['"]\s*\)([\s\S]*?)@endpush/gi,l=[];if(Z0=Z0.replace(d,(G0,n)=>{let _0=n.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i);if(_0)l.push(`<style${_0[1]}>${_0[2]}</style>`);return""}),Z0=Z0.replace(/@push\s*\(\s*['"][^'"]+['"]\s*\)[\s\S]*?@endpush/gi,""),l.length>0)p=`${p}${l.join(`
3622
- `)}`}if(J&&Z0.includes("{{ text || slot }}"))Z0=Z0.replace(/\{\{\s*text\s*\|\|\s*slot\s*\}\}/g,()=>J);let{applySlots:V0}=await o("stx/slots",()=>import("./chunk-95jjdgmb.js")),{defaultSlot:k0,namedSlots:j1}=I,J2=m.some((d)=>/\b(?:state|derived|effect|ref|useRef|reactive|computed|watch|watchEffect|useModel|useReactiveProp|defineProps|withDefaults|defineEmits|defineExpose|defineSlots)\s*(?:<[^<>()]*>)?\s*\(/.test(d)),C2=(d)=>J2?$8(d,b):d,S=new Map([...j1].map(([d,l])=>[d,{...l,content:C2(l.content)}]));Z0=await V0(Z0,C2(k0),S,C);let v=Rz(m),i=Array.isArray(C.__stx_client_signal_names)?C.__stx_client_signal_names:[];if(v.length>0||i.length>0)C.__stx_client_signal_names=[...new Set([...i,...v])];let $0={...G,_rootComponentsDir:G._rootComponentsDir||G.componentsDir,componentsDir:g.dirname(_),skipSignalsRuntime:!0,skipEventDirectives:J2||m.length===0,defaultLayout:void 0};C.__stxProcessingDepth=(Y.__stxProcessingDepth||0)+1;let z0=await v$(Z0,C,_,$0,q),w0=new Set(Array.isArray(Y.__stx_preserved_client_expressions)?Y.__stx_preserved_client_expressions:[]);for(let d of z0.matchAll(/\{\{([\s\S]*?)\}\}/g))w0.add(d[1].trim());if(w0.size>0)Y.__stx_preserved_client_expressions=[...w0];let l0=b,v0=z0;if(J2){let d="";if(Object.keys(Z).length>0)try{d=` data-stx-props="${i8(JSON.stringify(Z))}"`}catch{}let l=j?` stx-hydrate="${i8(j)}"`:"";v0=`<div data-stx-scope="${l0}"${d}${l}>${z0}</div>`;let G0=await Promise.all(m.map(async(n)=>{let _0=n.match(/<script([^>]*)>([\s\S]*)<\/script>/i);if(!_0)return n;let[,R0,f0]=_0,{vendorStyleTags:c0,factoryBody:C0}=await Az(f0,_,G.buildMode==="compile"),J1=j?null:u9(Y,C0),r=J1?`window.__stxComponentFactories[${JSON.stringify(J1)}](${JSON.stringify(l0)});`:`(${C0})(${JSON.stringify(l0)});`;if(j)return`${c0}<script type="stx/island" data-stx-island="${l0}" data-stx-scoped data-stx-owner="${l0}"${R0}>${r}</script>`;return`${c0}<script data-stx-scoped data-stx-run="always" data-stx-owner="${l0}"${R0}>${r}</script>`}));if(v0=v0+`
3623
- `+G0.join(`
3624
- `),p)v0+=`
3625
- `+p}else{if(p)v0+=`
3626
- `+p;if(m.length>0){let d=C.__stx_event_bindings||[],l=E9(C),G0=await Promise.all(m.map(async(n)=>{let _0=n.match(/<script\b[^>]*>([\s\S]*?)<\/script>/);if(!_0)return n;return await b9(_0[1],{eventBindings:d,templateContent:v0,filePath:_,projectRoot:process.cwd(),serverData:l,instanceId:b})}));v0+=`
3627
- `+G0.join(`
3628
- `),C.__stx_event_bindings=[]}}if(q0){let d=y9(v0,_);if(d.hasScoped)v0=d.html}if(S0&&y0){let d=Array.isArray(Y.__stx_preserved_client_expressions)?Y.__stx_preserved_client_expressions:[];v9.set(S0,{output:v0,dependencies:[...q].filter((l)=>!y0.has(l)),clientFactories:h0?J3(Y,h0):[],uidsConsumed:E.n-Y0,preservedClientExpressions:B0?d.filter((l)=>!B0.has(l)):[]})}return D.length>0?`${v0}
3629
- ${D.join(`
3630
- `)}`:v0}catch(B){return`[Error processing component: ${B instanceof Error?B.message:String(B)}]`}finally{W.delete($)}}async function a($){return Bun.file($).exists()}function u$($,Z){let J=g.resolve(Z),X=g.resolve($),Y=J.endsWith(g.sep)?J:J+g.sep;if(X===J||X.startsWith(Y))return X;return null}async function Nz($,Z,J,X){let Y=Z.startsWith("layouts/")?Z.slice(8):Z,Q=g.join($,Y);for(let G of Q.endsWith(".stx")?[Q]:[Q,`${Q}.stx`])if(await a(G)){if(X)console.log(`Found layout in ${$}: ${G}`);return J?.add(G),G}return null}async function r2($,Z,J,X){let Y=await Dz($,Z,J,X);if(Y===null)return null;let Q=u$(Y,process.cwd());if(Q)return Q;let G=[J.root,J.layoutsDir,J.fallbackLayoutsDir,J.componentsDir,J.partialsDir,J.pagesDir,...J._layerLayoutDirs??[]].filter((z)=>typeof z==="string"&&z.length>0);for(let z of G){let q=g.isAbsolute(z)?z:g.resolve(process.cwd(),z);if(u$(Y,q))return g.resolve(Y)}return console.warn(`[stx] rejected resolved template path that escapes project root: ${Y} (template: ${$}, from: ${Z})`),null}async function Dz($,Z,J,X){if(J.debug)console.log(`Resolving template path: ${$} from ${Z}`);let Y=g.dirname(Z),Q=process.cwd();if($.startsWith("/")){let H=g.join(Q,$),j=u$(H,Q);if(!j)return console.warn(`[stx] rejected template path that escapes project root: ${$} (from ${Z})`),null;if(J.debug)console.log(`Checking absolute path: ${j}`);if(await a(j)&&X)X.add(j);return j}let G=g.join(Y,$);if(await a(G)){if(J.debug)console.log(`Found direct path: ${G}`);if(X)X.add(G);return G}if(!$.endsWith(".stx")&&!$.endsWith(".jsx")&&!$.endsWith(".tsx"))for(let H of[".stx",".tsx",".jsx"]){let j=`${G}${H}`;if(await a(j)){if(J.debug)console.log(`Found direct path with extension: ${j}`);if(X)X.add(j);return j}}let z=[];if(z.push(...J._layerLayoutDirs??[]),J.layoutsDir)z.push(g.isAbsolute(J.layoutsDir)?J.layoutsDir:g.resolve(process.cwd(),J.layoutsDir));let q=g.resolve(Y),K=process.cwd();for(let H=0;H<10;H++){let j=g.join(q,"layouts"),B=!1;try{B=t8.statSync(j,{throwIfNoEntry:!1})?.isDirectory()??!1}catch{}if(B){z.push(j);break}let V=g.dirname(q);if(V===q||V.length<K.length)break;q=V}for(let H of z){let j=await Nz(H,$,X,J.debug);if(j)return j}if(J.fallbackLayoutsDir){let H=g.isAbsolute(J.fallbackLayoutsDir)?J.fallbackLayoutsDir:g.resolve(process.cwd(),J.fallbackLayoutsDir),j=$.startsWith("layouts/")?$.slice(8):$,B=[g.join(H,j)];if(!$.endsWith(".stx"))B.push(`${B[0]}.stx`);for(let V of B)if(await a(V)){if(J.debug)console.log(`Found in options.fallbackLayoutsDir: ${V}`);if(X)X.add(V);return V}}if($.startsWith("layouts/")||$.includes("/layouts/")){let H=$.split("layouts/"),j=g.join(J.partialsDir||Y,"layouts",H[1]);if(await a(j)){if(J.debug)console.log(`Found in layouts path: ${j}`);if(X)X.add(j);return j}if(!j.endsWith(".stx")){let B=`${j}.stx`;if(await a(B)){if(J.debug)console.log(`Found in layouts path with extension: ${B}`);if(X)X.add(B);return B}}}if(J.partialsDir){let H=g.join(J.partialsDir,"layouts");if(await a(H)){let j=g.join(H,$);if(await a(j)){if(J.debug)console.log(`Found in partials layouts dir: ${j}`);if(X)X.add(j);return j}if(!$.endsWith(".stx")){let B=`${j}.stx`;if(await a(B)){if(J.debug)console.log(`Found in partials layouts dir with extension: ${B}`);if(X)X.add(B);return B}}}}let W=J.partialsDir||g.join(process.cwd(),"views"),U=g.join(W,$);if(await a(U)){if(J.debug)console.log(`Found in views path: ${U}`);if(X)X.add(U);return U}if(!$.endsWith(".stx")){let H=`${U}.stx`;if(await a(H)){if(J.debug)console.log(`Found in views path with extension: ${H}`);if(X)X.add(H);return H}}if(Y.includes("temp")){let H=g.join(g.dirname(Y),"layouts",$);if(await a(H)){if(J.debug)console.log(`Found in temp layouts dir: ${H}`);if(X)X.add(H);return H}if(!$.endsWith(".stx")){let j=`${H}.stx`;if(await a(j)){if(J.debug)console.log(`Found in temp layouts dir with extension: ${j}`);if(X)X.add(j);return j}}}if(J.debug)console.warn(`Template not found after trying all paths: ${$} (referenced from ${Z})`);else console.warn(`Template not found: ${$} (referenced from ${Z})`);return null}function $Z($,Z,J){let X=0,Y="",Q="";try{if(typeof Z==="number"&&Z>=0){let G=$.split(`
3631
- `),z=0;for(let q=0;q<G.length;q++)if(z+=G[q].length+1,z>=Z){X=q+1,Y=G[q].trim();let K=Math.max(0,q-2),W=Math.min(G.length,q+3);Q=G.slice(K,W).map((U,H)=>{let j=K+H+1;return`${j===X?"> ":" "}${j}: ${U}`}).join(`
3632
- `);break}}else if(J){let G=$.indexOf(J);if(G>=0)return $Z($,G)}}catch{}return{lineNumber:X,lineContent:Y,context:Q}}var t={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",yellow:"\x1B[33m",blue:"\x1B[34m",cyan:"\x1B[36m",gray:"\x1B[90m",bgRed:"\x1B[41m",bgYellow:"\x1B[43m"};function H0($,Z,J,X,Y,Q){let{lineNumber:G,context:z}=$Z(X,Y,Q),q=J.split("/").pop(),K=0;if(typeof Y==="number"&&Y>=0&&X){let U=X.lastIndexOf(`
3633
- `,Math.max(0,Y-1));K=Y-(U+1)+1}let W="";if(G>0)W+=`
3634
- ${J}:${G}${K>0?`:${K}`:""}: ${$.toLowerCase()} error: ${Z}
3635
- `;if(W+=`
3636
- ${t.bold}${t.red}\u256D\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256E${t.reset}
3637
- `,W+=`${t.bold}${t.red}\u2502${t.reset} ${t.bold}${t.bgRed} ERROR ${t.reset} ${t.red}${$} Error${t.reset}${" ".repeat(Math.max(0,43-$.length))}${t.bold}${t.red}\u2502${t.reset}
3638
- `,W+=`${t.bold}${t.red}\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256F${t.reset}
3639
- `,W+=`
3640
- ${t.cyan}${t.bold}File:${t.reset} ${t.dim}${q}${t.reset}`,G>0)W+=` ${t.gray}(line ${G}${K>0?`, col ${K}`:""})${t.reset}`;if(W+=`
3641
- ${t.yellow}${t.bold}Message:${t.reset} ${Z}
3642
- `,z)W+=`
3643
- ${t.blue}${t.bold}Context:${t.reset}
3644
- ${t.dim}${z}${t.reset}
3645
- `;return W}function g_(){b2.clear(),P9.clear(),v9.clear()}function h_(){return{size:b2.size,maxSize:500}}var g$=k1(128);async function Az($,Z,J){let X=H1($,Z,J),Y=g$.get(X);if(Y){if(a8(Y.deps))return Y;g$.delete(X)}let Q=d$($,{filePath:Z,projectRoot:process.cwd()}),G=Q.code,z=m$(Q.styles);G=a1(G).code;let{hasUserImports:q,bundleClientScript:K}=await o("stx/client-script-bundler",()=>import("./chunk-8618n28z.js")),W=[],U=!1;if(q(G)){let _=G;G=await K(_,Z,{projectRoot:process.cwd(),minify:J,collectInputs:W}),U=G===_}let{stripStxRuntimeImports:H}=await o("stx/signal-processing",()=>import("./chunk-0ggq64sc.js"));G=H(G);let j=$1(G),B=Vz(j),V=`function(__scopeId) {
3646
- ${p1("const",[...o8,...B],j)}
3647
- const __scope = window.stx._scopes = window.stx._scopes || {};
3648
- const __scopeVars = __scope[__scopeId] = __scope[__scopeId] || {};
3649
- __scopeVars.$refs = __scopeVars.$refs || {};
3650
- const __previousCurrentElement = window.__STX_CURRENT_ELEMENT__;
3651
- window.__STX_CURRENT_ELEMENT__ = document.querySelector('[data-stx-scope="' + __scopeId + '"]');
3652
-
3653
- // Scope-specific lifecycle callbacks
3654
- __scopeVars.__mountCallbacks = __scopeVars.__mountCallbacks || [];
3655
- __scopeVars.__destroyCallbacks = __scopeVars.__destroyCallbacks || [];
3656
- const onMount = (fn) => __scopeVars.__mountCallbacks.push(fn);
3657
- const onDestroy = (fn) => __scopeVars.__destroyCallbacks.push(fn);
3658
-
3659
- try {
3660
- ${j}
3661
-
3662
- // Register all defined signals and functions in this scope
3663
- const __localVars = {};
3664
- try {
3665
- ${B.map((_)=>`if (typeof ${_} !== 'undefined') __localVars['${_}'] = ${_};`).join(`
3666
- `)}
3667
- }
3668
- catch (e) {}
3669
- Object.assign(__scopeVars, __localVars);
3670
- }
3671
- finally {
3672
- window.__STX_CURRENT_ELEMENT__ = __previousCurrentElement;
3673
- }
3674
- }`,F={vendorStyleTags:z,factoryBody:V,deps:r8([...W,...Q.styles.map((_)=>_.resolvedPath)])};if(!U&&Q.unresolved.length===0)g$.set(X,F);return F}var Mz=/^[ \t]*import\s+['"]([^'"]+?\.css)(\?[^'"]*)?['"]\s*;?\s*$/gm;function Iz($){if($.startsWith(".")||$.startsWith("/"))return null;if($.startsWith("@")){let J=$.match(/^(@[^/]+\/[^/]+)(\/.*)?$/);if(!J)return null;return{pkg:J[1],subpath:J[2]||""}}let Z=$.match(/^([^/]+)(\/.*)?$/);if(!Z)return null;return{pkg:Z[1],subpath:Z[2]||""}}function Tz($,Z){let J=Z;while(!0){let X=b1.join(J,"node_modules",$,"package.json");if(y2.existsSync(X))return b1.dirname(X);let Y=b1.dirname(J);if(Y===J)return null;J=Y}}function kz($,Z){if(!$||typeof $!=="object")return null;let J=(Y)=>{if(typeof Y==="string")return Y;if(Y&&typeof Y==="object"){if(typeof Y.import==="string")return Y.import;if(typeof Y.default==="string")return Y.default;if(typeof Y.import==="object")return J(Y.import);if(typeof Y.default==="object")return J(Y.default)}return null};if(Object.prototype.hasOwnProperty.call($,Z))return J($[Z]);let X=null;for(let Y of Object.keys($)){let Q=Y.indexOf("*");if(Q===-1)continue;let G=Y.slice(0,Q),z=Y.slice(Q+1);if(!Z.startsWith(G)||!Z.endsWith(z))continue;if(Z.length<G.length+z.length)continue;if(!X||G.length>X.prefix.length)X={pattern:Y,prefix:G,suffix:z}}if(X){let Y=Z.slice(X.prefix.length,Z.length-X.suffix.length),Q=J($[X.pattern]);if(Q)return Q.replace("*",Y)}return null}function Ez($,Z){let J=Iz($);if(!J||!J.subpath)return null;let X=Tz(J.pkg,Z);if(!X)return null;let Y;try{Y=JSON.parse(y2.readFileSync(b1.join(X,"package.json"),"utf8"))}catch{return null}let Q=`.${J.subpath}`,G=kz(Y.exports,Q);if(!G)return null;let z=b1.resolve(X,G);return y2.existsSync(z)?z:null}function d$($,Z){let J=Z.filePath?b1.dirname(Z.filePath):Z.projectRoot||process.cwd(),X=Z.projectRoot||process.cwd(),Y=new Set,Q=[],G=[];return{code:$.replace(Mz,(q,K)=>{let W;try{if(K.startsWith("./")||K.startsWith("../")||K.startsWith("/")){if(W=K.startsWith("/")?K:b1.resolve(J,K),!y2.existsSync(W))throw Error(`file not found: ${W}`)}else{let U=null;try{U=Bun.resolveSync(K,X)}catch{U=Ez(K,X)}if(!U)throw Error(`could not resolve ${K} (Bun.resolveSync + exports fallback both failed)`);W=U}}catch(U){return console.warn(`[stx:vendor-css] could not resolve ${JSON.stringify(K)} (from ${Z.filePath||"<unknown>"}): ${U?.message||U}`),G.push(K),""}if(Y.has(W))return"";Y.add(W);try{let U=y2.readFileSync(W,"utf8");Q.push({source:K,resolvedPath:W,contents:U})}catch(U){console.warn(`[stx:vendor-css] could not read ${W}: ${U?.message||U}`),G.push(K)}return""}),styles:Q,unresolved:G}}function bz($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function m$($){if($.length===0)return"";return`${$.map((Z)=>{return`<style data-stx-vendor="${bz(Z.source)}" data-stx-layer="vendor">
3675
- @layer vendor {
3676
- ${Z.contents}
3677
- }
3678
- </style>`}).join(`
3679
- `)}
3680
- `}var yz=YZ;function a1($){let Z=u0($),J=new Set;for(let z of $.matchAll(/^\s*import\s+(?:type\s+)?\{([^}]*)\}\s+from\s+['"][^'"]+['"]\s*;?\s*$/gm))for(let q of z[1].split(",")){let K=q.trim().split(/\s+as\s+/).pop()?.replace(/^type\s+/,"").trim();if(K)J.add(K)}let X=new Set;for(let z of Z.matchAll(/\b(?:const|let|var|function|class)\s+([A-Za-z_$][\w$]*)/g))X.add(z[1]);for(let z of Z.matchAll(/\b(?:const|let|var)\s*\{([^}]*)\}/g))for(let q of z[1].split(",")){let K=q.trim().split(/[:=]/).pop()?.trim();if(K)X.add(K)}let Y=I2.filter((z)=>{if(J.has(z)||X.has(z))return!1;return new RegExp(`\\b${z}\\s*\\(`).test(Z)}),Q=zZ(Z).filter((z)=>!J.has(z)&&!X.has(z));if(Y.length===0&&Q.length===0)return{code:$,imports:Y,models:Q};return{code:`${[Y.length>0?`import { ${Y.join(", ")} } from '@stacksjs/browser'`:"",Q.length>0?"import '@stacksjs/browser'":"",Q.length>0?`const { ${Q.join(", ")} } = window.StacksBrowser || {}`:""].filter(Boolean).join(`
3681
- `)}
3682
- ${$}`,imports:Y,models:Q}}var Cz=new Set(["Promise","Object","Array","Map","Set","Date","Error","JSON","Math","Number","String","RegExp","Symbol","WeakMap","WeakSet","Proxy","Reflect","Intl","URL","URLSearchParams","FormData","Headers","Request","Response","AbortController","EventTarget","Element","Document","Node","Window","Console","Storage","Navigator","Blob","File","FileReader","HTMLElement","SVGElement","Event","CustomEvent","DOMParser","XMLSerializer","WebSocket","Worker","SharedWorker","IntersectionObserver","MutationObserver","ResizeObserver","PerformanceObserver","Notification","Bun","Buffer","Process","Modal","Intl"]);function zZ($){let Z=new Set,J=/\b([A-Z][a-zA-Z0-9]*)\s*\.\s*(all|find|first|get|where|orderBy|orderByDesc|limit|select|pluck|create|update|delete)\s*\(/g,X;while((X=J.exec($))!==null)if(!Cz.has(X[1]))Z.add(X[1]);return Array.from(Z)}function Sz($){let Z=new Set;for(let J of $.matchAll(/\b(?:const|let|var|function|class)\s+([A-Za-z_$][\w$]*)/g))Z.add(J[1]);for(let J of $.matchAll(/\b(?:const|let|var)\s*\{([^}]*)\}/g))for(let X of J[1].split(",")){let Y=X.trim().split(/[:=]/).pop()?.trim();if(Y&&/^[A-Za-z_$][\w$]*$/.test(Y))Z.add(Y)}return Z}function qZ($){let Z=new Set,J=new Set,X=$;X=X.replace(/^[ \t]*import\s+type\s+\{[^}]*\}\s+from\s+['"][^'"]+['"][ \t]*;?[ \t]*$/gm,"// [type import stripped]");let Y=new Set,Q=/^[ \t]*import\s+(?:type\s+)?{\s*([^}]+)\s*}\s+from\s+['"](@stacksjs\/browser|@stacksjs\/stx|stx)['"][ \t]*;?[ \t]*$/gm,G;while((G=Q.exec($))!==null){let U=G[1],H=G[2];if(G[0].includes("import type"))continue;let j=[];for(let V of U.split(",")){let F=V.trim();if(!F||F.startsWith("type "))continue;let _=F.match(/^([A-Za-z_$][\w$]*)(?:\s+as\s+([A-Za-z_$][\w$]*))?$/);if(!_)continue;let O=_[1],L=_[2]||O;if(Y.add(O),Y.add(L),H==="stx"||H==="@stacksjs/stx")Z.add(O);else J.add(O);if(L!==O)j.push(`${L} = ${O}`)}let B=j.length>0?`var ${j.join(", ")}; /* [auto-import processed] */`:"// [auto-import processed]";X=X.replace(G[0],B)}let z=Sz(X);for(let U of yz){if(Y.has(U)||z.has(U))continue;if(new RegExp(`\\b${U}\\s*(?:<[^>]*>)?\\s*\\(`,"g").test(X))Z.add(U)}let q=u0(X),K=new Set;for(let U of X.matchAll(/^\s*import\s+(?:type\s+)?\{([^}]*)\}\s+from\s+['"][^'"]+['"]\s*;?\s*$/gm))for(let H of U[1].split(",")){let j=H.trim().replace(/^type\s+/,"").split(/\s+as\s+/);for(let B of j){let V=B.trim();if(V)K.add(V)}}for(let U of I2){if(Y.has(U)||z.has(U)||K.has(U))continue;if(new RegExp(`\\b${U}\\b`,"g").test(q))J.add(U)}let W=zZ(X);for(let U of W)if(!Y.has(U)&&!z.has(U))J.add(U);return{code:X,stxImports:Array.from(Z),browserImports:Array.from(J)}}function KZ($,Z){let J=[];if($.length>0)J.push(` var { ${$.join(", ")} } = window.stx || window;`);if(Z.length>0)J.push(` var { ${Z.join(", ")} } = window.StacksBrowser || {};`);if(J.length>0)return` // STX: auto-imported from stx and @stacksjs/browser
3683
- ${J.join(`
3684
- `)}
3685
- ${Pz($,Z)}`;return""}function ZL($,Z=[]){let{browserImports:J}=qZ($),X=new Set(Z);return KZ([],J.filter((Y)=>!X.has(Y)))}function Pz($,Z){let J=[...$.map((X)=>`['${X}', typeof ${X}, 'stx']`),...Z.map((X)=>`['${X}', typeof ${X}, '@stacksjs/browser']`)];if(J.length===0)return"";return` // STX: report auto-imports the client runtime did not provide
3686
- [${J.join(", ")}].forEach(function (e) {
3687
- if (e[1] !== 'undefined') return;
3688
- console.error(
3689
- '[stx] "' + e[0] + '" is used in this client script and auto-imported from ' + e[2] + ', '
3690
- + 'but the client runtime does not provide it. Either it is not exported to the browser, '
3691
- + 'or it should be imported from a relative path so the bundler includes it.'
3692
- );
3693
- });
3694
- `}function E9($){let Z=$.__stxClientPayload;if(Z&&typeof Z==="object"){let X={};for(let Y in Z){let Q=Z[Y];if(typeof Q==="function")continue;X[Y]=Q}return X.__stxDeclaredPayload=!0,X}let J={};for(let X in $){if(X.startsWith("__")||X.startsWith("$"))continue;let Y=$[X];if(typeof Y==="function")continue;J[X]=Y}return J}function ZZ($,Z){let J=new Set;for(let X of $.split(",")){let Y=X.trim().replace(/^\.\.\./,"").trim();if(!Y)continue;if(Z){let Q=Y.lastIndexOf(":");if(Q!==-1)Y=Y.slice(Q+1).trim()}if(Y=Y.split("=")[0].trim(),/^[A-Za-z_$][\w$]*$/.test(Y))J.add(Y)}return J}function vz($,Z){let J=u0($),{depths:X,balanced:Y}=GZ(J),Q=(z)=>!Y||X[z]===0,G=new RegExp(`(?:^|[^\\w$.])((?:const|let|var|function|class)\\s+${Z}\\b)`,"g");for(let z of J.matchAll(G)){let q=(z.index??0)+z[0].length-z[1].length;if(Q(q))return!0}for(let z of J.matchAll(/(?:const|let|var)\s*\{([^}]*)\}/g))if(Q(z.index??0)&&ZZ(z[1],!0).has(Z))return!0;for(let z of J.matchAll(/(?:const|let|var)\s*\[([^\]]*)\]/g))if(Q(z.index??0)&&ZZ(z[1],!1).has(Z))return!0;return!1}function fz($,Z){return new RegExp(`(?<![.#\\w$])${Z}(?![\\w$])`).test($)}var xz=/token|secret|passw|apikey|api_key|privatekey|private_key|credential|webhook|bearer|jwt|signature/i,JZ=new Set;function gz($,Z){let J=xz.test($),X=Z.length>32768;if(!J&&!X)return;if(JZ.has($))return;if(JZ.add($),J)console.warn(`[stx] server\u2192client bridge is publishing "${$}" into the page body. If it holds a credential, rename it with a "__" prefix (never bridged) and pass only what the template needs. See stacksjs/stx#1831.`);if(X)console.warn(`[stx] server\u2192client bridge is publishing ${(Z.length/1024).toFixed(1)}KB under "${$}". Every byte ships in the HTML on each request; prefix the binding with "__" and project just the fields the client reads.`)}function M$($,Z){if(!Z)return"";let J=u0($),X=Z.__stxDeclaredPayload===!0,Y=[];for(let[Q,G]of Object.entries(Z)){if(!/^[A-Za-z_$][\w$]*$/.test(Q))continue;if(Q.startsWith("__")||Q.startsWith("$"))continue;if(!X&&!fz(J,Q))continue;if(vz($,Q)){if(X)console.warn(`[stx] defineClientPayload declares "${Q}", but this client block also declares "${Q}" at the top level, so the server value is not published (emitting it would be a duplicate binding). Rename the local, or drop "${Q}" from defineClientPayload.`);continue}let z;try{z=JSON.stringify(G)}catch{continue}if(z===void 0)continue;gz(Q,z),Y.push(` var ${Q} = ${z.replace(/</g,"\\u003c")};`)}if(Y.length===0)return"";return` // stx: server -> client data bridge (seeded from server scope)
3695
- ${Y.join(`
3696
- `)}
3697
- `}var hz={left:0,middle:1,right:2};function uz($){let Z=[];if($.self)Z.push("if ($event.target !== $el) return");for(let J of $.systemKeys)Z.push(`if (!$event.${J}Key) return`);if($.keys.length>0){let J=$.keys.map((X)=>`$event.key === '${X}'`).join(" || ");Z.push(`if (!(${J})) return`)}if($.mouse!==null){let J=hz[$.mouse];Z.push(`if ($event.button !== ${J}) return`)}if($.prevent)Z.push("$event.preventDefault()");if($.stop)Z.push("$event.stopPropagation()");return Z.join("; ")}function dz($,Z){let{elementId:J,event:X,modifiers:Y}=$,Q=g9($.handler),G=uz(Y),z=[];if(Y.once)z.push("once: true");if(Y.capture)z.push("capture: true");if(Y.passive)z.push("passive: true");let q=z.length>0?`, { ${z.join(", ")} }`:"",K="";if(G)K+=`${G}; `;let W=Q.replace(/\\/g,"\\\\").replace(/'/g,"\\'"),U=`var $emit = function(name, detail) {
3698
- $el.dispatchEvent(new CustomEvent(name, { detail: detail, bubbles: true, cancelable: true }))
3699
- };`;function H(j){if(/\$emit\s*\(/.test(j))return`${U}
3700
- ${j}`;return`var scope = $el.closest('[data-stx-scope]');
3701
- if (scope && scope.__stx_execute) {
3702
- scope.__stx_execute('${W}', $event, $el);
3703
- }
3704
- else {
3705
- ${j}
3706
- }`}if(Y.debounce!==null)return` ;(function() {
3707
- // eslint-disable-next-line pickier/no-unused-vars
3708
- var $el = document.getElementById('${J}')
3709
- if (!$el) return
3710
- var __timer
3711
- $el.addEventListener('${X}', function($event) {
3712
- ${G?G+"; ":""}clearTimeout(__timer)
3713
- __timer = setTimeout(function() { ${H(Q)} }, ${Y.debounce})
3714
- }${q})
3715
- })()`;if(Y.throttle!==null)return` ;(function() {
3716
- // eslint-disable-next-line pickier/no-unused-vars
3717
- var $el = document.getElementById('${J}')
3718
- if (!$el) return
3719
- var __last = 0
3720
- $el.addEventListener('${X}', function($event) {
3721
- ${G?G+"; ":""}var __now = Date.now()
3722
- if (__now - __last >= ${Y.throttle}) {
3723
- __last = __now
3724
- ${H(Q)}
3725
- }
3726
- }${q})
3727
- })()`;if(/\$emit\s*\(/.test(Q))return` var $el = document.getElementById('${J}')
3728
- if ($el) $el.addEventListener('${X}', function($event) {
3729
- ${K}${U}
3730
- ${Q}
3731
- }${q})`;return` var $el = document.getElementById('${J}')
3732
- if ($el) $el.addEventListener('${X}', function($event) {
3733
- ${K}var scope = $el.closest('[data-stx-scope]');
3734
- if (scope && scope.__stx_execute) {
3735
- scope.__stx_execute('${W}', $event, $el);
3736
- }
3737
- else {
3738
- ${Q}
3739
- }
3740
- }${q})`}function mz($){if($.length===0)return"";return`
3741
- // STX: auto-generated event bindings
3742
- ${$.map((J,X)=>dz(J,X)).join(`
3743
- `)}`}function XZ($){let Z=[],J=new Set,X=$.replace(/^\s*import\s+.*$/gm,""),Y=0,Q=X.length,G=0;while(G<Q){let z=X[G];if(z==="'"||z==='"'||z==="`"){let q=z;if(G++,q==="`"){let K=0;while(G<Q){if(X[G]==="\\"){G+=2;continue}if(X[G]==="`"&&K===0){G++;break}if(X[G]==="$"&&X[G+1]==="{"){K++,G+=2;continue}if(X[G]==="}"&&K>0){K--,G++;continue}G++}}else while(G<Q){if(X[G]==="\\"){G+=2;continue}if(X[G]===q){G++;break}G++}continue}if(z==="/"&&X[G+1]==="/"){while(G<Q&&X[G]!==`
3744
- `)G++;continue}if(z==="/"&&X[G+1]==="*"){G+=2;while(G<Q-1&&!(X[G]==="*"&&X[G+1]==="/"))G++;G+=2;continue}if(z==="{"){Y++,G++;continue}if(z==="}"){Y--,G++;continue}if(Y===0){let q=X.slice(G),K=q.match(/^(?:const|let|var)\s+([a-zA-Z_$]\w*)\s*(?::[^=]*)?=/);if(K){let H=K[1];if(!H.startsWith("_")&&!J.has(H))Z.push(H),J.add(H);G+=K[0].length;continue}let W=q.match(/^(?:const|let|var)\s+\{([^}]+)\}\s*=/);if(W){W[1].split(",").forEach((H)=>{let j=H.trim(),B=j.indexOf(":"),V=B>=0?j.slice(B+1).trim().split(/[\s=]/)[0]:j.split(/[\s=]/)[0];if(V&&!V.startsWith("_")&&!J.has(V))Z.push(V),J.add(V)}),G+=W[0].length;continue}let U=q.match(/^(?:async\s+)?function\s+([a-zA-Z_$]\w*)/);if(U){let H=U[1];if(!H.startsWith("_")&&!J.has(H))Z.push(H),J.add(H);G+=U[0].length;continue}}G++}return Z}var lz=new Set(["if","else","true","false","null","undefined","typeof","instanceof","in","of","new","this","return","void","delete","throw","switch","case","break","continue","for","while","do","try","catch","finally","const","let","var","function","class","import","export","default","async","await","yield","with","debugger","console","window","document","Math","JSON","Date","Array","Object","String","Number","Boolean","Symbol","Map","Set","Promise","Error","parseInt","parseFloat","isNaN","isFinite","encodeURIComponent","decodeURIComponent","setTimeout","setInterval","clearTimeout","clearInterval","fetch","alert","confirm","prompt","event"]);function cz($){let Z=new Set,J=/[a-zA-Z_$][a-zA-Z0-9_$]*/g;function X(H){let j;while((j=J.exec(H))!==null){let B=j[0];if(!lz.has(B))Z.add(B)}}let Y=/\{\{([\s\S]*?)\}\}/g,Q;while((Q=Y.exec($))!==null)X(Q[1]);let G=/:[a-z][\w.-]*\s*=\s*"([^"]*)"/gi;while((Q=G.exec($))!==null)X(Q[1]);let z=/:[a-z][\w.-]*\s*=\s*'([^']*)'/gi;while((Q=z.exec($))!==null)X(Q[1]);let q=/@[a-z]+(?:\.[a-z]+)*\s*=\s*"([^"]*)"/gi;while((Q=q.exec($))!==null)X(Q[1]);let K=/@[a-z]+(?:\.[a-z]+)*\s*=\s*'([^']*)'/gi;while((Q=K.exec($))!==null)X(Q[1]);let W=/@model\s*=\s*["']([^"']*)["']/gi;while((Q=W.exec($))!==null)X(Q[1]);let U=/@for\s*=\s*["'][^"']*\bin\s+([^"']+)["']/gi;while((Q=U.exec($))!==null)X(Q[1]);return Z}async function b9($,Z={}){let J=$,X="",Y=!1,Q=[],G=d$(J,{filePath:Z.filePath,projectRoot:Z.projectRoot});J=G.code;let z=m$(G.styles),q=a1(J);J=q.code,Q=[...q.imports,...q.models];let{hasUserImports:K,bundleClientScript:W}=await o("stx/client-script-bundler",()=>import("./chunk-8618n28z.js"));if(K(J))J=await W(J,Z.filePath||"",{projectRoot:Z.projectRoot,minify:Z.production}),Y=!0;if(Z.autoImports!==!1){let L=qZ(J);J=L.code,X=KZ(L.stxImports,L.browserImports.filter((w)=>!Q.includes(w)))}if(X=`${M$(J,Z.serverData)}${X}`,J=$1(J),!Y&&A1(Z.attrs||""))J=M1(J);let U=mz(Z.eventBindings||[]),H=(Z.attrs||"").trim(),j=/\btype\s*=\s*["']module["']/i.test(H),B=Z.instanceId?` data-stx-instance="${Z.instanceId}"`:"";if(j){let L=H.replace(/\btype\s*=\s*["']module["']/i,"").trim(),w=`type="module" data-stx-scoped${B}${L?` ${L}`:""}`;return`${z}<script ${w}>
3745
- ${r1(`${X}${J}
3746
- ${U}`)}
3747
- </script>`}let V=QZ($),F=/function __stx_setup_/.test(J),_=/\bstx\.mount\s*\(|\bstx\.mountEl\s*\(/.test($);function O(L){let w=L.length>0?`
3748
- return { ${L.join(", ")} };`:"";return`${z}<script data-stx-scoped data-stx-run="always"${B}>
3749
- window.stx.mount(function() {
3750
- 'use strict';
3751
- ${r1(`${X}${J}
3752
- ${U}${w}`)}
3753
- })</script>`}if(!_&&!F){if(V)return O(XZ($));if(Z.templateContent){let L=XZ($);if(L.length>0){let w=cz(Z.templateContent);if(L.some((N)=>w.has(N)))return O(L)}}}return`${z}<script data-stx-scoped data-stx-run="always"${B}>
3754
- ;(function() {
3755
- 'use strict';
3756
- ${r1(`${X}${J}
3757
- ${U}`)}
3758
- })()</script>`}
3759
- export{dZ as Bl,mZ as Cl,lZ as Dl,t0 as El,n9 as Fl,s9 as Gl,o9 as Hl,r9 as Il,I3 as Jl,M3 as Kl,aZ as Ll,eZ as Ml,ZJ as Nl,Tq as Ol,kq as Pl,Eq as Ql,bq as Rl,yq as Sl,hZ as Tl,R3 as Ul,N3 as Vl,D3 as Wl,A3 as Xl,Mq as Yl,f3 as Zl,q2 as _l,g9 as $l,h9 as am,_Z as bm,a$ as cm,iz as dm,I2 as em,t1 as fm,SB as gm,d$ as hm,m$ as im,yz as jm,a1 as km,qZ as lm,KZ as mm,ZL as nm,E9 as om,M$ as pm,b9 as qm,rz as rm,d2 as sm,az as tm,tz as um,ez as vm,$q as wm,l2 as xm,FZ as ym,Wq as zm,wZ as Am,Uq as Bm,l9 as Cm,U3 as Dm,X1 as Em,c9 as Fm,DZ as Gm,Hq as Hm,V1 as Im,AZ as Jm,jq as Km,x0 as Lm,Bq as Mm,Lq as Nm,CZ as Om,SZ as Pm,O3 as Qm,F3 as Rm,w3 as Sm,Dq as Tm,T3 as Um,t9 as Vm,G2 as Wm,c2 as Xm,vq as Ym,a9 as Zm,YJ as _m,QJ as $m,GJ as an,fq as bn,E3 as cn,b3 as dn,z1 as en,X9 as fn,L0 as gn,A7 as hn,w5 as in,q1 as jn,O1 as kn,M7 as ln,j2 as mn,Y9 as nn,R5 as on,FX as pn,RX as qn,k7 as rn,DX as sn,AX as tn,b7 as un,F1 as vn,gW as wn,y7 as xn,T5 as yn,EX as zn,I5 as An,bX as Bn,yX as Cn,hW as Dn,uW as En,C7 as Fn,S7 as Gn,P7 as Hn,CX as In,SX as Jn,dW as Kn,mW as Ln,PX as Mn,lW as Nn,cW as On,x7 as Pn,d7 as Qn,b5 as Rn,ZU as Sn,_2 as Tn,y5 as Un,C5 as Vn,JU as Wn,rX as Xn,XU as Yn,aX as Zn,c7 as _n,YU as $n,tX as ao,QU as bo,GU as co,G9 as do,i7 as eo,n7 as fo,s7 as go,UU as ho,a7 as io,MU as jo,IU as ko,TU as lo,kU as mo,OY as no,w4 as oo,Z$ as po,kY as qo,J$ as ro,D6 as so,XB as to,k6 as uo,uQ as vo,bB as wo,pQ as xo,d6 as yo,I$ as zo,m6 as Ao,c6 as Bo,T$ as Co,zG as Do,qG as Eo,p6 as Fo,f6 as Go,KG as Ho,UG as Io,V$ as Jo,H6 as Ko,j6 as Lo,u8 as Mo,aG as No,tG as Oo,eG as Po,$z as Qo,Zz as Ro,d8 as So,Qz as To,Kz as Uo,Wz as Vo,d4 as Wo,m4 as Xo,Yj as Yo,C4 as Zo,Qj as _o,Y$ as $o,Q$ as ap,G$ as bp,i4 as cp,n4 as dp,s4 as ep,G7 as fp,z7 as gp,q7 as hp,K7 as ip,U5 as jp,H5 as kp,CK as lp,SK as mp,PK as np,iJ as op,vK as pp,kj as qp,Ej as rp,r4 as sp,bj as tp,JQ as up,t4 as vp,J6 as wp,H$ as xp,OQ as yp,j$ as zp,z6 as Ap,q6 as Bp,TQ as Cp,uj as Dp,dj as Ep,K6 as Fp,mj as Gp,lj as Hp,B$ as Ip,_6 as Jp,D9 as Kp,A9 as Lp,o1 as Mp,bQ as Np,O6 as Op,F6 as Pp,sj as Qp,O$ as Rp,yQ as Sp,CQ as Tp,F$ as Up,w$ as Vp,w6 as Wp,R6 as Xp,k$ as Yp,E$ as Zp,C$ as _p,v$ as $p,hG as aq,cG as bq,pG as cq,iG as dq,nG as eq,jz as fq,A1 as gq,x$ as hq,M1 as iq,j9 as jq,Fz as kq,wz as lq,Rz as mq,D1 as nq,a as oq,r2 as pq,$Z as qq,H0 as rq,g_ as sq,h_ as tq,x3 as uq,g3 as vq,_1 as wq,h3 as xq,C1 as yq,u3 as zq,K2 as Aq,oq as Bq,wJ as Cq,$5 as Dq,rq as Eq,Z5 as Fq,aq as Gq,tq as Hq,Q1 as Iq,eq as Jq,$K as Kq,ZK as Lq,JK as Mq,XK as Nq,YK as Oq,RJ as Pq,X5 as Qq,d3 as Rq,GK as Sq,zK as Tq,qK as Uq,KK as Vq,WK as Wq,l3 as Xq,UK as Yq,c3 as Zq,HK as _q,jK as $q,W2 as ar,TJ as br,LK as cr,EJ as dr,r3 as er,s2 as fr,DK as gr,X7 as hr,W5 as ir,dK as jr,B5 as kr,tJ as lr,JX as mr,mK as nr,lK as or,cK as pr,pK as qr,iK as rr,nK as sr,XX as tr,YX as ur,H7 as vr,V5 as wr,qX as xr,L5 as yr,N7 as zr,WW as Ar,UW as Br,F5 as Cr,BX as Dr,D7 as Er};