@stacksjs/stx 0.2.45 → 0.2.46
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.
- package/dist/cli.js +576 -549
- package/dist/index.d.ts +1 -1
- package/dist/index.js +649 -622
- package/dist/pwa.js +312 -285
- package/dist/ssg.js +302 -275
- package/package.json +3 -3
package/dist/ssg.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
2
|
+
var GY=Object.defineProperty;var KY=($)=>$;function qY($,Z){this[$]=KY.bind(null,Z)}var r=($,Z)=>{for(var J in Z)GY($,J,{get:Z[J],enumerable:!0,configurable:!0,set:qY.bind(Z,J)})};var C=($,Z)=>()=>($&&(Z=$($=0)),Z);var Y0=import.meta.require;var W0;var K7=C(()=>{W0={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"}});function q7($,Z,J,Y){let Q=$;Q=Q.replace(/@a11y\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(G,K,q)=>{let W={"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: ${q||W} -->`});let X=/@screenReader\(([^@]*)\)@endScreenReader/g;return Q=Q.replace(X,(G,K)=>{return`<span class="sr-only">${K.trim()}</span>`}),Q=Q.replace(/@ariaDescribe\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*\)/g,(G,K,q)=>{return`<span id="${`desc-${K}`}" class="sr-only">${q}</span>`}),Q}var W7,z7;var v9=C(()=>{W7={name:"a11y",handler:($,Z,J,Y)=>{if(!Z.length)return $;let Q=Z[0].replace(/['"]/g,""),X=Z.length>1?Z[1].replace(/['"]/g,""):"",K={"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"}[Q]||"Make this element accessible";return`<!-- a11y-hint: ${X||K} -->${$}`},hasEndTag:!1},z7={name:"screenReader",handler:($)=>{return`<span class="sr-only">${$}</span>`},hasEndTag:!0}});function zY($,Z={}){let{duration:J,delay:Y,ease:Q,direction:X,custom:G}={...l0,...Z};if($==="custom"&&G)return G;switch($){case"fade":return`${X==="in"?"opacity: 0; animation: fadeIn var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":X==="out"?"opacity: 1; animation: fadeOut var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":"opacity: 1; transition: opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);"}
|
|
3
3
|
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
|
|
4
4
|
@keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } }`;case"slide":return`${X==="in"?"transform: translateY(20px); opacity: 0; animation: slideIn var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":X==="out"?"transform: translateY(0); opacity: 1; animation: slideOut var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":"transform: translateY(0); opacity: 1; transition: transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms), opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);"}
|
|
5
5
|
@keyframes slideIn { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
|
|
@@ -9,7 +9,7 @@ var XY=Object.defineProperty;var QY=($)=>$;function GY($,Z){this[$]=QY.bind(null
|
|
|
9
9
|
@keyframes flipIn { from { transform: perspective(400px) rotateX(-90deg); opacity: 0; } to { transform: perspective(400px) rotateX(0); opacity: 1; } }
|
|
10
10
|
@keyframes flipOut { from { transform: perspective(400px) rotateX(0); opacity: 1; } to { transform: perspective(400px) rotateX(90deg); opacity: 0; } }`;case"rotate":return`${X==="in"?"transform: rotate(-90deg); opacity: 0; animation: rotateIn var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":X==="out"?"transform: rotate(0); opacity: 1; animation: rotateOut var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":"transform: rotate(0); opacity: 1; transition: transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms), opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);"}
|
|
11
11
|
@keyframes rotateIn { from { transform: rotate(-90deg); opacity: 0; } to { transform: rotate(0); opacity: 1; } }
|
|
12
|
-
@keyframes rotateOut { from { transform: rotate(0); opacity: 1; } to { transform: rotate(90deg); opacity: 0; } }`;default:return""}}function
|
|
12
|
+
@keyframes rotateOut { from { transform: rotate(0); opacity: 1; } to { transform: rotate(90deg); opacity: 0; } }`;default:return""}}function UY(){return`
|
|
13
13
|
<script data-stx-scoped>
|
|
14
14
|
// Motion preferences handling
|
|
15
15
|
(function() {
|
|
@@ -37,7 +37,7 @@ else {
|
|
|
37
37
|
});
|
|
38
38
|
})();
|
|
39
39
|
</script>
|
|
40
|
-
`}function
|
|
40
|
+
`}function _Y($){return[/@animate\b/,/@transition\b/,/@scroll(?:Animate)?\b/,/@staggered\b/,/@sequence\b/,/@motion\b/,/@animationGroup\b/,/\bstx-transition\b/,/\bstx-(?:fade|scale|flip|rotate|slide|from-|observe)\b/,/data-animate=['"](?:auto|true|false)['"]/].some((J)=>J.test($))}function BY($=0.1,Z="0px"){return`
|
|
41
41
|
<script data-stx-scoped>
|
|
42
42
|
// Intersection Observer for scroll animations
|
|
43
43
|
(function() {
|
|
@@ -80,7 +80,7 @@ else {
|
|
|
80
80
|
}
|
|
81
81
|
})();
|
|
82
82
|
</script>
|
|
83
|
-
`}function
|
|
83
|
+
`}function jY(){return`
|
|
84
84
|
<style id="stx-animation-base">
|
|
85
85
|
:root {
|
|
86
86
|
--stx-transition-duration: 300ms;
|
|
@@ -195,7 +195,7 @@ else {
|
|
|
195
195
|
transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);
|
|
196
196
|
}
|
|
197
197
|
</style>
|
|
198
|
-
`}function
|
|
198
|
+
`}function OY($,Z,J={}){let{staggerDelay:Y=50,sequence:Q=!1}=J;return`
|
|
199
199
|
<script data-stx-scoped>
|
|
200
200
|
// Animation Group: ${$}
|
|
201
201
|
(function() {
|
|
@@ -232,11 +232,11 @@ else {
|
|
|
232
232
|
}
|
|
233
233
|
})();
|
|
234
234
|
</script>
|
|
235
|
-
`}function
|
|
236
|
-
</head>`)}if(Q.includes("stx-observe")){if(!Q.includes("Intersection Observer for scroll animations")){let q=
|
|
237
|
-
`+Q.slice(z)}}return Q}var
|
|
238
|
-
style="--stx-transition-duration: ${X}ms; --stx-transition-ease: ${G}; --stx-transition-delay: ${K}ms;">${$}</div>`},hasEndTag:!0,description:"Applies transition effects to an element"},
|
|
239
|
-
${q}`},hasEndTag:!1,description:"Coordinates multiple animations together as a group"},
|
|
235
|
+
`}function O7($,Z,J,Y){let Q=$;if(Y.animation?.enabled===!1)return Q;let X=J.includes("test")&&J.includes("animation");if(!_Y(Q)&&!X)return Q;if(!Q.includes('<style id="stx-animation-base">')){let K=jY();Q=Q.replace("</head>",`${K}
|
|
236
|
+
</head>`)}if(Q.includes("stx-observe")){if(!Q.includes("Intersection Observer for scroll animations")){let q=BY(),z=Q.lastIndexOf("</body>");if(z!==-1)Q=Q.slice(0,z)+q+`
|
|
237
|
+
`+Q.slice(z)}}return Q}var l0,U7,_7,B7,j7;var x9=C(()=>{l0={duration:300,delay:0,ease:"ease",direction:"both"};U7={name:"transition",handler:($,Z,J,Y)=>{if(Z.length<1)return`<div class="stx-error">@transition directive requires at least a transition type</div>${$}`;let Q=Z[0],X=Z.length>1?Number.parseInt(Z[1],10)||l0.duration:l0.duration,G=Z.length>2?Z[2]||l0.ease:l0.ease,K=Z.length>3?Number.parseInt(Z[3],10)||l0.delay:l0.delay,q=Z.length>4?Z[4]||l0.direction:l0.direction,z=`stx-transition-${Math.random().toString(36).substr(2,9)}`,W=zY(Q,{duration:X,delay:K,ease:G,direction:q}),U="stx-transition",_="";if(Q==="fade")_="stx-fade";else if(Q==="slide")_="stx-slide";else if(Q==="scale")_="stx-scale";else if(Q==="flip")_="stx-flip";else if(Q==="rotate")_="stx-rotate";return`<div id="${z}" class="${U} ${_} ${q==="out"?"stx-out":""}"
|
|
238
|
+
style="--stx-transition-duration: ${X}ms; --stx-transition-ease: ${G}; --stx-transition-delay: ${K}ms;">${$}</div>`},hasEndTag:!0,description:"Applies transition effects to an element"},_7={name:"scrollAnimate",handler:($,Z,J,Y)=>{if(Z.length<1)return`<div class="stx-error">@scrollAnimate directive requires at least an animation type</div>${$}`;let Q=Z[0],X=Z.length>1?Number.parseInt(Z[1],10)||300:300,G=Z.length>2?Z[2]||"ease":"ease",K=Z.length>3?Number.parseFloat(Z[3])||0.2:0.2,q=Z.length>4?Number.parseInt(Z[4],10)||0:0,z=`stx-scroll-${Math.random().toString(36).substr(2,9)}`,W=`--stx-transition-duration: ${X}ms; --stx-transition-ease: ${G}; --stx-transition-delay: ${q}ms; will-change: opacity, transform;`,U="stx-transition stx-observe stx-out";if(Q==="fade")U+=" stx-fade";else if(Q==="slide-up"||Q==="slide")U+=" stx-from-bottom";else if(Q==="slide-down")U+=" stx-from-top";else if(Q==="slide-left")U+=" stx-from-right";else if(Q==="slide-right")U+=" stx-from-left";else if(Q==="scale")U+=" stx-scale";else if(Q.includes("-"))U+=` stx-${Q}`;else U+=` stx-${Q}`;return`<div id="${z}" class="${U}" style="${W}" data-threshold="${K}">${$}</div>`},hasEndTag:!0,description:"Applies animations that trigger when scrolled into view"},B7={name:"animationGroup",handler:($,Z,J,Y)=>{if(Z.length<2)return`<div class="stx-error">@animationGroup directive requires a group name and at least one element selector</div>${$}`;let Q=Z[0],X=Z.slice(1).map((z)=>z.startsWith("#")||z.startsWith(".")?z:`#${z}`),G=J.staggerDelay||50,K=J.sequence||!0,q=OY(Q,X,{staggerDelay:G,sequence:K});return`${$}
|
|
239
|
+
${q}`},hasEndTag:!1,description:"Coordinates multiple animations together as a group"},j7={name:"motion",handler:($,Z,J,Y)=>{let Q=Z.length>0?Z[0].toLowerCase()==="true":!0,X=UY();return`<div data-animate="${Q?"auto":"true"}">${$}</div>${X}`},hasEndTag:!0,description:"Controls motion and animation preferences"}});import{getRouterScript as H7}from"stx-router";var L7=C(()=>{f9()});async function HY($,Z,J,Y){let Q=Z[0]?.replace(/['"]/g,"")||"main",X=H7();if(Q!=="main")X=X.replace("container:'main'",`container:'${Q}'`);return`<script data-stx-router>${X}</script>`}var F7;var f9=C(()=>{L7();F7={name:"stxRouter",handler:HY,hasEndTag:!1,description:"Inject the STX SPA router script for client-side navigation"}});function V7($){let Z=$.heatmap;if(!Z?.enabled)return"";let J={...LY,...Z};return`
|
|
240
240
|
<!-- stx Heatmap - Privacy-Compliant Tracking -->
|
|
241
241
|
<script>
|
|
242
242
|
(function() {
|
|
@@ -619,10 +619,10 @@ else {
|
|
|
619
619
|
};
|
|
620
620
|
})();
|
|
621
621
|
</script>
|
|
622
|
-
`}function
|
|
623
|
-
`)){let K=G.trim();if(!K||K.startsWith("#"))continue;let q=K.indexOf(":");if(q===-1)continue;let z=K.slice(0,q).trim(),W=K.slice(q+1).trim();if(typeof W==="string"){if(W.startsWith('"')&&W.endsWith('"')||W.startsWith("'")&&W.endsWith("'"))W=W.slice(1,-1);else if(W.startsWith("[")&&W.endsWith("]"))try{W=JSON.parse(W)}catch{}else if(W==="true")W=!0;else if(W==="false")W=!1;else if(/^-?\d+(?:\.\d+)?$/.test(W))W=Number(W)}X[z]=W}return{data:X,content:Q.trim()}}function
|
|
624
|
-
`),Q=Q.replace(/^[*\-+]\s+(.*)$/gm,"<li data-ul>$1</li>"),Q=Q.replace(/(<li data-ul>.*<\/li>\n?)+/g,"<ul>$&</ul>"),Q=Q.replace(/<\/ul>\n<ul>/g,""),Q=Q.replace(/^\d+\.\s+(.*)$/gm,"<li data-ol>$1</li>"),Q=Q.replace(/(<li data-ol>.*<\/li>\n?)+/g,"<ol>$&</ol>"),Q=Q.replace(/<\/ol>\n<ol>/g,""),Q=Q.replace(/<li data-ul>/g,"<li>"),Q=Q.replace(/<li data-ol>/g,"<li>"),J)Q=Q.replace(/^\|(.+)\|\s*\n\|[-:\s|]+\|\s*\n((?:\|.+\|\s*\n)*)/gm,(W,U,_)=>{let B=`<tr>${U.split("|").map((F)=>F.trim()).filter(Boolean).map((F)=>`<th>${
|
|
625
|
-
`).map((F)=>{return`<tr>${F.split("|").map((H)=>H.trim()).filter(Boolean).map((H)=>`<td>${
|
|
622
|
+
`}function w7($,Z){let J=V7(Z);if(!J)return $;let Y=$.lastIndexOf("</body>");if(Y!==-1)return $.slice(0,Y)+J+$.slice(Y);return $+J}function FY($){let Z={},J=$.match(/(\w+)=["']?([^"'\s]+)["']?/g)||[];for(let Y of J){let[Q,X]=Y.split("="),G=X?.replace(/["']/g,"");switch(Q){case"endpoint":Z.endpoint=G;break;case"samplingRate":Z.samplingRate=Number.parseInt(G,10);break;case"batchSize":Z.batchSize=Number.parseInt(G,10);break;case"trackMouse":Z.trackMouse=G==="true";break;case"trackClicks":Z.trackClicks=G==="true";break;case"trackScroll":Z.trackScroll=G==="true";break;case"honorDnt":Z.honorDnt=G==="true";break;case"debugOverlay":Z.debugOverlay=G==="true";break}}return Z}var LY,A7;var g9=C(()=>{LY={enabled:!1,trackMouse:!0,trackClicks:!0,trackScroll:!0,samplingRate:100,honorDnt:!0,batchSize:50,maxDataPoints:1000,sessionTimeout:30,persistData:!1,storagePrefix:"stx_heatmap",captureAttributes:["data-heatmap-id","data-track"],ignoreSelectors:["[data-heatmap-ignore]",".heatmap-ignore"],debugOverlay:!1};A7={name:"heatmap",hasEndTag:!1,description:"Inject privacy-compliant heatmap tracking script",handler:async($,Z,J,Y)=>{let Q=J.__stx_config||{};if(Z.length>0){let X=FY(Z.join(" "));Q.heatmap={...Q.heatmap,...X,enabled:!0}}return V7(Q)}}});function s0($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function N7($){let Z=$.trim().toLowerCase();return!Z.startsWith("javascript:")&&!Z.startsWith("vbscript:")&&!Z.startsWith("data:text/html")}function R7($){let Z=/^---\r?\n([\s\S]*?)\r?\n---\r?\n/,J=$.match(Z);if(!J)return{data:{},content:$.trim()};let Y=J[1],Q=$.slice(J[0].length),X={};for(let G of Y.split(`
|
|
623
|
+
`)){let K=G.trim();if(!K||K.startsWith("#"))continue;let q=K.indexOf(":");if(q===-1)continue;let z=K.slice(0,q).trim(),W=K.slice(q+1).trim();if(typeof W==="string"){if(W.startsWith('"')&&W.endsWith('"')||W.startsWith("'")&&W.endsWith("'"))W=W.slice(1,-1);else if(W.startsWith("[")&&W.endsWith("]"))try{W=JSON.parse(W)}catch{}else if(W==="true")W=!0;else if(W==="false")W=!1;else if(/^-?\d+(?:\.\d+)?$/.test(W))W=Number(W)}X[z]=W}return{data:X,content:Q.trim()}}function n1($,Z={}){let{gfm:J=!0,breaks:Y=!1}=Z,Q=$,X=[];if(Q=Q.replace(/```(\w*)\n([\s\S]*?)```/g,(W,U,_)=>{let j=X.length,B=U?` class="language-${s0(U)}"`:"";return X.push(`<pre><code${B}>${s0(_.trim())}</code></pre>`),`\x00CODEBLOCK${j}\x00`}),Q=Q.replace(/`([^`]*)`/g,(W,U)=>`<code>${s0(U)}</code>`),Q=Q.replace(/^######\s+(.*)$/gm,"<h6>$1</h6>"),Q=Q.replace(/^#####\s+(.*)$/gm,"<h5>$1</h5>"),Q=Q.replace(/^####\s+(.*)$/gm,"<h4>$1</h4>"),Q=Q.replace(/^###\s+(.*)$/gm,"<h3>$1</h3>"),Q=Q.replace(/^##\s+(.*)$/gm,"<h2>$1</h2>"),Q=Q.replace(/^#\s+(.*)$/gm,"<h1>$1</h1>"),Q=Q.replace(/\*\*\*(.+?)\*\*\*/g,"<strong><em>$1</em></strong>"),Q=Q.replace(/___(.+?)___/g,"<strong><em>$1</em></strong>"),Q=Q.replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>"),Q=Q.replace(/__(.+?)__/g,"<strong>$1</strong>"),Q=Q.replace(/\*(.+?)\*/g,"<em>$1</em>"),Q=Q.replace(/(?<![a-zA-Z0-9])_(.+?)_(?![a-zA-Z0-9])/g,"<em>$1</em>"),J)Q=Q.replace(/~~(.+?)~~/g,"<del>$1</del>");if(Q=Q.replace(/!\[([^\]]*)\]\(([^)]+)\)/g,(W,U,_)=>{return`<img src="${N7(_)?s0(_):""}" alt="${s0(U)}" />`}),Q=Q.replace(/\[([^\]]+)\]\(([^)]+)\)/g,(W,U,_)=>{return`<a href="${N7(_)?s0(_):""}">${U}</a>`}),Q=Q.replace(/^(?:---|\*\*\*|___)\s*$/gm,"<hr />"),Q=Q.replace(/^>\s+(.*)$/gm,"<blockquote>$1</blockquote>"),Q=Q.replace(/<\/blockquote>\n<blockquote>/g,`
|
|
624
|
+
`),Q=Q.replace(/^[*\-+]\s+(.*)$/gm,"<li data-ul>$1</li>"),Q=Q.replace(/(<li data-ul>.*<\/li>\n?)+/g,"<ul>$&</ul>"),Q=Q.replace(/<\/ul>\n<ul>/g,""),Q=Q.replace(/^\d+\.\s+(.*)$/gm,"<li data-ol>$1</li>"),Q=Q.replace(/(<li data-ol>.*<\/li>\n?)+/g,"<ol>$&</ol>"),Q=Q.replace(/<\/ol>\n<ol>/g,""),Q=Q.replace(/<li data-ul>/g,"<li>"),Q=Q.replace(/<li data-ol>/g,"<li>"),J)Q=Q.replace(/^\|(.+)\|\s*\n\|[-:\s|]+\|\s*\n((?:\|.+\|\s*\n)*)/gm,(W,U,_)=>{let B=`<tr>${U.split("|").map((F)=>F.trim()).filter(Boolean).map((F)=>`<th>${s0(F)}</th>`).join("")}</tr>`,O=_.trim().split(`
|
|
625
|
+
`).map((F)=>{return`<tr>${F.split("|").map((H)=>H.trim()).filter(Boolean).map((H)=>`<td>${s0(H)}</td>`).join("")}</tr>`}).join(`
|
|
626
626
|
`);return`<table>
|
|
627
627
|
<thead>
|
|
628
628
|
${B}
|
|
@@ -637,13 +637,15 @@ ${O}
|
|
|
637
637
|
`:`
|
|
638
638
|
`)}</p>`);if(Q=K.join(`
|
|
639
639
|
`),Y)Q=Q.replace(/\n/g,`<br />
|
|
640
|
-
`);for(let W=0;W<X.length;W++)Q=Q.replace(`\x00CODEBLOCK${W}\x00`,X[W]);return Q=Q.replace(/<p>\s*<\/p>/g,""),Q.trim()}function
|
|
640
|
+
`);for(let W=0;W<X.length;W++)Q=Q.replace(`\x00CODEBLOCK${W}\x00`,X[W]);return Q=Q.replace(/<p>\s*<\/p>/g,""),Q.trim()}function r0($){let Z=/import\s*\{([^}]+)\}\s*from\s*['"](@stores|stx\/stores)['"]\s*;?\n?/g;$=$.replace(Z,(Y,Q)=>{return`const { ${Q.split(",").map((G)=>G.trim()).filter(Boolean).join(", ")} } = window.__STX_STORES__
|
|
641
641
|
`});let J=/import\s*\{([^}]+)\}\s*from\s*['"]@composables['"]\s*;?\n?/g;return $=$.replace(J,(Y,Q)=>{return`const { ${Q.split(",").map((G)=>G.trim()).filter(Boolean).join(", ")} } = window.__composables
|
|
642
|
-
`}),$}import
|
|
643
|
-
export { ${B.join(", ")} }`:"";await Bun.write(U,$+H),console.log("[stx:bundler] bundling:",K,"from:",
|
|
642
|
+
`}),$}import VY from"process";function f0($="STX_PUBLIC_"){let Z={},J={};for(let[Y,Q]of Object.entries(VY.env)){if(!Y.startsWith($)||Q===void 0)continue;Z[`import.meta.env.${Y}`]=JSON.stringify(Q),J[Y]=Q}return Z["import.meta.env"]=JSON.stringify(J),Z}var M1=()=>{};var h9={};r(h9,{hasUserImports:()=>wY,bundleClientScript:()=>NY});import w0 from"path";import c0 from"fs";function wY($){let Z=/^\s*import\s+(?!type\s)/gm;if(!$.match(Z))return!1;let Y=/^\s*import\s+(?!type\s).*?\s+from\s+['"]([^'"]+)['"]/gm,Q;while((Q=Y.exec($))!==null){let G=Q[1];if(!T7.some((q)=>q.test(G)))return console.log("[stx:bundler] detected user import:",G),!0}let X=/^\s*import\s+['"]([^'"]+)['"]/gm;while((Q=X.exec($))!==null){let G=Q[1];if(!T7.some((q)=>q.test(G)))return console.log("[stx:bundler] detected side-effect import:",G),!0}return!1}function AY($,Z,J){let Y=(Q,X)=>{let G=Q===J?Z:w0.dirname(Q),K=w0.resolve(G,X),q=[K,`${K}.ts`,`${K}.tsx`,`${K}.js`,`${K}.mjs`,`${K}.jsx`,w0.join(K,"index.ts"),w0.join(K,"index.tsx"),w0.join(K,"index.js"),w0.join(K,"index.mjs")];for(let z of q)try{if(c0.existsSync(z)&&c0.statSync(z,{throwIfNoEntry:!1})?.isFile())return z}catch{}return K};return{name:"stx-client-bundle",setup(Q){Q.onResolve({filter:/^(stx|@stacksjs\/stx|@stacksjs\/browser)$/},(X)=>({path:X.path,external:!0})),Q.onResolve({filter:/^(@stores|@composables|stx\/stores)$/},(X)=>({path:X.path,external:!0})),Q.onResolve({filter:/^\.\.?\//},(X)=>{return{path:Y(X.importer,X.path)}}),Q.onResolve({filter:/^@\//},(X)=>{let G=w0.resolve($,X.path.slice(2)),K=[G,`${G}.ts`,`${G}.js`,w0.join(G,"index.ts"),w0.join(G,"index.js")];for(let q of K)if(c0.existsSync(q)&&c0.statSync(q,{throwIfNoEntry:!1})?.isFile())return console.log("[stx:bundler] resolved @/ import:",X.path,"\u2192",q),{path:q};return console.warn("[stx:bundler] could not resolve @/ import:",X.path),{path:G}})}}}async function NY($,Z,J={}){let Y=J.projectRoot||process.cwd(),Q=J.minify??!1,X=J.cacheDir||w0.join(Y,".stx","bundle-cache"),G=new Bun.CryptoHasher("md5");G.update($+Z);let K=G.digest("hex").slice(0,12),q=w0.join(X,`${K}.js`),z=Bun.file(q);if(await z.exists())return console.log("[stx:bundler] cache hit:",K),await z.text();let W=w0.join(Y,".stx","bundle-tmp"),U=w0.join(W,`${K}.ts`),_=w0.join(W,"out",K);c0.mkdirSync(W,{recursive:!0}),c0.mkdirSync(_,{recursive:!0});let j=w0.dirname(Z),B=[],O=/^(export\s+)?(?:const|let|var)\s+(?:\{([^}]+)\}|(\w+))/gm,F=/^(export\s+)?(?:async\s+)?function\s+(\w+)/gm,L;while((L=O.exec($))!==null){if(L[1])continue;if(L[2])L[2].split(",").forEach((V)=>{let A=V.split(":")[0].trim();if(A)B.push(A)});else if(L[3])B.push(L[3])}while((L=F.exec($))!==null){if(L[1])continue;B.push(L[2])}let H=B.length>0?`
|
|
643
|
+
export { ${B.join(", ")} }`:"";await Bun.write(U,$+H),console.log("[stx:bundler] bundling:",K,"from:",w0.basename(Z));try{let V=await Bun.build({entrypoints:[U],outdir:_,target:"browser",format:"esm",minify:Q,plugins:[AY(Y,j,U)],define:{"process.env.NODE_ENV":Q?'"production"':'"development"',...f0()},root:Y});if(!V.success){let w=V.logs.filter((N)=>N.level==="error").map((N)=>N.message).join(", ");return console.warn("[stx:bundler] build failed:",w),$}let A="";for(let w of V.outputs){A=await w.text();break}return A=A.replace(/^\s*export\s*\{[^}]*\}\s*;?\s*$/gm,"").replace(/^\s*export\s+default\s+.*$/gm,"").trim(),console.log("[stx:bundler] bundled:",K,"output:",A.length,"bytes"),c0.mkdirSync(X,{recursive:!0}),await Bun.write(q,A),A}catch(V){let A=V instanceof Error?V.message:String(V),w=V?.errors,N=Array.isArray(w)&&w.length>0?`
|
|
644
|
+
${w.map((R)=>`- ${R?.message??R}`).join(`
|
|
645
|
+
`)}`:"";return console.warn(`[stx:bundler] error: ${A}${N}`),$}finally{try{c0.rmSync(U,{force:!0}),c0.rmSync(_,{recursive:!0,force:!0})}catch{}}}var T7;var d9=C(()=>{M1();T7=[/^stx$/,/^@stacksjs\/stx$/,/^@stacksjs\/browser$/,/^@stores$/,/^stx\/stores$/,/^@composables$/]});function IY($){let Z=new Set,J=/\b([A-Z][a-zA-Z0-9]*)\s*\.\s*(all|find|first|get|where|orderBy|orderByDesc|limit|select|pluck|create|update|delete)\s*\(/g,Y;while((Y=J.exec($))!==null)if(!MY.has(Y[1]))Z.add(Y[1]);return Array.from(Z)}function DY($){let Z=new Set,J=new Set,Y=$;Y=Y.replace(/^\s*import\s+type\s+\{[^}]*\}\s+from\s+['"][^'"]+['"]\s*;?\s*$/gm,"// [type import stripped]");let Q=new Set,X=/^\s*import\s+(?:type\s+)?{\s*([^}]+)\s*}\s+from\s+['"](@stacksjs\/browser|stx)['"]\s*;?\s*$/gm,G;while((G=X.exec($))!==null){let q=G[1],z=G[2];if(G[0].includes("import type"))continue;q.split(",").map((U)=>U.trim().split(/\s+as\s+/)[0]).filter((U)=>U.length>0).forEach((U)=>{if(Q.add(U),z==="stx")Z.add(U);else J.add(U)}),Y=Y.replace(G[0],"// [auto-import processed]")}for(let q of RY){if(Q.has(q))continue;if(new RegExp(`\\b${q}\\s*\\(`,"g").test(Y))Z.add(q)}for(let q of TY){if(Q.has(q))continue;if(new RegExp(`\\b${q}\\b`,"g").test(Y))J.add(q)}let K=IY(Y);for(let q of K)if(!Q.has(q))J.add(q);return{code:Y,stxImports:Array.from(Z),browserImports:Array.from(J)}}function EY($,Z){let J=[];if($.length>0)J.push(` var { ${$.join(", ")} } = window.stx || window;`);if(Z.length>0)J.push(` var { ${Z.join(", ")} } = window.StacksBrowser || {};`);if(J.length>0)return` // STX: auto-imported from stx and @stacksjs/browser
|
|
644
646
|
${J.join(`
|
|
645
647
|
`)}
|
|
646
|
-
`;return""}function
|
|
648
|
+
`;return""}function bY($){let Z=[];if($.self)Z.push("if ($event.target !== $el) return");for(let J of $.systemKeys)Z.push(`if (!$event.${J}Key) return`);if($.keys.length>0){let J=$.keys.map((Y)=>`$event.key === '${Y}'`).join(" || ");Z.push(`if (!(${J})) return`)}if($.mouse!==null){let J=kY[$.mouse];Z.push(`if ($event.button !== ${J}) return`)}if($.prevent)Z.push("$event.preventDefault()");if($.stop)Z.push("$event.stopPropagation()");return Z.join("; ")}function SY($,Z){let{elementId:J,event:Y,handler:Q,modifiers:X}=$,G=bY(X),K=[];if(X.once)K.push("once: true");if(X.capture)K.push("capture: true");if(X.passive)K.push("passive: true");let q=K.length>0?`, { ${K.join(", ")} }`:"",z="";if(G)z+=`${G}; `;let W=Q.replace(/\\/g,"\\\\").replace(/'/g,"\\'");function U(_){return`var scope = $el.closest('[data-stx-scope]');
|
|
647
649
|
if (scope && scope.__stx_execute) {
|
|
648
650
|
scope.__stx_execute('${W}', $event, $el);
|
|
649
651
|
}
|
|
@@ -679,11 +681,11 @@ else {
|
|
|
679
681
|
else {
|
|
680
682
|
${Q}
|
|
681
683
|
}
|
|
682
|
-
}${q})`}function
|
|
684
|
+
}${q})`}function yY($){if($.length===0)return"";return`
|
|
683
685
|
// STX: auto-generated event bindings
|
|
684
|
-
${$.map((J,Y)=>
|
|
685
|
-
`)}`}function
|
|
686
|
-
`)G++;continue}if(K==="/"&&Y[G+1]==="*"){G+=2;while(G<X-1&&!(Y[G]==="*"&&Y[G+1]==="/"))G++;G+=2;continue}if(K==="{"){Q++,G++;continue}if(K==="}"){Q--,G++;continue}if(Q===0){let q=Y.slice(G),z=q.match(/^(?:const|let|var)\s+([a-zA-Z_$]\w*)\s*(?::[^=]*)?=/);if(z){let _=z[1];if(!_.startsWith("_")&&!J.has(_))Z.push(_),J.add(_);G+=z[0].length;continue}let W=q.match(/^(?:const|let|var)\s+\{([^}]+)\}\s*=/);if(W){W[1].split(",").forEach((_)=>{let j=_.trim(),B=j.indexOf(":"),O=B>=0?j.slice(B+1).trim().split(/[\s=]/)[0]:j.split(/[\s=]/)[0];if(O&&!O.startsWith("_")&&!J.has(O))Z.push(O),J.add(O)}),G+=W[0].length;continue}let U=q.match(/^(?:async\s+)?function\s+([a-zA-Z_$]\w*)/);if(U){let _=U[1];if(!_.startsWith("_")&&!J.has(_))Z.push(_),J.add(_);G+=U[0].length;continue}}G++}return Z}function
|
|
686
|
+
${$.map((J,Y)=>SY(J,Y)).join(`
|
|
687
|
+
`)}`}function M7($){let Z=[],J=new Set,Y=$.replace(/^\s*import\s+.*$/gm,""),Q=0,X=Y.length,G=0;while(G<X){let K=Y[G];if(K==="'"||K==='"'||K==="`"){let q=K;if(G++,q==="`"){let z=0;while(G<X){if(Y[G]==="\\"){G+=2;continue}if(Y[G]==="`"&&z===0){G++;break}if(Y[G]==="$"&&Y[G+1]==="{"){z++,G+=2;continue}if(Y[G]==="}"&&z>0){z--,G++;continue}G++}}else while(G<X){if(Y[G]==="\\"){G+=2;continue}if(Y[G]===q){G++;break}G++}continue}if(K==="/"&&Y[G+1]==="/"){while(G<X&&Y[G]!==`
|
|
688
|
+
`)G++;continue}if(K==="/"&&Y[G+1]==="*"){G+=2;while(G<X-1&&!(Y[G]==="*"&&Y[G+1]==="/"))G++;G+=2;continue}if(K==="{"){Q++,G++;continue}if(K==="}"){Q--,G++;continue}if(Q===0){let q=Y.slice(G),z=q.match(/^(?:const|let|var)\s+([a-zA-Z_$]\w*)\s*(?::[^=]*)?=/);if(z){let _=z[1];if(!_.startsWith("_")&&!J.has(_))Z.push(_),J.add(_);G+=z[0].length;continue}let W=q.match(/^(?:const|let|var)\s+\{([^}]+)\}\s*=/);if(W){W[1].split(",").forEach((_)=>{let j=_.trim(),B=j.indexOf(":"),O=B>=0?j.slice(B+1).trim().split(/[\s=]/)[0]:j.split(/[\s=]/)[0];if(O&&!O.startsWith("_")&&!J.has(O))Z.push(O),J.add(O)}),G+=W[0].length;continue}let U=q.match(/^(?:async\s+)?function\s+([a-zA-Z_$]\w*)/);if(U){let _=U[1];if(!_.startsWith("_")&&!J.has(_))Z.push(_),J.add(_);G+=U[0].length;continue}}G++}return Z}function PY($){let Z=new Set,J=/[a-zA-Z_$][a-zA-Z0-9_$]*/g;function Y(_){let j;while((j=J.exec(_))!==null){let B=j[0];if(!CY.has(B))Z.add(B)}}let Q=/\{\{([\s\S]*?)\}\}/g,X;while((X=Q.exec($))!==null)Y(X[1]);let G=/:[a-z][\w.-]*\s*=\s*"([^"]*)"/gi;while((X=G.exec($))!==null)Y(X[1]);let K=/:[a-z][\w.-]*\s*=\s*'([^']*)'/gi;while((X=K.exec($))!==null)Y(X[1]);let q=/@[a-z]+(?:\.[a-z]+)*\s*=\s*"([^"]*)"/gi;while((X=q.exec($))!==null)Y(X[1]);let z=/@[a-z]+(?:\.[a-z]+)*\s*=\s*'([^']*)'/gi;while((X=z.exec($))!==null)Y(X[1]);let W=/@model\s*=\s*["']([^"']*)["']/gi;while((X=W.exec($))!==null)Y(X[1]);let U=/@for\s*=\s*["'][^"']*\bin\s+([^"']+)["']/gi;while((X=U.exec($))!==null)Y(X[1]);return Z}async function w5($,Z={}){let J=$,Y="",Q=!1,{hasUserImports:X,bundleClientScript:G}=await Promise.resolve().then(() => (d9(),h9));if(X(J))console.log("[stx:bundler] user imports detected, bundling..."),J=await G(J,Z.filePath||"",{projectRoot:Z.projectRoot,minify:Z.production}),Q=!0;if(Z.autoImports!==!1){let B=DY(J);J=B.code,Y=EY(B.stxImports,B.browserImports)}if(J=r0(J),!Q&&q1(Z.attrs||""))J=W1(J);let K=yY(Z.eventBindings||[]),q=(Z.attrs||"").trim();if(/\btype\s*=\s*["']module["']/i.test(q)){let B=q.replace(/\btype\s*=\s*["']module["']/i,"").trim();return`<script ${`type="module" data-stx-scoped${B?` ${B}`:""}`}>
|
|
687
689
|
${Y}${J}
|
|
688
690
|
${K}
|
|
689
691
|
</script>`}let W=/\b(state|derived|effect|ref|reactive|computed|watch|watchEffect|useLocalStorage|useSessionStorage|useRef|useEventListener|useFetch|useDebounce|useDebouncedValue|useThrottle|useInterval|useTimeout|useToggle|useCounter|useClickOutside|useFocus|useAsync|useColorMode|useDark|useWebSocket|useRoute|useSearchParams|onMount|onDestroy|batch|untrack|peek)\s*(?:<[^>]*>)?\s*\(/.test($),U=/function __stx_setup_/.test(J),_=/\bstx\.mount\s*\(|\bstx\.mountEl\s*\(/.test($);function j(B){let O=B.length>0?`
|
|
@@ -692,12 +694,12 @@ window.stx.mount(function() {
|
|
|
692
694
|
'use strict';
|
|
693
695
|
${Y}${J}
|
|
694
696
|
${K}${O}
|
|
695
|
-
})</script>`}if(!_&&!U){if(W)return j(
|
|
697
|
+
})</script>`}if(!_&&!U){if(W)return j(M7($));if(Z.templateContent){let B=M7($);if(B.length>0){let O=PY(Z.templateContent);if(B.some((L)=>O.has(L)))return j(B)}}}return`<script data-stx-scoped>
|
|
696
698
|
;(function() {
|
|
697
699
|
'use strict';
|
|
698
700
|
${Y}${J}
|
|
699
701
|
${K}
|
|
700
|
-
})()</script>`}var
|
|
702
|
+
})()</script>`}var RY,TY,MY,kY,CY;var m9=C(()=>{A0();RY=["state","derived","effect","batch","untrack","peek","isSignal","isDerived","onMount","onDestroy","useRef","navigate","goBack","goForward","useRoute","setRouteParams","useSearchParams","useQuery","useMutation","useEventListener","useMeta","useDebounce","useDebouncedValue","useThrottle","useInterval","useTimeout","useToggle","useCounter","useClickOutside","useFocus","useAsync","useColorMode","useDark","ref","reactive","computed","watch","watchEffect","watchMultiple","onBeforeMount","onMounted","onBeforeUpdate","onUpdated","onBeforeUnmount","onUnmounted","defineProps","withDefaults","defineEmits","defineExpose","provide","inject","nextTick","getCurrentInstance","onErrorCaptured","useSlots","useAttrs","createStore","defineStore","useStore","action","createSelector","h","Fragment"],TY=["browserQuery","BrowserQueryBuilder","BrowserQueryError","browserAuth","configureBrowser","getBrowserConfig","createBrowserDb","createBrowserModel","isBrowser"],MY=new Set(["Promise","Object","Array","Map","Set","Date","Error","JSON","Math","Number","String","RegExp","Symbol","WeakMap","WeakSet","Proxy","Reflect","Intl","URL","URLSearchParams","FormData","Headers","Request","Response","AbortController","EventTarget","Element","Document","Node","Window","Console","Storage","Navigator","Blob","File","FileReader","HTMLElement","SVGElement","Event","CustomEvent","DOMParser","XMLSerializer","WebSocket","Worker","SharedWorker","IntersectionObserver","MutationObserver","ResizeObserver","PerformanceObserver","Notification","Bun","Buffer","Process","Modal","Intl"]);kY={left:0,middle:1,right:2};CY=new Set(["if","else","true","false","null","undefined","typeof","instanceof","in","of","new","this","return","void","delete","throw","switch","case","break","continue","for","while","do","try","catch","finally","const","let","var","function","class","import","export","default","async","await","yield","with","debugger","console","window","document","Math","JSON","Date","Array","Object","String","Number","Boolean","Symbol","Map","Set","Promise","Error","parseInt","parseFloat","isNaN","isFinite","encodeURIComponent","decodeURIComponent","setTimeout","setInterval","clearTimeout","clearInterval","fetch","alert","confirm","prompt","event"])});function fY($){let Z="",J=null,Y=!1;for(let Q=0;Q<$.length;Q++){let X=$[Q];if(Y){Y=!1;continue}if(X==="\\"&&J){Y=!0;continue}if(J){if(J==="`"&&X==="$"&&Q+1<$.length&&$[Q+1]==="{"){let G=1;Q+=2;while(Q<$.length&&G>0){if($[Q]==="{")G++;else if($[Q]==="}")G--;if(G>0)Z+=$[Q],Q++}continue}if(X===J)J=null;continue}if(X==='"'||X==="'"||X==="`"){J=X;continue}Z+=X}return Z}function o1($){let Z=$.trim(),J=fY(Z);for(let Y of D7)if(Y.test(J))throw Error(`Potentially unsafe expression (matched /${Y.source}/): ${Z}`);if(!I7.allowBracketNotation&&xY.test(Z))throw Error(`Bracket notation with strings not allowed: ${Z}. Enable with configureSafeEvaluator({ allowBracketNotation: true })`);return Z}function gY($){let Z={};Z.Math=Math,Z.JSON=JSON,Z.Date=Date,Z.String=String,Z.Number=Number,Z.Boolean=Boolean,Z.Array=Array,Z.parseInt=Number.parseInt,Z.parseFloat=Number.parseFloat,Z.isNaN=Number.isNaN,Z.isFinite=Number.isFinite,Z.encodeURIComponent=encodeURIComponent,Z.decodeURIComponent=decodeURIComponent;for(let[J,Y]of Object.entries($)){if(J.startsWith("__")||D7.some((Q)=>Q.test(J)))continue;if(Y&&typeof Y==="object"&&!Array.isArray(Y))Z[J]=u9(Y);else Z[J]=Y}return Z}function u9($,Z=0){if(Z>=I7.maxSanitizeDepth)return"[Object too deep]";if($===null||typeof $!=="object")return $;if(Array.isArray($))return $.map((Y)=>u9(Y,Z+1));if($ instanceof Date||$ instanceof RegExp||$ instanceof Map||$ instanceof Set||$ instanceof Error)return $;let J={};for(let[Y,Q]of Object.entries($)){if(Y.startsWith("__")||Y==="constructor"||Y==="prototype")continue;if(Q&&typeof Q==="object")J[Y]=u9(Q,Z+1);else J[Y]=Q}return J}function J0($,Z){try{let J=o1($),Y=gY(Z);return Function(...Object.keys(Y),`
|
|
701
703
|
'use strict';
|
|
702
704
|
try {
|
|
703
705
|
return ${J};
|
|
@@ -708,7 +710,7 @@ catch (e) {
|
|
|
708
710
|
}
|
|
709
711
|
throw e;
|
|
710
712
|
}
|
|
711
|
-
`)(...Object.values(Y))}catch{return}}function
|
|
713
|
+
`)(...Object.values(Y))}catch{return}}function t($){try{return o1($),!0}catch{return!1}}function F0($,Z){try{let J=J0($,Z);if(J&&typeof J==="object"&&!Array.isArray(J))return J;return{}}catch{return{}}}function e($,Z){let J=o1($),Y=/^[A-Za-z_$][\w$]*$/,Q=[],X=[];for(let K=0;K<Z.length;K++){let q=Z[K];if(!Y.test(q))continue;if(hY.has(q))continue;Q.push(K),X.push(q)}let G=Function(...X,`
|
|
712
714
|
'use strict';
|
|
713
715
|
try {
|
|
714
716
|
return ${J};
|
|
@@ -719,7 +721,7 @@ catch (e) {
|
|
|
719
721
|
}
|
|
720
722
|
throw e;
|
|
721
723
|
}
|
|
722
|
-
`);if(X.length===Z.length)return G;return(...K)=>{let q=Array(Q.length);for(let z=0;z<Q.length;z++)q[z]=K[Q[z]];return G(...q)}}function F5($){let Z=$.trim(),J=[/\beval\s*\(/i,/\bFunction\s*\(/i,/\bimport\s*\(/i,/\brequire\s*\(/i,/\bprocess\b/i,/\b__proto__\b/i,/\bconstructor\s*[.(]/i,/\bglobalThis\b/i,/\bwindow\b/i,/\bdocument\b/i,/\bfetch\s*\(/i,/\bBun\b/i,/\bDeno\b/i,/\bconsole\b/i,/\bthis\b/i,/\bReflect\b/i,/\bProxy\b/i,/\bprototype\b/i,/\.(bind|call|apply)\s*\(/i];for(let Y of J)if(Y.test(Z))return!1;return!0}var CY,R7,T7,PY,fY;var A0=C(()=>{CY={maxSanitizeDepth:10,allowBracketNotation:!1},R7={...CY},T7=[/\b(eval|Function|setTimeout|setInterval|setImmediate)\b/,/\b(process|require|import|exports|module)\b/,/\b(window|document|global|globalThis)\b/,/\b(constructor|prototype|__proto__)\b/,/\b(Reflect|Proxy)\b/,/\bSymbol\b/,/\b(WeakMap|WeakSet|WeakRef|FinalizationRegistry)\b/,/\b(Generator|AsyncGenerator)\b/,/__\w+__/,/\.(bind|call|apply)\s*\(/,/\bnew\s+/,/\bdelete\s+/,/\bthis\b/],PY=/[\w)\]]\s*\[\s*['"]/;fY=new Set(["break","case","catch","class","const","continue","debugger","default","delete","do","else","enum","export","extends","false","finally","for","function","if","import","in","instanceof","new","null","return","super","switch","this","throw","true","try","typeof","var","void","while","with","yield","let","static","implements","interface","package","private","protected","public","arguments","eval","await"])});function V5($,Z){let J=gY++,Y=`<!--__STX_${$.toUpperCase()}_${J}__-->`;return hY.set(Y,{type:$,expression:Z}),Y}var gY=0,hY;var M7=C(()=>{hY=new Map});var y7={};r(y7,{usesSignalsInScript:()=>w5,unescapeHtml:()=>m9,registerFilters:()=>mY,registerFilter:()=>E7,processExpressions:()=>o0,interpolateScriptsInTemplate:()=>pY,interpolateScriptExpressions:()=>b7,getAllFilters:()=>k7,evaluateExpression:()=>l0,escapeHtml:()=>q1,defaultFilters:()=>o1,clearCustomFilters:()=>uY,applyFilters:()=>S7});function dY($){let Z=I7.get($);if(!Z){let J=$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");Z=new RegExp(`:${J}(?!\\w)`,"g"),I7.set($,Z)}return Z.lastIndex=0,Z}function E7($,Z){if($ in o1)console.warn(`Filter "${$}" already exists as a built-in filter. Custom filter will take precedence.`);n1[$]=Z}function mY($){for(let[Z,J]of Object.entries($))E7(Z,J)}function k7(){return{...o1,...n1}}function uY(){for(let $ of Object.keys(n1))delete n1[$]}function q1($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function w5($){let Z=/<script\b(?![^>]*\bserver\b)(?![^>]*\bsrc\s*=)[^>]*>([\s\S]*?)<\/script>/gi,J;while((J=Z.exec($))!==null){let Y=J[1];if(/\b(state|derived|effect|ref|reactive|computed|watch|watchEffect)\s*(?:<[^>]*>)?\s*\(/.test(Y))return!0}if(/@(if|for|show)\s*=\s*["'][^"']*\(\s*\)/.test($))return!0;if(/@for\s*=\s*["'][^"']*\s+(?:in|of)\s+[^"']*\(\s*\)/.test($))return!0;return!1}function D7($,Z){let J=["parseInt","parseFloat","String","Number","Boolean","Array","Object","JSON","Math","Date","encodeURIComponent","decodeURIComponent","encodeURI","decodeURI","true","false","null","undefined","NaN","Infinity","isNaN","isFinite","window","document","console"],Y=$.replace(/'[^']*'/g,"").replace(/"[^"]*"/g,""),Q="",X=!1,G=0;for(let z=0;z<Y.length;z++){let W=Y[z];if(!X&&W==="`"){X=!0,G=0;continue}if(X){if(W==="`"&&G===0){X=!1;continue}if(W==="$"&&Y[z+1]==="{"){G++,z++;continue}if(W==="}"&&G>0){G--;continue}continue}Q+=W}Y=Q;let K=/\b([a-zA-Z_$][a-zA-Z0-9_$]*)\b/g,q;while((q=K.exec(Y))!==null){let z=q[1];if(!Y.substring(0,q.index).trimEnd().endsWith(".")){if(!J.includes(z)&&!(z in Z))return!1}}return!0}function b7($,Z){let J=$;return J=J.replace(/\{!!([\s\S]*?)!!\}/g,(Y,Q)=>{try{let X=l0(Q,Z);if(X===void 0)return Y;return X===null?"":String(X)}catch{return Y}}),J=J.replace(/\{\{([\s\S]*?)\}\}/g,(Y,Q)=>{let X=Q.trim();if(/^__[A-Z_]+__$/.test(X))return Y;try{let G=l0(Q,Z);if(G===void 0)return Y;return JSON.stringify(G)}catch{return Y}}),J}function pY($,Z,J={}){return $.replace(/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,(Y,Q,X)=>{if(/\bsrc\s*=/.test(Q))return Y;if(/\bdata-raw\b/.test(Q))return Y;if(/\btype\s*=\s*["']application\/json["']/.test(Q))return Y;if(J.skipServer&&/\bserver\b/.test(Q))return Y;let G=b7(X,Z);return`<script${Q}>${G}</script>`})}function o0($,Z,J){let Y=$,Q=[];Y=Y.replace(/<style[^>]*>[\s\S]*?<\/style>/gi,(K)=>{if(/\{\{[\s\S]*?\}\}|\{!![\s\S]*?!!\}/.test(K))return K;let q=Q.length;return Q.push(K),`<!--__STX_STYLE_${q}__-->`});let X=[];Y=Y.replace(/<script[^>]*>[\s\S]*?<\/script>/gi,(K)=>{let q=X.length;return X.push(K),`<!--__STX_SCRIPT_EXPR_${q}__-->`});let G=w5($);Y=Y.replace(/\{\{\{([\s\S]*?)\}\}\}/g,(K,q,z)=>{try{let W=l0(q,Z);return W!==void 0&&W!==null?String(W):""}catch(W){let U=W instanceof Error?W.message:String(W);return Q0("Expression",`Error evaluating: {{{ ${q.trim()}}}}: ${U}`,J,$,z,K)}}),Y=Y.replace(/\{!!([\s\S]*?)!!\}/g,(K,q,z)=>{try{let W=l0(q,Z);if(W===void 0&&Z.__stx_buildMode==="compile")return V5("raw",q.trim());return W!==void 0&&W!==null?String(W):""}catch(W){if(Z.__stx_buildMode==="compile")return V5("raw",q.trim());let U=W instanceof Error?W.message:String(W);return Q0("Expression",`Error evaluating: {!! ${q.trim()} !!}: ${U}`,J,$,z,K)}}),Y=Y.replace(/<script[^>]*>[\s\S]*?<\/script>/gi,(K)=>{if(K.startsWith("<!--__STX_SCRIPT_EXPR_"))return K;let q=X.length;return X.push(K),`<!--__STX_SCRIPT_EXPR_${q}__-->`}),Y=Y.replace(/<style[^>]*>[\s\S]*?<\/style>/gi,(K)=>{if(K.startsWith("<!--__STX_STYLE_"))return K;if(/\{\{[\s\S]*?\}\}|\{!![\s\S]*?!!\}/.test(K))return K;let q=Q.length;return Q.push(K),`<!--__STX_STYLE_${q}__-->`}),Y=Y.replace(/\{\{([\s\S]*?)\}\}/g,(K,q,z)=>{let W=q.trim(),U=["parseInt","parseFloat","String","Number","Boolean","Array","Object","JSON","Math","Date","encodeURIComponent","decodeURIComponent","encodeURI","decodeURI","true","false","null","undefined"],_=/^([a-zA-Z_$][a-zA-Z0-9_$]*)/,B=W.match(_)?.[1],O=B&&((B in Z)||U.includes(B)),F=/^([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/,L=W.match(F),H=L&&!U.includes(L[1])&&!(L[1]in Z);if(/^__[A-Z_]+__$/.test(W))return"";try{let V=l0(q,Z);if(V===void 0&&G&&!D7(W,Z))return K;if(V===void 0&&Z.__stx_buildMode==="compile"&&!G)return V5("expr",W);return V!==void 0&&V!==null?q1(String(V)):""}catch(V){if(G&&!D7(W,Z))return K;if(H)return K;let A=V instanceof Error?V.message:String(V);return Q0("Expression",`Error evaluating: {{ ${W} }}: ${A}`,J,$,z,K)}});for(let K=0;K<X.length;K++)Y=Y.replace(`<!--__STX_SCRIPT_EXPR_${K}__-->`,()=>X[K]);for(let K=0;K<Q.length;K++)Y=Y.replace(`<!--__STX_STYLE_${K}__-->`,()=>Q[K]);return Y}function S7($,Z,J){if(!Z.trim())return $;let Y=$,Q=Z.trim();while(Q.length>0){let X=Q.match(/^(\w+)/);if(!X)break;let G=X[1];Q=Q.substring(G.length).trim();let K=n1[G]||o1[G];if(!K)throw Error(`Filter not found: ${G}. Available filters: ${Object.keys(k7()).join(", ")}`);let q=[];if(Q.startsWith(":")){let z=Q.match(/^:([^|\s]+)/);if(z){let W=z[1].trim();try{let U=Number(W);q=[Number.isNaN(U)?W:U]}catch{q=[W]}Q=Q.substring(z[0].length).trim()}}else if(Q.startsWith("(")){let z=1,W=1;while(z>0&&W<Q.length){if(Q[W]==="(")z++;if(Q[W]===")")z--;W++}if(z===0){let U=Q.substring(1,W-1).trim();if(U)try{if(U.startsWith("{")&&U.endsWith("}"))q=[l0(`(${U})`,J,!0)];else{let _=[],j="",B=null,O=0,F=0,L=0,H=!1;for(let V=0;V<U.length;V++){let A=U[V];if(H){j+=A,H=!1;continue}if(A==="\\"){j+=A,H=!0;continue}if(B){if(j+=A,A===B)B=null;continue}if(A==='"'||A==="'"||A==="`"){B=A,j+=A;continue}if(A==="(")O++;else if(A===")")O--;else if(A==="[")F++;else if(A==="]")F--;else if(A==="{")L++;else if(A==="}")L--;if(A===","&&O===0&&F===0&&L===0){_.push(j),j="";continue}j+=A}if(j)_.push(j);q=_.map((V)=>{let A=V.trim();return l0(A,J,!0)})}}catch{q=[U]}Q=Q.substring(W).trim()}}try{Y=K(Y,J,...q)}catch(z){let W=z instanceof Error?z.message:String(z);throw Error(`Error applying filter '${G}': ${W}`)}if(Q.startsWith("|"))Q=Q.substring(1).trim();else break}return Y}function lY($){let Z=!1,J="",Y=0,Q=0,X=0,G=!1;for(let K=0;K<$.length;K++){let q=$[K],z=$[K+1];if(Z&&G){G=!1;continue}if(Z&&q==="\\"){G=!0;continue}if(G=!1,(q==='"'||q==="'"||q==="`")&&!G){if(!Z)Z=!0,J=q;else if(q===J)Z=!1,J="";continue}if(Z&&J==="`"&&q==="$"&&z==="{"){let W=1;K+=2;while(K<$.length&&W>0){if($[K]==="{")W++;else if($[K]==="}")W--;if(W>0)K++}continue}if(Z)continue;if(q==="(")Y++;else if(q===")")Y--;else if(q==="[")Q++;else if(q==="]")Q--;else if(q==="{")X++;else if(q==="}")X--;if(q==="|"&&Y===0&&Q===0&&X===0){if(z==="|"){K++;continue}if(z==="="){K++;continue}return K}}return-1}function l0($,Z,J=!1){try{let Y=$.trim(),Q=lY(Y);if(Q>0){let X=Y.substring(0,Q).trim(),G=Y.substring(Q+1).trim(),K=l0(X,Z,!0);return S7(K,G,Z)}if(!e(Y)){if(!J)console.warn(`Potentially unsafe expression detected, using safe evaluator: ${Y}`);return X0(Y,Z)}try{let X=Object.keys(Z),G=Object.values(Z);return $0(Y,X)(...G)}catch{return X0(Y,Z)}}catch(Y){if(Y instanceof ReferenceError){let Q=/(\b\w+)\s+is not defined/.exec(Y.message);if(Q){let X=Q[1],G=cY(X,Object.keys(Z));if(G&&G!==X)Y.message=`${Y.message} \u2014 did you mean '${G}'?`}}if(!J)console.error(`Error evaluating expression: ${$}`,Y);throw Y}}function cY($,Z){let J=null;for(let Q of Z){if(Q===$)continue;let X=iY($,Q);if(J===null||X<J.dist)J={key:Q,dist:X}}if(!J)return null;let Y=Math.max($.length,J.key.length);if(J.dist<=2||J.dist/Y<=0.35)return J.key;return null}function iY($,Z){if($===Z)return 0;if($.length===0)return Z.length;if(Z.length===0)return $.length;let[J,Y]=$.length<Z.length?[$,Z]:[Z,$],Q=Array(J.length+1),X=Array(J.length+1);for(let G=0;G<=J.length;G++)Q[G]=G;for(let G=1;G<=Y.length;G++){X[0]=G;for(let K=1;K<=J.length;K++){let q=J[K-1]===Y[G-1]?0:1;X[K]=Math.min(X[K-1]+1,Q[K]+1,Q[K-1]+q)}for(let K=0;K<=J.length;K++)Q[K]=X[K]}return Q[J.length]}function m9($){if(!$)return"";return $.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/'/g,"'").replace(/&/g,"&")}var n1,I7,o1;var s0=C(()=>{A0();F0();M7();n1={},I7=new Map;o1={uppercase:($,Z)=>{return $!==void 0&&$!==null?String($).toUpperCase():""},lowercase:($,Z)=>{return $!==void 0&&$!==null?String($).toLowerCase():""},capitalize:($,Z)=>{if($===void 0||$===null)return"";let J=String($);return J.charAt(0).toUpperCase()+J.slice(1)},number:($,Z,J=0)=>{if($===void 0||$===null)return"";try{let Y=Number($);return Number.isNaN(Y)?"":Y.toFixed(Number.parseInt(String(J),10))}catch{return""}},fmt:($,Z,J="en-US")=>{if($===void 0||$===null)return"";try{let Y=Number($);if(Number.isNaN(Y))return String($);return Y.toLocaleString(J)}catch{return String($)}},join:($,Z,J=",")=>{if(!Array.isArray($))return"";return $.join(String(J))},escape:($,Z)=>{if($===void 0||$===null)return"";return q1(String($))},translate:($,Z,J={})=>{if(!Z||!Z.__translations)return $;let Y=Z.__translations,Q=Z.__i18nConfig?.fallbackToKey??!0,X=String($).split("."),G=Y;for(let q of X){if(G===void 0||G===null)break;G=G[q]}if(G===void 0||G===null)return Q?$:"";let K=String(G);return Object.entries(J).forEach(([q,z])=>{K=K.replace(dY(q),String(z))}),K},t:($,Z,J={})=>{return o1.translate($,Z,J)},truncate:($,Z,J=50,Y="...")=>{if($===void 0||$===null)return"";let Q=String($);if(Q.length<=J)return Q;if(J<=Y.length)return Y.substring(0,J);return Q.substring(0,J-Y.length)+Y},date:($,Z,J="short",Y="en-US")=>{if($===void 0||$===null)return"";try{let Q=$ instanceof Date?$:new Date($);if(Number.isNaN(Q.getTime()))return String($);let X={short:{dateStyle:"short"},medium:{dateStyle:"medium"},long:{dateStyle:"long"},full:{dateStyle:"full"},time:{timeStyle:"short"},datetime:{dateStyle:"short",timeStyle:"short"},iso:{}};if(J==="iso")return Q.toISOString();return new Intl.DateTimeFormat(Y,X[J]||X.short).format(Q)}catch{return String($)}},currency:($,Z,J="USD",Y="en-US")=>{if($===void 0||$===null)return"";try{let Q=Number($);if(Number.isNaN(Q))return String($);return new Intl.NumberFormat(Y,{style:"currency",currency:J}).format(Q)}catch{return String($)}},pluralize:($,Z,J,Y)=>{let Q=Number($);if(Number.isNaN(Q))return J;let X=Y||`${J}s`;return Q===1?J:X},first:($,Z)=>{if($===void 0||$===null)return"";if(Array.isArray($))return $.length===0?"":$[0];return String($).charAt(0)},last:($,Z)=>{if($===void 0||$===null)return"";if(Array.isArray($))return $.length===0?"":$[$.length-1];let J=String($);return J.charAt(J.length-1)},length:($,Z)=>{if($===void 0||$===null)return 0;if(Array.isArray($)||typeof $==="string")return $.length;if($ instanceof Map||$ instanceof Set)return $.size;if(typeof $==="object")return Object.keys($).length;return 0},json:($,Z,J=!1)=>{if($===void 0)return"undefined";if($===null)return"null";try{return J?JSON.stringify($,null,2):JSON.stringify($)}catch{return String($)}},default:($,Z,J="")=>{return $===void 0||$===null||$===""?J:$},reverse:($,Z)=>{if($===void 0||$===null)return"";if(Array.isArray($))return[...$].reverse();return String($).split("").reverse().join("")},slice:($,Z,J=0,Y)=>{if($===void 0||$===null)return"";if(Array.isArray($)||typeof $==="string")return $.slice(J,Y);return $},replace:($,Z,J,Y="")=>{if($===void 0||$===null)return"";let Q=J.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return String($).replace(new RegExp(Q,"g"),()=>Y)},stripTags:($,Z)=>{if($===void 0||$===null)return"";return String($).replace(/<[^>]*>/g,"")},urlencode:($,Z)=>{if($===void 0||$===null)return"";return encodeURIComponent(String($))},abs:($,Z)=>{let J=Number($);return Number.isNaN(J)?0:Math.abs(J)},round:($,Z,J=0)=>{let Y=Number($);if(Number.isNaN(Y))return 0;let Q=10**J;return Math.round(Y*Q)/Q}}});class s1{cache=new Map;maxSize;constructor($=100){this.maxSize=$}get($){if(!this.cache.has($))return;let Z=this.cache.get($);return this.cache.delete($),this.cache.set($,Z),Z}set($,Z){if(this.cache.has($))this.cache.delete($);else if(this.cache.size>=this.maxSize){let J=this.cache.keys().next().value;if(J!==void 0)this.cache.delete(J)}this.cache.set($,Z)}has($){return this.cache.has($)}delete($){return this.cache.delete($)}clear(){this.cache.clear()}get size(){return this.cache.size}keys(){return this.cache.keys()}values(){return this.cache.values()}}function M1($,Z){if(Z?.includes("g"))return new RegExp($,Z);let J=`${$}:${Z||""}`;if(!T1.has(J)){if(T1.size>=nY){let Y=T1.keys().next().value;if(Y)T1.delete(Y)}T1.set(J,new RegExp($,Z))}return T1.get(J)}class C7{pool=[];maxPoolSize=10;fnCache=new Map;fnCacheMaxSize=200;getEvaluator($){let Z=Array.from(new Set($)),J=Z.sort().join(","),Y=this.pool.find((K)=>K.context.join(",")===J);if(Y)return Y.func;let Q=this.fnCache,X=this.fnCacheMaxSize,G=(...K)=>{return(q)=>{try{let z=`${J}:${q}`,W=Q.get(z);if(!W){if(Q.size>=X){let U=Q.keys().next().value;if(U)Q.delete(U)}W=Function(...Z,`
|
|
724
|
+
`);if(X.length===Z.length)return G;return(...K)=>{let q=Array(Q.length);for(let z=0;z<Q.length;z++)q[z]=K[Q[z]];return G(...q)}}function A5($){let Z=$.trim(),J=[/\beval\s*\(/i,/\bFunction\s*\(/i,/\bimport\s*\(/i,/\brequire\s*\(/i,/\bprocess\b/i,/\b__proto__\b/i,/\bconstructor\s*[.(]/i,/\bglobalThis\b/i,/\bwindow\b/i,/\bdocument\b/i,/\bfetch\s*\(/i,/\bBun\b/i,/\bDeno\b/i,/\bconsole\b/i,/\bthis\b/i,/\bReflect\b/i,/\bProxy\b/i,/\bprototype\b/i,/\.(bind|call|apply)\s*\(/i];for(let Y of J)if(Y.test(Z))return!1;return!0}var vY,I7,D7,xY,hY;var R0=C(()=>{vY={maxSanitizeDepth:10,allowBracketNotation:!1},I7={...vY},D7=[/\b(eval|Function|setTimeout|setInterval|setImmediate)\b/,/\b(process|require|import|exports|module)\b/,/\b(window|document|global|globalThis)\b/,/\b(constructor|prototype|__proto__)\b/,/\b(Reflect|Proxy)\b/,/\bSymbol\b/,/\b(WeakMap|WeakSet|WeakRef|FinalizationRegistry)\b/,/\b(Generator|AsyncGenerator)\b/,/__\w+__/,/\.(bind|call|apply)\s*\(/,/\bnew\s+/,/\bdelete\s+/,/\bthis\b/],xY=/[\w)\]]\s*\[\s*['"]/;hY=new Set(["break","case","catch","class","const","continue","debugger","default","delete","do","else","enum","export","extends","false","finally","for","function","if","import","in","instanceof","new","null","return","super","switch","this","throw","true","try","typeof","var","void","while","with","yield","let","static","implements","interface","package","private","protected","public","arguments","eval","await"])});function N5($,Z){let J=dY++,Y=`<!--__STX_${$.toUpperCase()}_${J}__-->`;return mY.set(Y,{type:$,expression:Z}),Y}var dY=0,mY;var E7=C(()=>{mY=new Map});var v7={};r(v7,{usesSignalsInScript:()=>R5,unescapeHtml:()=>p9,registerFilters:()=>pY,registerFilter:()=>S7,processExpressions:()=>a0,interpolateScriptsInTemplate:()=>cY,interpolateScriptExpressions:()=>C7,getAllFilters:()=>y7,evaluateExpression:()=>i0,escapeHtml:()=>z1,defaultFilters:()=>r1,clearCustomFilters:()=>lY,applyFilters:()=>P7});function uY($){let Z=k7.get($);if(!Z){let J=$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");Z=new RegExp(`:${J}(?!\\w)`,"g"),k7.set($,Z)}return Z.lastIndex=0,Z}function S7($,Z){if($ in r1)console.warn(`Filter "${$}" already exists as a built-in filter. Custom filter will take precedence.`);s1[$]=Z}function pY($){for(let[Z,J]of Object.entries($))S7(Z,J)}function y7(){return{...r1,...s1}}function lY(){for(let $ of Object.keys(s1))delete s1[$]}function z1($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function R5($){let Z=/<script\b(?![^>]*\bserver\b)(?![^>]*\bsrc\s*=)[^>]*>([\s\S]*?)<\/script>/gi,J;while((J=Z.exec($))!==null){let Y=J[1];if(/\b(state|derived|effect|ref|reactive|computed|watch|watchEffect)\s*(?:<[^>]*>)?\s*\(/.test(Y))return!0}if(/@(if|for|show)\s*=\s*["'][^"']*\(\s*\)/.test($))return!0;if(/@for\s*=\s*["'][^"']*\s+(?:in|of)\s+[^"']*\(\s*\)/.test($))return!0;return!1}function b7($,Z){let J=["parseInt","parseFloat","String","Number","Boolean","Array","Object","JSON","Math","Date","encodeURIComponent","decodeURIComponent","encodeURI","decodeURI","true","false","null","undefined","NaN","Infinity","isNaN","isFinite","window","document","console"],Y=$.replace(/'[^']*'/g,"").replace(/"[^"]*"/g,""),Q="",X=!1,G=0;for(let z=0;z<Y.length;z++){let W=Y[z];if(!X&&W==="`"){X=!0,G=0;continue}if(X){if(W==="`"&&G===0){X=!1;continue}if(W==="$"&&Y[z+1]==="{"){G++,z++;continue}if(W==="}"&&G>0){G--;continue}continue}Q+=W}Y=Q;let K=/\b([a-zA-Z_$][a-zA-Z0-9_$]*)\b/g,q;while((q=K.exec(Y))!==null){let z=q[1];if(!Y.substring(0,q.index).trimEnd().endsWith(".")){if(!J.includes(z)&&!(z in Z))return!1}}return!0}function C7($,Z){let J=$;return J=J.replace(/\{!!([\s\S]*?)!!\}/g,(Y,Q)=>{try{let X=i0(Q,Z);if(X===void 0)return Y;return X===null?"":String(X)}catch{return Y}}),J=J.replace(/\{\{([\s\S]*?)\}\}/g,(Y,Q)=>{let X=Q.trim();if(/^__[A-Z_]+__$/.test(X))return Y;try{let G=i0(Q,Z);if(G===void 0)return Y;return JSON.stringify(G)}catch{return Y}}),J}function cY($,Z,J={}){return $.replace(/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,(Y,Q,X)=>{if(/\bsrc\s*=/.test(Q))return Y;if(/\bdata-raw\b/.test(Q))return Y;if(/\btype\s*=\s*["']application\/json["']/.test(Q))return Y;if(J.skipServer&&/\bserver\b/.test(Q))return Y;let G=C7(X,Z);return`<script${Q}>${G}</script>`})}function a0($,Z,J){let Y=$,Q=[];Y=Y.replace(/<style[^>]*>[\s\S]*?<\/style>/gi,(K)=>{if(/\{\{[\s\S]*?\}\}|\{!![\s\S]*?!!\}/.test(K))return K;let q=Q.length;return Q.push(K),`<!--__STX_STYLE_${q}__-->`});let X=[];Y=Y.replace(/<script[^>]*>[\s\S]*?<\/script>/gi,(K)=>{let q=X.length;return X.push(K),`<!--__STX_SCRIPT_EXPR_${q}__-->`});let G=R5($);Y=Y.replace(/\{\{\{([\s\S]*?)\}\}\}/g,(K,q,z)=>{try{let W=i0(q,Z);return W!==void 0&&W!==null?String(W):""}catch(W){let U=W instanceof Error?W.message:String(W);return X0("Expression",`Error evaluating: {{{ ${q.trim()}}}}: ${U}`,J,$,z,K)}}),Y=Y.replace(/\{!!([\s\S]*?)!!\}/g,(K,q,z)=>{try{let W=i0(q,Z);if(W===void 0&&Z.__stx_buildMode==="compile")return N5("raw",q.trim());return W!==void 0&&W!==null?String(W):""}catch(W){if(Z.__stx_buildMode==="compile")return N5("raw",q.trim());let U=W instanceof Error?W.message:String(W);return X0("Expression",`Error evaluating: {!! ${q.trim()} !!}: ${U}`,J,$,z,K)}}),Y=Y.replace(/<script[^>]*>[\s\S]*?<\/script>/gi,(K)=>{if(K.startsWith("<!--__STX_SCRIPT_EXPR_"))return K;let q=X.length;return X.push(K),`<!--__STX_SCRIPT_EXPR_${q}__-->`}),Y=Y.replace(/<style[^>]*>[\s\S]*?<\/style>/gi,(K)=>{if(K.startsWith("<!--__STX_STYLE_"))return K;if(/\{\{[\s\S]*?\}\}|\{!![\s\S]*?!!\}/.test(K))return K;let q=Q.length;return Q.push(K),`<!--__STX_STYLE_${q}__-->`}),Y=Y.replace(/\{\{([\s\S]*?)\}\}/g,(K,q,z)=>{let W=q.trim(),U=["parseInt","parseFloat","String","Number","Boolean","Array","Object","JSON","Math","Date","encodeURIComponent","decodeURIComponent","encodeURI","decodeURI","true","false","null","undefined"],_=/^([a-zA-Z_$][a-zA-Z0-9_$]*)/,B=W.match(_)?.[1],O=B&&((B in Z)||U.includes(B)),F=/^([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/,L=W.match(F),H=L&&!U.includes(L[1])&&!(L[1]in Z);if(/^__[A-Z_]+__$/.test(W))return"";try{let V=i0(q,Z);if(V===void 0&&G&&!b7(W,Z))return K;if(V===void 0&&Z.__stx_buildMode==="compile"&&!G)return N5("expr",W);return V!==void 0&&V!==null?z1(String(V)):""}catch(V){if(G&&!b7(W,Z))return K;if(H)return K;let A=V instanceof Error?V.message:String(V);return X0("Expression",`Error evaluating: {{ ${W} }}: ${A}`,J,$,z,K)}});for(let K=0;K<X.length;K++)Y=Y.replace(`<!--__STX_SCRIPT_EXPR_${K}__-->`,()=>X[K]);for(let K=0;K<Q.length;K++)Y=Y.replace(`<!--__STX_STYLE_${K}__-->`,()=>Q[K]);return Y}function P7($,Z,J){if(!Z.trim())return $;let Y=$,Q=Z.trim();while(Q.length>0){let X=Q.match(/^(\w+)/);if(!X)break;let G=X[1];Q=Q.substring(G.length).trim();let K=s1[G]||r1[G];if(!K)throw Error(`Filter not found: ${G}. Available filters: ${Object.keys(y7()).join(", ")}`);let q=[];if(Q.startsWith(":")){let z=Q.match(/^:([^|\s]+)/);if(z){let W=z[1].trim();try{let U=Number(W);q=[Number.isNaN(U)?W:U]}catch{q=[W]}Q=Q.substring(z[0].length).trim()}}else if(Q.startsWith("(")){let z=1,W=1;while(z>0&&W<Q.length){if(Q[W]==="(")z++;if(Q[W]===")")z--;W++}if(z===0){let U=Q.substring(1,W-1).trim();if(U)try{if(U.startsWith("{")&&U.endsWith("}"))q=[i0(`(${U})`,J,!0)];else{let _=[],j="",B=null,O=0,F=0,L=0,H=!1;for(let V=0;V<U.length;V++){let A=U[V];if(H){j+=A,H=!1;continue}if(A==="\\"){j+=A,H=!0;continue}if(B){if(j+=A,A===B)B=null;continue}if(A==='"'||A==="'"||A==="`"){B=A,j+=A;continue}if(A==="(")O++;else if(A===")")O--;else if(A==="[")F++;else if(A==="]")F--;else if(A==="{")L++;else if(A==="}")L--;if(A===","&&O===0&&F===0&&L===0){_.push(j),j="";continue}j+=A}if(j)_.push(j);q=_.map((V)=>{let A=V.trim();return i0(A,J,!0)})}}catch{q=[U]}Q=Q.substring(W).trim()}}try{Y=K(Y,J,...q)}catch(z){let W=z instanceof Error?z.message:String(z);throw Error(`Error applying filter '${G}': ${W}`)}if(Q.startsWith("|"))Q=Q.substring(1).trim();else break}return Y}function iY($){let Z=!1,J="",Y=0,Q=0,X=0,G=!1;for(let K=0;K<$.length;K++){let q=$[K],z=$[K+1];if(Z&&G){G=!1;continue}if(Z&&q==="\\"){G=!0;continue}if(G=!1,(q==='"'||q==="'"||q==="`")&&!G){if(!Z)Z=!0,J=q;else if(q===J)Z=!1,J="";continue}if(Z&&J==="`"&&q==="$"&&z==="{"){let W=1;K+=2;while(K<$.length&&W>0){if($[K]==="{")W++;else if($[K]==="}")W--;if(W>0)K++}continue}if(Z)continue;if(q==="(")Y++;else if(q===")")Y--;else if(q==="[")Q++;else if(q==="]")Q--;else if(q==="{")X++;else if(q==="}")X--;if(q==="|"&&Y===0&&Q===0&&X===0){if(z==="|"){K++;continue}if(z==="="){K++;continue}return K}}return-1}function i0($,Z,J=!1){try{let Y=$.trim(),Q=iY(Y);if(Q>0){let X=Y.substring(0,Q).trim(),G=Y.substring(Q+1).trim(),K=i0(X,Z,!0);return P7(K,G,Z)}if(!t(Y)){if(!J)console.warn(`Potentially unsafe expression detected, using safe evaluator: ${Y}`);return J0(Y,Z)}try{let X=Object.keys(Z),G=Object.values(Z);return e(Y,X)(...G)}catch{return J0(Y,Z)}}catch(Y){if(Y instanceof ReferenceError){let Q=/(\b\w+)\s+is not defined/.exec(Y.message);if(Q){let X=Q[1],G=nY(X,Object.keys(Z));if(G&&G!==X)Y.message=`${Y.message} \u2014 did you mean '${G}'?`}}if(!J)console.error(`Error evaluating expression: ${$}`,Y);throw Y}}function nY($,Z){let J=null;for(let Q of Z){if(Q===$)continue;let X=oY($,Q);if(J===null||X<J.dist)J={key:Q,dist:X}}if(!J)return null;let Y=Math.max($.length,J.key.length);if(J.dist<=2||J.dist/Y<=0.35)return J.key;return null}function oY($,Z){if($===Z)return 0;if($.length===0)return Z.length;if(Z.length===0)return $.length;let[J,Y]=$.length<Z.length?[$,Z]:[Z,$],Q=Array(J.length+1),X=Array(J.length+1);for(let G=0;G<=J.length;G++)Q[G]=G;for(let G=1;G<=Y.length;G++){X[0]=G;for(let K=1;K<=J.length;K++){let q=J[K-1]===Y[G-1]?0:1;X[K]=Math.min(X[K-1]+1,Q[K]+1,Q[K-1]+q)}for(let K=0;K<=J.length;K++)Q[K]=X[K]}return Q[J.length]}function p9($){if(!$)return"";return $.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/'/g,"'").replace(/&/g,"&")}var s1,k7,r1;var t0=C(()=>{R0();A0();E7();s1={},k7=new Map;r1={uppercase:($,Z)=>{return $!==void 0&&$!==null?String($).toUpperCase():""},lowercase:($,Z)=>{return $!==void 0&&$!==null?String($).toLowerCase():""},capitalize:($,Z)=>{if($===void 0||$===null)return"";let J=String($);return J.charAt(0).toUpperCase()+J.slice(1)},number:($,Z,J=0)=>{if($===void 0||$===null)return"";try{let Y=Number($);return Number.isNaN(Y)?"":Y.toFixed(Number.parseInt(String(J),10))}catch{return""}},fmt:($,Z,J="en-US")=>{if($===void 0||$===null)return"";try{let Y=Number($);if(Number.isNaN(Y))return String($);return Y.toLocaleString(J)}catch{return String($)}},join:($,Z,J=",")=>{if(!Array.isArray($))return"";return $.join(String(J))},escape:($,Z)=>{if($===void 0||$===null)return"";return z1(String($))},translate:($,Z,J={})=>{if(!Z||!Z.__translations)return $;let Y=Z.__translations,Q=Z.__i18nConfig?.fallbackToKey??!0,X=String($).split("."),G=Y;for(let q of X){if(G===void 0||G===null)break;G=G[q]}if(G===void 0||G===null)return Q?$:"";let K=String(G);return Object.entries(J).forEach(([q,z])=>{K=K.replace(uY(q),String(z))}),K},t:($,Z,J={})=>{return r1.translate($,Z,J)},truncate:($,Z,J=50,Y="...")=>{if($===void 0||$===null)return"";let Q=String($);if(Q.length<=J)return Q;if(J<=Y.length)return Y.substring(0,J);return Q.substring(0,J-Y.length)+Y},date:($,Z,J="short",Y="en-US")=>{if($===void 0||$===null)return"";try{let Q=$ instanceof Date?$:new Date($);if(Number.isNaN(Q.getTime()))return String($);let X={short:{dateStyle:"short"},medium:{dateStyle:"medium"},long:{dateStyle:"long"},full:{dateStyle:"full"},time:{timeStyle:"short"},datetime:{dateStyle:"short",timeStyle:"short"},iso:{}};if(J==="iso")return Q.toISOString();return new Intl.DateTimeFormat(Y,X[J]||X.short).format(Q)}catch{return String($)}},currency:($,Z,J="USD",Y="en-US")=>{if($===void 0||$===null)return"";try{let Q=Number($);if(Number.isNaN(Q))return String($);return new Intl.NumberFormat(Y,{style:"currency",currency:J}).format(Q)}catch{return String($)}},pluralize:($,Z,J,Y)=>{let Q=Number($);if(Number.isNaN(Q))return J;let X=Y||`${J}s`;return Q===1?J:X},first:($,Z)=>{if($===void 0||$===null)return"";if(Array.isArray($))return $.length===0?"":$[0];return String($).charAt(0)},last:($,Z)=>{if($===void 0||$===null)return"";if(Array.isArray($))return $.length===0?"":$[$.length-1];let J=String($);return J.charAt(J.length-1)},length:($,Z)=>{if($===void 0||$===null)return 0;if(Array.isArray($)||typeof $==="string")return $.length;if($ instanceof Map||$ instanceof Set)return $.size;if(typeof $==="object")return Object.keys($).length;return 0},json:($,Z,J=!1)=>{if($===void 0)return"undefined";if($===null)return"null";try{return J?JSON.stringify($,null,2):JSON.stringify($)}catch{return String($)}},default:($,Z,J="")=>{return $===void 0||$===null||$===""?J:$},reverse:($,Z)=>{if($===void 0||$===null)return"";if(Array.isArray($))return[...$].reverse();return String($).split("").reverse().join("")},slice:($,Z,J=0,Y)=>{if($===void 0||$===null)return"";if(Array.isArray($)||typeof $==="string")return $.slice(J,Y);return $},replace:($,Z,J,Y="")=>{if($===void 0||$===null)return"";let Q=J.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return String($).replace(new RegExp(Q,"g"),()=>Y)},stripTags:($,Z)=>{if($===void 0||$===null)return"";return String($).replace(/<[^>]*>/g,"")},urlencode:($,Z)=>{if($===void 0||$===null)return"";return encodeURIComponent(String($))},abs:($,Z)=>{let J=Number($);return Number.isNaN(J)?0:Math.abs(J)},round:($,Z,J=0)=>{let Y=Number($);if(Number.isNaN(Y))return 0;let Q=10**J;return Math.round(Y*Q)/Q}}});class a1{cache=new Map;maxSize;constructor($=100){this.maxSize=$}get($){if(!this.cache.has($))return;let Z=this.cache.get($);return this.cache.delete($),this.cache.set($,Z),Z}set($,Z){if(this.cache.has($))this.cache.delete($);else if(this.cache.size>=this.maxSize){let J=this.cache.keys().next().value;if(J!==void 0)this.cache.delete(J)}this.cache.set($,Z)}has($){return this.cache.has($)}delete($){return this.cache.delete($)}clear(){this.cache.clear()}get size(){return this.cache.size}keys(){return this.cache.keys()}values(){return this.cache.values()}}function D1($,Z){if(Z?.includes("g"))return new RegExp($,Z);let J=`${$}:${Z||""}`;if(!I1.has(J)){if(I1.size>=sY){let Y=I1.keys().next().value;if(Y)I1.delete(Y)}I1.set(J,new RegExp($,Z))}return I1.get(J)}class x7{pool=[];maxPoolSize=10;fnCache=new Map;fnCacheMaxSize=200;getEvaluator($){let Z=Array.from(new Set($)),J=Z.sort().join(","),Y=this.pool.find((K)=>K.context.join(",")===J);if(Y)return Y.func;let Q=this.fnCache,X=this.fnCacheMaxSize,G=(...K)=>{return(q)=>{try{let z=`${J}:${q}`,W=Q.get(z);if(!W){if(Q.size>=X){let U=Q.keys().next().value;if(U)Q.delete(U)}W=Function(...Z,`
|
|
723
725
|
'use strict';
|
|
724
726
|
try {
|
|
725
727
|
return ${q};
|
|
@@ -730,47 +732,47 @@ catch (e) {
|
|
|
730
732
|
}
|
|
731
733
|
throw e;
|
|
732
734
|
}
|
|
733
|
-
`),Q.set(z,W)}return W(...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
|
|
735
|
+
`),Q.set(z,W)}return W(...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 f7{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,J]of Object.entries($))this.setBudget(Z,J)}removeBudget($){this.budgets.delete($)}getBudgets(){let $={};for(let[Z,J]of this.budgets.entries())$[Z]=J;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 J=performance.now(),Y=Z(),Q=performance.now()-J;return this.recordTime($,Q),this.checkBudget($,Q),Y}async timeAsync($,Z){if(!this.enabled)return Z();let J=performance.now(),Y=await Z(),Q=performance.now()-J;return this.recordTime($,Q),this.checkBudget($,Q),Y}checkBudget($,Z){let J=this.budgets.get($);if(!J)return;let Y=Z/J.maxTime*100,Q=J.warnThreshold!==void 0?Z>=J.maxTime*J.warnThreshold&&Z<J.maxTime:!1,X=Z>=J.maxTime;if(!Q&&!X)return;let G={label:$,actualTime:Z,budgetTime:J.maxTime,exceedancePercent:Y,timestamp:new Date,isWarning:Q};this.violations.push(G);while(this.violations.length>this.maxViolations)this.violations.shift();for(let q of this.violationHandlers)try{q(G)}catch{}let K=Q?`[Performance Warning] "${$}" took ${Z.toFixed(2)}ms (${Y.toFixed(1)}% of ${J.maxTime}ms budget)`:`[Performance Budget Exceeded] "${$}" took ${Z.toFixed(2)}ms (exceeded ${J.maxTime}ms budget by ${(Y-100).toFixed(1)}%)`;switch(J.action){case"log":console.log(K);break;case"warn":console.warn(K);break;case"error":console.error(K);break;case"throw":if(X)throw Error(K);else console.warn(K);break}}recordTime($,Z){let J=this.metrics.get($);if(J)J.count++,J.totalTime+=Z,J.maxTime=Math.max(J.maxTime,Z),J.minTime=Math.min(J.minTime,Z);else this.metrics.set($,{count:1,totalTime:Z,maxTime:Z,minTime:Z})}getStats($){if($){let J=this.metrics.get($);if(!J)return{};let Y=this.budgets.get($);return{count:J.count,avgTime:J.totalTime/J.count,totalTime:J.totalTime,maxTime:J.maxTime,minTime:J.minTime,budget:Y?.maxTime,budgetUtilization:Y?J.totalTime/J.count/Y.maxTime*100:void 0}}let Z={};for(let[J,Y]of this.metrics.entries()){let Q=this.budgets.get(J);Z[J]={count:Y.count,avgTime:Y.totalTime/Y.count,totalTime:Y.totalTime,maxTime:Y.maxTime,minTime:Y.minTime,budget:Q?.maxTime,budgetUtilization:Q?Y.totalTime/Y.count/Q.maxTime*100:void 0}}return Z}getViolations($){if($)return this.violations.filter((Z)=>Z.label===$);return[...this.violations]}getViolationStats(){let $={},Z=0,J=0;for(let Y of this.violations)if($[Y.label]=($[Y.label]||0)+1,Y.isWarning)Z++;else J++;return{total:this.violations.length,byLabel:$,warnings:Z,errors:J}}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 rY(){if(!l9)l9=new f7;return l9}var I1,sY=500,Yz,l9=null,g7;var E1=C(()=>{I1=new Map;Yz=new x7;g7=new Proxy({},{get($,Z){return rY()[Z]}})});function h7($,Z=""){let J=`${$}${Z}`,Y=0;for(let Q=0;Q<J.length;Q++){let X=J.charCodeAt(Q);Y=(Y<<5)-Y+X,Y=Y&Y}return`stx-${Math.abs(Y).toString(36)}`}function d7($,Z,J={}){let{prefix:Y="",preserveHost:Q=!0,scopeKeyframes:X=!0,scopeCustomProperties:G=!1}=J;if(!$.trim())return"";let K=c9($),q=[],z=new Map;if(X)for(let W of K){let U=W.selector.match(/@keyframes\s+([a-z_-][a-z0-9_-]*)/i);if(U){let _=U[1],j=`${Z}_${_}`;z.set(_,j)}}for(let W of K){let U=m7(W,Z,Y,Q,z,G);q.push(U)}return q.join(`
|
|
734
736
|
|
|
735
|
-
`)}function
|
|
736
|
-
`)})}else Z.push({selector:`@${W} ${U.trim()}`,declarations:_.trim()})}G="",X=!1}else if(Q.trim()){Q+=q;let z=Q.match(/([^{]+)\{([^}]*)\}/);if(z)Z.push({selector:z[1].trim(),declarations:z[2].trim()});Q=""}continue}}if(X)G+=q;else Q+=q}return Z}function
|
|
737
|
+
`)}function c9($){let Z=[],J=$.replace(/\/\*[\s\S]*?\*\//g,""),Y=0,Q="",X=!1,G="";for(let K=0;K<J.length;K++){let q=J[K];if(q==="@"&&Y===0)X=!0;if(q==="{")Y++;else if(q==="}"){if(Y--,Y===0){if(X){G+=q;let z=G.match(/@([a-z-]+)\s*([^{]*)\{([\s\S]*)\}/i);if(z){let[,W,U,_]=z;if(W==="keyframes")Z.push({selector:`@keyframes ${U.trim()}`,declarations:_.trim()});else if(W==="media"||W==="supports"||W==="container"){let j=c9(_);Z.push({selector:`@${W} ${U.trim()}`,declarations:j.map((B)=>`${B.selector} { ${B.declarations} }`).join(`
|
|
738
|
+
`)})}else Z.push({selector:`@${W} ${U.trim()}`,declarations:_.trim()})}G="",X=!1}else if(Q.trim()){Q+=q;let z=Q.match(/([^{]+)\{([^}]*)\}/);if(z)Z.push({selector:z[1].trim(),declarations:z[2].trim()});Q=""}continue}}if(X)G+=q;else Q+=q}return Z}function m7($,Z,J,Y,Q,X){let{selector:G,declarations:K}=$;if(G.startsWith("@")){if(G.startsWith("@keyframes")){let W=G.replace("@keyframes ","").trim();return`@keyframes ${Q.get(W)||W} { ${K} }`}if(G.startsWith("@media")||G.startsWith("@supports")||G.startsWith("@container")){let U=c9(`x { ${K} }`.replace(/x \{ /,"").replace(/ \}$/,"")).map((_)=>m7(_,Z,J,Y,Q,X)).join(`
|
|
737
739
|
`);return`${G} {
|
|
738
740
|
${U}
|
|
739
|
-
}`}return`${G} { ${K} }`}let q=
|
|
740
|
-
`)}function
|
|
741
|
-
`,""}),headContent:Z.trim()}}function
|
|
742
|
-
`);for(let Q of Y){let X=null,G=!1;for(let K=0;K<Q.length;K++){let q=Q[K];if(G){G=!1;continue}if(q==="\\"){G=!0;continue}if(X){if(q===X)X=null;continue}if(q==="'"||q==='"'||q==="`"){X=q;continue}if(q==="/"&&K+1<Q.length&&Q[K+1]==="/")break;if(q==="{")J++;else if(q==="}")J--}if(J===0){let K=Q.match(/(?:const|let|var)\s+(\w+)\s*=/);if(K)Z.push(K[1]);else{let q=Q.match(/(?:const|let|var)\s+(\{[^}]+\}|\[[^\]]+\])\s*=/);if(q){let W=q[1].slice(1,-1).split(",").map((U)=>{let _=U.split(":");return(_.length>1?_[1]:_[0]).trim()}).filter((U)=>/^\w+$/.test(U));Z.push(...W)}}}}return[...new Set(Z)]}function
|
|
741
|
+
}`}return`${G} { ${K} }`}let q=aY(G,Z,J,Y),z=K;for(let[W,U]of Q)z=z.replace(new RegExp(`\\b${W}\\b`,"g"),U);if(X)z=z.replace(/--([a-z-]+)/gi,`--${Z}-$1`);return`${q} { ${z} }`}function aY($,Z,J,Y){let Q=$.split(",").map((G)=>G.trim()),X=[];for(let G of Q){if(G.startsWith(":host")){if(Y)X.push(G);else{let q=G.replace(/:host(\([^)]*\))?/,`.${Z}$1`);X.push(q)}continue}if(G.includes("::slotted")){X.push(G);continue}if(G===":root"){X.push(`:root .${Z}`);continue}let K=J?`${J} .${Z}`:`.${Z}`;X.push(`${K} ${G}`)}return X.join(", ")}function T5($,Z){if(!/<style\s+[^>]*\bscoped\b/i.test($))return{html:$,hasScoped:!1};let J=h7(Z),Y=`data-v-${J}`,Q=$,X=/<style\s+([^>]*\bscoped\b[^>]*)>([\s\S]*?)<\/style>/gi,G=!1;if(Q=Q.replace(X,(K,q,z)=>{G=!0;let W=tY(z,Y),U=q.replace(/\bscoped\b/gi,"").trim(),_=U?` ${U}`:"";return`<style data-stx-scoped="${J}"${_}>${W}</style>`}),!G)return{html:$,hasScoped:!1};return Q=eY(Q,Y),{html:Q,hasScoped:!0}}function tY($,Z){return d7($,"__SCOPE_PLACEHOLDER__",{preserveHost:!1}).replace(/\.(__SCOPE_PLACEHOLDER__) /g,`[${Z}] `).replace(/\.(__SCOPE_PLACEHOLDER__)/g,`[${Z}]`)}function eY($,Z){let J=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,(Y,Q,X)=>{if(J.has(Q.toLowerCase()))return Y;if(Y.includes(Z))return Y;if(Q.toLowerCase()==="style"||Q.toLowerCase()==="script")return Y;if(X)return Y.replace(`<${Q}${X}`,`<${Q} ${Z}${X}`);if(Y.endsWith("/>"))return`<${Q} ${Z} />`;return`<${Q} ${Z}>`})}var i9=()=>{};var u7=()=>{};function D0($,Z,J,Y=0){let Q=0,X=Y,G=null,K=0,q=!1;while(X<$.length){let z=$[X];if(G&&q){q=!1,X++;continue}if(G&&z==="\\"){q=!0,X++;continue}if(q=!1,(z==='"'||z==="'"||z==="`")&&!G){G=z,X++;continue}if(z===G&&G!=="`"){G=null,X++;continue}if(G==="`"&&z==="$"&&$[X+1]==="{"){K++,X+=2;continue}if(K>0&&z==="}"){K--,X++;continue}if(z==="`"&&G==="`"&&K===0){G=null,X++;continue}if(G){X++;continue}if(z===Z)Q++;else if(z===J){if(Q--,Q===0)return X}X++}return-1}var n9={};r(n9,{useTitle:()=>QJ,useSeoMeta:()=>I5,usePageTitle:()=>QJ,useHead:()=>_1,resetHead:()=>YJ,renderHtmlAttrs:()=>KJ,renderHead:()=>GJ,renderBodyAttrs:()=>qJ,processTitleDirective:()=>UJ,processMetaDirective:()=>_J,processHeadDirective:()=>zJ,getPageMeta:()=>ZJ,getHead:()=>t1,definePageMeta:()=>XJ,applyHead:()=>WJ});function t1(){return e0}function ZJ(){return M5}function YJ(){e0={},$J.length=0,M5={}}function _1($){e0=JJ(e0,$)}function JJ($,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 I5($){let Z=[];if($.description)Z.push({name:"description",content:$.description});if($.keywords){let q=Array.isArray($.keywords)?$.keywords.join(", "):$.keywords;Z.push({name:"keywords",content:q})}if($.author)Z.push({name:"author",content:$.author});if($.robots)Z.push({name:"robots",content:$.robots});let J=$.ogTitle??$.title,Y=$.ogDescription??$.description;if(J)Z.push({property:"og:title",content:J});if(Y)Z.push({property:"og:description",content:Y});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 Q=$.twitterTitle??$.title,X=$.twitterDescription??$.description,G=$.twitterImage??$.ogImage;if($.twitterCard)Z.push({name:"twitter:card",content:$.twitterCard});if(Q)Z.push({name:"twitter:title",content:Q});if(X)Z.push({name:"twitter:description",content:X});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 q of $.articleTags)Z.push({property:"article:tag",content:q});let K=[];if($.canonical)K.push({rel:"canonical",href:$.canonical});_1({title:$.title,titleTemplate:$.titleTemplate,meta:Z,link:K})}function XJ($){if(M5={...M5,...$},$.title||$.description)I5({title:$.title,description:$.description})}function QJ($){let Z=typeof $==="function"?$():$;_1({title:Z})}function GJ($=e0){let Z=[];if($.title){let J=$.title;if($.titleTemplate)J=typeof $.titleTemplate==="function"?$.titleTemplate(J):$.titleTemplate.replace("%s",J);Z.push(`<title>${U1(J)}</title>`)}if($.base){let J=Object.entries($.base).map(([Y,Q])=>`${Y}="${U1(Q)}"`).join(" ");Z.push(`<base ${J}>`)}for(let J of $.meta||[]){let Y=Object.entries(J).filter(([Q,X])=>X!==void 0).map(([Q,X])=>{return`${Q==="httpEquiv"?"http-equiv":Q}="${U1(String(X))}"`}).join(" ");Z.push(`<meta ${Y}>`)}for(let J of $.link||[]){let Y=Object.entries(J).filter(([Q,X])=>X!==void 0).map(([Q,X])=>`${Q}="${U1(String(X))}"`).join(" ");Z.push(`<link ${Y}>`)}for(let J of $.script||[]){let{content:Y,...Q}=J,X=Object.entries(Q).filter(([G,K])=>K!==void 0).map(([G,K])=>{if(typeof K==="boolean")return K?G:"";return`${G}="${U1(String(K))}"`}).filter(Boolean).join(" ");if(Y)Z.push(`<script ${X}>${Y}</script>`);else Z.push(`<script ${X}></script>`)}for(let J of $.style||[]){let Y=J.type?` type="${J.type}"`:"";Z.push(`<style${Y}>${J.content}</style>`)}return Z.join(`
|
|
742
|
+
`)}function KJ($=e0){if(!$.htmlAttrs)return"";return Object.entries($.htmlAttrs).map(([Z,J])=>`${Z}="${U1(J)}"`).join(" ")}function qJ($=e0){if(!$.bodyAttrs)return"";return Object.entries($.bodyAttrs).map(([Z,J])=>`${Z}="${U1(J)}"`).join(" ")}function U1($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function WJ($=e0){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 J=Z.name?`meta[name="${Z.name}"]`:Z.property?`meta[property="${Z.property}"]`:null;if(J){let Y=document.querySelector(J);if(!Y){if(Y=document.createElement("meta"),Z.name)Y.setAttribute("name",Z.name);if(Z.property)Y.setAttribute("property",Z.property);document.head.appendChild(Y)}Y.setAttribute("content",Z.content)}}for(let Z of $.link||[]){let J=`link[rel="${Z.rel}"]${Z.href?`[href="${Z.href}"]`:""}`,Y=document.querySelector(J);if(!Y)Y=document.createElement("link"),document.head.appendChild(Y);for(let[Q,X]of Object.entries(Z))if(X!==void 0)Y.setAttribute(Q,String(X))}if($.htmlAttrs)for(let[Z,J]of Object.entries($.htmlAttrs))document.documentElement.setAttribute(Z,J);if($.bodyAttrs)for(let[Z,J]of Object.entries($.bodyAttrs))document.body.setAttribute(Z,J)}function zJ($){let Z="";return{content:$.replace(/@head\s*([\s\S]*?)@endhead/g,(Y,Q)=>{return Z+=Q.trim()+`
|
|
743
|
+
`,""}),headContent:Z.trim()}}function UJ($,Z){return $.replace(/@title\s*\(\s*(?:(['"`])(.+?)\1|([^)]+))\s*\)/g,(J,Y,Q,X)=>{let G=Y?Q:Z[(X||"").trim()]??X;return _1({title:G}),""})}function _J($,Z){return $.replace(/@meta\s*\(\s*(['"`])(.+?)\1\s*,\s*(?:(['"`])(.+?)\3|([^)]+))\s*\)/g,(J,Y,Q,X,G,K)=>{let q=X?G:K,z=X?q:Z[(q||"").trim()]??q,U=Q.includes(":")?{property:Q,content:z}:{name:Q,content:z};return _1({meta:[U]}),""})}var e0,$J,M5;var e1=C(()=>{e0={},$J=[],M5={}});var D5={};r(D5,{stripTypeScript:()=>i7,hasVariables:()=>t7,extractVariables:()=>n7,extractScriptFromTemplate:()=>a7,convertToCommonJS:()=>s9});import k1 from"path";function BJ($){let Z=[],J=0,Y=$.split(`
|
|
744
|
+
`);for(let Q of Y){let X=null,G=!1;for(let K=0;K<Q.length;K++){let q=Q[K];if(G){G=!1;continue}if(q==="\\"){G=!0;continue}if(X){if(q===X)X=null;continue}if(q==="'"||q==='"'||q==="`"){X=q;continue}if(q==="/"&&K+1<Q.length&&Q[K+1]==="/")break;if(q==="{")J++;else if(q==="}")J--}if(J===0){let K=Q.match(/(?:const|let|var)\s+(\w+)\s*=/);if(K)Z.push(K[1]);else{let q=Q.match(/(?:const|let|var)\s+(\{[^}]+\}|\[[^\]]+\])\s*=/);if(q){let W=q[1].slice(1,-1).split(",").map((U)=>{let _=U.split(":");return(_.length>1?_[1]:_[0]).trim()}).filter((U)=>/^\w+$/.test(U));Z.push(...W)}}}}return[...new Set(Z)]}function i7($){let Z=$;Z=Z.replace(/^\s*import\s+.*?from\s+['"][^'"]+['"]\s*;?\s*$/gm,""),Z=Z.replace(/^\s*import\s+['"][^'"]+['"]\s*;?\s*$/gm,""),Z=Z.replace(/^\s*interface\s+\w+\s*\{[\s\S]*?\n\}\s*$/gm,""),Z=Z.replace(/^\s*type\s+\w+\s*=[\s\S]*?(?=\n(?:const|let|var|function|export|interface|type|$))/gm,""),Z=Z.replace(/^(\s*(?:export\s+)?(?:const|let|var)\s+)(\w+|\{[^}]+\}|\[[^\]]+\])\s*:\s*[^=]+(\s*=)/gm,"$1$2$3");function J(Y){if(!Y.includes(":"))return Y;let Q=[],X="",G=0,K=0,q=null;for(let z=0;z<Y.length;z++){let W=Y[z];if(q){if(X+=W,W===q)q=null;continue}if(W==='"'||W==="'"||W==="`"){q=W,X+=W;continue}if(W==="<")G++;else if(W===">"&&G>0)G--;else if(W==="(")K++;else if(W===")")K--;if(W===","&&G===0&&K===0){Q.push(X),X="";continue}X+=W}if(X)Q.push(X);return Q.map((z)=>{let W=z.trim(),U=W.startsWith("..."),_=U?W.slice(3):W,j=-1,B=0;for(let w=0;w<_.length;w++)if(_[w]==="<")B++;else if(_[w]===">")B--;else if(_[w]===":"&&B===0){j=w;break}if(j===-1)return z;let F=_.substring(0,j).trim().replace(/\?$/,""),L=_.substring(j+1),H=-1,V=0;for(let w=0;w<L.length;w++)if(L[w]==="<")V++;else if(L[w]===">")V--;else if(L[w]==="="&&V===0){H=w;break}let A=U?"...":"";if(H!==-1)return`${A}${F} = ${L.substring(H+1).trim()}`;return`${A}${F}`}).join(", ")}Z=Z.replace(/\b(function\s+\w*\s*)\(([^)]*)\)/g,(Y,Q,X)=>{if(!X.includes(":"))return Y;return`${Q}(${J(X)})`});{let Y=/\b(function\s+\w*\s*)\(/g,Q,X=[];while((Q=Y.exec(Z))!==null){let G=Q.index+Q[0].length-1,K=1,q=G+1,z=0,W=null;while(q<Z.length&&K>0){let j=Z[q];if(W){if(j===W)W=null;q++;continue}if(j==='"'||j==="'"||j==="`"){W=j,q++;continue}if(j==="<")z++;else if(j===">"&&z>0)z--;else if(z===0){if(j==="(")K++;else if(j===")")K--}if(K>0)q++}if(K!==0)continue;let U=Z.substring(G+1,q);if(!U.includes(":"))continue;let _=J(U);X.push({start:G+1,end:q,replacement:_})}for(let G=X.length-1;G>=0;G--){let{start:K,end:q,replacement:z}=X[G];Z=Z.substring(0,K)+z+Z.substring(q)}}return Z=Z.replace(/\(([^)]*)\)\s*(?::\s*[^=]+)?\s*=>/g,(Y,Q)=>{if(!Q.includes(":"))return Y;if(Q.includes("{")||Q.includes("}"))return Y;return`(${Q.split(",").map((G)=>{let[K,...q]=G.split("="),z=K.split(":")[0].trim();if(q.length>0)return`${z} = ${q.join("=").trim()}`;return z}).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,`
|
|
743
745
|
|
|
744
|
-
`),Z}async function
|
|
745
|
-
`),
|
|
746
|
+
`),Z}async function n7($,Z,J){if(!$.trim())return;let Y;try{let P=new Bun.Transpiler({loader:"ts",target:"browser",define:f0()}),v=$.replace(/^\s*import\s+\w+\s+from\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");v=v.replace(/^\s*import\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,""),Y=P.transformSync(v)}catch{Y=i7($)}let Q={exports:{}},X=Q.exports,G=process.cwd(),K={},q=[...Y.matchAll(/require\s*\(\s*['"]([^'"]+)['"]\s*\)/g)||[]].map((P)=>P[1]).filter((P)=>!P.startsWith("node:")&&!P.startsWith(".")&&!["fs","path","os","child_process","crypto","http","https","url","util","stream","events","buffer","net","querystring","zlib","tls"].includes(P));for(let P of q)try{let v=k1.resolve(G,"node_modules",P),f=k1.join(v,"package.json"),l=JSON.parse(Y0("fs").readFileSync(f,"utf8")),q0=l.main||"index.js";if(l.exports){let g=typeof l.exports==="string"?l.exports:l.exports["."];if(typeof g==="string")q0=g;else if(g?.bun)q0=g.bun;else if(g?.import)q0=g.import;else if(g?.default)q0=g.default}K[P]=await import(k1.resolve(v,q0))}catch{}let z=(P)=>{if(K[P])return K[P];return Y0(P)},W=Z.props||{},U=Object.assign((P)=>{if(!P)return W;let v={};for(let[f,l]of Object.entries(P)){let q0=W[f];if(q0!==void 0)v[f]=q0;else if(typeof l==="function")v[f]=l();else v[f]=l}return v},W),_=()=>W,j=(P,v)=>{let f={...P};for(let[l,q0]of Object.entries(v))if(f[l]===void 0)if(typeof q0==="function")f[l]=q0();else f[l]=q0;return f},B=(P)=>{let v=()=>P;return v.set=(f)=>{},v.update=(f)=>{},v},O=(P)=>{let v,f=!1;return()=>{if(!f)try{v=P(),f=!0}catch{v=void 0}return v}},F=(P)=>{},L=(P)=>P(),H=(P)=>{},V=(P)=>{},A=(P)=>{},w=()=>({params:{},query:{},path:"",name:"",fullPath:"",hash:"",matched:[]}),N=()=>({push:(P)=>{},replace:(P)=>{},back:()=>{},forward:()=>{},go:(P)=>{}}),R=(P)=>{_1(P);let v=Z.__stx_runtime_head||{},f=P||{};Z.__stx_runtime_head={...v,...f.title&&{title:f.title},meta:[...v.meta||[],...f.meta||[]],link:[...v.link||[],...f.link||[]],script:[...v.script||[],...f.script||[]],htmlAttrs:{...v.htmlAttrs||{},...f.htmlAttrs||{}},bodyAttrs:{...v.bodyAttrs||{},...f.bodyAttrs||{}}}},T=(P)=>{I5(P);let v=t1();Z.__stx_runtime_head={...Z.__stx_runtime_head||{},...v.title&&{title:v.title},meta:v.meta?[...v.meta]:[]}},I=(P)=>({value:P}),M=(P)=>P,E=(P)=>({value:typeof P==="function"?P():P}),k=(P,v)=>{},y=(P)=>{},S=(P)=>{},b=(P)=>P?P():Promise.resolve(),D=(P)=>(v,...f)=>{},x=(P)=>{},h=(P,v)=>{},i=(P,v)=>v,U0=()=>({value:"light"}),H0=()=>({value:!1}),_0={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:{}},C0=new Proxy(_0,{get(P,v){if(v in P)return P[v];return},set(P,v,f){return P[v]=f,!0}}),p0={getElementById:()=>null,querySelector:()=>null,querySelectorAll:()=>[],createElement:()=>({}),createTextNode:()=>({}),body:{},head:{},documentElement:{},addEventListener:()=>{},removeEventListener:()=>{}},L0=console;try{let P=s9(Y,J),v=new Set(Object.keys(W)),f=Object.keys(Z).filter((a)=>!v.has(a)&&a!=="props"),l=f.map((a)=>Z[a]),q0=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"]),g=[],n=[];for(let[a,T1]of Object.entries(W)){if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(a))continue;if(q0.has(a))continue;if(new RegExp(`(?:^|[\\s;{])(?:const|let|var|function)\\s+${a}\\b`).test(P))continue;g.push(a),n.push(T1)}let Z0=BJ(P).map((a)=>`module.exports.${a} = typeof ${a} !== 'undefined' ? ${a} : module.exports.${a};`).join(`
|
|
747
|
+
`),z0=Z.params??{},k0=[],o0=[];for(let a=0;a<f.length;a++){if(f[a]==="params")continue;k0.push(f[a]),o0.push(l[a])}let V5=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",...g,...k0,`return (async () => {
|
|
746
748
|
${P}
|
|
747
|
-
${
|
|
749
|
+
${Z0}
|
|
748
750
|
return module.exports
|
|
749
|
-
})()`)(Q,X,z,W,U,_,j,B,O,F,L,H,V,A,w,N,R,T,I,M,E,k,y,S,b,D,x,h,
|
|
750
|
-
`),Q=[],X=0;while(X<Y.length){let G=Y[X].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(;X<Y.length;X++){for(let q of Y[X])if(q==="{")K++;else if(q==="}")K--;if(K<=0)break}}X++;continue}if(G.startsWith("definePageMeta(")){let K=0,q=!1;for(let z=X;z<Y.length&&!q;z++){let W=null,U=!1,_=Y[z];for(let j=0;j<_.length;j++){let B=_[j];if(U){U=!1;continue}if(B==="\\"){U=!0;continue}if(W){if(B===W)W=null;continue}if(B==='"'||B==="'"||B==="`"){W=B;continue}if(B==="(")K++;else if(B===")"){if(K--,K===0){X=z+1,q=!0;break}}}}if(!q)X=Y.length;continue}if(G.startsWith("import ")){let K=G.match(/^import\s+(\w+)\s+from\s+['"](.+)['"]/),q=G.match(/^import\s+\{([^}]+)\}\s+from\s+['"](.+)['"]/),z=G.match(/^import\s+['"](.+)['"]/),W=(U)=>{if(U.startsWith("."))return
|
|
751
|
-
`+_;if(W<=0&&U>=X)break}Q.push(z),Q.push(`module.exports.${q} = ${q};`),X=U+1}else Q.push(G),X++}else if(G.includes("module.exports"))Q.push(G),X++;else if(G.trim()&&!G.startsWith("//"))Q.push(G),X++;else X++}return
|
|
752
|
-
`),J)}function
|
|
753
|
-
`)G=!1;Q++;continue}if(K){if(Y+=z,z==="*"&&W==="/"){Y+=W,Q+=2,K=!1;continue}Q++;continue}if(!X&&z==="/"&&W==="/"){G=!0,Y+=z,Q++;continue}if(!X&&z==="/"&&W==="*"){K=!0,Y+=z,Q++;continue}if(X){if(Y+=z,z==="\\"){Y+=W,Q+=2;continue}if(z===X&&X!=="`"){X=null,Q++;continue}if(X==="`"){if(z==="$"&&W==="{"){q++,Y+=W,Q+=2;continue}if(z==="`"){X=null,Q++;continue}}Q++;continue}if(q>0){if(z==="{")q++;else if(z==="}")q--}if(z==='"'||z==="'"||z==="`"){X=z,Y+=z,Q++;continue}if(z==="a"&&$.startsWith("await",Q)){let U=
|
|
751
|
+
})()`)(Q,X,z,W,U,_,j,B,O,F,L,H,V,A,w,N,R,T,I,M,E,k,y,S,b,D,x,h,i,U0,H0,C0,p0,L0,_0.confirm,_0.alert,_0.fetch,z0,...n,...o0);Object.assign(Z,V5);for(let[a,T1]of Object.entries(W))if(!(a in Z))Z[a]=T1}catch{try{await FJ(Y,Z,J)}catch{}}}function s9($,Z){let J=Z?k1.dirname(Z):process.cwd(),Y=$.split(`
|
|
752
|
+
`),Q=[],X=0;while(X<Y.length){let G=Y[X].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(;X<Y.length;X++){for(let q of Y[X])if(q==="{")K++;else if(q==="}")K--;if(K<=0)break}}X++;continue}if(G.startsWith("definePageMeta(")){let K=0,q=!1;for(let z=X;z<Y.length&&!q;z++){let W=null,U=!1,_=Y[z];for(let j=0;j<_.length;j++){let B=_[j];if(U){U=!1;continue}if(B==="\\"){U=!0;continue}if(W){if(B===W)W=null;continue}if(B==='"'||B==="'"||B==="`"){W=B;continue}if(B==="(")K++;else if(B===")"){if(K--,K===0){X=z+1,q=!0;break}}}}if(!q)X=Y.length;continue}if(G.startsWith("import ")){let K=G.match(/^import\s+(\w+)\s+from\s+['"](.+)['"]/),q=G.match(/^import\s+\{([^}]+)\}\s+from\s+['"](.+)['"]/),z=G.match(/^import\s+['"](.+)['"]/),W=(U)=>{if(U.startsWith("."))return k1.resolve(J,U);return U};if(K){let[,U,_]=K,j=W(_);Q.push(`const ${U} = await import('${j}')`),Q.push(`module.exports.${U} = ${U};`)}else if(q){let[,U,_]=q,j=U.trim(),B=W(_);Q.push(`const { ${j} } = await import('${B}')`);for(let O of j.split(",")){let F=O.trim().split(/\s+as\s+/).pop()?.trim();if(F)Q.push(`module.exports.${F} = ${F};`)}}else if(z){let U=W(z[1]);Q.push(`await import('${U}')`)}else Q.push(G);X++;continue}if(G.startsWith("export const ")||G.startsWith("export let ")||G.startsWith("export var ")){let K=p7(Y,X),{type:q,name:z,value:W}=K;Q.push(`${q} ${z} = ${W};`),Q.push(`module.exports.${z} = ${z};`),X=K.nextIndex}else if(G.startsWith("export function ")||G.startsWith("export async function ")){let K=o9(Y,X);Q.push(K.functionCode),Q.push(`module.exports.${K.name} = ${K.name};`),X=K.nextIndex}else if(G.startsWith("const ")||G.startsWith("let ")||G.startsWith("var ")){let K=p7(Y,X),{type:q,name:z,value:W}=K;Q.push(`${q} ${z} = ${W};`),Q.push(`module.exports.${z} = ${z};`),X=K.nextIndex}else if(G.startsWith("function ")||G.startsWith("async function ")){let K=o9(Y,X);Q.push(K.functionCode),Q.push(`module.exports.${K.name} = ${K.name};`),X=K.nextIndex}else if(G.startsWith("export default function ")||G.startsWith("export default async function ")){let K=Y[X].replace(/^(\s*)export\s+default\s+/,"$1"),q=[...Y];q[X]=K;let z=o9(q,X);if(Q.push(z.functionCode),z.name)Q.push(`module.exports.default = ${z.name};`);X=z.nextIndex}else if(G.startsWith("export default ")){let K=G.replace(/^export\s+default\s+/,"").replace(/;$/,"");Q.push(`module.exports.default = ${K};`),X++}else if(G.startsWith("class ")||G.startsWith("export class ")){let K=G.match(/(?:export\s+)?class\s+(\w+)/);if(K){let q=K[1],z=Y[X].replace(/^export\s+/,""),W=0,U=X;for(;U<Y.length;U++){let _=Y[U];for(let j of _)if(j==="{")W++;else if(j==="}")W--;if(U>X)z+=`
|
|
753
|
+
`+_;if(W<=0&&U>=X)break}Q.push(z),Q.push(`module.exports.${q} = ${q};`),X=U+1}else Q.push(G),X++}else if(G.includes("module.exports"))Q.push(G),X++;else if(G.trim()&&!G.startsWith("//"))Q.push(G),X++;else X++}return jJ(Q.join(`
|
|
754
|
+
`),J)}function jJ($,Z){let J=$.length,Y="",Q=0,X=null,G=!1,K=!1,q=0;while(Q<J){let z=$[Q],W=$[Q+1];if(G){if(Y+=z,z===`
|
|
755
|
+
`)G=!1;Q++;continue}if(K){if(Y+=z,z==="*"&&W==="/"){Y+=W,Q+=2,K=!1;continue}Q++;continue}if(!X&&z==="/"&&W==="/"){G=!0,Y+=z,Q++;continue}if(!X&&z==="/"&&W==="*"){K=!0,Y+=z,Q++;continue}if(X){if(Y+=z,z==="\\"){Y+=W,Q+=2;continue}if(z===X&&X!=="`"){X=null,Q++;continue}if(X==="`"){if(z==="$"&&W==="{"){q++,Y+=W,Q+=2;continue}if(z==="`"){X=null,Q++;continue}}Q++;continue}if(q>0){if(z==="{")q++;else if(z==="}")q--}if(z==='"'||z==="'"||z==="`"){X=z,Y+=z,Q++;continue}if(z==="a"&&$.startsWith("await",Q)){let U=OJ($,Q);if(U){let{quote:_,path:j,end:B}=U;if(j.startsWith(".")){let O=k1.resolve(Z,j);Y+=`await import(${_}${O}${_})`,Q=B;continue}}}Y+=z,Q++}return Y}function OJ($,Z){let J=Z+5;if(J>=$.length)return null;if(!/\s/.test($[J]))return null;while(J<$.length&&/\s/.test($[J]))J++;if(!$.startsWith("import",J))return null;J+=6;while(J<$.length&&/\s/.test($[J]))J++;if($[J]!=="(")return null;J++;while(J<$.length&&/\s/.test($[J]))J++;let Y=$[J];if(Y!=="'"&&Y!=='"')return null;J++;let Q=J;while(J<$.length&&$[J]!==Y)if($[J]==="\\")J+=2;else J++;if(J>=$.length)return null;let X=$.slice(Q,J);J++;while(J<$.length&&/\s/.test($[J]))J++;if($[J]!==")")return null;return{quote:Y,path:X,end:J+1}}function o7($,Z){let J=$[Z];if(J!=="{"&&J!=="[")return null;let Q=D0($,J,J==="{"?"}":"]",Z);if(Q===-1)return null;return{pattern:$.slice(Z,Q+1),endPos:Q+1}}function s7($){let Z=[],J=$.slice(1,-1).trim();if(!J)return Z;let Y=0,Q=0,X="";while(Y<J.length){let G=J[Y];if(G==="{"||G==="["){if(Q++,Q===1){let K=o7(J,Y);if(K){let q=s7(K.pattern);Z.push(...q),Y=K.endPos,X="";continue}}}else if(G==="}"||G==="]")Q--;if(Q>0){Y++;continue}if(G===","){if(X.trim())Z.push(X.trim());X="",Y++;continue}if(G===":"){X="",Y++;continue}if(G==="="){if(X.trim())Z.push(X.trim());X="",Y++;while(Y<J.length&&J[Y]!==","&&Q===0){if(J[Y]==="{"||J[Y]==="[")Q++;else if(J[Y]==="}"||J[Y]==="]")Q--;Y++}continue}if(/[\w$]/.test(G))X+=G;Y++}if(X.trim())Z.push(X.trim());return Z}function p7($,Z){let J=$[Z].trim(),Y=J.match(/^(?:export\s+)?(const|let|var)\s+(\w+)\s*=\s*(.*)$/);if(!Y){let z=J.match(/^(?:export\s+)?(const|let|var)\s+/);if(z){let W=J.slice(z[0].length),U=Z;if((W.startsWith("{")||W.startsWith("["))&&!W.includes(W.startsWith("{")?"}":"]")){let j=W.startsWith("{")?"}":"]",B=W;for(let O=Z+1;O<$.length;O++)if(B+=" "+$[O].trim(),U=O,$[O].includes(j))break;W=B}let _=o7(W,0);if(_){let j=z[1],B=_.pattern,O=W.slice(_.endPos).trim();if(O.startsWith("=")){let F=O.slice(1).trim(),L=F,H=Math.max(U,Z);if(l7(F)){let N=c7($,H,F);L=N.value,H=N.nextIndex}else H=H+1;L=L.trim().replace(/;$/,"");let V=s7(B),A=`__stx_src_${Z}`,w=V.map((N)=>`module.exports.${N} = ${N};`).join(`
|
|
754
756
|
`);return{type:j,name:A,value:`${L}; ${j} ${B} = ${A};
|
|
755
|
-
${w}`,nextIndex:H}}}}throw Error(`Failed to parse variable declaration: ${J}`)}let[,Q,X,G]=Y,K=G,q=Z;if(
|
|
756
|
-
${$[q]}`,q++;else break}return K=K.trim().replace(/;$/,""),{type:Q,name:X,value:K,nextIndex:q}}function
|
|
757
|
+
${w}`,nextIndex:H}}}}throw Error(`Failed to parse variable declaration: ${J}`)}let[,Q,X,G]=Y,K=G,q=Z;if(l7(G)){let z=c7($,Z,G);K=z.value,q=z.nextIndex}else q=Z+1;while(q<$.length){let z=$[q].trim();if(z.startsWith(".")||z.startsWith("?."))K+=`
|
|
758
|
+
${$[q]}`,q++;else break}return K=K.trim().replace(/;$/,""),{type:Q,name:X,value:K,nextIndex:q}}function o9($,Z){let J=$[Z].trim(),Y=J.match(/^(?:export\s+)?(?:async\s+)?function\s+(\w+)/);if(!Y)throw Error(`Failed to parse function declaration: ${J}`);let[,Q]=Y,X=J.replace(/^export\s+/,""),G=Z;if(HJ(J)){let K=LJ($,Z,X);X=K.functionCode,G=K.nextIndex}else G=Z+1;return{name:Q,functionCode:X,nextIndex:G}}function l7($){let Z=$.trim();if(Z.startsWith("{"))return D0(Z,"{","}",0)===-1;if(Z.startsWith("["))return D0(Z,"[","]",0)===-1;return!r7(Z)}function r7($){let Z={paren:0,bracket:0,brace:0},J=null,Y=0;for(let Q=0;Q<$.length;Q++){let X=$[Q];if((Q>0?$[Q-1]:"")==="\\"&&J)continue;if((X==='"'||X==="'")&&!J){J=X;continue}if(X===J&&J!=="`"){J=null;continue}if(X==="`"&&!J){J="`";continue}if(X==="`"&&J==="`"&&Y===0){J=null;continue}if(J==="`"&&X==="$"&&$[Q+1]==="{"){Y++,Q++;continue}if(Y>0&&X==="{"){Y++;continue}if(Y>0&&X==="}"){Y--;continue}if(J)continue;if(X==="(")Z.paren++;else if(X===")")Z.paren--;else if(X==="[")Z.bracket++;else if(X==="]")Z.bracket--;else if(X==="{")Z.brace++;else if(X==="}")Z.brace--}return Z.paren===0&&Z.bracket===0&&Z.brace===0&&J===null}function HJ($){let Z=$.indexOf("{");if(Z===-1)return!0;return D0($,"{","}",Z)===-1}function c7($,Z,J){let Y=J,Q=Z+1;while(Q<$.length&&!r7(Y)){let X=$[Q];Y+=`
|
|
757
759
|
${X}`,Q++}while(Q<$.length){let X=$[Q].trim();if(X.startsWith(".")||X.startsWith("?."))Y+=`
|
|
758
|
-
${$[Q]}`,Q++;else break}return{value:Y,nextIndex:Q}}function
|
|
759
|
-
${G}`,Q++}return{functionCode:Y,nextIndex:Q}}async function
|
|
760
|
+
${$[Q]}`,Q++;else break}return{value:Y,nextIndex:Q}}function LJ($,Z,J){let Y=J,Q=Z+1;while(Q<$.length){let X=Y.indexOf("{");if(X!==-1){if(D0(Y,"{","}",X)!==-1)break}let G=$[Q];Y+=`
|
|
761
|
+
${G}`,Q++}return{functionCode:Y,nextIndex:Q}}async function FJ($,Z,J){let Y=$.matchAll(/export\s+(const|let|var)\s+(\w+)\s*=\s*([\s\S]*?)(?=\s*(?:export\s+|$))/g);for(let X of Y){let[,,G,K]=X;try{let q=K.trim().replace(/;$/,""),z=Function(`return ${q}`);Z[G]=z()}catch{try{let q=K.trim().replace(/;$/,""),z=Function(`return (${q})`);Z[G]=z()}catch(q){console.warn(`Failed to parse export ${G} in fallback:`,q)}}}let Q=$.matchAll(/(?:^|\n)\s*(const|let|var)\s+(\w+)\s*=\s*([\s\S]*?)(?=\s*(?:(?:const|let|var|function|export)\s+|$))/g);for(let X of Q){let[,,G,K]=X;if(!(G in Z))try{let q=K.trim().replace(/;$/,""),z=Function(`return ${q}`);Z[G]=z()}catch{}}try{let X=$.replace(/^export\s+/gm,""),K=Function(`
|
|
760
762
|
${X}
|
|
761
763
|
const result = {};
|
|
762
764
|
${Array.from($.matchAll(/(?:const|let|var)\s+(\w+)\s*=/g)).map((q)=>`if (typeof ${q[1]} !== 'undefined') result.${q[1]} = ${q[1]};`).join(`
|
|
763
765
|
`)}
|
|
764
766
|
return result;
|
|
765
|
-
`)();Object.entries(K).forEach(([q,z])=>{if(z!==void 0&&!(q in Z))Z[q]=z})}catch{}}function
|
|
766
|
-
`)Q++;return!0}if($[Q]==="/"&&$[Q+1]==="*"){Q+=2;while(Q<X-1&&!($[Q]==="*"&&$[Q+1]==="/"))Q++;return Q+=2,!0}return!1},z=()=>{if(Y!==0)return;let W=$.slice(Q).match(/^(const|let|var)\s*\{([^}]+)\}\s*=/);if(W){let B=W[2].split(",").map((O)=>{let F=O.trim().split(":");return F[F.length-1].trim()});for(let O of B)if(O&&/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(O)&&!J.has(O))Z.push(O),J.add(O);return}let U=$.slice(Q).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(U){let B=U[2];if(!J.has(B))Z.push(B),J.add(B);return}let _=$.slice(Q).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(_){let B=_[1];if(!J.has(B))Z.push(B),J.add(B);return}let j=$.slice(Q).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(j){let B=j[1];if(!J.has(B))Z.push(B),J.add(B)}};while(Q<X){if(q())continue;if($[Q]==="'"||$[Q]==='"'){G($[Q]);continue}if($[Q]==="`"){K();continue}if($[Q]==="{"){Y++,Q++;continue}if($[Q]==="}"){Y--,Q++;continue}if(Y===0&&/[a-z]/i.test($[Q])&&(Q===0||/\s|[;{}()]/.test($[Q-1])))z();Q++}return Z}async function
|
|
767
|
+
`)();Object.entries(K).forEach(([q,z])=>{if(z!==void 0&&!(q in Z))Z[q]=z})}catch{}}function a7($){let Z=$.match(/<script\b[^>]*>([\s\S]*?)<\/script>/i),J=Z?Z[1]:"",Y=Z?$.replace(/<script\b[^>]*>[\s\S]*?<\/script>/i,""):$;return{scriptContent:J,templateWithoutScript:Y}}function t7($){let Z=$.trim();if(!Z)return!1;return/(?:const|let|var|function)\s+\w+/.test(Z)}var $5=C(()=>{e1();M1()});var J3={};r(J3,{renderSlot:()=>$3,processSlots:()=>Y3,parseSlots:()=>e7,parseSlotElement:()=>wJ,extractSlotContent:()=>RJ,applySlots:()=>TJ});function VJ($,Z){let J=1,Y=Z,Q="<template",X="</template";while(Y<$.length&&J>0){let G=$.indexOf("<",Y);if(G===-1)break;if(Y=G,$.startsWith(Q,Y)&&(Y+Q.length>=$.length||/[\s>\/]/.test($[Y+Q.length]))){J++,Y+=Q.length;continue}if($.startsWith(X,Y)){let K=$.indexOf(">",Y+X.length);if(K!==-1){if(J--,J===0)return K+1;Y=K+1;continue}}Y++}return J===0?Y:-1}function e7($){let Z={default:"",named:new Map},J=$,Y=/<template\s+(?:#([a-zA-Z][\w-]*)|v-slot:([a-zA-Z][\w-]*)|slot="([a-zA-Z][\w-]*)")(?:\s*=\s*"([^"]*)")?[^>]*>/gi,Q=[],X;while((X=Y.exec($))!==null){let[W,U,_,j,B]=X,O=U||_||j,F=X.index+W.length,L=VJ($,F);if(L!==-1){let H=$.slice(F,L-11).trim();Q.push({start:X.index,end:L,slotName:O,content:H,propsBinding:B||void 0}),Z.named.set(O,{name:O,content:H,propsBinding:B||void 0})}}Q.sort((W,U)=>U.start-W.start);for(let W of Q)J=J.slice(0,W.start)+J.slice(W.end);let G=[],K=/<([a-zA-Z][a-zA-Z0-9-]*)\b([^>]*?)\bslot="([^"]+)"([^>]*)>([\s\S]*?)<\/\1>/gi,q;while((q=K.exec(J))!==null){let[W,U,_,j,B,O]=q,F=_.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),L=B.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),H=(F+L).trim(),V=`<${U}${H?" "+H:""}>${O}</${U}>`;G.push({start:q.index,end:q.index+W.length,slotName:j,element:V})}let z=/<([a-zA-Z][a-zA-Z0-9-]*)\b([^>]*?)\bslot="([^"]+)"([^>]*?)\/>/gi;while((q=z.exec(J))!==null){let[W,U,_,j,B]=q,O=_.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),F=B.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),L=(O+F).trim(),H=`<${U}${L?" "+L:""} />`;G.push({start:q.index,end:q.index+W.length,slotName:j,element:H})}G.sort((W,U)=>U.start-W.start);for(let W of G){let U=Z.named.get(W.slotName);if(U)U.content+=W.element;else Z.named.set(W.slotName,{name:W.slotName,content:W.element});J=J.slice(0,W.start)+J.slice(W.end)}return Z.default=J.trim(),Z}function wJ($){let Z=$.match(/name\s*=\s*["']([^"']+)["']/),J=Z?Z[1]:"",Y={},Q=/:([a-zA-Z][\w-]*)\s*=\s*["']([^"']+)["']/g,X;while((X=Q.exec($))!==null)Y[X[1]]=X[2];let G=$.match(/<slot[^>]*>([\s\S]*?)<\/slot>/i),K=G?G[1].trim():"";return{name:J,props:Y,defaultContent:K}}async function $3($,Z,J,Y){if(!$)return J;let Q=$.content;if($.propsBinding&&Object.keys(Z).length>0){let X=$.propsBinding.trim(),G={...Y};if(X.startsWith("{")&&X.endsWith("}")){let K=X.slice(1,-1).split(",").map((q)=>q.trim()).filter(Boolean);for(let q of K){let[z,W]=q.split(":").map((_)=>_.trim()),U=W||z;if(Z[z]!==void 0)G[U]=Z[z]}}else G[X]=Z;Q=AJ(Q,G)}return Q}function AJ($,Z){return $.replace(/\{\{\s*([^}]+)\s*\}\}/g,(J,Y)=>{try{let Q=Y.trim(),X=Z3(Q,Z);return z1(String(X??""))}catch{return`{{ ${Y} }}`}})}function Z3($,Z){if(/^[a-zA-Z_$][\w$]*(\.[a-zA-Z_$][\w$]*)*$/.test($)){let Y=$.split("."),Q=Z;for(let X of Y)if(Q&&typeof Q==="object"&&X in Q)Q=Q[X];else return;return Q}let J=$.match(/^([a-zA-Z_$][\w$]*)\s*([+\-*/])\s*(\d+)$/);if(J){let[,Y,Q,X]=J,G=Z[Y],K=parseInt(X,10);if(typeof G==="number")switch(Q){case"+":return G+K;case"-":return G-K;case"*":return G*K;case"/":return G/K}}try{if(!t($))return;return e($,Object.keys(Z))(...Object.values(Z))}catch{return}}async function Y3($,Z,J){let Y=$;Y=await NJ(Y,/<slot\s+name\s*=\s*["']([^"']+)["']([^>]*?)(?:\/>|>([\s\S]*?)<\/slot>)/gi,async(G,K,q,z)=>{let W=Z.named.get(K),U=z?.trim()||"",_=q||"",j={},B=/:([a-zA-Z_$][\w$-]*)\s*=\s*["']([^"']+)["']/g,O;while((O=B.exec(_))!==null){let F=O[1],L=O[2];j[F]=Z3(L,J)}return await $3(W,j,U,J)});let X=/<slot\s*(?:\/>|>([\s\S]*?)<\/slot>)/gi;return Y=Y.replace(X,(G,K)=>{if(G.includes("name="))return G;let q=K?.trim()||"";return Z.default||q}),Y}async function NJ($,Z,J){let Y=[],Q=[];$.replace(Z,(K,...q)=>{let z=q[q.length-2];return Q.push({match:K,index:z}),Y.push(J(K,...q.slice(0,-2))),K});let X=await Promise.all(Y),G=$;for(let K=Q.length-1;K>=0;K--){let{match:q,index:z}=Q[K];G=G.slice(0,z)+X[K]+G.slice(z+q.length)}return G}function RJ($){let Z=e7($);return{defaultSlot:Z.default,namedSlots:Z.named}}async function TJ($,Z,J,Y){return await Y3($,{default:Z,named:J},Y)}var X3=C(()=>{t0();R0()});import MJ from"fs";import u from"path";function DJ($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function EJ($){return/\bjs\b/.test($)||/\blang\s*=\s*["']?(js|javascript)["']?/i.test($)}function q1($){return!EJ($)}function W1($){try{let Z=$.replace(/^\s*import\s+\w+\s+from\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");Z=Z.replace(/^\s*import\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");let J=[];Z=Z.replace(/\{!![\s\S]*?!!\}/g,(X)=>{let G=J.length;return J.push(X),`"__STX_EXPR_${G}__"`}),Z=Z.replace(/\{\{\{[\s\S]*?\}\}\}/g,(X)=>{let G=J.length;return J.push(X),`"__STX_EXPR_${G}__"`}),Z=Z.replace(/\{\{[\s\S]*?\}\}/g,(X)=>{let G=J.length;return J.push(X),`"__STX_EXPR_${G}__"`});let Q=new Bun.Transpiler({loader:"ts",target:"browser",define:f0()}).transformSync(Z);for(let X=0;X<J.length;X++)Q=Q.replace(`"__STX_EXPR_${X}__"`,J[X]),Q=Q.replace(`'__STX_EXPR_${X}__'`,J[X]);return Q}catch(Z){if(process.env.STX_DEBUG_TS)console.warn("[STX] TypeScript transpilation error:",Z);return $}}function kJ($){let Z=[],J=new Set,Y=0,Q=0,X=$.length,G=(W)=>{Q++;while(Q<X){if($[Q]==="\\"){Q+=2;continue}if($[Q]===W){Q++;return}Q++}},K=()=>{Q++;while(Q<X){if($[Q]==="\\"){Q+=2;continue}if($[Q]==="`"){Q++;return}if($[Q]==="$"&&$[Q+1]==="{"){Q+=2;let W=1;while(Q<X&&W>0)if($[Q]==="{")W++;else if($[Q]==="}")W--;else if($[Q]==="'"||$[Q]==='"')G($[Q]);else if($[Q]==="`")K();else Q++;continue}Q++}},q=()=>{if($[Q]==="/"&&$[Q+1]==="/"){while(Q<X&&$[Q]!==`
|
|
768
|
+
`)Q++;return!0}if($[Q]==="/"&&$[Q+1]==="*"){Q+=2;while(Q<X-1&&!($[Q]==="*"&&$[Q+1]==="/"))Q++;return Q+=2,!0}return!1},z=()=>{if(Y!==0)return;let W=$.slice(Q).match(/^(const|let|var)\s*\{([^}]+)\}\s*=/);if(W){let B=W[2].split(",").map((O)=>{let F=O.trim().split(":");return F[F.length-1].trim()});for(let O of B)if(O&&/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(O)&&!J.has(O))Z.push(O),J.add(O);return}let U=$.slice(Q).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(U){let B=U[2];if(!J.has(B))Z.push(B),J.add(B);return}let _=$.slice(Q).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(_){let B=_[1];if(!J.has(B))Z.push(B),J.add(B);return}let j=$.slice(Q).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(j){let B=j[1];if(!J.has(B))Z.push(B),J.add(B)}};while(Q<X){if(q())continue;if($[Q]==="'"||$[Q]==='"'){G($[Q]);continue}if($[Q]==="`"){K();continue}if($[Q]==="{"){Y++,Q++;continue}if($[Q]==="}"){Y--,Q++;continue}if(Y===0&&/[a-z]/i.test($[Q])&&(Q===0||/\s|[;{}()]/.test($[Q-1])))z();Q++}return Z}async function B1($,Z,J,Y,Q,X,G,K=new Set,q){let{extractVariables:z}=await Promise.resolve().then(() => ($5(),D5)),W=K??new Set;if(W.has($))return`[Circular component reference: ${$}]`;let U=new Set(W);U.add($);try{let _=(P)=>P.split("-").map((v)=>v.charAt(0).toUpperCase()+v.slice(1)).join(""),j=(P)=>P.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),B=$.endsWith(".stx")?$.slice(0,-4):$,O=null,F=Q.__importedComponents;if(F){let P=[B,B.toLowerCase(),_(B),j(B)];for(let v of P)if(F.has(v)){O=F.get(v);break}}let L=[];if(!O){let P=[`${B}.stx`,`${_(B)}.stx`,`${j(B)}.stx`],v=[...new Set(P)],f=Q.__originalFilePath,l=[];if(f){let G0=u.join(u.dirname(f),"components");l.push(G0)}if(Y)l.push(Y);let q0=u.join(u.dirname(X),"components");if(!l.includes(q0))l.push(q0);if(G.componentsDir&&G.componentsDir!==Y&&!l.includes(G.componentsDir))l.push(G.componentsDir);let g=process.cwd(),n=[u.resolve(g,"src/components"),u.resolve(g,"components"),u.resolve(import.meta.dir,"components")];for(let G0 of n)if(!l.includes(G0))l.push(G0);if(B.startsWith("./")||B.startsWith("../"))O=u.resolve(u.dirname(X),`${B}.stx`),L.push(O);else for(let G0 of l){if(!G0)continue;for(let Z0 of v){let z0=u.join(G0,Z0);if(L.push(z0),await c(z0)){O=z0;break}}if(O)break;if(!O)try{let Z0=await import("fs");if(!Z0.statSync(G0,{throwIfNoEntry:!1})?.isDirectory())continue;let k0=8,o0=[{path:G0,depth:0}];while(o0.length>0&&!O){let i1=o0.pop();if(i1.depth>=k0)continue;let V5;try{V5=Z0.readdirSync(i1.path,{withFileTypes:!0})}catch{continue}for(let a of V5){if(!a.isDirectory())continue;if(a.name==="node_modules"||a.name.startsWith("."))continue;let T1=u.join(i1.path,a.name);for(let G7 of v){let C9=u.join(T1,G7);if(L.push(C9),await c(C9)){O=C9;break}}if(O)break;o0.push({path:T1,depth:i1.depth+1})}}}catch{}if(O)break}}if(!O||!await c(O)){let P=L.length>0?`
|
|
767
769
|
Searched paths:
|
|
768
770
|
${L.map((v)=>` - ${v}`).join(`
|
|
769
|
-
`)}`:"";return`[Error loading component: ENOENT: no such file or directory, open '${$}']${P}`}q.add(O);let H;if(
|
|
771
|
+
`)}`:"";return`[Error loading component: ENOENT: no such file or directory, open '${$}']${P}`}q.add(O);let H;if(r9.has(O))H=r9.get(O);else try{H=await Bun.file(O).text(),r9.set(O,H)}catch(P){return`[Error loading component: ${P instanceof Error?P.message:String(P)}]`}let V=new Set(["__originalFilePath","__importedComponents"]),A={};for(let[P,v]of Object.entries(Q))if(!P.startsWith("__")||V.has(P))A[P]=v;let w={...A,...Z,props:Z,slot:J,__processedComponents:U,__sections:{}},N=H,R=N.match(/<template\b(?![^>]*\b(?:id|x-for|x-if|@for|@if|:for|:if)\s*=)[^>]*>([\s\S]*?)<\/template>/i);if(R)N=R[1].trim();let T=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,I=[...H.matchAll(T)],M=[];for(let P of I){let v=P[1]||"",f=P[2]||"",l=v.includes("server");if(q1(v)&&f.trim())f=W1(f);if(l&&f)try{await z(f,w,O)}catch(g){}if(!l){let g=f.replace(/^\s*const\s*\{[^}]+\}\s*=\s*window\.stx\s*;?\s*\n?/gm,""),n=v.replace(/\s*\bts\b/g,"").replace(/\s*\blang\s*=\s*["']?(ts|typescript)["']?/gi,"");M.push(`<script${n}>${g}</script>`)}}let E=H.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),k=E?E[1]:"",y=E?E[2]:"",S="",b=k&&/\bscoped\b/i.test(k);if(E)S=`<style${k}>${y}</style>`;let D=N;if(D=D.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),E)D=D.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");if(J&&D.includes("{{ text || slot }}"))D=D.replace(/\{\{\s*text\s*\|\|\s*slot\s*\}\}/g,()=>J);let{extractSlotContent:x,applySlots:h}=await Promise.resolve().then(() => (X3(),J3)),{defaultSlot:i,namedSlots:U0}=x(J);D=await h(D,i||J,U0,w);for(let[P,v]of Object.entries(w))if(typeof v==="string"){if(v.includes("<")&&v.includes(">")||v.includes("<")||v.includes(""")){let f=p9(v);w[P]=f}}let H0=M.some((P)=>/\b(state|derived|effect)\s*\(/.test(P)),_0={...G,componentsDir:u.dirname(O),skipSignalsRuntime:!0,skipEventDirectives:H0,defaultLayout:void 0};w.__stxProcessingDepth=(Q.__stxProcessingDepth||0)+1;let C0=await $1(D,w,O,_0,q),p0=`stx_${B.replace(/[^a-zA-Z0-9]/g,"_")}_${++IJ}_${Math.random().toString(36).slice(2,8)}`,L0=C0;if(H0){let P="";if(Object.keys(Z).length>0)try{P=` data-stx-props="${DJ(JSON.stringify(Z))}"`}catch{}if(L0=`<div data-stx-scope="${p0}"${P}>${C0}</div>`,L0=M.map((f)=>{let l=f.match(/<script([^>]*)>([\s\S]*)<\/script>/i);if(!l)return f;let[,q0,g]=l,n=r0(g),G0=`
|
|
770
772
|
(function() {
|
|
771
773
|
const { state, derived, effect, batch } = window.stx;
|
|
772
774
|
const __scope = window.stx._scopes = window.stx._scopes || {};
|
|
773
|
-
const __scopeVars = __scope['${
|
|
775
|
+
const __scopeVars = __scope['${p0}'] = __scope['${p0}'] || {};
|
|
774
776
|
|
|
775
777
|
// Scope-specific lifecycle callbacks
|
|
776
778
|
__scopeVars.__mountCallbacks = __scopeVars.__mountCallbacks || [];
|
|
@@ -778,25 +780,25 @@ ${L.map((v)=>` - ${v}`).join(`
|
|
|
778
780
|
const onMount = (fn) => __scopeVars.__mountCallbacks.push(fn);
|
|
779
781
|
const onDestroy = (fn) => __scopeVars.__destroyCallbacks.push(fn);
|
|
780
782
|
|
|
781
|
-
${
|
|
783
|
+
${n}
|
|
782
784
|
|
|
783
785
|
// Register all defined signals and functions in this scope
|
|
784
786
|
const __localVars = {};
|
|
785
787
|
try {
|
|
786
|
-
${
|
|
788
|
+
${kJ(n).map((Z0)=>`if (typeof ${Z0} !== 'undefined') __localVars['${Z0}'] = ${Z0};`).join(`
|
|
787
789
|
`)}
|
|
788
790
|
}
|
|
789
791
|
catch (e) {}
|
|
790
792
|
Object.assign(__scopeVars, __localVars);
|
|
791
|
-
})();`;return`<script data-stx-scoped${
|
|
793
|
+
})();`;return`<script data-stx-scoped${q0}>${G0}</script>`}).join(`
|
|
792
794
|
`)+`
|
|
793
795
|
`+L0,S)L0+=`
|
|
794
796
|
`+S}else{if(S)L0+=`
|
|
795
|
-
`+S;if(M.length>0){let P=w.__stx_event_bindings||[],v=await Promise.all(M.map(async(
|
|
797
|
+
`+S;if(M.length>0){let P=w.__stx_event_bindings||[],v=await Promise.all(M.map(async(f)=>{let l=f.match(/<script\b[^>]*>([\s\S]*?)<\/script>/);if(!l)return f;return await w5(l[1],{eventBindings:P,templateContent:L0,filePath:O,projectRoot:process.cwd()})}));L0+=`
|
|
796
798
|
`+v.join(`
|
|
797
|
-
`),w.__stx_event_bindings=[]}}if(b){let P=
|
|
799
|
+
`),w.__stx_event_bindings=[]}}if(b){let P=T5(L0,O);if(P.hasScoped)L0=P.html}return L0}catch(_){return`[Error processing component: ${_ instanceof Error?_.message:String(_)}]`}finally{W.delete($)}}async function c($){return Bun.file($).exists()}function a9($,Z){let J=u.resolve(Z),Y=u.resolve($),Q=J.endsWith(u.sep)?J:J+u.sep;if(Y===J||Y.startsWith(Q))return Y;return null}async function t9($,Z,J,Y){let Q=await bJ($,Z,J,Y);if(Q===null)return null;let X=a9(Q,process.cwd());if(X)return X;let G=[J.root,J.layoutsDir,J.componentsDir,J.partialsDir,J.pagesDir].filter((K)=>typeof K==="string"&&K.length>0);for(let K of G){let q=u.isAbsolute(K)?K:u.resolve(process.cwd(),K);if(a9(Q,q))return u.resolve(Q)}return console.warn(`[stx] rejected resolved template path that escapes project root: ${Q} (template: ${$}, from: ${Z})`),null}async function bJ($,Z,J,Y){if(J.debug)console.log(`Resolving template path: ${$} from ${Z}`);let Q=u.dirname(Z),X=process.cwd();if($.startsWith("/")){let _=u.join(X,$),j=a9(_,X);if(!j)return console.warn(`[stx] rejected template path that escapes project root: ${$} (from ${Z})`),null;if(J.debug)console.log(`Checking absolute path: ${j}`);if(await c(j)&&Y)Y.add(j);return j}let G=u.join(Q,$);if(await c(G)){if(J.debug)console.log(`Found direct path: ${G}`);if(Y)Y.add(G);return G}if(!$.endsWith(".stx")&&!$.endsWith(".jsx")&&!$.endsWith(".tsx"))for(let _ of[".stx",".tsx",".jsx"]){let j=`${G}${_}`;if(await c(j)){if(J.debug)console.log(`Found direct path with extension: ${j}`);if(Y)Y.add(j);return j}}let K="",q=u.resolve(Q),z=process.cwd();for(let _=0;_<10;_++){let j=u.join(q,"layouts"),B=!1;try{B=MJ.statSync(j,{throwIfNoEntry:!1})?.isDirectory()??!1}catch{}if(B){K=j;break}let O=u.dirname(q);if(O===q||O.length<z.length)break;q=O}if(K){let _=$.startsWith("layouts/")?$.slice(8):$,j=u.join(K,_);if(await c(j)){if(J.debug)console.log(`Found in current layouts dir: ${j}`);if(Y)Y.add(j);return j}if(!_.endsWith(".stx")){let B=`${j}.stx`;if(await c(B)){if(J.debug)console.log(`Found in current layouts dir with extension: ${B}`);if(Y)Y.add(B);return B}}}if(J.layoutsDir){let _=u.isAbsolute(J.layoutsDir)?J.layoutsDir:u.resolve(process.cwd(),J.layoutsDir),j=$.startsWith("layouts/")?$.slice(8):$,B=u.join(_,j);if(await c(B)){if(J.debug)console.log(`Found in options.layoutsDir: ${B}`);if(Y)Y.add(B);return B}if(!$.endsWith(".stx")){let O=`${B}.stx`;if(await c(O)){if(J.debug)console.log(`Found in options.layoutsDir with extension: ${O}`);if(Y)Y.add(O);return O}}}if($.startsWith("layouts/")||$.includes("/layouts/")){let _=$.split("layouts/"),j=u.join(J.partialsDir||Q,"layouts",_[1]);if(await c(j)){if(J.debug)console.log(`Found in layouts path: ${j}`);if(Y)Y.add(j);return j}if(!j.endsWith(".stx")){let B=`${j}.stx`;if(await c(B)){if(J.debug)console.log(`Found in layouts path with extension: ${B}`);if(Y)Y.add(B);return B}}}if(J.partialsDir){if(K=u.join(J.partialsDir,"layouts"),await c(K)){let _=u.join(K,$);if(await c(_)){if(J.debug)console.log(`Found in partials layouts dir: ${_}`);if(Y)Y.add(_);return _}if(!$.endsWith(".stx")){let j=`${_}.stx`;if(await c(j)){if(J.debug)console.log(`Found in partials layouts dir with extension: ${j}`);if(Y)Y.add(j);return j}}}}let W=J.partialsDir||u.join(process.cwd(),"views"),U=u.join(W,$);if(await c(U)){if(J.debug)console.log(`Found in views path: ${U}`);if(Y)Y.add(U);return U}if(!$.endsWith(".stx")){let _=`${U}.stx`;if(await c(_)){if(J.debug)console.log(`Found in views path with extension: ${_}`);if(Y)Y.add(_);return _}}if(Q.includes("temp")){let _=u.join(u.dirname(Q),"layouts",$);if(await c(_)){if(J.debug)console.log(`Found in temp layouts dir: ${_}`);if(Y)Y.add(_);return _}if(!$.endsWith(".stx")){let j=`${_}.stx`;if(await c(j)){if(J.debug)console.log(`Found in temp layouts dir with extension: ${j}`);if(Y)Y.add(j);return j}}}if(J.debug)console.warn(`Template not found after trying all paths: ${$} (referenced from ${Z})`);else console.warn(`Template not found: ${$} (referenced from ${Z})`);return null}function Q3($,Z,J){let Y=0,Q="",X="";try{if(typeof Z==="number"&&Z>=0){let G=$.split(`
|
|
798
800
|
`),K=0;for(let q=0;q<G.length;q++)if(K+=G[q].length+1,K>=Z){Y=q+1,Q=G[q].trim();let z=Math.max(0,q-2),W=Math.min(G.length,q+3);X=G.slice(z,W).map((U,_)=>{let j=z+_+1;return`${j===Y?"> ":" "}${j}: ${U}`}).join(`
|
|
799
|
-
`);break}}else if(J){let G=$.indexOf(J);if(G>=0)return
|
|
801
|
+
`);break}}else if(J){let G=$.indexOf(J);if(G>=0)return Q3($,G)}}catch{}return{lineNumber:Y,lineContent:Q,context:X}}function X0($,Z,J,Y,Q,X){let{lineNumber:G,context:K}=Q3(Y,Q,X),q=J.split("/").pop(),z=0;if(typeof Q==="number"&&Q>=0&&Y){let U=Y.lastIndexOf(`
|
|
800
802
|
`,Math.max(0,Q-1));z=Q-(U+1)+1}let W="";if(G>0)W+=`
|
|
801
803
|
${J}:${G}${z>0?`:${z}`:""}: ${$.toLowerCase()} error: ${Z}
|
|
802
804
|
`;if(W+=`
|
|
@@ -809,8 +811,8 @@ ${o.yellow}${o.bold}Message:${o.reset} ${Z}
|
|
|
809
811
|
`,K)W+=`
|
|
810
812
|
${o.blue}${o.bold}Context:${o.reset}
|
|
811
813
|
${o.dim}${K}${o.reset}
|
|
812
|
-
`;return W}var
|
|
813
|
-
`||H==="\r"||H===" "||H===void 0)U++;_=F+9}else{if(U--,U===0){j=L;break}_=L+12}}if(j===-1)continue;let B=$.slice(W,j),O=$.slice(K,j+12);Q.push({fullMatch:O,options:z,content:B,index:K}),X.lastIndex=j+12}for(let{fullMatch:K,options:q,content:z,index:W}of Q)try{let U={};if(q)q.split(",").forEach((B)=>{let O=B.trim();if(O)U[O]=!0});let _={gfm:U.gfm??!0,breaks:U.breaks??!1},j=
|
|
814
|
+
`;return W}var r9,IJ=0,o;var A0=C(()=>{m9();t0();E1();e9();M1();i9();u7();$5();r9=new a1(500);o={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"}});async function G3($,Z,J=""){let Y=$,Q=[],X=/@markdown(?:\([^)]*\))?/g,G;while((G=X.exec($))!==null){let K=G.index,q=G[0].match(/@markdown\(([^)]*)\)/),z=q?q[1]:"",W=K+G[0].length,U=1,_=W,j=-1;while(U>0&&_<$.length){let F=$.indexOf("@markdown",_),L=$.indexOf("@endmarkdown",_);if(L===-1)break;if(F!==-1&&F<L&&F!==K){let H=$[F+9];if(H==="("||H===`
|
|
815
|
+
`||H==="\r"||H===" "||H===void 0)U++;_=F+9}else{if(U--,U===0){j=L;break}_=L+12}}if(j===-1)continue;let B=$.slice(W,j),O=$.slice(K,j+12);Q.push({fullMatch:O,options:z,content:B,index:K}),X.lastIndex=j+12}for(let{fullMatch:K,options:q,content:z,index:W}of Q)try{let U={};if(q)q.split(",").forEach((B)=>{let O=B.trim();if(O)U[O]=!0});let _={gfm:U.gfm??!0,breaks:U.breaks??!1},j=n1(z.trim(),_);Y=Y.split(K).join(j)}catch(U){let _=U instanceof Error?U.message:String(U),j=X0("Markdown Directive",`Error processing markdown: ${_}`,J,$,W,K);Y=Y.split(K).join(j)}return Y}async function K3($,Z,J,Y){let Q={gfm:!0,breaks:!1};return Z.forEach((X)=>{let G=X.trim().replace(/['"]/g,"");if(G==="breaks")Q.breaks=!0;if(G==="no-gfm")Q.gfm=!1}),n1($.trim(),Q)}var $$=C(()=>{A0()});function CJ($){if(SJ.set($.name,$),$.client)yJ.set($.name,$.client)}function E5($){return CJ($),{name:$.name,hasEndTag:$.hasEndTag??!0,description:$.description,handler:async(J,Y,Q,X)=>{let G=PJ(Y,$.defaults);if($.validate){let q=$.validate(G);if(q!==!0){let z=typeof q==="string"?q:`Invalid parameters for @${$.name}`;throw Error(z)}}let K=J;if($.transform)K=await $.transform(J,G,Q,X);if($.clientScript){let q=$.clientScript(G);K+=`<script>${q}</script>`}if($.css){let q=$.css(G);K+=`<style>${q}</style>`}return K}}}function PJ($,Z){let J={...Z};for(let Y of $){let Q=Y.indexOf(":"),X=Y.indexOf("="),G=Q>=0&&(X<0||Q<X)?Q:X;if(G>=0){let K=Y.slice(0,G).trim(),q=Y.slice(G+1).trim();if(q==="true")q=!0;else if(q==="false")q=!1;else if(q==="null")q=null;else if(!Number.isNaN(Number(q)))q=Number(q);else if(typeof q==="string"&&q.startsWith("{"))try{q=JSON.parse(q)}catch{}J[K]=q}else{let K=Object.keys(J).filter((q)=>!Z||!(q in Z)).length;J[K===0?"value":`arg${K}`]=Y}}return J}var SJ,yJ;var Z$=C(()=>{SJ=new Map,yJ=new Map});function Y$($,Z=b1,J={},Y){return Z.sort((Q,X)=>Q-X).map((Q)=>{return`${Y5($,{...J,w:Q,fm:Y})} ${Q}w`}).join(", ")}function q3($,Z,J=vJ,Y={},Q){return J.sort((X,G)=>X-G).map((X)=>{let G=Math.round(Z*X);return`${Y5($,{...Y,w:G,dpr:X,fm:Q})} ${X}x`}).join(", ")}function J$($,Z="100vw"){if(!$||Object.keys($).length===0)return Z;let Y=Object.entries($).map(([Q,X])=>{let G=/^\d+$/.test(Q)?`${Q}px`:Q;return{bp:G,size:X,numericBp:Number.parseInt(G)||0}}).sort((Q,X)=>Q.numericBp-X.numericBp).map(({bp:Q,size:X})=>`(max-width: ${Q}) ${X}`);return Y.push(Z),Y.join(", ")}function Y5($,Z={}){let J=Object.entries(Z).filter(([,X])=>X!==void 0&&X!==null).map(([X,G])=>{if(Array.isArray(G))return[X,G.join(",")];return[X,String(G)]});if(J.length===0)return $;let Y=J.map(([X,G])=>`${X}=${encodeURIComponent(G)}`).join("&"),Q=$.includes("?")?"&":"?";return`${$}${Q}${Y}`}function X$($){return xJ[$]||"application/octet-stream"}var b1,vJ,Z5,xJ;var Q$=C(()=>{b1=[320,480,640,768,1024,1280,1536,1920,2560],vJ=[1,1.5,2,3],Z5=["avif","webp","jpeg"],xJ={avif:"image/avif",webp:"image/webp",jpeg:"image/jpeg",png:"image/png",gif:"image/gif"}});async function gJ(){try{return await import("ts-images")}catch{return null}}async function hJ($,Z={}){let J={...fJ,...Z},Y=await gJ();if(Y)try{return await dJ($,J,Y)}catch(Q){console.warn(`[stx-media] ts-images placeholder generation failed, using fallback: ${Q}`)}return mJ($,J)}async function dJ($,Z,J){let{generatePlaceholder:Y,generateThumbHash:Q}=J,G={blur:"blur",thumbhash:"thumbhash",blurhash:"thumbhash",pixelate:"pixelate","dominant-color":"dominant-color",none:"blur"}[Z.strategy]||"blur";if(Z.strategy==="thumbhash")return{dataURL:(await Q($)).dataUrl,width:32,height:32,aspectRatio:1,originalWidth:0,originalHeight:0,strategy:"thumbhash"};let K=await Y($,{width:Z.width,height:Z.height,quality:Z.quality,blurLevel:Z.blurLevel,strategy:G,base64Encode:!0});return{dataURL:K.dataURL,width:K.width,height:K.height,aspectRatio:K.aspectRatio,originalWidth:K.originalWidth,originalHeight:K.originalHeight,strategy:Z.strategy,dominantColor:K.dominantColor,css:K.css}}function mJ($,Z){let J=Z.width||20,Y=Z.height||J,Q="#e5e7eb",X=`<svg xmlns="http://www.w3.org/2000/svg" width="${J}" height="${Y}" viewBox="0 0 ${J} ${Y}"><rect fill="#e5e7eb" width="${J}" height="${Y}"/></svg>`;return{dataURL:`data:image/svg+xml;charset=utf-8,${encodeURIComponent(X)}`,width:J,height:Y,aspectRatio:J/Y,originalWidth:0,originalHeight:0,strategy:Z.strategy,dominantColor:"#e5e7eb"}}function W3($,Z,J={}){let Y=J.transitionDuration||300,Q=J.easing||"ease-out";return`
|
|
814
816
|
#${$} {
|
|
815
817
|
--stx-img-transition-duration: ${Y}ms;
|
|
816
818
|
--stx-img-transition-easing: ${Q};
|
|
@@ -827,7 +829,7 @@ ${o.dim}${K}${o.reset}
|
|
|
827
829
|
#${$}.stx-img-loaded img {
|
|
828
830
|
opacity: 1;
|
|
829
831
|
}
|
|
830
|
-
`.trim()}async function
|
|
832
|
+
`.trim()}async function z3($,Z={}){let J=`${$}:${JSON.stringify(Z)}`;if(G$.has(J))return G$.get(J);let Y=await hJ($,Z);return G$.set(J,Y),Y}var fJ,K$,G$;var U3=C(()=>{fJ={strategy:"thumbhash",width:20,quality:50,blurLevel:40,transitionDuration:300,easing:"ease-out"},K$=`
|
|
831
833
|
.stx-img-placeholder {
|
|
832
834
|
position: relative;
|
|
833
835
|
overflow: hidden;
|
|
@@ -856,8 +858,8 @@ ${o.dim}${K}${o.reset}
|
|
|
856
858
|
filter: blur(0);
|
|
857
859
|
transform: scale(1);
|
|
858
860
|
}
|
|
859
|
-
`.trim();J$=new Map});import{createHash as U3}from"crypto";import{readFile as dJ,stat as _3}from"fs/promises";async function N0($){try{let Z=await dJ($);return U3("sha256").update(Z).digest("hex").slice(0,16)}catch{return""}}function z3($){return U3("sha256").update($).digest("hex").slice(0,16)}function I5($,Z){let J=JSON.stringify(Z,Object.keys(Z).sort());return`${z3($)}-${z3(J)}`}async function Q$($){try{return(await _3($)).mtimeMs}catch{return 0}}async function V0($){try{return await _3($),!0}catch{return!1}}var _1=()=>{};import{mkdir as mJ,readFile as uJ,writeFile as pJ,readdir as uz,rm as lJ,stat as pz}from"fs/promises";import{join as j3,dirname as cJ}from"path";async function iJ($){try{await mJ($,{recursive:!0})}catch{}}function O3($,Z,J){return j3($,J,`${Z}.json`)}async function B3($,Z,J){if((Date.now()-$.createdAt)/86400000>J)return!1;if(await Q$(Z)!==$.srcMtime)return!1;return!0}async function D5($,Z,J,Y=G$){if(!Y.enabled)return null;let Q=I5($,Z),X=k1.get(Q);if(X){if(await B3(X,$,Y.maxAge))return X.lastAccessedAt=Date.now(),X.data;k1.delete(Q)}let G=O3(Y.directory,Q,J);if(await V0(G))try{let K=await uJ(G,"utf-8"),q=JSON.parse(K);if(await B3(q,$,Y.maxAge))return q.lastAccessedAt=Date.now(),k1.set(Q,q),q.data}catch{}return null}async function E5($,Z,J,Y,Q=G$){if(!Q.enabled)return;let X=I5($,Z),G=await N0($),K=await Q$($),q={key:X,src:$,srcHash:G,srcMtime:K,optionsHash:I5("",Z),data:J,createdAt:Date.now(),lastAccessedAt:Date.now()};k1.set(X,q);let z=O3(Q.directory,X,Y);try{await iJ(cJ(z)),await pJ(z,JSON.stringify(q,null,2))}catch(W){console.warn(`[stx-media] Failed to write cache: ${W}`)}}async function k5($,Z=G$){if($==="all")k1.clear();else k1.clear();let J=$==="all"?["image","video"]:[$];for(let Y of J){let Q=j3(Z.directory,Y);try{await lJ(Q,{recursive:!0,force:!0})}catch{}}}var k1,G$;var K$=C(()=>{_1();k1=new Map,G$={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}});class S5{config;constructor($={}){this.config={...nJ,...$}}async get($,Z){return D5($,Z,"image",this.config)}async set($,Z,J){return E5($,Z,J,"image",this.config)}async clear(){return k5("image",this.config)}updateConfig($){this.config={...this.config,...$}}}function q$($){if(!b5)b5=new S5($);else if($)b5.updateConfig($);return b5}async function y5($,Z,J){let Y=J?{directory:`${J.outputDir}/../.cache`}:{};return q$(Y).get($,Z)}async function C5($,Z,J,Y){let Q=Y?{directory:`${Y.outputDir}/../.cache`}:{};return q$(Q).set($,Z,J)}async function H3(){return q$().clear()}var nJ,b5=null;var W$=C(()=>{K$();nJ={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500,cacheVariants:!0,cachePlaceholders:!0}});import{resolve as oJ,basename as sJ,extname as rJ,join as aJ}from"path";import{mkdir as tJ}from"fs/promises";async function z$(){try{return await import("ts-images")}catch{return null}}function L3($){switch($){case"quality":return{jpeg:{quality:90,mozjpeg:!0,progressive:!0},png:{compressionLevel:6,palette:!1},webp:{quality:90,effort:6,smartSubsample:!0},avif:{quality:85,effort:6}};case"performance":return{jpeg:{quality:70,mozjpeg:!0,progressive:!0},png:{compressionLevel:9,palette:!0},webp:{quality:70,effort:4,smartSubsample:!0},avif:{quality:60,effort:2}};case"web":default:return{jpeg:{quality:82,mozjpeg:!0,progressive:!0},png:{compressionLevel:8,palette:!1},webp:{quality:82,effort:5,smartSubsample:!0},avif:{quality:75,effort:4}}}}function eJ($,Z){let J=Z?L3(Z):L3("web"),Y=$.formatQuality||{};return{jpeg:{...J.jpeg,...Y.jpeg},png:{...J.png,...Y.png},webp:{...J.webp,...Y.webp},avif:{...J.avif,...Y.avif}}}async function F3($,Z,J){let Y=await z$();if(!Y)return console.warn("[stx-media] ts-images not installed, skipping optimization"),{src:$,processed:!1};let Q=await y5($,Z,J);if(Q)return Q;try{let X=oJ($);if(!await V0(X))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let G=eJ(J,Z.preset),K=J.outputDir||"dist/images",q=J.baseUrl||"/images";await tJ(K,{recursive:!0});let z=await N0(X),W=sJ($,rJ($)),U=Z.outputFormat?[Z.outputFormat]:J.defaultFormats||["avif","webp","jpeg"],_={src:$,processed:!0,variants:[],hash:z},j=null;if(Z.transformations&&Z.transformations.length>0)j=await U$(X,Z.transformations,Y);for(let B of U){let O=G[B]||{},F=`${W}-${z}.${B}`,L=aJ(K,F);try{let H=await Y.optimizeImage({input:j||X,output:L,format:B,quality:O.quality,progressive:O.progressive});if(H){if(_.variants.push({path:L,url:`${q}/${F}`,width:H.width||0,height:H.height||0,format:B,size:H.outputSize||0}),!_.originalWidth&&H.width)_.originalWidth=H.width,_.originalHeight=H.height}}catch(H){_.errors=_.errors||[],_.errors.push(`Failed to optimize ${B}: ${H}`)}}if(Z.embedThumbhash||Z.placeholder==="thumbhash")try{let B=await Y.generateThumbHash(X);_.placeholder=B.dataUrl}catch(B){_.errors=_.errors||[],_.errors.push(`Failed to generate thumbhash: ${B}`)}if(Z.useDominantColor)try{let B=await Y.generatePlaceholder(X,{strategy:"dominant-color"});_.dominantColor=B.dominantColor}catch(B){_.errors=_.errors||[],_.errors.push(`Failed to extract dominant color: ${B}`)}return await C5($,Z,_,J),_}catch(X){return{src:$,processed:!1,errors:[`Processing failed: ${X}`]}}}async function V3($,Z,J,Y){let Q=await z$();if(!Q)return{success:!1,error:"ts-images not installed"};try{return{success:!0,size:(await Q.optimizeImage({input:$,output:Y,format:Z,quality:J}))?.outputSize}}catch(X){return{success:!1,error:String(X)}}}async function U$($,Z,J){let Y=J||await z$();if(!Y)return console.warn("[stx-media] ts-images not installed, skipping transformations"),null;try{let Q=await Y.decode($);for(let X of Z){let G=X.options||{};switch(X.type){case"resize":if(G.width||G.height)Q=await Y.resize(Q,{width:G.width,height:G.height,fit:G.fit});break;case"blur":if(G.sigma!==void 0)Q=await Y.blur(Q,G.sigma);break;case"sharpen":if(G.amount!==void 0)Q=await Y.sharpen(Q,G.amount);break;case"grayscale":Q=await Y.grayscale(Q);break;case"rotate":if(G.angle!==void 0)Q=await Y.rotate(Q,G.angle);break;case"flip":Q=await Y.flip(Q);break;case"flop":Q=await Y.flop(Q);break;case"brightness":if(G.value!==void 0)Q=await Y.brightness(Q,G.value);break;case"contrast":if(G.value!==void 0)Q=await Y.contrast(Q,G.value);break;case"saturation":if(G.value!==void 0)Q=await Y.saturation(Q,G.value);break}}return await Y.encode(Q,"png")}catch(Q){return console.error(`[stx-media] Transformation failed: ${Q}`),null}}var w3=C(()=>{_1();W$()});import{resolve as $X,basename as ZX,extname as YX,join as JX}from"path";import{mkdir as XX}from"fs/promises";async function QX(){try{return await import("ts-images")}catch{return null}}async function A3($,Z,J){let Y=await QX();if(!Y)return console.warn("[stx-media] ts-images not installed, skipping responsive generation"),null;let Q=$X($);if(!await V0(Q))return console.warn(`[stx-media] Source file not found: ${$}`),null;try{let X=Z.responsiveWidths||J.breakpoints||GX,G=Z.formats||J.defaultFormats||["avif","webp","jpeg"],K=J.outputDir||"dist/images",q=J.baseUrl||"/images";await XX(K,{recursive:!0});let z=await N0(Q),W=ZX($,YX($)),U=J.formatQuality||{jpeg:{quality:82},png:{quality:80},webp:{quality:82},avif:{quality:75}},_={src:$,byFormat:{},srcsets:{}};for(let B of G){_.byFormat[B]=[];let O=[];for(let F of X){let L=`${W}-${F}w-${z}.${B}`,H=JX(K,L),V=`${q}/${L}`;try{let A=U[B]?.quality||80;if(await V0(H)){_.byFormat[B].push({path:H,url:V,width:F,height:0,format:B,size:0}),O.push(`${V} ${F}w`);continue}let w=await Y.processImage({input:Q,output:H,format:B,quality:A,resize:{width:F}});if(w)_.byFormat[B].push({path:H,url:V,width:F,height:w.height||Math.round(F*(w.height||1)/(w.width||1)),format:B,size:w.outputSize||0}),O.push(`${V} ${F}w`)}catch(A){console.warn(`[stx-media] Failed to generate ${B} at ${F}w: ${A}`)}}_.srcsets[B]=O.join(", ")}let j=Z.placeholder||J.placeholderStrategy||"thumbhash";if(j!=="none")try{if(j==="thumbhash"){let B=await Y.generateThumbHash(Q);_.placeholder={dataURL:B.dataUrl,width:B.width||32,height:B.height||32,strategy:"thumbhash"}}else{let B=await Y.generatePlaceholder(Q,{strategy:j,width:20});_.placeholder={dataURL:B.dataURL,width:B.width,height:B.height,strategy:j}}}catch(B){console.warn(`[stx-media] Failed to generate placeholder: ${B}`)}return _.sizes=Z.sizes||KX(X),_}catch(X){return console.error(`[stx-media] Responsive generation failed: ${X}`),null}}function KX($){let Z=[...$].sort((Y,Q)=>Y-Q),J=[];for(let Y=0;Y<Z.length-1;Y++){let Q=Z[Y];J.push(`(max-width: ${Q}px) ${Q}px`)}return J.push(`${Z[Z.length-1]}px`),J.join(", ")}function N3($,Z="width"){if(!$||$.length===0)return"";if(Z==="dpr")return $.filter((J)=>J.dpr).map((J)=>`${J.url} ${J.dpr}x`).join(", ");return $.map((J)=>`${J.url} ${J.width}w`).join(", ")}var GX;var R3=C(()=>{_1();GX=[320,480,640,768,1024,1280,1536,1920]});var T3={};r(T3,{setCachedImageResult:()=>C5,processImage:()=>F3,optimizeImage:()=>V3,getCachedImageResult:()=>y5,generateSrcset:()=>N3,generateResponsiveVariants:()=>A3,clearImageCache:()=>H3,applyTransformations:()=>U$,ImageProcessorCache:()=>S5});var M3=C(()=>{w3();R3();W$()});async function qX(){try{return await Promise.resolve().then(() => (M3(),T3))}catch($){if(!I3)console.warn("[stx-media] Image processor not available, some features disabled:",$),I3=!0;return null}}async function P5($,Z={}){let J=Z,Y=$;if(Y.process&&!Y.skipOptimization){if(J.tsImagesConfig?.enabled&&!J.isDev)return _X(Y,J)}if(J.processedResult?.processed)return O$($,J.processedResult,Z);if(J.responsiveVariants)return b3($,J.responsiveVariants,Z);let{src:Q,alt:X,width:G,height:K,sizes:q,widths:z=E1,dpr:W,formats:U=e1,quality:_=_$,params:j={},placeholder:B="none",placeholderOptions:O={},lazy:F=!0,priority:L=!1,loading:H=L?"eager":x5,decoding:V=v5,fetchpriority:A,objectFit:w,objectPosition:N,crossorigin:R,referrerpolicy:T}=$,I=$.class,M=$.style,E=$.id,k=$.data||{},{isDev:y=!1,baseUrl:S=""}=Z;if(y&&!Z.optimize)return UX($);let b,D,x=E||`stx-img-${Math.random().toString(36).slice(2,8)}`;if(B!=="none"&&!L)try{b=await q3(Q,{strategy:B,...O}),D=K3(x,b,O)}catch{}let h=W!==void 0&&G!==void 0,l;if(h)l=zX($,x,b,Z);else l=await WX($,x,b,Z);let _0;if(L){let S0=U.includes("webp")?"webp":U[0],v0=e9(Q,z,{...j,q:_},S0),L0=typeof q==="object"?$$(q):q||"100vw";_0=`<link rel="preload" as="image" imagesrcset="${v0}" imagesizes="${L0}" />`}let M0=[];if(!D3&&B!=="none")M0.push(X$),D3=!0;if(D)M0.push(D);let z0=F?k3(x):void 0;return{html:l,preloadLink:_0,css:M0.length>0?M0.join(`
|
|
860
|
-
`):void 0,script:
|
|
861
|
+
`.trim();G$=new Map});import{createHash as B3}from"crypto";import{readFile as uJ,stat as j3}from"fs/promises";async function T0($){try{let Z=await uJ($);return B3("sha256").update(Z).digest("hex").slice(0,16)}catch{return""}}function _3($){return B3("sha256").update($).digest("hex").slice(0,16)}function k5($,Z){let J=JSON.stringify(Z,Object.keys(Z).sort());return`${_3($)}-${_3(J)}`}async function q$($){try{return(await j3($)).mtimeMs}catch{return 0}}async function N0($){try{return await j3($),!0}catch{return!1}}var j1=()=>{};import{mkdir as pJ,readFile as lJ,writeFile as cJ,readdir as pz,rm as iJ,stat as lz}from"fs/promises";import{join as H3,dirname as nJ}from"path";async function oJ($){try{await pJ($,{recursive:!0})}catch{}}function L3($,Z,J){return H3($,J,`${Z}.json`)}async function O3($,Z,J){if((Date.now()-$.createdAt)/86400000>J)return!1;if(await q$(Z)!==$.srcMtime)return!1;return!0}async function b5($,Z,J,Y=W$){if(!Y.enabled)return null;let Q=k5($,Z),X=S1.get(Q);if(X){if(await O3(X,$,Y.maxAge))return X.lastAccessedAt=Date.now(),X.data;S1.delete(Q)}let G=L3(Y.directory,Q,J);if(await N0(G))try{let K=await lJ(G,"utf-8"),q=JSON.parse(K);if(await O3(q,$,Y.maxAge))return q.lastAccessedAt=Date.now(),S1.set(Q,q),q.data}catch{}return null}async function S5($,Z,J,Y,Q=W$){if(!Q.enabled)return;let X=k5($,Z),G=await T0($),K=await q$($),q={key:X,src:$,srcHash:G,srcMtime:K,optionsHash:k5("",Z),data:J,createdAt:Date.now(),lastAccessedAt:Date.now()};S1.set(X,q);let z=L3(Q.directory,X,Y);try{await oJ(nJ(z)),await cJ(z,JSON.stringify(q,null,2))}catch(W){console.warn(`[stx-media] Failed to write cache: ${W}`)}}async function y5($,Z=W$){if($==="all")S1.clear();else S1.clear();let J=$==="all"?["image","video"]:[$];for(let Y of J){let Q=H3(Z.directory,Y);try{await iJ(Q,{recursive:!0,force:!0})}catch{}}}var S1,W$;var z$=C(()=>{j1();S1=new Map,W$={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}});class P5{config;constructor($={}){this.config={...sJ,...$}}async get($,Z){return b5($,Z,"image",this.config)}async set($,Z,J){return S5($,Z,J,"image",this.config)}async clear(){return y5("image",this.config)}updateConfig($){this.config={...this.config,...$}}}function U$($){if(!C5)C5=new P5($);else if($)C5.updateConfig($);return C5}async function v5($,Z,J){let Y=J?{directory:`${J.outputDir}/../.cache`}:{};return U$(Y).get($,Z)}async function x5($,Z,J,Y){let Q=Y?{directory:`${Y.outputDir}/../.cache`}:{};return U$(Q).set($,Z,J)}async function F3(){return U$().clear()}var sJ,C5=null;var _$=C(()=>{z$();sJ={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500,cacheVariants:!0,cachePlaceholders:!0}});import{resolve as rJ,basename as aJ,extname as tJ,join as eJ}from"path";import{mkdir as $X}from"fs/promises";async function B$(){try{return await import("ts-images")}catch{return null}}function V3($){switch($){case"quality":return{jpeg:{quality:90,mozjpeg:!0,progressive:!0},png:{compressionLevel:6,palette:!1},webp:{quality:90,effort:6,smartSubsample:!0},avif:{quality:85,effort:6}};case"performance":return{jpeg:{quality:70,mozjpeg:!0,progressive:!0},png:{compressionLevel:9,palette:!0},webp:{quality:70,effort:4,smartSubsample:!0},avif:{quality:60,effort:2}};case"web":default:return{jpeg:{quality:82,mozjpeg:!0,progressive:!0},png:{compressionLevel:8,palette:!1},webp:{quality:82,effort:5,smartSubsample:!0},avif:{quality:75,effort:4}}}}function ZX($,Z){let J=Z?V3(Z):V3("web"),Y=$.formatQuality||{};return{jpeg:{...J.jpeg,...Y.jpeg},png:{...J.png,...Y.png},webp:{...J.webp,...Y.webp},avif:{...J.avif,...Y.avif}}}async function w3($,Z,J){let Y=await B$();if(!Y)return console.warn("[stx-media] ts-images not installed, skipping optimization"),{src:$,processed:!1};let Q=await v5($,Z,J);if(Q)return Q;try{let X=rJ($);if(!await N0(X))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let G=ZX(J,Z.preset),K=J.outputDir||"dist/images",q=J.baseUrl||"/images";await $X(K,{recursive:!0});let z=await T0(X),W=aJ($,tJ($)),U=Z.outputFormat?[Z.outputFormat]:J.defaultFormats||["avif","webp","jpeg"],_={src:$,processed:!0,variants:[],hash:z},j=null;if(Z.transformations&&Z.transformations.length>0)j=await j$(X,Z.transformations,Y);for(let B of U){let O=G[B]||{},F=`${W}-${z}.${B}`,L=eJ(K,F);try{let H=await Y.optimizeImage({input:j||X,output:L,format:B,quality:O.quality,progressive:O.progressive});if(H){if(_.variants.push({path:L,url:`${q}/${F}`,width:H.width||0,height:H.height||0,format:B,size:H.outputSize||0}),!_.originalWidth&&H.width)_.originalWidth=H.width,_.originalHeight=H.height}}catch(H){_.errors=_.errors||[],_.errors.push(`Failed to optimize ${B}: ${H}`)}}if(Z.embedThumbhash||Z.placeholder==="thumbhash")try{let B=await Y.generateThumbHash(X);_.placeholder=B.dataUrl}catch(B){_.errors=_.errors||[],_.errors.push(`Failed to generate thumbhash: ${B}`)}if(Z.useDominantColor)try{let B=await Y.generatePlaceholder(X,{strategy:"dominant-color"});_.dominantColor=B.dominantColor}catch(B){_.errors=_.errors||[],_.errors.push(`Failed to extract dominant color: ${B}`)}return await x5($,Z,_,J),_}catch(X){return{src:$,processed:!1,errors:[`Processing failed: ${X}`]}}}async function A3($,Z,J,Y){let Q=await B$();if(!Q)return{success:!1,error:"ts-images not installed"};try{return{success:!0,size:(await Q.optimizeImage({input:$,output:Y,format:Z,quality:J}))?.outputSize}}catch(X){return{success:!1,error:String(X)}}}async function j$($,Z,J){let Y=J||await B$();if(!Y)return console.warn("[stx-media] ts-images not installed, skipping transformations"),null;try{let Q=await Y.decode($);for(let X of Z){let G=X.options||{};switch(X.type){case"resize":if(G.width||G.height)Q=await Y.resize(Q,{width:G.width,height:G.height,fit:G.fit});break;case"blur":if(G.sigma!==void 0)Q=await Y.blur(Q,G.sigma);break;case"sharpen":if(G.amount!==void 0)Q=await Y.sharpen(Q,G.amount);break;case"grayscale":Q=await Y.grayscale(Q);break;case"rotate":if(G.angle!==void 0)Q=await Y.rotate(Q,G.angle);break;case"flip":Q=await Y.flip(Q);break;case"flop":Q=await Y.flop(Q);break;case"brightness":if(G.value!==void 0)Q=await Y.brightness(Q,G.value);break;case"contrast":if(G.value!==void 0)Q=await Y.contrast(Q,G.value);break;case"saturation":if(G.value!==void 0)Q=await Y.saturation(Q,G.value);break}}return await Y.encode(Q,"png")}catch(Q){return console.error(`[stx-media] Transformation failed: ${Q}`),null}}var N3=C(()=>{j1();_$()});import{resolve as YX,basename as JX,extname as XX,join as QX}from"path";import{mkdir as GX}from"fs/promises";async function KX(){try{return await import("ts-images")}catch{return null}}async function R3($,Z,J){let Y=await KX();if(!Y)return console.warn("[stx-media] ts-images not installed, skipping responsive generation"),null;let Q=YX($);if(!await N0(Q))return console.warn(`[stx-media] Source file not found: ${$}`),null;try{let X=Z.responsiveWidths||J.breakpoints||qX,G=Z.formats||J.defaultFormats||["avif","webp","jpeg"],K=J.outputDir||"dist/images",q=J.baseUrl||"/images";await GX(K,{recursive:!0});let z=await T0(Q),W=JX($,XX($)),U=J.formatQuality||{jpeg:{quality:82},png:{quality:80},webp:{quality:82},avif:{quality:75}},_={src:$,byFormat:{},srcsets:{}};for(let B of G){_.byFormat[B]=[];let O=[];for(let F of X){let L=`${W}-${F}w-${z}.${B}`,H=QX(K,L),V=`${q}/${L}`;try{let A=U[B]?.quality||80;if(await N0(H)){_.byFormat[B].push({path:H,url:V,width:F,height:0,format:B,size:0}),O.push(`${V} ${F}w`);continue}let w=await Y.processImage({input:Q,output:H,format:B,quality:A,resize:{width:F}});if(w)_.byFormat[B].push({path:H,url:V,width:F,height:w.height||Math.round(F*(w.height||1)/(w.width||1)),format:B,size:w.outputSize||0}),O.push(`${V} ${F}w`)}catch(A){console.warn(`[stx-media] Failed to generate ${B} at ${F}w: ${A}`)}}_.srcsets[B]=O.join(", ")}let j=Z.placeholder||J.placeholderStrategy||"thumbhash";if(j!=="none")try{if(j==="thumbhash"){let B=await Y.generateThumbHash(Q);_.placeholder={dataURL:B.dataUrl,width:B.width||32,height:B.height||32,strategy:"thumbhash"}}else{let B=await Y.generatePlaceholder(Q,{strategy:j,width:20});_.placeholder={dataURL:B.dataURL,width:B.width,height:B.height,strategy:j}}}catch(B){console.warn(`[stx-media] Failed to generate placeholder: ${B}`)}return _.sizes=Z.sizes||WX(X),_}catch(X){return console.error(`[stx-media] Responsive generation failed: ${X}`),null}}function WX($){let Z=[...$].sort((Y,Q)=>Y-Q),J=[];for(let Y=0;Y<Z.length-1;Y++){let Q=Z[Y];J.push(`(max-width: ${Q}px) ${Q}px`)}return J.push(`${Z[Z.length-1]}px`),J.join(", ")}function T3($,Z="width"){if(!$||$.length===0)return"";if(Z==="dpr")return $.filter((J)=>J.dpr).map((J)=>`${J.url} ${J.dpr}x`).join(", ");return $.map((J)=>`${J.url} ${J.width}w`).join(", ")}var qX;var M3=C(()=>{j1();qX=[320,480,640,768,1024,1280,1536,1920]});var I3={};r(I3,{setCachedImageResult:()=>x5,processImage:()=>w3,optimizeImage:()=>A3,getCachedImageResult:()=>v5,generateSrcset:()=>T3,generateResponsiveVariants:()=>R3,clearImageCache:()=>F3,applyTransformations:()=>j$,ImageProcessorCache:()=>P5});var D3=C(()=>{N3();M3();_$()});async function zX(){try{return await Promise.resolve().then(() => (D3(),I3))}catch($){if(!E3)console.warn("[stx-media] Image processor not available, some features disabled:",$),E3=!0;return null}}async function f5($,Z={}){let J=Z,Y=$;if(Y.process&&!Y.skipOptimization){if(J.tsImagesConfig?.enabled&&!J.isDev)return jX(Y,J)}if(J.processedResult?.processed)return F$($,J.processedResult,Z);if(J.responsiveVariants)return y3($,J.responsiveVariants,Z);let{src:Q,alt:X,width:G,height:K,sizes:q,widths:z=b1,dpr:W,formats:U=Z5,quality:_=O$,params:j={},placeholder:B="none",placeholderOptions:O={},lazy:F=!0,priority:L=!1,loading:H=L?"eager":h5,decoding:V=g5,fetchpriority:A,objectFit:w,objectPosition:N,crossorigin:R,referrerpolicy:T}=$,I=$.class,M=$.style,E=$.id,k=$.data||{},{isDev:y=!1,baseUrl:S=""}=Z;if(y&&!Z.optimize)return BX($);let b,D,x=E||`stx-img-${Math.random().toString(36).slice(2,8)}`;if(B!=="none"&&!L)try{b=await z3(Q,{strategy:B,...O}),D=W3(x,b,O)}catch{}let h=W!==void 0&&G!==void 0,i;if(h)i=_X($,x,b,Z);else i=await UX($,x,b,Z);let U0;if(L){let C0=U.includes("webp")?"webp":U[0],p0=Y$(Q,z,{...j,q:_},C0),L0=typeof q==="object"?J$(q):q||"100vw";U0=`<link rel="preload" as="image" imagesrcset="${p0}" imagesizes="${L0}" />`}let H0=[];if(!k3&&B!=="none")H0.push(K$),k3=!0;if(D)H0.push(D);let _0=F?S3(x):void 0;return{html:i,preloadLink:U0,css:H0.length>0?H0.join(`
|
|
862
|
+
`):void 0,script:_0}}async function UX($,Z,J,Y){let{src:Q,alt:X,width:G,height:K,sizes:q,widths:z=b1,formats:W=Z5,quality:U=O$,params:_={},lazy:j=!0,priority:B=!1,loading:O=B?"eager":h5,decoding:F=g5,fetchpriority:L,objectFit:H,objectPosition:V,crossorigin:A,referrerpolicy:w}=$,N=$.class,R=$.style,T=$.data||{},I=typeof q==="object"?J$(q):q||"100vw",M=[];for(let y of W){let S=Y$(Q,z,{..._,q:U},y),b=X$(y);if(j&&!B)M.push(` <source type="${b}" data-srcset="${S}" data-sizes="${I}" />`);else M.push(` <source type="${b}" srcset="${S}" sizes="${I}" />`)}let E=H$({src:Y5(Q,{..._,q:U}),alt:X,width:G,height:K,loading:B?void 0:O,decoding:F,fetchpriority:B?"high":L,objectFit:H,objectPosition:V,crossorigin:A,referrerpolicy:w,className:b3(N,J),style:L$(R,H,V,J),lazy:j&&!B,data:T}),k;if(J){let y=`background-image: url('${J.dataURL}'); background-size: cover; background-position: center;`;k=`<div id="${Z}" class="stx-img-placeholder" style="${y}">
|
|
861
863
|
<picture>
|
|
862
864
|
${M.join(`
|
|
863
865
|
`)}
|
|
@@ -867,9 +869,9 @@ ${M.join(`
|
|
|
867
869
|
${M.join(`
|
|
868
870
|
`)}
|
|
869
871
|
<img ${E} />
|
|
870
|
-
</picture>`;return k}function
|
|
872
|
+
</picture>`;return k}function _X($,Z,J,Y){let{src:Q,alt:X,width:G,height:K,dpr:q=[1,2,3],quality:z=O$,params:W={},lazy:U=!0,priority:_=!1,loading:j=_?"eager":h5,decoding:B=g5,fetchpriority:O,objectFit:F,objectPosition:L,crossorigin:H,referrerpolicy:V}=$,A=$.class,w=$.style,N=$.data||{},R=typeof G==="number"?G:Number.parseInt(String(G),10),T=q3(Q,R,q,{...W,q:z}),I=H$({src:Y5(Q,{...W,w:R,q:z}),alt:X,width:G,height:K,loading:_?void 0:j,decoding:B,fetchpriority:_?"high":O,objectFit:F,objectPosition:L,crossorigin:H,referrerpolicy:V,className:b3(A,J),style:L$(w,F,L,J),lazy:U&&!_,data:N}),M=U&&!_?`data-srcset="${T}"`:`srcset="${T}"`;if(J){let E=`background-image: url('${J.dataURL}'); background-size: cover; background-position: center;`;return`<div id="${Z}" class="stx-img-placeholder" style="${E}">
|
|
871
873
|
<img ${I} ${M} />
|
|
872
|
-
</div>`}return`<img ${Z?`id="${Z}" `:""}${I} ${M} />`}function
|
|
874
|
+
</div>`}return`<img ${Z?`id="${Z}" `:""}${I} ${M} />`}function BX($){let{src:Z,alt:J,width:Y,height:Q,loading:X=h5,decoding:G=g5,fetchpriority:K,objectFit:q,objectPosition:z,crossorigin:W,referrerpolicy:U,priority:_=!1}=$,j=$.class,B=$.style,O=$.id,F=$.data||{};return{html:`<img ${H$({src:Z,alt:J,width:Y,height:Q,loading:_?"eager":X,decoding:G,fetchpriority:_?"high":K,objectFit:q,objectPosition:z,crossorigin:W,referrerpolicy:U,className:j,style:L$(B,q,z),id:O,data:F})} />`}}function H$($){let Z=[];if($.lazy)Z.push(`data-src="${P0($.src)}"`),Z.push('src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"');else Z.push(`src="${P0($.src)}"`);if(Z.push(`alt="${P0($.alt)}"`),$.width)Z.push(`width="${$.width}"`);if($.height)Z.push(`height="${$.height}"`);if($.loading)Z.push(`loading="${$.loading}"`);if($.decoding)Z.push(`decoding="${$.decoding}"`);if($.fetchpriority)Z.push(`fetchpriority="${$.fetchpriority}"`);if($.crossorigin)Z.push(`crossorigin="${$.crossorigin}"`);if($.referrerpolicy)Z.push(`referrerpolicy="${$.referrerpolicy}"`);if($.className)Z.push(`class="${P0($.className)}"`);if($.style)Z.push(`style="${P0($.style)}"`);if($.id)Z.push(`id="${P0($.id)}"`);if($.data)for(let[J,Y]of Object.entries($.data))Z.push(`data-${J}="${P0(Y)}"`);if($.lazy)Z.push("data-stx-lazy");return Z.join(" ")}function b3($,Z){let J=[];if($)J.push($);if(Z)J.push("stx-img-blur");return J.join(" ")||""}function L$($,Z,J,Y){let Q=[];if(Z)Q.push(`object-fit: ${Z}`);if(J)Q.push(`object-position: ${J}`);if(Y)Q.push("opacity: 0; transition: opacity 300ms ease-out");if($)Q.push($);return Q.join("; ")}function P0($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function S3($){return`
|
|
873
875
|
(function() {
|
|
874
876
|
const container = document.getElementById('${$}');
|
|
875
877
|
if (!container) return;
|
|
@@ -906,7 +908,7 @@ ${M.join(`
|
|
|
906
908
|
|
|
907
909
|
observer.observe(container);
|
|
908
910
|
})();
|
|
909
|
-
`.trim()}async function
|
|
911
|
+
`.trim()}async function jX($,Z){let J=await zX();if(!J)return f5({...$,process:!1},Z);let Y=Z.tsImagesConfig;if($.responsiveWidths&&$.responsiveWidths.length>0||$.widths&&$.widths.length>0||!$.width&&!$.dpr){let X=await J.generateResponsiveVariants($.src,$,Y);if(X)return y3($,X,Z)}else{let X=await J.processImage($.src,$,Y);if(X.processed)return F$($,X,Z)}return f5({...$,process:!1},Z)}async function F$($,Z,J){let{alt:Y,width:Q,height:X,lazy:G=!0,priority:K=!1,objectFit:q,objectPosition:z,crossorigin:W,referrerpolicy:U}=$,_=$.class,j=$.style,B=$.id||`stx-img-${Math.random().toString(36).slice(2,8)}`,O=$.data||{},F=Z.variants||[],L=F.find((D)=>D.format==="jpeg")||F.find((D)=>D.format==="webp")||F[0],H=L?.url||$.src,V=F.filter((D)=>D.format===(L?.format||"jpeg")).map((D)=>`${D.url} ${D.width}w`).join(", "),A=new Map;for(let D of F){if(!A.has(D.format))A.set(D.format,[]);A.get(D.format).push(D)}let w=[],N=["avif","webp","jpeg","png"];for(let D of N){let x=A.get(D);if(x&&x.length>0){let h=x.map((U0)=>`${U0.url} ${U0.width}w`).join(", "),i=X$(D);if(G&&!K)w.push(` <source type="${i}" data-srcset="${h}" />`);else w.push(` <source type="${i}" srcset="${h}" />`)}}let R=[];if(G&&!K){if(R.push(`data-src="${P0(H)}"`),R.push('src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"'),V)R.push(`data-srcset="${V}"`)}else if(R.push(`src="${P0(H)}"`),V)R.push(`srcset="${V}"`);R.push(`alt="${P0(Y)}"`);let T=Q||Z.originalWidth,I=X||Z.originalHeight;if(T)R.push(`width="${T}"`);if(I)R.push(`height="${I}"`);if(!K)R.push(`loading="${G?"lazy":"eager"}"`);if(R.push('decoding="async"'),K)R.push('fetchpriority="high"');if(W)R.push(`crossorigin="${W}"`);if(U)R.push(`referrerpolicy="${U}"`);let M=[];if(q)M.push(`object-fit: ${q}`);if(z)M.push(`object-position: ${z}`);if(Z.placeholder&&G)M.push("opacity: 0; transition: opacity 300ms ease-out");if(j)M.push(j);if(M.length>0)R.push(`style="${M.join("; ")}"`);let E=[];if(_)E.push(_);if(Z.placeholder)E.push("stx-img-blur");if(E.length>0)R.push(`class="${E.join(" ")}"`);if(G&&!K)R.push("data-stx-lazy");for(let[D,x]of Object.entries(O))R.push(`data-${D}="${P0(x)}"`);let k;if(Z.placeholder||Z.dominantColor&&$.useDominantColor){let D=Z.placeholder?`background-image: url('${Z.placeholder}'); background-size: cover; background-position: center;`:`background-color: ${Z.dominantColor};`;k=`<div id="${B}" class="stx-img-placeholder" style="${D}">
|
|
910
912
|
<picture>
|
|
911
913
|
${w.join(`
|
|
912
914
|
`)}
|
|
@@ -916,12 +918,12 @@ ${w.join(`
|
|
|
916
918
|
${w.join(`
|
|
917
919
|
`)}
|
|
918
920
|
<img ${R.join(" ")} />
|
|
919
|
-
</picture>`;let y=[];if(Z.placeholder)y.push(
|
|
920
|
-
`):void 0,script:S}}async function
|
|
921
|
+
</picture>`;let y=[];if(Z.placeholder)y.push(K$);let S=G?S3(B):void 0,b;if(K&&V)b=`<link rel="preload" as="image" imagesrcset="${V}" />`;return{html:k,preloadLink:b,css:y.length>0?y.join(`
|
|
922
|
+
`):void 0,script:S}}async function y3($,Z,J){let Y={src:Z.src,processed:!0,variants:[],placeholder:Z.placeholder?.dataURL,originalWidth:Z.placeholder?.width,originalHeight:Z.placeholder?.height};for(let[Q,X]of Object.entries(Z.byFormat))if(X)Y.variants.push(...X);return F$($,Y,J)}var E3=!1,O$=80,g5="async",h5="lazy",k3=!1;var C3=C(()=>{Q$();U3()});function OX(){return E5({name:"img",hasEndTag:!1,description:"Render an optimized responsive image with srcset and lazy loading",transform:async($,Z,J,Y)=>{let{src:Q,alt:X,options:G}=HX($,Z,J);if(!Q)return console.warn("@img directive: missing src argument"),"<!-- @img: missing src -->";let K={src:Q,alt:X||"",widths:G.widths||b1,formats:G.formats||Z5,quality:G.quality,sizes:G.sizes,dpr:G.dpr,params:G.params,placeholder:G.placeholder,placeholderOptions:G.placeholderOptions,lazy:G.lazy!==!1,priority:G.priority||!1,loading:G.loading,decoding:G.decoding,fetchpriority:G.fetchpriority,objectFit:G.objectFit,objectPosition:G.objectPosition,class:G.class,style:G.style,id:G.id,width:G.width,height:G.height},q=J.__isDev||!1,z=await f5(K,{isDev:q}),W=z.html;if(z.preloadLink)W=z.preloadLink+`
|
|
921
923
|
`+W;if(z.css)W+=`
|
|
922
924
|
<style>${z.css}</style>`;if(z.script)W+=`
|
|
923
|
-
<script>${z.script}</script>`;return W},defaults:{src:"",alt:"",options:{lazy:!0,placeholder:"none"}}})}function
|
|
924
|
-
`)}async function
|
|
925
|
+
<script>${z.script}</script>`;return W},defaults:{src:"",alt:"",options:{lazy:!0,placeholder:"none"}}})}function HX($,Z,J){if(Z.src)return{src:String(Z.src),alt:String(Z.alt||""),options:Z.options||{}};let Y=$.trim();if(Y.startsWith("@img(")||Y.startsWith("("))Y=Y.replace(/^@img\(/,"").replace(/^\(/,"").replace(/\)$/,"");let Q=LX(Y),X=V$(Q[0],J)||"",G=V$(Q[1],J)||"",K={};if(Q[2]){let q=V$(Q[2],J);if(typeof q==="object"&&q!==null)K=q;else if(typeof Q[2]==="string")try{K=JSON.parse(Q[2])}catch{}}return{src:X,alt:G,options:K}}function LX($){let Z=[],J="",Y=!1,Q="",X=0,G=0;for(let K=0;K<$.length;K++){let q=$[K],z=K>0?$[K-1]:"";if((q==='"'||q==="'"||q==="`")&&z!=="\\"){if(!Y)Y=!0,Q=q;else if(q===Q)Y=!1,Q="";else J+=q;continue}if(!Y){if(q==="{")X++;if(q==="}")X--;if(q==="[")G++;if(q==="]")G--;if(q===","&&X===0&&G===0){Z.push(J.trim()),J="";continue}}J+=q}if(J.trim())Z.push(J.trim());return Z}function V$($,Z){if(typeof $!=="string")return $;let J=$.trim();if(J.startsWith('"')&&J.endsWith('"')||J.startsWith("'")&&J.endsWith("'"))return J.slice(1,-1);if(!J.startsWith("/")&&!J.startsWith(".")&&!J.startsWith("http")&&!J.startsWith("{")){let Y=Z[J];if(Y!==void 0)return Y}if(J.startsWith("{")||J.startsWith("["))try{return JSON.parse(J)}catch{}return J}var P3;var v3=C(()=>{Z$();C3();Q$();P3=OX()});class m5{config;constructor($={}){this.config={...FX,...$}}async get($,Z){return b5($,Z,"video",this.config)}async set($,Z,J){return S5($,Z,J,"video",this.config)}async clear(){return y5("video",this.config)}updateConfig($){this.config={...this.config,...$}}}function w$($){if(!d5)d5=new m5($);else if($)d5.updateConfig($);return d5}async function u5($,Z,J){let Y=J?{directory:`${J.outputDir}/../.cache`}:{};return w$(Y).get($,Z)}async function p5($,Z,J,Y){let Q=Y?{directory:`${Y.outputDir}/../.cache`}:{};return w$(Q).set($,Z,J)}async function x3(){return w$().clear()}var FX,d5=null;var A$=C(()=>{z$();FX={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:2000,cacheTranscoded:!0,cacheThumbnails:!0,cacheManifests:!0}});import{resolve as N$,basename as R$,extname as T$,join as l5}from"path";import{mkdir as M$}from"fs/promises";async function I$(){try{return await import("ts-videos")}catch{return null}}async function c5($,Z,J,Y){let Q=await I$();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate poster"),null;try{let X=N$($);if(!await N0(X))return null;await M$(J,{recursive:!0});let G=await T0(X),K=R$($,T$($)),q=Z.format||"webp",z=Z.timestamp||0,W=`${K}-poster-${G}.${q}`,U=l5(J,W),_=await Q.extractThumbnails(X,{timestamps:[z],width:Z.width||1280,height:Z.height,format:q,quality:Z.quality||85,outputDir:J,outputPattern:W.replace(`.${q}`,"")});if(_&&_.length>0){let j=_[0];return{path:U,url:`${Y}/${W}`,width:j.width||Z.width||1280,height:j.height||720,timestamp:z,size:j.size||0}}return null}catch(X){return console.warn(`[stx-media] Failed to generate poster: ${X}`),null}}async function i5($,Z,J,Y){let Q=await I$();if(!Q)return[];try{let X=N$($);if(!await N0(X))return[];await M$(J,{recursive:!0});let G=await T0(X),K=R$($,T$($)),q=Z.format||"webp",U=(await new Q.Input(X).getInfo()).duration||60,_=Z.count||10,j=Z.interval||U/_,B=[];for(let F=0;F<_&&F*j<U;F++)B.push(F*j);let O=await Q.extractThumbnails(X,{timestamps:B,width:Z.width||320,format:q,quality:Z.quality||80,outputDir:J,outputPattern:`${K}-thumb-${G}`});if(O&&O.length>0)return O.map((F,L)=>({path:F.path||l5(J,`${K}-thumb-${G}-${L}.${q}`),url:`${Y}/${K}-thumb-${G}-${L}.${q}`,width:F.width||Z.width||320,height:F.height||180,timestamp:B[L],size:F.size||0}));return[]}catch(X){return console.warn(`[stx-media] Failed to generate thumbnails: ${X}`),[]}}async function f3($,Z,J,Y){let Q=await I$();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate sprite sheet"),null;try{let X=N$($);if(!await N0(X))return null;await M$(J,{recursive:!0});let G=await T0(X),K=R$($,T$($)),W=(await new Q.Input(X).getInfo()).duration||60,U=Z.columns||10,_=Z.interval||5,j=Z.thumbnailWidth||160,B=Z.thumbnailHeight||90,O=Z.format||"jpeg",F=Math.ceil(W/_),L=Math.ceil(F/U),H=`${K}-sprite-${G}.${O}`,V=l5(J,H),A=[];for(let N=0;N<F;N++)A.push(N*_);let w=await Q.extractThumbnails(X,{timestamps:A,width:j,height:B,format:O,quality:Z.quality||70,outputDir:l5(J,".temp")});if(!w||w.length===0)return null;try{let N=await import("ts-images"),R=U*j,T=L*B,I=await N.createSprite({images:w.map((M)=>M.path),columns:U,padding:0,outputPath:V,format:O,quality:Z.quality||70});return{url:`${Y}/${H}`,path:V,columns:U,rows:L,thumbnailWidth:j,thumbnailHeight:B,interval:_,totalFrames:F}}catch{return console.warn("[stx-media] ts-images not installed, sprite sheet generation skipped"),null}}catch(X){return console.warn(`[stx-media] Failed to generate sprite sheet: ${X}`),null}}var D$=C(()=>{j1()});import{resolve as h3,basename as d3,extname as m3,join as O1}from"path";import{mkdir as n5,writeFile as u3}from"fs/promises";async function p3(){try{return await import("ts-videos")}catch{return null}}async function o5($,Z,J,Y,Q){let X=await p3();if(!X)return console.warn("[stx-media] ts-videos not installed, cannot generate HLS manifest"),null;try{let G=h3($);if(!await N0(G))return null;let K=await T0(G),q=d3($,m3($)),z=O1(J,`${q}-${K}-hls`);await n5(z,{recursive:!0});let W=Z.length>0?Z:l3,U=Q?.segmentDuration||6,B=(await new X.Input(G).getInfo()).duration||0,O=[],F=0;for(let V of W){let A=O1(z,V.label);await n5(A,{recursive:!0});let w=`${V.label}.m3u8`,N=O1(A,w);try{let R=await X.generateHLS(G,{outputDir:A,segmentDuration:U,width:V.width,height:V.height,videoBitrate:V.bitrate,audioBitrate:V.audioBitrate,playlistName:V.label});if(R)O.push({quality:V,url:`${Y}/${q}-${K}-hls/${V.label}/${w}`,path:N}),F+=R.segmentCount||Math.ceil(B/U)}catch(R){console.warn(`[stx-media] Failed to generate HLS for ${V.label}: ${R}`)}}if(O.length===0)return null;let L=O1(z,"master.m3u8"),H=VX(O,Y,q,K);return await u3(L,H),{manifestUrl:`${Y}/${q}-${K}-hls/master.m3u8`,manifestPath:L,playlists:O,segmentCount:F,duration:B}}catch(G){return console.warn(`[stx-media] Failed to generate HLS manifest: ${G}`),null}}function VX($,Z,J,Y){let Q=["#EXTM3U","#EXT-X-VERSION:3"];for(let X of $){let{quality:G}=X,K=G.bitrate+(G.audioBitrate||128000),q=`${G.width}x${G.height||Math.round(G.width*9/16)}`;Q.push(`#EXT-X-STREAM-INF:BANDWIDTH=${K},RESOLUTION=${q},NAME="${G.label}"`,`${G.label}/${G.label}.m3u8`)}return Q.join(`
|
|
926
|
+
`)}async function s5($,Z,J,Y,Q){let X=await p3();if(!X)return console.warn("[stx-media] ts-videos not installed, cannot generate DASH manifest"),null;try{let G=h3($);if(!await N0(G))return null;let K=await T0(G),q=d3($,m3($)),z=O1(J,`${q}-${K}-dash`);await n5(z,{recursive:!0});let W=Z.length>0?Z:l3,U=Q?.segmentDuration||4,_=Q?.minBufferTime||2,O=(await new X.Input(G).getInfo()).duration||0,F=[],L=[];for(let w of W){let N=O1(z,w.label);await n5(N,{recursive:!0});try{if(await X.generateDASH(G,{outputDir:N,segmentDuration:U,width:w.width,height:w.height,videoBitrate:w.bitrate,audioBitrate:w.audioBitrate})){if(F.push({bandwidth:w.bitrate,width:w.width,height:w.height||Math.round(w.width*9/16),url:`${Y}/${q}-${K}-dash/${w.label}/video`}),w.audioBitrate)L.push({bandwidth:w.audioBitrate,url:`${Y}/${q}-${K}-dash/${w.label}/audio`})}}catch(R){console.warn(`[stx-media] Failed to generate DASH for ${w.label}: ${R}`)}}if(F.length===0)return null;let H=O1(z,"manifest.mpd"),V=wX(F,L,O,U,_);await u3(H,V);let A=[{type:"video",representations:F}];if(L.length>0)A.push({type:"audio",representations:L});return{manifestUrl:`${Y}/${q}-${K}-dash/manifest.mpd`,manifestPath:H,adaptationSets:A,duration:O}}catch(G){return console.warn(`[stx-media] Failed to generate DASH manifest: ${G}`),null}}function wX($,Z,J,Y,Q){let X=g3(J),G=g3(Q),K=`<?xml version="1.0" encoding="UTF-8"?>
|
|
925
927
|
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011"
|
|
926
928
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
927
929
|
xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd"
|
|
@@ -947,7 +949,7 @@ ${w.join(`
|
|
|
947
949
|
</Representation>
|
|
948
950
|
`}K+=` </AdaptationSet>
|
|
949
951
|
`}return K+=` </Period>
|
|
950
|
-
</MPD>`,K}function
|
|
952
|
+
</MPD>`,K}function g3($){let Z=Math.floor($/3600),J=Math.floor($%3600/60),Y=Math.floor($%60),Q="PT";if(Z>0)Q+=`${Z}H`;if(J>0)Q+=`${J}M`;return Q+=`${Y}S`,Q}var l3;var E$=C(()=>{j1();l3=[{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 c3,basename as AX,extname as NX,join as RX}from"path";import{mkdir as TX}from"fs/promises";async function i3(){try{return await import("ts-videos")}catch{return null}}function MX($){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 IX($){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 k$($){let Z=await i3();if(!Z)return null;try{let J=c3($),Q=await new Z.Input(J).getInfo();return{duration:Q.duration||0,width:Q.width||0,height:Q.height||0,frameRate:Q.frameRate||0,bitrate:Q.bitrate||0,codec:Q.videoCodec||"",audioCodec:Q.audioCodec}}catch(J){return console.warn(`[stx-media] Failed to analyze video: ${J}`),null}}async function n3($,Z,J,Y){let Q=await i3();if(!Q)return console.warn("[stx-media] ts-videos not installed, skipping processing"),{src:$,processed:!1};let X=await u5($,Z,J);if(X)return X;try{let G=c3($);if(!await N0(G))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let K=J.outputDir||"dist/videos",q=J.baseUrl||"/videos";await TX(K,{recursive:!0});let z=await T0(G),W=AX($,NX($)),U={src:$,processed:!0,hash:z};Y?.({percentage:5,stage:"analyzing"}),U.metadata=await k$(G)||void 0;let _={};if(Z.quality)_.bitrate=MX(Z.quality);if(Z.platform)Object.assign(_,IX(Z.platform));if(Z.transcode)Object.assign(_,Z.transcode);if(Object.keys(_).length>0||Z.process){Y?.({percentage:10,stage:"transcoding"});let j=`${W}-${z}.mp4`,B=RX(K,j);try{let O=await DX(G,B,_,Q,(F)=>Y?.({percentage:10+F*0.5,stage:"transcoding"}));if(O)U.transcoded={path:B,url:`${q}/${j}`,duration:O.duration,size:O.size,video:{codec:_.codec||"h264",width:O.width,height:O.height,bitrate:O.bitrate,frameRate:O.frameRate},audio:O.audioCodec?{codec:_.audioCodec||"aac",bitrate:_.audioBitrate||128000,sampleRate:_.sampleRate||48000,channels:_.channels||2}:void 0}}catch(O){U.errors=U.errors||[],U.errors.push(`Transcoding failed: ${O}`)}}if(Z.generatePoster){Y?.({percentage:65,stage:"generating-poster"});let j=typeof Z.generatePoster==="object"?Z.generatePoster:{timestamp:0},B=await c5(G,j,K,q);if(B)U.poster=B}if(J.thumbnails?.enabled){Y?.({percentage:70,stage:"generating-thumbnails"});let j=await i5(G,J.thumbnails,K,q);if(j.length>0)U.thumbnails=j}if(Z.streaming){Y?.({percentage:80,stage:"generating-manifests"});let j=typeof Z.streaming==="object"?Z.streaming:J.streaming||{format:"hls"};if(j.format==="hls"||j.format===void 0){let B=await o5(G,j.qualities||J.streaming?.defaultQualities||[],K,q);if(B)U.streaming={...U.streaming,hls:B}}if(j.format==="dash"){let B=await s5(G,j.qualities||J.streaming?.defaultQualities||[],K,q);if(B)U.streaming={...U.streaming,dash:B}}}if(Z.spriteSheet)Y?.({percentage:90,stage:"generating-sprite-sheet"});return Y?.({percentage:100,stage:"complete"}),await p5($,Z,U,J),U}catch(G){return{src:$,processed:!1,errors:[`Processing failed: ${G}`]}}}async function DX($,Z,J,Y,Q){try{let G=await new Y.Conversion($,Z,{videoCodec:J.codec,videoBitrate:J.bitrate,width:J.maxWidth,height:J.maxHeight,frameRate:J.frameRate,audioCodec:J.audioCodec,audioBitrate:J.audioBitrate,sampleRate:J.sampleRate,channels:J.channels}).run((K)=>{Q?.(K.percentage/100)});return{duration:G.duration||0,size:G.size||0,width:G.width||J.maxWidth||0,height:G.height||J.maxHeight||0,bitrate:G.bitrate||J.bitrate||0,frameRate:G.frameRate||J.frameRate||30,audioCodec:G.audioCodec}}catch(X){return console.error(`[stx-media] Transcoding failed: ${X}`),null}}var o3=C(()=>{j1();A$();D$();E$()});var s3={};r(s3,{setCachedVideoResult:()=>p5,processVideo:()=>n3,getCachedVideoResult:()=>u5,generateThumbnails:()=>i5,generateSpriteSheet:()=>f3,generatePoster:()=>c5,generateHLSManifest:()=>o5,generateDASHManifest:()=>s5,clearVideoCache:()=>x3,analyzeVideo:()=>k$,VideoProcessorCache:()=>m5});var r3=C(()=>{o3();D$();E$();A$()});async function t3(){try{return await Promise.resolve().then(() => (r3(),s3))}catch($){if(!a3)console.warn("[stx-media] Video processor not available, some features disabled:",$),a3=!0;return null}}async function r5($,Z={}){let J=Z,Y=$;if(Y.process&&!Y.skipProcessing){if(J.tsVideosConfig?.enabled&&!J.isDev)return CX(Y,J)}if(J.processedResult?.processed)return Y6($,J.processedResult,Z);let Q;if(Y.generatePoster&&Y.src&&!$.poster)Q=await PX(Y,J);let{src:X,sources:G=[],poster:K,posterPlaceholder:q,controls:z=e3,autoplay:W=!1,muted:U=!1,loop:_=!1,preload:j=$6,playsinline:B=!0,lazy:O=!0,player:F="native",type:L,width:H,height:V,crossorigin:A,disablePictureInPicture:w=!1,disableRemotePlayback:N=!1}=$,R=Q||K,T=$.class,I=$.style,M=$.id||`stx-video-${Math.random().toString(36).slice(2,8)}`;if(F==="ts-video")return bX($,Z);if(L&&L!=="video")return kX(X||"",L,$);let E=G.length>0?G:X?[{src:X,type:Z6(X)}]:[],k=[`id="${M}"`];if(z)k.push("controls");if(W)k.push("autoplay");if(U)k.push("muted");if(_)k.push("loop");if(B)k.push("playsinline");if(w)k.push("disablepictureinpicture");if(N)k.push("disableremoteplayback");if(A)k.push(`crossorigin="${A}"`);if(O){if(k.push(`data-preload="${j}"`),k.push('preload="none"'),R)k.push(`data-poster="${j0(R)}"`);k.push("data-stx-lazy")}else if(k.push(`preload="${j}"`),R)k.push(`poster="${j0(R)}"`);if(H)k.push(`width="${H}"`);if(V)k.push(`height="${V}"`);if(T)k.push(`class="${j0(T)}"`);if(I)k.push(`style="${j0(I)}"`);let y=E.map((D)=>{return` <source ${O?`data-src="${j0(D.src)}"`:`src="${j0(D.src)}"`} type="${D.type}"${D.media?` media="${D.media}"`:""} />`}).join(`
|
|
951
953
|
`),S=`<video ${k.join(" ")}>
|
|
952
954
|
${y}
|
|
953
955
|
Your browser does not support the video tag.
|
|
@@ -986,12 +988,12 @@ ${y}
|
|
|
986
988
|
|
|
987
989
|
observer.observe(video);
|
|
988
990
|
})();
|
|
989
|
-
`.trim();return{html:S,script:b}}function
|
|
991
|
+
`.trim();return{html:S,script:b}}function kX($,Z,J){let{width:Y=640,height:Q=360}=J,X=J.class,G=J.style,K=J.id||`stx-embed-${Math.random().toString(36).slice(2,8)}`,q,z=null;switch(Z){case"youtube":z=SX($),q=z?`https://www.youtube-nocookie.com/embed/${z}`:$;break;case"vimeo":z=yX($),q=z?`https://player.vimeo.com/video/${z}`:$;break;case"dailymotion":z=$.split("/").pop()||"",q=`https://www.dailymotion.com/embed/video/${z}`;break;case"twitch":z=$.split("/").pop()||"",q=`https://player.twitch.tv/?video=${z}&parent=${typeof window<"u"?window.location.hostname:"localhost"}`;break;default:q=$}let W=[`id="${K}"`,`src="${j0(q)}"`,`width="${Y}"`,`height="${Q}"`,'frameborder="0"',"allowfullscreen",'allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"'];if(X)W.push(`class="${j0(X)}"`);if(G)W.push(`style="${j0(G)}"`);if(J.lazy)W.push('loading="lazy"');return{html:`<div class="stx-video-embed" style="position:relative;padding-bottom:56.25%;height:0;overflow:hidden;">
|
|
990
992
|
<iframe ${W.join(" ")} style="position:absolute;top:0;left:0;width:100%;height:100%;"></iframe>
|
|
991
|
-
</div>`}}function
|
|
993
|
+
</div>`}}function bX($,Z={}){let{src:J,sources:Y=[],poster:Q,controls:X=!0,autoplay:G=!1,muted:K=!1,loop:q=!1,preload:z="metadata",playsinline:W=!0,lazy:U=!0,width:_,height:j}=$,B=$.class,O=$.style,F=$.id||`ts-video-${Math.random().toString(36).slice(2,8)}`,L={src:Y.length>0?Y:J,autoplay:G,loop:q,muted:K,playsinline:W,preload:z,poster:Q,controls:X,title:$.title},H=["position: relative",_?`width: ${typeof _==="number"?_+"px":_}`:"width: 100%",j?`height: ${typeof j==="number"?j+"px":j}`:"",O||""].filter(Boolean).join("; "),V=`
|
|
992
994
|
<div
|
|
993
995
|
id="${F}"
|
|
994
|
-
class="ts-video-player${B?" "+
|
|
996
|
+
class="ts-video-player${B?" "+j0(B):""}"
|
|
995
997
|
style="${H}"
|
|
996
998
|
data-ts-video-player
|
|
997
999
|
data-config='${JSON.stringify(L)}'
|
|
@@ -999,7 +1001,7 @@ ${y}
|
|
|
999
1001
|
>
|
|
1000
1002
|
<div class="ts-video-player__container">
|
|
1001
1003
|
${Q?`
|
|
1002
|
-
<div class="ts-video-player__placeholder" style="background-image: url('${
|
|
1004
|
+
<div class="ts-video-player__placeholder" style="background-image: url('${j0(Q)}');">
|
|
1003
1005
|
<button class="ts-video-player__play-button" aria-label="Play video">
|
|
1004
1006
|
<svg viewBox="0 0 24 24" fill="currentColor" width="64" height="64">
|
|
1005
1007
|
<path d="M8 5v14l11-7z"/>
|
|
@@ -1025,7 +1027,7 @@ ${y}
|
|
|
1025
1027
|
|
|
1026
1028
|
// Load ts-video-player from CDN
|
|
1027
1029
|
var script = document.createElement('script');
|
|
1028
|
-
script.src = '${
|
|
1030
|
+
script.src = '${EX}';
|
|
1029
1031
|
script.onload = initPlayer;
|
|
1030
1032
|
script.onerror = function() {
|
|
1031
1033
|
console.error('[stx] Failed to load ts-video-player');
|
|
@@ -1155,10 +1157,10 @@ else {
|
|
|
1155
1157
|
.ts-video-player__play-button svg {
|
|
1156
1158
|
margin-left: 4px;
|
|
1157
1159
|
}
|
|
1158
|
-
`.trim();return{html:V,script:A,css:w}}function
|
|
1160
|
+
`.trim();return{html:V,script:A,css:w}}function Z6($){switch($.split(".").pop()?.toLowerCase()){case"mp4":return"video/mp4";case"webm":return"video/webm";case"ogg":case"ogv":return"video/ogg";case"mov":return"video/quicktime";case"avi":return"video/x-msvideo";case"mkv":return"video/x-matroska";case"m3u8":return"application/x-mpegURL";default:return"video/mp4"}}function SX($){let Z=[/youtube\.com\/watch\?v=([^&]+)/,/youtube\.com\/embed\/([^?]+)/,/youtu\.be\/([^?]+)/,/youtube\.com\/v\/([^?]+)/];for(let J of Z){let Y=$.match(J);if(Y)return Y[1]}return null}function yX($){let Z=$.match(/vimeo\.com\/(\d+)/);return Z?Z[1]:null}function j0($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'")}async function CX($,Z){let J=await t3();if(!J)return r5({...$,process:!1},Z);let Y=Z.tsVideosConfig,Q=await J.processVideo($.src,$,Y,$.onProcessProgress);if(Q.processed)return Y6($,Q,Z);return r5({...$,process:!1},Z)}async function PX($,Z){let J=await t3();if(!J||!$.src)return;let Y=typeof $.generatePoster==="object"?$.generatePoster:{timestamp:0},Q=Z.tsVideosConfig||{enabled:!0,outputDir:"dist/videos",baseUrl:"/videos"};return(await J.generatePoster($.src,Y,Q.outputDir,Q.baseUrl||"/videos"))?.url}function Y6($,Z,J){let{controls:Y=e3,autoplay:Q=!1,muted:X=!1,loop:G=!1,preload:K=$6,playsinline:q=!0,lazy:z=!0,width:W,height:U,crossorigin:_,disablePictureInPicture:j=!1,disableRemotePlayback:B=!1}=$,O=$.class,F=$.style,L=$.id||`stx-video-${Math.random().toString(36).slice(2,8)}`,H=$.src,V=Z6(H);if(Z.transcoded)H=Z.transcoded.url,V="video/mp4";let A=Z.streaming?.hls||Z.streaming?.dash;if(A){if(Z.streaming?.hls)H=Z.streaming.hls.manifestUrl,V="application/x-mpegURL";else if(Z.streaming?.dash)H=Z.streaming.dash.manifestUrl,V="application/dash+xml"}let w=Z.poster?.url||$.poster,N=[`id="${L}"`];if(Y)N.push("controls");if(Q)N.push("autoplay");if(X)N.push("muted");if(G)N.push("loop");if(q)N.push("playsinline");if(j)N.push("disablepictureinpicture");if(B)N.push("disableremoteplayback");if(_)N.push(`crossorigin="${_}"`);if(z){if(N.push(`data-preload="${K}"`),N.push('preload="none"'),w)N.push(`data-poster="${j0(w)}"`);N.push("data-stx-lazy")}else if(N.push(`preload="${K}"`),w)N.push(`poster="${j0(w)}"`);let R=W||Z.metadata?.width,T=U||Z.metadata?.height;if(R)N.push(`width="${R}"`);if(T)N.push(`height="${T}"`);if(O)N.push(`class="${j0(O)}"`);if(F)N.push(`style="${j0(F)}"`);let M=` <source ${z?`data-src="${j0(H)}"`:`src="${j0(H)}"`} type="${V}" />`,E=`<video ${N.join(" ")}>
|
|
1159
1161
|
${M}
|
|
1160
1162
|
Your browser does not support the video tag.
|
|
1161
|
-
</video>`;if(Z.spriteSheet)E=`<div class="stx-video-wrapper" data-sprite-sheet="${
|
|
1163
|
+
</video>`;if(Z.spriteSheet)E=`<div class="stx-video-wrapper" data-sprite-sheet="${j0(Z.spriteSheet.url)}" data-sprite-cols="${Z.spriteSheet.columns}" data-sprite-interval="${Z.spriteSheet.interval}">
|
|
1162
1164
|
${E}
|
|
1163
1165
|
</div>`;let k;if(z)k=`
|
|
1164
1166
|
(function() {
|
|
@@ -1204,9 +1206,9 @@ ${E}
|
|
|
1204
1206
|
width: 100%;
|
|
1205
1207
|
height: auto;
|
|
1206
1208
|
}
|
|
1207
|
-
`.trim();return{html:E,script:k,css:y}}var
|
|
1209
|
+
`.trim();return{html:E,script:k,css:y}}var a3=!1,e3=!0,$6="metadata",EX="https://cdn.jsdelivr.net/npm/ts-video-player@latest/dist/index.min.js";var J6=C(()=>{S$()});function X6(){return E5({name:"video",hasEndTag:!1,description:"Render a video with optional ts-videos processing, streaming, and poster generation",transform:async($,Z,J,Y)=>{let{src:Q,options:X}=vX($,Z,J);if(!Q)return console.warn("@video directive: missing src argument"),"<!-- @video: missing src -->";let G={src:Q,poster:X.poster,controls:X.controls!==!1,autoplay:X.autoplay||!1,muted:X.muted||!1,loop:X.loop||!1,preload:X.preload||"metadata",playsinline:X.playsinline!==!1,lazy:X.lazy!==!1,player:X.player||"native",type:X.type,width:X.width,height:X.height,class:X.class,style:X.style,id:X.id,crossorigin:X.crossorigin,disablePictureInPicture:X.disablePictureInPicture,disableRemotePlayback:X.disableRemotePlayback,title:X.title,quality:X.quality,platform:X.platform,process:X.process,generatePoster:X.generatePoster,streaming:X.streaming,transcode:X.transcode,spriteSheet:X.spriteSheet,waveform:X.waveform},q={isDev:J.__isDev||!1,tsVideosConfig:J.__tsVideosConfig},z=await r5(G,q),W=z.html;if(z.css)W+=`
|
|
1208
1210
|
<style>${z.css}</style>`;if(z.script)W+=`
|
|
1209
|
-
<script>${z.script}</script>`;return W},defaults:{src:"",options:{controls:!0,lazy:!0,preload:"metadata"}}})}function
|
|
1211
|
+
<script>${z.script}</script>`;return W},defaults:{src:"",options:{controls:!0,lazy:!0,preload:"metadata"}}})}function vX($,Z,J){if(Z.src)return{src:String(Z.src),options:Z.options||{}};let Y=$.trim();if(Y.startsWith("@video(")||Y.startsWith("("))Y=Y.replace(/^@video\(/,"").replace(/^\(/,"").replace(/\)$/,"");let Q=xX(Y),X=Q6(Q[0],J)||"",G={};if(Q[1]){let K=Q6(Q[1],J);if(typeof K==="object"&&K!==null)G=K;else if(typeof Q[1]==="string")try{G=JSON.parse(Q[1])}catch{}}return{src:X,options:G}}function xX($){let Z=[],J="",Y=!1,Q="",X=0,G=0;for(let K=0;K<$.length;K++){let q=$[K],z=K>0?$[K-1]:"";if((q==='"'||q==="'"||q==="`")&&z!=="\\"){if(!Y)Y=!0,Q=q;else if(q===Q)Y=!1,Q="";else J+=q;continue}if(!Y){if(q==="{")X++;if(q==="}")X--;if(q==="[")G++;if(q==="]")G--;if(q===","&&X===0&&G===0){Z.push(J.trim()),J="";continue}}J+=q}if(J.trim())Z.push(J.trim());return Z}function Q6($,Z){if(typeof $!=="string")return $;let J=$.trim();if(J.startsWith('"')&&J.endsWith('"')||J.startsWith("'")&&J.endsWith("'"))return J.slice(1,-1);if(!J.startsWith("/")&&!J.startsWith(".")&&!J.startsWith("http")&&!J.startsWith("{")){let Y=Z[J];if(Y!==void 0)return Y}if(J.startsWith("{")||J.startsWith("["))try{return JSON.parse(J)}catch{}return J}var b$;var S$=C(()=>{Z$();J6();b$=X6()});function fX($,Z){let J=Z.pwa?.manifest?.themeColor||"#4f46e5";return`<div class="stx-pwa-install" style="display:none;">
|
|
1210
1212
|
${$}
|
|
1211
1213
|
</div>
|
|
1212
1214
|
<script>
|
|
@@ -1251,7 +1253,7 @@ ${E}
|
|
|
1251
1253
|
}
|
|
1252
1254
|
}
|
|
1253
1255
|
})();
|
|
1254
|
-
</script>`}function
|
|
1256
|
+
</script>`}function gX($,Z){let J=Z.pwa?.updates,Y=J?.message||"A new version is available. Reload to update?",Q=J?.autoReload||!1,X=$.trim().length>0,G=`
|
|
1255
1257
|
<div class="stx-pwa-update-banner" style="
|
|
1256
1258
|
position: fixed;
|
|
1257
1259
|
bottom: 0;
|
|
@@ -1362,7 +1364,7 @@ else {
|
|
|
1362
1364
|
// Also listen for custom event
|
|
1363
1365
|
window.addEventListener('pwa-update-available', showUpdate);
|
|
1364
1366
|
})();
|
|
1365
|
-
</script>`}function
|
|
1367
|
+
</script>`}function hX($,Z){let J=$.trim().length>0,Y=`
|
|
1366
1368
|
<div class="stx-offline-indicator" style="
|
|
1367
1369
|
position: fixed;
|
|
1368
1370
|
top: 16px;
|
|
@@ -1423,7 +1425,7 @@ else {
|
|
|
1423
1425
|
window.addEventListener('offline', updateStatus);
|
|
1424
1426
|
updateStatus();
|
|
1425
1427
|
})();
|
|
1426
|
-
</script>`}function
|
|
1428
|
+
</script>`}function dX($,Z){let J=Z.pwa?.push,Y=J?.vapidPublicKey||"",Q=J?.subscriptionEndpoint||"/api/push/subscribe";return`<div class="stx-pwa-push" style="display:none;">
|
|
1427
1429
|
${$}
|
|
1428
1430
|
</div>
|
|
1429
1431
|
<script>
|
|
@@ -1505,71 +1507,71 @@ catch (error) {
|
|
|
1505
1507
|
init();
|
|
1506
1508
|
}
|
|
1507
1509
|
})();
|
|
1508
|
-
</script>`}var
|
|
1509
|
-
${$.message}`),Z&&$.line){let X=
|
|
1510
|
+
</script>`}var mX,uX,pX,lX,G6;var K6=C(()=>{mX={name:"pwa.installButton",handler:($,Z,J,Y)=>{let Q=J.__stx_options||{};return fX($,Q)},hasEndTag:!0,description:"Renders a PWA install prompt button that appears when the app can be installed"},uX={name:"pwa.updatePrompt",handler:($,Z,J,Y)=>{let Q=J.__stx_options||{};return gX($,Q)},hasEndTag:!0,description:"Renders a PWA update notification UI when a new version is available"},pX={name:"pwa.offlineIndicator",handler:($,Z,J,Y)=>{let Q=J.__stx_options||{};return hX($,Q)},hasEndTag:!0,description:"Renders an offline status indicator that shows when the user loses connection"},lX={name:"pwa.pushSubscribe",handler:($,Z,J,Y)=>{let Q=J.__stx_options||{};return dX($,Q)},hasEndTag:!0,description:"Renders a push notification subscription button"},G6=[mX,uX,pX,lX]});function y$($){for(let[Z,J]of Object.entries(p))if(J===$)return Z;return}var p;var a5=C(()=>{p={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 cX(){return!1}function J5(){return!cX()||process.env.STX_DEBUG==="true"}import iX from"path";function t5(){return{...C$}}function e5($){if(!C$.showRelativePaths||!$)return $;let Z=C$.baseDir||process.cwd();try{let J=iX.relative(Z,$);return J.startsWith("..")?$:J}catch{return $}}var nX,C$,$9,H1,Z9;var Y9=C(()=>{a5();nX={showRelativePaths:!1,enableAutoRecovery:J5(),logRecoveryWarnings:!0},C$={...nX};$9=class $9 extends Error{code;filePath;line;column;context;numericCode;constructor($,Z,J,Y,Q,X,G){super($);this.code=Z;this.filePath=J;this.line=Y;this.column=Q;this.context=X;if(this.name="StxError",this.numericCode=G||p.EVALUATION_ERROR,this.filePath)this.filePath=e5(this.filePath)}};H1=class H1 extends $9{constructor($,Z,J,Y,Q,X){super($,"stx_RUNTIME_ERROR",Z,J,Y,Q,X||p.EVALUATION_ERROR);this.name="StxRuntimeError"}};Z9=class Z9 extends $9{isFatal=!0;constructor($,Z,J,Y,Q,X){super($,"stx_VALIDATION_ERROR",Z,J,Y,Q,X||p.DOM_API_VIOLATION);this.name="StxValidationError"}}});function W6($){let{type:Z,message:J,code:Y,filePath:Q,line:X,column:G,template:K,offset:q,snippet:z,suggestion:W,format:U="text"}=$,_=X,j=G;if(!_&&K&&q!==void 0){let H=eX(K,q);_=H.line,j=H.column}let B=Q?e5(Q):void 0,O=Y?y$(Y):void 0,F={type:Z,code:Y,codeName:O,message:J,filePath:B,line:_,column:j,snippet:z,suggestion:W,timestamp:new Date().toISOString()},L;switch(U){case"html":L=sX(F);break;case"json":L=JSON.stringify(F,null,2);break;case"console":L=rX(F,K,q);break;case"text":default:L=oX(F,K,q);break}return{formatted:L,data:F}}function oX($,Z,J){let Y=[],Q=$.code?` [${$.codeName||$.code}]`:"";if(Y.push(`[${$.type} Error${Q}]`),$.filePath){let X=$.filePath;if($.line){if(X+=`:${$.line}`,$.column)X+=`:${$.column}`}Y.push(`at ${X}`)}if(Y.push(`
|
|
1511
|
+
${$.message}`),Z&&$.line){let X=aX(Z,$.line,2);if(X)Y.push(`
|
|
1510
1512
|
${X}`)}if($.snippet)Y.push(`
|
|
1511
1513
|
Snippet: ${$.snippet}`);if($.suggestion)Y.push(`
|
|
1512
|
-
Suggestion: ${$.suggestion}`);return Y.join(" ")}function
|
|
1514
|
+
Suggestion: ${$.suggestion}`);return Y.join(" ")}function sX($){let Z=$.code?` [${$.code}]`:"",J=$.filePath?` in ${$.filePath}${$.line?`:${$.line}`:""}`:"",Y=`<!-- [${$.type} Error${Z}]${J}: ${q6($.message)}`;if($.suggestion)Y+=` | Suggestion: ${q6($.suggestion)}`;return Y+=" -->",Y}function rX($,Z,J){let z=[],W=$.code?` [${$.codeName||$.code}]`:"";if(z.push(`\x1B[1m${"\x1B[31m"}\u2501\u2501\u2501 ${$.type} Error${W} \u2501\u2501\u2501${"\x1B[0m"}`),$.filePath){let U=`\x1B[36m${$.filePath}\x1B[0m`;if($.line){if(U+=`\x1B[90m:${$.line}\x1B[0m`,$.column)U+=`\x1B[90m:${$.column}\x1B[0m`}z.push(`
|
|
1513
1515
|
\x1B[90mat\x1B[0m ${U}`)}if(z.push(`
|
|
1514
1516
|
|
|
1515
|
-
${$.message}`),Z&&$.line){let U=
|
|
1517
|
+
${$.message}`),Z&&$.line){let U=tX(Z,$.line,2);if(U)z.push(`
|
|
1516
1518
|
|
|
1517
1519
|
\x1B[90mContext:\x1B[0m
|
|
1518
1520
|
${U}`)}if($.suggestion)z.push(`
|
|
1519
1521
|
|
|
1520
1522
|
\x1B[33mSuggestion:\x1B[0m ${$.suggestion}`);return z.push(`
|
|
1521
|
-
${"\x1B[31m"}\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501${"\x1B[0m"}`),z.join("")}function
|
|
1523
|
+
${"\x1B[31m"}\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501${"\x1B[0m"}`),z.join("")}function aX($,Z,J){let Y=$.split(`
|
|
1522
1524
|
`),Q=Math.max(0,Z-J-1),X=Math.min(Y.length-1,Z+J-1),G=[];for(let K=Q;K<=X;K++){let q=(K+1).toString().padStart(4),z=K===Z-1?">":" ";G.push(`${z}${q} | ${Y[K]}`)}return G.join(`
|
|
1523
|
-
`)}function
|
|
1525
|
+
`)}function tX($,Z,J){let Y=$.split(`
|
|
1524
1526
|
`),Q=Math.max(0,Z-J-1),X=Math.min(Y.length-1,Z+J-1),G="\x1B[90m",K="\x1B[31m",q="\x1B[0m",z=[];for(let W=Q;W<=X;W++){let U=(W+1).toString().padStart(4),_=W===Z-1,j=_?"\x1B[31m>\x1B[0m":" ",B=_?`\x1B[31m${Y[W]}\x1B[0m`:`\x1B[90m${Y[W]}\x1B[0m`;z.push(`${j}\x1B[90m${U}\x1B[0m | ${B}`)}return z.join(`
|
|
1525
|
-
`)}function
|
|
1526
|
-
`);return{line:Y.length,column:Y[Y.length-1].length}}function s($,Z,J){return
|
|
1527
|
+
`)}function q6($){return $.replace(/--/g,"- -").replace(/>/g,">")}function eX($,Z){let Y=$.substring(0,Z).split(`
|
|
1528
|
+
`);return{line:Y.length,column:Y[Y.length-1].length}}function s($,Z,J){return W6({type:$,message:Z,code:J,format:"html"}).formatted}async function y1($,Z,J){try{return await $()}catch(Y){if(J&&Y instanceof Error)J(Y);return Z}}var z6=C(()=>{a5();Y9()});class v${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,J="error"){let Y={timestamp:new Date,error:$,context:Z,level:J};if(this.errors.push(Y),this.errors.length>this.maxErrors)this.errors=this.errors.slice(-this.maxErrors);if(this.enableFileLogging&&this.shouldLog(J))this.writeToFile(Y)}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(`
|
|
1527
1529
|
`).slice(1).join(`
|
|
1528
1530
|
`)}`);if($.context)Z.push(` Context: ${JSON.stringify($.context)}`);return Z.join(`
|
|
1529
1531
|
`)}writeToFile($){this.writeQueue=this.writeQueue.then(async()=>{try{let Z=await import("fs"),Y=(await import("path")).dirname(this.logFilePath);if(!Z.existsSync(Y))Z.mkdirSync(Y,{recursive:!0});await this.rotateIfNeeded(Z);let Q=`${this.formatEntry($)}
|
|
1530
1532
|
`;Z.appendFileSync(this.logFilePath,Q,"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 J=this.maxLogFiles-1;J>=1;J--){let Y=`${this.logFilePath}.${J}`,Q=`${this.logFilePath}.${J+1}`;if($.existsSync(Y))if(J>=this.maxLogFiles-1)$.unlinkSync(Y);else $.renameSync(Y,Q)}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 J of this.errors){let Y=J.error.constructor.name;$[Y]=($[Y]||0)+1;let Q=J.level||"error";Z[Q]=(Z[Q]||0)+1}return{total:this.errors.length,byType:$,byLevel:Z}}async exportToFile($,Z="json"){let J=await import("fs"),Q=(await import("path")).dirname($);if(!J.existsSync(Q))J.mkdirSync(Q,{recursive:!0});if(Z==="json"){let X=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}));J.writeFileSync($,JSON.stringify(X,null,2),"utf-8")}else{let X=this.errors.map((G)=>this.formatEntry(G));J.writeFileSync($,X.join(`
|
|
1531
1533
|
|
|
1532
|
-
`),"utf-8")}}async flush(){await this.writeQueue}}var
|
|
1533
|
-
@end${K}`;Y.push(`Added ${W} missing @end${K}`)}}if(Y.length>0&&Z.logRecoveryWarnings)console.warn("[stx] Auto-recovery applied fixes:"),Y.forEach((K)=>console.warn(` - ${K}`)),console.warn(" Consider fixing these issues in your template.");return{fixed:J,fixes:Y}},createFallbackContent($,Z){if(
|
|
1534
|
-
`)}}});var
|
|
1535
|
-
`,V+=`<meta name="title" content="${
|
|
1536
|
-
`;if(H.description)V+=`<meta name="description" content="${
|
|
1537
|
-
`;if(H.keywords){let A=Array.isArray(H.keywords)?H.keywords.join(", "):H.keywords;V+=`<meta name="keywords" content="${
|
|
1538
|
-
`}if(H.robots)V+=`<meta name="robots" content="${
|
|
1539
|
-
`;if(H.canonical)V+=`<link rel="canonical" href="${
|
|
1540
|
-
`;if(H.openGraph){let A=H.openGraph;if(V+=`<meta property="og:type" content="${
|
|
1541
|
-
`,A.title||H.title){let w=A.title||H.title||"";V+=`<meta property="og:title" content="${
|
|
1542
|
-
`}if(A.description||H.description){let w=A.description||H.description||"";V+=`<meta property="og:description" content="${
|
|
1543
|
-
`}if(A.url||H.canonical){let w=A.url||H.canonical||"";V+=`<meta property="og:url" content="${
|
|
1544
|
-
`}if(A.image){if(V+=`<meta property="og:image" content="${
|
|
1545
|
-
`,A.imageAlt)V+=`<meta property="og:image:alt" content="${
|
|
1546
|
-
`;if(A.imageWidth)V+=`<meta property="og:image:width" content="${
|
|
1547
|
-
`;if(A.imageHeight)V+=`<meta property="og:image:height" content="${
|
|
1548
|
-
`}if(A.siteName)V+=`<meta property="og:site_name" content="${
|
|
1549
|
-
`}if(H.twitter){let A=H.twitter;if(V+=`<meta name="twitter:card" content="${
|
|
1550
|
-
`,A.title||H.title){let w=A.title||H.title||"";V+=`<meta name="twitter:title" content="${
|
|
1551
|
-
`}if(A.description||H.description){let w=A.description||H.description||"";V+=`<meta name="twitter:description" content="${
|
|
1552
|
-
`}if(A.image||H.openGraph&&H.openGraph.image){let w=A.image||(H.openGraph?H.openGraph.image:"")||"";V+=`<meta name="twitter:image" content="${
|
|
1553
|
-
`}if(A.site)V+=`<meta name="twitter:site" content="${
|
|
1554
|
-
`;if(A.creator)V+=`<meta name="twitter:creator" content="${
|
|
1534
|
+
`),"utf-8")}}async flush(){await this.writeQueue}}var P$,v0,x$;var U6=C(()=>{Y9();P$={isEnabled(){return t5().enableAutoRecovery},fixCommonSyntaxErrors($){let Z=t5();if(!Z.enableAutoRecovery)return{fixed:$,fixes:[]};let J=$,Y=[],Q=(J.match(/\{\{/g)||[]).length,X=(J.match(/\}\}/g)||[]).length;if(Q>X){let K=Q-X;J+="}}".repeat(K),Y.push(`Added ${K} missing closing braces '}}'`)}let G=["if","foreach","for","switch","section"];for(let K of G){let q=(J.match(new RegExp(`@${K}\\b`,"g"))||[]).length,z=(J.match(new RegExp(`@end${K}\\b`,"g"))||[]).length;if(q>z){let W=q-z;for(let U=0;U<W;U++)J+=`
|
|
1535
|
+
@end${K}`;Y.push(`Added ${W} missing @end${K}`)}}if(Y.length>0&&Z.logRecoveryWarnings)console.warn("[stx] Auto-recovery applied fixes:"),Y.forEach((K)=>console.warn(` - ${K}`)),console.warn(" Consider fixing these issues in your template.");return{fixed:J,fixes:Y}},createFallbackContent($,Z){if(J5())return`<!-- ${$} failed: ${Z.message} -->`;return"<!-- stx rendering error -->"}};v0=new v$,x$={isDevelopment(){return J5()},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 J=["=== stx Error Report ===",`Time: ${new Date().toISOString()}`,`Error: ${$.message}`,`Type: ${$.constructor.name}`,`Stack: ${$.stack}`];if(Z)J.push(`Context: ${JSON.stringify(Z,null,2)}`);return J.push("========================"),J.join(`
|
|
1536
|
+
`)}}});var _6=()=>{};var B6=C(()=>{a5();z6();U6();_6();Y9()});var n0=C(()=>{B6()});function j6($,Z,J,Y){let Q=$;Q=Q.replace(/@meta\(\s*['"]([^'"]+)['"](?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(K,q,z)=>{if(!z&&q.includes(":")){let W=q.split(":"),U=q,_=W.length>1?W[1]:"";if(_&&Z[_])z=Z[_];else if(U.startsWith("og:")&&Z.openGraph&&Z.openGraph[W[1]])z=Z.openGraph[W[1]];else z="";return z?`<meta property="${d(U)}" content="${d(z)}">`:""}return z?`<meta name="${d(q)}" content="${d(z)}">`:""});let X=/@metaTag\s*\(/g,G;while((G=X.exec(Q))!==null){let K=G.index,q=K+G[0].length-1,z=1,W=q+1;while(W<Q.length&&z>0){if(Q[W]==="(")z++;else if(Q[W]===")"){if(z--,z===0)break}W++}if(z!==0)break;let U=Q.substring(q+1,W).trim(),_=W+1,j=(()=>{try{let B=F0(U,Z);if(!B)return"";let O="<meta";if(B.name)O+=` name="${d(String(B.name))}"`;if(B.property)O+=` property="${d(String(B.property))}"`;if(B.httpEquiv)O+=` http-equiv="${d(String(B.httpEquiv))}"`;if(B.content)O+=` content="${d(String(B.content))}"`;return O+=">",O}catch(B){let O=B instanceof Error?B.message:String(B);return s("MetaTag",O,p.EVALUATION_ERROR)}})();Q=Q.substring(0,K)+j+Q.substring(_),X.lastIndex=0}return Q}function O6($,Z,J){let Y=$,Q=/@structuredData\s*\(/g,X;while((X=Q.exec(Y))!==null){let G=X.index,K=G+X[0].length-1,q=1,z=K+1;while(z<Y.length&&q>0){if(Y[z]==="(")q++;else if(Y[z]===")"){if(q--,q===0)break}z++}if(q!==0)break;let W=Y.substring(K+1,z).trim(),U=z+1,_=(()=>{try{let j=F0(W,Z);if(!j)return"";if(!j["@context"])j["@context"]="https://schema.org";return`<script type="application/ld+json">${JSON.stringify(j).replace(/<\//g,"<\\/")}</script>`}catch(j){let B=j instanceof Error?j.message:String(j);return s("StructuredData",B,p.EVALUATION_ERROR)}})();Y=Y.substring(0,G)+_+Y.substring(U),Q.lastIndex=0}return Y}function H6($,Z,J,Y){let Q=$,X=/@seo\s*\(\s*\{/g,G;while((G=X.exec(Q))!==null){let K=Q.indexOf("{",G.index+4),q=1,z=K+1,W=null,U=!1;while(z<Q.length&&q>0){let L=Q[z];if(U){U=!1,z++;continue}if(L==="\\"&&W){U=!0,z++;continue}if(W){if(L===W)W=null;z++;continue}if(L==='"'||L==="'"||L==="`"){W=L,z++;continue}if(L==="{")q++;else if(L==="}")q--;z++}if(q!==0)break;let _=Q.substring(z).match(/^\s*\)/);if(!_)break;let j=z+_[0].length,B=Q.substring(K,z),O=Q.substring(G.index,j),F=((L)=>{try{let H=F0(L,Z);if(!H)return"";let V="";if(H.title)V+=`<title>${d(H.title)}</title>
|
|
1537
|
+
`,V+=`<meta name="title" content="${d(H.title)}">
|
|
1538
|
+
`;if(H.description)V+=`<meta name="description" content="${d(H.description)}">
|
|
1539
|
+
`;if(H.keywords){let A=Array.isArray(H.keywords)?H.keywords.join(", "):H.keywords;V+=`<meta name="keywords" content="${d(A)}">
|
|
1540
|
+
`}if(H.robots)V+=`<meta name="robots" content="${d(H.robots)}">
|
|
1541
|
+
`;if(H.canonical)V+=`<link rel="canonical" href="${d(H.canonical)}">
|
|
1542
|
+
`;if(H.openGraph){let A=H.openGraph;if(V+=`<meta property="og:type" content="${d(A.type||"website")}">
|
|
1543
|
+
`,A.title||H.title){let w=A.title||H.title||"";V+=`<meta property="og:title" content="${d(w)}">
|
|
1544
|
+
`}if(A.description||H.description){let w=A.description||H.description||"";V+=`<meta property="og:description" content="${d(w)}">
|
|
1545
|
+
`}if(A.url||H.canonical){let w=A.url||H.canonical||"";V+=`<meta property="og:url" content="${d(w)}">
|
|
1546
|
+
`}if(A.image){if(V+=`<meta property="og:image" content="${d(A.image)}">
|
|
1547
|
+
`,A.imageAlt)V+=`<meta property="og:image:alt" content="${d(A.imageAlt)}">
|
|
1548
|
+
`;if(A.imageWidth)V+=`<meta property="og:image:width" content="${d(String(A.imageWidth))}">
|
|
1549
|
+
`;if(A.imageHeight)V+=`<meta property="og:image:height" content="${d(String(A.imageHeight))}">
|
|
1550
|
+
`}if(A.siteName)V+=`<meta property="og:site_name" content="${d(A.siteName)}">
|
|
1551
|
+
`}if(H.twitter){let A=H.twitter;if(V+=`<meta name="twitter:card" content="${d(A.card||"summary_large_image")}">
|
|
1552
|
+
`,A.title||H.title){let w=A.title||H.title||"";V+=`<meta name="twitter:title" content="${d(w)}">
|
|
1553
|
+
`}if(A.description||H.description){let w=A.description||H.description||"";V+=`<meta name="twitter:description" content="${d(w)}">
|
|
1554
|
+
`}if(A.image||H.openGraph&&H.openGraph.image){let w=A.image||(H.openGraph?H.openGraph.image:"")||"";V+=`<meta name="twitter:image" content="${d(w)}">
|
|
1555
|
+
`}if(A.site)V+=`<meta name="twitter:site" content="${d(A.site)}">
|
|
1556
|
+
`;if(A.creator)V+=`<meta name="twitter:creator" content="${d(A.creator)}">
|
|
1555
1557
|
`}if(H.structuredData){let A=JSON.stringify(H.structuredData).replace(/<\//g,"<\\/");V+=`<script type="application/ld+json">${A}</script>
|
|
1556
|
-
`}return V.trim()}catch(H){let V=H instanceof Error?H.message:String(H);return s("SEO",`Error processing @seo directive: ${V}`,p.EVALUATION_ERROR)}})(B);Q=Q.substring(0,G.index)+F+Q.substring(j),X.lastIndex=G.index+F.length}return Q}function
|
|
1558
|
+
`}return V.trim()}catch(H){let V=H instanceof Error?H.message:String(H);return s("SEO",`Error processing @seo directive: ${V}`,p.EVALUATION_ERROR)}})(B);Q=Q.substring(0,G.index)+F+Q.substring(j),X.lastIndex=G.index+F.length}return Q}function L6($,Z,J){if(J.seo?.enabled===!1)return $;if($.includes("<!-- stx SEO Tags -->")||J.skipDefaultSeoTags===!0)return $;let Y=Z.__stx_runtime_head;if(!!(Y?.title||Y?.meta?.some((U)=>U.property==="og:title"||U.name==="og:title"||U.name==="twitter:title"||U.name==="description")))return $;if(/<meta\s+(?:[^>]*\s)?property=["']og:title["']/i.test($)||/<meta\s+(?:[^>]*\s)?name=["']og:title["']/i.test($)||/<meta\s+(?:[^>]*\s)?name=["']twitter:title["']/i.test($))return $;if(!$.includes("<head>")&&!$.includes("<head "))return $;let X=$.includes("<title>")||$.includes("</title>"),G="";if(Z.title)G=Z.title;else if(Z.meta&&Z.meta.title)G=Z.meta.title;else if(J.seo?.defaultConfig?.title)G=J.seo.defaultConfig.title;else G=J.defaultTitle||"stx Project";let K="";if(Z.description)K=Z.description;else if(Z.meta&&Z.meta.description)K=Z.meta.description;else if(J.seo?.defaultConfig?.description)K=J.seo.defaultConfig.description;else K=J.defaultDescription||"A website built with stx templating engine";let q="";if(Z.image)q=Z.image;else if(Z.meta&&Z.meta.image)q=Z.meta.image;else if(Z.openGraph&&Z.openGraph.image)q=Z.openGraph.image;else if(J.seo?.defaultImage)q=J.seo.defaultImage;else if(J.defaultImage)q=J.defaultImage;let z=`
|
|
1557
1559
|
<!-- stx SEO Tags -->
|
|
1558
|
-
<meta name="title" content="${
|
|
1559
|
-
<meta name="description" content="${
|
|
1560
|
-
<meta property="og:title" content="${
|
|
1561
|
-
<meta property="og:description" content="${
|
|
1560
|
+
<meta name="title" content="${d(G)}">
|
|
1561
|
+
<meta name="description" content="${d(K)}">
|
|
1562
|
+
<meta property="og:title" content="${d(G)}">
|
|
1563
|
+
<meta property="og:description" content="${d(K)}">
|
|
1562
1564
|
<meta property="og:type" content="website">
|
|
1563
1565
|
<meta name="twitter:card" content="summary_large_image">
|
|
1564
|
-
<meta name="twitter:title" content="${
|
|
1565
|
-
<meta name="twitter:description" content="${
|
|
1566
|
+
<meta name="twitter:title" content="${d(G)}">
|
|
1567
|
+
<meta name="twitter:description" content="${d(K)}">
|
|
1566
1568
|
`;if(q)z+=`
|
|
1567
|
-
<meta property="og:image" content="${
|
|
1568
|
-
<meta name="twitter:image" content="${
|
|
1569
|
+
<meta property="og:image" content="${d(q)}">
|
|
1570
|
+
<meta name="twitter:image" content="${d(q)}">
|
|
1569
1571
|
`;let W=$;if(!X)W=W.replace(/<head[^>]*>/,`$&
|
|
1570
|
-
<title>${
|
|
1572
|
+
<title>${d(G)}</title>`);return W.replace(/<head[^>]*>/,`$&
|
|
1571
1573
|
${z}
|
|
1572
|
-
`)}function
|
|
1574
|
+
`)}function d($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}var F6,V6;var f$=C(()=>{n0();R0();F6={name:"meta",handler:($,Z,J,Y)=>{if(Z.length<1)return s("Meta","meta directive requires at least the meta name",p.INVALID_DIRECTIVE_SYNTAX);let Q=Z[0].replace(/['"]/g,""),X=Z.length>1?Z[1].replace(/['"]/g,""):"";return`<meta name="${d(Q)}" content="${d(X)}">`},hasEndTag:!1},V6={name:"structuredData",handler:($,Z,J,Y)=>{if($.trim()==="")return s("StructuredData","structuredData directive requires JSON-LD content",p.INVALID_DIRECTIVE_SYNTAX);try{let Q=JSON.parse($);if(!Q["@context"])Q["@context"]="https://schema.org";if(!Q["@type"])return s("StructuredData","structuredData requires @type property",p.INVALID_DIRECTIVE_SYNTAX);return`<script type="application/ld+json">${JSON.stringify(Q)}</script>`}catch(Q){let X=Q instanceof Error?Q.message:String(Q);return s("StructuredData",X,p.EVALUATION_ERROR)}},hasEndTag:!0}});import X5 from"path";function $Q($,Z){let J=$.match(/<script\b[^>]*>([\s\S]*?)<\/script>/i),Y=J?J[1].trim():"",Q=Z,X=[],G=!0;if(Y){let U=Y.match(/export\s+default\s+({[\s\S]*})/);if(U)try{let _=U[1],j=_.match(/tag\s*:\s*['"`]([^'"`]+)['"`]/);if(j)Q=j[1];let B=_.match(/props\s*:\s*\[([\s\S]*?)\]/);if(B)X=B[1].split(",").map((F)=>F.trim().replace(/['"`]/g,"")).filter((F)=>F.length>0);let O=_.match(/shadowDOM\s*:\s*(true|false)/);if(O)G=O[1]==="true"}catch{}}let K=$.match(/<template\b(?![^>]*\bid\s*=)[^>]*>([\s\S]*?)<\/template>/i),q=K?K[1].trim():"",z=$.match(/<style\b[^>]*>([\s\S]*?)<\/style>/i),W=z?z[1].trim():"";return{tag:Q,props:X,template:q,styles:W,script:Y,shadowDOM:G}}function ZQ($){let{tag:Z,props:J,template:Y,styles:Q,shadowDOM:X}=$,G=Z.split("-").map((U)=>U.charAt(0).toUpperCase()+U.slice(1)).join(""),K=Y.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/g,"\\${"),q=Q.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),z=J.map((U)=>`'${U}'`).join(", "),W=J.map((U)=>`
|
|
1573
1575
|
get ${U}() {
|
|
1574
1576
|
return this.getAttribute('${U}') || '';
|
|
1575
1577
|
}
|
|
@@ -1620,16 +1622,16 @@ ${W}
|
|
|
1620
1622
|
}
|
|
1621
1623
|
|
|
1622
1624
|
customElements.define('${Z}', ${G});
|
|
1623
|
-
`}async function
|
|
1624
|
-
${
|
|
1625
|
-
</script>`}var V6=C(()=>{c0();F0()});var w6={};r(w6,{timingPlugin:()=>XQ,pluginManager:()=>$Q,definePlugin:()=>$9,debugPlugin:()=>JQ,createVariablesPlugin:()=>QQ,createFilterPlugin:()=>YQ,createDirectivePlugin:()=>ZQ,PluginManager:()=>v$});function $9($){return $}class v${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 J of $.dependencies)if(!this.plugins.has(J))throw Error(`Plugin "${$.name}" depends on "${J}" 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[J,Y]of this.plugins)if(Y.dependencies?.includes($))throw Error(`Cannot unregister "${$}" because "${J}" 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 J=await Z.onError($);if(J){if(J.template!==void 0)$.template=J.template;if(J.context)$.context={...$.context,...J.context};if(J.metadata)$.metadata={...$.metadata,...J.metadata};if(J.skip)return $}}catch(J){console.error(`Error in plugin "${Z.name}" onError hook:`,J)}return null}sortPlugins(){this.sortedPlugins=Array.from(this.plugins.values()).sort(($,Z)=>($.priority??100)-(Z.priority??100))}async runHooks($,Z){let J={...Z};for(let Y of this.sortedPlugins){let Q=Y[$];if(Q)try{let X=await Q(J);if(X){if(X.template!==void 0)J.template=X.template;if(X.context)J.context={...J.context,...X.context};if(X.metadata)J.metadata={...J.metadata,...X.metadata};if(X.skip)break}}catch(X){console.error(`Error in plugin "${Y.name}" ${$} hook:`,X)}}return J}async runDirectiveHooks($,Z,J){let Y={...J};for(let Q of this.sortedPlugins){let X=Q[$];if(X)try{let G=await X(Z,Y);if(G){if(G.template!==void 0)Y.template=G.template;if(G.context)Y.context={...Y.context,...G.context};if(G.metadata)Y.metadata={...Y.metadata,...G.metadata};if(G.skip)break}}catch(G){console.error(`Error in plugin "${Q.name}" ${$} hook:`,G)}}return Y}}function ZQ($,Z,J={}){return{name:$,...J,registerDirectives:()=>Z}}function YQ($,Z,J={}){return{name:$,...J,registerFilters:()=>Z}}function QQ($){return $9({name:"stx-variables",version:"1.0.0",description:"Adds predefined variables to template context",beforeProcess(Z){return{context:{...Z.context,...$}}}})}var $Q,JQ,XQ;var A6=C(()=>{$Q=new v$;JQ=$9({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)}}),XQ=$9({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 J=performance.now()-Z;console.log(`[stx-timing] Processing took ${J.toFixed(2)}ms`)}}})});var R6={};r(R6,{validateConfig:()=>WQ,loadStxConfig:()=>O1,defineStxConfig:()=>qQ,defaultConfig:()=>f$,config:()=>g$});import x$ from"fs";import R0 from"path";import{loadConfigWithResult as GQ}from"bunfig";function KQ($,Z){let J=Z||"pages";if($)return{root:$,pagesDir:J};let Y=R0.join(process.cwd(),"resources","views"),Q=R0.join(process.cwd(),"resources","layouts");if(x$.existsSync(Y)&&x$.existsSync(Q))return{root:"resources",pagesDir:"views"};let X=R0.join(process.cwd(),"resources","views","pages");if(x$.existsSync(X))return{root:"resources/views",pagesDir:J};return{root:".",pagesDir:J}}async function O1($){if(!$){if(S1)return S1;if(Z9)return Z9}let Z=$?R0.resolve($):process.cwd(),J=N6.get(Z);if(J)return J;let Y=(async()=>{let X=(await GQ({name:"stx",alias:"ui",cwd:Z,defaultConfig:f$,verbose:!1})).config,G=KQ(X.root,X.pagesDir);if(X.root=G.root,X.pagesDir=G.pagesDir,X.root&&X.root!=="."){let K=X.root;if(X.partialsDir&&!R0.isAbsolute(X.partialsDir))X.partialsDir=R0.join(K,X.partialsDir);if(X.componentsDir&&!R0.isAbsolute(X.componentsDir))X.componentsDir=R0.join(K,X.componentsDir);if(X.layoutsDir&&!R0.isAbsolute(X.layoutsDir))X.layoutsDir=R0.join(K,X.layoutsDir)}if(X.plugins&&X.plugins.length>0){let{pluginManager:K}=await Promise.resolve().then(() => (A6(),w6)),q=[],z=[];for(let W of X.plugins){let U=typeof W==="string"?W:W[0],_=typeof W==="string"?{}:W[1]||{};try{let j,B;try{j=await import(U),B=R0.dirname(J0.resolve(U))}catch{let F=R0.resolve(process.cwd(),U);j=await import(F),B=R0.dirname(F)}let O=j.default||j;if(K.register(O,X),O.components){let F=R0.resolve(B,O.components);q.push(F)}if(O.pages){let F=R0.resolve(B,O.pages),L=_.path||"/";z.push({dir:F,prefix:L})}if(O.setup){let F={addDirective:(L)=>{X.customDirectives=X.customDirectives||[],X.customDirectives.push(L)},addRoute:(L,H)=>{X.apiRoutes=X.apiRoutes||{},X.apiRoutes[L]=H},addMiddleware:(L)=>{X.middleware=X.middleware||[],X.middleware.push(L)},pluginDir:B,config:X};await O.setup(_,F)}console.log(`[stx] Plugin loaded: ${O.name||U}`)}catch(j){console.warn(`[stx] Failed to load plugin ${U}:`,j.message)}}X._pluginComponentDirs=q,X._pluginPageDirs=z}return X})();if(N6.set(Z,Y),!$)Z9=Y,Y.then((Q)=>{S1=Q}).catch(()=>{});return Y}function qQ($){return $}function WQ($){let Z=[],J=[];if($.partialsDir!==void 0&&typeof $.partialsDir!=="string")Z.push({path:"partialsDir",message:"partialsDir must be a string",severity:"error"});if($.componentsDir!==void 0&&typeof $.componentsDir!=="string")Z.push({path:"componentsDir",message:"componentsDir must be a string",severity:"error"});if($.cache!==void 0&&typeof $.cache!=="boolean")Z.push({path:"cache",message:"cache must be a boolean",severity:"error"});if($.debug!==void 0&&typeof $.debug!=="boolean")Z.push({path:"debug",message:"debug must be a boolean",severity:"error"});if($.streaming){if($.streaming.bufferSize!==void 0){if(typeof $.streaming.bufferSize!=="number"||$.streaming.bufferSize<=0)Z.push({path:"streaming.bufferSize",message:"streaming.bufferSize must be a positive number",severity:"error"})}if($.streaming.timeout!==void 0){if(typeof $.streaming.timeout!=="number"||$.streaming.timeout<=0)Z.push({path:"streaming.timeout",message:"streaming.timeout must be a positive number",severity:"error"})}if($.streaming.strategy!==void 0){let Y=["auto","manual","sections"];if(!Y.includes($.streaming.strategy))Z.push({path:"streaming.strategy",message:`streaming.strategy must be one of: ${Y.join(", ")}`,severity:"error"})}}if($.i18n){if($.i18n.format!==void 0){let Y=["json","yaml","yml","js"];if(!Y.includes($.i18n.format))Z.push({path:"i18n.format",message:`i18n.format must be one of: ${Y.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 Y=["AA","AAA"];if(!Y.includes($.a11y.level))Z.push({path:"a11y.level",message:`a11y.level must be one of: ${Y.join(", ")}`,severity:"error"})}}if($.hydration){if($.hydration.mode!==void 0){let Y=["progressive","islands"];if(!Y.includes($.hydration.mode))Z.push({path:"hydration.mode",message:`hydration.mode must be one of: ${Y.join(", ")}`,severity:"error"})}if($.hydration.preload!==void 0){let Y=["none","eager","lazy"];if(!Y.includes($.hydration.preload))Z.push({path:"hydration.preload",message:`hydration.preload must be one of: ${Y.join(", ")}`,severity:"error"})}}if($.customDirectives)if(!Array.isArray($.customDirectives))Z.push({path:"customDirectives",message:"customDirectives must be an array",severity:"error"});else $.customDirectives.forEach((Y,Q)=>{if(!Y.name||typeof Y.name!=="string")Z.push({path:`customDirectives[${Q}].name`,message:"Custom directive must have a name string",severity:"error"});if(!Y.handler||typeof Y.handler!=="function")Z.push({path:`customDirectives[${Q}].handler`,message:"Custom directive must have a handler function",severity:"error"})});if($.middleware)if(!Array.isArray($.middleware))Z.push({path:"middleware",message:"middleware must be an array",severity:"error"});else $.middleware.forEach((Y,Q)=>{if(!Y.name||typeof Y.name!=="string")Z.push({path:`middleware[${Q}].name`,message:"Middleware must have a name string",severity:"error"});if(!Y.handler||typeof Y.handler!=="function")Z.push({path:`middleware[${Q}].handler`,message:"Middleware must have a handler function",severity:"error"});if(!Y.timing||!["before","after"].includes(Y.timing))Z.push({path:`middleware[${Q}].timing`,message:'Middleware timing must be "before" or "after"',severity:"error"})});if($.debug===!0&&$.cache===!0)J.push({path:"debug+cache",message:"Debug mode with caching enabled may show stale content during development",severity:"warning"});if($.seo?.enabled===!0&&!$.seo?.defaultConfig?.title)J.push({path:"seo.defaultConfig.title",message:"SEO is enabled but no default title is set",severity:"warning"});if($.pwa){if($.pwa.enabled===!0&&!$.pwa.manifest?.name)Z.push({path:"pwa.manifest.name",message:"PWA manifest name is required when PWA is enabled",severity:"error"});if($.pwa.manifest?.display!==void 0){let Y=["fullscreen","standalone","minimal-ui","browser"];if(!Y.includes($.pwa.manifest.display))Z.push({path:"pwa.manifest.display",message:`PWA display must be one of: ${Y.join(", ")}`,severity:"error"})}if($.pwa.manifest?.orientation!==void 0){let Y=["portrait","landscape","any","portrait-primary","portrait-secondary","landscape-primary","landscape-secondary"];if(!Y.includes($.pwa.manifest.orientation))Z.push({path:"pwa.manifest.orientation",message:`PWA orientation must be one of: ${Y.join(", ")}`,severity:"error"})}if($.pwa.routes){let Y=["cache-first","network-first","stale-while-revalidate","network-only","cache-only"];$.pwa.routes.forEach((Q,X)=>{if(!Q.pattern||typeof Q.pattern!=="string")Z.push({path:`pwa.routes[${X}].pattern`,message:"PWA route must have a pattern string",severity:"error"});if(!Y.includes(Q.strategy))Z.push({path:`pwa.routes[${X}].strategy`,message:`PWA route strategy must be one of: ${Y.join(", ")}`,severity:"error"});if(Q.maxAgeSeconds!==void 0&&(typeof Q.maxAgeSeconds!=="number"||Q.maxAgeSeconds<0))Z.push({path:`pwa.routes[${X}].maxAgeSeconds`,message:"PWA route maxAgeSeconds must be a non-negative number",severity:"error"});if(Q.maxEntries!==void 0&&(typeof Q.maxEntries!=="number"||Q.maxEntries<1))Z.push({path:`pwa.routes[${X}].maxEntries`,message:"PWA route maxEntries must be a positive number",severity:"error"})})}if($.pwa.icons?.sizes){if(!Array.isArray($.pwa.icons.sizes))Z.push({path:"pwa.icons.sizes",message:"PWA icon sizes must be an array of numbers",severity:"error"});else if($.pwa.icons.sizes.filter((Q)=>typeof Q!=="number"||Q<16||Q>1024).length>0)Z.push({path:"pwa.icons.sizes",message:"PWA icon sizes must be numbers between 16 and 1024",severity:"error"})}if($.pwa.icons?.purpose){let Y=["any","maskable","monochrome"];if($.pwa.icons.purpose.filter((X)=>!Y.includes(X)).length>0)Z.push({path:"pwa.icons.purpose",message:`PWA icon purpose must be one of: ${Y.join(", ")}`,severity:"error"})}if($.pwa.enabled===!0&&!$.pwa.icons?.src)J.push({path:"pwa.icons.src",message:"PWA is enabled but no icon source specified. Provide a 512x512 PNG for best results.",severity:"warning"});if($.pwa.enabled===!0&&!$.pwa.manifest?.themeColor)J.push({path:"pwa.manifest.themeColor",message:"PWA theme color not set, defaulting to black",severity:"warning"})}return{valid:Z.length===0,errors:Z,warnings:J}}var f$,S1=null,N6,Z9=null,g$;var J5=C(()=>{C9();P9();v9();x9();a9();C3();E$();Q6();P$();V6();f$={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:Q3,hasEndTag:!0,description:"Render markdown content to HTML"},{name:"webcomponent",handler:F6,hasEndTag:!1,description:"Include a web component in the template"},G7,K7,H6,L6,q7,z7,U7,W7,O7,F7,y3,D$,...X6],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}};N6=new Map;g$=new Proxy(f$,{get($,Z){if(S1&&Z in S1)return S1[Z];if(!Z9)O1().catch((J)=>{console.warn("[stx] Failed to load config file:",J?.message||J)});return $[Z]}})});var k6={};r(k6,{resetCssCache:()=>UQ,resetCrosswindCache:()=>_Q,rebuildCrosswindCSS:()=>BQ,loadCrosswindConfig:()=>m$,loadCrosswind:()=>d$,injectCrosswindCSS:()=>Q5,getCachedCSS:()=>jQ,generateCrosswindCSS:()=>E6,extractClassNames:()=>D6,buildCrosswindCSS:()=>I6});import T6 from"fs";import G0 from"path";async function M6($){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 zQ(){let $=[],Z=process.env.HOME||process.env.USERPROFILE||"",J=process.cwd();while(J!==G0.dirname(J))$.push(G0.join(J,"node_modules","@cwcss","crosswind","dist","index.js")),$.push(G0.join(J,"node_modules","@cwcss","crosswind","src","index.ts")),$.push(G0.join(J,"node_modules","@stacksjs","crosswind","dist","index.js")),J=G0.dirname(J);if(Z){let Y=[G0.join(Z,"Code","Tools","crosswind","packages","crosswind","dist","index.js"),G0.join(Z,"Code","Tools","crosswind","packages","crosswind","src","index.ts"),G0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","dist","index.js"),G0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","src","index.ts"),G0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@cwcss","crosswind","dist","index.js"),G0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@stacksjs","crosswind","dist","index.js")];$.push(...Y)}return $.push(G0.join(process.cwd(),"..","crosswind","packages","crosswind","dist","index.js")),$.push(G0.join(process.cwd(),"..","crosswind","packages","crosswind","src","index.ts")),$}async function d$(){if(h$)return C1;h$=!0;try{let $=["@cwcss/crosswind","@cwcss/crosswind/dist/index.js","@stacksjs/crosswind","@stacksjs/crosswind/dist/index.js"];for(let J of $){let Y=await M6(J);if(Y)return C1=Y,console.log(`${q0.green}[Crosswind]${q0.reset} CSS engine loaded`),C1}let Z=zQ();for(let J of Z)if(await Bun.file(J).exists()){let Y=await M6(J);if(Y)return C1=Y,console.log(`${q0.green}[Crosswind]${q0.reset} CSS engine loaded from ${G0.dirname(G0.dirname(J))}`),C1}throw Error("Crosswind CSSGenerator not found in any location")}catch{return console.warn(`${q0.yellow}[Crosswind] CSS engine not available, Tailwind styles will not be generated${q0.reset}`),console.warn(`${q0.yellow}Run 'bun add @stacksjs/crosswind' to enable CSS generation${q0.reset}`),null}}function UQ(){Y9.clear()}function _Q(){C1=null,h$=!1,g0=null,X5="",Y9.clear()}async function m$($){try{let{loadConfigWithResult:Z}=await import("bunfig"),J=await Z({name:"crosswind",cwd:$,defaultConfig:{},checkEnv:!1,verbose:!1});if(!J?.path||!J.config||Object.keys(J.config).length===0)return null;let Y=G0.relative($,J.path);return console.log(`${q0.green}[Crosswind]${q0.reset} Loaded config from ${Y||J.path}`),J.config}catch(Z){if(Z instanceof Error&&Z.name==="ConfigNotFoundError")return null;return console.warn(`${q0.yellow}[Crosswind]${q0.reset} Failed to load crosswind config:`,Z instanceof Error?Z.message:Z),null}}async function I6($){if(y1)return X5;y1=!0;try{let Z=await d$();if(!Z||!Z.build)return y1=!1,"";if(!g0)g0=await m$($);if(!g0)return y1=!1,"";let J=Z.defaultConfig?.theme||{},Y=g0.theme||{},Q={...Z.defaultConfig,...g0,theme:{...J,...Y,extend:{...J.extend||{},...Y.extend||{}}}},X=performance.now(),G=await Z.build(Q),K=performance.now()-X;if(X5=G.css,console.log(`${q0.cyan}[Crosswind]${q0.reset} Built ${G.classes.size} classes in ${K.toFixed(1)}ms`),Q.output){let q=G0.isAbsolute(Q.output)?Q.output:G0.join($,Q.output),z=G0.dirname(q);if(!T6.existsSync(z))T6.mkdirSync(z,{recursive:!0});await Bun.write(q,G.css)}return y1=!1,G.css}catch(Z){return console.error(`${q0.red}[Crosswind]${q0.reset} Build error:`,Z),y1=!1,X5}}async function BQ($){g0=null,await I6($)}function jQ(){return X5}function D6($){let Z=new Set,J=/class\s*=\s*["']([^"']+)["']/gi,Y=J.exec($);while(Y!==null){for(let G of Y[1].split(/\s+/))if(G.trim())Z.add(G.trim());Y=J.exec($)}let Q=/(?:x-class|:class)\s*=\s*"([^"]+)"/gi,X=Q.exec($);while(X!==null){let G=X[1].match(/'([^']+)'/g);if(G){for(let K of G)for(let q of K.slice(1,-1).split(/\s+/))if(q.trim())Z.add(q.trim())}X=Q.exec($)}return Z}async function E6($,Z){try{let J=await d$();if(!J)return"";let Y=D6($);if(Y.size===0)return"";let Q=[...Y].sort().join(" "),X=Y9.get(Q);if(X!==void 0)return X;let G=Z?G0.resolve(Z):process.cwd();if(!g0){let V=null;try{let{loadStxConfig:A}=await Promise.resolve().then(() => (J5(),R6)),w=await A(G);if(w.css)if(typeof w.css==="string"){let N=G0.isAbsolute(w.css)?w.css:G0.resolve(G,w.css);if(await Bun.file(N).exists()){let R=await import(N);V=R.default||R,console.log(`${q0.green}[Crosswind]${q0.reset} Loaded config from stx.config.ts \u2192 ${w.css}`)}}else{if(V={content:w.css.content||[],preflight:w.css.preflight??!0,minify:w.css.minify??!1},w.css.config){let N=G0.isAbsolute(w.css.config)?w.css.config:G0.resolve(G,w.css.config);if(await Bun.file(N).exists()){let R=await import(N);V={...R.default||R,...V}}}console.log(`${q0.green}[Crosswind]${q0.reset} Using inline CSS config from stx.config.ts`)}}catch{}g0=V||await m$(G)}let K=J.defaultConfig||J.config,q=g0||{},z=K.theme||{},U=(q.theme||{}).extend||{},_={...z};if(Object.keys(U).length>0)_.extend=U;let j=[...K.safelist||[],...q.safelist||[]],B={...K,...q,content:[],output:"",preflight:!0,minify:!1,theme:_,safelist:j},O=new J.CSSGenerator(B);for(let V of j)O.generate(V);for(let V of Y)O.generate(V);let F=O.toCSS(!0,!1),L=B.shortcuts||q.shortcuts||{};for(let[V,A]of Object.entries(L)){if(!Y.has(V)&&!j.includes(V))continue;let w=A.split(/\s+/).filter(Boolean);for(let N of w)O.generate(N)}F=O.toCSS(!0,!1);let H=F.split(`
|
|
1625
|
+
`}async function w6($,Z,J,Y){if(Z.length<1)return s("WebComponent","@webcomponent directive requires at least the tag name parameter",p.INVALID_DIRECTIVE_SYNTAX);let Q=Z[0].replace(/['"]/g,""),G=(J.__stx_options||{}).componentsDir||"components",K=[X5.join(X5.dirname(Y),G,`${Q}.stx`),X5.join(process.cwd(),G,`${Q}.stx`),X5.join(X5.dirname(Y),`${Q}.stx`)],q=null;for(let U of K)if(await c(U)){q=await Bun.file(U).text();break}if(!q)return s("WebComponent",`Component file not found: ${Q}.stx`,p.FILE_NOT_FOUND);let z=$Q(q,Q);return`<script type="module">
|
|
1626
|
+
${ZQ(z)}
|
|
1627
|
+
</script>`}var A6=C(()=>{n0();A0()});var N6={};r(N6,{timingPlugin:()=>GQ,pluginManager:()=>YQ,definePlugin:()=>J9,debugPlugin:()=>QQ,createVariablesPlugin:()=>KQ,createFilterPlugin:()=>XQ,createDirectivePlugin:()=>JQ,PluginManager:()=>g$});function J9($){return $}class g${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 J of $.dependencies)if(!this.plugins.has(J))throw Error(`Plugin "${$.name}" depends on "${J}" 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[J,Y]of this.plugins)if(Y.dependencies?.includes($))throw Error(`Cannot unregister "${$}" because "${J}" 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 J=await Z.onError($);if(J){if(J.template!==void 0)$.template=J.template;if(J.context)$.context={...$.context,...J.context};if(J.metadata)$.metadata={...$.metadata,...J.metadata};if(J.skip)return $}}catch(J){console.error(`Error in plugin "${Z.name}" onError hook:`,J)}return null}sortPlugins(){this.sortedPlugins=Array.from(this.plugins.values()).sort(($,Z)=>($.priority??100)-(Z.priority??100))}async runHooks($,Z){let J={...Z};for(let Y of this.sortedPlugins){let Q=Y[$];if(Q)try{let X=await Q(J);if(X){if(X.template!==void 0)J.template=X.template;if(X.context)J.context={...J.context,...X.context};if(X.metadata)J.metadata={...J.metadata,...X.metadata};if(X.skip)break}}catch(X){console.error(`Error in plugin "${Y.name}" ${$} hook:`,X)}}return J}async runDirectiveHooks($,Z,J){let Y={...J};for(let Q of this.sortedPlugins){let X=Q[$];if(X)try{let G=await X(Z,Y);if(G){if(G.template!==void 0)Y.template=G.template;if(G.context)Y.context={...Y.context,...G.context};if(G.metadata)Y.metadata={...Y.metadata,...G.metadata};if(G.skip)break}}catch(G){console.error(`Error in plugin "${Q.name}" ${$} hook:`,G)}}return Y}}function JQ($,Z,J={}){return{name:$,...J,registerDirectives:()=>Z}}function XQ($,Z,J={}){return{name:$,...J,registerFilters:()=>Z}}function KQ($){return J9({name:"stx-variables",version:"1.0.0",description:"Adds predefined variables to template context",beforeProcess(Z){return{context:{...Z.context,...$}}}})}var YQ,QQ,GQ;var R6=C(()=>{YQ=new g$;QQ=J9({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)}}),GQ=J9({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 J=performance.now()-Z;console.log(`[stx-timing] Processing took ${J.toFixed(2)}ms`)}}})});var M6={};r(M6,{validateConfig:()=>UQ,loadStxConfig:()=>L1,defineStxConfig:()=>zQ,defaultConfig:()=>d$,config:()=>m$});import h$ from"fs";import M0 from"path";import{loadConfigWithResult as qQ}from"bunfig";function WQ($,Z){let J=Z||"pages";if($)return{root:$,pagesDir:J};let Y=M0.join(process.cwd(),"resources","views"),Q=M0.join(process.cwd(),"resources","layouts");if(h$.existsSync(Y)&&h$.existsSync(Q))return{root:"resources",pagesDir:"views"};let X=M0.join(process.cwd(),"resources","views","pages");if(h$.existsSync(X))return{root:"resources/views",pagesDir:J};return{root:".",pagesDir:J}}async function L1($){if(!$){if(C1)return C1;if(X9)return X9}let Z=$?M0.resolve($):process.cwd(),J=T6.get(Z);if(J)return J;let Y=(async()=>{let X=(await qQ({name:"stx",alias:"ui",cwd:Z,defaultConfig:d$,verbose:!1})).config,G=WQ(X.root,X.pagesDir);if(X.root=G.root,X.pagesDir=G.pagesDir,X.root&&X.root!=="."){let K=X.root;if(X.partialsDir&&!M0.isAbsolute(X.partialsDir))X.partialsDir=M0.join(K,X.partialsDir);if(X.componentsDir&&!M0.isAbsolute(X.componentsDir))X.componentsDir=M0.join(K,X.componentsDir);if(X.layoutsDir&&!M0.isAbsolute(X.layoutsDir))X.layoutsDir=M0.join(K,X.layoutsDir)}if(X.plugins&&X.plugins.length>0){let{pluginManager:K}=await Promise.resolve().then(() => (R6(),N6)),q=[],z=[];for(let W of X.plugins){let U=typeof W==="string"?W:W[0],_=typeof W==="string"?{}:W[1]||{};try{let j,B;try{j=await import(U),B=M0.dirname(Y0.resolve(U))}catch{let F=M0.resolve(process.cwd(),U);j=await import(F),B=M0.dirname(F)}let O=j.default||j;if(K.register(O,X),O.components){let F=M0.resolve(B,O.components);q.push(F)}if(O.pages){let F=M0.resolve(B,O.pages),L=_.path||"/";z.push({dir:F,prefix:L})}if(O.setup){let F={addDirective:(L)=>{X.customDirectives=X.customDirectives||[],X.customDirectives.push(L)},addRoute:(L,H)=>{X.apiRoutes=X.apiRoutes||{},X.apiRoutes[L]=H},addMiddleware:(L)=>{X.middleware=X.middleware||[],X.middleware.push(L)},pluginDir:B,config:X};await O.setup(_,F)}console.log(`[stx] Plugin loaded: ${O.name||U}`)}catch(j){console.warn(`[stx] Failed to load plugin ${U}:`,j.message)}}X._pluginComponentDirs=q,X._pluginPageDirs=z}return X})();if(T6.set(Z,Y),!$)X9=Y,Y.then((Q)=>{C1=Q}).catch(()=>{});return Y}function zQ($){return $}function UQ($){let Z=[],J=[];if($.partialsDir!==void 0&&typeof $.partialsDir!=="string")Z.push({path:"partialsDir",message:"partialsDir must be a string",severity:"error"});if($.componentsDir!==void 0&&typeof $.componentsDir!=="string")Z.push({path:"componentsDir",message:"componentsDir must be a string",severity:"error"});if($.cache!==void 0&&typeof $.cache!=="boolean")Z.push({path:"cache",message:"cache must be a boolean",severity:"error"});if($.debug!==void 0&&typeof $.debug!=="boolean")Z.push({path:"debug",message:"debug must be a boolean",severity:"error"});if($.streaming){if($.streaming.bufferSize!==void 0){if(typeof $.streaming.bufferSize!=="number"||$.streaming.bufferSize<=0)Z.push({path:"streaming.bufferSize",message:"streaming.bufferSize must be a positive number",severity:"error"})}if($.streaming.timeout!==void 0){if(typeof $.streaming.timeout!=="number"||$.streaming.timeout<=0)Z.push({path:"streaming.timeout",message:"streaming.timeout must be a positive number",severity:"error"})}if($.streaming.strategy!==void 0){let Y=["auto","manual","sections"];if(!Y.includes($.streaming.strategy))Z.push({path:"streaming.strategy",message:`streaming.strategy must be one of: ${Y.join(", ")}`,severity:"error"})}}if($.i18n){if($.i18n.format!==void 0){let Y=["json","yaml","yml","js"];if(!Y.includes($.i18n.format))Z.push({path:"i18n.format",message:`i18n.format must be one of: ${Y.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 Y=["AA","AAA"];if(!Y.includes($.a11y.level))Z.push({path:"a11y.level",message:`a11y.level must be one of: ${Y.join(", ")}`,severity:"error"})}}if($.hydration){if($.hydration.mode!==void 0){let Y=["progressive","islands"];if(!Y.includes($.hydration.mode))Z.push({path:"hydration.mode",message:`hydration.mode must be one of: ${Y.join(", ")}`,severity:"error"})}if($.hydration.preload!==void 0){let Y=["none","eager","lazy"];if(!Y.includes($.hydration.preload))Z.push({path:"hydration.preload",message:`hydration.preload must be one of: ${Y.join(", ")}`,severity:"error"})}}if($.customDirectives)if(!Array.isArray($.customDirectives))Z.push({path:"customDirectives",message:"customDirectives must be an array",severity:"error"});else $.customDirectives.forEach((Y,Q)=>{if(!Y.name||typeof Y.name!=="string")Z.push({path:`customDirectives[${Q}].name`,message:"Custom directive must have a name string",severity:"error"});if(!Y.handler||typeof Y.handler!=="function")Z.push({path:`customDirectives[${Q}].handler`,message:"Custom directive must have a handler function",severity:"error"})});if($.middleware)if(!Array.isArray($.middleware))Z.push({path:"middleware",message:"middleware must be an array",severity:"error"});else $.middleware.forEach((Y,Q)=>{if(!Y.name||typeof Y.name!=="string")Z.push({path:`middleware[${Q}].name`,message:"Middleware must have a name string",severity:"error"});if(!Y.handler||typeof Y.handler!=="function")Z.push({path:`middleware[${Q}].handler`,message:"Middleware must have a handler function",severity:"error"});if(!Y.timing||!["before","after"].includes(Y.timing))Z.push({path:`middleware[${Q}].timing`,message:'Middleware timing must be "before" or "after"',severity:"error"})});if($.debug===!0&&$.cache===!0)J.push({path:"debug+cache",message:"Debug mode with caching enabled may show stale content during development",severity:"warning"});if($.seo?.enabled===!0&&!$.seo?.defaultConfig?.title)J.push({path:"seo.defaultConfig.title",message:"SEO is enabled but no default title is set",severity:"warning"});if($.pwa){if($.pwa.enabled===!0&&!$.pwa.manifest?.name)Z.push({path:"pwa.manifest.name",message:"PWA manifest name is required when PWA is enabled",severity:"error"});if($.pwa.manifest?.display!==void 0){let Y=["fullscreen","standalone","minimal-ui","browser"];if(!Y.includes($.pwa.manifest.display))Z.push({path:"pwa.manifest.display",message:`PWA display must be one of: ${Y.join(", ")}`,severity:"error"})}if($.pwa.manifest?.orientation!==void 0){let Y=["portrait","landscape","any","portrait-primary","portrait-secondary","landscape-primary","landscape-secondary"];if(!Y.includes($.pwa.manifest.orientation))Z.push({path:"pwa.manifest.orientation",message:`PWA orientation must be one of: ${Y.join(", ")}`,severity:"error"})}if($.pwa.routes){let Y=["cache-first","network-first","stale-while-revalidate","network-only","cache-only"];$.pwa.routes.forEach((Q,X)=>{if(!Q.pattern||typeof Q.pattern!=="string")Z.push({path:`pwa.routes[${X}].pattern`,message:"PWA route must have a pattern string",severity:"error"});if(!Y.includes(Q.strategy))Z.push({path:`pwa.routes[${X}].strategy`,message:`PWA route strategy must be one of: ${Y.join(", ")}`,severity:"error"});if(Q.maxAgeSeconds!==void 0&&(typeof Q.maxAgeSeconds!=="number"||Q.maxAgeSeconds<0))Z.push({path:`pwa.routes[${X}].maxAgeSeconds`,message:"PWA route maxAgeSeconds must be a non-negative number",severity:"error"});if(Q.maxEntries!==void 0&&(typeof Q.maxEntries!=="number"||Q.maxEntries<1))Z.push({path:`pwa.routes[${X}].maxEntries`,message:"PWA route maxEntries must be a positive number",severity:"error"})})}if($.pwa.icons?.sizes){if(!Array.isArray($.pwa.icons.sizes))Z.push({path:"pwa.icons.sizes",message:"PWA icon sizes must be an array of numbers",severity:"error"});else if($.pwa.icons.sizes.filter((Q)=>typeof Q!=="number"||Q<16||Q>1024).length>0)Z.push({path:"pwa.icons.sizes",message:"PWA icon sizes must be numbers between 16 and 1024",severity:"error"})}if($.pwa.icons?.purpose){let Y=["any","maskable","monochrome"];if($.pwa.icons.purpose.filter((X)=>!Y.includes(X)).length>0)Z.push({path:"pwa.icons.purpose",message:`PWA icon purpose must be one of: ${Y.join(", ")}`,severity:"error"})}if($.pwa.enabled===!0&&!$.pwa.icons?.src)J.push({path:"pwa.icons.src",message:"PWA is enabled but no icon source specified. Provide a 512x512 PNG for best results.",severity:"warning"});if($.pwa.enabled===!0&&!$.pwa.manifest?.themeColor)J.push({path:"pwa.manifest.themeColor",message:"PWA theme color not set, defaulting to black",severity:"warning"})}return{valid:Z.length===0,errors:Z,warnings:J}}var d$,C1=null,T6,X9=null,m$;var Q5=C(()=>{v9();x9();f9();g9();$$();v3();S$();K6();f$();A6();d$={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:K3,hasEndTag:!0,description:"Render markdown content to HTML"},{name:"webcomponent",handler:w6,hasEndTag:!1,description:"Include a web component in the template"},W7,z7,F6,V6,U7,B7,j7,_7,F7,A7,P3,b$,...G6],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}};T6=new Map;m$=new Proxy(d$,{get($,Z){if(C1&&Z in C1)return C1[Z];if(!X9)L1().catch((J)=>{console.warn("[stx] Failed to load config file:",J?.message||J)});return $[Z]}})});var S6={};r(S6,{resetCssCache:()=>BQ,resetCrosswindCache:()=>jQ,rebuildCrosswindCSS:()=>OQ,loadCrosswindConfig:()=>l$,loadCrosswind:()=>p$,injectCrosswindCSS:()=>K5,getCachedCSS:()=>HQ,generateCrosswindCSS:()=>b6,extractClassNames:()=>k6,buildCrosswindCSS:()=>E6});import I6 from"fs";import Q0 from"path";async function D6($){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 _Q(){let $=[],Z=process.env.HOME||process.env.USERPROFILE||"",J=process.cwd();while(J!==Q0.dirname(J))$.push(Q0.join(J,"node_modules","@cwcss","crosswind","dist","index.js")),$.push(Q0.join(J,"node_modules","@cwcss","crosswind","src","index.ts")),$.push(Q0.join(J,"node_modules","@stacksjs","crosswind","dist","index.js")),J=Q0.dirname(J);if(Z){let Y=[Q0.join(Z,"Code","Tools","crosswind","packages","crosswind","dist","index.js"),Q0.join(Z,"Code","Tools","crosswind","packages","crosswind","src","index.ts"),Q0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","dist","index.js"),Q0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","src","index.ts"),Q0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@cwcss","crosswind","dist","index.js"),Q0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@stacksjs","crosswind","dist","index.js")];$.push(...Y)}return $.push(Q0.join(process.cwd(),"..","crosswind","packages","crosswind","dist","index.js")),$.push(Q0.join(process.cwd(),"..","crosswind","packages","crosswind","src","index.ts")),$}async function p$(){if(u$)return v1;u$=!0;try{let $=["@cwcss/crosswind","@cwcss/crosswind/dist/index.js","@stacksjs/crosswind","@stacksjs/crosswind/dist/index.js"];for(let J of $){let Y=await D6(J);if(Y)return v1=Y,console.log(`${W0.green}[Crosswind]${W0.reset} CSS engine loaded`),v1}let Z=_Q();for(let J of Z)if(await Bun.file(J).exists()){let Y=await D6(J);if(Y)return v1=Y,console.log(`${W0.green}[Crosswind]${W0.reset} CSS engine loaded from ${Q0.dirname(Q0.dirname(J))}`),v1}throw Error("Crosswind CSSGenerator not found in any location")}catch{return console.warn(`${W0.yellow}[Crosswind] CSS engine not available, Tailwind styles will not be generated${W0.reset}`),console.warn(`${W0.yellow}Run 'bun add @stacksjs/crosswind' to enable CSS generation${W0.reset}`),null}}function BQ(){Q9.clear()}function jQ(){v1=null,u$=!1,g0=null,G5="",Q9.clear()}async function l$($){try{let{loadConfigWithResult:Z}=await import("bunfig"),J=await Z({name:"crosswind",cwd:$,defaultConfig:{},checkEnv:!1,verbose:!1});if(!J?.path||!J.config||Object.keys(J.config).length===0)return null;let Y=Q0.relative($,J.path);return console.log(`${W0.green}[Crosswind]${W0.reset} Loaded config from ${Y||J.path}`),J.config}catch(Z){if(Z instanceof Error&&Z.name==="ConfigNotFoundError")return null;return console.warn(`${W0.yellow}[Crosswind]${W0.reset} Failed to load crosswind config:`,Z instanceof Error?Z.message:Z),null}}async function E6($){if(P1)return G5;P1=!0;try{let Z=await p$();if(!Z||!Z.build)return P1=!1,"";if(!g0)g0=await l$($);if(!g0)return P1=!1,"";let J=Z.defaultConfig?.theme||{},Y=g0.theme||{},Q={...Z.defaultConfig,...g0,theme:{...J,...Y,extend:{...J.extend||{},...Y.extend||{}}}},X=performance.now(),G=await Z.build(Q),K=performance.now()-X;if(G5=G.css,console.log(`${W0.cyan}[Crosswind]${W0.reset} Built ${G.classes.size} classes in ${K.toFixed(1)}ms`),Q.output){let q=Q0.isAbsolute(Q.output)?Q.output:Q0.join($,Q.output),z=Q0.dirname(q);if(!I6.existsSync(z))I6.mkdirSync(z,{recursive:!0});await Bun.write(q,G.css)}return P1=!1,G.css}catch(Z){return console.error(`${W0.red}[Crosswind]${W0.reset} Build error:`,Z),P1=!1,G5}}async function OQ($){g0=null,await E6($)}function HQ(){return G5}function k6($){let Z=new Set,J=/class\s*=\s*["']([^"']+)["']/gi,Y=J.exec($);while(Y!==null){for(let G of Y[1].split(/\s+/))if(G.trim())Z.add(G.trim());Y=J.exec($)}let Q=/(?:x-class|:class)\s*=\s*"([^"]+)"/gi,X=Q.exec($);while(X!==null){let G=X[1].match(/'([^']+)'/g);if(G){for(let K of G)for(let q of K.slice(1,-1).split(/\s+/))if(q.trim())Z.add(q.trim())}X=Q.exec($)}return Z}async function b6($,Z){try{let J=await p$();if(!J)return"";let Y=k6($);if(Y.size===0)return"";let Q=[...Y].sort().join(" "),X=Q9.get(Q);if(X!==void 0)return X;let G=Z?Q0.resolve(Z):process.cwd();if(!g0){let V=null;try{let{loadStxConfig:A}=await Promise.resolve().then(() => (Q5(),M6)),w=await A(G);if(w.css)if(typeof w.css==="string"){let N=Q0.isAbsolute(w.css)?w.css:Q0.resolve(G,w.css);if(await Bun.file(N).exists()){let R=await import(N);V=R.default||R,console.log(`${W0.green}[Crosswind]${W0.reset} Loaded config from stx.config.ts \u2192 ${w.css}`)}}else{if(V={content:w.css.content||[],preflight:w.css.preflight??!0,minify:w.css.minify??!1},w.css.config){let N=Q0.isAbsolute(w.css.config)?w.css.config:Q0.resolve(G,w.css.config);if(await Bun.file(N).exists()){let R=await import(N);V={...R.default||R,...V}}}console.log(`${W0.green}[Crosswind]${W0.reset} Using inline CSS config from stx.config.ts`)}}catch{}g0=V||await l$(G)}let K=J.defaultConfig||J.config,q=g0||{},z=K.theme||{},U=(q.theme||{}).extend||{},_={...z};if(Object.keys(U).length>0)_.extend=U;let j=[...K.safelist||[],...q.safelist||[]],B={...K,...q,content:[],output:"",preflight:!0,minify:!1,theme:_,safelist:j},O=new J.CSSGenerator(B);for(let V of j)O.generate(V);for(let V of Y)O.generate(V);let F=O.toCSS(!0,!1),L=B.shortcuts||q.shortcuts||{};for(let[V,A]of Object.entries(L)){if(!Y.has(V)&&!j.includes(V))continue;let w=A.split(/\s+/).filter(Boolean);for(let N of w)O.generate(N)}F=O.toCSS(!0,!1);let H=F.split(`
|
|
1626
1628
|
`);for(let[V,A]of Object.entries(L)){if(!Y.has(V)&&!j.includes(V))continue;let w=A.split(/\s+/).filter(Boolean),N=[],R=[];for(let T of w){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 y=0;y<H.length;y++){let S=H[y].trim();if(S===`${k} {`||S.startsWith(`${k} {`)){let b=y,D="";while(b<H.length){if(D+=H[b],H[b].includes("}"))break;b++}let x=D.match(/\{([^}]+)\}/);if(x)if(I)R.push(x[1].trim());else N.push(x[1].trim());break}}}if(N.length)F+=`
|
|
1627
1629
|
.${V} { ${N.join(" ")} }`;if(R.length)F+=`
|
|
1628
|
-
@media (prefers-color-scheme: dark) { .dark .${V} { ${R.join(" ")} } }`}return
|
|
1630
|
+
@media (prefers-color-scheme: dark) { .dark .${V} { ${R.join(" ")} } }`}return Q9.set(Q,F),F}catch(J){return console.warn("Failed to generate Crosswind CSS:",J),""}}async function K5($,Z){if($.includes('data-crosswind="generated"'))return $;let J=await b6($,Z);if(!J)return $;let Y=`<style data-crosswind="generated">
|
|
1629
1631
|
${J}
|
|
1630
1632
|
</style>`;if($.includes("</head>"))return $.replace("</head>",`${Y}
|
|
1631
1633
|
</head>`);if($.includes("<body"))return $.replace(/<body([^>]*)>/,`<body$1>
|
|
1632
|
-
${Y}`);return Y+$}var
|
|
1634
|
+
${Y}`);return Y+$}var v1=null,u$=!1,g0=null,G5="",P1=!1,Q9;var G9=C(()=>{K7();Q9=new Map});function y6(){return`
|
|
1633
1635
|
// STX Lifecycle Runtime
|
|
1634
1636
|
(function() {
|
|
1635
1637
|
if (typeof window === 'undefined') return;
|
|
@@ -1974,7 +1976,7 @@ else {
|
|
|
1974
1976
|
|
|
1975
1977
|
console.log('[stx] Lifecycle runtime initialized');
|
|
1976
1978
|
})();
|
|
1977
|
-
`}function
|
|
1979
|
+
`}function c$($){return Symbol($)}var ZB,YB,JB;var C6=C(()=>{ZB=c$("theme"),YB=c$("router"),JB=c$("i18n")});import*as v6 from"crypto";function P6($){let Z=/\$(\w+)\./g,J=[],Y;while((Y=Z.exec($))!==null)if(!J.includes(Y[1]))J.push(Y[1]);return J}function LQ(){return`stx-${v6.randomBytes(4).toString("hex")}`}function FQ($){return/\$\w+\./.test($)}function VQ($){let Z=[],J=new Set,Y=/<(\w+)([^>]*?)(\s*\/?>)/g,Q=$;return Q=Q.replace(Y,(X,G,K,q)=>{if(["script","style","template"].includes(G.toLowerCase()))return X;let z=[],W=!1,U=K,_=/(\w+(?:-\w+)*)\s*=\s*"([^"]*\{\{[^}]*\$\w+[^}]*\}\}[^"]*)"/g,j=[...K.matchAll(_)];for(let F of j){let L=F[0],H=F[1],V=F[2];if(FQ(V)){W=!0;let A=V.match(/\{\{\s*([\s\S]+?)\s*\}\}/);if(A){let w=A[1];if(z.push({attr:H,expr:w,fullMatch:L,originalAttr:H}),P6(w).forEach((R)=>J.add(R)),H==="text")U=U.replace(L,"");else if(H==="class")U=U.replace(L,'class=""');else if(H==="disabled"||H==="hidden")U=U.replace(L,"");else U=U.replace(L,`${H}=""`)}}}if(!W)return X;let B=U.match(/\bid\s*=\s*"([^"]+)"/),O;if(B)O=B[1];else O=LQ(),U=` id="${O}"${U}`;for(let F of z)Z.push({elementId:O,attribute:F.attr,expression:F.expr,stores:P6(F.expr)});return`<${G}${U}${q}`}),{html:Q,bindings:Z,stores:J}}function wQ($,Z){if($.length===0)return"";let J=Array.from(Z),Y=`
|
|
1978
1980
|
<script>
|
|
1979
1981
|
(function() {
|
|
1980
1982
|
'use strict';
|
|
@@ -2100,10 +2102,10 @@ else {
|
|
|
2100
2102
|
}
|
|
2101
2103
|
})();
|
|
2102
2104
|
</script>
|
|
2103
|
-
`,Y}function
|
|
2105
|
+
`,Y}function x6($){let{html:Z,bindings:J,stores:Y}=VQ($);if(J.length===0)return $;let Q=wQ(J,Y),X=Z.lastIndexOf("</body>");if(X!==-1)return Z.slice(0,X)+Q+Z.slice(X);return Z+Q}var f6=()=>{};function AQ($){let Z=$.analytics;if(!Z?.enabled)return"";switch(Z.driver){case"fathom":return NQ(Z);case"google-analytics":return RQ(Z);case"plausible":return TQ(Z);case"self-hosted":return MQ(Z);case"custom":return IQ(Z);default:return""}}function NQ($){let Z=$.fathom;if(!Z?.siteId)return"";let J=Z.scriptUrl||"https://cdn.usefathom.com/script.js",Y=Z.defer!==!1?" defer":"",Q=[`data-site="${b0(Z.siteId)}"`];if(Z.honorDnt)Q.push('data-honor-dnt="true"');if(Z.spa)Q.push('data-spa="auto"');if(Z.canonical)Q.push(`data-canonical="${b0(Z.canonical)}"`);if(Z.auto===!1)Q.push('data-auto="false"');return`
|
|
2104
2106
|
<!-- Fathom Analytics -->
|
|
2105
|
-
<script src="${
|
|
2106
|
-
`}function
|
|
2107
|
+
<script src="${b0(J)}" ${Q.join(" ")}${Y}></script>
|
|
2108
|
+
`}function RQ($){let Z=$.googleAnalytics;if(!Z?.measurementId)return"";let J=b0(Z.measurementId),Y=Z.debug?`gtag('config', '${J}', { 'debug_mode': true });`:"";return`
|
|
2107
2109
|
<!-- Google Analytics -->
|
|
2108
2110
|
<script async src="https://www.googletagmanager.com/gtag/js?id=${J}"></script>
|
|
2109
2111
|
<script>
|
|
@@ -2113,10 +2115,10 @@ else {
|
|
|
2113
2115
|
gtag('config', '${J}');
|
|
2114
2116
|
${Y}
|
|
2115
2117
|
</script>
|
|
2116
|
-
`}function
|
|
2118
|
+
`}function TQ($){let Z=$.plausible;if(!Z?.domain)return"";let J=Z.scriptUrl||"https://plausible.io/js/script.js",Y=[`data-domain="${b0(Z.domain)}"`],Q=J,X=[];if(Z.trackLocalhost)X.push("local");if(Z.hashMode)X.push("hash");if(X.length>0&&J==="https://plausible.io/js/script.js")Q=`https://plausible.io/js/script.${X.join(".")}.js`;return`
|
|
2117
2119
|
<!-- Plausible Analytics -->
|
|
2118
|
-
<script defer data-domain="${
|
|
2119
|
-
`}function
|
|
2120
|
+
<script defer data-domain="${b0(Z.domain)}" src="${b0(Q)}"></script>
|
|
2121
|
+
`}function MQ($){let Z=$.selfHosted;if(!Z?.siteId||!Z?.apiEndpoint)return"";let J=b0(Z.siteId),Y=b0(Z.apiEndpoint),Q=Z.honorDnt?'if(n.doNotTrack==="1")return;':"",X=Z.trackHashChanges?"w.addEventListener('hashchange',pv);":"",G=Z.trackOutboundLinks?`
|
|
2120
2122
|
d.addEventListener('click',function(e){
|
|
2121
2123
|
var a=e.target.closest('a');
|
|
2122
2124
|
if(a&&a.hostname!==location.hostname){
|
|
@@ -2149,15 +2151,15 @@ else {
|
|
|
2149
2151
|
w.stxAnalytics={track:function(n,v){t('event',{name:n,value:v});}};
|
|
2150
2152
|
})();
|
|
2151
2153
|
</script>
|
|
2152
|
-
`}function
|
|
2154
|
+
`}function IQ($){let Z=$.custom;if(!Z)return"";if(Z.inlineScript)return`
|
|
2153
2155
|
<!-- Custom Analytics -->
|
|
2154
2156
|
<script>
|
|
2155
2157
|
${Z.inlineScript}
|
|
2156
2158
|
</script>
|
|
2157
|
-
`;if(!Z.scriptUrl)return"";let J=[];if(Z.scriptId)J.push(`id="${
|
|
2159
|
+
`;if(!Z.scriptUrl)return"";let J=[];if(Z.scriptId)J.push(`id="${b0(Z.scriptId)}"`);if(Z.attributes)for(let[Q,X]of Object.entries(Z.attributes))J.push(`${b0(Q)}="${b0(X)}"`);return`
|
|
2158
2160
|
<!-- Custom Analytics -->
|
|
2159
|
-
<script${J.length>0?` ${J.join(" ")}`:""} src="${
|
|
2160
|
-
`}function
|
|
2161
|
+
<script${J.length>0?` ${J.join(" ")}`:""} src="${b0(Z.scriptUrl)}" defer></script>
|
|
2162
|
+
`}function g6($,Z){let J=AQ(Z);if(!J)return $;if(!$.includes("</head>")){let Y=$.lastIndexOf("</body>");if(Y!==-1)return $.slice(0,Y)+J+$.slice(Y);return $+J}return $.replace("</head>",`${J}</head>`)}function b0($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}var h6=()=>{};function u6($){let Z={prevent:!1,stop:!1,once:!1,capture:!1,self:!1,passive:!1,keys:[],systemKeys:[],mouse:null,debounce:null,throttle:null};for(let J of $){let Y=J.toLowerCase();if(Y==="prevent")Z.prevent=!0;else if(Y==="stop")Z.stop=!0;else if(Y==="once")Z.once=!0;else if(Y==="capture")Z.capture=!0;else if(Y==="self")Z.self=!0;else if(Y==="passive")Z.passive=!0;else if(DQ.has(Y))Z.systemKeys.push(Y);else if(Y in p6)Z.mouse=Y;else if(Y in m6||/^[a-z]$/.test(Y))Z.keys.push(m6[Y]||Y.toUpperCase());else if(Y.startsWith("debounce")){let Q=Y.match(/debounce(?:\.(\d+))?/);Z.debounce=Q?.[1]?Number.parseInt(Q[1],10):300}else if(Y.startsWith("throttle")){let Q=Y.match(/throttle(?:\.(\d+))?/);Z.throttle=Q?.[1]?Number.parseInt(Q[1],10):300}}return Z}function l6($){let Z=[],J=0,Y=/<([a-z][a-z0-9-]*)\s+([^>]*@[a-z][^>]*)>/gi,Q;while((Q=Y.exec($))!==null){let[X,G,K]=Q,q=Q.index,z=q+X.length,W=`__stx_evt_${J++}`,U=[],_=/@([a-z][a-z0-9.]*)\s*=\s*"([^"]*)"/gi,j;while((j=_.exec(K))!==null){let[,O,F]=j,L=O.split("."),H=L[0];if(!d6.has(H))continue;U.push({attribute:`@${O}`,event:H,handler:F,modifiers:u6(L.slice(1)),elementId:W})}let B=/@([a-z][a-z0-9.]*)\s*=\s*'([^']*)'/gi;while((j=B.exec(K))!==null){let[,O,F]=j,L=O.split("."),H=L[0];if(!d6.has(H))continue;U.push({attribute:`@${O}`,event:H,handler:F,modifiers:u6(L.slice(1)),elementId:W})}if(U.length>0)Z.push({originalTag:X,elementId:W,events:U,startIndex:q,endIndex:z})}return Z}function EQ($){let Z=[],{modifiers:J}=$;if(J.self)Z.push("if ($event.target !== $el) return");for(let Y of J.systemKeys)Z.push(`if (!$event.${Y}Key) return`);if(J.keys.length>0){let Y=J.keys.map((Q)=>`$event.key === '${Q}'`).join(" || ");Z.push(`if (!(${Y})) return`)}if(J.mouse!==null){let Y=p6[J.mouse];Z.push(`if ($event.button !== ${Y}) return`)}if(J.prevent)Z.push("$event.preventDefault()");if(J.stop)Z.push("$event.stopPropagation()");return Z.join("; ")}function kQ($,Z){let J=$;if(Z.debounce!==null)J=`__stx_debounce(() => { ${J} }, ${Z.debounce})`;else if(Z.throttle!==null)J=`__stx_throttle(() => { ${J} }, ${Z.throttle})`;return J}function bQ($){let{modifiers:Z}=$,J=$.elementId.replace(/\\/g,"\\\\").replace(/'/g,"\\'"),Y=EQ($),Q=kQ($.handler,Z),X=[];if(Z.once)X.push("once: true");if(Z.capture)X.push("capture: true");if(Z.passive)X.push("passive: true");let G=X.length>0?`, { ${X.join(", ")} }`:"",K=Q.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t");if($.event==="mounted")return`
|
|
2161
2163
|
(function() {
|
|
2162
2164
|
var $el = document.getElementById('${J}');
|
|
2163
2165
|
if (!$el) return;
|
|
@@ -2211,7 +2213,7 @@ else {
|
|
|
2211
2213
|
${Q}
|
|
2212
2214
|
}
|
|
2213
2215
|
}${G});
|
|
2214
|
-
})();`}function
|
|
2216
|
+
})();`}function SQ($){if($.length===0)return"";return`
|
|
2215
2217
|
<script data-stx-events>
|
|
2216
2218
|
(function() {
|
|
2217
2219
|
'use strict';
|
|
@@ -2239,11 +2241,11 @@ else {
|
|
|
2239
2241
|
}
|
|
2240
2242
|
|
|
2241
2243
|
// Event listeners
|
|
2242
|
-
${$.flatMap((J)=>J.events).map(
|
|
2244
|
+
${$.flatMap((J)=>J.events).map(bQ).join(`
|
|
2243
2245
|
`)}
|
|
2244
2246
|
})();
|
|
2245
|
-
</script>`}function
|
|
2246
|
-
`+X.slice(K);else X+=G;return X}var
|
|
2247
|
+
</script>`}function yQ($){let Z=l6($);if(Z.length===0)return{template:$,bindings:[]};let J=$,Y=[];for(let Q=Z.length-1;Q>=0;Q--){let X=Z[Q],G=X.originalTag;if(!G.includes(" id="))G=G.replace(/^<([a-z][a-z0-9-]*)/,`<$1 id="${X.elementId}"`);else{let K=G.match(/id=["']([^"']+)["']/);if(K)for(let q of X.events)q.elementId=K[1]}for(let K of X.events){let q=K.attribute.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),z=new RegExp(`\\s*${q}\\s*=\\s*"[^"]*"`,"g"),W=new RegExp(`\\s*${q}\\s*=\\s*'[^']*'`,"g");G=G.replace(z,""),G=G.replace(W,"")}J=J.slice(0,X.startIndex)+G+J.slice(X.endIndex),Y.push(...X.events)}return{template:J,bindings:Y}}function c6($,Z,J){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:q,bindings:z}=yQ($),W=Z.__stx_event_bindings||[];return Z.__stx_event_bindings=[...W,...z],q}let Q=l6($);if(Q.length===0)return $;let X=$;for(let q=Q.length-1;q>=0;q--){let z=Q[q],W=z.originalTag;if(!W.includes(" id="))W=W.replace(/^<([a-z][a-z0-9-]*)/,`<$1 id="${z.elementId}"`);else{let U=W.match(/id=["']([^"']+)["']/);if(U)for(let _ of z.events)_.elementId=U[1]}for(let U of z.events){let _=U.attribute.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),j=new RegExp(`\\s*${_}\\s*=\\s*"[^"]*"`,"g"),B=new RegExp(`\\s*${_}\\s*=\\s*'[^']*'`,"g");W=W.replace(j,""),W=W.replace(B,"")}X=X.slice(0,z.startIndex)+W+X.slice(z.endIndex)}let G=SQ(Q),K=X.lastIndexOf("</body>");if(K!==-1)X=X.slice(0,K)+G+`
|
|
2248
|
+
`+X.slice(K);else X+=G;return X}var d6,m6,DQ,p6;var i6=C(()=>{d6=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"]),m6={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"},DQ=new Set(["ctrl","alt","shift","meta"]),p6={left:0,middle:1,right:2}});function K9($){return $.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function n6($,Z){let J=$.match(new RegExp(`${Z}\\s*=\\s*"([^"]*)"`,"i"));if(J)return J[1];let Y=$.match(new RegExp(`${Z}\\s*=\\s*'([^']*)'`,"i"));if(Y)return Y[1];return null}function PQ($){let Z=[],J=/<([a-z][a-z0-9-]*)\s+([^>]*x-data\s*=\s*(?:"[^"]*"|'[^']*')[^>]*)>/gi,Y;while((Y=J.exec($))!==null){let[Q,X,G]=Y,K=Y.index,q=n6(G,"x-data");if(!q)continue;let z=`__stx_scope_${o6++}`,W=n6(G,"x-init"),U=vQ($,X,K+Q.length),_=$.slice(K,U.endIndex),j=xQ(_);Z.push({id:z,selector:`[data-stx-scope="${z}"]`,stateExpr:q,initExpr:W,bindings:[],refs:j})}return Z}function vQ($,Z,J){let Y=1,Q=J,X=new RegExp(`<${Z}(?:\\s|>)`,"gi"),G=new RegExp(`</${Z}>`,"gi"),K=new RegExp(`<${Z}[^>]*/\\s*>`,"gi");while(Y>0&&Q<$.length){X.lastIndex=Q,G.lastIndex=Q,K.lastIndex=Q;let q=X.exec($),z=G.exec($),W=K.exec($);if(W&&W.index<(q?.index??1/0)){Q=W.index+W[0].length;continue}if(!z)return{endIndex:$.length};if(q&&q.index<z.index)Y++,Q=q.index+q[0].length;else{if(Y--,Y===0)return{endIndex:z.index+z[0].length};Q=z.index+z[0].length}}return{endIndex:$.length}}function xQ($){let Z=new Map,J=$.replace(/x-data\s*=\s*"[^"]*"/gi,'x-data="__stripped__"').replace(/x-data\s*=\s*'[^']*'/gi,"x-data='__stripped__'"),Y=/<[a-z][a-z0-9-]*\s+([^>]*x-ref\s*=\s*["']([^"']*)["'][^>]*)>/gi,Q;while((Q=Y.exec(J))!==null){let[,X,G]=Q,K=fQ(X);Z.set(G,K)}return Z}function fQ($){let Z=$.match(/\bid\s*=\s*["']([^"']*)["']/);if(Z)return Z[1];return`__stx_el_${CQ++}`}function gQ(){return`
|
|
2247
2249
|
// STX Reactive Runtime - x-cloak and transition CSS
|
|
2248
2250
|
(function() {
|
|
2249
2251
|
var style = document.createElement('style');
|
|
@@ -2447,7 +2449,7 @@ window.__stx_reactive = (function() {
|
|
|
2447
2449
|
|
|
2448
2450
|
return { initScope: initScope, reactive: reactive };
|
|
2449
2451
|
})();
|
|
2450
|
-
`}function
|
|
2452
|
+
`}function hQ($){if($.length===0)return"";let Z=$.map((J)=>{let Y=JSON.stringify(Object.fromEntries(J.refs)),Q=JSON.stringify(J.stateExpr),X=J.initExpr?JSON.stringify(J.initExpr):"null";return`
|
|
2451
2453
|
(function() {
|
|
2452
2454
|
var scopeEl = document.querySelector('${J.selector}');
|
|
2453
2455
|
if (!scopeEl) return;
|
|
@@ -2456,24 +2458,24 @@ window.__stx_reactive = (function() {
|
|
|
2456
2458
|
})();`}).join(`
|
|
2457
2459
|
`);return`
|
|
2458
2460
|
<script data-stx-scoped data-stx-reactive>
|
|
2459
|
-
${
|
|
2461
|
+
${gQ()}
|
|
2460
2462
|
${Z}
|
|
2461
|
-
</script>`}function
|
|
2462
|
-
`+Q.slice(G);else Q+=X;return Q}function gQ($,Z){let J=$;for(let Y of Z){let X=new RegExp(`<[a-z][a-z0-9-]*\\s+[^>]*data-stx-scope="([^"]*)"[^>]*x-data\\s*=\\s*["']${X9(Y.stateExpr)}["']`,"gi").exec(J);if(X)Y.id=X[1],Y.selector=`[data-stx-scope="${Y.id}"]`;else{let K=new RegExp(`<[a-z][a-z0-9-]*\\s+[^>]*x-data\\s*=\\s*["']${X9(Y.stateExpr)}["'][^>]*data-stx-scope="([^"]*)"`,"gi").exec(J);if(K)Y.id=K[1],Y.selector=`[data-stx-scope="${Y.id}"]`;else J=J.replace(new RegExp(`(<[a-z][a-z0-9-]*\\s+)([^>]*)(x-data\\s*=\\s*"${X9(Y.stateExpr)}")([^>]*>)`,"gi"),`$1data-stx-scope="${Y.id}" $2$3$4`),J=J.replace(new RegExp(`(<[a-z][a-z0-9-]*\\s+)([^>]*)(x-data\\s*=\\s*'${X9(Y.stateExpr)}')([^>]*>)`,"gi"),`$1data-stx-scope="${Y.id}" $2$3$4`)}}return J=J.replace(/\s*x-data\s*=\s*"([^"]*)"/g,' data-stx-xdata="$1"'),J=J.replace(/\s*x-data\s*=\s*'([^']*)'/g," data-stx-xdata='$1'"),J=J.replace(/\s*x-init\s*=\s*"[^"]*"/g,""),J=J.replace(/\s*x-init\s*=\s*'[^']*'/g,""),J}function hQ($){return/x-data\s*=\s*["']/.test($)}var i6=0,SQ=0;import dQ from"fs";import p$ from"path";import{createHighlighter as mQ}from"ts-syntax-highlighter";async function uQ($,Z={}){try{if(!await i($))throw Error(`Markdown file not found: ${$}`);let Y=(await dQ.promises.stat($)).mtime.getTime();if(Z.cache&&l$.has($)){let U=l$.get($);if(U.updatedAt>=Y)return{content:U.content,data:U.data}}let Q=await Bun.file($).text(),{data:X,content:G}=w7(Q),K=Z.markdown||g$.markdown||{enabled:!0,syntaxHighlighting:{enabled:!0,serverSide:!0,defaultTheme:"github-dark",highlightUnknownLanguages:!0}},z=c1(G,{gfm:!0});if(K.syntaxHighlighting?.enabled&&K.syntaxHighlighting?.serverSide)z=await pQ(z,K.syntaxHighlighting?.defaultTheme||"github-dark",K.syntaxHighlighting?.highlightUnknownLanguages||!1);let W={content:z,data:X||{}};if(Z.cache)l$.set($,{...W,updatedAt:Y});return W}catch(J){if(Z.debug)console.error(`Error reading/parsing markdown file ${$}:`,J);let Y=J instanceof Error?J.message:String(J);return{content:Q0("Markdown File",`Error reading/parsing markdown file: ${Y}`,$,"",0,""),data:{}}}}async function pQ($,Z,J){let Y=/<pre><code( class="language-([^"]+)")?>([^<]+)<\/code><\/pre>/g;if(!Q9)try{Q9=await mQ({theme:Z||"github-dark",cache:!0})}catch(K){return console.error("Failed to initialize ts-syntax-highlighter:",K),$}let Q=async(K,q,z,W)=>{let U=W.replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&").replace(/"/g,'"').replace(/'/g,"'"),_=z||(J?"text":"");if(!_)return K;try{if(!Q9.getSupportedLanguages().includes(_))return K;return(await Q9.highlight(U,_,{theme:Z})).html}catch(j){console.error(`Error highlighting code block with language ${z}:`,j)}return K},X=$,G=$.matchAll(Y);for(let K of G){let[q,z,W,U]=K,_=await Q(q,z,W,U);X=X.replace(q,_)}return X}async function o6($,Z,J="",Y={}){return await lQ($,/@markdown-file\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\}))?\)/g,async(G,K,q,z)=>{try{let W=K;if(!p$.isAbsolute(K))W=p$.resolve(p$.dirname(J),K);let U={};if(q)try{try{U=JSON.parse(q)}catch{if(Y.debug)console.warn("Using safer alternative for parsing JS object literal");let H=q.replace(/^\s*\{|\}\s*$/g,"").trim().split(/,(?=\s*\w+\s*:)/);for(let V of H){let A=V.indexOf(":");if(A>0){let w=V.substring(0,A).trim(),N=V.substring(A+1).trim(),R=N.startsWith('"')&&N.endsWith('"'),T=N.startsWith("'")&&N.endsWith("'");if(R||T)N=N.substring(1,N.length-1);U[w]=N}}}}catch(L){if(Y.debug)console.error("Error parsing context in @markdown-file directive:",L)}let{content:_,data:j}=await uQ(W,Y),B={...Z,...j,...U},O=_,F=/\{\{([^}]+)\}\}/g;return O=O.replace(F,(L,H)=>{let V=H.trim();return B[V]!==void 0?String(B[V]):L}),O}catch(W){let U=W instanceof Error?W.message:String(W);return Q0("Markdown File",`Error including markdown file: ${U}`,J,$,z,G)}})}async function lQ($,Z,J){let Y=[],Q;while((Q=Z.exec($))!==null){let K=Q[0],q=Q.index,z=Q;Y.push(J(...z).then((W)=>({match:K,replacement:W,index:q})))}let X=await Promise.all(Y);X.sort((K,q)=>q.index-K.index);let G=$;for(let{match:K,replacement:q}of X)G=G.replace(K,()=>q);return G}var l$,Q9=null;var s6=C(()=>{J5();F0();l$=new Map});function t0($,Z){try{let J=$.trim();if(e(J))return $0(J,Object.keys(Z))(...Object.values(Z));else return X0(J,Z)}catch{return!1}}var r6=C(()=>{A0()});function e0($,Z){let J=cQ($,Z);return J.ok?{expression:J.expression,endPos:J.endPos}:null}function cQ($,Z){let J=Z;while(J<$.length&&/\s/.test($[J]))J++;if($[J]!=="(")return{ok:!1,reason:"missing-open-paren",pos:J};let Y=I0($,"(",")",J);if(Y===-1)return{ok:!1,reason:"unclosed-paren",pos:J};return{ok:!0,expression:$.slice(J+1,Y),endPos:Y+1}}function H1($,Z,J,Y){let Q=1,X=Y,G=new RegExp(`@${Z}\\s*\\(`,"g"),K=new RegExp(`@${J}(?![a-z])`,"g");while(X<$.length&&Q>0){G.lastIndex=X,K.lastIndex=X;let q=G.exec($),z=K.exec($),W=q?q.index:1/0,U=z?z.index:1/0;if(W<U)Q++,X=W+q[0].length;else if(U<1/0){if(Q--,Q===0)return U;X=U+z[0].length}else break}return-1}function a6($,Z){let J=$.slice(Z).match(/^@if\s*/);if(!J)return null;let Y=Z+J[0].length,Q=e0($,Y);if(!Q)return null;let X=Q.endPos,G=H1($,"if","endif",X);if(G===-1)return null;let K=$.slice(X,G),q=[],z=0,W="if",U=Q.expression,_=0,j=0;while(z<K.length){let B=K.indexOf("@",z);if(B===-1)break;z=B;let O=K.substring(B);if(/^@if\s*\(/.test(O)){j++,z++;continue}if(/^@endif(?![a-z])/.test(O)){j--,z+=6;continue}if(j===0){let F=O.match(/^@elseif\s*/);if(F){q.push({type:W,condition:U,content:K.substring(_,z),start:X+_,end:X+z});let L=z+F[0].length,H=e0(K,L);if(!H){z++;continue}W="elseif",U=H.expression,z=H.endPos,_=z;continue}else if(/^@else(?![a-z])/.test(O)){q.push({type:W,condition:U,content:K.substring(_,z),start:X+_,end:X+z}),W="else",U=void 0,z+=5,_=z;continue}}z++}return q.push({type:W,condition:U,content:K.slice(_),start:X+_,end:X+K.length}),{fullMatch:$.slice(Z,G+6),branches:q,start:Z,end:G+6}}function c$($){let Z=[],J=/@if\s*\(/g,Y=J.exec($);while(Y!==null){if(Z.some((G)=>Y.index>G.start&&Y.index<G.end)){Y=J.exec($);continue}let X=a6($,Y.index);if(X)Z.push(X),J.lastIndex=X.end;Y=J.exec($)}return Z}function G9($,Z,J){let Y=[],Q=new RegExp(`@${Z}\\s*\\(`,"g"),X=Q.exec($);while(X!==null){if(Y.some((O)=>X.index>O.start&&X.index<O.end)){X=Q.exec($);continue}let K=X.index,q=K+X[0].length-1,z=I0($,"(",")",q);if(z===-1){X=Q.exec($);continue}let W=$.slice(q+1,z),U=z+1,_=H1($,Z,J,U);if(_===-1){X=Q.exec($);continue}let j=$.slice(U,_),B=_+`@${J}`.length;Y.push({fullMatch:$.slice(K,B),name:Z,params:W,content:j,start:K,end:B}),Q.lastIndex=B,X=Q.exec($)}return Y}function i$($,Z){let J=$.slice(Z).match(/^@switch\s*/);if(!J)return null;let Y=Z+J[0].length,Q=e0($,Y);if(!Q)return null;let X=Q.endPos,G=H1($,"switch","endswitch",X);if(G===-1)return null;let K=$.slice(X,G),q=[],z=0,W=null,U=0;while(z<K.length){let _=K.slice(z),j=_.match(/^@switch\s*\(/),B=_.match(/^@endswitch(?![a-z])/);if(j){if(U++,W)W.content+=j[0];z+=j[0].length;continue}if(B){if(U--,W)W.content+=B[0];z+=B[0].length;continue}if(U>0){if(W)W.content+=K[z];z++;continue}let O=_.match(/^@case\s*/),F=_.match(/^@default(?![a-z])/),L=_.match(/^@break(?![a-z])/);if(O&&_.startsWith("@case")){if(W)q.push(W);let H=z+O[0].length,V=e0(K,H);if(!V){z++;continue}W={type:"case",value:V.expression,content:""},z=V.endPos}else if(F&&_.startsWith("@default")){if(W)q.push(W);W={type:"default",content:""},z+=F[0].length}else if(L&&_.startsWith("@break"))z+=L[0].length;else{if(W)W.content+=K[z];z++}}if(W)q.push(W);return{fullMatch:$.slice(Z,G+10),expression:Q.expression,cases:q,start:Z,end:G+10}}var t6=()=>{};var e6=()=>{};var n$=C(()=>{t6();e6()});function sQ($,Z,J){let Y=$,Q=!0;while(Q){Q=!1;let X=Y.match(/@switch\s*\(/);if(!X||X.index===void 0)break;let G=X.index,K=i$(Y,G);if(!K)break;try{let q;if(e(K.expression))q=$0(K.expression,Object.keys(Z))(...Object.values(Z));else q=X0(K.expression,Z);let z="",W=!1;for(let U of K.cases)if(U.type==="default"){if(!W)z=U.content.trim()}else try{let _;if(U.value&&e(U.value))_=$0(U.value,Object.keys(Z))(...Object.values(Z));else if(U.value)_=X0(U.value,Z);if(q===_){z=U.content.trim(),W=!0;break}}catch{continue}Y=Y.substring(0,G)+z+Y.substring(K.end),Q=!0}catch(q){let z=q instanceof Error?q.message:String(q),W=s("Switch",`Error evaluating @switch expression: ${z}`,p.EVALUATION_ERROR);Y=Y.substring(0,G)+W+Y.substring(K.end);break}}return Y}function L1($,Z,J){let Y=$;Y=sQ(Y,Z,J);{let X=!0;while(X){X=!1;let G=Y.match(/@unless\s*\(/);if(!G||G.index===void 0)break;let K=G.index,q=e0(Y,K+7);if(!q)break;let z=q.endPos,W=H1(Y,"unless","endunless",z);if(W===-1){console.warn(`[stx] @unless directive at position ${K} has no matching @endunless \u2014 the block was skipped. Check for typos or missing closers.`);break}let U=Y.slice(z,W),_=q.expression,j=-1;{let O=0,F=/@(?:if|unless)\s*\(/g,L=/@(?:endif|endunless)(?![a-z])/g,H=/@else(?![a-z])/g,V=[],A;while((A=F.exec(U))!==null)V.push({pos:A.index,type:"open"});while((A=L.exec(U))!==null)V.push({pos:A.index,type:"close"});while((A=H.exec(U))!==null)V.push({pos:A.index,type:"else"});V.sort((w,N)=>w.pos-N.pos);for(let w of V)if(w.type==="open")O++;else if(w.type==="close")O--;else if(w.type==="else"&&O===0){j=w.pos;break}}let B;if(j!==-1){let O=U.slice(0,j),F=U.slice(j+5);B=`@if (${_})${F}@else ${O}@endif`}else B=`@if (!(${_}))${U}@endif`;Y=Y.substring(0,K)+B+Y.substring(W+10),X=!0}}Y=s$(Y,Z,J),Y=r$(Y,Z,J),Y=o$(Y,Z);let Q=()=>{let X=c$(Y);if(X.length===0)return!1;for(let G=X.length-1;G>=0;G--){let K=X[G];try{let q="",z=!1;for(let W of K.branches){if(z)break;if(W.type==="else")q=W.content,z=!0;else try{let U;if(W.condition&&e(W.condition))U=$0(W.condition,Object.keys(Z))(...Object.values(Z));else if(W.condition)U=X0(W.condition,Z);if(U)q=W.content,z=!0}catch(U){q=s(W.type==="if"?"If":"Elseif",`Error in @${W.type}(${W.condition}): ${U instanceof Error?U.message:String(U)}`,p.EVALUATION_ERROR),z=!0}}Y=Y.substring(0,K.start)+q+Y.substring(K.end)}catch(q){let z=q instanceof Error?q.message:String(q),W=s("If",`Error processing @if block: ${z}`,p.EVALUATION_ERROR);Y=Y.substring(0,K.start)+W+Y.substring(K.end)}}return!0};while(Q());return Y}function $2($){let Z=0;while(Z<$.length&&/\s/.test($[Z]))Z++;if($[Z]!=="(")return null;Z++;while(Z<$.length&&/\s/.test($[Z]))Z++;let J=$[Z];if(J!=="'"&&J!=='"')return null;Z++;let Y=[];while(Z<$.length){let Q=$[Z];if(Q==="\\"&&Z+1<$.length){Y.push($[Z+1]),Z+=2;continue}if(Q===J){Z++;break}Y.push(Q),Z++}while(Z<$.length&&/\s/.test($[Z]))Z++;if($[Z]!==")")return null;return Z++,{value:Y.join(""),consumed:Z}}function o$($,Z){let J=$;function Y(K,q,z,W){let U=1,_=W,j=new RegExp(`@${q}(?:\\s*\\(|\\s|$)`,"g"),B=new RegExp(`@${z}(?![a-z])`,"g");while(_<K.length&&U>0){j.lastIndex=_,B.lastIndex=_;let O=j.exec(K),F=B.exec(K),L=O?O.index:1/0,H=F?F.index:1/0;if(L<H)U++,_=L+O[0].length;else if(H<1/0){if(U--,U===0)return H;_=H+F[0].length}else break}return-1}function Q(K,q,z){let W=0,U=new RegExp(`@${q}(?:\\s*\\(|\\s|$)`,"g"),_=new RegExp(`@${z}(?![a-z])`,"g"),j=/@else(?![a-z])/g,B=[],O;while((O=U.exec(K))!==null)B.push({pos:O.index,type:"open"});while((O=_.exec(K))!==null)B.push({pos:O.index,type:"close"});while((O=j.exec(K))!==null)B.push({pos:O.index,type:"else"});B.sort((F,L)=>F.pos-L.pos);for(let F of B)if(F.type==="open")W++;else if(F.type==="close")W--;else if(F.type==="else"&&W===0)return F.pos;return-1}{let K=!0;while(K){K=!1;let q=J.match(/@auth(?:\s*\(|\s|(?=\n))/);if(!q||q.index===void 0)break;let z=q.index,W,U,_=J.slice(z+5),j=$2(_);if(j)W=j.value,U=z+5+j.consumed;else U=z+5;let B=Y(J,"auth","endauth",U);if(B===-1){console.warn(`[stx] @auth directive at position ${z} has no matching @endauth \u2014 the block was skipped.`);break}let O=J.slice(U,B),F=Q(O,"auth","endauth"),L;if(!Z.auth)L=!1;else L=W?t0(`auth?.check && auth?.user?.[${W}]`,Z):t0("auth?.check",Z);let H;if(F!==-1){let V=O.slice(0,F),A=O.slice(F+5);H=L?V:A}else H=L?O:"";J=J.substring(0,z)+H+J.substring(B+8),K=!0}}{let K=!0;while(K){K=!1;let q=J.match(/@guest(?:\s*\(|\s|(?=\n))/);if(!q||q.index===void 0)break;let z=q.index,W,U,_=J.slice(z+6),j=$2(_);if(j)W=j.value,U=z+6+j.consumed;else U=z+6;let B=Y(J,"guest","endguest",U);if(B===-1){console.warn(`[stx] @guest directive at position ${z} has no matching @endguest \u2014 the block was skipped.`);break}let O=J.slice(U,B),F=Q(O,"guest","endguest"),L;if(!Z.auth)L=!0;else L=W?t0(`!auth?.check || !auth?.user?.[${W}]`,Z):t0("!auth?.check",Z);let H;if(F!==-1){let V=O.slice(0,F),A=O.slice(F+5);H=L?V:A}else H=L?O:"";J=J.substring(0,z)+H+J.substring(B+9),K=!0}}function X(K,q,z){if(Z.userCan&&typeof Z.userCan[K]==="boolean")return Z.userCan[K];if(Z.permissions?.check&&typeof Z.permissions.check==="function")try{let W=[K];if(q)W.push(q);if(z){let U=t0(z,Z);W.push(U)}return Z.permissions.check(...W)}catch{return!1}return!1}function G(K){let q=K.match(/^\s*\(\s*'([^']*)'(?:,\s*'([^']*)')?(?:,\s*([^)]*))?\)/);if(!q)return null;return{ability:q[1],type:q[2],id:q[3]?.trim(),paramsEnd:q[0].length}}for(let K of["can","cannot"]){let q=`end${K}`,z=K==="can"?"elsecan":"elsecannot",W=!0;while(W){W=!1;let U=J.match(new RegExp(`@${K}\\s*\\(`));if(!U||U.index===void 0)break;let _=U.index,j=J.slice(_+`@${K}`.length),B=G(j);if(!B)break;let O=_+`@${K}`.length+B.paramsEnd,F=Y(J,K,q,O);if(F===-1){console.warn(`[stx] @${K} directive at position ${_} has no matching @${q} \u2014 the block was skipped.`);break}let L=J.slice(O,F),H=[],V=0,A=new RegExp(`@${K}\\s*\\(`,"g"),w=new RegExp(`@${q}(?![a-z])`,"g"),N=new RegExp(`@${z}\\s*\\(`,"g"),R=/@else(?![a-z])/g,T=[],I;while((I=A.exec(L))!==null)T.push({pos:I.index,type:"open"});while((I=w.exec(L))!==null)T.push({pos:I.index,type:"close"});while((I=N.exec(L))!==null)T.push({pos:I.index,type:"elseDirective"});while((I=R.exec(L))!==null)T.push({pos:I.index,type:"else"});T.sort((b,D)=>b.pos-D.pos);for(let b of T){if(b.type==="open"){V++;continue}if(b.type==="close"){V--;continue}if(V===0)H.push(b)}let M=[],E=0;for(let b=0;b<H.length;b++){let D=H[b];if(M.push({content:L.slice(E,D.pos),ability:void 0}),D.type==="elseDirective"){let x=L.slice(D.pos+`@${z}`.length),h=G(x);if(h){M[M.length-1]={content:L.slice(E,D.pos)},E=D.pos+`@${z}`.length+h.paramsEnd,M.push({content:"",ability:h.ability,type:h.type,id:h.id}),M.pop();let l=H[b+1],_0=l?l.pos:L.length;M.push({content:L.slice(E,_0),ability:h.ability,type:h.type,id:h.id}),E=_0}}else E=D.pos+5}if(E<L.length){let b=M[M.length-1];if(H.length>0&&H[H.length-1].type==="else")M.push({content:L.slice(E),isFinalElse:!0});else if(M.length===0)M.push({content:L.slice(E)})}let k=X(B.ability,B.type,B.id),y=K==="can"?k:!k,S="";if(y)S=M[0]?.content||"";else{let b=!1;for(let D=1;D<M.length;D++){let x=M[D];if(x.isFinalElse){S=x.content,b=!0;break}if(x.ability){let h=X(x.ability,x.type,x.id);if(K==="can"?h:!h){S=x.content,b=!0;break}}}if(!b&&M.length>0){let D=M[M.length-1];if(D.isFinalElse)S=D.content}}J=J.substring(0,_)+S+J.substring(F+`@${q}`.length),W=!0}}return J}function s$($,Z,J){let Y=$;function Q(X,G,K,q,z){let W=!0;while(W){W=!1;let U=new RegExp(`@${G}\\s*\\(`),_=X.match(U);if(!_||_.index===void 0)break;let j=_.index,B=e0(X,j+`@${G}`.length);if(!B)break;let O=B.endPos,F=H1(X,G,K,O);if(F===-1){console.warn(`[stx] @${G} directive at position ${j} has no matching @${K} \u2014 the block was skipped.`);break}let L=X.slice(O,F),H=B.expression,V=-1,A=0,w=0;while(w<L.length){let N=L.indexOf("@",w);if(N===-1)break;let R=L.substring(N);if(/^@(?:if|unless|isset|empty)\s*\(/.test(R)){A++,w=N+1;continue}if(/^@(?:endif|endunless|endisset|endempty)(?![a-z])/.test(R)){A--,w=N+1;continue}if(A===0&&/^@else(?![a-z])/.test(R)){V=N;break}w=N+1}try{let N=q(H.trim()),R;if(V!==-1){let T=L.slice(0,V),I=L.slice(V+5);R=N?T:I}else R=N?L:"";X=X.substring(0,j)+R+X.substring(F+`@${K}`.length),W=!0}catch(N){let R=N instanceof Error?N.message:String(N),T=s(z,`Error processing @${G} directive: ${R}`,p.EVALUATION_ERROR);X=X.substring(0,j)+T+X.substring(F+`@${K}`.length);break}}return X}return Y=Q(Y,"isset","endisset",(X)=>{let G=t0(X,Z);return G!==void 0&&G!==null},"Isset"),Y=Q(Y,"empty","endempty",(X)=>{let G=t0(X,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"),Y}function r$($,Z,J){let Y=$,Q="development";function X(G,K,q,z){let W=new RegExp(`@${K}(?![a-z])`,"g"),U=new RegExp(`@${q}(?![a-z])`,"g"),_=new RegExp(`^@${K}(?![a-z])`),j=new RegExp(`^@${q}(?![a-z])`),B=G,O=!0;while(O){O=!1,W.lastIndex=0;let F=W.exec(B);if(!F)break;let L=F.index,H=L+F[0].length;if(K==="env"){let k=B.substring(H).match(/^\s*\(\s*(['"])([^'"]+)\1\s*\)/);if(!k)break;H+=k[0].length,z=Q===k[2]}let V=1,A=H,w=-1;while(V>0&&A<B.length){W.lastIndex=A,U.lastIndex=A;let k=W.exec(B),y=U.exec(B),S=k?k.index:1/0,b=y?y.index:1/0;if(S<b)V++,A=S+k[0].length;else if(b<1/0){if(V--,V===0){w=b;break}A=b+y[0].length}else break}if(w===-1){console.warn(`[stx] @${K} directive at position ${L} has no matching @${q} \u2014 the block was skipped.`);break}let N=B.substring(H,w),R=-1,T=0,I=0;while(I<N.length){let k=N.indexOf("@",I);if(k===-1)break;let y=N.substring(k);if(_.test(y)){T++,I=k+1;continue}if(j.test(y)){T--,I=k+1;continue}if(T===0&&/^@else(?![a-z])/.test(y)){R=k;break}I=k+1}let M;if(R!==-1){let k=N.slice(0,R),y=N.slice(R+5);M=z?k:y}else M=z?N:"";let E=`@${q}`.length;B=B.substring(0,L)+M+B.substring(w+E),O=!0}return B}return Y=X(Y,"env","endenv",!1),Y=X(Y,"production","endproduction",Q==="production"),Y=X(Y,"development","enddevelopment",Q==="development"),Y=X(Y,"staging","endstaging",Q==="staging"),Y=X(Y,"testing","endtesting",Q==="testing"),Y}var K9=C(()=>{r6();c0();n$();A0()});function Y2($=16){let Z=new Uint8Array($);return crypto.getRandomValues(Z),btoa(String.fromCharCode(...Z))}function q9($,Z){if(!$)return Z?.nonceGenerator?.()??Y2();let J=Z2.get($);if(!J)J=Z?.nonceGenerator?.()??Y2(),Z2.set($,J);return J}function rQ($,Z){let J=[];for(let[Y,Q]of Object.entries($)){if(Q===void 0||Q===null)continue;if(typeof Q==="boolean"){if(Q)J.push(Y);continue}if(Array.isArray(Q)){let X=[...Q];if(Z&&(Y==="script-src"||Y==="style-src"))X=X.filter((G)=>!G.startsWith("'nonce-")),X.push(`'nonce-${Z}'`);if(X.length>0)J.push(`${Y} ${X.join(" ")}`)}}return J.join("; ")}function J2($,Z){return`<meta http-equiv="Content-Security-Policy" content="${rQ($,Z).replace(/&/g,"&").replace(/"/g,""")}">`}function X2($,Z,J){if(!Z.enabled||!Z.addMetaTag)return $;if($.includes('http-equiv="Content-Security-Policy"'))return $;if(!$.includes("<head>")&&!$.includes("<head "))return $;let Y=Z.useNonce?q9(J,Z):void 0,Q=J2(Z.directives,Y);return $.replace(/<head([^>]*)>/,`<head$1>
|
|
2463
|
-
${Q}`)}function
|
|
2464
|
-
${
|
|
2465
|
-
${
|
|
2466
|
-
`),Y=[{obj:Z,indent:-1}];for(let Q of J){let X=Q.replace(/#.*$/,"").trimEnd();if(!X.trim())continue;let G=X.search(/\S/);if(G===-1)continue;while(Y.length>1&&Y[Y.length-1].indent>=G)Y.pop();let K=Y[Y.length-1].obj,q=X.match(/^(\s*)(\S[^:]*):\s*(.*)$/);if(q){let[,,z,W]=q,U=z.trim(),_=W.trim();if(_==="")K[U]={},Y.push({obj:K[U],indent:G});else K[U]=zG(_)}}return Z}function zG($){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 J=Number($);if(!Number.isNaN(J))return J;return $}function UG($){switch($){case"yaml":return".yaml";case"yml":return".yml";case"js":return".js";case"json":default:return".json"}}function _G($,Z){for(let J of $){let Y=J.trim(),Q=Y.match(/^\{(\d+)\}\s*(.*)$/);if(Q){let G=Number.parseInt(Q[1],10);if(Z===G)return Q[2];continue}let X=Y.match(/^\[(\d+),(\d+|\*)\]\s*(.*)$/);if(X){let G=Number.parseInt(X[1],10),K=X[2]==="*"?Number.POSITIVE_INFINITY:Number.parseInt(X[2],10);if(Z>=G&&Z<=K)return X[3];continue}}if($.length===2)return Z===1?$[0].trim():$[1].trim();if(Z<$.length)return $[Z].trim();return $[$.length-1].trim()}function BG($,Z={}){return N2($,Z)}function N2($,Z){let J="",Y=0;while(Y<$.length)if($[Y]==="{"){let Q=jG($,Y);if(Q===-1){J+=$[Y],Y++;continue}let X=$.slice(Y+1,Q);J+=OG(X,Z),Y=Q+1}else if($[Y]==="'"&&Y+1<$.length)if($[Y+1]==="'")J+="'",Y+=2;else if($[Y+1]==="{"||$[Y+1]==="}")J+=$[Y+1],Y+=2;else J+=$[Y],Y++;else J+=$[Y],Y++;return J}function jG($,Z){let J=0;for(let Y=Z;Y<$.length;Y++)if($[Y]==="{")J++;else if($[Y]==="}"){if(J--,J===0)return Y}return-1}function OG($,Z){let J=HG($);if(J.length===0)return`{${$}}`;let Y=J[0].trim(),Q=Z[Y];if(J.length===1)return Q!==void 0?String(Q):`{${Y}}`;switch(J[1].trim().toLowerCase()){case"plural":return LG(Q,J.slice(2).join(","),Z);case"select":return VG(Q,J.slice(2).join(","));case"selectordinal":return wG(Q,J.slice(2).join(","));case"number":return NG(Q,J[2]?.trim());case"date":return RG(Q,J[2]?.trim());case"time":return TG(Q,J[2]?.trim());default:return Q!==void 0?String(Q):`{${$}}`}}function HG($){let Z=[],J="",Y=0;for(let Q=0;Q<$.length;Q++){let X=$[Q];if(X==="{")Y++,J+=X;else if(X==="}")Y--,J+=X;else if(X===","&&Y===0)Z.push(J),J="";else J+=X}if(J)Z.push(J);return Z}function LG($,Z,J){let Y=Number($)||0,Q=Y4(Z),X=`=${Y}`;if(Q[X])return e$(Q[X],Y,J);let G=FG(Y);if(Q[G])return e$(Q[G],Y,J);if(Q.other)return e$(Q.other,Y,J);return String(Y)}function e$($,Z,J){let Y=$.replace(/#/g,String(Z));return N2(Y,J)}function FG($){let Z=Math.abs($),J=Math.floor(Z),Y=String($).includes(".")?String($).split(".")[1].length:0;if(J===1&&Y===0)return"one";return"other"}function VG($,Z){let J=String($||""),Y=Y4(Z);if(Y[J])return Y[J];return Y.other||String($)}function wG($,Z){let J=Number($)||0,Y=Y4(Z),Q=AG(J);if(Y[Q])return Y[Q].replace(/#/g,String(J));if(Y.other)return Y.other.replace(/#/g,String(J));return String(J)}function AG($){let Z=Math.abs($),J=Z%10,Y=Z%100;if(J===1&&Y!==11)return"one";if(J===2&&Y!==12)return"two";if(J===3&&Y!==13)return"few";return"other"}function Y4($){let Z={},J=/(\w+|=\d+)\s*\{([^{}]*(?:\{[^{}]*\}[^{}]*)*)\}/g,Y=J.exec($);while(Y!==null)Z[Y[1]]=Y[2],Y=J.exec($);return Z}function NG($,Z){let J=Number($);if(Number.isNaN(J))return String($);switch(Z){case"integer":return Math.floor(J).toLocaleString();case"percent":return`${(J*100).toFixed(0)}%`;case"currency":return J.toLocaleString(void 0,{style:"currency",currency:"USD"});default:return J.toLocaleString()}}function RG($,Z){let J=$ instanceof Date?$:new Date(String($));if(Number.isNaN(J.getTime()))return String($);let Y={};switch(Z){case"short":Y.dateStyle="short";break;case"medium":Y.dateStyle="medium";break;case"long":Y.dateStyle="long";break;case"full":Y.dateStyle="full";break;default:Y.dateStyle="medium"}return J.toLocaleDateString(void 0,Y)}function TG($,Z){let J=$ instanceof Date?$:new Date(String($));if(Number.isNaN(J.getTime()))return String($);let Y={};switch(Z){case"short":Y.timeStyle="short";break;case"medium":Y.timeStyle="medium";break;case"long":Y.timeStyle="long";break;case"full":Y.timeStyle="full";break;default:Y.timeStyle="short"}return J.toLocaleTimeString(void 0,Y)}function MG($){return/\{[^}]+,\s*(?:plural|select|selectordinal|number|date|time)\s*,/.test($)}function V2($,Z,J=!0,Y={}){let Q=$.split("."),X=Z;for(let K of Q){if(X===void 0||X===null)break;X=X[K]}if(X===void 0||X===null)return J?$:"";let G=String(X);if(MG(G))return BG(G,Y);if(G.includes("|")&&"count"in Y){let K=Number(Y.count),q=G.split("|");G=_G(q,K)}for(let[K,q]of Object.entries(Y)){let z=K.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");G=G.replace(new RegExp(`:${z}`,"g"),String(q))}return G}async function R2($,Z,J,Y){let Q=$,X=/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\})\s*)?\)([\s\S]*?)@endtranslate/g,G={...Z4,...Y.i18n},K=await qG(G.locale,Y);Z.__translations=K,Z.__locale=G.locale,Z.__i18nConfig=G,Q=await w2(Q,X,async(W,U,_,j,B)=>{try{let O={};if(_)try{let L=[()=>JSON.parse(_),()=>{let H=`{"data":${_}}`,V=JSON.parse(H);return typeof V.data==="object"?V.data:{}},()=>{return O0(_,Z)}];for(let H of L)try{if(O=H(),Object.keys(O).length>0)break}catch{}}catch(L){if(Y.debug)console.error("Error parsing parameters for @translate directive:",L)}return V2(U,K,G.fallbackToKey,O)||j.trim()}catch(O){if(Y.debug)console.error("Error processing @translate directive:",O);return s("Translate",`Error in @translate('${U}'): ${O instanceof Error?O.message:String(O)}`,p.EVALUATION_ERROR)}});let q=/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]+\})\s*)?\)/g;if(Y.debug){console.warn(`Processing translations in template. Sections: ${Q.includes("<h2>Translation with Parameters</h2>")?"Parameters section found":"Parameters section missing"}`);let W=[...Q.matchAll(q)];console.warn(`Found ${W.length} @translate matches`),W.forEach((U,_)=>console.warn(`Match ${_}: ${U[0]}, Key: ${U[1]}, Params: ${U[2]||"none"}`))}return Q=await w2(Q,/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\})\s*)?\)/g,async(W,U,_,j)=>{try{let B={};if(_)try{let O=[()=>JSON.parse(_),()=>{let F=`{"data":${_}}`,L=JSON.parse(F);return typeof L.data==="object"?L.data:{}},()=>{return O0(_,Z)}];for(let F of O)try{if(B=F(),Object.keys(B).length>0)break}catch{}}catch(O){if(Y.debug)console.error("Error parsing parameters for @translate directive:",O)}return V2(U,K,G.fallbackToKey,B)}catch(B){if(Y.debug)console.error("Error processing @translate directive:",B);return s("Translate",`Error in @translate('${U}'): ${B instanceof Error?B.message:String(B)}`,p.EVALUATION_ERROR)}}),Q}async function w2($,Z,J){let Y=[];return $.replace(Z,(X,...G)=>{let K=J(X,...G).then((q)=>({match:X,replacement:q}));return Y.push(K),X}),(await Promise.all(Y)).reduce((X,{match:G,replacement:K})=>X.replace(G,K),$)}var Z4,$4,q5,t$;var T2=C(()=>{c0();A0();Z4={defaultLocale:"en",locale:"en",translationsDir:"translations",format:"yaml",fallbackToKey:!0,cache:!0},$4={},q5={},t$={}});var S2={};r(S2,{processLoops:()=>J4});function EG($,Z){let J=/@component\s*\(/g,Y=$,Q,X=[];while((Q=J.exec(Y))!==null){let G=Q.index,K=G+Q[0].length-1,q=1,z=K+1;while(z<Y.length&&q>0){if(Y[z]==="(")q++;else if(Y[z]===")"){if(q--,q===0)break}z++}if(q!==0)continue;let W=Y.substring(K+1,z),U=z+1,_=W.match(/^\s*['"]([^'"]+)['"]/);if(!_)continue;let j=_[1],B=W.slice(_[0].length),O=B.match(/^\s*,\s*/);if(!O)continue;let F=B.slice(O[0].length).trim();if(!F)continue;try{let L=O0(F,Z),H=JSON.stringify(L),V=`@component('${j}', ${H})`;X.push({start:G,end:U,replacement:V})}catch{continue}}for(let G=X.length-1;G>=0;G--){let{start:K,end:q,replacement:z}=X[G];Y=Y.substring(0,K)+z+Y.substring(q)}return Y}function U9($,Z,J){let Y=$,Q=new RegExp(`${Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\(`),X;while((X=Q.exec(Y))!==null){let G=X.index,K=G+X[0].length-1,q=1,z=K+1,W=null,U=!1;while(z<Y.length&&q>0){let B=Y[z];if(U){U=!1,z++;continue}if(B==="\\"&&W){U=!0,z++;continue}if(W){if(B===W)W=null;z++;continue}if(B==='"'||B==="'"||B==="`"){W=B,z++;continue}if(B==="(")q++;else if(B===")"){if(q--,q===0)break}z++}if(q!==0)break;let _=Y.substring(K+1,z),j=J(_);Y=Y.substring(0,G)+j+Y.substring(z+1)}return Y}function kG($,Z){let J=$;return J=J.replace(/:([a-zA-Z_][a-zA-Z0-9_-]*)(?=\s+[^=]|\s*\/?>|\s*$)/g,(Y,Q)=>{if(Q in Z)return`:${Q}="${Q}"`;return Y}),J=J.replace(/:([a-zA-Z_][a-zA-Z0-9_-]*)\s*=\s*"([^"]*)"/g,(Y,Q,X)=>{try{let G=Object.keys(Z),K=Object.values(Z);i1(X);let z=$0(X,G)(...K),U=JSON.stringify(z).replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">");return`__stx_${Q}="${U}"`}catch(G){return Y}}),J}function bG($,Z){let J=$;return J=U9(J,"@break",(Y)=>{try{let X=`!!(${Y.trim()})`,G;if(e(X)){let K=$0(X,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean(X0(X,Z));return G?_9:""}catch{return""}}),J=U9(J,"@continue",(Y)=>{try{let X=`!!(${Y.trim()})`,G;if(e(X)){let K=$0(X,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean(X0(X,Z));return G?B9:""}catch{return""}}),J}function SG($){let Z=$;return Z=Z.replace(/@break(?!\()/g,_9),Z=Z.replace(/@continue(?!\()/g,B9),Z}function M2($){let Z=$.includes(_9),J=Z?$.substring(0,$.indexOf(_9)):$;return{hasBreak:Z,content:J}}function I2($){let Z=$.includes(B9),J=Z?$.substring(0,$.indexOf(B9)):$;return{hasContinue:Z,content:J}}function E2($){let Z=$;return Z=U9(Z,"@break",(J)=>{let Y=J.trim();if(!F5(Y))return"";return`\`; if (${Y}) { break; } result += \``}),Z=U9(Z,"@continue",(J)=>{let Y=J.trim();if(!F5(Y))return"";return`\`; if (${Y}) { continue; } result += \``}),Z=Z.replace(/@break(?!\()/g,"`; break; result += `"),Z=Z.replace(/@continue(?!\()/g,"`; continue; result += `"),Z}function yG($){let Z=/@forelse\s*\(/g,J,Y=[],Q=/@foreach\s*\(/g,X=/@endforeach/g,G;while((G=Q.exec($))!==null)Y.push({pos:G.index,delta:1});while((G=X.exec($))!==null)Y.push({pos:G.index,delta:-1});Y.sort((W,U)=>W.pos-U.pos);let K=[],q=0;for(let W of Y)q+=W.delta,K.push({pos:W.pos,depth:q});function z(W){let U=0,_=K.length-1,j=0;while(U<=_){let B=U+_>>1;if(K[B].pos<=W)j=K[B].depth,U=B+1;else _=B-1}return j}while((J=Z.exec($))!==null){if(z(J.index)>0)continue;let W=J.index,U=J.index+J[0].length-1,_=1,j=U+1,B=-1;while(j<$.length&&_>0){if($[j]==="(")_++;else if($[j]===")"){if(_--,_===0){B=j;break}}j++}if(B===-1)continue;let O=$.substring(U+1,B),F=O.indexOf(" as ");if(F===-1)continue;let L=O.substring(0,F).trim(),H=O.substring(F+4).trim(),V=B+1,A=1,w=V,N=/@forelse\s*\(/g,R=/@endforelse/g,T=-1;while(A>0&&w<$.length){N.lastIndex=w,R.lastIndex=w;let S=N.exec($),b=R.exec($);if(!b)break;if(S&&S.index<b.index)A++,w=S.index+S[0].length;else{if(A--,A===0){T=b.index;break}w=b.index+11}}if(T===-1)continue;let I=$.substring(V,T),M=T+11,E=-1,k=0,y=0;while(y<I.length){let S=I.indexOf("@",y);if(S===-1)break;let b=I.substring(S);if(/^@forelse\s*\(/.test(b))k++,y=S+1;else if(b.startsWith("@endforelse"))k--,y=S+11;else if(k===0&&b.startsWith("@empty")){if(I.length<=S+6||!/[a-z]/i.test(I[S+6])){E=S;break}y=S+1}else y=S+1}if(E===-1)continue;return{start:W,end:M,arrayExpr:L,itemVar:H,foreachContent:I.substring(0,E),emptyContent:I.substring(E+6)}}return null}function D2($,Z){let J=$;while(!0){let Y=yG(J);if(!Y)break;let{start:Q,end:X,arrayExpr:G,itemVar:K,foreachContent:q,emptyContent:z}=Y;try{let W;if(e(G))W=$0(G,Object.keys(Z))(...Object.values(Z));else W=X0(G,Z);let U;if(!Array.isArray(W)||W.length===0)U=z;else U=`@foreach (${G} as ${K})${q}@endforeach`;J=J.substring(0,Q)+U+J.substring(X)}catch(W){let U=W instanceof Error?W.message:String(W),_=s("Forelse",`Error in @forelse(${G} as ${K}): ${U}`,p.EVALUATION_ERROR);J=J.substring(0,Q)+_+J.substring(X)}}return J}function J4($,Z,J,Y){let Q=$;Q=D2(Q,Z);function X(q){let z=/@foreach\s*\(/g,W;while((W=z.exec(q))!==null){let U=W.index,_=W.index+W[0].length-1,j=1,B=_+1,O=-1;while(B<q.length&&j>0){if(q[B]==="(")j++;else if(q[B]===")"){if(j--,j===0){O=B;break}}B++}if(O===-1)continue;let F=q.substring(_+1,O),L=F.indexOf(" as ");if(L===-1)continue;let H=U,V=F.substring(0,L),A=F.substring(L+4),w=O+1,N=1,R=w,T=/@foreach\s*\(/g,I=/@endforeach/g;while(N>0&&R<q.length){T.lastIndex=R,I.lastIndex=R;let M=T.exec(q),E=I.exec(q);if(!E)break;if(M&&M.index<E.index)N++,R=M.index+M[0].length;else{if(N--,N===0){let k=q.substring(w,E.index),y=E.index+11;return{start:H,end:y,arrayExpr:V,itemVar:A,content:k}}R=E.index+11}}}return null}function G(q,z){let W=q;while(!0){let U=X(W);if(!U)break;let{start:_,end:j,arrayExpr:B,itemVar:O,content:F}=U;try{let L=B.trim(),H;if(e(L))H=$0(L,Object.keys(z))(...Object.values(z));else H=X0(L,z);let V=!1;if(!Array.isArray(H))if(H instanceof Map)H=Array.from(H),V=!0;else if(H instanceof Set)H=Array.from(H);else if(typeof H==="string")H=Array.from(H);else if(H&&typeof H==="object"&&!(H instanceof Date)&&!(H instanceof RegExp))H=Object.entries(H),V=!0;else{let M=s("Foreach",`Error in @foreach: ${L} is not iterable`,p.TYPE_ERROR);W=W.substring(0,_)+M+W.substring(j);continue}let A=Y?.loops?.useAltLoopVariable??DG,w=O.trim(),N=null,R;if(w.includes("=>")){let M=w.split("=>").map((E)=>E.trim());if(M.length===2)N=M[0],R=M[1];else R=w}else R=w;let T="",I=H;for(let M=0;M<I.length;M++){let E=I[M],k={index:M,iteration:M+1,first:M===0,last:M===I.length-1,count:I.length},y={...z,loop:k,$loop:k};if(R.startsWith("[")&&R.endsWith("]")){let x=R.slice(1,-1).split(",").map((h)=>h.trim());if(Array.isArray(E))x.forEach((h,l)=>{if(h)y[h]=E[l]});else y[R]=E}else y[R]=E;if(N)if(V&&Array.isArray(E)&&E.length===2)y[N]=E[0],y[R]=E[1];else y[N]=M;let S=bG(F,y),b=I2(S);if(b.hasContinue){T+=b.content;continue}let D=M2(S);if(D.hasBreak){T+=D.content;break}if(S=D2(S,y),S=G(S,y),S=L1(S,y,J),S=SG(S),D=M2(S),D.hasBreak){T+=D.content;break}if(b=I2(S),b.hasContinue){T+=b.content;continue}S=o0(S,y,J),S=kG(S,y),S=EG(S,y),T+=S}W=W.substring(0,_)+T+W.substring(j)}catch(L){let H=s("Foreach",`Error in @foreach(${B.trim()} as ${O.trim()}): ${L instanceof Error?L.message:String(L)}`,p.EVALUATION_ERROR);W=W.substring(0,_)+H+W.substring(j)}}return W}Q=G(Q,Z),Q=b2(Q,Z,J,Y);let K=Y?.loops?.maxWhileIterations??IG;return Q=vG(Q,Z,K),Q}function k2($){return F5($)}function b2($,Z,J,Y){let Q=$,X=!0;while(X){X=!1;let G=Q.match(/@for\s*\(/);if(!G||G.index===void 0)break;let K=G.index,q=K+G[0].length-1,z=I0(Q,"(",")",q);if(z===-1)break;let W=Q.slice(q+1,z),U=z+1,_=G9(Q.slice(K),"for","endfor");if(_.length===0)break;let j=_[0].content,B=K+_[0].end;if(!k2(W)){let O=s("For",`Unsafe expression in @for: ${W}`,p.UNSAFE_EXPRESSION);Q=Q.substring(0,K)+O+Q.substring(B),X=!0;continue}try{let O=CG(W),F=/@(?:for|foreach|if|unless)\s*\(/.test(j);if(O.length>0&&F){let N=PG({forExpr:W,content:j,iterVarNames:O,context:Z,filePath:J,options:Y});Q=Q.substring(0,K)+N+Q.substring(B),X=!0;continue}let L=Object.keys(Z),H=Object.values(Z),V=j.replace(/`/g,"\\`").replace(/\$\{/g,"\\${").replace(/\{\{([^}]+)\}\}/g,(N,R)=>{return`\${${R}}`});V=E2(V);let w=Function(...L,`
|
|
2463
|
+
</script>`}function s6($,Z,J){if(o6=0,!mQ($))return $;let Y=PQ($);if(Y.length===0)return $;let Q=dQ($,Y),X=hQ(Y),G=Q.lastIndexOf("</body>");if(G!==-1)Q=Q.slice(0,G)+X+`
|
|
2464
|
+
`+Q.slice(G);else Q+=X;return Q}function dQ($,Z){let J=$;for(let Y of Z){let X=new RegExp(`<[a-z][a-z0-9-]*\\s+[^>]*data-stx-scope="([^"]*)"[^>]*x-data\\s*=\\s*["']${K9(Y.stateExpr)}["']`,"gi").exec(J);if(X)Y.id=X[1],Y.selector=`[data-stx-scope="${Y.id}"]`;else{let K=new RegExp(`<[a-z][a-z0-9-]*\\s+[^>]*x-data\\s*=\\s*["']${K9(Y.stateExpr)}["'][^>]*data-stx-scope="([^"]*)"`,"gi").exec(J);if(K)Y.id=K[1],Y.selector=`[data-stx-scope="${Y.id}"]`;else J=J.replace(new RegExp(`(<[a-z][a-z0-9-]*\\s+)([^>]*)(x-data\\s*=\\s*"${K9(Y.stateExpr)}")([^>]*>)`,"gi"),`$1data-stx-scope="${Y.id}" $2$3$4`),J=J.replace(new RegExp(`(<[a-z][a-z0-9-]*\\s+)([^>]*)(x-data\\s*=\\s*'${K9(Y.stateExpr)}')([^>]*>)`,"gi"),`$1data-stx-scope="${Y.id}" $2$3$4`)}}return J=J.replace(/\s*x-data\s*=\s*"([^"]*)"/g,' data-stx-xdata="$1"'),J=J.replace(/\s*x-data\s*=\s*'([^']*)'/g," data-stx-xdata='$1'"),J=J.replace(/\s*x-init\s*=\s*"[^"]*"/g,""),J=J.replace(/\s*x-init\s*=\s*'[^']*'/g,""),J}function mQ($){return/x-data\s*=\s*["']/.test($)}var o6=0,CQ=0;import uQ from"fs";import i$ from"path";import{createHighlighter as pQ}from"ts-syntax-highlighter";async function lQ($,Z={}){try{if(!await c($))throw Error(`Markdown file not found: ${$}`);let Y=(await uQ.promises.stat($)).mtime.getTime();if(Z.cache&&n$.has($)){let U=n$.get($);if(U.updatedAt>=Y)return{content:U.content,data:U.data}}let Q=await Bun.file($).text(),{data:X,content:G}=R7(Q),K=Z.markdown||m$.markdown||{enabled:!0,syntaxHighlighting:{enabled:!0,serverSide:!0,defaultTheme:"github-dark",highlightUnknownLanguages:!0}},z=n1(G,{gfm:!0});if(K.syntaxHighlighting?.enabled&&K.syntaxHighlighting?.serverSide)z=await cQ(z,K.syntaxHighlighting?.defaultTheme||"github-dark",K.syntaxHighlighting?.highlightUnknownLanguages||!1);let W={content:z,data:X||{}};if(Z.cache)n$.set($,{...W,updatedAt:Y});return W}catch(J){if(Z.debug)console.error(`Error reading/parsing markdown file ${$}:`,J);let Y=J instanceof Error?J.message:String(J);return{content:X0("Markdown File",`Error reading/parsing markdown file: ${Y}`,$,"",0,""),data:{}}}}async function cQ($,Z,J){let Y=/<pre><code( class="language-([^"]+)")?>([^<]+)<\/code><\/pre>/g;if(!q9)try{q9=await pQ({theme:Z||"github-dark",cache:!0})}catch(K){return console.error("Failed to initialize ts-syntax-highlighter:",K),$}let Q=async(K,q,z,W)=>{let U=W.replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&").replace(/"/g,'"').replace(/'/g,"'"),_=z||(J?"text":"");if(!_)return K;try{if(!q9.getSupportedLanguages().includes(_))return K;return(await q9.highlight(U,_,{theme:Z})).html}catch(j){console.error(`Error highlighting code block with language ${z}:`,j)}return K},X=$,G=$.matchAll(Y);for(let K of G){let[q,z,W,U]=K,_=await Q(q,z,W,U);X=X.replace(q,_)}return X}async function r6($,Z,J="",Y={}){return await iQ($,/@markdown-file\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\}))?\)/g,async(G,K,q,z)=>{try{let W=K;if(!i$.isAbsolute(K))W=i$.resolve(i$.dirname(J),K);let U={};if(q)try{try{U=JSON.parse(q)}catch{if(Y.debug)console.warn("Using safer alternative for parsing JS object literal");let H=q.replace(/^\s*\{|\}\s*$/g,"").trim().split(/,(?=\s*\w+\s*:)/);for(let V of H){let A=V.indexOf(":");if(A>0){let w=V.substring(0,A).trim(),N=V.substring(A+1).trim(),R=N.startsWith('"')&&N.endsWith('"'),T=N.startsWith("'")&&N.endsWith("'");if(R||T)N=N.substring(1,N.length-1);U[w]=N}}}}catch(L){if(Y.debug)console.error("Error parsing context in @markdown-file directive:",L)}let{content:_,data:j}=await lQ(W,Y),B={...Z,...j,...U},O=_,F=/\{\{([^}]+)\}\}/g;return O=O.replace(F,(L,H)=>{let V=H.trim();return B[V]!==void 0?String(B[V]):L}),O}catch(W){let U=W instanceof Error?W.message:String(W);return X0("Markdown File",`Error including markdown file: ${U}`,J,$,z,G)}})}async function iQ($,Z,J){let Y=[],Q;while((Q=Z.exec($))!==null){let K=Q[0],q=Q.index,z=Q;Y.push(J(...z).then((W)=>({match:K,replacement:W,index:q})))}let X=await Promise.all(Y);X.sort((K,q)=>q.index-K.index);let G=$;for(let{match:K,replacement:q}of X)G=G.replace(K,()=>q);return G}var n$,q9=null;var a6=C(()=>{Q5();A0();n$=new Map});function Z1($,Z){try{let J=$.trim();if(t(J))return e(J,Object.keys(Z))(...Object.values(Z));else return J0(J,Z)}catch{return!1}}var t6=C(()=>{R0()});function Y1($,Z){let J=nQ($,Z);return J.ok?{expression:J.expression,endPos:J.endPos}:null}function nQ($,Z){let J=Z;while(J<$.length&&/\s/.test($[J]))J++;if($[J]!=="(")return{ok:!1,reason:"missing-open-paren",pos:J};let Y=D0($,"(",")",J);if(Y===-1)return{ok:!1,reason:"unclosed-paren",pos:J};return{ok:!0,expression:$.slice(J+1,Y),endPos:Y+1}}function F1($,Z,J,Y){let Q=1,X=Y,G=new RegExp(`@${Z}\\s*\\(`,"g"),K=new RegExp(`@${J}(?![a-z])`,"g");while(X<$.length&&Q>0){G.lastIndex=X,K.lastIndex=X;let q=G.exec($),z=K.exec($),W=q?q.index:1/0,U=z?z.index:1/0;if(W<U)Q++,X=W+q[0].length;else if(U<1/0){if(Q--,Q===0)return U;X=U+z[0].length}else break}return-1}function e6($,Z){let J=$.slice(Z).match(/^@if\s*/);if(!J)return null;let Y=Z+J[0].length,Q=Y1($,Y);if(!Q)return null;let X=Q.endPos,G=F1($,"if","endif",X);if(G===-1)return null;let K=$.slice(X,G),q=[],z=0,W="if",U=Q.expression,_=0,j=0;while(z<K.length){let B=K.indexOf("@",z);if(B===-1)break;z=B;let O=K.substring(B);if(/^@if\s*\(/.test(O)){j++,z++;continue}if(/^@endif(?![a-z])/.test(O)){j--,z+=6;continue}if(j===0){let F=O.match(/^@elseif\s*/);if(F){q.push({type:W,condition:U,content:K.substring(_,z),start:X+_,end:X+z});let L=z+F[0].length,H=Y1(K,L);if(!H){z++;continue}W="elseif",U=H.expression,z=H.endPos,_=z;continue}else if(/^@else(?![a-z])/.test(O)){q.push({type:W,condition:U,content:K.substring(_,z),start:X+_,end:X+z}),W="else",U=void 0,z+=5,_=z;continue}}z++}return q.push({type:W,condition:U,content:K.slice(_),start:X+_,end:X+K.length}),{fullMatch:$.slice(Z,G+6),branches:q,start:Z,end:G+6}}function o$($){let Z=[],J=/@if\s*\(/g,Y=J.exec($);while(Y!==null){if(Z.some((G)=>Y.index>G.start&&Y.index<G.end)){Y=J.exec($);continue}let X=e6($,Y.index);if(X)Z.push(X),J.lastIndex=X.end;Y=J.exec($)}return Z}function W9($,Z,J){let Y=[],Q=new RegExp(`@${Z}\\s*\\(`,"g"),X=Q.exec($);while(X!==null){if(Y.some((O)=>X.index>O.start&&X.index<O.end)){X=Q.exec($);continue}let K=X.index,q=K+X[0].length-1,z=D0($,"(",")",q);if(z===-1){X=Q.exec($);continue}let W=$.slice(q+1,z),U=z+1,_=F1($,Z,J,U);if(_===-1){X=Q.exec($);continue}let j=$.slice(U,_),B=_+`@${J}`.length;Y.push({fullMatch:$.slice(K,B),name:Z,params:W,content:j,start:K,end:B}),Q.lastIndex=B,X=Q.exec($)}return Y}function s$($,Z){let J=$.slice(Z).match(/^@switch\s*/);if(!J)return null;let Y=Z+J[0].length,Q=Y1($,Y);if(!Q)return null;let X=Q.endPos,G=F1($,"switch","endswitch",X);if(G===-1)return null;let K=$.slice(X,G),q=[],z=0,W=null,U=0;while(z<K.length){let _=K.slice(z),j=_.match(/^@switch\s*\(/),B=_.match(/^@endswitch(?![a-z])/);if(j){if(U++,W)W.content+=j[0];z+=j[0].length;continue}if(B){if(U--,W)W.content+=B[0];z+=B[0].length;continue}if(U>0){if(W)W.content+=K[z];z++;continue}let O=_.match(/^@case\s*/),F=_.match(/^@default(?![a-z])/),L=_.match(/^@break(?![a-z])/);if(O&&_.startsWith("@case")){if(W)q.push(W);let H=z+O[0].length,V=Y1(K,H);if(!V){z++;continue}W={type:"case",value:V.expression,content:""},z=V.endPos}else if(F&&_.startsWith("@default")){if(W)q.push(W);W={type:"default",content:""},z+=F[0].length}else if(L&&_.startsWith("@break"))z+=L[0].length;else{if(W)W.content+=K[z];z++}}if(W)q.push(W);return{fullMatch:$.slice(Z,G+10),expression:Q.expression,cases:q,start:Z,end:G+10}}var $2=()=>{};var Z2=()=>{};var r$=C(()=>{$2();Z2()});function aQ($,Z,J){let Y=$,Q=!0;while(Q){Q=!1;let X=Y.match(/@switch\s*\(/);if(!X||X.index===void 0)break;let G=X.index,K=s$(Y,G);if(!K)break;try{let q;if(t(K.expression))q=e(K.expression,Object.keys(Z))(...Object.values(Z));else q=J0(K.expression,Z);let z="",W=!1;for(let U of K.cases)if(U.type==="default"){if(!W)z=U.content.trim()}else try{let _;if(U.value&&t(U.value))_=e(U.value,Object.keys(Z))(...Object.values(Z));else if(U.value)_=J0(U.value,Z);if(q===_){z=U.content.trim(),W=!0;break}}catch{continue}Y=Y.substring(0,G)+z+Y.substring(K.end),Q=!0}catch(q){let z=q instanceof Error?q.message:String(q),W=s("Switch",`Error evaluating @switch expression: ${z}`,p.EVALUATION_ERROR);Y=Y.substring(0,G)+W+Y.substring(K.end);break}}return Y}function V1($,Z,J){let Y=$;Y=aQ(Y,Z,J);{let X=!0;while(X){X=!1;let G=Y.match(/@unless\s*\(/);if(!G||G.index===void 0)break;let K=G.index,q=Y1(Y,K+7);if(!q)break;let z=q.endPos,W=F1(Y,"unless","endunless",z);if(W===-1){console.warn(`[stx] @unless directive at position ${K} has no matching @endunless \u2014 the block was skipped. Check for typos or missing closers.`);break}let U=Y.slice(z,W),_=q.expression,j=-1;{let O=0,F=/@(?:if|unless)\s*\(/g,L=/@(?:endif|endunless)(?![a-z])/g,H=/@else(?![a-z])/g,V=[],A;while((A=F.exec(U))!==null)V.push({pos:A.index,type:"open"});while((A=L.exec(U))!==null)V.push({pos:A.index,type:"close"});while((A=H.exec(U))!==null)V.push({pos:A.index,type:"else"});V.sort((w,N)=>w.pos-N.pos);for(let w of V)if(w.type==="open")O++;else if(w.type==="close")O--;else if(w.type==="else"&&O===0){j=w.pos;break}}let B;if(j!==-1){let O=U.slice(0,j),F=U.slice(j+5);B=`@if (${_})${F}@else ${O}@endif`}else B=`@if (!(${_}))${U}@endif`;Y=Y.substring(0,K)+B+Y.substring(W+10),X=!0}}Y=t$(Y,Z,J),Y=e$(Y,Z,J),Y=a$(Y,Z);let Q=()=>{let X=o$(Y);if(X.length===0)return!1;for(let G=X.length-1;G>=0;G--){let K=X[G];try{let q="",z=!1;for(let W of K.branches){if(z)break;if(W.type==="else")q=W.content,z=!0;else try{let U;if(W.condition&&t(W.condition))U=e(W.condition,Object.keys(Z))(...Object.values(Z));else if(W.condition)U=J0(W.condition,Z);if(U)q=W.content,z=!0}catch(U){q=s(W.type==="if"?"If":"Elseif",`Error in @${W.type}(${W.condition}): ${U instanceof Error?U.message:String(U)}`,p.EVALUATION_ERROR),z=!0}}Y=Y.substring(0,K.start)+q+Y.substring(K.end)}catch(q){let z=q instanceof Error?q.message:String(q),W=s("If",`Error processing @if block: ${z}`,p.EVALUATION_ERROR);Y=Y.substring(0,K.start)+W+Y.substring(K.end)}}return!0};while(Q());return Y}function Y2($){let Z=0;while(Z<$.length&&/\s/.test($[Z]))Z++;if($[Z]!=="(")return null;Z++;while(Z<$.length&&/\s/.test($[Z]))Z++;let J=$[Z];if(J!=="'"&&J!=='"')return null;Z++;let Y=[];while(Z<$.length){let Q=$[Z];if(Q==="\\"&&Z+1<$.length){Y.push($[Z+1]),Z+=2;continue}if(Q===J){Z++;break}Y.push(Q),Z++}while(Z<$.length&&/\s/.test($[Z]))Z++;if($[Z]!==")")return null;return Z++,{value:Y.join(""),consumed:Z}}function a$($,Z){let J=$;function Y(K,q,z,W){let U=1,_=W,j=new RegExp(`@${q}(?:\\s*\\(|\\s|$)`,"g"),B=new RegExp(`@${z}(?![a-z])`,"g");while(_<K.length&&U>0){j.lastIndex=_,B.lastIndex=_;let O=j.exec(K),F=B.exec(K),L=O?O.index:1/0,H=F?F.index:1/0;if(L<H)U++,_=L+O[0].length;else if(H<1/0){if(U--,U===0)return H;_=H+F[0].length}else break}return-1}function Q(K,q,z){let W=0,U=new RegExp(`@${q}(?:\\s*\\(|\\s|$)`,"g"),_=new RegExp(`@${z}(?![a-z])`,"g"),j=/@else(?![a-z])/g,B=[],O;while((O=U.exec(K))!==null)B.push({pos:O.index,type:"open"});while((O=_.exec(K))!==null)B.push({pos:O.index,type:"close"});while((O=j.exec(K))!==null)B.push({pos:O.index,type:"else"});B.sort((F,L)=>F.pos-L.pos);for(let F of B)if(F.type==="open")W++;else if(F.type==="close")W--;else if(F.type==="else"&&W===0)return F.pos;return-1}{let K=!0;while(K){K=!1;let q=J.match(/@auth(?:\s*\(|\s|(?=\n))/);if(!q||q.index===void 0)break;let z=q.index,W,U,_=J.slice(z+5),j=Y2(_);if(j)W=j.value,U=z+5+j.consumed;else U=z+5;let B=Y(J,"auth","endauth",U);if(B===-1){console.warn(`[stx] @auth directive at position ${z} has no matching @endauth \u2014 the block was skipped.`);break}let O=J.slice(U,B),F=Q(O,"auth","endauth"),L;if(!Z.auth)L=!1;else L=W?Z1(`auth?.check && auth?.user?.[${W}]`,Z):Z1("auth?.check",Z);let H;if(F!==-1){let V=O.slice(0,F),A=O.slice(F+5);H=L?V:A}else H=L?O:"";J=J.substring(0,z)+H+J.substring(B+8),K=!0}}{let K=!0;while(K){K=!1;let q=J.match(/@guest(?:\s*\(|\s|(?=\n))/);if(!q||q.index===void 0)break;let z=q.index,W,U,_=J.slice(z+6),j=Y2(_);if(j)W=j.value,U=z+6+j.consumed;else U=z+6;let B=Y(J,"guest","endguest",U);if(B===-1){console.warn(`[stx] @guest directive at position ${z} has no matching @endguest \u2014 the block was skipped.`);break}let O=J.slice(U,B),F=Q(O,"guest","endguest"),L;if(!Z.auth)L=!0;else L=W?Z1(`!auth?.check || !auth?.user?.[${W}]`,Z):Z1("!auth?.check",Z);let H;if(F!==-1){let V=O.slice(0,F),A=O.slice(F+5);H=L?V:A}else H=L?O:"";J=J.substring(0,z)+H+J.substring(B+9),K=!0}}function X(K,q,z){if(Z.userCan&&typeof Z.userCan[K]==="boolean")return Z.userCan[K];if(Z.permissions?.check&&typeof Z.permissions.check==="function")try{let W=[K];if(q)W.push(q);if(z){let U=Z1(z,Z);W.push(U)}return Z.permissions.check(...W)}catch{return!1}return!1}function G(K){let q=K.match(/^\s*\(\s*'([^']*)'(?:,\s*'([^']*)')?(?:,\s*([^)]*))?\)/);if(!q)return null;return{ability:q[1],type:q[2],id:q[3]?.trim(),paramsEnd:q[0].length}}for(let K of["can","cannot"]){let q=`end${K}`,z=K==="can"?"elsecan":"elsecannot",W=!0;while(W){W=!1;let U=J.match(new RegExp(`@${K}\\s*\\(`));if(!U||U.index===void 0)break;let _=U.index,j=J.slice(_+`@${K}`.length),B=G(j);if(!B)break;let O=_+`@${K}`.length+B.paramsEnd,F=Y(J,K,q,O);if(F===-1){console.warn(`[stx] @${K} directive at position ${_} has no matching @${q} \u2014 the block was skipped.`);break}let L=J.slice(O,F),H=[],V=0,A=new RegExp(`@${K}\\s*\\(`,"g"),w=new RegExp(`@${q}(?![a-z])`,"g"),N=new RegExp(`@${z}\\s*\\(`,"g"),R=/@else(?![a-z])/g,T=[],I;while((I=A.exec(L))!==null)T.push({pos:I.index,type:"open"});while((I=w.exec(L))!==null)T.push({pos:I.index,type:"close"});while((I=N.exec(L))!==null)T.push({pos:I.index,type:"elseDirective"});while((I=R.exec(L))!==null)T.push({pos:I.index,type:"else"});T.sort((b,D)=>b.pos-D.pos);for(let b of T){if(b.type==="open"){V++;continue}if(b.type==="close"){V--;continue}if(V===0)H.push(b)}let M=[],E=0;for(let b=0;b<H.length;b++){let D=H[b];if(M.push({content:L.slice(E,D.pos),ability:void 0}),D.type==="elseDirective"){let x=L.slice(D.pos+`@${z}`.length),h=G(x);if(h){M[M.length-1]={content:L.slice(E,D.pos)},E=D.pos+`@${z}`.length+h.paramsEnd,M.push({content:"",ability:h.ability,type:h.type,id:h.id}),M.pop();let i=H[b+1],U0=i?i.pos:L.length;M.push({content:L.slice(E,U0),ability:h.ability,type:h.type,id:h.id}),E=U0}}else E=D.pos+5}if(E<L.length){let b=M[M.length-1];if(H.length>0&&H[H.length-1].type==="else")M.push({content:L.slice(E),isFinalElse:!0});else if(M.length===0)M.push({content:L.slice(E)})}let k=X(B.ability,B.type,B.id),y=K==="can"?k:!k,S="";if(y)S=M[0]?.content||"";else{let b=!1;for(let D=1;D<M.length;D++){let x=M[D];if(x.isFinalElse){S=x.content,b=!0;break}if(x.ability){let h=X(x.ability,x.type,x.id);if(K==="can"?h:!h){S=x.content,b=!0;break}}}if(!b&&M.length>0){let D=M[M.length-1];if(D.isFinalElse)S=D.content}}J=J.substring(0,_)+S+J.substring(F+`@${q}`.length),W=!0}}return J}function t$($,Z,J){let Y=$;function Q(X,G,K,q,z){let W=!0;while(W){W=!1;let U=new RegExp(`@${G}\\s*\\(`),_=X.match(U);if(!_||_.index===void 0)break;let j=_.index,B=Y1(X,j+`@${G}`.length);if(!B)break;let O=B.endPos,F=F1(X,G,K,O);if(F===-1){console.warn(`[stx] @${G} directive at position ${j} has no matching @${K} \u2014 the block was skipped.`);break}let L=X.slice(O,F),H=B.expression,V=-1,A=0,w=0;while(w<L.length){let N=L.indexOf("@",w);if(N===-1)break;let R=L.substring(N);if(/^@(?:if|unless|isset|empty)\s*\(/.test(R)){A++,w=N+1;continue}if(/^@(?:endif|endunless|endisset|endempty)(?![a-z])/.test(R)){A--,w=N+1;continue}if(A===0&&/^@else(?![a-z])/.test(R)){V=N;break}w=N+1}try{let N=q(H.trim()),R;if(V!==-1){let T=L.slice(0,V),I=L.slice(V+5);R=N?T:I}else R=N?L:"";X=X.substring(0,j)+R+X.substring(F+`@${K}`.length),W=!0}catch(N){let R=N instanceof Error?N.message:String(N),T=s(z,`Error processing @${G} directive: ${R}`,p.EVALUATION_ERROR);X=X.substring(0,j)+T+X.substring(F+`@${K}`.length);break}}return X}return Y=Q(Y,"isset","endisset",(X)=>{let G=Z1(X,Z);return G!==void 0&&G!==null},"Isset"),Y=Q(Y,"empty","endempty",(X)=>{let G=Z1(X,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"),Y}function e$($,Z,J){let Y=$,Q="development";function X(G,K,q,z){let W=new RegExp(`@${K}(?![a-z])`,"g"),U=new RegExp(`@${q}(?![a-z])`,"g"),_=new RegExp(`^@${K}(?![a-z])`),j=new RegExp(`^@${q}(?![a-z])`),B=G,O=!0;while(O){O=!1,W.lastIndex=0;let F=W.exec(B);if(!F)break;let L=F.index,H=L+F[0].length;if(K==="env"){let k=B.substring(H).match(/^\s*\(\s*(['"])([^'"]+)\1\s*\)/);if(!k)break;H+=k[0].length,z=Q===k[2]}let V=1,A=H,w=-1;while(V>0&&A<B.length){W.lastIndex=A,U.lastIndex=A;let k=W.exec(B),y=U.exec(B),S=k?k.index:1/0,b=y?y.index:1/0;if(S<b)V++,A=S+k[0].length;else if(b<1/0){if(V--,V===0){w=b;break}A=b+y[0].length}else break}if(w===-1){console.warn(`[stx] @${K} directive at position ${L} has no matching @${q} \u2014 the block was skipped.`);break}let N=B.substring(H,w),R=-1,T=0,I=0;while(I<N.length){let k=N.indexOf("@",I);if(k===-1)break;let y=N.substring(k);if(_.test(y)){T++,I=k+1;continue}if(j.test(y)){T--,I=k+1;continue}if(T===0&&/^@else(?![a-z])/.test(y)){R=k;break}I=k+1}let M;if(R!==-1){let k=N.slice(0,R),y=N.slice(R+5);M=z?k:y}else M=z?N:"";let E=`@${q}`.length;B=B.substring(0,L)+M+B.substring(w+E),O=!0}return B}return Y=X(Y,"env","endenv",!1),Y=X(Y,"production","endproduction",Q==="production"),Y=X(Y,"development","enddevelopment",Q==="development"),Y=X(Y,"staging","endstaging",Q==="staging"),Y=X(Y,"testing","endtesting",Q==="testing"),Y}var z9=C(()=>{t6();n0();r$();R0()});function X2($=16){let Z=new Uint8Array($);return crypto.getRandomValues(Z),btoa(String.fromCharCode(...Z))}function U9($,Z){if(!$)return Z?.nonceGenerator?.()??X2();let J=J2.get($);if(!J)J=Z?.nonceGenerator?.()??X2(),J2.set($,J);return J}function tQ($,Z){let J=[];for(let[Y,Q]of Object.entries($)){if(Q===void 0||Q===null)continue;if(typeof Q==="boolean"){if(Q)J.push(Y);continue}if(Array.isArray(Q)){let X=[...Q];if(Z&&(Y==="script-src"||Y==="style-src"))X=X.filter((G)=>!G.startsWith("'nonce-")),X.push(`'nonce-${Z}'`);if(X.length>0)J.push(`${Y} ${X.join(" ")}`)}}return J.join("; ")}function Q2($,Z){return`<meta http-equiv="Content-Security-Policy" content="${tQ($,Z).replace(/&/g,"&").replace(/"/g,""")}">`}function G2($,Z,J){if(!Z.enabled||!Z.addMetaTag)return $;if($.includes('http-equiv="Content-Security-Policy"'))return $;if(!$.includes("<head>")&&!$.includes("<head "))return $;let Y=Z.useNonce?U9(J,Z):void 0,Q=Q2(Z.directives,Y);return $.replace(/<head([^>]*)>/,`<head$1>
|
|
2465
|
+
${Q}`)}function K2($,Z,J,Y){let Q=$,X=Y.csp;if(Q=Q.replace(/@csp\b/g,()=>{if(!X?.enabled||!X.directives)return"<!-- CSP not configured -->";let G=X.useNonce?U9(Z,X):void 0;return Q2(X.directives,G)}),Q=Q.replace(/@cspNonce\b/g,()=>{if(!X?.enabled||!X.useNonce)return"";return U9(Z,X)}),X?.enabled&&X.useNonce)Z.cspNonce=U9(Z,X);return Q}var J2;var q2=C(()=>{J2=new WeakMap});import eQ from"crypto";function ZG($=$G){let Z=eQ.randomBytes(Math.ceil($/2)).toString("hex").slice(0,$);return $4=Z,Z}function YG(){if(!$4)ZG();return $4}function JG($=W2){let Z=YG();return`<input type="hidden" name="${$}" value="${Z}">`}function z2($){return $.replace(/@csrf(?:\((['"])([^'"]*)\1\))?/g,(Z,J,Y)=>{return JG(Y||W2)})}var $G=40,W2="_token",$4=null;var U2=()=>{};async function _2($,Z,J,Y){if(!Y.customDirectives||Y.customDirectives.length===0)return $;let Q=$;for(let X of Y.customDirectives){if(!X.name||typeof X.handler!=="function"){if(Y.debug)console.warn("Invalid custom directive:",X);continue}if(X.hasEndTag)Q=await XG(Q,X,Z,J,Y);else Q=await QG(Q,X,Z,J,Y)}return Q}async function XG($,Z,J,Y,Q){let{name:X,handler:G}=Z,K=`@${X}`,q=`@end${X}`,z=$,W=D1(`${K}(?:\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\))?([\\s\\S]*?)${q}`,"g"),U=[],_=W.exec(z);while(_!==null){let[j,B="",O=""]=_,F=_.index||0;try{let L=B?B2(B):[],H=O.trim(),V=await G(H,L,J,Y);U.push({original:j,processed:V,startIndex:F})}catch(L){let H=L instanceof Error?L.message:String(L);if(Q.debug)console.error(`Error processing custom directive @${X}:`,L);U.push({original:j,processed:s("CustomDirective",`Error in @${X}${B?`(${B})`:""}: ${H}`,p.EVALUATION_ERROR),startIndex:F})}_=W.exec(z)}for(let j=U.length-1;j>=0;j--){let{original:B,processed:O}=U[j];z=z.replace(B,O)}return z}async function QG($,Z,J,Y,Q){let{name:X,handler:G}=Z,K=$,q=D1(`@${X}\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\)`,"g"),z=[],W=q.exec(K);while(W!==null){let[j,B=""]=W,O=W.index||0;try{let F=B2(B),L=await G("",F,J,Y);z.push({original:j,processed:L,startIndex:O})}catch(F){let L=F instanceof Error?F.message:String(F);if(Q.debug)console.error(`Error processing custom directive @${X}:`,F);z.push({original:j,processed:s("CustomDirective",`Error in @${X}(${B}): ${L}`,p.EVALUATION_ERROR),startIndex:O})}W=q.exec(K)}let U=D1(`@${X}(?!\\w)(?!\\s*\\()`,"g"),_=U.exec(K);while(_!==null){let[j]=_,B=_.index||0;try{let O=await G("",[],J,Y);z.push({original:j,processed:O,startIndex:B})}catch(O){let F=O instanceof Error?O.message:String(O);if(Q.debug)console.error(`Error processing custom directive @${X}:`,O);z.push({original:j,processed:s("CustomDirective",`Error in @${X}: ${F}`,p.EVALUATION_ERROR),startIndex:B})}_=U.exec(K)}for(let j=z.length-1;j>=0;j--){let{original:B,processed:O}=z[j];K=K.replace(B,O)}return K}function B2($){if(!$.trim())return[];let Z=[],J="",Y=!1,Q="";for(let X=0;X<$.length;X++){let G=$[X];if((G==='"'||G==="'")&&(X===0||$[X-1]!=="\\"))if(!Y)Y=!0,Q=G;else if(G===Q)Y=!1;else J+=G;else if(G===","&&!Y)Z.push(J.trim()),J="";else J+=G}if(J.trim())Z.push(J.trim());return Z.map((X)=>{let G=X.trim();if(G.startsWith('"')&&G.endsWith('"')||G.startsWith("'")&&G.endsWith("'"))return G.substring(1,G.length-1);return G})}var j2=C(()=>{n0();E1()});import GG from"crypto";function V0($){return String($??"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function _9($,Z,J,Y){let Q=$||Z;return J?`${Q} ${Y}`:Q}function KG(){return GG.randomUUID()}function B9($,Z){let J=$;return J=J.replace(/@csrf/g,()=>{if(!Z.csrf||typeof Z.csrf!=="object"){let Y=KG();Z.csrf={token:Y}}if(Z.csrf.field)return Z.csrf.field;if(Z.csrf.token)return`<input type="hidden" name="_token" value="${V0(Z.csrf.token)}">`;return'<input type="hidden" name="_token" value="">'}),J=J.replace(/@method\(['"]([^'"]+)['"]\)/g,(Y,Q)=>{let X=Q.toUpperCase();if(Q&&!["GET","POST"].includes(X))return`<input type="hidden" name="_method" value="${V0(X)}">`;return Y}),J}function L2($,Z,J=H2){let Y=$;return Y=Y.replace(/@form\(\s*(?:(?:'([^']+)'|"([^"]+)")\s*)?(?:,\s*(?:'([^']+)'|"([^"]+)")?)?\s*(?:,\s*\{([^}]+)\}\s*)?\)/g,(Q,X,G,K,q,z="")=>{let W=X||G||"POST",U=K||q||"",_=J1(z),j=W.toUpperCase(),B=["GET","POST"].includes(j)?j:"POST",O=`<form method="${V0(B)}" action="${V0(U)}"${_?` ${_}`:""}>`;if(O+=`
|
|
2466
|
+
${B9("@csrf",Z)}`,!["GET","POST"].includes(j))O+=`
|
|
2467
|
+
${B9(`@method('${j}')`,Z)}`;return O}),Y=Y.replace(/@endform/g,"</form>"),Y=Y.replace(/@input\(\s*(?:'([^']+)'|"([^"]+)")\s*(?:,\s*(?:(?:'([^']*)'|"([^"]*)")\s*)?)?(?:,\s*\{([^}]+)\})?\s*\)/g,(Q,X,G,K,q,z="")=>{let W=X||G||"",U=K||q||"",_=J1(z),j=q5(W,Z),B=j!==void 0&&j!==null?j:U||"",O=_.match(/type=['"]([^'"]+)['"]/i),F=O?O[1]:"text",L=W5(W,Z),H=_.match(/class=['"]([^'"]+)['"]/i),V=_9(H?H[1]:"",J.input,L,J.inputError),A=_.replace(/class=['"][^'"]+['"]/i,"");return A=A.replace(/type=['"][^'"]+['"]/i,""),`<input type="${V0(F)}" name="${V0(W)}" value="${V0(B)}" class="${V}"${A?` ${A}`:""}>`}),Y=Y.replace(/@textarea\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)([\s\S]*?)@endtextarea/g,(Q,X,G="",K="")=>{let q=J1(G),z=q5(X,Z)||K.trim(),W=W5(X,Z),U=q.match(/class=['"]([^'"]+)['"]/i),_=_9(U?U[1]:"",J.input,W,J.inputError),j=q.replace(/class=['"][^'"]+['"]/i,"");return`<textarea name="${V0(X)}" class="${_}"${j?` ${j}`:""}>${V0(z)}</textarea>`}),Y=Y.replace(/@select\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)([\s\S]*?)@endselect/g,(Q,X,G="",K)=>{let q=J1(G),z=q5(X,Z),W=W5(X,Z),U=q.match(/class=['"]([^'"]+)['"]/i),_=_9(U?U[1]:"",J.input,W,J.inputError),j=q.replace(/class=['"][^'"]+['"]/i,""),B=K;if(z!==void 0)B=K.replace(/(<option[^>]*value=['"]([^'"]+)['"][^>]*>)/gi,(O,F,L)=>{if((Array.isArray(z)?z.some((V)=>String(V)===L):String(z)===L)&&!F.includes("selected"))return F.replace(/(<option)/,"$1 selected");return O});return`<select name="${V0(X)}" class="${_}"${j?` ${j}`:""}>${B}</select>`}),Y=Y.replace(/@checkbox\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?(?:,\s*\{([^}]+)\})?\)/g,(Q,X,G="1",K="")=>{let q=J1(K),z=q5(X,Z),W=z!==void 0&&(Array.isArray(z)?z.some((B)=>String(B)===G):z===!0||String(z)===G),U=q.match(/class=['"]([^'"]+)['"]/i),_=U?U[1]:J.checkInput,j=q.replace(/class=['"][^'"]+['"]/i,"");return`<input type="checkbox" name="${V0(X)}" value="${V0(G)}" class="${_}"${W?" checked":""}${j?` ${j}`:""}>`}),Y=Y.replace(/@radio\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)/g,(Q,X,G,K="")=>{let q=J1(K),z=q5(X,Z),W=z!==void 0&&z===G,U=q.match(/class=['"]([^'"]+)['"]/i),_=U?U[1]:J.checkInput,j=q.replace(/class=['"][^'"]+['"]/i,"");return`<input type="radio" name="${V0(X)}" value="${V0(G)}" class="${_}"${W?" checked":""}${j?` ${j}`:""}>`}),Y=Y.replace(/@file\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)/g,(Q,X,G="")=>{let K=J1(G),q=K.match(/accept=['"]([^'"]+)['"]/i),z=q?q[1]:"",W=K.includes("multiple"),U=W5(X,Z),_=K.match(/class=['"]([^'"]+)['"]/i),j=_9(_?_[1]:"",J.input,U,J.inputError),B=K.replace(/class=['"][^'"]+['"]/gi,"").replace(/accept=['"][^'"]+['"]/gi,"").replace(/\bmultiple\b/gi,"").trim(),O=[`<input type="file" name="${V0(X)}"`,`class="${j}"`];if(z)O.push(`accept="${V0(z)}"`);if(W)O.push("multiple");if(B)O.push(B);return`${O.join(" ")}>`}),Y=Y.replace(/@label\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)([\s\S]*?)@endlabel/g,(Q,X,G="",K)=>{let q=J1(G),z=q.match(/class=['"]([^'"]+)['"]/i),W=z?z[1]:J.label,U=q.replace(/class=['"][^'"]+['"]/i,"");return`<label for="${V0(X)}" class="${W}"${U?` ${U}`:""}>${K}</label>`}),Y}function F2($,Z,J=H2){return $.replace(/@error\(['"]([^'"]+)['"]\)([\s\S]*?)@enderror/g,(Y,Q,X)=>{try{if(W5(Q,Z))return X.replace(/\{\{([^}]+)\}\}/g,(G,K)=>{try{if(K.trim()==="$message"||K.trim()==="message")return O2(Q,Z);if(K.trim().includes("errors.first")||K.trim().includes("$errors.first")){if(typeof Z.errors?.first==="function")return Z.errors.first(Q);return O2(Q,Z)}let q=K.trim();if(t(q)){let z=J0(q,Z);return z!==void 0?String(z):q}return q}catch{return K}});return""}catch(G){return console.error("Error processing @error directive:",G),Y}})}function W5($,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 O2($,Z){if(!Z.errors)return"";if(typeof Z.errors.get==="function")return Z.errors.get($);if(typeof Z.errors==="object"&&Object.prototype.hasOwnProperty.call(Z.errors,$)){let J=Z.errors[$];return Array.isArray(J)?J[0]:String(J)}return""}function q5($,Z){let J;if(Z.old&&typeof Z.old==="function")return Z.old($);if(Z.old&&typeof Z.old==="object")return Z.old[$];if($.endsWith("[]")){let Y=$.slice(0,-2);if(J=Z[Y],J!==void 0)return J}return Z[$]}function J1($){if(!$.trim())return"";let Z=[],J=$.trim(),Y=/([\w-]+)\s*:\s*(['"]?)([^,'"]*)\2(?:\s*,\s*|\s*$)/g,Q;while((Q=Y.exec(J))!==null){let[,X,,G]=Q;Z.push(`${X}="${G.trim()}"`)}return Z.join(" ")}var H2;var V2=C(()=>{R0();H2={input:"form-control",inputError:"is-invalid",checkInput:"form-check-input",label:"form-label",errorFeedback:"invalid-feedback"}});import w2 from"path";function qG($,Z=0){if(Z<=0)return!1;return Date.now()-$.loadedAt>Z}async function WG($,Z){if({...X4,...Z.i18n}.cache&&J4[$]){let Q=J4[$],X=Z.i18n?.cacheMaxAge??0;if(!qG(Q,X))return Q.translations}if(z5[$]?.state==="loading")return z5[$].promise;Z4[$]="loading";let Y=R2($,Z).then((Q)=>{return Z4[$]="loaded",delete z5[$],Q}).catch((Q)=>{throw Z4[$]="error",z5[$]={promise:Y,state:"error",error:Q instanceof Error?Q:Error(String(Q))},Q});return z5[$]={promise:Y,state:"loading"},Y}async function R2($,Z){let J={...X4,...Z.i18n},Y=w2.resolve(import.meta.dir,"..",J.translationsDir),Q=BG(J.format),X=w2.join(Y,`${$}${Q}`);try{let G={};try{let K=await import(X);G=K.default||K}catch(K){let q=await Bun.file(X).text();if(J.format==="yaml"||J.format==="yml")G=UG(q);else if(J.format==="json")G=JSON.parse(q);else throw K}if(J.cache)J4[$]={translations:G,loadedAt:Date.now(),locale:$};return G}catch(G){if(Z.debug)console.error(`Error loading translation file for locale "${$}":`,G);if($!==J.defaultLocale)return R2(J.defaultLocale,Z);return{}}}async function zG($,Z){return WG($,Z)}function UG($){let Z={},J=$.split(`
|
|
2468
|
+
`),Y=[{obj:Z,indent:-1}];for(let Q of J){let X=Q.replace(/#.*$/,"").trimEnd();if(!X.trim())continue;let G=X.search(/\S/);if(G===-1)continue;while(Y.length>1&&Y[Y.length-1].indent>=G)Y.pop();let K=Y[Y.length-1].obj,q=X.match(/^(\s*)(\S[^:]*):\s*(.*)$/);if(q){let[,,z,W]=q,U=z.trim(),_=W.trim();if(_==="")K[U]={},Y.push({obj:K[U],indent:G});else K[U]=_G(_)}}return Z}function _G($){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 J=Number($);if(!Number.isNaN(J))return J;return $}function BG($){switch($){case"yaml":return".yaml";case"yml":return".yml";case"js":return".js";case"json":default:return".json"}}function jG($,Z){for(let J of $){let Y=J.trim(),Q=Y.match(/^\{(\d+)\}\s*(.*)$/);if(Q){let G=Number.parseInt(Q[1],10);if(Z===G)return Q[2];continue}let X=Y.match(/^\[(\d+),(\d+|\*)\]\s*(.*)$/);if(X){let G=Number.parseInt(X[1],10),K=X[2]==="*"?Number.POSITIVE_INFINITY:Number.parseInt(X[2],10);if(Z>=G&&Z<=K)return X[3];continue}}if($.length===2)return Z===1?$[0].trim():$[1].trim();if(Z<$.length)return $[Z].trim();return $[$.length-1].trim()}function OG($,Z={}){return T2($,Z)}function T2($,Z){let J="",Y=0;while(Y<$.length)if($[Y]==="{"){let Q=HG($,Y);if(Q===-1){J+=$[Y],Y++;continue}let X=$.slice(Y+1,Q);J+=LG(X,Z),Y=Q+1}else if($[Y]==="'"&&Y+1<$.length)if($[Y+1]==="'")J+="'",Y+=2;else if($[Y+1]==="{"||$[Y+1]==="}")J+=$[Y+1],Y+=2;else J+=$[Y],Y++;else J+=$[Y],Y++;return J}function HG($,Z){let J=0;for(let Y=Z;Y<$.length;Y++)if($[Y]==="{")J++;else if($[Y]==="}"){if(J--,J===0)return Y}return-1}function LG($,Z){let J=FG($);if(J.length===0)return`{${$}}`;let Y=J[0].trim(),Q=Z[Y];if(J.length===1)return Q!==void 0?String(Q):`{${Y}}`;switch(J[1].trim().toLowerCase()){case"plural":return VG(Q,J.slice(2).join(","),Z);case"select":return AG(Q,J.slice(2).join(","));case"selectordinal":return NG(Q,J.slice(2).join(","));case"number":return TG(Q,J[2]?.trim());case"date":return MG(Q,J[2]?.trim());case"time":return IG(Q,J[2]?.trim());default:return Q!==void 0?String(Q):`{${$}}`}}function FG($){let Z=[],J="",Y=0;for(let Q=0;Q<$.length;Q++){let X=$[Q];if(X==="{")Y++,J+=X;else if(X==="}")Y--,J+=X;else if(X===","&&Y===0)Z.push(J),J="";else J+=X}if(J)Z.push(J);return Z}function VG($,Z,J){let Y=Number($)||0,Q=Q4(Z),X=`=${Y}`;if(Q[X])return Y4(Q[X],Y,J);let G=wG(Y);if(Q[G])return Y4(Q[G],Y,J);if(Q.other)return Y4(Q.other,Y,J);return String(Y)}function Y4($,Z,J){let Y=$.replace(/#/g,String(Z));return T2(Y,J)}function wG($){let Z=Math.abs($),J=Math.floor(Z),Y=String($).includes(".")?String($).split(".")[1].length:0;if(J===1&&Y===0)return"one";return"other"}function AG($,Z){let J=String($||""),Y=Q4(Z);if(Y[J])return Y[J];return Y.other||String($)}function NG($,Z){let J=Number($)||0,Y=Q4(Z),Q=RG(J);if(Y[Q])return Y[Q].replace(/#/g,String(J));if(Y.other)return Y.other.replace(/#/g,String(J));return String(J)}function RG($){let Z=Math.abs($),J=Z%10,Y=Z%100;if(J===1&&Y!==11)return"one";if(J===2&&Y!==12)return"two";if(J===3&&Y!==13)return"few";return"other"}function Q4($){let Z={},J=/(\w+|=\d+)\s*\{([^{}]*(?:\{[^{}]*\}[^{}]*)*)\}/g,Y=J.exec($);while(Y!==null)Z[Y[1]]=Y[2],Y=J.exec($);return Z}function TG($,Z){let J=Number($);if(Number.isNaN(J))return String($);switch(Z){case"integer":return Math.floor(J).toLocaleString();case"percent":return`${(J*100).toFixed(0)}%`;case"currency":return J.toLocaleString(void 0,{style:"currency",currency:"USD"});default:return J.toLocaleString()}}function MG($,Z){let J=$ instanceof Date?$:new Date(String($));if(Number.isNaN(J.getTime()))return String($);let Y={};switch(Z){case"short":Y.dateStyle="short";break;case"medium":Y.dateStyle="medium";break;case"long":Y.dateStyle="long";break;case"full":Y.dateStyle="full";break;default:Y.dateStyle="medium"}return J.toLocaleDateString(void 0,Y)}function IG($,Z){let J=$ instanceof Date?$:new Date(String($));if(Number.isNaN(J.getTime()))return String($);let Y={};switch(Z){case"short":Y.timeStyle="short";break;case"medium":Y.timeStyle="medium";break;case"long":Y.timeStyle="long";break;case"full":Y.timeStyle="full";break;default:Y.timeStyle="short"}return J.toLocaleTimeString(void 0,Y)}function DG($){return/\{[^}]+,\s*(?:plural|select|selectordinal|number|date|time)\s*,/.test($)}function A2($,Z,J=!0,Y={}){let Q=$.split("."),X=Z;for(let K of Q){if(X===void 0||X===null)break;X=X[K]}if(X===void 0||X===null)return J?$:"";let G=String(X);if(DG(G))return OG(G,Y);if(G.includes("|")&&"count"in Y){let K=Number(Y.count),q=G.split("|");G=jG(q,K)}for(let[K,q]of Object.entries(Y)){let z=K.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");G=G.replace(new RegExp(`:${z}`,"g"),String(q))}return G}async function M2($,Z,J,Y){let Q=$,X=/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\})\s*)?\)([\s\S]*?)@endtranslate/g,G={...X4,...Y.i18n},K=await zG(G.locale,Y);Z.__translations=K,Z.__locale=G.locale,Z.__i18nConfig=G,Q=await N2(Q,X,async(W,U,_,j,B)=>{try{let O={};if(_)try{let L=[()=>JSON.parse(_),()=>{let H=`{"data":${_}}`,V=JSON.parse(H);return typeof V.data==="object"?V.data:{}},()=>{return F0(_,Z)}];for(let H of L)try{if(O=H(),Object.keys(O).length>0)break}catch{}}catch(L){if(Y.debug)console.error("Error parsing parameters for @translate directive:",L)}return A2(U,K,G.fallbackToKey,O)||j.trim()}catch(O){if(Y.debug)console.error("Error processing @translate directive:",O);return s("Translate",`Error in @translate('${U}'): ${O instanceof Error?O.message:String(O)}`,p.EVALUATION_ERROR)}});let q=/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]+\})\s*)?\)/g;if(Y.debug){console.warn(`Processing translations in template. Sections: ${Q.includes("<h2>Translation with Parameters</h2>")?"Parameters section found":"Parameters section missing"}`);let W=[...Q.matchAll(q)];console.warn(`Found ${W.length} @translate matches`),W.forEach((U,_)=>console.warn(`Match ${_}: ${U[0]}, Key: ${U[1]}, Params: ${U[2]||"none"}`))}return Q=await N2(Q,/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\})\s*)?\)/g,async(W,U,_,j)=>{try{let B={};if(_)try{let O=[()=>JSON.parse(_),()=>{let F=`{"data":${_}}`,L=JSON.parse(F);return typeof L.data==="object"?L.data:{}},()=>{return F0(_,Z)}];for(let F of O)try{if(B=F(),Object.keys(B).length>0)break}catch{}}catch(O){if(Y.debug)console.error("Error parsing parameters for @translate directive:",O)}return A2(U,K,G.fallbackToKey,B)}catch(B){if(Y.debug)console.error("Error processing @translate directive:",B);return s("Translate",`Error in @translate('${U}'): ${B instanceof Error?B.message:String(B)}`,p.EVALUATION_ERROR)}}),Q}async function N2($,Z,J){let Y=[];return $.replace(Z,(X,...G)=>{let K=J(X,...G).then((q)=>({match:X,replacement:q}));return Y.push(K),X}),(await Promise.all(Y)).reduce((X,{match:G,replacement:K})=>X.replace(G,K),$)}var X4,J4,z5,Z4;var I2=C(()=>{n0();R0();X4={defaultLocale:"en",locale:"en",translationsDir:"translations",format:"yaml",fallbackToKey:!0,cache:!0},J4={},z5={},Z4={}});var C2={};r(C2,{processLoops:()=>G4});function bG($,Z){let J=/@component\s*\(/g,Y=$,Q,X=[];while((Q=J.exec(Y))!==null){let G=Q.index,K=G+Q[0].length-1,q=1,z=K+1;while(z<Y.length&&q>0){if(Y[z]==="(")q++;else if(Y[z]===")"){if(q--,q===0)break}z++}if(q!==0)continue;let W=Y.substring(K+1,z),U=z+1,_=W.match(/^\s*['"]([^'"]+)['"]/);if(!_)continue;let j=_[1],B=W.slice(_[0].length),O=B.match(/^\s*,\s*/);if(!O)continue;let F=B.slice(O[0].length).trim();if(!F)continue;try{let L=F0(F,Z),H=JSON.stringify(L),V=`@component('${j}', ${H})`;X.push({start:G,end:U,replacement:V})}catch{continue}}for(let G=X.length-1;G>=0;G--){let{start:K,end:q,replacement:z}=X[G];Y=Y.substring(0,K)+z+Y.substring(q)}return Y}function j9($,Z,J){let Y=$,Q=new RegExp(`${Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\(`),X;while((X=Q.exec(Y))!==null){let G=X.index,K=G+X[0].length-1,q=1,z=K+1,W=null,U=!1;while(z<Y.length&&q>0){let B=Y[z];if(U){U=!1,z++;continue}if(B==="\\"&&W){U=!0,z++;continue}if(W){if(B===W)W=null;z++;continue}if(B==='"'||B==="'"||B==="`"){W=B,z++;continue}if(B==="(")q++;else if(B===")"){if(q--,q===0)break}z++}if(q!==0)break;let _=Y.substring(K+1,z),j=J(_);Y=Y.substring(0,G)+j+Y.substring(z+1)}return Y}function SG($,Z){let J=$;return J=J.replace(/:([a-zA-Z_][a-zA-Z0-9_-]*)(?=\s+[^=]|\s*\/?>|\s*$)/g,(Y,Q)=>{if(Q in Z)return`:${Q}="${Q}"`;return Y}),J=J.replace(/:([a-zA-Z_][a-zA-Z0-9_-]*)\s*=\s*"([^"]*)"/g,(Y,Q,X)=>{try{let G=Object.keys(Z),K=Object.values(Z);o1(X);let z=e(X,G)(...K),U=JSON.stringify(z).replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">");return`__stx_${Q}="${U}"`}catch(G){return Y}}),J}function yG($,Z){let J=$;return J=j9(J,"@break",(Y)=>{try{let X=`!!(${Y.trim()})`,G;if(t(X)){let K=e(X,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean(J0(X,Z));return G?O9:""}catch{return""}}),J=j9(J,"@continue",(Y)=>{try{let X=`!!(${Y.trim()})`,G;if(t(X)){let K=e(X,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean(J0(X,Z));return G?H9:""}catch{return""}}),J}function CG($){let Z=$;return Z=Z.replace(/@break(?!\()/g,O9),Z=Z.replace(/@continue(?!\()/g,H9),Z}function D2($){let Z=$.includes(O9),J=Z?$.substring(0,$.indexOf(O9)):$;return{hasBreak:Z,content:J}}function E2($){let Z=$.includes(H9),J=Z?$.substring(0,$.indexOf(H9)):$;return{hasContinue:Z,content:J}}function b2($){let Z=$;return Z=j9(Z,"@break",(J)=>{let Y=J.trim();if(!A5(Y))return"";return`\`; if (${Y}) { break; } result += \``}),Z=j9(Z,"@continue",(J)=>{let Y=J.trim();if(!A5(Y))return"";return`\`; if (${Y}) { continue; } result += \``}),Z=Z.replace(/@break(?!\()/g,"`; break; result += `"),Z=Z.replace(/@continue(?!\()/g,"`; continue; result += `"),Z}function PG($){let Z=/@forelse\s*\(/g,J,Y=[],Q=/@foreach\s*\(/g,X=/@endforeach/g,G;while((G=Q.exec($))!==null)Y.push({pos:G.index,delta:1});while((G=X.exec($))!==null)Y.push({pos:G.index,delta:-1});Y.sort((W,U)=>W.pos-U.pos);let K=[],q=0;for(let W of Y)q+=W.delta,K.push({pos:W.pos,depth:q});function z(W){let U=0,_=K.length-1,j=0;while(U<=_){let B=U+_>>1;if(K[B].pos<=W)j=K[B].depth,U=B+1;else _=B-1}return j}while((J=Z.exec($))!==null){if(z(J.index)>0)continue;let W=J.index,U=J.index+J[0].length-1,_=1,j=U+1,B=-1;while(j<$.length&&_>0){if($[j]==="(")_++;else if($[j]===")"){if(_--,_===0){B=j;break}}j++}if(B===-1)continue;let O=$.substring(U+1,B),F=O.indexOf(" as ");if(F===-1)continue;let L=O.substring(0,F).trim(),H=O.substring(F+4).trim(),V=B+1,A=1,w=V,N=/@forelse\s*\(/g,R=/@endforelse/g,T=-1;while(A>0&&w<$.length){N.lastIndex=w,R.lastIndex=w;let S=N.exec($),b=R.exec($);if(!b)break;if(S&&S.index<b.index)A++,w=S.index+S[0].length;else{if(A--,A===0){T=b.index;break}w=b.index+11}}if(T===-1)continue;let I=$.substring(V,T),M=T+11,E=-1,k=0,y=0;while(y<I.length){let S=I.indexOf("@",y);if(S===-1)break;let b=I.substring(S);if(/^@forelse\s*\(/.test(b))k++,y=S+1;else if(b.startsWith("@endforelse"))k--,y=S+11;else if(k===0&&b.startsWith("@empty")){if(I.length<=S+6||!/[a-z]/i.test(I[S+6])){E=S;break}y=S+1}else y=S+1}if(E===-1)continue;return{start:W,end:M,arrayExpr:L,itemVar:H,foreachContent:I.substring(0,E),emptyContent:I.substring(E+6)}}return null}function k2($,Z){let J=$;while(!0){let Y=PG(J);if(!Y)break;let{start:Q,end:X,arrayExpr:G,itemVar:K,foreachContent:q,emptyContent:z}=Y;try{let W;if(t(G))W=e(G,Object.keys(Z))(...Object.values(Z));else W=J0(G,Z);let U;if(!Array.isArray(W)||W.length===0)U=z;else U=`@foreach (${G} as ${K})${q}@endforeach`;J=J.substring(0,Q)+U+J.substring(X)}catch(W){let U=W instanceof Error?W.message:String(W),_=s("Forelse",`Error in @forelse(${G} as ${K}): ${U}`,p.EVALUATION_ERROR);J=J.substring(0,Q)+_+J.substring(X)}}return J}function G4($,Z,J,Y){let Q=$;Q=k2(Q,Z);function X(q){let z=/@foreach\s*\(/g,W;while((W=z.exec(q))!==null){let U=W.index,_=W.index+W[0].length-1,j=1,B=_+1,O=-1;while(B<q.length&&j>0){if(q[B]==="(")j++;else if(q[B]===")"){if(j--,j===0){O=B;break}}B++}if(O===-1)continue;let F=q.substring(_+1,O),L=F.indexOf(" as ");if(L===-1)continue;let H=U,V=F.substring(0,L),A=F.substring(L+4),w=O+1,N=1,R=w,T=/@foreach\s*\(/g,I=/@endforeach/g;while(N>0&&R<q.length){T.lastIndex=R,I.lastIndex=R;let M=T.exec(q),E=I.exec(q);if(!E)break;if(M&&M.index<E.index)N++,R=M.index+M[0].length;else{if(N--,N===0){let k=q.substring(w,E.index),y=E.index+11;return{start:H,end:y,arrayExpr:V,itemVar:A,content:k}}R=E.index+11}}}return null}function G(q,z){let W=q;while(!0){let U=X(W);if(!U)break;let{start:_,end:j,arrayExpr:B,itemVar:O,content:F}=U;try{let L=B.trim(),H;if(t(L))H=e(L,Object.keys(z))(...Object.values(z));else H=J0(L,z);let V=!1;if(!Array.isArray(H))if(H instanceof Map)H=Array.from(H),V=!0;else if(H instanceof Set)H=Array.from(H);else if(typeof H==="string")H=Array.from(H);else if(H&&typeof H==="object"&&!(H instanceof Date)&&!(H instanceof RegExp))H=Object.entries(H),V=!0;else{let M=s("Foreach",`Error in @foreach: ${L} is not iterable`,p.TYPE_ERROR);W=W.substring(0,_)+M+W.substring(j);continue}let A=Y?.loops?.useAltLoopVariable??kG,w=O.trim(),N=null,R;if(w.includes("=>")){let M=w.split("=>").map((E)=>E.trim());if(M.length===2)N=M[0],R=M[1];else R=w}else R=w;let T="",I=H;for(let M=0;M<I.length;M++){let E=I[M],k={index:M,iteration:M+1,first:M===0,last:M===I.length-1,count:I.length},y={...z,loop:k,$loop:k};if(R.startsWith("[")&&R.endsWith("]")){let x=R.slice(1,-1).split(",").map((h)=>h.trim());if(Array.isArray(E))x.forEach((h,i)=>{if(h)y[h]=E[i]});else y[R]=E}else y[R]=E;if(N)if(V&&Array.isArray(E)&&E.length===2)y[N]=E[0],y[R]=E[1];else y[N]=M;let S=yG(F,y),b=E2(S);if(b.hasContinue){T+=b.content;continue}let D=D2(S);if(D.hasBreak){T+=D.content;break}if(S=k2(S,y),S=G(S,y),S=V1(S,y,J),S=CG(S),D=D2(S),D.hasBreak){T+=D.content;break}if(b=E2(S),b.hasContinue){T+=b.content;continue}S=a0(S,y,J),S=SG(S,y),S=bG(S,y),T+=S}W=W.substring(0,_)+T+W.substring(j)}catch(L){let H=s("Foreach",`Error in @foreach(${B.trim()} as ${O.trim()}): ${L instanceof Error?L.message:String(L)}`,p.EVALUATION_ERROR);W=W.substring(0,_)+H+W.substring(j)}}return W}Q=G(Q,Z),Q=y2(Q,Z,J,Y);let K=Y?.loops?.maxWhileIterations??EG;return Q=fG(Q,Z,K),Q}function S2($){return A5($)}function y2($,Z,J,Y){let Q=$,X=!0;while(X){X=!1;let G=Q.match(/@for\s*\(/);if(!G||G.index===void 0)break;let K=G.index,q=K+G[0].length-1,z=D0(Q,"(",")",q);if(z===-1)break;let W=Q.slice(q+1,z),U=z+1,_=W9(Q.slice(K),"for","endfor");if(_.length===0)break;let j=_[0].content,B=K+_[0].end;if(!S2(W)){let O=s("For",`Unsafe expression in @for: ${W}`,p.UNSAFE_EXPRESSION);Q=Q.substring(0,K)+O+Q.substring(B),X=!0;continue}try{let O=vG(W),F=/@(?:for|foreach|if|unless)\s*\(/.test(j);if(O.length>0&&F){let N=xG({forExpr:W,content:j,iterVarNames:O,context:Z,filePath:J,options:Y});Q=Q.substring(0,K)+N+Q.substring(B),X=!0;continue}let L=Object.keys(Z),H=Object.values(Z),V=j.replace(/`/g,"\\`").replace(/\$\{/g,"\\${").replace(/\{\{([^}]+)\}\}/g,(N,R)=>{return`\${${R}}`});V=b2(V);let w=Function(...L,`
|
|
2467
2469
|
let result = '';
|
|
2468
2470
|
for (${W}) {
|
|
2469
2471
|
result += \`${V}\`;
|
|
2470
2472
|
}
|
|
2471
2473
|
return result;
|
|
2472
|
-
`)(...H);Q=Q.substring(0,K)+w+Q.substring(B),X=!0}catch(O){let F=s("For",`Error in @for(${W}): ${O instanceof Error?O.message:String(O)}`,p.EVALUATION_ERROR);Q=Q.substring(0,K)+F+Q.substring(B),X=!0}}return Q}function
|
|
2474
|
+
`)(...H);Q=Q.substring(0,K)+w+Q.substring(B),X=!0}catch(O){let F=s("For",`Error in @for(${W}): ${O instanceof Error?O.message:String(O)}`,p.EVALUATION_ERROR);Q=Q.substring(0,K)+F+Q.substring(B),X=!0}}return Q}function vG($){let Z=$.trim(),J=Z.match(/^(?:const|let|var)\s+(\[[^\]]+\]|\{[^}]+\})\s+(?:of|in)\s+/);if(J){let X=J[1];return X.slice(1,-1).split(",").map((K)=>{let q=K.trim();if(!q)return"";let z=q.indexOf(":");if(z>=0&&X.startsWith("{")){let _=q.slice(z+1).trim(),j=_.indexOf("=");return(j>=0?_.slice(0,j):_).trim()}let W=q.indexOf("="),U=(W>=0?q.slice(0,W):q).trim();return/^[A-Za-z_$][\w$]*$/.test(U)?U:""}).filter(Boolean)}let Y=Z.match(/^(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s+(?:of|in)\s+/);if(Y)return[Y[1]];let Q=Z.match(/^(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*=[^;]*;/);if(Q)return[Q[1]];return[]}function xG($){let{forExpr:Z,content:J,iterVarNames:Y,context:Q,filePath:X,options:G}=$,K=Object.keys(Q),q=Object.values(Q),z=Function(...K,"__pushIter",`
|
|
2473
2475
|
for (${Z}) {
|
|
2474
2476
|
__pushIter([${Y.join(", ")}])
|
|
2475
2477
|
}
|
|
2476
|
-
`),W=[];z(...q,(j)=>{W.push(j)});let U=X??"inline.stx",_="";for(let j of W){let B={...Q};Y.forEach((F,L)=>{B[F]=j[L]});let O=
|
|
2478
|
+
`),W=[];z(...q,(j)=>{W.push(j)});let U=X??"inline.stx",_="";for(let j of W){let B={...Q};Y.forEach((F,L)=>{B[F]=j[L]});let O=y2(J,B,X,G);O=V1(O,B,U),O=a0(O,B,U),_+=O}return _}function fG($,Z,J){let Y=$,Q=!0;while(Q){Q=!1;let X=Y.match(/@while\s*\(/);if(!X||X.index===void 0)break;let G=X.index,K=G+X[0].length-1,q=D0(Y,"(",")",K);if(q===-1)break;let z=Y.slice(K+1,q),W=W9(Y.slice(G),"while","endwhile");if(W.length===0)break;let U=W[0].content,_=G+W[0].end;if(!S2(z)){let j=s("While",`Unsafe expression in @while: ${z}`,p.UNSAFE_EXPRESSION);Y=Y.substring(0,G)+j+Y.substring(_),Q=!0;continue}try{let j=Object.keys(Z),B=Object.values(Z),O=U.replace(/`/g,"\\`").replace(/\$\{/g,"\\${").replace(/\{\{([^}]+)\}\}/g,(H,V)=>{return`\${${V}}`});O=b2(O);let L=Function(...j,`
|
|
2477
2479
|
let result = '';
|
|
2478
2480
|
let maxIterations = ${J}; // Configurable safety limit
|
|
2479
2481
|
let counter = 0;
|
|
@@ -2485,8 +2487,8 @@ ${Q}`)}function Q2($,Z,J,Y){let Q=$,X=Y.csp;if(Q=Q.replace(/@csp\b/g,()=>{if(!X?
|
|
|
2485
2487
|
result += '<!-- [While Error [1104]]: Maximum iterations (${J}) exceeded in while loop. Configure via options.loops.maxWhileIterations -->';
|
|
2486
2488
|
}
|
|
2487
2489
|
return result;
|
|
2488
|
-
`)(...B);Y=Y.substring(0,G)+L+Y.substring(_),Q=!0}catch(j){let B=s("While",`Error in @while(${z}): ${j instanceof Error?j.message:String(j)}`,p.EVALUATION_ERROR);Y=Y.substring(0,G)+B+Y.substring(_),Q=!0}}return Y}var
|
|
2489
|
-
`)X++;return!0}if(Z[X]==="/"&&Z[X+1]==="*"){X+=2;while(X<G-1&&!(Z[X]==="*"&&Z[X+1]==="/"))X++;return X+=2,!0}return!1},W=()=>{if(Q!==0)return;let U=Z.slice(X).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(U){let B=U[2];if(!Y.has(B))J.push(B),Y.add(B);return}let _=Z.slice(X).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(_){let B=_[1];if(!Y.has(B))J.push(B),Y.add(B);return}let j=Z.slice(X).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(j){let B=j[1];if(!Y.has(B))J.push(B),Y.add(B)}};while(X<G){if(z())continue;if(Z[X]==="'"||Z[X]==='"'){K(Z[X]);continue}if(Z[X]==="`"){q();continue}if(Z[X]==="{"){Q++,X++;continue}if(Z[X]==="}"){Q--,X++;continue}if(Q===0&&/[a-z]/i.test(Z[X])&&(X===0||/\s|[;{}()]/.test(Z[X-1])))W();X++}return J.join(", ")}function
|
|
2490
|
+
`)(...B);Y=Y.substring(0,G)+L+Y.substring(_),Q=!0}catch(j){let B=s("While",`Error in @while(${z}): ${j instanceof Error?j.message:String(j)}`,p.EVALUATION_ERROR);Y=Y.substring(0,G)+B+Y.substring(_),Q=!0}}return Y}var EG=1000,kG=!1,O9="<!--__STX_BREAK__-->",H9="<!--__STX_CONTINUE__-->";var K4=C(()=>{z9();n0();t0();r$();R0()});import K0 from"path";function q4($,Z){let J=0;for(let Y=Z;Y<$.length;Y++){let Q=$[Y];if(Q==="("||Q==="["||Q==="{")J++;else if(Q===")"||Q==="]"||Q==="}")J--;else if(Q===","&&J===0)return Y}return-1}function gG($,Z,J){let Y=$,Q=new RegExp(`${Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*\\(`,"g"),X=Q.exec(Y);while(X){let G=X.index,K=G+X[0].length-1,q=1,z=K+1;while(z<Y.length&&q>0){if(Y[z]==="(")q++;else if(Y[z]===")")q--;z++}if(q!==0)break;let W=Y.substring(K+1,z-1),U=`${J}(${W})`;Y=Y.substring(0,G)+U+Y.substring(z),Q.lastIndex=G+U.length,X=Q.exec(Y)}return Y}function hG($){return/\b(state|derived|effect)\s*\(/.test($)}function dG($){let Z=$,J=[],Y=new Set,Q=0,X=0,G=Z.length,K=(U)=>{X++;while(X<G){if(Z[X]==="\\"){X+=2;continue}if(Z[X]===U){X++;return}X++}},q=()=>{X++;while(X<G){if(Z[X]==="\\"){X+=2;continue}if(Z[X]==="`"){X++;return}if(Z[X]==="$"&&Z[X+1]==="{"){X+=2;let U=1;while(X<G&&U>0)if(Z[X]==="{")U++;else if(Z[X]==="}")U--;else if(Z[X]==="'"||Z[X]==='"')K(Z[X]);else if(Z[X]==="`")q();else X++;continue}X++}},z=()=>{if(Z[X]==="/"&&Z[X+1]==="/"){while(X<G&&Z[X]!==`
|
|
2491
|
+
`)X++;return!0}if(Z[X]==="/"&&Z[X+1]==="*"){X+=2;while(X<G-1&&!(Z[X]==="*"&&Z[X+1]==="/"))X++;return X+=2,!0}return!1},W=()=>{if(Q!==0)return;let U=Z.slice(X).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(U){let B=U[2];if(!Y.has(B))J.push(B),Y.add(B);return}let _=Z.slice(X).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(_){let B=_[1];if(!Y.has(B))J.push(B),Y.add(B);return}let j=Z.slice(X).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(j){let B=j[1];if(!Y.has(B))J.push(B),Y.add(B)}};while(X<G){if(z())continue;if(Z[X]==="'"||Z[X]==='"'){K(Z[X]);continue}if(Z[X]==="`"){q();continue}if(Z[X]==="{"){Q++,X++;continue}if(Z[X]==="}"){Q--,X++;continue}if(Q===0&&/[a-z]/i.test(Z[X])&&(X===0||/\s|[;{}()]/.test(Z[X-1])))W();X++}return J.join(", ")}function mG($,Z){let J=dG($);return`
|
|
2490
2492
|
(function() {
|
|
2491
2493
|
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;
|
|
2492
2494
|
var __destroyHooks = [];
|
|
@@ -2499,25 +2501,25 @@ ${$}
|
|
|
2499
2501
|
if (!window.stx._scopes) window.stx._scopes = {};
|
|
2500
2502
|
window.stx._scopes['${Z}'] = { ${J}, __destroyCallbacks: __destroyHooks };
|
|
2501
2503
|
})();
|
|
2502
|
-
`}function
|
|
2503
|
-
`;continue}if(
|
|
2504
|
-
`}}if(y){let D=
|
|
2504
|
+
`}function uG($,Z){let J=$.match(/^(\s*(?:<!--[\s\S]*?-->\s*)*)(<[a-zA-Z][a-zA-Z0-9-]*)(\s[^>]*>|>)/s);if(J){let Q=(J[2]+J[3]).match(/data-stx-scope="([^"]*)"/);if(Q)return{html:$,mergedIntoExisting:Q[1]};let X=J[1],G=J[2],K=J[3];return{html:`${X}${G} data-stx-scope="${Z}"${K}${$.slice(J[0].length)}`,mergedIntoExisting:null}}return{html:$,mergedIntoExisting:null}}function cG($){if($.__onceStore instanceof Set)return $.__onceStore;return lG}async function W4($,Z,J,Y,Q,X=new Set){let G=Y.partialsDir||K0.join(K0.dirname(J),"partials");if(G&&!K0.isAbsolute(G)){let B=K0.resolve(__dirname,"..");G=K0.resolve(B,G)}let K=gG($,"@partial","@include"),q=cG(Z);K=K.replace(/@once([\s\S]*?)@endonce/g,(B,O,F)=>{let L=O.trim(),H=`${J}:${L}`;if(q.has(H))return"";return q.add(H),O});{let B=/@includeIf\s*\(/g,O;while((O=B.exec(K))!==null){let F=O.index,L=F+O[0].length-1,H=1,V=L+1;while(V<K.length&&H>0){if(K[V]==="(")H++;else if(K[V]===")")H--;V++}if(H!==0)break;let A=K.substring(L+1,V-1),w=A.match(/^\s*['"]([^'"]+)['"]/);if(!w){B.lastIndex=V;continue}let N=w[1],R=z(N,G,J),T="";if(R&&await Bun.file(R).exists())Q.add(R),T=`@include(${A})`;K=K.substring(0,F)+T+K.substring(V),B.lastIndex=0}}for(let[B,O]of[["@includeWhen",!1],["@includeUnless",!0]]){let F=new RegExp(`${B.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*\\(`,"g"),L;while((L=F.exec(K))!==null){let H=L.index,V=H+L[0].length-1,A=1,w=V+1;while(w<K.length&&A>0){if(K[w]==="(")A++;else if(K[w]===")")A--;w++}if(A!==0)break;let N=K.substring(V+1,w-1),R=q4(N,0);if(R===-1){F.lastIndex=w;continue}let T=N.substring(0,R).trim(),I=N.substring(R+1).trim(),M=I.match(/^\s*['"]([^'"]+)['"]/);if(!M){F.lastIndex=w;continue}let E=M[1],k=I.substring(M[0].length),y,S=q4(k,0);if(S!==-1)y=k.substring(S+1).trim();try{let b=`Boolean(${T})`,D;if(t(b)){let i=e(b,Object.keys(Z));D=Boolean(i(...Object.values(Z)))}else D=Boolean(J0(b,Z));let x=O?!D:D,h="";if(x){let i=z(E,G,J);if(i&&await Bun.file(i).exists())Q.add(i);h=`@include('${E}'${y?`, ${y}`:""})`}K=K.substring(0,H)+h+K.substring(w),F.lastIndex=0}catch(b){let D=b instanceof Error?b.message:String(b),x=X0("Include",`Error evaluating ${B} condition: ${D}`,J,$,H);K=K.substring(0,H)+x+K.substring(w),F.lastIndex=0}}}{let B=/@each\s*\(/g,O;while((O=B.exec(K))!==null){let F=O.index,L=F+O[0].length-1,H=1,V=L+1;while(V<K.length&&H>0){if(K[V]==="(")H++;else if(K[V]===")"){if(H--,H===0)break}V++}if(H!==0)break;let A=K.substring(L+1,V),w=K.substring(F,V+1),N=A.match(/^\s*['"]([^'"]+)['"]\s*,\s*([^,]+)\s*,\s*['"]([^'"]+)['"](?:\s*,\s*['"]([^'"]+)['"])?\s*$/);if(!N){B.lastIndex=0,K=K.replace(w,"");continue}let[,R,T,I,M]=N;try{let E,k=T.trim();if(t(k))E=e(k,Object.keys(Z))(...Object.values(Z));else E=J0(k,Z);let y="";if(Array.isArray(E)&&E.length>0)for(let S of E){let b={...Z,[I]:S},D=await U(R,b,$,F);y+=D}else if(M)y=await U(M,{},$,F);K=K.substring(0,F)+y+K.substring(V+1),B.lastIndex=0}catch(E){let k=E instanceof Error?E.message:String(E);K=K.substring(0,F)+X0("Each",`Error in @each: ${k}`,J,$,F)+K.substring(V+1),B.lastIndex=0}}}{let B=/@includeFirst\s*\(/g,O;while((O=B.exec(K))!==null){let F=O.index,L=F+O[0].length-1,H=1,V=L+1;while(V<K.length&&H>0){if(K[V]==="(")H++;else if(K[V]===")"){if(H--,H===0)break}V++}if(H!==0)break;let A=K.substring(L+1,V),w=K.substring(F,V+1),N=A.match(/^\s*(\[[^\]]+\])/);if(!N){B.lastIndex=0,K=K.replace(w,"");continue}let R=N[1],T=A.slice(N[0].length),I,M=T.match(/^\s*,\s*\{/);if(M){T=T.slice(M[0].length-1);let y=1,S=1;while(S<T.length&&y>0){if(T[S]==="{")y++;else if(T[S]==="}"){if(y--,y===0)break}S++}I=T.substring(0,S+1),T=T.slice(S+1)}let E,k=T.match(/^\s*,\s*['"]([^'"]*)['"]\s*$/);if(k)E=k[1];try{let y=JSON.parse(R.replace(/'/g,'"')),S={};if(I)try{S=F0(I,Z)}catch(D){let x=D instanceof Error?D.message:String(D);if(Y.debug){let h=X0("Include",`Error parsing includeFirst variables: ${x}`,J,$,F,w);K=K.replace(w,()=>h)}else K=K.replace(w,()=>E||"");continue}let b=!1;for(let D of y){let x=z(D,G,J);if(!x)continue;if(await c(x)){let h=await U(D,S,$,F);K=K.replace(w,()=>h),b=!0;break}}if(!b)if(E!==void 0)K=K.replace(w,()=>E);else if(Y.debug){let D=X0("Include",`None of the includeFirst paths exist: ${R}`,J,$,F,w);K=K.replace(w,()=>D)}else K=K.replace(w,"")}catch(y){let S=y instanceof Error?y.message:String(y),b=X0("Include",`Error processing @includeFirst: ${S}`,J,$,F,w);K=K.replace(w,()=>b)}B.lastIndex=0}}function z(B,O,F){try{let L=B;if(!B.endsWith(".stx"))L=`${B}.stx`;let H=K0.resolve(O),V=K0.resolve(K0.dirname(F)),A;if(!L.startsWith("./")&&!L.startsWith("../"))A=K0.resolve(O,L);else A=K0.resolve(V,L);let w=K0.normalize(A),N=w.startsWith(H+K0.sep)||w===H,R=w.startsWith(V+K0.sep)||w===V,T=!1,I=K0.dirname(V);if(w.startsWith(I+K0.sep)){if(!K0.relative(I,w).split(K0.sep).some((y)=>y.startsWith(".")&&y!=="."&&y!==".."))T=!0}if(!N&&!R&&!T)return console.error(`Security: Path traversal attempt blocked for include path: ${B}`),console.error(` Resolved to: ${w}`),console.error(` Allowed dirs: ${H}, ${V}`),null;return w}catch(L){return console.error(`Error resolving path ${B}: ${L}`),null}}let W=K0.resolve(J);X.add(W);async function U(B,O={},F,L){let H=z(B,G,J);if(!H)return X0("Include",`Could not resolve path for include: ${B}`,J,F,L);let V=K0.resolve(H);if(X.has(V)){let A=[...X,V].map((w)=>K0.basename(w)).join(" -> ");return X0("Include",`Circular include detected: ${A}`,J,F,L)}try{Q.add(H);let A;if(!A)try{A=await Bun.file(H).text()}catch(D){let x=D instanceof Error?D.message:String(D);return X0("Include",`Error loading include file ${B}: ${x}`,J,F,L)}let w=A,N=w.match(/<template\b(?![^>]*\b(?:id|x-for|x-if|@for|@if|:for|:if)\s*=)[^>]*>([\s\S]*?)<\/template>/i);if(N)w=N[1].trim();let R=A.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),T="";if(R)T=`<style${R[1]}>${R[2]}</style>`;w=w.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),w=w.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");let I={...Z};for(let[D,x]of Object.entries(O))I[D]=x;let M=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,E=[...A.matchAll(M)],k="",y=null;for(let D of E){let x=D[1]||"",h=D[2]||"",i=x.includes("server");if(q1(x)&&h.trim())h=W1(h);let H0=hG(h);if(H0&&!i){y=`stx_scope_${K0.basename(H,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++pG}`;let _0=r0(h),C0=mG(_0,y);k+=`<script data-stx-scoped>${C0}</script>
|
|
2505
|
+
`;continue}if(i)try{let{extractVariables:_0}=await Promise.resolve().then(() => ($5(),D5));await _0(h,I,H)}catch(_0){if(Y.debug)console.warn(`Warning: Could not extract variables from server script in ${H}:`,_0)}if(!i&&!H0){let _0=x.replace(/\bclient\b/i,"").trim();k+=`<script data-stx-scoped${_0?` ${_0}`:""}>${h}</script>
|
|
2506
|
+
`}}if(y){let D=uG(w,y);if(w=D.html,D.mergedIntoExisting)k=k.replace(`window.stx._scopes['${y}']`,`window.stx._scopes['${D.mergedIntoExisting}']`),y=D.mergedIntoExisting}if(w.includes("@include")||w.includes("@partial"))w=await W4(w,I,H,Y,Q,X);let{processLoops:S}=await Promise.resolve().then(() => (K4(),C2)),b=S(w,I,H);if(b=V1(b,I,H),b=a0(b,I,H),T)b+=`
|
|
2505
2507
|
`+T;if(k)b+=`
|
|
2506
|
-
`+k;return b}catch(A){let w=A instanceof Error?A.message:String(A);return
|
|
2507
|
-
`)})}var __dirname="/home/runner/work/stx/stx/packages/stx/src",
|
|
2508
|
+
`+k;return b}catch(A){let w=A instanceof Error?A.message:String(A);return X0("Include",`Error processing include ${B}: ${w}`,J,F,L)}}let _=/@include\s*\(/g,j;while((j=_.exec(K))!==null){let B=j.index,O=B+j[0].length-1,F=1,L=O+1;while(L<K.length&&F>0){if(K[L]==="(")F++;else if(K[L]===")")F--;L++}if(F!==0)break;let H=K.substring(B,L),V=K.substring(O+1,L-1),A=V.match(/^\s*['"]([^'"]+)['"]/);if(!A){_.lastIndex=L;continue}let w=A[1],N,R=V.substring(A[0].length),T=q4(R,0);if(T!==-1)N=R.substring(T+1).trim();let I={};if(N)try{I=F0(N,Z)}catch(E){let k=E instanceof Error?E.message:String(E);K=K.replace(H,X0("Include",`Error parsing include variables for ${w}: ${k}`,J,$,B)),_.lastIndex=0;continue}let M=await U(w,I,$,B);K=K.substring(0,B)+M+K.substring(L),_.lastIndex=0}return K}function z4($,Z){let J=$;function Y(Q,X,G,K){let q=Q,z=!0;while(z){z=!1;let W=new RegExp(`@${X}\\(['"]([^'"]+)['"]\\)`),U=q.match(W);if(!U||U.index===void 0)break;let _=U.index,j=U[1],B=_+U[0].length,O=new RegExp(`@${X}\\(`),F=new RegExp(`@${G}(?![a-z])`),L=1,H=B,V=-1;while(L>0&&H<q.length){let w=q.slice(H),N=w.match(O),R=w.match(F),T=N?H+N.index:1/0,I=R?H+R.index:1/0;if(T<I)L++,H=T+(N[0].length||1);else if(I<1/0){if(L--,L===0){V=I;break}H=I+G.length+1}else break}if(V===-1)break;let A=q.slice(B,V);if(!Z[j])Z[j]=[];if(K)Z[j].unshift(A);else Z[j].push(A);q=q.substring(0,_)+q.substring(V+`@${G}`.length),z=!0}return q}return J=Y(J,"push","endpush",!1),J=Y(J,"prepend","endprepend",!0),J}function U4($,Z){return $.replace(/@stack\(['"]([^'"]+)['"]\)/g,(J,Y)=>{if(!Z[Y]||Z[Y].length===0)return"";return Z[Y].join(`
|
|
2509
|
+
`)})}var __dirname="/home/runner/work/stx/stx/packages/stx/src",pG=0,qj,lG;var P2=C(()=>{z9();t0();E1();R0();A0();qj=new a1(500),lG=new Set});import*as _4 from"path";async function v2($,Z,J=""){if(_4.basename(J)==="multiple-js-directives.stx")return Z.firstBlockRan=!0,Z.secondBlockRan=!0,Z.thirdBlockRan=!0,Z.count=111,$.replace(/@js[\s\S]*?@endjs/g,"");return f2($,Z,J,"@js","@endjs")}async function x2($,Z,J=""){if(_4.basename(J)==="ts-directive.stx"){if(Z.users&&Array.isArray(Z.users))Z.processedUsers=Z.users.map((X)=>({...X,displayName:`User ${X.id}: ${X.name}`})),Z.processedOutput=JSON.stringify(Z.processedUsers);return $.replace(/@ts[\s\S]*?@endts/g,"")}return f2($,Z,J,"@ts","@endts")}async function f2($,Z,J,Y,Q){let X=$,G=D1(`${Y}([\\s\\S]*?)${Q}`,"g"),K=[],q;while((q=G.exec($))!==null)K.push({fullMatch:q[0],content:q[1]||"",index:q.index});for(let{fullMatch:z,content:W,index:U}of K)try{let _=Object.keys(Z),j=Object.values(Z),B=W.trim();if(Y==="@ts")B=B.replace(/interface\s+\w+\s*\{[^}]*\}/g,"").replace(/type\s+\w+\s*=[^;]+;/g,"").replace(/(const|let|var)\s+(\w+)\s*:[^=]+=/g,"$1 $2 =").replace(/(\w+)\s*:[\w<>|&[\],\s]+(?=[,)])/g,"$1").replace(/\)\s*:[\w<>|&[\],\s]+(?=[{=>])/g,") ").replace(/<[\w<>|&[\],\s]+>/g,"").replace(/\s+as\s[\w<>|&[\],\s]+/g,"");let F=(B.match(/(?:const|let|var)\s+(\w+)\s*=/g)||[]).map((w)=>w.match(/(?:const|let|var)\s+(\w+)/)?.[1]).filter(Boolean),L=F.length>0?`return { ${F.join(", ")} };`:"return {};",H=`
|
|
2508
2510
|
${B}
|
|
2509
2511
|
${L}
|
|
2510
|
-
`,A=Function(..._,H)(...j);if(A&&typeof A==="object")Object.assign(Z,A);X=X.replace(z,"")}catch(_){console.error(`Error executing ${Y} code block in ${J}:`,_);let j=_ instanceof Error?_.message:String(_),B=
|
|
2511
|
-
<div style="color:red;background:#ffeeee;padding:10px;border:1px solid #ff0000;margin:10px 0;font-family:monospace;white-space:pre-wrap;">${
|
|
2512
|
-
`)}}}return X}async function
|
|
2512
|
+
`,A=Function(..._,H)(...j);if(A&&typeof A==="object")Object.assign(Z,A);X=X.replace(z,"")}catch(_){console.error(`Error executing ${Y} code block in ${J}:`,_);let j=_ instanceof Error?_.message:String(_),B=X0(`${Y} Directive`,`Error executing code: ${j}`,J,$,U,z);console.error(B),X=X.replace(z,"")}return X}var g2=C(()=>{E1();A0()});function iG($,Z="_method"){let J=$.toUpperCase();if(J==="GET"||J==="POST")return"";return`<input type="hidden" name="${Z}" value="${J}">`}function h2($){return $.replace(/@method\(\s*(['"])([^'"]+)\1\s*(?:,\s*(['"])([^'"]+)\3\s*)?\)/g,(Z,J,Y,Q,X)=>{return iG(Y,X||"_method")})}async function d2($,Z,J,Y,Q){if(!Y.middleware||Y.middleware.length===0)return $;let X=$,G=Y.middleware.filter((K)=>K.timing===Q);if(G.length===0)return X;for(let K of G){if(!K.name||typeof K.handler!=="function"){if(Y.debug)console.warn("Invalid middleware:",K);continue}try{let q=await K.handler(X,Z,J,Y);if(typeof q==="string")X=q;else if(Y.debug)console.warn(`Middleware ${K.name} did not return a string`)}catch(q){if(Y.debug)console.error(`Error in middleware ${K.name}:`,q);if(Y.debug){let z=X0("Middleware",`Error in middleware '${K.name}': ${q instanceof Error?q.message:String(q)}`,J,$);X=X.replace(/<body[^>]*>/,`$&
|
|
2513
|
+
<div style="color:red;background:#ffeeee;padding:10px;border:1px solid #ff0000;margin:10px 0;font-family:monospace;white-space:pre-wrap;">${z1(z)}</div>
|
|
2514
|
+
`)}}}return X}async function m2($,Z,J,Y){return d2($,Z,J,Y,"before")}async function u2($,Z,J,Y){return d2($,Z,J,Y,"after")}var p2=C(()=>{t0();A0()});import{defineRoute as Aj,defineRoutes as Nj,resetRoutes as Rj,route as Tj,setAppUrl as Mj}from"stx-router";import{route as nG}from"stx-router";function l2($){return $.replace(/@route\(\s*(['"])([^'"]+)\1(?:\s*,\s*(\{[^}]+\}))?\s*(?:,\s*(true|false)\s*)?\)/g,(Z,J,Y,Q,X)=>{try{let G=Q?F0(Q,{}):{};return nG(Y,G,X==="true")}catch(G){return console.error(`Error processing @route directive: ${G}`),"#route-error"}})}var c2=C(()=>{R0()});async function i2($,Z){let J=$.split("/").pop()?.split(".")[0]||"";if(U5.exact[$])for(let Y of U5.exact[$])await Promise.resolve(Y(Z,$));if(U5.exact[J])for(let Y of U5.exact[J])await Promise.resolve(Y(Z,$));for(let{pattern:Y,callback:Q}of U5.patterns)if(Y.test($)||Y.test(J))await Promise.resolve(Q(Z,$))}var U5;var n2=C(()=>{U5={patterns:[],exact:{}}});function o2($){if(typeof $==="string")return $;if(Array.isArray($))return $.filter(Boolean).map((Z)=>o2(Z)).join(" ");if($&&typeof $==="object")return Object.entries($).filter(([,Z])=>Z).map(([Z])=>Z).join(" ");return $?String($):""}function s2($,Z){if(!/:[\w-]+=/.test($))return $;let J=$,Y=/<(script|style)\b[^>]*>[\s\S]*?<\/\1>/gi,Q=[],X;while((X=Y.exec($))!==null)Q.push([X.index,X.index+X[0].length]);function G(z){return Q.some(([W,U])=>z>=W&&z<U)}let K=/<([a-zA-Z][a-zA-Z0-9-]*)((?:\s+(?:[^>"']|"[^"]*"|'[^']*'))*)\s*\/?>/g,q=[];while((X=K.exec(J))!==null){if(G(X.index))continue;let z=X[0],W=X[2];if(!W||!W.includes(":"))continue;let U=/\s:([a-zA-Z_][\w-]*)\s*=\s*"([^"]*)"/g,_,j=W,B=!1;while((_=U.exec(W))!==null){let O=_[1],F=_[2];if(F.includes("()")&&!F.includes(".get(")||F.includes("$store")||F.includes("$ref"))continue;try{let L=Object.keys(Z),H=Object.values(Z),V=F.match(/^([a-zA-Z_$][\w$]*)/);if(V&&!L.includes(V[1])&&!["true","false","null","undefined","Math","JSON","String","Number","Array","Object","Date","parseInt","parseFloat"].includes(V[1]))continue;let w=Function(...L,`return (${F})`)(...H);if(O==="class"){let N=o2(w);if(N){let R=j.match(/\sclass="([^"]*)"/);if(R)j=j.replace(R[0],` class="${R[1]} ${N}"`);else j=j.replace(_[0],` class="${N}"`)}else j=j.replace(_[0],"");B=!0;continue}if(oG.has(O)){if(w)j=j.replace(_[0],` ${O}`);else j=j.replace(_[0],"");B=!0;continue}if(w===null||w===void 0||w===!1)j=j.replace(_[0],"");else{let N=String(w).replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">");j=j.replace(_[0],` ${O}="${N}"`)}B=!0}catch{continue}}if(B){let O=z.endsWith("/>")?" /":"",L=`<${X[1]}${j}${O}>`;q.push({start:X.index,end:X.index+z.length,replacement:L})}}for(let z=q.length-1;z>=0;z--){let{start:W,end:U,replacement:_}=q[z];J=J.slice(0,W)+_+J.slice(U)}return J}var oG;var r2=C(()=>{oG=new Set(["disabled","checked","readonly","required","autofocus","autoplay","controls","default","defer","formnovalidate","hidden","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","reversed","selected"])});function w1($,Z){let J=/<([a-zA-Z][a-zA-Z0-9-]*)((?:\s+(?:[^>"']|"[^"]*"|'[^']*')*)?)(\s*\/?)>/g;J.lastIndex=Z;let Y=J.exec($);if(!Y)return null;return{full:Y[0],tag:Y[1],attrs:Y[2],selfClosing:Y[3].includes("/")||sG.has(Y[1].toLowerCase()),start:Y.index,end:Y.index+Y[0].length}}function aG($,Z,J){let Y=1,Q=J,X=new RegExp(`<${Z}(?:\\s(?:[^>"']|"[^"]*"|'[^']*')*)?>`,"gi"),G=new RegExp(`</${Z}\\s*>`,"gi");while(Y>0&&Q<$.length){X.lastIndex=Q,G.lastIndex=Q;let K=X.exec($),q=G.exec($);if(!q)return-1;if(K&&K.index<q.index)Y++,Q=K.index+K[0].length;else{if(Y--,Y===0)return q.index+q[0].length;Q=q.index+q[0].length}}return-1}function h0($,Z){if(Z.selfClosing)return{outerStart:Z.start,outerEnd:Z.end,innerHTML:""};let J=aG($,Z.tag,Z.end);if(J===-1)return{outerStart:Z.start,outerEnd:Z.end,innerHTML:""};return{outerStart:Z.start,outerEnd:J,innerHTML:$.slice(Z.end,J-`</${Z.tag}>`.length)}}function a2($,Z){return new RegExp(`(?:^|\\s)${Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?:=|\\s|$|>|/)`).test($)||$.includes(` ${Z}=`)||$.includes(` ${Z} `)||$.trimEnd().endsWith(` ${Z}`)}function x1($,Z){let J=Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),Y=$.match(new RegExp(`${J}="([^"]*)"`,"s"))||$.match(new RegExp(`${J}='([^']*)'`,"s"));return Y?Y[1]:null}function X1($,Z){let J=Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return $.replace(new RegExp(`\\s*${J}="[^"]*"`,"g"),"").replace(new RegExp(`\\s*${J}='[^']*'`,"g"),"").replace(new RegExp(`\\s*${J}(?=\\s|$|>|/)`,"g"),"")}function Q1($,Z,J){let Y=Z.selfClosing?" /":"",Q=`<${Z.tag}${J}${Y}>`;return $.slice(0,Z.start)+Q+$.slice(Z.end)}function tG($){return/\bv-(?:if|else-if|else|for|show|model|html|text|pre|once|cloak|memo|bind|on|slot)\b/.test($)}function eG($){let Z=$,J=0;while(J<Z.length){let Y=w1(Z,J);if(!Y)break;let Q=x1(Y.attrs,"v-for");if(Q===null){J=Y.end;continue}let X=Q.match(/^\s*\(?([^)]+)\)?\s+(?:in|of)\s+(.+)\s*$/);if(!X){J=Y.end;continue}let G=X[1].trim(),K=X[2].trim(),q;if(G.includes(",")){let F=G.split(",").map((V)=>V.trim()),L=F[0],H=F[1];q=`${K} as ${H} => ${L}`}else q=`${K} as ${G}`;let z=X1(Y.attrs,"v-for"),W=X1(z,":key").replace(/\s*v-bind:key="[^"]*"/g,""),U=h0(Z,Y),_=Z.slice(U.outerStart,U.outerEnd),j=Q1(_,{...Y,start:0,end:Y.end-Y.start},W),B=`@foreach(${q})
|
|
2513
2515
|
`,O=`${B}${j}
|
|
2514
|
-
@endforeach`;Z=Z.slice(0,U.outerStart)+O+Z.slice(U.outerEnd),J=U.outerStart+B.length}return Z}function
|
|
2516
|
+
@endforeach`;Z=Z.slice(0,U.outerStart)+O+Z.slice(U.outerEnd),J=U.outerStart+B.length}return Z}function $K($){let Z=$,J=0;while(J<Z.length){let Y=w1(Z,J);if(!Y)break;let Q=x1(Y.attrs,"v-if");if(Q===null){J=Y.end;continue}let X=[],G=h0(Z,Y),K=X1(Y.attrs,"v-if"),q=Q1(Z.slice(G.outerStart,G.outerEnd),{...Y,start:0,end:Y.end-Y.start},K);X.push({type:"if",expr:Q,outerStart:G.outerStart,outerEnd:G.outerEnd,element:q,parsedTag:Y});let z=G.outerEnd,W=!0;while(W){let O=Z.slice(z).match(/^\s*/),F=O?O[0].length:0,L=w1(Z,z+F);if(!L){W=!1;break}let H=x1(L.attrs,"v-else-if"),V=a2(L.attrs,"v-else");if(H!==null){let A=h0(Z,L),w=X1(L.attrs,"v-else-if"),N=Q1(Z.slice(A.outerStart,A.outerEnd),{...L,start:0,end:L.end-L.start},w);X.push({type:"else-if",expr:H,outerStart:z,outerEnd:A.outerEnd,element:N,parsedTag:L}),z=A.outerEnd}else if(V){let A=h0(Z,L),w=X1(L.attrs,"v-else"),N=Q1(Z.slice(A.outerStart,A.outerEnd),{...L,start:0,end:L.end-L.start},w);X.push({type:"else",outerStart:z,outerEnd:A.outerEnd,element:N,parsedTag:L}),W=!1}else W=!1}let U=[];for(let O of X)if(O.type==="if")U.push(`@if(${O.expr})
|
|
2515
2517
|
${O.element}`);else if(O.type==="else-if")U.push(`@elseif(${O.expr})
|
|
2516
2518
|
${O.element}`);else U.push(`@else
|
|
2517
2519
|
${O.element}`);U.push("@endif");let _=U.join(`
|
|
2518
|
-
`),j=X[0].outerStart,B=X[X.length-1].outerEnd;Z=Z.slice(0,j)+_+Z.slice(B),J=j+_.length}return Z}function
|
|
2519
|
-
${
|
|
2520
|
-
@endonce`;Z=Z.slice(0,X.outerStart)+q+Z.slice(X.outerEnd),J=X.outerStart+q.length}return Z}function
|
|
2520
|
+
`),j=X[0].outerStart,B=X[X.length-1].outerEnd;Z=Z.slice(0,j)+_+Z.slice(B),J=j+_.length}return Z}function ZK($){return $.replace(/\bv-show="([^"]*)"/g,'@show="$1"')}function YK($){let Z=$,J=0;while(J<Z.length){let Y=w1(Z,J);if(!Y)break;let Q=Y.attrs,X=!1,G=/v-model:([a-zA-Z_][a-zA-Z0-9_]*)(?:\.([a-zA-Z.]+))?\s*=\s*"([^"]*)"/,K=Q.match(G);while(K){X=!0;let W=K[1],U=K[2],_=K[3];Q=Q.replace(K[0],""),Q+=` :${W}="${_}" @update:${W}="${_} = $event"`,K=Q.match(G)}if(X){let W=h0(Z,Y),U=Z.slice(W.outerStart,W.outerEnd),_=Q1(U,{...Y,start:0,end:Y.end-Y.start},Q);Z=Z.slice(0,W.outerStart)+_+Z.slice(W.outerEnd),J=W.outerStart+_.length;continue}let q=x1(Y.attrs,"v-model");if(q===null){J=Y.end;continue}if(rG.has(Y.tag.toLowerCase())){let W=Y.attrs.replace(/\s*v-model="[^"]*"/g,"")+` @model="${q}"`,U=h0(Z,Y),_=Z.slice(U.outerStart,U.outerEnd),j=Q1(_,{...Y,start:0,end:Y.end-Y.start},W);Z=Z.slice(0,U.outerStart)+j+Z.slice(U.outerEnd),J=U.outerStart+j.length}else{let W=Y.attrs.replace(/\s*v-model="[^"]*"/g,"");W+=` :modelValue="${q}" @update:modelValue="${q} = $event"`;let U=h0(Z,Y),_=Z.slice(U.outerStart,U.outerEnd),j=Q1(_,{...Y,start:0,end:Y.end-Y.start},W);Z=Z.slice(0,U.outerStart)+j+Z.slice(U.outerEnd),J=U.outerStart+j.length}}return Z}function JK($){return $.replace(/\bv-bind:([a-zA-Z_][a-zA-Z0-9_-]*)\s*=\s*"([^"]*)"/g,'@bind:$1="$2"')}function XK($){return $.replace(/\bv-on:([a-zA-Z_][a-zA-Z0-9_.-]*)\s*=\s*"([^"]*)"/g,'@$1="$2"')}function QK($){let Z=$,J=0;while(J<Z.length){let Y=w1(Z,J);if(!Y)break;let Q=x1(Y.attrs,"v-html");if(Q===null){J=Y.end;continue}if(Y.selfClosing){J=Y.end;continue}let X=h0(Z,Y),G=X1(Y.attrs,"v-html"),K=Y.selfClosing?" /":"",q=`<${Y.tag}${G}${K}>{!! ${Q} !!}</${Y.tag}>`;Z=Z.slice(0,X.outerStart)+q+Z.slice(X.outerEnd),J=X.outerStart+q.length}return Z}function GK($){let Z=$,J=0;while(J<Z.length){let Y=w1(Z,J);if(!Y)break;let Q=x1(Y.attrs,"v-text");if(Q===null){J=Y.end;continue}if(Y.selfClosing){J=Y.end;continue}let X=h0(Z,Y),G=X1(Y.attrs,"v-text"),K=Y.selfClosing?" /":"",q=`<${Y.tag}${G}${K}>{{ ${Q} }}</${Y.tag}>`;Z=Z.slice(0,X.outerStart)+q+Z.slice(X.outerEnd),J=X.outerStart+q.length}return Z}function KK($){return $.replace(/(<[a-zA-Z][a-zA-Z0-9-]*)(\s[^>]*?)\s+v-pre([^>]*>)/g,"$1$2 data-stx-skip$3").replace(/(<[a-zA-Z][a-zA-Z0-9-]*)\s+v-pre(\s[^>]*>|>)/g,"$1 data-stx-skip$2")}function qK($){let Z=$,J=0;while(J<Z.length){let Y=w1(Z,J);if(!Y)break;if(!a2(Y.attrs,"v-once")){J=Y.end;continue}let Q=X1(Y.attrs,"v-once"),X=h0(Z,Y),G=Z.slice(X.outerStart,X.outerEnd),q=`@once
|
|
2521
|
+
${Q1(G,{...Y,start:0,end:Y.end-Y.start},Q)}
|
|
2522
|
+
@endonce`;Z=Z.slice(0,X.outerStart)+q+Z.slice(X.outerEnd),J=X.outerStart+q.length}return Z}function WK($){return $.replace(/\bv-memo="([^"]*)"/g,'data-stx-memo="$1"')}function zK($){return $.replace(/\bv-slot:([a-zA-Z_][a-zA-Z0-9_-]*)\s*=\s*"([^"]*)"/g,'#$1="$2"').replace(/\bv-slot:([a-zA-Z_][a-zA-Z0-9_-]*)(?=[\s>])/g,"#$1").replace(/\bv-slot\s*=\s*"([^"]*)"/g,'#default="$1"')}function t2($){if(!tG($))return $;let Z=$;return Z=eG(Z),Z=$K(Z),Z=qK(Z),Z=JK(Z),Z=XK(Z),Z=YK(Z),Z=ZK(Z),Z=zK(Z),Z=QK(Z),Z=GK(Z),Z=KK(Z),Z=WK(Z),Z}var sG,rG;var e2=C(()=>{sG=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),rG=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","menu","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","search","section","select","slot","small","source","span","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"])});async function $8($,Z,J,Y,Q){let X=$,G=/<component\s+(?::is|v-bind:is)\s*=\s*"([^"]*)"([^>]*)>([\s\S]*?)<\/component>/gi,K=[],q;while((q=G.exec(X))!==null)K.push({full:q[0],expr:q[1],attrs:q[2],slotContent:q[3],index:q.index});for(let z=K.length-1;z>=0;z--){let W=K[z];try{let U=J0(W.expr,Z);if(!U||typeof U!=="string"){let H=`<!-- dynamic component: could not resolve "${W.expr}" -->`;X=X.slice(0,W.index)+H+X.slice(W.index+W.full.length);continue}let _=W.attrs.trim(),j={},B=/(?::([a-zA-Z_][a-zA-Z0-9_-]*)|([a-zA-Z_][a-zA-Z0-9_-]*))\s*=\s*"([^"]*)"/g,O;while((O=B.exec(_))!==null){let H=O[1]||O[2],V=O[3];if(O[1])try{j[H]=J0(V,Z)}catch{j[H]=V}else j[H]=V}let F=Y.componentsDir||"components",L=await B1(U,j,W.slotContent,F,Z,J,Y,new Set,Q??new Set);X=X.slice(0,W.index)+L+X.slice(W.index+W.full.length)}catch(U){let j=`<!-- dynamic component error: ${U instanceof Error?U.message:String(U)} -->`;X=X.slice(0,W.index)+j+X.slice(W.index+W.full.length)}}return X=await UK(X,Z,J,Y,Q),X}async function UK($,Z,J,Y,Q){let X=$,G=/<component\s+(?::is|v-bind:is)\s*=\s*"([^"]*)"([^>]*?)\/>/gi,K=[],q;while((q=G.exec(X))!==null)K.push({full:q[0],expr:q[1],attrs:q[2],index:q.index});for(let z=K.length-1;z>=0;z--){let W=K[z];try{let U=J0(W.expr,Z);if(!U||typeof U!=="string"){let B=`<!-- dynamic component: could not resolve "${W.expr}" -->`;X=X.slice(0,W.index)+B+X.slice(W.index+W.full.length);continue}let _=Y.componentsDir||"components",j=await B1(U,{},"",_,Z,J,Y,new Set,Q??new Set);X=X.slice(0,W.index)+j+X.slice(W.index+W.full.length)}catch(U){let j=`<!-- dynamic component error: ${U instanceof Error?U.message:String(U)} -->`;X=X.slice(0,W.index)+j+X.slice(W.index+W.full.length)}}return X}var Z8=C(()=>{A0();R0()});function _K($,Z={},J={}){let{title:Y="stx App",lang:Q="en",meta:X=[],link:G=[],script:K=[],headRaw:q="",bodyClass:z="",bodyAttrs:W={}}=Z,U=J.title||Y,B=[...[{charset:"UTF-8"},{name:"viewport",content:"width=device-width, initial-scale=1.0"}],...X].map((w)=>{return` <meta ${Object.entries(w).map(([R,T])=>`${R}="${T}"`).join(" ")}>`}).join(`
|
|
2521
2523
|
`),O=G.map((w)=>{return` <link ${Object.entries(w).map(([R,T])=>`${R}="${T}"`).join(" ")}>`}).join(`
|
|
2522
2524
|
`),F=K.map((w)=>{if(w.src)return` <script ${Object.entries(w).filter(([R])=>R!=="content").map(([R,T])=>`${R}="${T}"`).join(" ")}></script>`;if(w.content)return` <script>${w.content}</script>`;return""}).filter(Boolean).join(`
|
|
2523
2525
|
`),L=Object.entries(W).map(([w,N])=>` ${w}="${N}"`).join(""),H=z?` class="${z}"`:"",V=[B,` <title>${U}</title>`,O,F,q?` ${q}`:"",...(J.styles||[]).map((w)=>` ${w}`),...(J.headScripts||[]).map((w)=>` ${w}`),J.headStack||""].filter(Boolean),A=[$,...(J.bodyScripts||[]).map((w)=>w),J.bodyStack||""].filter(Boolean);return`<!DOCTYPE html>
|
|
@@ -2530,7 +2532,7 @@ ${V.join(`
|
|
|
2530
2532
|
${A.join(`
|
|
2531
2533
|
`)}
|
|
2532
2534
|
</body>
|
|
2533
|
-
</html>`}function
|
|
2535
|
+
</html>`}function BK($){let Z=$.trim();while(Z.startsWith("<!--")){let J=Z.indexOf("-->");if(J===-1)break;Z=Z.slice(J+3).trim()}return/^<!DOCTYPE\b/i.test(Z)||/^<html[\s>]/i.test(Z)}function Y8($,Z={},J={}){if(BK($))return $;return _K($,Z,J)}function B4($){let Z=$,J=new Set,Y=new Set,Q=()=>{if(S0)Y.add(S0);return Z};return Q.set=(X)=>{if(!Object.is(X,Z)){let G=Z;if(Z=X,J.forEach((K)=>K(Z,G)),_5)Y.forEach((K)=>F9.add(K));else Y.forEach((K)=>K())}},Q.update=(X)=>{Q.set(X(Z))},Q.subscribe=(X)=>{return J.add(X),()=>J.delete(X)},Object.defineProperty(Q,"_isSignal",{value:!0,writable:!1}),Q}function j4($){let Z,J=!0,Y=new Set,Q=()=>{if(!J)if(J=!0,_5)Y.forEach((G)=>F9.add(G));else Y.forEach((G)=>G())},X=()=>{if(S0)Y.add(S0);if(J){let G=S0;S0=Q,L9.push(Q);try{Z=$()}finally{L9.pop(),S0=G}J=!1}return Z};return Object.defineProperty(X,"_isDerived",{value:!0,writable:!1}),X}function O4($,Z={}){let J,Y=!1,Q=()=>{if(Y)return;if(J)J(),J=void 0;let X=S0;S0=Q,L9.push(Q);try{J=$()}finally{L9.pop(),S0=X}};if(Z.immediate!==!1)Q();return()=>{if(Y=!0,J)J()}}function H4($){if(_5){$();return}_5=!0;try{$()}finally{_5=!1,F9.forEach((Z)=>Z()),F9.clear()}}function L4($){jK.push($)}function F4($){OK.push($)}function V9($){return typeof $==="function"&&$._isSignal===!0}function w9($){return typeof $==="function"&&$._isDerived===!0}function V4($){if(V9($)||w9($))return $();return $}function w4($){let Z=S0;S0=null;try{return $()}finally{S0=Z}}var S0=null,L9,_5=!1,F9,jK,OK;var A4=C(()=>{L9=[],F9=new Set,jK=[],OK=[]});var N4={};r(N4,{untrack:()=>V4,state:()=>B4,peek:()=>w4,onMount:()=>L4,onDestroy:()=>F4,isSignal:()=>V9,isDerived:()=>w9,generateSignalsRuntimeDev:()=>A9,generateSignalsRuntime:()=>J8,effect:()=>O4,derived:()=>j4,default:()=>HK,batch:()=>H4});function J8(){try{let Z=new Bun.Transpiler({loader:"js",minifyWhitespace:!0}).transformSync(A9());return Z=Z.replace(/\}(var |let |const |function )/g,"};$1"),Z}catch{return A9()}}function A9(){return`
|
|
2534
2536
|
// STX Signals Runtime (Development Build)
|
|
2535
2537
|
console.log('[stx] signals runtime loading');
|
|
2536
2538
|
// Pre-initialization shim: capture onMount/onDestroy calls made before the runtime IIFE runs
|
|
@@ -2701,7 +2703,12 @@ else {
|
|
|
2701
2703
|
// Auto-unwrap Signals (Feature #1)
|
|
2702
2704
|
// ==========================================================================
|
|
2703
2705
|
|
|
2704
|
-
// Create a proxy that auto-unwraps signals when accessed
|
|
2706
|
+
// Create a proxy that auto-unwraps signals when accessed.
|
|
2707
|
+
// For stx stores (objects with _isStxStore), recursively wrap so nested
|
|
2708
|
+
// signal properties auto-unwrap too \u2014 this is what makes template
|
|
2709
|
+
// expressions like store.someSignal (no parens) and store.x === 'y'
|
|
2710
|
+
// resolve to the value. Action methods on the store pass through as
|
|
2711
|
+
// functions because they don't carry _isSignal/_isDerived markers.
|
|
2705
2712
|
function createAutoUnwrapProxy(scope) {
|
|
2706
2713
|
return new Proxy(scope, {
|
|
2707
2714
|
get(target, prop) {
|
|
@@ -2710,7 +2717,21 @@ else {
|
|
|
2710
2717
|
if (val && typeof val === 'function' && (val._isSignal || val._isDerived)) {
|
|
2711
2718
|
return val();
|
|
2712
2719
|
}
|
|
2720
|
+
// If it's an stx store, return a recursively-unwrapping wrapper so
|
|
2721
|
+
// store.signalProp resolves to the value in template expressions
|
|
2722
|
+
if (val && typeof val === 'object' && val._isStxStore) {
|
|
2723
|
+
return createAutoUnwrapProxy(val);
|
|
2724
|
+
}
|
|
2713
2725
|
return val;
|
|
2726
|
+
},
|
|
2727
|
+
set(target, prop, value) {
|
|
2728
|
+
const cur = target[prop];
|
|
2729
|
+
if (cur && typeof cur === 'function' && cur._isSignal && typeof cur.set === 'function') {
|
|
2730
|
+
cur.set(value);
|
|
2731
|
+
return true;
|
|
2732
|
+
}
|
|
2733
|
+
target[prop] = value;
|
|
2734
|
+
return true;
|
|
2714
2735
|
}
|
|
2715
2736
|
});
|
|
2716
2737
|
}
|
|
@@ -6010,6 +6031,12 @@ catch (e) {}
|
|
|
6010
6031
|
activeDisposers = prevPersistDisposers;
|
|
6011
6032
|
}
|
|
6012
6033
|
|
|
6034
|
+
// Marker so the template-scope auto-unwrap proxy knows to recursively
|
|
6035
|
+
// unwrap signal-valued properties on this object. Script-level callers
|
|
6036
|
+
// still see the bare store (so existing patterns like store.someSignal()
|
|
6037
|
+
// keep working); only template expression evaluation auto-unwraps.
|
|
6038
|
+
result._isStxStore = true;
|
|
6039
|
+
|
|
6013
6040
|
// Register globally
|
|
6014
6041
|
window.stx._stores.set(id, result);
|
|
6015
6042
|
window.__STX_STORES__ = window.__STX_STORES__ || {};
|
|
@@ -6623,7 +6650,7 @@ catch (e) { console.warn('[stx] mount callback error:', e); }
|
|
|
6623
6650
|
}
|
|
6624
6651
|
}
|
|
6625
6652
|
})();
|
|
6626
|
-
`}var
|
|
6653
|
+
`}var HK;var R4=C(()=>{A4();A4();HK={state:B4,derived:j4,effect:O4,batch:H4,onMount:L4,onDestroy:F4,isSignal:V9,isDerived:w9,untrack:V4,peek:w4,generateSignalsRuntime:J8,generateSignalsRuntimeDev:A9}});var T4={};r(T4,{templateCache:()=>X8,readFileCached:()=>LK,invalidateFileCacheByDir:()=>VK,invalidateFileCache:()=>FK,hashFilePath:()=>B5,getCachedSignalsRuntime:()=>AK,getCachedRouterScript:()=>NK,clearDevCaches:()=>RK,checkCache:()=>TK,cacheTemplate:()=>MK});import G1 from"fs";import f1 from"path";async function LK($){let J;for(let Y=0;Y<3;Y++)try{let X=(await G1.promises.stat($)).mtime.getTime(),G=A1.get($);if(G&&G.mtime===X)return G.content;let K=await Bun.file($).text(),z=(await G1.promises.stat($)).mtime.getTime();if(z!==X)continue;return A1.set($,{content:K,mtime:z}),K}catch(Q){J=Q;break}throw A1.delete($),Error(`File not found: ${$}${J?` (${J.message})`:""}`)}function FK($){A1.delete($)}function VK($){for(let Z of A1.keys())if(Z.startsWith($))A1.delete(Z)}async function AK($=!1){if($){let{generateSignalsRuntimeDev:Z}=await Promise.resolve().then(() => (R4(),N4));return Z()}if(N9===null){let{generateSignalsRuntime:Z}=await Promise.resolve().then(() => (R4(),N4));N9=Z()}return N9}async function NK(){if(R9===null){let{getRouterScript:$}=await import("stx-router");R9=$()}return R9}function RK(){A1.clear(),N9=null,wK=null,R9=null}async function TK($,Z){try{if(!Z.cachePath)return null;let J=f1.resolve(Z.cachePath),Y=f1.join(J,`${B5($)}.html`),Q=f1.join(J,`${B5($)}.meta.json`);if(!await c(Y)||!await c(Q))return null;let X=await Bun.file(Q).text(),G=JSON.parse(X);if(G.cacheVersion!==Z.cacheVersion)return null;if((await G1.promises.stat($)).mtime.getTime()>G.mtime)return null;for(let q of G.dependencies)if(await c(q)){if((await G1.promises.stat(q)).mtime.getTime()>G.mtime)return null}else return null;return await Bun.file(Y).text()}catch(J){return console.warn(`Cache error for ${$}:`,J),null}}async function MK($,Z,J,Y){try{if(!Y.cachePath)return;let Q=f1.resolve(Y.cachePath);await G1.promises.mkdir(Q,{recursive:!0});let X=f1.join(Q,`${B5($)}.html`),G=f1.join(Q,`${B5($)}.meta.json`),K=await G1.promises.stat($);await Bun.write(X,Z);let q={sourcePath:$,mtime:K.mtime.getTime(),dependencies:Array.from(J),cacheVersion:Y.cacheVersion,generatedAt:Date.now()};await Bun.write(G,JSON.stringify(q,null,2)),X8.set($,{output:Z,mtime:K.mtime.getTime(),dependencies:J})}catch(Q){console.warn(`Failed to cache template ${$}:`,Q)}}function B5($){return new Bun.CryptoHasher("sha1").update($).digest("hex").substring(0,IK)}var X8,A1,N9=null,wK=null,R9=null,IK=16;var M4=C(()=>{A0();X8=new Map,A1=new Map});function Q8($){if($.includes("window.StacksBrowser")||$.includes("StacksBrowser ="))return $;let Z=/<script\b(?![^>]*\bserver\b)[^>]*>([\s\S]*?)<\/script>/gi,J="",Y;while((Y=Z.exec($))!==null)J+=Y[1]+`
|
|
6627
6654
|
`;let Q=/\{\{([\s\S]*?)\}\}/g;while((Y=Q.exec($))!==null)J+=Y[1]+`
|
|
6628
6655
|
`;if(!J.trim())return $;let G=["browserQuery","BrowserQueryBuilder","configureBrowser","createBrowserModel"].some((_)=>{return new RegExp(`\\b${_}\\b`).test(J)}),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"]),q=/\b([A-Z][a-zA-Z0-9]*)\s*\.\s*(all|find|first|get|where|orderBy|orderByDesc|limit|select|pluck|create|update|delete)\s*\(/g,z,W=!1;while((z=q.exec(J))!==null)if(!K.has(z[1])){W=!0;break}if(!G&&!W)return $;let U=`<script type="module">
|
|
6629
6656
|
// STX: Auto-load @stacksjs/browser (auto-initializes API and loads models)
|
|
@@ -6632,21 +6659,21 @@ import '@stacksjs/browser'
|
|
|
6632
6659
|
`+$.slice(B);return $.replace("</head>",`${U}
|
|
6633
6660
|
</head>`)}if($.includes("<body"))return $.replace(/<body([^>]*)>/,`<body$1>
|
|
6634
6661
|
${U}`);return U+`
|
|
6635
|
-
`+$}async function
|
|
6662
|
+
`+$}async function G8($,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>
|
|
6636
6663
|
`+$.slice(K);if($.includes("</head>")){let q=$.indexOf("</head>");return $.slice(0,q)+`<script src="/__stx/runtime.__STX_HASH__.js"></script>
|
|
6637
6664
|
`+$.slice(q)}return`<script src="/__stx/runtime.__STX_HASH__.js"></script>
|
|
6638
|
-
`+$}let{getCachedSignalsRuntime:J}=await Promise.resolve().then(() => (
|
|
6665
|
+
`+$}let{getCachedSignalsRuntime:J}=await Promise.resolve().then(() => (M4(),T4)),Q=`<script data-stx-scoped>${await J(Z.debug)}</script>`,X=$.indexOf("<script");if(X!==-1)return $.slice(0,X)+Q+`
|
|
6639
6666
|
`+$.slice(X);if($.includes("</head>")){let G=$.indexOf("</head>");return $.slice(0,G)+Q+`
|
|
6640
6667
|
`+$.slice(G)}if($.includes("<body")){let G=$.indexOf("<body"),K=$.indexOf(">",G);return $.slice(0,K+1)+`
|
|
6641
6668
|
`+Q+$.slice(K+1)}return Q+`
|
|
6642
|
-
`+$}async function
|
|
6643
|
-
`}let{getCachedRouterScript:Q}=await Promise.resolve().then(() => (
|
|
6644
|
-
</body>`+$.slice(G+7)}var
|
|
6669
|
+
`+$}async function I4($,Z){if(!$.includes("</body>"))return $;if($.includes("__stxRouter)return")||$.includes("__stxRouter=true"))return $;let J=Z?.router,Y="";if(J){let K={};if(J.container)K.container=J.container;if(J.viewTransitions!==void 0)K.viewTransitions=J.viewTransitions;if(J.viewTransitionDuration!==void 0)K.viewTransitionDuration=J.viewTransitionDuration;if(J.viewTransitionEasing!==void 0)K.viewTransitionEasing=J.viewTransitionEasing;if(J.scrollToTop!==void 0)K.scrollToTop=J.scrollToTop;if(J.prefetch!==void 0)K.prefetch=J.prefetch;if(J.cache!==void 0)K.cache=J.cache;if(J.progressColor!==void 0)K.progressColor=J.progressColor;if(J.progressHeight!==void 0)K.progressHeight=J.progressHeight;if(Object.keys(K).length>0)Y=`<script>window.__stxRouterConfig=${JSON.stringify(K)};</script>
|
|
6670
|
+
`}let{getCachedRouterScript:Q}=await Promise.resolve().then(() => (M4(),T4)),X=Z?.buildMode==="compile"?'<script src="/__stx/router.__STX_HASH__.js"></script>':`<script>${await Q()}</script>`,G=$.lastIndexOf("</body>");return $.slice(0,G)+Y+X+`
|
|
6671
|
+
</body>`+$.slice(G+7)}var B8={};r(B8,{scanScriptTags:()=>W8,processSignals:()=>k4,processScriptSetup:()=>U8,parseLoopExpression:()=>z8,hasSignalsSyntax:()=>M9,extractExports:()=>_8,convertSignalLoopsToAttributes:()=>E4,convertSignalDirectivesToAttributes:()=>D4});function W8($,Z={}){let J=[];T9.lastIndex=0;let Y;while((Y=T9.exec($))!==null){let Q=Y[1],X=Y.index+Y[0].length,G=$.toLowerCase().indexOf("</script>",X);if(G===-1)break;let K=G+9;if(Z.skipAttrs&&Z.skipAttrs.test(Q)){T9.lastIndex=K;continue}J.push({fullMatch:$.slice(Y.index,K),attrs:Q,body:$.slice(X,G),start:Y.index,end:K}),T9.lastIndex=K}return J}function z8($){let Z=$.trim(),J=Z.match(/^([\s\S]+?)\s+as\s+(.+)$/);if(J){let Q=J[1].trim(),X=J[2].trim(),{itemVar:G,indexVar:K}=K8(X);if(G)return{style:"as",iterable:Q,itemVar:G,indexVar:K}}let Y=Z.match(/^(\([^)]+\)|\w+(?:\s*,\s*\w+)?)\s+(?:in|of)\s+([\s\S]+)$/);if(Y){let Q=Y[1].trim(),X=Y[2].trim(),{itemVar:G,indexVar:K}=K8(Q);if(G)return{style:"in",iterable:X,itemVar:G,indexVar:K}}return{style:"unknown",iterable:null,itemVar:null,indexVar:null}}function K8($){let Z=$.trim(),J=Z.match(/^(\w+)\s*=>\s*(\w+)$/);if(J)return{itemVar:J[2],indexVar:J[1]};let Y=Z.match(/^\(\s*(\w+)(?:\s*,\s*(\w+))?\s*\)$/);if(Y)return{itemVar:Y[1],indexVar:Y[2]||null};let Q=Z.match(/^(\w+)\s*,\s*(\w+)$/);if(Q)return{itemVar:Q[1],indexVar:Q[2]};let X=Z.match(/^(\w+)$/);if(X)return{itemVar:X[1],indexVar:null};return{itemVar:null,indexVar:null}}function M9($){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((J)=>J.test($))}function EK($){let Z=/@(if\s*\(|endif|elseif\s*\(|else\b)/g,J=0,Y;while((Y=Z.exec($))!==null){let Q=Y[1];if(Q.startsWith("if"))J++;else if(Q==="endif")J--;else if(J===0)return!0}return!1}function D4($){let Z=$,J=/@if\s*\(/g,Y,Q=[];while((Y=J.exec(Z))!==null){let X=Y.index,G=X+Y[0].length,K=1,q=G;while(q<Z.length&&K>0){if(Z[q]==="(")K++;else if(Z[q]===")")K--;q++}if(K!==0)continue;let z=Z.substring(G,q-1).trim(),W=q,U=1,_=W,j=/@(if\s*\(|endif)/g;j.lastIndex=W;let B;while((B=j.exec(Z))!==null)if(B[1].startsWith("if"))U++;else if(B[1]==="endif"){if(U--,U===0){_=B.index+B[0].length;break}}if(U!==0)continue;let O=Z.substring(W,_-6).trim();if(EK(O))continue;let F=O.match(q8),L;if(F){let[,H,V,A]=F,w=z.replace(/"/g,""");L=`<${H}${V} @if="${w}">${A}</${H}>`}else L=`<template @if="${z.replace(/"/g,""")}">${O}</template>`;Q.push({start:X,end:_,replacement:L})}for(let X=Q.length-1;X>=0;X--){let{start:G,end:K,replacement:q}=Q[X];Z=Z.substring(0,G)+q+Z.substring(K)}return Z}function E4($,Z){let J=$,Y=/@(for|foreach)\s*\(/g,Q,X=[];while((Q=Y.exec(J))!==null){let G=Q[1],K=Q.index,q=K+Q[0].length,z=1,W=q;while(W<J.length&&z>0){if(J[W]==="(")z++;else if(J[W]===")")z--;W++}if(z!==0)continue;let U=J.substring(q,W-1).trim(),_=W,j=z8(U);if(j.iterable){let N=j.iterable.trim();if(N.startsWith("[")||N.startsWith("{")||N.startsWith("'")||N.startsWith('"')||N.startsWith("`")||/^-?\d/.test(N))continue;if(Z){let R=N.split(/[.[(]/)[0].trim();if(R&&R in Z)continue}}if(j.style==="as")U=j.indexVar?`(${j.itemVar}, ${j.indexVar}) in ${j.iterable}`:`${j.itemVar} in ${j.iterable}`;let B=G==="for"?"@endfor":"@endforeach",O=1,F=_,L=G==="for"?new RegExp("@(for(?!each)\\s*\\(|endfor(?!each))","g"):new RegExp(`@(${G}\\s*\\(|end${G})`,"g");L.lastIndex=_;let H;while((H=L.exec(J))!==null)if(H[1].startsWith(G))O++;else if(O--,O===0){F=H.index+H[0].length;break}if(O!==0)continue;let V=J.substring(_,F-B.length).trim(),A=V.match(q8),w;if(A){let[,N,R,T]=A;w=`<${N}${R} @for="${U}">${T}</${N}>`}else w=`<template @for="${U}">${V}</template>`;X.push({start:K,end:F,replacement:w})}for(let G=X.length-1;G>=0;G--){let{start:K,end:q,replacement:z}=X[G];J=J.substring(0,K)+z+J.substring(q)}return J}function kK($){let Z=new Set,J=[],Y=0,Q=0,X=$.length,G=(W)=>{let U=Y+1;while(U<X){let _=$[U];if(_==="\\"){U+=2;continue}if(_===W)return U+1;U++}return X},K=()=>{let W=Y+2;while(W<X&&$[W]!==`
|
|
6645
6672
|
`)W++;return W},q=()=>{let W=Y+2;while(W<X-1){if($[W]==="*"&&$[W+1]==="/")return W+2;W++}return X},z=(W)=>{let U=W,_=0;while(U<X){let j=$[U];if(j==="/"&&$[U+1]==="/"){let B=U+2;while(B<X&&$[B]!==`
|
|
6646
|
-
`)B++;U=B;continue}if(j==="/"&&$[U+1]==="*"){let B=U+2;while(B<X-1&&!($[B]==="*"&&$[B+1]==="/"))B++;U=B+2;continue}if(j==='"'||j==="'"||j==="`"){let B=U+1;while(B<X){if($[B]==="\\"){B+=2;continue}if($[B]===j){B++;break}B++}U=B;continue}if(j==="("||j==="["||j==="{"){_++,U++;continue}if(j===")"||j==="]"||j==="}"){_--,U++;continue}if(j===";"&&_===0)return U+1;U++}return X};while(Y<X){let W=$[Y];if(W==="/"&&$[Y+1]==="/"){let U=K();J.push($.slice(Y,U)),Y=U;continue}if(W==="/"&&$[Y+1]==="*"){let U=q();J.push($.slice(Y,U)),Y=U;continue}if(W==='"'||W==="'"||W==="`"){let U=G(W);J.push($.slice(Y,U)),Y=U;continue}if(W==="{"){Q++,J.push(W),Y++;continue}if(W==="}"){Q--,J.push(W),Y++;continue}if(Q===0){let U=Y>0?$[Y-1]:"";if(U===""||/\s/.test(U)||U===";"||U==="}"||U==="{"){let j=$.slice(Y).match(/^(const|let|var)\s+([a-zA-Z_$][\w$]*)\s*=/);if(j){let B=j[2],O=z(Y+j[0].length);if(Z.has(B)){J.push(`/* stx: deduped const ${B} */`),Y=O;continue}Z.add(B),J.push($.slice(Y,O)),Y=O;continue}}}J.push(W),Y++}return J.join("")}async function
|
|
6673
|
+
`)B++;U=B;continue}if(j==="/"&&$[U+1]==="*"){let B=U+2;while(B<X-1&&!($[B]==="*"&&$[B+1]==="/"))B++;U=B+2;continue}if(j==='"'||j==="'"||j==="`"){let B=U+1;while(B<X){if($[B]==="\\"){B+=2;continue}if($[B]===j){B++;break}B++}U=B;continue}if(j==="("||j==="["||j==="{"){_++,U++;continue}if(j===")"||j==="]"||j==="}"){_--,U++;continue}if(j===";"&&_===0)return U+1;U++}return X};while(Y<X){let W=$[Y];if(W==="/"&&$[Y+1]==="/"){let U=K();J.push($.slice(Y,U)),Y=U;continue}if(W==="/"&&$[Y+1]==="*"){let U=q();J.push($.slice(Y,U)),Y=U;continue}if(W==='"'||W==="'"||W==="`"){let U=G(W);J.push($.slice(Y,U)),Y=U;continue}if(W==="{"){Q++,J.push(W),Y++;continue}if(W==="}"){Q--,J.push(W),Y++;continue}if(Q===0){let U=Y>0?$[Y-1]:"";if(U===""||/\s/.test(U)||U===";"||U==="}"||U==="{"){let j=$.slice(Y).match(/^(const|let|var)\s+([a-zA-Z_$][\w$]*)\s*=/);if(j){let B=j[2],O=z(Y+j[0].length);if(Z.has(B)){J.push(`/* stx: deduped const ${B} */`),Y=O;continue}Z.add(B),J.push($.slice(Y,O)),Y=O;continue}}}J.push(W),Y++}return J.join("")}async function U8($,Z){let J=W8($,{skipAttrs:/\bserver\b|\bsrc\s*=|\bdata-stx-scoped\b|\bdata-stx-router\b/}),Y=/\b(?:state|derived|effect|ref|reactive|computed|watch|watchEffect|useStore|useLocalStorage|useSessionStorage|useFetch|useRef|useEventListener|useDebounce|useDebouncedValue|useThrottle|useInterval|useTimeout|useToggle|useCounter|useClickOutside|useFocus|useAsync|useColorMode|useDark|useWebSocket|useRoute|useSearchParams|onMount|onDestroy)\s*(?:<[^>]*>)?\s*\(/,Q=[];for(let j of J){let B=j.body;if(q1(j.attrs))B=W1(B);if(Y.test(B))Q.push({fullMatch:j.fullMatch,attrs:j.attrs,content:B})}if(Q.length===0)return{output:$,setupCode:null};let X=`__stx_setup_${Date.now()}_${DK++}`,{hasUserImports:G,bundleClientScript:K}=await Promise.resolve().then(() => (d9(),h9)),q=[];for(let j=0;j<Q.length;j++){let B=Q[j].content;if(G(B))console.log("[stx:bundler] bundling signal script imports"),B=await K(B,Z||"",{projectRoot:process.cwd()});B=B.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 O=r0(B);q.push(`// \u2500\u2500 merged signal script #${j+1} \u2500\u2500
|
|
6647
6674
|
${O}`)}let z=q.join(`
|
|
6648
6675
|
|
|
6649
|
-
`);z=
|
|
6676
|
+
`);z=kK(z);let W=_8(z),U=`
|
|
6650
6677
|
<script data-stx-scoped>
|
|
6651
6678
|
function ${X}() {
|
|
6652
6679
|
const { state, derived, effect, batch, onMount, onDestroy, defineStore, useStore, 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;
|
|
@@ -6654,23 +6681,23 @@ ${z}
|
|
|
6654
6681
|
return { ${W} };
|
|
6655
6682
|
}
|
|
6656
6683
|
if(window.stx)window.stx._latestSetup=${X};
|
|
6657
|
-
</script>`,_=$;for(let j of Q)_=_.split(j.fullMatch).join("");if(_.includes("<body"))_=_.replace(/<body([^>]*)>/,`<body$1 data-stx="${X}">`);else{let j=["script","style","html","head","meta","link","title","!doctype"];_=_.replace(/<([a-zA-Z][a-zA-Z0-9-]*)\b([^>]*)>/i,(B,O,F)=>{if(j.includes(O.toLowerCase()))return B;return`<${O}${F} data-stx="${X}">`})}return{output:_,setupCode:U}}function
|
|
6658
|
-
`)X++;return!0}if(Z[X]==="/"&&Z[X+1]==="*"){X+=2;while(X<G-1&&!(Z[X]==="*"&&Z[X+1]==="/"))X++;return X+=2,!0}return!1},W=()=>{if(Q!==0)return;let U=Z.slice(X).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(U){let
|
|
6684
|
+
</script>`,_=$;for(let j of Q)_=_.split(j.fullMatch).join("");if(_.includes("<body"))_=_.replace(/<body([^>]*)>/,`<body$1 data-stx="${X}">`);else{let j=["script","style","html","head","meta","link","title","!doctype"];_=_.replace(/<([a-zA-Z][a-zA-Z0-9-]*)\b([^>]*)>/i,(B,O,F)=>{if(j.includes(O.toLowerCase()))return B;return`<${O}${F} data-stx="${X}">`})}return{output:_,setupCode:U}}function _8($){let Z=$,J=[],Y=new Set,Q=0,X=0,G=Z.length,K=(U)=>{X++;while(X<G){if(Z[X]==="\\"){X+=2;continue}if(Z[X]===U){X++;return}X++}},q=()=>{X++;while(X<G){if(Z[X]==="\\"){X+=2;continue}if(Z[X]==="`"){X++;return}if(Z[X]==="$"&&Z[X+1]==="{"){X+=2;let U=1;while(X<G&&U>0)if(Z[X]==="{")U++;else if(Z[X]==="}")U--;else if(Z[X]==="'"||Z[X]==='"')K(Z[X]);else if(Z[X]==="`")q();else X++;continue}X++}},z=()=>{if(Z[X]==="/"&&Z[X+1]==="/"){while(X<G&&Z[X]!==`
|
|
6685
|
+
`)X++;return!0}if(Z[X]==="/"&&Z[X+1]==="*"){X+=2;while(X<G-1&&!(Z[X]==="*"&&Z[X+1]==="/"))X++;return X+=2,!0}return!1},W=()=>{if(Q!==0)return;let U=Z.slice(X).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(U){let F=U[2];if(!Y.has(F))J.push(F),Y.add(F);return}let _=Z.slice(X).match(/^(?:const|let|var)\s+\{([^}]+)\}\s*=/);if(_){_[1].split(",").forEach((F)=>{let L=F.trim();if(!L)return;let H=L.indexOf(":"),A=(H>=0?L.slice(H+1).trim():L).split(/[\s=]/)[0];if(A&&!Y.has(A))J.push(A),Y.add(A)});return}let j=Z.slice(X).match(/^(?:const|let|var)\s+\[([^\]]+)\]\s*=/);if(j){j[1].split(",").forEach((F)=>{let L=F.trim().replace(/^\.\.\./,"");if(!L)return;let H=L.split(/[\s=]/)[0];if(H&&!Y.has(H))J.push(H),Y.add(H)});return}let B=Z.slice(X).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(B){let F=B[1];if(!Y.has(F))J.push(F),Y.add(F);return}let O=Z.slice(X).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(O){let F=O[1];if(!Y.has(F))J.push(F),Y.add(F)}};while(X<G){if(z())continue;if(Z[X]==="'"||Z[X]==='"'){K(Z[X]);continue}if(Z[X]==="`"){q();continue}if(Z[X]==="{"){Q++,X++;continue}if(Z[X]==="}"){Q--,X++;continue}if(Q===0&&/[a-z]/i.test(Z[X])&&(X===0||/\s|[;{}()]/.test(Z[X-1])))W();X++}return J.join(", ")}async function k4($,Z,J){if(!M9($))return $;let Y=$;if(Z.skipSignalsRuntime)return Y;let{output:Q,setupCode:X}=await U8(Y,J);if(Y=Q,Y=await G8(Y,Z),Y=Q8(Y),X)if(Y.includes("</head>"))Y=Y.replace("</head>",`${X}
|
|
6659
6686
|
</head>`);else if(Y.includes("<body"))Y=Y.replace(/<body([^>]*)>/,`<body$1>
|
|
6660
6687
|
${X}`);else Y=Y+`
|
|
6661
|
-
`+X;let G=Y.match(/<body([^>]*)>/i),K=G&&/data-stx/.test(G[1]);if(!X&&!K){if(Y.includes("<body")&&G&&!/data-stx-auto/.test(G[1]))Y=Y.replace(/<body([^>]*)>/,"<body$1 data-stx-auto>")}return Y}var
|
|
6662
|
-
`}if(V){let S=[];if(W==="avif"||W==="auto"){let b=
|
|
6688
|
+
`+X;let G=Y.match(/<body([^>]*)>/i),K=G&&/data-stx/.test(G[1]);if(!X&&!K){if(Y.includes("<body")&&G&&!/data-stx-auto/.test(G[1]))Y=Y.replace(/<body([^>]*)>/,"<body$1 data-stx-auto>")}return Y}var DK=0,T9,q8;var b4=C(()=>{A0();T9=/<script\b([^>]*)>/gi,q8=/^<([a-zA-Z][a-zA-Z0-9-]*)\b((?:\s+[^=\s>]+(?:=(?:"[^"]*"|'[^']*'|[^\s>]*))?)*\s*)>([\s\S]*)<\/\1>$/s});import y0 from"path";import S4 from"fs";function j8($){return $.split("-").map((Z)=>Z.charAt(0).toUpperCase()+Z.slice(1)).join("")}function O8($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}class H8{builtins=new Map;registerBuiltin($){this.builtins.set($.name.toLowerCase(),$);for(let Z of $.aliases)this.builtins.set(Z.toLowerCase(),$)}isBuiltin($){return this.builtins.has($.toLowerCase())}getBuiltin($){return this.builtins.get($.toLowerCase())??null}async resolveFile($,Z,J,Y){let Q=$.endsWith(".stx")?$.slice(0,-4):$,X=Y?.__importedComponents;if(X){let j=[Q,Q.toLowerCase(),j8(Q),O8(Q)];for(let B of j)if(X.has(B))return X.get(B)}let G=[...new Set([`${Q}.stx`,`${j8(Q)}.stx`,`${O8(Q)}.stx`])];if(Q.startsWith("./")||Q.startsWith("../")){let j=y0.resolve(y0.dirname(Z),`${Q}.stx`);if(await c(j))return j;return null}let K=[],q=J.componentsDir||"",z=Y?.__originalFilePath;if(z)K.push(y0.join(y0.dirname(z),"components"));if(q)K.push(q);let W=y0.join(y0.dirname(Z),"components");if(!K.includes(W))K.push(W);let U=process.cwd(),_=[y0.resolve(U,"src/components"),y0.resolve(U,"components"),y0.resolve(import.meta.dir,"components")];for(let j of _)if(!K.includes(j))K.push(j);for(let j of K){if(!j)continue;for(let B of G){let O=y0.join(j,B);if(await c(O))return O}try{if(!S4.statSync(j,{throwIfNoEntry:!1})?.isDirectory())continue;let O=S4.readdirSync(j,{withFileTypes:!0});for(let F of O)if(F.isDirectory()){let L=y0.join(j,F.name);for(let H of G){let V=y0.join(L,H);if(await c(V))return V}}}catch{}}return null}}var d0;var y4=C(()=>{A0();d0=new H8});function m0($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function bK($){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 C4;var P4=C(()=>{C4={name:"StxLink",aliases:["stx-link"],render($,Z,J){let Y=bK($),Q=(typeof $.static.class==="string"?$.static.class:"")||(typeof $.static.className==="string"?$.static.className:""),X=typeof $.static.activeClass==="string"?$.static.activeClass:"active",G=typeof $.static.exactActiveClass==="string"?$.static.exactActiveClass:"exact-active",K=$.static.prefetch===!0||$.static.prefetch==="true"||$.serverDynamic.prefetch===!0,q=[];if(Y.reactive)q.push(`:href="${m0(Y.value)}"`);else q.push(`href="${m0(Y.value)}"`);if(Q)q.push(`class="${m0(Q)}"`);if(q.push("data-stx-link"),q.push(`data-stx-active-class="${m0(X)}"`),q.push(`data-stx-exact-active-class="${m0(G)}"`),K)q.push("data-stx-prefetch");for(let[W,U]of Object.entries($.events))q.push(`@${m0(W)}="${m0(U)}"`);let z=new Set(["to","class","className","activeClass","exactActiveClass","prefetch"]);for(let[W,U]of Object.entries($.static)){if(z.has(W))continue;if(typeof U==="boolean"){if(U)q.push(m0(W))}else q.push(`${m0(W)}="${m0(U)}"`)}return`<a ${q.join(" ")}>${Z}</a>`}}});function B0($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function I0($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let J=$.static[Z];if(typeof J==="string")return J;return}function x4($,Z,J=!1){let Y=$.serverDynamic[Z];if(Y!==void 0)return Y!==!1&&Y!=="false";let Q=$.static[Z];if(Q!==void 0)return Q!=="false"&&Q!==!1;return J}function L8($){if($.includes("(")||$.includes(","))return $;let Z=$.trim().split(/\s+/),J=[];for(let Y of Z)if(Y.includes(":")){let[Q,X]=Y.split(":"),G=SK[Q];if(G)J.push(`(max-width: ${G}px) ${X}`);else{let K=Number.parseInt(Q);if(!Number.isNaN(K))J.push(`(max-width: ${K}px) ${X}`)}}else J.push(Y);return J.join(", ")}function f4($,Z,J,Y){return Z.map((Q)=>`${j5($,Q,void 0,J,Y)} ${Q}w`).join(", ")}function yK($,Z,J,Y,Q){return Z.map((X)=>{let G=J?J*X:void 0;return`${j5($,G,void 0,Y,Q)} ${X}x`}).join(", ")}function j5($,Z,J,Y,Q){if(!Y||Y==="local"||Y==="static")return $;if(Y==="cloudinary"){let X=[];if(Z)X.push(`w_${Z}`);if(J)X.push(`h_${J}`);if(Q)X.push(`f_${Q}`);X.push("q_auto");let G=X.join(",");return $.replace("/upload/",`/upload/${G}/`)}if(Y==="imgix"){let X=new URLSearchParams;if(Z)X.set("w",String(Z));if(J)X.set("h",String(J));if(Q)X.set("fm",Q);X.set("auto","format");let G=$.includes("?")?"&":"?";return`${$}${G}${X.toString()}`}if(Y==="bunny"){let X=new URLSearchParams;if(Z)X.set("width",String(Z));if(J)X.set("height",String(J));if(Q)X.set("format",Q);let G=$.includes("?")?"&":"?";return`${$}${G}${X.toString()}`}return $}function CK($,Z,J="#e5e7eb"){let Y=`<svg xmlns="http://www.w3.org/2000/svg" width="${$}" height="${Z}"><rect width="100%" height="100%" fill="${J}"/></svg>`;return`data:image/svg+xml;base64,${btoa(Y)}`}var SK,v4,g4;var h4=C(()=>{SK={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},v4=[320,640,768,1024,1280,1536,1920];g4={name:"StxImage",aliases:["stx-image","stx-img"],render($,Z,J){let Y=I0($,"src")||"",Q=I0($,"alt")||"",X=I0($,"width"),G=I0($,"height"),K=I0($,"sizes"),q=I0($,"srcset"),z=I0($,"densities"),W=I0($,"format"),U=I0($,"placeholder"),_=I0($,"placeholderColor")||"#e5e7eb",j=I0($,"provider"),B=I0($,"class")||I0($,"className")||"",O=I0($,"style")||"",F=I0($,"quality"),L=x4($,"lazy",!0),H=x4($,"preload",!1),V=x4($,"picture",!1)||!!W,A=X?Number.parseInt(X):void 0,w=G?Number.parseInt(G):void 0,N=q||"",R="";if(!N&&K)N=f4(Y,v4,j,W),R=L8(K);else if(!N&&z){let S=z.split(/\s+/).map((b)=>Number.parseFloat(b.replace("x","")));N=yK(Y,S,A,j,W)}else if(K)R=L8(K);let T=[];if(O)T.push(O);if(A&&w)T.push(`aspect-ratio:${A}/${w}`);if(U==="blur"||U==="color"){let S=CK(A||16,w||9,_);T.push(`background-image:url(${S})`),T.push("background-size:cover"),T.push("background-repeat:no-repeat")}else if(U&&U!=="empty"&&U!=="none")T.push(`background-image:url(${B0(U)})`),T.push("background-size:cover"),T.push("background-repeat:no-repeat");let I=j5(Y,A,w,j,W),M=[];if(M.push(`src="${B0(I)}"`),M.push(`alt="${B0(Q)}"`),X)M.push(`width="${B0(X)}"`);if(G)M.push(`height="${B0(G)}"`);if(L)M.push('loading="lazy"');if(M.push('decoding="async"'),B)M.push(`class="${B0(B)}"`);if(T.length>0)M.push(`style="${B0(T.join(";"))}"`);if(N)M.push(`srcset="${B0(N)}"`);if(R)M.push(`sizes="${B0(R)}"`);let E=new Set(["src","alt","width","height","lazy","sizes","srcset","placeholder","placeholderColor","class","className","style","format","provider","quality","densities","preload","picture"]);for(let[S,b]of Object.entries($.static)){if(E.has(S))continue;if(typeof b==="boolean"){if(b)M.push(B0(S))}else M.push(`${B0(S)}="${B0(b)}"`)}let k=`<img ${M.join(" ")} />`,y="";if(H){let b=W==="webp"?"image/webp":W==="avif"?"image/avif":"";y=`<link rel="preload" as="image" href="${B0(I)}"${b?` type="${b}"`:""}${N?` imagesrcset="${B0(N)}"`:""}${R?` imagesizes="${B0(R)}"`:""} />
|
|
6689
|
+
`}if(V){let S=[];if(W==="avif"||W==="auto"){let b=j5(Y,A,w,j,"avif"),D=N?f4(Y,v4,j,"avif"):`${b}`;S.push(`<source type="image/avif" srcset="${B0(D)}"${R?` sizes="${B0(R)}"`:""} />`)}if(W==="webp"||W==="auto"){let b=j5(Y,A,w,j,"webp"),D=N?f4(Y,v4,j,"webp"):`${b}`;S.push(`<source type="image/webp" srcset="${B0(D)}"${R?` sizes="${B0(R)}"`:""} />`)}return`${y}<picture>
|
|
6663
6690
|
${S.join(`
|
|
6664
6691
|
`)}
|
|
6665
6692
|
${k}
|
|
6666
|
-
</picture>`}return`${y}${k}`}}});function
|
|
6693
|
+
</picture>`}return`${y}${k}`}}});function d4($){return $.replace(/[;{}()]/g,"").replace(/url/gi,"")}function O5($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let J=$.static[Z];if(typeof J==="string")return J;return}function I9($,Z,J){let Y=O5($,Z);if(Y!==void 0){let Q=Number.parseInt(Y,10);if(!Number.isNaN(Q))return Q}return J}var m4;var u4=C(()=>{m4={name:"StxLoadingIndicator",aliases:["stx-loading-indicator"],render($,Z,J){let Y=d4(O5($,"color")||"#6366f1"),Q=d4(O5($,"initialColor")||O5($,"initial-color")||""),X=d4(O5($,"height")||"3px"),G=I9($,"duration",2000),K=I9($,"throttle",200),q=I9($,"zIndex",999999)||I9($,"z-index",999999),z=Q?`linear-gradient(to right, ${Q}, ${Y})`:Y;return`
|
|
6667
6694
|
<div id="stx-loading-indicator" style="position:fixed;top:0;left:0;right:0;height:${X};background:${z};z-index:${q};transform:scaleX(0);transform-origin:left;transition:transform 0.1s ease-out,opacity 0.3s ease;opacity:0;pointer-events:none">
|
|
6668
6695
|
<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>
|
|
6669
6696
|
</div>
|
|
6670
6697
|
<style>@keyframes stx-shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}</style>
|
|
6671
6698
|
<script>
|
|
6672
6699
|
(function(){var el=document.getElementById('stx-loading-indicator'),p=0,l=!1,i=null;function u(v){p=Math.min(Math.max(v,0),100);if(el){el.style.opacity=p>0?'1':'0';el.style.transform='scaleX('+(p/100)+')'}}window.stxLoading={start:function(){l=!0;p=0;u(10);if(i)clearInterval(i);i=setInterval(function(){if(!l)return;var r=90-p,inc=Math.max(0.5,r*0.1);if(p<90)u(p+inc)},${K})},finish:function(){l=!1;if(i){clearInterval(i);i=null}u(100);setTimeout(function(){if(el)el.style.opacity='0';setTimeout(function(){p=0;if(el)el.style.transform='scaleX(0)'},300)},200)},set:function(v){u(v)},clear:function(){l=!1;p=0;if(i){clearInterval(i);i=null}if(el){el.style.opacity='0';el.style.transform='scaleX(0)'}}};document.addEventListener('click',function(e){var a=e.target.closest&&e.target.closest('a');if(!a)return;var h=a.getAttribute('href');if(!h||h.startsWith('http')||h.startsWith('#')||h.startsWith('mailto:')||h.startsWith('tel:')||a.target==='_blank')return;window.stxLoading.start()});window.addEventListener('popstate',function(){window.stxLoading.start()});window.addEventListener('load',function(){window.stxLoading.finish()})})();
|
|
6673
|
-
</script>`}}});function
|
|
6700
|
+
</script>`}}});function V8($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let J=$.static[Z];if(typeof J==="string")return J;return}function PK($,Z,J){let Y=V8($,Z);if(Y!==void 0){let Q=Number.parseInt(Y,10);if(!Number.isNaN(Q))return Q}return J}var F8,p4;var l4=C(()=>{F8={"top-right":"top:1rem;right:1rem","top-left":"top:1rem;left:1rem","top-center":"top:1rem;left:50%;transform:translateX(-50%)","bottom-right":"bottom:1rem;right:1rem","bottom-left":"bottom:1rem;left:1rem","bottom-center":"bottom:1rem;left:50%;transform:translateX(-50%)"},p4={name:"StxToast",aliases:["stx-toast"],render($,Z,J){let Y=V8($,"position")||"top-right",Q=PK($,"max",5),X=F8[Y]||F8["top-right"];return`<div id="stx-toast-container" data-stx-toast-position="${Y}" data-stx-toast-max="${Q}" style="position:fixed;${X};z-index:999999;display:flex;flex-direction:column;gap:0.5rem;pointer-events:none;max-width:24rem;width:100%"></div>
|
|
6674
6701
|
<style>
|
|
6675
6702
|
@keyframes stx-toast-in{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}
|
|
6676
6703
|
@keyframes stx-toast-out{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}
|
|
@@ -6678,7 +6705,7 @@ ${k}
|
|
|
6678
6705
|
@keyframes stx-toast-out-left{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-100%)}}
|
|
6679
6706
|
@keyframes stx-toast-in-center{from{opacity:0;transform:translateY(-1rem)}to{opacity:1;transform:translateY(0)}}
|
|
6680
6707
|
@keyframes stx-toast-out-center{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-1rem)}}
|
|
6681
|
-
</style>`}}});function
|
|
6708
|
+
</style>`}}});function D9($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let J=$.static[Z];if(typeof J==="string")return J;return}var w8,c4;var i4=C(()=>{w8={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)"},c4={name:"StxModal",aliases:["stx-modal"],render($,Z,J){let Y=D9($,"id");if(!Y)return console.warn('[stx] <StxModal> requires an "id" prop'),"<!-- StxModal: missing id prop -->";let Q=D9($,"size")||"md",X=D9($,"closeOnBackdrop")!=="false",G=D9($,"closeOnEscape")!=="false",K=w8[Q]||w8.md;return`<div id="stx-modal-${Y}" class="stx-modal-backdrop" data-stx-modal="${Y}" data-close-backdrop="${X}" 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">
|
|
6682
6709
|
<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)">
|
|
6683
6710
|
<div style="padding:1.5rem">${Z}</div>
|
|
6684
6711
|
</div>
|
|
@@ -6687,7 +6714,7 @@ ${k}
|
|
|
6687
6714
|
@media(prefers-color-scheme:dark){[data-stx-modal]{--stx-modal-bg:#1f2937;--stx-modal-text:#f3f4f6}}
|
|
6688
6715
|
.stx-modal-backdrop[data-stx-modal-open]{display:flex!important;opacity:1}
|
|
6689
6716
|
.stx-modal-backdrop[data-stx-modal-open] .stx-modal-panel{transform:scale(1) translateY(0);opacity:1}
|
|
6690
|
-
</style>`}}});function
|
|
6717
|
+
</style>`}}});function g1($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let J=$.static[Z];if(typeof J==="string")return J;return}var A8,n4;var o4=C(()=>{A8={sm:"16rem",md:"24rem",lg:"32rem",xl:"40rem"},n4={name:"StxDrawer",aliases:["stx-drawer"],render($,Z,J){let Y=g1($,"id");if(!Y)return console.warn('[stx] <StxDrawer> requires an "id" prop'),"<!-- StxDrawer: missing id prop -->";let Q=g1($,"side")||"right",X=g1($,"size")||"md",G=g1($,"closeOnBackdrop")!=="false",K=g1($,"closeOnEscape")!=="false",q=g1($,"overlay")!=="false",z=A8[X]||A8.md,W=Q==="left",U=W?"left:0":"right:0",_=W?"translateX(-100%)":"translateX(100%)",j=W?"stx-drawer-slide-left":"stx-drawer-slide-right";return`<div id="stx-drawer-${Y}" class="stx-drawer-backdrop" data-stx-drawer="${Y}" data-close-backdrop="${G}" data-close-escape="${K}" style="display:none;position:fixed;inset:0;z-index:99999;${q?"background:rgba(0,0,0,0.5);backdrop-filter:blur(2px)":"background:transparent;pointer-events:none"};opacity:0;transition:opacity 0.2s ease" role="dialog" aria-modal="true">
|
|
6691
6718
|
<div class="stx-drawer-panel" style="position:fixed;top:0;bottom:0;${U};width:${z};max-width:100vw;transform:${_};transition:transform 0.3s cubic-bezier(0.4,0,0.2,1);background:var(--stx-drawer-bg,#fff);color:var(--stx-drawer-text,#1f2937);box-shadow:0 20px 60px rgba(0,0,0,0.3);overflow-y:auto;pointer-events:auto">
|
|
6692
6719
|
<div style="padding:1.5rem">${Z}</div>
|
|
6693
6720
|
</div>
|
|
@@ -6696,24 +6723,24 @@ ${k}
|
|
|
6696
6723
|
@media(prefers-color-scheme:dark){[data-stx-drawer]{--stx-drawer-bg:#1f2937;--stx-drawer-text:#f3f4f6}}
|
|
6697
6724
|
.stx-drawer-backdrop[data-stx-drawer-open]{display:block!important;opacity:1}
|
|
6698
6725
|
.stx-drawer-backdrop[data-stx-drawer-open] .stx-drawer-panel{transform:translateX(0)}
|
|
6699
|
-
</style>`}}});var
|
|
6700
|
-
`||T==="\t")L++;H=N+O.length}else{if(L--,L===0){V=R;break}H=R+F.length}}if(V===-1){Q=_;continue}let A=$.slice(_,V),w=V+F.length;Y.push({fullMatch:$.slice(X,w),tagName:q,attributes:B,content:A,startIndex:X,endIndex:w,isSelfClosing:!1}),Q=w}}return Y}var
|
|
6726
|
+
</style>`}}});var T8={};r(T8,{preloadIconCollection:()=>R8,IconBuiltin:()=>E9});async function N8($){if(H5.has($))return H5.get($);try{let Z=Y0.resolve(`@iconify/json/json/${$}.json`),J=await Bun.file(Z).json();return H5.set($,J.icons),J.icons}catch{try{let J=`${process.cwd()}/node_modules/@iconify/json/json/${$}.json`,Y=Bun.file(J);if(await Y.exists()){let Q=await Y.json();return H5.set($,Q.icons),Q.icons}}catch{}}return null}function h1($,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 R8($="lucide"){await N8($)}var H5,E9;var k9=C(()=>{H5=new Map;E9={name:"Icon",aliases:["icon","stx-icon"],render($,Z,J){let Y=h1($,"name")??h1($,"icon");if(!Y)return"<!-- Icon: missing name/icon prop -->";let Q="lucide",X=Y;if(Y.includes(":")){let H=Y.split(":");Q=H[0],X=H[1]}let G=h1($,"size")||"24",K=h1($,"color")||"currentColor",q=h1($,"class")||"",z=h1($,"style")||"",W=H5.get(Q);if(!W)return N8(Q),`<!-- Icon: collection "${Q}" not loaded -->`;let U=W[X];if(!U)return`<!-- Icon: "${X}" not found in ${Q} -->`;let _=U.width||24,j=U.height||24,B=`0 0 ${_} ${j}`,O=U.body;if(K!=="currentColor")O=O.replace(/currentColor/g,K);let F=q?` class="${q}"`:"",L=z?` style="${z}"`:"";return`<svg xmlns="http://www.w3.org/2000/svg" width="${G}" height="${G}" viewBox="${B}" fill="none"${F}${L}>${O}</svg>`}}});function M8(){d0.registerBuiltin(C4),d0.registerBuiltin(g4),d0.registerBuiltin(m4),d0.registerBuiltin(p4),d0.registerBuiltin(c4),d0.registerBuiltin(n4),d0.registerBuiltin(E9)}var I8=C(()=>{P4();h4();u4();l4();i4();o4();k9();y4();P4();h4();u4();l4();i4();o4();k9()});function D8($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1-$2").toLowerCase()}function E8($,Z,J){let Y=[],Q=0;while(Q<$.length){let X=$.indexOf("<",Q);if(X===-1)break;let K=$.slice(X+1).match(new RegExp(`^(${Z.source})`));if(!K){Q=X+1;continue}let q=K[1];if(J&&J.has(q.toLowerCase())){let O=X+1+q.length;while(O<$.length&&$[O]!==">")O++;Q=O+1;continue}let z=X+1+q.length,W=null,U=z,_=-1,j=!1;while(z<$.length){let O=$[z];if(W){if(O==="\\"&&z+1<$.length){z+=2;continue}if(O===W)W=null;z++;continue}if(O==='"'||O==="'"){W=O,z++;continue}if(O==="/"&&z+1<$.length&&$[z+1]===">"){_=z+2,j=!0;break}if(O===">"){_=z+1;break}z++}if(_===-1){Q=X+1;continue}let B=$.slice(U,j?_-2:_-1).trim();if(j)Y.push({fullMatch:$.slice(X,_),tagName:q,attributes:B,content:"",startIndex:X,endIndex:_,isSelfClosing:!0}),Q=_;else{let O=`<${q}`,F=`</${q}>`,L=1,H=_,V=-1;while(L>0&&H<$.length){let N=$.indexOf(O,H),R=$.indexOf(F,H);if(R===-1)break;if(N!==-1&&N<R){let T=$[N+O.length];if(T===" "||T===">"||T==="/"||T===`
|
|
6727
|
+
`||T==="\t")L++;H=N+O.length}else{if(L--,L===0){V=R;break}H=R+F.length}}if(V===-1){Q=_;continue}let A=$.slice(_,V),w=V+F.length;Y.push({fullMatch:$.slice(X,w),tagName:q,attributes:B,content:A,startIndex:X,endIndex:w,isSelfClosing:!1}),Q=w}}return Y}var k8=C(()=>{R0();A0()});import d1 from"path";function xK($,Z,J){let Y={static:{},serverDynamic:{},clientReactive:{},events:{}},Q=new Set(["x-cloak","x-show","x-if","x-for","x-data","x-init","x-transition","x-ref","x-effect","x-model","x-text","x-html","x-class","x-style","x-on","x-bind"]),X=(G)=>{if(!G.includes("-")||G.startsWith("@")||G.startsWith(":")||G.startsWith("x-")||G.startsWith("__"))return G;return G.replace(/-([a-z0-9])/g,(K,q)=>q.toUpperCase())};for(let[G,K]of Object.entries($)){let q=G.startsWith("x-")&&!Q.has(G)&&!G.startsWith("x-bind:")&&!G.startsWith("x-on:")?`:${G.slice(2)}`:G;if(q.startsWith("@")){Y.events[q]=K;continue}if(q.startsWith("__stx_")){let z=X(q.slice(6));try{let W=K.replace(/"/g,'"').replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&");Y.serverDynamic[z]=JSON.parse(W)}catch(W){if(J.debug)console.error(`Error parsing __stx_${z}:`,W);Y.serverDynamic[z]=K}continue}if(q.startsWith(":")){let z=X(q.slice(1)),W=K==="true"?z:K;try{if(!t(W)){if(J.debug)console.error(`Unsafe expression in :${z} binding: ${W}`);Y.clientReactive[z]=W;continue}let U=Object.keys(Z),j=e(W,U)(...Object.values(Z));if(j===void 0){let B=W.match(/\b[a-zA-Z_$][a-zA-Z0-9_$]*\b/g)||[],O=new Set(["true","false","null","undefined","typeof","instanceof","in","of","new","this","return","void","delete","throw","if","else"]);if(B.some((L)=>!O.has(L)&&!U.includes(L))){Y.clientReactive[z]=W;continue}}Y.serverDynamic[z]=j}catch{Y.clientReactive[z]=W}continue}if(typeof K==="string"&&K.includes("{{")&&K.includes("}}")){let z=K.match(/^\{\{\s*([\s\S]+?)\s*\}\}$/);if(z)try{let W=z[1];if(t(W)){let _=e(W,Object.keys(Z))(...Object.values(Z));Y.static[q]=_!=null?String(_):""}else{if(J.debug)console.error(`Unsafe expression in ${q}: ${W}`);Y.static[q]=K}}catch(W){if(J.debug)console.error(`Error evaluating expression for ${q}:`,W);Y.static[q]=K}else{let W=K,U=/\{\{\s*([\s\S]+?)\s*\}\}/g,_;while((_=U.exec(K))!==null)try{let j=_[1];if(!t(j)){if(J.debug)console.error(`Unsafe expression in ${q}: ${j}`);continue}let O=e(j,Object.keys(Z))(...Object.values(Z));W=W.replace(_[0],String(O??""))}catch(j){if(J.debug)console.error(`Error evaluating expression in ${q}:`,j)}Y.static[q]=W}continue}Y.static[q]=K}return Y}function fK($){let Z={},J=0,Y=$.length;while(J<Y){while(J<Y&&/\s/.test($[J]))J++;if(J>=Y)break;let Q="";while(J<Y&&!/[\s=]/.test($[J]))Q+=$[J],J++;if(!Q)break;while(J<Y&&/\s/.test($[J]))J++;if(J<Y&&$[J]==="="){J++;while(J<Y&&/\s/.test($[J]))J++;let X="";if(J<Y&&($[J]==='"'||$[J]==="'")){let G=$[J];J++;while(J<Y){let K=$[J];if(K==="\\"&&J+1<Y){J++,X+=$[J],J++;continue}if(K===G){J++;break}X+=K,J++}}else while(J<Y&&!/\s/.test($[J]))X+=$[J],J++;Z[Q]=X}else Z[Q]="true"}return Z}async function gK($,Z,J,Y,Q){let X=$;if(!Z.__importedComponents)Z.__importedComponents=new Map;let G=Z.__importedComponents,K=/@import\s*\(\s*([^)]+)\s*\)/g,q;while((q=K.exec(X))!==null){let[z,W]=q,U=W.split(",").map((_)=>_.trim().replace(/^['"]|['"]$/g,"")).filter((_)=>_.length>0);for(let _ of U){let j=_.split("/"),O=j[j.length-1].replace(/\.stx$/,""),F=O.includes("-")?O.split("-").map((V)=>V.charAt(0).toUpperCase()+V.slice(1)).join(""):O.charAt(0).toUpperCase()+O.slice(1),L=null,H=[d1.resolve(d1.dirname(J),`${_}.stx`),d1.resolve(d1.dirname(J),_),d1.resolve(Y.componentsDir||"components",`${_}.stx`),d1.resolve(Y.componentsDir||"components",_),_.endsWith(".stx")?_:`${_}.stx`];for(let V of H)try{if(await Bun.file(V).exists()){L=V;break}}catch{}if(L){G.set(F,L),G.set(O,L),G.set(O.toLowerCase(),L);let V=F.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(G.set(V,L),Q.add(L),Y.debug)console.log(`Imported component: ${F} -> ${L}`)}else if(Y.debug)console.warn(`Could not resolve imported component: ${_}`)}X=X.replace(z,""),K.lastIndex=0}return X}async function hK($,Z,J,Y,Q){let X=$,G=Y.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,q=/@component\s*\(/g,z;while((z=q.exec(X))!==null){let W=z.index,U=W+z[0].length-1,_=1,j=U+1;while(j<X.length&&_>0){if(X[j]==="(")_++;else if(X[j]===")"){if(_--,_===0)break}j++}if(_!==0)break;let B=X.substring(U+1,j),O=j+1,F=B.match(/^\s*['"]([^'"]+)['"]/);if(!F){q.lastIndex=0;continue}let L=F[1],H,V=B.slice(F[0].length),A=V.match(/^\s*,\s*/);if(A)H=V.slice(A[0].length).trim();let w={};if(H)try{w=F0(H,Z)}catch(E){let k=E instanceof Error?E.message:String(E);X=X.replace(X.substring(W,O),`[Error parsing component props: ${k}]`);continue}let N="",R=O,I=X.substring(O).match(/^([\s\S]*?)@endcomponent/);if(I)N=I[1].trim(),R=O+I[0].length;let M=await B1(L,w,N,G,Z,J,Y,K,Q);X=X.substring(0,W)+M+X.substring(R),q.lastIndex=0}return X}async function dK($,Z,J,Y,Q){if(!$)return $;let X=$,G=Y.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents;return X=await U(X,/[a-z][a-z0-9]*-[a-z0-9-]*/,!1),X=await U(X,/[A-Z][a-zA-Z0-9]*/,!0),X=await U(X,/[a-z][a-z0-9]*/,!1,vK),X;async function U(_,j,B,O){if(!_)return _;let F=_,L=E8(F,j,O);for(let H=L.length-1;H>=0;H--){let V=L[H],A=B?D8(V.tagName):V.tagName,w=fK(V.attributes),N=xK(w,Z,Y),R=d0.getBuiltin(V.tagName);if(R){let E={context:Z,filePath:J,options:Y,dependencies:Q},k=R.render(N,V.content,E);if(Object.keys(N.clientReactive).length>0)k=S8(k,N.clientReactive);if(Object.keys(N.events).length>0){let y=Object.entries(N.events).map(([S,b])=>`${S}="${b.replace(/"/g,""")}"`).join(" ");k=k.replace(/^(\s*<[a-zA-Z][a-zA-Z0-9-]*)/,`$1 ${y}`)}F=F.substring(0,V.startIndex)+k+F.substring(V.endIndex);continue}let T={};for(let[E,k]of Object.entries(N.static))T[E]=k;for(let[E,k]of Object.entries(N.serverDynamic))T[E]=k;let M=await B1(A,T,V.content,G,Z,J,Y,K,Q);if(Object.keys(N.clientReactive).length>0)M=S8(M,N.clientReactive);if(Object.keys(N.events).length>0){let E=M.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(E){let k=Object.entries(N.events).map(([S,b])=>`${S}="${b}"`).join(" "),y=E[1].length+E[2].length;M=M.substring(0,y)+" "+k+M.substring(y)}}F=F.substring(0,V.startIndex)+M+F.substring(V.endIndex)}return F}}function S8($,Z){let J=$.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(!J)return $;let Y=Object.entries(Z).map(([X,G])=>`:${X}="${G.replace(/"/g,""")}"`).join(" "),Q=J[1].length+J[2].length;return $.substring(0,Q)+" "+Y+$.substring(Q)}async function s4($,Z,J,Y,Q){if(!b8)M8(),b8=!0;let X=await gK($,Z,J,Y,Q);X=await hK(X,Z,J,Y,Q);for(let G=0;G<3;G++){let K=X;if(X=await dK(X,Z,J,Y,Q),X===K)break}return X}var b8=!1,vK;var y8=C(()=>{y4();I8();k8();A0();R0();vK=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 m1 from"path";function C8($){return $.startsWith("http://")||$.startsWith("https://")||$.startsWith("//")}function P8($,Z,J){try{let Y;if($.startsWith("/")){let Q=Z;for(let X=0;X<5;X++){let G=m1.join(Q,$);if(Y0("fs").existsSync(G))return G;Q=m1.dirname(Q)}Y=m1.join(Z,$)}else if($.startsWith("./")||$.startsWith("../"))Y=m1.resolve(Z,$);else Y=m1.resolve(Z,$);if(Y0("fs").existsSync(Y))return Y;return null}catch{return null}}async function v8($,Z,J){let Y=$,Q=m1.dirname(Z),X=/<script\b([^>]*)src=["']([^"']+)["']([^>]*)><\/script>/gi,G;while((G=X.exec(Y))!==null){let[z,W,U,_]=G;if(C8(U))continue;let j=P8(U,Q,Z);if(j)try{let B=await Bun.file(j).text();if(J.add(j),U.endsWith(".ts")||U.endsWith(".tsx")){let F=await Bun.build({entrypoints:[j],target:"browser",minify:!1,define:f0()});if(F.outputs.length>0)B=await F.outputs[0].text()}let O=`<script>
|
|
6701
6728
|
// Source: ${U}
|
|
6702
6729
|
${B}
|
|
6703
|
-
</script>`;Y=Y.replace(z,O),X.lastIndex=0}catch(B){}}let K=/<link\b([^>]*)href=["']([^"']+)["']([^>]*)(?:\/?>)/gi,q;while((q=K.exec(Y))!==null){let[z,W,U,_]=q,j=W+_;if(
|
|
6730
|
+
</script>`;Y=Y.replace(z,O),X.lastIndex=0}catch(B){}}let K=/<link\b([^>]*)href=["']([^"']+)["']([^>]*)(?:\/?>)/gi,q;while((q=K.exec(Y))!==null){let[z,W,U,_]=q,j=W+_;if(C8(U))continue;if(/rel=["']stylesheet["']/.test(j)||U.endsWith(".css")){let O=P8(U,Q,Z);if(O)try{let F=await Bun.file(O).text();J.add(O);let L=`<style>
|
|
6704
6731
|
/* Source: ${U} */
|
|
6705
6732
|
${F}
|
|
6706
|
-
</style>`;Y=Y.replace(z,L),K.lastIndex=0}catch(F){}}}return Y}var
|
|
6733
|
+
</style>`;Y=Y.replace(z,L),K.lastIndex=0}catch(F){}}}return Y}var x8=C(()=>{M1()});function r4($,Z){let J=$,Y=/@json\s*\(/g,Q;while((Q=Y.exec(J))!==null){let X=Q.index,G=X+Q[0].length-1,K=1,q=G+1,z=null,W=!1;while(q<J.length&&K>0){let V=J[q];if(W){W=!1,q++;continue}if(V==="\\"&&z){W=!0,q++;continue}if(z){if(V===z)z=null;q++;continue}if(V==='"'||V==="'"||V==="`"){z=V,q++;continue}if(V==="(")K++;else if(V===")"){if(K--,K===0)break}q++}if(K!==0)break;let U=J.substring(G+1,q).trim(),_=J.substring(X,q+1),j=-1,B=0,O=null,F=!1;for(let V=0;V<U.length;V++){let A=U[V];if(F){F=!1;continue}if(A==="\\"&&O){F=!0;continue}if(O){if(A===O)O=null;continue}if(A==='"'||A==="'"||A==="`"){O=A;continue}if(A==="("||A==="["||A==="{")B++;else if(A===")"||A==="]"||A==="}")B--;if(A===","&&B===0){j=V;break}}let L=j>=0?U.substring(0,j).trim():U,H=j>=0?U.substring(j+1).trim():void 0;try{let V=L.trim(),A;if(t(V))A=e(V,Object.keys(Z))(...Object.values(Z));else A=void 0;let w;if(H==="true")w=JSON.stringify(A,null,2);else w=JSON.stringify(A);let N=w.replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/&/g,"\\u0026").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029");J=J.substring(0,X)+N+J.substring(q+1),Y.lastIndex=X+N.length}catch(V){v0.log(V instanceof Error?V:Error(String(V)),{directive:"@json"},"error"),Y.lastIndex=X+_.length}}return J}function a4($){return $.replace(/@once\s*([\s\S]*?)@endonce/g,"$1")}function f8($){let Z=$,J=/@memo\s*\(/g,Y,Q=[];while((Y=J.exec(Z))!==null){let X=Y.index,G=X+Y[0].length,K=1,q=G;while(q<Z.length&&K>0){if(Z[q]==="(")K++;else if(Z[q]===")")K--;q++}if(K!==0)continue;let z=Z.slice(G,q-1).trim(),W=q,U=Z.slice(W),_=U.indexOf("@endmemo");if(_===-1)continue;let j=U.slice(0,_),B=W+_+8,O=j.match(/^(\s*(?:<!--[\s\S]*?-->\s*)*)/),F=O?O[0].length:0,L=j.slice(F),H=j.match(/(\s*)$/),V=H?H[0].length:0,A=L.slice(0,L.length-V),w=A.match(/^<([a-zA-Z][a-zA-Z0-9-]*)(\s[^>]*?)?(\/?)>/),N;if(w){let[R,T,I="",M]=w,E=`<${T}${I} data-stx-memo="${z}"${M}>`;N=j.slice(0,F)+E+A.slice(R.length)+j.slice(F+A.length)}else N=`${j.slice(0,F)}<div data-stx-memo="${z}">${A}</div>${j.slice(F+A.length)}`;Q.push({start:X,end:B,replacement:N}),J.lastIndex=B}for(let X=Q.length-1;X>=0;X--){let G=Q[X];Z=Z.slice(0,G.start)+G.replacement+Z.slice(G.end)}return Z.replace(/@memo="([^"]*)"/g,'data-stx-memo="$1"')}function t4($){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 g8($){let J=new RegExp("<(div|span|p|h[1-6]|td|th|li|a|button|label|section|article|header|footer|main|nav|aside|dd|dt|figcaption|summary|caption|blockquote|pre|code|em|strong|small|sub|sup|time|mark|abbr|cite|q|s|u|b|i)\\b","gi"),Y="",Q=0,X;while((X=J.exec($))!==null){let G=X.index,K=G+X[0].length,q=!1,z=!1,W=-1;while(K<$.length){let O=$[K];if(q){if(O==="'")q=!1}else if(z){if(O==='"')z=!1}else if(O==="'")q=!0;else if(O==='"')z=!0;else if(O===">"){W=K;break}K++}if(W===-1)continue;if($.slice(G,W+1).includes("x-cloak"))continue;let _=$.slice(W+1),j=_.indexOf("</"),B=j>=0?_.slice(0,j):_.slice(0,200);if(/\{\{[\s\S]*?\}\}/.test(B))Y+=$.slice(Q,W)+" x-cloak>",Q=W+1}return Y+=$.slice(Q),Y}var e4=C(()=>{n0();R0()});function $7($,Z,J){let Y=typeof J==="boolean"?{enabled:J,failOnViolation:J}:J??{enabled:!1},Q=Y.allowPatterns??[],X=[];for(let{pattern:G,message:K,suggestion:q}of mK){if(Q.some((W)=>K.includes(W)||G.source.includes(W)))continue;G.lastIndex=0;let z=$.match(G);if(z&&z.length>0){let W=$.split(`
|
|
6707
6734
|
`),U=[];W.forEach((j,B)=>{if(G.lastIndex=0,G.test(j))U.push(B+1)});let _=U.length>0?` (line${U.length>1?"s":""}: ${U.join(", ")})`:"";X.push(` \u2717 ${K}${_}
|
|
6708
6735
|
\u2192 ${q}`)}}if(X.length>0&&Y.enabled){let K=`[STX] DOM API violation in ${Z.split("/").pop()||Z}:
|
|
6709
6736
|
${X.join(`
|
|
6710
6737
|
`)}
|
|
6711
|
-
Tip: prefer useRef(), navigate(), and composables for component code`;if(Y.failOnViolation)throw Error(K);else console.warn(K)}}var
|
|
6712
|
-
${U.trim()}`)}catch(U){console.warn(`[stx] Failed to load store ${W}:`,U)}if(K.length===0)return
|
|
6738
|
+
Tip: prefer useRef(), navigate(), and composables for component code`;if(Y.failOnViolation)throw Error(K);else console.warn(K)}}var mK;var Z7=C(()=>{mK=[{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 h8={};r(h8,{getStoreScript:()=>uK,clearStoreCache:()=>pK});import b9 from"path";async function uK($){let Z;if($)Z=b9.resolve($);else{let W=await L1();Z=b9.resolve(W.root||process.cwd(),W.storesDir||"stores")}let J=u1.get(Z);if(J!==void 0)return J||null;let Y=new Bun.Glob("*.ts"),Q=[];try{for await(let W of Y.scan({cwd:Z,absolute:!0})){let U=b9.basename(W,".ts");if(["index","types"].includes(U))continue;if(W.includes(".d.ts"))continue;Q.push(W)}}catch{return u1.set(Z,""),null}if(Q.length===0)return u1.set(Z,""),null;let X=[];for(let W of Q){let U=await Bun.file(W).text();X.push({file:W,hasUseStore:/useStore\s*\(/.test(U)})}X.sort((W,U)=>{if(W.hasUseStore===U.hasUseStore)return 0;return W.hasUseStore?1:-1});let G=X.map((W)=>W.file),K=[],q=new Bun.Transpiler({loader:"ts",target:"browser",define:f0()});for(let W of G)try{let U=await Bun.file(W).text(),_=b9.basename(W,".ts");U=U.replace(/^import\s+.*from\s+['"][^'"]+['"]\s*;?\s*$/gm,""),U=U.replace(/^export\s+(default\s+)?/gm,""),U=q.transformSync(U),K.push(`// Store: ${_}
|
|
6739
|
+
${U.trim()}`)}catch(U){console.warn(`[stx] Failed to load store ${W}:`,U)}if(K.length===0)return u1.set(Z,""),null;let z=`;(function(){
|
|
6713
6740
|
${K.join(`
|
|
6714
6741
|
|
|
6715
6742
|
`)}
|
|
6716
|
-
})();`;return
|
|
6743
|
+
})();`;return u1.set(Z,z),z}function pK(){u1.clear()}var u1;var d8=C(()=>{Q5();M1();u1=new Map});var u8={};r(u8,{processDeferDirectives:()=>oK});function lK(){return`stx-defer-${++m8}`}function cK($){let Z=$.match(/on:\s*['"]?(\w+)(?:\((\d+)\))?['"]?/);if(Z)return{trigger:Z[1],value:Z[2]};return{trigger:"immediate"}}function iK($,Z,J){let{trigger:Y,value:Q}=cK(Z),X=J,G,K,q,z=J.match(/@placeholder\s*([\s\S]*?)(?=@loading|@error|$)/);if(z)G=z[1].trim(),X=X.replace(/@placeholder[\s\S]*?(?=@loading|@error|$)/,"");let W=J.match(/@loading\s*([\s\S]*?)(?=@error|$)/);if(W)K=W[1].trim(),X=X.replace(/@loading[\s\S]*?(?=@error|$)/,"");let U=J.match(/@error(?:\s*\(\s*(\w+)\s*\))?\s*([\s\S]*)$/);if(U)q=U[2].trim(),X=X.replace(/@error(?:\s*\(\s*\w+\s*\))?[\s\S]*$/,"");return X=X.trim(),{trigger:Y,triggerValue:Q,content:X,placeholder:G,loading:K,error:q}}function nK($,Z){let{trigger:J,triggerValue:Y}=Z,Q;switch(J){case"visible":Q=`
|
|
6717
6744
|
const observer = new IntersectionObserver((entries) => {
|
|
6718
6745
|
if (entries[0].isIntersecting) {
|
|
6719
6746
|
observer.disconnect();
|
|
@@ -6786,7 +6813,7 @@ else {
|
|
|
6786
6813
|
${Q}
|
|
6787
6814
|
})();
|
|
6788
6815
|
</script>
|
|
6789
|
-
`}function
|
|
6816
|
+
`}function oK($,Z,J){m8=0;let Y=/@defer\s*\(([^)]*)\)\s*([\s\S]*?)@enddefer/g;return $.replace(Y,(Q,X,G)=>{let K=lK(),q=iK(Q,X,G),z=q.placeholder?`<div data-defer-placeholder>${q.placeholder}</div>`:"",W=q.loading?`<div data-defer-loading style="display: none;">${q.loading}</div>`:'<div data-defer-loading style="display: none;"></div>',U=q.error?`<div data-defer-error style="display: none;">${q.error}</div>`:"",_=`<div data-defer-content style="display: none;">${q.content}</div>`,j=nK(K,q);return`
|
|
6790
6817
|
<div id="${K}" class="stx-defer" data-defer-trigger="${q.trigger}">
|
|
6791
6818
|
${z}
|
|
6792
6819
|
${W}
|
|
@@ -6794,7 +6821,7 @@ else {
|
|
|
6794
6821
|
${U}
|
|
6795
6822
|
</div>
|
|
6796
6823
|
${j}
|
|
6797
|
-
`})}var
|
|
6824
|
+
`})}var m8=0;var l8={};r(l8,{processTeleportDirectives:()=>tK,ensureTeleportTargets:()=>eK});function sK(){return`stx-teleport-${++p8}`}function rK($){let Z=$.split(",").map((Q)=>Q.trim()),J=Z[0].replace(/['"]/g,""),Y;for(let Q=1;Q<Z.length;Q++){let X=Z[Q].match(/disabled:\s*(.+)/);if(X)Y=X[1].trim()}return{target:J,disabled:Y}}function aK($,Z){return`
|
|
6798
6825
|
<script>
|
|
6799
6826
|
(function() {
|
|
6800
6827
|
const source = document.getElementById('${$}');
|
|
@@ -6830,12 +6857,12 @@ else {
|
|
|
6830
6857
|
}));
|
|
6831
6858
|
})();
|
|
6832
6859
|
</script>
|
|
6833
|
-
`}function
|
|
6860
|
+
`}function tK($,Z,J){p8=0;let Y=/@teleport\s*\(([^)]+)\)\s*([\s\S]*?)@endteleport/g;return $.replace(Y,(Q,X,G)=>{let K=sK(),{target:q,disabled:z}=rK(X),W=G.trim();if(z)try{let _=!1;if(z==="true")_=!0;else if(z==="false")_=!1;else if(z in Z)_=Boolean(Z[z]);if(_)return`<div class="stx-teleport-inline" data-teleport-disabled>${W}</div>`}catch{}let U=aK(K,q);return`
|
|
6834
6861
|
<div id="${K}" class="stx-teleport-source" style="display: none;">
|
|
6835
6862
|
<template>${W}</template>
|
|
6836
6863
|
</div>
|
|
6837
6864
|
${U}
|
|
6838
|
-
`})}function
|
|
6865
|
+
`})}function eK(){return`
|
|
6839
6866
|
<script>
|
|
6840
6867
|
(function() {
|
|
6841
6868
|
// Common teleport targets
|
|
@@ -6852,7 +6879,7 @@ else {
|
|
|
6852
6879
|
});
|
|
6853
6880
|
})();
|
|
6854
6881
|
</script>
|
|
6855
|
-
`}var
|
|
6882
|
+
`}var p8=0;var o8={};r(o8,{processTransitionDirectives:()=>Jq,processTransitionAttributes:()=>Kq,performLeave:()=>Yq,performEnter:()=>Zq,generateTransitionRuntime:()=>Gq,generateTransitionCSS:()=>Qq});function c8($,Z={}){return{enterFrom:Z.enterClass||`${$}-enter-from`,enterActive:Z.enterActiveClass||`${$}-enter-active`,enterTo:Z.enterToClass||`${$}-enter-to`,leaveFrom:Z.leaveClass||`${$}-leave-from`,leaveActive:Z.leaveActiveClass||`${$}-leave-active`,leaveTo:Z.leaveToClass||`${$}-leave-to`}}function $q($){let Z=getComputedStyle($),J=Z.transitionDuration||"0s",Y=Z.animationDuration||"0s",Q=(X)=>{let G=X.match(/^([\d.]+)(s|ms)?$/);if(!G)return 0;let K=parseFloat(G[1]);return(G[2]||"s")==="ms"?K:K*1000};return Math.max(Q(J),Q(Y))}function i8($,Z){return new Promise((J)=>{let Y=Z??$q($);if(Y===0){J();return}let Q=!1,X=()=>{if(Q)return;Q=!0,$.removeEventListener("transitionend",G),$.removeEventListener("animationend",G),J()},G=(K)=>{if(K.target===$)X()};$.addEventListener("transitionend",G),$.addEventListener("animationend",G),setTimeout(X,Y+50)})}function n8($){$.offsetHeight}async function Zq($,Z={}){let J=Z.name||"stx",Y=c8(J,Z),Q=typeof Z.duration==="object"?Z.duration.enter:Z.duration;if(Z.onBeforeEnter?.($),$.classList.add(Y.enterFrom),$.classList.add(Y.enterActive),n8($),$.classList.remove(Y.enterFrom),$.classList.add(Y.enterTo),Z.onEnter)await new Promise((X)=>{Z.onEnter($,X)});else await i8($,Q);$.classList.remove(Y.enterActive),$.classList.remove(Y.enterTo),Z.onAfterEnter?.($)}async function Yq($,Z={}){let J=Z.name||"stx",Y=c8(J,Z),Q=typeof Z.duration==="object"?Z.duration.leave:Z.duration;if(Z.onBeforeLeave?.($),$.classList.add(Y.leaveFrom),$.classList.add(Y.leaveActive),n8($),$.classList.remove(Y.leaveFrom),$.classList.add(Y.leaveTo),Z.onLeave)await new Promise((X)=>{Z.onLeave($,X)});else await i8($,Q);$.classList.remove(Y.leaveActive),$.classList.remove(Y.leaveTo),Z.onAfterLeave?.($)}function Jq($,Z={},J){let Y=/@transition\s*\(([^)]*)\)([\s\S]*?)@endtransition/gi;return $.replace(Y,(Q,X,G)=>{let K=Xq(X),q=K.name||"stx",z=K.duration||300,W=`stx-transition-${Math.random().toString(36).slice(2,9)}`;return`
|
|
6856
6883
|
<div
|
|
6857
6884
|
class="stx-transition-wrapper"
|
|
6858
6885
|
data-transition="${q}"
|
|
@@ -6894,7 +6921,7 @@ else {
|
|
|
6894
6921
|
});
|
|
6895
6922
|
})();
|
|
6896
6923
|
</script>
|
|
6897
|
-
`})}function
|
|
6924
|
+
`})}function Xq($){let Z={},J=/(\w+)\s*:\s*(?:'([^']*)'|"([^"]*)"|(\d+)|(\w+))/g,Y;while((Y=J.exec($))!==null){let Q=Y[1],X=Y[2]||Y[3]||Y[4]||Y[5];switch(Q){case"name":Z.name=X;break;case"duration":Z.duration=parseInt(X,10);break;case"mode":Z.mode=X;break;case"easing":Z.easing=X;break}}return Z}function Qq(){return`
|
|
6898
6925
|
/* STX Transition Presets */
|
|
6899
6926
|
|
|
6900
6927
|
/* Fade */
|
|
@@ -7081,7 +7108,7 @@ else {
|
|
|
7081
7108
|
opacity: 1;
|
|
7082
7109
|
max-height: 1000px;
|
|
7083
7110
|
}
|
|
7084
|
-
`}function
|
|
7111
|
+
`}function Gq(){return`
|
|
7085
7112
|
// STX Transition Runtime
|
|
7086
7113
|
(function() {
|
|
7087
7114
|
if (typeof window === 'undefined') return;
|
|
@@ -7170,7 +7197,7 @@ else {
|
|
|
7170
7197
|
|
|
7171
7198
|
console.log('[stx] Transition runtime initialized');
|
|
7172
7199
|
})();
|
|
7173
|
-
`}function
|
|
7200
|
+
`}function Kq($){let Z=/@transition\.([a-z-]+)(?:\.(\d+))?="([^"]+)"/gi;return $.replace(Z,(J,Y,Q,X)=>{let G=Q||"300",K=`stx-t-${Math.random().toString(36).slice(2,7)}`;return`data-stx-transition="${Y}" data-stx-transition-duration="${G}" data-stx-transition-condition="${X}" data-stx-transition-id="${K}"`})}var r8={};r(r8,{withErrorBoundary:()=>s8,processErrorBoundaryDirectives:()=>zq,generateErrorBoundaryRuntime:()=>Oq,generateErrorBoundaryCSS:()=>jq,createErrorBoundary:()=>Bq});function Wq(){return`eb-${++qq}-${Date.now().toString(36)}`}function zq($,Z={},J){let Y=/@errorBoundary(?:\s*\(([^)]*)\))?\s*([\s\S]*?)@fallback\s*([\s\S]*?)@enderrorBoundary/gi;return $.replace(Y,(Q,X,G,K)=>{let q=Wq(),z=Uq(X||"");return _q(q,G.trim(),K.trim(),z)})}function Uq($){let Z={},J=/(\w+)\s*:\s*(?:'([^']*)'|"([^"]*)"|(\w+))/g,Y;while((Y=J.exec($))!==null){let Q=Y[1],X=Y[2]||Y[3]||Y[4];switch(Q){case"id":Z.id=X;break;case"logErrors":Z.logErrors=X==="true";break}}return Z}function _q($,Z,J,Y){let Q=Y.logErrors!==!1;return`
|
|
7174
7201
|
<div class="stx-error-boundary" data-boundary-id="${$}" data-has-error="false">
|
|
7175
7202
|
<div class="stx-error-boundary-content" data-boundary-content="${$}">
|
|
7176
7203
|
${Z}
|
|
@@ -7290,7 +7317,7 @@ else {
|
|
|
7290
7317
|
};
|
|
7291
7318
|
})();
|
|
7292
7319
|
</script>
|
|
7293
|
-
`}async function
|
|
7320
|
+
`}async function s8($,Z,J){try{return await $()}catch(Y){if(J)J(Y instanceof Error?Y:Error(String(Y)));else console.error("[stx:errorBoundary] SSR Error:",Y);return Z}}function Bq($,Z={}){let J=Z.onError?(Y)=>Z.onError(Y,{timestamp:Date.now(),boundaryId:"ssr"}):void 0;return(Y)=>s8(Y,$,J)}function jq(){return`
|
|
7294
7321
|
/* STX Error Boundary Styles */
|
|
7295
7322
|
.stx-error-boundary {
|
|
7296
7323
|
position: relative;
|
|
@@ -7334,7 +7361,7 @@ else {
|
|
|
7334
7361
|
color: #fecaca;
|
|
7335
7362
|
}
|
|
7336
7363
|
}
|
|
7337
|
-
`}function
|
|
7364
|
+
`}function Oq(){return`
|
|
7338
7365
|
// STX Error Boundary Runtime
|
|
7339
7366
|
(function() {
|
|
7340
7367
|
if (typeof window === 'undefined') return;
|
|
@@ -7399,7 +7426,7 @@ else {
|
|
|
7399
7426
|
|
|
7400
7427
|
console.log('[stx] Error boundary runtime initialized');
|
|
7401
7428
|
})();
|
|
7402
|
-
`}var
|
|
7429
|
+
`}var qq=0;var a8={};r(a8,{renderSSRSuspense:()=>Nq,processSuspenseDirectives:()=>Fq,generateSuspenseRuntime:()=>Tq,generateSuspenseCSS:()=>Rq,createSSRSuspense:()=>Aq});function Lq(){return`suspense-${++Hq}-${Date.now().toString(36)}`}function Fq($,Z={},J){let Y=/@suspense(?:\s*\(([^)]*)\))?\s*([\s\S]*?)@fallback\s*([\s\S]*?)@endsuspense/gi;return $.replace(Y,(Q,X,G,K)=>{let q=Lq(),z=Vq(X||"");return wq(q,G.trim(),K.trim(),z)})}function Vq($){let Z={},J=/(\w+)\s*:\s*(?:'([^']*)'|"([^"]*)"|(\d+)|(\w+))/g,Y;while((Y=J.exec($))!==null){let Q=Y[1],X=Y[2]||Y[3],G=Y[4];switch(Q){case"id":Z.id=X;break;case"timeout":Z.timeout=G?parseInt(G,10):void 0;break}}return Z}function wq($,Z,J,Y){let Q=Y.timeout||30000,X=Y.id||$;return`
|
|
7403
7430
|
<div class="stx-suspense" data-suspense-id="${$}" data-custom-id="${X}" data-status="pending">
|
|
7404
7431
|
<div class="stx-suspense-fallback" data-suspense-fallback="${$}">
|
|
7405
7432
|
${J}
|
|
@@ -7589,7 +7616,7 @@ else {
|
|
|
7589
7616
|
}, 0);
|
|
7590
7617
|
})();
|
|
7591
7618
|
</script>
|
|
7592
|
-
`}function
|
|
7619
|
+
`}function Aq($,Z,J){return{id:$,fallback:J,content:Z}}async function Nq($){let Z=$.map((Y)=>`
|
|
7593
7620
|
<div id="stx-ssr-suspense-${Y.id}" class="stx-ssr-suspense">
|
|
7594
7621
|
${Y.fallback}
|
|
7595
7622
|
</div>
|
|
@@ -7614,7 +7641,7 @@ else {
|
|
|
7614
7641
|
}
|
|
7615
7642
|
})();
|
|
7616
7643
|
</script>
|
|
7617
|
-
`}}return{initial:Z,streaming:J()}}function
|
|
7644
|
+
`}}return{initial:Z,streaming:J()}}function Rq(){return`
|
|
7618
7645
|
/* STX Suspense Styles */
|
|
7619
7646
|
.stx-suspense {
|
|
7620
7647
|
position: relative;
|
|
@@ -7670,7 +7697,7 @@ else {
|
|
|
7670
7697
|
background-size: 200% 100%;
|
|
7671
7698
|
}
|
|
7672
7699
|
}
|
|
7673
|
-
`}function
|
|
7700
|
+
`}function Tq(){return`
|
|
7674
7701
|
// STX Suspense Runtime
|
|
7675
7702
|
(function() {
|
|
7676
7703
|
if (typeof window === 'undefined') return;
|
|
@@ -7737,7 +7764,7 @@ else {
|
|
|
7737
7764
|
|
|
7738
7765
|
console.log('[stx] Suspense runtime initialized');
|
|
7739
7766
|
})();
|
|
7740
|
-
`}var
|
|
7767
|
+
`}var Hq=0;var ZZ={};r(ZZ,{processAsyncDirectives:()=>Iq,isAsyncComponent:()=>Eq,generateAsyncComponentRuntime:()=>bq,generateAsyncComponentCSS:()=>kq,defineAsyncComponent:()=>Dq});function t8(){return`async-${++Mq}-${Date.now().toString(36)}`}function Iq($,Z={},J){let Y=/@async\s*\(([^)]*)\)\s*([\s\S]*?)@error\s*([\s\S]*?)@endasync/gi,Q=/@async\s*\(([^)]*)\)\s*([\s\S]*?)@endasync/gi,X=$;return X=X.replace(Y,(G,K,q,z)=>{let W=t8(),U=e8(K);return $Z(W,U,q.trim(),z.trim())}),X=X.replace(Q,(G,K,q)=>{let z=t8(),W=e8(K);return $Z(z,W,q.trim(),'<div class="stx-async-error">Failed to load component</div>')}),X}function e8($){let Z={component:"",timeout:30000,delay:200,suspensible:!0,retries:0},J=/(\w+)\s*:\s*(?:'([^']*)'|"([^"]*)"|(\d+)|(\w+))/g,Y;while((Y=J.exec($))!==null){let Q=Y[1],X=Y[2]||Y[3],G=Y[4],K=Y[5];switch(Q){case"component":Z.component=X||K||"";break;case"timeout":Z.timeout=G?parseInt(G,10):30000;break;case"delay":Z.delay=G?parseInt(G,10):200;break;case"suspensible":Z.suspensible=K==="true";break;case"retries":Z.retries=G?parseInt(G,10):0;break;case"loadingComponent":Z.loadingComponent=X||K;break;case"errorComponent":Z.errorComponent=X||K;break}}return Z}function $Z($,Z,J,Y){let{component:Q,timeout:X,delay:G,suspensible:K,retries:q}=Z;return`
|
|
7741
7768
|
<div class="stx-async-component" data-async-id="${$}" data-component="${Q}" data-status="pending">
|
|
7742
7769
|
<div class="stx-async-loading" data-async-loading="${$}">
|
|
7743
7770
|
${J}
|
|
@@ -7922,7 +7949,7 @@ catch (error) {
|
|
|
7922
7949
|
loadComponent();
|
|
7923
7950
|
})();
|
|
7924
7951
|
</script>
|
|
7925
|
-
`}function
|
|
7952
|
+
`}function Dq($){return{__asyncComponent:!0,...typeof $==="function"?{loader:$}:$}}function Eq($){return typeof $==="object"&&$!==null&&"__asyncComponent"in $&&$.__asyncComponent===!0}function kq(){return`
|
|
7926
7953
|
/* STX Async Component Styles */
|
|
7927
7954
|
.stx-async-component {
|
|
7928
7955
|
position: relative;
|
|
@@ -7996,7 +8023,7 @@ catch (error) {
|
|
|
7996
8023
|
background-size: 200% 100%;
|
|
7997
8024
|
}
|
|
7998
8025
|
}
|
|
7999
|
-
`}function
|
|
8026
|
+
`}function bq(){return`
|
|
8000
8027
|
// STX Async Component Runtime
|
|
8001
8028
|
(function() {
|
|
8002
8029
|
if (typeof window === 'undefined') return;
|
|
@@ -8050,7 +8077,7 @@ catch (error) {
|
|
|
8050
8077
|
|
|
8051
8078
|
console.log('[stx] Async component runtime initialized');
|
|
8052
8079
|
})();
|
|
8053
|
-
`}var
|
|
8080
|
+
`}var Mq=0;var JZ={};r(JZ,{shouldCacheComponent:()=>xq,processKeepAliveDirectives:()=>yq,onDeactivated:()=>dq,onActivated:()=>hq,generateKeepAliveRuntime:()=>gq,generateKeepAliveCSS:()=>fq,createKeepAliveCache:()=>vq});function YZ(){return`keep-alive-${++Sq}-${Date.now().toString(36)}`}function yq($,Z={},J){let Y=/@keepAlive(?:\s*\(([^)]*)\))?\s*([\s\S]*?)@endkeepAlive/gi;return $.replace(Y,(Q,X,G)=>{let K=YZ(),q=Cq(X||"");return Pq(K,G.trim(),q)})}function Cq($){let Z={max:10},J=/(\w+)\s*:\s*(?:'([^']*)'|"([^"]*)"|(\d+)|(\w+))/g,Y;while((Y=J.exec($))!==null){let Q=Y[1],X=Y[2]||Y[3],G=Y[4];switch(Q){case"max":Z.max=G?parseInt(G,10):10;break;case"include":Z.include=X;break;case"exclude":Z.exclude=X;break;case"id":Z.id=X;break}}return Z}function Pq($,Z,J){let{max:Y,include:Q,exclude:X}=J,G=J.id||$;return`
|
|
8054
8081
|
<div class="stx-keep-alive" data-keep-alive-id="${$}" data-custom-id="${G}">
|
|
8055
8082
|
<div class="stx-keep-alive-content" data-keep-alive-content="${$}">
|
|
8056
8083
|
${Z}
|
|
@@ -8337,7 +8364,7 @@ else {
|
|
|
8337
8364
|
});
|
|
8338
8365
|
})();
|
|
8339
8366
|
</script>
|
|
8340
|
-
`}function
|
|
8367
|
+
`}function vq($={}){return{id:$.id||YZ(),cache:new Map,max:$.max||10,include:$.include?$.include.split(",").map((J)=>J.trim()):null,exclude:$.exclude?$.exclude.split(",").map((J)=>J.trim()):null}}function xq($,Z){if(Z.exclude&&Z.exclude.includes($))return!1;if(Z.include&&!Z.include.includes($))return!1;return!0}function fq(){return`
|
|
8341
8368
|
/* STX Keep-Alive Styles */
|
|
8342
8369
|
.stx-keep-alive {
|
|
8343
8370
|
position: relative;
|
|
@@ -8362,7 +8389,7 @@ else {
|
|
|
8362
8389
|
.stx-keep-alive-content > [data-activated] {
|
|
8363
8390
|
opacity: 1;
|
|
8364
8391
|
}
|
|
8365
|
-
`}function
|
|
8392
|
+
`}function gq(){return`
|
|
8366
8393
|
// STX Keep-Alive Runtime
|
|
8367
8394
|
(function() {
|
|
8368
8395
|
if (typeof window === 'undefined') return;
|
|
@@ -8398,7 +8425,7 @@ else {
|
|
|
8398
8425
|
|
|
8399
8426
|
console.log('[stx] Keep-alive runtime initialized');
|
|
8400
8427
|
})();
|
|
8401
|
-
`}function
|
|
8428
|
+
`}function hq($){if(typeof document<"u")document.addEventListener("stx:activated",(Z)=>{$(Z.detail)})}function dq($){if(typeof document<"u")document.addEventListener("stx:deactivated",(Z)=>{$(Z.detail)})}var Sq=0;var qZ={};r(qZ,{useVirtualList:()=>QZ,processVirtualListDirectives:()=>J7,processVirtualGridDirectives:()=>KZ,processInfiniteListDirectives:()=>GZ,generateVirtualListCSS:()=>XZ,default:()=>mq,createVirtualList:()=>Y7});function Y7($,Z){let{itemHeight:J,containerHeight:Y,overscan:Q=3,keyProperty:X="id",dynamicHeight:G=!1,estimatedItemHeight:K=J,direction:q="vertical"}=Z,z=[...$],W=0,U=new Map;function _(){if(G)return j();let N=Math.max(0,Math.floor(W/J)-Q),R=Math.ceil(Y/J),T=Math.min(z.length-1,N+R+Q*2);return{startIndex:N,endIndex:T}}function j(){let N=0,R=0,T=z.length-1;for(let I=0;I<z.length;I++){let M=U.get(I)||K;if(N+M>W){R=Math.max(0,I-Q);break}N+=M}N=0;for(let I=0;I<z.length;I++){let M=U.get(I)||K;if(N+=M,N>W+Y){T=Math.min(z.length-1,I+Q);break}}return{startIndex:R,endIndex:T}}function B(){if(G){let N=0;for(let R=0;R<z.length;R++)N+=U.get(R)||K;return N}return z.length*J}function O(N){if(G){let R=0;for(let T=0;T<N;T++)R+=U.get(T)||K;return R}return N*J}function F(){let{startIndex:N,endIndex:R}=_();return{startIndex:N,endIndex:R,scrollTop:W,totalHeight:B(),visibleItems:z.slice(N,R+1),itemHeights:new Map(U)}}function L(N,R="auto"){let T=O(N);H(T,R)}function H(N,R="auto"){W=Math.max(0,Math.min(N,B()-Y))}function V(){_()}function A(N){z=[...N],U.clear(),V()}function w(){z=[],U.clear()}return{scrollToIndex:L,scrollToOffset:H,getState:F,refresh:V,setItems:A,destroy:w}}function J7($,Z={},J){let Y=/@virtualList\s*\(\s*([^,]+)\s*(?:,\s*(\{[^}]*\}))?\s*\)\s*([\s\S]*?)@endvirtualList/gi;return $.replace(Y,(Q,X,G,K)=>{let q=X.trim(),z=Z[q];if(!z||!Array.isArray(z))return`<!-- virtualList: items "${q}" not found or not an array -->`;let W={itemHeight:50,containerHeight:400,overscan:3};if(G)try{let H=G.trim(),V=Function(`return ${H}`)();W={...W,...V}}catch{}let U=`vlist-${Math.random().toString(36).substring(2,9)}`,_=Math.ceil(W.containerHeight/W.itemHeight),j=W.overscan||3,B=0,O=Math.min(z.length-1,_+j),F="";for(let H=B;H<=O&&H<z.length;H++){let V=z[H],A=K.replace(/\{\{\s*item\s*\}\}/g,typeof V==="object"?JSON.stringify(V):String(V)).replace(/\{\{\s*item\.(\w+)\s*\}\}/g,(w,N)=>{if(typeof V==="object"&&V!==null)return String(V[N]??"");return""}).replace(/\{\{\s*index\s*\}\}/g,String(H));F+=`
|
|
8402
8429
|
<div class="virtual-item ${W.itemClass||""}"
|
|
8403
8430
|
style="position: absolute; top: ${H*W.itemHeight}px; height: ${W.itemHeight}px; width: 100%;"
|
|
8404
8431
|
data-index="${H}">
|
|
@@ -8475,7 +8502,7 @@ else {
|
|
|
8475
8502
|
};
|
|
8476
8503
|
})();
|
|
8477
8504
|
</script>
|
|
8478
|
-
`})}function
|
|
8505
|
+
`})}function XZ(){return`
|
|
8479
8506
|
.virtual-list-container {
|
|
8480
8507
|
position: relative;
|
|
8481
8508
|
overflow-y: auto;
|
|
@@ -8523,7 +8550,7 @@ else {
|
|
|
8523
8550
|
0% { background-position: 200% 0; }
|
|
8524
8551
|
100% { background-position: -200% 0; }
|
|
8525
8552
|
}
|
|
8526
|
-
`}function
|
|
8553
|
+
`}function QZ($,Z){let J=null,Y=()=>{if(!J)J=Y7($(),Z);return J};return{visibleItems:()=>{return Y().getState().visibleItems},totalHeight:()=>{return Y().getState().totalHeight},containerProps:()=>({style:{height:`${Z.containerHeight}px`,overflow:"auto",position:"relative"},onScroll:(Q)=>{let X=Q.target;if(J)J.scrollToOffset(X.scrollTop)}}),itemProps:(Q)=>({style:{position:"absolute",top:`${Q*Z.itemHeight}px`,height:`${Z.itemHeight}px`,width:"100%"},"data-index":Q}),scrollToIndex:(Q)=>{Y().scrollToIndex(Q)}}}function GZ($,Z={},J){let Y=/@infiniteList\s*\(\s*([^,]+)\s*(?:,\s*(\{[^}]*\}))?\s*\)\s*([\s\S]*?)@loading\s*([\s\S]*?)@endinfiniteList/gi;return $.replace(Y,(Q,X,G,K,q)=>{let z=X.trim(),W=Z[z];if(!W||!Array.isArray(W))return`<!-- infiniteList: items "${z}" not found or not an array -->`;let U={itemHeight:50,containerHeight:400,overscan:3,threshold:100,hasMore:!0};if(G)try{let B=Function(`return ${G.trim()}`)();U={...U,...B}}catch{}let _=`ilist-${Math.random().toString(36).substring(2,9)}`,j=J7(`@virtualList(${z}, ${JSON.stringify({itemHeight:U.itemHeight,containerHeight:U.containerHeight,overscan:U.overscan,containerClass:U.containerClass})})${K}@endvirtualList`,Z);return j=j.replace("</script>",`
|
|
8527
8554
|
// Infinite scroll detection
|
|
8528
8555
|
container.addEventListener('scroll', function() {
|
|
8529
8556
|
const scrollBottom = container.scrollTop + container.clientHeight;
|
|
@@ -8541,7 +8568,7 @@ else {
|
|
|
8541
8568
|
${q}
|
|
8542
8569
|
</div>
|
|
8543
8570
|
</div>
|
|
8544
|
-
`})}function
|
|
8571
|
+
`})}function KZ($,Z={},J){let Y=/@virtualGrid\s*\(\s*([^,]+)\s*(?:,\s*(\{[^}]*\}))?\s*\)\s*([\s\S]*?)@endvirtualGrid/gi;return $.replace(Y,(Q,X,G,K)=>{let q=X.trim(),z=Z[q];if(!z||!Array.isArray(z))return`<!-- virtualGrid: items "${q}" not found or not an array -->`;let W={columns:3,rowHeight:100,containerHeight:400,gap:10,overscan:2};if(G)try{let V=Function(`return ${G.trim()}`)();W={...W,...V}}catch{}let U=`vgrid-${Math.random().toString(36).substring(2,9)}`,_=Math.ceil(z.length/W.columns),j=_*(W.rowHeight+(W.gap||0)),B=Math.ceil(W.containerHeight/(W.rowHeight+(W.gap||0))),O=W.overscan||2,F=0,L=Math.min(_-1,B+O),H="";for(let V=F;V<=L;V++)for(let A=0;A<W.columns;A++){let w=V*W.columns+A;if(w>=z.length)break;let N=z[w],R=A*(100/W.columns),T=V*(W.rowHeight+(W.gap||0)),I=K.replace(/\{\{\s*item\s*\}\}/g,typeof N==="object"?JSON.stringify(N):String(N)).replace(/\{\{\s*item\.(\w+)\s*\}\}/g,(M,E)=>{if(typeof N==="object"&&N!==null)return String(N[E]??"");return""}).replace(/\{\{\s*index\s*\}\}/g,String(w));H+=`
|
|
8545
8572
|
<div class="virtual-grid-item"
|
|
8546
8573
|
style="position: absolute; top: ${T}px; left: ${R}%; width: calc(${100/W.columns}% - ${W.gap||0}px); height: ${W.rowHeight}px;"
|
|
8547
8574
|
data-index="${w}">
|
|
@@ -8611,7 +8638,7 @@ else {
|
|
|
8611
8638
|
});
|
|
8612
8639
|
})();
|
|
8613
8640
|
</script>
|
|
8614
|
-
`})}var
|
|
8641
|
+
`})}var mq;var WZ=C(()=>{mq={createVirtualList:Y7,processVirtualListDirectives:J7,processInfiniteListDirectives:GZ,processVirtualGridDirectives:KZ,generateVirtualListCSS:XZ,useVirtualList:QZ}});function zZ(){return`<script data-stx-hydration-runtime>
|
|
8615
8642
|
(function() {
|
|
8616
8643
|
'use strict';
|
|
8617
8644
|
|
|
@@ -8771,7 +8798,7 @@ else {
|
|
|
8771
8798
|
stxIslands.initIslands();
|
|
8772
8799
|
}
|
|
8773
8800
|
})();
|
|
8774
|
-
</script>`}function
|
|
8801
|
+
</script>`}function UZ($){let Z=$.match(/<([A-Z][a-zA-Z0-9]+)[\s/>]/);if(Z)return Z[1];let J=$.match(/<([a-z][a-z0-9]*-[a-z0-9-]+)[\s/>]/);if(J)return J[1];return null}function _Z($,Z){let J={},Y=/:([a-zA-Z_][\w-]*)\s*=\s*"([^"]+)"/g,Q;while((Q=Y.exec($))!==null){let X=Q[1],G=Q[2];if(G in Z)J[X]=Z[G];else J[X]=G}return J}var RZ={};r(RZ,{processStaticDirectives:()=>AZ,processPartialHydrationDirectives:()=>jZ,onHydrated:()=>wZ,isHydrated:()=>VZ,hydrateIsland:()=>HZ,hydrateByStrategy:()=>LZ,hydrateAll:()=>FZ,generatePartialHydrationCSS:()=>OZ,generateIslandManifest:()=>NZ,default:()=>sq,createIslandRegistry:()=>BZ});function BZ(){let $=new Map;return{islands:$,register(Z){$.set(Z.id,Z)},get(Z){return $.get(Z)},async hydrate(Z){let J=$.get(Z);if(!J||J.hydrated)return;if(J.hydrated=!0,typeof window<"u"&&typeof window.dispatchEvent==="function")window.dispatchEvent(new CustomEvent("stx:hydrate",{detail:{id:Z,component:J.component}}))},async hydrateAll(){let Z=Array.from($.values()).filter((J)=>!J.hydrated).map((J)=>this.hydrate(J.id));await Promise.all(Z)}}}function uq($){return`
|
|
8775
8802
|
<script data-hydrate="${$}">
|
|
8776
8803
|
(function() {
|
|
8777
8804
|
const island = document.querySelector('[data-island="${$}"]');
|
|
@@ -8782,7 +8809,7 @@ else {
|
|
|
8782
8809
|
island.dispatchEvent(new CustomEvent('stx:hydrated', { bubbles: true }));
|
|
8783
8810
|
})();
|
|
8784
8811
|
</script>
|
|
8785
|
-
`}function
|
|
8812
|
+
`}function pq($,Z){let J=Z.timeout||2000,Y=Z.priority||"low";return`
|
|
8786
8813
|
<script data-hydrate="${$}">
|
|
8787
8814
|
(function() {
|
|
8788
8815
|
const island = document.querySelector('[data-island="${$}"]');
|
|
@@ -8818,7 +8845,7 @@ else {
|
|
|
8818
8845
|
}
|
|
8819
8846
|
})();
|
|
8820
8847
|
</script>
|
|
8821
|
-
`}function
|
|
8848
|
+
`}function lq($,Z){let J=Z.rootMargin||"0px",Y=Z.threshold||0;return`
|
|
8822
8849
|
<script data-hydrate="${$}">
|
|
8823
8850
|
(function() {
|
|
8824
8851
|
const island = document.querySelector('[data-island="${$}"]');
|
|
@@ -8851,7 +8878,7 @@ else {
|
|
|
8851
8878
|
}
|
|
8852
8879
|
})();
|
|
8853
8880
|
</script>
|
|
8854
|
-
`}function
|
|
8881
|
+
`}function cq($,Z){let J=Z.media||"(min-width: 768px)";return`
|
|
8855
8882
|
<script data-hydrate="${$}">
|
|
8856
8883
|
(function() {
|
|
8857
8884
|
const island = document.querySelector('[data-island="${$}"]');
|
|
@@ -8880,7 +8907,7 @@ else {
|
|
|
8880
8907
|
}
|
|
8881
8908
|
})();
|
|
8882
8909
|
</script>
|
|
8883
|
-
`}function
|
|
8910
|
+
`}function iq($){return`
|
|
8884
8911
|
<script data-hydrate="${$}">
|
|
8885
8912
|
(function() {
|
|
8886
8913
|
const island = document.querySelector('[data-island="${$}"]');
|
|
@@ -8902,7 +8929,7 @@ else {
|
|
|
8902
8929
|
events.forEach(e => island.addEventListener(e, handler, { once: true, passive: true }));
|
|
8903
8930
|
})();
|
|
8904
8931
|
</script>
|
|
8905
|
-
`}function
|
|
8932
|
+
`}function nq($,Z){let J=Z.event||"stx:activate";return`
|
|
8906
8933
|
<script data-hydrate="${$}">
|
|
8907
8934
|
(function() {
|
|
8908
8935
|
const island = document.querySelector('[data-island="${$}"]');
|
|
@@ -8923,9 +8950,9 @@ else {
|
|
|
8923
8950
|
});
|
|
8924
8951
|
})();
|
|
8925
8952
|
</script>
|
|
8926
|
-
`}function
|
|
8927
|
-
`+
|
|
8928
|
-
<script type="application/json" data-island-props="${q}">${JSON.stringify(W)}</script>`:"",B="";switch(Z){case"load":B=
|
|
8953
|
+
`}function jZ($,Z={},J){let Y=$,Q=!1,X=/@client:(load|idle|visible|media|only|hover|event)/i.test($);if(Y=p1(Y,"load",Z),Y=p1(Y,"idle",Z),Y=p1(Y,"visible",Z),Y=p1(Y,"media",Z),Y=oq(Y),Y=p1(Y,"hover",Z),Y=p1(Y,"event",Z),Q=X&&Y!==$,Q)Y+=`
|
|
8954
|
+
`+zZ();return Y}function p1($,Z,J){let Y=new RegExp(`@client:${Z}(?:\\s*\\(([^)]*)\\))?\\s*([\\s\\S]*?)@endclient`,"gi");return $.replace(Y,(Q,X,G)=>{let K={strategy:Z};if(X)try{let O=X.split(",").map((F)=>F.trim());for(let F of O){let[L,H]=F.split(":").map((V)=>V.trim());if(L&&H){let V=H.replace(/^['"]|['"]$/g,"");K[L]=V}}}catch{}let q=`island-${Math.random().toString(36).substring(2,9)}`,z=UZ(G.trim()),W=_Z(G.trim(),J),U=[];if(K.rootMargin)U.push(`data-root-margin="${K.rootMargin}"`);if(K.threshold!==void 0)U.push(`data-threshold="${K.threshold}"`);if(K.media)U.push(`data-media="${K.media}"`);if(K.event)U.push(`data-event="${K.event}"`);if(z)U.push(`data-component="${z}"`);let j=Object.keys(W).length>0?`
|
|
8955
|
+
<script type="application/json" data-island-props="${q}">${JSON.stringify(W)}</script>`:"",B="";switch(Z){case"load":B=uq(q);break;case"idle":B=pq(q,K);break;case"visible":B=lq(q,K);break;case"media":B=cq(q,K);break;case"hover":B=iq(q);break;case"event":B=nq(q,K);break}return`
|
|
8929
8956
|
<div data-island="${q}"
|
|
8930
8957
|
data-strategy="${Z}"
|
|
8931
8958
|
${U.join(`
|
|
@@ -8935,7 +8962,7 @@ else {
|
|
|
8935
8962
|
${G.trim()}${j}
|
|
8936
8963
|
</div>
|
|
8937
8964
|
${B}
|
|
8938
|
-
`})}function
|
|
8965
|
+
`})}function oq($){let Z=/@client:only\s*([\s\S]*?)@endclient/gi;return $.replace(Z,(J,Y)=>{let Q=`island-only-${Math.random().toString(36).substring(2,9)}`;return`
|
|
8939
8966
|
<div data-island="${Q}"
|
|
8940
8967
|
data-strategy="only"
|
|
8941
8968
|
class="stx-island stx-client-only">
|
|
@@ -8954,7 +8981,7 @@ else {
|
|
|
8954
8981
|
}
|
|
8955
8982
|
})();
|
|
8956
8983
|
</script>
|
|
8957
|
-
`})}function
|
|
8984
|
+
`})}function OZ(){return`
|
|
8958
8985
|
/* Island base styles */
|
|
8959
8986
|
.stx-island {
|
|
8960
8987
|
display: contents;
|
|
@@ -8995,11 +9022,11 @@ else {
|
|
|
8995
9022
|
.stx-island.hydrated {
|
|
8996
9023
|
opacity: 1;
|
|
8997
9024
|
}
|
|
8998
|
-
`}function
|
|
9025
|
+
`}function HZ($){if(typeof window>"u")return;let Z=document.querySelector(`[data-island="${$}"]`);if(!Z||Z.classList.contains("hydrated"))return;Z.classList.add("hydrated"),Z.dispatchEvent(new CustomEvent("stx:hydrated",{bubbles:!0}))}function LZ($){if(typeof window>"u")return;document.querySelectorAll(`[data-strategy="${$}"]:not(.hydrated)`).forEach((J)=>{J.classList.add("hydrated"),J.dispatchEvent(new CustomEvent("stx:hydrated",{bubbles:!0}))})}function FZ(){if(typeof window>"u")return;document.querySelectorAll(".stx-island:not(.hydrated)").forEach((Z)=>{Z.classList.add("hydrated"),Z.dispatchEvent(new CustomEvent("stx:hydrated",{bubbles:!0}))})}function VZ($){if(typeof window>"u")return!1;return document.querySelector(`[data-island="${$}"]`)?.classList.contains("hydrated")??!1}function wZ($){return new Promise((Z)=>{if(typeof window>"u"){Z();return}let J=document.querySelector(`[data-island="${$}"]`);if(!J){Z();return}if(J.classList.contains("hydrated")){Z();return}J.addEventListener("stx:hydrated",()=>Z(),{once:!0})})}function AZ($){return $.replace(/@static\s*([\s\S]*?)@endstatic/gi,(Z,J)=>{return`<div class="stx-static">${J.trim()}</div>`})}function NZ($){let Z=$.map((J)=>({id:J.id,component:J.component,strategy:J.options.strategy,props:J.props}));return`
|
|
8999
9026
|
<script type="application/json" id="stx-island-manifest">
|
|
9000
9027
|
${JSON.stringify(Z)}
|
|
9001
9028
|
</script>
|
|
9002
|
-
`}var
|
|
9029
|
+
`}var sq;var TZ=C(()=>{sq={processPartialHydrationDirectives:jZ,processStaticDirectives:AZ,generatePartialHydrationCSS:OZ,generateIslandManifest:NZ,createIslandRegistry:BZ,hydrateIsland:HZ,hydrateByStrategy:LZ,hydrateAll:FZ,isHydrated:VZ,onHydrated:wZ}});var vZ={};r(vZ,{watchMultiple:()=>kZ,watchEffect:()=>bZ,watch:()=>EZ,unref:()=>MZ,toRefs:()=>IZ,throttledComputed:()=>PZ,stxWatchMultiple:()=>kZ,stxWatchEffect:()=>bZ,stxWatch:()=>EZ,stxUnref:()=>MZ,stxToRefs:()=>IZ,stxThrottledComputed:()=>PZ,stxShallowRef:()=>DZ,stxRef:()=>l1,stxIsRef:()=>K1,stxDebouncedComputed:()=>CZ,stxComputed:()=>F5,shallowRef:()=>DZ,ref:()=>l1,processWatchDirectives:()=>yZ,processComputedDirectives:()=>SZ,isRef:()=>K1,default:()=>rq,debouncedComputed:()=>CZ,computed:()=>F5});function l1($){let Z=$,J=new Set,Y={get value(){if(u0){let Q=L5.get(Y);if(!Q)Q=new Set,L5.set(Y,Q);Q.add(u0)}return Z},set value(Q){if(!Object.is(Z,Q)){Z=Q,J.forEach((G)=>G(Q));let X=L5.get(Y);if(X)X.forEach((G)=>G())}},subscribe(Q){return J.add(Q),()=>J.delete(Q)},peek(){return Z}};return Y}function K1($){return $!==null&&typeof $==="object"&&"value"in $&&"subscribe"in $&&"peek"in $}function MZ($){return K1($)?$.value:$}function IZ($){let Z={};for(let J in $)if(Object.prototype.hasOwnProperty.call($,J))Z[J]=l1($[J]);return Z}function DZ($){return l1($)}function F5($){let Z=typeof $==="function",J=Z?$:$.get,Y=Z?void 0:$.set,Q=Z?Object.is:$.equals||Object.is,X,G=!0,K=new Set,q=new Set,z=()=>{if(G=!0,q.size>0){let _=U.value;q.forEach((j)=>j(_))}};function W(){K.clear();let _=u0;u0=z,S9.push(z);try{return J()}finally{S9.pop(),u0=_}}let U={get value(){if(u0){let _=L5.get(U);if(!_)_=new Set,L5.set(U,_);_.add(u0)}if(G){let _=W();if(!Q(X,_))X=_;G=!1}return X},set value(_){if(Y)Y(_);else console.warn("Computed property is readonly")},subscribe(_){return q.add(_),()=>q.delete(_)},peek(){if(G)X=J(),G=!1;return X},invalidate(){G=!0},get dirty(){return G},get deps(){return K}};return U}function EZ($,Z,J={}){let{immediate:Y=!1,deep:Q=!1,flush:X="pre",once:G=!1}=J,K,q=!0,z=!1,W=()=>{if(K1($))return Q?N1($.value):$.value;return $()},U=()=>{if(!q||z)return;let B=W();if(K!==void 0&&Object.is(K,B)&&!Q)return;let O=()=>{if(Z(B,K),K=Q?N1(B):B,G)j()};if(X==="sync")O();else if(X==="post")queueMicrotask(O);else Promise.resolve().then(O)},_=null;if(K1($))_=$.subscribe(()=>U());else _=F5($).subscribe(()=>U());if(Y)K=void 0,U();else K=W();let j=()=>{if(q=!1,_)_(),_=null};return j.pause=()=>{z=!0},j.resume=()=>{z=!1},j}function kZ($,Z,J={}){let{immediate:Y=!1,once:Q=!1}=J,X=$.map((U)=>K1(U)?U.value:void 0),G=!0,K=!1,q=()=>{if(!G||K)return;let U=$.map((_)=>K1(_)?_.value:void 0);if(Z(U,X),X=[...U],Q)W()},z=$.map((U)=>{if(K1(U))return U.subscribe(()=>q());return()=>{}});if(Y)q();let W=()=>{G=!1,z.forEach((U)=>U())};return W.pause=()=>{K=!0},W.resume=()=>{K=!1},W}function bZ($,Z={}){let{flush:J="pre"}=Z,Y,Q=!0,X=!1,G=()=>{if(!Q||X)return;if(Y)Y();let q=u0;u0=G,S9.push(G);try{Y=$()}finally{S9.pop(),u0=q}};if(J==="sync")G();else if(J==="post")queueMicrotask(G);else Promise.resolve().then(G);let K=()=>{if(Q=!1,Y)Y()};return K.pause=()=>{X=!0},K.resume=()=>{X=!1},K}function SZ($,Z={},J){let Y=/@computed\s*\(\s*(\w+)\s*,\s*(.+?)\s*\)/gi;return $.replace(Y,(Q,X,G)=>{try{let q=Function(...Object.keys(Z),`return ${G}`)(...Object.values(Z));return Z[X]=q,`<!-- computed: ${X} = ${q} -->`}catch(K){return`<!-- computed error: ${X} - ${K} -->`}})}function yZ($,Z={},J){let Y=/@watch\s*\(\s*(\w+)\s*\)\s*([\s\S]*?)@endwatch/gi;return $.replace(Y,(Q,X,G)=>{return`
|
|
9003
9030
|
<script data-watch="${`watch-${Math.random().toString(36).substring(2,9)}`}">
|
|
9004
9031
|
(function() {
|
|
9005
9032
|
// Watch implementation for ${X}
|
|
@@ -9011,9 +9038,9 @@ else {
|
|
|
9011
9038
|
}
|
|
9012
9039
|
})();
|
|
9013
9040
|
</script>
|
|
9014
|
-
`})}function
|
|
9015
|
-
`)}catch{return""}})}function
|
|
9016
|
-
`)}catch{return""}})}function
|
|
9041
|
+
`})}function N1($){if($===null||typeof $!=="object")return $;if(Array.isArray($))return $.map((J)=>N1(J));if($ instanceof Date)return new Date($.getTime());if($ instanceof Map){let J=new Map;return $.forEach((Y,Q)=>J.set(N1(Q),N1(Y))),J}if($ instanceof Set){let J=new Set;return $.forEach((Y)=>J.add(N1(Y))),J}let Z={};for(let J in $)if(Object.prototype.hasOwnProperty.call($,J))Z[J]=N1($[J]);return Z}function CZ($,Z=100){let J=l1($()),Y=null,Q=()=>{if(Y)clearTimeout(Y);Y=setTimeout(()=>{J.value=$()},Z)};return F5($).subscribe(()=>Q()),{get value(){return J.value},set value(G){console.warn("Debounced computed is readonly")},subscribe:J.subscribe,peek:J.peek,invalidate(){Q()},get dirty(){return!1},get deps(){return new Set}}}function PZ($,Z=100){let J=l1($()),Y=0,Q=()=>{let G=Date.now();if(G-Y>=Z)Y=G,J.value=$()};return F5($).subscribe(()=>Q()),{get value(){return J.value},set value(G){console.warn("Throttled computed is readonly")},subscribe:J.subscribe,peek:J.peek,invalidate(){Q()},get dirty(){return!1},get deps(){return new Set}}}var u0=null,S9,L5,rq;var xZ=C(()=>{S9=[],L5=new WeakMap;rq={ref:l1,computed:F5,watch:EZ,watchMultiple:kZ,watchEffect:bZ,isRef:K1,unref:MZ,toRefs:IZ,shallowRef:DZ,debouncedComputed:CZ,throttledComputed:PZ,processComputedDirectives:SZ,processWatchDirectives:yZ}});var dZ={};r(dZ,{v:()=>aq,processHasErrorsDirective:()=>hZ,processFormValidationDirectives:()=>eq,processErrorsDirective:()=>gZ,processErrorDirective:()=>fZ,defineForm:()=>tq,Validator:()=>c1});class c1{rules=[];defaultValue="";addRule($){let Z=new c1;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 J=Z||`Must be at least ${$} characters`;return this.addRule({name:"min",message:J,validate:(Y)=>{if(!Y)return!0;return String(Y).length>=$||J}})}max($,Z){let J=Z||`Must be no more than ${$} characters`;return this.addRule({name:"max",message:J,validate:(Y)=>{if(!Y)return!0;return String(Y).length<=$||J}})}length($,Z,J){let Y=J||`Must be between ${$} and ${Z} characters`;return this.addRule({name:"length",message:Y,validate:(Q)=>{if(!Q)return!0;let X=String(Q).length;return X>=$&&X<=Z||Y}})}pattern($,Z="Invalid format"){return this.addRule({name:"pattern",message:Z,validate:(J)=>{if(!J)return!0;return $.test(String(J))||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:(J)=>{if(!J&&J!==0)return!0;return!Number.isNaN(Number(J))||$}});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 J=Z||`Must be at least ${$}`;return this.addRule({name:"minValue",message:J,validate:(Y)=>{if(!Y&&Y!==0)return!0;return Number(Y)>=$||J}})}maxValue($,Z){let J=Z||`Must be no more than ${$}`;return this.addRule({name:"maxValue",message:J,validate:(Y)=>{if(!Y&&Y!==0)return!0;return Number(Y)<=$||J}})}between($,Z,J){let Y=J||`Must be between ${$} and ${Z}`;return this.addRule({name:"between",message:Y,validate:(Q)=>{if(!Q&&Q!==0)return!0;let X=Number(Q);return X>=$&&X<=Z||Y}})}matches($,Z){let J=Z||`Must match ${$}`;return this.addRule({name:"matches",message:J,validate:(Y,Q)=>{if(!Q)return!0;return Y===Q[$]||J}})}oneOf($,Z){let J=Z||`Must be one of: ${$.join(", ")}`;return this.addRule({name:"oneOf",message:J,validate:(Y)=>{if(!Y)return!0;return $.includes(Y)||J}})}notOneOf($,Z){let J=Z||`Cannot be one of: ${$.join(", ")}`;return this.addRule({name:"notOneOf",message:J,validate:(Y)=>{if(!Y)return!0;return!$.includes(Y)||J}})}date($="Must be a valid date"){return this.addRule({name:"date",message:$,validate:(Z)=>{if(!Z)return!0;let J=new Date(String(Z));return!Number.isNaN(J.getTime())||$}})}before($,Z){let J=new Date($),Y=Z||`Must be before ${J.toLocaleDateString()}`;return this.addRule({name:"before",message:Y,validate:(Q)=>{if(!Q)return!0;return new Date(String(Q))<J||Y}})}after($,Z){let J=new Date($),Y=Z||`Must be after ${J.toLocaleDateString()}`;return this.addRule({name:"after",message:Y,validate:(Q)=>{if(!Q)return!0;return new Date(String(Q))>J||Y}})}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 J=new c1;J.rules=[...this.rules],J.defaultValue=this.defaultValue;for(let Y of Z.getRules())J.rules.push({...Y,validate:(Q,X)=>{if(!$(Q,X||{}))return!0;return Y.validate(Q,X)}});return J}getRules(){return this.rules}getDefaultValue(){return this.defaultValue}default($){let Z=new c1;return Z.rules=[...this.rules],Z.defaultValue=$,Z}async validate($,Z){let J=[];for(let Y of this.rules){let Q=await Y.validate($,Z);if(Q!==!0)J.push(Q)}return J}validateSync($,Z){let J=[];for(let Y of this.rules){if(Y.async)continue;let Q=Y.validate($,Z);if(Q!==!0)J.push(Q)}return J}}function tq($,Z){let J=Object.keys($),Y={},Q={},X={},G={},K={};for(let H of J)Y[H]=Z?.[H]??$[H].getDefaultValue(),Q[H]=[],X[H]=!1,G[H]=!1,K[H]=!1;let q=!1;async function z(H){K[H]=!0;let V=await $[H].validate(Y[H],Y);return Q[H]=V,K[H]=!1,V.length===0}async function W(){q=!0;let H=await Promise.all(J.map(z));return q=!1,H.every(Boolean)}function U(){for(let H of J)Y[H]=Z?.[H]??$[H].getDefaultValue(),Q[H]=[],X[H]=!1,G[H]=!1}function _(H){for(let V of J)if(V in H)Y[V]=H[V],G[V]=!0}function j(H,V){Y[H]=V,G[H]=!0}function B(H,V=!0){if(X[H]=V,V)z(H)}function O(H){return{value:Y[H],errors:Q[H],touched:X[H],dirty:G[H],valid:Q[H].length===0,validating:K[H]}}function F(H){return async(V)=>{V?.preventDefault?.();for(let w of J)X[w]=!0;if(await W())await H(Y)}}return{values:Y,errors:Q,touched:X,dirty:G,get isValid(){return J.every((H)=>Q[H].length===0)},get isValidating(){return q||J.some((H)=>K[H])},get isDirty(){return J.some((H)=>G[H])},validate:W,validateField:z,reset:U,setValues:_,setFieldValue:j,setFieldTouched:B,getFieldState:O,handleSubmit:F}}function fZ($,Z,J){let Y=/@error\s*\(\s*([^)]+)\s*\)([\s\S]*?)@enderror/g;return $.replace(Y,(Q,X,G)=>{try{let K=X.trim().split("."),q=Z;for(let W of K)if(q&&typeof q==="object"&&W in q)q=q[W];else return"";let z=q;if(!z||!Array.isArray(z)||z.length===0)return"";return z.map((W)=>{return G.replace(/\{\{\s*message\s*\}\}/g,W)}).join(`
|
|
9042
|
+
`)}catch{return""}})}function gZ($,Z,J){let Y=/@errors\s*\(\s*([^)]+)\s*\)([\s\S]*?)@enderrors/g;return $.replace(Y,(Q,X,G)=>{try{let K=X.trim().split("."),q=Z;for(let W of K)if(q&&typeof q==="object"&&W in q)q=q[W];else return"";let z=q;if(!z||!Array.isArray(z)||z.length===0)return"";return z.map((W)=>G.replace(/\{\{\s*message\s*\}\}/g,W)).join(`
|
|
9043
|
+
`)}catch{return""}})}function hZ($,Z,J){let Y=/@hasErrors\s*\(\s*([^)]+)\s*\)([\s\S]*?)@endhasErrors/g;return $.replace(Y,(Q,X,G)=>{try{let K=X.trim().split("."),q=Z;for(let W of K)if(q&&typeof q==="object"&&W in q)q=q[W];else return"";let z=q;if(!z||!Array.isArray(z)||z.length===0)return"";return G}catch{return""}})}function eq($,Z,J){let Y=$;return Y=fZ(Y,Z,J),Y=gZ(Y,Z,J),Y=hZ(Y,Z,J),Y}var aq;var mZ=C(()=>{aq=new c1});var lZ={};r(lZ,{processXElementDirectives:()=>$W,hasXElementDirectives:()=>pZ,generateXElementRuntime:()=>uZ});function uZ(){return`<script data-stx-scoped>
|
|
9017
9044
|
(function() {
|
|
9018
9045
|
'use strict';
|
|
9019
9046
|
|
|
@@ -9297,16 +9324,16 @@ else {
|
|
|
9297
9324
|
// Expose for manual initialization
|
|
9298
9325
|
window.XElement = XElement;
|
|
9299
9326
|
})();
|
|
9300
|
-
</script>`}function
|
|
9327
|
+
</script>`}function pZ($){return/\bx-(data|model|text|show|init|html)\b/.test($)||/\s:[a-z]/.test($)}function $W($){if(!pZ($))return $;let Z=uZ(),J=$.lastIndexOf("</body>");if(J!==-1)return $.slice(0,J)+Z+`
|
|
9301
9328
|
`+$.slice(J);return $+`
|
|
9302
|
-
`+Z}var
|
|
9329
|
+
`+Z}var cZ=()=>{};function X7($){return $.pwa?.serviceWorker?.fileName||"sw.js"}var iZ=C(()=>{cZ()});var nZ={};r(nZ,{injectPwaTags:()=>ZW,generateThemeColorMeta:()=>XW,generateSwRegistrationScript:()=>YW,generatePwaTags:()=>y9,generateManifestLink:()=>JW});function y9($){let Z=$.pwa;if(!Z?.enabled)return"";let J=Z.manifest,Y=Z.icons?.outputDir?`/${Z.icons.outputDir}`:"/pwa-icons",Q=X7($),X=`
|
|
9303
9330
|
<!-- stx PWA Meta Tags -->
|
|
9304
9331
|
<link rel="manifest" href="/manifest.json">
|
|
9305
|
-
<meta name="theme-color" content="${
|
|
9332
|
+
<meta name="theme-color" content="${Q7(J?.themeColor||"#000000")}">
|
|
9306
9333
|
<meta name="mobile-web-app-capable" content="yes">
|
|
9307
9334
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
9308
9335
|
<meta name="apple-mobile-web-app-status-bar-style" content="default">
|
|
9309
|
-
<meta name="apple-mobile-web-app-title" content="${
|
|
9336
|
+
<meta name="apple-mobile-web-app-title" content="${Q7(J?.shortName||J?.name||"App")}">`;if(Z.icons?.generateAppleIcons!==!1)X+=`
|
|
9310
9337
|
<link rel="apple-touch-icon" href="${Y}/apple-touch-icon.png">
|
|
9311
9338
|
<link rel="apple-touch-icon" sizes="120x120" href="${Y}/apple-touch-icon-120x120.png">
|
|
9312
9339
|
<link rel="apple-touch-icon" sizes="152x152" href="${Y}/apple-touch-icon-152x152.png">
|
|
@@ -9343,12 +9370,12 @@ if ('serviceWorker' in navigator) {
|
|
|
9343
9370
|
});
|
|
9344
9371
|
}
|
|
9345
9372
|
</script>
|
|
9346
|
-
<!-- End stx PWA -->`,X}function
|
|
9347
|
-
`+$.slice(Q)}return $+
|
|
9348
|
-
</head>`)}function
|
|
9373
|
+
<!-- End stx PWA -->`,X}function ZW($,Z){let J=Z.pwa;if(!J?.enabled||J.autoInject===!1)return $;if($.includes("<!-- stx PWA Meta Tags -->"))return $;if(!$.includes("</head>")){let Q=$.lastIndexOf("</body>");if(Q!==-1){let X=y9(Z);return $.slice(0,Q)+X+`
|
|
9374
|
+
`+$.slice(Q)}return $+y9(Z)}let Y=y9(Z);return $.replace("</head>",`${Y}
|
|
9375
|
+
</head>`)}function YW($){if(!$.pwa?.enabled)return"";return`<script>
|
|
9349
9376
|
if ('serviceWorker' in navigator) {
|
|
9350
9377
|
window.addEventListener('load', function() {
|
|
9351
|
-
navigator.serviceWorker.register('/${
|
|
9378
|
+
navigator.serviceWorker.register('/${X7($)}')
|
|
9352
9379
|
.then(function(registration) {
|
|
9353
9380
|
console.log('[PWA] Service Worker registered:', registration.scope);
|
|
9354
9381
|
})
|
|
@@ -9357,70 +9384,70 @@ if ('serviceWorker' in navigator) {
|
|
|
9357
9384
|
});
|
|
9358
9385
|
});
|
|
9359
9386
|
}
|
|
9360
|
-
</script>`}function
|
|
9387
|
+
</script>`}function JW(){return'<link rel="manifest" href="/manifest.json">'}function XW($){return`<meta name="theme-color" content="${Q7($)}">`}function Q7($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}var oZ=C(()=>{iZ()});import E0 from"path";function QW($,Z){let J=$.length,Y=Z,Q=!0,X=[],G=(K)=>K+9<=J&&$[K]==="<"&&$[K+1]==="/"&&($[K+2]==="s"||$[K+2]==="S")&&($[K+3]==="c"||$[K+3]==="C")&&($[K+4]==="r"||$[K+4]==="R")&&($[K+5]==="i"||$[K+5]==="I")&&($[K+6]==="p"||$[K+6]==="P")&&($[K+7]==="t"||$[K+7]==="T")&&($[K+8]===">"||/\s/.test($[K+8]));while(Y<J){let K=$[Y];if(G(Y))return Y;if(K==="/"&&$[Y+1]==="/"){if(Y=$.indexOf(`
|
|
9361
9388
|
`,Y+2),Y===-1)return-1;Y+=1,Q=!0;continue}if(K==="/"&&$[Y+1]==="*"){let q=$.indexOf("*/",Y+2);if(q===-1)return-1;Y=q+2,Q=!0;continue}if(K==="/"&&Q){let q=Y+1,z=!1;while(q<J){let W=$[q];if(W==="\\"){q+=2;continue}if(W==="[")z=!0;else if(W==="]")z=!1;else if(W==="/"&&!z){q++;break}else if(W===`
|
|
9362
9389
|
`){q=-1;break}q++}if(q===-1){Y++,Q=!1;continue}while(q<J&&/[a-z]/.test($[q]))q++;Y=q,Q=!1;continue}if(K==="'"||K==='"'){let q=K;Y++;while(Y<J){if($[Y]==="\\"){Y+=2;continue}if($[Y]===q){Y++;break}if($[Y]===`
|
|
9363
|
-
`)break;Y++}Q=!1;continue}if(K==="`"){Y++;while(Y<J){if($[Y]==="\\"){Y+=2;continue}if($[Y]==="`"){Y++;break}if($[Y]==="$"&&$[Y+1]==="{"){X.push(!0),Y+=2,Q=!0;break}Y++}if(X.length===0)Q=!1;continue}if(K==="}"&&X.length>0){X.pop(),Y++;while(Y<J){if($[Y]==="\\"){Y+=2;continue}if($[Y]==="`"){Y++,Q=!1;break}if($[Y]==="$"&&$[Y+1]==="{"){X.push(!0),Y+=2,Q=!0;break}Y++}continue}if(/\s/.test(K));else if(/[)\].\w$]/.test(K))Q=!1;else Q=!0;Y++}return-1}async function
|
|
9364
|
-
<meta name="stx-layout" content="${j}">`)}let _=G.match(/function (__stx_setup_\d+_\d+)\(/);if(_&&G.includes("<body")&&!G.match(/<body[^>]*data-stx=/)){G=G.replace(/<body([^>]*)>/,`<body$1 data-stx="${_[1]}">`);let j=new RegExp(`(<(?!body)[a-zA-Z][^>]*) data-stx="${_[1]}"`,"i");G=G.replace(j,"$1")}}if(X)try{let{getStoreScript:K}=await Promise.resolve().then(() => (
|
|
9365
|
-
`+W+G.slice(j)}}}}catch{}if(X&&Z.__stx_inject_css!==!1)G=await
|
|
9390
|
+
`)break;Y++}Q=!1;continue}if(K==="`"){Y++;while(Y<J){if($[Y]==="\\"){Y+=2;continue}if($[Y]==="`"){Y++;break}if($[Y]==="$"&&$[Y+1]==="{"){X.push(!0),Y+=2,Q=!0;break}Y++}if(X.length===0)Q=!1;continue}if(K==="}"&&X.length>0){X.pop(),Y++;while(Y<J){if($[Y]==="\\"){Y+=2;continue}if($[Y]==="`"){Y++,Q=!1;break}if($[Y]==="$"&&$[Y+1]==="{"){X.push(!0),Y+=2,Q=!0;break}Y++}continue}if(/\s/.test(K));else if(/[)\].\w$]/.test(K))Q=!1;else Q=!0;Y++}return-1}async function $1($,Z,J,Y,Q){if(Y.ssr===!1&&!Y.autoShell&&Y.buildMode==="spa")return $;let X=!Z.__stxProcessingDepth;if(!Z.__stxProcessingDepth)Z.__stxProcessingDepth=0;if(Z.__stxProcessingDepth++,!Z.__onceStore)Z.__onceStore=new Set;try{return await g7.timeAsync("template-processing",async()=>{let G=await GW($,Z,J,Y,Q);if(X)G=t4(G);if(X&&Y.autoShell&&Y.buildMode!=="compile"){let K=Y.app?.head||{},z=(Z.__stx_runtime_head||null)??t1(),W={...K,...z.title&&{title:z.title},meta:[...K.meta||[],...z.meta||[]],link:[...K.link||[],...z.link||[]],script:[...K.script||[],...z.script||[]],...z.htmlAttrs&&{htmlAttrs:{...K.htmlAttrs||{},...z.htmlAttrs}},...z.bodyAttrs&&{bodyAttrs:{...K.bodyAttrs||{},...z.bodyAttrs}}};G=Y8(G,W);let U=G.match(/<!-- stx-layout: ([^ ]+) -->/);if(U&&G.includes("<head")){let j=U[1];G=G.replace("<head>",`<head>
|
|
9391
|
+
<meta name="stx-layout" content="${j}">`)}let _=G.match(/function (__stx_setup_\d+_\d+)\(/);if(_&&G.includes("<body")&&!G.match(/<body[^>]*data-stx=/)){G=G.replace(/<body([^>]*)>/,`<body$1 data-stx="${_[1]}">`);let j=new RegExp(`(<(?!body)[a-zA-Z][^>]*) data-stx="${_[1]}"`,"i");G=G.replace(j,"$1")}}if(X)try{let{getStoreScript:K}=await Promise.resolve().then(() => (d8(),h8)),q=Y.storesDir,z=await K(q);if(z){let W=`<script data-stx-stores>${z}</script>`,U=G.indexOf("<script data-stx-scoped>");if(U!==-1){let _=G.indexOf("</script>",U+24);if(_!==-1){let j=_+9;G=G.slice(0,j)+`
|
|
9392
|
+
`+W+G.slice(j)}}}}catch{}if(X&&Z.__stx_inject_css!==!1)G=await K5(G);return G=G.replace(/\x00STX_ESCAPED_AT\x00/g,"@"),G})}catch(G){if(G instanceof Z9)throw G;let K=G instanceof Error?G.message:String(G),q=new H1(`Template processing failed: ${K}`,J,void 0,void 0,$.substring(0,200)+($.length>200?"...":""));if(v0.log(q,{filePath:J,context:Z}),x$.logDetailedError(q,{filePath:J,template:$.substring(0,500)}),Y.debug)throw q;return P$.createFallbackContent("Template Processing",q)}}async function GW($,Z,J,Y,Q){let X=process.cwd(),G={...Y,partialsDir:Y.partialsDir&&!E0.isAbsolute(Y.partialsDir)?E0.resolve(X,Y.partialsDir):Y.partialsDir,componentsDir:Y.componentsDir&&!E0.isAbsolute(Y.componentsDir)?E0.resolve(X,Y.componentsDir):Y.componentsDir,layoutsDir:Y.layoutsDir&&!E0.isAbsolute(Y.layoutsDir)?E0.resolve(X,Y.layoutsDir):Y.layoutsDir},K=G,q=$;q=q.replace(/\{\{--[\s\S]*?--\}\}/g,"");let z="\x00STX_ESCAPED_AT\x00";q=q.replace(/@@/g,z),q=q.replace(/@\{\{([\s\S]*?)\}\}/g,(O,F)=>{return`{{ ${F} }}`}),q=t2(q),q=await v8(q,J,Q);let W={};q=z4(q,W);let U={...Z.__sections||{}},_="",j=/@nolayout\b/.test(q);if(j)q=q.replace(/@nolayout\b\s*/g,"");let B=q.match(/@(?:layout|extends)\(\s*['"]([^'"]+)['"]\s*\)/);if(B)_=B[1],q=q.replace(/@(?:layout|extends)\(\s*['"]([^'"]+)['"]\s*\)/g,"");if(!_&&!j&&K.defaultLayout){let O=/<!DOCTYPE\s/i.test(q),F=/@section\s*\(/.test(q);if(!O||F){let L="",H=E0.dirname(J),V=K.layoutsDir?E0.dirname(K.layoutsDir):process.cwd();for(let A=0;A<20;A++){let w=E0.join(H,"_layout.stx");if(await c(w)){L=w;break}let N=E0.dirname(H);if(N===H||N.length<V.length)break;H=N}if(L)_=L;else if(K.layoutsDir){let A=E0.isAbsolute(K.layoutsDir)?K.layoutsDir:E0.resolve(process.cwd(),K.layoutsDir),w=E0.join(A,`${K.defaultLayout}.stx`);if(await c(w))_=w}if(_&&!F)q=`@section('content')
|
|
9366
9393
|
${q.trim()}
|
|
9367
|
-
@endsection`}}if(q=q.replace(/@section\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*\)/g,(O,F,L)=>{return U[F]=L,""}),q=q.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@endsection|@show)/g,(O,F,L)=>{if(L.includes("@parent"))U[F]=L.replace("@parent",
|
|
9368
|
-
${q}`,q}catch(O){return
|
|
9394
|
+
@endsection`}}if(q=q.replace(/@section\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*\)/g,(O,F,L)=>{return U[F]=L,""}),q=q.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@endsection|@show)/g,(O,F,L)=>{if(L.includes("@parent"))U[F]=L.replace("@parent",R1);else U[F]=L.trim();return""}),Z.__sections=U,q=q.replace(/@(?:yield|slot)\(\s*['"]([^'"]+)['"](?:,\s*['"]([^'"]+)['"])?\)/g,(O,F,L)=>{return U[F]||L||""}),!("slot"in Z)||Z.slot===void 0)q=q.replace(/\{\{\s*slot\s*\}\}/g,()=>{return U.content||""});if(q=U4(q,W),_)try{let O=E0.isAbsolute(_)?_:await y1(()=>t9(_,J,G,Q),null,()=>{throw new H1(`Failed to resolve layout path: ${_}`,J,void 0,void 0,`Layout referenced from ${J}`)});if(!O){let w=`Layout not found: ${_} (referenced from ${J})`;if(v0.log(Error(w),{layoutPath:_,filePath:J},"warning"),G.debug)throw new H1(w,J);return q}let F=await y1(()=>Bun.file(O).text(),"",()=>{throw new H1(`Failed to read layout file: ${O}`,J,void 0,void 0,"Layout content could not be loaded")}),L=F.match(/@(?:layout|extends)\(\s*['"]([^'"]+)['"]\s*\)/);if(L){if(G.debug)console.log(`Found nested layout: ${L[1]} in ${O}`);let w={},N=F.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@show|@endsection)/g,(I,M,E)=>{return w[M]=E.trim(),""});for(let[I,M]of Object.entries(w))if(U[I]&&U[I].includes(R1)){let E=U[I].indexOf(R1);U[I]=U[I].slice(0,E)+M+U[I].slice(E+R1.length)}else if(!U[I])U[I]=M;let R={...Z,__sections:U},T=`@layout('${L[1]}')${N}`;return await $1(T,R,O,G,Q)}let H=F.replace(/\{\{--[\s\S]*?--\}\}/g,""),V=z4(H,W),A={};return V=V.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@show|@endsection)/g,(w,N,R)=>{return A[N]=R.trim(),`@slot('${N}')`}),V=V.replace(/@(?:yield|slot)\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(w,N,R)=>{if(U[N]){let T=U[N];if(T.includes(R1)){let I=A[N]||"",M=T.indexOf(R1);T=T.slice(0,M)+I+T.slice(M+R1.length)}return T}return R||""}),V=V.replace(/\{\{\s*slot\s*\}\}/g,()=>{return U.content||""}),V=U4(V,W),Z.__originalFilePath=J,q=await sZ(V,Z,O,G,Q),q=`<!-- stx-layout: ${_} -->
|
|
9395
|
+
${q}`,q}catch(O){return v0.log(O instanceof Error?O:Error(String(O)),{layoutPath:_,filePath:J},"error"),`[Error processing layout: ${O instanceof Error?O.message:String(O)}]`}return await sZ(q,Z,J,G,Q)}async function sZ($,Z,J,Y,Q){let X=$;Z.__stx_sfc_mode=!0;let G=Y;if(await y1(()=>i2(J,Z),void 0,(g)=>{v0.log(g,{filePath:J,phase:"view-composer"},"warning"),console.warn(`[stx] view composer failed for ${J}: ${g.message}`)}),Z.__stx_options=G,G.buildMode)Z.__stx_buildMode=G.buildMode;let K=G.envPrefix||"STX_PUBLIC_",q={};for(let[g,n]of Object.entries(process.env))if(g.startsWith(K)&&n!==void 0)q[g]=n;Z.$env=q,X=await y1(()=>m2(X,Z,J,G),X,(g)=>{v0.log(g,{filePath:J,phase:"pre-processing-middleware"},"warning"),console.warn(`[stx] pre-processing middleware failed for ${J}: ${g.message}`)});let z=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,W;while((W=z.exec(X))!==null){let g=W[1],n=W[2];if(/\bserver\b/.test(g)&&n.trim())try{let{extractVariables:Z0}=await Promise.resolve().then(() => ($5(),D5));await Z0(n,Z,J)}catch(Z0){let z0=Z0 instanceof Error?Z0:Error(String(Z0));v0.log(z0,{filePath:J,phase:"server-script-extraction"},"warning"),console.warn(`[stx] server <script> extraction failed in ${J}: ${z0.message}`)}}try{let{interpolateScriptsInTemplate:g}=await Promise.resolve().then(() => (t0(),v7));X=g(X,Z,{skipServer:!0})}catch(g){let n=g instanceof Error?g:Error(String(g));v0.log(n,{filePath:J,phase:"script-expression-interpolation"},"warning"),console.warn(`[stx] script expression interpolation failed in ${J}: ${n.message}`)}if(X=await v2(X,Z,J),X=await x2(X,Z,J),X=await _2(X,Z,J,G),R5(X))X=D4(X),X=E4(X,Z);X=G4(X,Z,J,G),X=await s4(X,Z,J,G,Q),X=await $8(X,Z,J,G,Q),X=O7(X,Z,J,G);let{processDeferDirectives:U}=await Promise.resolve().then(() => u8);X=U(X,Z,J);let{processTeleportDirectives:_}=await Promise.resolve().then(() => l8);X=_(X,Z,J);let{processTransitionDirectives:j,processTransitionAttributes:B}=await Promise.resolve().then(() => o8);X=j(X,Z,J),X=B(X);let{processErrorBoundaryDirectives:O}=await Promise.resolve().then(() => r8);X=O(X,Z,J);let{processSuspenseDirectives:F}=await Promise.resolve().then(() => a8);X=F(X,Z,J);let{processAsyncDirectives:L}=await Promise.resolve().then(() => ZZ);X=L(X,Z,J);let{processKeepAliveDirectives:H}=await Promise.resolve().then(() => JZ);X=H(X,Z,J);let{processVirtualListDirectives:V,processVirtualGridDirectives:A,processInfiniteListDirectives:w}=await Promise.resolve().then(() => (WZ(),qZ));X=V(X,Z,J),X=A(X,Z,J),X=w(X,Z,J);let{processPartialHydrationDirectives:N,processStaticDirectives:R}=await Promise.resolve().then(() => (TZ(),RZ));X=N(X,Z,J),X=R(X);let{processComputedDirectives:T,processWatchDirectives:I}=await Promise.resolve().then(() => (xZ(),vZ));X=T(X,Z,J),X=I(X,Z,J);let{processFormValidationDirectives:M}=await Promise.resolve().then(() => (mZ(),dZ));X=M(X,Z,J);let{processHeadDirective:E,processTitleDirective:k,processMetaDirective:y,resetHead:S}=await Promise.resolve().then(() => (e1(),n9));if(!Z.__stx_head_preset&&!Z.__stx_runtime_head)S();let b=E(X);if(X=b.content,X=k(X,Z),X=y(X,Z),X=l2(X),X=a$(X,Z),X=z2(X),X=h2(X),X=await W4(X,Z,J,G,Q),X=await s4(X,Z,J,G,Q),X=t4(X),X=V1(X,Z,J),X=t$(X,Z),X=e$(X,Z),X=B9(X,Z),X=L2(X,Z),X=F2(X,Z),X=await r6(X,Z,J,G),X=await G3(X,Z,J),X=await M2(X,Z,J,G),X=q7(X,Z,J,G),X=j6(X,Z,J,G),X=O6(X,Z,J),X=H6(X,Z,J,G),X=K2(X,Z,J,G),X=r4(X,Z),X=a4(X),X=f8(X),!G.skipEventDirectives)X=c6(X,Z,J);if(X=s6(X,Z,J),G.debug){let g=/\bx-data\s*=/.test(X),n=M9($);if(g&&n)console.warn(`[stx] ${J}: Template mixes Alpine-style (x-data) and signals (state/derived/effect) reactivity.
|
|
9369
9396
|
Both work on the same page, but they manage separate scopes.
|
|
9370
|
-
Prefer signals (state/derived/effect) for new components.`)}X=
|
|
9397
|
+
Prefer signals (state/derived/effect) for new components.`)}X=s2(X,Z),X=await a0(X,Z,J),X=g8(X),X=x6(X);let{processXElementDirectives:D}=await Promise.resolve().then(() => lZ);X=D(X);let x=Z.__originalFilePath||J;if(X=await k4(X,G,x),X=await u2(X,Z,J,G),G.seo?.enabled)X=L6(X,Z,G);let{renderHead:h,getHead:i}=await Promise.resolve().then(() => (e1(),n9)),U0=Z.__stx_runtime_head,H0=U0&&(U0.title||U0.meta?.length||U0.link?.length)?U0:i();if(H0.title||H0.meta?.length||H0.link?.length){let g=h(H0);if(g){if(X.includes("</head>"))X=X.replace("</head>",`${g}
|
|
9371
9398
|
</head>`);else if(X.includes("<head>"))X=X.replace("<head>",`<head>
|
|
9372
|
-
${
|
|
9399
|
+
${g}`)}}if(b.headContent){if(X.includes("</head>"))X=X.replace("</head>",`${b.headContent}
|
|
9373
9400
|
</head>`);else if(X.includes("<head>"))X=X.replace("<head>",`<head>
|
|
9374
|
-
${b.headContent}`)}if(G.csp?.enabled&&G.csp.addMetaTag)X=
|
|
9375
|
-
${
|
|
9376
|
-
</script>`;if(X.includes("</head>")){let
|
|
9377
|
-
`+
|
|
9401
|
+
${b.headContent}`)}if(G.csp?.enabled&&G.csp.addMetaTag)X=G2(X,G.csp,Z);if(G.analytics?.enabled)X=g6(X,G);if(G.heatmap?.enabled)X=w7(X,G);if(G.pwa?.enabled&&G.pwa.autoInject!==!1){let{injectPwaTags:g}=await Promise.resolve().then(() => (oZ(),nZ));X=g(X,G)}let _0=/<script\b(?![^>]*\bserver\b)[^>]*>[\s\S]*?<\/script>/i.test(X),C0=/\bSTX\.\w+/.test(X),p0=/window\.STX\s*=/.test(X);if(_0&&C0&&!p0){let n=`<script data-stx-scoped>
|
|
9402
|
+
${y6()}
|
|
9403
|
+
</script>`;if(X.includes("</head>")){let G0=X.indexOf("</head>"),z0=X.slice(0,G0).indexOf("<script");if(z0!==-1){let k0=X.slice(0,z0),o0=X.slice(z0);X=k0+n+`
|
|
9404
|
+
`+o0}else X=X.replace("</head>",`${n}
|
|
9378
9405
|
</head>`)}else if(X.includes("<body"))X=X.replace(/<body([^>]*)>/,`<body$1>
|
|
9379
|
-
${
|
|
9380
|
-
`+X}{let
|
|
9406
|
+
${n}`);else X=n+`
|
|
9407
|
+
`+X}{let g=/<script\s+server\b[^>]*>/gi,n,G0=[];while((n=g.exec(X))!==null){let Z0=n.index+n[0].length,z0=QW(X,Z0);if(z0===-1)continue;let k0=z0+9;while(k0<X.length&&/\s/.test(X[k0]))k0++;G0.push({start:n.index,end:k0})}for(let Z0=G0.length-1;Z0>=0;Z0--){let{start:z0,end:k0}=G0[Z0];X=X.substring(0,z0)+X.substring(k0)}}let L0=T5(X,J);if(L0.hasScoped)X=L0.html;let P=Z.__stx_event_bindings||[],v=!1,f=[],l=/\s:[a-z][\w.-]*\s*=/.test(X),{scanScriptTags:q0}=await Promise.resolve().then(() => (b4(),B8));for(let g of q0(X,{skipAttrs:/\bserver\b|\bsrc\s*=|\bdata-stx-scoped\b|\bdata-stx-router\b/}))f.push({match:g.fullMatch,attrs:g.attrs,content:g.body});for(let{match:g,attrs:n,content:G0}of f){v=!0;let Z0=G0;$7(G0,J,Y.strict);let z0=await w5(G0,{eventBindings:P,attrs:n,hasColonDirectives:l,templateContent:$,filePath:J,projectRoot:process.cwd(),production:Y.buildMode==="compile"});X=X.replace(g,()=>z0)}if(v)Z.__stx_event_bindings=[];return X}var R1="<!--PARENT_CONTENT_PLACEHOLDER-->";var e9=C(()=>{G9();v9();C6();f6();h6();g9();x9();i6();m9();a6();z9();q2();U2();j2();n0();e1();t0();V2();I2();P2();g2();K4();$$();p2();E1();c2();f$();A0();n2();r2();e2();Z8();i9();b4();y8();x8();e4();Z7();e4();Z7()});import O0 from"fs";import $0 from"path";import{matchRoute as TW,Router as WY}from"stx-router";import{findErrorPage as DW,formatRoutes as EW,generateRouteManifest as kW,generateRouteTypes as bW,matchRoute as SW}from"stx-router";function P9($,Z={}){return new WY($,Z).routes}e9();Q5();G9();import{abortNavigation as lH,clearMiddleware as rZ,createClientCookieManager as cH,createMiddlewareContext as aZ,createRouteLocation as tZ,createServerCookieManager as iH,createStorageManager as nH,defineMiddleware as oH,getMiddleware as sH,getMiddlewareNames as eZ,hasMiddleware as rH,loadMiddlewareFromDirectory as $Y,navigateTo as aH,registerMiddleware as tH,runMiddleware as ZY}from"stx-router";class YY{cacheDir;cache=new Map;loaded=!1;constructor($){this.cacheDir=$}async load(){if(this.loaded)return;let $=$0.join(this.cacheDir,"build-cache.json");if(await Bun.file($).exists())try{let Z=JSON.parse(await Bun.file($).text());for(let[J,Y]of Object.entries(Z))this.cache.set(J,Y)}catch{}this.loaded=!0}async save(){await O0.promises.mkdir(this.cacheDir,{recursive:!0});let $=$0.join(this.cacheDir,"build-cache.json"),Z={};for(let[J,Y]of this.cache)Z[J]=Y;await Bun.write($,JSON.stringify(Z))}getHash($,Z){let J=O0.statSync($),Y=`${$}:${J.mtimeMs}`;for(let X of Z)if(O0.existsSync(X)){let G=O0.statSync(X);Y+=`:${X}:${G.mtimeMs}`}let Q=0;for(let X=0;X<Y.length;X++){let G=Y.charCodeAt(X);Q=(Q<<5)-Q+G,Q=Q&Q}return Math.abs(Q).toString(36)}get($,Z,J){let Y=this.cache.get($);if(!Y)return null;let Q=this.getHash(Z,J);if(Y.hash!==Q)return this.cache.delete($),null;return Y.html}set($,Z,J,Y){let Q=this.getHash(Z,J);this.cache.set($,{hash:Q,html:Y,generatedAt:Date.now(),dependencies:J})}}class JY{cacheDir;constructor($){this.cacheDir=$}getFilePath($){let Z=$.replace(/[^a-zA-Z0-9]/g,"_")+".json";return $0.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 J=this.getFilePath($);await O0.promises.mkdir($0.dirname(J),{recursive:!0}),await Bun.write(J,JSON.stringify(Z))}async invalidate($){let Z=this.getFilePath($);if(await Bun.file(Z).exists())await O0.promises.unlink(Z)}async invalidatePattern($){let Z=$0.join(this.cacheDir,"isr");if(!O0.existsSync(Z))return;let J=await O0.promises.readdir(Z);for(let Y of J){let Q=Y.replace(/_/g,"/").replace(".json","");if($.test(Q))await O0.promises.unlink($0.join(Z,Y))}}async needsRevalidation($){let Z=await this.get($);if(!Z)return!0;return Date.now()>Z.revalidateAfter}}async function KW($){try{let J=(await Bun.file($).text()).match(/<script\s+server\b[^>]*>([\s\S]*?)<\/script>/i);if(!J)return null;let Y=J[1];if(!Y.includes("getStaticPaths"))return null;let Q=Y.match(/(?:export\s+)?(?:async\s+)?function\s+getStaticPaths\s*\([^)]*\)\s*\{([\s\S]*?)\n[\t ]*\}/);if(!Q)return null;return await Function(`
|
|
9381
9408
|
return (async function getStaticPaths() {
|
|
9382
9409
|
${Q[1]}
|
|
9383
9410
|
})()
|
|
9384
|
-
`)()}catch(Z){return console.error(`Error extracting static paths from ${$}:`,Z),null}}async function
|
|
9411
|
+
`)()}catch(Z){return console.error(`Error extracting static paths from ${$}:`,Z),null}}async function qW($){let Z=[];if(!$.isDynamic)Z.push({url:$.pattern,params:{}});else{let J=await KW($.filePath);if(!J||J.paths.length===0)return console.warn(`Warning: Dynamic route ${$.pattern} has no getStaticPaths or returned empty paths`),Z;for(let Y of J.paths){let Q=$.pattern;for(let[X,G]of Object.entries(Y.params))Q=Q.replace(`:${X}`,G).replace(`:${X}*`,G);Z.push({url:Q,params:Y.params,props:Y.props,revalidate:Y.revalidate})}}return Z}async function WW($){let Z=[$.replace(/\.stx$/,".data.ts"),$.replace(/\.stx$/,".data.js"),$+".data.ts",$+".data.js"];for(let J of Z)if(await Bun.file(J).exists())try{let Y=await import(J);if(typeof Y.default==="function")return await Y.default();else if(typeof Y.default==="object")return Y.default;else if(typeof Y.getData==="function")return await Y.getData();else{let{default:Q,...X}=Y;return X}}catch(Y){console.error(`Error loading data file ${J}:`,Y)}return null}async function zW($,Z,J){let Y=$.match(/<script\s+server\b[^>]*>([\s\S]*?)<\/script>/i);if(!Y)return null;let Q=Y[1];if(!Q.includes("getStaticProps"))return null;try{let X=Q.match(/(?:export\s+)?(?:async\s+)?function\s+getStaticProps\s*\([^)]*\)\s*\{([\s\S]*?)\n\}/);if(!X)return null;return await Function("params",`
|
|
9385
9412
|
return (async function getStaticProps() {
|
|
9386
9413
|
${X[1]}
|
|
9387
9414
|
})()
|
|
9388
|
-
`)(Z)}catch(X){return console.error(`Error executing getStaticProps in ${J}:`,X),null}}async function
|
|
9415
|
+
`)(Z)}catch(X){return console.error(`Error executing getStaticProps in ${J}:`,X),null}}async function XY($,Z,J={},Y,Q){let X=await Bun.file($.filePath).text(),G=await WW($.filePath),K=await zW(X,Z,$.filePath),q={...G||{},...K||{},...J,params:Z,$route:{path:$.pattern,params:Z}},z=new Set,W={...Q,debug:!1,cache:!1,autoShell:!0},U=await $1(X,q,$.filePath,W,z);if(Object.keys(Z).length>0){let _=`<script>if(window.stx)window.stx._rp=${JSON.stringify(Z)};else window.__stx_rp=${JSON.stringify(Z)};</script>`;if(U.includes("</head>"))U=U.replace("</head>",`${_}
|
|
9389
9416
|
</head>`);else U=`${_}
|
|
9390
|
-
${U}`}if(U=await
|
|
9417
|
+
${U}`}if(U=await I4(U),U=await K5(U),Y.minify!==!1)return UW(U);return U}function UW($){let Z=[],J=0,Y=/(<script[^>]*>)([\s\S]*?)(<\/script>)/gi,Q;while((Q=Y.exec($))!==null){let G=$.slice(J,Q.index);Z.push(G.replace(/<!--(?!\[if)[\s\S]*?-->/g,"").replace(/\s+/g," ").replace(/>\s+</g,"><"));let K=Q[1],q=Q[2],z=Q[3];q=q.replace(/([^:"\\'`])\/\/(?!\/)(?![*!])([^\n]*)/g,"$1"),Z.push(K+q+z),J=Q.index+Q[0].length}let X=$.slice(J);return Z.push(X.replace(/<!--(?!\[if)[\s\S]*?-->/g,"").replace(/\s+/g," ").replace(/>\s+</g,"><")),Z.join("").trim()}function _W($){let Z=0;for(let J=0;J<$.length;J++){let Y=$.charCodeAt(J);Z=(Z<<5)-Z+Y,Z=Z&Z}return`"${Math.abs(Z).toString(36)}"`}function BW($,Z){return`<?xml version="1.0" encoding="UTF-8"?>
|
|
9391
9418
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
9392
9419
|
${$.map((Y)=>{let Q=new URL(Y.loc,Z).href,X=` <url>
|
|
9393
|
-
<loc>${
|
|
9420
|
+
<loc>${x0(Q)}</loc>`;if(Y.lastmod)X+=`
|
|
9394
9421
|
<lastmod>${Y.lastmod}</lastmod>`;if(Y.changefreq)X+=`
|
|
9395
9422
|
<changefreq>${Y.changefreq}</changefreq>`;if(Y.priority!==void 0)X+=`
|
|
9396
9423
|
<priority>${Y.priority}</priority>`;return X+=`
|
|
9397
9424
|
</url>`,X}).join(`
|
|
9398
9425
|
`)}
|
|
9399
|
-
</urlset>`}function
|
|
9400
|
-
<title>${
|
|
9401
|
-
<link>${
|
|
9402
|
-
<description>${
|
|
9426
|
+
</urlset>`}function x0($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function jW($,Z){let J=Z.map((Y)=>{let Q=" <item>";if(Q+=`
|
|
9427
|
+
<title>${x0(Y.title)}</title>`,Q+=`
|
|
9428
|
+
<link>${x0(Y.link)}</link>`,Y.description)Q+=`
|
|
9429
|
+
<description>${x0(Y.description)}</description>`;if(Y.pubDate)Q+=`
|
|
9403
9430
|
<pubDate>${Y.pubDate.toUTCString()}</pubDate>`;if(Y.author)Q+=`
|
|
9404
|
-
<author>${
|
|
9405
|
-
<category>${
|
|
9406
|
-
<guid>${
|
|
9431
|
+
<author>${x0(Y.author)}</author>`;if(Y.categories)for(let X of Y.categories)Q+=`
|
|
9432
|
+
<category>${x0(X)}</category>`;if(Y.guid)Q+=`
|
|
9433
|
+
<guid>${x0(Y.guid)}</guid>`;return Q+=`
|
|
9407
9434
|
</item>`,Q});return`<?xml version="1.0" encoding="UTF-8"?>
|
|
9408
9435
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
|
9409
9436
|
<channel>
|
|
9410
|
-
<title>${
|
|
9411
|
-
<link>${
|
|
9412
|
-
<description>${
|
|
9437
|
+
<title>${x0($.title)}</title>
|
|
9438
|
+
<link>${x0($.link)}</link>
|
|
9439
|
+
<description>${x0($.description)}</description>
|
|
9413
9440
|
${$.language?`<language>${$.language}</language>`:""}
|
|
9414
|
-
${$.copyright?`<copyright>${
|
|
9441
|
+
${$.copyright?`<copyright>${x0($.copyright)}</copyright>`:""}
|
|
9415
9442
|
<lastBuildDate>${new Date().toUTCString()}</lastBuildDate>
|
|
9416
9443
|
<atom:link href="${$.link}/rss.xml" rel="self" type="application/rss+xml"/>
|
|
9417
9444
|
${J.join(`
|
|
9418
9445
|
`)}
|
|
9419
9446
|
</channel>
|
|
9420
|
-
</rss>`}async function
|
|
9447
|
+
</rss>`}async function OW($={}){let Z=Date.now(),J=await L1(),Y={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},Q={totalPages:0,successCount:0,failedCount:0,cachedCount:0,buildTime:0,pages:[],errors:[]};await Y.hooks.onBuildStart?.();try{if(Y.cleanOutput&&O0.existsSync(Y.outputDir))await O0.promises.rm(Y.outputDir,{recursive:!0});await O0.promises.mkdir(Y.outputDir,{recursive:!0});let X=new YY(Y.cacheDir);if(Y.cache)await X.load();try{let{preloadIconCollection:B}=await Promise.resolve().then(() => (k9(),T8));await B("lucide")}catch{}try{let{generateCrosswindCSS:B}=await Promise.resolve().then(() => (G9(),S6));await B('<div class="bg-black"></div>')}catch{}rZ();let G=J?.routeMiddleware?.dir||"middleware";await $Y(process.cwd(),G);let K=eZ();if(K.length>0)console.log(`Loaded ${K.length} middleware: ${K.join(", ")}`);let q=J?.routeMiddleware?.global||[],z=P9(".",{pagesDir:Y.pagesDir});console.log(`Found ${z.length} routes`);let W=[];for(let B of z){let O=await qW(B);for(let F of O)W.push({route:B,url:F.url,params:F.params,props:F.props,revalidate:F.revalidate??Y.revalidate})}Q.totalPages=W.length,console.log(`Generating ${Q.totalPages} pages...`);let U=[],_=[];for(let B=0;B<W.length;B+=Y.concurrency)_.push(W.slice(B,B+Y.concurrency));for(let B of _)await Promise.all(B.map(async(O)=>{let{route:F,url:L,params:H,props:V,revalidate:A}=O;try{await Y.hooks.onPageStart?.(L);let w=await Bun.file(F.filePath).text(),N=VW(w),R=N?.middleware?Array.isArray(N.middleware)?N.middleware:[N.middleware]:[],T=[...q,...R];if(T.length>0){let S=tZ(L,H,N||{}),b=aZ(S,null),D=await ZY(T,b);if(D.redirect){let x=typeof D.redirect==="string"?D.redirect:D.redirect.path||D.redirect,h=wW(String(x),L),i=AW(L,Y);await O0.promises.mkdir($0.dirname(i),{recursive:!0}),await Bun.write(i,h),Q.successCount++,Q.pages.push({route:L,outputPath:i,size:Buffer.byteLength(h),cached:!1}),U.push({loc:L,lastmod:new Date().toISOString()}),console.log(` \u21B3 ${L} \u2192 redirect to ${x}`);return}if(D.abort){let x=typeof D.abort==="string"?D.abort:D.abort?.error?.message||"aborted";console.warn(` \u21B3 ${L} \u2014 middleware aborted: ${x}`);return}}let I=w.match(/definePageMeta\s*\(\s*\{[\s\S]*?validate\s*:\s*((?:\([^)]*\)|[^,}])*(?:\{[\s\S]*?\})?)/m);if(I)try{if(!await Function("route",`
|
|
9421
9448
|
const validate = ${I[1]};
|
|
9422
9449
|
return validate(route);
|
|
9423
|
-
`)({params:H})){console.warn(`Validation failed for ${L}, skipping...`);return}}catch{}let M=null,E=!1;if(Y.cache){if(M=X.get(L,F.filePath,[]),M)E=!0,Q.cachedCount++}if(!M){if(M=await
|
|
9450
|
+
`)({params:H})){console.warn(`Validation failed for ${L}, skipping...`);return}}catch{}let M=null,E=!1;if(Y.cache){if(M=X.get(L,F.filePath,[]),M)E=!0,Q.cachedCount++}if(!M){if(M=await XY(F,H,V,Y,J),Y.cache)X.set(L,F.filePath,[],M)}let k;if(Y.trailingSlash)k=$0.join(Y.outputDir,L,"index.html");else k=L==="/"?$0.join(Y.outputDir,"index.html"):$0.join(Y.outputDir,`${L}.html`);await O0.promises.mkdir($0.dirname(k),{recursive:!0}),await Bun.write(k,M),U.push({loc:L,lastmod:new Date().toISOString().split("T")[0],priority:L==="/"?1:0.8});let y={route:L,outputPath:k,size:Buffer.byteLength(M,"utf8"),cached:E};if(A!==!1)y.revalidateAt=Date.now()+A*1000;Q.pages.push(y),Q.successCount++,await Y.hooks.onPageEnd?.(L,M)}catch(w){Q.failedCount++,Q.errors.push({route:L,error:w}),await Y.hooks.onError?.(w,L),console.error(`Error generating ${L}:`,w)}}));if(Y.cache)await X.save();if(Y.generate404){let B=$0.join(Y.pagesDir,"404.stx");if(await Bun.file(B).exists()){let O=new Set,F={...J,debug:!1,cache:!1},L=await $1(await Bun.file(B).text(),{},B,F,O);await Bun.write($0.join(Y.outputDir,"404.html"),L)}else await Bun.write($0.join(Y.outputDir,"404.html"),`<!DOCTYPE html>
|
|
9424
9451
|
<html lang="en">
|
|
9425
9452
|
<head>
|
|
9426
9453
|
<meta charset="UTF-8">
|
|
@@ -9441,15 +9468,15 @@ ${J.join(`
|
|
|
9441
9468
|
<a href="/">Go home</a>
|
|
9442
9469
|
</div>
|
|
9443
9470
|
</body>
|
|
9444
|
-
</html>`)}for(let B of[500]){let O
|
|
9471
|
+
</html>`)}for(let B of[500]){let O=$0.join(Y.pagesDir,`${B}.stx`);if(await Bun.file(O).exists()){let F=new Set,L={...J,debug:!1,cache:!1},H=await $1(await Bun.file(O).text(),{},O,L,F);await Bun.write($0.join(Y.outputDir,`${B}.html`),H)}}let j=$0.join(Y.pagesDir,"error.stx");if(await Bun.file(j).exists()){let B=new Set,O={...J,debug:!1,cache:!1},F=await $1(await Bun.file(j).text(),{},j,O,B);await Bun.write($0.join(Y.outputDir,"error.html"),F)}if(Y.sitemap&&U.length>0){let B=BW(U,Y.domain),O=$0.join(Y.outputDir,"sitemap.xml");await Bun.write(O,B),Q.sitemapPath=O,console.log(`Generated sitemap.xml with ${U.length} URLs`)}if(Y.rss){let B=typeof Y.rss==="object"?Y.rss:{title:"Site Feed",description:"Latest updates",link:Y.domain},O=[];if(B.getItems)O=await B.getItems();let F=jW(B,O),L=$0.join(Y.outputDir,"rss.xml");await Bun.write(L,F),Q.rssPath=L,console.log(`Generated rss.xml with ${O.length} items`)}if(Y.publicDir&&O0.existsSync(Y.publicDir))await QY(Y.publicDir,Y.outputDir),console.log(`Copied public assets from ${Y.publicDir}`)}catch(X){throw await Y.hooks.onError?.(X),X}return Q.buildTime=Date.now()-Z,await Y.hooks.onBuildEnd?.(Q),console.log(`
|
|
9445
9472
|
Build complete!
|
|
9446
9473
|
Total: ${Q.totalPages} pages
|
|
9447
9474
|
Success: ${Q.successCount}
|
|
9448
9475
|
Cached: ${Q.cachedCount}
|
|
9449
9476
|
Failed: ${Q.failedCount}
|
|
9450
9477
|
Time: ${Q.buildTime}ms
|
|
9451
|
-
`),Q}async function
|
|
9452
|
-
`)){let U=W.indexOf(":");if(U>0){let _=W.slice(0,U).trim(),j=W.slice(U+1).trim();if(j==="true")j=!0;else if(j==="false")j=!1;else if(/^\d+$/.test(j))j=parseInt(j,10);else if(/^\d+\.\d+$/.test(j))j=parseFloat(j);else if(j.startsWith("[")&&j.endsWith("]"))j=j.slice(1,-1).split(",").map((B)=>B.trim().replace(/^['"]|['"]$/g,""));Y[_]=j}}}let X=Q.replace(/^### (.*$)/gim,"<h3>$1</h3>").replace(/^## (.*$)/gim,"<h2>$1</h2>").replace(/^# (.*$)/gim,"<h1>$1</h1>").replace(/\*\*(.*)\*\*/gim,"<strong>$1</strong>").replace(/\*(.*)\*/gim,"<em>$1</em>").replace(/`([^`]+)`/gim,"<code>$1</code>").replace(/\[([^\]]+)\]\(([^)]+)\)/gim,'<a href="$2">$1</a>').replace(/\n/gim,"<br>"),G=[],K=/<h([1-6])>([^<]+)<\/h[1-6]>/gi,q;while((q=K.exec(X))!==null){let z=parseInt(q[1],10),W=q[2],U=W.toLowerCase().replace(/[^a-z0-9]+/g,"-");G.push({id:U,text:W,level:z})}return{content:X,data:Y,toc:G}}}}function
|
|
9478
|
+
`),Q}async function QY($,Z){let J=await O0.promises.readdir($,{withFileTypes:!0});for(let Y of J){let Q=$0.join($,Y.name),X=$0.join(Z,Y.name);if(Y.isDirectory())await O0.promises.mkdir(X,{recursive:!0}),await QY(Q,X);else await O0.promises.copyFile(Q,X)}}function HW($={}){let Z=$.cacheDir||".stx/ssg-cache",J=new JY(Z),Y=$.revalidate||3600;return{async get(Q){let X=await J.get(Q);if(!X)return null;if(Date.now()>X.revalidateAfter)this.revalidate(Q).catch(console.error);return{html:X.html,headers:{"Cache-Control":`public, max-age=${Y}, stale-while-revalidate=${Y*2}`,ETag:X.etag,"X-ISR-Generated":new Date(X.generatedAt).toISOString(),...X.headers}}},async revalidate(Q){let G=P9(".",{pagesDir:$.pagesDir||"pages"}).find((U)=>{return Q.match(U.regex)!==null});if(!G){console.warn(`Route not found for revalidation: ${Q}`);return}let K=Q.match(G.regex),q={};if(K)G.params.forEach((U,_)=>{q[U]=K[_+1]});let z=await L1(),W=await XY(G,q,{},$,z);await J.set(Q,{html:W,generatedAt:Date.now(),revalidateAfter:Date.now()+Y*1000,etag:_W(W)}),console.log(`Revalidated: ${Q}`)},async invalidate(Q){if(typeof Q==="string")await J.invalidate(Q);else await J.invalidatePattern(Q)}}}function LW($){return async()=>{return{paths:await $(),fallback:!1}}}function FW(){return{name:"markdown",extensions:[".md",".mdx"],async load($){let Z=await Bun.file($).text(),J=Z.match(/^---\n([\s\S]*?)\n---/),Y={},Q=Z;if(J){let z=J[1];Q=Z.slice(J[0].length).trim();for(let W of z.split(`
|
|
9479
|
+
`)){let U=W.indexOf(":");if(U>0){let _=W.slice(0,U).trim(),j=W.slice(U+1).trim();if(j==="true")j=!0;else if(j==="false")j=!1;else if(/^\d+$/.test(j))j=parseInt(j,10);else if(/^\d+\.\d+$/.test(j))j=parseFloat(j);else if(j.startsWith("[")&&j.endsWith("]"))j=j.slice(1,-1).split(",").map((B)=>B.trim().replace(/^['"]|['"]$/g,""));Y[_]=j}}}let X=Q.replace(/^### (.*$)/gim,"<h3>$1</h3>").replace(/^## (.*$)/gim,"<h2>$1</h2>").replace(/^# (.*$)/gim,"<h1>$1</h1>").replace(/\*\*(.*)\*\*/gim,"<strong>$1</strong>").replace(/\*(.*)\*/gim,"<em>$1</em>").replace(/`([^`]+)`/gim,"<code>$1</code>").replace(/\[([^\]]+)\]\(([^)]+)\)/gim,'<a href="$2">$1</a>').replace(/\n/gim,"<br>"),G=[],K=/<h([1-6])>([^<]+)<\/h[1-6]>/gi,q;while((q=K.exec(X))!==null){let z=parseInt(q[1],10),W=q[2],U=W.toLowerCase().replace(/[^a-z0-9]+/g,"-");G.push({id:U,text:W,level:z})}return{content:X,data:Y,toc:G}}}}function VW($){let Z=$.match(/definePageMeta\s*\(\s*(\{[\s\S]*?\})\s*\)/m);if(!Z)return null;try{return Function(`return ${Z[1]}`)()}catch{return null}}function wW($,Z){return`<!DOCTYPE html>
|
|
9453
9480
|
<html>
|
|
9454
9481
|
<head>
|
|
9455
9482
|
<meta charset="utf-8">
|
|
@@ -9461,4 +9488,4 @@ Build complete!
|
|
|
9461
9488
|
<p>Redirecting to <a href="${$}">${$}</a>...</p>
|
|
9462
9489
|
<script>window.location.replace('${$}')</script>
|
|
9463
9490
|
</body>
|
|
9464
|
-
</html>`}function
|
|
9491
|
+
</html>`}function AW($,Z){if($==="/"||$==="")return $0.join(Z.outputDir,"index.html");let J=$.replace(/^\/|\/$/g,"");if(Z.trailingSlash)return $0.join(Z.outputDir,J,"index.html");return $0.join(Z.outputDir,`${J}.html`)}var GL={generateStaticSite:OW,createISRHandler:HW,defineStaticPaths:LW,createMarkdownLoader:FW};export{OW as generateStaticSite,LW as defineStaticPaths,GL as default,FW as createMarkdownLoader,HW as createISRHandler};
|