@stacksjs/stx 0.2.84 → 0.2.86

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 (48) hide show
  1. package/dist/app-shell.js +50 -50
  2. package/dist/build-mode-detector.js +95 -95
  3. package/dist/build-views.js +149 -149
  4. package/dist/build.js +37 -37
  5. package/dist/cli.js +51 -51
  6. package/dist/component-processing.js +16 -16
  7. package/dist/component-renderer.js +32 -32
  8. package/dist/components.js +95 -95
  9. package/dist/dev-server/index.js +36 -36
  10. package/dist/dev-server/serve-app.js +50 -50
  11. package/dist/dev-server/serve-file.js +50 -50
  12. package/dist/dev-server/serve-markdown.js +36 -36
  13. package/dist/dev-server/serve-multi.js +49 -49
  14. package/dist/dev-server.js +50 -50
  15. package/dist/docs.js +96 -96
  16. package/dist/dynamic-components.js +32 -32
  17. package/dist/includes.js +32 -32
  18. package/dist/index.js +50 -50
  19. package/dist/interactive.js +96 -96
  20. package/dist/lazy-loader.js +95 -95
  21. package/dist/plugin.js +44 -44
  22. package/dist/process.js +31 -31
  23. package/dist/production-builder.js +31 -31
  24. package/dist/production-server.js +31 -31
  25. package/dist/pwa/index.js +95 -95
  26. package/dist/pwa/offline.js +95 -95
  27. package/dist/pwa.js +84 -84
  28. package/dist/render.js +153 -153
  29. package/dist/serve.js +106 -106
  30. package/dist/site-builder/build.js +97 -97
  31. package/dist/site-builder/index.js +38 -38
  32. package/dist/ssg.js +13 -13
  33. package/dist/ssr.js +83 -83
  34. package/dist/story/cli.js +36 -36
  35. package/dist/story/commands/dev.js +36 -36
  36. package/dist/story/commands/index.js +36 -36
  37. package/dist/story/index.js +36 -36
  38. package/dist/story/renderer.js +96 -96
  39. package/dist/story/server.js +36 -36
  40. package/dist/story/visual-testing.js +96 -96
  41. package/dist/streaming.js +32 -32
  42. package/dist/template-compiler.js +24 -24
  43. package/dist/template-hydrator.js +110 -110
  44. package/dist/testing.js +95 -95
  45. package/dist/utils.js +32 -32
  46. package/dist/variable-extractor.js +11 -11
  47. package/dist/web-components.js +95 -95
  48. package/package.json +7 -5
@@ -5963,12 +5963,12 @@ catch (e) {
5963
5963
  `,""}),headContent:Z.trim()}}function JQ($,Z){return $.replace(/@title\s*\(\s*(?:(['"`])(.+?)\1|([^)]+))\s*\)/g,(Y,X,Q,J)=>{let G=X?Q:Z[(J||"").trim()]??J;return A1({title:G}),""})}function QQ($,Z){return $.replace(/@meta\s*\(\s*(['"`])(.+?)\1\s*,\s*(?:(['"`])(.+?)\3|([^)]+))\s*\)/g,(Y,X,Q,J,G,K)=>{let q=J?G:K,W=J?q:Z[(q||"").trim()]??q,U=Q.includes(":")?{property:Q,content:W}:{name:Q,content:W};return A1({meta:[U]}),""})}var X1,nJ,Y$;var O5=k(()=>{X1={},nJ=[],Y$={}});var J$={};s(J$,{stripTypeScript:()=>X9,hasVariables:()=>q9,extractVariables:()=>R1,extractScriptFromTemplate:()=>K9,convertToCommonJS:()=>g4});import p1 from"path";import F5 from"process";function GQ($){let Z=[],Y=0,X=$.split(`
5964
5964
  `);for(let Q of X){let J=Y,G=null,K=!1;for(let q=0;q<Q.length;q++){let W=Q[q];if(K){K=!1;continue}if(W==="\\"){K=!0;continue}if(G){if(W===G)G=null;continue}if(W==="'"||W==='"'||W==="`"){G=W;continue}if(W==="/"&&q+1<Q.length&&Q[q+1]==="/")break;if(W==="{")Y++;else if(W==="}")Y--}if(J===0){let q=Q.match(/(?:const|let|var)\s+(\w+)\s*=/);if(q)Z.push(q[1]);else if(/^\s*(?:const|let|var)\s+\w+\s*;?\s*$/.test(Q)){let W=Q.match(/(?:const|let|var)\s+(\w+)/);if(W)Z.push(W[1])}else{let W=Q.match(/(?:const|let|var)\s+(\{[^}]+\}|\[[^\]]+\])\s*=/);if(W){let U=W[1].slice(1,-1).split(",").map((B)=>{let _=B.split(":");return(_.length>1?_[1]:_[0]).trim()}).filter((B)=>/^\w+$/.test(B));Z.push(...U)}}}}return[...new Set(Z)]}function X9($){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 Y(X){if(!X.includes(":"))return X;let Q=[],J="",G=0,K=0,q=null;for(let W=0;W<X.length;W++){let z=X[W];if(q){if(J+=z,z===q)q=null;continue}if(z==='"'||z==="'"||z==="`"){q=z,J+=z;continue}if(z==="<")G++;else if(z===">"&&G>0)G--;else if(z==="(")K++;else if(z===")")K--;if(z===","&&G===0&&K===0){Q.push(J),J="";continue}J+=z}if(J)Q.push(J);return Q.map((W)=>{let z=W.trim(),U=z.startsWith("..."),B=U?z.slice(3):z,_=-1,j=0;for(let N=0;N<B.length;N++)if(B[N]==="<")j++;else if(B[N]===">")j--;else if(B[N]===":"&&j===0){_=N;break}if(_===-1)return W;let F=B.substring(0,_).trim().replace(/\?$/,""),L=B.substring(_+1),O=-1,V=0;for(let N=0;N<L.length;N++)if(L[N]==="<")V++;else if(L[N]===">")V--;else if(L[N]==="="&&V===0){O=N;break}let w=U?"...":"";if(O!==-1)return`${w}${F} = ${L.substring(O+1).trim()}`;return`${w}${F}`}).join(", ")}Z=Z.replace(/\b(function\s+\w*\s*)\(([^)]*)\)/g,(X,Q,J)=>{if(!J.includes(":"))return X;return`${Q}(${Y(J)})`});{let X=/\b(function\s+\w*\s*)\(/g,Q,J=[];while((Q=X.exec(Z))!==null){let G=Q.index+Q[0].length-1,K=1,q=G+1,W=0,z=null;while(q<Z.length&&K>0){let _=Z[q];if(z){if(_===z)z=null;q++;continue}if(_==='"'||_==="'"||_==="`"){z=_,q++;continue}if(_==="<")W++;else if(_===">"&&W>0)W--;else if(W===0){if(_==="(")K++;else if(_===")")K--}if(K>0)q++}if(K!==0)continue;let U=Z.substring(G+1,q);if(!U.includes(":"))continue;let B=Y(U);J.push({start:G+1,end:q,replacement:B})}for(let G=J.length-1;G>=0;G--){let{start:K,end:q,replacement:W}=J[G];Z=Z.substring(0,K)+W+Z.substring(q)}}return Z=Z.replace(/\(([^)]*)\)\s*(?::\s*[^=]+)?\s*=>/g,(X,Q)=>{if(!Q.includes(":"))return X;if(Q.includes("{")||Q.includes("}"))return X;return`(${Q.split(",").map((G)=>{let[K,...q]=G.split("="),W=K.split(":")[0].trim();if(q.length>0)return`${W} = ${q.join("=").trim()}`;return W}).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,`
5965
5965
 
5966
- `),Z}async function R1($,Z,Y,X={}){if(!$.trim())return;let Q;try{let y=new Bun.Transpiler({loader:"ts",target:"browser",define:c0()}),v=$.replace(/^\s*import\s+\w+\s+from\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");v=v.replace(/^\s*import\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,""),Q=y.transformSync(v)}catch{Q=X9($)}let J={exports:{}},G=J.exports,K=F5.cwd(),q={},W=[...Q.matchAll(/require\s*\(\s*['"]([^'"]+)['"]\s*\)/g)||[]].map((y)=>y[1]).filter((y)=>!y.startsWith("node:")&&!y.startsWith(".")&&!["fs","path","os","child_process","crypto","http","https","url","util","stream","events","buffer","net","querystring","zlib","tls"].includes(y));for(let y of W)try{let v=p1.resolve(K,"node_modules",y),x=p1.join(v,"package.json"),g=JSON.parse(G0("fs").readFileSync(x,"utf8")),u=g.main||"index.js";if(g.exports){let o=typeof g.exports==="string"?g.exports:g.exports["."];if(typeof o==="string")u=o;else if(o?.bun)u=o.bun;else if(o?.import)u=o.import;else if(o?.default)u=o.default}q[y]=await import(p1.resolve(v,u))}catch{}let z=(y)=>{if(q[y])return q[y];return G0(y)},U=Z.props||{},B=Object.assign((y)=>{if(!y)return U;let v={};for(let[x,g]of Object.entries(y)){let u=U[x];if(u!==void 0)v[x]=u;else if(typeof g==="function")v[x]=g();else v[x]=g}return v},U),_=(y)=>{if(!y)return U;let v={...U};for(let[x,g]of Object.entries(y)){let u=g&&typeof g==="object"&&!Array.isArray(g)?g:{type:g};if(v[x]===void 0&&u.default!==void 0)v[x]=typeof u.default==="function"?u.default():u.default}return v},j=()=>Z.slots||{},H=(y,v)=>{let x={...y};for(let[g,u]of Object.entries(v))if(x[g]===void 0)if(typeof u==="function")x[g]=u();else x[g]=u;return x},F=(y)=>{let v=()=>y;return v.set=(x)=>{},v.update=(x)=>{},v},L=(y)=>{let v,x=!1;return()=>{if(!x)try{v=y(),x=!0}catch{v=void 0}return v}},O=(y)=>{},V=(y)=>y(),w=(y)=>{},N=(y)=>{},A=(y)=>{},R=()=>({params:{},query:{},path:"",name:"",fullPath:"",hash:"",matched:[]}),T=()=>({push:(y)=>{},replace:(y)=>{},back:()=>{},forward:()=>{},go:(y)=>{}}),M=(y)=>{A1(y);let v=Z.__stx_runtime_head||{},x=y||{};Z.__stx_runtime_head={...v,...x.title&&{title:x.title},meta:[...v.meta||[],...x.meta||[]],link:[...v.link||[],...x.link||[]],script:[...v.script||[],...x.script||[]],htmlAttrs:{...v.htmlAttrs||{},...x.htmlAttrs||{}},bodyAttrs:{...v.bodyAttrs||{},...x.bodyAttrs||{}}}},I=(y)=>{X$(y);let v=H5();Z.__stx_runtime_head={...Z.__stx_runtime_head||{},...v.title&&{title:v.title},meta:v.meta?[...v.meta]:[]}},D=(y)=>({value:y}),E=(y)=>y,C=(y)=>({value:typeof y==="function"?y():y}),b=(y,v)=>{},S=(y)=>{},P=(y)=>{},d=(y)=>y?y():Promise.resolve(),f=(y)=>(v,...x)=>{},m=(y)=>{},n=(y,v)=>{},A0=(y,v)=>v,r0=()=>({value:"light"}),S0=()=>({value:!1}),I0={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:{}},e=new Proxy(I0,{get(y,v){if(v in y)return y[v];return},set(y,v,x){return y[v]=x,!0}}),j0={getElementById:()=>null,querySelector:()=>null,querySelectorAll:()=>[],createElement:()=>({}),createTextNode:()=>({}),body:{},head:{},documentElement:{},addEventListener:()=>{},removeEventListener:()=>{}},z0=console;try{let y=g4(Q,Y),v=new Set(Object.keys(U)),x=Object.keys(Z).filter((t)=>!v.has(t)&&t!=="props"),g=x.map((t)=>Z[t]),u=new Set(["break","case","catch","class","const","continue","debugger","default","delete","do","else","export","extends","finally","for","function","if","import","in","instanceof","let","new","return","super","switch","this","throw","try","typeof","var","void","while","with","yield","enum","await","async","module","exports","require","params","window","document","console","state","derived","effect"]),o=[],Q0=[];for(let[t,p0]of Object.entries(U)){if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(t))continue;if(u.has(t))continue;if(new RegExp(`(?:^|[\\s;{])(?:const|let|var|function)\\s+${t}\\b`).test(y))continue;o.push(t),Q0.push(p0)}let y0=GQ(y).map((t)=>`module.exports.${t} = typeof ${t} !== 'undefined' ? ${t} : module.exports.${t};`).join(`
5966
+ `),Z}async function R1($,Z,Y,X={}){if(!$.trim())return;let Q;try{let S=new Bun.Transpiler({loader:"ts",target:"browser",define:c0()}),v=$.replace(/^\s*import\s+\w+\s+from\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");v=v.replace(/^\s*import\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,""),Q=S.transformSync(v)}catch{Q=X9($)}let J={exports:{}},G=J.exports,K=F5.cwd(),q={},W=[...Q.matchAll(/require\s*\(\s*['"]([^'"]+)['"]\s*\)/g)||[]].map((S)=>S[1]).filter((S)=>!S.startsWith("node:")&&!S.startsWith(".")&&!["fs","path","os","child_process","crypto","http","https","url","util","stream","events","buffer","net","querystring","zlib","tls"].includes(S));for(let S of W)try{let v=p1.resolve(K,"node_modules",S),x=p1.join(v,"package.json"),g=JSON.parse(G0("fs").readFileSync(x,"utf8")),u=g.main||"index.js";if(g.exports){let o=typeof g.exports==="string"?g.exports:g.exports["."];if(typeof o==="string")u=o;else if(o?.bun)u=o.bun;else if(o?.import)u=o.import;else if(o?.default)u=o.default}q[S]=await import(p1.resolve(v,u))}catch{}let z=(S)=>{if(q[S])return q[S];return G0(S)},U=Z.props||{},B=Object.assign((S)=>{if(!S)return U;let v={};for(let[x,g]of Object.entries(S)){let u=U[x];if(u!==void 0)v[x]=u;else if(typeof g==="function")v[x]=g();else v[x]=g}return v},U),_=(S)=>{if(!S)return U;let v={...U};for(let[x,g]of Object.entries(S)){let u=g&&typeof g==="object"&&!Array.isArray(g)?g:{type:g};if(v[x]===void 0&&u.default!==void 0)v[x]=typeof u.default==="function"?u.default():u.default}return v},j=()=>Z.slots||{},H=(S,v)=>{let x={...S};for(let[g,u]of Object.entries(v))if(x[g]===void 0)if(typeof u==="function")x[g]=u();else x[g]=u;return x},F=(S)=>{let v=()=>S;return v.set=(x)=>{},v.update=(x)=>{},v},L=(S)=>{let v,x=!1;return()=>{if(!x)try{v=S(),x=!0}catch{v=void 0}return v}},O=(S)=>{},V=(S)=>S(),w=(S)=>{},N=(S)=>{},A=(S)=>{},R=()=>{let S=Z.__stxServeContext,v=Z.__stxServeSearch??S?.search??"",x=S?.path??"";return{params:Z.params??{},query:Object.fromEntries(new URLSearchParams(v)),path:x,name:"",fullPath:x+v,hash:"",matched:[]}},T=()=>({push:(S)=>{},replace:(S)=>{},back:()=>{},forward:()=>{},go:(S)=>{}}),M=(S)=>{A1(S);let v=Z.__stx_runtime_head||{},x=S||{};Z.__stx_runtime_head={...v,...x.title&&{title:x.title},meta:[...v.meta||[],...x.meta||[]],link:[...v.link||[],...x.link||[]],script:[...v.script||[],...x.script||[]],htmlAttrs:{...v.htmlAttrs||{},...x.htmlAttrs||{}},bodyAttrs:{...v.bodyAttrs||{},...x.bodyAttrs||{}}}},I=(S)=>{X$(S);let v=H5();Z.__stx_runtime_head={...Z.__stx_runtime_head||{},...v.title&&{title:v.title},meta:v.meta?[...v.meta]:[]}},D=(S)=>({value:S}),E=(S)=>S,C=(S)=>({value:typeof S==="function"?S():S}),b=(S,v)=>{},y=(S)=>{},P=(S)=>{},d=(S)=>S?S():Promise.resolve(),f=(S)=>(v,...x)=>{},m=(S)=>{},n=(S,v)=>{},A0=(S,v)=>v,r0=()=>({value:"light"}),S0=()=>({value:!1}),D0={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:{}},e=new Proxy(D0,{get(S,v){if(v in S)return S[v];return},set(S,v,x){return S[v]=x,!0}}),j0={getElementById:()=>null,querySelector:()=>null,querySelectorAll:()=>[],createElement:()=>({}),createTextNode:()=>({}),body:{},head:{},documentElement:{},addEventListener:()=>{},removeEventListener:()=>{}},z0=console;try{let S=g4(Q,Y),v=new Set(Object.keys(U)),x=Object.keys(Z).filter((t)=>!v.has(t)&&t!=="props"),g=x.map((t)=>Z[t]),u=new Set(["break","case","catch","class","const","continue","debugger","default","delete","do","else","export","extends","finally","for","function","if","import","in","instanceof","let","new","return","super","switch","this","throw","try","typeof","var","void","while","with","yield","enum","await","async","module","exports","require","params","window","document","console","state","derived","effect"]),o=[],Q0=[];for(let[t,p0]of Object.entries(U)){if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(t))continue;if(u.has(t))continue;if(new RegExp(`(?:^|[\\s;{])(?:const|let|var|function)\\s+${t}\\b`).test(S))continue;o.push(t),Q0.push(p0)}let y0=GQ(S).map((t)=>`module.exports.${t} = typeof ${t} !== 'undefined' ? ${t} : module.exports.${t};`).join(`
5967
5967
  `),O1=Z.params??{},q0=[],F1=[];for(let t=0;t<x.length;t++){if(x[t]==="params")continue;q0.push(x[t]),F1.push(g[t])}let x5=await Function("module","exports","require","props","$props","defineProps","withDefaults","state","derived","effect","batch","onMount","onDestroy","definePageMeta","useRoute","useRouter","useHead","useSeoMeta","ref","reactive","computed","watch","onMounted","onUnmounted","nextTick","defineEmits","defineExpose","defineSlots","provide","inject","useColorMode","useDark","window","document","console","confirm","alert","fetch","params",...o,...q0,`return (async () => {
5968
- ${y}
5968
+ ${S}
5969
5969
  ${y0}
5970
5970
  return module.exports
5971
- })()`)(J,G,z,U,B,_,H,F,L,O,V,w,N,A,R,T,M,I,D,E,C,b,S,P,d,f,m,j,n,A0,r0,S0,e,j0,z0,I0.confirm,I0.alert,I0.fetch,O1,...Q0,...F1);if(X.preserveExisting){for(let[t,p0]of Object.entries(x5))if(!(t in Z)||Z[t]===void 0)Z[t]=p0}else Object.assign(Z,x5);for(let[t,p0]of Object.entries(U))if(!(t in Z))Z[t]=p0}catch(y){if(F5.env.STX_DEBUG){let v=y instanceof Error?y.message:String(y);console.warn(`[stx] server <script> did not execute in ${Y??"<unknown>"} \u2014 falling back to static extraction. Cause: ${v}`)}try{await UQ(Q,Z,Y)}catch(v){if(F5.env.STX_DEBUG){let x=v instanceof Error?v.message:String(v);console.warn(`[stx] fallback extraction also failed in ${Y??"<unknown>"}: ${x}`)}}}}function g4($,Z){let Y=Z?p1.dirname(Z):F5.cwd(),X=$.split(`
5971
+ })()`)(J,G,z,U,B,_,H,F,L,O,V,w,N,A,R,T,M,I,D,E,C,b,y,P,d,f,m,j,n,A0,r0,S0,e,j0,z0,D0.confirm,D0.alert,D0.fetch,O1,...Q0,...F1);if(X.preserveExisting){for(let[t,p0]of Object.entries(x5))if(!(t in Z)||Z[t]===void 0)Z[t]=p0}else Object.assign(Z,x5);for(let[t,p0]of Object.entries(U))if(!(t in Z))Z[t]=p0}catch(S){if(F5.env.STX_DEBUG){let v=S instanceof Error?S.message:String(S);console.warn(`[stx] server <script> did not execute in ${Y??"<unknown>"} \u2014 falling back to static extraction. Cause: ${v}`)}try{await UQ(Q,Z,Y)}catch(v){if(F5.env.STX_DEBUG){let x=v instanceof Error?v.message:String(v);console.warn(`[stx] fallback extraction also failed in ${Y??"<unknown>"}: ${x}`)}}}}function g4($,Z){let Y=Z?p1.dirname(Z):F5.cwd(),X=$.split(`
5972
5972
  `),Q=[],J=0;while(J<X.length){let G=X[J].trim();if(G.startsWith("interface ")||G.startsWith("export interface ")||G.startsWith("type ")||G.startsWith("export type ")){if(G.includes("{")&&!G.includes("}")){let K=0;for(;J<X.length;J++){for(let q of X[J])if(q==="{")K++;else if(q==="}")K--;if(K<=0)break}}J++;continue}if(G.startsWith("definePageMeta(")){let K=0,q=!1;for(let W=J;W<X.length&&!q;W++){let z=null,U=!1,B=X[W];for(let _=0;_<B.length;_++){let j=B[_];if(U){U=!1;continue}if(j==="\\"){U=!0;continue}if(z){if(j===z)z=null;continue}if(j==='"'||j==="'"||j==="`"){z=j;continue}if(j==="(")K++;else if(j===")"){if(K--,K===0){J=W+1,q=!0;break}}}}if(!q)J=X.length;continue}if(G.startsWith("import ")){let K=G.match(/^import\s+(\w+)\s+from\s+['"](.+)['"]/),q=G.match(/^import\s+\{([^}]+)\}\s+from\s+['"](.+)['"]/),W=G.match(/^import\s+['"](.+)['"]/),z=(U)=>{if(U.startsWith("."))return p1.resolve(Y,U);return U};if(K){let[,U,B]=K,_=z(B);Q.push(`const ${U} = await import('${_}')`),Q.push(`module.exports.${U} = ${U};`)}else if(q){let[,U,B]=q,_=U.trim(),j=z(B);Q.push(`const { ${_} } = await import('${j}')`);for(let H of _.split(",")){let F=H.trim().split(/\s+as\s+/).pop()?.trim();if(F)Q.push(`module.exports.${F} = ${F};`)}}else if(W){let U=z(W[1]);Q.push(`await import('${U}')`)}else Q.push(G);J++;continue}if((G.startsWith("const ")||G.startsWith("let ")||G.startsWith("var ")||G.startsWith("export const ")||G.startsWith("export let ")||G.startsWith("export var "))&&!G.includes("="))Q.push(X[J]),J++;else if(G.startsWith("export const ")||G.startsWith("export let ")||G.startsWith("export var ")){let K=e6(X,J),{type:q,name:W,value:z}=K;Q.push(`${q} ${W} = ${z};`),Q.push(`module.exports.${W} = ${W};`),J=K.nextIndex}else if(G.startsWith("export function ")||G.startsWith("export async function ")){let K=f4(X,J);Q.push(K.functionCode),Q.push(`module.exports.${K.name} = ${K.name};`),J=K.nextIndex}else if(G.startsWith("const ")||G.startsWith("let ")||G.startsWith("var ")){let K=e6(X,J),{type:q,name:W,value:z}=K;Q.push(`${q} ${W} = ${z};`),Q.push(`module.exports.${W} = ${W};`),J=K.nextIndex}else if(G.startsWith("function ")||G.startsWith("async function ")){let K=f4(X,J);Q.push(K.functionCode),Q.push(`module.exports.${K.name} = ${K.name};`),J=K.nextIndex}else if(G.startsWith("export default function ")||G.startsWith("export default async function ")){let K=X[J].replace(/^(\s*)export\s+default\s+/,"$1"),q=[...X];q[J]=K;let W=f4(q,J);if(Q.push(W.functionCode),W.name)Q.push(`module.exports.default = ${W.name};`);J=W.nextIndex}else if(G.startsWith("export default ")){let K=G.replace(/^export\s+default\s+/,"").replace(/;$/,"");Q.push(`module.exports.default = ${K};`),J++}else if(G.startsWith("class ")||G.startsWith("export class ")){let K=G.match(/(?:export\s+)?class\s+(\w+)/);if(K){let q=K[1],W=X[J].replace(/^export\s+/,""),z=0,U=J;for(;U<X.length;U++){let B=X[U];for(let _ of B)if(_==="{")z++;else if(_==="}")z--;if(U>J)W+=`
5973
5973
  `+B;if(z<=0&&U>=J)break}Q.push(W),Q.push(`module.exports.${q} = ${q};`),J=U+1}else Q.push(G),J++}else if(G.includes("module.exports"))Q.push(G),J++;else if(G.trim()&&!G.startsWith("//"))Q.push(G),J++;else J++}return KQ(Q.join(`
5974
5974
  `),Y)}function KQ($,Z){let Y=$.length,X="",Q=0,J=null,G=!1,K=!1,q=0;while(Q<Y){let W=$[Q],z=$[Q+1];if(G){if(X+=W,W===`
@@ -5979,11 +5979,11 @@ ${$[q]}`,q++;else break}return K=K.trim().replace(/;$/,""),{type:Q,name:J,value:
5979
5979
  ${J}`,Q++}while(Q<$.length){let J=$[Q].trim();if(J.startsWith(".")||J.startsWith("?."))X+=`
5980
5980
  ${$[Q]}`,Q++;else break}return{value:X,nextIndex:Q}}function WQ($,Z,Y){let X=Y,Q=Z+1;while(Q<$.length){let J=X.indexOf("{");if(J!==-1){if(E0(X,"{","}",J)!==-1)break}let G=$[Q];X+=`
5981
5981
  ${G}`,Q++}return{functionCode:X,nextIndex:Q}}function Y9($,Z){let Y=$0($,Z)??$0(`(${$})`,Z);if(Y!==void 0)return Y;if(!/\bprocess\b/.test($))return;let X={...Z,process:Object.freeze({env:{...F5.env}})};try{return Function(...Object.keys(X),`'use strict'; return (${$});`)(...Object.values(X))}catch{try{return Function(...Object.keys(X),`'use strict'; return ${$};`)(...Object.values(X))}catch{return}}}async function UQ($,Z,Y){let X=$.matchAll(/export\s+(const|let|var)\s+(\w+)\s*=\s*([\s\S]*?)(?=\s*(?:export\s+|$))/g);for(let J of X){let[,,G,K]=J;try{let q=K.trim().replace(/;$/,""),W=Y9(q,Z);if(W!==void 0)Z[G]=W}catch(q){console.warn(`Failed to parse export ${G} in fallback:`,q)}}let Q=$.matchAll(/(?:^|\n)\s*(const|let|var)\s+(\w+)\s*=\s*([\s\S]*?)(?=\s*(?:(?:const|let|var|function|export)\s+|$))/g);for(let J of Q){let[,,G,K]=J;if(!(G in Z))try{let q=K.trim().replace(/;$/,""),W=Y9(q,Z);if(W!==void 0)Z[G]=W}catch{}}}function K9($){let Z=$.match(/<script\b[^>]*>([\s\S]*?)<\/script>/i),Y=Z?Z[1]:"",X=Z?$.replace(/<script\b[^>]*>[\s\S]*?<\/script>/i,""):$;return{scriptContent:Y,templateWithoutScript:X}}function q9($){let Z=$.trim();if(!Z)return!1;return/(?:const|let|var|function)\s+\w+/.test(Z)}var L5=k(()=>{O5();g1();L0()});var _9={};s(_9,{renderSlot:()=>W9,processSlots:()=>B9,parseSlots:()=>z9,parseSlotElement:()=>_Q,extractSlotContent:()=>OQ,applySlots:()=>FQ});function BQ($,Z){let Y=1,X=Z,Q="<template",J="</template";while(X<$.length&&Y>0){let G=$.indexOf("<",X);if(G===-1)break;if(X=G,$.startsWith(Q,X)&&(X+Q.length>=$.length||/[\s>\/]/.test($[X+Q.length]))){Y++,X+=Q.length;continue}if($.startsWith(J,X)){let K=$.indexOf(">",X+J.length);if(K!==-1){if(Y--,Y===0)return K+1;X=K+1;continue}}X++}return Y===0?X:-1}function z9($){let Z={default:"",named:new Map},Y=$,X=/<template\s+(?:#([a-zA-Z][\w-]*)|v-slot:([a-zA-Z][\w-]*)|slot="([a-zA-Z][\w-]*)")(?:\s*=\s*"([^"]*)")?[^>]*>/gi,Q=[],J;while((J=X.exec($))!==null){let[z,U,B,_,j]=J,H=U||B||_,F=J.index+z.length,L=BQ($,F);if(L!==-1){let O=$.slice(F,L-11).trim();Q.push({start:J.index,end:L,slotName:H,content:O,propsBinding:j||void 0}),Z.named.set(H,{name:H,content:O,propsBinding:j||void 0})}}Q.sort((z,U)=>U.start-z.start);for(let z of Q)Y=Y.slice(0,z.start)+Y.slice(z.end);let G=[],K=/<([a-zA-Z][a-zA-Z0-9-]*)\b([^>]*?)\bslot="([^"]+)"([^>]*)>([\s\S]*?)<\/\1>/gi,q;while((q=K.exec(Y))!==null){let[z,U,B,_,j,H]=q,F=B.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),L=j.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),O=(F+L).trim(),V=`<${U}${O?" "+O:""}>${H}</${U}>`;G.push({start:q.index,end:q.index+z.length,slotName:_,element:V})}let W=/<([a-zA-Z][a-zA-Z0-9-]*)\b([^>]*?)\bslot="([^"]+)"([^>]*?)\/>/gi;while((q=W.exec(Y))!==null){let[z,U,B,_,j]=q,H=B.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),F=j.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),L=(H+F).trim(),O=`<${U}${L?" "+L:""} />`;G.push({start:q.index,end:q.index+z.length,slotName:_,element:O})}G.sort((z,U)=>U.start-z.start);for(let z of G){let U=Z.named.get(z.slotName);if(U)U.content+=z.element;else Z.named.set(z.slotName,{name:z.slotName,content:z.element});Y=Y.slice(0,z.start)+Y.slice(z.end)}return Z.default=Y.trim(),Z}function _Q($){let Z=$.match(/name\s*=\s*["']([^"']+)["']/),Y=Z?Z[1]:"",X={},Q=/:([a-zA-Z][\w-]*)\s*=\s*["']([^"']+)["']/g,J;while((J=Q.exec($))!==null)X[J[1]]=J[2];let G=$.match(/<slot[^>]*>([\s\S]*?)<\/slot>/i),K=G?G[1].trim():"";return{name:Y,props:X,defaultContent:K}}async function W9($,Z,Y,X){if(!$)return Y;let Q=$.content;if($.propsBinding&&Object.keys(Z).length>0){let J=$.propsBinding.trim(),G={...X};if(J.startsWith("{")&&J.endsWith("}")){let K=J.slice(1,-1).split(",").map((q)=>q.trim()).filter(Boolean);for(let q of K){let[W,z]=q.split(":").map((B)=>B.trim()),U=z||W;if(Z[W]!==void 0)G[U]=Z[W]}}else G[J]=Z;Q=jQ(Q,G)}return Q}function jQ($,Z){return $.replace(/\{\{\s*([^}]+)\s*\}\}/g,(Y,X)=>{try{let Q=X.trim(),J=U9(Q,Z);return h0(String(J??""))}catch{return`{{ ${X} }}`}})}function U9($,Z){if(/^[a-zA-Z_$][\w$]*(\.[a-zA-Z_$][\w$]*)*$/.test($)){let X=$.split("."),Q=Z;for(let J of X)if(Q&&typeof Q==="object"&&J in Q)Q=Q[J];else return;return Q}let Y=$.match(/^([a-zA-Z_$][\w$]*)\s*([+\-*/])\s*(\d+)$/);if(Y){let[,X,Q,J]=Y,G=Z[X],K=parseInt(J,10);if(typeof G==="number")switch(Q){case"+":return G+K;case"-":return G-K;case"*":return G*K;case"/":return G/K}}try{if(!Z0($))return;return Y0($,Object.keys(Z))(...Object.values(Z))}catch{return}}async function B9($,Z,Y){let X=$;X=await HQ(X,/<slot\s+name\s*=\s*["']([^"']+)["']([^>]*?)(?:\/>|>([\s\S]*?)<\/slot>)/gi,async(G,K,q,W)=>{let z=Z.named.get(K),U=W?.trim()||"",B=q||"",_={},j=/:([a-zA-Z_$][\w$-]*)\s*=\s*["']([^"']+)["']/g,H;while((H=j.exec(B))!==null){let F=H[1],L=H[2];_[F]=U9(L,Y)}return await W9(z,_,U,Y)});let J=/<slot\s*(?:\/>|>([\s\S]*?)<\/slot>)/gi;return X=X.replace(J,(G,K)=>{if(G.includes("name="))return G;let q=K?.trim()||"";return Z.default||q}),X}async function HQ($,Z,Y){let X=[],Q=[];$.replace(Z,(K,...q)=>{let W=q[q.length-2];return Q.push({match:K,index:W}),X.push(Y(K,...q.slice(0,-2))),K});let J=await Promise.all(X),G=$;for(let K=Q.length-1;K>=0;K--){let{match:q,index:W}=Q[K];G=G.slice(0,W)+J[K]+G.slice(W+q.length)}return G}function OQ($){let Z=z9($);return{defaultSlot:Z.default,namedSlots:Z.named}}async function FQ($,Z,Y,X){return await B9($,{default:Z,named:Y},X)}var j9=k(()=>{i0();L0()});import LQ from"fs";import h from"path";function H9($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function wQ($){return/\bjs\b/.test($)||/\blang\s*=\s*["']?(js|javascript)["']?/i.test($)}function V1($){return!wQ($)}function w1($){try{let Z=$.replace(/^\s*import\s+\w+\s+from\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");Z=Z.replace(/^\s*import\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");let Y=[];Z=Z.replace(/\{!![\s\S]*?!!\}/g,(J)=>{let G=Y.length;return Y.push(J),`"__STX_EXPR_${G}__"`}),Z=Z.replace(/\{\{\{[\s\S]*?\}\}\}/g,(J)=>{let G=Y.length;return Y.push(J),`"__STX_EXPR_${G}__"`}),Z=Z.replace(/\{\{[\s\S]*?\}\}/g,(J)=>{let G=Y.length;return Y.push(J),`"__STX_EXPR_${G}__"`});let Q=new Bun.Transpiler({loader:"ts",target:"browser",define:c0()}).transformSync(Z);for(let J=0;J<Y.length;J++)Q=Q.replace(`"__STX_EXPR_${J}__"`,Y[J]),Q=Q.replace(`'__STX_EXPR_${J}__'`,Y[J]);return Q}catch(Z){if(process.env.STX_DEBUG_TS)console.warn("[STX] TypeScript transpilation error:",Z);return $}}function NQ($){let Z=[],Y=new Set,X=0,Q=0,J=$.length,G=(z)=>{Q++;while(Q<J){if($[Q]==="\\"){Q+=2;continue}if($[Q]===z){Q++;return}Q++}},K=()=>{Q++;while(Q<J){if($[Q]==="\\"){Q+=2;continue}if($[Q]==="`"){Q++;return}if($[Q]==="$"&&$[Q+1]==="{"){Q+=2;let z=1;while(Q<J&&z>0)if($[Q]==="{")z++,Q++;else if($[Q]==="}")z--,Q++;else if($[Q]==="'"||$[Q]==='"')G($[Q]);else if($[Q]==="`")K();else Q++;continue}Q++}},q=()=>{if($[Q]==="/"&&$[Q+1]==="/"){while(Q<J&&$[Q]!==`
5982
- `)Q++;return!0}if($[Q]==="/"&&$[Q+1]==="*"){Q+=2;while(Q<J-1&&!($[Q]==="*"&&$[Q+1]==="/"))Q++;return Q+=2,!0}return!1},W=()=>{if(X!==0)return;let z=$.slice(Q).match(/^(const|let|var)\s*\{([^}]+)\}\s*=/);if(z){let j=z[2].split(",").map((H)=>{let F=H.trim().split(":");return F[F.length-1].trim()});for(let H of j)if(H&&/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(H)&&!Y.has(H))Z.push(H),Y.add(H);return}let U=$.slice(Q).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(U){let j=U[2];if(!Y.has(j))Z.push(j),Y.add(j);return}let B=$.slice(Q).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(B){let j=B[1];if(!Y.has(j))Z.push(j),Y.add(j);return}let _=$.slice(Q).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(_){let j=_[1];if(!Y.has(j))Z.push(j),Y.add(j)}};while(Q<J){if(q())continue;if($[Q]==="'"||$[Q]==='"'){G($[Q]);continue}if($[Q]==="`"){K();continue}if($[Q]==="{"){X++,Q++;continue}if($[Q]==="}"){X--,Q++;continue}if(X===0&&/[a-z]/i.test($[Q])&&(Q===0||/\s|[;{}()]/.test($[Q-1])))W();Q++}return Z}function AQ($){let Z=[],Y=0,X=0,Q=null;for(let J=0;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==="{")Y++;else if(G===")"||G==="]"||G==="}")Y--;else if(G===","&&Y===0)Z.push($.slice(X,J)),X=J+1}if(X<$.length)Z.push($.slice(X));return Z}function RQ($){let Z=0,Y=null;for(let X=0;X<$.length;X++){let Q=$[X];if(Y){if(Q==="\\"){X++;continue}if(Q===Y)Y=null;continue}if(Q==='"'||Q==="'"||Q==="`"){Y=Q;continue}if(Q==="("||Q==="["||Q==="{")Z++;else if(Q===")"||Q==="]"||Q==="}")Z--;else if(Q==="="&&Z===0){let J=$[X-1],G=$[X+1];if(J==="!"||J==="<"||J===">"||J==="=")continue;if(G==="="||G===">")continue;return X}}return-1}function TQ($,Z){try{let Y=/=\s*(?:withDefaults\s*\([\s\S]*?defineProps|defineProps)\b/.exec($);if(!Y)return;let X=Y.index-1;while(X>=0&&/\s/.test($[X]))X--;if($[X]!=="}")return;let Q=X,J=0,G=-1;for(;X>=0;X--){let q=$[X];if(q==="}")J++;else if(q==="{"){if(J--,J===0){G=X;break}}}if(G===-1)return;let K=$.slice(G+1,Q);for(let q of AQ(K)){let W=q.trim();if(!W||W.startsWith("..."))continue;let z=RQ(W);if(z===-1)continue;let U=W.slice(0,z).trim();if(!/^[A-Z_$][\w$]*$/i.test(U))continue;if(Z[U]!==void 0)continue;let B=W.slice(z+1).trim();if(!B)continue;try{let _=Object.keys(Z),j=Function(..._,`"use strict"; return (${B});`);Z[U]=j(..._.map((H)=>Z[H]))}catch{}}}catch{}}async function O9($,Z,Y,X,Q){let J=$.endsWith(".stx")?$.slice(0,-4):$,G=(F)=>F.split("-").map((L)=>L.charAt(0).toUpperCase()+L.slice(1)).join(""),K=(F)=>F.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),q=Y.__importedComponents;if(q){for(let F of[J,J.toLowerCase(),G(J),K(J)])if(q.has(F))return!0}let W=[...new Set([`${J}.stx`,`${G(J)}.stx`,`${K(J)}.stx`])],z=typeof Q.root==="string"?h.resolve(Q.root):void 0,U=z??h.dirname(X),B=[],_=(F)=>{if(F&&!B.includes(F))B.push(F)},j=Y.__originalFilePath;if(j)_(h.join(h.dirname(j),"components"));_(Z),_(h.join(h.dirname(X),"components")),_(Q.componentsDir);let H=Q._pluginComponentDirs;if(Array.isArray(H))for(let F of H)_(typeof F==="string"?F:null);if(z)_(h.resolve(z,"resources/views/components")),_(h.resolve(z,"resources/components")),_(h.resolve(z,"src/components")),_(h.resolve(z,"components"));if(J.startsWith("./")||J.startsWith("../"))return c(h.resolve(h.dirname(X),`${J}.stx`));for(let F of B){let L=h.isAbsolute(F)?F:h.resolve(U,F);for(let O of W)if(await c(h.join(L,O)))return!0}return!1}function MQ($){return $==="visible"||$==="idle"||$==="interaction"||$.startsWith("media:")}async function T1($,Z,Y,X,Q,J,G,K=new Set,q){let{extractVariables:W}=await Promise.resolve().then(() => (L5(),J$)),z=K??new Set;if(z.has($))return`[Circular component reference: ${$}]`;let U=new Set(z);U.add($);let B=typeof Z.client==="string"?Z.client.trim():"";if("client"in Z)delete Z.client;let _=B&&B!=="load"&&MQ(B)?B:"";try{let j=(y)=>y.split("-").map((v)=>v.charAt(0).toUpperCase()+v.slice(1)).join(""),H=(y)=>y.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),F=$.endsWith(".stx")?$.slice(0,-4):$,L=null,O=Q.__importedComponents;if(O){let y=[F,F.toLowerCase(),j(F),H(F)];for(let v of y)if(O.has(v)){L=O.get(v);break}}let V=[];if(!L){let y=[`${F}.stx`,`${j(F)}.stx`,`${H(F)}.stx`],v=[...new Set(y)],x=Q.__originalFilePath,g=[];if(x){let q0=h.join(h.dirname(x),"components");g.push(q0)}if(X)g.push(X);let u=h.join(h.dirname(J),"components");if(!g.includes(u))g.push(u);if(G.componentsDir&&G.componentsDir!==X&&!g.includes(G.componentsDir))g.push(G.componentsDir);let o=G._pluginComponentDirs;if(Array.isArray(o)){for(let q0 of o)if(typeof q0==="string"&&!g.includes(q0))g.push(q0)}let Q0=typeof G.root==="string"?h.resolve(G.root):void 0,D0=Q0??h.dirname(J),y0=[];if(Q0)y0.push(h.resolve(Q0,"resources/views/components")),y0.push(h.resolve(Q0,"resources/components")),y0.push(h.resolve(Q0,"src/components")),y0.push(h.resolve(Q0,"components"));y0.push(h.resolve(import.meta.dir,"components"));for(let q0 of y0)if(!g.includes(q0))g.push(q0);let O1=[...new Set(g.map((q0)=>{if(!q0)return q0;return h.isAbsolute(q0)?q0:h.resolve(D0,q0)}))];if(g.length=0,g.push(...O1),F.startsWith("./")||F.startsWith("../"))L=h.resolve(h.dirname(J),`${F}.stx`),V.push(L);else for(let q0 of g){if(!q0)continue;for(let F1 of v){let J5=h.join(q0,F1);if(V.push(J5),await c(J5)){L=J5;break}}if(L)break;if(!L)try{let F1=await import("fs");if(!F1.statSync(q0,{throwIfNoEntry:!1})?.isDirectory())continue;let x5=8,t=[{path:q0,depth:0}];while(t.length>0&&!L){let p0=t.pop();if(p0.depth>=x5)continue;let H4;try{H4=F1.readdirSync(p0.path,{withFileTypes:!0})}catch{continue}for(let f5 of H4){if(!f5.isDirectory())continue;if(f5.name==="node_modules"||f5.name.startsWith("."))continue;let t3=h.join(p0.path,f5.name);for(let vX of v){let O4=h.join(t3,vX);if(V.push(O4),await c(O4)){L=O4;break}}if(L)break;t.push({path:t3,depth:p0.depth+1})}}}catch{}if(L)break}}if(!L||!await c(L)){let y=V.length>0?`
5982
+ `)Q++;return!0}if($[Q]==="/"&&$[Q+1]==="*"){Q+=2;while(Q<J-1&&!($[Q]==="*"&&$[Q+1]==="/"))Q++;return Q+=2,!0}return!1},W=()=>{if(X!==0)return;let z=$.slice(Q).match(/^(const|let|var)\s*\{([^}]+)\}\s*=/);if(z){let j=z[2].split(",").map((H)=>{let F=H.trim().split(":");return F[F.length-1].trim()});for(let H of j)if(H&&/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(H)&&!Y.has(H))Z.push(H),Y.add(H);return}let U=$.slice(Q).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(U){let j=U[2];if(!Y.has(j))Z.push(j),Y.add(j);return}let B=$.slice(Q).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(B){let j=B[1];if(!Y.has(j))Z.push(j),Y.add(j);return}let _=$.slice(Q).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(_){let j=_[1];if(!Y.has(j))Z.push(j),Y.add(j)}};while(Q<J){if(q())continue;if($[Q]==="'"||$[Q]==='"'){G($[Q]);continue}if($[Q]==="`"){K();continue}if($[Q]==="{"){X++,Q++;continue}if($[Q]==="}"){X--,Q++;continue}if(X===0&&/[a-z]/i.test($[Q])&&(Q===0||/\s|[;{}()]/.test($[Q-1])))W();Q++}return Z}function AQ($){let Z=[],Y=0,X=0,Q=null;for(let J=0;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==="{")Y++;else if(G===")"||G==="]"||G==="}")Y--;else if(G===","&&Y===0)Z.push($.slice(X,J)),X=J+1}if(X<$.length)Z.push($.slice(X));return Z}function RQ($){let Z=0,Y=null;for(let X=0;X<$.length;X++){let Q=$[X];if(Y){if(Q==="\\"){X++;continue}if(Q===Y)Y=null;continue}if(Q==='"'||Q==="'"||Q==="`"){Y=Q;continue}if(Q==="("||Q==="["||Q==="{")Z++;else if(Q===")"||Q==="]"||Q==="}")Z--;else if(Q==="="&&Z===0){let J=$[X-1],G=$[X+1];if(J==="!"||J==="<"||J===">"||J==="=")continue;if(G==="="||G===">")continue;return X}}return-1}function TQ($,Z){try{let Y=/=\s*(?:withDefaults\s*\([\s\S]*?defineProps|defineProps)\b/.exec($);if(!Y)return;let X=Y.index-1;while(X>=0&&/\s/.test($[X]))X--;if($[X]!=="}")return;let Q=X,J=0,G=-1;for(;X>=0;X--){let q=$[X];if(q==="}")J++;else if(q==="{"){if(J--,J===0){G=X;break}}}if(G===-1)return;let K=$.slice(G+1,Q);for(let q of AQ(K)){let W=q.trim();if(!W||W.startsWith("..."))continue;let z=RQ(W);if(z===-1)continue;let U=W.slice(0,z).trim();if(!/^[A-Z_$][\w$]*$/i.test(U))continue;if(Z[U]!==void 0)continue;let B=W.slice(z+1).trim();if(!B)continue;try{let _=Object.keys(Z),j=Function(..._,`"use strict"; return (${B});`);Z[U]=j(..._.map((H)=>Z[H]))}catch{}}}catch{}}async function O9($,Z,Y,X,Q){let J=$.endsWith(".stx")?$.slice(0,-4):$,G=(F)=>F.split("-").map((L)=>L.charAt(0).toUpperCase()+L.slice(1)).join(""),K=(F)=>F.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),q=Y.__importedComponents;if(q){for(let F of[J,J.toLowerCase(),G(J),K(J)])if(q.has(F))return!0}let W=[...new Set([`${J}.stx`,`${G(J)}.stx`,`${K(J)}.stx`])],z=typeof Q.root==="string"?h.resolve(Q.root):void 0,U=z??h.dirname(X),B=[],_=(F)=>{if(F&&!B.includes(F))B.push(F)},j=Y.__originalFilePath;if(j)_(h.join(h.dirname(j),"components"));_(Z),_(h.join(h.dirname(X),"components")),_(Q.componentsDir);let H=Q._pluginComponentDirs;if(Array.isArray(H))for(let F of H)_(typeof F==="string"?F:null);if(z)_(h.resolve(z,"resources/views/components")),_(h.resolve(z,"resources/components")),_(h.resolve(z,"src/components")),_(h.resolve(z,"components"));if(J.startsWith("./")||J.startsWith("../"))return c(h.resolve(h.dirname(X),`${J}.stx`));for(let F of B){let L=h.isAbsolute(F)?F:h.resolve(U,F);for(let O of W)if(await c(h.join(L,O)))return!0}return!1}function MQ($){return $==="visible"||$==="idle"||$==="interaction"||$.startsWith("media:")}async function T1($,Z,Y,X,Q,J,G,K=new Set,q){let{extractVariables:W}=await Promise.resolve().then(() => (L5(),J$)),z=K??new Set;if(z.has($))return`[Circular component reference: ${$}]`;let U=new Set(z);U.add($);let B=typeof Z.client==="string"?Z.client.trim():"";if("client"in Z)delete Z.client;let _=B&&B!=="load"&&MQ(B)?B:"";try{let j=(S)=>S.split("-").map((v)=>v.charAt(0).toUpperCase()+v.slice(1)).join(""),H=(S)=>S.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),F=$.endsWith(".stx")?$.slice(0,-4):$,L=null,O=Q.__importedComponents;if(O){let S=[F,F.toLowerCase(),j(F),H(F)];for(let v of S)if(O.has(v)){L=O.get(v);break}}let V=[];if(!L){let S=[`${F}.stx`,`${j(F)}.stx`,`${H(F)}.stx`],v=[...new Set(S)],x=Q.__originalFilePath,g=[];if(x){let q0=h.join(h.dirname(x),"components");g.push(q0)}if(X)g.push(X);let u=h.join(h.dirname(J),"components");if(!g.includes(u))g.push(u);if(G.componentsDir&&G.componentsDir!==X&&!g.includes(G.componentsDir))g.push(G.componentsDir);let o=G._pluginComponentDirs;if(Array.isArray(o)){for(let q0 of o)if(typeof q0==="string"&&!g.includes(q0))g.push(q0)}let Q0=typeof G.root==="string"?h.resolve(G.root):void 0,R0=Q0??h.dirname(J),y0=[];if(Q0)y0.push(h.resolve(Q0,"resources/views/components")),y0.push(h.resolve(Q0,"resources/components")),y0.push(h.resolve(Q0,"src/components")),y0.push(h.resolve(Q0,"components"));y0.push(h.resolve(import.meta.dir,"components"));for(let q0 of y0)if(!g.includes(q0))g.push(q0);let O1=[...new Set(g.map((q0)=>{if(!q0)return q0;return h.isAbsolute(q0)?q0:h.resolve(R0,q0)}))];if(g.length=0,g.push(...O1),F.startsWith("./")||F.startsWith("../"))L=h.resolve(h.dirname(J),`${F}.stx`),V.push(L);else for(let q0 of g){if(!q0)continue;for(let F1 of v){let J5=h.join(q0,F1);if(V.push(J5),await c(J5)){L=J5;break}}if(L)break;if(!L)try{let F1=await import("fs");if(!F1.statSync(q0,{throwIfNoEntry:!1})?.isDirectory())continue;let x5=8,t=[{path:q0,depth:0}];while(t.length>0&&!L){let p0=t.pop();if(p0.depth>=x5)continue;let H4;try{H4=F1.readdirSync(p0.path,{withFileTypes:!0})}catch{continue}for(let f5 of H4){if(!f5.isDirectory())continue;if(f5.name==="node_modules"||f5.name.startsWith("."))continue;let t3=h.join(p0.path,f5.name);for(let vX of v){let O4=h.join(t3,vX);if(V.push(O4),await c(O4)){L=O4;break}}if(L)break;t.push({path:t3,depth:p0.depth+1})}}}catch{}if(L)break}}if(!L||!await c(L)){let S=V.length>0?`
5983
5983
  Searched paths:
5984
5984
  ${V.map((v)=>` - ${v}`).join(`
5985
- `)}`:"";return`[Error loading component: ENOENT: no such file or directory, open '${$}']${y}`}q.add(L);let w;if(h4.has(L))w=h4.get(L);else try{w=await Bun.file(L).text(),h4.set(L,w)}catch(y){return`[Error loading component: ${y instanceof Error?y.message:String(y)}]`}let N=new Set(["__originalFilePath","__importedComponents"]),A={};for(let[y,v]of Object.entries(Q))if(!y.startsWith("__")||N.has(y))A[y]=v;let R={...A,...Z,props:Z,slot:Y,__processedComponents:U,__sections:{}};TQ(w,R);let T=w,M=T.match(/<template\b(?![^>]*\b(?:id|x-for|x-if|@for|@if|:for|:if)\s*=)[^>]*>([\s\S]*?)<\/template>/i);if(M)T=M[1].trim();let I=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,D=[...w.matchAll(I)],E=[];for(let y of D){let v=y[1]||"",x=y[2]||"",g=v.includes("server");if(V1(v)&&x.trim())x=w1(x);if(g&&x)try{await W(x,R,L)}catch(o){}if(!g){let o=x.replace(/^\s*const\s*\{[^}]+\}\s*=\s*window\.stx\s*;?\s*\n?/gm,"");if(o.includes("{{")&&o.includes("}}"))o=l0(o,R,L);let Q0=v.replace(/\s*\bts\b/g,"").replace(/\s*\blang\s*=\s*["']?(ts|typescript)["']?/gi,"");E.push(`<script${Q0}>${o}</script>`)}}let C=w.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),b=C?C[1]:"",S=C?C[2]:"",P="",d=b&&/\bscoped\b/i.test(b);if(C)P=`<style${b}>${S}</style>`;let f=T;if(f=f.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),C)f=f.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");{let y=/@push\s*\(\s*['"]styles['"]\s*\)([\s\S]*?)@endpush/gi,v=[];if(f=f.replace(y,(x,g)=>{let u=g.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i);if(u)v.push(`<style${u[1]}>${u[2]}</style>`);return""}),f=f.replace(/@push\s*\(\s*['"][^'"]+['"]\s*\)[\s\S]*?@endpush/gi,""),v.length>0)P=`${P}${v.join(`
5986
- `)}`}if(Y&&f.includes("{{ text || slot }}"))f=f.replace(/\{\{\s*text\s*\|\|\s*slot\s*\}\}/g,()=>Y);let{extractSlotContent:m,applySlots:n}=await Promise.resolve().then(() => (j9(),_9)),{defaultSlot:A0,namedSlots:r0}=m(Y);f=await n(f,A0||Y,r0,R);for(let[y,v]of Object.entries(R))if(typeof v==="string"){if(v.includes("<")&&v.includes(">")||v.includes("&lt;")||v.includes("&quot;")){let x=y4(v);R[y]=x}}let S0=E.some((y)=>/\b(state|derived|effect)\s*(?:<[^<>()]*>)?\s*\(/.test(y)),I0={...G,componentsDir:h.dirname(L),skipSignalsRuntime:!0,skipEventDirectives:S0,defaultLayout:void 0};R.__stxProcessingDepth=(Q.__stxProcessingDepth||0)+1;let e=await B0(f,R,L,I0,q),j0=`stx_${F.replace(/[^a-zA-Z0-9]/g,"_")}_${++VQ}_${Math.random().toString(36).slice(2,8)}`,z0=e;if(S0){let y="";if(Object.keys(Z).length>0)try{y=` data-stx-props="${H9(JSON.stringify(Z))}"`}catch{}let v=_?` stx-hydrate="${H9(_)}"`:"";if(z0=`<div data-stx-scope="${j0}"${y}${v}>${e}</div>`,z0=E.map((g)=>{let u=g.match(/<script([^>]*)>([\s\S]*)<\/script>/i);if(!u)return g;let[,o,Q0]=u,D0=t0(Q0),y0=`
5985
+ `)}`:"";return`[Error loading component: ENOENT: no such file or directory, open '${$}']${S}`}q.add(L);let w;if(h4.has(L))w=h4.get(L);else try{w=await Bun.file(L).text(),h4.set(L,w)}catch(S){return`[Error loading component: ${S instanceof Error?S.message:String(S)}]`}let N=new Set(["__originalFilePath","__importedComponents"]),A={};for(let[S,v]of Object.entries(Q))if(!S.startsWith("__")||N.has(S))A[S]=v;let R={...A,...Z,props:Z,slot:Y,__processedComponents:U,__sections:{}};TQ(w,R);let T=w,M=T.match(/<template\b(?![^>]*\b(?:id|x-for|x-if|@for|@if|:for|:if)\s*=)[^>]*>([\s\S]*?)<\/template>/i);if(M)T=M[1].trim();let I=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,D=[...w.matchAll(I)],E=[];for(let S of D){let v=S[1]||"",x=S[2]||"",g=v.includes("server");if(V1(v)&&x.trim())x=w1(x);if(g&&x)try{await W(x,R,L)}catch(o){}if(!g){let o=x.replace(/^\s*const\s*\{[^}]+\}\s*=\s*window\.stx\s*;?\s*\n?/gm,"");if(o.includes("{{")&&o.includes("}}"))o=l0(o,R,L);let Q0=v.replace(/\s*\bts\b/g,"").replace(/\s*\blang\s*=\s*["']?(ts|typescript)["']?/gi,"");E.push(`<script${Q0}>${o}</script>`)}}let C=w.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),b=C?C[1]:"",y=C?C[2]:"",P="",d=b&&/\bscoped\b/i.test(b);if(C)P=`<style${b}>${y}</style>`;let f=T;if(f=f.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),C)f=f.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");{let S=/@push\s*\(\s*['"]styles['"]\s*\)([\s\S]*?)@endpush/gi,v=[];if(f=f.replace(S,(x,g)=>{let u=g.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i);if(u)v.push(`<style${u[1]}>${u[2]}</style>`);return""}),f=f.replace(/@push\s*\(\s*['"][^'"]+['"]\s*\)[\s\S]*?@endpush/gi,""),v.length>0)P=`${P}${v.join(`
5986
+ `)}`}if(Y&&f.includes("{{ text || slot }}"))f=f.replace(/\{\{\s*text\s*\|\|\s*slot\s*\}\}/g,()=>Y);let{extractSlotContent:m,applySlots:n}=await Promise.resolve().then(() => (j9(),_9)),{defaultSlot:A0,namedSlots:r0}=m(Y);f=await n(f,A0||Y,r0,R);for(let[S,v]of Object.entries(R))if(typeof v==="string"){if(v.includes("<")&&v.includes(">")||v.includes("&lt;")||v.includes("&quot;")){let x=y4(v);R[S]=x}}let S0=E.some((S)=>/\b(state|derived|effect)\s*(?:<[^<>()]*>)?\s*\(/.test(S)),D0={...G,componentsDir:h.dirname(L),skipSignalsRuntime:!0,skipEventDirectives:S0,defaultLayout:void 0};R.__stxProcessingDepth=(Q.__stxProcessingDepth||0)+1;let e=await B0(f,R,L,D0,q),j0=`stx_${F.replace(/[^a-zA-Z0-9]/g,"_")}_${++VQ}_${Math.random().toString(36).slice(2,8)}`,z0=e;if(S0){let S="";if(Object.keys(Z).length>0)try{S=` data-stx-props="${H9(JSON.stringify(Z))}"`}catch{}let v=_?` stx-hydrate="${H9(_)}"`:"";if(z0=`<div data-stx-scope="${j0}"${S}${v}>${e}</div>`,z0=E.map((g)=>{let u=g.match(/<script([^>]*)>([\s\S]*)<\/script>/i);if(!u)return g;let[,o,Q0]=u,R0=t0(Q0),y0=`
5987
5987
  (function() {
5988
5988
  const { state, derived, effect, batch, defineEmits, defineExpose, defineSlots, defineProps, withDefaults, useStore, useFetch, useRef, useQuery, useMutation, useOptimistic, useDebounce, useDebouncedValue, useThrottle, useInterval, useTimeout, useToggle, useCounter, useClickOutside, useFocus, useAsync, useLocalStorage, useSessionStorage, useCookie, useReactiveProp, useEventListener, useWebSocket, useColorMode, useDark, useHead, useSeoMeta, definePageMeta, useRoute, useSearchParams, navigate, goBack, goForward, provide, inject, ref, reactive, computed, watch, watchEffect, nextTick } = window.stx;
5989
5989
  const __scope = window.stx._scopes = window.stx._scopes || {};
@@ -5995,12 +5995,12 @@ ${V.map((v)=>` - ${v}`).join(`
5995
5995
  const onMount = (fn) => __scopeVars.__mountCallbacks.push(fn);
5996
5996
  const onDestroy = (fn) => __scopeVars.__destroyCallbacks.push(fn);
5997
5997
 
5998
- ${D0}
5998
+ ${R0}
5999
5999
 
6000
6000
  // Register all defined signals and functions in this scope
6001
6001
  const __localVars = {};
6002
6002
  try {
6003
- ${NQ(D0).map((O1)=>`if (typeof ${O1} !== 'undefined') __localVars['${O1}'] = ${O1};`).join(`
6003
+ ${NQ(R0).map((O1)=>`if (typeof ${O1} !== 'undefined') __localVars['${O1}'] = ${O1};`).join(`
6004
6004
  `)}
6005
6005
  }
6006
6006
  catch (e) {}
@@ -6009,9 +6009,9 @@ catch (e) {}
6009
6009
  `)+`
6010
6010
  `+z0,P)z0+=`
6011
6011
  `+P}else{if(P)z0+=`
6012
- `+P;if(E.length>0){let y=R.__stx_event_bindings||[],v=q5(R),x=await Promise.all(E.map(async(g)=>{let u=g.match(/<script\b[^>]*>([\s\S]*?)<\/script>/);if(!u)return g;return await z5(u[1],{eventBindings:y,templateContent:z0,filePath:L,projectRoot:process.cwd(),serverData:v})}));z0+=`
6012
+ `+P;if(E.length>0){let S=R.__stx_event_bindings||[],v=q5(R),x=await Promise.all(E.map(async(g)=>{let u=g.match(/<script\b[^>]*>([\s\S]*?)<\/script>/);if(!u)return g;return await z5(u[1],{eventBindings:S,templateContent:z0,filePath:L,projectRoot:process.cwd(),serverData:v})}));z0+=`
6013
6013
  `+x.join(`
6014
- `),R.__stx_event_bindings=[]}}if(d){let y=Z$(z0,L);if(y.hasScoped)z0=y.html}return z0}catch(j){return`[Error processing component: ${j instanceof Error?j.message:String(j)}]`}finally{z.delete($)}}async function c($){return Bun.file($).exists()}function d4($,Z){let Y=h.resolve(Z),X=h.resolve($),Q=Y.endsWith(h.sep)?Y:Y+h.sep;if(X===Y||X.startsWith(Q))return X;return null}async function m4($,Z,Y,X){let Q=await IQ($,Z,Y,X);if(Q===null)return null;let J=d4(Q,process.cwd());if(J)return J;let G=[Y.root,Y.layoutsDir,Y.componentsDir,Y.partialsDir,Y.pagesDir].filter((K)=>typeof K==="string"&&K.length>0);for(let K of G){let q=h.isAbsolute(K)?K:h.resolve(process.cwd(),K);if(d4(Q,q))return h.resolve(Q)}return console.warn(`[stx] rejected resolved template path that escapes project root: ${Q} (template: ${$}, from: ${Z})`),null}async function IQ($,Z,Y,X){if(Y.debug)console.log(`Resolving template path: ${$} from ${Z}`);let Q=h.dirname(Z),J=process.cwd();if($.startsWith("/")){let B=h.join(J,$),_=d4(B,J);if(!_)return console.warn(`[stx] rejected template path that escapes project root: ${$} (from ${Z})`),null;if(Y.debug)console.log(`Checking absolute path: ${_}`);if(await c(_)&&X)X.add(_);return _}let G=h.join(Q,$);if(await c(G)){if(Y.debug)console.log(`Found direct path: ${G}`);if(X)X.add(G);return G}if(!$.endsWith(".stx")&&!$.endsWith(".jsx")&&!$.endsWith(".tsx"))for(let B of[".stx",".tsx",".jsx"]){let _=`${G}${B}`;if(await c(_)){if(Y.debug)console.log(`Found direct path with extension: ${_}`);if(X)X.add(_);return _}}let K="",q=h.resolve(Q),W=process.cwd();for(let B=0;B<10;B++){let _=h.join(q,"layouts"),j=!1;try{j=LQ.statSync(_,{throwIfNoEntry:!1})?.isDirectory()??!1}catch{}if(j){K=_;break}let H=h.dirname(q);if(H===q||H.length<W.length)break;q=H}if(K){let B=$.startsWith("layouts/")?$.slice(8):$,_=h.join(K,B);if(await c(_)){if(Y.debug)console.log(`Found in current layouts dir: ${_}`);if(X)X.add(_);return _}if(!B.endsWith(".stx")){let j=`${_}.stx`;if(await c(j)){if(Y.debug)console.log(`Found in current layouts dir with extension: ${j}`);if(X)X.add(j);return j}}}if(Y.layoutsDir){let B=h.isAbsolute(Y.layoutsDir)?Y.layoutsDir:h.resolve(process.cwd(),Y.layoutsDir),_=$.startsWith("layouts/")?$.slice(8):$,j=h.join(B,_);if(await c(j)){if(Y.debug)console.log(`Found in options.layoutsDir: ${j}`);if(X)X.add(j);return j}if(!$.endsWith(".stx")){let H=`${j}.stx`;if(await c(H)){if(Y.debug)console.log(`Found in options.layoutsDir with extension: ${H}`);if(X)X.add(H);return H}}}if($.startsWith("layouts/")||$.includes("/layouts/")){let B=$.split("layouts/"),_=h.join(Y.partialsDir||Q,"layouts",B[1]);if(await c(_)){if(Y.debug)console.log(`Found in layouts path: ${_}`);if(X)X.add(_);return _}if(!_.endsWith(".stx")){let j=`${_}.stx`;if(await c(j)){if(Y.debug)console.log(`Found in layouts path with extension: ${j}`);if(X)X.add(j);return j}}}if(Y.partialsDir){if(K=h.join(Y.partialsDir,"layouts"),await c(K)){let B=h.join(K,$);if(await c(B)){if(Y.debug)console.log(`Found in partials layouts dir: ${B}`);if(X)X.add(B);return B}if(!$.endsWith(".stx")){let _=`${B}.stx`;if(await c(_)){if(Y.debug)console.log(`Found in partials layouts dir with extension: ${_}`);if(X)X.add(_);return _}}}}let z=Y.partialsDir||h.join(process.cwd(),"views"),U=h.join(z,$);if(await c(U)){if(Y.debug)console.log(`Found in views path: ${U}`);if(X)X.add(U);return U}if(!$.endsWith(".stx")){let B=`${U}.stx`;if(await c(B)){if(Y.debug)console.log(`Found in views path with extension: ${B}`);if(X)X.add(B);return B}}if(Q.includes("temp")){let B=h.join(h.dirname(Q),"layouts",$);if(await c(B)){if(Y.debug)console.log(`Found in temp layouts dir: ${B}`);if(X)X.add(B);return B}if(!$.endsWith(".stx")){let _=`${B}.stx`;if(await c(_)){if(Y.debug)console.log(`Found in temp layouts dir with extension: ${_}`);if(X)X.add(_);return _}}}if(Y.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 F9($,Z,Y){let X=0,Q="",J="";try{if(typeof Z==="number"&&Z>=0){let G=$.split(`
6014
+ `),R.__stx_event_bindings=[]}}if(d){let S=Z$(z0,L);if(S.hasScoped)z0=S.html}return z0}catch(j){return`[Error processing component: ${j instanceof Error?j.message:String(j)}]`}finally{z.delete($)}}async function c($){return Bun.file($).exists()}function d4($,Z){let Y=h.resolve(Z),X=h.resolve($),Q=Y.endsWith(h.sep)?Y:Y+h.sep;if(X===Y||X.startsWith(Q))return X;return null}async function m4($,Z,Y,X){let Q=await IQ($,Z,Y,X);if(Q===null)return null;let J=d4(Q,process.cwd());if(J)return J;let G=[Y.root,Y.layoutsDir,Y.componentsDir,Y.partialsDir,Y.pagesDir].filter((K)=>typeof K==="string"&&K.length>0);for(let K of G){let q=h.isAbsolute(K)?K:h.resolve(process.cwd(),K);if(d4(Q,q))return h.resolve(Q)}return console.warn(`[stx] rejected resolved template path that escapes project root: ${Q} (template: ${$}, from: ${Z})`),null}async function IQ($,Z,Y,X){if(Y.debug)console.log(`Resolving template path: ${$} from ${Z}`);let Q=h.dirname(Z),J=process.cwd();if($.startsWith("/")){let B=h.join(J,$),_=d4(B,J);if(!_)return console.warn(`[stx] rejected template path that escapes project root: ${$} (from ${Z})`),null;if(Y.debug)console.log(`Checking absolute path: ${_}`);if(await c(_)&&X)X.add(_);return _}let G=h.join(Q,$);if(await c(G)){if(Y.debug)console.log(`Found direct path: ${G}`);if(X)X.add(G);return G}if(!$.endsWith(".stx")&&!$.endsWith(".jsx")&&!$.endsWith(".tsx"))for(let B of[".stx",".tsx",".jsx"]){let _=`${G}${B}`;if(await c(_)){if(Y.debug)console.log(`Found direct path with extension: ${_}`);if(X)X.add(_);return _}}let K="",q=h.resolve(Q),W=process.cwd();for(let B=0;B<10;B++){let _=h.join(q,"layouts"),j=!1;try{j=LQ.statSync(_,{throwIfNoEntry:!1})?.isDirectory()??!1}catch{}if(j){K=_;break}let H=h.dirname(q);if(H===q||H.length<W.length)break;q=H}if(K){let B=$.startsWith("layouts/")?$.slice(8):$,_=h.join(K,B);if(await c(_)){if(Y.debug)console.log(`Found in current layouts dir: ${_}`);if(X)X.add(_);return _}if(!B.endsWith(".stx")){let j=`${_}.stx`;if(await c(j)){if(Y.debug)console.log(`Found in current layouts dir with extension: ${j}`);if(X)X.add(j);return j}}}if(Y.layoutsDir){let B=h.isAbsolute(Y.layoutsDir)?Y.layoutsDir:h.resolve(process.cwd(),Y.layoutsDir),_=$.startsWith("layouts/")?$.slice(8):$,j=h.join(B,_);if(await c(j)){if(Y.debug)console.log(`Found in options.layoutsDir: ${j}`);if(X)X.add(j);return j}if(!$.endsWith(".stx")){let H=`${j}.stx`;if(await c(H)){if(Y.debug)console.log(`Found in options.layoutsDir with extension: ${H}`);if(X)X.add(H);return H}}}if($.startsWith("layouts/")||$.includes("/layouts/")){let B=$.split("layouts/"),_=h.join(Y.partialsDir||Q,"layouts",B[1]);if(await c(_)){if(Y.debug)console.log(`Found in layouts path: ${_}`);if(X)X.add(_);return _}if(!_.endsWith(".stx")){let j=`${_}.stx`;if(await c(j)){if(Y.debug)console.log(`Found in layouts path with extension: ${j}`);if(X)X.add(j);return j}}}if(Y.partialsDir){if(K=h.join(Y.partialsDir,"layouts"),await c(K)){let B=h.join(K,$);if(await c(B)){if(Y.debug)console.log(`Found in partials layouts dir: ${B}`);if(X)X.add(B);return B}if(!$.endsWith(".stx")){let _=`${B}.stx`;if(await c(_)){if(Y.debug)console.log(`Found in partials layouts dir with extension: ${_}`);if(X)X.add(_);return _}}}}let z=Y.partialsDir||h.join(process.cwd(),"views"),U=h.join(z,$);if(await c(U)){if(Y.debug)console.log(`Found in views path: ${U}`);if(X)X.add(U);return U}if(!$.endsWith(".stx")){let B=`${U}.stx`;if(await c(B)){if(Y.debug)console.log(`Found in views path with extension: ${B}`);if(X)X.add(B);return B}}if(Q.includes("temp")){let B=h.join(h.dirname(Q),"layouts",$);if(await c(B)){if(Y.debug)console.log(`Found in temp layouts dir: ${B}`);if(X)X.add(B);return B}if(!$.endsWith(".stx")){let _=`${B}.stx`;if(await c(_)){if(Y.debug)console.log(`Found in temp layouts dir with extension: ${_}`);if(X)X.add(_);return _}}}if(Y.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 F9($,Z,Y){let X=0,Q="",J="";try{if(typeof Z==="number"&&Z>=0){let G=$.split(`
6015
6015
  `),K=0;for(let q=0;q<G.length;q++)if(K+=G[q].length+1,K>=Z){X=q+1,Q=G[q].trim();let W=Math.max(0,q-2),z=Math.min(G.length,q+3);J=G.slice(W,z).map((U,B)=>{let _=W+B+1;return`${_===X?"> ":" "}${_}: ${U}`}).join(`
6016
6016
  `);break}}else if(Y){let G=$.indexOf(Y);if(G>=0)return F9($,G)}}catch{}return{lineNumber:X,lineContent:Q,context:J}}function J0($,Z,Y,X,Q,J){let{lineNumber:G,context:K}=F9(X,Q,J),q=Y.split("/").pop(),W=0;if(typeof Q==="number"&&Q>=0&&X){let U=X.lastIndexOf(`
6017
6017
  `,Math.max(0,Q-1));W=Q-(U+1)+1}let z="";if(G>0)z+=`
@@ -6073,8 +6073,8 @@ ${r.dim}${K}${r.reset}
6073
6073
  filter: blur(0);
6074
6074
  transform: scale(1);
6075
6075
  }
6076
- `.trim();o4=new Map});import{createHash as M9}from"crypto";import{readFile as gQ,stat as I9}from"fs/promises";async function R0($){try{let Z=await gQ($);return M9("sha256").update(Z).digest("hex").slice(0,16)}catch{return""}}function T9($){return M9("sha256").update($).digest("hex").slice(0,16)}function K$($,Z){let Y=JSON.stringify(Z,Object.keys(Z).sort());return`${T9($)}-${T9(Y)}`}async function r4($){try{return(await I9($)).mtimeMs}catch{return 0}}async function w0($){try{return await I9($),!0}catch{return!1}}var M1=()=>{};import{mkdir as hQ,readFile as dQ,writeFile as mQ,readdir as x_,rm as uQ,stat as f_}from"fs/promises";import{join as E9,dirname as pQ}from"path";async function cQ($){try{await hQ($,{recursive:!0})}catch{}}function k9($,Z,Y){return E9($,Y,`${Z}.json`)}async function D9($,Z,Y){if((Date.now()-$.createdAt)/86400000>Y)return!1;if(await r4(Z)!==$.srcMtime)return!1;return!0}async function q$($,Z,Y,X=a4){if(!X.enabled)return null;let Q=K$($,Z),J=l1.get(Q);if(J){if(await D9(J,$,X.maxAge))return J.lastAccessedAt=Date.now(),J.data;l1.delete(Q)}let G=k9(X.directory,Q,Y);if(await w0(G))try{let K=await dQ(G,"utf-8"),q=JSON.parse(K);if(await D9(q,$,X.maxAge))return q.lastAccessedAt=Date.now(),l1.set(Q,q),q.data}catch{}return null}async function z$($,Z,Y,X,Q=a4){if(!Q.enabled)return;let J=K$($,Z),G=await R0($),K=await r4($),q={key:J,src:$,srcHash:G,srcMtime:K,optionsHash:K$("",Z),data:Y,createdAt:Date.now(),lastAccessedAt:Date.now()};l1.set(J,q);let W=k9(Q.directory,J,X);try{await cQ(pQ(W)),await mQ(W,JSON.stringify(q,null,2))}catch(z){console.warn(`[stx-media] Failed to write cache: ${z}`)}}async function W$($,Z=a4){if($==="all")l1.clear();else l1.clear();let Y=$==="all"?["image","video"]:[$];for(let X of Y){let Q=E9(Z.directory,X);try{await uQ(Q,{recursive:!0,force:!0})}catch{}}}var l1,a4;var t4=k(()=>{M1();l1=new Map,a4={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}});class B${config;constructor($={}){this.config={...lQ,...$}}async get($,Z){return q$($,Z,"image",this.config)}async set($,Z,Y){return z$($,Z,Y,"image",this.config)}async clear(){return W$("image",this.config)}updateConfig($){this.config={...this.config,...$}}}function e4($){if(!U$)U$=new B$($);else if($)U$.updateConfig($);return U$}async function _$($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return e4(X).get($,Z)}async function j$($,Z,Y,X){let Q=X?{directory:`${X.outputDir}/../.cache`}:{};return e4(Q).set($,Z,Y)}async function b9(){return e4().clear()}var lQ,U$=null;var $7=k(()=>{t4();lQ={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500,cacheVariants:!0,cachePlaceholders:!0}});import{resolve as iQ,basename as nQ,extname as oQ,join as sQ}from"path";import{mkdir as rQ}from"fs/promises";async function Z7(){try{return await import("ts-images")}catch{return null}}function S9($){switch($){case"quality":return{jpeg:{quality:90,mozjpeg:!0,progressive:!0},png:{compressionLevel:6,palette:!1},webp:{quality:90,effort:6,smartSubsample:!0},avif:{quality:85,effort:6}};case"performance":return{jpeg:{quality:70,mozjpeg:!0,progressive:!0},png:{compressionLevel:9,palette:!0},webp:{quality:70,effort:4,smartSubsample:!0},avif:{quality:60,effort:2}};case"web":default:return{jpeg:{quality:82,mozjpeg:!0,progressive:!0},png:{compressionLevel:8,palette:!1},webp:{quality:82,effort:5,smartSubsample:!0},avif:{quality:75,effort:4}}}}function aQ($,Z){let Y=Z?S9(Z):S9("web"),X=$.formatQuality||{};return{jpeg:{...Y.jpeg,...X.jpeg},png:{...Y.png,...X.png},webp:{...Y.webp,...X.webp},avif:{...Y.avif,...X.avif}}}async function y9($,Z,Y){let X=await Z7();if(!X)return console.warn("[stx-media] ts-images not installed, skipping optimization"),{src:$,processed:!1};let Q=await _$($,Z,Y);if(Q)return Q;try{let J=iQ($);if(!await w0(J))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let G=aQ(Y,Z.preset),K=Y.outputDir||"dist/images",q=Y.baseUrl||"/images";await rQ(K,{recursive:!0});let W=await R0(J),z=nQ($,oQ($)),U=Z.outputFormat?[Z.outputFormat]:Y.defaultFormats||["avif","webp","jpeg"],B={src:$,processed:!0,variants:[],hash:W},_=null;if(Z.transformations&&Z.transformations.length>0)_=await Y7(J,Z.transformations,X);for(let j of U){let H=G[j]||{},F=`${z}-${W}.${j}`,L=sQ(K,F);try{let O=await X.optimizeImage({input:_||J,output:L,format:j,quality:H.quality,progressive:H.progressive});if(O){if(B.variants.push({path:L,url:`${q}/${F}`,width:O.width||0,height:O.height||0,format:j,size:O.outputSize||0}),!B.originalWidth&&O.width)B.originalWidth=O.width,B.originalHeight=O.height}}catch(O){B.errors=B.errors||[],B.errors.push(`Failed to optimize ${j}: ${O}`)}}if(Z.embedThumbhash||Z.placeholder==="thumbhash")try{let j=await X.generateThumbHash(J);B.placeholder=j.dataUrl}catch(j){B.errors=B.errors||[],B.errors.push(`Failed to generate thumbhash: ${j}`)}if(Z.useDominantColor)try{let j=await X.generatePlaceholder(J,{strategy:"dominant-color"});B.dominantColor=j.dominantColor}catch(j){B.errors=B.errors||[],B.errors.push(`Failed to extract dominant color: ${j}`)}return await j$($,Z,B,Y),B}catch(J){return{src:$,processed:!1,errors:[`Processing failed: ${J}`]}}}async function C9($,Z,Y,X){let Q=await Z7();if(!Q)return{success:!1,error:"ts-images not installed"};try{return{success:!0,size:(await Q.optimizeImage({input:$,output:X,format:Z,quality:Y}))?.outputSize}}catch(J){return{success:!1,error:String(J)}}}async function Y7($,Z,Y){let X=Y||await Z7();if(!X)return console.warn("[stx-media] ts-images not installed, skipping transformations"),null;try{let Q=await X.decode($);for(let J of Z){let G=J.options||{};switch(J.type){case"resize":if(G.width||G.height)Q=await X.resize(Q,{width:G.width,height:G.height,fit:G.fit});break;case"blur":if(G.sigma!==void 0)Q=await X.blur(Q,G.sigma);break;case"sharpen":if(G.amount!==void 0)Q=await X.sharpen(Q,G.amount);break;case"grayscale":Q=await X.grayscale(Q);break;case"rotate":if(G.angle!==void 0)Q=await X.rotate(Q,G.angle);break;case"flip":Q=await X.flip(Q);break;case"flop":Q=await X.flop(Q);break;case"brightness":if(G.value!==void 0)Q=await X.brightness(Q,G.value);break;case"contrast":if(G.value!==void 0)Q=await X.contrast(Q,G.value);break;case"saturation":if(G.value!==void 0)Q=await X.saturation(Q,G.value);break}}return await X.encode(Q,"png")}catch(Q){return console.error(`[stx-media] Transformation failed: ${Q}`),null}}var P9=k(()=>{M1();$7()});import{resolve as tQ,basename as eQ,extname as $G,join as ZG}from"path";import{mkdir as YG}from"fs/promises";async function XG(){try{return await import("ts-images")}catch{return null}}async function v9($,Z,Y){let X=await XG();if(!X)return console.warn("[stx-media] ts-images not installed, skipping responsive generation"),null;let Q=tQ($);if(!await w0(Q))return console.warn(`[stx-media] Source file not found: ${$}`),null;try{let J=Z.responsiveWidths||Y.breakpoints||JG,G=Z.formats||Y.defaultFormats||["avif","webp","jpeg"],K=Y.outputDir||"dist/images",q=Y.baseUrl||"/images";await YG(K,{recursive:!0});let W=await R0(Q),z=eQ($,$G($)),U=Y.formatQuality||{jpeg:{quality:82},png:{quality:80},webp:{quality:82},avif:{quality:75}},B={src:$,byFormat:{},srcsets:{}};for(let j of G){B.byFormat[j]=[];let H=[];for(let F of J){let L=`${z}-${F}w-${W}.${j}`,O=ZG(K,L),V=`${q}/${L}`;try{let w=U[j]?.quality||80;if(await w0(O)){B.byFormat[j].push({path:O,url:V,width:F,height:0,format:j,size:0}),H.push(`${V} ${F}w`);continue}let N=await X.processImage({input:Q,output:O,format:j,quality:w,resize:{width:F}});if(N)B.byFormat[j].push({path:O,url:V,width:F,height:N.height||Math.round(F*(N.height||1)/(N.width||1)),format:j,size:N.outputSize||0}),H.push(`${V} ${F}w`)}catch(w){console.warn(`[stx-media] Failed to generate ${j} at ${F}w: ${w}`)}}B.srcsets[j]=H.join(", ")}let _=Z.placeholder||Y.placeholderStrategy||"thumbhash";if(_!=="none")try{if(_==="thumbhash"){let j=await X.generateThumbHash(Q);B.placeholder={dataURL:j.dataUrl,width:j.width||32,height:j.height||32,strategy:"thumbhash"}}else{let j=await X.generatePlaceholder(Q,{strategy:_,width:20});B.placeholder={dataURL:j.dataURL,width:j.width,height:j.height,strategy:_}}}catch(j){console.warn(`[stx-media] Failed to generate placeholder: ${j}`)}return B.sizes=Z.sizes||QG(J),B}catch(J){return console.error(`[stx-media] Responsive generation failed: ${J}`),null}}function QG($){let Z=[...$].sort((X,Q)=>X-Q),Y=[];for(let X=0;X<Z.length-1;X++){let Q=Z[X];Y.push(`(max-width: ${Q}px) ${Q}px`)}return Y.push(`${Z[Z.length-1]}px`),Y.join(", ")}function x9($,Z="width"){if(!$||$.length===0)return"";if(Z==="dpr")return $.filter((Y)=>Y.dpr).map((Y)=>`${Y.url} ${Y.dpr}x`).join(", ");return $.map((Y)=>`${Y.url} ${Y.width}w`).join(", ")}var JG;var f9=k(()=>{M1();JG=[320,480,640,768,1024,1280,1536,1920]});var g9={};s(g9,{setCachedImageResult:()=>j$,processImage:()=>y9,optimizeImage:()=>C9,getCachedImageResult:()=>_$,generateSrcset:()=>x9,generateResponsiveVariants:()=>v9,clearImageCache:()=>b9,applyTransformations:()=>Y7,ImageProcessorCache:()=>B$});var h9=k(()=>{P9();f9();$7()});async function GG(){try{return await Promise.resolve().then(() => (h9(),g9))}catch($){if(!d9)console.warn("[stx-media] Image processor not available, some features disabled:",$),d9=!0;return null}}async function H$($,Z={}){let Y=Z,X=$;if(X.process&&!X.skipOptimization){if(Y.tsImagesConfig?.enabled&&!Y.isDev)return WG(X,Y)}if(Y.processedResult?.processed)return G7($,Y.processedResult,Z);if(Y.responsiveVariants)return c9($,Y.responsiveVariants,Z);let{src:Q,alt:J,width:G,height:K,sizes:q,widths:W=c1,dpr:z,formats:U=V5,quality:B=X7,params:_={},placeholder:j="none",placeholderOptions:H={},lazy:F=!0,priority:L=!1,loading:O=L?"eager":F$,decoding:V=O$,fetchpriority:w,objectFit:N,objectPosition:A,crossorigin:R,referrerpolicy:T}=$,M=$.class,I=$.style,D=$.id,E=$.data||{},{isDev:C=!1,baseUrl:b=""}=Z;if(C&&!Z.optimize)return zG($);let S,P,d=D||`stx-img-${Math.random().toString(36).slice(2,8)}`;if(j!=="none"&&!L)try{S=await A9(Q,{strategy:j,...H}),P=N9(d,S,H)}catch{}let f=z!==void 0&&G!==void 0,m;if(f)m=qG($,d,S,Z);else m=await KG($,d,S,Z);let n;if(L){let S0=U.includes("webp")?"webp":U[0],I0=c4(Q,W,{..._,q:B},S0),e=typeof q==="object"?l4(q):q||"100vw";n=`<link rel="preload" as="image" imagesrcset="${I0}" imagesizes="${e}" />`}let A0=[];if(!m9&&j!=="none")A0.push(s4),m9=!0;if(P)A0.push(P);let r0=F?p9(d):void 0;return{html:m,preloadLink:n,css:A0.length>0?A0.join(`
6077
- `):void 0,script:r0}}async function KG($,Z,Y,X){let{src:Q,alt:J,width:G,height:K,sizes:q,widths:W=c1,formats:z=V5,quality:U=X7,params:B={},lazy:_=!0,priority:j=!1,loading:H=j?"eager":F$,decoding:F=O$,fetchpriority:L,objectFit:O,objectPosition:V,crossorigin:w,referrerpolicy:N}=$,A=$.class,R=$.style,T=$.data||{},M=typeof q==="object"?l4(q):q||"100vw",I=[];for(let C of z){let b=c4(Q,W,{...B,q:U},C),S=i4(C);if(_&&!j)I.push(` <source type="${S}" data-srcset="${b}" data-sizes="${M}" />`);else I.push(` <source type="${S}" srcset="${b}" sizes="${M}" />`)}let D=J7({src:w5(Q,{...B,q:U}),alt:J,width:G,height:K,loading:j?void 0:H,decoding:F,fetchpriority:j?"high":L,objectFit:O,objectPosition:V,crossorigin:w,referrerpolicy:N,className:u9(A,Y),style:Q7(R,O,V,Y),lazy:_&&!j,data:T}),E;if(Y){let C=`background-image: url('${Y.dataURL}'); background-size: cover; background-position: center;`;E=`<div id="${Z}" class="stx-img-placeholder" style="${C}">
6076
+ `.trim();o4=new Map});import{createHash as M9}from"crypto";import{readFile as gQ,stat as I9}from"fs/promises";async function T0($){try{let Z=await gQ($);return M9("sha256").update(Z).digest("hex").slice(0,16)}catch{return""}}function T9($){return M9("sha256").update($).digest("hex").slice(0,16)}function K$($,Z){let Y=JSON.stringify(Z,Object.keys(Z).sort());return`${T9($)}-${T9(Y)}`}async function r4($){try{return(await I9($)).mtimeMs}catch{return 0}}async function w0($){try{return await I9($),!0}catch{return!1}}var M1=()=>{};import{mkdir as hQ,readFile as dQ,writeFile as mQ,readdir as x_,rm as uQ,stat as f_}from"fs/promises";import{join as E9,dirname as pQ}from"path";async function cQ($){try{await hQ($,{recursive:!0})}catch{}}function k9($,Z,Y){return E9($,Y,`${Z}.json`)}async function D9($,Z,Y){if((Date.now()-$.createdAt)/86400000>Y)return!1;if(await r4(Z)!==$.srcMtime)return!1;return!0}async function q$($,Z,Y,X=a4){if(!X.enabled)return null;let Q=K$($,Z),J=l1.get(Q);if(J){if(await D9(J,$,X.maxAge))return J.lastAccessedAt=Date.now(),J.data;l1.delete(Q)}let G=k9(X.directory,Q,Y);if(await w0(G))try{let K=await dQ(G,"utf-8"),q=JSON.parse(K);if(await D9(q,$,X.maxAge))return q.lastAccessedAt=Date.now(),l1.set(Q,q),q.data}catch{}return null}async function z$($,Z,Y,X,Q=a4){if(!Q.enabled)return;let J=K$($,Z),G=await T0($),K=await r4($),q={key:J,src:$,srcHash:G,srcMtime:K,optionsHash:K$("",Z),data:Y,createdAt:Date.now(),lastAccessedAt:Date.now()};l1.set(J,q);let W=k9(Q.directory,J,X);try{await cQ(pQ(W)),await mQ(W,JSON.stringify(q,null,2))}catch(z){console.warn(`[stx-media] Failed to write cache: ${z}`)}}async function W$($,Z=a4){if($==="all")l1.clear();else l1.clear();let Y=$==="all"?["image","video"]:[$];for(let X of Y){let Q=E9(Z.directory,X);try{await uQ(Q,{recursive:!0,force:!0})}catch{}}}var l1,a4;var t4=k(()=>{M1();l1=new Map,a4={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}});class B${config;constructor($={}){this.config={...lQ,...$}}async get($,Z){return q$($,Z,"image",this.config)}async set($,Z,Y){return z$($,Z,Y,"image",this.config)}async clear(){return W$("image",this.config)}updateConfig($){this.config={...this.config,...$}}}function e4($){if(!U$)U$=new B$($);else if($)U$.updateConfig($);return U$}async function _$($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return e4(X).get($,Z)}async function j$($,Z,Y,X){let Q=X?{directory:`${X.outputDir}/../.cache`}:{};return e4(Q).set($,Z,Y)}async function b9(){return e4().clear()}var lQ,U$=null;var $7=k(()=>{t4();lQ={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500,cacheVariants:!0,cachePlaceholders:!0}});import{resolve as iQ,basename as nQ,extname as oQ,join as sQ}from"path";import{mkdir as rQ}from"fs/promises";async function Z7(){try{return await import("ts-images")}catch{return null}}function S9($){switch($){case"quality":return{jpeg:{quality:90,mozjpeg:!0,progressive:!0},png:{compressionLevel:6,palette:!1},webp:{quality:90,effort:6,smartSubsample:!0},avif:{quality:85,effort:6}};case"performance":return{jpeg:{quality:70,mozjpeg:!0,progressive:!0},png:{compressionLevel:9,palette:!0},webp:{quality:70,effort:4,smartSubsample:!0},avif:{quality:60,effort:2}};case"web":default:return{jpeg:{quality:82,mozjpeg:!0,progressive:!0},png:{compressionLevel:8,palette:!1},webp:{quality:82,effort:5,smartSubsample:!0},avif:{quality:75,effort:4}}}}function aQ($,Z){let Y=Z?S9(Z):S9("web"),X=$.formatQuality||{};return{jpeg:{...Y.jpeg,...X.jpeg},png:{...Y.png,...X.png},webp:{...Y.webp,...X.webp},avif:{...Y.avif,...X.avif}}}async function y9($,Z,Y){let X=await Z7();if(!X)return console.warn("[stx-media] ts-images not installed, skipping optimization"),{src:$,processed:!1};let Q=await _$($,Z,Y);if(Q)return Q;try{let J=iQ($);if(!await w0(J))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let G=aQ(Y,Z.preset),K=Y.outputDir||"dist/images",q=Y.baseUrl||"/images";await rQ(K,{recursive:!0});let W=await T0(J),z=nQ($,oQ($)),U=Z.outputFormat?[Z.outputFormat]:Y.defaultFormats||["avif","webp","jpeg"],B={src:$,processed:!0,variants:[],hash:W},_=null;if(Z.transformations&&Z.transformations.length>0)_=await Y7(J,Z.transformations,X);for(let j of U){let H=G[j]||{},F=`${z}-${W}.${j}`,L=sQ(K,F);try{let O=await X.optimizeImage({input:_||J,output:L,format:j,quality:H.quality,progressive:H.progressive});if(O){if(B.variants.push({path:L,url:`${q}/${F}`,width:O.width||0,height:O.height||0,format:j,size:O.outputSize||0}),!B.originalWidth&&O.width)B.originalWidth=O.width,B.originalHeight=O.height}}catch(O){B.errors=B.errors||[],B.errors.push(`Failed to optimize ${j}: ${O}`)}}if(Z.embedThumbhash||Z.placeholder==="thumbhash")try{let j=await X.generateThumbHash(J);B.placeholder=j.dataUrl}catch(j){B.errors=B.errors||[],B.errors.push(`Failed to generate thumbhash: ${j}`)}if(Z.useDominantColor)try{let j=await X.generatePlaceholder(J,{strategy:"dominant-color"});B.dominantColor=j.dominantColor}catch(j){B.errors=B.errors||[],B.errors.push(`Failed to extract dominant color: ${j}`)}return await j$($,Z,B,Y),B}catch(J){return{src:$,processed:!1,errors:[`Processing failed: ${J}`]}}}async function C9($,Z,Y,X){let Q=await Z7();if(!Q)return{success:!1,error:"ts-images not installed"};try{return{success:!0,size:(await Q.optimizeImage({input:$,output:X,format:Z,quality:Y}))?.outputSize}}catch(J){return{success:!1,error:String(J)}}}async function Y7($,Z,Y){let X=Y||await Z7();if(!X)return console.warn("[stx-media] ts-images not installed, skipping transformations"),null;try{let Q=await X.decode($);for(let J of Z){let G=J.options||{};switch(J.type){case"resize":if(G.width||G.height)Q=await X.resize(Q,{width:G.width,height:G.height,fit:G.fit});break;case"blur":if(G.sigma!==void 0)Q=await X.blur(Q,G.sigma);break;case"sharpen":if(G.amount!==void 0)Q=await X.sharpen(Q,G.amount);break;case"grayscale":Q=await X.grayscale(Q);break;case"rotate":if(G.angle!==void 0)Q=await X.rotate(Q,G.angle);break;case"flip":Q=await X.flip(Q);break;case"flop":Q=await X.flop(Q);break;case"brightness":if(G.value!==void 0)Q=await X.brightness(Q,G.value);break;case"contrast":if(G.value!==void 0)Q=await X.contrast(Q,G.value);break;case"saturation":if(G.value!==void 0)Q=await X.saturation(Q,G.value);break}}return await X.encode(Q,"png")}catch(Q){return console.error(`[stx-media] Transformation failed: ${Q}`),null}}var P9=k(()=>{M1();$7()});import{resolve as tQ,basename as eQ,extname as $G,join as ZG}from"path";import{mkdir as YG}from"fs/promises";async function XG(){try{return await import("ts-images")}catch{return null}}async function v9($,Z,Y){let X=await XG();if(!X)return console.warn("[stx-media] ts-images not installed, skipping responsive generation"),null;let Q=tQ($);if(!await w0(Q))return console.warn(`[stx-media] Source file not found: ${$}`),null;try{let J=Z.responsiveWidths||Y.breakpoints||JG,G=Z.formats||Y.defaultFormats||["avif","webp","jpeg"],K=Y.outputDir||"dist/images",q=Y.baseUrl||"/images";await YG(K,{recursive:!0});let W=await T0(Q),z=eQ($,$G($)),U=Y.formatQuality||{jpeg:{quality:82},png:{quality:80},webp:{quality:82},avif:{quality:75}},B={src:$,byFormat:{},srcsets:{}};for(let j of G){B.byFormat[j]=[];let H=[];for(let F of J){let L=`${z}-${F}w-${W}.${j}`,O=ZG(K,L),V=`${q}/${L}`;try{let w=U[j]?.quality||80;if(await w0(O)){B.byFormat[j].push({path:O,url:V,width:F,height:0,format:j,size:0}),H.push(`${V} ${F}w`);continue}let N=await X.processImage({input:Q,output:O,format:j,quality:w,resize:{width:F}});if(N)B.byFormat[j].push({path:O,url:V,width:F,height:N.height||Math.round(F*(N.height||1)/(N.width||1)),format:j,size:N.outputSize||0}),H.push(`${V} ${F}w`)}catch(w){console.warn(`[stx-media] Failed to generate ${j} at ${F}w: ${w}`)}}B.srcsets[j]=H.join(", ")}let _=Z.placeholder||Y.placeholderStrategy||"thumbhash";if(_!=="none")try{if(_==="thumbhash"){let j=await X.generateThumbHash(Q);B.placeholder={dataURL:j.dataUrl,width:j.width||32,height:j.height||32,strategy:"thumbhash"}}else{let j=await X.generatePlaceholder(Q,{strategy:_,width:20});B.placeholder={dataURL:j.dataURL,width:j.width,height:j.height,strategy:_}}}catch(j){console.warn(`[stx-media] Failed to generate placeholder: ${j}`)}return B.sizes=Z.sizes||QG(J),B}catch(J){return console.error(`[stx-media] Responsive generation failed: ${J}`),null}}function QG($){let Z=[...$].sort((X,Q)=>X-Q),Y=[];for(let X=0;X<Z.length-1;X++){let Q=Z[X];Y.push(`(max-width: ${Q}px) ${Q}px`)}return Y.push(`${Z[Z.length-1]}px`),Y.join(", ")}function x9($,Z="width"){if(!$||$.length===0)return"";if(Z==="dpr")return $.filter((Y)=>Y.dpr).map((Y)=>`${Y.url} ${Y.dpr}x`).join(", ");return $.map((Y)=>`${Y.url} ${Y.width}w`).join(", ")}var JG;var f9=k(()=>{M1();JG=[320,480,640,768,1024,1280,1536,1920]});var g9={};s(g9,{setCachedImageResult:()=>j$,processImage:()=>y9,optimizeImage:()=>C9,getCachedImageResult:()=>_$,generateSrcset:()=>x9,generateResponsiveVariants:()=>v9,clearImageCache:()=>b9,applyTransformations:()=>Y7,ImageProcessorCache:()=>B$});var h9=k(()=>{P9();f9();$7()});async function GG(){try{return await Promise.resolve().then(() => (h9(),g9))}catch($){if(!d9)console.warn("[stx-media] Image processor not available, some features disabled:",$),d9=!0;return null}}async function H$($,Z={}){let Y=Z,X=$;if(X.process&&!X.skipOptimization){if(Y.tsImagesConfig?.enabled&&!Y.isDev)return WG(X,Y)}if(Y.processedResult?.processed)return G7($,Y.processedResult,Z);if(Y.responsiveVariants)return c9($,Y.responsiveVariants,Z);let{src:Q,alt:J,width:G,height:K,sizes:q,widths:W=c1,dpr:z,formats:U=V5,quality:B=X7,params:_={},placeholder:j="none",placeholderOptions:H={},lazy:F=!0,priority:L=!1,loading:O=L?"eager":F$,decoding:V=O$,fetchpriority:w,objectFit:N,objectPosition:A,crossorigin:R,referrerpolicy:T}=$,M=$.class,I=$.style,D=$.id,E=$.data||{},{isDev:C=!1,baseUrl:b=""}=Z;if(C&&!Z.optimize)return zG($);let y,P,d=D||`stx-img-${Math.random().toString(36).slice(2,8)}`;if(j!=="none"&&!L)try{y=await A9(Q,{strategy:j,...H}),P=N9(d,y,H)}catch{}let f=z!==void 0&&G!==void 0,m;if(f)m=qG($,d,y,Z);else m=await KG($,d,y,Z);let n;if(L){let S0=U.includes("webp")?"webp":U[0],D0=c4(Q,W,{..._,q:B},S0),e=typeof q==="object"?l4(q):q||"100vw";n=`<link rel="preload" as="image" imagesrcset="${D0}" imagesizes="${e}" />`}let A0=[];if(!m9&&j!=="none")A0.push(s4),m9=!0;if(P)A0.push(P);let r0=F?p9(d):void 0;return{html:m,preloadLink:n,css:A0.length>0?A0.join(`
6077
+ `):void 0,script:r0}}async function KG($,Z,Y,X){let{src:Q,alt:J,width:G,height:K,sizes:q,widths:W=c1,formats:z=V5,quality:U=X7,params:B={},lazy:_=!0,priority:j=!1,loading:H=j?"eager":F$,decoding:F=O$,fetchpriority:L,objectFit:O,objectPosition:V,crossorigin:w,referrerpolicy:N}=$,A=$.class,R=$.style,T=$.data||{},M=typeof q==="object"?l4(q):q||"100vw",I=[];for(let C of z){let b=c4(Q,W,{...B,q:U},C),y=i4(C);if(_&&!j)I.push(` <source type="${y}" data-srcset="${b}" data-sizes="${M}" />`);else I.push(` <source type="${y}" srcset="${b}" sizes="${M}" />`)}let D=J7({src:w5(Q,{...B,q:U}),alt:J,width:G,height:K,loading:j?void 0:H,decoding:F,fetchpriority:j?"high":L,objectFit:O,objectPosition:V,crossorigin:w,referrerpolicy:N,className:u9(A,Y),style:Q7(R,O,V,Y),lazy:_&&!j,data:T}),E;if(Y){let C=`background-image: url('${Y.dataURL}'); background-size: cover; background-position: center;`;E=`<div id="${Z}" class="stx-img-placeholder" style="${C}">
6078
6078
  <picture>
6079
6079
  ${I.join(`
6080
6080
  `)}
@@ -6133,12 +6133,12 @@ ${N.join(`
6133
6133
  ${N.join(`
6134
6134
  `)}
6135
6135
  <img ${R.join(" ")} />
6136
- </picture>`;let C=[];if(Z.placeholder)C.push(s4);let b=G?p9(j):void 0,S;if(K&&V)S=`<link rel="preload" as="image" imagesrcset="${V}" />`;return{html:E,preloadLink:S,css:C.length>0?C.join(`
6136
+ </picture>`;let C=[];if(Z.placeholder)C.push(s4);let b=G?p9(j):void 0,y;if(K&&V)y=`<link rel="preload" as="image" imagesrcset="${V}" />`;return{html:E,preloadLink:y,css:C.length>0?C.join(`
6137
6137
  `):void 0,script:b}}async function c9($,Z,Y){let X={src:Z.src,processed:!0,variants:[],placeholder:Z.placeholder?.dataURL,originalWidth:Z.placeholder?.width,originalHeight:Z.placeholder?.height};for(let[Q,J]of Object.entries(Z.byFormat))if(J)X.variants.push(...J);return G7($,X,Y)}var d9=!1,X7=80,O$="async",F$="lazy",m9=!1;var l9=k(()=>{n4();R9()});function UG(){return G$({name:"img",hasEndTag:!1,description:"Render an optimized responsive image with srcset and lazy loading",transform:async($,Z,Y,X)=>{let{src:Q,alt:J,options:G}=BG($,Z,Y);if(!Q)return console.warn("@img directive: missing src argument"),"<!-- @img: missing src -->";let K={src:Q,alt:J||"",widths:G.widths||c1,formats:G.formats||V5,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=Y.__isDev||!1,W=await H$(K,{isDev:q}),z=W.html;if(W.preloadLink)z=W.preloadLink+`
6138
6138
  `+z;if(W.css)z+=`
6139
6139
  <style>${W.css}</style>`;if(W.script)z+=`
6140
- <script>${W.script}</script>`;return z},defaults:{src:"",alt:"",options:{lazy:!0,placeholder:"none"}}})}function BG($,Z,Y){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 Q=_G(X),J=K7(Q[0],Y)||"",G=K7(Q[1],Y)||"",K={};if(Q[2]){let q=K7(Q[2],Y);if(typeof q==="object"&&q!==null)K=q;else if(typeof Q[2]==="string")try{K=JSON.parse(Q[2])}catch{}}return{src:J,alt:G,options:K}}function _G($){let Z=[],Y="",X=!1,Q="",J=0,G=0;for(let K=0;K<$.length;K++){let q=$[K],W=K>0?$[K-1]:"";if((q==='"'||q==="'"||q==="`")&&W!=="\\"){if(!X)X=!0,Q=q;else if(q===Q)X=!1,Q="";else Y+=q;continue}if(!X){if(q==="{")J++;if(q==="}")J--;if(q==="[")G++;if(q==="]")G--;if(q===","&&J===0&&G===0){Z.push(Y.trim()),Y="";continue}}Y+=q}if(Y.trim())Z.push(Y.trim());return Z}function K7($,Z){if(typeof $!=="string")return $;let Y=$.trim();if(Y.startsWith('"')&&Y.endsWith('"')||Y.startsWith("'")&&Y.endsWith("'"))return Y.slice(1,-1);if(!Y.startsWith("/")&&!Y.startsWith(".")&&!Y.startsWith("http")&&!Y.startsWith("{")){let X=Z[Y];if(X!==void 0)return X}if(Y.startsWith("{")||Y.startsWith("["))try{return JSON.parse(Y)}catch{}return Y}var i9;var n9=k(()=>{p4();l9();n4();i9=UG()});class V${config;constructor($={}){this.config={...jG,...$}}async get($,Z){return q$($,Z,"video",this.config)}async set($,Z,Y){return z$($,Z,Y,"video",this.config)}async clear(){return W$("video",this.config)}updateConfig($){this.config={...this.config,...$}}}function q7($){if(!L$)L$=new V$($);else if($)L$.updateConfig($);return L$}async function w$($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return q7(X).get($,Z)}async function N$($,Z,Y,X){let Q=X?{directory:`${X.outputDir}/../.cache`}:{};return q7(Q).set($,Z,Y)}async function o9(){return q7().clear()}var jG,L$=null;var z7=k(()=>{t4();jG={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:2000,cacheTranscoded:!0,cacheThumbnails:!0,cacheManifests:!0}});import{resolve as W7,basename as U7,extname as B7,join as A$}from"path";import{mkdir as _7}from"fs/promises";async function j7(){try{return await import("ts-videos")}catch{return null}}async function R$($,Z,Y,X){let Q=await j7();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate poster"),null;try{let J=W7($);if(!await w0(J))return null;await _7(Y,{recursive:!0});let G=await R0(J),K=U7($,B7($)),q=Z.format||"webp",W=Z.timestamp||0,z=`${K}-poster-${G}.${q}`,U=A$(Y,z),B=await Q.extractThumbnails(J,{timestamps:[W],width:Z.width||1280,height:Z.height,format:q,quality:Z.quality||85,outputDir:Y,outputPattern:z.replace(`.${q}`,"")});if(B&&B.length>0){let _=B[0];return{path:U,url:`${X}/${z}`,width:_.width||Z.width||1280,height:_.height||720,timestamp:W,size:_.size||0}}return null}catch(J){return console.warn(`[stx-media] Failed to generate poster: ${J}`),null}}async function T$($,Z,Y,X){let Q=await j7();if(!Q)return[];try{let J=W7($);if(!await w0(J))return[];await _7(Y,{recursive:!0});let G=await R0(J),K=U7($,B7($)),q=Z.format||"webp",U=(await new Q.Input(J).getInfo()).duration||60,B=Z.count||10,_=Z.interval||U/B,j=[];for(let F=0;F<B&&F*_<U;F++)j.push(F*_);let H=await Q.extractThumbnails(J,{timestamps:j,width:Z.width||320,format:q,quality:Z.quality||80,outputDir:Y,outputPattern:`${K}-thumb-${G}`});if(H&&H.length>0)return H.map((F,L)=>({path:F.path||A$(Y,`${K}-thumb-${G}-${L}.${q}`),url:`${X}/${K}-thumb-${G}-${L}.${q}`,width:F.width||Z.width||320,height:F.height||180,timestamp:j[L],size:F.size||0}));return[]}catch(J){return console.warn(`[stx-media] Failed to generate thumbnails: ${J}`),[]}}async function s9($,Z,Y,X){let Q=await j7();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate sprite sheet"),null;try{let J=W7($);if(!await w0(J))return null;await _7(Y,{recursive:!0});let G=await R0(J),K=U7($,B7($)),z=(await new Q.Input(J).getInfo()).duration||60,U=Z.columns||10,B=Z.interval||5,_=Z.thumbnailWidth||160,j=Z.thumbnailHeight||90,H=Z.format||"jpeg",F=Math.ceil(z/B),L=Math.ceil(F/U),O=`${K}-sprite-${G}.${H}`,V=A$(Y,O),w=[];for(let A=0;A<F;A++)w.push(A*B);let N=await Q.extractThumbnails(J,{timestamps:w,width:_,height:j,format:H,quality:Z.quality||70,outputDir:A$(Y,".temp")});if(!N||N.length===0)return null;try{let A=await import("ts-images"),R=U*_,T=L*j,M=await A.createSprite({images:N.map((I)=>I.path),columns:U,padding:0,outputPath:V,format:H,quality:Z.quality||70});return{url:`${X}/${O}`,path:V,columns:U,rows:L,thumbnailWidth:_,thumbnailHeight:j,interval:B,totalFrames:F}}catch{return console.warn("[stx-media] ts-images not installed, sprite sheet generation skipped"),null}}catch(J){return console.warn(`[stx-media] Failed to generate sprite sheet: ${J}`),null}}var H7=k(()=>{M1()});import{resolve as a9,basename as t9,extname as e9,join as I1}from"path";import{mkdir as M$,writeFile as $8}from"fs/promises";async function Z8(){try{return await import("ts-videos")}catch{return null}}async function I$($,Z,Y,X,Q){let J=await Z8();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate HLS manifest"),null;try{let G=a9($);if(!await w0(G))return null;let K=await R0(G),q=t9($,e9($)),W=I1(Y,`${q}-${K}-hls`);await M$(W,{recursive:!0});let z=Z.length>0?Z:Y8,U=Q?.segmentDuration||6,j=(await new J.Input(G).getInfo()).duration||0,H=[],F=0;for(let V of z){let w=I1(W,V.label);await M$(w,{recursive:!0});let N=`${V.label}.m3u8`,A=I1(w,N);try{let R=await J.generateHLS(G,{outputDir:w,segmentDuration:U,width:V.width,height:V.height,videoBitrate:V.bitrate,audioBitrate:V.audioBitrate,playlistName:V.label});if(R)H.push({quality:V,url:`${X}/${q}-${K}-hls/${V.label}/${N}`,path:A}),F+=R.segmentCount||Math.ceil(j/U)}catch(R){console.warn(`[stx-media] Failed to generate HLS for ${V.label}: ${R}`)}}if(H.length===0)return null;let L=I1(W,"master.m3u8"),O=HG(H,X,q,K);return await $8(L,O),{manifestUrl:`${X}/${q}-${K}-hls/master.m3u8`,manifestPath:L,playlists:H,segmentCount:F,duration:j}}catch(G){return console.warn(`[stx-media] Failed to generate HLS manifest: ${G}`),null}}function HG($,Z,Y,X){let Q=["#EXTM3U","#EXT-X-VERSION:3"];for(let J of $){let{quality:G}=J,K=G.bitrate+(G.audioBitrate||128000),q=`${G.width}x${G.height||Math.round(G.width*9/16)}`;Q.push(`#EXT-X-STREAM-INF:BANDWIDTH=${K},RESOLUTION=${q},NAME="${G.label}"`,`${G.label}/${G.label}.m3u8`)}return Q.join(`
6141
- `)}async function D$($,Z,Y,X,Q){let J=await Z8();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate DASH manifest"),null;try{let G=a9($);if(!await w0(G))return null;let K=await R0(G),q=t9($,e9($)),W=I1(Y,`${q}-${K}-dash`);await M$(W,{recursive:!0});let z=Z.length>0?Z:Y8,U=Q?.segmentDuration||4,B=Q?.minBufferTime||2,H=(await new J.Input(G).getInfo()).duration||0,F=[],L=[];for(let N of z){let A=I1(W,N.label);await M$(A,{recursive:!0});try{if(await J.generateDASH(G,{outputDir:A,segmentDuration:U,width:N.width,height:N.height,videoBitrate:N.bitrate,audioBitrate:N.audioBitrate})){if(F.push({bandwidth:N.bitrate,width:N.width,height:N.height||Math.round(N.width*9/16),url:`${X}/${q}-${K}-dash/${N.label}/video`}),N.audioBitrate)L.push({bandwidth:N.audioBitrate,url:`${X}/${q}-${K}-dash/${N.label}/audio`})}}catch(R){console.warn(`[stx-media] Failed to generate DASH for ${N.label}: ${R}`)}}if(F.length===0)return null;let O=I1(W,"manifest.mpd"),V=OG(F,L,H,U,B);await $8(O,V);let w=[{type:"video",representations:F}];if(L.length>0)w.push({type:"audio",representations:L});return{manifestUrl:`${X}/${q}-${K}-dash/manifest.mpd`,manifestPath:O,adaptationSets:w,duration:H}}catch(G){return console.warn(`[stx-media] Failed to generate DASH manifest: ${G}`),null}}function OG($,Z,Y,X,Q){let J=r9(Y),G=r9(Q),K=`<?xml version="1.0" encoding="UTF-8"?>
6140
+ <script>${W.script}</script>`;return z},defaults:{src:"",alt:"",options:{lazy:!0,placeholder:"none"}}})}function BG($,Z,Y){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 Q=_G(X),J=K7(Q[0],Y)||"",G=K7(Q[1],Y)||"",K={};if(Q[2]){let q=K7(Q[2],Y);if(typeof q==="object"&&q!==null)K=q;else if(typeof Q[2]==="string")try{K=JSON.parse(Q[2])}catch{}}return{src:J,alt:G,options:K}}function _G($){let Z=[],Y="",X=!1,Q="",J=0,G=0;for(let K=0;K<$.length;K++){let q=$[K],W=K>0?$[K-1]:"";if((q==='"'||q==="'"||q==="`")&&W!=="\\"){if(!X)X=!0,Q=q;else if(q===Q)X=!1,Q="";else Y+=q;continue}if(!X){if(q==="{")J++;if(q==="}")J--;if(q==="[")G++;if(q==="]")G--;if(q===","&&J===0&&G===0){Z.push(Y.trim()),Y="";continue}}Y+=q}if(Y.trim())Z.push(Y.trim());return Z}function K7($,Z){if(typeof $!=="string")return $;let Y=$.trim();if(Y.startsWith('"')&&Y.endsWith('"')||Y.startsWith("'")&&Y.endsWith("'"))return Y.slice(1,-1);if(!Y.startsWith("/")&&!Y.startsWith(".")&&!Y.startsWith("http")&&!Y.startsWith("{")){let X=Z[Y];if(X!==void 0)return X}if(Y.startsWith("{")||Y.startsWith("["))try{return JSON.parse(Y)}catch{}return Y}var i9;var n9=k(()=>{p4();l9();n4();i9=UG()});class V${config;constructor($={}){this.config={...jG,...$}}async get($,Z){return q$($,Z,"video",this.config)}async set($,Z,Y){return z$($,Z,Y,"video",this.config)}async clear(){return W$("video",this.config)}updateConfig($){this.config={...this.config,...$}}}function q7($){if(!L$)L$=new V$($);else if($)L$.updateConfig($);return L$}async function w$($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return q7(X).get($,Z)}async function N$($,Z,Y,X){let Q=X?{directory:`${X.outputDir}/../.cache`}:{};return q7(Q).set($,Z,Y)}async function o9(){return q7().clear()}var jG,L$=null;var z7=k(()=>{t4();jG={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:2000,cacheTranscoded:!0,cacheThumbnails:!0,cacheManifests:!0}});import{resolve as W7,basename as U7,extname as B7,join as A$}from"path";import{mkdir as _7}from"fs/promises";async function j7(){try{return await import("ts-videos")}catch{return null}}async function R$($,Z,Y,X){let Q=await j7();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate poster"),null;try{let J=W7($);if(!await w0(J))return null;await _7(Y,{recursive:!0});let G=await T0(J),K=U7($,B7($)),q=Z.format||"webp",W=Z.timestamp||0,z=`${K}-poster-${G}.${q}`,U=A$(Y,z),B=await Q.extractThumbnails(J,{timestamps:[W],width:Z.width||1280,height:Z.height,format:q,quality:Z.quality||85,outputDir:Y,outputPattern:z.replace(`.${q}`,"")});if(B&&B.length>0){let _=B[0];return{path:U,url:`${X}/${z}`,width:_.width||Z.width||1280,height:_.height||720,timestamp:W,size:_.size||0}}return null}catch(J){return console.warn(`[stx-media] Failed to generate poster: ${J}`),null}}async function T$($,Z,Y,X){let Q=await j7();if(!Q)return[];try{let J=W7($);if(!await w0(J))return[];await _7(Y,{recursive:!0});let G=await T0(J),K=U7($,B7($)),q=Z.format||"webp",U=(await new Q.Input(J).getInfo()).duration||60,B=Z.count||10,_=Z.interval||U/B,j=[];for(let F=0;F<B&&F*_<U;F++)j.push(F*_);let H=await Q.extractThumbnails(J,{timestamps:j,width:Z.width||320,format:q,quality:Z.quality||80,outputDir:Y,outputPattern:`${K}-thumb-${G}`});if(H&&H.length>0)return H.map((F,L)=>({path:F.path||A$(Y,`${K}-thumb-${G}-${L}.${q}`),url:`${X}/${K}-thumb-${G}-${L}.${q}`,width:F.width||Z.width||320,height:F.height||180,timestamp:j[L],size:F.size||0}));return[]}catch(J){return console.warn(`[stx-media] Failed to generate thumbnails: ${J}`),[]}}async function s9($,Z,Y,X){let Q=await j7();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate sprite sheet"),null;try{let J=W7($);if(!await w0(J))return null;await _7(Y,{recursive:!0});let G=await T0(J),K=U7($,B7($)),z=(await new Q.Input(J).getInfo()).duration||60,U=Z.columns||10,B=Z.interval||5,_=Z.thumbnailWidth||160,j=Z.thumbnailHeight||90,H=Z.format||"jpeg",F=Math.ceil(z/B),L=Math.ceil(F/U),O=`${K}-sprite-${G}.${H}`,V=A$(Y,O),w=[];for(let A=0;A<F;A++)w.push(A*B);let N=await Q.extractThumbnails(J,{timestamps:w,width:_,height:j,format:H,quality:Z.quality||70,outputDir:A$(Y,".temp")});if(!N||N.length===0)return null;try{let A=await import("ts-images"),R=U*_,T=L*j,M=await A.createSprite({images:N.map((I)=>I.path),columns:U,padding:0,outputPath:V,format:H,quality:Z.quality||70});return{url:`${X}/${O}`,path:V,columns:U,rows:L,thumbnailWidth:_,thumbnailHeight:j,interval:B,totalFrames:F}}catch{return console.warn("[stx-media] ts-images not installed, sprite sheet generation skipped"),null}}catch(J){return console.warn(`[stx-media] Failed to generate sprite sheet: ${J}`),null}}var H7=k(()=>{M1()});import{resolve as a9,basename as t9,extname as e9,join as I1}from"path";import{mkdir as M$,writeFile as $8}from"fs/promises";async function Z8(){try{return await import("ts-videos")}catch{return null}}async function I$($,Z,Y,X,Q){let J=await Z8();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate HLS manifest"),null;try{let G=a9($);if(!await w0(G))return null;let K=await T0(G),q=t9($,e9($)),W=I1(Y,`${q}-${K}-hls`);await M$(W,{recursive:!0});let z=Z.length>0?Z:Y8,U=Q?.segmentDuration||6,j=(await new J.Input(G).getInfo()).duration||0,H=[],F=0;for(let V of z){let w=I1(W,V.label);await M$(w,{recursive:!0});let N=`${V.label}.m3u8`,A=I1(w,N);try{let R=await J.generateHLS(G,{outputDir:w,segmentDuration:U,width:V.width,height:V.height,videoBitrate:V.bitrate,audioBitrate:V.audioBitrate,playlistName:V.label});if(R)H.push({quality:V,url:`${X}/${q}-${K}-hls/${V.label}/${N}`,path:A}),F+=R.segmentCount||Math.ceil(j/U)}catch(R){console.warn(`[stx-media] Failed to generate HLS for ${V.label}: ${R}`)}}if(H.length===0)return null;let L=I1(W,"master.m3u8"),O=HG(H,X,q,K);return await $8(L,O),{manifestUrl:`${X}/${q}-${K}-hls/master.m3u8`,manifestPath:L,playlists:H,segmentCount:F,duration:j}}catch(G){return console.warn(`[stx-media] Failed to generate HLS manifest: ${G}`),null}}function HG($,Z,Y,X){let Q=["#EXTM3U","#EXT-X-VERSION:3"];for(let J of $){let{quality:G}=J,K=G.bitrate+(G.audioBitrate||128000),q=`${G.width}x${G.height||Math.round(G.width*9/16)}`;Q.push(`#EXT-X-STREAM-INF:BANDWIDTH=${K},RESOLUTION=${q},NAME="${G.label}"`,`${G.label}/${G.label}.m3u8`)}return Q.join(`
6141
+ `)}async function D$($,Z,Y,X,Q){let J=await Z8();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate DASH manifest"),null;try{let G=a9($);if(!await w0(G))return null;let K=await T0(G),q=t9($,e9($)),W=I1(Y,`${q}-${K}-dash`);await M$(W,{recursive:!0});let z=Z.length>0?Z:Y8,U=Q?.segmentDuration||4,B=Q?.minBufferTime||2,H=(await new J.Input(G).getInfo()).duration||0,F=[],L=[];for(let N of z){let A=I1(W,N.label);await M$(A,{recursive:!0});try{if(await J.generateDASH(G,{outputDir:A,segmentDuration:U,width:N.width,height:N.height,videoBitrate:N.bitrate,audioBitrate:N.audioBitrate})){if(F.push({bandwidth:N.bitrate,width:N.width,height:N.height||Math.round(N.width*9/16),url:`${X}/${q}-${K}-dash/${N.label}/video`}),N.audioBitrate)L.push({bandwidth:N.audioBitrate,url:`${X}/${q}-${K}-dash/${N.label}/audio`})}}catch(R){console.warn(`[stx-media] Failed to generate DASH for ${N.label}: ${R}`)}}if(F.length===0)return null;let O=I1(W,"manifest.mpd"),V=OG(F,L,H,U,B);await $8(O,V);let w=[{type:"video",representations:F}];if(L.length>0)w.push({type:"audio",representations:L});return{manifestUrl:`${X}/${q}-${K}-dash/manifest.mpd`,manifestPath:O,adaptationSets:w,duration:H}}catch(G){return console.warn(`[stx-media] Failed to generate DASH manifest: ${G}`),null}}function OG($,Z,Y,X,Q){let J=r9(Y),G=r9(Q),K=`<?xml version="1.0" encoding="UTF-8"?>
6142
6142
  <MPD xmlns="urn:mpeg:dash:schema:mpd:2011"
6143
6143
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6144
6144
  xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd"
@@ -6164,11 +6164,11 @@ ${N.join(`
6164
6164
  </Representation>
6165
6165
  `}K+=` </AdaptationSet>
6166
6166
  `}return K+=` </Period>
6167
- </MPD>`,K}function r9($){let Z=Math.floor($/3600),Y=Math.floor($%3600/60),X=Math.floor($%60),Q="PT";if(Z>0)Q+=`${Z}H`;if(Y>0)Q+=`${Y}M`;return Q+=`${X}S`,Q}var Y8;var O7=k(()=>{M1();Y8=[{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},{label:"360p",width:640,height:360,bitrate:600000,audioBitrate:64000}]});import{resolve as X8,basename as FG,extname as LG,join as VG}from"path";import{mkdir as wG}from"fs/promises";async function J8(){try{return await import("ts-videos")}catch{return null}}function NG($){switch($){case"very-low":return 500000;case"low":return 1e6;case"medium":return 2500000;case"high":return 5000000;case"very-high":return 1e7;case"lossless":return 0;default:return 2500000}}function AG($){switch($){case"youtube":return{codec:"h264",maxWidth:1920,maxHeight:1080,frameRate:30,audioCodec:"aac",audioBitrate:128000};case"twitter":return{codec:"h264",maxWidth:1280,maxHeight:720,frameRate:30,bitrate:5000000,audioCodec:"aac",audioBitrate:128000};case"instagram-feed":return{codec:"h264",maxWidth:1080,maxHeight:1080,frameRate:30,bitrate:3500000,audioCodec:"aac",audioBitrate:128000};case"instagram-story":case"instagram-reels":return{codec:"h264",maxWidth:1080,maxHeight:1920,frameRate:30,bitrate:3500000,audioCodec:"aac",audioBitrate:128000};case"tiktok":return{codec:"h264",maxWidth:1080,maxHeight:1920,frameRate:30,bitrate:4000000,audioCodec:"aac",audioBitrate:128000};case"discord":return{codec:"h264",maxWidth:1920,maxHeight:1080,frameRate:60,bitrate:8000000,audioCodec:"aac",audioBitrate:192000};case"linkedin":return{codec:"h264",maxWidth:1920,maxHeight:1080,frameRate:30,bitrate:5000000,audioCodec:"aac",audioBitrate:128000};case"facebook":return{codec:"h264",maxWidth:1280,maxHeight:720,frameRate:30,bitrate:4000000,audioCodec:"aac",audioBitrate:128000};case"web-progressive":return{codec:"h264",maxWidth:1920,maxHeight:1080,frameRate:30,audioCodec:"aac",audioBitrate:128000,twoPass:!0};case"web-streaming":return{codec:"h264",maxWidth:1920,maxHeight:1080,frameRate:30,audioCodec:"aac",audioBitrate:128000};default:return{}}}async function F7($){let Z=await J8();if(!Z)return null;try{let Y=X8($),Q=await new Z.Input(Y).getInfo();return{duration:Q.duration||0,width:Q.width||0,height:Q.height||0,frameRate:Q.frameRate||0,bitrate:Q.bitrate||0,codec:Q.videoCodec||"",audioCodec:Q.audioCodec}}catch(Y){return console.warn(`[stx-media] Failed to analyze video: ${Y}`),null}}async function Q8($,Z,Y,X){let Q=await J8();if(!Q)return console.warn("[stx-media] ts-videos not installed, skipping processing"),{src:$,processed:!1};let J=await w$($,Z,Y);if(J)return J;try{let G=X8($);if(!await w0(G))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let K=Y.outputDir||"dist/videos",q=Y.baseUrl||"/videos";await wG(K,{recursive:!0});let W=await R0(G),z=FG($,LG($)),U={src:$,processed:!0,hash:W};X?.({percentage:5,stage:"analyzing"}),U.metadata=await F7(G)||void 0;let B={};if(Z.quality)B.bitrate=NG(Z.quality);if(Z.platform)Object.assign(B,AG(Z.platform));if(Z.transcode)Object.assign(B,Z.transcode);if(Object.keys(B).length>0||Z.process){X?.({percentage:10,stage:"transcoding"});let _=`${z}-${W}.mp4`,j=VG(K,_);try{let H=await RG(G,j,B,Q,(F)=>X?.({percentage:10+F*0.5,stage:"transcoding"}));if(H)U.transcoded={path:j,url:`${q}/${_}`,duration:H.duration,size:H.size,video:{codec:B.codec||"h264",width:H.width,height:H.height,bitrate:H.bitrate,frameRate:H.frameRate},audio:H.audioCodec?{codec:B.audioCodec||"aac",bitrate:B.audioBitrate||128000,sampleRate:B.sampleRate||48000,channels:B.channels||2}:void 0}}catch(H){U.errors=U.errors||[],U.errors.push(`Transcoding failed: ${H}`)}}if(Z.generatePoster){X?.({percentage:65,stage:"generating-poster"});let _=typeof Z.generatePoster==="object"?Z.generatePoster:{timestamp:0},j=await R$(G,_,K,q);if(j)U.poster=j}if(Y.thumbnails?.enabled){X?.({percentage:70,stage:"generating-thumbnails"});let _=await T$(G,Y.thumbnails,K,q);if(_.length>0)U.thumbnails=_}if(Z.streaming){X?.({percentage:80,stage:"generating-manifests"});let _=typeof Z.streaming==="object"?Z.streaming:Y.streaming||{format:"hls"};if(_.format==="hls"||_.format===void 0){let j=await I$(G,_.qualities||Y.streaming?.defaultQualities||[],K,q);if(j)U.streaming={...U.streaming,hls:j}}if(_.format==="dash"){let j=await D$(G,_.qualities||Y.streaming?.defaultQualities||[],K,q);if(j)U.streaming={...U.streaming,dash:j}}}if(Z.spriteSheet)X?.({percentage:90,stage:"generating-sprite-sheet"});return X?.({percentage:100,stage:"complete"}),await N$($,Z,U,Y),U}catch(G){return{src:$,processed:!1,errors:[`Processing failed: ${G}`]}}}async function RG($,Z,Y,X,Q){try{let G=await new X.Conversion($,Z,{videoCodec:Y.codec,videoBitrate:Y.bitrate,width:Y.maxWidth,height:Y.maxHeight,frameRate:Y.frameRate,audioCodec:Y.audioCodec,audioBitrate:Y.audioBitrate,sampleRate:Y.sampleRate,channels:Y.channels}).run((K)=>{Q?.(K.percentage/100)});return{duration:G.duration||0,size:G.size||0,width:G.width||Y.maxWidth||0,height:G.height||Y.maxHeight||0,bitrate:G.bitrate||Y.bitrate||0,frameRate:G.frameRate||Y.frameRate||30,audioCodec:G.audioCodec}}catch(J){return console.error(`[stx-media] Transcoding failed: ${J}`),null}}var G8=k(()=>{M1();z7();H7();O7()});var K8={};s(K8,{setCachedVideoResult:()=>N$,processVideo:()=>Q8,getCachedVideoResult:()=>w$,generateThumbnails:()=>T$,generateSpriteSheet:()=>s9,generatePoster:()=>R$,generateHLSManifest:()=>I$,generateDASHManifest:()=>D$,clearVideoCache:()=>o9,analyzeVideo:()=>F7,VideoProcessorCache:()=>V$});var q8=k(()=>{G8();H7();O7();z7()});async function W8(){try{return await Promise.resolve().then(() => (q8(),K8))}catch($){if(!z8)console.warn("[stx-media] Video processor not available, some features disabled:",$),z8=!0;return null}}async function E$($,Z={}){let Y=Z,X=$;if(X.process&&!X.skipProcessing){if(Y.tsVideosConfig?.enabled&&!Y.isDev)return kG(X,Y)}if(Y.processedResult?.processed)return j8($,Y.processedResult,Z);let Q;if(X.generatePoster&&X.src&&!$.poster)Q=await bG(X,Y);let{src:J,sources:G=[],poster:K,posterPlaceholder:q,controls:W=U8,autoplay:z=!1,muted:U=!1,loop:B=!1,preload:_=B8,playsinline:j=!0,lazy:H=!0,player:F="native",type:L,width:O,height:V,crossorigin:w,disablePictureInPicture:N=!1,disableRemotePlayback:A=!1}=$,R=Q||K,T=$.class,M=$.style,I=$.id||`stx-video-${Math.random().toString(36).slice(2,8)}`;if(F==="ts-video")return IG($,Z);if(L&&L!=="video")return MG(J||"",L,$);let D=G.length>0?G:J?[{src:J,type:_8(J)}]:[],E=[`id="${I}"`];if(W)E.push("controls");if(z)E.push("autoplay");if(U)E.push("muted");if(B)E.push("loop");if(j)E.push("playsinline");if(N)E.push("disablepictureinpicture");if(A)E.push("disableremoteplayback");if(w)E.push(`crossorigin="${w}"`);if(H){if(E.push(`data-preload="${_}"`),E.push('preload="none"'),R)E.push(`data-poster="${_0(R)}"`);E.push("data-stx-lazy")}else if(E.push(`preload="${_}"`),R)E.push(`poster="${_0(R)}"`);if(O)E.push(`width="${O}"`);if(V)E.push(`height="${V}"`);if(T)E.push(`class="${_0(T)}"`);if(M)E.push(`style="${_0(M)}"`);let C=D.map((P)=>{return` <source ${H?`data-src="${_0(P.src)}"`:`src="${_0(P.src)}"`} type="${P.type}"${P.media?` media="${P.media}"`:""} />`}).join(`
6167
+ </MPD>`,K}function r9($){let Z=Math.floor($/3600),Y=Math.floor($%3600/60),X=Math.floor($%60),Q="PT";if(Z>0)Q+=`${Z}H`;if(Y>0)Q+=`${Y}M`;return Q+=`${X}S`,Q}var Y8;var O7=k(()=>{M1();Y8=[{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},{label:"360p",width:640,height:360,bitrate:600000,audioBitrate:64000}]});import{resolve as X8,basename as FG,extname as LG,join as VG}from"path";import{mkdir as wG}from"fs/promises";async function J8(){try{return await import("ts-videos")}catch{return null}}function NG($){switch($){case"very-low":return 500000;case"low":return 1e6;case"medium":return 2500000;case"high":return 5000000;case"very-high":return 1e7;case"lossless":return 0;default:return 2500000}}function AG($){switch($){case"youtube":return{codec:"h264",maxWidth:1920,maxHeight:1080,frameRate:30,audioCodec:"aac",audioBitrate:128000};case"twitter":return{codec:"h264",maxWidth:1280,maxHeight:720,frameRate:30,bitrate:5000000,audioCodec:"aac",audioBitrate:128000};case"instagram-feed":return{codec:"h264",maxWidth:1080,maxHeight:1080,frameRate:30,bitrate:3500000,audioCodec:"aac",audioBitrate:128000};case"instagram-story":case"instagram-reels":return{codec:"h264",maxWidth:1080,maxHeight:1920,frameRate:30,bitrate:3500000,audioCodec:"aac",audioBitrate:128000};case"tiktok":return{codec:"h264",maxWidth:1080,maxHeight:1920,frameRate:30,bitrate:4000000,audioCodec:"aac",audioBitrate:128000};case"discord":return{codec:"h264",maxWidth:1920,maxHeight:1080,frameRate:60,bitrate:8000000,audioCodec:"aac",audioBitrate:192000};case"linkedin":return{codec:"h264",maxWidth:1920,maxHeight:1080,frameRate:30,bitrate:5000000,audioCodec:"aac",audioBitrate:128000};case"facebook":return{codec:"h264",maxWidth:1280,maxHeight:720,frameRate:30,bitrate:4000000,audioCodec:"aac",audioBitrate:128000};case"web-progressive":return{codec:"h264",maxWidth:1920,maxHeight:1080,frameRate:30,audioCodec:"aac",audioBitrate:128000,twoPass:!0};case"web-streaming":return{codec:"h264",maxWidth:1920,maxHeight:1080,frameRate:30,audioCodec:"aac",audioBitrate:128000};default:return{}}}async function F7($){let Z=await J8();if(!Z)return null;try{let Y=X8($),Q=await new Z.Input(Y).getInfo();return{duration:Q.duration||0,width:Q.width||0,height:Q.height||0,frameRate:Q.frameRate||0,bitrate:Q.bitrate||0,codec:Q.videoCodec||"",audioCodec:Q.audioCodec}}catch(Y){return console.warn(`[stx-media] Failed to analyze video: ${Y}`),null}}async function Q8($,Z,Y,X){let Q=await J8();if(!Q)return console.warn("[stx-media] ts-videos not installed, skipping processing"),{src:$,processed:!1};let J=await w$($,Z,Y);if(J)return J;try{let G=X8($);if(!await w0(G))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let K=Y.outputDir||"dist/videos",q=Y.baseUrl||"/videos";await wG(K,{recursive:!0});let W=await T0(G),z=FG($,LG($)),U={src:$,processed:!0,hash:W};X?.({percentage:5,stage:"analyzing"}),U.metadata=await F7(G)||void 0;let B={};if(Z.quality)B.bitrate=NG(Z.quality);if(Z.platform)Object.assign(B,AG(Z.platform));if(Z.transcode)Object.assign(B,Z.transcode);if(Object.keys(B).length>0||Z.process){X?.({percentage:10,stage:"transcoding"});let _=`${z}-${W}.mp4`,j=VG(K,_);try{let H=await RG(G,j,B,Q,(F)=>X?.({percentage:10+F*0.5,stage:"transcoding"}));if(H)U.transcoded={path:j,url:`${q}/${_}`,duration:H.duration,size:H.size,video:{codec:B.codec||"h264",width:H.width,height:H.height,bitrate:H.bitrate,frameRate:H.frameRate},audio:H.audioCodec?{codec:B.audioCodec||"aac",bitrate:B.audioBitrate||128000,sampleRate:B.sampleRate||48000,channels:B.channels||2}:void 0}}catch(H){U.errors=U.errors||[],U.errors.push(`Transcoding failed: ${H}`)}}if(Z.generatePoster){X?.({percentage:65,stage:"generating-poster"});let _=typeof Z.generatePoster==="object"?Z.generatePoster:{timestamp:0},j=await R$(G,_,K,q);if(j)U.poster=j}if(Y.thumbnails?.enabled){X?.({percentage:70,stage:"generating-thumbnails"});let _=await T$(G,Y.thumbnails,K,q);if(_.length>0)U.thumbnails=_}if(Z.streaming){X?.({percentage:80,stage:"generating-manifests"});let _=typeof Z.streaming==="object"?Z.streaming:Y.streaming||{format:"hls"};if(_.format==="hls"||_.format===void 0){let j=await I$(G,_.qualities||Y.streaming?.defaultQualities||[],K,q);if(j)U.streaming={...U.streaming,hls:j}}if(_.format==="dash"){let j=await D$(G,_.qualities||Y.streaming?.defaultQualities||[],K,q);if(j)U.streaming={...U.streaming,dash:j}}}if(Z.spriteSheet)X?.({percentage:90,stage:"generating-sprite-sheet"});return X?.({percentage:100,stage:"complete"}),await N$($,Z,U,Y),U}catch(G){return{src:$,processed:!1,errors:[`Processing failed: ${G}`]}}}async function RG($,Z,Y,X,Q){try{let G=await new X.Conversion($,Z,{videoCodec:Y.codec,videoBitrate:Y.bitrate,width:Y.maxWidth,height:Y.maxHeight,frameRate:Y.frameRate,audioCodec:Y.audioCodec,audioBitrate:Y.audioBitrate,sampleRate:Y.sampleRate,channels:Y.channels}).run((K)=>{Q?.(K.percentage/100)});return{duration:G.duration||0,size:G.size||0,width:G.width||Y.maxWidth||0,height:G.height||Y.maxHeight||0,bitrate:G.bitrate||Y.bitrate||0,frameRate:G.frameRate||Y.frameRate||30,audioCodec:G.audioCodec}}catch(J){return console.error(`[stx-media] Transcoding failed: ${J}`),null}}var G8=k(()=>{M1();z7();H7();O7()});var K8={};s(K8,{setCachedVideoResult:()=>N$,processVideo:()=>Q8,getCachedVideoResult:()=>w$,generateThumbnails:()=>T$,generateSpriteSheet:()=>s9,generatePoster:()=>R$,generateHLSManifest:()=>I$,generateDASHManifest:()=>D$,clearVideoCache:()=>o9,analyzeVideo:()=>F7,VideoProcessorCache:()=>V$});var q8=k(()=>{G8();H7();O7();z7()});async function W8(){try{return await Promise.resolve().then(() => (q8(),K8))}catch($){if(!z8)console.warn("[stx-media] Video processor not available, some features disabled:",$),z8=!0;return null}}async function E$($,Z={}){let Y=Z,X=$;if(X.process&&!X.skipProcessing){if(Y.tsVideosConfig?.enabled&&!Y.isDev)return kG(X,Y)}if(Y.processedResult?.processed)return j8($,Y.processedResult,Z);let Q;if(X.generatePoster&&X.src&&!$.poster)Q=await bG(X,Y);let{src:J,sources:G=[],poster:K,posterPlaceholder:q,controls:W=U8,autoplay:z=!1,muted:U=!1,loop:B=!1,preload:_=B8,playsinline:j=!0,lazy:H=!0,player:F="native",type:L,width:O,height:V,crossorigin:w,disablePictureInPicture:N=!1,disableRemotePlayback:A=!1}=$,R=Q||K,T=$.class,M=$.style,I=$.id||`stx-video-${Math.random().toString(36).slice(2,8)}`;if(F==="ts-video")return IG($,Z);if(L&&L!=="video")return MG(J||"",L,$);let D=G.length>0?G:J?[{src:J,type:_8(J)}]:[],E=[`id="${I}"`];if(W)E.push("controls");if(z)E.push("autoplay");if(U)E.push("muted");if(B)E.push("loop");if(j)E.push("playsinline");if(N)E.push("disablepictureinpicture");if(A)E.push("disableremoteplayback");if(w)E.push(`crossorigin="${w}"`);if(H){if(E.push(`data-preload="${_}"`),E.push('preload="none"'),R)E.push(`data-poster="${_0(R)}"`);E.push("data-stx-lazy")}else if(E.push(`preload="${_}"`),R)E.push(`poster="${_0(R)}"`);if(O)E.push(`width="${O}"`);if(V)E.push(`height="${V}"`);if(T)E.push(`class="${_0(T)}"`);if(M)E.push(`style="${_0(M)}"`);let C=D.map((P)=>{return` <source ${H?`data-src="${_0(P.src)}"`:`src="${_0(P.src)}"`} type="${P.type}"${P.media?` media="${P.media}"`:""} />`}).join(`
6168
6168
  `),b=`<video ${E.join(" ")}>
6169
6169
  ${C}
6170
6170
  Your browser does not support the video tag.
6171
- </video>`,S;if(H)S=`
6171
+ </video>`,y;if(H)y=`
6172
6172
  (function() {
6173
6173
  var video = document.getElementById('${I}');
6174
6174
  if (!video) return;
@@ -6203,7 +6203,7 @@ ${C}
6203
6203
 
6204
6204
  observer.observe(video);
6205
6205
  })();
6206
- `.trim();return{html:b,script:S}}function MG($,Z,Y){let{width:X=640,height:Q=360}=Y,J=Y.class,G=Y.style,K=Y.id||`stx-embed-${Math.random().toString(36).slice(2,8)}`,q,W=null;switch(Z){case"youtube":W=DG($),q=W?`https://www.youtube-nocookie.com/embed/${W}`:$;break;case"vimeo":W=EG($),q=W?`https://player.vimeo.com/video/${W}`:$;break;case"dailymotion":W=$.split("/").pop()||"",q=`https://www.dailymotion.com/embed/video/${W}`;break;case"twitch":W=$.split("/").pop()||"",q=`https://player.twitch.tv/?video=${W}&parent=${typeof window<"u"?window.location.hostname:"localhost"}`;break;default:q=$}let z=[`id="${K}"`,`src="${_0(q)}"`,`width="${X}"`,`height="${Q}"`,'frameborder="0"',"allowfullscreen",'allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"'];if(J)z.push(`class="${_0(J)}"`);if(G)z.push(`style="${_0(G)}"`);if(Y.lazy)z.push('loading="lazy"');return{html:`<div class="stx-video-embed" style="position:relative;padding-bottom:56.25%;height:0;overflow:hidden;">
6206
+ `.trim();return{html:b,script:y}}function MG($,Z,Y){let{width:X=640,height:Q=360}=Y,J=Y.class,G=Y.style,K=Y.id||`stx-embed-${Math.random().toString(36).slice(2,8)}`,q,W=null;switch(Z){case"youtube":W=DG($),q=W?`https://www.youtube-nocookie.com/embed/${W}`:$;break;case"vimeo":W=EG($),q=W?`https://player.vimeo.com/video/${W}`:$;break;case"dailymotion":W=$.split("/").pop()||"",q=`https://www.dailymotion.com/embed/video/${W}`;break;case"twitch":W=$.split("/").pop()||"",q=`https://player.twitch.tv/?video=${W}&parent=${typeof window<"u"?window.location.hostname:"localhost"}`;break;default:q=$}let z=[`id="${K}"`,`src="${_0(q)}"`,`width="${X}"`,`height="${Q}"`,'frameborder="0"',"allowfullscreen",'allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"'];if(J)z.push(`class="${_0(J)}"`);if(G)z.push(`style="${_0(G)}"`);if(Y.lazy)z.push('loading="lazy"');return{html:`<div class="stx-video-embed" style="position:relative;padding-bottom:56.25%;height:0;overflow:hidden;">
6207
6207
  <iframe ${z.join(" ")} style="position:absolute;top:0;left:0;width:100%;height:100%;"></iframe>
6208
6208
  </div>`}}function IG($,Z={}){let{src:Y,sources:X=[],poster:Q,controls:J=!0,autoplay:G=!1,muted:K=!1,loop:q=!1,preload:W="metadata",playsinline:z=!0,lazy:U=!0,width:B,height:_}=$,j=$.class,H=$.style,F=$.id||`ts-video-${Math.random().toString(36).slice(2,8)}`,L={src:X.length>0?X:Y,autoplay:G,loop:q,muted:K,playsinline:z,preload:W,poster:Q,controls:J,title:$.title},O=["position: relative",B?`width: ${typeof B==="number"?B+"px":B}`:"width: 100%",_?`height: ${typeof _==="number"?_+"px":_}`:"",H||""].filter(Boolean).join("; "),V=`
6209
6209
  <div
@@ -6839,8 +6839,8 @@ ${z}
6839
6839
  customElements.define('${Z}', ${G});
6840
6840
  `}async function y8($,Z,Y,X){if(Z.length<1)return a("WebComponent","@webcomponent directive requires at least the tag name parameter",i.INVALID_DIRECTIVE_SYNTAX);let Q=Z[0].replace(/['"]/g,""),G=(Y.__stx_options||{}).componentsDir||"components",K=[R5.join(R5.dirname(X),G,`${Q}.stx`),R5.join(process.cwd(),G,`${Q}.stx`),R5.join(R5.dirname(X),`${Q}.stx`)],q=null;for(let U of K)if(await c(U)){q=await Bun.file(U).text();break}if(!q)return a("WebComponent",`Component file not found: ${Q}.stx`,i.FILE_NOT_FOUND);let W=sG(q,Q);return`<script type="module">
6841
6841
  ${rG(W)}
6842
- </script>`}var C8=k(()=>{e0();O0()});var P8={};s(P8,{timingPlugin:()=>ZK,pluginManager:()=>aG,definePlugin:()=>x$,debugPlugin:()=>$K,createVariablesPlugin:()=>YK,createFilterPlugin:()=>eG,createDirectivePlugin:()=>tG,PluginManager:()=>I7});function x$($){return $}class I7{plugins=new Map;sortedPlugins=[];initialized=!1;async register($,Z){if(this.plugins.has($.name))throw Error(`Plugin "${$.name}" is already registered`);if($.dependencies){for(let Y of $.dependencies)if(!this.plugins.has(Y))throw Error(`Plugin "${$.name}" depends on "${Y}" which is not registered`)}if(this.plugins.set($.name,$),$.onRegister)await $.onRegister(Z);this.sortPlugins()}async unregister($){let Z=this.plugins.get($);if(!Z)return!1;for(let[Y,X]of this.plugins)if(X.dependencies?.includes($))throw Error(`Cannot unregister "${$}" because "${Y}" depends on it`);if(Z.onUnregister)await Z.onUnregister();return this.plugins.delete($),this.sortPlugins(),!0}get($){return this.plugins.get($)}has($){return this.plugins.has($)}getAll(){return[...this.sortedPlugins]}getAllDirectives(){let $=[];for(let Z of this.sortedPlugins)if(Z.registerDirectives)$.push(...Z.registerDirectives());return $}getAllFilters(){let $={};for(let Z of this.sortedPlugins)if(Z.registerFilters)Object.assign($,Z.registerFilters());return $}async runBeforeProcess($){return this.runHooks("beforeProcess",$)}async runAfterParse($){return this.runHooks("afterParse",$)}async runBeforeDirective($,Z){return this.runDirectiveHooks("beforeDirective",$,Z)}async runAfterDirective($,Z){return this.runDirectiveHooks("afterDirective",$,Z)}async runBeforeRender($){return this.runHooks("beforeRender",$)}async runAfterRender($){return this.runHooks("afterRender",$)}async runOnError($){for(let Z of this.sortedPlugins)if(Z.onError)try{let Y=await Z.onError($);if(Y){if(Y.template!==void 0)$.template=Y.template;if(Y.context)$.context={...$.context,...Y.context};if(Y.metadata)$.metadata={...$.metadata,...Y.metadata};if(Y.skip)return $}}catch(Y){console.error(`Error in plugin "${Z.name}" onError hook:`,Y)}return null}sortPlugins(){this.sortedPlugins=Array.from(this.plugins.values()).sort(($,Z)=>($.priority??100)-(Z.priority??100))}async runHooks($,Z){let Y={...Z};for(let X of this.sortedPlugins){let Q=X[$];if(Q)try{let J=await Q(Y);if(J){if(J.template!==void 0)Y.template=J.template;if(J.context)Y.context={...Y.context,...J.context};if(J.metadata)Y.metadata={...Y.metadata,...J.metadata};if(J.skip)break}}catch(J){console.error(`Error in plugin "${X.name}" ${$} hook:`,J)}}return Y}async runDirectiveHooks($,Z,Y){let X={...Y};for(let Q of this.sortedPlugins){let J=Q[$];if(J)try{let G=await J(Z,X);if(G){if(G.template!==void 0)X.template=G.template;if(G.context)X.context={...X.context,...G.context};if(G.metadata)X.metadata={...X.metadata,...G.metadata};if(G.skip)break}}catch(G){console.error(`Error in plugin "${Q.name}" ${$} hook:`,G)}}return X}}function tG($,Z,Y={}){return{name:$,...Y,registerDirectives:()=>Z}}function eG($,Z,Y={}){return{name:$,...Y,registerFilters:()=>Z}}function YK($){return x$({name:"stx-variables",version:"1.0.0",description:"Adds predefined variables to template context",beforeProcess(Z){return{context:{...Z.context,...$}}}})}var aG,$K,ZK;var v8=k(()=>{aG=new I7;$K=x$({name:"stx-debug",version:"1.0.0",description:"Logs all plugin lifecycle events for debugging",priority:0,beforeProcess($){console.log("[stx-debug] beforeProcess:",$.filePath)},afterParse($){console.log("[stx-debug] afterParse:",$.template.length,"chars")},beforeDirective($,Z){console.log("[stx-debug] beforeDirective:",$)},afterDirective($,Z){console.log("[stx-debug] afterDirective:",$)},beforeRender($){console.log("[stx-debug] beforeRender")},afterRender($){console.log("[stx-debug] afterRender:",$.template.length,"chars")},onError($){console.error("[stx-debug] onError:",$.error.message,"in phase:",$.phase)}}),ZK=x$({name:"stx-timing",version:"1.0.0",description:"Measures template processing time",priority:1,beforeProcess($){$.metadata.startTime=performance.now()},afterRender($){let Z=$.metadata.startTime;if(Z){let Y=performance.now()-Z;console.log(`[stx-timing] Processing took ${Y.toFixed(2)}ms`)}}})});var f8={};s(f8,{validateConfig:()=>GK,loadStxConfig:()=>J1,defineStxConfig:()=>QK,defaultConfig:()=>$1,config:()=>E7});import D7 from"fs";import T0 from"path";import{loadConfigWithResult as XK}from"bunfig";function JK($,Z){let Y=Z||"pages";if($)return{root:$,pagesDir:Y};let X=T0.join(process.cwd(),"resources","views"),Q=T0.join(process.cwd(),"resources","layouts");if(D7.existsSync(X)&&D7.existsSync(Q))return{root:"resources",pagesDir:"views"};let J=T0.join(process.cwd(),"resources","views","pages");if(D7.existsSync(J))return{root:"resources/views",pagesDir:Y};return{root:".",pagesDir:Y}}async function J1($){if(!$){if(n1)return n1;if(f$)return f$}let Z=$?T0.resolve($):process.cwd(),Y=x8.get(Z);if(Y)return Y;let X=(async()=>{let J=(await XK({name:"stx",alias:"ui",cwd:Z,defaultConfig:$1,verbose:!1})).config,G=JK(J.root,J.pagesDir);if(J.root=G.root,J.pagesDir=G.pagesDir,J.root&&J.root!=="."){let K=J.root;if(J.partialsDir&&!T0.isAbsolute(J.partialsDir))J.partialsDir=T0.join(K,J.partialsDir);if(J.componentsDir&&!T0.isAbsolute(J.componentsDir))J.componentsDir=T0.join(K,J.componentsDir);if(J.layoutsDir&&!T0.isAbsolute(J.layoutsDir))J.layoutsDir=T0.join(K,J.layoutsDir)}if(J.plugins&&J.plugins.length>0){let{pluginManager:K}=await Promise.resolve().then(() => (v8(),P8)),q=[],W=[];for(let z of J.plugins){let U=typeof z==="string"?z:z[0],B=typeof z==="string"?{}:z[1]||{};try{let _,j;try{_=await import(U),j=T0.dirname(G0.resolve(U))}catch{let F=T0.resolve(process.cwd(),U);_=await import(F),j=T0.dirname(F)}let H=_.default||_;if(K.register(H,J),H.components){let F=T0.resolve(j,H.components);q.push(F)}if(H.pages){let F=T0.resolve(j,H.pages),L=B.path||"/";W.push({dir:F,prefix:L})}if(H.setup){let F={addDirective:(L)=>{J.customDirectives=J.customDirectives||[],J.customDirectives.push(L)},addRoute:(L,O)=>{J.apiRoutes=J.apiRoutes||{},J.apiRoutes[L]=O},addMiddleware:(L)=>{J.middleware=J.middleware||[],J.middleware.push(L)},pluginDir:j,config:J};await H.setup(B,F)}console.log(`[stx] Plugin loaded: ${H.name||U}`)}catch(_){console.warn(`[stx] Failed to load plugin ${U}:`,_.message)}}J._pluginComponentDirs=q,J._pluginPageDirs=W}return J})();if(x8.set(Z,X),!$)f$=X,X.then((Q)=>{n1=Q}).catch(()=>{});return X}function QK($){return $}function GK($){let Z=[],Y=[];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,Q)=>{if(!X.name||typeof X.name!=="string")Z.push({path:`customDirectives[${Q}].name`,message:"Custom directive must have a name string",severity:"error"});if(!X.handler||typeof X.handler!=="function")Z.push({path:`customDirectives[${Q}].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,Q)=>{if(!X.name||typeof X.name!=="string")Z.push({path:`middleware[${Q}].name`,message:"Middleware must have a name string",severity:"error"});if(!X.handler||typeof X.handler!=="function")Z.push({path:`middleware[${Q}].handler`,message:"Middleware must have a handler function",severity:"error"});if(!X.timing||!["before","after"].includes(X.timing))Z.push({path:`middleware[${Q}].timing`,message:'Middleware timing must be "before" or "after"',severity:"error"})});if($.debug===!0&&$.cache===!0)Y.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)Y.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((Q,J)=>{if(!Q.pattern||typeof Q.pattern!=="string")Z.push({path:`pwa.routes[${J}].pattern`,message:"PWA route must have a pattern string",severity:"error"});if(!X.includes(Q.strategy))Z.push({path:`pwa.routes[${J}].strategy`,message:`PWA route strategy must be one of: ${X.join(", ")}`,severity:"error"});if(Q.maxAgeSeconds!==void 0&&(typeof Q.maxAgeSeconds!=="number"||Q.maxAgeSeconds<0))Z.push({path:`pwa.routes[${J}].maxAgeSeconds`,message:"PWA route maxAgeSeconds must be a non-negative number",severity:"error"});if(Q.maxEntries!==void 0&&(typeof Q.maxEntries!=="number"||Q.maxEntries<1))Z.push({path:`pwa.routes[${J}].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((Q)=>typeof Q!=="number"||Q<16||Q>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((J)=>!X.includes(J)).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)Y.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)Y.push({path:"pwa.manifest.themeColor",message:"PWA theme color not set, defaulting to black",severity:"warning"})}return{valid:Z.length===0,errors:Z,warnings:Y}}var $1,n1=null,x8,f$=null,E7;var E1=k(()=>{R4();T4();M4();I4();u4();n9();V7();V8();M7();C8();$1={enabled:!0,ssr:!1,partialsDir:"partials",componentsDir:"components",layoutsDir:"layouts",defaultLayout:"default",debug:!1,cache:!0,cachePath:".stx/cache",cacheVersion:"1.0.0",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:V9,hasEndTag:!0,description:"Render markdown content to HTML"},{name:"webcomponent",handler:y8,hasEndTag:!1,description:"Include a web component in the template"},q6,z6,b8,S8,W6,B6,_6,U6,F6,w6,i9,L7,...L8],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:"#app-content",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}};x8=new Map;E7=new Proxy($1,{get($,Z){if(n1&&Z in n1)return n1[Z];if(!f$)J1().catch((Y)=>{console.warn("[stx] Failed to load config file:",Y?.message||Y)});return $[Z]}})});import g8 from"fs";import X0 from"path";function S7($){return Bun.hash($).toString(16).padStart(16,"0").slice(0,16)}function b7($,Z){if(k1.has($))k1.delete($);else if(k1.size>=KK)k1.delete(k1.keys().next().value);k1.set($,Z)}async function qK($){if(!Q1)return null;try{let Z=Bun.file(X0.join(Q1,`cw-${S7($)}.css`));if(!await Z.exists())return null;return await Z.text()}catch{return null}}async function zK($,Z){if(!Q1)return;try{if(!g8.existsSync(Q1))g8.mkdirSync(Q1,{recursive:!0});await Bun.write(X0.join(Q1,`cw-${S7($)}.css`),Z)}catch{}}async function d8($){try{let Z=await import($);if(Z&&Z.CSSGenerator)return{CSSGenerator:Z.CSSGenerator,config:Z.config,build:Z.build,defaultConfig:Z.defaultConfig}}catch{}return null}function WK(){let $=[],Z=process.env.HOME||process.env.USERPROFILE||"",Y=process.cwd();while(Y!==X0.dirname(Y))$.push(X0.join(Y,"node_modules","@cwcss","crosswind","dist","index.js")),$.push(X0.join(Y,"node_modules","@cwcss","crosswind","src","index.ts")),$.push(X0.join(Y,"pantry","@cwcss","crosswind","dist","index.js")),$.push(X0.join(Y,"pantry","@cwcss","crosswind","src","index.ts")),$.push(X0.join(Y,"node_modules","@stacksjs","crosswind","dist","index.js")),$.push(X0.join(Y,"pantry","@stacksjs","crosswind","dist","index.js")),Y=X0.dirname(Y);if(Z){let X=[X0.join(Z,"Code","Tools","crosswind","packages","crosswind","dist","index.js"),X0.join(Z,"Code","Tools","crosswind","packages","crosswind","src","index.ts"),X0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","dist","index.js"),X0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","src","index.ts"),X0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@cwcss","crosswind","dist","index.js"),X0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@stacksjs","crosswind","dist","index.js")];$.push(...X)}return $.push(X0.join(process.cwd(),"..","crosswind","packages","crosswind","dist","index.js")),$.push(X0.join(process.cwd(),"..","crosswind","packages","crosswind","src","index.ts")),$}async function UK(){if(h8)return T5;h8=!0;try{let $=["@cwcss/crosswind","@cwcss/crosswind/dist/index.js","@stacksjs/crosswind","@stacksjs/crosswind/dist/index.js"];for(let Y of $){let X=await d8(Y);if(X){if(T5=X,!process.env.STACKS_DEV_QUIET)console.log(`${H0.green}[Crosswind]${H0.reset} CSS engine loaded`);return T5}}let Z=WK();for(let Y of Z)if(await Bun.file(Y).exists()){let X=await d8(Y);if(X){if(T5=X,!process.env.STACKS_DEV_QUIET)console.log(`${H0.green}[Crosswind]${H0.reset} CSS engine loaded from ${X0.dirname(X0.dirname(Y))}`);return T5}}throw Error("Crosswind CSSGenerator not found in any location")}catch{return console.warn(`${H0.yellow}[Crosswind] CSS engine not available, Tailwind styles will not be generated${H0.reset}`),console.warn(`${H0.yellow}Run 'bun add @stacksjs/crosswind' to enable CSS generation${H0.reset}`),null}}async function BK($){try{let{loadConfigWithResult:Z}=await import("bunfig"),Y=await Z({name:"crosswind",cwd:$,defaultConfig:{},checkEnv:!1,verbose:!1});if(!Y?.path||!Y.config||Object.keys(Y.config).length===0)return null;let X=X0.relative($,Y.path);if(!process.env.STACKS_DEV_QUIET)console.log(`${H0.green}[Crosswind]${H0.reset} Loaded config from ${X||Y.path}`);return Y.config}catch(Z){if(Z instanceof Error&&Z.name==="ConfigNotFoundError")return null;return console.warn(`${H0.yellow}[Crosswind]${H0.reset} Failed to load crosswind config:`,Z instanceof Error?Z.message:Z),null}}function _K($){let Z=new Set,Y=/class\s*=\s*["']([^"']+)["']/gi,X=Y.exec($);while(X!==null){for(let G of X[1].split(/\s+/))if(G.trim())Z.add(G.trim());X=Y.exec($)}let Q=/(?:x-class|:class)\s*=\s*"([^"]+)"/gi,J=Q.exec($);while(J!==null){let G=J[1].match(/'([^']+)'/g);if(G){for(let K of G)for(let q of K.slice(1,-1).split(/\s+/))if(q.trim())Z.add(q.trim())}J=Q.exec($)}return Z}async function jK($,Z){try{let Y=await UK();if(!Y)return"";let X=_K($);if(X.size===0)return"";let Q=Z?X0.resolve(Z):process.cwd();if(!Q1)Q1=X0.join(Q,".stx/cache");let J=[...X].sort().join(" "),G=`${k7||"default"}::${J}`,K=k1.get(G);if(K!==void 0)return b7(G,K),K;let q=await qK(G);if(q!==null)return b7(G,q),q;if(!g$){let N=null;try{let{loadStxConfig:A}=await Promise.resolve().then(() => (E1(),f8)),R=await A(Q);if(R.css)if(typeof R.css==="string"){let T=X0.isAbsolute(R.css)?R.css:X0.resolve(Q,R.css);if(await Bun.file(T).exists()){let M=await import(T);N=M.default||M,console.log(`${H0.green}[Crosswind]${H0.reset} Loaded config from stx.config.ts \u2192 ${R.css}`)}}else{if(N={...R.css,content:R.css.content||[],preflight:R.css.preflight??!0,minify:R.css.minify??!1},R.css.config){let T=X0.isAbsolute(R.css.config)?R.css.config:X0.resolve(Q,R.css.config);if(await Bun.file(T).exists()){let M=await import(T);N={...M.default||M,...N}}}console.log(`${H0.green}[Crosswind]${H0.reset} Using inline CSS config from stx.config.ts`)}}catch{}g$=N||await BK(Q);try{k7=S7(JSON.stringify(g$??{}))}catch{k7="unhashable"}}let W=Y.defaultConfig||Y.config,z=g$||{},U=W.theme||{},_=(z.theme||{}).extend||{},j={...U};if(Object.keys(_).length>0)j.extend=_;let H=[...W.safelist||[],...z.safelist||[]],F={...W,...z,content:[],output:"",preflight:!0,minify:!1,theme:j,safelist:H},L=new Y.CSSGenerator(F);for(let N of H)L.generate(N);for(let N of X)L.generate(N);let O=L.toCSS(!0,!1),V=F.shortcuts||z.shortcuts||{};for(let[N,A]of Object.entries(V)){if(!X.has(N)&&!H.includes(N))continue;let R=A.split(/\s+/).filter(Boolean);for(let T of R)L.generate(T)}O=L.toCSS(!0,!1);let w=O.split(`
6843
- `);for(let[N,A]of Object.entries(V)){if(!X.has(N)&&!H.includes(N))continue;let R=A.split(/\s+/).filter(Boolean),T=[],M=[];for(let I of R){let D=I.startsWith("dark:"),b=`.${(D?I.slice(5):I).replace(/\//g,"\\/").replace(/:/g,"\\:").replace(/\./g,"\\.").replace(/\[/g,"\\[").replace(/\]/g,"\\]").replace(/%/g,"\\%")}`;for(let S=0;S<w.length;S++){let P=w[S].trim();if(P===`${b} {`||P.startsWith(`${b} {`)){let d=S,f="";while(d<w.length){if(f+=w[d],w[d].includes("}"))break;d++}let m=f.match(/\{([^}]+)\}/);if(m)if(D)M.push(m[1].trim());else T.push(m[1].trim());break}}}if(T.length)O+=`
6842
+ </script>`}var C8=k(()=>{e0();O0()});var P8={};s(P8,{timingPlugin:()=>ZK,pluginManager:()=>aG,definePlugin:()=>x$,debugPlugin:()=>$K,createVariablesPlugin:()=>YK,createFilterPlugin:()=>eG,createDirectivePlugin:()=>tG,PluginManager:()=>I7});function x$($){return $}class I7{plugins=new Map;sortedPlugins=[];initialized=!1;async register($,Z){if(this.plugins.has($.name))throw Error(`Plugin "${$.name}" is already registered`);if($.dependencies){for(let Y of $.dependencies)if(!this.plugins.has(Y))throw Error(`Plugin "${$.name}" depends on "${Y}" which is not registered`)}if(this.plugins.set($.name,$),$.onRegister)await $.onRegister(Z);this.sortPlugins()}async unregister($){let Z=this.plugins.get($);if(!Z)return!1;for(let[Y,X]of this.plugins)if(X.dependencies?.includes($))throw Error(`Cannot unregister "${$}" because "${Y}" depends on it`);if(Z.onUnregister)await Z.onUnregister();return this.plugins.delete($),this.sortPlugins(),!0}get($){return this.plugins.get($)}has($){return this.plugins.has($)}getAll(){return[...this.sortedPlugins]}getAllDirectives(){let $=[];for(let Z of this.sortedPlugins)if(Z.registerDirectives)$.push(...Z.registerDirectives());return $}getAllFilters(){let $={};for(let Z of this.sortedPlugins)if(Z.registerFilters)Object.assign($,Z.registerFilters());return $}async runBeforeProcess($){return this.runHooks("beforeProcess",$)}async runAfterParse($){return this.runHooks("afterParse",$)}async runBeforeDirective($,Z){return this.runDirectiveHooks("beforeDirective",$,Z)}async runAfterDirective($,Z){return this.runDirectiveHooks("afterDirective",$,Z)}async runBeforeRender($){return this.runHooks("beforeRender",$)}async runAfterRender($){return this.runHooks("afterRender",$)}async runOnError($){for(let Z of this.sortedPlugins)if(Z.onError)try{let Y=await Z.onError($);if(Y){if(Y.template!==void 0)$.template=Y.template;if(Y.context)$.context={...$.context,...Y.context};if(Y.metadata)$.metadata={...$.metadata,...Y.metadata};if(Y.skip)return $}}catch(Y){console.error(`Error in plugin "${Z.name}" onError hook:`,Y)}return null}sortPlugins(){this.sortedPlugins=Array.from(this.plugins.values()).sort(($,Z)=>($.priority??100)-(Z.priority??100))}async runHooks($,Z){let Y={...Z};for(let X of this.sortedPlugins){let Q=X[$];if(Q)try{let J=await Q(Y);if(J){if(J.template!==void 0)Y.template=J.template;if(J.context)Y.context={...Y.context,...J.context};if(J.metadata)Y.metadata={...Y.metadata,...J.metadata};if(J.skip)break}}catch(J){console.error(`Error in plugin "${X.name}" ${$} hook:`,J)}}return Y}async runDirectiveHooks($,Z,Y){let X={...Y};for(let Q of this.sortedPlugins){let J=Q[$];if(J)try{let G=await J(Z,X);if(G){if(G.template!==void 0)X.template=G.template;if(G.context)X.context={...X.context,...G.context};if(G.metadata)X.metadata={...X.metadata,...G.metadata};if(G.skip)break}}catch(G){console.error(`Error in plugin "${Q.name}" ${$} hook:`,G)}}return X}}function tG($,Z,Y={}){return{name:$,...Y,registerDirectives:()=>Z}}function eG($,Z,Y={}){return{name:$,...Y,registerFilters:()=>Z}}function YK($){return x$({name:"stx-variables",version:"1.0.0",description:"Adds predefined variables to template context",beforeProcess(Z){return{context:{...Z.context,...$}}}})}var aG,$K,ZK;var v8=k(()=>{aG=new I7;$K=x$({name:"stx-debug",version:"1.0.0",description:"Logs all plugin lifecycle events for debugging",priority:0,beforeProcess($){console.log("[stx-debug] beforeProcess:",$.filePath)},afterParse($){console.log("[stx-debug] afterParse:",$.template.length,"chars")},beforeDirective($,Z){console.log("[stx-debug] beforeDirective:",$)},afterDirective($,Z){console.log("[stx-debug] afterDirective:",$)},beforeRender($){console.log("[stx-debug] beforeRender")},afterRender($){console.log("[stx-debug] afterRender:",$.template.length,"chars")},onError($){console.error("[stx-debug] onError:",$.error.message,"in phase:",$.phase)}}),ZK=x$({name:"stx-timing",version:"1.0.0",description:"Measures template processing time",priority:1,beforeProcess($){$.metadata.startTime=performance.now()},afterRender($){let Z=$.metadata.startTime;if(Z){let Y=performance.now()-Z;console.log(`[stx-timing] Processing took ${Y.toFixed(2)}ms`)}}})});var f8={};s(f8,{validateConfig:()=>GK,loadStxConfig:()=>J1,defineStxConfig:()=>QK,defaultConfig:()=>$1,config:()=>E7});import D7 from"fs";import M0 from"path";import{loadConfigWithResult as XK}from"bunfig";function JK($,Z){let Y=Z||"pages";if($)return{root:$,pagesDir:Y};let X=M0.join(process.cwd(),"resources","views"),Q=M0.join(process.cwd(),"resources","layouts");if(D7.existsSync(X)&&D7.existsSync(Q))return{root:"resources",pagesDir:"views"};let J=M0.join(process.cwd(),"resources","views","pages");if(D7.existsSync(J))return{root:"resources/views",pagesDir:Y};return{root:".",pagesDir:Y}}async function J1($){if(!$){if(n1)return n1;if(f$)return f$}let Z=$?M0.resolve($):process.cwd(),Y=x8.get(Z);if(Y)return Y;let X=(async()=>{let J=(await XK({name:"stx",alias:"ui",cwd:Z,defaultConfig:$1,verbose:!1})).config,G=JK(J.root,J.pagesDir);if(J.root=G.root,J.pagesDir=G.pagesDir,J.root&&J.root!=="."){let K=J.root;if(J.partialsDir&&!M0.isAbsolute(J.partialsDir))J.partialsDir=M0.join(K,J.partialsDir);if(J.componentsDir&&!M0.isAbsolute(J.componentsDir))J.componentsDir=M0.join(K,J.componentsDir);if(J.layoutsDir&&!M0.isAbsolute(J.layoutsDir))J.layoutsDir=M0.join(K,J.layoutsDir)}if(J.plugins&&J.plugins.length>0){let{pluginManager:K}=await Promise.resolve().then(() => (v8(),P8)),q=[],W=[];for(let z of J.plugins){let U=typeof z==="string"?z:z[0],B=typeof z==="string"?{}:z[1]||{};try{let _,j;try{_=await import(U),j=M0.dirname(G0.resolve(U))}catch{let F=M0.resolve(process.cwd(),U);_=await import(F),j=M0.dirname(F)}let H=_.default||_;if(K.register(H,J),H.components){let F=M0.resolve(j,H.components);q.push(F)}if(H.pages){let F=M0.resolve(j,H.pages),L=B.path||"/";W.push({dir:F,prefix:L})}if(H.setup){let F={addDirective:(L)=>{J.customDirectives=J.customDirectives||[],J.customDirectives.push(L)},addRoute:(L,O)=>{J.apiRoutes=J.apiRoutes||{},J.apiRoutes[L]=O},addMiddleware:(L)=>{J.middleware=J.middleware||[],J.middleware.push(L)},pluginDir:j,config:J};await H.setup(B,F)}console.log(`[stx] Plugin loaded: ${H.name||U}`)}catch(_){console.warn(`[stx] Failed to load plugin ${U}:`,_.message)}}J._pluginComponentDirs=q,J._pluginPageDirs=W}return J})();if(x8.set(Z,X),!$)f$=X,X.then((Q)=>{n1=Q}).catch(()=>{});return X}function QK($){return $}function GK($){let Z=[],Y=[];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,Q)=>{if(!X.name||typeof X.name!=="string")Z.push({path:`customDirectives[${Q}].name`,message:"Custom directive must have a name string",severity:"error"});if(!X.handler||typeof X.handler!=="function")Z.push({path:`customDirectives[${Q}].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,Q)=>{if(!X.name||typeof X.name!=="string")Z.push({path:`middleware[${Q}].name`,message:"Middleware must have a name string",severity:"error"});if(!X.handler||typeof X.handler!=="function")Z.push({path:`middleware[${Q}].handler`,message:"Middleware must have a handler function",severity:"error"});if(!X.timing||!["before","after"].includes(X.timing))Z.push({path:`middleware[${Q}].timing`,message:'Middleware timing must be "before" or "after"',severity:"error"})});if($.debug===!0&&$.cache===!0)Y.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)Y.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((Q,J)=>{if(!Q.pattern||typeof Q.pattern!=="string")Z.push({path:`pwa.routes[${J}].pattern`,message:"PWA route must have a pattern string",severity:"error"});if(!X.includes(Q.strategy))Z.push({path:`pwa.routes[${J}].strategy`,message:`PWA route strategy must be one of: ${X.join(", ")}`,severity:"error"});if(Q.maxAgeSeconds!==void 0&&(typeof Q.maxAgeSeconds!=="number"||Q.maxAgeSeconds<0))Z.push({path:`pwa.routes[${J}].maxAgeSeconds`,message:"PWA route maxAgeSeconds must be a non-negative number",severity:"error"});if(Q.maxEntries!==void 0&&(typeof Q.maxEntries!=="number"||Q.maxEntries<1))Z.push({path:`pwa.routes[${J}].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((Q)=>typeof Q!=="number"||Q<16||Q>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((J)=>!X.includes(J)).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)Y.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)Y.push({path:"pwa.manifest.themeColor",message:"PWA theme color not set, defaulting to black",severity:"warning"})}return{valid:Z.length===0,errors:Z,warnings:Y}}var $1,n1=null,x8,f$=null,E7;var E1=k(()=>{R4();T4();M4();I4();u4();n9();V7();V8();M7();C8();$1={enabled:!0,ssr:!1,partialsDir:"partials",componentsDir:"components",layoutsDir:"layouts",defaultLayout:"default",debug:!1,cache:!0,cachePath:".stx/cache",cacheVersion:"1.0.0",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:V9,hasEndTag:!0,description:"Render markdown content to HTML"},{name:"webcomponent",handler:y8,hasEndTag:!1,description:"Include a web component in the template"},q6,z6,b8,S8,W6,B6,_6,U6,F6,w6,i9,L7,...L8],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:"#app-content",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}};x8=new Map;E7=new Proxy($1,{get($,Z){if(n1&&Z in n1)return n1[Z];if(!f$)J1().catch((Y)=>{console.warn("[stx] Failed to load config file:",Y?.message||Y)});return $[Z]}})});import g8 from"fs";import X0 from"path";function S7($){return Bun.hash($).toString(16).padStart(16,"0").slice(0,16)}function b7($,Z){if(k1.has($))k1.delete($);else if(k1.size>=KK)k1.delete(k1.keys().next().value);k1.set($,Z)}async function qK($){if(!Q1)return null;try{let Z=Bun.file(X0.join(Q1,`cw-${S7($)}.css`));if(!await Z.exists())return null;return await Z.text()}catch{return null}}async function zK($,Z){if(!Q1)return;try{if(!g8.existsSync(Q1))g8.mkdirSync(Q1,{recursive:!0});await Bun.write(X0.join(Q1,`cw-${S7($)}.css`),Z)}catch{}}async function d8($){try{let Z=await import($);if(Z&&Z.CSSGenerator)return{CSSGenerator:Z.CSSGenerator,config:Z.config,build:Z.build,defaultConfig:Z.defaultConfig}}catch{}return null}function WK(){let $=[],Z=process.env.HOME||process.env.USERPROFILE||"",Y=process.cwd();while(Y!==X0.dirname(Y))$.push(X0.join(Y,"node_modules","@cwcss","crosswind","dist","index.js")),$.push(X0.join(Y,"node_modules","@cwcss","crosswind","src","index.ts")),$.push(X0.join(Y,"pantry","@cwcss","crosswind","dist","index.js")),$.push(X0.join(Y,"pantry","@cwcss","crosswind","src","index.ts")),$.push(X0.join(Y,"node_modules","@stacksjs","crosswind","dist","index.js")),$.push(X0.join(Y,"pantry","@stacksjs","crosswind","dist","index.js")),Y=X0.dirname(Y);if(Z){let X=[X0.join(Z,"Code","Tools","crosswind","packages","crosswind","dist","index.js"),X0.join(Z,"Code","Tools","crosswind","packages","crosswind","src","index.ts"),X0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","dist","index.js"),X0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","src","index.ts"),X0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@cwcss","crosswind","dist","index.js"),X0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@stacksjs","crosswind","dist","index.js")];$.push(...X)}return $.push(X0.join(process.cwd(),"..","crosswind","packages","crosswind","dist","index.js")),$.push(X0.join(process.cwd(),"..","crosswind","packages","crosswind","src","index.ts")),$}async function UK(){if(h8)return T5;h8=!0;try{let $=["@cwcss/crosswind","@cwcss/crosswind/dist/index.js","@stacksjs/crosswind","@stacksjs/crosswind/dist/index.js"];for(let Y of $){let X=await d8(Y);if(X){if(T5=X,!process.env.STACKS_DEV_QUIET)console.log(`${H0.green}[Crosswind]${H0.reset} CSS engine loaded`);return T5}}let Z=WK();for(let Y of Z)if(await Bun.file(Y).exists()){let X=await d8(Y);if(X){if(T5=X,!process.env.STACKS_DEV_QUIET)console.log(`${H0.green}[Crosswind]${H0.reset} CSS engine loaded from ${X0.dirname(X0.dirname(Y))}`);return T5}}throw Error("Crosswind CSSGenerator not found in any location")}catch{return console.warn(`${H0.yellow}[Crosswind] CSS engine not available, Tailwind styles will not be generated${H0.reset}`),console.warn(`${H0.yellow}Run 'bun add @stacksjs/crosswind' to enable CSS generation${H0.reset}`),null}}async function BK($){try{let{loadConfigWithResult:Z}=await import("bunfig"),Y=await Z({name:"crosswind",cwd:$,defaultConfig:{},checkEnv:!1,verbose:!1});if(!Y?.path||!Y.config||Object.keys(Y.config).length===0)return null;let X=X0.relative($,Y.path);if(!process.env.STACKS_DEV_QUIET)console.log(`${H0.green}[Crosswind]${H0.reset} Loaded config from ${X||Y.path}`);return Y.config}catch(Z){if(Z instanceof Error&&Z.name==="ConfigNotFoundError")return null;return console.warn(`${H0.yellow}[Crosswind]${H0.reset} Failed to load crosswind config:`,Z instanceof Error?Z.message:Z),null}}function _K($){let Z=new Set,Y=/class\s*=\s*["']([^"']+)["']/gi,X=Y.exec($);while(X!==null){for(let G of X[1].split(/\s+/))if(G.trim())Z.add(G.trim());X=Y.exec($)}let Q=/(?:x-class|:class)\s*=\s*"([^"]+)"/gi,J=Q.exec($);while(J!==null){let G=J[1].match(/'([^']+)'/g);if(G){for(let K of G)for(let q of K.slice(1,-1).split(/\s+/))if(q.trim())Z.add(q.trim())}J=Q.exec($)}return Z}async function jK($,Z){try{let Y=await UK();if(!Y)return"";let X=_K($);if(X.size===0)return"";let Q=Z?X0.resolve(Z):process.cwd();if(!Q1)Q1=X0.join(Q,".stx/cache");let J=[...X].sort().join(" "),G=`${k7||"default"}::${J}`,K=k1.get(G);if(K!==void 0)return b7(G,K),K;let q=await qK(G);if(q!==null)return b7(G,q),q;if(!g$){let N=null;try{let{loadStxConfig:A}=await Promise.resolve().then(() => (E1(),f8)),R=await A(Q);if(R.css)if(typeof R.css==="string"){let T=X0.isAbsolute(R.css)?R.css:X0.resolve(Q,R.css);if(await Bun.file(T).exists()){let M=await import(T);N=M.default||M,console.log(`${H0.green}[Crosswind]${H0.reset} Loaded config from stx.config.ts \u2192 ${R.css}`)}}else{if(N={...R.css,content:R.css.content||[],preflight:R.css.preflight??!0,minify:R.css.minify??!1},R.css.config){let T=X0.isAbsolute(R.css.config)?R.css.config:X0.resolve(Q,R.css.config);if(await Bun.file(T).exists()){let M=await import(T);N={...M.default||M,...N}}}console.log(`${H0.green}[Crosswind]${H0.reset} Using inline CSS config from stx.config.ts`)}}catch{}g$=N||await BK(Q);try{k7=S7(JSON.stringify(g$??{}))}catch{k7="unhashable"}}let W=Y.defaultConfig||Y.config,z=g$||{},U=W.theme||{},_=(z.theme||{}).extend||{},j={...U};if(Object.keys(_).length>0)j.extend=_;let H=[...W.safelist||[],...z.safelist||[]],F={...W,...z,content:[],output:"",preflight:!0,minify:!1,theme:j,safelist:H},L=new Y.CSSGenerator(F);for(let N of H)L.generate(N);for(let N of X)L.generate(N);let O=L.toCSS(!0,!1),V=F.shortcuts||z.shortcuts||{};for(let[N,A]of Object.entries(V)){if(!X.has(N)&&!H.includes(N))continue;let R=A.split(/\s+/).filter(Boolean);for(let T of R)L.generate(T)}O=L.toCSS(!0,!1);let w=O.split(`
6843
+ `);for(let[N,A]of Object.entries(V)){if(!X.has(N)&&!H.includes(N))continue;let R=A.split(/\s+/).filter(Boolean),T=[],M=[];for(let I of R){let D=I.startsWith("dark:"),b=`.${(D?I.slice(5):I).replace(/\//g,"\\/").replace(/:/g,"\\:").replace(/\./g,"\\.").replace(/\[/g,"\\[").replace(/\]/g,"\\]").replace(/%/g,"\\%")}`;for(let y=0;y<w.length;y++){let P=w[y].trim();if(P===`${b} {`||P.startsWith(`${b} {`)){let d=y,f="";while(d<w.length){if(f+=w[d],w[d].includes("}"))break;d++}let m=f.match(/\{([^}]+)\}/);if(m)if(D)M.push(m[1].trim());else T.push(m[1].trim());break}}}if(T.length)O+=`
6844
6844
  .${N} { ${T.join(" ")} }`;if(M.length)O+=`
6845
6845
  @media (prefers-color-scheme: dark) { .dark .${N} { ${M.join(" ")} } }`}return b7(G,O),zK(G,O),O}catch(Y){return console.warn("Failed to generate Crosswind CSS:",Y),""}}async function h$($,Z){let Y=await jK($,Z);if(!Y)return $;let X=`<style data-crosswind="generated">
6846
6846
  ${Y}
@@ -7731,7 +7731,7 @@ window.__stx_reactive = (function() {
7731
7731
  ${xK()}
7732
7732
  ${Y}
7733
7733
  </script>`}function QZ($,Z,Y){if(JZ=0,!hK($))return $;let X=yK($);if(X.length===0)return $;let Q=gK($,X),J=fK(X,Z),G=Q.lastIndexOf("</body>");if(G!==-1)Q=Q.slice(0,G)+J+`
7734
- `+Q.slice(G);else Q+=J;return Q}function gK($,Z){let Y=$;for(let X of Z){let J=new RegExp(`<[a-z][a-z0-9-]*\\s+[^>]*data-stx-scope="([^"]*)"[^>]*x-data\\s*=\\s*["']${d$(X.stateExpr)}["']`,"gi").exec(Y);if(J)X.id=J[1],X.selector=`[data-stx-scope="${X.id}"]`;else{let K=new RegExp(`<[a-z][a-z0-9-]*\\s+[^>]*x-data\\s*=\\s*["']${d$(X.stateExpr)}["'][^>]*data-stx-scope="([^"]*)"`,"gi").exec(Y);if(K)X.id=K[1],X.selector=`[data-stx-scope="${X.id}"]`;else Y=Y.replace(new RegExp(`(<[a-z][a-z0-9-]*\\s+)([^>]*)(x-data\\s*=\\s*"${d$(X.stateExpr)}")([^>]*>)`,"gi"),`$1data-stx-scope="${X.id}" $2$3$4`),Y=Y.replace(new RegExp(`(<[a-z][a-z0-9-]*\\s+)([^>]*)(x-data\\s*=\\s*'${d$(X.stateExpr)}')([^>]*>)`,"gi"),`$1data-stx-scope="${X.id}" $2$3$4`)}}return Y=Y.replace(/\s*x-data\s*=\s*"([^"]*)"/g,' data-stx-xdata="$1"'),Y=Y.replace(/\s*x-data\s*=\s*'([^']*)'/g," data-stx-xdata='$1'"),Y=Y.replace(/\s*x-init\s*=\s*"[^"]*"/g,""),Y=Y.replace(/\s*x-init\s*=\s*'[^']*'/g,""),Y}function hK($){return/x-data\s*=\s*["']/.test($)}var JZ=0,SK=0;var GZ=k(()=>{i0()});import dK from"fs";import P7 from"path";import{createHighlighter as mK}from"ts-syntax-highlighter";async function uK($,Z={}){try{if(!await c($))throw Error(`Markdown file not found: ${$}`);let X=(await dK.promises.stat($)).mtime.getTime();if(Z.cache&&v7.has($)){let U=v7.get($);if(U.updatedAt>=X)return{content:U.content,data:U.data}}let Q=await Bun.file($).text(),{data:J,content:G}=A6(Q),K=Z.markdown||E7.markdown||{enabled:!0,syntaxHighlighting:{enabled:!0,serverSide:!0,defaultTheme:"github-dark",highlightUnknownLanguages:!0}},W=G5(G,{gfm:!0});if(K.syntaxHighlighting?.enabled&&K.syntaxHighlighting?.serverSide)W=await pK(W,K.syntaxHighlighting?.defaultTheme||"github-dark",K.syntaxHighlighting?.highlightUnknownLanguages||!1);let z={content:W,data:J||{}};if(Z.cache)v7.set($,{...z,updatedAt:X});return z}catch(Y){if(Z.debug)console.error(`Error reading/parsing markdown file ${$}:`,Y);let X=Y instanceof Error?Y.message:String(Y);return{content:J0("Markdown File",`Error reading/parsing markdown file: ${X}`,$,"",0,""),data:{}}}}async function pK($,Z,Y){let X=/<pre><code( class="language-([^"]+)")?>([^<]+)<\/code><\/pre>/g;if(!m$)try{m$=await mK({theme:Z||"github-dark",cache:!0})}catch(K){return console.error("Failed to initialize ts-syntax-highlighter:",K),$}let Q=async(K,q,W,z)=>{let U=z.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&").replace(/&quot;/g,'"').replace(/&#39;/g,"'"),B=W||(Y?"text":"");if(!B)return K;try{if(!m$.getSupportedLanguages().includes(B))return K;return(await m$.highlight(U,B,{theme:Z})).html}catch(_){console.error(`Error highlighting code block with language ${W}:`,_)}return K},J=$,G=$.matchAll(X);for(let K of G){let[q,W,z,U]=K,B=await Q(q,W,z,U);J=J.replace(q,B)}return J}async function KZ($,Z,Y="",X={}){return await cK($,/@markdown-file\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\}))?\)/g,async(G,K,q,W)=>{try{let z=K;if(!P7.isAbsolute(K))z=P7.resolve(P7.dirname(Y),K);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 V of O){let w=V.indexOf(":");if(w>0){let N=V.substring(0,w).trim(),A=V.substring(w+1).trim(),R=A.startsWith('"')&&A.endsWith('"'),T=A.startsWith("'")&&A.endsWith("'");if(R||T)A=A.substring(1,A.length-1);U[N]=A}}}}catch(L){if(X.debug)console.error("Error parsing context in @markdown-file directive:",L)}let{content:B,data:_}=await uK(z,X),j={...Z,..._,...U},H=B,F=/\{\{([^}]+)\}\}/g;return H=H.replace(F,(L,O)=>{let V=O.trim();return j[V]!==void 0?String(j[V]):L}),H}catch(z){let U=z instanceof Error?z.message:String(z);return J0("Markdown File",`Error including markdown file: ${U}`,Y,$,W,G)}})}async function cK($,Z,Y){let X=[],Q;while((Q=Z.exec($))!==null){let K=Q[0],q=Q.index,W=Q;X.push(Y(...W).then((z)=>({match:K,replacement:z,index:q})))}let J=await Promise.all(X);J.sort((K,q)=>q.index-K.index);let G=$;for(let{match:K,replacement:q}of J)G=G.replace(K,()=>q);return G}var v7,m$=null;var qZ=k(()=>{E1();O0();v7=new Map});function G1($,Z){try{let Y=$.trim();if(Z0(Y))return Y0(Y,Object.keys(Z))(...Object.values(Z));else return $0(Y,Z)}catch{return!1}}var zZ=k(()=>{L0()});function K1($,Z){let Y=lK($,Z);return Y.ok?{expression:Y.expression,endPos:Y.endPos}:null}function lK($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return{ok:!1,reason:"missing-open-paren",pos:Y};let X=E0($,"(",")",Y);if(X===-1)return{ok:!1,reason:"unclosed-paren",pos:Y};return{ok:!0,expression:$.slice(Y+1,X),endPos:X+1}}function b1($,Z,Y,X){let Q=1,J=X,G=new RegExp(`@${Z}\\s*\\(`,"g"),K=new RegExp(`@${Y}(?![a-z])`,"g");while(J<$.length&&Q>0){G.lastIndex=J,K.lastIndex=J;let q=G.exec($),W=K.exec($),z=q?q.index:1/0,U=W?W.index:1/0;if(z<U)Q++,J=z+q[0].length;else if(U<1/0){if(Q--,Q===0)return U;J=U+W[0].length}else break}return-1}function WZ($,Z){let Y=$.slice(Z).match(/^@if\s*/);if(!Y)return null;let X=Z+Y[0].length,Q=K1($,X);if(!Q)return null;let J=Q.endPos,G=b1($,"if","endif",J);if(G===-1)return null;let K=$.slice(J,G),q=[],W=0,z="if",U=Q.expression,B=0,_=0;while(W<K.length){let j=K.indexOf("@",W);if(j===-1)break;W=j;let H=K.substring(j);if(/^@if\s*\(/.test(H)){_++,W++;continue}if(/^@endif(?![a-z])/.test(H)){_--,W+=6;continue}if(_===0){let F=H.match(/^@elseif\s*/);if(F){q.push({type:z,condition:U,content:K.substring(B,W),start:J+B,end:J+W});let L=W+F[0].length,O=K1(K,L);if(!O){W++;continue}z="elseif",U=O.expression,W=O.endPos,B=W;continue}else if(/^@else(?![a-z])/.test(H)){q.push({type:z,condition:U,content:K.substring(B,W),start:J+B,end:J+W}),z="else",U=void 0,W+=5,B=W;continue}}W++}return q.push({type:z,condition:U,content:K.slice(B),start:J+B,end:J+K.length}),{fullMatch:$.slice(Z,G+6),branches:q,start:Z,end:G+6}}function M5($){let Z=[],Y=/@if\s*\(/g,X=Y.exec($);while(X!==null){if(Z.some((G)=>X.index>G.start&&X.index<G.end)){X=Y.exec($);continue}let J=WZ($,X.index);if(J)Z.push(J),Y.lastIndex=J.end;X=Y.exec($)}return Z}function u$($,Z,Y){let X=[],Q=new RegExp(`@${Z}\\s*\\(`,"g"),J=Q.exec($);while(J!==null){if(X.some((H)=>J.index>H.start&&J.index<H.end)){J=Q.exec($);continue}let K=J.index,q=K+J[0].length-1,W=E0($,"(",")",q);if(W===-1){J=Q.exec($);continue}let z=$.slice(q+1,W),U=W+1,B=b1($,Z,Y,U);if(B===-1){J=Q.exec($);continue}let _=$.slice(U,B),j=B+`@${Y}`.length;X.push({fullMatch:$.slice(K,j),name:Z,params:z,content:_,start:K,end:j}),Q.lastIndex=j,J=Q.exec($)}return X}function x7($,Z){let Y=$.slice(Z).match(/^@switch\s*/);if(!Y)return null;let X=Z+Y[0].length,Q=K1($,X);if(!Q)return null;let J=Q.endPos,G=b1($,"switch","endswitch",J);if(G===-1)return null;let K=$.slice(J,G),q=[],W=0,z=null,U=0;while(W<K.length){let B=K.slice(W),_=B.match(/^@switch\s*\(/),j=B.match(/^@endswitch(?![a-z])/);if(_){if(U++,z)z.content+=_[0];W+=_[0].length;continue}if(j){if(U--,z)z.content+=j[0];W+=j[0].length;continue}if(U>0){if(z)z.content+=K[W];W++;continue}let H=B.match(/^@case\s*/),F=B.match(/^@default(?![a-z])/),L=B.match(/^@break(?![a-z])/);if(H&&B.startsWith("@case")){if(z)q.push(z);let O=W+H[0].length,V=K1(K,O);if(!V){W++;continue}z={type:"case",value:V.expression,content:""},W=V.endPos}else if(F&&B.startsWith("@default")){if(z)q.push(z);z={type:"default",content:""},W+=F[0].length}else if(L&&B.startsWith("@break"))W+=L[0].length;else{if(z)z.content+=K[W];W++}}if(z)q.push(z);return{fullMatch:$.slice(Z,G+10),expression:Q.expression,cases:q,start:Z,end:G+10}}var UZ=()=>{};var BZ=()=>{};var p$=k(()=>{UZ();BZ()});function sK($,Z,Y){let X=$,Q=!0;while(Q){Q=!1;let J=X.match(/@switch\s*\(/);if(!J||J.index===void 0)break;let G=J.index,K=x7(X,G);if(!K)break;try{let q;if(Z0(K.expression))q=Y0(K.expression,Object.keys(Z))(...Object.values(Z));else q=$0(K.expression,Z);let W="",z=!1;for(let U of K.cases)if(U.type==="default"){if(!z)W=U.content.trim()}else try{let B;if(U.value&&Z0(U.value))B=Y0(U.value,Object.keys(Z))(...Object.values(Z));else if(U.value)B=$0(U.value,Z);if(q===B){W=U.content.trim(),z=!0;break}}catch{continue}X=X.substring(0,G)+W+X.substring(K.end),Q=!0}catch(q){let W=q instanceof Error?q.message:String(q),z=a("Switch",`Error evaluating @switch expression: ${W}`,i.EVALUATION_ERROR);X=X.substring(0,G)+z+X.substring(K.end);break}}return X}function S1($,Z,Y){let X=$;X=sK(X,Z,Y);{let J=!0;while(J){J=!1;let G=X.match(/@unless\s*\(/);if(!G||G.index===void 0)break;let K=G.index,q=K1(X,K+7);if(!q)break;let W=q.endPos,z=b1(X,"unless","endunless",W);if(z===-1){console.warn(`[stx] @unless directive at position ${K} has no matching @endunless \u2014 the block was skipped. Check for typos or missing closers.`);break}let U=X.slice(W,z),B=q.expression,_=-1;{let H=0,F=/@(?:if|unless)\s*\(/g,L=/@(?:endif|endunless)(?![a-z])/g,O=/@else(?![a-z])/g,V=[],w;while((w=F.exec(U))!==null)V.push({pos:w.index,type:"open"});while((w=L.exec(U))!==null)V.push({pos:w.index,type:"close"});while((w=O.exec(U))!==null)V.push({pos:w.index,type:"else"});V.sort((N,A)=>N.pos-A.pos);for(let N of V)if(N.type==="open")H++;else if(N.type==="close")H--;else if(N.type==="else"&&H===0){_=N.pos;break}}let j;if(_!==-1){let H=U.slice(0,_),F=U.slice(_+5);j=`@if (${B})${F}@else ${H}@endif`}else j=`@if (!(${B}))${U}@endif`;X=X.substring(0,K)+j+X.substring(z+10),J=!0}}X=g7(X,Z,Y),X=h7(X,Z,Y),X=f7(X,Z);let Q=()=>{let J=M5(X);if(J.length===0)return!1;for(let G=J.length-1;G>=0;G--){let K=J[G];try{let q="",W=!1;for(let z of K.branches){if(W)break;if(z.type==="else")q=z.content,W=!0;else try{let U;if(z.condition&&Z0(z.condition))U=Y0(z.condition,Object.keys(Z))(...Object.values(Z));else if(z.condition)U=$0(z.condition,Z);if(U)q=z.content,W=!0}catch(U){q=a(z.type==="if"?"If":"Elseif",`Error in @${z.type}(${z.condition}): ${U instanceof Error?U.message:String(U)}`,i.EVALUATION_ERROR),W=!0}}X=X.substring(0,K.start)+q+X.substring(K.end)}catch(q){let W=q instanceof Error?q.message:String(q),z=a("If",`Error processing @if block: ${W}`,i.EVALUATION_ERROR);X=X.substring(0,K.start)+z+X.substring(K.end)}}return!0};while(!0){let J=X;if(!Q())break;if(X===J)break}return X}function _Z($){let Z=0;while(Z<$.length&&/\s/.test($[Z]))Z++;if($[Z]!=="(")return null;Z++;while(Z<$.length&&/\s/.test($[Z]))Z++;let Y=$[Z];if(Y!=="'"&&Y!=='"')return null;Z++;let X=[];while(Z<$.length){let Q=$[Z];if(Q==="\\"&&Z+1<$.length){X.push($[Z+1]),Z+=2;continue}if(Q===Y){Z++;break}X.push(Q),Z++}while(Z<$.length&&/\s/.test($[Z]))Z++;if($[Z]!==")")return null;return Z++,{value:X.join(""),consumed:Z}}function f7($,Z){let Y=$;function X(K,q,W,z){let U=1,B=z,_=new RegExp(`@${q}(?:\\s*\\(|\\s|$)`,"g"),j=new RegExp(`@${W}(?![a-z])`,"g");while(B<K.length&&U>0){_.lastIndex=B,j.lastIndex=B;let H=_.exec(K),F=j.exec(K),L=H?H.index:1/0,O=F?F.index:1/0;if(L<O)U++,B=L+H[0].length;else if(O<1/0){if(U--,U===0)return O;B=O+F[0].length}else break}return-1}function Q(K,q,W){let z=0,U=new RegExp(`@${q}(?:\\s*\\(|\\s|$)`,"g"),B=new RegExp(`@${W}(?![a-z])`,"g"),_=/@else(?![a-z])/g,j=[],H;while((H=U.exec(K))!==null)j.push({pos:H.index,type:"open"});while((H=B.exec(K))!==null)j.push({pos:H.index,type:"close"});while((H=_.exec(K))!==null)j.push({pos:H.index,type:"else"});j.sort((F,L)=>F.pos-L.pos);for(let F of j)if(F.type==="open")z++;else if(F.type==="close")z--;else if(F.type==="else"&&z===0)return F.pos;return-1}{let K=!0;while(K){K=!1;let q=Y.match(/@auth(?:\s*\(|\s|(?=\n))/);if(!q||q.index===void 0)break;let W=q.index,z,U,B=Y.slice(W+5),_=_Z(B);if(_)z=_.value,U=W+5+_.consumed;else U=W+5;let j=X(Y,"auth","endauth",U);if(j===-1){console.warn(`[stx] @auth directive at position ${W} has no matching @endauth \u2014 the block was skipped.`);break}let H=Y.slice(U,j),F=Q(H,"auth","endauth"),L;if(!Z.auth)L=!1;else L=z?G1(`auth?.check && auth?.user?.[${z}]`,Z):G1("auth?.check",Z);let O;if(F!==-1){let V=H.slice(0,F),w=H.slice(F+5);O=L?V:w}else O=L?H:"";Y=Y.substring(0,W)+O+Y.substring(j+8),K=!0}}{let K=!0;while(K){K=!1;let q=Y.match(/@guest(?:\s*\(|\s|(?=\n))/);if(!q||q.index===void 0)break;let W=q.index,z,U,B=Y.slice(W+6),_=_Z(B);if(_)z=_.value,U=W+6+_.consumed;else U=W+6;let j=X(Y,"guest","endguest",U);if(j===-1){console.warn(`[stx] @guest directive at position ${W} has no matching @endguest \u2014 the block was skipped.`);break}let H=Y.slice(U,j),F=Q(H,"guest","endguest"),L;if(!Z.auth)L=!0;else L=z?G1(`!auth?.check || !auth?.user?.[${z}]`,Z):G1("!auth?.check",Z);let O;if(F!==-1){let V=H.slice(0,F),w=H.slice(F+5);O=L?V:w}else O=L?H:"";Y=Y.substring(0,W)+O+Y.substring(j+9),K=!0}}function J(K,q,W){if(Z.userCan&&typeof Z.userCan[K]==="boolean")return Z.userCan[K];if(Z.permissions?.check&&typeof Z.permissions.check==="function")try{let z=[K];if(q)z.push(q);if(W){let U=G1(W,Z);z.push(U)}return Z.permissions.check(...z)}catch{return!1}return!1}function G(K){let q=K.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 K of["can","cannot"]){let q=`end${K}`,W=K==="can"?"elsecan":"elsecannot",z=!0;while(z){z=!1;let U=Y.match(new RegExp(`@${K}\\s*\\(`));if(!U||U.index===void 0)break;let B=U.index,_=Y.slice(B+`@${K}`.length),j=G(_);if(!j)break;let H=B+`@${K}`.length+j.paramsEnd,F=X(Y,K,q,H);if(F===-1){console.warn(`[stx] @${K} directive at position ${B} has no matching @${q} \u2014 the block was skipped.`);break}let L=Y.slice(H,F),O=[],V=0,w=new RegExp(`@${K}\\s*\\(`,"g"),N=new RegExp(`@${q}(?![a-z])`,"g"),A=new RegExp(`@${W}\\s*\\(`,"g"),R=/@else(?![a-z])/g,T=[],M;while((M=w.exec(L))!==null)T.push({pos:M.index,type:"open"});while((M=N.exec(L))!==null)T.push({pos:M.index,type:"close"});while((M=A.exec(L))!==null)T.push({pos:M.index,type:"elseDirective"});while((M=R.exec(L))!==null)T.push({pos:M.index,type:"else"});T.sort((S,P)=>S.pos-P.pos);for(let S of T){if(S.type==="open"){V++;continue}if(S.type==="close"){V--;continue}if(V===0)O.push(S)}let I=[],D=0;for(let S=0;S<O.length;S++){let P=O[S];if(I.push({content:L.slice(D,P.pos),ability:void 0}),P.type==="elseDirective"){let d=L.slice(P.pos+`@${W}`.length),f=G(d);if(f){I[I.length-1]={content:L.slice(D,P.pos)},D=P.pos+`@${W}`.length+f.paramsEnd,I.push({content:"",ability:f.ability,type:f.type,id:f.id}),I.pop();let m=O[S+1],n=m?m.pos:L.length;I.push({content:L.slice(D,n),ability:f.ability,type:f.type,id:f.id}),D=n}}else D=P.pos+5}if(D<L.length){let S=I[I.length-1];if(O.length>0&&O[O.length-1].type==="else")I.push({content:L.slice(D),isFinalElse:!0});else if(I.length===0)I.push({content:L.slice(D)})}let E=J(j.ability,j.type,j.id),C=K==="can"?E:!E,b="";if(C)b=I[0]?.content||"";else{let S=!1;for(let P=1;P<I.length;P++){let d=I[P];if(d.isFinalElse){b=d.content,S=!0;break}if(d.ability){let f=J(d.ability,d.type,d.id);if(K==="can"?f:!f){b=d.content,S=!0;break}}}if(!S&&I.length>0){let P=I[I.length-1];if(P.isFinalElse)b=P.content}}Y=Y.substring(0,B)+b+Y.substring(F+`@${q}`.length),z=!0}}return Y}function g7($,Z,Y){let X=$;function Q(J,G,K,q,W){let z=!0;while(z){z=!1;let U=new RegExp(`@${G}\\s*\\(`),B=J.match(U);if(!B||B.index===void 0)break;let _=B.index,j=K1(J,_+`@${G}`.length);if(!j)break;let H=j.endPos,F=b1(J,G,K,H);if(F===-1){console.warn(`[stx] @${G} directive at position ${_} has no matching @${K} \u2014 the block was skipped.`);break}let L=J.slice(H,F),O=j.expression,V=-1,w=0,N=0;while(N<L.length){let A=L.indexOf("@",N);if(A===-1)break;let R=L.substring(A);if(/^@(?:if|unless|isset|empty)\s*\(/.test(R)){w++,N=A+1;continue}if(/^@(?:endif|endunless|endisset|endempty)(?![a-z])/.test(R)){w--,N=A+1;continue}if(w===0&&/^@else(?![a-z])/.test(R)){V=A;break}N=A+1}try{let A=q(O.trim()),R;if(V!==-1){let T=L.slice(0,V),M=L.slice(V+5);R=A?T:M}else R=A?L:"";J=J.substring(0,_)+R+J.substring(F+`@${K}`.length),z=!0}catch(A){let R=A instanceof Error?A.message:String(A),T=a(W,`Error processing @${G} directive: ${R}`,i.EVALUATION_ERROR);J=J.substring(0,_)+T+J.substring(F+`@${K}`.length);break}}return J}return X=Q(X,"isset","endisset",(J)=>{let G=G1(J,Z);return G!==void 0&&G!==null},"Isset"),X=Q(X,"empty","endempty",(J)=>{let G=G1(J,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 h7($,Z,Y){let X=$,Q="development";function J(G,K,q,W){let z=new RegExp(`@${K}(?![a-z])`,"g"),U=new RegExp(`@${q}(?![a-z])`,"g"),B=new RegExp(`^@${K}(?![a-z])`),_=new RegExp(`^@${q}(?![a-z])`),j=G,H=!0;while(H){H=!1,z.lastIndex=0;let F=z.exec(j);if(!F)break;let L=F.index,O=L+F[0].length;if(K==="env"){let E=j.substring(O).match(/^\s*\(\s*(['"])([^'"]+)\1\s*\)/);if(!E)break;O+=E[0].length,W=Q===E[2]}let V=1,w=O,N=-1;while(V>0&&w<j.length){z.lastIndex=w,U.lastIndex=w;let E=z.exec(j),C=U.exec(j),b=E?E.index:1/0,S=C?C.index:1/0;if(b<S)V++,w=b+E[0].length;else if(S<1/0){if(V--,V===0){N=S;break}w=S+C[0].length}else break}if(N===-1){console.warn(`[stx] @${K} directive at position ${L} has no matching @${q} \u2014 the block was skipped.`);break}let A=j.substring(O,N),R=-1,T=0,M=0;while(M<A.length){let E=A.indexOf("@",M);if(E===-1)break;let C=A.substring(E);if(B.test(C)){T++,M=E+1;continue}if(_.test(C)){T--,M=E+1;continue}if(T===0&&/^@else(?![a-z])/.test(C)){R=E;break}M=E+1}let I;if(R!==-1){let E=A.slice(0,R),C=A.slice(R+5);I=W?E:C}else I=W?A:"";let D=`@${q}`.length;j=j.substring(0,L)+I+j.substring(N+D),H=!0}return j}return X=J(X,"env","endenv",!1),X=J(X,"production","endproduction",Q==="production"),X=J(X,"development","enddevelopment",Q==="development"),X=J(X,"staging","endstaging",Q==="staging"),X=J(X,"testing","endtesting",Q==="testing"),X}var c$=k(()=>{zZ();e0();p$();L0()});function HZ($=16){let Z=new Uint8Array($);return crypto.getRandomValues(Z),btoa(String.fromCharCode(...Z))}function l$($,Z){if(!$)return Z?.nonceGenerator?.()??HZ();let Y=jZ.get($);if(!Y)Y=Z?.nonceGenerator?.()??HZ(),jZ.set($,Y);return Y}function rK($,Z){let Y=[];for(let[X,Q]of Object.entries($)){if(Q===void 0||Q===null)continue;if(typeof Q==="boolean"){if(Q)Y.push(X);continue}if(Array.isArray(Q)){let J=[...Q];if(Z&&(X==="script-src"||X==="style-src"))J=J.filter((G)=>!G.startsWith("'nonce-")),J.push(`'nonce-${Z}'`);if(J.length>0)Y.push(`${X} ${J.join(" ")}`)}}return Y.join("; ")}function OZ($,Z){return`<meta http-equiv="Content-Security-Policy" content="${rK($,Z).replace(/&/g,"&amp;").replace(/"/g,"&quot;")}">`}function FZ($,Z,Y){if(!Z.enabled||!Z.addMetaTag)return $;if($.includes('http-equiv="Content-Security-Policy"'))return $;if(!$.includes("<head>")&&!$.includes("<head "))return $;let X=Z.useNonce?l$(Y,Z):void 0,Q=OZ(Z.directives,X);return $.replace(/<head([^>]*)>/,`<head$1>
7734
+ `+Q.slice(G);else Q+=J;return Q}function gK($,Z){let Y=$;for(let X of Z){let J=new RegExp(`<[a-z][a-z0-9-]*\\s+[^>]*data-stx-scope="([^"]*)"[^>]*x-data\\s*=\\s*["']${d$(X.stateExpr)}["']`,"gi").exec(Y);if(J)X.id=J[1],X.selector=`[data-stx-scope="${X.id}"]`;else{let K=new RegExp(`<[a-z][a-z0-9-]*\\s+[^>]*x-data\\s*=\\s*["']${d$(X.stateExpr)}["'][^>]*data-stx-scope="([^"]*)"`,"gi").exec(Y);if(K)X.id=K[1],X.selector=`[data-stx-scope="${X.id}"]`;else Y=Y.replace(new RegExp(`(<[a-z][a-z0-9-]*\\s+)([^>]*)(x-data\\s*=\\s*"${d$(X.stateExpr)}")([^>]*>)`,"gi"),`$1data-stx-scope="${X.id}" $2$3$4`),Y=Y.replace(new RegExp(`(<[a-z][a-z0-9-]*\\s+)([^>]*)(x-data\\s*=\\s*'${d$(X.stateExpr)}')([^>]*>)`,"gi"),`$1data-stx-scope="${X.id}" $2$3$4`)}}return Y=Y.replace(/\s*x-data\s*=\s*"([^"]*)"/g,' data-stx-xdata="$1"'),Y=Y.replace(/\s*x-data\s*=\s*'([^']*)'/g," data-stx-xdata='$1'"),Y=Y.replace(/\s*x-init\s*=\s*"[^"]*"/g,""),Y=Y.replace(/\s*x-init\s*=\s*'[^']*'/g,""),Y}function hK($){return/x-data\s*=\s*["']/.test($)}var JZ=0,SK=0;var GZ=k(()=>{i0()});import dK from"fs";import P7 from"path";import{createHighlighter as mK}from"ts-syntax-highlighter";async function uK($,Z={}){try{if(!await c($))throw Error(`Markdown file not found: ${$}`);let X=(await dK.promises.stat($)).mtime.getTime();if(Z.cache&&v7.has($)){let U=v7.get($);if(U.updatedAt>=X)return{content:U.content,data:U.data}}let Q=await Bun.file($).text(),{data:J,content:G}=A6(Q),K=Z.markdown||E7.markdown||{enabled:!0,syntaxHighlighting:{enabled:!0,serverSide:!0,defaultTheme:"github-dark",highlightUnknownLanguages:!0}},W=G5(G,{gfm:!0});if(K.syntaxHighlighting?.enabled&&K.syntaxHighlighting?.serverSide)W=await pK(W,K.syntaxHighlighting?.defaultTheme||"github-dark",K.syntaxHighlighting?.highlightUnknownLanguages||!1);let z={content:W,data:J||{}};if(Z.cache)v7.set($,{...z,updatedAt:X});return z}catch(Y){if(Z.debug)console.error(`Error reading/parsing markdown file ${$}:`,Y);let X=Y instanceof Error?Y.message:String(Y);return{content:J0("Markdown File",`Error reading/parsing markdown file: ${X}`,$,"",0,""),data:{}}}}async function pK($,Z,Y){let X=/<pre><code( class="language-([^"]+)")?>([^<]+)<\/code><\/pre>/g;if(!m$)try{m$=await mK({theme:Z||"github-dark",cache:!0})}catch(K){return console.error("Failed to initialize ts-syntax-highlighter:",K),$}let Q=async(K,q,W,z)=>{let U=z.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&").replace(/&quot;/g,'"').replace(/&#39;/g,"'"),B=W||(Y?"text":"");if(!B)return K;try{if(!m$.getSupportedLanguages().includes(B))return K;return(await m$.highlight(U,B,{theme:Z})).html}catch(_){console.error(`Error highlighting code block with language ${W}:`,_)}return K},J=$,G=$.matchAll(X);for(let K of G){let[q,W,z,U]=K,B=await Q(q,W,z,U);J=J.replace(q,B)}return J}async function KZ($,Z,Y="",X={}){return await cK($,/@markdown-file\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\}))?\)/g,async(G,K,q,W)=>{try{let z=K;if(!P7.isAbsolute(K))z=P7.resolve(P7.dirname(Y),K);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 V of O){let w=V.indexOf(":");if(w>0){let N=V.substring(0,w).trim(),A=V.substring(w+1).trim(),R=A.startsWith('"')&&A.endsWith('"'),T=A.startsWith("'")&&A.endsWith("'");if(R||T)A=A.substring(1,A.length-1);U[N]=A}}}}catch(L){if(X.debug)console.error("Error parsing context in @markdown-file directive:",L)}let{content:B,data:_}=await uK(z,X),j={...Z,..._,...U},H=B,F=/\{\{([^}]+)\}\}/g;return H=H.replace(F,(L,O)=>{let V=O.trim();return j[V]!==void 0?String(j[V]):L}),H}catch(z){let U=z instanceof Error?z.message:String(z);return J0("Markdown File",`Error including markdown file: ${U}`,Y,$,W,G)}})}async function cK($,Z,Y){let X=[],Q;while((Q=Z.exec($))!==null){let K=Q[0],q=Q.index,W=Q;X.push(Y(...W).then((z)=>({match:K,replacement:z,index:q})))}let J=await Promise.all(X);J.sort((K,q)=>q.index-K.index);let G=$;for(let{match:K,replacement:q}of J)G=G.replace(K,()=>q);return G}var v7,m$=null;var qZ=k(()=>{E1();O0();v7=new Map});function G1($,Z){try{let Y=$.trim();if(Z0(Y))return Y0(Y,Object.keys(Z))(...Object.values(Z));else return $0(Y,Z)}catch{return!1}}var zZ=k(()=>{L0()});function K1($,Z){let Y=lK($,Z);return Y.ok?{expression:Y.expression,endPos:Y.endPos}:null}function lK($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return{ok:!1,reason:"missing-open-paren",pos:Y};let X=E0($,"(",")",Y);if(X===-1)return{ok:!1,reason:"unclosed-paren",pos:Y};return{ok:!0,expression:$.slice(Y+1,X),endPos:X+1}}function b1($,Z,Y,X){let Q=1,J=X,G=new RegExp(`@${Z}\\s*\\(`,"g"),K=new RegExp(`@${Y}(?![a-z])`,"g");while(J<$.length&&Q>0){G.lastIndex=J,K.lastIndex=J;let q=G.exec($),W=K.exec($),z=q?q.index:1/0,U=W?W.index:1/0;if(z<U)Q++,J=z+q[0].length;else if(U<1/0){if(Q--,Q===0)return U;J=U+W[0].length}else break}return-1}function WZ($,Z){let Y=$.slice(Z).match(/^@if\s*/);if(!Y)return null;let X=Z+Y[0].length,Q=K1($,X);if(!Q)return null;let J=Q.endPos,G=b1($,"if","endif",J);if(G===-1)return null;let K=$.slice(J,G),q=[],W=0,z="if",U=Q.expression,B=0,_=0;while(W<K.length){let j=K.indexOf("@",W);if(j===-1)break;W=j;let H=K.substring(j);if(/^@if\s*\(/.test(H)){_++,W++;continue}if(/^@endif(?![a-z])/.test(H)){_--,W+=6;continue}if(_===0){let F=H.match(/^@elseif\s*/);if(F){q.push({type:z,condition:U,content:K.substring(B,W),start:J+B,end:J+W});let L=W+F[0].length,O=K1(K,L);if(!O){W++;continue}z="elseif",U=O.expression,W=O.endPos,B=W;continue}else if(/^@else(?![a-z])/.test(H)){q.push({type:z,condition:U,content:K.substring(B,W),start:J+B,end:J+W}),z="else",U=void 0,W+=5,B=W;continue}}W++}return q.push({type:z,condition:U,content:K.slice(B),start:J+B,end:J+K.length}),{fullMatch:$.slice(Z,G+6),branches:q,start:Z,end:G+6}}function M5($){let Z=[],Y=/@if\s*\(/g,X=Y.exec($);while(X!==null){if(Z.some((G)=>X.index>G.start&&X.index<G.end)){X=Y.exec($);continue}let J=WZ($,X.index);if(J)Z.push(J),Y.lastIndex=J.end;X=Y.exec($)}return Z}function u$($,Z,Y){let X=[],Q=new RegExp(`@${Z}\\s*\\(`,"g"),J=Q.exec($);while(J!==null){if(X.some((H)=>J.index>H.start&&J.index<H.end)){J=Q.exec($);continue}let K=J.index,q=K+J[0].length-1,W=E0($,"(",")",q);if(W===-1){J=Q.exec($);continue}let z=$.slice(q+1,W),U=W+1,B=b1($,Z,Y,U);if(B===-1){J=Q.exec($);continue}let _=$.slice(U,B),j=B+`@${Y}`.length;X.push({fullMatch:$.slice(K,j),name:Z,params:z,content:_,start:K,end:j}),Q.lastIndex=j,J=Q.exec($)}return X}function x7($,Z){let Y=$.slice(Z).match(/^@switch\s*/);if(!Y)return null;let X=Z+Y[0].length,Q=K1($,X);if(!Q)return null;let J=Q.endPos,G=b1($,"switch","endswitch",J);if(G===-1)return null;let K=$.slice(J,G),q=[],W=0,z=null,U=0;while(W<K.length){let B=K.slice(W),_=B.match(/^@switch\s*\(/),j=B.match(/^@endswitch(?![a-z])/);if(_){if(U++,z)z.content+=_[0];W+=_[0].length;continue}if(j){if(U--,z)z.content+=j[0];W+=j[0].length;continue}if(U>0){if(z)z.content+=K[W];W++;continue}let H=B.match(/^@case\s*/),F=B.match(/^@default(?![a-z])/),L=B.match(/^@break(?![a-z])/);if(H&&B.startsWith("@case")){if(z)q.push(z);let O=W+H[0].length,V=K1(K,O);if(!V){W++;continue}z={type:"case",value:V.expression,content:""},W=V.endPos}else if(F&&B.startsWith("@default")){if(z)q.push(z);z={type:"default",content:""},W+=F[0].length}else if(L&&B.startsWith("@break"))W+=L[0].length;else{if(z)z.content+=K[W];W++}}if(z)q.push(z);return{fullMatch:$.slice(Z,G+10),expression:Q.expression,cases:q,start:Z,end:G+10}}var UZ=()=>{};var BZ=()=>{};var p$=k(()=>{UZ();BZ()});function sK($,Z,Y){let X=$,Q=!0;while(Q){Q=!1;let J=X.match(/@switch\s*\(/);if(!J||J.index===void 0)break;let G=J.index,K=x7(X,G);if(!K)break;try{let q;if(Z0(K.expression))q=Y0(K.expression,Object.keys(Z))(...Object.values(Z));else q=$0(K.expression,Z);let W="",z=!1;for(let U of K.cases)if(U.type==="default"){if(!z)W=U.content.trim()}else try{let B;if(U.value&&Z0(U.value))B=Y0(U.value,Object.keys(Z))(...Object.values(Z));else if(U.value)B=$0(U.value,Z);if(q===B){W=U.content.trim(),z=!0;break}}catch{continue}X=X.substring(0,G)+W+X.substring(K.end),Q=!0}catch(q){let W=q instanceof Error?q.message:String(q),z=a("Switch",`Error evaluating @switch expression: ${W}`,i.EVALUATION_ERROR);X=X.substring(0,G)+z+X.substring(K.end);break}}return X}function S1($,Z,Y){let X=$;X=sK(X,Z,Y);{let J=!0;while(J){J=!1;let G=X.match(/@unless\s*\(/);if(!G||G.index===void 0)break;let K=G.index,q=K1(X,K+7);if(!q)break;let W=q.endPos,z=b1(X,"unless","endunless",W);if(z===-1){console.warn(`[stx] @unless directive at position ${K} has no matching @endunless \u2014 the block was skipped. Check for typos or missing closers.`);break}let U=X.slice(W,z),B=q.expression,_=-1;{let H=0,F=/@(?:if|unless)\s*\(/g,L=/@(?:endif|endunless)(?![a-z])/g,O=/@else(?![a-z])/g,V=[],w;while((w=F.exec(U))!==null)V.push({pos:w.index,type:"open"});while((w=L.exec(U))!==null)V.push({pos:w.index,type:"close"});while((w=O.exec(U))!==null)V.push({pos:w.index,type:"else"});V.sort((N,A)=>N.pos-A.pos);for(let N of V)if(N.type==="open")H++;else if(N.type==="close")H--;else if(N.type==="else"&&H===0){_=N.pos;break}}let j;if(_!==-1){let H=U.slice(0,_),F=U.slice(_+5);j=`@if (${B})${F}@else ${H}@endif`}else j=`@if (!(${B}))${U}@endif`;X=X.substring(0,K)+j+X.substring(z+10),J=!0}}X=g7(X,Z,Y),X=h7(X,Z,Y),X=f7(X,Z);let Q=()=>{let J=M5(X);if(J.length===0)return!1;for(let G=J.length-1;G>=0;G--){let K=J[G];try{let q="",W=!1;for(let z of K.branches){if(W)break;if(z.type==="else")q=z.content,W=!0;else try{let U;if(z.condition&&Z0(z.condition))U=Y0(z.condition,Object.keys(Z))(...Object.values(Z));else if(z.condition)U=$0(z.condition,Z);if(U)q=z.content,W=!0}catch(U){q=a(z.type==="if"?"If":"Elseif",`Error in @${z.type}(${z.condition}): ${U instanceof Error?U.message:String(U)}`,i.EVALUATION_ERROR),W=!0}}X=X.substring(0,K.start)+q+X.substring(K.end)}catch(q){let W=q instanceof Error?q.message:String(q),z=a("If",`Error processing @if block: ${W}`,i.EVALUATION_ERROR);X=X.substring(0,K.start)+z+X.substring(K.end)}}return!0};while(!0){let J=X;if(!Q())break;if(X===J)break}return X}function _Z($){let Z=0;while(Z<$.length&&/\s/.test($[Z]))Z++;if($[Z]!=="(")return null;Z++;while(Z<$.length&&/\s/.test($[Z]))Z++;let Y=$[Z];if(Y!=="'"&&Y!=='"')return null;Z++;let X=[];while(Z<$.length){let Q=$[Z];if(Q==="\\"&&Z+1<$.length){X.push($[Z+1]),Z+=2;continue}if(Q===Y){Z++;break}X.push(Q),Z++}while(Z<$.length&&/\s/.test($[Z]))Z++;if($[Z]!==")")return null;return Z++,{value:X.join(""),consumed:Z}}function f7($,Z){let Y=$;function X(K,q,W,z){let U=1,B=z,_=new RegExp(`@${q}(?:\\s*\\(|\\s|$)`,"g"),j=new RegExp(`@${W}(?![a-z])`,"g");while(B<K.length&&U>0){_.lastIndex=B,j.lastIndex=B;let H=_.exec(K),F=j.exec(K),L=H?H.index:1/0,O=F?F.index:1/0;if(L<O)U++,B=L+H[0].length;else if(O<1/0){if(U--,U===0)return O;B=O+F[0].length}else break}return-1}function Q(K,q,W){let z=0,U=new RegExp(`@${q}(?:\\s*\\(|\\s|$)`,"g"),B=new RegExp(`@${W}(?![a-z])`,"g"),_=/@else(?![a-z])/g,j=[],H;while((H=U.exec(K))!==null)j.push({pos:H.index,type:"open"});while((H=B.exec(K))!==null)j.push({pos:H.index,type:"close"});while((H=_.exec(K))!==null)j.push({pos:H.index,type:"else"});j.sort((F,L)=>F.pos-L.pos);for(let F of j)if(F.type==="open")z++;else if(F.type==="close")z--;else if(F.type==="else"&&z===0)return F.pos;return-1}{let K=!0;while(K){K=!1;let q=Y.match(/@auth(?:\s*\(|\s|(?=\n))/);if(!q||q.index===void 0)break;let W=q.index,z,U,B=Y.slice(W+5),_=_Z(B);if(_)z=_.value,U=W+5+_.consumed;else U=W+5;let j=X(Y,"auth","endauth",U);if(j===-1){console.warn(`[stx] @auth directive at position ${W} has no matching @endauth \u2014 the block was skipped.`);break}let H=Y.slice(U,j),F=Q(H,"auth","endauth"),L;if(!Z.auth)L=!1;else L=z?G1(`auth?.check && auth?.user?.[${z}]`,Z):G1("auth?.check",Z);let O;if(F!==-1){let V=H.slice(0,F),w=H.slice(F+5);O=L?V:w}else O=L?H:"";Y=Y.substring(0,W)+O+Y.substring(j+8),K=!0}}{let K=!0;while(K){K=!1;let q=Y.match(/@guest(?:\s*\(|\s|(?=\n))/);if(!q||q.index===void 0)break;let W=q.index,z,U,B=Y.slice(W+6),_=_Z(B);if(_)z=_.value,U=W+6+_.consumed;else U=W+6;let j=X(Y,"guest","endguest",U);if(j===-1){console.warn(`[stx] @guest directive at position ${W} has no matching @endguest \u2014 the block was skipped.`);break}let H=Y.slice(U,j),F=Q(H,"guest","endguest"),L;if(!Z.auth)L=!0;else L=z?G1(`!auth?.check || !auth?.user?.[${z}]`,Z):G1("!auth?.check",Z);let O;if(F!==-1){let V=H.slice(0,F),w=H.slice(F+5);O=L?V:w}else O=L?H:"";Y=Y.substring(0,W)+O+Y.substring(j+9),K=!0}}function J(K,q,W){if(Z.userCan&&typeof Z.userCan[K]==="boolean")return Z.userCan[K];if(Z.permissions?.check&&typeof Z.permissions.check==="function")try{let z=[K];if(q)z.push(q);if(W){let U=G1(W,Z);z.push(U)}return Z.permissions.check(...z)}catch{return!1}return!1}function G(K){let q=K.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 K of["can","cannot"]){let q=`end${K}`,W=K==="can"?"elsecan":"elsecannot",z=!0;while(z){z=!1;let U=Y.match(new RegExp(`@${K}\\s*\\(`));if(!U||U.index===void 0)break;let B=U.index,_=Y.slice(B+`@${K}`.length),j=G(_);if(!j)break;let H=B+`@${K}`.length+j.paramsEnd,F=X(Y,K,q,H);if(F===-1){console.warn(`[stx] @${K} directive at position ${B} has no matching @${q} \u2014 the block was skipped.`);break}let L=Y.slice(H,F),O=[],V=0,w=new RegExp(`@${K}\\s*\\(`,"g"),N=new RegExp(`@${q}(?![a-z])`,"g"),A=new RegExp(`@${W}\\s*\\(`,"g"),R=/@else(?![a-z])/g,T=[],M;while((M=w.exec(L))!==null)T.push({pos:M.index,type:"open"});while((M=N.exec(L))!==null)T.push({pos:M.index,type:"close"});while((M=A.exec(L))!==null)T.push({pos:M.index,type:"elseDirective"});while((M=R.exec(L))!==null)T.push({pos:M.index,type:"else"});T.sort((y,P)=>y.pos-P.pos);for(let y of T){if(y.type==="open"){V++;continue}if(y.type==="close"){V--;continue}if(V===0)O.push(y)}let I=[],D=0;for(let y=0;y<O.length;y++){let P=O[y];if(I.push({content:L.slice(D,P.pos),ability:void 0}),P.type==="elseDirective"){let d=L.slice(P.pos+`@${W}`.length),f=G(d);if(f){I[I.length-1]={content:L.slice(D,P.pos)},D=P.pos+`@${W}`.length+f.paramsEnd,I.push({content:"",ability:f.ability,type:f.type,id:f.id}),I.pop();let m=O[y+1],n=m?m.pos:L.length;I.push({content:L.slice(D,n),ability:f.ability,type:f.type,id:f.id}),D=n}}else D=P.pos+5}if(D<L.length){let y=I[I.length-1];if(O.length>0&&O[O.length-1].type==="else")I.push({content:L.slice(D),isFinalElse:!0});else if(I.length===0)I.push({content:L.slice(D)})}let E=J(j.ability,j.type,j.id),C=K==="can"?E:!E,b="";if(C)b=I[0]?.content||"";else{let y=!1;for(let P=1;P<I.length;P++){let d=I[P];if(d.isFinalElse){b=d.content,y=!0;break}if(d.ability){let f=J(d.ability,d.type,d.id);if(K==="can"?f:!f){b=d.content,y=!0;break}}}if(!y&&I.length>0){let P=I[I.length-1];if(P.isFinalElse)b=P.content}}Y=Y.substring(0,B)+b+Y.substring(F+`@${q}`.length),z=!0}}return Y}function g7($,Z,Y){let X=$;function Q(J,G,K,q,W){let z=!0;while(z){z=!1;let U=new RegExp(`@${G}\\s*\\(`),B=J.match(U);if(!B||B.index===void 0)break;let _=B.index,j=K1(J,_+`@${G}`.length);if(!j)break;let H=j.endPos,F=b1(J,G,K,H);if(F===-1){console.warn(`[stx] @${G} directive at position ${_} has no matching @${K} \u2014 the block was skipped.`);break}let L=J.slice(H,F),O=j.expression,V=-1,w=0,N=0;while(N<L.length){let A=L.indexOf("@",N);if(A===-1)break;let R=L.substring(A);if(/^@(?:if|unless|isset|empty)\s*\(/.test(R)){w++,N=A+1;continue}if(/^@(?:endif|endunless|endisset|endempty)(?![a-z])/.test(R)){w--,N=A+1;continue}if(w===0&&/^@else(?![a-z])/.test(R)){V=A;break}N=A+1}try{let A=q(O.trim()),R;if(V!==-1){let T=L.slice(0,V),M=L.slice(V+5);R=A?T:M}else R=A?L:"";J=J.substring(0,_)+R+J.substring(F+`@${K}`.length),z=!0}catch(A){let R=A instanceof Error?A.message:String(A),T=a(W,`Error processing @${G} directive: ${R}`,i.EVALUATION_ERROR);J=J.substring(0,_)+T+J.substring(F+`@${K}`.length);break}}return J}return X=Q(X,"isset","endisset",(J)=>{let G=G1(J,Z);return G!==void 0&&G!==null},"Isset"),X=Q(X,"empty","endempty",(J)=>{let G=G1(J,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 h7($,Z,Y){let X=$,Q="development";function J(G,K,q,W){let z=new RegExp(`@${K}(?![a-z])`,"g"),U=new RegExp(`@${q}(?![a-z])`,"g"),B=new RegExp(`^@${K}(?![a-z])`),_=new RegExp(`^@${q}(?![a-z])`),j=G,H=!0;while(H){H=!1,z.lastIndex=0;let F=z.exec(j);if(!F)break;let L=F.index,O=L+F[0].length;if(K==="env"){let E=j.substring(O).match(/^\s*\(\s*(['"])([^'"]+)\1\s*\)/);if(!E)break;O+=E[0].length,W=Q===E[2]}let V=1,w=O,N=-1;while(V>0&&w<j.length){z.lastIndex=w,U.lastIndex=w;let E=z.exec(j),C=U.exec(j),b=E?E.index:1/0,y=C?C.index:1/0;if(b<y)V++,w=b+E[0].length;else if(y<1/0){if(V--,V===0){N=y;break}w=y+C[0].length}else break}if(N===-1){console.warn(`[stx] @${K} directive at position ${L} has no matching @${q} \u2014 the block was skipped.`);break}let A=j.substring(O,N),R=-1,T=0,M=0;while(M<A.length){let E=A.indexOf("@",M);if(E===-1)break;let C=A.substring(E);if(B.test(C)){T++,M=E+1;continue}if(_.test(C)){T--,M=E+1;continue}if(T===0&&/^@else(?![a-z])/.test(C)){R=E;break}M=E+1}let I;if(R!==-1){let E=A.slice(0,R),C=A.slice(R+5);I=W?E:C}else I=W?A:"";let D=`@${q}`.length;j=j.substring(0,L)+I+j.substring(N+D),H=!0}return j}return X=J(X,"env","endenv",!1),X=J(X,"production","endproduction",Q==="production"),X=J(X,"development","enddevelopment",Q==="development"),X=J(X,"staging","endstaging",Q==="staging"),X=J(X,"testing","endtesting",Q==="testing"),X}var c$=k(()=>{zZ();e0();p$();L0()});function HZ($=16){let Z=new Uint8Array($);return crypto.getRandomValues(Z),btoa(String.fromCharCode(...Z))}function l$($,Z){if(!$)return Z?.nonceGenerator?.()??HZ();let Y=jZ.get($);if(!Y)Y=Z?.nonceGenerator?.()??HZ(),jZ.set($,Y);return Y}function rK($,Z){let Y=[];for(let[X,Q]of Object.entries($)){if(Q===void 0||Q===null)continue;if(typeof Q==="boolean"){if(Q)Y.push(X);continue}if(Array.isArray(Q)){let J=[...Q];if(Z&&(X==="script-src"||X==="style-src"))J=J.filter((G)=>!G.startsWith("'nonce-")),J.push(`'nonce-${Z}'`);if(J.length>0)Y.push(`${X} ${J.join(" ")}`)}}return Y.join("; ")}function OZ($,Z){return`<meta http-equiv="Content-Security-Policy" content="${rK($,Z).replace(/&/g,"&amp;").replace(/"/g,"&quot;")}">`}function FZ($,Z,Y){if(!Z.enabled||!Z.addMetaTag)return $;if($.includes('http-equiv="Content-Security-Policy"'))return $;if(!$.includes("<head>")&&!$.includes("<head "))return $;let X=Z.useNonce?l$(Y,Z):void 0,Q=OZ(Z.directives,X);return $.replace(/<head([^>]*)>/,`<head$1>
7735
7735
  ${Q}`)}function LZ($,Z,Y,X){let Q=$,J=X.csp;if(Q=Q.replace(/@csp\b/g,()=>{if(!J?.enabled||!J.directives)return"<!-- CSP not configured -->";let G=J.useNonce?l$(Z,J):void 0;return OZ(J.directives,G)}),Q=Q.replace(/@cspNonce\b/g,()=>{if(!J?.enabled||!J.useNonce)return"";return l$(Z,J)}),J?.enabled&&J.useNonce)Z.cspNonce=l$(Z,J);return Q}var jZ;var VZ=k(()=>{jZ=new WeakMap});import aK from"crypto";function eK($=tK){let Z=aK.randomBytes(Math.ceil($/2)).toString("hex").slice(0,$);return d7=Z,Z}function $q(){if(!d7)eK();return d7}function Zq($=wZ){let Z=$q();return`<input type="hidden" name="${$}" value="${Z}">`}function NZ($){return $.replace(/@csrf(?:\((['"])([^'"]*)\1\))?/g,(Z,Y,X)=>{return Zq(X||wZ)})}var tK=40,wZ="_token",d7=null;var AZ=()=>{};async function RZ($,Z,Y,X){if(!X.customDirectives||X.customDirectives.length===0)return $;let Q=$;for(let J of X.customDirectives){if(!J.name||typeof J.handler!=="function"){if(X.debug)console.warn("Invalid custom directive:",J);continue}if(J.hasEndTag)Q=await Yq(Q,J,Z,Y,X);else Q=await Xq(Q,J,Z,Y,X)}return Q}async function Yq($,Z,Y,X,Q){let{name:J,handler:G}=Z,K=`@${J}`,q=`@end${J}`,W=$,z=m1(`${K}(?:\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\))?([\\s\\S]*?)${q}`,"g"),U=[],B=z.exec(W);while(B!==null){let[_,j="",H=""]=B,F=B.index||0;try{let L=j?TZ(j):[],O=H.trim(),V=await G(O,L,Y,X);U.push({original:_,processed:V,startIndex:F})}catch(L){let O=L instanceof Error?L.message:String(L);if(Q.debug)console.error(`Error processing custom directive @${J}:`,L);U.push({original:_,processed:a("CustomDirective",`Error in @${J}${j?`(${j})`:""}: ${O}`,i.EVALUATION_ERROR),startIndex:F})}B=z.exec(W)}for(let _=U.length-1;_>=0;_--){let{original:j,processed:H}=U[_];W=W.replace(j,H)}return W}async function Xq($,Z,Y,X,Q){let{name:J,handler:G}=Z,K=$,q=m1(`@${J}\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\)`,"g"),W=[],z=q.exec(K);while(z!==null){let[_,j=""]=z,H=z.index||0;try{let F=TZ(j),L=await G("",F,Y,X);W.push({original:_,processed:L,startIndex:H})}catch(F){let L=F instanceof Error?F.message:String(F);if(Q.debug)console.error(`Error processing custom directive @${J}:`,F);W.push({original:_,processed:a("CustomDirective",`Error in @${J}(${j}): ${L}`,i.EVALUATION_ERROR),startIndex:H})}z=q.exec(K)}let U=m1(`@${J}(?!\\w)(?!\\s*\\()`,"g"),B=U.exec(K);while(B!==null){let[_]=B,j=B.index||0;try{let H=await G("",[],Y,X);W.push({original:_,processed:H,startIndex:j})}catch(H){let F=H instanceof Error?H.message:String(H);if(Q.debug)console.error(`Error processing custom directive @${J}:`,H);W.push({original:_,processed:a("CustomDirective",`Error in @${J}: ${F}`,i.EVALUATION_ERROR),startIndex:j})}B=U.exec(K)}for(let _=W.length-1;_>=0;_--){let{original:j,processed:H}=W[_];K=K.replace(j,H)}return K}function TZ($){if(!$.trim())return[];let Z=[],Y="",X=!1,Q="";for(let J=0;J<$.length;J++){let G=$[J];if((G==='"'||G==="'")&&(J===0||$[J-1]!=="\\"))if(!X)X=!0,Q=G;else if(G===Q)X=!1;else Y+=G;else if(G===","&&!X)Z.push(Y.trim()),Y="";else Y+=G}if(Y.trim())Z.push(Y.trim());return Z.map((J)=>{let G=J.trim();if(G.startsWith('"')&&G.endsWith('"')||G.startsWith("'")&&G.endsWith("'"))return G.substring(1,G.length-1);return G})}var MZ=k(()=>{e0();u1()});import Jq from"crypto";function V0($){return String($??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function i$($,Z,Y,X){let Q=$||Z;return Y?`${Q} ${X}`:Q}function Qq(){return Jq.randomUUID()}function n$($,Z){let Y=$;return Y=Y.replace(/@csrf/g,()=>{if(!Z.csrf||typeof Z.csrf!=="object"){let X=Qq();Z.csrf={token:X}}if(Z.csrf.field)return Z.csrf.field;if(Z.csrf.token)return`<input type="hidden" name="_token" value="${V0(Z.csrf.token)}">`;return'<input type="hidden" name="_token" value="">'}),Y=Y.replace(/@method\(['"]([^'"]+)['"]\)/g,(X,Q)=>{let J=Q.toUpperCase();if(Q&&!["GET","POST"].includes(J))return`<input type="hidden" name="_method" value="${V0(J)}">`;return X}),Y}function EZ($,Z,Y=DZ){let X=$;return X=X.replace(/@form\(\s*(?:(?:'([^']+)'|"([^"]+)")\s*)?(?:,\s*(?:'([^']+)'|"([^"]+)")?)?\s*(?:,\s*\{([^}]+)\}\s*)?\)/g,(Q,J,G,K,q,W="")=>{let z=J||G||"POST",U=K||q||"",B=q1(W),_=z.toUpperCase(),j=["GET","POST"].includes(_)?_:"POST",H=`<form method="${V0(j)}" action="${V0(U)}"${B?` ${B}`:""}>`;if(H+=`
7736
7736
  ${n$("@csrf",Z)}`,!["GET","POST"].includes(_))H+=`
7737
7737
  ${n$(`@method('${_}')`,Z)}`;return H}),X=X.replace(/@endform/g,"</form>"),X=X.replace(/@input\(\s*(?:'([^']+)'|"([^"]+)")\s*(?:,\s*(?:(?:'([^']*)'|"([^"]*)")\s*)?)?(?:,\s*\{([^}]+)\})?\s*\)/g,(Q,J,G,K,q,W="")=>{let z=J||G||"",U=K||q||"",B=q1(W),_=I5(z,Z),j=_!==void 0&&_!==null?_:U||"",H=B.match(/type=['"]([^'"]+)['"]/i),F=H?H[1]:"text",L=D5(z,Z),O=B.match(/class=['"]([^'"]+)['"]/i),V=i$(O?O[1]:"",Y.input,L,Y.inputError),w=B.replace(/class=['"][^'"]+['"]/i,"");return w=w.replace(/type=['"][^'"]+['"]/i,""),`<input type="${V0(F)}" name="${V0(z)}" value="${V0(j)}" class="${V}"${w?` ${w}`:""}>`}),X=X.replace(/@textarea\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)([\s\S]*?)@endtextarea/g,(Q,J,G="",K="")=>{let q=q1(G),W=I5(J,Z)||K.trim(),z=D5(J,Z),U=q.match(/class=['"]([^'"]+)['"]/i),B=i$(U?U[1]:"",Y.input,z,Y.inputError),_=q.replace(/class=['"][^'"]+['"]/i,"");return`<textarea name="${V0(J)}" class="${B}"${_?` ${_}`:""}>${V0(W)}</textarea>`}),X=X.replace(/@select\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)([\s\S]*?)@endselect/g,(Q,J,G="",K)=>{let q=q1(G),W=I5(J,Z),z=D5(J,Z),U=q.match(/class=['"]([^'"]+)['"]/i),B=i$(U?U[1]:"",Y.input,z,Y.inputError),_=q.replace(/class=['"][^'"]+['"]/i,""),j=K;if(W!==void 0)j=K.replace(/(<option[^>]*value=['"]([^'"]+)['"][^>]*>)/gi,(H,F,L)=>{if((Array.isArray(W)?W.some((V)=>String(V)===L):String(W)===L)&&!F.includes("selected"))return F.replace(/(<option)/,"$1 selected");return H});return`<select name="${V0(J)}" class="${B}"${_?` ${_}`:""}>${j}</select>`}),X=X.replace(/@checkbox\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?(?:,\s*\{([^}]+)\})?\)/g,(Q,J,G="1",K="")=>{let q=q1(K),W=I5(J,Z),z=W!==void 0&&(Array.isArray(W)?W.some((j)=>String(j)===G):W===!0||String(W)===G),U=q.match(/class=['"]([^'"]+)['"]/i),B=U?U[1]:Y.checkInput,_=q.replace(/class=['"][^'"]+['"]/i,"");return`<input type="checkbox" name="${V0(J)}" value="${V0(G)}" class="${B}"${z?" checked":""}${_?` ${_}`:""}>`}),X=X.replace(/@radio\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)/g,(Q,J,G,K="")=>{let q=q1(K),W=I5(J,Z),z=W!==void 0&&W===G,U=q.match(/class=['"]([^'"]+)['"]/i),B=U?U[1]:Y.checkInput,_=q.replace(/class=['"][^'"]+['"]/i,"");return`<input type="radio" name="${V0(J)}" value="${V0(G)}" class="${B}"${z?" checked":""}${_?` ${_}`:""}>`}),X=X.replace(/@file\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)/g,(Q,J,G="")=>{let K=q1(G),q=K.match(/accept=['"]([^'"]+)['"]/i),W=q?q[1]:"",z=K.includes("multiple"),U=D5(J,Z),B=K.match(/class=['"]([^'"]+)['"]/i),_=i$(B?B[1]:"",Y.input,U,Y.inputError),j=K.replace(/class=['"][^'"]+['"]/gi,"").replace(/accept=['"][^'"]+['"]/gi,"").replace(/\bmultiple\b/gi,"").trim(),H=[`<input type="file" name="${V0(J)}"`,`class="${_}"`];if(W)H.push(`accept="${V0(W)}"`);if(z)H.push("multiple");if(j)H.push(j);return`${H.join(" ")}>`}),X=X.replace(/@label\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)([\s\S]*?)@endlabel/g,(Q,J,G="",K)=>{let q=q1(G),W=q.match(/class=['"]([^'"]+)['"]/i),z=W?W[1]:Y.label,U=q.replace(/class=['"][^'"]+['"]/i,"");return`<label for="${V0(J)}" class="${z}"${U?` ${U}`:""}>${K}</label>`}),X}function kZ($,Z,Y=DZ){return $.replace(/@error\(['"]([^'"]+)['"]\)([\s\S]*?)@enderror/g,(X,Q,J)=>{try{if(D5(Q,Z))return J.replace(/\{\{([^}]+)\}\}/g,(G,K)=>{try{if(K.trim()==="$message"||K.trim()==="message")return IZ(Q,Z);if(K.trim().includes("errors.first")||K.trim().includes("$errors.first")){if(typeof Z.errors?.first==="function")return Z.errors.first(Q);return IZ(Q,Z)}let q=K.trim();if(Z0(q)){let W=$0(q,Z);return W!==void 0?String(W):q}return q}catch{return K}});return""}catch(G){return console.error("Error processing @error directive:",G),X}})}function D5($,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 IZ($,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 Y=Z.errors[$];return Array.isArray(Y)?Y[0]:String(Y)}return""}function I5($,Z){let Y;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(Y=Z[X],Y!==void 0)return Y}return Z[$]}function q1($){if(!$.trim())return"";let Z=[],Y=$.trim(),X=/([\w-]+)\s*:\s*(['"]?)([^,'"]*)\2(?:\s*,\s*|\s*$)/g,Q;while((Q=X.exec(Y))!==null){let[,J,,G]=Q;Z.push(`${J}="${G.trim()}"`)}return Z.join(" ")}var DZ;var bZ=k(()=>{L0();DZ={input:"form-control",inputError:"is-invalid",checkInput:"form-check-input",label:"form-label",errorFeedback:"invalid-feedback"}});import p7 from"path";async function Gq(){if(E5!==void 0)return E5;try{E5=(await import("@stacksjs/ts-i18n")).loadLocale??null}catch{E5=null}return E5}function Kq($,Z=0){if(Z<=0)return!1;return Date.now()-$.loadedAt>Z}async function qq($,Z){if({...i7,...Z.i18n}.cache&&c7[$]){let Q=c7[$],J=Z.i18n?.cacheMaxAge??0;if(!Kq(Q,J))return Q.translations}if(k5[$]?.state==="loading")return k5[$].promise;m7[$]="loading";let X=l7($,Z).then((Q)=>{return m7[$]="loaded",delete k5[$],Q}).catch((Q)=>{throw m7[$]="error",k5[$]={promise:X,state:"error",error:Q instanceof Error?Q:Error(String(Q))},Q});return k5[$]={promise:X,state:"loading"},X}async function l7($,Z){let Y={...i7,...Z.i18n},X=p7.isAbsolute(Y.translationsDir)?Y.translationsDir:p7.resolve(Z.root||process.cwd(),Y.translationsDir);try{let Q=await Gq(),J=Q?await Q($,{translationsDir:X,defaultLocale:Y.defaultLocale,sources:_q(Y.format)}):await zq($,Y,X);if(J===void 0){if($!==Y.defaultLocale)return l7(Y.defaultLocale,Z);return{}}let G=J;if(Y.cache)c7[$]={translations:G,loadedAt:Date.now(),locale:$};return G}catch(Q){if(Z.debug)console.error(`Error loading translation file for locale "${$}":`,Q);if($!==Y.defaultLocale)return l7(Y.defaultLocale,Z);return{}}}async function zq($,Z,Y){let X=p7.join(Y,`${$}${Wq(Z.format)}`);try{let Q=await import(X);return Q.default||Q}catch(Q){try{let J=await Bun.file(X).text();if(Z.format==="yaml"||Z.format==="yml")return Uq(J);if(Z.format==="json")return JSON.parse(J);throw Q}catch{return}}}function Wq($){switch($){case"yaml":return".yaml";case"yml":return".yml";case"js":return".js";case"ts":return".ts";case"json":default:return".json"}}function Uq($){let Z={},Y=$.split(`
@@ -7927,8 +7927,8 @@ else {
7927
7927
  ${q?`{${q}}`:"{}"}
7928
7928
  </script>
7929
7929
  </div>`}}});var uZ={};s(uZ,{warnUnbalancedTags:()=>t7,findUnbalancedTags:()=>mZ});function z1($){return $.replace(/[^\n]/g," ")}function mZ($){let Z=$.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,z1).replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,z1).replace(/<!--[\s\S]*?-->/g,z1).replace(/\{\{\{[\s\S]*?\}\}\}/g,z1).replace(/\{\{[\s\S]*?\}\}/g,z1).replace(/\{!![\s\S]*?!!\}/g,z1).replace(/"[^"]*"/g,z1).replace(/'[^']*'/g,z1),Y=new Map,X=new Map,Q=/<(\/?)([A-Za-z][\w-]*)\b[^>]*?(\/?)>/g,J;while((J=Q.exec(Z))!==null){let K=J[1]==="/",q=J[2],W=J[3]==="/";if(uq.has(q.toLowerCase()))continue;if(W)continue;if(K)X.set(q,(X.get(q)??0)+1);else{let z=Y.get(q);if(z)z.count++;else{let U=Z.slice(0,J.index).split(`
7930
- `).length;Y.set(q,{count:1,firstLine:U})}}}let G=[];for(let K of new Set([...Y.keys(),...X.keys()])){if(pq.has(K.toLowerCase()))continue;let q=Y.get(K)?.count??0,W=X.get(K)??0;if(q!==W)G.push({tag:K,opened:q,closed:W,firstOpenLine:Y.get(K)?.firstLine??0})}return G}function t7($,Z){let Y;try{Y=mZ($)}catch{return}if(Y.length===0)return;let X=`${Z}:${$.length}`;if(dZ.has(X))return;dZ.add(X);let Q=Z?Z.split(/[/\\]/).pop()||Z:"template";for(let{tag:J,opened:G,closed:K,firstOpenLine:q}of Y)if(G>K){let W=q?` (first opened at line ${q})`:"";console.warn(`[stx] ${Q}: <${J}> ${G} opened, ${K} closed \u2014 an unclosed <${J}>${W} may swallow the content that follows it.`)}else console.warn(`[stx] ${Q}: <${J}> ${G} opened, ${K} closed \u2014 ${K-G} stray </${J}>.`)}var uq,pq,dZ;var e7=k(()=>{uq=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),pq=new Set(["html","head","body","p","li","dt","dd","rt","rp","option","optgroup","thead","tbody","tfoot","tr","td","th","colgroup","caption"]);dZ=new Set});import g0 from"path";import $3 from"fs";function pZ($){return $.split("-").map((Z)=>Z.charAt(0).toUpperCase()+Z.slice(1)).join("")}function cZ($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}class lZ{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,Y,X){let Q=$.endsWith(".stx")?$.slice(0,-4):$,J=X?.__importedComponents;if(J){let _=[Q,Q.toLowerCase(),pZ(Q),cZ(Q)];for(let j of _)if(J.has(j))return J.get(j)}let G=[...new Set([`${Q}.stx`,`${pZ(Q)}.stx`,`${cZ(Q)}.stx`])];if(Q.startsWith("./")||Q.startsWith("../")){let _=g0.resolve(g0.dirname(Z),`${Q}.stx`);if(await c(_))return _;return null}let K=[],q=Y.componentsDir||"",W=X?.__originalFilePath;if(W)K.push(g0.join(g0.dirname(W),"components"));if(q)K.push(q);let z=g0.join(g0.dirname(Z),"components");if(!K.includes(z))K.push(z);let U=process.cwd(),B=[g0.resolve(U,"src/components"),g0.resolve(U,"components"),g0.resolve(import.meta.dir,"components")];for(let _ of B)if(!K.includes(_))K.push(_);for(let _ of K){if(!_)continue;for(let j of G){let H=g0.join(_,j);if(await c(H))return H}try{if(!$3.statSync(_,{throwIfNoEntry:!1})?.isDirectory())continue;let H=$3.readdirSync(_,{withFileTypes:!0});for(let F of H)if(F.isDirectory()){let L=g0.join(_,F.name);for(let O of G){let V=g0.join(L,O);if(await c(V))return V}}}catch{}}return null}}var k0;var Z3=k(()=>{O0();k0=new lZ});function W1($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function cq($){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 Y3;var X3=k(()=>{Y3={name:"StxLink",aliases:["stx-link"],render($,Z,Y){let X=cq($),Q=(typeof $.static.class==="string"?$.static.class:"")||(typeof $.static.className==="string"?$.static.className:""),J=typeof $.static.activeClass==="string"?$.static.activeClass:"active",G=typeof $.static.exactActiveClass==="string"?$.static.exactActiveClass:"exact-active",K=$.static.prefetch===!0||$.static.prefetch==="true"||$.serverDynamic.prefetch===!0,q=[];if(X.reactive)q.push(`:href="${W1(X.value)}"`);else q.push(`href="${W1(X.value)}"`);if(Q)q.push(`class="${W1(Q)}"`);if(q.push("data-stx-link"),q.push(`data-stx-active-class="${W1(J)}"`),q.push(`data-stx-exact-active-class="${W1(G)}"`),K)q.push("data-stx-prefetch");let W=new Set(["to","class","className","activeClass","exactActiveClass","prefetch"]);for(let[z,U]of Object.entries($.static)){if(W.has(z))continue;if(typeof U==="boolean"){if(U)q.push(W1(z))}else q.push(`${W1(z)}="${W1(U)}"`)}return`<a ${q.join(" ")}>${Z}</a>`}}});function U0($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function M0($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}function Q3($,Z,Y=!1){let X=$.serverDynamic[Z];if(X!==void 0)return X!==!1&&X!=="false";let Q=$.static[Z];if(Q!==void 0)return Q!=="false"&&Q!==!1;return Y}function iZ($){if($.includes("(")||$.includes(","))return $;let Z=$.trim().split(/\s+/),Y=[];for(let X of Z)if(X.includes(":")){let[Q,J]=X.split(":"),G=lq[Q];if(G)Y.push(`(max-width: ${G}px) ${J}`);else{let K=Number.parseInt(Q);if(!Number.isNaN(K))Y.push(`(max-width: ${K}px) ${J}`)}}else Y.push(X);return Y.join(", ")}function G3($,Z,Y,X){return Z.map((Q)=>`${b5($,Q,void 0,Y,X)} ${Q}w`).join(", ")}function iq($,Z,Y,X,Q){return Z.map((J)=>{let G=Y?Y*J:void 0;return`${b5($,G,void 0,X,Q)} ${J}x`}).join(", ")}function b5($,Z,Y,X,Q){if(!X||X==="local"||X==="static")return $;if(X==="cloudinary"){let J=[];if(Z)J.push(`w_${Z}`);if(Y)J.push(`h_${Y}`);if(Q)J.push(`f_${Q}`);J.push("q_auto");let G=J.join(",");return $.replace("/upload/",`/upload/${G}/`)}if(X==="imgix"){let J=new URLSearchParams;if(Z)J.set("w",String(Z));if(Y)J.set("h",String(Y));if(Q)J.set("fm",Q);J.set("auto","format");let G=$.includes("?")?"&":"?";return`${$}${G}${J.toString()}`}if(X==="bunny"){let J=new URLSearchParams;if(Z)J.set("width",String(Z));if(Y)J.set("height",String(Y));if(Q)J.set("format",Q);let G=$.includes("?")?"&":"?";return`${$}${G}${J.toString()}`}return $}function nq($,Z,Y="#e5e7eb"){let X=`<svg xmlns="http://www.w3.org/2000/svg" width="${$}" height="${Z}"><rect width="100%" height="100%" fill="${Y}"/></svg>`;return`data:image/svg+xml;base64,${btoa(X)}`}var lq,J3,K3;var q3=k(()=>{lq={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},J3=[320,640,768,1024,1280,1536,1920];K3={name:"StxImage",aliases:["stx-image","stx-img"],render($,Z,Y){let X=M0($,"src")||"",Q=M0($,"alt")||"",J=M0($,"width"),G=M0($,"height"),K=M0($,"sizes"),q=M0($,"srcset"),W=M0($,"densities"),z=M0($,"format"),U=M0($,"placeholder"),B=M0($,"placeholderColor")||"#e5e7eb",_=M0($,"provider"),j=M0($,"class")||M0($,"className")||"",H=M0($,"style")||"",F=M0($,"quality"),L=Q3($,"lazy",!0),O=Q3($,"preload",!1),V=Q3($,"picture",!1)||!!z,w=J?Number.parseInt(J):void 0,N=G?Number.parseInt(G):void 0,A=q||"",R="";if(!A&&K)A=G3(X,J3,_,z),R=iZ(K);else if(!A&&W){let b=W.split(/\s+/).map((S)=>Number.parseFloat(S.replace("x","")));A=iq(X,b,w,_,z)}else if(K)R=iZ(K);let T=[];if(H)T.push(H);if(w&&N)T.push(`aspect-ratio:${w}/${N}`);if(U==="blur"||U==="color"||U==="thumbhash"){let b=nq(w||16,N||9,B);T.push(`background-image:url(${b})`),T.push("background-size:cover"),T.push("background-repeat:no-repeat")}else if(U&&U!=="empty"&&U!=="none")T.push(`background-image:url(${U0(U)})`),T.push("background-size:cover"),T.push("background-repeat:no-repeat");let M=b5(X,w,N,_,z),I=[];if(I.push(`src="${U0(M)}"`),I.push(`alt="${U0(Q)}"`),J)I.push(`width="${U0(J)}"`);if(G)I.push(`height="${U0(G)}"`);if(L)I.push('loading="lazy"');if(I.push('decoding="async"'),j)I.push(`class="${U0(j)}"`);if(T.length>0)I.push(`style="${U0(T.join(";"))}"`);if(A)I.push(`srcset="${U0(A)}"`);if(R)I.push(`sizes="${U0(R)}"`);let D=new Set(["src","alt","width","height","lazy","sizes","srcset","placeholder","placeholderColor","class","className","style","format","provider","quality","densities","preload","picture"]);for(let[b,S]of Object.entries($.static)){if(D.has(b))continue;if(typeof S==="boolean"){if(S)I.push(U0(b))}else I.push(`${U0(b)}="${U0(S)}"`)}let E=`<img ${I.join(" ")} />`,C="";if(O){let S=z==="webp"?"image/webp":z==="avif"?"image/avif":"";C=`<link rel="preload" as="image" href="${U0(M)}"${S?` type="${S}"`:""}${A?` imagesrcset="${U0(A)}"`:""}${R?` imagesizes="${U0(R)}"`:""} />
7931
- `}if(V){let b=[];if(z==="avif"||z==="auto"){let S=b5(X,w,N,_,"avif"),P=A?G3(X,J3,_,"avif"):`${S}`;b.push(`<source type="image/avif" srcset="${U0(P)}"${R?` sizes="${U0(R)}"`:""} />`)}if(z==="webp"||z==="auto"){let S=b5(X,w,N,_,"webp"),P=A?G3(X,J3,_,"webp"):`${S}`;b.push(`<source type="image/webp" srcset="${U0(P)}"${R?` sizes="${U0(R)}"`:""} />`)}return`${C}<picture>
7930
+ `).length;Y.set(q,{count:1,firstLine:U})}}}let G=[];for(let K of new Set([...Y.keys(),...X.keys()])){if(pq.has(K.toLowerCase()))continue;let q=Y.get(K)?.count??0,W=X.get(K)??0;if(q!==W)G.push({tag:K,opened:q,closed:W,firstOpenLine:Y.get(K)?.firstLine??0})}return G}function t7($,Z){let Y;try{Y=mZ($)}catch{return}if(Y.length===0)return;let X=`${Z}:${$.length}`;if(dZ.has(X))return;dZ.add(X);let Q=Z?Z.split(/[/\\]/).pop()||Z:"template";for(let{tag:J,opened:G,closed:K,firstOpenLine:q}of Y)if(G>K){let W=q?` (first opened at line ${q})`:"";console.warn(`[stx] ${Q}: <${J}> ${G} opened, ${K} closed \u2014 an unclosed <${J}>${W} may swallow the content that follows it.`)}else console.warn(`[stx] ${Q}: <${J}> ${G} opened, ${K} closed \u2014 ${K-G} stray </${J}>.`)}var uq,pq,dZ;var e7=k(()=>{uq=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),pq=new Set(["html","head","body","p","li","dt","dd","rt","rp","option","optgroup","thead","tbody","tfoot","tr","td","th","colgroup","caption"]);dZ=new Set});import g0 from"path";import $3 from"fs";function pZ($){return $.split("-").map((Z)=>Z.charAt(0).toUpperCase()+Z.slice(1)).join("")}function cZ($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}class lZ{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,Y,X){let Q=$.endsWith(".stx")?$.slice(0,-4):$,J=X?.__importedComponents;if(J){let _=[Q,Q.toLowerCase(),pZ(Q),cZ(Q)];for(let j of _)if(J.has(j))return J.get(j)}let G=[...new Set([`${Q}.stx`,`${pZ(Q)}.stx`,`${cZ(Q)}.stx`])];if(Q.startsWith("./")||Q.startsWith("../")){let _=g0.resolve(g0.dirname(Z),`${Q}.stx`);if(await c(_))return _;return null}let K=[],q=Y.componentsDir||"",W=X?.__originalFilePath;if(W)K.push(g0.join(g0.dirname(W),"components"));if(q)K.push(q);let z=g0.join(g0.dirname(Z),"components");if(!K.includes(z))K.push(z);let U=process.cwd(),B=[g0.resolve(U,"src/components"),g0.resolve(U,"components"),g0.resolve(import.meta.dir,"components")];for(let _ of B)if(!K.includes(_))K.push(_);for(let _ of K){if(!_)continue;for(let j of G){let H=g0.join(_,j);if(await c(H))return H}try{if(!$3.statSync(_,{throwIfNoEntry:!1})?.isDirectory())continue;let H=$3.readdirSync(_,{withFileTypes:!0});for(let F of H)if(F.isDirectory()){let L=g0.join(_,F.name);for(let O of G){let V=g0.join(L,O);if(await c(V))return V}}}catch{}}return null}}var k0;var Z3=k(()=>{O0();k0=new lZ});function W1($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function cq($){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 Y3;var X3=k(()=>{Y3={name:"StxLink",aliases:["stx-link"],render($,Z,Y){let X=cq($),Q=(typeof $.static.class==="string"?$.static.class:"")||(typeof $.static.className==="string"?$.static.className:""),J=typeof $.static.activeClass==="string"?$.static.activeClass:"active",G=typeof $.static.exactActiveClass==="string"?$.static.exactActiveClass:"exact-active",K=$.static.prefetch===!0||$.static.prefetch==="true"||$.serverDynamic.prefetch===!0,q=[];if(X.reactive)q.push(`:href="${W1(X.value)}"`);else q.push(`href="${W1(X.value)}"`);if(Q)q.push(`class="${W1(Q)}"`);if(q.push("data-stx-link"),q.push(`data-stx-active-class="${W1(J)}"`),q.push(`data-stx-exact-active-class="${W1(G)}"`),K)q.push("data-stx-prefetch");let W=new Set(["to","class","className","activeClass","exactActiveClass","prefetch"]);for(let[z,U]of Object.entries($.static)){if(W.has(z))continue;if(typeof U==="boolean"){if(U)q.push(W1(z))}else q.push(`${W1(z)}="${W1(U)}"`)}return`<a ${q.join(" ")}>${Z}</a>`}}});function U0($){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 Y=$.static[Z];if(typeof Y==="string")return Y;return}function Q3($,Z,Y=!1){let X=$.serverDynamic[Z];if(X!==void 0)return X!==!1&&X!=="false";let Q=$.static[Z];if(Q!==void 0)return Q!=="false"&&Q!==!1;return Y}function iZ($){if($.includes("(")||$.includes(","))return $;let Z=$.trim().split(/\s+/),Y=[];for(let X of Z)if(X.includes(":")){let[Q,J]=X.split(":"),G=lq[Q];if(G)Y.push(`(max-width: ${G}px) ${J}`);else{let K=Number.parseInt(Q);if(!Number.isNaN(K))Y.push(`(max-width: ${K}px) ${J}`)}}else Y.push(X);return Y.join(", ")}function G3($,Z,Y,X){return Z.map((Q)=>`${b5($,Q,void 0,Y,X)} ${Q}w`).join(", ")}function iq($,Z,Y,X,Q){return Z.map((J)=>{let G=Y?Y*J:void 0;return`${b5($,G,void 0,X,Q)} ${J}x`}).join(", ")}function b5($,Z,Y,X,Q){if(!X||X==="local"||X==="static")return $;if(X==="cloudinary"){let J=[];if(Z)J.push(`w_${Z}`);if(Y)J.push(`h_${Y}`);if(Q)J.push(`f_${Q}`);J.push("q_auto");let G=J.join(",");return $.replace("/upload/",`/upload/${G}/`)}if(X==="imgix"){let J=new URLSearchParams;if(Z)J.set("w",String(Z));if(Y)J.set("h",String(Y));if(Q)J.set("fm",Q);J.set("auto","format");let G=$.includes("?")?"&":"?";return`${$}${G}${J.toString()}`}if(X==="bunny"){let J=new URLSearchParams;if(Z)J.set("width",String(Z));if(Y)J.set("height",String(Y));if(Q)J.set("format",Q);let G=$.includes("?")?"&":"?";return`${$}${G}${J.toString()}`}return $}function nq($,Z,Y="#e5e7eb"){let X=`<svg xmlns="http://www.w3.org/2000/svg" width="${$}" height="${Z}"><rect width="100%" height="100%" fill="${Y}"/></svg>`;return`data:image/svg+xml;base64,${btoa(X)}`}var lq,J3,K3;var q3=k(()=>{lq={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},J3=[320,640,768,1024,1280,1536,1920];K3={name:"StxImage",aliases:["stx-image","stx-img"],render($,Z,Y){let X=I0($,"src")||"",Q=I0($,"alt")||"",J=I0($,"width"),G=I0($,"height"),K=I0($,"sizes"),q=I0($,"srcset"),W=I0($,"densities"),z=I0($,"format"),U=I0($,"placeholder"),B=I0($,"placeholderColor")||"#e5e7eb",_=I0($,"provider"),j=I0($,"class")||I0($,"className")||"",H=I0($,"style")||"",F=I0($,"quality"),L=Q3($,"lazy",!0),O=Q3($,"preload",!1),V=Q3($,"picture",!1)||!!z,w=J?Number.parseInt(J):void 0,N=G?Number.parseInt(G):void 0,A=q||"",R="";if(!A&&K)A=G3(X,J3,_,z),R=iZ(K);else if(!A&&W){let b=W.split(/\s+/).map((y)=>Number.parseFloat(y.replace("x","")));A=iq(X,b,w,_,z)}else if(K)R=iZ(K);let T=[];if(H)T.push(H);if(w&&N)T.push(`aspect-ratio:${w}/${N}`);if(U==="blur"||U==="color"||U==="thumbhash"){let b=nq(w||16,N||9,B);T.push(`background-image:url(${b})`),T.push("background-size:cover"),T.push("background-repeat:no-repeat")}else if(U&&U!=="empty"&&U!=="none")T.push(`background-image:url(${U0(U)})`),T.push("background-size:cover"),T.push("background-repeat:no-repeat");let M=b5(X,w,N,_,z),I=[];if(I.push(`src="${U0(M)}"`),I.push(`alt="${U0(Q)}"`),J)I.push(`width="${U0(J)}"`);if(G)I.push(`height="${U0(G)}"`);if(L)I.push('loading="lazy"');if(I.push('decoding="async"'),j)I.push(`class="${U0(j)}"`);if(T.length>0)I.push(`style="${U0(T.join(";"))}"`);if(A)I.push(`srcset="${U0(A)}"`);if(R)I.push(`sizes="${U0(R)}"`);let D=new Set(["src","alt","width","height","lazy","sizes","srcset","placeholder","placeholderColor","class","className","style","format","provider","quality","densities","preload","picture"]);for(let[b,y]of Object.entries($.static)){if(D.has(b))continue;if(typeof y==="boolean"){if(y)I.push(U0(b))}else I.push(`${U0(b)}="${U0(y)}"`)}let E=`<img ${I.join(" ")} />`,C="";if(O){let y=z==="webp"?"image/webp":z==="avif"?"image/avif":"";C=`<link rel="preload" as="image" href="${U0(M)}"${y?` type="${y}"`:""}${A?` imagesrcset="${U0(A)}"`:""}${R?` imagesizes="${U0(R)}"`:""} />
7931
+ `}if(V){let b=[];if(z==="avif"||z==="auto"){let y=b5(X,w,N,_,"avif"),P=A?G3(X,J3,_,"avif"):`${y}`;b.push(`<source type="image/avif" srcset="${U0(P)}"${R?` sizes="${U0(R)}"`:""} />`)}if(z==="webp"||z==="auto"){let y=b5(X,w,N,_,"webp"),P=A?G3(X,J3,_,"webp"):`${y}`;b.push(`<source type="image/webp" srcset="${U0(P)}"${R?` sizes="${U0(R)}"`:""} />`)}return`${C}<picture>
7932
7932
  ${b.join(`
7933
7933
  `)}
7934
7934
  ${E}
@@ -7966,7 +7966,7 @@ ${E}
7966
7966
  .stx-drawer-backdrop[data-stx-drawer-open]{display:block!important;opacity:1}
7967
7967
  .stx-drawer-backdrop[data-stx-drawer-open] .stx-drawer-panel{transform:translateX(0)}
7968
7968
  </style>`}}});import{existsSync as rq,readFileSync as aq}from"fs";function tq($){try{return G0.resolve(`@iconify/json/json/${$}.json`)}catch{}let Z=process.cwd();for(let Y of[`${Z}/node_modules/@iconify/json/json/${$}.json`,`${Z}/pantry/@iconify/json/json/${$}.json`])if(rq(Y))return Y;return null}function eq($){if(a$.has($))return a$.get($);let Z=tq($);if(!Z)return null;try{let Y=JSON.parse(aq(Z,"utf8"));return a$.set($,Y.icons),Y.icons}catch{return null}}function r1($,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 a$,w3;var N3=k(()=>{a$=new Map;w3={name:"Icon",aliases:["icon","stx-icon"],render($,Z,Y){let X=r1($,"name")??r1($,"icon");if(!X)return"<!-- Icon: missing name/icon prop -->";let Q="lucide",J=X;if(X.includes(":")){let O=X.split(":");Q=O[0],J=O[1]}let G=u0(r1($,"size")||"24"),K=u0(r1($,"color")||"currentColor"),q=u0(r1($,"class")||""),W=u0(r1($,"style")||""),z=a$.get(Q)??eq(Q);if(!z)return`<!-- Icon: collection "${Q}" not loaded -->`;let U=z[J];if(!U)return`<!-- Icon: "${J}" not found in ${Q} -->`;let B=U.width||24,_=U.height||24,j=`0 0 ${B} ${_}`,H=U.body;if(K!=="currentColor")H=H.replace(/currentColor/g,K);let F=q?` class="${q}"`:"",L=W?` style="${W}"`:"";return`<svg xmlns="http://www.w3.org/2000/svg" width="${G}" height="${G}" viewBox="${j}" fill="none"${F}${L}>${H}</svg>`}}});function aZ($,...Z){for(let Y of Z){if($.serverDynamic[Y]!==void 0)return String($.serverDynamic[Y]);let X=$.static[Y];if(typeof X==="string")return X}return}function tZ($,Z){let Y=new RegExp(`<(template|div|span)[^>]*\\bslot=["']${Z}["'][^>]*>([\\s\\S]*?)<\\/\\1>`,"i"),X=$.match(Y);if(!X)return{region:null,rest:$};return{region:X[2],rest:$.replace(X[0],"")}}var A3;var R3=k(()=>{A3={name:"Suspense",aliases:["suspense"],render($,Z,Y){let X=tZ(Z,"fallback"),Q=X.rest,J=tZ(Q,"error"),G=J.rest,K=X.region??aZ($,"fallback")??'<div class="stx-suspense-loading">Loading\u2026</div>',q=J.region??aZ($,"errorFallback","error-fallback")??'<div class="stx-suspense-error">Something went wrong.</div>';return`<div data-stx-suspense><div data-stx-suspense-fallback>${K}</div><div data-stx-suspense-error hidden>${q}</div><div data-stx-suspense-content hidden>${G}</div></div>`}}});function t$($,...Z){for(let Y of Z){if($.serverDynamic[Y]!==void 0)return String($.serverDynamic[Y]);let X=$.static[Y];if(typeof X==="string")return X}return}var T3;var M3=k(()=>{T3={name:"TransitionGroup",aliases:["transition-group"],render($,Z,Y){let X=(t$($,"name")||"v").replace(/["'<>]/g,""),Q=(t$($,"tag")||"div").replace(/[^a-z0-9-]/gi,"")||"div",J=t$($,"class"),G=t$($,"id"),K=[`data-stx-transition-group="${X}"`,J?`class="${J}"`:"",G?`id="${G}"`:""].filter(Boolean).join(" ");return`<${Q} ${K}>${Z}</${Q}>`}}});function eZ(){k0.registerBuiltin(Y3),k0.registerBuiltin(K3),k0.registerBuiltin(z3),k0.registerBuiltin(B3),k0.registerBuiltin(j3),k0.registerBuiltin(O3),k0.registerBuiltin(L3),k0.registerBuiltin(w3),k0.registerBuiltin(A3),k0.registerBuiltin(T3)}var $2=k(()=>{X3();q3();W3();_3();H3();F3();V3();N3();R3();M3();Z3();X3();q3();W3();_3();H3();F3();V3();N3();R3();M3()});function Z2($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1-$2").toLowerCase()}function Y2($,Z,Y){let X=[],Q=0;while(Q<$.length){let J=$.indexOf("<",Q);if(J===-1)break;let K=$.slice(J+1).match(new RegExp(`^(${Z.source})`));if(!K){Q=J+1;continue}let q=K[1];if(Y&&Y.has(q.toLowerCase())){let H=J+1+q.length;while(H<$.length&&$[H]!==">")H++;Q=H+1;continue}let W=J+1+q.length,z=null,U=W,B=-1,_=!1;while(W<$.length){let H=$[W];if(z){if(H==="\\"&&W+1<$.length){W+=2;continue}if(H===z)z=null;W++;continue}if(H==='"'||H==="'"){z=H,W++;continue}if(H==="/"&&W+1<$.length&&$[W+1]===">"){B=W+2,_=!0;break}if(H===">"){B=W+1;break}W++}if(B===-1){Q=J+1;continue}let j=$.slice(U,_?B-2:B-1).trim();if(_)X.push({fullMatch:$.slice(J,B),tagName:q,attributes:j,content:"",startIndex:J,endIndex:B,isSelfClosing:!0}),Q=B;else{let H=`<${q}`,F=`</${q}>`,L=1,O=B,V=-1;while(L>0&&O<$.length){let A=$.indexOf(H,O),R=$.indexOf(F,O);if(R===-1)break;if(A!==-1&&A<R){let T=$[A+H.length];if(T===" "||T===">"||T==="/"||T===`
7969
- `||T==="\t")L++;O=A+H.length}else{if(L--,L===0){V=R;break}O=R+F.length}}if(V===-1){Q=B;continue}let w=$.slice(B,V),N=V+F.length;X.push({fullMatch:$.slice(J,N),tagName:q,attributes:j,content:w,startIndex:J,endIndex:N,isSelfClosing:!1}),Q=N}}return X}function X2($,Z){try{let Y=Buffer.from($,"base64").toString("utf8");return JSON.parse(Y)}catch{}try{let Y=$.replace(/&quot;/g,'"').replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&");return JSON.parse(Y)}catch(Y){if(Z?.debug)console.error("Error decoding __stx_ prop:",Y);return $}}var J2=k(()=>{L0();O0();$$()});var W2={};s(W2,{processESImports:()=>z2,processComponents:()=>$4});import e$ from"fs";import v0 from"path";function Zz($,Z,Y){let X={static:{},serverDynamic:{},clientReactive:{},events:{}},Q=new Set(["x-cloak","x-show","x-if","x-for","x-data","x-init","x-transition","x-ref","x-effect","x-model","x-text","x-html","x-class","x-style","x-on","x-bind"]),J=(G)=>{if(!G.includes("-")||G.startsWith("@")||G.startsWith(":")||G.startsWith("x-")||G.startsWith("__"))return G;return G.replace(/-([a-z0-9])/g,(K,q)=>q.toUpperCase())};for(let[G,K]of Object.entries($)){let q=G.startsWith("x-")&&!Q.has(G)&&!G.startsWith("x-bind:")&&!G.startsWith("x-on:")?`:${G.slice(2)}`:G;if(q.startsWith("@")){X.events[q]=K;continue}if(q.startsWith("__stx_")){let W=J(q.slice(6));X.serverDynamic[W]=X2(K,Y);continue}if(q.startsWith(":")){let W=J(q.slice(1)),z=K==="true"?W:K;try{if(!Z0(z)){if(Y.debug)console.error(`Unsafe expression in :${W} binding: ${z}`);X.clientReactive[W]=z;continue}let U=Object.keys(Z),_=Y0(z,U)(...Object.values(Z));if(_===void 0){let j=z.match(/\b[a-zA-Z_$][a-zA-Z0-9_$]*\b/g)||[],H=new Set(["true","false","null","undefined","typeof","instanceof","in","of","new","this","return","void","delete","throw","if","else"]);if(j.some((L)=>!H.has(L)&&!U.includes(L))){X.clientReactive[W]=z;continue}}X.serverDynamic[W]=_}catch{X.clientReactive[W]=z}continue}if(typeof K==="string"&&K.includes("{{")&&K.includes("}}")){let W=K.match(/^\{\{\s*([\s\S]+?)\s*\}\}$/);if(W)try{let z=W[1];if(Z0(z)){let B=Y0(z,Object.keys(Z))(...Object.values(Z));X.static[q]=B!=null?String(B):""}else{if(Y.debug)console.error(`Unsafe expression in ${q}: ${z}`);X.static[q]=K}}catch(z){if(Y.debug)console.error(`Error evaluating expression for ${q}:`,z);X.static[q]=K}else{let z=K,U=/\{\{\s*([\s\S]+?)\s*\}\}/g,B;while((B=U.exec(K))!==null)try{let _=B[1];if(!Z0(_)){if(Y.debug)console.error(`Unsafe expression in ${q}: ${_}`);continue}let H=Y0(_,Object.keys(Z))(...Object.values(Z));z=z.replace(B[0],String(H??""))}catch(_){if(Y.debug)console.error(`Error evaluating expression in ${q}:`,_)}X.static[q]=z}continue}X.static[q]=K}return X}function Yz($){let Z={},Y=0,X=$.length;while(Y<X){while(Y<X&&/\s/.test($[Y]))Y++;if(Y>=X)break;let Q="";while(Y<X&&!/[\s=]/.test($[Y]))Q+=$[Y],Y++;if(!Q)break;while(Y<X&&/\s/.test($[Y]))Y++;if(Y<X&&$[Y]==="="){Y++;while(Y<X&&/\s/.test($[Y]))Y++;let J="";if(Y<X&&($[Y]==='"'||$[Y]==="'")){let G=$[Y];Y++;while(Y<X){let K=$[Y];if(K==="\\"&&Y+1<X){Y++,J+=$[Y],Y++;continue}if(K===G){Y++;break}J+=K,Y++}}else while(Y<X&&!/\s/.test($[Y]))J+=$[Y],Y++;Z[Q]=J}else Z[Q]="true"}return Z}function G2($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Xz($){let Z=new Set,Y=/<([A-Z][A-Za-z0-9]*|stx-[a-z0-9-]+)\b[^>]*>/g,X;while((X=Y.exec($))!==null){let Q=X[1];if(k0.isBuiltin(Q))Z.add(Q)}return[...Z].sort()}function Jz($){let Z=K2.get($);if(Z)return Z;let Y=new Map,X=[v0.join($,"src"),v0.join($,"dist"),$];function Q(J,G){if(G>6)return;let K;try{K=e$.readdirSync(J,{withFileTypes:!0})}catch{return}for(let q of K){let W=v0.join(J,q.name);if(q.isDirectory()){if(q.name==="node_modules"||q.name.startsWith("."))continue;Q(W,G+1)}else if(q.isFile()&&q.name.endsWith(".stx")){let z=q.name.slice(0,-4);if(!Y.has(z))Y.set(z,W);let U=z.toLowerCase();if(!Y.has(U))Y.set(U,W);let B=z.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(!Y.has(B))Y.set(B,W)}}}for(let J of X)if(Q(J,0),Y.size>0)break;return K2.set($,Y),Y}function Qz($,Z){if($.startsWith(".")||$.startsWith("/"))return null;let Y=Z;while(!0){let X=v0.join(Y,"node_modules",$);try{if(e$.statSync(X).isDirectory())return X}catch{}let Q=v0.dirname(Y);if(Q===Y)return null;Y=Q}}async function z2($,Z,Y,X,Q){if(!$.includes("import"))return $;if(!Z.__importedComponents)Z.__importedComponents=new Map;let J=Z.__importedComponents,G=v0.dirname(Y),K=$,q=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi;return K=K.replace(q,(W,z,U)=>{let B=/import\s+(?:(\{[^}]*\})|([A-Za-z_$][\w$]*))\s+from\s+['"]([^'"]+)['"]\s*;?\s*\n?/g,_=U,j,H=[];while((j=B.exec(U))!==null){let[F,L,O,V]=j,w=null,N=null;if(V.startsWith(".")||V.startsWith("/")){let T=v0.resolve(G,V);if(T.endsWith(".stx"))N=T;else{let M=`${T}.stx`;try{if(e$.statSync(M).isFile())N=M}catch{try{if(e$.statSync(T).isDirectory())w=T}catch{}}}}else w=Qz(V,G);if(!w&&!N)continue;let A=!1,R=(T,M)=>{J.set(T,M),J.set(T.toLowerCase(),M);let I=T.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();J.set(I,M),Q.add(M)};if(O&&N)R(O,N),A=!0;else if(L){let T=L.slice(1,-1).split(",").map((I)=>I.trim()).filter(Boolean).map((I)=>{let D=I.match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);if(D)return{source:D[1],local:D[2]};return{source:I,local:I}}),M=w?Jz(w):null;for(let{source:I,local:D}of T){let E=null;if(N)E=N;else if(M)E=M.get(I)??M.get(I.toLowerCase())??M.get(I.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase())??null;if(E)R(D,E),A=!0}}if(A)H.push({start:j.index,end:j.index+F.length})}if(H.length===0)return W;for(let F=H.length-1;F>=0;F--)_=_.slice(0,H[F].start)+_.slice(H[F].end);return`<script${z}>${_}</script>`}),K}async function Gz($,Z,Y,X,Q){let J=$;if(!Z.__importedComponents)Z.__importedComponents=new Map;let G=Z.__importedComponents,K=/@import\s*\(\s*([^)]+)\s*\)/g,q;while((q=K.exec(J))!==null){let[W,z]=q,U=z.split(",").map((B)=>B.trim().replace(/^['"]|['"]$/g,"")).filter((B)=>B.length>0);for(let B of U){let _=B.split("/"),H=_[_.length-1].replace(/\.stx$/,""),F=H.includes("-")?H.split("-").map((V)=>V.charAt(0).toUpperCase()+V.slice(1)).join(""):H.charAt(0).toUpperCase()+H.slice(1),L=null,O=[v0.resolve(v0.dirname(Y),`${B}.stx`),v0.resolve(v0.dirname(Y),B),v0.resolve(X.componentsDir||"components",`${B}.stx`),v0.resolve(X.componentsDir||"components",B),B.endsWith(".stx")?B:`${B}.stx`];for(let V of O)try{if(await Bun.file(V).exists()){L=V;break}}catch{}if(L){G.set(F,L),G.set(H,L),G.set(H.toLowerCase(),L);let V=F.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(G.set(V,L),Q.add(L),X.debug)console.log(`Imported component: ${F} -> ${L}`)}else if(X.debug)console.warn(`Could not resolve imported component: ${B}`)}J=J.replace(W,""),K.lastIndex=0}return J}async function Kz($,Z,Y,X,Q){let J=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,q=/@component\s*\(/g,W;while((W=q.exec(J))!==null){let z=W.index,U=z+W[0].length-1,B=1,_=U+1;while(_<J.length&&B>0){if(J[_]==="(")B++;else if(J[_]===")"){if(B--,B===0)break}_++}if(B!==0)break;let j=J.substring(U+1,_),H=_+1,F=j.match(/^\s*['"]([^'"]+)['"]/);if(!F){q.lastIndex=0;continue}let L=F[1],O,V=j.slice(F[0].length),w=V.match(/^\s*,\s*/);if(w)O=V.slice(w[0].length).trim();let N={};if(O)try{N=F0(O,Z)}catch(D){let E=D instanceof Error?D.message:String(D);J=J.replace(J.substring(z,H),`[Error parsing component props: ${E}]`);continue}let A="",R=H,M=J.substring(H).match(/^([\s\S]*?)@endcomponent/);if(M)A=M[1].trim(),R=H+M[0].length;let I=await T1(L,N,A,G,Z,Y,X,K,Q);J=J.substring(0,z)+I+J.substring(R),q.lastIndex=0}return J}async function qz($,Z,Y,X,Q){if(!$)return $;let J=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,q=b4(J);return J=q.output,J=await B(J,/[a-z][a-z0-9]*-[a-z0-9-]*/,!1),J=await B(J,/[A-Z][a-zA-Z0-9]*/,!0),J=await B(J,/[a-z][a-z0-9]*/,!1,$z),J=S4(J,q.scripts),J;async function B(_,j,H,F){if(!_)return _;let L=_,O=Y2(L,j,F);for(let V=O.length-1;V>=0;V--){let w=O[V],N=H?Z2(w.tagName):w.tagName,A=Yz(w.attributes),R=Zz(A,Z,X),T=k0.getBuiltin(w.tagName),M=T?await O9(N,G,Z,Y,X):!1;if(T&&!M){let C={context:Z,filePath:Y,options:X,dependencies:Q},b=T.render(R,w.content,C);if(Object.keys(R.clientReactive).length>0)b=q2(b,R.clientReactive);if(Object.keys(R.events).length>0){let S=Object.entries(R.events).map(([P,d])=>`${P}="${G2(d)}"`).join(" ");b=b.replace(/^(\s*<[a-zA-Z][a-zA-Z0-9-]*)/,`$1 ${S}`)}L=L.substring(0,w.startIndex)+b+L.substring(w.endIndex);continue}let I={};for(let[C,b]of Object.entries(R.static))I[C]=b;for(let[C,b]of Object.entries(R.serverDynamic))I[C]=b;let E=await T1(N,I,w.content,G,Z,Y,X,K,Q);if(Object.keys(R.clientReactive).length>0)E=q2(E,R.clientReactive);if(Object.keys(R.events).length>0){let C=E.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(C){let b=Object.entries(R.events).map(([P,d])=>`${P}="${G2(d)}"`).join(" "),S=C[1].length+C[2].length;E=E.substring(0,S)+" "+b+E.substring(S)}}L=L.substring(0,w.startIndex)+E+L.substring(w.endIndex)}return L}}function q2($,Z){let Y=$.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(!Y)return $;let X=Object.entries(Z).map(([J,G])=>`:${J}="${G.replace(/"/g,"&quot;")}"`).join(" "),Q=Y[1].length+Y[2].length;return $.substring(0,Q)+" "+X+$.substring(Q)}async function $4($,Z,Y,X,Q){if(!Q2)eZ(),Q2=!0;let J=await z2($,Z,Y,X,Q);J=await Gz(J,Z,Y,X,Q),J=await Kz(J,Z,Y,X,Q);for(let G=0;G<3;G++){let K=J;if(J=await qz(J,Z,Y,X,Q),J===K)break}if(X.debug){let G=Xz(J);if(G.length>0)console.warn(`[stx] ${Y}: unresolved component tag(s) after render passes: ${G.join(", ")}. Check nested component output for malformed root tags or recursive component markup.`)}return J}var Q2=!1,$z,K2;var I3=k(()=>{Z3();$2();J2();O0();L0();$z=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","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"]);K2=new Map});var F2={};s(F2,{processLoops:()=>D3});function Uz($,Z){let Y=/@component\s*\(/g,X=$,Q,J=[];while((Q=Y.exec(X))!==null){let G=Q.index,K=G+Q[0].length-1,q=1,W=K+1;while(W<X.length&&q>0){if(X[W]==="(")q++;else if(X[W]===")"){if(q--,q===0)break}W++}if(q!==0)continue;let z=X.substring(K+1,W),U=W+1,B=z.match(/^\s*['"]([^'"]+)['"]/);if(!B)continue;let _=B[1],j=z.slice(B[0].length),H=j.match(/^\s*,\s*/);if(!H)continue;let F=j.slice(H[0].length).trim();if(!F)continue;try{let L=F0(F,Z),O=JSON.stringify(L),V=`@component('${_}', ${O})`;J.push({start:G,end:U,replacement:V})}catch{continue}}for(let G=J.length-1;G>=0;G--){let{start:K,end:q,replacement:W}=J[G];X=X.substring(0,K)+W+X.substring(q)}return X}function Z4($,Z,Y){let X=$,Q=new RegExp(`${Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\(`),J;while((J=Q.exec(X))!==null){let G=J.index,K=G+J[0].length-1,q=1,W=K+1,z=null,U=!1;while(W<X.length&&q>0){let j=X[W];if(U){U=!1,W++;continue}if(j==="\\"&&z){U=!0,W++;continue}if(z){if(j===z)z=null;W++;continue}if(j==='"'||j==="'"||j==="`"){z=j,W++;continue}if(j==="(")q++;else if(j===")"){if(q--,q===0)break}W++}if(q!==0)break;let B=X.substring(K+1,W),_=Y(B);X=X.substring(0,G)+_+X.substring(W+1)}return X}function Bz($,Z){let Y=$;return Y=Y.replace(/:([a-zA-Z_][a-zA-Z0-9_-]*)(?=\s+[^=]|\s*\/?>|\s*$)/g,(X,Q)=>{if(Q in Z)return`:${Q}="${Q}"`;return X}),Y=Y.replace(/:([a-zA-Z_][a-zA-Z0-9_-]*)\s*=\s*"([^"]*)"/g,(X,Q,J)=>{try{let G=Object.keys(Z),K=Object.values(Z);r5(J);let W=Y0(J,G)(...K),z=JSON.stringify(W),U=Buffer.from(z,"utf8").toString("base64");return`__stx_${Q}="${U}"`}catch(G){return X}}),Y}function _z($,Z){let Y=$;return Y=Z4(Y,"@break",(X)=>{try{let J=`!!(${X.trim()})`,G;if(Z0(J)){let K=Y0(J,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean($0(J,Z));return G?Y4:""}catch{return""}}),Y=Z4(Y,"@continue",(X)=>{try{let J=`!!(${X.trim()})`,G;if(Z0(J)){let K=Y0(J,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean($0(J,Z));return G?X4:""}catch{return""}}),Y}function jz($){let Z=$;return Z=Z.replace(/@break(?!\()/g,Y4),Z=Z.replace(/@continue(?!\()/g,X4),Z}function U2($){let Z=$.includes(Y4),Y=Z?$.substring(0,$.indexOf(Y4)):$;return{hasBreak:Z,content:Y}}function B2($){let Z=$.includes(X4),Y=Z?$.substring(0,$.indexOf(X4)):$;return{hasContinue:Z,content:Y}}function j2($){let Z=$;return Z=Z4(Z,"@break",(Y)=>{let X=Y.trim();if(!a5(X))return"";return`\`; if (${X}) { break; } result += \``}),Z=Z4(Z,"@continue",(Y)=>{let X=Y.trim();if(!a5(X))return"";return`\`; if (${X}) { continue; } result += \``}),Z=Z.replace(/@break(?!\()/g,"`; break; result += `"),Z=Z.replace(/@continue(?!\()/g,"`; continue; result += `"),Z}function Hz($){let Z=/@forelse\s*\(/g,Y,X=[],Q=/@foreach\s*\(/g,J=/@endforeach/g,G;while((G=Q.exec($))!==null)X.push({pos:G.index,delta:1});while((G=J.exec($))!==null)X.push({pos:G.index,delta:-1});X.sort((z,U)=>z.pos-U.pos);let K=[],q=0;for(let z of X)q+=z.delta,K.push({pos:z.pos,depth:q});function W(z){let U=0,B=K.length-1,_=0;while(U<=B){let j=U+B>>1;if(K[j].pos<=z)_=K[j].depth,U=j+1;else B=j-1}return _}while((Y=Z.exec($))!==null){if(W(Y.index)>0)continue;let z=Y.index,U=Y.index+Y[0].length-1,B=1,_=U+1,j=-1;while(_<$.length&&B>0){if($[_]==="(")B++;else if($[_]===")"){if(B--,B===0){j=_;break}}_++}if(j===-1)continue;let H=$.substring(U+1,j),F=H.indexOf(" as ");if(F===-1)continue;let L=H.substring(0,F).trim(),O=H.substring(F+4).trim(),V=j+1,w=1,N=V,A=/@forelse\s*\(/g,R=/@endforelse/g,T=-1;while(w>0&&N<$.length){A.lastIndex=N,R.lastIndex=N;let b=A.exec($),S=R.exec($);if(!S)break;if(b&&b.index<S.index)w++,N=b.index+b[0].length;else{if(w--,w===0){T=S.index;break}N=S.index+11}}if(T===-1)continue;let M=$.substring(V,T),I=T+11,D=-1,E=0,C=0;while(C<M.length){let b=M.indexOf("@",C);if(b===-1)break;let S=M.substring(b);if(/^@forelse\s*\(/.test(S))E++,C=b+1;else if(S.startsWith("@endforelse"))E--,C=b+11;else if(E===0&&S.startsWith("@empty")){if(M.length<=b+6||!/[a-z]/i.test(M[b+6])){D=b;break}C=b+1}else C=b+1}if(D===-1)continue;return{start:z,end:I,arrayExpr:L,itemVar:O,foreachContent:M.substring(0,D),emptyContent:M.substring(D+6)}}return null}function _2($,Z){let Y=$;while(!0){let X=Hz(Y);if(!X)break;let{start:Q,end:J,arrayExpr:G,itemVar:K,foreachContent:q,emptyContent:W}=X;try{let z;if(Z0(G))z=Y0(G,Object.keys(Z))(...Object.values(Z));else z=$0(G,Z);let U;if(!Array.isArray(z)||z.length===0)U=W;else U=`@foreach (${G} as ${K})${q}@endforeach`;Y=Y.substring(0,Q)+U+Y.substring(J)}catch(z){let U=z instanceof Error?z.message:String(z),B=a("Forelse",`Error in @forelse(${G} as ${K}): ${U}`,i.EVALUATION_ERROR);Y=Y.substring(0,Q)+B+Y.substring(J)}}return Y}function D3($,Z,Y,X){let Q=$;Q=_2(Q,Z);function J(q){let W=/@foreach\s*\(/g,z;while((z=W.exec(q))!==null){let U=z.index,B=z.index+z[0].length-1,_=1,j=B+1,H=-1;while(j<q.length&&_>0){if(q[j]==="(")_++;else if(q[j]===")"){if(_--,_===0){H=j;break}}j++}if(H===-1)continue;let F=q.substring(B+1,H),L=F.indexOf(" as ");if(L===-1)continue;let O=U,V=F.substring(0,L),w=F.substring(L+4),N=H+1,A=1,R=N,T=/@foreach\s*\(/g,M=/@endforeach/g;while(A>0&&R<q.length){T.lastIndex=R,M.lastIndex=R;let I=T.exec(q),D=M.exec(q);if(!D)break;if(I&&I.index<D.index)A++,R=I.index+I[0].length;else{if(A--,A===0){let E=q.substring(N,D.index),C=D.index+11;return{start:O,end:C,arrayExpr:V,itemVar:w,content:E}}R=D.index+11}}}return null}function G(q,W){let z=q;while(!0){let U=J(z);if(!U)break;let{start:B,end:_,arrayExpr:j,itemVar:H,content:F}=U;try{let L=j.trim(),O;if(Z0(L))O=Y0(L,Object.keys(W))(...Object.values(W));else O=$0(L,W);let V=!1;if(!Array.isArray(O))if(O instanceof Map)O=Array.from(O),V=!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),V=!0;else{let D=a("Foreach",`Error in @foreach: ${L} is not iterable`,i.TYPE_ERROR);z=z.substring(0,B)+D+z.substring(_);continue}let w=X?.loops?.useAltLoopVariable??Wz,N=H.trim(),A=null,R,T=!1;if(N.includes("=>")){let D=N.split("=>").map((E)=>E.trim());if(D.length===2&&D[0]&&D[1])A=D[0],R=D[1];else R=N}else if(!N.startsWith("[")&&!N.startsWith("{")&&N.includes(",")){let D=N.split(",").map((E)=>E.trim());if(D.length===2&&D[0]&&D[1])R=D[0],A=D[1],T=!0;else R=N}else R=N;let M="",I=O;for(let D=0;D<I.length;D++){let E=I[D],C={index:D,iteration:D+1,first:D===0,last:D===I.length-1,count:I.length},b={...W,loop:C,$loop:C};if(R.startsWith("[")&&R.endsWith("]")){let f=R.slice(1,-1).split(",").map((m)=>m.trim());if(Array.isArray(E))f.forEach((m,n)=>{if(m)b[m]=E[n]});else b[R]=E}else b[R]=E;if(A)if(!T&&V&&Array.isArray(E)&&E.length===2)b[A]=E[0],b[R]=E[1];else b[A]=D;let S=_z(F,b),P=B2(S);if(P.hasContinue){M+=P.content;continue}let d=U2(S);if(d.hasBreak){M+=d.content;break}if(S=_2(S,b),S=G(S,b),S=S1(S,b,Y),S=jz(S),d=U2(S),d.hasBreak){M+=d.content;break}if(P=B2(S),P.hasContinue){M+=P.content;continue}S=l0(S,b,Y),S=Bz(S,b),S=Uz(S,b),M+=S}z=z.substring(0,B)+M+z.substring(_)}catch(L){let O=a("Foreach",`Error in @foreach(${j.trim()} as ${H.trim()}): ${L instanceof Error?L.message:String(L)}`,i.EVALUATION_ERROR);z=z.substring(0,B)+O+z.substring(_)}}return z}Q=G(Q,Z),Q=O2(Q,Z,Y,X);let K=X?.loops?.maxWhileIterations??zz;return Q=Lz(Q,Z,K),Q}function H2($){return a5($)}function O2($,Z,Y,X){let Q=$,J=!0;while(J){J=!1;let G=Q.match(/@for\s*\(/);if(!G||G.index===void 0)break;let K=G.index,q=K+G[0].length-1,W=E0(Q,"(",")",q);if(W===-1)break;let z=Q.slice(q+1,W),U=W+1,B=u$(Q.slice(K),"for","endfor");if(B.length===0)break;let _=B[0].content,j=K+B[0].end;if(!H2(z)){let H=a("For",`Unsafe expression in @for: ${z}`,i.UNSAFE_EXPRESSION);Q=Q.substring(0,K)+H+Q.substring(j),J=!0;continue}try{let H=Oz(z),F=/@(?:for|foreach|if|unless)\s*\(/.test(_);if(H.length>0&&F){let A=Fz({forExpr:z,content:_,iterVarNames:H,context:Z,filePath:Y,options:X});Q=Q.substring(0,K)+A+Q.substring(j),J=!0;continue}let L=Object.keys(Z),O=Object.values(Z),V=_.replace(/`/g,"\\`").replace(/\$\{/g,"\\${").replace(/\{\{([^}]+)\}\}/g,(A,R)=>{return`\${${R}}`});V=j2(V);let N=Function(...L,`
7969
+ `||T==="\t")L++;O=A+H.length}else{if(L--,L===0){V=R;break}O=R+F.length}}if(V===-1){Q=B;continue}let w=$.slice(B,V),N=V+F.length;X.push({fullMatch:$.slice(J,N),tagName:q,attributes:j,content:w,startIndex:J,endIndex:N,isSelfClosing:!1}),Q=N}}return X}function X2($,Z){try{let Y=Buffer.from($,"base64").toString("utf8");return JSON.parse(Y)}catch{}try{let Y=$.replace(/&quot;/g,'"').replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&");return JSON.parse(Y)}catch(Y){if(Z?.debug)console.error("Error decoding __stx_ prop:",Y);return $}}var J2=k(()=>{L0();O0();$$()});var W2={};s(W2,{processESImports:()=>z2,processComponents:()=>$4});import e$ from"fs";import v0 from"path";function Zz($,Z,Y){let X={static:{},serverDynamic:{},clientReactive:{},events:{}},Q=new Set(["x-cloak","x-show","x-if","x-for","x-data","x-init","x-transition","x-ref","x-effect","x-model","x-text","x-html","x-class","x-style","x-on","x-bind"]),J=(G)=>{if(!G.includes("-")||G.startsWith("@")||G.startsWith(":")||G.startsWith("x-")||G.startsWith("__"))return G;return G.replace(/-([a-z0-9])/g,(K,q)=>q.toUpperCase())};for(let[G,K]of Object.entries($)){let q=G.startsWith("x-")&&!Q.has(G)&&!G.startsWith("x-bind:")&&!G.startsWith("x-on:")?`:${G.slice(2)}`:G;if(q.startsWith("@")){X.events[q]=K;continue}if(q.startsWith("__stx_")){let W=J(q.slice(6));X.serverDynamic[W]=X2(K,Y);continue}if(q.startsWith(":")){let W=J(q.slice(1)),z=K==="true"?W:K;try{if(!Z0(z)){if(Y.debug)console.error(`Unsafe expression in :${W} binding: ${z}`);X.clientReactive[W]=z;continue}let U=Object.keys(Z),_=Y0(z,U)(...Object.values(Z));if(_===void 0){let j=z.match(/\b[a-zA-Z_$][a-zA-Z0-9_$]*\b/g)||[],H=new Set(["true","false","null","undefined","typeof","instanceof","in","of","new","this","return","void","delete","throw","if","else"]);if(j.some((L)=>!H.has(L)&&!U.includes(L))){X.clientReactive[W]=z;continue}}X.serverDynamic[W]=_}catch{X.clientReactive[W]=z}continue}if(typeof K==="string"&&K.includes("{{")&&K.includes("}}")){let W=K.match(/^\{\{\s*([\s\S]+?)\s*\}\}$/);if(W)try{let z=W[1];if(Z0(z)){let B=Y0(z,Object.keys(Z))(...Object.values(Z));X.static[q]=B!=null?String(B):""}else{if(Y.debug)console.error(`Unsafe expression in ${q}: ${z}`);X.static[q]=K}}catch(z){if(Y.debug)console.error(`Error evaluating expression for ${q}:`,z);X.static[q]=K}else{let z=K,U=/\{\{\s*([\s\S]+?)\s*\}\}/g,B;while((B=U.exec(K))!==null)try{let _=B[1];if(!Z0(_)){if(Y.debug)console.error(`Unsafe expression in ${q}: ${_}`);continue}let H=Y0(_,Object.keys(Z))(...Object.values(Z));z=z.replace(B[0],String(H??""))}catch(_){if(Y.debug)console.error(`Error evaluating expression in ${q}:`,_)}X.static[q]=z}continue}X.static[q]=K}return X}function Yz($){let Z={},Y=0,X=$.length;while(Y<X){while(Y<X&&/\s/.test($[Y]))Y++;if(Y>=X)break;let Q="";while(Y<X&&!/[\s=]/.test($[Y]))Q+=$[Y],Y++;if(!Q)break;while(Y<X&&/\s/.test($[Y]))Y++;if(Y<X&&$[Y]==="="){Y++;while(Y<X&&/\s/.test($[Y]))Y++;let J="";if(Y<X&&($[Y]==='"'||$[Y]==="'")){let G=$[Y];Y++;while(Y<X){let K=$[Y];if(K==="\\"&&Y+1<X){Y++,J+=$[Y],Y++;continue}if(K===G){Y++;break}J+=K,Y++}}else while(Y<X&&!/\s/.test($[Y]))J+=$[Y],Y++;Z[Q]=J}else Z[Q]="true"}return Z}function G2($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Xz($){let Z=new Set,Y=/<([A-Z][A-Za-z0-9]*|stx-[a-z0-9-]+)\b[^>]*>/g,X;while((X=Y.exec($))!==null){let Q=X[1];if(k0.isBuiltin(Q))Z.add(Q)}return[...Z].sort()}function Jz($){let Z=K2.get($);if(Z)return Z;let Y=new Map,X=[v0.join($,"src"),v0.join($,"dist"),$];function Q(J,G){if(G>6)return;let K;try{K=e$.readdirSync(J,{withFileTypes:!0})}catch{return}for(let q of K){let W=v0.join(J,q.name);if(q.isDirectory()){if(q.name==="node_modules"||q.name.startsWith("."))continue;Q(W,G+1)}else if(q.isFile()&&q.name.endsWith(".stx")){let z=q.name.slice(0,-4);if(!Y.has(z))Y.set(z,W);let U=z.toLowerCase();if(!Y.has(U))Y.set(U,W);let B=z.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(!Y.has(B))Y.set(B,W)}}}for(let J of X)if(Q(J,0),Y.size>0)break;return K2.set($,Y),Y}function Qz($,Z){if($.startsWith(".")||$.startsWith("/"))return null;let Y=Z;while(!0){let X=v0.join(Y,"node_modules",$);try{if(e$.statSync(X).isDirectory())return X}catch{}let Q=v0.dirname(Y);if(Q===Y)return null;Y=Q}}async function z2($,Z,Y,X,Q){if(!$.includes("import"))return $;if(!Z.__importedComponents)Z.__importedComponents=new Map;let J=Z.__importedComponents,G=v0.dirname(Y),K=$,q=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi;return K=K.replace(q,(W,z,U)=>{let B=/import\s+(?:(\{[^}]*\})|([A-Za-z_$][\w$]*))\s+from\s+['"]([^'"]+)['"]\s*;?\s*\n?/g,_=U,j,H=[];while((j=B.exec(U))!==null){let[F,L,O,V]=j,w=null,N=null;if(V.startsWith(".")||V.startsWith("/")){let T=v0.resolve(G,V);if(T.endsWith(".stx"))N=T;else{let M=`${T}.stx`;try{if(e$.statSync(M).isFile())N=M}catch{try{if(e$.statSync(T).isDirectory())w=T}catch{}}}}else w=Qz(V,G);if(!w&&!N)continue;let A=!1,R=(T,M)=>{J.set(T,M),J.set(T.toLowerCase(),M);let I=T.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();J.set(I,M),Q.add(M)};if(O&&N)R(O,N),A=!0;else if(L){let T=L.slice(1,-1).split(",").map((I)=>I.trim()).filter(Boolean).map((I)=>{let D=I.match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);if(D)return{source:D[1],local:D[2]};return{source:I,local:I}}),M=w?Jz(w):null;for(let{source:I,local:D}of T){let E=null;if(N)E=N;else if(M)E=M.get(I)??M.get(I.toLowerCase())??M.get(I.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase())??null;if(E)R(D,E),A=!0}}if(A)H.push({start:j.index,end:j.index+F.length})}if(H.length===0)return W;for(let F=H.length-1;F>=0;F--)_=_.slice(0,H[F].start)+_.slice(H[F].end);return`<script${z}>${_}</script>`}),K}async function Gz($,Z,Y,X,Q){let J=$;if(!Z.__importedComponents)Z.__importedComponents=new Map;let G=Z.__importedComponents,K=/@import\s*\(\s*([^)]+)\s*\)/g,q;while((q=K.exec(J))!==null){let[W,z]=q,U=z.split(",").map((B)=>B.trim().replace(/^['"]|['"]$/g,"")).filter((B)=>B.length>0);for(let B of U){let _=B.split("/"),H=_[_.length-1].replace(/\.stx$/,""),F=H.includes("-")?H.split("-").map((V)=>V.charAt(0).toUpperCase()+V.slice(1)).join(""):H.charAt(0).toUpperCase()+H.slice(1),L=null,O=[v0.resolve(v0.dirname(Y),`${B}.stx`),v0.resolve(v0.dirname(Y),B),v0.resolve(X.componentsDir||"components",`${B}.stx`),v0.resolve(X.componentsDir||"components",B),B.endsWith(".stx")?B:`${B}.stx`];for(let V of O)try{if(await Bun.file(V).exists()){L=V;break}}catch{}if(L){G.set(F,L),G.set(H,L),G.set(H.toLowerCase(),L);let V=F.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(G.set(V,L),Q.add(L),X.debug)console.log(`Imported component: ${F} -> ${L}`)}else if(X.debug)console.warn(`Could not resolve imported component: ${B}`)}J=J.replace(W,""),K.lastIndex=0}return J}async function Kz($,Z,Y,X,Q){let J=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,q=/@component\s*\(/g,W;while((W=q.exec(J))!==null){let z=W.index,U=z+W[0].length-1,B=1,_=U+1;while(_<J.length&&B>0){if(J[_]==="(")B++;else if(J[_]===")"){if(B--,B===0)break}_++}if(B!==0)break;let j=J.substring(U+1,_),H=_+1,F=j.match(/^\s*['"]([^'"]+)['"]/);if(!F){q.lastIndex=0;continue}let L=F[1],O,V=j.slice(F[0].length),w=V.match(/^\s*,\s*/);if(w)O=V.slice(w[0].length).trim();let N={};if(O)try{N=F0(O,Z)}catch(D){let E=D instanceof Error?D.message:String(D);J=J.replace(J.substring(z,H),`[Error parsing component props: ${E}]`);continue}let A="",R=H,M=J.substring(H).match(/^([\s\S]*?)@endcomponent/);if(M)A=M[1].trim(),R=H+M[0].length;let I=await T1(L,N,A,G,Z,Y,X,K,Q);J=J.substring(0,z)+I+J.substring(R),q.lastIndex=0}return J}async function qz($,Z,Y,X,Q){if(!$)return $;let J=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,q=b4(J);return J=q.output,J=await B(J,/[a-z][a-z0-9]*-[a-z0-9-]*/,!1),J=await B(J,/[A-Z][a-zA-Z0-9]*/,!0),J=await B(J,/[a-z][a-z0-9]*/,!1,$z),J=S4(J,q.scripts),J;async function B(_,j,H,F){if(!_)return _;let L=_,O=Y2(L,j,F);for(let V=O.length-1;V>=0;V--){let w=O[V],N=H?Z2(w.tagName):w.tagName,A=Yz(w.attributes),R=Zz(A,Z,X),T=k0.getBuiltin(w.tagName),M=T?await O9(N,G,Z,Y,X):!1;if(T&&!M){let C={context:Z,filePath:Y,options:X,dependencies:Q},b=T.render(R,w.content,C);if(Object.keys(R.clientReactive).length>0)b=q2(b,R.clientReactive);if(Object.keys(R.events).length>0){let y=Object.entries(R.events).map(([P,d])=>`${P}="${G2(d)}"`).join(" ");b=b.replace(/^(\s*<[a-zA-Z][a-zA-Z0-9-]*)/,`$1 ${y}`)}L=L.substring(0,w.startIndex)+b+L.substring(w.endIndex);continue}let I={};for(let[C,b]of Object.entries(R.static))I[C]=b;for(let[C,b]of Object.entries(R.serverDynamic))I[C]=b;let E=await T1(N,I,w.content,G,Z,Y,X,K,Q);if(Object.keys(R.clientReactive).length>0)E=q2(E,R.clientReactive);if(Object.keys(R.events).length>0){let C=E.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(C){let b=Object.entries(R.events).map(([P,d])=>`${P}="${G2(d)}"`).join(" "),y=C[1].length+C[2].length;E=E.substring(0,y)+" "+b+E.substring(y)}}L=L.substring(0,w.startIndex)+E+L.substring(w.endIndex)}return L}}function q2($,Z){let Y=$.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(!Y)return $;let X=Object.entries(Z).map(([J,G])=>`:${J}="${G.replace(/"/g,"&quot;")}"`).join(" "),Q=Y[1].length+Y[2].length;return $.substring(0,Q)+" "+X+$.substring(Q)}async function $4($,Z,Y,X,Q){if(!Q2)eZ(),Q2=!0;let J=await z2($,Z,Y,X,Q);J=await Gz(J,Z,Y,X,Q),J=await Kz(J,Z,Y,X,Q);for(let G=0;G<3;G++){let K=J;if(J=await qz(J,Z,Y,X,Q),J===K)break}if(X.debug){let G=Xz(J);if(G.length>0)console.warn(`[stx] ${Y}: unresolved component tag(s) after render passes: ${G.join(", ")}. Check nested component output for malformed root tags or recursive component markup.`)}return J}var Q2=!1,$z,K2;var I3=k(()=>{Z3();$2();J2();O0();L0();$z=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","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"]);K2=new Map});var F2={};s(F2,{processLoops:()=>D3});function Uz($,Z){let Y=/@component\s*\(/g,X=$,Q,J=[];while((Q=Y.exec(X))!==null){let G=Q.index,K=G+Q[0].length-1,q=1,W=K+1;while(W<X.length&&q>0){if(X[W]==="(")q++;else if(X[W]===")"){if(q--,q===0)break}W++}if(q!==0)continue;let z=X.substring(K+1,W),U=W+1,B=z.match(/^\s*['"]([^'"]+)['"]/);if(!B)continue;let _=B[1],j=z.slice(B[0].length),H=j.match(/^\s*,\s*/);if(!H)continue;let F=j.slice(H[0].length).trim();if(!F)continue;try{let L=F0(F,Z),O=JSON.stringify(L),V=`@component('${_}', ${O})`;J.push({start:G,end:U,replacement:V})}catch{continue}}for(let G=J.length-1;G>=0;G--){let{start:K,end:q,replacement:W}=J[G];X=X.substring(0,K)+W+X.substring(q)}return X}function Z4($,Z,Y){let X=$,Q=new RegExp(`${Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\(`),J;while((J=Q.exec(X))!==null){let G=J.index,K=G+J[0].length-1,q=1,W=K+1,z=null,U=!1;while(W<X.length&&q>0){let j=X[W];if(U){U=!1,W++;continue}if(j==="\\"&&z){U=!0,W++;continue}if(z){if(j===z)z=null;W++;continue}if(j==='"'||j==="'"||j==="`"){z=j,W++;continue}if(j==="(")q++;else if(j===")"){if(q--,q===0)break}W++}if(q!==0)break;let B=X.substring(K+1,W),_=Y(B);X=X.substring(0,G)+_+X.substring(W+1)}return X}function Bz($,Z){let Y=$;return Y=Y.replace(/:([a-zA-Z_][a-zA-Z0-9_-]*)(?=\s+[^=]|\s*\/?>|\s*$)/g,(X,Q)=>{if(Q in Z)return`:${Q}="${Q}"`;return X}),Y=Y.replace(/:([a-zA-Z_][a-zA-Z0-9_-]*)\s*=\s*"([^"]*)"/g,(X,Q,J)=>{try{let G=Object.keys(Z),K=Object.values(Z);r5(J);let W=Y0(J,G)(...K),z=JSON.stringify(W),U=Buffer.from(z,"utf8").toString("base64");return`__stx_${Q}="${U}"`}catch(G){return X}}),Y}function _z($,Z){let Y=$;return Y=Z4(Y,"@break",(X)=>{try{let J=`!!(${X.trim()})`,G;if(Z0(J)){let K=Y0(J,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean($0(J,Z));return G?Y4:""}catch{return""}}),Y=Z4(Y,"@continue",(X)=>{try{let J=`!!(${X.trim()})`,G;if(Z0(J)){let K=Y0(J,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean($0(J,Z));return G?X4:""}catch{return""}}),Y}function jz($){let Z=$;return Z=Z.replace(/@break(?!\()/g,Y4),Z=Z.replace(/@continue(?!\()/g,X4),Z}function U2($){let Z=$.includes(Y4),Y=Z?$.substring(0,$.indexOf(Y4)):$;return{hasBreak:Z,content:Y}}function B2($){let Z=$.includes(X4),Y=Z?$.substring(0,$.indexOf(X4)):$;return{hasContinue:Z,content:Y}}function j2($){let Z=$;return Z=Z4(Z,"@break",(Y)=>{let X=Y.trim();if(!a5(X))return"";return`\`; if (${X}) { break; } result += \``}),Z=Z4(Z,"@continue",(Y)=>{let X=Y.trim();if(!a5(X))return"";return`\`; if (${X}) { continue; } result += \``}),Z=Z.replace(/@break(?!\()/g,"`; break; result += `"),Z=Z.replace(/@continue(?!\()/g,"`; continue; result += `"),Z}function Hz($){let Z=/@forelse\s*\(/g,Y,X=[],Q=/@foreach\s*\(/g,J=/@endforeach/g,G;while((G=Q.exec($))!==null)X.push({pos:G.index,delta:1});while((G=J.exec($))!==null)X.push({pos:G.index,delta:-1});X.sort((z,U)=>z.pos-U.pos);let K=[],q=0;for(let z of X)q+=z.delta,K.push({pos:z.pos,depth:q});function W(z){let U=0,B=K.length-1,_=0;while(U<=B){let j=U+B>>1;if(K[j].pos<=z)_=K[j].depth,U=j+1;else B=j-1}return _}while((Y=Z.exec($))!==null){if(W(Y.index)>0)continue;let z=Y.index,U=Y.index+Y[0].length-1,B=1,_=U+1,j=-1;while(_<$.length&&B>0){if($[_]==="(")B++;else if($[_]===")"){if(B--,B===0){j=_;break}}_++}if(j===-1)continue;let H=$.substring(U+1,j),F=H.indexOf(" as ");if(F===-1)continue;let L=H.substring(0,F).trim(),O=H.substring(F+4).trim(),V=j+1,w=1,N=V,A=/@forelse\s*\(/g,R=/@endforelse/g,T=-1;while(w>0&&N<$.length){A.lastIndex=N,R.lastIndex=N;let b=A.exec($),y=R.exec($);if(!y)break;if(b&&b.index<y.index)w++,N=b.index+b[0].length;else{if(w--,w===0){T=y.index;break}N=y.index+11}}if(T===-1)continue;let M=$.substring(V,T),I=T+11,D=-1,E=0,C=0;while(C<M.length){let b=M.indexOf("@",C);if(b===-1)break;let y=M.substring(b);if(/^@forelse\s*\(/.test(y))E++,C=b+1;else if(y.startsWith("@endforelse"))E--,C=b+11;else if(E===0&&y.startsWith("@empty")){if(M.length<=b+6||!/[a-z]/i.test(M[b+6])){D=b;break}C=b+1}else C=b+1}if(D===-1)continue;return{start:z,end:I,arrayExpr:L,itemVar:O,foreachContent:M.substring(0,D),emptyContent:M.substring(D+6)}}return null}function _2($,Z){let Y=$;while(!0){let X=Hz(Y);if(!X)break;let{start:Q,end:J,arrayExpr:G,itemVar:K,foreachContent:q,emptyContent:W}=X;try{let z;if(Z0(G))z=Y0(G,Object.keys(Z))(...Object.values(Z));else z=$0(G,Z);let U;if(!Array.isArray(z)||z.length===0)U=W;else U=`@foreach (${G} as ${K})${q}@endforeach`;Y=Y.substring(0,Q)+U+Y.substring(J)}catch(z){let U=z instanceof Error?z.message:String(z),B=a("Forelse",`Error in @forelse(${G} as ${K}): ${U}`,i.EVALUATION_ERROR);Y=Y.substring(0,Q)+B+Y.substring(J)}}return Y}function D3($,Z,Y,X){let Q=$;Q=_2(Q,Z);function J(q){let W=/@foreach\s*\(/g,z;while((z=W.exec(q))!==null){let U=z.index,B=z.index+z[0].length-1,_=1,j=B+1,H=-1;while(j<q.length&&_>0){if(q[j]==="(")_++;else if(q[j]===")"){if(_--,_===0){H=j;break}}j++}if(H===-1)continue;let F=q.substring(B+1,H),L=F.indexOf(" as ");if(L===-1)continue;let O=U,V=F.substring(0,L),w=F.substring(L+4),N=H+1,A=1,R=N,T=/@foreach\s*\(/g,M=/@endforeach/g;while(A>0&&R<q.length){T.lastIndex=R,M.lastIndex=R;let I=T.exec(q),D=M.exec(q);if(!D)break;if(I&&I.index<D.index)A++,R=I.index+I[0].length;else{if(A--,A===0){let E=q.substring(N,D.index),C=D.index+11;return{start:O,end:C,arrayExpr:V,itemVar:w,content:E}}R=D.index+11}}}return null}function G(q,W){let z=q;while(!0){let U=J(z);if(!U)break;let{start:B,end:_,arrayExpr:j,itemVar:H,content:F}=U;try{let L=j.trim(),O;if(Z0(L))O=Y0(L,Object.keys(W))(...Object.values(W));else O=$0(L,W);let V=!1;if(!Array.isArray(O))if(O instanceof Map)O=Array.from(O),V=!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),V=!0;else{let D=a("Foreach",`Error in @foreach: ${L} is not iterable`,i.TYPE_ERROR);z=z.substring(0,B)+D+z.substring(_);continue}let w=X?.loops?.useAltLoopVariable??Wz,N=H.trim(),A=null,R,T=!1;if(N.includes("=>")){let D=N.split("=>").map((E)=>E.trim());if(D.length===2&&D[0]&&D[1])A=D[0],R=D[1];else R=N}else if(!N.startsWith("[")&&!N.startsWith("{")&&N.includes(",")){let D=N.split(",").map((E)=>E.trim());if(D.length===2&&D[0]&&D[1])R=D[0],A=D[1],T=!0;else R=N}else R=N;let M="",I=O;for(let D=0;D<I.length;D++){let E=I[D],C={index:D,iteration:D+1,first:D===0,last:D===I.length-1,count:I.length},b={...W,loop:C,$loop:C};if(R.startsWith("[")&&R.endsWith("]")){let f=R.slice(1,-1).split(",").map((m)=>m.trim());if(Array.isArray(E))f.forEach((m,n)=>{if(m)b[m]=E[n]});else b[R]=E}else b[R]=E;if(A)if(!T&&V&&Array.isArray(E)&&E.length===2)b[A]=E[0],b[R]=E[1];else b[A]=D;let y=_z(F,b),P=B2(y);if(P.hasContinue){M+=P.content;continue}let d=U2(y);if(d.hasBreak){M+=d.content;break}if(y=_2(y,b),y=G(y,b),y=S1(y,b,Y),y=jz(y),d=U2(y),d.hasBreak){M+=d.content;break}if(P=B2(y),P.hasContinue){M+=P.content;continue}y=l0(y,b,Y),y=Bz(y,b),y=Uz(y,b),M+=y}z=z.substring(0,B)+M+z.substring(_)}catch(L){let O=a("Foreach",`Error in @foreach(${j.trim()} as ${H.trim()}): ${L instanceof Error?L.message:String(L)}`,i.EVALUATION_ERROR);z=z.substring(0,B)+O+z.substring(_)}}return z}Q=G(Q,Z),Q=O2(Q,Z,Y,X);let K=X?.loops?.maxWhileIterations??zz;return Q=Lz(Q,Z,K),Q}function H2($){return a5($)}function O2($,Z,Y,X){let Q=$,J=!0;while(J){J=!1;let G=Q.match(/@for\s*\(/);if(!G||G.index===void 0)break;let K=G.index,q=K+G[0].length-1,W=E0(Q,"(",")",q);if(W===-1)break;let z=Q.slice(q+1,W),U=W+1,B=u$(Q.slice(K),"for","endfor");if(B.length===0)break;let _=B[0].content,j=K+B[0].end;if(!H2(z)){let H=a("For",`Unsafe expression in @for: ${z}`,i.UNSAFE_EXPRESSION);Q=Q.substring(0,K)+H+Q.substring(j),J=!0;continue}try{let H=Oz(z),F=/@(?:for|foreach|if|unless)\s*\(/.test(_);if(H.length>0&&F){let A=Fz({forExpr:z,content:_,iterVarNames:H,context:Z,filePath:Y,options:X});Q=Q.substring(0,K)+A+Q.substring(j),J=!0;continue}let L=Object.keys(Z),O=Object.values(Z),V=_.replace(/`/g,"\\`").replace(/\$\{/g,"\\${").replace(/\{\{([^}]+)\}\}/g,(A,R)=>{return`\${${R}}`});V=j2(V);let N=Function(...L,`
7970
7970
  let result = '';
7971
7971
  for (${z}) {
7972
7972
  result += \`${V}\`;
@@ -8023,12 +8023,12 @@ ${Nz($).split(",").map((q)=>q.trim()).filter(Boolean).map((q)=>` try { __scopeR
8023
8023
  } finally {
8024
8024
  if (typeof window !== 'undefined') window.__STX_CURRENT_ELEMENT__ = __stxPrevEl;
8025
8025
  }
8026
- })();`}function Rz($,Z){let Y=$.match(/^(\s*(?:(?:<!--[\s\S]*?-->|\x00STX_HTML_COMMENT_\d+\x00)\s*)*)(<[a-zA-Z][a-zA-Z0-9-]*)(\s[^>]*>|>)/s);if(Y){let Q=(Y[2]+Y[3]).match(/data-stx-scope="([^"]*)"/);if(Q)return{html:$,mergedIntoExisting:Q[1]};let J=Y[1],G=Y[2],K=Y[3];return{html:`${J}${G} data-stx-scope="${Z}"${K}${$.slice(Y[0].length)}`,mergedIntoExisting:null}}return{html:$,mergedIntoExisting:null}}function Mz($){if($.__onceStore instanceof Set)return $.__onceStore;return Tz}async function b3($,Z,Y,X,Q,J=new Set){let G=X.partialsDir||K0.join(K0.dirname(Y),"partials");if(G&&!K0.isAbsolute(G))G=K0.resolve(process.cwd(),G);let K=Vz($,"@partial","@include"),q=Mz(Z);K=K.replace(/@once([\s\S]*?)@endonce/g,(j,H,F)=>{let L=H.trim(),O=`${Y}:${L}`;if(q.has(O))return"";return q.add(O),H});{let j=/@includeIf\s*\(/g,H;while((H=j.exec(K))!==null){let F=H.index,L=F+H[0].length-1,O=1,V=L+1;while(V<K.length&&O>0){if(K[V]==="(")O++;else if(K[V]===")")O--;V++}if(O!==0)break;let w=K.substring(L+1,V-1),N=w.match(/^\s*['"]([^'"]+)['"]/);if(!N){j.lastIndex=V;continue}let A=N[1],R=W(A,G,Y),T="";if(R&&await Bun.file(R).exists())Q.add(R),T=`@include(${w})`;K=K.substring(0,F)+T+K.substring(V),j.lastIndex=0}}for(let[j,H]of[["@includeWhen",!1],["@includeUnless",!0]]){let F=new RegExp(`${j.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*\\(`,"g"),L;while((L=F.exec(K))!==null){let O=L.index,V=O+L[0].length-1,w=1,N=V+1;while(N<K.length&&w>0){if(K[N]==="(")w++;else if(K[N]===")")w--;N++}if(w!==0)break;let A=K.substring(V+1,N-1),R=k3(A,0);if(R===-1){F.lastIndex=N;continue}let T=A.substring(0,R).trim(),M=A.substring(R+1).trim(),I=M.match(/^\s*['"]([^'"]+)['"]/);if(!I){F.lastIndex=N;continue}let D=I[1],E=M.substring(I[0].length),C,b=k3(E,0);if(b!==-1)C=E.substring(b+1).trim();try{let S=`Boolean(${T})`,P;if(Z0(S)){let m=Y0(S,Object.keys(Z));P=Boolean(m(...Object.values(Z)))}else P=Boolean($0(S,Z));let d=H?!P:P,f="";if(d){let m=W(D,G,Y);if(m&&await Bun.file(m).exists())Q.add(m);f=`@include('${D}'${C?`, ${C}`:""})`}K=K.substring(0,O)+f+K.substring(N),F.lastIndex=0}catch(S){let P=S instanceof Error?S.message:String(S),d=J0("Include",`Error evaluating ${j} condition: ${P}`,Y,$,O);K=K.substring(0,O)+d+K.substring(N),F.lastIndex=0}}}{let j=/@each\s*\(/g,H;while((H=j.exec(K))!==null){let F=H.index,L=F+H[0].length-1,O=1,V=L+1;while(V<K.length&&O>0){if(K[V]==="(")O++;else if(K[V]===")"){if(O--,O===0)break}V++}if(O!==0)break;let w=K.substring(L+1,V),N=K.substring(F,V+1),A=w.match(/^\s*['"]([^'"]+)['"]\s*,\s*([^,]+)\s*,\s*['"]([^'"]+)['"](?:\s*,\s*['"]([^'"]+)['"])?\s*$/);if(!A){j.lastIndex=0,K=K.replace(N,"");continue}let[,R,T,M,I]=A;try{let D,E=T.trim();if(Z0(E))D=Y0(E,Object.keys(Z))(...Object.values(Z));else D=$0(E,Z);let C="";if(Array.isArray(D)&&D.length>0)for(let b of D){let S={...Z,[M]:b},P=await U(R,S,$,F);C+=P}else if(I)C=await U(I,{},$,F);K=K.substring(0,F)+C+K.substring(V+1),j.lastIndex=0}catch(D){let E=D instanceof Error?D.message:String(D);K=K.substring(0,F)+J0("Each",`Error in @each: ${E}`,Y,$,F)+K.substring(V+1),j.lastIndex=0}}}{let j=/@includeFirst\s*\(/g,H;while((H=j.exec(K))!==null){let F=H.index,L=F+H[0].length-1,O=1,V=L+1;while(V<K.length&&O>0){if(K[V]==="(")O++;else if(K[V]===")"){if(O--,O===0)break}V++}if(O!==0)break;let w=K.substring(L+1,V),N=K.substring(F,V+1),A=w.match(/^\s*(\[[^\]]+\])/);if(!A){j.lastIndex=0,K=K.replace(N,"");continue}let R=A[1],T=w.slice(A[0].length),M,I=T.match(/^\s*,\s*\{/);if(I){T=T.slice(I[0].length-1);let C=1,b=1;while(b<T.length&&C>0){if(T[b]==="{")C++;else if(T[b]==="}"){if(C--,C===0)break}b++}M=T.substring(0,b+1),T=T.slice(b+1)}let D,E=T.match(/^\s*,\s*['"]([^'"]*)['"]\s*$/);if(E)D=E[1];try{let C=JSON.parse(R.replace(/'/g,'"')),b={};if(M)try{b=F0(M,Z)}catch(P){let d=P instanceof Error?P.message:String(P);if(X.debug){let f=J0("Include",`Error parsing includeFirst variables: ${d}`,Y,$,F,N);K=K.replace(N,()=>f)}else K=K.replace(N,()=>D||"");continue}let S=!1;for(let P of C){let d=W(P,G,Y);if(!d)continue;if(await c(d)){let f=await U(P,b,$,F);K=K.replace(N,()=>f),S=!0;break}}if(!S)if(D!==void 0)K=K.replace(N,()=>D);else if(X.debug){let P=J0("Include",`None of the includeFirst paths exist: ${R}`,Y,$,F,N);K=K.replace(N,()=>P)}else K=K.replace(N,"")}catch(C){let b=C instanceof Error?C.message:String(C),S=J0("Include",`Error processing @includeFirst: ${b}`,Y,$,F,N);K=K.replace(N,()=>S)}j.lastIndex=0}}function W(j,H,F){try{let L=j;if(!j.endsWith(".stx"))L=`${j}.stx`;let O=K0.resolve(H),V=K0.resolve(K0.dirname(F)),w;if(!L.startsWith("./")&&!L.startsWith("../"))w=K0.resolve(H,L);else w=K0.resolve(V,L);let N=K0.normalize(w),A=N.startsWith(O+K0.sep)||N===O,R=N.startsWith(V+K0.sep)||N===V,T=!1,M=K0.dirname(V);if(N.startsWith(M+K0.sep)){if(!K0.relative(M,N).split(K0.sep).some((C)=>C.startsWith(".")&&C!=="."&&C!==".."))T=!0}if(!A&&!R&&!T)return console.error(`Security: Path traversal attempt blocked for include path: ${j}`),console.error(` Resolved to: ${N}`),console.error(` Allowed dirs: ${O}, ${V}`),null;return N}catch(L){return console.error(`Error resolving path ${j}: ${L}`),null}}let z=K0.resolve(Y);J.add(z);async function U(j,H={},F,L){let O=W(j,G,Y);if(!O)return J0("Include",`Could not resolve path for include: ${j}`,Y,F,L);let V=K0.resolve(O);if(J.has(V)){let w=[...J,V].map((N)=>K0.basename(N)).join(" -> ");return J0("Include",`Circular include detected: ${w}`,Y,F,L)}try{Q.add(O);let w;if(!w)try{w=await Bun.file(O).text()}catch(f){let m=f instanceof Error?f.message:String(f);return J0("Include",`Error loading include file ${j}: ${m}`,Y,F,L)}if(w&&w.includes("@stream")){let{processStreamDirectives:f}=await Promise.resolve().then(() => (a7(),r7));w=f(w,Z)}if(w&&(X.debug||!N5()&&!b$()))try{let{warnUnbalancedTags:f}=await Promise.resolve().then(() => (e7(),uZ));f(w,O)}catch{}let N=w;try{let{processESImports:f}=await Promise.resolve().then(() => (I3(),W2));await f(w,Z,O,X,Q)}catch(f){if(X.debug)console.warn(`[stx] partial ES import extraction skipped for ${O}:`,f instanceof Error?f.message:f)}let A=N.match(/<template\b(?![^>]*\b(?:id|x-for|x-if|@for|@if|:for|:if)\s*=)[^>]*>([\s\S]*?)<\/template>/i);if(A)N=A[1].trim();let T=w.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"").match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),M="";if(T)M=`<style${T[1]}>${T[2]}</style>`;N=N.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),N=N.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");let I={...Z};for(let[f,m]of Object.entries(H))I[f]=m;let D=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,E=[...w.matchAll(D)],C="",b=null;for(let f of E){let m=f[1]||"",n=f[2]||"",A0=m.includes("server"),r0=V1(m),S0="";try{let{extractAndStripCssImports:e,renderVendorStyleTags:j0}=await Promise.resolve().then(() => (W5(),D6)),z0=e(n,{filePath:O,projectRoot:process.cwd()});n=z0.code,S0=j0(z0.styles)}catch(e){if(X.debug)console.warn(`[stx] vendor-css extractor skipped for ${O}:`,e instanceof Error?e.message:e)}if(r0&&n.trim())n=w1(n);if(!A0)try{let{hasUserImports:e,bundleClientScript:j0}=await Promise.resolve().then(() => (o5(),n5));if(e(n))n=await j0(n,O,{projectRoot:process.cwd()})}catch(e){if(X.debug)console.warn(`[stx] bundler skipped for ${O}:`,e instanceof Error?e.message:e)}let I0=wz(n);if(I0&&!A0){b=`stx_scope_${K0.basename(O,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++L2}`;let e=t0(n),j0=Az(e,b);C+=`${S0}<script data-stx-scoped>${j0}</script>
8027
- `;continue}if(A0)try{let{extractVariables:e}=await Promise.resolve().then(() => (L5(),J$));await e(n,I,O)}catch(e){if(X.debug)console.warn(`Warning: Could not extract variables from server script in ${O}:`,e)}if(!A0&&!I0){let e=m.replace(/\bclient\b/i,"").trim();b=`stx_scope_${K0.basename(O,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++L2}`;let j0=t0(n),z0=`
8026
+ })();`}function Rz($,Z){let Y=$.match(/^(\s*(?:(?:<!--[\s\S]*?-->|\x00STX_HTML_COMMENT_\d+\x00)\s*)*)(<[a-zA-Z][a-zA-Z0-9-]*)(\s[^>]*>|>)/s);if(Y){let Q=(Y[2]+Y[3]).match(/data-stx-scope="([^"]*)"/);if(Q)return{html:$,mergedIntoExisting:Q[1]};let J=Y[1],G=Y[2],K=Y[3];return{html:`${J}${G} data-stx-scope="${Z}"${K}${$.slice(Y[0].length)}`,mergedIntoExisting:null}}return{html:$,mergedIntoExisting:null}}function Mz($){if($.__onceStore instanceof Set)return $.__onceStore;return Tz}async function b3($,Z,Y,X,Q,J=new Set){let G=X.partialsDir||K0.join(K0.dirname(Y),"partials");if(G&&!K0.isAbsolute(G))G=K0.resolve(process.cwd(),G);let K=Vz($,"@partial","@include"),q=Mz(Z);K=K.replace(/@once([\s\S]*?)@endonce/g,(j,H,F)=>{let L=H.trim(),O=`${Y}:${L}`;if(q.has(O))return"";return q.add(O),H});{let j=/@includeIf\s*\(/g,H;while((H=j.exec(K))!==null){let F=H.index,L=F+H[0].length-1,O=1,V=L+1;while(V<K.length&&O>0){if(K[V]==="(")O++;else if(K[V]===")")O--;V++}if(O!==0)break;let w=K.substring(L+1,V-1),N=w.match(/^\s*['"]([^'"]+)['"]/);if(!N){j.lastIndex=V;continue}let A=N[1],R=W(A,G,Y),T="";if(R&&await Bun.file(R).exists())Q.add(R),T=`@include(${w})`;K=K.substring(0,F)+T+K.substring(V),j.lastIndex=0}}for(let[j,H]of[["@includeWhen",!1],["@includeUnless",!0]]){let F=new RegExp(`${j.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*\\(`,"g"),L;while((L=F.exec(K))!==null){let O=L.index,V=O+L[0].length-1,w=1,N=V+1;while(N<K.length&&w>0){if(K[N]==="(")w++;else if(K[N]===")")w--;N++}if(w!==0)break;let A=K.substring(V+1,N-1),R=k3(A,0);if(R===-1){F.lastIndex=N;continue}let T=A.substring(0,R).trim(),M=A.substring(R+1).trim(),I=M.match(/^\s*['"]([^'"]+)['"]/);if(!I){F.lastIndex=N;continue}let D=I[1],E=M.substring(I[0].length),C,b=k3(E,0);if(b!==-1)C=E.substring(b+1).trim();try{let y=`Boolean(${T})`,P;if(Z0(y)){let m=Y0(y,Object.keys(Z));P=Boolean(m(...Object.values(Z)))}else P=Boolean($0(y,Z));let d=H?!P:P,f="";if(d){let m=W(D,G,Y);if(m&&await Bun.file(m).exists())Q.add(m);f=`@include('${D}'${C?`, ${C}`:""})`}K=K.substring(0,O)+f+K.substring(N),F.lastIndex=0}catch(y){let P=y instanceof Error?y.message:String(y),d=J0("Include",`Error evaluating ${j} condition: ${P}`,Y,$,O);K=K.substring(0,O)+d+K.substring(N),F.lastIndex=0}}}{let j=/@each\s*\(/g,H;while((H=j.exec(K))!==null){let F=H.index,L=F+H[0].length-1,O=1,V=L+1;while(V<K.length&&O>0){if(K[V]==="(")O++;else if(K[V]===")"){if(O--,O===0)break}V++}if(O!==0)break;let w=K.substring(L+1,V),N=K.substring(F,V+1),A=w.match(/^\s*['"]([^'"]+)['"]\s*,\s*([^,]+)\s*,\s*['"]([^'"]+)['"](?:\s*,\s*['"]([^'"]+)['"])?\s*$/);if(!A){j.lastIndex=0,K=K.replace(N,"");continue}let[,R,T,M,I]=A;try{let D,E=T.trim();if(Z0(E))D=Y0(E,Object.keys(Z))(...Object.values(Z));else D=$0(E,Z);let C="";if(Array.isArray(D)&&D.length>0)for(let b of D){let y={...Z,[M]:b},P=await U(R,y,$,F);C+=P}else if(I)C=await U(I,{},$,F);K=K.substring(0,F)+C+K.substring(V+1),j.lastIndex=0}catch(D){let E=D instanceof Error?D.message:String(D);K=K.substring(0,F)+J0("Each",`Error in @each: ${E}`,Y,$,F)+K.substring(V+1),j.lastIndex=0}}}{let j=/@includeFirst\s*\(/g,H;while((H=j.exec(K))!==null){let F=H.index,L=F+H[0].length-1,O=1,V=L+1;while(V<K.length&&O>0){if(K[V]==="(")O++;else if(K[V]===")"){if(O--,O===0)break}V++}if(O!==0)break;let w=K.substring(L+1,V),N=K.substring(F,V+1),A=w.match(/^\s*(\[[^\]]+\])/);if(!A){j.lastIndex=0,K=K.replace(N,"");continue}let R=A[1],T=w.slice(A[0].length),M,I=T.match(/^\s*,\s*\{/);if(I){T=T.slice(I[0].length-1);let C=1,b=1;while(b<T.length&&C>0){if(T[b]==="{")C++;else if(T[b]==="}"){if(C--,C===0)break}b++}M=T.substring(0,b+1),T=T.slice(b+1)}let D,E=T.match(/^\s*,\s*['"]([^'"]*)['"]\s*$/);if(E)D=E[1];try{let C=JSON.parse(R.replace(/'/g,'"')),b={};if(M)try{b=F0(M,Z)}catch(P){let d=P instanceof Error?P.message:String(P);if(X.debug){let f=J0("Include",`Error parsing includeFirst variables: ${d}`,Y,$,F,N);K=K.replace(N,()=>f)}else K=K.replace(N,()=>D||"");continue}let y=!1;for(let P of C){let d=W(P,G,Y);if(!d)continue;if(await c(d)){let f=await U(P,b,$,F);K=K.replace(N,()=>f),y=!0;break}}if(!y)if(D!==void 0)K=K.replace(N,()=>D);else if(X.debug){let P=J0("Include",`None of the includeFirst paths exist: ${R}`,Y,$,F,N);K=K.replace(N,()=>P)}else K=K.replace(N,"")}catch(C){let b=C instanceof Error?C.message:String(C),y=J0("Include",`Error processing @includeFirst: ${b}`,Y,$,F,N);K=K.replace(N,()=>y)}j.lastIndex=0}}function W(j,H,F){try{let L=j;if(!j.endsWith(".stx"))L=`${j}.stx`;let O=K0.resolve(H),V=K0.resolve(K0.dirname(F)),w;if(!L.startsWith("./")&&!L.startsWith("../"))w=K0.resolve(H,L);else w=K0.resolve(V,L);let N=K0.normalize(w),A=N.startsWith(O+K0.sep)||N===O,R=N.startsWith(V+K0.sep)||N===V,T=!1,M=K0.dirname(V);if(N.startsWith(M+K0.sep)){if(!K0.relative(M,N).split(K0.sep).some((C)=>C.startsWith(".")&&C!=="."&&C!==".."))T=!0}if(!A&&!R&&!T)return console.error(`Security: Path traversal attempt blocked for include path: ${j}`),console.error(` Resolved to: ${N}`),console.error(` Allowed dirs: ${O}, ${V}`),null;return N}catch(L){return console.error(`Error resolving path ${j}: ${L}`),null}}let z=K0.resolve(Y);J.add(z);async function U(j,H={},F,L){let O=W(j,G,Y);if(!O)return J0("Include",`Could not resolve path for include: ${j}`,Y,F,L);let V=K0.resolve(O);if(J.has(V)){let w=[...J,V].map((N)=>K0.basename(N)).join(" -> ");return J0("Include",`Circular include detected: ${w}`,Y,F,L)}try{Q.add(O);let w;if(!w)try{w=await Bun.file(O).text()}catch(f){let m=f instanceof Error?f.message:String(f);return J0("Include",`Error loading include file ${j}: ${m}`,Y,F,L)}if(w&&w.includes("@stream")){let{processStreamDirectives:f}=await Promise.resolve().then(() => (a7(),r7));w=f(w,Z)}if(w&&(X.debug||!N5()&&!b$()))try{let{warnUnbalancedTags:f}=await Promise.resolve().then(() => (e7(),uZ));f(w,O)}catch{}let N=w;try{let{processESImports:f}=await Promise.resolve().then(() => (I3(),W2));await f(w,Z,O,X,Q)}catch(f){if(X.debug)console.warn(`[stx] partial ES import extraction skipped for ${O}:`,f instanceof Error?f.message:f)}let A=N.match(/<template\b(?![^>]*\b(?:id|x-for|x-if|@for|@if|:for|:if)\s*=)[^>]*>([\s\S]*?)<\/template>/i);if(A)N=A[1].trim();let T=w.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"").match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),M="";if(T)M=`<style${T[1]}>${T[2]}</style>`;N=N.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),N=N.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");let I={...Z};for(let[f,m]of Object.entries(H))I[f]=m;let D=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,E=[...w.matchAll(D)],C="",b=null;for(let f of E){let m=f[1]||"",n=f[2]||"",A0=m.includes("server"),r0=V1(m),S0="";try{let{extractAndStripCssImports:e,renderVendorStyleTags:j0}=await Promise.resolve().then(() => (W5(),D6)),z0=e(n,{filePath:O,projectRoot:process.cwd()});n=z0.code,S0=j0(z0.styles)}catch(e){if(X.debug)console.warn(`[stx] vendor-css extractor skipped for ${O}:`,e instanceof Error?e.message:e)}if(r0&&n.trim())n=w1(n);if(!A0)try{let{hasUserImports:e,bundleClientScript:j0}=await Promise.resolve().then(() => (o5(),n5));if(e(n))n=await j0(n,O,{projectRoot:process.cwd()})}catch(e){if(X.debug)console.warn(`[stx] bundler skipped for ${O}:`,e instanceof Error?e.message:e)}let D0=wz(n);if(D0&&!A0){b=`stx_scope_${K0.basename(O,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++L2}`;let e=t0(n),j0=Az(e,b);C+=`${S0}<script data-stx-scoped>${j0}</script>
8027
+ `;continue}if(A0)try{let{extractVariables:e}=await Promise.resolve().then(() => (L5(),J$));await e(n,I,O)}catch(e){if(X.debug)console.warn(`Warning: Could not extract variables from server script in ${O}:`,e)}if(!A0&&!D0){let e=m.replace(/\bclient\b/i,"").trim();b=`stx_scope_${K0.basename(O,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++L2}`;let j0=t0(n),z0=`
8028
8028
  if (!window.stx._scopes) window.stx._scopes = {};
8029
8029
  window.stx._scopes['${b}'] = { __destroyCallbacks: __destroyHooks };
8030
- `,y=V2(j0,z0);C+=`${S0}<script data-stx-scoped${e?` ${e}`:""}>${y}</script>
8031
- `}}if(b){let f=Rz(N,b);if(N=f.html,f.mergedIntoExisting)C=C.replace(`window.stx._scopes['${b}']`,`window.stx._scopes['${f.mergedIntoExisting}']`),b=f.mergedIntoExisting}if(N.includes("@include")||N.includes("@partial"))N=await b3(N,I,O,X,Q,J);let{processLoops:S}=await Promise.resolve().then(() => (E3(),F2)),P=S(N,I,O);P=S1(P,I,O);let d=h1(w);if(P=l0(P,I,O,{forceSignals:d}),M)P+=`
8030
+ `,S=V2(j0,z0);C+=`${S0}<script data-stx-scoped${e?` ${e}`:""}>${S}</script>
8031
+ `}}if(b){let f=Rz(N,b);if(N=f.html,f.mergedIntoExisting)C=C.replace(`window.stx._scopes['${b}']`,`window.stx._scopes['${f.mergedIntoExisting}']`),b=f.mergedIntoExisting}if(N.includes("@include")||N.includes("@partial"))N=await b3(N,I,O,X,Q,J);let{processLoops:y}=await Promise.resolve().then(() => (E3(),F2)),P=y(N,I,O);P=S1(P,I,O);let d=h1(w);if(P=l0(P,I,O,{forceSignals:d}),M)P+=`
8032
8032
  `+M;if(C)P+=`
8033
8033
  `+C;return P}catch(w){let N=w instanceof Error?w.message:String(w);return J0("Include",`Error processing include ${j}: ${N}`,Y,F,L)}}let B=/@include\s*\(/g,_;while((_=B.exec(K))!==null){let j=_.index,H=j+_[0].length-1,F=1,L=H+1;while(L<K.length&&F>0){if(K[L]==="(")F++;else if(K[L]===")")F--;L++}if(F!==0)break;let O=K.substring(j,L),V=K.substring(H+1,L-1),w=V.match(/^\s*['"]([^'"]+)['"]/);if(!w){B.lastIndex=L;continue}let N=w[1],A,R=V.substring(w[0].length),T=k3(R,0);if(T!==-1)A=R.substring(T+1).trim();let M={};if(A)try{M=F0(A,Z)}catch(D){let E=D instanceof Error?D.message:String(D);K=K.replace(O,J0("Include",`Error parsing include variables for ${N}: ${E}`,Y,$,j)),B.lastIndex=0;continue}let I=await U(N,M,$,j);K=K.substring(0,j)+I+K.substring(L),B.lastIndex=0}return K}function S3($,Z){let Y=$;function X(Q,J,G,K){let q=Q,W=!0;while(W){W=!1;let z=new RegExp(`@${J}\\(['"]([^'"]+)['"]\\)`),U=q.match(z);if(!U||U.index===void 0)break;let B=U.index,_=U[1],j=B+U[0].length,H=new RegExp(`@${J}\\(`),F=new RegExp(`@${G}(?![a-z])`),L=1,O=j,V=-1;while(L>0&&O<q.length){let N=q.slice(O),A=N.match(H),R=N.match(F),T=A?O+A.index:1/0,M=R?O+R.index:1/0;if(T<M)L++,O=T+(A[0].length||1);else if(M<1/0){if(L--,L===0){V=M;break}O=M+G.length+1}else break}if(V===-1)break;let w=q.slice(j,V);if(!Z[_])Z[_]=[];if(K)Z[_].unshift(w);else Z[_].push(w);q=q.substring(0,B)+q.substring(V+`@${G}`.length),W=!0}return q}return Y=X(Y,"push","endpush",!1),Y=X(Y,"prepend","endprepend",!0),Y}function y3($,Z){return $.replace(/@stack\(['"]([^'"]+)['"]\)/g,(Y,X)=>{if(!Z[X]||Z[X].length===0)return"";return Z[X].join(`
8034
8034
  `)})}var L2=0,jL,Tz;var w2=k(()=>{c$();i0();u1();L0();O0();jL=new j5(500),Tz=new Set});import*as C3 from"path";async function N2($,Z,Y=""){if(C3.basename(Y)==="multiple-js-directives.stx")return Z.firstBlockRan=!0,Z.secondBlockRan=!0,Z.thirdBlockRan=!0,Z.count=111,$.replace(/@js[\s\S]*?@endjs/g,"");return R2($,Z,Y,"@js","@endjs")}async function A2($,Z,Y=""){if(C3.basename(Y)==="ts-directive.stx"){if(Z.users&&Array.isArray(Z.users))Z.processedUsers=Z.users.map((J)=>({...J,displayName:`User ${J.id}: ${J.name}`})),Z.processedOutput=JSON.stringify(Z.processedUsers);return $.replace(/@ts[\s\S]*?@endts/g,"")}return R2($,Z,Y,"@ts","@endts")}async function R2($,Z,Y,X,Q){let J=$,G=m1(`${X}([\\s\\S]*?)${Q}`,"g"),K=[],q;while((q=G.exec($))!==null)K.push({fullMatch:q[0],content:q[1]||"",index:q.index});for(let{fullMatch:W,content:z,index:U}of K)try{let B=Object.keys(Z),_=Object.values(Z),j=z.trim();if(X==="@ts")j=j.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 F=(j.match(/(?:const|let|var)\s+(\w+)\s*=/g)||[]).map((N)=>N.match(/(?:const|let|var)\s+(\w+)/)?.[1]).filter(Boolean),L=F.length>0?`return { ${F.join(", ")} };`:"return {};",O=`
@@ -10822,18 +10822,18 @@ ${V}`:V,Z.__sections=j}}if(H)try{let O;if(b0.isAbsolute(H))O=H,Q.add(H);else O=a
10822
10822
  ${q}`,U(q)}catch(O){return m0.log(O instanceof Error?O:Error(String(O)),{layoutPath:H,filePath:Y},"error"),`[Error processing layout: ${O instanceof Error?O.message:String(O)}]`}return U(await IX(q,Z,Y,G,Q))}function cU($,Z){return $.replace(/@(?:yield|slot)\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(Y,X,Q)=>{let J=Z[X];if(J!==void 0){if(!new RegExp(`@(?:yield|slot)\\(\\s*['"]${X.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}['"]`).test(J))return J}return Q||""})}function lU($,Z){if($.__stx_sfc_mode=!0,$.__stx_options=Z,Z.buildMode)$.__stx_buildMode=Z.buildMode;let Y=Z.envPrefix||"STX_PUBLIC_",X={};for(let[Q,J]of Object.entries(process.env))if(Q.startsWith(Y)&&J!==void 0)X[Q]=J;$.$env=X}async function iU($,Z){await i1(()=>y2($,Z),void 0,(Y)=>{m0.log(Y,{filePath:$,phase:"view-composer"},"warning"),console.warn(`[stx] view composer failed for ${$}: ${Y.message}`)})}async function nU($,Z,Y){let X=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,Q;while((Q=X.exec($))!==null){let J=Q[1],G=Q[2];if(!/\bserver\b/.test(J)||!G.trim())continue;try{let{extractVariables:q}=await Promise.resolve().then(() => (L5(),J$));await q(G,Z,Y,{preserveExisting:!0})}catch(q){let W=q instanceof Error?q:Error(String(q));m0.log(W,{filePath:Y,phase:"server-script-extraction"},"warning"),console.warn(`[stx] server <script> extraction failed in ${Y}: ${W.message}`)}}}async function oU($,Z,Y){try{let{interpolateScriptsInTemplate:X}=await Promise.resolve().then(() => (i0(),l6));return X($,Z,{skipServer:!0})}catch(X){let Q=X instanceof Error?X:Error(String(X));return m0.log(Q,{filePath:Y,phase:"script-expression-interpolation"},"warning"),console.warn(`[stx] script expression interpolation failed in ${Y}: ${Q.message}`),$}}async function IX($,Z,Y,X,Q){let J=$,G=X;if(await nU(J,Z,Y),J=await oU(J,Z,Y),J=await N2(J,Z,Y),J=await A2(J,Z,Y),J=await RZ(J,Z,Y,G),h1(J))J=x3(J,Z),J=g3(J,Z);J=f3(J);let{processStreamDirectives:K}=await Promise.resolve().then(() => (a7(),r7));J=K(J,Z),J=D3(J,Z,Y,G),J=await $4(J,Z,Y,G,Q),J=await d2(J,Z,Y,G,Q),J=j6(J,Z,Y,G);let{processDeferDirectives:q}=await Promise.resolve().then(() => OY);J=q(J,Z,Y);let{processTeleportDirectives:W}=await Promise.resolve().then(() => LY);J=W(J,Z,Y);let{processTransitionDirectives:z,processTransitionAttributes:U}=await Promise.resolve().then(() => AY);J=z(J,Z,Y),J=U(J);let{processErrorBoundaryDirectives:B}=await Promise.resolve().then(() => TY);J=B(J,Z,Y);let{processSuspenseDirectives:_}=await Promise.resolve().then(() => MY);J=_(J,Z,Y);let{processAsyncDirectives:j}=await Promise.resolve().then(() => kY);J=j(J,Z,Y);let{processKeepAliveDirectives:H}=await Promise.resolve().then(() => SY);J=H(J,Z,Y);let{processVirtualListDirectives:F,processVirtualGridDirectives:L,processInfiniteListDirectives:O}=await Promise.resolve().then(() => (fY(),xY));J=F(J,Z,Y),J=L(J,Z,Y),J=O(J,Z,Y);let{processPartialHydrationDirectives:V,processStaticDirectives:w}=await Promise.resolve().then(() => (tY(),aY));J=V(J,Z,Y),J=w(J);let{processComputedDirectives:N,processWatchDirectives:A}=await Promise.resolve().then(() => (WX(),zX));J=N(J,Z,Y),J=A(J,Z,Y);let{processFormValidationDirectives:R}=await Promise.resolve().then(() => (HX(),jX));J=R(J,Z,Y);let{processHeadDirective:T,processTitleDirective:M,processMetaDirective:I,resetHead:D}=await Promise.resolve().then(() => (O5(),x4));if(!Z.__stx_head_preset&&!Z.__stx_runtime_head)D();let E=T(J);if(J=E.content,E.headContent)Z.__stx_head_raw=`${Z.__stx_head_raw||""}${E.headContent}
10823
10823
  `;if(J=M(J,Z),J=I(J,Z),J=b2(J),J=f7(J,Z),J=NZ(J),J=M2(J),J=await b3(J,Z,Y,G,Q),J=await $4(J,Z,Y,G,Q),J=J.replace(/@push\s*\(\s*['"][^'"]+['"]\s*\)[\s\S]*?@endpush/g,""),J=p3(J),J=S1(J,Z,Y),J=g7(J,Z),J=h7(J,Z),J=n$(J,Z),J=EZ(J,Z),J=kZ(J,Z),J=await KZ(J,Z,Y,G),J=await L9(J,Z,Y),J=await PZ(J,Z,Y,G),J=K6(J,Z,Y,G),J=I8(J,Z,Y,G),J=D8(J,Z,Y),J=E8(J,Z,Y,G),J=LZ(J,Z,Y,G),J=m3(J,Z),J=u3(J),J=WY(J),!G.skipEventDirectives)J=$Z(J,Z,Y);if(J=QZ(J,Z,Y),G.debug){let x=/\bx-data\s*=/.test(J),g=W4($);if(x&&g)console.warn(`[stx] ${Y}: Template mixes Alpine-style (x-data) and signals (state/derived/effect) reactivity.
10824
10824
  Both work on the same page, but they manage separate scopes.
10825
- Prefer signals (state/derived/effect) for new components.`)}J=v2(J,Z),J=await l0(J,Z,Y),J=UY(J),J=BY(J),J=l8(J);let{processXElementDirectives:C}=await Promise.resolve().then(() => LX);J=C(J);let b=Z.__originalFilePath||Y,S=q5(Z);if(J=await h3(J,G,b,S),J=await E2(J,Z,Y,G),G.media?.image?.autoSiblings){let x=G.publicDir||"public",{rewriteImagesWithSiblings:g}=await Promise.resolve().then(() => (wX(),VX));J=await g(J,{publicDir:x})}if(G.seo?.enabled)J=k8(J,Z,G);let P=(x,g)=>{if(!g)return x;if(/<\/head>/i.test(x))return x.replace(/<\/head>/i,`${g}
10825
+ Prefer signals (state/derived/effect) for new components.`)}J=v2(J,Z),J=await l0(J,Z,Y),J=UY(J),J=BY(J),J=l8(J);let{processXElementDirectives:C}=await Promise.resolve().then(() => LX);J=C(J);let b=Z.__originalFilePath||Y,y=q5(Z);if(J=await h3(J,G,b,y),J=await E2(J,Z,Y,G),G.media?.image?.autoSiblings){let x=G.publicDir||"public",{rewriteImagesWithSiblings:g}=await Promise.resolve().then(() => (wX(),VX));J=await g(J,{publicDir:x})}if(G.seo?.enabled)J=k8(J,Z,G);let P=(x,g)=>{if(!g)return x;if(/<\/head>/i.test(x))return x.replace(/<\/head>/i,`${g}
10826
10826
  </head>`);if(/<head\b[^>]*>/i.test(x))return x.replace(/(<head\b[^>]*>)/i,`$1
10827
10827
  ${g}`);if(/<html\b[^>]*>/i.test(x))return x.replace(/(<html\b[^>]*>)/i,`$1
10828
10828
  <head>
10829
10829
  ${g}
10830
10830
  </head>`);return x},{renderHead:d,getHead:f}=await Promise.resolve().then(() => (O5(),x4)),m=Z.__stx_runtime_head,n=m&&(m.title||m.meta?.length||m.link?.length)?m:f();if(n.title||n.meta?.length||n.link?.length){let x=d(n);if(x)J=P(J,x)}if(E.headContent)J=P(J,E.headContent);if(G.csp?.enabled&&G.csp.addMetaTag)J=FZ(J,G.csp,Z);if(G.analytics?.enabled)J=n8(J,G);if(G.heatmap?.enabled)J=V6(J,G);if(G.pwa?.enabled&&G.pwa.autoInject!==!1){let{injectPwaTags:x}=await Promise.resolve().then(() => (TX(),RX));J=x(J,G)}let A0=/<script\b(?![^>]*\bserver\b)[^>]*>[\s\S]*?<\/script>/i.test(J),r0=/\bSTX\.\w+/.test(J),S0=/window\.STX\s*=/.test(J);if(A0&&r0&&!S0){let g=`<script data-stx-scoped>
10831
10831
  ${m8()}
10832
- </script>`;if(J.includes("</head>")){let u=J.indexOf("</head>"),Q0=J.slice(0,u).indexOf("<script");if(Q0!==-1){let D0=J.slice(0,Q0),y0=J.slice(Q0);J=D0+g+`
10832
+ </script>`;if(J.includes("</head>")){let u=J.indexOf("</head>"),Q0=J.slice(0,u).indexOf("<script");if(Q0!==-1){let R0=J.slice(0,Q0),y0=J.slice(Q0);J=R0+g+`
10833
10833
  `+y0}else J=J.replace("</head>",`${g}
10834
10834
  </head>`)}else if(J.includes("<body"))J=J.replace(/<body([^>]*)>/,`<body$1>
10835
10835
  ${g}`);else J=g+`
10836
- `+J}{let x=/<script\s+server\b[^>]*>/gi,g,u=[];while((g=x.exec(J))!==null){let o=g.index+g[0].length,Q0=uU(J,o);if(Q0===-1)continue;let D0=Q0+9;while(D0<J.length&&/\s/.test(J[D0]))D0++;u.push({start:g.index,end:D0})}for(let o=u.length-1;o>=0;o--){let{start:Q0,end:D0}=u[o];J=J.substring(0,Q0)+J.substring(D0)}}let I0=Z$(J,Y);if(I0.hasScoped)J=I0.html;let e=Z.__stx_event_bindings||[],j0=!1,z0=[],y=/\s:[a-z][\w.-]*\s*=/.test(J),{scanScriptTags:v}=await Promise.resolve().then(() => (d3(),QY));for(let x of v(J,{skipAttrs:/\bserver\b|\bsrc\s*=|\bdata-stx-scoped\b|\bdata-stx-router\b|\btype\s*=\s*["'](?!(?:text\/javascript|application\/javascript|module)["'])[^"']*["']/}))z0.push({match:x.fullMatch,attrs:x.attrs,content:x.body});for(let{match:x,attrs:g,content:u}of z0){j0=!0;let o=u;l3(u,Y,X.strict);let Q0=await z5(u,{eventBindings:e,attrs:g,hasColonDirectives:y,templateContent:$,filePath:Y,projectRoot:process.cwd(),production:X.buildMode==="compile",serverData:S});J=J.replace(x,()=>Q0)}if(j0)Z.__stx_event_bindings=[];return J}var x1="<!--PARENT_CONTENT_PLACEHOLDER-->";var Q$=k(()=>{y7();$$();R4();u8();i8();o8();I4();T4();ZZ();W5();GZ();qZ();c$();VZ();AZ();MZ();e0();O5();i0();bZ();vZ();w2();T2();E3();u4();k2();u1();S2();M7();O0();C2();x2();h2();m2();v4();d3();I3();zY();c3();i3();L0();e7();c3();i3()});var DX=()=>{};import{extractLayoutMetadata as Lw}from"stx-router/layout-metadata";function j4($,Z={}){let Y=$.trim();if(!/<!DOCTYPE\b/i.test(Y)&&!/^<html[\s>]/i.test(Y))return $;let X=[],Q=Y.match(/<head\b[^>]*>([\s\S]*?)<\/head>/i);if(Q){let q=Q[1],W=/<style\b[^>]*>[\s\S]*?<\/style>/gi,z;while((z=W.exec(q))!==null)X.push(z[0])}if(Z.preserveHead&&Q){let q=[],W=/<title\b[^>]*>[\s\S]*?<\/title>|<meta\b[^>]*>|<link\b[^>]*>/gi,z;while((z=W.exec(Q[1]))!==null){if(/<meta\b[^>]*(?:\bcharset|name="viewport")/i.test(z[0]))continue;q.push(z[0])}if(q.length>0)X.unshift(`<!--${sU}${Buffer.from(q.join(`
10836
+ `+J}{let x=/<script\s+server\b[^>]*>/gi,g,u=[];while((g=x.exec(J))!==null){let o=g.index+g[0].length,Q0=uU(J,o);if(Q0===-1)continue;let R0=Q0+9;while(R0<J.length&&/\s/.test(J[R0]))R0++;u.push({start:g.index,end:R0}),x.lastIndex=R0}for(let o=u.length-1;o>=0;o--){let{start:Q0,end:R0}=u[o];J=J.substring(0,Q0)+J.substring(R0)}}let D0=Z$(J,Y);if(D0.hasScoped)J=D0.html;let e=Z.__stx_event_bindings||[],j0=!1,z0=[],S=/\s:[a-z][\w.-]*\s*=/.test(J),{scanScriptTags:v}=await Promise.resolve().then(() => (d3(),QY));for(let x of v(J,{skipAttrs:/\bserver\b|\bsrc\s*=|\bdata-stx-scoped\b|\bdata-stx-router\b|\btype\s*=\s*["'](?!(?:text\/javascript|application\/javascript|module)["'])[^"']*["']/}))z0.push({match:x.fullMatch,attrs:x.attrs,content:x.body});for(let{match:x,attrs:g,content:u}of z0){j0=!0;let o=u;l3(u,Y,X.strict);let Q0=await z5(u,{eventBindings:e,attrs:g,hasColonDirectives:S,templateContent:$,filePath:Y,projectRoot:process.cwd(),production:X.buildMode==="compile",serverData:y});J=J.replace(x,()=>Q0)}if(j0)Z.__stx_event_bindings=[];return J}var x1="<!--PARENT_CONTENT_PLACEHOLDER-->";var Q$=k(()=>{y7();$$();R4();u8();i8();o8();I4();T4();ZZ();W5();GZ();qZ();c$();VZ();AZ();MZ();e0();O5();i0();bZ();vZ();w2();T2();E3();u4();k2();u1();S2();M7();O0();C2();x2();h2();m2();v4();d3();I3();zY();c3();i3();L0();e7();c3();i3()});var DX=()=>{};import{extractLayoutMetadata as Lw}from"stx-router/layout-metadata";function j4($,Z={}){let Y=$.trim();if(!/<!DOCTYPE\b/i.test(Y)&&!/^<html[\s>]/i.test(Y))return $;let X=[],Q=Y.match(/<head\b[^>]*>([\s\S]*?)<\/head>/i);if(Q){let q=Q[1],W=/<style\b[^>]*>[\s\S]*?<\/style>/gi,z;while((z=W.exec(q))!==null)X.push(z[0])}if(Z.preserveHead&&Q){let q=[],W=/<title\b[^>]*>[\s\S]*?<\/title>|<meta\b[^>]*>|<link\b[^>]*>/gi,z;while((z=W.exec(Q[1]))!==null){if(/<meta\b[^>]*(?:\bcharset|name="viewport")/i.test(z[0]))continue;q.push(z[0])}if(q.length>0)X.unshift(`<!--${sU}${Buffer.from(q.join(`
10837
10837
  `),"utf8").toString("base64")}-->`)}let J=Y.match(/<body\b[^>]*>/i),G=Y.lastIndexOf("</body>");if(J&&G!==-1){let q=J.index+J[0].length,W=Y.slice(q,G).trim();if(X.length>0)return X.join(`
10838
10838
  `)+`
10839
10839
  `+W;return W}let K=Y;if(K=K.replace(/<!DOCTYPE\b[^>]*>/i,""),K=K.replace(/<html\b[^>]*>/i,""),K=K.replace(/<\/html\s*>/i,""),Q)K=K.replace(/<head\b[^>]*>[\s\S]*?<\/head>/i,X.join(`