@stacksjs/stx 0.2.84 → 0.2.85

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 +5 -5
package/dist/cli.js CHANGED
@@ -1829,7 +1829,7 @@ ${"\x1B[31m"}\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\
1829
1829
  @end${K}`;X.push(`Added ${_} missing @end${K}`)}}if(X.length>0&&Z.logRecoveryWarnings)console.warn("[stx] Auto-recovery applied fixes:"),X.forEach((K)=>console.warn(` - ${K}`)),console.warn(" Consider fixing these issues in your template.");return{fixed:Y,fixes:X}},createFallbackContent($,Z){if(f4())return`<!-- ${$} failed: ${Z.message} -->`;return"<!-- stx rendering error -->"}};J1=new u3,q$={isDevelopment(){return f4()},logDetailedError($,Z){if(!this.isDevelopment())return;if(console.error("=== stx Detailed Error ==="),console.error("Error:",$.message),console.error("Stack:",$.stack),Z)console.error("Context:",Z);console.error("========================")},createErrorReport($,Z){let Y=["=== stx Error Report ===",`Time: ${new Date().toISOString()}`,`Error: ${$.message}`,`Type: ${$.constructor.name}`,`Stack: ${$.stack}`];if(Z)Y.push(`Context: ${JSON.stringify(Z,null,2)}`);return Y.push("========================"),Y.join(`
1830
1830
  `)}}});import NJ from"path";function dR($){let Z={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};return $.replace(/[&<>"']/g,(Y)=>Z[Y]||Y)}function e5($,Z={}){let{allowHtml:Y=!1,maxLength:X=1e4,allowSpecialChars:J=!0,customSanitizer:Q}=Z,G=[],K=$,W=!1;if(Q){let _=Q(K);if(_!==K)K=_,W=!0}if(K.includes("\x00"))K=K.replace(/\0/g,""),W=!0,G.push("Null bytes removed from parameter");if(K.length>X)K=K.substring(0,X),W=!0,G.push(`Parameter truncated to ${X} characters`);if(!Y&&/<[^>]+>/.test(K))K=dR(K),W=!0,G.push("HTML content was escaped");let U=[{pattern:/javascript:/gi,replacement:"",name:"javascript: URI"},{pattern:/vbscript:/gi,replacement:"",name:"vbscript: URI"},{pattern:/data:text\/html/gi,replacement:"",name:"data:text/html URI"}];for(let{pattern:_,replacement:z,name:B}of U)if(_.test(K))K=K.replace(_,z),W=!0,G.push(`Removed ${B} from parameter`);if(!J){let _=K;if(K=K.split("").filter((z)=>{let B=z.charCodeAt(0);return B>=32&&B!==127}).join(""),K!==_)W=!0,G.push("Control characters removed")}return{value:K,modified:W,warnings:G}}function H_($,Z){let Y=$.replace(/\0/g,"");Y=Y.replace(/\\/g,"/"),Y=Y.replace(/^[a-z][a-z0-9+.-]*:/i,"");while(Y.includes("../")||Y.includes("./"))Y=Y.replace(/\.\.\//g,"").replace(/\.\//g,"");if(!m3.isValidFilePath(Y,Z))return null;return Y}function O_($){let Z=[],Y=$.trim(),X=Y!==$,J=[{pattern:/\beval\s*\(/gi,name:"eval()"},{pattern:/\bFunction\s*\(/gi,name:"Function()"},{pattern:/\bsetTimeout\s*\(/gi,name:"setTimeout()"},{pattern:/\bsetInterval\s*\(/gi,name:"setInterval()"},{pattern:/\bimport\s*\(/gi,name:"dynamic import()"},{pattern:/\brequire\s*\(/gi,name:"require()"},{pattern:/\b__proto__\b/gi,name:"__proto__"},{pattern:/\bconstructor\b/gi,name:"constructor"},{pattern:/\bprototype\b/gi,name:"prototype"}];for(let{pattern:Q,name:G}of J)if(Q.test(Y))Z.push(`Potentially dangerous pattern detected: ${G}`);if(Y.includes("\x00"))Y=Y.replace(/\0/g,""),X=!0,Z.push("Null bytes removed from expression");return{value:Y,modified:X,warnings:Z}}function L_($,Z={}){return $.map((Y)=>e5(Y,Z))}function wJ($){let Z={};for(let[Y,X]of Object.entries($)){if(!m3.isValidVariableName(Y))continue;if(typeof X==="string"){let J=e5(X);Z[Y]=J.value}else if(Array.isArray(X))Z[Y]=X.map((J)=>typeof J==="string"?e5(J).value:J);else if(typeof X==="object"&&X!==null)Z[Y]=wJ(X);else Z[Y]=X}return Z}var m3;var V_=D(()=>{m3={isValidFilePath($,Z){let Y=$.replace(/\\/g,"/");if(Y.includes("\x00"))return!1;if(Y.includes("../")||Y.includes("..\\")||Y===".."||Y.startsWith("../")||Y.endsWith("/..")||Y.includes("/..\\")||Y.includes("\\../"))return!1;if(/^[a-z][a-z0-9+.-]*:/i.test(Y))return!1;if(Y.startsWith("/")){if(["/etc/","/root/","/var/","/usr/","/bin/","/sbin/","/proc/","/sys/","/dev/","/boot/","/home/","/private/","/Library/","/System/"].some((Q)=>Y===Q.slice(0,-1)||Y.startsWith(Q)))return!1}if(/^[a-z]:/i.test(Y)){if(["Windows/","Windows\\","System32/","System32\\","Program Files/","Program Files\\"].some((Q)=>Y.includes(Q)))return!1}if(Z){let J=NJ.resolve(Z,$),Q=NJ.resolve(Z);if(!J.startsWith(Q+NJ.sep)&&J!==Q)return!1}return!0},isValidVariableName($){return/^[a-z_$]\w*$/i.test($)},isValidDirectiveName($){return/^[a-z][\w-]*$/i.test($)},isSafeContent($){return![/<script[^>]*>[\s\S]*?<\/script>/i,/javascript:/i,/data:text\/html/i,/vbscript:/i,/on\w+\s*=/i].some((Y)=>Y.test($))}}});var F_=D(()=>{f3();q_();j_();V_();g3()});var R1=D(()=>{F_()});class $7{source;pos=0;line=1;column=0;tokens=[];constructor($){this.source=$}tokenize(){this.tokens=[],this.pos=0,this.line=1,this.column=0;while(this.pos<this.source.length){let $=this.nextToken();if($)this.tokens.push($)}return this.tokens.push({type:"EOF",value:"",start:this.pos,end:this.pos,line:this.line,column:this.column}),this.tokens}nextToken(){if(this.pos>=this.source.length)return null;let $=this.pos,Z=this.line,Y=this.column,X=this.source[this.pos];if(/\s/.test(X))return this.readWhitespace($,Z,Y);if(X==="/"&&this.peek(1)==="/")return this.readLineComment($,Z,Y);if(X==="/"&&this.peek(1)==="*")return this.readBlockComment($,Z,Y);if(X==='"'||X==="'")return this.readString(X,$,Z,Y);if(X==="`")return this.readTemplateString($,Z,Y);if(/\d/.test(X)||X==="."&&/\d/.test(this.peek(1)||""))return this.readNumber($,Z,Y);if(/[a-z_$]/i.test(X))return this.readIdentifier($,Z,Y);if(X==="{"){if(this.peek(1)==="{"&&this.peek(2)==="{")return this.advance(3),{type:"RAW_START",value:"{{{",start:$,end:this.pos,line:Z,column:Y};if(this.peek(1)==="{")return this.advance(2),{type:"EXPRESSION_START",value:"{{",start:$,end:this.pos,line:Z,column:Y};if(this.peek(1)==="!"&&this.peek(2)==="!")return this.advance(3),{type:"RAW_START",value:"{!!",start:$,end:this.pos,line:Z,column:Y}}if(X==="}"){if(this.peek(1)==="}"&&this.peek(2)==="}")return this.advance(3),{type:"RAW_END",value:"}}}",start:$,end:this.pos,line:Z,column:Y};if(this.peek(1)==="}")return this.advance(2),{type:"EXPRESSION_END",value:"}}",start:$,end:this.pos,line:Z,column:Y}}if(X==="!"&&this.peek(1)==="!"&&this.peek(2)==="}")return this.advance(3),{type:"RAW_END",value:"!!}",start:$,end:this.pos,line:Z,column:Y};if(X==="@"&&/[a-z]/i.test(this.peek(1)||""))return this.readDirective($,Z,Y);let J=["===","!==","==","!=","<=",">=","&&","||","??","++","--","+=","-=","*=","/=","%=","**","=>","?.","...","<<",">>",">>>","&=","|=","^="];for(let Q of J)if(this.source.slice(this.pos,this.pos+Q.length)===Q)return this.advance(Q.length),{type:"OPERATOR",value:Q,start:$,end:this.pos,line:Z,column:Y};if(/[+\-*/%<>=!&|^~?:]/.test(X))return this.advance(),{type:"OPERATOR",value:X,start:$,end:this.pos,line:Z,column:Y};if(/[()[\]{},;.]/.test(X))return this.advance(),{type:"PUNCTUATION",value:X,start:$,end:this.pos,line:Z,column:Y};return this.advance(),{type:"PUNCTUATION",value:X,start:$,end:this.pos,line:Z,column:Y}}readWhitespace($,Z,Y){while(this.pos<this.source.length&&/\s/.test(this.source[this.pos]))this.advance();return{type:"WHITESPACE",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:Y}}readLineComment($,Z,Y){this.advance(2);while(this.pos<this.source.length&&this.source[this.pos]!==`
1831
1831
  `)this.advance();return{type:"COMMENT",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:Y}}readBlockComment($,Z,Y){this.advance(2);while(this.pos<this.source.length-1){if(this.source[this.pos]==="*"&&this.source[this.pos+1]==="/"){this.advance(2);break}this.advance()}return{type:"COMMENT",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:Y}}readString($,Z,Y,X){this.advance();while(this.pos<this.source.length){let J=this.source[this.pos];if(J==="\\"){this.advance(2);continue}if(J===$){this.advance();break}this.advance()}return{type:"STRING",value:this.source.slice(Z,this.pos),start:Z,end:this.pos,line:Y,column:X}}readTemplateString($,Z,Y){this.advance();let X=0,J=256;while(this.pos<this.source.length){let Q=this.source[this.pos];if(Q==="\\"){this.advance(2);continue}if(Q==="$"&&this.peek(1)==="{"){if(X>=J){this.pos=this.source.length;break}this.advance(2),X++;continue}if(Q==="{"&&X>0){X++,this.advance();continue}if(Q==="}"&&X>0){X--,this.advance();continue}if(Q==="`"&&X===0){this.advance();break}this.advance()}return{type:"TEMPLATE_STRING",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:Y}}readNumber($,Z,Y){if(this.source[this.pos]==="0"){let X=this.peek(1)?.toLowerCase();if(X==="x"||X==="o"||X==="b"){this.advance(2);while(this.pos<this.source.length&&/[\da-f_]/i.test(this.source[this.pos]))this.advance();return{type:"NUMBER",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:Y}}}while(this.pos<this.source.length&&/[\d_]/.test(this.source[this.pos]))this.advance();if(this.source[this.pos]==="."&&/\d/.test(this.peek(1)||"")){this.advance();while(this.pos<this.source.length&&/[\d_]/.test(this.source[this.pos]))this.advance()}if(/e/i.test(this.source[this.pos]||"")){if(this.advance(),/[+-]/.test(this.source[this.pos]||""))this.advance();while(this.pos<this.source.length&&/[\d_]/.test(this.source[this.pos]))this.advance()}if(this.source[this.pos]==="n")this.advance();return{type:"NUMBER",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:Y}}readIdentifier($,Z,Y){while(this.pos<this.source.length&&/[\w$]/.test(this.source[this.pos]))this.advance();return{type:"IDENTIFIER",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:Y}}readDirective($,Z,Y){this.advance();while(this.pos<this.source.length&&/[a-z]/i.test(this.source[this.pos]))this.advance();return{type:"DIRECTIVE",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:Y}}advance($=1){for(let Z=0;Z<$&&this.pos<this.source.length;Z++){if(this.source[this.pos]===`
1832
- `)this.line++,this.column=0;else this.column++;this.pos++}}peek($){return this.source[this.pos+$]}saveState(){return{pos:this.pos,line:this.line,column:this.column}}restoreState($){this.pos=$.pos,this.line=$.line,this.column=$.column}}function u0($,Z,Y,X=0){let J=0,Q=X,G=null,K=0,W=!1;while(Q<$.length){let U=$[Q];if(G&&W){W=!1,Q++;continue}if(G&&U==="\\"){W=!0,Q++;continue}if(W=!1,(U==='"'||U==="'"||U==="`")&&!G){G=U,Q++;continue}if(U===G&&G!=="`"){G=null,Q++;continue}if(G==="`"&&U==="$"&&$[Q+1]==="{"){K++,Q+=2;continue}if(K>0&&U==="}"){K--,Q++;continue}if(U==="`"&&G==="`"&&K===0){G=null,Q++;continue}if(G){Q++;continue}if(U===Z)J++;else if(U===Y){if(J--,J===0)return Q}Q++}return-1}function RJ($,Z){let Y=Z,X={paren:0,bracket:0,brace:0},J=null,Q=0;while(Y<$.length){let G=$[Y];if((Y>0?$[Y-1]:"")==="\\"&&J){Y++;continue}if((G==='"'||G==="'")&&!J){J=G,Y++;continue}if(G===J&&J!=="`"){J=null,Y++;continue}if(G==="`"&&!J){J="`",Y++;continue}if(G==="`"&&J==="`"&&Q===0){J=null,Y++;continue}if(J==="`"&&G==="$"&&$[Y+1]==="{"){Q++,Y+=2;continue}if(Q>0){if(G==="{")Q++;else if(G==="}")Q--;Y++;continue}if(J){Y++;continue}if(X.paren===0&&X.bracket===0&&X.brace===0){if($.slice(Y,Y+2)==="}}"||$.slice(Y,Y+3)==="!!}")break;if(G===","||G===";")break}if(G==="(")X.paren++;else if(G===")"){if(X.paren--,X.paren<0)break}else if(G==="[")X.bracket++;else if(G==="]"){if(X.bracket--,X.bracket<0)break}else if(G==="{")X.brace++;else if(G==="}"){if(X.brace--,X.brace<0)break}Y++}return{expression:$.slice(Z,Y),endPos:Y}}function c3($){let Z=[],Y="",X={paren:0,bracket:0,brace:0},J=null,Q=0;for(let G=0;G<$.length;G++){let K=$[G];if((G>0?$[G-1]:"")==="\\"&&J){Y+=K;continue}if((K==='"'||K==="'")&&!J){J=K,Y+=K;continue}if(K===J&&J!=="`"){J=null,Y+=K;continue}if(K==="`"&&!J){J="`",Y+=K;continue}if(K==="`"&&J==="`"&&Q===0){J=null,Y+=K;continue}if(J==="`"&&K==="$"&&$[G+1]==="{"){Q++,Y+=K+$[G+1],G++;continue}if(Q>0&&K==="{"){Q++,Y+=K;continue}if(Q>0&&K==="}"){Q--,Y+=K;continue}if(J){Y+=K;continue}if(K==="(")X.paren++;else if(K===")")X.paren--;else if(K==="[")X.bracket++;else if(K==="]")X.bracket--;else if(K==="{")X.brace++;else if(K==="}")X.brace--;if(K==="|"&&$[G+1]!=="|"&&(G===0||$[G-1]!=="|")&&$[G-1]!=="\\"&&X.paren===0&&X.bracket===0&&X.brace===0){Z.push(Y.trim()),Y="";continue}if(K==="|"&&$[G-1]==="\\"&&!J){Y=Y.slice(0,-1)+K;continue}Y+=K}if(Y.trim())Z.push(Y.trim());return Z}function z4($,Z){let Y=uR($,Z);return Y.ok?{expression:Y.expression,endPos:Y.endPos}:null}function uR($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return{ok:!1,reason:"missing-open-paren",pos:Y};let X=u0($,"(",")",Y);if(X===-1)return{ok:!1,reason:"unclosed-paren",pos:Y};return{ok:!0,expression:$.slice(Y+1,X),endPos:X+1}}function h4($,Z,Y,X){let J=1,Q=X,G=new RegExp(`@${Z}\\s*\\(`,"g"),K=new RegExp(`@${Y}(?![a-z])`,"g");while(Q<$.length&&J>0){G.lastIndex=Q,K.lastIndex=Q;let W=G.exec($),U=K.exec($),_=W?W.index:1/0,z=U?U.index:1/0;if(_<z)J++,Q=_+W[0].length;else if(z<1/0){if(J--,J===0)return z;Q=z+U[0].length}else break}return-1}function MJ($,Z){let Y=$.slice(Z).match(/^@if\s*/);if(!Y)return null;let X=Z+Y[0].length,J=z4($,X);if(!J)return null;let Q=J.endPos,G=h4($,"if","endif",Q);if(G===-1)return null;let K=$.slice(Q,G),W=[],U=0,_="if",z=J.expression,B=0,q=0;while(U<K.length){let j=K.indexOf("@",U);if(j===-1)break;U=j;let H=K.substring(j);if(/^@if\s*\(/.test(H)){q++,U++;continue}if(/^@endif(?![a-z])/.test(H)){q--,U+=6;continue}if(q===0){let O=H.match(/^@elseif\s*/);if(O){W.push({type:_,condition:z,content:K.substring(B,U),start:Q+B,end:Q+U});let V=U+O[0].length,L=z4(K,V);if(!L){U++;continue}_="elseif",z=L.expression,U=L.endPos,B=U;continue}else if(/^@else(?![a-z])/.test(H)){W.push({type:_,condition:z,content:K.substring(B,U),start:Q+B,end:Q+U}),_="else",z=void 0,U+=5,B=U;continue}}U++}return W.push({type:_,condition:z,content:K.slice(B),start:Q+B,end:Q+K.length}),{fullMatch:$.slice(Z,G+6),branches:W,start:Z,end:G+6}}function j$($){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 Q=MJ($,X.index);if(Q)Z.push(Q),Y.lastIndex=Q.end;X=Y.exec($)}return Z}function Z7($,Z,Y){let X=[],J=new RegExp(`@${Z}\\s*\\(`,"g"),Q=J.exec($);while(Q!==null){if(X.some((H)=>Q.index>H.start&&Q.index<H.end)){Q=J.exec($);continue}let K=Q.index,W=K+Q[0].length-1,U=u0($,"(",")",W);if(U===-1){Q=J.exec($);continue}let _=$.slice(W+1,U),z=U+1,B=h4($,Z,Y,z);if(B===-1){Q=J.exec($);continue}let q=$.slice(z,B),j=B+`@${Y}`.length;X.push({fullMatch:$.slice(K,j),name:Z,params:_,content:q,start:K,end:j}),J.lastIndex=j,Q=J.exec($)}return X}function l3($,Z){let Y=$.slice(Z).match(/^@switch\s*/);if(!Y)return null;let X=Z+Y[0].length,J=z4($,X);if(!J)return null;let Q=J.endPos,G=h4($,"switch","endswitch",Q);if(G===-1)return null;let K=$.slice(Q,G),W=[],U=0,_=null,z=0;while(U<K.length){let B=K.slice(U),q=B.match(/^@switch\s*\(/),j=B.match(/^@endswitch(?![a-z])/);if(q){if(z++,_)_.content+=q[0];U+=q[0].length;continue}if(j){if(z--,_)_.content+=j[0];U+=j[0].length;continue}if(z>0){if(_)_.content+=K[U];U++;continue}let H=B.match(/^@case\s*/),O=B.match(/^@default(?![a-z])/),V=B.match(/^@break(?![a-z])/);if(H&&B.startsWith("@case")){if(_)W.push(_);let L=U+H[0].length,F=z4(K,L);if(!F){U++;continue}_={type:"case",value:F.expression,content:""},U=F.endPos}else if(O&&B.startsWith("@default")){if(_)W.push(_);_={type:"default",content:""},U+=O[0].length}else if(V&&B.startsWith("@break"))U+=V[0].length;else{if(_)_.content+=K[U];U++}}if(_)W.push(_);return{fullMatch:$.slice(Z,G+10),expression:J.expression,cases:W,start:Z,end:G+10}}var A_=()=>{};function R_($){let Z=[],Y=0;while(Y<$.length){let X=$.indexOf("{{",Y),J=$.indexOf("{!!",Y),Q=!1,G;if(X===-1&&J===-1)break;else if(X===-1)G=J,Q=!0;else if(J===-1)G=X,Q=!1;else if(J<X)G=J,Q=!0;else G=X,Q=!1;if(!Q&&$.slice(G,G+3)==="{{{")Q=!0;let K=Q?$.slice(G,G+3)==="{{{"?"{{{":"{!!":"{{",W=Q?K==="{{{"?"}}}":"!!}":"}}",U=G+K.length,_=mR($,U,W);if(_===-1){Y=G+1;continue}let z=$.slice(U,_).trim(),B=_+W.length;Z.push({fullMatch:$.slice(G,B),expression:z,start:G,end:B,isRaw:Q}),Y=B}return Z}function mR($,Z,Y){let X=Z,J=null,Q={paren:0,bracket:0,brace:0},G=0;while(X<$.length){let K=$[X];if((X>0?$[X-1]:"")==="\\"&&J){X++;continue}if((K==='"'||K==="'")&&!J){J=K,X++;continue}if(K===J&&J!=="`"){J=null,X++;continue}if(K==="`"&&!J){J="`",X++;continue}if(K==="`"&&J==="`"&&G===0){J=null,X++;continue}if(J==="`"&&K==="$"&&$[X+1]==="{"){G++,X+=2;continue}if(G>0){if(K==="{")G++;else if(K==="}")G--;X++;continue}if(J){X++;continue}if(K==="(")Q.paren++;else if(K===")")Q.paren--;else if(K==="[")Q.bracket++;else if(K==="]")Q.bracket--;else if(K==="{")Q.brace++;else if(K==="}")Q.brace--;if(Q.paren===0&&Q.bracket===0&&Q.brace<=0){if($.slice(X,X+Y.length)===Y)return X}X++}return-1}function M_($){let Z=c3($);if(Z.length===0)return{baseExpression:"",filters:[]};let Y=Z[0],X=[];for(let J=1;J<Z.length;J++){let Q=cR(Z[J]);if(Q)X.push(Q)}return{baseExpression:Y,filters:X}}function cR($){let Z=$.trim();if(!Z)return null;let Y=Z.indexOf("(");if(Y===-1)return{name:Z,args:[]};let X=Z.slice(0,Y).trim(),J=Y+1,Q=u0(Z,"(",")",Y);if(Q===-1)return{name:X,args:[]};let G=Z.slice(J,Q),K=TJ(G);return{name:X,args:K}}function TJ($){let Z=[],Y="",X={paren:0,bracket:0,brace:0},J=null,Q=0;for(let G=0;G<$.length;G++){let K=$[G];if((G>0?$[G-1]:"")==="\\"&&J){Y+=K;continue}if((K==='"'||K==="'")&&!J){J=K,Y+=K;continue}if(K===J&&J!=="`"){J=null,Y+=K;continue}if(K==="`"&&!J){J="`",Y+=K;continue}if(K==="`"&&J==="`"&&Q===0){J=null,Y+=K;continue}if(J==="`"&&K==="$"&&$[G+1]==="{"){Q++,Y+="${",G++;continue}if(Q>0&&K==="{"){Q++,Y+=K;continue}if(Q>0&&K==="}"){Q--,Y+=K;continue}if(J){Y+=K;continue}if(K==="(")X.paren++;else if(K===")")X.paren--;else if(K==="[")X.bracket++;else if(K==="]")X.bracket--;else if(K==="{")X.brace++;else if(K==="}")X.brace--;if(K===","&&X.paren===0&&X.bracket===0&&X.brace===0){Z.push(Y.trim()),Y="";continue}Y+=K}if(Y.trim())Z.push(Y.trim());return Z}function T_($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return null;let X=u0($,"(",")",Y);if(X===-1)return null;return{params:$.slice(Y+1,X),endPos:X+1}}function E_($){let Z=[],X=new $7($).tokenize().filter((Q)=>Q.type!=="WHITESPACE"&&Q.type!=="COMMENT"),J=0;while(J<X.length){let Q=X[J],G=!1;if(Q.type==="IDENTIFIER"&&Q.value==="export"){if(G=!0,J++,J>=X.length)break}let K=X[J];if(K.type==="IDENTIFIER"&&(K.value==="const"||K.value==="let"||K.value==="var")){let W=K.value;if(J++,J>=X.length)break;let U=X[J];if(U.type==="IDENTIFIER"){let _=U.value;if(J++,J<X.length&&X[J].type==="OPERATOR"&&X[J].value==="="){J++;let z=J<X.length?X[J].start:$.length,B=N_(X,J,$);J=B.nextIndex,Z.push({type:"variable",name:_,value:$.slice(z,B.endPos),exported:G,start:K.start,end:B.endPos})}}else if(U.type==="PUNCTUATION"&&(U.value==="{"||U.value==="[")){let _=U.start,z=U.value==="{"?"}":"]",B=u0($,U.value,z,_);if(B!==-1){let q=$.slice(_,B+1);if(J=w_(X,B+1),J<X.length&&X[J].type==="OPERATOR"&&X[J].value==="="){J++;let j=J<X.length?X[J].start:$.length,H=N_(X,J,$);J=H.nextIndex;let O=`__stx_destructured_${Z.length}`;Z.push({type:"variable",name:O,value:`${$.slice(j,H.endPos)}; ${W} ${q} = ${O}`,exported:G,start:K.start,end:H.endPos})}}}}else if(K.type==="IDENTIFIER"&&K.value==="function"){let W=G?X[J-1].start:K.start;if(J++,J>=X.length)break;let U=X[J];if(U.type==="IDENTIFIER"){let _=U.value;J++;let z=-1;while(J<X.length){if(X[J].type==="PUNCTUATION"&&X[J].value==="{"){z=X[J].start;break}J++}if(z!==-1){let B=u0($,"{","}",z);if(B!==-1)Z.push({type:"function",name:_,value:$.slice(W,B+1).replace(/^export\s+/,""),exported:G,start:W,end:B+1}),J=w_(X,B+1)}}}else J++}return Z}function N_($,Z,Y){let X=Z,J={paren:0,bracket:0,brace:0},Q=Z<$.length?$[Z].start:Y.length;while(X<$.length){let G=$[X];if(G.type==="PUNCTUATION"){if(G.value==="(")J.paren++;else if(G.value===")")J.paren--;else if(G.value==="[")J.bracket++;else if(G.value==="]")J.bracket--;else if(G.value==="{")J.brace++;else if(G.value==="}")J.brace--;if(G.value===";"&&J.paren===0&&J.bracket===0&&J.brace===0){Q=G.start,X++;break}}if(G.type==="IDENTIFIER"&&(G.value==="const"||G.value==="let"||G.value==="var"||G.value==="function"||G.value==="export")){if(J.paren===0&&J.bracket===0&&J.brace===0){Q=$[X-1]?.end??G.start;break}}Q=G.end,X++}return{nextIndex:X,endPos:Q}}function w_($,Z){for(let Y=0;Y<$.length;Y++)if($[Y].start>=Z)return Y;return $.length}var I_=()=>{};var Y7=D(()=>{A_();I_()});function lR($,Z,Y){let X=$,J=!0;while(J){J=!1;let Q=X.match(/@switch\s*\(/);if(!Q||Q.index===void 0)break;let G=Q.index,K=l3(X,G);if(!K)break;try{let W;if(N0(K.expression))W=w0(K.expression,Object.keys(Z))(...Object.values(Z));else W=L0(K.expression,Z);let U="",_=!1;for(let z of K.cases)if(z.type==="default"){if(!_)U=z.content.trim()}else try{let B;if(z.value&&N0(z.value))B=w0(z.value,Object.keys(Z))(...Object.values(Z));else if(z.value)B=L0(z.value,Z);if(W===B){U=z.content.trim(),_=!0;break}}catch{continue}X=X.substring(0,G)+U+X.substring(K.end),J=!0}catch(W){let U=W instanceof Error?W.message:String(W),_=U0("Switch",`Error evaluating @switch expression: ${U}`,J0.EVALUATION_ERROR);X=X.substring(0,G)+_+X.substring(K.end);break}}return X}function T6($,Z,Y){let X=$;X=lR(X,Z,Y);{let Q=!0;while(Q){Q=!1;let G=X.match(/@unless\s*\(/);if(!G||G.index===void 0)break;let K=G.index,W=z4(X,K+7);if(!W)break;let U=W.endPos,_=h4(X,"unless","endunless",U);if(_===-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 z=X.slice(U,_),B=W.expression,q=-1;{let H=0,O=/@(?:if|unless)\s*\(/g,V=/@(?:endif|endunless)(?![a-z])/g,L=/@else(?![a-z])/g,F=[],A;while((A=O.exec(z))!==null)F.push({pos:A.index,type:"open"});while((A=V.exec(z))!==null)F.push({pos:A.index,type:"close"});while((A=L.exec(z))!==null)F.push({pos:A.index,type:"else"});F.sort((N,w)=>N.pos-w.pos);for(let N of F)if(N.type==="open")H++;else if(N.type==="close")H--;else if(N.type==="else"&&H===0){q=N.pos;break}}let j;if(q!==-1){let H=z.slice(0,q),O=z.slice(q+5);j=`@if (${B})${O}@else ${H}@endif`}else j=`@if (!(${B}))${z}@endif`;X=X.substring(0,K)+j+X.substring(_+10),Q=!0}}X=IJ(X,Z,Y),X=DJ(X,Z,Y),X=EJ(X,Z);let J=()=>{let Q=j$(X);if(Q.length===0)return!1;for(let G=Q.length-1;G>=0;G--){let K=Q[G];try{let W="",U=!1;for(let _ of K.branches){if(U)break;if(_.type==="else")W=_.content,U=!0;else try{let z;if(_.condition&&N0(_.condition))z=w0(_.condition,Object.keys(Z))(...Object.values(Z));else if(_.condition)z=L0(_.condition,Z);if(z)W=_.content,U=!0}catch(z){W=U0(_.type==="if"?"If":"Elseif",`Error in @${_.type}(${_.condition}): ${z instanceof Error?z.message:String(z)}`,J0.EVALUATION_ERROR),U=!0}}X=X.substring(0,K.start)+W+X.substring(K.end)}catch(W){let U=W instanceof Error?W.message:String(W),_=U0("If",`Error processing @if block: ${U}`,J0.EVALUATION_ERROR);X=X.substring(0,K.start)+_+X.substring(K.end)}}return!0};while(!0){let Q=X;if(!J())break;if(X===Q)break}return X}function D_($){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 J=$[Z];if(J==="\\"&&Z+1<$.length){X.push($[Z+1]),Z+=2;continue}if(J===Y){Z++;break}X.push(J),Z++}while(Z<$.length&&/\s/.test($[Z]))Z++;if($[Z]!==")")return null;return Z++,{value:X.join(""),consumed:Z}}function EJ($,Z){let Y=$;function X(K,W,U,_){let z=1,B=_,q=new RegExp(`@${W}(?:\\s*\\(|\\s|$)`,"g"),j=new RegExp(`@${U}(?![a-z])`,"g");while(B<K.length&&z>0){q.lastIndex=B,j.lastIndex=B;let H=q.exec(K),O=j.exec(K),V=H?H.index:1/0,L=O?O.index:1/0;if(V<L)z++,B=V+H[0].length;else if(L<1/0){if(z--,z===0)return L;B=L+O[0].length}else break}return-1}function J(K,W,U){let _=0,z=new RegExp(`@${W}(?:\\s*\\(|\\s|$)`,"g"),B=new RegExp(`@${U}(?![a-z])`,"g"),q=/@else(?![a-z])/g,j=[],H;while((H=z.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=q.exec(K))!==null)j.push({pos:H.index,type:"else"});j.sort((O,V)=>O.pos-V.pos);for(let O of j)if(O.type==="open")_++;else if(O.type==="close")_--;else if(O.type==="else"&&_===0)return O.pos;return-1}{let K=!0;while(K){K=!1;let W=Y.match(/@auth(?:\s*\(|\s|(?=\n))/);if(!W||W.index===void 0)break;let U=W.index,_,z,B=Y.slice(U+5),q=D_(B);if(q)_=q.value,z=U+5+q.consumed;else z=U+5;let j=X(Y,"auth","endauth",z);if(j===-1){console.warn(`[stx] @auth directive at position ${U} has no matching @endauth \u2014 the block was skipped.`);break}let H=Y.slice(z,j),O=J(H,"auth","endauth"),V;if(!Z.auth)V=!1;else V=_?_4(`auth?.check && auth?.user?.[${_}]`,Z):_4("auth?.check",Z);let L;if(O!==-1){let F=H.slice(0,O),A=H.slice(O+5);L=V?F:A}else L=V?H:"";Y=Y.substring(0,U)+L+Y.substring(j+8),K=!0}}{let K=!0;while(K){K=!1;let W=Y.match(/@guest(?:\s*\(|\s|(?=\n))/);if(!W||W.index===void 0)break;let U=W.index,_,z,B=Y.slice(U+6),q=D_(B);if(q)_=q.value,z=U+6+q.consumed;else z=U+6;let j=X(Y,"guest","endguest",z);if(j===-1){console.warn(`[stx] @guest directive at position ${U} has no matching @endguest \u2014 the block was skipped.`);break}let H=Y.slice(z,j),O=J(H,"guest","endguest"),V;if(!Z.auth)V=!0;else V=_?_4(`!auth?.check || !auth?.user?.[${_}]`,Z):_4("!auth?.check",Z);let L;if(O!==-1){let F=H.slice(0,O),A=H.slice(O+5);L=V?F:A}else L=V?H:"";Y=Y.substring(0,U)+L+Y.substring(j+9),K=!0}}function Q(K,W,U){if(Z.userCan&&typeof Z.userCan[K]==="boolean")return Z.userCan[K];if(Z.permissions?.check&&typeof Z.permissions.check==="function")try{let _=[K];if(W)_.push(W);if(U){let z=_4(U,Z);_.push(z)}return Z.permissions.check(..._)}catch{return!1}return!1}function G(K){let W=K.match(/^\s*\(\s*'([^']*)'(?:,\s*'([^']*)')?(?:,\s*([^)]*))?\)/);if(!W)return null;return{ability:W[1],type:W[2],id:W[3]?.trim(),paramsEnd:W[0].length}}for(let K of["can","cannot"]){let W=`end${K}`,U=K==="can"?"elsecan":"elsecannot",_=!0;while(_){_=!1;let z=Y.match(new RegExp(`@${K}\\s*\\(`));if(!z||z.index===void 0)break;let B=z.index,q=Y.slice(B+`@${K}`.length),j=G(q);if(!j)break;let H=B+`@${K}`.length+j.paramsEnd,O=X(Y,K,W,H);if(O===-1){console.warn(`[stx] @${K} directive at position ${B} has no matching @${W} \u2014 the block was skipped.`);break}let V=Y.slice(H,O),L=[],F=0,A=new RegExp(`@${K}\\s*\\(`,"g"),N=new RegExp(`@${W}(?![a-z])`,"g"),w=new RegExp(`@${U}\\s*\\(`,"g"),R=/@else(?![a-z])/g,T=[],E;while((E=A.exec(V))!==null)T.push({pos:E.index,type:"open"});while((E=N.exec(V))!==null)T.push({pos:E.index,type:"close"});while((E=w.exec(V))!==null)T.push({pos:E.index,type:"elseDirective"});while((E=R.exec(V))!==null)T.push({pos:E.index,type:"else"});T.sort((C,g)=>C.pos-g.pos);for(let C of T){if(C.type==="open"){F++;continue}if(C.type==="close"){F--;continue}if(F===0)L.push(C)}let I=[],k=0;for(let C=0;C<L.length;C++){let g=L[C];if(I.push({content:V.slice(k,g.pos),ability:void 0}),g.type==="elseDirective"){let s=V.slice(g.pos+`@${U}`.length),m=G(s);if(m){I[I.length-1]={content:V.slice(k,g.pos)},k=g.pos+`@${U}`.length+m.paramsEnd,I.push({content:"",ability:m.ability,type:m.type,id:m.id}),I.pop();let b=L[C+1],d=b?b.pos:V.length;I.push({content:V.slice(k,d),ability:m.ability,type:m.type,id:m.id}),k=d}}else k=g.pos+5}if(k<V.length){let C=I[I.length-1];if(L.length>0&&L[L.length-1].type==="else")I.push({content:V.slice(k),isFinalElse:!0});else if(I.length===0)I.push({content:V.slice(k)})}let S=Q(j.ability,j.type,j.id),y=K==="can"?S:!S,P="";if(y)P=I[0]?.content||"";else{let C=!1;for(let g=1;g<I.length;g++){let s=I[g];if(s.isFinalElse){P=s.content,C=!0;break}if(s.ability){let m=Q(s.ability,s.type,s.id);if(K==="can"?m:!m){P=s.content,C=!0;break}}}if(!C&&I.length>0){let g=I[I.length-1];if(g.isFinalElse)P=g.content}}Y=Y.substring(0,B)+P+Y.substring(O+`@${W}`.length),_=!0}}return Y}function IJ($,Z,Y){let X=$;function J(Q,G,K,W,U){let _=!0;while(_){_=!1;let z=new RegExp(`@${G}\\s*\\(`),B=Q.match(z);if(!B||B.index===void 0)break;let q=B.index,j=z4(Q,q+`@${G}`.length);if(!j)break;let H=j.endPos,O=h4(Q,G,K,H);if(O===-1){console.warn(`[stx] @${G} directive at position ${q} has no matching @${K} \u2014 the block was skipped.`);break}let V=Q.slice(H,O),L=j.expression,F=-1,A=0,N=0;while(N<V.length){let w=V.indexOf("@",N);if(w===-1)break;let R=V.substring(w);if(/^@(?:if|unless|isset|empty)\s*\(/.test(R)){A++,N=w+1;continue}if(/^@(?:endif|endunless|endisset|endempty)(?![a-z])/.test(R)){A--,N=w+1;continue}if(A===0&&/^@else(?![a-z])/.test(R)){F=w;break}N=w+1}try{let w=W(L.trim()),R;if(F!==-1){let T=V.slice(0,F),E=V.slice(F+5);R=w?T:E}else R=w?V:"";Q=Q.substring(0,q)+R+Q.substring(O+`@${K}`.length),_=!0}catch(w){let R=w instanceof Error?w.message:String(w),T=U0(U,`Error processing @${G} directive: ${R}`,J0.EVALUATION_ERROR);Q=Q.substring(0,q)+T+Q.substring(O+`@${K}`.length);break}}return Q}return X=J(X,"isset","endisset",(Q)=>{let G=_4(Q,Z);return G!==void 0&&G!==null},"Isset"),X=J(X,"empty","endempty",(Q)=>{let G=_4(Q,Z);return G===void 0||G===null||G===""||G===0||G===!1||Array.isArray(G)&&G.length===0||typeof G==="object"&&G!==null&&Object.keys(G).length===0},"Empty"),X}function DJ($,Z,Y){let X=$,J="development";function Q(G,K,W,U){let _=new RegExp(`@${K}(?![a-z])`,"g"),z=new RegExp(`@${W}(?![a-z])`,"g"),B=new RegExp(`^@${K}(?![a-z])`),q=new RegExp(`^@${W}(?![a-z])`),j=G,H=!0;while(H){H=!1,_.lastIndex=0;let O=_.exec(j);if(!O)break;let V=O.index,L=V+O[0].length;if(K==="env"){let S=j.substring(L).match(/^\s*\(\s*(['"])([^'"]+)\1\s*\)/);if(!S)break;L+=S[0].length,U=J===S[2]}let F=1,A=L,N=-1;while(F>0&&A<j.length){_.lastIndex=A,z.lastIndex=A;let S=_.exec(j),y=z.exec(j),P=S?S.index:1/0,C=y?y.index:1/0;if(P<C)F++,A=P+S[0].length;else if(C<1/0){if(F--,F===0){N=C;break}A=C+y[0].length}else break}if(N===-1){console.warn(`[stx] @${K} directive at position ${V} has no matching @${W} \u2014 the block was skipped.`);break}let w=j.substring(L,N),R=-1,T=0,E=0;while(E<w.length){let S=w.indexOf("@",E);if(S===-1)break;let y=w.substring(S);if(B.test(y)){T++,E=S+1;continue}if(q.test(y)){T--,E=S+1;continue}if(T===0&&/^@else(?![a-z])/.test(y)){R=S;break}E=S+1}let I;if(R!==-1){let S=w.slice(0,R),y=w.slice(R+5);I=U?S:y}else I=U?w:"";let k=`@${W}`.length;j=j.substring(0,V)+I+j.substring(N+k),H=!0}return j}return X=Q(X,"env","endenv",!1),X=Q(X,"production","endproduction",J==="production"),X=Q(X,"development","enddevelopment",J==="development"),X=Q(X,"staging","endstaging",J==="staging"),X=Q(X,"testing","endtesting",J==="testing"),X}var p3=D(()=>{LJ();R1();Y7();p0()});function SJ($=16){let Z=new Uint8Array($);return crypto.getRandomValues(Z),btoa(String.fromCharCode(...Z))}function d4($,Z){if(!$)return Z?.nonceGenerator?.()??SJ();let Y=kJ.get($);if(!Y)Y=Z?.nonceGenerator?.()??SJ(),kJ.set($,Y);return Y}function pR($){kJ.delete($)}function CJ($,Z){let Y=[];for(let[X,J]of Object.entries($)){if(J===void 0||J===null)continue;if(typeof J==="boolean"){if(J)Y.push(X);continue}if(Array.isArray(J)){let Q=[...J];if(Z&&(X==="script-src"||X==="style-src"))Q=Q.filter((G)=>!G.startsWith("'nonce-")),Q.push(`'nonce-${Z}'`);if(Q.length>0)Y.push(`${X} ${Q.join(" ")}`)}}return Y.join("; ")}function n3($,Z){return`<meta http-equiv="Content-Security-Policy" content="${CJ($,Z).replace(/&/g,"&amp;").replace(/"/g,"&quot;")}">`}function iR($){return{enabled:!0,directives:{strict:k_,moderate:i3,relaxed:S_,api:C_}[$]||i3,useNonce:$==="strict",addMetaTag:!0}}function nR($,Z){let Y={...$};for(let[X,J]of Object.entries(Z)){let Q=X,G=Y[Q];if(J===void 0||J===null)continue;if(typeof J==="boolean")Y[Q]=G||J;else if(Array.isArray(J)){let K=Array.isArray(G)?G:[],W=[...new Set([...K,...J])];Y[Q]=W}}return Y}function bJ($,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?d4(Y,Z):void 0,J=n3(Z.directives,X);return $.replace(/<head([^>]*)>/,`<head$1>
1832
+ `)this.line++,this.column=0;else this.column++;this.pos++}}peek($){return this.source[this.pos+$]}saveState(){return{pos:this.pos,line:this.line,column:this.column}}restoreState($){this.pos=$.pos,this.line=$.line,this.column=$.column}}function u0($,Z,Y,X=0){let J=0,Q=X,G=null,K=0,W=!1;while(Q<$.length){let U=$[Q];if(G&&W){W=!1,Q++;continue}if(G&&U==="\\"){W=!0,Q++;continue}if(W=!1,(U==='"'||U==="'"||U==="`")&&!G){G=U,Q++;continue}if(U===G&&G!=="`"){G=null,Q++;continue}if(G==="`"&&U==="$"&&$[Q+1]==="{"){K++,Q+=2;continue}if(K>0&&U==="}"){K--,Q++;continue}if(U==="`"&&G==="`"&&K===0){G=null,Q++;continue}if(G){Q++;continue}if(U===Z)J++;else if(U===Y){if(J--,J===0)return Q}Q++}return-1}function RJ($,Z){let Y=Z,X={paren:0,bracket:0,brace:0},J=null,Q=0;while(Y<$.length){let G=$[Y];if((Y>0?$[Y-1]:"")==="\\"&&J){Y++;continue}if((G==='"'||G==="'")&&!J){J=G,Y++;continue}if(G===J&&J!=="`"){J=null,Y++;continue}if(G==="`"&&!J){J="`",Y++;continue}if(G==="`"&&J==="`"&&Q===0){J=null,Y++;continue}if(J==="`"&&G==="$"&&$[Y+1]==="{"){Q++,Y+=2;continue}if(Q>0){if(G==="{")Q++;else if(G==="}")Q--;Y++;continue}if(J){Y++;continue}if(X.paren===0&&X.bracket===0&&X.brace===0){if($.slice(Y,Y+2)==="}}"||$.slice(Y,Y+3)==="!!}")break;if(G===","||G===";")break}if(G==="(")X.paren++;else if(G===")"){if(X.paren--,X.paren<0)break}else if(G==="[")X.bracket++;else if(G==="]"){if(X.bracket--,X.bracket<0)break}else if(G==="{")X.brace++;else if(G==="}"){if(X.brace--,X.brace<0)break}Y++}return{expression:$.slice(Z,Y),endPos:Y}}function c3($){let Z=[],Y="",X={paren:0,bracket:0,brace:0},J=null,Q=0;for(let G=0;G<$.length;G++){let K=$[G];if((G>0?$[G-1]:"")==="\\"&&J){Y+=K;continue}if((K==='"'||K==="'")&&!J){J=K,Y+=K;continue}if(K===J&&J!=="`"){J=null,Y+=K;continue}if(K==="`"&&!J){J="`",Y+=K;continue}if(K==="`"&&J==="`"&&Q===0){J=null,Y+=K;continue}if(J==="`"&&K==="$"&&$[G+1]==="{"){Q++,Y+=K+$[G+1],G++;continue}if(Q>0&&K==="{"){Q++,Y+=K;continue}if(Q>0&&K==="}"){Q--,Y+=K;continue}if(J){Y+=K;continue}if(K==="(")X.paren++;else if(K===")")X.paren--;else if(K==="[")X.bracket++;else if(K==="]")X.bracket--;else if(K==="{")X.brace++;else if(K==="}")X.brace--;if(K==="|"&&$[G+1]!=="|"&&(G===0||$[G-1]!=="|")&&$[G-1]!=="\\"&&X.paren===0&&X.bracket===0&&X.brace===0){Z.push(Y.trim()),Y="";continue}if(K==="|"&&$[G-1]==="\\"&&!J){Y=Y.slice(0,-1)+K;continue}Y+=K}if(Y.trim())Z.push(Y.trim());return Z}function z4($,Z){let Y=uR($,Z);return Y.ok?{expression:Y.expression,endPos:Y.endPos}:null}function uR($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return{ok:!1,reason:"missing-open-paren",pos:Y};let X=u0($,"(",")",Y);if(X===-1)return{ok:!1,reason:"unclosed-paren",pos:Y};return{ok:!0,expression:$.slice(Y+1,X),endPos:X+1}}function h4($,Z,Y,X){let J=1,Q=X,G=new RegExp(`@${Z}\\s*\\(`,"g"),K=new RegExp(`@${Y}(?![a-z])`,"g");while(Q<$.length&&J>0){G.lastIndex=Q,K.lastIndex=Q;let W=G.exec($),U=K.exec($),_=W?W.index:1/0,z=U?U.index:1/0;if(_<z)J++,Q=_+W[0].length;else if(z<1/0){if(J--,J===0)return z;Q=z+U[0].length}else break}return-1}function MJ($,Z){let Y=$.slice(Z).match(/^@if\s*/);if(!Y)return null;let X=Z+Y[0].length,J=z4($,X);if(!J)return null;let Q=J.endPos,G=h4($,"if","endif",Q);if(G===-1)return null;let K=$.slice(Q,G),W=[],U=0,_="if",z=J.expression,B=0,q=0;while(U<K.length){let j=K.indexOf("@",U);if(j===-1)break;U=j;let H=K.substring(j);if(/^@if\s*\(/.test(H)){q++,U++;continue}if(/^@endif(?![a-z])/.test(H)){q--,U+=6;continue}if(q===0){let O=H.match(/^@elseif\s*/);if(O){W.push({type:_,condition:z,content:K.substring(B,U),start:Q+B,end:Q+U});let V=U+O[0].length,L=z4(K,V);if(!L){U++;continue}_="elseif",z=L.expression,U=L.endPos,B=U;continue}else if(/^@else(?![a-z])/.test(H)){W.push({type:_,condition:z,content:K.substring(B,U),start:Q+B,end:Q+U}),_="else",z=void 0,U+=5,B=U;continue}}U++}return W.push({type:_,condition:z,content:K.slice(B),start:Q+B,end:Q+K.length}),{fullMatch:$.slice(Z,G+6),branches:W,start:Z,end:G+6}}function j$($){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 Q=MJ($,X.index);if(Q)Z.push(Q),Y.lastIndex=Q.end;X=Y.exec($)}return Z}function Z7($,Z,Y){let X=[],J=new RegExp(`@${Z}\\s*\\(`,"g"),Q=J.exec($);while(Q!==null){if(X.some((H)=>Q.index>H.start&&Q.index<H.end)){Q=J.exec($);continue}let K=Q.index,W=K+Q[0].length-1,U=u0($,"(",")",W);if(U===-1){Q=J.exec($);continue}let _=$.slice(W+1,U),z=U+1,B=h4($,Z,Y,z);if(B===-1){Q=J.exec($);continue}let q=$.slice(z,B),j=B+`@${Y}`.length;X.push({fullMatch:$.slice(K,j),name:Z,params:_,content:q,start:K,end:j}),J.lastIndex=j,Q=J.exec($)}return X}function l3($,Z){let Y=$.slice(Z).match(/^@switch\s*/);if(!Y)return null;let X=Z+Y[0].length,J=z4($,X);if(!J)return null;let Q=J.endPos,G=h4($,"switch","endswitch",Q);if(G===-1)return null;let K=$.slice(Q,G),W=[],U=0,_=null,z=0;while(U<K.length){let B=K.slice(U),q=B.match(/^@switch\s*\(/),j=B.match(/^@endswitch(?![a-z])/);if(q){if(z++,_)_.content+=q[0];U+=q[0].length;continue}if(j){if(z--,_)_.content+=j[0];U+=j[0].length;continue}if(z>0){if(_)_.content+=K[U];U++;continue}let H=B.match(/^@case\s*/),O=B.match(/^@default(?![a-z])/),V=B.match(/^@break(?![a-z])/);if(H&&B.startsWith("@case")){if(_)W.push(_);let L=U+H[0].length,F=z4(K,L);if(!F){U++;continue}_={type:"case",value:F.expression,content:""},U=F.endPos}else if(O&&B.startsWith("@default")){if(_)W.push(_);_={type:"default",content:""},U+=O[0].length}else if(V&&B.startsWith("@break"))U+=V[0].length;else{if(_)_.content+=K[U];U++}}if(_)W.push(_);return{fullMatch:$.slice(Z,G+10),expression:J.expression,cases:W,start:Z,end:G+10}}var A_=()=>{};function R_($){let Z=[],Y=0;while(Y<$.length){let X=$.indexOf("{{",Y),J=$.indexOf("{!!",Y),Q=!1,G;if(X===-1&&J===-1)break;else if(X===-1)G=J,Q=!0;else if(J===-1)G=X,Q=!1;else if(J<X)G=J,Q=!0;else G=X,Q=!1;if(!Q&&$.slice(G,G+3)==="{{{")Q=!0;let K=Q?$.slice(G,G+3)==="{{{"?"{{{":"{!!":"{{",W=Q?K==="{{{"?"}}}":"!!}":"}}",U=G+K.length,_=mR($,U,W);if(_===-1){Y=G+1;continue}let z=$.slice(U,_).trim(),B=_+W.length;Z.push({fullMatch:$.slice(G,B),expression:z,start:G,end:B,isRaw:Q}),Y=B}return Z}function mR($,Z,Y){let X=Z,J=null,Q={paren:0,bracket:0,brace:0},G=0;while(X<$.length){let K=$[X];if((X>0?$[X-1]:"")==="\\"&&J){X++;continue}if((K==='"'||K==="'")&&!J){J=K,X++;continue}if(K===J&&J!=="`"){J=null,X++;continue}if(K==="`"&&!J){J="`",X++;continue}if(K==="`"&&J==="`"&&G===0){J=null,X++;continue}if(J==="`"&&K==="$"&&$[X+1]==="{"){G++,X+=2;continue}if(G>0){if(K==="{")G++;else if(K==="}")G--;X++;continue}if(J){X++;continue}if(K==="(")Q.paren++;else if(K===")")Q.paren--;else if(K==="[")Q.bracket++;else if(K==="]")Q.bracket--;else if(K==="{")Q.brace++;else if(K==="}")Q.brace--;if(Q.paren===0&&Q.bracket===0&&Q.brace<=0){if($.slice(X,X+Y.length)===Y)return X}X++}return-1}function M_($){let Z=c3($);if(Z.length===0)return{baseExpression:"",filters:[]};let Y=Z[0],X=[];for(let J=1;J<Z.length;J++){let Q=cR(Z[J]);if(Q)X.push(Q)}return{baseExpression:Y,filters:X}}function cR($){let Z=$.trim();if(!Z)return null;let Y=Z.indexOf("(");if(Y===-1)return{name:Z,args:[]};let X=Z.slice(0,Y).trim(),J=Y+1,Q=u0(Z,"(",")",Y);if(Q===-1)return{name:X,args:[]};let G=Z.slice(J,Q),K=TJ(G);return{name:X,args:K}}function TJ($){let Z=[],Y="",X={paren:0,bracket:0,brace:0},J=null,Q=0;for(let G=0;G<$.length;G++){let K=$[G];if((G>0?$[G-1]:"")==="\\"&&J){Y+=K;continue}if((K==='"'||K==="'")&&!J){J=K,Y+=K;continue}if(K===J&&J!=="`"){J=null,Y+=K;continue}if(K==="`"&&!J){J="`",Y+=K;continue}if(K==="`"&&J==="`"&&Q===0){J=null,Y+=K;continue}if(J==="`"&&K==="$"&&$[G+1]==="{"){Q++,Y+="${",G++;continue}if(Q>0&&K==="{"){Q++,Y+=K;continue}if(Q>0&&K==="}"){Q--,Y+=K;continue}if(J){Y+=K;continue}if(K==="(")X.paren++;else if(K===")")X.paren--;else if(K==="[")X.bracket++;else if(K==="]")X.bracket--;else if(K==="{")X.brace++;else if(K==="}")X.brace--;if(K===","&&X.paren===0&&X.bracket===0&&X.brace===0){Z.push(Y.trim()),Y="";continue}Y+=K}if(Y.trim())Z.push(Y.trim());return Z}function T_($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return null;let X=u0($,"(",")",Y);if(X===-1)return null;return{params:$.slice(Y+1,X),endPos:X+1}}function E_($){let Z=[],X=new $7($).tokenize().filter((Q)=>Q.type!=="WHITESPACE"&&Q.type!=="COMMENT"),J=0;while(J<X.length){let Q=X[J],G=!1;if(Q.type==="IDENTIFIER"&&Q.value==="export"){if(G=!0,J++,J>=X.length)break}let K=X[J];if(K.type==="IDENTIFIER"&&(K.value==="const"||K.value==="let"||K.value==="var")){let W=K.value;if(J++,J>=X.length)break;let U=X[J];if(U.type==="IDENTIFIER"){let _=U.value;if(J++,J<X.length&&X[J].type==="OPERATOR"&&X[J].value==="="){J++;let z=J<X.length?X[J].start:$.length,B=N_(X,J,$);J=B.nextIndex,Z.push({type:"variable",name:_,value:$.slice(z,B.endPos),exported:G,start:K.start,end:B.endPos})}}else if(U.type==="PUNCTUATION"&&(U.value==="{"||U.value==="[")){let _=U.start,z=U.value==="{"?"}":"]",B=u0($,U.value,z,_);if(B!==-1){let q=$.slice(_,B+1);if(J=w_(X,B+1),J<X.length&&X[J].type==="OPERATOR"&&X[J].value==="="){J++;let j=J<X.length?X[J].start:$.length,H=N_(X,J,$);J=H.nextIndex;let O=`__stx_destructured_${Z.length}`;Z.push({type:"variable",name:O,value:`${$.slice(j,H.endPos)}; ${W} ${q} = ${O}`,exported:G,start:K.start,end:H.endPos})}}}}else if(K.type==="IDENTIFIER"&&K.value==="function"){let W=G?X[J-1].start:K.start;if(J++,J>=X.length)break;let U=X[J];if(U.type==="IDENTIFIER"){let _=U.value;J++;let z=-1;while(J<X.length){if(X[J].type==="PUNCTUATION"&&X[J].value==="{"){z=X[J].start;break}J++}if(z!==-1){let B=u0($,"{","}",z);if(B!==-1)Z.push({type:"function",name:_,value:$.slice(W,B+1).replace(/^export\s+/,""),exported:G,start:W,end:B+1}),J=w_(X,B+1)}}}else J++}return Z}function N_($,Z,Y){let X=Z,J={paren:0,bracket:0,brace:0},Q=Z<$.length?$[Z].start:Y.length;while(X<$.length){let G=$[X];if(G.type==="PUNCTUATION"){if(G.value==="(")J.paren++;else if(G.value===")")J.paren--;else if(G.value==="[")J.bracket++;else if(G.value==="]")J.bracket--;else if(G.value==="{")J.brace++;else if(G.value==="}")J.brace--;if(G.value===";"&&J.paren===0&&J.bracket===0&&J.brace===0){Q=G.start,X++;break}}if(G.type==="IDENTIFIER"&&(G.value==="const"||G.value==="let"||G.value==="var"||G.value==="function"||G.value==="export")){if(J.paren===0&&J.bracket===0&&J.brace===0){Q=$[X-1]?.end??G.start;break}}Q=G.end,X++}return{nextIndex:X,endPos:Q}}function w_($,Z){for(let Y=0;Y<$.length;Y++)if($[Y].start>=Z)return Y;return $.length}var I_=()=>{};var Y7=D(()=>{A_();I_()});function lR($,Z,Y){let X=$,J=!0;while(J){J=!1;let Q=X.match(/@switch\s*\(/);if(!Q||Q.index===void 0)break;let G=Q.index,K=l3(X,G);if(!K)break;try{let W;if(N0(K.expression))W=w0(K.expression,Object.keys(Z))(...Object.values(Z));else W=L0(K.expression,Z);let U="",_=!1;for(let z of K.cases)if(z.type==="default"){if(!_)U=z.content.trim()}else try{let B;if(z.value&&N0(z.value))B=w0(z.value,Object.keys(Z))(...Object.values(Z));else if(z.value)B=L0(z.value,Z);if(W===B){U=z.content.trim(),_=!0;break}}catch{continue}X=X.substring(0,G)+U+X.substring(K.end),J=!0}catch(W){let U=W instanceof Error?W.message:String(W),_=U0("Switch",`Error evaluating @switch expression: ${U}`,J0.EVALUATION_ERROR);X=X.substring(0,G)+_+X.substring(K.end);break}}return X}function T6($,Z,Y){let X=$;X=lR(X,Z,Y);{let Q=!0;while(Q){Q=!1;let G=X.match(/@unless\s*\(/);if(!G||G.index===void 0)break;let K=G.index,W=z4(X,K+7);if(!W)break;let U=W.endPos,_=h4(X,"unless","endunless",U);if(_===-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 z=X.slice(U,_),B=W.expression,q=-1;{let H=0,O=/@(?:if|unless)\s*\(/g,V=/@(?:endif|endunless)(?![a-z])/g,L=/@else(?![a-z])/g,F=[],A;while((A=O.exec(z))!==null)F.push({pos:A.index,type:"open"});while((A=V.exec(z))!==null)F.push({pos:A.index,type:"close"});while((A=L.exec(z))!==null)F.push({pos:A.index,type:"else"});F.sort((N,w)=>N.pos-w.pos);for(let N of F)if(N.type==="open")H++;else if(N.type==="close")H--;else if(N.type==="else"&&H===0){q=N.pos;break}}let j;if(q!==-1){let H=z.slice(0,q),O=z.slice(q+5);j=`@if (${B})${O}@else ${H}@endif`}else j=`@if (!(${B}))${z}@endif`;X=X.substring(0,K)+j+X.substring(_+10),Q=!0}}X=IJ(X,Z,Y),X=DJ(X,Z,Y),X=EJ(X,Z);let J=()=>{let Q=j$(X);if(Q.length===0)return!1;for(let G=Q.length-1;G>=0;G--){let K=Q[G];try{let W="",U=!1;for(let _ of K.branches){if(U)break;if(_.type==="else")W=_.content,U=!0;else try{let z;if(_.condition&&N0(_.condition))z=w0(_.condition,Object.keys(Z))(...Object.values(Z));else if(_.condition)z=L0(_.condition,Z);if(z)W=_.content,U=!0}catch(z){W=U0(_.type==="if"?"If":"Elseif",`Error in @${_.type}(${_.condition}): ${z instanceof Error?z.message:String(z)}`,J0.EVALUATION_ERROR),U=!0}}X=X.substring(0,K.start)+W+X.substring(K.end)}catch(W){let U=W instanceof Error?W.message:String(W),_=U0("If",`Error processing @if block: ${U}`,J0.EVALUATION_ERROR);X=X.substring(0,K.start)+_+X.substring(K.end)}}return!0};while(!0){let Q=X;if(!J())break;if(X===Q)break}return X}function D_($){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 J=$[Z];if(J==="\\"&&Z+1<$.length){X.push($[Z+1]),Z+=2;continue}if(J===Y){Z++;break}X.push(J),Z++}while(Z<$.length&&/\s/.test($[Z]))Z++;if($[Z]!==")")return null;return Z++,{value:X.join(""),consumed:Z}}function EJ($,Z){let Y=$;function X(K,W,U,_){let z=1,B=_,q=new RegExp(`@${W}(?:\\s*\\(|\\s|$)`,"g"),j=new RegExp(`@${U}(?![a-z])`,"g");while(B<K.length&&z>0){q.lastIndex=B,j.lastIndex=B;let H=q.exec(K),O=j.exec(K),V=H?H.index:1/0,L=O?O.index:1/0;if(V<L)z++,B=V+H[0].length;else if(L<1/0){if(z--,z===0)return L;B=L+O[0].length}else break}return-1}function J(K,W,U){let _=0,z=new RegExp(`@${W}(?:\\s*\\(|\\s|$)`,"g"),B=new RegExp(`@${U}(?![a-z])`,"g"),q=/@else(?![a-z])/g,j=[],H;while((H=z.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=q.exec(K))!==null)j.push({pos:H.index,type:"else"});j.sort((O,V)=>O.pos-V.pos);for(let O of j)if(O.type==="open")_++;else if(O.type==="close")_--;else if(O.type==="else"&&_===0)return O.pos;return-1}{let K=!0;while(K){K=!1;let W=Y.match(/@auth(?:\s*\(|\s|(?=\n))/);if(!W||W.index===void 0)break;let U=W.index,_,z,B=Y.slice(U+5),q=D_(B);if(q)_=q.value,z=U+5+q.consumed;else z=U+5;let j=X(Y,"auth","endauth",z);if(j===-1){console.warn(`[stx] @auth directive at position ${U} has no matching @endauth \u2014 the block was skipped.`);break}let H=Y.slice(z,j),O=J(H,"auth","endauth"),V;if(!Z.auth)V=!1;else V=_?_4(`auth?.check && auth?.user?.[${_}]`,Z):_4("auth?.check",Z);let L;if(O!==-1){let F=H.slice(0,O),A=H.slice(O+5);L=V?F:A}else L=V?H:"";Y=Y.substring(0,U)+L+Y.substring(j+8),K=!0}}{let K=!0;while(K){K=!1;let W=Y.match(/@guest(?:\s*\(|\s|(?=\n))/);if(!W||W.index===void 0)break;let U=W.index,_,z,B=Y.slice(U+6),q=D_(B);if(q)_=q.value,z=U+6+q.consumed;else z=U+6;let j=X(Y,"guest","endguest",z);if(j===-1){console.warn(`[stx] @guest directive at position ${U} has no matching @endguest \u2014 the block was skipped.`);break}let H=Y.slice(z,j),O=J(H,"guest","endguest"),V;if(!Z.auth)V=!0;else V=_?_4(`!auth?.check || !auth?.user?.[${_}]`,Z):_4("!auth?.check",Z);let L;if(O!==-1){let F=H.slice(0,O),A=H.slice(O+5);L=V?F:A}else L=V?H:"";Y=Y.substring(0,U)+L+Y.substring(j+9),K=!0}}function Q(K,W,U){if(Z.userCan&&typeof Z.userCan[K]==="boolean")return Z.userCan[K];if(Z.permissions?.check&&typeof Z.permissions.check==="function")try{let _=[K];if(W)_.push(W);if(U){let z=_4(U,Z);_.push(z)}return Z.permissions.check(..._)}catch{return!1}return!1}function G(K){let W=K.match(/^\s*\(\s*'([^']*)'(?:,\s*'([^']*)')?(?:,\s*([^)]*))?\)/);if(!W)return null;return{ability:W[1],type:W[2],id:W[3]?.trim(),paramsEnd:W[0].length}}for(let K of["can","cannot"]){let W=`end${K}`,U=K==="can"?"elsecan":"elsecannot",_=!0;while(_){_=!1;let z=Y.match(new RegExp(`@${K}\\s*\\(`));if(!z||z.index===void 0)break;let B=z.index,q=Y.slice(B+`@${K}`.length),j=G(q);if(!j)break;let H=B+`@${K}`.length+j.paramsEnd,O=X(Y,K,W,H);if(O===-1){console.warn(`[stx] @${K} directive at position ${B} has no matching @${W} \u2014 the block was skipped.`);break}let V=Y.slice(H,O),L=[],F=0,A=new RegExp(`@${K}\\s*\\(`,"g"),N=new RegExp(`@${W}(?![a-z])`,"g"),w=new RegExp(`@${U}\\s*\\(`,"g"),R=/@else(?![a-z])/g,T=[],E;while((E=A.exec(V))!==null)T.push({pos:E.index,type:"open"});while((E=N.exec(V))!==null)T.push({pos:E.index,type:"close"});while((E=w.exec(V))!==null)T.push({pos:E.index,type:"elseDirective"});while((E=R.exec(V))!==null)T.push({pos:E.index,type:"else"});T.sort((C,g)=>C.pos-g.pos);for(let C of T){if(C.type==="open"){F++;continue}if(C.type==="close"){F--;continue}if(F===0)L.push(C)}let I=[],k=0;for(let C=0;C<L.length;C++){let g=L[C];if(I.push({content:V.slice(k,g.pos),ability:void 0}),g.type==="elseDirective"){let s=V.slice(g.pos+`@${U}`.length),m=G(s);if(m){I[I.length-1]={content:V.slice(k,g.pos)},k=g.pos+`@${U}`.length+m.paramsEnd,I.push({content:"",ability:m.ability,type:m.type,id:m.id}),I.pop();let b=L[C+1],d=b?b.pos:V.length;I.push({content:V.slice(k,d),ability:m.ability,type:m.type,id:m.id}),k=d}}else k=g.pos+5}if(k<V.length){let C=I[I.length-1];if(L.length>0&&L[L.length-1].type==="else")I.push({content:V.slice(k),isFinalElse:!0});else if(I.length===0)I.push({content:V.slice(k)})}let S=Q(j.ability,j.type,j.id),x=K==="can"?S:!S,P="";if(x)P=I[0]?.content||"";else{let C=!1;for(let g=1;g<I.length;g++){let s=I[g];if(s.isFinalElse){P=s.content,C=!0;break}if(s.ability){let m=Q(s.ability,s.type,s.id);if(K==="can"?m:!m){P=s.content,C=!0;break}}}if(!C&&I.length>0){let g=I[I.length-1];if(g.isFinalElse)P=g.content}}Y=Y.substring(0,B)+P+Y.substring(O+`@${W}`.length),_=!0}}return Y}function IJ($,Z,Y){let X=$;function J(Q,G,K,W,U){let _=!0;while(_){_=!1;let z=new RegExp(`@${G}\\s*\\(`),B=Q.match(z);if(!B||B.index===void 0)break;let q=B.index,j=z4(Q,q+`@${G}`.length);if(!j)break;let H=j.endPos,O=h4(Q,G,K,H);if(O===-1){console.warn(`[stx] @${G} directive at position ${q} has no matching @${K} \u2014 the block was skipped.`);break}let V=Q.slice(H,O),L=j.expression,F=-1,A=0,N=0;while(N<V.length){let w=V.indexOf("@",N);if(w===-1)break;let R=V.substring(w);if(/^@(?:if|unless|isset|empty)\s*\(/.test(R)){A++,N=w+1;continue}if(/^@(?:endif|endunless|endisset|endempty)(?![a-z])/.test(R)){A--,N=w+1;continue}if(A===0&&/^@else(?![a-z])/.test(R)){F=w;break}N=w+1}try{let w=W(L.trim()),R;if(F!==-1){let T=V.slice(0,F),E=V.slice(F+5);R=w?T:E}else R=w?V:"";Q=Q.substring(0,q)+R+Q.substring(O+`@${K}`.length),_=!0}catch(w){let R=w instanceof Error?w.message:String(w),T=U0(U,`Error processing @${G} directive: ${R}`,J0.EVALUATION_ERROR);Q=Q.substring(0,q)+T+Q.substring(O+`@${K}`.length);break}}return Q}return X=J(X,"isset","endisset",(Q)=>{let G=_4(Q,Z);return G!==void 0&&G!==null},"Isset"),X=J(X,"empty","endempty",(Q)=>{let G=_4(Q,Z);return G===void 0||G===null||G===""||G===0||G===!1||Array.isArray(G)&&G.length===0||typeof G==="object"&&G!==null&&Object.keys(G).length===0},"Empty"),X}function DJ($,Z,Y){let X=$,J="development";function Q(G,K,W,U){let _=new RegExp(`@${K}(?![a-z])`,"g"),z=new RegExp(`@${W}(?![a-z])`,"g"),B=new RegExp(`^@${K}(?![a-z])`),q=new RegExp(`^@${W}(?![a-z])`),j=G,H=!0;while(H){H=!1,_.lastIndex=0;let O=_.exec(j);if(!O)break;let V=O.index,L=V+O[0].length;if(K==="env"){let S=j.substring(L).match(/^\s*\(\s*(['"])([^'"]+)\1\s*\)/);if(!S)break;L+=S[0].length,U=J===S[2]}let F=1,A=L,N=-1;while(F>0&&A<j.length){_.lastIndex=A,z.lastIndex=A;let S=_.exec(j),x=z.exec(j),P=S?S.index:1/0,C=x?x.index:1/0;if(P<C)F++,A=P+S[0].length;else if(C<1/0){if(F--,F===0){N=C;break}A=C+x[0].length}else break}if(N===-1){console.warn(`[stx] @${K} directive at position ${V} has no matching @${W} \u2014 the block was skipped.`);break}let w=j.substring(L,N),R=-1,T=0,E=0;while(E<w.length){let S=w.indexOf("@",E);if(S===-1)break;let x=w.substring(S);if(B.test(x)){T++,E=S+1;continue}if(q.test(x)){T--,E=S+1;continue}if(T===0&&/^@else(?![a-z])/.test(x)){R=S;break}E=S+1}let I;if(R!==-1){let S=w.slice(0,R),x=w.slice(R+5);I=U?S:x}else I=U?w:"";let k=`@${W}`.length;j=j.substring(0,V)+I+j.substring(N+k),H=!0}return j}return X=Q(X,"env","endenv",!1),X=Q(X,"production","endproduction",J==="production"),X=Q(X,"development","enddevelopment",J==="development"),X=Q(X,"staging","endstaging",J==="staging"),X=Q(X,"testing","endtesting",J==="testing"),X}var p3=D(()=>{LJ();R1();Y7();p0()});function SJ($=16){let Z=new Uint8Array($);return crypto.getRandomValues(Z),btoa(String.fromCharCode(...Z))}function d4($,Z){if(!$)return Z?.nonceGenerator?.()??SJ();let Y=kJ.get($);if(!Y)Y=Z?.nonceGenerator?.()??SJ(),kJ.set($,Y);return Y}function pR($){kJ.delete($)}function CJ($,Z){let Y=[];for(let[X,J]of Object.entries($)){if(J===void 0||J===null)continue;if(typeof J==="boolean"){if(J)Y.push(X);continue}if(Array.isArray(J)){let Q=[...J];if(Z&&(X==="script-src"||X==="style-src"))Q=Q.filter((G)=>!G.startsWith("'nonce-")),Q.push(`'nonce-${Z}'`);if(Q.length>0)Y.push(`${X} ${Q.join(" ")}`)}}return Y.join("; ")}function n3($,Z){return`<meta http-equiv="Content-Security-Policy" content="${CJ($,Z).replace(/&/g,"&amp;").replace(/"/g,"&quot;")}">`}function iR($){return{enabled:!0,directives:{strict:k_,moderate:i3,relaxed:S_,api:C_}[$]||i3,useNonce:$==="strict",addMetaTag:!0}}function nR($,Z){let Y={...$};for(let[X,J]of Object.entries(Z)){let Q=X,G=Y[Q];if(J===void 0||J===null)continue;if(typeof J==="boolean")Y[Q]=G||J;else if(Array.isArray(J)){let K=Array.isArray(G)?G:[],W=[...new Set([...K,...J])];Y[Q]=W}}return Y}function bJ($,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?d4(Y,Z):void 0,J=n3(Z.directives,X);return $.replace(/<head([^>]*)>/,`<head$1>
1833
1833
  ${J}`)}function rR($,Z){let Y=$;return Y=Y.replace(/<script(?![^>]*\ssrc=)([^>]*)>/gi,(X,J)=>{if(J.includes("nonce="))return X;return`<script nonce="${Z}"${J}>`}),Y=Y.replace(/<style([^>]*)>/gi,(X,J)=>{if(J.includes("nonce="))return X;return`<style nonce="${Z}"${J}>`}),Y}function PJ($,Z,Y,X){let J=$,Q=X.csp;if(J=J.replace(/@csp\b/g,()=>{if(!Q?.enabled||!Q.directives)return"<!-- CSP not configured -->";let G=Q.useNonce?d4(Z,Q):void 0;return n3(Q.directives,G)}),J=J.replace(/@cspNonce\b/g,()=>{if(!Q?.enabled||!Q.useNonce)return"";return d4(Z,Q)}),Q?.enabled&&Q.useNonce)Z.cspNonce=d4(Z,Q);return J}function aR(){return[b_,P_]}function sR($){let Z=[];if($["script-src"]?.includes("'unsafe-inline'"))Z.push("CSP: Using unsafe-inline in script-src significantly reduces XSS protection");if($["script-src"]?.includes("'unsafe-eval'"))Z.push("CSP: Using unsafe-eval in script-src allows eval() and related functions");if(!$["default-src"])Z.push("CSP: No default-src specified. Recommend adding default-src as a fallback");if($["default-src"]?.includes("*"))Z.push("CSP: Using * in default-src provides minimal protection");if(!$["object-src"]&&!$["default-src"]?.includes("'none'"))Z.push("CSP: Consider adding object-src: none to block plugins");if(!$["base-uri"])Z.push("CSP: Consider adding base-uri to prevent base tag injection attacks");for(let[Y,X]of Object.entries($))if(Array.isArray(X)&&X.includes("http:"))Z.push(`CSP: Using http: in ${Y} allows insecure resources`);return Z}function y_($=!1){return $?"Content-Security-Policy-Report-Only":"Content-Security-Policy"}function oR($,Z){if(!$.enabled)return{};let Y=$.useNonce?d4(Z,$):void 0,X=CJ($.directives,Y);return{[y_($.reportOnly)]:X}}var kJ,k_,i3,S_,C_,b_,P_,tR;var yJ=D(()=>{kJ=new WeakMap;k_={"default-src":["'self'"],"script-src":["'self'","'strict-dynamic'"],"style-src":["'self'"],"img-src":["'self'","data:","https:"],"font-src":["'self'","https:","data:"],"connect-src":["'self'"],"media-src":["'self'"],"object-src":["'none'"],"frame-src":["'none'"],"base-uri":["'self'"],"form-action":["'self'"],"frame-ancestors":["'self'"],"upgrade-insecure-requests":!0},i3={"default-src":["'self'"],"script-src":["'self'"],"style-src":["'self'","'unsafe-inline'"],"img-src":["'self'","data:","https:"],"font-src":["'self'","https:","data:"],"connect-src":["'self'","https:"],"media-src":["'self'"],"object-src":["'none'"],"frame-src":["'self'"],"base-uri":["'self'"],"form-action":["'self'"],"upgrade-insecure-requests":!0},S_={"default-src":["'self'"],"script-src":["'self'","'unsafe-inline'"],"style-src":["'self'","'unsafe-inline'"],"img-src":["'self'","data:","https:","http:"],"font-src":["'self'","https:","http:","data:"],"connect-src":["'self'","https:","http:","ws:","wss:"],"media-src":["'self'","https:","http:"],"object-src":["'none'"],"frame-src":["'self'","https:"],"base-uri":["'self'"]},C_={"default-src":["'none'"],"frame-ancestors":["'none'"]};b_={name:"csp",handler:($,Z,Y,X)=>{let Q=Y.__stx_options?.csp;if(!Q?.enabled||!Q.directives)return"<!-- CSP not configured -->";let G=Q.useNonce?d4(Y,Q):void 0;return n3(Q.directives,G)},hasEndTag:!1,description:"Insert Content-Security-Policy meta tag"},P_={name:"cspNonce",handler:($,Z,Y,X)=>{let Q=Y.__stx_options?.csp;if(!Q?.enabled||!Q.useNonce)return"";return d4(Y,Q)},hasEndTag:!1,description:"Output the current CSP nonce value"};tR={enabled:!1,reportOnly:!1,directives:i3,useNonce:!1,addMetaTag:!0}});import eR from"crypto";function ZM($=$M){let Z=eR.randomBytes(Math.ceil($/2)).toString("hex").slice(0,$);return xJ=Z,Z}function YM(){if(!xJ)ZM();return xJ}function XM($=x_){let Z=YM();return`<input type="hidden" name="${$}" value="${Z}">`}function v_($){return $.replace(/@csrf(?:\((['"])([^'"]*)\1\))?/g,(Z,Y,X)=>{return XM(X||x_)})}var $M=40,x_="_token",xJ=null;var f_=()=>{};async function vJ($,Z,Y,X){if(!X.customDirectives||X.customDirectives.length===0)return $;let J=$;for(let Q of X.customDirectives){if(!Q.name||typeof Q.handler!=="function"){if(X.debug)console.warn("Invalid custom directive:",Q);continue}if(Q.hasEndTag)J=await JM(J,Q,Z,Y,X);else J=await QM(J,Q,Z,Y,X)}return J}async function JM($,Z,Y,X,J){let{name:Q,handler:G}=Z,K=`@${Q}`,W=`@end${Q}`,U=$,_=G$(`${K}(?:\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\))?([\\s\\S]*?)${W}`,"g"),z=[],B=_.exec(U);while(B!==null){let[q,j="",H=""]=B,O=B.index||0;try{let V=j?g_(j):[],L=H.trim(),F=await G(L,V,Y,X);z.push({original:q,processed:F,startIndex:O})}catch(V){let L=V instanceof Error?V.message:String(V);if(J.debug)console.error(`Error processing custom directive @${Q}:`,V);z.push({original:q,processed:U0("CustomDirective",`Error in @${Q}${j?`(${j})`:""}: ${L}`,J0.EVALUATION_ERROR),startIndex:O})}B=_.exec(U)}for(let q=z.length-1;q>=0;q--){let{original:j,processed:H}=z[q];U=U.replace(j,H)}return U}async function QM($,Z,Y,X,J){let{name:Q,handler:G}=Z,K=$,W=G$(`@${Q}\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\)`,"g"),U=[],_=W.exec(K);while(_!==null){let[q,j=""]=_,H=_.index||0;try{let O=g_(j),V=await G("",O,Y,X);U.push({original:q,processed:V,startIndex:H})}catch(O){let V=O instanceof Error?O.message:String(O);if(J.debug)console.error(`Error processing custom directive @${Q}:`,O);U.push({original:q,processed:U0("CustomDirective",`Error in @${Q}(${j}): ${V}`,J0.EVALUATION_ERROR),startIndex:H})}_=W.exec(K)}let z=G$(`@${Q}(?!\\w)(?!\\s*\\()`,"g"),B=z.exec(K);while(B!==null){let[q]=B,j=B.index||0;try{let H=await G("",[],Y,X);U.push({original:q,processed:H,startIndex:j})}catch(H){let O=H instanceof Error?H.message:String(H);if(J.debug)console.error(`Error processing custom directive @${Q}:`,H);U.push({original:q,processed:U0("CustomDirective",`Error in @${Q}: ${O}`,J0.EVALUATION_ERROR),startIndex:j})}B=z.exec(K)}for(let q=U.length-1;q>=0;q--){let{original:j,processed:H}=U[q];K=K.replace(j,H)}return K}function g_($){if(!$.trim())return[];let Z=[],Y="",X=!1,J="";for(let Q=0;Q<$.length;Q++){let G=$[Q];if((G==='"'||G==="'")&&(Q===0||$[Q-1]!=="\\"))if(!X)X=!0,J=G;else if(G===J)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((Q)=>{let G=Q.trim();if(G.startsWith('"')&&G.endsWith('"')||G.startsWith("'")&&G.endsWith("'"))return G.substring(1,G.length-1);return G})}var fJ=D(()=>{R1();x4()});var s3={};e(s3,{useTitle:()=>u_,useSeoMeta:()=>X7,usePageTitle:()=>u_,useHead:()=>m4,resetHead:()=>h_,renderHtmlAttrs:()=>c_,renderHead:()=>m_,renderBodyAttrs:()=>l_,processTitleDirective:()=>n_,processMetaDirective:()=>r_,processHeadDirective:()=>i_,getPageMeta:()=>a3,getHead:()=>H$,definePageMeta:()=>d_,applyHead:()=>p_});function H$(){return u4}function a3(){return r3}function h_(){u4={},GM.length=0,r3={}}function m4($){u4=KM(u4,$)}function KM($,Z){return{title:Z.title??$.title,titleTemplate:Z.titleTemplate??$.titleTemplate,base:Z.base??$.base,meta:[...$.meta||[],...Z.meta||[]],link:[...$.link||[],...Z.link||[]],script:[...$.script||[],...Z.script||[]],style:[...$.style||[],...Z.style||[]],htmlAttrs:{...$.htmlAttrs,...Z.htmlAttrs},bodyAttrs:{...$.bodyAttrs,...Z.bodyAttrs}}}function X7($){let Z=[];if($.description)Z.push({name:"description",content:$.description});if($.keywords){let W=Array.isArray($.keywords)?$.keywords.join(", "):$.keywords;Z.push({name:"keywords",content:W})}if($.author)Z.push({name:"author",content:$.author});if($.robots)Z.push({name:"robots",content:$.robots});let Y=$.ogTitle??$.title,X=$.ogDescription??$.description;if(Y)Z.push({property:"og:title",content:Y});if(X)Z.push({property:"og:description",content:X});if($.ogImage)Z.push({property:"og:image",content:$.ogImage});if($.ogUrl)Z.push({property:"og:url",content:$.ogUrl});if($.ogType)Z.push({property:"og:type",content:$.ogType});if($.ogSiteName)Z.push({property:"og:site_name",content:$.ogSiteName});if($.ogLocale)Z.push({property:"og:locale",content:$.ogLocale});let J=$.twitterTitle??$.title,Q=$.twitterDescription??$.description,G=$.twitterImage??$.ogImage;if($.twitterCard)Z.push({name:"twitter:card",content:$.twitterCard});if(J)Z.push({name:"twitter:title",content:J});if(Q)Z.push({name:"twitter:description",content:Q});if(G)Z.push({name:"twitter:image",content:G});if($.twitterSite)Z.push({name:"twitter:site",content:$.twitterSite});if($.twitterCreator)Z.push({name:"twitter:creator",content:$.twitterCreator});if($.articleAuthor)Z.push({property:"article:author",content:$.articleAuthor});if($.articlePublishedTime)Z.push({property:"article:published_time",content:$.articlePublishedTime});if($.articleModifiedTime)Z.push({property:"article:modified_time",content:$.articleModifiedTime});if($.articleSection)Z.push({property:"article:section",content:$.articleSection});if($.articleTags)for(let W of $.articleTags)Z.push({property:"article:tag",content:W});let K=[];if($.canonical)K.push({rel:"canonical",href:$.canonical});m4({title:$.title,titleTemplate:$.titleTemplate,meta:Z,link:K})}function d_($){if(r3={...r3,...$},$.title||$.description)X7({title:$.title,description:$.description})}function u_($){let Z=typeof $==="function"?$():$;m4({title:Z})}function m_($=u4){let Z=[];if($.title){let Y=$.title;if($.titleTemplate)Y=typeof $.titleTemplate==="function"?$.titleTemplate(Y):$.titleTemplate.replace("%s",Y);Z.push(`<title>${E6(Y)}</title>`)}if($.base){let Y=Object.entries($.base).map(([X,J])=>`${X}="${E6(J)}"`).join(" ");Z.push(`<base ${Y}>`)}for(let Y of $.meta||[]){let X=Object.entries(Y).filter(([J,Q])=>Q!==void 0).map(([J,Q])=>{return`${J==="httpEquiv"?"http-equiv":J}="${E6(String(Q))}"`}).join(" ");Z.push(`<meta ${X}>`)}for(let Y of $.link||[]){let X=Object.entries(Y).filter(([J,Q])=>Q!==void 0).map(([J,Q])=>`${J}="${E6(String(Q))}"`).join(" ");Z.push(`<link ${X}>`)}for(let Y of $.script||[]){let{content:X,...J}=Y,Q=Object.entries(J).filter(([G,K])=>K!==void 0).map(([G,K])=>{if(typeof K==="boolean")return K?G:"";return`${G}="${E6(String(K))}"`}).filter(Boolean).join(" ");if(X)Z.push(`<script ${Q}>${X}</script>`);else Z.push(`<script ${Q}></script>`)}for(let Y of $.style||[]){let X=Y.type?` type="${Y.type}"`:"";Z.push(`<style${X}>${Y.content}</style>`)}return Z.join(`
1834
1834
  `)}function c_($=u4){if(!$.htmlAttrs)return"";return Object.entries($.htmlAttrs).map(([Z,Y])=>`${Z}="${E6(Y)}"`).join(" ")}function l_($=u4){if(!$.bodyAttrs)return"";return Object.entries($.bodyAttrs).map(([Z,Y])=>`${Z}="${E6(Y)}"`).join(" ")}function E6($){return $.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}function p_($=u4){if(typeof document>"u")return;if($.title){let Z=$.title;if($.titleTemplate)Z=typeof $.titleTemplate==="function"?$.titleTemplate(Z):$.titleTemplate.replace("%s",Z);document.title=Z}for(let Z of $.meta||[]){let Y=Z.name?`meta[name="${Z.name}"]`:Z.property?`meta[property="${Z.property}"]`:null;if(Y){let X=document.querySelector(Y);if(!X){if(X=document.createElement("meta"),Z.name)X.setAttribute("name",Z.name);if(Z.property)X.setAttribute("property",Z.property);document.head.appendChild(X)}X.setAttribute("content",Z.content)}}for(let Z of $.link||[]){let Y=`link[rel="${Z.rel}"]${Z.href?`[href="${Z.href}"]`:""}`,X=document.querySelector(Y);if(!X)X=document.createElement("link"),document.head.appendChild(X);for(let[J,Q]of Object.entries(Z))if(Q!==void 0)X.setAttribute(J,String(Q))}if($.htmlAttrs)for(let[Z,Y]of Object.entries($.htmlAttrs))document.documentElement.setAttribute(Z,Y);if($.bodyAttrs)for(let[Z,Y]of Object.entries($.bodyAttrs))document.body.setAttribute(Z,Y)}function i_($){let Z="";return{content:$.replace(/@head\s*([\s\S]*?)@endhead/g,(X,J)=>{return Z+=J.trim()+`
1835
1835
  `,""}),headContent:Z.trim()}}function n_($,Z){return $.replace(/@title\s*\(\s*(?:(['"`])(.+?)\1|([^)]+))\s*\)/g,(Y,X,J,Q)=>{let G=X?J:Z[(Q||"").trim()]??Q;return m4({title:G}),""})}function r_($,Z){return $.replace(/@meta\s*\(\s*(['"`])(.+?)\1\s*,\s*(?:(['"`])(.+?)\3|([^)]+))\s*\)/g,(Y,X,J,Q,G,K)=>{let W=Q?G:K,U=Q?W:Z[(W||"").trim()]??W,z=J.includes(":")?{property:J,content:U}:{name:J,content:U};return m4({meta:[z]}),""})}var u4,GM,r3;var c4=D(()=>{u4={},GM=[],r3={}});import WM from"crypto";function t0($){return String($??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function UM($){return{...t3,...$.forms?.classes}}function o3($,Z,Y,X){let J=$||Z;return Y?`${J} ${X}`:J}function _M(){return WM.randomUUID()}function zM($,Z,Y,X){let J=UM(X),Q=$;return Q=t_(Q,Z),Q=O$(Q,Z),Q=e3(Q,Z,J),Q=$Z(Q,Z,J),Q}function O$($,Z){let Y=$;return Y=Y.replace(/@csrf/g,()=>{if(!Z.csrf||typeof Z.csrf!=="object"){let X=_M();Z.csrf={token:X}}if(Z.csrf.field)return Z.csrf.field;if(Z.csrf.token)return`<input type="hidden" name="_token" value="${t0(Z.csrf.token)}">`;return'<input type="hidden" name="_token" value="">'}),Y=Y.replace(/@method\(['"]([^'"]+)['"]\)/g,(X,J)=>{let Q=J.toUpperCase();if(J&&!["GET","POST"].includes(Q))return`<input type="hidden" name="_method" value="${t0(Q)}">`;return X}),Y}function e3($,Z,Y=t3){let X=$;return X=X.replace(/@form\(\s*(?:(?:'([^']+)'|"([^"]+)")\s*)?(?:,\s*(?:'([^']+)'|"([^"]+)")?)?\s*(?:,\s*\{([^}]+)\}\s*)?\)/g,(J,Q,G,K,W,U="")=>{let _=Q||G||"POST",z=K||W||"",B=l4(U),q=_.toUpperCase(),j=["GET","POST"].includes(q)?q:"POST",H=`<form method="${t0(j)}" action="${t0(z)}"${B?` ${B}`:""}>`;if(H+=`
@@ -2079,12 +2079,12 @@ else {
2079
2079
  ${W?`{${W}}`:"{}"}
2080
2080
  </script>
2081
2081
  </div>`}}});var Nz={};e(Nz,{warnUnbalancedTags:()=>oJ,findUnbalancedTags:()=>Az});function i4($){return $.replace(/[^\n]/g," ")}function Az($){let Z=$.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,i4).replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,i4).replace(/<!--[\s\S]*?-->/g,i4).replace(/\{\{\{[\s\S]*?\}\}\}/g,i4).replace(/\{\{[\s\S]*?\}\}/g,i4).replace(/\{!![\s\S]*?!!\}/g,i4).replace(/"[^"]*"/g,i4).replace(/'[^']*'/g,i4),Y=new Map,X=new Map,J=/<(\/?)([A-Za-z][\w-]*)\b[^>]*?(\/?)>/g,Q;while((Q=J.exec(Z))!==null){let K=Q[1]==="/",W=Q[2],U=Q[3]==="/";if(sM.has(W.toLowerCase()))continue;if(U)continue;if(K)X.set(W,(X.get(W)??0)+1);else{let _=Y.get(W);if(_)_.count++;else{let z=Z.slice(0,Q.index).split(`
2082
- `).length;Y.set(W,{count:1,firstLine:z})}}}let G=[];for(let K of new Set([...Y.keys(),...X.keys()])){if(oM.has(K.toLowerCase()))continue;let W=Y.get(K)?.count??0,U=X.get(K)??0;if(W!==U)G.push({tag:K,opened:W,closed:U,firstOpenLine:Y.get(K)?.firstLine??0})}return G}function oJ($,Z){let Y;try{Y=Az($)}catch{return}if(Y.length===0)return;let X=`${Z}:${$.length}`;if(Fz.has(X))return;Fz.add(X);let J=Z?Z.split(/[/\\]/).pop()||Z:"template";for(let{tag:Q,opened:G,closed:K,firstOpenLine:W}of Y)if(G>K){let U=W?` (first opened at line ${W})`:"";console.warn(`[stx] ${J}: <${Q}> ${G} opened, ${K} closed \u2014 an unclosed <${Q}>${U} may swallow the content that follows it.`)}else console.warn(`[stx] ${J}: <${Q}> ${G} opened, ${K} closed \u2014 ${K-G} stray </${Q}>.`)}var sM,oM,Fz;var tJ=D(()=>{sM=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),oM=new Set(["html","head","body","p","li","dt","dd","rt","rp","option","optgroup","thead","tbody","tfoot","tr","td","th","colgroup","caption"]);Fz=new Set});import P1 from"path";import eJ from"fs";function wz($){return $.split("-").map((Z)=>Z.charAt(0).toUpperCase()+Z.slice(1)).join("")}function Rz($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}class Mz{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 J=$.endsWith(".stx")?$.slice(0,-4):$,Q=X?.__importedComponents;if(Q){let q=[J,J.toLowerCase(),wz(J),Rz(J)];for(let j of q)if(Q.has(j))return Q.get(j)}let G=[...new Set([`${J}.stx`,`${wz(J)}.stx`,`${Rz(J)}.stx`])];if(J.startsWith("./")||J.startsWith("../")){let q=P1.resolve(P1.dirname(Z),`${J}.stx`);if(await X0(q))return q;return null}let K=[],W=Y.componentsDir||"",U=X?.__originalFilePath;if(U)K.push(P1.join(P1.dirname(U),"components"));if(W)K.push(W);let _=P1.join(P1.dirname(Z),"components");if(!K.includes(_))K.push(_);let z=process.cwd(),B=[P1.resolve(z,"src/components"),P1.resolve(z,"components"),P1.resolve(import.meta.dir,"components")];for(let q of B)if(!K.includes(q))K.push(q);for(let q of K){if(!q)continue;for(let j of G){let H=P1.join(q,j);if(await X0(H))return H}try{if(!eJ.statSync(q,{throwIfNoEntry:!1})?.isDirectory())continue;let H=eJ.readdirSync(q,{withFileTypes:!0});for(let O of H)if(O.isDirectory()){let V=P1.join(q,O.name);for(let L of G){let F=P1.join(V,L);if(await X0(F))return F}}}catch{}}return null}}var L1;var $9=D(()=>{A0();L1=new Mz});function n4($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function tM($){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 Z9;var Y9=D(()=>{Z9={name:"StxLink",aliases:["stx-link"],render($,Z,Y){let X=tM($),J=(typeof $.static.class==="string"?$.static.class:"")||(typeof $.static.className==="string"?$.static.className:""),Q=typeof $.static.activeClass==="string"?$.static.activeClass:"active",G=typeof $.static.exactActiveClass==="string"?$.static.exactActiveClass:"exact-active",K=$.static.prefetch===!0||$.static.prefetch==="true"||$.serverDynamic.prefetch===!0,W=[];if(X.reactive)W.push(`:href="${n4(X.value)}"`);else W.push(`href="${n4(X.value)}"`);if(J)W.push(`class="${n4(J)}"`);if(W.push("data-stx-link"),W.push(`data-stx-active-class="${n4(Q)}"`),W.push(`data-stx-exact-active-class="${n4(G)}"`),K)W.push("data-stx-prefetch");let U=new Set(["to","class","className","activeClass","exactActiveClass","prefetch"]);for(let[_,z]of Object.entries($.static)){if(U.has(_))continue;if(typeof z==="boolean"){if(z)W.push(n4(_))}else W.push(`${n4(_)}="${n4(z)}"`)}return`<a ${W.join(" ")}>${Z}</a>`}}});function m0($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function _1($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}function J9($,Z,Y=!1){let X=$.serverDynamic[Z];if(X!==void 0)return X!==!1&&X!=="false";let J=$.static[Z];if(J!==void 0)return J!=="false"&&J!==!1;return Y}function Tz($){if($.includes("(")||$.includes(","))return $;let Z=$.trim().split(/\s+/),Y=[];for(let X of Z)if(X.includes(":")){let[J,Q]=X.split(":"),G=eM[J];if(G)Y.push(`(max-width: ${G}px) ${Q}`);else{let K=Number.parseInt(J);if(!Number.isNaN(K))Y.push(`(max-width: ${K}px) ${Q}`)}}else Y.push(X);return Y.join(", ")}function Q9($,Z,Y,X){return Z.map((J)=>`${W7($,J,void 0,Y,X)} ${J}w`).join(", ")}function $T($,Z,Y,X,J){return Z.map((Q)=>{let G=Y?Y*Q:void 0;return`${W7($,G,void 0,X,J)} ${Q}x`}).join(", ")}function W7($,Z,Y,X,J){if(!X||X==="local"||X==="static")return $;if(X==="cloudinary"){let Q=[];if(Z)Q.push(`w_${Z}`);if(Y)Q.push(`h_${Y}`);if(J)Q.push(`f_${J}`);Q.push("q_auto");let G=Q.join(",");return $.replace("/upload/",`/upload/${G}/`)}if(X==="imgix"){let Q=new URLSearchParams;if(Z)Q.set("w",String(Z));if(Y)Q.set("h",String(Y));if(J)Q.set("fm",J);Q.set("auto","format");let G=$.includes("?")?"&":"?";return`${$}${G}${Q.toString()}`}if(X==="bunny"){let Q=new URLSearchParams;if(Z)Q.set("width",String(Z));if(Y)Q.set("height",String(Y));if(J)Q.set("format",J);let G=$.includes("?")?"&":"?";return`${$}${G}${Q.toString()}`}return $}function ZT($,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 eM,X9,G9;var K9=D(()=>{eM={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},X9=[320,640,768,1024,1280,1536,1920];G9={name:"StxImage",aliases:["stx-image","stx-img"],render($,Z,Y){let X=_1($,"src")||"",J=_1($,"alt")||"",Q=_1($,"width"),G=_1($,"height"),K=_1($,"sizes"),W=_1($,"srcset"),U=_1($,"densities"),_=_1($,"format"),z=_1($,"placeholder"),B=_1($,"placeholderColor")||"#e5e7eb",q=_1($,"provider"),j=_1($,"class")||_1($,"className")||"",H=_1($,"style")||"",O=_1($,"quality"),V=J9($,"lazy",!0),L=J9($,"preload",!1),F=J9($,"picture",!1)||!!_,A=Q?Number.parseInt(Q):void 0,N=G?Number.parseInt(G):void 0,w=W||"",R="";if(!w&&K)w=Q9(X,X9,q,_),R=Tz(K);else if(!w&&U){let P=U.split(/\s+/).map((C)=>Number.parseFloat(C.replace("x","")));w=$T(X,P,A,q,_)}else if(K)R=Tz(K);let T=[];if(H)T.push(H);if(A&&N)T.push(`aspect-ratio:${A}/${N}`);if(z==="blur"||z==="color"||z==="thumbhash"){let P=ZT(A||16,N||9,B);T.push(`background-image:url(${P})`),T.push("background-size:cover"),T.push("background-repeat:no-repeat")}else if(z&&z!=="empty"&&z!=="none")T.push(`background-image:url(${m0(z)})`),T.push("background-size:cover"),T.push("background-repeat:no-repeat");let E=W7(X,A,N,q,_),I=[];if(I.push(`src="${m0(E)}"`),I.push(`alt="${m0(J)}"`),Q)I.push(`width="${m0(Q)}"`);if(G)I.push(`height="${m0(G)}"`);if(V)I.push('loading="lazy"');if(I.push('decoding="async"'),j)I.push(`class="${m0(j)}"`);if(T.length>0)I.push(`style="${m0(T.join(";"))}"`);if(w)I.push(`srcset="${m0(w)}"`);if(R)I.push(`sizes="${m0(R)}"`);let k=new Set(["src","alt","width","height","lazy","sizes","srcset","placeholder","placeholderColor","class","className","style","format","provider","quality","densities","preload","picture"]);for(let[P,C]of Object.entries($.static)){if(k.has(P))continue;if(typeof C==="boolean"){if(C)I.push(m0(P))}else I.push(`${m0(P)}="${m0(C)}"`)}let S=`<img ${I.join(" ")} />`,y="";if(L){let C=_==="webp"?"image/webp":_==="avif"?"image/avif":"";y=`<link rel="preload" as="image" href="${m0(E)}"${C?` type="${C}"`:""}${w?` imagesrcset="${m0(w)}"`:""}${R?` imagesizes="${m0(R)}"`:""} />
2083
- `}if(F){let P=[];if(_==="avif"||_==="auto"){let C=W7(X,A,N,q,"avif"),g=w?Q9(X,X9,q,"avif"):`${C}`;P.push(`<source type="image/avif" srcset="${m0(g)}"${R?` sizes="${m0(R)}"`:""} />`)}if(_==="webp"||_==="auto"){let C=W7(X,A,N,q,"webp"),g=w?Q9(X,X9,q,"webp"):`${C}`;P.push(`<source type="image/webp" srcset="${m0(g)}"${R?` sizes="${m0(R)}"`:""} />`)}return`${y}<picture>
2082
+ `).length;Y.set(W,{count:1,firstLine:z})}}}let G=[];for(let K of new Set([...Y.keys(),...X.keys()])){if(oM.has(K.toLowerCase()))continue;let W=Y.get(K)?.count??0,U=X.get(K)??0;if(W!==U)G.push({tag:K,opened:W,closed:U,firstOpenLine:Y.get(K)?.firstLine??0})}return G}function oJ($,Z){let Y;try{Y=Az($)}catch{return}if(Y.length===0)return;let X=`${Z}:${$.length}`;if(Fz.has(X))return;Fz.add(X);let J=Z?Z.split(/[/\\]/).pop()||Z:"template";for(let{tag:Q,opened:G,closed:K,firstOpenLine:W}of Y)if(G>K){let U=W?` (first opened at line ${W})`:"";console.warn(`[stx] ${J}: <${Q}> ${G} opened, ${K} closed \u2014 an unclosed <${Q}>${U} may swallow the content that follows it.`)}else console.warn(`[stx] ${J}: <${Q}> ${G} opened, ${K} closed \u2014 ${K-G} stray </${Q}>.`)}var sM,oM,Fz;var tJ=D(()=>{sM=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),oM=new Set(["html","head","body","p","li","dt","dd","rt","rp","option","optgroup","thead","tbody","tfoot","tr","td","th","colgroup","caption"]);Fz=new Set});import P1 from"path";import eJ from"fs";function wz($){return $.split("-").map((Z)=>Z.charAt(0).toUpperCase()+Z.slice(1)).join("")}function Rz($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}class Mz{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 J=$.endsWith(".stx")?$.slice(0,-4):$,Q=X?.__importedComponents;if(Q){let q=[J,J.toLowerCase(),wz(J),Rz(J)];for(let j of q)if(Q.has(j))return Q.get(j)}let G=[...new Set([`${J}.stx`,`${wz(J)}.stx`,`${Rz(J)}.stx`])];if(J.startsWith("./")||J.startsWith("../")){let q=P1.resolve(P1.dirname(Z),`${J}.stx`);if(await X0(q))return q;return null}let K=[],W=Y.componentsDir||"",U=X?.__originalFilePath;if(U)K.push(P1.join(P1.dirname(U),"components"));if(W)K.push(W);let _=P1.join(P1.dirname(Z),"components");if(!K.includes(_))K.push(_);let z=process.cwd(),B=[P1.resolve(z,"src/components"),P1.resolve(z,"components"),P1.resolve(import.meta.dir,"components")];for(let q of B)if(!K.includes(q))K.push(q);for(let q of K){if(!q)continue;for(let j of G){let H=P1.join(q,j);if(await X0(H))return H}try{if(!eJ.statSync(q,{throwIfNoEntry:!1})?.isDirectory())continue;let H=eJ.readdirSync(q,{withFileTypes:!0});for(let O of H)if(O.isDirectory()){let V=P1.join(q,O.name);for(let L of G){let F=P1.join(V,L);if(await X0(F))return F}}}catch{}}return null}}var L1;var $9=D(()=>{A0();L1=new Mz});function n4($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function tM($){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 Z9;var Y9=D(()=>{Z9={name:"StxLink",aliases:["stx-link"],render($,Z,Y){let X=tM($),J=(typeof $.static.class==="string"?$.static.class:"")||(typeof $.static.className==="string"?$.static.className:""),Q=typeof $.static.activeClass==="string"?$.static.activeClass:"active",G=typeof $.static.exactActiveClass==="string"?$.static.exactActiveClass:"exact-active",K=$.static.prefetch===!0||$.static.prefetch==="true"||$.serverDynamic.prefetch===!0,W=[];if(X.reactive)W.push(`:href="${n4(X.value)}"`);else W.push(`href="${n4(X.value)}"`);if(J)W.push(`class="${n4(J)}"`);if(W.push("data-stx-link"),W.push(`data-stx-active-class="${n4(Q)}"`),W.push(`data-stx-exact-active-class="${n4(G)}"`),K)W.push("data-stx-prefetch");let U=new Set(["to","class","className","activeClass","exactActiveClass","prefetch"]);for(let[_,z]of Object.entries($.static)){if(U.has(_))continue;if(typeof z==="boolean"){if(z)W.push(n4(_))}else W.push(`${n4(_)}="${n4(z)}"`)}return`<a ${W.join(" ")}>${Z}</a>`}}});function m0($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function _1($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}function J9($,Z,Y=!1){let X=$.serverDynamic[Z];if(X!==void 0)return X!==!1&&X!=="false";let J=$.static[Z];if(J!==void 0)return J!=="false"&&J!==!1;return Y}function Tz($){if($.includes("(")||$.includes(","))return $;let Z=$.trim().split(/\s+/),Y=[];for(let X of Z)if(X.includes(":")){let[J,Q]=X.split(":"),G=eM[J];if(G)Y.push(`(max-width: ${G}px) ${Q}`);else{let K=Number.parseInt(J);if(!Number.isNaN(K))Y.push(`(max-width: ${K}px) ${Q}`)}}else Y.push(X);return Y.join(", ")}function Q9($,Z,Y,X){return Z.map((J)=>`${W7($,J,void 0,Y,X)} ${J}w`).join(", ")}function $T($,Z,Y,X,J){return Z.map((Q)=>{let G=Y?Y*Q:void 0;return`${W7($,G,void 0,X,J)} ${Q}x`}).join(", ")}function W7($,Z,Y,X,J){if(!X||X==="local"||X==="static")return $;if(X==="cloudinary"){let Q=[];if(Z)Q.push(`w_${Z}`);if(Y)Q.push(`h_${Y}`);if(J)Q.push(`f_${J}`);Q.push("q_auto");let G=Q.join(",");return $.replace("/upload/",`/upload/${G}/`)}if(X==="imgix"){let Q=new URLSearchParams;if(Z)Q.set("w",String(Z));if(Y)Q.set("h",String(Y));if(J)Q.set("fm",J);Q.set("auto","format");let G=$.includes("?")?"&":"?";return`${$}${G}${Q.toString()}`}if(X==="bunny"){let Q=new URLSearchParams;if(Z)Q.set("width",String(Z));if(Y)Q.set("height",String(Y));if(J)Q.set("format",J);let G=$.includes("?")?"&":"?";return`${$}${G}${Q.toString()}`}return $}function ZT($,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 eM,X9,G9;var K9=D(()=>{eM={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},X9=[320,640,768,1024,1280,1536,1920];G9={name:"StxImage",aliases:["stx-image","stx-img"],render($,Z,Y){let X=_1($,"src")||"",J=_1($,"alt")||"",Q=_1($,"width"),G=_1($,"height"),K=_1($,"sizes"),W=_1($,"srcset"),U=_1($,"densities"),_=_1($,"format"),z=_1($,"placeholder"),B=_1($,"placeholderColor")||"#e5e7eb",q=_1($,"provider"),j=_1($,"class")||_1($,"className")||"",H=_1($,"style")||"",O=_1($,"quality"),V=J9($,"lazy",!0),L=J9($,"preload",!1),F=J9($,"picture",!1)||!!_,A=Q?Number.parseInt(Q):void 0,N=G?Number.parseInt(G):void 0,w=W||"",R="";if(!w&&K)w=Q9(X,X9,q,_),R=Tz(K);else if(!w&&U){let P=U.split(/\s+/).map((C)=>Number.parseFloat(C.replace("x","")));w=$T(X,P,A,q,_)}else if(K)R=Tz(K);let T=[];if(H)T.push(H);if(A&&N)T.push(`aspect-ratio:${A}/${N}`);if(z==="blur"||z==="color"||z==="thumbhash"){let P=ZT(A||16,N||9,B);T.push(`background-image:url(${P})`),T.push("background-size:cover"),T.push("background-repeat:no-repeat")}else if(z&&z!=="empty"&&z!=="none")T.push(`background-image:url(${m0(z)})`),T.push("background-size:cover"),T.push("background-repeat:no-repeat");let E=W7(X,A,N,q,_),I=[];if(I.push(`src="${m0(E)}"`),I.push(`alt="${m0(J)}"`),Q)I.push(`width="${m0(Q)}"`);if(G)I.push(`height="${m0(G)}"`);if(V)I.push('loading="lazy"');if(I.push('decoding="async"'),j)I.push(`class="${m0(j)}"`);if(T.length>0)I.push(`style="${m0(T.join(";"))}"`);if(w)I.push(`srcset="${m0(w)}"`);if(R)I.push(`sizes="${m0(R)}"`);let k=new Set(["src","alt","width","height","lazy","sizes","srcset","placeholder","placeholderColor","class","className","style","format","provider","quality","densities","preload","picture"]);for(let[P,C]of Object.entries($.static)){if(k.has(P))continue;if(typeof C==="boolean"){if(C)I.push(m0(P))}else I.push(`${m0(P)}="${m0(C)}"`)}let S=`<img ${I.join(" ")} />`,x="";if(L){let C=_==="webp"?"image/webp":_==="avif"?"image/avif":"";x=`<link rel="preload" as="image" href="${m0(E)}"${C?` type="${C}"`:""}${w?` imagesrcset="${m0(w)}"`:""}${R?` imagesizes="${m0(R)}"`:""} />
2083
+ `}if(F){let P=[];if(_==="avif"||_==="auto"){let C=W7(X,A,N,q,"avif"),g=w?Q9(X,X9,q,"avif"):`${C}`;P.push(`<source type="image/avif" srcset="${m0(g)}"${R?` sizes="${m0(R)}"`:""} />`)}if(_==="webp"||_==="auto"){let C=W7(X,A,N,q,"webp"),g=w?Q9(X,X9,q,"webp"):`${C}`;P.push(`<source type="image/webp" srcset="${m0(g)}"${R?` sizes="${m0(R)}"`:""} />`)}return`${x}<picture>
2084
2084
  ${P.join(`
2085
2085
  `)}
2086
2086
  ${S}
2087
- </picture>`}return`${y}${S}`}}});function r4($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function L$($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}var YT="<script>window.__stxSafeImageHandler||(window.__stxSafeImageHandler=function(i){if(i.__stx_fb)return;i.__stx_fb=1;var f=i.getAttribute('data-fallback')||'/images/safe-image-default.svg';var c=i.getAttribute('data-fallback-class');i.src=f;if(c)i.className=c;});</script>",W9;var U9=D(()=>{W9={name:"SafeImage",aliases:["safe-image","safe-img"],render($,Z,Y){let X=L$($,"src")||"",J=L$($,"alt")||"",Q=L$($,"fallback")||"/images/safe-image-default.svg",G=L$($,"class")||L$($,"className")||"",K=L$($,"fallbackClassName")||"",W=[];if(W.push(`src="${r4(X)}"`),W.push(`alt="${r4(J)}"`),G)W.push(`class="${r4(G)}"`);if(W.push(`data-fallback="${r4(Q)}"`),K)W.push(`data-fallback-class="${r4(K)}"`);W.push('onerror="window.__stxSafeImageHandler(this)"');let U=new Set(["src","alt","fallback","class","className","fallbackClassName"]);for(let[B,q]of Object.entries($.static)){if(U.has(B))continue;if(typeof q==="boolean"){if(q)W.push(r4(B))}else W.push(`${r4(B)}="${r4(q)}"`)}let _=`<img ${W.join(" ")} />`,z=Y.context;if(!z.__safeImageHandlerEmitted)return z.__safeImageHandlerEmitted=!0,`${YT}${_}`;return _}}});function _9($){return $.replace(/[;{}()]/g,"").replace(/url/gi,"")}function U7($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}function QZ($,Z,Y){let X=U7($,Z);if(X!==void 0){let J=Number.parseInt(X,10);if(!Number.isNaN(J))return J}return Y}var z9;var B9=D(()=>{z9={name:"StxLoadingIndicator",aliases:["stx-loading-indicator"],render($,Z,Y){let X=_9(U7($,"color")||"#6366f1"),J=_9(U7($,"initialColor")||U7($,"initial-color")||""),Q=_9(U7($,"height")||"3px"),G=QZ($,"duration",2000),K=QZ($,"throttle",200),W=QZ($,"zIndex",999999)||QZ($,"z-index",999999),U=J?`linear-gradient(to right, ${J}, ${X})`:X;return`
2087
+ </picture>`}return`${x}${S}`}}});function r4($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function L$($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}var YT="<script>window.__stxSafeImageHandler||(window.__stxSafeImageHandler=function(i){if(i.__stx_fb)return;i.__stx_fb=1;var f=i.getAttribute('data-fallback')||'/images/safe-image-default.svg';var c=i.getAttribute('data-fallback-class');i.src=f;if(c)i.className=c;});</script>",W9;var U9=D(()=>{W9={name:"SafeImage",aliases:["safe-image","safe-img"],render($,Z,Y){let X=L$($,"src")||"",J=L$($,"alt")||"",Q=L$($,"fallback")||"/images/safe-image-default.svg",G=L$($,"class")||L$($,"className")||"",K=L$($,"fallbackClassName")||"",W=[];if(W.push(`src="${r4(X)}"`),W.push(`alt="${r4(J)}"`),G)W.push(`class="${r4(G)}"`);if(W.push(`data-fallback="${r4(Q)}"`),K)W.push(`data-fallback-class="${r4(K)}"`);W.push('onerror="window.__stxSafeImageHandler(this)"');let U=new Set(["src","alt","fallback","class","className","fallbackClassName"]);for(let[B,q]of Object.entries($.static)){if(U.has(B))continue;if(typeof q==="boolean"){if(q)W.push(r4(B))}else W.push(`${r4(B)}="${r4(q)}"`)}let _=`<img ${W.join(" ")} />`,z=Y.context;if(!z.__safeImageHandlerEmitted)return z.__safeImageHandlerEmitted=!0,`${YT}${_}`;return _}}});function _9($){return $.replace(/[;{}()]/g,"").replace(/url/gi,"")}function U7($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}function QZ($,Z,Y){let X=U7($,Z);if(X!==void 0){let J=Number.parseInt(X,10);if(!Number.isNaN(J))return J}return Y}var z9;var B9=D(()=>{z9={name:"StxLoadingIndicator",aliases:["stx-loading-indicator"],render($,Z,Y){let X=_9(U7($,"color")||"#6366f1"),J=_9(U7($,"initialColor")||U7($,"initial-color")||""),Q=_9(U7($,"height")||"3px"),G=QZ($,"duration",2000),K=QZ($,"throttle",200),W=QZ($,"zIndex",999999)||QZ($,"z-index",999999),U=J?`linear-gradient(to right, ${J}, ${X})`:X;return`
2088
2088
  <div id="stx-loading-indicator" style="position:fixed;top:0;left:0;right:0;height:${Q};background:${U};z-index:${W};transform:scaleX(0);transform-origin:left;transition:transform 0.1s ease-out,opacity 0.3s ease;opacity:0;pointer-events:none">
2089
2089
  <div style="position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,0.4) 50%,transparent 100%);animation:stx-shimmer 1.5s infinite"></div>
2090
2090
  </div>
@@ -2118,15 +2118,15 @@ ${S}
2118
2118
  .stx-drawer-backdrop[data-stx-drawer-open]{display:block!important;opacity:1}
2119
2119
  .stx-drawer-backdrop[data-stx-drawer-open] .stx-drawer-panel{transform:translateX(0)}
2120
2120
  </style>`}}});var Cz={};e(Cz,{preloadIconCollection:()=>WZ,IconBuiltin:()=>KZ});import{existsSync as JT,readFileSync as QT}from"fs";function Sz($){try{return $0.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(JT(Y))return Y;return null}function GT($){if(k6.has($))return k6.get($);let Z=Sz($);if(!Z)return null;try{let Y=JSON.parse(QT(Z,"utf8"));return k6.set($,Y.icons),Y.icons}catch{return null}}async function KT($){if(k6.has($))return k6.get($);let Z=Sz($);if(!Z)return null;try{let Y=await Bun.file(Z).json();return k6.set($,Y.icons),Y.icons}catch{return null}}function F$($,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}async function WZ($="lucide"){await KT($)}var k6,KZ;var UZ=D(()=>{k6=new Map;KZ={name:"Icon",aliases:["icon","stx-icon"],render($,Z,Y){let X=F$($,"name")??F$($,"icon");if(!X)return"<!-- Icon: missing name/icon prop -->";let J="lucide",Q=X;if(X.includes(":")){let L=X.split(":");J=L[0],Q=L[1]}let G=u1(F$($,"size")||"24"),K=u1(F$($,"color")||"currentColor"),W=u1(F$($,"class")||""),U=u1(F$($,"style")||""),_=k6.get(J)??GT(J);if(!_)return`<!-- Icon: collection "${J}" not loaded -->`;let z=_[Q];if(!z)return`<!-- Icon: "${Q}" not found in ${J} -->`;let B=z.width||24,q=z.height||24,j=`0 0 ${B} ${q}`,H=z.body;if(K!=="currentColor")H=H.replace(/currentColor/g,K);let O=W?` class="${W}"`:"",V=U?` style="${U}"`:"";return`<svg xmlns="http://www.w3.org/2000/svg" width="${G}" height="${G}" viewBox="${j}" fill="none"${O}${V}>${H}</svg>`}}});function bz($,...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 Pz($,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 F9;var A9=D(()=>{F9={name:"Suspense",aliases:["suspense"],render($,Z,Y){let X=Pz(Z,"fallback"),J=X.rest,Q=Pz(J,"error"),G=Q.rest,K=X.region??bz($,"fallback")??'<div class="stx-suspense-loading">Loading\u2026</div>',W=Q.region??bz($,"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>${W}</div><div data-stx-suspense-content hidden>${G}</div></div>`}}});function _Z($,...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 N9;var w9=D(()=>{N9={name:"TransitionGroup",aliases:["transition-group"],render($,Z,Y){let X=(_Z($,"name")||"v").replace(/["'<>]/g,""),J=(_Z($,"tag")||"div").replace(/[^a-z0-9-]/gi,"")||"div",Q=_Z($,"class"),G=_Z($,"id"),K=[`data-stx-transition-group="${X}"`,Q?`class="${Q}"`:"",G?`id="${G}"`:""].filter(Boolean).join(" ");return`<${J} ${K}>${Z}</${J}>`}}});function yz(){L1.registerBuiltin(Z9),L1.registerBuiltin(G9),L1.registerBuiltin(W9),L1.registerBuiltin(z9),L1.registerBuiltin(q9),L1.registerBuiltin(H9),L1.registerBuiltin(L9),L1.registerBuiltin(KZ),L1.registerBuiltin(F9),L1.registerBuiltin(N9)}var R9=D(()=>{Y9();K9();U9();B9();j9();O9();V9();UZ();A9();w9();$9();Y9();K9();U9();B9();j9();O9();V9();UZ();A9();w9()});function xz($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1-$2").toLowerCase()}function vz($,Z,Y){let X=[],J=0;while(J<$.length){let Q=$.indexOf("<",J);if(Q===-1)break;let K=$.slice(Q+1).match(new RegExp(`^(${Z.source})`));if(!K){J=Q+1;continue}let W=K[1];if(Y&&Y.has(W.toLowerCase())){let H=Q+1+W.length;while(H<$.length&&$[H]!==">")H++;J=H+1;continue}let U=Q+1+W.length,_=null,z=U,B=-1,q=!1;while(U<$.length){let H=$[U];if(_){if(H==="\\"&&U+1<$.length){U+=2;continue}if(H===_)_=null;U++;continue}if(H==='"'||H==="'"){_=H,U++;continue}if(H==="/"&&U+1<$.length&&$[U+1]===">"){B=U+2,q=!0;break}if(H===">"){B=U+1;break}U++}if(B===-1){J=Q+1;continue}let j=$.slice(z,q?B-2:B-1).trim();if(q)X.push({fullMatch:$.slice(Q,B),tagName:W,attributes:j,content:"",startIndex:Q,endIndex:B,isSelfClosing:!0}),J=B;else{let H=`<${W}`,O=`</${W}>`,V=1,L=B,F=-1;while(V>0&&L<$.length){let w=$.indexOf(H,L),R=$.indexOf(O,L);if(R===-1)break;if(w!==-1&&w<R){let T=$[w+H.length];if(T===" "||T===">"||T==="/"||T===`
2121
- `||T==="\t")V++;L=w+H.length}else{if(V--,V===0){F=R;break}L=R+O.length}}if(F===-1){J=B;continue}let A=$.slice(B,F),N=F+O.length;X.push({fullMatch:$.slice(Q,N),tagName:W,attributes:j,content:A,startIndex:Q,endIndex:N,isSelfClosing:!1}),J=N}}return X}function fz($,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 gz=D(()=>{p0();A0();E3()});var lz={};e(lz,{processESImports:()=>cz,processComponents:()=>BZ});import zZ from"fs";import M1 from"path";function UT($,Z,Y){let X={static:{},serverDynamic:{},clientReactive:{},events:{}},J=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"]),Q=(G)=>{if(!G.includes("-")||G.startsWith("@")||G.startsWith(":")||G.startsWith("x-")||G.startsWith("__"))return G;return G.replace(/-([a-z0-9])/g,(K,W)=>W.toUpperCase())};for(let[G,K]of Object.entries($)){let W=G.startsWith("x-")&&!J.has(G)&&!G.startsWith("x-bind:")&&!G.startsWith("x-on:")?`:${G.slice(2)}`:G;if(W.startsWith("@")){X.events[W]=K;continue}if(W.startsWith("__stx_")){let U=Q(W.slice(6));X.serverDynamic[U]=fz(K,Y);continue}if(W.startsWith(":")){let U=Q(W.slice(1)),_=K==="true"?U:K;try{if(!N0(_)){if(Y.debug)console.error(`Unsafe expression in :${U} binding: ${_}`);X.clientReactive[U]=_;continue}let z=Object.keys(Z),q=w0(_,z)(...Object.values(Z));if(q===void 0){let j=_.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((V)=>!H.has(V)&&!z.includes(V))){X.clientReactive[U]=_;continue}}X.serverDynamic[U]=q}catch{X.clientReactive[U]=_}continue}if(typeof K==="string"&&K.includes("{{")&&K.includes("}}")){let U=K.match(/^\{\{\s*([\s\S]+?)\s*\}\}$/);if(U)try{let _=U[1];if(N0(_)){let B=w0(_,Object.keys(Z))(...Object.values(Z));X.static[W]=B!=null?String(B):""}else{if(Y.debug)console.error(`Unsafe expression in ${W}: ${_}`);X.static[W]=K}}catch(_){if(Y.debug)console.error(`Error evaluating expression for ${W}:`,_);X.static[W]=K}else{let _=K,z=/\{\{\s*([\s\S]+?)\s*\}\}/g,B;while((B=z.exec(K))!==null)try{let q=B[1];if(!N0(q)){if(Y.debug)console.error(`Unsafe expression in ${W}: ${q}`);continue}let H=w0(q,Object.keys(Z))(...Object.values(Z));_=_.replace(B[0],String(H??""))}catch(q){if(Y.debug)console.error(`Error evaluating expression in ${W}:`,q)}X.static[W]=_}continue}X.static[W]=K}return X}function _T($){let Z={},Y=0,X=$.length;while(Y<X){while(Y<X&&/\s/.test($[Y]))Y++;if(Y>=X)break;let J="";while(Y<X&&!/[\s=]/.test($[Y]))J+=$[Y],Y++;if(!J)break;while(Y<X&&/\s/.test($[Y]))Y++;if(Y<X&&$[Y]==="="){Y++;while(Y<X&&/\s/.test($[Y]))Y++;let Q="";if(Y<X&&($[Y]==='"'||$[Y]==="'")){let G=$[Y];Y++;while(Y<X){let K=$[Y];if(K==="\\"&&Y+1<X){Y++,Q+=$[Y],Y++;continue}if(K===G){Y++;break}Q+=K,Y++}}else while(Y<X&&!/\s/.test($[Y]))Q+=$[Y],Y++;Z[J]=Q}else Z[J]="true"}return Z}function dz($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function zT($){let Z=new Set,Y=/<([A-Z][A-Za-z0-9]*|stx-[a-z0-9-]+)\b[^>]*>/g,X;while((X=Y.exec($))!==null){let J=X[1];if(L1.isBuiltin(J))Z.add(J)}return[...Z].sort()}function BT($){let Z=uz.get($);if(Z)return Z;let Y=new Map,X=[M1.join($,"src"),M1.join($,"dist"),$];function J(Q,G){if(G>6)return;let K;try{K=zZ.readdirSync(Q,{withFileTypes:!0})}catch{return}for(let W of K){let U=M1.join(Q,W.name);if(W.isDirectory()){if(W.name==="node_modules"||W.name.startsWith("."))continue;J(U,G+1)}else if(W.isFile()&&W.name.endsWith(".stx")){let _=W.name.slice(0,-4);if(!Y.has(_))Y.set(_,U);let z=_.toLowerCase();if(!Y.has(z))Y.set(z,U);let B=_.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(!Y.has(B))Y.set(B,U)}}}for(let Q of X)if(J(Q,0),Y.size>0)break;return uz.set($,Y),Y}function qT($,Z){if($.startsWith(".")||$.startsWith("/"))return null;let Y=Z;while(!0){let X=M1.join(Y,"node_modules",$);try{if(zZ.statSync(X).isDirectory())return X}catch{}let J=M1.dirname(Y);if(J===Y)return null;Y=J}}async function cz($,Z,Y,X,J){if(!$.includes("import"))return $;if(!Z.__importedComponents)Z.__importedComponents=new Map;let Q=Z.__importedComponents,G=M1.dirname(Y),K=$,W=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi;return K=K.replace(W,(U,_,z)=>{let B=/import\s+(?:(\{[^}]*\})|([A-Za-z_$][\w$]*))\s+from\s+['"]([^'"]+)['"]\s*;?\s*\n?/g,q=z,j,H=[];while((j=B.exec(z))!==null){let[O,V,L,F]=j,A=null,N=null;if(F.startsWith(".")||F.startsWith("/")){let T=M1.resolve(G,F);if(T.endsWith(".stx"))N=T;else{let E=`${T}.stx`;try{if(zZ.statSync(E).isFile())N=E}catch{try{if(zZ.statSync(T).isDirectory())A=T}catch{}}}}else A=qT(F,G);if(!A&&!N)continue;let w=!1,R=(T,E)=>{Q.set(T,E),Q.set(T.toLowerCase(),E);let I=T.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();Q.set(I,E),J.add(E)};if(L&&N)R(L,N),w=!0;else if(V){let T=V.slice(1,-1).split(",").map((I)=>I.trim()).filter(Boolean).map((I)=>{let k=I.match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);if(k)return{source:k[1],local:k[2]};return{source:I,local:I}}),E=A?BT(A):null;for(let{source:I,local:k}of T){let S=null;if(N)S=N;else if(E)S=E.get(I)??E.get(I.toLowerCase())??E.get(I.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase())??null;if(S)R(k,S),w=!0}}if(w)H.push({start:j.index,end:j.index+O.length})}if(H.length===0)return U;for(let O=H.length-1;O>=0;O--)q=q.slice(0,H[O].start)+q.slice(H[O].end);return`<script${_}>${q}</script>`}),K}async function jT($,Z,Y,X,J){let Q=$;if(!Z.__importedComponents)Z.__importedComponents=new Map;let G=Z.__importedComponents,K=/@import\s*\(\s*([^)]+)\s*\)/g,W;while((W=K.exec(Q))!==null){let[U,_]=W,z=_.split(",").map((B)=>B.trim().replace(/^['"]|['"]$/g,"")).filter((B)=>B.length>0);for(let B of z){let q=B.split("/"),H=q[q.length-1].replace(/\.stx$/,""),O=H.includes("-")?H.split("-").map((F)=>F.charAt(0).toUpperCase()+F.slice(1)).join(""):H.charAt(0).toUpperCase()+H.slice(1),V=null,L=[M1.resolve(M1.dirname(Y),`${B}.stx`),M1.resolve(M1.dirname(Y),B),M1.resolve(X.componentsDir||"components",`${B}.stx`),M1.resolve(X.componentsDir||"components",B),B.endsWith(".stx")?B:`${B}.stx`];for(let F of L)try{if(await Bun.file(F).exists()){V=F;break}}catch{}if(V){G.set(O,V),G.set(H,V),G.set(H.toLowerCase(),V);let F=O.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(G.set(F,V),J.add(V),X.debug)console.log(`Imported component: ${O} -> ${V}`)}else if(X.debug)console.warn(`Could not resolve imported component: ${B}`)}Q=Q.replace(U,""),K.lastIndex=0}return Q}async function HT($,Z,Y,X,J){let Q=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,W=/@component\s*\(/g,U;while((U=W.exec(Q))!==null){let _=U.index,z=_+U[0].length-1,B=1,q=z+1;while(q<Q.length&&B>0){if(Q[q]==="(")B++;else if(Q[q]===")"){if(B--,B===0)break}q++}if(B!==0)break;let j=Q.substring(z+1,q),H=q+1,O=j.match(/^\s*['"]([^'"]+)['"]/);if(!O){W.lastIndex=0;continue}let V=O[1],L,F=j.slice(O[0].length),A=F.match(/^\s*,\s*/);if(A)L=F.slice(A[0].length).trim();let N={};if(L)try{N=d0(L,Z)}catch(k){let S=k instanceof Error?k.message:String(k);Q=Q.replace(Q.substring(_,H),`[Error parsing component props: ${S}]`);continue}let w="",R=H,E=Q.substring(H).match(/^([\s\S]*?)@endcomponent/);if(E)w=E[1].trim(),R=H+E[0].length;let I=await e1(V,N,w,G,Z,Y,X,K,J);Q=Q.substring(0,_)+I+Q.substring(R),W.lastIndex=0}return Q}async function OT($,Z,Y,X,J){if(!$)return $;let Q=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,W=oX(Q);return Q=W.output,Q=await B(Q,/[a-z][a-z0-9]*-[a-z0-9-]*/,!1),Q=await B(Q,/[A-Z][a-zA-Z0-9]*/,!0),Q=await B(Q,/[a-z][a-z0-9]*/,!1,WT),Q=tX(Q,W.scripts),Q;async function B(q,j,H,O){if(!q)return q;let V=q,L=vz(V,j,O);for(let F=L.length-1;F>=0;F--){let A=L[F],N=H?xz(A.tagName):A.tagName,w=_T(A.attributes),R=UT(w,Z,X),T=L1.getBuiltin(A.tagName),E=T?await T9(N,G,Z,Y,X):!1;if(T&&!E){let y={context:Z,filePath:Y,options:X,dependencies:J},P=T.render(R,A.content,y);if(Object.keys(R.clientReactive).length>0)P=mz(P,R.clientReactive);if(Object.keys(R.events).length>0){let C=Object.entries(R.events).map(([g,s])=>`${g}="${dz(s)}"`).join(" ");P=P.replace(/^(\s*<[a-zA-Z][a-zA-Z0-9-]*)/,`$1 ${C}`)}V=V.substring(0,A.startIndex)+P+V.substring(A.endIndex);continue}let I={};for(let[y,P]of Object.entries(R.static))I[y]=P;for(let[y,P]of Object.entries(R.serverDynamic))I[y]=P;let S=await e1(N,I,A.content,G,Z,Y,X,K,J);if(Object.keys(R.clientReactive).length>0)S=mz(S,R.clientReactive);if(Object.keys(R.events).length>0){let y=S.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(y){let P=Object.entries(R.events).map(([g,s])=>`${g}="${dz(s)}"`).join(" "),C=y[1].length+y[2].length;S=S.substring(0,C)+" "+P+S.substring(C)}}V=V.substring(0,A.startIndex)+S+V.substring(A.endIndex)}return V}}function mz($,Z){let Y=$.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(!Y)return $;let X=Object.entries(Z).map(([Q,G])=>`:${Q}="${G.replace(/"/g,"&quot;")}"`).join(" "),J=Y[1].length+Y[2].length;return $.substring(0,J)+" "+X+$.substring(J)}async function BZ($,Z,Y,X,J){if(!hz)yz(),hz=!0;let Q=await cz($,Z,Y,X,J);Q=await jT(Q,Z,Y,X,J),Q=await HT(Q,Z,Y,X,J);for(let G=0;G<3;G++){let K=Q;if(Q=await OT(Q,Z,Y,X,J),Q===K)break}if(X.debug){let G=zT(Q);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 Q}var hz=!1,WT,uz;var M9=D(()=>{$9();R9();gz();A0();p0();WT=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"]);uz=new Map});var jZ={};e(jZ,{stripTypeScript:()=>az,hasVariables:()=>D9,extractVariables:()=>E0,extractScriptFromTemplate:()=>I9,convertToCommonJS:()=>qZ});import A$ from"path";import _7 from"process";function LT($){let Z=[],Y=0,X=$.split(`
2121
+ `||T==="\t")V++;L=w+H.length}else{if(V--,V===0){F=R;break}L=R+O.length}}if(F===-1){J=B;continue}let A=$.slice(B,F),N=F+O.length;X.push({fullMatch:$.slice(Q,N),tagName:W,attributes:j,content:A,startIndex:Q,endIndex:N,isSelfClosing:!1}),J=N}}return X}function fz($,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 gz=D(()=>{p0();A0();E3()});var lz={};e(lz,{processESImports:()=>cz,processComponents:()=>BZ});import zZ from"fs";import M1 from"path";function UT($,Z,Y){let X={static:{},serverDynamic:{},clientReactive:{},events:{}},J=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"]),Q=(G)=>{if(!G.includes("-")||G.startsWith("@")||G.startsWith(":")||G.startsWith("x-")||G.startsWith("__"))return G;return G.replace(/-([a-z0-9])/g,(K,W)=>W.toUpperCase())};for(let[G,K]of Object.entries($)){let W=G.startsWith("x-")&&!J.has(G)&&!G.startsWith("x-bind:")&&!G.startsWith("x-on:")?`:${G.slice(2)}`:G;if(W.startsWith("@")){X.events[W]=K;continue}if(W.startsWith("__stx_")){let U=Q(W.slice(6));X.serverDynamic[U]=fz(K,Y);continue}if(W.startsWith(":")){let U=Q(W.slice(1)),_=K==="true"?U:K;try{if(!N0(_)){if(Y.debug)console.error(`Unsafe expression in :${U} binding: ${_}`);X.clientReactive[U]=_;continue}let z=Object.keys(Z),q=w0(_,z)(...Object.values(Z));if(q===void 0){let j=_.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((V)=>!H.has(V)&&!z.includes(V))){X.clientReactive[U]=_;continue}}X.serverDynamic[U]=q}catch{X.clientReactive[U]=_}continue}if(typeof K==="string"&&K.includes("{{")&&K.includes("}}")){let U=K.match(/^\{\{\s*([\s\S]+?)\s*\}\}$/);if(U)try{let _=U[1];if(N0(_)){let B=w0(_,Object.keys(Z))(...Object.values(Z));X.static[W]=B!=null?String(B):""}else{if(Y.debug)console.error(`Unsafe expression in ${W}: ${_}`);X.static[W]=K}}catch(_){if(Y.debug)console.error(`Error evaluating expression for ${W}:`,_);X.static[W]=K}else{let _=K,z=/\{\{\s*([\s\S]+?)\s*\}\}/g,B;while((B=z.exec(K))!==null)try{let q=B[1];if(!N0(q)){if(Y.debug)console.error(`Unsafe expression in ${W}: ${q}`);continue}let H=w0(q,Object.keys(Z))(...Object.values(Z));_=_.replace(B[0],String(H??""))}catch(q){if(Y.debug)console.error(`Error evaluating expression in ${W}:`,q)}X.static[W]=_}continue}X.static[W]=K}return X}function _T($){let Z={},Y=0,X=$.length;while(Y<X){while(Y<X&&/\s/.test($[Y]))Y++;if(Y>=X)break;let J="";while(Y<X&&!/[\s=]/.test($[Y]))J+=$[Y],Y++;if(!J)break;while(Y<X&&/\s/.test($[Y]))Y++;if(Y<X&&$[Y]==="="){Y++;while(Y<X&&/\s/.test($[Y]))Y++;let Q="";if(Y<X&&($[Y]==='"'||$[Y]==="'")){let G=$[Y];Y++;while(Y<X){let K=$[Y];if(K==="\\"&&Y+1<X){Y++,Q+=$[Y],Y++;continue}if(K===G){Y++;break}Q+=K,Y++}}else while(Y<X&&!/\s/.test($[Y]))Q+=$[Y],Y++;Z[J]=Q}else Z[J]="true"}return Z}function dz($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function zT($){let Z=new Set,Y=/<([A-Z][A-Za-z0-9]*|stx-[a-z0-9-]+)\b[^>]*>/g,X;while((X=Y.exec($))!==null){let J=X[1];if(L1.isBuiltin(J))Z.add(J)}return[...Z].sort()}function BT($){let Z=uz.get($);if(Z)return Z;let Y=new Map,X=[M1.join($,"src"),M1.join($,"dist"),$];function J(Q,G){if(G>6)return;let K;try{K=zZ.readdirSync(Q,{withFileTypes:!0})}catch{return}for(let W of K){let U=M1.join(Q,W.name);if(W.isDirectory()){if(W.name==="node_modules"||W.name.startsWith("."))continue;J(U,G+1)}else if(W.isFile()&&W.name.endsWith(".stx")){let _=W.name.slice(0,-4);if(!Y.has(_))Y.set(_,U);let z=_.toLowerCase();if(!Y.has(z))Y.set(z,U);let B=_.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(!Y.has(B))Y.set(B,U)}}}for(let Q of X)if(J(Q,0),Y.size>0)break;return uz.set($,Y),Y}function qT($,Z){if($.startsWith(".")||$.startsWith("/"))return null;let Y=Z;while(!0){let X=M1.join(Y,"node_modules",$);try{if(zZ.statSync(X).isDirectory())return X}catch{}let J=M1.dirname(Y);if(J===Y)return null;Y=J}}async function cz($,Z,Y,X,J){if(!$.includes("import"))return $;if(!Z.__importedComponents)Z.__importedComponents=new Map;let Q=Z.__importedComponents,G=M1.dirname(Y),K=$,W=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi;return K=K.replace(W,(U,_,z)=>{let B=/import\s+(?:(\{[^}]*\})|([A-Za-z_$][\w$]*))\s+from\s+['"]([^'"]+)['"]\s*;?\s*\n?/g,q=z,j,H=[];while((j=B.exec(z))!==null){let[O,V,L,F]=j,A=null,N=null;if(F.startsWith(".")||F.startsWith("/")){let T=M1.resolve(G,F);if(T.endsWith(".stx"))N=T;else{let E=`${T}.stx`;try{if(zZ.statSync(E).isFile())N=E}catch{try{if(zZ.statSync(T).isDirectory())A=T}catch{}}}}else A=qT(F,G);if(!A&&!N)continue;let w=!1,R=(T,E)=>{Q.set(T,E),Q.set(T.toLowerCase(),E);let I=T.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();Q.set(I,E),J.add(E)};if(L&&N)R(L,N),w=!0;else if(V){let T=V.slice(1,-1).split(",").map((I)=>I.trim()).filter(Boolean).map((I)=>{let k=I.match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);if(k)return{source:k[1],local:k[2]};return{source:I,local:I}}),E=A?BT(A):null;for(let{source:I,local:k}of T){let S=null;if(N)S=N;else if(E)S=E.get(I)??E.get(I.toLowerCase())??E.get(I.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase())??null;if(S)R(k,S),w=!0}}if(w)H.push({start:j.index,end:j.index+O.length})}if(H.length===0)return U;for(let O=H.length-1;O>=0;O--)q=q.slice(0,H[O].start)+q.slice(H[O].end);return`<script${_}>${q}</script>`}),K}async function jT($,Z,Y,X,J){let Q=$;if(!Z.__importedComponents)Z.__importedComponents=new Map;let G=Z.__importedComponents,K=/@import\s*\(\s*([^)]+)\s*\)/g,W;while((W=K.exec(Q))!==null){let[U,_]=W,z=_.split(",").map((B)=>B.trim().replace(/^['"]|['"]$/g,"")).filter((B)=>B.length>0);for(let B of z){let q=B.split("/"),H=q[q.length-1].replace(/\.stx$/,""),O=H.includes("-")?H.split("-").map((F)=>F.charAt(0).toUpperCase()+F.slice(1)).join(""):H.charAt(0).toUpperCase()+H.slice(1),V=null,L=[M1.resolve(M1.dirname(Y),`${B}.stx`),M1.resolve(M1.dirname(Y),B),M1.resolve(X.componentsDir||"components",`${B}.stx`),M1.resolve(X.componentsDir||"components",B),B.endsWith(".stx")?B:`${B}.stx`];for(let F of L)try{if(await Bun.file(F).exists()){V=F;break}}catch{}if(V){G.set(O,V),G.set(H,V),G.set(H.toLowerCase(),V);let F=O.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(G.set(F,V),J.add(V),X.debug)console.log(`Imported component: ${O} -> ${V}`)}else if(X.debug)console.warn(`Could not resolve imported component: ${B}`)}Q=Q.replace(U,""),K.lastIndex=0}return Q}async function HT($,Z,Y,X,J){let Q=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,W=/@component\s*\(/g,U;while((U=W.exec(Q))!==null){let _=U.index,z=_+U[0].length-1,B=1,q=z+1;while(q<Q.length&&B>0){if(Q[q]==="(")B++;else if(Q[q]===")"){if(B--,B===0)break}q++}if(B!==0)break;let j=Q.substring(z+1,q),H=q+1,O=j.match(/^\s*['"]([^'"]+)['"]/);if(!O){W.lastIndex=0;continue}let V=O[1],L,F=j.slice(O[0].length),A=F.match(/^\s*,\s*/);if(A)L=F.slice(A[0].length).trim();let N={};if(L)try{N=d0(L,Z)}catch(k){let S=k instanceof Error?k.message:String(k);Q=Q.replace(Q.substring(_,H),`[Error parsing component props: ${S}]`);continue}let w="",R=H,E=Q.substring(H).match(/^([\s\S]*?)@endcomponent/);if(E)w=E[1].trim(),R=H+E[0].length;let I=await e1(V,N,w,G,Z,Y,X,K,J);Q=Q.substring(0,_)+I+Q.substring(R),W.lastIndex=0}return Q}async function OT($,Z,Y,X,J){if(!$)return $;let Q=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,W=oX(Q);return Q=W.output,Q=await B(Q,/[a-z][a-z0-9]*-[a-z0-9-]*/,!1),Q=await B(Q,/[A-Z][a-zA-Z0-9]*/,!0),Q=await B(Q,/[a-z][a-z0-9]*/,!1,WT),Q=tX(Q,W.scripts),Q;async function B(q,j,H,O){if(!q)return q;let V=q,L=vz(V,j,O);for(let F=L.length-1;F>=0;F--){let A=L[F],N=H?xz(A.tagName):A.tagName,w=_T(A.attributes),R=UT(w,Z,X),T=L1.getBuiltin(A.tagName),E=T?await T9(N,G,Z,Y,X):!1;if(T&&!E){let x={context:Z,filePath:Y,options:X,dependencies:J},P=T.render(R,A.content,x);if(Object.keys(R.clientReactive).length>0)P=mz(P,R.clientReactive);if(Object.keys(R.events).length>0){let C=Object.entries(R.events).map(([g,s])=>`${g}="${dz(s)}"`).join(" ");P=P.replace(/^(\s*<[a-zA-Z][a-zA-Z0-9-]*)/,`$1 ${C}`)}V=V.substring(0,A.startIndex)+P+V.substring(A.endIndex);continue}let I={};for(let[x,P]of Object.entries(R.static))I[x]=P;for(let[x,P]of Object.entries(R.serverDynamic))I[x]=P;let S=await e1(N,I,A.content,G,Z,Y,X,K,J);if(Object.keys(R.clientReactive).length>0)S=mz(S,R.clientReactive);if(Object.keys(R.events).length>0){let x=S.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(x){let P=Object.entries(R.events).map(([g,s])=>`${g}="${dz(s)}"`).join(" "),C=x[1].length+x[2].length;S=S.substring(0,C)+" "+P+S.substring(C)}}V=V.substring(0,A.startIndex)+S+V.substring(A.endIndex)}return V}}function mz($,Z){let Y=$.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(!Y)return $;let X=Object.entries(Z).map(([Q,G])=>`:${Q}="${G.replace(/"/g,"&quot;")}"`).join(" "),J=Y[1].length+Y[2].length;return $.substring(0,J)+" "+X+$.substring(J)}async function BZ($,Z,Y,X,J){if(!hz)yz(),hz=!0;let Q=await cz($,Z,Y,X,J);Q=await jT(Q,Z,Y,X,J),Q=await HT(Q,Z,Y,X,J);for(let G=0;G<3;G++){let K=Q;if(Q=await OT(Q,Z,Y,X,J),Q===K)break}if(X.debug){let G=zT(Q);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 Q}var hz=!1,WT,uz;var M9=D(()=>{$9();R9();gz();A0();p0();WT=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"]);uz=new Map});var jZ={};e(jZ,{stripTypeScript:()=>az,hasVariables:()=>D9,extractVariables:()=>E0,extractScriptFromTemplate:()=>I9,convertToCommonJS:()=>qZ});import A$ from"path";import _7 from"process";function LT($){let Z=[],Y=0,X=$.split(`
2122
2122
  `);for(let J of X){let Q=Y,G=null,K=!1;for(let W=0;W<J.length;W++){let U=J[W];if(K){K=!1;continue}if(U==="\\"){K=!0;continue}if(G){if(U===G)G=null;continue}if(U==="'"||U==='"'||U==="`"){G=U;continue}if(U==="/"&&W+1<J.length&&J[W+1]==="/")break;if(U==="{")Y++;else if(U==="}")Y--}if(Q===0){let W=J.match(/(?:const|let|var)\s+(\w+)\s*=/);if(W)Z.push(W[1]);else if(/^\s*(?:const|let|var)\s+\w+\s*;?\s*$/.test(J)){let U=J.match(/(?:const|let|var)\s+(\w+)/);if(U)Z.push(U[1])}else{let U=J.match(/(?:const|let|var)\s+(\{[^}]+\}|\[[^\]]+\])\s*=/);if(U){let z=U[1].slice(1,-1).split(",").map((B)=>{let q=B.split(":");return(q.length>1?q[1]:q[0]).trim()}).filter((B)=>/^\w+$/.test(B));Z.push(...z)}}}}return[...new Set(Z)]}function az($){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 J=[],Q="",G=0,K=0,W=null;for(let U=0;U<X.length;U++){let _=X[U];if(W){if(Q+=_,_===W)W=null;continue}if(_==='"'||_==="'"||_==="`"){W=_,Q+=_;continue}if(_==="<")G++;else if(_===">"&&G>0)G--;else if(_==="(")K++;else if(_===")")K--;if(_===","&&G===0&&K===0){J.push(Q),Q="";continue}Q+=_}if(Q)J.push(Q);return J.map((U)=>{let _=U.trim(),z=_.startsWith("..."),B=z?_.slice(3):_,q=-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){q=N;break}if(q===-1)return U;let O=B.substring(0,q).trim().replace(/\?$/,""),V=B.substring(q+1),L=-1,F=0;for(let N=0;N<V.length;N++)if(V[N]==="<")F++;else if(V[N]===">")F--;else if(V[N]==="="&&F===0){L=N;break}let A=z?"...":"";if(L!==-1)return`${A}${O} = ${V.substring(L+1).trim()}`;return`${A}${O}`}).join(", ")}Z=Z.replace(/\b(function\s+\w*\s*)\(([^)]*)\)/g,(X,J,Q)=>{if(!Q.includes(":"))return X;return`${J}(${Y(Q)})`});{let X=/\b(function\s+\w*\s*)\(/g,J,Q=[];while((J=X.exec(Z))!==null){let G=J.index+J[0].length-1,K=1,W=G+1,U=0,_=null;while(W<Z.length&&K>0){let q=Z[W];if(_){if(q===_)_=null;W++;continue}if(q==='"'||q==="'"||q==="`"){_=q,W++;continue}if(q==="<")U++;else if(q===">"&&U>0)U--;else if(U===0){if(q==="(")K++;else if(q===")")K--}if(K>0)W++}if(K!==0)continue;let z=Z.substring(G+1,W);if(!z.includes(":"))continue;let B=Y(z);Q.push({start:G+1,end:W,replacement:B})}for(let G=Q.length-1;G>=0;G--){let{start:K,end:W,replacement:U}=Q[G];Z=Z.substring(0,K)+U+Z.substring(W)}}return Z=Z.replace(/\(([^)]*)\)\s*(?::\s*[^=]+)?\s*=>/g,(X,J)=>{if(!J.includes(":"))return X;if(J.includes("{")||J.includes("}"))return X;return`(${J.split(",").map((G)=>{let[K,...W]=G.split("="),U=K.split(":")[0].trim();if(W.length>0)return`${U} = ${W.join("=").trim()}`;return U}).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,`
2123
2123
 
2124
- `),Z}async function E0($,Z,Y,X={}){if(!$.trim())return;let J;try{let x=new Bun.Transpiler({loader:"ts",target:"browser",define:C1()}),u=$.replace(/^\s*import\s+\w+\s+from\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");u=u.replace(/^\s*import\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,""),J=x.transformSync(u)}catch{J=az($)}let Q={exports:{}},G=Q.exports,K=_7.cwd(),W={},U=[...J.matchAll(/require\s*\(\s*['"]([^'"]+)['"]\s*\)/g)||[]].map((x)=>x[1]).filter((x)=>!x.startsWith("node:")&&!x.startsWith(".")&&!["fs","path","os","child_process","crypto","http","https","url","util","stream","events","buffer","net","querystring","zlib","tls"].includes(x));for(let x of U)try{let u=A$.resolve(K,"node_modules",x),l=A$.join(u,"package.json"),h=JSON.parse($0("fs").readFileSync(l,"utf8")),p=h.main||"index.js";if(h.exports){let t=typeof h.exports==="string"?h.exports:h.exports["."];if(typeof t==="string")p=t;else if(t?.bun)p=t.bun;else if(t?.import)p=t.import;else if(t?.default)p=t.default}W[x]=await import(A$.resolve(u,p))}catch{}let _=(x)=>{if(W[x])return W[x];return $0(x)},z=Z.props||{},B=Object.assign((x)=>{if(!x)return z;let u={};for(let[l,h]of Object.entries(x)){let p=z[l];if(p!==void 0)u[l]=p;else if(typeof h==="function")u[l]=h();else u[l]=h}return u},z),q=(x)=>{if(!x)return z;let u={...z};for(let[l,h]of Object.entries(x)){let p=h&&typeof h==="object"&&!Array.isArray(h)?h:{type:h};if(u[l]===void 0&&p.default!==void 0)u[l]=typeof p.default==="function"?p.default():p.default}return u},j=()=>Z.slots||{},H=(x,u)=>{let l={...x};for(let[h,p]of Object.entries(u))if(l[h]===void 0)if(typeof p==="function")l[h]=p();else l[h]=p;return l},O=(x)=>{let u=()=>x;return u.set=(l)=>{},u.update=(l)=>{},u},V=(x)=>{let u,l=!1;return()=>{if(!l)try{u=x(),l=!0}catch{u=void 0}return u}},L=(x)=>{},F=(x)=>x(),A=(x)=>{},N=(x)=>{},w=(x)=>{},R=()=>({params:{},query:{},path:"",name:"",fullPath:"",hash:"",matched:[]}),T=()=>({push:(x)=>{},replace:(x)=>{},back:()=>{},forward:()=>{},go:(x)=>{}}),E=(x)=>{m4(x);let u=Z.__stx_runtime_head||{},l=x||{};Z.__stx_runtime_head={...u,...l.title&&{title:l.title},meta:[...u.meta||[],...l.meta||[]],link:[...u.link||[],...l.link||[]],script:[...u.script||[],...l.script||[]],htmlAttrs:{...u.htmlAttrs||{},...l.htmlAttrs||{}},bodyAttrs:{...u.bodyAttrs||{},...l.bodyAttrs||{}}}},I=(x)=>{X7(x);let u=H$();Z.__stx_runtime_head={...Z.__stx_runtime_head||{},...u.title&&{title:u.title},meta:u.meta?[...u.meta]:[]}},k=(x)=>({value:x}),S=(x)=>x,y=(x)=>({value:typeof x==="function"?x():x}),P=(x,u)=>{},C=(x)=>{},g=(x)=>{},s=(x)=>x?x():Promise.resolve(),m=(x)=>(u,...l)=>{},b=(x)=>{},d=(x,u)=>{},c=(x,u)=>u,r=()=>({value:"light"}),a=()=>({value:!1}),B0={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:{}},Q0=new Proxy(B0,{get(x,u){if(u in x)return x[u];return},set(x,u,l){return x[u]=l,!0}}),M0={getElementById:()=>null,querySelector:()=>null,querySelectorAll:()=>[],createElement:()=>({}),createTextNode:()=>({}),body:{},head:{},documentElement:{},addEventListener:()=>{},removeEventListener:()=>{}},k0=console;try{let x=qZ(J,Y),u=new Set(Object.keys(z)),l=Object.keys(Z).filter((z0)=>!u.has(z0)&&z0!=="props"),h=l.map((z0)=>Z[z0]),p=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"]),t=[],n=[];for(let[z0,x0]of Object.entries(z)){if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(z0))continue;if(p.has(z0))continue;if(new RegExp(`(?:^|[\\s;{])(?:const|let|var|function)\\s+${z0}\\b`).test(x))continue;t.push(z0),n.push(x0)}let S0=LT(x).map((z0)=>`module.exports.${z0} = typeof ${z0} !== 'undefined' ? ${z0} : module.exports.${z0};`).join(`
2125
- `),D0=Z.params??{},q0=[],Y1=[];for(let z0=0;z0<l.length;z0++){if(l[z0]==="params")continue;q0.push(l[z0]),Y1.push(h[z0])}let Z$=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",...t,...q0,`return (async () => {
2126
- ${x}
2124
+ `),Z}async function E0($,Z,Y,X={}){if(!$.trim())return;let J;try{let y=new Bun.Transpiler({loader:"ts",target:"browser",define:C1()}),u=$.replace(/^\s*import\s+\w+\s+from\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");u=u.replace(/^\s*import\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,""),J=y.transformSync(u)}catch{J=az($)}let Q={exports:{}},G=Q.exports,K=_7.cwd(),W={},U=[...J.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 U)try{let u=A$.resolve(K,"node_modules",y),c=A$.join(u,"package.json"),h=JSON.parse($0("fs").readFileSync(c,"utf8")),p=h.main||"index.js";if(h.exports){let t=typeof h.exports==="string"?h.exports:h.exports["."];if(typeof t==="string")p=t;else if(t?.bun)p=t.bun;else if(t?.import)p=t.import;else if(t?.default)p=t.default}W[y]=await import(A$.resolve(u,p))}catch{}let _=(y)=>{if(W[y])return W[y];return $0(y)},z=Z.props||{},B=Object.assign((y)=>{if(!y)return z;let u={};for(let[c,h]of Object.entries(y)){let p=z[c];if(p!==void 0)u[c]=p;else if(typeof h==="function")u[c]=h();else u[c]=h}return u},z),q=(y)=>{if(!y)return z;let u={...z};for(let[c,h]of Object.entries(y)){let p=h&&typeof h==="object"&&!Array.isArray(h)?h:{type:h};if(u[c]===void 0&&p.default!==void 0)u[c]=typeof p.default==="function"?p.default():p.default}return u},j=()=>Z.slots||{},H=(y,u)=>{let c={...y};for(let[h,p]of Object.entries(u))if(c[h]===void 0)if(typeof p==="function")c[h]=p();else c[h]=p;return c},O=(y)=>{let u=()=>y;return u.set=(c)=>{},u.update=(c)=>{},u},V=(y)=>{let u,c=!1;return()=>{if(!c)try{u=y(),c=!0}catch{u=void 0}return u}},L=(y)=>{},F=(y)=>y(),A=(y)=>{},N=(y)=>{},w=(y)=>{},R=()=>{let y=Z.__stxServeContext,u=Z.__stxServeSearch??y?.search??"",c=y?.path??"";return{params:Z.params??{},query:Object.fromEntries(new URLSearchParams(u)),path:c,name:"",fullPath:c+u,hash:"",matched:[]}},T=()=>({push:(y)=>{},replace:(y)=>{},back:()=>{},forward:()=>{},go:(y)=>{}}),E=(y)=>{m4(y);let u=Z.__stx_runtime_head||{},c=y||{};Z.__stx_runtime_head={...u,...c.title&&{title:c.title},meta:[...u.meta||[],...c.meta||[]],link:[...u.link||[],...c.link||[]],script:[...u.script||[],...c.script||[]],htmlAttrs:{...u.htmlAttrs||{},...c.htmlAttrs||{}},bodyAttrs:{...u.bodyAttrs||{},...c.bodyAttrs||{}}}},I=(y)=>{X7(y);let u=H$();Z.__stx_runtime_head={...Z.__stx_runtime_head||{},...u.title&&{title:u.title},meta:u.meta?[...u.meta]:[]}},k=(y)=>({value:y}),S=(y)=>y,x=(y)=>({value:typeof y==="function"?y():y}),P=(y,u)=>{},C=(y)=>{},g=(y)=>{},s=(y)=>y?y():Promise.resolve(),m=(y)=>(u,...c)=>{},b=(y)=>{},d=(y,u)=>{},l=(y,u)=>u,r=()=>({value:"light"}),a=()=>({value:!1}),B0={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:{}},Q0=new Proxy(B0,{get(y,u){if(u in y)return y[u];return},set(y,u,c){return y[u]=c,!0}}),M0={getElementById:()=>null,querySelector:()=>null,querySelectorAll:()=>[],createElement:()=>({}),createTextNode:()=>({}),body:{},head:{},documentElement:{},addEventListener:()=>{},removeEventListener:()=>{}},k0=console;try{let y=qZ(J,Y),u=new Set(Object.keys(z)),c=Object.keys(Z).filter((z0)=>!u.has(z0)&&z0!=="props"),h=c.map((z0)=>Z[z0]),p=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"]),t=[],n=[];for(let[z0,x0]of Object.entries(z)){if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(z0))continue;if(p.has(z0))continue;if(new RegExp(`(?:^|[\\s;{])(?:const|let|var|function)\\s+${z0}\\b`).test(y))continue;t.push(z0),n.push(x0)}let S0=LT(y).map((z0)=>`module.exports.${z0} = typeof ${z0} !== 'undefined' ? ${z0} : module.exports.${z0};`).join(`
2125
+ `),D0=Z.params??{},q0=[],Y1=[];for(let z0=0;z0<c.length;z0++){if(c[z0]==="params")continue;q0.push(c[z0]),Y1.push(h[z0])}let Z$=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",...t,...q0,`return (async () => {
2126
+ ${y}
2127
2127
  ${S0}
2128
2128
  return module.exports
2129
- })()`)(Q,G,_,z,B,q,H,O,V,L,F,A,N,w,R,T,E,I,k,S,y,P,C,g,s,m,b,j,d,c,r,a,Q0,M0,k0,B0.confirm,B0.alert,B0.fetch,D0,...n,...Y1);if(X.preserveExisting){for(let[z0,x0]of Object.entries(Z$))if(!(z0 in Z)||Z[z0]===void 0)Z[z0]=x0}else Object.assign(Z,Z$);for(let[z0,x0]of Object.entries(z))if(!(z0 in Z))Z[z0]=x0}catch(x){if(_7.env.STX_DEBUG){let u=x instanceof Error?x.message:String(x);console.warn(`[stx] server <script> did not execute in ${Y??"<unknown>"} \u2014 falling back to static extraction. Cause: ${u}`)}try{await wT(J,Z,Y)}catch(u){if(_7.env.STX_DEBUG){let l=u instanceof Error?u.message:String(u);console.warn(`[stx] fallback extraction also failed in ${Y??"<unknown>"}: ${l}`)}}}}function qZ($,Z){let Y=Z?A$.dirname(Z):_7.cwd(),X=$.split(`
2129
+ })()`)(Q,G,_,z,B,q,H,O,V,L,F,A,N,w,R,T,E,I,k,S,x,P,C,g,s,m,b,j,d,l,r,a,Q0,M0,k0,B0.confirm,B0.alert,B0.fetch,D0,...n,...Y1);if(X.preserveExisting){for(let[z0,x0]of Object.entries(Z$))if(!(z0 in Z)||Z[z0]===void 0)Z[z0]=x0}else Object.assign(Z,Z$);for(let[z0,x0]of Object.entries(z))if(!(z0 in Z))Z[z0]=x0}catch(y){if(_7.env.STX_DEBUG){let u=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: ${u}`)}try{await wT(J,Z,Y)}catch(u){if(_7.env.STX_DEBUG){let c=u instanceof Error?u.message:String(u);console.warn(`[stx] fallback extraction also failed in ${Y??"<unknown>"}: ${c}`)}}}}function qZ($,Z){let Y=Z?A$.dirname(Z):_7.cwd(),X=$.split(`
2130
2130
  `),J=[],Q=0;while(Q<X.length){let G=X[Q].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(;Q<X.length;Q++){for(let W of X[Q])if(W==="{")K++;else if(W==="}")K--;if(K<=0)break}}Q++;continue}if(G.startsWith("definePageMeta(")){let K=0,W=!1;for(let U=Q;U<X.length&&!W;U++){let _=null,z=!1,B=X[U];for(let q=0;q<B.length;q++){let j=B[q];if(z){z=!1;continue}if(j==="\\"){z=!0;continue}if(_){if(j===_)_=null;continue}if(j==='"'||j==="'"||j==="`"){_=j;continue}if(j==="(")K++;else if(j===")"){if(K--,K===0){Q=U+1,W=!0;break}}}}if(!W)Q=X.length;continue}if(G.startsWith("import ")){let K=G.match(/^import\s+(\w+)\s+from\s+['"](.+)['"]/),W=G.match(/^import\s+\{([^}]+)\}\s+from\s+['"](.+)['"]/),U=G.match(/^import\s+['"](.+)['"]/),_=(z)=>{if(z.startsWith("."))return A$.resolve(Y,z);return z};if(K){let[,z,B]=K,q=_(B);J.push(`const ${z} = await import('${q}')`),J.push(`module.exports.${z} = ${z};`)}else if(W){let[,z,B]=W,q=z.trim(),j=_(B);J.push(`const { ${q} } = await import('${j}')`);for(let H of q.split(",")){let O=H.trim().split(/\s+as\s+/).pop()?.trim();if(O)J.push(`module.exports.${O} = ${O};`)}}else if(U){let z=_(U[1]);J.push(`await import('${z}')`)}else J.push(G);Q++;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("="))J.push(X[Q]),Q++;else if(G.startsWith("export const ")||G.startsWith("export let ")||G.startsWith("export var ")){let K=pz(X,Q),{type:W,name:U,value:_}=K;J.push(`${W} ${U} = ${_};`),J.push(`module.exports.${U} = ${U};`),Q=K.nextIndex}else if(G.startsWith("export function ")||G.startsWith("export async function ")){let K=E9(X,Q);J.push(K.functionCode),J.push(`module.exports.${K.name} = ${K.name};`),Q=K.nextIndex}else if(G.startsWith("const ")||G.startsWith("let ")||G.startsWith("var ")){let K=pz(X,Q),{type:W,name:U,value:_}=K;J.push(`${W} ${U} = ${_};`),J.push(`module.exports.${U} = ${U};`),Q=K.nextIndex}else if(G.startsWith("function ")||G.startsWith("async function ")){let K=E9(X,Q);J.push(K.functionCode),J.push(`module.exports.${K.name} = ${K.name};`),Q=K.nextIndex}else if(G.startsWith("export default function ")||G.startsWith("export default async function ")){let K=X[Q].replace(/^(\s*)export\s+default\s+/,"$1"),W=[...X];W[Q]=K;let U=E9(W,Q);if(J.push(U.functionCode),U.name)J.push(`module.exports.default = ${U.name};`);Q=U.nextIndex}else if(G.startsWith("export default ")){let K=G.replace(/^export\s+default\s+/,"").replace(/;$/,"");J.push(`module.exports.default = ${K};`),Q++}else if(G.startsWith("class ")||G.startsWith("export class ")){let K=G.match(/(?:export\s+)?class\s+(\w+)/);if(K){let W=K[1],U=X[Q].replace(/^export\s+/,""),_=0,z=Q;for(;z<X.length;z++){let B=X[z];for(let q of B)if(q==="{")_++;else if(q==="}")_--;if(z>Q)U+=`
2131
2131
  `+B;if(_<=0&&z>=Q)break}J.push(U),J.push(`module.exports.${W} = ${W};`),Q=z+1}else J.push(G),Q++}else if(G.includes("module.exports"))J.push(G),Q++;else if(G.trim()&&!G.startsWith("//"))J.push(G),Q++;else Q++}return VT(J.join(`
2132
2132
  `),Y)}function VT($,Z){let Y=$.length,X="",J=0,Q=null,G=!1,K=!1,W=0;while(J<Y){let U=$[J],_=$[J+1];if(G){if(X+=U,U===`
@@ -2136,7 +2136,7 @@ ${N}`,nextIndex:L}}}}throw Error(`Failed to parse variable declaration: ${Y}`)}l
2136
2136
  ${$[W]}`,W++;else break}return K=K.trim().replace(/;$/,""),{type:J,name:Q,value:K,nextIndex:W}}function E9($,Z){let Y=$[Z].trim(),X=Y.match(/^(?:export\s+)?(?:async\s+)?function\s+(\w+)/);if(!X)throw Error(`Failed to parse function declaration: ${Y}`);let[,J]=X,Q=Y.replace(/^export\s+/,""),G=Z;if(AT(Y)){let K=NT($,Z,Q);Q=K.functionCode,G=K.nextIndex}else G=Z+1;return{name:J,functionCode:Q,nextIndex:G}}function iz($){let Z=$.trim();if(Z.startsWith("{"))return u0(Z,"{","}",0)===-1;if(Z.startsWith("["))return u0(Z,"[","]",0)===-1;return!tz(Z)}function tz($){let Z={paren:0,bracket:0,brace:0},Y=null,X=0;for(let J=0;J<$.length;J++){let Q=$[J];if((J>0?$[J-1]:"")==="\\"&&Y)continue;if((Q==='"'||Q==="'")&&!Y){Y=Q;continue}if(Q===Y&&Y!=="`"){Y=null;continue}if(Q==="`"&&!Y){Y="`";continue}if(Q==="`"&&Y==="`"&&X===0){Y=null;continue}if(Y==="`"&&Q==="$"&&$[J+1]==="{"){X++,J++;continue}if(X>0&&Q==="{"){X++;continue}if(X>0&&Q==="}"){X--;continue}if(Y)continue;if(Q==="(")Z.paren++;else if(Q===")")Z.paren--;else if(Q==="[")Z.bracket++;else if(Q==="]")Z.bracket--;else if(Q==="{")Z.brace++;else if(Q==="}")Z.brace--}return Z.paren===0&&Z.bracket===0&&Z.brace===0&&Y===null}function AT($){let Z=$.indexOf("{");if(Z===-1)return!0;return u0($,"{","}",Z)===-1}function nz($,Z,Y){let X=Y,J=Z+1;while(J<$.length&&!tz(X)){let Q=$[J];X+=`
2137
2137
  ${Q}`,J++}while(J<$.length){let Q=$[J].trim();if(Q.startsWith(".")||Q.startsWith("?."))X+=`
2138
2138
  ${$[J]}`,J++;else break}return{value:X,nextIndex:J}}function NT($,Z,Y){let X=Y,J=Z+1;while(J<$.length){let Q=X.indexOf("{");if(Q!==-1){if(u0(X,"{","}",Q)!==-1)break}let G=$[J];X+=`
2139
- ${G}`,J++}return{functionCode:X,nextIndex:J}}function rz($,Z){let Y=L0($,Z)??L0(`(${$})`,Z);if(Y!==void 0)return Y;if(!/\bprocess\b/.test($))return;let X={...Z,process:Object.freeze({env:{..._7.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 wT($,Z,Y){let X=$.matchAll(/export\s+(const|let|var)\s+(\w+)\s*=\s*([\s\S]*?)(?=\s*(?:export\s+|$))/g);for(let Q of X){let[,,G,K]=Q;try{let W=K.trim().replace(/;$/,""),U=rz(W,Z);if(U!==void 0)Z[G]=U}catch(W){console.warn(`Failed to parse export ${G} in fallback:`,W)}}let J=$.matchAll(/(?:^|\n)\s*(const|let|var)\s+(\w+)\s*=\s*([\s\S]*?)(?=\s*(?:(?:const|let|var|function|export)\s+|$))/g);for(let Q of J){let[,,G,K]=Q;if(!(G in Z))try{let W=K.trim().replace(/;$/,""),U=rz(W,Z);if(U!==void 0)Z[G]=U}catch{}}}function I9($){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 D9($){let Z=$.trim();if(!Z)return!1;return/(?:const|let|var|function)\s+\w+/.test(Z)}var a4=D(()=>{c4();N6();p0()});var QB={};e(QB,{processLoops:()=>VZ});function TT($,Z){let Y=/@component\s*\(/g,X=$,J,Q=[];while((J=Y.exec(X))!==null){let G=J.index,K=G+J[0].length-1,W=1,U=K+1;while(U<X.length&&W>0){if(X[U]==="(")W++;else if(X[U]===")"){if(W--,W===0)break}U++}if(W!==0)continue;let _=X.substring(K+1,U),z=U+1,B=_.match(/^\s*['"]([^'"]+)['"]/);if(!B)continue;let q=B[1],j=_.slice(B[0].length),H=j.match(/^\s*,\s*/);if(!H)continue;let O=j.slice(H[0].length).trim();if(!O)continue;try{let V=d0(O,Z),L=JSON.stringify(V),F=`@component('${q}', ${L})`;Q.push({start:G,end:z,replacement:F})}catch{continue}}for(let G=Q.length-1;G>=0;G--){let{start:K,end:W,replacement:U}=Q[G];X=X.substring(0,K)+U+X.substring(W)}return X}function HZ($,Z,Y){let X=$,J=new RegExp(`${Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\(`),Q;while((Q=J.exec(X))!==null){let G=Q.index,K=G+Q[0].length-1,W=1,U=K+1,_=null,z=!1;while(U<X.length&&W>0){let j=X[U];if(z){z=!1,U++;continue}if(j==="\\"&&_){z=!0,U++;continue}if(_){if(j===_)_=null;U++;continue}if(j==='"'||j==="'"||j==="`"){_=j,U++;continue}if(j==="(")W++;else if(j===")"){if(W--,W===0)break}U++}if(W!==0)break;let B=X.substring(K+1,U),q=Y(B);X=X.substring(0,G)+q+X.substring(U+1)}return X}function ET($,Z){let Y=$;return Y=Y.replace(/:([a-zA-Z_][a-zA-Z0-9_-]*)(?=\s+[^=]|\s*\/?>|\s*$)/g,(X,J)=>{if(J in Z)return`:${J}="${J}"`;return X}),Y=Y.replace(/:([a-zA-Z_][a-zA-Z0-9_-]*)\s*=\s*"([^"]*)"/g,(X,J,Q)=>{try{let G=Object.keys(Z),K=Object.values(Z);N3(Q);let U=w0(Q,G)(...K),_=JSON.stringify(U),z=Buffer.from(_,"utf8").toString("base64");return`__stx_${J}="${z}"`}catch(G){return X}}),Y}function IT($,Z){let Y=$;return Y=HZ(Y,"@break",(X)=>{try{let Q=`!!(${X.trim()})`,G;if(N0(Q)){let K=w0(Q,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean(L0(Q,Z));return G?OZ:""}catch{return""}}),Y=HZ(Y,"@continue",(X)=>{try{let Q=`!!(${X.trim()})`,G;if(N0(Q)){let K=w0(Q,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean(L0(Q,Z));return G?LZ:""}catch{return""}}),Y}function DT($){let Z=$;return Z=Z.replace(/@break(?!\()/g,OZ),Z=Z.replace(/@continue(?!\()/g,LZ),Z}function ez($){let Z=$.includes(OZ),Y=Z?$.substring(0,$.indexOf(OZ)):$;return{hasBreak:Z,content:Y}}function $B($){let Z=$.includes(LZ),Y=Z?$.substring(0,$.indexOf(LZ)):$;return{hasContinue:Z,content:Y}}function YB($){let Z=$;return Z=HZ(Z,"@break",(Y)=>{let X=Y.trim();if(!w3(X))return"";return`\`; if (${X}) { break; } result += \``}),Z=HZ(Z,"@continue",(Y)=>{let X=Y.trim();if(!w3(X))return"";return`\`; if (${X}) { continue; } result += \``}),Z=Z.replace(/@break(?!\()/g,"`; break; result += `"),Z=Z.replace(/@continue(?!\()/g,"`; continue; result += `"),Z}function kT($){let Z=/@forelse\s*\(/g,Y,X=[],J=/@foreach\s*\(/g,Q=/@endforeach/g,G;while((G=J.exec($))!==null)X.push({pos:G.index,delta:1});while((G=Q.exec($))!==null)X.push({pos:G.index,delta:-1});X.sort((_,z)=>_.pos-z.pos);let K=[],W=0;for(let _ of X)W+=_.delta,K.push({pos:_.pos,depth:W});function U(_){let z=0,B=K.length-1,q=0;while(z<=B){let j=z+B>>1;if(K[j].pos<=_)q=K[j].depth,z=j+1;else B=j-1}return q}while((Y=Z.exec($))!==null){if(U(Y.index)>0)continue;let _=Y.index,z=Y.index+Y[0].length-1,B=1,q=z+1,j=-1;while(q<$.length&&B>0){if($[q]==="(")B++;else if($[q]===")"){if(B--,B===0){j=q;break}}q++}if(j===-1)continue;let H=$.substring(z+1,j),O=H.indexOf(" as ");if(O===-1)continue;let V=H.substring(0,O).trim(),L=H.substring(O+4).trim(),F=j+1,A=1,N=F,w=/@forelse\s*\(/g,R=/@endforelse/g,T=-1;while(A>0&&N<$.length){w.lastIndex=N,R.lastIndex=N;let P=w.exec($),C=R.exec($);if(!C)break;if(P&&P.index<C.index)A++,N=P.index+P[0].length;else{if(A--,A===0){T=C.index;break}N=C.index+11}}if(T===-1)continue;let E=$.substring(F,T),I=T+11,k=-1,S=0,y=0;while(y<E.length){let P=E.indexOf("@",y);if(P===-1)break;let C=E.substring(P);if(/^@forelse\s*\(/.test(C))S++,y=P+1;else if(C.startsWith("@endforelse"))S--,y=P+11;else if(S===0&&C.startsWith("@empty")){if(E.length<=P+6||!/[a-z]/i.test(E[P+6])){k=P;break}y=P+1}else y=P+1}if(k===-1)continue;return{start:_,end:I,arrayExpr:V,itemVar:L,foreachContent:E.substring(0,k),emptyContent:E.substring(k+6)}}return null}function ZB($,Z){let Y=$;while(!0){let X=kT(Y);if(!X)break;let{start:J,end:Q,arrayExpr:G,itemVar:K,foreachContent:W,emptyContent:U}=X;try{let _;if(N0(G))_=w0(G,Object.keys(Z))(...Object.values(Z));else _=L0(G,Z);let z;if(!Array.isArray(_)||_.length===0)z=U;else z=`@foreach (${G} as ${K})${W}@endforeach`;Y=Y.substring(0,J)+z+Y.substring(Q)}catch(_){let z=_ instanceof Error?_.message:String(_),B=U0("Forelse",`Error in @forelse(${G} as ${K}): ${z}`,J0.EVALUATION_ERROR);Y=Y.substring(0,J)+B+Y.substring(Q)}}return Y}function VZ($,Z,Y,X){let J=$;J=ZB(J,Z);function Q(W){let U=/@foreach\s*\(/g,_;while((_=U.exec(W))!==null){let z=_.index,B=_.index+_[0].length-1,q=1,j=B+1,H=-1;while(j<W.length&&q>0){if(W[j]==="(")q++;else if(W[j]===")"){if(q--,q===0){H=j;break}}j++}if(H===-1)continue;let O=W.substring(B+1,H),V=O.indexOf(" as ");if(V===-1)continue;let L=z,F=O.substring(0,V),A=O.substring(V+4),N=H+1,w=1,R=N,T=/@foreach\s*\(/g,E=/@endforeach/g;while(w>0&&R<W.length){T.lastIndex=R,E.lastIndex=R;let I=T.exec(W),k=E.exec(W);if(!k)break;if(I&&I.index<k.index)w++,R=I.index+I[0].length;else{if(w--,w===0){let S=W.substring(N,k.index),y=k.index+11;return{start:L,end:y,arrayExpr:F,itemVar:A,content:S}}R=k.index+11}}}return null}function G(W,U){let _=W;while(!0){let z=Q(_);if(!z)break;let{start:B,end:q,arrayExpr:j,itemVar:H,content:O}=z;try{let V=j.trim(),L;if(N0(V))L=w0(V,Object.keys(U))(...Object.values(U));else L=L0(V,U);let F=!1;if(!Array.isArray(L))if(L instanceof Map)L=Array.from(L),F=!0;else if(L instanceof Set)L=Array.from(L);else if(typeof L==="string")L=Array.from(L);else if(L&&typeof L==="object"&&!(L instanceof Date)&&!(L instanceof RegExp))L=Object.entries(L),F=!0;else{let k=U0("Foreach",`Error in @foreach: ${V} is not iterable`,J0.TYPE_ERROR);_=_.substring(0,B)+k+_.substring(q);continue}let A=X?.loops?.useAltLoopVariable??MT,N=H.trim(),w=null,R,T=!1;if(N.includes("=>")){let k=N.split("=>").map((S)=>S.trim());if(k.length===2&&k[0]&&k[1])w=k[0],R=k[1];else R=N}else if(!N.startsWith("[")&&!N.startsWith("{")&&N.includes(",")){let k=N.split(",").map((S)=>S.trim());if(k.length===2&&k[0]&&k[1])R=k[0],w=k[1],T=!0;else R=N}else R=N;let E="",I=L;for(let k=0;k<I.length;k++){let S=I[k],y={index:k,iteration:k+1,first:k===0,last:k===I.length-1,count:I.length},P={...U,loop:y,$loop:y};if(R.startsWith("[")&&R.endsWith("]")){let m=R.slice(1,-1).split(",").map((b)=>b.trim());if(Array.isArray(S))m.forEach((b,d)=>{if(b)P[b]=S[d]});else P[R]=S}else P[R]=S;if(w)if(!T&&F&&Array.isArray(S)&&S.length===2)P[w]=S[0],P[R]=S[1];else P[w]=k;let C=IT(O,P),g=$B(C);if(g.hasContinue){E+=g.content;continue}let s=ez(C);if(s.hasBreak){E+=s.content;break}if(C=ZB(C,P),C=G(C,P),C=T6(C,P,Y),C=DT(C),s=ez(C),s.hasBreak){E+=s.content;break}if(g=$B(C),g.hasContinue){E+=g.content;continue}C=j1(C,P,Y),C=ET(C,P),C=TT(C,P),E+=C}_=_.substring(0,B)+E+_.substring(q)}catch(V){let L=U0("Foreach",`Error in @foreach(${j.trim()} as ${H.trim()}): ${V instanceof Error?V.message:String(V)}`,J0.EVALUATION_ERROR);_=_.substring(0,B)+L+_.substring(q)}}return _}J=G(J,Z),J=JB(J,Z,Y,X);let K=X?.loops?.maxWhileIterations??RT;return J=bT(J,Z,K),J}function XB($){return w3($)}function JB($,Z,Y,X){let J=$,Q=!0;while(Q){Q=!1;let G=J.match(/@for\s*\(/);if(!G||G.index===void 0)break;let K=G.index,W=K+G[0].length-1,U=u0(J,"(",")",W);if(U===-1)break;let _=J.slice(W+1,U),z=U+1,B=Z7(J.slice(K),"for","endfor");if(B.length===0)break;let q=B[0].content,j=K+B[0].end;if(!XB(_)){let H=U0("For",`Unsafe expression in @for: ${_}`,J0.UNSAFE_EXPRESSION);J=J.substring(0,K)+H+J.substring(j),Q=!0;continue}try{let H=ST(_),O=/@(?:for|foreach|if|unless)\s*\(/.test(q);if(H.length>0&&O){let w=CT({forExpr:_,content:q,iterVarNames:H,context:Z,filePath:Y,options:X});J=J.substring(0,K)+w+J.substring(j),Q=!0;continue}let V=Object.keys(Z),L=Object.values(Z),F=q.replace(/`/g,"\\`").replace(/\$\{/g,"\\${").replace(/\{\{([^}]+)\}\}/g,(w,R)=>{return`\${${R}}`});F=YB(F);let N=Function(...V,`
2139
+ ${G}`,J++}return{functionCode:X,nextIndex:J}}function rz($,Z){let Y=L0($,Z)??L0(`(${$})`,Z);if(Y!==void 0)return Y;if(!/\bprocess\b/.test($))return;let X={...Z,process:Object.freeze({env:{..._7.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 wT($,Z,Y){let X=$.matchAll(/export\s+(const|let|var)\s+(\w+)\s*=\s*([\s\S]*?)(?=\s*(?:export\s+|$))/g);for(let Q of X){let[,,G,K]=Q;try{let W=K.trim().replace(/;$/,""),U=rz(W,Z);if(U!==void 0)Z[G]=U}catch(W){console.warn(`Failed to parse export ${G} in fallback:`,W)}}let J=$.matchAll(/(?:^|\n)\s*(const|let|var)\s+(\w+)\s*=\s*([\s\S]*?)(?=\s*(?:(?:const|let|var|function|export)\s+|$))/g);for(let Q of J){let[,,G,K]=Q;if(!(G in Z))try{let W=K.trim().replace(/;$/,""),U=rz(W,Z);if(U!==void 0)Z[G]=U}catch{}}}function I9($){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 D9($){let Z=$.trim();if(!Z)return!1;return/(?:const|let|var|function)\s+\w+/.test(Z)}var a4=D(()=>{c4();N6();p0()});var QB={};e(QB,{processLoops:()=>VZ});function TT($,Z){let Y=/@component\s*\(/g,X=$,J,Q=[];while((J=Y.exec(X))!==null){let G=J.index,K=G+J[0].length-1,W=1,U=K+1;while(U<X.length&&W>0){if(X[U]==="(")W++;else if(X[U]===")"){if(W--,W===0)break}U++}if(W!==0)continue;let _=X.substring(K+1,U),z=U+1,B=_.match(/^\s*['"]([^'"]+)['"]/);if(!B)continue;let q=B[1],j=_.slice(B[0].length),H=j.match(/^\s*,\s*/);if(!H)continue;let O=j.slice(H[0].length).trim();if(!O)continue;try{let V=d0(O,Z),L=JSON.stringify(V),F=`@component('${q}', ${L})`;Q.push({start:G,end:z,replacement:F})}catch{continue}}for(let G=Q.length-1;G>=0;G--){let{start:K,end:W,replacement:U}=Q[G];X=X.substring(0,K)+U+X.substring(W)}return X}function HZ($,Z,Y){let X=$,J=new RegExp(`${Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\(`),Q;while((Q=J.exec(X))!==null){let G=Q.index,K=G+Q[0].length-1,W=1,U=K+1,_=null,z=!1;while(U<X.length&&W>0){let j=X[U];if(z){z=!1,U++;continue}if(j==="\\"&&_){z=!0,U++;continue}if(_){if(j===_)_=null;U++;continue}if(j==='"'||j==="'"||j==="`"){_=j,U++;continue}if(j==="(")W++;else if(j===")"){if(W--,W===0)break}U++}if(W!==0)break;let B=X.substring(K+1,U),q=Y(B);X=X.substring(0,G)+q+X.substring(U+1)}return X}function ET($,Z){let Y=$;return Y=Y.replace(/:([a-zA-Z_][a-zA-Z0-9_-]*)(?=\s+[^=]|\s*\/?>|\s*$)/g,(X,J)=>{if(J in Z)return`:${J}="${J}"`;return X}),Y=Y.replace(/:([a-zA-Z_][a-zA-Z0-9_-]*)\s*=\s*"([^"]*)"/g,(X,J,Q)=>{try{let G=Object.keys(Z),K=Object.values(Z);N3(Q);let U=w0(Q,G)(...K),_=JSON.stringify(U),z=Buffer.from(_,"utf8").toString("base64");return`__stx_${J}="${z}"`}catch(G){return X}}),Y}function IT($,Z){let Y=$;return Y=HZ(Y,"@break",(X)=>{try{let Q=`!!(${X.trim()})`,G;if(N0(Q)){let K=w0(Q,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean(L0(Q,Z));return G?OZ:""}catch{return""}}),Y=HZ(Y,"@continue",(X)=>{try{let Q=`!!(${X.trim()})`,G;if(N0(Q)){let K=w0(Q,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean(L0(Q,Z));return G?LZ:""}catch{return""}}),Y}function DT($){let Z=$;return Z=Z.replace(/@break(?!\()/g,OZ),Z=Z.replace(/@continue(?!\()/g,LZ),Z}function ez($){let Z=$.includes(OZ),Y=Z?$.substring(0,$.indexOf(OZ)):$;return{hasBreak:Z,content:Y}}function $B($){let Z=$.includes(LZ),Y=Z?$.substring(0,$.indexOf(LZ)):$;return{hasContinue:Z,content:Y}}function YB($){let Z=$;return Z=HZ(Z,"@break",(Y)=>{let X=Y.trim();if(!w3(X))return"";return`\`; if (${X}) { break; } result += \``}),Z=HZ(Z,"@continue",(Y)=>{let X=Y.trim();if(!w3(X))return"";return`\`; if (${X}) { continue; } result += \``}),Z=Z.replace(/@break(?!\()/g,"`; break; result += `"),Z=Z.replace(/@continue(?!\()/g,"`; continue; result += `"),Z}function kT($){let Z=/@forelse\s*\(/g,Y,X=[],J=/@foreach\s*\(/g,Q=/@endforeach/g,G;while((G=J.exec($))!==null)X.push({pos:G.index,delta:1});while((G=Q.exec($))!==null)X.push({pos:G.index,delta:-1});X.sort((_,z)=>_.pos-z.pos);let K=[],W=0;for(let _ of X)W+=_.delta,K.push({pos:_.pos,depth:W});function U(_){let z=0,B=K.length-1,q=0;while(z<=B){let j=z+B>>1;if(K[j].pos<=_)q=K[j].depth,z=j+1;else B=j-1}return q}while((Y=Z.exec($))!==null){if(U(Y.index)>0)continue;let _=Y.index,z=Y.index+Y[0].length-1,B=1,q=z+1,j=-1;while(q<$.length&&B>0){if($[q]==="(")B++;else if($[q]===")"){if(B--,B===0){j=q;break}}q++}if(j===-1)continue;let H=$.substring(z+1,j),O=H.indexOf(" as ");if(O===-1)continue;let V=H.substring(0,O).trim(),L=H.substring(O+4).trim(),F=j+1,A=1,N=F,w=/@forelse\s*\(/g,R=/@endforelse/g,T=-1;while(A>0&&N<$.length){w.lastIndex=N,R.lastIndex=N;let P=w.exec($),C=R.exec($);if(!C)break;if(P&&P.index<C.index)A++,N=P.index+P[0].length;else{if(A--,A===0){T=C.index;break}N=C.index+11}}if(T===-1)continue;let E=$.substring(F,T),I=T+11,k=-1,S=0,x=0;while(x<E.length){let P=E.indexOf("@",x);if(P===-1)break;let C=E.substring(P);if(/^@forelse\s*\(/.test(C))S++,x=P+1;else if(C.startsWith("@endforelse"))S--,x=P+11;else if(S===0&&C.startsWith("@empty")){if(E.length<=P+6||!/[a-z]/i.test(E[P+6])){k=P;break}x=P+1}else x=P+1}if(k===-1)continue;return{start:_,end:I,arrayExpr:V,itemVar:L,foreachContent:E.substring(0,k),emptyContent:E.substring(k+6)}}return null}function ZB($,Z){let Y=$;while(!0){let X=kT(Y);if(!X)break;let{start:J,end:Q,arrayExpr:G,itemVar:K,foreachContent:W,emptyContent:U}=X;try{let _;if(N0(G))_=w0(G,Object.keys(Z))(...Object.values(Z));else _=L0(G,Z);let z;if(!Array.isArray(_)||_.length===0)z=U;else z=`@foreach (${G} as ${K})${W}@endforeach`;Y=Y.substring(0,J)+z+Y.substring(Q)}catch(_){let z=_ instanceof Error?_.message:String(_),B=U0("Forelse",`Error in @forelse(${G} as ${K}): ${z}`,J0.EVALUATION_ERROR);Y=Y.substring(0,J)+B+Y.substring(Q)}}return Y}function VZ($,Z,Y,X){let J=$;J=ZB(J,Z);function Q(W){let U=/@foreach\s*\(/g,_;while((_=U.exec(W))!==null){let z=_.index,B=_.index+_[0].length-1,q=1,j=B+1,H=-1;while(j<W.length&&q>0){if(W[j]==="(")q++;else if(W[j]===")"){if(q--,q===0){H=j;break}}j++}if(H===-1)continue;let O=W.substring(B+1,H),V=O.indexOf(" as ");if(V===-1)continue;let L=z,F=O.substring(0,V),A=O.substring(V+4),N=H+1,w=1,R=N,T=/@foreach\s*\(/g,E=/@endforeach/g;while(w>0&&R<W.length){T.lastIndex=R,E.lastIndex=R;let I=T.exec(W),k=E.exec(W);if(!k)break;if(I&&I.index<k.index)w++,R=I.index+I[0].length;else{if(w--,w===0){let S=W.substring(N,k.index),x=k.index+11;return{start:L,end:x,arrayExpr:F,itemVar:A,content:S}}R=k.index+11}}}return null}function G(W,U){let _=W;while(!0){let z=Q(_);if(!z)break;let{start:B,end:q,arrayExpr:j,itemVar:H,content:O}=z;try{let V=j.trim(),L;if(N0(V))L=w0(V,Object.keys(U))(...Object.values(U));else L=L0(V,U);let F=!1;if(!Array.isArray(L))if(L instanceof Map)L=Array.from(L),F=!0;else if(L instanceof Set)L=Array.from(L);else if(typeof L==="string")L=Array.from(L);else if(L&&typeof L==="object"&&!(L instanceof Date)&&!(L instanceof RegExp))L=Object.entries(L),F=!0;else{let k=U0("Foreach",`Error in @foreach: ${V} is not iterable`,J0.TYPE_ERROR);_=_.substring(0,B)+k+_.substring(q);continue}let A=X?.loops?.useAltLoopVariable??MT,N=H.trim(),w=null,R,T=!1;if(N.includes("=>")){let k=N.split("=>").map((S)=>S.trim());if(k.length===2&&k[0]&&k[1])w=k[0],R=k[1];else R=N}else if(!N.startsWith("[")&&!N.startsWith("{")&&N.includes(",")){let k=N.split(",").map((S)=>S.trim());if(k.length===2&&k[0]&&k[1])R=k[0],w=k[1],T=!0;else R=N}else R=N;let E="",I=L;for(let k=0;k<I.length;k++){let S=I[k],x={index:k,iteration:k+1,first:k===0,last:k===I.length-1,count:I.length},P={...U,loop:x,$loop:x};if(R.startsWith("[")&&R.endsWith("]")){let m=R.slice(1,-1).split(",").map((b)=>b.trim());if(Array.isArray(S))m.forEach((b,d)=>{if(b)P[b]=S[d]});else P[R]=S}else P[R]=S;if(w)if(!T&&F&&Array.isArray(S)&&S.length===2)P[w]=S[0],P[R]=S[1];else P[w]=k;let C=IT(O,P),g=$B(C);if(g.hasContinue){E+=g.content;continue}let s=ez(C);if(s.hasBreak){E+=s.content;break}if(C=ZB(C,P),C=G(C,P),C=T6(C,P,Y),C=DT(C),s=ez(C),s.hasBreak){E+=s.content;break}if(g=$B(C),g.hasContinue){E+=g.content;continue}C=j1(C,P,Y),C=ET(C,P),C=TT(C,P),E+=C}_=_.substring(0,B)+E+_.substring(q)}catch(V){let L=U0("Foreach",`Error in @foreach(${j.trim()} as ${H.trim()}): ${V instanceof Error?V.message:String(V)}`,J0.EVALUATION_ERROR);_=_.substring(0,B)+L+_.substring(q)}}return _}J=G(J,Z),J=JB(J,Z,Y,X);let K=X?.loops?.maxWhileIterations??RT;return J=bT(J,Z,K),J}function XB($){return w3($)}function JB($,Z,Y,X){let J=$,Q=!0;while(Q){Q=!1;let G=J.match(/@for\s*\(/);if(!G||G.index===void 0)break;let K=G.index,W=K+G[0].length-1,U=u0(J,"(",")",W);if(U===-1)break;let _=J.slice(W+1,U),z=U+1,B=Z7(J.slice(K),"for","endfor");if(B.length===0)break;let q=B[0].content,j=K+B[0].end;if(!XB(_)){let H=U0("For",`Unsafe expression in @for: ${_}`,J0.UNSAFE_EXPRESSION);J=J.substring(0,K)+H+J.substring(j),Q=!0;continue}try{let H=ST(_),O=/@(?:for|foreach|if|unless)\s*\(/.test(q);if(H.length>0&&O){let w=CT({forExpr:_,content:q,iterVarNames:H,context:Z,filePath:Y,options:X});J=J.substring(0,K)+w+J.substring(j),Q=!0;continue}let V=Object.keys(Z),L=Object.values(Z),F=q.replace(/`/g,"\\`").replace(/\$\{/g,"\\${").replace(/\{\{([^}]+)\}\}/g,(w,R)=>{return`\${${R}}`});F=YB(F);let N=Function(...V,`
2140
2140
  let result = '';
2141
2141
  for (${_}) {
2142
2142
  result += \`${F}\`;
@@ -2193,14 +2193,14 @@ ${xT($).split(",").map((W)=>W.trim()).filter(Boolean).map((W)=>` try { __scopeR
2193
2193
  } finally {
2194
2194
  if (typeof window !== 'undefined') window.__STX_CURRENT_ELEMENT__ = __stxPrevEl;
2195
2195
  }
2196
- })();`}function fT($,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 J=(Y[2]+Y[3]).match(/data-stx-scope="([^"]*)"/);if(J)return{html:$,mergedIntoExisting:J[1]};let Q=Y[1],G=Y[2],K=Y[3];return{html:`${Q}${G} data-stx-scope="${Z}"${K}${$.slice(Y[0].length)}`,mergedIntoExisting:null}}return{html:$,mergedIntoExisting:null}}function gT(){S9.clear()}function hT($){if($.__onceStore instanceof Set)return $.__onceStore;return S9}async function AZ($,Z,Y,X,J,Q=new Set){let G=X.partialsDir||b0.join(b0.dirname(Y),"partials");if(G&&!b0.isAbsolute(G))G=b0.resolve(process.cwd(),G);let K=PT($,"@partial","@include"),W=hT(Z);K=K.replace(/@once([\s\S]*?)@endonce/g,(j,H,O)=>{let V=H.trim(),L=`${Y}:${V}`;if(W.has(L))return"";return W.add(L),H});{let j=/@includeIf\s*\(/g,H;while((H=j.exec(K))!==null){let O=H.index,V=O+H[0].length-1,L=1,F=V+1;while(F<K.length&&L>0){if(K[F]==="(")L++;else if(K[F]===")")L--;F++}if(L!==0)break;let A=K.substring(V+1,F-1),N=A.match(/^\s*['"]([^'"]+)['"]/);if(!N){j.lastIndex=F;continue}let w=N[1],R=U(w,G,Y),T="";if(R&&await Bun.file(R).exists())J.add(R),T=`@include(${A})`;K=K.substring(0,O)+T+K.substring(F),j.lastIndex=0}}for(let[j,H]of[["@includeWhen",!1],["@includeUnless",!0]]){let O=new RegExp(`${j.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*\\(`,"g"),V;while((V=O.exec(K))!==null){let L=V.index,F=L+V[0].length-1,A=1,N=F+1;while(N<K.length&&A>0){if(K[N]==="(")A++;else if(K[N]===")")A--;N++}if(A!==0)break;let w=K.substring(F+1,N-1),R=k9(w,0);if(R===-1){O.lastIndex=N;continue}let T=w.substring(0,R).trim(),E=w.substring(R+1).trim(),I=E.match(/^\s*['"]([^'"]+)['"]/);if(!I){O.lastIndex=N;continue}let k=I[1],S=E.substring(I[0].length),y,P=k9(S,0);if(P!==-1)y=S.substring(P+1).trim();try{let C=`Boolean(${T})`,g;if(N0(C)){let b=w0(C,Object.keys(Z));g=Boolean(b(...Object.values(Z)))}else g=Boolean(L0(C,Z));let s=H?!g:g,m="";if(s){let b=U(k,G,Y);if(b&&await Bun.file(b).exists())J.add(b);m=`@include('${k}'${y?`, ${y}`:""})`}K=K.substring(0,L)+m+K.substring(N),O.lastIndex=0}catch(C){let g=C instanceof Error?C.message:String(C),s=R0("Include",`Error evaluating ${j} condition: ${g}`,Y,$,L);K=K.substring(0,L)+s+K.substring(N),O.lastIndex=0}}}{let j=/@each\s*\(/g,H;while((H=j.exec(K))!==null){let O=H.index,V=O+H[0].length-1,L=1,F=V+1;while(F<K.length&&L>0){if(K[F]==="(")L++;else if(K[F]===")"){if(L--,L===0)break}F++}if(L!==0)break;let A=K.substring(V+1,F),N=K.substring(O,F+1),w=A.match(/^\s*['"]([^'"]+)['"]\s*,\s*([^,]+)\s*,\s*['"]([^'"]+)['"](?:\s*,\s*['"]([^'"]+)['"])?\s*$/);if(!w){j.lastIndex=0,K=K.replace(N,"");continue}let[,R,T,E,I]=w;try{let k,S=T.trim();if(N0(S))k=w0(S,Object.keys(Z))(...Object.values(Z));else k=L0(S,Z);let y="";if(Array.isArray(k)&&k.length>0)for(let P of k){let C={...Z,[E]:P},g=await z(R,C,$,O);y+=g}else if(I)y=await z(I,{},$,O);K=K.substring(0,O)+y+K.substring(F+1),j.lastIndex=0}catch(k){let S=k instanceof Error?k.message:String(k);K=K.substring(0,O)+R0("Each",`Error in @each: ${S}`,Y,$,O)+K.substring(F+1),j.lastIndex=0}}}{let j=/@includeFirst\s*\(/g,H;while((H=j.exec(K))!==null){let O=H.index,V=O+H[0].length-1,L=1,F=V+1;while(F<K.length&&L>0){if(K[F]==="(")L++;else if(K[F]===")"){if(L--,L===0)break}F++}if(L!==0)break;let A=K.substring(V+1,F),N=K.substring(O,F+1),w=A.match(/^\s*(\[[^\]]+\])/);if(!w){j.lastIndex=0,K=K.replace(N,"");continue}let R=w[1],T=A.slice(w[0].length),E,I=T.match(/^\s*,\s*\{/);if(I){T=T.slice(I[0].length-1);let y=1,P=1;while(P<T.length&&y>0){if(T[P]==="{")y++;else if(T[P]==="}"){if(y--,y===0)break}P++}E=T.substring(0,P+1),T=T.slice(P+1)}let k,S=T.match(/^\s*,\s*['"]([^'"]*)['"]\s*$/);if(S)k=S[1];try{let y=JSON.parse(R.replace(/'/g,'"')),P={};if(E)try{P=d0(E,Z)}catch(g){let s=g instanceof Error?g.message:String(g);if(X.debug){let m=R0("Include",`Error parsing includeFirst variables: ${s}`,Y,$,O,N);K=K.replace(N,()=>m)}else K=K.replace(N,()=>k||"");continue}let C=!1;for(let g of y){let s=U(g,G,Y);if(!s)continue;if(await X0(s)){let m=await z(g,P,$,O);K=K.replace(N,()=>m),C=!0;break}}if(!C)if(k!==void 0)K=K.replace(N,()=>k);else if(X.debug){let g=R0("Include",`None of the includeFirst paths exist: ${R}`,Y,$,O,N);K=K.replace(N,()=>g)}else K=K.replace(N,"")}catch(y){let P=y instanceof Error?y.message:String(y),C=R0("Include",`Error processing @includeFirst: ${P}`,Y,$,O,N);K=K.replace(N,()=>C)}j.lastIndex=0}}function U(j,H,O){try{let V=j;if(!j.endsWith(".stx"))V=`${j}.stx`;let L=b0.resolve(H),F=b0.resolve(b0.dirname(O)),A;if(!V.startsWith("./")&&!V.startsWith("../"))A=b0.resolve(H,V);else A=b0.resolve(F,V);let N=b0.normalize(A),w=N.startsWith(L+b0.sep)||N===L,R=N.startsWith(F+b0.sep)||N===F,T=!1,E=b0.dirname(F);if(N.startsWith(E+b0.sep)){if(!b0.relative(E,N).split(b0.sep).some((y)=>y.startsWith(".")&&y!=="."&&y!==".."))T=!0}if(!w&&!R&&!T)return console.error(`Security: Path traversal attempt blocked for include path: ${j}`),console.error(` Resolved to: ${N}`),console.error(` Allowed dirs: ${L}, ${F}`),null;return N}catch(V){return console.error(`Error resolving path ${j}: ${V}`),null}}let _=b0.resolve(Y);Q.add(_);async function z(j,H={},O,V){let L=U(j,G,Y);if(!L)return R0("Include",`Could not resolve path for include: ${j}`,Y,O,V);let F=b0.resolve(L);if(Q.has(F)){let A=[...Q,F].map((N)=>b0.basename(N)).join(" -> ");return R0("Include",`Circular include detected: ${A}`,Y,O,V)}try{J.add(L);let A;if(!A)try{A=await Bun.file(L).text()}catch(m){let b=m instanceof Error?m.message:String(m);return R0("Include",`Error loading include file ${j}: ${b}`,Y,O,V)}if(A&&A.includes("@stream")){let{processStreamDirectives:m}=await Promise.resolve().then(() => (p4(),D6));A=m(A,Z)}if(A&&(X.debug||!_$()&&!a5()))try{let{warnUnbalancedTags:m}=await Promise.resolve().then(() => (tJ(),Nz));m(A,L)}catch{}let N=A;try{let{processESImports:m}=await Promise.resolve().then(() => (M9(),lz));await m(A,Z,L,X,J)}catch(m){if(X.debug)console.warn(`[stx] partial ES import extraction skipped for ${L}:`,m instanceof Error?m.message:m)}let w=N.match(/<template\b(?![^>]*\b(?:id|x-for|x-if|@for|@if|:for|:if)\s*=)[^>]*>([\s\S]*?)<\/template>/i);if(w)N=w[1].trim();let T=A.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"").match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),E="";if(T)E=`<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[m,b]of Object.entries(H))I[m]=b;let k=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,S=[...A.matchAll(k)],y="",P=null;for(let m of S){let b=m[1]||"",d=m[2]||"",c=b.includes("server"),r=P4(b),a="";try{let{extractAndStripCssImports:Q0,renderVendorStyleTags:M0}=await Promise.resolve().then(() => (R6(),VU)),k0=Q0(d,{filePath:L,projectRoot:process.cwd()});d=k0.code,a=M0(k0.styles)}catch(Q0){if(X.debug)console.warn(`[stx] vendor-css extractor skipped for ${L}:`,Q0 instanceof Error?Q0.message:Q0)}if(r&&d.trim())d=y4(d);if(!c)try{let{hasUserImports:Q0,bundleClientScript:M0}=await Promise.resolve().then(() => (A3(),F3));if(Q0(d))d=await M0(d,L,{projectRoot:process.cwd()})}catch(Q0){if(X.debug)console.warn(`[stx] bundler skipped for ${L}:`,Q0 instanceof Error?Q0.message:Q0)}let B0=yT(d);if(B0&&!c){P=`stx_scope_${b0.basename(L,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++GB}`;let Q0=W4(d),M0=vT(Q0,P);y+=`${a}<script data-stx-scoped>${M0}</script>
2197
- `;continue}if(c)try{let{extractVariables:Q0}=await Promise.resolve().then(() => (a4(),jZ));await Q0(d,I,L)}catch(Q0){if(X.debug)console.warn(`Warning: Could not extract variables from server script in ${L}:`,Q0)}if(!c&&!B0){let Q0=b.replace(/\bclient\b/i,"").trim();P=`stx_scope_${b0.basename(L,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++GB}`;let M0=W4(d),k0=`
2196
+ })();`}function fT($,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 J=(Y[2]+Y[3]).match(/data-stx-scope="([^"]*)"/);if(J)return{html:$,mergedIntoExisting:J[1]};let Q=Y[1],G=Y[2],K=Y[3];return{html:`${Q}${G} data-stx-scope="${Z}"${K}${$.slice(Y[0].length)}`,mergedIntoExisting:null}}return{html:$,mergedIntoExisting:null}}function gT(){S9.clear()}function hT($){if($.__onceStore instanceof Set)return $.__onceStore;return S9}async function AZ($,Z,Y,X,J,Q=new Set){let G=X.partialsDir||b0.join(b0.dirname(Y),"partials");if(G&&!b0.isAbsolute(G))G=b0.resolve(process.cwd(),G);let K=PT($,"@partial","@include"),W=hT(Z);K=K.replace(/@once([\s\S]*?)@endonce/g,(j,H,O)=>{let V=H.trim(),L=`${Y}:${V}`;if(W.has(L))return"";return W.add(L),H});{let j=/@includeIf\s*\(/g,H;while((H=j.exec(K))!==null){let O=H.index,V=O+H[0].length-1,L=1,F=V+1;while(F<K.length&&L>0){if(K[F]==="(")L++;else if(K[F]===")")L--;F++}if(L!==0)break;let A=K.substring(V+1,F-1),N=A.match(/^\s*['"]([^'"]+)['"]/);if(!N){j.lastIndex=F;continue}let w=N[1],R=U(w,G,Y),T="";if(R&&await Bun.file(R).exists())J.add(R),T=`@include(${A})`;K=K.substring(0,O)+T+K.substring(F),j.lastIndex=0}}for(let[j,H]of[["@includeWhen",!1],["@includeUnless",!0]]){let O=new RegExp(`${j.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*\\(`,"g"),V;while((V=O.exec(K))!==null){let L=V.index,F=L+V[0].length-1,A=1,N=F+1;while(N<K.length&&A>0){if(K[N]==="(")A++;else if(K[N]===")")A--;N++}if(A!==0)break;let w=K.substring(F+1,N-1),R=k9(w,0);if(R===-1){O.lastIndex=N;continue}let T=w.substring(0,R).trim(),E=w.substring(R+1).trim(),I=E.match(/^\s*['"]([^'"]+)['"]/);if(!I){O.lastIndex=N;continue}let k=I[1],S=E.substring(I[0].length),x,P=k9(S,0);if(P!==-1)x=S.substring(P+1).trim();try{let C=`Boolean(${T})`,g;if(N0(C)){let b=w0(C,Object.keys(Z));g=Boolean(b(...Object.values(Z)))}else g=Boolean(L0(C,Z));let s=H?!g:g,m="";if(s){let b=U(k,G,Y);if(b&&await Bun.file(b).exists())J.add(b);m=`@include('${k}'${x?`, ${x}`:""})`}K=K.substring(0,L)+m+K.substring(N),O.lastIndex=0}catch(C){let g=C instanceof Error?C.message:String(C),s=R0("Include",`Error evaluating ${j} condition: ${g}`,Y,$,L);K=K.substring(0,L)+s+K.substring(N),O.lastIndex=0}}}{let j=/@each\s*\(/g,H;while((H=j.exec(K))!==null){let O=H.index,V=O+H[0].length-1,L=1,F=V+1;while(F<K.length&&L>0){if(K[F]==="(")L++;else if(K[F]===")"){if(L--,L===0)break}F++}if(L!==0)break;let A=K.substring(V+1,F),N=K.substring(O,F+1),w=A.match(/^\s*['"]([^'"]+)['"]\s*,\s*([^,]+)\s*,\s*['"]([^'"]+)['"](?:\s*,\s*['"]([^'"]+)['"])?\s*$/);if(!w){j.lastIndex=0,K=K.replace(N,"");continue}let[,R,T,E,I]=w;try{let k,S=T.trim();if(N0(S))k=w0(S,Object.keys(Z))(...Object.values(Z));else k=L0(S,Z);let x="";if(Array.isArray(k)&&k.length>0)for(let P of k){let C={...Z,[E]:P},g=await z(R,C,$,O);x+=g}else if(I)x=await z(I,{},$,O);K=K.substring(0,O)+x+K.substring(F+1),j.lastIndex=0}catch(k){let S=k instanceof Error?k.message:String(k);K=K.substring(0,O)+R0("Each",`Error in @each: ${S}`,Y,$,O)+K.substring(F+1),j.lastIndex=0}}}{let j=/@includeFirst\s*\(/g,H;while((H=j.exec(K))!==null){let O=H.index,V=O+H[0].length-1,L=1,F=V+1;while(F<K.length&&L>0){if(K[F]==="(")L++;else if(K[F]===")"){if(L--,L===0)break}F++}if(L!==0)break;let A=K.substring(V+1,F),N=K.substring(O,F+1),w=A.match(/^\s*(\[[^\]]+\])/);if(!w){j.lastIndex=0,K=K.replace(N,"");continue}let R=w[1],T=A.slice(w[0].length),E,I=T.match(/^\s*,\s*\{/);if(I){T=T.slice(I[0].length-1);let x=1,P=1;while(P<T.length&&x>0){if(T[P]==="{")x++;else if(T[P]==="}"){if(x--,x===0)break}P++}E=T.substring(0,P+1),T=T.slice(P+1)}let k,S=T.match(/^\s*,\s*['"]([^'"]*)['"]\s*$/);if(S)k=S[1];try{let x=JSON.parse(R.replace(/'/g,'"')),P={};if(E)try{P=d0(E,Z)}catch(g){let s=g instanceof Error?g.message:String(g);if(X.debug){let m=R0("Include",`Error parsing includeFirst variables: ${s}`,Y,$,O,N);K=K.replace(N,()=>m)}else K=K.replace(N,()=>k||"");continue}let C=!1;for(let g of x){let s=U(g,G,Y);if(!s)continue;if(await X0(s)){let m=await z(g,P,$,O);K=K.replace(N,()=>m),C=!0;break}}if(!C)if(k!==void 0)K=K.replace(N,()=>k);else if(X.debug){let g=R0("Include",`None of the includeFirst paths exist: ${R}`,Y,$,O,N);K=K.replace(N,()=>g)}else K=K.replace(N,"")}catch(x){let P=x instanceof Error?x.message:String(x),C=R0("Include",`Error processing @includeFirst: ${P}`,Y,$,O,N);K=K.replace(N,()=>C)}j.lastIndex=0}}function U(j,H,O){try{let V=j;if(!j.endsWith(".stx"))V=`${j}.stx`;let L=b0.resolve(H),F=b0.resolve(b0.dirname(O)),A;if(!V.startsWith("./")&&!V.startsWith("../"))A=b0.resolve(H,V);else A=b0.resolve(F,V);let N=b0.normalize(A),w=N.startsWith(L+b0.sep)||N===L,R=N.startsWith(F+b0.sep)||N===F,T=!1,E=b0.dirname(F);if(N.startsWith(E+b0.sep)){if(!b0.relative(E,N).split(b0.sep).some((x)=>x.startsWith(".")&&x!=="."&&x!==".."))T=!0}if(!w&&!R&&!T)return console.error(`Security: Path traversal attempt blocked for include path: ${j}`),console.error(` Resolved to: ${N}`),console.error(` Allowed dirs: ${L}, ${F}`),null;return N}catch(V){return console.error(`Error resolving path ${j}: ${V}`),null}}let _=b0.resolve(Y);Q.add(_);async function z(j,H={},O,V){let L=U(j,G,Y);if(!L)return R0("Include",`Could not resolve path for include: ${j}`,Y,O,V);let F=b0.resolve(L);if(Q.has(F)){let A=[...Q,F].map((N)=>b0.basename(N)).join(" -> ");return R0("Include",`Circular include detected: ${A}`,Y,O,V)}try{J.add(L);let A;if(!A)try{A=await Bun.file(L).text()}catch(m){let b=m instanceof Error?m.message:String(m);return R0("Include",`Error loading include file ${j}: ${b}`,Y,O,V)}if(A&&A.includes("@stream")){let{processStreamDirectives:m}=await Promise.resolve().then(() => (p4(),D6));A=m(A,Z)}if(A&&(X.debug||!_$()&&!a5()))try{let{warnUnbalancedTags:m}=await Promise.resolve().then(() => (tJ(),Nz));m(A,L)}catch{}let N=A;try{let{processESImports:m}=await Promise.resolve().then(() => (M9(),lz));await m(A,Z,L,X,J)}catch(m){if(X.debug)console.warn(`[stx] partial ES import extraction skipped for ${L}:`,m instanceof Error?m.message:m)}let w=N.match(/<template\b(?![^>]*\b(?:id|x-for|x-if|@for|@if|:for|:if)\s*=)[^>]*>([\s\S]*?)<\/template>/i);if(w)N=w[1].trim();let T=A.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"").match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),E="";if(T)E=`<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[m,b]of Object.entries(H))I[m]=b;let k=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,S=[...A.matchAll(k)],x="",P=null;for(let m of S){let b=m[1]||"",d=m[2]||"",l=b.includes("server"),r=P4(b),a="";try{let{extractAndStripCssImports:Q0,renderVendorStyleTags:M0}=await Promise.resolve().then(() => (R6(),VU)),k0=Q0(d,{filePath:L,projectRoot:process.cwd()});d=k0.code,a=M0(k0.styles)}catch(Q0){if(X.debug)console.warn(`[stx] vendor-css extractor skipped for ${L}:`,Q0 instanceof Error?Q0.message:Q0)}if(r&&d.trim())d=y4(d);if(!l)try{let{hasUserImports:Q0,bundleClientScript:M0}=await Promise.resolve().then(() => (A3(),F3));if(Q0(d))d=await M0(d,L,{projectRoot:process.cwd()})}catch(Q0){if(X.debug)console.warn(`[stx] bundler skipped for ${L}:`,Q0 instanceof Error?Q0.message:Q0)}let B0=yT(d);if(B0&&!l){P=`stx_scope_${b0.basename(L,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++GB}`;let Q0=W4(d),M0=vT(Q0,P);x+=`${a}<script data-stx-scoped>${M0}</script>
2197
+ `;continue}if(l)try{let{extractVariables:Q0}=await Promise.resolve().then(() => (a4(),jZ));await Q0(d,I,L)}catch(Q0){if(X.debug)console.warn(`Warning: Could not extract variables from server script in ${L}:`,Q0)}if(!l&&!B0){let Q0=b.replace(/\bclient\b/i,"").trim();P=`stx_scope_${b0.basename(L,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++GB}`;let M0=W4(d),k0=`
2198
2198
  if (!window.stx._scopes) window.stx._scopes = {};
2199
2199
  window.stx._scopes['${P}'] = { __destroyCallbacks: __destroyHooks };
2200
- `,x=KB(M0,k0);y+=`${a}<script data-stx-scoped${Q0?` ${Q0}`:""}>${x}</script>
2201
- `}}if(P){let m=fT(N,P);if(N=m.html,m.mergedIntoExisting)y=y.replace(`window.stx._scopes['${P}']`,`window.stx._scopes['${m.mergedIntoExisting}']`),P=m.mergedIntoExisting}if(N.includes("@include")||N.includes("@partial"))N=await AZ(N,I,L,X,J,Q);let{processLoops:C}=await Promise.resolve().then(() => (FZ(),QB)),g=C(N,I,L);g=T6(g,I,L);let s=M6(A);if(g=j1(g,I,L,{forceSignals:s}),E)g+=`
2202
- `+E;if(y)g+=`
2203
- `+y;return g}catch(A){let N=A instanceof Error?A.message:String(A);return R0("Include",`Error processing include ${j}: ${N}`,Y,O,V)}}let B=/@include\s*\(/g,q;while((q=B.exec(K))!==null){let j=q.index,H=j+q[0].length-1,O=1,V=H+1;while(V<K.length&&O>0){if(K[V]==="(")O++;else if(K[V]===")")O--;V++}if(O!==0)break;let L=K.substring(j,V),F=K.substring(H+1,V-1),A=F.match(/^\s*['"]([^'"]+)['"]/);if(!A){B.lastIndex=V;continue}let N=A[1],w,R=F.substring(A[0].length),T=k9(R,0);if(T!==-1)w=R.substring(T+1).trim();let E={};if(w)try{E=d0(w,Z)}catch(k){let S=k instanceof Error?k.message:String(k);K=K.replace(L,R0("Include",`Error parsing include variables for ${N}: ${S}`,Y,$,j)),B.lastIndex=0;continue}let I=await z(N,E,$,j);K=K.substring(0,j)+I+K.substring(V),B.lastIndex=0}return K}function NZ($,Z){let Y=$;function X(J,Q,G,K){let W=J,U=!0;while(U){U=!1;let _=new RegExp(`@${Q}\\(['"]([^'"]+)['"]\\)`),z=W.match(_);if(!z||z.index===void 0)break;let B=z.index,q=z[1],j=B+z[0].length,H=new RegExp(`@${Q}\\(`),O=new RegExp(`@${G}(?![a-z])`),V=1,L=j,F=-1;while(V>0&&L<W.length){let N=W.slice(L),w=N.match(H),R=N.match(O),T=w?L+w.index:1/0,E=R?L+R.index:1/0;if(T<E)V++,L=T+(w[0].length||1);else if(E<1/0){if(V--,V===0){F=E;break}L=E+G.length+1}else break}if(F===-1)break;let A=W.slice(j,F);if(!Z[q])Z[q]=[];if(K)Z[q].unshift(A);else Z[q].push(A);W=W.substring(0,B)+W.substring(F+`@${G}`.length),U=!0}return W}return Y=X(Y,"push","endpush",!1),Y=X(Y,"prepend","endprepend",!0),Y}function wZ($,Z){return $.replace(/@stack\(['"]([^'"]+)['"]\)/g,(Y,X)=>{if(!Z[X]||Z[X].length===0)return"";return Z[X].join(`
2200
+ `,y=KB(M0,k0);x+=`${a}<script data-stx-scoped${Q0?` ${Q0}`:""}>${y}</script>
2201
+ `}}if(P){let m=fT(N,P);if(N=m.html,m.mergedIntoExisting)x=x.replace(`window.stx._scopes['${P}']`,`window.stx._scopes['${m.mergedIntoExisting}']`),P=m.mergedIntoExisting}if(N.includes("@include")||N.includes("@partial"))N=await AZ(N,I,L,X,J,Q);let{processLoops:C}=await Promise.resolve().then(() => (FZ(),QB)),g=C(N,I,L);g=T6(g,I,L);let s=M6(A);if(g=j1(g,I,L,{forceSignals:s}),E)g+=`
2202
+ `+E;if(x)g+=`
2203
+ `+x;return g}catch(A){let N=A instanceof Error?A.message:String(A);return R0("Include",`Error processing include ${j}: ${N}`,Y,O,V)}}let B=/@include\s*\(/g,q;while((q=B.exec(K))!==null){let j=q.index,H=j+q[0].length-1,O=1,V=H+1;while(V<K.length&&O>0){if(K[V]==="(")O++;else if(K[V]===")")O--;V++}if(O!==0)break;let L=K.substring(j,V),F=K.substring(H+1,V-1),A=F.match(/^\s*['"]([^'"]+)['"]/);if(!A){B.lastIndex=V;continue}let N=A[1],w,R=F.substring(A[0].length),T=k9(R,0);if(T!==-1)w=R.substring(T+1).trim();let E={};if(w)try{E=d0(w,Z)}catch(k){let S=k instanceof Error?k.message:String(k);K=K.replace(L,R0("Include",`Error parsing include variables for ${N}: ${S}`,Y,$,j)),B.lastIndex=0;continue}let I=await z(N,E,$,j);K=K.substring(0,j)+I+K.substring(V),B.lastIndex=0}return K}function NZ($,Z){let Y=$;function X(J,Q,G,K){let W=J,U=!0;while(U){U=!1;let _=new RegExp(`@${Q}\\(['"]([^'"]+)['"]\\)`),z=W.match(_);if(!z||z.index===void 0)break;let B=z.index,q=z[1],j=B+z[0].length,H=new RegExp(`@${Q}\\(`),O=new RegExp(`@${G}(?![a-z])`),V=1,L=j,F=-1;while(V>0&&L<W.length){let N=W.slice(L),w=N.match(H),R=N.match(O),T=w?L+w.index:1/0,E=R?L+R.index:1/0;if(T<E)V++,L=T+(w[0].length||1);else if(E<1/0){if(V--,V===0){F=E;break}L=E+G.length+1}else break}if(F===-1)break;let A=W.slice(j,F);if(!Z[q])Z[q]=[];if(K)Z[q].unshift(A);else Z[q].push(A);W=W.substring(0,B)+W.substring(F+`@${G}`.length),U=!0}return W}return Y=X(Y,"push","endpush",!1),Y=X(Y,"prepend","endprepend",!0),Y}function wZ($,Z){return $.replace(/@stack\(['"]([^'"]+)['"]\)/g,(Y,X)=>{if(!Z[X]||Z[X].length===0)return"";return Z[X].join(`
2204
2204
  `)})}var GB=0,s4,S9;var N$=D(()=>{p3();o0();x4();p0();A0();s4=new p5(500),S9=new Set});import*as C9 from"path";async function WB($,Z,Y=""){if(C9.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 _B($,Z,Y,"@js","@endjs")}async function UB($,Z,Y=""){if(C9.basename(Y)==="ts-directive.stx"){if(Z.users&&Array.isArray(Z.users))Z.processedUsers=Z.users.map((Q)=>({...Q,displayName:`User ${Q.id}: ${Q.name}`})),Z.processedOutput=JSON.stringify(Z.processedUsers);return $.replace(/@ts[\s\S]*?@endts/g,"")}return _B($,Z,Y,"@ts","@endts")}async function _B($,Z,Y,X,J){let Q=$,G=G$(`${X}([\\s\\S]*?)${J}`,"g"),K=[],W;while((W=G.exec($))!==null)K.push({fullMatch:W[0],content:W[1]||"",index:W.index});for(let{fullMatch:U,content:_,index:z}of K)try{let B=Object.keys(Z),q=Object.values(Z),j=_.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 O=(j.match(/(?:const|let|var)\s+(\w+)\s*=/g)||[]).map((N)=>N.match(/(?:const|let|var)\s+(\w+)/)?.[1]).filter(Boolean),V=O.length>0?`return { ${O.join(", ")} };`:"return {};",L=`
2205
2205
  ${j}
2206
2206
  ${V}
@@ -10269,28 +10269,28 @@ if ('serviceWorker' in navigator) {
10269
10269
  ${W.trim()}
10270
10270
  @endsection`}}if(W=W.replace(/@section\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*\)/g,(L,F,A)=>{return j[F]=A,""}),W=W.replace(/@section\(\s*['"]([^'"]+)['"]\s*,\s*([^)]+?)\s*\)/g,(L,F,A)=>{if(/^(['"]).*\1$/.test(A.trim()))return L;try{let N=L0(A.trim(),Z);if(N===void 0)return L;return j[F]=String(N??""),""}catch{return L}}),W=W.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@endsection|@show)/g,(L,F,A)=>{if(A.includes("@parent"))j[F]=A.replace("@parent",x6);else j[F]=A.trim();return""}),Z.__sections=j,W=W.replace(/@(?:yield|slot)\(\s*['"]([^'"]+)['"](?:,\s*['"]([^'"]+)['"])?\)/g,(L,F,A)=>{return j[F]||A||""}),!("slot"in Z)||Z.slot===void 0)W=W.replace(/\{\{\s*slot\s*\}\}/g,()=>{return j.content||""});if(W=wZ(W,q),H){let L=[];if(W=W.replace(/<(script|style)\b[\s\S]*?<\/\1>/gi,(F)=>{return L.push(F),""}),L.length>0){let F=L.join(`
10271
10271
  `);j.content=j.content?`${j.content}
10272
- ${F}`:F,Z.__sections=j}}if(H)try{let L;if(V1.isAbsolute(H))L=H,J.add(H);else L=await t1(()=>I7(H,Y,G,J),null,()=>{throw new h1(`Failed to resolve layout path: ${H}`,Y,void 0,void 0,`Layout referenced from ${Y}`)});if(!L){let T=`Layout not found: ${H} (referenced from ${Y})`;if(J1.log(Error(T),{layoutPath:H,filePath:Y},"warning"),G.debug)throw new h1(T,Y);return W}let F=await t1(()=>Bun.file(L).text(),"",()=>{throw new h1(`Failed to read layout file: ${L}`,Y,void 0,void 0,"Layout content could not be loaded")}),A=F.match(/@(?:layout|extends)\(\s*['"]([^'"]+)['"]\s*\)/);if(A){if(G.debug)console.log(`Found nested layout: ${A[1]} in ${L}`);let T={},E=F.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@show|@endsection)/g,(S,y,P)=>{return T[y]=P.trim(),""});for(let[S,y]of Object.entries(T))if(j[S]&&j[S].includes(x6)){let P=j[S].indexOf(x6);j[S]=j[S].slice(0,P)+y+j[S].slice(P+x6.length)}else if(!j[S])j[S]=y;let I={...Z,__sections:j},k=`@layout('${A[1]}')${E}`;return await W0(k,I,L,G,J)}let N=F.replace(/\{\{--[\s\S]*?--\}\}/g,""),w=NZ(N,q),R={};return w=w.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@show|@endsection)/g,(T,E,I)=>{return R[E]=I.trim(),`@slot('${E}')`}),w=w.replace(/@(?:yield|slot)\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(T,E,I)=>{if(j[E]){let k=j[E];if(k.includes(x6)){let S=R[E]||"",y=k.indexOf(x6);k=k.slice(0,y)+S+k.slice(y+x6.length)}return k}return I||""}),w=yI(w,j),w=w.replace(/\{\{\s*slot\s*\}\}/g,()=>{return j.content||""}),w=wZ(w,q),Z.__originalFilePath=Y,W=await Vj(w,Z,L,G,J),W=`<!-- stx-layout: ${H} -->
10272
+ ${F}`:F,Z.__sections=j}}if(H)try{let L;if(V1.isAbsolute(H))L=H,J.add(H);else L=await t1(()=>I7(H,Y,G,J),null,()=>{throw new h1(`Failed to resolve layout path: ${H}`,Y,void 0,void 0,`Layout referenced from ${Y}`)});if(!L){let T=`Layout not found: ${H} (referenced from ${Y})`;if(J1.log(Error(T),{layoutPath:H,filePath:Y},"warning"),G.debug)throw new h1(T,Y);return W}let F=await t1(()=>Bun.file(L).text(),"",()=>{throw new h1(`Failed to read layout file: ${L}`,Y,void 0,void 0,"Layout content could not be loaded")}),A=F.match(/@(?:layout|extends)\(\s*['"]([^'"]+)['"]\s*\)/);if(A){if(G.debug)console.log(`Found nested layout: ${A[1]} in ${L}`);let T={},E=F.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@show|@endsection)/g,(S,x,P)=>{return T[x]=P.trim(),""});for(let[S,x]of Object.entries(T))if(j[S]&&j[S].includes(x6)){let P=j[S].indexOf(x6);j[S]=j[S].slice(0,P)+x+j[S].slice(P+x6.length)}else if(!j[S])j[S]=x;let I={...Z,__sections:j},k=`@layout('${A[1]}')${E}`;return await W0(k,I,L,G,J)}let N=F.replace(/\{\{--[\s\S]*?--\}\}/g,""),w=NZ(N,q),R={};return w=w.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@show|@endsection)/g,(T,E,I)=>{return R[E]=I.trim(),`@slot('${E}')`}),w=w.replace(/@(?:yield|slot)\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(T,E,I)=>{if(j[E]){let k=j[E];if(k.includes(x6)){let S=R[E]||"",x=k.indexOf(x6);k=k.slice(0,x)+S+k.slice(x+x6.length)}return k}return I||""}),w=yI(w,j),w=w.replace(/\{\{\s*slot\s*\}\}/g,()=>{return j.content||""}),w=wZ(w,q),Z.__originalFilePath=Y,W=await Vj(w,Z,L,G,J),W=`<!-- stx-layout: ${H} -->
10273
10273
  ${W}`,z(W)}catch(L){return J1.log(L instanceof Error?L:Error(String(L)),{layoutPath:H,filePath:Y},"error"),`[Error processing layout: ${L instanceof Error?L.message:String(L)}]`}return z(await Vj(W,Z,Y,G,J))}function yI($,Z){return $.replace(/@(?:yield|slot)\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(Y,X,J)=>{let Q=Z[X];if(Q!==void 0){if(!new RegExp(`@(?:yield|slot)\\(\\s*['"]${X.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}['"]`).test(Q))return Q}return J||""})}function xI($,Z){if($.__stx_sfc_mode=!0,$.__stx_options=Z,Z.buildMode)$.__stx_buildMode=Z.buildMode;let Y=Z.envPrefix||"STX_PUBLIC_",X={};for(let[J,Q]of Object.entries(process.env))if(J.startsWith(Y)&&Q!==void 0)X[J]=Q;$.$env=X}async function vI($,Z){await t1(()=>OB($,Z),void 0,(Y)=>{J1.log(Y,{filePath:$,phase:"view-composer"},"warning"),console.warn(`[stx] view composer failed for ${$}: ${Y.message}`)})}async function fI($,Z,Y){let X=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,J;while((J=X.exec($))!==null){let Q=J[1],G=J[2];if(!/\bserver\b/.test(Q)||!G.trim())continue;try{let{extractVariables:W}=await Promise.resolve().then(() => (a4(),jZ));await W(G,Z,Y,{preserveExisting:!0})}catch(W){let U=W instanceof Error?W:Error(String(W));J1.log(U,{filePath:Y,phase:"server-script-extraction"},"warning"),console.warn(`[stx] server <script> extraction failed in ${Y}: ${U.message}`)}}}async function gI($,Z,Y){try{let{interpolateScriptsInTemplate:X}=await Promise.resolve().then(() => (o0(),l5));return X($,Z,{skipServer:!0})}catch(X){let J=X instanceof Error?X:Error(String(X));return J1.log(J,{filePath:Y,phase:"script-expression-interpolation"},"warning"),console.warn(`[stx] script expression interpolation failed in ${Y}: ${J.message}`),$}}async function Vj($,Z,Y,X,J){let Q=$,G=X;if(await fI(Q,Z,Y),Q=await gI(Q,Z,Y),Q=await WB(Q,Z,Y),Q=await UB(Q,Z,Y),Q=await vJ(Q,Z,Y,G),M6(Q))Q=o9(Q,Z),Q=e9(Q,Z);Q=t9(Q);let{processStreamDirectives:K}=await Promise.resolve().then(() => (p4(),D6));Q=K(Q,Z),Q=VZ(Q,Z,Y,G),Q=await BZ(Q,Z,Y,G,J),Q=await c9(Q,Z,Y,G,J),Q=dX(Q,Z,Y,G);let{processDeferDirectives:W}=await Promise.resolve().then(() => Xq);Q=W(Q,Z,Y);let{processTeleportDirectives:U}=await Promise.resolve().then(() => Kq);Q=U(Q,Z,Y);let{processTransitionDirectives:_,processTransitionAttributes:z}=await Promise.resolve().then(() => Lq);Q=_(Q,Z,Y),Q=z(Q);let{processErrorBoundaryDirectives:B}=await Promise.resolve().then(() => Fq);Q=B(Q,Z,Y);let{processSuspenseDirectives:q}=await Promise.resolve().then(() => Tq);Q=q(Q,Z,Y);let{processAsyncDirectives:j}=await Promise.resolve().then(() => yq);Q=j(Q,Z,Y);let{processKeepAliveDirectives:H}=await Promise.resolve().then(() => cq);Q=H(Q,Z,Y);let{processVirtualListDirectives:O,processVirtualGridDirectives:V,processInfiniteListDirectives:L}=await Promise.resolve().then(() => (U2(),lq));Q=O(Q,Z,Y),Q=V(Q,Z,Y),Q=L(Q,Z,Y);let{processPartialHydrationDirectives:F,processStaticDirectives:A}=await Promise.resolve().then(() => (R2(),pq));Q=F(Q,Z,Y),Q=A(Q);let{processComputedDirectives:N,processWatchDirectives:w}=await Promise.resolve().then(() => (Xj(),Yj));Q=N(Q,Z,Y),Q=w(Q,Z,Y);let{processFormValidationDirectives:R}=await Promise.resolve().then(() => (Wj(),Kj));Q=R(Q,Z,Y);let{processHeadDirective:T,processTitleDirective:E,processMetaDirective:I,resetHead:k}=await Promise.resolve().then(() => (c4(),s3));if(!Z.__stx_head_preset&&!Z.__stx_runtime_head)k();let S=T(Q);if(Q=S.content,S.headContent)Z.__stx_head_raw=`${Z.__stx_head_raw||""}${S.headContent}
10274
- `;if(Q=E(Q,Z),Q=I(Q,Z),Q=qB(Q),Q=EJ(Q,Z),Q=v_(Q),Q=BB(Q),Q=await AZ(Q,Z,Y,G,J),Q=await BZ(Q,Z,Y,G,J),Q=Q.replace(/@push\s*\(\s*['"][^'"]+['"]\s*\)[\s\S]*?@endpush/g,""),Q=Y2(Q),Q=T6(Q,Z,Y),Q=IJ(Q,Z),Q=DJ(Q,Z),Q=O$(Q,Z),Q=e3(Q,Z),Q=$Z(Q,Z),Q=await D2(Q,Z,Y,G),Q=await I2(Q,Z,Y),Q=await pJ(Q,Z,Y,G),Q=fX(Q,Z,Y,G),Q=v9(Q,Z,Y,G),Q=f9(Q,Z,Y),Q=g9(Q,Z,Y,G),Q=PJ(Q,Z,Y,G),Q=w7(Q,Z),Q=R7(Q),Q=sB(Q),!G.skipEventDirectives)Q=HJ(Q,Z,Y);if(Q=oU(Q,Z,Y),G.debug){let l=/\bx-data\s*=/.test(Q),h=cZ($);if(l&&h)console.warn(`[stx] ${Y}: Template mixes Alpine-style (x-data) and signals (state/derived/effect) reactivity.
10274
+ `;if(Q=E(Q,Z),Q=I(Q,Z),Q=qB(Q),Q=EJ(Q,Z),Q=v_(Q),Q=BB(Q),Q=await AZ(Q,Z,Y,G,J),Q=await BZ(Q,Z,Y,G,J),Q=Q.replace(/@push\s*\(\s*['"][^'"]+['"]\s*\)[\s\S]*?@endpush/g,""),Q=Y2(Q),Q=T6(Q,Z,Y),Q=IJ(Q,Z),Q=DJ(Q,Z),Q=O$(Q,Z),Q=e3(Q,Z),Q=$Z(Q,Z),Q=await D2(Q,Z,Y,G),Q=await I2(Q,Z,Y),Q=await pJ(Q,Z,Y,G),Q=fX(Q,Z,Y,G),Q=v9(Q,Z,Y,G),Q=f9(Q,Z,Y),Q=g9(Q,Z,Y,G),Q=PJ(Q,Z,Y,G),Q=w7(Q,Z),Q=R7(Q),Q=sB(Q),!G.skipEventDirectives)Q=HJ(Q,Z,Y);if(Q=oU(Q,Z,Y),G.debug){let c=/\bx-data\s*=/.test(Q),h=cZ($);if(c&&h)console.warn(`[stx] ${Y}: Template mixes Alpine-style (x-data) and signals (state/derived/effect) reactivity.
10275
10275
  Both work on the same page, but they manage separate scopes.
10276
- Prefer signals (state/derived/effect) for new components.`)}Q=EZ(Q,Z),Q=await j1(Q,Z,Y),Q=oB(Q),Q=tB(Q),Q=_J(Q);let{processXElementDirectives:y}=await Promise.resolve().then(() => zj);Q=y(Q);let P=Z.__originalFilePath||Y,C=C4(Z);if(Q=await $2(Q,G,P,C),Q=await y9(Q,Z,Y,G),G.media?.image?.autoSiblings){let l=G.publicDir||"public",{rewriteImagesWithSiblings:h}=await Promise.resolve().then(() => (M2(),Bj));Q=await h(Q,{publicDir:l})}if(G.seo?.enabled)Q=h9(Q,Z,G);let g=(l,h)=>{if(!h)return l;if(/<\/head>/i.test(l))return l.replace(/<\/head>/i,`${h}
10277
- </head>`);if(/<head\b[^>]*>/i.test(l))return l.replace(/(<head\b[^>]*>)/i,`$1
10278
- ${h}`);if(/<html\b[^>]*>/i.test(l))return l.replace(/(<html\b[^>]*>)/i,`$1
10276
+ Prefer signals (state/derived/effect) for new components.`)}Q=EZ(Q,Z),Q=await j1(Q,Z,Y),Q=oB(Q),Q=tB(Q),Q=_J(Q);let{processXElementDirectives:x}=await Promise.resolve().then(() => zj);Q=x(Q);let P=Z.__originalFilePath||Y,C=C4(Z);if(Q=await $2(Q,G,P,C),Q=await y9(Q,Z,Y,G),G.media?.image?.autoSiblings){let c=G.publicDir||"public",{rewriteImagesWithSiblings:h}=await Promise.resolve().then(() => (M2(),Bj));Q=await h(Q,{publicDir:c})}if(G.seo?.enabled)Q=h9(Q,Z,G);let g=(c,h)=>{if(!h)return c;if(/<\/head>/i.test(c))return c.replace(/<\/head>/i,`${h}
10277
+ </head>`);if(/<head\b[^>]*>/i.test(c))return c.replace(/(<head\b[^>]*>)/i,`$1
10278
+ ${h}`);if(/<html\b[^>]*>/i.test(c))return c.replace(/(<html\b[^>]*>)/i,`$1
10279
10279
  <head>
10280
10280
  ${h}
10281
- </head>`);return l},{renderHead:s,getHead:m}=await Promise.resolve().then(() => (c4(),s3)),b=Z.__stx_runtime_head,d=b&&(b.title||b.meta?.length||b.link?.length)?b:m();if(d.title||d.meta?.length||d.link?.length){let l=s(d);if(l)Q=g(Q,l)}if(S.headContent)Q=g(Q,S.headContent);if(G.csp?.enabled&&G.csp.addMetaTag)Q=bJ(Q,G.csp,Z);if(G.analytics?.enabled)Q=qJ(Q,G);if(G.heatmap?.enabled)Q=cX(Q,G);if(G.pwa?.enabled&&G.pwa.autoInject!==!1){let{injectPwaTags:l}=await Promise.resolve().then(() => (Oj(),Hj));Q=l(Q,G)}let c=/<script\b(?![^>]*\bserver\b)[^>]*>[\s\S]*?<\/script>/i.test(Q),r=/\bSTX\.\w+/.test(Q),a=/window\.STX\s*=/.test(Q);if(c&&r&&!a){let h=`<script data-stx-scoped>
10281
+ </head>`);return c},{renderHead:s,getHead:m}=await Promise.resolve().then(() => (c4(),s3)),b=Z.__stx_runtime_head,d=b&&(b.title||b.meta?.length||b.link?.length)?b:m();if(d.title||d.meta?.length||d.link?.length){let c=s(d);if(c)Q=g(Q,c)}if(S.headContent)Q=g(Q,S.headContent);if(G.csp?.enabled&&G.csp.addMetaTag)Q=bJ(Q,G.csp,Z);if(G.analytics?.enabled)Q=qJ(Q,G);if(G.heatmap?.enabled)Q=cX(Q,G);if(G.pwa?.enabled&&G.pwa.autoInject!==!1){let{injectPwaTags:c}=await Promise.resolve().then(() => (Oj(),Hj));Q=c(Q,G)}let l=/<script\b(?![^>]*\bserver\b)[^>]*>[\s\S]*?<\/script>/i.test(Q),r=/\bSTX\.\w+/.test(Q),a=/window\.STX\s*=/.test(Q);if(l&&r&&!a){let h=`<script data-stx-scoped>
10282
10282
  ${vU()}
10283
10283
  </script>`;if(Q.includes("</head>")){let p=Q.indexOf("</head>"),n=Q.slice(0,p).indexOf("<script");if(n!==-1){let _0=Q.slice(0,n),S0=Q.slice(n);Q=_0+h+`
10284
10284
  `+S0}else Q=Q.replace("</head>",`${h}
10285
10285
  </head>`)}else if(Q.includes("<body"))Q=Q.replace(/<body([^>]*)>/,`<body$1>
10286
10286
  ${h}`);else Q=h+`
10287
- `+Q}{let l=/<script\s+server\b[^>]*>/gi,h,p=[];while((h=l.exec(Q))!==null){let t=h.index+h[0].length,n=bI(Q,t);if(n===-1)continue;let _0=n+9;while(_0<Q.length&&/\s/.test(Q[_0]))_0++;p.push({start:h.index,end:_0})}for(let t=p.length-1;t>=0;t--){let{start:n,end:_0}=p[t];Q=Q.substring(0,n)+Q.substring(_0)}}let B0=B7(Q,Y);if(B0.hasScoped)Q=B0.html;let Q0=Z.__stx_event_bindings||[],M0=!1,k0=[],x=/\s:[a-z][\w.-]*\s*=/.test(Q),{scanScriptTags:u}=await Promise.resolve().then(() => (Z2(),pB));for(let l of u(Q,{skipAttrs:/\bserver\b|\bsrc\s*=|\bdata-stx-scoped\b|\bdata-stx-router\b|\btype\s*=\s*["'](?!(?:text\/javascript|application\/javascript|module)["'])[^"']*["']/}))k0.push({match:l.fullMatch,attrs:l.attrs,content:l.body});for(let{match:l,attrs:h,content:p}of k0){M0=!0;let t=p;M7(p,Y,X.strict);let n=await b4(p,{eventBindings:Q0,attrs:h,hasColonDirectives:x,templateContent:$,filePath:Y,projectRoot:process.cwd(),production:X.buildMode==="compile",serverData:C});Q=Q.replace(l,()=>n)}if(M0)Z.__stx_event_bindings=[];return Q}var x6="<!--PARENT_CONTENT_PLACEHOLDER-->";var U1=D(()=>{o1();E3();Y$();fU();zJ();jJ();V3();L3();OJ();R6();tU();b$();p3();yJ();f_();fJ();R1();c4();o0();dJ();iJ();N$();zB();FZ();oZ();x9();x4();jB();TZ();A0();LB();d9();m9();l9();DZ();Z2();M9();aB();X2();J2();p0();tJ();X2();J2()});function Fj($){let Z=[],Y=[];return mI($,Z),cI($,Z,Y),lI($,Y),pI($,Z),{valid:Z.length===0,errors:Z,warnings:Y}}function mI($,Z){let Y=($.match(/\{\{/g)||[]).length,X=($.match(/\}\}/g)||[]).length;if(Y!==X)Z.push({type:"expression",message:`Unclosed expression brackets: found ${Y} opening '{{' and ${X} closing '}}'`,suggestion:"Ensure every {{ has a matching }}"})}function cI($,Z,Y){for(let X of hI){let J=new RegExp(`${X.open}(?:\\s|\\()`,"g"),Q=new RegExp(X.close,"g"),G=($.match(J)||[]).length,K=($.match(Q)||[]).length;if(X.altClose){let W=new RegExp(X.altClose,"g");K+=($.match(W)||[]).length}if(G>K)Z.push({type:"directive",message:`Unclosed @${X.name} directive: found ${G} opening and ${K} closing`,suggestion:`Add ${G-K} missing ${X.close} tag(s)`});else if(K>G)Y.push({type:"directive",message:`Extra ${X.close} found: ${K-G} more closing than opening`,suggestion:`Check for orphaned ${X.close} tags`})}}function lI($,Z){for(let Y of dI)if(Y.pattern.test($))Z.push({type:"syntax",message:Y.message,suggestion:Y.suggestion})}function pI($,Z){for(let Y of uI)if(Y.pattern.test($))Z.push({type:"expression",message:`Security warning: ${Y.message}`,suggestion:"Remove dangerous code from template expressions"})}function Aj($,Z){let Y=$.slice(0,Z).split(`
10287
+ `+Q}{let c=/<script\s+server\b[^>]*>/gi,h,p=[];while((h=c.exec(Q))!==null){let t=h.index+h[0].length,n=bI(Q,t);if(n===-1)continue;let _0=n+9;while(_0<Q.length&&/\s/.test(Q[_0]))_0++;p.push({start:h.index,end:_0}),c.lastIndex=_0}for(let t=p.length-1;t>=0;t--){let{start:n,end:_0}=p[t];Q=Q.substring(0,n)+Q.substring(_0)}}let B0=B7(Q,Y);if(B0.hasScoped)Q=B0.html;let Q0=Z.__stx_event_bindings||[],M0=!1,k0=[],y=/\s:[a-z][\w.-]*\s*=/.test(Q),{scanScriptTags:u}=await Promise.resolve().then(() => (Z2(),pB));for(let c of u(Q,{skipAttrs:/\bserver\b|\bsrc\s*=|\bdata-stx-scoped\b|\bdata-stx-router\b|\btype\s*=\s*["'](?!(?:text\/javascript|application\/javascript|module)["'])[^"']*["']/}))k0.push({match:c.fullMatch,attrs:c.attrs,content:c.body});for(let{match:c,attrs:h,content:p}of k0){M0=!0;let t=p;M7(p,Y,X.strict);let n=await b4(p,{eventBindings:Q0,attrs:h,hasColonDirectives:y,templateContent:$,filePath:Y,projectRoot:process.cwd(),production:X.buildMode==="compile",serverData:C});Q=Q.replace(c,()=>n)}if(M0)Z.__stx_event_bindings=[];return Q}var x6="<!--PARENT_CONTENT_PLACEHOLDER-->";var U1=D(()=>{o1();E3();Y$();fU();zJ();jJ();V3();L3();OJ();R6();tU();b$();p3();yJ();f_();fJ();R1();c4();o0();dJ();iJ();N$();zB();FZ();oZ();x9();x4();jB();TZ();A0();LB();d9();m9();l9();DZ();Z2();M9();aB();X2();J2();p0();tJ();X2();J2()});function Fj($){let Z=[],Y=[];return mI($,Z),cI($,Z,Y),lI($,Y),pI($,Z),{valid:Z.length===0,errors:Z,warnings:Y}}function mI($,Z){let Y=($.match(/\{\{/g)||[]).length,X=($.match(/\}\}/g)||[]).length;if(Y!==X)Z.push({type:"expression",message:`Unclosed expression brackets: found ${Y} opening '{{' and ${X} closing '}}'`,suggestion:"Ensure every {{ has a matching }}"})}function cI($,Z,Y){for(let X of hI){let J=new RegExp(`${X.open}(?:\\s|\\()`,"g"),Q=new RegExp(X.close,"g"),G=($.match(J)||[]).length,K=($.match(Q)||[]).length;if(X.altClose){let W=new RegExp(X.altClose,"g");K+=($.match(W)||[]).length}if(G>K)Z.push({type:"directive",message:`Unclosed @${X.name} directive: found ${G} opening and ${K} closing`,suggestion:`Add ${G-K} missing ${X.close} tag(s)`});else if(K>G)Y.push({type:"directive",message:`Extra ${X.close} found: ${K-G} more closing than opening`,suggestion:`Check for orphaned ${X.close} tags`})}}function lI($,Z){for(let Y of dI)if(Y.pattern.test($))Z.push({type:"syntax",message:Y.message,suggestion:Y.suggestion})}function pI($,Z){for(let Y of uI)if(Y.pattern.test($))Z.push({type:"expression",message:`Security warning: ${Y.message}`,suggestion:"Remove dangerous code from template expressions"})}function Aj($,Z){let Y=$.slice(0,Z).split(`
10288
10288
  `);return{line:Y.length,column:Y[Y.length-1].length+1}}function Nj($,Z,Y){let X=[];switch($){case"if":case"elseif":case"unless":if(Y.length===0)X.push({type:"syntax",message:`@${$} requires a condition`,suggestion:`Use @${$}(condition)`});break;case"foreach":if(Y.length===0||!Y[0].includes(" as "))X.push({type:"syntax",message:'@foreach requires "items as item" syntax',suggestion:"Use @foreach(items as item) or @foreach(items as key => value)"});break;case"for":if(Y.length===0)X.push({type:"syntax",message:"@for requires loop parameters",suggestion:"Use @for(let i = 0; i < 10; i++)"});break;case"switch":if(Y.length===0)X.push({type:"syntax",message:"@switch requires an expression",suggestion:"Use @switch(expression)"});break;case"case":if(Y.length===0)X.push({type:"syntax",message:"@case requires a value",suggestion:"Use @case(value)"});break;case"include":case"extends":case"component":if(Y.length===0)X.push({type:"syntax",message:`@${$} requires a path`,suggestion:`Use @${$}('path/to/template')`});break}return X}function wj($){return/@[a-z]+/i.test($)||/\{\{/.test($)}function Rj($){let Z=$.matchAll(/@([a-z]+)/gi),Y=new Set;for(let X of Z){let J=X[1].toLowerCase();if(!J.startsWith("end"))Y.add(J)}return Array.from(Y)}var hI,dI,uI;var Mj=D(()=>{hI=[{open:"@if",close:"@endif",name:"if"},{open:"@unless",close:"@endunless",name:"unless"},{open:"@foreach",close:"@endforeach",name:"foreach"},{open:"@for",close:"@endfor",name:"for"},{open:"@while",close:"@endwhile",name:"while"},{open:"@forelse",close:"@endforelse",name:"forelse"},{open:"@switch",close:"@endswitch",name:"switch"},{open:"@isset",close:"@endisset",name:"isset"},{open:"@empty",close:"@endempty",name:"empty"},{open:"@auth",close:"@endauth",name:"auth"},{open:"@guest",close:"@endguest",name:"guest"},{open:"@can",close:"@endcan",name:"can"},{open:"@cannot",close:"@endcannot",name:"cannot"},{open:"@section",close:"@endsection",name:"section",altClose:"@show"},{open:"@push",close:"@endpush",name:"push"},{open:"@prepend",close:"@endprepend",name:"prepend"},{open:"@once",close:"@endonce",name:"once"},{open:"@markdown",close:"@endmarkdown",name:"markdown"},{open:"@component",close:"@endcomponent",name:"component"}],dI=[{pattern:/@if\s*[^(]/,message:"@if directive missing parentheses",suggestion:"Use @if(condition)"},{pattern:/@foreach\s*[^(]/,message:"@foreach directive missing parentheses",suggestion:"Use @foreach(items as item)"},{pattern:/@foreach\([^)]*\)\s*[^@\n<]/,message:"@foreach may have content on same line",suggestion:"Put content on new line after @foreach()"},{pattern:/@include\s*[^(]/,message:"@include directive missing parentheses",suggestion:"Use @include('partial-name')"},{pattern:/@extends\s*[^(]/,message:"@extends directive missing parentheses",suggestion:"Use @extends('layout-name') or @layout('layout-name')"},{pattern:/@layout\s*[^(]/,message:"@layout directive missing parentheses",suggestion:"Use @layout('layout-name')"}],uI=[{pattern:/\{\{\s*constructor\s*\}\}/,message:"Attempting to access constructor property"},{pattern:/\{\{\s*__proto__\s*\}\}/,message:"Attempting to access __proto__ property"},{pattern:/\{\{\s*eval\s*\(/,message:"Attempting to use eval in expression"}]});var kj={};e(kj,{renderSlot:()=>S2,processSlots:()=>C2,parseSlots:()=>k2,parseSlotElement:()=>Tj,extractSlotContent:()=>Ij,applySlots:()=>Dj});function iI($,Z){let Y=1,X=Z,J="<template",Q="</template";while(X<$.length&&Y>0){let G=$.indexOf("<",X);if(G===-1)break;if(X=G,$.startsWith(J,X)&&(X+J.length>=$.length||/[\s>\/]/.test($[X+J.length]))){Y++,X+=J.length;continue}if($.startsWith(Q,X)){let K=$.indexOf(">",X+Q.length);if(K!==-1){if(Y--,Y===0)return K+1;X=K+1;continue}}X++}return Y===0?X:-1}function k2($){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,J=[],Q;while((Q=X.exec($))!==null){let[_,z,B,q,j]=Q,H=z||B||q,O=Q.index+_.length,V=iI($,O);if(V!==-1){let L=$.slice(O,V-11).trim();J.push({start:Q.index,end:V,slotName:H,content:L,propsBinding:j||void 0}),Z.named.set(H,{name:H,content:L,propsBinding:j||void 0})}}J.sort((_,z)=>z.start-_.start);for(let _ of J)Y=Y.slice(0,_.start)+Y.slice(_.end);let G=[],K=/<([a-zA-Z][a-zA-Z0-9-]*)\b([^>]*?)\bslot="([^"]+)"([^>]*)>([\s\S]*?)<\/\1>/gi,W;while((W=K.exec(Y))!==null){let[_,z,B,q,j,H]=W,O=B.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),V=j.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),L=(O+V).trim(),F=`<${z}${L?" "+L:""}>${H}</${z}>`;G.push({start:W.index,end:W.index+_.length,slotName:q,element:F})}let U=/<([a-zA-Z][a-zA-Z0-9-]*)\b([^>]*?)\bslot="([^"]+)"([^>]*?)\/>/gi;while((W=U.exec(Y))!==null){let[_,z,B,q,j]=W,H=B.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),O=j.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),V=(H+O).trim(),L=`<${z}${V?" "+V:""} />`;G.push({start:W.index,end:W.index+_.length,slotName:q,element:L})}G.sort((_,z)=>z.start-_.start);for(let _ of G){let z=Z.named.get(_.slotName);if(z)z.content+=_.element;else Z.named.set(_.slotName,{name:_.slotName,content:_.element});Y=Y.slice(0,_.start)+Y.slice(_.end)}return Z.default=Y.trim(),Z}function Tj($){let Z=$.match(/name\s*=\s*["']([^"']+)["']/),Y=Z?Z[1]:"",X={},J=/:([a-zA-Z][\w-]*)\s*=\s*["']([^"']+)["']/g,Q;while((Q=J.exec($))!==null)X[Q[1]]=Q[2];let G=$.match(/<slot[^>]*>([\s\S]*?)<\/slot>/i),K=G?G[1].trim():"";return{name:Y,props:X,defaultContent:K}}async function S2($,Z,Y,X){if(!$)return Y;let J=$.content;if($.propsBinding&&Object.keys(Z).length>0){let Q=$.propsBinding.trim(),G={...X};if(Q.startsWith("{")&&Q.endsWith("}")){let K=Q.slice(1,-1).split(",").map((W)=>W.trim()).filter(Boolean);for(let W of K){let[U,_]=W.split(":").map((B)=>B.trim()),z=_||U;if(Z[U]!==void 0)G[z]=Z[U]}}else G[Q]=Z;J=nI(J,G)}return J}function nI($,Z){return $.replace(/\{\{\s*([^}]+)\s*\}\}/g,(Y,X)=>{try{let J=X.trim(),Q=Ej(J,Z);return P0(String(Q??""))}catch{return`{{ ${X} }}`}})}function Ej($,Z){if(/^[a-zA-Z_$][\w$]*(\.[a-zA-Z_$][\w$]*)*$/.test($)){let X=$.split("."),J=Z;for(let Q of X)if(J&&typeof J==="object"&&Q in J)J=J[Q];else return;return J}let Y=$.match(/^([a-zA-Z_$][\w$]*)\s*([+\-*/])\s*(\d+)$/);if(Y){let[,X,J,Q]=Y,G=Z[X],K=parseInt(Q,10);if(typeof G==="number")switch(J){case"+":return G+K;case"-":return G-K;case"*":return G*K;case"/":return G/K}}try{if(!N0($))return;return w0($,Object.keys(Z))(...Object.values(Z))}catch{return}}async function C2($,Z,Y){let X=$;X=await rI(X,/<slot\s+name\s*=\s*["']([^"']+)["']([^>]*?)(?:\/>|>([\s\S]*?)<\/slot>)/gi,async(G,K,W,U)=>{let _=Z.named.get(K),z=U?.trim()||"",B=W||"",q={},j=/:([a-zA-Z_$][\w$-]*)\s*=\s*["']([^"']+)["']/g,H;while((H=j.exec(B))!==null){let O=H[1],V=H[2];q[O]=Ej(V,Y)}return await S2(_,q,z,Y)});let Q=/<slot\s*(?:\/>|>([\s\S]*?)<\/slot>)/gi;return X=X.replace(Q,(G,K)=>{if(G.includes("name="))return G;let W=K?.trim()||"";return Z.default||W}),X}async function rI($,Z,Y){let X=[],J=[];$.replace(Z,(K,...W)=>{let U=W[W.length-2];return J.push({match:K,index:U}),X.push(Y(K,...W.slice(0,-2))),K});let Q=await Promise.all(X),G=$;for(let K=J.length-1;K>=0;K--){let{match:W,index:U}=J[K];G=G.slice(0,U)+Q[K]+G.slice(U+W.length)}return G}function Ij($){let Z=k2($);return{defaultSlot:Z.default,namedSlots:Z.named}}async function Dj($,Z,Y,X){return await C2($,{default:Z,named:Y},X)}var b2=D(()=>{o0();p0()});import aI from"fs";import o from"path";function Sj($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Cj($){return/\bjs\b/.test($)||/\blang\s*=\s*["']?(js|javascript)["']?/i.test($)}function P4($){return!Cj($)}function y4($){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,(Q)=>{let G=Y.length;return Y.push(Q),`"__STX_EXPR_${G}__"`}),Z=Z.replace(/\{\{\{[\s\S]*?\}\}\}/g,(Q)=>{let G=Y.length;return Y.push(Q),`"__STX_EXPR_${G}__"`}),Z=Z.replace(/\{\{[\s\S]*?\}\}/g,(Q)=>{let G=Y.length;return Y.push(Q),`"__STX_EXPR_${G}__"`});let J=new Bun.Transpiler({loader:"ts",target:"browser",define:C1()}).transformSync(Z);for(let Q=0;Q<Y.length;Q++)J=J.replace(`"__STX_EXPR_${Q}__"`,Y[Q]),J=J.replace(`'__STX_EXPR_${Q}__'`,Y[Q]);return J}catch(Z){if(process.env.STX_DEBUG_TS)console.warn("[STX] TypeScript transpilation error:",Z);return $}}function oI($){let Z=[],Y=new Set,X=0,J=0,Q=$.length,G=(_)=>{J++;while(J<Q){if($[J]==="\\"){J+=2;continue}if($[J]===_){J++;return}J++}},K=()=>{J++;while(J<Q){if($[J]==="\\"){J+=2;continue}if($[J]==="`"){J++;return}if($[J]==="$"&&$[J+1]==="{"){J+=2;let _=1;while(J<Q&&_>0)if($[J]==="{")_++,J++;else if($[J]==="}")_--,J++;else if($[J]==="'"||$[J]==='"')G($[J]);else if($[J]==="`")K();else J++;continue}J++}},W=()=>{if($[J]==="/"&&$[J+1]==="/"){while(J<Q&&$[J]!==`
10289
- `)J++;return!0}if($[J]==="/"&&$[J+1]==="*"){J+=2;while(J<Q-1&&!($[J]==="*"&&$[J+1]==="/"))J++;return J+=2,!0}return!1},U=()=>{if(X!==0)return;let _=$.slice(J).match(/^(const|let|var)\s*\{([^}]+)\}\s*=/);if(_){let j=_[2].split(",").map((H)=>{let O=H.trim().split(":");return O[O.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 z=$.slice(J).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(z){let j=z[2];if(!Y.has(j))Z.push(j),Y.add(j);return}let B=$.slice(J).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 q=$.slice(J).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(q){let j=q[1];if(!Y.has(j))Z.push(j),Y.add(j)}};while(J<Q){if(W())continue;if($[J]==="'"||$[J]==='"'){G($[J]);continue}if($[J]==="`"){K();continue}if($[J]==="{"){X++,J++;continue}if($[J]==="}"){X--,J++;continue}if(X===0&&/[a-z]/i.test($[J])&&(J===0||/\s|[;{}()]/.test($[J-1])))U();J++}return Z}function tI($){let Z=[],Y=0,X=0,J=null;for(let Q=0;Q<$.length;Q++){let G=$[Q];if(J){if(G==="\\"){Q++;continue}if(G===J)J=null;continue}if(G==='"'||G==="'"||G==="`"){J=G;continue}if(G==="("||G==="["||G==="{")Y++;else if(G===")"||G==="]"||G==="}")Y--;else if(G===","&&Y===0)Z.push($.slice(X,Q)),X=Q+1}if(X<$.length)Z.push($.slice(X));return Z}function eI($){let Z=0,Y=null;for(let X=0;X<$.length;X++){let J=$[X];if(Y){if(J==="\\"){X++;continue}if(J===Y)Y=null;continue}if(J==='"'||J==="'"||J==="`"){Y=J;continue}if(J==="("||J==="["||J==="{")Z++;else if(J===")"||J==="]"||J==="}")Z--;else if(J==="="&&Z===0){let Q=$[X-1],G=$[X+1];if(Q==="!"||Q==="<"||Q===">"||Q==="=")continue;if(G==="="||G===">")continue;return X}}return-1}function $D($,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 J=X,Q=0,G=-1;for(;X>=0;X--){let W=$[X];if(W==="}")Q++;else if(W==="{"){if(Q--,Q===0){G=X;break}}}if(G===-1)return;let K=$.slice(G+1,J);for(let W of tI(K)){let U=W.trim();if(!U||U.startsWith("..."))continue;let _=eI(U);if(_===-1)continue;let z=U.slice(0,_).trim();if(!/^[A-Z_$][\w$]*$/i.test(z))continue;if(Z[z]!==void 0)continue;let B=U.slice(_+1).trim();if(!B)continue;try{let q=Object.keys(Z),j=Function(...q,`"use strict"; return (${B});`);Z[z]=j(...q.map((H)=>Z[H]))}catch{}}}catch{}}async function T9($,Z,Y,X,J){let Q=$.endsWith(".stx")?$.slice(0,-4):$,G=(O)=>O.split("-").map((V)=>V.charAt(0).toUpperCase()+V.slice(1)).join(""),K=(O)=>O.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),W=Y.__importedComponents;if(W){for(let O of[Q,Q.toLowerCase(),G(Q),K(Q)])if(W.has(O))return!0}let U=[...new Set([`${Q}.stx`,`${G(Q)}.stx`,`${K(Q)}.stx`])],_=typeof J.root==="string"?o.resolve(J.root):void 0,z=_??o.dirname(X),B=[],q=(O)=>{if(O&&!B.includes(O))B.push(O)},j=Y.__originalFilePath;if(j)q(o.join(o.dirname(j),"components"));q(Z),q(o.join(o.dirname(X),"components")),q(J.componentsDir);let H=J._pluginComponentDirs;if(Array.isArray(H))for(let O of H)q(typeof O==="string"?O:null);if(_)q(o.resolve(_,"resources/views/components")),q(o.resolve(_,"resources/components")),q(o.resolve(_,"src/components")),q(o.resolve(_,"components"));if(Q.startsWith("./")||Q.startsWith("../"))return X0(o.resolve(o.dirname(X),`${Q}.stx`));for(let O of B){let V=o.isAbsolute(O)?O:o.resolve(z,O);for(let L of U)if(await X0(o.join(V,L)))return!0}return!1}function bj($){return $==="visible"||$==="idle"||$==="interaction"||$.startsWith("media:")}async function e1($,Z,Y,X,J,Q,G,K=new Set,W){let{extractVariables:U}=await Promise.resolve().then(() => (a4(),jZ)),_=K??new Set;if(_.has($))return`[Circular component reference: ${$}]`;let z=new Set(_);z.add($);let B=typeof Z.client==="string"?Z.client.trim():"";if("client"in Z)delete Z.client;let q=B&&B!=="load"&&bj(B)?B:"";try{let j=(x)=>x.split("-").map((u)=>u.charAt(0).toUpperCase()+u.slice(1)).join(""),H=(x)=>x.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),O=$.endsWith(".stx")?$.slice(0,-4):$,V=null,L=J.__importedComponents;if(L){let x=[O,O.toLowerCase(),j(O),H(O)];for(let u of x)if(L.has(u)){V=L.get(u);break}}let F=[];if(!V){let x=[`${O}.stx`,`${j(O)}.stx`,`${H(O)}.stx`],u=[...new Set(x)],l=J.__originalFilePath,h=[];if(l){let q0=o.join(o.dirname(l),"components");h.push(q0)}if(X)h.push(X);let p=o.join(o.dirname(Q),"components");if(!h.includes(p))h.push(p);if(G.componentsDir&&G.componentsDir!==X&&!h.includes(G.componentsDir))h.push(G.componentsDir);let t=G._pluginComponentDirs;if(Array.isArray(t)){for(let q0 of t)if(typeof q0==="string"&&!h.includes(q0))h.push(q0)}let n=typeof G.root==="string"?o.resolve(G.root):void 0,_0=n??o.dirname(Q),S0=[];if(n)S0.push(o.resolve(n,"resources/views/components")),S0.push(o.resolve(n,"resources/components")),S0.push(o.resolve(n,"src/components")),S0.push(o.resolve(n,"components"));S0.push(o.resolve(import.meta.dir,"components"));for(let q0 of S0)if(!h.includes(q0))h.push(q0);let D0=[...new Set(h.map((q0)=>{if(!q0)return q0;return o.isAbsolute(q0)?q0:o.resolve(_0,q0)}))];if(h.length=0,h.push(...D0),O.startsWith("./")||O.startsWith("../"))V=o.resolve(o.dirname(Q),`${O}.stx`),F.push(V);else for(let q0 of h){if(!q0)continue;for(let Y1 of u){let s0=o.join(q0,Y1);if(F.push(s0),await X0(s0)){V=s0;break}}if(V)break;if(!V)try{let Y1=await import("fs");if(!Y1.statSync(q0,{throwIfNoEntry:!1})?.isDirectory())continue;let Z$=8,z0=[{path:q0,depth:0}];while(z0.length>0&&!V){let x0=z0.pop();if(x0.depth>=Z$)continue;let v5;try{v5=Y1.readdirSync(x0.path,{withFileTypes:!0})}catch{continue}for(let x1 of v5){if(!x1.isDirectory())continue;if(x1.name==="node_modules"||x1.name.startsWith("."))continue;let D4=o.join(x0.path,x1.name);for(let T0 of u){let K1=o.join(D4,T0);if(F.push(K1),await X0(K1)){V=K1;break}}if(V)break;z0.push({path:D4,depth:x0.depth+1})}}}catch{}if(V)break}}if(!V||!await X0(V)){let x=F.length>0?`
10289
+ `)J++;return!0}if($[J]==="/"&&$[J+1]==="*"){J+=2;while(J<Q-1&&!($[J]==="*"&&$[J+1]==="/"))J++;return J+=2,!0}return!1},U=()=>{if(X!==0)return;let _=$.slice(J).match(/^(const|let|var)\s*\{([^}]+)\}\s*=/);if(_){let j=_[2].split(",").map((H)=>{let O=H.trim().split(":");return O[O.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 z=$.slice(J).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(z){let j=z[2];if(!Y.has(j))Z.push(j),Y.add(j);return}let B=$.slice(J).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 q=$.slice(J).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(q){let j=q[1];if(!Y.has(j))Z.push(j),Y.add(j)}};while(J<Q){if(W())continue;if($[J]==="'"||$[J]==='"'){G($[J]);continue}if($[J]==="`"){K();continue}if($[J]==="{"){X++,J++;continue}if($[J]==="}"){X--,J++;continue}if(X===0&&/[a-z]/i.test($[J])&&(J===0||/\s|[;{}()]/.test($[J-1])))U();J++}return Z}function tI($){let Z=[],Y=0,X=0,J=null;for(let Q=0;Q<$.length;Q++){let G=$[Q];if(J){if(G==="\\"){Q++;continue}if(G===J)J=null;continue}if(G==='"'||G==="'"||G==="`"){J=G;continue}if(G==="("||G==="["||G==="{")Y++;else if(G===")"||G==="]"||G==="}")Y--;else if(G===","&&Y===0)Z.push($.slice(X,Q)),X=Q+1}if(X<$.length)Z.push($.slice(X));return Z}function eI($){let Z=0,Y=null;for(let X=0;X<$.length;X++){let J=$[X];if(Y){if(J==="\\"){X++;continue}if(J===Y)Y=null;continue}if(J==='"'||J==="'"||J==="`"){Y=J;continue}if(J==="("||J==="["||J==="{")Z++;else if(J===")"||J==="]"||J==="}")Z--;else if(J==="="&&Z===0){let Q=$[X-1],G=$[X+1];if(Q==="!"||Q==="<"||Q===">"||Q==="=")continue;if(G==="="||G===">")continue;return X}}return-1}function $D($,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 J=X,Q=0,G=-1;for(;X>=0;X--){let W=$[X];if(W==="}")Q++;else if(W==="{"){if(Q--,Q===0){G=X;break}}}if(G===-1)return;let K=$.slice(G+1,J);for(let W of tI(K)){let U=W.trim();if(!U||U.startsWith("..."))continue;let _=eI(U);if(_===-1)continue;let z=U.slice(0,_).trim();if(!/^[A-Z_$][\w$]*$/i.test(z))continue;if(Z[z]!==void 0)continue;let B=U.slice(_+1).trim();if(!B)continue;try{let q=Object.keys(Z),j=Function(...q,`"use strict"; return (${B});`);Z[z]=j(...q.map((H)=>Z[H]))}catch{}}}catch{}}async function T9($,Z,Y,X,J){let Q=$.endsWith(".stx")?$.slice(0,-4):$,G=(O)=>O.split("-").map((V)=>V.charAt(0).toUpperCase()+V.slice(1)).join(""),K=(O)=>O.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),W=Y.__importedComponents;if(W){for(let O of[Q,Q.toLowerCase(),G(Q),K(Q)])if(W.has(O))return!0}let U=[...new Set([`${Q}.stx`,`${G(Q)}.stx`,`${K(Q)}.stx`])],_=typeof J.root==="string"?o.resolve(J.root):void 0,z=_??o.dirname(X),B=[],q=(O)=>{if(O&&!B.includes(O))B.push(O)},j=Y.__originalFilePath;if(j)q(o.join(o.dirname(j),"components"));q(Z),q(o.join(o.dirname(X),"components")),q(J.componentsDir);let H=J._pluginComponentDirs;if(Array.isArray(H))for(let O of H)q(typeof O==="string"?O:null);if(_)q(o.resolve(_,"resources/views/components")),q(o.resolve(_,"resources/components")),q(o.resolve(_,"src/components")),q(o.resolve(_,"components"));if(Q.startsWith("./")||Q.startsWith("../"))return X0(o.resolve(o.dirname(X),`${Q}.stx`));for(let O of B){let V=o.isAbsolute(O)?O:o.resolve(z,O);for(let L of U)if(await X0(o.join(V,L)))return!0}return!1}function bj($){return $==="visible"||$==="idle"||$==="interaction"||$.startsWith("media:")}async function e1($,Z,Y,X,J,Q,G,K=new Set,W){let{extractVariables:U}=await Promise.resolve().then(() => (a4(),jZ)),_=K??new Set;if(_.has($))return`[Circular component reference: ${$}]`;let z=new Set(_);z.add($);let B=typeof Z.client==="string"?Z.client.trim():"";if("client"in Z)delete Z.client;let q=B&&B!=="load"&&bj(B)?B:"";try{let j=(y)=>y.split("-").map((u)=>u.charAt(0).toUpperCase()+u.slice(1)).join(""),H=(y)=>y.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),O=$.endsWith(".stx")?$.slice(0,-4):$,V=null,L=J.__importedComponents;if(L){let y=[O,O.toLowerCase(),j(O),H(O)];for(let u of y)if(L.has(u)){V=L.get(u);break}}let F=[];if(!V){let y=[`${O}.stx`,`${j(O)}.stx`,`${H(O)}.stx`],u=[...new Set(y)],c=J.__originalFilePath,h=[];if(c){let q0=o.join(o.dirname(c),"components");h.push(q0)}if(X)h.push(X);let p=o.join(o.dirname(Q),"components");if(!h.includes(p))h.push(p);if(G.componentsDir&&G.componentsDir!==X&&!h.includes(G.componentsDir))h.push(G.componentsDir);let t=G._pluginComponentDirs;if(Array.isArray(t)){for(let q0 of t)if(typeof q0==="string"&&!h.includes(q0))h.push(q0)}let n=typeof G.root==="string"?o.resolve(G.root):void 0,_0=n??o.dirname(Q),S0=[];if(n)S0.push(o.resolve(n,"resources/views/components")),S0.push(o.resolve(n,"resources/components")),S0.push(o.resolve(n,"src/components")),S0.push(o.resolve(n,"components"));S0.push(o.resolve(import.meta.dir,"components"));for(let q0 of S0)if(!h.includes(q0))h.push(q0);let D0=[...new Set(h.map((q0)=>{if(!q0)return q0;return o.isAbsolute(q0)?q0:o.resolve(_0,q0)}))];if(h.length=0,h.push(...D0),O.startsWith("./")||O.startsWith("../"))V=o.resolve(o.dirname(Q),`${O}.stx`),F.push(V);else for(let q0 of h){if(!q0)continue;for(let Y1 of u){let s0=o.join(q0,Y1);if(F.push(s0),await X0(s0)){V=s0;break}}if(V)break;if(!V)try{let Y1=await import("fs");if(!Y1.statSync(q0,{throwIfNoEntry:!1})?.isDirectory())continue;let Z$=8,z0=[{path:q0,depth:0}];while(z0.length>0&&!V){let x0=z0.pop();if(x0.depth>=Z$)continue;let v5;try{v5=Y1.readdirSync(x0.path,{withFileTypes:!0})}catch{continue}for(let x1 of v5){if(!x1.isDirectory())continue;if(x1.name==="node_modules"||x1.name.startsWith("."))continue;let D4=o.join(x0.path,x1.name);for(let T0 of u){let K1=o.join(D4,T0);if(F.push(K1),await X0(K1)){V=K1;break}}if(V)break;z0.push({path:D4,depth:x0.depth+1})}}}catch{}if(V)break}}if(!V||!await X0(V)){let y=F.length>0?`
10290
10290
  Searched paths:
10291
10291
  ${F.map((u)=>` - ${u}`).join(`
10292
- `)}`:"";return`[Error loading component: ENOENT: no such file or directory, open '${$}']${x}`}W.add(V);let A;if(D7.has(V))A=D7.get(V);else try{A=await Bun.file(V).text(),D7.set(V,A)}catch(x){return`[Error loading component: ${x instanceof Error?x.message:String(x)}]`}let N=new Set(["__originalFilePath","__importedComponents"]),w={};for(let[x,u]of Object.entries(J))if(!x.startsWith("__")||N.has(x))w[x]=u;let R={...w,...Z,props:Z,slot:Y,__processedComponents:z,__sections:{}};$D(A,R);let T=A,E=T.match(/<template\b(?![^>]*\b(?:id|x-for|x-if|@for|@if|:for|:if)\s*=)[^>]*>([\s\S]*?)<\/template>/i);if(E)T=E[1].trim();let I=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,k=[...A.matchAll(I)],S=[];for(let x of k){let u=x[1]||"",l=x[2]||"",h=u.includes("server");if(P4(u)&&l.trim())l=y4(l);if(h&&l)try{await U(l,R,V)}catch(t){}if(!h){let t=l.replace(/^\s*const\s*\{[^}]+\}\s*=\s*window\.stx\s*;?\s*\n?/gm,"");if(t.includes("{{")&&t.includes("}}"))t=j1(t,R,V);let n=u.replace(/\s*\bts\b/g,"").replace(/\s*\blang\s*=\s*["']?(ts|typescript)["']?/gi,"");S.push(`<script${n}>${t}</script>`)}}let y=A.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),P=y?y[1]:"",C=y?y[2]:"",g="",s=P&&/\bscoped\b/i.test(P);if(y)g=`<style${P}>${C}</style>`;let m=T;if(m=m.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),y)m=m.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");{let x=/@push\s*\(\s*['"]styles['"]\s*\)([\s\S]*?)@endpush/gi,u=[];if(m=m.replace(x,(l,h)=>{let p=h.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i);if(p)u.push(`<style${p[1]}>${p[2]}</style>`);return""}),m=m.replace(/@push\s*\(\s*['"][^'"]+['"]\s*\)[\s\S]*?@endpush/gi,""),u.length>0)g=`${g}${u.join(`
10293
- `)}`}if(Y&&m.includes("{{ text || slot }}"))m=m.replace(/\{\{\s*text\s*\|\|\s*slot\s*\}\}/g,()=>Y);let{extractSlotContent:b,applySlots:d}=await Promise.resolve().then(() => (b2(),kj)),{defaultSlot:c,namedSlots:r}=b(Y);m=await d(m,c||Y,r,R);for(let[x,u]of Object.entries(R))if(typeof u==="string"){if(u.includes("<")&&u.includes(">")||u.includes("&lt;")||u.includes("&quot;")){let l=I3(u);R[x]=l}}let a=S.some((x)=>/\b(state|derived|effect)\s*(?:<[^<>()]*>)?\s*\(/.test(x)),B0={...G,componentsDir:o.dirname(V),skipSignalsRuntime:!0,skipEventDirectives:a,defaultLayout:void 0};R.__stxProcessingDepth=(J.__stxProcessingDepth||0)+1;let Q0=await W0(m,R,V,B0,W),M0=`stx_${O.replace(/[^a-zA-Z0-9]/g,"_")}_${++sI}_${Math.random().toString(36).slice(2,8)}`,k0=Q0;if(a){let x="";if(Object.keys(Z).length>0)try{x=` data-stx-props="${Sj(JSON.stringify(Z))}"`}catch{}let u=q?` stx-hydrate="${Sj(q)}"`:"";if(k0=`<div data-stx-scope="${M0}"${x}${u}>${Q0}</div>`,k0=S.map((h)=>{let p=h.match(/<script([^>]*)>([\s\S]*)<\/script>/i);if(!p)return h;let[,t,n]=p,_0=W4(n),S0=`
10292
+ `)}`:"";return`[Error loading component: ENOENT: no such file or directory, open '${$}']${y}`}W.add(V);let A;if(D7.has(V))A=D7.get(V);else try{A=await Bun.file(V).text(),D7.set(V,A)}catch(y){return`[Error loading component: ${y instanceof Error?y.message:String(y)}]`}let N=new Set(["__originalFilePath","__importedComponents"]),w={};for(let[y,u]of Object.entries(J))if(!y.startsWith("__")||N.has(y))w[y]=u;let R={...w,...Z,props:Z,slot:Y,__processedComponents:z,__sections:{}};$D(A,R);let T=A,E=T.match(/<template\b(?![^>]*\b(?:id|x-for|x-if|@for|@if|:for|:if)\s*=)[^>]*>([\s\S]*?)<\/template>/i);if(E)T=E[1].trim();let I=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,k=[...A.matchAll(I)],S=[];for(let y of k){let u=y[1]||"",c=y[2]||"",h=u.includes("server");if(P4(u)&&c.trim())c=y4(c);if(h&&c)try{await U(c,R,V)}catch(t){}if(!h){let t=c.replace(/^\s*const\s*\{[^}]+\}\s*=\s*window\.stx\s*;?\s*\n?/gm,"");if(t.includes("{{")&&t.includes("}}"))t=j1(t,R,V);let n=u.replace(/\s*\bts\b/g,"").replace(/\s*\blang\s*=\s*["']?(ts|typescript)["']?/gi,"");S.push(`<script${n}>${t}</script>`)}}let x=A.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),P=x?x[1]:"",C=x?x[2]:"",g="",s=P&&/\bscoped\b/i.test(P);if(x)g=`<style${P}>${C}</style>`;let m=T;if(m=m.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),x)m=m.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");{let y=/@push\s*\(\s*['"]styles['"]\s*\)([\s\S]*?)@endpush/gi,u=[];if(m=m.replace(y,(c,h)=>{let p=h.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i);if(p)u.push(`<style${p[1]}>${p[2]}</style>`);return""}),m=m.replace(/@push\s*\(\s*['"][^'"]+['"]\s*\)[\s\S]*?@endpush/gi,""),u.length>0)g=`${g}${u.join(`
10293
+ `)}`}if(Y&&m.includes("{{ text || slot }}"))m=m.replace(/\{\{\s*text\s*\|\|\s*slot\s*\}\}/g,()=>Y);let{extractSlotContent:b,applySlots:d}=await Promise.resolve().then(() => (b2(),kj)),{defaultSlot:l,namedSlots:r}=b(Y);m=await d(m,l||Y,r,R);for(let[y,u]of Object.entries(R))if(typeof u==="string"){if(u.includes("<")&&u.includes(">")||u.includes("&lt;")||u.includes("&quot;")){let c=I3(u);R[y]=c}}let a=S.some((y)=>/\b(state|derived|effect)\s*(?:<[^<>()]*>)?\s*\(/.test(y)),B0={...G,componentsDir:o.dirname(V),skipSignalsRuntime:!0,skipEventDirectives:a,defaultLayout:void 0};R.__stxProcessingDepth=(J.__stxProcessingDepth||0)+1;let Q0=await W0(m,R,V,B0,W),M0=`stx_${O.replace(/[^a-zA-Z0-9]/g,"_")}_${++sI}_${Math.random().toString(36).slice(2,8)}`,k0=Q0;if(a){let y="";if(Object.keys(Z).length>0)try{y=` data-stx-props="${Sj(JSON.stringify(Z))}"`}catch{}let u=q?` stx-hydrate="${Sj(q)}"`:"";if(k0=`<div data-stx-scope="${M0}"${y}${u}>${Q0}</div>`,k0=S.map((h)=>{let p=h.match(/<script([^>]*)>([\s\S]*)<\/script>/i);if(!p)return h;let[,t,n]=p,_0=W4(n),S0=`
10294
10294
  (function() {
10295
10295
  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;
10296
10296
  const __scope = window.stx._scopes = window.stx._scopes || {};
@@ -10316,9 +10316,9 @@ catch (e) {}
10316
10316
  `)+`
10317
10317
  `+k0,g)k0+=`
10318
10318
  `+g}else{if(g)k0+=`
10319
- `+g;if(S.length>0){let x=R.__stx_event_bindings||[],u=C4(R),l=await Promise.all(S.map(async(h)=>{let p=h.match(/<script\b[^>]*>([\s\S]*?)<\/script>/);if(!p)return h;return await b4(p[1],{eventBindings:x,templateContent:k0,filePath:V,projectRoot:process.cwd(),serverData:u})}));k0+=`
10320
- `+l.join(`
10321
- `),R.__stx_event_bindings=[]}}if(s){let x=B7(k0,V);if(x.hasScoped)k0=x.html}return k0}catch(j){return`[Error processing component: ${j instanceof Error?j.message:String(j)}]`}finally{_.delete($)}}async function X0($){return Bun.file($).exists()}function P2($,Z){let Y=o.resolve(Z),X=o.resolve($),J=Y.endsWith(o.sep)?Y:Y+o.sep;if(X===Y||X.startsWith(J))return X;return null}async function I7($,Z,Y,X){let J=await ZD($,Z,Y,X);if(J===null)return null;let Q=P2(J,process.cwd());if(Q)return Q;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 W=o.isAbsolute(K)?K:o.resolve(process.cwd(),K);if(P2(J,W))return o.resolve(J)}return console.warn(`[stx] rejected resolved template path that escapes project root: ${J} (template: ${$}, from: ${Z})`),null}async function ZD($,Z,Y,X){if(Y.debug)console.log(`Resolving template path: ${$} from ${Z}`);let J=o.dirname(Z),Q=process.cwd();if($.startsWith("/")){let B=o.join(Q,$),q=P2(B,Q);if(!q)return console.warn(`[stx] rejected template path that escapes project root: ${$} (from ${Z})`),null;if(Y.debug)console.log(`Checking absolute path: ${q}`);if(await X0(q)&&X)X.add(q);return q}let G=o.join(J,$);if(await X0(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 q=`${G}${B}`;if(await X0(q)){if(Y.debug)console.log(`Found direct path with extension: ${q}`);if(X)X.add(q);return q}}let K="",W=o.resolve(J),U=process.cwd();for(let B=0;B<10;B++){let q=o.join(W,"layouts"),j=!1;try{j=aI.statSync(q,{throwIfNoEntry:!1})?.isDirectory()??!1}catch{}if(j){K=q;break}let H=o.dirname(W);if(H===W||H.length<U.length)break;W=H}if(K){let B=$.startsWith("layouts/")?$.slice(8):$,q=o.join(K,B);if(await X0(q)){if(Y.debug)console.log(`Found in current layouts dir: ${q}`);if(X)X.add(q);return q}if(!B.endsWith(".stx")){let j=`${q}.stx`;if(await X0(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=o.isAbsolute(Y.layoutsDir)?Y.layoutsDir:o.resolve(process.cwd(),Y.layoutsDir),q=$.startsWith("layouts/")?$.slice(8):$,j=o.join(B,q);if(await X0(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 X0(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/"),q=o.join(Y.partialsDir||J,"layouts",B[1]);if(await X0(q)){if(Y.debug)console.log(`Found in layouts path: ${q}`);if(X)X.add(q);return q}if(!q.endsWith(".stx")){let j=`${q}.stx`;if(await X0(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=o.join(Y.partialsDir,"layouts"),await X0(K)){let B=o.join(K,$);if(await X0(B)){if(Y.debug)console.log(`Found in partials layouts dir: ${B}`);if(X)X.add(B);return B}if(!$.endsWith(".stx")){let q=`${B}.stx`;if(await X0(q)){if(Y.debug)console.log(`Found in partials layouts dir with extension: ${q}`);if(X)X.add(q);return q}}}}let _=Y.partialsDir||o.join(process.cwd(),"views"),z=o.join(_,$);if(await X0(z)){if(Y.debug)console.log(`Found in views path: ${z}`);if(X)X.add(z);return z}if(!$.endsWith(".stx")){let B=`${z}.stx`;if(await X0(B)){if(Y.debug)console.log(`Found in views path with extension: ${B}`);if(X)X.add(B);return B}}if(J.includes("temp")){let B=o.join(o.dirname(J),"layouts",$);if(await X0(B)){if(Y.debug)console.log(`Found in temp layouts dir: ${B}`);if(X)X.add(B);return B}if(!$.endsWith(".stx")){let q=`${B}.stx`;if(await X0(q)){if(Y.debug)console.log(`Found in temp layouts dir with extension: ${q}`);if(X)X.add(q);return q}}}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 y2($,Z,Y){let X=0,J="",Q="";try{if(typeof Z==="number"&&Z>=0){let G=$.split(`
10319
+ `+g;if(S.length>0){let y=R.__stx_event_bindings||[],u=C4(R),c=await Promise.all(S.map(async(h)=>{let p=h.match(/<script\b[^>]*>([\s\S]*?)<\/script>/);if(!p)return h;return await b4(p[1],{eventBindings:y,templateContent:k0,filePath:V,projectRoot:process.cwd(),serverData:u})}));k0+=`
10320
+ `+c.join(`
10321
+ `),R.__stx_event_bindings=[]}}if(s){let y=B7(k0,V);if(y.hasScoped)k0=y.html}return k0}catch(j){return`[Error processing component: ${j instanceof Error?j.message:String(j)}]`}finally{_.delete($)}}async function X0($){return Bun.file($).exists()}function P2($,Z){let Y=o.resolve(Z),X=o.resolve($),J=Y.endsWith(o.sep)?Y:Y+o.sep;if(X===Y||X.startsWith(J))return X;return null}async function I7($,Z,Y,X){let J=await ZD($,Z,Y,X);if(J===null)return null;let Q=P2(J,process.cwd());if(Q)return Q;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 W=o.isAbsolute(K)?K:o.resolve(process.cwd(),K);if(P2(J,W))return o.resolve(J)}return console.warn(`[stx] rejected resolved template path that escapes project root: ${J} (template: ${$}, from: ${Z})`),null}async function ZD($,Z,Y,X){if(Y.debug)console.log(`Resolving template path: ${$} from ${Z}`);let J=o.dirname(Z),Q=process.cwd();if($.startsWith("/")){let B=o.join(Q,$),q=P2(B,Q);if(!q)return console.warn(`[stx] rejected template path that escapes project root: ${$} (from ${Z})`),null;if(Y.debug)console.log(`Checking absolute path: ${q}`);if(await X0(q)&&X)X.add(q);return q}let G=o.join(J,$);if(await X0(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 q=`${G}${B}`;if(await X0(q)){if(Y.debug)console.log(`Found direct path with extension: ${q}`);if(X)X.add(q);return q}}let K="",W=o.resolve(J),U=process.cwd();for(let B=0;B<10;B++){let q=o.join(W,"layouts"),j=!1;try{j=aI.statSync(q,{throwIfNoEntry:!1})?.isDirectory()??!1}catch{}if(j){K=q;break}let H=o.dirname(W);if(H===W||H.length<U.length)break;W=H}if(K){let B=$.startsWith("layouts/")?$.slice(8):$,q=o.join(K,B);if(await X0(q)){if(Y.debug)console.log(`Found in current layouts dir: ${q}`);if(X)X.add(q);return q}if(!B.endsWith(".stx")){let j=`${q}.stx`;if(await X0(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=o.isAbsolute(Y.layoutsDir)?Y.layoutsDir:o.resolve(process.cwd(),Y.layoutsDir),q=$.startsWith("layouts/")?$.slice(8):$,j=o.join(B,q);if(await X0(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 X0(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/"),q=o.join(Y.partialsDir||J,"layouts",B[1]);if(await X0(q)){if(Y.debug)console.log(`Found in layouts path: ${q}`);if(X)X.add(q);return q}if(!q.endsWith(".stx")){let j=`${q}.stx`;if(await X0(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=o.join(Y.partialsDir,"layouts"),await X0(K)){let B=o.join(K,$);if(await X0(B)){if(Y.debug)console.log(`Found in partials layouts dir: ${B}`);if(X)X.add(B);return B}if(!$.endsWith(".stx")){let q=`${B}.stx`;if(await X0(q)){if(Y.debug)console.log(`Found in partials layouts dir with extension: ${q}`);if(X)X.add(q);return q}}}}let _=Y.partialsDir||o.join(process.cwd(),"views"),z=o.join(_,$);if(await X0(z)){if(Y.debug)console.log(`Found in views path: ${z}`);if(X)X.add(z);return z}if(!$.endsWith(".stx")){let B=`${z}.stx`;if(await X0(B)){if(Y.debug)console.log(`Found in views path with extension: ${B}`);if(X)X.add(B);return B}}if(J.includes("temp")){let B=o.join(o.dirname(J),"layouts",$);if(await X0(B)){if(Y.debug)console.log(`Found in temp layouts dir: ${B}`);if(X)X.add(B);return B}if(!$.endsWith(".stx")){let q=`${B}.stx`;if(await X0(q)){if(Y.debug)console.log(`Found in temp layouts dir with extension: ${q}`);if(X)X.add(q);return q}}}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 y2($,Z,Y){let X=0,J="",Q="";try{if(typeof Z==="number"&&Z>=0){let G=$.split(`
10322
10322
  `),K=0;for(let W=0;W<G.length;W++)if(K+=G[W].length+1,K>=Z){X=W+1,J=G[W].trim();let U=Math.max(0,W-2),_=Math.min(G.length,W+3);Q=G.slice(U,_).map((z,B)=>{let q=U+B+1;return`${q===X?"> ":" "}${q}: ${z}`}).join(`
10323
10323
  `);break}}else if(Y){let G=$.indexOf(Y);if(G>=0)return y2($,G)}}catch{}return{lineNumber:X,lineContent:J,context:Q}}function R0($,Z,Y,X,J,Q){let{lineNumber:G,context:K}=y2(X,J,Q),W=Y.split("/").pop(),U=0;if(typeof J==="number"&&J>=0&&X){let z=X.lastIndexOf(`
10324
10324
  `,Math.max(0,J-1));U=J-(z+1)+1}let _="";if(G>0)_+=`
@@ -10527,8 +10527,8 @@ ${j0.dim}${K}${j0.reset}
10527
10527
  filter: blur(0);
10528
10528
  transform: scale(1);
10529
10529
  }
10530
- `.trim();x$=new Map});import{createHash as XQ}from"crypto";import{readFile as BD,stat as vj}from"fs/promises";async function e0($){try{let Z=await BD($);return XQ("sha256").update(Z).digest("hex").slice(0,16)}catch{return""}}function fj($){return XQ("sha256").update($).digest("hex").slice(0,16)}function YY($){return XQ("sha256").update($).digest("hex").slice(0,16)}function f$($,Z){let Y=JSON.stringify(Z,Object.keys(Z).sort());return`${YY($)}-${YY(Y)}`}async function v7($){try{return(await vj($)).mtimeMs}catch{return 0}}async function $1($){try{return await vj($),!0}catch{return!1}}var X6=()=>{};import{mkdir as qD,readFile as hj,writeFile as jD,readdir as dj,rm as JQ,stat as HD}from"fs/promises";import{join as g$,dirname as OD}from"path";async function LD($){try{await qD($,{recursive:!0})}catch{}}function uj($,Z,Y){return g$($,Y,`${Z}.json`)}async function gj($,Z,Y){if((Date.now()-$.createdAt)/86400000>Y)return!1;if(await v7(Z)!==$.srcMtime)return!1;return!0}async function h$($,Z,Y,X=f7){if(!X.enabled)return null;let J=f$($,Z),Q=J6.get(J);if(Q){if(await gj(Q,$,X.maxAge))return Q.lastAccessedAt=Date.now(),Q.data;J6.delete(J)}let G=uj(X.directory,J,Y);if(await $1(G))try{let K=await hj(G,"utf-8"),W=JSON.parse(K);if(await gj(W,$,X.maxAge))return W.lastAccessedAt=Date.now(),J6.set(J,W),W.data}catch{}return null}async function d$($,Z,Y,X,J=f7){if(!J.enabled)return;let Q=f$($,Z),G=await e0($),K=await v7($),W={key:Q,src:$,srcHash:G,srcMtime:K,optionsHash:f$("",Z),data:Y,createdAt:Date.now(),lastAccessedAt:Date.now()};J6.set(Q,W);let U=uj(J.directory,Q,X);try{await LD(OD(U)),await jD(U,JSON.stringify(W,null,2))}catch(_){console.warn(`[stx-media] Failed to write cache: ${_}`)}}async function u$($,Z=f7){if($==="all")J6.clear();else J6.clear();let Y=$==="all"?["image","video"]:[$];for(let X of Y){let J=g$(Z.directory,X);try{await JQ(J,{recursive:!0,force:!0})}catch{}}}async function mj($=f7){let Z={memoryEntries:J6.size,diskEntries:{image:0,video:0},totalSizeMB:0};for(let Y of["image","video"]){let X=g$($.directory,Y);try{let J=await dj(X);Z.diskEntries[Y]=J.length;for(let Q of J){let G=g$(X,Q),K=await HD(G);Z.totalSizeMB+=K.size/1048576}}catch{}}return Z}async function cj($=f7){let Z=0,Y=$.maxAge*24*60*60*1000;for(let X of["image","video"]){let J=g$($.directory,X);try{let Q=await dj(J);for(let G of Q){let K=g$(J,G);try{let W=await hj(K,"utf-8"),U=JSON.parse(W);if(Date.now()-U.createdAt>Y)await JQ(K),J6.delete(U.key),Z++}catch{await JQ(K).catch(()=>{}),Z++}}}catch{}}return Z}var J6,f7;var XY=D(()=>{X6();J6=new Map,f7={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}});class m${config;constructor($={}){this.config={...VD,...$}}async get($,Z){return h$($,Z,"image",this.config)}async set($,Z,Y){return d$($,Z,Y,"image",this.config)}async clear(){return u$("image",this.config)}updateConfig($){this.config={...this.config,...$}}}function QQ($){if(!JY)JY=new m$($);else if($)JY.updateConfig($);return JY}async function c$($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return QQ(X).get($,Z)}async function l$($,Z,Y,X){let J=X?{directory:`${X.outputDir}/../.cache`}:{};return QQ(J).set($,Z,Y)}async function GQ(){return QQ().clear()}var VD,JY=null;var KQ=D(()=>{XY();VD={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500,cacheVariants:!0,cachePlaceholders:!0}});import{resolve as FD,basename as AD,extname as ND,join as wD}from"path";import{mkdir as RD}from"fs/promises";async function WQ(){try{return await import("ts-images")}catch{return null}}function lj($){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 MD($,Z){let Y=Z?lj(Z):lj("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 UQ($,Z,Y){let X=await WQ();if(!X)return console.warn("[stx-media] ts-images not installed, skipping optimization"),{src:$,processed:!1};let J=await c$($,Z,Y);if(J)return J;try{let Q=FD($);if(!await $1(Q))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let G=MD(Y,Z.preset),K=Y.outputDir||"dist/images",W=Y.baseUrl||"/images";await RD(K,{recursive:!0});let U=await e0(Q),_=AD($,ND($)),z=Z.outputFormat?[Z.outputFormat]:Y.defaultFormats||["avif","webp","jpeg"],B={src:$,processed:!0,variants:[],hash:U},q=null;if(Z.transformations&&Z.transformations.length>0)q=await g7(Q,Z.transformations,X);for(let j of z){let H=G[j]||{},O=`${_}-${U}.${j}`,V=wD(K,O);try{let L=await X.optimizeImage({input:q||Q,output:V,format:j,quality:H.quality,progressive:H.progressive});if(L){if(B.variants.push({path:V,url:`${W}/${O}`,width:L.width||0,height:L.height||0,format:j,size:L.outputSize||0}),!B.originalWidth&&L.width)B.originalWidth=L.width,B.originalHeight=L.height}}catch(L){B.errors=B.errors||[],B.errors.push(`Failed to optimize ${j}: ${L}`)}}if(Z.embedThumbhash||Z.placeholder==="thumbhash")try{let j=await X.generateThumbHash(Q);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(Q,{strategy:"dominant-color"});B.dominantColor=j.dominantColor}catch(j){B.errors=B.errors||[],B.errors.push(`Failed to extract dominant color: ${j}`)}return await l$($,Z,B,Y),B}catch(Q){return{src:$,processed:!1,errors:[`Processing failed: ${Q}`]}}}async function _Q($,Z,Y,X){let J=await WQ();if(!J)return{success:!1,error:"ts-images not installed"};try{return{success:!0,size:(await J.optimizeImage({input:$,output:X,format:Z,quality:Y}))?.outputSize}}catch(Q){return{success:!1,error:String(Q)}}}async function g7($,Z,Y){let X=Y||await WQ();if(!X)return console.warn("[stx-media] ts-images not installed, skipping transformations"),null;try{let J=await X.decode($);for(let Q of Z){let G=Q.options||{};switch(Q.type){case"resize":if(G.width||G.height)J=await X.resize(J,{width:G.width,height:G.height,fit:G.fit});break;case"blur":if(G.sigma!==void 0)J=await X.blur(J,G.sigma);break;case"sharpen":if(G.amount!==void 0)J=await X.sharpen(J,G.amount);break;case"grayscale":J=await X.grayscale(J);break;case"rotate":if(G.angle!==void 0)J=await X.rotate(J,G.angle);break;case"flip":J=await X.flip(J);break;case"flop":J=await X.flop(J);break;case"brightness":if(G.value!==void 0)J=await X.brightness(J,G.value);break;case"contrast":if(G.value!==void 0)J=await X.contrast(J,G.value);break;case"saturation":if(G.value!==void 0)J=await X.saturation(J,G.value);break}}return await X.encode(J,"png")}catch(J){return console.error(`[stx-media] Transformation failed: ${J}`),null}}var pj=D(()=>{X6();KQ()});import{resolve as TD,basename as ED,extname as ID,join as DD}from"path";import{mkdir as kD}from"fs/promises";async function SD(){try{return await import("ts-images")}catch{return null}}async function QY($,Z,Y){let X=await SD();if(!X)return console.warn("[stx-media] ts-images not installed, skipping responsive generation"),null;let J=TD($);if(!await $1(J))return console.warn(`[stx-media] Source file not found: ${$}`),null;try{let Q=Z.responsiveWidths||Y.breakpoints||CD,G=Z.formats||Y.defaultFormats||["avif","webp","jpeg"],K=Y.outputDir||"dist/images",W=Y.baseUrl||"/images";await kD(K,{recursive:!0});let U=await e0(J),_=ED($,ID($)),z=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 O of Q){let V=`${_}-${O}w-${U}.${j}`,L=DD(K,V),F=`${W}/${V}`;try{let A=z[j]?.quality||80;if(await $1(L)){B.byFormat[j].push({path:L,url:F,width:O,height:0,format:j,size:0}),H.push(`${F} ${O}w`);continue}let N=await X.processImage({input:J,output:L,format:j,quality:A,resize:{width:O}});if(N)B.byFormat[j].push({path:L,url:F,width:O,height:N.height||Math.round(O*(N.height||1)/(N.width||1)),format:j,size:N.outputSize||0}),H.push(`${F} ${O}w`)}catch(A){console.warn(`[stx-media] Failed to generate ${j} at ${O}w: ${A}`)}}B.srcsets[j]=H.join(", ")}let q=Z.placeholder||Y.placeholderStrategy||"thumbhash";if(q!=="none")try{if(q==="thumbhash"){let j=await X.generateThumbHash(J);B.placeholder={dataURL:j.dataUrl,width:j.width||32,height:j.height||32,strategy:"thumbhash"}}else{let j=await X.generatePlaceholder(J,{strategy:q,width:20});B.placeholder={dataURL:j.dataURL,width:j.width,height:j.height,strategy:q}}}catch(j){console.warn(`[stx-media] Failed to generate placeholder: ${j}`)}return B.sizes=Z.sizes||bD(Q),B}catch(Q){return console.error(`[stx-media] Responsive generation failed: ${Q}`),null}}function bD($){let Z=[...$].sort((X,J)=>X-J),Y=[];for(let X=0;X<Z.length-1;X++){let J=Z[X];Y.push(`(max-width: ${J}px) ${J}px`)}return Y.push(`${Z[Z.length-1]}px`),Y.join(", ")}function GY($,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 CD;var ij=D(()=>{X6();CD=[320,480,640,768,1024,1280,1536,1920]});var nj={};e(nj,{setCachedImageResult:()=>l$,processImage:()=>UQ,optimizeImage:()=>_Q,getCachedImageResult:()=>c$,generateSrcset:()=>GY,generateResponsiveVariants:()=>QY,clearImageCache:()=>GQ,applyTransformations:()=>g7,ImageProcessorCache:()=>m$});var zQ=D(()=>{pj();ij();KQ()});async function PD(){try{return await Promise.resolve().then(() => (zQ(),nj))}catch($){if(!rj)console.warn("[stx-media] Image processor not available, some features disabled:",$),rj=!0;return null}}async function Q6($,Z={}){let Y=Z,X=$;if(X.process&&!X.skipOptimization){if(Y.tsImagesConfig?.enabled&&!Y.isDev)return fD(X,Y)}if(Y.processedResult?.processed)return OQ($,Y.processedResult,Z);if(Y.responsiveVariants)return tj($,Y.responsiveVariants,Z);let{src:J,alt:Q,width:G,height:K,sizes:W,widths:U=Y4,dpr:_,formats:z=H4,quality:B=BQ,params:q={},placeholder:j="none",placeholderOptions:H={},lazy:O=!0,priority:V=!1,loading:L=V?"eager":WY,decoding:F=KY,fetchpriority:A,objectFit:N,objectPosition:w,crossorigin:R,referrerpolicy:T}=$,E=$.class,I=$.style,k=$.id,S=$.data||{},{isDev:y=!1,baseUrl:P=""}=Z;if(y&&!Z.optimize)return vD($);let C,g,s=k||`stx-img-${Math.random().toString(36).slice(2,8)}`;if(j!=="none"&&!V)try{C=await x7(J,{strategy:j,...H}),g=y7(s,C,H)}catch{}let m=_!==void 0&&G!==void 0,b;if(m)b=xD($,s,C,Z);else b=await yD($,s,C,Z);let d;if(V){let a=z.includes("webp")?"webp":z[0],B0=Y6(J,U,{...q,q:B},a),Q0=typeof W==="object"?y$(W):W||"100vw";d=`<link rel="preload" as="image" imagesrcset="${B0}" imagesizes="${Q0}" />`}let c=[];if(!aj&&j!=="none")c.push(v$),aj=!0;if(g)c.push(g);let r=O?oj(s):void 0;return{html:b,preloadLink:d,css:c.length>0?c.join(`
10531
- `):void 0,script:r}}async function yD($,Z,Y,X){let{src:J,alt:Q,width:G,height:K,sizes:W,widths:U=Y4,formats:_=H4,quality:z=BQ,params:B={},lazy:q=!0,priority:j=!1,loading:H=j?"eager":WY,decoding:O=KY,fetchpriority:V,objectFit:L,objectPosition:F,crossorigin:A,referrerpolicy:N}=$,w=$.class,R=$.style,T=$.data||{},E=typeof W==="object"?y$(W):W||"100vw",I=[];for(let y of _){let P=Y6(J,U,{...B,q:z},y),C=b7(y);if(q&&!j)I.push(` <source type="${C}" data-srcset="${P}" data-sizes="${E}" />`);else I.push(` <source type="${C}" srcset="${P}" sizes="${E}" />`)}let k=qQ({src:m1(J,{...B,q:z}),alt:Q,width:G,height:K,loading:j?void 0:H,decoding:O,fetchpriority:j?"high":V,objectFit:L,objectPosition:F,crossorigin:A,referrerpolicy:N,className:sj(w,Y),style:jQ(R,L,F,Y),lazy:q&&!j,data:T}),S;if(Y){let y=`background-image: url('${Y.dataURL}'); background-size: cover; background-position: center;`;S=`<div id="${Z}" class="stx-img-placeholder" style="${y}">
10530
+ `.trim();x$=new Map});import{createHash as XQ}from"crypto";import{readFile as BD,stat as vj}from"fs/promises";async function e0($){try{let Z=await BD($);return XQ("sha256").update(Z).digest("hex").slice(0,16)}catch{return""}}function fj($){return XQ("sha256").update($).digest("hex").slice(0,16)}function YY($){return XQ("sha256").update($).digest("hex").slice(0,16)}function f$($,Z){let Y=JSON.stringify(Z,Object.keys(Z).sort());return`${YY($)}-${YY(Y)}`}async function v7($){try{return(await vj($)).mtimeMs}catch{return 0}}async function $1($){try{return await vj($),!0}catch{return!1}}var X6=()=>{};import{mkdir as qD,readFile as hj,writeFile as jD,readdir as dj,rm as JQ,stat as HD}from"fs/promises";import{join as g$,dirname as OD}from"path";async function LD($){try{await qD($,{recursive:!0})}catch{}}function uj($,Z,Y){return g$($,Y,`${Z}.json`)}async function gj($,Z,Y){if((Date.now()-$.createdAt)/86400000>Y)return!1;if(await v7(Z)!==$.srcMtime)return!1;return!0}async function h$($,Z,Y,X=f7){if(!X.enabled)return null;let J=f$($,Z),Q=J6.get(J);if(Q){if(await gj(Q,$,X.maxAge))return Q.lastAccessedAt=Date.now(),Q.data;J6.delete(J)}let G=uj(X.directory,J,Y);if(await $1(G))try{let K=await hj(G,"utf-8"),W=JSON.parse(K);if(await gj(W,$,X.maxAge))return W.lastAccessedAt=Date.now(),J6.set(J,W),W.data}catch{}return null}async function d$($,Z,Y,X,J=f7){if(!J.enabled)return;let Q=f$($,Z),G=await e0($),K=await v7($),W={key:Q,src:$,srcHash:G,srcMtime:K,optionsHash:f$("",Z),data:Y,createdAt:Date.now(),lastAccessedAt:Date.now()};J6.set(Q,W);let U=uj(J.directory,Q,X);try{await LD(OD(U)),await jD(U,JSON.stringify(W,null,2))}catch(_){console.warn(`[stx-media] Failed to write cache: ${_}`)}}async function u$($,Z=f7){if($==="all")J6.clear();else J6.clear();let Y=$==="all"?["image","video"]:[$];for(let X of Y){let J=g$(Z.directory,X);try{await JQ(J,{recursive:!0,force:!0})}catch{}}}async function mj($=f7){let Z={memoryEntries:J6.size,diskEntries:{image:0,video:0},totalSizeMB:0};for(let Y of["image","video"]){let X=g$($.directory,Y);try{let J=await dj(X);Z.diskEntries[Y]=J.length;for(let Q of J){let G=g$(X,Q),K=await HD(G);Z.totalSizeMB+=K.size/1048576}}catch{}}return Z}async function cj($=f7){let Z=0,Y=$.maxAge*24*60*60*1000;for(let X of["image","video"]){let J=g$($.directory,X);try{let Q=await dj(J);for(let G of Q){let K=g$(J,G);try{let W=await hj(K,"utf-8"),U=JSON.parse(W);if(Date.now()-U.createdAt>Y)await JQ(K),J6.delete(U.key),Z++}catch{await JQ(K).catch(()=>{}),Z++}}}catch{}}return Z}var J6,f7;var XY=D(()=>{X6();J6=new Map,f7={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}});class m${config;constructor($={}){this.config={...VD,...$}}async get($,Z){return h$($,Z,"image",this.config)}async set($,Z,Y){return d$($,Z,Y,"image",this.config)}async clear(){return u$("image",this.config)}updateConfig($){this.config={...this.config,...$}}}function QQ($){if(!JY)JY=new m$($);else if($)JY.updateConfig($);return JY}async function c$($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return QQ(X).get($,Z)}async function l$($,Z,Y,X){let J=X?{directory:`${X.outputDir}/../.cache`}:{};return QQ(J).set($,Z,Y)}async function GQ(){return QQ().clear()}var VD,JY=null;var KQ=D(()=>{XY();VD={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500,cacheVariants:!0,cachePlaceholders:!0}});import{resolve as FD,basename as AD,extname as ND,join as wD}from"path";import{mkdir as RD}from"fs/promises";async function WQ(){try{return await import("ts-images")}catch{return null}}function lj($){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 MD($,Z){let Y=Z?lj(Z):lj("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 UQ($,Z,Y){let X=await WQ();if(!X)return console.warn("[stx-media] ts-images not installed, skipping optimization"),{src:$,processed:!1};let J=await c$($,Z,Y);if(J)return J;try{let Q=FD($);if(!await $1(Q))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let G=MD(Y,Z.preset),K=Y.outputDir||"dist/images",W=Y.baseUrl||"/images";await RD(K,{recursive:!0});let U=await e0(Q),_=AD($,ND($)),z=Z.outputFormat?[Z.outputFormat]:Y.defaultFormats||["avif","webp","jpeg"],B={src:$,processed:!0,variants:[],hash:U},q=null;if(Z.transformations&&Z.transformations.length>0)q=await g7(Q,Z.transformations,X);for(let j of z){let H=G[j]||{},O=`${_}-${U}.${j}`,V=wD(K,O);try{let L=await X.optimizeImage({input:q||Q,output:V,format:j,quality:H.quality,progressive:H.progressive});if(L){if(B.variants.push({path:V,url:`${W}/${O}`,width:L.width||0,height:L.height||0,format:j,size:L.outputSize||0}),!B.originalWidth&&L.width)B.originalWidth=L.width,B.originalHeight=L.height}}catch(L){B.errors=B.errors||[],B.errors.push(`Failed to optimize ${j}: ${L}`)}}if(Z.embedThumbhash||Z.placeholder==="thumbhash")try{let j=await X.generateThumbHash(Q);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(Q,{strategy:"dominant-color"});B.dominantColor=j.dominantColor}catch(j){B.errors=B.errors||[],B.errors.push(`Failed to extract dominant color: ${j}`)}return await l$($,Z,B,Y),B}catch(Q){return{src:$,processed:!1,errors:[`Processing failed: ${Q}`]}}}async function _Q($,Z,Y,X){let J=await WQ();if(!J)return{success:!1,error:"ts-images not installed"};try{return{success:!0,size:(await J.optimizeImage({input:$,output:X,format:Z,quality:Y}))?.outputSize}}catch(Q){return{success:!1,error:String(Q)}}}async function g7($,Z,Y){let X=Y||await WQ();if(!X)return console.warn("[stx-media] ts-images not installed, skipping transformations"),null;try{let J=await X.decode($);for(let Q of Z){let G=Q.options||{};switch(Q.type){case"resize":if(G.width||G.height)J=await X.resize(J,{width:G.width,height:G.height,fit:G.fit});break;case"blur":if(G.sigma!==void 0)J=await X.blur(J,G.sigma);break;case"sharpen":if(G.amount!==void 0)J=await X.sharpen(J,G.amount);break;case"grayscale":J=await X.grayscale(J);break;case"rotate":if(G.angle!==void 0)J=await X.rotate(J,G.angle);break;case"flip":J=await X.flip(J);break;case"flop":J=await X.flop(J);break;case"brightness":if(G.value!==void 0)J=await X.brightness(J,G.value);break;case"contrast":if(G.value!==void 0)J=await X.contrast(J,G.value);break;case"saturation":if(G.value!==void 0)J=await X.saturation(J,G.value);break}}return await X.encode(J,"png")}catch(J){return console.error(`[stx-media] Transformation failed: ${J}`),null}}var pj=D(()=>{X6();KQ()});import{resolve as TD,basename as ED,extname as ID,join as DD}from"path";import{mkdir as kD}from"fs/promises";async function SD(){try{return await import("ts-images")}catch{return null}}async function QY($,Z,Y){let X=await SD();if(!X)return console.warn("[stx-media] ts-images not installed, skipping responsive generation"),null;let J=TD($);if(!await $1(J))return console.warn(`[stx-media] Source file not found: ${$}`),null;try{let Q=Z.responsiveWidths||Y.breakpoints||CD,G=Z.formats||Y.defaultFormats||["avif","webp","jpeg"],K=Y.outputDir||"dist/images",W=Y.baseUrl||"/images";await kD(K,{recursive:!0});let U=await e0(J),_=ED($,ID($)),z=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 O of Q){let V=`${_}-${O}w-${U}.${j}`,L=DD(K,V),F=`${W}/${V}`;try{let A=z[j]?.quality||80;if(await $1(L)){B.byFormat[j].push({path:L,url:F,width:O,height:0,format:j,size:0}),H.push(`${F} ${O}w`);continue}let N=await X.processImage({input:J,output:L,format:j,quality:A,resize:{width:O}});if(N)B.byFormat[j].push({path:L,url:F,width:O,height:N.height||Math.round(O*(N.height||1)/(N.width||1)),format:j,size:N.outputSize||0}),H.push(`${F} ${O}w`)}catch(A){console.warn(`[stx-media] Failed to generate ${j} at ${O}w: ${A}`)}}B.srcsets[j]=H.join(", ")}let q=Z.placeholder||Y.placeholderStrategy||"thumbhash";if(q!=="none")try{if(q==="thumbhash"){let j=await X.generateThumbHash(J);B.placeholder={dataURL:j.dataUrl,width:j.width||32,height:j.height||32,strategy:"thumbhash"}}else{let j=await X.generatePlaceholder(J,{strategy:q,width:20});B.placeholder={dataURL:j.dataURL,width:j.width,height:j.height,strategy:q}}}catch(j){console.warn(`[stx-media] Failed to generate placeholder: ${j}`)}return B.sizes=Z.sizes||bD(Q),B}catch(Q){return console.error(`[stx-media] Responsive generation failed: ${Q}`),null}}function bD($){let Z=[...$].sort((X,J)=>X-J),Y=[];for(let X=0;X<Z.length-1;X++){let J=Z[X];Y.push(`(max-width: ${J}px) ${J}px`)}return Y.push(`${Z[Z.length-1]}px`),Y.join(", ")}function GY($,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 CD;var ij=D(()=>{X6();CD=[320,480,640,768,1024,1280,1536,1920]});var nj={};e(nj,{setCachedImageResult:()=>l$,processImage:()=>UQ,optimizeImage:()=>_Q,getCachedImageResult:()=>c$,generateSrcset:()=>GY,generateResponsiveVariants:()=>QY,clearImageCache:()=>GQ,applyTransformations:()=>g7,ImageProcessorCache:()=>m$});var zQ=D(()=>{pj();ij();KQ()});async function PD(){try{return await Promise.resolve().then(() => (zQ(),nj))}catch($){if(!rj)console.warn("[stx-media] Image processor not available, some features disabled:",$),rj=!0;return null}}async function Q6($,Z={}){let Y=Z,X=$;if(X.process&&!X.skipOptimization){if(Y.tsImagesConfig?.enabled&&!Y.isDev)return fD(X,Y)}if(Y.processedResult?.processed)return OQ($,Y.processedResult,Z);if(Y.responsiveVariants)return tj($,Y.responsiveVariants,Z);let{src:J,alt:Q,width:G,height:K,sizes:W,widths:U=Y4,dpr:_,formats:z=H4,quality:B=BQ,params:q={},placeholder:j="none",placeholderOptions:H={},lazy:O=!0,priority:V=!1,loading:L=V?"eager":WY,decoding:F=KY,fetchpriority:A,objectFit:N,objectPosition:w,crossorigin:R,referrerpolicy:T}=$,E=$.class,I=$.style,k=$.id,S=$.data||{},{isDev:x=!1,baseUrl:P=""}=Z;if(x&&!Z.optimize)return vD($);let C,g,s=k||`stx-img-${Math.random().toString(36).slice(2,8)}`;if(j!=="none"&&!V)try{C=await x7(J,{strategy:j,...H}),g=y7(s,C,H)}catch{}let m=_!==void 0&&G!==void 0,b;if(m)b=xD($,s,C,Z);else b=await yD($,s,C,Z);let d;if(V){let a=z.includes("webp")?"webp":z[0],B0=Y6(J,U,{...q,q:B},a),Q0=typeof W==="object"?y$(W):W||"100vw";d=`<link rel="preload" as="image" imagesrcset="${B0}" imagesizes="${Q0}" />`}let l=[];if(!aj&&j!=="none")l.push(v$),aj=!0;if(g)l.push(g);let r=O?oj(s):void 0;return{html:b,preloadLink:d,css:l.length>0?l.join(`
10531
+ `):void 0,script:r}}async function yD($,Z,Y,X){let{src:J,alt:Q,width:G,height:K,sizes:W,widths:U=Y4,formats:_=H4,quality:z=BQ,params:B={},lazy:q=!0,priority:j=!1,loading:H=j?"eager":WY,decoding:O=KY,fetchpriority:V,objectFit:L,objectPosition:F,crossorigin:A,referrerpolicy:N}=$,w=$.class,R=$.style,T=$.data||{},E=typeof W==="object"?y$(W):W||"100vw",I=[];for(let x of _){let P=Y6(J,U,{...B,q:z},x),C=b7(x);if(q&&!j)I.push(` <source type="${C}" data-srcset="${P}" data-sizes="${E}" />`);else I.push(` <source type="${C}" srcset="${P}" sizes="${E}" />`)}let k=qQ({src:m1(J,{...B,q:z}),alt:Q,width:G,height:K,loading:j?void 0:H,decoding:O,fetchpriority:j?"high":V,objectFit:L,objectPosition:F,crossorigin:A,referrerpolicy:N,className:sj(w,Y),style:jQ(R,L,F,Y),lazy:q&&!j,data:T}),S;if(Y){let x=`background-image: url('${Y.dataURL}'); background-size: cover; background-position: center;`;S=`<div id="${Z}" class="stx-img-placeholder" style="${x}">
10532
10532
  <picture>
10533
10533
  ${I.join(`
10534
10534
  `)}
@@ -10587,7 +10587,7 @@ ${N.join(`
10587
10587
  ${N.join(`
10588
10588
  `)}
10589
10589
  <img ${R.join(" ")} />
10590
- </picture>`;let y=[];if(Z.placeholder)y.push(v$);let P=G?oj(j):void 0,C;if(K&&F)C=`<link rel="preload" as="image" imagesrcset="${F}" />`;return{html:S,preloadLink:C,css:y.length>0?y.join(`
10590
+ </picture>`;let x=[];if(Z.placeholder)x.push(v$);let P=G?oj(j):void 0,C;if(K&&F)C=`<link rel="preload" as="image" imagesrcset="${F}" />`;return{html:S,preloadLink:C,css:x.length>0?x.join(`
10591
10591
  `):void 0,script:P}}async function tj($,Z,Y){let X={src:Z.src,processed:!0,variants:[],placeholder:Z.placeholder?.dataURL,originalWidth:Z.placeholder?.width,originalHeight:Z.placeholder?.height};for(let[J,Q]of Object.entries(Z.byFormat))if(Q)X.variants.push(...Q);return OQ($,X,Y)}var rj=!1,BQ=80,KY="async",WY="lazy",aj=!1;var LQ=D(()=>{$Y();YQ()});function _Y(){return v0({name:"img",hasEndTag:!1,description:"Render an optimized responsive image with srcset and lazy loading",transform:async($,Z,Y,X)=>{let{src:J,alt:Q,options:G}=gD($,Z,Y);if(!J)return console.warn("@img directive: missing src argument"),"<!-- @img: missing src -->";let K={src:J,alt:Q||"",widths:G.widths||Y4,formats:G.formats||H4,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},W=Y.__isDev||!1,U=await Q6(K,{isDev:W}),_=U.html;if(U.preloadLink)_=U.preloadLink+`
10592
10592
  `+_;if(U.css)_+=`
10593
10593
  <style>${U.css}</style>`;if(U.script)_+=`
@@ -10618,9 +10618,9 @@ ${N.join(`
10618
10618
  </Representation>
10619
10619
  `}K+=` </AdaptationSet>
10620
10620
  `}return K+=` </Period>
10621
- </MPD>`,K}function ej($){let Z=Math.floor($/3600),Y=Math.floor($%3600/60),X=Math.floor($%60),J="PT";if(Z>0)J+=`${Z}H`;if(Y>0)J+=`${Y}M`;return J+=`${X}S`,J}var QH;var DQ=D(()=>{X6();QH=[{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 GH,basename as cD,extname as lD,join as pD}from"path";import{mkdir as iD}from"fs/promises";async function KH(){try{return await import("ts-videos")}catch{return null}}function nD($){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 rD($){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 d7($){let Z=await KH();if(!Z)return null;try{let Y=GH($),J=await new Z.Input(Y).getInfo();return{duration:J.duration||0,width:J.width||0,height:J.height||0,frameRate:J.frameRate||0,bitrate:J.bitrate||0,codec:J.videoCodec||"",audioCodec:J.audioCodec}}catch(Y){return console.warn(`[stx-media] Failed to analyze video: ${Y}`),null}}async function OY($,Z,Y,X){let J=await KH();if(!J)return console.warn("[stx-media] ts-videos not installed, skipping processing"),{src:$,processed:!1};let Q=await i$($,Z,Y);if(Q)return Q;try{let G=GH($);if(!await $1(G))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let K=Y.outputDir||"dist/videos",W=Y.baseUrl||"/videos";await iD(K,{recursive:!0});let U=await e0(G),_=cD($,lD($)),z={src:$,processed:!0,hash:U};X?.({percentage:5,stage:"analyzing"}),z.metadata=await d7(G)||void 0;let B={};if(Z.quality)B.bitrate=nD(Z.quality);if(Z.platform)Object.assign(B,rD(Z.platform));if(Z.transcode)Object.assign(B,Z.transcode);if(Object.keys(B).length>0||Z.process){X?.({percentage:10,stage:"transcoding"});let q=`${_}-${U}.mp4`,j=pD(K,q);try{let H=await aD(G,j,B,J,(O)=>X?.({percentage:10+O*0.5,stage:"transcoding"}));if(H)z.transcoded={path:j,url:`${W}/${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){z.errors=z.errors||[],z.errors.push(`Transcoding failed: ${H}`)}}if(Z.generatePoster){X?.({percentage:65,stage:"generating-poster"});let q=typeof Z.generatePoster==="object"?Z.generatePoster:{timestamp:0},j=await r$(G,q,K,W);if(j)z.poster=j}if(Y.thumbnails?.enabled){X?.({percentage:70,stage:"generating-thumbnails"});let q=await a$(G,Y.thumbnails,K,W);if(q.length>0)z.thumbnails=q}if(Z.streaming){X?.({percentage:80,stage:"generating-manifests"});let q=typeof Z.streaming==="object"?Z.streaming:Y.streaming||{format:"hls"};if(q.format==="hls"||q.format===void 0){let j=await s$(G,q.qualities||Y.streaming?.defaultQualities||[],K,W);if(j)z.streaming={...z.streaming,hls:j}}if(q.format==="dash"){let j=await o$(G,q.qualities||Y.streaming?.defaultQualities||[],K,W);if(j)z.streaming={...z.streaming,dash:j}}}if(Z.spriteSheet)X?.({percentage:90,stage:"generating-sprite-sheet"});return X?.({percentage:100,stage:"complete"}),await n$($,Z,z,Y),z}catch(G){return{src:$,processed:!1,errors:[`Processing failed: ${G}`]}}}async function aD($,Z,Y,X,J){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)=>{J?.(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(Q){return console.error(`[stx-media] Transcoding failed: ${Q}`),null}}var WH=D(()=>{X6();NQ();IQ();DQ()});var UH={};e(UH,{setCachedVideoResult:()=>n$,processVideo:()=>OY,getCachedVideoResult:()=>i$,generateThumbnails:()=>a$,generateSpriteSheet:()=>jY,generatePoster:()=>r$,generateHLSManifest:()=>s$,generateDASHManifest:()=>o$,clearVideoCache:()=>BY,analyzeVideo:()=>d7,VideoProcessorCache:()=>p$});var kQ=D(()=>{WH();IQ();DQ();NQ()});async function zH(){try{return await Promise.resolve().then(() => (kQ(),UH))}catch($){if(!_H)console.warn("[stx-media] Video processor not available, some features disabled:",$),_H=!0;return null}}async function t$($,Z={}){let Y=Z,X=$;if(X.process&&!X.skipProcessing){if(Y.tsVideosConfig?.enabled&&!Y.isDev)return Zk(X,Y)}if(Y.processedResult?.processed)return OH($,Y.processedResult,Z);let J;if(X.generatePoster&&X.src&&!$.poster)J=await Yk(X,Y);let{src:Q,sources:G=[],poster:K,posterPlaceholder:W,controls:U=BH,autoplay:_=!1,muted:z=!1,loop:B=!1,preload:q=qH,playsinline:j=!0,lazy:H=!0,player:O="native",type:V,width:L,height:F,crossorigin:A,disablePictureInPicture:N=!1,disableRemotePlayback:w=!1}=$,R=J||K,T=$.class,E=$.style,I=$.id||`stx-video-${Math.random().toString(36).slice(2,8)}`;if(O==="ts-video")return tD($,Z);if(V&&V!=="video")return oD(Q||"",V,$);let k=G.length>0?G:Q?[{src:Q,type:jH(Q)}]:[],S=[`id="${I}"`];if(U)S.push("controls");if(_)S.push("autoplay");if(z)S.push("muted");if(B)S.push("loop");if(j)S.push("playsinline");if(N)S.push("disablepictureinpicture");if(w)S.push("disableremoteplayback");if(A)S.push(`crossorigin="${A}"`);if(H){if(S.push(`data-preload="${q}"`),S.push('preload="none"'),R)S.push(`data-poster="${n0(R)}"`);S.push("data-stx-lazy")}else if(S.push(`preload="${q}"`),R)S.push(`poster="${n0(R)}"`);if(L)S.push(`width="${L}"`);if(F)S.push(`height="${F}"`);if(T)S.push(`class="${n0(T)}"`);if(E)S.push(`style="${n0(E)}"`);let y=k.map((g)=>{return` <source ${H?`data-src="${n0(g.src)}"`:`src="${n0(g.src)}"`} type="${g.type}"${g.media?` media="${g.media}"`:""} />`}).join(`
10621
+ </MPD>`,K}function ej($){let Z=Math.floor($/3600),Y=Math.floor($%3600/60),X=Math.floor($%60),J="PT";if(Z>0)J+=`${Z}H`;if(Y>0)J+=`${Y}M`;return J+=`${X}S`,J}var QH;var DQ=D(()=>{X6();QH=[{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 GH,basename as cD,extname as lD,join as pD}from"path";import{mkdir as iD}from"fs/promises";async function KH(){try{return await import("ts-videos")}catch{return null}}function nD($){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 rD($){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 d7($){let Z=await KH();if(!Z)return null;try{let Y=GH($),J=await new Z.Input(Y).getInfo();return{duration:J.duration||0,width:J.width||0,height:J.height||0,frameRate:J.frameRate||0,bitrate:J.bitrate||0,codec:J.videoCodec||"",audioCodec:J.audioCodec}}catch(Y){return console.warn(`[stx-media] Failed to analyze video: ${Y}`),null}}async function OY($,Z,Y,X){let J=await KH();if(!J)return console.warn("[stx-media] ts-videos not installed, skipping processing"),{src:$,processed:!1};let Q=await i$($,Z,Y);if(Q)return Q;try{let G=GH($);if(!await $1(G))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let K=Y.outputDir||"dist/videos",W=Y.baseUrl||"/videos";await iD(K,{recursive:!0});let U=await e0(G),_=cD($,lD($)),z={src:$,processed:!0,hash:U};X?.({percentage:5,stage:"analyzing"}),z.metadata=await d7(G)||void 0;let B={};if(Z.quality)B.bitrate=nD(Z.quality);if(Z.platform)Object.assign(B,rD(Z.platform));if(Z.transcode)Object.assign(B,Z.transcode);if(Object.keys(B).length>0||Z.process){X?.({percentage:10,stage:"transcoding"});let q=`${_}-${U}.mp4`,j=pD(K,q);try{let H=await aD(G,j,B,J,(O)=>X?.({percentage:10+O*0.5,stage:"transcoding"}));if(H)z.transcoded={path:j,url:`${W}/${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){z.errors=z.errors||[],z.errors.push(`Transcoding failed: ${H}`)}}if(Z.generatePoster){X?.({percentage:65,stage:"generating-poster"});let q=typeof Z.generatePoster==="object"?Z.generatePoster:{timestamp:0},j=await r$(G,q,K,W);if(j)z.poster=j}if(Y.thumbnails?.enabled){X?.({percentage:70,stage:"generating-thumbnails"});let q=await a$(G,Y.thumbnails,K,W);if(q.length>0)z.thumbnails=q}if(Z.streaming){X?.({percentage:80,stage:"generating-manifests"});let q=typeof Z.streaming==="object"?Z.streaming:Y.streaming||{format:"hls"};if(q.format==="hls"||q.format===void 0){let j=await s$(G,q.qualities||Y.streaming?.defaultQualities||[],K,W);if(j)z.streaming={...z.streaming,hls:j}}if(q.format==="dash"){let j=await o$(G,q.qualities||Y.streaming?.defaultQualities||[],K,W);if(j)z.streaming={...z.streaming,dash:j}}}if(Z.spriteSheet)X?.({percentage:90,stage:"generating-sprite-sheet"});return X?.({percentage:100,stage:"complete"}),await n$($,Z,z,Y),z}catch(G){return{src:$,processed:!1,errors:[`Processing failed: ${G}`]}}}async function aD($,Z,Y,X,J){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)=>{J?.(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(Q){return console.error(`[stx-media] Transcoding failed: ${Q}`),null}}var WH=D(()=>{X6();NQ();IQ();DQ()});var UH={};e(UH,{setCachedVideoResult:()=>n$,processVideo:()=>OY,getCachedVideoResult:()=>i$,generateThumbnails:()=>a$,generateSpriteSheet:()=>jY,generatePoster:()=>r$,generateHLSManifest:()=>s$,generateDASHManifest:()=>o$,clearVideoCache:()=>BY,analyzeVideo:()=>d7,VideoProcessorCache:()=>p$});var kQ=D(()=>{WH();IQ();DQ();NQ()});async function zH(){try{return await Promise.resolve().then(() => (kQ(),UH))}catch($){if(!_H)console.warn("[stx-media] Video processor not available, some features disabled:",$),_H=!0;return null}}async function t$($,Z={}){let Y=Z,X=$;if(X.process&&!X.skipProcessing){if(Y.tsVideosConfig?.enabled&&!Y.isDev)return Zk(X,Y)}if(Y.processedResult?.processed)return OH($,Y.processedResult,Z);let J;if(X.generatePoster&&X.src&&!$.poster)J=await Yk(X,Y);let{src:Q,sources:G=[],poster:K,posterPlaceholder:W,controls:U=BH,autoplay:_=!1,muted:z=!1,loop:B=!1,preload:q=qH,playsinline:j=!0,lazy:H=!0,player:O="native",type:V,width:L,height:F,crossorigin:A,disablePictureInPicture:N=!1,disableRemotePlayback:w=!1}=$,R=J||K,T=$.class,E=$.style,I=$.id||`stx-video-${Math.random().toString(36).slice(2,8)}`;if(O==="ts-video")return tD($,Z);if(V&&V!=="video")return oD(Q||"",V,$);let k=G.length>0?G:Q?[{src:Q,type:jH(Q)}]:[],S=[`id="${I}"`];if(U)S.push("controls");if(_)S.push("autoplay");if(z)S.push("muted");if(B)S.push("loop");if(j)S.push("playsinline");if(N)S.push("disablepictureinpicture");if(w)S.push("disableremoteplayback");if(A)S.push(`crossorigin="${A}"`);if(H){if(S.push(`data-preload="${q}"`),S.push('preload="none"'),R)S.push(`data-poster="${n0(R)}"`);S.push("data-stx-lazy")}else if(S.push(`preload="${q}"`),R)S.push(`poster="${n0(R)}"`);if(L)S.push(`width="${L}"`);if(F)S.push(`height="${F}"`);if(T)S.push(`class="${n0(T)}"`);if(E)S.push(`style="${n0(E)}"`);let x=k.map((g)=>{return` <source ${H?`data-src="${n0(g.src)}"`:`src="${n0(g.src)}"`} type="${g.type}"${g.media?` media="${g.media}"`:""} />`}).join(`
10622
10622
  `),P=`<video ${S.join(" ")}>
10623
- ${y}
10623
+ ${x}
10624
10624
  Your browser does not support the video tag.
10625
10625
  </video>`,C;if(H)C=`
10626
10626
  (function() {
@@ -10866,7 +10866,7 @@ ${k}
10866
10866
 
10867
10867
  observer.observe(video);
10868
10868
  })();
10869
- `.trim();let y;if(A)y=`
10869
+ `.trim();let x;if(A)x=`
10870
10870
  .stx-video-wrapper {
10871
10871
  position: relative;
10872
10872
  width: 100%;
@@ -10875,7 +10875,7 @@ ${k}
10875
10875
  width: 100%;
10876
10876
  height: auto;
10877
10877
  }
10878
- `.trim();return{html:k,script:S,css:y}}var _H=!1,BH=!0,qH="metadata",sD="https://cdn.jsdelivr.net/npm/ts-video-player@latest/dist/index.min.js";var SQ=D(()=>{CQ()});function LY(){return v0({name:"video",hasEndTag:!1,description:"Render a video with optional ts-videos processing, streaming, and poster generation",transform:async($,Z,Y,X)=>{let{src:J,options:Q}=Xk($,Z,Y);if(!J)return console.warn("@video directive: missing src argument"),"<!-- @video: missing src -->";let G={src:J,poster:Q.poster,controls:Q.controls!==!1,autoplay:Q.autoplay||!1,muted:Q.muted||!1,loop:Q.loop||!1,preload:Q.preload||"metadata",playsinline:Q.playsinline!==!1,lazy:Q.lazy!==!1,player:Q.player||"native",type:Q.type,width:Q.width,height:Q.height,class:Q.class,style:Q.style,id:Q.id,crossorigin:Q.crossorigin,disablePictureInPicture:Q.disablePictureInPicture,disableRemotePlayback:Q.disableRemotePlayback,title:Q.title,quality:Q.quality,platform:Q.platform,process:Q.process,generatePoster:Q.generatePoster,streaming:Q.streaming,transcode:Q.transcode,spriteSheet:Q.spriteSheet,waveform:Q.waveform},W={isDev:Y.__isDev||!1,tsVideosConfig:Y.__tsVideosConfig},U=await t$(G,W),_=U.html;if(U.css)_+=`
10878
+ `.trim();return{html:k,script:S,css:x}}var _H=!1,BH=!0,qH="metadata",sD="https://cdn.jsdelivr.net/npm/ts-video-player@latest/dist/index.min.js";var SQ=D(()=>{CQ()});function LY(){return v0({name:"video",hasEndTag:!1,description:"Render a video with optional ts-videos processing, streaming, and poster generation",transform:async($,Z,Y,X)=>{let{src:J,options:Q}=Xk($,Z,Y);if(!J)return console.warn("@video directive: missing src argument"),"<!-- @video: missing src -->";let G={src:J,poster:Q.poster,controls:Q.controls!==!1,autoplay:Q.autoplay||!1,muted:Q.muted||!1,loop:Q.loop||!1,preload:Q.preload||"metadata",playsinline:Q.playsinline!==!1,lazy:Q.lazy!==!1,player:Q.player||"native",type:Q.type,width:Q.width,height:Q.height,class:Q.class,style:Q.style,id:Q.id,crossorigin:Q.crossorigin,disablePictureInPicture:Q.disablePictureInPicture,disableRemotePlayback:Q.disableRemotePlayback,title:Q.title,quality:Q.quality,platform:Q.platform,process:Q.process,generatePoster:Q.generatePoster,streaming:Q.streaming,transcode:Q.transcode,spriteSheet:Q.spriteSheet,waveform:Q.waveform},W={isDev:Y.__isDev||!1,tsVideosConfig:Y.__tsVideosConfig},U=await t$(G,W),_=U.html;if(U.css)_+=`
10879
10879
  <style>${U.css}</style>`;if(U.script)_+=`
10880
10880
  <script>${U.script}</script>`;return _},defaults:{src:"",options:{controls:!0,lazy:!0,preload:"metadata"}}})}function Xk($,Z,Y){if(Z.src)return{src:String(Z.src),options:Z.options||{}};let X=$.trim();if(X.startsWith("@video(")||X.startsWith("("))X=X.replace(/^@video\(/,"").replace(/^\(/,"").replace(/\)$/,"");let J=Jk(X),Q=LH(J[0],Y)||"",G={};if(J[1]){let K=LH(J[1],Y);if(typeof K==="object"&&K!==null)G=K;else if(typeof J[1]==="string")try{G=JSON.parse(J[1])}catch{}}return{src:Q,options:G}}function Jk($){let Z=[],Y="",X=!1,J="",Q=0,G=0;for(let K=0;K<$.length;K++){let W=$[K],U=K>0?$[K-1]:"";if((W==='"'||W==="'"||W==="`")&&U!=="\\"){if(!X)X=!0,J=W;else if(W===J)X=!1,J="";else Y+=W;continue}if(!X){if(W==="{")Q++;if(W==="}")Q--;if(W==="[")G++;if(W==="]")G--;if(W===","&&Q===0&&G===0){Z.push(Y.trim()),Y="";continue}}Y+=W}if(Y.trim())Z.push(Y.trim());return Z}function LH($,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 u7;var CQ=D(()=>{k7();SQ();u7=LY()});function Qk($,Z){let Y=Z.pwa?.manifest?.themeColor||"#4f46e5";return`<div class="stx-pwa-install" style="display:none;">
10881
10881
  ${$}
@@ -11417,7 +11417,7 @@ else { this.removeAttribute('${I}'); }`:`this.setAttribute('${I}', ${E.type==="o
11417
11417
  }
11418
11418
  else {
11419
11419
  this.removeAttribute('${I}');
11420
- }`:"",S=E.observer?`this.${E.observer}(value, oldValue);`:"",y=E.render!==!1?"this._scheduleRender();":"";return`
11420
+ }`:"",S=E.observer?`this.${E.observer}(value, oldValue);`:"",x=E.render!==!1?"this._scheduleRender();":"";return`
11421
11421
  get ${T}() {
11422
11422
  return this._${T};
11423
11423
  }
@@ -11427,7 +11427,7 @@ else {
11427
11427
  if (oldValue === value) return;
11428
11428
  this._${T} = value;${k}
11429
11429
  ${S}
11430
- ${y}
11430
+ ${x}
11431
11431
  this.dispatchEvent(new CustomEvent('${T}-changed', {
11432
11432
  detail: { value, oldValue },
11433
11433
  bubbles: true
@@ -11632,7 +11632,7 @@ export interface ${B}State {
11632
11632
  [key: string]: unknown;
11633
11633
  }
11634
11634
  `,L=q.map((E)=>{let I=K[E],k=H(I.type);return` private _${E}: ${k};`}).join(`
11635
- `),F=q.map((E)=>{let I=K[E],k=H(I.type),S=I.attribute!==!1?I.attribute||e$(E):null,y=I.default!==void 0?JSON.stringify(I.default):I.type==="string"?'""':I.type==="number"?"0":I.type==="boolean"?"false":I.type==="array"?"[]":"{}",P=I.reflect&&S?`
11635
+ `),F=q.map((E)=>{let I=K[E],k=H(I.type),S=I.attribute!==!1?I.attribute||e$(E):null,x=I.default!==void 0?JSON.stringify(I.default):I.type==="string"?'""':I.type==="number"?"0":I.type==="boolean"?"false":I.type==="array"?"[]":"{}",P=I.reflect&&S?`
11636
11636
  if (value !== null && value !== undefined) {
11637
11637
  ${I.type==="boolean"?`if (value) { this.setAttribute('${S}', ''); }
11638
11638
  else { this.removeAttribute('${S}'); }`:`this.setAttribute('${S}', ${I.type==="object"||I.type==="array"?"JSON.stringify(value)":"String(value)"});`}
@@ -11656,7 +11656,7 @@ else {
11656
11656
  }));
11657
11657
  }
11658
11658
 
11659
- // Property default: ${y}`}).join(`
11659
+ // Property default: ${x}`}).join(`
11660
11660
  `),A=j.length>0?`
11661
11661
  static get observedAttributes(): string[] {
11662
11662
  return [${j.map((E)=>`'${E}'`).join(", ")}];
@@ -12728,7 +12728,7 @@ Check your site ID or create a new site at https://app.netlify.com`,"SITE_NOT_FO
12728
12728
  `),J&&!J.endsWith(`
12729
12729
  `))J+=`
12730
12730
  `}J+=`NETLIFY_SITE_ID=${$.siteId}
12731
- `,await Bun.write(X,J)}return{configPath:Y,siteId:$.siteId}}function ik($){let Z=process.platform,Y=Z==="darwin"?"open":Z==="win32"?"start":"xdg-open";Bun.spawn([Y,$],{stdio:["ignore","ignore","ignore"]})}var F4;var SY=D(()=>{pQ();pQ();F4=class F4 extends Error{code;constructor($,Z){super($);this.name="DeployError",this.code=Z}}});var mH={};e(mH,{resizeAndConvert:()=>uH,processImage:()=>p1,isSharpAvailable:()=>_5,isImageFile:()=>z5,isImageBackendAvailable:()=>l1,groupVariantsByFormat:()=>d6,getTotalSize:()=>t7,getMimeType:()=>k1,getImageMetadata:()=>f6,getFallbackVariant:()=>h6,generateSrcSet:()=>_6,generateSizes:()=>g6,formatSize:()=>e7,ImageProcessingError:()=>u6,DEFAULT_WIDTHS:()=>E1,DEFAULT_QUALITY:()=>D1,DEFAULT_FORMATS:()=>I1});import aQ from"fs";import U5 from"path";import hH from"os";import sQ from"crypto";import{generatePlaceholder as nk,processImage as rk}from"ts-images";async function CY(){if(gH)return rQ;gH=!0;try{let $=await import("sharp");return rQ=$.default||$,rQ}catch{return null}}async function _5(){return await CY()!==null}async function l1(){return!0}async function p1($,Z={}){let{widths:Y=E1,formats:X=I1,quality:J=D1,fit:Q="cover",placeholder:G="none",outputDir:K=".stx/images",baseUrl:W="/images"}=Z,U,_;if(typeof $==="string"){if(_=$,!await Bun.file($).exists())throw new u6(`Image not found: ${$}`,"NOT_FOUND");U=await Bun.file($).arrayBuffer().then((A)=>Buffer.from(A))}else _="buffer-input",U=$;let z=sQ.createHash("sha256").update(U).digest("hex").slice(0,12),B=await f6(U),{width:q,height:j}=B,H=q/j;await aQ.promises.mkdir(K,{recursive:!0});let O=[],V=U5.basename(_,U5.extname(_)),L=Y.filter((A)=>A<=q);if(!L.includes(q)&&q<=Math.max(...Y))L.push(q);L.sort((A,N)=>A-N);for(let A of L){let N=Math.round(A/H);for(let w of X){let R=`${V}-${A}w-${z}.${w}`,T=U5.join(K,R),E=`${W}/${R}`,I=await uH(U,{width:A,height:N,format:w,quality:J,fit:Q});await Bun.write(T,I),O.push({path:T,url:E,width:A,height:N,format:w,size:I.length})}}let F;if(G!=="none")F=await ok(U,G);return{src:_,variants:O,placeholder:F,width:q,height:j,aspectRatio:H,hash:z}}async function f6($){let Z=typeof $==="string"?Buffer.from(await Bun.file($).arrayBuffer()):$,Y=await CY();if(Y){let J=await Y(Z).metadata();return{width:J.width||0,height:J.height||0,format:J.format||"unknown",hasAlpha:J.hasAlpha}}return sk(Z)}function sk($){if($[0]===137&&$[1]===80&&$[2]===78&&$[3]===71){let Z=$.readUInt32BE(16),Y=$.readUInt32BE(20);return{width:Z,height:Y,format:"png",hasAlpha:!0}}if($[0]===255&&$[1]===216){let Z=2;while(Z<$.length){if($[Z]!==255)break;let Y=$[Z+1];if(Y>=192&&Y<=207&&Y!==196&&Y!==200&&Y!==204){let J=$.readUInt16BE(Z+5);return{width:$.readUInt16BE(Z+7),height:J,format:"jpeg",hasAlpha:!1}}let X=$.readUInt16BE(Z+2);Z+=2+X}}if($.toString("utf8",0,4)==="RIFF"&&$.toString("utf8",8,12)==="WEBP"){let Z=$.toString("utf8",12,16);if(Z==="VP8 "){let Y=$.readUInt16LE(26)&16383,X=$.readUInt16LE(28)&16383;return{width:Y,height:X,format:"webp",hasAlpha:!1}}if(Z==="VP8L"){let Y=$.readUInt32LE(21),X=(Y&16383)+1,J=(Y>>14&16383)+1;return{width:X,height:J,format:"webp",hasAlpha:!0}}}if($.toString("utf8",0,3)==="GIF"){let Z=$.readUInt16LE(6),Y=$.readUInt16LE(8);return{width:Z,height:Y,format:"gif",hasAlpha:!0}}throw new u6("Unable to parse image dimensions","PARSE_ERROR")}async function uH($,Z){let Y=await CY();if(Y){let J=Y($).resize(Z.width,Z.height,{fit:Z.fit});switch(Z.format){case"webp":J=J.webp({quality:Z.quality});break;case"avif":J=J.avif({quality:Z.quality});break;case"jpeg":J=J.jpeg({quality:Z.quality});break;case"png":J=J.png({quality:Z.quality});break}return J.toBuffer()}let X=U5.join(hH.tmpdir(),`stx-img-${sQ.randomBytes(8).toString("hex")}.${Z.format}`);try{return await rk({input:$,output:X,format:Z.format,quality:Z.quality,resize:{width:Z.width,height:Z.height,fit:Z.fit}}),Buffer.from(await Bun.file(X).arrayBuffer())}finally{await aQ.promises.unlink(X).catch(()=>{})}}async function ok($,Z){let Y=await CY();if(Z==="blur"&&Y){let G=(await Y($).resize(20).blur(10).toBuffer()).toString("base64"),K=await f6($);return`data:${dH[K.format]||"image/jpeg"};base64,${G}`}if(Z==="dominant-color"&&Y){let{dominant:Q}=await Y($).resize(1,1).toBuffer().then(async(G)=>{let K=await Y(G).metadata();return{dominant:{r:128,g:128,b:128}}}).catch(()=>({dominant:{r:128,g:128,b:128}}));return`rgb(${Q.r}, ${Q.g}, ${Q.b})`}let X=await f6($),J=U5.join(hH.tmpdir(),`stx-ph-${sQ.randomBytes(8).toString("hex")}.${X.format==="unknown"?"bin":X.format}`);try{await Bun.write(J,$);let Q=Z==="blur"?"blur":Z==="thumbhash"?"thumbhash":"dominant-color",K=await nk(J,{strategy:Q,width:Q==="thumbhash"?void 0:32});if(Z==="dominant-color"&&K.dominantColor)return K.dominantColor;if(K.dataURL)return K.dataURL;return"rgb(128, 128, 128)"}catch{return"rgb(128, 128, 128)"}finally{await aQ.promises.unlink(J).catch(()=>{})}}function _6($,Z){return(Z?$.filter((X)=>X.format===Z):$).sort((X,J)=>X.width-J.width).map((X)=>`${X.url} ${X.width}w`).join(", ")}function g6($){if(!$||Object.keys($).length===0)return"100vw";return Object.entries($).sort((Y,X)=>{let J=Number.parseInt(Y[0].replace(/\D/g,""))||0;return(Number.parseInt(X[0].replace(/\D/g,""))||0)-J}).map(([Y,X])=>`(max-width: ${Y}) ${X}`).join(", ")+", 100vw"}function h6($){let Z=$.filter((X)=>X.format==="jpeg");if(Z.length===0)return $[Math.floor($.length/2)];let Y=Z.sort((X,J)=>X.width-J.width);return Y[Math.floor(Y.length/2)]}function d6($){let Z=new Map;for(let Y of $){let X=Z.get(Y.format)||[];X.push(Y),Z.set(Y.format,X)}return Z}function z5($){let Z=U5.extname($).toLowerCase();return ak.includes(Z)}function k1($){return dH[$]||"application/octet-stream"}function t7($){return $.reduce((Z,Y)=>Z+Y.size,0)}function e7($){if($<1024)return`${$} B`;if($<1048576)return`${($/1024).toFixed(1)} KB`;return`${($/1048576).toFixed(2)} MB`}var E1,I1,D1=80,ak,dH,rQ=null,gH=!1,u6;var m6=D(()=>{E1=[320,640,768,1024,1280,1536,1920],I1=["webp","jpeg"],ak=[".jpg",".jpeg",".png",".webp",".avif",".gif",".svg"],dH={webp:"image/webp",avif:"image/avif",jpeg:"image/jpeg",png:"image/png"};u6=class u6 extends Error{code;constructor($,Z){super($);this.name="ImageProcessingError",this.code=Z}}});var nH={};e(nH,{handleImageRequest:()=>Z8,createImageHandler:()=>bY});import cH from"fs";import $8 from"path";import tk from"crypto";async function Z8($,Z){let Y=Z.routePath??"/_stx/img",X=new URL($.url);if(X.pathname!==Y)return null;let J=YS(X,Z);if(!J.ok)return new Response(J.error,{status:J.status,headers:{"Content-Type":"text/plain"}});let{srcFsPath:Q,srcUrl:G,width:K,height:W,format:U,quality:_,fit:z}=J,B;try{B=cH.statSync(Q)}catch{return new Response(`Source image not found: ${G}`,{status:404,headers:{"Content-Type":"text/plain"}})}if(!B.isFile())return new Response("Not a file",{status:404,headers:{"Content-Type":"text/plain"}});let q=Z.cacheDir??".stx/cache/img";await cH.promises.mkdir(q,{recursive:!0});let j=`${Q}:${B.mtimeMs}:${B.size}`,H=`${K}x${W}:${U}:${_}:${z}`,O=tk.createHash("sha256").update(`${j}|${H}`).digest("hex").slice(0,16),V=$8.join(q,`${O}.${U}`),F={"Content-Type":k1(U),"Cache-Control":"public, max-age=31536000, immutable",ETag:`"${O}"`,"X-Stx-Image-Cache":"HIT"};if($.headers.get("if-none-match")===`"${O}"`)return new Response(null,{status:304,headers:F});let A=Bun.file(V);if(await A.exists())return new Response(A,{headers:F});try{let N=Buffer.from(await Bun.file(Q).arrayBuffer()),{resizeAndConvert:w}=await XS(),R=await w(N,{width:K,height:W,format:U,quality:_,fit:z});return await Bun.write(V,R),F["X-Stx-Image-Cache"]="MISS",new Response(new Uint8Array(R),{headers:F})}catch(N){let w=N.message;return new Response(`Image processing failed: ${w}`,{status:500,headers:{"Content-Type":"text/plain"}})}}function bY($){return async(Z)=>{return await Z8(Z,$)??new Response("Not Found",{status:404,headers:{"Content-Type":"text/plain"}})}}function YS($,Z){let Y=$.searchParams.get("src");if(!Y)return{ok:!1,error:"Missing required param: src",status:400};if(!Y.startsWith("/"))return{ok:!1,error:"src must be an absolute URL path (start with /)",status:400};if(Y.startsWith("//"))return{ok:!1,error:"src must be a local path",status:400};let X=$8.extname(Y).toLowerCase();if(!ek.has(X))return{ok:!1,error:`Unsupported source extension: ${X}`,status:400};let J=$8.resolve(Z.publicDir),Q=$8.resolve(J,Y.slice(1));if(!Q.startsWith(`${J}${$8.sep}`)&&Q!==J)return{ok:!1,error:"src is outside publicDir",status:400};let G=Z.maxWidth??iH,K=Z.maxHeight??iH,W=$.searchParams.get("w"),U=$.searchParams.get("h"),_=W?Number.parseInt(W,10):0,z=U?Number.parseInt(U,10):0;if(W&&(!Number.isFinite(_)||_<=0))return{ok:!1,error:"Invalid w (must be positive integer)",status:400};if(U&&(!Number.isFinite(z)||z<=0))return{ok:!1,error:"Invalid h (must be positive integer)",status:400};if(!W&&!U)return{ok:!1,error:"At least one of w or h is required",status:400};let B=Math.min(_||G,G),q=Math.min(z||K,K),j=$.searchParams.get("f")||"webp";if(!lH.has(j))return{ok:!1,error:`Invalid f (must be one of: ${[...lH].join(", ")})`,status:400};let H=j,O=$.searchParams.get("q"),V=O?Number.parseInt(O,10):Z.defaultQuality??$S;if(!Number.isFinite(V)||V<1||V>100)return{ok:!1,error:"Invalid q (must be 1-100)",status:400};let L=$.searchParams.get("fit")||Z.defaultFit||ZS;if(!pH.has(L))return{ok:!1,error:`Invalid fit (must be one of: ${[...pH].join(", ")})`,status:400};return{ok:!0,srcFsPath:Q,srcUrl:Y,width:B,height:q,format:H,quality:V,fit:L}}async function XS(){return await Promise.resolve().then(() => (m6(),mH))}var lH,pH,ek,iH=4096,$S=80,ZS="cover";var oQ=D(()=>{m6();lH=new Set(["webp","avif","jpeg","png"]),pH=new Set(["cover","contain","fill","inside","outside"]),ek=new Set([".jpg",".jpeg",".png",".webp",".avif",".gif"])});function tQ($,Z={}){let{src:Y,alt:X,width:J,height:Q,sizes:G="100vw",loading:K="lazy",priority:W=!1,quality:U=D1,placeholder:_="none",formats:z=I1,widths:B=E1,decoding:q="async",fetchpriority:j,objectFit:H,objectPosition:O}=$,V=$.class,L=$.style,{processedImage:F,variants:A,optimize:N=!0,isDev:w=!1}=Z;if(A&&A.length>0)return JS($,A,F);if(w||!N)return QS($);return GS($)}function JS($,Z,Y){let{src:X,alt:J,width:Q,height:G,sizes:K="100vw",loading:W="lazy",priority:U=!1,decoding:_="async",fetchpriority:z,objectFit:B,objectPosition:q,placeholder:j="none"}=$,H=$.class,O=$.style,V=d6(Z),L=h6(Z),F=typeof K==="object"?g6(K):K,A=Y?Y.aspectRatio:Q&&G?Number(Q)/Number(G):void 0,N=[];if(A)N.push(`aspect-ratio: ${A}`);if(B)N.push(`object-fit: ${B}`);if(q)N.push(`object-position: ${q}`);if(O)N.push(O);let w=N.length>0?` style="${N.join("; ")}"`:"",R=H?` class="${H}"`:"",T=U?"":` loading="${W}"`,E=` decoding="${_}"`,I=z?` fetchpriority="${z}"`:U?' fetchpriority="high"':"",k=["avif","webp","jpeg","png"],S=[];for(let d of k){let c=V.get(d);if(c&&c.length>0){let r=_6(c),a=k1(d);S.push(` <source type="${a}" srcset="${r}" sizes="${F}" />`)}}let y="",P="",C;if(j!=="none"&&Y?.placeholder){let d=`img-${Math.random().toString(36).slice(2,8)}`;if(y=`<div class="stx-image-wrapper" id="${d}">`,P="</div>",j==="blur")C=`
12731
+ `,await Bun.write(X,J)}return{configPath:Y,siteId:$.siteId}}function ik($){let Z=process.platform,Y=Z==="darwin"?"open":Z==="win32"?"start":"xdg-open";Bun.spawn([Y,$],{stdio:["ignore","ignore","ignore"]})}var F4;var SY=D(()=>{pQ();pQ();F4=class F4 extends Error{code;constructor($,Z){super($);this.name="DeployError",this.code=Z}}});var mH={};e(mH,{resizeAndConvert:()=>uH,processImage:()=>p1,isSharpAvailable:()=>_5,isImageFile:()=>z5,isImageBackendAvailable:()=>l1,groupVariantsByFormat:()=>d6,getTotalSize:()=>t7,getMimeType:()=>k1,getImageMetadata:()=>f6,getFallbackVariant:()=>h6,generateSrcSet:()=>_6,generateSizes:()=>g6,formatSize:()=>e7,ImageProcessingError:()=>u6,DEFAULT_WIDTHS:()=>E1,DEFAULT_QUALITY:()=>D1,DEFAULT_FORMATS:()=>I1});import aQ from"fs";import U5 from"path";import hH from"os";import sQ from"crypto";import{generatePlaceholder as nk,processImage as rk}from"ts-images";async function CY(){if(gH)return rQ;gH=!0;try{let $=await import("sharp");return rQ=$.default||$,rQ}catch{return null}}async function _5(){return await CY()!==null}async function l1(){return!0}async function p1($,Z={}){let{widths:Y=E1,formats:X=I1,quality:J=D1,fit:Q="cover",placeholder:G="none",outputDir:K=".stx/images",baseUrl:W="/images"}=Z,U,_;if(typeof $==="string"){if(_=$,!await Bun.file($).exists())throw new u6(`Image not found: ${$}`,"NOT_FOUND");U=await Bun.file($).arrayBuffer().then((A)=>Buffer.from(A))}else _="buffer-input",U=$;let z=sQ.createHash("sha256").update(U).digest("hex").slice(0,12),B=await f6(U),{width:q,height:j}=B,H=q/j;await aQ.promises.mkdir(K,{recursive:!0});let O=[],V=U5.basename(_,U5.extname(_)),L=Y.filter((A)=>A<=q);if(!L.includes(q)&&q<=Math.max(...Y))L.push(q);L.sort((A,N)=>A-N);for(let A of L){let N=Math.round(A/H);for(let w of X){let R=`${V}-${A}w-${z}.${w}`,T=U5.join(K,R),E=`${W}/${R}`,I=await uH(U,{width:A,height:N,format:w,quality:J,fit:Q});await Bun.write(T,I),O.push({path:T,url:E,width:A,height:N,format:w,size:I.length})}}let F;if(G!=="none")F=await ok(U,G);return{src:_,variants:O,placeholder:F,width:q,height:j,aspectRatio:H,hash:z}}async function f6($){let Z=typeof $==="string"?Buffer.from(await Bun.file($).arrayBuffer()):$,Y=await CY();if(Y){let J=await Y(Z).metadata();return{width:J.width||0,height:J.height||0,format:J.format||"unknown",hasAlpha:J.hasAlpha}}return sk(Z)}function sk($){if($[0]===137&&$[1]===80&&$[2]===78&&$[3]===71){let Z=$.readUInt32BE(16),Y=$.readUInt32BE(20);return{width:Z,height:Y,format:"png",hasAlpha:!0}}if($[0]===255&&$[1]===216){let Z=2;while(Z<$.length){if($[Z]!==255)break;let Y=$[Z+1];if(Y>=192&&Y<=207&&Y!==196&&Y!==200&&Y!==204){let J=$.readUInt16BE(Z+5);return{width:$.readUInt16BE(Z+7),height:J,format:"jpeg",hasAlpha:!1}}let X=$.readUInt16BE(Z+2);Z+=2+X}}if($.toString("utf8",0,4)==="RIFF"&&$.toString("utf8",8,12)==="WEBP"){let Z=$.toString("utf8",12,16);if(Z==="VP8 "){let Y=$.readUInt16LE(26)&16383,X=$.readUInt16LE(28)&16383;return{width:Y,height:X,format:"webp",hasAlpha:!1}}if(Z==="VP8L"){let Y=$.readUInt32LE(21),X=(Y&16383)+1,J=(Y>>14&16383)+1;return{width:X,height:J,format:"webp",hasAlpha:!0}}}if($.toString("utf8",0,3)==="GIF"){let Z=$.readUInt16LE(6),Y=$.readUInt16LE(8);return{width:Z,height:Y,format:"gif",hasAlpha:!0}}throw new u6("Unable to parse image dimensions","PARSE_ERROR")}async function uH($,Z){let Y=await CY();if(Y){let J=Y($).resize(Z.width,Z.height,{fit:Z.fit});switch(Z.format){case"webp":J=J.webp({quality:Z.quality});break;case"avif":J=J.avif({quality:Z.quality});break;case"jpeg":J=J.jpeg({quality:Z.quality});break;case"png":J=J.png({quality:Z.quality});break}return J.toBuffer()}let X=U5.join(hH.tmpdir(),`stx-img-${sQ.randomBytes(8).toString("hex")}.${Z.format}`);try{return await rk({input:$,output:X,format:Z.format,quality:Z.quality,resize:{width:Z.width,height:Z.height,fit:Z.fit}}),Buffer.from(await Bun.file(X).arrayBuffer())}finally{await aQ.promises.unlink(X).catch(()=>{})}}async function ok($,Z){let Y=await CY();if(Z==="blur"&&Y){let G=(await Y($).resize(20).blur(10).toBuffer()).toString("base64"),K=await f6($);return`data:${dH[K.format]||"image/jpeg"};base64,${G}`}if(Z==="dominant-color"&&Y){let{dominant:Q}=await Y($).resize(1,1).toBuffer().then(async(G)=>{let K=await Y(G).metadata();return{dominant:{r:128,g:128,b:128}}}).catch(()=>({dominant:{r:128,g:128,b:128}}));return`rgb(${Q.r}, ${Q.g}, ${Q.b})`}let X=await f6($),J=U5.join(hH.tmpdir(),`stx-ph-${sQ.randomBytes(8).toString("hex")}.${X.format==="unknown"?"bin":X.format}`);try{await Bun.write(J,$);let Q=Z==="blur"?"blur":Z==="thumbhash"?"thumbhash":"dominant-color",K=await nk(J,{strategy:Q,width:Q==="thumbhash"?void 0:32});if(Z==="dominant-color"&&K.dominantColor)return K.dominantColor;if(K.dataURL)return K.dataURL;return"rgb(128, 128, 128)"}catch{return"rgb(128, 128, 128)"}finally{await aQ.promises.unlink(J).catch(()=>{})}}function _6($,Z){return(Z?$.filter((X)=>X.format===Z):$).sort((X,J)=>X.width-J.width).map((X)=>`${X.url} ${X.width}w`).join(", ")}function g6($){if(!$||Object.keys($).length===0)return"100vw";return Object.entries($).sort((Y,X)=>{let J=Number.parseInt(Y[0].replace(/\D/g,""))||0;return(Number.parseInt(X[0].replace(/\D/g,""))||0)-J}).map(([Y,X])=>`(max-width: ${Y}) ${X}`).join(", ")+", 100vw"}function h6($){let Z=$.filter((X)=>X.format==="jpeg");if(Z.length===0)return $[Math.floor($.length/2)];let Y=Z.sort((X,J)=>X.width-J.width);return Y[Math.floor(Y.length/2)]}function d6($){let Z=new Map;for(let Y of $){let X=Z.get(Y.format)||[];X.push(Y),Z.set(Y.format,X)}return Z}function z5($){let Z=U5.extname($).toLowerCase();return ak.includes(Z)}function k1($){return dH[$]||"application/octet-stream"}function t7($){return $.reduce((Z,Y)=>Z+Y.size,0)}function e7($){if($<1024)return`${$} B`;if($<1048576)return`${($/1024).toFixed(1)} KB`;return`${($/1048576).toFixed(2)} MB`}var E1,I1,D1=80,ak,dH,rQ=null,gH=!1,u6;var m6=D(()=>{E1=[320,640,768,1024,1280,1536,1920],I1=["webp","jpeg"],ak=[".jpg",".jpeg",".png",".webp",".avif",".gif",".svg"],dH={webp:"image/webp",avif:"image/avif",jpeg:"image/jpeg",png:"image/png"};u6=class u6 extends Error{code;constructor($,Z){super($);this.name="ImageProcessingError",this.code=Z}}});var nH={};e(nH,{handleImageRequest:()=>Z8,createImageHandler:()=>bY});import cH from"fs";import $8 from"path";import tk from"crypto";async function Z8($,Z){let Y=Z.routePath??"/_stx/img",X=new URL($.url);if(X.pathname!==Y)return null;let J=YS(X,Z);if(!J.ok)return new Response(J.error,{status:J.status,headers:{"Content-Type":"text/plain"}});let{srcFsPath:Q,srcUrl:G,width:K,height:W,format:U,quality:_,fit:z}=J,B;try{B=cH.statSync(Q)}catch{return new Response(`Source image not found: ${G}`,{status:404,headers:{"Content-Type":"text/plain"}})}if(!B.isFile())return new Response("Not a file",{status:404,headers:{"Content-Type":"text/plain"}});let q=Z.cacheDir??".stx/cache/img";await cH.promises.mkdir(q,{recursive:!0});let j=`${Q}:${B.mtimeMs}:${B.size}`,H=`${K}x${W}:${U}:${_}:${z}`,O=tk.createHash("sha256").update(`${j}|${H}`).digest("hex").slice(0,16),V=$8.join(q,`${O}.${U}`),F={"Content-Type":k1(U),"Cache-Control":"public, max-age=31536000, immutable",ETag:`"${O}"`,"X-Stx-Image-Cache":"HIT"};if($.headers.get("if-none-match")===`"${O}"`)return new Response(null,{status:304,headers:F});let A=Bun.file(V);if(await A.exists())return new Response(A,{headers:F});try{let N=Buffer.from(await Bun.file(Q).arrayBuffer()),{resizeAndConvert:w}=await XS(),R=await w(N,{width:K,height:W,format:U,quality:_,fit:z});return await Bun.write(V,R),F["X-Stx-Image-Cache"]="MISS",new Response(new Uint8Array(R),{headers:F})}catch(N){let w=N.message;return new Response(`Image processing failed: ${w}`,{status:500,headers:{"Content-Type":"text/plain"}})}}function bY($){return async(Z)=>{return await Z8(Z,$)??new Response("Not Found",{status:404,headers:{"Content-Type":"text/plain"}})}}function YS($,Z){let Y=$.searchParams.get("src");if(!Y)return{ok:!1,error:"Missing required param: src",status:400};if(!Y.startsWith("/"))return{ok:!1,error:"src must be an absolute URL path (start with /)",status:400};if(Y.startsWith("//"))return{ok:!1,error:"src must be a local path",status:400};let X=$8.extname(Y).toLowerCase();if(!ek.has(X))return{ok:!1,error:`Unsupported source extension: ${X}`,status:400};let J=$8.resolve(Z.publicDir),Q=$8.resolve(J,Y.slice(1));if(!Q.startsWith(`${J}${$8.sep}`)&&Q!==J)return{ok:!1,error:"src is outside publicDir",status:400};let G=Z.maxWidth??iH,K=Z.maxHeight??iH,W=$.searchParams.get("w"),U=$.searchParams.get("h"),_=W?Number.parseInt(W,10):0,z=U?Number.parseInt(U,10):0;if(W&&(!Number.isFinite(_)||_<=0))return{ok:!1,error:"Invalid w (must be positive integer)",status:400};if(U&&(!Number.isFinite(z)||z<=0))return{ok:!1,error:"Invalid h (must be positive integer)",status:400};if(!W&&!U)return{ok:!1,error:"At least one of w or h is required",status:400};let B=Math.min(_||G,G),q=Math.min(z||K,K),j=$.searchParams.get("f")||"webp";if(!lH.has(j))return{ok:!1,error:`Invalid f (must be one of: ${[...lH].join(", ")})`,status:400};let H=j,O=$.searchParams.get("q"),V=O?Number.parseInt(O,10):Z.defaultQuality??$S;if(!Number.isFinite(V)||V<1||V>100)return{ok:!1,error:"Invalid q (must be 1-100)",status:400};let L=$.searchParams.get("fit")||Z.defaultFit||ZS;if(!pH.has(L))return{ok:!1,error:`Invalid fit (must be one of: ${[...pH].join(", ")})`,status:400};return{ok:!0,srcFsPath:Q,srcUrl:Y,width:B,height:q,format:H,quality:V,fit:L}}async function XS(){return await Promise.resolve().then(() => (m6(),mH))}var lH,pH,ek,iH=4096,$S=80,ZS="cover";var oQ=D(()=>{m6();lH=new Set(["webp","avif","jpeg","png"]),pH=new Set(["cover","contain","fill","inside","outside"]),ek=new Set([".jpg",".jpeg",".png",".webp",".avif",".gif"])});function tQ($,Z={}){let{src:Y,alt:X,width:J,height:Q,sizes:G="100vw",loading:K="lazy",priority:W=!1,quality:U=D1,placeholder:_="none",formats:z=I1,widths:B=E1,decoding:q="async",fetchpriority:j,objectFit:H,objectPosition:O}=$,V=$.class,L=$.style,{processedImage:F,variants:A,optimize:N=!0,isDev:w=!1}=Z;if(A&&A.length>0)return JS($,A,F);if(w||!N)return QS($);return GS($)}function JS($,Z,Y){let{src:X,alt:J,width:Q,height:G,sizes:K="100vw",loading:W="lazy",priority:U=!1,decoding:_="async",fetchpriority:z,objectFit:B,objectPosition:q,placeholder:j="none"}=$,H=$.class,O=$.style,V=d6(Z),L=h6(Z),F=typeof K==="object"?g6(K):K,A=Y?Y.aspectRatio:Q&&G?Number(Q)/Number(G):void 0,N=[];if(A)N.push(`aspect-ratio: ${A}`);if(B)N.push(`object-fit: ${B}`);if(q)N.push(`object-position: ${q}`);if(O)N.push(O);let w=N.length>0?` style="${N.join("; ")}"`:"",R=H?` class="${H}"`:"",T=U?"":` loading="${W}"`,E=` decoding="${_}"`,I=z?` fetchpriority="${z}"`:U?' fetchpriority="high"':"",k=["avif","webp","jpeg","png"],S=[];for(let d of k){let l=V.get(d);if(l&&l.length>0){let r=_6(l),a=k1(d);S.push(` <source type="${a}" srcset="${r}" sizes="${F}" />`)}}let x="",P="",C;if(j!=="none"&&Y?.placeholder){let d=`img-${Math.random().toString(36).slice(2,8)}`;if(x=`<div class="stx-image-wrapper" id="${d}">`,P="</div>",j==="blur")C=`
12732
12732
  #${d} {
12733
12733
  position: relative;
12734
12734
  background-image: url('${Y.placeholder}');
@@ -12745,14 +12745,14 @@ Check your site ID or create a new site at https://app.netlify.com`,"SITE_NOT_FO
12745
12745
  #${d} {
12746
12746
  background-color: ${Y.placeholder};
12747
12747
  }
12748
- `.trim()}let g=Q?` width="${Q}"`:Y?` width="${Y.width}"`:"",s=G?` height="${G}"`:Y?` height="${Y.height}"`:"",m=`${y}<picture>
12748
+ `.trim()}let g=Q?` width="${Q}"`:Y?` width="${Y.width}"`:"",s=G?` height="${G}"`:Y?` height="${Y.height}"`:"",m=`${x}<picture>
12749
12749
  ${S.join(`
12750
12750
  `)}
12751
12751
  <img
12752
12752
  src="${L?.url||X}"
12753
12753
  alt="${$G(J)}"${g}${s}${R}${w}${T}${E}${I}
12754
12754
  />
12755
- </picture>${P}`,b;if(U&&L){let d=V.get("webp"),c=d?.[Math.floor(d.length/2)]||L,r=k1(c.format);b=`<link rel="preload" as="image" href="${c.url}" type="${r}" />`}return{html:m,preloadLink:b,placeholderCss:C}}function QS($){let{src:Z,alt:Y,width:X,height:J,loading:Q="lazy",decoding:G="async",priority:K=!1,fetchpriority:W,objectFit:U,objectPosition:_}=$,z=$.class,B=$.style,q=[];if(U)q.push(`object-fit: ${U}`);if(_)q.push(`object-position: ${_}`);if(B)q.push(B);let j=q.length>0?` style="${q.join("; ")}"`:"",H=z?` class="${z}"`:"",O=X?` width="${X}"`:"",V=J?` height="${J}"`:"",L=K?"":` loading="${Q}"`,F=` decoding="${G}"`,A=W?` fetchpriority="${W}"`:K?' fetchpriority="high"':"";return{html:`<img src="${Z}" alt="${$G(Y)}"${O}${V}${H}${j}${L}${F}${A} />`}}function GS($){let{src:Z,alt:Y,width:X,height:J,sizes:Q="100vw",loading:G="lazy",priority:K=!1,quality:W=D1,formats:U=I1,widths:_=E1,decoding:z="async",fetchpriority:B,objectFit:q,objectPosition:j}=$,H=$.class,O=$.style,V=[];if(q)V.push(`object-fit: ${q}`);if(j)V.push(`object-position: ${j}`);if(O)V.push(O);let L=V.length>0?` style="${V.join("; ")}"`:"",F=H?` class="${H}"`:"",A=X?` width="${X}"`:"",N=J?` height="${J}"`:"",w=K?"":` loading="${G}"`,R=` decoding="${z}"`,T=B?` fetchpriority="${B}"`:K?' fetchpriority="high"':"",E=typeof Q==="object"?g6(Q):Q,I=`
12755
+ </picture>${P}`,b;if(U&&L){let d=V.get("webp"),l=d?.[Math.floor(d.length/2)]||L,r=k1(l.format);b=`<link rel="preload" as="image" href="${l.url}" type="${r}" />`}return{html:m,preloadLink:b,placeholderCss:C}}function QS($){let{src:Z,alt:Y,width:X,height:J,loading:Q="lazy",decoding:G="async",priority:K=!1,fetchpriority:W,objectFit:U,objectPosition:_}=$,z=$.class,B=$.style,q=[];if(U)q.push(`object-fit: ${U}`);if(_)q.push(`object-position: ${_}`);if(B)q.push(B);let j=q.length>0?` style="${q.join("; ")}"`:"",H=z?` class="${z}"`:"",O=X?` width="${X}"`:"",V=J?` height="${J}"`:"",L=K?"":` loading="${Q}"`,F=` decoding="${G}"`,A=W?` fetchpriority="${W}"`:K?' fetchpriority="high"':"";return{html:`<img src="${Z}" alt="${$G(Y)}"${O}${V}${H}${j}${L}${F}${A} />`}}function GS($){let{src:Z,alt:Y,width:X,height:J,sizes:Q="100vw",loading:G="lazy",priority:K=!1,quality:W=D1,formats:U=I1,widths:_=E1,decoding:z="async",fetchpriority:B,objectFit:q,objectPosition:j}=$,H=$.class,O=$.style,V=[];if(q)V.push(`object-fit: ${q}`);if(j)V.push(`object-position: ${j}`);if(O)V.push(O);let L=V.length>0?` style="${V.join("; ")}"`:"",F=H?` class="${H}"`:"",A=X?` width="${X}"`:"",N=J?` height="${J}"`:"",w=K?"":` loading="${G}"`,R=` decoding="${z}"`,T=B?` fetchpriority="${B}"`:K?' fetchpriority="high"':"",E=typeof Q==="object"?g6(Q):Q,I=`
12756
12756
  data-stx-image
12757
12757
  data-src="${Z}"
12758
12758
  data-sizes="${E}"
@@ -13014,10 +13014,10 @@ ${$.map((X)=>{let J=new URL(X.loc,Z).href,Q=` <url>
13014
13014
  ${Y.join(`
13015
13015
  `)}
13016
13016
  </channel>
13017
- </rss>`}async function NO($={}){let Z=Date.now(),Y=await c0(),X={pagesDir:$.pagesDir||"pages",outputDir:$.outputDir||"dist",baseUrl:$.baseUrl||"/",domain:$.domain||"http://localhost",revalidate:$.revalidate??!1,sitemap:$.sitemap??!0,rss:$.rss??!1,concurrency:$.concurrency||10,cache:$.cache??!0,cacheDir:$.cacheDir||".stx/ssg-cache",contentLoaders:$.contentLoaders||[],hooks:$.hooks||{},minify:$.minify??!1,generate404:$.generate404??!0,publicDir:$.publicDir||"public",trailingSlash:$.trailingSlash??!1,cleanOutput:$.cleanOutput??!0,chunkIslands:$.chunkIslands===!0,prefetchIslands:$.prefetchIslands===!0,integrityIslands:$.integrityIslands===!0},J={totalPages:0,successCount:0,failedCount:0,cachedCount:0,buildTime:0,pages:[],errors:[]},Q=new Set,G=0,K={},W={};await X.hooks.onBuildStart?.();try{if(X.cleanOutput&&l0.existsSync(X.outputDir))await l0.promises.rm(X.outputDir,{recursive:!0});await l0.promises.mkdir(X.outputDir,{recursive:!0});let _=new VO(X.cacheDir);if(X.cache)await _.load();try{let{preloadIconCollection:F}=await Promise.resolve().then(() => (UZ(),Cz));await F("lucide")}catch{}try{let{generateCrosswindCSS:F}=await Promise.resolve().then(() => (o1(),b3));await F('<div class="bg-black"></div>')}catch{}Y8();let z=Y?.routeMiddleware?.dir||"middleware";await G8(process.cwd(),z);let B=Q8();if(B.length>0)console.log(`Loaded ${B.length} middleware: ${B.join(", ")}`);let q=Y?.routeMiddleware?.global||[],j=w4(".",{pagesDir:X.pagesDir});console.log(`Found ${j.length} routes`);let H=[];for(let F of j){let A=await VC(F);for(let N of A)H.push({route:F,url:N.url,params:N.params,props:N.props,revalidate:N.revalidate??X.revalidate})}J.totalPages=H.length,console.log(`Generating ${J.totalPages} pages...`);let O=[],V=[];for(let F=0;F<H.length;F+=X.concurrency)V.push(H.slice(F,F+X.concurrency));for(let F of V)await Promise.all(F.map(async(A)=>{let{route:N,url:w,params:R,props:T,revalidate:E}=A;try{await X.hooks.onPageStart?.(w);let I=await Bun.file(N.filePath).text(),k=TC(I),S=k?.middleware?Array.isArray(k.middleware)?k.middleware:[k.middleware]:[],y=[...q,...S];if(y.length>0){let b=J8(w,R,k||{}),d=X8(b,null),c=await K8(y,d);if(c.redirect){let r=typeof c.redirect==="string"?c.redirect:c.redirect.path||c.redirect,a=EC(String(r),w),B0=IC(w,X);await l0.promises.mkdir(F0.dirname(B0),{recursive:!0}),await Bun.write(B0,a),J.successCount++,J.pages.push({route:w,outputPath:B0,size:Buffer.byteLength(a),cached:!1}),O.push({loc:w,lastmod:new Date().toISOString()}),console.log(` \u21B3 ${w} \u2192 redirect to ${r}`);return}if(c.abort){let r=typeof c.abort==="string"?c.abort:c.abort?.error?.message||"aborted";console.warn(` \u21B3 ${w} \u2014 middleware aborted: ${r}`);return}}let P=I.match(/definePageMeta\s*\(\s*\{[\s\S]*?validate\s*:\s*((?:\([^)]*\)|[^,}])*(?:\{[\s\S]*?\})?)/m);if(P)try{if(!await Function("route",`
13017
+ </rss>`}async function NO($={}){let Z=Date.now(),Y=await c0(),X={pagesDir:$.pagesDir||"pages",outputDir:$.outputDir||"dist",baseUrl:$.baseUrl||"/",domain:$.domain||"http://localhost",revalidate:$.revalidate??!1,sitemap:$.sitemap??!0,rss:$.rss??!1,concurrency:$.concurrency||10,cache:$.cache??!0,cacheDir:$.cacheDir||".stx/ssg-cache",contentLoaders:$.contentLoaders||[],hooks:$.hooks||{},minify:$.minify??!1,generate404:$.generate404??!0,publicDir:$.publicDir||"public",trailingSlash:$.trailingSlash??!1,cleanOutput:$.cleanOutput??!0,chunkIslands:$.chunkIslands===!0,prefetchIslands:$.prefetchIslands===!0,integrityIslands:$.integrityIslands===!0},J={totalPages:0,successCount:0,failedCount:0,cachedCount:0,buildTime:0,pages:[],errors:[]},Q=new Set,G=0,K={},W={};await X.hooks.onBuildStart?.();try{if(X.cleanOutput&&l0.existsSync(X.outputDir))await l0.promises.rm(X.outputDir,{recursive:!0});await l0.promises.mkdir(X.outputDir,{recursive:!0});let _=new VO(X.cacheDir);if(X.cache)await _.load();try{let{preloadIconCollection:F}=await Promise.resolve().then(() => (UZ(),Cz));await F("lucide")}catch{}try{let{generateCrosswindCSS:F}=await Promise.resolve().then(() => (o1(),b3));await F('<div class="bg-black"></div>')}catch{}Y8();let z=Y?.routeMiddleware?.dir||"middleware";await G8(process.cwd(),z);let B=Q8();if(B.length>0)console.log(`Loaded ${B.length} middleware: ${B.join(", ")}`);let q=Y?.routeMiddleware?.global||[],j=w4(".",{pagesDir:X.pagesDir});console.log(`Found ${j.length} routes`);let H=[];for(let F of j){let A=await VC(F);for(let N of A)H.push({route:F,url:N.url,params:N.params,props:N.props,revalidate:N.revalidate??X.revalidate})}J.totalPages=H.length,console.log(`Generating ${J.totalPages} pages...`);let O=[],V=[];for(let F=0;F<H.length;F+=X.concurrency)V.push(H.slice(F,F+X.concurrency));for(let F of V)await Promise.all(F.map(async(A)=>{let{route:N,url:w,params:R,props:T,revalidate:E}=A;try{await X.hooks.onPageStart?.(w);let I=await Bun.file(N.filePath).text(),k=TC(I),S=k?.middleware?Array.isArray(k.middleware)?k.middleware:[k.middleware]:[],x=[...q,...S];if(x.length>0){let b=J8(w,R,k||{}),d=X8(b,null),l=await K8(x,d);if(l.redirect){let r=typeof l.redirect==="string"?l.redirect:l.redirect.path||l.redirect,a=EC(String(r),w),B0=IC(w,X);await l0.promises.mkdir(F0.dirname(B0),{recursive:!0}),await Bun.write(B0,a),J.successCount++,J.pages.push({route:w,outputPath:B0,size:Buffer.byteLength(a),cached:!1}),O.push({loc:w,lastmod:new Date().toISOString()}),console.log(` \u21B3 ${w} \u2192 redirect to ${r}`);return}if(l.abort){let r=typeof l.abort==="string"?l.abort:l.abort?.error?.message||"aborted";console.warn(` \u21B3 ${w} \u2014 middleware aborted: ${r}`);return}}let P=I.match(/definePageMeta\s*\(\s*\{[\s\S]*?validate\s*:\s*((?:\([^)]*\)|[^,}])*(?:\{[\s\S]*?\})?)/m);if(P)try{if(!await Function("route",`
13018
13018
  const validate = ${P[1]};
13019
13019
  return validate(route);
13020
- `)({params:R})){console.warn(`Validation failed for ${w}, skipping...`);return}}catch{}let C=null,g=!1;if(X.cache){if(C=_.get(w,N.filePath),C)g=!0,J.cachedCount++}if(!C){let b=await AO(N,R,T,X,Y);if(C=b.html,X.cache)_.set(w,N.filePath,b.dependencies,C)}let s;if(X.trailingSlash)s=F0.join(X.outputDir,w,"index.html");else s=w==="/"?F0.join(X.outputDir,"index.html"):F0.join(X.outputDir,`${w}.html`);if(X.chunkIslands){let{html:b,chunks:d}=HO(C,{integrity:X.integrityIslands,minify:X.minify});if(d.length>0){let c=F0.join(X.outputDir,"_stx","islands");await l0.promises.mkdir(c,{recursive:!0});for(let r of d){let a=F0.join(c,`${r.hash}.js`);if(!await Bun.file(a).exists())await Bun.write(a,r.code);if(!Q.has(r.hash)){Q.add(r.hash);let B0=Buffer.byteLength(r.code,"utf8");G+=B0,K[r.hash]={bytes:B0,file:`/_stx/islands/${r.hash}.js`}}}if(W[w]=d.map((r)=>r.hash),C=b,X.prefetchIslands)C=OO(C)}}await l0.promises.mkdir(F0.dirname(s),{recursive:!0}),await Bun.write(s,C),O.push({loc:w,lastmod:new Date().toISOString().split("T")[0],priority:w==="/"?1:0.8});let m={route:w,outputPath:s,size:Buffer.byteLength(C,"utf8"),cached:g};if(E!==!1)m.revalidateAt=Date.now()+E*1000;J.pages.push(m),J.successCount++,await X.hooks.onPageEnd?.(w,C)}catch(I){J.failedCount++,J.errors.push({route:w,error:I}),await X.hooks.onError?.(I,w),console.error(`Error generating ${w}:`,I)}}));if(X.cache)await _.save();if(X.generate404){let F=F0.join(X.pagesDir,"404.stx");if(await Bun.file(F).exists()){let A=new Set,N={...Y,debug:!1,cache:!1},w=await W0(await Bun.file(F).text(),{},F,N,A);await Bun.write(F0.join(X.outputDir,"404.html"),w)}else await Bun.write(F0.join(X.outputDir,"404.html"),`<!DOCTYPE html>
13020
+ `)({params:R})){console.warn(`Validation failed for ${w}, skipping...`);return}}catch{}let C=null,g=!1;if(X.cache){if(C=_.get(w,N.filePath),C)g=!0,J.cachedCount++}if(!C){let b=await AO(N,R,T,X,Y);if(C=b.html,X.cache)_.set(w,N.filePath,b.dependencies,C)}let s;if(X.trailingSlash)s=F0.join(X.outputDir,w,"index.html");else s=w==="/"?F0.join(X.outputDir,"index.html"):F0.join(X.outputDir,`${w}.html`);if(X.chunkIslands){let{html:b,chunks:d}=HO(C,{integrity:X.integrityIslands,minify:X.minify});if(d.length>0){let l=F0.join(X.outputDir,"_stx","islands");await l0.promises.mkdir(l,{recursive:!0});for(let r of d){let a=F0.join(l,`${r.hash}.js`);if(!await Bun.file(a).exists())await Bun.write(a,r.code);if(!Q.has(r.hash)){Q.add(r.hash);let B0=Buffer.byteLength(r.code,"utf8");G+=B0,K[r.hash]={bytes:B0,file:`/_stx/islands/${r.hash}.js`}}}if(W[w]=d.map((r)=>r.hash),C=b,X.prefetchIslands)C=OO(C)}}await l0.promises.mkdir(F0.dirname(s),{recursive:!0}),await Bun.write(s,C),O.push({loc:w,lastmod:new Date().toISOString().split("T")[0],priority:w==="/"?1:0.8});let m={route:w,outputPath:s,size:Buffer.byteLength(C,"utf8"),cached:g};if(E!==!1)m.revalidateAt=Date.now()+E*1000;J.pages.push(m),J.successCount++,await X.hooks.onPageEnd?.(w,C)}catch(I){J.failedCount++,J.errors.push({route:w,error:I}),await X.hooks.onError?.(I,w),console.error(`Error generating ${w}:`,I)}}));if(X.cache)await _.save();if(X.generate404){let F=F0.join(X.pagesDir,"404.stx");if(await Bun.file(F).exists()){let A=new Set,N={...Y,debug:!1,cache:!1},w=await W0(await Bun.file(F).text(),{},F,N,A);await Bun.write(F0.join(X.outputDir,"404.html"),w)}else await Bun.write(F0.join(X.outputDir,"404.html"),`<!DOCTYPE html>
13021
13021
  <html lang="en">
13022
13022
  <head>
13023
13023
  <meta charset="UTF-8">
@@ -13059,7 +13059,7 @@ Build complete!
13059
13059
  <p>Redirecting to <a href="${$}">${$}</a>...</p>
13060
13060
  <script>window.location.replace('${$}')</script>
13061
13061
  </body>
13062
- </html>`}function IC($,Z){if($==="/"||$==="")return F0.join(Z.outputDir,"index.html");let Y=$.replace(/^\/|\/$/g,"");if(Z.trailingSlash)return F0.join(Z.outputDir,Y,"index.html");return F0.join(Z.outputDir,`${Y}.html`)}var DC;var IO=D(()=>{B8();U1();LO();i0();o1();mY();DC={generateStaticSite:NO,createISRHandler:RO,defineStaticPaths:MO,createMarkdownLoader:TO}});import{createHash as kC}from"crypto";import{getRouterScript as SC}from"stx-router";function qG($){return kC("sha256").update($).digest("hex").slice(0,8)}function jG($=!1){let Z=$?C6():N7(),Y=qG(Z);return{content:Z,filename:`runtime.${Y}.js`,hash:Y}}function HG(){let $=SC(),Z=qG($);return{content:$,filename:`router.${Z}.js`,hash:Z}}function CC($){return{runtimeTag:$.runtime?`<script src="/__stx/${$.runtime.filename}"></script>`:"",routerTag:$.router?`<script src="/__stx/${$.router.filename}"></script>`:"",cssTag:$.css?`<link rel="stylesheet" href="/__stx/${$.css.filename}">`:""}}var OG=D(()=>{R$()});import DO from"path";import{createHash as bC}from"crypto";function PC($={}){let Z=new Set;return{context:new Proxy($,{get(X,J){if(J in X)return X[J];if(typeof J==="string"&&!J.startsWith("__"))Z.add(J);return},has(X,J){if(J in X)return!0;if(typeof J==="string"&&!J.startsWith("__"))Z.add(J);return!1}}),accessedKeys:Z}}async function LG($,Z,Y={}){let X=DO.resolve($),J=await Bun.file(X).text(),Q=bC("sha256").update(J).digest("hex").slice(0,16);aX();let G={};try{G=await c0()}catch{}let K=[],W=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,U;while((U=W.exec(J))!==null){let O=U[1];if(/\bserver\b/.test(O))K.push(U[2])}let{context:_}=PC({__filename:X,__dirname:DO.dirname(X)}),z=new Set,B={...O1,...G,...Y,buildMode:"compile",strict:!1},q=await W0(J,_,X,B,z),j=N4(q),H=sX();return{route:Z,sourceFile:$,html:q,fragment:j,placeholders:H,hasServerScripts:K.length>0,serverScriptContent:K,dependencies:Array.from(z),contentHash:Q,streamTemplates:_.__streamTemplates}}var VG=D(()=>{U1();i0();u5();j5()});import FG from"fs";import kO from"path";function AG($,Z,Y){return{version:1,buildTime:new Date().toISOString(),routes:$,assets:Z,outputDir:Y}}function NG($,Z){let Y=kO.join(Z,"manifest.json");FG.writeFileSync(Y,JSON.stringify($,null,2))}function wG($){let Z=kO.join($,"manifest.json");if(!FG.existsSync(Z))return null;try{let Y=FG.readFileSync(Z,"utf-8"),X=JSON.parse(Y);if(X.version!==1)return console.warn(`[stx] Manifest version mismatch: expected 1, got ${X.version}`),null;return X}catch(Y){return console.warn("[stx] Failed to load manifest:",Y),null}}var iY=()=>{};var CO={};e(CO,{buildForProduction:()=>SO});import Q4 from"fs";import Q1 from"path";function xC($,Z){let Y=0,X=0;if(!Q4.existsSync($))return{copied:Y,bytes:X};function J(Q,G){let K=Q4.readdirSync(Q,{withFileTypes:!0});for(let W of K){if(yC.has(W.name))continue;let U=Q1.join(Q,W.name),_=Q1.join(G,W.name);if(W.isDirectory())Q4.mkdirSync(_,{recursive:!0}),J(U,_);else if(W.isFile()){if(Q4.existsSync(_))continue;Q4.copyFileSync(U,_),Y++,X+=Q4.statSync(_).size}}}return J($,Z),{copied:Y,bytes:X}}async function SO($={}){let Z=Date.now(),Y=Q1.resolve($.root||process.cwd()),X=Q1.resolve(Y,$.outputDir||".output");console.log("[stx build] Starting production build...");let J={};try{J=await c0()}catch{}let Q=$.componentsDir??J.componentsDir??"components",G=$.partialsDir??J.partialsDir??"partials",K=$.layoutsDir??J.layoutsDir??"layouts",W=$.publicDir??J.publicDir??"public",U=J.app?.head||{},_=J.router?.container||"main";if(Q4.existsSync(X))Q4.rmSync(X,{recursive:!0});let z=[Q1.join(X,"public","__stx"),Q1.join(X,"public","assets"),Q1.join(X,"server","pages"),Q1.join(X,"server","fragments")];for(let R of z)Q4.mkdirSync(R,{recursive:!0});console.log("[stx build] Discovering routes...");let B=w4(Y),q=["components","layouts","partials"],j=B.filter((R)=>{return!q.some((T)=>R.pattern.startsWith(`/${T}/`)||R.pattern===`/${T}`)});console.log(`[stx build] Found ${j.length} page routes (${B.length-j.length} non-page files excluded)`),console.log("[stx build] Generating shared assets...");let H=jG($.debug),O=HG();await Bun.write(Q1.join(X,"public","__stx",H.filename),H.content),await Bun.write(Q1.join(X,"public","__stx",O.filename),O.content),console.log(`[stx build] Runtime: ${H.filename} (${(H.content.length/1024).toFixed(1)}KB)`),console.log(`[stx build] Router: ${O.filename} (${(O.content.length/1024).toFixed(1)}KB)`),console.log("[stx build] Compiling templates...");let V=[],L=[];for(let R of j)try{let T=await LG(R.filePath,R.pattern,{componentsDir:Q,partialsDir:G,layoutsDir:K,debug:$.debug});if(V.push(T),T.html=T.html.replace(/runtime\.__STX_HASH__\.js/g,H.filename).replace(/router\.__STX_HASH__\.js/g,O.filename),T.html=q7(T.html,U,{bodyScripts:[`<script src="/__stx/${O.filename}"></script>`]}),!/<body[^>]*\bdata-stx=/.test(T.html)){let y=T.html.match(/<(?!body\b)[a-zA-Z][a-zA-Z0-9-]*\b[^>]*?\s(data-stx="[^"]+")[^>]*>/);if(y&&y[1]){let P=y[1];T.html=T.html.replace(" "+P,""),T.html=T.html.replace(/<body([^>]*)>/,`<body$1 ${P}>`)}}T.html=T.html.replace(/<style data-crosswind="generated">[\s\S]*?<\/style>\s*/g,""),T.html=await C0(T.html),T.fragment=_8(T.html,_);let I=R.pattern==="/"?"index":R.pattern.slice(1).replace(/\//g,"-").replace(/[[\]]/g,"_"),k=Q1.join("server","pages",`${I}.compiled.json`),S=Q1.join("server","fragments",`${I}.html`);await Bun.write(Q1.join(X,k),JSON.stringify(T,null,2)),await Bun.write(Q1.join(X,S),T.fragment),L.push({pattern:R.pattern,compiledPath:k,fragmentPath:S,isDynamic:T.hasServerScripts,hasParams:R.pattern.includes(":")||R.pattern.includes("[")}),console.log(`[stx build] \u2713 ${R.pattern}`)}catch(T){console.error(`[stx build] \u2717 ${R.pattern}:`,T instanceof Error?T.message:T)}let F=Q1.resolve(Y,W);if(Q4.existsSync(F)){let{copied:R,bytes:T}=xC(F,Q1.join(X,"public"));if(R>0)console.log(`[stx build] Copied ${R} public asset${R===1?"":"s"} (${(T/1024).toFixed(1)}KB) from ${W}/`)}let A={runtime:H.filename,router:O.filename},N=AG(L,A,X);NG(N,X);let w=Date.now()-Z;return console.log(`
13062
+ </html>`}function IC($,Z){if($==="/"||$==="")return F0.join(Z.outputDir,"index.html");let Y=$.replace(/^\/|\/$/g,"");if(Z.trailingSlash)return F0.join(Z.outputDir,Y,"index.html");return F0.join(Z.outputDir,`${Y}.html`)}var DC;var IO=D(()=>{B8();U1();LO();i0();o1();mY();DC={generateStaticSite:NO,createISRHandler:RO,defineStaticPaths:MO,createMarkdownLoader:TO}});import{createHash as kC}from"crypto";import{getRouterScript as SC}from"stx-router";function qG($){return kC("sha256").update($).digest("hex").slice(0,8)}function jG($=!1){let Z=$?C6():N7(),Y=qG(Z);return{content:Z,filename:`runtime.${Y}.js`,hash:Y}}function HG(){let $=SC(),Z=qG($);return{content:$,filename:`router.${Z}.js`,hash:Z}}function CC($){return{runtimeTag:$.runtime?`<script src="/__stx/${$.runtime.filename}"></script>`:"",routerTag:$.router?`<script src="/__stx/${$.router.filename}"></script>`:"",cssTag:$.css?`<link rel="stylesheet" href="/__stx/${$.css.filename}">`:""}}var OG=D(()=>{R$()});import DO from"path";import{createHash as bC}from"crypto";function PC($={}){let Z=new Set;return{context:new Proxy($,{get(X,J){if(J in X)return X[J];if(typeof J==="string"&&!J.startsWith("__"))Z.add(J);return},has(X,J){if(J in X)return!0;if(typeof J==="string"&&!J.startsWith("__"))Z.add(J);return!1}}),accessedKeys:Z}}async function LG($,Z,Y={}){let X=DO.resolve($),J=await Bun.file(X).text(),Q=bC("sha256").update(J).digest("hex").slice(0,16);aX();let G={};try{G=await c0()}catch{}let K=[],W=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,U;while((U=W.exec(J))!==null){let O=U[1];if(/\bserver\b/.test(O))K.push(U[2])}let{context:_}=PC({__filename:X,__dirname:DO.dirname(X)}),z=new Set,B={...O1,...G,...Y,buildMode:"compile",strict:!1},q=await W0(J,_,X,B,z),j=N4(q),H=sX();return{route:Z,sourceFile:$,html:q,fragment:j,placeholders:H,hasServerScripts:K.length>0,serverScriptContent:K,dependencies:Array.from(z),contentHash:Q,streamTemplates:_.__streamTemplates}}var VG=D(()=>{U1();i0();u5();j5()});import FG from"fs";import kO from"path";function AG($,Z,Y){return{version:1,buildTime:new Date().toISOString(),routes:$,assets:Z,outputDir:Y}}function NG($,Z){let Y=kO.join(Z,"manifest.json");FG.writeFileSync(Y,JSON.stringify($,null,2))}function wG($){let Z=kO.join($,"manifest.json");if(!FG.existsSync(Z))return null;try{let Y=FG.readFileSync(Z,"utf-8"),X=JSON.parse(Y);if(X.version!==1)return console.warn(`[stx] Manifest version mismatch: expected 1, got ${X.version}`),null;return X}catch(Y){return console.warn("[stx] Failed to load manifest:",Y),null}}var iY=()=>{};var CO={};e(CO,{buildForProduction:()=>SO});import Q4 from"fs";import Q1 from"path";function xC($,Z){let Y=0,X=0;if(!Q4.existsSync($))return{copied:Y,bytes:X};function J(Q,G){let K=Q4.readdirSync(Q,{withFileTypes:!0});for(let W of K){if(yC.has(W.name))continue;let U=Q1.join(Q,W.name),_=Q1.join(G,W.name);if(W.isDirectory())Q4.mkdirSync(_,{recursive:!0}),J(U,_);else if(W.isFile()){if(Q4.existsSync(_))continue;Q4.copyFileSync(U,_),Y++,X+=Q4.statSync(_).size}}}return J($,Z),{copied:Y,bytes:X}}async function SO($={}){let Z=Date.now(),Y=Q1.resolve($.root||process.cwd()),X=Q1.resolve(Y,$.outputDir||".output");console.log("[stx build] Starting production build...");let J={};try{J=await c0()}catch{}let Q=$.componentsDir??J.componentsDir??"components",G=$.partialsDir??J.partialsDir??"partials",K=$.layoutsDir??J.layoutsDir??"layouts",W=$.publicDir??J.publicDir??"public",U=J.app?.head||{},_=J.router?.container||"main";if(Q4.existsSync(X))Q4.rmSync(X,{recursive:!0});let z=[Q1.join(X,"public","__stx"),Q1.join(X,"public","assets"),Q1.join(X,"server","pages"),Q1.join(X,"server","fragments")];for(let R of z)Q4.mkdirSync(R,{recursive:!0});console.log("[stx build] Discovering routes...");let B=w4(Y),q=["components","layouts","partials"],j=B.filter((R)=>{return!q.some((T)=>R.pattern.startsWith(`/${T}/`)||R.pattern===`/${T}`)});console.log(`[stx build] Found ${j.length} page routes (${B.length-j.length} non-page files excluded)`),console.log("[stx build] Generating shared assets...");let H=jG($.debug),O=HG();await Bun.write(Q1.join(X,"public","__stx",H.filename),H.content),await Bun.write(Q1.join(X,"public","__stx",O.filename),O.content),console.log(`[stx build] Runtime: ${H.filename} (${(H.content.length/1024).toFixed(1)}KB)`),console.log(`[stx build] Router: ${O.filename} (${(O.content.length/1024).toFixed(1)}KB)`),console.log("[stx build] Compiling templates...");let V=[],L=[];for(let R of j)try{let T=await LG(R.filePath,R.pattern,{componentsDir:Q,partialsDir:G,layoutsDir:K,debug:$.debug});if(V.push(T),T.html=T.html.replace(/runtime\.__STX_HASH__\.js/g,H.filename).replace(/router\.__STX_HASH__\.js/g,O.filename),T.html=q7(T.html,U,{bodyScripts:[`<script src="/__stx/${O.filename}"></script>`]}),!/<body[^>]*\bdata-stx=/.test(T.html)){let x=T.html.match(/<(?!body\b)[a-zA-Z][a-zA-Z0-9-]*\b[^>]*?\s(data-stx="[^"]+")[^>]*>/);if(x&&x[1]){let P=x[1];T.html=T.html.replace(" "+P,""),T.html=T.html.replace(/<body([^>]*)>/,`<body$1 ${P}>`)}}T.html=T.html.replace(/<style data-crosswind="generated">[\s\S]*?<\/style>\s*/g,""),T.html=await C0(T.html),T.fragment=_8(T.html,_);let I=R.pattern==="/"?"index":R.pattern.slice(1).replace(/\//g,"-").replace(/[[\]]/g,"_"),k=Q1.join("server","pages",`${I}.compiled.json`),S=Q1.join("server","fragments",`${I}.html`);await Bun.write(Q1.join(X,k),JSON.stringify(T,null,2)),await Bun.write(Q1.join(X,S),T.fragment),L.push({pattern:R.pattern,compiledPath:k,fragmentPath:S,isDynamic:T.hasServerScripts,hasParams:R.pattern.includes(":")||R.pattern.includes("[")}),console.log(`[stx build] \u2713 ${R.pattern}`)}catch(T){console.error(`[stx build] \u2717 ${R.pattern}:`,T instanceof Error?T.message:T)}let F=Q1.resolve(Y,W);if(Q4.existsSync(F)){let{copied:R,bytes:T}=xC(F,Q1.join(X,"public"));if(R>0)console.log(`[stx build] Copied ${R} public asset${R===1?"":"s"} (${(T/1024).toFixed(1)}KB) from ${W}/`)}let A={runtime:H.filename,router:O.filename},N=AG(L,A,X);NG(N,X);let w=Date.now()-Z;return console.log(`
13063
13063
  [stx build] Done in ${w}ms \u2014 ${V.length} pages compiled`),{pageCount:V.length,assets:A,outputDir:X,duration:w}}var yC;var RG=D(()=>{B8();OG();VG();iY();j5();o1();i0();yC=new Set([".DS_Store","Thumbs.db","desktop.ini",".gitkeep",".gitignore"])});var PO={};e(PO,{buildApp:()=>bO});import vC from"path";async function bO($={}){let Z=performance.now(),Y=$.root||process.cwd(),X=await c0(),J=X.ssr?"ssr":"ssg";console.log(`[stx build] Mode: ${J.toUpperCase()}${X.ssr?" (ssr: true in stx.config.ts)":" (default \u2014 ssr is false)"}`);let Q,G;if(J==="ssg"){let{generateStaticSite:W}=await Promise.resolve().then(() => (IO(),EO));Q=await W({pagesDir:vC.join(X.root||".",X.pagesDir||X.build?.pagesDir||"pages"),publicDir:X.publicDir||X.build?.publicDir||"public",outputDir:X.build?.outputDir||"dist",generate404:X.build?.generate404??!0,minify:X.build?.minify??!0,cleanOutput:X.build?.cleanOutput??!0,...$.ssg})}else{let{buildForProduction:W}=await Promise.resolve().then(() => (RG(),CO));G=await W({outputDir:".output",debug:$.debug,...$.ssr})}let K=Math.round(performance.now()-Z);return{mode:J,ssg:Q,ssr:G,duration:K}}var MG=D(()=>{i0()});import nY from"path";async function gC($){let Z=performance.now(),Y=await c0($),X=$||Y.root||process.cwd(),J=[Y.build?.pagesDir||Y.pagesDir||"pages",Y.componentsDir||"components",Y.layoutsDir||"layouts",Y.partialsDir||"partials"].map((K)=>nY.resolve(X,K)),Q=[],G=0;for(let K of J){let W=await xO(K);for(let U of W){G++;let _=await Bun.file(U).text();if(yO.test(_))Q.push(nY.relative(X,U))}}return{mode:Q.length>0?"ssr":"ssg",serverScriptFiles:Q,totalFilesScanned:G,scanDurationMs:Math.round(performance.now()-Z)}}async function hC($){let Z=await c0($),Y=$||Z.root||process.cwd(),X=nY.resolve(Y,Z.componentsDir||"components"),J=[],Q=await xO(X);for(let G of Q){let K=await Bun.file(G).text(),W=yO.test(K),U=fC.test(K)||/<script\b(?![^>]*\bserver\b)[^>]*>/i.test(K)&&!W;if(W&&U){let _=nY.relative(Y,G);J.push({file:_,message:`Component "${_}" has both <script server> and <script client>. `+"Components should be server OR client \u2014 compose them via props/slots."})}}return J}async function xO($){let Z=[];try{let Y=new Bun.Glob("**/*.stx");for await(let X of Y.scan({cwd:$,absolute:!0}))Z.push(X)}catch{}return Z}var yO,fC;var vO=D(()=>{i0();yO=/<script\b[^>]*\bserver\b/i,fC=/<script\b[^>]*\bclient\b/i});function TG($){let Z=new Map,Y=/@(\w+)/g,X,J=1,Q=0;while((X=Y.exec($))!==null){let G=X[1],K=$.slice(Q,X.index);J+=(K.match(/\n/g)||[]).length,Q=X.index;let W=X.index-$.lastIndexOf(`
13064
13064
  `,X.index-1);if(gO.includes(G)){let U=Z.get(G);if(U)U.count++,U.locations.push({line:J,column:W});else Z.set(G,{name:G,count:1,locations:[{line:J,column:W}]})}}return Array.from(Z.values())}function hO($,Z=[]){let Y=TG($),X=new Set(Y.map((J)=>J.name));for(let J of Z)X.add(J);for(let J of Array.from(X))if(!J.startsWith("end"))X.add(`end${J}`);return gO.filter((J)=>!X.has(J))}function dO($){let Z=[],Y={conditionals:["if","else","elseif","endif","unless","endunless","switch","case","default","endswitch","isset","endisset"],loops:["for","endfor","foreach","endforeach","forelse","endforelse","while","endwhile","break","continue","empty"],includes:["include","includeIf","includeWhen","includeFirst","once","endonce","extends","section","endsection","yield","parent","push","endpush","prepend","endprepend","stack"],components:["component","endcomponent","slot","endslot","props"],auth:["auth","endauth","guest","endguest","can","endcan","cannot","endcannot","role","endrole","hasRole","endhasRole","hasAnyRole","endhasAnyRole"],forms:["csrf","method","error","enderror","old","input","textarea","select","checkbox","radio","file"],i18n:["translate","lang","choice"],seo:["meta","title","seo","jsonld","canonical","robots","sitemap"]},X=new Set;for(let Q of $)for(let[G,K]of Object.entries(Y))if(K.includes(Q)){X.add(G);break}for(let Q of X)Z.push(`import { process${uC(Q)} } from './${Q}'`);let J=$.filter((Q)=>!Q.startsWith("end")).map((Q)=>` '${Q}': true`).join(`,
13065
13065
  `);return`// Tree-shaken directive bundle
@@ -14217,7 +14217,7 @@ describe('Example', () => {
14217
14217
  </footer>
14218
14218
  @yield('scripts')
14219
14219
  </body>
14220
- </html>`}function MP(){return"<!-- Hero section -->"}function TP(){return"<!-- Features -->"}function EP(){return"<!-- Pricing -->"}function IP(){return"<!-- Button -->"}function N8($){if(!A8($))rG($,{recursive:!0})}function DP(){if(A8("bun.lockb"))return"bun";if(A8("pnpm-lock.yaml"))return"pnpm";if(A8("yarn.lock"))return"yarn";return"bun"}function aG($){return $.replace(/[-_\s]+(.)?/g,(Z,Y)=>Y?Y.toUpperCase():"").replace(/^./,(Z)=>Z.toUpperCase())}function kP($){return $.replace(/[-_\s]+(.)?/g,(Z,Y)=>Y?Y.toUpperCase():"").replace(/^./,(Z)=>Z.toLowerCase())}function i6($){return $.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase()}var pb;var tL=D(()=>{pb={default:{description:"Standard stx project with pages, components, and stores",features:["Pages","Components","Layouts","Stores","Dev server"]},minimal:{description:"Minimal setup with just the essentials",features:["Single page","Basic styles"]},full:{description:"Full-featured project with all stx capabilities",features:["Pages","Components","Layouts","Stores","API routes","PWA","i18n","Testing"]},blog:{description:"Blog template with markdown support",features:["Blog layout","Post pages","Tags","RSS feed","Markdown"]},dashboard:{description:"Admin dashboard template",features:["Sidebar","Charts","Tables","Forms","Auth pages"]},landing:{description:"Marketing landing page template",features:["Hero section","Features","Pricing","CTA","Contact form"]}}});var{serve:SP}=globalThis.Bun;import w8 from"fs";import H6 from"path";function CP($,Z=200,Y={}){return new Response($,{status:Z,headers:{"Content-Type":"text/html; charset=utf-8",...Y}})}async function eL($={}){let{port:Z=3000,root:Y=".",stxOptions:X={},watch:J=!0,onRequest:Q,routes:G={},middleware:K=[],on404:W,onError:U}=$,_=H6.resolve(Y),z=new Map;async function B(L){let F=w8.statSync(L),A=`${L}:${F.mtimeMs}`,N=z.get(A);if(N)return N.content;for(let b of z.keys())if(b.startsWith(`${L}:`)&&b!==A)z.delete(b);let w=await Bun.file(L).text(),R=w,T=w.match(/<template\b(?![^>]*\b(?:id|x-for|x-if|@for|@if|:for|:if)\s*=)[^>]*>/i);if(T&&T.index!==void 0){let b=T.index+T[0].length,d=1,c=b;while(c<w.length&&d>0){let r=w.indexOf("<template",c),a=w.indexOf("</template>",c);if(a===-1)break;if(r!==-1&&r<a)d++,c=r+9;else{if(d--,d===0){R=w.substring(b,a).trim();break}c=a+11}}}let E=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,I=[],k=[],S;while((S=E.exec(w))!==null){let b=S[1],d=S[2],c=S[0];if(b.includes("server"))k.push(d);else I.push(c)}let y=w.match(/<style\b[^>]*>[\s\S]*?<\/style>/gi)||[],P=R.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"").replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,""),C={__filename:L,__dirname:H6.dirname(L)};for(let b of k)await E0(b,C,L);let m=await W0(P,C,L,X,new Set);if(y.length>0){let b=y.join(`
14220
+ </html>`}function MP(){return"<!-- Hero section -->"}function TP(){return"<!-- Features -->"}function EP(){return"<!-- Pricing -->"}function IP(){return"<!-- Button -->"}function N8($){if(!A8($))rG($,{recursive:!0})}function DP(){if(A8("bun.lockb"))return"bun";if(A8("pnpm-lock.yaml"))return"pnpm";if(A8("yarn.lock"))return"yarn";return"bun"}function aG($){return $.replace(/[-_\s]+(.)?/g,(Z,Y)=>Y?Y.toUpperCase():"").replace(/^./,(Z)=>Z.toUpperCase())}function kP($){return $.replace(/[-_\s]+(.)?/g,(Z,Y)=>Y?Y.toUpperCase():"").replace(/^./,(Z)=>Z.toLowerCase())}function i6($){return $.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase()}var pb;var tL=D(()=>{pb={default:{description:"Standard stx project with pages, components, and stores",features:["Pages","Components","Layouts","Stores","Dev server"]},minimal:{description:"Minimal setup with just the essentials",features:["Single page","Basic styles"]},full:{description:"Full-featured project with all stx capabilities",features:["Pages","Components","Layouts","Stores","API routes","PWA","i18n","Testing"]},blog:{description:"Blog template with markdown support",features:["Blog layout","Post pages","Tags","RSS feed","Markdown"]},dashboard:{description:"Admin dashboard template",features:["Sidebar","Charts","Tables","Forms","Auth pages"]},landing:{description:"Marketing landing page template",features:["Hero section","Features","Pricing","CTA","Contact form"]}}});var{serve:SP}=globalThis.Bun;import w8 from"fs";import H6 from"path";function CP($,Z=200,Y={}){return new Response($,{status:Z,headers:{"Content-Type":"text/html; charset=utf-8",...Y}})}async function eL($={}){let{port:Z=3000,root:Y=".",stxOptions:X={},watch:J=!0,onRequest:Q,routes:G={},middleware:K=[],on404:W,onError:U}=$,_=H6.resolve(Y),z=new Map;async function B(L){let F=w8.statSync(L),A=`${L}:${F.mtimeMs}`,N=z.get(A);if(N)return N.content;for(let b of z.keys())if(b.startsWith(`${L}:`)&&b!==A)z.delete(b);let w=await Bun.file(L).text(),R=w,T=w.match(/<template\b(?![^>]*\b(?:id|x-for|x-if|@for|@if|:for|:if)\s*=)[^>]*>/i);if(T&&T.index!==void 0){let b=T.index+T[0].length,d=1,l=b;while(l<w.length&&d>0){let r=w.indexOf("<template",l),a=w.indexOf("</template>",l);if(a===-1)break;if(r!==-1&&r<a)d++,l=r+9;else{if(d--,d===0){R=w.substring(b,a).trim();break}l=a+11}}}let E=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,I=[],k=[],S;while((S=E.exec(w))!==null){let b=S[1],d=S[2],l=S[0];if(b.includes("server"))k.push(d);else I.push(l)}let x=w.match(/<style\b[^>]*>[\s\S]*?<\/style>/gi)||[],P=R.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"").replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,""),C={__filename:L,__dirname:H6.dirname(L)};for(let b of k)await E0(b,C,L);let m=await W0(P,C,L,X,new Set);if(x.length>0){let b=x.join(`
14221
14221
  `);if(m.match(/(<\/head>)/i))m=m.replace(/(<\/head>)/i,`${b}
14222
14222
  $1`)}if(I.length>0){let{interpolateScriptsInTemplate:b}=await Promise.resolve().then(() => (o0(),l5)),d=b(I.join(`
14223
14223
  `),C);if(m.match(/(<\/body>)/i))m=m.replace(/(<\/body>)/i,`${d}
@@ -16160,7 +16160,7 @@ ${O}`}if(j=await q4(j),K.forEach((H)=>X.add(H)),Y.cache&&Y.cachePath){if(await d
16160
16160
  <h1>Something went wrong</h1>
16161
16161
  <p>An internal error occurred. Please try again later.</p>
16162
16162
  </body>
16163
- </html>`,loader:"html"}}})}}});var{serve:Sx}=globalThis.Bun;import r1 from"fs";import q1 from"path";async function c8($,Z={}){let Y=Z.port||3000,X=Z.watch!==!1,J=Z.hotReload!==!1&&X,Q=null,G=Z.hmrPort||Y+1,K=q1.resolve($);if(!r1.existsSync(K))return console.error(`${M.red}Error: File not found: ${M.bright}${K}${M.reset}`),!1;if(K.endsWith(".md"))return IY(K,Z);else if(!K.endsWith(".stx"))return console.error(`${M.red}Error: Unsupported file type: ${M.bright}${K}${M.reset}. Only .stx and .md files are supported.`),!1;let W=q1.join(process.cwd(),".stx/output");r1.mkdirSync(W,{recursive:!0}),console.log(`${M.blue}Building ${M.bright}${$}${M.reset}...`);let U=null,_=async()=>{try{let L={name:"public-assets",setup(w){w.onResolve({filter:/^\/(images|fonts|assets|public)\//},(R)=>{return{path:R.path,external:!0}})}},F=await Bun.build({entrypoints:[K],outdir:W,plugins:[L,I5],publicPath:"/",define:{"process.env.NODE_ENV":'"development"'},...Z.stxOptions});if(!F.success)return console.error(`${M.red}Build failed:${M.reset}`,F.logs),!1;let A=F.outputs.find((w)=>w.path.endsWith(".html"));if(!A)return console.error(`${M.red}No HTML output found${M.reset}`),!1;return U=await Bun.file(A.path).text(),!0}catch(L){return console.error(`${M.red}Error building stx file:${M.reset}`,L),!1}};if(!await _())return!1;let B=q1.dirname(K);await U$(B);let q=Y;try{if(q=await K6(Y),q!==Y)console.log(`${M.yellow}Port ${Y} is busy, using port ${q} instead${M.reset}`)}catch{return console.error(`${M.red}Could not find an available port${M.reset}`),!1}if(J){let L=Z.hmrPort||q+1;Q=i7({wsPort:L,verbose:!1}),G=Q.start(L)}let j={},H=null;try{let{loadStxConfig:L}=await Promise.resolve().then(() => (z6(),l6)),F=await L();if(F?.apiRouter)H=F?.apiRouter,console.log(`${M.blue}Using custom router for API handling${M.reset}`);if(F?.apiRoutes){j=F.apiRoutes;let A=Object.keys(j).length;if(A>0)console.log(`${M.blue}Loaded ${M.bright}${A} API route${A>1?"s":""}${M.reset}`)}if(F?.broadcasting?.enabled)try{let{startBroadcasting:A,loadChannels:N}=await Promise.resolve().then(() => (aY(),DG)),w=F.broadcasting;await A(w);let R=w.port??6001;console.log(`${M.magenta}Broadcasting on ${M.cyan}ws://localhost:${R}/ws${M.reset}`);let T=q1.join(process.cwd(),"channels.ts");if(r1.existsSync(T))try{let E=await N(T);console.log(`${M.blue}Loaded ${M.bright}${E} broadcast channel${E!==1?"s":""}${M.blue} from channels.ts${M.reset}`)}catch(E){console.warn(`${M.yellow}Failed to load channels.ts: ${E.message}${M.reset}`)}}catch(A){console.warn(`${M.yellow}Broadcasting failed to start: ${A.message}${M.reset}`)}}catch{}if(console.log(`${M.blue}Starting server on ${M.cyan}http://localhost:${q}/${M.reset}...`),J)console.log(`${M.magenta}Hot reload enabled on ws://localhost:${G}${M.reset}`);let O=Sx({port:q,async fetch(L){let F=new URL(L.url);if(H)try{let T=await H.handleRequest(L);if(T.status!==404)return T}catch{}if(j[F.pathname])try{return await j[F.pathname](L)}catch(T){return new Response(JSON.stringify({error:T.message}),{status:500,headers:{"Content-Type":"application/json"}})}if(F.pathname==="/")return(async()=>{let E=await C0(U||"");if(J)E=X4(E,G);if(Z.native)if(E.includes("<head>"))E=E.replace("<head>","<head><style>[data-stx-sidebar],.stx-sidebar{display:none!important}</style><script>window.__craftNativeSidebar=true;document.documentElement.classList.add('has-native-sidebar')</script>");else if(E.includes("<html"))E=E.replace(/(<html[^>]*>)/,"$1<head><style>[data-stx-sidebar],.stx-sidebar{display:none!important}</style><script>window.__craftNativeSidebar=true;document.documentElement.classList.add('has-native-sidebar')</script></head>");else E="<head><style>[data-stx-sidebar],.stx-sidebar{display:none!important}</style><script>window.__craftNativeSidebar=true;document.documentElement.classList.add('has-native-sidebar')</script></head>"+E;if(Z.titlebarHidden)if(E.includes("<head>"))E=E.replace("<head>","<head><style>html.stx-titlebar-hidden .stx-traffic-lights-dot{visibility:hidden}</style><script>document.documentElement.classList.add('stx-titlebar-hidden')</script>");else if(E.includes("<html"))E=E.replace(/(<html[^>]*>)/,"$1<head><style>html.stx-titlebar-hidden .stx-traffic-lights-dot{visibility:hidden}</style><script>document.documentElement.classList.add('stx-titlebar-hidden')</script></head>");else E=`<head><style>html.stx-titlebar-hidden .stx-traffic-lights-dot{visibility:hidden}</style><script>document.documentElement.classList.add('stx-titlebar-hidden')</script></head>${E}`;return E})().then((E)=>new Response(E,{headers:{"Content-Type":"text/html","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}}));let A=q1.join(W,F.pathname);if(r1.existsSync(A)&&r1.statSync(A).isFile()){let T=Bun.file(A),E=q1.extname(A).toLowerCase(),I="text/plain";if(E===".ts"||E===".tsx"){let k=new Bun.Transpiler({loader:E===".tsx"?"tsx":"ts"}),S=await T.text(),y=k.transformSync(S);return new Response(y,{headers:{"Content-Type":"application/javascript","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}switch(E){case".html":I="text/html";break;case".css":I="text/css";break;case".js":I="text/javascript";break;case".json":I="application/json";break;case".png":I="image/png";break;case".jpg":case".jpeg":I="image/jpeg";break;case".gif":I="image/gif";break;case".woff":I="font/woff";break;case".woff2":I="font/woff2";break;case".ttf":I="font/ttf";break;case".otf":I="font/otf";break;case".eot":I="application/vnd.ms-fontobject";break}return new Response(T,{headers:{"Content-Type":I}})}let N=q1.dirname(K),w=q1.join(N,F.pathname);if(r1.existsSync(w)&&r1.statSync(w).isFile()){let T=Bun.file(w),E=q1.extname(w).toLowerCase(),I="text/plain";if(E===".ts"||E===".tsx"){let k=new Bun.Transpiler({loader:E===".tsx"?"tsx":"ts"}),S=await T.text(),y=k.transformSync(S);return new Response(y,{headers:{"Content-Type":"application/javascript","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}switch(E){case".html":I="text/html";break;case".css":I="text/css";break;case".js":I="text/javascript";break;case".json":I="application/json";break;case".png":I="image/png";break;case".jpg":case".jpeg":I="image/jpeg";break;case".gif":I="image/gif";break;case".svg":I="image/svg+xml";break;case".ico":I="image/x-icon";break;case".woff":I="font/woff";break;case".woff2":I="font/woff2";break;case".ttf":I="font/ttf";break;case".otf":I="font/otf";break;case".eot":I="application/vnd.ms-fontobject";break}return new Response(T,{headers:{"Content-Type":I}})}let R=q1.join(process.cwd(),"public",F.pathname);if(r1.existsSync(R)&&r1.statSync(R).isFile()){let T=Bun.file(R),E=q1.extname(R).toLowerCase(),I="application/octet-stream";if(E===".ts"||E===".tsx"){let k=new Bun.Transpiler({loader:E===".tsx"?"tsx":"ts"}),S=await T.text(),y=k.transformSync(S);return new Response(y,{headers:{"Content-Type":"application/javascript","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}switch(E){case".html":I="text/html";break;case".css":I="text/css";break;case".js":I="text/javascript";break;case".json":I="application/json";break;case".png":I="image/png";break;case".jpg":case".jpeg":I="image/jpeg";break;case".gif":I="image/gif";break;case".svg":I="image/svg+xml";break;case".ico":I="image/x-icon";break;case".woff":I="font/woff";break;case".woff2":I="font/woff2";break;case".ttf":I="font/ttf";break;case".otf":I="font/otf";break;case".eot":I="application/vnd.ms-fontobject";break}return new Response(T,{headers:{"Content-Type":I}})}return new Response("Not Found",{status:404})},error(L){return new Response(`<pre>${L}
16163
+ </html>`,loader:"html"}}})}}});var{serve:Sx}=globalThis.Bun;import r1 from"fs";import q1 from"path";async function c8($,Z={}){let Y=Z.port||3000,X=Z.watch!==!1,J=Z.hotReload!==!1&&X,Q=null,G=Z.hmrPort||Y+1,K=q1.resolve($);if(!r1.existsSync(K))return console.error(`${M.red}Error: File not found: ${M.bright}${K}${M.reset}`),!1;if(K.endsWith(".md"))return IY(K,Z);else if(!K.endsWith(".stx"))return console.error(`${M.red}Error: Unsupported file type: ${M.bright}${K}${M.reset}. Only .stx and .md files are supported.`),!1;let W=q1.join(process.cwd(),".stx/output");r1.mkdirSync(W,{recursive:!0}),console.log(`${M.blue}Building ${M.bright}${$}${M.reset}...`);let U=null,_=async()=>{try{let L={name:"public-assets",setup(w){w.onResolve({filter:/^\/(images|fonts|assets|public)\//},(R)=>{return{path:R.path,external:!0}})}},F=await Bun.build({entrypoints:[K],outdir:W,plugins:[L,I5],publicPath:"/",define:{"process.env.NODE_ENV":'"development"'},...Z.stxOptions});if(!F.success)return console.error(`${M.red}Build failed:${M.reset}`,F.logs),!1;let A=F.outputs.find((w)=>w.path.endsWith(".html"));if(!A)return console.error(`${M.red}No HTML output found${M.reset}`),!1;return U=await Bun.file(A.path).text(),!0}catch(L){return console.error(`${M.red}Error building stx file:${M.reset}`,L),!1}};if(!await _())return!1;let B=q1.dirname(K);await U$(B);let q=Y;try{if(q=await K6(Y),q!==Y)console.log(`${M.yellow}Port ${Y} is busy, using port ${q} instead${M.reset}`)}catch{return console.error(`${M.red}Could not find an available port${M.reset}`),!1}if(J){let L=Z.hmrPort||q+1;Q=i7({wsPort:L,verbose:!1}),G=Q.start(L)}let j={},H=null;try{let{loadStxConfig:L}=await Promise.resolve().then(() => (z6(),l6)),F=await L();if(F?.apiRouter)H=F?.apiRouter,console.log(`${M.blue}Using custom router for API handling${M.reset}`);if(F?.apiRoutes){j=F.apiRoutes;let A=Object.keys(j).length;if(A>0)console.log(`${M.blue}Loaded ${M.bright}${A} API route${A>1?"s":""}${M.reset}`)}if(F?.broadcasting?.enabled)try{let{startBroadcasting:A,loadChannels:N}=await Promise.resolve().then(() => (aY(),DG)),w=F.broadcasting;await A(w);let R=w.port??6001;console.log(`${M.magenta}Broadcasting on ${M.cyan}ws://localhost:${R}/ws${M.reset}`);let T=q1.join(process.cwd(),"channels.ts");if(r1.existsSync(T))try{let E=await N(T);console.log(`${M.blue}Loaded ${M.bright}${E} broadcast channel${E!==1?"s":""}${M.blue} from channels.ts${M.reset}`)}catch(E){console.warn(`${M.yellow}Failed to load channels.ts: ${E.message}${M.reset}`)}}catch(A){console.warn(`${M.yellow}Broadcasting failed to start: ${A.message}${M.reset}`)}}catch{}if(console.log(`${M.blue}Starting server on ${M.cyan}http://localhost:${q}/${M.reset}...`),J)console.log(`${M.magenta}Hot reload enabled on ws://localhost:${G}${M.reset}`);let O=Sx({port:q,async fetch(L){let F=new URL(L.url);if(H)try{let T=await H.handleRequest(L);if(T.status!==404)return T}catch{}if(j[F.pathname])try{return await j[F.pathname](L)}catch(T){return new Response(JSON.stringify({error:T.message}),{status:500,headers:{"Content-Type":"application/json"}})}if(F.pathname==="/")return(async()=>{let E=await C0(U||"");if(J)E=X4(E,G);if(Z.native)if(E.includes("<head>"))E=E.replace("<head>","<head><style>[data-stx-sidebar],.stx-sidebar{display:none!important}</style><script>window.__craftNativeSidebar=true;document.documentElement.classList.add('has-native-sidebar')</script>");else if(E.includes("<html"))E=E.replace(/(<html[^>]*>)/,"$1<head><style>[data-stx-sidebar],.stx-sidebar{display:none!important}</style><script>window.__craftNativeSidebar=true;document.documentElement.classList.add('has-native-sidebar')</script></head>");else E="<head><style>[data-stx-sidebar],.stx-sidebar{display:none!important}</style><script>window.__craftNativeSidebar=true;document.documentElement.classList.add('has-native-sidebar')</script></head>"+E;if(Z.titlebarHidden)if(E.includes("<head>"))E=E.replace("<head>","<head><style>html.stx-titlebar-hidden .stx-traffic-lights-dot{visibility:hidden}</style><script>document.documentElement.classList.add('stx-titlebar-hidden')</script>");else if(E.includes("<html"))E=E.replace(/(<html[^>]*>)/,"$1<head><style>html.stx-titlebar-hidden .stx-traffic-lights-dot{visibility:hidden}</style><script>document.documentElement.classList.add('stx-titlebar-hidden')</script></head>");else E=`<head><style>html.stx-titlebar-hidden .stx-traffic-lights-dot{visibility:hidden}</style><script>document.documentElement.classList.add('stx-titlebar-hidden')</script></head>${E}`;return E})().then((E)=>new Response(E,{headers:{"Content-Type":"text/html","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}}));let A=q1.join(W,F.pathname);if(r1.existsSync(A)&&r1.statSync(A).isFile()){let T=Bun.file(A),E=q1.extname(A).toLowerCase(),I="text/plain";if(E===".ts"||E===".tsx"){let k=new Bun.Transpiler({loader:E===".tsx"?"tsx":"ts"}),S=await T.text(),x=k.transformSync(S);return new Response(x,{headers:{"Content-Type":"application/javascript","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}switch(E){case".html":I="text/html";break;case".css":I="text/css";break;case".js":I="text/javascript";break;case".json":I="application/json";break;case".png":I="image/png";break;case".jpg":case".jpeg":I="image/jpeg";break;case".gif":I="image/gif";break;case".woff":I="font/woff";break;case".woff2":I="font/woff2";break;case".ttf":I="font/ttf";break;case".otf":I="font/otf";break;case".eot":I="application/vnd.ms-fontobject";break}return new Response(T,{headers:{"Content-Type":I}})}let N=q1.dirname(K),w=q1.join(N,F.pathname);if(r1.existsSync(w)&&r1.statSync(w).isFile()){let T=Bun.file(w),E=q1.extname(w).toLowerCase(),I="text/plain";if(E===".ts"||E===".tsx"){let k=new Bun.Transpiler({loader:E===".tsx"?"tsx":"ts"}),S=await T.text(),x=k.transformSync(S);return new Response(x,{headers:{"Content-Type":"application/javascript","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}switch(E){case".html":I="text/html";break;case".css":I="text/css";break;case".js":I="text/javascript";break;case".json":I="application/json";break;case".png":I="image/png";break;case".jpg":case".jpeg":I="image/jpeg";break;case".gif":I="image/gif";break;case".svg":I="image/svg+xml";break;case".ico":I="image/x-icon";break;case".woff":I="font/woff";break;case".woff2":I="font/woff2";break;case".ttf":I="font/ttf";break;case".otf":I="font/otf";break;case".eot":I="application/vnd.ms-fontobject";break}return new Response(T,{headers:{"Content-Type":I}})}let R=q1.join(process.cwd(),"public",F.pathname);if(r1.existsSync(R)&&r1.statSync(R).isFile()){let T=Bun.file(R),E=q1.extname(R).toLowerCase(),I="application/octet-stream";if(E===".ts"||E===".tsx"){let k=new Bun.Transpiler({loader:E===".tsx"?"tsx":"ts"}),S=await T.text(),x=k.transformSync(S);return new Response(x,{headers:{"Content-Type":"application/javascript","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}switch(E){case".html":I="text/html";break;case".css":I="text/css";break;case".js":I="text/javascript";break;case".json":I="application/json";break;case".png":I="image/png";break;case".jpg":case".jpeg":I="image/jpeg";break;case".gif":I="image/gif";break;case".svg":I="image/svg+xml";break;case".ico":I="image/x-icon";break;case".woff":I="font/woff";break;case".woff2":I="font/woff2";break;case".ttf":I="font/ttf";break;case".otf":I="font/otf";break;case".eot":I="application/vnd.ms-fontobject";break}return new Response(T,{headers:{"Content-Type":I}})}return new Response("Not Found",{status:404})},error(L){return new Response(`<pre>${L}
16164
16164
  ${L.stack}</pre>`,{headers:{"Content-Type":"text/html"}})}});console.clear(),console.log(`
16165
16165
  ${M.blue}stx${M.reset} ${M.green}${process.env.stx_VERSION||"v0.0.10"}${M.reset} ${M.dim}ready in ${Math.random()*10+5|0}.${Math.random()*90+10|0} ms${M.reset}`),console.log(`
16166
16166
  ${M.bright}\u2192 ${M.cyan}http://localhost:${q}/${M.reset}`),console.log(`
@@ -16335,12 +16335,12 @@ ${j.stack}</pre>`,{headers:{"Content-Type":"text/html"}})}});console.clear(),con
16335
16335
  ${M.blue}stx${M.reset} ${M.green}${process.env.stx_VERSION||"v0.0.10"}${M.reset} ${M.dim}ready in ${Math.random()*10+5|0}.${Math.random()*90+10|0} ms${M.reset}`),console.log(`
16336
16336
  ${M.bright}\u2192 ${M.cyan}http://localhost:${_}/${M.reset}`),console.log(`
16337
16337
  ${M.yellow}Routes:${M.reset}`);let B=new Set(K.map((j)=>j.routeTemplate)),q=Object.entries(G).filter(([j])=>!B.has(j)).sort(([j],[H])=>j.localeCompare(H)).map(([j,H])=>({route:j==="/"?"/":j,filePath:G1.relative(process.cwd(),H.filePath),fileType:H.fileType}));for(let j of K){let H=j.routeTemplate.replace(/\[([^\]]+)\]/g,":$1");q.push({route:H,filePath:G1.relative(process.cwd(),j.filePath),fileType:"stx"})}if(q.sort((j,H)=>j.route.localeCompare(H.route)),q.forEach((j,H)=>{let V=H===q.length-1?"\u2514\u2500 ":"\u251C\u2500 ",L=j.fileType==="md"?`${M.magenta}(markdown)${M.reset}`:"";console.log(` ${M.green}${V}${j.route}${M.reset} \u2192 ${M.bright}${j.filePath}${M.reset} ${L}`)}),console.log(`
16338
- Press ${M.cyan}h${M.reset} + ${M.cyan}Enter${M.reset} to show shortcuts`),W6(z.url.toString(),()=>{if(X)L6.watch(Q,{recursive:!0}).close();z.stop()}),X){console.log(`${M.blue}Watching for changes...${M.reset}`);let j=L6.watch(Q,{recursive:!0},async(H,O)=>{if(!O)return;if(O.endsWith(".stx")||O.endsWith(".js")||O.endsWith(".ts")||O.endsWith(".md"))console.log(`${M.yellow}File ${M.bright}${O}${M.yellow} changed, rebuilding...${M.reset}`),s4.clear(),Z6(),await W()});process.on("SIGINT",()=>{j.close(),z.stop(),process.exit(0)})}return!0}var nF=D(()=>{b$();i0();N$();wX();A0();m7()});var{serve:bx}=globalThis.Bun;import N1 from"fs";import V0 from"path";function TW($){let Z=Bun.file($),Y=V0.extname($).toLowerCase(),X={".html":"text/html",".css":"text/css",".js":"text/javascript",".json":"application/json",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".svg":"image/svg+xml",".ico":"image/x-icon",".woff":"font/woff",".woff2":"font/woff2",".ttf":"font/ttf",".otf":"font/otf",".eot":"application/vnd.ms-fontobject"},Q=[".js",".css",".json"].includes(Y)?{"Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}:{};return new Response(Z,{headers:{"Content-Type":X[Y]||"application/octet-stream",...Q}})}async function p8($=".",Z={}){let Y=Z.port||3000,X=Z.watch!==!1,J=Z.hotReload!==!1&&X,Q=null,G=Z.hmrPort||Y+1,K=V0.resolve($),{loadStxConfig:W}=await Promise.resolve().then(() => (z6(),l6)),U=await W(K),_=U.root&&U.root!=="."?V0.join(K,U.root):K,z=U.pagesDir||"pages",B=V0.join(_,z);if(!N1.existsSync(B))return console.error(`${M.red}Error: No '${z}' directory found in ${M.bright}${_}${M.reset}`),console.log(`${M.dim}Create a ${z}/ directory with .stx files to define your routes.${M.reset}`),console.log(`${M.dim}Example: ${z}/index.stx for the homepage.${M.reset}`),!1;let q=w4(_);if(q.length===0)return console.error(`${M.red}Error: No page files found in ${M.bright}${B}${M.reset}`),!1;console.log(`${M.blue}Found ${M.bright}${q.length}${M.blue} routes${M.reset}`);let j=U?._pluginPageDirs||[],H=[];for(let{dir:b,prefix:d}of j)if(N1.existsSync(b)){let c=w4(V0.dirname(b),{pagesDir:V0.basename(b)});for(let r of c){let a=d==="/"?r.pattern:`${d}${r.pattern==="/"?"":r.pattern}`;H.push({route:{...r,pattern:a},prefix:d})}if(c.length>0)console.log(`${M.blue}Plugin pages: ${M.bright}${c.length}${M.blue} routes at ${M.cyan}${d}${M.reset}`)}let O=new Map,V=null,L=null;if(Z.stxOptions?.shell!==!1){if(L=await UG(K,Z.stxOptions?.shell),L){if(V=await lY(L,Z.stxOptions||{}),V)console.log(`${M.blue}Using app shell: ${M.bright}${V0.relative(K,L)}${M.reset} ${M.dim}(deprecated: use layouts/default.stx instead)${M.reset}`)}}Y8(),await G8(K);let F=Q8();if(F.length>0)console.log(`${M.blue}Loaded ${M.bright}${F.length}${M.blue} middleware: ${M.dim}${F.join(", ")}${M.reset}`);let A={},N=null;try{let{loadStxConfig:b}=await Promise.resolve().then(() => (z6(),l6)),d=await b(K);if(d?.apiRouter)N=d?.apiRouter,console.log(`${M.blue}Using custom router for API handling${M.reset}`);if(d?.apiRoutes){A=d.apiRoutes;let c=Object.keys(A).length;if(c>0)console.log(`${M.blue}Loaded ${M.bright}${c} API route${c>1?"s":""}${M.reset}`)}if(d?.broadcasting?.enabled)try{let{startBroadcasting:c,loadChannels:r}=await Promise.resolve().then(() => (aY(),DG)),a=d.broadcasting;await c(a);let B0=a.port??6001;console.log(`${M.magenta}Broadcasting on ${M.cyan}ws://localhost:${B0}/ws${M.reset}`);let Q0=V0.join(process.cwd(),"channels.ts");if(N1.existsSync(Q0))try{let M0=await r(Q0);console.log(`${M.blue}Loaded ${M.bright}${M0} broadcast channel${M0!==1?"s":""}${M.blue} from channels.ts${M.reset}`)}catch(M0){console.warn(`${M.yellow}Failed to load channels.ts: ${M0.message}${M.reset}`)}}catch(c){console.warn(`${M.yellow}Broadcasting failed to start: ${c.message}${M.reset}`)}}catch{}let w=V0.join(K,".stx/output");N1.mkdirSync(w,{recursive:!0});let R=new Map,T=new Set,E=async(b)=>{let d=zG(B,b);if(!d)return null;try{let c=await Bun.build({entrypoints:[d],outdir:w,plugins:[I5],publicPath:"/",define:{"process.env.NODE_ENV":'"development"'},...Z.stxOptions});if(!c.success)return null;let r=c.outputs.find((a)=>a.path.endsWith(".html"));if(!r)return null;return await Bun.file(r.path).text()}catch{return null}},I=async(b,d)=>{try{let{processDirectives:c,extractVariables:r,defaultConfig:a,loadStxConfig:B0,injectRouterScript:Q0}=await Promise.resolve().then(() => (z6(),l6)),{checkCache:M0,cacheTemplate:k0,readFileCached:x,templateCache:u}=await Promise.resolve().then(() => (P6(),E$)),l=await B0(K),h=(T0)=>{if(!T0)return T0;if(V0.isAbsolute(T0))return T0;return V0.resolve(K,T0)},p={...a,...l,...Z.stxOptions,autoShell:!0};if(Z.debugDirectives)p.debug=!0;p.partialsDir=h(p.partialsDir),p.componentsDir=h(p.componentsDir),p.layoutsDir=h(p.layoutsDir),p.storesDir=h(p.storesDir||"stores"),p.cachePath=h(p.cachePath||".stx/cache");let t=!d&&!Z.profile,n=p.cache!==!1;if(n&&t){let T0=u.get(b.filePath);if(T0)try{if((await N1.promises.stat(b.filePath)).mtime.getTime()<=T0.mtime){let k4=!0;for(let W1 of T0.dependencies){if(!N1.existsSync(W1)){k4=!1;break}if((await N1.promises.stat(W1)).mtime.getTime()>T0.mtime){k4=!1;break}}if(k4){let W1=T0.output;if(V)W1=N4(W1,{preserveHead:!0});return{route:b,content:W1}}}}catch{}let K1=await M0(b.filePath,p);if(K1){let v1=K1;if(V)v1=N4(v1,{preserveHead:!0});return{route:b,content:v1}}}let _0=n?await x(b.filePath):await Bun.file(b.filePath).text(),{classifyAllScripts:S0}=await Promise.resolve().then(() => (z6(),l6)),D0=S0(_0),q0=D0.server.map((T0)=>T0.content),Y1=_0;for(let T0 of D0.server)Y1=Y1.replace(T0.fullTag,"");let s0={__filename:b.filePath,__dirname:V0.dirname(b.filePath),params:d??{}},{resetHead:Z$}=await Promise.resolve().then(() => (c4(),s3));Z$();for(let T0 of q0)try{await r(T0,s0,b.filePath)}catch(K1){if(Z.stxOptions?.debug)console.error("[stx] variable extraction error",b.filePath,K1?.message||K1)}let z0=new Set,x0;if(Z.profile){let T0=performance.now();x0=await c(Y1,s0,b.filePath,p,z0);let K1=performance.now()-T0,v1=V0.relative(K,b.filePath)||b.filePath;console.log(`[stx:profile] ${v1} \u2192 ${K1.toFixed(2)}ms`)}else x0=await c(Y1,s0,b.filePath,p,z0);if(!V)x0=await Q0(x0);{let{interpolateScriptExpressions:T0}=await Promise.resolve().then(() => (o0(),l5));x0=x0.replace(/<script\b([^>]*)>([\s\S]*?)<\/script>/g,(K1,v1,k4)=>{if(!/function\s+__stx_setup_/.test(k4))return K1;return`<script${v1}>${T0(k4,s0)}</script>`})}if(V)x0=N4(x0,{preserveHead:!0});if(n&&t)await k0(b.filePath,x0,z0,p);let{extractStreamBoundaries:v5}=await Promise.resolve().then(() => (p4(),D6)),x1=v5(s0),D4=s0.__streamTemplates;if(D4&&typeof D4==="object"&&Object.keys(D4).length>0){let T0=s0.streamBoundaries||{},K1={...p,autoShell:!1},v1=Object.keys(D4).map((W1)=>({id:W1,render:async()=>{let tW=typeof T0[W1]==="function"?await T0[W1]():void 0;return c(D4[W1],{...s0,$boundary:tW},b.filePath,K1,new Set)}})),k4=new Set(v1.map((W1)=>W1.id));x1=[...(x1||[]).filter((W1)=>!k4.has(W1.id)),...v1]}if(x1&&x1.length>0)T.add(b.pattern);else x1=void 0;return{route:b,content:x0,boundaries:x1}}catch(c){return console.error(`${M.red}Error building ${M.bright}${b.pattern}${M.reset}:`,c),null}},k=8,S=async()=>{R.clear(),O.clear();for(let b=0;b<q.length;b+=k){let d=q.slice(b,b+k),c=await Promise.all(d.map((r)=>I(r)));for(let r of c)if(r)R.set(r.route.pattern,r)}for(let b=0;b<H.length;b+=k){let d=H.slice(b,b+k),c=await Promise.all(d.map(({route:r})=>I(r)));for(let r of c)if(r)O.set(r.route.pattern,r)}return R.size>0};if(console.log(`${M.blue}Building pages...${M.reset}`),!await S())return console.error(`${M.red}No pages were successfully built${M.reset}`),!1;await U$(K);let P=Y;try{if(P=await K6(Y),P!==Y)console.log(`${M.yellow}Port ${Y} is busy, using port ${P} instead${M.reset}`)}catch{return console.error(`${M.red}Could not find an available port${M.reset}`),!1}if(J){let b=Z.hmrPort||P+1;Q=i7({wsPort:b,verbose:!1}),G=Q.start(b)}let C=(b,d)=>{let c=`<script>(function(){var s=typeof stx!=='undefined'?stx:{};s._rp=${JSON.stringify(d)};if(s.setRouteParams)s.setRouteParams(s._rp);})()</script>`;if(b.includes("</head>"))return b.replace("</head>",`${c}</head>`);if(b.includes("<body"))return b.replace(/<body([^>]*)>/,`<body$1>${c}`);return c+b};console.log(`${M.blue}Starting server...${M.reset}`);let g=bx({port:P,async fetch(b){let d=new URL(b.url),c=U?.publicDir||"public",r=V0.join(K,c,d.pathname),a=V0.join(K,d.pathname),B0=V0.join(w,d.pathname),[Q0,M0,k0]=await Promise.all([N1.promises.stat(r).catch(()=>null),N1.promises.stat(a).catch(()=>null),N1.promises.stat(B0).catch(()=>null)]);if(Q0?.isFile())return TW(r);if(M0?.isFile())return TW(a);if(k0?.isFile())return TW(B0);if(d.pathname.startsWith("/_stx/component/")){let h=decodeURIComponent(d.pathname.slice(16));if(h)try{let p=`<${h} />`,t={...buildConfig,autoShell:!1},n=await processDirectives(p,{},V0.join(K,"components",`${h}.stx`),t,new Set);return new Response(n,{headers:{"Content-Type":"text/html"}})}catch(p){return new Response(`<div class="stx-async-error">${p.message}</div>`,{status:500,headers:{"Content-Type":"text/html"}})}}if(d.pathname==="/_stx/img"){let{handleImageRequest:h}=await Promise.resolve().then(() => (oQ(),nH)),p=await h(b,{publicDir:V0.join(K,c),cacheDir:V0.join(K,".stx/cache/img")});if(p)return p}if(N)try{let h=await N.handleRequest(b);if(h.status!==404)return h}catch{}if(A[d.pathname])try{return await A[d.pathname](b)}catch(h){return new Response(JSON.stringify({error:h.message}),{status:500,headers:{"Content-Type":"application/json"}})}let x=pY(d.pathname,q);if(x){let h=R.get(x.route.pattern),p=T.has(x.route.pattern);if(x.route.isDynamic&&Object.keys(x.params).length>0||p){let t=await I(x.route,x.params);if(t)h=t}if(h){let t=a3();if(t.validate){if(!await t.validate({params:x.params})){let S0=await E(404);if(S0){let D0=S0;if(D0=await C0(D0,K),J)D0=X4(D0,G);return new Response(D0,{status:404,headers:{"Content-Type":"text/html"}})}return new Response("Not Found",{status:404})}}if(t.middleware){let _0=J8(d.pathname,x.params,t,d.search),S0=X8(_0,null,b),D0=await K8(t.middleware,S0);if(D0.redirect){let q0=D0.redirect.path,Y1=D0.redirect.options.redirectCode||302,s0=new Headers(D0.responseHeaders);return s0.set("Location",q0),new Response(null,{status:Y1,headers:s0})}if(D0.abort){let{statusCode:q0,message:Y1}=D0.abort.error;return new Response(`<!DOCTYPE html><html><head><title>Error ${q0}</title></head><body><h1>Error ${q0}</h1><p>${Y1}</p></body></html>`,{status:q0,headers:{"Content-Type":"text/html"}})}if(Object.keys(D0.state).length>0){let q0=`<script>(function(){var s=typeof stx!=='undefined'?stx:{};s._ms=${JSON.stringify(D0.state)};if(s.setMiddlewareState)s.setMiddlewareState(s._ms);})()</script>`;h.content=h.content.replace("</head>",`${q0}</head>`)}}let n=h.content;if(V&&_G(b)){let _0=z8(n);if(Object.keys(x.params).length>0)n=C(n,x.params);n=await C0(n,K);let S0=U?.router?.container||"main";return n=_8(n,S0),new Response(n,{headers:{"Content-Type":"text/html","X-STX-Fragment":"true","X-STX-Layout":_0.layout,"X-STX-Layout-Group":_0.group,"Cache-Control":"no-store, no-cache, must-revalidate"}})}if(V)n=U8(V,n);if(Object.keys(x.params).length>0)n=C(n,x.params);if(n=await C0(n,K),J)n=X4(n,G);if(Z.native)if(n.includes("<head>"))n=n.replace("<head>","<head><style>[data-stx-sidebar],.stx-sidebar{display:none!important}</style><script>window.__craftNativeSidebar=true;document.documentElement.classList.add('has-native-sidebar')</script>");else n="<head><style>[data-stx-sidebar],.stx-sidebar{display:none!important}</style><script>window.__craftNativeSidebar=true;document.documentElement.classList.add('has-native-sidebar')</script></head>"+n;if(Z.titlebarHidden)if(n.includes("<head>"))n=n.replace("<head>","<head><style>html.stx-titlebar-hidden .stx-traffic-lights-dot{visibility:hidden}</style><script>document.documentElement.classList.add('stx-titlebar-hidden')</script>");else n=`<head><style>html.stx-titlebar-hidden .stx-traffic-lights-dot{visibility:hidden}</style><script>document.documentElement.classList.add('stx-titlebar-hidden')</script></head>${n}`;if(h.boundaries&&h.boundaries.length>0){let{renderStreamingPage:_0,streamToResponse:S0}=await Promise.resolve().then(() => (p4(),D6));return S0(_0(n,h.boundaries,{timeoutMs:30000}),{headers:{"Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}return new Response(n,{headers:{"Content-Type":"text/html","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}}if(H.length>0){let h=H.map((t)=>t.route),p=pY(d.pathname,h);if(p){let t=O.get(p.route.pattern);if(t){let n=t.content;if(V)n=U8(V,n);if(Object.keys(p.params).length>0)n=C(n,p.params);if(n=await C0(n,K),J)n=X4(n,G);return new Response(n,{headers:{"Content-Type":"text/html","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}}for(let{prefix:t}of j)if(t!=="/"&&d.pathname.startsWith(t)){let n=O.get(t)||O.get(t+"/");if(n){let _0=n.content;if(V)_0=U8(V,_0);if(_0=await C0(_0,K),J)_0=X4(_0,G);return new Response(_0,{headers:{"Content-Type":"text/html","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}}}let u=R.get("/");if(u){let h=u.content;if(h=await C0(h,K),J)h=X4(h,G);if(Z.native)if(h.includes("<head>"))h=h.replace("<head>","<head><style>[data-stx-sidebar],.stx-sidebar{display:none!important}</style><script>window.__craftNativeSidebar=true;document.documentElement.classList.add('has-native-sidebar')</script>");else h="<head><style>[data-stx-sidebar],.stx-sidebar{display:none!important}</style><script>window.__craftNativeSidebar=true;document.documentElement.classList.add('has-native-sidebar')</script></head>"+h;return new Response(h,{headers:{"Content-Type":"text/html","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}let l=await E(404);if(l){let h=l;if(h=await C0(h,K),J)h=X4(h,G);return new Response(h,{status:404,headers:{"Content-Type":"text/html"}})}return new Response("Not Found",{status:404})},async error(b){let d=await E(500);if(d)return new Response(d,{status:500,headers:{"Content-Type":"text/html"}});return new Response(`<pre>${b}
16338
+ Press ${M.cyan}h${M.reset} + ${M.cyan}Enter${M.reset} to show shortcuts`),W6(z.url.toString(),()=>{if(X)L6.watch(Q,{recursive:!0}).close();z.stop()}),X){console.log(`${M.blue}Watching for changes...${M.reset}`);let j=L6.watch(Q,{recursive:!0},async(H,O)=>{if(!O)return;if(O.endsWith(".stx")||O.endsWith(".js")||O.endsWith(".ts")||O.endsWith(".md"))console.log(`${M.yellow}File ${M.bright}${O}${M.yellow} changed, rebuilding...${M.reset}`),s4.clear(),Z6(),await W()});process.on("SIGINT",()=>{j.close(),z.stop(),process.exit(0)})}return!0}var nF=D(()=>{b$();i0();N$();wX();A0();m7()});var{serve:bx}=globalThis.Bun;import N1 from"fs";import V0 from"path";function TW($){let Z=Bun.file($),Y=V0.extname($).toLowerCase(),X={".html":"text/html",".css":"text/css",".js":"text/javascript",".json":"application/json",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".svg":"image/svg+xml",".ico":"image/x-icon",".woff":"font/woff",".woff2":"font/woff2",".ttf":"font/ttf",".otf":"font/otf",".eot":"application/vnd.ms-fontobject"},Q=[".js",".css",".json"].includes(Y)?{"Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}:{};return new Response(Z,{headers:{"Content-Type":X[Y]||"application/octet-stream",...Q}})}async function p8($=".",Z={}){let Y=Z.port||3000,X=Z.watch!==!1,J=Z.hotReload!==!1&&X,Q=null,G=Z.hmrPort||Y+1,K=V0.resolve($),{loadStxConfig:W}=await Promise.resolve().then(() => (z6(),l6)),U=await W(K),_=U.root&&U.root!=="."?V0.join(K,U.root):K,z=U.pagesDir||"pages",B=V0.join(_,z);if(!N1.existsSync(B))return console.error(`${M.red}Error: No '${z}' directory found in ${M.bright}${_}${M.reset}`),console.log(`${M.dim}Create a ${z}/ directory with .stx files to define your routes.${M.reset}`),console.log(`${M.dim}Example: ${z}/index.stx for the homepage.${M.reset}`),!1;let q=w4(_);if(q.length===0)return console.error(`${M.red}Error: No page files found in ${M.bright}${B}${M.reset}`),!1;console.log(`${M.blue}Found ${M.bright}${q.length}${M.blue} routes${M.reset}`);let j=U?._pluginPageDirs||[],H=[];for(let{dir:b,prefix:d}of j)if(N1.existsSync(b)){let l=w4(V0.dirname(b),{pagesDir:V0.basename(b)});for(let r of l){let a=d==="/"?r.pattern:`${d}${r.pattern==="/"?"":r.pattern}`;H.push({route:{...r,pattern:a},prefix:d})}if(l.length>0)console.log(`${M.blue}Plugin pages: ${M.bright}${l.length}${M.blue} routes at ${M.cyan}${d}${M.reset}`)}let O=new Map,V=null,L=null;if(Z.stxOptions?.shell!==!1){if(L=await UG(K,Z.stxOptions?.shell),L){if(V=await lY(L,Z.stxOptions||{}),V)console.log(`${M.blue}Using app shell: ${M.bright}${V0.relative(K,L)}${M.reset} ${M.dim}(deprecated: use layouts/default.stx instead)${M.reset}`)}}Y8(),await G8(K);let F=Q8();if(F.length>0)console.log(`${M.blue}Loaded ${M.bright}${F.length}${M.blue} middleware: ${M.dim}${F.join(", ")}${M.reset}`);let A={},N=null;try{let{loadStxConfig:b}=await Promise.resolve().then(() => (z6(),l6)),d=await b(K);if(d?.apiRouter)N=d?.apiRouter,console.log(`${M.blue}Using custom router for API handling${M.reset}`);if(d?.apiRoutes){A=d.apiRoutes;let l=Object.keys(A).length;if(l>0)console.log(`${M.blue}Loaded ${M.bright}${l} API route${l>1?"s":""}${M.reset}`)}if(d?.broadcasting?.enabled)try{let{startBroadcasting:l,loadChannels:r}=await Promise.resolve().then(() => (aY(),DG)),a=d.broadcasting;await l(a);let B0=a.port??6001;console.log(`${M.magenta}Broadcasting on ${M.cyan}ws://localhost:${B0}/ws${M.reset}`);let Q0=V0.join(process.cwd(),"channels.ts");if(N1.existsSync(Q0))try{let M0=await r(Q0);console.log(`${M.blue}Loaded ${M.bright}${M0} broadcast channel${M0!==1?"s":""}${M.blue} from channels.ts${M.reset}`)}catch(M0){console.warn(`${M.yellow}Failed to load channels.ts: ${M0.message}${M.reset}`)}}catch(l){console.warn(`${M.yellow}Broadcasting failed to start: ${l.message}${M.reset}`)}}catch{}let w=V0.join(K,".stx/output");N1.mkdirSync(w,{recursive:!0});let R=new Map,T=new Set,E=async(b)=>{let d=zG(B,b);if(!d)return null;try{let l=await Bun.build({entrypoints:[d],outdir:w,plugins:[I5],publicPath:"/",define:{"process.env.NODE_ENV":'"development"'},...Z.stxOptions});if(!l.success)return null;let r=l.outputs.find((a)=>a.path.endsWith(".html"));if(!r)return null;return await Bun.file(r.path).text()}catch{return null}},I=async(b,d)=>{try{let{processDirectives:l,extractVariables:r,defaultConfig:a,loadStxConfig:B0,injectRouterScript:Q0}=await Promise.resolve().then(() => (z6(),l6)),{checkCache:M0,cacheTemplate:k0,readFileCached:y,templateCache:u}=await Promise.resolve().then(() => (P6(),E$)),c=await B0(K),h=(T0)=>{if(!T0)return T0;if(V0.isAbsolute(T0))return T0;return V0.resolve(K,T0)},p={...a,...c,...Z.stxOptions,autoShell:!0};if(Z.debugDirectives)p.debug=!0;p.partialsDir=h(p.partialsDir),p.componentsDir=h(p.componentsDir),p.layoutsDir=h(p.layoutsDir),p.storesDir=h(p.storesDir||"stores"),p.cachePath=h(p.cachePath||".stx/cache");let t=!d&&!Z.profile,n=p.cache!==!1;if(n&&t){let T0=u.get(b.filePath);if(T0)try{if((await N1.promises.stat(b.filePath)).mtime.getTime()<=T0.mtime){let k4=!0;for(let W1 of T0.dependencies){if(!N1.existsSync(W1)){k4=!1;break}if((await N1.promises.stat(W1)).mtime.getTime()>T0.mtime){k4=!1;break}}if(k4){let W1=T0.output;if(V)W1=N4(W1,{preserveHead:!0});return{route:b,content:W1}}}}catch{}let K1=await M0(b.filePath,p);if(K1){let v1=K1;if(V)v1=N4(v1,{preserveHead:!0});return{route:b,content:v1}}}let _0=n?await y(b.filePath):await Bun.file(b.filePath).text(),{classifyAllScripts:S0}=await Promise.resolve().then(() => (z6(),l6)),D0=S0(_0),q0=D0.server.map((T0)=>T0.content),Y1=_0;for(let T0 of D0.server)Y1=Y1.replace(T0.fullTag,"");let s0={__filename:b.filePath,__dirname:V0.dirname(b.filePath),params:d??{}},{resetHead:Z$}=await Promise.resolve().then(() => (c4(),s3));Z$();for(let T0 of q0)try{await r(T0,s0,b.filePath)}catch(K1){if(Z.stxOptions?.debug)console.error("[stx] variable extraction error",b.filePath,K1?.message||K1)}let z0=new Set,x0;if(Z.profile){let T0=performance.now();x0=await l(Y1,s0,b.filePath,p,z0);let K1=performance.now()-T0,v1=V0.relative(K,b.filePath)||b.filePath;console.log(`[stx:profile] ${v1} \u2192 ${K1.toFixed(2)}ms`)}else x0=await l(Y1,s0,b.filePath,p,z0);if(!V)x0=await Q0(x0);{let{interpolateScriptExpressions:T0}=await Promise.resolve().then(() => (o0(),l5));x0=x0.replace(/<script\b([^>]*)>([\s\S]*?)<\/script>/g,(K1,v1,k4)=>{if(!/function\s+__stx_setup_/.test(k4))return K1;return`<script${v1}>${T0(k4,s0)}</script>`})}if(V)x0=N4(x0,{preserveHead:!0});if(n&&t)await k0(b.filePath,x0,z0,p);let{extractStreamBoundaries:v5}=await Promise.resolve().then(() => (p4(),D6)),x1=v5(s0),D4=s0.__streamTemplates;if(D4&&typeof D4==="object"&&Object.keys(D4).length>0){let T0=s0.streamBoundaries||{},K1={...p,autoShell:!1},v1=Object.keys(D4).map((W1)=>({id:W1,render:async()=>{let tW=typeof T0[W1]==="function"?await T0[W1]():void 0;return l(D4[W1],{...s0,$boundary:tW},b.filePath,K1,new Set)}})),k4=new Set(v1.map((W1)=>W1.id));x1=[...(x1||[]).filter((W1)=>!k4.has(W1.id)),...v1]}if(x1&&x1.length>0)T.add(b.pattern);else x1=void 0;return{route:b,content:x0,boundaries:x1}}catch(l){return console.error(`${M.red}Error building ${M.bright}${b.pattern}${M.reset}:`,l),null}},k=8,S=async()=>{R.clear(),O.clear();for(let b=0;b<q.length;b+=k){let d=q.slice(b,b+k),l=await Promise.all(d.map((r)=>I(r)));for(let r of l)if(r)R.set(r.route.pattern,r)}for(let b=0;b<H.length;b+=k){let d=H.slice(b,b+k),l=await Promise.all(d.map(({route:r})=>I(r)));for(let r of l)if(r)O.set(r.route.pattern,r)}return R.size>0};if(console.log(`${M.blue}Building pages...${M.reset}`),!await S())return console.error(`${M.red}No pages were successfully built${M.reset}`),!1;await U$(K);let P=Y;try{if(P=await K6(Y),P!==Y)console.log(`${M.yellow}Port ${Y} is busy, using port ${P} instead${M.reset}`)}catch{return console.error(`${M.red}Could not find an available port${M.reset}`),!1}if(J){let b=Z.hmrPort||P+1;Q=i7({wsPort:b,verbose:!1}),G=Q.start(b)}let C=(b,d)=>{let l=`<script>(function(){var s=typeof stx!=='undefined'?stx:{};s._rp=${JSON.stringify(d)};if(s.setRouteParams)s.setRouteParams(s._rp);})()</script>`;if(b.includes("</head>"))return b.replace("</head>",`${l}</head>`);if(b.includes("<body"))return b.replace(/<body([^>]*)>/,`<body$1>${l}`);return l+b};console.log(`${M.blue}Starting server...${M.reset}`);let g=bx({port:P,async fetch(b){let d=new URL(b.url),l=U?.publicDir||"public",r=V0.join(K,l,d.pathname),a=V0.join(K,d.pathname),B0=V0.join(w,d.pathname),[Q0,M0,k0]=await Promise.all([N1.promises.stat(r).catch(()=>null),N1.promises.stat(a).catch(()=>null),N1.promises.stat(B0).catch(()=>null)]);if(Q0?.isFile())return TW(r);if(M0?.isFile())return TW(a);if(k0?.isFile())return TW(B0);if(d.pathname.startsWith("/_stx/component/")){let h=decodeURIComponent(d.pathname.slice(16));if(h)try{let p=`<${h} />`,t={...buildConfig,autoShell:!1},n=await processDirectives(p,{},V0.join(K,"components",`${h}.stx`),t,new Set);return new Response(n,{headers:{"Content-Type":"text/html"}})}catch(p){return new Response(`<div class="stx-async-error">${p.message}</div>`,{status:500,headers:{"Content-Type":"text/html"}})}}if(d.pathname==="/_stx/img"){let{handleImageRequest:h}=await Promise.resolve().then(() => (oQ(),nH)),p=await h(b,{publicDir:V0.join(K,l),cacheDir:V0.join(K,".stx/cache/img")});if(p)return p}if(N)try{let h=await N.handleRequest(b);if(h.status!==404)return h}catch{}if(A[d.pathname])try{return await A[d.pathname](b)}catch(h){return new Response(JSON.stringify({error:h.message}),{status:500,headers:{"Content-Type":"application/json"}})}let y=pY(d.pathname,q);if(y){let h=R.get(y.route.pattern),p=T.has(y.route.pattern);if(y.route.isDynamic&&Object.keys(y.params).length>0||p){let t=await I(y.route,y.params);if(t)h=t}if(h){let t=a3();if(t.validate){if(!await t.validate({params:y.params})){let S0=await E(404);if(S0){let D0=S0;if(D0=await C0(D0,K),J)D0=X4(D0,G);return new Response(D0,{status:404,headers:{"Content-Type":"text/html"}})}return new Response("Not Found",{status:404})}}if(t.middleware){let _0=J8(d.pathname,y.params,t,d.search),S0=X8(_0,null,b),D0=await K8(t.middleware,S0);if(D0.redirect){let q0=D0.redirect.path,Y1=D0.redirect.options.redirectCode||302,s0=new Headers(D0.responseHeaders);return s0.set("Location",q0),new Response(null,{status:Y1,headers:s0})}if(D0.abort){let{statusCode:q0,message:Y1}=D0.abort.error;return new Response(`<!DOCTYPE html><html><head><title>Error ${q0}</title></head><body><h1>Error ${q0}</h1><p>${Y1}</p></body></html>`,{status:q0,headers:{"Content-Type":"text/html"}})}if(Object.keys(D0.state).length>0){let q0=`<script>(function(){var s=typeof stx!=='undefined'?stx:{};s._ms=${JSON.stringify(D0.state)};if(s.setMiddlewareState)s.setMiddlewareState(s._ms);})()</script>`;h.content=h.content.replace("</head>",`${q0}</head>`)}}let n=h.content;if(V&&_G(b)){let _0=z8(n);if(Object.keys(y.params).length>0)n=C(n,y.params);n=await C0(n,K);let S0=U?.router?.container||"main";return n=_8(n,S0),new Response(n,{headers:{"Content-Type":"text/html","X-STX-Fragment":"true","X-STX-Layout":_0.layout,"X-STX-Layout-Group":_0.group,"Cache-Control":"no-store, no-cache, must-revalidate"}})}if(V)n=U8(V,n);if(Object.keys(y.params).length>0)n=C(n,y.params);if(n=await C0(n,K),J)n=X4(n,G);if(Z.native)if(n.includes("<head>"))n=n.replace("<head>","<head><style>[data-stx-sidebar],.stx-sidebar{display:none!important}</style><script>window.__craftNativeSidebar=true;document.documentElement.classList.add('has-native-sidebar')</script>");else n="<head><style>[data-stx-sidebar],.stx-sidebar{display:none!important}</style><script>window.__craftNativeSidebar=true;document.documentElement.classList.add('has-native-sidebar')</script></head>"+n;if(Z.titlebarHidden)if(n.includes("<head>"))n=n.replace("<head>","<head><style>html.stx-titlebar-hidden .stx-traffic-lights-dot{visibility:hidden}</style><script>document.documentElement.classList.add('stx-titlebar-hidden')</script>");else n=`<head><style>html.stx-titlebar-hidden .stx-traffic-lights-dot{visibility:hidden}</style><script>document.documentElement.classList.add('stx-titlebar-hidden')</script></head>${n}`;if(h.boundaries&&h.boundaries.length>0){let{renderStreamingPage:_0,streamToResponse:S0}=await Promise.resolve().then(() => (p4(),D6));return S0(_0(n,h.boundaries,{timeoutMs:30000}),{headers:{"Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}return new Response(n,{headers:{"Content-Type":"text/html","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}}if(H.length>0){let h=H.map((t)=>t.route),p=pY(d.pathname,h);if(p){let t=O.get(p.route.pattern);if(t){let n=t.content;if(V)n=U8(V,n);if(Object.keys(p.params).length>0)n=C(n,p.params);if(n=await C0(n,K),J)n=X4(n,G);return new Response(n,{headers:{"Content-Type":"text/html","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}}for(let{prefix:t}of j)if(t!=="/"&&d.pathname.startsWith(t)){let n=O.get(t)||O.get(t+"/");if(n){let _0=n.content;if(V)_0=U8(V,_0);if(_0=await C0(_0,K),J)_0=X4(_0,G);return new Response(_0,{headers:{"Content-Type":"text/html","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}}}let u=R.get("/");if(u){let h=u.content;if(h=await C0(h,K),J)h=X4(h,G);if(Z.native)if(h.includes("<head>"))h=h.replace("<head>","<head><style>[data-stx-sidebar],.stx-sidebar{display:none!important}</style><script>window.__craftNativeSidebar=true;document.documentElement.classList.add('has-native-sidebar')</script>");else h="<head><style>[data-stx-sidebar],.stx-sidebar{display:none!important}</style><script>window.__craftNativeSidebar=true;document.documentElement.classList.add('has-native-sidebar')</script></head>"+h;return new Response(h,{headers:{"Content-Type":"text/html","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}let c=await E(404);if(c){let h=c;if(h=await C0(h,K),J)h=X4(h,G);return new Response(h,{status:404,headers:{"Content-Type":"text/html"}})}return new Response("Not Found",{status:404})},async error(b){let d=await E(500);if(d)return new Response(d,{status:500,headers:{"Content-Type":"text/html"}});return new Response(`<pre>${b}
16339
16339
  ${b.stack}</pre>`,{headers:{"Content-Type":"text/html"}})}});if(console.clear(),console.log(`
16340
16340
  ${M.blue}stx${M.reset} ${M.green}${process.env.stx_VERSION||"v0.0.10"}${M.reset} ${M.dim}ready in ${Math.random()*10+5|0}.${Math.random()*90+10|0} ms${M.reset}`),console.log(`
16341
16341
  ${M.bright}\u2192 ${M.cyan}http://localhost:${P}/${M.reset}`),J)console.log(`${M.dim} HMR: ws://localhost:${G}${M.reset}`);console.log(`
16342
16342
  ${M.yellow}Routes:${M.reset}`);let m=[...BG(q,K)];for(let{route:b}of H)m.push(`${b.pattern}`);if(m.forEach((b,d)=>{let r=d===m.length-1?"\u2514\u2500 ":"\u251C\u2500 ";console.log(` ${M.green}${r}${M.reset}${b}`)}),console.log(`
16343
- Press ${M.cyan}h${M.reset} + ${M.cyan}Enter${M.reset} to show shortcuts`),W6(g.url.toString(),()=>{if(Q)Q5();g.stop()}),Z.native){let b,d=V0.join(B,"index.stx");if(N1.existsSync(d)){let r=await Bun.file(d).text();b=EY(r)}let c=U?.app?.window??{};await Y5(P,{title:U?.app?.head?.title||V0.basename(K)||"stx App",width:c.width,height:c.height,darkMode:c.darkMode,hotReload:c.hotReload,titlebarHidden:c.titlebarHidden??Z.titlebarHidden===!0,nativeSidebar:!!b,sidebarConfig:b})}if(X){console.log(`${M.blue}Watching for changes...${M.reset}`);let b=(r)=>{return r.startsWith("public/")||r.startsWith("public\\")},d=(r)=>{let a=r.toLowerCase();return a.endsWith(".stx")||a.endsWith(".html")||a.endsWith(".md")},c=N1.watch(K,{recursive:!0},async(r,a)=>{if(!a||p7(a))return;if(l7(a))if(b(a)){if(console.log(`${M.cyan}${a} changed${M.reset}`),J&&Q)Q.reload(a)}else if(d(a)){console.log(`${M.yellow}${a} changed, rebuilding...${M.reset}`),s4.clear(),Z6();try{let{invalidateFileCache:B0,templateCache:Q0}=await Promise.resolve().then(() => (P6(),E$));B0(V0.resolve(K,a)),Q0.delete(V0.resolve(K,a))}catch{}if(L&&a){if(V0.resolve(K,a)===L||V0.basename(L)===a){let Q0=await lY(L,Z.stxOptions||{});if(Q0)V=Q0}}if(await S(),await r5(K),J&&Q)Q.reload(a)}else{console.log(`${M.yellow}${a} changed, rebuilding...${M.reset}`),s4.clear(),Z6();try{let{invalidateFileCache:B0,templateCache:Q0}=await Promise.resolve().then(() => (P6(),E$));B0(V0.resolve(K,a)),Q0.delete(V0.resolve(K,a))}catch{}if(await S(),J&&Q)Q.reload(a)}else if(c7(a)){if(console.log(`${M.cyan}CSS ${a} changed${M.reset}`),J&&Q)Q.updateCss(a)}});process.on("SIGINT",()=>{if(c.close(),Q)Q5();g.stop(),process.exit(0)})}return!0}var rF=D(()=>{j5();N$();wX();B8();mY();c4();A0();m7()});var MW=D(()=>{cQ();iF();nF();rF()});var tF={};e(tF,{runPwaAudit:()=>Px,formatAuditResult:()=>yx,calculateAuditResult:()=>oF,auditConfig:()=>aF,auditBuildOutput:()=>sF});import t6 from"fs";import RX from"path";function aF($){let Z=[],Y=$.pwa;if(Z.push({id:"pwa-enabled",name:"PWA Enabled",category:"required",passed:Y?.enabled===!0,message:Y?.enabled?"PWA is enabled":"PWA is not enabled in config"}),!Y?.enabled)return Z;Z.push({id:"manifest-name",name:"App Name",category:"required",passed:Boolean(Y.manifest?.name),message:Y.manifest?.name?`App name: "${Y.manifest.name}"`:"Missing required manifest name"}),Z.push({id:"manifest-short-name",name:"Short Name",category:"recommended",passed:Boolean(Y.manifest?.shortName),message:Y.manifest?.shortName?`Short name: "${Y.manifest.shortName}"`:"Short name not set (will use full name)"}),Z.push({id:"manifest-description",name:"App Description",category:"recommended",passed:Boolean(Y.manifest?.description),message:Y.manifest?.description?"Description is set":"App description not provided"}),Z.push({id:"manifest-theme-color",name:"Theme Color",category:"required",passed:Boolean(Y.manifest?.themeColor),message:Y.manifest?.themeColor?`Theme color: ${Y.manifest.themeColor}`:"Theme color not set"}),Z.push({id:"manifest-background-color",name:"Background Color",category:"required",passed:Boolean(Y.manifest?.backgroundColor),message:Y.manifest?.backgroundColor?`Background color: ${Y.manifest.backgroundColor}`:"Background color not set"}),Z.push({id:"manifest-display",name:"Display Mode",category:"required",passed:["standalone","fullscreen","minimal-ui"].includes(Y.manifest?.display||""),message:Y.manifest?.display?`Display mode: ${Y.manifest.display}`:"Display mode should be standalone, fullscreen, or minimal-ui"}),Z.push({id:"manifest-start-url",name:"Start URL",category:"required",passed:Boolean(Y.manifest?.startUrl),message:Y.manifest?.startUrl?`Start URL: ${Y.manifest.startUrl}`:"Start URL not set"}),Z.push({id:"icons-source",name:"Icon Source",category:"required",passed:Boolean(Y.icons?.src),message:Y.icons?.src?`Icon source: ${Y.icons.src}`:"No icon source configured"});let X=Y.icons?.sizes||[];Z.push({id:"icons-192",name:"192x192 Icon",category:"required",passed:X.includes(192),message:X.includes(192)?"192x192 icon will be generated":"Missing 192x192 icon (required for Android)"}),Z.push({id:"icons-512",name:"512x512 Icon",category:"required",passed:X.includes(512),message:X.includes(512)?"512x512 icon will be generated":"Missing 512x512 icon (required for splash screen)"}),Z.push({id:"icons-maskable",name:"Maskable Icon",category:"recommended",passed:Y.icons?.purpose?.includes("maskable")||!1,message:Y.icons?.purpose?.includes("maskable")?"Maskable icon purpose is set":"Consider adding maskable icon purpose for adaptive icons"}),Z.push({id:"sw-configured",name:"Service Worker",category:"required",passed:Boolean(Y.serviceWorker),message:Y.serviceWorker?"Service worker is configured":"Service worker configuration missing"}),Z.push({id:"sw-cache-version",name:"Cache Version",category:"recommended",passed:Boolean(Y.serviceWorker?.cacheVersion),message:Y.serviceWorker?.cacheVersion?`Cache version: ${Y.serviceWorker.cacheVersion}`:"Set cache version for proper cache busting"}),Z.push({id:"offline-enabled",name:"Offline Support",category:"required",passed:Y.offline?.enabled===!0,message:Y.offline?.enabled?"Offline support is enabled":"Offline support is disabled"});let J=Y.routes||[];return Z.push({id:"caching-strategies",name:"Caching Strategies",category:"recommended",passed:J.length>0,message:J.length>0?`${J.length} route caching strategies configured`:"No custom caching strategies defined"}),Z.push({id:"push-config",name:"Push Notifications",category:"optional",passed:!Y.push?.enabled||Boolean(Y.push?.vapidPublicKey),message:Y.push?.enabled?Y.push?.vapidPublicKey?"Push notifications configured with VAPID key":"Push enabled but missing VAPID key":"Push notifications not enabled"}),Z.push({id:"share-target",name:"Share Target",category:"optional",passed:!0,message:Y.shareTarget?.enabled?`Share target enabled at ${Y.shareTarget.action}`:"Share target not enabled"}),Z.push({id:"auto-inject",name:"Auto-injection",category:"recommended",passed:Y.autoInject!==!1,message:Y.autoInject!==!1?"PWA tags will be auto-injected":"Auto-injection disabled - manual tag insertion required"}),Z}function sF($){let Z=[],Y=RX.join($,"manifest.json"),X=t6.existsSync(Y);if(Z.push({id:"build-manifest",name:"Manifest File",category:"required",passed:X,message:X?"manifest.json exists":"manifest.json not found in build output"}),X)try{let _=JSON.parse(t6.readFileSync(Y,"utf-8"));Z.push({id:"build-manifest-valid",name:"Valid Manifest JSON",category:"required",passed:!0,message:"Manifest is valid JSON"}),Z.push({id:"build-manifest-icons",name:"Manifest Icons",category:"required",passed:Array.isArray(_.icons)&&_.icons.length>0,message:_.icons?.length?`${_.icons.length} icons defined in manifest`:"No icons defined in manifest"})}catch{Z.push({id:"build-manifest-valid",name:"Valid Manifest JSON",category:"required",passed:!1,message:"Manifest is not valid JSON"})}let J=RX.join($,"sw.js"),Q=t6.existsSync(J);Z.push({id:"build-sw",name:"Service Worker File",category:"required",passed:Q,message:Q?"Service worker (sw.js) exists":"Service worker not found in build output"});let G=RX.join($,"offline.html"),K=t6.existsSync(G);Z.push({id:"build-offline",name:"Offline Page",category:"recommended",passed:K,message:K?"Offline page exists":"No offline.html found"});let W=RX.join($,"pwa-icons");if(t6.existsSync(W)){let _=t6.readdirSync(W).filter((z)=>z.endsWith(".png")||z.endsWith(".webp"));Z.push({id:"build-icons",name:"Generated Icons",category:"required",passed:_.length>0,message:_.length>0?`${_.length} icon files generated`:"No icon files found"})}else Z.push({id:"build-icons",name:"Generated Icons",category:"required",passed:!1,message:"Icons directory not found"});return Z}function oF($){let Z=$.filter((W)=>W.category==="required"),Y=$.filter((W)=>W.category==="recommended"),X=Z.filter((W)=>W.passed).length,J=Y.filter((W)=>W.passed).length,Q=Z.length>0?X/Z.length*70:70,G=Y.length>0?J/Y.length*30:30;return{score:Math.round(Q+G),passed:$.filter((W)=>W.passed).length,failed:$.filter((W)=>!W.passed&&W.category==="required").length,warnings:$.filter((W)=>!W.passed&&W.category!=="required").length,checks:$}}function Px($,Z){let Y=aF($),X=Z&&t6.existsSync(Z)?sF(Z):[];return oF([...Y,...X])}function yx($){let Z=[];Z.push(`
16343
+ Press ${M.cyan}h${M.reset} + ${M.cyan}Enter${M.reset} to show shortcuts`),W6(g.url.toString(),()=>{if(Q)Q5();g.stop()}),Z.native){let b,d=V0.join(B,"index.stx");if(N1.existsSync(d)){let r=await Bun.file(d).text();b=EY(r)}let l=U?.app?.window??{};await Y5(P,{title:U?.app?.head?.title||V0.basename(K)||"stx App",width:l.width,height:l.height,darkMode:l.darkMode,hotReload:l.hotReload,titlebarHidden:l.titlebarHidden??Z.titlebarHidden===!0,nativeSidebar:!!b,sidebarConfig:b})}if(X){console.log(`${M.blue}Watching for changes...${M.reset}`);let b=(r)=>{return r.startsWith("public/")||r.startsWith("public\\")},d=(r)=>{let a=r.toLowerCase();return a.endsWith(".stx")||a.endsWith(".html")||a.endsWith(".md")},l=N1.watch(K,{recursive:!0},async(r,a)=>{if(!a||p7(a))return;if(l7(a))if(b(a)){if(console.log(`${M.cyan}${a} changed${M.reset}`),J&&Q)Q.reload(a)}else if(d(a)){console.log(`${M.yellow}${a} changed, rebuilding...${M.reset}`),s4.clear(),Z6();try{let{invalidateFileCache:B0,templateCache:Q0}=await Promise.resolve().then(() => (P6(),E$));B0(V0.resolve(K,a)),Q0.delete(V0.resolve(K,a))}catch{}if(L&&a){if(V0.resolve(K,a)===L||V0.basename(L)===a){let Q0=await lY(L,Z.stxOptions||{});if(Q0)V=Q0}}if(await S(),await r5(K),J&&Q)Q.reload(a)}else{console.log(`${M.yellow}${a} changed, rebuilding...${M.reset}`),s4.clear(),Z6();try{let{invalidateFileCache:B0,templateCache:Q0}=await Promise.resolve().then(() => (P6(),E$));B0(V0.resolve(K,a)),Q0.delete(V0.resolve(K,a))}catch{}if(await S(),J&&Q)Q.reload(a)}else if(c7(a)){if(console.log(`${M.cyan}CSS ${a} changed${M.reset}`),J&&Q)Q.updateCss(a)}});process.on("SIGINT",()=>{if(l.close(),Q)Q5();g.stop(),process.exit(0)})}return!0}var rF=D(()=>{j5();N$();wX();B8();mY();c4();A0();m7()});var MW=D(()=>{cQ();iF();nF();rF()});var tF={};e(tF,{runPwaAudit:()=>Px,formatAuditResult:()=>yx,calculateAuditResult:()=>oF,auditConfig:()=>aF,auditBuildOutput:()=>sF});import t6 from"fs";import RX from"path";function aF($){let Z=[],Y=$.pwa;if(Z.push({id:"pwa-enabled",name:"PWA Enabled",category:"required",passed:Y?.enabled===!0,message:Y?.enabled?"PWA is enabled":"PWA is not enabled in config"}),!Y?.enabled)return Z;Z.push({id:"manifest-name",name:"App Name",category:"required",passed:Boolean(Y.manifest?.name),message:Y.manifest?.name?`App name: "${Y.manifest.name}"`:"Missing required manifest name"}),Z.push({id:"manifest-short-name",name:"Short Name",category:"recommended",passed:Boolean(Y.manifest?.shortName),message:Y.manifest?.shortName?`Short name: "${Y.manifest.shortName}"`:"Short name not set (will use full name)"}),Z.push({id:"manifest-description",name:"App Description",category:"recommended",passed:Boolean(Y.manifest?.description),message:Y.manifest?.description?"Description is set":"App description not provided"}),Z.push({id:"manifest-theme-color",name:"Theme Color",category:"required",passed:Boolean(Y.manifest?.themeColor),message:Y.manifest?.themeColor?`Theme color: ${Y.manifest.themeColor}`:"Theme color not set"}),Z.push({id:"manifest-background-color",name:"Background Color",category:"required",passed:Boolean(Y.manifest?.backgroundColor),message:Y.manifest?.backgroundColor?`Background color: ${Y.manifest.backgroundColor}`:"Background color not set"}),Z.push({id:"manifest-display",name:"Display Mode",category:"required",passed:["standalone","fullscreen","minimal-ui"].includes(Y.manifest?.display||""),message:Y.manifest?.display?`Display mode: ${Y.manifest.display}`:"Display mode should be standalone, fullscreen, or minimal-ui"}),Z.push({id:"manifest-start-url",name:"Start URL",category:"required",passed:Boolean(Y.manifest?.startUrl),message:Y.manifest?.startUrl?`Start URL: ${Y.manifest.startUrl}`:"Start URL not set"}),Z.push({id:"icons-source",name:"Icon Source",category:"required",passed:Boolean(Y.icons?.src),message:Y.icons?.src?`Icon source: ${Y.icons.src}`:"No icon source configured"});let X=Y.icons?.sizes||[];Z.push({id:"icons-192",name:"192x192 Icon",category:"required",passed:X.includes(192),message:X.includes(192)?"192x192 icon will be generated":"Missing 192x192 icon (required for Android)"}),Z.push({id:"icons-512",name:"512x512 Icon",category:"required",passed:X.includes(512),message:X.includes(512)?"512x512 icon will be generated":"Missing 512x512 icon (required for splash screen)"}),Z.push({id:"icons-maskable",name:"Maskable Icon",category:"recommended",passed:Y.icons?.purpose?.includes("maskable")||!1,message:Y.icons?.purpose?.includes("maskable")?"Maskable icon purpose is set":"Consider adding maskable icon purpose for adaptive icons"}),Z.push({id:"sw-configured",name:"Service Worker",category:"required",passed:Boolean(Y.serviceWorker),message:Y.serviceWorker?"Service worker is configured":"Service worker configuration missing"}),Z.push({id:"sw-cache-version",name:"Cache Version",category:"recommended",passed:Boolean(Y.serviceWorker?.cacheVersion),message:Y.serviceWorker?.cacheVersion?`Cache version: ${Y.serviceWorker.cacheVersion}`:"Set cache version for proper cache busting"}),Z.push({id:"offline-enabled",name:"Offline Support",category:"required",passed:Y.offline?.enabled===!0,message:Y.offline?.enabled?"Offline support is enabled":"Offline support is disabled"});let J=Y.routes||[];return Z.push({id:"caching-strategies",name:"Caching Strategies",category:"recommended",passed:J.length>0,message:J.length>0?`${J.length} route caching strategies configured`:"No custom caching strategies defined"}),Z.push({id:"push-config",name:"Push Notifications",category:"optional",passed:!Y.push?.enabled||Boolean(Y.push?.vapidPublicKey),message:Y.push?.enabled?Y.push?.vapidPublicKey?"Push notifications configured with VAPID key":"Push enabled but missing VAPID key":"Push notifications not enabled"}),Z.push({id:"share-target",name:"Share Target",category:"optional",passed:!0,message:Y.shareTarget?.enabled?`Share target enabled at ${Y.shareTarget.action}`:"Share target not enabled"}),Z.push({id:"auto-inject",name:"Auto-injection",category:"recommended",passed:Y.autoInject!==!1,message:Y.autoInject!==!1?"PWA tags will be auto-injected":"Auto-injection disabled - manual tag insertion required"}),Z}function sF($){let Z=[],Y=RX.join($,"manifest.json"),X=t6.existsSync(Y);if(Z.push({id:"build-manifest",name:"Manifest File",category:"required",passed:X,message:X?"manifest.json exists":"manifest.json not found in build output"}),X)try{let _=JSON.parse(t6.readFileSync(Y,"utf-8"));Z.push({id:"build-manifest-valid",name:"Valid Manifest JSON",category:"required",passed:!0,message:"Manifest is valid JSON"}),Z.push({id:"build-manifest-icons",name:"Manifest Icons",category:"required",passed:Array.isArray(_.icons)&&_.icons.length>0,message:_.icons?.length?`${_.icons.length} icons defined in manifest`:"No icons defined in manifest"})}catch{Z.push({id:"build-manifest-valid",name:"Valid Manifest JSON",category:"required",passed:!1,message:"Manifest is not valid JSON"})}let J=RX.join($,"sw.js"),Q=t6.existsSync(J);Z.push({id:"build-sw",name:"Service Worker File",category:"required",passed:Q,message:Q?"Service worker (sw.js) exists":"Service worker not found in build output"});let G=RX.join($,"offline.html"),K=t6.existsSync(G);Z.push({id:"build-offline",name:"Offline Page",category:"recommended",passed:K,message:K?"Offline page exists":"No offline.html found"});let W=RX.join($,"pwa-icons");if(t6.existsSync(W)){let _=t6.readdirSync(W).filter((z)=>z.endsWith(".png")||z.endsWith(".webp"));Z.push({id:"build-icons",name:"Generated Icons",category:"required",passed:_.length>0,message:_.length>0?`${_.length} icon files generated`:"No icon files found"})}else Z.push({id:"build-icons",name:"Generated Icons",category:"required",passed:!1,message:"Icons directory not found"});return Z}function oF($){let Z=$.filter((W)=>W.category==="required"),Y=$.filter((W)=>W.category==="recommended"),X=Z.filter((W)=>W.passed).length,J=Y.filter((W)=>W.passed).length,Q=Z.length>0?X/Z.length*70:70,G=Y.length>0?J/Y.length*30:30;return{score:Math.round(Q+G),passed:$.filter((W)=>W.passed).length,failed:$.filter((W)=>!W.passed&&W.category==="required").length,warnings:$.filter((W)=>!W.passed&&W.category!=="required").length,checks:$}}function Px($,Z){let Y=aF($),X=Z&&t6.existsSync(Z)?sF(Z):[];return oF([...Y,...X])}function yx($){let Z=[];Z.push(`
16344
16344
  === PWA Audit Report ===
16345
16345
  `);let Y=$.score>=90?"32":$.score>=70?"33":"31";Z.push(`Score: \x1B[${Y}m${$.score}/100\x1B[0m`),Z.push(`Passed: ${$.passed} | Failed: ${$.failed} | Warnings: ${$.warnings}
16346
16346
  `);let X=["required","recommended","optional"];for(let J of X){let Q=$.checks.filter((G)=>G.category===J);if(Q.length===0)continue;Z.push(`
@@ -20409,7 +20409,7 @@ else {
20409
20409
  `)}function fN($,Z){let Y=" ".repeat(Z),X=[];for(let[K,W]of Object.entries($.props))if(W.type==="literal"){let U=typeof W.value==="string"?`"${W.value}"`:String(W.value);X.push(`${K}: ${U}`)}let J=X.length>0?`{ ${X.join(", ")} }`:"{}",Q=$.children.map((K)=>K.type==="text"?`"${K.props.text?.type==="literal"?K.props.text.value:""}"`:fN(K,Z+1)),G=Q.length>0?`,
20410
20410
  ${Y} [${Q.join(`,
20411
20411
  ${Y} `)}]`:"";return`Craft.create("${$.zigType}", ${J}${G})`}function Cf($,Z,Y){if(Z.target==="universal"){let X=[];X.push("// Universal entry point"),X.push("");for(let[J,Q]of Y)X.push(`// --- ${J.toUpperCase()} ---`),X.push(`#if ${J.toUpperCase()}`),X.push(Q),X.push("#endif"),X.push("");return X.join(`
20412
- `)}return Y.get(Z.target)||nW($,Z)}function bf($,Z,Y){let X=[];function J(Q){X.push({name:Q.zigType,hash:hN(JSON.stringify(Q.props)),props:Object.keys(Q.props),events:Array.from(Q.events.keys()),slots:[],isNative:Q.zigType.startsWith("craft.")});for(let G of Q.children)J(G)}return J(Z),{version:"1.0.0",components:X,entry:$.id,assets:[],styles:$.styles}}function Pf($,Z){return JSON.stringify({version:3,file:"output.zig",sources:["input.stx"],mappings:""})}function gN(){return`id_${++yf}`}function hN($){let Z=0;for(let Y=0;Y<$.length;Y++){let X=$.charCodeAt(Y);Z=(Z<<5)-Z+X,Z=Z&Z}return Math.abs(Z).toString(36)}function xf($){return $.charAt(0).toUpperCase()+$.slice(1)}function vf($){let Z=[],Y=/<script[^>]*>([\s\S]*?)<\/script>/gi,X;while((X=Y.exec($))!==null)Z.push(X[1]);return Z}function ff($){let Z=[],Y=/<style[^>]*>([\s\S]*?)<\/style>/gi,X;while((X=Y.exec($))!==null)Z.push(X[1]);return Z}function rW($){let Z=$.type==="component"?1:0;if($.children)for(let Y of $.children)Z+=rW(Y);return Z}function aW($){let Z=$.zigType.startsWith("craft.")?1:0;for(let Y of $.children)Z+=aW(Y);return Z}function dN($){return{start:async()=>{console.log("[craft-compiler] Hot reload server started")},stop:async()=>{console.log("[craft-compiler] Hot reload server stopped")},notifyChange:(Z)=>{console.log(`[craft-compiler] File changed: ${Z}`)}}}var sW,yf=0,gf,hf;var mN=D(()=>{sW=new Map([["craft-button",{name:"Button",zigType:"craft.Button",props:[{name:"variant",type:"string",required:!1,default:"primary"},{name:"disabled",type:"boolean",required:!1,default:!1},{name:"onclick",type:"callback",required:!1}],children:"single"}],["craft-text-input",{name:"TextInput",zigType:"craft.TextInput",props:[{name:"value",type:"string",required:!1,default:""},{name:"placeholder",type:"string",required:!1},{name:"disabled",type:"boolean",required:!1,default:!1},{name:"onchange",type:"callback",required:!1}],children:"none"}],["craft-textarea",{name:"TextArea",zigType:"craft.TextArea",props:[{name:"value",type:"string",required:!1,default:""},{name:"placeholder",type:"string",required:!1},{name:"rows",type:"number",required:!1,default:3},{name:"disabled",type:"boolean",required:!1,default:!1}],children:"none"}],["craft-checkbox",{name:"Checkbox",zigType:"craft.Checkbox",props:[{name:"checked",type:"boolean",required:!1,default:!1},{name:"label",type:"string",required:!1},{name:"disabled",type:"boolean",required:!1,default:!1},{name:"onchange",type:"callback",required:!1}],children:"none"}],["craft-select",{name:"Select",zigType:"craft.Select",props:[{name:"value",type:"string",required:!1},{name:"options",type:"array",required:!0},{name:"disabled",type:"boolean",required:!1,default:!1},{name:"onchange",type:"callback",required:!1}],children:"none"}],["craft-slider",{name:"Slider",zigType:"craft.Slider",props:[{name:"value",type:"number",required:!1,default:0},{name:"min",type:"number",required:!1,default:0},{name:"max",type:"number",required:!1,default:100},{name:"step",type:"number",required:!1,default:1},{name:"onchange",type:"callback",required:!1}],children:"none"}],["craft-toggle",{name:"Toggle",zigType:"craft.Toggle",props:[{name:"checked",type:"boolean",required:!1,default:!1},{name:"disabled",type:"boolean",required:!1,default:!1},{name:"onchange",type:"callback",required:!1}],children:"none"}],["craft-modal",{name:"Modal",zigType:"craft.Modal",props:[{name:"open",type:"boolean",required:!1,default:!1},{name:"title",type:"string",required:!1},{name:"closable",type:"boolean",required:!1,default:!0},{name:"onclose",type:"callback",required:!1}],children:"multiple"}],["craft-alert",{name:"Alert",zigType:"craft.Alert",props:[{name:"variant",type:"string",required:!1,default:"info"},{name:"title",type:"string",required:!1},{name:"dismissible",type:"boolean",required:!1,default:!1}],children:"single"}],["craft-progress",{name:"ProgressBar",zigType:"craft.ProgressBar",props:[{name:"value",type:"number",required:!1,default:0},{name:"max",type:"number",required:!1,default:100},{name:"indeterminate",type:"boolean",required:!1,default:!1}],children:"none"}],["craft-spinner",{name:"Spinner",zigType:"craft.Spinner",props:[{name:"size",type:"number",required:!1,default:24}],children:"none"}],["craft-avatar",{name:"Avatar",zigType:"craft.Avatar",props:[{name:"src",type:"string",required:!1},{name:"alt",type:"string",required:!1},{name:"size",type:"number",required:!1,default:40}],children:"none"}],["craft-badge",{name:"Badge",zigType:"craft.Badge",props:[{name:"variant",type:"string",required:!1,default:"default"}],children:"single"}],["craft-card",{name:"Card",zigType:"craft.Card",props:[{name:"padding",type:"number",required:!1,default:16}],children:"multiple"}],["craft-sidebar",{name:"Sidebar",zigType:"craft.NativeSidebar",props:[{name:"id",type:"string",required:!1},{name:"variant",type:"string",required:!1,default:"desktop"},{name:"material",type:"string",required:!1,default:"sidebar"},{name:"backgroundEffect",type:"string",required:!1,default:"shimmer"},{name:"allowsVibrancy",type:"boolean",required:!1,default:!0},{name:"materialOpacity",type:"number",required:!1,default:0.68},{name:"minWidth",type:"number",required:!1,default:240},{name:"maxWidth",type:"number",required:!1,default:340},{name:"canCollapse",type:"boolean",required:!1,default:!0},{name:"selectedItem",type:"string",required:!1},{name:"sections",type:"array",required:!1}],children:"multiple",platform:["macos"],fallback:"aside"}],["craft-sidebar-section",{name:"SidebarSection",zigType:"craft.NativeSidebarSection",props:[{name:"id",type:"string",required:!0},{name:"title",type:"string",required:!1},{name:"header",type:"string",required:!1}],children:"multiple",platform:["macos"],fallback:"section"}],["craft-sidebar-item",{name:"SidebarItem",zigType:"craft.NativeSidebarItem",props:[{name:"id",type:"string",required:!0},{name:"label",type:"string",required:!0},{name:"icon",type:"string",required:!1},{name:"badge",type:"string",required:!1},{name:"tintColor",type:"color",required:!1}],children:"none",platform:["macos"],fallback:"button"}],["craft-accordion",{name:"Accordion",zigType:"craft.Accordion",props:[{name:"title",type:"string",required:!0},{name:"open",type:"boolean",required:!1,default:!1}],children:"multiple"}],["craft-tabs",{name:"TabView",zigType:"craft.TabView",props:[{name:"activeTab",type:"number",required:!1,default:0},{name:"ontabchange",type:"callback",required:!1}],children:"multiple"}],["craft-tooltip",{name:"Tooltip",zigType:"craft.Tooltip",props:[{name:"content",type:"string",required:!0},{name:"position",type:"string",required:!1,default:"top"}],children:"single"}],["craft-date-picker",{name:"DatePicker",zigType:"craft.DatePicker",props:[{name:"value",type:"string",required:!1},{name:"min",type:"string",required:!1},{name:"max",type:"string",required:!1},{name:"onchange",type:"callback",required:!1}],children:"none"}],["craft-time-picker",{name:"TimePicker",zigType:"craft.TimePicker",props:[{name:"value",type:"string",required:!1},{name:"onchange",type:"callback",required:!1}],children:"none"}],["craft-color-picker",{name:"ColorPicker",zigType:"craft.ColorPicker",props:[{name:"value",type:"color",required:!1,default:"#000000"},{name:"onchange",type:"callback",required:!1}],children:"none"}],["craft-data-table",{name:"DataTable",zigType:"craft.DataTable",props:[{name:"data",type:"array",required:!0},{name:"columns",type:"array",required:!0},{name:"sortable",type:"boolean",required:!1,default:!1},{name:"paginated",type:"boolean",required:!1,default:!1}],children:"none"}],["craft-virtual-list",{name:"VirtualList",zigType:"craft.VirtualList",props:[{name:"items",type:"array",required:!0},{name:"itemHeight",type:"number",required:!1,default:48},{name:"renderItem",type:"callback",required:!0}],children:"none"}],["craft-tree-view",{name:"TreeView",zigType:"craft.TreeView",props:[{name:"data",type:"object",required:!0},{name:"expandable",type:"boolean",required:!1,default:!0}],children:"none"}]]);gf={compileToNative:bN,createHotReloadServer:dN,NATIVE_COMPONENTS:sW},hf=gf});import{spawn as pN}from"child_process";import y0 from"fs";import df from"os";import Y0 from"path";import v from"process";import{CLI as uf}from"@stacksjs/clapp";var A6="0.2.84";Y$();MW();bG();uG();x4();gG();jW();var __dirname="/home/runner/work/stx/stx/packages/stx/bin",O0=new uf("stx");function cN($){let Z=typeof $==="string"?Number.parseInt($,10):$;if(Number.isNaN(Z))return{isValid:!1,error:"Port must be a valid number",suggestion:"Try using a number between 1024 and 65535"};if(Z<1024||Z>65535)return{isValid:!1,error:"Port must be between 1024 and 65535",suggestion:"Try using a port between 1024 and 65535"};return{isValid:!0}}function lN($){try{if(!y0.existsSync($)){let Y=Y0.dirname($),X=Y0.basename($);if(y0.existsSync(Y)){let Q=y0.readdirSync(Y).filter((K)=>K.toLowerCase().includes(X.toLowerCase().substring(0,3))||K.endsWith(".stx")||K.endsWith(".md")),G=Q.length>0?`File not found. Similar files in ${Y}: ${Q.slice(0,3).join(", ")}`:`File not found. Directory ${Y} exists but doesn't contain the specified file.`;return{isValid:!1,error:`File does not exist: ${$}`,suggestion:G}}return{isValid:!1,error:`File does not exist: ${$}`,suggestion:"Check the file path and try again"}}if(y0.statSync($).isDirectory())return{isValid:!1,error:`Expected file but got directory: ${$}`,suggestion:"Specify a .stx or .md file path"};return{isValid:!0}}catch(Z){return{isValid:!1,error:`Cannot access file: ${$}`,suggestion:"Check file permissions and path"}}}function oW($){let Z=typeof $==="string"?Number.parseInt($,10):$;if(Number.isNaN(Z))return{isValid:!1,error:"Timeout must be a valid number",suggestion:"Specify timeout in milliseconds (e.g., 5000 for 5 seconds)"};if(Z<100)return{isValid:!1,error:"Timeout too short (minimum 100ms)",suggestion:"Use a timeout of at least 100ms"};if(Z>300000)return{isValid:!1,error:"Timeout too long (maximum 5 minutes)",suggestion:"Use a timeout of less than 300000ms (5 minutes)"};return{isValid:!0}}var x5=($)=>$.includes("*")||$.includes("?")||$.includes("{")||$.includes("["),mf=($)=>$.endsWith(".stx")||$.endsWith(".md");function y5($,Z=1){if(console.error(`\u274C ${$.error}`),$.suggestion)console.error(`\uD83D\uDCA1 suggestion: ${$.suggestion}`);v.exit(Z)}async function cf($,Z){try{let Y=["test"],X=[];if($&&$.length>0)for(let W of $)if(x5(W))try{let U=await Array.fromAsync(new Bun.Glob(W).scan({onlyFiles:!0,absolute:!0}));if(U.length===0)console.warn(`Warning: No files found matching pattern: ${W}`);else if(X.push(...U),Z.verbose)console.log(`Found ${U.length} file(s) matching pattern: ${W}`)}catch(U){return console.error(`Error expanding glob pattern ${W}:`,U),!1}else X.push(W);if(X.length===0)return console.error("Error: No test files found matching the provided patterns."),!1;if(Y.push(...X),Z.filter)Y.push("--pattern",Z.filter);if(Z.timeout)Y.push("--timeout",Z.timeout.toString());if(Z.reporter&&Z.reporter!=="default")if(Z.reporter==="junit"){let W=Y0.join(df.tmpdir(),`stx-test-report-${Date.now()}.xml`);Y.push("--reporter",Z.reporter),Y.push("--reporter-outfile",W)}else console.warn(`Warning: Reporter '${Z.reporter}' is not supported. Using default reporter.`);if(Z.coverage)Y.push("--coverage");if(Z.watch)Y.push("--watch");Y.push("--preload",Y0.join(__dirname,"../../../test-utils/happy-dom.ts"));let J={...v.env,STX_TEST_MODE:"true",STX_TEST_UI:Z.ui?"true":"false",STX_TEST_VERBOSE:Z.verbose?"true":"false"},Q="bun";if(Z.verbose)console.log(`Running: ${Q} ${Y.join(" ")}`);let G=performance.now(),K=pN(Q,Y,{stdio:"inherit",shell:!1,env:J});return new Promise((W)=>{K.on("close",(U)=>{let z=((performance.now()-G)/1000).toFixed(2);if(U===0)W(!0);else W(!1)}),v.on("SIGINT",()=>{console.log(`
20412
+ `)}return Y.get(Z.target)||nW($,Z)}function bf($,Z,Y){let X=[];function J(Q){X.push({name:Q.zigType,hash:hN(JSON.stringify(Q.props)),props:Object.keys(Q.props),events:Array.from(Q.events.keys()),slots:[],isNative:Q.zigType.startsWith("craft.")});for(let G of Q.children)J(G)}return J(Z),{version:"1.0.0",components:X,entry:$.id,assets:[],styles:$.styles}}function Pf($,Z){return JSON.stringify({version:3,file:"output.zig",sources:["input.stx"],mappings:""})}function gN(){return`id_${++yf}`}function hN($){let Z=0;for(let Y=0;Y<$.length;Y++){let X=$.charCodeAt(Y);Z=(Z<<5)-Z+X,Z=Z&Z}return Math.abs(Z).toString(36)}function xf($){return $.charAt(0).toUpperCase()+$.slice(1)}function vf($){let Z=[],Y=/<script[^>]*>([\s\S]*?)<\/script>/gi,X;while((X=Y.exec($))!==null)Z.push(X[1]);return Z}function ff($){let Z=[],Y=/<style[^>]*>([\s\S]*?)<\/style>/gi,X;while((X=Y.exec($))!==null)Z.push(X[1]);return Z}function rW($){let Z=$.type==="component"?1:0;if($.children)for(let Y of $.children)Z+=rW(Y);return Z}function aW($){let Z=$.zigType.startsWith("craft.")?1:0;for(let Y of $.children)Z+=aW(Y);return Z}function dN($){return{start:async()=>{console.log("[craft-compiler] Hot reload server started")},stop:async()=>{console.log("[craft-compiler] Hot reload server stopped")},notifyChange:(Z)=>{console.log(`[craft-compiler] File changed: ${Z}`)}}}var sW,yf=0,gf,hf;var mN=D(()=>{sW=new Map([["craft-button",{name:"Button",zigType:"craft.Button",props:[{name:"variant",type:"string",required:!1,default:"primary"},{name:"disabled",type:"boolean",required:!1,default:!1},{name:"onclick",type:"callback",required:!1}],children:"single"}],["craft-text-input",{name:"TextInput",zigType:"craft.TextInput",props:[{name:"value",type:"string",required:!1,default:""},{name:"placeholder",type:"string",required:!1},{name:"disabled",type:"boolean",required:!1,default:!1},{name:"onchange",type:"callback",required:!1}],children:"none"}],["craft-textarea",{name:"TextArea",zigType:"craft.TextArea",props:[{name:"value",type:"string",required:!1,default:""},{name:"placeholder",type:"string",required:!1},{name:"rows",type:"number",required:!1,default:3},{name:"disabled",type:"boolean",required:!1,default:!1}],children:"none"}],["craft-checkbox",{name:"Checkbox",zigType:"craft.Checkbox",props:[{name:"checked",type:"boolean",required:!1,default:!1},{name:"label",type:"string",required:!1},{name:"disabled",type:"boolean",required:!1,default:!1},{name:"onchange",type:"callback",required:!1}],children:"none"}],["craft-select",{name:"Select",zigType:"craft.Select",props:[{name:"value",type:"string",required:!1},{name:"options",type:"array",required:!0},{name:"disabled",type:"boolean",required:!1,default:!1},{name:"onchange",type:"callback",required:!1}],children:"none"}],["craft-slider",{name:"Slider",zigType:"craft.Slider",props:[{name:"value",type:"number",required:!1,default:0},{name:"min",type:"number",required:!1,default:0},{name:"max",type:"number",required:!1,default:100},{name:"step",type:"number",required:!1,default:1},{name:"onchange",type:"callback",required:!1}],children:"none"}],["craft-toggle",{name:"Toggle",zigType:"craft.Toggle",props:[{name:"checked",type:"boolean",required:!1,default:!1},{name:"disabled",type:"boolean",required:!1,default:!1},{name:"onchange",type:"callback",required:!1}],children:"none"}],["craft-modal",{name:"Modal",zigType:"craft.Modal",props:[{name:"open",type:"boolean",required:!1,default:!1},{name:"title",type:"string",required:!1},{name:"closable",type:"boolean",required:!1,default:!0},{name:"onclose",type:"callback",required:!1}],children:"multiple"}],["craft-alert",{name:"Alert",zigType:"craft.Alert",props:[{name:"variant",type:"string",required:!1,default:"info"},{name:"title",type:"string",required:!1},{name:"dismissible",type:"boolean",required:!1,default:!1}],children:"single"}],["craft-progress",{name:"ProgressBar",zigType:"craft.ProgressBar",props:[{name:"value",type:"number",required:!1,default:0},{name:"max",type:"number",required:!1,default:100},{name:"indeterminate",type:"boolean",required:!1,default:!1}],children:"none"}],["craft-spinner",{name:"Spinner",zigType:"craft.Spinner",props:[{name:"size",type:"number",required:!1,default:24}],children:"none"}],["craft-avatar",{name:"Avatar",zigType:"craft.Avatar",props:[{name:"src",type:"string",required:!1},{name:"alt",type:"string",required:!1},{name:"size",type:"number",required:!1,default:40}],children:"none"}],["craft-badge",{name:"Badge",zigType:"craft.Badge",props:[{name:"variant",type:"string",required:!1,default:"default"}],children:"single"}],["craft-card",{name:"Card",zigType:"craft.Card",props:[{name:"padding",type:"number",required:!1,default:16}],children:"multiple"}],["craft-sidebar",{name:"Sidebar",zigType:"craft.NativeSidebar",props:[{name:"id",type:"string",required:!1},{name:"variant",type:"string",required:!1,default:"desktop"},{name:"material",type:"string",required:!1,default:"sidebar"},{name:"backgroundEffect",type:"string",required:!1,default:"shimmer"},{name:"allowsVibrancy",type:"boolean",required:!1,default:!0},{name:"materialOpacity",type:"number",required:!1,default:0.68},{name:"minWidth",type:"number",required:!1,default:240},{name:"maxWidth",type:"number",required:!1,default:340},{name:"canCollapse",type:"boolean",required:!1,default:!0},{name:"selectedItem",type:"string",required:!1},{name:"sections",type:"array",required:!1}],children:"multiple",platform:["macos"],fallback:"aside"}],["craft-sidebar-section",{name:"SidebarSection",zigType:"craft.NativeSidebarSection",props:[{name:"id",type:"string",required:!0},{name:"title",type:"string",required:!1},{name:"header",type:"string",required:!1}],children:"multiple",platform:["macos"],fallback:"section"}],["craft-sidebar-item",{name:"SidebarItem",zigType:"craft.NativeSidebarItem",props:[{name:"id",type:"string",required:!0},{name:"label",type:"string",required:!0},{name:"icon",type:"string",required:!1},{name:"badge",type:"string",required:!1},{name:"tintColor",type:"color",required:!1}],children:"none",platform:["macos"],fallback:"button"}],["craft-accordion",{name:"Accordion",zigType:"craft.Accordion",props:[{name:"title",type:"string",required:!0},{name:"open",type:"boolean",required:!1,default:!1}],children:"multiple"}],["craft-tabs",{name:"TabView",zigType:"craft.TabView",props:[{name:"activeTab",type:"number",required:!1,default:0},{name:"ontabchange",type:"callback",required:!1}],children:"multiple"}],["craft-tooltip",{name:"Tooltip",zigType:"craft.Tooltip",props:[{name:"content",type:"string",required:!0},{name:"position",type:"string",required:!1,default:"top"}],children:"single"}],["craft-date-picker",{name:"DatePicker",zigType:"craft.DatePicker",props:[{name:"value",type:"string",required:!1},{name:"min",type:"string",required:!1},{name:"max",type:"string",required:!1},{name:"onchange",type:"callback",required:!1}],children:"none"}],["craft-time-picker",{name:"TimePicker",zigType:"craft.TimePicker",props:[{name:"value",type:"string",required:!1},{name:"onchange",type:"callback",required:!1}],children:"none"}],["craft-color-picker",{name:"ColorPicker",zigType:"craft.ColorPicker",props:[{name:"value",type:"color",required:!1,default:"#000000"},{name:"onchange",type:"callback",required:!1}],children:"none"}],["craft-data-table",{name:"DataTable",zigType:"craft.DataTable",props:[{name:"data",type:"array",required:!0},{name:"columns",type:"array",required:!0},{name:"sortable",type:"boolean",required:!1,default:!1},{name:"paginated",type:"boolean",required:!1,default:!1}],children:"none"}],["craft-virtual-list",{name:"VirtualList",zigType:"craft.VirtualList",props:[{name:"items",type:"array",required:!0},{name:"itemHeight",type:"number",required:!1,default:48},{name:"renderItem",type:"callback",required:!0}],children:"none"}],["craft-tree-view",{name:"TreeView",zigType:"craft.TreeView",props:[{name:"data",type:"object",required:!0},{name:"expandable",type:"boolean",required:!1,default:!0}],children:"none"}]]);gf={compileToNative:bN,createHotReloadServer:dN,NATIVE_COMPONENTS:sW},hf=gf});import{spawn as pN}from"child_process";import y0 from"fs";import df from"os";import Y0 from"path";import v from"process";import{CLI as uf}from"@stacksjs/clapp";var A6="0.2.85";Y$();MW();bG();uG();x4();gG();jW();var __dirname="/home/runner/work/stx/stx/packages/stx/bin",O0=new uf("stx");function cN($){let Z=typeof $==="string"?Number.parseInt($,10):$;if(Number.isNaN(Z))return{isValid:!1,error:"Port must be a valid number",suggestion:"Try using a number between 1024 and 65535"};if(Z<1024||Z>65535)return{isValid:!1,error:"Port must be between 1024 and 65535",suggestion:"Try using a port between 1024 and 65535"};return{isValid:!0}}function lN($){try{if(!y0.existsSync($)){let Y=Y0.dirname($),X=Y0.basename($);if(y0.existsSync(Y)){let Q=y0.readdirSync(Y).filter((K)=>K.toLowerCase().includes(X.toLowerCase().substring(0,3))||K.endsWith(".stx")||K.endsWith(".md")),G=Q.length>0?`File not found. Similar files in ${Y}: ${Q.slice(0,3).join(", ")}`:`File not found. Directory ${Y} exists but doesn't contain the specified file.`;return{isValid:!1,error:`File does not exist: ${$}`,suggestion:G}}return{isValid:!1,error:`File does not exist: ${$}`,suggestion:"Check the file path and try again"}}if(y0.statSync($).isDirectory())return{isValid:!1,error:`Expected file but got directory: ${$}`,suggestion:"Specify a .stx or .md file path"};return{isValid:!0}}catch(Z){return{isValid:!1,error:`Cannot access file: ${$}`,suggestion:"Check file permissions and path"}}}function oW($){let Z=typeof $==="string"?Number.parseInt($,10):$;if(Number.isNaN(Z))return{isValid:!1,error:"Timeout must be a valid number",suggestion:"Specify timeout in milliseconds (e.g., 5000 for 5 seconds)"};if(Z<100)return{isValid:!1,error:"Timeout too short (minimum 100ms)",suggestion:"Use a timeout of at least 100ms"};if(Z>300000)return{isValid:!1,error:"Timeout too long (maximum 5 minutes)",suggestion:"Use a timeout of less than 300000ms (5 minutes)"};return{isValid:!0}}var x5=($)=>$.includes("*")||$.includes("?")||$.includes("{")||$.includes("["),mf=($)=>$.endsWith(".stx")||$.endsWith(".md");function y5($,Z=1){if(console.error(`\u274C ${$.error}`),$.suggestion)console.error(`\uD83D\uDCA1 suggestion: ${$.suggestion}`);v.exit(Z)}async function cf($,Z){try{let Y=["test"],X=[];if($&&$.length>0)for(let W of $)if(x5(W))try{let U=await Array.fromAsync(new Bun.Glob(W).scan({onlyFiles:!0,absolute:!0}));if(U.length===0)console.warn(`Warning: No files found matching pattern: ${W}`);else if(X.push(...U),Z.verbose)console.log(`Found ${U.length} file(s) matching pattern: ${W}`)}catch(U){return console.error(`Error expanding glob pattern ${W}:`,U),!1}else X.push(W);if(X.length===0)return console.error("Error: No test files found matching the provided patterns."),!1;if(Y.push(...X),Z.filter)Y.push("--pattern",Z.filter);if(Z.timeout)Y.push("--timeout",Z.timeout.toString());if(Z.reporter&&Z.reporter!=="default")if(Z.reporter==="junit"){let W=Y0.join(df.tmpdir(),`stx-test-report-${Date.now()}.xml`);Y.push("--reporter",Z.reporter),Y.push("--reporter-outfile",W)}else console.warn(`Warning: Reporter '${Z.reporter}' is not supported. Using default reporter.`);if(Z.coverage)Y.push("--coverage");if(Z.watch)Y.push("--watch");Y.push("--preload",Y0.join(__dirname,"../../../test-utils/happy-dom.ts"));let J={...v.env,STX_TEST_MODE:"true",STX_TEST_UI:Z.ui?"true":"false",STX_TEST_VERBOSE:Z.verbose?"true":"false"},Q="bun";if(Z.verbose)console.log(`Running: ${Q} ${Y.join(" ")}`);let G=performance.now(),K=pN(Q,Y,{stdio:"inherit",shell:!1,env:J});return new Promise((W)=>{K.on("close",(U)=>{let z=((performance.now()-G)/1000).toFixed(2);if(U===0)W(!0);else W(!1)}),v.on("SIGINT",()=>{console.log(`
20413
20413
  Test run interrupted`),K.kill("SIGINT"),v.exit(1)})})}catch(Y){return console.error("Error running tests:",Y instanceof Error?Y.message:String(Y)),!1}}var lf=v.argv.length>=3&&(mf(v.argv[2])&&y0.existsSync(v.argv[2])||x5(v.argv[2]));if(lf){let $=v.argv[2],Z={port:3000,watch:!0,cache:!0,markdown:{syntaxHighlighting:{enabled:!0,serverSide:!0,defaultTheme:"github-dark",highlightUnknownLanguages:!0}}};for(let Y=3;Y<v.argv.length;Y++){let X=v.argv[Y];if(X==="--port"&&Y+1<v.argv.length){let J=cN(v.argv[++Y]);if(!J.isValid)y5(J);Z.port=Number.parseInt(v.argv[Y],10)}else if(X==="--no-watch")Z.watch=!1;else if(X==="--highlight-theme"&&Y+1<v.argv.length){if(!Z.markdown)Z.markdown={};if(!Z.markdown.syntaxHighlighting)Z.markdown.syntaxHighlighting={};Z.markdown.syntaxHighlighting.defaultTheme=v.argv[++Y]}else if(X==="--no-highlight"){if(!Z.markdown)Z.markdown={};if(!Z.markdown.syntaxHighlighting)Z.markdown.syntaxHighlighting={};Z.markdown.syntaxHighlighting.enabled=!1}else if(X==="--no-highlight-unknown"){if(!Z.markdown)Z.markdown={};if(!Z.markdown.syntaxHighlighting)Z.markdown.syntaxHighlighting={};Z.markdown.syntaxHighlighting.highlightUnknownLanguages=!1}else if(X==="--no-cache")Z.cache=!1;else if(X==="--native")Z.native=!0}if(x5($))try{let Y=await Array.fromAsync(new Bun.Glob($).scan({onlyFiles:!0,absolute:!0})),X=$.endsWith(".stx")?Y.filter((K)=>K.endsWith(".stx")):$.endsWith(".md")?Y.filter((K)=>K.endsWith(".md")):Y.filter((K)=>K.endsWith(".stx")||K.endsWith(".md")),J=$.split("*")[0].replace(/\/$/,"")||".",Q=Y0.resolve(J);try{let K=new Bun.Glob("**/*.stx"),U=(await Array.fromAsync(K.scan({cwd:Q,onlyFiles:!0,absolute:!0}))).filter((_)=>/\[.+\]/.test(Y0.basename(_)));for(let _ of U)if(!X.includes(_))X.push(_)}catch{}if(X.length===0)console.error(`Error: No STX or Markdown files found matching pattern: ${$}`),v.exit(1);if(!await l8(X,Z))v.exit(1)}catch(Y){console.error("Failed to process files:",Y),v.exit(1)}else c8($,Z).catch((Y)=>{console.error("Failed to start dev server:",Y),v.exit(1)})}else{let $=function(X,J){let Q=[];for(let G=0;G<=J.length;G++)Q[G]=[G];for(let G=0;G<=X.length;G++)Q[0][G]=G;for(let G=1;G<=J.length;G++)for(let K=1;K<=X.length;K++)if(J.charAt(G-1)===X.charAt(K-1))Q[G][K]=Q[G-1][K-1];else Q[G][K]=Math.min(Q[G-1][K-1]+1,Q[G][K-1]+1,Q[G-1][K]+1);return Q[J.length][X.length]};O0.command("docs","Generate documentation for components, templates, and directives").option("--output <dir>","Output directory for documentation",{default:"docs"}).option("--format <format>","Documentation format (markdown, html, json)",{default:"markdown"}).option("--components-dir <dir>","Components directory",{default:"components"}).option("--templates-dir <dir>","Templates directory",{default:"."}).option("--no-components","Disable components documentation").option("--no-templates","Disable templates documentation").option("--no-directives","Disable directives documentation").option("--extra-content <content>","Extra content to include in documentation").example("stx docs --output docs --format html").action(async(X)=>{try{if(await CG(X))console.log("Documentation generated successfully."),v.exit(0);else console.error("Documentation generation failed."),v.exit(1)}catch(J){console.error("Error generating documentation:",J),v.exit(1)}}),O0.command("iconify <command>","Generate Iconify icon packages").option("--output <dir>","Output directory for generated packages",{default:"packages"}).option("--icons <icons>","Comma-separated list of specific icons to generate").example("stx iconify list").example("stx iconify generate mdi").example("stx iconify generate lucide --icons home,settings,user").action(async(X,J)=>{try{let{fetchCollections:Q,generatePackage:G}=await import("@stacksjs/iconify-generator");if(X==="list"){console.log(`
20414
20414
  \uD83D\uDCDA Fetching available icon collections...
20415
20415
  `);let K=await Q(),W=Object.entries(K).sort((U,_)=>_[1].total-U[1].total);console.log(`Available collections: