@stacksjs/stx 0.2.35 → 0.2.37

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 (3) hide show
  1. package/dist/cli.js +405 -403
  2. package/dist/index.js +105 -103
  3. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -303,7 +303,7 @@ catch (e) {
303
303
  }
304
304
  throw e;
305
305
  }
306
- `),J.set(U,_)}return _(...K)}catch{return}}};if(this.pool.length<this.maxPoolSize)this.pool.push({func:G,context:Z.slice()});return G}clear(){this.pool.length=0,this.fnCache.clear()}}class fQ{metrics=new Map;budgets=new Map;violations=[];maxViolations=100;violationHandlers=[];enabled=!0;setEnabled($){this.enabled=$}isEnabled(){return this.enabled}setBudget($,Z){this.budgets.set($,{warnThreshold:0.8,action:"warn",...Z})}setBudgets($){for(let[Z,Y]of Object.entries($))this.setBudget(Z,Y)}removeBudget($){this.budgets.delete($)}getBudgets(){let $={};for(let[Z,Y]of this.budgets.entries())$[Z]=Y;return $}onViolation($){this.violationHandlers.push($)}offViolation($){let Z=this.violationHandlers.indexOf($);if(Z!==-1)this.violationHandlers.splice(Z,1)}time($,Z){if(!this.enabled)return Z();let Y=performance.now(),X=Z(),J=performance.now()-Y;return this.recordTime($,J),this.checkBudget($,J),X}async timeAsync($,Z){if(!this.enabled)return Z();let Y=performance.now(),X=await Z(),J=performance.now()-Y;return this.recordTime($,J),this.checkBudget($,J),X}checkBudget($,Z){let Y=this.budgets.get($);if(!Y)return;let X=Z/Y.maxTime*100,J=Y.warnThreshold!==void 0?Z>=Y.maxTime*Y.warnThreshold&&Z<Y.maxTime:!1,Q=Z>=Y.maxTime;if(!J&&!Q)return;let G={label:$,actualTime:Z,budgetTime:Y.maxTime,exceedancePercent:X,timestamp:new Date,isWarning:J};this.violations.push(G);while(this.violations.length>this.maxViolations)this.violations.shift();for(let W of this.violationHandlers)try{W(G)}catch{}let K=J?`[Performance Warning] "${$}" took ${Z.toFixed(2)}ms (${X.toFixed(1)}% of ${Y.maxTime}ms budget)`:`[Performance Budget Exceeded] "${$}" took ${Z.toFixed(2)}ms (exceeded ${Y.maxTime}ms budget by ${(X-100).toFixed(1)}%)`;switch(Y.action){case"log":console.log(K);break;case"warn":console.warn(K);break;case"error":console.error(K);break;case"throw":if(Q)throw Error(K);else console.warn(K);break}}recordTime($,Z){let Y=this.metrics.get($);if(Y)Y.count++,Y.totalTime+=Z,Y.maxTime=Math.max(Y.maxTime,Z),Y.minTime=Math.min(Y.minTime,Z);else this.metrics.set($,{count:1,totalTime:Z,maxTime:Z,minTime:Z})}getStats($){if($){let Y=this.metrics.get($);if(!Y)return{};let X=this.budgets.get($);return{count:Y.count,avgTime:Y.totalTime/Y.count,totalTime:Y.totalTime,maxTime:Y.maxTime,minTime:Y.minTime,budget:X?.maxTime,budgetUtilization:X?Y.totalTime/Y.count/X.maxTime*100:void 0}}let Z={};for(let[Y,X]of this.metrics.entries()){let J=this.budgets.get(Y);Z[Y]={count:X.count,avgTime:X.totalTime/X.count,totalTime:X.totalTime,maxTime:X.maxTime,minTime:X.minTime,budget:J?.maxTime,budgetUtilization:J?X.totalTime/X.count/J.maxTime*100:void 0}}return Z}getViolations($){if($)return this.violations.filter((Z)=>Z.label===$);return[...this.violations]}getViolationStats(){let $={},Z=0,Y=0;for(let X of this.violations)if($[X.label]=($[X.label]||0)+1,X.isWarning)Z++;else Y++;return{total:this.violations.length,byLabel:$,warnings:Z,errors:Y}}clear(){this.metrics.clear()}clearViolations(){this.violations.length=0}clearBudgets(){this.budgets.clear()}reset(){this.clear(),this.clearViolations(),this.clearBudgets(),this.violationHandlers.length=0}}function tH(){if(!v3)v3=new fQ;return v3}var W5,aH=500,eI,v3=null,P2;var f$=D(()=>{W5=new Map;eI=new vQ;P2=new Proxy({},{get($,Z){return tH()[Z]}})});var R;var x2=D(()=>{R={reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",underscore:"\x1B[4m",blink:"\x1B[5m",reverse:"\x1B[7m",hidden:"\x1B[8m",black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",gray:"\x1B[90m",bgBlack:"\x1B[40m",bgRed:"\x1B[41m",bgGreen:"\x1B[42m",bgYellow:"\x1B[43m",bgBlue:"\x1B[44m",bgMagenta:"\x1B[45m",bgCyan:"\x1B[46m",bgWhite:"\x1B[47m",bgGray:"\x1B[100m"}});import D9 from"path";function f3($,Z,Y,X){let J=$;J=J.replace(/@a11y\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(G,K,W)=>{let _={"aria-label":"Ensure interactive elements have accessible labels","alt-text":"Provide alternative text for images",focus:"Ensure the element can receive keyboard focus",landmark:"Use appropriate landmark roles","heading-order":"Maintain proper heading hierarchy","color-contrast":"Ensure sufficient color contrast","keyboard-nav":"Make sure element is keyboard navigable","screen-reader":"Optimize for screen reader users"}[K]||"Make this element accessible";return`<!-- a11y-hint: ${W||_} -->`});let Q=/@screenReader\(([^@]*)\)@endScreenReader/g;return J=J.replace(Q,(G,K)=>{return`<span class="sr-only">${K.trim()}</span>`}),J=J.replace(/@ariaDescribe\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*\)/g,(G,K,W)=>{return`<span id="${`desc-${K}`}" class="sr-only">${W}</span>`}),J}function eH(){return`
306
+ `),J.set(U,_)}return _(...K)}catch{return}}};if(this.pool.length<this.maxPoolSize)this.pool.push({func:G,context:Z.slice()});return G}clear(){this.pool.length=0,this.fnCache.clear()}}class fQ{metrics=new Map;budgets=new Map;violations=[];maxViolations=100;violationHandlers=[];enabled=!0;setEnabled($){this.enabled=$}isEnabled(){return this.enabled}setBudget($,Z){this.budgets.set($,{warnThreshold:0.8,action:"warn",...Z})}setBudgets($){for(let[Z,Y]of Object.entries($))this.setBudget(Z,Y)}removeBudget($){this.budgets.delete($)}getBudgets(){let $={};for(let[Z,Y]of this.budgets.entries())$[Z]=Y;return $}onViolation($){this.violationHandlers.push($)}offViolation($){let Z=this.violationHandlers.indexOf($);if(Z!==-1)this.violationHandlers.splice(Z,1)}time($,Z){if(!this.enabled)return Z();let Y=performance.now(),X=Z(),J=performance.now()-Y;return this.recordTime($,J),this.checkBudget($,J),X}async timeAsync($,Z){if(!this.enabled)return Z();let Y=performance.now(),X=await Z(),J=performance.now()-Y;return this.recordTime($,J),this.checkBudget($,J),X}checkBudget($,Z){let Y=this.budgets.get($);if(!Y)return;let X=Z/Y.maxTime*100,J=Y.warnThreshold!==void 0?Z>=Y.maxTime*Y.warnThreshold&&Z<Y.maxTime:!1,Q=Z>=Y.maxTime;if(!J&&!Q)return;let G={label:$,actualTime:Z,budgetTime:Y.maxTime,exceedancePercent:X,timestamp:new Date,isWarning:J};this.violations.push(G);while(this.violations.length>this.maxViolations)this.violations.shift();for(let W of this.violationHandlers)try{W(G)}catch{}let K=J?`[Performance Warning] "${$}" took ${Z.toFixed(2)}ms (${X.toFixed(1)}% of ${Y.maxTime}ms budget)`:`[Performance Budget Exceeded] "${$}" took ${Z.toFixed(2)}ms (exceeded ${Y.maxTime}ms budget by ${(X-100).toFixed(1)}%)`;switch(Y.action){case"log":console.log(K);break;case"warn":console.warn(K);break;case"error":console.error(K);break;case"throw":if(Q)throw Error(K);else console.warn(K);break}}recordTime($,Z){let Y=this.metrics.get($);if(Y)Y.count++,Y.totalTime+=Z,Y.maxTime=Math.max(Y.maxTime,Z),Y.minTime=Math.min(Y.minTime,Z);else this.metrics.set($,{count:1,totalTime:Z,maxTime:Z,minTime:Z})}getStats($){if($){let Y=this.metrics.get($);if(!Y)return{};let X=this.budgets.get($);return{count:Y.count,avgTime:Y.totalTime/Y.count,totalTime:Y.totalTime,maxTime:Y.maxTime,minTime:Y.minTime,budget:X?.maxTime,budgetUtilization:X?Y.totalTime/Y.count/X.maxTime*100:void 0}}let Z={};for(let[Y,X]of this.metrics.entries()){let J=this.budgets.get(Y);Z[Y]={count:X.count,avgTime:X.totalTime/X.count,totalTime:X.totalTime,maxTime:X.maxTime,minTime:X.minTime,budget:J?.maxTime,budgetUtilization:J?X.totalTime/X.count/J.maxTime*100:void 0}}return Z}getViolations($){if($)return this.violations.filter((Z)=>Z.label===$);return[...this.violations]}getViolationStats(){let $={},Z=0,Y=0;for(let X of this.violations)if($[X.label]=($[X.label]||0)+1,X.isWarning)Z++;else Y++;return{total:this.violations.length,byLabel:$,warnings:Z,errors:Y}}clear(){this.metrics.clear()}clearViolations(){this.violations.length=0}clearBudgets(){this.budgets.clear()}reset(){this.clear(),this.clearViolations(),this.clearBudgets(),this.violationHandlers.length=0}}function tH(){if(!v3)v3=new fQ;return v3}var W5,aH=500,$D,v3=null,P2;var f$=D(()=>{W5=new Map;$D=new vQ;P2=new Proxy({},{get($,Z){return tH()[Z]}})});var R;var x2=D(()=>{R={reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",underscore:"\x1B[4m",blink:"\x1B[5m",reverse:"\x1B[7m",hidden:"\x1B[8m",black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",gray:"\x1B[90m",bgBlack:"\x1B[40m",bgRed:"\x1B[41m",bgGreen:"\x1B[42m",bgYellow:"\x1B[43m",bgBlue:"\x1B[44m",bgMagenta:"\x1B[45m",bgCyan:"\x1B[46m",bgWhite:"\x1B[47m",bgGray:"\x1B[100m"}});import D9 from"path";function f3($,Z,Y,X){let J=$;J=J.replace(/@a11y\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(G,K,W)=>{let _={"aria-label":"Ensure interactive elements have accessible labels","alt-text":"Provide alternative text for images",focus:"Ensure the element can receive keyboard focus",landmark:"Use appropriate landmark roles","heading-order":"Maintain proper heading hierarchy","color-contrast":"Ensure sufficient color contrast","keyboard-nav":"Make sure element is keyboard navigable","screen-reader":"Optimize for screen reader users"}[K]||"Make this element accessible";return`<!-- a11y-hint: ${W||_} -->`});let Q=/@screenReader\(([^@]*)\)@endScreenReader/g;return J=J.replace(Q,(G,K)=>{return`<span class="sr-only">${K.trim()}</span>`}),J=J.replace(/@ariaDescribe\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*\)/g,(G,K,W)=>{return`<span id="${`desc-${K}`}" class="sr-only">${W}</span>`}),J}function eH(){return`
307
307
  .sr-only {
308
308
  position: absolute;
309
309
  width: 1px;
@@ -1225,8 +1225,8 @@ ${N.join(`
1225
1225
  `):void 0,script:P}}async function FG($,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 E8($,X,Y)}var jG=!1,w8=80,n9="async",s9="lazy",HG=!1;var I8=D(()=>{d9();z8()});function o9(){return T0({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}=rO($,Z,Y);if(!J)return console.warn("@img directive: missing src argument"),"<!-- @img: missing src -->";let K={src:J,alt:Q||"",widths:G.widths||R1,formats:G.formats||u1,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 K$(K,{isDev:W}),_=U.html;if(U.preloadLink)_=U.preloadLink+`
1226
1226
  `+_;if(U.css)_+=`
1227
1227
  <style>${U.css}</style>`;if(U.script)_+=`
1228
- <script>${U.script}</script>`;return _},defaults:{src:"",alt:"",options:{lazy:!0,placeholder:"none"}}})}function rO($,Z,Y){if(Z.src)return{src:String(Z.src),alt:String(Z.alt||""),options:Z.options||{}};let X=$.trim();if(X.startsWith("@img(")||X.startsWith("("))X=X.replace(/^@img\(/,"").replace(/^\(/,"").replace(/\)$/,"");let J=oO(X),Q=D8(J[0],Y)||"",G=D8(J[1],Y)||"",K={};if(J[2]){let W=D8(J[2],Y);if(typeof W==="object"&&W!==null)K=W;else if(typeof J[2]==="string")try{K=JSON.parse(J[2])}catch{}}return{src:Q,alt:G,options:K}}function oO($){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 D8($,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 i2;var k8=D(()=>{T2();I8();d9();i2=o9()});class w5{config;constructor($={}){this.config={...aO,...$}}async get($,Z){return O5($,Z,"video",this.config)}async set($,Z,Y){return L5($,Z,Y,"video",this.config)}async clear(){return F5("video",this.config)}updateConfig($){this.config={...this.config,...$}}}function S8($){if(!a9)a9=new w5($);else if($)a9.updateConfig($);return a9}async function R5($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return S8(X).get($,Z)}async function M5($,Z,Y,X){let J=X?{directory:`${X.outputDir}/../.cache`}:{};return S8(J).set($,Z,Y)}async function t9(){return S8().clear()}var aO,a9=null;var b8=D(()=>{p9();aO={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:2000,cacheTranscoded:!0,cacheThumbnails:!0,cacheManifests:!0}});import{resolve as C8,basename as y8,extname as P8,join as e9}from"path";import{mkdir as x8}from"fs/promises";async function v8(){try{return await import("ts-videos")}catch{return null}}async function T5($,Z,Y,X){let J=await v8();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate poster"),null;try{let Q=C8($);if(!await f0(Q))return null;await x8(Y,{recursive:!0});let G=await v0(Q),K=y8($,P8($)),W=Z.format||"webp",U=Z.timestamp||0,_=`${K}-poster-${G}.${W}`,B=e9(Y,_),z=await J.extractThumbnails(Q,{timestamps:[U],width:Z.width||1280,height:Z.height,format:W,quality:Z.quality||85,outputDir:Y,outputPattern:_.replace(`.${W}`,"")});if(z&&z.length>0){let q=z[0];return{path:B,url:`${X}/${_}`,width:q.width||Z.width||1280,height:q.height||720,timestamp:U,size:q.size||0}}return null}catch(Q){return console.warn(`[stx-media] Failed to generate poster: ${Q}`),null}}async function E5($,Z,Y,X){let J=await v8();if(!J)return[];try{let Q=C8($);if(!await f0(Q))return[];await x8(Y,{recursive:!0});let G=await v0(Q),K=y8($,P8($)),W=Z.format||"webp",B=(await new J.Input(Q).getInfo()).duration||60,z=Z.count||10,q=Z.interval||B/z,j=[];for(let O=0;O<z&&O*q<B;O++)j.push(O*q);let H=await J.extractThumbnails(Q,{timestamps:j,width:Z.width||320,format:W,quality:Z.quality||80,outputDir:Y,outputPattern:`${K}-thumb-${G}`});if(H&&H.length>0)return H.map((O,F)=>({path:O.path||e9(Y,`${K}-thumb-${G}-${F}.${W}`),url:`${X}/${K}-thumb-${G}-${F}.${W}`,width:O.width||Z.width||320,height:O.height||180,timestamp:j[F],size:O.size||0}));return[]}catch(Q){return console.warn(`[stx-media] Failed to generate thumbnails: ${Q}`),[]}}async function $6($,Z,Y,X){let J=await v8();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate sprite sheet"),null;try{let Q=C8($);if(!await f0(Q))return null;await x8(Y,{recursive:!0});let G=await v0(Q),K=y8($,P8($)),_=(await new J.Input(Q).getInfo()).duration||60,B=Z.columns||10,z=Z.interval||5,q=Z.thumbnailWidth||160,j=Z.thumbnailHeight||90,H=Z.format||"jpeg",O=Math.ceil(_/z),F=Math.ceil(O/B),L=`${K}-sprite-${G}.${H}`,V=e9(Y,L),A=[];for(let w=0;w<O;w++)A.push(w*z);let N=await J.extractThumbnails(Q,{timestamps:A,width:q,height:j,format:H,quality:Z.quality||70,outputDir:e9(Y,".temp")});if(!N||N.length===0)return null;try{let w=await import("ts-images"),M=B*q,T=F*j,I=await w.createSprite({images:N.map((E)=>E.path),columns:B,padding:0,outputPath:V,format:H,quality:Z.quality||70});return{url:`${X}/${L}`,path:V,columns:B,rows:F,thumbnailWidth:q,thumbnailHeight:j,interval:z,totalFrames:O}}catch{return console.warn("[stx-media] ts-images not installed, sprite sheet generation skipped"),null}}catch(Q){return console.warn(`[stx-media] Failed to generate sprite sheet: ${Q}`),null}}var f8=D(()=>{Q$()});import{resolve as NG,basename as AG,extname as wG,join as g$}from"path";import{mkdir as Z6,writeFile as RG}from"fs/promises";async function MG(){try{return await import("ts-videos")}catch{return null}}async function I5($,Z,Y,X,J){let Q=await MG();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate HLS manifest"),null;try{let G=NG($);if(!await f0(G))return null;let K=await v0(G),W=AG($,wG($)),U=g$(Y,`${W}-${K}-hls`);await Z6(U,{recursive:!0});let _=Z.length>0?Z:TG,B=J?.segmentDuration||6,j=(await new Q.Input(G).getInfo()).duration||0,H=[],O=0;for(let V of _){let A=g$(U,V.label);await Z6(A,{recursive:!0});let N=`${V.label}.m3u8`,w=g$(A,N);try{let M=await Q.generateHLS(G,{outputDir:A,segmentDuration:B,width:V.width,height:V.height,videoBitrate:V.bitrate,audioBitrate:V.audioBitrate,playlistName:V.label});if(M)H.push({quality:V,url:`${X}/${W}-${K}-hls/${V.label}/${N}`,path:w}),O+=M.segmentCount||Math.ceil(j/B)}catch(M){console.warn(`[stx-media] Failed to generate HLS for ${V.label}: ${M}`)}}if(H.length===0)return null;let F=g$(U,"master.m3u8"),L=tO(H,X,W,K);return await RG(F,L),{manifestUrl:`${X}/${W}-${K}-hls/master.m3u8`,manifestPath:F,playlists:H,segmentCount:O,duration:j}}catch(G){return console.warn(`[stx-media] Failed to generate HLS manifest: ${G}`),null}}function tO($,Z,Y,X){let J=["#EXTM3U","#EXT-X-VERSION:3"];for(let Q of $){let{quality:G}=Q,K=G.bitrate+(G.audioBitrate||128000),W=`${G.width}x${G.height||Math.round(G.width*9/16)}`;J.push(`#EXT-X-STREAM-INF:BANDWIDTH=${K},RESOLUTION=${W},NAME="${G.label}"`,`${G.label}/${G.label}.m3u8`)}return J.join(`
1229
- `)}async function D5($,Z,Y,X,J){let Q=await MG();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate DASH manifest"),null;try{let G=NG($);if(!await f0(G))return null;let K=await v0(G),W=AG($,wG($)),U=g$(Y,`${W}-${K}-dash`);await Z6(U,{recursive:!0});let _=Z.length>0?Z:TG,B=J?.segmentDuration||4,z=J?.minBufferTime||2,H=(await new Q.Input(G).getInfo()).duration||0,O=[],F=[];for(let N of _){let w=g$(U,N.label);await Z6(w,{recursive:!0});try{if(await Q.generateDASH(G,{outputDir:w,segmentDuration:B,width:N.width,height:N.height,videoBitrate:N.bitrate,audioBitrate:N.audioBitrate})){if(O.push({bandwidth:N.bitrate,width:N.width,height:N.height||Math.round(N.width*9/16),url:`${X}/${W}-${K}-dash/${N.label}/video`}),N.audioBitrate)F.push({bandwidth:N.audioBitrate,url:`${X}/${W}-${K}-dash/${N.label}/audio`})}}catch(M){console.warn(`[stx-media] Failed to generate DASH for ${N.label}: ${M}`)}}if(O.length===0)return null;let L=g$(U,"manifest.mpd"),V=eO(O,F,H,B,z);await RG(L,V);let A=[{type:"video",representations:O}];if(F.length>0)A.push({type:"audio",representations:F});return{manifestUrl:`${X}/${W}-${K}-dash/manifest.mpd`,manifestPath:L,adaptationSets:A,duration:H}}catch(G){return console.warn(`[stx-media] Failed to generate DASH manifest: ${G}`),null}}function eO($,Z,Y,X,J){let Q=VG(Y),G=VG(J),K=`<?xml version="1.0" encoding="UTF-8"?>
1228
+ <script>${U.script}</script>`;return _},defaults:{src:"",alt:"",options:{lazy:!0,placeholder:"none"}}})}function rO($,Z,Y){if(Z.src)return{src:String(Z.src),alt:String(Z.alt||""),options:Z.options||{}};let X=$.trim();if(X.startsWith("@img(")||X.startsWith("("))X=X.replace(/^@img\(/,"").replace(/^\(/,"").replace(/\)$/,"");let J=oO(X),Q=D8(J[0],Y)||"",G=D8(J[1],Y)||"",K={};if(J[2]){let W=D8(J[2],Y);if(typeof W==="object"&&W!==null)K=W;else if(typeof J[2]==="string")try{K=JSON.parse(J[2])}catch{}}return{src:Q,alt:G,options:K}}function oO($){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 D8($,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 i2;var k8=D(()=>{T2();I8();d9();i2=o9()});class w5{config;constructor($={}){this.config={...aO,...$}}async get($,Z){return O5($,Z,"video",this.config)}async set($,Z,Y){return L5($,Z,Y,"video",this.config)}async clear(){return F5("video",this.config)}updateConfig($){this.config={...this.config,...$}}}function S8($){if(!a9)a9=new w5($);else if($)a9.updateConfig($);return a9}async function R5($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return S8(X).get($,Z)}async function M5($,Z,Y,X){let J=X?{directory:`${X.outputDir}/../.cache`}:{};return S8(J).set($,Z,Y)}async function t9(){return S8().clear()}var aO,a9=null;var b8=D(()=>{p9();aO={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:2000,cacheTranscoded:!0,cacheThumbnails:!0,cacheManifests:!0}});import{resolve as C8,basename as y8,extname as P8,join as e9}from"path";import{mkdir as x8}from"fs/promises";async function v8(){try{return await import("ts-videos")}catch{return null}}async function T5($,Z,Y,X){let J=await v8();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate poster"),null;try{let Q=C8($);if(!await f0(Q))return null;await x8(Y,{recursive:!0});let G=await v0(Q),K=y8($,P8($)),W=Z.format||"webp",U=Z.timestamp||0,_=`${K}-poster-${G}.${W}`,B=e9(Y,_),z=await J.extractThumbnails(Q,{timestamps:[U],width:Z.width||1280,height:Z.height,format:W,quality:Z.quality||85,outputDir:Y,outputPattern:_.replace(`.${W}`,"")});if(z&&z.length>0){let q=z[0];return{path:B,url:`${X}/${_}`,width:q.width||Z.width||1280,height:q.height||720,timestamp:U,size:q.size||0}}return null}catch(Q){return console.warn(`[stx-media] Failed to generate poster: ${Q}`),null}}async function E5($,Z,Y,X){let J=await v8();if(!J)return[];try{let Q=C8($);if(!await f0(Q))return[];await x8(Y,{recursive:!0});let G=await v0(Q),K=y8($,P8($)),W=Z.format||"webp",B=(await new J.Input(Q).getInfo()).duration||60,z=Z.count||10,q=Z.interval||B/z,j=[];for(let O=0;O<z&&O*q<B;O++)j.push(O*q);let H=await J.extractThumbnails(Q,{timestamps:j,width:Z.width||320,format:W,quality:Z.quality||80,outputDir:Y,outputPattern:`${K}-thumb-${G}`});if(H&&H.length>0)return H.map((O,F)=>({path:O.path||e9(Y,`${K}-thumb-${G}-${F}.${W}`),url:`${X}/${K}-thumb-${G}-${F}.${W}`,width:O.width||Z.width||320,height:O.height||180,timestamp:j[F],size:O.size||0}));return[]}catch(Q){return console.warn(`[stx-media] Failed to generate thumbnails: ${Q}`),[]}}async function $4($,Z,Y,X){let J=await v8();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate sprite sheet"),null;try{let Q=C8($);if(!await f0(Q))return null;await x8(Y,{recursive:!0});let G=await v0(Q),K=y8($,P8($)),_=(await new J.Input(Q).getInfo()).duration||60,B=Z.columns||10,z=Z.interval||5,q=Z.thumbnailWidth||160,j=Z.thumbnailHeight||90,H=Z.format||"jpeg",O=Math.ceil(_/z),F=Math.ceil(O/B),L=`${K}-sprite-${G}.${H}`,V=e9(Y,L),A=[];for(let w=0;w<O;w++)A.push(w*z);let N=await J.extractThumbnails(Q,{timestamps:A,width:q,height:j,format:H,quality:Z.quality||70,outputDir:e9(Y,".temp")});if(!N||N.length===0)return null;try{let w=await import("ts-images"),M=B*q,T=F*j,I=await w.createSprite({images:N.map((E)=>E.path),columns:B,padding:0,outputPath:V,format:H,quality:Z.quality||70});return{url:`${X}/${L}`,path:V,columns:B,rows:F,thumbnailWidth:q,thumbnailHeight:j,interval:z,totalFrames:O}}catch{return console.warn("[stx-media] ts-images not installed, sprite sheet generation skipped"),null}}catch(Q){return console.warn(`[stx-media] Failed to generate sprite sheet: ${Q}`),null}}var f8=D(()=>{Q$()});import{resolve as NG,basename as AG,extname as wG,join as g$}from"path";import{mkdir as Z4,writeFile as RG}from"fs/promises";async function MG(){try{return await import("ts-videos")}catch{return null}}async function I5($,Z,Y,X,J){let Q=await MG();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate HLS manifest"),null;try{let G=NG($);if(!await f0(G))return null;let K=await v0(G),W=AG($,wG($)),U=g$(Y,`${W}-${K}-hls`);await Z4(U,{recursive:!0});let _=Z.length>0?Z:TG,B=J?.segmentDuration||6,j=(await new Q.Input(G).getInfo()).duration||0,H=[],O=0;for(let V of _){let A=g$(U,V.label);await Z4(A,{recursive:!0});let N=`${V.label}.m3u8`,w=g$(A,N);try{let M=await Q.generateHLS(G,{outputDir:A,segmentDuration:B,width:V.width,height:V.height,videoBitrate:V.bitrate,audioBitrate:V.audioBitrate,playlistName:V.label});if(M)H.push({quality:V,url:`${X}/${W}-${K}-hls/${V.label}/${N}`,path:w}),O+=M.segmentCount||Math.ceil(j/B)}catch(M){console.warn(`[stx-media] Failed to generate HLS for ${V.label}: ${M}`)}}if(H.length===0)return null;let F=g$(U,"master.m3u8"),L=tO(H,X,W,K);return await RG(F,L),{manifestUrl:`${X}/${W}-${K}-hls/master.m3u8`,manifestPath:F,playlists:H,segmentCount:O,duration:j}}catch(G){return console.warn(`[stx-media] Failed to generate HLS manifest: ${G}`),null}}function tO($,Z,Y,X){let J=["#EXTM3U","#EXT-X-VERSION:3"];for(let Q of $){let{quality:G}=Q,K=G.bitrate+(G.audioBitrate||128000),W=`${G.width}x${G.height||Math.round(G.width*9/16)}`;J.push(`#EXT-X-STREAM-INF:BANDWIDTH=${K},RESOLUTION=${W},NAME="${G.label}"`,`${G.label}/${G.label}.m3u8`)}return J.join(`
1229
+ `)}async function D5($,Z,Y,X,J){let Q=await MG();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate DASH manifest"),null;try{let G=NG($);if(!await f0(G))return null;let K=await v0(G),W=AG($,wG($)),U=g$(Y,`${W}-${K}-dash`);await Z4(U,{recursive:!0});let _=Z.length>0?Z:TG,B=J?.segmentDuration||4,z=J?.minBufferTime||2,H=(await new Q.Input(G).getInfo()).duration||0,O=[],F=[];for(let N of _){let w=g$(U,N.label);await Z4(w,{recursive:!0});try{if(await Q.generateDASH(G,{outputDir:w,segmentDuration:B,width:N.width,height:N.height,videoBitrate:N.bitrate,audioBitrate:N.audioBitrate})){if(O.push({bandwidth:N.bitrate,width:N.width,height:N.height||Math.round(N.width*9/16),url:`${X}/${W}-${K}-dash/${N.label}/video`}),N.audioBitrate)F.push({bandwidth:N.audioBitrate,url:`${X}/${W}-${K}-dash/${N.label}/audio`})}}catch(M){console.warn(`[stx-media] Failed to generate DASH for ${N.label}: ${M}`)}}if(O.length===0)return null;let L=g$(U,"manifest.mpd"),V=eO(O,F,H,B,z);await RG(L,V);let A=[{type:"video",representations:O}];if(F.length>0)A.push({type:"audio",representations:F});return{manifestUrl:`${X}/${W}-${K}-dash/manifest.mpd`,manifestPath:L,adaptationSets:A,duration:H}}catch(G){return console.warn(`[stx-media] Failed to generate DASH manifest: ${G}`),null}}function eO($,Z,Y,X,J){let Q=VG(Y),G=VG(J),K=`<?xml version="1.0" encoding="UTF-8"?>
1230
1230
  <MPD xmlns="urn:mpeg:dash:schema:mpd:2011"
1231
1231
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
1232
1232
  xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd"
@@ -1252,7 +1252,7 @@ ${N.join(`
1252
1252
  </Representation>
1253
1253
  `}K+=` </AdaptationSet>
1254
1254
  `}return K+=` </Period>
1255
- </MPD>`,K}function VG($){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 TG;var g8=D(()=>{Q$();TG=[{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 EG,basename as $L,extname as ZL,join as YL}from"path";import{mkdir as XL}from"fs/promises";async function IG(){try{return await import("ts-videos")}catch{return null}}function JL($){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 QL($){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 n2($){let Z=await IG();if(!Z)return null;try{let Y=EG($),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 Y6($,Z,Y,X){let J=await IG();if(!J)return console.warn("[stx-media] ts-videos not installed, skipping processing"),{src:$,processed:!1};let Q=await R5($,Z,Y);if(Q)return Q;try{let G=EG($);if(!await f0(G))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let K=Y.outputDir||"dist/videos",W=Y.baseUrl||"/videos";await XL(K,{recursive:!0});let U=await v0(G),_=$L($,ZL($)),B={src:$,processed:!0,hash:U};X?.({percentage:5,stage:"analyzing"}),B.metadata=await n2(G)||void 0;let z={};if(Z.quality)z.bitrate=JL(Z.quality);if(Z.platform)Object.assign(z,QL(Z.platform));if(Z.transcode)Object.assign(z,Z.transcode);if(Object.keys(z).length>0||Z.process){X?.({percentage:10,stage:"transcoding"});let q=`${_}-${U}.mp4`,j=YL(K,q);try{let H=await GL(G,j,z,J,(O)=>X?.({percentage:10+O*0.5,stage:"transcoding"}));if(H)B.transcoded={path:j,url:`${W}/${q}`,duration:H.duration,size:H.size,video:{codec:z.codec||"h264",width:H.width,height:H.height,bitrate:H.bitrate,frameRate:H.frameRate},audio:H.audioCodec?{codec:z.audioCodec||"aac",bitrate:z.audioBitrate||128000,sampleRate:z.sampleRate||48000,channels:z.channels||2}:void 0}}catch(H){B.errors=B.errors||[],B.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 T5(G,q,K,W);if(j)B.poster=j}if(Y.thumbnails?.enabled){X?.({percentage:70,stage:"generating-thumbnails"});let q=await E5(G,Y.thumbnails,K,W);if(q.length>0)B.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 I5(G,q.qualities||Y.streaming?.defaultQualities||[],K,W);if(j)B.streaming={...B.streaming,hls:j}}if(q.format==="dash"){let j=await D5(G,q.qualities||Y.streaming?.defaultQualities||[],K,W);if(j)B.streaming={...B.streaming,dash:j}}}if(Z.spriteSheet)X?.({percentage:90,stage:"generating-sprite-sheet"});return X?.({percentage:100,stage:"complete"}),await M5($,Z,B,Y),B}catch(G){return{src:$,processed:!1,errors:[`Processing failed: ${G}`]}}}async function GL($,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 DG=D(()=>{Q$();b8();f8();g8()});var kG={};Q0(kG,{setCachedVideoResult:()=>M5,processVideo:()=>Y6,getCachedVideoResult:()=>R5,generateThumbnails:()=>E5,generateSpriteSheet:()=>$6,generatePoster:()=>T5,generateHLSManifest:()=>I5,generateDASHManifest:()=>D5,clearVideoCache:()=>t9,analyzeVideo:()=>n2,VideoProcessorCache:()=>w5});var h8=D(()=>{DG();f8();g8();b8()});async function bG(){try{return await Promise.resolve().then(() => (h8(),kG))}catch($){if(!SG)console.warn("[stx-media] Video processor not available, some features disabled:",$),SG=!0;return null}}async function k5($,Z={}){let Y=Z,X=$;if(X.process&&!X.skipProcessing){if(Y.tsVideosConfig?.enabled&&!Y.isDev)return zL(X,Y)}if(Y.processedResult?.processed)return vG($,Y.processedResult,Z);let J;if(X.generatePoster&&X.src&&!$.poster)J=await qL(X,Y);let{src:Q,sources:G=[],poster:K,posterPlaceholder:W,controls:U=CG,autoplay:_=!1,muted:B=!1,loop:z=!1,preload:q=yG,playsinline:j=!0,lazy:H=!0,player:O="native",type:F,width:L,height:V,crossorigin:A,disablePictureInPicture:N=!1,disableRemotePlayback:w=!1}=$,M=J||K,T=$.class,I=$.style,E=$.id||`stx-video-${Math.random().toString(36).slice(2,8)}`;if(O==="ts-video")return UL($,Z);if(F&&F!=="video")return WL(Q||"",F,$);let S=G.length>0?G:Q?[{src:Q,type:PG(Q)}]:[],k=[`id="${E}"`];if(U)k.push("controls");if(_)k.push("autoplay");if(B)k.push("muted");if(z)k.push("loop");if(j)k.push("playsinline");if(N)k.push("disablepictureinpicture");if(w)k.push("disableremoteplayback");if(A)k.push(`crossorigin="${A}"`);if(H){if(k.push(`data-preload="${q}"`),k.push('preload="none"'),M)k.push(`data-poster="${P0(M)}"`);k.push("data-stx-lazy")}else if(k.push(`preload="${q}"`),M)k.push(`poster="${P0(M)}"`);if(L)k.push(`width="${L}"`);if(V)k.push(`height="${V}"`);if(T)k.push(`class="${P0(T)}"`);if(I)k.push(`style="${P0(I)}"`);let b=S.map((C)=>{return` <source ${H?`data-src="${P0(C.src)}"`:`src="${P0(C.src)}"`} type="${C.type}"${C.media?` media="${C.media}"`:""} />`}).join(`
1255
+ </MPD>`,K}function VG($){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 TG;var g8=D(()=>{Q$();TG=[{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 EG,basename as $L,extname as ZL,join as YL}from"path";import{mkdir as XL}from"fs/promises";async function IG(){try{return await import("ts-videos")}catch{return null}}function JL($){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 QL($){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 n2($){let Z=await IG();if(!Z)return null;try{let Y=EG($),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 Y4($,Z,Y,X){let J=await IG();if(!J)return console.warn("[stx-media] ts-videos not installed, skipping processing"),{src:$,processed:!1};let Q=await R5($,Z,Y);if(Q)return Q;try{let G=EG($);if(!await f0(G))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let K=Y.outputDir||"dist/videos",W=Y.baseUrl||"/videos";await XL(K,{recursive:!0});let U=await v0(G),_=$L($,ZL($)),B={src:$,processed:!0,hash:U};X?.({percentage:5,stage:"analyzing"}),B.metadata=await n2(G)||void 0;let z={};if(Z.quality)z.bitrate=JL(Z.quality);if(Z.platform)Object.assign(z,QL(Z.platform));if(Z.transcode)Object.assign(z,Z.transcode);if(Object.keys(z).length>0||Z.process){X?.({percentage:10,stage:"transcoding"});let q=`${_}-${U}.mp4`,j=YL(K,q);try{let H=await GL(G,j,z,J,(O)=>X?.({percentage:10+O*0.5,stage:"transcoding"}));if(H)B.transcoded={path:j,url:`${W}/${q}`,duration:H.duration,size:H.size,video:{codec:z.codec||"h264",width:H.width,height:H.height,bitrate:H.bitrate,frameRate:H.frameRate},audio:H.audioCodec?{codec:z.audioCodec||"aac",bitrate:z.audioBitrate||128000,sampleRate:z.sampleRate||48000,channels:z.channels||2}:void 0}}catch(H){B.errors=B.errors||[],B.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 T5(G,q,K,W);if(j)B.poster=j}if(Y.thumbnails?.enabled){X?.({percentage:70,stage:"generating-thumbnails"});let q=await E5(G,Y.thumbnails,K,W);if(q.length>0)B.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 I5(G,q.qualities||Y.streaming?.defaultQualities||[],K,W);if(j)B.streaming={...B.streaming,hls:j}}if(q.format==="dash"){let j=await D5(G,q.qualities||Y.streaming?.defaultQualities||[],K,W);if(j)B.streaming={...B.streaming,dash:j}}}if(Z.spriteSheet)X?.({percentage:90,stage:"generating-sprite-sheet"});return X?.({percentage:100,stage:"complete"}),await M5($,Z,B,Y),B}catch(G){return{src:$,processed:!1,errors:[`Processing failed: ${G}`]}}}async function GL($,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 DG=D(()=>{Q$();b8();f8();g8()});var kG={};Q0(kG,{setCachedVideoResult:()=>M5,processVideo:()=>Y4,getCachedVideoResult:()=>R5,generateThumbnails:()=>E5,generateSpriteSheet:()=>$4,generatePoster:()=>T5,generateHLSManifest:()=>I5,generateDASHManifest:()=>D5,clearVideoCache:()=>t9,analyzeVideo:()=>n2,VideoProcessorCache:()=>w5});var h8=D(()=>{DG();f8();g8();b8()});async function bG(){try{return await Promise.resolve().then(() => (h8(),kG))}catch($){if(!SG)console.warn("[stx-media] Video processor not available, some features disabled:",$),SG=!0;return null}}async function k5($,Z={}){let Y=Z,X=$;if(X.process&&!X.skipProcessing){if(Y.tsVideosConfig?.enabled&&!Y.isDev)return zL(X,Y)}if(Y.processedResult?.processed)return vG($,Y.processedResult,Z);let J;if(X.generatePoster&&X.src&&!$.poster)J=await qL(X,Y);let{src:Q,sources:G=[],poster:K,posterPlaceholder:W,controls:U=CG,autoplay:_=!1,muted:B=!1,loop:z=!1,preload:q=yG,playsinline:j=!0,lazy:H=!0,player:O="native",type:F,width:L,height:V,crossorigin:A,disablePictureInPicture:N=!1,disableRemotePlayback:w=!1}=$,M=J||K,T=$.class,I=$.style,E=$.id||`stx-video-${Math.random().toString(36).slice(2,8)}`;if(O==="ts-video")return UL($,Z);if(F&&F!=="video")return WL(Q||"",F,$);let S=G.length>0?G:Q?[{src:Q,type:PG(Q)}]:[],k=[`id="${E}"`];if(U)k.push("controls");if(_)k.push("autoplay");if(B)k.push("muted");if(z)k.push("loop");if(j)k.push("playsinline");if(N)k.push("disablepictureinpicture");if(w)k.push("disableremoteplayback");if(A)k.push(`crossorigin="${A}"`);if(H){if(k.push(`data-preload="${q}"`),k.push('preload="none"'),M)k.push(`data-poster="${P0(M)}"`);k.push("data-stx-lazy")}else if(k.push(`preload="${q}"`),M)k.push(`poster="${P0(M)}"`);if(L)k.push(`width="${L}"`);if(V)k.push(`height="${V}"`);if(T)k.push(`class="${P0(T)}"`);if(I)k.push(`style="${P0(I)}"`);let b=S.map((C)=>{return` <source ${H?`data-src="${P0(C.src)}"`:`src="${P0(C.src)}"`} type="${C.type}"${C.media?` media="${C.media}"`:""} />`}).join(`
1256
1256
  `),P=`<video ${k.join(" ")}>
1257
1257
  ${b}
1258
1258
  Your browser does not support the video tag.
@@ -1509,9 +1509,9 @@ ${S}
1509
1509
  width: 100%;
1510
1510
  height: auto;
1511
1511
  }
1512
- `.trim();return{html:S,script:k,css:b}}var SG=!1,CG=!0,yG="metadata",KL="https://cdn.jsdelivr.net/npm/ts-video-player@latest/dist/index.min.js";var d8=D(()=>{m8()});function X6(){return T0({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}=jL($,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 k5(G,W),_=U.html;if(U.css)_+=`
1512
+ `.trim();return{html:S,script:k,css:b}}var SG=!1,CG=!0,yG="metadata",KL="https://cdn.jsdelivr.net/npm/ts-video-player@latest/dist/index.min.js";var d8=D(()=>{m8()});function X4(){return T0({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}=jL($,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 k5(G,W),_=U.html;if(U.css)_+=`
1513
1513
  <style>${U.css}</style>`;if(U.script)_+=`
1514
- <script>${U.script}</script>`;return _},defaults:{src:"",options:{controls:!0,lazy:!0,preload:"metadata"}}})}function jL($,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=HL(X),Q=fG(J[0],Y)||"",G={};if(J[1]){let K=fG(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 HL($){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 fG($,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 s2;var m8=D(()=>{T2();d8();s2=X6()});function OL($,Z){let Y=Z.pwa?.manifest?.themeColor||"#4f46e5";return`<div class="stx-pwa-install" style="display:none;">
1514
+ <script>${U.script}</script>`;return _},defaults:{src:"",options:{controls:!0,lazy:!0,preload:"metadata"}}})}function jL($,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=HL(X),Q=fG(J[0],Y)||"",G={};if(J[1]){let K=fG(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 HL($){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 fG($,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 s2;var m8=D(()=>{T2();d8();s2=X4()});function OL($,Z){let Y=Z.pwa?.manifest?.themeColor||"#4f46e5";return`<div class="stx-pwa-install" style="display:none;">
1515
1515
  ${$}
1516
1516
  </div>
1517
1517
  <script>
@@ -1810,8 +1810,8 @@ catch (error) {
1810
1810
  init();
1811
1811
  }
1812
1812
  })();
1813
- </script>`}var NL,AL,wL,RL,gG;var hG=D(()=>{NL={name:"pwa.installButton",handler:($,Z,Y,X)=>{let J=Y.__stx_options||{};return OL($,J)},hasEndTag:!0,description:"Renders a PWA install prompt button that appears when the app can be installed"},AL={name:"pwa.updatePrompt",handler:($,Z,Y,X)=>{let J=Y.__stx_options||{};return LL($,J)},hasEndTag:!0,description:"Renders a PWA update notification UI when a new version is available"},wL={name:"pwa.offlineIndicator",handler:($,Z,Y,X)=>{let J=Y.__stx_options||{};return FL($,J)},hasEndTag:!0,description:"Renders an offline status indicator that shows when the user loses connection"},RL={name:"pwa.pushSubscribe",handler:($,Z,Y,X)=>{let J=Y.__stx_options||{};return VL($,J)},hasEndTag:!0,description:"Renders a push notification subscription button"},gG=[NL,AL,wL,RL]});function mG($){dG=$}function uG(){return dG}function pG($){J6={...J6,...$}}function cG(){J6={}}function u8($,Z={}){let Y=J6[$]||ML[$]||{message:`Unknown error (code: ${$})`},X=Y.message,J=Y.help;for(let[Q,G]of Object.entries(Z)){let K=`{{${Q}}}`;if(X=X.replace(new RegExp(K,"g"),G),J)J=J.replace(new RegExp(K,"g"),G)}return{message:X,help:J}}function lG($,Z={}){let{message:Y,help:X}=u8($,Z);return X?`${Y}
1814
- Help: ${X}`:Y}function Q6($){for(let[Z,Y]of Object.entries(o))if(Y===$)return Z;return}var ML,J6,dG="en",o;var G6=D(()=>{ML={1001:{message:"Unclosed directive: {{directive}}",help:"Make sure to close the directive with the appropriate end tag"},1002:{message:"Unclosed expression at position {{position}}",help:"Check for missing closing braces }}"},1003:{message:"Invalid directive syntax: {{directive}}",help:"Review the directive documentation for correct syntax"},1004:{message:"Malformed expression: {{expression}}",help:"Check for syntax errors in your expression"},1005:{message:"Unexpected token: {{token}}",help:"Remove or fix the unexpected token"},1101:{message:"Undefined variable: {{variable}}",help:"Make sure the variable is defined in the template context"},1102:{message:"Type error: {{details}}",help:"Check that you are using the correct types"},1103:{message:"Evaluation error: {{details}}",help:"Review the expression for errors"},1104:{message:"Infinite loop detected in {{location}}",help:"Check your loop conditions"},1105:{message:"Circular reference detected: {{path}}",help:"Remove the circular dependency"},1201:{message:"Unsafe expression blocked: {{expression}}",help:"This expression contains potentially dangerous code"},1202:{message:"Path traversal attempt blocked: {{path}}",help:"Use only relative paths within allowed directories"},1203:{message:"Potential XSS attempt blocked",help:"Sanitize user input before rendering"},1204:{message:"Code injection attempt blocked: {{code}}",help:"Avoid executing dynamic code"},1205:{message:"Prohibited DOM API usage: {{api}}",help:"Use STX.useRefs(), STX.useRef(), STX.el() and other STX helpers instead of direct DOM manipulation"},1301:{message:"File not found: {{path}}",help:"Check that the file exists and the path is correct"},1302:{message:"Error reading file: {{path}}",help:"Check file permissions and encoding"},1303:{message:"Invalid file path: {{path}}",help:"Use a valid file path"},1304:{message:"Permission denied: {{path}}",help:"Check file permissions"},1401:{message:"Invalid configuration: {{details}}",help:"Review your stx.config.ts file"},1402:{message:"Missing required configuration: {{key}}",help:"Add the required configuration option"},1403:{message:"Deprecated configuration: {{key}}",help:"Update to the new configuration format"},1501:{message:"Component not found: {{name}}",help:"Check that the component exists in your components directory"},1502:{message:"Invalid props for component {{name}}: {{details}}",help:"Check the component prop requirements"},1503:{message:"Error rendering component {{name}}: {{details}}",help:"Check the component template for errors"},1601:{message:"Filter not found: {{filter}}",help:"Register the filter or check the filter name"},1602:{message:"Invalid arguments for filter {{filter}}: {{details}}",help:"Check the filter documentation for correct arguments"},1603:{message:"Expression evaluation timed out",help:"Simplify the expression or increase the timeout"}},J6={};o={UNCLOSED_DIRECTIVE:1001,UNCLOSED_EXPRESSION:1002,INVALID_DIRECTIVE_SYNTAX:1003,MALFORMED_EXPRESSION:1004,UNEXPECTED_TOKEN:1005,UNDEFINED_VARIABLE:1101,TYPE_ERROR:1102,EVALUATION_ERROR:1103,INFINITE_LOOP:1104,CIRCULAR_REFERENCE:1105,UNSAFE_EXPRESSION:1201,PATH_TRAVERSAL:1202,XSS_ATTEMPT:1203,CODE_INJECTION:1204,DOM_API_VIOLATION:1205,FILE_NOT_FOUND:1301,FILE_READ_ERROR:1302,INVALID_FILE_PATH:1303,PERMISSION_DENIED:1304,INVALID_CONFIG:1401,MISSING_REQUIRED_CONFIG:1402,DEPRECATED_CONFIG:1403,COMPONENT_NOT_FOUND:1501,INVALID_PROPS:1502,COMPONENT_RENDER_ERROR:1503,FILTER_NOT_FOUND:1601,INVALID_FILTER_ARGS:1602,EXPRESSION_TIMEOUT:1603}});function iG(){return!1}function W$(){return!iG()||process.env.STX_DEBUG==="true"}function TL(){return!1}import EL from"path";function sG($){S5={...S5,...$}}function r2(){return{...S5}}function rG(){S5={...nG}}function o2($){if(!S5.showRelativePaths||!$)return $;let Z=S5.baseDir||process.cwd();try{let Y=EL.relative(Z,$);return Y.startsWith("..")?$:Y}catch{return $}}var nG,S5,U$,p8,O1,c8,b5,a2;var K6=D(()=>{G6();nG={showRelativePaths:!1,enableAutoRecovery:W$(),logRecoveryWarnings:!0},S5={...nG};U$=class U$ extends Error{code;filePath;line;column;context;numericCode;constructor($,Z,Y,X,J,Q,G){super($);this.code=Z;this.filePath=Y;this.line=X;this.column=J;this.context=Q;if(this.name="StxError",this.numericCode=G||o.EVALUATION_ERROR,this.filePath)this.filePath=o2(this.filePath)}};p8=class p8 extends U${constructor($,Z,Y,X,J,Q){super($,"stx_SYNTAX_ERROR",Z,Y,X,J,Q||o.INVALID_DIRECTIVE_SYNTAX);this.name="StxSyntaxError"}};O1=class O1 extends U${constructor($,Z,Y,X,J,Q){super($,"stx_RUNTIME_ERROR",Z,Y,X,J,Q||o.EVALUATION_ERROR);this.name="StxRuntimeError"}};c8=class c8 extends U${constructor($,Z,Y,X,J,Q){super($,"stx_SECURITY_ERROR",Z,Y,X,J,Q||o.UNSAFE_EXPRESSION);this.name="StxSecurityError"}};b5=class b5 extends U${constructor($,Z,Y,X,J,Q){super($,"stx_FILE_ERROR",Z,Y,X,J,Q||o.FILE_NOT_FOUND);this.name="StxFileError"}};a2=class a2 extends U${isFatal=!0;constructor($,Z,Y,X,J,Q){super($,"stx_VALIDATION_ERROR",Z,Y,X,J,Q||o.DOM_API_VIOLATION);this.name="StxValidationError"}}});function W6($){let{type:Z,message:Y,code:X,filePath:J,line:Q,column:G,template:K,offset:W,snippet:U,suggestion:_,format:B="text"}=$,z=Q,q=G;if(!z&&K&&W!==void 0){let L=aG(K,W);z=L.line,q=L.column}let j=J?o2(J):void 0,H=X?Q6(X):void 0,O={type:Z,code:X,codeName:H,message:Y,filePath:j,line:z,column:q,snippet:U,suggestion:_,timestamp:new Date().toISOString()},F;switch(B){case"html":F=DL(O);break;case"json":F=JSON.stringify(O,null,2);break;case"console":F=kL(O,K,W);break;case"text":default:F=IL(O,K,W);break}return{formatted:F,data:O}}function IL($,Z,Y){let X=[],J=$.code?` [${$.codeName||$.code}]`:"";if(X.push(`[${$.type} Error${J}]`),$.filePath){let Q=$.filePath;if($.line){if(Q+=`:${$.line}`,$.column)Q+=`:${$.column}`}X.push(`at ${Q}`)}if(X.push(`
1813
+ </script>`}var NL,AL,wL,RL,gG;var hG=D(()=>{NL={name:"pwa.installButton",handler:($,Z,Y,X)=>{let J=Y.__stx_options||{};return OL($,J)},hasEndTag:!0,description:"Renders a PWA install prompt button that appears when the app can be installed"},AL={name:"pwa.updatePrompt",handler:($,Z,Y,X)=>{let J=Y.__stx_options||{};return LL($,J)},hasEndTag:!0,description:"Renders a PWA update notification UI when a new version is available"},wL={name:"pwa.offlineIndicator",handler:($,Z,Y,X)=>{let J=Y.__stx_options||{};return FL($,J)},hasEndTag:!0,description:"Renders an offline status indicator that shows when the user loses connection"},RL={name:"pwa.pushSubscribe",handler:($,Z,Y,X)=>{let J=Y.__stx_options||{};return VL($,J)},hasEndTag:!0,description:"Renders a push notification subscription button"},gG=[NL,AL,wL,RL]});function mG($){dG=$}function uG(){return dG}function pG($){J4={...J4,...$}}function cG(){J4={}}function u8($,Z={}){let Y=J4[$]||ML[$]||{message:`Unknown error (code: ${$})`},X=Y.message,J=Y.help;for(let[Q,G]of Object.entries(Z)){let K=`{{${Q}}}`;if(X=X.replace(new RegExp(K,"g"),G),J)J=J.replace(new RegExp(K,"g"),G)}return{message:X,help:J}}function lG($,Z={}){let{message:Y,help:X}=u8($,Z);return X?`${Y}
1814
+ Help: ${X}`:Y}function Q4($){for(let[Z,Y]of Object.entries(o))if(Y===$)return Z;return}var ML,J4,dG="en",o;var G4=D(()=>{ML={1001:{message:"Unclosed directive: {{directive}}",help:"Make sure to close the directive with the appropriate end tag"},1002:{message:"Unclosed expression at position {{position}}",help:"Check for missing closing braces }}"},1003:{message:"Invalid directive syntax: {{directive}}",help:"Review the directive documentation for correct syntax"},1004:{message:"Malformed expression: {{expression}}",help:"Check for syntax errors in your expression"},1005:{message:"Unexpected token: {{token}}",help:"Remove or fix the unexpected token"},1101:{message:"Undefined variable: {{variable}}",help:"Make sure the variable is defined in the template context"},1102:{message:"Type error: {{details}}",help:"Check that you are using the correct types"},1103:{message:"Evaluation error: {{details}}",help:"Review the expression for errors"},1104:{message:"Infinite loop detected in {{location}}",help:"Check your loop conditions"},1105:{message:"Circular reference detected: {{path}}",help:"Remove the circular dependency"},1201:{message:"Unsafe expression blocked: {{expression}}",help:"This expression contains potentially dangerous code"},1202:{message:"Path traversal attempt blocked: {{path}}",help:"Use only relative paths within allowed directories"},1203:{message:"Potential XSS attempt blocked",help:"Sanitize user input before rendering"},1204:{message:"Code injection attempt blocked: {{code}}",help:"Avoid executing dynamic code"},1205:{message:"Prohibited DOM API usage: {{api}}",help:"Use STX.useRefs(), STX.useRef(), STX.el() and other STX helpers instead of direct DOM manipulation"},1301:{message:"File not found: {{path}}",help:"Check that the file exists and the path is correct"},1302:{message:"Error reading file: {{path}}",help:"Check file permissions and encoding"},1303:{message:"Invalid file path: {{path}}",help:"Use a valid file path"},1304:{message:"Permission denied: {{path}}",help:"Check file permissions"},1401:{message:"Invalid configuration: {{details}}",help:"Review your stx.config.ts file"},1402:{message:"Missing required configuration: {{key}}",help:"Add the required configuration option"},1403:{message:"Deprecated configuration: {{key}}",help:"Update to the new configuration format"},1501:{message:"Component not found: {{name}}",help:"Check that the component exists in your components directory"},1502:{message:"Invalid props for component {{name}}: {{details}}",help:"Check the component prop requirements"},1503:{message:"Error rendering component {{name}}: {{details}}",help:"Check the component template for errors"},1601:{message:"Filter not found: {{filter}}",help:"Register the filter or check the filter name"},1602:{message:"Invalid arguments for filter {{filter}}: {{details}}",help:"Check the filter documentation for correct arguments"},1603:{message:"Expression evaluation timed out",help:"Simplify the expression or increase the timeout"}},J4={};o={UNCLOSED_DIRECTIVE:1001,UNCLOSED_EXPRESSION:1002,INVALID_DIRECTIVE_SYNTAX:1003,MALFORMED_EXPRESSION:1004,UNEXPECTED_TOKEN:1005,UNDEFINED_VARIABLE:1101,TYPE_ERROR:1102,EVALUATION_ERROR:1103,INFINITE_LOOP:1104,CIRCULAR_REFERENCE:1105,UNSAFE_EXPRESSION:1201,PATH_TRAVERSAL:1202,XSS_ATTEMPT:1203,CODE_INJECTION:1204,DOM_API_VIOLATION:1205,FILE_NOT_FOUND:1301,FILE_READ_ERROR:1302,INVALID_FILE_PATH:1303,PERMISSION_DENIED:1304,INVALID_CONFIG:1401,MISSING_REQUIRED_CONFIG:1402,DEPRECATED_CONFIG:1403,COMPONENT_NOT_FOUND:1501,INVALID_PROPS:1502,COMPONENT_RENDER_ERROR:1503,FILTER_NOT_FOUND:1601,INVALID_FILTER_ARGS:1602,EXPRESSION_TIMEOUT:1603}});function iG(){return!1}function W$(){return!iG()||process.env.STX_DEBUG==="true"}function TL(){return!1}import EL from"path";function sG($){S5={...S5,...$}}function r2(){return{...S5}}function rG(){S5={...nG}}function o2($){if(!S5.showRelativePaths||!$)return $;let Z=S5.baseDir||process.cwd();try{let Y=EL.relative(Z,$);return Y.startsWith("..")?$:Y}catch{return $}}var nG,S5,U$,p8,O1,c8,b5,a2;var K4=D(()=>{G4();nG={showRelativePaths:!1,enableAutoRecovery:W$(),logRecoveryWarnings:!0},S5={...nG};U$=class U$ extends Error{code;filePath;line;column;context;numericCode;constructor($,Z,Y,X,J,Q,G){super($);this.code=Z;this.filePath=Y;this.line=X;this.column=J;this.context=Q;if(this.name="StxError",this.numericCode=G||o.EVALUATION_ERROR,this.filePath)this.filePath=o2(this.filePath)}};p8=class p8 extends U${constructor($,Z,Y,X,J,Q){super($,"stx_SYNTAX_ERROR",Z,Y,X,J,Q||o.INVALID_DIRECTIVE_SYNTAX);this.name="StxSyntaxError"}};O1=class O1 extends U${constructor($,Z,Y,X,J,Q){super($,"stx_RUNTIME_ERROR",Z,Y,X,J,Q||o.EVALUATION_ERROR);this.name="StxRuntimeError"}};c8=class c8 extends U${constructor($,Z,Y,X,J,Q){super($,"stx_SECURITY_ERROR",Z,Y,X,J,Q||o.UNSAFE_EXPRESSION);this.name="StxSecurityError"}};b5=class b5 extends U${constructor($,Z,Y,X,J,Q){super($,"stx_FILE_ERROR",Z,Y,X,J,Q||o.FILE_NOT_FOUND);this.name="StxFileError"}};a2=class a2 extends U${isFatal=!0;constructor($,Z,Y,X,J,Q){super($,"stx_VALIDATION_ERROR",Z,Y,X,J,Q||o.DOM_API_VIOLATION);this.name="StxValidationError"}}});function W4($){let{type:Z,message:Y,code:X,filePath:J,line:Q,column:G,template:K,offset:W,snippet:U,suggestion:_,format:B="text"}=$,z=Q,q=G;if(!z&&K&&W!==void 0){let L=aG(K,W);z=L.line,q=L.column}let j=J?o2(J):void 0,H=X?Q4(X):void 0,O={type:Z,code:X,codeName:H,message:Y,filePath:j,line:z,column:q,snippet:U,suggestion:_,timestamp:new Date().toISOString()},F;switch(B){case"html":F=DL(O);break;case"json":F=JSON.stringify(O,null,2);break;case"console":F=kL(O,K,W);break;case"text":default:F=IL(O,K,W);break}return{formatted:F,data:O}}function IL($,Z,Y){let X=[],J=$.code?` [${$.codeName||$.code}]`:"";if(X.push(`[${$.type} Error${J}]`),$.filePath){let Q=$.filePath;if($.line){if(Q+=`:${$.line}`,$.column)Q+=`:${$.column}`}X.push(`at ${Q}`)}if(X.push(`
1815
1815
  ${$.message}`),Z&&$.line){let Q=SL(Z,$.line,2);if(Q)X.push(`
1816
1816
  ${Q}`)}if($.snippet)X.push(`
1817
1817
  Snippet: ${$.snippet}`);if($.suggestion)X.push(`
@@ -1829,21 +1829,21 @@ ${"\x1B[31m"}\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\
1829
1829
  `)}function bL($,Z,Y){let X=$.split(`
1830
1830
  `),J=Math.max(0,Z-Y-1),Q=Math.min(X.length-1,Z+Y-1),G="\x1B[90m",K="\x1B[31m",W="\x1B[0m",U=[];for(let _=J;_<=Q;_++){let B=(_+1).toString().padStart(4),z=_===Z-1,q=z?"\x1B[31m>\x1B[0m":" ",j=z?`\x1B[31m${X[_]}\x1B[0m`:`\x1B[90m${X[_]}\x1B[0m`;U.push(`${q}\x1B[90m${B}\x1B[0m | ${j}`)}return U.join(`
1831
1831
  `)}function oG($){return $.replace(/--/g,"- -").replace(/>/g,"&gt;")}function aG($,Z){let X=$.substring(0,Z).split(`
1832
- `);return{line:X.length,column:X[X.length-1].length}}function $0($,Z,Y){return W6({type:$,message:Z,code:Y,format:"html"}).formatted}function tG($,Z,Y,X,J){return W6({type:$,message:Z,code:J,filePath:Y,line:X,format:"console"}).formatted}function eG($,Z,Y){let X=Y.template.split(`
1832
+ `);return{line:X.length,column:X[X.length-1].length}}function $0($,Z,Y){return W4({type:$,message:Z,code:Y,format:"html"}).formatted}function tG($,Z,Y,X,J){return W4({type:$,message:Z,code:J,filePath:Y,line:X,format:"console"}).formatted}function eG($,Z,Y){let X=Y.template.split(`
1833
1833
  `),J=aG(Y.template,Y.offset),Q=`[${$} Error at line ${J.line} in ${Y.filePath}]: ${Z}
1834
1834
 
1835
1835
  `,G=Math.max(0,J.line-3),K=Math.min(X.length-1,J.line+2);Q+=`Context:
1836
1836
  `;for(let W=G;W<=K;W++){let U=W+1,_=X[W]||"",B=W===J.line-1?">":" ";Q+=`${B} ${U.toString().padStart(3)}: ${_}
1837
1837
  `}if(J.line-1<X.length){let W=" ".repeat(J.column+5);Q+=`${W}^
1838
- `}return Q}function $K($,Z,Y){try{return $()}catch(X){if(Y&&X instanceof Error)Y(X);return Z}}async function M1($,Z,Y){try{return await $()}catch(X){if(Y&&X instanceof Error)Y(X);return Z}}var ZK=D(()=>{G6();K6()});class _6{errors=[];maxErrors;enableFileLogging;logFilePath;logFormat;maxFileSize;maxLogFiles;minLevel;writeQueue=Promise.resolve();constructor($={}){this.maxErrors=$.maxErrors??1000,this.enableFileLogging=$.enableFileLogging??!1,this.logFilePath=$.logFilePath??".stx/errors.log",this.logFormat=$.logFormat??"json",this.maxFileSize=$.maxFileSize??10485760,this.maxLogFiles=$.maxLogFiles??5,this.minLevel=$.minLevel??"all"}configure($){if($.maxErrors!==void 0)this.maxErrors=$.maxErrors;if($.enableFileLogging!==void 0)this.enableFileLogging=$.enableFileLogging;if($.logFilePath!==void 0)this.logFilePath=$.logFilePath;if($.logFormat!==void 0)this.logFormat=$.logFormat;if($.maxFileSize!==void 0)this.maxFileSize=$.maxFileSize;if($.maxLogFiles!==void 0)this.maxLogFiles=$.maxLogFiles;if($.minLevel!==void 0)this.minLevel=$.minLevel}log($,Z,Y="error"){let X={timestamp:new Date,error:$,context:Z,level:Y};if(this.errors.push(X),this.errors.length>this.maxErrors)this.errors=this.errors.slice(-this.maxErrors);if(this.enableFileLogging&&this.shouldLog(Y))this.writeToFile(X)}shouldLog($){if(this.minLevel==="all")return!0;if(this.minLevel==="warning")return $==="error"||$==="warning";if(this.minLevel==="error")return $==="error";return!0}formatEntry($){if(this.logFormat==="json")return JSON.stringify({timestamp:$.timestamp.toISOString(),level:$.level||"error",type:$.error.constructor.name,message:$.error.message,stack:$.error.stack,context:$.context});let Z=[`[${$.timestamp.toISOString()}] [${($.level||"error").toUpperCase()}] ${$.error.constructor.name}: ${$.error.message}`];if($.error.stack)Z.push(` Stack: ${$.error.stack.split(`
1838
+ `}return Q}function $K($,Z,Y){try{return $()}catch(X){if(Y&&X instanceof Error)Y(X);return Z}}async function M1($,Z,Y){try{return await $()}catch(X){if(Y&&X instanceof Error)Y(X);return Z}}var ZK=D(()=>{G4();K4()});class _4{errors=[];maxErrors;enableFileLogging;logFilePath;logFormat;maxFileSize;maxLogFiles;minLevel;writeQueue=Promise.resolve();constructor($={}){this.maxErrors=$.maxErrors??1000,this.enableFileLogging=$.enableFileLogging??!1,this.logFilePath=$.logFilePath??".stx/errors.log",this.logFormat=$.logFormat??"json",this.maxFileSize=$.maxFileSize??10485760,this.maxLogFiles=$.maxLogFiles??5,this.minLevel=$.minLevel??"all"}configure($){if($.maxErrors!==void 0)this.maxErrors=$.maxErrors;if($.enableFileLogging!==void 0)this.enableFileLogging=$.enableFileLogging;if($.logFilePath!==void 0)this.logFilePath=$.logFilePath;if($.logFormat!==void 0)this.logFormat=$.logFormat;if($.maxFileSize!==void 0)this.maxFileSize=$.maxFileSize;if($.maxLogFiles!==void 0)this.maxLogFiles=$.maxLogFiles;if($.minLevel!==void 0)this.minLevel=$.minLevel}log($,Z,Y="error"){let X={timestamp:new Date,error:$,context:Z,level:Y};if(this.errors.push(X),this.errors.length>this.maxErrors)this.errors=this.errors.slice(-this.maxErrors);if(this.enableFileLogging&&this.shouldLog(Y))this.writeToFile(X)}shouldLog($){if(this.minLevel==="all")return!0;if(this.minLevel==="warning")return $==="error"||$==="warning";if(this.minLevel==="error")return $==="error";return!0}formatEntry($){if(this.logFormat==="json")return JSON.stringify({timestamp:$.timestamp.toISOString(),level:$.level||"error",type:$.error.constructor.name,message:$.error.message,stack:$.error.stack,context:$.context});let Z=[`[${$.timestamp.toISOString()}] [${($.level||"error").toUpperCase()}] ${$.error.constructor.name}: ${$.error.message}`];if($.error.stack)Z.push(` Stack: ${$.error.stack.split(`
1839
1839
  `).slice(1).join(`
1840
1840
  `)}`);if($.context)Z.push(` Context: ${JSON.stringify($.context)}`);return Z.join(`
1841
1841
  `)}writeToFile($){this.writeQueue=this.writeQueue.then(async()=>{try{let Z=await import("fs"),X=(await import("path")).dirname(this.logFilePath);if(!Z.existsSync(X))Z.mkdirSync(X,{recursive:!0});await this.rotateIfNeeded(Z);let J=`${this.formatEntry($)}
1842
1842
  `;Z.appendFileSync(this.logFilePath,J,"utf-8")}catch(Z){if(process.env.STX_DEBUG==="true")console.error("Failed to write to error log:",Z)}})}async rotateIfNeeded($){try{if(!$.existsSync(this.logFilePath))return;if($.statSync(this.logFilePath).size<this.maxFileSize)return;for(let Y=this.maxLogFiles-1;Y>=1;Y--){let X=`${this.logFilePath}.${Y}`,J=`${this.logFilePath}.${Y+1}`;if($.existsSync(X))if(Y>=this.maxLogFiles-1)$.unlinkSync(X);else $.renameSync(X,J)}if(this.maxLogFiles<=1)$.writeFileSync(this.logFilePath,"");else $.renameSync(this.logFilePath,`${this.logFilePath}.1`)}catch(Z){if(process.env.STX_DEBUG==="true")console.error("Failed to rotate error logs:",Z)}}getRecentErrors($=10){return this.errors.slice(-$)}getErrorsByType($){return this.errors.filter((Z)=>Z.error.constructor.name===$)}getErrorsByLevel($){return this.errors.filter((Z)=>Z.level===$)}clear(){this.errors.length=0}async clearLogFile(){try{let $=await import("fs");if($.existsSync(this.logFilePath))$.writeFileSync(this.logFilePath,"","utf-8")}catch($){if(process.env.STX_DEBUG==="true")console.error("Failed to clear error log:",$)}}getStats(){let $={},Z={error:0,warning:0,info:0};for(let Y of this.errors){let X=Y.error.constructor.name;$[X]=($[X]||0)+1;let J=Y.level||"error";Z[J]=(Z[J]||0)+1}return{total:this.errors.length,byType:$,byLevel:Z}}async exportToFile($,Z="json"){let Y=await import("fs"),J=(await import("path")).dirname($);if(!Y.existsSync(J))Y.mkdirSync(J,{recursive:!0});if(Z==="json"){let Q=this.errors.map((G)=>({timestamp:G.timestamp.toISOString(),level:G.level||"error",type:G.error.constructor.name,message:G.error.message,stack:G.error.stack,context:G.context}));Y.writeFileSync($,JSON.stringify(Q,null,2),"utf-8")}else{let Q=this.errors.map((G)=>this.formatEntry(G));Y.writeFileSync($,Q.join(`
1843
1843
 
1844
- `),"utf-8")}}async flush(){await this.writeQueue}}var U6,m0,C5;var YK=D(()=>{K6();U6={isEnabled(){return r2().enableAutoRecovery},fixCommonSyntaxErrors($){let Z=r2();if(!Z.enableAutoRecovery)return{fixed:$,fixes:[]};let Y=$,X=[],J=(Y.match(/\{\{/g)||[]).length,Q=(Y.match(/\}\}/g)||[]).length;if(J>Q){let K=J-Q;Y+="}}".repeat(K),X.push(`Added ${K} missing closing braces '}}'`)}let G=["if","foreach","for","switch","section"];for(let K of G){let W=(Y.match(new RegExp(`@${K}\\b`,"g"))||[]).length,U=(Y.match(new RegExp(`@end${K}\\b`,"g"))||[]).length;if(W>U){let _=W-U;for(let B=0;B<_;B++)Y+=`
1845
- @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(W$())return`<!-- ${$} failed: ${Z.message} -->`;return"<!-- stx rendering error -->"}};m0=new _6,C5={isDevelopment(){return W$()},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(`
1846
- `)}}});import l8 from"path";function CL($){let Z={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};return $.replace(/[&<>"']/g,(Y)=>Z[Y]||Y)}function t2($,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=CL(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:B,name:z}of U)if(_.test(K))K=K.replace(_,B),W=!0,G.push(`Removed ${z} from parameter`);if(!J){let _=K;if(K=K.split("").filter((B)=>{let z=B.charCodeAt(0);return z>=32&&z!==127}).join(""),K!==_)W=!0,G.push("Control characters removed")}return{value:K,modified:W,warnings:G}}function XK($,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(!B6.isValidFilePath(Y,Z))return null;return Y}function JK($){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 QK($,Z={}){return $.map((Y)=>t2(Y,Z))}function i8($){let Z={};for(let[Y,X]of Object.entries($)){if(!B6.isValidVariableName(Y))continue;if(typeof X==="string"){let J=t2(X);Z[Y]=J.value}else if(Array.isArray(X))Z[Y]=X.map((J)=>typeof J==="string"?t2(J).value:J);else if(typeof X==="object"&&X!==null)Z[Y]=i8(X);else Z[Y]=X}return Z}var B6;var GK=D(()=>{B6={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=l8.resolve(Z,$),Q=l8.resolve(Z);if(!J.startsWith(Q+l8.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 KK=D(()=>{G6();ZK();YK();GK();K6()});var X1=D(()=>{KK()});function n8($,Z,Y,X){let J=$;J=J.replace(/@meta\(\s*['"]([^'"]+)['"](?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(K,W,U)=>{if(!U&&W.includes(":")){let _=W.split(":"),B=W,z=_.length>1?_[1]:"";if(z&&Z[z])U=Z[z];else if(B.startsWith("og:")&&Z.openGraph&&Z.openGraph[_[1]])U=Z.openGraph[_[1]];else U="";return U?`<meta property="${e(B)}" content="${e(U)}">`:""}return U?`<meta name="${e(W)}" content="${e(U)}">`:""});let Q=/@metaTag\s*\(/g,G;while((G=Q.exec(J))!==null){let K=G.index,W=K+G[0].length-1,U=1,_=W+1;while(_<J.length&&U>0){if(J[_]==="(")U++;else if(J[_]===")"){if(U--,U===0)break}_++}if(U!==0)break;let B=J.substring(W+1,_).trim(),z=_+1,q=(()=>{try{let j=k0(B,Z);if(!j)return"";let H="<meta";if(j.name)H+=` name="${e(String(j.name))}"`;if(j.property)H+=` property="${e(String(j.property))}"`;if(j.httpEquiv)H+=` http-equiv="${e(String(j.httpEquiv))}"`;if(j.content)H+=` content="${e(String(j.content))}"`;return H+=">",H}catch(j){let H=j instanceof Error?j.message:String(j);return $0("MetaTag",H,o.EVALUATION_ERROR)}})();J=J.substring(0,K)+q+J.substring(z),Q.lastIndex=0}return J}function s8($,Z,Y){let X=$,J=/@structuredData\s*\(/g,Q;while((Q=J.exec(X))!==null){let G=Q.index,K=G+Q[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)break;let _=X.substring(K+1,U).trim(),B=U+1,z=(()=>{try{let q=k0(_,Z);if(!q)return"";if(!q["@context"])q["@context"]="https://schema.org";return`<script type="application/ld+json">${JSON.stringify(q).replace(/<\//g,"<\\/")}</script>`}catch(q){let j=q instanceof Error?q.message:String(q);return $0("StructuredData",j,o.EVALUATION_ERROR)}})();X=X.substring(0,G)+z+X.substring(B),J.lastIndex=0}return X}function r8($,Z,Y,X){let J=$,Q=/@seo\s*\(\s*\{/g,G;while((G=Q.exec(J))!==null){let K=J.indexOf("{",G.index+4),W=1,U=K+1,_=null,B=!1;while(U<J.length&&W>0){let F=J[U];if(B){B=!1,U++;continue}if(F==="\\"&&_){B=!0,U++;continue}if(_){if(F===_)_=null;U++;continue}if(F==='"'||F==="'"||F==="`"){_=F,U++;continue}if(F==="{")W++;else if(F==="}")W--;U++}if(W!==0)break;let z=J.substring(U).match(/^\s*\)/);if(!z)break;let q=U+z[0].length,j=J.substring(K,U),H=J.substring(G.index,q),O=((F)=>{try{let L=k0(F,Z);if(!L)return"";let V="";if(L.title)V+=`<title>${e(L.title)}</title>
1844
+ `),"utf-8")}}async flush(){await this.writeQueue}}var U4,m0,C5;var YK=D(()=>{K4();U4={isEnabled(){return r2().enableAutoRecovery},fixCommonSyntaxErrors($){let Z=r2();if(!Z.enableAutoRecovery)return{fixed:$,fixes:[]};let Y=$,X=[],J=(Y.match(/\{\{/g)||[]).length,Q=(Y.match(/\}\}/g)||[]).length;if(J>Q){let K=J-Q;Y+="}}".repeat(K),X.push(`Added ${K} missing closing braces '}}'`)}let G=["if","foreach","for","switch","section"];for(let K of G){let W=(Y.match(new RegExp(`@${K}\\b`,"g"))||[]).length,U=(Y.match(new RegExp(`@end${K}\\b`,"g"))||[]).length;if(W>U){let _=W-U;for(let B=0;B<_;B++)Y+=`
1845
+ @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(W$())return`<!-- ${$} failed: ${Z.message} -->`;return"<!-- stx rendering error -->"}};m0=new _4,C5={isDevelopment(){return W$()},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(`
1846
+ `)}}});import l8 from"path";function CL($){let Z={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};return $.replace(/[&<>"']/g,(Y)=>Z[Y]||Y)}function t2($,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=CL(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:B,name:z}of U)if(_.test(K))K=K.replace(_,B),W=!0,G.push(`Removed ${z} from parameter`);if(!J){let _=K;if(K=K.split("").filter((B)=>{let z=B.charCodeAt(0);return z>=32&&z!==127}).join(""),K!==_)W=!0,G.push("Control characters removed")}return{value:K,modified:W,warnings:G}}function XK($,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(!B4.isValidFilePath(Y,Z))return null;return Y}function JK($){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 QK($,Z={}){return $.map((Y)=>t2(Y,Z))}function i8($){let Z={};for(let[Y,X]of Object.entries($)){if(!B4.isValidVariableName(Y))continue;if(typeof X==="string"){let J=t2(X);Z[Y]=J.value}else if(Array.isArray(X))Z[Y]=X.map((J)=>typeof J==="string"?t2(J).value:J);else if(typeof X==="object"&&X!==null)Z[Y]=i8(X);else Z[Y]=X}return Z}var B4;var GK=D(()=>{B4={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=l8.resolve(Z,$),Q=l8.resolve(Z);if(!J.startsWith(Q+l8.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 KK=D(()=>{G4();ZK();YK();GK();K4()});var X1=D(()=>{KK()});function n8($,Z,Y,X){let J=$;J=J.replace(/@meta\(\s*['"]([^'"]+)['"](?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(K,W,U)=>{if(!U&&W.includes(":")){let _=W.split(":"),B=W,z=_.length>1?_[1]:"";if(z&&Z[z])U=Z[z];else if(B.startsWith("og:")&&Z.openGraph&&Z.openGraph[_[1]])U=Z.openGraph[_[1]];else U="";return U?`<meta property="${e(B)}" content="${e(U)}">`:""}return U?`<meta name="${e(W)}" content="${e(U)}">`:""});let Q=/@metaTag\s*\(/g,G;while((G=Q.exec(J))!==null){let K=G.index,W=K+G[0].length-1,U=1,_=W+1;while(_<J.length&&U>0){if(J[_]==="(")U++;else if(J[_]===")"){if(U--,U===0)break}_++}if(U!==0)break;let B=J.substring(W+1,_).trim(),z=_+1,q=(()=>{try{let j=k0(B,Z);if(!j)return"";let H="<meta";if(j.name)H+=` name="${e(String(j.name))}"`;if(j.property)H+=` property="${e(String(j.property))}"`;if(j.httpEquiv)H+=` http-equiv="${e(String(j.httpEquiv))}"`;if(j.content)H+=` content="${e(String(j.content))}"`;return H+=">",H}catch(j){let H=j instanceof Error?j.message:String(j);return $0("MetaTag",H,o.EVALUATION_ERROR)}})();J=J.substring(0,K)+q+J.substring(z),Q.lastIndex=0}return J}function s8($,Z,Y){let X=$,J=/@structuredData\s*\(/g,Q;while((Q=J.exec(X))!==null){let G=Q.index,K=G+Q[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)break;let _=X.substring(K+1,U).trim(),B=U+1,z=(()=>{try{let q=k0(_,Z);if(!q)return"";if(!q["@context"])q["@context"]="https://schema.org";return`<script type="application/ld+json">${JSON.stringify(q).replace(/<\//g,"<\\/")}</script>`}catch(q){let j=q instanceof Error?q.message:String(q);return $0("StructuredData",j,o.EVALUATION_ERROR)}})();X=X.substring(0,G)+z+X.substring(B),J.lastIndex=0}return X}function r8($,Z,Y,X){let J=$,Q=/@seo\s*\(\s*\{/g,G;while((G=Q.exec(J))!==null){let K=J.indexOf("{",G.index+4),W=1,U=K+1,_=null,B=!1;while(U<J.length&&W>0){let F=J[U];if(B){B=!1,U++;continue}if(F==="\\"&&_){B=!0,U++;continue}if(_){if(F===_)_=null;U++;continue}if(F==='"'||F==="'"||F==="`"){_=F,U++;continue}if(F==="{")W++;else if(F==="}")W--;U++}if(W!==0)break;let z=J.substring(U).match(/^\s*\)/);if(!z)break;let q=U+z[0].length,j=J.substring(K,U),H=J.substring(G.index,q),O=((F)=>{try{let L=k0(F,Z);if(!L)return"";let V="";if(L.title)V+=`<title>${e(L.title)}</title>
1847
1847
  `,V+=`<meta name="title" content="${e(L.title)}">
1848
1848
  `;if(L.description)V+=`<meta name="description" content="${e(L.description)}">
1849
1849
  `;if(L.keywords){let A=Array.isArray(L.keywords)?L.keywords.join(", "):L.keywords;V+=`<meta name="keywords" content="${e(A)}">
@@ -1881,7 +1881,7 @@ ${"\x1B[31m"}\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\
1881
1881
  `;let _=$;if(!Q)_=_.replace(/<head[^>]*>/,`$&
1882
1882
  <title>${e(G)}</title>`);return _.replace(/<head[^>]*>/,`$&
1883
1883
  ${U}
1884
- `)}function e($){return $.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function yL(){return[z6,q6]}function PL($,Z){let Y=Z.replace(/\/$/,""),X=new Date().toISOString().split("T")[0];return`<?xml version="1.0" encoding="UTF-8"?>
1884
+ `)}function e($){return $.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function yL(){return[z4,q4]}function PL($,Z){let Y=Z.replace(/\/$/,""),X=new Date().toISOString().split("T")[0];return`<?xml version="1.0" encoding="UTF-8"?>
1885
1885
  <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
1886
1886
  ${$.map((Q)=>{let G=Q.startsWith("http")?Q:`${Y}${Q.startsWith("/")?"":"/"}${Q}`;return` <sitemap>
1887
1887
  <loc>${fL(G)}</loc>
@@ -1889,7 +1889,7 @@ ${$.map((Q)=>{let G=Q.startsWith("http")?Q:`${Y}${Q.startsWith("/")?"":"/"}${Q}`
1889
1889
  </sitemap>`}).join(`
1890
1890
  `)}
1891
1891
  </sitemapindex>`}async function xL($,Z){let{extensions:Y=[".stx",".html",".htm"],ignore:X=["_*",".*","node_modules","components","partials","layouts"]}=Z,J=[],Q=Y.length===1?`*${Y[0]}`:`*{${Y.join(",")}}`,G=new Bun.Glob(`**/${Q}`);for await(let K of G.scan($)){if(X.some((z)=>{if(z.startsWith("*"))return K.includes(z.slice(1));return K.startsWith(z)||K.includes(`/${z}`)}))continue;let U=K.replace(/\\/g,"/").replace(/index\.(stx|html|htm)$/,"").replace(/\.(stx|html|htm)$/,"");if(!U.startsWith("/"))U=`/${U}`;if(U!=="/"&&U.endsWith("/"))U=U.slice(0,-1);let _=`${$}/${K}`,B;try{let z=await Bun.file(_).stat();if(z)B=new Date(z.mtime).toISOString().split("T")[0]}catch{}J.push({loc:U||"/",lastmod:B,priority:U==="/"?1:0.5})}return J.sort((K,W)=>K.loc.localeCompare(W.loc)),J}function WK($){let Z=[];for(let Y of $.rules){if(Z.push(`User-agent: ${Y.userAgent}`),Y.allow)for(let X of Y.allow)Z.push(`Allow: ${X}`);if(Y.disallow)for(let X of Y.disallow)Z.push(`Disallow: ${X}`);if(Y.crawlDelay!==void 0)Z.push(`Crawl-delay: ${Y.crawlDelay}`);Z.push("")}if($.sitemap){let Y=Array.isArray($.sitemap)?$.sitemap:[$.sitemap];for(let X of Y)Z.push(`Sitemap: ${X}`)}if($.host)Z.push(`Host: ${$.host}`);return Z.join(`
1892
- `).trim()}function vL($){return WK({rules:[{userAgent:"*",allow:["/"]}],sitemap:$})}function fL($){return $.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}var z6,q6;var j6=D(()=>{X1();h0();z6={name:"meta",handler:($,Z,Y,X)=>{if(Z.length<1)return $0("Meta","meta directive requires at least the meta name",o.INVALID_DIRECTIVE_SYNTAX);let J=Z[0].replace(/['"]/g,""),Q=Z.length>1?Z[1].replace(/['"]/g,""):"";return`<meta name="${e(J)}" content="${e(Q)}">`},hasEndTag:!1},q6={name:"structuredData",handler:($,Z,Y,X)=>{if($.trim()==="")return $0("StructuredData","structuredData directive requires JSON-LD content",o.INVALID_DIRECTIVE_SYNTAX);try{let J=JSON.parse($);if(!J["@context"])J["@context"]="https://schema.org";if(!J["@type"])return $0("StructuredData","structuredData requires @type property",o.INVALID_DIRECTIVE_SYNTAX);return`<script type="application/ld+json">${JSON.stringify(J)}</script>`}catch(J){let Q=J instanceof Error?J.message:String(J);return $0("StructuredData",Q,o.EVALUATION_ERROR)}},hasEndTag:!0}});import gL from"fs";import _$ from"path";async function a8($,Z){if(!$.webComponents?.enabled)return[];let Y=$.webComponents.components||[],X=[];if(Y.length>0){if($.debug)console.log(`Building ${Y.length} web components...`);for(let J of Y)try{let Q=await hL(J,$,Z);if(Q)X.push(Q)}catch(Q){if(console.error(`Error building web component ${J.name}:`,Q),$.debug)throw Q}}return X}async function hL($,Z,Y){let{name:X,file:J,tag:Q,extends:G}=$;if(!X||!J||!Q)return console.error("Invalid web component configuration, missing required fields:",$),null;let K=null;if(_$.isAbsolute(J)&&await t(J))K=J;else if(Z.componentsDir){let H=_$.join(Z.componentsDir,J);if(await t(H))K=H}if(!K)K=await e2(J,process.cwd(),Z,Y);if(!K)return console.error(`Web component source file not found: ${J}`),null;let W=await Bun.file(K).text();Y.add(K);let _=($.outputFormat||"js")==="ts",B=_?mL({name:X,tag:Q,baseElement:G,source:W,shadowDOM:$.shadowDOM??!0,template:$.template??!0,styleSource:$.styleSource,attributes:$.attributes||[],attributeTypes:$.attributeTypes||{}}):dL({name:X,tag:Q,baseElement:G,source:W,shadowDOM:$.shadowDOM??!0,template:$.template??!0,styleSource:$.styleSource,attributes:$.attributes||[]}),z=Z.webComponents?.outputDir||"dist/web-components";await gL.promises.mkdir(z,{recursive:!0});let q=_?"ts":"js",j=_$.join(z,`${Q}.${q}`);if(await Bun.write(j,B),Z.debug)console.log(`Built web component ${X} -> ${j}`);return j}function dL($){let{name:Z,tag:Y,baseElement:X="HTMLElement",source:J,shadowDOM:Q,template:G,styleSource:K,attributes:W=[]}=$,U=J.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"").trim();if(!Q)U=U.replace(/<slot\s+name=["']([^"']+)["']\s*>([\s\S]*?)<\/slot>/gi,'<div data-slot="$1">$2</div>'),U=U.replace(/<slot\s+name=["']([^"']+)["']\s*\/>/gi,'<div data-slot="$1"></div>'),U=U.replace(/<slot\s*>([\s\S]*?)<\/slot>/gi,"<div data-default-slot>$1</div>"),U=U.replace(/<slot\s*\/>/gi,"<div data-default-slot></div>");let _="";if(K)_=`<link rel="stylesheet" href="${K}">`;return`/**
1892
+ `).trim()}function vL($){return WK({rules:[{userAgent:"*",allow:["/"]}],sitemap:$})}function fL($){return $.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}var z4,q4;var j4=D(()=>{X1();h0();z4={name:"meta",handler:($,Z,Y,X)=>{if(Z.length<1)return $0("Meta","meta directive requires at least the meta name",o.INVALID_DIRECTIVE_SYNTAX);let J=Z[0].replace(/['"]/g,""),Q=Z.length>1?Z[1].replace(/['"]/g,""):"";return`<meta name="${e(J)}" content="${e(Q)}">`},hasEndTag:!1},q4={name:"structuredData",handler:($,Z,Y,X)=>{if($.trim()==="")return $0("StructuredData","structuredData directive requires JSON-LD content",o.INVALID_DIRECTIVE_SYNTAX);try{let J=JSON.parse($);if(!J["@context"])J["@context"]="https://schema.org";if(!J["@type"])return $0("StructuredData","structuredData requires @type property",o.INVALID_DIRECTIVE_SYNTAX);return`<script type="application/ld+json">${JSON.stringify(J)}</script>`}catch(J){let Q=J instanceof Error?J.message:String(J);return $0("StructuredData",Q,o.EVALUATION_ERROR)}},hasEndTag:!0}});import gL from"fs";import _$ from"path";async function a8($,Z){if(!$.webComponents?.enabled)return[];let Y=$.webComponents.components||[],X=[];if(Y.length>0){if($.debug)console.log(`Building ${Y.length} web components...`);for(let J of Y)try{let Q=await hL(J,$,Z);if(Q)X.push(Q)}catch(Q){if(console.error(`Error building web component ${J.name}:`,Q),$.debug)throw Q}}return X}async function hL($,Z,Y){let{name:X,file:J,tag:Q,extends:G}=$;if(!X||!J||!Q)return console.error("Invalid web component configuration, missing required fields:",$),null;let K=null;if(_$.isAbsolute(J)&&await t(J))K=J;else if(Z.componentsDir){let H=_$.join(Z.componentsDir,J);if(await t(H))K=H}if(!K)K=await e2(J,process.cwd(),Z,Y);if(!K)return console.error(`Web component source file not found: ${J}`),null;let W=await Bun.file(K).text();Y.add(K);let _=($.outputFormat||"js")==="ts",B=_?mL({name:X,tag:Q,baseElement:G,source:W,shadowDOM:$.shadowDOM??!0,template:$.template??!0,styleSource:$.styleSource,attributes:$.attributes||[],attributeTypes:$.attributeTypes||{}}):dL({name:X,tag:Q,baseElement:G,source:W,shadowDOM:$.shadowDOM??!0,template:$.template??!0,styleSource:$.styleSource,attributes:$.attributes||[]}),z=Z.webComponents?.outputDir||"dist/web-components";await gL.promises.mkdir(z,{recursive:!0});let q=_?"ts":"js",j=_$.join(z,`${Q}.${q}`);if(await Bun.write(j,B),Z.debug)console.log(`Built web component ${X} -> ${j}`);return j}function dL($){let{name:Z,tag:Y,baseElement:X="HTMLElement",source:J,shadowDOM:Q,template:G,styleSource:K,attributes:W=[]}=$,U=J.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"").trim();if(!Q)U=U.replace(/<slot\s+name=["']([^"']+)["']\s*>([\s\S]*?)<\/slot>/gi,'<div data-slot="$1">$2</div>'),U=U.replace(/<slot\s+name=["']([^"']+)["']\s*\/>/gi,'<div data-slot="$1"></div>'),U=U.replace(/<slot\s*>([\s\S]*?)<\/slot>/gi,"<div data-default-slot>$1</div>"),U=U.replace(/<slot\s*\/>/gi,"<div data-default-slot></div>");let _="";if(K)_=`<link rel="stylesheet" href="${K}">`;return`/**
1893
1893
  * ${Z} Web Component
1894
1894
  * Auto-generated from stx component
1895
1895
  */
@@ -2120,7 +2120,7 @@ declare global {
2120
2120
 
2121
2121
  // Register the web component
2122
2122
  customElements.define('${Y}', ${_});
2123
- `}function H6($){let Z=$.split("").reduce((Y,X)=>(Y<<5)-Y+X.charCodeAt(0)|0,0);return Math.abs(Z).toString(36).slice(0,8)}function UK($,Z,Y={}){let X={...t8,...Y},J=H6(Z);switch(X.strategy){case"shadow":return $;case"prefix":return pL($,X.prefix||Z,X.preserveOriginal);case"attribute":return uL($,J,X.attributeName||"data-v",X.preserveOriginal);case"bem":return cL($,Z,X.preserveOriginal);default:return $}}function uL($,Z,Y,X){let J=`[${Y}-${Z}]`;return $.replace(/([.#]?[\w-]+|\*)\s*(\{|,)/g,(Q,G,K)=>{if(G.startsWith("@"))return Q;if(/^(?::root|:host|html|body)$/i.test(G))return Q;return`${X?`${G}${J}`:`${G}${J}`}${K}`})}function pL($,Z,Y){return $.replace(/\.([a-z_][\w-]*)/gi,(X,J)=>{if(J.startsWith(Z))return X;let Q=`${Z}__${J}`;return Y?`.${Q}`:`.${Q}`})}function cL($,Z,Y){let X=Z.replace(/[^a-z0-9]/gi,"-");return $.replace(/\.([a-z_][\w-]*)/gi,(J,Q)=>{if(Q.includes("__")||Q.includes("--")){if(!Q.startsWith(X))return`.${X}__${Q}`;return J}let G=`${X}__${Q}`;return Y?`.${G}`:`.${G}`})}function _K($,Z,Y={}){let X={...t8,...Y};if(X.strategy==="shadow")return $;if(X.strategy==="attribute"){let J=H6(Z),G=`${X.attributeName||"data-v"}-${J}`;return $.replace(/<([a-z][a-z0-9-]*)([^>]*)>/gi,(K,W,U)=>{if(/^(?:script|style|!--)$/i.test(W))return K;let _=U.trimEnd().endsWith("/"),B=_?U.slice(0,-1):U;return`<${W}${B} ${G}${_?"/":""}>`})}if(X.strategy==="prefix"||X.strategy==="bem"){let J=X.strategy==="bem"?Z.replace(/[^a-z0-9]/gi,"-"):X.prefix||Z;return $.replace(/\bclass\s*=\s*["']([^"']+)["']/gi,(Q,G)=>{return`class="${G.split(/\s+/).map((W)=>{if(!W)return W;if(W.startsWith(J))return W;return`${J}__${W}`}).join(" ")}"`})}return $}function lL($,Z={}){let Y={...t8,...Z},X=H6($);return`${Y.attributeName||"data-v"}-${X}`}function iL($,Z,Y={}){let X="",J=$.replace(/<style([^>]*)>([\s\S]*?)<\/style>/gi,(G,K,W)=>{if(/\bscoped\b/i.test(K)||Y.strategy!=="shadow")X+=`${UK(W,Z,Y)}
2123
+ `}function H4($){let Z=$.split("").reduce((Y,X)=>(Y<<5)-Y+X.charCodeAt(0)|0,0);return Math.abs(Z).toString(36).slice(0,8)}function UK($,Z,Y={}){let X={...t8,...Y},J=H4(Z);switch(X.strategy){case"shadow":return $;case"prefix":return pL($,X.prefix||Z,X.preserveOriginal);case"attribute":return uL($,J,X.attributeName||"data-v",X.preserveOriginal);case"bem":return cL($,Z,X.preserveOriginal);default:return $}}function uL($,Z,Y,X){let J=`[${Y}-${Z}]`;return $.replace(/([.#]?[\w-]+|\*)\s*(\{|,)/g,(Q,G,K)=>{if(G.startsWith("@"))return Q;if(/^(?::root|:host|html|body)$/i.test(G))return Q;return`${X?`${G}${J}`:`${G}${J}`}${K}`})}function pL($,Z,Y){return $.replace(/\.([a-z_][\w-]*)/gi,(X,J)=>{if(J.startsWith(Z))return X;let Q=`${Z}__${J}`;return Y?`.${Q}`:`.${Q}`})}function cL($,Z,Y){let X=Z.replace(/[^a-z0-9]/gi,"-");return $.replace(/\.([a-z_][\w-]*)/gi,(J,Q)=>{if(Q.includes("__")||Q.includes("--")){if(!Q.startsWith(X))return`.${X}__${Q}`;return J}let G=`${X}__${Q}`;return Y?`.${G}`:`.${G}`})}function _K($,Z,Y={}){let X={...t8,...Y};if(X.strategy==="shadow")return $;if(X.strategy==="attribute"){let J=H4(Z),G=`${X.attributeName||"data-v"}-${J}`;return $.replace(/<([a-z][a-z0-9-]*)([^>]*)>/gi,(K,W,U)=>{if(/^(?:script|style|!--)$/i.test(W))return K;let _=U.trimEnd().endsWith("/"),B=_?U.slice(0,-1):U;return`<${W}${B} ${G}${_?"/":""}>`})}if(X.strategy==="prefix"||X.strategy==="bem"){let J=X.strategy==="bem"?Z.replace(/[^a-z0-9]/gi,"-"):X.prefix||Z;return $.replace(/\bclass\s*=\s*["']([^"']+)["']/gi,(Q,G)=>{return`class="${G.split(/\s+/).map((W)=>{if(!W)return W;if(W.startsWith(J))return W;return`${J}__${W}`}).join(" ")}"`})}return $}function lL($,Z={}){let Y={...t8,...Z},X=H4($);return`${Y.attributeName||"data-v"}-${X}`}function iL($,Z,Y={}){let X="",J=$.replace(/<style([^>]*)>([\s\S]*?)<\/style>/gi,(G,K,W)=>{if(/\bscoped\b/i.test(K)||Y.strategy!=="shadow")X+=`${UK(W,Z,Y)}
2124
2124
  `;else X+=`${W}
2125
2125
  `;return""});return{html:_K(J,Z,Y),css:X.trim()}}function y5($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}function nL($){let{name:Z,tag:Y,baseElement:X="HTMLElement",template:J,styles:Q="",shadowDOM:G=!0,properties:K={},lifecycle:W={},events:U={},methods:_={},state:B={}}=$,z=Z.replace(/\W/g,""),q=Object.keys(K),j=q.filter((T)=>K[T].attribute!==!1).map((T)=>K[T].attribute||y5(T)),H=q.map((T)=>{let I=K[T],E=I.default!==void 0?JSON.stringify(I.default):I.type==="string"?'""':I.type==="number"?"0":I.type==="boolean"?"false":I.type==="array"?"[]":"{}";return` this._${T} = ${E};`}).join(`
2126
2126
  `),O=q.map((T)=>{let I=K[T],E=I.attribute!==!1?I.attribute||y5(T):null,S=I.reflect&&E?`
@@ -2968,14 +2968,14 @@ ${_}
2968
2968
  customElements.define('${Z}', ${G});
2969
2969
  `}async function e8($,Z,Y,X){if(Z.length<1)return $0("WebComponent","@webcomponent directive requires at least the tag name parameter",o.INVALID_DIRECTIVE_SYNTAX);let J=Z[0].replace(/['"]/g,""),G=(Y.__stx_options||{}).componentsDir||"components",K=[_$.join(_$.dirname(X),G,`${J}.stx`),_$.join(process.cwd(),G,`${J}.stx`),_$.join(_$.dirname(X),`${J}.stx`)],W=null;for(let B of K)if(await t(B)){W=await Bun.file(B).text();break}if(!W)return $0("WebComponent",`Component file not found: ${J}.stx`,o.FILE_NOT_FOUND);let U=BK(W,J);return`<script type="module">
2970
2970
  ${zK(U)}
2971
- </script>`}var t8;var $Z=D(()=>{X1();q0();t8={strategy:"attribute",attributeName:"data-v",preserveOriginal:!0}});var qK={};Q0(qK,{timingPlugin:()=>$F,pluginManager:()=>YZ,definePlugin:()=>P5,debugPlugin:()=>eL,createVariablesPlugin:()=>ZF,createFilterPlugin:()=>tL,createDirectivePlugin:()=>aL,PluginManager:()=>ZZ});function P5($){return $}class ZZ{plugins=new Map;sortedPlugins=[];initialized=!1;async register($,Z){if(this.plugins.has($.name))throw Error(`Plugin "${$.name}" is already registered`);if($.dependencies){for(let Y of $.dependencies)if(!this.plugins.has(Y))throw Error(`Plugin "${$.name}" depends on "${Y}" which is not registered`)}if(this.plugins.set($.name,$),$.onRegister)await $.onRegister(Z);this.sortPlugins()}async unregister($){let Z=this.plugins.get($);if(!Z)return!1;for(let[Y,X]of this.plugins)if(X.dependencies?.includes($))throw Error(`Cannot unregister "${$}" because "${Y}" depends on it`);if(Z.onUnregister)await Z.onUnregister();return this.plugins.delete($),this.sortPlugins(),!0}get($){return this.plugins.get($)}has($){return this.plugins.has($)}getAll(){return[...this.sortedPlugins]}getAllDirectives(){let $=[];for(let Z of this.sortedPlugins)if(Z.registerDirectives)$.push(...Z.registerDirectives());return $}getAllFilters(){let $={};for(let Z of this.sortedPlugins)if(Z.registerFilters)Object.assign($,Z.registerFilters());return $}async runBeforeProcess($){return this.runHooks("beforeProcess",$)}async runAfterParse($){return this.runHooks("afterParse",$)}async runBeforeDirective($,Z){return this.runDirectiveHooks("beforeDirective",$,Z)}async runAfterDirective($,Z){return this.runDirectiveHooks("afterDirective",$,Z)}async runBeforeRender($){return this.runHooks("beforeRender",$)}async runAfterRender($){return this.runHooks("afterRender",$)}async runOnError($){for(let Z of this.sortedPlugins)if(Z.onError)try{let Y=await Z.onError($);if(Y){if(Y.template!==void 0)$.template=Y.template;if(Y.context)$.context={...$.context,...Y.context};if(Y.metadata)$.metadata={...$.metadata,...Y.metadata};if(Y.skip)return $}}catch(Y){console.error(`Error in plugin "${Z.name}" onError hook:`,Y)}return null}sortPlugins(){this.sortedPlugins=Array.from(this.plugins.values()).sort(($,Z)=>($.priority??100)-(Z.priority??100))}async runHooks($,Z){let Y={...Z};for(let X of this.sortedPlugins){let J=X[$];if(J)try{let Q=await J(Y);if(Q){if(Q.template!==void 0)Y.template=Q.template;if(Q.context)Y.context={...Y.context,...Q.context};if(Q.metadata)Y.metadata={...Y.metadata,...Q.metadata};if(Q.skip)break}}catch(Q){console.error(`Error in plugin "${X.name}" ${$} hook:`,Q)}}return Y}async runDirectiveHooks($,Z,Y){let X={...Y};for(let J of this.sortedPlugins){let Q=J[$];if(Q)try{let G=await Q(Z,X);if(G){if(G.template!==void 0)X.template=G.template;if(G.context)X.context={...X.context,...G.context};if(G.metadata)X.metadata={...X.metadata,...G.metadata};if(G.skip)break}}catch(G){console.error(`Error in plugin "${J.name}" ${$} hook:`,G)}}return X}}function aL($,Z,Y={}){return{name:$,...Y,registerDirectives:()=>Z}}function tL($,Z,Y={}){return{name:$,...Y,registerFilters:()=>Z}}function ZF($){return P5({name:"stx-variables",version:"1.0.0",description:"Adds predefined variables to template context",beforeProcess(Z){return{context:{...Z.context,...$}}}})}var YZ,eL,$F;var XZ=D(()=>{YZ=new ZZ;eL=P5({name:"stx-debug",version:"1.0.0",description:"Logs all plugin lifecycle events for debugging",priority:0,beforeProcess($){console.log("[stx-debug] beforeProcess:",$.filePath)},afterParse($){console.log("[stx-debug] afterParse:",$.template.length,"chars")},beforeDirective($,Z){console.log("[stx-debug] beforeDirective:",$)},afterDirective($,Z){console.log("[stx-debug] afterDirective:",$)},beforeRender($){console.log("[stx-debug] beforeRender")},afterRender($){console.log("[stx-debug] afterRender:",$.template.length,"chars")},onError($){console.error("[stx-debug] onError:",$.error.message,"in phase:",$.phase)}}),$F=P5({name:"stx-timing",version:"1.0.0",description:"Measures template processing time",priority:1,beforeProcess($){$.metadata.startTime=performance.now()},afterRender($){let Z=$.metadata.startTime;if(Z){let Y=performance.now()-Z;console.log(`[stx-timing] Processing took ${Y.toFixed(2)}ms`)}}})});var LK={};Q0(LK,{validateConfig:()=>OK,loadStxConfig:()=>S0,defineStxConfig:()=>HK,defaultConfig:()=>a0,config:()=>t0});import JZ from"fs";import i0 from"path";import{loadConfigWithResult as YF}from"bunfig";function XF($,Z){let Y=Z||"pages";if($)return{root:$,pagesDir:Y};let X=i0.join(process.cwd(),"resources","views"),J=i0.join(process.cwd(),"resources","layouts");if(JZ.existsSync(X)&&JZ.existsSync(J))return{root:"resources",pagesDir:"views"};let Q=i0.join(process.cwd(),"resources","views","pages");if(JZ.existsSync(Q))return{root:"resources/views",pagesDir:Y};return{root:".",pagesDir:Y}}async function S0($){if(!$){if(x5)return x5;if(O6)return O6}let Z=$?i0.resolve($):process.cwd(),Y=jK.get(Z);if(Y)return Y;let X=(async()=>{let Q=(await YF({name:"stx",alias:"ui",cwd:Z,defaultConfig:a0,verbose:!1})).config,G=XF(Q.root,Q.pagesDir);if(Q.root=G.root,Q.pagesDir=G.pagesDir,Q.root&&Q.root!=="."){let K=Q.root;if(Q.partialsDir&&!i0.isAbsolute(Q.partialsDir))Q.partialsDir=i0.join(K,Q.partialsDir);if(Q.componentsDir&&!i0.isAbsolute(Q.componentsDir))Q.componentsDir=i0.join(K,Q.componentsDir);if(Q.layoutsDir&&!i0.isAbsolute(Q.layoutsDir))Q.layoutsDir=i0.join(K,Q.layoutsDir)}if(Q.plugins&&Q.plugins.length>0){let{pluginManager:K}=await Promise.resolve().then(() => (XZ(),qK)),W=[],U=[];for(let _ of Q.plugins){let B=typeof _==="string"?_:_[0],z=typeof _==="string"?{}:_[1]||{};try{let q,j;try{q=await import(B),j=i0.dirname(K0.resolve(B))}catch{let O=i0.resolve(process.cwd(),B);q=await import(O),j=i0.dirname(O)}let H=q.default||q;if(K.register(H,Q),H.components){let O=i0.resolve(j,H.components);W.push(O)}if(H.pages){let O=i0.resolve(j,H.pages),F=z.path||"/";U.push({dir:O,prefix:F})}if(H.setup){let O={addDirective:(F)=>{Q.customDirectives=Q.customDirectives||[],Q.customDirectives.push(F)},addRoute:(F,L)=>{Q.apiRoutes=Q.apiRoutes||{},Q.apiRoutes[F]=L},addMiddleware:(F)=>{Q.middleware=Q.middleware||[],Q.middleware.push(F)},pluginDir:j,config:Q};await H.setup(z,O)}console.log(`[stx] Plugin loaded: ${H.name||B}`)}catch(q){console.warn(`[stx] Failed to load plugin ${B}:`,q.message)}}Q._pluginComponentDirs=W,Q._pluginPageDirs=U}return Q})();if(jK.set(Z,X),!$)O6=X,X.then((J)=>{x5=J}).catch(()=>{});return X}function HK($){return $}function OK($){let Z=[],Y=[];if($.partialsDir!==void 0&&typeof $.partialsDir!=="string")Z.push({path:"partialsDir",message:"partialsDir must be a string",severity:"error"});if($.componentsDir!==void 0&&typeof $.componentsDir!=="string")Z.push({path:"componentsDir",message:"componentsDir must be a string",severity:"error"});if($.cache!==void 0&&typeof $.cache!=="boolean")Z.push({path:"cache",message:"cache must be a boolean",severity:"error"});if($.debug!==void 0&&typeof $.debug!=="boolean")Z.push({path:"debug",message:"debug must be a boolean",severity:"error"});if($.streaming){if($.streaming.bufferSize!==void 0){if(typeof $.streaming.bufferSize!=="number"||$.streaming.bufferSize<=0)Z.push({path:"streaming.bufferSize",message:"streaming.bufferSize must be a positive number",severity:"error"})}if($.streaming.timeout!==void 0){if(typeof $.streaming.timeout!=="number"||$.streaming.timeout<=0)Z.push({path:"streaming.timeout",message:"streaming.timeout must be a positive number",severity:"error"})}if($.streaming.strategy!==void 0){let X=["auto","manual","sections"];if(!X.includes($.streaming.strategy))Z.push({path:"streaming.strategy",message:`streaming.strategy must be one of: ${X.join(", ")}`,severity:"error"})}}if($.i18n){if($.i18n.format!==void 0){let X=["json","yaml","yml","js"];if(!X.includes($.i18n.format))Z.push({path:"i18n.format",message:`i18n.format must be one of: ${X.join(", ")}`,severity:"error"})}}if($.animation){if($.animation.defaultDuration!==void 0){if(typeof $.animation.defaultDuration!=="number"||$.animation.defaultDuration<0)Z.push({path:"animation.defaultDuration",message:"animation.defaultDuration must be a non-negative number",severity:"error"})}if($.animation.staggerDelay!==void 0){if(typeof $.animation.staggerDelay!=="number"||$.animation.staggerDelay<0)Z.push({path:"animation.staggerDelay",message:"animation.staggerDelay must be a non-negative number",severity:"error"})}}if($.a11y){if($.a11y.level!==void 0){let X=["AA","AAA"];if(!X.includes($.a11y.level))Z.push({path:"a11y.level",message:`a11y.level must be one of: ${X.join(", ")}`,severity:"error"})}}if($.hydration){if($.hydration.mode!==void 0){let X=["progressive","islands"];if(!X.includes($.hydration.mode))Z.push({path:"hydration.mode",message:`hydration.mode must be one of: ${X.join(", ")}`,severity:"error"})}if($.hydration.preload!==void 0){let X=["none","eager","lazy"];if(!X.includes($.hydration.preload))Z.push({path:"hydration.preload",message:`hydration.preload must be one of: ${X.join(", ")}`,severity:"error"})}}if($.customDirectives)if(!Array.isArray($.customDirectives))Z.push({path:"customDirectives",message:"customDirectives must be an array",severity:"error"});else $.customDirectives.forEach((X,J)=>{if(!X.name||typeof X.name!=="string")Z.push({path:`customDirectives[${J}].name`,message:"Custom directive must have a name string",severity:"error"});if(!X.handler||typeof X.handler!=="function")Z.push({path:`customDirectives[${J}].handler`,message:"Custom directive must have a handler function",severity:"error"})});if($.middleware)if(!Array.isArray($.middleware))Z.push({path:"middleware",message:"middleware must be an array",severity:"error"});else $.middleware.forEach((X,J)=>{if(!X.name||typeof X.name!=="string")Z.push({path:`middleware[${J}].name`,message:"Middleware must have a name string",severity:"error"});if(!X.handler||typeof X.handler!=="function")Z.push({path:`middleware[${J}].handler`,message:"Middleware must have a handler function",severity:"error"});if(!X.timing||!["before","after"].includes(X.timing))Z.push({path:`middleware[${J}].timing`,message:'Middleware timing must be "before" or "after"',severity:"error"})});if($.debug===!0&&$.cache===!0)Y.push({path:"debug+cache",message:"Debug mode with caching enabled may show stale content during development",severity:"warning"});if($.seo?.enabled===!0&&!$.seo?.defaultConfig?.title)Y.push({path:"seo.defaultConfig.title",message:"SEO is enabled but no default title is set",severity:"warning"});if($.pwa){if($.pwa.enabled===!0&&!$.pwa.manifest?.name)Z.push({path:"pwa.manifest.name",message:"PWA manifest name is required when PWA is enabled",severity:"error"});if($.pwa.manifest?.display!==void 0){let X=["fullscreen","standalone","minimal-ui","browser"];if(!X.includes($.pwa.manifest.display))Z.push({path:"pwa.manifest.display",message:`PWA display must be one of: ${X.join(", ")}`,severity:"error"})}if($.pwa.manifest?.orientation!==void 0){let X=["portrait","landscape","any","portrait-primary","portrait-secondary","landscape-primary","landscape-secondary"];if(!X.includes($.pwa.manifest.orientation))Z.push({path:"pwa.manifest.orientation",message:`PWA orientation must be one of: ${X.join(", ")}`,severity:"error"})}if($.pwa.routes){let X=["cache-first","network-first","stale-while-revalidate","network-only","cache-only"];$.pwa.routes.forEach((J,Q)=>{if(!J.pattern||typeof J.pattern!=="string")Z.push({path:`pwa.routes[${Q}].pattern`,message:"PWA route must have a pattern string",severity:"error"});if(!X.includes(J.strategy))Z.push({path:`pwa.routes[${Q}].strategy`,message:`PWA route strategy must be one of: ${X.join(", ")}`,severity:"error"});if(J.maxAgeSeconds!==void 0&&(typeof J.maxAgeSeconds!=="number"||J.maxAgeSeconds<0))Z.push({path:`pwa.routes[${Q}].maxAgeSeconds`,message:"PWA route maxAgeSeconds must be a non-negative number",severity:"error"});if(J.maxEntries!==void 0&&(typeof J.maxEntries!=="number"||J.maxEntries<1))Z.push({path:`pwa.routes[${Q}].maxEntries`,message:"PWA route maxEntries must be a positive number",severity:"error"})})}if($.pwa.icons?.sizes){if(!Array.isArray($.pwa.icons.sizes))Z.push({path:"pwa.icons.sizes",message:"PWA icon sizes must be an array of numbers",severity:"error"});else if($.pwa.icons.sizes.filter((J)=>typeof J!=="number"||J<16||J>1024).length>0)Z.push({path:"pwa.icons.sizes",message:"PWA icon sizes must be numbers between 16 and 1024",severity:"error"})}if($.pwa.icons?.purpose){let X=["any","maskable","monochrome"];if($.pwa.icons.purpose.filter((Q)=>!X.includes(Q)).length>0)Z.push({path:"pwa.icons.purpose",message:`PWA icon purpose must be one of: ${X.join(", ")}`,severity:"error"})}if($.pwa.enabled===!0&&!$.pwa.icons?.src)Y.push({path:"pwa.icons.src",message:"PWA is enabled but no icon source specified. Provide a 512x512 PNG for best results.",severity:"warning"});if($.pwa.enabled===!0&&!$.pwa.manifest?.themeColor)Y.push({path:"pwa.manifest.themeColor",message:"PWA theme color not set, defaulting to black",severity:"warning"})}return{valid:Z.length===0,errors:Z,warnings:Y}}var a0,x5=null,jK,O6=null,t0;var u0=D(()=>{b9();v9();d3();f9();g9();k8();m8();hG();j6();$Z();a0={enabled:!0,ssr:!1,partialsDir:"partials",componentsDir:"components",layoutsDir:"layouts",defaultLayout:"default",debug:!1,cache:!0,cachePath:".stx/cache",cacheVersion:"1.0.0",build:{pagesDir:"pages",outputDir:"dist",baseUrl:"/",sitemap:!0,minify:!0,cache:!0,cacheDir:".stx/ssg-cache",concurrency:10,generate404:!0,publicDir:"public",trailingSlash:!1,cleanOutput:!0},customDirectives:[{name:"markdown",handler:i3,hasEndTag:!0,description:"Render markdown content to HTML"},{name:"webcomponent",handler:e8,hasEndTag:!1,description:"Include a web component in the template"},k9,S9,z6,q6,C9,P9,x9,y9,oQ,p3,i2,s2,...gG],middleware:[],i18n:{defaultLocale:"en",locale:"en",translationsDir:"translations",format:"yaml",fallbackToKey:!0,cache:!0},webComponents:{enabled:!1,outputDir:"dist/web-components",components:[]},docs:{enabled:!1,outputDir:"docs",format:"markdown",components:!0,templates:!0,directives:!0},streaming:{enabled:!0,bufferSize:16384,strategy:"auto",timeout:30000},hydration:{enabled:!1,mode:"islands",clientEntry:"src/client.ts",autoMarkers:!0,preload:"lazy"},router:{enabled:!0,container:"#app-content",linkSelector:"a[href]",viewTransitions:!0,scrollToTop:!0,prefetch:!0,cache:!0,cacheTTL:300000,skipSelectors:'[data-no-router], [target="_blank"]',viewTransitionCSS:{oldRoot:"fade-out 0.15s ease-in",newRoot:"fade-in 0.2s ease-out",oldContent:"slide-out 0.2s ease-in",newContent:"slide-in 0.25s ease-out"}},a11y:{enabled:!0,addSrOnlyStyles:!0,level:"AA",autoFix:!1,ignoreChecks:[]},seo:{enabled:!0,socialPreview:!0,defaultConfig:{title:"stx Project",description:"A website built with stx templating engine"}},animation:{enabled:!0,defaultDuration:300,defaultEase:"ease",respectMotionPreferences:!0,staggerDelay:50},markdown:{enabled:!0,syntaxHighlighting:{enabled:!0,serverSide:!0,defaultTheme:"github-dark",highlightUnknownLanguages:!0,additionalThemes:["light-plus","one-dark-pro","dracula","monokai","solarized-light","nord","github-dark"]}},loops:{maxWhileIterations:1000,useAltLoopVariable:!1},story:{enabled:!0,outDir:".stx/dist/story",storyMatch:["**/*.story.stx"],storyIgnored:["**/node_modules/**","**/dist/**","**/.stx/**"],port:6006},pwa:{enabled:!1,manifest:{name:"stx App",shortName:"stx",description:"A Progressive Web App built with stx",startUrl:"/",display:"standalone",orientation:"any",themeColor:"#000000",backgroundColor:"#ffffff",scope:"/"},icons:{src:"public/icon.png",sizes:[72,96,128,144,152,192,384,512],generateWebP:!0,generateAppleIcons:!0,outputDir:"pwa-icons",purpose:["any","maskable"]},routes:[{pattern:"/",strategy:"network-first"},{pattern:"/static/*",strategy:"cache-first",maxAgeSeconds:2592000},{pattern:"/api/*",strategy:"network-only"},{pattern:"*.js",strategy:"stale-while-revalidate"},{pattern:"*.css",strategy:"stale-while-revalidate"},{pattern:"*.png",strategy:"cache-first"},{pattern:"*.jpg",strategy:"cache-first"},{pattern:"*.webp",strategy:"cache-first"},{pattern:"*.svg",strategy:"cache-first"}],offline:{enabled:!0,fallbackTitle:"You are offline",fallbackMessage:"Please check your internet connection and try again.",precacheAssets:[]},serviceWorker:{fileName:"sw.js",cacheVersion:"1.0.0",skipWaiting:!0,clientsClaim:!0,navigationPreload:!1,excludeRoutes:["/api/auth/*"],cacheFileTypes:["html","css","js","png","jpg","jpeg","webp","svg","woff","woff2"],useWorkbox:!1},autoInject:!0,push:{enabled:!1,defaultOptions:{vibrate:[100,50,100],requireInteraction:!1}},backgroundSync:{enabled:!1,queueName:"stx-sync-queue",maxRetentionMinutes:1440,maxRetries:3,minInterval:1000,forms:[],endpoints:[]},shareTarget:{enabled:!1,action:"/share-target",method:"POST",enctype:"multipart/form-data",params:{title:"title",text:"text",url:"url"}},fileHandlers:{enabled:!1},protocolHandlers:[],cacheStorage:{maxSize:100,maxEntries:500,maxAge:30,purgeStrategy:"lru"},updates:{enabled:!0,promptUser:!0,autoReload:!1,message:"A new version is available. Reload to update?"},precache:{enabled:!0,includeHtml:!0,includeJs:!0,includeCss:!0,includeImages:!0,includeFonts:!0,include:[],exclude:["*.map","*.LICENSE.txt"],maxFileSizeKB:500}},media:{enabled:!0,image:{enabled:!0,defaultWidths:[320,480,640,768,1024,1280,1536,1920],defaultFormats:["avif","webp","jpeg"],defaultQuality:80,placeholderStrategy:"thumbhash",lazyByDefault:!0,enableDpr:!0,defaultDpr:[1,2,3],tsImages:{enabled:!0,outputDir:"dist/images",baseUrl:"/images",formatQuality:{jpeg:{quality:85,mozjpeg:!0,progressive:!0},png:{compressionLevel:9,palette:!1},webp:{quality:82,effort:5,smartSubsample:!0},avif:{quality:75,effort:4,lossless:!1}},breakpoints:[320,480,640,768,1024,1280,1536,1920],batchOptions:{concurrency:4,optimizationPreset:"web"}}},video:{enabled:!0,lazyByDefault:!0,defaultControls:!0,tsVideos:{enabled:!0,outputDir:"dist/videos",baseUrl:"/videos",defaultQuality:"high",streaming:{enabled:!0,format:"hls",segmentDuration:6,defaultQualities:[{label:"1080p",width:1920,height:1080,bitrate:5000000,audioBitrate:192000},{label:"720p",width:1280,height:720,bitrate:2500000,audioBitrate:128000},{label:"480p",width:854,height:480,bitrate:1e6,audioBitrate:96000}]},thumbnails:{enabled:!0,count:10,format:"webp",width:320},transcoding:{defaultCodec:"h264",defaultAudioCodec:"aac",speedPreset:"medium"}}},upload:{enabled:!0,maxSize:10485760,allowedTypes:["image/*","video/*","audio/*","application/pdf"],maxConcurrent:3},protected:{enabled:!0,expirationSeconds:3600,batchSize:10},cache:{enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}},broadcasting:{enabled:!1,driver:"bun",host:"0.0.0.0",port:6001,scheme:"ws",verbose:!1}};jK=new Map;t0=new Proxy(a0,{get($,Z){if(x5&&Z in x5)return x5[Z];if(!O6)S0().catch((Y)=>{console.warn("[stx] Failed to load config file:",Y?.message||Y)});return $[Z]}})});var N6={};Q0(N6,{resetCssCache:()=>QF,resetCrosswindCache:()=>GF,rebuildCrosswindCSS:()=>Z7,loadCrosswindConfig:()=>KZ,loadCrosswind:()=>GZ,injectCrosswindCSS:()=>V0,getCachedCSS:()=>KF,generateCrosswindCSS:()=>V6,extractClassNames:()=>F6,buildCrosswindCSS:()=>g5});import FK from"fs";import F0 from"path";async function VK($){try{let Z=await import($);if(Z&&Z.CSSGenerator)return{CSSGenerator:Z.CSSGenerator,config:Z.config,build:Z.build,defaultConfig:Z.defaultConfig}}catch{}return null}function JF(){let $=[],Z=process.env.HOME||process.env.USERPROFILE||"",Y=process.cwd();while(Y!==F0.dirname(Y))$.push(F0.join(Y,"node_modules","@cwcss","crosswind","dist","index.js")),$.push(F0.join(Y,"node_modules","@cwcss","crosswind","src","index.ts")),$.push(F0.join(Y,"node_modules","@stacksjs","crosswind","dist","index.js")),Y=F0.dirname(Y);if(Z){let X=[F0.join(Z,"Code","Tools","crosswind","packages","crosswind","dist","index.js"),F0.join(Z,"Code","Tools","crosswind","packages","crosswind","src","index.ts"),F0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","dist","index.js"),F0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","src","index.ts"),F0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@cwcss","crosswind","dist","index.js"),F0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@stacksjs","crosswind","dist","index.js")];$.push(...X)}return $.push(F0.join(process.cwd(),"..","crosswind","packages","crosswind","dist","index.js")),$.push(F0.join(process.cwd(),"..","crosswind","packages","crosswind","src","index.ts")),$}async function GZ(){if(QZ)return f5;QZ=!0;try{let $=["@cwcss/crosswind","@cwcss/crosswind/dist/index.js","@stacksjs/crosswind","@stacksjs/crosswind/dist/index.js"];for(let Y of $){let X=await VK(Y);if(X)return f5=X,console.log(`${R.green}[Crosswind]${R.reset} CSS engine loaded`),f5}let Z=JF();for(let Y of Z)if(await Bun.file(Y).exists()){let X=await VK(Y);if(X)return f5=X,console.log(`${R.green}[Crosswind]${R.reset} CSS engine loaded from ${F0.dirname(F0.dirname(Y))}`),f5}throw Error("Crosswind CSSGenerator not found in any location")}catch{return console.warn(`${R.yellow}[Crosswind] CSS engine not available, Tailwind styles will not be generated${R.reset}`),console.warn(`${R.yellow}Run 'bun add @stacksjs/crosswind' to enable CSS generation${R.reset}`),null}}function QF(){L6.clear()}function GF(){f5=null,QZ=!1,T1=null,$7="",L6.clear()}async function KZ($){try{let{loadConfigWithResult:Z}=await import("bunfig"),Y=await Z({name:"crosswind",cwd:$,defaultConfig:{},checkEnv:!1,verbose:!1});if(!Y?.path||!Y.config||Object.keys(Y.config).length===0)return null;let X=F0.relative($,Y.path);return console.log(`${R.green}[Crosswind]${R.reset} Loaded config from ${X||Y.path}`),Y.config}catch(Z){if(Z instanceof Error&&Z.name==="ConfigNotFoundError")return null;return console.warn(`${R.yellow}[Crosswind]${R.reset} Failed to load crosswind config:`,Z instanceof Error?Z.message:Z),null}}async function g5($){if(v5)return $7;v5=!0;try{let Z=await GZ();if(!Z||!Z.build)return v5=!1,"";if(!T1)T1=await KZ($);if(!T1)return v5=!1,"";let Y=Z.defaultConfig?.theme||{},X=T1.theme||{},J={...Z.defaultConfig,...T1,theme:{...Y,...X,extend:{...Y.extend||{},...X.extend||{}}}},Q=performance.now(),G=await Z.build(J),K=performance.now()-Q;if($7=G.css,console.log(`${R.cyan}[Crosswind]${R.reset} Built ${G.classes.size} classes in ${K.toFixed(1)}ms`),J.output){let W=F0.isAbsolute(J.output)?J.output:F0.join($,J.output),U=F0.dirname(W);if(!FK.existsSync(U))FK.mkdirSync(U,{recursive:!0});await Bun.write(W,G.css)}return v5=!1,G.css}catch(Z){return console.error(`${R.red}[Crosswind]${R.reset} Build error:`,Z),v5=!1,$7}}async function Z7($){T1=null,await g5($)}function KF(){return $7}function F6($){let Z=new Set,Y=/class\s*=\s*["']([^"']+)["']/gi,X=Y.exec($);while(X!==null){for(let G of X[1].split(/\s+/))if(G.trim())Z.add(G.trim());X=Y.exec($)}let J=/(?:x-class|:class)\s*=\s*"([^"]+)"/gi,Q=J.exec($);while(Q!==null){let G=Q[1].match(/'([^']+)'/g);if(G){for(let K of G)for(let W of K.slice(1,-1).split(/\s+/))if(W.trim())Z.add(W.trim())}Q=J.exec($)}return Z}async function V6($,Z){try{let Y=await GZ();if(!Y)return"";let X=F6($);if(X.size===0)return"";let J=[...X].sort().join(" "),Q=L6.get(J);if(Q!==void 0)return Q;let G=Z?F0.resolve(Z):process.cwd();if(!T1){let V=null;try{let{loadStxConfig:A}=await Promise.resolve().then(() => (u0(),LK)),N=await A(G);if(N.css)if(typeof N.css==="string"){let w=F0.isAbsolute(N.css)?N.css:F0.resolve(G,N.css);if(await Bun.file(w).exists()){let M=await import(w);V=M.default||M,console.log(`${R.green}[Crosswind]${R.reset} Loaded config from stx.config.ts \u2192 ${N.css}`)}}else{if(V={content:N.css.content||[],preflight:N.css.preflight??!0,minify:N.css.minify??!1},N.css.config){let w=F0.isAbsolute(N.css.config)?N.css.config:F0.resolve(G,N.css.config);if(await Bun.file(w).exists()){let M=await import(w);V={...M.default||M,...V}}}console.log(`${R.green}[Crosswind]${R.reset} Using inline CSS config from stx.config.ts`)}}catch{}T1=V||await KZ(G)}let K=Y.defaultConfig||Y.config,W=T1||{},U=K.theme||{},B=(W.theme||{}).extend||{},z={...U};if(Object.keys(B).length>0)z.extend=B;let q=[...K.safelist||[],...W.safelist||[]],j={...K,...W,content:[],output:"",preflight:!0,minify:!1,theme:z,safelist:q},H=new Y.CSSGenerator(j);for(let V of q)H.generate(V);for(let V of X)H.generate(V);let O=H.toCSS(!0,!1),F=j.shortcuts||W.shortcuts||{};for(let[V,A]of Object.entries(F)){if(!X.has(V)&&!q.includes(V))continue;let N=A.split(/\s+/).filter(Boolean);for(let w of N)H.generate(w)}O=H.toCSS(!0,!1);let L=O.split(`
2971
+ </script>`}var t8;var $Z=D(()=>{X1();q0();t8={strategy:"attribute",attributeName:"data-v",preserveOriginal:!0}});var qK={};Q0(qK,{timingPlugin:()=>$F,pluginManager:()=>YZ,definePlugin:()=>P5,debugPlugin:()=>eL,createVariablesPlugin:()=>ZF,createFilterPlugin:()=>tL,createDirectivePlugin:()=>aL,PluginManager:()=>ZZ});function P5($){return $}class ZZ{plugins=new Map;sortedPlugins=[];initialized=!1;async register($,Z){if(this.plugins.has($.name))throw Error(`Plugin "${$.name}" is already registered`);if($.dependencies){for(let Y of $.dependencies)if(!this.plugins.has(Y))throw Error(`Plugin "${$.name}" depends on "${Y}" which is not registered`)}if(this.plugins.set($.name,$),$.onRegister)await $.onRegister(Z);this.sortPlugins()}async unregister($){let Z=this.plugins.get($);if(!Z)return!1;for(let[Y,X]of this.plugins)if(X.dependencies?.includes($))throw Error(`Cannot unregister "${$}" because "${Y}" depends on it`);if(Z.onUnregister)await Z.onUnregister();return this.plugins.delete($),this.sortPlugins(),!0}get($){return this.plugins.get($)}has($){return this.plugins.has($)}getAll(){return[...this.sortedPlugins]}getAllDirectives(){let $=[];for(let Z of this.sortedPlugins)if(Z.registerDirectives)$.push(...Z.registerDirectives());return $}getAllFilters(){let $={};for(let Z of this.sortedPlugins)if(Z.registerFilters)Object.assign($,Z.registerFilters());return $}async runBeforeProcess($){return this.runHooks("beforeProcess",$)}async runAfterParse($){return this.runHooks("afterParse",$)}async runBeforeDirective($,Z){return this.runDirectiveHooks("beforeDirective",$,Z)}async runAfterDirective($,Z){return this.runDirectiveHooks("afterDirective",$,Z)}async runBeforeRender($){return this.runHooks("beforeRender",$)}async runAfterRender($){return this.runHooks("afterRender",$)}async runOnError($){for(let Z of this.sortedPlugins)if(Z.onError)try{let Y=await Z.onError($);if(Y){if(Y.template!==void 0)$.template=Y.template;if(Y.context)$.context={...$.context,...Y.context};if(Y.metadata)$.metadata={...$.metadata,...Y.metadata};if(Y.skip)return $}}catch(Y){console.error(`Error in plugin "${Z.name}" onError hook:`,Y)}return null}sortPlugins(){this.sortedPlugins=Array.from(this.plugins.values()).sort(($,Z)=>($.priority??100)-(Z.priority??100))}async runHooks($,Z){let Y={...Z};for(let X of this.sortedPlugins){let J=X[$];if(J)try{let Q=await J(Y);if(Q){if(Q.template!==void 0)Y.template=Q.template;if(Q.context)Y.context={...Y.context,...Q.context};if(Q.metadata)Y.metadata={...Y.metadata,...Q.metadata};if(Q.skip)break}}catch(Q){console.error(`Error in plugin "${X.name}" ${$} hook:`,Q)}}return Y}async runDirectiveHooks($,Z,Y){let X={...Y};for(let J of this.sortedPlugins){let Q=J[$];if(Q)try{let G=await Q(Z,X);if(G){if(G.template!==void 0)X.template=G.template;if(G.context)X.context={...X.context,...G.context};if(G.metadata)X.metadata={...X.metadata,...G.metadata};if(G.skip)break}}catch(G){console.error(`Error in plugin "${J.name}" ${$} hook:`,G)}}return X}}function aL($,Z,Y={}){return{name:$,...Y,registerDirectives:()=>Z}}function tL($,Z,Y={}){return{name:$,...Y,registerFilters:()=>Z}}function ZF($){return P5({name:"stx-variables",version:"1.0.0",description:"Adds predefined variables to template context",beforeProcess(Z){return{context:{...Z.context,...$}}}})}var YZ,eL,$F;var XZ=D(()=>{YZ=new ZZ;eL=P5({name:"stx-debug",version:"1.0.0",description:"Logs all plugin lifecycle events for debugging",priority:0,beforeProcess($){console.log("[stx-debug] beforeProcess:",$.filePath)},afterParse($){console.log("[stx-debug] afterParse:",$.template.length,"chars")},beforeDirective($,Z){console.log("[stx-debug] beforeDirective:",$)},afterDirective($,Z){console.log("[stx-debug] afterDirective:",$)},beforeRender($){console.log("[stx-debug] beforeRender")},afterRender($){console.log("[stx-debug] afterRender:",$.template.length,"chars")},onError($){console.error("[stx-debug] onError:",$.error.message,"in phase:",$.phase)}}),$F=P5({name:"stx-timing",version:"1.0.0",description:"Measures template processing time",priority:1,beforeProcess($){$.metadata.startTime=performance.now()},afterRender($){let Z=$.metadata.startTime;if(Z){let Y=performance.now()-Z;console.log(`[stx-timing] Processing took ${Y.toFixed(2)}ms`)}}})});var LK={};Q0(LK,{validateConfig:()=>OK,loadStxConfig:()=>S0,defineStxConfig:()=>HK,defaultConfig:()=>a0,config:()=>t0});import JZ from"fs";import i0 from"path";import{loadConfigWithResult as YF}from"bunfig";function XF($,Z){let Y=Z||"pages";if($)return{root:$,pagesDir:Y};let X=i0.join(process.cwd(),"resources","views"),J=i0.join(process.cwd(),"resources","layouts");if(JZ.existsSync(X)&&JZ.existsSync(J))return{root:"resources",pagesDir:"views"};let Q=i0.join(process.cwd(),"resources","views","pages");if(JZ.existsSync(Q))return{root:"resources/views",pagesDir:Y};return{root:".",pagesDir:Y}}async function S0($){if(!$){if(x5)return x5;if(O4)return O4}let Z=$?i0.resolve($):process.cwd(),Y=jK.get(Z);if(Y)return Y;let X=(async()=>{let Q=(await YF({name:"stx",alias:"ui",cwd:Z,defaultConfig:a0,verbose:!1})).config,G=XF(Q.root,Q.pagesDir);if(Q.root=G.root,Q.pagesDir=G.pagesDir,Q.root&&Q.root!=="."){let K=Q.root;if(Q.partialsDir&&!i0.isAbsolute(Q.partialsDir))Q.partialsDir=i0.join(K,Q.partialsDir);if(Q.componentsDir&&!i0.isAbsolute(Q.componentsDir))Q.componentsDir=i0.join(K,Q.componentsDir);if(Q.layoutsDir&&!i0.isAbsolute(Q.layoutsDir))Q.layoutsDir=i0.join(K,Q.layoutsDir)}if(Q.plugins&&Q.plugins.length>0){let{pluginManager:K}=await Promise.resolve().then(() => (XZ(),qK)),W=[],U=[];for(let _ of Q.plugins){let B=typeof _==="string"?_:_[0],z=typeof _==="string"?{}:_[1]||{};try{let q,j;try{q=await import(B),j=i0.dirname(K0.resolve(B))}catch{let O=i0.resolve(process.cwd(),B);q=await import(O),j=i0.dirname(O)}let H=q.default||q;if(K.register(H,Q),H.components){let O=i0.resolve(j,H.components);W.push(O)}if(H.pages){let O=i0.resolve(j,H.pages),F=z.path||"/";U.push({dir:O,prefix:F})}if(H.setup){let O={addDirective:(F)=>{Q.customDirectives=Q.customDirectives||[],Q.customDirectives.push(F)},addRoute:(F,L)=>{Q.apiRoutes=Q.apiRoutes||{},Q.apiRoutes[F]=L},addMiddleware:(F)=>{Q.middleware=Q.middleware||[],Q.middleware.push(F)},pluginDir:j,config:Q};await H.setup(z,O)}console.log(`[stx] Plugin loaded: ${H.name||B}`)}catch(q){console.warn(`[stx] Failed to load plugin ${B}:`,q.message)}}Q._pluginComponentDirs=W,Q._pluginPageDirs=U}return Q})();if(jK.set(Z,X),!$)O4=X,X.then((J)=>{x5=J}).catch(()=>{});return X}function HK($){return $}function OK($){let Z=[],Y=[];if($.partialsDir!==void 0&&typeof $.partialsDir!=="string")Z.push({path:"partialsDir",message:"partialsDir must be a string",severity:"error"});if($.componentsDir!==void 0&&typeof $.componentsDir!=="string")Z.push({path:"componentsDir",message:"componentsDir must be a string",severity:"error"});if($.cache!==void 0&&typeof $.cache!=="boolean")Z.push({path:"cache",message:"cache must be a boolean",severity:"error"});if($.debug!==void 0&&typeof $.debug!=="boolean")Z.push({path:"debug",message:"debug must be a boolean",severity:"error"});if($.streaming){if($.streaming.bufferSize!==void 0){if(typeof $.streaming.bufferSize!=="number"||$.streaming.bufferSize<=0)Z.push({path:"streaming.bufferSize",message:"streaming.bufferSize must be a positive number",severity:"error"})}if($.streaming.timeout!==void 0){if(typeof $.streaming.timeout!=="number"||$.streaming.timeout<=0)Z.push({path:"streaming.timeout",message:"streaming.timeout must be a positive number",severity:"error"})}if($.streaming.strategy!==void 0){let X=["auto","manual","sections"];if(!X.includes($.streaming.strategy))Z.push({path:"streaming.strategy",message:`streaming.strategy must be one of: ${X.join(", ")}`,severity:"error"})}}if($.i18n){if($.i18n.format!==void 0){let X=["json","yaml","yml","js"];if(!X.includes($.i18n.format))Z.push({path:"i18n.format",message:`i18n.format must be one of: ${X.join(", ")}`,severity:"error"})}}if($.animation){if($.animation.defaultDuration!==void 0){if(typeof $.animation.defaultDuration!=="number"||$.animation.defaultDuration<0)Z.push({path:"animation.defaultDuration",message:"animation.defaultDuration must be a non-negative number",severity:"error"})}if($.animation.staggerDelay!==void 0){if(typeof $.animation.staggerDelay!=="number"||$.animation.staggerDelay<0)Z.push({path:"animation.staggerDelay",message:"animation.staggerDelay must be a non-negative number",severity:"error"})}}if($.a11y){if($.a11y.level!==void 0){let X=["AA","AAA"];if(!X.includes($.a11y.level))Z.push({path:"a11y.level",message:`a11y.level must be one of: ${X.join(", ")}`,severity:"error"})}}if($.hydration){if($.hydration.mode!==void 0){let X=["progressive","islands"];if(!X.includes($.hydration.mode))Z.push({path:"hydration.mode",message:`hydration.mode must be one of: ${X.join(", ")}`,severity:"error"})}if($.hydration.preload!==void 0){let X=["none","eager","lazy"];if(!X.includes($.hydration.preload))Z.push({path:"hydration.preload",message:`hydration.preload must be one of: ${X.join(", ")}`,severity:"error"})}}if($.customDirectives)if(!Array.isArray($.customDirectives))Z.push({path:"customDirectives",message:"customDirectives must be an array",severity:"error"});else $.customDirectives.forEach((X,J)=>{if(!X.name||typeof X.name!=="string")Z.push({path:`customDirectives[${J}].name`,message:"Custom directive must have a name string",severity:"error"});if(!X.handler||typeof X.handler!=="function")Z.push({path:`customDirectives[${J}].handler`,message:"Custom directive must have a handler function",severity:"error"})});if($.middleware)if(!Array.isArray($.middleware))Z.push({path:"middleware",message:"middleware must be an array",severity:"error"});else $.middleware.forEach((X,J)=>{if(!X.name||typeof X.name!=="string")Z.push({path:`middleware[${J}].name`,message:"Middleware must have a name string",severity:"error"});if(!X.handler||typeof X.handler!=="function")Z.push({path:`middleware[${J}].handler`,message:"Middleware must have a handler function",severity:"error"});if(!X.timing||!["before","after"].includes(X.timing))Z.push({path:`middleware[${J}].timing`,message:'Middleware timing must be "before" or "after"',severity:"error"})});if($.debug===!0&&$.cache===!0)Y.push({path:"debug+cache",message:"Debug mode with caching enabled may show stale content during development",severity:"warning"});if($.seo?.enabled===!0&&!$.seo?.defaultConfig?.title)Y.push({path:"seo.defaultConfig.title",message:"SEO is enabled but no default title is set",severity:"warning"});if($.pwa){if($.pwa.enabled===!0&&!$.pwa.manifest?.name)Z.push({path:"pwa.manifest.name",message:"PWA manifest name is required when PWA is enabled",severity:"error"});if($.pwa.manifest?.display!==void 0){let X=["fullscreen","standalone","minimal-ui","browser"];if(!X.includes($.pwa.manifest.display))Z.push({path:"pwa.manifest.display",message:`PWA display must be one of: ${X.join(", ")}`,severity:"error"})}if($.pwa.manifest?.orientation!==void 0){let X=["portrait","landscape","any","portrait-primary","portrait-secondary","landscape-primary","landscape-secondary"];if(!X.includes($.pwa.manifest.orientation))Z.push({path:"pwa.manifest.orientation",message:`PWA orientation must be one of: ${X.join(", ")}`,severity:"error"})}if($.pwa.routes){let X=["cache-first","network-first","stale-while-revalidate","network-only","cache-only"];$.pwa.routes.forEach((J,Q)=>{if(!J.pattern||typeof J.pattern!=="string")Z.push({path:`pwa.routes[${Q}].pattern`,message:"PWA route must have a pattern string",severity:"error"});if(!X.includes(J.strategy))Z.push({path:`pwa.routes[${Q}].strategy`,message:`PWA route strategy must be one of: ${X.join(", ")}`,severity:"error"});if(J.maxAgeSeconds!==void 0&&(typeof J.maxAgeSeconds!=="number"||J.maxAgeSeconds<0))Z.push({path:`pwa.routes[${Q}].maxAgeSeconds`,message:"PWA route maxAgeSeconds must be a non-negative number",severity:"error"});if(J.maxEntries!==void 0&&(typeof J.maxEntries!=="number"||J.maxEntries<1))Z.push({path:`pwa.routes[${Q}].maxEntries`,message:"PWA route maxEntries must be a positive number",severity:"error"})})}if($.pwa.icons?.sizes){if(!Array.isArray($.pwa.icons.sizes))Z.push({path:"pwa.icons.sizes",message:"PWA icon sizes must be an array of numbers",severity:"error"});else if($.pwa.icons.sizes.filter((J)=>typeof J!=="number"||J<16||J>1024).length>0)Z.push({path:"pwa.icons.sizes",message:"PWA icon sizes must be numbers between 16 and 1024",severity:"error"})}if($.pwa.icons?.purpose){let X=["any","maskable","monochrome"];if($.pwa.icons.purpose.filter((Q)=>!X.includes(Q)).length>0)Z.push({path:"pwa.icons.purpose",message:`PWA icon purpose must be one of: ${X.join(", ")}`,severity:"error"})}if($.pwa.enabled===!0&&!$.pwa.icons?.src)Y.push({path:"pwa.icons.src",message:"PWA is enabled but no icon source specified. Provide a 512x512 PNG for best results.",severity:"warning"});if($.pwa.enabled===!0&&!$.pwa.manifest?.themeColor)Y.push({path:"pwa.manifest.themeColor",message:"PWA theme color not set, defaulting to black",severity:"warning"})}return{valid:Z.length===0,errors:Z,warnings:Y}}var a0,x5=null,jK,O4=null,t0;var u0=D(()=>{b9();v9();d3();f9();g9();k8();m8();hG();j4();$Z();a0={enabled:!0,ssr:!1,partialsDir:"partials",componentsDir:"components",layoutsDir:"layouts",defaultLayout:"default",debug:!1,cache:!0,cachePath:".stx/cache",cacheVersion:"1.0.0",build:{pagesDir:"pages",outputDir:"dist",baseUrl:"/",sitemap:!0,minify:!0,cache:!0,cacheDir:".stx/ssg-cache",concurrency:10,generate404:!0,publicDir:"public",trailingSlash:!1,cleanOutput:!0},customDirectives:[{name:"markdown",handler:i3,hasEndTag:!0,description:"Render markdown content to HTML"},{name:"webcomponent",handler:e8,hasEndTag:!1,description:"Include a web component in the template"},k9,S9,z4,q4,C9,P9,x9,y9,oQ,p3,i2,s2,...gG],middleware:[],i18n:{defaultLocale:"en",locale:"en",translationsDir:"translations",format:"yaml",fallbackToKey:!0,cache:!0},webComponents:{enabled:!1,outputDir:"dist/web-components",components:[]},docs:{enabled:!1,outputDir:"docs",format:"markdown",components:!0,templates:!0,directives:!0},streaming:{enabled:!0,bufferSize:16384,strategy:"auto",timeout:30000},hydration:{enabled:!1,mode:"islands",clientEntry:"src/client.ts",autoMarkers:!0,preload:"lazy"},router:{enabled:!0,container:"#app-content",linkSelector:"a[href]",viewTransitions:!0,scrollToTop:!0,prefetch:!0,cache:!0,cacheTTL:300000,skipSelectors:'[data-no-router], [target="_blank"]',viewTransitionCSS:{oldRoot:"fade-out 0.15s ease-in",newRoot:"fade-in 0.2s ease-out",oldContent:"slide-out 0.2s ease-in",newContent:"slide-in 0.25s ease-out"}},a11y:{enabled:!0,addSrOnlyStyles:!0,level:"AA",autoFix:!1,ignoreChecks:[]},seo:{enabled:!0,socialPreview:!0,defaultConfig:{title:"stx Project",description:"A website built with stx templating engine"}},animation:{enabled:!0,defaultDuration:300,defaultEase:"ease",respectMotionPreferences:!0,staggerDelay:50},markdown:{enabled:!0,syntaxHighlighting:{enabled:!0,serverSide:!0,defaultTheme:"github-dark",highlightUnknownLanguages:!0,additionalThemes:["light-plus","one-dark-pro","dracula","monokai","solarized-light","nord","github-dark"]}},loops:{maxWhileIterations:1000,useAltLoopVariable:!1},story:{enabled:!0,outDir:".stx/dist/story",storyMatch:["**/*.story.stx"],storyIgnored:["**/node_modules/**","**/dist/**","**/.stx/**"],port:6006},pwa:{enabled:!1,manifest:{name:"stx App",shortName:"stx",description:"A Progressive Web App built with stx",startUrl:"/",display:"standalone",orientation:"any",themeColor:"#000000",backgroundColor:"#ffffff",scope:"/"},icons:{src:"public/icon.png",sizes:[72,96,128,144,152,192,384,512],generateWebP:!0,generateAppleIcons:!0,outputDir:"pwa-icons",purpose:["any","maskable"]},routes:[{pattern:"/",strategy:"network-first"},{pattern:"/static/*",strategy:"cache-first",maxAgeSeconds:2592000},{pattern:"/api/*",strategy:"network-only"},{pattern:"*.js",strategy:"stale-while-revalidate"},{pattern:"*.css",strategy:"stale-while-revalidate"},{pattern:"*.png",strategy:"cache-first"},{pattern:"*.jpg",strategy:"cache-first"},{pattern:"*.webp",strategy:"cache-first"},{pattern:"*.svg",strategy:"cache-first"}],offline:{enabled:!0,fallbackTitle:"You are offline",fallbackMessage:"Please check your internet connection and try again.",precacheAssets:[]},serviceWorker:{fileName:"sw.js",cacheVersion:"1.0.0",skipWaiting:!0,clientsClaim:!0,navigationPreload:!1,excludeRoutes:["/api/auth/*"],cacheFileTypes:["html","css","js","png","jpg","jpeg","webp","svg","woff","woff2"],useWorkbox:!1},autoInject:!0,push:{enabled:!1,defaultOptions:{vibrate:[100,50,100],requireInteraction:!1}},backgroundSync:{enabled:!1,queueName:"stx-sync-queue",maxRetentionMinutes:1440,maxRetries:3,minInterval:1000,forms:[],endpoints:[]},shareTarget:{enabled:!1,action:"/share-target",method:"POST",enctype:"multipart/form-data",params:{title:"title",text:"text",url:"url"}},fileHandlers:{enabled:!1},protocolHandlers:[],cacheStorage:{maxSize:100,maxEntries:500,maxAge:30,purgeStrategy:"lru"},updates:{enabled:!0,promptUser:!0,autoReload:!1,message:"A new version is available. Reload to update?"},precache:{enabled:!0,includeHtml:!0,includeJs:!0,includeCss:!0,includeImages:!0,includeFonts:!0,include:[],exclude:["*.map","*.LICENSE.txt"],maxFileSizeKB:500}},media:{enabled:!0,image:{enabled:!0,defaultWidths:[320,480,640,768,1024,1280,1536,1920],defaultFormats:["avif","webp","jpeg"],defaultQuality:80,placeholderStrategy:"thumbhash",lazyByDefault:!0,enableDpr:!0,defaultDpr:[1,2,3],tsImages:{enabled:!0,outputDir:"dist/images",baseUrl:"/images",formatQuality:{jpeg:{quality:85,mozjpeg:!0,progressive:!0},png:{compressionLevel:9,palette:!1},webp:{quality:82,effort:5,smartSubsample:!0},avif:{quality:75,effort:4,lossless:!1}},breakpoints:[320,480,640,768,1024,1280,1536,1920],batchOptions:{concurrency:4,optimizationPreset:"web"}}},video:{enabled:!0,lazyByDefault:!0,defaultControls:!0,tsVideos:{enabled:!0,outputDir:"dist/videos",baseUrl:"/videos",defaultQuality:"high",streaming:{enabled:!0,format:"hls",segmentDuration:6,defaultQualities:[{label:"1080p",width:1920,height:1080,bitrate:5000000,audioBitrate:192000},{label:"720p",width:1280,height:720,bitrate:2500000,audioBitrate:128000},{label:"480p",width:854,height:480,bitrate:1e6,audioBitrate:96000}]},thumbnails:{enabled:!0,count:10,format:"webp",width:320},transcoding:{defaultCodec:"h264",defaultAudioCodec:"aac",speedPreset:"medium"}}},upload:{enabled:!0,maxSize:10485760,allowedTypes:["image/*","video/*","audio/*","application/pdf"],maxConcurrent:3},protected:{enabled:!0,expirationSeconds:3600,batchSize:10},cache:{enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}},broadcasting:{enabled:!1,driver:"bun",host:"0.0.0.0",port:6001,scheme:"ws",verbose:!1}};jK=new Map;t0=new Proxy(a0,{get($,Z){if(x5&&Z in x5)return x5[Z];if(!O4)S0().catch((Y)=>{console.warn("[stx] Failed to load config file:",Y?.message||Y)});return $[Z]}})});var N4={};Q0(N4,{resetCssCache:()=>QF,resetCrosswindCache:()=>GF,rebuildCrosswindCSS:()=>Z7,loadCrosswindConfig:()=>KZ,loadCrosswind:()=>GZ,injectCrosswindCSS:()=>V0,getCachedCSS:()=>KF,generateCrosswindCSS:()=>V4,extractClassNames:()=>F4,buildCrosswindCSS:()=>g5});import FK from"fs";import F0 from"path";async function VK($){try{let Z=await import($);if(Z&&Z.CSSGenerator)return{CSSGenerator:Z.CSSGenerator,config:Z.config,build:Z.build,defaultConfig:Z.defaultConfig}}catch{}return null}function JF(){let $=[],Z=process.env.HOME||process.env.USERPROFILE||"",Y=process.cwd();while(Y!==F0.dirname(Y))$.push(F0.join(Y,"node_modules","@cwcss","crosswind","dist","index.js")),$.push(F0.join(Y,"node_modules","@cwcss","crosswind","src","index.ts")),$.push(F0.join(Y,"node_modules","@stacksjs","crosswind","dist","index.js")),Y=F0.dirname(Y);if(Z){let X=[F0.join(Z,"Code","Tools","crosswind","packages","crosswind","dist","index.js"),F0.join(Z,"Code","Tools","crosswind","packages","crosswind","src","index.ts"),F0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","dist","index.js"),F0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","src","index.ts"),F0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@cwcss","crosswind","dist","index.js"),F0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@stacksjs","crosswind","dist","index.js")];$.push(...X)}return $.push(F0.join(process.cwd(),"..","crosswind","packages","crosswind","dist","index.js")),$.push(F0.join(process.cwd(),"..","crosswind","packages","crosswind","src","index.ts")),$}async function GZ(){if(QZ)return f5;QZ=!0;try{let $=["@cwcss/crosswind","@cwcss/crosswind/dist/index.js","@stacksjs/crosswind","@stacksjs/crosswind/dist/index.js"];for(let Y of $){let X=await VK(Y);if(X)return f5=X,console.log(`${R.green}[Crosswind]${R.reset} CSS engine loaded`),f5}let Z=JF();for(let Y of Z)if(await Bun.file(Y).exists()){let X=await VK(Y);if(X)return f5=X,console.log(`${R.green}[Crosswind]${R.reset} CSS engine loaded from ${F0.dirname(F0.dirname(Y))}`),f5}throw Error("Crosswind CSSGenerator not found in any location")}catch{return console.warn(`${R.yellow}[Crosswind] CSS engine not available, Tailwind styles will not be generated${R.reset}`),console.warn(`${R.yellow}Run 'bun add @stacksjs/crosswind' to enable CSS generation${R.reset}`),null}}function QF(){L4.clear()}function GF(){f5=null,QZ=!1,T1=null,$7="",L4.clear()}async function KZ($){try{let{loadConfigWithResult:Z}=await import("bunfig"),Y=await Z({name:"crosswind",cwd:$,defaultConfig:{},checkEnv:!1,verbose:!1});if(!Y?.path||!Y.config||Object.keys(Y.config).length===0)return null;let X=F0.relative($,Y.path);return console.log(`${R.green}[Crosswind]${R.reset} Loaded config from ${X||Y.path}`),Y.config}catch(Z){if(Z instanceof Error&&Z.name==="ConfigNotFoundError")return null;return console.warn(`${R.yellow}[Crosswind]${R.reset} Failed to load crosswind config:`,Z instanceof Error?Z.message:Z),null}}async function g5($){if(v5)return $7;v5=!0;try{let Z=await GZ();if(!Z||!Z.build)return v5=!1,"";if(!T1)T1=await KZ($);if(!T1)return v5=!1,"";let Y=Z.defaultConfig?.theme||{},X=T1.theme||{},J={...Z.defaultConfig,...T1,theme:{...Y,...X,extend:{...Y.extend||{},...X.extend||{}}}},Q=performance.now(),G=await Z.build(J),K=performance.now()-Q;if($7=G.css,console.log(`${R.cyan}[Crosswind]${R.reset} Built ${G.classes.size} classes in ${K.toFixed(1)}ms`),J.output){let W=F0.isAbsolute(J.output)?J.output:F0.join($,J.output),U=F0.dirname(W);if(!FK.existsSync(U))FK.mkdirSync(U,{recursive:!0});await Bun.write(W,G.css)}return v5=!1,G.css}catch(Z){return console.error(`${R.red}[Crosswind]${R.reset} Build error:`,Z),v5=!1,$7}}async function Z7($){T1=null,await g5($)}function KF(){return $7}function F4($){let Z=new Set,Y=/class\s*=\s*["']([^"']+)["']/gi,X=Y.exec($);while(X!==null){for(let G of X[1].split(/\s+/))if(G.trim())Z.add(G.trim());X=Y.exec($)}let J=/(?:x-class|:class)\s*=\s*"([^"]+)"/gi,Q=J.exec($);while(Q!==null){let G=Q[1].match(/'([^']+)'/g);if(G){for(let K of G)for(let W of K.slice(1,-1).split(/\s+/))if(W.trim())Z.add(W.trim())}Q=J.exec($)}return Z}async function V4($,Z){try{let Y=await GZ();if(!Y)return"";let X=F4($);if(X.size===0)return"";let J=[...X].sort().join(" "),Q=L4.get(J);if(Q!==void 0)return Q;let G=Z?F0.resolve(Z):process.cwd();if(!T1){let V=null;try{let{loadStxConfig:A}=await Promise.resolve().then(() => (u0(),LK)),N=await A(G);if(N.css)if(typeof N.css==="string"){let w=F0.isAbsolute(N.css)?N.css:F0.resolve(G,N.css);if(await Bun.file(w).exists()){let M=await import(w);V=M.default||M,console.log(`${R.green}[Crosswind]${R.reset} Loaded config from stx.config.ts \u2192 ${N.css}`)}}else{if(V={content:N.css.content||[],preflight:N.css.preflight??!0,minify:N.css.minify??!1},N.css.config){let w=F0.isAbsolute(N.css.config)?N.css.config:F0.resolve(G,N.css.config);if(await Bun.file(w).exists()){let M=await import(w);V={...M.default||M,...V}}}console.log(`${R.green}[Crosswind]${R.reset} Using inline CSS config from stx.config.ts`)}}catch{}T1=V||await KZ(G)}let K=Y.defaultConfig||Y.config,W=T1||{},U=K.theme||{},B=(W.theme||{}).extend||{},z={...U};if(Object.keys(B).length>0)z.extend=B;let q=[...K.safelist||[],...W.safelist||[]],j={...K,...W,content:[],output:"",preflight:!0,minify:!1,theme:z,safelist:q},H=new Y.CSSGenerator(j);for(let V of q)H.generate(V);for(let V of X)H.generate(V);let O=H.toCSS(!0,!1),F=j.shortcuts||W.shortcuts||{};for(let[V,A]of Object.entries(F)){if(!X.has(V)&&!q.includes(V))continue;let N=A.split(/\s+/).filter(Boolean);for(let w of N)H.generate(w)}O=H.toCSS(!0,!1);let L=O.split(`
2972
2972
  `);for(let[V,A]of Object.entries(F)){if(!X.has(V)&&!q.includes(V))continue;let N=A.split(/\s+/).filter(Boolean),w=[],M=[];for(let T of N){let I=T.startsWith("dark:"),k=`.${(I?T.slice(5):T).replace(/\//g,"\\/").replace(/:/g,"\\:").replace(/\./g,"\\.").replace(/\[/g,"\\[").replace(/\]/g,"\\]").replace(/%/g,"\\%")}`;for(let b=0;b<L.length;b++){let P=L[b].trim();if(P===`${k} {`||P.startsWith(`${k} {`)){let x=b,C="";while(x<L.length){if(C+=L[x],L[x].includes("}"))break;x++}let f=C.match(/\{([^}]+)\}/);if(f)if(I)M.push(f[1].trim());else w.push(f[1].trim());break}}}if(w.length)O+=`
2973
2973
  .${V} { ${w.join(" ")} }`;if(M.length)O+=`
2974
- @media (prefers-color-scheme: dark) { .dark .${V} { ${M.join(" ")} } }`}return L6.set(J,O),O}catch(Y){return console.warn("Failed to generate Crosswind CSS:",Y),""}}async function V0($,Z){if($.includes('data-crosswind="generated"'))return $;let Y=await V6($,Z);if(!Y)return $;let X=`<style data-crosswind="generated">
2974
+ @media (prefers-color-scheme: dark) { .dark .${V} { ${M.join(" ")} } }`}return L4.set(J,O),O}catch(Y){return console.warn("Failed to generate Crosswind CSS:",Y),""}}async function V0($,Z){if($.includes('data-crosswind="generated"'))return $;let Y=await V4($,Z);if(!Y)return $;let X=`<style data-crosswind="generated">
2975
2975
  ${Y}
2976
2976
  </style>`;if($.includes("</head>"))return $.replace("</head>",`${X}
2977
2977
  </head>`);if($.includes("<body"))return $.replace(/<body([^>]*)>/,`<body$1>
2978
- ${X}`);return X+$}var f5=null,QZ=!1,T1=null,$7="",v5=!1,L6;var E1=D(()=>{x2();L6=new Map});function NK(){return`
2978
+ ${X}`);return X+$}var f5=null,QZ=!1,T1=null,$7="",v5=!1,L4;var E1=D(()=>{x2();L4=new Map});function NK(){return`
2979
2979
  // STX Lifecycle Runtime
2980
2980
  (function() {
2981
2981
  if (typeof window === 'undefined') return;
@@ -3320,7 +3320,7 @@ else {
3320
3320
 
3321
3321
  console.log('[stx] Lifecycle runtime initialized');
3322
3322
  })();
3323
- `}function WZ($){return Symbol($)}var qS,jS,HS;var AK=D(()=>{qS=WZ("theme"),jS=WZ("router"),HS=WZ("i18n")});import*as RK from"crypto";function wK($){let Z=/\$(\w+)\./g,Y=[],X;while((X=Z.exec($))!==null)if(!Y.includes(X[1]))Y.push(X[1]);return Y}function WF(){return`stx-${RK.randomBytes(4).toString("hex")}`}function UF($){return/\$\w+\./.test($)}function MK($){let Z=[],Y=new Set,X=/<(\w+)([^>]*?)(\s*\/?>)/g,J=$;return J=J.replace(X,(Q,G,K,W)=>{if(["script","style","template"].includes(G.toLowerCase()))return Q;let U=[],_=!1,B=K,z=/(\w+(?:-\w+)*)\s*=\s*"([^"]*\{\{[^}]*\$\w+[^}]*\}\}[^"]*)"/g,q=[...K.matchAll(z)];for(let O of q){let F=O[0],L=O[1],V=O[2];if(UF(V)){_=!0;let A=V.match(/\{\{\s*([\s\S]+?)\s*\}\}/);if(A){let N=A[1];if(U.push({attr:L,expr:N,fullMatch:F,originalAttr:L}),wK(N).forEach((M)=>Y.add(M)),L==="text")B=B.replace(F,"");else if(L==="class")B=B.replace(F,'class=""');else if(L==="disabled"||L==="hidden")B=B.replace(F,"");else B=B.replace(F,`${L}=""`)}}}if(!_)return Q;let j=B.match(/\bid\s*=\s*"([^"]+)"/),H;if(j)H=j[1];else H=WF(),B=` id="${H}"${B}`;for(let O of U)Z.push({elementId:H,attribute:O.attr,expression:O.expr,stores:wK(O.expr)});return`<${G}${B}${W}`}),{html:J,bindings:Z,stores:Y}}function TK($,Z){if($.length===0)return"";let Y=Array.from(Z),X=`
3323
+ `}function WZ($){return Symbol($)}var jS,HS,OS;var AK=D(()=>{jS=WZ("theme"),HS=WZ("router"),OS=WZ("i18n")});import*as RK from"crypto";function wK($){let Z=/\$(\w+)\./g,Y=[],X;while((X=Z.exec($))!==null)if(!Y.includes(X[1]))Y.push(X[1]);return Y}function WF(){return`stx-${RK.randomBytes(4).toString("hex")}`}function UF($){return/\$\w+\./.test($)}function MK($){let Z=[],Y=new Set,X=/<(\w+)([^>]*?)(\s*\/?>)/g,J=$;return J=J.replace(X,(Q,G,K,W)=>{if(["script","style","template"].includes(G.toLowerCase()))return Q;let U=[],_=!1,B=K,z=/(\w+(?:-\w+)*)\s*=\s*"([^"]*\{\{[^}]*\$\w+[^}]*\}\}[^"]*)"/g,q=[...K.matchAll(z)];for(let O of q){let F=O[0],L=O[1],V=O[2];if(UF(V)){_=!0;let A=V.match(/\{\{\s*([\s\S]+?)\s*\}\}/);if(A){let N=A[1];if(U.push({attr:L,expr:N,fullMatch:F,originalAttr:L}),wK(N).forEach((M)=>Y.add(M)),L==="text")B=B.replace(F,"");else if(L==="class")B=B.replace(F,'class=""');else if(L==="disabled"||L==="hidden")B=B.replace(F,"");else B=B.replace(F,`${L}=""`)}}}if(!_)return Q;let j=B.match(/\bid\s*=\s*"([^"]+)"/),H;if(j)H=j[1];else H=WF(),B=` id="${H}"${B}`;for(let O of U)Z.push({elementId:H,attribute:O.attr,expression:O.expr,stores:wK(O.expr)});return`<${G}${B}${W}`}),{html:J,bindings:Z,stores:Y}}function TK($,Z){if($.length===0)return"";let Y=Array.from(Z),X=`
3324
3324
  <script>
3325
3325
  (function() {
3326
3326
  'use strict';
@@ -3589,7 +3589,7 @@ else {
3589
3589
  `)}
3590
3590
  })();
3591
3591
  </script>`}function bK($){let Z=SK($);if(Z.length===0)return{template:$,bindings:[]};let Y=$,X=[];for(let J=Z.length-1;J>=0;J--){let Q=Z[J],G=Q.originalTag;if(!G.includes(" id="))G=G.replace(/^<([a-z][a-z0-9-]*)/,`<$1 id="${Q.elementId}"`);else{let K=G.match(/id=["']([^"']+)["']/);if(K)for(let W of Q.events)W.elementId=K[1]}for(let K of Q.events){let W=K.attribute.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),U=new RegExp(`\\s*${W}\\s*=\\s*"[^"]*"`,"g"),_=new RegExp(`\\s*${W}\\s*=\\s*'[^']*'`,"g");G=G.replace(U,""),G=G.replace(_,"")}Y=Y.slice(0,Q.startIndex)+G+Y.slice(Q.endIndex),X.push(...Q.events)}return{template:Y,bindings:X}}function jZ($,Z,Y){if(/\b(?:state|derived|effect)\s*\(/.test($)||/@(?:model|show|for|if)\s*=/.test($)||/data-stx(?:-auto)?(?![-\w])/.test($))return $;if(Z.__stx_sfc_mode){if(/x-data\s*=\s*["']/.test($))return $;let{template:W,bindings:U}=bK($),_=Z.__stx_event_bindings||[];return Z.__stx_event_bindings=[..._,...U],W}let J=SK($);if(J.length===0)return $;let Q=$;for(let W=J.length-1;W>=0;W--){let U=J[W],_=U.originalTag;if(!_.includes(" id="))_=_.replace(/^<([a-z][a-z0-9-]*)/,`<$1 id="${U.elementId}"`);else{let B=_.match(/id=["']([^"']+)["']/);if(B)for(let z of U.events)z.elementId=B[1]}for(let B of U.events){let z=B.attribute.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),q=new RegExp(`\\s*${z}\\s*=\\s*"[^"]*"`,"g"),j=new RegExp(`\\s*${z}\\s*=\\s*'[^']*'`,"g");_=_.replace(q,""),_=_.replace(j,"")}Q=Q.slice(0,U.startIndex)+_+Q.slice(U.endIndex)}let G=NF(J),K=Q.lastIndexOf("</body>");if(K!==-1)Q=Q.slice(0,K)+G+`
3592
- `+Q.slice(K);else Q+=G;return Q}function AF($){return/@[a-z]+(?:\.[a-z]+)*\s*=\s*["'][^"']*["']/i.test($)}var EK,IK,OF,kK;var HZ=D(()=>{EK=new Set(["click","dblclick","mousedown","mouseup","mousemove","mouseenter","mouseleave","mouseover","mouseout","contextmenu","wheel","keydown","keyup","keypress","submit","reset","change","input","focus","blur","focusin","focusout","select","invalid","touchstart","touchend","touchmove","touchcancel","drag","dragstart","dragend","dragenter","dragleave","dragover","drop","scroll","resize","load","error","abort","animationstart","animationend","animationiteration","transitionstart","transitionend","transitionrun","transitioncancel","mounted","unmounted"]),IK={enter:"Enter",tab:"Tab",delete:"Delete",backspace:"Backspace",esc:"Escape",escape:"Escape",space:" ",up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight",home:"Home",end:"End",pageup:"PageUp",pagedown:"PageDown"},OF=new Set(["ctrl","alt","shift","meta"]),kK={left:0,middle:1,right:2}});function A6($){return $.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function CK($,Z){let Y=$.match(new RegExp(`${Z}\\s*=\\s*"([^"]*)"`,"i"));if(Y)return Y[1];let X=$.match(new RegExp(`${Z}\\s*=\\s*'([^']*)'`,"i"));if(X)return X[1];return null}function RF($){let Z=[],Y=/<([a-z][a-z0-9-]*)\s+([^>]*x-data\s*=\s*(?:"[^"]*"|'[^']*')[^>]*)>/gi,X;while((X=Y.exec($))!==null){let[J,Q,G]=X,K=X.index,W=CK(G,"x-data");if(!W)continue;let U=`__stx_scope_${yK++}`,_=CK(G,"x-init"),B=MF($,Q,K+J.length),z=$.slice(K,B.endIndex),q=TF(z);Z.push({id:U,selector:`[data-stx-scope="${U}"]`,stateExpr:W,initExpr:_,bindings:[],refs:q})}return Z}function MF($,Z,Y){let X=1,J=Y,Q=new RegExp(`<${Z}(?:\\s|>)`,"gi"),G=new RegExp(`</${Z}>`,"gi"),K=new RegExp(`<${Z}[^>]*/\\s*>`,"gi");while(X>0&&J<$.length){Q.lastIndex=J,G.lastIndex=J,K.lastIndex=J;let W=Q.exec($),U=G.exec($),_=K.exec($);if(_&&_.index<(W?.index??1/0)){J=_.index+_[0].length;continue}if(!U)return{endIndex:$.length};if(W&&W.index<U.index)X++,J=W.index+W[0].length;else{if(X--,X===0)return{endIndex:U.index+U[0].length};J=U.index+U[0].length}}return{endIndex:$.length}}function TF($){let Z=new Map,Y=$.replace(/x-data\s*=\s*"[^"]*"/gi,'x-data="__stripped__"').replace(/x-data\s*=\s*'[^']*'/gi,"x-data='__stripped__'"),X=/<[a-z][a-z0-9-]*\s+([^>]*x-ref\s*=\s*["']([^"']*)["'][^>]*)>/gi,J;while((J=X.exec(Y))!==null){let[,Q,G]=J,K=EF(Q);Z.set(G,K)}return Z}function EF($){let Z=$.match(/\bid\s*=\s*["']([^"']*)["']/);if(Z)return Z[1];return`__stx_el_${wF++}`}function IF(){return`
3592
+ `+Q.slice(K);else Q+=G;return Q}function AF($){return/@[a-z]+(?:\.[a-z]+)*\s*=\s*["'][^"']*["']/i.test($)}var EK,IK,OF,kK;var HZ=D(()=>{EK=new Set(["click","dblclick","mousedown","mouseup","mousemove","mouseenter","mouseleave","mouseover","mouseout","contextmenu","wheel","keydown","keyup","keypress","submit","reset","change","input","focus","blur","focusin","focusout","select","invalid","touchstart","touchend","touchmove","touchcancel","drag","dragstart","dragend","dragenter","dragleave","dragover","drop","scroll","resize","load","error","abort","animationstart","animationend","animationiteration","transitionstart","transitionend","transitionrun","transitioncancel","mounted","unmounted"]),IK={enter:"Enter",tab:"Tab",delete:"Delete",backspace:"Backspace",esc:"Escape",escape:"Escape",space:" ",up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight",home:"Home",end:"End",pageup:"PageUp",pagedown:"PageDown"},OF=new Set(["ctrl","alt","shift","meta"]),kK={left:0,middle:1,right:2}});function A4($){return $.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function CK($,Z){let Y=$.match(new RegExp(`${Z}\\s*=\\s*"([^"]*)"`,"i"));if(Y)return Y[1];let X=$.match(new RegExp(`${Z}\\s*=\\s*'([^']*)'`,"i"));if(X)return X[1];return null}function RF($){let Z=[],Y=/<([a-z][a-z0-9-]*)\s+([^>]*x-data\s*=\s*(?:"[^"]*"|'[^']*')[^>]*)>/gi,X;while((X=Y.exec($))!==null){let[J,Q,G]=X,K=X.index,W=CK(G,"x-data");if(!W)continue;let U=`__stx_scope_${yK++}`,_=CK(G,"x-init"),B=MF($,Q,K+J.length),z=$.slice(K,B.endIndex),q=TF(z);Z.push({id:U,selector:`[data-stx-scope="${U}"]`,stateExpr:W,initExpr:_,bindings:[],refs:q})}return Z}function MF($,Z,Y){let X=1,J=Y,Q=new RegExp(`<${Z}(?:\\s|>)`,"gi"),G=new RegExp(`</${Z}>`,"gi"),K=new RegExp(`<${Z}[^>]*/\\s*>`,"gi");while(X>0&&J<$.length){Q.lastIndex=J,G.lastIndex=J,K.lastIndex=J;let W=Q.exec($),U=G.exec($),_=K.exec($);if(_&&_.index<(W?.index??1/0)){J=_.index+_[0].length;continue}if(!U)return{endIndex:$.length};if(W&&W.index<U.index)X++,J=W.index+W[0].length;else{if(X--,X===0)return{endIndex:U.index+U[0].length};J=U.index+U[0].length}}return{endIndex:$.length}}function TF($){let Z=new Map,Y=$.replace(/x-data\s*=\s*"[^"]*"/gi,'x-data="__stripped__"').replace(/x-data\s*=\s*'[^']*'/gi,"x-data='__stripped__'"),X=/<[a-z][a-z0-9-]*\s+([^>]*x-ref\s*=\s*["']([^"']*)["'][^>]*)>/gi,J;while((J=X.exec(Y))!==null){let[,Q,G]=J,K=EF(Q);Z.set(G,K)}return Z}function EF($){let Z=$.match(/\bid\s*=\s*["']([^"']*)["']/);if(Z)return Z[1];return`__stx_el_${wF++}`}function IF(){return`
3593
3593
  // STX Reactive Runtime - x-cloak and transition CSS
3594
3594
  (function() {
3595
3595
  var style = document.createElement('style');
@@ -3805,14 +3805,14 @@ window.__stx_reactive = (function() {
3805
3805
  ${IF()}
3806
3806
  ${Z}
3807
3807
  </script>`}function PK($,Z,Y){if(yK=0,!SF($))return $;let X=RF($);if(X.length===0)return $;let J=kF($,X),Q=DF(X),G=J.lastIndexOf("</body>");if(G!==-1)J=J.slice(0,G)+Q+`
3808
- `+J.slice(G);else J+=Q;return J}function kF($,Z){let Y=$;for(let X of Z){let Q=new RegExp(`<[a-z][a-z0-9-]*\\s+[^>]*data-stx-scope="([^"]*)"[^>]*x-data\\s*=\\s*["']${A6(X.stateExpr)}["']`,"gi").exec(Y);if(Q)X.id=Q[1],X.selector=`[data-stx-scope="${X.id}"]`;else{let K=new RegExp(`<[a-z][a-z0-9-]*\\s+[^>]*x-data\\s*=\\s*["']${A6(X.stateExpr)}["'][^>]*data-stx-scope="([^"]*)"`,"gi").exec(Y);if(K)X.id=K[1],X.selector=`[data-stx-scope="${X.id}"]`;else Y=Y.replace(new RegExp(`(<[a-z][a-z0-9-]*\\s+)([^>]*)(x-data\\s*=\\s*"${A6(X.stateExpr)}")([^>]*>)`,"gi"),`$1data-stx-scope="${X.id}" $2$3$4`),Y=Y.replace(new RegExp(`(<[a-z][a-z0-9-]*\\s+)([^>]*)(x-data\\s*=\\s*'${A6(X.stateExpr)}')([^>]*>)`,"gi"),`$1data-stx-scope="${X.id}" $2$3$4`)}}return Y=Y.replace(/\s*x-data\s*=\s*"([^"]*)"/g,' data-stx-xdata="$1"'),Y=Y.replace(/\s*x-data\s*=\s*'([^']*)'/g," data-stx-xdata='$1'"),Y=Y.replace(/\s*x-init\s*=\s*"[^"]*"/g,""),Y=Y.replace(/\s*x-init\s*=\s*'[^']*'/g,""),Y}function SF($){return/x-data\s*=\s*["']/.test($)}var yK=0,wF=0;import bF from"fs";import OZ from"path";import{createHighlighter as CF}from"ts-syntax-highlighter";async function p1($,Z={}){try{if(!await t($))throw Error(`Markdown file not found: ${$}`);let X=(await bF.promises.stat($)).mtime.getTime();if(Z.cache&&R6.has($)){let B=R6.get($);if(B.updatedAt>=X)return{content:B.content,data:B.data}}let J=await Bun.file($).text(),{data:Q,content:G}=eQ(J),K=Z.markdown||t0.markdown||{enabled:!0,syntaxHighlighting:{enabled:!0,serverSide:!0,defaultTheme:"github-dark",highlightUnknownLanguages:!0}},U=v2(G,{gfm:!0});if(K.syntaxHighlighting?.enabled&&K.syntaxHighlighting?.serverSide)U=await yF(U,K.syntaxHighlighting?.defaultTheme||"github-dark",K.syntaxHighlighting?.highlightUnknownLanguages||!1);let _={content:U,data:Q||{}};if(Z.cache)R6.set($,{..._,updatedAt:X});return _}catch(Y){if(Z.debug)console.error(`Error reading/parsing markdown file ${$}:`,Y);let X=Y instanceof Error?Y.message:String(Y);return{content:B0("Markdown File",`Error reading/parsing markdown file: ${X}`,$,"",0,""),data:{}}}}async function yF($,Z,Y){let X=/<pre><code( class="language-([^"]+)")?>([^<]+)<\/code><\/pre>/g;if(!w6)try{w6=await CF({theme:Z||"github-dark",cache:!0})}catch(K){return console.error("Failed to initialize ts-syntax-highlighter:",K),$}let J=async(K,W,U,_)=>{let B=_.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&").replace(/&quot;/g,'"').replace(/&#39;/g,"'"),z=U||(Y?"text":"");if(!z)return K;try{if(!w6.getSupportedLanguages().includes(z))return K;return(await w6.highlight(B,z,{theme:Z})).html}catch(q){console.error(`Error highlighting code block with language ${U}:`,q)}return K},Q=$,G=$.matchAll(X);for(let K of G){let[W,U,_,B]=K,z=await J(W,U,_,B);Q=Q.replace(W,z)}return Q}async function LZ($,Z,Y="",X={}){return await PF($,/@markdown-file\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\}))?\)/g,async(G,K,W,U)=>{try{let _=K;if(!OZ.isAbsolute(K))_=OZ.resolve(OZ.dirname(Y),K);let B={};if(W)try{try{B=JSON.parse(W)}catch{if(X.debug)console.warn("Using safer alternative for parsing JS object literal");let L=W.replace(/^\s*\{|\}\s*$/g,"").trim().split(/,(?=\s*\w+\s*:)/);for(let V of L){let A=V.indexOf(":");if(A>0){let N=V.substring(0,A).trim(),w=V.substring(A+1).trim(),M=w.startsWith('"')&&w.endsWith('"'),T=w.startsWith("'")&&w.endsWith("'");if(M||T)w=w.substring(1,w.length-1);B[N]=w}}}}catch(F){if(X.debug)console.error("Error parsing context in @markdown-file directive:",F)}let{content:z,data:q}=await p1(_,X),j={...Z,...q,...B},H=z,O=/\{\{([^}]+)\}\}/g;return H=H.replace(O,(F,L)=>{let V=L.trim();return j[V]!==void 0?String(j[V]):F}),H}catch(_){let B=_ instanceof Error?_.message:String(_);return B0("Markdown File",`Error including markdown file: ${B}`,Y,$,U,G)}})}async function PF($,Z,Y){let X=[],J;while((J=Z.exec($))!==null){let K=J[0],W=J.index,U=J;X.push(Y(...U).then((_)=>({match:K,replacement:_,index:W})))}let Q=await Promise.all(X);Q.sort((K,W)=>W.index-K.index);let G=$;for(let{match:K,replacement:W}of Q)G=G.replace(K,()=>W);return G}var R6,w6=null;var h5=D(()=>{u0();q0();R6=new Map});function c1($,Z){try{let Y=$.trim();if(_0(Y))return j0(Y,Object.keys(Z))(...Object.values(Z));else return L0(Y,Z)}catch{return!1}}var FZ=D(()=>{h0()});class Y7{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]!==`
3808
+ `+J.slice(G);else J+=Q;return J}function kF($,Z){let Y=$;for(let X of Z){let Q=new RegExp(`<[a-z][a-z0-9-]*\\s+[^>]*data-stx-scope="([^"]*)"[^>]*x-data\\s*=\\s*["']${A4(X.stateExpr)}["']`,"gi").exec(Y);if(Q)X.id=Q[1],X.selector=`[data-stx-scope="${X.id}"]`;else{let K=new RegExp(`<[a-z][a-z0-9-]*\\s+[^>]*x-data\\s*=\\s*["']${A4(X.stateExpr)}["'][^>]*data-stx-scope="([^"]*)"`,"gi").exec(Y);if(K)X.id=K[1],X.selector=`[data-stx-scope="${X.id}"]`;else Y=Y.replace(new RegExp(`(<[a-z][a-z0-9-]*\\s+)([^>]*)(x-data\\s*=\\s*"${A4(X.stateExpr)}")([^>]*>)`,"gi"),`$1data-stx-scope="${X.id}" $2$3$4`),Y=Y.replace(new RegExp(`(<[a-z][a-z0-9-]*\\s+)([^>]*)(x-data\\s*=\\s*'${A4(X.stateExpr)}')([^>]*>)`,"gi"),`$1data-stx-scope="${X.id}" $2$3$4`)}}return Y=Y.replace(/\s*x-data\s*=\s*"([^"]*)"/g,' data-stx-xdata="$1"'),Y=Y.replace(/\s*x-data\s*=\s*'([^']*)'/g," data-stx-xdata='$1'"),Y=Y.replace(/\s*x-init\s*=\s*"[^"]*"/g,""),Y=Y.replace(/\s*x-init\s*=\s*'[^']*'/g,""),Y}function SF($){return/x-data\s*=\s*["']/.test($)}var yK=0,wF=0;import bF from"fs";import OZ from"path";import{createHighlighter as CF}from"ts-syntax-highlighter";async function p1($,Z={}){try{if(!await t($))throw Error(`Markdown file not found: ${$}`);let X=(await bF.promises.stat($)).mtime.getTime();if(Z.cache&&R4.has($)){let B=R4.get($);if(B.updatedAt>=X)return{content:B.content,data:B.data}}let J=await Bun.file($).text(),{data:Q,content:G}=eQ(J),K=Z.markdown||t0.markdown||{enabled:!0,syntaxHighlighting:{enabled:!0,serverSide:!0,defaultTheme:"github-dark",highlightUnknownLanguages:!0}},U=v2(G,{gfm:!0});if(K.syntaxHighlighting?.enabled&&K.syntaxHighlighting?.serverSide)U=await yF(U,K.syntaxHighlighting?.defaultTheme||"github-dark",K.syntaxHighlighting?.highlightUnknownLanguages||!1);let _={content:U,data:Q||{}};if(Z.cache)R4.set($,{..._,updatedAt:X});return _}catch(Y){if(Z.debug)console.error(`Error reading/parsing markdown file ${$}:`,Y);let X=Y instanceof Error?Y.message:String(Y);return{content:B0("Markdown File",`Error reading/parsing markdown file: ${X}`,$,"",0,""),data:{}}}}async function yF($,Z,Y){let X=/<pre><code( class="language-([^"]+)")?>([^<]+)<\/code><\/pre>/g;if(!w4)try{w4=await CF({theme:Z||"github-dark",cache:!0})}catch(K){return console.error("Failed to initialize ts-syntax-highlighter:",K),$}let J=async(K,W,U,_)=>{let B=_.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&").replace(/&quot;/g,'"').replace(/&#39;/g,"'"),z=U||(Y?"text":"");if(!z)return K;try{if(!w4.getSupportedLanguages().includes(z))return K;return(await w4.highlight(B,z,{theme:Z})).html}catch(q){console.error(`Error highlighting code block with language ${U}:`,q)}return K},Q=$,G=$.matchAll(X);for(let K of G){let[W,U,_,B]=K,z=await J(W,U,_,B);Q=Q.replace(W,z)}return Q}async function LZ($,Z,Y="",X={}){return await PF($,/@markdown-file\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\}))?\)/g,async(G,K,W,U)=>{try{let _=K;if(!OZ.isAbsolute(K))_=OZ.resolve(OZ.dirname(Y),K);let B={};if(W)try{try{B=JSON.parse(W)}catch{if(X.debug)console.warn("Using safer alternative for parsing JS object literal");let L=W.replace(/^\s*\{|\}\s*$/g,"").trim().split(/,(?=\s*\w+\s*:)/);for(let V of L){let A=V.indexOf(":");if(A>0){let N=V.substring(0,A).trim(),w=V.substring(A+1).trim(),M=w.startsWith('"')&&w.endsWith('"'),T=w.startsWith("'")&&w.endsWith("'");if(M||T)w=w.substring(1,w.length-1);B[N]=w}}}}catch(F){if(X.debug)console.error("Error parsing context in @markdown-file directive:",F)}let{content:z,data:q}=await p1(_,X),j={...Z,...q,...B},H=z,O=/\{\{([^}]+)\}\}/g;return H=H.replace(O,(F,L)=>{let V=L.trim();return j[V]!==void 0?String(j[V]):F}),H}catch(_){let B=_ instanceof Error?_.message:String(_);return B0("Markdown File",`Error including markdown file: ${B}`,Y,$,U,G)}})}async function PF($,Z,Y){let X=[],J;while((J=Z.exec($))!==null){let K=J[0],W=J.index,U=J;X.push(Y(...U).then((_)=>({match:K,replacement:_,index:W})))}let Q=await Promise.all(X);Q.sort((K,W)=>W.index-K.index);let G=$;for(let{match:K,replacement:W}of Q)G=G.replace(K,()=>W);return G}var R4,w4=null;var h5=D(()=>{u0();q0();R4=new Map});function c1($,Z){try{let Y=$.trim();if(_0(Y))return j0(Y,Object.keys(Z))(...Object.values(Z));else return L0(Y,Z)}catch{return!1}}var FZ=D(()=>{h0()});class Y7{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]!==`
3809
3809
  `)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]===`
3810
- `)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 b0($,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 VZ($,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 M6($){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 l1($,Z){let Y=xF($,Z);return Y.ok?{expression:Y.expression,endPos:Y.endPos}:null}function xF($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return{ok:!1,reason:"missing-open-paren",pos:Y};let X=b0($,"(",")",Y);if(X===-1)return{ok:!1,reason:"unclosed-paren",pos:Y};return{ok:!0,expression:$.slice(Y+1,X),endPos:X+1}}function B$($,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,B=U?U.index:1/0;if(_<B)J++,Q=_+W[0].length;else if(B<1/0){if(J--,J===0)return B;Q=B+U[0].length}else break}return-1}function NZ($,Z){let Y=$.slice(Z).match(/^@if\s*/);if(!Y)return null;let X=Z+Y[0].length,J=l1($,X);if(!J)return null;let Q=J.endPos,G=B$($,"if","endif",Q);if(G===-1)return null;let K=$.slice(Q,G),W=[],U=0,_="if",B=J.expression,z=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:B,content:K.substring(z,U),start:Q+z,end:Q+U});let F=U+O[0].length,L=l1(K,F);if(!L){U++;continue}_="elseif",B=L.expression,U=L.endPos,z=U;continue}else if(/^@else(?![a-z])/.test(H)){W.push({type:_,condition:B,content:K.substring(z,U),start:Q+z,end:Q+U}),_="else",B=void 0,U+=5,z=U;continue}}U++}return W.push({type:_,condition:B,content:K.slice(z),start:Q+z,end:Q+K.length}),{fullMatch:$.slice(Z,G+6),branches:W,start:Z,end:G+6}}function T6($){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=NZ($,X.index);if(Q)Z.push(Q),Y.lastIndex=Q.end;X=Y.exec($)}return Z}function X7($,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=b0($,"(",")",W);if(U===-1){Q=J.exec($);continue}let _=$.slice(W+1,U),B=U+1,z=B$($,Z,Y,B);if(z===-1){Q=J.exec($);continue}let q=$.slice(B,z),j=z+`@${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 E6($,Z){let Y=$.slice(Z).match(/^@switch\s*/);if(!Y)return null;let X=Z+Y[0].length,J=l1($,X);if(!J)return null;let Q=J.endPos,G=B$($,"switch","endswitch",Q);if(G===-1)return null;let K=$.slice(Q,G),W=[],U=0,_=null,B=0;while(U<K.length){let z=K.slice(U),q=z.match(/^@switch\s*\(/),j=z.match(/^@endswitch(?![a-z])/);if(q){if(B++,_)_.content+=q[0];U+=q[0].length;continue}if(j){if(B--,_)_.content+=j[0];U+=j[0].length;continue}if(B>0){if(_)_.content+=K[U];U++;continue}let H=z.match(/^@case\s*/),O=z.match(/^@default(?![a-z])/),F=z.match(/^@break(?![a-z])/);if(H&&z.startsWith("@case")){if(_)W.push(_);let L=U+H[0].length,V=l1(K,L);if(!V){U++;continue}_={type:"case",value:V.expression,content:""},U=V.endPos}else if(O&&z.startsWith("@default")){if(_)W.push(_);_={type:"default",content:""},U+=O[0].length}else if(F&&z.startsWith("@break"))U+=F[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 xK=()=>{};function gK($){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,_=vF($,U,W);if(_===-1){Y=G+1;continue}let B=$.slice(U,_).trim(),z=_+W.length;Z.push({fullMatch:$.slice(G,z),expression:B,start:G,end:z,isRaw:Q}),Y=z}return Z}function vF($,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 hK($){let Z=M6($);if(Z.length===0)return{baseExpression:"",filters:[]};let Y=Z[0],X=[];for(let J=1;J<Z.length;J++){let Q=fF(Z[J]);if(Q)X.push(Q)}return{baseExpression:Y,filters:X}}function fF($){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=b0(Z,"(",")",Y);if(Q===-1)return{name:X,args:[]};let G=Z.slice(J,Q),K=AZ(G);return{name:X,args:K}}function AZ($){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 dK($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return null;let X=b0($,"(",")",Y);if(X===-1)return null;return{params:$.slice(Y+1,X),endPos:X+1}}function mK($){let Z=[],X=new Y7($).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 B=J<X.length?X[J].start:$.length,z=vK(X,J,$);J=z.nextIndex,Z.push({type:"variable",name:_,value:$.slice(B,z.endPos),exported:G,start:K.start,end:z.endPos})}}else if(U.type==="PUNCTUATION"&&(U.value==="{"||U.value==="[")){let _=U.start,B=U.value==="{"?"}":"]",z=b0($,U.value,B,_);if(z!==-1){let q=$.slice(_,z+1);if(J=fK(X,z+1),J<X.length&&X[J].type==="OPERATOR"&&X[J].value==="="){J++;let j=J<X.length?X[J].start:$.length,H=vK(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 B=-1;while(J<X.length){if(X[J].type==="PUNCTUATION"&&X[J].value==="{"){B=X[J].start;break}J++}if(B!==-1){let z=b0($,"{","}",B);if(z!==-1)Z.push({type:"function",name:_,value:$.slice(W,z+1).replace(/^export\s+/,""),exported:G,start:W,end:z+1}),J=fK(X,z+1)}}}else J++}return Z}function vK($,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 fK($,Z){for(let Y=0;Y<$.length;Y++)if($[Y].start>=Z)return Y;return $.length}var uK=()=>{};var I6=D(()=>{xK();uK()});function gF($,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=E6(X,G);if(!K)break;try{let W;if(_0(K.expression))W=j0(K.expression,Object.keys(Z))(...Object.values(Z));else W=L0(K.expression,Z);let U="",_=!1;for(let B of K.cases)if(B.type==="default"){if(!_)U=B.content.trim()}else try{let z;if(B.value&&_0(B.value))z=j0(B.value,Object.keys(Z))(...Object.values(Z));else if(B.value)z=L0(B.value,Z);if(W===z){U=B.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),_=$0("Switch",`Error evaluating @switch expression: ${U}`,o.EVALUATION_ERROR);X=X.substring(0,G)+_+X.substring(K.end);break}}return X}function d5($,Z,Y){let X=$;X=gF(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=l1(X,K+7);if(!W)break;let U=W.endPos,_=B$(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 B=X.slice(U,_),z=W.expression,q=-1;{let H=0,O=/@(?:if|unless)\s*\(/g,F=/@(?:endif|endunless)(?![a-z])/g,L=/@else(?![a-z])/g,V=[],A;while((A=O.exec(B))!==null)V.push({pos:A.index,type:"open"});while((A=F.exec(B))!==null)V.push({pos:A.index,type:"close"});while((A=L.exec(B))!==null)V.push({pos:A.index,type:"else"});V.sort((N,w)=>N.pos-w.pos);for(let N of V)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=B.slice(0,q),O=B.slice(q+5);j=`@if (${z})${O}@else ${H}@endif`}else j=`@if (!(${z}))${B}@endif`;X=X.substring(0,K)+j+X.substring(_+10),Q=!0}}X=RZ(X,Z,Y),X=MZ(X,Z,Y),X=wZ(X,Z);let J=()=>{let Q=T6(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 B;if(_.condition&&_0(_.condition))B=j0(_.condition,Object.keys(Z))(...Object.values(Z));else if(_.condition)B=L0(_.condition,Z);if(B)W=_.content,U=!0}catch(B){W=$0(_.type==="if"?"If":"Elseif",`Error in @${_.type}(${_.condition}): ${B instanceof Error?B.message:String(B)}`,o.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),_=$0("If",`Error processing @if block: ${U}`,o.EVALUATION_ERROR);X=X.substring(0,K.start)+_+X.substring(K.end)}}return!0};while(J());return X}function pK($){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 wZ($,Z){let Y=$;function X(K,W,U,_){let B=1,z=_,q=new RegExp(`@${W}(?:\\s*\\(|\\s|$)`,"g"),j=new RegExp(`@${U}(?![a-z])`,"g");while(z<K.length&&B>0){q.lastIndex=z,j.lastIndex=z;let H=q.exec(K),O=j.exec(K),F=H?H.index:1/0,L=O?O.index:1/0;if(F<L)B++,z=F+H[0].length;else if(L<1/0){if(B--,B===0)return L;z=L+O[0].length}else break}return-1}function J(K,W,U){let _=0,B=new RegExp(`@${W}(?:\\s*\\(|\\s|$)`,"g"),z=new RegExp(`@${U}(?![a-z])`,"g"),q=/@else(?![a-z])/g,j=[],H;while((H=B.exec(K))!==null)j.push({pos:H.index,type:"open"});while((H=z.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,F)=>O.pos-F.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,_,B,z=Y.slice(U+5),q=pK(z);if(q)_=q.value,B=U+5+q.consumed;else B=U+5;let j=X(Y,"auth","endauth",B);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(B,j),O=J(H,"auth","endauth"),F;if(!Z.auth)F=!1;else F=_?c1(`auth?.check && auth?.user?.[${_}]`,Z):c1("auth?.check",Z);let L;if(O!==-1){let V=H.slice(0,O),A=H.slice(O+5);L=F?V:A}else L=F?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,_,B,z=Y.slice(U+6),q=pK(z);if(q)_=q.value,B=U+6+q.consumed;else B=U+6;let j=X(Y,"guest","endguest",B);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(B,j),O=J(H,"guest","endguest"),F;if(!Z.auth)F=!0;else F=_?c1(`!auth?.check || !auth?.user?.[${_}]`,Z):c1("!auth?.check",Z);let L;if(O!==-1){let V=H.slice(0,O),A=H.slice(O+5);L=F?V:A}else L=F?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 B=c1(U,Z);_.push(B)}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 B=Y.match(new RegExp(`@${K}\\s*\\(`));if(!B||B.index===void 0)break;let z=B.index,q=Y.slice(z+`@${K}`.length),j=G(q);if(!j)break;let H=z+`@${K}`.length+j.paramsEnd,O=X(Y,K,W,H);if(O===-1){console.warn(`[stx] @${K} directive at position ${z} has no matching @${W} \u2014 the block was skipped.`);break}let F=Y.slice(H,O),L=[],V=0,A=new RegExp(`@${K}\\s*\\(`,"g"),N=new RegExp(`@${W}(?![a-z])`,"g"),w=new RegExp(`@${U}\\s*\\(`,"g"),M=/@else(?![a-z])/g,T=[],I;while((I=A.exec(F))!==null)T.push({pos:I.index,type:"open"});while((I=N.exec(F))!==null)T.push({pos:I.index,type:"close"});while((I=w.exec(F))!==null)T.push({pos:I.index,type:"elseDirective"});while((I=M.exec(F))!==null)T.push({pos:I.index,type:"else"});T.sort((x,C)=>x.pos-C.pos);for(let x of T){if(x.type==="open"){V++;continue}if(x.type==="close"){V--;continue}if(V===0)L.push(x)}let E=[],S=0;for(let x=0;x<L.length;x++){let C=L[x];if(E.push({content:F.slice(S,C.pos),ability:void 0}),C.type==="elseDirective"){let f=F.slice(C.pos+`@${U}`.length),g=G(f);if(g){E[E.length-1]={content:F.slice(S,C.pos)},S=C.pos+`@${U}`.length+g.paramsEnd,E.push({content:"",ability:g.ability,type:g.type,id:g.id}),E.pop();let h=L[x+1],l=h?h.pos:F.length;E.push({content:F.slice(S,l),ability:g.ability,type:g.type,id:g.id}),S=l}}else S=C.pos+5}if(S<F.length){let x=E[E.length-1];if(L.length>0&&L[L.length-1].type==="else")E.push({content:F.slice(S),isFinalElse:!0});else if(E.length===0)E.push({content:F.slice(S)})}let k=Q(j.ability,j.type,j.id),b=K==="can"?k:!k,P="";if(b)P=E[0]?.content||"";else{let x=!1;for(let C=1;C<E.length;C++){let f=E[C];if(f.isFinalElse){P=f.content,x=!0;break}if(f.ability){let g=Q(f.ability,f.type,f.id);if(K==="can"?g:!g){P=f.content,x=!0;break}}}if(!x&&E.length>0){let C=E[E.length-1];if(C.isFinalElse)P=C.content}}Y=Y.substring(0,z)+P+Y.substring(O+`@${W}`.length),_=!0}}return Y}function RZ($,Z,Y){let X=$;function J(Q,G,K,W,U){let _=!0;while(_){_=!1;let B=new RegExp(`@${G}\\s*\\(`),z=Q.match(B);if(!z||z.index===void 0)break;let q=z.index,j=l1(Q,q+`@${G}`.length);if(!j)break;let H=j.endPos,O=B$(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 F=Q.slice(H,O),L=j.expression,V=-1,A=0,N=0;while(N<F.length){let w=F.indexOf("@",N);if(w===-1)break;let M=F.substring(w);if(/^@(?:if|unless|isset|empty)\s*\(/.test(M)){A++,N=w+1;continue}if(/^@(?:endif|endunless|endisset|endempty)(?![a-z])/.test(M)){A--,N=w+1;continue}if(A===0&&/^@else(?![a-z])/.test(M)){V=w;break}N=w+1}try{let w=W(L.trim()),M;if(V!==-1){let T=F.slice(0,V),I=F.slice(V+5);M=w?T:I}else M=w?F:"";Q=Q.substring(0,q)+M+Q.substring(O+`@${K}`.length),_=!0}catch(w){let M=w instanceof Error?w.message:String(w),T=$0(U,`Error processing @${G} directive: ${M}`,o.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=c1(Q,Z);return G!==void 0&&G!==null},"Isset"),X=J(X,"empty","endempty",(Q)=>{let G=c1(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 MZ($,Z,Y){let X=$,J="development";function Q(G,K,W,U){let _=new RegExp(`@${K}(?![a-z])`,"g"),B=new RegExp(`@${W}(?![a-z])`,"g"),z=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 F=O.index,L=F+O[0].length;if(K==="env"){let k=j.substring(L).match(/^\s*\(\s*(['"])([^'"]+)\1\s*\)/);if(!k)break;L+=k[0].length,U=J===k[2]}let V=1,A=L,N=-1;while(V>0&&A<j.length){_.lastIndex=A,B.lastIndex=A;let k=_.exec(j),b=B.exec(j),P=k?k.index:1/0,x=b?b.index:1/0;if(P<x)V++,A=P+k[0].length;else if(x<1/0){if(V--,V===0){N=x;break}A=x+b[0].length}else break}if(N===-1){console.warn(`[stx] @${K} directive at position ${F} has no matching @${W} \u2014 the block was skipped.`);break}let w=j.substring(L,N),M=-1,T=0,I=0;while(I<w.length){let k=w.indexOf("@",I);if(k===-1)break;let b=w.substring(k);if(z.test(b)){T++,I=k+1;continue}if(q.test(b)){T--,I=k+1;continue}if(T===0&&/^@else(?![a-z])/.test(b)){M=k;break}I=k+1}let E;if(M!==-1){let k=w.slice(0,M),b=w.slice(M+5);E=U?k:b}else E=U?w:"";let S=`@${W}`.length;j=j.substring(0,F)+E+j.substring(N+S),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 D6=D(()=>{FZ();X1();I6();h0()});function EZ($=16){let Z=new Uint8Array($);return crypto.getRandomValues(Z),btoa(String.fromCharCode(...Z))}function z$($,Z){if(!$)return Z?.nonceGenerator?.()??EZ();let Y=TZ.get($);if(!Y)Y=Z?.nonceGenerator?.()??EZ(),TZ.set($,Y);return Y}function hF($){TZ.delete($)}function IZ($,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 S6($,Z){return`<meta http-equiv="Content-Security-Policy" content="${IZ($,Z).replace(/&/g,"&amp;").replace(/"/g,"&quot;")}">`}function dF($){return{enabled:!0,directives:{strict:cK,moderate:k6,relaxed:lK,api:iK}[$]||k6,useNonce:$==="strict",addMetaTag:!0}}function mF($,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 DZ($,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?z$(Y,Z):void 0,J=S6(Z.directives,X);return $.replace(/<head([^>]*)>/,`<head$1>
3811
- ${J}`)}function uF($,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 kZ($,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?z$(Z,Q):void 0;return S6(Q.directives,G)}),J=J.replace(/@cspNonce\b/g,()=>{if(!Q?.enabled||!Q.useNonce)return"";return z$(Z,Q)}),Q?.enabled&&Q.useNonce)Z.cspNonce=z$(Z,Q);return J}function pF(){return[nK,sK]}function cF($){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 rK($=!1){return $?"Content-Security-Policy-Report-Only":"Content-Security-Policy"}function lF($,Z){if(!$.enabled)return{};let Y=$.useNonce?z$(Z,$):void 0,X=IZ($.directives,Y);return{[rK($.reportOnly)]:X}}var TZ,cK,k6,lK,iK,nK,sK,iF;var SZ=D(()=>{TZ=new WeakMap;cK={"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},k6={"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},lK={"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'"]},iK={"default-src":["'none'"],"frame-ancestors":["'none'"]};nK={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?z$(Y,Q):void 0;return S6(Q.directives,G)},hasEndTag:!1,description:"Insert Content-Security-Policy meta tag"},sK={name:"cspNonce",handler:($,Z,Y,X)=>{let Q=Y.__stx_options?.csp;if(!Q?.enabled||!Q.useNonce)return"";return z$(Y,Q)},hasEndTag:!1,description:"Output the current CSP nonce value"};iF={enabled:!1,reportOnly:!1,directives:k6,useNonce:!1,addMetaTag:!0}});import nF from"crypto";function rF($=sF){let Z=nF.randomBytes(Math.ceil($/2)).toString("hex").slice(0,$);return bZ=Z,Z}function oF(){if(!bZ)rF();return bZ}function aF($=oK){let Z=oF();return`<input type="hidden" name="${$}" value="${Z}">`}function aK($){return $.replace(/@csrf(?:\((['"])([^'"]*)\1\))?/g,(Z,Y,X)=>{return aF(X||oK)})}var sF=40,oK="_token",bZ=null;var tK=()=>{};async function CZ($,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 tF(J,Q,Z,Y,X);else J=await eF(J,Q,Z,Y,X)}return J}async function tF($,Z,Y,X,J){let{name:Q,handler:G}=Z,K=`@${Q}`,W=`@end${Q}`,U=$,_=U5(`${K}(?:\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\))?([\\s\\S]*?)${W}`,"g"),B=[],z=_.exec(U);while(z!==null){let[q,j="",H=""]=z,O=z.index||0;try{let F=j?eK(j):[],L=H.trim(),V=await G(L,F,Y,X);B.push({original:q,processed:V,startIndex:O})}catch(F){let L=F instanceof Error?F.message:String(F);if(J.debug)console.error(`Error processing custom directive @${Q}:`,F);B.push({original:q,processed:$0("CustomDirective",`Error in @${Q}${j?`(${j})`:""}: ${L}`,o.EVALUATION_ERROR),startIndex:O})}z=_.exec(U)}for(let q=B.length-1;q>=0;q--){let{original:j,processed:H}=B[q];U=U.replace(j,H)}return U}async function eF($,Z,Y,X,J){let{name:Q,handler:G}=Z,K=$,W=U5(`@${Q}\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\)`,"g"),U=[],_=W.exec(K);while(_!==null){let[q,j=""]=_,H=_.index||0;try{let O=eK(j),F=await G("",O,Y,X);U.push({original:q,processed:F,startIndex:H})}catch(O){let F=O instanceof Error?O.message:String(O);if(J.debug)console.error(`Error processing custom directive @${Q}:`,O);U.push({original:q,processed:$0("CustomDirective",`Error in @${Q}(${j}): ${F}`,o.EVALUATION_ERROR),startIndex:H})}_=W.exec(K)}let B=U5(`@${Q}(?!\\w)(?!\\s*\\()`,"g"),z=B.exec(K);while(z!==null){let[q]=z,j=z.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:$0("CustomDirective",`Error in @${Q}: ${O}`,o.EVALUATION_ERROR),startIndex:j})}z=B.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 eK($){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 yZ=D(()=>{X1();f$()});var y6={};Q0(y6,{useTitle:()=>YW,useSeoMeta:()=>J7,usePageTitle:()=>YW,useHead:()=>j$,resetHead:()=>$W,renderHtmlAttrs:()=>JW,renderHead:()=>XW,renderBodyAttrs:()=>QW,processTitleDirective:()=>WW,processMetaDirective:()=>UW,processHeadDirective:()=>KW,getPageMeta:()=>C6,getHead:()=>m5,definePageMeta:()=>ZW,applyHead:()=>GW});function m5(){return q$}function C6(){return b6}function $W(){q$={},$V.length=0,b6={}}function j$($){q$=ZV(q$,$)}function ZV($,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 J7($){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});j$({title:$.title,titleTemplate:$.titleTemplate,meta:Z,link:K})}function ZW($){if(b6={...b6,...$},$.title||$.description)J7({title:$.title,description:$.description})}function YW($){let Z=typeof $==="function"?$():$;j$({title:Z})}function XW($=q$){let Z=[];if($.title){let Y=$.title;if($.titleTemplate)Y=typeof $.titleTemplate==="function"?$.titleTemplate(Y):$.titleTemplate.replace("%s",Y);Z.push(`<title>${h$(Y)}</title>`)}if($.base){let Y=Object.entries($.base).map(([X,J])=>`${X}="${h$(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}="${h$(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}="${h$(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}="${h$(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(`
3810
+ `)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 b0($,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 VZ($,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 M4($){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 l1($,Z){let Y=xF($,Z);return Y.ok?{expression:Y.expression,endPos:Y.endPos}:null}function xF($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return{ok:!1,reason:"missing-open-paren",pos:Y};let X=b0($,"(",")",Y);if(X===-1)return{ok:!1,reason:"unclosed-paren",pos:Y};return{ok:!0,expression:$.slice(Y+1,X),endPos:X+1}}function B$($,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,B=U?U.index:1/0;if(_<B)J++,Q=_+W[0].length;else if(B<1/0){if(J--,J===0)return B;Q=B+U[0].length}else break}return-1}function NZ($,Z){let Y=$.slice(Z).match(/^@if\s*/);if(!Y)return null;let X=Z+Y[0].length,J=l1($,X);if(!J)return null;let Q=J.endPos,G=B$($,"if","endif",Q);if(G===-1)return null;let K=$.slice(Q,G),W=[],U=0,_="if",B=J.expression,z=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:B,content:K.substring(z,U),start:Q+z,end:Q+U});let F=U+O[0].length,L=l1(K,F);if(!L){U++;continue}_="elseif",B=L.expression,U=L.endPos,z=U;continue}else if(/^@else(?![a-z])/.test(H)){W.push({type:_,condition:B,content:K.substring(z,U),start:Q+z,end:Q+U}),_="else",B=void 0,U+=5,z=U;continue}}U++}return W.push({type:_,condition:B,content:K.slice(z),start:Q+z,end:Q+K.length}),{fullMatch:$.slice(Z,G+6),branches:W,start:Z,end:G+6}}function T4($){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=NZ($,X.index);if(Q)Z.push(Q),Y.lastIndex=Q.end;X=Y.exec($)}return Z}function X7($,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=b0($,"(",")",W);if(U===-1){Q=J.exec($);continue}let _=$.slice(W+1,U),B=U+1,z=B$($,Z,Y,B);if(z===-1){Q=J.exec($);continue}let q=$.slice(B,z),j=z+`@${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 E4($,Z){let Y=$.slice(Z).match(/^@switch\s*/);if(!Y)return null;let X=Z+Y[0].length,J=l1($,X);if(!J)return null;let Q=J.endPos,G=B$($,"switch","endswitch",Q);if(G===-1)return null;let K=$.slice(Q,G),W=[],U=0,_=null,B=0;while(U<K.length){let z=K.slice(U),q=z.match(/^@switch\s*\(/),j=z.match(/^@endswitch(?![a-z])/);if(q){if(B++,_)_.content+=q[0];U+=q[0].length;continue}if(j){if(B--,_)_.content+=j[0];U+=j[0].length;continue}if(B>0){if(_)_.content+=K[U];U++;continue}let H=z.match(/^@case\s*/),O=z.match(/^@default(?![a-z])/),F=z.match(/^@break(?![a-z])/);if(H&&z.startsWith("@case")){if(_)W.push(_);let L=U+H[0].length,V=l1(K,L);if(!V){U++;continue}_={type:"case",value:V.expression,content:""},U=V.endPos}else if(O&&z.startsWith("@default")){if(_)W.push(_);_={type:"default",content:""},U+=O[0].length}else if(F&&z.startsWith("@break"))U+=F[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 xK=()=>{};function gK($){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,_=vF($,U,W);if(_===-1){Y=G+1;continue}let B=$.slice(U,_).trim(),z=_+W.length;Z.push({fullMatch:$.slice(G,z),expression:B,start:G,end:z,isRaw:Q}),Y=z}return Z}function vF($,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 hK($){let Z=M4($);if(Z.length===0)return{baseExpression:"",filters:[]};let Y=Z[0],X=[];for(let J=1;J<Z.length;J++){let Q=fF(Z[J]);if(Q)X.push(Q)}return{baseExpression:Y,filters:X}}function fF($){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=b0(Z,"(",")",Y);if(Q===-1)return{name:X,args:[]};let G=Z.slice(J,Q),K=AZ(G);return{name:X,args:K}}function AZ($){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 dK($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return null;let X=b0($,"(",")",Y);if(X===-1)return null;return{params:$.slice(Y+1,X),endPos:X+1}}function mK($){let Z=[],X=new Y7($).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 B=J<X.length?X[J].start:$.length,z=vK(X,J,$);J=z.nextIndex,Z.push({type:"variable",name:_,value:$.slice(B,z.endPos),exported:G,start:K.start,end:z.endPos})}}else if(U.type==="PUNCTUATION"&&(U.value==="{"||U.value==="[")){let _=U.start,B=U.value==="{"?"}":"]",z=b0($,U.value,B,_);if(z!==-1){let q=$.slice(_,z+1);if(J=fK(X,z+1),J<X.length&&X[J].type==="OPERATOR"&&X[J].value==="="){J++;let j=J<X.length?X[J].start:$.length,H=vK(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 B=-1;while(J<X.length){if(X[J].type==="PUNCTUATION"&&X[J].value==="{"){B=X[J].start;break}J++}if(B!==-1){let z=b0($,"{","}",B);if(z!==-1)Z.push({type:"function",name:_,value:$.slice(W,z+1).replace(/^export\s+/,""),exported:G,start:W,end:z+1}),J=fK(X,z+1)}}}else J++}return Z}function vK($,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 fK($,Z){for(let Y=0;Y<$.length;Y++)if($[Y].start>=Z)return Y;return $.length}var uK=()=>{};var I4=D(()=>{xK();uK()});function gF($,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=E4(X,G);if(!K)break;try{let W;if(_0(K.expression))W=j0(K.expression,Object.keys(Z))(...Object.values(Z));else W=L0(K.expression,Z);let U="",_=!1;for(let B of K.cases)if(B.type==="default"){if(!_)U=B.content.trim()}else try{let z;if(B.value&&_0(B.value))z=j0(B.value,Object.keys(Z))(...Object.values(Z));else if(B.value)z=L0(B.value,Z);if(W===z){U=B.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),_=$0("Switch",`Error evaluating @switch expression: ${U}`,o.EVALUATION_ERROR);X=X.substring(0,G)+_+X.substring(K.end);break}}return X}function d5($,Z,Y){let X=$;X=gF(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=l1(X,K+7);if(!W)break;let U=W.endPos,_=B$(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 B=X.slice(U,_),z=W.expression,q=-1;{let H=0,O=/@(?:if|unless)\s*\(/g,F=/@(?:endif|endunless)(?![a-z])/g,L=/@else(?![a-z])/g,V=[],A;while((A=O.exec(B))!==null)V.push({pos:A.index,type:"open"});while((A=F.exec(B))!==null)V.push({pos:A.index,type:"close"});while((A=L.exec(B))!==null)V.push({pos:A.index,type:"else"});V.sort((N,w)=>N.pos-w.pos);for(let N of V)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=B.slice(0,q),O=B.slice(q+5);j=`@if (${z})${O}@else ${H}@endif`}else j=`@if (!(${z}))${B}@endif`;X=X.substring(0,K)+j+X.substring(_+10),Q=!0}}X=RZ(X,Z,Y),X=MZ(X,Z,Y),X=wZ(X,Z);let J=()=>{let Q=T4(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 B;if(_.condition&&_0(_.condition))B=j0(_.condition,Object.keys(Z))(...Object.values(Z));else if(_.condition)B=L0(_.condition,Z);if(B)W=_.content,U=!0}catch(B){W=$0(_.type==="if"?"If":"Elseif",`Error in @${_.type}(${_.condition}): ${B instanceof Error?B.message:String(B)}`,o.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),_=$0("If",`Error processing @if block: ${U}`,o.EVALUATION_ERROR);X=X.substring(0,K.start)+_+X.substring(K.end)}}return!0};while(J());return X}function pK($){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 wZ($,Z){let Y=$;function X(K,W,U,_){let B=1,z=_,q=new RegExp(`@${W}(?:\\s*\\(|\\s|$)`,"g"),j=new RegExp(`@${U}(?![a-z])`,"g");while(z<K.length&&B>0){q.lastIndex=z,j.lastIndex=z;let H=q.exec(K),O=j.exec(K),F=H?H.index:1/0,L=O?O.index:1/0;if(F<L)B++,z=F+H[0].length;else if(L<1/0){if(B--,B===0)return L;z=L+O[0].length}else break}return-1}function J(K,W,U){let _=0,B=new RegExp(`@${W}(?:\\s*\\(|\\s|$)`,"g"),z=new RegExp(`@${U}(?![a-z])`,"g"),q=/@else(?![a-z])/g,j=[],H;while((H=B.exec(K))!==null)j.push({pos:H.index,type:"open"});while((H=z.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,F)=>O.pos-F.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,_,B,z=Y.slice(U+5),q=pK(z);if(q)_=q.value,B=U+5+q.consumed;else B=U+5;let j=X(Y,"auth","endauth",B);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(B,j),O=J(H,"auth","endauth"),F;if(!Z.auth)F=!1;else F=_?c1(`auth?.check && auth?.user?.[${_}]`,Z):c1("auth?.check",Z);let L;if(O!==-1){let V=H.slice(0,O),A=H.slice(O+5);L=F?V:A}else L=F?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,_,B,z=Y.slice(U+6),q=pK(z);if(q)_=q.value,B=U+6+q.consumed;else B=U+6;let j=X(Y,"guest","endguest",B);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(B,j),O=J(H,"guest","endguest"),F;if(!Z.auth)F=!0;else F=_?c1(`!auth?.check || !auth?.user?.[${_}]`,Z):c1("!auth?.check",Z);let L;if(O!==-1){let V=H.slice(0,O),A=H.slice(O+5);L=F?V:A}else L=F?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 B=c1(U,Z);_.push(B)}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 B=Y.match(new RegExp(`@${K}\\s*\\(`));if(!B||B.index===void 0)break;let z=B.index,q=Y.slice(z+`@${K}`.length),j=G(q);if(!j)break;let H=z+`@${K}`.length+j.paramsEnd,O=X(Y,K,W,H);if(O===-1){console.warn(`[stx] @${K} directive at position ${z} has no matching @${W} \u2014 the block was skipped.`);break}let F=Y.slice(H,O),L=[],V=0,A=new RegExp(`@${K}\\s*\\(`,"g"),N=new RegExp(`@${W}(?![a-z])`,"g"),w=new RegExp(`@${U}\\s*\\(`,"g"),M=/@else(?![a-z])/g,T=[],I;while((I=A.exec(F))!==null)T.push({pos:I.index,type:"open"});while((I=N.exec(F))!==null)T.push({pos:I.index,type:"close"});while((I=w.exec(F))!==null)T.push({pos:I.index,type:"elseDirective"});while((I=M.exec(F))!==null)T.push({pos:I.index,type:"else"});T.sort((x,C)=>x.pos-C.pos);for(let x of T){if(x.type==="open"){V++;continue}if(x.type==="close"){V--;continue}if(V===0)L.push(x)}let E=[],S=0;for(let x=0;x<L.length;x++){let C=L[x];if(E.push({content:F.slice(S,C.pos),ability:void 0}),C.type==="elseDirective"){let f=F.slice(C.pos+`@${U}`.length),g=G(f);if(g){E[E.length-1]={content:F.slice(S,C.pos)},S=C.pos+`@${U}`.length+g.paramsEnd,E.push({content:"",ability:g.ability,type:g.type,id:g.id}),E.pop();let h=L[x+1],l=h?h.pos:F.length;E.push({content:F.slice(S,l),ability:g.ability,type:g.type,id:g.id}),S=l}}else S=C.pos+5}if(S<F.length){let x=E[E.length-1];if(L.length>0&&L[L.length-1].type==="else")E.push({content:F.slice(S),isFinalElse:!0});else if(E.length===0)E.push({content:F.slice(S)})}let k=Q(j.ability,j.type,j.id),b=K==="can"?k:!k,P="";if(b)P=E[0]?.content||"";else{let x=!1;for(let C=1;C<E.length;C++){let f=E[C];if(f.isFinalElse){P=f.content,x=!0;break}if(f.ability){let g=Q(f.ability,f.type,f.id);if(K==="can"?g:!g){P=f.content,x=!0;break}}}if(!x&&E.length>0){let C=E[E.length-1];if(C.isFinalElse)P=C.content}}Y=Y.substring(0,z)+P+Y.substring(O+`@${W}`.length),_=!0}}return Y}function RZ($,Z,Y){let X=$;function J(Q,G,K,W,U){let _=!0;while(_){_=!1;let B=new RegExp(`@${G}\\s*\\(`),z=Q.match(B);if(!z||z.index===void 0)break;let q=z.index,j=l1(Q,q+`@${G}`.length);if(!j)break;let H=j.endPos,O=B$(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 F=Q.slice(H,O),L=j.expression,V=-1,A=0,N=0;while(N<F.length){let w=F.indexOf("@",N);if(w===-1)break;let M=F.substring(w);if(/^@(?:if|unless|isset|empty)\s*\(/.test(M)){A++,N=w+1;continue}if(/^@(?:endif|endunless|endisset|endempty)(?![a-z])/.test(M)){A--,N=w+1;continue}if(A===0&&/^@else(?![a-z])/.test(M)){V=w;break}N=w+1}try{let w=W(L.trim()),M;if(V!==-1){let T=F.slice(0,V),I=F.slice(V+5);M=w?T:I}else M=w?F:"";Q=Q.substring(0,q)+M+Q.substring(O+`@${K}`.length),_=!0}catch(w){let M=w instanceof Error?w.message:String(w),T=$0(U,`Error processing @${G} directive: ${M}`,o.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=c1(Q,Z);return G!==void 0&&G!==null},"Isset"),X=J(X,"empty","endempty",(Q)=>{let G=c1(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 MZ($,Z,Y){let X=$,J="development";function Q(G,K,W,U){let _=new RegExp(`@${K}(?![a-z])`,"g"),B=new RegExp(`@${W}(?![a-z])`,"g"),z=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 F=O.index,L=F+O[0].length;if(K==="env"){let k=j.substring(L).match(/^\s*\(\s*(['"])([^'"]+)\1\s*\)/);if(!k)break;L+=k[0].length,U=J===k[2]}let V=1,A=L,N=-1;while(V>0&&A<j.length){_.lastIndex=A,B.lastIndex=A;let k=_.exec(j),b=B.exec(j),P=k?k.index:1/0,x=b?b.index:1/0;if(P<x)V++,A=P+k[0].length;else if(x<1/0){if(V--,V===0){N=x;break}A=x+b[0].length}else break}if(N===-1){console.warn(`[stx] @${K} directive at position ${F} has no matching @${W} \u2014 the block was skipped.`);break}let w=j.substring(L,N),M=-1,T=0,I=0;while(I<w.length){let k=w.indexOf("@",I);if(k===-1)break;let b=w.substring(k);if(z.test(b)){T++,I=k+1;continue}if(q.test(b)){T--,I=k+1;continue}if(T===0&&/^@else(?![a-z])/.test(b)){M=k;break}I=k+1}let E;if(M!==-1){let k=w.slice(0,M),b=w.slice(M+5);E=U?k:b}else E=U?w:"";let S=`@${W}`.length;j=j.substring(0,F)+E+j.substring(N+S),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 D4=D(()=>{FZ();X1();I4();h0()});function EZ($=16){let Z=new Uint8Array($);return crypto.getRandomValues(Z),btoa(String.fromCharCode(...Z))}function z$($,Z){if(!$)return Z?.nonceGenerator?.()??EZ();let Y=TZ.get($);if(!Y)Y=Z?.nonceGenerator?.()??EZ(),TZ.set($,Y);return Y}function hF($){TZ.delete($)}function IZ($,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 S4($,Z){return`<meta http-equiv="Content-Security-Policy" content="${IZ($,Z).replace(/&/g,"&amp;").replace(/"/g,"&quot;")}">`}function dF($){return{enabled:!0,directives:{strict:cK,moderate:k4,relaxed:lK,api:iK}[$]||k4,useNonce:$==="strict",addMetaTag:!0}}function mF($,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 DZ($,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?z$(Y,Z):void 0,J=S4(Z.directives,X);return $.replace(/<head([^>]*)>/,`<head$1>
3811
+ ${J}`)}function uF($,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 kZ($,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?z$(Z,Q):void 0;return S4(Q.directives,G)}),J=J.replace(/@cspNonce\b/g,()=>{if(!Q?.enabled||!Q.useNonce)return"";return z$(Z,Q)}),Q?.enabled&&Q.useNonce)Z.cspNonce=z$(Z,Q);return J}function pF(){return[nK,sK]}function cF($){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 rK($=!1){return $?"Content-Security-Policy-Report-Only":"Content-Security-Policy"}function lF($,Z){if(!$.enabled)return{};let Y=$.useNonce?z$(Z,$):void 0,X=IZ($.directives,Y);return{[rK($.reportOnly)]:X}}var TZ,cK,k4,lK,iK,nK,sK,iF;var SZ=D(()=>{TZ=new WeakMap;cK={"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},k4={"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},lK={"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'"]},iK={"default-src":["'none'"],"frame-ancestors":["'none'"]};nK={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?z$(Y,Q):void 0;return S4(Q.directives,G)},hasEndTag:!1,description:"Insert Content-Security-Policy meta tag"},sK={name:"cspNonce",handler:($,Z,Y,X)=>{let Q=Y.__stx_options?.csp;if(!Q?.enabled||!Q.useNonce)return"";return z$(Y,Q)},hasEndTag:!1,description:"Output the current CSP nonce value"};iF={enabled:!1,reportOnly:!1,directives:k4,useNonce:!1,addMetaTag:!0}});import nF from"crypto";function rF($=sF){let Z=nF.randomBytes(Math.ceil($/2)).toString("hex").slice(0,$);return bZ=Z,Z}function oF(){if(!bZ)rF();return bZ}function aF($=oK){let Z=oF();return`<input type="hidden" name="${$}" value="${Z}">`}function aK($){return $.replace(/@csrf(?:\((['"])([^'"]*)\1\))?/g,(Z,Y,X)=>{return aF(X||oK)})}var sF=40,oK="_token",bZ=null;var tK=()=>{};async function CZ($,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 tF(J,Q,Z,Y,X);else J=await eF(J,Q,Z,Y,X)}return J}async function tF($,Z,Y,X,J){let{name:Q,handler:G}=Z,K=`@${Q}`,W=`@end${Q}`,U=$,_=U5(`${K}(?:\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\))?([\\s\\S]*?)${W}`,"g"),B=[],z=_.exec(U);while(z!==null){let[q,j="",H=""]=z,O=z.index||0;try{let F=j?eK(j):[],L=H.trim(),V=await G(L,F,Y,X);B.push({original:q,processed:V,startIndex:O})}catch(F){let L=F instanceof Error?F.message:String(F);if(J.debug)console.error(`Error processing custom directive @${Q}:`,F);B.push({original:q,processed:$0("CustomDirective",`Error in @${Q}${j?`(${j})`:""}: ${L}`,o.EVALUATION_ERROR),startIndex:O})}z=_.exec(U)}for(let q=B.length-1;q>=0;q--){let{original:j,processed:H}=B[q];U=U.replace(j,H)}return U}async function eF($,Z,Y,X,J){let{name:Q,handler:G}=Z,K=$,W=U5(`@${Q}\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\)`,"g"),U=[],_=W.exec(K);while(_!==null){let[q,j=""]=_,H=_.index||0;try{let O=eK(j),F=await G("",O,Y,X);U.push({original:q,processed:F,startIndex:H})}catch(O){let F=O instanceof Error?O.message:String(O);if(J.debug)console.error(`Error processing custom directive @${Q}:`,O);U.push({original:q,processed:$0("CustomDirective",`Error in @${Q}(${j}): ${F}`,o.EVALUATION_ERROR),startIndex:H})}_=W.exec(K)}let B=U5(`@${Q}(?!\\w)(?!\\s*\\()`,"g"),z=B.exec(K);while(z!==null){let[q]=z,j=z.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:$0("CustomDirective",`Error in @${Q}: ${O}`,o.EVALUATION_ERROR),startIndex:j})}z=B.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 eK($){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 yZ=D(()=>{X1();f$()});var y4={};Q0(y4,{useTitle:()=>YW,useSeoMeta:()=>J7,usePageTitle:()=>YW,useHead:()=>j$,resetHead:()=>$W,renderHtmlAttrs:()=>JW,renderHead:()=>XW,renderBodyAttrs:()=>QW,processTitleDirective:()=>WW,processMetaDirective:()=>UW,processHeadDirective:()=>KW,getPageMeta:()=>C4,getHead:()=>m5,definePageMeta:()=>ZW,applyHead:()=>GW});function m5(){return q$}function C4(){return b4}function $W(){q$={},$V.length=0,b4={}}function j$($){q$=ZV(q$,$)}function ZV($,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 J7($){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});j$({title:$.title,titleTemplate:$.titleTemplate,meta:Z,link:K})}function ZW($){if(b4={...b4,...$},$.title||$.description)J7({title:$.title,description:$.description})}function YW($){let Z=typeof $==="function"?$():$;j$({title:Z})}function XW($=q$){let Z=[];if($.title){let Y=$.title;if($.titleTemplate)Y=typeof $.titleTemplate==="function"?$.titleTemplate(Y):$.titleTemplate.replace("%s",Y);Z.push(`<title>${h$(Y)}</title>`)}if($.base){let Y=Object.entries($.base).map(([X,J])=>`${X}="${h$(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}="${h$(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}="${h$(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}="${h$(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(`
3812
3812
  `)}function JW($=q$){if(!$.htmlAttrs)return"";return Object.entries($.htmlAttrs).map(([Z,Y])=>`${Z}="${h$(Y)}"`).join(" ")}function QW($=q$){if(!$.bodyAttrs)return"";return Object.entries($.bodyAttrs).map(([Z,Y])=>`${Z}="${h$(Y)}"`).join(" ")}function h$($){return $.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}function GW($=q$){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 KW($){let Z="";return{content:$.replace(/@head\s*([\s\S]*?)@endhead/g,(X,J)=>{return Z+=J.trim()+`
3813
- `,""}),headContent:Z.trim()}}function WW($,Z){return $.replace(/@title\s*\(\s*(?:(['"`])(.+?)\1|([^)]+))\s*\)/g,(Y,X,J,Q)=>{let G=X?J:Z[(Q||"").trim()]??Q;return j$({title:G}),""})}function UW($,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,B=J.includes(":")?{property:J,content:U}:{name:J,content:U};return j$({meta:[B]}),""})}var q$,$V,b6;var H$=D(()=>{q$={},$V=[],b6={}});import YV from"crypto";function g0($){return String($??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function XV($){return{...x6,...$.forms?.classes}}function P6($,Z,Y,X){let J=$||Z;return Y?`${J} ${X}`:J}function JV(){return YV.randomUUID()}function QV($,Z,Y,X){let J=XV(X),Q=$;return Q=qW(Q,Z),Q=u5(Q,Z),Q=v6(Q,Z,J),Q=f6(Q,Z,J),Q}function u5($,Z){let Y=$;return Y=Y.replace(/@csrf/g,()=>{if(!Z.csrf||typeof Z.csrf!=="object"){let X=JV();Z.csrf={token:X}}if(Z.csrf.field)return Z.csrf.field;if(Z.csrf.token)return`<input type="hidden" name="_token" value="${g0(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="${g0(Q)}">`;return X}),Y}function v6($,Z,Y=x6){let X=$;return X=X.replace(/@form\(\s*(?:(?:'([^']+)'|"([^"]+)")\s*)?(?:,\s*(?:'([^']+)'|"([^"]+)")?)?\s*(?:,\s*\{([^}]+)\}\s*)?\)/g,(J,Q,G,K,W,U="")=>{let _=Q||G||"POST",B=K||W||"",z=O$(U),q=_.toUpperCase(),j=["GET","POST"].includes(q)?q:"POST",H=`<form method="${g0(j)}" action="${g0(B)}"${z?` ${z}`:""}>`;if(H+=`
3813
+ `,""}),headContent:Z.trim()}}function WW($,Z){return $.replace(/@title\s*\(\s*(?:(['"`])(.+?)\1|([^)]+))\s*\)/g,(Y,X,J,Q)=>{let G=X?J:Z[(Q||"").trim()]??Q;return j$({title:G}),""})}function UW($,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,B=J.includes(":")?{property:J,content:U}:{name:J,content:U};return j$({meta:[B]}),""})}var q$,$V,b4;var H$=D(()=>{q$={},$V=[],b4={}});import YV from"crypto";function g0($){return String($??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function XV($){return{...x4,...$.forms?.classes}}function P4($,Z,Y,X){let J=$||Z;return Y?`${J} ${X}`:J}function JV(){return YV.randomUUID()}function QV($,Z,Y,X){let J=XV(X),Q=$;return Q=qW(Q,Z),Q=u5(Q,Z),Q=v4(Q,Z,J),Q=f4(Q,Z,J),Q}function u5($,Z){let Y=$;return Y=Y.replace(/@csrf/g,()=>{if(!Z.csrf||typeof Z.csrf!=="object"){let X=JV();Z.csrf={token:X}}if(Z.csrf.field)return Z.csrf.field;if(Z.csrf.token)return`<input type="hidden" name="_token" value="${g0(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="${g0(Q)}">`;return X}),Y}function v4($,Z,Y=x4){let X=$;return X=X.replace(/@form\(\s*(?:(?:'([^']+)'|"([^"]+)")\s*)?(?:,\s*(?:'([^']+)'|"([^"]+)")?)?\s*(?:,\s*\{([^}]+)\}\s*)?\)/g,(J,Q,G,K,W,U="")=>{let _=Q||G||"POST",B=K||W||"",z=O$(U),q=_.toUpperCase(),j=["GET","POST"].includes(q)?q:"POST",H=`<form method="${g0(j)}" action="${g0(B)}"${z?` ${z}`:""}>`;if(H+=`
3814
3814
  ${u5("@csrf",Z)}`,!["GET","POST"].includes(q))H+=`
3815
- ${u5(`@method('${q}')`,Z)}`;return H}),X=X.replace(/@endform/g,"</form>"),X=X.replace(/@input\(\s*(?:'([^']+)'|"([^"]+)")\s*(?:,\s*(?:(?:'([^']*)'|"([^"]*)")\s*)?)?(?:,\s*\{([^}]+)\})?\s*\)/g,(J,Q,G,K,W,U="")=>{let _=Q||G||"",B=K||W||"",z=O$(U),q=Q7(_,Z),j=q!==void 0&&q!==null?q:B||"",H=z.match(/type=['"]([^'"]+)['"]/i),O=H?H[1]:"text",F=G7(_,Z),L=z.match(/class=['"]([^'"]+)['"]/i),V=P6(L?L[1]:"",Y.input,F,Y.inputError),A=z.replace(/class=['"][^'"]+['"]/i,"");return A=A.replace(/type=['"][^'"]+['"]/i,""),`<input type="${g0(O)}" name="${g0(_)}" value="${g0(j)}" class="${V}"${A?` ${A}`:""}>`}),X=X.replace(/@textarea\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)([\s\S]*?)@endtextarea/g,(J,Q,G="",K="")=>{let W=O$(G),U=Q7(Q,Z)||K.trim(),_=G7(Q,Z),B=W.match(/class=['"]([^'"]+)['"]/i),z=P6(B?B[1]:"",Y.input,_,Y.inputError),q=W.replace(/class=['"][^'"]+['"]/i,"");return`<textarea name="${g0(Q)}" class="${z}"${q?` ${q}`:""}>${g0(U)}</textarea>`}),X=X.replace(/@select\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)([\s\S]*?)@endselect/g,(J,Q,G="",K)=>{let W=O$(G),U=Q7(Q,Z),_=G7(Q,Z),B=W.match(/class=['"]([^'"]+)['"]/i),z=P6(B?B[1]:"",Y.input,_,Y.inputError),q=W.replace(/class=['"][^'"]+['"]/i,""),j=K;if(U!==void 0)j=K.replace(/(<option[^>]*value=['"]([^'"]+)['"][^>]*>)/gi,(H,O,F)=>{if((Array.isArray(U)?U.some((V)=>String(V)===F):String(U)===F)&&!O.includes("selected"))return O.replace(/(<option)/,"$1 selected");return H});return`<select name="${g0(Q)}" class="${z}"${q?` ${q}`:""}>${j}</select>`}),X=X.replace(/@checkbox\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?(?:,\s*\{([^}]+)\})?\)/g,(J,Q,G="1",K="")=>{let W=O$(K),U=Q7(Q,Z),_=U!==void 0&&(Array.isArray(U)?U.some((j)=>String(j)===G):U===!0||String(U)===G),B=W.match(/class=['"]([^'"]+)['"]/i),z=B?B[1]:Y.checkInput,q=W.replace(/class=['"][^'"]+['"]/i,"");return`<input type="checkbox" name="${g0(Q)}" value="${g0(G)}" class="${z}"${_?" checked":""}${q?` ${q}`:""}>`}),X=X.replace(/@radio\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)/g,(J,Q,G,K="")=>{let W=O$(K),U=Q7(Q,Z),_=U!==void 0&&U===G,B=W.match(/class=['"]([^'"]+)['"]/i),z=B?B[1]:Y.checkInput,q=W.replace(/class=['"][^'"]+['"]/i,"");return`<input type="radio" name="${g0(Q)}" value="${g0(G)}" class="${z}"${_?" checked":""}${q?` ${q}`:""}>`}),X=X.replace(/@file\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)/g,(J,Q,G="")=>{let K=O$(G),W=K.match(/accept=['"]([^'"]+)['"]/i),U=W?W[1]:"",_=K.includes("multiple"),B=G7(Q,Z),z=K.match(/class=['"]([^'"]+)['"]/i),q=P6(z?z[1]:"",Y.input,B,Y.inputError),j=K.replace(/class=['"][^'"]+['"]/gi,"").replace(/accept=['"][^'"]+['"]/gi,"").replace(/\bmultiple\b/gi,"").trim(),H=[`<input type="file" name="${g0(Q)}"`,`class="${q}"`];if(U)H.push(`accept="${g0(U)}"`);if(_)H.push("multiple");if(j)H.push(j);return`${H.join(" ")}>`}),X=X.replace(/@label\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)([\s\S]*?)@endlabel/g,(J,Q,G="",K)=>{let W=O$(G),U=W.match(/class=['"]([^'"]+)['"]/i),_=U?U[1]:Y.label,B=W.replace(/class=['"][^'"]+['"]/i,"");return`<label for="${g0(Q)}" class="${_}"${B?` ${B}`:""}>${K}</label>`}),X}function f6($,Z,Y=x6){return $.replace(/@error\(['"]([^'"]+)['"]\)([\s\S]*?)@enderror/g,(X,J,Q)=>{try{if(G7(J,Z))return Q.replace(/\{\{([^}]+)\}\}/g,(G,K)=>{try{if(K.trim()==="$message"||K.trim()==="message")return _W(J,Z);if(K.trim().includes("errors.first")||K.trim().includes("$errors.first")){if(typeof Z.errors?.first==="function")return Z.errors.first(J);return _W(J,Z)}let W=K.trim();if(_0(W)){let U=L0(W,Z);return U!==void 0?String(U):W}return W}catch{return K}});return""}catch(G){return console.error("Error processing @error directive:",G),X}})}function G7($,Z){if(!Z.errors)return!1;if(typeof Z.errors.has==="function")return Z.errors.has($);if(typeof Z.errors==="object")return Object.prototype.hasOwnProperty.call(Z.errors,$);return!1}function _W($,Z){if(!Z.errors)return"";if(typeof Z.errors.get==="function")return Z.errors.get($);if(typeof Z.errors==="object"&&Object.prototype.hasOwnProperty.call(Z.errors,$)){let Y=Z.errors[$];return Array.isArray(Y)?Y[0]:String(Y)}return""}function Q7($,Z){let Y;if(Z.old&&typeof Z.old==="function")return Z.old($);if(Z.old&&typeof Z.old==="object")return Z.old[$];if($.endsWith("[]")){let X=$.slice(0,-2);if(Y=Z[X],Y!==void 0)return Y}return Z[$]}function O$($){if(!$.trim())return"";let Z=[],Y=$.trim(),X=/([\w-]+)\s*:\s*(['"]?)([^,'"]*)\2(?:\s*,\s*|\s*$)/g,J;while((J=X.exec(Y))!==null){let[,Q,,G]=J;Z.push(`${Q}="${G.trim()}"`)}return Z.join(" ")}function GV($,Z){BW[$]=Z}function PZ($){let[Z,...Y]=$.split(":"),X=Y.length>0?Y.join(":").split(","):[];return{name:Z.trim(),params:X}}function zW($,Z,Y,X={}){let J=[],Q=Y.split("|").map((G)=>G.trim()).filter(Boolean);for(let G of Q){let K=PZ(G),W=BW[K.name];if(!W){console.warn(`Unknown validation rule: ${K.name}`);continue}if(K.name==="confirmed"){let _=`${$}_confirmation`;K.params=[X[_]]}let U=W(Z,K.params||[],$);if(U)J.push(K.message||U)}return{field:$,valid:J.length===0,errors:J}}function KV($,Z){let Y={};for(let[X,J]of Object.entries(Z)){let Q=zW(X,$[X],J,$);if(!Q.valid)Y[X]=Q.errors}return Y}function qW($,Z){return $.replace(/@validate\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]*)\})?\s*\)/g,(Y,X,J,Q)=>{let G=J.split("|").map((W)=>W.trim()),K=[];for(let W of G){let U=PZ(W);switch(U.name){case"required":K.push("required");break;case"email":K.push('type="email"');break;case"url":K.push('type="url"');break;case"numeric":case"integer":if(K.push('type="number"'),U.name==="integer")K.push('step="1"');break;case"min":if(U.params?.[0])K.push(`minlength="${U.params[0]}"`);break;case"max":if(U.params?.[0])K.push(`maxlength="${U.params[0]}"`);break;case"regex":if(U.params?.[0])K.push(`pattern="${U.params[0]}"`);break}}return`<!-- @validate:${X}:${J} -->${K.length>0?`<!-- attrs:${K.join(" ")} -->`:""}`})}function WV($){xZ[$.name]=$}function jW($,Z,Y={}){let X=[],J=Z.split("|").map((Q)=>Q.trim());for(let Q of J){let G=PZ(Q),K=xZ[G.name];if(!K){console.warn(`Unknown validation rule: ${G.name}`);continue}let W=K.validate($,G.params||[],Y);if(W!==!0)X.push(W)}return{valid:X.length===0,errors:X}}function UV($,Z){let Y={},X=!0;for(let[J,Q]of Object.entries(Z)){let G=jW($[J],Q,$);if(!G.valid)X=!1,Y[J]=G.errors}return{valid:X,errors:Y}}function _V($,Z){let Y=JSON.stringify(Z);return`
3815
+ ${u5(`@method('${q}')`,Z)}`;return H}),X=X.replace(/@endform/g,"</form>"),X=X.replace(/@input\(\s*(?:'([^']+)'|"([^"]+)")\s*(?:,\s*(?:(?:'([^']*)'|"([^"]*)")\s*)?)?(?:,\s*\{([^}]+)\})?\s*\)/g,(J,Q,G,K,W,U="")=>{let _=Q||G||"",B=K||W||"",z=O$(U),q=Q7(_,Z),j=q!==void 0&&q!==null?q:B||"",H=z.match(/type=['"]([^'"]+)['"]/i),O=H?H[1]:"text",F=G7(_,Z),L=z.match(/class=['"]([^'"]+)['"]/i),V=P4(L?L[1]:"",Y.input,F,Y.inputError),A=z.replace(/class=['"][^'"]+['"]/i,"");return A=A.replace(/type=['"][^'"]+['"]/i,""),`<input type="${g0(O)}" name="${g0(_)}" value="${g0(j)}" class="${V}"${A?` ${A}`:""}>`}),X=X.replace(/@textarea\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)([\s\S]*?)@endtextarea/g,(J,Q,G="",K="")=>{let W=O$(G),U=Q7(Q,Z)||K.trim(),_=G7(Q,Z),B=W.match(/class=['"]([^'"]+)['"]/i),z=P4(B?B[1]:"",Y.input,_,Y.inputError),q=W.replace(/class=['"][^'"]+['"]/i,"");return`<textarea name="${g0(Q)}" class="${z}"${q?` ${q}`:""}>${g0(U)}</textarea>`}),X=X.replace(/@select\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)([\s\S]*?)@endselect/g,(J,Q,G="",K)=>{let W=O$(G),U=Q7(Q,Z),_=G7(Q,Z),B=W.match(/class=['"]([^'"]+)['"]/i),z=P4(B?B[1]:"",Y.input,_,Y.inputError),q=W.replace(/class=['"][^'"]+['"]/i,""),j=K;if(U!==void 0)j=K.replace(/(<option[^>]*value=['"]([^'"]+)['"][^>]*>)/gi,(H,O,F)=>{if((Array.isArray(U)?U.some((V)=>String(V)===F):String(U)===F)&&!O.includes("selected"))return O.replace(/(<option)/,"$1 selected");return H});return`<select name="${g0(Q)}" class="${z}"${q?` ${q}`:""}>${j}</select>`}),X=X.replace(/@checkbox\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?(?:,\s*\{([^}]+)\})?\)/g,(J,Q,G="1",K="")=>{let W=O$(K),U=Q7(Q,Z),_=U!==void 0&&(Array.isArray(U)?U.some((j)=>String(j)===G):U===!0||String(U)===G),B=W.match(/class=['"]([^'"]+)['"]/i),z=B?B[1]:Y.checkInput,q=W.replace(/class=['"][^'"]+['"]/i,"");return`<input type="checkbox" name="${g0(Q)}" value="${g0(G)}" class="${z}"${_?" checked":""}${q?` ${q}`:""}>`}),X=X.replace(/@radio\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)/g,(J,Q,G,K="")=>{let W=O$(K),U=Q7(Q,Z),_=U!==void 0&&U===G,B=W.match(/class=['"]([^'"]+)['"]/i),z=B?B[1]:Y.checkInput,q=W.replace(/class=['"][^'"]+['"]/i,"");return`<input type="radio" name="${g0(Q)}" value="${g0(G)}" class="${z}"${_?" checked":""}${q?` ${q}`:""}>`}),X=X.replace(/@file\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)/g,(J,Q,G="")=>{let K=O$(G),W=K.match(/accept=['"]([^'"]+)['"]/i),U=W?W[1]:"",_=K.includes("multiple"),B=G7(Q,Z),z=K.match(/class=['"]([^'"]+)['"]/i),q=P4(z?z[1]:"",Y.input,B,Y.inputError),j=K.replace(/class=['"][^'"]+['"]/gi,"").replace(/accept=['"][^'"]+['"]/gi,"").replace(/\bmultiple\b/gi,"").trim(),H=[`<input type="file" name="${g0(Q)}"`,`class="${q}"`];if(U)H.push(`accept="${g0(U)}"`);if(_)H.push("multiple");if(j)H.push(j);return`${H.join(" ")}>`}),X=X.replace(/@label\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)([\s\S]*?)@endlabel/g,(J,Q,G="",K)=>{let W=O$(G),U=W.match(/class=['"]([^'"]+)['"]/i),_=U?U[1]:Y.label,B=W.replace(/class=['"][^'"]+['"]/i,"");return`<label for="${g0(Q)}" class="${_}"${B?` ${B}`:""}>${K}</label>`}),X}function f4($,Z,Y=x4){return $.replace(/@error\(['"]([^'"]+)['"]\)([\s\S]*?)@enderror/g,(X,J,Q)=>{try{if(G7(J,Z))return Q.replace(/\{\{([^}]+)\}\}/g,(G,K)=>{try{if(K.trim()==="$message"||K.trim()==="message")return _W(J,Z);if(K.trim().includes("errors.first")||K.trim().includes("$errors.first")){if(typeof Z.errors?.first==="function")return Z.errors.first(J);return _W(J,Z)}let W=K.trim();if(_0(W)){let U=L0(W,Z);return U!==void 0?String(U):W}return W}catch{return K}});return""}catch(G){return console.error("Error processing @error directive:",G),X}})}function G7($,Z){if(!Z.errors)return!1;if(typeof Z.errors.has==="function")return Z.errors.has($);if(typeof Z.errors==="object")return Object.prototype.hasOwnProperty.call(Z.errors,$);return!1}function _W($,Z){if(!Z.errors)return"";if(typeof Z.errors.get==="function")return Z.errors.get($);if(typeof Z.errors==="object"&&Object.prototype.hasOwnProperty.call(Z.errors,$)){let Y=Z.errors[$];return Array.isArray(Y)?Y[0]:String(Y)}return""}function Q7($,Z){let Y;if(Z.old&&typeof Z.old==="function")return Z.old($);if(Z.old&&typeof Z.old==="object")return Z.old[$];if($.endsWith("[]")){let X=$.slice(0,-2);if(Y=Z[X],Y!==void 0)return Y}return Z[$]}function O$($){if(!$.trim())return"";let Z=[],Y=$.trim(),X=/([\w-]+)\s*:\s*(['"]?)([^,'"]*)\2(?:\s*,\s*|\s*$)/g,J;while((J=X.exec(Y))!==null){let[,Q,,G]=J;Z.push(`${Q}="${G.trim()}"`)}return Z.join(" ")}function GV($,Z){BW[$]=Z}function PZ($){let[Z,...Y]=$.split(":"),X=Y.length>0?Y.join(":").split(","):[];return{name:Z.trim(),params:X}}function zW($,Z,Y,X={}){let J=[],Q=Y.split("|").map((G)=>G.trim()).filter(Boolean);for(let G of Q){let K=PZ(G),W=BW[K.name];if(!W){console.warn(`Unknown validation rule: ${K.name}`);continue}if(K.name==="confirmed"){let _=`${$}_confirmation`;K.params=[X[_]]}let U=W(Z,K.params||[],$);if(U)J.push(K.message||U)}return{field:$,valid:J.length===0,errors:J}}function KV($,Z){let Y={};for(let[X,J]of Object.entries(Z)){let Q=zW(X,$[X],J,$);if(!Q.valid)Y[X]=Q.errors}return Y}function qW($,Z){return $.replace(/@validate\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]*)\})?\s*\)/g,(Y,X,J,Q)=>{let G=J.split("|").map((W)=>W.trim()),K=[];for(let W of G){let U=PZ(W);switch(U.name){case"required":K.push("required");break;case"email":K.push('type="email"');break;case"url":K.push('type="url"');break;case"numeric":case"integer":if(K.push('type="number"'),U.name==="integer")K.push('step="1"');break;case"min":if(U.params?.[0])K.push(`minlength="${U.params[0]}"`);break;case"max":if(U.params?.[0])K.push(`maxlength="${U.params[0]}"`);break;case"regex":if(U.params?.[0])K.push(`pattern="${U.params[0]}"`);break}}return`<!-- @validate:${X}:${J} -->${K.length>0?`<!-- attrs:${K.join(" ")} -->`:""}`})}function WV($){xZ[$.name]=$}function jW($,Z,Y={}){let X=[],J=Z.split("|").map((Q)=>Q.trim());for(let Q of J){let G=PZ(Q),K=xZ[G.name];if(!K){console.warn(`Unknown validation rule: ${G.name}`);continue}let W=K.validate($,G.params||[],Y);if(W!==!0)X.push(W)}return{valid:X.length===0,errors:X}}function UV($,Z){let Y={},X=!0;for(let[J,Q]of Object.entries(Z)){let G=jW($[J],Q,$);if(!G.valid)X=!1,Y[J]=G.errors}return{valid:X,errors:Y}}function _V($,Z){let Y=JSON.stringify(Z);return`
3816
3816
  <script>
3817
3817
  (function() {
3818
3818
  const form = document.getElementById('${$}');
@@ -3864,16 +3864,16 @@ catch { return 'Please enter a valid URL'; } },
3864
3864
  }
3865
3865
  });
3866
3866
  })();
3867
- </script>`.trim()}var x6,BW,xZ;var vZ=D(()=>{h0();x6={input:"form-control",inputError:"is-invalid",checkInput:"form-check-input",label:"form-label",errorFeedback:"invalid-feedback"};BW={required:($,Z,Y)=>{if($===void 0||$===null||$===""||Array.isArray($)&&$.length===0)return`The ${Y} field is required.`;return null},email:($,Z,Y)=>{if(!$)return null;if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String($)))return`The ${Y} field must be a valid email address.`;return null},min:($,Z,Y)=>{if(!$)return null;let X=Number(Z[0]);if(typeof $==="string"&&$.length<X)return`The ${Y} field must be at least ${X} characters.`;if(typeof $==="number"&&$<X)return`The ${Y} field must be at least ${X}.`;if(Array.isArray($)&&$.length<X)return`The ${Y} field must have at least ${X} items.`;return null},max:($,Z,Y)=>{if(!$)return null;let X=Number(Z[0]);if(typeof $==="string"&&$.length>X)return`The ${Y} field must not exceed ${X} characters.`;if(typeof $==="number"&&$>X)return`The ${Y} field must not exceed ${X}.`;if(Array.isArray($)&&$.length>X)return`The ${Y} field must not have more than ${X} items.`;return null},confirmed:($,Z,Y)=>{if(Z[0]!==void 0&&$!==Z[0])return`The ${Y} confirmation does not match.`;return null},numeric:($,Z,Y)=>{if(!$)return null;if(Number.isNaN(Number($)))return`The ${Y} field must be a number.`;return null},integer:($,Z,Y)=>{if(!$)return null;if(!Number.isInteger(Number($)))return`The ${Y} field must be an integer.`;return null},alpha:($,Z,Y)=>{if(!$)return null;if(!/^[a-z]+$/i.test(String($)))return`The ${Y} field must only contain letters.`;return null},alphanumeric:($,Z,Y)=>{if(!$)return null;if(!/^[a-z0-9]+$/i.test(String($)))return`The ${Y} field must only contain letters and numbers.`;return null},url:($,Z,Y)=>{if(!$)return null;try{return new URL(String($))?null:null}catch{return`The ${Y} field must be a valid URL.`}},regex:($,Z,Y)=>{if(!$)return null;try{if(!new RegExp(Z[0]).test(String($)))return`The ${Y} field format is invalid.`;return null}catch{return`The ${Y} field has an invalid validation pattern.`}},in:($,Z,Y)=>{if(!$)return null;if(!Z.includes(String($)))return`The ${Y} field must be one of: ${Z.join(", ")}.`;return null},notIn:($,Z,Y)=>{if(!$)return null;if(Z.includes(String($)))return`The ${Y} field must not be: ${Z.join(", ")}.`;return null},date:($,Z,Y)=>{if(!$)return null;let X=new Date($);if(Number.isNaN(X.getTime()))return`The ${Y} field must be a valid date.`;return null},before:($,Z,Y)=>{if(!$)return null;let X=new Date($),J=new Date(Z[0]);if(X>=J)return`The ${Y} field must be before ${Z[0]}.`;return null},after:($,Z,Y)=>{if(!$)return null;let X=new Date($),J=new Date(Z[0]);if(X<=J)return`The ${Y} field must be after ${Z[0]}.`;return null}};xZ={required:{name:"required",validate:($)=>{if($===null||$===void 0||$==="")return"This field is required";if(Array.isArray($)&&$.length===0)return"This field is required";return!0},toHtml5:()=>["required"],message:"This field is required"},email:{name:"email",validate:($)=>{if(!$)return!0;return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String($))||"Please enter a valid email address"},toHtml5:()=>['type="email"'],message:"Please enter a valid email address"},url:{name:"url",validate:($)=>{if(!$)return!0;try{return new URL(String($)).protocol.startsWith("http")||"Please enter a valid URL"}catch{return"Please enter a valid URL"}},toHtml5:()=>['type="url"'],message:"Please enter a valid URL"},numeric:{name:"numeric",validate:($)=>{if(!$)return!0;return!Number.isNaN(Number($))||"Please enter a number"},toHtml5:()=>['type="number"'],message:"Please enter a number"},integer:{name:"integer",validate:($)=>{if(!$)return!0;let Z=Number($);return Number.isInteger(Z)||"Please enter a whole number"},toHtml5:()=>['type="number"','step="1"'],message:"Please enter a whole number"},alpha:{name:"alpha",validate:($)=>{if(!$)return!0;return/^[a-z]+$/i.test(String($))||"Please enter only letters"},toHtml5:()=>['pattern="[a-zA-Z]+"'],message:"Please enter only letters"},alphanumeric:{name:"alphanumeric",validate:($)=>{if(!$)return!0;return/^[a-z0-9]+$/i.test(String($))||"Please enter only letters and numbers"},toHtml5:()=>['pattern="[a-zA-Z0-9]+"'],message:"Please enter only letters and numbers"},min:{name:"min",validate:($,Z)=>{if(!$)return!0;let Y=Number(Z[0]);if(typeof $==="string")return $.length>=Y||`Must be at least ${Y} characters`;if(typeof $==="number")return $>=Y||`Must be at least ${Y}`;if(Array.isArray($))return $.length>=Y||`Must have at least ${Y} items`;return!0},toHtml5:($)=>[`minlength="${$[0]}"`,`min="${$[0]}"`],message:"Must be at least {{param}} characters"},max:{name:"max",validate:($,Z)=>{if(!$)return!0;let Y=Number(Z[0]);if(typeof $==="string")return $.length<=Y||`Must be no more than ${Y} characters`;if(typeof $==="number")return $<=Y||`Must be no more than ${Y}`;if(Array.isArray($))return $.length<=Y||`Must have no more than ${Y} items`;return!0},toHtml5:($)=>[`maxlength="${$[0]}"`,`max="${$[0]}"`],message:"Must be no more than {{param}} characters"},between:{name:"between",validate:($,Z)=>{if(!$)return!0;let[Y,X]=Z.map(Number);if(typeof $==="string")return $.length>=Y&&$.length<=X||`Must be between ${Y} and ${X} characters`;if(typeof $==="number")return $>=Y&&$<=X||`Must be between ${Y} and ${X}`;return!0},toHtml5:($)=>[`minlength="${$[0]}"`,`maxlength="${$[1]}"`],message:"Must be between {{min}} and {{max}}"},confirmed:{name:"confirmed",validate:($,Z,Y)=>{let X=Object.keys(Y);for(let J of X)if(J.endsWith("_confirmation")&&Y[J]===$)return!0;return"Confirmation does not match"},message:"Confirmation does not match"},in:{name:"in",validate:($,Z)=>{if(!$)return!0;return Z.includes(String($))||`Must be one of: ${Z.join(", ")}`},message:"Must be one of: {{values}}"},notIn:{name:"notIn",validate:($,Z)=>{if(!$)return!0;return!Z.includes(String($))||`Must not be: ${Z.join(", ")}`},message:"Must not be: {{values}}"},regex:{name:"regex",validate:($,Z)=>{if(!$)return!0;try{return new RegExp(Z[0]).test(String($))||"Invalid format"}catch{return"Invalid format"}},toHtml5:($)=>[`pattern="${$[0]}"`],message:"Invalid format"},date:{name:"date",validate:($)=>{if(!$)return!0;let Z=new Date(String($));return!Number.isNaN(Z.getTime())||"Please enter a valid date"},toHtml5:()=>['type="date"'],message:"Please enter a valid date"},before:{name:"before",validate:($,Z)=>{if(!$)return!0;let Y=new Date(String($)),X=new Date(Z[0]);return Y<X||`Must be before ${Z[0]}`},toHtml5:($)=>[`max="${$[0]}"`],message:"Must be before {{date}}"},after:{name:"after",validate:($,Z)=>{if(!$)return!0;let Y=new Date(String($)),X=new Date(Z[0]);return Y>X||`Must be after ${Z[0]}`},toHtml5:($)=>[`min="${$[0]}"`],message:"Must be after {{date}}"},size:{name:"size",validate:($,Z)=>{if(!$)return!0;let Y=Number(Z[0]);if(typeof $==="string")return $.length===Y||`Must be exactly ${Y} characters`;if(Array.isArray($))return $.length===Y||`Must have exactly ${Y} items`;return!0},message:"Must be exactly {{size}}"},phone:{name:"phone",validate:($)=>{if(!$)return!0;return/^\+?\(?\d{1,4}\)?[-\s./\d]*$/.test(String($))||"Please enter a valid phone number"},toHtml5:()=>['type="tel"','pattern="\\+?\\(?\\d{1,4}\\)?[-\\s./\\d]*"'],message:"Please enter a valid phone number"}}});import HW from"path";function BV($){if($)delete e0[$];else for(let Z of Object.keys(e0))delete e0[Z]}function zV(){let $=Object.entries(e0).map(([Z,Y])=>({locale:Z,loadedAt:new Date(Y.loadedAt),keyCount:LW(Y.translations)}));return{size:Object.keys(e0).length,locales:Object.keys(e0),entries:$}}function LW($,Z=0){for(let Y of Object.values($))if(Z++,Y&&typeof Y==="object"&&!Array.isArray(Y))Z=LW(Y,Z);return Z}function qV($,Z=0){if(Z<=0)return!1;return Date.now()-$.loadedAt>Z}function jV($){if(e0[$])return"loaded";return i1[$]||"idle"}function HV($){return i1[$]==="loading"}function OV($){return!!e0[$]}async function FW($,Z){let{locales:Y,parallel:X=!0,priority:J={},onLocaleLoaded:Q,onComplete:G,onError:K}=$,W=X?Y:[...Y].sort((U,_)=>(J[_]||0)-(J[U]||0));if(X){let U=W.map(async(_)=>{try{await K7(_,Z),Q?.(_)}catch(B){K?.(_,B instanceof Error?B:Error(String(B)))}});await Promise.all(U)}else for(let U of W)try{await K7(U,Z),Q?.(U)}catch(_){K?.(U,_ instanceof Error?_:Error(String(_)))}G?.()}function LV($,Z){queueMicrotask(()=>{FW($,Z).catch((Y)=>{if(Z.debug)console.error("Background preload error:",Y)})})}async function K7($,Z){if({...h6,...Z.i18n}.cache&&e0[$]){let J=e0[$],Q=Z.i18n?.cacheMaxAge??0;if(!qV(J,Q))return J.translations}if(L1[$]?.state==="loading")return L1[$].promise;i1[$]="loading";let X=NW($,Z).then((J)=>{return i1[$]="loaded",delete L1[$],J}).catch((J)=>{throw i1[$]="error",L1[$]={promise:X,state:"error",error:J instanceof Error?J:Error(String(J))},J});return L1[$]={promise:X,state:"loading"},X}function VW($){return e0[$]?.translations}async function FV($,Z){let Y=VW($);if(Y)return Y;return K7($,Z)}async function VV($,Z){if(e0[$])return e0[$].translations;if(L1[$]){if(Z)return Promise.race([L1[$].promise,new Promise((Y,X)=>setTimeout(()=>X(Error(`Timeout waiting for locale: ${$}`)),Z))]);return L1[$].promise}throw Error(`Locale "${$}" is not loading. Call loadTranslationLazy first.`)}function NV(){return Object.entries(i1).filter(([$,Z])=>Z==="loading").map(([$])=>$)}function AV($){if($)delete L1[$],delete i1[$];else{for(let Z of Object.keys(L1))delete L1[Z];for(let Z of Object.keys(i1))delete i1[Z]}}async function NW($,Z){let Y={...h6,...Z.i18n},X=HW.resolve(import.meta.dir,"..",Y.translationsDir),J=MV(Y.format),Q=HW.join(X,`${$}${J}`);try{let G={};try{let K=await import(Q);G=K.default||K}catch(K){let W=await Bun.file(Q).text();if(Y.format==="yaml"||Y.format==="yml")G=wV(W);else if(Y.format==="json")G=JSON.parse(W);else throw K}if(Y.cache)e0[$]={translations:G,loadedAt:Date.now(),locale:$};return G}catch(G){if(Z.debug)console.error(`Error loading translation file for locale "${$}":`,G);if($!==Y.defaultLocale)return NW(Y.defaultLocale,Z);return{}}}async function AW($,Z){return K7($,Z)}function wV($){let Z={},Y=$.split(`
3868
- `),X=[{obj:Z,indent:-1}];for(let J of Y){let Q=J.replace(/#.*$/,"").trimEnd();if(!Q.trim())continue;let G=Q.search(/\S/);if(G===-1)continue;while(X.length>1&&X[X.length-1].indent>=G)X.pop();let K=X[X.length-1].obj,W=Q.match(/^(\s*)(\S[^:]*):\s*(.*)$/);if(W){let[,,U,_]=W,B=U.trim(),z=_.trim();if(z==="")K[B]={},X.push({obj:K[B],indent:G});else K[B]=RV(z)}}return Z}function RV($){if($.startsWith("'")&&$.endsWith("'")||$.startsWith('"')&&$.endsWith('"'))return $.slice(1,-1);let Z=$.toLowerCase();if(Z==="true"||Z==="yes")return!0;if(Z==="false"||Z==="no")return!1;if(Z==="null"||Z==="~")return null;let Y=Number($);if(!Number.isNaN(Y))return Y;return $}function MV($){switch($){case"yaml":return".yaml";case"yml":return".yml";case"js":return".js";case"json":default:return".json"}}function TV($,Z){for(let Y of $){let X=Y.trim(),J=X.match(/^\{(\d+)\}\s*(.*)$/);if(J){let G=Number.parseInt(J[1],10);if(Z===G)return J[2];continue}let Q=X.match(/^\[(\d+),(\d+|\*)\]\s*(.*)$/);if(Q){let G=Number.parseInt(Q[1],10),K=Q[2]==="*"?Number.POSITIVE_INFINITY:Number.parseInt(Q[2],10);if(Z>=G&&Z<=K)return Q[3];continue}}if($.length===2)return Z===1?$[0].trim():$[1].trim();if(Z<$.length)return $[Z].trim();return $[$.length-1].trim()}function wW($,Z={}){return RW($,Z)}function RW($,Z){let Y="",X=0;while(X<$.length)if($[X]==="{"){let J=EV($,X);if(J===-1){Y+=$[X],X++;continue}let Q=$.slice(X+1,J);Y+=IV(Q,Z),X=J+1}else if($[X]==="'"&&X+1<$.length)if($[X+1]==="'")Y+="'",X+=2;else if($[X+1]==="{"||$[X+1]==="}")Y+=$[X+1],X+=2;else Y+=$[X],X++;else Y+=$[X],X++;return Y}function EV($,Z){let Y=0;for(let X=Z;X<$.length;X++)if($[X]==="{")Y++;else if($[X]==="}"){if(Y--,Y===0)return X}return-1}function IV($,Z){let Y=DV($);if(Y.length===0)return`{${$}}`;let X=Y[0].trim(),J=Z[X];if(Y.length===1)return J!==void 0?String(J):`{${X}}`;switch(Y[1].trim().toLowerCase()){case"plural":return kV(J,Y.slice(2).join(","),Z);case"select":return bV(J,Y.slice(2).join(","));case"selectordinal":return CV(J,Y.slice(2).join(","));case"number":return PV(J,Y[2]?.trim());case"date":return xV(J,Y[2]?.trim());case"time":return vV(J,Y[2]?.trim());default:return J!==void 0?String(J):`{${$}}`}}function DV($){let Z=[],Y="",X=0;for(let J=0;J<$.length;J++){let Q=$[J];if(Q==="{")X++,Y+=Q;else if(Q==="}")X--,Y+=Q;else if(Q===","&&X===0)Z.push(Y),Y="";else Y+=Q}if(Y)Z.push(Y);return Z}function kV($,Z,Y){let X=Number($)||0,J=gZ(Z),Q=`=${X}`;if(J[Q])return fZ(J[Q],X,Y);let G=SV(X);if(J[G])return fZ(J[G],X,Y);if(J.other)return fZ(J.other,X,Y);return String(X)}function fZ($,Z,Y){let X=$.replace(/#/g,String(Z));return RW(X,Y)}function SV($){let Z=Math.abs($),Y=Math.floor(Z),X=String($).includes(".")?String($).split(".")[1].length:0;if(Y===1&&X===0)return"one";return"other"}function bV($,Z){let Y=String($||""),X=gZ(Z);if(X[Y])return X[Y];return X.other||String($)}function CV($,Z){let Y=Number($)||0,X=gZ(Z),J=yV(Y);if(X[J])return X[J].replace(/#/g,String(Y));if(X.other)return X.other.replace(/#/g,String(Y));return String(Y)}function yV($){let Z=Math.abs($),Y=Z%10,X=Z%100;if(Y===1&&X!==11)return"one";if(Y===2&&X!==12)return"two";if(Y===3&&X!==13)return"few";return"other"}function gZ($){let Z={},Y=/(\w+|=\d+)\s*\{([^{}]*(?:\{[^{}]*\}[^{}]*)*)\}/g,X=Y.exec($);while(X!==null)Z[X[1]]=X[2],X=Y.exec($);return Z}function PV($,Z){let Y=Number($);if(Number.isNaN(Y))return String($);switch(Z){case"integer":return Math.floor(Y).toLocaleString();case"percent":return`${(Y*100).toFixed(0)}%`;case"currency":return Y.toLocaleString(void 0,{style:"currency",currency:"USD"});default:return Y.toLocaleString()}}function xV($,Z){let Y=$ instanceof Date?$:new Date(String($));if(Number.isNaN(Y.getTime()))return String($);let X={};switch(Z){case"short":X.dateStyle="short";break;case"medium":X.dateStyle="medium";break;case"long":X.dateStyle="long";break;case"full":X.dateStyle="full";break;default:X.dateStyle="medium"}return Y.toLocaleDateString(void 0,X)}function vV($,Z){let Y=$ instanceof Date?$:new Date(String($));if(Number.isNaN(Y.getTime()))return String($);let X={};switch(Z){case"short":X.timeStyle="short";break;case"medium":X.timeStyle="medium";break;case"long":X.timeStyle="long";break;case"full":X.timeStyle="full";break;default:X.timeStyle="short"}return Y.toLocaleTimeString(void 0,X)}function MW($){return/\{[^}]+,\s*(?:plural|select|selectordinal|number|date|time)\s*,/.test($)}function g6($,Z,Y=!0,X={}){let J=$.split("."),Q=Z;for(let K of J){if(Q===void 0||Q===null)break;Q=Q[K]}if(Q===void 0||Q===null)return Y?$:"";let G=String(Q);if(MW(G))return wW(G,X);if(G.includes("|")&&"count"in X){let K=Number(X.count),W=G.split("|");G=TV(W,K)}for(let[K,W]of Object.entries(X)){let U=K.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");G=G.replace(new RegExp(`:${U}`,"g"),String(W))}return G}async function hZ($,Z,Y,X){let J=$,Q=/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\})\s*)?\)([\s\S]*?)@endtranslate/g,G={...h6,...X.i18n},K=await AW(G.locale,X);Z.__translations=K,Z.__locale=G.locale,Z.__i18nConfig=G,J=await OW(J,Q,async(_,B,z,q,j)=>{try{let H={};if(z)try{let F=[()=>JSON.parse(z),()=>{let L=`{"data":${z}}`,V=JSON.parse(L);return typeof V.data==="object"?V.data:{}},()=>{return k0(z,Z)}];for(let L of F)try{if(H=L(),Object.keys(H).length>0)break}catch{}}catch(F){if(X.debug)console.error("Error parsing parameters for @translate directive:",F)}return g6(B,K,G.fallbackToKey,H)||q.trim()}catch(H){if(X.debug)console.error("Error processing @translate directive:",H);return $0("Translate",`Error in @translate('${B}'): ${H instanceof Error?H.message:String(H)}`,o.EVALUATION_ERROR)}});let W=/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]+\})\s*)?\)/g;if(X.debug){console.warn(`Processing translations in template. Sections: ${J.includes("<h2>Translation with Parameters</h2>")?"Parameters section found":"Parameters section missing"}`);let _=[...J.matchAll(W)];console.warn(`Found ${_.length} @translate matches`),_.forEach((B,z)=>console.warn(`Match ${z}: ${B[0]}, Key: ${B[1]}, Params: ${B[2]||"none"}`))}return J=await OW(J,/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\})\s*)?\)/g,async(_,B,z,q)=>{try{let j={};if(z)try{let H=[()=>JSON.parse(z),()=>{let O=`{"data":${z}}`,F=JSON.parse(O);return typeof F.data==="object"?F.data:{}},()=>{return k0(z,Z)}];for(let O of H)try{if(j=O(),Object.keys(j).length>0)break}catch{}}catch(H){if(X.debug)console.error("Error parsing parameters for @translate directive:",H)}return g6(B,K,G.fallbackToKey,j)}catch(j){if(X.debug)console.error("Error processing @translate directive:",j);return $0("Translate",`Error in @translate('${B}'): ${j instanceof Error?j.message:String(j)}`,o.EVALUATION_ERROR)}}),J}async function OW($,Z,Y){let X=[];return $.replace(Z,(Q,...G)=>{let K=Y(Q,...G).then((W)=>({match:Q,replacement:W}));return X.push(K),Q}),(await Promise.all(X)).reduce((Q,{match:G,replacement:K})=>Q.replace(G,K),$)}function fV($,Z=!0){return(Y,X={})=>{return g6(Y,$,Z,X)}}var h6,e0,L1,i1;var dZ=D(()=>{X1();h0();h6={defaultLocale:"en",locale:"en",translationsDir:"translations",format:"yaml",fallbackToKey:!0,cache:!0},e0={},L1={},i1={}});var m6={};Q0(m6,{stripTypeScript:()=>DW,hasVariables:()=>pZ,extractVariables:()=>R0,extractScriptFromTemplate:()=>uZ,convertToCommonJS:()=>d6});import W7 from"path";function gV($){let Z=[],Y=0,X=$.split(`
3867
+ </script>`.trim()}var x4,BW,xZ;var vZ=D(()=>{h0();x4={input:"form-control",inputError:"is-invalid",checkInput:"form-check-input",label:"form-label",errorFeedback:"invalid-feedback"};BW={required:($,Z,Y)=>{if($===void 0||$===null||$===""||Array.isArray($)&&$.length===0)return`The ${Y} field is required.`;return null},email:($,Z,Y)=>{if(!$)return null;if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String($)))return`The ${Y} field must be a valid email address.`;return null},min:($,Z,Y)=>{if(!$)return null;let X=Number(Z[0]);if(typeof $==="string"&&$.length<X)return`The ${Y} field must be at least ${X} characters.`;if(typeof $==="number"&&$<X)return`The ${Y} field must be at least ${X}.`;if(Array.isArray($)&&$.length<X)return`The ${Y} field must have at least ${X} items.`;return null},max:($,Z,Y)=>{if(!$)return null;let X=Number(Z[0]);if(typeof $==="string"&&$.length>X)return`The ${Y} field must not exceed ${X} characters.`;if(typeof $==="number"&&$>X)return`The ${Y} field must not exceed ${X}.`;if(Array.isArray($)&&$.length>X)return`The ${Y} field must not have more than ${X} items.`;return null},confirmed:($,Z,Y)=>{if(Z[0]!==void 0&&$!==Z[0])return`The ${Y} confirmation does not match.`;return null},numeric:($,Z,Y)=>{if(!$)return null;if(Number.isNaN(Number($)))return`The ${Y} field must be a number.`;return null},integer:($,Z,Y)=>{if(!$)return null;if(!Number.isInteger(Number($)))return`The ${Y} field must be an integer.`;return null},alpha:($,Z,Y)=>{if(!$)return null;if(!/^[a-z]+$/i.test(String($)))return`The ${Y} field must only contain letters.`;return null},alphanumeric:($,Z,Y)=>{if(!$)return null;if(!/^[a-z0-9]+$/i.test(String($)))return`The ${Y} field must only contain letters and numbers.`;return null},url:($,Z,Y)=>{if(!$)return null;try{return new URL(String($))?null:null}catch{return`The ${Y} field must be a valid URL.`}},regex:($,Z,Y)=>{if(!$)return null;try{if(!new RegExp(Z[0]).test(String($)))return`The ${Y} field format is invalid.`;return null}catch{return`The ${Y} field has an invalid validation pattern.`}},in:($,Z,Y)=>{if(!$)return null;if(!Z.includes(String($)))return`The ${Y} field must be one of: ${Z.join(", ")}.`;return null},notIn:($,Z,Y)=>{if(!$)return null;if(Z.includes(String($)))return`The ${Y} field must not be: ${Z.join(", ")}.`;return null},date:($,Z,Y)=>{if(!$)return null;let X=new Date($);if(Number.isNaN(X.getTime()))return`The ${Y} field must be a valid date.`;return null},before:($,Z,Y)=>{if(!$)return null;let X=new Date($),J=new Date(Z[0]);if(X>=J)return`The ${Y} field must be before ${Z[0]}.`;return null},after:($,Z,Y)=>{if(!$)return null;let X=new Date($),J=new Date(Z[0]);if(X<=J)return`The ${Y} field must be after ${Z[0]}.`;return null}};xZ={required:{name:"required",validate:($)=>{if($===null||$===void 0||$==="")return"This field is required";if(Array.isArray($)&&$.length===0)return"This field is required";return!0},toHtml5:()=>["required"],message:"This field is required"},email:{name:"email",validate:($)=>{if(!$)return!0;return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String($))||"Please enter a valid email address"},toHtml5:()=>['type="email"'],message:"Please enter a valid email address"},url:{name:"url",validate:($)=>{if(!$)return!0;try{return new URL(String($)).protocol.startsWith("http")||"Please enter a valid URL"}catch{return"Please enter a valid URL"}},toHtml5:()=>['type="url"'],message:"Please enter a valid URL"},numeric:{name:"numeric",validate:($)=>{if(!$)return!0;return!Number.isNaN(Number($))||"Please enter a number"},toHtml5:()=>['type="number"'],message:"Please enter a number"},integer:{name:"integer",validate:($)=>{if(!$)return!0;let Z=Number($);return Number.isInteger(Z)||"Please enter a whole number"},toHtml5:()=>['type="number"','step="1"'],message:"Please enter a whole number"},alpha:{name:"alpha",validate:($)=>{if(!$)return!0;return/^[a-z]+$/i.test(String($))||"Please enter only letters"},toHtml5:()=>['pattern="[a-zA-Z]+"'],message:"Please enter only letters"},alphanumeric:{name:"alphanumeric",validate:($)=>{if(!$)return!0;return/^[a-z0-9]+$/i.test(String($))||"Please enter only letters and numbers"},toHtml5:()=>['pattern="[a-zA-Z0-9]+"'],message:"Please enter only letters and numbers"},min:{name:"min",validate:($,Z)=>{if(!$)return!0;let Y=Number(Z[0]);if(typeof $==="string")return $.length>=Y||`Must be at least ${Y} characters`;if(typeof $==="number")return $>=Y||`Must be at least ${Y}`;if(Array.isArray($))return $.length>=Y||`Must have at least ${Y} items`;return!0},toHtml5:($)=>[`minlength="${$[0]}"`,`min="${$[0]}"`],message:"Must be at least {{param}} characters"},max:{name:"max",validate:($,Z)=>{if(!$)return!0;let Y=Number(Z[0]);if(typeof $==="string")return $.length<=Y||`Must be no more than ${Y} characters`;if(typeof $==="number")return $<=Y||`Must be no more than ${Y}`;if(Array.isArray($))return $.length<=Y||`Must have no more than ${Y} items`;return!0},toHtml5:($)=>[`maxlength="${$[0]}"`,`max="${$[0]}"`],message:"Must be no more than {{param}} characters"},between:{name:"between",validate:($,Z)=>{if(!$)return!0;let[Y,X]=Z.map(Number);if(typeof $==="string")return $.length>=Y&&$.length<=X||`Must be between ${Y} and ${X} characters`;if(typeof $==="number")return $>=Y&&$<=X||`Must be between ${Y} and ${X}`;return!0},toHtml5:($)=>[`minlength="${$[0]}"`,`maxlength="${$[1]}"`],message:"Must be between {{min}} and {{max}}"},confirmed:{name:"confirmed",validate:($,Z,Y)=>{let X=Object.keys(Y);for(let J of X)if(J.endsWith("_confirmation")&&Y[J]===$)return!0;return"Confirmation does not match"},message:"Confirmation does not match"},in:{name:"in",validate:($,Z)=>{if(!$)return!0;return Z.includes(String($))||`Must be one of: ${Z.join(", ")}`},message:"Must be one of: {{values}}"},notIn:{name:"notIn",validate:($,Z)=>{if(!$)return!0;return!Z.includes(String($))||`Must not be: ${Z.join(", ")}`},message:"Must not be: {{values}}"},regex:{name:"regex",validate:($,Z)=>{if(!$)return!0;try{return new RegExp(Z[0]).test(String($))||"Invalid format"}catch{return"Invalid format"}},toHtml5:($)=>[`pattern="${$[0]}"`],message:"Invalid format"},date:{name:"date",validate:($)=>{if(!$)return!0;let Z=new Date(String($));return!Number.isNaN(Z.getTime())||"Please enter a valid date"},toHtml5:()=>['type="date"'],message:"Please enter a valid date"},before:{name:"before",validate:($,Z)=>{if(!$)return!0;let Y=new Date(String($)),X=new Date(Z[0]);return Y<X||`Must be before ${Z[0]}`},toHtml5:($)=>[`max="${$[0]}"`],message:"Must be before {{date}}"},after:{name:"after",validate:($,Z)=>{if(!$)return!0;let Y=new Date(String($)),X=new Date(Z[0]);return Y>X||`Must be after ${Z[0]}`},toHtml5:($)=>[`min="${$[0]}"`],message:"Must be after {{date}}"},size:{name:"size",validate:($,Z)=>{if(!$)return!0;let Y=Number(Z[0]);if(typeof $==="string")return $.length===Y||`Must be exactly ${Y} characters`;if(Array.isArray($))return $.length===Y||`Must have exactly ${Y} items`;return!0},message:"Must be exactly {{size}}"},phone:{name:"phone",validate:($)=>{if(!$)return!0;return/^\+?\(?\d{1,4}\)?[-\s./\d]*$/.test(String($))||"Please enter a valid phone number"},toHtml5:()=>['type="tel"','pattern="\\+?\\(?\\d{1,4}\\)?[-\\s./\\d]*"'],message:"Please enter a valid phone number"}}});import HW from"path";function BV($){if($)delete e0[$];else for(let Z of Object.keys(e0))delete e0[Z]}function zV(){let $=Object.entries(e0).map(([Z,Y])=>({locale:Z,loadedAt:new Date(Y.loadedAt),keyCount:LW(Y.translations)}));return{size:Object.keys(e0).length,locales:Object.keys(e0),entries:$}}function LW($,Z=0){for(let Y of Object.values($))if(Z++,Y&&typeof Y==="object"&&!Array.isArray(Y))Z=LW(Y,Z);return Z}function qV($,Z=0){if(Z<=0)return!1;return Date.now()-$.loadedAt>Z}function jV($){if(e0[$])return"loaded";return i1[$]||"idle"}function HV($){return i1[$]==="loading"}function OV($){return!!e0[$]}async function FW($,Z){let{locales:Y,parallel:X=!0,priority:J={},onLocaleLoaded:Q,onComplete:G,onError:K}=$,W=X?Y:[...Y].sort((U,_)=>(J[_]||0)-(J[U]||0));if(X){let U=W.map(async(_)=>{try{await K7(_,Z),Q?.(_)}catch(B){K?.(_,B instanceof Error?B:Error(String(B)))}});await Promise.all(U)}else for(let U of W)try{await K7(U,Z),Q?.(U)}catch(_){K?.(U,_ instanceof Error?_:Error(String(_)))}G?.()}function LV($,Z){queueMicrotask(()=>{FW($,Z).catch((Y)=>{if(Z.debug)console.error("Background preload error:",Y)})})}async function K7($,Z){if({...h4,...Z.i18n}.cache&&e0[$]){let J=e0[$],Q=Z.i18n?.cacheMaxAge??0;if(!qV(J,Q))return J.translations}if(L1[$]?.state==="loading")return L1[$].promise;i1[$]="loading";let X=NW($,Z).then((J)=>{return i1[$]="loaded",delete L1[$],J}).catch((J)=>{throw i1[$]="error",L1[$]={promise:X,state:"error",error:J instanceof Error?J:Error(String(J))},J});return L1[$]={promise:X,state:"loading"},X}function VW($){return e0[$]?.translations}async function FV($,Z){let Y=VW($);if(Y)return Y;return K7($,Z)}async function VV($,Z){if(e0[$])return e0[$].translations;if(L1[$]){if(Z)return Promise.race([L1[$].promise,new Promise((Y,X)=>setTimeout(()=>X(Error(`Timeout waiting for locale: ${$}`)),Z))]);return L1[$].promise}throw Error(`Locale "${$}" is not loading. Call loadTranslationLazy first.`)}function NV(){return Object.entries(i1).filter(([$,Z])=>Z==="loading").map(([$])=>$)}function AV($){if($)delete L1[$],delete i1[$];else{for(let Z of Object.keys(L1))delete L1[Z];for(let Z of Object.keys(i1))delete i1[Z]}}async function NW($,Z){let Y={...h4,...Z.i18n},X=HW.resolve(import.meta.dir,"..",Y.translationsDir),J=MV(Y.format),Q=HW.join(X,`${$}${J}`);try{let G={};try{let K=await import(Q);G=K.default||K}catch(K){let W=await Bun.file(Q).text();if(Y.format==="yaml"||Y.format==="yml")G=wV(W);else if(Y.format==="json")G=JSON.parse(W);else throw K}if(Y.cache)e0[$]={translations:G,loadedAt:Date.now(),locale:$};return G}catch(G){if(Z.debug)console.error(`Error loading translation file for locale "${$}":`,G);if($!==Y.defaultLocale)return NW(Y.defaultLocale,Z);return{}}}async function AW($,Z){return K7($,Z)}function wV($){let Z={},Y=$.split(`
3868
+ `),X=[{obj:Z,indent:-1}];for(let J of Y){let Q=J.replace(/#.*$/,"").trimEnd();if(!Q.trim())continue;let G=Q.search(/\S/);if(G===-1)continue;while(X.length>1&&X[X.length-1].indent>=G)X.pop();let K=X[X.length-1].obj,W=Q.match(/^(\s*)(\S[^:]*):\s*(.*)$/);if(W){let[,,U,_]=W,B=U.trim(),z=_.trim();if(z==="")K[B]={},X.push({obj:K[B],indent:G});else K[B]=RV(z)}}return Z}function RV($){if($.startsWith("'")&&$.endsWith("'")||$.startsWith('"')&&$.endsWith('"'))return $.slice(1,-1);let Z=$.toLowerCase();if(Z==="true"||Z==="yes")return!0;if(Z==="false"||Z==="no")return!1;if(Z==="null"||Z==="~")return null;let Y=Number($);if(!Number.isNaN(Y))return Y;return $}function MV($){switch($){case"yaml":return".yaml";case"yml":return".yml";case"js":return".js";case"json":default:return".json"}}function TV($,Z){for(let Y of $){let X=Y.trim(),J=X.match(/^\{(\d+)\}\s*(.*)$/);if(J){let G=Number.parseInt(J[1],10);if(Z===G)return J[2];continue}let Q=X.match(/^\[(\d+),(\d+|\*)\]\s*(.*)$/);if(Q){let G=Number.parseInt(Q[1],10),K=Q[2]==="*"?Number.POSITIVE_INFINITY:Number.parseInt(Q[2],10);if(Z>=G&&Z<=K)return Q[3];continue}}if($.length===2)return Z===1?$[0].trim():$[1].trim();if(Z<$.length)return $[Z].trim();return $[$.length-1].trim()}function wW($,Z={}){return RW($,Z)}function RW($,Z){let Y="",X=0;while(X<$.length)if($[X]==="{"){let J=EV($,X);if(J===-1){Y+=$[X],X++;continue}let Q=$.slice(X+1,J);Y+=IV(Q,Z),X=J+1}else if($[X]==="'"&&X+1<$.length)if($[X+1]==="'")Y+="'",X+=2;else if($[X+1]==="{"||$[X+1]==="}")Y+=$[X+1],X+=2;else Y+=$[X],X++;else Y+=$[X],X++;return Y}function EV($,Z){let Y=0;for(let X=Z;X<$.length;X++)if($[X]==="{")Y++;else if($[X]==="}"){if(Y--,Y===0)return X}return-1}function IV($,Z){let Y=DV($);if(Y.length===0)return`{${$}}`;let X=Y[0].trim(),J=Z[X];if(Y.length===1)return J!==void 0?String(J):`{${X}}`;switch(Y[1].trim().toLowerCase()){case"plural":return kV(J,Y.slice(2).join(","),Z);case"select":return bV(J,Y.slice(2).join(","));case"selectordinal":return CV(J,Y.slice(2).join(","));case"number":return PV(J,Y[2]?.trim());case"date":return xV(J,Y[2]?.trim());case"time":return vV(J,Y[2]?.trim());default:return J!==void 0?String(J):`{${$}}`}}function DV($){let Z=[],Y="",X=0;for(let J=0;J<$.length;J++){let Q=$[J];if(Q==="{")X++,Y+=Q;else if(Q==="}")X--,Y+=Q;else if(Q===","&&X===0)Z.push(Y),Y="";else Y+=Q}if(Y)Z.push(Y);return Z}function kV($,Z,Y){let X=Number($)||0,J=gZ(Z),Q=`=${X}`;if(J[Q])return fZ(J[Q],X,Y);let G=SV(X);if(J[G])return fZ(J[G],X,Y);if(J.other)return fZ(J.other,X,Y);return String(X)}function fZ($,Z,Y){let X=$.replace(/#/g,String(Z));return RW(X,Y)}function SV($){let Z=Math.abs($),Y=Math.floor(Z),X=String($).includes(".")?String($).split(".")[1].length:0;if(Y===1&&X===0)return"one";return"other"}function bV($,Z){let Y=String($||""),X=gZ(Z);if(X[Y])return X[Y];return X.other||String($)}function CV($,Z){let Y=Number($)||0,X=gZ(Z),J=yV(Y);if(X[J])return X[J].replace(/#/g,String(Y));if(X.other)return X.other.replace(/#/g,String(Y));return String(Y)}function yV($){let Z=Math.abs($),Y=Z%10,X=Z%100;if(Y===1&&X!==11)return"one";if(Y===2&&X!==12)return"two";if(Y===3&&X!==13)return"few";return"other"}function gZ($){let Z={},Y=/(\w+|=\d+)\s*\{([^{}]*(?:\{[^{}]*\}[^{}]*)*)\}/g,X=Y.exec($);while(X!==null)Z[X[1]]=X[2],X=Y.exec($);return Z}function PV($,Z){let Y=Number($);if(Number.isNaN(Y))return String($);switch(Z){case"integer":return Math.floor(Y).toLocaleString();case"percent":return`${(Y*100).toFixed(0)}%`;case"currency":return Y.toLocaleString(void 0,{style:"currency",currency:"USD"});default:return Y.toLocaleString()}}function xV($,Z){let Y=$ instanceof Date?$:new Date(String($));if(Number.isNaN(Y.getTime()))return String($);let X={};switch(Z){case"short":X.dateStyle="short";break;case"medium":X.dateStyle="medium";break;case"long":X.dateStyle="long";break;case"full":X.dateStyle="full";break;default:X.dateStyle="medium"}return Y.toLocaleDateString(void 0,X)}function vV($,Z){let Y=$ instanceof Date?$:new Date(String($));if(Number.isNaN(Y.getTime()))return String($);let X={};switch(Z){case"short":X.timeStyle="short";break;case"medium":X.timeStyle="medium";break;case"long":X.timeStyle="long";break;case"full":X.timeStyle="full";break;default:X.timeStyle="short"}return Y.toLocaleTimeString(void 0,X)}function MW($){return/\{[^}]+,\s*(?:plural|select|selectordinal|number|date|time)\s*,/.test($)}function g4($,Z,Y=!0,X={}){let J=$.split("."),Q=Z;for(let K of J){if(Q===void 0||Q===null)break;Q=Q[K]}if(Q===void 0||Q===null)return Y?$:"";let G=String(Q);if(MW(G))return wW(G,X);if(G.includes("|")&&"count"in X){let K=Number(X.count),W=G.split("|");G=TV(W,K)}for(let[K,W]of Object.entries(X)){let U=K.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");G=G.replace(new RegExp(`:${U}`,"g"),String(W))}return G}async function hZ($,Z,Y,X){let J=$,Q=/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\})\s*)?\)([\s\S]*?)@endtranslate/g,G={...h4,...X.i18n},K=await AW(G.locale,X);Z.__translations=K,Z.__locale=G.locale,Z.__i18nConfig=G,J=await OW(J,Q,async(_,B,z,q,j)=>{try{let H={};if(z)try{let F=[()=>JSON.parse(z),()=>{let L=`{"data":${z}}`,V=JSON.parse(L);return typeof V.data==="object"?V.data:{}},()=>{return k0(z,Z)}];for(let L of F)try{if(H=L(),Object.keys(H).length>0)break}catch{}}catch(F){if(X.debug)console.error("Error parsing parameters for @translate directive:",F)}return g4(B,K,G.fallbackToKey,H)||q.trim()}catch(H){if(X.debug)console.error("Error processing @translate directive:",H);return $0("Translate",`Error in @translate('${B}'): ${H instanceof Error?H.message:String(H)}`,o.EVALUATION_ERROR)}});let W=/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]+\})\s*)?\)/g;if(X.debug){console.warn(`Processing translations in template. Sections: ${J.includes("<h2>Translation with Parameters</h2>")?"Parameters section found":"Parameters section missing"}`);let _=[...J.matchAll(W)];console.warn(`Found ${_.length} @translate matches`),_.forEach((B,z)=>console.warn(`Match ${z}: ${B[0]}, Key: ${B[1]}, Params: ${B[2]||"none"}`))}return J=await OW(J,/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\})\s*)?\)/g,async(_,B,z,q)=>{try{let j={};if(z)try{let H=[()=>JSON.parse(z),()=>{let O=`{"data":${z}}`,F=JSON.parse(O);return typeof F.data==="object"?F.data:{}},()=>{return k0(z,Z)}];for(let O of H)try{if(j=O(),Object.keys(j).length>0)break}catch{}}catch(H){if(X.debug)console.error("Error parsing parameters for @translate directive:",H)}return g4(B,K,G.fallbackToKey,j)}catch(j){if(X.debug)console.error("Error processing @translate directive:",j);return $0("Translate",`Error in @translate('${B}'): ${j instanceof Error?j.message:String(j)}`,o.EVALUATION_ERROR)}}),J}async function OW($,Z,Y){let X=[];return $.replace(Z,(Q,...G)=>{let K=Y(Q,...G).then((W)=>({match:Q,replacement:W}));return X.push(K),Q}),(await Promise.all(X)).reduce((Q,{match:G,replacement:K})=>Q.replace(G,K),$)}function fV($,Z=!0){return(Y,X={})=>{return g4(Y,$,Z,X)}}var h4,e0,L1,i1;var dZ=D(()=>{X1();h0();h4={defaultLocale:"en",locale:"en",translationsDir:"translations",format:"yaml",fallbackToKey:!0,cache:!0},e0={},L1={},i1={}});var m4={};Q0(m4,{stripTypeScript:()=>DW,hasVariables:()=>pZ,extractVariables:()=>R0,extractScriptFromTemplate:()=>uZ,convertToCommonJS:()=>d4});import W7 from"path";function gV($){let Z=[],Y=0,X=$.split(`
3869
3869
  `);for(let J of X){let Q=null,G=!1;for(let K=0;K<J.length;K++){let W=J[K];if(G){G=!1;continue}if(W==="\\"){G=!0;continue}if(Q){if(W===Q)Q=null;continue}if(W==="'"||W==='"'||W==="`"){Q=W;continue}if(W==="/"&&K+1<J.length&&J[K+1]==="/")break;if(W==="{")Y++;else if(W==="}")Y--}if(Y===0){let K=J.match(/(?:const|let|var)\s+(\w+)\s*=/);if(K)Z.push(K[1]);else{let W=J.match(/(?:const|let|var)\s+(\{[^}]+\}|\[[^\]]+\])\s*=/);if(W){let _=W[1].slice(1,-1).split(",").map((B)=>{let z=B.split(":");return(z.length>1?z[1]:z[0]).trim()}).filter((B)=>/^\w+$/.test(B));Z.push(..._)}}}}return[...new Set(Z)]}function DW($){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(),B=_.startsWith("..."),z=B?_.slice(3):_,q=-1,j=0;for(let N=0;N<z.length;N++)if(z[N]==="<")j++;else if(z[N]===">")j--;else if(z[N]===":"&&j===0){q=N;break}if(q===-1)return U;let O=z.substring(0,q).trim().replace(/\?$/,""),F=z.substring(q+1),L=-1,V=0;for(let N=0;N<F.length;N++)if(F[N]==="<")V++;else if(F[N]===">")V--;else if(F[N]==="="&&V===0){L=N;break}let A=B?"...":"";if(L!==-1)return`${A}${O} = ${F.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 B=Z.substring(G+1,W);if(!B.includes(":"))continue;let z=Y(B);Q.push({start:G+1,end:W,replacement:z})}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|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,`
3870
3870
 
3871
- `),Z}async function R0($,Z,Y){if(!$.trim())return;let X;try{let v=new Bun.Transpiler({loader:"ts",target:"browser",define:K1()}),d=$.replace(/^\s*import\s+\w+\s+from\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");d=d.replace(/^\s*import\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,""),X=v.transformSync(d)}catch{X=DW($)}let J={exports:{}},Q=J.exports,G=process.cwd(),K={},W=[...X.matchAll(/require\s*\(\s*['"]([^'"]+)['"]\s*\)/g)||[]].map((v)=>v[1]).filter((v)=>!v.startsWith("node:")&&!v.startsWith(".")&&!["fs","path","os","child_process","crypto","http","https","url","util","stream","events","buffer","net","querystring","zlib","tls"].includes(v));for(let v of W)try{let d=W7.resolve(G,"node_modules",v),n=W7.join(d,"package.json"),p=JSON.parse(K0("fs").readFileSync(n,"utf8")),m=p.main||"index.js";if(p.exports){let u=typeof p.exports==="string"?p.exports:p.exports["."];if(typeof u==="string")m=u;else if(u?.bun)m=u.bun;else if(u?.import)m=u.import;else if(u?.default)m=u.default}K[v]=await import(W7.resolve(d,m))}catch{}let U=(v)=>{if(K[v])return K[v];return K0(v)},_=Z.props||{},B=Object.assign((v)=>{if(!v)return _;let d={};for(let[n,p]of Object.entries(v)){let m=_[n];if(m!==void 0)d[n]=m;else if(typeof p==="function")d[n]=p();else d[n]=p}return d},_),z=()=>_,q=(v,d)=>{let n={...v};for(let[p,m]of Object.entries(d))if(n[p]===void 0)if(typeof m==="function")n[p]=m();else n[p]=m;return n},j=(v)=>{let d=()=>v;return d.set=(n)=>{},d.update=(n)=>{},d},H=(v)=>{let d,n=!1;return()=>{if(!n)try{d=v(),n=!0}catch{d=void 0}return d}},O=(v)=>{},F=(v)=>v(),L=(v)=>{},V=(v)=>{},A=(v)=>{},N=()=>({params:{},query:{},path:"",name:"",fullPath:"",hash:"",matched:[]}),w=()=>({push:(v)=>{},replace:(v)=>{},back:()=>{},forward:()=>{},go:(v)=>{}}),M=(v)=>{j$(v);let d=Z.__stx_runtime_head||{},n=v||{};Z.__stx_runtime_head={...d,...n.title&&{title:n.title},meta:[...d.meta||[],...n.meta||[]],link:[...d.link||[],...n.link||[]],script:[...d.script||[],...n.script||[]],htmlAttrs:{...d.htmlAttrs||{},...n.htmlAttrs||{}},bodyAttrs:{...d.bodyAttrs||{},...n.bodyAttrs||{}}}},T=(v)=>{J7(v);let d=m5();Z.__stx_runtime_head={...Z.__stx_runtime_head||{},...d.title&&{title:d.title},meta:d.meta?[...d.meta]:[]}},I=(v)=>({value:v}),E=(v)=>v,S=(v)=>({value:typeof v==="function"?v():v}),k=(v,d)=>{},b=(v)=>{},P=(v)=>{},x=(v)=>v?v():Promise.resolve(),C=(v)=>(d,...n)=>{},f=(v)=>{},g=(v,d)=>{},h=(v,d)=>d,l=()=>({value:"light"}),i=()=>({value:!1}),Y0={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:{}},W0=new Proxy(Y0,{get(v,d){if(d in v)return v[d];return},set(v,d,n){return v[d]=n,!0}}),D0={getElementById:()=>null,querySelector:()=>null,querySelectorAll:()=>[],createElement:()=>({}),createTextNode:()=>({}),body:{},head:{},documentElement:{},addEventListener:()=>{},removeEventListener:()=>{}},M0=console;try{let v=d6(X,Y),d=new Set(Object.keys(_)),n=Object.keys(Z).filter((U0)=>!d.has(U0)&&U0!=="props"),p=n.map((U0)=>Z[U0]),m=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"]),u=[],a=[];for(let[U0,U3]of Object.entries(_)){if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(U0))continue;if(m.has(U0))continue;if(new RegExp(`(?:^|[\\s;{])(?:const|let|var|function)\\s+${U0}\\b`).test(v))continue;u.push(U0),a.push(U3)}let s=gV(v).map((U0)=>`module.exports.${U0} = typeof ${U0} !== 'undefined' ? ${U0} : module.exports.${U0};`).join(`
3871
+ `),Z}async function R0($,Z,Y){if(!$.trim())return;let X;try{let v=new Bun.Transpiler({loader:"ts",target:"browser",define:K1()}),d=$.replace(/^\s*import\s+\w+\s+from\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");d=d.replace(/^\s*import\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,""),X=v.transformSync(d)}catch{X=DW($)}let J={exports:{}},Q=J.exports,G=process.cwd(),K={},W=[...X.matchAll(/require\s*\(\s*['"]([^'"]+)['"]\s*\)/g)||[]].map((v)=>v[1]).filter((v)=>!v.startsWith("node:")&&!v.startsWith(".")&&!["fs","path","os","child_process","crypto","http","https","url","util","stream","events","buffer","net","querystring","zlib","tls"].includes(v));for(let v of W)try{let d=W7.resolve(G,"node_modules",v),n=W7.join(d,"package.json"),p=JSON.parse(K0("fs").readFileSync(n,"utf8")),m=p.main||"index.js";if(p.exports){let u=typeof p.exports==="string"?p.exports:p.exports["."];if(typeof u==="string")m=u;else if(u?.bun)m=u.bun;else if(u?.import)m=u.import;else if(u?.default)m=u.default}K[v]=await import(W7.resolve(d,m))}catch{}let U=(v)=>{if(K[v])return K[v];return K0(v)},_=Z.props||{},B=Object.assign((v)=>{if(!v)return _;let d={};for(let[n,p]of Object.entries(v)){let m=_[n];if(m!==void 0)d[n]=m;else if(typeof p==="function")d[n]=p();else d[n]=p}return d},_),z=()=>_,q=(v,d)=>{let n={...v};for(let[p,m]of Object.entries(d))if(n[p]===void 0)if(typeof m==="function")n[p]=m();else n[p]=m;return n},j=(v)=>{let d=()=>v;return d.set=(n)=>{},d.update=(n)=>{},d},H=(v)=>{let d,n=!1;return()=>{if(!n)try{d=v(),n=!0}catch{d=void 0}return d}},O=(v)=>{},F=(v)=>v(),L=(v)=>{},V=(v)=>{},A=(v)=>{},N=()=>({params:{},query:{},path:"",name:"",fullPath:"",hash:"",matched:[]}),w=()=>({push:(v)=>{},replace:(v)=>{},back:()=>{},forward:()=>{},go:(v)=>{}}),M=(v)=>{j$(v);let d=Z.__stx_runtime_head||{},n=v||{};Z.__stx_runtime_head={...d,...n.title&&{title:n.title},meta:[...d.meta||[],...n.meta||[]],link:[...d.link||[],...n.link||[]],script:[...d.script||[],...n.script||[]],htmlAttrs:{...d.htmlAttrs||{},...n.htmlAttrs||{}},bodyAttrs:{...d.bodyAttrs||{},...n.bodyAttrs||{}}}},T=(v)=>{J7(v);let d=m5();Z.__stx_runtime_head={...Z.__stx_runtime_head||{},...d.title&&{title:d.title},meta:d.meta?[...d.meta]:[]}},I=(v)=>({value:v}),E=(v)=>v,S=(v)=>({value:typeof v==="function"?v():v}),k=(v,d)=>{},b=(v)=>{},P=(v)=>{},x=(v)=>v?v():Promise.resolve(),C=(v)=>(d,...n)=>{},f=(v)=>{},g=(v,d)=>{},h=(v,d)=>d,l=()=>({value:"light"}),i=()=>({value:!1}),Y0={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:{}},W0=new Proxy(Y0,{get(v,d){if(d in v)return v[d];return},set(v,d,n){return v[d]=n,!0}}),D0={getElementById:()=>null,querySelector:()=>null,querySelectorAll:()=>[],createElement:()=>({}),createTextNode:()=>({}),body:{},head:{},documentElement:{},addEventListener:()=>{},removeEventListener:()=>{}},M0=console;try{let v=d4(X,Y),d=new Set(Object.keys(_)),n=Object.keys(Z).filter((U0)=>!d.has(U0)&&U0!=="props"),p=n.map((U0)=>Z[U0]),m=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"]),u=[],a=[];for(let[U0,U3]of Object.entries(_)){if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(U0))continue;if(m.has(U0))continue;if(new RegExp(`(?:^|[\\s;{])(?:const|let|var|function)\\s+${U0}\\b`).test(v))continue;u.push(U0),a.push(U3)}let s=gV(v).map((U0)=>`module.exports.${U0} = typeof ${U0} !== 'undefined' ? ${U0} : module.exports.${U0};`).join(`
3872
3872
  `),J0=Z.params??{},z0=[],l0=[];for(let U0=0;U0<n.length;U0++){if(n[U0]==="params")continue;z0.push(n[U0]),l0.push(p[U0])}let X5=await Function("module","exports","require","props","$props","defineProps","withDefaults","state","derived","effect","batch","onMount","onDestroy","definePageMeta","useRoute","useRouter","useHead","useSeoMeta","ref","reactive","computed","watch","onMounted","onUnmounted","nextTick","defineEmits","defineExpose","provide","inject","useColorMode","useDark","window","document","console","confirm","alert","fetch","params",...u,...z0,`return (async () => {
3873
3873
  ${v}
3874
3874
  ${s}
3875
3875
  return module.exports
3876
- })()`)(J,Q,U,_,B,z,q,j,H,O,F,L,V,A,N,w,M,T,I,E,S,k,b,P,x,C,f,g,h,l,i,W0,D0,M0,Y0.confirm,Y0.alert,Y0.fetch,J0,...a,...l0);Object.assign(Z,X5);for(let[U0,U3]of Object.entries(_))if(!(U0 in Z))Z[U0]=U3}catch{try{await mV(X,Z,Y)}catch{}}}function d6($,Z){let Y=Z?W7.dirname(Z):process.cwd(),X=$.split(`
3876
+ })()`)(J,Q,U,_,B,z,q,j,H,O,F,L,V,A,N,w,M,T,I,E,S,k,b,P,x,C,f,g,h,l,i,W0,D0,M0,Y0.confirm,Y0.alert,Y0.fetch,J0,...a,...l0);Object.assign(Z,X5);for(let[U0,U3]of Object.entries(_))if(!(U0 in Z))Z[U0]=U3}catch{try{await mV(X,Z,Y)}catch{}}}function d4($,Z){let Y=Z?W7.dirname(Z):process.cwd(),X=$.split(`
3877
3877
  `),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,B=!1,z=X[U];for(let q=0;q<z.length;q++){let j=z[q];if(B){B=!1;continue}if(j==="\\"){B=!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+['"](.+)['"]/),_=(B)=>{if(B.startsWith("."))return W7.resolve(Y,B);return B};if(K){let[,B,z]=K,q=_(z);J.push(`const ${B} = await import('${q}')`),J.push(`module.exports.${B} = ${B};`)}else if(W){let[,B,z]=W,q=B.trim(),j=_(z);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 B=_(U[1]);J.push(`await import('${B}')`)}else J.push(G);Q++;continue}if(G.startsWith("export const ")||G.startsWith("export let ")||G.startsWith("export var ")){let K=TW(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=mZ(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=TW(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=mZ(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=mZ(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,B=Q;for(;B<X.length;B++){let z=X[B];for(let q of z)if(q==="{")_++;else if(q==="}")_--;if(B>Q)U+=`
3878
3878
  `+z;if(_<=0&&B>=Q)break}J.push(U),J.push(`module.exports.${W} = ${W};`),Q=B+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 J.join(`
3879
3879
  `)}function kW($,Z){let Y=$[Z];if(Y!=="{"&&Y!=="[")return null;let J=b0($,Y,Y==="{"?"}":"]",Z);if(J===-1)return null;return{pattern:$.slice(Z,J+1),endPos:J+1}}function SW($){let Z=[],Y=$.slice(1,-1).trim();if(!Y)return Z;let X=0,J=0,Q="";while(X<Y.length){let G=Y[X];if(G==="{"||G==="["){if(J++,J===1){let K=kW(Y,X);if(K){let W=SW(K.pattern);Z.push(...W),X=K.endPos,Q="";continue}}}else if(G==="}"||G==="]")J--;if(J>0){X++;continue}if(G===","){if(Q.trim())Z.push(Q.trim());Q="",X++;continue}if(G===":"){Q="",X++;continue}if(G==="="){if(Q.trim())Z.push(Q.trim());Q="",X++;while(X<Y.length&&Y[X]!==","&&J===0){if(Y[X]==="{"||Y[X]==="[")J++;else if(Y[X]==="}"||Y[X]==="]")J--;X++}continue}if(/[\w$]/.test(G))Q+=G;X++}if(Q.trim())Z.push(Q.trim());return Z}function TW($,Z){let Y=$[Z].trim(),X=Y.match(/^(?:export\s+)?(const|let|var)\s+(\w+)\s*=\s*(.*)$/);if(!X){let U=Y.match(/^(?:export\s+)?(const|let|var)\s+/);if(U){let _=Y.slice(U[0].length),B=Z;if((_.startsWith("{")||_.startsWith("["))&&!_.includes(_.startsWith("{")?"}":"]")){let q=_.startsWith("{")?"}":"]",j=_;for(let H=Z+1;H<$.length;H++)if(j+=" "+$[H].trim(),B=H,$[H].includes(q))break;_=j}let z=kW(_,0);if(z){let q=U[1],j=z.pattern,H=_.slice(z.endPos).trim();if(H.startsWith("=")){let O=H.slice(1).trim(),F=O,L=Math.max(B,Z);if(EW(O)){let w=IW($,L,O);F=w.value,L=w.nextIndex}else L=L+1;F=F.trim().replace(/;$/,"");let V=SW(j),A=`__stx_src_${Z}`,N=V.map((w)=>`module.exports.${w} = ${w};`).join(`
@@ -3888,7 +3888,7 @@ ${G}`,J++}return{functionCode:X,nextIndex:J}}async function mV($,Z,Y){let X=$.ma
3888
3888
  ${Array.from($.matchAll(/(?:const|let|var)\s+(\w+)\s*=/g)).map((W)=>`if (typeof ${W[1]} !== 'undefined') result.${W[1]} = ${W[1]};`).join(`
3889
3889
  `)}
3890
3890
  return result;
3891
- `)();Object.entries(K).forEach(([W,U])=>{if(U!==void 0&&!(W in Z))Z[W]=U})}catch{}}function uZ($){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 pZ($){let Z=$.trim();if(!Z)return!1;return/(?:const|let|var|function)\s+\w+/.test(Z)}var L$=D(()=>{H$();P$()});var fW={};Q0(fW,{processLoops:()=>l6});function cV($,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),B=U+1,z=_.match(/^\s*['"]([^'"]+)['"]/);if(!z)continue;let q=z[1],j=_.slice(z[0].length),H=j.match(/^\s*,\s*/);if(!H)continue;let O=j.slice(H[0].length).trim();if(!O)continue;try{let F=k0(O,Z),L=JSON.stringify(F),V=`@component('${q}', ${L})`;Q.push({start:G,end:B,replacement:V})}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 u6($,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,B=!1;while(U<X.length&&W>0){let j=X[U];if(B){B=!1,U++;continue}if(j==="\\"&&_){B=!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 z=X.substring(K+1,U),q=Y(z);X=X.substring(0,G)+q+X.substring(U+1)}return X}function lV($,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);I2(Q);let U=j0(Q,G)(...K),B=JSON.stringify(U).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;");return`__stx_${J}="${B}"`}catch(G){return X}}),Y}function iV($,Z){let Y=$;return Y=u6(Y,"@break",(X)=>{try{let Q=`!!(${X.trim()})`,G;if(_0(Q)){let K=j0(Q,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean(L0(Q,Z));return G?p6:""}catch{return""}}),Y=u6(Y,"@continue",(X)=>{try{let Q=`!!(${X.trim()})`,G;if(_0(Q)){let K=j0(Q,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean(L0(Q,Z));return G?c6:""}catch{return""}}),Y}function nV($){let Z=$;return Z=Z.replace(/@break(?!\()/g,p6),Z=Z.replace(/@continue(?!\()/g,c6),Z}function CW($){let Z=$.includes(p6),Y=Z?$.substring(0,$.indexOf(p6)):$;return{hasBreak:Z,content:Y}}function yW($){let Z=$.includes(c6),Y=Z?$.substring(0,$.indexOf(c6)):$;return{hasContinue:Z,content:Y}}function xW($){let Z=$;return Z=u6(Z,"@break",(Y)=>{let X=Y.trim();if(!M9(X))return"";return`\`; if (${X}) { break; } result += \``}),Z=u6(Z,"@continue",(Y)=>{let X=Y.trim();if(!M9(X))return"";return`\`; if (${X}) { continue; } result += \``}),Z=Z.replace(/@break(?!\()/g,"`; break; result += `"),Z=Z.replace(/@continue(?!\()/g,"`; continue; result += `"),Z}function sV($){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((_,B)=>_.pos-B.pos);let K=[],W=0;for(let _ of X)W+=_.delta,K.push({pos:_.pos,depth:W});function U(_){let B=0,z=K.length-1,q=0;while(B<=z){let j=B+z>>1;if(K[j].pos<=_)q=K[j].depth,B=j+1;else z=j-1}return q}while((Y=Z.exec($))!==null){if(U(Y.index)>0)continue;let _=Y.index,B=Y.index+Y[0].length-1,z=1,q=B+1,j=-1;while(q<$.length&&z>0){if($[q]==="(")z++;else if($[q]===")"){if(z--,z===0){j=q;break}}q++}if(j===-1)continue;let H=$.substring(B+1,j),O=H.indexOf(" as ");if(O===-1)continue;let F=H.substring(0,O).trim(),L=H.substring(O+4).trim(),V=j+1,A=1,N=V,w=/@forelse\s*\(/g,M=/@endforelse/g,T=-1;while(A>0&&N<$.length){w.lastIndex=N,M.lastIndex=N;let P=w.exec($),x=M.exec($);if(!x)break;if(P&&P.index<x.index)A++,N=P.index+P[0].length;else{if(A--,A===0){T=x.index;break}N=x.index+11}}if(T===-1)continue;let I=$.substring(V,T),E=T+11,S=-1,k=0,b=0;while(b<I.length){let P=I.indexOf("@",b);if(P===-1)break;let x=I.substring(P);if(/^@forelse\s*\(/.test(x))k++,b=P+1;else if(x.startsWith("@endforelse"))k--,b=P+11;else if(k===0&&x.startsWith("@empty")){if(I.length<=P+6||!/[a-z]/i.test(I[P+6])){S=P;break}b=P+1}else b=P+1}if(S===-1)continue;return{start:_,end:E,arrayExpr:F,itemVar:L,foreachContent:I.substring(0,S),emptyContent:I.substring(S+6)}}return null}function PW($,Z){let Y=$;while(!0){let X=sV(Y);if(!X)break;let{start:J,end:Q,arrayExpr:G,itemVar:K,foreachContent:W,emptyContent:U}=X;try{let _;if(_0(G))_=j0(G,Object.keys(Z))(...Object.values(Z));else _=L0(G,Z);let B;if(!Array.isArray(_)||_.length===0)B=U;else B=`@foreach (${G} as ${K})${W}@endforeach`;Y=Y.substring(0,J)+B+Y.substring(Q)}catch(_){let B=_ instanceof Error?_.message:String(_),z=$0("Forelse",`Error in @forelse(${G} as ${K}): ${B}`,o.EVALUATION_ERROR);Y=Y.substring(0,J)+z+Y.substring(Q)}}return Y}function l6($,Z,Y,X){let J=$;J=PW(J,Z);function Q(W){let U=/@foreach\s*\(/g,_;while((_=U.exec(W))!==null){let B=_.index,z=_.index+_[0].length-1,q=1,j=z+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(z+1,H),F=O.indexOf(" as ");if(F===-1)continue;let L=B,V=O.substring(0,F),A=O.substring(F+4),N=H+1,w=1,M=N,T=/@foreach\s*\(/g,I=/@endforeach/g;while(w>0&&M<W.length){T.lastIndex=M,I.lastIndex=M;let E=T.exec(W),S=I.exec(W);if(!S)break;if(E&&E.index<S.index)w++,M=E.index+E[0].length;else{if(w--,w===0){let k=W.substring(N,S.index),b=S.index+11;return{start:L,end:b,arrayExpr:V,itemVar:A,content:k}}M=S.index+11}}}return null}function G(W,U){let _=W;while(!0){let B=Q(_);if(!B)break;let{start:z,end:q,arrayExpr:j,itemVar:H,content:O}=B;try{let F=j.trim(),L;if(_0(F))L=j0(F,Object.keys(U))(...Object.values(U));else L=L0(F,U);let V=!1;if(!Array.isArray(L))if(L instanceof Map)L=Array.from(L),V=!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),V=!0;else{let E=$0("Foreach",`Error in @foreach: ${F} is not iterable`,o.TYPE_ERROR);_=_.substring(0,z)+E+_.substring(q);continue}let A=X?.loops?.useAltLoopVariable??pV,N=H.trim(),w=null,M;if(N.includes("=>")){let E=N.split("=>").map((S)=>S.trim());if(E.length===2)w=E[0],M=E[1];else M=N}else M=N;let T="",I=L;for(let E=0;E<I.length;E++){let S=I[E],k={index:E,iteration:E+1,first:E===0,last:E===I.length-1,count:I.length},b={...U,loop:k,$loop:k};if(M.startsWith("[")&&M.endsWith("]")){let f=M.slice(1,-1).split(",").map((g)=>g.trim());if(Array.isArray(S))f.forEach((g,h)=>{if(g)b[g]=S[h]});else b[M]=S}else b[M]=S;if(w)if(V&&Array.isArray(S)&&S.length===2)b[w]=S[0],b[M]=S[1];else b[w]=E;let P=iV(O,b),x=yW(P);if(x.hasContinue){T+=x.content;continue}let C=CW(P);if(C.hasBreak){T+=C.content;break}if(P=PW(P,b),P=G(P,b),P=d5(P,b,Y),P=nV(P),C=CW(P),C.hasBreak){T+=C.content;break}if(x=yW(P),x.hasContinue){T+=x.content;continue}P=q1(P,b,Y),P=lV(P,b),P=cV(P,b),T+=P}_=_.substring(0,z)+T+_.substring(q)}catch(F){let L=$0("Foreach",`Error in @foreach(${j.trim()} as ${H.trim()}): ${F instanceof Error?F.message:String(F)}`,o.EVALUATION_ERROR);_=_.substring(0,z)+L+_.substring(q)}}return _}J=G(J,Z),J=rV(J,Z);let K=X?.loops?.maxWhileIterations??uV;return J=oV(J,Z,K),J}function vW($){return M9($)}function rV($,Z){let Y=$,X=!0;while(X){X=!1;let J=Y.match(/@for\s*\(/);if(!J||J.index===void 0)break;let Q=J.index,G=Q+J[0].length-1,K=b0(Y,"(",")",G);if(K===-1)break;let W=Y.slice(G+1,K),U=K+1,_=X7(Y.slice(Q),"for","endfor");if(_.length===0)break;let B=_[0].content,z=Q+_[0].end;if(!vW(W)){let q=$0("For",`Unsafe expression in @for: ${W}`,o.UNSAFE_EXPRESSION);Y=Y.substring(0,Q)+q+Y.substring(z),X=!0;continue}try{let q=Object.keys(Z),j=Object.values(Z),H=B.replace(/`/g,"\\`").replace(/\$\{/g,"\\${").replace(/\{\{([^}]+)\}\}/g,(L,V)=>{return`\${${V}}`});H=xW(H);let F=Function(...q,`
3891
+ `)();Object.entries(K).forEach(([W,U])=>{if(U!==void 0&&!(W in Z))Z[W]=U})}catch{}}function uZ($){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 pZ($){let Z=$.trim();if(!Z)return!1;return/(?:const|let|var|function)\s+\w+/.test(Z)}var L$=D(()=>{H$();P$()});var fW={};Q0(fW,{processLoops:()=>l4});function cV($,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),B=U+1,z=_.match(/^\s*['"]([^'"]+)['"]/);if(!z)continue;let q=z[1],j=_.slice(z[0].length),H=j.match(/^\s*,\s*/);if(!H)continue;let O=j.slice(H[0].length).trim();if(!O)continue;try{let F=k0(O,Z),L=JSON.stringify(F),V=`@component('${q}', ${L})`;Q.push({start:G,end:B,replacement:V})}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 u4($,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,B=!1;while(U<X.length&&W>0){let j=X[U];if(B){B=!1,U++;continue}if(j==="\\"&&_){B=!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 z=X.substring(K+1,U),q=Y(z);X=X.substring(0,G)+q+X.substring(U+1)}return X}function lV($,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);I2(Q);let U=j0(Q,G)(...K),B=JSON.stringify(U).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;");return`__stx_${J}="${B}"`}catch(G){return X}}),Y}function iV($,Z){let Y=$;return Y=u4(Y,"@break",(X)=>{try{let Q=`!!(${X.trim()})`,G;if(_0(Q)){let K=j0(Q,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean(L0(Q,Z));return G?p4:""}catch{return""}}),Y=u4(Y,"@continue",(X)=>{try{let Q=`!!(${X.trim()})`,G;if(_0(Q)){let K=j0(Q,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean(L0(Q,Z));return G?c4:""}catch{return""}}),Y}function nV($){let Z=$;return Z=Z.replace(/@break(?!\()/g,p4),Z=Z.replace(/@continue(?!\()/g,c4),Z}function CW($){let Z=$.includes(p4),Y=Z?$.substring(0,$.indexOf(p4)):$;return{hasBreak:Z,content:Y}}function yW($){let Z=$.includes(c4),Y=Z?$.substring(0,$.indexOf(c4)):$;return{hasContinue:Z,content:Y}}function xW($){let Z=$;return Z=u4(Z,"@break",(Y)=>{let X=Y.trim();if(!M9(X))return"";return`\`; if (${X}) { break; } result += \``}),Z=u4(Z,"@continue",(Y)=>{let X=Y.trim();if(!M9(X))return"";return`\`; if (${X}) { continue; } result += \``}),Z=Z.replace(/@break(?!\()/g,"`; break; result += `"),Z=Z.replace(/@continue(?!\()/g,"`; continue; result += `"),Z}function sV($){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((_,B)=>_.pos-B.pos);let K=[],W=0;for(let _ of X)W+=_.delta,K.push({pos:_.pos,depth:W});function U(_){let B=0,z=K.length-1,q=0;while(B<=z){let j=B+z>>1;if(K[j].pos<=_)q=K[j].depth,B=j+1;else z=j-1}return q}while((Y=Z.exec($))!==null){if(U(Y.index)>0)continue;let _=Y.index,B=Y.index+Y[0].length-1,z=1,q=B+1,j=-1;while(q<$.length&&z>0){if($[q]==="(")z++;else if($[q]===")"){if(z--,z===0){j=q;break}}q++}if(j===-1)continue;let H=$.substring(B+1,j),O=H.indexOf(" as ");if(O===-1)continue;let F=H.substring(0,O).trim(),L=H.substring(O+4).trim(),V=j+1,A=1,N=V,w=/@forelse\s*\(/g,M=/@endforelse/g,T=-1;while(A>0&&N<$.length){w.lastIndex=N,M.lastIndex=N;let P=w.exec($),x=M.exec($);if(!x)break;if(P&&P.index<x.index)A++,N=P.index+P[0].length;else{if(A--,A===0){T=x.index;break}N=x.index+11}}if(T===-1)continue;let I=$.substring(V,T),E=T+11,S=-1,k=0,b=0;while(b<I.length){let P=I.indexOf("@",b);if(P===-1)break;let x=I.substring(P);if(/^@forelse\s*\(/.test(x))k++,b=P+1;else if(x.startsWith("@endforelse"))k--,b=P+11;else if(k===0&&x.startsWith("@empty")){if(I.length<=P+6||!/[a-z]/i.test(I[P+6])){S=P;break}b=P+1}else b=P+1}if(S===-1)continue;return{start:_,end:E,arrayExpr:F,itemVar:L,foreachContent:I.substring(0,S),emptyContent:I.substring(S+6)}}return null}function PW($,Z){let Y=$;while(!0){let X=sV(Y);if(!X)break;let{start:J,end:Q,arrayExpr:G,itemVar:K,foreachContent:W,emptyContent:U}=X;try{let _;if(_0(G))_=j0(G,Object.keys(Z))(...Object.values(Z));else _=L0(G,Z);let B;if(!Array.isArray(_)||_.length===0)B=U;else B=`@foreach (${G} as ${K})${W}@endforeach`;Y=Y.substring(0,J)+B+Y.substring(Q)}catch(_){let B=_ instanceof Error?_.message:String(_),z=$0("Forelse",`Error in @forelse(${G} as ${K}): ${B}`,o.EVALUATION_ERROR);Y=Y.substring(0,J)+z+Y.substring(Q)}}return Y}function l4($,Z,Y,X){let J=$;J=PW(J,Z);function Q(W){let U=/@foreach\s*\(/g,_;while((_=U.exec(W))!==null){let B=_.index,z=_.index+_[0].length-1,q=1,j=z+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(z+1,H),F=O.indexOf(" as ");if(F===-1)continue;let L=B,V=O.substring(0,F),A=O.substring(F+4),N=H+1,w=1,M=N,T=/@foreach\s*\(/g,I=/@endforeach/g;while(w>0&&M<W.length){T.lastIndex=M,I.lastIndex=M;let E=T.exec(W),S=I.exec(W);if(!S)break;if(E&&E.index<S.index)w++,M=E.index+E[0].length;else{if(w--,w===0){let k=W.substring(N,S.index),b=S.index+11;return{start:L,end:b,arrayExpr:V,itemVar:A,content:k}}M=S.index+11}}}return null}function G(W,U){let _=W;while(!0){let B=Q(_);if(!B)break;let{start:z,end:q,arrayExpr:j,itemVar:H,content:O}=B;try{let F=j.trim(),L;if(_0(F))L=j0(F,Object.keys(U))(...Object.values(U));else L=L0(F,U);let V=!1;if(!Array.isArray(L))if(L instanceof Map)L=Array.from(L),V=!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),V=!0;else{let E=$0("Foreach",`Error in @foreach: ${F} is not iterable`,o.TYPE_ERROR);_=_.substring(0,z)+E+_.substring(q);continue}let A=X?.loops?.useAltLoopVariable??pV,N=H.trim(),w=null,M;if(N.includes("=>")){let E=N.split("=>").map((S)=>S.trim());if(E.length===2)w=E[0],M=E[1];else M=N}else M=N;let T="",I=L;for(let E=0;E<I.length;E++){let S=I[E],k={index:E,iteration:E+1,first:E===0,last:E===I.length-1,count:I.length},b={...U,loop:k,$loop:k};if(M.startsWith("[")&&M.endsWith("]")){let f=M.slice(1,-1).split(",").map((g)=>g.trim());if(Array.isArray(S))f.forEach((g,h)=>{if(g)b[g]=S[h]});else b[M]=S}else b[M]=S;if(w)if(V&&Array.isArray(S)&&S.length===2)b[w]=S[0],b[M]=S[1];else b[w]=E;let P=iV(O,b),x=yW(P);if(x.hasContinue){T+=x.content;continue}let C=CW(P);if(C.hasBreak){T+=C.content;break}if(P=PW(P,b),P=G(P,b),P=d5(P,b,Y),P=nV(P),C=CW(P),C.hasBreak){T+=C.content;break}if(x=yW(P),x.hasContinue){T+=x.content;continue}P=q1(P,b,Y),P=lV(P,b),P=cV(P,b),T+=P}_=_.substring(0,z)+T+_.substring(q)}catch(F){let L=$0("Foreach",`Error in @foreach(${j.trim()} as ${H.trim()}): ${F instanceof Error?F.message:String(F)}`,o.EVALUATION_ERROR);_=_.substring(0,z)+L+_.substring(q)}}return _}J=G(J,Z),J=rV(J,Z);let K=X?.loops?.maxWhileIterations??uV;return J=oV(J,Z,K),J}function vW($){return M9($)}function rV($,Z){let Y=$,X=!0;while(X){X=!1;let J=Y.match(/@for\s*\(/);if(!J||J.index===void 0)break;let Q=J.index,G=Q+J[0].length-1,K=b0(Y,"(",")",G);if(K===-1)break;let W=Y.slice(G+1,K),U=K+1,_=X7(Y.slice(Q),"for","endfor");if(_.length===0)break;let B=_[0].content,z=Q+_[0].end;if(!vW(W)){let q=$0("For",`Unsafe expression in @for: ${W}`,o.UNSAFE_EXPRESSION);Y=Y.substring(0,Q)+q+Y.substring(z),X=!0;continue}try{let q=Object.keys(Z),j=Object.values(Z),H=B.replace(/`/g,"\\`").replace(/\$\{/g,"\\${").replace(/\{\{([^}]+)\}\}/g,(L,V)=>{return`\${${V}}`});H=xW(H);let F=Function(...q,`
3892
3892
  let result = '';
3893
3893
  for (${W}) {
3894
3894
  result += \`${H}\`;
@@ -3906,7 +3906,7 @@ ${G}`,J++}return{functionCode:X,nextIndex:J}}async function mV($,Z,Y){let X=$.ma
3906
3906
  result += '<!-- [While Error [1104]]: Maximum iterations (${Y}) exceeded in while loop. Configure via options.loops.maxWhileIterations -->';
3907
3907
  }
3908
3908
  return result;
3909
- `)(...j);X=X.substring(0,G)+F+X.substring(z),J=!0}catch(q){let j=$0("While",`Error in @while(${U}): ${q instanceof Error?q.message:String(q)}`,o.EVALUATION_ERROR);X=X.substring(0,G)+j+X.substring(z),J=!0}}return X}var uV=1000,pV=!1,p6="<!--__STX_BREAK__-->",c6="<!--__STX_CONTINUE__-->";var i6=D(()=>{D6();X1();d0();I6();h0()});import N0 from"path";function cZ($,Z){let Y=0;for(let X=Z;X<$.length;X++){let J=$[X];if(J==="("||J==="["||J==="{")Y++;else if(J===")"||J==="]"||J==="}")Y--;else if(J===","&&Y===0)return X}return-1}function aV($,Z,Y){let X=$,J=new RegExp(`${Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*\\(`,"g"),Q=J.exec(X);while(Q){let G=Q.index,K=G+Q[0].length-1,W=1,U=K+1;while(U<X.length&&W>0){if(X[U]==="(")W++;else if(X[U]===")")W--;U++}if(W!==0)break;let _=X.substring(K+1,U-1),B=`${Y}(${_})`;X=X.substring(0,G)+B+X.substring(U),J.lastIndex=G+B.length,Q=J.exec(X)}return X}function tV($){return/\b(state|derived|effect)\s*\(/.test($)}function eV($){let Z=$,Y=[],X=new Set,J=0,Q=0,G=Z.length,K=(B)=>{Q++;while(Q<G){if(Z[Q]==="\\"){Q+=2;continue}if(Z[Q]===B){Q++;return}Q++}},W=()=>{Q++;while(Q<G){if(Z[Q]==="\\"){Q+=2;continue}if(Z[Q]==="`"){Q++;return}if(Z[Q]==="$"&&Z[Q+1]==="{"){Q+=2;let B=1;while(Q<G&&B>0)if(Z[Q]==="{")B++;else if(Z[Q]==="}")B--;else if(Z[Q]==="'"||Z[Q]==='"')K(Z[Q]);else if(Z[Q]==="`")W();else Q++;continue}Q++}},U=()=>{if(Z[Q]==="/"&&Z[Q+1]==="/"){while(Q<G&&Z[Q]!==`
3909
+ `)(...j);X=X.substring(0,G)+F+X.substring(z),J=!0}catch(q){let j=$0("While",`Error in @while(${U}): ${q instanceof Error?q.message:String(q)}`,o.EVALUATION_ERROR);X=X.substring(0,G)+j+X.substring(z),J=!0}}return X}var uV=1000,pV=!1,p4="<!--__STX_BREAK__-->",c4="<!--__STX_CONTINUE__-->";var i4=D(()=>{D4();X1();d0();I4();h0()});import N0 from"path";function cZ($,Z){let Y=0;for(let X=Z;X<$.length;X++){let J=$[X];if(J==="("||J==="["||J==="{")Y++;else if(J===")"||J==="]"||J==="}")Y--;else if(J===","&&Y===0)return X}return-1}function aV($,Z,Y){let X=$,J=new RegExp(`${Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*\\(`,"g"),Q=J.exec(X);while(Q){let G=Q.index,K=G+Q[0].length-1,W=1,U=K+1;while(U<X.length&&W>0){if(X[U]==="(")W++;else if(X[U]===")")W--;U++}if(W!==0)break;let _=X.substring(K+1,U-1),B=`${Y}(${_})`;X=X.substring(0,G)+B+X.substring(U),J.lastIndex=G+B.length,Q=J.exec(X)}return X}function tV($){return/\b(state|derived|effect)\s*\(/.test($)}function eV($){let Z=$,Y=[],X=new Set,J=0,Q=0,G=Z.length,K=(B)=>{Q++;while(Q<G){if(Z[Q]==="\\"){Q+=2;continue}if(Z[Q]===B){Q++;return}Q++}},W=()=>{Q++;while(Q<G){if(Z[Q]==="\\"){Q+=2;continue}if(Z[Q]==="`"){Q++;return}if(Z[Q]==="$"&&Z[Q+1]==="{"){Q+=2;let B=1;while(Q<G&&B>0)if(Z[Q]==="{")B++;else if(Z[Q]==="}")B--;else if(Z[Q]==="'"||Z[Q]==='"')K(Z[Q]);else if(Z[Q]==="`")W();else Q++;continue}Q++}},U=()=>{if(Z[Q]==="/"&&Z[Q+1]==="/"){while(Q<G&&Z[Q]!==`
3910
3910
  `)Q++;return!0}if(Z[Q]==="/"&&Z[Q+1]==="*"){Q+=2;while(Q<G-1&&!(Z[Q]==="*"&&Z[Q+1]==="/"))Q++;return Q+=2,!0}return!1},_=()=>{if(J!==0)return;let B=Z.slice(Q).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(B){let j=B[2];if(!X.has(j))Y.push(j),X.add(j);return}let z=Z.slice(Q).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(z){let j=z[1];if(!X.has(j))Y.push(j),X.add(j);return}let q=Z.slice(Q).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(q){let j=q[1];if(!X.has(j))Y.push(j),X.add(j)}};while(Q<G){if(U())continue;if(Z[Q]==="'"||Z[Q]==='"'){K(Z[Q]);continue}if(Z[Q]==="`"){W();continue}if(Z[Q]==="{"){J++,Q++;continue}if(Z[Q]==="}"){J--,Q++;continue}if(J===0&&/[a-z]/i.test(Z[Q])&&(Q===0||/\s|[;{}()]/.test(Z[Q-1])))_();Q++}return Y.join(", ")}function $N($,Z){let Y=eV($);return`
3911
3911
  (function() {
3912
3912
  var { state, derived, effect, batch, onMount, onDestroy, useFetch, useRef, useQuery, useMutation, useDebounce, useDebouncedValue, useThrottle, useInterval, useTimeout, useToggle, useCounter, useClickOutside, useFocus, useAsync, useLocalStorage, useEventListener, useWebSocket, useColorMode, useDark, useHead, useSeoMeta, useRoute, useSearchParams, navigate, goBack, goForward, provide, ref, reactive, computed, watch, watchEffect } = window.stx;
@@ -3920,17 +3920,17 @@ ${$}
3920
3920
  if (!window.stx._scopes) window.stx._scopes = {};
3921
3921
  window.stx._scopes['${Z}'] = { ${Y}, __destroyCallbacks: __destroyHooks };
3922
3922
  })();
3923
- `}function ZN($,Z){let Y=$.match(/^(\s*(?:<!--[\s\S]*?-->\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 XN(){lZ.clear()}function JN($){if($.__onceStore instanceof Set)return $.__onceStore;return lZ}async function n6($,Z,Y,X,J,Q=new Set){let G=X.partialsDir||N0.join(N0.dirname(Y),"partials");if(G&&!N0.isAbsolute(G)){let j=N0.resolve(__dirname,"..");G=N0.resolve(j,G)}let K=aV($,"@partial","@include"),W=JN(Z);K=K.replace(/@once([\s\S]*?)@endonce/g,(j,H,O)=>{let F=H.trim(),L=`${Y}:${F}`;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,F=O+H[0].length-1,L=1,V=F+1;while(V<K.length&&L>0){if(K[V]==="(")L++;else if(K[V]===")")L--;V++}if(L!==0)break;let A=K.substring(F+1,V-1),N=A.match(/^\s*['"]([^'"]+)['"]/);if(!N){j.lastIndex=V;continue}let w=N[1],M=U(w,G,Y),T="";if(M&&await Bun.file(M).exists())J.add(M),T=`@include(${A})`;K=K.substring(0,O)+T+K.substring(V),j.lastIndex=0}}for(let[j,H]of[["@includeWhen",!1],["@includeUnless",!0]]){let O=new RegExp(`${j.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*\\(`,"g"),F;while((F=O.exec(K))!==null){let L=F.index,V=L+F[0].length-1,A=1,N=V+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(V+1,N-1),M=cZ(w,0);if(M===-1){O.lastIndex=N;continue}let T=w.substring(0,M).trim(),I=w.substring(M+1).trim(),E=I.match(/^\s*['"]([^'"]+)['"]/);if(!E){O.lastIndex=N;continue}let S=E[1],k=I.substring(E[0].length),b,P=cZ(k,0);if(P!==-1)b=k.substring(P+1).trim();try{let x=`Boolean(${T})`,C;if(_0(x)){let h=j0(x,Object.keys(Z));C=Boolean(h(...Object.values(Z)))}else C=Boolean(L0(x,Z));let f=H?!C:C,g="";if(f){let h=U(S,G,Y);if(h&&await Bun.file(h).exists())J.add(h);g=`@include('${S}'${b?`, ${b}`:""})`}K=K.substring(0,L)+g+K.substring(N),O.lastIndex=0}catch(x){let C=x instanceof Error?x.message:String(x),f=B0("Include",`Error evaluating ${j} condition: ${C}`,Y,$,L);K=K.substring(0,L)+f+K.substring(N),O.lastIndex=0}}}{let j=/@each\s*\(/g,H;while((H=j.exec(K))!==null){let O=H.index,F=O+H[0].length-1,L=1,V=F+1;while(V<K.length&&L>0){if(K[V]==="(")L++;else if(K[V]===")"){if(L--,L===0)break}V++}if(L!==0)break;let A=K.substring(F+1,V),N=K.substring(O,V+1),w=A.match(/^\s*['"]([^'"]+)['"]\s*,\s*([^,]+)\s*,\s*['"]([^'"]+)['"](?:\s*,\s*['"]([^'"]+)['"])?\s*$/);if(!w){j.lastIndex=0,K=K.replace(N,"");continue}let[,M,T,I,E]=w;try{let S,k=T.trim();if(_0(k))S=j0(k,Object.keys(Z))(...Object.values(Z));else S=L0(k,Z);let b="";if(Array.isArray(S)&&S.length>0)for(let P of S){let x={...Z,[I]:P},C=await B(M,x,$,O);b+=C}else if(E)b=await B(E,{},$,O);K=K.substring(0,O)+b+K.substring(V+1),j.lastIndex=0}catch(S){let k=S instanceof Error?S.message:String(S);K=K.substring(0,O)+B0("Each",`Error in @each: ${k}`,Y,$,O)+K.substring(V+1),j.lastIndex=0}}}{let j=/@includeFirst\s*\(/g,H;while((H=j.exec(K))!==null){let O=H.index,F=O+H[0].length-1,L=1,V=F+1;while(V<K.length&&L>0){if(K[V]==="(")L++;else if(K[V]===")"){if(L--,L===0)break}V++}if(L!==0)break;let A=K.substring(F+1,V),N=K.substring(O,V+1),w=A.match(/^\s*(\[[^\]]+\])/);if(!w){j.lastIndex=0,K=K.replace(N,"");continue}let M=w[1],T=A.slice(w[0].length),I,E=T.match(/^\s*,\s*\{/);if(E){T=T.slice(E[0].length-1);let b=1,P=1;while(P<T.length&&b>0){if(T[P]==="{")b++;else if(T[P]==="}"){if(b--,b===0)break}P++}I=T.substring(0,P+1),T=T.slice(P+1)}let S,k=T.match(/^\s*,\s*['"]([^'"]*)['"]\s*$/);if(k)S=k[1];try{let b=JSON.parse(M.replace(/'/g,'"')),P={};if(I)try{P=k0(I,Z)}catch(C){let f=C instanceof Error?C.message:String(C);if(X.debug){let g=B0("Include",`Error parsing includeFirst variables: ${f}`,Y,$,O,N);K=K.replace(N,()=>g)}else K=K.replace(N,()=>S||"");continue}let x=!1;for(let C of b){let f=U(C,G,Y);if(!f)continue;if(await t(f)){let g=await B(C,P,$,O);K=K.replace(N,()=>g),x=!0;break}}if(!x)if(S!==void 0)K=K.replace(N,()=>S);else if(X.debug){let C=B0("Include",`None of the includeFirst paths exist: ${M}`,Y,$,O,N);K=K.replace(N,()=>C)}else K=K.replace(N,"")}catch(b){let P=b instanceof Error?b.message:String(b),x=B0("Include",`Error processing @includeFirst: ${P}`,Y,$,O,N);K=K.replace(N,()=>x)}j.lastIndex=0}}function U(j,H,O){try{let F=j;if(!j.endsWith(".stx"))F=`${j}.stx`;let L=N0.resolve(H),V=N0.resolve(N0.dirname(O)),A;if(!F.startsWith("./")&&!F.startsWith("../"))A=N0.resolve(H,F);else A=N0.resolve(V,F);let N=N0.normalize(A),w=N.startsWith(L+N0.sep)||N===L,M=N.startsWith(V+N0.sep)||N===V,T=!1,I=N0.dirname(V);if(N.startsWith(I+N0.sep)){if(!N0.relative(I,N).split(N0.sep).some((b)=>b.startsWith(".")&&b!=="."&&b!==".."))T=!0}if(!w&&!M&&!T)return console.error(`Security: Path traversal attempt blocked for include path: ${j}`),console.error(` Resolved to: ${N}`),console.error(` Allowed dirs: ${L}, ${V}`),null;return N}catch(F){return console.error(`Error resolving path ${j}: ${F}`),null}}let _=N0.resolve(Y);Q.add(_);async function B(j,H={},O,F){let L=U(j,G,Y);if(!L)return B0("Include",`Could not resolve path for include: ${j}`,Y,O,F);let V=N0.resolve(L);if(Q.has(V)){let A=[...Q,V].map((N)=>N0.basename(N)).join(" -> ");return B0("Include",`Circular include detected: ${A}`,Y,O,F)}try{J.add(L);let A;if(!A)try{A=await Bun.file(L).text()}catch(C){let f=C instanceof Error?C.message:String(C);return B0("Include",`Error loading include file ${j}: ${f}`,Y,O,F)}let N=A,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 M=A.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),T="";if(M)T=`<style${M[1]}>${M[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[C,f]of Object.entries(H))I[C]=f;let E=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,S=[...A.matchAll(E)],k="",b=null;for(let C of S){let f=C[1]||"",g=C[2]||"",h=f.includes("server");if(Z$(f)&&g.trim())g=Y$(g);let i=tV(g);if(i&&!h){b=`stx_scope_${N0.basename(L,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++YN}`;let Y0=$$(g),W0=$N(Y0,b);k+=`<script data-stx-scoped>${W0}</script>
3924
- `;continue}if(h)try{let{extractVariables:Y0}=await Promise.resolve().then(() => (L$(),m6));await Y0(g,I,L)}catch(Y0){if(X.debug)console.warn(`Warning: Could not extract variables from server script in ${L}:`,Y0)}if(!h&&!i){let Y0=f.replace(/\bclient\b/i,"").trim();k+=`<script data-stx-scoped${Y0?` ${Y0}`:""}>${g}</script>
3925
- `}}if(b){let C=ZN(N,b);if(N=C.html,C.mergedIntoExisting)k=k.replace(`window.stx._scopes['${b}']`,`window.stx._scopes['${C.mergedIntoExisting}']`),b=C.mergedIntoExisting}if(N.includes("@include")||N.includes("@partial"))N=await n6(N,I,L,X,J,Q);let{processLoops:P}=await Promise.resolve().then(() => (i6(),fW)),x=P(N,I,L);if(x=d5(x,I,L),x=q1(x,I,L),T)x+=`
3923
+ `}function ZN($,Z){let Y=$.match(/^(\s*(?:<!--[\s\S]*?-->\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 XN(){lZ.clear()}function JN($){if($.__onceStore instanceof Set)return $.__onceStore;return lZ}async function n4($,Z,Y,X,J,Q=new Set){let G=X.partialsDir||N0.join(N0.dirname(Y),"partials");if(G&&!N0.isAbsolute(G)){let j=N0.resolve(__dirname,"..");G=N0.resolve(j,G)}let K=aV($,"@partial","@include"),W=JN(Z);K=K.replace(/@once([\s\S]*?)@endonce/g,(j,H,O)=>{let F=H.trim(),L=`${Y}:${F}`;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,F=O+H[0].length-1,L=1,V=F+1;while(V<K.length&&L>0){if(K[V]==="(")L++;else if(K[V]===")")L--;V++}if(L!==0)break;let A=K.substring(F+1,V-1),N=A.match(/^\s*['"]([^'"]+)['"]/);if(!N){j.lastIndex=V;continue}let w=N[1],M=U(w,G,Y),T="";if(M&&await Bun.file(M).exists())J.add(M),T=`@include(${A})`;K=K.substring(0,O)+T+K.substring(V),j.lastIndex=0}}for(let[j,H]of[["@includeWhen",!1],["@includeUnless",!0]]){let O=new RegExp(`${j.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*\\(`,"g"),F;while((F=O.exec(K))!==null){let L=F.index,V=L+F[0].length-1,A=1,N=V+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(V+1,N-1),M=cZ(w,0);if(M===-1){O.lastIndex=N;continue}let T=w.substring(0,M).trim(),I=w.substring(M+1).trim(),E=I.match(/^\s*['"]([^'"]+)['"]/);if(!E){O.lastIndex=N;continue}let S=E[1],k=I.substring(E[0].length),b,P=cZ(k,0);if(P!==-1)b=k.substring(P+1).trim();try{let x=`Boolean(${T})`,C;if(_0(x)){let h=j0(x,Object.keys(Z));C=Boolean(h(...Object.values(Z)))}else C=Boolean(L0(x,Z));let f=H?!C:C,g="";if(f){let h=U(S,G,Y);if(h&&await Bun.file(h).exists())J.add(h);g=`@include('${S}'${b?`, ${b}`:""})`}K=K.substring(0,L)+g+K.substring(N),O.lastIndex=0}catch(x){let C=x instanceof Error?x.message:String(x),f=B0("Include",`Error evaluating ${j} condition: ${C}`,Y,$,L);K=K.substring(0,L)+f+K.substring(N),O.lastIndex=0}}}{let j=/@each\s*\(/g,H;while((H=j.exec(K))!==null){let O=H.index,F=O+H[0].length-1,L=1,V=F+1;while(V<K.length&&L>0){if(K[V]==="(")L++;else if(K[V]===")"){if(L--,L===0)break}V++}if(L!==0)break;let A=K.substring(F+1,V),N=K.substring(O,V+1),w=A.match(/^\s*['"]([^'"]+)['"]\s*,\s*([^,]+)\s*,\s*['"]([^'"]+)['"](?:\s*,\s*['"]([^'"]+)['"])?\s*$/);if(!w){j.lastIndex=0,K=K.replace(N,"");continue}let[,M,T,I,E]=w;try{let S,k=T.trim();if(_0(k))S=j0(k,Object.keys(Z))(...Object.values(Z));else S=L0(k,Z);let b="";if(Array.isArray(S)&&S.length>0)for(let P of S){let x={...Z,[I]:P},C=await B(M,x,$,O);b+=C}else if(E)b=await B(E,{},$,O);K=K.substring(0,O)+b+K.substring(V+1),j.lastIndex=0}catch(S){let k=S instanceof Error?S.message:String(S);K=K.substring(0,O)+B0("Each",`Error in @each: ${k}`,Y,$,O)+K.substring(V+1),j.lastIndex=0}}}{let j=/@includeFirst\s*\(/g,H;while((H=j.exec(K))!==null){let O=H.index,F=O+H[0].length-1,L=1,V=F+1;while(V<K.length&&L>0){if(K[V]==="(")L++;else if(K[V]===")"){if(L--,L===0)break}V++}if(L!==0)break;let A=K.substring(F+1,V),N=K.substring(O,V+1),w=A.match(/^\s*(\[[^\]]+\])/);if(!w){j.lastIndex=0,K=K.replace(N,"");continue}let M=w[1],T=A.slice(w[0].length),I,E=T.match(/^\s*,\s*\{/);if(E){T=T.slice(E[0].length-1);let b=1,P=1;while(P<T.length&&b>0){if(T[P]==="{")b++;else if(T[P]==="}"){if(b--,b===0)break}P++}I=T.substring(0,P+1),T=T.slice(P+1)}let S,k=T.match(/^\s*,\s*['"]([^'"]*)['"]\s*$/);if(k)S=k[1];try{let b=JSON.parse(M.replace(/'/g,'"')),P={};if(I)try{P=k0(I,Z)}catch(C){let f=C instanceof Error?C.message:String(C);if(X.debug){let g=B0("Include",`Error parsing includeFirst variables: ${f}`,Y,$,O,N);K=K.replace(N,()=>g)}else K=K.replace(N,()=>S||"");continue}let x=!1;for(let C of b){let f=U(C,G,Y);if(!f)continue;if(await t(f)){let g=await B(C,P,$,O);K=K.replace(N,()=>g),x=!0;break}}if(!x)if(S!==void 0)K=K.replace(N,()=>S);else if(X.debug){let C=B0("Include",`None of the includeFirst paths exist: ${M}`,Y,$,O,N);K=K.replace(N,()=>C)}else K=K.replace(N,"")}catch(b){let P=b instanceof Error?b.message:String(b),x=B0("Include",`Error processing @includeFirst: ${P}`,Y,$,O,N);K=K.replace(N,()=>x)}j.lastIndex=0}}function U(j,H,O){try{let F=j;if(!j.endsWith(".stx"))F=`${j}.stx`;let L=N0.resolve(H),V=N0.resolve(N0.dirname(O)),A;if(!F.startsWith("./")&&!F.startsWith("../"))A=N0.resolve(H,F);else A=N0.resolve(V,F);let N=N0.normalize(A),w=N.startsWith(L+N0.sep)||N===L,M=N.startsWith(V+N0.sep)||N===V,T=!1,I=N0.dirname(V);if(N.startsWith(I+N0.sep)){if(!N0.relative(I,N).split(N0.sep).some((b)=>b.startsWith(".")&&b!=="."&&b!==".."))T=!0}if(!w&&!M&&!T)return console.error(`Security: Path traversal attempt blocked for include path: ${j}`),console.error(` Resolved to: ${N}`),console.error(` Allowed dirs: ${L}, ${V}`),null;return N}catch(F){return console.error(`Error resolving path ${j}: ${F}`),null}}let _=N0.resolve(Y);Q.add(_);async function B(j,H={},O,F){let L=U(j,G,Y);if(!L)return B0("Include",`Could not resolve path for include: ${j}`,Y,O,F);let V=N0.resolve(L);if(Q.has(V)){let A=[...Q,V].map((N)=>N0.basename(N)).join(" -> ");return B0("Include",`Circular include detected: ${A}`,Y,O,F)}try{J.add(L);let A;if(!A)try{A=await Bun.file(L).text()}catch(C){let f=C instanceof Error?C.message:String(C);return B0("Include",`Error loading include file ${j}: ${f}`,Y,O,F)}let N=A,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 M=A.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),T="";if(M)T=`<style${M[1]}>${M[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[C,f]of Object.entries(H))I[C]=f;let E=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,S=[...A.matchAll(E)],k="",b=null;for(let C of S){let f=C[1]||"",g=C[2]||"",h=f.includes("server");if(Z$(f)&&g.trim())g=Y$(g);let i=tV(g);if(i&&!h){b=`stx_scope_${N0.basename(L,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++YN}`;let Y0=$$(g),W0=$N(Y0,b);k+=`<script data-stx-scoped>${W0}</script>
3924
+ `;continue}if(h)try{let{extractVariables:Y0}=await Promise.resolve().then(() => (L$(),m4));await Y0(g,I,L)}catch(Y0){if(X.debug)console.warn(`Warning: Could not extract variables from server script in ${L}:`,Y0)}if(!h&&!i){let Y0=f.replace(/\bclient\b/i,"").trim();k+=`<script data-stx-scoped${Y0?` ${Y0}`:""}>${g}</script>
3925
+ `}}if(b){let C=ZN(N,b);if(N=C.html,C.mergedIntoExisting)k=k.replace(`window.stx._scopes['${b}']`,`window.stx._scopes['${C.mergedIntoExisting}']`),b=C.mergedIntoExisting}if(N.includes("@include")||N.includes("@partial"))N=await n4(N,I,L,X,J,Q);let{processLoops:P}=await Promise.resolve().then(() => (i4(),fW)),x=P(N,I,L);if(x=d5(x,I,L),x=q1(x,I,L),T)x+=`
3926
3926
  `+T;if(k)x+=`
3927
- `+k;return x}catch(A){let N=A instanceof Error?A.message:String(A);return B0("Include",`Error processing include ${j}: ${N}`,Y,O,F)}}let z=/@include\s*\(/g,q;while((q=z.exec(K))!==null){let j=q.index,H=j+q[0].length-1,O=1,F=H+1;while(F<K.length&&O>0){if(K[F]==="(")O++;else if(K[F]===")")O--;F++}if(O!==0)break;let L=K.substring(j,F),V=K.substring(H+1,F-1),A=V.match(/^\s*['"]([^'"]+)['"]/);if(!A){z.lastIndex=F;continue}let N=A[1],w,M=V.substring(A[0].length),T=cZ(M,0);if(T!==-1)w=M.substring(T+1).trim();let I={};if(w)try{I=k0(w,Z)}catch(S){let k=S instanceof Error?S.message:String(S);K=K.replace(L,B0("Include",`Error parsing include variables for ${N}: ${k}`,Y,$,j)),z.lastIndex=0;continue}let E=await B(N,I,$,j);K=K.substring(0,j)+E+K.substring(F),z.lastIndex=0}return K}function s6($,Z){let Y=$;function X(J,Q,G,K){let W=J,U=!0;while(U){U=!1;let _=new RegExp(`@${Q}\\(['"]([^'"]+)['"]\\)`),B=W.match(_);if(!B||B.index===void 0)break;let z=B.index,q=B[1],j=z+B[0].length,H=new RegExp(`@${Q}\\(`),O=new RegExp(`@${G}(?![a-z])`),F=1,L=j,V=-1;while(F>0&&L<W.length){let N=W.slice(L),w=N.match(H),M=N.match(O),T=w?L+w.index:1/0,I=M?L+M.index:1/0;if(T<I)F++,L=T+(w[0].length||1);else if(I<1/0){if(F--,F===0){V=I;break}L=I+G.length+1}else break}if(V===-1)break;let A=W.slice(j,V);if(!Z[q])Z[q]=[];if(K)Z[q].unshift(A);else Z[q].push(A);W=W.substring(0,z)+W.substring(V+`@${G}`.length),U=!0}return W}return Y=X(Y,"push","endpush",!1),Y=X(Y,"prepend","endprepend",!0),Y}function r6($,Z){return $.replace(/@stack\(['"]([^'"]+)['"]\)/g,(Y,X)=>{if(!Z[X]||Z[X].length===0)return"";return Z[X].join(`
3928
- `)})}var __dirname="/home/runner/work/stx/stx/packages/stx/src",YN=0,F$,lZ;var p5=D(()=>{D6();d0();f$();h0();q0();F$=new y2(500),lZ=new Set});import*as iZ from"path";async function gW($,Z,Y=""){if(iZ.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 dW($,Z,Y,"@js","@endjs")}async function hW($,Z,Y=""){if(iZ.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 dW($,Z,Y,"@ts","@endts")}async function dW($,Z,Y,X,J){let Q=$,G=U5(`${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:B}of K)try{let z=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),F=O.length>0?`return { ${O.join(", ")} };`:"return {};",L=`
3927
+ `+k;return x}catch(A){let N=A instanceof Error?A.message:String(A);return B0("Include",`Error processing include ${j}: ${N}`,Y,O,F)}}let z=/@include\s*\(/g,q;while((q=z.exec(K))!==null){let j=q.index,H=j+q[0].length-1,O=1,F=H+1;while(F<K.length&&O>0){if(K[F]==="(")O++;else if(K[F]===")")O--;F++}if(O!==0)break;let L=K.substring(j,F),V=K.substring(H+1,F-1),A=V.match(/^\s*['"]([^'"]+)['"]/);if(!A){z.lastIndex=F;continue}let N=A[1],w,M=V.substring(A[0].length),T=cZ(M,0);if(T!==-1)w=M.substring(T+1).trim();let I={};if(w)try{I=k0(w,Z)}catch(S){let k=S instanceof Error?S.message:String(S);K=K.replace(L,B0("Include",`Error parsing include variables for ${N}: ${k}`,Y,$,j)),z.lastIndex=0;continue}let E=await B(N,I,$,j);K=K.substring(0,j)+E+K.substring(F),z.lastIndex=0}return K}function s4($,Z){let Y=$;function X(J,Q,G,K){let W=J,U=!0;while(U){U=!1;let _=new RegExp(`@${Q}\\(['"]([^'"]+)['"]\\)`),B=W.match(_);if(!B||B.index===void 0)break;let z=B.index,q=B[1],j=z+B[0].length,H=new RegExp(`@${Q}\\(`),O=new RegExp(`@${G}(?![a-z])`),F=1,L=j,V=-1;while(F>0&&L<W.length){let N=W.slice(L),w=N.match(H),M=N.match(O),T=w?L+w.index:1/0,I=M?L+M.index:1/0;if(T<I)F++,L=T+(w[0].length||1);else if(I<1/0){if(F--,F===0){V=I;break}L=I+G.length+1}else break}if(V===-1)break;let A=W.slice(j,V);if(!Z[q])Z[q]=[];if(K)Z[q].unshift(A);else Z[q].push(A);W=W.substring(0,z)+W.substring(V+`@${G}`.length),U=!0}return W}return Y=X(Y,"push","endpush",!1),Y=X(Y,"prepend","endprepend",!0),Y}function r4($,Z){return $.replace(/@stack\(['"]([^'"]+)['"]\)/g,(Y,X)=>{if(!Z[X]||Z[X].length===0)return"";return Z[X].join(`
3928
+ `)})}var __dirname="/home/runner/work/stx/stx/packages/stx/src",YN=0,F$,lZ;var p5=D(()=>{D4();d0();f$();h0();q0();F$=new y2(500),lZ=new Set});import*as iZ from"path";async function gW($,Z,Y=""){if(iZ.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 dW($,Z,Y,"@js","@endjs")}async function hW($,Z,Y=""){if(iZ.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 dW($,Z,Y,"@ts","@endts")}async function dW($,Z,Y,X,J){let Q=$,G=U5(`${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:B}of K)try{let z=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),F=O.length>0?`return { ${O.join(", ")} };`:"return {};",L=`
3929
3929
  ${j}
3930
3930
  ${F}
3931
3931
  `,A=Function(...z,L)(...q);if(A&&typeof A==="object")Object.assign(Z,A);Q=Q.replace(U,"")}catch(z){console.error(`Error executing ${X} code block in ${Y}:`,z);let q=z instanceof Error?z.message:String(z),j=B0(`${X} Directive`,`Error executing code: ${q}`,Y,$,B,U);console.error(j),Q=Q.replace(U,"")}return Q}var mW=D(()=>{f$();q0()});function QN($,Z="_method"){let Y=$.toUpperCase();if(Y==="GET"||Y==="POST")return"";return`<input type="hidden" name="${Z}" value="${Y}">`}function uW($){return $.replace(/@method\(\s*(['"])([^'"]+)\1\s*(?:,\s*(['"])([^'"]+)\3\s*)?\)/g,(Z,Y,X,J,Q)=>{return QN(X,Q||"_method")})}async function nZ($,Z,Y,X,J){if(!X.middleware||X.middleware.length===0)return $;let Q=$,G=X.middleware.filter((K)=>K.timing===J);if(G.length===0)return Q;for(let K of G){if(!K.name||typeof K.handler!=="function"){if(X.debug)console.warn("Invalid middleware:",K);continue}try{let W=await K.handler(Q,Z,Y,X);if(typeof W==="string")Q=W;else if(X.debug)console.warn(`Middleware ${K.name} did not return a string`)}catch(W){if(X.debug)console.error(`Error in middleware ${K.name}:`,W);if(X.debug){let U=B0("Middleware",`Error in middleware '${K.name}': ${W instanceof Error?W.message:String(W)}`,Y,$);Q=Q.replace(/<body[^>]*>/,`$&
3932
3932
  <div style="color:red;background:#ffeeee;padding:10px;border:1px solid #ff0000;margin:10px 0;font-family:monospace;white-space:pre-wrap;">${w0(U)}</div>
3933
- `)}}}return Q}async function sZ($,Z,Y,X){return nZ($,Z,Y,X,"before")}async function rZ($,Z,Y,X){return nZ($,Z,Y,X,"after")}var oZ=D(()=>{d0();q0()});import{defineRoute as yb,defineRoutes as Pb,resetRoutes as xb,route as vb,setAppUrl as fb}from"stx-router";import{route as GN}from"stx-router";function pW($){return $.replace(/@route\(\s*(['"])([^'"]+)\1(?:\s*,\s*(\{[^}]+\}))?\s*(?:,\s*(true|false)\s*)?\)/g,(Z,Y,X,J,Q)=>{try{let G=J?k0(J,{}):{};return GN(X,G,Q==="true")}catch(G){return console.error(`Error processing @route directive: ${G}`),"#route-error"}})}var cW=D(()=>{h0()});async function lW($,Z){let Y=$.split("/").pop()?.split(".")[0]||"";if(U7.exact[$])for(let X of U7.exact[$])await Promise.resolve(X(Z,$));if(U7.exact[Y])for(let X of U7.exact[Y])await Promise.resolve(X(Z,$));for(let{pattern:X,callback:J}of U7.patterns)if(X.test($)||X.test(Y))await Promise.resolve(J(Z,$))}var U7;var iW=D(()=>{U7={patterns:[],exact:{}}});function nW($){if(typeof $==="string")return $;if(Array.isArray($))return $.filter(Boolean).map((Z)=>nW(Z)).join(" ");if($&&typeof $==="object")return Object.entries($).filter(([,Z])=>Z).map(([Z])=>Z).join(" ");return $?String($):""}function o6($,Z){if(!/:[\w-]+=/.test($))return $;let Y=$,X=/<(script|style)\b[^>]*>[\s\S]*?<\/\1>/gi,J=[],Q;while((Q=X.exec($))!==null)J.push([Q.index,Q.index+Q[0].length]);function G(U){return J.some(([_,B])=>U>=_&&U<B)}let K=/<([a-zA-Z][a-zA-Z0-9-]*)((?:\s+(?:[^>"']|"[^"]*"|'[^']*'))*)\s*\/?>/g,W=[];while((Q=K.exec(Y))!==null){if(G(Q.index))continue;let U=Q[0],_=Q[2];if(!_||!_.includes(":"))continue;let B=/\s:([a-zA-Z_][\w-]*)\s*=\s*"([^"]*)"/g,z,q=_,j=!1;while((z=B.exec(_))!==null){let H=z[1],O=z[2];if(O.includes("()")&&!O.includes(".get(")||O.includes("$store")||O.includes("$ref"))continue;try{let F=Object.keys(Z),L=Object.values(Z),V=O.match(/^([a-zA-Z_$][\w$]*)/);if(V&&!F.includes(V[1])&&!["true","false","null","undefined","Math","JSON","String","Number","Array","Object","Date","parseInt","parseFloat"].includes(V[1]))continue;let N=Function(...F,`return (${O})`)(...L);if(H==="class"){let w=nW(N);if(w){let M=q.match(/\sclass="([^"]*)"/);if(M)q=q.replace(M[0],` class="${M[1]} ${w}"`);else q=q.replace(z[0],` class="${w}"`)}else q=q.replace(z[0],"");j=!0;continue}if(KN.has(H)){if(N)q=q.replace(z[0],` ${H}`);else q=q.replace(z[0],"");j=!0;continue}if(N===null||N===void 0||N===!1)q=q.replace(z[0],"");else{let w=String(N).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;");q=q.replace(z[0],` ${H}="${w}"`)}j=!0}catch{continue}}if(j){let H=U.endsWith("/>")?" /":"",F=`<${Q[1]}${q}${H}>`;W.push({start:Q.index,end:Q.index+U.length,replacement:F})}}for(let U=W.length-1;U>=0;U--){let{start:_,end:B,replacement:z}=W[U];Y=Y.slice(0,_)+z+Y.slice(B)}return Y}var KN;var aZ=D(()=>{KN=new Set(["disabled","checked","readonly","required","autofocus","autoplay","controls","default","defer","formnovalidate","hidden","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","reversed","selected"])});function d$($,Z){let Y=/<([a-zA-Z][a-zA-Z0-9-]*)((?:\s+(?:[^>"']|"[^"]*"|'[^']*')*)?)(\s*\/?)>/g;Y.lastIndex=Z;let X=Y.exec($);if(!X)return null;return{full:X[0],tag:X[1],attrs:X[2],selfClosing:X[3].includes("/")||WN.has(X[1].toLowerCase()),start:X.index,end:X.index+X[0].length}}function _N($,Z,Y){let X=1,J=Y,Q=new RegExp(`<${Z}(?:\\s(?:[^>"']|"[^"]*"|'[^']*')*)?>`,"gi"),G=new RegExp(`</${Z}\\s*>`,"gi");while(X>0&&J<$.length){Q.lastIndex=J,G.lastIndex=J;let K=Q.exec($),W=G.exec($);if(!W)return-1;if(K&&K.index<W.index)X++,J=K.index+K[0].length;else{if(X--,X===0)return W.index+W[0].length;J=W.index+W[0].length}}return-1}function I1($,Z){if(Z.selfClosing)return{outerStart:Z.start,outerEnd:Z.end,innerHTML:""};let Y=_N($,Z.tag,Z.end);if(Y===-1)return{outerStart:Z.start,outerEnd:Z.end,innerHTML:""};return{outerStart:Z.start,outerEnd:Y,innerHTML:$.slice(Z.end,Y-`</${Z.tag}>`.length)}}function sW($,Z){return new RegExp(`(?:^|\\s)${Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?:=|\\s|$|>|/)`).test($)||$.includes(` ${Z}=`)||$.includes(` ${Z} `)||$.trimEnd().endsWith(` ${Z}`)}function c5($,Z){let Y=Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),X=$.match(new RegExp(`${Y}="([^"]*)"`,"s"))||$.match(new RegExp(`${Y}='([^']*)'`,"s"));return X?X[1]:null}function V$($,Z){let Y=Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return $.replace(new RegExp(`\\s*${Y}="[^"]*"`,"g"),"").replace(new RegExp(`\\s*${Y}='[^']*'`,"g"),"").replace(new RegExp(`\\s*${Y}(?=\\s|$|>|/)`,"g"),"")}function N$($,Z,Y){let X=Z.selfClosing?" /":"",J=`<${Z.tag}${Y}${X}>`;return $.slice(0,Z.start)+J+$.slice(Z.end)}function rW($){return/\bv-(?:if|else-if|else|for|show|model|html|text|pre|once|cloak|memo|bind|on|slot)\b/.test($)}function BN($){let Z=$,Y=0;while(Y<Z.length){let X=d$(Z,Y);if(!X)break;let J=c5(X.attrs,"v-for");if(J===null){Y=X.end;continue}let Q=J.match(/^\s*\(?([^)]+)\)?\s+(?:in|of)\s+(.+)\s*$/);if(!Q){Y=X.end;continue}let G=Q[1].trim(),K=Q[2].trim(),W;if(G.includes(",")){let O=G.split(",").map((V)=>V.trim()),F=O[0],L=O[1];W=`${K} as ${L} => ${F}`}else W=`${K} as ${G}`;let U=V$(X.attrs,"v-for"),_=V$(U,":key").replace(/\s*v-bind:key="[^"]*"/g,""),B=I1(Z,X),z=Z.slice(B.outerStart,B.outerEnd),q=N$(z,{...X,start:0,end:X.end-X.start},_),j=`@foreach(${W})
3933
+ `)}}}return Q}async function sZ($,Z,Y,X){return nZ($,Z,Y,X,"before")}async function rZ($,Z,Y,X){return nZ($,Z,Y,X,"after")}var oZ=D(()=>{d0();q0()});import{defineRoute as Pb,defineRoutes as xb,resetRoutes as vb,route as fb,setAppUrl as gb}from"stx-router";import{route as GN}from"stx-router";function pW($){return $.replace(/@route\(\s*(['"])([^'"]+)\1(?:\s*,\s*(\{[^}]+\}))?\s*(?:,\s*(true|false)\s*)?\)/g,(Z,Y,X,J,Q)=>{try{let G=J?k0(J,{}):{};return GN(X,G,Q==="true")}catch(G){return console.error(`Error processing @route directive: ${G}`),"#route-error"}})}var cW=D(()=>{h0()});async function lW($,Z){let Y=$.split("/").pop()?.split(".")[0]||"";if(U7.exact[$])for(let X of U7.exact[$])await Promise.resolve(X(Z,$));if(U7.exact[Y])for(let X of U7.exact[Y])await Promise.resolve(X(Z,$));for(let{pattern:X,callback:J}of U7.patterns)if(X.test($)||X.test(Y))await Promise.resolve(J(Z,$))}var U7;var iW=D(()=>{U7={patterns:[],exact:{}}});function nW($){if(typeof $==="string")return $;if(Array.isArray($))return $.filter(Boolean).map((Z)=>nW(Z)).join(" ");if($&&typeof $==="object")return Object.entries($).filter(([,Z])=>Z).map(([Z])=>Z).join(" ");return $?String($):""}function o4($,Z){if(!/:[\w-]+=/.test($))return $;let Y=$,X=/<(script|style)\b[^>]*>[\s\S]*?<\/\1>/gi,J=[],Q;while((Q=X.exec($))!==null)J.push([Q.index,Q.index+Q[0].length]);function G(U){return J.some(([_,B])=>U>=_&&U<B)}let K=/<([a-zA-Z][a-zA-Z0-9-]*)((?:\s+(?:[^>"']|"[^"]*"|'[^']*'))*)\s*\/?>/g,W=[];while((Q=K.exec(Y))!==null){if(G(Q.index))continue;let U=Q[0],_=Q[2];if(!_||!_.includes(":"))continue;let B=/\s:([a-zA-Z_][\w-]*)\s*=\s*"([^"]*)"/g,z,q=_,j=!1;while((z=B.exec(_))!==null){let H=z[1],O=z[2];if(O.includes("()")&&!O.includes(".get(")||O.includes("$store")||O.includes("$ref"))continue;try{let F=Object.keys(Z),L=Object.values(Z),V=O.match(/^([a-zA-Z_$][\w$]*)/);if(V&&!F.includes(V[1])&&!["true","false","null","undefined","Math","JSON","String","Number","Array","Object","Date","parseInt","parseFloat"].includes(V[1]))continue;let N=Function(...F,`return (${O})`)(...L);if(H==="class"){let w=nW(N);if(w){let M=q.match(/\sclass="([^"]*)"/);if(M)q=q.replace(M[0],` class="${M[1]} ${w}"`);else q=q.replace(z[0],` class="${w}"`)}else q=q.replace(z[0],"");j=!0;continue}if(KN.has(H)){if(N)q=q.replace(z[0],` ${H}`);else q=q.replace(z[0],"");j=!0;continue}if(N===null||N===void 0||N===!1)q=q.replace(z[0],"");else{let w=String(N).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;");q=q.replace(z[0],` ${H}="${w}"`)}j=!0}catch{continue}}if(j){let H=U.endsWith("/>")?" /":"",F=`<${Q[1]}${q}${H}>`;W.push({start:Q.index,end:Q.index+U.length,replacement:F})}}for(let U=W.length-1;U>=0;U--){let{start:_,end:B,replacement:z}=W[U];Y=Y.slice(0,_)+z+Y.slice(B)}return Y}var KN;var aZ=D(()=>{KN=new Set(["disabled","checked","readonly","required","autofocus","autoplay","controls","default","defer","formnovalidate","hidden","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","reversed","selected"])});function d$($,Z){let Y=/<([a-zA-Z][a-zA-Z0-9-]*)((?:\s+(?:[^>"']|"[^"]*"|'[^']*')*)?)(\s*\/?)>/g;Y.lastIndex=Z;let X=Y.exec($);if(!X)return null;return{full:X[0],tag:X[1],attrs:X[2],selfClosing:X[3].includes("/")||WN.has(X[1].toLowerCase()),start:X.index,end:X.index+X[0].length}}function _N($,Z,Y){let X=1,J=Y,Q=new RegExp(`<${Z}(?:\\s(?:[^>"']|"[^"]*"|'[^']*')*)?>`,"gi"),G=new RegExp(`</${Z}\\s*>`,"gi");while(X>0&&J<$.length){Q.lastIndex=J,G.lastIndex=J;let K=Q.exec($),W=G.exec($);if(!W)return-1;if(K&&K.index<W.index)X++,J=K.index+K[0].length;else{if(X--,X===0)return W.index+W[0].length;J=W.index+W[0].length}}return-1}function I1($,Z){if(Z.selfClosing)return{outerStart:Z.start,outerEnd:Z.end,innerHTML:""};let Y=_N($,Z.tag,Z.end);if(Y===-1)return{outerStart:Z.start,outerEnd:Z.end,innerHTML:""};return{outerStart:Z.start,outerEnd:Y,innerHTML:$.slice(Z.end,Y-`</${Z.tag}>`.length)}}function sW($,Z){return new RegExp(`(?:^|\\s)${Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?:=|\\s|$|>|/)`).test($)||$.includes(` ${Z}=`)||$.includes(` ${Z} `)||$.trimEnd().endsWith(` ${Z}`)}function c5($,Z){let Y=Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),X=$.match(new RegExp(`${Y}="([^"]*)"`,"s"))||$.match(new RegExp(`${Y}='([^']*)'`,"s"));return X?X[1]:null}function V$($,Z){let Y=Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return $.replace(new RegExp(`\\s*${Y}="[^"]*"`,"g"),"").replace(new RegExp(`\\s*${Y}='[^']*'`,"g"),"").replace(new RegExp(`\\s*${Y}(?=\\s|$|>|/)`,"g"),"")}function N$($,Z,Y){let X=Z.selfClosing?" /":"",J=`<${Z.tag}${Y}${X}>`;return $.slice(0,Z.start)+J+$.slice(Z.end)}function rW($){return/\bv-(?:if|else-if|else|for|show|model|html|text|pre|once|cloak|memo|bind|on|slot)\b/.test($)}function BN($){let Z=$,Y=0;while(Y<Z.length){let X=d$(Z,Y);if(!X)break;let J=c5(X.attrs,"v-for");if(J===null){Y=X.end;continue}let Q=J.match(/^\s*\(?([^)]+)\)?\s+(?:in|of)\s+(.+)\s*$/);if(!Q){Y=X.end;continue}let G=Q[1].trim(),K=Q[2].trim(),W;if(G.includes(",")){let O=G.split(",").map((V)=>V.trim()),F=O[0],L=O[1];W=`${K} as ${L} => ${F}`}else W=`${K} as ${G}`;let U=V$(X.attrs,"v-for"),_=V$(U,":key").replace(/\s*v-bind:key="[^"]*"/g,""),B=I1(Z,X),z=Z.slice(B.outerStart,B.outerEnd),q=N$(z,{...X,start:0,end:X.end-X.start},_),j=`@foreach(${W})
3934
3934
  `,H=`${j}${q}
3935
3935
  @endforeach`;Z=Z.slice(0,B.outerStart)+H+Z.slice(B.outerEnd),Y=B.outerStart+j.length}return Z}function zN($){let Z=$,Y=0;while(Y<Z.length){let X=d$(Z,Y);if(!X)break;let J=c5(X.attrs,"v-if");if(J===null){Y=X.end;continue}let Q=[],G=I1(Z,X),K=V$(X.attrs,"v-if"),W=N$(Z.slice(G.outerStart,G.outerEnd),{...X,start:0,end:X.end-X.start},K);Q.push({type:"if",expr:J,outerStart:G.outerStart,outerEnd:G.outerEnd,element:W,parsedTag:X});let U=G.outerEnd,_=!0;while(_){let H=Z.slice(U).match(/^\s*/),O=H?H[0].length:0,F=d$(Z,U+O);if(!F){_=!1;break}let L=c5(F.attrs,"v-else-if"),V=sW(F.attrs,"v-else");if(L!==null){let A=I1(Z,F),N=V$(F.attrs,"v-else-if"),w=N$(Z.slice(A.outerStart,A.outerEnd),{...F,start:0,end:F.end-F.start},N);Q.push({type:"else-if",expr:L,outerStart:U,outerEnd:A.outerEnd,element:w,parsedTag:F}),U=A.outerEnd}else if(V){let A=I1(Z,F),N=V$(F.attrs,"v-else"),w=N$(Z.slice(A.outerStart,A.outerEnd),{...F,start:0,end:F.end-F.start},N);Q.push({type:"else",outerStart:U,outerEnd:A.outerEnd,element:w,parsedTag:F}),_=!1}else _=!1}let B=[];for(let H of Q)if(H.type==="if")B.push(`@if(${H.expr})
3936
3936
  ${H.element}`);else if(H.type==="else-if")B.push(`@elseif(${H.expr})
@@ -3944,7 +3944,7 @@ ${N$(G,{...X,start:0,end:X.end-X.start},J)}
3944
3944
  `)})}else Z.push({selector:`@${_} ${B.trim()}`,declarations:z.trim()})}G="",Q=!1}else if(J.trim()){J+=W;let U=J.match(/([^{]+)\{([^}]*)\}/);if(U)Z.push({selector:U[1].trim(),declarations:U[2].trim()});J=""}continue}}if(Q)G+=W;else J+=W}return Z}function tW($,Z,Y,X,J,Q){let{selector:G,declarations:K}=$;if(G.startsWith("@")){if(G.startsWith("@keyframes")){let _=G.replace("@keyframes ","").trim();return`@keyframes ${J.get(_)||_} { ${K} }`}if(G.startsWith("@media")||G.startsWith("@supports")||G.startsWith("@container")){let B=YY(`x { ${K} }`.replace(/x \{ /,"").replace(/ \}$/,"")).map((z)=>tW(z,Z,Y,X,J,Q)).join(`
3945
3945
  `);return`${G} {
3946
3946
  ${B}
3947
- }`}return`${G} { ${K} }`}let W=MN(G,Z,Y,X),U=K;for(let[_,B]of J)U=U.replace(new RegExp(`\\b${_}\\b`,"g"),B);if(Q)U=U.replace(/--([a-z-]+)/gi,`--${Z}-$1`);return`${W} { ${U} }`}function MN($,Z,Y,X){let J=$.split(",").map((G)=>G.trim()),Q=[];for(let G of J){if(G.startsWith(":host")){if(X)Q.push(G);else{let W=G.replace(/:host(\([^)]*\))?/,`.${Z}$1`);Q.push(W)}continue}if(G.includes("::slotted")){Q.push(G);continue}if(G===":root"){Q.push(`:root .${Z}`);continue}let K=Y?`${Y} .${Z}`:`.${Z}`;Q.push(`${K} ${G}`)}return Q.join(", ")}function _7($,Z){if(!/<style\s+[^>]*\bscoped\b/i.test($))return{html:$,hasScoped:!1};let Y=oW(Z),X=`data-v-${Y}`,J=$,Q=/<style\s+([^>]*\bscoped\b[^>]*)>([\s\S]*?)<\/style>/gi,G=!1;if(J=J.replace(Q,(K,W,U)=>{G=!0;let _=TN(U,X),B=W.replace(/\bscoped\b/gi,"").trim(),z=B?` ${B}`:"";return`<style data-stx-scoped="${Y}"${z}>${_}</style>`}),!G)return{html:$,hasScoped:!1};return J=EN(J,X),{html:J,hasScoped:!0}}function TN($,Z){return aW($,"__SCOPE_PLACEHOLDER__",{preserveHost:!1}).replace(/\.(__SCOPE_PLACEHOLDER__) /g,`[${Z}] `).replace(/\.(__SCOPE_PLACEHOLDER__)/g,`[${Z}]`)}function EN($,Z){let Y=new Set(["script","style","template","html","head","body","meta","link","title","base","!doctype","!DOCTYPE"]);return $.replace(/<([a-zA-Z][a-zA-Z0-9-]*)(\s[^>]*)?\/?>/g,(X,J,Q)=>{if(Y.has(J.toLowerCase()))return X;if(X.includes(Z))return X;if(J.toLowerCase()==="style"||J.toLowerCase()==="script")return X;if(Q)return X.replace(`<${J}${Q}`,`<${J} ${Z}${Q}`);if(X.endsWith("/>"))return`<${J} ${Z} />`;return`<${J} ${Z}>`})}var a6=()=>{};function eW($,Z={},Y={}){let{title:X="stx App",lang:J="en",meta:Q=[],link:G=[],script:K=[],headRaw:W="",bodyClass:U="",bodyAttrs:_={}}=Z,B=Y.title||X,j=[...[{charset:"UTF-8"},{name:"viewport",content:"width=device-width, initial-scale=1.0"}],...Q].map((N)=>{return` <meta ${Object.entries(N).map(([M,T])=>`${M}="${T}"`).join(" ")}>`}).join(`
3947
+ }`}return`${G} { ${K} }`}let W=MN(G,Z,Y,X),U=K;for(let[_,B]of J)U=U.replace(new RegExp(`\\b${_}\\b`,"g"),B);if(Q)U=U.replace(/--([a-z-]+)/gi,`--${Z}-$1`);return`${W} { ${U} }`}function MN($,Z,Y,X){let J=$.split(",").map((G)=>G.trim()),Q=[];for(let G of J){if(G.startsWith(":host")){if(X)Q.push(G);else{let W=G.replace(/:host(\([^)]*\))?/,`.${Z}$1`);Q.push(W)}continue}if(G.includes("::slotted")){Q.push(G);continue}if(G===":root"){Q.push(`:root .${Z}`);continue}let K=Y?`${Y} .${Z}`:`.${Z}`;Q.push(`${K} ${G}`)}return Q.join(", ")}function _7($,Z){if(!/<style\s+[^>]*\bscoped\b/i.test($))return{html:$,hasScoped:!1};let Y=oW(Z),X=`data-v-${Y}`,J=$,Q=/<style\s+([^>]*\bscoped\b[^>]*)>([\s\S]*?)<\/style>/gi,G=!1;if(J=J.replace(Q,(K,W,U)=>{G=!0;let _=TN(U,X),B=W.replace(/\bscoped\b/gi,"").trim(),z=B?` ${B}`:"";return`<style data-stx-scoped="${Y}"${z}>${_}</style>`}),!G)return{html:$,hasScoped:!1};return J=EN(J,X),{html:J,hasScoped:!0}}function TN($,Z){return aW($,"__SCOPE_PLACEHOLDER__",{preserveHost:!1}).replace(/\.(__SCOPE_PLACEHOLDER__) /g,`[${Z}] `).replace(/\.(__SCOPE_PLACEHOLDER__)/g,`[${Z}]`)}function EN($,Z){let Y=new Set(["script","style","template","html","head","body","meta","link","title","base","!doctype","!DOCTYPE"]);return $.replace(/<([a-zA-Z][a-zA-Z0-9-]*)(\s[^>]*)?\/?>/g,(X,J,Q)=>{if(Y.has(J.toLowerCase()))return X;if(X.includes(Z))return X;if(J.toLowerCase()==="style"||J.toLowerCase()==="script")return X;if(Q)return X.replace(`<${J}${Q}`,`<${J} ${Z}${Q}`);if(X.endsWith("/>"))return`<${J} ${Z} />`;return`<${J} ${Z}>`})}var a4=()=>{};function eW($,Z={},Y={}){let{title:X="stx App",lang:J="en",meta:Q=[],link:G=[],script:K=[],headRaw:W="",bodyClass:U="",bodyAttrs:_={}}=Z,B=Y.title||X,j=[...[{charset:"UTF-8"},{name:"viewport",content:"width=device-width, initial-scale=1.0"}],...Q].map((N)=>{return` <meta ${Object.entries(N).map(([M,T])=>`${M}="${T}"`).join(" ")}>`}).join(`
3948
3948
  `),H=G.map((N)=>{return` <link ${Object.entries(N).map(([M,T])=>`${M}="${T}"`).join(" ")}>`}).join(`
3949
3949
  `),O=K.map((N)=>{if(N.src)return` <script ${Object.entries(N).filter(([M])=>M!=="content").map(([M,T])=>`${M}="${T}"`).join(" ")}></script>`;if(N.content)return` <script>${N.content}</script>`;return""}).filter(Boolean).join(`
3950
3950
  `),F=Object.entries(_).map(([N,w])=>` ${N}="${w}"`).join(""),L=U?` class="${U}"`:"",V=[j,` <title>${B}</title>`,H,O,W?` ${W}`:"",...(Y.styles||[]).map((N)=>` ${N}`),...(Y.headScripts||[]).map((N)=>` ${N}`),Y.headStack||""].filter(Boolean),A=[$,...(Y.bodyScripts||[]).map((N)=>N),Y.bodyStack||""].filter(Boolean);return`<!DOCTYPE html>
@@ -3957,7 +3957,7 @@ ${V.join(`
3957
3957
  ${A.join(`
3958
3958
  `)}
3959
3959
  </body>
3960
- </html>`}function $U($){let Z=$.trim();while(Z.startsWith("<!--")){let Y=Z.indexOf("-->");if(Y===-1)break;Z=Z.slice(Y+3).trim()}return/^<!DOCTYPE\b/i.test(Z)||/^<html[\s>]/i.test(Z)}function B7($,Z={},Y={}){if($U($))return $;return eW($,Z,Y)}function $4($){let Z=$,Y=new Set,X=new Set,J=()=>{if(Q1)X.add(Q1);return Z};return J.set=(Q)=>{if(!Object.is(Q,Z)){let G=Z;if(Z=Q,Y.forEach((K)=>K(Z,G)),z7)X.forEach((K)=>e6.add(K));else X.forEach((K)=>K())}},J.update=(Q)=>{J.set(Q(Z))},J.subscribe=(Q)=>{return Y.add(Q),()=>Y.delete(Q)},Object.defineProperty(J,"_isSignal",{value:!0,writable:!1}),J}function Z4($){let Z,Y=!0,X=new Set,J=()=>{if(!Y)if(Y=!0,z7)X.forEach((G)=>e6.add(G));else X.forEach((G)=>G())},Q=()=>{if(Q1)X.add(Q1);if(Y){let G=Q1;Q1=J,t6.push(J);try{Z=$()}finally{t6.pop(),Q1=G}Y=!1}return Z};return Object.defineProperty(Q,"_isDerived",{value:!0,writable:!1}),Q}function Y4($,Z={}){let Y,X=!1,J=()=>{if(X)return;if(Y)Y(),Y=void 0;let Q=Q1;Q1=J,t6.push(J);try{Y=$()}finally{t6.pop(),Q1=Q}};if(Z.immediate!==!1)J();return()=>{if(X=!0,Y)Y()}}function X4($){if(z7){$();return}z7=!0;try{$()}finally{z7=!1,e6.forEach((Z)=>Z()),e6.clear()}}function J4($){IN.push($)}function Q4($){DN.push($)}function q7($){return typeof $==="function"&&$._isSignal===!0}function j7($){return typeof $==="function"&&$._isDerived===!0}function G4($){if(q7($)||j7($))return $();return $}function K4($){let Z=Q1;Q1=null;try{return $()}finally{Q1=Z}}var Q1=null,t6,z7=!1,e6,IN,DN;var XY=D(()=>{t6=[],e6=new Set,IN=[],DN=[]});var JY={};Q0(JY,{untrack:()=>G4,state:()=>$4,peek:()=>K4,onMount:()=>J4,onDestroy:()=>Q4,isSignal:()=>q7,isDerived:()=>j7,generateSignalsRuntimeDev:()=>m$,generateSignalsRuntime:()=>H7,effect:()=>Y4,derived:()=>Z4,default:()=>kN,batch:()=>X4});function H7(){try{let Z=new Bun.Transpiler({loader:"js",minifyWhitespace:!0}).transformSync(m$());return Z=Z.replace(/\}(var |let |const |function )/g,"};$1"),Z}catch{return m$()}}function m$(){return`
3960
+ </html>`}function $U($){let Z=$.trim();while(Z.startsWith("<!--")){let Y=Z.indexOf("-->");if(Y===-1)break;Z=Z.slice(Y+3).trim()}return/^<!DOCTYPE\b/i.test(Z)||/^<html[\s>]/i.test(Z)}function B7($,Z={},Y={}){if($U($))return $;return eW($,Z,Y)}function $6($){let Z=$,Y=new Set,X=new Set,J=()=>{if(Q1)X.add(Q1);return Z};return J.set=(Q)=>{if(!Object.is(Q,Z)){let G=Z;if(Z=Q,Y.forEach((K)=>K(Z,G)),z7)X.forEach((K)=>e4.add(K));else X.forEach((K)=>K())}},J.update=(Q)=>{J.set(Q(Z))},J.subscribe=(Q)=>{return Y.add(Q),()=>Y.delete(Q)},Object.defineProperty(J,"_isSignal",{value:!0,writable:!1}),J}function Z6($){let Z,Y=!0,X=new Set,J=()=>{if(!Y)if(Y=!0,z7)X.forEach((G)=>e4.add(G));else X.forEach((G)=>G())},Q=()=>{if(Q1)X.add(Q1);if(Y){let G=Q1;Q1=J,t4.push(J);try{Z=$()}finally{t4.pop(),Q1=G}Y=!1}return Z};return Object.defineProperty(Q,"_isDerived",{value:!0,writable:!1}),Q}function Y6($,Z={}){let Y,X=!1,J=()=>{if(X)return;if(Y)Y(),Y=void 0;let Q=Q1;Q1=J,t4.push(J);try{Y=$()}finally{t4.pop(),Q1=Q}};if(Z.immediate!==!1)J();return()=>{if(X=!0,Y)Y()}}function X6($){if(z7){$();return}z7=!0;try{$()}finally{z7=!1,e4.forEach((Z)=>Z()),e4.clear()}}function J6($){IN.push($)}function Q6($){DN.push($)}function q7($){return typeof $==="function"&&$._isSignal===!0}function j7($){return typeof $==="function"&&$._isDerived===!0}function G6($){if(q7($)||j7($))return $();return $}function K6($){let Z=Q1;Q1=null;try{return $()}finally{Q1=Z}}var Q1=null,t4,z7=!1,e4,IN,DN;var XY=D(()=>{t4=[],e4=new Set,IN=[],DN=[]});var JY={};Q0(JY,{untrack:()=>G6,state:()=>$6,peek:()=>K6,onMount:()=>J6,onDestroy:()=>Q6,isSignal:()=>q7,isDerived:()=>j7,generateSignalsRuntimeDev:()=>m$,generateSignalsRuntime:()=>H7,effect:()=>Y6,derived:()=>Z6,default:()=>kN,batch:()=>X6});function H7(){try{let Z=new Bun.Transpiler({loader:"js",minifyWhitespace:!0}).transformSync(m$());return Z=Z.replace(/\}(var |let |const |function )/g,"};$1"),Z}catch{return m$()}}function m$(){return`
3961
3961
  // STX Signals Runtime (Development Build)
3962
3962
  console.log('[stx] signals runtime loading');
3963
3963
  // Pre-initialization shim: capture onMount/onDestroy calls made before the runtime IIFE runs
@@ -8050,7 +8050,7 @@ catch (e) { console.warn('[stx] mount callback error:', e); }
8050
8050
  }
8051
8051
  }
8052
8052
  })();
8053
- `}var kN;var O7=D(()=>{XY();XY();kN={state:$4,derived:Z4,effect:Y4,batch:X4,onMount:J4,onDestroy:Q4,isSignal:q7,isDerived:j7,untrack:G4,peek:K4,generateSignalsRuntime:H7,generateSignalsRuntimeDev:m$}});var GY={};Q0(GY,{templateCache:()=>QY,readFileCached:()=>ZU,invalidateFileCacheByDir:()=>XU,invalidateFileCache:()=>YU,hashFilePath:()=>i5,getCachedSignalsRuntime:()=>JU,getCachedRouterScript:()=>QU,clearDevCaches:()=>GU,checkCache:()=>_4,cacheTemplate:()=>B4});import A$ from"fs";import l5 from"path";async function ZU($){let Y;for(let X=0;X<3;X++)try{let Q=(await A$.promises.stat($)).mtime.getTime(),G=u$.get($);if(G&&G.mtime===Q)return G.content;let K=await Bun.file($).text(),U=(await A$.promises.stat($)).mtime.getTime();if(U!==Q)continue;return u$.set($,{content:K,mtime:U}),K}catch(J){Y=J;break}throw u$.delete($),Error(`File not found: ${$}${Y?` (${Y.message})`:""}`)}function YU($){u$.delete($)}function XU($){for(let Z of u$.keys())if(Z.startsWith($))u$.delete(Z)}async function JU($=!1){if($){let{generateSignalsRuntimeDev:Z}=await Promise.resolve().then(() => (O7(),JY));return Z()}if(W4===null){let{generateSignalsRuntime:Z}=await Promise.resolve().then(() => (O7(),JY));W4=Z()}return W4}async function QU(){if(U4===null){let{getRouterScript:$}=await import("stx-router");U4=$()}return U4}function GU(){u$.clear(),W4=null,SN=null,U4=null}async function _4($,Z){try{if(!Z.cachePath)return null;let Y=l5.resolve(Z.cachePath),X=l5.join(Y,`${i5($)}.html`),J=l5.join(Y,`${i5($)}.meta.json`);if(!await t(X)||!await t(J))return null;let Q=await Bun.file(J).text(),G=JSON.parse(Q);if(G.cacheVersion!==Z.cacheVersion)return null;if((await A$.promises.stat($)).mtime.getTime()>G.mtime)return null;for(let W of G.dependencies)if(await t(W)){if((await A$.promises.stat(W)).mtime.getTime()>G.mtime)return null}else return null;return await Bun.file(X).text()}catch(Y){return console.warn(`Cache error for ${$}:`,Y),null}}async function B4($,Z,Y,X){try{if(!X.cachePath)return;let J=l5.resolve(X.cachePath);await A$.promises.mkdir(J,{recursive:!0});let Q=l5.join(J,`${i5($)}.html`),G=l5.join(J,`${i5($)}.meta.json`),K=await A$.promises.stat($);await Bun.write(Q,Z);let W={sourcePath:$,mtime:K.mtime.getTime(),dependencies:Array.from(Y),cacheVersion:X.cacheVersion,generatedAt:Date.now()};await Bun.write(G,JSON.stringify(W,null,2)),QY.set($,{output:Z,mtime:K.mtime.getTime(),dependencies:Y})}catch(J){console.warn(`Failed to cache template ${$}:`,J)}}function i5($){return new Bun.CryptoHasher("sha1").update($).digest("hex").substring(0,bN)}var QY,u$,W4=null,SN=null,U4=null,bN=16;var z4=D(()=>{q0();QY=new Map,u$=new Map});function KU($){if($.includes("window.StacksBrowser")||$.includes("StacksBrowser ="))return $;let Z=/<script\b(?![^>]*\bserver\b)[^>]*>([\s\S]*?)<\/script>/gi,Y="",X;while((X=Z.exec($))!==null)Y+=X[1]+`
8053
+ `}var kN;var O7=D(()=>{XY();XY();kN={state:$6,derived:Z6,effect:Y6,batch:X6,onMount:J6,onDestroy:Q6,isSignal:q7,isDerived:j7,untrack:G6,peek:K6,generateSignalsRuntime:H7,generateSignalsRuntimeDev:m$}});var GY={};Q0(GY,{templateCache:()=>QY,readFileCached:()=>ZU,invalidateFileCacheByDir:()=>XU,invalidateFileCache:()=>YU,hashFilePath:()=>i5,getCachedSignalsRuntime:()=>JU,getCachedRouterScript:()=>QU,clearDevCaches:()=>GU,checkCache:()=>_6,cacheTemplate:()=>B6});import A$ from"fs";import l5 from"path";async function ZU($){let Y;for(let X=0;X<3;X++)try{let Q=(await A$.promises.stat($)).mtime.getTime(),G=u$.get($);if(G&&G.mtime===Q)return G.content;let K=await Bun.file($).text(),U=(await A$.promises.stat($)).mtime.getTime();if(U!==Q)continue;return u$.set($,{content:K,mtime:U}),K}catch(J){Y=J;break}throw u$.delete($),Error(`File not found: ${$}${Y?` (${Y.message})`:""}`)}function YU($){u$.delete($)}function XU($){for(let Z of u$.keys())if(Z.startsWith($))u$.delete(Z)}async function JU($=!1){if($){let{generateSignalsRuntimeDev:Z}=await Promise.resolve().then(() => (O7(),JY));return Z()}if(W6===null){let{generateSignalsRuntime:Z}=await Promise.resolve().then(() => (O7(),JY));W6=Z()}return W6}async function QU(){if(U6===null){let{getRouterScript:$}=await import("stx-router");U6=$()}return U6}function GU(){u$.clear(),W6=null,SN=null,U6=null}async function _6($,Z){try{if(!Z.cachePath)return null;let Y=l5.resolve(Z.cachePath),X=l5.join(Y,`${i5($)}.html`),J=l5.join(Y,`${i5($)}.meta.json`);if(!await t(X)||!await t(J))return null;let Q=await Bun.file(J).text(),G=JSON.parse(Q);if(G.cacheVersion!==Z.cacheVersion)return null;if((await A$.promises.stat($)).mtime.getTime()>G.mtime)return null;for(let W of G.dependencies)if(await t(W)){if((await A$.promises.stat(W)).mtime.getTime()>G.mtime)return null}else return null;return await Bun.file(X).text()}catch(Y){return console.warn(`Cache error for ${$}:`,Y),null}}async function B6($,Z,Y,X){try{if(!X.cachePath)return;let J=l5.resolve(X.cachePath);await A$.promises.mkdir(J,{recursive:!0});let Q=l5.join(J,`${i5($)}.html`),G=l5.join(J,`${i5($)}.meta.json`),K=await A$.promises.stat($);await Bun.write(Q,Z);let W={sourcePath:$,mtime:K.mtime.getTime(),dependencies:Array.from(Y),cacheVersion:X.cacheVersion,generatedAt:Date.now()};await Bun.write(G,JSON.stringify(W,null,2)),QY.set($,{output:Z,mtime:K.mtime.getTime(),dependencies:Y})}catch(J){console.warn(`Failed to cache template ${$}:`,J)}}function i5($){return new Bun.CryptoHasher("sha1").update($).digest("hex").substring(0,bN)}var QY,u$,W6=null,SN=null,U6=null,bN=16;var z6=D(()=>{q0();QY=new Map,u$=new Map});function KU($){if($.includes("window.StacksBrowser")||$.includes("StacksBrowser ="))return $;let Z=/<script\b(?![^>]*\bserver\b)[^>]*>([\s\S]*?)<\/script>/gi,Y="",X;while((X=Z.exec($))!==null)Y+=X[1]+`
8054
8054
  `;let J=/\{\{([\s\S]*?)\}\}/g;while((X=J.exec($))!==null)Y+=X[1]+`
8055
8055
  `;if(!Y.trim())return $;let G=["browserQuery","BrowserQueryBuilder","configureBrowser","createBrowserModel"].some((z)=>{return new RegExp(`\\b${z}\\b`).test(Y)}),K=new Set(["Promise","Object","Array","Map","Set","Date","Error","JSON","Math","Number","String","RegExp","Symbol","WeakMap","WeakSet","Proxy","Reflect","Intl","URL","URLSearchParams","FormData","Headers","Request","Response","AbortController","EventTarget","Element","Document","Node","Window","Console","Storage","Navigator","Blob","File","FileReader","HTMLElement","SVGElement","Event","CustomEvent","DOMParser","XMLSerializer","WebSocket","Worker","SharedWorker","IntersectionObserver","MutationObserver","ResizeObserver","PerformanceObserver","Notification","Bun","Buffer","Process"]),W=/\b([A-Z][a-zA-Z0-9]*)\s*\.\s*(all|find|first|get|where|orderBy|orderByDesc|limit|select|pluck|create|update|delete)\s*\(/g,U,_=!1;while((U=W.exec(Y))!==null)if(!K.has(U[1])){_=!0;break}if(!G&&!_)return $;let B=`<script type="module">
8056
8056
  // STX: Auto-load @stacksjs/browser (auto-initializes API and loads models)
@@ -8062,13 +8062,13 @@ ${B}`);return B+`
8062
8062
  `+$}async function WU($,Z){if($.includes("window.stx.state")||$.includes("STX Signals Runtime"))return $;if(Z.buildMode==="compile"){let K=$.indexOf("<script");if(K!==-1)return $.slice(0,K)+`<script src="/__stx/runtime.__STX_HASH__.js"></script>
8063
8063
  `+$.slice(K);if($.includes("</head>")){let W=$.indexOf("</head>");return $.slice(0,W)+`<script src="/__stx/runtime.__STX_HASH__.js"></script>
8064
8064
  `+$.slice(W)}return`<script src="/__stx/runtime.__STX_HASH__.js"></script>
8065
- `+$}let{getCachedSignalsRuntime:Y}=await Promise.resolve().then(() => (z4(),GY)),J=`<script data-stx-scoped>${await Y(Z.debug)}</script>`,Q=$.indexOf("<script");if(Q!==-1)return $.slice(0,Q)+J+`
8065
+ `+$}let{getCachedSignalsRuntime:Y}=await Promise.resolve().then(() => (z6(),GY)),J=`<script data-stx-scoped>${await Y(Z.debug)}</script>`,Q=$.indexOf("<script");if(Q!==-1)return $.slice(0,Q)+J+`
8066
8066
  `+$.slice(Q);if($.includes("</head>")){let G=$.indexOf("</head>");return $.slice(0,G)+J+`
8067
8067
  `+$.slice(G)}if($.includes("<body")){let G=$.indexOf("<body"),K=$.indexOf(">",G);return $.slice(0,K+1)+`
8068
8068
  `+J+$.slice(K+1)}return J+`
8069
8069
  `+$}async function p$($,Z){if(!$.includes("</body>"))return $;if($.includes("__stxRouter)return")||$.includes("__stxRouter=true"))return $;let Y=Z?.router,X="";if(Y){let K={};if(Y.container)K.container=Y.container;if(Y.viewTransitions!==void 0)K.viewTransitions=Y.viewTransitions;if(Y.viewTransitionDuration!==void 0)K.viewTransitionDuration=Y.viewTransitionDuration;if(Y.viewTransitionEasing!==void 0)K.viewTransitionEasing=Y.viewTransitionEasing;if(Y.scrollToTop!==void 0)K.scrollToTop=Y.scrollToTop;if(Y.prefetch!==void 0)K.prefetch=Y.prefetch;if(Y.cache!==void 0)K.cache=Y.cache;if(Y.progressColor!==void 0)K.progressColor=Y.progressColor;if(Y.progressHeight!==void 0)K.progressHeight=Y.progressHeight;if(Object.keys(K).length>0)X=`<script>window.__stxRouterConfig=${JSON.stringify(K)};</script>
8070
- `}let{getCachedRouterScript:J}=await Promise.resolve().then(() => (z4(),GY)),Q=Z?.buildMode==="compile"?'<script src="/__stx/router.__STX_HASH__.js"></script>':`<script>${await J()}</script>`,G=$.lastIndexOf("</body>");return $.slice(0,G)+X+Q+`
8071
- </body>`+$.slice(G+7)}var HU={};Q0(HU,{scanScriptTags:()=>BU,processSignals:()=>UY,processScriptSetup:()=>qU,parseLoopExpression:()=>zU,hasSignalsSyntax:()=>j4,extractExports:()=>jU,convertSignalLoopsToAttributes:()=>WY,convertSignalDirectivesToAttributes:()=>KY});function BU($,Z={}){let Y=[];q4.lastIndex=0;let X;while((X=q4.exec($))!==null){let J=X[1],Q=X.index+X[0].length,G=$.toLowerCase().indexOf("</script>",Q);if(G===-1)break;let K=G+9;if(Z.skipAttrs&&Z.skipAttrs.test(J)){q4.lastIndex=K;continue}Y.push({fullMatch:$.slice(X.index,K),attrs:J,body:$.slice(Q,G),start:X.index,end:K}),q4.lastIndex=K}return Y}function zU($){let Z=$.trim(),Y=Z.match(/^([\s\S]+?)\s+as\s+(.+)$/);if(Y){let J=Y[1].trim(),Q=Y[2].trim(),{itemVar:G,indexVar:K}=UU(Q);if(G)return{style:"as",iterable:J,itemVar:G,indexVar:K}}let X=Z.match(/^(\([^)]+\)|\w+(?:\s*,\s*\w+)?)\s+(?:in|of)\s+([\s\S]+)$/);if(X){let J=X[1].trim(),Q=X[2].trim(),{itemVar:G,indexVar:K}=UU(J);if(G)return{style:"in",iterable:Q,itemVar:G,indexVar:K}}return{style:"unknown",iterable:null,itemVar:null,indexVar:null}}function UU($){let Z=$.trim(),Y=Z.match(/^(\w+)\s*=>\s*(\w+)$/);if(Y)return{itemVar:Y[2],indexVar:Y[1]};let X=Z.match(/^\(\s*(\w+)(?:\s*,\s*(\w+))?\s*\)$/);if(X)return{itemVar:X[1],indexVar:X[2]||null};let J=Z.match(/^(\w+)\s*,\s*(\w+)$/);if(J)return{itemVar:J[1],indexVar:J[2]};let Q=Z.match(/^(\w+)$/);if(Q)return{itemVar:Q[1],indexVar:null};return{itemVar:null,indexVar:null}}function j4($){return[/@if\s*=/,/@for\s*=/,/@show\s*=/,/@model\s*=/,/@bind:/,/@class\s*=/,/@style\s*=/,/\bx-data\s*=/,/\bstate\s*(?:<[^>]*>)?\s*\(/,/\bderived\s*(?:<[^>]*>)?\s*\(/,/\beffect\s*(?:<[^>]*>)?\s*\(/,/\bref\s*(?:<[^>]*>)?\s*\(/,/\bcomputed\s*(?:<[^>]*>)?\s*\(/,/\breactive\s*(?:<[^>]*>)?\s*\(/,/\bwatch\s*(?:<[^>]*>)?\s*\(/,/\bwatchEffect\s*(?:<[^>]*>)?\s*\(/,/data-stx(?:-auto)?(?![-\w])/,/data-stx-scoped/].some((Y)=>Y.test($))}function yN($){let Z=/@(if\s*\(|endif|elseif\s*\(|else\b)/g,Y=0,X;while((X=Z.exec($))!==null){let J=X[1];if(J.startsWith("if"))Y++;else if(J==="endif")Y--;else if(Y===0)return!0}return!1}function KY($){let Z=$,Y=/@if\s*\(/g,X,J=[];while((X=Y.exec(Z))!==null){let Q=X.index,G=Q+X[0].length,K=1,W=G;while(W<Z.length&&K>0){if(Z[W]==="(")K++;else if(Z[W]===")")K--;W++}if(K!==0)continue;let U=Z.substring(G,W-1).trim(),_=W,B=1,z=_,q=/@(if\s*\(|endif)/g;q.lastIndex=_;let j;while((j=q.exec(Z))!==null)if(j[1].startsWith("if"))B++;else if(j[1]==="endif"){if(B--,B===0){z=j.index+j[0].length;break}}if(B!==0)continue;let H=Z.substring(_,z-6).trim();if(yN(H))continue;let O=H.match(_U),F;if(O){let[,L,V,A]=O,N=U.replace(/"/g,"&quot;");F=`<${L}${V} @if="${N}">${A}</${L}>`}else F=`<template @if="${U.replace(/"/g,"&quot;")}">${H}</template>`;J.push({start:Q,end:z,replacement:F})}for(let Q=J.length-1;Q>=0;Q--){let{start:G,end:K,replacement:W}=J[Q];Z=Z.substring(0,G)+W+Z.substring(K)}return Z}function WY($,Z){let Y=$,X=/@(for|foreach)\s*\(/g,J,Q=[];while((J=X.exec(Y))!==null){let G=J[1],K=J.index,W=K+J[0].length,U=1,_=W;while(_<Y.length&&U>0){if(Y[_]==="(")U++;else if(Y[_]===")")U--;_++}if(U!==0)continue;let B=Y.substring(W,_-1).trim(),z=_,q=zU(B);if(q.iterable){let w=q.iterable.trim();if(w.startsWith("[")||w.startsWith("{")||w.startsWith("'")||w.startsWith('"')||w.startsWith("`")||/^-?\d/.test(w))continue;if(Z){let M=w.split(/[.[(]/)[0].trim();if(M&&M in Z)continue}}if(q.style==="as")B=q.indexVar?`(${q.itemVar}, ${q.indexVar}) in ${q.iterable}`:`${q.itemVar} in ${q.iterable}`;let j=G==="for"?"@endfor":"@endforeach",H=1,O=z,F=G==="for"?new RegExp("@(for(?!each)\\s*\\(|endfor(?!each))","g"):new RegExp(`@(${G}\\s*\\(|end${G})`,"g");F.lastIndex=z;let L;while((L=F.exec(Y))!==null)if(L[1].startsWith(G))H++;else if(H--,H===0){O=L.index+L[0].length;break}if(H!==0)continue;let V=Y.substring(z,O-j.length).trim(),A=V.match(_U),N;if(A){let[,w,M,T]=A;N=`<${w}${M} @for="${B}">${T}</${w}>`}else N=`<template @for="${B}">${V}</template>`;Q.push({start:K,end:O,replacement:N})}for(let G=Q.length-1;G>=0;G--){let{start:K,end:W,replacement:U}=Q[G];Y=Y.substring(0,K)+U+Y.substring(W)}return Y}function PN($){let Z=new Set,Y=[],X=0,J=0,Q=$.length,G=(_)=>{let B=X+1;while(B<Q){let z=$[B];if(z==="\\"){B+=2;continue}if(z===_)return B+1;B++}return Q},K=()=>{let _=X+2;while(_<Q&&$[_]!==`
8070
+ `}let{getCachedRouterScript:J}=await Promise.resolve().then(() => (z6(),GY)),Q=Z?.buildMode==="compile"?'<script src="/__stx/router.__STX_HASH__.js"></script>':`<script>${await J()}</script>`,G=$.lastIndexOf("</body>");return $.slice(0,G)+X+Q+`
8071
+ </body>`+$.slice(G+7)}var HU={};Q0(HU,{scanScriptTags:()=>BU,processSignals:()=>UY,processScriptSetup:()=>qU,parseLoopExpression:()=>zU,hasSignalsSyntax:()=>j6,extractExports:()=>jU,convertSignalLoopsToAttributes:()=>WY,convertSignalDirectivesToAttributes:()=>KY});function BU($,Z={}){let Y=[];q6.lastIndex=0;let X;while((X=q6.exec($))!==null){let J=X[1],Q=X.index+X[0].length,G=$.toLowerCase().indexOf("</script>",Q);if(G===-1)break;let K=G+9;if(Z.skipAttrs&&Z.skipAttrs.test(J)){q6.lastIndex=K;continue}Y.push({fullMatch:$.slice(X.index,K),attrs:J,body:$.slice(Q,G),start:X.index,end:K}),q6.lastIndex=K}return Y}function zU($){let Z=$.trim(),Y=Z.match(/^([\s\S]+?)\s+as\s+(.+)$/);if(Y){let J=Y[1].trim(),Q=Y[2].trim(),{itemVar:G,indexVar:K}=UU(Q);if(G)return{style:"as",iterable:J,itemVar:G,indexVar:K}}let X=Z.match(/^(\([^)]+\)|\w+(?:\s*,\s*\w+)?)\s+(?:in|of)\s+([\s\S]+)$/);if(X){let J=X[1].trim(),Q=X[2].trim(),{itemVar:G,indexVar:K}=UU(J);if(G)return{style:"in",iterable:Q,itemVar:G,indexVar:K}}return{style:"unknown",iterable:null,itemVar:null,indexVar:null}}function UU($){let Z=$.trim(),Y=Z.match(/^(\w+)\s*=>\s*(\w+)$/);if(Y)return{itemVar:Y[2],indexVar:Y[1]};let X=Z.match(/^\(\s*(\w+)(?:\s*,\s*(\w+))?\s*\)$/);if(X)return{itemVar:X[1],indexVar:X[2]||null};let J=Z.match(/^(\w+)\s*,\s*(\w+)$/);if(J)return{itemVar:J[1],indexVar:J[2]};let Q=Z.match(/^(\w+)$/);if(Q)return{itemVar:Q[1],indexVar:null};return{itemVar:null,indexVar:null}}function j6($){return[/@if\s*=/,/@for\s*=/,/@show\s*=/,/@model\s*=/,/@bind:/,/@class\s*=/,/@style\s*=/,/\bx-data\s*=/,/\bstate\s*(?:<[^>]*>)?\s*\(/,/\bderived\s*(?:<[^>]*>)?\s*\(/,/\beffect\s*(?:<[^>]*>)?\s*\(/,/\bref\s*(?:<[^>]*>)?\s*\(/,/\bcomputed\s*(?:<[^>]*>)?\s*\(/,/\breactive\s*(?:<[^>]*>)?\s*\(/,/\bwatch\s*(?:<[^>]*>)?\s*\(/,/\bwatchEffect\s*(?:<[^>]*>)?\s*\(/,/data-stx(?:-auto)?(?![-\w])/,/data-stx-scoped/].some((Y)=>Y.test($))}function yN($){let Z=/@(if\s*\(|endif|elseif\s*\(|else\b)/g,Y=0,X;while((X=Z.exec($))!==null){let J=X[1];if(J.startsWith("if"))Y++;else if(J==="endif")Y--;else if(Y===0)return!0}return!1}function KY($){let Z=$,Y=/@if\s*\(/g,X,J=[];while((X=Y.exec(Z))!==null){let Q=X.index,G=Q+X[0].length,K=1,W=G;while(W<Z.length&&K>0){if(Z[W]==="(")K++;else if(Z[W]===")")K--;W++}if(K!==0)continue;let U=Z.substring(G,W-1).trim(),_=W,B=1,z=_,q=/@(if\s*\(|endif)/g;q.lastIndex=_;let j;while((j=q.exec(Z))!==null)if(j[1].startsWith("if"))B++;else if(j[1]==="endif"){if(B--,B===0){z=j.index+j[0].length;break}}if(B!==0)continue;let H=Z.substring(_,z-6).trim();if(yN(H))continue;let O=H.match(_U),F;if(O){let[,L,V,A]=O,N=U.replace(/"/g,"&quot;");F=`<${L}${V} @if="${N}">${A}</${L}>`}else F=`<template @if="${U.replace(/"/g,"&quot;")}">${H}</template>`;J.push({start:Q,end:z,replacement:F})}for(let Q=J.length-1;Q>=0;Q--){let{start:G,end:K,replacement:W}=J[Q];Z=Z.substring(0,G)+W+Z.substring(K)}return Z}function WY($,Z){let Y=$,X=/@(for|foreach)\s*\(/g,J,Q=[];while((J=X.exec(Y))!==null){let G=J[1],K=J.index,W=K+J[0].length,U=1,_=W;while(_<Y.length&&U>0){if(Y[_]==="(")U++;else if(Y[_]===")")U--;_++}if(U!==0)continue;let B=Y.substring(W,_-1).trim(),z=_,q=zU(B);if(q.iterable){let w=q.iterable.trim();if(w.startsWith("[")||w.startsWith("{")||w.startsWith("'")||w.startsWith('"')||w.startsWith("`")||/^-?\d/.test(w))continue;if(Z){let M=w.split(/[.[(]/)[0].trim();if(M&&M in Z)continue}}if(q.style==="as")B=q.indexVar?`(${q.itemVar}, ${q.indexVar}) in ${q.iterable}`:`${q.itemVar} in ${q.iterable}`;let j=G==="for"?"@endfor":"@endforeach",H=1,O=z,F=G==="for"?new RegExp("@(for(?!each)\\s*\\(|endfor(?!each))","g"):new RegExp(`@(${G}\\s*\\(|end${G})`,"g");F.lastIndex=z;let L;while((L=F.exec(Y))!==null)if(L[1].startsWith(G))H++;else if(H--,H===0){O=L.index+L[0].length;break}if(H!==0)continue;let V=Y.substring(z,O-j.length).trim(),A=V.match(_U),N;if(A){let[,w,M,T]=A;N=`<${w}${M} @for="${B}">${T}</${w}>`}else N=`<template @for="${B}">${V}</template>`;Q.push({start:K,end:O,replacement:N})}for(let G=Q.length-1;G>=0;G--){let{start:K,end:W,replacement:U}=Q[G];Y=Y.substring(0,K)+U+Y.substring(W)}return Y}function PN($){let Z=new Set,Y=[],X=0,J=0,Q=$.length,G=(_)=>{let B=X+1;while(B<Q){let z=$[B];if(z==="\\"){B+=2;continue}if(z===_)return B+1;B++}return Q},K=()=>{let _=X+2;while(_<Q&&$[_]!==`
8072
8072
  `)_++;return _},W=()=>{let _=X+2;while(_<Q-1){if($[_]==="*"&&$[_+1]==="/")return _+2;_++}return Q},U=(_)=>{let B=_,z=0;while(B<Q){let q=$[B];if(q==="/"&&$[B+1]==="/"){let j=B+2;while(j<Q&&$[j]!==`
8073
8073
  `)j++;B=j;continue}if(q==="/"&&$[B+1]==="*"){let j=B+2;while(j<Q-1&&!($[j]==="*"&&$[j+1]==="/"))j++;B=j+2;continue}if(q==='"'||q==="'"||q==="`"){let j=B+1;while(j<Q){if($[j]==="\\"){j+=2;continue}if($[j]===q){j++;break}j++}B=j;continue}if(q==="("||q==="["||q==="{"){z++,B++;continue}if(q===")"||q==="]"||q==="}"){z--,B++;continue}if(q===";"&&z===0)return B+1;B++}return Q};while(X<Q){let _=$[X];if(_==="/"&&$[X+1]==="/"){let B=K();Y.push($.slice(X,B)),X=B;continue}if(_==="/"&&$[X+1]==="*"){let B=W();Y.push($.slice(X,B)),X=B;continue}if(_==='"'||_==="'"||_==="`"){let B=G(_);Y.push($.slice(X,B)),X=B;continue}if(_==="{"){J++,Y.push(_),X++;continue}if(_==="}"){J--,Y.push(_),X++;continue}if(J===0){let B=X>0?$[X-1]:"";if(B===""||/\s/.test(B)||B===";"||B==="}"||B==="{"){let q=$.slice(X).match(/^(const|let|var)\s+([a-zA-Z_$][\w$]*)\s*=/);if(q){let j=q[2],H=U(X+q[0].length);if(Z.has(j)){Y.push(`/* stx: deduped const ${j} */`),X=H;continue}Z.add(j),Y.push($.slice(X,H)),X=H;continue}}}Y.push(_),X++}return Y.join("")}async function qU($,Z){let Y=BU($,{skipAttrs:/\bserver\b|\bsrc\s*=|\bdata-stx-scoped\b|\bdata-stx-router\b/}),X=/\b(?:state|derived|effect|ref|reactive|computed|watch|watchEffect|useStore|useLocalStorage|useSessionStorage|useFetch|useRef|useEventListener|useDebounce|useDebouncedValue|useThrottle|useInterval|useTimeout|useToggle|useCounter|useClickOutside|useFocus|useAsync|useColorMode|useDark|useWebSocket|useRoute|useSearchParams|onMount|onDestroy)\s*(?:<[^>]*>)?\s*\(/,J=[];for(let q of Y){let j=q.body;if(Z$(q.attrs))j=Y$(j);if(X.test(j))J.push({fullMatch:q.fullMatch,attrs:q.attrs,content:j})}if(J.length===0)return{output:$,setupCode:null};let Q=`__stx_setup_${Date.now()}_${CN++}`,{hasUserImports:G,bundleClientScript:K}=await Promise.resolve().then(() => (D3(),I3)),W=[];for(let q=0;q<J.length;q++){let j=J[q].content;if(G(j))console.log("[stx:bundler] bundling signal script imports"),j=await K(j,Z||"",{projectRoot:process.cwd()});j=j.replace(/^\s*import\s+(?:type\s+)?\{[^}]*\}\s+from\s+['"](?:stx|@stacksjs\/stx|@stacksjs\/browser)['"]\s*;?\s*$/gm,"// [stx import stripped \u2014 resolved via window.stx in __stx_setup]");let H=$$(j);W.push(`// \u2500\u2500 merged signal script #${q+1} \u2500\u2500
8074
8074
  ${H}`)}let U=W.join(`
@@ -8082,15 +8082,15 @@ ${U}
8082
8082
  }
8083
8083
  if(window.stx)window.stx._latestSetup=${Q};
8084
8084
  </script>`,z=$;for(let q of J)z=z.split(q.fullMatch).join("");if(z.includes("<body"))z=z.replace(/<body([^>]*)>/,`<body$1 data-stx="${Q}">`);else{let q=["script","style","html","head","meta","link","title","!doctype"];z=z.replace(/<([a-zA-Z][a-zA-Z0-9-]*)\b([^>]*)>/i,(j,H,O)=>{if(q.includes(H.toLowerCase()))return j;return`<${H}${O} data-stx="${Q}">`})}return{output:z,setupCode:B}}function jU($){let Z=$,Y=[],X=new Set,J=0,Q=0,G=Z.length,K=(B)=>{Q++;while(Q<G){if(Z[Q]==="\\"){Q+=2;continue}if(Z[Q]===B){Q++;return}Q++}},W=()=>{Q++;while(Q<G){if(Z[Q]==="\\"){Q+=2;continue}if(Z[Q]==="`"){Q++;return}if(Z[Q]==="$"&&Z[Q+1]==="{"){Q+=2;let B=1;while(Q<G&&B>0)if(Z[Q]==="{")B++;else if(Z[Q]==="}")B--;else if(Z[Q]==="'"||Z[Q]==='"')K(Z[Q]);else if(Z[Q]==="`")W();else Q++;continue}Q++}},U=()=>{if(Z[Q]==="/"&&Z[Q+1]==="/"){while(Q<G&&Z[Q]!==`
8085
- `)Q++;return!0}if(Z[Q]==="/"&&Z[Q+1]==="*"){Q+=2;while(Q<G-1&&!(Z[Q]==="*"&&Z[Q+1]==="/"))Q++;return Q+=2,!0}return!1},_=()=>{if(J!==0)return;let B=Z.slice(Q).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(B){let j=B[2];if(!X.has(j))Y.push(j),X.add(j);return}let z=Z.slice(Q).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(z){let j=z[1];if(!X.has(j))Y.push(j),X.add(j);return}let q=Z.slice(Q).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(q){let j=q[1];if(!X.has(j))Y.push(j),X.add(j)}};while(Q<G){if(U())continue;if(Z[Q]==="'"||Z[Q]==='"'){K(Z[Q]);continue}if(Z[Q]==="`"){W();continue}if(Z[Q]==="{"){J++,Q++;continue}if(Z[Q]==="}"){J--,Q++;continue}if(J===0&&/[a-z]/i.test(Z[Q])&&(Q===0||/\s|[;{}()]/.test(Z[Q-1])))_();Q++}return Y.join(", ")}async function UY($,Z,Y){if(!j4($))return $;let X=$;if(Z.skipSignalsRuntime)return X;let{output:J,setupCode:Q}=await qU(X,Y);if(X=J,X=await WU(X,Z),X=KU(X),Q)if(X.includes("</head>"))X=X.replace("</head>",`${Q}
8085
+ `)Q++;return!0}if(Z[Q]==="/"&&Z[Q+1]==="*"){Q+=2;while(Q<G-1&&!(Z[Q]==="*"&&Z[Q+1]==="/"))Q++;return Q+=2,!0}return!1},_=()=>{if(J!==0)return;let B=Z.slice(Q).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(B){let j=B[2];if(!X.has(j))Y.push(j),X.add(j);return}let z=Z.slice(Q).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(z){let j=z[1];if(!X.has(j))Y.push(j),X.add(j);return}let q=Z.slice(Q).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(q){let j=q[1];if(!X.has(j))Y.push(j),X.add(j)}};while(Q<G){if(U())continue;if(Z[Q]==="'"||Z[Q]==='"'){K(Z[Q]);continue}if(Z[Q]==="`"){W();continue}if(Z[Q]==="{"){J++,Q++;continue}if(Z[Q]==="}"){J--,Q++;continue}if(J===0&&/[a-z]/i.test(Z[Q])&&(Q===0||/\s|[;{}()]/.test(Z[Q-1])))_();Q++}return Y.join(", ")}async function UY($,Z,Y){if(!j6($))return $;let X=$;if(Z.skipSignalsRuntime)return X;let{output:J,setupCode:Q}=await qU(X,Y);if(X=J,X=await WU(X,Z),X=KU(X),Q)if(X.includes("</head>"))X=X.replace("</head>",`${Q}
8086
8086
  </head>`);else if(X.includes("<body"))X=X.replace(/<body([^>]*)>/,`<body$1>
8087
8087
  ${Q}`);else X=X+`
8088
- `+Q;let G=X.match(/<body([^>]*)>/i),K=G&&/data-stx/.test(G[1]);if(!Q&&!K){if(X.includes("<body")&&G&&!/data-stx-auto/.test(G[1]))X=X.replace(/<body([^>]*)>/,"<body$1 data-stx-auto>")}return X}var CN=0,q4,_U;var _Y=D(()=>{q0();q4=/<script\b([^>]*)>/gi,_U=/^<([a-zA-Z][a-zA-Z0-9-]*)\b((?:\s+[^=\s>]+(?:=(?:"[^"]*"|'[^']*'|[^\s>]*))?)*\s*)>([\s\S]*)<\/\1>$/s});import W1 from"path";import BY from"fs";function OU($){return $.split("-").map((Z)=>Z.charAt(0).toUpperCase()+Z.slice(1)).join("")}function LU($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}class FU{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(),OU(J),LU(J)];for(let j of q)if(Q.has(j))return Q.get(j)}let G=[...new Set([`${J}.stx`,`${OU(J)}.stx`,`${LU(J)}.stx`])];if(J.startsWith("./")||J.startsWith("../")){let q=W1.resolve(W1.dirname(Z),`${J}.stx`);if(await t(q))return q;return null}let K=[],W=Y.componentsDir||"",U=X?.__originalFilePath;if(U)K.push(W1.join(W1.dirname(U),"components"));if(W)K.push(W);let _=W1.join(W1.dirname(Z),"components");if(!K.includes(_))K.push(_);let B=process.cwd(),z=[W1.resolve(B,"src/components"),W1.resolve(B,"components"),W1.resolve(import.meta.dir,"components")];for(let q of z)if(!K.includes(q))K.push(q);for(let q of K){if(!q)continue;for(let j of G){let H=W1.join(q,j);if(await t(H))return H}try{if(!BY.statSync(q,{throwIfNoEntry:!1})?.isDirectory())continue;let H=BY.readdirSync(q,{withFileTypes:!0});for(let O of H)if(O.isDirectory()){let F=W1.join(q,O.name);for(let L of G){let V=W1.join(F,L);if(await t(V))return V}}}catch{}}return null}}var k1;var zY=D(()=>{q0();k1=new FU});function S1($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function xN($){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 qY;var jY=D(()=>{qY={name:"StxLink",aliases:["stx-link"],render($,Z,Y){let X=xN($),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="${S1(X.value)}"`);else W.push(`href="${S1(X.value)}"`);if(J)W.push(`class="${S1(J)}"`);if(W.push("data-stx-link"),W.push(`data-stx-active-class="${S1(Q)}"`),W.push(`data-stx-exact-active-class="${S1(G)}"`),K)W.push("data-stx-prefetch");for(let[_,B]of Object.entries($.events))W.push(`@${S1(_)}="${S1(B)}"`);let U=new Set(["to","class","className","activeClass","exactActiveClass","prefetch"]);for(let[_,B]of Object.entries($.static)){if(U.has(_))continue;if(typeof B==="boolean"){if(B)W.push(S1(_))}else W.push(`${S1(_)}="${S1(B)}"`)}return`<a ${W.join(" ")}>${Z}</a>`}}});function C0($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function n0($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}function OY($,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 VU($){if($.includes("(")||$.includes(","))return $;let Z=$.trim().split(/\s+/),Y=[];for(let X of Z)if(X.includes(":")){let[J,Q]=X.split(":"),G=vN[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 LY($,Z,Y,X){return Z.map((J)=>`${L7($,J,void 0,Y,X)} ${J}w`).join(", ")}function fN($,Z,Y,X,J){return Z.map((Q)=>{let G=Y?Y*Q:void 0;return`${L7($,G,void 0,X,J)} ${Q}x`}).join(", ")}function L7($,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 gN($,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 vN,HY,FY;var VY=D(()=>{vN={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},HY=[320,640,768,1024,1280,1536,1920];FY={name:"StxImage",aliases:["stx-image","stx-img"],render($,Z,Y){let X=n0($,"src")||"",J=n0($,"alt")||"",Q=n0($,"width"),G=n0($,"height"),K=n0($,"sizes"),W=n0($,"srcset"),U=n0($,"densities"),_=n0($,"format"),B=n0($,"placeholder"),z=n0($,"placeholderColor")||"#e5e7eb",q=n0($,"provider"),j=n0($,"class")||n0($,"className")||"",H=n0($,"style")||"",O=n0($,"quality"),F=OY($,"lazy",!0),L=OY($,"preload",!1),V=OY($,"picture",!1)||!!_,A=Q?Number.parseInt(Q):void 0,N=G?Number.parseInt(G):void 0,w=W||"",M="";if(!w&&K)w=LY(X,HY,q,_),M=VU(K);else if(!w&&U){let P=U.split(/\s+/).map((x)=>Number.parseFloat(x.replace("x","")));w=fN(X,P,A,q,_)}else if(K)M=VU(K);let T=[];if(H)T.push(H);if(A&&N)T.push(`aspect-ratio:${A}/${N}`);if(B==="blur"||B==="color"){let P=gN(A||16,N||9,z);T.push(`background-image:url(${P})`),T.push("background-size:cover"),T.push("background-repeat:no-repeat")}else if(B&&B!=="empty"&&B!=="none")T.push(`background-image:url(${C0(B)})`),T.push("background-size:cover"),T.push("background-repeat:no-repeat");let I=L7(X,A,N,q,_),E=[];if(E.push(`src="${C0(I)}"`),E.push(`alt="${C0(J)}"`),Q)E.push(`width="${C0(Q)}"`);if(G)E.push(`height="${C0(G)}"`);if(F)E.push('loading="lazy"');if(E.push('decoding="async"'),j)E.push(`class="${C0(j)}"`);if(T.length>0)E.push(`style="${C0(T.join(";"))}"`);if(w)E.push(`srcset="${C0(w)}"`);if(M)E.push(`sizes="${C0(M)}"`);let S=new Set(["src","alt","width","height","lazy","sizes","srcset","placeholder","placeholderColor","class","className","style","format","provider","quality","densities","preload","picture"]);for(let[P,x]of Object.entries($.static)){if(S.has(P))continue;if(typeof x==="boolean"){if(x)E.push(C0(P))}else E.push(`${C0(P)}="${C0(x)}"`)}let k=`<img ${E.join(" ")} />`,b="";if(L){let x=_==="webp"?"image/webp":_==="avif"?"image/avif":"";b=`<link rel="preload" as="image" href="${C0(I)}"${x?` type="${x}"`:""}${w?` imagesrcset="${C0(w)}"`:""}${M?` imagesizes="${C0(M)}"`:""} />
8088
+ `+Q;let G=X.match(/<body([^>]*)>/i),K=G&&/data-stx/.test(G[1]);if(!Q&&!K){if(X.includes("<body")&&G&&!/data-stx-auto/.test(G[1]))X=X.replace(/<body([^>]*)>/,"<body$1 data-stx-auto>")}return X}var CN=0,q6,_U;var _Y=D(()=>{q0();q6=/<script\b([^>]*)>/gi,_U=/^<([a-zA-Z][a-zA-Z0-9-]*)\b((?:\s+[^=\s>]+(?:=(?:"[^"]*"|'[^']*'|[^\s>]*))?)*\s*)>([\s\S]*)<\/\1>$/s});import W1 from"path";import BY from"fs";function OU($){return $.split("-").map((Z)=>Z.charAt(0).toUpperCase()+Z.slice(1)).join("")}function LU($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}class FU{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(),OU(J),LU(J)];for(let j of q)if(Q.has(j))return Q.get(j)}let G=[...new Set([`${J}.stx`,`${OU(J)}.stx`,`${LU(J)}.stx`])];if(J.startsWith("./")||J.startsWith("../")){let q=W1.resolve(W1.dirname(Z),`${J}.stx`);if(await t(q))return q;return null}let K=[],W=Y.componentsDir||"",U=X?.__originalFilePath;if(U)K.push(W1.join(W1.dirname(U),"components"));if(W)K.push(W);let _=W1.join(W1.dirname(Z),"components");if(!K.includes(_))K.push(_);let B=process.cwd(),z=[W1.resolve(B,"src/components"),W1.resolve(B,"components"),W1.resolve(import.meta.dir,"components")];for(let q of z)if(!K.includes(q))K.push(q);for(let q of K){if(!q)continue;for(let j of G){let H=W1.join(q,j);if(await t(H))return H}try{if(!BY.statSync(q,{throwIfNoEntry:!1})?.isDirectory())continue;let H=BY.readdirSync(q,{withFileTypes:!0});for(let O of H)if(O.isDirectory()){let F=W1.join(q,O.name);for(let L of G){let V=W1.join(F,L);if(await t(V))return V}}}catch{}}return null}}var k1;var zY=D(()=>{q0();k1=new FU});function S1($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function xN($){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 qY;var jY=D(()=>{qY={name:"StxLink",aliases:["stx-link"],render($,Z,Y){let X=xN($),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="${S1(X.value)}"`);else W.push(`href="${S1(X.value)}"`);if(J)W.push(`class="${S1(J)}"`);if(W.push("data-stx-link"),W.push(`data-stx-active-class="${S1(Q)}"`),W.push(`data-stx-exact-active-class="${S1(G)}"`),K)W.push("data-stx-prefetch");for(let[_,B]of Object.entries($.events))W.push(`@${S1(_)}="${S1(B)}"`);let U=new Set(["to","class","className","activeClass","exactActiveClass","prefetch"]);for(let[_,B]of Object.entries($.static)){if(U.has(_))continue;if(typeof B==="boolean"){if(B)W.push(S1(_))}else W.push(`${S1(_)}="${S1(B)}"`)}return`<a ${W.join(" ")}>${Z}</a>`}}});function C0($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function n0($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}function OY($,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 VU($){if($.includes("(")||$.includes(","))return $;let Z=$.trim().split(/\s+/),Y=[];for(let X of Z)if(X.includes(":")){let[J,Q]=X.split(":"),G=vN[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 LY($,Z,Y,X){return Z.map((J)=>`${L7($,J,void 0,Y,X)} ${J}w`).join(", ")}function fN($,Z,Y,X,J){return Z.map((Q)=>{let G=Y?Y*Q:void 0;return`${L7($,G,void 0,X,J)} ${Q}x`}).join(", ")}function L7($,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 gN($,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 vN,HY,FY;var VY=D(()=>{vN={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},HY=[320,640,768,1024,1280,1536,1920];FY={name:"StxImage",aliases:["stx-image","stx-img"],render($,Z,Y){let X=n0($,"src")||"",J=n0($,"alt")||"",Q=n0($,"width"),G=n0($,"height"),K=n0($,"sizes"),W=n0($,"srcset"),U=n0($,"densities"),_=n0($,"format"),B=n0($,"placeholder"),z=n0($,"placeholderColor")||"#e5e7eb",q=n0($,"provider"),j=n0($,"class")||n0($,"className")||"",H=n0($,"style")||"",O=n0($,"quality"),F=OY($,"lazy",!0),L=OY($,"preload",!1),V=OY($,"picture",!1)||!!_,A=Q?Number.parseInt(Q):void 0,N=G?Number.parseInt(G):void 0,w=W||"",M="";if(!w&&K)w=LY(X,HY,q,_),M=VU(K);else if(!w&&U){let P=U.split(/\s+/).map((x)=>Number.parseFloat(x.replace("x","")));w=fN(X,P,A,q,_)}else if(K)M=VU(K);let T=[];if(H)T.push(H);if(A&&N)T.push(`aspect-ratio:${A}/${N}`);if(B==="blur"||B==="color"){let P=gN(A||16,N||9,z);T.push(`background-image:url(${P})`),T.push("background-size:cover"),T.push("background-repeat:no-repeat")}else if(B&&B!=="empty"&&B!=="none")T.push(`background-image:url(${C0(B)})`),T.push("background-size:cover"),T.push("background-repeat:no-repeat");let I=L7(X,A,N,q,_),E=[];if(E.push(`src="${C0(I)}"`),E.push(`alt="${C0(J)}"`),Q)E.push(`width="${C0(Q)}"`);if(G)E.push(`height="${C0(G)}"`);if(F)E.push('loading="lazy"');if(E.push('decoding="async"'),j)E.push(`class="${C0(j)}"`);if(T.length>0)E.push(`style="${C0(T.join(";"))}"`);if(w)E.push(`srcset="${C0(w)}"`);if(M)E.push(`sizes="${C0(M)}"`);let S=new Set(["src","alt","width","height","lazy","sizes","srcset","placeholder","placeholderColor","class","className","style","format","provider","quality","densities","preload","picture"]);for(let[P,x]of Object.entries($.static)){if(S.has(P))continue;if(typeof x==="boolean"){if(x)E.push(C0(P))}else E.push(`${C0(P)}="${C0(x)}"`)}let k=`<img ${E.join(" ")} />`,b="";if(L){let x=_==="webp"?"image/webp":_==="avif"?"image/avif":"";b=`<link rel="preload" as="image" href="${C0(I)}"${x?` type="${x}"`:""}${w?` imagesrcset="${C0(w)}"`:""}${M?` imagesizes="${C0(M)}"`:""} />
8089
8089
  `}if(V){let P=[];if(_==="avif"||_==="auto"){let x=L7(X,A,N,q,"avif"),C=w?LY(X,HY,q,"avif"):`${x}`;P.push(`<source type="image/avif" srcset="${C0(C)}"${M?` sizes="${C0(M)}"`:""} />`)}if(_==="webp"||_==="auto"){let x=L7(X,A,N,q,"webp"),C=w?LY(X,HY,q,"webp"):`${x}`;P.push(`<source type="image/webp" srcset="${C0(C)}"${M?` sizes="${C0(M)}"`:""} />`)}return`${b}<picture>
8090
8090
  ${P.join(`
8091
8091
  `)}
8092
8092
  ${k}
8093
- </picture>`}return`${b}${k}`}}});function NY($){return $.replace(/[;{}()]/g,"").replace(/url/gi,"")}function F7($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}function H4($,Z,Y){let X=F7($,Z);if(X!==void 0){let J=Number.parseInt(X,10);if(!Number.isNaN(J))return J}return Y}var AY;var wY=D(()=>{AY={name:"StxLoadingIndicator",aliases:["stx-loading-indicator"],render($,Z,Y){let X=NY(F7($,"color")||"#6366f1"),J=NY(F7($,"initialColor")||F7($,"initial-color")||""),Q=NY(F7($,"height")||"3px"),G=H4($,"duration",2000),K=H4($,"throttle",200),W=H4($,"zIndex",999999)||H4($,"z-index",999999),U=J?`linear-gradient(to right, ${J}, ${X})`:X;return`
8093
+ </picture>`}return`${b}${k}`}}});function NY($){return $.replace(/[;{}()]/g,"").replace(/url/gi,"")}function F7($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}function H6($,Z,Y){let X=F7($,Z);if(X!==void 0){let J=Number.parseInt(X,10);if(!Number.isNaN(J))return J}return Y}var AY;var wY=D(()=>{AY={name:"StxLoadingIndicator",aliases:["stx-loading-indicator"],render($,Z,Y){let X=NY(F7($,"color")||"#6366f1"),J=NY(F7($,"initialColor")||F7($,"initial-color")||""),Q=NY(F7($,"height")||"3px"),G=H6($,"duration",2000),K=H6($,"throttle",200),W=H6($,"zIndex",999999)||H6($,"z-index",999999),U=J?`linear-gradient(to right, ${J}, ${X})`:X;return`
8094
8094
  <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">
8095
8095
  <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>
8096
8096
  </div>
@@ -8105,7 +8105,7 @@ ${k}
8105
8105
  @keyframes stx-toast-out-left{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-100%)}}
8106
8106
  @keyframes stx-toast-in-center{from{opacity:0;transform:translateY(-1rem)}to{opacity:1;transform:translateY(0)}}
8107
8107
  @keyframes stx-toast-out-center{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-1rem)}}
8108
- </style>`}}});function O4($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}var wU,TY;var EY=D(()=>{wU={sm:"max-width:24rem",md:"max-width:32rem",lg:"max-width:42rem",xl:"max-width:56rem",full:"max-width:calc(100vw - 2rem);max-height:calc(100vh - 2rem)"},TY={name:"StxModal",aliases:["stx-modal"],render($,Z,Y){let X=O4($,"id");if(!X)return console.warn('[stx] <StxModal> requires an "id" prop'),"<!-- StxModal: missing id prop -->";let J=O4($,"size")||"md",Q=O4($,"closeOnBackdrop")!=="false",G=O4($,"closeOnEscape")!=="false",K=wU[J]||wU.md;return`<div id="stx-modal-${X}" class="stx-modal-backdrop" data-stx-modal="${X}" data-close-backdrop="${Q}" data-close-escape="${G}" style="display:none;position:fixed;inset:0;z-index:99999;align-items:center;justify-content:center;background:rgba(0,0,0,0.5);backdrop-filter:blur(2px);opacity:0;transition:opacity 0.2s ease" aria-modal="true" role="dialog">
8108
+ </style>`}}});function O6($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}var wU,TY;var EY=D(()=>{wU={sm:"max-width:24rem",md:"max-width:32rem",lg:"max-width:42rem",xl:"max-width:56rem",full:"max-width:calc(100vw - 2rem);max-height:calc(100vh - 2rem)"},TY={name:"StxModal",aliases:["stx-modal"],render($,Z,Y){let X=O6($,"id");if(!X)return console.warn('[stx] <StxModal> requires an "id" prop'),"<!-- StxModal: missing id prop -->";let J=O6($,"size")||"md",Q=O6($,"closeOnBackdrop")!=="false",G=O6($,"closeOnEscape")!=="false",K=wU[J]||wU.md;return`<div id="stx-modal-${X}" class="stx-modal-backdrop" data-stx-modal="${X}" data-close-backdrop="${Q}" data-close-escape="${G}" style="display:none;position:fixed;inset:0;z-index:99999;align-items:center;justify-content:center;background:rgba(0,0,0,0.5);backdrop-filter:blur(2px);opacity:0;transition:opacity 0.2s ease" aria-modal="true" role="dialog">
8109
8109
  <div class="stx-modal-panel" style="${K};width:100%;margin:1rem;border-radius:0.75rem;box-shadow:0 20px 60px rgba(0,0,0,0.3);overflow:hidden;transform:scale(0.95) translateY(8px);transition:transform 0.2s ease,opacity 0.2s ease;opacity:0;background:var(--stx-modal-bg,#fff);color:var(--stx-modal-text,#1f2937)">
8110
8110
  <div style="padding:1.5rem">${Z}</div>
8111
8111
  </div>
@@ -8123,19 +8123,19 @@ ${k}
8123
8123
  @media(prefers-color-scheme:dark){[data-stx-drawer]{--stx-drawer-bg:#1f2937;--stx-drawer-text:#f3f4f6}}
8124
8124
  .stx-drawer-backdrop[data-stx-drawer-open]{display:block!important;opacity:1}
8125
8125
  .stx-drawer-backdrop[data-stx-drawer-open] .stx-drawer-panel{transform:translateX(0)}
8126
- </style>`}}});var EU={};Q0(EU,{preloadIconCollection:()=>TU,IconBuiltin:()=>L4});async function MU($){if(V7.has($))return V7.get($);try{let Z=K0.resolve(`@iconify/json/json/${$}.json`),Y=await Bun.file(Z).json();return V7.set($,Y.icons),Y.icons}catch{try{let Y=`${process.cwd()}/node_modules/@iconify/json/json/${$}.json`,X=Bun.file(Y);if(await X.exists()){let J=await X.json();return V7.set($,J.icons),J.icons}}catch{}}return null}function s5($,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 TU($="lucide"){await MU($)}var V7,L4;var F4=D(()=>{V7=new Map;L4={name:"Icon",aliases:["icon","stx-icon"],render($,Z,Y){let X=s5($,"name")??s5($,"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=s5($,"size")||"24",K=s5($,"color")||"currentColor",W=s5($,"class")||"",U=s5($,"style")||"",_=V7.get(J);if(!_)return MU(J),`<!-- Icon: collection "${J}" not loaded -->`;let B=_[Q];if(!B)return`<!-- Icon: "${Q}" not found in ${J} -->`;let z=B.width||24,q=B.height||24,j=`0 0 ${z} ${q}`,H=B.body;if(K!=="currentColor")H=H.replace(/currentColor/g,K);let O=W?` class="${W}"`:"",F=U?` style="${U}"`:"";return`<svg xmlns="http://www.w3.org/2000/svg" width="${G}" height="${G}" viewBox="${j}" fill="none"${O}${F}>${H}</svg>`}}});function IU(){k1.registerBuiltin(qY),k1.registerBuiltin(FY),k1.registerBuiltin(AY),k1.registerBuiltin(RY),k1.registerBuiltin(TY),k1.registerBuiltin(IY),k1.registerBuiltin(L4)}var DU=D(()=>{jY();VY();wY();MY();EY();DY();F4();zY();jY();VY();wY();MY();EY();DY();F4()});function kU($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1-$2").toLowerCase()}function SU($,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,B=U,z=-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]===">"){z=U+2,q=!0;break}if(H===">"){z=U+1;break}U++}if(z===-1){J=Q+1;continue}let j=$.slice(B,q?z-2:z-1).trim();if(q)X.push({fullMatch:$.slice(Q,z),tagName:W,attributes:j,content:"",startIndex:Q,endIndex:z,isSelfClosing:!0}),J=z;else{let H=`<${W}`,O=`</${W}>`,F=1,L=z,V=-1;while(F>0&&L<$.length){let w=$.indexOf(H,L),M=$.indexOf(O,L);if(M===-1)break;if(w!==-1&&w<M){let T=$[w+H.length];if(T===" "||T===">"||T==="/"||T===`
8126
+ </style>`}}});var EU={};Q0(EU,{preloadIconCollection:()=>TU,IconBuiltin:()=>L6});async function MU($){if(V7.has($))return V7.get($);try{let Z=K0.resolve(`@iconify/json/json/${$}.json`),Y=await Bun.file(Z).json();return V7.set($,Y.icons),Y.icons}catch{try{let Y=`${process.cwd()}/node_modules/@iconify/json/json/${$}.json`,X=Bun.file(Y);if(await X.exists()){let J=await X.json();return V7.set($,J.icons),J.icons}}catch{}}return null}function s5($,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 TU($="lucide"){await MU($)}var V7,L6;var F6=D(()=>{V7=new Map;L6={name:"Icon",aliases:["icon","stx-icon"],render($,Z,Y){let X=s5($,"name")??s5($,"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=s5($,"size")||"24",K=s5($,"color")||"currentColor",W=s5($,"class")||"",U=s5($,"style")||"",_=V7.get(J);if(!_)return MU(J),`<!-- Icon: collection "${J}" not loaded -->`;let B=_[Q];if(!B)return`<!-- Icon: "${Q}" not found in ${J} -->`;let z=B.width||24,q=B.height||24,j=`0 0 ${z} ${q}`,H=B.body;if(K!=="currentColor")H=H.replace(/currentColor/g,K);let O=W?` class="${W}"`:"",F=U?` style="${U}"`:"";return`<svg xmlns="http://www.w3.org/2000/svg" width="${G}" height="${G}" viewBox="${j}" fill="none"${O}${F}>${H}</svg>`}}});function IU(){k1.registerBuiltin(qY),k1.registerBuiltin(FY),k1.registerBuiltin(AY),k1.registerBuiltin(RY),k1.registerBuiltin(TY),k1.registerBuiltin(IY),k1.registerBuiltin(L6)}var DU=D(()=>{jY();VY();wY();MY();EY();DY();F6();zY();jY();VY();wY();MY();EY();DY();F6()});function kU($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1-$2").toLowerCase()}function SU($,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,B=U,z=-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]===">"){z=U+2,q=!0;break}if(H===">"){z=U+1;break}U++}if(z===-1){J=Q+1;continue}let j=$.slice(B,q?z-2:z-1).trim();if(q)X.push({fullMatch:$.slice(Q,z),tagName:W,attributes:j,content:"",startIndex:Q,endIndex:z,isSelfClosing:!0}),J=z;else{let H=`<${W}`,O=`</${W}>`,F=1,L=z,V=-1;while(F>0&&L<$.length){let w=$.indexOf(H,L),M=$.indexOf(O,L);if(M===-1)break;if(w!==-1&&w<M){let T=$[w+H.length];if(T===" "||T===">"||T==="/"||T===`
8127
8127
  `||T==="\t")F++;L=w+H.length}else{if(F--,F===0){V=M;break}L=M+O.length}}if(V===-1){J=z;continue}let A=$.slice(z,V),N=V+O.length;X.push({fullMatch:$.slice(Q,N),tagName:W,attributes:j,content:A,startIndex:Q,endIndex:N,isSelfClosing:!1}),J=N}}return X}var bU=D(()=>{h0();q0()});import r5 from"path";function mN($,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));try{let _=K.replace(/&quot;/g,'"').replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&");X.serverDynamic[U]=JSON.parse(_)}catch(_){if(Y.debug)console.error(`Error parsing __stx_${U}:`,_);X.serverDynamic[U]=K}continue}if(W.startsWith(":")){let U=Q(W.slice(1)),_=K==="true"?U:K;try{if(!_0(_)){if(Y.debug)console.error(`Unsafe expression in :${U} binding: ${_}`);X.clientReactive[U]=_;continue}let B=Object.keys(Z),q=j0(_,B)(...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((F)=>!H.has(F)&&!B.includes(F))){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(_0(_)){let z=j0(_,Object.keys(Z))(...Object.values(Z));X.static[W]=z!=null?String(z):""}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,B=/\{\{\s*([\s\S]+?)\s*\}\}/g,z;while((z=B.exec(K))!==null)try{let q=z[1];if(!_0(q)){if(Y.debug)console.error(`Unsafe expression in ${W}: ${q}`);continue}let H=j0(q,Object.keys(Z))(...Object.values(Z));_=_.replace(z[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 uN($){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}async function pN($,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,B=_.split(",").map((z)=>z.trim().replace(/^['"]|['"]$/g,"")).filter((z)=>z.length>0);for(let z of B){let q=z.split("/"),H=q[q.length-1].replace(/\.stx$/,""),O=H.includes("-")?H.split("-").map((V)=>V.charAt(0).toUpperCase()+V.slice(1)).join(""):H.charAt(0).toUpperCase()+H.slice(1),F=null,L=[r5.resolve(r5.dirname(Y),`${z}.stx`),r5.resolve(r5.dirname(Y),z),r5.resolve(X.componentsDir||"components",`${z}.stx`),r5.resolve(X.componentsDir||"components",z),z.endsWith(".stx")?z:`${z}.stx`];for(let V of L)try{if(await Bun.file(V).exists()){F=V;break}}catch{}if(F){G.set(O,F),G.set(H,F),G.set(H.toLowerCase(),F);let V=O.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(G.set(V,F),J.add(F),X.debug)console.log(`Imported component: ${O} -> ${F}`)}else if(X.debug)console.warn(`Could not resolve imported component: ${z}`)}Q=Q.replace(U,""),K.lastIndex=0}return Q}async function cN($,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,B=_+U[0].length-1,z=1,q=B+1;while(q<Q.length&&z>0){if(Q[q]==="(")z++;else if(Q[q]===")"){if(z--,z===0)break}q++}if(z!==0)break;let j=Q.substring(B+1,q),H=q+1,O=j.match(/^\s*['"]([^'"]+)['"]/);if(!O){W.lastIndex=0;continue}let F=O[1],L,V=j.slice(O[0].length),A=V.match(/^\s*,\s*/);if(A)L=V.slice(A[0].length).trim();let N={};if(L)try{N=k0(L,Z)}catch(S){let k=S instanceof Error?S.message:String(S);Q=Q.replace(Q.substring(_,H),`[Error parsing component props: ${k}]`);continue}let w="",M=H,I=Q.substring(H).match(/^([\s\S]*?)@endcomponent/);if(I)w=I[1].trim(),M=H+I[0].length;let E=await D1(F,N,w,G,Z,Y,X,K,J);Q=Q.substring(0,_)+E+Q.substring(M),W.lastIndex=0}return Q}async function lN($,Z,Y,X,J){if(!$)return $;let Q=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents;return 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,dN),Q;async function B(z,q,j,H){if(!z)return z;let O=z,F=SU(O,q,H);for(let L=F.length-1;L>=0;L--){let V=F[L],A=j?kU(V.tagName):V.tagName,N=uN(V.attributes),w=mN(N,Z,X),M=k1.getBuiltin(V.tagName);if(M){let S={context:Z,filePath:Y,options:X,dependencies:J},k=M.render(w,V.content,S);if(Object.keys(w.clientReactive).length>0)k=yU(k,w.clientReactive);if(Object.keys(w.events).length>0){let b=Object.entries(w.events).map(([P,x])=>`${P}="${x.replace(/"/g,"&quot;")}"`).join(" ");k=k.replace(/^(\s*<[a-zA-Z][a-zA-Z0-9-]*)/,`$1 ${b}`)}O=O.substring(0,V.startIndex)+k+O.substring(V.endIndex);continue}let T={};for(let[S,k]of Object.entries(w.static))T[S]=k;for(let[S,k]of Object.entries(w.serverDynamic))T[S]=k;let E=await D1(A,T,V.content,G,Z,Y,X,K,J);if(Object.keys(w.clientReactive).length>0)E=yU(E,w.clientReactive);if(Object.keys(w.events).length>0){let S=E.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(S){let k=Object.entries(w.events).map(([P,x])=>`${P}="${x}"`).join(" "),b=S[1].length+S[2].length;E=E.substring(0,b)+" "+k+E.substring(b)}}O=O.substring(0,V.startIndex)+E+O.substring(V.endIndex)}return O}}function yU($,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 kY($,Z,Y,X,J){if(!CU)IU(),CU=!0;let Q=await pN($,Z,Y,X,J);Q=await cN(Q,Z,Y,X,J);for(let G=0;G<3;G++){let K=Q;if(Q=await lN(Q,Z,Y,X,J),Q===K)break}return Q}var CU=!1,dN;var PU=D(()=>{zY();DU();bU();q0();h0();dN=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"])});import o5 from"path";function xU($){return $.startsWith("http://")||$.startsWith("https://")||$.startsWith("//")}function vU($,Z,Y){try{let X;if($.startsWith("/")){let J=Z;for(let Q=0;Q<5;Q++){let G=o5.join(J,$);if(K0("fs").existsSync(G))return G;J=o5.dirname(J)}X=o5.join(Z,$)}else if($.startsWith("./")||$.startsWith("../"))X=o5.resolve(Z,$);else X=o5.resolve(Z,$);if(K0("fs").existsSync(X))return X;return null}catch{return null}}async function fU($,Z,Y){let X=$,J=o5.dirname(Z),Q=/<script\b([^>]*)src=["']([^"']+)["']([^>]*)><\/script>/gi,G;while((G=Q.exec(X))!==null){let[U,_,B,z]=G;if(xU(B))continue;let q=vU(B,J,Z);if(q)try{let j=await Bun.file(q).text();if(Y.add(q),B.endsWith(".ts")||B.endsWith(".tsx")){let O=await Bun.build({entrypoints:[q],target:"browser",minify:!1,define:K1()});if(O.outputs.length>0)j=await O.outputs[0].text()}let H=`<script>
8128
8128
  // Source: ${B}
8129
8129
  ${j}
8130
8130
  </script>`;X=X.replace(U,H),Q.lastIndex=0}catch(j){}}let K=/<link\b([^>]*)href=["']([^"']+)["']([^>]*)(?:\/?>)/gi,W;while((W=K.exec(X))!==null){let[U,_,B,z]=W,q=_+z;if(xU(B))continue;if(/rel=["']stylesheet["']/.test(q)||B.endsWith(".css")){let H=vU(B,J,Z);if(H)try{let O=await Bun.file(H).text();Y.add(H);let F=`<style>
8131
8131
  /* Source: ${B} */
8132
8132
  ${O}
8133
- </style>`;X=X.replace(U,F),K.lastIndex=0}catch(O){}}}return X}var gU=D(()=>{P$()});function V4($,Z){let Y=$,X=/@json\s*\(/g,J;while((J=X.exec(Y))!==null){let Q=J.index,G=Q+J[0].length-1,K=1,W=G+1,U=null,_=!1;while(W<Y.length&&K>0){let V=Y[W];if(_){_=!1,W++;continue}if(V==="\\"&&U){_=!0,W++;continue}if(U){if(V===U)U=null;W++;continue}if(V==='"'||V==="'"||V==="`"){U=V,W++;continue}if(V==="(")K++;else if(V===")"){if(K--,K===0)break}W++}if(K!==0)break;let B=Y.substring(G+1,W).trim(),z=Y.substring(Q,W+1),q=-1,j=0,H=null,O=!1;for(let V=0;V<B.length;V++){let A=B[V];if(O){O=!1;continue}if(A==="\\"&&H){O=!0;continue}if(H){if(A===H)H=null;continue}if(A==='"'||A==="'"||A==="`"){H=A;continue}if(A==="("||A==="["||A==="{")j++;else if(A===")"||A==="]"||A==="}")j--;if(A===","&&j===0){q=V;break}}let F=q>=0?B.substring(0,q).trim():B,L=q>=0?B.substring(q+1).trim():void 0;try{let V=F.trim(),A;if(_0(V))A=j0(V,Object.keys(Z))(...Object.values(Z));else A=void 0;let N;if(L==="true")N=JSON.stringify(A,null,2);else N=JSON.stringify(A);let w=N.replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/&/g,"\\u0026").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029");Y=Y.substring(0,Q)+w+Y.substring(W+1),X.lastIndex=Q+w.length}catch(V){m0.log(V instanceof Error?V:Error(String(V)),{directive:"@json"},"error"),X.lastIndex=Q+z.length}}return Y}function N4($){return $.replace(/@once\s*([\s\S]*?)@endonce/g,"$1")}function hU($){let Z=$,Y=/@memo\s*\(/g,X,J=[];while((X=Y.exec(Z))!==null){let Q=X.index,G=Q+X[0].length,K=1,W=G;while(W<Z.length&&K>0){if(Z[W]==="(")K++;else if(Z[W]===")")K--;W++}if(K!==0)continue;let U=Z.slice(G,W-1).trim(),_=W,B=Z.slice(_),z=B.indexOf("@endmemo");if(z===-1)continue;let q=B.slice(0,z),j=_+z+8,H=q.match(/^(\s*(?:<!--[\s\S]*?-->\s*)*)/),O=H?H[0].length:0,F=q.slice(O),L=q.match(/(\s*)$/),V=L?L[0].length:0,A=F.slice(0,F.length-V),N=A.match(/^<([a-zA-Z][a-zA-Z0-9-]*)(\s[^>]*?)?(\/?)>/),w;if(N){let[M,T,I="",E]=N,S=`<${T}${I} data-stx-memo="${U}"${E}>`;w=q.slice(0,O)+S+A.slice(M.length)+q.slice(O+A.length)}else w=`${q.slice(0,O)}<div data-stx-memo="${U}">${A}</div>${q.slice(O+A.length)}`;J.push({start:Q,end:j,replacement:w}),Y.lastIndex=j}for(let Q=J.length-1;Q>=0;Q--){let G=J[Q];Z=Z.slice(0,G.start)+G.replacement+Z.slice(G.end)}return Z.replace(/@memo="([^"]*)"/g,'data-stx-memo="$1"')}function SY($){let Z=$.replace(/@ref="([^"]+)"/g,'data-stx-ref="$1"');return Z=Z.replace(/(<[a-zA-Z][a-zA-Z0-9-]*\b[^>]*?)\sref="([^"]+)"/g,'$1 data-stx-ref="$2"'),Z}function dU($){let Y=new RegExp("<(div|span|p|h[1-6]|td|th|li|a|button|label|section|article|header|footer|main|nav|aside|dd|dt|figcaption|summary|caption|blockquote|pre|code|em|strong|small|sub|sup|time|mark|abbr|cite|q|s|u|b|i)\\b","gi"),X="",J=0,Q;while((Q=Y.exec($))!==null){let G=Q.index,K=G+Q[0].length,W=!1,U=!1,_=-1;while(K<$.length){let H=$[K];if(W){if(H==="'")W=!1}else if(U){if(H==='"')U=!1}else if(H==="'")W=!0;else if(H==='"')U=!0;else if(H===">"){_=K;break}K++}if(_===-1)continue;if($.slice(G,_+1).includes("x-cloak"))continue;let z=$.slice(_+1),q=z.indexOf("</"),j=q>=0?z.slice(0,q):z.slice(0,200);if(/\{\{[\s\S]*?\}\}/.test(j))X+=$.slice(J,_)+" x-cloak>",J=_+1}return X+=$.slice(J),X}var bY=D(()=>{X1();h0()});function A4($,Z,Y){let X=typeof Y==="boolean"?{enabled:Y,failOnViolation:Y}:Y??{enabled:!1},J=X.allowPatterns??[],Q=[];for(let{pattern:G,message:K,suggestion:W}of iN){if(J.some((_)=>K.includes(_)||G.source.includes(_)))continue;G.lastIndex=0;let U=$.match(G);if(U&&U.length>0){let _=$.split(`
8133
+ </style>`;X=X.replace(U,F),K.lastIndex=0}catch(O){}}}return X}var gU=D(()=>{P$()});function V6($,Z){let Y=$,X=/@json\s*\(/g,J;while((J=X.exec(Y))!==null){let Q=J.index,G=Q+J[0].length-1,K=1,W=G+1,U=null,_=!1;while(W<Y.length&&K>0){let V=Y[W];if(_){_=!1,W++;continue}if(V==="\\"&&U){_=!0,W++;continue}if(U){if(V===U)U=null;W++;continue}if(V==='"'||V==="'"||V==="`"){U=V,W++;continue}if(V==="(")K++;else if(V===")"){if(K--,K===0)break}W++}if(K!==0)break;let B=Y.substring(G+1,W).trim(),z=Y.substring(Q,W+1),q=-1,j=0,H=null,O=!1;for(let V=0;V<B.length;V++){let A=B[V];if(O){O=!1;continue}if(A==="\\"&&H){O=!0;continue}if(H){if(A===H)H=null;continue}if(A==='"'||A==="'"||A==="`"){H=A;continue}if(A==="("||A==="["||A==="{")j++;else if(A===")"||A==="]"||A==="}")j--;if(A===","&&j===0){q=V;break}}let F=q>=0?B.substring(0,q).trim():B,L=q>=0?B.substring(q+1).trim():void 0;try{let V=F.trim(),A;if(_0(V))A=j0(V,Object.keys(Z))(...Object.values(Z));else A=void 0;let N;if(L==="true")N=JSON.stringify(A,null,2);else N=JSON.stringify(A);let w=N.replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/&/g,"\\u0026").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029");Y=Y.substring(0,Q)+w+Y.substring(W+1),X.lastIndex=Q+w.length}catch(V){m0.log(V instanceof Error?V:Error(String(V)),{directive:"@json"},"error"),X.lastIndex=Q+z.length}}return Y}function N6($){return $.replace(/@once\s*([\s\S]*?)@endonce/g,"$1")}function hU($){let Z=$,Y=/@memo\s*\(/g,X,J=[];while((X=Y.exec(Z))!==null){let Q=X.index,G=Q+X[0].length,K=1,W=G;while(W<Z.length&&K>0){if(Z[W]==="(")K++;else if(Z[W]===")")K--;W++}if(K!==0)continue;let U=Z.slice(G,W-1).trim(),_=W,B=Z.slice(_),z=B.indexOf("@endmemo");if(z===-1)continue;let q=B.slice(0,z),j=_+z+8,H=q.match(/^(\s*(?:<!--[\s\S]*?-->\s*)*)/),O=H?H[0].length:0,F=q.slice(O),L=q.match(/(\s*)$/),V=L?L[0].length:0,A=F.slice(0,F.length-V),N=A.match(/^<([a-zA-Z][a-zA-Z0-9-]*)(\s[^>]*?)?(\/?)>/),w;if(N){let[M,T,I="",E]=N,S=`<${T}${I} data-stx-memo="${U}"${E}>`;w=q.slice(0,O)+S+A.slice(M.length)+q.slice(O+A.length)}else w=`${q.slice(0,O)}<div data-stx-memo="${U}">${A}</div>${q.slice(O+A.length)}`;J.push({start:Q,end:j,replacement:w}),Y.lastIndex=j}for(let Q=J.length-1;Q>=0;Q--){let G=J[Q];Z=Z.slice(0,G.start)+G.replacement+Z.slice(G.end)}return Z.replace(/@memo="([^"]*)"/g,'data-stx-memo="$1"')}function SY($){let Z=$.replace(/@ref="([^"]+)"/g,'data-stx-ref="$1"');return Z=Z.replace(/(<[a-zA-Z][a-zA-Z0-9-]*\b[^>]*?)\sref="([^"]+)"/g,'$1 data-stx-ref="$2"'),Z}function dU($){let Y=new RegExp("<(div|span|p|h[1-6]|td|th|li|a|button|label|section|article|header|footer|main|nav|aside|dd|dt|figcaption|summary|caption|blockquote|pre|code|em|strong|small|sub|sup|time|mark|abbr|cite|q|s|u|b|i)\\b","gi"),X="",J=0,Q;while((Q=Y.exec($))!==null){let G=Q.index,K=G+Q[0].length,W=!1,U=!1,_=-1;while(K<$.length){let H=$[K];if(W){if(H==="'")W=!1}else if(U){if(H==='"')U=!1}else if(H==="'")W=!0;else if(H==='"')U=!0;else if(H===">"){_=K;break}K++}if(_===-1)continue;if($.slice(G,_+1).includes("x-cloak"))continue;let z=$.slice(_+1),q=z.indexOf("</"),j=q>=0?z.slice(0,q):z.slice(0,200);if(/\{\{[\s\S]*?\}\}/.test(j))X+=$.slice(J,_)+" x-cloak>",J=_+1}return X+=$.slice(J),X}var bY=D(()=>{X1();h0()});function A6($,Z,Y){let X=typeof Y==="boolean"?{enabled:Y,failOnViolation:Y}:Y??{enabled:!1},J=X.allowPatterns??[],Q=[];for(let{pattern:G,message:K,suggestion:W}of iN){if(J.some((_)=>K.includes(_)||G.source.includes(_)))continue;G.lastIndex=0;let U=$.match(G);if(U&&U.length>0){let _=$.split(`
8134
8134
  `),B=[];_.forEach((q,j)=>{if(G.lastIndex=0,G.test(q))B.push(j+1)});let z=B.length>0?` (line${B.length>1?"s":""}: ${B.join(", ")})`:"";Q.push(` \u2717 ${K}${z}
8135
8135
  \u2192 ${W}`)}}if(Q.length>0&&X.enabled){let K=`[STX] DOM API violation in ${Z.split("/").pop()||Z}:
8136
8136
  ${Q.join(`
8137
8137
  `)}
8138
- Tip: prefer useRef(), navigate(), and composables for component code`;if(X.failOnViolation)throw Error(K);else console.warn(K)}}var iN;var CY=D(()=>{iN=[{pattern:/document\.getElementById\s*\(/g,message:"document.getElementById() is prohibited",suggestion:'Use useRef("name") instead'},{pattern:/document\.querySelector\s*\(/g,message:"document.querySelector() is prohibited",suggestion:'Use useRef("name") instead'},{pattern:/document\.querySelectorAll\s*\(/g,message:"document.querySelectorAll() is prohibited",suggestion:'Use useRef("name") and access children instead'},{pattern:/document\.getElementsBy\w+\s*\(/g,message:"document.getElementsBy*() is prohibited",suggestion:'Use useRef("name") instead'},{pattern:/document\.createElement\s*\(/g,message:"document.createElement() is prohibited",suggestion:"Use template directives or component composition instead"},{pattern:/document\.activeElement(?![A-Za-z])/g,message:"document.activeElement is prohibited",suggestion:"Use useRef() to track focused elements"},{pattern:/document\.title\s*=/g,message:"document.title assignment is prohibited",suggestion:"Use useTitle() from composables"},{pattern:/document\.cookie(?![A-Za-z])/g,message:"document.cookie is prohibited",suggestion:"Use useCookie() from composables"},{pattern:/document\.addEventListener\s*\(/g,message:"document.addEventListener() is prohibited",suggestion:"Use useEventListener() or template @event directives"},{pattern:/window\.location(?![A-Za-z])/g,message:"window.location is prohibited",suggestion:"Use navigate() or useRoute()"},{pattern:/window\.history(?![A-Za-z])/g,message:"window.history is prohibited",suggestion:"Use navigate(), goBack(), goForward()"},{pattern:/window\.addEventListener\s*\(/g,message:"window.addEventListener() is prohibited",suggestion:"Use useEventListener() or @click directives"},{pattern:/window\.localStorage(?![A-Za-z])/g,message:"window.localStorage is prohibited",suggestion:"Use useLocalStorage() from composables"},{pattern:/window\.sessionStorage(?![A-Za-z])/g,message:"window.sessionStorage is prohibited",suggestion:"Use useSessionStorage() from composables"},{pattern:/window\.scrollTo\s*\(/g,message:"window.scrollTo() is prohibited",suggestion:"Use useScroll().scrollTo() from composables"},{pattern:/window\.alert\s*\(/g,message:"window.alert() is prohibited",suggestion:"Use stx modal/dialog APIs instead"},{pattern:/window\.confirm\s*\(/g,message:"window.confirm() is prohibited",suggestion:"Use stx modal/dialog APIs instead"},{pattern:/window\.prompt\s*\(/g,message:"window.prompt() is prohibited",suggestion:"Use stx modal/dialog APIs instead"},{pattern:/(?<!\w)setTimeout\s*\(/g,message:"setTimeout() is prohibited",suggestion:"Use useTimeout() or useDebounce() from composables"},{pattern:/(?<!\w)setInterval\s*\(/g,message:"setInterval() is prohibited",suggestion:"Use useInterval() from composables"},{pattern:/(?<!\w)clearTimeout\s*\(/g,message:"clearTimeout() is prohibited",suggestion:"Use useTimeout().stop() or useDebounce().cancel()"},{pattern:/(?<!\w)clearInterval\s*\(/g,message:"clearInterval() is prohibited",suggestion:"Use useInterval().pause()"},{pattern:/(?<!\w)location\.href\s*=/g,message:"location.href assignment is prohibited",suggestion:"Use navigate() instead"},{pattern:/(?<!\w)location\.assign\s*\(/g,message:"location.assign() is prohibited",suggestion:"Use navigate() instead"},{pattern:/(?<!\w)location\.replace\s*\(/g,message:"location.replace() is prohibited",suggestion:"Use navigate() instead"}]});var mU={};Q0(mU,{getStoreScript:()=>nN,clearStoreCache:()=>sN});import w4 from"path";async function nN($){let Z;if($)Z=w4.resolve($);else{let _=await S0();Z=w4.resolve(_.root||process.cwd(),_.storesDir||"stores")}let Y=a5.get(Z);if(Y!==void 0)return Y||null;let X=new Bun.Glob("*.ts"),J=[];try{for await(let _ of X.scan({cwd:Z,absolute:!0})){let B=w4.basename(_,".ts");if(["index","types"].includes(B))continue;if(_.includes(".d.ts"))continue;J.push(_)}}catch{return a5.set(Z,""),null}if(J.length===0)return a5.set(Z,""),null;let Q=[];for(let _ of J){let B=await Bun.file(_).text();Q.push({file:_,hasUseStore:/useStore\s*\(/.test(B)})}Q.sort((_,B)=>{if(_.hasUseStore===B.hasUseStore)return 0;return _.hasUseStore?1:-1});let G=Q.map((_)=>_.file),K=[],W=new Bun.Transpiler({loader:"ts",target:"browser",define:K1()});for(let _ of G)try{let B=await Bun.file(_).text(),z=w4.basename(_,".ts");B=B.replace(/^import\s+.*from\s+['"][^'"]+['"]\s*;?\s*$/gm,""),B=B.replace(/^export\s+(default\s+)?/gm,""),B=W.transformSync(B),K.push(`// Store: ${z}
8138
+ Tip: prefer useRef(), navigate(), and composables for component code`;if(X.failOnViolation)throw Error(K);else console.warn(K)}}var iN;var CY=D(()=>{iN=[{pattern:/document\.getElementById\s*\(/g,message:"document.getElementById() is prohibited",suggestion:'Use useRef("name") instead'},{pattern:/document\.querySelector\s*\(/g,message:"document.querySelector() is prohibited",suggestion:'Use useRef("name") instead'},{pattern:/document\.querySelectorAll\s*\(/g,message:"document.querySelectorAll() is prohibited",suggestion:'Use useRef("name") and access children instead'},{pattern:/document\.getElementsBy\w+\s*\(/g,message:"document.getElementsBy*() is prohibited",suggestion:'Use useRef("name") instead'},{pattern:/document\.createElement\s*\(/g,message:"document.createElement() is prohibited",suggestion:"Use template directives or component composition instead"},{pattern:/document\.activeElement(?![A-Za-z])/g,message:"document.activeElement is prohibited",suggestion:"Use useRef() to track focused elements"},{pattern:/document\.title\s*=/g,message:"document.title assignment is prohibited",suggestion:"Use useTitle() from composables"},{pattern:/document\.cookie(?![A-Za-z])/g,message:"document.cookie is prohibited",suggestion:"Use useCookie() from composables"},{pattern:/document\.addEventListener\s*\(/g,message:"document.addEventListener() is prohibited",suggestion:"Use useEventListener() or template @event directives"},{pattern:/window\.location(?![A-Za-z])/g,message:"window.location is prohibited",suggestion:"Use navigate() or useRoute()"},{pattern:/window\.history(?![A-Za-z])/g,message:"window.history is prohibited",suggestion:"Use navigate(), goBack(), goForward()"},{pattern:/window\.addEventListener\s*\(/g,message:"window.addEventListener() is prohibited",suggestion:"Use useEventListener() or @click directives"},{pattern:/window\.localStorage(?![A-Za-z])/g,message:"window.localStorage is prohibited",suggestion:"Use useLocalStorage() from composables"},{pattern:/window\.sessionStorage(?![A-Za-z])/g,message:"window.sessionStorage is prohibited",suggestion:"Use useSessionStorage() from composables"},{pattern:/window\.scrollTo\s*\(/g,message:"window.scrollTo() is prohibited",suggestion:"Use useScroll().scrollTo() from composables"},{pattern:/window\.alert\s*\(/g,message:"window.alert() is prohibited",suggestion:"Use stx modal/dialog APIs instead"},{pattern:/window\.confirm\s*\(/g,message:"window.confirm() is prohibited",suggestion:"Use stx modal/dialog APIs instead"},{pattern:/window\.prompt\s*\(/g,message:"window.prompt() is prohibited",suggestion:"Use stx modal/dialog APIs instead"},{pattern:/(?<!\w)setTimeout\s*\(/g,message:"setTimeout() is prohibited",suggestion:"Use useTimeout() or useDebounce() from composables"},{pattern:/(?<!\w)setInterval\s*\(/g,message:"setInterval() is prohibited",suggestion:"Use useInterval() from composables"},{pattern:/(?<!\w)clearTimeout\s*\(/g,message:"clearTimeout() is prohibited",suggestion:"Use useTimeout().stop() or useDebounce().cancel()"},{pattern:/(?<!\w)clearInterval\s*\(/g,message:"clearInterval() is prohibited",suggestion:"Use useInterval().pause()"},{pattern:/(?<!\w)location\.href\s*=/g,message:"location.href assignment is prohibited",suggestion:"Use navigate() instead"},{pattern:/(?<!\w)location\.assign\s*\(/g,message:"location.assign() is prohibited",suggestion:"Use navigate() instead"},{pattern:/(?<!\w)location\.replace\s*\(/g,message:"location.replace() is prohibited",suggestion:"Use navigate() instead"}]});var mU={};Q0(mU,{getStoreScript:()=>nN,clearStoreCache:()=>sN});import w6 from"path";async function nN($){let Z;if($)Z=w6.resolve($);else{let _=await S0();Z=w6.resolve(_.root||process.cwd(),_.storesDir||"stores")}let Y=a5.get(Z);if(Y!==void 0)return Y||null;let X=new Bun.Glob("*.ts"),J=[];try{for await(let _ of X.scan({cwd:Z,absolute:!0})){let B=w6.basename(_,".ts");if(["index","types"].includes(B))continue;if(_.includes(".d.ts"))continue;J.push(_)}}catch{return a5.set(Z,""),null}if(J.length===0)return a5.set(Z,""),null;let Q=[];for(let _ of J){let B=await Bun.file(_).text();Q.push({file:_,hasUseStore:/useStore\s*\(/.test(B)})}Q.sort((_,B)=>{if(_.hasUseStore===B.hasUseStore)return 0;return _.hasUseStore?1:-1});let G=Q.map((_)=>_.file),K=[],W=new Bun.Transpiler({loader:"ts",target:"browser",define:K1()});for(let _ of G)try{let B=await Bun.file(_).text(),z=w6.basename(_,".ts");B=B.replace(/^import\s+.*from\s+['"][^'"]+['"]\s*;?\s*$/gm,""),B=B.replace(/^export\s+(default\s+)?/gm,""),B=W.transformSync(B),K.push(`// Store: ${z}
8139
8139
  ${B.trim()}`)}catch(B){console.warn(`[stx] Failed to load store ${_}:`,B)}if(K.length===0)return a5.set(Z,""),null;let U=`;(function(){
8140
8140
  ${K.join(`
8141
8141
 
@@ -9825,7 +9825,7 @@ else {
9825
9825
 
9826
9826
  console.log('[stx] Keep-alive runtime initialized');
9827
9827
  })();
9828
- `}function k_($){if(typeof document<"u")document.addEventListener("stx:activated",(Z)=>{$(Z.detail)})}function S_($){if(typeof document<"u")document.addEventListener("stx:deactivated",(Z)=>{$(Z.detail)})}var LA=0;var C_={};Q0(C_,{useVirtualList:()=>PY,processVirtualListDirectives:()=>M4,processVirtualGridDirectives:()=>vY,processInfiniteListDirectives:()=>xY,generateVirtualListCSS:()=>yY,default:()=>NA,createVirtualList:()=>R4});function R4($,Z){let{itemHeight:Y,containerHeight:X,overscan:J=3,keyProperty:Q="id",dynamicHeight:G=!1,estimatedItemHeight:K=Y,direction:W="vertical"}=Z,U=[...$],_=0,B=new Map;function z(){if(G)return q();let w=Math.max(0,Math.floor(_/Y)-J),M=Math.ceil(X/Y),T=Math.min(U.length-1,w+M+J*2);return{startIndex:w,endIndex:T}}function q(){let w=0,M=0,T=U.length-1;for(let I=0;I<U.length;I++){let E=B.get(I)||K;if(w+E>_){M=Math.max(0,I-J);break}w+=E}w=0;for(let I=0;I<U.length;I++){let E=B.get(I)||K;if(w+=E,w>_+X){T=Math.min(U.length-1,I+J);break}}return{startIndex:M,endIndex:T}}function j(){if(G){let w=0;for(let M=0;M<U.length;M++)w+=B.get(M)||K;return w}return U.length*Y}function H(w){if(G){let M=0;for(let T=0;T<w;T++)M+=B.get(T)||K;return M}return w*Y}function O(){let{startIndex:w,endIndex:M}=z();return{startIndex:w,endIndex:M,scrollTop:_,totalHeight:j(),visibleItems:U.slice(w,M+1),itemHeights:new Map(B)}}function F(w,M="auto"){let T=H(w);L(T,M)}function L(w,M="auto"){_=Math.max(0,Math.min(w,j()-X))}function V(){z()}function A(w){U=[...w],B.clear(),V()}function N(){U=[],B.clear()}return{scrollToIndex:F,scrollToOffset:L,getState:O,refresh:V,setItems:A,destroy:N}}function M4($,Z={},Y){let X=/@virtualList\s*\(\s*([^,]+)\s*(?:,\s*(\{[^}]*\}))?\s*\)\s*([\s\S]*?)@endvirtualList/gi;return $.replace(X,(J,Q,G,K)=>{let W=Q.trim(),U=Z[W];if(!U||!Array.isArray(U))return`<!-- virtualList: items "${W}" not found or not an array -->`;let _={itemHeight:50,containerHeight:400,overscan:3};if(G)try{let L=G.trim(),V=Function(`return ${L}`)();_={..._,...V}}catch{}let B=`vlist-${Math.random().toString(36).substring(2,9)}`,z=Math.ceil(_.containerHeight/_.itemHeight),q=_.overscan||3,j=0,H=Math.min(U.length-1,z+q),O="";for(let L=j;L<=H&&L<U.length;L++){let V=U[L],A=K.replace(/\{\{\s*item\s*\}\}/g,typeof V==="object"?JSON.stringify(V):String(V)).replace(/\{\{\s*item\.(\w+)\s*\}\}/g,(N,w)=>{if(typeof V==="object"&&V!==null)return String(V[w]??"");return""}).replace(/\{\{\s*index\s*\}\}/g,String(L));O+=`
9828
+ `}function k_($){if(typeof document<"u")document.addEventListener("stx:activated",(Z)=>{$(Z.detail)})}function S_($){if(typeof document<"u")document.addEventListener("stx:deactivated",(Z)=>{$(Z.detail)})}var LA=0;var C_={};Q0(C_,{useVirtualList:()=>PY,processVirtualListDirectives:()=>M6,processVirtualGridDirectives:()=>vY,processInfiniteListDirectives:()=>xY,generateVirtualListCSS:()=>yY,default:()=>NA,createVirtualList:()=>R6});function R6($,Z){let{itemHeight:Y,containerHeight:X,overscan:J=3,keyProperty:Q="id",dynamicHeight:G=!1,estimatedItemHeight:K=Y,direction:W="vertical"}=Z,U=[...$],_=0,B=new Map;function z(){if(G)return q();let w=Math.max(0,Math.floor(_/Y)-J),M=Math.ceil(X/Y),T=Math.min(U.length-1,w+M+J*2);return{startIndex:w,endIndex:T}}function q(){let w=0,M=0,T=U.length-1;for(let I=0;I<U.length;I++){let E=B.get(I)||K;if(w+E>_){M=Math.max(0,I-J);break}w+=E}w=0;for(let I=0;I<U.length;I++){let E=B.get(I)||K;if(w+=E,w>_+X){T=Math.min(U.length-1,I+J);break}}return{startIndex:M,endIndex:T}}function j(){if(G){let w=0;for(let M=0;M<U.length;M++)w+=B.get(M)||K;return w}return U.length*Y}function H(w){if(G){let M=0;for(let T=0;T<w;T++)M+=B.get(T)||K;return M}return w*Y}function O(){let{startIndex:w,endIndex:M}=z();return{startIndex:w,endIndex:M,scrollTop:_,totalHeight:j(),visibleItems:U.slice(w,M+1),itemHeights:new Map(B)}}function F(w,M="auto"){let T=H(w);L(T,M)}function L(w,M="auto"){_=Math.max(0,Math.min(w,j()-X))}function V(){z()}function A(w){U=[...w],B.clear(),V()}function N(){U=[],B.clear()}return{scrollToIndex:F,scrollToOffset:L,getState:O,refresh:V,setItems:A,destroy:N}}function M6($,Z={},Y){let X=/@virtualList\s*\(\s*([^,]+)\s*(?:,\s*(\{[^}]*\}))?\s*\)\s*([\s\S]*?)@endvirtualList/gi;return $.replace(X,(J,Q,G,K)=>{let W=Q.trim(),U=Z[W];if(!U||!Array.isArray(U))return`<!-- virtualList: items "${W}" not found or not an array -->`;let _={itemHeight:50,containerHeight:400,overscan:3};if(G)try{let L=G.trim(),V=Function(`return ${L}`)();_={..._,...V}}catch{}let B=`vlist-${Math.random().toString(36).substring(2,9)}`,z=Math.ceil(_.containerHeight/_.itemHeight),q=_.overscan||3,j=0,H=Math.min(U.length-1,z+q),O="";for(let L=j;L<=H&&L<U.length;L++){let V=U[L],A=K.replace(/\{\{\s*item\s*\}\}/g,typeof V==="object"?JSON.stringify(V):String(V)).replace(/\{\{\s*item\.(\w+)\s*\}\}/g,(N,w)=>{if(typeof V==="object"&&V!==null)return String(V[w]??"");return""}).replace(/\{\{\s*index\s*\}\}/g,String(L));O+=`
9829
9829
  <div class="virtual-item ${_.itemClass||""}"
9830
9830
  style="position: absolute; top: ${L*_.itemHeight}px; height: ${_.itemHeight}px; width: 100%;"
9831
9831
  data-index="${L}">
@@ -9950,7 +9950,7 @@ else {
9950
9950
  0% { background-position: 200% 0; }
9951
9951
  100% { background-position: -200% 0; }
9952
9952
  }
9953
- `}function PY($,Z){let Y=null,X=()=>{if(!Y)Y=R4($(),Z);return Y};return{visibleItems:()=>{return X().getState().visibleItems},totalHeight:()=>{return X().getState().totalHeight},containerProps:()=>({style:{height:`${Z.containerHeight}px`,overflow:"auto",position:"relative"},onScroll:(J)=>{let Q=J.target;if(Y)Y.scrollToOffset(Q.scrollTop)}}),itemProps:(J)=>({style:{position:"absolute",top:`${J*Z.itemHeight}px`,height:`${Z.itemHeight}px`,width:"100%"},"data-index":J}),scrollToIndex:(J)=>{X().scrollToIndex(J)}}}function xY($,Z={},Y){let X=/@infiniteList\s*\(\s*([^,]+)\s*(?:,\s*(\{[^}]*\}))?\s*\)\s*([\s\S]*?)@loading\s*([\s\S]*?)@endinfiniteList/gi;return $.replace(X,(J,Q,G,K,W)=>{let U=Q.trim(),_=Z[U];if(!_||!Array.isArray(_))return`<!-- infiniteList: items "${U}" not found or not an array -->`;let B={itemHeight:50,containerHeight:400,overscan:3,threshold:100,hasMore:!0};if(G)try{let j=Function(`return ${G.trim()}`)();B={...B,...j}}catch{}let z=`ilist-${Math.random().toString(36).substring(2,9)}`,q=M4(`@virtualList(${U}, ${JSON.stringify({itemHeight:B.itemHeight,containerHeight:B.containerHeight,overscan:B.overscan,containerClass:B.containerClass})})${K}@endvirtualList`,Z);return q=q.replace("</script>",`
9953
+ `}function PY($,Z){let Y=null,X=()=>{if(!Y)Y=R6($(),Z);return Y};return{visibleItems:()=>{return X().getState().visibleItems},totalHeight:()=>{return X().getState().totalHeight},containerProps:()=>({style:{height:`${Z.containerHeight}px`,overflow:"auto",position:"relative"},onScroll:(J)=>{let Q=J.target;if(Y)Y.scrollToOffset(Q.scrollTop)}}),itemProps:(J)=>({style:{position:"absolute",top:`${J*Z.itemHeight}px`,height:`${Z.itemHeight}px`,width:"100%"},"data-index":J}),scrollToIndex:(J)=>{X().scrollToIndex(J)}}}function xY($,Z={},Y){let X=/@infiniteList\s*\(\s*([^,]+)\s*(?:,\s*(\{[^}]*\}))?\s*\)\s*([\s\S]*?)@loading\s*([\s\S]*?)@endinfiniteList/gi;return $.replace(X,(J,Q,G,K,W)=>{let U=Q.trim(),_=Z[U];if(!_||!Array.isArray(_))return`<!-- infiniteList: items "${U}" not found or not an array -->`;let B={itemHeight:50,containerHeight:400,overscan:3,threshold:100,hasMore:!0};if(G)try{let j=Function(`return ${G.trim()}`)();B={...B,...j}}catch{}let z=`ilist-${Math.random().toString(36).substring(2,9)}`,q=M6(`@virtualList(${U}, ${JSON.stringify({itemHeight:B.itemHeight,containerHeight:B.containerHeight,overscan:B.overscan,containerClass:B.containerClass})})${K}@endvirtualList`,Z);return q=q.replace("</script>",`
9954
9954
  // Infinite scroll detection
9955
9955
  container.addEventListener('scroll', function() {
9956
9956
  const scrollBottom = container.scrollTop + container.clientHeight;
@@ -10038,7 +10038,7 @@ else {
10038
10038
  });
10039
10039
  })();
10040
10040
  </script>
10041
- `})}var NA;var fY=D(()=>{NA={createVirtualList:R4,processVirtualListDirectives:M4,processInfiniteListDirectives:xY,processVirtualGridDirectives:vY,generateVirtualListCSS:yY,useVirtualList:PY}});function gY(){return`<script data-stx-hydration-runtime>
10041
+ `})}var NA;var fY=D(()=>{NA={createVirtualList:R6,processVirtualListDirectives:M6,processInfiniteListDirectives:xY,processVirtualGridDirectives:vY,generateVirtualListCSS:yY,useVirtualList:PY}});function gY(){return`<script data-stx-hydration-runtime>
10042
10042
  (function() {
10043
10043
  'use strict';
10044
10044
 
@@ -10432,7 +10432,7 @@ else {
10432
10432
  <script type="application/json" id="stx-island-manifest">
10433
10433
  ${JSON.stringify(Z)}
10434
10434
  </script>
10435
- `}var kA;var aY=D(()=>{kA={processPartialHydrationDirectives:uY,processStaticDirectives:rY,generatePartialHydrationCSS:pY,generateIslandManifest:oY,createIslandRegistry:mY,hydrateIsland:cY,hydrateByStrategy:lY,hydrateAll:iY,isHydrated:nY,onHydrated:sY}});var c_={};Q0(c_,{watchMultiple:()=>g_,watchEffect:()=>h_,watch:()=>f_,unref:()=>P_,toRefs:()=>x_,throttledComputed:()=>p_,stxWatchMultiple:()=>g_,stxWatchEffect:()=>h_,stxWatch:()=>f_,stxUnref:()=>P_,stxToRefs:()=>x_,stxThrottledComputed:()=>p_,stxShallowRef:()=>v_,stxRef:()=>e5,stxIsRef:()=>w$,stxDebouncedComputed:()=>u_,stxComputed:()=>A7,shallowRef:()=>v_,ref:()=>e5,processWatchDirectives:()=>m_,processComputedDirectives:()=>d_,isRef:()=>w$,default:()=>SA,debouncedComputed:()=>u_,computed:()=>A7});function e5($){let Z=$,Y=new Set,X={get value(){if(b1){let J=N7.get(X);if(!J)J=new Set,N7.set(X,J);J.add(b1)}return Z},set value(J){if(!Object.is(Z,J)){Z=J,Y.forEach((G)=>G(J));let Q=N7.get(X);if(Q)Q.forEach((G)=>G())}},subscribe(J){return Y.add(J),()=>Y.delete(J)},peek(){return Z}};return X}function w$($){return $!==null&&typeof $==="object"&&"value"in $&&"subscribe"in $&&"peek"in $}function P_($){return w$($)?$.value:$}function x_($){let Z={};for(let Y in $)if(Object.prototype.hasOwnProperty.call($,Y))Z[Y]=e5($[Y]);return Z}function v_($){return e5($)}function A7($){let Z=typeof $==="function",Y=Z?$:$.get,X=Z?void 0:$.set,J=Z?Object.is:$.equals||Object.is,Q,G=!0,K=new Set,W=new Set,U=()=>{if(G=!0,W.size>0){let z=B.value;W.forEach((q)=>q(z))}};function _(){K.clear();let z=b1;b1=U,T4.push(U);try{return Y()}finally{T4.pop(),b1=z}}let B={get value(){if(b1){let z=N7.get(B);if(!z)z=new Set,N7.set(B,z);z.add(b1)}if(G){let z=_();if(!J(Q,z))Q=z;G=!1}return Q},set value(z){if(X)X(z);else console.warn("Computed property is readonly")},subscribe(z){return W.add(z),()=>W.delete(z)},peek(){if(G)Q=Y(),G=!1;return Q},invalidate(){G=!0},get dirty(){return G},get deps(){return K}};return B}function f_($,Z,Y={}){let{immediate:X=!1,deep:J=!1,flush:Q="pre",once:G=!1}=Y,K,W=!0,U=!1,_=()=>{if(w$($))return J?c$($.value):$.value;return $()},B=()=>{if(!W||U)return;let j=_();if(K!==void 0&&Object.is(K,j)&&!J)return;let H=()=>{if(Z(j,K),K=J?c$(j):j,G)q()};if(Q==="sync")H();else if(Q==="post")queueMicrotask(H);else Promise.resolve().then(H)},z=null;if(w$($))z=$.subscribe(()=>B());else z=A7($).subscribe(()=>B());if(X)K=void 0,B();else K=_();let q=()=>{if(W=!1,z)z(),z=null};return q.pause=()=>{U=!0},q.resume=()=>{U=!1},q}function g_($,Z,Y={}){let{immediate:X=!1,once:J=!1}=Y,Q=$.map((B)=>w$(B)?B.value:void 0),G=!0,K=!1,W=()=>{if(!G||K)return;let B=$.map((z)=>w$(z)?z.value:void 0);if(Z(B,Q),Q=[...B],J)_()},U=$.map((B)=>{if(w$(B))return B.subscribe(()=>W());return()=>{}});if(X)W();let _=()=>{G=!1,U.forEach((B)=>B())};return _.pause=()=>{K=!0},_.resume=()=>{K=!1},_}function h_($,Z={}){let{flush:Y="pre"}=Z,X,J=!0,Q=!1,G=()=>{if(!J||Q)return;if(X)X();let W=b1;b1=G,T4.push(G);try{X=$()}finally{T4.pop(),b1=W}};if(Y==="sync")G();else if(Y==="post")queueMicrotask(G);else Promise.resolve().then(G);let K=()=>{if(J=!1,X)X()};return K.pause=()=>{Q=!0},K.resume=()=>{Q=!1},K}function d_($,Z={},Y){let X=/@computed\s*\(\s*(\w+)\s*,\s*(.+?)\s*\)/gi;return $.replace(X,(J,Q,G)=>{try{let W=Function(...Object.keys(Z),`return ${G}`)(...Object.values(Z));return Z[Q]=W,`<!-- computed: ${Q} = ${W} -->`}catch(K){return`<!-- computed error: ${Q} - ${K} -->`}})}function m_($,Z={},Y){let X=/@watch\s*\(\s*(\w+)\s*\)\s*([\s\S]*?)@endwatch/gi;return $.replace(X,(J,Q,G)=>{return`
10435
+ `}var kA;var aY=D(()=>{kA={processPartialHydrationDirectives:uY,processStaticDirectives:rY,generatePartialHydrationCSS:pY,generateIslandManifest:oY,createIslandRegistry:mY,hydrateIsland:cY,hydrateByStrategy:lY,hydrateAll:iY,isHydrated:nY,onHydrated:sY}});var c_={};Q0(c_,{watchMultiple:()=>g_,watchEffect:()=>h_,watch:()=>f_,unref:()=>P_,toRefs:()=>x_,throttledComputed:()=>p_,stxWatchMultiple:()=>g_,stxWatchEffect:()=>h_,stxWatch:()=>f_,stxUnref:()=>P_,stxToRefs:()=>x_,stxThrottledComputed:()=>p_,stxShallowRef:()=>v_,stxRef:()=>e5,stxIsRef:()=>w$,stxDebouncedComputed:()=>u_,stxComputed:()=>A7,shallowRef:()=>v_,ref:()=>e5,processWatchDirectives:()=>m_,processComputedDirectives:()=>d_,isRef:()=>w$,default:()=>SA,debouncedComputed:()=>u_,computed:()=>A7});function e5($){let Z=$,Y=new Set,X={get value(){if(b1){let J=N7.get(X);if(!J)J=new Set,N7.set(X,J);J.add(b1)}return Z},set value(J){if(!Object.is(Z,J)){Z=J,Y.forEach((G)=>G(J));let Q=N7.get(X);if(Q)Q.forEach((G)=>G())}},subscribe(J){return Y.add(J),()=>Y.delete(J)},peek(){return Z}};return X}function w$($){return $!==null&&typeof $==="object"&&"value"in $&&"subscribe"in $&&"peek"in $}function P_($){return w$($)?$.value:$}function x_($){let Z={};for(let Y in $)if(Object.prototype.hasOwnProperty.call($,Y))Z[Y]=e5($[Y]);return Z}function v_($){return e5($)}function A7($){let Z=typeof $==="function",Y=Z?$:$.get,X=Z?void 0:$.set,J=Z?Object.is:$.equals||Object.is,Q,G=!0,K=new Set,W=new Set,U=()=>{if(G=!0,W.size>0){let z=B.value;W.forEach((q)=>q(z))}};function _(){K.clear();let z=b1;b1=U,T6.push(U);try{return Y()}finally{T6.pop(),b1=z}}let B={get value(){if(b1){let z=N7.get(B);if(!z)z=new Set,N7.set(B,z);z.add(b1)}if(G){let z=_();if(!J(Q,z))Q=z;G=!1}return Q},set value(z){if(X)X(z);else console.warn("Computed property is readonly")},subscribe(z){return W.add(z),()=>W.delete(z)},peek(){if(G)Q=Y(),G=!1;return Q},invalidate(){G=!0},get dirty(){return G},get deps(){return K}};return B}function f_($,Z,Y={}){let{immediate:X=!1,deep:J=!1,flush:Q="pre",once:G=!1}=Y,K,W=!0,U=!1,_=()=>{if(w$($))return J?c$($.value):$.value;return $()},B=()=>{if(!W||U)return;let j=_();if(K!==void 0&&Object.is(K,j)&&!J)return;let H=()=>{if(Z(j,K),K=J?c$(j):j,G)q()};if(Q==="sync")H();else if(Q==="post")queueMicrotask(H);else Promise.resolve().then(H)},z=null;if(w$($))z=$.subscribe(()=>B());else z=A7($).subscribe(()=>B());if(X)K=void 0,B();else K=_();let q=()=>{if(W=!1,z)z(),z=null};return q.pause=()=>{U=!0},q.resume=()=>{U=!1},q}function g_($,Z,Y={}){let{immediate:X=!1,once:J=!1}=Y,Q=$.map((B)=>w$(B)?B.value:void 0),G=!0,K=!1,W=()=>{if(!G||K)return;let B=$.map((z)=>w$(z)?z.value:void 0);if(Z(B,Q),Q=[...B],J)_()},U=$.map((B)=>{if(w$(B))return B.subscribe(()=>W());return()=>{}});if(X)W();let _=()=>{G=!1,U.forEach((B)=>B())};return _.pause=()=>{K=!0},_.resume=()=>{K=!1},_}function h_($,Z={}){let{flush:Y="pre"}=Z,X,J=!0,Q=!1,G=()=>{if(!J||Q)return;if(X)X();let W=b1;b1=G,T6.push(G);try{X=$()}finally{T6.pop(),b1=W}};if(Y==="sync")G();else if(Y==="post")queueMicrotask(G);else Promise.resolve().then(G);let K=()=>{if(J=!1,X)X()};return K.pause=()=>{Q=!0},K.resume=()=>{Q=!1},K}function d_($,Z={},Y){let X=/@computed\s*\(\s*(\w+)\s*,\s*(.+?)\s*\)/gi;return $.replace(X,(J,Q,G)=>{try{let W=Function(...Object.keys(Z),`return ${G}`)(...Object.values(Z));return Z[Q]=W,`<!-- computed: ${Q} = ${W} -->`}catch(K){return`<!-- computed error: ${Q} - ${K} -->`}})}function m_($,Z={},Y){let X=/@watch\s*\(\s*(\w+)\s*\)\s*([\s\S]*?)@endwatch/gi;return $.replace(X,(J,Q,G)=>{return`
10436
10436
  <script data-watch="${`watch-${Math.random().toString(36).substring(2,9)}`}">
10437
10437
  (function() {
10438
10438
  // Watch implementation for ${Q}
@@ -10444,7 +10444,7 @@ else {
10444
10444
  }
10445
10445
  })();
10446
10446
  </script>
10447
- `})}function c$($){if($===null||typeof $!=="object")return $;if(Array.isArray($))return $.map((Y)=>c$(Y));if($ instanceof Date)return new Date($.getTime());if($ instanceof Map){let Y=new Map;return $.forEach((X,J)=>Y.set(c$(J),c$(X))),Y}if($ instanceof Set){let Y=new Set;return $.forEach((X)=>Y.add(c$(X))),Y}let Z={};for(let Y in $)if(Object.prototype.hasOwnProperty.call($,Y))Z[Y]=c$($[Y]);return Z}function u_($,Z=100){let Y=e5($()),X=null,J=()=>{if(X)clearTimeout(X);X=setTimeout(()=>{Y.value=$()},Z)};return A7($).subscribe(()=>J()),{get value(){return Y.value},set value(G){console.warn("Debounced computed is readonly")},subscribe:Y.subscribe,peek:Y.peek,invalidate(){J()},get dirty(){return!1},get deps(){return new Set}}}function p_($,Z=100){let Y=e5($()),X=0,J=()=>{let G=Date.now();if(G-X>=Z)X=G,Y.value=$()};return A7($).subscribe(()=>J()),{get value(){return Y.value},set value(G){console.warn("Throttled computed is readonly")},subscribe:Y.subscribe,peek:Y.peek,invalidate(){J()},get dirty(){return!1},get deps(){return new Set}}}var b1=null,T4,N7,SA;var l_=D(()=>{T4=[],N7=new WeakMap;SA={ref:e5,computed:A7,watch:f_,watchMultiple:g_,watchEffect:h_,isRef:w$,unref:P_,toRefs:x_,shallowRef:v_,debouncedComputed:u_,throttledComputed:p_,processComputedDirectives:d_,processWatchDirectives:m_}});var r_={};Q0(r_,{v:()=>bA,processHasErrorsDirective:()=>s_,processFormValidationDirectives:()=>yA,processErrorsDirective:()=>n_,processErrorDirective:()=>i_,defineForm:()=>CA,Validator:()=>$2});class $2{rules=[];defaultValue="";addRule($){let Z=new $2;return Z.rules=[...this.rules,$],Z.defaultValue=this.defaultValue,Z}required($="This field is required"){return this.addRule({name:"required",message:$,validate:(Z)=>{if(Z===null||Z===void 0)return $;if(typeof Z==="string"&&Z.trim()==="")return $;if(Array.isArray(Z)&&Z.length===0)return $;return!0}})}email($="Please enter a valid email"){return this.addRule({name:"email",message:$,validate:(Z)=>{if(!Z)return!0;return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String(Z))||$}})}url($="Please enter a valid URL"){return this.addRule({name:"url",message:$,validate:(Z)=>{if(!Z)return!0;try{return new URL(String(Z)),!0}catch{return $}}})}min($,Z){let Y=Z||`Must be at least ${$} characters`;return this.addRule({name:"min",message:Y,validate:(X)=>{if(!X)return!0;return String(X).length>=$||Y}})}max($,Z){let Y=Z||`Must be no more than ${$} characters`;return this.addRule({name:"max",message:Y,validate:(X)=>{if(!X)return!0;return String(X).length<=$||Y}})}length($,Z,Y){let X=Y||`Must be between ${$} and ${Z} characters`;return this.addRule({name:"length",message:X,validate:(J)=>{if(!J)return!0;let Q=String(J).length;return Q>=$&&Q<=Z||X}})}pattern($,Z="Invalid format"){return this.addRule({name:"pattern",message:Z,validate:(Y)=>{if(!Y)return!0;return $.test(String(Y))||Z}})}hasUppercase($="Must contain an uppercase letter"){return this.pattern(/[A-Z]/,$)}hasLowercase($="Must contain a lowercase letter"){return this.pattern(/[a-z]/,$)}hasNumber($="Must contain a number"){return this.pattern(/\d/,$)}hasSpecial($="Must contain a special character"){return this.pattern(/[!@#$%^&*(),.?":{}|<>]/,$)}alphanumeric($="Only letters and numbers allowed"){return this.pattern(/^[a-zA-Z0-9]+$/,$)}startsWithLetter($="Must start with a letter"){return this.pattern(/^[a-zA-Z]/,$)}noSpaces($="Spaces are not allowed"){return this.addRule({name:"noSpaces",message:$,validate:(Z)=>{if(!Z)return!0;return!String(Z).includes(" ")||$}})}number($="Must be a number"){let Z=this.addRule({name:"number",message:$,validate:(Y)=>{if(!Y&&Y!==0)return!0;return!Number.isNaN(Number(Y))||$}});return Z.defaultValue=0,Z}integer($="Must be a whole number"){return this.addRule({name:"integer",message:$,validate:(Z)=>{if(!Z&&Z!==0)return!0;return Number.isInteger(Number(Z))||$}})}positive($="Must be a positive number"){return this.addRule({name:"positive",message:$,validate:(Z)=>{if(!Z&&Z!==0)return!0;return Number(Z)>0||$}})}negative($="Must be a negative number"){return this.addRule({name:"negative",message:$,validate:(Z)=>{if(!Z&&Z!==0)return!0;return Number(Z)<0||$}})}minValue($,Z){let Y=Z||`Must be at least ${$}`;return this.addRule({name:"minValue",message:Y,validate:(X)=>{if(!X&&X!==0)return!0;return Number(X)>=$||Y}})}maxValue($,Z){let Y=Z||`Must be no more than ${$}`;return this.addRule({name:"maxValue",message:Y,validate:(X)=>{if(!X&&X!==0)return!0;return Number(X)<=$||Y}})}between($,Z,Y){let X=Y||`Must be between ${$} and ${Z}`;return this.addRule({name:"between",message:X,validate:(J)=>{if(!J&&J!==0)return!0;let Q=Number(J);return Q>=$&&Q<=Z||X}})}matches($,Z){let Y=Z||`Must match ${$}`;return this.addRule({name:"matches",message:Y,validate:(X,J)=>{if(!J)return!0;return X===J[$]||Y}})}oneOf($,Z){let Y=Z||`Must be one of: ${$.join(", ")}`;return this.addRule({name:"oneOf",message:Y,validate:(X)=>{if(!X)return!0;return $.includes(X)||Y}})}notOneOf($,Z){let Y=Z||`Cannot be one of: ${$.join(", ")}`;return this.addRule({name:"notOneOf",message:Y,validate:(X)=>{if(!X)return!0;return!$.includes(X)||Y}})}date($="Must be a valid date"){return this.addRule({name:"date",message:$,validate:(Z)=>{if(!Z)return!0;let Y=new Date(String(Z));return!Number.isNaN(Y.getTime())||$}})}before($,Z){let Y=new Date($),X=Z||`Must be before ${Y.toLocaleDateString()}`;return this.addRule({name:"before",message:X,validate:(J)=>{if(!J)return!0;return new Date(String(J))<Y||X}})}after($,Z){let Y=new Date($),X=Z||`Must be after ${Y.toLocaleDateString()}`;return this.addRule({name:"after",message:X,validate:(J)=>{if(!J)return!0;return new Date(String(J))>Y||X}})}custom($,Z="Invalid value"){return this.addRule({name:"custom",message:Z,validate:$})}async($,Z="Invalid value"){return this.addRule({name:"async",message:Z,async:!0,validate:$})}when($,Z){let Y=new $2;Y.rules=[...this.rules],Y.defaultValue=this.defaultValue;for(let X of Z.getRules())Y.rules.push({...X,validate:(J,Q)=>{if(!$(J,Q||{}))return!0;return X.validate(J,Q)}});return Y}getRules(){return this.rules}getDefaultValue(){return this.defaultValue}default($){let Z=new $2;return Z.rules=[...this.rules],Z.defaultValue=$,Z}async validate($,Z){let Y=[];for(let X of this.rules){let J=await X.validate($,Z);if(J!==!0)Y.push(J)}return Y}validateSync($,Z){let Y=[];for(let X of this.rules){if(X.async)continue;let J=X.validate($,Z);if(J!==!0)Y.push(J)}return Y}}function CA($,Z){let Y=Object.keys($),X={},J={},Q={},G={},K={};for(let L of Y)X[L]=Z?.[L]??$[L].getDefaultValue(),J[L]=[],Q[L]=!1,G[L]=!1,K[L]=!1;let W=!1;async function U(L){K[L]=!0;let V=await $[L].validate(X[L],X);return J[L]=V,K[L]=!1,V.length===0}async function _(){W=!0;let L=await Promise.all(Y.map(U));return W=!1,L.every(Boolean)}function B(){for(let L of Y)X[L]=Z?.[L]??$[L].getDefaultValue(),J[L]=[],Q[L]=!1,G[L]=!1}function z(L){for(let V of Y)if(V in L)X[V]=L[V],G[V]=!0}function q(L,V){X[L]=V,G[L]=!0}function j(L,V=!0){if(Q[L]=V,V)U(L)}function H(L){return{value:X[L],errors:J[L],touched:Q[L],dirty:G[L],valid:J[L].length===0,validating:K[L]}}function O(L){return async(V)=>{V?.preventDefault?.();for(let N of Y)Q[N]=!0;if(await _())await L(X)}}return{values:X,errors:J,touched:Q,dirty:G,get isValid(){return Y.every((L)=>J[L].length===0)},get isValidating(){return W||Y.some((L)=>K[L])},get isDirty(){return Y.some((L)=>G[L])},validate:_,validateField:U,reset:B,setValues:z,setFieldValue:q,setFieldTouched:j,getFieldState:H,handleSubmit:O}}function i_($,Z,Y){let X=/@error\s*\(\s*([^)]+)\s*\)([\s\S]*?)@enderror/g;return $.replace(X,(J,Q,G)=>{try{let K=Q.trim().split("."),W=Z;for(let _ of K)if(W&&typeof W==="object"&&_ in W)W=W[_];else return"";let U=W;if(!U||!Array.isArray(U)||U.length===0)return"";return U.map((_)=>{return G.replace(/\{\{\s*message\s*\}\}/g,_)}).join(`
10447
+ `})}function c$($){if($===null||typeof $!=="object")return $;if(Array.isArray($))return $.map((Y)=>c$(Y));if($ instanceof Date)return new Date($.getTime());if($ instanceof Map){let Y=new Map;return $.forEach((X,J)=>Y.set(c$(J),c$(X))),Y}if($ instanceof Set){let Y=new Set;return $.forEach((X)=>Y.add(c$(X))),Y}let Z={};for(let Y in $)if(Object.prototype.hasOwnProperty.call($,Y))Z[Y]=c$($[Y]);return Z}function u_($,Z=100){let Y=e5($()),X=null,J=()=>{if(X)clearTimeout(X);X=setTimeout(()=>{Y.value=$()},Z)};return A7($).subscribe(()=>J()),{get value(){return Y.value},set value(G){console.warn("Debounced computed is readonly")},subscribe:Y.subscribe,peek:Y.peek,invalidate(){J()},get dirty(){return!1},get deps(){return new Set}}}function p_($,Z=100){let Y=e5($()),X=0,J=()=>{let G=Date.now();if(G-X>=Z)X=G,Y.value=$()};return A7($).subscribe(()=>J()),{get value(){return Y.value},set value(G){console.warn("Throttled computed is readonly")},subscribe:Y.subscribe,peek:Y.peek,invalidate(){J()},get dirty(){return!1},get deps(){return new Set}}}var b1=null,T6,N7,SA;var l_=D(()=>{T6=[],N7=new WeakMap;SA={ref:e5,computed:A7,watch:f_,watchMultiple:g_,watchEffect:h_,isRef:w$,unref:P_,toRefs:x_,shallowRef:v_,debouncedComputed:u_,throttledComputed:p_,processComputedDirectives:d_,processWatchDirectives:m_}});var r_={};Q0(r_,{v:()=>bA,processHasErrorsDirective:()=>s_,processFormValidationDirectives:()=>yA,processErrorsDirective:()=>n_,processErrorDirective:()=>i_,defineForm:()=>CA,Validator:()=>$2});class $2{rules=[];defaultValue="";addRule($){let Z=new $2;return Z.rules=[...this.rules,$],Z.defaultValue=this.defaultValue,Z}required($="This field is required"){return this.addRule({name:"required",message:$,validate:(Z)=>{if(Z===null||Z===void 0)return $;if(typeof Z==="string"&&Z.trim()==="")return $;if(Array.isArray(Z)&&Z.length===0)return $;return!0}})}email($="Please enter a valid email"){return this.addRule({name:"email",message:$,validate:(Z)=>{if(!Z)return!0;return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String(Z))||$}})}url($="Please enter a valid URL"){return this.addRule({name:"url",message:$,validate:(Z)=>{if(!Z)return!0;try{return new URL(String(Z)),!0}catch{return $}}})}min($,Z){let Y=Z||`Must be at least ${$} characters`;return this.addRule({name:"min",message:Y,validate:(X)=>{if(!X)return!0;return String(X).length>=$||Y}})}max($,Z){let Y=Z||`Must be no more than ${$} characters`;return this.addRule({name:"max",message:Y,validate:(X)=>{if(!X)return!0;return String(X).length<=$||Y}})}length($,Z,Y){let X=Y||`Must be between ${$} and ${Z} characters`;return this.addRule({name:"length",message:X,validate:(J)=>{if(!J)return!0;let Q=String(J).length;return Q>=$&&Q<=Z||X}})}pattern($,Z="Invalid format"){return this.addRule({name:"pattern",message:Z,validate:(Y)=>{if(!Y)return!0;return $.test(String(Y))||Z}})}hasUppercase($="Must contain an uppercase letter"){return this.pattern(/[A-Z]/,$)}hasLowercase($="Must contain a lowercase letter"){return this.pattern(/[a-z]/,$)}hasNumber($="Must contain a number"){return this.pattern(/\d/,$)}hasSpecial($="Must contain a special character"){return this.pattern(/[!@#$%^&*(),.?":{}|<>]/,$)}alphanumeric($="Only letters and numbers allowed"){return this.pattern(/^[a-zA-Z0-9]+$/,$)}startsWithLetter($="Must start with a letter"){return this.pattern(/^[a-zA-Z]/,$)}noSpaces($="Spaces are not allowed"){return this.addRule({name:"noSpaces",message:$,validate:(Z)=>{if(!Z)return!0;return!String(Z).includes(" ")||$}})}number($="Must be a number"){let Z=this.addRule({name:"number",message:$,validate:(Y)=>{if(!Y&&Y!==0)return!0;return!Number.isNaN(Number(Y))||$}});return Z.defaultValue=0,Z}integer($="Must be a whole number"){return this.addRule({name:"integer",message:$,validate:(Z)=>{if(!Z&&Z!==0)return!0;return Number.isInteger(Number(Z))||$}})}positive($="Must be a positive number"){return this.addRule({name:"positive",message:$,validate:(Z)=>{if(!Z&&Z!==0)return!0;return Number(Z)>0||$}})}negative($="Must be a negative number"){return this.addRule({name:"negative",message:$,validate:(Z)=>{if(!Z&&Z!==0)return!0;return Number(Z)<0||$}})}minValue($,Z){let Y=Z||`Must be at least ${$}`;return this.addRule({name:"minValue",message:Y,validate:(X)=>{if(!X&&X!==0)return!0;return Number(X)>=$||Y}})}maxValue($,Z){let Y=Z||`Must be no more than ${$}`;return this.addRule({name:"maxValue",message:Y,validate:(X)=>{if(!X&&X!==0)return!0;return Number(X)<=$||Y}})}between($,Z,Y){let X=Y||`Must be between ${$} and ${Z}`;return this.addRule({name:"between",message:X,validate:(J)=>{if(!J&&J!==0)return!0;let Q=Number(J);return Q>=$&&Q<=Z||X}})}matches($,Z){let Y=Z||`Must match ${$}`;return this.addRule({name:"matches",message:Y,validate:(X,J)=>{if(!J)return!0;return X===J[$]||Y}})}oneOf($,Z){let Y=Z||`Must be one of: ${$.join(", ")}`;return this.addRule({name:"oneOf",message:Y,validate:(X)=>{if(!X)return!0;return $.includes(X)||Y}})}notOneOf($,Z){let Y=Z||`Cannot be one of: ${$.join(", ")}`;return this.addRule({name:"notOneOf",message:Y,validate:(X)=>{if(!X)return!0;return!$.includes(X)||Y}})}date($="Must be a valid date"){return this.addRule({name:"date",message:$,validate:(Z)=>{if(!Z)return!0;let Y=new Date(String(Z));return!Number.isNaN(Y.getTime())||$}})}before($,Z){let Y=new Date($),X=Z||`Must be before ${Y.toLocaleDateString()}`;return this.addRule({name:"before",message:X,validate:(J)=>{if(!J)return!0;return new Date(String(J))<Y||X}})}after($,Z){let Y=new Date($),X=Z||`Must be after ${Y.toLocaleDateString()}`;return this.addRule({name:"after",message:X,validate:(J)=>{if(!J)return!0;return new Date(String(J))>Y||X}})}custom($,Z="Invalid value"){return this.addRule({name:"custom",message:Z,validate:$})}async($,Z="Invalid value"){return this.addRule({name:"async",message:Z,async:!0,validate:$})}when($,Z){let Y=new $2;Y.rules=[...this.rules],Y.defaultValue=this.defaultValue;for(let X of Z.getRules())Y.rules.push({...X,validate:(J,Q)=>{if(!$(J,Q||{}))return!0;return X.validate(J,Q)}});return Y}getRules(){return this.rules}getDefaultValue(){return this.defaultValue}default($){let Z=new $2;return Z.rules=[...this.rules],Z.defaultValue=$,Z}async validate($,Z){let Y=[];for(let X of this.rules){let J=await X.validate($,Z);if(J!==!0)Y.push(J)}return Y}validateSync($,Z){let Y=[];for(let X of this.rules){if(X.async)continue;let J=X.validate($,Z);if(J!==!0)Y.push(J)}return Y}}function CA($,Z){let Y=Object.keys($),X={},J={},Q={},G={},K={};for(let L of Y)X[L]=Z?.[L]??$[L].getDefaultValue(),J[L]=[],Q[L]=!1,G[L]=!1,K[L]=!1;let W=!1;async function U(L){K[L]=!0;let V=await $[L].validate(X[L],X);return J[L]=V,K[L]=!1,V.length===0}async function _(){W=!0;let L=await Promise.all(Y.map(U));return W=!1,L.every(Boolean)}function B(){for(let L of Y)X[L]=Z?.[L]??$[L].getDefaultValue(),J[L]=[],Q[L]=!1,G[L]=!1}function z(L){for(let V of Y)if(V in L)X[V]=L[V],G[V]=!0}function q(L,V){X[L]=V,G[L]=!0}function j(L,V=!0){if(Q[L]=V,V)U(L)}function H(L){return{value:X[L],errors:J[L],touched:Q[L],dirty:G[L],valid:J[L].length===0,validating:K[L]}}function O(L){return async(V)=>{V?.preventDefault?.();for(let N of Y)Q[N]=!0;if(await _())await L(X)}}return{values:X,errors:J,touched:Q,dirty:G,get isValid(){return Y.every((L)=>J[L].length===0)},get isValidating(){return W||Y.some((L)=>K[L])},get isDirty(){return Y.some((L)=>G[L])},validate:_,validateField:U,reset:B,setValues:z,setFieldValue:q,setFieldTouched:j,getFieldState:H,handleSubmit:O}}function i_($,Z,Y){let X=/@error\s*\(\s*([^)]+)\s*\)([\s\S]*?)@enderror/g;return $.replace(X,(J,Q,G)=>{try{let K=Q.trim().split("."),W=Z;for(let _ of K)if(W&&typeof W==="object"&&_ in W)W=W[_];else return"";let U=W;if(!U||!Array.isArray(U)||U.length===0)return"";return U.map((_)=>{return G.replace(/\{\{\s*message\s*\}\}/g,_)}).join(`
10448
10448
  `)}catch{return""}})}function n_($,Z,Y){let X=/@errors\s*\(\s*([^)]+)\s*\)([\s\S]*?)@enderrors/g;return $.replace(X,(J,Q,G)=>{try{let K=Q.trim().split("."),W=Z;for(let _ of K)if(W&&typeof W==="object"&&_ in W)W=W[_];else return"";let U=W;if(!U||!Array.isArray(U)||U.length===0)return"";return U.map((_)=>G.replace(/\{\{\s*message\s*\}\}/g,_)).join(`
10449
10449
  `)}catch{return""}})}function s_($,Z,Y){let X=/@hasErrors\s*\(\s*([^)]+)\s*\)([\s\S]*?)@endhasErrors/g;return $.replace(X,(J,Q,G)=>{try{let K=Q.trim().split("."),W=Z;for(let _ of K)if(W&&typeof W==="object"&&_ in W)W=W[_];else return"";let U=W;if(!U||!Array.isArray(U)||U.length===0)return"";return G}catch{return""}})}function yA($,Z,Y){let X=$;return X=i_(X,Z,Y),X=n_(X,Z,Y),X=s_(X,Z,Y),X}var bA;var o_=D(()=>{bA=new $2});var e_={};Q0(e_,{processXElementDirectives:()=>PA,hasXElementDirectives:()=>t_,generateXElementRuntime:()=>a_});function a_(){return`<script data-stx-scoped>
10450
10450
  (function() {
@@ -10732,7 +10732,7 @@ else {
10732
10732
  })();
10733
10733
  </script>`}function t_($){return/\bx-(data|model|text|show|init|html)\b/.test($)||/\s:[a-z]/.test($)}function PA($){if(!t_($))return $;let Z=a_(),Y=$.lastIndexOf("</body>");if(Y!==-1)return $.slice(0,Y)+Z+`
10734
10734
  `+$.slice(Y);return $+`
10735
- `+Z}var $B=()=>{};function tY($){return $.pwa?.serviceWorker?.fileName||"sw.js"}var ZB=D(()=>{$B()});var YB={};Q0(YB,{injectPwaTags:()=>xA,generateThemeColorMeta:()=>gA,generateSwRegistrationScript:()=>vA,generatePwaTags:()=>E4,generateManifestLink:()=>fA});function E4($){let Z=$.pwa;if(!Z?.enabled)return"";let Y=Z.manifest,X=Z.icons?.outputDir?`/${Z.icons.outputDir}`:"/pwa-icons",J=tY($),Q=`
10735
+ `+Z}var $B=()=>{};function tY($){return $.pwa?.serviceWorker?.fileName||"sw.js"}var ZB=D(()=>{$B()});var YB={};Q0(YB,{injectPwaTags:()=>xA,generateThemeColorMeta:()=>gA,generateSwRegistrationScript:()=>vA,generatePwaTags:()=>E6,generateManifestLink:()=>fA});function E6($){let Z=$.pwa;if(!Z?.enabled)return"";let Y=Z.manifest,X=Z.icons?.outputDir?`/${Z.icons.outputDir}`:"/pwa-icons",J=tY($),Q=`
10736
10736
  <!-- stx PWA Meta Tags -->
10737
10737
  <link rel="manifest" href="/manifest.json">
10738
10738
  <meta name="theme-color" content="${eY(Y?.themeColor||"#000000")}">
@@ -10776,8 +10776,8 @@ if ('serviceWorker' in navigator) {
10776
10776
  });
10777
10777
  }
10778
10778
  </script>
10779
- <!-- End stx PWA -->`,Q}function xA($,Z){let Y=Z.pwa;if(!Y?.enabled||Y.autoInject===!1)return $;if($.includes("<!-- stx PWA Meta Tags -->"))return $;if(!$.includes("</head>")){let J=$.lastIndexOf("</body>");if(J!==-1){let Q=E4(Z);return $.slice(0,J)+Q+`
10780
- `+$.slice(J)}return $+E4(Z)}let X=E4(Z);return $.replace("</head>",`${X}
10779
+ <!-- End stx PWA -->`,Q}function xA($,Z){let Y=Z.pwa;if(!Y?.enabled||Y.autoInject===!1)return $;if($.includes("<!-- stx PWA Meta Tags -->"))return $;if(!$.includes("</head>")){let J=$.lastIndexOf("</body>");if(J!==-1){let Q=E6(Z);return $.slice(0,J)+Q+`
10780
+ `+$.slice(J)}return $+E6(Z)}let X=E6(Z);return $.replace("</head>",`${X}
10781
10781
  </head>`)}function vA($){if(!$.pwa?.enabled)return"";return`<script>
10782
10782
  if ('serviceWorker' in navigator) {
10783
10783
  window.addEventListener('load', function() {
@@ -10795,12 +10795,12 @@ if ('serviceWorker' in navigator) {
10795
10795
  `){W=-1;break}W++}if(W===-1){X++,J=!1;continue}while(W<Y&&/[a-z]/.test($[W]))W++;X=W,J=!1;continue}if(K==="'"||K==='"'){let W=K;X++;while(X<Y){if($[X]==="\\"){X+=2;continue}if($[X]===W){X++;break}if($[X]===`
10796
10796
  `)break;X++}J=!1;continue}if(K==="`"){X++;while(X<Y){if($[X]==="\\"){X+=2;continue}if($[X]==="`"){X++;break}if($[X]==="$"&&$[X+1]==="{"){Q.push(!0),X+=2,J=!0;break}X++}if(Q.length===0)J=!1;continue}if(K==="}"&&Q.length>0){Q.pop(),X++;while(X<Y){if($[X]==="\\"){X+=2;continue}if($[X]==="`"){X++,J=!1;break}if($[X]==="$"&&$[X+1]==="{"){Q.push(!0),X+=2,J=!0;break}X++}continue}if(/\s/.test(K));else if(/[)\].\w$]/.test(K))J=!1;else J=!0;X++}return-1}async function Z0($,Z,Y,X,J){if(X.ssr===!1&&!X.autoShell&&X.buildMode==="spa")return $;let Q=!Z.__stxProcessingDepth;if(!Z.__stxProcessingDepth)Z.__stxProcessingDepth=0;if(Z.__stxProcessingDepth++,!Z.__onceStore)Z.__onceStore=new Set;try{return await P2.timeAsync("template-processing",async()=>{let G=await dA($,Z,Y,X,J);if(Q)G=SY(G);if(Q&&X.autoShell&&X.buildMode!=="compile"){let K=X.app?.head||{},U=(Z.__stx_runtime_head||null)??m5(),_={...K,...U.title&&{title:U.title},meta:[...K.meta||[],...U.meta||[]],link:[...K.link||[],...U.link||[]],script:[...K.script||[],...U.script||[]],...U.htmlAttrs&&{htmlAttrs:{...K.htmlAttrs||{},...U.htmlAttrs}},...U.bodyAttrs&&{bodyAttrs:{...K.bodyAttrs||{},...U.bodyAttrs}}};G=B7(G,_);let B=G.match(/<!-- stx-layout: ([^ ]+) -->/);if(B&&G.includes("<head")){let q=B[1];G=G.replace("<head>",`<head>
10797
10797
  <meta name="stx-layout" content="${q}">`)}let z=G.match(/function (__stx_setup_\d+_\d+)\(/);if(z&&G.includes("<body")&&!G.match(/<body[^>]*data-stx=/)){G=G.replace(/<body([^>]*)>/,`<body$1 data-stx="${z[1]}">`);let q=new RegExp(`(<(?!body)[a-zA-Z][^>]*) data-stx="${z[1]}"`,"i");G=G.replace(q,"$1")}}if(Q)try{let{getStoreScript:K}=await Promise.resolve().then(() => (uU(),mU)),W=X.storesDir,U=await K(W);if(U){let _=`<script data-stx-stores>${U}</script>`,B=G.indexOf("<script data-stx-scoped>");if(B!==-1){let z=G.indexOf("</script>",B+24);if(z!==-1){let q=z+9;G=G.slice(0,q)+`
10798
- `+_+G.slice(q)}}}}catch{}if(Q&&Z.__stx_inject_css!==!1)G=await V0(G);return G=G.replace(/\x00STX_ESCAPED_AT\x00/g,"@"),G})}catch(G){if(G instanceof a2)throw G;let K=G instanceof Error?G.message:String(G),W=new O1(`Template processing failed: ${K}`,Y,void 0,void 0,$.substring(0,200)+($.length>200?"...":""));if(m0.log(W,{filePath:Y,context:Z}),C5.logDetailedError(W,{filePath:Y,template:$.substring(0,500)}),X.debug)throw W;return U6.createFallbackContent("Template Processing",W)}}async function dA($,Z,Y,X,J){let Q=process.cwd(),G={...X,partialsDir:X.partialsDir&&!$1.isAbsolute(X.partialsDir)?$1.resolve(Q,X.partialsDir):X.partialsDir,componentsDir:X.componentsDir&&!$1.isAbsolute(X.componentsDir)?$1.resolve(Q,X.componentsDir):X.componentsDir,layoutsDir:X.layoutsDir&&!$1.isAbsolute(X.layoutsDir)?$1.resolve(Q,X.layoutsDir):X.layoutsDir},K=G,W=$;W=W.replace(/\{\{--[\s\S]*?--\}\}/g,"");let U="\x00STX_ESCAPED_AT\x00";W=W.replace(/@@/g,U),W=W.replace(/@\{\{([\s\S]*?)\}\}/g,(H,O)=>{return`{{ ${O} }}`}),W=tZ(W),W=await fU(W,Y,J);let _={};W=s6(W,_);let B={...Z.__sections||{}},z="",q=/@nolayout\b/.test(W);if(q)W=W.replace(/@nolayout\b\s*/g,"");let j=W.match(/@(?:layout|extends)\(\s*['"]([^'"]+)['"]\s*\)/);if(j)z=j[1],W=W.replace(/@(?:layout|extends)\(\s*['"]([^'"]+)['"]\s*\)/g,"");if(!z&&!q&&K.defaultLayout){let H=/<!DOCTYPE\s/i.test(W),O=/@section\s*\(/.test(W);if(!H||O){let F="",L=$1.dirname(Y),V=K.layoutsDir?$1.dirname(K.layoutsDir):process.cwd();for(let A=0;A<20;A++){let N=$1.join(L,"_layout.stx");if(await t(N)){F=N;break}let w=$1.dirname(L);if(w===L||w.length<V.length)break;L=w}if(F)z=F;else if(K.layoutsDir){let A=$1.isAbsolute(K.layoutsDir)?K.layoutsDir:$1.resolve(process.cwd(),K.layoutsDir),N=$1.join(A,`${K.defaultLayout}.stx`);if(await t(N))z=N}if(z&&!O)W=`@section('content')
10798
+ `+_+G.slice(q)}}}}catch{}if(Q&&Z.__stx_inject_css!==!1)G=await V0(G);return G=G.replace(/\x00STX_ESCAPED_AT\x00/g,"@"),G})}catch(G){if(G instanceof a2)throw G;let K=G instanceof Error?G.message:String(G),W=new O1(`Template processing failed: ${K}`,Y,void 0,void 0,$.substring(0,200)+($.length>200?"...":""));if(m0.log(W,{filePath:Y,context:Z}),C5.logDetailedError(W,{filePath:Y,template:$.substring(0,500)}),X.debug)throw W;return U4.createFallbackContent("Template Processing",W)}}async function dA($,Z,Y,X,J){let Q=process.cwd(),G={...X,partialsDir:X.partialsDir&&!$1.isAbsolute(X.partialsDir)?$1.resolve(Q,X.partialsDir):X.partialsDir,componentsDir:X.componentsDir&&!$1.isAbsolute(X.componentsDir)?$1.resolve(Q,X.componentsDir):X.componentsDir,layoutsDir:X.layoutsDir&&!$1.isAbsolute(X.layoutsDir)?$1.resolve(Q,X.layoutsDir):X.layoutsDir},K=G,W=$;W=W.replace(/\{\{--[\s\S]*?--\}\}/g,"");let U="\x00STX_ESCAPED_AT\x00";W=W.replace(/@@/g,U),W=W.replace(/@\{\{([\s\S]*?)\}\}/g,(H,O)=>{return`{{ ${O} }}`}),W=tZ(W),W=await fU(W,Y,J);let _={};W=s4(W,_);let B={...Z.__sections||{}},z="",q=/@nolayout\b/.test(W);if(q)W=W.replace(/@nolayout\b\s*/g,"");let j=W.match(/@(?:layout|extends)\(\s*['"]([^'"]+)['"]\s*\)/);if(j)z=j[1],W=W.replace(/@(?:layout|extends)\(\s*['"]([^'"]+)['"]\s*\)/g,"");if(!z&&!q&&K.defaultLayout){let H=/<!DOCTYPE\s/i.test(W),O=/@section\s*\(/.test(W);if(!H||O){let F="",L=$1.dirname(Y),V=K.layoutsDir?$1.dirname(K.layoutsDir):process.cwd();for(let A=0;A<20;A++){let N=$1.join(L,"_layout.stx");if(await t(N)){F=N;break}let w=$1.dirname(L);if(w===L||w.length<V.length)break;L=w}if(F)z=F;else if(K.layoutsDir){let A=$1.isAbsolute(K.layoutsDir)?K.layoutsDir:$1.resolve(process.cwd(),K.layoutsDir),N=$1.join(A,`${K.defaultLayout}.stx`);if(await t(N))z=N}if(z&&!O)W=`@section('content')
10799
10799
  ${W.trim()}
10800
- @endsection`}}if(W=W.replace(/@section\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*\)/g,(H,O,F)=>{return B[O]=F,""}),W=W.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@endsection|@show)/g,(H,O,F)=>{if(F.includes("@parent"))B[O]=F.replace("@parent",l$);else B[O]=F.trim();return""}),Z.__sections=B,W=W.replace(/@(?:yield|slot)\(\s*['"]([^'"]+)['"](?:,\s*['"]([^'"]+)['"])?\)/g,(H,O,F)=>{return B[O]||F||""}),!("slot"in Z)||Z.slot===void 0)W=W.replace(/\{\{\s*slot\s*\}\}/g,()=>{return B.content||""});if(W=r6(W,_),z)try{let H=$1.isAbsolute(z)?z:await M1(()=>e2(z,Y,G,J),null,()=>{throw new O1(`Failed to resolve layout path: ${z}`,Y,void 0,void 0,`Layout referenced from ${Y}`)});if(!H){let N=`Layout not found: ${z} (referenced from ${Y})`;if(m0.log(Error(N),{layoutPath:z,filePath:Y},"warning"),G.debug)throw new O1(N,Y);return W}let O=await M1(()=>Bun.file(H).text(),"",()=>{throw new O1(`Failed to read layout file: ${H}`,Y,void 0,void 0,"Layout content could not be loaded")}),F=O.match(/@(?:layout|extends)\(\s*['"]([^'"]+)['"]\s*\)/);if(F){if(G.debug)console.log(`Found nested layout: ${F[1]} in ${H}`);let N={},w=O.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@show|@endsection)/g,(I,E,S)=>{return N[E]=S.trim(),""});for(let[I,E]of Object.entries(N))if(B[I]&&B[I].includes(l$)){let S=B[I].indexOf(l$);B[I]=B[I].slice(0,S)+E+B[I].slice(S+l$.length)}else if(!B[I])B[I]=E;let M={...Z,__sections:B},T=`@layout('${F[1]}')${w}`;return await Z0(T,M,H,G,J)}let L=O.replace(/\{\{--[\s\S]*?--\}\}/g,""),V=s6(L,_),A={};return V=V.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@show|@endsection)/g,(N,w,M)=>{return A[w]=M.trim(),`@slot('${w}')`}),V=V.replace(/@(?:yield|slot)\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(N,w,M)=>{if(B[w]){let T=B[w];if(T.includes(l$)){let I=A[w]||"",E=T.indexOf(l$);T=T.slice(0,E)+I+T.slice(E+l$.length)}return T}return M||""}),V=V.replace(/\{\{\s*slot\s*\}\}/g,()=>{return B.content||""}),V=r6(V,_),Z.__originalFilePath=Y,W=await JB(V,Z,H,G,J),W=`<!-- stx-layout: ${z} -->
10801
- ${W}`,W}catch(H){return m0.log(H instanceof Error?H:Error(String(H)),{layoutPath:z,filePath:Y},"error"),`[Error processing layout: ${H instanceof Error?H.message:String(H)}]`}return await JB(W,Z,Y,G,J)}async function JB($,Z,Y,X,J){let Q=$;Z.__stx_sfc_mode=!0;let G=X;if(await M1(()=>lW(Y,Z),void 0,(m)=>{m0.log(m,{filePath:Y,phase:"view-composer"},"warning"),console.warn(`[stx] view composer failed for ${Y}: ${m.message}`)}),Z.__stx_options=G,G.buildMode)Z.__stx_buildMode=G.buildMode;let K=G.envPrefix||"STX_PUBLIC_",W={};for(let[m,u]of Object.entries(process.env))if(m.startsWith(K)&&u!==void 0)W[m]=u;Z.$env=W,Q=await M1(()=>sZ(Q,Z,Y,G),Q,(m)=>{m0.log(m,{filePath:Y,phase:"pre-processing-middleware"},"warning"),console.warn(`[stx] pre-processing middleware failed for ${Y}: ${m.message}`)});let U=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,_;while((_=U.exec(Q))!==null){let m=_[1],u=_[2];if(/\bserver\b/.test(m)&&u.trim())try{let{extractVariables:r}=await Promise.resolve().then(() => (L$(),m6));await r(u,Z,Y)}catch(r){let s=r instanceof Error?r:Error(String(r));m0.log(s,{filePath:Y,phase:"server-script-extraction"},"warning"),console.warn(`[stx] server <script> extraction failed in ${Y}: ${s.message}`)}}try{let{interpolateScriptsInTemplate:m}=await Promise.resolve().then(() => (d0(),C2));Q=m(Q,Z,{skipServer:!0})}catch(m){let u=m instanceof Error?m:Error(String(m));m0.log(u,{filePath:Y,phase:"script-expression-interpolation"},"warning"),console.warn(`[stx] script expression interpolation failed in ${Y}: ${u.message}`)}if(Q=await gW(Q,Z,Y),Q=await hW(Q,Z,Y),Q=await CZ(Q,Z,Y,G),b2(Q))Q=KY(Q),Q=WY(Q,Z);Q=l6(Q,Z,Y,G),Q=await kY(Q,Z,Y,G,J),Q=await $Y(Q,Z,Y,G,J),Q=h3(Q,Z,Y,G);let{processDeferDirectives:B}=await Promise.resolve().then(() => lU);Q=B(Q,Z,Y);let{processTeleportDirectives:z}=await Promise.resolve().then(() => rU);Q=z(Q,Z,Y);let{processTransitionDirectives:q,processTransitionAttributes:j}=await Promise.resolve().then(() => Q_);Q=q(Q,Z,Y),Q=j(Q);let{processErrorBoundaryDirectives:H}=await Promise.resolve().then(() => K_);Q=H(Q,Z,Y);let{processSuspenseDirectives:O}=await Promise.resolve().then(() => q_);Q=O(Q,Z,Y);let{processAsyncDirectives:F}=await Promise.resolve().then(() => w_);Q=F(Q,Z,Y);let{processKeepAliveDirectives:L}=await Promise.resolve().then(() => b_);Q=L(Q,Z,Y);let{processVirtualListDirectives:V,processVirtualGridDirectives:A,processInfiniteListDirectives:N}=await Promise.resolve().then(() => (fY(),C_));Q=V(Q,Z,Y),Q=A(Q,Z,Y),Q=N(Q,Z,Y);let{processPartialHydrationDirectives:w,processStaticDirectives:M}=await Promise.resolve().then(() => (aY(),y_));Q=w(Q,Z,Y),Q=M(Q);let{processComputedDirectives:T,processWatchDirectives:I}=await Promise.resolve().then(() => (l_(),c_));Q=T(Q,Z,Y),Q=I(Q,Z,Y);let{processFormValidationDirectives:E}=await Promise.resolve().then(() => (o_(),r_));Q=E(Q,Z,Y);let{processHeadDirective:S,processTitleDirective:k,processMetaDirective:b,resetHead:P}=await Promise.resolve().then(() => (H$(),y6));if(!Z.__stx_head_preset&&!Z.__stx_runtime_head)P();let x=S(Q);if(Q=x.content,Q=k(Q,Z),Q=b(Q,Z),Q=pW(Q),Q=wZ(Q,Z),Q=aK(Q),Q=uW(Q),Q=await n6(Q,Z,Y,G,J),Q=await kY(Q,Z,Y,G,J),Q=SY(Q),Q=d5(Q,Z,Y),Q=RZ(Q,Z),Q=MZ(Q,Z),Q=u5(Q,Z),Q=v6(Q,Z),Q=f6(Q,Z),Q=await LZ(Q,Z,Y,G),Q=await l3(Q,Z,Y),Q=await hZ(Q,Z,Y,G),Q=f3(Q,Z,Y,G),Q=n8(Q,Z,Y,G),Q=s8(Q,Z,Y),Q=r8(Q,Z,Y,G),Q=kZ(Q,Z,Y,G),Q=V4(Q,Z),Q=N4(Q),Q=hU(Q),!G.skipEventDirectives)Q=jZ(Q,Z,Y);if(Q=PK(Q,Z,Y),G.debug){let m=/\bx-data\s*=/.test(Q),u=j4($);if(m&&u)console.warn(`[stx] ${Y}: Template mixes Alpine-style (x-data) and signals (state/derived/effect) reactivity.
10800
+ @endsection`}}if(W=W.replace(/@section\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*\)/g,(H,O,F)=>{return B[O]=F,""}),W=W.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@endsection|@show)/g,(H,O,F)=>{if(F.includes("@parent"))B[O]=F.replace("@parent",l$);else B[O]=F.trim();return""}),Z.__sections=B,W=W.replace(/@(?:yield|slot)\(\s*['"]([^'"]+)['"](?:,\s*['"]([^'"]+)['"])?\)/g,(H,O,F)=>{return B[O]||F||""}),!("slot"in Z)||Z.slot===void 0)W=W.replace(/\{\{\s*slot\s*\}\}/g,()=>{return B.content||""});if(W=r4(W,_),z)try{let H=$1.isAbsolute(z)?z:await M1(()=>e2(z,Y,G,J),null,()=>{throw new O1(`Failed to resolve layout path: ${z}`,Y,void 0,void 0,`Layout referenced from ${Y}`)});if(!H){let N=`Layout not found: ${z} (referenced from ${Y})`;if(m0.log(Error(N),{layoutPath:z,filePath:Y},"warning"),G.debug)throw new O1(N,Y);return W}let O=await M1(()=>Bun.file(H).text(),"",()=>{throw new O1(`Failed to read layout file: ${H}`,Y,void 0,void 0,"Layout content could not be loaded")}),F=O.match(/@(?:layout|extends)\(\s*['"]([^'"]+)['"]\s*\)/);if(F){if(G.debug)console.log(`Found nested layout: ${F[1]} in ${H}`);let N={},w=O.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@show|@endsection)/g,(I,E,S)=>{return N[E]=S.trim(),""});for(let[I,E]of Object.entries(N))if(B[I]&&B[I].includes(l$)){let S=B[I].indexOf(l$);B[I]=B[I].slice(0,S)+E+B[I].slice(S+l$.length)}else if(!B[I])B[I]=E;let M={...Z,__sections:B},T=`@layout('${F[1]}')${w}`;return await Z0(T,M,H,G,J)}let L=O.replace(/\{\{--[\s\S]*?--\}\}/g,""),V=s4(L,_),A={};return V=V.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@show|@endsection)/g,(N,w,M)=>{return A[w]=M.trim(),`@slot('${w}')`}),V=V.replace(/@(?:yield|slot)\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(N,w,M)=>{if(B[w]){let T=B[w];if(T.includes(l$)){let I=A[w]||"",E=T.indexOf(l$);T=T.slice(0,E)+I+T.slice(E+l$.length)}return T}return M||""}),V=V.replace(/\{\{\s*slot\s*\}\}/g,()=>{return B.content||""}),V=r4(V,_),Z.__originalFilePath=Y,W=await JB(V,Z,H,G,J),W=`<!-- stx-layout: ${z} -->
10801
+ ${W}`,W}catch(H){return m0.log(H instanceof Error?H:Error(String(H)),{layoutPath:z,filePath:Y},"error"),`[Error processing layout: ${H instanceof Error?H.message:String(H)}]`}return await JB(W,Z,Y,G,J)}async function JB($,Z,Y,X,J){let Q=$;Z.__stx_sfc_mode=!0;let G=X;if(await M1(()=>lW(Y,Z),void 0,(m)=>{m0.log(m,{filePath:Y,phase:"view-composer"},"warning"),console.warn(`[stx] view composer failed for ${Y}: ${m.message}`)}),Z.__stx_options=G,G.buildMode)Z.__stx_buildMode=G.buildMode;let K=G.envPrefix||"STX_PUBLIC_",W={};for(let[m,u]of Object.entries(process.env))if(m.startsWith(K)&&u!==void 0)W[m]=u;Z.$env=W,Q=await M1(()=>sZ(Q,Z,Y,G),Q,(m)=>{m0.log(m,{filePath:Y,phase:"pre-processing-middleware"},"warning"),console.warn(`[stx] pre-processing middleware failed for ${Y}: ${m.message}`)});let U=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,_;while((_=U.exec(Q))!==null){let m=_[1],u=_[2];if(/\bserver\b/.test(m)&&u.trim())try{let{extractVariables:r}=await Promise.resolve().then(() => (L$(),m4));await r(u,Z,Y)}catch(r){let s=r instanceof Error?r:Error(String(r));m0.log(s,{filePath:Y,phase:"server-script-extraction"},"warning"),console.warn(`[stx] server <script> extraction failed in ${Y}: ${s.message}`)}}try{let{interpolateScriptsInTemplate:m}=await Promise.resolve().then(() => (d0(),C2));Q=m(Q,Z,{skipServer:!0})}catch(m){let u=m instanceof Error?m:Error(String(m));m0.log(u,{filePath:Y,phase:"script-expression-interpolation"},"warning"),console.warn(`[stx] script expression interpolation failed in ${Y}: ${u.message}`)}if(Q=await gW(Q,Z,Y),Q=await hW(Q,Z,Y),Q=await CZ(Q,Z,Y,G),b2(Q))Q=KY(Q),Q=WY(Q,Z);Q=l4(Q,Z,Y,G),Q=await kY(Q,Z,Y,G,J),Q=await $Y(Q,Z,Y,G,J),Q=h3(Q,Z,Y,G);let{processDeferDirectives:B}=await Promise.resolve().then(() => lU);Q=B(Q,Z,Y);let{processTeleportDirectives:z}=await Promise.resolve().then(() => rU);Q=z(Q,Z,Y);let{processTransitionDirectives:q,processTransitionAttributes:j}=await Promise.resolve().then(() => Q_);Q=q(Q,Z,Y),Q=j(Q);let{processErrorBoundaryDirectives:H}=await Promise.resolve().then(() => K_);Q=H(Q,Z,Y);let{processSuspenseDirectives:O}=await Promise.resolve().then(() => q_);Q=O(Q,Z,Y);let{processAsyncDirectives:F}=await Promise.resolve().then(() => w_);Q=F(Q,Z,Y);let{processKeepAliveDirectives:L}=await Promise.resolve().then(() => b_);Q=L(Q,Z,Y);let{processVirtualListDirectives:V,processVirtualGridDirectives:A,processInfiniteListDirectives:N}=await Promise.resolve().then(() => (fY(),C_));Q=V(Q,Z,Y),Q=A(Q,Z,Y),Q=N(Q,Z,Y);let{processPartialHydrationDirectives:w,processStaticDirectives:M}=await Promise.resolve().then(() => (aY(),y_));Q=w(Q,Z,Y),Q=M(Q);let{processComputedDirectives:T,processWatchDirectives:I}=await Promise.resolve().then(() => (l_(),c_));Q=T(Q,Z,Y),Q=I(Q,Z,Y);let{processFormValidationDirectives:E}=await Promise.resolve().then(() => (o_(),r_));Q=E(Q,Z,Y);let{processHeadDirective:S,processTitleDirective:k,processMetaDirective:b,resetHead:P}=await Promise.resolve().then(() => (H$(),y4));if(!Z.__stx_head_preset&&!Z.__stx_runtime_head)P();let x=S(Q);if(Q=x.content,Q=k(Q,Z),Q=b(Q,Z),Q=pW(Q),Q=wZ(Q,Z),Q=aK(Q),Q=uW(Q),Q=await n4(Q,Z,Y,G,J),Q=await kY(Q,Z,Y,G,J),Q=SY(Q),Q=d5(Q,Z,Y),Q=RZ(Q,Z),Q=MZ(Q,Z),Q=u5(Q,Z),Q=v4(Q,Z),Q=f4(Q,Z),Q=await LZ(Q,Z,Y,G),Q=await l3(Q,Z,Y),Q=await hZ(Q,Z,Y,G),Q=f3(Q,Z,Y,G),Q=n8(Q,Z,Y,G),Q=s8(Q,Z,Y),Q=r8(Q,Z,Y,G),Q=kZ(Q,Z,Y,G),Q=V6(Q,Z),Q=N6(Q),Q=hU(Q),!G.skipEventDirectives)Q=jZ(Q,Z,Y);if(Q=PK(Q,Z,Y),G.debug){let m=/\bx-data\s*=/.test(Q),u=j6($);if(m&&u)console.warn(`[stx] ${Y}: Template mixes Alpine-style (x-data) and signals (state/derived/effect) reactivity.
10802
10802
  Both work on the same page, but they manage separate scopes.
10803
- Prefer signals (state/derived/effect) for new components.`)}Q=o6(Q,Z),Q=await q1(Q,Z,Y),Q=dU(Q),Q=UZ(Q);let{processXElementDirectives:C}=await Promise.resolve().then(() => e_);if(Q=C(Q),Q=await UY(Q,G,Y),Q=await rZ(Q,Z,Y,G),G.seo?.enabled)Q=o8(Q,Z,G);let{renderHead:f,getHead:g}=await Promise.resolve().then(() => (H$(),y6)),h=Z.__stx_runtime_head,l=h&&(h.title||h.meta?.length||h.link?.length)?h:g();if(l.title||l.meta?.length||l.link?.length){let m=f(l);if(m){if(Q.includes("</head>"))Q=Q.replace("</head>",`${m}
10803
+ Prefer signals (state/derived/effect) for new components.`)}Q=o4(Q,Z),Q=await q1(Q,Z,Y),Q=dU(Q),Q=UZ(Q);let{processXElementDirectives:C}=await Promise.resolve().then(() => e_);if(Q=C(Q),Q=await UY(Q,G,Y),Q=await rZ(Q,Z,Y,G),G.seo?.enabled)Q=o8(Q,Z,G);let{renderHead:f,getHead:g}=await Promise.resolve().then(() => (H$(),y4)),h=Z.__stx_runtime_head,l=h&&(h.title||h.meta?.length||h.link?.length)?h:g();if(l.title||l.meta?.length||l.link?.length){let m=f(l);if(m){if(Q.includes("</head>"))Q=Q.replace("</head>",`${m}
10804
10804
  </head>`);else if(Q.includes("<head>"))Q=Q.replace("<head>",`<head>
10805
10805
  ${m}`)}}if(x.headContent){if(Q.includes("</head>"))Q=Q.replace("</head>",`${x.headContent}
10806
10806
  </head>`);else if(Q.includes("<head>"))Q=Q.replace("<head>",`<head>
@@ -10810,9 +10810,9 @@ ${NK()}
10810
10810
  `+z0}else Q=Q.replace("</head>",`${u}
10811
10811
  </head>`)}else if(Q.includes("<body"))Q=Q.replace(/<body([^>]*)>/,`<body$1>
10812
10812
  ${u}`);else Q=u+`
10813
- `+Q}{let m=/<script\s+server\b[^>]*>/gi,u,a=[];while((u=m.exec(Q))!==null){let r=u.index+u[0].length,s=hA(Q,r);if(s===-1)continue;let J0=s+9;while(J0<Q.length&&/\s/.test(Q[J0]))J0++;a.push({start:u.index,end:J0})}for(let r=a.length-1;r>=0;r--){let{start:s,end:J0}=a[r];Q=Q.substring(0,s)+Q.substring(J0)}}let D0=_7(Q,Y);if(D0.hasScoped)Q=D0.html;let M0=Z.__stx_event_bindings||[],v=!1,d=[],n=/\s:[a-z][\w.-]*\s*=/.test(Q),{scanScriptTags:p}=await Promise.resolve().then(() => (_Y(),HU));for(let m of p(Q,{skipAttrs:/\bserver\b|\bsrc\s*=|\bdata-stx-scoped\b|\bdata-stx-router\b/}))d.push({match:m.fullMatch,attrs:m.attrs,content:m.body});for(let{match:m,attrs:u,content:a}of d){v=!0;let r=a;A4(a,Y,X.strict);let s=await v$(a,{eventBindings:M0,attrs:u,hasColonDirectives:n,templateContent:$,filePath:Y,projectRoot:process.cwd(),production:X.buildMode==="compile"});Q=Q.replace(m,()=>s)}if(v)Z.__stx_event_bindings=[];return Q}var l$="<!--PARENT_CONTENT_PLACEHOLDER-->";var U1=D(()=>{E1();b9();AK();_Z();qZ();f9();v9();HZ();E2();h5();D6();SZ();tK();yZ();X1();H$();d0();vZ();dZ();p5();mW();i6();g9();oZ();f$();cW();j6();q0();iW();aZ();eZ();ZY();a6();_Y();PU();gU();bY();CY();bY();CY()});function QB($){let Z=[],Y=[];return cA($,Z),lA($,Z,Y),iA($,Y),nA($,Z),{valid:Z.length===0,errors:Z,warnings:Y}}function cA($,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 lA($,Z,Y){for(let X of mA){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 iA($,Z){for(let Y of uA)if(Y.pattern.test($))Z.push({type:"syntax",message:Y.message,suggestion:Y.suggestion})}function nA($,Z){for(let Y of pA)if(Y.pattern.test($))Z.push({type:"expression",message:`Security warning: ${Y.message}`,suggestion:"Remove dangerous code from template expressions"})}function GB($,Z){let Y=$.slice(0,Z).split(`
10813
+ `+Q}{let m=/<script\s+server\b[^>]*>/gi,u,a=[];while((u=m.exec(Q))!==null){let r=u.index+u[0].length,s=hA(Q,r);if(s===-1)continue;let J0=s+9;while(J0<Q.length&&/\s/.test(Q[J0]))J0++;a.push({start:u.index,end:J0})}for(let r=a.length-1;r>=0;r--){let{start:s,end:J0}=a[r];Q=Q.substring(0,s)+Q.substring(J0)}}let D0=_7(Q,Y);if(D0.hasScoped)Q=D0.html;let M0=Z.__stx_event_bindings||[],v=!1,d=[],n=/\s:[a-z][\w.-]*\s*=/.test(Q),{scanScriptTags:p}=await Promise.resolve().then(() => (_Y(),HU));for(let m of p(Q,{skipAttrs:/\bserver\b|\bsrc\s*=|\bdata-stx-scoped\b|\bdata-stx-router\b/}))d.push({match:m.fullMatch,attrs:m.attrs,content:m.body});for(let{match:m,attrs:u,content:a}of d){v=!0;let r=a;A6(a,Y,X.strict);let s=await v$(a,{eventBindings:M0,attrs:u,hasColonDirectives:n,templateContent:$,filePath:Y,projectRoot:process.cwd(),production:X.buildMode==="compile"});Q=Q.replace(m,()=>s)}if(v)Z.__stx_event_bindings=[];return Q}var l$="<!--PARENT_CONTENT_PLACEHOLDER-->";var U1=D(()=>{E1();b9();AK();_Z();qZ();f9();v9();HZ();E2();h5();D4();SZ();tK();yZ();X1();H$();d0();vZ();dZ();p5();mW();i4();g9();oZ();f$();cW();j4();q0();iW();aZ();eZ();ZY();a4();_Y();PU();gU();bY();CY();bY();CY()});function QB($){let Z=[],Y=[];return cA($,Z),lA($,Z,Y),iA($,Y),nA($,Z),{valid:Z.length===0,errors:Z,warnings:Y}}function cA($,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 lA($,Z,Y){for(let X of mA){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 iA($,Z){for(let Y of uA)if(Y.pattern.test($))Z.push({type:"syntax",message:Y.message,suggestion:Y.suggestion})}function nA($,Z){for(let Y of pA)if(Y.pattern.test($))Z.push({type:"expression",message:`Security warning: ${Y.message}`,suggestion:"Remove dangerous code from template expressions"})}function GB($,Z){let Y=$.slice(0,Z).split(`
10814
10814
  `);return{line:Y.length,column:Y[Y.length-1].length+1}}function KB($,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 WB($){return/@[a-z]+/i.test($)||/\{\{/.test($)}function UB($){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 mA,uA,pA;var _B=D(()=>{mA=[{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"}],uA=[{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')"}],pA=[{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 HB={};Q0(HB,{renderSlot:()=>ZX,processSlots:()=>YX,parseSlots:()=>$X,parseSlotElement:()=>BB,extractSlotContent:()=>qB,applySlots:()=>jB});function sA($,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 $X($){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[_,B,z,q,j]=Q,H=B||z||q,O=Q.index+_.length,F=sA($,O);if(F!==-1){let L=$.slice(O,F-11).trim();J.push({start:Q.index,end:F,slotName:H,content:L,propsBinding:j||void 0}),Z.named.set(H,{name:H,content:L,propsBinding:j||void 0})}}J.sort((_,B)=>B.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[_,B,z,q,j,H]=W,O=z.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),F=j.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),L=(O+F).trim(),V=`<${B}${L?" "+L:""}>${H}</${B}>`;G.push({start:W.index,end:W.index+_.length,slotName:q,element:V})}let U=/<([a-zA-Z][a-zA-Z0-9-]*)\b([^>]*?)\bslot="([^"]+)"([^>]*?)\/>/gi;while((W=U.exec(Y))!==null){let[_,B,z,q,j]=W,H=z.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),O=j.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),F=(H+O).trim(),L=`<${B}${F?" "+F:""} />`;G.push({start:W.index,end:W.index+_.length,slotName:q,element:L})}G.sort((_,B)=>B.start-_.start);for(let _ of G){let B=Z.named.get(_.slotName);if(B)B.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 BB($){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 ZX($,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((z)=>z.trim()),B=_||U;if(Z[U]!==void 0)G[B]=Z[U]}}else G[Q]=Z;J=rA(J,G)}return J}function rA($,Z){return $.replace(/\{\{\s*([^}]+)\s*\}\}/g,(Y,X)=>{try{let J=X.trim(),Q=zB(J,Z);return w0(String(Q??""))}catch{return`{{ ${X} }}`}})}function zB($,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(!_0($))return;return j0($,Object.keys(Z))(...Object.values(Z))}catch{return}}async function YX($,Z,Y){let X=$;X=await oA(X,/<slot\s+name\s*=\s*["']([^"']+)["']([^>]*?)(?:\/>|>([\s\S]*?)<\/slot>)/gi,async(G,K,W,U)=>{let _=Z.named.get(K),B=U?.trim()||"",z=W||"",q={},j=/:([a-zA-Z_$][\w$-]*)\s*=\s*["']([^"']+)["']/g,H;while((H=j.exec(z))!==null){let O=H[1],F=H[2];q[O]=zB(F,Y)}return await ZX(_,q,B,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 oA($,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 qB($){let Z=$X($);return{defaultSlot:Z.default,namedSlots:Z.named}}async function jB($,Z,Y,X){return await YX($,{default:Z,named:Y},X)}var XX=D(()=>{d0();h0()});import aA from"fs";import X0 from"path";function eA($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function OB($){return/\bjs\b/.test($)||/\blang\s*=\s*["']?(js|javascript)["']?/i.test($)}function Z$($){return!OB($)}function Y$($){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:K1()}).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 $w($){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]==="{")_++;else if($[J]==="}")_--;else if($[J]==="'"||$[J]==='"')G($[J]);else if($[J]==="`")K();else J++;continue}J++}},W=()=>{if($[J]==="/"&&$[J+1]==="/"){while(J<Q&&$[J]!==`
10815
- `)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 B=$.slice(J).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(B){let j=B[2];if(!Y.has(j))Z.push(j),Y.add(j);return}let z=$.slice(J).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(z){let j=z[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}async function D1($,Z,Y,X,J,Q,G,K=new Set,W){let{extractVariables:U}=await Promise.resolve().then(() => (L$(),m6)),_=K??new Set;if(_.has($))return`[Circular component reference: ${$}]`;let B=new Set(_);B.add($);try{let z=(v)=>v.split("-").map((d)=>d.charAt(0).toUpperCase()+d.slice(1)).join(""),q=(v)=>v.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),j=$.endsWith(".stx")?$.slice(0,-4):$,H=null,O=J.__importedComponents;if(O){let v=[j,j.toLowerCase(),z(j),q(j)];for(let d of v)if(O.has(d)){H=O.get(d);break}}let F=[];if(!H){let v=[`${j}.stx`,`${z(j)}.stx`,`${q(j)}.stx`],d=[...new Set(v)],n=J.__originalFilePath,p=[];if(n){let r=X0.join(X0.dirname(n),"components");p.push(r)}if(X)p.push(X);let m=X0.join(X0.dirname(Q),"components");if(!p.includes(m))p.push(m);if(G.componentsDir&&G.componentsDir!==X&&!p.includes(G.componentsDir))p.push(G.componentsDir);let u=process.cwd(),a=[X0.resolve(u,"src/components"),X0.resolve(u,"components"),X0.resolve(import.meta.dir,"components")];for(let r of a)if(!p.includes(r))p.push(r);if(j.startsWith("./")||j.startsWith("../"))H=X0.resolve(X0.dirname(Q),`${j}.stx`),F.push(H);else for(let r of p){if(!r)continue;for(let s of d){let J0=X0.join(r,s);if(F.push(J0),await t(J0)){H=J0;break}}if(H)break;if(!H)try{let s=await import("fs");if(!s.statSync(r,{throwIfNoEntry:!1})?.isDirectory())continue;let z0=s.readdirSync(r,{withFileTypes:!0});for(let l0 of z0)if(l0.isDirectory()){let Y5=X0.join(r,l0.name);for(let X5 of d){let U0=X0.join(Y5,X5);if(F.push(U0),await t(U0)){H=U0;break}}if(H)break}}catch{}if(H)break}}if(!H||!await t(H)){let v=F.length>0?`
10815
+ `)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 B=$.slice(J).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(B){let j=B[2];if(!Y.has(j))Z.push(j),Y.add(j);return}let z=$.slice(J).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(z){let j=z[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}async function D1($,Z,Y,X,J,Q,G,K=new Set,W){let{extractVariables:U}=await Promise.resolve().then(() => (L$(),m4)),_=K??new Set;if(_.has($))return`[Circular component reference: ${$}]`;let B=new Set(_);B.add($);try{let z=(v)=>v.split("-").map((d)=>d.charAt(0).toUpperCase()+d.slice(1)).join(""),q=(v)=>v.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),j=$.endsWith(".stx")?$.slice(0,-4):$,H=null,O=J.__importedComponents;if(O){let v=[j,j.toLowerCase(),z(j),q(j)];for(let d of v)if(O.has(d)){H=O.get(d);break}}let F=[];if(!H){let v=[`${j}.stx`,`${z(j)}.stx`,`${q(j)}.stx`],d=[...new Set(v)],n=J.__originalFilePath,p=[];if(n){let r=X0.join(X0.dirname(n),"components");p.push(r)}if(X)p.push(X);let m=X0.join(X0.dirname(Q),"components");if(!p.includes(m))p.push(m);if(G.componentsDir&&G.componentsDir!==X&&!p.includes(G.componentsDir))p.push(G.componentsDir);let u=process.cwd(),a=[X0.resolve(u,"src/components"),X0.resolve(u,"components"),X0.resolve(import.meta.dir,"components")];for(let r of a)if(!p.includes(r))p.push(r);if(j.startsWith("./")||j.startsWith("../"))H=X0.resolve(X0.dirname(Q),`${j}.stx`),F.push(H);else for(let r of p){if(!r)continue;for(let s of d){let J0=X0.join(r,s);if(F.push(J0),await t(J0)){H=J0;break}}if(H)break;if(!H)try{let s=await import("fs");if(!s.statSync(r,{throwIfNoEntry:!1})?.isDirectory())continue;let z0=s.readdirSync(r,{withFileTypes:!0});for(let l0 of z0)if(l0.isDirectory()){let Y5=X0.join(r,l0.name);for(let X5 of d){let U0=X0.join(Y5,X5);if(F.push(U0),await t(U0)){H=U0;break}}if(H)break}}catch{}if(H)break}}if(!H||!await t(H)){let v=F.length>0?`
10816
10816
  Searched paths:
10817
10817
  ${F.map((d)=>` - ${d}`).join(`
10818
10818
  `)}`:"";return`[Error loading component: ENOENT: no such file or directory, open '${$}']${v}`}W.add(H);let L;if(w7.has(H))L=w7.get(H);else try{L=await Bun.file(H).text(),w7.set(H,L)}catch(v){return`[Error loading component: ${v instanceof Error?v.message:String(v)}]`}let V=new Set(["__originalFilePath","__importedComponents"]),A={};for(let[v,d]of Object.entries(J))if(!v.startsWith("__")||V.has(v))A[v]=d;let N={...A,...Z,props:Z,slot:Y,__processedComponents:B,__sections:{}},w=L,M=w.match(/<template\b(?![^>]*\b(?:id|x-for|x-if|@for|@if|:for|:if)\s*=)[^>]*>([\s\S]*?)<\/template>/i);if(M)w=M[1].trim();let T=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,I=[...L.matchAll(T)],E=[];for(let v of I){let d=v[1]||"",n=v[2]||"",p=d.includes("server");if(Z$(d)&&n.trim())n=Y$(n);if(p&&n)try{await U(n,N,H)}catch(u){}if(!p){let u=n.replace(/^\s*const\s*\{[^}]+\}\s*=\s*window\.stx\s*;?\s*\n?/gm,""),a=d.replace(/\s*\bts\b/g,"").replace(/\s*\blang\s*=\s*["']?(ts|typescript)["']?/gi,"");E.push(`<script${a}>${u}</script>`)}}let S=L.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),k=S?S[1]:"",b=S?S[2]:"",P="",x=k&&/\bscoped\b/i.test(k);if(S)P=`<style${k}>${b}</style>`;let C=w;if(C=C.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),S)C=C.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");if(Y&&C.includes("{{ text || slot }}"))C=C.replace(/\{\{\s*text\s*\|\|\s*slot\s*\}\}/g,()=>Y);let{extractSlotContent:f,applySlots:g}=await Promise.resolve().then(() => (XX(),HB)),{defaultSlot:h,namedSlots:l}=f(Y);C=await g(C,h||Y,l,N);for(let[v,d]of Object.entries(N))if(typeof d==="string"){if(d.includes("<")&&d.includes(">")||d.includes("&lt;")||d.includes("&quot;")){let n=I9(d);N[v]=n}}let i=E.some((v)=>/\b(state|derived|effect)\s*\(/.test(v)),Y0={...G,componentsDir:X0.dirname(H),skipSignalsRuntime:!0,skipEventDirectives:i,defaultLayout:void 0};N.__stxProcessingDepth=(J.__stxProcessingDepth||0)+1;let W0=await Z0(C,N,H,Y0,W),D0=`stx_${j.replace(/[^a-zA-Z0-9]/g,"_")}_${++tA}_${Math.random().toString(36).slice(2,8)}`,M0=W0;if(i){let v="";if(Object.keys(Z).length>0)try{v=` data-stx-props="${eA(JSON.stringify(Z))}"`}catch{}if(M0=`<div data-stx-scope="${D0}"${v}>${W0}</div>`,M0=E.map((n)=>{let p=n.match(/<script([^>]*)>([\s\S]*)<\/script>/i);if(!p)return n;let[,m,u]=p,a=$$(u),r=`
@@ -10858,7 +10858,7 @@ ${G0.yellow}${G0.bold}Message:${G0.reset} ${Z}
10858
10858
  `,K)_+=`
10859
10859
  ${G0.blue}${G0.bold}Context:${G0.reset}
10860
10860
  ${G0.dim}${K}${G0.reset}
10861
- `;return _}function R$(){w7.clear()}function Yw(){return{size:w7.size,maxSize:500}}var w7,tA=0,G0;var q0=D(()=>{E2();d0();f$();U1();P$();a6();_B();L$();w7=new y2(500);G0={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",yellow:"\x1B[33m",blue:"\x1B[34m",cyan:"\x1B[36m",gray:"\x1B[90m",bgRed:"\x1B[41m",bgYellow:"\x1B[43m"}});function Xw($){E0=$}function Jw(){return E0}function Qw(){return{isMounted:!1,isUnmounted:!1,hooks:{beforeMount:[],mounted:[],beforeUpdate:[],updated:[],beforeUnmount:[],unmounted:[]},effects:[],scope:VB()}}function VB(){return{refs:new Map,effects:new Set,cleanups:[]}}function Gw($){let Z=new Set,Y=new Set,X=$,J=Symbol("ref"),Q={get value(){if(s0)Y.add(s0);return X},set value(G){if(!Object.is(G,X)){let K=X;X=G;for(let W of Z)W(G,K);for(let W of Y)W()}},subscribe(G){return Z.add(G),()=>{Z.delete(G)}}};if(E0)E0.scope.refs.set(J,Q);return Q}function NB($){let Z=FB.get($);if(Z)return Z;let Y=new Map,X=(G)=>{let K=Y.get(G);if(K)for(let W of[...K])W()},J=(G,K)=>{if(!Y.has(G))Y.set(G,new Set);return Y.get(G).add(K),()=>{Y.get(G)?.delete(K)}},Q=new Proxy($,{get(G,K,W){let U=Reflect.get(G,K,W);if(s0)J(K,s0);if(U!==null&&typeof U==="object"&&!Array.isArray(U)){let _=Object.getPrototypeOf(U);if(_===Object.prototype||_===null)return NB(U)}return U},set(G,K,W,U){let _=Reflect.get(G,K,U),B=Reflect.set(G,K,W,U);if(!Object.is(W,_))X(K);return B},deleteProperty(G,K){let W=Reflect.deleteProperty(G,K);return X(K),W}});return FB.set($,Q),Q}function Kw($){let Z,Y=!0,X=new Set,J=new Set,Q=()=>{Y=!0,G()},G=()=>{if(Y){let W=Z,U=s0;if(s0=Q,Z=$(),s0=U,Y=!1,!Object.is(Z,W)){for(let _ of X)_(Z,W);for(let _ of J)_()}}},K=s0;return s0=Q,Z=$(),Y=!1,s0=K,{get value(){if(s0)J.add(s0);return G(),Z},set value(W){console.warn("[stx] Computed properties are readonly")},subscribe(W){return X.add(W),()=>{X.delete(W)}}}}function Ww($,Z,Y={}){let{immediate:X=!1,deep:J=!1,flush:Q="post"}=Y,G,K,W=()=>{if(typeof $==="function")return $();return $.value},U=()=>{let B=W();if((J?JSON.stringify(B)!==JSON.stringify(G):!Object.is(B,G))||X)Z(B,G),G=J&&typeof B==="object"?JSON.parse(JSON.stringify(B)):B},_=(B)=>{if(Q==="sync")B();else if(Q==="pre")Promise.resolve().then(B);else requestAnimationFrame(()=>{requestAnimationFrame(B)})};if(typeof $==="function"){let B=setInterval(()=>{_(U)},16);K=()=>clearInterval(B)}else K=$.subscribe(()=>{_(U)});if(G=W(),X)_(U);if(E0)E0.scope.cleanups.push(()=>K?.());return()=>K?.()}function Uw($,Z,Y={}){let X=[],J=$.map((Q)=>Q.value);for(let Q of $){let G=Q.subscribe(()=>{let K=$.map((W)=>W.value);Z(K,J),J=[...K]});X.push(G)}if(Y.immediate){let Q=$.map((G)=>G.value);Z(Q,J)}return()=>{for(let Q of X)Q()}}function _w($){let Z,Y=!1,X=()=>{if(Y)return;if(Z)Z();let J=s0;s0=X,Z=$(),s0=J};if(X(),E0)E0.scope.cleanups.push(()=>{if(Y=!0,Z)Z()});return()=>{if(Y=!0,Z)Z()}}function Bw($){if(E0)E0.hooks.beforeMount.push($);else console.warn("[stx] onBeforeMount called outside of component setup")}function zw($){if(E0)E0.hooks.mounted.push($);else console.warn("[stx] onMounted called outside of component setup")}function qw($){if(E0)E0.hooks.beforeUpdate.push($);else console.warn("[stx] onBeforeUpdate called outside of component setup")}function jw($){if(E0)E0.hooks.updated.push($);else console.warn("[stx] onUpdated called outside of component setup")}function Hw($){if(E0)E0.hooks.beforeUnmount.push($);else console.warn("[stx] onBeforeUnmount called outside of component setup")}function Ow($){if(E0)E0.hooks.unmounted.push($);else console.warn("[stx] onUnmounted called outside of component setup")}async function i$($,Z){let Y=$.hooks[Z];for(let X of Y)await X()}async function Lw($){await i$($,"beforeMount"),$.isMounted=!0,await i$($,"mounted")}async function Fw($){if(!$.isMounted||$.isUnmounted)return;await i$($,"beforeUpdate"),await i$($,"updated")}async function Vw($){if($.isUnmounted)return;await i$($,"beforeUnmount");for(let Z of $.scope.cleanups)Z();$.isUnmounted=!0,await i$($,"unmounted")}function Nw(){return`
10861
+ `;return _}function R$(){w7.clear()}function Yw(){return{size:w7.size,maxSize:500}}var w7,tA=0,G0;var q0=D(()=>{E2();d0();f$();U1();P$();a4();_B();L$();w7=new y2(500);G0={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",yellow:"\x1B[33m",blue:"\x1B[34m",cyan:"\x1B[36m",gray:"\x1B[90m",bgRed:"\x1B[41m",bgYellow:"\x1B[43m"}});function Xw($){E0=$}function Jw(){return E0}function Qw(){return{isMounted:!1,isUnmounted:!1,hooks:{beforeMount:[],mounted:[],beforeUpdate:[],updated:[],beforeUnmount:[],unmounted:[]},effects:[],scope:VB()}}function VB(){return{refs:new Map,effects:new Set,cleanups:[]}}function Gw($){let Z=new Set,Y=new Set,X=$,J=Symbol("ref"),Q={get value(){if(s0)Y.add(s0);return X},set value(G){if(!Object.is(G,X)){let K=X;X=G;for(let W of Z)W(G,K);for(let W of Y)W()}},subscribe(G){return Z.add(G),()=>{Z.delete(G)}}};if(E0)E0.scope.refs.set(J,Q);return Q}function NB($){let Z=FB.get($);if(Z)return Z;let Y=new Map,X=(G)=>{let K=Y.get(G);if(K)for(let W of[...K])W()},J=(G,K)=>{if(!Y.has(G))Y.set(G,new Set);return Y.get(G).add(K),()=>{Y.get(G)?.delete(K)}},Q=new Proxy($,{get(G,K,W){let U=Reflect.get(G,K,W);if(s0)J(K,s0);if(U!==null&&typeof U==="object"&&!Array.isArray(U)){let _=Object.getPrototypeOf(U);if(_===Object.prototype||_===null)return NB(U)}return U},set(G,K,W,U){let _=Reflect.get(G,K,U),B=Reflect.set(G,K,W,U);if(!Object.is(W,_))X(K);return B},deleteProperty(G,K){let W=Reflect.deleteProperty(G,K);return X(K),W}});return FB.set($,Q),Q}function Kw($){let Z,Y=!0,X=new Set,J=new Set,Q=()=>{Y=!0,G()},G=()=>{if(Y){let W=Z,U=s0;if(s0=Q,Z=$(),s0=U,Y=!1,!Object.is(Z,W)){for(let _ of X)_(Z,W);for(let _ of J)_()}}},K=s0;return s0=Q,Z=$(),Y=!1,s0=K,{get value(){if(s0)J.add(s0);return G(),Z},set value(W){console.warn("[stx] Computed properties are readonly")},subscribe(W){return X.add(W),()=>{X.delete(W)}}}}function Ww($,Z,Y={}){let{immediate:X=!1,deep:J=!1,flush:Q="post"}=Y,G,K,W=()=>{if(typeof $==="function")return $();return $.value},U=()=>{let B=W();if((J?JSON.stringify(B)!==JSON.stringify(G):!Object.is(B,G))||X)Z(B,G),G=J&&typeof B==="object"?JSON.parse(JSON.stringify(B)):B},_=(B)=>{if(Q==="sync")B();else if(Q==="pre")Promise.resolve().then(B);else requestAnimationFrame(()=>{requestAnimationFrame(B)})};if(typeof $==="function"){let B=setInterval(()=>{_(U)},16);K=()=>clearInterval(B)}else K=$.subscribe(()=>{_(U)});if(G=W(),X)_(U);if(E0)E0.scope.cleanups.push(()=>K?.());return()=>K?.()}function Uw($,Z,Y={}){let X=[],J=$.map((Q)=>Q.value);for(let Q of $){let G=Q.subscribe(()=>{let K=$.map((W)=>W.value);Z(K,J),J=[...K]});X.push(G)}if(Y.immediate){let Q=$.map((G)=>G.value);Z(Q,J)}return()=>{for(let Q of X)Q()}}function _w($){let Z,Y=!1,X=()=>{if(Y)return;if(Z)Z();let J=s0;s0=X,Z=$(),s0=J};if(X(),E0)E0.scope.cleanups.push(()=>{if(Y=!0,Z)Z()});return()=>{if(Y=!0,Z)Z()}}function Bw($){if(E0)E0.hooks.beforeMount.push($);else console.warn("[stx] onBeforeMount called outside of component setup")}function zw($){if(E0)E0.hooks.mounted.push($);else console.warn("[stx] onMounted called outside of component setup")}function qw($){if(E0)E0.hooks.beforeUpdate.push($);else console.warn("[stx] onBeforeUpdate called outside of component setup")}function jw($){if(E0)E0.hooks.updated.push($);else console.warn("[stx] onUpdated called outside of component setup")}function Hw($){if(E0)E0.hooks.beforeUnmount.push($);else console.warn("[stx] onBeforeUnmount called outside of component setup")}function Ow($){if(E0)E0.hooks.unmounted.push($);else console.warn("[stx] onUnmounted called outside of component setup")}async function i$($,Z){let Y=$.hooks[Z];for(let X of Y)await X()}async function Lw($){await i$($,"beforeMount"),$.isMounted=!0,await i$($,"mounted")}async function Fw($){if(!$.isMounted||$.isUnmounted)return;await i$($,"beforeUpdate"),await i$($,"updated")}async function Vw($){if($.isUnmounted)return;await i$($,"beforeUnmount");for(let Z of $.scope.cleanups)Z();$.isUnmounted=!0,await i$($,"unmounted")}function Nw(){return`
10862
10862
  <script data-stx-client-runtime>
10863
10863
  (function() {
10864
10864
  'use strict';
@@ -11035,10 +11035,10 @@ ${G0.dim}${K}${G0.reset}
11035
11035
  };
11036
11036
  window.provide = provide;
11037
11037
  })();
11038
- </script>`}var E0=null,s0=null,FB;var AB=D(()=>{FB=new WeakMap});import{abortNavigation as Aw,clearMiddleware as R7,createClientCookieManager as ww,createMiddlewareContext as M7,createRouteLocation as T7,createServerCookieManager as Rw,createStorageManager as Mw,defineMiddleware as Tw,getMiddleware as Ew,getMiddlewareNames as E7,hasMiddleware as Iw,loadMiddlewareFromDirectory as I7,navigateTo as Dw,registerMiddleware as kw,runMiddleware as D7}from"stx-router";var I4=()=>{};function Z2($,Z){if(typeof window>"u")return Z;return window[$]??Z}function D4($,Z){if(typeof window>"u")return;window[$]=Z}function wB($){let Y=Z2("__STX_STORES__",{})[$];if(!Y)throw Error(`Store "${$}" not found. Make sure it's defined with defineStore().`);return Y}function Sw($){return wB($)}function bw($,Z=5000){return new Promise((Y,X)=>{let J=Date.now(),Q=()=>{let G=wB($);if(G)Y(G);else if(Date.now()-J>Z)X(Error(`Timeout waiting for store "${$}"`));else requestAnimationFrame(Q)};Q()})}function RB(){return Z2("__STX_ROUTE_PARAMS__",{})}function MB($){return RB()[$]}function Cw($){let Z=MB($);if(Z===void 0)throw Error(`Route parameter "${$}" not found`);return Z}function TB(){return Z2("__STX_MIDDLEWARE_STATE__",{})}function yw($){return TB()[$]}function Pw(){if(typeof window>"u")return;if(!Z2("__STX_STORES__",null))D4("__STX_STORES__",{})}function xw($,Z){let Y=Z2("__STX_STORES__",{});Y[$]=Z,D4("__STX_STORES__",Y)}function vw(){return Z2("__STX_STORE_STATE__",null)}function fw($){D4("__STX_ROUTE_PARAMS__",$)}function gw($){D4("__STX_MIDDLEWARE_STATE__",$)}function EB(){return typeof window>"u"}function IB(){return typeof window<"u"}function hw($){if(IB())$()}function dw($){if(EB())$()}async function kB($){try{let Z=await Bun.file($).text(),Y=mw(Z),X=uw(Z,$),J=pw(Z,Y),Q=cw(Z,Y);return{file:$,metrics:Y,issues:X,suggestions:J,performance:Q}}catch(Z){throw Error(`Failed to analyze template ${$}: ${Z instanceof Error?Z.message:String(Z)}`)}}function mw($){let Z=$.split(`
11038
+ </script>`}var E0=null,s0=null,FB;var AB=D(()=>{FB=new WeakMap});import{abortNavigation as Aw,clearMiddleware as R7,createClientCookieManager as ww,createMiddlewareContext as M7,createRouteLocation as T7,createServerCookieManager as Rw,createStorageManager as Mw,defineMiddleware as Tw,getMiddleware as Ew,getMiddlewareNames as E7,hasMiddleware as Iw,loadMiddlewareFromDirectory as I7,navigateTo as Dw,registerMiddleware as kw,runMiddleware as D7}from"stx-router";var I6=()=>{};function Z2($,Z){if(typeof window>"u")return Z;return window[$]??Z}function D6($,Z){if(typeof window>"u")return;window[$]=Z}function wB($){let Y=Z2("__STX_STORES__",{})[$];if(!Y)throw Error(`Store "${$}" not found. Make sure it's defined with defineStore().`);return Y}function Sw($){return wB($)}function bw($,Z=5000){return new Promise((Y,X)=>{let J=Date.now(),Q=()=>{let G=wB($);if(G)Y(G);else if(Date.now()-J>Z)X(Error(`Timeout waiting for store "${$}"`));else requestAnimationFrame(Q)};Q()})}function RB(){return Z2("__STX_ROUTE_PARAMS__",{})}function MB($){return RB()[$]}function Cw($){let Z=MB($);if(Z===void 0)throw Error(`Route parameter "${$}" not found`);return Z}function TB(){return Z2("__STX_MIDDLEWARE_STATE__",{})}function yw($){return TB()[$]}function Pw(){if(typeof window>"u")return;if(!Z2("__STX_STORES__",null))D6("__STX_STORES__",{})}function xw($,Z){let Y=Z2("__STX_STORES__",{});Y[$]=Z,D6("__STX_STORES__",Y)}function vw(){return Z2("__STX_STORE_STATE__",null)}function fw($){D6("__STX_ROUTE_PARAMS__",$)}function gw($){D6("__STX_MIDDLEWARE_STATE__",$)}function EB(){return typeof window>"u"}function IB(){return typeof window<"u"}function hw($){if(IB())$()}function dw($){if(EB())$()}async function kB($){try{let Z=await Bun.file($).text(),Y=mw(Z),X=uw(Z,$),J=pw(Z,Y),Q=cw(Z,Y);return{file:$,metrics:Y,issues:X,suggestions:J,performance:Q}}catch(Z){throw Error(`Failed to analyze template ${$}: ${Z instanceof Error?Z.message:String(Z)}`)}}function mw($){let Z=$.split(`
11039
11039
  `),Y=$.match(/<script\b[^>]*>([\s\S]*?)<\/script>/i),J=(Y?Y[1]:"").split(`
11040
11040
  `).length,Q={conditionals:($.match(/@(if|unless|elseif|else|endif|endunless)\b/g)||[]).length,loops:($.match(/@(foreach|for|endforeach|endfor|while|endwhile)\b/g)||[]).length,includes:($.match(/@(include|component|extends|section|yield)\b/g)||[]).length,custom:0,total:0};Q.total=Q.conditionals+Q.loops+Q.includes+Q.custom;let G=($.match(/\{\{[\s\S]*?\}\}/g)||[]).length,K=($.match(/\{!![\s\S]*?!!\}/g)||[]).length,W=($.match(/@(?:if|unless|elseif|foreach|for|while)\s*\([^)]+\)/g)||[]).length,U=G+K+W,_=($.match(/<[A-Z][^>]*>/g)||[]).length,B=($.match(/@(?:layout|extends)\(/g)||[]).length,z=0,q=0;for(let O of Z)if(/@(?:if|unless|foreach|for|while|section)\b/.test(O)&&!/@end/.test(O)&&!/@else/.test(O))q++,z=Math.max(z,q);else if(/@end(?:if|unless|foreach|for|while|section)\b/.test(O))q--;let j=z>=4?3:0,H=Math.min(10,Math.ceil(Q.total*0.5+U*0.1+_*0.3+(J>10?J*0.05:0)+j));return{lines:Z.length,characters:$.length,directives:Q,expressions:U,components:_,layouts:B,scriptLines:J,complexity:H}}function uw($,Z){let Y=[],X=DB($,"if","endif");if(X>0)Y.push({type:"error",category:"syntax",message:`Found ${X} unmatched @if directive(s)`,suggestion:"Ensure every @if has a corresponding @endif"});let J=DB($,"foreach","endforeach");if(J>0)Y.push({type:"error",category:"syntax",message:`Found ${J} unmatched @foreach directive(s)`,suggestion:"Ensure every @foreach has a corresponding @endforeach"});let Q=$.match(/@foreach[\s\S]*?@foreach[\s\S]*?@endforeach[\s\S]*?@endforeach/g);if(Q&&Q.length>0)Y.push({type:"warning",category:"performance",message:"Nested loops detected which may impact performance",suggestion:"Consider preprocessing data or using more efficient data structures"});let G=($.match(/\{!![\s\S]*?!!\}/g)||[]).length;if(G>0)Y.push({type:"warning",category:"security",message:`Found ${G} raw output expression(s) {!! !!}`,suggestion:"Ensure raw outputs are properly sanitized to prevent XSS"});let K=$.match(/<img[^>]*>/g);if(K){let _=K.filter((B)=>!B.includes("alt="));if(_.length>0)Y.push({type:"warning",category:"accessibility",message:`Found ${_.length} image(s) without alt attributes`,suggestion:"Add alt attributes to all images for screen reader accessibility"})}let W=$.split(`
11041
- `).filter((_)=>_.length>120);if(W.length>0)Y.push({type:"info",category:"maintainability",message:`Found ${W.length} line(s) longer than 120 characters`,suggestion:"Consider breaking long lines for better readability"});let U=($.match(/style\s*=\s*["'][^"']*["']/g)||[]).length;if(U>3)Y.push({type:"info",category:"maintainability",message:`Found ${U} inline style attributes`,suggestion:"Consider moving styles to CSS classes for better maintainability"});return Y}function pw($,Z){let Y=[];if(Z.complexity>7)Y.push({type:"refactor",message:"Template complexity is high. Consider breaking into smaller components.",impact:"high",effort:"medium"});else if(Z.complexity>5&&Z.directives.total>8)Y.push({type:"optimization",message:"Template has moderate complexity. Consider component extraction for reusability.",impact:"medium",effort:"low"});if(Z.lines>100&&Z.components===0)Y.push({type:"refactor",message:"Large template with no components. Consider extracting reusable parts into components.",impact:"medium",effort:"medium"});if(Z.expressions>20)Y.push({type:"optimization",message:"Many template expressions detected. Consider preprocessing some data in the script section.",impact:"medium",effort:"low"});let X=$.match(/@foreach[\s\S]*?@foreach[\s\S]*?@endforeach[\s\S]*?@endforeach/g);if(X&&X.length>0)Y.push({type:"optimization",message:"Nested loops detected. Consider preprocessing data or optimizing data structures.",impact:"high",effort:"medium"});if(Z.directives.total===0&&Z.expressions<5)Y.push({type:"optimization",message:"Template appears static. Consider enabling aggressive caching.",impact:"high",effort:"low"});if(Z.scriptLines>50)Y.push({type:"refactor",message:"Large script section. Consider moving complex logic to external modules.",impact:"medium",effort:"medium"});return Y}function cw($,Z){let Y=1;if(Y+=Z.directives.conditionals*0.1,Y+=Z.directives.loops*0.5,Y+=Z.directives.includes*2,Y+=Z.expressions*0.05,Y+=Z.components*1,Z.scriptLines>10)Y+=Z.scriptLines*0.1;let X;if(Z.expressions===0&&Z.directives.total===0)X="high";else if(Z.expressions<5&&Z.directives.total<3)X="medium";else X="low";let J=[];if(Y>10)J.push("Consider optimizing template complexity");if(X==="low"&&Z.directives.total>5)J.push("Reduce dynamic content for better caching");if(Z.components===0&&Z.lines>40)J.push("Extract components to improve reusability and performance");return{estimatedRenderTime:Math.round(Y*100)/100,complexityScore:Z.complexity,cacheability:X,recommendations:J}}function DB($,Z,Y){let X=$.replace(/<!--[\s\S]*?-->/g,""),J=(X.match(new RegExp(`@${Z}\\b`,"g"))||[]).length,Q=(X.match(new RegExp(`@${Y}\\b`,"g"))||[]).length;return Math.abs(J-Q)}async function lw($=["**/*.stx"],Z){let Y=[],X=[];for(let Q of $){let G=await Array.fromAsync(new Bun.Glob(Q).scan({cwd:Z||process.cwd(),onlyFiles:!0,absolute:!0}));X.push(...G.filter((K)=>K.endsWith(".stx")))}for(let Q of X)try{let G=await kB(Q);Y.push(G)}catch(G){console.warn(`Failed to analyze ${Q}:`,G)}let J=iw(Y);return{results:Y,summary:J}}function iw($){let Z=$.length,Y=$.reduce((U,_)=>U+_.metrics.lines,0),X=Z>0?$.reduce((U,_)=>U+_.metrics.complexity,0)/Z:0,J=$.reduce((U,_)=>U+_.issues.length,0),Q={};$.forEach((U)=>{U.issues.forEach((_)=>{Q[_.category]=(Q[_.category]||0)+1})});let G=Z>0?$.reduce((U,_)=>U+_.performance.estimatedRenderTime,0)/Z:0,K=Math.max(1,Math.min(10,Math.round(10-G/2-X/2))),W=[];if(X>6)W.push("Project has high average complexity. Consider refactoring complex templates.");if(J>Z*2)W.push("High number of issues detected. Run detailed analysis on individual files.");if(Q.security>0)W.push("Security issues found. Review raw output usage and input sanitization.");return{totalFiles:Z,totalLines:Y,avgComplexity:Math.round(X*100)/100,totalIssues:J,issuesByCategory:Q,performanceScore:K,recommendations:W}}function SB($,Z,Y){let X={fullTag:Y,content:Z,attrs:$};if(/\bserver\b/.test($))return{...X,type:"server"};if(/\bdata-stx-scoped\b/.test($))return{...X,type:"client"};if(nw.test(Z))return{...X,type:"signals"};if(/\bclient\b/.test($)||/\btype\s*=\s*["']module["']/.test($)||/\bsrc\s*=/.test($))return{...X,type:"client"};return{...X,type:"server"}}function QX($){let Z=[],Y=[],X=[],J=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,Q;while((Q=J.exec($))!==null){let G=SB(Q[1],Q[2],Q[0]);switch(G.type){case"signals":Z.push(G);break;case"client":Y.push(G);break;case"server":X.push(G);break}}return{signals:Z,client:Y,server:X}}var nw;var GX=D(()=>{nw=/\b(?:state|derived|effect|batch|ref|reactive|computed|watch|watchEffect)\s*(?:<[^>]*>)?\s*\(/});import bB from"fs";import KX from"path";function sw(){if(k7!==null)return k7;try{let{getRouterScript:$}=K0("stx-router");k7=`<script>${$()}</script>`}catch{k7=""}return k7}function WX($,Z){if(Z===!1)return null;if(Z&&typeof Z==="string"){let X=KX.resolve($,Z);if(bB.existsSync(X))return X;return null}let Y=KX.join($,"app.stx");if(bB.existsSync(Y))return Y;return null}async function k4($,Z){try{let Y=await Bun.file($).text(),X=Y,J=Y.match(/<template\b[^>]*>([\s\S]*?)<\/template>/i);if(J)X=J[1].trim();let Q=QX(Y),G=[...Q.client.map((A)=>A.fullTag),...Q.signals.map((A)=>A.fullTag)],K=[],W=/<style\b[^>]*>([\s\S]*?)<\/style>/gi,U;while((U=W.exec(Y))!==null)K.push(U[0]);let _=X;for(let A of Q.server)_=_.replace(A.fullTag,"");for(let A of Q.client)_=_.replace(A.fullTag,"");_=_.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");let B="<!--__STX_PAGE_SLOT__-->";if(_=_.replace(/<slot\s*\/>/gi,B).replace(/<slot\s*>\s*<\/slot>/gi,B),!_.includes(B))return console.warn(`[stx] Shell ${$} has no <slot /> \u2014 pages won't be injected`),null;let{processDirectives:z,extractVariables:q,defaultConfig:j,loadStxConfig:H}=await Promise.resolve().then(() => (M$(),s$)),O=await H(),F={__filename:$,__dirname:KX.dirname($)};for(let A of G){let N=A.match(/<script\b[^>]*>([\s\S]*?)<\/script>/i);if(N&&!A.includes("client")&&!A.includes('type="module"'))await q(N[1],F,$)}let L=await z(_,F,$,{...j,...O,...Z},new Set),V=L.indexOf(B);if(V===-1)return console.warn("[stx] Shell slot placeholder lost during processing"),null;return{beforeSlot:L.substring(0,V),afterSlot:L.substring(V+B.length),filePath:$,shellScripts:G,shellStyles:K}}catch(Y){return console.error(`[stx] Error processing shell ${$}:`,Y),null}}function S7($,Z,Y){let X=Y||"stx App",J=sw(),Q="<script>window.__stxRouterConfig={container:'[data-stx-content]'};</script>";return`<!DOCTYPE html>
11041
+ `).filter((_)=>_.length>120);if(W.length>0)Y.push({type:"info",category:"maintainability",message:`Found ${W.length} line(s) longer than 120 characters`,suggestion:"Consider breaking long lines for better readability"});let U=($.match(/style\s*=\s*["'][^"']*["']/g)||[]).length;if(U>3)Y.push({type:"info",category:"maintainability",message:`Found ${U} inline style attributes`,suggestion:"Consider moving styles to CSS classes for better maintainability"});return Y}function pw($,Z){let Y=[];if(Z.complexity>7)Y.push({type:"refactor",message:"Template complexity is high. Consider breaking into smaller components.",impact:"high",effort:"medium"});else if(Z.complexity>5&&Z.directives.total>8)Y.push({type:"optimization",message:"Template has moderate complexity. Consider component extraction for reusability.",impact:"medium",effort:"low"});if(Z.lines>100&&Z.components===0)Y.push({type:"refactor",message:"Large template with no components. Consider extracting reusable parts into components.",impact:"medium",effort:"medium"});if(Z.expressions>20)Y.push({type:"optimization",message:"Many template expressions detected. Consider preprocessing some data in the script section.",impact:"medium",effort:"low"});let X=$.match(/@foreach[\s\S]*?@foreach[\s\S]*?@endforeach[\s\S]*?@endforeach/g);if(X&&X.length>0)Y.push({type:"optimization",message:"Nested loops detected. Consider preprocessing data or optimizing data structures.",impact:"high",effort:"medium"});if(Z.directives.total===0&&Z.expressions<5)Y.push({type:"optimization",message:"Template appears static. Consider enabling aggressive caching.",impact:"high",effort:"low"});if(Z.scriptLines>50)Y.push({type:"refactor",message:"Large script section. Consider moving complex logic to external modules.",impact:"medium",effort:"medium"});return Y}function cw($,Z){let Y=1;if(Y+=Z.directives.conditionals*0.1,Y+=Z.directives.loops*0.5,Y+=Z.directives.includes*2,Y+=Z.expressions*0.05,Y+=Z.components*1,Z.scriptLines>10)Y+=Z.scriptLines*0.1;let X;if(Z.expressions===0&&Z.directives.total===0)X="high";else if(Z.expressions<5&&Z.directives.total<3)X="medium";else X="low";let J=[];if(Y>10)J.push("Consider optimizing template complexity");if(X==="low"&&Z.directives.total>5)J.push("Reduce dynamic content for better caching");if(Z.components===0&&Z.lines>40)J.push("Extract components to improve reusability and performance");return{estimatedRenderTime:Math.round(Y*100)/100,complexityScore:Z.complexity,cacheability:X,recommendations:J}}function DB($,Z,Y){let X=$.replace(/<!--[\s\S]*?-->/g,""),J=(X.match(new RegExp(`@${Z}\\b`,"g"))||[]).length,Q=(X.match(new RegExp(`@${Y}\\b`,"g"))||[]).length;return Math.abs(J-Q)}async function lw($=["**/*.stx"],Z){let Y=[],X=[];for(let Q of $){let G=await Array.fromAsync(new Bun.Glob(Q).scan({cwd:Z||process.cwd(),onlyFiles:!0,absolute:!0}));X.push(...G.filter((K)=>K.endsWith(".stx")))}for(let Q of X)try{let G=await kB(Q);Y.push(G)}catch(G){console.warn(`Failed to analyze ${Q}:`,G)}let J=iw(Y);return{results:Y,summary:J}}function iw($){let Z=$.length,Y=$.reduce((U,_)=>U+_.metrics.lines,0),X=Z>0?$.reduce((U,_)=>U+_.metrics.complexity,0)/Z:0,J=$.reduce((U,_)=>U+_.issues.length,0),Q={};$.forEach((U)=>{U.issues.forEach((_)=>{Q[_.category]=(Q[_.category]||0)+1})});let G=Z>0?$.reduce((U,_)=>U+_.performance.estimatedRenderTime,0)/Z:0,K=Math.max(1,Math.min(10,Math.round(10-G/2-X/2))),W=[];if(X>6)W.push("Project has high average complexity. Consider refactoring complex templates.");if(J>Z*2)W.push("High number of issues detected. Run detailed analysis on individual files.");if(Q.security>0)W.push("Security issues found. Review raw output usage and input sanitization.");return{totalFiles:Z,totalLines:Y,avgComplexity:Math.round(X*100)/100,totalIssues:J,issuesByCategory:Q,performanceScore:K,recommendations:W}}function SB($,Z,Y){let X={fullTag:Y,content:Z,attrs:$};if(/\bserver\b/.test($))return{...X,type:"server"};if(/\bdata-stx-scoped\b/.test($))return{...X,type:"client"};if(nw.test(Z))return{...X,type:"signals"};if(/\bclient\b/.test($)||/\btype\s*=\s*["']module["']/.test($)||/\bsrc\s*=/.test($))return{...X,type:"client"};return{...X,type:"server"}}function QX($){let Z=[],Y=[],X=[],J=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,Q;while((Q=J.exec($))!==null){let G=SB(Q[1],Q[2],Q[0]);switch(G.type){case"signals":Z.push(G);break;case"client":Y.push(G);break;case"server":X.push(G);break}}return{signals:Z,client:Y,server:X}}var nw;var GX=D(()=>{nw=/\b(?:state|derived|effect|batch|ref|reactive|computed|watch|watchEffect)\s*(?:<[^>]*>)?\s*\(/});import bB from"fs";import KX from"path";function sw(){if(k7!==null)return k7;try{let{getRouterScript:$}=K0("stx-router");k7=`<script>${$()}</script>`}catch{k7=""}return k7}function WX($,Z){if(Z===!1)return null;if(Z&&typeof Z==="string"){let X=KX.resolve($,Z);if(bB.existsSync(X))return X;return null}let Y=KX.join($,"app.stx");if(bB.existsSync(Y))return Y;return null}async function k6($,Z){try{let Y=await Bun.file($).text(),X=Y,J=Y.match(/<template\b[^>]*>([\s\S]*?)<\/template>/i);if(J)X=J[1].trim();let Q=QX(Y),G=[...Q.client.map((A)=>A.fullTag),...Q.signals.map((A)=>A.fullTag)],K=[],W=/<style\b[^>]*>([\s\S]*?)<\/style>/gi,U;while((U=W.exec(Y))!==null)K.push(U[0]);let _=X;for(let A of Q.server)_=_.replace(A.fullTag,"");for(let A of Q.client)_=_.replace(A.fullTag,"");_=_.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");let B="<!--__STX_PAGE_SLOT__-->";if(_=_.replace(/<slot\s*\/>/gi,B).replace(/<slot\s*>\s*<\/slot>/gi,B),!_.includes(B))return console.warn(`[stx] Shell ${$} has no <slot /> \u2014 pages won't be injected`),null;let{processDirectives:z,extractVariables:q,defaultConfig:j,loadStxConfig:H}=await Promise.resolve().then(() => (M$(),s$)),O=await H(),F={__filename:$,__dirname:KX.dirname($)};for(let A of G){let N=A.match(/<script\b[^>]*>([\s\S]*?)<\/script>/i);if(N&&!A.includes("client")&&!A.includes('type="module"'))await q(N[1],F,$)}let L=await z(_,F,$,{...j,...O,...Z},new Set),V=L.indexOf(B);if(V===-1)return console.warn("[stx] Shell slot placeholder lost during processing"),null;return{beforeSlot:L.substring(0,V),afterSlot:L.substring(V+B.length),filePath:$,shellScripts:G,shellStyles:K}}catch(Y){return console.error(`[stx] Error processing shell ${$}:`,Y),null}}function S7($,Z,Y){let X=Y||"stx App",J=sw(),Q="<script>window.__stxRouterConfig={container:'[data-stx-content]'};</script>";return`<!DOCTYPE html>
11042
11042
  <html lang="en">
11043
11043
  <head>
11044
11044
  <meta charset="UTF-8">
@@ -11062,7 +11062,7 @@ ${J}
11062
11062
  `));return G=G.replace(/<body\b[^>]*>/i,""),G=G.replace(/<\/body\s*>/i,""),G.trim()}function UX($){return $.headers.get("X-STX-Router")==="true"}function b7($,Z="main"){let Y=$.trim(),X=[],J=Y.match(/<head\b[^>]*>([\s\S]*?)<\/head>/i);if(J){let L=J[1],V=/<style\b[^>]*>[\s\S]*?<\/style>/gi,A;while((A=V.exec(L))!==null)X.push(A[0])}let Q=Z.replace(/^[.#]/,"").toLowerCase(),G=new RegExp(`<${Q}\\b[^>]*>`,"i"),K=Y.match(G);if(!K||K.index===void 0)return n$($);let W=K.index+K[0].length,U=new RegExp(`<${Q}\\b[^>]*>`,"gi"),_=new RegExp(`</${Q}\\s*>`,"gi");U.lastIndex=W,_.lastIndex=W;let B=1,z=-1;while(B>0){let L=U.exec(Y),V=_.exec(Y);if(!V)break;if(L&&L.index<V.index)B++,_.lastIndex=L.index+L[0].length;else if(B--,z=V.index,B>0)U.lastIndex=V.index+V[0].length}if(z===-1)return n$($);let q=Y.slice(W,z).trim(),j=[],H=Y.match(/<body\b[^>]*>/i),O=Y.lastIndexOf("</body>");if(H&&H.index!==void 0&&O!==-1){let V=[[H.index+H[0].length,K.index],[z+`</${Q}>`.length,O]],A=/<script\b[^>]*>[\s\S]*?<\/script>/gi;for(let[N,w]of V){if(N>=w)continue;let M=Y.slice(N,w),T;A.lastIndex=0;while((T=A.exec(M))!==null)j.push(T[0])}}let F=[];if(X.length>0)F.push(X.join(`
11063
11063
  `));if(j.length>0)F.push(j.join(`
11064
11064
  `));return F.push(q),F.join(`
11065
- `)}var k7=null;var C7=D(()=>{GX()});import{matchRoute as rw,Router as ow}from"stx-router";import{findErrorPage as _X,formatRoutes as BX,generateRouteManifest as tw,generateRouteTypes as ew,matchRoute as S4}from"stx-router";function n1($,Z={}){return new ow($,Z).routes}function aw($,Z){let Y=rw($,Z);return Y?Y.params:null}var y7=()=>{};var dB={};Q0(dB,{generateStaticSite:()=>xB,defineStaticPaths:()=>gB,default:()=>BR,createMarkdownLoader:()=>hB,createISRHandler:()=>fB});import x0 from"fs";import O0 from"path";class CB{cacheDir;cache=new Map;loaded=!1;constructor($){this.cacheDir=$}async load(){if(this.loaded)return;let $=O0.join(this.cacheDir,"build-cache.json");if(await Bun.file($).exists())try{let Z=JSON.parse(await Bun.file($).text());for(let[Y,X]of Object.entries(Z))this.cache.set(Y,X)}catch{}this.loaded=!0}async save(){await x0.promises.mkdir(this.cacheDir,{recursive:!0});let $=O0.join(this.cacheDir,"build-cache.json"),Z={};for(let[Y,X]of this.cache)Z[Y]=X;await Bun.write($,JSON.stringify(Z))}getHash($,Z){let Y=x0.statSync($),X=`${$}:${Y.mtimeMs}`;for(let Q of Z)if(x0.existsSync(Q)){let G=x0.statSync(Q);X+=`:${Q}:${G.mtimeMs}`}let J=0;for(let Q=0;Q<X.length;Q++){let G=X.charCodeAt(Q);J=(J<<5)-J+G,J=J&J}return Math.abs(J).toString(36)}get($,Z,Y){let X=this.cache.get($);if(!X)return null;let J=this.getHash(Z,Y);if(X.hash!==J)return this.cache.delete($),null;return X.html}set($,Z,Y,X){let J=this.getHash(Z,Y);this.cache.set($,{hash:J,html:X,generatedAt:Date.now(),dependencies:Y})}}class yB{cacheDir;constructor($){this.cacheDir=$}getFilePath($){let Z=$.replace(/[^a-zA-Z0-9]/g,"_")+".json";return O0.join(this.cacheDir,"isr",Z)}async get($){let Z=this.getFilePath($);if(!await Bun.file(Z).exists())return null;try{return JSON.parse(await Bun.file(Z).text())}catch{return null}}async set($,Z){let Y=this.getFilePath($);await x0.promises.mkdir(O0.dirname(Y),{recursive:!0}),await Bun.write(Y,JSON.stringify(Z))}async invalidate($){let Z=this.getFilePath($);if(await Bun.file(Z).exists())await x0.promises.unlink(Z)}async invalidatePattern($){let Z=O0.join(this.cacheDir,"isr");if(!x0.existsSync(Z))return;let Y=await x0.promises.readdir(Z);for(let X of Y){let J=X.replace(/_/g,"/").replace(".json","");if($.test(J))await x0.promises.unlink(O0.join(Z,X))}}async needsRevalidation($){let Z=await this.get($);if(!Z)return!0;return Date.now()>Z.revalidateAfter}}async function $R($){try{let Y=(await Bun.file($).text()).match(/<script\s+server\b[^>]*>([\s\S]*?)<\/script>/i);if(!Y)return null;let X=Y[1];if(!X.includes("getStaticPaths"))return null;let J=X.match(/(?:export\s+)?(?:async\s+)?function\s+getStaticPaths\s*\([^)]*\)\s*\{([\s\S]*?)\n[\t ]*\}/);if(!J)return null;return await Function(`
11065
+ `)}var k7=null;var C7=D(()=>{GX()});import{matchRoute as rw,Router as ow}from"stx-router";import{findErrorPage as _X,formatRoutes as BX,generateRouteManifest as tw,generateRouteTypes as ew,matchRoute as S6}from"stx-router";function n1($,Z={}){return new ow($,Z).routes}function aw($,Z){let Y=rw($,Z);return Y?Y.params:null}var y7=()=>{};var dB={};Q0(dB,{generateStaticSite:()=>xB,defineStaticPaths:()=>gB,default:()=>BR,createMarkdownLoader:()=>hB,createISRHandler:()=>fB});import x0 from"fs";import O0 from"path";class CB{cacheDir;cache=new Map;loaded=!1;constructor($){this.cacheDir=$}async load(){if(this.loaded)return;let $=O0.join(this.cacheDir,"build-cache.json");if(await Bun.file($).exists())try{let Z=JSON.parse(await Bun.file($).text());for(let[Y,X]of Object.entries(Z))this.cache.set(Y,X)}catch{}this.loaded=!0}async save(){await x0.promises.mkdir(this.cacheDir,{recursive:!0});let $=O0.join(this.cacheDir,"build-cache.json"),Z={};for(let[Y,X]of this.cache)Z[Y]=X;await Bun.write($,JSON.stringify(Z))}getHash($,Z){let Y=x0.statSync($),X=`${$}:${Y.mtimeMs}`;for(let Q of Z)if(x0.existsSync(Q)){let G=x0.statSync(Q);X+=`:${Q}:${G.mtimeMs}`}let J=0;for(let Q=0;Q<X.length;Q++){let G=X.charCodeAt(Q);J=(J<<5)-J+G,J=J&J}return Math.abs(J).toString(36)}get($,Z,Y){let X=this.cache.get($);if(!X)return null;let J=this.getHash(Z,Y);if(X.hash!==J)return this.cache.delete($),null;return X.html}set($,Z,Y,X){let J=this.getHash(Z,Y);this.cache.set($,{hash:J,html:X,generatedAt:Date.now(),dependencies:Y})}}class yB{cacheDir;constructor($){this.cacheDir=$}getFilePath($){let Z=$.replace(/[^a-zA-Z0-9]/g,"_")+".json";return O0.join(this.cacheDir,"isr",Z)}async get($){let Z=this.getFilePath($);if(!await Bun.file(Z).exists())return null;try{return JSON.parse(await Bun.file(Z).text())}catch{return null}}async set($,Z){let Y=this.getFilePath($);await x0.promises.mkdir(O0.dirname(Y),{recursive:!0}),await Bun.write(Y,JSON.stringify(Z))}async invalidate($){let Z=this.getFilePath($);if(await Bun.file(Z).exists())await x0.promises.unlink(Z)}async invalidatePattern($){let Z=O0.join(this.cacheDir,"isr");if(!x0.existsSync(Z))return;let Y=await x0.promises.readdir(Z);for(let X of Y){let J=X.replace(/_/g,"/").replace(".json","");if($.test(J))await x0.promises.unlink(O0.join(Z,X))}}async needsRevalidation($){let Z=await this.get($);if(!Z)return!0;return Date.now()>Z.revalidateAfter}}async function $R($){try{let Y=(await Bun.file($).text()).match(/<script\s+server\b[^>]*>([\s\S]*?)<\/script>/i);if(!Y)return null;let X=Y[1];if(!X.includes("getStaticPaths"))return null;let J=X.match(/(?:export\s+)?(?:async\s+)?function\s+getStaticPaths\s*\([^)]*\)\s*\{([\s\S]*?)\n[\t ]*\}/);if(!J)return null;return await Function(`
11066
11066
  return (async function getStaticPaths() {
11067
11067
  ${J[1]}
11068
11068
  })()
@@ -11102,7 +11102,7 @@ ${$.map((X)=>{let J=new URL(X.loc,Z).href,Q=` <url>
11102
11102
  ${Y.join(`
11103
11103
  `)}
11104
11104
  </channel>
11105
- </rss>`}async function xB($={}){let Z=Date.now(),Y=await S0(),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},J={totalPages:0,successCount:0,failedCount:0,cachedCount:0,buildTime:0,pages:[],errors:[]};await X.hooks.onBuildStart?.();try{if(X.cleanOutput&&x0.existsSync(X.outputDir))await x0.promises.rm(X.outputDir,{recursive:!0});await x0.promises.mkdir(X.outputDir,{recursive:!0});let Q=new CB(X.cacheDir);if(X.cache)await Q.load();try{let{preloadIconCollection:j}=await Promise.resolve().then(() => (F4(),EU));await j("lucide")}catch{}try{let{generateCrosswindCSS:j}=await Promise.resolve().then(() => (E1(),N6));await j('<div class="bg-black"></div>')}catch{}R7();let G=Y?.routeMiddleware?.dir||"middleware";await I7(process.cwd(),G);let K=E7();if(K.length>0)console.log(`Loaded ${K.length} middleware: ${K.join(", ")}`);let W=Y?.routeMiddleware?.global||[],U=n1(".",{pagesDir:X.pagesDir});console.log(`Found ${U.length} routes`);let _=[];for(let j of U){let H=await ZR(j);for(let O of H)_.push({route:j,url:O.url,params:O.params,props:O.props,revalidate:O.revalidate??X.revalidate})}J.totalPages=_.length,console.log(`Generating ${J.totalPages} pages...`);let B=[],z=[];for(let j=0;j<_.length;j+=X.concurrency)z.push(_.slice(j,j+X.concurrency));for(let j of z)await Promise.all(j.map(async(H)=>{let{route:O,url:F,params:L,props:V,revalidate:A}=H;try{await X.hooks.onPageStart?.(F);let N=await Bun.file(O.filePath).text(),w=WR(N),M=w?.middleware?Array.isArray(w.middleware)?w.middleware:[w.middleware]:[],T=[...W,...M];if(T.length>0){let P=T7(F,L,w||{}),x=M7(P,null),C=await D7(T,x);if(C.redirect){let f=typeof C.redirect==="string"?C.redirect:C.redirect.path||C.redirect,g=UR(String(f),F),h=_R(F,X);await x0.promises.mkdir(O0.dirname(h),{recursive:!0}),await Bun.write(h,g),J.successCount++,J.pages.push({route:F,outputPath:h,size:Buffer.byteLength(g),cached:!1}),B.push({loc:F,lastmod:new Date().toISOString()}),console.log(` \u21B3 ${F} \u2192 redirect to ${f}`);return}if(C.abort){let f=typeof C.abort==="string"?C.abort:C.abort?.error?.message||"aborted";console.warn(` \u21B3 ${F} \u2014 middleware aborted: ${f}`);return}}let I=N.match(/definePageMeta\s*\(\s*\{[\s\S]*?validate\s*:\s*((?:\([^)]*\)|[^,}])*(?:\{[\s\S]*?\})?)/m);if(I)try{if(!await Function("route",`
11105
+ </rss>`}async function xB($={}){let Z=Date.now(),Y=await S0(),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},J={totalPages:0,successCount:0,failedCount:0,cachedCount:0,buildTime:0,pages:[],errors:[]};await X.hooks.onBuildStart?.();try{if(X.cleanOutput&&x0.existsSync(X.outputDir))await x0.promises.rm(X.outputDir,{recursive:!0});await x0.promises.mkdir(X.outputDir,{recursive:!0});let Q=new CB(X.cacheDir);if(X.cache)await Q.load();try{let{preloadIconCollection:j}=await Promise.resolve().then(() => (F6(),EU));await j("lucide")}catch{}try{let{generateCrosswindCSS:j}=await Promise.resolve().then(() => (E1(),N4));await j('<div class="bg-black"></div>')}catch{}R7();let G=Y?.routeMiddleware?.dir||"middleware";await I7(process.cwd(),G);let K=E7();if(K.length>0)console.log(`Loaded ${K.length} middleware: ${K.join(", ")}`);let W=Y?.routeMiddleware?.global||[],U=n1(".",{pagesDir:X.pagesDir});console.log(`Found ${U.length} routes`);let _=[];for(let j of U){let H=await ZR(j);for(let O of H)_.push({route:j,url:O.url,params:O.params,props:O.props,revalidate:O.revalidate??X.revalidate})}J.totalPages=_.length,console.log(`Generating ${J.totalPages} pages...`);let B=[],z=[];for(let j=0;j<_.length;j+=X.concurrency)z.push(_.slice(j,j+X.concurrency));for(let j of z)await Promise.all(j.map(async(H)=>{let{route:O,url:F,params:L,props:V,revalidate:A}=H;try{await X.hooks.onPageStart?.(F);let N=await Bun.file(O.filePath).text(),w=WR(N),M=w?.middleware?Array.isArray(w.middleware)?w.middleware:[w.middleware]:[],T=[...W,...M];if(T.length>0){let P=T7(F,L,w||{}),x=M7(P,null),C=await D7(T,x);if(C.redirect){let f=typeof C.redirect==="string"?C.redirect:C.redirect.path||C.redirect,g=UR(String(f),F),h=_R(F,X);await x0.promises.mkdir(O0.dirname(h),{recursive:!0}),await Bun.write(h,g),J.successCount++,J.pages.push({route:F,outputPath:h,size:Buffer.byteLength(g),cached:!1}),B.push({loc:F,lastmod:new Date().toISOString()}),console.log(` \u21B3 ${F} \u2192 redirect to ${f}`);return}if(C.abort){let f=typeof C.abort==="string"?C.abort:C.abort?.error?.message||"aborted";console.warn(` \u21B3 ${F} \u2014 middleware aborted: ${f}`);return}}let I=N.match(/definePageMeta\s*\(\s*\{[\s\S]*?validate\s*:\s*((?:\([^)]*\)|[^,}])*(?:\{[\s\S]*?\})?)/m);if(I)try{if(!await Function("route",`
11106
11106
  const validate = ${I[1]};
11107
11107
  return validate(route);
11108
11108
  `)({params:L})){console.warn(`Validation failed for ${F}, skipping...`);return}}catch{}let E=null,S=!1;if(X.cache){if(E=Q.get(F,O.filePath,[]),E)S=!0,J.cachedCount++}if(!E){if(E=await PB(O,L,V,X,Y),X.cache)Q.set(F,O.filePath,[],E)}let k;if(X.trailingSlash)k=O0.join(X.outputDir,F,"index.html");else k=F==="/"?O0.join(X.outputDir,"index.html"):O0.join(X.outputDir,`${F}.html`);await x0.promises.mkdir(O0.dirname(k),{recursive:!0}),await Bun.write(k,E),B.push({loc:F,lastmod:new Date().toISOString().split("T")[0],priority:F==="/"?1:0.8});let b={route:F,outputPath:k,size:Buffer.byteLength(E,"utf8"),cached:S};if(A!==!1)b.revalidateAt=Date.now()+A*1000;J.pages.push(b),J.successCount++,await X.hooks.onPageEnd?.(F,E)}catch(N){J.failedCount++,J.errors.push({route:F,error:N}),await X.hooks.onError?.(N,F),console.error(`Error generating ${F}:`,N)}}));if(X.cache)await Q.save();if(X.generate404){let j=O0.join(X.pagesDir,"404.stx");if(await Bun.file(j).exists()){let H=new Set,O={...Y,debug:!1,cache:!1},F=await Z0(await Bun.file(j).text(),{},j,O,H);await Bun.write(O0.join(X.outputDir,"404.html"),F)}else await Bun.write(O0.join(X.outputDir,"404.html"),`<!DOCTYPE html>
@@ -11146,8 +11146,8 @@ Build complete!
11146
11146
  <p>Redirecting to <a href="${$}">${$}</a>...</p>
11147
11147
  <script>window.location.replace('${$}')</script>
11148
11148
  </body>
11149
- </html>`}function _R($,Z){if($==="/"||$==="")return O0.join(Z.outputDir,"index.html");let Y=$.replace(/^\/|\/$/g,"");if(Z.trailingSlash)return O0.join(Z.outputDir,Y,"index.html");return O0.join(Z.outputDir,`${Y}.html`)}var BR;var mB=D(()=>{y7();U1();u0();E1();I4();BR={generateStaticSite:xB,createISRHandler:fB,defineStaticPaths:gB,createMarkdownLoader:hB}});import{createHash as zR}from"crypto";import{getRouterScript as qR}from"stx-router";function zX($){return zR("sha256").update($).digest("hex").slice(0,8)}function qX($=!1){let Z=$?m$():H7(),Y=zX(Z);return{content:Z,filename:`runtime.${Y}.js`,hash:Y}}function jX(){let $=qR(),Z=zX($);return{content:$,filename:`router.${Z}.js`,hash:Z}}function jR($){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 HX=D(()=>{O7()});import uB from"path";import{createHash as HR}from"crypto";function OR($={}){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 OX($,Z,Y={}){let X=uB.resolve($),J=await Bun.file(X).text(),Q=HR("sha256").update(J).digest("hex").slice(0,16);S3();let G={};try{G=await S0()}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:_}=OR({__filename:X,__dirname:uB.dirname(X)}),B=new Set,z={...a0,...G,...Y,buildMode:"compile",strict:!1},q=await Z0(J,_,X,z,B),j=n$(q),H=b3();return{route:Z,sourceFile:$,html:q,fragment:j,placeholders:H,hasServerScripts:K.length>0,serverScriptContent:K,dependencies:Array.from(B),contentHash:Q}}var LX=D(()=>{U1();u0();k2();C7()});import FX from"fs";import pB from"path";function VX($,Z,Y){return{version:1,buildTime:new Date().toISOString(),routes:$,assets:Z,outputDir:Y}}function NX($,Z){let Y=pB.join(Z,"manifest.json");FX.writeFileSync(Y,JSON.stringify($,null,2))}function AX($){let Z=pB.join($,"manifest.json");if(!FX.existsSync(Z))return null;try{let Y=FX.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 b4=()=>{};var lB={};Q0(lB,{buildForProduction:()=>cB});import C1 from"fs";import p0 from"path";function FR($,Z){let Y=0,X=0;if(!C1.existsSync($))return{copied:Y,bytes:X};function J(Q,G){let K=C1.readdirSync(Q,{withFileTypes:!0});for(let W of K){if(LR.has(W.name))continue;let U=p0.join(Q,W.name),_=p0.join(G,W.name);if(W.isDirectory())C1.mkdirSync(_,{recursive:!0}),J(U,_);else if(W.isFile()){if(C1.existsSync(_))continue;C1.copyFileSync(U,_),Y++,X+=C1.statSync(_).size}}}return J($,Z),{copied:Y,bytes:X}}async function cB($={}){let Z=Date.now(),Y=p0.resolve($.root||process.cwd()),X=p0.resolve(Y,$.outputDir||".output");console.log("[stx build] Starting production build...");let J={};try{J=await S0()}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(C1.existsSync(X))C1.rmSync(X,{recursive:!0});let B=[p0.join(X,"public","__stx"),p0.join(X,"public","assets"),p0.join(X,"server","pages"),p0.join(X,"server","fragments")];for(let M of B)C1.mkdirSync(M,{recursive:!0});console.log("[stx build] Discovering routes...");let z=n1(Y),q=["components","layouts","partials"],j=z.filter((M)=>{return!q.some((T)=>M.pattern.startsWith(`/${T}/`)||M.pattern===`/${T}`)});console.log(`[stx build] Found ${j.length} page routes (${z.length-j.length} non-page files excluded)`),console.log("[stx build] Generating shared assets...");let H=qX($.debug),O=jX();await Bun.write(p0.join(X,"public","__stx",H.filename),H.content),await Bun.write(p0.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 F=[],L=[];for(let M of j)try{let T=await OX(M.filePath,M.pattern,{componentsDir:Q,partialsDir:G,layoutsDir:K,debug:$.debug});if(F.push(T),T.html=T.html.replace(/runtime\.__STX_HASH__\.js/g,H.filename).replace(/router\.__STX_HASH__\.js/g,O.filename),T.html=B7(T.html,U,{bodyScripts:[`<script src="/__stx/${O.filename}"></script>`]}),!/<body[^>]*\bdata-stx=/.test(T.html)){let b=T.html.match(/<(?!body\b)[a-zA-Z][a-zA-Z0-9-]*\b[^>]*?\s(data-stx="[^"]+")[^>]*>/);if(b&&b[1]){let P=b[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 V0(T.html),T.fragment=b7(T.html,_);let E=M.pattern==="/"?"index":M.pattern.slice(1).replace(/\//g,"-").replace(/[[\]]/g,"_"),S=p0.join("server","pages",`${E}.compiled.json`),k=p0.join("server","fragments",`${E}.html`);await Bun.write(p0.join(X,S),JSON.stringify(T,null,2)),await Bun.write(p0.join(X,k),T.fragment),L.push({pattern:M.pattern,compiledPath:S,fragmentPath:k,isDynamic:T.hasServerScripts,hasParams:M.pattern.includes(":")||M.pattern.includes("[")}),console.log(`[stx build] \u2713 ${M.pattern}`)}catch(T){console.error(`[stx build] \u2717 ${M.pattern}:`,T instanceof Error?T.message:T)}let V=p0.resolve(Y,W);if(C1.existsSync(V)){let{copied:M,bytes:T}=FR(V,p0.join(X,"public"));if(M>0)console.log(`[stx build] Copied ${M} public asset${M===1?"":"s"} (${(T/1024).toFixed(1)}KB) from ${W}/`)}let A={runtime:H.filename,router:O.filename},N=VX(L,A,X);NX(N,X);let w=Date.now()-Z;return console.log(`
11150
- [stx build] Done in ${w}ms \u2014 ${F.length} pages compiled`),{pageCount:F.length,assets:A,outputDir:X,duration:w}}var LR;var wX=D(()=>{y7();HX();LX();b4();C7();E1();u0();LR=new Set([".DS_Store","Thumbs.db","desktop.ini",".gitkeep",".gitignore"])});import VR from"path";async function NR($={}){let Z=performance.now(),Y=$.root||process.cwd(),X=await S0(),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(() => (mB(),dB));Q=await W({pagesDir:VR.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(() => (wX(),lB));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 iB=D(()=>{u0()});import C4 from"path";async function wR($){let Z=performance.now(),Y=await S0(),X=$||Y.root||process.cwd(),J=[Y.build?.pagesDir||Y.pagesDir||"pages",Y.componentsDir||"components",Y.layoutsDir||"layouts",Y.partialsDir||"partials"].map((K)=>C4.resolve(X,K)),Q=[],G=0;for(let K of J){let W=await sB(K);for(let U of W){G++;let _=await Bun.file(U).text();if(nB.test(_))Q.push(C4.relative(X,U))}}return{mode:Q.length>0?"ssr":"ssg",serverScriptFiles:Q,totalFilesScanned:G,scanDurationMs:Math.round(performance.now()-Z)}}async function RR($){let Z=await S0(),Y=$||Z.root||process.cwd(),X=C4.resolve(Y,Z.componentsDir||"components"),J=[],Q=await sB(X);for(let G of Q){let K=await Bun.file(G).text(),W=nB.test(K),U=AR.test(K)||/<script\b(?![^>]*\bserver\b)[^>]*>/i.test(K)&&!W;if(W&&U){let _=C4.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 sB($){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 nB,AR;var rB=D(()=>{u0();nB=/<script\b[^>]*\bserver\b/i,AR=/<script\b[^>]*\bclient\b/i});function RX($){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(`
11149
+ </html>`}function _R($,Z){if($==="/"||$==="")return O0.join(Z.outputDir,"index.html");let Y=$.replace(/^\/|\/$/g,"");if(Z.trailingSlash)return O0.join(Z.outputDir,Y,"index.html");return O0.join(Z.outputDir,`${Y}.html`)}var BR;var mB=D(()=>{y7();U1();u0();E1();I6();BR={generateStaticSite:xB,createISRHandler:fB,defineStaticPaths:gB,createMarkdownLoader:hB}});import{createHash as zR}from"crypto";import{getRouterScript as qR}from"stx-router";function zX($){return zR("sha256").update($).digest("hex").slice(0,8)}function qX($=!1){let Z=$?m$():H7(),Y=zX(Z);return{content:Z,filename:`runtime.${Y}.js`,hash:Y}}function jX(){let $=qR(),Z=zX($);return{content:$,filename:`router.${Z}.js`,hash:Z}}function jR($){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 HX=D(()=>{O7()});import uB from"path";import{createHash as HR}from"crypto";function OR($={}){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 OX($,Z,Y={}){let X=uB.resolve($),J=await Bun.file(X).text(),Q=HR("sha256").update(J).digest("hex").slice(0,16);S3();let G={};try{G=await S0()}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:_}=OR({__filename:X,__dirname:uB.dirname(X)}),B=new Set,z={...a0,...G,...Y,buildMode:"compile",strict:!1},q=await Z0(J,_,X,z,B),j=n$(q),H=b3();return{route:Z,sourceFile:$,html:q,fragment:j,placeholders:H,hasServerScripts:K.length>0,serverScriptContent:K,dependencies:Array.from(B),contentHash:Q}}var LX=D(()=>{U1();u0();k2();C7()});import FX from"fs";import pB from"path";function VX($,Z,Y){return{version:1,buildTime:new Date().toISOString(),routes:$,assets:Z,outputDir:Y}}function NX($,Z){let Y=pB.join(Z,"manifest.json");FX.writeFileSync(Y,JSON.stringify($,null,2))}function AX($){let Z=pB.join($,"manifest.json");if(!FX.existsSync(Z))return null;try{let Y=FX.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 b6=()=>{};var lB={};Q0(lB,{buildForProduction:()=>cB});import C1 from"fs";import p0 from"path";function FR($,Z){let Y=0,X=0;if(!C1.existsSync($))return{copied:Y,bytes:X};function J(Q,G){let K=C1.readdirSync(Q,{withFileTypes:!0});for(let W of K){if(LR.has(W.name))continue;let U=p0.join(Q,W.name),_=p0.join(G,W.name);if(W.isDirectory())C1.mkdirSync(_,{recursive:!0}),J(U,_);else if(W.isFile()){if(C1.existsSync(_))continue;C1.copyFileSync(U,_),Y++,X+=C1.statSync(_).size}}}return J($,Z),{copied:Y,bytes:X}}async function cB($={}){let Z=Date.now(),Y=p0.resolve($.root||process.cwd()),X=p0.resolve(Y,$.outputDir||".output");console.log("[stx build] Starting production build...");let J={};try{J=await S0()}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(C1.existsSync(X))C1.rmSync(X,{recursive:!0});let B=[p0.join(X,"public","__stx"),p0.join(X,"public","assets"),p0.join(X,"server","pages"),p0.join(X,"server","fragments")];for(let M of B)C1.mkdirSync(M,{recursive:!0});console.log("[stx build] Discovering routes...");let z=n1(Y),q=["components","layouts","partials"],j=z.filter((M)=>{return!q.some((T)=>M.pattern.startsWith(`/${T}/`)||M.pattern===`/${T}`)});console.log(`[stx build] Found ${j.length} page routes (${z.length-j.length} non-page files excluded)`),console.log("[stx build] Generating shared assets...");let H=qX($.debug),O=jX();await Bun.write(p0.join(X,"public","__stx",H.filename),H.content),await Bun.write(p0.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 F=[],L=[];for(let M of j)try{let T=await OX(M.filePath,M.pattern,{componentsDir:Q,partialsDir:G,layoutsDir:K,debug:$.debug});if(F.push(T),T.html=T.html.replace(/runtime\.__STX_HASH__\.js/g,H.filename).replace(/router\.__STX_HASH__\.js/g,O.filename),T.html=B7(T.html,U,{bodyScripts:[`<script src="/__stx/${O.filename}"></script>`]}),!/<body[^>]*\bdata-stx=/.test(T.html)){let b=T.html.match(/<(?!body\b)[a-zA-Z][a-zA-Z0-9-]*\b[^>]*?\s(data-stx="[^"]+")[^>]*>/);if(b&&b[1]){let P=b[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 V0(T.html),T.fragment=b7(T.html,_);let E=M.pattern==="/"?"index":M.pattern.slice(1).replace(/\//g,"-").replace(/[[\]]/g,"_"),S=p0.join("server","pages",`${E}.compiled.json`),k=p0.join("server","fragments",`${E}.html`);await Bun.write(p0.join(X,S),JSON.stringify(T,null,2)),await Bun.write(p0.join(X,k),T.fragment),L.push({pattern:M.pattern,compiledPath:S,fragmentPath:k,isDynamic:T.hasServerScripts,hasParams:M.pattern.includes(":")||M.pattern.includes("[")}),console.log(`[stx build] \u2713 ${M.pattern}`)}catch(T){console.error(`[stx build] \u2717 ${M.pattern}:`,T instanceof Error?T.message:T)}let V=p0.resolve(Y,W);if(C1.existsSync(V)){let{copied:M,bytes:T}=FR(V,p0.join(X,"public"));if(M>0)console.log(`[stx build] Copied ${M} public asset${M===1?"":"s"} (${(T/1024).toFixed(1)}KB) from ${W}/`)}let A={runtime:H.filename,router:O.filename},N=VX(L,A,X);NX(N,X);let w=Date.now()-Z;return console.log(`
11150
+ [stx build] Done in ${w}ms \u2014 ${F.length} pages compiled`),{pageCount:F.length,assets:A,outputDir:X,duration:w}}var LR;var wX=D(()=>{y7();HX();LX();b6();C7();E1();u0();LR=new Set([".DS_Store","Thumbs.db","desktop.ini",".gitkeep",".gitignore"])});import VR from"path";async function NR($={}){let Z=performance.now(),Y=$.root||process.cwd(),X=await S0(),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(() => (mB(),dB));Q=await W({pagesDir:VR.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(() => (wX(),lB));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 iB=D(()=>{u0()});import C6 from"path";async function wR($){let Z=performance.now(),Y=await S0(),X=$||Y.root||process.cwd(),J=[Y.build?.pagesDir||Y.pagesDir||"pages",Y.componentsDir||"components",Y.layoutsDir||"layouts",Y.partialsDir||"partials"].map((K)=>C6.resolve(X,K)),Q=[],G=0;for(let K of J){let W=await sB(K);for(let U of W){G++;let _=await Bun.file(U).text();if(nB.test(_))Q.push(C6.relative(X,U))}}return{mode:Q.length>0?"ssr":"ssg",serverScriptFiles:Q,totalFilesScanned:G,scanDurationMs:Math.round(performance.now()-Z)}}async function RR($){let Z=await S0(),Y=$||Z.root||process.cwd(),X=C6.resolve(Y,Z.componentsDir||"components"),J=[],Q=await sB(X);for(let G of Q){let K=await Bun.file(G).text(),W=nB.test(K),U=AR.test(K)||/<script\b(?![^>]*\bserver\b)[^>]*>/i.test(K)&&!W;if(W&&U){let _=C6.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 sB($){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 nB,AR;var rB=D(()=>{u0();nB=/<script\b[^>]*\bserver\b/i,AR=/<script\b[^>]*\bclient\b/i});function RX($){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(`
11151
11151
  `,X.index-1);if(aB.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 tB($,Z=[]){let Y=RX($),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 aB.filter((J)=>!X.has(J))}function eB($){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${TR(Q)} } from './${Q}'`);let J=$.filter((Q)=>!Q.startsWith("end")).map((Q)=>` '${Q}': true`).join(`,
11152
11152
  `);return`// Tree-shaken directive bundle
11153
11153
  // Only includes: ${$.join(", ")}
@@ -11161,7 +11161,7 @@ ${J}
11161
11161
  export function isDirectiveActive(name: string): boolean {
11162
11162
  return name in activeDirectives
11163
11163
  }
11164
- `}function $z($,Z={}){let Y=[],X=/@if\(([^)]+)\)[\s\S]*?@endif/g,J=$.matchAll(X);for(let U of J){let _=U[1].trim();if(y4(_,Z)===!1)Y.push({start:U.index,end:U.index+U[0].length,reason:`@if condition always false: ${_}`})}let Q=/@unless\(([^)]+)\)[\s\S]*?@endunless/g,G=$.matchAll(Q);for(let U of G){let _=U[1].trim();if(y4(_,Z)===!0)Y.push({start:U.index,end:U.index+U[0].length,reason:`@unless condition always true: ${_}`})}let K=/@env\(['"]development['"]\)[\s\S]*?@endenv/g;if(Z.__ENV__==="production"){let U=$.matchAll(K);for(let _ of U)Y.push({start:_.index,end:_.index+_[0].length,reason:"Development-only code in production build"})}let W=/@debug[\s\S]*?@enddebug/g;if(Z.__ENV__==="production"){let U=$.matchAll(W);for(let _ of U)Y.push({start:_.index,end:_.index+_[0].length,reason:"Debug code in production build"})}return Y}function Zz($,Z={}){let Y=$z($,Z),X=[];Y.sort((Q,G)=>G.start-Q.start);let J=$;for(let Q of Y)J=J.slice(0,Q.start)+J.slice(Q.end),X.push(Q.reason);return{content:J,removed:X}}function y4($,Z){if($==="true")return!0;if($==="false")return!1;if($==="null")return null;if(/^\d+$/.test($))return Number.parseInt($,10);if(/^\d+\.\d+$/.test($))return Number.parseFloat($);if(/^['"].*['"]$/.test($))return $.slice(1,-1);if($ in Z)return Z[$];let Y=$.match(/^(\w+)\s*(===|!==|==|!=|>=|<=|>|<)\s*(.+)$/);if(Y){let[,X,J,Q]=Y,G=X in Z?Z[X]:void 0,K=y4(Q,Z);if(G!==void 0&&K!==void 0)switch(J){case"==":case"===":return G===K;case"!=":case"!==":return G!==K;case">":return G>K;case"<":return G<K;case">=":return G>=K;case"<=":return G<=K}}return}function Yz($,Z){let Y=[],X=$;return X=X.replace(/\{\{\s*(\w+)\s*\}\}/g,(J,Q)=>{if(Q in Z)return Y.push(`{{ ${Q} }} -> ${Z[Q]}`),String(Z[Q]);return J}),X=X.replace(/\{\{\s*(\d+)\s*([+\-*])\s*(\d+)\s*\}\}/g,(J,Q,G,K)=>{let W=Number.parseInt(Q,10),U=Number.parseInt(K,10),_;switch(G){case"+":_=W+U;break;case"-":_=W-U;break;case"*":_=W*U;break;default:return J}return Y.push(`{{ ${Q} ${G} ${K} }} -> ${_}`),String(_)}),{content:X,folded:Y}}function Xz($){let Z=$,Y=[],X=0;Z=Z.replace(/<(pre|code|script|style)([^>]*)>([\s\S]*?)<\/\1>/gi,(J)=>{let Q=`__PRESERVE_${X++}__`;return Y.push({marker:Q,content:J}),Q}),Z=Z.replace(/\{\{([\s\S]*?)\}\}/g,(J)=>{let Q=`__PRESERVE_${X++}__`;return Y.push({marker:Q,content:J}),Q}),Z=Z.replace(/\{\{--([\s\S]*?)--\}\}/g,""),Z=Z.replace(/<!--[\s\S]*?-->/g,""),Z=Z.replace(/>\s+</g,"><"),Z=Z.replace(/^\s+/gm,""),Z=Z.replace(/\s+$/gm,""),Z=Z.replace(/\s{2,}/g," ");for(let{marker:J,content:Q}of Y){let G=Z.indexOf(J);if(G!==-1)Z=Z.slice(0,G)+Q+Z.slice(G+J.length)}return Z.trim()}function Jz($){let Z=new Map,Y=new Map,X=/(['"])([^'"]{10,})\1/g,J;while((J=X.exec($))!==null){let K=J[2];Y.set(K,(Y.get(K)||0)+1)}let Q=0,G=$;for(let[K,W]of Y)if(W>1){let U=`__STR_${Q++}__`;Z.set(U,K);let _=K.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),B=new RegExp(`(['"])${_}\\1`,"g");G=G.replace(B,U)}return{content:G,pool:Z,count:Z.size}}function Qz($,Z={}){let Y={...oB,...Z},X=new Blob([$]).size,J=$,Q=[],G=[],K=[],W=[],U=0;if(Y.target==="production")Y.constants={...Y.constants,__ENV__:"production"};if(Y.deadCodeElimination){let z=Zz(J,Y.constants);if(J=z.content,z.removed.length>0)Q.push("Dead code elimination"),G.push(...z.removed.map((q)=>`Removed: ${q}`))}if(Y.constantFolding&&Object.keys(Y.constants).length>0){let z=Yz(J,Y.constants);if(J=z.content,W=z.folded,W.length>0)Q.push("Constant folding")}if(Y.treeShake){if(K=tB(J,Y.preserveDirectives),K.length>0)Q.push("Tree shaking")}if(Y.stringPooling){let z=Jz(J);if(J=z.content,U=z.count,U>0)Q.push("String pooling")}if(Y.minifyHtml){let z=Xz(J);if(z.length<J.length)J=z,Q.push("HTML minification")}let _=new Blob([J]).size,B=X>0?Math.round((1-_/X)*100):0;return{content:J,originalSize:X,optimizedSize:_,reduction:B,appliedOptimizations:Q,removedDirectives:K,foldedConstants:W,pooledStrings:U,warnings:G}}async function MR($,Z={}){let Y={...oB,...Z},X=new Map,J=[],Q=0,G=0,K=new Set;for(let[B,z]of $){let q=Qz(z,Y);X.set(B,q),Q+=q.originalSize,G+=q.optimizedSize,J.push(...q.warnings.map((H)=>`${B}: ${H}`));let j=RX(z);for(let H of j)K.add(H.name)}let W;if(Y.treeShake)W=eB(Array.from(K));let U;if(Y.stringPooling)U=new Map;let _=Q>0?Math.round((1-G/Q)*100):0;return{templates:X,directiveBundle:W,stringPool:U,totalOriginalSize:Q,totalOptimizedSize:G,overallReduction:_,warnings:J}}function TR($){return $.charAt(0).toUpperCase()+$.slice(1)}var oB,aB;var Gz=D(()=>{oB={treeShake:!0,deadCodeElimination:!0,constantFolding:!0,stringPooling:!1,minifyHtml:!0,removeDevCode:!0,constants:{},preserveDirectives:[],target:"production"},aB=["if","else","elseif","endif","unless","endunless","switch","case","default","endswitch","for","endfor","foreach","endforeach","forelse","endforelse","while","endwhile","break","continue","empty","extends","section","endsection","yield","parent","include","includeIf","includeWhen","includeFirst","once","endonce","push","endpush","prepend","endprepend","stack","component","endcomponent","slot","endslot","props","auth","endauth","guest","endguest","can","endcan","cannot","endcannot","role","endrole","hasRole","endhasRole","hasAnyRole","endhasAnyRole","csrf","method","error","enderror","old","input","textarea","select","checkbox","radio","file","translate","lang","choice","meta","title","seo","jsonld","canonical","robots","sitemap","ts","endts","js","endjs","css","endcss","markdown","endmarkdown","verbatim","endverbatim","env","production","debug","isset","endisset","empty","endempty"]});var EX={};Q0(EX,{toUsers:()=>qz,toUser:()=>zz,stopBroadcasting:()=>_z,startBroadcasting:()=>Uz,loadChannels:()=>Bz,getBroadcastServer:()=>Wz,channel:()=>Oz,broadcastPrivate:()=>jz,broadcastPresence:()=>Hz,broadcast:()=>TX,BroadcastServer:()=>Fz,Broadcast:()=>Lz});import{Broadcast as Y2,BroadcastServer as ER}from"ts-broadcasting";import{channel as Oz}from"ts-broadcasting";import{Broadcast as Lz,BroadcastServer as Fz}from"ts-broadcasting";function Wz(){return G1}async function Uz($){if(G1)return G1;let Z=$.driver??"bun",Y=$.host??"0.0.0.0",X=$.port??6001,J=$.scheme??"ws",Q={verbose:$.verbose??!1,driver:Z,default:Z,connections:{[Z]:{driver:Z,host:Y,port:X,scheme:J}}};return G1=new ER(Q),Y2.setServer(G1),await G1.start(),G1}async function _z(){for(let $ of MX)clearInterval($);if(MX.length=0,!G1)return;await G1.stop(),G1=null}async function Bz($){let Z=await import($),Y=Z.default??Z;if(typeof Y!=="function")throw Error(`routes/channels.ts must export a default function, got ${typeof Y}`);let X=0;return Y({channel(Q,G){if(X++,G.authorize&&G1)G1.channels.channel(Q,G.authorize);if(G.interval&&G.data){let K=G.event??`${Q}.updated`,W=G.data,U=setInterval(async()=>{try{let _=await W();TX(Q,K,_)}catch{}},G.interval);MX.push(U)}}}),X}function P7(){if(G1)return!0;if(!Kz)Kz=!0,console.warn("[stx] broadcast() called before server started \u2014 messages will be sent once broadcasting is ready");return!1}function TX($,Z,Y){if(!P7())return;Y2.send($,Z,Y)}function zz($,Z,Y){if(!P7())return;Y2.toUser($,Z,Y)}function qz($,Z,Y){if(!P7())return;Y2.toUsers($,Z,Y)}function jz($,Z,Y){if(!P7())return;Y2.send(`private-${$}`,Z,Y)}function Hz($,Z,Y){if(!P7())return;Y2.presence($,Z,Y)}var G1=null,MX,Kz=!1;var P4=D(()=>{MX=[]});function Vz($,Z){let Y={},X=$.trim();if(X.startsWith("{"))X=X.slice(1);if(X.endsWith("}"))X=X.slice(0,-1);if(X=X.trim(),!X)return Y;let J=0;while(J<X.length){while(J<X.length&&/\s/.test(X[J]))J++;if(J>=X.length)break;let Q="";if(X[J]==='"'||X[J]==="'"){let W=X[J];J++;while(J<X.length&&X[J]!==W)if(X[J]==="\\"&&J+1<X.length)Q+=X[J+1],J+=2;else Q+=X[J],J++;J++}else while(J<X.length&&/[\w$]/.test(X[J]))Q+=X[J],J++;while(J<X.length&&/\s/.test(X[J]))J++;if(X[J]===":")J++;while(J<X.length&&/\s/.test(X[J]))J++;let G,K=J;if(X[J]==='"'||X[J]==="'"){let W=X[J];J++;let U="";while(J<X.length&&X[J]!==W)if(X[J]==="\\"&&J+1<X.length)U+=X[J+1],J+=2;else U+=X[J],J++;J++,G=U}else if(X[J]==="{"){let W=1;J++;while(J<X.length&&W>0){if(X[J]==="{")W++;else if(X[J]==="}")W--;else if(X[J]==='"'||X[J]==="'"){let _=X[J];J++;while(J<X.length&&X[J]!==_){if(X[J]==="\\")J++;J++}}J++}let U=X.slice(K,J);G=Vz(U,Z)}else if(X[J]==="["){let W=1;J++;while(J<X.length&&W>0){if(X[J]==="[")W++;else if(X[J]==="]")W--;else if(X[J]==='"'||X[J]==="'"){let _=X[J];J++;while(J<X.length&&X[J]!==_){if(X[J]==="\\")J++;J++}}J++}let U=X.slice(K,J);try{G=JSON.parse(U.replace(/'/g,'"'))}catch{G=U}}else{let W="";while(J<X.length&&X[J]!==","&&!/\s/.test(X[J]))W+=X[J],J++;if(W=W.trim(),W==="true")G=!0;else if(W==="false")G=!1;else if(W==="null")G=null;else if(W==="undefined")G=void 0;else if(/^-?\d+(\.\d+)?$/.test(W))G=Number(W);else if(W in Z)G=Z[W];else G=W}if(Q)Y[Q]=G;while(J<X.length&&/\s/.test(X[J]))J++;if(X[J]===",")J++}return Y}function IR($,Z,Y){let X=[];for(let[J,Q]of Object.entries(Z)){let G=$[J];if(Q.required&&(G===void 0||G===null)){X.push(`Component "${Y}": Missing required prop "${J}"`);continue}if(G===void 0||G===null)continue;let K=Array.isArray(Q.type)?Q.type:[Q.type];if(!K.includes("any")){let W=kR(G);if(!K.includes(W))X.push(`Component "${Y}": Prop "${J}" expected ${K.join(" | ")}, got ${W}`)}if(Q.validator&&!Q.validator(G))X.push(`Component "${Y}": Prop "${J}" failed custom validation`)}return X}function DR($,Z){let Y={...$};for(let[X,J]of Object.entries(Z))if(Y[X]===void 0&&J.default!==void 0)Y[X]=typeof J.default==="function"?J.default():J.default;return Y}function kR($){if(Array.isArray($))return"array";if($===null)return"null";return typeof $}function SR(){return[Nz]}var Nz;var Az=D(()=>{X1();h0();q0();Nz={name:"component",handler:async($,Z,Y,X)=>{if(Z.length<1)return $0("Component","component directive requires at least the component name",o.INVALID_DIRECTIVE_SYNTAX);let J=Z[0].replace(/['"]/g,""),Q={};if(Z.length>1)try{let _=Z.slice(1).join(",").trim();if(_.startsWith("{")){if(Q=k0(_,Y),Object.keys(Q).length===0)Q=Vz(_,Y)}else{let B=_.trim(),z=Y[B];if(z&&typeof z==="object"&&!Array.isArray(z))Q=z}}catch(_){let B=_ instanceof Error?_.message:String(_);return console.error("Component props parsing error:",B),$0("Component",`Error parsing component props: ${B}`,o.EVALUATION_ERROR)}let G=Y.__stx_options||{},K=G.componentsDir||"components",W=new Set;if(!Y.__processedComponents)Y.__processedComponents=new Set;let U=Y.__processedComponents;try{return await D1(J,Q,"",K,Y,X,G,U,W)}catch(_){console.error("Component rendering error:",_);let B=_ instanceof Error?_.message:String(_);return $0("Component",`Error rendering component: ${B}`,o.COMPONENT_RENDER_ERROR)}},hasEndTag:!1}});function x4(){return`
11164
+ `}function $z($,Z={}){let Y=[],X=/@if\(([^)]+)\)[\s\S]*?@endif/g,J=$.matchAll(X);for(let U of J){let _=U[1].trim();if(y6(_,Z)===!1)Y.push({start:U.index,end:U.index+U[0].length,reason:`@if condition always false: ${_}`})}let Q=/@unless\(([^)]+)\)[\s\S]*?@endunless/g,G=$.matchAll(Q);for(let U of G){let _=U[1].trim();if(y6(_,Z)===!0)Y.push({start:U.index,end:U.index+U[0].length,reason:`@unless condition always true: ${_}`})}let K=/@env\(['"]development['"]\)[\s\S]*?@endenv/g;if(Z.__ENV__==="production"){let U=$.matchAll(K);for(let _ of U)Y.push({start:_.index,end:_.index+_[0].length,reason:"Development-only code in production build"})}let W=/@debug[\s\S]*?@enddebug/g;if(Z.__ENV__==="production"){let U=$.matchAll(W);for(let _ of U)Y.push({start:_.index,end:_.index+_[0].length,reason:"Debug code in production build"})}return Y}function Zz($,Z={}){let Y=$z($,Z),X=[];Y.sort((Q,G)=>G.start-Q.start);let J=$;for(let Q of Y)J=J.slice(0,Q.start)+J.slice(Q.end),X.push(Q.reason);return{content:J,removed:X}}function y6($,Z){if($==="true")return!0;if($==="false")return!1;if($==="null")return null;if(/^\d+$/.test($))return Number.parseInt($,10);if(/^\d+\.\d+$/.test($))return Number.parseFloat($);if(/^['"].*['"]$/.test($))return $.slice(1,-1);if($ in Z)return Z[$];let Y=$.match(/^(\w+)\s*(===|!==|==|!=|>=|<=|>|<)\s*(.+)$/);if(Y){let[,X,J,Q]=Y,G=X in Z?Z[X]:void 0,K=y6(Q,Z);if(G!==void 0&&K!==void 0)switch(J){case"==":case"===":return G===K;case"!=":case"!==":return G!==K;case">":return G>K;case"<":return G<K;case">=":return G>=K;case"<=":return G<=K}}return}function Yz($,Z){let Y=[],X=$;return X=X.replace(/\{\{\s*(\w+)\s*\}\}/g,(J,Q)=>{if(Q in Z)return Y.push(`{{ ${Q} }} -> ${Z[Q]}`),String(Z[Q]);return J}),X=X.replace(/\{\{\s*(\d+)\s*([+\-*])\s*(\d+)\s*\}\}/g,(J,Q,G,K)=>{let W=Number.parseInt(Q,10),U=Number.parseInt(K,10),_;switch(G){case"+":_=W+U;break;case"-":_=W-U;break;case"*":_=W*U;break;default:return J}return Y.push(`{{ ${Q} ${G} ${K} }} -> ${_}`),String(_)}),{content:X,folded:Y}}function Xz($){let Z=$,Y=[],X=0;Z=Z.replace(/<(pre|code|script|style)([^>]*)>([\s\S]*?)<\/\1>/gi,(J)=>{let Q=`__PRESERVE_${X++}__`;return Y.push({marker:Q,content:J}),Q}),Z=Z.replace(/\{\{([\s\S]*?)\}\}/g,(J)=>{let Q=`__PRESERVE_${X++}__`;return Y.push({marker:Q,content:J}),Q}),Z=Z.replace(/\{\{--([\s\S]*?)--\}\}/g,""),Z=Z.replace(/<!--[\s\S]*?-->/g,""),Z=Z.replace(/>\s+</g,"><"),Z=Z.replace(/^\s+/gm,""),Z=Z.replace(/\s+$/gm,""),Z=Z.replace(/\s{2,}/g," ");for(let{marker:J,content:Q}of Y){let G=Z.indexOf(J);if(G!==-1)Z=Z.slice(0,G)+Q+Z.slice(G+J.length)}return Z.trim()}function Jz($){let Z=new Map,Y=new Map,X=/(['"])([^'"]{10,})\1/g,J;while((J=X.exec($))!==null){let K=J[2];Y.set(K,(Y.get(K)||0)+1)}let Q=0,G=$;for(let[K,W]of Y)if(W>1){let U=`__STR_${Q++}__`;Z.set(U,K);let _=K.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),B=new RegExp(`(['"])${_}\\1`,"g");G=G.replace(B,U)}return{content:G,pool:Z,count:Z.size}}function Qz($,Z={}){let Y={...oB,...Z},X=new Blob([$]).size,J=$,Q=[],G=[],K=[],W=[],U=0;if(Y.target==="production")Y.constants={...Y.constants,__ENV__:"production"};if(Y.deadCodeElimination){let z=Zz(J,Y.constants);if(J=z.content,z.removed.length>0)Q.push("Dead code elimination"),G.push(...z.removed.map((q)=>`Removed: ${q}`))}if(Y.constantFolding&&Object.keys(Y.constants).length>0){let z=Yz(J,Y.constants);if(J=z.content,W=z.folded,W.length>0)Q.push("Constant folding")}if(Y.treeShake){if(K=tB(J,Y.preserveDirectives),K.length>0)Q.push("Tree shaking")}if(Y.stringPooling){let z=Jz(J);if(J=z.content,U=z.count,U>0)Q.push("String pooling")}if(Y.minifyHtml){let z=Xz(J);if(z.length<J.length)J=z,Q.push("HTML minification")}let _=new Blob([J]).size,B=X>0?Math.round((1-_/X)*100):0;return{content:J,originalSize:X,optimizedSize:_,reduction:B,appliedOptimizations:Q,removedDirectives:K,foldedConstants:W,pooledStrings:U,warnings:G}}async function MR($,Z={}){let Y={...oB,...Z},X=new Map,J=[],Q=0,G=0,K=new Set;for(let[B,z]of $){let q=Qz(z,Y);X.set(B,q),Q+=q.originalSize,G+=q.optimizedSize,J.push(...q.warnings.map((H)=>`${B}: ${H}`));let j=RX(z);for(let H of j)K.add(H.name)}let W;if(Y.treeShake)W=eB(Array.from(K));let U;if(Y.stringPooling)U=new Map;let _=Q>0?Math.round((1-G/Q)*100):0;return{templates:X,directiveBundle:W,stringPool:U,totalOriginalSize:Q,totalOptimizedSize:G,overallReduction:_,warnings:J}}function TR($){return $.charAt(0).toUpperCase()+$.slice(1)}var oB,aB;var Gz=D(()=>{oB={treeShake:!0,deadCodeElimination:!0,constantFolding:!0,stringPooling:!1,minifyHtml:!0,removeDevCode:!0,constants:{},preserveDirectives:[],target:"production"},aB=["if","else","elseif","endif","unless","endunless","switch","case","default","endswitch","for","endfor","foreach","endforeach","forelse","endforelse","while","endwhile","break","continue","empty","extends","section","endsection","yield","parent","include","includeIf","includeWhen","includeFirst","once","endonce","push","endpush","prepend","endprepend","stack","component","endcomponent","slot","endslot","props","auth","endauth","guest","endguest","can","endcan","cannot","endcannot","role","endrole","hasRole","endhasRole","hasAnyRole","endhasAnyRole","csrf","method","error","enderror","old","input","textarea","select","checkbox","radio","file","translate","lang","choice","meta","title","seo","jsonld","canonical","robots","sitemap","ts","endts","js","endjs","css","endcss","markdown","endmarkdown","verbatim","endverbatim","env","production","debug","isset","endisset","empty","endempty"]});var EX={};Q0(EX,{toUsers:()=>qz,toUser:()=>zz,stopBroadcasting:()=>_z,startBroadcasting:()=>Uz,loadChannels:()=>Bz,getBroadcastServer:()=>Wz,channel:()=>Oz,broadcastPrivate:()=>jz,broadcastPresence:()=>Hz,broadcast:()=>TX,BroadcastServer:()=>Fz,Broadcast:()=>Lz});import{Broadcast as Y2,BroadcastServer as ER}from"ts-broadcasting";import{channel as Oz}from"ts-broadcasting";import{Broadcast as Lz,BroadcastServer as Fz}from"ts-broadcasting";function Wz(){return G1}async function Uz($){if(G1)return G1;let Z=$.driver??"bun",Y=$.host??"0.0.0.0",X=$.port??6001,J=$.scheme??"ws",Q={verbose:$.verbose??!1,driver:Z,default:Z,connections:{[Z]:{driver:Z,host:Y,port:X,scheme:J}}};return G1=new ER(Q),Y2.setServer(G1),await G1.start(),G1}async function _z(){for(let $ of MX)clearInterval($);if(MX.length=0,!G1)return;await G1.stop(),G1=null}async function Bz($){let Z=await import($),Y=Z.default??Z;if(typeof Y!=="function")throw Error(`routes/channels.ts must export a default function, got ${typeof Y}`);let X=0;return Y({channel(Q,G){if(X++,G.authorize&&G1)G1.channels.channel(Q,G.authorize);if(G.interval&&G.data){let K=G.event??`${Q}.updated`,W=G.data,U=setInterval(async()=>{try{let _=await W();TX(Q,K,_)}catch{}},G.interval);MX.push(U)}}}),X}function P7(){if(G1)return!0;if(!Kz)Kz=!0,console.warn("[stx] broadcast() called before server started \u2014 messages will be sent once broadcasting is ready");return!1}function TX($,Z,Y){if(!P7())return;Y2.send($,Z,Y)}function zz($,Z,Y){if(!P7())return;Y2.toUser($,Z,Y)}function qz($,Z,Y){if(!P7())return;Y2.toUsers($,Z,Y)}function jz($,Z,Y){if(!P7())return;Y2.send(`private-${$}`,Z,Y)}function Hz($,Z,Y){if(!P7())return;Y2.presence($,Z,Y)}var G1=null,MX,Kz=!1;var P6=D(()=>{MX=[]});function Vz($,Z){let Y={},X=$.trim();if(X.startsWith("{"))X=X.slice(1);if(X.endsWith("}"))X=X.slice(0,-1);if(X=X.trim(),!X)return Y;let J=0;while(J<X.length){while(J<X.length&&/\s/.test(X[J]))J++;if(J>=X.length)break;let Q="";if(X[J]==='"'||X[J]==="'"){let W=X[J];J++;while(J<X.length&&X[J]!==W)if(X[J]==="\\"&&J+1<X.length)Q+=X[J+1],J+=2;else Q+=X[J],J++;J++}else while(J<X.length&&/[\w$]/.test(X[J]))Q+=X[J],J++;while(J<X.length&&/\s/.test(X[J]))J++;if(X[J]===":")J++;while(J<X.length&&/\s/.test(X[J]))J++;let G,K=J;if(X[J]==='"'||X[J]==="'"){let W=X[J];J++;let U="";while(J<X.length&&X[J]!==W)if(X[J]==="\\"&&J+1<X.length)U+=X[J+1],J+=2;else U+=X[J],J++;J++,G=U}else if(X[J]==="{"){let W=1;J++;while(J<X.length&&W>0){if(X[J]==="{")W++;else if(X[J]==="}")W--;else if(X[J]==='"'||X[J]==="'"){let _=X[J];J++;while(J<X.length&&X[J]!==_){if(X[J]==="\\")J++;J++}}J++}let U=X.slice(K,J);G=Vz(U,Z)}else if(X[J]==="["){let W=1;J++;while(J<X.length&&W>0){if(X[J]==="[")W++;else if(X[J]==="]")W--;else if(X[J]==='"'||X[J]==="'"){let _=X[J];J++;while(J<X.length&&X[J]!==_){if(X[J]==="\\")J++;J++}}J++}let U=X.slice(K,J);try{G=JSON.parse(U.replace(/'/g,'"'))}catch{G=U}}else{let W="";while(J<X.length&&X[J]!==","&&!/\s/.test(X[J]))W+=X[J],J++;if(W=W.trim(),W==="true")G=!0;else if(W==="false")G=!1;else if(W==="null")G=null;else if(W==="undefined")G=void 0;else if(/^-?\d+(\.\d+)?$/.test(W))G=Number(W);else if(W in Z)G=Z[W];else G=W}if(Q)Y[Q]=G;while(J<X.length&&/\s/.test(X[J]))J++;if(X[J]===",")J++}return Y}function IR($,Z,Y){let X=[];for(let[J,Q]of Object.entries(Z)){let G=$[J];if(Q.required&&(G===void 0||G===null)){X.push(`Component "${Y}": Missing required prop "${J}"`);continue}if(G===void 0||G===null)continue;let K=Array.isArray(Q.type)?Q.type:[Q.type];if(!K.includes("any")){let W=kR(G);if(!K.includes(W))X.push(`Component "${Y}": Prop "${J}" expected ${K.join(" | ")}, got ${W}`)}if(Q.validator&&!Q.validator(G))X.push(`Component "${Y}": Prop "${J}" failed custom validation`)}return X}function DR($,Z){let Y={...$};for(let[X,J]of Object.entries(Z))if(Y[X]===void 0&&J.default!==void 0)Y[X]=typeof J.default==="function"?J.default():J.default;return Y}function kR($){if(Array.isArray($))return"array";if($===null)return"null";return typeof $}function SR(){return[Nz]}var Nz;var Az=D(()=>{X1();h0();q0();Nz={name:"component",handler:async($,Z,Y,X)=>{if(Z.length<1)return $0("Component","component directive requires at least the component name",o.INVALID_DIRECTIVE_SYNTAX);let J=Z[0].replace(/['"]/g,""),Q={};if(Z.length>1)try{let _=Z.slice(1).join(",").trim();if(_.startsWith("{")){if(Q=k0(_,Y),Object.keys(Q).length===0)Q=Vz(_,Y)}else{let B=_.trim(),z=Y[B];if(z&&typeof z==="object"&&!Array.isArray(z))Q=z}}catch(_){let B=_ instanceof Error?_.message:String(_);return console.error("Component props parsing error:",B),$0("Component",`Error parsing component props: ${B}`,o.EVALUATION_ERROR)}let G=Y.__stx_options||{},K=G.componentsDir||"components",W=new Set;if(!Y.__processedComponents)Y.__processedComponents=new Set;let U=Y.__processedComponents;try{return await D1(J,Q,"",K,Y,X,G,U,W)}catch(_){console.error("Component rendering error:",_);let B=_ instanceof Error?_.message:String(_);return $0("Component",`Error rendering component: ${B}`,o.COMPONENT_RENDER_ERROR)}},hasEndTag:!1}});function x6(){return`
11165
11165
  /* Theme selector for code blocks */
11166
11166
  .theme-selector {
11167
11167
  margin: 1rem 0;
@@ -11211,13 +11211,13 @@ export function isDirectiveActive(name: string): boolean {
11211
11211
 
11212
11212
  body.dark-mode a {
11213
11213
  color: #58a6ff;
11214
- }`}function v4($){return`
11214
+ }`}function v6($){return`
11215
11215
  <div class="theme-selector">
11216
11216
  Theme:
11217
11217
  <select id="themeSelector" onchange="changeTheme()">
11218
11218
  ${$}
11219
11219
  </select>
11220
- </div>`}function f4(){return`
11220
+ </div>`}function f6(){return`
11221
11221
  function changeTheme() {
11222
11222
  const theme = document.getElementById('themeSelector').value;
11223
11223
 
@@ -11233,7 +11233,7 @@ else {
11233
11233
  }
11234
11234
 
11235
11235
  // Initialize theme on page load
11236
- document.addEventListener('DOMContentLoaded', changeTheme);`}function g4($){if(Object.keys($).length===0)return"";return`
11236
+ document.addEventListener('DOMContentLoaded', changeTheme);`}function g6($){if(Object.keys($).length===0)return"";return`
11237
11237
  <div class="frontmatter">
11238
11238
  <h3>Frontmatter</h3>
11239
11239
  ${Object.entries($).map(([Z,Y])=>`
@@ -11241,12 +11241,12 @@ else {
11241
11241
  <span class="frontmatter-label">${Z}:</span>
11242
11242
  <span>${Array.isArray(Y)?Y.join(", "):String(Y)}</span>
11243
11243
  </div>`).join("")}
11244
- </div>`}var wz=()=>{};import Rz from"net";async function bR($){return new Promise((Z)=>{let Y=Rz.createServer();Y.once("error",()=>Z(!1)),Y.once("listening",()=>{Y.close(()=>Z(!0))}),Y.listen($,"0.0.0.0")})}async function CR($){return new Promise((Z)=>{let Y=Rz.createServer();Y.once("error",()=>Z(!1)),Y.once("listening",()=>{Y.close(()=>Z(!0))}),Y.listen($,"::")})}async function yR($){if(!await bR($))return!1;return await CR($)}async function T$($,Z=20){for(let Y=0;Y<Z;Y++){let X=$+Y;if(await yR(X))return X}throw Error(`Could not find an available port between ${$} and ${$+Z-1}`)}var Mz=()=>{};async function xR(){try{let $=await import("@stacksjs/desktop");if(typeof $.openDevWindow!=="function")return null;return $}catch{return null}}async function X2($,Z={}){let Y={...PR,...Z},X=await xR();if(!X)return console.log(`${R.yellow}\u26A0${R.reset} Native window requested, but @stacksjs/desktop is not available.`),console.log(" Install & build the desktop package to enable --native."),!1;try{let J=await X.openDevWindow($,{title:Y.title,width:Y.width,height:Y.height,darkMode:Y.darkMode,hotReload:Y.hotReload,nativeSidebar:Y.nativeSidebar,sidebarWidth:Y.sidebarWidth,sidebarConfig:Y.sidebarConfig});if(J&&Y.nativeSidebar)console.log(`${R.green}\u2713${R.reset} Native sidebar enabled (macOS Tahoe style)`);return J}catch(J){return console.log(`${R.red}\u2717${R.reset} Could not open native window:`,J),!1}}function h4($){if($.match(/<Sidebar[\s\S]*?variant=["']tahoe["'][\s\S]*?\/>/i)){let J=$.match(/<script\s+server[^>]*>([\s\S]*?)<\/script>/i);if(J){let Q=J[1];try{let G=`
11244
+ </div>`}var wz=()=>{};import Rz from"net";async function bR($){return new Promise((Z)=>{let Y=Rz.createServer();Y.once("error",()=>Z(!1)),Y.once("listening",()=>{Y.close(()=>Z(!0))}),Y.listen($,"0.0.0.0")})}async function CR($){return new Promise((Z)=>{let Y=Rz.createServer();Y.once("error",()=>Z(!1)),Y.once("listening",()=>{Y.close(()=>Z(!0))}),Y.listen($,"::")})}async function yR($){if(!await bR($))return!1;return await CR($)}async function T$($,Z=20){for(let Y=0;Y<Z;Y++){let X=$+Y;if(await yR(X))return X}throw Error(`Could not find an available port between ${$} and ${$+Z-1}`)}var Mz=()=>{};async function xR(){try{let $=await import("@stacksjs/desktop");if(typeof $.openDevWindow!=="function")return null;return $}catch{return null}}async function X2($,Z={}){let Y={...PR,...Z},X=await xR();if(!X)return console.log(`${R.yellow}\u26A0${R.reset} Native window requested, but @stacksjs/desktop is not available.`),console.log(" Install & build the desktop package to enable --native."),!1;try{let J=await X.openDevWindow($,{title:Y.title,width:Y.width,height:Y.height,darkMode:Y.darkMode,hotReload:Y.hotReload,nativeSidebar:Y.nativeSidebar,sidebarWidth:Y.sidebarWidth,sidebarConfig:Y.sidebarConfig});if(J&&Y.nativeSidebar)console.log(`${R.green}\u2713${R.reset} Native sidebar enabled (macOS Tahoe style)`);return J}catch(J){return console.log(`${R.red}\u2717${R.reset} Could not open native window:`,J),!1}}function h6($){if($.match(/<Sidebar[\s\S]*?variant=["']tahoe["'][\s\S]*?\/>/i)){let J=$.match(/<script\s+server[^>]*>([\s\S]*?)<\/script>/i);if(J){let Q=J[1];try{let G=`
11245
11245
  ${Q}
11246
11246
  return typeof sidebarConfig !== 'undefined' ? sidebarConfig : null;
11247
11247
  `,W=Function(G)();if(W)return W}catch(G){console.warn("Invalid sidebarConfig:",G)}}return{sections:[]}}let Y=$.match(/@nativeSidebar\s*\(\s*(\{[\s\S]*?\})\s*\)/m);if(Y)try{return JSON.parse(Y[1])}catch{console.warn("Invalid @nativeSidebar configuration")}let X=$.match(/<script\s+native-sidebar[^>]*>([\s\S]*?)<\/script>/i);if(X)try{let J=X[1].match(/(?:export\s+(?:default\s+)?|const\s+\w+\s*=\s*)(\{[\s\S]*\})/m);if(J)return Function(`return ${J[1]}`)()}catch(J){console.warn("Invalid native-sidebar script configuration:",J)}return}var PR;var Tz=D(()=>{x2();PR={title:"stx Development",width:1400,height:900,darkMode:!0,hotReload:!0,nativeSidebar:!1,sidebarWidth:260,sidebarConfig:void 0}});function IX(){console.log(`
11248
11248
  Keyboard shortcuts:`),console.log(` ${R.cyan}o${R.reset} + Enter - Open in browser`),console.log(` ${R.cyan}c${R.reset} + Enter - Clear console`),console.log(` ${R.cyan}q${R.reset} + Enter (or ${R.cyan}Ctrl+C${R.reset}) - Quit server`),console.log(` ${R.cyan}h${R.reset} + Enter - Show this help`)}function vR($){console.log(`${R.green}Server running at ${R.cyan}${$}${R.reset}`),console.log(`Press ${R.cyan}Ctrl+C${R.reset} to stop the server`),IX()}function fR($){console.log(`${R.dim}Opening ${R.cyan}${$}${R.dim} in your browser...${R.reset}`),Bun.spawn(["open",$],{stderr:"inherit"})}function E$($,Z,Y){if(!process.stdin.isTTY)return;process.stdin.setRawMode(!0),process.stdin.setEncoding("utf8"),process.stdin.resume(),IX();let X="";process.stdin.on("data",(J)=>{if(J==="\x03"){if(Y?.onQuit)Y.onQuit();Z(),process.exit(0)}if(X+=J,X.endsWith("\r")||X.endsWith(`
11249
- `)){let Q=X.trim().toLowerCase();X="",gR(Q,$,Z,Y)}})}function gR($,Z,Y,X){switch($){case"o":if(X?.onOpen)X.onOpen();else fR(Z);break;case"c":if(X?.onClear)X.onClear();else console.clear(),vR(Z);break;case"q":if(X?.onQuit)X.onQuit();console.log(`${R.yellow}Stopping server...${R.reset}`),Y(),process.exit(0);break;case"h":if(X?.onHelp)X.onHelp();else IX();break;default:break}}var Ez=D(()=>{x2()});var Iz=()=>{};var x7=D(()=>{x2();E1();wz();Mz();Tz();Ez();Iz()});var{serve:hR}=globalThis.Bun;import DX from"fs";import J2 from"path";async function d4($,Z={}){let Y=Z.port||3000,X=Z.watch!==!1,J=J2.resolve($);if(!DX.existsSync(J))return console.error(`${R.red}Error: File not found: ${R.bright}${J}${R.reset}`),!1;if(!J.endsWith(".md"))return console.error(`${R.red}Error: File must have .md extension: ${R.bright}${J}${R.reset}`),!1;console.log(`${R.blue}Processing${R.reset} ${R.bright}${$}${R.reset}...`);let Q=null,G=async()=>{try{let{content:B,data:z}=await p1(J,{markdown:{syntaxHighlighting:{serverSide:!0,enabled:!0,defaultTheme:t0.markdown?.syntaxHighlighting?.defaultTheme||"github-dark",highlightUnknownLanguages:!0}}}),q=Z.markdown?.syntaxHighlighting||t0.markdown?.syntaxHighlighting,j=q?.defaultTheme||"github-dark",H=["github-dark"],O=q?.additionalThemes||[],L=[...new Set([...H,...O])].map((V)=>`<option value="${V}"${V===j?" selected":""}>${V}</option>`).join(`
11249
+ `)){let Q=X.trim().toLowerCase();X="",gR(Q,$,Z,Y)}})}function gR($,Z,Y,X){switch($){case"o":if(X?.onOpen)X.onOpen();else fR(Z);break;case"c":if(X?.onClear)X.onClear();else console.clear(),vR(Z);break;case"q":if(X?.onQuit)X.onQuit();console.log(`${R.yellow}Stopping server...${R.reset}`),Y(),process.exit(0);break;case"h":if(X?.onHelp)X.onHelp();else IX();break;default:break}}var Ez=D(()=>{x2()});var Iz=()=>{};var x7=D(()=>{x2();E1();wz();Mz();Tz();Ez();Iz()});var{serve:hR}=globalThis.Bun;import DX from"fs";import J2 from"path";async function d6($,Z={}){let Y=Z.port||3000,X=Z.watch!==!1,J=J2.resolve($);if(!DX.existsSync(J))return console.error(`${R.red}Error: File not found: ${R.bright}${J}${R.reset}`),!1;if(!J.endsWith(".md"))return console.error(`${R.red}Error: File must have .md extension: ${R.bright}${J}${R.reset}`),!1;console.log(`${R.blue}Processing${R.reset} ${R.bright}${$}${R.reset}...`);let Q=null,G=async()=>{try{let{content:B,data:z}=await p1(J,{markdown:{syntaxHighlighting:{serverSide:!0,enabled:!0,defaultTheme:t0.markdown?.syntaxHighlighting?.defaultTheme||"github-dark",highlightUnknownLanguages:!0}}}),q=Z.markdown?.syntaxHighlighting||t0.markdown?.syntaxHighlighting,j=q?.defaultTheme||"github-dark",H=["github-dark"],O=q?.additionalThemes||[],L=[...new Set([...H,...O])].map((V)=>`<option value="${V}"${V===j?" selected":""}>${V}</option>`).join(`
11250
11250
  `);return Q=`
11251
11251
  <!DOCTYPE html>
11252
11252
  <html lang="en">
@@ -11395,17 +11395,17 @@ Keyboard shortcuts:`),console.log(` ${R.cyan}o${R.reset} + Enter - Open in brow
11395
11395
  min-width: 100px;
11396
11396
  color: #555;
11397
11397
  }
11398
- ${x4()}
11398
+ ${x6()}
11399
11399
  </style>
11400
11400
  </head>
11401
11401
  <body>
11402
- ${g4(z)}
11403
- ${v4(L)}
11402
+ ${g6(z)}
11403
+ ${v6(L)}
11404
11404
 
11405
11405
  ${B}
11406
11406
 
11407
11407
  <script>
11408
- ${f4()}
11408
+ ${f6()}
11409
11409
  </script>
11410
11410
  </body>
11411
11411
  </html>
@@ -11607,10 +11607,10 @@ else {
11607
11607
  };
11608
11608
  })();
11609
11609
  </script>
11610
- `}function y1($,Z,Y={}){let X=Dz(Z,Y),J=$.lastIndexOf("</body>");if(J!==-1)return $.slice(0,J)+X+$.slice(J);if($.includes("</html>"))return $.replace("</html>",`${X}</html>`);return $+X}function v7($){let Z=$.toLowerCase();return Z.endsWith(".css")||Z.endsWith(".scss")||Z.endsWith(".sass")||Z.endsWith(".less")}function f7($){let Z=$.toLowerCase();return[".stx",".html",".htm",".md",".js",".ts",".jsx",".tsx",".json"].some((X)=>Z.endsWith(X))}function g7($){return[/^\./,/node_modules/,/\.stx\/output/,/\.stx\/cache/,/~$/,/\.swp$/,/\.swo$/].some((Y)=>Y.test($))}function h7($){if(!Q2)Q2=new SX($);return Q2}function G2(){if(Q2)Q2.stop(),Q2=null}var Q2=null;import d7 from"path";var K2;var m4=D(()=>{M$();X1();d0();f$();U1();K2={name:"bun-plugin-stx",async setup($){let Y={...await S0(),...$.config?.stx},X=new Set,J=Y.webComponents?.enabled?`./${d7.relative(d7.dirname($.config?.outdir||"dist"),Y.webComponents.outputDir||"dist/web-components")}`:"/web-components",Q=[];if(Y.webComponents?.enabled)try{let G=await a8(Y,X);if(Q.push(...G),Y.debug&&G.length>0)console.log(`Successfully built ${G.length} web components`)}catch(G){console.error("Failed to build web components:",G)}$.onLoad({filter:/\.stx$/},async({path:G})=>{try{let K=new Set;if(Y.cache&&Y.cachePath){let H=await _4(G,Y);if(H){if(Y.debug)console.log(`Using cached version of ${G}`);return{contents:H,loader:"html"}}}let W=await M1(()=>Bun.file(G).text(),"",(H)=>{throw new b5(`Failed to read stx file: ${G}`,G,void 0,void 0,`File read error: ${H.message}`)});if(!W)throw new b5(`stx file is empty: ${G}`,G);let{scriptContent:U,templateContent:_,allScripts:B}=P2.time("script-extraction",()=>{let H=W,O=W.match(/<template\b(?![^>]*\b(?:id|x-for|x-if|@for|@if|:for|:if)\s*=)[^>]*>([\s\S]*?)<\/template>/i);if(O)H=O[1].trim();let F=W.match(/<script\b[^>]*>[\s\S]*?<\/script>/gi)||[],L="",V=[];for(let N of F){let w=N.match(/<script\b[^>]*>([\s\S]*?)<\/script>/i)?.[1]||"",M=N.match(/<script\b([^>]*)>/i),T=M?M[1]:"";if(/\bserver\b/i.test(T))L=w;else V.push(N)}let A=H.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"");return{scriptContent:L,templateContent:A,allScripts:V}}),z={__filename:G,__dirname:d7.dirname(G),__stx:{webComponentsPath:J,builtComponents:Q}};await M1(()=>R0(U,z,G),void 0,(H)=>{let O=new O1(`Script execution failed in ${G}: ${H.message}`,G,void 0,void 0,U.substring(0,100));if(m0.log(O,{filePath:G,scriptContent:U}),Y.debug)throw O});let j=await P2.timeAsync("directive-processing",async()=>{return await Z0(_,z,G,Y,K)});if(B.length>0){let{interpolateScriptsInTemplate:H}=await Promise.resolve().then(() => (d0(),C2)),O=H(B.join(`
11610
+ `}function y1($,Z,Y={}){let X=Dz(Z,Y),J=$.lastIndexOf("</body>");if(J!==-1)return $.slice(0,J)+X+$.slice(J);if($.includes("</html>"))return $.replace("</html>",`${X}</html>`);return $+X}function v7($){let Z=$.toLowerCase();return Z.endsWith(".css")||Z.endsWith(".scss")||Z.endsWith(".sass")||Z.endsWith(".less")}function f7($){let Z=$.toLowerCase();return[".stx",".html",".htm",".md",".js",".ts",".jsx",".tsx",".json"].some((X)=>Z.endsWith(X))}function g7($){return[/^\./,/node_modules/,/\.stx\/output/,/\.stx\/cache/,/~$/,/\.swp$/,/\.swo$/].some((Y)=>Y.test($))}function h7($){if(!Q2)Q2=new SX($);return Q2}function G2(){if(Q2)Q2.stop(),Q2=null}var Q2=null;import d7 from"path";var K2;var m6=D(()=>{M$();X1();d0();f$();U1();K2={name:"bun-plugin-stx",async setup($){let Y={...await S0(),...$.config?.stx},X=new Set,J=Y.webComponents?.enabled?`./${d7.relative(d7.dirname($.config?.outdir||"dist"),Y.webComponents.outputDir||"dist/web-components")}`:"/web-components",Q=[];if(Y.webComponents?.enabled)try{let G=await a8(Y,X);if(Q.push(...G),Y.debug&&G.length>0)console.log(`Successfully built ${G.length} web components`)}catch(G){console.error("Failed to build web components:",G)}$.onLoad({filter:/\.stx$/},async({path:G})=>{try{let K=new Set;if(Y.cache&&Y.cachePath){let H=await _6(G,Y);if(H){if(Y.debug)console.log(`Using cached version of ${G}`);return{contents:H,loader:"html"}}}let W=await M1(()=>Bun.file(G).text(),"",(H)=>{throw new b5(`Failed to read stx file: ${G}`,G,void 0,void 0,`File read error: ${H.message}`)});if(!W)throw new b5(`stx file is empty: ${G}`,G);let{scriptContent:U,templateContent:_,allScripts:B}=P2.time("script-extraction",()=>{let H=W,O=W.match(/<template\b(?![^>]*\b(?:id|x-for|x-if|@for|@if|:for|:if)\s*=)[^>]*>([\s\S]*?)<\/template>/i);if(O)H=O[1].trim();let F=W.match(/<script\b[^>]*>[\s\S]*?<\/script>/gi)||[],L="",V=[];for(let N of F){let w=N.match(/<script\b[^>]*>([\s\S]*?)<\/script>/i)?.[1]||"",M=N.match(/<script\b([^>]*)>/i),T=M?M[1]:"";if(/\bserver\b/i.test(T))L=w;else V.push(N)}let A=H.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"");return{scriptContent:L,templateContent:A,allScripts:V}}),z={__filename:G,__dirname:d7.dirname(G),__stx:{webComponentsPath:J,builtComponents:Q}};await M1(()=>R0(U,z,G),void 0,(H)=>{let O=new O1(`Script execution failed in ${G}: ${H.message}`,G,void 0,void 0,U.substring(0,100));if(m0.log(O,{filePath:G,scriptContent:U}),Y.debug)throw O});let j=await P2.timeAsync("directive-processing",async()=>{return await Z0(_,z,G,Y,K)});if(B.length>0){let{interpolateScriptsInTemplate:H}=await Promise.resolve().then(() => (d0(),C2)),O=H(B.join(`
11611
11611
  `),z),F=j.search(/<\/body>/i);if(F!==-1)j=j.slice(0,F)+O+`
11612
11612
  `+j.slice(F);else j+=`
11613
- ${O}`}if(j=await p$(j),K.forEach((H)=>X.add(H)),Y.cache&&Y.cachePath){if(await B4(G,j,K,Y),Y.debug)console.log(`Cached template ${G} with ${K.size} dependencies`)}return{contents:j,loader:"html"}}catch(K){let W=K instanceof Error?K:new O1(`Plugin processing failed: ${String(K)}`,G);if(m0.log(W,{filePath:G,buildConfig:$.config}),C5.logDetailedError(W,{filePath:G,plugin:"bun-plugin-stx"}),Y.debug)console.error("stx Plugin Error:",W);let U=W,_=U.line||null,B=U.context||null;return{contents:Y.debug||W$()?`<!DOCTYPE html>
11613
+ ${O}`}if(j=await p$(j),K.forEach((H)=>X.add(H)),Y.cache&&Y.cachePath){if(await B6(G,j,K,Y),Y.debug)console.log(`Cached template ${G} with ${K.size} dependencies`)}return{contents:j,loader:"html"}}catch(K){let W=K instanceof Error?K:new O1(`Plugin processing failed: ${String(K)}`,G);if(m0.log(W,{filePath:G,buildConfig:$.config}),C5.logDetailedError(W,{filePath:G,plugin:"bun-plugin-stx"}),Y.debug)console.error("stx Plugin Error:",W);let U=W,_=U.line||null,B=U.context||null;return{contents:Y.debug||W$()?`<!DOCTYPE html>
11614
11614
  <html lang="en">
11615
11615
  <head>
11616
11616
  <meta charset="UTF-8">
@@ -11670,12 +11670,12 @@ ${O}`}if(j=await p$(j),K.forEach((H)=>X.add(H)),Y.cache&&Y.cachePath){if(await B
11670
11670
  <h1>Something went wrong</h1>
11671
11671
  <p>An internal error occurred. Please try again later.</p>
11672
11672
  </body>
11673
- </html>`,loader:"html"}}})}}});var{serve:dR}=globalThis.Bun;import V1 from"fs";import r0 from"path";async function kz($,Z={}){let Y=Z.port||3000,X=Z.watch!==!1,J=Z.hotReload!==!1&&X,Q=null,G=Z.hmrPort||Y+1,K=r0.resolve($);if(!V1.existsSync(K))return console.error(`${R.red}Error: File not found: ${R.bright}${K}${R.reset}`),!1;if(K.endsWith(".md"))return d4(K,Z);else if(!K.endsWith(".stx"))return console.error(`${R.red}Error: Unsupported file type: ${R.bright}${K}${R.reset}. Only .stx and .md files are supported.`),!1;let W=r0.join(process.cwd(),".stx/output");V1.mkdirSync(W,{recursive:!0}),console.log(`${R.blue}Building ${R.bright}${$}${R.reset}...`);let U=null,_=async()=>{try{let L={name:"public-assets",setup(w){w.onResolve({filter:/^\/(images|fonts|assets|public)\//},(M)=>{return{path:M.path,external:!0}})}},V=await Bun.build({entrypoints:[K],outdir:W,plugins:[L,K2],publicPath:"/",define:{"process.env.NODE_ENV":'"development"'},...Z.stxOptions});if(!V.success)return console.error(`${R.red}Build failed:${R.reset}`,V.logs),!1;let A=V.outputs.find((w)=>w.path.endsWith(".html"));if(!A)return console.error(`${R.red}No HTML output found${R.reset}`),!1;return U=await Bun.file(A.path).text(),!0}catch(L){return console.error(`${R.red}Error building stx file:${R.reset}`,L),!1}};if(!await _())return!1;let z=r0.dirname(K);await g5(z);let q=Y;try{if(q=await T$(Y),q!==Y)console.log(`${R.yellow}Port ${Y} is busy, using port ${q} instead${R.reset}`)}catch{return console.error(`${R.red}Could not find an available port${R.reset}`),!1}if(J){let L=Z.hmrPort||q+1;Q=h7({wsPort:L,verbose:!1}),G=Q.start(L)}let j={},H=null;try{let{loadStxConfig:L}=await Promise.resolve().then(() => (M$(),s$)),V=await L();if(V?.apiRouter)H=V?.apiRouter,console.log(`${R.blue}Using custom router for API handling${R.reset}`);if(V?.apiRoutes){j=V.apiRoutes;let A=Object.keys(j).length;if(A>0)console.log(`${R.blue}Loaded ${R.bright}${A} API route${A>1?"s":""}${R.reset}`)}if(V?.broadcasting?.enabled)try{let{startBroadcasting:A,loadChannels:N}=await Promise.resolve().then(() => (P4(),EX)),w=V.broadcasting;await A(w);let M=w.port??6001;console.log(`${R.magenta}Broadcasting on ${R.cyan}ws://localhost:${M}/ws${R.reset}`);let T=r0.join(process.cwd(),"channels.ts");if(V1.existsSync(T))try{let I=await N(T);console.log(`${R.blue}Loaded ${R.bright}${I} broadcast channel${I!==1?"s":""}${R.blue} from channels.ts${R.reset}`)}catch(I){console.warn(`${R.yellow}Failed to load channels.ts: ${I.message}${R.reset}`)}}catch(A){console.warn(`${R.yellow}Broadcasting failed to start: ${A.message}${R.reset}`)}}catch{}if(console.log(`${R.blue}Starting server on ${R.cyan}http://localhost:${q}/${R.reset}...`),J)console.log(`${R.magenta}Hot reload enabled on ws://localhost:${G}${R.reset}`);let O=dR({port:q,async fetch(L){let V=new URL(L.url);if(H)try{let T=await H.handleRequest(L);if(T.status!==404)return T}catch{}if(j[V.pathname])try{return await j[V.pathname](L)}catch(T){return new Response(JSON.stringify({error:T.message}),{status:500,headers:{"Content-Type":"application/json"}})}if(V.pathname==="/")return(async()=>{let I=await V0(U||"");if(J)I=y1(I,G);if(Z.native)if(I.includes("<head>"))I=I.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(I.includes("<html"))I=I.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 I="<head><style>[data-stx-sidebar],.stx-sidebar{display:none!important}</style><script>window.__craftNativeSidebar=true;document.documentElement.classList.add('has-native-sidebar')</script></head>"+I;return I})().then((I)=>new Response(I,{headers:{"Content-Type":"text/html","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}}));let A=r0.join(W,V.pathname);if(V1.existsSync(A)&&V1.statSync(A).isFile()){let T=Bun.file(A),I=r0.extname(A).toLowerCase(),E="text/plain";if(I===".ts"||I===".tsx"){let S=new Bun.Transpiler({loader:I===".tsx"?"tsx":"ts"}),k=await T.text(),b=S.transformSync(k);return new Response(b,{headers:{"Content-Type":"application/javascript","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}switch(I){case".html":E="text/html";break;case".css":E="text/css";break;case".js":E="text/javascript";break;case".json":E="application/json";break;case".png":E="image/png";break;case".jpg":case".jpeg":E="image/jpeg";break;case".gif":E="image/gif";break;case".woff":E="font/woff";break;case".woff2":E="font/woff2";break;case".ttf":E="font/ttf";break;case".otf":E="font/otf";break;case".eot":E="application/vnd.ms-fontobject";break}return new Response(T,{headers:{"Content-Type":E}})}let N=r0.dirname(K),w=r0.join(N,V.pathname);if(V1.existsSync(w)&&V1.statSync(w).isFile()){let T=Bun.file(w),I=r0.extname(w).toLowerCase(),E="text/plain";if(I===".ts"||I===".tsx"){let S=new Bun.Transpiler({loader:I===".tsx"?"tsx":"ts"}),k=await T.text(),b=S.transformSync(k);return new Response(b,{headers:{"Content-Type":"application/javascript","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}switch(I){case".html":E="text/html";break;case".css":E="text/css";break;case".js":E="text/javascript";break;case".json":E="application/json";break;case".png":E="image/png";break;case".jpg":case".jpeg":E="image/jpeg";break;case".gif":E="image/gif";break;case".svg":E="image/svg+xml";break;case".ico":E="image/x-icon";break;case".woff":E="font/woff";break;case".woff2":E="font/woff2";break;case".ttf":E="font/ttf";break;case".otf":E="font/otf";break;case".eot":E="application/vnd.ms-fontobject";break}return new Response(T,{headers:{"Content-Type":E}})}let M=r0.join(process.cwd(),"public",V.pathname);if(V1.existsSync(M)&&V1.statSync(M).isFile()){let T=Bun.file(M),I=r0.extname(M).toLowerCase(),E="application/octet-stream";if(I===".ts"||I===".tsx"){let S=new Bun.Transpiler({loader:I===".tsx"?"tsx":"ts"}),k=await T.text(),b=S.transformSync(k);return new Response(b,{headers:{"Content-Type":"application/javascript","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}switch(I){case".html":E="text/html";break;case".css":E="text/css";break;case".js":E="text/javascript";break;case".json":E="application/json";break;case".png":E="image/png";break;case".jpg":case".jpeg":E="image/jpeg";break;case".gif":E="image/gif";break;case".svg":E="image/svg+xml";break;case".ico":E="image/x-icon";break;case".woff":E="font/woff";break;case".woff2":E="font/woff2";break;case".ttf":E="font/ttf";break;case".otf":E="font/otf";break;case".eot":E="application/vnd.ms-fontobject";break}return new Response(T,{headers:{"Content-Type":E}})}return new Response("Not Found",{status:404})},error(L){return new Response(`<pre>${L}
11673
+ </html>`,loader:"html"}}})}}});var{serve:dR}=globalThis.Bun;import V1 from"fs";import r0 from"path";async function kz($,Z={}){let Y=Z.port||3000,X=Z.watch!==!1,J=Z.hotReload!==!1&&X,Q=null,G=Z.hmrPort||Y+1,K=r0.resolve($);if(!V1.existsSync(K))return console.error(`${R.red}Error: File not found: ${R.bright}${K}${R.reset}`),!1;if(K.endsWith(".md"))return d6(K,Z);else if(!K.endsWith(".stx"))return console.error(`${R.red}Error: Unsupported file type: ${R.bright}${K}${R.reset}. Only .stx and .md files are supported.`),!1;let W=r0.join(process.cwd(),".stx/output");V1.mkdirSync(W,{recursive:!0}),console.log(`${R.blue}Building ${R.bright}${$}${R.reset}...`);let U=null,_=async()=>{try{let L={name:"public-assets",setup(w){w.onResolve({filter:/^\/(images|fonts|assets|public)\//},(M)=>{return{path:M.path,external:!0}})}},V=await Bun.build({entrypoints:[K],outdir:W,plugins:[L,K2],publicPath:"/",define:{"process.env.NODE_ENV":'"development"'},...Z.stxOptions});if(!V.success)return console.error(`${R.red}Build failed:${R.reset}`,V.logs),!1;let A=V.outputs.find((w)=>w.path.endsWith(".html"));if(!A)return console.error(`${R.red}No HTML output found${R.reset}`),!1;return U=await Bun.file(A.path).text(),!0}catch(L){return console.error(`${R.red}Error building stx file:${R.reset}`,L),!1}};if(!await _())return!1;let z=r0.dirname(K);await g5(z);let q=Y;try{if(q=await T$(Y),q!==Y)console.log(`${R.yellow}Port ${Y} is busy, using port ${q} instead${R.reset}`)}catch{return console.error(`${R.red}Could not find an available port${R.reset}`),!1}if(J){let L=Z.hmrPort||q+1;Q=h7({wsPort:L,verbose:!1}),G=Q.start(L)}let j={},H=null;try{let{loadStxConfig:L}=await Promise.resolve().then(() => (M$(),s$)),V=await L();if(V?.apiRouter)H=V?.apiRouter,console.log(`${R.blue}Using custom router for API handling${R.reset}`);if(V?.apiRoutes){j=V.apiRoutes;let A=Object.keys(j).length;if(A>0)console.log(`${R.blue}Loaded ${R.bright}${A} API route${A>1?"s":""}${R.reset}`)}if(V?.broadcasting?.enabled)try{let{startBroadcasting:A,loadChannels:N}=await Promise.resolve().then(() => (P6(),EX)),w=V.broadcasting;await A(w);let M=w.port??6001;console.log(`${R.magenta}Broadcasting on ${R.cyan}ws://localhost:${M}/ws${R.reset}`);let T=r0.join(process.cwd(),"channels.ts");if(V1.existsSync(T))try{let I=await N(T);console.log(`${R.blue}Loaded ${R.bright}${I} broadcast channel${I!==1?"s":""}${R.blue} from channels.ts${R.reset}`)}catch(I){console.warn(`${R.yellow}Failed to load channels.ts: ${I.message}${R.reset}`)}}catch(A){console.warn(`${R.yellow}Broadcasting failed to start: ${A.message}${R.reset}`)}}catch{}if(console.log(`${R.blue}Starting server on ${R.cyan}http://localhost:${q}/${R.reset}...`),J)console.log(`${R.magenta}Hot reload enabled on ws://localhost:${G}${R.reset}`);let O=dR({port:q,async fetch(L){let V=new URL(L.url);if(H)try{let T=await H.handleRequest(L);if(T.status!==404)return T}catch{}if(j[V.pathname])try{return await j[V.pathname](L)}catch(T){return new Response(JSON.stringify({error:T.message}),{status:500,headers:{"Content-Type":"application/json"}})}if(V.pathname==="/")return(async()=>{let I=await V0(U||"");if(J)I=y1(I,G);if(Z.native)if(I.includes("<head>"))I=I.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(I.includes("<html"))I=I.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 I="<head><style>[data-stx-sidebar],.stx-sidebar{display:none!important}</style><script>window.__craftNativeSidebar=true;document.documentElement.classList.add('has-native-sidebar')</script></head>"+I;return I})().then((I)=>new Response(I,{headers:{"Content-Type":"text/html","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}}));let A=r0.join(W,V.pathname);if(V1.existsSync(A)&&V1.statSync(A).isFile()){let T=Bun.file(A),I=r0.extname(A).toLowerCase(),E="text/plain";if(I===".ts"||I===".tsx"){let S=new Bun.Transpiler({loader:I===".tsx"?"tsx":"ts"}),k=await T.text(),b=S.transformSync(k);return new Response(b,{headers:{"Content-Type":"application/javascript","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}switch(I){case".html":E="text/html";break;case".css":E="text/css";break;case".js":E="text/javascript";break;case".json":E="application/json";break;case".png":E="image/png";break;case".jpg":case".jpeg":E="image/jpeg";break;case".gif":E="image/gif";break;case".woff":E="font/woff";break;case".woff2":E="font/woff2";break;case".ttf":E="font/ttf";break;case".otf":E="font/otf";break;case".eot":E="application/vnd.ms-fontobject";break}return new Response(T,{headers:{"Content-Type":E}})}let N=r0.dirname(K),w=r0.join(N,V.pathname);if(V1.existsSync(w)&&V1.statSync(w).isFile()){let T=Bun.file(w),I=r0.extname(w).toLowerCase(),E="text/plain";if(I===".ts"||I===".tsx"){let S=new Bun.Transpiler({loader:I===".tsx"?"tsx":"ts"}),k=await T.text(),b=S.transformSync(k);return new Response(b,{headers:{"Content-Type":"application/javascript","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}switch(I){case".html":E="text/html";break;case".css":E="text/css";break;case".js":E="text/javascript";break;case".json":E="application/json";break;case".png":E="image/png";break;case".jpg":case".jpeg":E="image/jpeg";break;case".gif":E="image/gif";break;case".svg":E="image/svg+xml";break;case".ico":E="image/x-icon";break;case".woff":E="font/woff";break;case".woff2":E="font/woff2";break;case".ttf":E="font/ttf";break;case".otf":E="font/otf";break;case".eot":E="application/vnd.ms-fontobject";break}return new Response(T,{headers:{"Content-Type":E}})}let M=r0.join(process.cwd(),"public",V.pathname);if(V1.existsSync(M)&&V1.statSync(M).isFile()){let T=Bun.file(M),I=r0.extname(M).toLowerCase(),E="application/octet-stream";if(I===".ts"||I===".tsx"){let S=new Bun.Transpiler({loader:I===".tsx"?"tsx":"ts"}),k=await T.text(),b=S.transformSync(k);return new Response(b,{headers:{"Content-Type":"application/javascript","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}switch(I){case".html":E="text/html";break;case".css":E="text/css";break;case".js":E="text/javascript";break;case".json":E="application/json";break;case".png":E="image/png";break;case".jpg":case".jpeg":E="image/jpeg";break;case".gif":E="image/gif";break;case".svg":E="image/svg+xml";break;case".ico":E="image/x-icon";break;case".woff":E="font/woff";break;case".woff2":E="font/woff2";break;case".ttf":E="font/ttf";break;case".otf":E="font/otf";break;case".eot":E="application/vnd.ms-fontobject";break}return new Response(T,{headers:{"Content-Type":E}})}return new Response("Not Found",{status:404})},error(L){return new Response(`<pre>${L}
11674
11674
  ${L.stack}</pre>`,{headers:{"Content-Type":"text/html"}})}});console.clear(),console.log(`
11675
11675
  ${R.blue}stx${R.reset} ${R.green}${process.env.stx_VERSION||"v0.0.10"}${R.reset} ${R.dim}ready in ${Math.random()*10+5|0}.${Math.random()*90+10|0} ms${R.reset}`),console.log(`
11676
11676
  ${R.bright}\u2192 ${R.cyan}http://localhost:${q}/${R.reset}`),console.log(`
11677
11677
  ${R.yellow}Routes:${R.reset}`);let F=r0.relative(process.cwd(),K);if(console.log(` ${R.green}\u2514\u2500 /${R.reset} \u2192 ${R.bright}${F}${R.reset}`),console.log(`
11678
- Press ${R.cyan}h${R.reset} + ${R.cyan}Enter${R.reset} to show shortcuts`),E$(O.url.toString(),()=>{if(X)V1.watch(r0.dirname(K),{recursive:!0}).close();O.stop()}),Z.native){let L=await Bun.file(K).text(),V=h4(L);await X2(q,{title:r0.basename(K,".stx"),nativeSidebar:!!V,sidebarConfig:V})}if(X){let L=r0.dirname(K);console.log(`${R.blue}Watching ${R.bright}${L}${R.reset} for changes...`);let V=V1.watch(L,{recursive:!0},async(A,N)=>{if(!N||g7(N))return;if(f7(N)){console.log(`${R.yellow}File ${R.bright}${N}${R.yellow} changed, rebuilding...${R.reset}`),F$.clear(),R$();let w=await _();if(await Z7(z),J&&Q)if(w)Q.reload(N);else Q.error("Build failed - check console for details")}else if(v7(N)){if(console.log(`${R.cyan}CSS ${R.bright}${N}${R.cyan} changed${R.reset}`),J&&Q)Q.updateCss(N)}});process.on("SIGINT",()=>{if(V.close(),Q)G2();O.stop(),process.exit(0)})}return!0}var Sz=D(()=>{p5();m4();q0();x7();kX()});var bX=`
11678
+ Press ${R.cyan}h${R.reset} + ${R.cyan}Enter${R.reset} to show shortcuts`),E$(O.url.toString(),()=>{if(X)V1.watch(r0.dirname(K),{recursive:!0}).close();O.stop()}),Z.native){let L=await Bun.file(K).text(),V=h6(L);await X2(q,{title:r0.basename(K,".stx"),nativeSidebar:!!V,sidebarConfig:V})}if(X){let L=r0.dirname(K);console.log(`${R.blue}Watching ${R.bright}${L}${R.reset} for changes...`);let V=V1.watch(L,{recursive:!0},async(A,N)=>{if(!N||g7(N))return;if(f7(N)){console.log(`${R.yellow}File ${R.bright}${N}${R.yellow} changed, rebuilding...${R.reset}`),F$.clear(),R$();let w=await _();if(await Z7(z),J&&Q)if(w)Q.reload(N);else Q.error("Build failed - check console for details")}else if(v7(N)){if(console.log(`${R.cyan}CSS ${R.bright}${N}${R.cyan} changed${R.reset}`),J&&Q)Q.updateCss(N)}});process.on("SIGINT",()=>{if(V.close(),Q)G2();O.stop(),process.exit(0)})}return!0}var Sz=D(()=>{p5();m6();q0();x7();kX()});var bX=`
11679
11679
  <script data-stx-helpers>
11680
11680
  (function() {
11681
11681
  'use strict'
@@ -12135,17 +12135,17 @@ else {
12135
12135
  min-width: 100px;
12136
12136
  color: #555;
12137
12137
  }
12138
- ${x4()}
12138
+ ${x6()}
12139
12139
  </style>
12140
12140
  </head>
12141
12141
  <body>
12142
- ${g4(L)}
12143
- ${v4(T)}
12142
+ ${g6(L)}
12143
+ ${v6(T)}
12144
12144
 
12145
12145
  ${F}
12146
12146
 
12147
12147
  <script>
12148
- ${f4()}
12148
+ ${f6()}
12149
12149
  </script>
12150
12150
  </body>
12151
12151
  </html>
@@ -12156,12 +12156,12 @@ ${j.stack}</pre>`,{headers:{"Content-Type":"text/html"}})}});console.clear(),con
12156
12156
  ${R.blue}stx${R.reset} ${R.green}${process.env.stx_VERSION||"v0.0.10"}${R.reset} ${R.dim}ready in ${Math.random()*10+5|0}.${Math.random()*90+10|0} ms${R.reset}`),console.log(`
12157
12157
  ${R.bright}\u2192 ${R.cyan}http://localhost:${_}/${R.reset}`),console.log(`
12158
12158
  ${R.yellow}Routes:${R.reset}`);let z=new Set(K.map((j)=>j.routeTemplate)),q=Object.entries(G).filter(([j])=>!z.has(j)).sort(([j],[H])=>j.localeCompare(H)).map(([j,H])=>({route:j==="/"?"/":j,filePath:c0.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:c0.relative(process.cwd(),j.filePath),fileType:"stx"})}if(q.sort((j,H)=>j.route.localeCompare(H.route)),q.forEach((j,H)=>{let F=H===q.length-1?"\u2514\u2500 ":"\u251C\u2500 ",L=j.fileType==="md"?`${R.magenta}(markdown)${R.reset}`:"";console.log(` ${R.green}${F}${j.route}${R.reset} \u2192 ${R.bright}${j.filePath}${R.reset} ${L}`)}),console.log(`
12159
- Press ${R.cyan}h${R.reset} + ${R.cyan}Enter${R.reset} to show shortcuts`),E$(B.url.toString(),()=>{if(X)I$.watch(Q,{recursive:!0}).close();B.stop()}),X){console.log(`${R.blue}Watching for changes...${R.reset}`);let j=I$.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(`${R.yellow}File ${R.bright}${O}${R.yellow} changed, rebuilding...${R.reset}`),F$.clear(),R$(),await W()});process.on("SIGINT",()=>{j.close(),B.stop(),process.exit(0)})}return!0}var Cz=D(()=>{h5();u0();p5();m4();q0();x7()});var{serve:uR}=globalThis.Bun;import s1 from"fs";import A0 from"path";function yX($){let Z=Bun.file($),Y=A0.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 yz($=".",Z={}){let Y=Z.port||3000,X=Z.watch!==!1,J=Z.hotReload!==!1&&X,Q=null,G=Z.hmrPort||Y+1,K=A0.resolve($),{loadStxConfig:W}=await Promise.resolve().then(() => (M$(),s$)),U=await W(K),_=U.root&&U.root!=="."?A0.join(K,U.root):K,B=U.pagesDir||"pages",z=A0.join(_,B);if(!s1.existsSync(z))return console.error(`${R.red}Error: No '${B}' directory found in ${R.bright}${_}${R.reset}`),console.log(`${R.dim}Create a ${B}/ directory with .stx files to define your routes.${R.reset}`),console.log(`${R.dim}Example: ${B}/index.stx for the homepage.${R.reset}`),!1;let q=n1(_);if(q.length===0)return console.error(`${R.red}Error: No page files found in ${R.bright}${z}${R.reset}`),!1;console.log(`${R.blue}Found ${R.bright}${q.length}${R.blue} routes${R.reset}`);let j=U?._pluginPageDirs||[],H=[];for(let{dir:f,prefix:g}of j)if(s1.existsSync(f)){let h=n1(A0.dirname(f),{pagesDir:A0.basename(f)});for(let l of h){let i=g==="/"?l.pattern:`${g}${l.pattern==="/"?"":l.pattern}`;H.push({route:{...l,pattern:i},prefix:g})}if(h.length>0)console.log(`${R.blue}Plugin pages: ${R.bright}${h.length}${R.blue} routes at ${R.cyan}${g}${R.reset}`)}let O=new Map,F=null,L=null;if(Z.stxOptions?.shell!==!1){if(L=WX(K,Z.stxOptions?.shell),L){if(F=await k4(L,Z.stxOptions||{}),F)console.log(`${R.blue}Using app shell: ${R.bright}${A0.relative(K,L)}${R.reset} ${R.dim}(deprecated: use layouts/default.stx instead)${R.reset}`)}}R7(),await I7(K);let V=E7();if(V.length>0)console.log(`${R.blue}Loaded ${R.bright}${V.length}${R.blue} middleware: ${R.dim}${V.join(", ")}${R.reset}`);let A={},N=null;try{let{loadStxConfig:f}=await Promise.resolve().then(() => (M$(),s$)),g=await f(K);if(g?.apiRouter)N=g?.apiRouter,console.log(`${R.blue}Using custom router for API handling${R.reset}`);if(g?.apiRoutes){A=g.apiRoutes;let h=Object.keys(A).length;if(h>0)console.log(`${R.blue}Loaded ${R.bright}${h} API route${h>1?"s":""}${R.reset}`)}if(g?.broadcasting?.enabled)try{let{startBroadcasting:h,loadChannels:l}=await Promise.resolve().then(() => (P4(),EX)),i=g.broadcasting;await h(i);let Y0=i.port??6001;console.log(`${R.magenta}Broadcasting on ${R.cyan}ws://localhost:${Y0}/ws${R.reset}`);let W0=A0.join(process.cwd(),"channels.ts");if(s1.existsSync(W0))try{let D0=await l(W0);console.log(`${R.blue}Loaded ${R.bright}${D0} broadcast channel${D0!==1?"s":""}${R.blue} from channels.ts${R.reset}`)}catch(D0){console.warn(`${R.yellow}Failed to load channels.ts: ${D0.message}${R.reset}`)}}catch(h){console.warn(`${R.yellow}Broadcasting failed to start: ${h.message}${R.reset}`)}}catch{}let w=A0.join(K,".stx/output");s1.mkdirSync(w,{recursive:!0});let M=new Map,T=async(f)=>{let g=_X(z,f);if(!g)return null;try{let h=await Bun.build({entrypoints:[g],outdir:w,plugins:[K2],publicPath:"/",define:{"process.env.NODE_ENV":'"development"'},...Z.stxOptions});if(!h.success)return null;let l=h.outputs.find((i)=>i.path.endsWith(".html"));if(!l)return null;return await Bun.file(l.path).text()}catch{return null}},I=async(f,g)=>{try{let{processDirectives:h,extractVariables:l,defaultConfig:i,loadStxConfig:Y0,injectRouterScript:W0}=await Promise.resolve().then(() => (M$(),s$)),D0=await Y0(K),M0=await Bun.file(f.filePath).text(),{classifyAllScripts:v}=await Promise.resolve().then(() => (M$(),s$)),d=v(M0),n=d.server.map((z0)=>z0.content),p=M0;for(let z0 of d.server)p=p.replace(z0.fullTag,"");let m={__filename:f.filePath,__dirname:A0.dirname(f.filePath),params:g??{}},{resetHead:u}=await Promise.resolve().then(() => (H$(),y6));u();for(let z0 of n)try{await l(z0,m,f.filePath)}catch(l0){if(Z.stxOptions?.debug)console.error("[stx] variable extraction error",f.filePath,l0?.message||l0)}let a=new Set,r=(z0)=>{if(!z0)return z0;if(A0.isAbsolute(z0))return z0;return A0.resolve(K,z0)},s={...i,...D0,...Z.stxOptions,autoShell:!0};if(Z.debugDirectives)s.debug=!0;s.partialsDir=r(s.partialsDir),s.componentsDir=r(s.componentsDir),s.layoutsDir=r(s.layoutsDir),s.storesDir=r(s.storesDir||"stores");let J0;if(Z.profile){let z0=performance.now();J0=await h(p,m,f.filePath,s,a);let l0=performance.now()-z0,Y5=A0.relative(K,f.filePath)||f.filePath;console.log(`[stx:profile] ${Y5} \u2192 ${l0.toFixed(2)}ms`)}else J0=await h(p,m,f.filePath,s,a);if(!F)J0=await W0(J0);{let{interpolateScriptExpressions:z0}=await Promise.resolve().then(() => (d0(),C2));J0=J0.replace(/<script\b([^>]*)>([\s\S]*?)<\/script>/g,(l0,Y5,X5)=>{if(!/function\s+__stx_setup_/.test(X5))return l0;return`<script${Y5}>${z0(X5,m)}</script>`})}if(F)J0=n$(J0);return{route:f,content:J0}}catch(h){return console.error(`${R.red}Error building ${R.bright}${f.pattern}${R.reset}:`,h),null}},E=async()=>{M.clear(),O.clear();for(let f of q){let g=await I(f);if(g)M.set(f.pattern,g)}for(let{route:f}of H){let g=await I(f);if(g)O.set(f.pattern,g)}return M.size>0};if(console.log(`${R.blue}Building pages...${R.reset}`),!await E())return console.error(`${R.red}No pages were successfully built${R.reset}`),!1;await g5(K);let k=Y;try{if(k=await T$(Y),k!==Y)console.log(`${R.yellow}Port ${Y} is busy, using port ${k} instead${R.reset}`)}catch{return console.error(`${R.red}Could not find an available port${R.reset}`),!1}if(J){let f=Z.hmrPort||k+1;Q=h7({wsPort:f,verbose:!1}),G=Q.start(f)}let b=(f,g)=>{let h=`<script>(function(){var s=typeof stx!=='undefined'?stx:{};s._rp=${JSON.stringify(g)};if(s.setRouteParams)s.setRouteParams(s._rp);})()</script>`;if(f.includes("</head>"))return f.replace("</head>",`${h}</head>`);if(f.includes("<body"))return f.replace(/<body([^>]*)>/,`<body$1>${h}`);return h+f};console.log(`${R.blue}Starting server...${R.reset}`);let P=uR({port:k,async fetch(f){let g=new URL(f.url),h=U?.publicDir||"public",l=A0.join(K,h,g.pathname),i=A0.join(K,g.pathname),Y0=A0.join(w,g.pathname),[W0,D0,M0]=await Promise.all([s1.promises.stat(l).catch(()=>null),s1.promises.stat(i).catch(()=>null),s1.promises.stat(Y0).catch(()=>null)]);if(W0?.isFile())return yX(l);if(D0?.isFile())return yX(i);if(M0?.isFile())return yX(Y0);if(g.pathname.startsWith("/_stx/component/")){let p=decodeURIComponent(g.pathname.slice(16));if(p)try{let m=`<${p} />`,u={...buildConfig,autoShell:!1},a=await processDirectives(m,{},A0.join(K,"components",`${p}.stx`),u,new Set);return new Response(a,{headers:{"Content-Type":"text/html"}})}catch(m){return new Response(`<div class="stx-async-error">${m.message}</div>`,{status:500,headers:{"Content-Type":"text/html"}})}}if(N)try{let p=await N.handleRequest(f);if(p.status!==404)return p}catch{}if(A[g.pathname])try{return await A[g.pathname](f)}catch(p){return new Response(JSON.stringify({error:p.message}),{status:500,headers:{"Content-Type":"application/json"}})}let v=S4(g.pathname,q);if(v){let p=M.get(v.route.pattern);if(v.route.isDynamic&&Object.keys(v.params).length>0){let m=await I(v.route,v.params);if(m)p=m}if(p){let m=C6();if(m.validate){if(!await m.validate({params:v.params})){let r=await T(404);if(r){let s=r;if(s=await V0(s,K),J)s=y1(s,G);return new Response(s,{status:404,headers:{"Content-Type":"text/html"}})}return new Response("Not Found",{status:404})}}if(m.middleware){let a=T7(g.pathname,v.params,m,g.search),r=M7(a,null,f),s=await D7(m.middleware,r);if(s.redirect){let J0=s.redirect.path,z0=s.redirect.options.redirectCode||302,l0=new Headers(s.responseHeaders);return l0.set("Location",J0),new Response(null,{status:z0,headers:l0})}if(s.abort){let{statusCode:J0,message:z0}=s.abort.error;return new Response(`<!DOCTYPE html><html><head><title>Error ${J0}</title></head><body><h1>Error ${J0}</h1><p>${z0}</p></body></html>`,{status:J0,headers:{"Content-Type":"text/html"}})}if(Object.keys(s.state).length>0){let J0=`<script>(function(){var s=typeof stx!=='undefined'?stx:{};s._ms=${JSON.stringify(s.state)};if(s.setMiddlewareState)s.setMiddlewareState(s._ms);})()</script>`;p.content=p.content.replace("</head>",`${J0}</head>`)}}let u=p.content;if(F&&UX(f)){if(Object.keys(v.params).length>0)u=b(u,v.params);u=await V0(u,K);let a=U?.router?.container||"main";return u=b7(u,a),new Response(u,{headers:{"Content-Type":"text/html","X-STX-Fragment":"true","Cache-Control":"no-store, no-cache, must-revalidate"}})}if(F)u=S7(F,u);if(Object.keys(v.params).length>0)u=b(u,v.params);if(u=await V0(u,K),J)u=y1(u,G);if(Z.native)if(u.includes("<head>"))u=u.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 u="<head><style>[data-stx-sidebar],.stx-sidebar{display:none!important}</style><script>window.__craftNativeSidebar=true;document.documentElement.classList.add('has-native-sidebar')</script></head>"+u;return new Response(u,{headers:{"Content-Type":"text/html","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}}if(H.length>0){let p=H.map((u)=>u.route),m=S4(g.pathname,p);if(m){let u=O.get(m.route.pattern);if(u){let a=u.content;if(F)a=S7(F,a);if(Object.keys(m.params).length>0)a=b(a,m.params);if(a=await V0(a,K),J)a=y1(a,G);return new Response(a,{headers:{"Content-Type":"text/html","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}}for(let{prefix:u}of j)if(u!=="/"&&g.pathname.startsWith(u)){let a=O.get(u)||O.get(u+"/");if(a){let r=a.content;if(F)r=S7(F,r);if(r=await V0(r,K),J)r=y1(r,G);return new Response(r,{headers:{"Content-Type":"text/html","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}}}let d=M.get("/");if(d){let p=d.content;if(p=await V0(p,K),J)p=y1(p,G);if(Z.native)if(p.includes("<head>"))p=p.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 p="<head><style>[data-stx-sidebar],.stx-sidebar{display:none!important}</style><script>window.__craftNativeSidebar=true;document.documentElement.classList.add('has-native-sidebar')</script></head>"+p;return new Response(p,{headers:{"Content-Type":"text/html","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}let n=await T(404);if(n){let p=n;if(p=await V0(p,K),J)p=y1(p,G);return new Response(p,{status:404,headers:{"Content-Type":"text/html"}})}return new Response("Not Found",{status:404})},async error(f){let g=await T(500);if(g)return new Response(g,{status:500,headers:{"Content-Type":"text/html"}});return new Response(`<pre>${f}
12159
+ Press ${R.cyan}h${R.reset} + ${R.cyan}Enter${R.reset} to show shortcuts`),E$(B.url.toString(),()=>{if(X)I$.watch(Q,{recursive:!0}).close();B.stop()}),X){console.log(`${R.blue}Watching for changes...${R.reset}`);let j=I$.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(`${R.yellow}File ${R.bright}${O}${R.yellow} changed, rebuilding...${R.reset}`),F$.clear(),R$(),await W()});process.on("SIGINT",()=>{j.close(),B.stop(),process.exit(0)})}return!0}var Cz=D(()=>{h5();u0();p5();m6();q0();x7()});var{serve:uR}=globalThis.Bun;import s1 from"fs";import A0 from"path";function yX($){let Z=Bun.file($),Y=A0.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 yz($=".",Z={}){let Y=Z.port||3000,X=Z.watch!==!1,J=Z.hotReload!==!1&&X,Q=null,G=Z.hmrPort||Y+1,K=A0.resolve($),{loadStxConfig:W}=await Promise.resolve().then(() => (M$(),s$)),U=await W(K),_=U.root&&U.root!=="."?A0.join(K,U.root):K,B=U.pagesDir||"pages",z=A0.join(_,B);if(!s1.existsSync(z))return console.error(`${R.red}Error: No '${B}' directory found in ${R.bright}${_}${R.reset}`),console.log(`${R.dim}Create a ${B}/ directory with .stx files to define your routes.${R.reset}`),console.log(`${R.dim}Example: ${B}/index.stx for the homepage.${R.reset}`),!1;let q=n1(_);if(q.length===0)return console.error(`${R.red}Error: No page files found in ${R.bright}${z}${R.reset}`),!1;console.log(`${R.blue}Found ${R.bright}${q.length}${R.blue} routes${R.reset}`);let j=U?._pluginPageDirs||[],H=[];for(let{dir:f,prefix:g}of j)if(s1.existsSync(f)){let h=n1(A0.dirname(f),{pagesDir:A0.basename(f)});for(let l of h){let i=g==="/"?l.pattern:`${g}${l.pattern==="/"?"":l.pattern}`;H.push({route:{...l,pattern:i},prefix:g})}if(h.length>0)console.log(`${R.blue}Plugin pages: ${R.bright}${h.length}${R.blue} routes at ${R.cyan}${g}${R.reset}`)}let O=new Map,F=null,L=null;if(Z.stxOptions?.shell!==!1){if(L=WX(K,Z.stxOptions?.shell),L){if(F=await k6(L,Z.stxOptions||{}),F)console.log(`${R.blue}Using app shell: ${R.bright}${A0.relative(K,L)}${R.reset} ${R.dim}(deprecated: use layouts/default.stx instead)${R.reset}`)}}R7(),await I7(K);let V=E7();if(V.length>0)console.log(`${R.blue}Loaded ${R.bright}${V.length}${R.blue} middleware: ${R.dim}${V.join(", ")}${R.reset}`);let A={},N=null;try{let{loadStxConfig:f}=await Promise.resolve().then(() => (M$(),s$)),g=await f(K);if(g?.apiRouter)N=g?.apiRouter,console.log(`${R.blue}Using custom router for API handling${R.reset}`);if(g?.apiRoutes){A=g.apiRoutes;let h=Object.keys(A).length;if(h>0)console.log(`${R.blue}Loaded ${R.bright}${h} API route${h>1?"s":""}${R.reset}`)}if(g?.broadcasting?.enabled)try{let{startBroadcasting:h,loadChannels:l}=await Promise.resolve().then(() => (P6(),EX)),i=g.broadcasting;await h(i);let Y0=i.port??6001;console.log(`${R.magenta}Broadcasting on ${R.cyan}ws://localhost:${Y0}/ws${R.reset}`);let W0=A0.join(process.cwd(),"channels.ts");if(s1.existsSync(W0))try{let D0=await l(W0);console.log(`${R.blue}Loaded ${R.bright}${D0} broadcast channel${D0!==1?"s":""}${R.blue} from channels.ts${R.reset}`)}catch(D0){console.warn(`${R.yellow}Failed to load channels.ts: ${D0.message}${R.reset}`)}}catch(h){console.warn(`${R.yellow}Broadcasting failed to start: ${h.message}${R.reset}`)}}catch{}let w=A0.join(K,".stx/output");s1.mkdirSync(w,{recursive:!0});let M=new Map,T=async(f)=>{let g=_X(z,f);if(!g)return null;try{let h=await Bun.build({entrypoints:[g],outdir:w,plugins:[K2],publicPath:"/",define:{"process.env.NODE_ENV":'"development"'},...Z.stxOptions});if(!h.success)return null;let l=h.outputs.find((i)=>i.path.endsWith(".html"));if(!l)return null;return await Bun.file(l.path).text()}catch{return null}},I=async(f,g)=>{try{let{processDirectives:h,extractVariables:l,defaultConfig:i,loadStxConfig:Y0,injectRouterScript:W0}=await Promise.resolve().then(() => (M$(),s$)),D0=await Y0(K),M0=await Bun.file(f.filePath).text(),{classifyAllScripts:v}=await Promise.resolve().then(() => (M$(),s$)),d=v(M0),n=d.server.map((z0)=>z0.content),p=M0;for(let z0 of d.server)p=p.replace(z0.fullTag,"");let m={__filename:f.filePath,__dirname:A0.dirname(f.filePath),params:g??{}},{resetHead:u}=await Promise.resolve().then(() => (H$(),y4));u();for(let z0 of n)try{await l(z0,m,f.filePath)}catch(l0){if(Z.stxOptions?.debug)console.error("[stx] variable extraction error",f.filePath,l0?.message||l0)}let a=new Set,r=(z0)=>{if(!z0)return z0;if(A0.isAbsolute(z0))return z0;return A0.resolve(K,z0)},s={...i,...D0,...Z.stxOptions,autoShell:!0};if(Z.debugDirectives)s.debug=!0;s.partialsDir=r(s.partialsDir),s.componentsDir=r(s.componentsDir),s.layoutsDir=r(s.layoutsDir),s.storesDir=r(s.storesDir||"stores");let J0;if(Z.profile){let z0=performance.now();J0=await h(p,m,f.filePath,s,a);let l0=performance.now()-z0,Y5=A0.relative(K,f.filePath)||f.filePath;console.log(`[stx:profile] ${Y5} \u2192 ${l0.toFixed(2)}ms`)}else J0=await h(p,m,f.filePath,s,a);if(!F)J0=await W0(J0);{let{interpolateScriptExpressions:z0}=await Promise.resolve().then(() => (d0(),C2));J0=J0.replace(/<script\b([^>]*)>([\s\S]*?)<\/script>/g,(l0,Y5,X5)=>{if(!/function\s+__stx_setup_/.test(X5))return l0;return`<script${Y5}>${z0(X5,m)}</script>`})}if(F)J0=n$(J0);return{route:f,content:J0}}catch(h){return console.error(`${R.red}Error building ${R.bright}${f.pattern}${R.reset}:`,h),null}},E=async()=>{M.clear(),O.clear();for(let f of q){let g=await I(f);if(g)M.set(f.pattern,g)}for(let{route:f}of H){let g=await I(f);if(g)O.set(f.pattern,g)}return M.size>0};if(console.log(`${R.blue}Building pages...${R.reset}`),!await E())return console.error(`${R.red}No pages were successfully built${R.reset}`),!1;await g5(K);let k=Y;try{if(k=await T$(Y),k!==Y)console.log(`${R.yellow}Port ${Y} is busy, using port ${k} instead${R.reset}`)}catch{return console.error(`${R.red}Could not find an available port${R.reset}`),!1}if(J){let f=Z.hmrPort||k+1;Q=h7({wsPort:f,verbose:!1}),G=Q.start(f)}let b=(f,g)=>{let h=`<script>(function(){var s=typeof stx!=='undefined'?stx:{};s._rp=${JSON.stringify(g)};if(s.setRouteParams)s.setRouteParams(s._rp);})()</script>`;if(f.includes("</head>"))return f.replace("</head>",`${h}</head>`);if(f.includes("<body"))return f.replace(/<body([^>]*)>/,`<body$1>${h}`);return h+f};console.log(`${R.blue}Starting server...${R.reset}`);let P=uR({port:k,async fetch(f){let g=new URL(f.url),h=U?.publicDir||"public",l=A0.join(K,h,g.pathname),i=A0.join(K,g.pathname),Y0=A0.join(w,g.pathname),[W0,D0,M0]=await Promise.all([s1.promises.stat(l).catch(()=>null),s1.promises.stat(i).catch(()=>null),s1.promises.stat(Y0).catch(()=>null)]);if(W0?.isFile())return yX(l);if(D0?.isFile())return yX(i);if(M0?.isFile())return yX(Y0);if(g.pathname.startsWith("/_stx/component/")){let p=decodeURIComponent(g.pathname.slice(16));if(p)try{let m=`<${p} />`,u={...buildConfig,autoShell:!1},a=await processDirectives(m,{},A0.join(K,"components",`${p}.stx`),u,new Set);return new Response(a,{headers:{"Content-Type":"text/html"}})}catch(m){return new Response(`<div class="stx-async-error">${m.message}</div>`,{status:500,headers:{"Content-Type":"text/html"}})}}if(N)try{let p=await N.handleRequest(f);if(p.status!==404)return p}catch{}if(A[g.pathname])try{return await A[g.pathname](f)}catch(p){return new Response(JSON.stringify({error:p.message}),{status:500,headers:{"Content-Type":"application/json"}})}let v=S6(g.pathname,q);if(v){let p=M.get(v.route.pattern);if(v.route.isDynamic&&Object.keys(v.params).length>0){let m=await I(v.route,v.params);if(m)p=m}if(p){let m=C4();if(m.validate){if(!await m.validate({params:v.params})){let r=await T(404);if(r){let s=r;if(s=await V0(s,K),J)s=y1(s,G);return new Response(s,{status:404,headers:{"Content-Type":"text/html"}})}return new Response("Not Found",{status:404})}}if(m.middleware){let a=T7(g.pathname,v.params,m,g.search),r=M7(a,null,f),s=await D7(m.middleware,r);if(s.redirect){let J0=s.redirect.path,z0=s.redirect.options.redirectCode||302,l0=new Headers(s.responseHeaders);return l0.set("Location",J0),new Response(null,{status:z0,headers:l0})}if(s.abort){let{statusCode:J0,message:z0}=s.abort.error;return new Response(`<!DOCTYPE html><html><head><title>Error ${J0}</title></head><body><h1>Error ${J0}</h1><p>${z0}</p></body></html>`,{status:J0,headers:{"Content-Type":"text/html"}})}if(Object.keys(s.state).length>0){let J0=`<script>(function(){var s=typeof stx!=='undefined'?stx:{};s._ms=${JSON.stringify(s.state)};if(s.setMiddlewareState)s.setMiddlewareState(s._ms);})()</script>`;p.content=p.content.replace("</head>",`${J0}</head>`)}}let u=p.content;if(F&&UX(f)){if(Object.keys(v.params).length>0)u=b(u,v.params);u=await V0(u,K);let a=U?.router?.container||"main";return u=b7(u,a),new Response(u,{headers:{"Content-Type":"text/html","X-STX-Fragment":"true","Cache-Control":"no-store, no-cache, must-revalidate"}})}if(F)u=S7(F,u);if(Object.keys(v.params).length>0)u=b(u,v.params);if(u=await V0(u,K),J)u=y1(u,G);if(Z.native)if(u.includes("<head>"))u=u.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 u="<head><style>[data-stx-sidebar],.stx-sidebar{display:none!important}</style><script>window.__craftNativeSidebar=true;document.documentElement.classList.add('has-native-sidebar')</script></head>"+u;return new Response(u,{headers:{"Content-Type":"text/html","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}}if(H.length>0){let p=H.map((u)=>u.route),m=S6(g.pathname,p);if(m){let u=O.get(m.route.pattern);if(u){let a=u.content;if(F)a=S7(F,a);if(Object.keys(m.params).length>0)a=b(a,m.params);if(a=await V0(a,K),J)a=y1(a,G);return new Response(a,{headers:{"Content-Type":"text/html","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}}for(let{prefix:u}of j)if(u!=="/"&&g.pathname.startsWith(u)){let a=O.get(u)||O.get(u+"/");if(a){let r=a.content;if(F)r=S7(F,r);if(r=await V0(r,K),J)r=y1(r,G);return new Response(r,{headers:{"Content-Type":"text/html","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}}}let d=M.get("/");if(d){let p=d.content;if(p=await V0(p,K),J)p=y1(p,G);if(Z.native)if(p.includes("<head>"))p=p.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 p="<head><style>[data-stx-sidebar],.stx-sidebar{display:none!important}</style><script>window.__craftNativeSidebar=true;document.documentElement.classList.add('has-native-sidebar')</script></head>"+p;return new Response(p,{headers:{"Content-Type":"text/html","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}let n=await T(404);if(n){let p=n;if(p=await V0(p,K),J)p=y1(p,G);return new Response(p,{status:404,headers:{"Content-Type":"text/html"}})}return new Response("Not Found",{status:404})},async error(f){let g=await T(500);if(g)return new Response(g,{status:500,headers:{"Content-Type":"text/html"}});return new Response(`<pre>${f}
12160
12160
  ${f.stack}</pre>`,{headers:{"Content-Type":"text/html"}})}});if(console.clear(),console.log(`
12161
12161
  ${R.blue}stx${R.reset} ${R.green}${process.env.stx_VERSION||"v0.0.10"}${R.reset} ${R.dim}ready in ${Math.random()*10+5|0}.${Math.random()*90+10|0} ms${R.reset}`),console.log(`
12162
12162
  ${R.bright}\u2192 ${R.cyan}http://localhost:${k}/${R.reset}`),J)console.log(`${R.dim} HMR: ws://localhost:${G}${R.reset}`);console.log(`
12163
12163
  ${R.yellow}Routes:${R.reset}`);let C=[...BX(q,K)];for(let{route:f}of H)C.push(`${f.pattern}`);if(C.forEach((f,g)=>{let l=g===C.length-1?"\u2514\u2500 ":"\u251C\u2500 ";console.log(` ${R.green}${l}${R.reset}${f}`)}),console.log(`
12164
- Press ${R.cyan}h${R.reset} + ${R.cyan}Enter${R.reset} to show shortcuts`),E$(P.url.toString(),()=>{if(Q)G2();P.stop()}),Z.native){let f,g=A0.join(z,"index.stx");if(s1.existsSync(g)){let l=await Bun.file(g).text();f=h4(l)}let h=U?.app?.window??{};await X2(k,{title:U?.app?.head?.title||A0.basename(K)||"stx App",width:h.width,height:h.height,darkMode:h.darkMode,hotReload:h.hotReload,nativeSidebar:!!f,sidebarConfig:f})}if(X){console.log(`${R.blue}Watching for changes...${R.reset}`);let f=(l)=>{return l.startsWith("public/")||l.startsWith("public\\")},g=(l)=>{let i=l.toLowerCase();return i.endsWith(".stx")||i.endsWith(".html")||i.endsWith(".md")},h=s1.watch(K,{recursive:!0},async(l,i)=>{if(!i||g7(i))return;if(f7(i)){if(f(i)){if(console.log(`${R.cyan}${i} changed${R.reset}`),J&&Q)Q.reload(i)}else if(g(i)){if(console.log(`${R.yellow}${i} changed, rebuilding...${R.reset}`),F$.clear(),R$(),L&&i){if(A0.resolve(K,i)===L||A0.basename(L)===i){let W0=await k4(L,Z.stxOptions||{});if(W0)F=W0}}if(await E(),await Z7(K),J&&Q)Q.reload(i)}else if(console.log(`${R.yellow}${i} changed, rebuilding...${R.reset}`),F$.clear(),R$(),await E(),J&&Q)Q.reload(i)}else if(v7(i)){if(console.log(`${R.cyan}CSS ${i} changed${R.reset}`),J&&Q)Q.updateCss(i)}});process.on("SIGINT",()=>{if(h.close(),Q)G2();P.stop(),process.exit(0)})}return!0}var Pz=D(()=>{C7();p5();m4();y7();I4();H$();q0();x7()});var xz=D(()=>{kX();Sz();Cz();Pz()});import PX from"fs";import m7 from"path";async function vz($){try{let Y=(await Bun.file($).text()).match(/<script\b[^>]*>([\s\S]*?)<\/script>/i);if(!Y)return[];let X=Y[1],J=[],Q=/\/\*\*\s*([\s\S]*?)\s*\*\/\s*(?:(?:const|let|var)\s*)?(?:([\w$]+)\s*=|module\.exports\.([\w$]+)\s*=|\s*([\w$]+)\s*:)/g,G;while((G=Q.exec(X))!==null){let K=G[1],W=G[2]||G[3]||G[4];if(!W)continue;let U={name:W},_=K.match(/@type\s+\{([^}]+)\}/i);if(_)U.type=_[1].trim();if(K.match(/@required/i))U.required=!0;let z=K.match(/@default\s+(.+?)(?:\s+|$)/i);if(z)U.default=z[1].trim();let q=K.split(`
12164
+ Press ${R.cyan}h${R.reset} + ${R.cyan}Enter${R.reset} to show shortcuts`),E$(P.url.toString(),()=>{if(Q)G2();P.stop()}),Z.native){let f,g=A0.join(z,"index.stx");if(s1.existsSync(g)){let l=await Bun.file(g).text();f=h6(l)}let h=U?.app?.window??{};await X2(k,{title:U?.app?.head?.title||A0.basename(K)||"stx App",width:h.width,height:h.height,darkMode:h.darkMode,hotReload:h.hotReload,nativeSidebar:!!f,sidebarConfig:f})}if(X){console.log(`${R.blue}Watching for changes...${R.reset}`);let f=(l)=>{return l.startsWith("public/")||l.startsWith("public\\")},g=(l)=>{let i=l.toLowerCase();return i.endsWith(".stx")||i.endsWith(".html")||i.endsWith(".md")},h=s1.watch(K,{recursive:!0},async(l,i)=>{if(!i||g7(i))return;if(f7(i)){if(f(i)){if(console.log(`${R.cyan}${i} changed${R.reset}`),J&&Q)Q.reload(i)}else if(g(i)){if(console.log(`${R.yellow}${i} changed, rebuilding...${R.reset}`),F$.clear(),R$(),L&&i){if(A0.resolve(K,i)===L||A0.basename(L)===i){let W0=await k6(L,Z.stxOptions||{});if(W0)F=W0}}if(await E(),await Z7(K),J&&Q)Q.reload(i)}else if(console.log(`${R.yellow}${i} changed, rebuilding...${R.reset}`),F$.clear(),R$(),await E(),J&&Q)Q.reload(i)}else if(v7(i)){if(console.log(`${R.cyan}CSS ${i} changed${R.reset}`),J&&Q)Q.updateCss(i)}});process.on("SIGINT",()=>{if(h.close(),Q)G2();P.stop(),process.exit(0)})}return!0}var Pz=D(()=>{C7();p5();m6();y7();I6();H$();q0();x7()});var xz=D(()=>{kX();Sz();Cz();Pz()});import PX from"fs";import m7 from"path";async function vz($){try{let Y=(await Bun.file($).text()).match(/<script\b[^>]*>([\s\S]*?)<\/script>/i);if(!Y)return[];let X=Y[1],J=[],Q=/\/\*\*\s*([\s\S]*?)\s*\*\/\s*(?:(?:const|let|var)\s*)?(?:([\w$]+)\s*=|module\.exports\.([\w$]+)\s*=|\s*([\w$]+)\s*:)/g,G;while((G=Q.exec(X))!==null){let K=G[1],W=G[2]||G[3]||G[4];if(!W)continue;let U={name:W},_=K.match(/@type\s+\{([^}]+)\}/i);if(_)U.type=_[1].trim();if(K.match(/@required/i))U.required=!0;let z=K.match(/@default\s+(.+?)(?:\s+|$)/i);if(z)U.default=z[1].trim();let q=K.split(`
12165
12165
  `).map((j)=>j.trim().replace(/^\*\s*/,"")).filter((j)=>!j.startsWith("@")&&j.length>0);U.description=q.join(" ").trim(),J.push(U)}if(J.length===0){let K=X.match(/module\.exports\s*=\s*\{([^}]+)\}/i);if(K){let U=K[1].split(",").map((_)=>_.trim()).filter(Boolean);for(let _ of U){let[B]=_.split(":").map((z)=>z.trim());if(B)J.push({name:B})}}}return J}catch(Z){return console.error(`Error extracting props from ${$}:`,Z),[]}}async function fz($){try{let Z=await Bun.file($).text(),Y=Z.match(/^\s*<!--\s*([\s\S]*?)\s*-->/)||Z.match(/^\s*\/\*\*\s*([\s\S]*?)\s*\*\//);if(Y)return Y[1].split(`
12166
12166
  `).map((X)=>X.trim().replace(/^\*\s*/,"")).join(" ").trim();return""}catch{return""}}async function gz($,Z=!1,Y){let X=m7.basename($,".stx"),J=await vz($),Q=await fz($),G="";if(Z&&Y)G=`<${Y}></${Y}>`;else{let K=J.map((W)=>{if(W.type==="boolean")return`:${W.name}="true"`;return`${W.name}="value"`}).join(`
12167
12167
  `);G=`<${X}
@@ -12780,7 +12780,7 @@ ${y.bold}Markdown:${y.reset}`),G.forEach((W)=>console.log(` ${y.blue}${W}${y.re
12780
12780
  ${y.bold}Other:${y.reset}`),K.forEach((W)=>console.log(` ${y.dim}${W}${y.reset}`));console.log()}},cat:{description:"Show file contents",usage:"cat <file>",handler:async($,Z)=>{if(!$[0]){console.log(`${y.red}Error: Please specify a file${y.reset}`);return}let Y=D$.resolve(Z.cwd,$[0]);if(!await Bun.file(Y).exists()){console.log(`${y.red}Error: File not found: ${Y}${y.reset}`);return}let J=(await Bun.file(Y).text()).split(`
12781
12781
  `);console.log(),J.forEach((Q,G)=>{let K=String(G+1).padStart(3," ");console.log(`${y.dim}${K}${y.reset} ${Q}`)}),console.log()}},load:{description:"Load context from JSON file",usage:"load <file.json>",handler:async($,Z)=>{if(!$[0]){console.log(`${y.red}Error: Please specify a JSON file${y.reset}`);return}let Y=D$.resolve(Z.cwd,$[0]);if(!await Bun.file(Y).exists()){console.log(`${y.red}Error: File not found: ${Y}${y.reset}`);return}try{let X=await Bun.file(Y).text(),J=JSON.parse(X);Z.context={...Z.context,...J},console.log(`${y.green}\u2713${y.reset} Loaded ${Object.keys(J).length} variables from ${$[0]}`)}catch(X){console.log(`${y.red}Error parsing JSON:${y.reset}`,X)}}},save:{description:"Save context to JSON file",usage:"save <file.json>",handler:async($,Z)=>{if(!$[0]){console.log(`${y.red}Error: Please specify a file name${y.reset}`);return}let Y=D$.resolve(Z.cwd,$[0]);try{await Bun.write(Y,JSON.stringify(Z.context,null,2)),console.log(`${y.green}\u2713${y.reset} Context saved to ${$[0]}`)}catch(X){console.log(`${y.red}Error saving file:${y.reset}`,X)}}},history:{description:"Show command history",usage:"history [count]",handler:async($,Z)=>{let Y=$[0]?Number.parseInt($[0],10):20,X=Z.history.slice(-Y);if(X.length===0){console.log(`${y.dim}No history${y.reset}`);return}console.log(),X.forEach((J,Q)=>{let G=String(Z.history.length-X.length+Q+1).padStart(3," ");console.log(`${y.dim}${G}${y.reset} ${J}`)}),console.log()}},exit:{description:"Exit interactive mode",usage:"exit",handler:async($,Z)=>{Z.running=!1,console.log(`
12782
12782
  ${y.dim}Goodbye!${y.reset}
12783
- `)}},quit:{description:"Exit interactive mode (alias for exit)",usage:"quit",handler:async($,Z)=>r$.exit.handler($,Z)}}});import{createHash as IM}from"crypto";import{existsSync as c7,mkdirSync as DM,readFileSync as gX,writeFileSync as kM,readdirSync as SM,statSync as bM}from"fs";import{basename as l7,dirname as r1,extname as i7,join as P1,relative as Wq}from"path";import{gzipSync as CM}from"zlib";class u4{config;startTime=0;outputs=[];chunks=[];assets=[];warnings=[];errors=[];moduleGraph=new Map;assetHashes=new Map;constructor($){this.config={...Uq,...$}}async build(){this.startTime=Date.now(),this.outputs=[],this.chunks=[],this.assets=[],this.warnings=[],this.errors=[];try{this.ensureDir(this.config.outDir),await this.runPluginHook("setup"),await this.runPluginHook("buildStart");let $=this.collectEntries();for(let[Y,X]of $)await this.buildEntry(Y,X);if(this.config.css?.extract)await this.extractCss();if(await this.processAssets(),this.config.splitting)await this.performCodeSplitting();if(this.config.minify)await this.minifyOutputs();if(this.config.sourcemaps)await this.generateSourceMaps();if(await this.fingerprintAssets(),this.config.compression)await this.compressOutputs();if(this.config.analyze)await this.analyzeBundle();let Z=this.getResult();return await this.runPluginHook("buildEnd",Z),Z}catch($){return this.errors.push(String($)),this.getResult()}}collectEntries(){let $=new Map,{entry:Z}=this.config;if(typeof Z==="string")$.set("main",Z);else if(Array.isArray(Z))Z.forEach((Y,X)=>{let J=l7(Y,i7(Y));$.set(J,Y)});else if(typeof Z==="object")Object.entries(Z).forEach(([Y,X])=>{$.set(Y,X)});return $}async buildEntry($,Z){if(!await Bun.file(Z).exists()){this.errors.push(`Entry point not found: ${Z}`);return}let Y=await Bun.file(Z).text(),X=i7(Z),J=Y,Q="js";if(X===".stx"||X===".html")Q="html",J=await this.processTemplate(Y,Z);else if(X===".css")Q="css",J=await this.processCss(Y,Z);else if(X===".js"||X===".ts")Q="js",J=await this.processScript(Y,Z);J=await this.runPluginTransform(J,Z);let G=this.generateHash(J),K=this.getOutputName($,Q,G),W=P1(this.config.outDir,K);this.ensureDir(r1(W)),await Bun.write(W,J),this.outputs.push({path:W,type:Q,size:Buffer.byteLength(J),hash:G,sources:[Z],isEntry:!0})}resolveRelativePath($,Z){if(Z.startsWith("/"))return P1(r1($),"..",Z);return P1(r1($),Z)}async processTemplate($,Z){let Y=$,X=[],J=[];if(Y=Y.replace(/<script\b([^>]*)\bstx-inline\b([^>]*)(?:><\/script>|><\/script>|\/>)/gi,(Q,G,K)=>{let W=(G+K).match(/src=["']([^"']+)["']/);if(W){let U=this.resolveRelativePath(Z,W[1]);if(c7(U)){let _=gX(U,"utf-8");X.push(`// Source: ${W[1]}
12783
+ `)}},quit:{description:"Exit interactive mode (alias for exit)",usage:"quit",handler:async($,Z)=>r$.exit.handler($,Z)}}});import{createHash as IM}from"crypto";import{existsSync as c7,mkdirSync as DM,readFileSync as gX,writeFileSync as kM,readdirSync as SM,statSync as bM}from"fs";import{basename as l7,dirname as r1,extname as i7,join as P1,relative as Wq}from"path";import{gzipSync as CM}from"zlib";class u6{config;startTime=0;outputs=[];chunks=[];assets=[];warnings=[];errors=[];moduleGraph=new Map;assetHashes=new Map;constructor($){this.config={...Uq,...$}}async build(){this.startTime=Date.now(),this.outputs=[],this.chunks=[],this.assets=[],this.warnings=[],this.errors=[];try{this.ensureDir(this.config.outDir),await this.runPluginHook("setup"),await this.runPluginHook("buildStart");let $=this.collectEntries();for(let[Y,X]of $)await this.buildEntry(Y,X);if(this.config.css?.extract)await this.extractCss();if(await this.processAssets(),this.config.splitting)await this.performCodeSplitting();if(this.config.minify)await this.minifyOutputs();if(this.config.sourcemaps)await this.generateSourceMaps();if(await this.fingerprintAssets(),this.config.compression)await this.compressOutputs();if(this.config.analyze)await this.analyzeBundle();let Z=this.getResult();return await this.runPluginHook("buildEnd",Z),Z}catch($){return this.errors.push(String($)),this.getResult()}}collectEntries(){let $=new Map,{entry:Z}=this.config;if(typeof Z==="string")$.set("main",Z);else if(Array.isArray(Z))Z.forEach((Y,X)=>{let J=l7(Y,i7(Y));$.set(J,Y)});else if(typeof Z==="object")Object.entries(Z).forEach(([Y,X])=>{$.set(Y,X)});return $}async buildEntry($,Z){if(!await Bun.file(Z).exists()){this.errors.push(`Entry point not found: ${Z}`);return}let Y=await Bun.file(Z).text(),X=i7(Z),J=Y,Q="js";if(X===".stx"||X===".html")Q="html",J=await this.processTemplate(Y,Z);else if(X===".css")Q="css",J=await this.processCss(Y,Z);else if(X===".js"||X===".ts")Q="js",J=await this.processScript(Y,Z);J=await this.runPluginTransform(J,Z);let G=this.generateHash(J),K=this.getOutputName($,Q,G),W=P1(this.config.outDir,K);this.ensureDir(r1(W)),await Bun.write(W,J),this.outputs.push({path:W,type:Q,size:Buffer.byteLength(J),hash:G,sources:[Z],isEntry:!0})}resolveRelativePath($,Z){if(Z.startsWith("/"))return P1(r1($),"..",Z);return P1(r1($),Z)}async processTemplate($,Z){let Y=$,X=[],J=[];if(Y=Y.replace(/<script\b([^>]*)\bstx-inline\b([^>]*)(?:><\/script>|><\/script>|\/>)/gi,(Q,G,K)=>{let W=(G+K).match(/src=["']([^"']+)["']/);if(W){let U=this.resolveRelativePath(Z,W[1]);if(c7(U)){let _=gX(U,"utf-8");X.push(`// Source: ${W[1]}
12784
12784
  ${_}`)}else this.warnings.push(`External script not found: ${U}`)}return""}),Y=Y.replace(/<link\b([^>]*)\bstx-inline\b([^>]*)(?:\/>|>)/gi,(Q,G,K)=>{let W=(G+K).match(/href=["']([^"']+)["']/);if(W){let U=this.resolveRelativePath(Z,W[1]);if(c7(U)){let _=gX(U,"utf-8");J.push(`/* Source: ${W[1]} */
12785
12785
  ${_}`)}else this.warnings.push(`External stylesheet not found: ${U}`)}return""}),Y=Y.replace(/<script\b(?![^>]*\bstx-inline\b)([^>]*)>([\s\S]*?)<\/script>/gi,(Q,G,K)=>{if(/\bsrc=/.test(G))return Q;if(K.trim())X.push(K);return""}),Y=Y.replace(/<style\b[^>]*>([\s\S]*?)<\/style>/gi,(Q,G)=>{if(G.trim())J.push(G);return""}),X.length>0){let Q=X.join(`
12786
12786
 
@@ -12832,7 +12832,7 @@ ${_}`)}else this.warnings.push(`External stylesheet not found: ${U}`)}return""})
12832
12832
  </table>
12833
12833
  </body>
12834
12834
  </html>`}generateAnalysisText($){let Z=["Bundle Analysis","=".repeat(50),""];for(let Y of $.outputs)Z.push(`${Y.path}`),Z.push(` Size: ${Y.sizeFormatted}${Y.gzipSizeFormatted?` (gzip: ${Y.gzipSizeFormatted})`:""}`),Z.push("");return Z.push("=".repeat(50)),Z.push(`Total: ${this.formatSize($.totalSize)} (gzip: ${this.formatSize($.totalGzipSize)})`),Z.join(`
12835
- `)}async runPluginHook($,Z){if(!this.config.plugins)return;for(let Y of this.config.plugins){let X=Y[$];if(typeof X==="function")await X.call(Y,Z||this)}}async runPluginTransform($,Z){if(!this.config.plugins)return $;let Y=$;for(let X of this.config.plugins)if(X.transform){let J=await X.transform(Y,Z);if(J!=null)Y=J}return Y}generateHash($){return IM("sha256").update($).digest("hex")}getOutputName($,Z,Y){let X=Z==="html"?".html":Z==="css"?".css":Z==="js"?".js":"";return`${$}.${Y.slice(0,8)}${X}`}formatSize($){if($<1024)return`${$} B`;if($<1048576)return`${($/1024).toFixed(2)} KB`;return`${($/1048576).toFixed(2)} MB`}ensureDir($){if(!c7($))DM($,{recursive:!0})}walkDir($,Z){if(!c7($))return;let Y=SM($,{withFileTypes:!0});for(let X of Y){let J=P1($,X.name);if(X.isDirectory())this.walkDir(J,Z);else Z(J)}}getResult(){let $=Date.now()-this.startTime,Z=this.outputs.reduce((X,J)=>X+J.size,0),Y=this.outputs.reduce((X,J)=>X+(J.gzipSize||0),0);return{outputs:this.outputs,duration:$,totalSize:Z,gzipSize:Y,chunks:this.chunks,assets:this.assets,warnings:this.warnings,errors:this.errors}}}async function yM($){return new u4($).build()}function PM($){return new u4($)}function xM($){return{...Uq,...$}}var Uq;var _q=D(()=>{Uq={outDir:"dist",publicPath:"/",sourcemaps:!0,minify:{js:!0,css:!0,html:!0,dropConsole:!0,dropDebugger:!0,mangle:!0},splitting:{vendor:!0,minSize:20000,maxSize:250000,chunkNames:"deterministic"},css:{extract:!0,minify:!0,filename:"assets/[name].[hash].css"},assets:{inlineLimit:4096,filename:"assets/[name].[hash][ext]",hash:!0,hashLength:8,include:["png","jpg","jpeg","gif","svg","webp","woff","woff2","ttf","eot"]},compression:{gzip:!0,brotli:!0,threshold:1024,deleteOriginal:!1}}});async function hX($,Z={}){if(!$.hasServerScripts&&!G5($.html))return $.html;let Y={__filename:$.sourceFile,__dirname:$.sourceFile.replace(/[/\\][^/\\]+$/,""),...Z};for(let J of $.serverScriptContent)try{await R0(J,Y,$.sourceFile)}catch(Q){console.warn(`[stx] Server script error in ${$.sourceFile}:`,Q)}if(!G5($.html))return $.html;let X=new Map;for(let[J,Q]of Object.entries($.placeholders))if(Q.expression)try{let G=Y1(Q.expression,Y);if(Q.type==="raw")X.set(J,G!==void 0&&G!==null?String(G):"");else X.set(J,G!==void 0&&G!==null?w0(String(G)):"")}catch{X.set(J,"")}return E9($.html,X)}async function vM($,Z={}){if(!$.hasServerScripts&&!G5($.fragment))return $.fragment;let Y={__filename:$.sourceFile,__dirname:$.sourceFile.replace(/[/\\][^/\\]+$/,""),...Z};for(let J of $.serverScriptContent)try{await R0(J,Y,$.sourceFile)}catch(Q){console.warn(`[stx] Server script error in ${$.sourceFile}:`,Q)}if(!G5($.fragment))return $.fragment;let X=new Map;for(let[J,Q]of Object.entries($.placeholders))if(Q.expression)try{let G=Y1(Q.expression,Y);if(Q.type==="raw")X.set(J,G!==void 0&&G!==null?String(G):"");else X.set(J,G!==void 0&&G!==null?w0(String(G)):"")}catch{X.set(J,"")}return E9($.fragment,X)}var dX=D(()=>{L$();d0();k2()});import Bq from"fs";import k$ from"path";var{serve:fM}=globalThis.Bun;async function hM($={}){let Z=k$.resolve($.outputDir||".output"),Y=$.port||3000,X=AX(Z);if(!X)console.error("[stx] No build manifest found. Run `stx build` first."),process.exit(1);console.log(`[stx] Production server loading ${X.routes.length} routes...`);let J=new Map,Q=new Map;for(let U of X.routes)try{let _=k$.join(Z,U.compiledPath),B=JSON.parse(await Bun.file(_).text());J.set(U.pattern,B);let z=k$.join(Z,U.fragmentPath);if(await Bun.file(z).exists())Q.set(U.pattern,await Bun.file(z).text())}catch(_){console.warn(`[stx] Failed to load route ${U.pattern}:`,_)}let G=new Map,K=[];for(let U of X.routes)if(U.hasParams){let _=[],B=U.pattern.replace(/:([^/]+)/g,(z,q)=>{return _.push(q),"([^/]+)"});K.push({regex:new RegExp(`^${B}$`),route:U,paramNames:_})}else G.set(U.pattern,U);let W=fM({port:Y,async fetch(U){let B=new URL(U.url).pathname;if($.onRequest){let O=await $.onRequest(U);if(O)return O}if($.apiRoutes?.[B])return $.apiRoutes[B](U);if((U.method==="GET"||U.method==="HEAD")&&B!=="/"){let O=k$.resolve(Z,"public"),F;try{F=decodeURIComponent(B)}catch{F=B}if(!F.includes("\x00")){let L=k$.resolve(O,`.${F}`);if(L===O||L.startsWith(`${O}${k$.sep}`))try{if(Bq.existsSync(L)&&Bq.statSync(L).isFile()){let A=k$.extname(L).toLowerCase(),N=gM[A]||"application/octet-stream",w=B.startsWith("/__stx/")||/\.[0-9a-f]{8}\./.test(B);return new Response(Bun.file(L),{headers:{"Content-Type":N,"Cache-Control":w?"public, max-age=31536000, immutable":"public, max-age=3600"}})}}catch{}}}let z=U.headers.get("X-STX-Router")==="true",q=null,j={};if(q=G.get(B)||null,!q)for(let{regex:O,route:F,paramNames:L}of K){let V=B.match(O);if(V){q=F,L.forEach((A,N)=>{j[A]=V[N+1]});break}}if(!q){let O=G.get("/404")||null;if(O){let F=J.get(O.compiledPath);if(F)return new Response(F.html,{status:404,headers:{"Content-Type":"text/html"}})}return new Response("Not Found",{status:404})}if(z){let O=Q.get(q.pattern);if(O)return new Response(O,{headers:{"Content-Type":"text/html","X-STX-Fragment":"true","Cache-Control":"no-cache"}})}let H=J.get(q.pattern);if(!H)return new Response("Internal Server Error",{status:500});if(!H.hasServerScripts&&Object.keys(H.placeholders).length===0)return new Response(H.html,{headers:{"Content-Type":"text/html","Cache-Control":"public, max-age=60"}});try{let O=await hX(H,{params:j,request:U});return new Response(O,{headers:{"Content-Type":"text/html","Cache-Control":"no-cache"}})}catch(O){return console.error(`[stx] Hydration error for ${B}:`,O),new Response(H.html,{headers:{"Content-Type":"text/html"}})}}});return console.log(`[stx] Production server running at http://localhost:${Y}`),console.log(`[stx] Serving ${X.routes.length} routes (${J.size} pre-loaded)`),{port:Y,stop:()=>W.stop()}}var gM;var zq=D(()=>{b4();dX();gM={".js":"application/javascript",".mjs":"application/javascript",".css":"text/css",".json":"application/json",".html":"text/html",".txt":"text/plain",".xml":"application/xml",".pdf":"application/pdf",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".avif":"image/avif",".svg":"image/svg+xml",".ico":"image/x-icon",".bmp":"image/bmp",".mp4":"video/mp4",".webm":"video/webm",".ogg":"audio/ogg",".mp3":"audio/mpeg",".wav":"audio/wav",".woff":"font/woff",".woff2":"font/woff2",".ttf":"font/ttf",".otf":"font/otf",".eot":"application/vnd.ms-fontobject"}});var dM="f9c3713";import{existsSync as n7,mkdirSync as mX}from"fs";import{join as S$,dirname as mM}from"path";import{execSync as qq}from"child_process";async function pM($,Z={}){let Y={success:!0,message:"",files:[],errors:[]},X=Z.template||"default",J=S$(process.cwd(),$);if(n7(J))return Y.success=!1,Y.message=`Directory ${$} already exists`,Y;try{mX(J,{recursive:!0});let Q=cM(X);for(let K of Q)mX(S$(J,K),{recursive:!0});let G=lM(X,$,Z);for(let[K,W]of Object.entries(G)){let U=S$(J,K);s7(mM(U)),await Bun.write(U,W),Y.files.push(K)}if(!Z.skipGit)try{qq("git init",{cwd:J,stdio:"ignore"}),await Bun.write(S$(J,".gitignore"),JT()),Y.files.push(".gitignore")}catch{Y.errors.push("Failed to initialize git repository")}if(!Z.skipInstall){let K=Z.packageManager||TT();try{console.log(`
12835
+ `)}async runPluginHook($,Z){if(!this.config.plugins)return;for(let Y of this.config.plugins){let X=Y[$];if(typeof X==="function")await X.call(Y,Z||this)}}async runPluginTransform($,Z){if(!this.config.plugins)return $;let Y=$;for(let X of this.config.plugins)if(X.transform){let J=await X.transform(Y,Z);if(J!=null)Y=J}return Y}generateHash($){return IM("sha256").update($).digest("hex")}getOutputName($,Z,Y){let X=Z==="html"?".html":Z==="css"?".css":Z==="js"?".js":"";return`${$}.${Y.slice(0,8)}${X}`}formatSize($){if($<1024)return`${$} B`;if($<1048576)return`${($/1024).toFixed(2)} KB`;return`${($/1048576).toFixed(2)} MB`}ensureDir($){if(!c7($))DM($,{recursive:!0})}walkDir($,Z){if(!c7($))return;let Y=SM($,{withFileTypes:!0});for(let X of Y){let J=P1($,X.name);if(X.isDirectory())this.walkDir(J,Z);else Z(J)}}getResult(){let $=Date.now()-this.startTime,Z=this.outputs.reduce((X,J)=>X+J.size,0),Y=this.outputs.reduce((X,J)=>X+(J.gzipSize||0),0);return{outputs:this.outputs,duration:$,totalSize:Z,gzipSize:Y,chunks:this.chunks,assets:this.assets,warnings:this.warnings,errors:this.errors}}}async function yM($){return new u6($).build()}function PM($){return new u6($)}function xM($){return{...Uq,...$}}var Uq;var _q=D(()=>{Uq={outDir:"dist",publicPath:"/",sourcemaps:!0,minify:{js:!0,css:!0,html:!0,dropConsole:!0,dropDebugger:!0,mangle:!0},splitting:{vendor:!0,minSize:20000,maxSize:250000,chunkNames:"deterministic"},css:{extract:!0,minify:!0,filename:"assets/[name].[hash].css"},assets:{inlineLimit:4096,filename:"assets/[name].[hash][ext]",hash:!0,hashLength:8,include:["png","jpg","jpeg","gif","svg","webp","woff","woff2","ttf","eot"]},compression:{gzip:!0,brotli:!0,threshold:1024,deleteOriginal:!1}}});async function hX($,Z={}){if(!$.hasServerScripts&&!G5($.html))return $.html;let Y={__filename:$.sourceFile,__dirname:$.sourceFile.replace(/[/\\][^/\\]+$/,""),...Z};for(let J of $.serverScriptContent)try{await R0(J,Y,$.sourceFile)}catch(Q){console.warn(`[stx] Server script error in ${$.sourceFile}:`,Q)}if(!G5($.html))return $.html;let X=new Map;for(let[J,Q]of Object.entries($.placeholders))if(Q.expression)try{let G=Y1(Q.expression,Y);if(Q.type==="raw")X.set(J,G!==void 0&&G!==null?String(G):"");else X.set(J,G!==void 0&&G!==null?w0(String(G)):"")}catch{X.set(J,"")}return E9($.html,X)}async function vM($,Z={}){if(!$.hasServerScripts&&!G5($.fragment))return $.fragment;let Y={__filename:$.sourceFile,__dirname:$.sourceFile.replace(/[/\\][^/\\]+$/,""),...Z};for(let J of $.serverScriptContent)try{await R0(J,Y,$.sourceFile)}catch(Q){console.warn(`[stx] Server script error in ${$.sourceFile}:`,Q)}if(!G5($.fragment))return $.fragment;let X=new Map;for(let[J,Q]of Object.entries($.placeholders))if(Q.expression)try{let G=Y1(Q.expression,Y);if(Q.type==="raw")X.set(J,G!==void 0&&G!==null?String(G):"");else X.set(J,G!==void 0&&G!==null?w0(String(G)):"")}catch{X.set(J,"")}return E9($.fragment,X)}var dX=D(()=>{L$();d0();k2()});import Bq from"fs";import k$ from"path";var{serve:fM}=globalThis.Bun;async function hM($={}){let Z=k$.resolve($.outputDir||".output"),Y=$.port||3000,X=AX(Z);if(!X)console.error("[stx] No build manifest found. Run `stx build` first."),process.exit(1);console.log(`[stx] Production server loading ${X.routes.length} routes...`);let J=new Map,Q=new Map;for(let U of X.routes)try{let _=k$.join(Z,U.compiledPath),B=JSON.parse(await Bun.file(_).text());J.set(U.pattern,B);let z=k$.join(Z,U.fragmentPath);if(await Bun.file(z).exists())Q.set(U.pattern,await Bun.file(z).text())}catch(_){console.warn(`[stx] Failed to load route ${U.pattern}:`,_)}let G=new Map,K=[];for(let U of X.routes)if(U.hasParams){let _=[],B=U.pattern.replace(/:([^/]+)/g,(z,q)=>{return _.push(q),"([^/]+)"});K.push({regex:new RegExp(`^${B}$`),route:U,paramNames:_})}else G.set(U.pattern,U);let W=fM({port:Y,async fetch(U){let B=new URL(U.url).pathname;if($.onRequest){let O=await $.onRequest(U);if(O)return O}if($.apiRoutes?.[B])return $.apiRoutes[B](U);if((U.method==="GET"||U.method==="HEAD")&&B!=="/"){let O=k$.resolve(Z,"public"),F;try{F=decodeURIComponent(B)}catch{F=B}if(!F.includes("\x00")){let L=k$.resolve(O,`.${F}`);if(L===O||L.startsWith(`${O}${k$.sep}`))try{if(Bq.existsSync(L)&&Bq.statSync(L).isFile()){let A=k$.extname(L).toLowerCase(),N=gM[A]||"application/octet-stream",w=B.startsWith("/__stx/")||/\.[0-9a-f]{8}\./.test(B);return new Response(Bun.file(L),{headers:{"Content-Type":N,"Cache-Control":w?"public, max-age=31536000, immutable":"public, max-age=3600"}})}}catch{}}}let z=U.headers.get("X-STX-Router")==="true",q=null,j={};if(q=G.get(B)||null,!q)for(let{regex:O,route:F,paramNames:L}of K){let V=B.match(O);if(V){q=F,L.forEach((A,N)=>{j[A]=V[N+1]});break}}if(!q){let O=G.get("/404")||null;if(O){let F=J.get(O.compiledPath);if(F)return new Response(F.html,{status:404,headers:{"Content-Type":"text/html"}})}return new Response("Not Found",{status:404})}if(z){let O=Q.get(q.pattern);if(O)return new Response(O,{headers:{"Content-Type":"text/html","X-STX-Fragment":"true","Cache-Control":"no-cache"}})}let H=J.get(q.pattern);if(!H)return new Response("Internal Server Error",{status:500});if(!H.hasServerScripts&&Object.keys(H.placeholders).length===0)return new Response(H.html,{headers:{"Content-Type":"text/html","Cache-Control":"public, max-age=60"}});try{let O=await hX(H,{params:j,request:U});return new Response(O,{headers:{"Content-Type":"text/html","Cache-Control":"no-cache"}})}catch(O){return console.error(`[stx] Hydration error for ${B}:`,O),new Response(H.html,{headers:{"Content-Type":"text/html"}})}}});return console.log(`[stx] Production server running at http://localhost:${Y}`),console.log(`[stx] Serving ${X.routes.length} routes (${J.size} pre-loaded)`),{port:Y,stop:()=>W.stop()}}var gM;var zq=D(()=>{b6();dX();gM={".js":"application/javascript",".mjs":"application/javascript",".css":"text/css",".json":"application/json",".html":"text/html",".txt":"text/plain",".xml":"application/xml",".pdf":"application/pdf",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".avif":"image/avif",".svg":"image/svg+xml",".ico":"image/x-icon",".bmp":"image/bmp",".mp4":"video/mp4",".webm":"video/webm",".ogg":"audio/ogg",".mp3":"audio/mpeg",".wav":"audio/wav",".woff":"font/woff",".woff2":"font/woff2",".ttf":"font/ttf",".otf":"font/otf",".eot":"application/vnd.ms-fontobject"}});var dM="f9c3713";import{existsSync as n7,mkdirSync as mX}from"fs";import{join as S$,dirname as mM}from"path";import{execSync as qq}from"child_process";async function pM($,Z={}){let Y={success:!0,message:"",files:[],errors:[]},X=Z.template||"default",J=S$(process.cwd(),$);if(n7(J))return Y.success=!1,Y.message=`Directory ${$} already exists`,Y;try{mX(J,{recursive:!0});let Q=cM(X);for(let K of Q)mX(S$(J,K),{recursive:!0});let G=lM(X,$,Z);for(let[K,W]of Object.entries(G)){let U=S$(J,K);s7(mM(U)),await Bun.write(U,W),Y.files.push(K)}if(!Z.skipGit)try{qq("git init",{cwd:J,stdio:"ignore"}),await Bun.write(S$(J,".gitignore"),JT()),Y.files.push(".gitignore")}catch{Y.errors.push("Failed to initialize git repository")}if(!Z.skipInstall){let K=Z.packageManager||TT();try{console.log(`
12836
12836
  Installing dependencies with ${K}...`),qq(`${K} install`,{cwd:J,stdio:"inherit"})}catch{Y.errors.push("Failed to install dependencies")}}Y.message=`Created project: ${$}`,console.log(`
12837
12837
  \u2705 ${Y.message}
12838
12838
 
@@ -13313,7 +13313,7 @@ $1`)}if(E.length>0){let{interpolateScriptsInTemplate:h}=await Promise.resolve().
13313
13313
  $1`);else g+=`
13314
13314
  ${l}`}return B.set(A,{content:g,mtime:V.mtimeMs}),g}async function q(L){let V=r7.statSync(L),A=`${L}:${V.mtimeMs}`,N=B.get(A);if(N)return N.content;let{content:w}=await p1(L,X);return B.set(A,{content:w,mtime:V.mtimeMs}),w}function j(L){let V=L.startsWith("/")?L.slice(1):L,A=[V,`${V}.stx`,`${V}.md`,`${V}.html`,b$.join(V,"index.stx"),b$.join(V,"index.md"),b$.join(V,"index.html")];for(let N of A){let w=b$.join(_,N);if(r7.existsSync(w)&&r7.statSync(w).isFile())return w}return null}async function H(L){let V=new URL(L.url),A=async()=>{if(G[V.pathname])return await G[V.pathname](L);if(Q){let w=await Q(L);if(w)return w}let N=j(V.pathname);if(!N){if(W)return await W(L);return new Response("Not Found",{status:404})}try{let w,M="text/html";if(N.endsWith(".stx"))w=await z(N);else if(N.endsWith(".md"))w=await q(N);else if(N.endsWith(".html"))w=await Bun.file(N).text();else if(N.endsWith(".css"))w=await Bun.file(N).text(),M="text/css";else if(N.endsWith(".js"))w=await Bun.file(N).text(),M="text/javascript";else if(N.endsWith(".json"))w=await Bun.file(N).text(),M="application/json";else return new Response(Bun.file(N));return new Response(w,{headers:{"Content-Type":M}})}catch(w){if(U)return await U(w,L);let M=w instanceof Error?w.message:String(w),I=X?.debug===!0?`<h1>Error</h1><pre>${M}
13315
13315
  ${w instanceof Error?w.stack:""}</pre>`:"<h1>Internal Server Error</h1><p>An error occurred while processing your request.</p>";return new Response(I,{status:500,headers:{"Content-Type":"text/html"}})}};for(let N=K.length-1;N>=0;N--){let w=K[N],M=A;A=async()=>await w(L,M)}return await A()}let O=IT({port:Z,fetch:H}),F=null;if(J)F=r7.watch(_,{recursive:!0},(L,V)=>{if(V&&(V.endsWith(".stx")||V.endsWith(".md")||V.endsWith(".html")))B.clear()});return{server:O,url:O.url.toString(),stop(){if(F)F.close();O.stop()}}}async function kT($,Z={}){let Y=b$.resolve($);if(!await Bun.file(Y).exists())throw Error(`File not found: ${Y}`);let X=Y.endsWith(".md"),J=Y.endsWith(".stx");if(!X&&!J)throw Error(`Unsupported file type: ${Y}. Only .stx and .md files are supported.`);return await Nq({...Z,root:b$.dirname(Y),routes:{"/":async()=>{let Q;if(X){let{content:G}=await p1(Y,Z.stxOptions);Q=G}else{let G=await Bun.file(Y).text(),K=[],W=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,U;while((U=W.exec(G))!==null)if(U[1].includes("server"))K.push(U[2]);let _=K.join(`
13316
- `),B=G.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),z={};if(_.trim())await R0(_,z,Y);let q=new Set;Q=await Z0(B,z,Y,Z.stxOptions||{},q)}return new Response(Q,{headers:{"Content-Type":"text/html"}})},...Z.routes}})}function ST($){return $}function bT($){return $}var Aq=D(()=>{h5();U1();q0()});import p4 from"path";function CT($){let Z=[],Y=0,X;wq.lastIndex=0;while((X=wq.exec($))!==null){if(X.index>Y){let G=$.slice(Y,X.index);if(G.trim())Z.push({type:Z.length===0?"shell":"content",content:G})}let J=X[1],Q=X[2];Z.push({type:"suspense",name:J,content:Q}),Y=X.index+X[0].length}if(Y<$.length){let J=$.slice(Y);if(J.trim())Z.push({type:Z.length===0?"shell":"content",content:J})}if(Z.length===0)Z.push({type:"shell",content:$});return Z}async function yT($,Z={},Y={}){let X={...a0,...Y,streaming:{...pX,...Y.streaming}},J=X.streaming?.bufferSize||16384;return new ReadableStream({async start(Q){try{let G=await Bun.file($).text(),K=G.match(/<script\b[^>]*\bserver\b[^>]*>([\s\S]*?)<\/script>/i),W=K?K[1]:"",U=G.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),_={...Z,__filename:$,__dirname:p4.dirname($)};if(W.trim())await R0(W,_,$);let B=CT(U),z=new Set;if(!B.some((j)=>j.type==="suspense")){let j=X.streaming?.strategy||"auto",H=new RegExp(a$.source,"g");if(!(j!=="manual"&&H.test(U))){let F=await Z0(U,_,$,X,z);for(let L=0;L<F.length;L+=J)Q.enqueue(F.slice(L,L+J)),await new Promise((V)=>setTimeout(V,0))}else{let F=[],L=new RegExp(a$.source,"g"),V;while((V=L.exec(U))!==null)F.push({name:V[1],content:V[2],start:V.index,end:V.index+V[0].length});let A=0;for(let N of F){if(N.start>A){let M=U.slice(A,N.start);if(M.trim()){let T=await Z0(M,_,$,X,z);Q.enqueue(T),await new Promise((I)=>setTimeout(I,0))}}let w=await Z0(N.content,_,$,X,z);Q.enqueue(w),await new Promise((M)=>setTimeout(M,0)),A=N.end}if(A<U.length){let N=U.slice(A);if(N.trim()){let w=await Z0(N,_,$,X,z);Q.enqueue(w)}}}}else{let j=new Map;for(let O of B)if(O.type==="shell"||O.type==="content"){let F=await Z0(O.content,_,$,X,z);Q.enqueue(F)}else if(O.type==="suspense"&&O.name){let F=`stx-suspense-${O.name}`;Q.enqueue(`<div id="${F}" data-suspense="${O.name}" style="display:contents;">
13316
+ `),B=G.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),z={};if(_.trim())await R0(_,z,Y);let q=new Set;Q=await Z0(B,z,Y,Z.stxOptions||{},q)}return new Response(Q,{headers:{"Content-Type":"text/html"}})},...Z.routes}})}function ST($){return $}function bT($){return $}var Aq=D(()=>{h5();U1();q0()});import p6 from"path";function CT($){let Z=[],Y=0,X;wq.lastIndex=0;while((X=wq.exec($))!==null){if(X.index>Y){let G=$.slice(Y,X.index);if(G.trim())Z.push({type:Z.length===0?"shell":"content",content:G})}let J=X[1],Q=X[2];Z.push({type:"suspense",name:J,content:Q}),Y=X.index+X[0].length}if(Y<$.length){let J=$.slice(Y);if(J.trim())Z.push({type:Z.length===0?"shell":"content",content:J})}if(Z.length===0)Z.push({type:"shell",content:$});return Z}async function yT($,Z={},Y={}){let X={...a0,...Y,streaming:{...pX,...Y.streaming}},J=X.streaming?.bufferSize||16384;return new ReadableStream({async start(Q){try{let G=await Bun.file($).text(),K=G.match(/<script\b[^>]*\bserver\b[^>]*>([\s\S]*?)<\/script>/i),W=K?K[1]:"",U=G.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),_={...Z,__filename:$,__dirname:p6.dirname($)};if(W.trim())await R0(W,_,$);let B=CT(U),z=new Set;if(!B.some((j)=>j.type==="suspense")){let j=X.streaming?.strategy||"auto",H=new RegExp(a$.source,"g");if(!(j!=="manual"&&H.test(U))){let F=await Z0(U,_,$,X,z);for(let L=0;L<F.length;L+=J)Q.enqueue(F.slice(L,L+J)),await new Promise((V)=>setTimeout(V,0))}else{let F=[],L=new RegExp(a$.source,"g"),V;while((V=L.exec(U))!==null)F.push({name:V[1],content:V[2],start:V.index,end:V.index+V[0].length});let A=0;for(let N of F){if(N.start>A){let M=U.slice(A,N.start);if(M.trim()){let T=await Z0(M,_,$,X,z);Q.enqueue(T),await new Promise((I)=>setTimeout(I,0))}}let w=await Z0(N.content,_,$,X,z);Q.enqueue(w),await new Promise((M)=>setTimeout(M,0)),A=N.end}if(A<U.length){let N=U.slice(A);if(N.trim()){let w=await Z0(N,_,$,X,z);Q.enqueue(w)}}}}else{let j=new Map;for(let O of B)if(O.type==="shell"||O.type==="content"){let F=await Z0(O.content,_,$,X,z);Q.enqueue(F)}else if(O.type==="suspense"&&O.name){let F=`stx-suspense-${O.name}`;Q.enqueue(`<div id="${F}" data-suspense="${O.name}" style="display:contents;">
13317
13317
  <template data-suspense-fallback>Loading...</template>
13318
13318
  </div>`),j.set(O.name,Z0(O.content,_,$,X,z))}Q.enqueue(`
13319
13319
  <script>
@@ -13337,7 +13337,7 @@ window.__stxSuspense.resolve('${O}', \`${V}\`);
13337
13337
  </script>`)}catch(L){let V=L instanceof Error?L.message:String(L);Q.enqueue(`
13338
13338
  <script>
13339
13339
  window.__stxSuspense.resolve('${O}', '<div class="stx-error">Error loading content: ${w0(V)}</div>');
13340
- </script>`)}});await Promise.all(H)}Q.close()}catch(G){Q.error(G)}}})}async function PT($,Z={},Y={}){let X={...a0,...Y,streaming:{...pX,...Y.streaming}},J=X.streaming?.bufferSize||16384;return new ReadableStream({async start(Q){try{let G=await Bun.file($).text(),K=G.match(/<script\b[^>]*\bserver\b[^>]*>([\s\S]*?)<\/script>/i),W=K?K[1]:"",U=G.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),_={...Z,__filename:$,__dirname:p4.dirname($)};if(W.trim())await R0(W,_,$);let B=new Set,z=X.streaming?.strategy||"auto",q=new RegExp(a$.source,"g");if(!(z!=="manual"&&q.test(U))){let H=await Z0(U,_,$,X,B);for(let O=0;O<H.length;O+=J)Q.enqueue(H.slice(O,O+J))}else{let H=[],O=new RegExp(a$.source,"g"),F;while((F=O.exec(U))!==null)H.push({name:F[1],content:F[2],start:F.index,end:F.index+F[0].length});let L=0;for(let V of H){if(V.start>L){let N=U.slice(L,V.start);if(N.trim()){let w=await Z0(N,_,$,X,B);Q.enqueue(w)}}let A=await Z0(V.content,_,$,X,B);Q.enqueue(A),L=V.end}if(L<U.length){let V=U.slice(L);if(V.trim()){let A=await Z0(V,_,$,X,B);Q.enqueue(A)}}}Q.close()}catch(G){Q.error(G)}}})}async function xT($,Z={}){let Y={...a0,...Z,streaming:{...pX,...Z.streaming}},X=await Bun.file($).text(),J=X.match(/<script\b[^>]*\bserver\b[^>]*>([\s\S]*?)<\/script>/i),Q=J?J[1]:"",G=X.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),K=G,W={},U;a$.lastIndex=0;while((U=a$.exec(G))!==null){let z=U[1],q=U[2];W[z]=q}let _=G.replace(a$,"");return{renderShell:async(z={})=>{let q={...z,__filename:$,__dirname:p4.dirname($)};return await R0(Q,q,$),Z0(_,q,$,Y,new Set)},renderSection:async(z,q={})=>{try{if(!W[z])return`<div class="error-message">Section "${w0(z)}" not found in template "${w0($)}"</div>`;let j={...q,__filename:$,__dirname:p4.dirname($)};await R0(Q,j,$);let H=new Set;return await Z0(W[z],j,$,Y,H)}catch(j){let H=j instanceof Error?j.message:String(j);return B0("Expression",H,$,W[z]||"",0,W[z]||"")}},getSections:()=>{return Object.keys(W)},getTemplate:()=>{return K}}}function vT($={}){let Z=[];if($.streaming?.enabled)Z.push(Rq);if($.hydration?.enabled)Z.push(Mq);return Z}async function fT($,Z,Y,X={}){return $}function gT($,Z={}){let Y=new TextEncoder,X=$.pipeThrough(new TransformStream({transform(Q,G){G.enqueue(Y.encode(Q))}})),J=new Headers(Z.headers);if(!J.has("Content-Type"))J.set("Content-Type","text/html; charset=utf-8");if(!J.has("Transfer-Encoding"))J.set("Transfer-Encoding","chunked");if(!J.has("X-Content-Type-Options"))J.set("X-Content-Type-Options","nosniff");return new Response(X,{...Z,headers:J})}function hT($={mode:"full"}){let{mode:Z,components:Y={},dynamicImports:X=!0}=$,J=Object.entries(Y).map(([Q,G])=>`'${Q}': ${X?`() => import('${G}')`:`require('${G}')`}`).join(`,
13340
+ </script>`)}});await Promise.all(H)}Q.close()}catch(G){Q.error(G)}}})}async function PT($,Z={},Y={}){let X={...a0,...Y,streaming:{...pX,...Y.streaming}},J=X.streaming?.bufferSize||16384;return new ReadableStream({async start(Q){try{let G=await Bun.file($).text(),K=G.match(/<script\b[^>]*\bserver\b[^>]*>([\s\S]*?)<\/script>/i),W=K?K[1]:"",U=G.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),_={...Z,__filename:$,__dirname:p6.dirname($)};if(W.trim())await R0(W,_,$);let B=new Set,z=X.streaming?.strategy||"auto",q=new RegExp(a$.source,"g");if(!(z!=="manual"&&q.test(U))){let H=await Z0(U,_,$,X,B);for(let O=0;O<H.length;O+=J)Q.enqueue(H.slice(O,O+J))}else{let H=[],O=new RegExp(a$.source,"g"),F;while((F=O.exec(U))!==null)H.push({name:F[1],content:F[2],start:F.index,end:F.index+F[0].length});let L=0;for(let V of H){if(V.start>L){let N=U.slice(L,V.start);if(N.trim()){let w=await Z0(N,_,$,X,B);Q.enqueue(w)}}let A=await Z0(V.content,_,$,X,B);Q.enqueue(A),L=V.end}if(L<U.length){let V=U.slice(L);if(V.trim()){let A=await Z0(V,_,$,X,B);Q.enqueue(A)}}}Q.close()}catch(G){Q.error(G)}}})}async function xT($,Z={}){let Y={...a0,...Z,streaming:{...pX,...Z.streaming}},X=await Bun.file($).text(),J=X.match(/<script\b[^>]*\bserver\b[^>]*>([\s\S]*?)<\/script>/i),Q=J?J[1]:"",G=X.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),K=G,W={},U;a$.lastIndex=0;while((U=a$.exec(G))!==null){let z=U[1],q=U[2];W[z]=q}let _=G.replace(a$,"");return{renderShell:async(z={})=>{let q={...z,__filename:$,__dirname:p6.dirname($)};return await R0(Q,q,$),Z0(_,q,$,Y,new Set)},renderSection:async(z,q={})=>{try{if(!W[z])return`<div class="error-message">Section "${w0(z)}" not found in template "${w0($)}"</div>`;let j={...q,__filename:$,__dirname:p6.dirname($)};await R0(Q,j,$);let H=new Set;return await Z0(W[z],j,$,Y,H)}catch(j){let H=j instanceof Error?j.message:String(j);return B0("Expression",H,$,W[z]||"",0,W[z]||"")}},getSections:()=>{return Object.keys(W)},getTemplate:()=>{return K}}}function vT($={}){let Z=[];if($.streaming?.enabled)Z.push(Rq);if($.hydration?.enabled)Z.push(Mq);return Z}async function fT($,Z,Y,X={}){return $}function gT($,Z={}){let Y=new TextEncoder,X=$.pipeThrough(new TransformStream({transform(Q,G){G.enqueue(Y.encode(Q))}})),J=new Headers(Z.headers);if(!J.has("Content-Type"))J.set("Content-Type","text/html; charset=utf-8");if(!J.has("Transfer-Encoding"))J.set("Transfer-Encoding","chunked");if(!J.has("X-Content-Type-Options"))J.set("X-Content-Type-Options","nosniff");return new Response(X,{...Z,headers:J})}function hT($={mode:"full"}){let{mode:Z,components:Y={},dynamicImports:X=!0}=$,J=Object.entries(Y).map(([Q,G])=>`'${Q}': ${X?`() => import('${G}')`:`require('${G}')`}`).join(`,
13341
13341
  `);if(Z==="loader")return`
13342
13342
  (function() {
13343
13343
  window.__stx = window.__stx || {};
@@ -13518,7 +13518,7 @@ else {
13518
13518
  0% { transform: translateX(-100%); }
13519
13519
  100% { transform: translateX(100%); }
13520
13520
  }
13521
- `,document.head.appendChild(Q)}return document.body.appendChild(Y),Y}function c4($,Z){if(!B2||!Z1)return;if(x1=Math.min(Math.max($,0),100),sX)cancelAnimationFrame(sX);sX=requestAnimationFrame(()=>{if(!Z1)return;Z1.style.opacity=x1>0?"1":"0",Z1.style.transform=`scaleX(${x1/100})`})}function sT($){if(!B2)return;if(o7=!0,x1=0,!Z1)Z1=kq($);if(_2)clearTimeout(_2);if(o1)clearInterval(o1);c4(10,$),o1=setInterval(()=>{if(!o7)return;let Z=90-x1,Y=Math.max(0.5,Z*0.1);if(x1<90)c4(x1+Y,$)},$.throttle)}function rT($){if(!B2)return;if(o7=!1,o1)clearInterval(o1),o1=null;c4(100,$),_2=setTimeout(()=>{if(Z1)Z1.style.opacity="0";setTimeout(()=>{if(x1=0,Z1)Z1.style.transform="scaleX(0)"},300)},200)}function oT(){if(!B2)return;if(o7=!1,x1=0,o1)clearInterval(o1),o1=null;if(_2)clearTimeout(_2),_2=null;if(Z1)Z1.style.opacity="0",Z1.style.transform="scaleX(0)"}function Sq($){let Z={...rX,...$};return{start:()=>sT(Z),set:(Y)=>c4(Y,Z),finish:()=>rT(Z),clear:()=>oT(),get state(){return{isLoading:o7,progress:x1,error:!1}}}}function aT($){if(!B2)return;let Z={...rX,...$},Y=Sq(Z);Z1=kq(Z);let X=!1;document.addEventListener("click",(G)=>{let W=G.target.closest("a");if(!W)return;let U=W.getAttribute("href");if(!U)return;if(U.startsWith("http")||U.startsWith("#")||U.startsWith("mailto:")||U.startsWith("tel:")||W.target==="_blank"||W.hasAttribute("download"))return;X=!0,Y.start()}),window.addEventListener("popstate",()=>{if(!X)Y.start(),X=!0}),window.addEventListener("load",()=>{if(X||Z.autoFinish)Y.finish(),X=!1});let J=window.fetch,Q=0;window.fetch=async function(...G){let K=typeof G[0]==="string"?G[0]:G[0].url,W=K.includes("/api/")||K.startsWith("/api");if(W){if(Q++,Q===1&&!X)Y.start()}try{return await J.apply(this,G)}finally{if(W){if(Q--,Q===0&&!X)Y.finish()}}}}function tT($){let Z={...rX,...$},Y=Z.initialColor?`linear-gradient(to right, ${Z.initialColor}, ${Z.color})`:Z.color;return`
13521
+ `,document.head.appendChild(Q)}return document.body.appendChild(Y),Y}function c6($,Z){if(!B2||!Z1)return;if(x1=Math.min(Math.max($,0),100),sX)cancelAnimationFrame(sX);sX=requestAnimationFrame(()=>{if(!Z1)return;Z1.style.opacity=x1>0?"1":"0",Z1.style.transform=`scaleX(${x1/100})`})}function sT($){if(!B2)return;if(o7=!0,x1=0,!Z1)Z1=kq($);if(_2)clearTimeout(_2);if(o1)clearInterval(o1);c6(10,$),o1=setInterval(()=>{if(!o7)return;let Z=90-x1,Y=Math.max(0.5,Z*0.1);if(x1<90)c6(x1+Y,$)},$.throttle)}function rT($){if(!B2)return;if(o7=!1,o1)clearInterval(o1),o1=null;c6(100,$),_2=setTimeout(()=>{if(Z1)Z1.style.opacity="0";setTimeout(()=>{if(x1=0,Z1)Z1.style.transform="scaleX(0)"},300)},200)}function oT(){if(!B2)return;if(o7=!1,x1=0,o1)clearInterval(o1),o1=null;if(_2)clearTimeout(_2),_2=null;if(Z1)Z1.style.opacity="0",Z1.style.transform="scaleX(0)"}function Sq($){let Z={...rX,...$};return{start:()=>sT(Z),set:(Y)=>c6(Y,Z),finish:()=>rT(Z),clear:()=>oT(),get state(){return{isLoading:o7,progress:x1,error:!1}}}}function aT($){if(!B2)return;let Z={...rX,...$},Y=Sq(Z);Z1=kq(Z);let X=!1;document.addEventListener("click",(G)=>{let W=G.target.closest("a");if(!W)return;let U=W.getAttribute("href");if(!U)return;if(U.startsWith("http")||U.startsWith("#")||U.startsWith("mailto:")||U.startsWith("tel:")||W.target==="_blank"||W.hasAttribute("download"))return;X=!0,Y.start()}),window.addEventListener("popstate",()=>{if(!X)Y.start(),X=!0}),window.addEventListener("load",()=>{if(X||Z.autoFinish)Y.finish(),X=!1});let J=window.fetch,Q=0;window.fetch=async function(...G){let K=typeof G[0]==="string"?G[0]:G[0].url,W=K.includes("/api/")||K.startsWith("/api");if(W){if(Q++,Q===1&&!X)Y.start()}try{return await J.apply(this,G)}finally{if(W){if(Q--,Q===0&&!X)Y.finish()}}}}function tT($){let Z={...rX,...$},Y=Z.initialColor?`linear-gradient(to right, ${Z.initialColor}, ${Z.color})`:Z.color;return`
13522
13522
  <div id="stx-loading-indicator" style="
13523
13523
  position: fixed;
13524
13524
  top: 0;
@@ -14014,7 +14014,7 @@ else {
14014
14014
  }
14015
14015
  }
14016
14016
  </style>
14017
- `}var aX=null;var hq=()=>{};import dq from"path";class mq{store=new Map;async get($){let Z=this.store.get($);if(!Z||Z.expires<=Date.now()){if(Z)this.store.delete($);return null}return{...Z.data}}async set($,Z,Y){this.store.set($,{data:{...Z},expires:Date.now()+Y*1000})}async delete($){this.store.delete($)}}async function KE($,Z={},Y={}){let X=Y.viewsDir||"./views",J=Y.layoutsDir||"./layouts",Q=!$.includes("<")&&!$.includes("@"),G,K;if(Q){if(K=dq.resolve(X,$),!K.endsWith(".stx"))K+=".stx";if(!await Bun.file(K).exists())return new Response(`Template not found: ${$}`,{status:500});G=await Bun.file(K).text()}else G=$,K="inline-template.stx";let W={...Z,props:Z,__filename:K,__dirname:dq.dirname(K)};if(Y.ctx)W.csrf_token=Y.ctx.csrfToken,W.csrf_field=`<input type="hidden" name="_token" value="${Y.ctx.csrfToken}">`,W.old=Y.ctx.old,W.errors=Y.ctx.errors,W.session=Y.ctx.session,W.user=Y.ctx.user(),W.isAuthenticated=Y.ctx.isAuthenticated();let U=G.match(/<script\s+server\b[^>]*>([\s\S]*?)<\/script>/i);if(U){let j=U[1];G=G.replace(/<script\s+server\b[^>]*>[\s\S]*?<\/script>/gi,""),await R0(j,W,K)}let _={layoutsDir:J,...Y.stxOptions},z=await Z0(G,W,K,_,new Set),q=new Headers({"Content-Type":"text/html; charset=utf-8"});if(Y.ctx)Y.ctx.responseHeaders.forEach((j,H)=>{q.set(H,j)});return new Response(z,{headers:q})}var uq=D(()=>{X1();U1();q0()});function WE($,Z){a7.stores.set($,Z)}function eX($){return a7.stores.get($)}function cq($){return a7.stores.has($)}function lq(){return Array.from(a7.stores.keys())}function pq($){if($==="memory")return{getItem:(Z)=>q2.get(Z)??null,setItem:(Z,Y)=>q2.set(Z,Y),removeItem:(Z)=>q2.delete(Z)};if(typeof window>"u")return{getItem:(Z)=>q2.get(Z)??null,setItem:(Z,Y)=>q2.set(Z,Y),removeItem:(Z)=>q2.delete(Z)};return $==="local"?window.localStorage:window.sessionStorage}function UE($,Z){let Y={};for(let X of Z){let J=X.split("."),Q=$,G=Y,K=!0;for(let W=0;W<J.length-1;W++){let U=J[W];if(Q&&typeof Q==="object"&&U in Q){if(Q=Q[U],!(U in G))G[U]={};G=G[U]}else{K=!1;break}}if(K&&Q&&typeof Q==="object"){let W=J[J.length-1];if(W in Q)G[W]=Q[W]}}return Y}function $J($,Z={}){let{name:Y,persist:X,devtools:J=!1,middleware:Q=[],equals:G=(O,F)=>O===F}=Z,K=$,W=new Set,U=null;if(X){let O=pq(X.storage||"local"),F=X.key||`stx-store:${Y||"unnamed"}`,L=X.deserialize||JSON.parse;try{let V=O.getItem(F);if(V){let A=L(V);if(X.paths&&typeof A==="object"&&A!==null)K={...$,...A};else K=A}}catch{}}let _=(O)=>{if(!X)return;let F=pq(X.storage||"local"),L=X.key||`stx-store:${Y||"unnamed"}`,V=X.serialize||JSON.stringify,A=X.paths&&typeof O==="object"&&O!==null?UE(O,X.paths):O;if(X.debounce){if(U)clearTimeout(U);U=setTimeout(()=>{F.setItem(L,V(A))},X.debounce)}else F.setItem(L,V(A))},B=(O,F)=>{for(let L of W)try{L(O,F)}catch(V){console.error("[stx-store] Subscriber error:",V)}},z=J?(O,F)=>{if(typeof window<"u"&&window.__STX_DEVTOOLS__)window.__STX_DEVTOOLS__.onStoreChange(Y||"unnamed",O,F)}:()=>{},q=(O)=>{let F=K;if(!G(O,F))K=O,_(O),B(O,F),z("set",O)},j=q,H={get:()=>K,set:(O)=>{if(typeof O==="function")j(O(K));else j(O)},subscribe:(O)=>{return W.add(O),()=>{W.delete(O)}},update:(O)=>{if(typeof K!=="object"||K===null)throw Error("update() can only be used with object stores");let F=typeof O==="function"?O(K):O;H.set({...K,...F})},reset:()=>{H.set($),z("reset",$)},name:Y,destroy:()=>{if(W.clear(),U)clearTimeout(U);if(Y)a7.stores.delete(Y)}};for(let O of Q.reverse())j=O(q,()=>K,H)(j);if(Y)WE(Y,H);return H}function iq($){let Z=typeof $==="string"?eX($):$;if(!Z)throw Error(`Store "${$}" not found`);return Z.get()}function nq($,Z,Y){if(typeof Z==="function"){if(typeof window<"u"&&window.stx?.defineStore)return window.stx.defineStore($,Z,Y);return Z()}let X=Z,{state:J,getters:Q={},actions:G={},persist:K,devtools:W=!0}=X,U=typeof J==="function"?J():J,_=K===!0?{storage:"local",key:`stx-store:${$}`}:K||void 0,B=$J(U,{name:$,persist:_,devtools:W}),z=new Proxy({},{get(q,j){let H=String(j);if(H==="$state")return B.get();if(H==="$subscribe")return B.subscribe;if(H==="$reset")return B.reset;if(H==="$patch")return(F)=>{if(typeof F==="function"){let V={...B.get()};F(V),B.set(V)}else B.update(F)};if(H==="_store")return B;if(H==="$id")return $;if(H in Q)return Q[H](B.get());if(H in G)return(...F)=>{return G[H].apply(z,F)};let O=B.get();if(O&&typeof O==="object"&&H in O)return O[H];return},set(q,j,H){let O=String(j);if(O.startsWith("$")||O==="_store")return!1;let F=B.get();if(F&&typeof F==="object")return B.set({...F,[O]:H}),!0;return!1},has(q,j){let H=String(j),O=B.get();return H.startsWith("$")||H==="_store"||H in Q||H in G||O&&typeof O==="object"&&H in O},ownKeys(){let q=B.get();return[...q&&typeof q==="object"?Object.keys(q):[],...Object.keys(Q),...Object.keys(G),"$state","$subscribe","$reset","$patch","$id"]},getOwnPropertyDescriptor(q,j){return{enumerable:!0,configurable:!0,get:()=>this.get(q,j,z)}}});return _E.set($,z),z}var a7,q2,_E;var sq=D(()=>{a7={stores:new Map,subscriptions:new Map};q2=new Map;_E=new Map});function H0($,Z={}){let Y=[];for(let[J,Q]of Object.entries(Z)){if(Q===void 0||Q===null)continue;if(Array.isArray(Q))Y.push(`${J}=${encodeURIComponent(Q.join(","))}`);else if(typeof Q==="boolean"){if(Q)Y.push(`${J}=true`)}else Y.push(`${J}=${encodeURIComponent(String(Q))}`)}if(Y.length===0)return $;let X=$.includes("?")?"&":"?";return`${$}${X}${Y.join("&")}`}function ZJ($){let Z=$.indexOf("?");if(Z===-1)return{src:$,params:{}};let Y=$.slice(0,Z),X=$.slice(Z+1),J={};for(let Q of X.split("&")){let[G,K]=Q.split("="),W=K?decodeURIComponent(K):"";if(W==="true")J[G]=!0;else if(W==="false")J[G]=!1;else if(/^-?\d+$/.test(W))J[G]=Number.parseInt(W,10);else if(/^-?\d+\.\d+$/.test(W))J[G]=Number.parseFloat(W);else if(W.includes(","))J[G]=W.split(",");else J[G]=W}return{src:Y,params:J}}function l4(...$){let Z={};for(let Y of $)if(Y)Object.assign(Z,Y);return Z}function YJ($,Z,Y,X){let J={w:Z};if(Y)J.h=Y;if(X)J.fit=X;return H0($,J)}function XJ($,Z,Y,X="center"){return H0($,{w:Z,h:Y,fit:"crop",crop:X})}function JJ($,Z,Y="center"){return H0($,{w:Z,h:Z,fit:"crop",crop:Y})}function QJ($,Z,Y){return H0($,{w:Z,h:Y,fit:"max"})}function GJ($,Z,Y){return H0($,{w:Z,h:Y,fit:"crop"})}function KJ($,Z){return H0($,{blur:Math.min(2000,Math.max(0,Z))})}function WJ($,Z){return H0($,{sharp:Math.min(100,Math.max(0,Z))})}function UJ($){return H0($,{sat:-100})}function _J($,Z=100){return H0($,{sepia:Math.min(100,Math.max(0,Z))})}function BJ($){return H0($,{invert:!0})}function zJ($,Z){return H0($,{bri:Math.min(100,Math.max(-100,Z))})}function qJ($,Z){return H0($,{con:Math.min(100,Math.max(-100,Z))})}function jJ($,Z){return H0($,{sat:Math.min(100,Math.max(-100,Z))})}function HJ($,Z){return H0($,{rot:(Z%360+360)%360})}function OJ($){return H0($,{flip:"h"})}function LJ($){return H0($,{flip:"v"})}function FJ($,Z,Y){let X={fm:Z};if(Y!==void 0)X.q=Y;return H0($,X)}function VJ($,Z){return H0($,{q:Math.min(100,Math.max(1,Z))})}function NJ($,Z=["format","compress"]){return H0($,{auto:Z})}function AJ($,Z,Y={}){return H0($,{mark:Z,markx:Y.x,marky:Y.y,markalpha:Y.alpha,markscale:Y.scale,markalign:Y.align})}function wJ($,Z,Y){return H0($,l4(i4[Z],Y))}function RJ($,Z,Y){return Z.map((X)=>H0($,{...Y,w:X}))}function MJ($,Z,Y=[1,2,3],X){return Y.map((J)=>H0($,{...X,w:Math.round(Z*J),dpr:J}))}function TJ($){let Z=[];if($.w!==void 0&&($.w<1||$.w>16383))Z.push("Width must be between 1 and 16383");if($.h!==void 0&&($.h<1||$.h>16383))Z.push("Height must be between 1 and 16383");if($.q!==void 0&&($.q<1||$.q>100))Z.push("Quality must be between 1 and 100");if($.blur!==void 0&&($.blur<0||$.blur>2000))Z.push("Blur must be between 0 and 2000");if($.rot!==void 0&&($.rot<0||$.rot>359))Z.push("Rotation must be between 0 and 359");if($.dpr!==void 0&&($.dpr<1||$.dpr>5))Z.push("DPR must be between 1 and 5");return{valid:Z.length===0,errors:Z}}function EJ($){let Z={...$};if(Z.w!==void 0)Z.w=Math.min(16383,Math.max(1,Z.w));if(Z.h!==void 0)Z.h=Math.min(16383,Math.max(1,Z.h));if(Z.q!==void 0)Z.q=Math.min(100,Math.max(1,Z.q));if(Z.blur!==void 0)Z.blur=Math.min(2000,Math.max(0,Z.blur));if(Z.rot!==void 0)Z.rot=(Z.rot%360+360)%360;if(Z.dpr!==void 0)Z.dpr=Math.min(5,Math.max(1,Z.dpr));return Z}var i4;var rq=D(()=>{i4={web:{fm:"webp",q:80,auto:["format","compress"]},highQuality:{q:95},thumb:{w:150,h:150,fit:"crop",crop:"center"},avatar:{w:200,h:200,fit:"crop",crop:"faces"},social:{w:1200,h:630,fit:"crop"},preview:{w:400,q:70},placeholder:{w:20,blur:200,q:20}}});var oq=D(()=>{I8();k8();d9();z8();rq()});function IJ($){let{endpoint:Z,accept:Y,maxSize:X,maxFiles:J=1,fieldName:Q="file",preview:G=!1,dropzone:K=!0,multiple:W=!1,autoUpload:U=!0,showProgress:_=!0,disabled:B=!1,placeholder:z="Drop files here or click to select",label:q}=$,j=$.class||"",H=$.style||"",O=$.id||`stx-upload-${Math.random().toString(36).slice(2,8)}`,F=Array.isArray(Y)?Y.join(","):Y,L=`
14017
+ `}var aX=null;var hq=()=>{};import dq from"path";class mq{store=new Map;async get($){let Z=this.store.get($);if(!Z||Z.expires<=Date.now()){if(Z)this.store.delete($);return null}return{...Z.data}}async set($,Z,Y){this.store.set($,{data:{...Z},expires:Date.now()+Y*1000})}async delete($){this.store.delete($)}}async function KE($,Z={},Y={}){let X=Y.viewsDir||"./views",J=Y.layoutsDir||"./layouts",Q=!$.includes("<")&&!$.includes("@"),G,K;if(Q){if(K=dq.resolve(X,$),!K.endsWith(".stx"))K+=".stx";if(!await Bun.file(K).exists())return new Response(`Template not found: ${$}`,{status:500});G=await Bun.file(K).text()}else G=$,K="inline-template.stx";let W={...Z,props:Z,__filename:K,__dirname:dq.dirname(K)};if(Y.ctx)W.csrf_token=Y.ctx.csrfToken,W.csrf_field=`<input type="hidden" name="_token" value="${Y.ctx.csrfToken}">`,W.old=Y.ctx.old,W.errors=Y.ctx.errors,W.session=Y.ctx.session,W.user=Y.ctx.user(),W.isAuthenticated=Y.ctx.isAuthenticated();let U=G.match(/<script\s+server\b[^>]*>([\s\S]*?)<\/script>/i);if(U){let j=U[1];G=G.replace(/<script\s+server\b[^>]*>[\s\S]*?<\/script>/gi,""),await R0(j,W,K)}let _={layoutsDir:J,...Y.stxOptions},z=await Z0(G,W,K,_,new Set),q=new Headers({"Content-Type":"text/html; charset=utf-8"});if(Y.ctx)Y.ctx.responseHeaders.forEach((j,H)=>{q.set(H,j)});return new Response(z,{headers:q})}var uq=D(()=>{X1();U1();q0()});function WE($,Z){a7.stores.set($,Z)}function eX($){return a7.stores.get($)}function cq($){return a7.stores.has($)}function lq(){return Array.from(a7.stores.keys())}function pq($){if($==="memory")return{getItem:(Z)=>q2.get(Z)??null,setItem:(Z,Y)=>q2.set(Z,Y),removeItem:(Z)=>q2.delete(Z)};if(typeof window>"u")return{getItem:(Z)=>q2.get(Z)??null,setItem:(Z,Y)=>q2.set(Z,Y),removeItem:(Z)=>q2.delete(Z)};return $==="local"?window.localStorage:window.sessionStorage}function UE($,Z){let Y={};for(let X of Z){let J=X.split("."),Q=$,G=Y,K=!0;for(let W=0;W<J.length-1;W++){let U=J[W];if(Q&&typeof Q==="object"&&U in Q){if(Q=Q[U],!(U in G))G[U]={};G=G[U]}else{K=!1;break}}if(K&&Q&&typeof Q==="object"){let W=J[J.length-1];if(W in Q)G[W]=Q[W]}}return Y}function $J($,Z={}){let{name:Y,persist:X,devtools:J=!1,middleware:Q=[],equals:G=(O,F)=>O===F}=Z,K=$,W=new Set,U=null;if(X){let O=pq(X.storage||"local"),F=X.key||`stx-store:${Y||"unnamed"}`,L=X.deserialize||JSON.parse;try{let V=O.getItem(F);if(V){let A=L(V);if(X.paths&&typeof A==="object"&&A!==null)K={...$,...A};else K=A}}catch{}}let _=(O)=>{if(!X)return;let F=pq(X.storage||"local"),L=X.key||`stx-store:${Y||"unnamed"}`,V=X.serialize||JSON.stringify,A=X.paths&&typeof O==="object"&&O!==null?UE(O,X.paths):O;if(X.debounce){if(U)clearTimeout(U);U=setTimeout(()=>{F.setItem(L,V(A))},X.debounce)}else F.setItem(L,V(A))},B=(O,F)=>{for(let L of W)try{L(O,F)}catch(V){console.error("[stx-store] Subscriber error:",V)}},z=J?(O,F)=>{if(typeof window<"u"&&window.__STX_DEVTOOLS__)window.__STX_DEVTOOLS__.onStoreChange(Y||"unnamed",O,F)}:()=>{},q=(O)=>{let F=K;if(!G(O,F))K=O,_(O),B(O,F),z("set",O)},j=q,H={get:()=>K,set:(O)=>{if(typeof O==="function")j(O(K));else j(O)},subscribe:(O)=>{return W.add(O),()=>{W.delete(O)}},update:(O)=>{if(typeof K!=="object"||K===null)throw Error("update() can only be used with object stores");let F=typeof O==="function"?O(K):O;H.set({...K,...F})},reset:()=>{H.set($),z("reset",$)},name:Y,destroy:()=>{if(W.clear(),U)clearTimeout(U);if(Y)a7.stores.delete(Y)}};for(let O of Q.reverse())j=O(q,()=>K,H)(j);if(Y)WE(Y,H);return H}function iq($){let Z=typeof $==="string"?eX($):$;if(!Z)throw Error(`Store "${$}" not found`);return Z.get()}function nq($,Z,Y){if(typeof Z==="function"){if(typeof window<"u"&&window.stx?.defineStore)return window.stx.defineStore($,Z,Y);return Z()}let X=Z,{state:J,getters:Q={},actions:G={},persist:K,devtools:W=!0}=X,U=typeof J==="function"?J():J,_=K===!0?{storage:"local",key:`stx-store:${$}`}:K||void 0,B=$J(U,{name:$,persist:_,devtools:W}),z=new Proxy({},{get(q,j){let H=String(j);if(H==="$state")return B.get();if(H==="$subscribe")return B.subscribe;if(H==="$reset")return B.reset;if(H==="$patch")return(F)=>{if(typeof F==="function"){let V={...B.get()};F(V),B.set(V)}else B.update(F)};if(H==="_store")return B;if(H==="$id")return $;if(H in Q)return Q[H](B.get());if(H in G)return(...F)=>{return G[H].apply(z,F)};let O=B.get();if(O&&typeof O==="object"&&H in O)return O[H];return},set(q,j,H){let O=String(j);if(O.startsWith("$")||O==="_store")return!1;let F=B.get();if(F&&typeof F==="object")return B.set({...F,[O]:H}),!0;return!1},has(q,j){let H=String(j),O=B.get();return H.startsWith("$")||H==="_store"||H in Q||H in G||O&&typeof O==="object"&&H in O},ownKeys(){let q=B.get();return[...q&&typeof q==="object"?Object.keys(q):[],...Object.keys(Q),...Object.keys(G),"$state","$subscribe","$reset","$patch","$id"]},getOwnPropertyDescriptor(q,j){return{enumerable:!0,configurable:!0,get:()=>this.get(q,j,z)}}});return _E.set($,z),z}var a7,q2,_E;var sq=D(()=>{a7={stores:new Map,subscriptions:new Map};q2=new Map;_E=new Map});function H0($,Z={}){let Y=[];for(let[J,Q]of Object.entries(Z)){if(Q===void 0||Q===null)continue;if(Array.isArray(Q))Y.push(`${J}=${encodeURIComponent(Q.join(","))}`);else if(typeof Q==="boolean"){if(Q)Y.push(`${J}=true`)}else Y.push(`${J}=${encodeURIComponent(String(Q))}`)}if(Y.length===0)return $;let X=$.includes("?")?"&":"?";return`${$}${X}${Y.join("&")}`}function ZJ($){let Z=$.indexOf("?");if(Z===-1)return{src:$,params:{}};let Y=$.slice(0,Z),X=$.slice(Z+1),J={};for(let Q of X.split("&")){let[G,K]=Q.split("="),W=K?decodeURIComponent(K):"";if(W==="true")J[G]=!0;else if(W==="false")J[G]=!1;else if(/^-?\d+$/.test(W))J[G]=Number.parseInt(W,10);else if(/^-?\d+\.\d+$/.test(W))J[G]=Number.parseFloat(W);else if(W.includes(","))J[G]=W.split(",");else J[G]=W}return{src:Y,params:J}}function l6(...$){let Z={};for(let Y of $)if(Y)Object.assign(Z,Y);return Z}function YJ($,Z,Y,X){let J={w:Z};if(Y)J.h=Y;if(X)J.fit=X;return H0($,J)}function XJ($,Z,Y,X="center"){return H0($,{w:Z,h:Y,fit:"crop",crop:X})}function JJ($,Z,Y="center"){return H0($,{w:Z,h:Z,fit:"crop",crop:Y})}function QJ($,Z,Y){return H0($,{w:Z,h:Y,fit:"max"})}function GJ($,Z,Y){return H0($,{w:Z,h:Y,fit:"crop"})}function KJ($,Z){return H0($,{blur:Math.min(2000,Math.max(0,Z))})}function WJ($,Z){return H0($,{sharp:Math.min(100,Math.max(0,Z))})}function UJ($){return H0($,{sat:-100})}function _J($,Z=100){return H0($,{sepia:Math.min(100,Math.max(0,Z))})}function BJ($){return H0($,{invert:!0})}function zJ($,Z){return H0($,{bri:Math.min(100,Math.max(-100,Z))})}function qJ($,Z){return H0($,{con:Math.min(100,Math.max(-100,Z))})}function jJ($,Z){return H0($,{sat:Math.min(100,Math.max(-100,Z))})}function HJ($,Z){return H0($,{rot:(Z%360+360)%360})}function OJ($){return H0($,{flip:"h"})}function LJ($){return H0($,{flip:"v"})}function FJ($,Z,Y){let X={fm:Z};if(Y!==void 0)X.q=Y;return H0($,X)}function VJ($,Z){return H0($,{q:Math.min(100,Math.max(1,Z))})}function NJ($,Z=["format","compress"]){return H0($,{auto:Z})}function AJ($,Z,Y={}){return H0($,{mark:Z,markx:Y.x,marky:Y.y,markalpha:Y.alpha,markscale:Y.scale,markalign:Y.align})}function wJ($,Z,Y){return H0($,l6(i6[Z],Y))}function RJ($,Z,Y){return Z.map((X)=>H0($,{...Y,w:X}))}function MJ($,Z,Y=[1,2,3],X){return Y.map((J)=>H0($,{...X,w:Math.round(Z*J),dpr:J}))}function TJ($){let Z=[];if($.w!==void 0&&($.w<1||$.w>16383))Z.push("Width must be between 1 and 16383");if($.h!==void 0&&($.h<1||$.h>16383))Z.push("Height must be between 1 and 16383");if($.q!==void 0&&($.q<1||$.q>100))Z.push("Quality must be between 1 and 100");if($.blur!==void 0&&($.blur<0||$.blur>2000))Z.push("Blur must be between 0 and 2000");if($.rot!==void 0&&($.rot<0||$.rot>359))Z.push("Rotation must be between 0 and 359");if($.dpr!==void 0&&($.dpr<1||$.dpr>5))Z.push("DPR must be between 1 and 5");return{valid:Z.length===0,errors:Z}}function EJ($){let Z={...$};if(Z.w!==void 0)Z.w=Math.min(16383,Math.max(1,Z.w));if(Z.h!==void 0)Z.h=Math.min(16383,Math.max(1,Z.h));if(Z.q!==void 0)Z.q=Math.min(100,Math.max(1,Z.q));if(Z.blur!==void 0)Z.blur=Math.min(2000,Math.max(0,Z.blur));if(Z.rot!==void 0)Z.rot=(Z.rot%360+360)%360;if(Z.dpr!==void 0)Z.dpr=Math.min(5,Math.max(1,Z.dpr));return Z}var i6;var rq=D(()=>{i6={web:{fm:"webp",q:80,auto:["format","compress"]},highQuality:{q:95},thumb:{w:150,h:150,fit:"crop",crop:"center"},avatar:{w:200,h:200,fit:"crop",crop:"faces"},social:{w:1200,h:630,fit:"crop"},preview:{w:400,q:70},placeholder:{w:20,blur:200,q:20}}});var oq=D(()=>{I8();k8();d9();z8();rq()});function IJ($){let{endpoint:Z,accept:Y,maxSize:X,maxFiles:J=1,fieldName:Q="file",preview:G=!1,dropzone:K=!0,multiple:W=!1,autoUpload:U=!0,showProgress:_=!0,disabled:B=!1,placeholder:z="Drop files here or click to select",label:q}=$,j=$.class||"",H=$.style||"",O=$.id||`stx-upload-${Math.random().toString(36).slice(2,8)}`,F=Array.isArray(Y)?Y.join(","):Y,L=`
14018
14018
  <div id="${O}" class="stx-upload${K?" stx-upload-dropzone":""}${B?" stx-upload-disabled":""}${j?" "+j:""}"${H?` style="${H}"`:""}>
14019
14019
  ${q?`<label class="stx-upload-label">${aq(q)}</label>`:""}
14020
14020
  <div class="stx-upload-area" data-stx-upload-area>
@@ -14303,7 +14303,7 @@ else {
14303
14303
  opacity: 0.5;
14304
14304
  pointer-events: none;
14305
14305
  }
14306
- `.trim();return{html:L,script:V,css:A}}function aq($){return $.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function qE($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}function jE($){if($<1024)return`${$} B`;if($<1048576)return`${($/1024).toFixed(1)} KB`;return`${($/1048576).toFixed(1)} MB`}var tq=()=>{};async function n4($,Z){let{endpoint:Y,method:X="POST",headers:J={},expirationSeconds:Q=3600,oneTimeUse:G=!1,params:K={}}=Z,W=JSON.stringify({url:$,expirationSeconds:Q,oneTimeUse:G,...K}),U=await fetch(Y,{method:X,headers:{"Content-Type":"application/json",...J},body:X!=="GET"?W:void 0});if(!U.ok)throw Error(`Failed to sign URL: ${U.status} ${U.statusText}`);let _=await U.json();return{url:_.url||_.signedUrl,signature:_.signature,expires:_.expires||Date.now()+Q*1000,oneTimeUse:_.oneTimeUse||G}}async function s4($,Z){let{endpoint:Y,method:X="POST",headers:J={},expirationSeconds:Q=3600,oneTimeUse:G=!1,params:K={}}=Z,W=JSON.stringify({urls:$,expirationSeconds:Q,oneTimeUse:G,...K}),U=await fetch(Y,{method:X,headers:{"Content-Type":"application/json",...J},body:X!=="GET"?W:void 0});if(!U.ok)throw Error(`Failed to batch sign URLs: ${U.status} ${U.statusText}`);let _=await U.json(),B=new Map,z=new Map;if(Array.isArray(_.results))for(let q of _.results)if(q.error)z.set(q.url,q.error);else B.set(q.url||q.originalUrl,{url:q.signedUrl||q.url,signature:q.signature,expires:q.expires||Date.now()+Q*1000,oneTimeUse:q.oneTimeUse||G});else if(typeof _.signatures==="object"){for(let[q,j]of Object.entries(_.signatures)){let H=j;B.set(q,{url:H.signedUrl||H.url||q,signature:H.signature,expires:H.expires||Date.now()+Q*1000,oneTimeUse:G})}if(_.errors)for(let[q,j]of Object.entries(_.errors))z.set(q,j)}return{signatures:B,errors:z}}async function DJ($,Z,Y=10){let X=new Map,J=new Map,Q=[];for(let K=0;K<$.length;K+=Y)Q.push($.slice(K,K+Y));let G=await Promise.all(Q.map((K)=>s4(K,Z)));for(let K of G){for(let[W,U]of K.signatures)X.set(W,U);for(let[W,U]of K.errors)J.set(W,U)}return{signatures:X,errors:J}}function r4($){return $.expires>Date.now()}function o4($){return Math.max(0,$.expires-Date.now())}function a4($,Z=300000){return o4($)<Z}async function j2($){if($.check)return await $.check();return!0}function e7($){let Z={};if($.role)Z.role=$.role;if($.permission)Z.permission=$.permission;if($.userId)Z.userId=$.userId;return Z}async function kJ($,Z){let Y=`${$}:${Z.endpoint}`,X=t7.get(Y);if(X&&r4(X)&&!a4(X))return X;let J=await n4($,Z);return t7.set(Y,J),J}function SJ(){t7.clear()}function bJ(){let $=0,Z=Date.now();for(let[Y,X]of t7)if(X.expires<=Z)t7.delete(Y),$++;return $}function $9(){return`
14306
+ `.trim();return{html:L,script:V,css:A}}function aq($){return $.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function qE($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}function jE($){if($<1024)return`${$} B`;if($<1048576)return`${($/1024).toFixed(1)} KB`;return`${($/1048576).toFixed(1)} MB`}var tq=()=>{};async function n6($,Z){let{endpoint:Y,method:X="POST",headers:J={},expirationSeconds:Q=3600,oneTimeUse:G=!1,params:K={}}=Z,W=JSON.stringify({url:$,expirationSeconds:Q,oneTimeUse:G,...K}),U=await fetch(Y,{method:X,headers:{"Content-Type":"application/json",...J},body:X!=="GET"?W:void 0});if(!U.ok)throw Error(`Failed to sign URL: ${U.status} ${U.statusText}`);let _=await U.json();return{url:_.url||_.signedUrl,signature:_.signature,expires:_.expires||Date.now()+Q*1000,oneTimeUse:_.oneTimeUse||G}}async function s6($,Z){let{endpoint:Y,method:X="POST",headers:J={},expirationSeconds:Q=3600,oneTimeUse:G=!1,params:K={}}=Z,W=JSON.stringify({urls:$,expirationSeconds:Q,oneTimeUse:G,...K}),U=await fetch(Y,{method:X,headers:{"Content-Type":"application/json",...J},body:X!=="GET"?W:void 0});if(!U.ok)throw Error(`Failed to batch sign URLs: ${U.status} ${U.statusText}`);let _=await U.json(),B=new Map,z=new Map;if(Array.isArray(_.results))for(let q of _.results)if(q.error)z.set(q.url,q.error);else B.set(q.url||q.originalUrl,{url:q.signedUrl||q.url,signature:q.signature,expires:q.expires||Date.now()+Q*1000,oneTimeUse:q.oneTimeUse||G});else if(typeof _.signatures==="object"){for(let[q,j]of Object.entries(_.signatures)){let H=j;B.set(q,{url:H.signedUrl||H.url||q,signature:H.signature,expires:H.expires||Date.now()+Q*1000,oneTimeUse:G})}if(_.errors)for(let[q,j]of Object.entries(_.errors))z.set(q,j)}return{signatures:B,errors:z}}async function DJ($,Z,Y=10){let X=new Map,J=new Map,Q=[];for(let K=0;K<$.length;K+=Y)Q.push($.slice(K,K+Y));let G=await Promise.all(Q.map((K)=>s6(K,Z)));for(let K of G){for(let[W,U]of K.signatures)X.set(W,U);for(let[W,U]of K.errors)J.set(W,U)}return{signatures:X,errors:J}}function r6($){return $.expires>Date.now()}function o6($){return Math.max(0,$.expires-Date.now())}function a6($,Z=300000){return o6($)<Z}async function j2($){if($.check)return await $.check();return!0}function e7($){let Z={};if($.role)Z.role=$.role;if($.permission)Z.permission=$.permission;if($.userId)Z.userId=$.userId;return Z}async function kJ($,Z){let Y=`${$}:${Z.endpoint}`,X=t7.get(Y);if(X&&r6(X)&&!a6(X))return X;let J=await n6($,Z);return t7.set(Y,J),J}function SJ(){t7.clear()}function bJ(){let $=0,Z=Date.now();for(let[Y,X]of t7)if(X.expires<=Z)t7.delete(Y),$++;return $}function $9(){return`
14307
14307
  (function() {
14308
14308
  'use strict';
14309
14309
 
@@ -14647,7 +14647,7 @@ else {
14647
14647
  border: none;
14648
14648
  color: white;
14649
14649
  }
14650
- `.trim();return{html:Q,script:G,css:K}}function Yj($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#039;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function t4(){return"loading"in HTMLImageElement.prototype}function e4(){return"IntersectionObserver"in window}function fJ($={}){let Z={...Kj,...$},Y=document.querySelectorAll(Z.selector);if(Y.length===0)return()=>{};if(Z.useNative&&t4())return Y.forEach((J)=>{if(J.tagName==="IMG"||J.tagName==="IFRAME")a1(J,Z)}),()=>{};if(!e4())return Y.forEach((J)=>a1(J,Z)),()=>{};let X=new IntersectionObserver((J)=>{J.forEach((Q)=>{if(Q.isIntersecting){let G=Q.target;a1(G,Z),X.unobserve(G)}})},{root:Z.root,rootMargin:Z.rootMargin,threshold:Z.threshold});return Y.forEach((J)=>X.observe(J)),()=>{X.disconnect()}}function a1($,Z={}){let{onLoad:Y,onLoaded:X,onError:J}=Z;if(Y)Y($);let Q=$.tagName==="IMG",G=$.tagName==="VIDEO",K=$.tagName==="IFRAME";if(Q)Qj($,X,J);else if(G)Gj($,X,J);else if(K)OE($,X,J);else{let W=$.querySelector("img[data-src], img[data-srcset]"),U=$.querySelector("video[data-src]");if(W)Qj(W,()=>{if(X)X($)},(B)=>{if(J)J($,B)});else if(U)Gj(U,()=>{if(X)X($)},(B)=>{if(J)J($,B)});$.querySelectorAll("source[data-srcset]").forEach((B)=>{let z=B;if(z.dataset.srcset)z.srcset=z.dataset.srcset,delete z.dataset.srcset;if(z.dataset.sizes)z.sizes=z.dataset.sizes,delete z.dataset.sizes})}}function Qj($,Z,Y){let X=()=>{$.classList.add("stx-img-loaded"),$.style.opacity="1";let Q=$.closest(".stx-img-placeholder");if(Q)Q.classList.add("stx-img-loaded");if(Z)Z($)},J=()=>{if($.classList.add("stx-img-error"),Y)Y($,Error(`Failed to load image: ${$.src}`))};if($.addEventListener("load",X,{once:!0}),$.addEventListener("error",J,{once:!0}),$.dataset.srcset)$.srcset=$.dataset.srcset,delete $.dataset.srcset;if($.dataset.src)$.src=$.dataset.src,delete $.dataset.src;if($.dataset.sizes)$.sizes=$.dataset.sizes,delete $.dataset.sizes}function Gj($,Z,Y){let X=()=>{if($.classList.add("stx-video-loaded"),Z)Z($)},J=()=>{if($.classList.add("stx-video-error"),Y)Y($,Error(`Failed to load video: ${$.src}`))};if($.addEventListener("loadeddata",X,{once:!0}),$.addEventListener("error",J,{once:!0}),$.querySelectorAll("source[data-src]").forEach((G)=>{let K=G;if(K.dataset.src)K.src=K.dataset.src,delete K.dataset.src}),$.dataset.src)$.src=$.dataset.src,delete $.dataset.src;if($.dataset.poster)$.poster=$.dataset.poster,delete $.dataset.poster;$.load()}function OE($,Z,Y){let X=()=>{if($.classList.add("stx-iframe-loaded"),Z)Z($)},J=()=>{if($.classList.add("stx-iframe-error"),Y)Y($,Error(`Failed to load iframe: ${$.src}`))};if($.addEventListener("load",X,{once:!0}),$.addEventListener("error",J,{once:!0}),$.dataset.src)$.src=$.dataset.src,delete $.dataset.src}function gJ($){a1($,{})}function hJ($="[data-stx-lazy]"){document.querySelectorAll($).forEach((Y)=>a1(Y,{}))}function dJ($={}){let Z={...Kj,...$};return new IntersectionObserver((Y,X)=>{Y.forEach((J)=>{if(J.isIntersecting)a1(J.target,Z),X.unobserve(J.target)})},{root:Z.root,rootMargin:Z.rootMargin,threshold:Z.threshold})}function mJ($,Z){$.observe(Z)}function uJ($){$.disconnect()}function Z9(){return`
14650
+ `.trim();return{html:Q,script:G,css:K}}function Yj($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#039;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function t6(){return"loading"in HTMLImageElement.prototype}function e6(){return"IntersectionObserver"in window}function fJ($={}){let Z={...Kj,...$},Y=document.querySelectorAll(Z.selector);if(Y.length===0)return()=>{};if(Z.useNative&&t6())return Y.forEach((J)=>{if(J.tagName==="IMG"||J.tagName==="IFRAME")a1(J,Z)}),()=>{};if(!e6())return Y.forEach((J)=>a1(J,Z)),()=>{};let X=new IntersectionObserver((J)=>{J.forEach((Q)=>{if(Q.isIntersecting){let G=Q.target;a1(G,Z),X.unobserve(G)}})},{root:Z.root,rootMargin:Z.rootMargin,threshold:Z.threshold});return Y.forEach((J)=>X.observe(J)),()=>{X.disconnect()}}function a1($,Z={}){let{onLoad:Y,onLoaded:X,onError:J}=Z;if(Y)Y($);let Q=$.tagName==="IMG",G=$.tagName==="VIDEO",K=$.tagName==="IFRAME";if(Q)Qj($,X,J);else if(G)Gj($,X,J);else if(K)OE($,X,J);else{let W=$.querySelector("img[data-src], img[data-srcset]"),U=$.querySelector("video[data-src]");if(W)Qj(W,()=>{if(X)X($)},(B)=>{if(J)J($,B)});else if(U)Gj(U,()=>{if(X)X($)},(B)=>{if(J)J($,B)});$.querySelectorAll("source[data-srcset]").forEach((B)=>{let z=B;if(z.dataset.srcset)z.srcset=z.dataset.srcset,delete z.dataset.srcset;if(z.dataset.sizes)z.sizes=z.dataset.sizes,delete z.dataset.sizes})}}function Qj($,Z,Y){let X=()=>{$.classList.add("stx-img-loaded"),$.style.opacity="1";let Q=$.closest(".stx-img-placeholder");if(Q)Q.classList.add("stx-img-loaded");if(Z)Z($)},J=()=>{if($.classList.add("stx-img-error"),Y)Y($,Error(`Failed to load image: ${$.src}`))};if($.addEventListener("load",X,{once:!0}),$.addEventListener("error",J,{once:!0}),$.dataset.srcset)$.srcset=$.dataset.srcset,delete $.dataset.srcset;if($.dataset.src)$.src=$.dataset.src,delete $.dataset.src;if($.dataset.sizes)$.sizes=$.dataset.sizes,delete $.dataset.sizes}function Gj($,Z,Y){let X=()=>{if($.classList.add("stx-video-loaded"),Z)Z($)},J=()=>{if($.classList.add("stx-video-error"),Y)Y($,Error(`Failed to load video: ${$.src}`))};if($.addEventListener("loadeddata",X,{once:!0}),$.addEventListener("error",J,{once:!0}),$.querySelectorAll("source[data-src]").forEach((G)=>{let K=G;if(K.dataset.src)K.src=K.dataset.src,delete K.dataset.src}),$.dataset.src)$.src=$.dataset.src,delete $.dataset.src;if($.dataset.poster)$.poster=$.dataset.poster,delete $.dataset.poster;$.load()}function OE($,Z,Y){let X=()=>{if($.classList.add("stx-iframe-loaded"),Z)Z($)},J=()=>{if($.classList.add("stx-iframe-error"),Y)Y($,Error(`Failed to load iframe: ${$.src}`))};if($.addEventListener("load",X,{once:!0}),$.addEventListener("error",J,{once:!0}),$.dataset.src)$.src=$.dataset.src,delete $.dataset.src}function gJ($){a1($,{})}function hJ($="[data-stx-lazy]"){document.querySelectorAll($).forEach((Y)=>a1(Y,{}))}function dJ($={}){let Z={...Kj,...$};return new IntersectionObserver((Y,X)=>{Y.forEach((J)=>{if(J.isIntersecting)a1(J.target,Z),X.unobserve(J.target)})},{root:Z.root,rootMargin:Z.rootMargin,threshold:Z.threshold})}function mJ($,Z){$.observe(Z)}function uJ($){$.disconnect()}function Z9(){return`
14651
14651
  (function() {
14652
14652
  'use strict';
14653
14653
 
@@ -14911,7 +14911,7 @@ else {
14911
14911
  \u26A0\uFE0F Built ${Y.views.length} views with ${Y.errors.length} errors`);return Y}function ME($,Z){let Y=X3.watch($.viewsDir,{recursive:!0},async(X,J)=>{if(!J)return;if(J.endsWith(".stx")||J.endsWith(".ts")||J.endsWith(".js")){if($.debug)console.log(`
14912
14912
  File changed: ${J}, rebuilding...`);let Q=await jj($);Z?.(Q)}});return{close:()=>Y.close()}}async function TE($,Z={},Y={}){let X={...Y,skipDefaultSeoTags:!0,skipSignalsRuntime:!0},J=await ZQ($,Z,X);J=await EE(J),J=J.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),J=J.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,""),J=J.replace(/<!--\s*stx SEO Tags\s*-->/gi,""),J=J.replace(/\n\s*\n\s*\n/g,`
14913
14913
 
14914
- `).trim();let Q=DE(J);return{html:J,text:Q}}async function EE($){try{let{generateCrosswindCSS:Z,extractClassNames:Y}=await Promise.resolve().then(() => (E1(),N6));if(Y($).size===0)return $;let J=await Z($);if(!J)return $;let Q=IE(J);if(Q.size===0)return $;return $.replace(/(<[a-z][a-z0-9]*)((?:\s+[a-z][a-z0-9-]*(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]*))?)*\s+)class\s*=\s*"([^"]*)"((?:\s+[a-z][a-z0-9-]*(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]*))?)*\s*)(\/?>)/gi,(G,K,W,U,_,B)=>{let z=U.split(/\s+/).filter(Boolean),q=[];for(let F of z){let L=Q.get(F);if(L)q.push(L)}if(q.length===0)return`${K}${W}class="${U}"${_}${B}`;let j=q.join("; "),O=`${W}${_}`.match(/style\s*=\s*"([^"]*)"/);if(O){let F=`${j}; ${O[1]}`,L=W.replace(/style\s*=\s*"[^"]*"/,`style="${F}"`),V=_.replace(/style\s*=\s*"[^"]*"/,`style="${F}"`);return`${K}${L}class="${U}"${V}${B}`}return`${K}${W}class="${U}" style="${j}"${_}${B}`})}catch{return $}}function IE($){let Z=new Map,Y=/\.([a-zA-Z0-9_-]+(?:\\:[a-zA-Z0-9_-]+)*)\s*\{([^}]+)\}/g,X=Y.exec($);while(X!==null){let J=X[1].replace(/\\/g,""),Q=X[2].split(";").map((G)=>G.trim()).filter(Boolean).join("; ");if(Q)Z.set(J,Q);X=Y.exec($)}return Z}function DE($){return $.replace(/<br\s*\/?>/gi,`
14914
+ `).trim();let Q=DE(J);return{html:J,text:Q}}async function EE($){try{let{generateCrosswindCSS:Z,extractClassNames:Y}=await Promise.resolve().then(() => (E1(),N4));if(Y($).size===0)return $;let J=await Z($);if(!J)return $;let Q=IE(J);if(Q.size===0)return $;return $.replace(/(<[a-z][a-z0-9]*)((?:\s+[a-z][a-z0-9-]*(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]*))?)*\s+)class\s*=\s*"([^"]*)"((?:\s+[a-z][a-z0-9-]*(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]*))?)*\s*)(\/?>)/gi,(G,K,W,U,_,B)=>{let z=U.split(/\s+/).filter(Boolean),q=[];for(let F of z){let L=Q.get(F);if(L)q.push(L)}if(q.length===0)return`${K}${W}class="${U}"${_}${B}`;let j=q.join("; "),O=`${W}${_}`.match(/style\s*=\s*"([^"]*)"/);if(O){let F=`${j}; ${O[1]}`,L=W.replace(/style\s*=\s*"[^"]*"/,`style="${F}"`),V=_.replace(/style\s*=\s*"[^"]*"/,`style="${F}"`);return`${K}${L}class="${U}"${V}${B}`}return`${K}${W}class="${U}" style="${j}"${_}${B}`})}catch{return $}}function IE($){let Z=new Map,Y=/\.([a-zA-Z0-9_-]+(?:\\:[a-zA-Z0-9_-]+)*)\s*\{([^}]+)\}/g,X=Y.exec($);while(X!==null){let J=X[1].replace(/\\/g,""),Q=X[2].split(";").map((G)=>G.trim()).filter(Boolean).join("; ");if(Q)Z.set(J,Q);X=Y.exec($)}return Z}function DE($){return $.replace(/<br\s*\/?>/gi,`
14915
14915
  `).replace(/<\/(p|div|h[1-6]|li|tr)>/gi,`
14916
14916
  `).replace(/<\/td>/gi,"\t").replace(/<[^>]*>/g,"").replace(/&nbsp;/g," ").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/&copy;/g,"(c)").replace(/&middot;/g,"-").replace(/\n\s*\n\s*\n/g,`
14917
14917
 
@@ -15016,7 +15016,7 @@ ${Q.join(`
15016
15016
  `)}`}else{if(Y.processClientScripts!==!1&&Q.length>0){let _=K.__stx_event_bindings||[],z=(await Promise.all(Q.map(async(j)=>{let H=j.match(/<script\b[^>]*>([\s\S]*?)<\/script>/);if(!H)return j;return await v$(H[1],{eventBindings:_,templateContent:U})}))).join(`
15017
15017
  `);if(U.match(/(<\/body>)/i))U=U.replace(/(<\/body>)/i,`${z}
15018
15018
  $1`);else U+=`
15019
- ${z}`}U=await p$(U)}if(Y.wrapInDocument){if(!U.trim().toLowerCase().startsWith("<!doctype")&&!U.trim().toLowerCase().startsWith("<html"))U=gE(U,Y.title)}if(Y.injectCSS)try{let{injectCrosswindCSS:_}=await Promise.resolve().then(() => (E1(),N6));U=await _(U)}catch{}return U}var pj=D(()=>{u0();L$();U1();E2()});function G9($,Z,Y={},X="/"){let J=Z.seo??{},Q=Y.title??J.title??Z.name,G=Y.description??J.description??Z.description??"",K=Y.image??J.image,W=`${Z.url.replace(/\/$/,"")}${X}`,U=J.siteName??Z.name,_=J.type??"website",B=J.locale??"en_US",z=[];if(J.favicon){let H=J.favicon.toLowerCase().split(".").pop(),O=H==="svg"?"image/svg+xml":H==="ico"?"image/x-icon":H==="png"?"image/png":H==="jpg"||H==="jpeg"?"image/jpeg":"";z.push(`<link rel="icon"${O?` type="${O}"`:""} href="${o0(J.favicon)}">`)}if(z.push(`<link rel="canonical" href="${o0(W)}">`,`<meta name="description" content="${o0(G)}">`,`<meta property="og:title" content="${o0(Q)}">`,`<meta property="og:description" content="${o0(G)}">`,`<meta property="og:type" content="${o0(_)}">`,`<meta property="og:url" content="${o0(W)}">`,`<meta property="og:site_name" content="${o0(U)}">`,`<meta property="og:locale" content="${o0(B)}">`,`<meta name="twitter:card" content="${K?"summary_large_image":"summary"}">`,`<meta name="twitter:title" content="${o0(Q)}">`,`<meta name="twitter:description" content="${o0(G)}">`),K)z.push(`<meta property="og:image" content="${o0(K)}">`),z.push(`<meta name="twitter:image" content="${o0(K)}">`);if(J.twitter)z.push(`<meta name="twitter:site" content="@${o0(J.twitter.replace(/^@/,""))}">`),z.push(`<meta name="twitter:creator" content="@${o0(J.twitter.replace(/^@/,""))}">`);let q=`<!-- SEO -->
15019
+ ${z}`}U=await p$(U)}if(Y.wrapInDocument){if(!U.trim().toLowerCase().startsWith("<!doctype")&&!U.trim().toLowerCase().startsWith("<html"))U=gE(U,Y.title)}if(Y.injectCSS)try{let{injectCrosswindCSS:_}=await Promise.resolve().then(() => (E1(),N4));U=await _(U)}catch{}return U}var pj=D(()=>{u0();L$();U1();E2()});function G9($,Z,Y={},X="/"){let J=Z.seo??{},Q=Y.title??J.title??Z.name,G=Y.description??J.description??Z.description??"",K=Y.image??J.image,W=`${Z.url.replace(/\/$/,"")}${X}`,U=J.siteName??Z.name,_=J.type??"website",B=J.locale??"en_US",z=[];if(J.favicon){let H=J.favicon.toLowerCase().split(".").pop(),O=H==="svg"?"image/svg+xml":H==="ico"?"image/x-icon":H==="png"?"image/png":H==="jpg"||H==="jpeg"?"image/jpeg":"";z.push(`<link rel="icon"${O?` type="${O}"`:""} href="${o0(J.favicon)}">`)}if(z.push(`<link rel="canonical" href="${o0(W)}">`,`<meta name="description" content="${o0(G)}">`,`<meta property="og:title" content="${o0(Q)}">`,`<meta property="og:description" content="${o0(G)}">`,`<meta property="og:type" content="${o0(_)}">`,`<meta property="og:url" content="${o0(W)}">`,`<meta property="og:site_name" content="${o0(U)}">`,`<meta property="og:locale" content="${o0(B)}">`,`<meta name="twitter:card" content="${K?"summary_large_image":"summary"}">`,`<meta name="twitter:title" content="${o0(Q)}">`,`<meta name="twitter:description" content="${o0(G)}">`),K)z.push(`<meta property="og:image" content="${o0(K)}">`),z.push(`<meta name="twitter:image" content="${o0(K)}">`);if(J.twitter)z.push(`<meta name="twitter:site" content="@${o0(J.twitter.replace(/^@/,""))}">`),z.push(`<meta name="twitter:creator" content="@${o0(J.twitter.replace(/^@/,""))}">`);let q=`<!-- SEO -->
15020
15020
  ${z.join(`
15021
15021
  `)}
15022
15022
  <!-- /SEO -->`,j=/<!--\s*stx SEO Tags\s*-->[\s\S]*?<meta\s+name="twitter:description"[^>]*>\s*/i;if(j.test($))$=$.replace(j,"");if($=$.replace(/<!--\s*SEO\s*-->[\s\S]*?<!--\s*\/SEO\s*-->\s*/g,""),$=$.replace(/<meta\s+name="title"\s+content="stx Project"[^>]*>\s*/g,"").replace(/<meta\s+name="description"\s+content="A website built with stx[^"]*"[^>]*>\s*/g,"").replace(/<meta\s+property="og:title"\s+content="stx Project"[^>]*>\s*/g,"").replace(/<meta\s+property="og:description"\s+content="A website built with stx[^"]*"[^>]*>\s*/g,"").replace(/<meta\s+property="og:type"\s+content="website"[^>]*>\s*/g,"").replace(/<meta\s+name="twitter:card"\s+content="summary_large_image"[^>]*>\s*/g,"").replace(/<meta\s+name="twitter:title"\s+content="stx Project"[^>]*>\s*/g,"").replace(/<meta\s+name="twitter:description"\s+content="A website built with stx[^"]*"[^>]*>\s*/g,""),/<head[^>]*>/i.test($))return $.replace(/<head([^>]*)>/i,`<head$1>
@@ -15036,4 +15036,6 @@ ${Q}`}var O2=null;function _9($,Z){if(Z.theme===!1)return $;let Y=typeof Z.theme
15036
15036
  `);$=$.replace(/<head\b([^>]*)>/i,`<head$1>
15037
15037
  ${W}`)}if(!$.includes("__stxThemeGuard")&&/<head\b[^>]*>/i.test($)){let K=`<script data-stx-theme-guard="1">${pE(X,J,Q,G)};window.__stxThemeGuard=1;</script>`;$=$.replace(/<head\b([^>]*)>/i,`<head$1>
15038
15038
  ${K}`)}if(!$.includes("__stxThemeToggle")&&/<\/body>/i.test($)){let K=`<script data-stx-theme-toggle="1">${cE(J,Q,G)};window.__stxThemeToggle=1;</script>`;$=$.replace(/<\/body>/i,`${K}
15039
- </body>`)}return $}var pE=($,Z,Y,X)=>`(function(){try{var k=${JSON.stringify(Z)};var t=localStorage.getItem(k);var html=document.documentElement;var isDark=t===null?(${JSON.stringify($)}==='dark'||(${JSON.stringify($)}==='auto'&&window.matchMedia('(prefers-color-scheme: dark)').matches)):t==='dark';html.classList[isDark?'add':'remove']('dark');var tc=document.querySelector('meta[name="theme-color"]:not([media])');if(tc)tc.setAttribute('content',isDark?${JSON.stringify(X)}:${JSON.stringify(Y)})}catch(e){}})();`,cE=($,Z,Y)=>`document.addEventListener('click',function(e){var t=e.target&&e.target.closest&&e.target.closest('#theme-toggle');if(!t)return;var html=document.documentElement;var isDark=html.classList.toggle('dark');try{localStorage.setItem(${JSON.stringify($)},isDark?'dark':'light')}catch(e){}var tc=document.querySelector('meta[name="theme-color"]:not([media])');if(tc)tc.setAttribute('content',isDark?${JSON.stringify(Y)}:${JSON.stringify(Z)})});`;var{Glob:lE}=globalThis.Bun;import{cpSync as iE,existsSync as W3,mkdirSync as nE,readFileSync as cj,readdirSync as sE,rmSync as rE,statSync as oE,unlinkSync as aE,writeFileSync as K3}from"fs";import{join as C$,relative as tE}from"path";import eE from"process";import $I from"bun-plugin-stx";async function GQ($){let Z=Date.now(),Y=$.pagesDir??"pages",X=$.outDir??"dist",J=$.publicDir??"public";if(!$.noClean)rE(X,{recursive:!0,force:!0});nE(X,{recursive:!0});let Q=new lE(`${Y}/**/*.stx`),G=await Array.fromAsync(Q.scan("."));if(G.length===0)throw Error(`No .stx files found in ${Y}/`);let K=await Bun.build({entrypoints:G,outdir:X,plugins:[$I()],naming:{entry:"[name].[ext]"}});if(!K.success)throw console.error(K.logs),Error("Build failed");ZI(X);let W=KQ(X).filter((z)=>z.endsWith(".html"));for(let z of W){let q=C$(X,z),j=cj(q,"utf8");if(j=YI(j),j=await V0(j,eE.cwd()),j=G9(j,$,$.pages?.[B9(z)],B9(z)),j=_9(j,$),$.spa!==!1)j=await U9(j,$.router);K3(q,j)}if(W3(J))iE(J,X,{recursive:!0});let U=C$(X,"404.html");if(!W3(U)&&W3(C$(X,"index.html"))){let z=cj(C$(X,"index.html"),"utf8").replace(/<title>[^<]*<\/title>/i,`<title>404 \u2014 ${XI($.name)}</title>`);K3(U,z)}if($.sitemap!==!1){let z=W.filter((q)=>q!=="404.html").map((q)=>({path:B9(q),page:$.pages?.[B9(q)]}));K3(C$(X,"sitemap.xml"),K9($,z))}let _=W9($);if(_!==null)K3(C$(X,"robots.txt"),_);let B=W.map(B9);return{outDir:X,pages:B,durationMs:Date.now()-Z}}function B9($){if($==="index.html")return"/";return`/${$.replace(/\.html$/,"").replace(/\/index$/,"")}`}function KQ($,Z=$){let Y=[];if(!W3($))return Y;for(let X of sE($,{withFileTypes:!0})){let J=C$($,X.name);if(X.isDirectory())Y.push(...KQ(J,Z));else Y.push(tE(Z,J))}return Y}function ZI($){for(let Z of KQ($)){if(!/^chunk-.*\.js(?:\.map)?$/.test(Z))continue;let Y=C$($,Z);try{if(oE(Y).size===0)aE(Y)}catch{}}}function YI($){return $.replace(/<script[^>]*src=["']\.\/chunk-[^"']*\.js["'][^>]*><\/script>\s*/g,"")}function XI($){return $.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function WQ($){return $}var lj=D(()=>{E1()});var ij=D(()=>{lj()});function nj($,Z){return $.kind===Z}var sj=()=>{};var rj=D(()=>{sj()});var s$={};Q0(s$,{writeNetlifyConfig:()=>H9,writeManifest:()=>NX,writeImageManifest:()=>wQ,wrapComponentForHMR:()=>$E,webComponentDirectiveHandler:()=>e8,watermark:()=>AJ,watchViews:()=>ME,watchMultiple:()=>Uw,watchEffect:()=>_w,watch:()=>Ww,waitForStore:()=>bw,waitForLocale:()=>VV,videoDirective:()=>s2,validators:()=>B6,validateValueEnhanced:()=>jW,validateTemplate:()=>QB,validateParams:()=>TJ,validateFormEnhanced:()=>UV,validateFile:()=>Z3,validateFields:()=>KV,validateField:()=>zW,validateDirective:()=>KB,validateCspDirectives:()=>cF,validateConfig:()=>OK,validateComponentScripts:()=>RR,validateComponentProps:()=>IR,validateClientScript:()=>A4,usesSignalsInScript:()=>b2,useVirtualList:()=>PY,useTitle:()=>YW,useStoreOrThrow:()=>Sw,useStore:()=>iq,useSlots:()=>Rj,useSeoMeta:()=>J7,useRouteParams:()=>RB,useRouteParamOrThrow:()=>Cw,useRouteParam:()=>MB,usePageTitle:()=>YW,useMiddlewareValue:()=>yw,useMiddlewareState:()=>TB,useLoadingIndicator:()=>Sq,useHead:()=>j$,useAttrs:()=>Mj,uploadFiles:()=>oJ,uploadFile:()=>Y3,updateInstance:()=>Fw,untrack:()=>G4,unregisterDirective:()=>qH,unmountInstance:()=>Vw,unescapeHtml:()=>I9,transpileTypeScript:()=>Y$,transitionDirective:()=>C9,toUsers:()=>qz,toUser:()=>zz,thumbnail:()=>JJ,thumbHashToRGBA:()=>Y9,thumbHashToDataURL:()=>lJ,templateCache:()=>QY,stxClientHelpers:()=>bX,structuredDataDirective:()=>q6,stripDocumentWrapper:()=>n$,stringToStream:()=>ZM,strictCspPreset:()=>cK,streamingSuspenseDirective:()=>Rq,streamToResponse:()=>gT,streamTemplateSimple:()=>PT,streamTemplate:()=>yT,stopHmrServer:()=>G2,stopBroadcasting:()=>_z,state:()=>$4,startProductionServer:()=>hM,startInteractive:()=>EM,startBroadcasting:()=>Uz,staggerDirective:()=>iQ,srcsetUrls:()=>RJ,springDirective:()=>nQ,splitByPipe:()=>M6,smartBatchSign:()=>DJ,signUrl:()=>n4,shouldTranspileTypeScript:()=>Z$,shouldReloadOnChange:()=>f7,shouldRefreshSignature:()=>a4,shouldIgnoreFile:()=>g7,shouldCacheComponent:()=>E_,sharpen:()=>WJ,setRouteParams:()=>fw,setMiddlewareState:()=>gw,setGlobalProvide:()=>Q3,setErrorLocale:()=>mG,setCurrentInstance:()=>Xw,setCachedVideoResult:()=>M5,setCachedImageResult:()=>A5,setCached:()=>L5,serveStxFile:()=>kz,serveMultipleStxFiles:()=>bz,serveMarkdownFile:()=>d4,serveFile:()=>kT,serveApp:()=>yz,serve:()=>Nq,serializeState:()=>Pq,sepia:()=>_J,scrollAnimateDirective:()=>y9,screenReaderDirective:()=>S9,scopeHTML:()=>_K,scopeCSS:()=>UK,scanForSitemapEntries:()=>xL,scanA11yIssues:()=>ZO,saturation:()=>jJ,sanitizeParams:()=>EJ,sanitizeFilePath:()=>XK,sanitizeExpression:()=>JK,sanitizeDirectiveParams:()=>QK,sanitizeDirectiveParam:()=>t2,sanitizeComponentProps:()=>i8,safeExecuteAsync:()=>M1,safeExecute:()=>$K,runPreProcessingMiddleware:()=>sZ,runPostProcessingMiddleware:()=>rZ,runMiddleware:()=>D7,runHooks:()=>i$,rotate:()=>HJ,resolveTemplatePath:()=>e2,resize:()=>YJ,resetPlaceholders:()=>S3,resetHead:()=>$W,resetHMRHandler:()=>YE,resetErrorConfig:()=>rG,replacePlaceholders:()=>E9,renderView:()=>ZQ,renderVideoComponent:()=>k5,renderToString:()=>e$,renderToStream:()=>Pj,renderToDOM:()=>H2,renderThumbhashToCanvas:()=>cJ,renderTemplate:()=>hE,renderString:()=>dE,renderSlot:()=>ZX,renderSSRSuspense:()=>__,renderProtectedVideo:()=>PJ,renderProtectedImg:()=>yJ,renderMediaUpload:()=>IJ,renderImgComponent:()=>K$,renderImageComponent:()=>BQ,renderHtmlAttrs:()=>JW,renderHead:()=>XW,renderEmail:()=>TE,renderComponentWithSlot:()=>D1,renderBodyAttrs:()=>QW,render:()=>KE,relaxedCspPreset:()=>lK,registerValidationRule:()=>GV,registerStreamingDirectives:()=>vT,registerStore:()=>xw,registerSeoDirectives:()=>yL,registerMiddleware:()=>kw,registerFilters:()=>yQ,registerFilter:()=>C3,registerErrorMessages:()=>pG,registerEnhancedValidationRule:()=>WV,registerDirective:()=>jQ,registerCspDirectives:()=>pF,registerComponentDirectives:()=>SR,registerAnimationDirectives:()=>FO,registerA11yDirectives:()=>JO,ref:()=>Gw,redirect:()=>UM,readMarkdownFile:()=>p1,readFileCached:()=>ZU,reactive:()=>NB,quality:()=>VJ,pruneSignatureCache:()=>bJ,pruneCache:()=>UG,provide:()=>Oj,processVueTemplate:()=>tZ,processVirtualListDirectives:()=>M4,processVirtualGridDirectives:()=>vY,processVideo:()=>Y6,processValidateDirective:()=>qW,processTranslateDirective:()=>hZ,processTransitionDirectives:()=>Z_,processTransitionAttributes:()=>J_,processTitleDirective:()=>WW,processTemplateBindings:()=>UZ,processTeleportDirectives:()=>nU,processSuspenseDirectives:()=>W_,processStructuredData:()=>s8,processStaticDirectives:()=>rY,processStackReplacements:()=>r6,processStackPushDirectives:()=>s6,processSlots:()=>YX,processShell:()=>k4,processServerBindings:()=>o6,processSeoDirective:()=>r8,processSectionDirectives:()=>fT,processScopedStyles:()=>_7,processReactiveBindings:()=>MK,processProtectedMedia:()=>xJ,processPartialHydrationDirectives:()=>uY,processOnceDirective:()=>N4,processMiddleware:()=>nZ,processMetaDirectives:()=>n8,processMetaDirective:()=>UW,processMarkdownFileDirectives:()=>LZ,processMarkdownDirectives:()=>l3,processLoops:()=>l6,processKeepAliveDirectives:()=>M_,processJsonDirective:()=>V4,processInfiniteListDirectives:()=>xY,processIncludes:()=>n6,processImgComponents:()=>T8,processImageComponents:()=>zQ,processImage:()=>h1,processHeadDirective:()=>KW,processForms:()=>QV,processFormInputDirectives:()=>v6,processExpressions:()=>q1,processEventDirectives:()=>jZ,processErrorDirective:()=>f6,processDynamicComponents:()=>$Y,processDirectives:()=>Z0,processDirectiveAttributes:()=>FH,processDeferDirectives:()=>cU,processCustomDirectives:()=>CZ,processCspDirectives:()=>kZ,processClientScript:()=>v$,processBasicFormDirectives:()=>u5,processAsyncDirectives:()=>L_,processAnimationDirectives:()=>h3,processA11yDirectives:()=>f3,preloadTranslationsBackground:()=>LV,preloadTranslations:()=>FW,preloadIslandHandlers:()=>nT,poolStrings:()=>Jz,pluginManager:()=>YZ,performLeave:()=>$_,performEnter:()=>eU,peek:()=>K4,partialsCache:()=>F$,parseVideoDirectiveOptions:()=>xG,parseUrl:()=>ZJ,parseThumbhashString:()=>iJ,parseSwitchBlock:()=>E6,parseSlots:()=>$X,parseSlotElement:()=>BB,parseScriptDeclarations:()=>mK,parseSFCComponent:()=>BK,parseProtectedArgs:()=>vJ,parseImgComponent:()=>r9,parseImageUrl:()=>a3,parseImageComponent:()=>V3,parseExpressionWithFilters:()=>hK,parseCookies:()=>GM,parseConditionalBlock:()=>NZ,parseArguments:()=>AZ,parseAnimationShorthand:()=>OO,optimizeTemplate:()=>Qz,optimizeImage:()=>M3,optimizeDirectory:()=>AQ,onceStore:()=>lZ,onUpdated:()=>jw,onUnmounted:()=>Ow,onServer:()=>dw,onMounted:()=>zw,onMount:()=>J4,onHydrated:()=>sY,onErrorCaptured:()=>Aj,onDestroy:()=>Q4,onDeactivated:()=>S_,onClient:()=>hw,onBeforeUpdate:()=>qw,onBeforeUnmount:()=>Hw,onBeforeMount:()=>Bw,onActivated:()=>k_,observeElement:()=>mJ,notFound:()=>_M,nextTick:()=>Nj,navigateTo:()=>Dw,mountInstance:()=>Lw,motionDirective:()=>x9,moderateCspPreset:()=>k6,minifyHtml:()=>Xz,metaDirective:()=>z6,mergeParams:()=>l4,mergeCspDirectives:()=>mF,matchRoute:()=>S4,markdownDirectiveHandler:()=>i3,markdownCache:()=>R6,loadTranslationLazy:()=>K7,loadTranslation:()=>AW,loadStxConfig:()=>S0,loadMiddlewareFromDirectory:()=>I7,loadManifest:()=>AX,loadElement:()=>a1,loadChannels:()=>Bz,lazyLoadAll:()=>hJ,lazyLoad:()=>gJ,keyframeDirective:()=>lQ,jsxs:()=>bj,jsxDEV:()=>Cj,jsx:()=>Z5,jsonResponse:()=>WM,islandDirective:()=>Mq,isTest:()=>TL,isSpaNavigation:()=>UX,isSignatureValid:()=>r4,isSignal:()=>q7,isSharpAvailable:()=>g1,isServerEnvironment:()=>lR,isServer:()=>EB,isProduction:()=>iG,isNativeLazySupported:()=>t4,isLoading:()=>HV,isLoaded:()=>OV,isJavaScriptScript:()=>OB,isIntersectionObserverSupported:()=>e4,isImageFile:()=>N9,isICUFormat:()=>MW,isHydrated:()=>nY,isEdgeEnvironment:()=>cR,isDirectiveKind:()=>nj,isDevelopment:()=>W$,isDerived:()=>j7,isCssOnlyChange:()=>v7,isClient:()=>IB,isAsyncComponent:()=>V_,invert:()=>BJ,invalidateFileCacheByDir:()=>XU,invalidateFileCache:()=>YU,interpolateScriptsInTemplate:()=>xQ,interpolateScriptExpressions:()=>P3,inlineError:()=>$0,injectThemeBootstrap:()=>_9,injectSeoTags:()=>o8,injectSeo:()=>G9,injectRouterScript:()=>U9,injectHotReload:()=>y1,injectHeatmap:()=>u3,injectCspMetaTag:()=>DZ,injectCrosswindCSS:()=>V0,injectAnalytics:()=>zZ,inject:()=>Lj,initStoreRegistry:()=>Pw,initNetlify:()=>$H,initLoadingIndicator:()=>aT,initLazyLoading:()=>fJ,initFile:()=>VM,initBlurUp:()=>$3,initAllBlurUp:()=>sJ,imgDirective:()=>i2,imageDirective:()=>OQ,hydrateTemplate:()=>hX,hydrateIslands:()=>iT,hydrateIsland:()=>cY,hydrateFragment:()=>vM,hydrateByStrategy:()=>lY,hydrateAll:()=>iY,hydrate:()=>QE,htmlResponse:()=>DT,heatmapDirective:()=>p3,hashString:()=>u9,hashFilePath:()=>i5,hashFile:()=>v0,hashBuffer:()=>XG,hasVueTemplateSyntax:()=>rW,hasVariables:()=>pZ,hasStore:()=>cq,hasPlaceholders:()=>G5,hasNetlifyConfig:()=>O9,hasMiddleware:()=>Iw,hasEventDirectives:()=>AF,hasDocumentShell:()=>$U,hasDirectives:()=>WB,hasDOMSupport:()=>gQ,handleError:()=>wj,h:()=>gj,groupVariantsByFormat:()=>w2,grayscale:()=>UJ,gitHash:()=>dM,getUnusedDirectives:()=>tB,getTranslationSync:()=>VW,getTranslationCacheStats:()=>zV,getTranslationAsync:()=>FV,getTranslation:()=>g6,getTotalSize:()=>t1,getTimeUntilExpiry:()=>o4,getStoreNames:()=>lq,getStore:()=>eX,getSourceLineInfo:()=>JX,getScreenReaderOnlyStyle:()=>eH,getScopeAttribute:()=>lL,getRouteParams:()=>aw,getPublicEnvDefine:()=>K1,getPublicEnv:()=>TQ,getPositionInfo:()=>GB,getPlaceholderRegistry:()=>b3,getPlaceholderCacheStats:()=>B8,getPageMeta:()=>C6,getNonce:()=>z$,getMimeType:()=>d1,getMiddlewareNames:()=>E7,getMiddleware:()=>Ew,getLoadingState:()=>jV,getLoadingLocales:()=>NV,getImageMetadata:()=>V9,getHydrationRuntime:()=>gq,getHydratedStoreState:()=>vw,getHmrServer:()=>h7,getHead:()=>m5,getHMRHandler:()=>ZE,getFormatExtension:()=>Z8,getFileMtime:()=>p2,getFallbackVariant:()=>A2,getErrorMessage:()=>u8,getErrorLocale:()=>uG,getErrorConfig:()=>r2,getErrorCodeName:()=>Q6,getDirectives:()=>zH,getDirective:()=>BH,getCurrentInstance:()=>Jw,getCspPreset:()=>dF,getCspHeaderName:()=>rK,getComponentCacheStats:()=>Yw,getCachedVideoResult:()=>R5,getCachedSignature:()=>kJ,getCachedSignalsRuntime:()=>JU,getCachedRouterScript:()=>QU,getCachedPlaceholder:()=>u2,getCachedImageResult:()=>N5,getCached:()=>O5,getCacheStats:()=>WG,getBroadcastServer:()=>Wz,getBestVariant:()=>$8,getAllFilters:()=>y3,generateWidthSrcset:()=>J$,generateVirtualListCSS:()=>yY,generateVideoPreview:()=>tJ,generateValidationScript:()=>_V,generateUploadRuntime:()=>Q9,generateTreeShakenBundle:()=>eB,generateTransitionRuntime:()=>X_,generateTransitionCSS:()=>Y_,generateThumbnails:()=>E5,generateThumbhashPlaceholder:()=>J8,generateTemplatesDocs:()=>dz,generateSuspenseRuntime:()=>z_,generateSuspenseCSS:()=>B_,generateStateScript:()=>vq,generateSrcsetData:()=>t3,generateSrcset:()=>i9,generateSrcSet:()=>J5,generateSpriteSheet:()=>$6,generateSpaShell:()=>bE,generateSourceTags:()=>e3,generateSizesFromBreakpoints:()=>r3,generateSizesAttribute:()=>B5,generateSizes:()=>N2,generateSitemapIndex:()=>PL,generateSitemap:()=>K9,generateSimpleMediaPicker:()=>Jj,generateSignatureRuntime:()=>$9,generateSignalsRuntimeDev:()=>m$,generateSignalsRuntime:()=>H7,generateScopeId:()=>H6,generateSFCWebComponent:()=>zK,generateRouteTypes:()=>ew,generateRouteManifest:()=>tw,generateRobotsTxt:()=>WK,generateRobots:()=>W9,generateResponsiveVariants:()=>l9,generateReactiveWebComponentTS:()=>sL,generateReactiveWebComponent:()=>nL,generateReactiveRuntime:()=>oL,generateReactiveMixin:()=>rL,generatePoster:()=>T5,generatePlaceholderStyle:()=>U8,generatePlaceholderCSS:()=>m2,generatePlaceholder:()=>d2,generatePartialHydrationCSS:()=>pY,generateNonce:()=>EZ,generateNetlifyToml:()=>B3,generateMinifiedMediaRuntime:()=>_j,generateMediaRuntime:()=>$Q,generateMediaManagerEmbed:()=>Xj,generateManifest:()=>VX,generateLoadingIndicatorHtml:()=>tT,generateLazyLoadRuntime:()=>Z9,generateLQIP:()=>G8,generateKeepAliveRuntime:()=>D_,generateKeepAliveCSS:()=>I_,generateIslandManifest:()=>oY,generateImagePreview:()=>aJ,generateImageManifest:()=>T3,generateHydrationScript:()=>JE,generateHydrationRuntime:()=>hT,generateHydrationCSS:()=>GE,generateHydrationBootstrap:()=>gY,generateHotReloadScript:()=>Dz,generateHeatmapScript:()=>m3,generateHMRClientScript:()=>eT,generateHLSManifest:()=>I5,generateEventBindings:()=>XE,generateDprSrcsetWithVariableQuality:()=>s3,generateDprSrcset:()=>_5,generateDocumentShell:()=>eW,generateDocs:()=>lz,generateDirectivesDocs:()=>mz,generateDirectiveRuntime:()=>LH,generateDefaultRobotsTxt:()=>vL,generateDASHManifest:()=>D5,generateCspMetaTag:()=>S6,generateCspHeader:()=>IZ,generateCrosswindCSS:()=>V6,generateCompositionRuntime:()=>Ej,generateComponentsDocs:()=>hz,generateComponentManifest:()=>AA,generateComponentDoc:()=>gz,generateColorPlaceholder:()=>W8,generateClientRuntime:()=>Nw,generateCacheKey:()=>j5,generateBlurUpRuntime:()=>X9,generateBlurUpCSS:()=>J9,generateBindingsRuntime:()=>TK,generateAutoWidthSrcset:()=>n3,generateAsyncComponentRuntime:()=>A_,generateAsyncComponentCSS:()=>N_,generateAnimationRuntime:()=>LO,generateAnimationCSS:()=>HO,generateAnalyticsScript:()=>BZ,formatTypeErrors:()=>lT,formatStxContent:()=>$q,formatSize:()=>y$,formatRoutes:()=>BX,formatMarkdownContent:()=>BM,formatLocalizedError:()=>lG,formatICU:()=>wW,formatFilePath:()=>o2,formatError:()=>W6,formatDocsAsMarkdown:()=>uz,formatDocsAsJson:()=>cz,formatDocsAsHtml:()=>pz,format:()=>FJ,foldConstants:()=>Yz,flipVertical:()=>LJ,flipHorizontal:()=>OJ,fingerprint:()=>zX,findMatchingEndTag:()=>B$,findMatchingDelimiter:()=>b0,findIfBlocks:()=>T6,findExpressions:()=>gK,findErrorPage:()=>_X,findDirectiveBlocks:()=>X7,findDeadCode:()=>$z,findDeadBranches:()=>$z,findComponentFiles:()=>xX,findCommonDir:()=>CX,filterRequiredFiles:()=>j9,fileExists:()=>t,extractVariables:()=>R0,extractState:()=>fq,extractSlotContent:()=>qB,extractScriptFromTemplate:()=>uZ,extractPlaceholders:()=>iH,extractParenthesizedExpression:()=>l1,extractDominantColor:()=>K8,extractDirectiveParams:()=>dK,extractDirectiveNames:()=>UB,extractContainerContent:()=>b7,extractComponentProps:()=>vz,extractComponentName:()=>hY,extractComponentDescription:()=>fz,extractClassNames:()=>F6,extractBoundProps:()=>dY,extractBalancedExpression:()=>VZ,extractAndScopeStyles:()=>iL,extractAndProcessEvents:()=>bK,evaluateExpression:()=>Y1,evaluateConstant:()=>y4,evaluateAuthExpression:()=>c1,escapeHtml:()=>w0,errorRecovery:()=>U6,errorLogger:()=>m0,ensureTeleportTargets:()=>sU,ensureDocumentShell:()=>B7,enhancedValidationRules:()=>xZ,eliminateDeadCode:()=>Zz,effect:()=>Y4,dprUrls:()=>MJ,docsCommand:()=>pR,disconnectObserver:()=>uJ,devHelpers:()=>C5,detectShell:()=>WX,detectRuntime:()=>U2,detectProjectConfig:()=>F2,detectFormat:()=>Y8,detectBuildMode:()=>wR,derived:()=>Z4,deploy:()=>ej,defineStxConfig:()=>HK,defineStore:()=>nq,defineSiteConfig:()=>WQ,definePlugin:()=>P5,definePageMeta:()=>ZW,defineMiddleware:()=>Tw,defineExpose:()=>Vj,defineEmits:()=>Fj,defineDirective:()=>T0,defineCustomElement:()=>dj,defineConfig:()=>xM,defineClientDirective:()=>jH,defineAsyncComponent:()=>F_,defaultMediaConfig:()=>RE,defaultImageConfig:()=>EH,defaultI18nConfig:()=>h6,defaultHeatmapConfig:()=>aQ,defaultFormClasses:()=>x6,defaultFilters:()=>K5,defaultCspConfig:()=>iF,defaultConfig:()=>a0,default:()=>JI,decodeThumbhash:()=>Q8,cspNonceDirective:()=>sK,cspDirective:()=>nK,crossfadeTransition:()=>nJ,crop:()=>XJ,createVirtualList:()=>R4,createVideoDirective:()=>X6,createVercelHandler:()=>JM,createTypeChecker:()=>lX,createTranslateFilter:()=>fV,createTextEncoderStream:()=>$M,createStxApp:()=>QQ,createStreamingResponse:()=>eR,createStreamRenderer:()=>xT,createStore:()=>$J,createStorageManager:()=>Mw,createServerCookieManager:()=>Rw,createScope:()=>VB,createSSRSuspense:()=>U_,createRouter:()=>n1,createRouteLocation:()=>T7,createRoute:()=>bT,createRef:()=>Gw,createReactive:()=>NB,createProvideContext:()=>Tj,createProject:()=>pM,createProductionBuild:()=>PM,createPlaceholder:()=>D2,createOptimizedBuild:()=>MR,createNetlifyHandler:()=>QM,createNetlifyClient:()=>z9,createMiddlewareContext:()=>M7,createMiddleware:()=>ST,createLazyObserver:()=>dJ,createKeepAliveCache:()=>T_,createKVNamespace:()=>rz,createIslandRegistry:()=>mY,createImgDirective:()=>o9,createImagePlugin:()=>FQ,createImageDirective:()=>R3,createHeatmapAggregator:()=>AO,createFileManifest:()=>q9,createEnvAccessor:()=>sz,createEnhancedError:()=>eG,createEdgeHandler:()=>u7,createEdgeCache:()=>oz,createDetailedErrorMessage:()=>B0,createDenoHandler:()=>XM,createDefaultNetlifyConfig:()=>V2,createCspHeaders:()=>lF,createCookie:()=>KM,createComputed:()=>Kw,createComponentInstance:()=>Qw,createCloudflareHandler:()=>YM,createClientCookieManager:()=>ww,createBuiltinDirectives:()=>OH,createApp:()=>QQ,createAnimationTimeline:()=>jO,cover:()=>GJ,convertToCommonJS:()=>d6,contrast:()=>qJ,contain:()=>QJ,consoleError:()=>tG,configureErrorHandling:()=>sG,config:()=>t0,computed:()=>Kw,composeShellWithPage:()=>S7,componentDirective:()=>Nz,compileTemplate:()=>OX,collectDeployFiles:()=>L2,clearVideoCache:()=>t9,clearTranslationCache:()=>BV,clearSignatureCache:()=>SJ,clearPlaceholderCache:()=>_8,clearOnceStore:()=>XN,clearNonce:()=>hF,clearMiddleware:()=>R7,clearImageCache:()=>w3,clearErrorMessages:()=>cG,clearDevCaches:()=>GU,clearCustomFilters:()=>PQ,clearComponentCache:()=>R$,clearCache:()=>F5,classifyScript:()=>SB,classifyAllScripts:()=>QX,checkTemplateFile:()=>pT,checkTemplate:()=>cT,checkCache:()=>_4,checkAuthAccess:()=>j2,checkA11y:()=>hQ,channel:()=>Oz,cancelPendingLoads:()=>AV,calculateSha1:()=>_3,calculateOptimalWidths:()=>h9,cacheTemplate:()=>B4,buildWebComponents:()=>a8,buildViews:()=>jj,buildUrl:()=>H0,buildStaticSite:()=>GQ,buildRuntimeAsset:()=>qX,buildRouterAsset:()=>jX,buildImageUrl:()=>j1,buildForProduction:()=>cB,buildAuthParams:()=>e7,buildApp:()=>NR,build:()=>yM,broadcastPrivate:()=>jz,broadcastPresence:()=>Hz,broadcast:()=>TX,brightness:()=>zJ,blur:()=>KJ,batchSignUrls:()=>s4,batch:()=>X4,autoFixA11yFile:()=>mQ,autoFixA11yDirectory:()=>XO,autoFixA11y:()=>dQ,auto:()=>NJ,assetTags:()=>jR,applyTransformations:()=>l2,applySlots:()=>jB,applyPropDefaults:()=>DR,applyPreset:()=>wJ,applyHead:()=>GW,applyFilters:()=>x3,apiCspPreset:()=>iK,animationGroupDirective:()=>P9,analyzeVideo:()=>n2,analyzeUsage:()=>RX,analyzeTemplate:()=>kB,analyzeProject:()=>lw,analyzeDirectiveUsage:()=>RX,analyticsDirective:()=>HF,addStore:()=>sM,addPage:()=>nM,addNonceToInlineContent:()=>uF,addLayout:()=>rM,addComponent:()=>iM,abortNavigation:()=>Aw,a11yDirective:()=>k9,VideoProcessorCache:()=>w5,TransitionType:()=>uQ,TransitionEase:()=>cQ,TransitionDirection:()=>pQ,Tokenizer:()=>Y7,TemplateTypeChecker:()=>cX,TEMPLATE_PRESETS:()=>FM,StxValidationError:()=>a2,StxSyntaxError:()=>p8,StxSecurityError:()=>c8,StxRuntimeError:()=>O1,StxFileError:()=>b5,StxError:()=>U$,Show:()=>xj,SPRING_PRESETS:()=>g3,ProductionBuild:()=>u4,Portal:()=>fj,PROJECT_TEMPLATES:()=>uM,PRESETS:()=>i4,MemorySessionStore:()=>mq,MIME_TYPES:()=>g2,MEDIA_DEFAULT_WIDTHS:()=>R1,MEDIA_DEFAULT_FORMATS:()=>u1,ImageProcessorCache:()=>V5,ImageProcessingError:()=>R2,HydrationRuntime:()=>tX,HotReloadServer:()=>SX,HeatmapAggregator:()=>c3,Fragment:()=>$5,For:()=>vj,ErrorLogger:()=>_6,ErrorCodes:()=>o,DeployError:()=>e1,DEFAULT_WIDTHS:()=>_1,DEFAULT_TRANSITION_OPTIONS:()=>w1,DEFAULT_QUALITY:()=>z1,DEFAULT_PLACEHOLDER_OPTIONS:()=>m9,DEFAULT_FORMATS:()=>B1,DEFAULT_DPR_VALUES:()=>f2,ComponentHMRHandler:()=>oX,COMMON_SIZES:()=>o3,BroadcastServer:()=>Fz,Broadcast:()=>Lz,BLUR_UP_CSS:()=>q5});var JI;var M$=D(()=>{H3();E3();q0();P$();sq();aZ();YQ();hj();mj();XZ();E1();ij();AB();H$();I4();vZ();b9();qZ();v9();h5();C7();FZ();iB();HX();rB();Gz();P4();z4();Az();u0();SZ();yZ();H3();xz();T2();iz();az();X1();HZ();d0();Zq();f9();dZ();p5();Qq();Kq();i6();g9();oZ();I6();b4();k2();U1();_q();wX();zq();y7();Vq();GX();j6();Aq();a6();LX();dX();Tq();Iq();$Z();fY();aY();Dq();bq();_Z();E2();yq();hq();uq();E3();qj();Hj();O7();eZ();ZY();pj();q0();XX();rj();JI={}});M$();export{H9 as writeNetlifyConfig,NX as writeManifest,wQ as writeImageManifest,$E as wrapComponentForHMR,e8 as webComponentDirectiveHandler,AJ as watermark,ME as watchViews,Uw as watchMultiple,_w as watchEffect,Ww as watch,bw as waitForStore,VV as waitForLocale,s2 as videoDirective,B6 as validators,jW as validateValueEnhanced,QB as validateTemplate,TJ as validateParams,UV as validateFormEnhanced,Z3 as validateFile,KV as validateFields,zW as validateField,KB as validateDirective,cF as validateCspDirectives,OK as validateConfig,RR as validateComponentScripts,IR as validateComponentProps,A4 as validateClientScript,b2 as usesSignalsInScript,PY as useVirtualList,YW as useTitle,Sw as useStoreOrThrow,iq as useStore,Rj as useSlots,J7 as useSeoMeta,RB as useRouteParams,Cw as useRouteParamOrThrow,MB as useRouteParam,YW as usePageTitle,yw as useMiddlewareValue,TB as useMiddlewareState,Sq as useLoadingIndicator,j$ as useHead,Mj as useAttrs,oJ as uploadFiles,Y3 as uploadFile,Fw as updateInstance,G4 as untrack,qH as unregisterDirective,Vw as unmountInstance,I9 as unescapeHtml,Y$ as transpileTypeScript,C9 as transitionDirective,qz as toUsers,zz as toUser,JJ as thumbnail,Y9 as thumbHashToRGBA,lJ as thumbHashToDataURL,QY as templateCache,bX as stxClientHelpers,q6 as structuredDataDirective,n$ as stripDocumentWrapper,ZM as stringToStream,cK as strictCspPreset,Rq as streamingSuspenseDirective,gT as streamToResponse,PT as streamTemplateSimple,yT as streamTemplate,G2 as stopHmrServer,_z as stopBroadcasting,$4 as state,hM as startProductionServer,EM as startInteractive,Uz as startBroadcasting,iQ as staggerDirective,RJ as srcsetUrls,nQ as springDirective,M6 as splitByPipe,DJ as smartBatchSign,n4 as signUrl,Z$ as shouldTranspileTypeScript,f7 as shouldReloadOnChange,a4 as shouldRefreshSignature,g7 as shouldIgnoreFile,E_ as shouldCacheComponent,WJ as sharpen,fw as setRouteParams,gw as setMiddlewareState,Q3 as setGlobalProvide,mG as setErrorLocale,Xw as setCurrentInstance,M5 as setCachedVideoResult,A5 as setCachedImageResult,L5 as setCached,kz as serveStxFile,bz as serveMultipleStxFiles,d4 as serveMarkdownFile,kT as serveFile,yz as serveApp,Nq as serve,Pq as serializeState,_J as sepia,y9 as scrollAnimateDirective,S9 as screenReaderDirective,_K as scopeHTML,UK as scopeCSS,xL as scanForSitemapEntries,ZO as scanA11yIssues,jJ as saturation,EJ as sanitizeParams,XK as sanitizeFilePath,JK as sanitizeExpression,QK as sanitizeDirectiveParams,t2 as sanitizeDirectiveParam,i8 as sanitizeComponentProps,M1 as safeExecuteAsync,$K as safeExecute,sZ as runPreProcessingMiddleware,rZ as runPostProcessingMiddleware,D7 as runMiddleware,i$ as runHooks,HJ as rotate,e2 as resolveTemplatePath,YJ as resize,S3 as resetPlaceholders,$W as resetHead,YE as resetHMRHandler,rG as resetErrorConfig,E9 as replacePlaceholders,ZQ as renderView,k5 as renderVideoComponent,e$ as renderToString,Pj as renderToStream,H2 as renderToDOM,cJ as renderThumbhashToCanvas,hE as renderTemplate,dE as renderString,ZX as renderSlot,__ as renderSSRSuspense,PJ as renderProtectedVideo,yJ as renderProtectedImg,IJ as renderMediaUpload,K$ as renderImgComponent,BQ as renderImageComponent,JW as renderHtmlAttrs,XW as renderHead,TE as renderEmail,D1 as renderComponentWithSlot,QW as renderBodyAttrs,KE as render,lK as relaxedCspPreset,GV as registerValidationRule,vT as registerStreamingDirectives,xw as registerStore,yL as registerSeoDirectives,kw as registerMiddleware,yQ as registerFilters,C3 as registerFilter,pG as registerErrorMessages,WV as registerEnhancedValidationRule,jQ as registerDirective,pF as registerCspDirectives,SR as registerComponentDirectives,FO as registerAnimationDirectives,JO as registerA11yDirectives,Gw as ref,UM as redirect,p1 as readMarkdownFile,ZU as readFileCached,NB as reactive,VJ as quality,bJ as pruneSignatureCache,UG as pruneCache,Oj as provide,tZ as processVueTemplate,M4 as processVirtualListDirectives,vY as processVirtualGridDirectives,Y6 as processVideo,qW as processValidateDirective,hZ as processTranslateDirective,Z_ as processTransitionDirectives,J_ as processTransitionAttributes,WW as processTitleDirective,UZ as processTemplateBindings,nU as processTeleportDirectives,W_ as processSuspenseDirectives,s8 as processStructuredData,rY as processStaticDirectives,r6 as processStackReplacements,s6 as processStackPushDirectives,YX as processSlots,k4 as processShell,o6 as processServerBindings,r8 as processSeoDirective,fT as processSectionDirectives,_7 as processScopedStyles,MK as processReactiveBindings,xJ as processProtectedMedia,uY as processPartialHydrationDirectives,N4 as processOnceDirective,nZ as processMiddleware,n8 as processMetaDirectives,UW as processMetaDirective,LZ as processMarkdownFileDirectives,l3 as processMarkdownDirectives,l6 as processLoops,M_ as processKeepAliveDirectives,V4 as processJsonDirective,xY as processInfiniteListDirectives,n6 as processIncludes,T8 as processImgComponents,zQ as processImageComponents,h1 as processImage,KW as processHeadDirective,QV as processForms,v6 as processFormInputDirectives,q1 as processExpressions,jZ as processEventDirectives,f6 as processErrorDirective,$Y as processDynamicComponents,Z0 as processDirectives,FH as processDirectiveAttributes,cU as processDeferDirectives,CZ as processCustomDirectives,kZ as processCspDirectives,v$ as processClientScript,u5 as processBasicFormDirectives,L_ as processAsyncDirectives,h3 as processAnimationDirectives,f3 as processA11yDirectives,LV as preloadTranslationsBackground,FW as preloadTranslations,nT as preloadIslandHandlers,Jz as poolStrings,YZ as pluginManager,$_ as performLeave,eU as performEnter,K4 as peek,F$ as partialsCache,xG as parseVideoDirectiveOptions,ZJ as parseUrl,iJ as parseThumbhashString,E6 as parseSwitchBlock,$X as parseSlots,BB as parseSlotElement,mK as parseScriptDeclarations,BK as parseSFCComponent,vJ as parseProtectedArgs,r9 as parseImgComponent,a3 as parseImageUrl,V3 as parseImageComponent,hK as parseExpressionWithFilters,GM as parseCookies,NZ as parseConditionalBlock,AZ as parseArguments,OO as parseAnimationShorthand,Qz as optimizeTemplate,M3 as optimizeImage,AQ as optimizeDirectory,lZ as onceStore,jw as onUpdated,Ow as onUnmounted,dw as onServer,zw as onMounted,J4 as onMount,sY as onHydrated,Aj as onErrorCaptured,Q4 as onDestroy,S_ as onDeactivated,hw as onClient,qw as onBeforeUpdate,Hw as onBeforeUnmount,Bw as onBeforeMount,k_ as onActivated,mJ as observeElement,_M as notFound,Nj as nextTick,Dw as navigateTo,Lw as mountInstance,x9 as motionDirective,k6 as moderateCspPreset,Xz as minifyHtml,z6 as metaDirective,l4 as mergeParams,mF as mergeCspDirectives,S4 as matchRoute,i3 as markdownDirectiveHandler,R6 as markdownCache,K7 as loadTranslationLazy,AW as loadTranslation,S0 as loadStxConfig,I7 as loadMiddlewareFromDirectory,AX as loadManifest,a1 as loadElement,Bz as loadChannels,hJ as lazyLoadAll,gJ as lazyLoad,lQ as keyframeDirective,bj as jsxs,Cj as jsxDEV,Z5 as jsx,WM as jsonResponse,Mq as islandDirective,TL as isTest,UX as isSpaNavigation,r4 as isSignatureValid,q7 as isSignal,g1 as isSharpAvailable,lR as isServerEnvironment,EB as isServer,iG as isProduction,t4 as isNativeLazySupported,HV as isLoading,OV as isLoaded,OB as isJavaScriptScript,e4 as isIntersectionObserverSupported,N9 as isImageFile,MW as isICUFormat,nY as isHydrated,cR as isEdgeEnvironment,nj as isDirectiveKind,W$ as isDevelopment,j7 as isDerived,v7 as isCssOnlyChange,IB as isClient,V_ as isAsyncComponent,BJ as invert,XU as invalidateFileCacheByDir,YU as invalidateFileCache,xQ as interpolateScriptsInTemplate,P3 as interpolateScriptExpressions,$0 as inlineError,_9 as injectThemeBootstrap,o8 as injectSeoTags,G9 as injectSeo,U9 as injectRouterScript,y1 as injectHotReload,u3 as injectHeatmap,DZ as injectCspMetaTag,V0 as injectCrosswindCSS,zZ as injectAnalytics,Lj as inject,Pw as initStoreRegistry,$H as initNetlify,aT as initLoadingIndicator,fJ as initLazyLoading,VM as initFile,$3 as initBlurUp,sJ as initAllBlurUp,i2 as imgDirective,OQ as imageDirective,hX as hydrateTemplate,iT as hydrateIslands,cY as hydrateIsland,vM as hydrateFragment,lY as hydrateByStrategy,iY as hydrateAll,QE as hydrate,DT as htmlResponse,p3 as heatmapDirective,u9 as hashString,i5 as hashFilePath,v0 as hashFile,XG as hashBuffer,rW as hasVueTemplateSyntax,pZ as hasVariables,cq as hasStore,G5 as hasPlaceholders,O9 as hasNetlifyConfig,Iw as hasMiddleware,AF as hasEventDirectives,$U as hasDocumentShell,WB as hasDirectives,gQ as hasDOMSupport,wj as handleError,gj as h,w2 as groupVariantsByFormat,UJ as grayscale,dM as gitHash,tB as getUnusedDirectives,VW as getTranslationSync,zV as getTranslationCacheStats,FV as getTranslationAsync,g6 as getTranslation,t1 as getTotalSize,o4 as getTimeUntilExpiry,lq as getStoreNames,eX as getStore,JX as getSourceLineInfo,eH as getScreenReaderOnlyStyle,lL as getScopeAttribute,aw as getRouteParams,K1 as getPublicEnvDefine,TQ as getPublicEnv,GB as getPositionInfo,b3 as getPlaceholderRegistry,B8 as getPlaceholderCacheStats,C6 as getPageMeta,z$ as getNonce,d1 as getMimeType,E7 as getMiddlewareNames,Ew as getMiddleware,jV as getLoadingState,NV as getLoadingLocales,V9 as getImageMetadata,gq as getHydrationRuntime,vw as getHydratedStoreState,h7 as getHmrServer,m5 as getHead,ZE as getHMRHandler,Z8 as getFormatExtension,p2 as getFileMtime,A2 as getFallbackVariant,u8 as getErrorMessage,uG as getErrorLocale,r2 as getErrorConfig,Q6 as getErrorCodeName,zH as getDirectives,BH as getDirective,Jw as getCurrentInstance,dF as getCspPreset,rK as getCspHeaderName,Yw as getComponentCacheStats,R5 as getCachedVideoResult,kJ as getCachedSignature,JU as getCachedSignalsRuntime,QU as getCachedRouterScript,u2 as getCachedPlaceholder,N5 as getCachedImageResult,O5 as getCached,WG as getCacheStats,Wz as getBroadcastServer,$8 as getBestVariant,y3 as getAllFilters,J$ as generateWidthSrcset,yY as generateVirtualListCSS,tJ as generateVideoPreview,_V as generateValidationScript,Q9 as generateUploadRuntime,eB as generateTreeShakenBundle,X_ as generateTransitionRuntime,Y_ as generateTransitionCSS,E5 as generateThumbnails,J8 as generateThumbhashPlaceholder,dz as generateTemplatesDocs,z_ as generateSuspenseRuntime,B_ as generateSuspenseCSS,vq as generateStateScript,t3 as generateSrcsetData,i9 as generateSrcset,J5 as generateSrcSet,$6 as generateSpriteSheet,bE as generateSpaShell,e3 as generateSourceTags,r3 as generateSizesFromBreakpoints,B5 as generateSizesAttribute,N2 as generateSizes,PL as generateSitemapIndex,K9 as generateSitemap,Jj as generateSimpleMediaPicker,$9 as generateSignatureRuntime,m$ as generateSignalsRuntimeDev,H7 as generateSignalsRuntime,H6 as generateScopeId,zK as generateSFCWebComponent,ew as generateRouteTypes,tw as generateRouteManifest,WK as generateRobotsTxt,W9 as generateRobots,l9 as generateResponsiveVariants,sL as generateReactiveWebComponentTS,nL as generateReactiveWebComponent,oL as generateReactiveRuntime,rL as generateReactiveMixin,T5 as generatePoster,U8 as generatePlaceholderStyle,m2 as generatePlaceholderCSS,d2 as generatePlaceholder,pY as generatePartialHydrationCSS,EZ as generateNonce,B3 as generateNetlifyToml,_j as generateMinifiedMediaRuntime,$Q as generateMediaRuntime,Xj as generateMediaManagerEmbed,VX as generateManifest,tT as generateLoadingIndicatorHtml,Z9 as generateLazyLoadRuntime,G8 as generateLQIP,D_ as generateKeepAliveRuntime,I_ as generateKeepAliveCSS,oY as generateIslandManifest,aJ as generateImagePreview,T3 as generateImageManifest,JE as generateHydrationScript,hT as generateHydrationRuntime,GE as generateHydrationCSS,gY as generateHydrationBootstrap,Dz as generateHotReloadScript,m3 as generateHeatmapScript,eT as generateHMRClientScript,I5 as generateHLSManifest,XE as generateEventBindings,s3 as generateDprSrcsetWithVariableQuality,_5 as generateDprSrcset,eW as generateDocumentShell,lz as generateDocs,mz as generateDirectivesDocs,LH as generateDirectiveRuntime,vL as generateDefaultRobotsTxt,D5 as generateDASHManifest,S6 as generateCspMetaTag,IZ as generateCspHeader,V6 as generateCrosswindCSS,Ej as generateCompositionRuntime,hz as generateComponentsDocs,AA as generateComponentManifest,gz as generateComponentDoc,W8 as generateColorPlaceholder,Nw as generateClientRuntime,j5 as generateCacheKey,X9 as generateBlurUpRuntime,J9 as generateBlurUpCSS,TK as generateBindingsRuntime,n3 as generateAutoWidthSrcset,A_ as generateAsyncComponentRuntime,N_ as generateAsyncComponentCSS,LO as generateAnimationRuntime,HO as generateAnimationCSS,BZ as generateAnalyticsScript,lT as formatTypeErrors,$q as formatStxContent,y$ as formatSize,BX as formatRoutes,BM as formatMarkdownContent,lG as formatLocalizedError,wW as formatICU,o2 as formatFilePath,W6 as formatError,uz as formatDocsAsMarkdown,cz as formatDocsAsJson,pz as formatDocsAsHtml,FJ as format,Yz as foldConstants,LJ as flipVertical,OJ as flipHorizontal,zX as fingerprint,B$ as findMatchingEndTag,b0 as findMatchingDelimiter,T6 as findIfBlocks,gK as findExpressions,_X as findErrorPage,X7 as findDirectiveBlocks,$z as findDeadCode,$z as findDeadBranches,xX as findComponentFiles,CX as findCommonDir,j9 as filterRequiredFiles,t as fileExists,R0 as extractVariables,fq as extractState,qB as extractSlotContent,uZ as extractScriptFromTemplate,iH as extractPlaceholders,l1 as extractParenthesizedExpression,K8 as extractDominantColor,dK as extractDirectiveParams,UB as extractDirectiveNames,b7 as extractContainerContent,vz as extractComponentProps,hY as extractComponentName,fz as extractComponentDescription,F6 as extractClassNames,dY as extractBoundProps,VZ as extractBalancedExpression,iL as extractAndScopeStyles,bK as extractAndProcessEvents,Y1 as evaluateExpression,y4 as evaluateConstant,c1 as evaluateAuthExpression,w0 as escapeHtml,U6 as errorRecovery,m0 as errorLogger,sU as ensureTeleportTargets,B7 as ensureDocumentShell,xZ as enhancedValidationRules,Zz as eliminateDeadCode,Y4 as effect,MJ as dprUrls,pR as docsCommand,uJ as disconnectObserver,C5 as devHelpers,WX as detectShell,U2 as detectRuntime,F2 as detectProjectConfig,Y8 as detectFormat,wR as detectBuildMode,Z4 as derived,ej as deploy,HK as defineStxConfig,nq as defineStore,WQ as defineSiteConfig,P5 as definePlugin,ZW as definePageMeta,Tw as defineMiddleware,Vj as defineExpose,Fj as defineEmits,T0 as defineDirective,dj as defineCustomElement,xM as defineConfig,jH as defineClientDirective,F_ as defineAsyncComponent,RE as defaultMediaConfig,EH as defaultImageConfig,h6 as defaultI18nConfig,aQ as defaultHeatmapConfig,x6 as defaultFormClasses,K5 as defaultFilters,iF as defaultCspConfig,a0 as defaultConfig,JI as default,Q8 as decodeThumbhash,sK as cspNonceDirective,nK as cspDirective,nJ as crossfadeTransition,XJ as crop,R4 as createVirtualList,X6 as createVideoDirective,JM as createVercelHandler,lX as createTypeChecker,fV as createTranslateFilter,$M as createTextEncoderStream,QQ as createStxApp,eR as createStreamingResponse,xT as createStreamRenderer,$J as createStore,Mw as createStorageManager,Rw as createServerCookieManager,VB as createScope,U_ as createSSRSuspense,n1 as createRouter,T7 as createRouteLocation,bT as createRoute,Gw as createRef,NB as createReactive,Tj as createProvideContext,pM as createProject,PM as createProductionBuild,D2 as createPlaceholder,MR as createOptimizedBuild,QM as createNetlifyHandler,z9 as createNetlifyClient,M7 as createMiddlewareContext,ST as createMiddleware,dJ as createLazyObserver,T_ as createKeepAliveCache,rz as createKVNamespace,mY as createIslandRegistry,o9 as createImgDirective,FQ as createImagePlugin,R3 as createImageDirective,AO as createHeatmapAggregator,q9 as createFileManifest,sz as createEnvAccessor,eG as createEnhancedError,u7 as createEdgeHandler,oz as createEdgeCache,B0 as createDetailedErrorMessage,XM as createDenoHandler,V2 as createDefaultNetlifyConfig,lF as createCspHeaders,KM as createCookie,Kw as createComputed,Qw as createComponentInstance,YM as createCloudflareHandler,ww as createClientCookieManager,OH as createBuiltinDirectives,QQ as createApp,jO as createAnimationTimeline,GJ as cover,d6 as convertToCommonJS,qJ as contrast,QJ as contain,tG as consoleError,sG as configureErrorHandling,t0 as config,Kw as computed,S7 as composeShellWithPage,Nz as componentDirective,OX as compileTemplate,L2 as collectDeployFiles,t9 as clearVideoCache,BV as clearTranslationCache,SJ as clearSignatureCache,_8 as clearPlaceholderCache,XN as clearOnceStore,hF as clearNonce,R7 as clearMiddleware,w3 as clearImageCache,cG as clearErrorMessages,GU as clearDevCaches,PQ as clearCustomFilters,R$ as clearComponentCache,F5 as clearCache,SB as classifyScript,QX as classifyAllScripts,pT as checkTemplateFile,cT as checkTemplate,_4 as checkCache,j2 as checkAuthAccess,hQ as checkA11y,Oz as channel,AV as cancelPendingLoads,_3 as calculateSha1,h9 as calculateOptimalWidths,B4 as cacheTemplate,a8 as buildWebComponents,jj as buildViews,H0 as buildUrl,GQ as buildStaticSite,qX as buildRuntimeAsset,jX as buildRouterAsset,j1 as buildImageUrl,cB as buildForProduction,e7 as buildAuthParams,NR as buildApp,yM as build,jz as broadcastPrivate,Hz as broadcastPresence,TX as broadcast,zJ as brightness,KJ as blur,s4 as batchSignUrls,X4 as batch,mQ as autoFixA11yFile,XO as autoFixA11yDirectory,dQ as autoFixA11y,NJ as auto,jR as assetTags,l2 as applyTransformations,jB as applySlots,DR as applyPropDefaults,wJ as applyPreset,GW as applyHead,x3 as applyFilters,iK as apiCspPreset,P9 as animationGroupDirective,n2 as analyzeVideo,RX as analyzeUsage,kB as analyzeTemplate,lw as analyzeProject,RX as analyzeDirectiveUsage,HF as analyticsDirective,sM as addStore,nM as addPage,uF as addNonceToInlineContent,rM as addLayout,iM as addComponent,Aw as abortNavigation,k9 as a11yDirective,w5 as VideoProcessorCache,uQ as TransitionType,cQ as TransitionEase,pQ as TransitionDirection,Y7 as Tokenizer,cX as TemplateTypeChecker,FM as TEMPLATE_PRESETS,a2 as StxValidationError,p8 as StxSyntaxError,c8 as StxSecurityError,O1 as StxRuntimeError,b5 as StxFileError,U$ as StxError,xj as Show,g3 as SPRING_PRESETS,u4 as ProductionBuild,fj as Portal,uM as PROJECT_TEMPLATES,i4 as PRESETS,mq as MemorySessionStore,g2 as MIME_TYPES,R1 as MEDIA_DEFAULT_WIDTHS,u1 as MEDIA_DEFAULT_FORMATS,V5 as ImageProcessorCache,R2 as ImageProcessingError,tX as HydrationRuntime,SX as HotReloadServer,c3 as HeatmapAggregator,$5 as Fragment,vj as For,_6 as ErrorLogger,o as ErrorCodes,e1 as DeployError,_1 as DEFAULT_WIDTHS,w1 as DEFAULT_TRANSITION_OPTIONS,z1 as DEFAULT_QUALITY,m9 as DEFAULT_PLACEHOLDER_OPTIONS,B1 as DEFAULT_FORMATS,f2 as DEFAULT_DPR_VALUES,oX as ComponentHMRHandler,o3 as COMMON_SIZES,Fz as BroadcastServer,Lz as Broadcast,q5 as BLUR_UP_CSS};
15039
+ </body>`)}return $}var pE=($,Z,Y,X)=>`(function(){try{var k=${JSON.stringify(Z)};var t=localStorage.getItem(k);var html=document.documentElement;var isDark=t===null?(${JSON.stringify($)}==='dark'||(${JSON.stringify($)}==='auto'&&window.matchMedia('(prefers-color-scheme: dark)').matches)):t==='dark';html.classList[isDark?'add':'remove']('dark');var tc=document.querySelector('meta[name="theme-color"]:not([media])');if(tc)tc.setAttribute('content',isDark?${JSON.stringify(X)}:${JSON.stringify(Y)})}catch(e){}})();`,cE=($,Z,Y)=>`document.addEventListener('click',function(e){var t=e.target&&e.target.closest&&e.target.closest('#theme-toggle');if(!t)return;var html=document.documentElement;var isDark=html.classList.toggle('dark');try{localStorage.setItem(${JSON.stringify($)},isDark?'dark':'light')}catch(e){}var tc=document.querySelector('meta[name="theme-color"]:not([media])');if(tc)tc.setAttribute('content',isDark?${JSON.stringify(Y)}:${JSON.stringify(Z)})});`;var{Glob:lE}=globalThis.Bun;import{cpSync as iE,existsSync as W3,mkdirSync as nE,readFileSync as cj,readdirSync as sE,rmSync as rE,statSync as oE,unlinkSync as aE,writeFileSync as K3}from"fs";import{join as C$,relative as tE}from"path";import eE from"process";import $I from"bun-plugin-stx";async function GQ($){let Z=Date.now(),Y=$.pagesDir??"pages",X=$.outDir??"dist",J=$.publicDir??"public";if(!$.noClean)rE(X,{recursive:!0,force:!0});nE(X,{recursive:!0});let Q=new lE(`${Y}/**/*.stx`),G=await Array.fromAsync(Q.scan("."));if(G.length===0)throw Error(`No .stx files found in ${Y}/`);let K=await Bun.build({entrypoints:G,outdir:X,plugins:[$I()],naming:{entry:"[name].[ext]"}});if(!K.success)throw console.error(K.logs),Error("Build failed");ZI(X);let W=KQ(X).filter((z)=>z.endsWith(".html"));for(let z of W){let q=C$(X,z),j=cj(q,"utf8");if(j=YI(j),j=await V0(j,eE.cwd()),j=G9(j,$,$.pages?.[B9(z)],B9(z)),j=_9(j,$),j=XI(j),$.spa!==!1)j=await U9(j,$.router);K3(q,j)}if(W3(J))iE(J,X,{recursive:!0});let U=C$(X,"404.html");if(!W3(U)&&W3(C$(X,"index.html"))){let z=cj(C$(X,"index.html"),"utf8").replace(/<title>[^<]*<\/title>/i,`<title>404 \u2014 ${JI($.name)}</title>`);K3(U,z)}if($.sitemap!==!1){let z=W.filter((q)=>q!=="404.html").map((q)=>({path:B9(q),page:$.pages?.[B9(q)]}));K3(C$(X,"sitemap.xml"),K9($,z))}let _=W9($);if(_!==null)K3(C$(X,"robots.txt"),_);let B=W.map(B9);return{outDir:X,pages:B,durationMs:Date.now()-Z}}function B9($){if($==="index.html")return"/";return`/${$.replace(/\.html$/,"").replace(/\/index$/,"")}`}function KQ($,Z=$){let Y=[];if(!W3($))return Y;for(let X of sE($,{withFileTypes:!0})){let J=C$($,X.name);if(X.isDirectory())Y.push(...KQ(J,Z));else Y.push(tE(Z,J))}return Y}function ZI($){for(let Z of KQ($)){if(!/^chunk-.*\.js(?:\.map)?$/.test(Z))continue;let Y=C$($,Z);try{if(oE(Y).size===0)aE(Y)}catch{}}}function YI($){return $.replace(/<script[^>]*src=["']\.\/chunk-[^"']*\.js["'][^>]*><\/script>\s*/g,"")}function XI($){if(/<main\b/i.test($)||/\bdata-stx-content\b/i.test($))return $;let Z=$.match(/<body\b[^>]*>/i),Y=$.search(/<\/body\s*>/i);if(!Z||Y<0)return $;let X=Z.index+Z[0].length,J=$.slice(X,Y),Q=0,G=[...J.matchAll(/<\/nav>/gi)];if(G.length>0){let z=G[G.length-1];Q=z.index+z[0].length}let K=J.length,W=J.search(/<footer\b/i);if(W!==-1)K=Math.min(K,W);let U=J.search(/<script\b[^>]*data-stx-(?:theme-toggle|reparent-progress)\b/i);if(U!==-1)K=Math.min(K,U);if(K<=Q)return $;let _=J.slice(Q,K);if(!_.trim())return $;let B=`${J.slice(0,Q)}
15040
+ <main>${_}</main>
15041
+ ${J.slice(K)}`;return`${$.slice(0,X)}${B}${$.slice(Y)}`}function JI($){return $.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function WQ($){return $}var lj=D(()=>{E1()});var ij=D(()=>{lj()});function nj($,Z){return $.kind===Z}var sj=()=>{};var rj=D(()=>{sj()});var s$={};Q0(s$,{writeNetlifyConfig:()=>H9,writeManifest:()=>NX,writeImageManifest:()=>wQ,wrapComponentForHMR:()=>$E,webComponentDirectiveHandler:()=>e8,watermark:()=>AJ,watchViews:()=>ME,watchMultiple:()=>Uw,watchEffect:()=>_w,watch:()=>Ww,waitForStore:()=>bw,waitForLocale:()=>VV,videoDirective:()=>s2,validators:()=>B4,validateValueEnhanced:()=>jW,validateTemplate:()=>QB,validateParams:()=>TJ,validateFormEnhanced:()=>UV,validateFile:()=>Z3,validateFields:()=>KV,validateField:()=>zW,validateDirective:()=>KB,validateCspDirectives:()=>cF,validateConfig:()=>OK,validateComponentScripts:()=>RR,validateComponentProps:()=>IR,validateClientScript:()=>A6,usesSignalsInScript:()=>b2,useVirtualList:()=>PY,useTitle:()=>YW,useStoreOrThrow:()=>Sw,useStore:()=>iq,useSlots:()=>Rj,useSeoMeta:()=>J7,useRouteParams:()=>RB,useRouteParamOrThrow:()=>Cw,useRouteParam:()=>MB,usePageTitle:()=>YW,useMiddlewareValue:()=>yw,useMiddlewareState:()=>TB,useLoadingIndicator:()=>Sq,useHead:()=>j$,useAttrs:()=>Mj,uploadFiles:()=>oJ,uploadFile:()=>Y3,updateInstance:()=>Fw,untrack:()=>G6,unregisterDirective:()=>qH,unmountInstance:()=>Vw,unescapeHtml:()=>I9,transpileTypeScript:()=>Y$,transitionDirective:()=>C9,toUsers:()=>qz,toUser:()=>zz,thumbnail:()=>JJ,thumbHashToRGBA:()=>Y9,thumbHashToDataURL:()=>lJ,templateCache:()=>QY,stxClientHelpers:()=>bX,structuredDataDirective:()=>q4,stripDocumentWrapper:()=>n$,stringToStream:()=>ZM,strictCspPreset:()=>cK,streamingSuspenseDirective:()=>Rq,streamToResponse:()=>gT,streamTemplateSimple:()=>PT,streamTemplate:()=>yT,stopHmrServer:()=>G2,stopBroadcasting:()=>_z,state:()=>$6,startProductionServer:()=>hM,startInteractive:()=>EM,startBroadcasting:()=>Uz,staggerDirective:()=>iQ,srcsetUrls:()=>RJ,springDirective:()=>nQ,splitByPipe:()=>M4,smartBatchSign:()=>DJ,signUrl:()=>n6,shouldTranspileTypeScript:()=>Z$,shouldReloadOnChange:()=>f7,shouldRefreshSignature:()=>a6,shouldIgnoreFile:()=>g7,shouldCacheComponent:()=>E_,sharpen:()=>WJ,setRouteParams:()=>fw,setMiddlewareState:()=>gw,setGlobalProvide:()=>Q3,setErrorLocale:()=>mG,setCurrentInstance:()=>Xw,setCachedVideoResult:()=>M5,setCachedImageResult:()=>A5,setCached:()=>L5,serveStxFile:()=>kz,serveMultipleStxFiles:()=>bz,serveMarkdownFile:()=>d6,serveFile:()=>kT,serveApp:()=>yz,serve:()=>Nq,serializeState:()=>Pq,sepia:()=>_J,scrollAnimateDirective:()=>y9,screenReaderDirective:()=>S9,scopeHTML:()=>_K,scopeCSS:()=>UK,scanForSitemapEntries:()=>xL,scanA11yIssues:()=>ZO,saturation:()=>jJ,sanitizeParams:()=>EJ,sanitizeFilePath:()=>XK,sanitizeExpression:()=>JK,sanitizeDirectiveParams:()=>QK,sanitizeDirectiveParam:()=>t2,sanitizeComponentProps:()=>i8,safeExecuteAsync:()=>M1,safeExecute:()=>$K,runPreProcessingMiddleware:()=>sZ,runPostProcessingMiddleware:()=>rZ,runMiddleware:()=>D7,runHooks:()=>i$,rotate:()=>HJ,resolveTemplatePath:()=>e2,resize:()=>YJ,resetPlaceholders:()=>S3,resetHead:()=>$W,resetHMRHandler:()=>YE,resetErrorConfig:()=>rG,replacePlaceholders:()=>E9,renderView:()=>ZQ,renderVideoComponent:()=>k5,renderToString:()=>e$,renderToStream:()=>Pj,renderToDOM:()=>H2,renderThumbhashToCanvas:()=>cJ,renderTemplate:()=>hE,renderString:()=>dE,renderSlot:()=>ZX,renderSSRSuspense:()=>__,renderProtectedVideo:()=>PJ,renderProtectedImg:()=>yJ,renderMediaUpload:()=>IJ,renderImgComponent:()=>K$,renderImageComponent:()=>BQ,renderHtmlAttrs:()=>JW,renderHead:()=>XW,renderEmail:()=>TE,renderComponentWithSlot:()=>D1,renderBodyAttrs:()=>QW,render:()=>KE,relaxedCspPreset:()=>lK,registerValidationRule:()=>GV,registerStreamingDirectives:()=>vT,registerStore:()=>xw,registerSeoDirectives:()=>yL,registerMiddleware:()=>kw,registerFilters:()=>yQ,registerFilter:()=>C3,registerErrorMessages:()=>pG,registerEnhancedValidationRule:()=>WV,registerDirective:()=>jQ,registerCspDirectives:()=>pF,registerComponentDirectives:()=>SR,registerAnimationDirectives:()=>FO,registerA11yDirectives:()=>JO,ref:()=>Gw,redirect:()=>UM,readMarkdownFile:()=>p1,readFileCached:()=>ZU,reactive:()=>NB,quality:()=>VJ,pruneSignatureCache:()=>bJ,pruneCache:()=>UG,provide:()=>Oj,processVueTemplate:()=>tZ,processVirtualListDirectives:()=>M6,processVirtualGridDirectives:()=>vY,processVideo:()=>Y4,processValidateDirective:()=>qW,processTranslateDirective:()=>hZ,processTransitionDirectives:()=>Z_,processTransitionAttributes:()=>J_,processTitleDirective:()=>WW,processTemplateBindings:()=>UZ,processTeleportDirectives:()=>nU,processSuspenseDirectives:()=>W_,processStructuredData:()=>s8,processStaticDirectives:()=>rY,processStackReplacements:()=>r4,processStackPushDirectives:()=>s4,processSlots:()=>YX,processShell:()=>k6,processServerBindings:()=>o4,processSeoDirective:()=>r8,processSectionDirectives:()=>fT,processScopedStyles:()=>_7,processReactiveBindings:()=>MK,processProtectedMedia:()=>xJ,processPartialHydrationDirectives:()=>uY,processOnceDirective:()=>N6,processMiddleware:()=>nZ,processMetaDirectives:()=>n8,processMetaDirective:()=>UW,processMarkdownFileDirectives:()=>LZ,processMarkdownDirectives:()=>l3,processLoops:()=>l4,processKeepAliveDirectives:()=>M_,processJsonDirective:()=>V6,processInfiniteListDirectives:()=>xY,processIncludes:()=>n4,processImgComponents:()=>T8,processImageComponents:()=>zQ,processImage:()=>h1,processHeadDirective:()=>KW,processForms:()=>QV,processFormInputDirectives:()=>v4,processExpressions:()=>q1,processEventDirectives:()=>jZ,processErrorDirective:()=>f4,processDynamicComponents:()=>$Y,processDirectives:()=>Z0,processDirectiveAttributes:()=>FH,processDeferDirectives:()=>cU,processCustomDirectives:()=>CZ,processCspDirectives:()=>kZ,processClientScript:()=>v$,processBasicFormDirectives:()=>u5,processAsyncDirectives:()=>L_,processAnimationDirectives:()=>h3,processA11yDirectives:()=>f3,preloadTranslationsBackground:()=>LV,preloadTranslations:()=>FW,preloadIslandHandlers:()=>nT,poolStrings:()=>Jz,pluginManager:()=>YZ,performLeave:()=>$_,performEnter:()=>eU,peek:()=>K6,partialsCache:()=>F$,parseVideoDirectiveOptions:()=>xG,parseUrl:()=>ZJ,parseThumbhashString:()=>iJ,parseSwitchBlock:()=>E4,parseSlots:()=>$X,parseSlotElement:()=>BB,parseScriptDeclarations:()=>mK,parseSFCComponent:()=>BK,parseProtectedArgs:()=>vJ,parseImgComponent:()=>r9,parseImageUrl:()=>a3,parseImageComponent:()=>V3,parseExpressionWithFilters:()=>hK,parseCookies:()=>GM,parseConditionalBlock:()=>NZ,parseArguments:()=>AZ,parseAnimationShorthand:()=>OO,optimizeTemplate:()=>Qz,optimizeImage:()=>M3,optimizeDirectory:()=>AQ,onceStore:()=>lZ,onUpdated:()=>jw,onUnmounted:()=>Ow,onServer:()=>dw,onMounted:()=>zw,onMount:()=>J6,onHydrated:()=>sY,onErrorCaptured:()=>Aj,onDestroy:()=>Q6,onDeactivated:()=>S_,onClient:()=>hw,onBeforeUpdate:()=>qw,onBeforeUnmount:()=>Hw,onBeforeMount:()=>Bw,onActivated:()=>k_,observeElement:()=>mJ,notFound:()=>_M,nextTick:()=>Nj,navigateTo:()=>Dw,mountInstance:()=>Lw,motionDirective:()=>x9,moderateCspPreset:()=>k4,minifyHtml:()=>Xz,metaDirective:()=>z4,mergeParams:()=>l6,mergeCspDirectives:()=>mF,matchRoute:()=>S6,markdownDirectiveHandler:()=>i3,markdownCache:()=>R4,loadTranslationLazy:()=>K7,loadTranslation:()=>AW,loadStxConfig:()=>S0,loadMiddlewareFromDirectory:()=>I7,loadManifest:()=>AX,loadElement:()=>a1,loadChannels:()=>Bz,lazyLoadAll:()=>hJ,lazyLoad:()=>gJ,keyframeDirective:()=>lQ,jsxs:()=>bj,jsxDEV:()=>Cj,jsx:()=>Z5,jsonResponse:()=>WM,islandDirective:()=>Mq,isTest:()=>TL,isSpaNavigation:()=>UX,isSignatureValid:()=>r6,isSignal:()=>q7,isSharpAvailable:()=>g1,isServerEnvironment:()=>lR,isServer:()=>EB,isProduction:()=>iG,isNativeLazySupported:()=>t6,isLoading:()=>HV,isLoaded:()=>OV,isJavaScriptScript:()=>OB,isIntersectionObserverSupported:()=>e6,isImageFile:()=>N9,isICUFormat:()=>MW,isHydrated:()=>nY,isEdgeEnvironment:()=>cR,isDirectiveKind:()=>nj,isDevelopment:()=>W$,isDerived:()=>j7,isCssOnlyChange:()=>v7,isClient:()=>IB,isAsyncComponent:()=>V_,invert:()=>BJ,invalidateFileCacheByDir:()=>XU,invalidateFileCache:()=>YU,interpolateScriptsInTemplate:()=>xQ,interpolateScriptExpressions:()=>P3,inlineError:()=>$0,injectThemeBootstrap:()=>_9,injectSeoTags:()=>o8,injectSeo:()=>G9,injectRouterScript:()=>U9,injectHotReload:()=>y1,injectHeatmap:()=>u3,injectCspMetaTag:()=>DZ,injectCrosswindCSS:()=>V0,injectAnalytics:()=>zZ,inject:()=>Lj,initStoreRegistry:()=>Pw,initNetlify:()=>$H,initLoadingIndicator:()=>aT,initLazyLoading:()=>fJ,initFile:()=>VM,initBlurUp:()=>$3,initAllBlurUp:()=>sJ,imgDirective:()=>i2,imageDirective:()=>OQ,hydrateTemplate:()=>hX,hydrateIslands:()=>iT,hydrateIsland:()=>cY,hydrateFragment:()=>vM,hydrateByStrategy:()=>lY,hydrateAll:()=>iY,hydrate:()=>QE,htmlResponse:()=>DT,heatmapDirective:()=>p3,hashString:()=>u9,hashFilePath:()=>i5,hashFile:()=>v0,hashBuffer:()=>XG,hasVueTemplateSyntax:()=>rW,hasVariables:()=>pZ,hasStore:()=>cq,hasPlaceholders:()=>G5,hasNetlifyConfig:()=>O9,hasMiddleware:()=>Iw,hasEventDirectives:()=>AF,hasDocumentShell:()=>$U,hasDirectives:()=>WB,hasDOMSupport:()=>gQ,handleError:()=>wj,h:()=>gj,groupVariantsByFormat:()=>w2,grayscale:()=>UJ,gitHash:()=>dM,getUnusedDirectives:()=>tB,getTranslationSync:()=>VW,getTranslationCacheStats:()=>zV,getTranslationAsync:()=>FV,getTranslation:()=>g4,getTotalSize:()=>t1,getTimeUntilExpiry:()=>o6,getStoreNames:()=>lq,getStore:()=>eX,getSourceLineInfo:()=>JX,getScreenReaderOnlyStyle:()=>eH,getScopeAttribute:()=>lL,getRouteParams:()=>aw,getPublicEnvDefine:()=>K1,getPublicEnv:()=>TQ,getPositionInfo:()=>GB,getPlaceholderRegistry:()=>b3,getPlaceholderCacheStats:()=>B8,getPageMeta:()=>C4,getNonce:()=>z$,getMimeType:()=>d1,getMiddlewareNames:()=>E7,getMiddleware:()=>Ew,getLoadingState:()=>jV,getLoadingLocales:()=>NV,getImageMetadata:()=>V9,getHydrationRuntime:()=>gq,getHydratedStoreState:()=>vw,getHmrServer:()=>h7,getHead:()=>m5,getHMRHandler:()=>ZE,getFormatExtension:()=>Z8,getFileMtime:()=>p2,getFallbackVariant:()=>A2,getErrorMessage:()=>u8,getErrorLocale:()=>uG,getErrorConfig:()=>r2,getErrorCodeName:()=>Q4,getDirectives:()=>zH,getDirective:()=>BH,getCurrentInstance:()=>Jw,getCspPreset:()=>dF,getCspHeaderName:()=>rK,getComponentCacheStats:()=>Yw,getCachedVideoResult:()=>R5,getCachedSignature:()=>kJ,getCachedSignalsRuntime:()=>JU,getCachedRouterScript:()=>QU,getCachedPlaceholder:()=>u2,getCachedImageResult:()=>N5,getCached:()=>O5,getCacheStats:()=>WG,getBroadcastServer:()=>Wz,getBestVariant:()=>$8,getAllFilters:()=>y3,generateWidthSrcset:()=>J$,generateVirtualListCSS:()=>yY,generateVideoPreview:()=>tJ,generateValidationScript:()=>_V,generateUploadRuntime:()=>Q9,generateTreeShakenBundle:()=>eB,generateTransitionRuntime:()=>X_,generateTransitionCSS:()=>Y_,generateThumbnails:()=>E5,generateThumbhashPlaceholder:()=>J8,generateTemplatesDocs:()=>dz,generateSuspenseRuntime:()=>z_,generateSuspenseCSS:()=>B_,generateStateScript:()=>vq,generateSrcsetData:()=>t3,generateSrcset:()=>i9,generateSrcSet:()=>J5,generateSpriteSheet:()=>$4,generateSpaShell:()=>bE,generateSourceTags:()=>e3,generateSizesFromBreakpoints:()=>r3,generateSizesAttribute:()=>B5,generateSizes:()=>N2,generateSitemapIndex:()=>PL,generateSitemap:()=>K9,generateSimpleMediaPicker:()=>Jj,generateSignatureRuntime:()=>$9,generateSignalsRuntimeDev:()=>m$,generateSignalsRuntime:()=>H7,generateScopeId:()=>H4,generateSFCWebComponent:()=>zK,generateRouteTypes:()=>ew,generateRouteManifest:()=>tw,generateRobotsTxt:()=>WK,generateRobots:()=>W9,generateResponsiveVariants:()=>l9,generateReactiveWebComponentTS:()=>sL,generateReactiveWebComponent:()=>nL,generateReactiveRuntime:()=>oL,generateReactiveMixin:()=>rL,generatePoster:()=>T5,generatePlaceholderStyle:()=>U8,generatePlaceholderCSS:()=>m2,generatePlaceholder:()=>d2,generatePartialHydrationCSS:()=>pY,generateNonce:()=>EZ,generateNetlifyToml:()=>B3,generateMinifiedMediaRuntime:()=>_j,generateMediaRuntime:()=>$Q,generateMediaManagerEmbed:()=>Xj,generateManifest:()=>VX,generateLoadingIndicatorHtml:()=>tT,generateLazyLoadRuntime:()=>Z9,generateLQIP:()=>G8,generateKeepAliveRuntime:()=>D_,generateKeepAliveCSS:()=>I_,generateIslandManifest:()=>oY,generateImagePreview:()=>aJ,generateImageManifest:()=>T3,generateHydrationScript:()=>JE,generateHydrationRuntime:()=>hT,generateHydrationCSS:()=>GE,generateHydrationBootstrap:()=>gY,generateHotReloadScript:()=>Dz,generateHeatmapScript:()=>m3,generateHMRClientScript:()=>eT,generateHLSManifest:()=>I5,generateEventBindings:()=>XE,generateDprSrcsetWithVariableQuality:()=>s3,generateDprSrcset:()=>_5,generateDocumentShell:()=>eW,generateDocs:()=>lz,generateDirectivesDocs:()=>mz,generateDirectiveRuntime:()=>LH,generateDefaultRobotsTxt:()=>vL,generateDASHManifest:()=>D5,generateCspMetaTag:()=>S4,generateCspHeader:()=>IZ,generateCrosswindCSS:()=>V4,generateCompositionRuntime:()=>Ej,generateComponentsDocs:()=>hz,generateComponentManifest:()=>AA,generateComponentDoc:()=>gz,generateColorPlaceholder:()=>W8,generateClientRuntime:()=>Nw,generateCacheKey:()=>j5,generateBlurUpRuntime:()=>X9,generateBlurUpCSS:()=>J9,generateBindingsRuntime:()=>TK,generateAutoWidthSrcset:()=>n3,generateAsyncComponentRuntime:()=>A_,generateAsyncComponentCSS:()=>N_,generateAnimationRuntime:()=>LO,generateAnimationCSS:()=>HO,generateAnalyticsScript:()=>BZ,formatTypeErrors:()=>lT,formatStxContent:()=>$q,formatSize:()=>y$,formatRoutes:()=>BX,formatMarkdownContent:()=>BM,formatLocalizedError:()=>lG,formatICU:()=>wW,formatFilePath:()=>o2,formatError:()=>W4,formatDocsAsMarkdown:()=>uz,formatDocsAsJson:()=>cz,formatDocsAsHtml:()=>pz,format:()=>FJ,foldConstants:()=>Yz,flipVertical:()=>LJ,flipHorizontal:()=>OJ,fingerprint:()=>zX,findMatchingEndTag:()=>B$,findMatchingDelimiter:()=>b0,findIfBlocks:()=>T4,findExpressions:()=>gK,findErrorPage:()=>_X,findDirectiveBlocks:()=>X7,findDeadCode:()=>$z,findDeadBranches:()=>$z,findComponentFiles:()=>xX,findCommonDir:()=>CX,filterRequiredFiles:()=>j9,fileExists:()=>t,extractVariables:()=>R0,extractState:()=>fq,extractSlotContent:()=>qB,extractScriptFromTemplate:()=>uZ,extractPlaceholders:()=>iH,extractParenthesizedExpression:()=>l1,extractDominantColor:()=>K8,extractDirectiveParams:()=>dK,extractDirectiveNames:()=>UB,extractContainerContent:()=>b7,extractComponentProps:()=>vz,extractComponentName:()=>hY,extractComponentDescription:()=>fz,extractClassNames:()=>F4,extractBoundProps:()=>dY,extractBalancedExpression:()=>VZ,extractAndScopeStyles:()=>iL,extractAndProcessEvents:()=>bK,evaluateExpression:()=>Y1,evaluateConstant:()=>y6,evaluateAuthExpression:()=>c1,escapeHtml:()=>w0,errorRecovery:()=>U4,errorLogger:()=>m0,ensureTeleportTargets:()=>sU,ensureDocumentShell:()=>B7,enhancedValidationRules:()=>xZ,eliminateDeadCode:()=>Zz,effect:()=>Y6,dprUrls:()=>MJ,docsCommand:()=>pR,disconnectObserver:()=>uJ,devHelpers:()=>C5,detectShell:()=>WX,detectRuntime:()=>U2,detectProjectConfig:()=>F2,detectFormat:()=>Y8,detectBuildMode:()=>wR,derived:()=>Z6,deploy:()=>ej,defineStxConfig:()=>HK,defineStore:()=>nq,defineSiteConfig:()=>WQ,definePlugin:()=>P5,definePageMeta:()=>ZW,defineMiddleware:()=>Tw,defineExpose:()=>Vj,defineEmits:()=>Fj,defineDirective:()=>T0,defineCustomElement:()=>dj,defineConfig:()=>xM,defineClientDirective:()=>jH,defineAsyncComponent:()=>F_,defaultMediaConfig:()=>RE,defaultImageConfig:()=>EH,defaultI18nConfig:()=>h4,defaultHeatmapConfig:()=>aQ,defaultFormClasses:()=>x4,defaultFilters:()=>K5,defaultCspConfig:()=>iF,defaultConfig:()=>a0,default:()=>QI,decodeThumbhash:()=>Q8,cspNonceDirective:()=>sK,cspDirective:()=>nK,crossfadeTransition:()=>nJ,crop:()=>XJ,createVirtualList:()=>R6,createVideoDirective:()=>X4,createVercelHandler:()=>JM,createTypeChecker:()=>lX,createTranslateFilter:()=>fV,createTextEncoderStream:()=>$M,createStxApp:()=>QQ,createStreamingResponse:()=>eR,createStreamRenderer:()=>xT,createStore:()=>$J,createStorageManager:()=>Mw,createServerCookieManager:()=>Rw,createScope:()=>VB,createSSRSuspense:()=>U_,createRouter:()=>n1,createRouteLocation:()=>T7,createRoute:()=>bT,createRef:()=>Gw,createReactive:()=>NB,createProvideContext:()=>Tj,createProject:()=>pM,createProductionBuild:()=>PM,createPlaceholder:()=>D2,createOptimizedBuild:()=>MR,createNetlifyHandler:()=>QM,createNetlifyClient:()=>z9,createMiddlewareContext:()=>M7,createMiddleware:()=>ST,createLazyObserver:()=>dJ,createKeepAliveCache:()=>T_,createKVNamespace:()=>rz,createIslandRegistry:()=>mY,createImgDirective:()=>o9,createImagePlugin:()=>FQ,createImageDirective:()=>R3,createHeatmapAggregator:()=>AO,createFileManifest:()=>q9,createEnvAccessor:()=>sz,createEnhancedError:()=>eG,createEdgeHandler:()=>u7,createEdgeCache:()=>oz,createDetailedErrorMessage:()=>B0,createDenoHandler:()=>XM,createDefaultNetlifyConfig:()=>V2,createCspHeaders:()=>lF,createCookie:()=>KM,createComputed:()=>Kw,createComponentInstance:()=>Qw,createCloudflareHandler:()=>YM,createClientCookieManager:()=>ww,createBuiltinDirectives:()=>OH,createApp:()=>QQ,createAnimationTimeline:()=>jO,cover:()=>GJ,convertToCommonJS:()=>d4,contrast:()=>qJ,contain:()=>QJ,consoleError:()=>tG,configureErrorHandling:()=>sG,config:()=>t0,computed:()=>Kw,composeShellWithPage:()=>S7,componentDirective:()=>Nz,compileTemplate:()=>OX,collectDeployFiles:()=>L2,clearVideoCache:()=>t9,clearTranslationCache:()=>BV,clearSignatureCache:()=>SJ,clearPlaceholderCache:()=>_8,clearOnceStore:()=>XN,clearNonce:()=>hF,clearMiddleware:()=>R7,clearImageCache:()=>w3,clearErrorMessages:()=>cG,clearDevCaches:()=>GU,clearCustomFilters:()=>PQ,clearComponentCache:()=>R$,clearCache:()=>F5,classifyScript:()=>SB,classifyAllScripts:()=>QX,checkTemplateFile:()=>pT,checkTemplate:()=>cT,checkCache:()=>_6,checkAuthAccess:()=>j2,checkA11y:()=>hQ,channel:()=>Oz,cancelPendingLoads:()=>AV,calculateSha1:()=>_3,calculateOptimalWidths:()=>h9,cacheTemplate:()=>B6,buildWebComponents:()=>a8,buildViews:()=>jj,buildUrl:()=>H0,buildStaticSite:()=>GQ,buildRuntimeAsset:()=>qX,buildRouterAsset:()=>jX,buildImageUrl:()=>j1,buildForProduction:()=>cB,buildAuthParams:()=>e7,buildApp:()=>NR,build:()=>yM,broadcastPrivate:()=>jz,broadcastPresence:()=>Hz,broadcast:()=>TX,brightness:()=>zJ,blur:()=>KJ,batchSignUrls:()=>s6,batch:()=>X6,autoFixA11yFile:()=>mQ,autoFixA11yDirectory:()=>XO,autoFixA11y:()=>dQ,auto:()=>NJ,assetTags:()=>jR,applyTransformations:()=>l2,applySlots:()=>jB,applyPropDefaults:()=>DR,applyPreset:()=>wJ,applyHead:()=>GW,applyFilters:()=>x3,apiCspPreset:()=>iK,animationGroupDirective:()=>P9,analyzeVideo:()=>n2,analyzeUsage:()=>RX,analyzeTemplate:()=>kB,analyzeProject:()=>lw,analyzeDirectiveUsage:()=>RX,analyticsDirective:()=>HF,addStore:()=>sM,addPage:()=>nM,addNonceToInlineContent:()=>uF,addLayout:()=>rM,addComponent:()=>iM,abortNavigation:()=>Aw,a11yDirective:()=>k9,VideoProcessorCache:()=>w5,TransitionType:()=>uQ,TransitionEase:()=>cQ,TransitionDirection:()=>pQ,Tokenizer:()=>Y7,TemplateTypeChecker:()=>cX,TEMPLATE_PRESETS:()=>FM,StxValidationError:()=>a2,StxSyntaxError:()=>p8,StxSecurityError:()=>c8,StxRuntimeError:()=>O1,StxFileError:()=>b5,StxError:()=>U$,Show:()=>xj,SPRING_PRESETS:()=>g3,ProductionBuild:()=>u6,Portal:()=>fj,PROJECT_TEMPLATES:()=>uM,PRESETS:()=>i6,MemorySessionStore:()=>mq,MIME_TYPES:()=>g2,MEDIA_DEFAULT_WIDTHS:()=>R1,MEDIA_DEFAULT_FORMATS:()=>u1,ImageProcessorCache:()=>V5,ImageProcessingError:()=>R2,HydrationRuntime:()=>tX,HotReloadServer:()=>SX,HeatmapAggregator:()=>c3,Fragment:()=>$5,For:()=>vj,ErrorLogger:()=>_4,ErrorCodes:()=>o,DeployError:()=>e1,DEFAULT_WIDTHS:()=>_1,DEFAULT_TRANSITION_OPTIONS:()=>w1,DEFAULT_QUALITY:()=>z1,DEFAULT_PLACEHOLDER_OPTIONS:()=>m9,DEFAULT_FORMATS:()=>B1,DEFAULT_DPR_VALUES:()=>f2,ComponentHMRHandler:()=>oX,COMMON_SIZES:()=>o3,BroadcastServer:()=>Fz,Broadcast:()=>Lz,BLUR_UP_CSS:()=>q5});var QI;var M$=D(()=>{H3();E3();q0();P$();sq();aZ();YQ();hj();mj();XZ();E1();ij();AB();H$();I6();vZ();b9();qZ();v9();h5();C7();FZ();iB();HX();rB();Gz();P6();z6();Az();u0();SZ();yZ();H3();xz();T2();iz();az();X1();HZ();d0();Zq();f9();dZ();p5();Qq();Kq();i4();g9();oZ();I4();b6();k2();U1();_q();wX();zq();y7();Vq();GX();j4();Aq();a4();LX();dX();Tq();Iq();$Z();fY();aY();Dq();bq();_Z();E2();yq();hq();uq();E3();qj();Hj();O7();eZ();ZY();pj();q0();XX();rj();QI={}});M$();export{H9 as writeNetlifyConfig,NX as writeManifest,wQ as writeImageManifest,$E as wrapComponentForHMR,e8 as webComponentDirectiveHandler,AJ as watermark,ME as watchViews,Uw as watchMultiple,_w as watchEffect,Ww as watch,bw as waitForStore,VV as waitForLocale,s2 as videoDirective,B4 as validators,jW as validateValueEnhanced,QB as validateTemplate,TJ as validateParams,UV as validateFormEnhanced,Z3 as validateFile,KV as validateFields,zW as validateField,KB as validateDirective,cF as validateCspDirectives,OK as validateConfig,RR as validateComponentScripts,IR as validateComponentProps,A6 as validateClientScript,b2 as usesSignalsInScript,PY as useVirtualList,YW as useTitle,Sw as useStoreOrThrow,iq as useStore,Rj as useSlots,J7 as useSeoMeta,RB as useRouteParams,Cw as useRouteParamOrThrow,MB as useRouteParam,YW as usePageTitle,yw as useMiddlewareValue,TB as useMiddlewareState,Sq as useLoadingIndicator,j$ as useHead,Mj as useAttrs,oJ as uploadFiles,Y3 as uploadFile,Fw as updateInstance,G6 as untrack,qH as unregisterDirective,Vw as unmountInstance,I9 as unescapeHtml,Y$ as transpileTypeScript,C9 as transitionDirective,qz as toUsers,zz as toUser,JJ as thumbnail,Y9 as thumbHashToRGBA,lJ as thumbHashToDataURL,QY as templateCache,bX as stxClientHelpers,q4 as structuredDataDirective,n$ as stripDocumentWrapper,ZM as stringToStream,cK as strictCspPreset,Rq as streamingSuspenseDirective,gT as streamToResponse,PT as streamTemplateSimple,yT as streamTemplate,G2 as stopHmrServer,_z as stopBroadcasting,$6 as state,hM as startProductionServer,EM as startInteractive,Uz as startBroadcasting,iQ as staggerDirective,RJ as srcsetUrls,nQ as springDirective,M4 as splitByPipe,DJ as smartBatchSign,n6 as signUrl,Z$ as shouldTranspileTypeScript,f7 as shouldReloadOnChange,a6 as shouldRefreshSignature,g7 as shouldIgnoreFile,E_ as shouldCacheComponent,WJ as sharpen,fw as setRouteParams,gw as setMiddlewareState,Q3 as setGlobalProvide,mG as setErrorLocale,Xw as setCurrentInstance,M5 as setCachedVideoResult,A5 as setCachedImageResult,L5 as setCached,kz as serveStxFile,bz as serveMultipleStxFiles,d6 as serveMarkdownFile,kT as serveFile,yz as serveApp,Nq as serve,Pq as serializeState,_J as sepia,y9 as scrollAnimateDirective,S9 as screenReaderDirective,_K as scopeHTML,UK as scopeCSS,xL as scanForSitemapEntries,ZO as scanA11yIssues,jJ as saturation,EJ as sanitizeParams,XK as sanitizeFilePath,JK as sanitizeExpression,QK as sanitizeDirectiveParams,t2 as sanitizeDirectiveParam,i8 as sanitizeComponentProps,M1 as safeExecuteAsync,$K as safeExecute,sZ as runPreProcessingMiddleware,rZ as runPostProcessingMiddleware,D7 as runMiddleware,i$ as runHooks,HJ as rotate,e2 as resolveTemplatePath,YJ as resize,S3 as resetPlaceholders,$W as resetHead,YE as resetHMRHandler,rG as resetErrorConfig,E9 as replacePlaceholders,ZQ as renderView,k5 as renderVideoComponent,e$ as renderToString,Pj as renderToStream,H2 as renderToDOM,cJ as renderThumbhashToCanvas,hE as renderTemplate,dE as renderString,ZX as renderSlot,__ as renderSSRSuspense,PJ as renderProtectedVideo,yJ as renderProtectedImg,IJ as renderMediaUpload,K$ as renderImgComponent,BQ as renderImageComponent,JW as renderHtmlAttrs,XW as renderHead,TE as renderEmail,D1 as renderComponentWithSlot,QW as renderBodyAttrs,KE as render,lK as relaxedCspPreset,GV as registerValidationRule,vT as registerStreamingDirectives,xw as registerStore,yL as registerSeoDirectives,kw as registerMiddleware,yQ as registerFilters,C3 as registerFilter,pG as registerErrorMessages,WV as registerEnhancedValidationRule,jQ as registerDirective,pF as registerCspDirectives,SR as registerComponentDirectives,FO as registerAnimationDirectives,JO as registerA11yDirectives,Gw as ref,UM as redirect,p1 as readMarkdownFile,ZU as readFileCached,NB as reactive,VJ as quality,bJ as pruneSignatureCache,UG as pruneCache,Oj as provide,tZ as processVueTemplate,M6 as processVirtualListDirectives,vY as processVirtualGridDirectives,Y4 as processVideo,qW as processValidateDirective,hZ as processTranslateDirective,Z_ as processTransitionDirectives,J_ as processTransitionAttributes,WW as processTitleDirective,UZ as processTemplateBindings,nU as processTeleportDirectives,W_ as processSuspenseDirectives,s8 as processStructuredData,rY as processStaticDirectives,r4 as processStackReplacements,s4 as processStackPushDirectives,YX as processSlots,k6 as processShell,o4 as processServerBindings,r8 as processSeoDirective,fT as processSectionDirectives,_7 as processScopedStyles,MK as processReactiveBindings,xJ as processProtectedMedia,uY as processPartialHydrationDirectives,N6 as processOnceDirective,nZ as processMiddleware,n8 as processMetaDirectives,UW as processMetaDirective,LZ as processMarkdownFileDirectives,l3 as processMarkdownDirectives,l4 as processLoops,M_ as processKeepAliveDirectives,V6 as processJsonDirective,xY as processInfiniteListDirectives,n4 as processIncludes,T8 as processImgComponents,zQ as processImageComponents,h1 as processImage,KW as processHeadDirective,QV as processForms,v4 as processFormInputDirectives,q1 as processExpressions,jZ as processEventDirectives,f4 as processErrorDirective,$Y as processDynamicComponents,Z0 as processDirectives,FH as processDirectiveAttributes,cU as processDeferDirectives,CZ as processCustomDirectives,kZ as processCspDirectives,v$ as processClientScript,u5 as processBasicFormDirectives,L_ as processAsyncDirectives,h3 as processAnimationDirectives,f3 as processA11yDirectives,LV as preloadTranslationsBackground,FW as preloadTranslations,nT as preloadIslandHandlers,Jz as poolStrings,YZ as pluginManager,$_ as performLeave,eU as performEnter,K6 as peek,F$ as partialsCache,xG as parseVideoDirectiveOptions,ZJ as parseUrl,iJ as parseThumbhashString,E4 as parseSwitchBlock,$X as parseSlots,BB as parseSlotElement,mK as parseScriptDeclarations,BK as parseSFCComponent,vJ as parseProtectedArgs,r9 as parseImgComponent,a3 as parseImageUrl,V3 as parseImageComponent,hK as parseExpressionWithFilters,GM as parseCookies,NZ as parseConditionalBlock,AZ as parseArguments,OO as parseAnimationShorthand,Qz as optimizeTemplate,M3 as optimizeImage,AQ as optimizeDirectory,lZ as onceStore,jw as onUpdated,Ow as onUnmounted,dw as onServer,zw as onMounted,J6 as onMount,sY as onHydrated,Aj as onErrorCaptured,Q6 as onDestroy,S_ as onDeactivated,hw as onClient,qw as onBeforeUpdate,Hw as onBeforeUnmount,Bw as onBeforeMount,k_ as onActivated,mJ as observeElement,_M as notFound,Nj as nextTick,Dw as navigateTo,Lw as mountInstance,x9 as motionDirective,k4 as moderateCspPreset,Xz as minifyHtml,z4 as metaDirective,l6 as mergeParams,mF as mergeCspDirectives,S6 as matchRoute,i3 as markdownDirectiveHandler,R4 as markdownCache,K7 as loadTranslationLazy,AW as loadTranslation,S0 as loadStxConfig,I7 as loadMiddlewareFromDirectory,AX as loadManifest,a1 as loadElement,Bz as loadChannels,hJ as lazyLoadAll,gJ as lazyLoad,lQ as keyframeDirective,bj as jsxs,Cj as jsxDEV,Z5 as jsx,WM as jsonResponse,Mq as islandDirective,TL as isTest,UX as isSpaNavigation,r6 as isSignatureValid,q7 as isSignal,g1 as isSharpAvailable,lR as isServerEnvironment,EB as isServer,iG as isProduction,t6 as isNativeLazySupported,HV as isLoading,OV as isLoaded,OB as isJavaScriptScript,e6 as isIntersectionObserverSupported,N9 as isImageFile,MW as isICUFormat,nY as isHydrated,cR as isEdgeEnvironment,nj as isDirectiveKind,W$ as isDevelopment,j7 as isDerived,v7 as isCssOnlyChange,IB as isClient,V_ as isAsyncComponent,BJ as invert,XU as invalidateFileCacheByDir,YU as invalidateFileCache,xQ as interpolateScriptsInTemplate,P3 as interpolateScriptExpressions,$0 as inlineError,_9 as injectThemeBootstrap,o8 as injectSeoTags,G9 as injectSeo,U9 as injectRouterScript,y1 as injectHotReload,u3 as injectHeatmap,DZ as injectCspMetaTag,V0 as injectCrosswindCSS,zZ as injectAnalytics,Lj as inject,Pw as initStoreRegistry,$H as initNetlify,aT as initLoadingIndicator,fJ as initLazyLoading,VM as initFile,$3 as initBlurUp,sJ as initAllBlurUp,i2 as imgDirective,OQ as imageDirective,hX as hydrateTemplate,iT as hydrateIslands,cY as hydrateIsland,vM as hydrateFragment,lY as hydrateByStrategy,iY as hydrateAll,QE as hydrate,DT as htmlResponse,p3 as heatmapDirective,u9 as hashString,i5 as hashFilePath,v0 as hashFile,XG as hashBuffer,rW as hasVueTemplateSyntax,pZ as hasVariables,cq as hasStore,G5 as hasPlaceholders,O9 as hasNetlifyConfig,Iw as hasMiddleware,AF as hasEventDirectives,$U as hasDocumentShell,WB as hasDirectives,gQ as hasDOMSupport,wj as handleError,gj as h,w2 as groupVariantsByFormat,UJ as grayscale,dM as gitHash,tB as getUnusedDirectives,VW as getTranslationSync,zV as getTranslationCacheStats,FV as getTranslationAsync,g4 as getTranslation,t1 as getTotalSize,o6 as getTimeUntilExpiry,lq as getStoreNames,eX as getStore,JX as getSourceLineInfo,eH as getScreenReaderOnlyStyle,lL as getScopeAttribute,aw as getRouteParams,K1 as getPublicEnvDefine,TQ as getPublicEnv,GB as getPositionInfo,b3 as getPlaceholderRegistry,B8 as getPlaceholderCacheStats,C4 as getPageMeta,z$ as getNonce,d1 as getMimeType,E7 as getMiddlewareNames,Ew as getMiddleware,jV as getLoadingState,NV as getLoadingLocales,V9 as getImageMetadata,gq as getHydrationRuntime,vw as getHydratedStoreState,h7 as getHmrServer,m5 as getHead,ZE as getHMRHandler,Z8 as getFormatExtension,p2 as getFileMtime,A2 as getFallbackVariant,u8 as getErrorMessage,uG as getErrorLocale,r2 as getErrorConfig,Q4 as getErrorCodeName,zH as getDirectives,BH as getDirective,Jw as getCurrentInstance,dF as getCspPreset,rK as getCspHeaderName,Yw as getComponentCacheStats,R5 as getCachedVideoResult,kJ as getCachedSignature,JU as getCachedSignalsRuntime,QU as getCachedRouterScript,u2 as getCachedPlaceholder,N5 as getCachedImageResult,O5 as getCached,WG as getCacheStats,Wz as getBroadcastServer,$8 as getBestVariant,y3 as getAllFilters,J$ as generateWidthSrcset,yY as generateVirtualListCSS,tJ as generateVideoPreview,_V as generateValidationScript,Q9 as generateUploadRuntime,eB as generateTreeShakenBundle,X_ as generateTransitionRuntime,Y_ as generateTransitionCSS,E5 as generateThumbnails,J8 as generateThumbhashPlaceholder,dz as generateTemplatesDocs,z_ as generateSuspenseRuntime,B_ as generateSuspenseCSS,vq as generateStateScript,t3 as generateSrcsetData,i9 as generateSrcset,J5 as generateSrcSet,$4 as generateSpriteSheet,bE as generateSpaShell,e3 as generateSourceTags,r3 as generateSizesFromBreakpoints,B5 as generateSizesAttribute,N2 as generateSizes,PL as generateSitemapIndex,K9 as generateSitemap,Jj as generateSimpleMediaPicker,$9 as generateSignatureRuntime,m$ as generateSignalsRuntimeDev,H7 as generateSignalsRuntime,H4 as generateScopeId,zK as generateSFCWebComponent,ew as generateRouteTypes,tw as generateRouteManifest,WK as generateRobotsTxt,W9 as generateRobots,l9 as generateResponsiveVariants,sL as generateReactiveWebComponentTS,nL as generateReactiveWebComponent,oL as generateReactiveRuntime,rL as generateReactiveMixin,T5 as generatePoster,U8 as generatePlaceholderStyle,m2 as generatePlaceholderCSS,d2 as generatePlaceholder,pY as generatePartialHydrationCSS,EZ as generateNonce,B3 as generateNetlifyToml,_j as generateMinifiedMediaRuntime,$Q as generateMediaRuntime,Xj as generateMediaManagerEmbed,VX as generateManifest,tT as generateLoadingIndicatorHtml,Z9 as generateLazyLoadRuntime,G8 as generateLQIP,D_ as generateKeepAliveRuntime,I_ as generateKeepAliveCSS,oY as generateIslandManifest,aJ as generateImagePreview,T3 as generateImageManifest,JE as generateHydrationScript,hT as generateHydrationRuntime,GE as generateHydrationCSS,gY as generateHydrationBootstrap,Dz as generateHotReloadScript,m3 as generateHeatmapScript,eT as generateHMRClientScript,I5 as generateHLSManifest,XE as generateEventBindings,s3 as generateDprSrcsetWithVariableQuality,_5 as generateDprSrcset,eW as generateDocumentShell,lz as generateDocs,mz as generateDirectivesDocs,LH as generateDirectiveRuntime,vL as generateDefaultRobotsTxt,D5 as generateDASHManifest,S4 as generateCspMetaTag,IZ as generateCspHeader,V4 as generateCrosswindCSS,Ej as generateCompositionRuntime,hz as generateComponentsDocs,AA as generateComponentManifest,gz as generateComponentDoc,W8 as generateColorPlaceholder,Nw as generateClientRuntime,j5 as generateCacheKey,X9 as generateBlurUpRuntime,J9 as generateBlurUpCSS,TK as generateBindingsRuntime,n3 as generateAutoWidthSrcset,A_ as generateAsyncComponentRuntime,N_ as generateAsyncComponentCSS,LO as generateAnimationRuntime,HO as generateAnimationCSS,BZ as generateAnalyticsScript,lT as formatTypeErrors,$q as formatStxContent,y$ as formatSize,BX as formatRoutes,BM as formatMarkdownContent,lG as formatLocalizedError,wW as formatICU,o2 as formatFilePath,W4 as formatError,uz as formatDocsAsMarkdown,cz as formatDocsAsJson,pz as formatDocsAsHtml,FJ as format,Yz as foldConstants,LJ as flipVertical,OJ as flipHorizontal,zX as fingerprint,B$ as findMatchingEndTag,b0 as findMatchingDelimiter,T4 as findIfBlocks,gK as findExpressions,_X as findErrorPage,X7 as findDirectiveBlocks,$z as findDeadCode,$z as findDeadBranches,xX as findComponentFiles,CX as findCommonDir,j9 as filterRequiredFiles,t as fileExists,R0 as extractVariables,fq as extractState,qB as extractSlotContent,uZ as extractScriptFromTemplate,iH as extractPlaceholders,l1 as extractParenthesizedExpression,K8 as extractDominantColor,dK as extractDirectiveParams,UB as extractDirectiveNames,b7 as extractContainerContent,vz as extractComponentProps,hY as extractComponentName,fz as extractComponentDescription,F4 as extractClassNames,dY as extractBoundProps,VZ as extractBalancedExpression,iL as extractAndScopeStyles,bK as extractAndProcessEvents,Y1 as evaluateExpression,y6 as evaluateConstant,c1 as evaluateAuthExpression,w0 as escapeHtml,U4 as errorRecovery,m0 as errorLogger,sU as ensureTeleportTargets,B7 as ensureDocumentShell,xZ as enhancedValidationRules,Zz as eliminateDeadCode,Y6 as effect,MJ as dprUrls,pR as docsCommand,uJ as disconnectObserver,C5 as devHelpers,WX as detectShell,U2 as detectRuntime,F2 as detectProjectConfig,Y8 as detectFormat,wR as detectBuildMode,Z6 as derived,ej as deploy,HK as defineStxConfig,nq as defineStore,WQ as defineSiteConfig,P5 as definePlugin,ZW as definePageMeta,Tw as defineMiddleware,Vj as defineExpose,Fj as defineEmits,T0 as defineDirective,dj as defineCustomElement,xM as defineConfig,jH as defineClientDirective,F_ as defineAsyncComponent,RE as defaultMediaConfig,EH as defaultImageConfig,h4 as defaultI18nConfig,aQ as defaultHeatmapConfig,x4 as defaultFormClasses,K5 as defaultFilters,iF as defaultCspConfig,a0 as defaultConfig,QI as default,Q8 as decodeThumbhash,sK as cspNonceDirective,nK as cspDirective,nJ as crossfadeTransition,XJ as crop,R6 as createVirtualList,X4 as createVideoDirective,JM as createVercelHandler,lX as createTypeChecker,fV as createTranslateFilter,$M as createTextEncoderStream,QQ as createStxApp,eR as createStreamingResponse,xT as createStreamRenderer,$J as createStore,Mw as createStorageManager,Rw as createServerCookieManager,VB as createScope,U_ as createSSRSuspense,n1 as createRouter,T7 as createRouteLocation,bT as createRoute,Gw as createRef,NB as createReactive,Tj as createProvideContext,pM as createProject,PM as createProductionBuild,D2 as createPlaceholder,MR as createOptimizedBuild,QM as createNetlifyHandler,z9 as createNetlifyClient,M7 as createMiddlewareContext,ST as createMiddleware,dJ as createLazyObserver,T_ as createKeepAliveCache,rz as createKVNamespace,mY as createIslandRegistry,o9 as createImgDirective,FQ as createImagePlugin,R3 as createImageDirective,AO as createHeatmapAggregator,q9 as createFileManifest,sz as createEnvAccessor,eG as createEnhancedError,u7 as createEdgeHandler,oz as createEdgeCache,B0 as createDetailedErrorMessage,XM as createDenoHandler,V2 as createDefaultNetlifyConfig,lF as createCspHeaders,KM as createCookie,Kw as createComputed,Qw as createComponentInstance,YM as createCloudflareHandler,ww as createClientCookieManager,OH as createBuiltinDirectives,QQ as createApp,jO as createAnimationTimeline,GJ as cover,d4 as convertToCommonJS,qJ as contrast,QJ as contain,tG as consoleError,sG as configureErrorHandling,t0 as config,Kw as computed,S7 as composeShellWithPage,Nz as componentDirective,OX as compileTemplate,L2 as collectDeployFiles,t9 as clearVideoCache,BV as clearTranslationCache,SJ as clearSignatureCache,_8 as clearPlaceholderCache,XN as clearOnceStore,hF as clearNonce,R7 as clearMiddleware,w3 as clearImageCache,cG as clearErrorMessages,GU as clearDevCaches,PQ as clearCustomFilters,R$ as clearComponentCache,F5 as clearCache,SB as classifyScript,QX as classifyAllScripts,pT as checkTemplateFile,cT as checkTemplate,_6 as checkCache,j2 as checkAuthAccess,hQ as checkA11y,Oz as channel,AV as cancelPendingLoads,_3 as calculateSha1,h9 as calculateOptimalWidths,B6 as cacheTemplate,a8 as buildWebComponents,jj as buildViews,H0 as buildUrl,GQ as buildStaticSite,qX as buildRuntimeAsset,jX as buildRouterAsset,j1 as buildImageUrl,cB as buildForProduction,e7 as buildAuthParams,NR as buildApp,yM as build,jz as broadcastPrivate,Hz as broadcastPresence,TX as broadcast,zJ as brightness,KJ as blur,s6 as batchSignUrls,X6 as batch,mQ as autoFixA11yFile,XO as autoFixA11yDirectory,dQ as autoFixA11y,NJ as auto,jR as assetTags,l2 as applyTransformations,jB as applySlots,DR as applyPropDefaults,wJ as applyPreset,GW as applyHead,x3 as applyFilters,iK as apiCspPreset,P9 as animationGroupDirective,n2 as analyzeVideo,RX as analyzeUsage,kB as analyzeTemplate,lw as analyzeProject,RX as analyzeDirectiveUsage,HF as analyticsDirective,sM as addStore,nM as addPage,uF as addNonceToInlineContent,rM as addLayout,iM as addComponent,Aw as abortNavigation,k9 as a11yDirective,w5 as VideoProcessorCache,uQ as TransitionType,cQ as TransitionEase,pQ as TransitionDirection,Y7 as Tokenizer,cX as TemplateTypeChecker,FM as TEMPLATE_PRESETS,a2 as StxValidationError,p8 as StxSyntaxError,c8 as StxSecurityError,O1 as StxRuntimeError,b5 as StxFileError,U$ as StxError,xj as Show,g3 as SPRING_PRESETS,u6 as ProductionBuild,fj as Portal,uM as PROJECT_TEMPLATES,i6 as PRESETS,mq as MemorySessionStore,g2 as MIME_TYPES,R1 as MEDIA_DEFAULT_WIDTHS,u1 as MEDIA_DEFAULT_FORMATS,V5 as ImageProcessorCache,R2 as ImageProcessingError,tX as HydrationRuntime,SX as HotReloadServer,c3 as HeatmapAggregator,$5 as Fragment,vj as For,_4 as ErrorLogger,o as ErrorCodes,e1 as DeployError,_1 as DEFAULT_WIDTHS,w1 as DEFAULT_TRANSITION_OPTIONS,z1 as DEFAULT_QUALITY,m9 as DEFAULT_PLACEHOLDER_OPTIONS,B1 as DEFAULT_FORMATS,f2 as DEFAULT_DPR_VALUES,oX as ComponentHMRHandler,o3 as COMMON_SIZES,Fz as BroadcastServer,Lz as Broadcast,q5 as BLUR_UP_CSS};