@stacksjs/stx 0.2.84 → 0.2.86
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app-shell.js +50 -50
- package/dist/build-mode-detector.js +95 -95
- package/dist/build-views.js +149 -149
- package/dist/build.js +37 -37
- package/dist/cli.js +51 -51
- package/dist/component-processing.js +16 -16
- package/dist/component-renderer.js +32 -32
- package/dist/components.js +95 -95
- package/dist/dev-server/index.js +36 -36
- package/dist/dev-server/serve-app.js +50 -50
- package/dist/dev-server/serve-file.js +50 -50
- package/dist/dev-server/serve-markdown.js +36 -36
- package/dist/dev-server/serve-multi.js +49 -49
- package/dist/dev-server.js +50 -50
- package/dist/docs.js +96 -96
- package/dist/dynamic-components.js +32 -32
- package/dist/includes.js +32 -32
- package/dist/index.js +50 -50
- package/dist/interactive.js +96 -96
- package/dist/lazy-loader.js +95 -95
- package/dist/plugin.js +44 -44
- package/dist/process.js +31 -31
- package/dist/production-builder.js +31 -31
- package/dist/production-server.js +31 -31
- package/dist/pwa/index.js +95 -95
- package/dist/pwa/offline.js +95 -95
- package/dist/pwa.js +84 -84
- package/dist/render.js +153 -153
- package/dist/serve.js +106 -106
- package/dist/site-builder/build.js +97 -97
- package/dist/site-builder/index.js +38 -38
- package/dist/ssg.js +13 -13
- package/dist/ssr.js +83 -83
- package/dist/story/cli.js +36 -36
- package/dist/story/commands/dev.js +36 -36
- package/dist/story/commands/index.js +36 -36
- package/dist/story/index.js +36 -36
- package/dist/story/renderer.js +96 -96
- package/dist/story/server.js +36 -36
- package/dist/story/visual-testing.js +96 -96
- package/dist/streaming.js +32 -32
- package/dist/template-compiler.js +24 -24
- package/dist/template-hydrator.js +110 -110
- package/dist/testing.js +95 -95
- package/dist/utils.js +32 -32
- package/dist/variable-extractor.js +11 -11
- package/dist/web-components.js +95 -95
- package/package.json +7 -5
package/dist/ssr.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var{defineProperty:Y7,getOwnPropertyNames:_Q,getOwnPropertyDescriptor:BQ}=Object,jQ=Object.prototype.hasOwnProperty;function HQ($){return this[$]}var K9=($)=>{var Z=(G9??=new WeakMap).get($),Y;if(Z)return Z;if(Z=Y7({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function"){for(var X of _Q($))if(!jQ.call(Z,X))Y7(Z,X,{get:HQ.bind($,X),enumerable:!(Y=BQ($,X))||Y.enumerable})}return G9.set($,Z),Z},G9;var OQ=($)=>$;function LQ($,Z){this[$]=OQ.bind(null,Z)}var l=($,Z)=>{for(var Y in Z)Y7($,Y,{get:Z[Y],enumerable:!0,configurable:!0,set:LQ.bind(Z,Y)})};var
|
|
2
|
+
var{defineProperty:Y7,getOwnPropertyNames:_Q,getOwnPropertyDescriptor:BQ}=Object,jQ=Object.prototype.hasOwnProperty;function HQ($){return this[$]}var K9=($)=>{var Z=(G9??=new WeakMap).get($),Y;if(Z)return Z;if(Z=Y7({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function"){for(var X of _Q($))if(!jQ.call(Z,X))Y7(Z,X,{get:HQ.bind($,X),enumerable:!(Y=BQ($,X))||Y.enumerable})}return G9.set($,Z),Z},G9;var OQ=($)=>$;function LQ($,Z){this[$]=OQ.bind(null,Z)}var l=($,Z)=>{for(var Y in Z)Y7($,Y,{get:Z[Y],enumerable:!0,configurable:!0,set:LQ.bind(Z,Y)})};var P=($,Z)=>()=>($&&(Z=$($=0)),Z);var G0=import.meta.require;var TQ={};l(TQ,{screenReaderDirective:()=>q$,scanA11yIssues:()=>wQ,registerA11yDirectives:()=>NQ,processA11yDirectives:()=>X7,hasDOMSupport:()=>z9,getScreenReaderOnlyStyle:()=>FQ,checkA11y:()=>q9,autoFixA11yFile:()=>W9,autoFixA11yDirectory:()=>RQ,autoFixA11y:()=>U9,a11yDirective:()=>z$});import K$ from"path";function X7($,Z,Y,X){let J=$;J=J.replace(/@a11y\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(G,K,z)=>{let U={"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: ${z||U} -->`});let Q=/@screenReader\(([^@]*)\)@endScreenReader/g;return J=J.replace(Q,(G,K)=>{return`<span class="sr-only">${K.trim()}</span>`}),J=J.replace(/@ariaDescribe\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*\)/g,(G,K,z)=>{return`<span id="${`desc-${K}`}" class="sr-only">${z}</span>`}),J}function FQ(){return`
|
|
3
3
|
.sr-only {
|
|
4
4
|
position: absolute;
|
|
5
5
|
width: 1px;
|
|
@@ -11,7 +11,7 @@ var{defineProperty:Y7,getOwnPropertyNames:_Q,getOwnPropertyDescriptor:BQ}=Object
|
|
|
11
11
|
white-space: nowrap;
|
|
12
12
|
border-width: 0;
|
|
13
13
|
}
|
|
14
|
-
`.trim()}function z9(){return typeof globalThis.document<"u"&&typeof globalThis.document.createElement==="function"}function VQ($,Z){let Y=[],X=/<img\s+([^>]*)>/gi,J;J=X.exec($);while(J!==null){let L=J[1];if(!/\balt\s*=/i.test(L))Y.push({type:"missing-alt",element:J[0].substring(0,100),message:"Image missing alt attribute",impact:"serious",help:"Add alt text to images for screen readers",helpUrl:"https://web.dev/learn/accessibility/images/"});J=X.exec($)}let Q=/<button([^>]*)>\s*<\/button>/gi;J=Q.exec($);while(J!==null){let L=J[1];if(!/\baria-label\s*=/i.test(L)&&!/\btitle\s*=/i.test(L))Y.push({type:"missing-accessible-name",element:J[0].substring(0,100),message:"Empty button missing accessible name",impact:"critical",help:"Add text content, aria-label, or title",helpUrl:"https://web.dev/learn/accessibility/aria-html/"});J=Q.exec($)}let G=/<a\s+([^>]*)>\s*<\/a>/gi;J=G.exec($);while(J!==null){let L=J[1];if(!/\baria-label\s*=/i.test(L)&&!/\btitle\s*=/i.test(L))Y.push({type:"link-missing-text",element:J[0].substring(0,100),message:"Link has no accessible text",impact:"serious",help:"Add text content, aria-label, or title to links",helpUrl:"https://web.dev/learn/accessibility/more-html/#links"});J=G.exec($)}let K=/<(input|select|textarea)\s+([^>]*)>/gi;J=K.exec($);while(J!==null){let L=J[2];if(/\btype\s*=\s*["']hidden["']/i.test(L)){J=K.exec($);continue}let F=/\baria-label\s*=/i.test(L)||/\baria-labelledby\s*=/i.test(L),O=L.match(/\bid\s*=\s*["']([^"']+)["']/i);if(!F){let V=O&&new RegExp(`<label[^>]*\\bfor\\s*=\\s*["']${O[1]}["']`,"i").test($),w=J.index,A=$.substring(0,w),R=$.substring(w),N=(A.match(/<label\b/gi)||[]).length,M=(A.match(/<\/label>/gi)||[]).length,T=N>M;if(!V&&!T)Y.push({type:"input-missing-label",element:J[0].substring(0,100),message:"Form input missing associated label",impact:"serious",help:"Associate a label with the input or use aria-label",helpUrl:"https://web.dev/learn/accessibility/forms/"})}J=K.exec($)}let z=/<h([1-6])[^>]*>/gi,q=[];J=z.exec($);while(J!==null)q.push(Number.parseInt(J[1],10)),J=z.exec($);let U=0;for(let L of q){if(U>0&&L>U+1)Y.push({type:"heading-skip",element:`<h${L}>`,message:`Heading level skipped from h${U} to h${L}`,impact:"moderate",help:"Maintain proper heading hierarchy without skipping levels",helpUrl:"https://web.dev/learn/accessibility/structure/"});U=L}if(/<html\b/i.test($)&&!/<html[^>]*\slang\s*=/i.test($))Y.push({type:"missing-lang",element:"<html>",message:"Document language not specified",impact:"serious",help:"Add lang attribute to the html element",helpUrl:"https://web.dev/learn/accessibility/more-html/#language"});let W=/<table[^>]*>([\s\S]*?)<\/table>/gi;J=W.exec($);while(J!==null){let L=J[1];if(!/<th\b/i.test(L))Y.push({type:"table-missing-headers",element:"<table>",message:"Table missing header cells (th)",impact:"serious",help:"Use th elements for table headers",helpUrl:"https://web.dev/learn/accessibility/more-html/#tables"});J=W.exec($)}let _=/<(video|audio)[^>]*\sautoplay\s[^>]*>/gi;J=_.exec($);while(J!==null){if(!/\bmuted\b/i.test(J[0]))Y.push({type:"autoplay-audio",element:`<${J[1]}>`,message:"Auto-playing media may disrupt users",impact:"moderate",help:"Add muted attribute or provide controls to stop playback",helpUrl:"https://web.dev/learn/accessibility/more-html/#multimedia"});J=_.exec($)}let B=/\btabindex\s*=\s*["']([1-9]\d*)["']/gi;J=B.exec($);while(J!==null)Y.push({type:"positive-tabindex",element:`tabindex="${J[1]}"`,message:"Positive tabindex disrupts natural tab order",impact:"moderate",help:'Use tabindex="0" or "-1" instead of positive values',helpUrl:"https://web.dev/learn/accessibility/focus/#tab-index"}),J=B.exec($);let j=/<iframe\s+([^>]*)>/gi;J=j.exec($);while(J!==null){let L=J[1];if(!/\btitle\s*=/i.test(L)&&!/\baria-label\s*=/i.test(L))Y.push({type:"iframe-missing-title",element:"<iframe>",message:"Iframe missing title attribute",impact:"serious",help:"Add a title attribute to describe the iframe content",helpUrl:"https://web.dev/learn/accessibility/more-html/#frames"});J=j.exec($)}let H=/<([a-z]+)\s+([^>]*role\s*=\s*["']button["'][^>]*)>/gi;J=H.exec($);while(J!==null){let L=J[1].toLowerCase(),F=J[2];if(L!=="button"&&!/\btabindex\s*=/i.test(F))Y.push({type:"button-not-focusable",element:J[0].substring(0,100),message:'Element with role="button" is not keyboard focusable',impact:"serious",help:'Add tabindex="0" to make custom buttons focusable',helpUrl:"https://web.dev/learn/accessibility/focus/"});J=H.exec($)}return Y}async function q9($,Z){if(!z9())return VQ($,Z);let Y=[];try{let X=globalThis.document.createElement("div");X.innerHTML=$,X.querySelectorAll("img").forEach((K)=>{if(!K.hasAttribute("alt"))Y.push({type:"missing-alt",element:`<${K.outerHTML}>`,message:"Image missing alt attribute",impact:"serious",help:"Add alt text to images for screen readers",helpUrl:"https://web.dev/learn/accessibility/images/"})}),X.querySelectorAll('button, a, [role="button"]').forEach((K)=>{if(!(K.hasAttribute("aria-label")||K.hasAttribute("aria-labelledby")||K.textContent&&K.textContent.trim().length>0))Y.push({type:"missing-accessible-name",element:`<${K.outerHTML}>`,message:"Interactive element missing accessible name",impact:"critical",help:"Add text content, aria-label, or aria-labelledby",helpUrl:"https://web.dev/learn/accessibility/aria-html/"})}),X.querySelectorAll("input, select, textarea").forEach((K)=>{let z=K.getAttribute("id"),q=z&&X.querySelector(`label[for="${z}"]`),U=K.hasAttribute("aria-label")||K.hasAttribute("aria-labelledby"),W=K.closest("label")!==null;if(!q&&!U&&!W)Y.push({type:"input-missing-label",element:`<${K.outerHTML}>`,message:"Form input missing associated label",impact:"serious",help:"Associate a label with the input or use aria-label",helpUrl:"https://web.dev/learn/accessibility/forms/"})});let J=Array.from(X.querySelectorAll("h1, h2, h3, h4, h5, h6")),Q=0;for(let K of J){let z=Number.parseInt(K.tagName.charAt(1));if(Q>0&&z>Q+1)Y.push({type:"heading-skip",element:`<${K.outerHTML}>`,message:`Heading level skipped from h${Q} to h${z}`,impact:"moderate",help:"Maintain proper heading hierarchy without skipping levels",helpUrl:"https://web.dev/learn/accessibility/structure/"});Q=z}let G=X.querySelector("html");if($.includes("<html")&&G&&!G.hasAttribute("lang"))Y.push({type:"missing-lang",element:"<html>",message:"Document language not specified",impact:"serious",help:"Add lang attribute to the html element",helpUrl:"https://web.dev/learn/accessibility/more-html/#language"});if(X.querySelectorAll("a").forEach((K)=>{let z=K.textContent&&K.textContent.trim().length>0,q=K.hasAttribute("aria-label")||K.hasAttribute("aria-labelledby"),U=K.hasAttribute("title"),W=K.querySelector("img[alt]");if(!z&&!q&&!U&&!W)Y.push({type:"link-missing-text",element:`<${K.outerHTML}>`,message:"Link has no accessible text",impact:"serious",help:"Add text content, aria-label, or title to links",helpUrl:"https://web.dev/learn/accessibility/more-html/#links"})}),$.includes("<nav")||$.includes("<header")){if(!X.querySelector('a[href="#main"], a[href="#content"], .skip-link, [class*="skip"]')&&X.querySelectorAll("a").length>5)Y.push({type:"missing-skip-link",element:"<nav>",message:"Consider adding a skip navigation link",impact:"minor",help:"Add a skip link to allow keyboard users to bypass navigation",helpUrl:"https://web.dev/learn/accessibility/focus/#skip-links"})}if(X.querySelectorAll("table").forEach((K)=>{let z=K.querySelector("caption");if(!K.querySelector("th"))Y.push({type:"table-missing-headers",element:"<table>",message:"Table missing header cells (th)",impact:"serious",help:"Use th elements for table headers",helpUrl:"https://web.dev/learn/accessibility/more-html/#tables"});if(!z&&!K.hasAttribute("aria-label")&&!K.hasAttribute("aria-labelledby"))Y.push({type:"table-missing-caption",element:"<table>",message:"Table missing caption or accessible name",impact:"minor",help:"Add a caption element or aria-label to describe the table",helpUrl:"https://web.dev/learn/accessibility/more-html/#tables"})}),X.querySelectorAll('[style*="color"]').forEach((K)=>{let z=K.getAttribute("style")||"";if(z.includes("color:")&&!z.includes("background"))Y.push({type:"potential-contrast-issue",element:`<${K.tagName.toLowerCase()}>`,message:"Element has inline color style - verify contrast ratio",impact:"minor",help:"Ensure text has sufficient contrast ratio (4.5:1 for normal text)",helpUrl:"https://web.dev/learn/accessibility/color-contrast/"})}),X.querySelectorAll("video[autoplay], audio[autoplay]").forEach((K)=>{if(!K.hasAttribute("muted"))Y.push({type:"autoplay-audio",element:`<${K.tagName.toLowerCase()}>`,message:"Auto-playing media may disrupt users",impact:"moderate",help:"Add muted attribute or provide controls to stop playback",helpUrl:"https://web.dev/learn/accessibility/more-html/#multimedia"})}),X.querySelectorAll("[tabindex]").forEach((K)=>{if(Number.parseInt(K.getAttribute("tabindex")||"0")>0)Y.push({type:"positive-tabindex",element:`<${K.tagName.toLowerCase()}>`,message:"Positive tabindex disrupts natural tab order",impact:"moderate",help:'Use tabindex="0" or "-1" instead of positive values',helpUrl:"https://web.dev/learn/accessibility/focus/#tab-index"})}),X.querySelectorAll('[role="button"]').forEach((K)=>{if(!K.hasAttribute("tabindex"))Y.push({type:"button-not-focusable",element:`<${K.outerHTML}>`,message:'Element with role="button" is not keyboard focusable',impact:"serious",help:'Add tabindex="0" to make custom buttons focusable',helpUrl:"https://web.dev/learn/accessibility/focus/"})}),$.includes("<body")&&!X.querySelector('main, [role="main"]'))Y.push({type:"missing-main-landmark",element:"<body>",message:"Document missing main landmark region",impact:"moderate",help:"Add a main element to identify the primary content",helpUrl:"https://web.dev/learn/accessibility/structure/#landmarks"});X.querySelectorAll("iframe").forEach((K)=>{if(!K.hasAttribute("title")&&!K.hasAttribute("aria-label"))Y.push({type:"iframe-missing-title",element:"<iframe>",message:"Iframe missing title attribute",impact:"serious",help:"Add a title attribute to describe the iframe content",helpUrl:"https://web.dev/learn/accessibility/more-html/#frames"})})}catch(X){console.error(`Error checking accessibility in ${Z}:`,X)}return Y}async function wQ($,Z={}){let Y={},{recursive:X=!0,ignorePaths:J=[]}=Z,Q=K$.join($,X?"**/*.stx":"*.stx"),G=new Bun.Glob(Q),K=[];for await(let z of G.scan())if(!J.some((U)=>z.includes(K$.normalize(U))))K.push(z);for(let z of K)try{let q=await Bun.file(z).text();if(z.endsWith("good-a11y.stx"))continue;let U=await q9(q,z);if(U.length>0)Y[z]=U}catch(q){console.error(`Error scanning ${z}:`,q)}return Y}function U9($,Z={}){let Y={...AQ,...Z},X=[],J=$;if(Y.fixMissingAlt)J=J.replace(/<img([^>]*?)(?<!\balt\s*=\s*["'][^"']*["'])(\s*\/?>)/gi,(Q,G,K)=>{if(/\balt\s*=/i.test(G))return Q;let z=Q,q=`<img${G} alt=""${K}`;return X.push({type:"missing-alt",description:"Added empty alt attribute to image",before:z,after:q}),q});if(Y.fixMissingLabels)J=J.replace(/<button([^>]*)>\s*<\/button>/gi,(Q,G)=>{if(/\baria-label\s*=/i.test(G)||/\btitle\s*=/i.test(G))return Q;let K=Q,z=`<button${G} aria-label="Button"></button>`;return X.push({type:"missing-accessible-name",description:"Added aria-label to empty button",before:K,after:z}),z}),J=J.replace(/<a([^>]*)>\s*(<(?:i|span|svg)[^>]*(?:class="[^"]*icon[^"]*")?[^>]*>.*?<\/(?:i|span|svg)>)?\s*<\/a>/gi,(Q,G,K)=>{if(/\baria-label\s*=/i.test(G)||/\btitle\s*=/i.test(G))return Q;if(!K&&Q.replace(/<a[^>]*>|<\/a>/gi,"").trim())return Q;let z=Q,q=`<a${G} aria-label="Link">${K||""}</a>`;return X.push({type:"missing-accessible-name",description:"Added aria-label to link without text",before:z,after:q}),q});if(Y.fixMissingFormLabels)J=J.replace(/<(input|select|textarea)([^>]*)>/gi,(Q,G,K)=>{if(/\baria-label\s*=/i.test(K)||/\baria-labelledby\s*=/i.test(K))return Q;if(/\btype\s*=\s*["']hidden["']/i.test(K))return Q;let z=K.match(/\bname\s*=\s*["']([^"']+)["']/i),q=K.match(/\bid\s*=\s*["']([^"']+)["']/i),U=z?.[1]||q?.[1]||G,W=Q,_=`<${G}${K} aria-label="${U}">`;return X.push({type:"input-missing-label",description:`Added aria-label to ${G} element`,before:W,after:_}),_});if(Y.fixMissingLang)J=J.replace(/<html([^>]*)>/gi,(Q,G)=>{if(/\blang\s*=/i.test(G))return Q;let K=Q,z=`<html${G} lang="${Y.defaultLang}">`;return X.push({type:"missing-lang",description:`Added lang="${Y.defaultLang}" to html element`,before:K,after:z}),z});if(Y.fixPositiveTabindex)J=J.replace(/\btabindex\s*=\s*["']([1-9]\d*)["']/gi,(Q,G)=>{let K=Q,z='tabindex="0"';return X.push({type:"positive-tabindex",description:`Changed tabindex="${G}" to tabindex="0"`,before:K,after:'tabindex="0"'}),'tabindex="0"'});if(Y.fixButtonFocusable)J=J.replace(/<([a-z]+)(\s[^>]*role\s*=\s*["']button["'][^>]*)>/gi,(Q,G,K)=>{if(/\btabindex\s*=/i.test(K))return Q;if(G.toLowerCase()==="button")return Q;let z=Q,q=`<${G}${K} tabindex="0">`;return X.push({type:"button-not-focusable",description:'Added tabindex="0" to element with role="button"',before:z,after:q}),q});if(Y.fixTableHeaders)J=J.replace(/<th([^>]*)>/gi,(Q,G)=>{if(/\bscope\s*=/i.test(G))return Q;let K=Q,z=`<th${G} scope="col">`;return X.push({type:"table-missing-scope",description:'Added scope="col" to table header',before:K,after:z}),z});return{original:$,fixed:J,fixCount:X.length,fixes:X}}async function W9($,Z={},Y=!1){let X=await Bun.file($).text(),J=U9(X,Z);if(Y&&J.fixCount>0)await Bun.write($,J.fixed);return J}async function RQ($,Z={},Y={}){let X={},{recursive:J=!0,ignorePaths:Q=[],writeBack:G=!1,extensions:K=[".stx",".html",".htm"]}=Y,z=K.length===1?`*${K[0]}`:`*{${K.join(",")}}`,q=K$.join($,J?`**/${z}`:z),U=new Bun.Glob(q);for await(let W of U.scan()){if(Q.some((B)=>W.includes(K$.normalize(B))))continue;try{let B=await W9(W,Z,G);if(B.fixCount>0)X[W]=B}catch(B){console.error(`Error fixing ${W}:`,B)}}return X}function NQ(){return[z$,q$]}var AQ,z$,q$;var J7=C(()=>{AQ={fixMissingAlt:!0,fixMissingLabels:!0,fixMissingFormLabels:!0,fixTableHeaders:!0,fixMissingLang:!0,fixPositiveTabindex:!0,fixButtonFocusable:!0,defaultLang:"en"};z$={name:"a11y",handler:($,Z,Y,X)=>{if(!Z.length)return $;let J=Z[0].replace(/['"]/g,""),Q=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"}[J]||"Make this element accessible";return`<!-- a11y-hint: ${Q||K} -->${$}`},hasEndTag:!1},q$={name:"screenReader",handler:($)=>{return`<span class="sr-only">${$}</span>`},hasEndTag:!0}});function _9($){let Z=$.analytics;if(!Z?.enabled)return"";switch(Z.driver){case"fathom":return MQ(Z);case"google-analytics":return IQ(Z);case"plausible":return DQ(Z);case"self-hosted":return EQ(Z);case"custom":return kQ(Z);default:return""}}function MQ($){let Z=$.fathom;if(!Z?.siteId)return"";let Y=Z.scriptUrl||"https://cdn.usefathom.com/script.js",X=Z.defer!==!1?" defer":"",J=[`data-site="${P0(Z.siteId)}"`];if(Z.honorDnt)J.push('data-honor-dnt="true"');if(Z.spa)J.push('data-spa="auto"');if(Z.canonical)J.push(`data-canonical="${P0(Z.canonical)}"`);if(Z.auto===!1)J.push('data-auto="false"');return`
|
|
14
|
+
`.trim()}function z9(){return typeof globalThis.document<"u"&&typeof globalThis.document.createElement==="function"}function VQ($,Z){let Y=[],X=/<img\s+([^>]*)>/gi,J;J=X.exec($);while(J!==null){let L=J[1];if(!/\balt\s*=/i.test(L))Y.push({type:"missing-alt",element:J[0].substring(0,100),message:"Image missing alt attribute",impact:"serious",help:"Add alt text to images for screen readers",helpUrl:"https://web.dev/learn/accessibility/images/"});J=X.exec($)}let Q=/<button([^>]*)>\s*<\/button>/gi;J=Q.exec($);while(J!==null){let L=J[1];if(!/\baria-label\s*=/i.test(L)&&!/\btitle\s*=/i.test(L))Y.push({type:"missing-accessible-name",element:J[0].substring(0,100),message:"Empty button missing accessible name",impact:"critical",help:"Add text content, aria-label, or title",helpUrl:"https://web.dev/learn/accessibility/aria-html/"});J=Q.exec($)}let G=/<a\s+([^>]*)>\s*<\/a>/gi;J=G.exec($);while(J!==null){let L=J[1];if(!/\baria-label\s*=/i.test(L)&&!/\btitle\s*=/i.test(L))Y.push({type:"link-missing-text",element:J[0].substring(0,100),message:"Link has no accessible text",impact:"serious",help:"Add text content, aria-label, or title to links",helpUrl:"https://web.dev/learn/accessibility/more-html/#links"});J=G.exec($)}let K=/<(input|select|textarea)\s+([^>]*)>/gi;J=K.exec($);while(J!==null){let L=J[2];if(/\btype\s*=\s*["']hidden["']/i.test(L)){J=K.exec($);continue}let F=/\baria-label\s*=/i.test(L)||/\baria-labelledby\s*=/i.test(L),O=L.match(/\bid\s*=\s*["']([^"']+)["']/i);if(!F){let V=O&&new RegExp(`<label[^>]*\\bfor\\s*=\\s*["']${O[1]}["']`,"i").test($),w=J.index,A=$.substring(0,w),R=$.substring(w),N=(A.match(/<label\b/gi)||[]).length,M=(A.match(/<\/label>/gi)||[]).length,T=N>M;if(!V&&!T)Y.push({type:"input-missing-label",element:J[0].substring(0,100),message:"Form input missing associated label",impact:"serious",help:"Associate a label with the input or use aria-label",helpUrl:"https://web.dev/learn/accessibility/forms/"})}J=K.exec($)}let z=/<h([1-6])[^>]*>/gi,q=[];J=z.exec($);while(J!==null)q.push(Number.parseInt(J[1],10)),J=z.exec($);let U=0;for(let L of q){if(U>0&&L>U+1)Y.push({type:"heading-skip",element:`<h${L}>`,message:`Heading level skipped from h${U} to h${L}`,impact:"moderate",help:"Maintain proper heading hierarchy without skipping levels",helpUrl:"https://web.dev/learn/accessibility/structure/"});U=L}if(/<html\b/i.test($)&&!/<html[^>]*\slang\s*=/i.test($))Y.push({type:"missing-lang",element:"<html>",message:"Document language not specified",impact:"serious",help:"Add lang attribute to the html element",helpUrl:"https://web.dev/learn/accessibility/more-html/#language"});let W=/<table[^>]*>([\s\S]*?)<\/table>/gi;J=W.exec($);while(J!==null){let L=J[1];if(!/<th\b/i.test(L))Y.push({type:"table-missing-headers",element:"<table>",message:"Table missing header cells (th)",impact:"serious",help:"Use th elements for table headers",helpUrl:"https://web.dev/learn/accessibility/more-html/#tables"});J=W.exec($)}let _=/<(video|audio)[^>]*\sautoplay\s[^>]*>/gi;J=_.exec($);while(J!==null){if(!/\bmuted\b/i.test(J[0]))Y.push({type:"autoplay-audio",element:`<${J[1]}>`,message:"Auto-playing media may disrupt users",impact:"moderate",help:"Add muted attribute or provide controls to stop playback",helpUrl:"https://web.dev/learn/accessibility/more-html/#multimedia"});J=_.exec($)}let B=/\btabindex\s*=\s*["']([1-9]\d*)["']/gi;J=B.exec($);while(J!==null)Y.push({type:"positive-tabindex",element:`tabindex="${J[1]}"`,message:"Positive tabindex disrupts natural tab order",impact:"moderate",help:'Use tabindex="0" or "-1" instead of positive values',helpUrl:"https://web.dev/learn/accessibility/focus/#tab-index"}),J=B.exec($);let j=/<iframe\s+([^>]*)>/gi;J=j.exec($);while(J!==null){let L=J[1];if(!/\btitle\s*=/i.test(L)&&!/\baria-label\s*=/i.test(L))Y.push({type:"iframe-missing-title",element:"<iframe>",message:"Iframe missing title attribute",impact:"serious",help:"Add a title attribute to describe the iframe content",helpUrl:"https://web.dev/learn/accessibility/more-html/#frames"});J=j.exec($)}let H=/<([a-z]+)\s+([^>]*role\s*=\s*["']button["'][^>]*)>/gi;J=H.exec($);while(J!==null){let L=J[1].toLowerCase(),F=J[2];if(L!=="button"&&!/\btabindex\s*=/i.test(F))Y.push({type:"button-not-focusable",element:J[0].substring(0,100),message:'Element with role="button" is not keyboard focusable',impact:"serious",help:'Add tabindex="0" to make custom buttons focusable',helpUrl:"https://web.dev/learn/accessibility/focus/"});J=H.exec($)}return Y}async function q9($,Z){if(!z9())return VQ($,Z);let Y=[];try{let X=globalThis.document.createElement("div");X.innerHTML=$,X.querySelectorAll("img").forEach((K)=>{if(!K.hasAttribute("alt"))Y.push({type:"missing-alt",element:`<${K.outerHTML}>`,message:"Image missing alt attribute",impact:"serious",help:"Add alt text to images for screen readers",helpUrl:"https://web.dev/learn/accessibility/images/"})}),X.querySelectorAll('button, a, [role="button"]').forEach((K)=>{if(!(K.hasAttribute("aria-label")||K.hasAttribute("aria-labelledby")||K.textContent&&K.textContent.trim().length>0))Y.push({type:"missing-accessible-name",element:`<${K.outerHTML}>`,message:"Interactive element missing accessible name",impact:"critical",help:"Add text content, aria-label, or aria-labelledby",helpUrl:"https://web.dev/learn/accessibility/aria-html/"})}),X.querySelectorAll("input, select, textarea").forEach((K)=>{let z=K.getAttribute("id"),q=z&&X.querySelector(`label[for="${z}"]`),U=K.hasAttribute("aria-label")||K.hasAttribute("aria-labelledby"),W=K.closest("label")!==null;if(!q&&!U&&!W)Y.push({type:"input-missing-label",element:`<${K.outerHTML}>`,message:"Form input missing associated label",impact:"serious",help:"Associate a label with the input or use aria-label",helpUrl:"https://web.dev/learn/accessibility/forms/"})});let J=Array.from(X.querySelectorAll("h1, h2, h3, h4, h5, h6")),Q=0;for(let K of J){let z=Number.parseInt(K.tagName.charAt(1));if(Q>0&&z>Q+1)Y.push({type:"heading-skip",element:`<${K.outerHTML}>`,message:`Heading level skipped from h${Q} to h${z}`,impact:"moderate",help:"Maintain proper heading hierarchy without skipping levels",helpUrl:"https://web.dev/learn/accessibility/structure/"});Q=z}let G=X.querySelector("html");if($.includes("<html")&&G&&!G.hasAttribute("lang"))Y.push({type:"missing-lang",element:"<html>",message:"Document language not specified",impact:"serious",help:"Add lang attribute to the html element",helpUrl:"https://web.dev/learn/accessibility/more-html/#language"});if(X.querySelectorAll("a").forEach((K)=>{let z=K.textContent&&K.textContent.trim().length>0,q=K.hasAttribute("aria-label")||K.hasAttribute("aria-labelledby"),U=K.hasAttribute("title"),W=K.querySelector("img[alt]");if(!z&&!q&&!U&&!W)Y.push({type:"link-missing-text",element:`<${K.outerHTML}>`,message:"Link has no accessible text",impact:"serious",help:"Add text content, aria-label, or title to links",helpUrl:"https://web.dev/learn/accessibility/more-html/#links"})}),$.includes("<nav")||$.includes("<header")){if(!X.querySelector('a[href="#main"], a[href="#content"], .skip-link, [class*="skip"]')&&X.querySelectorAll("a").length>5)Y.push({type:"missing-skip-link",element:"<nav>",message:"Consider adding a skip navigation link",impact:"minor",help:"Add a skip link to allow keyboard users to bypass navigation",helpUrl:"https://web.dev/learn/accessibility/focus/#skip-links"})}if(X.querySelectorAll("table").forEach((K)=>{let z=K.querySelector("caption");if(!K.querySelector("th"))Y.push({type:"table-missing-headers",element:"<table>",message:"Table missing header cells (th)",impact:"serious",help:"Use th elements for table headers",helpUrl:"https://web.dev/learn/accessibility/more-html/#tables"});if(!z&&!K.hasAttribute("aria-label")&&!K.hasAttribute("aria-labelledby"))Y.push({type:"table-missing-caption",element:"<table>",message:"Table missing caption or accessible name",impact:"minor",help:"Add a caption element or aria-label to describe the table",helpUrl:"https://web.dev/learn/accessibility/more-html/#tables"})}),X.querySelectorAll('[style*="color"]').forEach((K)=>{let z=K.getAttribute("style")||"";if(z.includes("color:")&&!z.includes("background"))Y.push({type:"potential-contrast-issue",element:`<${K.tagName.toLowerCase()}>`,message:"Element has inline color style - verify contrast ratio",impact:"minor",help:"Ensure text has sufficient contrast ratio (4.5:1 for normal text)",helpUrl:"https://web.dev/learn/accessibility/color-contrast/"})}),X.querySelectorAll("video[autoplay], audio[autoplay]").forEach((K)=>{if(!K.hasAttribute("muted"))Y.push({type:"autoplay-audio",element:`<${K.tagName.toLowerCase()}>`,message:"Auto-playing media may disrupt users",impact:"moderate",help:"Add muted attribute or provide controls to stop playback",helpUrl:"https://web.dev/learn/accessibility/more-html/#multimedia"})}),X.querySelectorAll("[tabindex]").forEach((K)=>{if(Number.parseInt(K.getAttribute("tabindex")||"0")>0)Y.push({type:"positive-tabindex",element:`<${K.tagName.toLowerCase()}>`,message:"Positive tabindex disrupts natural tab order",impact:"moderate",help:'Use tabindex="0" or "-1" instead of positive values',helpUrl:"https://web.dev/learn/accessibility/focus/#tab-index"})}),X.querySelectorAll('[role="button"]').forEach((K)=>{if(!K.hasAttribute("tabindex"))Y.push({type:"button-not-focusable",element:`<${K.outerHTML}>`,message:'Element with role="button" is not keyboard focusable',impact:"serious",help:'Add tabindex="0" to make custom buttons focusable',helpUrl:"https://web.dev/learn/accessibility/focus/"})}),$.includes("<body")&&!X.querySelector('main, [role="main"]'))Y.push({type:"missing-main-landmark",element:"<body>",message:"Document missing main landmark region",impact:"moderate",help:"Add a main element to identify the primary content",helpUrl:"https://web.dev/learn/accessibility/structure/#landmarks"});X.querySelectorAll("iframe").forEach((K)=>{if(!K.hasAttribute("title")&&!K.hasAttribute("aria-label"))Y.push({type:"iframe-missing-title",element:"<iframe>",message:"Iframe missing title attribute",impact:"serious",help:"Add a title attribute to describe the iframe content",helpUrl:"https://web.dev/learn/accessibility/more-html/#frames"})})}catch(X){console.error(`Error checking accessibility in ${Z}:`,X)}return Y}async function wQ($,Z={}){let Y={},{recursive:X=!0,ignorePaths:J=[]}=Z,Q=K$.join($,X?"**/*.stx":"*.stx"),G=new Bun.Glob(Q),K=[];for await(let z of G.scan())if(!J.some((U)=>z.includes(K$.normalize(U))))K.push(z);for(let z of K)try{let q=await Bun.file(z).text();if(z.endsWith("good-a11y.stx"))continue;let U=await q9(q,z);if(U.length>0)Y[z]=U}catch(q){console.error(`Error scanning ${z}:`,q)}return Y}function U9($,Z={}){let Y={...AQ,...Z},X=[],J=$;if(Y.fixMissingAlt)J=J.replace(/<img([^>]*?)(?<!\balt\s*=\s*["'][^"']*["'])(\s*\/?>)/gi,(Q,G,K)=>{if(/\balt\s*=/i.test(G))return Q;let z=Q,q=`<img${G} alt=""${K}`;return X.push({type:"missing-alt",description:"Added empty alt attribute to image",before:z,after:q}),q});if(Y.fixMissingLabels)J=J.replace(/<button([^>]*)>\s*<\/button>/gi,(Q,G)=>{if(/\baria-label\s*=/i.test(G)||/\btitle\s*=/i.test(G))return Q;let K=Q,z=`<button${G} aria-label="Button"></button>`;return X.push({type:"missing-accessible-name",description:"Added aria-label to empty button",before:K,after:z}),z}),J=J.replace(/<a([^>]*)>\s*(<(?:i|span|svg)[^>]*(?:class="[^"]*icon[^"]*")?[^>]*>.*?<\/(?:i|span|svg)>)?\s*<\/a>/gi,(Q,G,K)=>{if(/\baria-label\s*=/i.test(G)||/\btitle\s*=/i.test(G))return Q;if(!K&&Q.replace(/<a[^>]*>|<\/a>/gi,"").trim())return Q;let z=Q,q=`<a${G} aria-label="Link">${K||""}</a>`;return X.push({type:"missing-accessible-name",description:"Added aria-label to link without text",before:z,after:q}),q});if(Y.fixMissingFormLabels)J=J.replace(/<(input|select|textarea)([^>]*)>/gi,(Q,G,K)=>{if(/\baria-label\s*=/i.test(K)||/\baria-labelledby\s*=/i.test(K))return Q;if(/\btype\s*=\s*["']hidden["']/i.test(K))return Q;let z=K.match(/\bname\s*=\s*["']([^"']+)["']/i),q=K.match(/\bid\s*=\s*["']([^"']+)["']/i),U=z?.[1]||q?.[1]||G,W=Q,_=`<${G}${K} aria-label="${U}">`;return X.push({type:"input-missing-label",description:`Added aria-label to ${G} element`,before:W,after:_}),_});if(Y.fixMissingLang)J=J.replace(/<html([^>]*)>/gi,(Q,G)=>{if(/\blang\s*=/i.test(G))return Q;let K=Q,z=`<html${G} lang="${Y.defaultLang}">`;return X.push({type:"missing-lang",description:`Added lang="${Y.defaultLang}" to html element`,before:K,after:z}),z});if(Y.fixPositiveTabindex)J=J.replace(/\btabindex\s*=\s*["']([1-9]\d*)["']/gi,(Q,G)=>{let K=Q,z='tabindex="0"';return X.push({type:"positive-tabindex",description:`Changed tabindex="${G}" to tabindex="0"`,before:K,after:'tabindex="0"'}),'tabindex="0"'});if(Y.fixButtonFocusable)J=J.replace(/<([a-z]+)(\s[^>]*role\s*=\s*["']button["'][^>]*)>/gi,(Q,G,K)=>{if(/\btabindex\s*=/i.test(K))return Q;if(G.toLowerCase()==="button")return Q;let z=Q,q=`<${G}${K} tabindex="0">`;return X.push({type:"button-not-focusable",description:'Added tabindex="0" to element with role="button"',before:z,after:q}),q});if(Y.fixTableHeaders)J=J.replace(/<th([^>]*)>/gi,(Q,G)=>{if(/\bscope\s*=/i.test(G))return Q;let K=Q,z=`<th${G} scope="col">`;return X.push({type:"table-missing-scope",description:'Added scope="col" to table header',before:K,after:z}),z});return{original:$,fixed:J,fixCount:X.length,fixes:X}}async function W9($,Z={},Y=!1){let X=await Bun.file($).text(),J=U9(X,Z);if(Y&&J.fixCount>0)await Bun.write($,J.fixed);return J}async function RQ($,Z={},Y={}){let X={},{recursive:J=!0,ignorePaths:Q=[],writeBack:G=!1,extensions:K=[".stx",".html",".htm"]}=Y,z=K.length===1?`*${K[0]}`:`*{${K.join(",")}}`,q=K$.join($,J?`**/${z}`:z),U=new Bun.Glob(q);for await(let W of U.scan()){if(Q.some((B)=>W.includes(K$.normalize(B))))continue;try{let B=await W9(W,Z,G);if(B.fixCount>0)X[W]=B}catch(B){console.error(`Error fixing ${W}:`,B)}}return X}function NQ(){return[z$,q$]}var AQ,z$,q$;var J7=P(()=>{AQ={fixMissingAlt:!0,fixMissingLabels:!0,fixMissingFormLabels:!0,fixTableHeaders:!0,fixMissingLang:!0,fixPositiveTabindex:!0,fixButtonFocusable:!0,defaultLang:"en"};z$={name:"a11y",handler:($,Z,Y,X)=>{if(!Z.length)return $;let J=Z[0].replace(/['"]/g,""),Q=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"}[J]||"Make this element accessible";return`<!-- a11y-hint: ${Q||K} -->${$}`},hasEndTag:!1},q$={name:"screenReader",handler:($)=>{return`<span class="sr-only">${$}</span>`},hasEndTag:!0}});function _9($){let Z=$.analytics;if(!Z?.enabled)return"";switch(Z.driver){case"fathom":return MQ(Z);case"google-analytics":return IQ(Z);case"plausible":return DQ(Z);case"self-hosted":return EQ(Z);case"custom":return kQ(Z);default:return""}}function MQ($){let Z=$.fathom;if(!Z?.siteId)return"";let Y=Z.scriptUrl||"https://cdn.usefathom.com/script.js",X=Z.defer!==!1?" defer":"",J=[`data-site="${P0(Z.siteId)}"`];if(Z.honorDnt)J.push('data-honor-dnt="true"');if(Z.spa)J.push('data-spa="auto"');if(Z.canonical)J.push(`data-canonical="${P0(Z.canonical)}"`);if(Z.auto===!1)J.push('data-auto="false"');return`
|
|
15
15
|
<!-- Fathom Analytics -->
|
|
16
16
|
<script src="${P0(Y)}" ${J.join(" ")}${X}></script>
|
|
17
17
|
`}function IQ($){let Z=$.googleAnalytics;if(!Z?.measurementId)return"";let Y=P0(Z.measurementId),X=Z.debug?`gtag('config', '${Y}', { 'debug_mode': true });`:"";return`
|
|
@@ -68,7 +68,7 @@ ${Z.inlineScript}
|
|
|
68
68
|
`;if(!Z.scriptUrl)return"";let Y=[];if(Z.scriptId)Y.push(`id="${P0(Z.scriptId)}"`);if(Z.attributes)for(let[J,Q]of Object.entries(Z.attributes))Y.push(`${P0(J)}="${P0(Q)}"`);return`
|
|
69
69
|
<!-- Custom Analytics -->
|
|
70
70
|
<script${Y.length>0?` ${Y.join(" ")}`:""} src="${P0(Z.scriptUrl)}" defer></script>
|
|
71
|
-
`}function B9($,Z){let Y=_9(Z);if(!Y)return $;if(!$.includes("</head>")){let X=$.lastIndexOf("</body>");if(X!==-1)return $.slice(0,X)+Y+$.slice(X);return $+Y}return $.replace("</head>",`${Y}</head>`)}function P0($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}var AH;var j9=
|
|
71
|
+
`}function B9($,Z){let Y=_9(Z);if(!Y)return $;if(!$.includes("</head>")){let X=$.lastIndexOf("</body>");if(X!==-1)return $.slice(0,X)+Y+$.slice(X);return $+Y}return $.replace("</head>",`${Y}</head>`)}function P0($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}var AH;var j9=P(()=>{AH={name:"analytics",hasEndTag:!1,handler:async($,Z,Y,X)=>{let J=Y.__stx_config||{};return _9(J)}}});function CQ($,Z={}){let{duration:Y,delay:X,ease:J,direction:Q,custom:G}={...Y1,...Z};if($==="custom"&&G)return G;switch($){case"fade":return`${Q==="in"?"opacity: 0; animation: fadeIn var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":Q==="out"?"opacity: 1; animation: fadeOut var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":"opacity: 1; transition: opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);"}
|
|
72
72
|
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
|
|
73
73
|
@keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } }`;case"slide":return`${Q==="in"?"transform: translateY(20px); opacity: 0; animation: slideIn var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":Q==="out"?"transform: translateY(0); opacity: 1; animation: slideOut var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":"transform: translateY(0); opacity: 1; transition: transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms), opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);"}
|
|
74
74
|
@keyframes slideIn { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
|
|
@@ -439,7 +439,7 @@ else {
|
|
|
439
439
|
);
|
|
440
440
|
}
|
|
441
441
|
};
|
|
442
|
-
</script>`}function DH($){let Z=$.customDirectives||[];return Z.push(Q7),Z.push(K7),Z.push(z7),Z.push(G7),Z.push(dQ),Z.push(uQ),Z.push(pQ),{...$,customDirectives:Z}}var bQ,SQ,yQ,Y1,Q7,G7,K7,z7,H9,dQ,uQ,pQ;var q7=
|
|
442
|
+
</script>`}function DH($){let Z=$.customDirectives||[];return Z.push(Q7),Z.push(K7),Z.push(z7),Z.push(G7),Z.push(dQ),Z.push(uQ),Z.push(pQ),{...$,customDirectives:Z}}var bQ,SQ,yQ,Y1,Q7,G7,K7,z7,H9,dQ,uQ,pQ;var q7=P(()=>{((G)=>{G.Fade="fade";G.Slide="slide";G.Scale="scale";G.Flip="flip";G.Rotate="rotate";G.Custom="custom"})(bQ||={});((X)=>{X.In="in";X.Out="out";X.Both="both"})(SQ||={});((G)=>{G.Linear="linear";G.Ease="ease";G.EaseIn="ease-in";G.EaseOut="ease-out";G.EaseInOut="ease-in-out";G.Spring="spring"})(yQ||={});Y1={duration:300,delay:0,ease:"ease",direction:"both"};Q7={name:"transition",handler:($,Z,Y,X)=>{if(Z.length<1)return`<div class="stx-error">@transition directive requires at least a transition type</div>${$}`;let J=Z[0],Q=Z.length>1?Number.parseInt(Z[1],10)||Y1.duration:Y1.duration,G=Z.length>2?Z[2]||Y1.ease:Y1.ease,K=Z.length>3?Number.parseInt(Z[3],10)||Y1.delay:Y1.delay,z=Z.length>4?Z[4]||Y1.direction:Y1.direction,q=`stx-transition-${Math.random().toString(36).substr(2,9)}`,U=CQ(J,{duration:Q,delay:K,ease:G,direction:z}),W="stx-transition",_="";if(J==="fade")_="stx-fade";else if(J==="slide")_="stx-slide";else if(J==="scale")_="stx-scale";else if(J==="flip")_="stx-flip";else if(J==="rotate")_="stx-rotate";return`<div id="${q}" class="${W} ${_} ${z==="out"?"stx-out":""}"
|
|
443
443
|
style="--stx-transition-duration: ${Q}ms; --stx-transition-ease: ${G}; --stx-transition-delay: ${K}ms;">${$}</div>`},hasEndTag:!0,description:"Applies transition effects to an element"},G7={name:"scrollAnimate",handler:($,Z,Y,X)=>{if(Z.length<1)return`<div class="stx-error">@scrollAnimate directive requires at least an animation type</div>${$}`;let J=Z[0],Q=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,z=Z.length>4?Number.parseInt(Z[4],10)||0:0,q=`stx-scroll-${Math.random().toString(36).substr(2,9)}`,U=`--stx-transition-duration: ${Q}ms; --stx-transition-ease: ${G}; --stx-transition-delay: ${z}ms; will-change: opacity, transform;`,W="stx-transition stx-observe stx-out";if(J==="fade")W+=" stx-fade";else if(J==="slide-up"||J==="slide")W+=" stx-from-bottom";else if(J==="slide-down")W+=" stx-from-top";else if(J==="slide-left")W+=" stx-from-right";else if(J==="slide-right")W+=" stx-from-left";else if(J==="scale")W+=" stx-scale";else if(J.includes("-"))W+=` stx-${J}`;else W+=` stx-${J}`;return`<div id="${q}" class="${W}" style="${U}" data-threshold="${K}">${$}</div>`},hasEndTag:!0,description:"Applies animations that trigger when scrolled into view"},K7={name:"animationGroup",handler:($,Z,Y,X)=>{if(Z.length<2)return`<div class="stx-error">@animationGroup directive requires a group name and at least one element selector</div>${$}`;let J=Z[0],Q=Z.slice(1).map((q)=>q.startsWith("#")||q.startsWith(".")?q:`#${q}`),G=Y.staggerDelay||50,K=Y.sequence||!0,z=gQ(J,Q,{staggerDelay:G,sequence:K});return`${$}
|
|
444
444
|
${z}`},hasEndTag:!1,description:"Coordinates multiple animations together as a group"},z7={name:"motion",handler:($,Z,Y,X)=>{let J=Z.length>0?Z[0].toLowerCase()==="true":!0,Q=PQ();return`<div data-animate="${J?"auto":"true"}">${$}</div>${Q}`},hasEndTag:!0,description:"Controls motion and animation preferences"};H9={default:{stiffness:100,damping:10,mass:1},gentle:{stiffness:120,damping:14,mass:1},wobbly:{stiffness:180,damping:12,mass:1},stiff:{stiffness:210,damping:20,mass:1},slow:{stiffness:280,damping:60,mass:1},molasses:{stiffness:280,damping:120,mass:1}};dQ={name:"keyframe",hasEndTag:!0,handler:($,Z,Y,X)=>{if(Z.length<1)return`<div class="stx-error">@keyframe requires an animation name</div>${$}`;let J=Z[0].replace(/['"`]/g,""),Q=Z[1]?Number.parseInt(Z[1],10):1000,G=Z[2]?.replace(/['"`]/g,"")||"ease",K=Z[3]||"1",z=Z[4]?.replace(/['"`]/g,"")||"normal",q=Z[5]?.replace(/['"`]/g,"")||"forwards",U=`stx-keyframe-${Math.random().toString(36).slice(2,9)}`,W=`
|
|
445
445
|
animation-name: ${J};
|
|
@@ -463,7 +463,7 @@ ${z}`},hasEndTag:!1,description:"Coordinates multiple animations together as a g
|
|
|
463
463
|
--stx-spring-stiffness: ${Q.stiffness};
|
|
464
464
|
--stx-spring-damping: ${Q.damping};
|
|
465
465
|
--stx-spring-mass: ${Q.mass};
|
|
466
|
-
`.trim().replace(/\s+/g," ");return`<div id="${K}" class="stx-spring" style="${q}">${$}</div>`},description:"Applies spring physics animations to an element"}});var L9={};l(L9,{rewriteImagesWithSiblings:()=>nQ});import X1 from"path";async function nQ($,Z){let Y=Z.formats??iQ;if(!Z.publicDir)return $;let X=rQ($),J=[],Q=/<img\b[^>]*?>/gi,G=[],K;while((K=Q.exec($))!==null){let W=K[0],_=W.match(/\bsrc=["']([^"']+)["']/i);if(!_)continue;if(aQ(K.index,X))continue;G.push({idx:K.index,length:W.length,src:_[1],raw:W})}if(G.length===0)return $;let z=await Promise.all(G.map(async(W)=>{let _=await oQ(W.src,Z.publicDir,Y);return{match:W,sources:_}}));for(let{match:W,sources:_}of z){if(_.length===0)continue;let j=`<picture>${_.map((H)=>`<source type="${H.mime}" srcset="${tQ(H.url)}">`).join("")}${W.raw}</picture>`;J.push({start:W.idx,end:W.idx+W.length,replacement:j})}if(J.length===0)return $;let q="",U=0;for(let W of J)q+=$.slice(U,W.start),q+=W.replacement,U=W.end;return q+=$.slice(U),q}async function oQ($,Z,Y){if(!sQ($))return[];let X=X1.extname($).toLowerCase();if(!cQ.has(X))return[];if(!$.startsWith("/"))return[];let J=X1.join(Z,$.slice(1)),Q=X1.dirname(J),G=X1.basename(J,X),K=X1.resolve(Q),z=X1.resolve(Z);if(!K.startsWith(z))return[];let q=X1.posix.dirname($),U=Y.map(async(_)=>{let B=X1.join(Q,`${G}${_.ext}`);if(!await Bun.file(B).exists())return null;return{url:X1.posix.join(q,`${G}${_.ext}`),mime:_.mime}});return(await Promise.all(U)).filter((_)=>_!==null)}function sQ($){if(!$)return!1;if($.startsWith("http://")||$.startsWith("https://"))return!1;if($.startsWith("//"))return!1;if($.startsWith("data:"))return!1;return!0}function rQ($){let Z=[],Y=/<picture\b[^>]*>[\s\S]*?<\/picture>/gi,X;while((X=Y.exec($))!==null)Z.push([X.index,X.index+X[0].length]);return Z}function aQ($,Z){for(let[Y,X]of Z)if($>=Y&&$<X)return!0;return!1}function tQ($){return $.replace(/&/g,"&").replace(/"/g,""")}var cQ,iQ;var F9=
|
|
466
|
+
`.trim().replace(/\s+/g," ");return`<div id="${K}" class="stx-spring" style="${q}">${$}</div>`},description:"Applies spring physics animations to an element"}});var L9={};l(L9,{rewriteImagesWithSiblings:()=>nQ});import X1 from"path";async function nQ($,Z){let Y=Z.formats??iQ;if(!Z.publicDir)return $;let X=rQ($),J=[],Q=/<img\b[^>]*?>/gi,G=[],K;while((K=Q.exec($))!==null){let W=K[0],_=W.match(/\bsrc=["']([^"']+)["']/i);if(!_)continue;if(aQ(K.index,X))continue;G.push({idx:K.index,length:W.length,src:_[1],raw:W})}if(G.length===0)return $;let z=await Promise.all(G.map(async(W)=>{let _=await oQ(W.src,Z.publicDir,Y);return{match:W,sources:_}}));for(let{match:W,sources:_}of z){if(_.length===0)continue;let j=`<picture>${_.map((H)=>`<source type="${H.mime}" srcset="${tQ(H.url)}">`).join("")}${W.raw}</picture>`;J.push({start:W.idx,end:W.idx+W.length,replacement:j})}if(J.length===0)return $;let q="",U=0;for(let W of J)q+=$.slice(U,W.start),q+=W.replacement,U=W.end;return q+=$.slice(U),q}async function oQ($,Z,Y){if(!sQ($))return[];let X=X1.extname($).toLowerCase();if(!cQ.has(X))return[];if(!$.startsWith("/"))return[];let J=X1.join(Z,$.slice(1)),Q=X1.dirname(J),G=X1.basename(J,X),K=X1.resolve(Q),z=X1.resolve(Z);if(!K.startsWith(z))return[];let q=X1.posix.dirname($),U=Y.map(async(_)=>{let B=X1.join(Q,`${G}${_.ext}`);if(!await Bun.file(B).exists())return null;return{url:X1.posix.join(q,`${G}${_.ext}`),mime:_.mime}});return(await Promise.all(U)).filter((_)=>_!==null)}function sQ($){if(!$)return!1;if($.startsWith("http://")||$.startsWith("https://"))return!1;if($.startsWith("//"))return!1;if($.startsWith("data:"))return!1;return!0}function rQ($){let Z=[],Y=/<picture\b[^>]*>[\s\S]*?<\/picture>/gi,X;while((X=Y.exec($))!==null)Z.push([X.index,X.index+X[0].length]);return Z}function aQ($,Z){for(let[Y,X]of Z)if($>=Y&&$<X)return!0;return!1}function tQ($){return $.replace(/&/g,"&").replace(/"/g,""")}var cQ,iQ;var F9=P(()=>{cQ=new Set([".jpg",".jpeg",".png",".gif"]),iQ=[{ext:".avif",mime:"image/avif"},{ext:".webp",mime:"image/webp"}]});function eQ($){if(U$.set($.name,$),$.client)U7.set($.name,$.client)}function bH($){return U$.get($)}function SH(){return Array.from(U$.values())}function yH($){return U7.delete($),U$.delete($)}function j0($){return eQ($),{name:$.name,hasEndTag:$.hasEndTag??!0,description:$.description,handler:async(Y,X,J,Q)=>{let G=$G(X,$.defaults);if($.validate){let z=$.validate(G);if(z!==!0){let q=typeof z==="string"?z:`Invalid parameters for @${$.name}`;throw Error(q)}}let K=Y;if($.transform)K=await $.transform(Y,G,J,Q);if($.clientScript){let z=$.clientScript(G);K+=`<script>${z}</script>`}if($.css){let z=$.css(G);K+=`<style>${z}</style>`}return K}}}function CH($,Z){let Y=typeof Z==="function"?{mounted:Z}:Z;return U7.set($,Y),Y}function $G($,Z){let Y={...Z};for(let X of $){let J=X.indexOf(":"),Q=X.indexOf("="),G=J>=0&&(Q<0||J<Q)?J:Q;if(G>=0){let K=X.slice(0,G).trim(),z=X.slice(G+1).trim();if(z==="true")z=!0;else if(z==="false")z=!1;else if(z==="null")z=null;else if(!Number.isNaN(Number(z)))z=Number(z);else if(typeof z==="string"&&z.startsWith("{"))try{z=JSON.parse(z)}catch{}Y[K]=z}else{let K=Object.keys(Y).filter((z)=>!Z||!(z in Z)).length;Y[K===0?"value":`arg${K}`]=X}}return Y}function PH(){return[j0({name:"uppercase",description:"Convert content to uppercase",transform:($)=>$.toUpperCase()}),j0({name:"lowercase",description:"Convert content to lowercase",transform:($)=>$.toLowerCase()}),j0({name:"capitalize",description:"Capitalize first letter of content",transform:($)=>$.charAt(0).toUpperCase()+$.slice(1)}),j0({name:"trim",description:"Remove leading and trailing whitespace",transform:($)=>$.trim()}),j0({name:"truncate",description:"Truncate content to specified length",defaults:{length:100,suffix:"..."},transform:($,{length:Z,suffix:Y})=>$.length>Z?$.slice(0,Z)+Y:$}),j0({name:"highlight",description:"Highlight content with background color",defaults:{color:"yellow"},transform:($,{color:Z})=>`<mark style="background-color: ${Z}; padding: 0.1em 0.2em; border-radius: 0.2em;">${$}</mark>`}),j0({name:"badge",description:"Create a badge/tag",defaults:{variant:"default",color:""},transform:($,{variant:Z,color:Y})=>{let X={default:"background: #e5e7eb; color: #374151;",primary:"background: #3b82f6; color: white;",success:"background: #10b981; color: white;",warning:"background: #f59e0b; color: white;",danger:"background: #ef4444; color: white;",info:"background: #06b6d4; color: white;"};return`<span style="${Y?`background: ${Y}; color: white;`:X[Z]||X.default} padding: 0.25em 0.5em; border-radius: 9999px; font-size: 0.875em; font-weight: 500;">${$}</span>`}}),j0({name:"code",description:"Style content as inline code",transform:($)=>`<code style="background: #f3f4f6; padding: 0.2em 0.4em; border-radius: 0.25em; font-family: ui-monospace, monospace; font-size: 0.875em;">${$}</code>`}),j0({name:"tooltip",description:"Add a tooltip to content",defaults:{text:"",position:"top"},hasEndTag:!0,transform:($,{text:Z,position:Y})=>`<span class="stx-tooltip" data-tooltip="${Z}" data-tooltip-position="${Y}" style="position: relative; cursor: help;">${$}</span>`,css:()=>`
|
|
467
467
|
.stx-tooltip::after {
|
|
468
468
|
content: attr(data-tooltip);
|
|
469
469
|
position: absolute;
|
|
@@ -607,13 +607,13 @@ ${z}`},hasEndTag:!1,description:"Coordinates multiple animations together as a g
|
|
|
607
607
|
|
|
608
608
|
console.log('[stx] Directive runtime initialized');
|
|
609
609
|
})();
|
|
610
|
-
`}function xH($){let Z=/v-(\w+)(?::(\w+))?(?:\.([\w.]+))?="([^"]*)"/g;return $.replace(Z,(Y,X,J,Q,G)=>{let z=(Q?Q.split("."):[]).reduce((q,U)=>{return q[U]=!0,q},{});return`data-stx-directive="${X}:${G}" data-stx-directive-arg="${J||""}" data-stx-directive-modifiers='${JSON.stringify(z)}'`})}var U$,U7;var W7=
|
|
610
|
+
`}function xH($){let Z=/v-(\w+)(?::(\w+))?(?:\.([\w.]+))?="([^"]*)"/g;return $.replace(Z,(Y,X,J,Q,G)=>{let z=(Q?Q.split("."):[]).reduce((q,U)=>{return q[U]=!0,q},{});return`data-stx-directive="${X}:${G}" data-stx-directive-arg="${J||""}" data-stx-directive-modifiers='${JSON.stringify(z)}'`})}var U$,U7;var W7=P(()=>{U$=new Map,U7=new Map});function J1($){let Z=/import\s*\{([^}]+)\}\s*from\s*['"](@stores|stx\/stores)['"]\s*;?\n?/g;$=$.replace(Z,(X,J)=>{return`const { ${J.split(",").map((G)=>G.trim()).filter(Boolean).join(", ")} } = window.__STX_STORES__
|
|
611
611
|
`});let Y=/import\s*\{([^}]+)\}\s*from\s*['"]@composables['"]\s*;?\n?/g;return $=$.replace(Y,(X,J)=>{return`const { ${J.split(",").map((G)=>G.trim()).filter(Boolean).join(", ")} } = window.__composables
|
|
612
612
|
`}),$}import V9 from"process";function o0($="STX_PUBLIC_"){let Z={},Y={};for(let[X,J]of Object.entries(V9.env)){if(!X.startsWith($)||J===void 0)continue;Z[`import.meta.env.${X}`]=JSON.stringify(J),Y[X]=J}return Z["import.meta.env"]=JSON.stringify(Y),Z}function dH($="STX_PUBLIC_"){let Z={};for(let[Y,X]of Object.entries(V9.env))if(Y.startsWith($)&&X!==void 0)Z[Y]=X;return Z}var s1=()=>{};var W$={};l(W$,{hasUserImports:()=>ZG,bundleClientScript:()=>XG});import W0 from"path";import g0 from"fs";function ZG($){let Z=/^\s*import\s+(?!type\s)/gm;if(!$.match(Z))return!1;let X=/^\s*import\s+(?!type\s).*?\s+from\s+['"]([^'"]+)['"]/gm,J;while((J=X.exec($))!==null){let G=J[1];if(!w9.some((z)=>z.test(G)))return console.log("[stx:bundler] detected user import:",G),!0}let Q=/^\s*import\s+['"]([^'"]+)['"]/gm;while((J=Q.exec($))!==null){let G=J[1];if(/\.css(?:\?.*)?$/.test(G))continue;if(!w9.some((z)=>z.test(G)))return console.log("[stx:bundler] detected side-effect import:",G),!0}return!1}function YG($,Z,Y,X){let J=(Q,G)=>{let K=Q===Y?Z:W0.dirname(Q),z=W0.resolve(K,G),q=[z,`${z}.ts`,`${z}.tsx`,`${z}.js`,`${z}.mjs`,`${z}.jsx`,W0.join(z,"index.ts"),W0.join(z,"index.tsx"),W0.join(z,"index.js"),W0.join(z,"index.mjs")];for(let U of q)try{if(g0.existsSync(U)&&g0.statSync(U,{throwIfNoEntry:!1})?.isFile())return U}catch{}return z};return{name:"stx-client-bundle",setup(Q){Q.onResolve({filter:/^(stx|@stacksjs\/stx|@stacksjs\/browser)$/},(G)=>({path:G.path,external:!0})),Q.onResolve({filter:/^(@stores|@composables|stx\/stores)$/},(G)=>({path:G.path,external:!0})),Q.onResolve({filter:/^\.\.?\//},(G)=>{let K=J(G.importer,G.path);return X.add(K),{path:K}}),Q.onResolve({filter:/^[@~]\//},(G)=>{let K=W0.resolve($,G.path.slice(2)),z=[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 q of z)if(g0.existsSync(q)&&g0.statSync(q,{throwIfNoEntry:!1})?.isFile())return console.log(`[stx:bundler] resolved ${G.path[0]}/ import:`,G.path,"\u2192",q),X.add(q),{path:q};return console.warn(`[stx:bundler] could not resolve ${G.path[0]}/ import:`,G.path),{path:K}})}}}async function XG($,Z,Y={}){let X=Y.projectRoot||process.cwd(),J=Y.minify??!1,Q=Y.cacheDir||W0.join(X,".stx","bundle-cache"),G=new Bun.CryptoHasher("md5");G.update($+Z);let K=G.digest("hex").slice(0,12),z=W0.join(Q,`${K}.js`),q=W0.join(Q,`${K}.deps.json`),U=Bun.file(z);if(await U.exists()){let A=Bun.file(q),R=!0;if(await A.exists())try{let N=JSON.parse(await A.text());for(let M of N.files)try{if(g0.statSync(M.path).mtimeMs!==M.mtimeMs){R=!1;break}}catch{R=!1;break}}catch{R=!1}if(R)return console.log("[stx:bundler] cache hit:",K),await U.text();console.log("[stx:bundler] cache invalidated by dep change:",K)}let W=W0.join(X,".stx","bundle-tmp"),_=W0.join(W,`${K}.ts`),B=W0.join(W,"out",K);g0.mkdirSync(W,{recursive:!0}),g0.mkdirSync(B,{recursive:!0});let j=W0.dirname(Z),H=[],L=/^(export\s+)?(?:const|let|var)\s+(?:\{([^}]+)\}|(\w+))/gm,F=/^(export\s+)?(?:async\s+)?function\s+(\w+)/gm,O;while((O=L.exec($))!==null){if(O[1])continue;if(O[2])O[2].split(",").forEach((A)=>{let R=A.split(":")[0].trim();if(R)H.push(R)});else if(O[3])H.push(O[3])}while((O=F.exec($))!==null){if(O[1])continue;H.push(O[2])}let V=H.length>0?`
|
|
613
613
|
export { ${H.join(", ")} }`:"";await Bun.write(_,$+V),console.log("[stx:bundler] bundling:",K,"from:",W0.basename(Z));let w=new Set;try{let A=await Bun.build({entrypoints:[_],outdir:B,target:"browser",format:"esm",minify:J,plugins:[YG(X,j,_,w)],define:{"process.env.NODE_ENV":J?'"production"':'"development"',...o0()},root:X});if(!A.success){let T=A.logs.filter((I)=>I.level==="error").map((I)=>I.message).join(", ");return console.warn("[stx:bundler] build failed:",T),$}let R="";for(let T of A.outputs){R=await T.text();break}let N=[];for(let T of R.matchAll(/^\s*export\s*\{([^}]*)\}\s*;?\s*$/gm))for(let I of T[1].split(",")){let D=I.trim().match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);if(D&&D[1]!==D[2])N.push([D[2],D[1]])}if(R=R.replace(/^\s*export\s*\{[^}]*\}\s*;?\s*$/gm,"").replace(/^\s*export\s+default\s+.*$/gm,"").trim(),N.length>0){let T=N.map(([I,D])=>`${JSON.stringify(I)}: ${D}`).join(", ");R+=`
|
|
614
614
|
var __stxScopeRenames = { ${T} };`}console.log("[stx:bundler] bundled:",K,"output:",R.length,"bytes"),g0.mkdirSync(Q,{recursive:!0}),await Bun.write(z,R);let M=Array.from(w).map((T)=>{try{return{path:T,mtimeMs:g0.statSync(T).mtimeMs}}catch{return null}}).filter((T)=>T!==null);return await Bun.write(q,JSON.stringify({files:M})),R}catch(A){let R=A instanceof Error?A.message:String(A),N=A?.errors,M=Array.isArray(N)&&N.length>0?`
|
|
615
615
|
${N.map((T)=>`- ${T?.message??T}`).join(`
|
|
616
|
-
`)}`:"";return console.warn(`[stx:bundler] error: ${R}${M}`),$}finally{try{g0.rmSync(_,{force:!0}),g0.rmSync(B,{recursive:!0,force:!0})}catch{}}}var w9;var _$=
|
|
616
|
+
`)}`:"";return console.warn(`[stx:bundler] error: ${R}${M}`),$}finally{try{g0.rmSync(_,{force:!0}),g0.rmSync(B,{recursive:!0,force:!0})}catch{}}}var w9;var _$=P(()=>{s1();w9=[/^stx$/,/^@stacksjs\/stx$/,/^@stacksjs\/browser$/,/^@stores$/,/^stx\/stores$/,/^@composables$/]});function cH($){r1={...r1,...$}}function iH(){r1={...N9}}function nH(){return{...r1}}function GG($){let Z="",Y=null,X=!1;for(let J=0;J<$.length;J++){let Q=$[J];if(X){X=!1;continue}if(Q==="\\"&&Y){X=!0;continue}if(Y){if(Y==="`"&&Q==="$"&&J+1<$.length&&$[J+1]==="{"){let G=1;J+=2;while(J<$.length&&G>0){if($[J]==="{")G++;else if($[J]==="}")G--;if(G>0)Z+=$[J],J++}continue}if(Q===Y)Y=null;continue}if(Q==='"'||Q==="'"||Q==="`"){Y=Q;continue}Z+=Q}return Z}function KG($,Z){let Y=/[$A-Z_a-z][$\w]*/g,X;while((X=Y.exec($))!==null){let J=X[0],Q=$[X.index-1];if(JG.has(J))throw Error(`Potentially unsafe expression (matched /\\b${J}\\b/; identifier ${J}): ${Z}`);if(Q==="."&&T9.has(J))throw Error(`Potentially unsafe expression (matched /.${J}/; property ${J}): ${Z}`)}}function zG($){let Z=/\[\s*(['"])(.*?)\1\s*\]/g,Y;while((Y=Z.exec($))!==null){let X=Y[2];if(!T9.has(X))continue;let J=$.slice(0,Y.index).match(/\S(?=\s*$)/)?.[0],Q=$.slice(Y.index+Y[0].length).match(/^\s*(\S)/)?.[1];if(!((J==="{"||J===",")&&Q===":"))throw Error(`Potentially unsafe expression (bracket key ${Y[2]}): ${$}`)}}function N5($){let Z=$.trim(),Y=GG(Z);KG(Y,Z),zG(Z);for(let X of B7)if(X.test(Y))throw Error(`Potentially unsafe expression (matched /${X.source}/): ${Z}`);if(!r1.allowBracketNotation&&QG.test(Z))throw Error(`Bracket notation with strings not allowed: ${Z}. Enable with configureSafeEvaluator({ allowBracketNotation: true })`);return Z}function M9($){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[Y,X]of Object.entries($)){if(Y.startsWith("__")||B7.some((J)=>J.test(Y)))continue;if(X&&typeof X==="object"&&!Array.isArray(X))Z[Y]=_7(X);else Z[Y]=X}return Z}function _7($,Z=0){if(Z>=r1.maxSanitizeDepth)return"[Object too deep]";if($===null||typeof $!=="object")return $;if(Array.isArray($))return $.map((X)=>_7(X,Z+1));if($ instanceof Date||$ instanceof RegExp||$ instanceof Map||$ instanceof Set||$ instanceof Error)return $;let Y={};for(let[X,J]of Object.entries($)){if(X.startsWith("__")||X==="constructor"||X==="prototype")continue;if(J&&typeof J==="object")Y[X]=_7(J,Z+1);else Y[X]=J}return Y}function e($,Z){try{let Y=M9(Z),X=Object.keys(Y),J=Object.values(Y);return Z0($,X)(...J)}catch{return}}function $0($){try{return N5($),!0}catch{return!1}}function oH($){try{return N5($),null}catch(Z){return Z instanceof Error?Z.message:String(Z)}}function sH($,Z){try{let Y=e($,Z);return Boolean(Y)}catch{return!1}}function rH($,Z){try{let Y=e($,Z);if(Array.isArray(Y))return Y;if(Y&&typeof Y==="object"&&"length"in Y){let X=Y.length;if(typeof X==="number"&&Number.isFinite(X)&&X>=0&&Number.isInteger(X))return Array.from(Y)}return[]}catch{return[]}}function H0($,Z){try{let Y=e($,Z);if(Y&&typeof Y==="object"&&!Array.isArray(Y))return Y;return{}}catch{return{}}}function Z0($,Z){let Y=N5($),X=/^[A-Za-z_$][\w$]*$/,J=[],Q=[];for(let q=0;q<Z.length;q++){let U=Z[q];if(!X.test(U))continue;if(I9.has(U))continue;J.push(q),Q.push(U)}let G=(q)=>Function(...Q,...q,`
|
|
617
617
|
'use strict';
|
|
618
618
|
try {
|
|
619
619
|
return ${Y};
|
|
@@ -655,7 +655,7 @@ catch (e) {
|
|
|
655
655
|
}
|
|
656
656
|
return result;
|
|
657
657
|
// eslint-disable-next-line pickier/no-unused-vars
|
|
658
|
-
`)}var N9,r1,B7,JG,T9,QG,I9,R9=65536;var w0=C(()=>{N9={maxSanitizeDepth:10,allowBracketNotation:!1},r1={...N9};B7=[/\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/],JG=new Set(["eval","Function","setTimeout","setInterval","setImmediate","process","require","import","exports","module","window","document","global","globalThis","constructor","prototype","Reflect","Proxy","Symbol","WeakMap","WeakSet","WeakRef","FinalizationRegistry","Generator","AsyncGenerator","delete","this"]),T9=new Set(["__proto__","constructor","prototype"]),QG=/[\w)\]]\s*\[\s*['"]/;I9=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 $O(){D9=0,B$.clear()}function j$($,Z){let Y=D9++,X=`<!--__STX_${$.toUpperCase()}_${Y}__-->`;return B$.set(X,{type:$,expression:Z}),X}function ZO(){let $={};for(let[Z,Y]of B$)$[Z]={type:Y.type,expression:Y.expression};return $}function YO($){let Z={},Y=/<!--__STX_(EXPR|COND|RAW)_(\d+)__-->/g,X;while((X=Y.exec($))!==null){let J=X[0],Q=X[1].toLowerCase(),G=B$.get(J);Z[J]={type:Q,expression:G?.expression||""}}return Z}function XO($,Z){let Y=$;for(let[X,J]of Z)Y=Y.split(X).join(J);return Y}function JO($){return $.includes("<!--__STX_")}var D9=0,B$;var E9=C(()=>{B$=new Map});function k9($,Z,Y,X){Y.lastIndex=Z;let J=Y.exec($);if(!J||J.index!==Z)return-1;X.lastIndex=Y.lastIndex;let Q=X.exec($);if(!Q)return-1;return Q.index+Q[0].length}function H$($,Z){return k9($,Z,qG,UG)}function b9($,Z){return k9($,Z,WG,_G)}function S9($,Z){if(!$.startsWith("<!--",Z))return-1;let Y=$.indexOf("-->",Z+4);if(Y===-1)return-1;return Y+3}function M5($,Z,Y){let X=[],J="",Q=0,G=$.length,K=!1,z=null;while(Q<G){let q=$[Q];if(K){if(J+=q,z){if(q===z)z=null}else if(q==='"'||q==="'")z=q;else if(q===">")K=!1;Q++;continue}if(q==="<"){let U=Z($,Q);if(U>Q){J+=Y($.slice(Q,U),X.length),X.push($.slice(Q,U)),Q=U;continue}if(/^<\/?[a-zA-Z]/.test($.slice(Q,Q+2)))K=!0;J+=q,Q++;continue}J+=q,Q++}return{output:J,tokens:X}}function O$($){let{output:Z,tokens:Y}=M5($,H$,(X,J)=>`\x00STX_SCRIPT_${J}\x00`);return{output:Z,scripts:Y}}function L$($,Z){if(Z.length===0)return $;return $.replace(/\x00STX_SCRIPT_(\d+)\x00/g,(Y,X)=>Z[+X]??"")}var qG,UG,WG,_G;var F$=C(()=>{qG=/<script\b[^>]*>/iy,UG=/<\/script\s*>/ig,WG=/<style\b[^>]*>/iy,_G=/<\/style\s*>/ig});var g9={};l(g9,{usesSignalsInScript:()=>a1,unescapeHtml:()=>j7,registerFilters:()=>jG,registerFilter:()=>P9,processExpressions:()=>s0,interpolateScriptsInTemplate:()=>OG,interpolateScriptExpressions:()=>x9,getAllFilters:()=>v9,evaluateExpression:()=>h0,escapeHtml:()=>m0,defaultFilters:()=>D5,clearCustomFilters:()=>HG,applyFilters:()=>f9});function BG($){let Z=y9.get($);if(!Z){let Y=$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");Z=new RegExp(`:${Y}(?!\\w)`,"g"),y9.set($,Z)}return Z.lastIndex=0,Z}function P9($,Z){if($ in D5)console.warn(`Filter "${$}" already exists as a built-in filter. Custom filter will take precedence.`);I5[$]=Z}function jG($){for(let[Z,Y]of Object.entries($))P9(Z,Y)}function v9(){return{...D5,...I5}}function HG(){for(let $ of Object.keys(I5))delete I5[$]}function m0($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function a1($){let Z=/<script\b(?![^>]*\bserver\b)(?![^>]*\bsrc\s*=)[^>]*>([\s\S]*?)<\/script>/gi,Y;while((Y=Z.exec($))!==null){let X=Y[1];if(/\b(state|derived|effect|ref|reactive|computed|watch|watchEffect)\s*(?:<[^>]*>)?\s*\(/.test(X))return!0}if(/@(if|for|show)\s*=\s*["'][^"']*\(\s*\)/.test($))return!0;if(/@for\s*=\s*["'][^"']*\s+(?:in|of)\s+[^"']*\(\s*\)/.test($))return!0;if(/(?:^|[\s"'])(?::|x-)(?:for|if|else-if|else|show|text|html|model|bind)\b/.test($))return!0;return!1}function C9($,Z){let Y=["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"],X=$.replace(/'[^']*'/g,"").replace(/"[^"]*"/g,""),J="",Q=!1,G=0;for(let q=0;q<X.length;q++){let U=X[q];if(!Q&&U==="`"){Q=!0,G=0;continue}if(Q){if(U==="`"&&G===0){Q=!1;continue}if(U==="$"&&X[q+1]==="{"){G++,q++;continue}if(U==="}"&&G>0){G--;continue}continue}J+=U}X=J;let K=/\b([a-zA-Z_$][a-zA-Z0-9_$]*)\b/g,z;while((z=K.exec(X))!==null){let q=z[1];if(!X.substring(0,z.index).trimEnd().endsWith(".")){if(!Y.includes(q)&&!(q in Z))return!1}}return!0}function x9($,Z){let Y=$;return Y=Y.replace(/\{!!([\s\S]*?)!!\}/g,(X,J)=>{try{let Q=h0(J,Z);if(Q===void 0)return X;return Q===null?"":String(Q)}catch{return X}}),Y=Y.replace(/\{\{([\s\S]*?)\}\}/g,(X,J)=>{let Q=J.trim();if(/^__[A-Z_]+__$/.test(Q))return X;try{let G=h0(J,Z);if(G===void 0)return X;return JSON.stringify(G)}catch{return X}}),Y}function OG($,Z,Y={}){return $.replace(/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,(X,J,Q)=>{if(/\bsrc\s*=/.test(J))return X;if(/\bdata-raw\b/.test(J))return X;if(/\btype\s*=\s*["']application\/json["']/.test(J))return X;if(Y.skipServer&&/\bserver\b/.test(J))return X;let G=x9(Q,Z);return`<script${J}>${G}</script>`})}function s0($,Z,Y,X){let J=$,Q=(U,W)=>{let _=b9(U,W);if(_===-1)return-1;return/\{\{[\s\S]*?\}\}|\{!![\s\S]*?!!\}/.test(U.slice(W,_))?-1:_},G=(U,W,_,B)=>{let j=_.length,{output:H,tokens:L}=M5(U,W,(F,O)=>B(j+O));return _.push(...L),H},K=[];J=G(J,Q,K,(U)=>`<!--__STX_STYLE_${U}__-->`);let z=[];J=G(J,H$,z,(U)=>`<!--__STX_SCRIPT_EXPR_${U}__-->`);let q=X?.forceSignals===!0||a1($);J=J.replace(/\{\{\{([\s\S]*?)\}\}\}/g,(U,W,_)=>{try{let B=h0(W,Z);return B!==void 0&&B!==null?String(B):""}catch(B){let j=B instanceof Error?B.message:String(B);return J0("Expression",`Error evaluating: {{{ ${W.trim()}}}}: ${j}`,Y,$,_,U)}}),J=J.replace(/\{!!([\s\S]*?)!!\}/g,(U,W,_)=>{try{let B=h0(W,Z);if(B===void 0&&Z.__stx_buildMode==="compile")return j$("raw",W.trim());return B!==void 0&&B!==null?String(B):""}catch(B){if(Z.__stx_buildMode==="compile")return j$("raw",W.trim());let j=B instanceof Error?B.message:String(B);return J0("Expression",`Error evaluating: {!! ${W.trim()} !!}: ${j}`,Y,$,_,U)}}),J=G(J,H$,z,(U)=>`<!--__STX_SCRIPT_EXPR_${U}__-->`),J=G(J,Q,K,(U)=>`<!--__STX_STYLE_${U}__-->`),J=J.replace(/\{\{([\s\S]*?)\}\}/g,(U,W,_)=>{let B=W.trim(),j=["parseInt","parseFloat","String","Number","Boolean","Array","Object","JSON","Math","Date","encodeURIComponent","decodeURIComponent","encodeURI","decodeURI","true","false","null","undefined"],H=/^([a-zA-Z_$][a-zA-Z0-9_$]*)/,F=B.match(H)?.[1],O=F&&((F in Z)||j.includes(F)),V=/^([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/,w=B.match(V),A=w&&!j.includes(w[1])&&!(w[1]in Z);if(/^__[A-Z_]+__$/.test(B))return"";try{let R=h0(W,Z);if(R===void 0&&q&&!C9(B,Z))return U;if(R===void 0&&Z.__stx_buildMode==="compile"&&!q)return j$("expr",B);return R!==void 0&&R!==null?m0(String(R)):""}catch(R){if(q&&!C9(B,Z))return U;if(A)return U;let N=R instanceof Error?R.message:String(R);return J0("Expression",`Error evaluating: {{ ${B} }}: ${N}`,Y,$,_,U)}});for(let U=0;U<z.length;U++)J=J.replace(`<!--__STX_SCRIPT_EXPR_${U}__-->`,()=>z[U]);for(let U=0;U<K.length;U++)J=J.replace(`<!--__STX_STYLE_${U}__-->`,()=>K[U]);return J}function f9($,Z,Y){if(!Z.trim())return $;let X=$,J=Z.trim();while(J.length>0){let Q=J.match(/^(\w+)/);if(!Q)break;let G=Q[1];J=J.substring(G.length).trim();let K=I5[G]||D5[G];if(!K)throw Error(`Filter not found: ${G}. Available filters: ${Object.keys(v9()).join(", ")}`);let z=[];if(J.startsWith(":")){let q=J.match(/^:([^|\s]+)/);if(q){let U=q[1].trim();try{let W=Number(U);z=[Number.isNaN(W)?U:W]}catch{z=[U]}J=J.substring(q[0].length).trim()}}else if(J.startsWith("(")){let q=1,U=1;while(q>0&&U<J.length){if(J[U]==="(")q++;if(J[U]===")")q--;U++}if(q===0){let W=J.substring(1,U-1).trim();if(W)try{if(W.startsWith("{")&&W.endsWith("}"))z=[h0(`(${W})`,Y,!0)];else{let _=[],B="",j=null,H=0,L=0,F=0,O=!1;for(let V=0;V<W.length;V++){let w=W[V];if(O){B+=w,O=!1;continue}if(w==="\\"){B+=w,O=!0;continue}if(j){if(B+=w,w===j)j=null;continue}if(w==='"'||w==="'"||w==="`"){j=w,B+=w;continue}if(w==="(")H++;else if(w===")")H--;else if(w==="[")L++;else if(w==="]")L--;else if(w==="{")F++;else if(w==="}")F--;if(w===","&&H===0&&L===0&&F===0){_.push(B),B="";continue}B+=w}if(B)_.push(B);z=_.map((V)=>{let w=V.trim();return h0(w,Y,!0)})}}catch{z=[W]}J=J.substring(U).trim()}}try{X=K(X,Y,...z)}catch(q){let U=q instanceof Error?q.message:String(q);throw Error(`Error applying filter '${G}': ${U}`)}if(J.startsWith("|"))J=J.substring(1).trim();else break}return X}function LG($){let Z=!1,Y="",X=0,J=0,Q=0,G=!1;for(let K=0;K<$.length;K++){let z=$[K],q=$[K+1];if(Z&&G){G=!1;continue}if(Z&&z==="\\"){G=!0;continue}if(G=!1,(z==='"'||z==="'"||z==="`")&&!G){if(!Z)Z=!0,Y=z;else if(z===Y)Z=!1,Y="";continue}if(Z&&Y==="`"&&z==="$"&&q==="{"){let U=1;K+=2;while(K<$.length&&U>0){if($[K]==="{")U++;else if($[K]==="}")U--;if(U>0)K++}continue}if(Z)continue;if(z==="(")X++;else if(z===")")X--;else if(z==="[")J++;else if(z==="]")J--;else if(z==="{")Q++;else if(z==="}")Q--;if(z==="|"&&X===0&&J===0&&Q===0){if(q==="|"){K++;continue}if(q==="="){K++;continue}return K}}return-1}function h0($,Z,Y=!1){try{let X=$.trim(),J=LG(X);if(J>0){let Q=X.substring(0,J).trim(),G=X.substring(J+1).trim(),K=h0(Q,Z,!0);return f9(K,G,Z)}if(!$0(X)){if(!Y)console.warn(`Potentially unsafe expression detected, using safe evaluator: ${X}`);return e(X,Z)}try{let Q=Object.keys(Z),G=Object.values(Z);return Z0(X,Q)(...G)}catch{return e(X,Z)}}catch(X){if(X instanceof ReferenceError){let J=/(\b\w+)\s+is not defined/.exec(X.message);if(J){let Q=J[1],G=FG(Q,Object.keys(Z));if(G&&G!==Q)X.message=`${X.message} \u2014 did you mean '${G}'?`}}if(!Y)console.error(`Error evaluating expression: ${$}`,X);throw X}}function FG($,Z){let Y=null;for(let J of Z){if(J===$)continue;let Q=VG($,J);if(Y===null||Q<Y.dist)Y={key:J,dist:Q}}if(!Y)return null;let X=Math.max($.length,Y.key.length);if(Y.dist<=2||Y.dist/X<=0.35)return Y.key;return null}function VG($,Z){if($===Z)return 0;if($.length===0)return Z.length;if(Z.length===0)return $.length;let[Y,X]=$.length<Z.length?[$,Z]:[Z,$],J=Array(Y.length+1),Q=Array(Y.length+1);for(let G=0;G<=Y.length;G++)J[G]=G;for(let G=1;G<=X.length;G++){Q[0]=G;for(let K=1;K<=Y.length;K++){let z=Y[K-1]===X[G-1]?0:1;Q[K]=Math.min(Q[K-1]+1,J[K]+1,J[K-1]+z)}for(let K=0;K<=Y.length;K++)J[K]=Q[K]}return J[Y.length]}function j7($){if(!$)return"";return $.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/'/g,"'").replace(/&/g,"&")}var I5,y9,D5;var r0=C(()=>{w0();O0();E9();F$();I5={},y9=new Map;D5={uppercase:($,Z)=>{return $!==void 0&&$!==null?String($).toUpperCase():""},lowercase:($,Z)=>{return $!==void 0&&$!==null?String($).toLowerCase():""},capitalize:($,Z)=>{if($===void 0||$===null)return"";let Y=String($);return Y.charAt(0).toUpperCase()+Y.slice(1)},number:($,Z,Y=0)=>{if($===void 0||$===null)return"";try{let X=Number($);return Number.isNaN(X)?"":X.toFixed(Number.parseInt(String(Y),10))}catch{return""}},fmt:($,Z,Y="en-US")=>{if($===void 0||$===null)return"";try{let X=Number($);if(Number.isNaN(X))return String($);return X.toLocaleString(Y)}catch{return String($)}},join:($,Z,Y=",")=>{if(!Array.isArray($))return"";return $.join(String(Y))},escape:($,Z)=>{if($===void 0||$===null)return"";return m0(String($))},translate:($,Z,Y={})=>{if(!Z||!Z.__translations)return $;let X=Z.__translations,J=Z.__i18nConfig?.fallbackToKey??!0,Q=String($).split("."),G=X;for(let z of Q){if(G===void 0||G===null)break;G=G[z]}if(G===void 0||G===null)return J?$:"";let K=String(G);return Object.entries(Y).forEach(([z,q])=>{K=K.replace(BG(z),String(q))}),K},t:($,Z,Y={})=>{return D5.translate($,Z,Y)},truncate:($,Z,Y=50,X="...")=>{if($===void 0||$===null)return"";let J=String($);if(J.length<=Y)return J;if(Y<=X.length)return X.substring(0,Y);return J.substring(0,Y-X.length)+X},date:($,Z,Y="short",X="en-US")=>{if($===void 0||$===null)return"";try{let J=$ instanceof Date?$:new Date($);if(Number.isNaN(J.getTime()))return String($);let Q={short:{dateStyle:"short"},medium:{dateStyle:"medium"},long:{dateStyle:"long"},full:{dateStyle:"full"},time:{timeStyle:"short"},datetime:{dateStyle:"short",timeStyle:"short"},iso:{}};if(Y==="iso")return J.toISOString();return new Intl.DateTimeFormat(X,Q[Y]||Q.short).format(J)}catch{return String($)}},currency:($,Z,Y="USD",X="en-US")=>{if($===void 0||$===null)return"";try{let J=Number($);if(Number.isNaN(J))return String($);return new Intl.NumberFormat(X,{style:"currency",currency:Y}).format(J)}catch{return String($)}},pluralize:($,Z,Y,X)=>{let J=Number($);if(Number.isNaN(J))return Y;let Q=X||`${Y}s`;return J===1?Y:Q},first:($,Z)=>{if($===void 0||$===null)return"";if(Array.isArray($))return $.length===0?"":$[0];return String($).charAt(0)},last:($,Z)=>{if($===void 0||$===null)return"";if(Array.isArray($))return $.length===0?"":$[$.length-1];let Y=String($);return Y.charAt(Y.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,Y=!1)=>{if($===void 0)return"undefined";if($===null)return"null";try{return Y?JSON.stringify($,null,2):JSON.stringify($)}catch{return String($)}},default:($,Z,Y="")=>{return $===void 0||$===null||$===""?Y:$},reverse:($,Z)=>{if($===void 0||$===null)return"";if(Array.isArray($))return[...$].reverse();return String($).split("").reverse().join("")},slice:($,Z,Y=0,X)=>{if($===void 0||$===null)return"";if(Array.isArray($)||typeof $==="string")return $.slice(Y,X);return $},replace:($,Z,Y,X="")=>{if($===void 0||$===null)return"";let J=Y.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return String($).replace(new RegExp(J,"g"),()=>X)},stripTags:($,Z)=>{if($===void 0||$===null)return"";return String($).replace(/<[^>]*>/g,"")},urlencode:($,Z)=>{if($===void 0||$===null)return"";return encodeURIComponent(String($))},abs:($,Z)=>{let Y=Number($);return Number.isNaN(Y)?0:Math.abs(Y)},round:($,Z,Y=0)=>{let X=Number($);if(Number.isNaN(X))return 0;let J=10**Y;return Math.round(X*J)/J}}});class E5{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 Y=this.cache.keys().next().value;if(Y!==void 0)this.cache.delete(Y)}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 E1($,Z){if(Z?.includes("g"))return new RegExp($,Z);let Y=`${$}:${Z||""}`;if(!D1.has(Y)){if(D1.size>=wG){let X=D1.keys().next().value;if(X)D1.delete(X)}D1.set(Y,new RegExp($,Z))}return D1.get(Y)}function WO(){D1.clear()}class AG{cache=new Map;maxSize;ttl;constructor($=1000,Z=300000){this.maxSize=$,this.ttl=Z}get($){let Z=this.cache.get($);if(!Z)return null;if(Date.now()-Z.timestamp>this.ttl)return this.cache.delete($),null;return Z.result}set($,Z,Y=new Set){if(this.cache.size>=this.maxSize){let X=this.cache.keys().next().value;if(X)this.cache.delete(X)}this.cache.set($,{result:Z,timestamp:Date.now(),dependencies:Y})}invalidateDependency($){let Z=0;for(let[Y,X]of this.cache.entries())if(X.dependencies.has($))this.cache.delete(Y),Z++;return Z}clear(){this.cache.clear()}getStats(){return{size:this.cache.size,maxSize:this.maxSize}}}function _O($,Z){let Y;return(...X)=>{if(Y)clearTimeout(Y);Y=setTimeout(()=>{$(...X)},Z)}}function BO($,Z){let Y=0,X;return(...J)=>{let Q=Date.now();if(Q-Y>=Z)Y=Q,X=$(...J);return X}}function jO($,Z=100){let Y=new Map;return(...X)=>{let J;try{J=JSON.stringify(X)}catch{return $(...X)}if(Y.has(J))return Y.get(J);if(Y.size>=Z){let G=Y.keys().next().value;if(G)Y.delete(G)}let Q=$(...X);return Y.set(J,Q),Q}}function HO($,Z,Y,X){if(typeof Z==="string"){let J=E1(Z,X);if(typeof Y==="string"&&X?.includes("i")){let Q=Y;return $.replace(J,(G)=>{if(G===G.toUpperCase()&&G!==G.toLowerCase())return Q.toUpperCase();else if(G[0]===G[0].toUpperCase()&&G[0]!==G[0].toLowerCase())return Q[0].toUpperCase()+Q.slice(1).toLowerCase();else return Q.toLowerCase()})}return $.replace(J,Y)}return $.replace(Z,Y)}class h9{pool=[];maxPoolSize=10;fnCache=new Map;fnCacheMaxSize=200;getEvaluator($){let Z=Array.from(new Set($)),Y=Z.sort().join(","),X=this.pool.find((K)=>K.context.join(",")===Y);if(X)return X.func;let J=this.fnCache,Q=this.fnCacheMaxSize,G=(...K)=>{return(z)=>{try{let q=`${Y}:${z}`,U=J.get(q);if(!U){if(J.size>=Q){let W=J.keys().next().value;if(W)J.delete(W)}U=Function(...Z,`
|
|
658
|
+
`)}var N9,r1,B7,JG,T9,QG,I9,R9=65536;var w0=P(()=>{N9={maxSanitizeDepth:10,allowBracketNotation:!1},r1={...N9};B7=[/\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/],JG=new Set(["eval","Function","setTimeout","setInterval","setImmediate","process","require","import","exports","module","window","document","global","globalThis","constructor","prototype","Reflect","Proxy","Symbol","WeakMap","WeakSet","WeakRef","FinalizationRegistry","Generator","AsyncGenerator","delete","this"]),T9=new Set(["__proto__","constructor","prototype"]),QG=/[\w)\]]\s*\[\s*['"]/;I9=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 $O(){D9=0,B$.clear()}function j$($,Z){let Y=D9++,X=`<!--__STX_${$.toUpperCase()}_${Y}__-->`;return B$.set(X,{type:$,expression:Z}),X}function ZO(){let $={};for(let[Z,Y]of B$)$[Z]={type:Y.type,expression:Y.expression};return $}function YO($){let Z={},Y=/<!--__STX_(EXPR|COND|RAW)_(\d+)__-->/g,X;while((X=Y.exec($))!==null){let J=X[0],Q=X[1].toLowerCase(),G=B$.get(J);Z[J]={type:Q,expression:G?.expression||""}}return Z}function XO($,Z){let Y=$;for(let[X,J]of Z)Y=Y.split(X).join(J);return Y}function JO($){return $.includes("<!--__STX_")}var D9=0,B$;var E9=P(()=>{B$=new Map});function k9($,Z,Y,X){Y.lastIndex=Z;let J=Y.exec($);if(!J||J.index!==Z)return-1;X.lastIndex=Y.lastIndex;let Q=X.exec($);if(!Q)return-1;return Q.index+Q[0].length}function H$($,Z){return k9($,Z,qG,UG)}function b9($,Z){return k9($,Z,WG,_G)}function S9($,Z){if(!$.startsWith("<!--",Z))return-1;let Y=$.indexOf("-->",Z+4);if(Y===-1)return-1;return Y+3}function M5($,Z,Y){let X=[],J="",Q=0,G=$.length,K=!1,z=null;while(Q<G){let q=$[Q];if(K){if(J+=q,z){if(q===z)z=null}else if(q==='"'||q==="'")z=q;else if(q===">")K=!1;Q++;continue}if(q==="<"){let U=Z($,Q);if(U>Q){J+=Y($.slice(Q,U),X.length),X.push($.slice(Q,U)),Q=U;continue}if(/^<\/?[a-zA-Z]/.test($.slice(Q,Q+2)))K=!0;J+=q,Q++;continue}J+=q,Q++}return{output:J,tokens:X}}function O$($){let{output:Z,tokens:Y}=M5($,H$,(X,J)=>`\x00STX_SCRIPT_${J}\x00`);return{output:Z,scripts:Y}}function L$($,Z){if(Z.length===0)return $;return $.replace(/\x00STX_SCRIPT_(\d+)\x00/g,(Y,X)=>Z[+X]??"")}var qG,UG,WG,_G;var F$=P(()=>{qG=/<script\b[^>]*>/iy,UG=/<\/script\s*>/ig,WG=/<style\b[^>]*>/iy,_G=/<\/style\s*>/ig});var g9={};l(g9,{usesSignalsInScript:()=>a1,unescapeHtml:()=>j7,registerFilters:()=>jG,registerFilter:()=>P9,processExpressions:()=>s0,interpolateScriptsInTemplate:()=>OG,interpolateScriptExpressions:()=>x9,getAllFilters:()=>v9,evaluateExpression:()=>h0,escapeHtml:()=>m0,defaultFilters:()=>D5,clearCustomFilters:()=>HG,applyFilters:()=>f9});function BG($){let Z=y9.get($);if(!Z){let Y=$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");Z=new RegExp(`:${Y}(?!\\w)`,"g"),y9.set($,Z)}return Z.lastIndex=0,Z}function P9($,Z){if($ in D5)console.warn(`Filter "${$}" already exists as a built-in filter. Custom filter will take precedence.`);I5[$]=Z}function jG($){for(let[Z,Y]of Object.entries($))P9(Z,Y)}function v9(){return{...D5,...I5}}function HG(){for(let $ of Object.keys(I5))delete I5[$]}function m0($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function a1($){let Z=/<script\b(?![^>]*\bserver\b)(?![^>]*\bsrc\s*=)[^>]*>([\s\S]*?)<\/script>/gi,Y;while((Y=Z.exec($))!==null){let X=Y[1];if(/\b(state|derived|effect|ref|reactive|computed|watch|watchEffect)\s*(?:<[^>]*>)?\s*\(/.test(X))return!0}if(/@(if|for|show)\s*=\s*["'][^"']*\(\s*\)/.test($))return!0;if(/@for\s*=\s*["'][^"']*\s+(?:in|of)\s+[^"']*\(\s*\)/.test($))return!0;if(/(?:^|[\s"'])(?::|x-)(?:for|if|else-if|else|show|text|html|model|bind)\b/.test($))return!0;return!1}function C9($,Z){let Y=["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"],X=$.replace(/'[^']*'/g,"").replace(/"[^"]*"/g,""),J="",Q=!1,G=0;for(let q=0;q<X.length;q++){let U=X[q];if(!Q&&U==="`"){Q=!0,G=0;continue}if(Q){if(U==="`"&&G===0){Q=!1;continue}if(U==="$"&&X[q+1]==="{"){G++,q++;continue}if(U==="}"&&G>0){G--;continue}continue}J+=U}X=J;let K=/\b([a-zA-Z_$][a-zA-Z0-9_$]*)\b/g,z;while((z=K.exec(X))!==null){let q=z[1];if(!X.substring(0,z.index).trimEnd().endsWith(".")){if(!Y.includes(q)&&!(q in Z))return!1}}return!0}function x9($,Z){let Y=$;return Y=Y.replace(/\{!!([\s\S]*?)!!\}/g,(X,J)=>{try{let Q=h0(J,Z);if(Q===void 0)return X;return Q===null?"":String(Q)}catch{return X}}),Y=Y.replace(/\{\{([\s\S]*?)\}\}/g,(X,J)=>{let Q=J.trim();if(/^__[A-Z_]+__$/.test(Q))return X;try{let G=h0(J,Z);if(G===void 0)return X;return JSON.stringify(G)}catch{return X}}),Y}function OG($,Z,Y={}){return $.replace(/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,(X,J,Q)=>{if(/\bsrc\s*=/.test(J))return X;if(/\bdata-raw\b/.test(J))return X;if(/\btype\s*=\s*["']application\/json["']/.test(J))return X;if(Y.skipServer&&/\bserver\b/.test(J))return X;let G=x9(Q,Z);return`<script${J}>${G}</script>`})}function s0($,Z,Y,X){let J=$,Q=(U,W)=>{let _=b9(U,W);if(_===-1)return-1;return/\{\{[\s\S]*?\}\}|\{!![\s\S]*?!!\}/.test(U.slice(W,_))?-1:_},G=(U,W,_,B)=>{let j=_.length,{output:H,tokens:L}=M5(U,W,(F,O)=>B(j+O));return _.push(...L),H},K=[];J=G(J,Q,K,(U)=>`<!--__STX_STYLE_${U}__-->`);let z=[];J=G(J,H$,z,(U)=>`<!--__STX_SCRIPT_EXPR_${U}__-->`);let q=X?.forceSignals===!0||a1($);J=J.replace(/\{\{\{([\s\S]*?)\}\}\}/g,(U,W,_)=>{try{let B=h0(W,Z);return B!==void 0&&B!==null?String(B):""}catch(B){let j=B instanceof Error?B.message:String(B);return J0("Expression",`Error evaluating: {{{ ${W.trim()}}}}: ${j}`,Y,$,_,U)}}),J=J.replace(/\{!!([\s\S]*?)!!\}/g,(U,W,_)=>{try{let B=h0(W,Z);if(B===void 0&&Z.__stx_buildMode==="compile")return j$("raw",W.trim());return B!==void 0&&B!==null?String(B):""}catch(B){if(Z.__stx_buildMode==="compile")return j$("raw",W.trim());let j=B instanceof Error?B.message:String(B);return J0("Expression",`Error evaluating: {!! ${W.trim()} !!}: ${j}`,Y,$,_,U)}}),J=G(J,H$,z,(U)=>`<!--__STX_SCRIPT_EXPR_${U}__-->`),J=G(J,Q,K,(U)=>`<!--__STX_STYLE_${U}__-->`),J=J.replace(/\{\{([\s\S]*?)\}\}/g,(U,W,_)=>{let B=W.trim(),j=["parseInt","parseFloat","String","Number","Boolean","Array","Object","JSON","Math","Date","encodeURIComponent","decodeURIComponent","encodeURI","decodeURI","true","false","null","undefined"],H=/^([a-zA-Z_$][a-zA-Z0-9_$]*)/,F=B.match(H)?.[1],O=F&&((F in Z)||j.includes(F)),V=/^([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/,w=B.match(V),A=w&&!j.includes(w[1])&&!(w[1]in Z);if(/^__[A-Z_]+__$/.test(B))return"";try{let R=h0(W,Z);if(R===void 0&&q&&!C9(B,Z))return U;if(R===void 0&&Z.__stx_buildMode==="compile"&&!q)return j$("expr",B);return R!==void 0&&R!==null?m0(String(R)):""}catch(R){if(q&&!C9(B,Z))return U;if(A)return U;let N=R instanceof Error?R.message:String(R);return J0("Expression",`Error evaluating: {{ ${B} }}: ${N}`,Y,$,_,U)}});for(let U=0;U<z.length;U++)J=J.replace(`<!--__STX_SCRIPT_EXPR_${U}__-->`,()=>z[U]);for(let U=0;U<K.length;U++)J=J.replace(`<!--__STX_STYLE_${U}__-->`,()=>K[U]);return J}function f9($,Z,Y){if(!Z.trim())return $;let X=$,J=Z.trim();while(J.length>0){let Q=J.match(/^(\w+)/);if(!Q)break;let G=Q[1];J=J.substring(G.length).trim();let K=I5[G]||D5[G];if(!K)throw Error(`Filter not found: ${G}. Available filters: ${Object.keys(v9()).join(", ")}`);let z=[];if(J.startsWith(":")){let q=J.match(/^:([^|\s]+)/);if(q){let U=q[1].trim();try{let W=Number(U);z=[Number.isNaN(W)?U:W]}catch{z=[U]}J=J.substring(q[0].length).trim()}}else if(J.startsWith("(")){let q=1,U=1;while(q>0&&U<J.length){if(J[U]==="(")q++;if(J[U]===")")q--;U++}if(q===0){let W=J.substring(1,U-1).trim();if(W)try{if(W.startsWith("{")&&W.endsWith("}"))z=[h0(`(${W})`,Y,!0)];else{let _=[],B="",j=null,H=0,L=0,F=0,O=!1;for(let V=0;V<W.length;V++){let w=W[V];if(O){B+=w,O=!1;continue}if(w==="\\"){B+=w,O=!0;continue}if(j){if(B+=w,w===j)j=null;continue}if(w==='"'||w==="'"||w==="`"){j=w,B+=w;continue}if(w==="(")H++;else if(w===")")H--;else if(w==="[")L++;else if(w==="]")L--;else if(w==="{")F++;else if(w==="}")F--;if(w===","&&H===0&&L===0&&F===0){_.push(B),B="";continue}B+=w}if(B)_.push(B);z=_.map((V)=>{let w=V.trim();return h0(w,Y,!0)})}}catch{z=[W]}J=J.substring(U).trim()}}try{X=K(X,Y,...z)}catch(q){let U=q instanceof Error?q.message:String(q);throw Error(`Error applying filter '${G}': ${U}`)}if(J.startsWith("|"))J=J.substring(1).trim();else break}return X}function LG($){let Z=!1,Y="",X=0,J=0,Q=0,G=!1;for(let K=0;K<$.length;K++){let z=$[K],q=$[K+1];if(Z&&G){G=!1;continue}if(Z&&z==="\\"){G=!0;continue}if(G=!1,(z==='"'||z==="'"||z==="`")&&!G){if(!Z)Z=!0,Y=z;else if(z===Y)Z=!1,Y="";continue}if(Z&&Y==="`"&&z==="$"&&q==="{"){let U=1;K+=2;while(K<$.length&&U>0){if($[K]==="{")U++;else if($[K]==="}")U--;if(U>0)K++}continue}if(Z)continue;if(z==="(")X++;else if(z===")")X--;else if(z==="[")J++;else if(z==="]")J--;else if(z==="{")Q++;else if(z==="}")Q--;if(z==="|"&&X===0&&J===0&&Q===0){if(q==="|"){K++;continue}if(q==="="){K++;continue}return K}}return-1}function h0($,Z,Y=!1){try{let X=$.trim(),J=LG(X);if(J>0){let Q=X.substring(0,J).trim(),G=X.substring(J+1).trim(),K=h0(Q,Z,!0);return f9(K,G,Z)}if(!$0(X)){if(!Y)console.warn(`Potentially unsafe expression detected, using safe evaluator: ${X}`);return e(X,Z)}try{let Q=Object.keys(Z),G=Object.values(Z);return Z0(X,Q)(...G)}catch{return e(X,Z)}}catch(X){if(X instanceof ReferenceError){let J=/(\b\w+)\s+is not defined/.exec(X.message);if(J){let Q=J[1],G=FG(Q,Object.keys(Z));if(G&&G!==Q)X.message=`${X.message} \u2014 did you mean '${G}'?`}}if(!Y)console.error(`Error evaluating expression: ${$}`,X);throw X}}function FG($,Z){let Y=null;for(let J of Z){if(J===$)continue;let Q=VG($,J);if(Y===null||Q<Y.dist)Y={key:J,dist:Q}}if(!Y)return null;let X=Math.max($.length,Y.key.length);if(Y.dist<=2||Y.dist/X<=0.35)return Y.key;return null}function VG($,Z){if($===Z)return 0;if($.length===0)return Z.length;if(Z.length===0)return $.length;let[Y,X]=$.length<Z.length?[$,Z]:[Z,$],J=Array(Y.length+1),Q=Array(Y.length+1);for(let G=0;G<=Y.length;G++)J[G]=G;for(let G=1;G<=X.length;G++){Q[0]=G;for(let K=1;K<=Y.length;K++){let z=Y[K-1]===X[G-1]?0:1;Q[K]=Math.min(Q[K-1]+1,J[K]+1,J[K-1]+z)}for(let K=0;K<=Y.length;K++)J[K]=Q[K]}return J[Y.length]}function j7($){if(!$)return"";return $.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/'/g,"'").replace(/&/g,"&")}var I5,y9,D5;var r0=P(()=>{w0();O0();E9();F$();I5={},y9=new Map;D5={uppercase:($,Z)=>{return $!==void 0&&$!==null?String($).toUpperCase():""},lowercase:($,Z)=>{return $!==void 0&&$!==null?String($).toLowerCase():""},capitalize:($,Z)=>{if($===void 0||$===null)return"";let Y=String($);return Y.charAt(0).toUpperCase()+Y.slice(1)},number:($,Z,Y=0)=>{if($===void 0||$===null)return"";try{let X=Number($);return Number.isNaN(X)?"":X.toFixed(Number.parseInt(String(Y),10))}catch{return""}},fmt:($,Z,Y="en-US")=>{if($===void 0||$===null)return"";try{let X=Number($);if(Number.isNaN(X))return String($);return X.toLocaleString(Y)}catch{return String($)}},join:($,Z,Y=",")=>{if(!Array.isArray($))return"";return $.join(String(Y))},escape:($,Z)=>{if($===void 0||$===null)return"";return m0(String($))},translate:($,Z,Y={})=>{if(!Z||!Z.__translations)return $;let X=Z.__translations,J=Z.__i18nConfig?.fallbackToKey??!0,Q=String($).split("."),G=X;for(let z of Q){if(G===void 0||G===null)break;G=G[z]}if(G===void 0||G===null)return J?$:"";let K=String(G);return Object.entries(Y).forEach(([z,q])=>{K=K.replace(BG(z),String(q))}),K},t:($,Z,Y={})=>{return D5.translate($,Z,Y)},truncate:($,Z,Y=50,X="...")=>{if($===void 0||$===null)return"";let J=String($);if(J.length<=Y)return J;if(Y<=X.length)return X.substring(0,Y);return J.substring(0,Y-X.length)+X},date:($,Z,Y="short",X="en-US")=>{if($===void 0||$===null)return"";try{let J=$ instanceof Date?$:new Date($);if(Number.isNaN(J.getTime()))return String($);let Q={short:{dateStyle:"short"},medium:{dateStyle:"medium"},long:{dateStyle:"long"},full:{dateStyle:"full"},time:{timeStyle:"short"},datetime:{dateStyle:"short",timeStyle:"short"},iso:{}};if(Y==="iso")return J.toISOString();return new Intl.DateTimeFormat(X,Q[Y]||Q.short).format(J)}catch{return String($)}},currency:($,Z,Y="USD",X="en-US")=>{if($===void 0||$===null)return"";try{let J=Number($);if(Number.isNaN(J))return String($);return new Intl.NumberFormat(X,{style:"currency",currency:Y}).format(J)}catch{return String($)}},pluralize:($,Z,Y,X)=>{let J=Number($);if(Number.isNaN(J))return Y;let Q=X||`${Y}s`;return J===1?Y:Q},first:($,Z)=>{if($===void 0||$===null)return"";if(Array.isArray($))return $.length===0?"":$[0];return String($).charAt(0)},last:($,Z)=>{if($===void 0||$===null)return"";if(Array.isArray($))return $.length===0?"":$[$.length-1];let Y=String($);return Y.charAt(Y.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,Y=!1)=>{if($===void 0)return"undefined";if($===null)return"null";try{return Y?JSON.stringify($,null,2):JSON.stringify($)}catch{return String($)}},default:($,Z,Y="")=>{return $===void 0||$===null||$===""?Y:$},reverse:($,Z)=>{if($===void 0||$===null)return"";if(Array.isArray($))return[...$].reverse();return String($).split("").reverse().join("")},slice:($,Z,Y=0,X)=>{if($===void 0||$===null)return"";if(Array.isArray($)||typeof $==="string")return $.slice(Y,X);return $},replace:($,Z,Y,X="")=>{if($===void 0||$===null)return"";let J=Y.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return String($).replace(new RegExp(J,"g"),()=>X)},stripTags:($,Z)=>{if($===void 0||$===null)return"";return String($).replace(/<[^>]*>/g,"")},urlencode:($,Z)=>{if($===void 0||$===null)return"";return encodeURIComponent(String($))},abs:($,Z)=>{let Y=Number($);return Number.isNaN(Y)?0:Math.abs(Y)},round:($,Z,Y=0)=>{let X=Number($);if(Number.isNaN(X))return 0;let J=10**Y;return Math.round(X*J)/J}}});class E5{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 Y=this.cache.keys().next().value;if(Y!==void 0)this.cache.delete(Y)}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 E1($,Z){if(Z?.includes("g"))return new RegExp($,Z);let Y=`${$}:${Z||""}`;if(!D1.has(Y)){if(D1.size>=wG){let X=D1.keys().next().value;if(X)D1.delete(X)}D1.set(Y,new RegExp($,Z))}return D1.get(Y)}function WO(){D1.clear()}class AG{cache=new Map;maxSize;ttl;constructor($=1000,Z=300000){this.maxSize=$,this.ttl=Z}get($){let Z=this.cache.get($);if(!Z)return null;if(Date.now()-Z.timestamp>this.ttl)return this.cache.delete($),null;return Z.result}set($,Z,Y=new Set){if(this.cache.size>=this.maxSize){let X=this.cache.keys().next().value;if(X)this.cache.delete(X)}this.cache.set($,{result:Z,timestamp:Date.now(),dependencies:Y})}invalidateDependency($){let Z=0;for(let[Y,X]of this.cache.entries())if(X.dependencies.has($))this.cache.delete(Y),Z++;return Z}clear(){this.cache.clear()}getStats(){return{size:this.cache.size,maxSize:this.maxSize}}}function _O($,Z){let Y;return(...X)=>{if(Y)clearTimeout(Y);Y=setTimeout(()=>{$(...X)},Z)}}function BO($,Z){let Y=0,X;return(...J)=>{let Q=Date.now();if(Q-Y>=Z)Y=Q,X=$(...J);return X}}function jO($,Z=100){let Y=new Map;return(...X)=>{let J;try{J=JSON.stringify(X)}catch{return $(...X)}if(Y.has(J))return Y.get(J);if(Y.size>=Z){let G=Y.keys().next().value;if(G)Y.delete(G)}let Q=$(...X);return Y.set(J,Q),Q}}function HO($,Z,Y,X){if(typeof Z==="string"){let J=E1(Z,X);if(typeof Y==="string"&&X?.includes("i")){let Q=Y;return $.replace(J,(G)=>{if(G===G.toUpperCase()&&G!==G.toLowerCase())return Q.toUpperCase();else if(G[0]===G[0].toUpperCase()&&G[0]!==G[0].toLowerCase())return Q[0].toUpperCase()+Q.slice(1).toLowerCase();else return Q.toLowerCase()})}return $.replace(J,Y)}return $.replace(Z,Y)}class h9{pool=[];maxPoolSize=10;fnCache=new Map;fnCacheMaxSize=200;getEvaluator($){let Z=Array.from(new Set($)),Y=Z.sort().join(","),X=this.pool.find((K)=>K.context.join(",")===Y);if(X)return X.func;let J=this.fnCache,Q=this.fnCacheMaxSize,G=(...K)=>{return(z)=>{try{let q=`${Y}:${z}`,U=J.get(q);if(!U){if(J.size>=Q){let W=J.keys().next().value;if(W)J.delete(W)}U=Function(...Z,`
|
|
659
659
|
'use strict';
|
|
660
660
|
try {
|
|
661
661
|
return ${z};
|
|
@@ -666,7 +666,7 @@ catch (e) {
|
|
|
666
666
|
}
|
|
667
667
|
throw e;
|
|
668
668
|
}
|
|
669
|
-
`),J.set(q,U)}return U(...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 d9{metrics=new Map;budgets=new Map;violations=[];maxViolations=100;violationHandlers=[];enabled=!0;setEnabled($){this.enabled=$}isEnabled(){return this.enabled}setBudget($,Z){this.budgets.set($,{warnThreshold:0.8,action:"warn",...Z})}setBudgets($){for(let[Z,Y]of Object.entries($))this.setBudget(Z,Y)}removeBudget($){this.budgets.delete($)}getBudgets(){let $={};for(let[Z,Y]of this.budgets.entries())$[Z]=Y;return $}onViolation($){this.violationHandlers.push($)}offViolation($){let Z=this.violationHandlers.indexOf($);if(Z!==-1)this.violationHandlers.splice(Z,1)}time($,Z){if(!this.enabled)return Z();let Y=performance.now(),X=Z(),J=performance.now()-Y;return this.recordTime($,J),this.checkBudget($,J),X}async timeAsync($,Z){if(!this.enabled)return Z();let Y=performance.now(),X=await Z(),J=performance.now()-Y;return this.recordTime($,J),this.checkBudget($,J),X}checkBudget($,Z){let Y=this.budgets.get($);if(!Y)return;let X=Z/Y.maxTime*100,J=Y.warnThreshold!==void 0?Z>=Y.maxTime*Y.warnThreshold&&Z<Y.maxTime:!1,Q=Z>=Y.maxTime;if(!J&&!Q)return;let G={label:$,actualTime:Z,budgetTime:Y.maxTime,exceedancePercent:X,timestamp:new Date,isWarning:J};this.violations.push(G);while(this.violations.length>this.maxViolations)this.violations.shift();for(let z of this.violationHandlers)try{z(G)}catch{}let K=J?`[Performance Warning] "${$}" took ${Z.toFixed(2)}ms (${X.toFixed(1)}% of ${Y.maxTime}ms budget)`:`[Performance Budget Exceeded] "${$}" took ${Z.toFixed(2)}ms (exceeded ${Y.maxTime}ms budget by ${(X-100).toFixed(1)}%)`;switch(Y.action){case"log":console.log(K);break;case"warn":console.warn(K);break;case"error":console.error(K);break;case"throw":if(Q)throw Error(K);else console.warn(K);break}}recordTime($,Z){let Y=this.metrics.get($);if(Y)Y.count++,Y.totalTime+=Z,Y.maxTime=Math.max(Y.maxTime,Z),Y.minTime=Math.min(Y.minTime,Z);else this.metrics.set($,{count:1,totalTime:Z,maxTime:Z,minTime:Z})}getStats($){if($){let Y=this.metrics.get($);if(!Y)return{};let X=this.budgets.get($);return{count:Y.count,avgTime:Y.totalTime/Y.count,totalTime:Y.totalTime,maxTime:Y.maxTime,minTime:Y.minTime,budget:X?.maxTime,budgetUtilization:X?Y.totalTime/Y.count/X.maxTime*100:void 0}}let Z={};for(let[Y,X]of this.metrics.entries()){let J=this.budgets.get(Y);Z[Y]={count:X.count,avgTime:X.totalTime/X.count,totalTime:X.totalTime,maxTime:X.maxTime,minTime:X.minTime,budget:J?.maxTime,budgetUtilization:J?X.totalTime/X.count/J.maxTime*100:void 0}}return Z}getViolations($){if($)return this.violations.filter((Z)=>Z.label===$);return[...this.violations]}getViolationStats(){let $={},Z=0,Y=0;for(let X of this.violations)if($[X.label]=($[X.label]||0)+1,X.isWarning)Z++;else Y++;return{total:this.violations.length,byLabel:$,warnings:Z,errors:Y}}clear(){this.metrics.clear()}clearViolations(){this.violations.length=0}clearBudgets(){this.budgets.clear()}reset(){this.clear(),this.clearViolations(),this.clearBudgets(),this.violationHandlers.length=0}}function m9(){if(!V$)V$=new d9;return V$}function LO($=m9()){$.setBudgets(RG)}function FO(){V$=null}var D1,wG=500,OO,RG,V$=null,u9;var t1=
|
|
669
|
+
`),J.set(q,U)}return U(...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 d9{metrics=new Map;budgets=new Map;violations=[];maxViolations=100;violationHandlers=[];enabled=!0;setEnabled($){this.enabled=$}isEnabled(){return this.enabled}setBudget($,Z){this.budgets.set($,{warnThreshold:0.8,action:"warn",...Z})}setBudgets($){for(let[Z,Y]of Object.entries($))this.setBudget(Z,Y)}removeBudget($){this.budgets.delete($)}getBudgets(){let $={};for(let[Z,Y]of this.budgets.entries())$[Z]=Y;return $}onViolation($){this.violationHandlers.push($)}offViolation($){let Z=this.violationHandlers.indexOf($);if(Z!==-1)this.violationHandlers.splice(Z,1)}time($,Z){if(!this.enabled)return Z();let Y=performance.now(),X=Z(),J=performance.now()-Y;return this.recordTime($,J),this.checkBudget($,J),X}async timeAsync($,Z){if(!this.enabled)return Z();let Y=performance.now(),X=await Z(),J=performance.now()-Y;return this.recordTime($,J),this.checkBudget($,J),X}checkBudget($,Z){let Y=this.budgets.get($);if(!Y)return;let X=Z/Y.maxTime*100,J=Y.warnThreshold!==void 0?Z>=Y.maxTime*Y.warnThreshold&&Z<Y.maxTime:!1,Q=Z>=Y.maxTime;if(!J&&!Q)return;let G={label:$,actualTime:Z,budgetTime:Y.maxTime,exceedancePercent:X,timestamp:new Date,isWarning:J};this.violations.push(G);while(this.violations.length>this.maxViolations)this.violations.shift();for(let z of this.violationHandlers)try{z(G)}catch{}let K=J?`[Performance Warning] "${$}" took ${Z.toFixed(2)}ms (${X.toFixed(1)}% of ${Y.maxTime}ms budget)`:`[Performance Budget Exceeded] "${$}" took ${Z.toFixed(2)}ms (exceeded ${Y.maxTime}ms budget by ${(X-100).toFixed(1)}%)`;switch(Y.action){case"log":console.log(K);break;case"warn":console.warn(K);break;case"error":console.error(K);break;case"throw":if(Q)throw Error(K);else console.warn(K);break}}recordTime($,Z){let Y=this.metrics.get($);if(Y)Y.count++,Y.totalTime+=Z,Y.maxTime=Math.max(Y.maxTime,Z),Y.minTime=Math.min(Y.minTime,Z);else this.metrics.set($,{count:1,totalTime:Z,maxTime:Z,minTime:Z})}getStats($){if($){let Y=this.metrics.get($);if(!Y)return{};let X=this.budgets.get($);return{count:Y.count,avgTime:Y.totalTime/Y.count,totalTime:Y.totalTime,maxTime:Y.maxTime,minTime:Y.minTime,budget:X?.maxTime,budgetUtilization:X?Y.totalTime/Y.count/X.maxTime*100:void 0}}let Z={};for(let[Y,X]of this.metrics.entries()){let J=this.budgets.get(Y);Z[Y]={count:X.count,avgTime:X.totalTime/X.count,totalTime:X.totalTime,maxTime:X.maxTime,minTime:X.minTime,budget:J?.maxTime,budgetUtilization:J?X.totalTime/X.count/J.maxTime*100:void 0}}return Z}getViolations($){if($)return this.violations.filter((Z)=>Z.label===$);return[...this.violations]}getViolationStats(){let $={},Z=0,Y=0;for(let X of this.violations)if($[X.label]=($[X.label]||0)+1,X.isWarning)Z++;else Y++;return{total:this.violations.length,byLabel:$,warnings:Z,errors:Y}}clear(){this.metrics.clear()}clearViolations(){this.violations.length=0}clearBudgets(){this.budgets.clear()}reset(){this.clear(),this.clearViolations(),this.clearBudgets(),this.violationHandlers.length=0}}function m9(){if(!V$)V$=new d9;return V$}function LO($=m9()){$.setBudgets(RG)}function FO(){V$=null}var D1,wG=500,OO,RG,V$=null,u9;var t1=P(()=>{D1=new Map;OO=new h9;RG={processDirectives:{maxTime:500,warnThreshold:0.8,action:"warn"},processTemplate:{maxTime:200,warnThreshold:0.8,action:"warn"},processIncludes:{maxTime:100,warnThreshold:0.8,action:"warn"},processLoops:{maxTime:50,warnThreshold:0.8,action:"warn"},processConditionals:{maxTime:50,warnThreshold:0.8,action:"warn"},processExpressions:{maxTime:100,warnThreshold:0.8,action:"warn"},renderComponent:{maxTime:150,warnThreshold:0.8,action:"warn"},buildWebComponents:{maxTime:1000,warnThreshold:0.8,action:"warn"}};u9=new Proxy({},{get($,Z){return m9()[Z]}})});function k5($,Z){return`${K0[Z]}${$}${K0.reset}`}function wO($){return k5($,"green")}function AO($){return k5($,"yellow")}function RO($){return k5($,"red")}function NO($){return k5($,"cyan")}function TO($){return k5($,"gray")}var K0;var l9=P(()=>{K0={reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",underscore:"\x1B[4m",blink:"\x1B[5m",reverse:"\x1B[7m",hidden:"\x1B[8m",black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",gray:"\x1B[90m",bgBlack:"\x1B[40m",bgRed:"\x1B[41m",bgGreen:"\x1B[42m",bgYellow:"\x1B[43m",bgBlue:"\x1B[44m",bgMagenta:"\x1B[45m",bgCyan:"\x1B[46m",bgWhite:"\x1B[47m",bgGray:"\x1B[100m"}});import{getRouterScript as p9}from"stx-router";var c9=P(()=>{H7()});async function NG($,Z,Y,X){let J=Z[0]?.replace(/['"]/g,"")||"main",Q=p9();if(J!=="main")Q=Q.replace("container:'main'",`container:'${J}'`);return`<script data-stx-router>${Q}</script>`}var i9;var H7=P(()=>{c9();i9={name:"stxRouter",handler:NG,hasEndTag:!1,description:"Inject the STX SPA router script for client-side navigation"}});function n9($){let Z=$.heatmap;if(!Z?.enabled)return"";let Y={...TG,...Z};return`
|
|
670
670
|
<!-- stx Heatmap - Privacy-Compliant Tracking -->
|
|
671
671
|
<script>
|
|
672
672
|
(function() {
|
|
@@ -1049,7 +1049,7 @@ else {
|
|
|
1049
1049
|
};
|
|
1050
1050
|
})();
|
|
1051
1051
|
</script>
|
|
1052
|
-
`}function o9($,Z){let Y=n9(Z);if(!Y)return $;let X=$.lastIndexOf("</body>");if(X!==-1)return $.slice(0,X)+Y+$.slice(X);return $+Y}function MG($){let Z={},Y=$.match(/(\w+)=["']?([^"'\s]+)["']?/g)||[];for(let X of Y){let[J,Q]=X.split("="),G=Q?.replace(/["']/g,"");switch(J){case"endpoint":Z.endpoint=G;break;case"samplingRate":Z.samplingRate=Number.parseInt(G,10);break;case"batchSize":Z.batchSize=Number.parseInt(G,10);break;case"trackMouse":Z.trackMouse=G==="true";break;case"trackClicks":Z.trackClicks=G==="true";break;case"trackScroll":Z.trackScroll=G==="true";break;case"honorDnt":Z.honorDnt=G==="true";break;case"debugOverlay":Z.debugOverlay=G==="true";break}}return Z}class r9{sessions=new Map;addSession($){let Z=this.sessions.get($.sid);if(Z)Z.points.push(...$.points),Z.lastActivity=Math.max(Z.lastActivity,$.lastActivity);else this.sessions.set($.sid,$)}getPageData($){let Z=[];for(let Y of this.sessions.values())if(Y.page===$)Z.push(...Y.points);return Z}getClickData($){return this.getPageData($).filter((Z)=>Z.type==="click")}getMovementData($){return this.getPageData($).filter((Z)=>Z.type==="move")}getScrollData($){let Z=this.getPageData($).filter((X)=>X.type==="scroll"),Y=new Map;for(let X of Z)if(X.depth!==void 0)Y.set(X.depth,(Y.get(X.depth)||0)+1);return Array.from(Y.entries()).map(([X,J])=>({depth:X,count:J})).sort((X,J)=>X.depth-J.depth)}getZoneStats($){let Z=new Map,Y=this.getPageData($);for(let X of Y)if(X.zone){let J=Z.get(X.zone)||{clicks:0,hovers:0};if(X.type==="click")J.clicks++;else if(X.type==="move")J.hovers++;Z.set(X.zone,J)}return Z}generateGridData($,Z=20){let Y=this.getPageData($),X=[];for(let Q=0;Q<Z;Q++){X[Q]=[];for(let G=0;G<Z;G++)X[Q][G]=0}for(let Q of Y){let G=Math.min(Math.floor(Q.x/100*Z),Z-1),K=Math.min(Math.floor(Q.y/100*Z),Z-1);X[K][G]+=Q.type==="click"?3:1}let J=0;for(let Q of X)for(let G of Q)J=Math.max(J,G);return X.map((Q,G)=>Q.map((K,z)=>({x:z,y:G,intensity:J>0?K/J:0})))}exportJSON(){return JSON.stringify({sessions:Array.from(this.sessions.values()),exportedAt:new Date().toISOString()},null,2)}clear(){this.sessions.clear()}get sessionCount(){return this.sessions.size}get totalPoints(){let $=0;for(let Z of this.sessions.values())$+=Z.points.length;return $}}function SO(){return new r9}var TG,s9;var O7=
|
|
1052
|
+
`}function o9($,Z){let Y=n9(Z);if(!Y)return $;let X=$.lastIndexOf("</body>");if(X!==-1)return $.slice(0,X)+Y+$.slice(X);return $+Y}function MG($){let Z={},Y=$.match(/(\w+)=["']?([^"'\s]+)["']?/g)||[];for(let X of Y){let[J,Q]=X.split("="),G=Q?.replace(/["']/g,"");switch(J){case"endpoint":Z.endpoint=G;break;case"samplingRate":Z.samplingRate=Number.parseInt(G,10);break;case"batchSize":Z.batchSize=Number.parseInt(G,10);break;case"trackMouse":Z.trackMouse=G==="true";break;case"trackClicks":Z.trackClicks=G==="true";break;case"trackScroll":Z.trackScroll=G==="true";break;case"honorDnt":Z.honorDnt=G==="true";break;case"debugOverlay":Z.debugOverlay=G==="true";break}}return Z}class r9{sessions=new Map;addSession($){let Z=this.sessions.get($.sid);if(Z)Z.points.push(...$.points),Z.lastActivity=Math.max(Z.lastActivity,$.lastActivity);else this.sessions.set($.sid,$)}getPageData($){let Z=[];for(let Y of this.sessions.values())if(Y.page===$)Z.push(...Y.points);return Z}getClickData($){return this.getPageData($).filter((Z)=>Z.type==="click")}getMovementData($){return this.getPageData($).filter((Z)=>Z.type==="move")}getScrollData($){let Z=this.getPageData($).filter((X)=>X.type==="scroll"),Y=new Map;for(let X of Z)if(X.depth!==void 0)Y.set(X.depth,(Y.get(X.depth)||0)+1);return Array.from(Y.entries()).map(([X,J])=>({depth:X,count:J})).sort((X,J)=>X.depth-J.depth)}getZoneStats($){let Z=new Map,Y=this.getPageData($);for(let X of Y)if(X.zone){let J=Z.get(X.zone)||{clicks:0,hovers:0};if(X.type==="click")J.clicks++;else if(X.type==="move")J.hovers++;Z.set(X.zone,J)}return Z}generateGridData($,Z=20){let Y=this.getPageData($),X=[];for(let Q=0;Q<Z;Q++){X[Q]=[];for(let G=0;G<Z;G++)X[Q][G]=0}for(let Q of Y){let G=Math.min(Math.floor(Q.x/100*Z),Z-1),K=Math.min(Math.floor(Q.y/100*Z),Z-1);X[K][G]+=Q.type==="click"?3:1}let J=0;for(let Q of X)for(let G of Q)J=Math.max(J,G);return X.map((Q,G)=>Q.map((K,z)=>({x:z,y:G,intensity:J>0?K/J:0})))}exportJSON(){return JSON.stringify({sessions:Array.from(this.sessions.values()),exportedAt:new Date().toISOString()},null,2)}clear(){this.sessions.clear()}get sessionCount(){return this.sessions.size}get totalPoints(){let $=0;for(let Z of this.sessions.values())$+=Z.points.length;return $}}function SO(){return new r9}var TG,s9;var O7=P(()=>{TG={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};s9={name:"heatmap",hasEndTag:!1,description:"Inject privacy-compliant heatmap tracking script",handler:async($,Z,Y,X)=>{let J=Y.__stx_config||{};if(Z.length>0){let Q=MG(Z.join(" "));J.heatmap={...J.heatmap,...Q,enabled:!0}}return n9(J)}}});function q1($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function a9($){let Z=$.trim().toLowerCase();return!Z.startsWith("javascript:")&&!Z.startsWith("vbscript:")&&!Z.startsWith("data:text/html")}function t9($){let Z=/^---\r?\n([\s\S]*?)\r?\n---\r?\n/,Y=$.match(Z);if(!Y)return{data:{},content:$.trim()};let X=Y[1],J=$.slice(Y[0].length),Q={};for(let G of X.split(`
|
|
1053
1053
|
`)){let K=G.trim();if(!K||K.startsWith("#"))continue;let z=K.indexOf(":");if(z===-1)continue;let q=K.slice(0,z).trim(),U=K.slice(z+1).trim();if(typeof U==="string"){if(U.startsWith('"')&&U.endsWith('"')||U.startsWith("'")&&U.endsWith("'"))U=U.slice(1,-1);else if(U.startsWith("[")&&U.endsWith("]"))try{U=JSON.parse(U)}catch{}else if(U==="true")U=!0;else if(U==="false")U=!1;else if(/^-?\d+(?:\.\d+)?$/.test(U))U=Number(U)}Q[q]=U}return{data:Q,content:J.trim()}}function b5($,Z={}){let{gfm:Y=!0,breaks:X=!1}=Z,J=$,Q=[];if(J=J.replace(/```(\w*)\n([\s\S]*?)```/g,(U,W,_)=>{let B=Q.length,j=W?` class="language-${q1(W)}"`:"";return Q.push(`<pre><code${j}>${q1(_.trim())}</code></pre>`),`\x00CODEBLOCK${B}\x00`}),J=J.replace(/`([^`]*)`/g,(U,W)=>`<code>${q1(W)}</code>`),J=J.replace(/^######\s+(.*)$/gm,"<h6>$1</h6>"),J=J.replace(/^#####\s+(.*)$/gm,"<h5>$1</h5>"),J=J.replace(/^####\s+(.*)$/gm,"<h4>$1</h4>"),J=J.replace(/^###\s+(.*)$/gm,"<h3>$1</h3>"),J=J.replace(/^##\s+(.*)$/gm,"<h2>$1</h2>"),J=J.replace(/^#\s+(.*)$/gm,"<h1>$1</h1>"),J=J.replace(/\*\*\*(.+?)\*\*\*/g,"<strong><em>$1</em></strong>"),J=J.replace(/___(.+?)___/g,"<strong><em>$1</em></strong>"),J=J.replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>"),J=J.replace(/__(.+?)__/g,"<strong>$1</strong>"),J=J.replace(/\*(.+?)\*/g,"<em>$1</em>"),J=J.replace(/(?<![a-zA-Z0-9])_(.+?)_(?![a-zA-Z0-9])/g,"<em>$1</em>"),Y)J=J.replace(/~~(.+?)~~/g,"<del>$1</del>");if(J=J.replace(/!\[([^\]]*)\]\(([^)]+)\)/g,(U,W,_)=>{return`<img src="${a9(_)?q1(_):""}" alt="${q1(W)}" />`}),J=J.replace(/\[([^\]]+)\]\(([^)]+)\)/g,(U,W,_)=>{return`<a href="${a9(_)?q1(_):""}">${W}</a>`}),J=J.replace(/^(?:---|\*\*\*|___)\s*$/gm,"<hr />"),J=J.replace(/^>\s+(.*)$/gm,"<blockquote>$1</blockquote>"),J=J.replace(/<\/blockquote>\n<blockquote>/g,`
|
|
1054
1054
|
`),J=J.replace(/^[*\-+]\s+(.*)$/gm,"<li data-ul>$1</li>"),J=J.replace(/(<li data-ul>.*<\/li>\n?)+/g,"<ul>$&</ul>"),J=J.replace(/<\/ul>\n<ul>/g,""),J=J.replace(/^\d+\.\s+(.*)$/gm,"<li data-ol>$1</li>"),J=J.replace(/(<li data-ol>.*<\/li>\n?)+/g,"<ol>$&</ol>"),J=J.replace(/<\/ol>\n<ol>/g,""),J=J.replace(/<li data-ul>/g,"<li>"),J=J.replace(/<li data-ol>/g,"<li>"),Y)J=J.replace(/^\|(.+)\|\s*\n\|[-:\s|]+\|\s*\n((?:\|.+\|\s*\n)*)/gm,(U,W,_)=>{let j=`<tr>${W.split("|").map((L)=>L.trim()).filter(Boolean).map((L)=>`<th>${q1(L)}</th>`).join("")}</tr>`,H=_.trim().split(`
|
|
1055
1055
|
`).map((L)=>{return`<tr>${L.split("|").map((O)=>O.trim()).filter(Boolean).map((O)=>`<td>${q1(O)}</td>`).join("")}</tr>`}).join(`
|
|
@@ -1068,8 +1068,8 @@ ${H}
|
|
|
1068
1068
|
`)}</p>`);if(J=K.join(`
|
|
1069
1069
|
`),X)J=J.replace(/\n/g,`<br />
|
|
1070
1070
|
`);for(let U=0;U<Q.length;U++)J=J.replace(`\x00CODEBLOCK${U}\x00`,Q[U]);return J=J.replace(/<p>\s*<\/p>/g,""),J.trim()}var IG={};l(IG,{processMarkdownDirectives:()=>L7,markdownDirectiveHandler:()=>F7});async function L7($,Z,Y=""){let X=$,J=[],Q=/@markdown(?:\([^)]*\))?/g,G;while((G=Q.exec($))!==null){let K=G.index,z=G[0].match(/@markdown\(([^)]*)\)/),q=z?z[1]:"",U=K+G[0].length,W=1,_=U,B=-1;while(W>0&&_<$.length){let L=$.indexOf("@markdown",_),F=$.indexOf("@endmarkdown",_);if(F===-1)break;if(L!==-1&&L<F&&L!==K){let O=$[L+9];if(O==="("||O===`
|
|
1071
|
-
`||O==="\r"||O===" "||O===void 0)W++;_=L+9}else{if(W--,W===0){B=F;break}_=F+12}}if(B===-1)continue;let j=$.slice(U,B),H=$.slice(K,B+12);J.push({fullMatch:H,options:q,content:j,index:K}),Q.lastIndex=B+12}for(let{fullMatch:K,options:z,content:q,index:U}of J)try{let W={};if(z)z.split(",").forEach((j)=>{let H=j.trim();if(H)W[H]=!0});let _={gfm:W.gfm??!0,breaks:W.breaks??!1},B=b5(q.trim(),_);X=X.split(K).join(B)}catch(W){let _=W instanceof Error?W.message:String(W),B=J0("Markdown Directive",`Error processing markdown: ${_}`,Y,$,U,K);X=X.split(K).join(B)}return X}async function F7($,Z,Y,X){let J={gfm:!0,breaks:!1};return Z.forEach((Q)=>{let G=Q.trim().replace(/['"]/g,"");if(G==="breaks")J.breaks=!0;if(G==="no-gfm")J.gfm=!1}),b5($.trim(),J)}var V7=
|
|
1072
|
-
`)}function lO($,Z){if($.length===0)return;let Y=[...$].sort((J,Q)=>J.width-Q.width),X=Y.find((J)=>J.width>=Z);if(X)return X;return Y[Y.length-1]}function pO($,Z){let Y=Z?$.filter((J)=>J.format===Z):$;if(Y.length===0){let J=$.filter((G)=>G.format==="jpeg"),Q=J.length>0?J:$;return Q[Math.floor(Q.length/2)]}let X=Y.sort((J,Q)=>J.width-Q.width);return X[Math.floor(X.length/2)]}function cO($){let Z=new Map;for(let Y of $){let X=Z.get(Y.format)||[];X.push(Y),Z.set(Y.format,X)}return Z}function R7($){return $8[$]||"application/octet-stream"}function iO($){return DG[$]||$}function nO($){switch($.split(".").pop()?.toLowerCase()){case"jpg":case"jpeg":return"jpeg";case"png":return"png";case"webp":return"webp";case"avif":return"avif";case"gif":return"gif";default:return}}var k1,e9,e1,$8,DG,hO;var N7=
|
|
1071
|
+
`||O==="\r"||O===" "||O===void 0)W++;_=L+9}else{if(W--,W===0){B=F;break}_=F+12}}if(B===-1)continue;let j=$.slice(U,B),H=$.slice(K,B+12);J.push({fullMatch:H,options:q,content:j,index:K}),Q.lastIndex=B+12}for(let{fullMatch:K,options:z,content:q,index:U}of J)try{let W={};if(z)z.split(",").forEach((j)=>{let H=j.trim();if(H)W[H]=!0});let _={gfm:W.gfm??!0,breaks:W.breaks??!1},B=b5(q.trim(),_);X=X.split(K).join(B)}catch(W){let _=W instanceof Error?W.message:String(W),B=J0("Markdown Directive",`Error processing markdown: ${_}`,Y,$,U,K);X=X.split(K).join(B)}return X}async function F7($,Z,Y,X){let J={gfm:!0,breaks:!1};return Z.forEach((Q)=>{let G=Q.trim().replace(/['"]/g,"");if(G==="breaks")J.breaks=!0;if(G==="no-gfm")J.gfm=!1}),b5($.trim(),J)}var V7=P(()=>{O0()});function S5($,Z=k1,Y={},X){return Z.sort((J,Q)=>J-Q).map((J)=>{return`${U1($,{...Y,w:J,fm:X})} ${J}w`}).join(", ")}function xO($,Z=320,Y=2560,X=0.08,J={},Q){let G=EG(Z,Y,X);return S5($,G,J,Q)}function EG($,Z,Y=0.08){let X=[],J=$;while(J<Z)X.push(Math.round(J)),J*=1+Y*2;if(X[X.length-1]!==Z)X.push(Z);return X}function w7($,Z,Y=e9,X={},J){return Y.sort((Q,G)=>Q-G).map((Q)=>{let G=Math.round(Z*Q);return`${U1($,{...X,w:G,dpr:Q,fm:J})} ${Q}x`}).join(", ")}function fO($,Z,Y=e9,X=80,J={},Q){let G={1:X,1.5:Math.round(X*0.9),2:Math.round(X*0.8),3:Math.round(X*0.7),4:Math.round(X*0.6),5:Math.round(X*0.5)};return Y.sort((K,z)=>K-z).map((K)=>{let z=Math.round(Z*K),q=G[K]||Math.round(X*Math.max(0.5,1-K*0.1));return`${U1($,{...J,w:z,q,dpr:K,fm:Q})} ${K}x`}).join(", ")}function A7($,Z="100vw"){if(!$||Object.keys($).length===0)return Z;let X=Object.entries($).map(([J,Q])=>{let G=/^\d+$/.test(J)?`${J}px`:J;return{bp:G,size:Q,numericBp:Number.parseInt(G)||0}}).sort((J,Q)=>J.numericBp-Q.numericBp).map(({bp:J,size:Q})=>`(max-width: ${J}) ${Q}`);return X.push(Z),X.join(", ")}function gO($,Z="100vw"){if(!$||$.length===0)return Z;let X=[...$].sort((J,Q)=>(J.maxWidth||0)-(Q.maxWidth||0)).filter((J)=>J.maxWidth).map((J)=>`(max-width: ${J.maxWidth}px) ${J.imageWidth}`);return X.push(Z),X.join(", ")}function U1($,Z={}){let Y=Object.entries(Z).filter(([,Q])=>Q!==void 0&&Q!==null).map(([Q,G])=>{if(Array.isArray(G))return[Q,G.join(",")];return[Q,String(G)]});if(Y.length===0)return $;let X=Y.map(([Q,G])=>`${Q}=${encodeURIComponent(G)}`).join("&"),J=$.includes("?")?"&":"?";return`${$}${J}${X}`}function dO($){let[Z,Y]=$.split("?"),X={};if(Y)new URLSearchParams(Y).forEach((Q,G)=>{if(/^\d+$/.test(Q))X[G]=Number.parseInt(Q,10);else if(/^\d+\.\d+$/.test(Q))X[G]=Number.parseFloat(Q);else if(Q==="true")X[G]=!0;else if(Q==="false")X[G]=!1;else X[G]=Q});return{src:Z,params:X}}function mO($){let{src:Z,widths:Y,dprValues:X,fixedWidth:J,formats:Q=e1,baseUrl:G="",params:K={}}=$,z=[];for(let q of Q){let U,W;if(J!==void 0&&X)U=w7(Z,J,X,K,q),W=X.map((_)=>({path:"",url:U1(Z,{...K,w:Math.round(J*_),fm:q}),width:Math.round(J*_),height:0,format:q,size:0,dpr:_}));else{let _=Y||k1;U=S5(Z,_,K,q),W=_.map((B)=>({path:"",url:U1(Z,{...K,w:B,fm:q}),width:B,height:0,format:q,size:0}))}z.push({srcset:U,format:q,mimeType:$8[q],variants:W})}return z}function uO($,Z="100vw"){return $.map(({srcset:Y,mimeType:X})=>`<source type="${X}" srcset="${Y}" sizes="${Z}" />`).join(`
|
|
1072
|
+
`)}function lO($,Z){if($.length===0)return;let Y=[...$].sort((J,Q)=>J.width-Q.width),X=Y.find((J)=>J.width>=Z);if(X)return X;return Y[Y.length-1]}function pO($,Z){let Y=Z?$.filter((J)=>J.format===Z):$;if(Y.length===0){let J=$.filter((G)=>G.format==="jpeg"),Q=J.length>0?J:$;return Q[Math.floor(Q.length/2)]}let X=Y.sort((J,Q)=>J.width-Q.width);return X[Math.floor(X.length/2)]}function cO($){let Z=new Map;for(let Y of $){let X=Z.get(Y.format)||[];X.push(Y),Z.set(Y.format,X)}return Z}function R7($){return $8[$]||"application/octet-stream"}function iO($){return DG[$]||$}function nO($){switch($.split(".").pop()?.toLowerCase()){case"jpg":case"jpeg":return"jpeg";case"png":return"png";case"webp":return"webp";case"avif":return"avif";case"gif":return"gif";default:return}}var k1,e9,e1,$8,DG,hO;var N7=P(()=>{k1=[320,480,640,768,1024,1280,1536,1920,2560],e9=[1,1.5,2,3],e1=["avif","webp","jpeg"],$8={avif:"image/avif",webp:"image/webp",jpeg:"image/jpeg",png:"image/png",gif:"image/gif"},DG={avif:"avif",webp:"webp",jpeg:"jpg",png:"png",gif:"gif"};hO={fullWidth:"100vw",halfDesktop:"(max-width: 768px) 100vw, 50vw",thirdDesktop:"(max-width: 768px) 100vw, 33.33vw",quarterDesktop:"(max-width: 480px) 100vw, (max-width: 768px) 50vw, 25vw",contentWidth:"(max-width: 768px) 100vw, (max-width: 1200px) 80vw, 960px"}});async function M7(){try{return await import("ts-images")}catch{return null}}async function Z8($,Z={}){let Y={...kG,...Z},X=await M7();if(X)try{return await bG($,Y,X)}catch(J){console.warn(`[stx-media] ts-images placeholder generation failed, using fallback: ${J}`)}return Y8($,Y)}async function bG($,Z,Y){let{generatePlaceholder:X,generateThumbHash:J}=Y,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 J($)).dataUrl,width:32,height:32,aspectRatio:1,originalWidth:0,originalHeight:0,strategy:"thumbhash"};let K=await X($,{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 Y8($,Z){let Y=Z.width||20,X=Z.height||Y,J="#e5e7eb",Q=`<svg xmlns="http://www.w3.org/2000/svg" width="${Y}" height="${X}" viewBox="0 0 ${Y} ${X}"><rect fill="#e5e7eb" width="${Y}" height="${X}"/></svg>`;return{dataURL:`data:image/svg+xml;charset=utf-8,${encodeURIComponent(Q)}`,width:Y,height:X,aspectRatio:Y/X,originalWidth:0,originalHeight:0,strategy:Z.strategy,dominantColor:"#e5e7eb"}}async function sO($){let Z=await M7();if(Z)try{return(await Z.generateThumbHash($)).dataUrl}catch{}return(await Y8($,{strategy:"thumbhash",width:32,height:32})).dataURL}function rO($){let Z=$[0]|$[1]<<8|$[2]<<16,Y=(Z&63)/63,X=(Z>>6&63)/31.5-1,J=(Z>>12&63)/31.5-1,Q=(Z>>18&31)/31,G=Z>>23!==0,K=$[3]|$[4]<<8,z=(K>>3&63)/63,q=(K>>9&63)/63,U=K>>15!==0,W=Math.max(3,U?G?5:7:G?5:7),_=Math.max(3,U?G?5:7:G?5:7),B=32,j=32,H=Math.max(0,Math.min(255,Math.round((Y+X)*255))),L=Math.max(0,Math.min(255,Math.round(Y*255))),F=Math.max(0,Math.min(255,Math.round((Y-X)*255))),O=`<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32">
|
|
1073
1073
|
<rect fill="rgb(${H},${L},${F})" width="32" height="32"/>
|
|
1074
1074
|
</svg>`;return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(O)}`}async function aO($,Z=20,Y=50){return Z8($,{strategy:"blur",width:Z,quality:Y,blurLevel:40})}async function tO($){let Z=await M7();if(Z)try{return(await Z.generatePlaceholder($,{strategy:"dominant-color"})).dominantColor||"#e5e7eb"}catch{}return"#e5e7eb"}function eO($,Z=1,Y=1){let X=`<svg xmlns="http://www.w3.org/2000/svg" width="${Z}" height="${Y}"><rect fill="${$}" width="${Z}" height="${Y}"/></svg>`;return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(X)}`}function X8($,Z,Y={}){let X=Y.transitionDuration||300,J=Y.easing||"ease-out";return`
|
|
1075
1075
|
#${$} {
|
|
@@ -1088,7 +1088,7 @@ ${H}
|
|
|
1088
1088
|
#${$}.stx-img-loaded img {
|
|
1089
1089
|
opacity: 1;
|
|
1090
1090
|
}
|
|
1091
|
-
`.trim()}function $L($){return`background-image: url('${$.dataURL}'); background-size: cover; background-position: center;`}async function J8($,Z={}){let Y=`${$}:${JSON.stringify(Z)}`;if($5.has(Y))return $5.get(Y);let X=await Z8($,Z);return $5.set(Y,X),X}function ZL(){$5.clear()}function YL(){return{size:$5.size,keys:Array.from($5.keys())}}var kG,T7,$5;var Q8=
|
|
1091
|
+
`.trim()}function $L($){return`background-image: url('${$.dataURL}'); background-size: cover; background-position: center;`}async function J8($,Z={}){let Y=`${$}:${JSON.stringify(Z)}`;if($5.has(Y))return $5.get(Y);let X=await Z8($,Z);return $5.set(Y,X),X}function ZL(){$5.clear()}function YL(){return{size:$5.size,keys:Array.from($5.keys())}}var kG,T7,$5;var Q8=P(()=>{kG={strategy:"thumbhash",width:20,quality:50,blurLevel:40,transitionDuration:300,easing:"ease-out"},T7=`
|
|
1092
1092
|
.stx-img-placeholder {
|
|
1093
1093
|
position: relative;
|
|
1094
1094
|
overflow: hidden;
|
|
@@ -1117,7 +1117,7 @@ ${H}
|
|
|
1117
1117
|
filter: blur(0);
|
|
1118
1118
|
transform: scale(1);
|
|
1119
1119
|
}
|
|
1120
|
-
`.trim();$5=new Map});import{createHash as I7}from"crypto";import{readFile as SG,stat as K8}from"fs/promises";async function T0($){try{let Z=await SG($);return I7("sha256").update(Z).digest("hex").slice(0,16)}catch{return""}}function GL($){return I7("sha256").update($).digest("hex").slice(0,16)}function G8($){return I7("sha256").update($).digest("hex").slice(0,16)}function w$($,Z){let Y=JSON.stringify(Z,Object.keys(Z).sort());return`${G8($)}-${G8(Y)}`}async function D7($){try{return(await K8($)).mtimeMs}catch{return 0}}async function R0($){try{return await K8($),!0}catch{return!1}}var b1=()=>{};import{mkdir as yG,readFile as q8,writeFile as CG,readdir as U8,rm as E7,stat as PG}from"fs/promises";import{join as Z5,dirname as vG}from"path";async function xG($){try{await yG($,{recursive:!0})}catch{}}function W8($,Z,Y){return Z5($,Y,`${Z}.json`)}async function z8($,Z,Y){if((Date.now()-$.createdAt)/86400000>Y)return!1;if(await D7(Z)!==$.srcMtime)return!1;return!0}async function A$($,Z,Y,X=Y5){if(!X.enabled)return null;let J=w$($,Z),Q=a0.get(J);if(Q){if(await z8(Q,$,X.maxAge))return Q.lastAccessedAt=Date.now(),Q.data;a0.delete(J)}let G=W8(X.directory,J,Y);if(await R0(G))try{let K=await q8(G,"utf-8"),z=JSON.parse(K);if(await z8(z,$,X.maxAge))return z.lastAccessedAt=Date.now(),a0.set(J,z),z.data}catch{}return null}async function R$($,Z,Y,X,J=Y5){if(!J.enabled)return;let Q=w$($,Z),G=await T0($),K=await D7($),z={key:Q,src:$,srcHash:G,srcMtime:K,optionsHash:w$("",Z),data:Y,createdAt:Date.now(),lastAccessedAt:Date.now()};a0.set(Q,z);let q=W8(J.directory,Q,X);try{await xG(vG(q)),await CG(q,JSON.stringify(z,null,2))}catch(U){console.warn(`[stx-media] Failed to write cache: ${U}`)}}async function WL($,Z,Y=Y5){for(let[X,J]of a0.entries())if(J.src===$)a0.delete(X)}async function N$($,Z=Y5){if($==="all")a0.clear();else a0.clear();let Y=$==="all"?["image","video"]:[$];for(let X of Y){let J=Z5(Z.directory,X);try{await E7(J,{recursive:!0,force:!0})}catch{}}}async function _L($=Y5){let Z={memoryEntries:a0.size,diskEntries:{image:0,video:0},totalSizeMB:0};for(let Y of["image","video"]){let X=Z5($.directory,Y);try{let J=await U8(X);Z.diskEntries[Y]=J.length;for(let Q of J){let G=Z5(X,Q),K=await PG(G);Z.totalSizeMB+=K.size/1048576}}catch{}}return Z}async function BL($=Y5){let Z=0,Y=$.maxAge*24*60*60*1000;for(let X of["image","video"]){let J=Z5($.directory,X);try{let Q=await U8(J);for(let G of Q){let K=Z5(J,G);try{let z=await q8(K,"utf-8"),q=JSON.parse(z);if(Date.now()-q.createdAt>Y)await E7(K),a0.delete(q.key),Z++}catch{await E7(K).catch(()=>{}),Z++}}}catch{}}return Z}var a0,Y5;var k7=C(()=>{b1();a0=new Map,Y5={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}});class M${config;constructor($={}){this.config={...fG,...$}}async get($,Z){return A$($,Z,"image",this.config)}async set($,Z,Y){return R$($,Z,Y,"image",this.config)}async clear(){return N$("image",this.config)}updateConfig($){this.config={...this.config,...$}}}function b7($){if(!T$)T$=new M$($);else if($)T$.updateConfig($);return T$}async function I$($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return b7(X).get($,Z)}async function D$($,Z,Y,X){let J=X?{directory:`${X.outputDir}/../.cache`}:{};return b7(J).set($,Z,Y)}async function _8(){return b7().clear()}var fG,T$=null;var S7=C(()=>{k7();fG={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500,cacheVariants:!0,cachePlaceholders:!0}});import{resolve as gG,basename as hG,extname as dG,join as mG}from"path";import{mkdir as uG}from"fs/promises";async function y7(){try{return await import("ts-images")}catch{return null}}function B8($){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 lG($,Z){let Y=Z?B8(Z):B8("web"),X=$.formatQuality||{};return{jpeg:{...Y.jpeg,...X.jpeg},png:{...Y.png,...X.png},webp:{...Y.webp,...X.webp},avif:{...Y.avif,...X.avif}}}async function j8($,Z,Y){let X=await y7();if(!X)return console.warn("[stx-media] ts-images not installed, skipping optimization"),{src:$,processed:!1};let J=await I$($,Z,Y);if(J)return J;try{let Q=gG($);if(!await R0(Q))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let G=lG(Y,Z.preset),K=Y.outputDir||"dist/images",z=Y.baseUrl||"/images";await uG(K,{recursive:!0});let q=await T0(Q),U=hG($,dG($)),W=Z.outputFormat?[Z.outputFormat]:Y.defaultFormats||["avif","webp","jpeg"],_={src:$,processed:!0,variants:[],hash:q},B=null;if(Z.transformations&&Z.transformations.length>0)B=await C7(Q,Z.transformations,X);for(let j of W){let H=G[j]||{},L=`${U}-${q}.${j}`,F=mG(K,L);try{let O=await X.optimizeImage({input:B||Q,output:F,format:j,quality:H.quality,progressive:H.progressive});if(O){if(_.variants.push({path:F,url:`${z}/${L}`,width:O.width||0,height:O.height||0,format:j,size:O.outputSize||0}),!_.originalWidth&&O.width)_.originalWidth=O.width,_.originalHeight=O.height}}catch(O){_.errors=_.errors||[],_.errors.push(`Failed to optimize ${j}: ${O}`)}}if(Z.embedThumbhash||Z.placeholder==="thumbhash")try{let j=await X.generateThumbHash(Q);_.placeholder=j.dataUrl}catch(j){_.errors=_.errors||[],_.errors.push(`Failed to generate thumbhash: ${j}`)}if(Z.useDominantColor)try{let j=await X.generatePlaceholder(Q,{strategy:"dominant-color"});_.dominantColor=j.dominantColor}catch(j){_.errors=_.errors||[],_.errors.push(`Failed to extract dominant color: ${j}`)}return await D$($,Z,_,Y),_}catch(Q){return{src:$,processed:!1,errors:[`Processing failed: ${Q}`]}}}async function H8($,Z,Y,X){let J=await y7();if(!J)return{success:!1,error:"ts-images not installed"};try{return{success:!0,size:(await J.optimizeImage({input:$,output:X,format:Z,quality:Y}))?.outputSize}}catch(Q){return{success:!1,error:String(Q)}}}async function C7($,Z,Y){let X=Y||await y7();if(!X)return console.warn("[stx-media] ts-images not installed, skipping transformations"),null;try{let J=await X.decode($);for(let Q of Z){let G=Q.options||{};switch(Q.type){case"resize":if(G.width||G.height)J=await X.resize(J,{width:G.width,height:G.height,fit:G.fit});break;case"blur":if(G.sigma!==void 0)J=await X.blur(J,G.sigma);break;case"sharpen":if(G.amount!==void 0)J=await X.sharpen(J,G.amount);break;case"grayscale":J=await X.grayscale(J);break;case"rotate":if(G.angle!==void 0)J=await X.rotate(J,G.angle);break;case"flip":J=await X.flip(J);break;case"flop":J=await X.flop(J);break;case"brightness":if(G.value!==void 0)J=await X.brightness(J,G.value);break;case"contrast":if(G.value!==void 0)J=await X.contrast(J,G.value);break;case"saturation":if(G.value!==void 0)J=await X.saturation(J,G.value);break}}return await X.encode(J,"png")}catch(J){return console.error(`[stx-media] Transformation failed: ${J}`),null}}var O8=C(()=>{b1();S7()});import{resolve as pG,basename as cG,extname as iG,join as nG}from"path";import{mkdir as oG}from"fs/promises";async function sG(){try{return await import("ts-images")}catch{return null}}async function P7($,Z,Y){let X=await sG();if(!X)return console.warn("[stx-media] ts-images not installed, skipping responsive generation"),null;let J=pG($);if(!await R0(J))return console.warn(`[stx-media] Source file not found: ${$}`),null;try{let Q=Z.responsiveWidths||Y.breakpoints||rG,G=Z.formats||Y.defaultFormats||["avif","webp","jpeg"],K=Y.outputDir||"dist/images",z=Y.baseUrl||"/images";await oG(K,{recursive:!0});let q=await T0(J),U=cG($,iG($)),W=Y.formatQuality||{jpeg:{quality:82},png:{quality:80},webp:{quality:82},avif:{quality:75}},_={src:$,byFormat:{},srcsets:{}};for(let j of G){_.byFormat[j]=[];let H=[];for(let L of Q){let F=`${U}-${L}w-${q}.${j}`,O=nG(K,F),V=`${z}/${F}`;try{let w=W[j]?.quality||80;if(await R0(O)){_.byFormat[j].push({path:O,url:V,width:L,height:0,format:j,size:0}),H.push(`${V} ${L}w`);continue}let A=await X.processImage({input:J,output:O,format:j,quality:w,resize:{width:L}});if(A)_.byFormat[j].push({path:O,url:V,width:L,height:A.height||Math.round(L*(A.height||1)/(A.width||1)),format:j,size:A.outputSize||0}),H.push(`${V} ${L}w`)}catch(w){console.warn(`[stx-media] Failed to generate ${j} at ${L}w: ${w}`)}}_.srcsets[j]=H.join(", ")}let B=Z.placeholder||Y.placeholderStrategy||"thumbhash";if(B!=="none")try{if(B==="thumbhash"){let j=await X.generateThumbHash(J);_.placeholder={dataURL:j.dataUrl,width:j.width||32,height:j.height||32,strategy:"thumbhash"}}else{let j=await X.generatePlaceholder(J,{strategy:B,width:20});_.placeholder={dataURL:j.dataURL,width:j.width,height:j.height,strategy:B}}}catch(j){console.warn(`[stx-media] Failed to generate placeholder: ${j}`)}return _.sizes=Z.sizes||aG(Q),_}catch(Q){return console.error(`[stx-media] Responsive generation failed: ${Q}`),null}}function aG($){let Z=[...$].sort((X,J)=>X-J),Y=[];for(let X=0;X<Z.length-1;X++){let J=Z[X];Y.push(`(max-width: ${J}px) ${J}px`)}return Y.push(`${Z[Z.length-1]}px`),Y.join(", ")}function L8($,Z="width"){if(!$||$.length===0)return"";if(Z==="dpr")return $.filter((Y)=>Y.dpr).map((Y)=>`${Y.url} ${Y.dpr}x`).join(", ");return $.map((Y)=>`${Y.url} ${Y.width}w`).join(", ")}async function DL($,Z,Y){let X=[];for(let J of Z){let Q=await P7(J.src,{responsiveWidths:J.widths},Y);if(Q){for(let[G,K]of Object.entries(Q.srcsets))if(K)X.push({media:J.media,srcset:K,type:tG(G)})}}return X}function tG($){switch($){case"avif":return"image/avif";case"webp":return"image/webp";case"jpeg":return"image/jpeg";case"png":return"image/png";case"gif":return"image/gif";default:return"image/jpeg"}}var rG;var F8=C(()=>{b1();rG=[320,480,640,768,1024,1280,1536,1920]});var V8={};l(V8,{setCachedImageResult:()=>D$,processImage:()=>j8,optimizeImage:()=>H8,getCachedImageResult:()=>I$,generateSrcset:()=>L8,generateResponsiveVariants:()=>P7,clearImageCache:()=>_8,applyTransformations:()=>C7,ImageProcessorCache:()=>M$});var w8=C(()=>{O8();F8();S7()});async function eG(){try{return await Promise.resolve().then(() => (w8(),V8))}catch($){if(!A8)console.warn("[stx-media] Image processor not available, some features disabled:",$),A8=!0;return null}}async function y5($,Z={}){let Y=Z,X=$;if(X.process&&!X.skipOptimization){if(Y.tsImagesConfig?.enabled&&!Y.isDev)return JK(X,Y)}if(Y.processedResult?.processed)return g7($,Y.processedResult,Z);if(Y.responsiveVariants)return M8($,Y.responsiveVariants,Z);let{src:J,alt:Q,width:G,height:K,sizes:z,widths:q=k1,dpr:U,formats:W=e1,quality:_=v7,params:B={},placeholder:j="none",placeholderOptions:H={},lazy:L=!0,priority:F=!1,loading:O=F?"eager":k$,decoding:V=E$,fetchpriority:w,objectFit:A,objectPosition:R,crossorigin:N,referrerpolicy:M}=$,T=$.class,I=$.style,D=$.id,E=$.data||{},{isDev:b=!1,baseUrl:S=""}=Z;if(b&&!Z.optimize)return YK($);let k,y,h=D||`stx-img-${Math.random().toString(36).slice(2,8)}`;if(j!=="none"&&!F)try{k=await J8(J,{strategy:j,...H}),y=X8(h,k,H)}catch{}let f=U!==void 0&&G!==void 0,m;if(f)m=ZK($,h,k,Z);else m=await $K($,h,k,Z);let o;if(F){let y0=W.includes("webp")?"webp":W[0],D0=S5(J,q,{...B,q:_},y0),X0=typeof z==="object"?A7(z):z||"100vw";o=`<link rel="preload" as="image" imagesrcset="${D0}" imagesizes="${X0}" />`}let N0=[];if(!R8&&j!=="none")N0.push(T7),R8=!0;if(y)N0.push(y);let Z1=L?T8(h):void 0;return{html:m,preloadLink:o,css:N0.length>0?N0.join(`
|
|
1120
|
+
`.trim();$5=new Map});import{createHash as I7}from"crypto";import{readFile as SG,stat as K8}from"fs/promises";async function M0($){try{let Z=await SG($);return I7("sha256").update(Z).digest("hex").slice(0,16)}catch{return""}}function GL($){return I7("sha256").update($).digest("hex").slice(0,16)}function G8($){return I7("sha256").update($).digest("hex").slice(0,16)}function w$($,Z){let Y=JSON.stringify(Z,Object.keys(Z).sort());return`${G8($)}-${G8(Y)}`}async function D7($){try{return(await K8($)).mtimeMs}catch{return 0}}async function R0($){try{return await K8($),!0}catch{return!1}}var b1=()=>{};import{mkdir as yG,readFile as q8,writeFile as CG,readdir as U8,rm as E7,stat as PG}from"fs/promises";import{join as Z5,dirname as vG}from"path";async function xG($){try{await yG($,{recursive:!0})}catch{}}function W8($,Z,Y){return Z5($,Y,`${Z}.json`)}async function z8($,Z,Y){if((Date.now()-$.createdAt)/86400000>Y)return!1;if(await D7(Z)!==$.srcMtime)return!1;return!0}async function A$($,Z,Y,X=Y5){if(!X.enabled)return null;let J=w$($,Z),Q=a0.get(J);if(Q){if(await z8(Q,$,X.maxAge))return Q.lastAccessedAt=Date.now(),Q.data;a0.delete(J)}let G=W8(X.directory,J,Y);if(await R0(G))try{let K=await q8(G,"utf-8"),z=JSON.parse(K);if(await z8(z,$,X.maxAge))return z.lastAccessedAt=Date.now(),a0.set(J,z),z.data}catch{}return null}async function R$($,Z,Y,X,J=Y5){if(!J.enabled)return;let Q=w$($,Z),G=await M0($),K=await D7($),z={key:Q,src:$,srcHash:G,srcMtime:K,optionsHash:w$("",Z),data:Y,createdAt:Date.now(),lastAccessedAt:Date.now()};a0.set(Q,z);let q=W8(J.directory,Q,X);try{await xG(vG(q)),await CG(q,JSON.stringify(z,null,2))}catch(U){console.warn(`[stx-media] Failed to write cache: ${U}`)}}async function WL($,Z,Y=Y5){for(let[X,J]of a0.entries())if(J.src===$)a0.delete(X)}async function N$($,Z=Y5){if($==="all")a0.clear();else a0.clear();let Y=$==="all"?["image","video"]:[$];for(let X of Y){let J=Z5(Z.directory,X);try{await E7(J,{recursive:!0,force:!0})}catch{}}}async function _L($=Y5){let Z={memoryEntries:a0.size,diskEntries:{image:0,video:0},totalSizeMB:0};for(let Y of["image","video"]){let X=Z5($.directory,Y);try{let J=await U8(X);Z.diskEntries[Y]=J.length;for(let Q of J){let G=Z5(X,Q),K=await PG(G);Z.totalSizeMB+=K.size/1048576}}catch{}}return Z}async function BL($=Y5){let Z=0,Y=$.maxAge*24*60*60*1000;for(let X of["image","video"]){let J=Z5($.directory,X);try{let Q=await U8(J);for(let G of Q){let K=Z5(J,G);try{let z=await q8(K,"utf-8"),q=JSON.parse(z);if(Date.now()-q.createdAt>Y)await E7(K),a0.delete(q.key),Z++}catch{await E7(K).catch(()=>{}),Z++}}}catch{}}return Z}var a0,Y5;var k7=P(()=>{b1();a0=new Map,Y5={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}});class M${config;constructor($={}){this.config={...fG,...$}}async get($,Z){return A$($,Z,"image",this.config)}async set($,Z,Y){return R$($,Z,Y,"image",this.config)}async clear(){return N$("image",this.config)}updateConfig($){this.config={...this.config,...$}}}function b7($){if(!T$)T$=new M$($);else if($)T$.updateConfig($);return T$}async function I$($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return b7(X).get($,Z)}async function D$($,Z,Y,X){let J=X?{directory:`${X.outputDir}/../.cache`}:{};return b7(J).set($,Z,Y)}async function _8(){return b7().clear()}var fG,T$=null;var S7=P(()=>{k7();fG={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500,cacheVariants:!0,cachePlaceholders:!0}});import{resolve as gG,basename as hG,extname as dG,join as mG}from"path";import{mkdir as uG}from"fs/promises";async function y7(){try{return await import("ts-images")}catch{return null}}function B8($){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 lG($,Z){let Y=Z?B8(Z):B8("web"),X=$.formatQuality||{};return{jpeg:{...Y.jpeg,...X.jpeg},png:{...Y.png,...X.png},webp:{...Y.webp,...X.webp},avif:{...Y.avif,...X.avif}}}async function j8($,Z,Y){let X=await y7();if(!X)return console.warn("[stx-media] ts-images not installed, skipping optimization"),{src:$,processed:!1};let J=await I$($,Z,Y);if(J)return J;try{let Q=gG($);if(!await R0(Q))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let G=lG(Y,Z.preset),K=Y.outputDir||"dist/images",z=Y.baseUrl||"/images";await uG(K,{recursive:!0});let q=await M0(Q),U=hG($,dG($)),W=Z.outputFormat?[Z.outputFormat]:Y.defaultFormats||["avif","webp","jpeg"],_={src:$,processed:!0,variants:[],hash:q},B=null;if(Z.transformations&&Z.transformations.length>0)B=await C7(Q,Z.transformations,X);for(let j of W){let H=G[j]||{},L=`${U}-${q}.${j}`,F=mG(K,L);try{let O=await X.optimizeImage({input:B||Q,output:F,format:j,quality:H.quality,progressive:H.progressive});if(O){if(_.variants.push({path:F,url:`${z}/${L}`,width:O.width||0,height:O.height||0,format:j,size:O.outputSize||0}),!_.originalWidth&&O.width)_.originalWidth=O.width,_.originalHeight=O.height}}catch(O){_.errors=_.errors||[],_.errors.push(`Failed to optimize ${j}: ${O}`)}}if(Z.embedThumbhash||Z.placeholder==="thumbhash")try{let j=await X.generateThumbHash(Q);_.placeholder=j.dataUrl}catch(j){_.errors=_.errors||[],_.errors.push(`Failed to generate thumbhash: ${j}`)}if(Z.useDominantColor)try{let j=await X.generatePlaceholder(Q,{strategy:"dominant-color"});_.dominantColor=j.dominantColor}catch(j){_.errors=_.errors||[],_.errors.push(`Failed to extract dominant color: ${j}`)}return await D$($,Z,_,Y),_}catch(Q){return{src:$,processed:!1,errors:[`Processing failed: ${Q}`]}}}async function H8($,Z,Y,X){let J=await y7();if(!J)return{success:!1,error:"ts-images not installed"};try{return{success:!0,size:(await J.optimizeImage({input:$,output:X,format:Z,quality:Y}))?.outputSize}}catch(Q){return{success:!1,error:String(Q)}}}async function C7($,Z,Y){let X=Y||await y7();if(!X)return console.warn("[stx-media] ts-images not installed, skipping transformations"),null;try{let J=await X.decode($);for(let Q of Z){let G=Q.options||{};switch(Q.type){case"resize":if(G.width||G.height)J=await X.resize(J,{width:G.width,height:G.height,fit:G.fit});break;case"blur":if(G.sigma!==void 0)J=await X.blur(J,G.sigma);break;case"sharpen":if(G.amount!==void 0)J=await X.sharpen(J,G.amount);break;case"grayscale":J=await X.grayscale(J);break;case"rotate":if(G.angle!==void 0)J=await X.rotate(J,G.angle);break;case"flip":J=await X.flip(J);break;case"flop":J=await X.flop(J);break;case"brightness":if(G.value!==void 0)J=await X.brightness(J,G.value);break;case"contrast":if(G.value!==void 0)J=await X.contrast(J,G.value);break;case"saturation":if(G.value!==void 0)J=await X.saturation(J,G.value);break}}return await X.encode(J,"png")}catch(J){return console.error(`[stx-media] Transformation failed: ${J}`),null}}var O8=P(()=>{b1();S7()});import{resolve as pG,basename as cG,extname as iG,join as nG}from"path";import{mkdir as oG}from"fs/promises";async function sG(){try{return await import("ts-images")}catch{return null}}async function P7($,Z,Y){let X=await sG();if(!X)return console.warn("[stx-media] ts-images not installed, skipping responsive generation"),null;let J=pG($);if(!await R0(J))return console.warn(`[stx-media] Source file not found: ${$}`),null;try{let Q=Z.responsiveWidths||Y.breakpoints||rG,G=Z.formats||Y.defaultFormats||["avif","webp","jpeg"],K=Y.outputDir||"dist/images",z=Y.baseUrl||"/images";await oG(K,{recursive:!0});let q=await M0(J),U=cG($,iG($)),W=Y.formatQuality||{jpeg:{quality:82},png:{quality:80},webp:{quality:82},avif:{quality:75}},_={src:$,byFormat:{},srcsets:{}};for(let j of G){_.byFormat[j]=[];let H=[];for(let L of Q){let F=`${U}-${L}w-${q}.${j}`,O=nG(K,F),V=`${z}/${F}`;try{let w=W[j]?.quality||80;if(await R0(O)){_.byFormat[j].push({path:O,url:V,width:L,height:0,format:j,size:0}),H.push(`${V} ${L}w`);continue}let A=await X.processImage({input:J,output:O,format:j,quality:w,resize:{width:L}});if(A)_.byFormat[j].push({path:O,url:V,width:L,height:A.height||Math.round(L*(A.height||1)/(A.width||1)),format:j,size:A.outputSize||0}),H.push(`${V} ${L}w`)}catch(w){console.warn(`[stx-media] Failed to generate ${j} at ${L}w: ${w}`)}}_.srcsets[j]=H.join(", ")}let B=Z.placeholder||Y.placeholderStrategy||"thumbhash";if(B!=="none")try{if(B==="thumbhash"){let j=await X.generateThumbHash(J);_.placeholder={dataURL:j.dataUrl,width:j.width||32,height:j.height||32,strategy:"thumbhash"}}else{let j=await X.generatePlaceholder(J,{strategy:B,width:20});_.placeholder={dataURL:j.dataURL,width:j.width,height:j.height,strategy:B}}}catch(j){console.warn(`[stx-media] Failed to generate placeholder: ${j}`)}return _.sizes=Z.sizes||aG(Q),_}catch(Q){return console.error(`[stx-media] Responsive generation failed: ${Q}`),null}}function aG($){let Z=[...$].sort((X,J)=>X-J),Y=[];for(let X=0;X<Z.length-1;X++){let J=Z[X];Y.push(`(max-width: ${J}px) ${J}px`)}return Y.push(`${Z[Z.length-1]}px`),Y.join(", ")}function L8($,Z="width"){if(!$||$.length===0)return"";if(Z==="dpr")return $.filter((Y)=>Y.dpr).map((Y)=>`${Y.url} ${Y.dpr}x`).join(", ");return $.map((Y)=>`${Y.url} ${Y.width}w`).join(", ")}async function DL($,Z,Y){let X=[];for(let J of Z){let Q=await P7(J.src,{responsiveWidths:J.widths},Y);if(Q){for(let[G,K]of Object.entries(Q.srcsets))if(K)X.push({media:J.media,srcset:K,type:tG(G)})}}return X}function tG($){switch($){case"avif":return"image/avif";case"webp":return"image/webp";case"jpeg":return"image/jpeg";case"png":return"image/png";case"gif":return"image/gif";default:return"image/jpeg"}}var rG;var F8=P(()=>{b1();rG=[320,480,640,768,1024,1280,1536,1920]});var V8={};l(V8,{setCachedImageResult:()=>D$,processImage:()=>j8,optimizeImage:()=>H8,getCachedImageResult:()=>I$,generateSrcset:()=>L8,generateResponsiveVariants:()=>P7,clearImageCache:()=>_8,applyTransformations:()=>C7,ImageProcessorCache:()=>M$});var w8=P(()=>{O8();F8();S7()});async function eG(){try{return await Promise.resolve().then(() => (w8(),V8))}catch($){if(!A8)console.warn("[stx-media] Image processor not available, some features disabled:",$),A8=!0;return null}}async function y5($,Z={}){let Y=Z,X=$;if(X.process&&!X.skipOptimization){if(Y.tsImagesConfig?.enabled&&!Y.isDev)return JK(X,Y)}if(Y.processedResult?.processed)return g7($,Y.processedResult,Z);if(Y.responsiveVariants)return M8($,Y.responsiveVariants,Z);let{src:J,alt:Q,width:G,height:K,sizes:z,widths:q=k1,dpr:U,formats:W=e1,quality:_=v7,params:B={},placeholder:j="none",placeholderOptions:H={},lazy:L=!0,priority:F=!1,loading:O=F?"eager":k$,decoding:V=E$,fetchpriority:w,objectFit:A,objectPosition:R,crossorigin:N,referrerpolicy:M}=$,T=$.class,I=$.style,D=$.id,E=$.data||{},{isDev:b=!1,baseUrl:S=""}=Z;if(b&&!Z.optimize)return YK($);let k,y,h=D||`stx-img-${Math.random().toString(36).slice(2,8)}`;if(j!=="none"&&!F)try{k=await J8(J,{strategy:j,...H}),y=X8(h,k,H)}catch{}let f=U!==void 0&&G!==void 0,m;if(f)m=ZK($,h,k,Z);else m=await $K($,h,k,Z);let o;if(F){let y0=W.includes("webp")?"webp":W[0],E0=S5(J,q,{...B,q:_},y0),X0=typeof z==="object"?A7(z):z||"100vw";o=`<link rel="preload" as="image" imagesrcset="${E0}" imagesizes="${X0}" />`}let N0=[];if(!R8&&j!=="none")N0.push(T7),R8=!0;if(y)N0.push(y);let Z1=L?T8(h):void 0;return{html:m,preloadLink:o,css:N0.length>0?N0.join(`
|
|
1121
1121
|
`):void 0,script:Z1}}async function $K($,Z,Y,X){let{src:J,alt:Q,width:G,height:K,sizes:z,widths:q=k1,formats:U=e1,quality:W=v7,params:_={},lazy:B=!0,priority:j=!1,loading:H=j?"eager":k$,decoding:L=E$,fetchpriority:F,objectFit:O,objectPosition:V,crossorigin:w,referrerpolicy:A}=$,R=$.class,N=$.style,M=$.data||{},T=typeof z==="object"?A7(z):z||"100vw",I=[];for(let b of U){let S=S5(J,q,{..._,q:W},b),k=R7(b);if(B&&!j)I.push(` <source type="${k}" data-srcset="${S}" data-sizes="${T}" />`);else I.push(` <source type="${k}" srcset="${S}" sizes="${T}" />`)}let D=x7({src:U1(J,{..._,q:W}),alt:Q,width:G,height:K,loading:j?void 0:H,decoding:L,fetchpriority:j?"high":F,objectFit:O,objectPosition:V,crossorigin:w,referrerpolicy:A,className:N8(R,Y),style:f7(N,O,V,Y),lazy:B&&!j,data:M}),E;if(Y){let b=`background-image: url('${Y.dataURL}'); background-size: cover; background-position: center;`;E=`<div id="${Z}" class="stx-img-placeholder" style="${b}">
|
|
1122
1122
|
<picture>
|
|
1123
1123
|
${I.join(`
|
|
@@ -1178,11 +1178,11 @@ ${A.join(`
|
|
|
1178
1178
|
`)}
|
|
1179
1179
|
<img ${N.join(" ")} />
|
|
1180
1180
|
</picture>`;let b=[];if(Z.placeholder)b.push(T7);let S=G?T8(j):void 0,k;if(K&&V)k=`<link rel="preload" as="image" imagesrcset="${V}" />`;return{html:E,preloadLink:k,css:b.length>0?b.join(`
|
|
1181
|
-
`):void 0,script:S}}async function M8($,Z,Y){let X={src:Z.src,processed:!0,variants:[],placeholder:Z.placeholder?.dataURL,originalWidth:Z.placeholder?.width,originalHeight:Z.placeholder?.height};for(let[J,Q]of Object.entries(Z.byFormat))if(Q)X.variants.push(...Q);return g7($,X,Y)}var A8=!1,v7=80,E$="async",k$="lazy",R8=!1;var I8=
|
|
1181
|
+
`):void 0,script:S}}async function M8($,Z,Y){let X={src:Z.src,processed:!0,variants:[],placeholder:Z.placeholder?.dataURL,originalWidth:Z.placeholder?.width,originalHeight:Z.placeholder?.height};for(let[J,Q]of Object.entries(Z.byFormat))if(Q)X.variants.push(...Q);return g7($,X,Y)}var A8=!1,v7=80,E$="async",k$="lazy",R8=!1;var I8=P(()=>{N7();Q8()});function QK(){return j0({name:"img",hasEndTag:!1,description:"Render an optimized responsive image with srcset and lazy loading",transform:async($,Z,Y,X)=>{let{src:J,alt:Q,options:G}=GK($,Z,Y);if(!J)return console.warn("@img directive: missing src argument"),"<!-- @img: missing src -->";let K={src:J,alt:Q||"",widths:G.widths||k1,formats:G.formats||e1,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},z=Y.__isDev||!1,q=await y5(K,{isDev:z}),U=q.html;if(q.preloadLink)U=q.preloadLink+`
|
|
1182
1182
|
`+U;if(q.css)U+=`
|
|
1183
1183
|
<style>${q.css}</style>`;if(q.script)U+=`
|
|
1184
|
-
<script>${q.script}</script>`;return U},defaults:{src:"",alt:"",options:{lazy:!0,placeholder:"none"}}})}function GK($,Z,Y){if(Z.src)return{src:String(Z.src),alt:String(Z.alt||""),options:Z.options||{}};let X=$.trim();if(X.startsWith("@img(")||X.startsWith("("))X=X.replace(/^@img\(/,"").replace(/^\(/,"").replace(/\)$/,"");let J=KK(X),Q=h7(J[0],Y)||"",G=h7(J[1],Y)||"",K={};if(J[2]){let z=h7(J[2],Y);if(typeof z==="object"&&z!==null)K=z;else if(typeof J[2]==="string")try{K=JSON.parse(J[2])}catch{}}return{src:Q,alt:G,options:K}}function KK($){let Z=[],Y="",X=!1,J="",Q=0,G=0;for(let K=0;K<$.length;K++){let z=$[K],q=K>0?$[K-1]:"";if((z==='"'||z==="'"||z==="`")&&q!=="\\"){if(!X)X=!0,J=z;else if(z===J)X=!1,J="";else Y+=z;continue}if(!X){if(z==="{")Q++;if(z==="}")Q--;if(z==="[")G++;if(z==="]")G--;if(z===","&&Q===0&&G===0){Z.push(Y.trim()),Y="";continue}}Y+=z}if(Y.trim())Z.push(Y.trim());return Z}function h7($,Z){if(typeof $!=="string")return $;let Y=$.trim();if(Y.startsWith('"')&&Y.endsWith('"')||Y.startsWith("'")&&Y.endsWith("'"))return Y.slice(1,-1);if(!Y.startsWith("/")&&!Y.startsWith(".")&&!Y.startsWith("http")&&!Y.startsWith("{")){let X=Z[Y];if(X!==void 0)return X}if(Y.startsWith("{")||Y.startsWith("["))try{return JSON.parse(Y)}catch{}return Y}var D8;var E8=
|
|
1185
|
-
`)}async function h$($,Z,Y,X,J){let Q=await x8();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate DASH manifest"),null;try{let G=y8($);if(!await R0(G))return null;let K=await
|
|
1184
|
+
<script>${q.script}</script>`;return U},defaults:{src:"",alt:"",options:{lazy:!0,placeholder:"none"}}})}function GK($,Z,Y){if(Z.src)return{src:String(Z.src),alt:String(Z.alt||""),options:Z.options||{}};let X=$.trim();if(X.startsWith("@img(")||X.startsWith("("))X=X.replace(/^@img\(/,"").replace(/^\(/,"").replace(/\)$/,"");let J=KK(X),Q=h7(J[0],Y)||"",G=h7(J[1],Y)||"",K={};if(J[2]){let z=h7(J[2],Y);if(typeof z==="object"&&z!==null)K=z;else if(typeof J[2]==="string")try{K=JSON.parse(J[2])}catch{}}return{src:Q,alt:G,options:K}}function KK($){let Z=[],Y="",X=!1,J="",Q=0,G=0;for(let K=0;K<$.length;K++){let z=$[K],q=K>0?$[K-1]:"";if((z==='"'||z==="'"||z==="`")&&q!=="\\"){if(!X)X=!0,J=z;else if(z===J)X=!1,J="";else Y+=z;continue}if(!X){if(z==="{")Q++;if(z==="}")Q--;if(z==="[")G++;if(z==="]")G--;if(z===","&&Q===0&&G===0){Z.push(Y.trim()),Y="";continue}}Y+=z}if(Y.trim())Z.push(Y.trim());return Z}function h7($,Z){if(typeof $!=="string")return $;let Y=$.trim();if(Y.startsWith('"')&&Y.endsWith('"')||Y.startsWith("'")&&Y.endsWith("'"))return Y.slice(1,-1);if(!Y.startsWith("/")&&!Y.startsWith(".")&&!Y.startsWith("http")&&!Y.startsWith("{")){let X=Z[Y];if(X!==void 0)return X}if(Y.startsWith("{")||Y.startsWith("["))try{return JSON.parse(Y)}catch{}return Y}var D8;var E8=P(()=>{W7();I8();N7();D8=QK()});class S${config;constructor($={}){this.config={...zK,...$}}async get($,Z){return A$($,Z,"video",this.config)}async set($,Z,Y){return R$($,Z,Y,"video",this.config)}async clear(){return N$("video",this.config)}updateConfig($){this.config={...this.config,...$}}}function d7($){if(!b$)b$=new S$($);else if($)b$.updateConfig($);return b$}async function y$($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return d7(X).get($,Z)}async function C$($,Z,Y,X){let J=X?{directory:`${X.outputDir}/../.cache`}:{};return d7(J).set($,Z,Y)}async function k8(){return d7().clear()}var zK,b$=null;var m7=P(()=>{k7();zK={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:2000,cacheTranscoded:!0,cacheThumbnails:!0,cacheManifests:!0}});import{resolve as u7,basename as l7,extname as p7,join as P$}from"path";import{mkdir as c7}from"fs/promises";async function i7(){try{return await import("ts-videos")}catch{return null}}async function v$($,Z,Y,X){let J=await i7();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate poster"),null;try{let Q=u7($);if(!await R0(Q))return null;await c7(Y,{recursive:!0});let G=await M0(Q),K=l7($,p7($)),z=Z.format||"webp",q=Z.timestamp||0,U=`${K}-poster-${G}.${z}`,W=P$(Y,U),_=await J.extractThumbnails(Q,{timestamps:[q],width:Z.width||1280,height:Z.height,format:z,quality:Z.quality||85,outputDir:Y,outputPattern:U.replace(`.${z}`,"")});if(_&&_.length>0){let B=_[0];return{path:W,url:`${X}/${U}`,width:B.width||Z.width||1280,height:B.height||720,timestamp:q,size:B.size||0}}return null}catch(Q){return console.warn(`[stx-media] Failed to generate poster: ${Q}`),null}}async function x$($,Z,Y,X){let J=await i7();if(!J)return[];try{let Q=u7($);if(!await R0(Q))return[];await c7(Y,{recursive:!0});let G=await M0(Q),K=l7($,p7($)),z=Z.format||"webp",W=(await new J.Input(Q).getInfo()).duration||60,_=Z.count||10,B=Z.interval||W/_,j=[];for(let L=0;L<_&&L*B<W;L++)j.push(L*B);let H=await J.extractThumbnails(Q,{timestamps:j,width:Z.width||320,format:z,quality:Z.quality||80,outputDir:Y,outputPattern:`${K}-thumb-${G}`});if(H&&H.length>0)return H.map((L,F)=>({path:L.path||P$(Y,`${K}-thumb-${G}-${F}.${z}`),url:`${X}/${K}-thumb-${G}-${F}.${z}`,width:L.width||Z.width||320,height:L.height||180,timestamp:j[F],size:L.size||0}));return[]}catch(Q){return console.warn(`[stx-media] Failed to generate thumbnails: ${Q}`),[]}}async function b8($,Z,Y,X){let J=await i7();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate sprite sheet"),null;try{let Q=u7($);if(!await R0(Q))return null;await c7(Y,{recursive:!0});let G=await M0(Q),K=l7($,p7($)),U=(await new J.Input(Q).getInfo()).duration||60,W=Z.columns||10,_=Z.interval||5,B=Z.thumbnailWidth||160,j=Z.thumbnailHeight||90,H=Z.format||"jpeg",L=Math.ceil(U/_),F=Math.ceil(L/W),O=`${K}-sprite-${G}.${H}`,V=P$(Y,O),w=[];for(let R=0;R<L;R++)w.push(R*_);let A=await J.extractThumbnails(Q,{timestamps:w,width:B,height:j,format:H,quality:Z.quality||70,outputDir:P$(Y,".temp")});if(!A||A.length===0)return null;try{let R=await import("ts-images"),N=W*B,M=F*j,T=await R.createSprite({images:A.map((I)=>I.path),columns:W,padding:0,outputPath:V,format:H,quality:Z.quality||70});return{url:`${X}/${O}`,path:V,columns:W,rows:F,thumbnailWidth:B,thumbnailHeight:j,interval:_,totalFrames:L}}catch{return console.warn("[stx-media] ts-images not installed, sprite sheet generation skipped"),null}}catch(Q){return console.warn(`[stx-media] Failed to generate sprite sheet: ${Q}`),null}}var n7=P(()=>{b1()});import{resolve as y8,basename as C8,extname as P8,join as S1}from"path";import{mkdir as f$,writeFile as v8}from"fs/promises";async function x8(){try{return await import("ts-videos")}catch{return null}}async function g$($,Z,Y,X,J){let Q=await x8();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate HLS manifest"),null;try{let G=y8($);if(!await R0(G))return null;let K=await M0(G),z=C8($,P8($)),q=S1(Y,`${z}-${K}-hls`);await f$(q,{recursive:!0});let U=Z.length>0?Z:f8,W=J?.segmentDuration||6,j=(await new Q.Input(G).getInfo()).duration||0,H=[],L=0;for(let V of U){let w=S1(q,V.label);await f$(w,{recursive:!0});let A=`${V.label}.m3u8`,R=S1(w,A);try{let N=await Q.generateHLS(G,{outputDir:w,segmentDuration:W,width:V.width,height:V.height,videoBitrate:V.bitrate,audioBitrate:V.audioBitrate,playlistName:V.label});if(N)H.push({quality:V,url:`${X}/${z}-${K}-hls/${V.label}/${A}`,path:R}),L+=N.segmentCount||Math.ceil(j/W)}catch(N){console.warn(`[stx-media] Failed to generate HLS for ${V.label}: ${N}`)}}if(H.length===0)return null;let F=S1(q,"master.m3u8"),O=qK(H,X,z,K);return await v8(F,O),{manifestUrl:`${X}/${z}-${K}-hls/master.m3u8`,manifestPath:F,playlists:H,segmentCount:L,duration:j}}catch(G){return console.warn(`[stx-media] Failed to generate HLS manifest: ${G}`),null}}function qK($,Z,Y,X){let J=["#EXTM3U","#EXT-X-VERSION:3"];for(let Q of $){let{quality:G}=Q,K=G.bitrate+(G.audioBitrate||128000),z=`${G.width}x${G.height||Math.round(G.width*9/16)}`;J.push(`#EXT-X-STREAM-INF:BANDWIDTH=${K},RESOLUTION=${z},NAME="${G.label}"`,`${G.label}/${G.label}.m3u8`)}return J.join(`
|
|
1185
|
+
`)}async function h$($,Z,Y,X,J){let Q=await x8();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate DASH manifest"),null;try{let G=y8($);if(!await R0(G))return null;let K=await M0(G),z=C8($,P8($)),q=S1(Y,`${z}-${K}-dash`);await f$(q,{recursive:!0});let U=Z.length>0?Z:f8,W=J?.segmentDuration||4,_=J?.minBufferTime||2,H=(await new Q.Input(G).getInfo()).duration||0,L=[],F=[];for(let A of U){let R=S1(q,A.label);await f$(R,{recursive:!0});try{if(await Q.generateDASH(G,{outputDir:R,segmentDuration:W,width:A.width,height:A.height,videoBitrate:A.bitrate,audioBitrate:A.audioBitrate})){if(L.push({bandwidth:A.bitrate,width:A.width,height:A.height||Math.round(A.width*9/16),url:`${X}/${z}-${K}-dash/${A.label}/video`}),A.audioBitrate)F.push({bandwidth:A.audioBitrate,url:`${X}/${z}-${K}-dash/${A.label}/audio`})}}catch(N){console.warn(`[stx-media] Failed to generate DASH for ${A.label}: ${N}`)}}if(L.length===0)return null;let O=S1(q,"manifest.mpd"),V=UK(L,F,H,W,_);await v8(O,V);let w=[{type:"video",representations:L}];if(F.length>0)w.push({type:"audio",representations:F});return{manifestUrl:`${X}/${z}-${K}-dash/manifest.mpd`,manifestPath:O,adaptationSets:w,duration:H}}catch(G){return console.warn(`[stx-media] Failed to generate DASH manifest: ${G}`),null}}function UK($,Z,Y,X,J){let Q=S8(Y),G=S8(J),K=`<?xml version="1.0" encoding="UTF-8"?>
|
|
1186
1186
|
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011"
|
|
1187
1187
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
1188
1188
|
xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd"
|
|
@@ -1208,7 +1208,7 @@ ${A.join(`
|
|
|
1208
1208
|
</Representation>
|
|
1209
1209
|
`}K+=` </AdaptationSet>
|
|
1210
1210
|
`}return K+=` </Period>
|
|
1211
|
-
</MPD>`,K}function S8($){let Z=Math.floor($/3600),Y=Math.floor($%3600/60),X=Math.floor($%60),J="PT";if(Z>0)J+=`${Z}H`;if(Y>0)J+=`${Y}M`;return J+=`${X}S`,J}var f8;var o7=
|
|
1211
|
+
</MPD>`,K}function S8($){let Z=Math.floor($/3600),Y=Math.floor($%3600/60),X=Math.floor($%60),J="PT";if(Z>0)J+=`${Z}H`;if(Y>0)J+=`${Y}M`;return J+=`${X}S`,J}var f8;var o7=P(()=>{b1();f8=[{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 g8,basename as WK,extname as _K,join as BK}from"path";import{mkdir as jK}from"fs/promises";async function h8(){try{return await import("ts-videos")}catch{return null}}function HK($){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 OK($){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 s7($){let Z=await h8();if(!Z)return null;try{let Y=g8($),J=await new Z.Input(Y).getInfo();return{duration:J.duration||0,width:J.width||0,height:J.height||0,frameRate:J.frameRate||0,bitrate:J.bitrate||0,codec:J.videoCodec||"",audioCodec:J.audioCodec}}catch(Y){return console.warn(`[stx-media] Failed to analyze video: ${Y}`),null}}async function d8($,Z,Y,X){let J=await h8();if(!J)return console.warn("[stx-media] ts-videos not installed, skipping processing"),{src:$,processed:!1};let Q=await y$($,Z,Y);if(Q)return Q;try{let G=g8($);if(!await R0(G))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let K=Y.outputDir||"dist/videos",z=Y.baseUrl||"/videos";await jK(K,{recursive:!0});let q=await M0(G),U=WK($,_K($)),W={src:$,processed:!0,hash:q};X?.({percentage:5,stage:"analyzing"}),W.metadata=await s7(G)||void 0;let _={};if(Z.quality)_.bitrate=HK(Z.quality);if(Z.platform)Object.assign(_,OK(Z.platform));if(Z.transcode)Object.assign(_,Z.transcode);if(Object.keys(_).length>0||Z.process){X?.({percentage:10,stage:"transcoding"});let B=`${U}-${q}.mp4`,j=BK(K,B);try{let H=await LK(G,j,_,J,(L)=>X?.({percentage:10+L*0.5,stage:"transcoding"}));if(H)W.transcoded={path:j,url:`${z}/${B}`,duration:H.duration,size:H.size,video:{codec:_.codec||"h264",width:H.width,height:H.height,bitrate:H.bitrate,frameRate:H.frameRate},audio:H.audioCodec?{codec:_.audioCodec||"aac",bitrate:_.audioBitrate||128000,sampleRate:_.sampleRate||48000,channels:_.channels||2}:void 0}}catch(H){W.errors=W.errors||[],W.errors.push(`Transcoding failed: ${H}`)}}if(Z.generatePoster){X?.({percentage:65,stage:"generating-poster"});let B=typeof Z.generatePoster==="object"?Z.generatePoster:{timestamp:0},j=await v$(G,B,K,z);if(j)W.poster=j}if(Y.thumbnails?.enabled){X?.({percentage:70,stage:"generating-thumbnails"});let B=await x$(G,Y.thumbnails,K,z);if(B.length>0)W.thumbnails=B}if(Z.streaming){X?.({percentage:80,stage:"generating-manifests"});let B=typeof Z.streaming==="object"?Z.streaming:Y.streaming||{format:"hls"};if(B.format==="hls"||B.format===void 0){let j=await g$(G,B.qualities||Y.streaming?.defaultQualities||[],K,z);if(j)W.streaming={...W.streaming,hls:j}}if(B.format==="dash"){let j=await h$(G,B.qualities||Y.streaming?.defaultQualities||[],K,z);if(j)W.streaming={...W.streaming,dash:j}}}if(Z.spriteSheet)X?.({percentage:90,stage:"generating-sprite-sheet"});return X?.({percentage:100,stage:"complete"}),await C$($,Z,W,Y),W}catch(G){return{src:$,processed:!1,errors:[`Processing failed: ${G}`]}}}async function LK($,Z,Y,X,J){try{let G=await new X.Conversion($,Z,{videoCodec:Y.codec,videoBitrate:Y.bitrate,width:Y.maxWidth,height:Y.maxHeight,frameRate:Y.frameRate,audioCodec:Y.audioCodec,audioBitrate:Y.audioBitrate,sampleRate:Y.sampleRate,channels:Y.channels}).run((K)=>{J?.(K.percentage/100)});return{duration:G.duration||0,size:G.size||0,width:G.width||Y.maxWidth||0,height:G.height||Y.maxHeight||0,bitrate:G.bitrate||Y.bitrate||0,frameRate:G.frameRate||Y.frameRate||30,audioCodec:G.audioCodec}}catch(Q){return console.error(`[stx-media] Transcoding failed: ${Q}`),null}}var m8=P(()=>{b1();m7();n7();o7()});var u8={};l(u8,{setCachedVideoResult:()=>C$,processVideo:()=>d8,getCachedVideoResult:()=>y$,generateThumbnails:()=>x$,generateSpriteSheet:()=>b8,generatePoster:()=>v$,generateHLSManifest:()=>g$,generateDASHManifest:()=>h$,clearVideoCache:()=>k8,analyzeVideo:()=>s7,VideoProcessorCache:()=>S$});var l8=P(()=>{m8();n7();o7();m7()});async function c8(){try{return await Promise.resolve().then(() => (l8(),u8))}catch($){if(!p8)console.warn("[stx-media] Video processor not available, some features disabled:",$),p8=!0;return null}}async function d$($,Z={}){let Y=Z,X=$;if(X.process&&!X.skipProcessing){if(Y.tsVideosConfig?.enabled&&!Y.isDev)return NK(X,Y)}if(Y.processedResult?.processed)return s8($,Y.processedResult,Z);let J;if(X.generatePoster&&X.src&&!$.poster)J=await TK(X,Y);let{src:Q,sources:G=[],poster:K,posterPlaceholder:z,controls:q=i8,autoplay:U=!1,muted:W=!1,loop:_=!1,preload:B=n8,playsinline:j=!0,lazy:H=!0,player:L="native",type:F,width:O,height:V,crossorigin:w,disablePictureInPicture:A=!1,disableRemotePlayback:R=!1}=$,N=J||K,M=$.class,T=$.style,I=$.id||`stx-video-${Math.random().toString(36).slice(2,8)}`;if(L==="ts-video")return wK($,Z);if(F&&F!=="video")return VK(Q||"",F,$);let D=G.length>0?G:Q?[{src:Q,type:o8(Q)}]:[],E=[`id="${I}"`];if(q)E.push("controls");if(U)E.push("autoplay");if(W)E.push("muted");if(_)E.push("loop");if(j)E.push("playsinline");if(A)E.push("disablepictureinpicture");if(R)E.push("disableremoteplayback");if(w)E.push(`crossorigin="${w}"`);if(H){if(E.push(`data-preload="${B}"`),E.push('preload="none"'),N)E.push(`data-poster="${L0(N)}"`);E.push("data-stx-lazy")}else if(E.push(`preload="${B}"`),N)E.push(`poster="${L0(N)}"`);if(O)E.push(`width="${O}"`);if(V)E.push(`height="${V}"`);if(M)E.push(`class="${L0(M)}"`);if(T)E.push(`style="${L0(T)}"`);let b=D.map((y)=>{return` <source ${H?`data-src="${L0(y.src)}"`:`src="${L0(y.src)}"`} type="${y.type}"${y.media?` media="${y.media}"`:""} />`}).join(`
|
|
1212
1212
|
`),S=`<video ${E.join(" ")}>
|
|
1213
1213
|
${b}
|
|
1214
1214
|
Your browser does not support the video tag.
|
|
@@ -1465,9 +1465,9 @@ ${D}
|
|
|
1465
1465
|
width: 100%;
|
|
1466
1466
|
height: auto;
|
|
1467
1467
|
}
|
|
1468
|
-
`.trim();return{html:D,script:E,css:b}}var p8=!1,i8=!0,n8="metadata",FK="https://cdn.jsdelivr.net/npm/ts-video-player@latest/dist/index.min.js";var r8=
|
|
1468
|
+
`.trim();return{html:D,script:E,css:b}}var p8=!1,i8=!0,n8="metadata",FK="https://cdn.jsdelivr.net/npm/ts-video-player@latest/dist/index.min.js";var r8=P(()=>{a7()});function a8(){return j0({name:"video",hasEndTag:!1,description:"Render a video with optional ts-videos processing, streaming, and poster generation",transform:async($,Z,Y,X)=>{let{src:J,options:Q}=MK($,Z,Y);if(!J)return console.warn("@video directive: missing src argument"),"<!-- @video: missing src -->";let G={src:J,poster:Q.poster,controls:Q.controls!==!1,autoplay:Q.autoplay||!1,muted:Q.muted||!1,loop:Q.loop||!1,preload:Q.preload||"metadata",playsinline:Q.playsinline!==!1,lazy:Q.lazy!==!1,player:Q.player||"native",type:Q.type,width:Q.width,height:Q.height,class:Q.class,style:Q.style,id:Q.id,crossorigin:Q.crossorigin,disablePictureInPicture:Q.disablePictureInPicture,disableRemotePlayback:Q.disableRemotePlayback,title:Q.title,quality:Q.quality,platform:Q.platform,process:Q.process,generatePoster:Q.generatePoster,streaming:Q.streaming,transcode:Q.transcode,spriteSheet:Q.spriteSheet,waveform:Q.waveform},z={isDev:Y.__isDev||!1,tsVideosConfig:Y.__tsVideosConfig},q=await d$(G,z),U=q.html;if(q.css)U+=`
|
|
1469
1469
|
<style>${q.css}</style>`;if(q.script)U+=`
|
|
1470
|
-
<script>${q.script}</script>`;return U},defaults:{src:"",options:{controls:!0,lazy:!0,preload:"metadata"}}})}function MK($,Z,Y){if(Z.src)return{src:String(Z.src),options:Z.options||{}};let X=$.trim();if(X.startsWith("@video(")||X.startsWith("("))X=X.replace(/^@video\(/,"").replace(/^\(/,"").replace(/\)$/,"");let J=IK(X),Q=t8(J[0],Y)||"",G={};if(J[1]){let K=t8(J[1],Y);if(typeof K==="object"&&K!==null)G=K;else if(typeof J[1]==="string")try{G=JSON.parse(J[1])}catch{}}return{src:Q,options:G}}function IK($){let Z=[],Y="",X=!1,J="",Q=0,G=0;for(let K=0;K<$.length;K++){let z=$[K],q=K>0?$[K-1]:"";if((z==='"'||z==="'"||z==="`")&&q!=="\\"){if(!X)X=!0,J=z;else if(z===J)X=!1,J="";else Y+=z;continue}if(!X){if(z==="{")Q++;if(z==="}")Q--;if(z==="[")G++;if(z==="]")G--;if(z===","&&Q===0&&G===0){Z.push(Y.trim()),Y="";continue}}Y+=z}if(Y.trim())Z.push(Y.trim());return Z}function t8($,Z){if(typeof $!=="string")return $;let Y=$.trim();if(Y.startsWith('"')&&Y.endsWith('"')||Y.startsWith("'")&&Y.endsWith("'"))return Y.slice(1,-1);if(!Y.startsWith("/")&&!Y.startsWith(".")&&!Y.startsWith("http")&&!Y.startsWith("{")){let X=Z[Y];if(X!==void 0)return X}if(Y.startsWith("{")||Y.startsWith("["))try{return JSON.parse(Y)}catch{}return Y}var r7;var a7=
|
|
1470
|
+
<script>${q.script}</script>`;return U},defaults:{src:"",options:{controls:!0,lazy:!0,preload:"metadata"}}})}function MK($,Z,Y){if(Z.src)return{src:String(Z.src),options:Z.options||{}};let X=$.trim();if(X.startsWith("@video(")||X.startsWith("("))X=X.replace(/^@video\(/,"").replace(/^\(/,"").replace(/\)$/,"");let J=IK(X),Q=t8(J[0],Y)||"",G={};if(J[1]){let K=t8(J[1],Y);if(typeof K==="object"&&K!==null)G=K;else if(typeof J[1]==="string")try{G=JSON.parse(J[1])}catch{}}return{src:Q,options:G}}function IK($){let Z=[],Y="",X=!1,J="",Q=0,G=0;for(let K=0;K<$.length;K++){let z=$[K],q=K>0?$[K-1]:"";if((z==='"'||z==="'"||z==="`")&&q!=="\\"){if(!X)X=!0,J=z;else if(z===J)X=!1,J="";else Y+=z;continue}if(!X){if(z==="{")Q++;if(z==="}")Q--;if(z==="[")G++;if(z==="]")G--;if(z===","&&Q===0&&G===0){Z.push(Y.trim()),Y="";continue}}Y+=z}if(Y.trim())Z.push(Y.trim());return Z}function t8($,Z){if(typeof $!=="string")return $;let Y=$.trim();if(Y.startsWith('"')&&Y.endsWith('"')||Y.startsWith("'")&&Y.endsWith("'"))return Y.slice(1,-1);if(!Y.startsWith("/")&&!Y.startsWith(".")&&!Y.startsWith("http")&&!Y.startsWith("{")){let X=Z[Y];if(X!==void 0)return X}if(Y.startsWith("{")||Y.startsWith("["))try{return JSON.parse(Y)}catch{}return Y}var r7;var a7=P(()=>{W7();r8();r7=a8()});function DK($,Z){let Y=Z.pwa?.manifest?.themeColor||"#4f46e5";return`<div class="stx-pwa-install" style="display:none;">
|
|
1471
1471
|
${$}
|
|
1472
1472
|
</div>
|
|
1473
1473
|
<script>
|
|
@@ -1766,8 +1766,8 @@ catch (error) {
|
|
|
1766
1766
|
init();
|
|
1767
1767
|
}
|
|
1768
1768
|
})();
|
|
1769
|
-
</script>`}function BF($){return[...$,...t7]}var SK,yK,CK,PK,t7;var e8=
|
|
1770
|
-
Help: ${X}`:Y}function e7($){for(let[Z,Y]of Object.entries(p))if(Y===$)return Z;return}var vK,m$,$Z="en",p;var u$=
|
|
1769
|
+
</script>`}function BF($){return[...$,...t7]}var SK,yK,CK,PK,t7;var e8=P(()=>{SK={name:"pwa.installButton",handler:($,Z,Y,X)=>{let J=Y.__stx_options||{};return DK($,J)},hasEndTag:!0,description:"Renders a PWA install prompt button that appears when the app can be installed"},yK={name:"pwa.updatePrompt",handler:($,Z,Y,X)=>{let J=Y.__stx_options||{};return EK($,J)},hasEndTag:!0,description:"Renders a PWA update notification UI when a new version is available"},CK={name:"pwa.offlineIndicator",handler:($,Z,Y,X)=>{let J=Y.__stx_options||{};return kK($,J)},hasEndTag:!0,description:"Renders an offline status indicator that shows when the user loses connection"},PK={name:"pwa.pushSubscribe",handler:($,Z,Y,X)=>{let J=Y.__stx_options||{};return bK($,J)},hasEndTag:!0,description:"Renders a push notification subscription button"},t7=[SK,yK,CK,PK]});function xK($){$Z=$}function fK(){return $Z}function gK($){m$={...m$,...$}}function hK(){m$={}}function ZZ($,Z={}){let Y=m$[$]||vK[$]||{message:`Unknown error (code: ${$})`},X=Y.message,J=Y.help;for(let[Q,G]of Object.entries(Z)){let K=`{{${Q}}}`;if(X=X.replace(new RegExp(K,"g"),G),J)J=J.replace(new RegExp(K,"g"),G)}return{message:X,help:J}}function dK($,Z={}){let{message:Y,help:X}=ZZ($,Z);return X?`${Y}
|
|
1770
|
+
Help: ${X}`:Y}function e7($){for(let[Z,Y]of Object.entries(p))if(Y===$)return Z;return}var vK,m$,$Z="en",p;var u$=P(()=>{vK={1001:{message:"Unclosed directive: {{directive}}",help:"Make sure to close the directive with the appropriate end tag"},1002:{message:"Unclosed expression at position {{position}}",help:"Check for missing closing braces }}"},1003:{message:"Invalid directive syntax: {{directive}}",help:"Review the directive documentation for correct syntax"},1004:{message:"Malformed expression: {{expression}}",help:"Check for syntax errors in your expression"},1005:{message:"Unexpected token: {{token}}",help:"Remove or fix the unexpected token"},1101:{message:"Undefined variable: {{variable}}",help:"Make sure the variable is defined in the template context"},1102:{message:"Type error: {{details}}",help:"Check that you are using the correct types"},1103:{message:"Evaluation error: {{details}}",help:"Review the expression for errors"},1104:{message:"Infinite loop detected in {{location}}",help:"Check your loop conditions"},1105:{message:"Circular reference detected: {{path}}",help:"Remove the circular dependency"},1201:{message:"Unsafe expression blocked: {{expression}}",help:"This expression contains potentially dangerous code"},1202:{message:"Path traversal attempt blocked: {{path}}",help:"Use only relative paths within allowed directories"},1203:{message:"Potential XSS attempt blocked",help:"Sanitize user input before rendering"},1204:{message:"Code injection attempt blocked: {{code}}",help:"Avoid executing dynamic code"},1205:{message:"Prohibited DOM API usage: {{api}}",help:"Use STX.useRefs(), STX.useRef(), STX.el() and other STX helpers instead of direct DOM manipulation"},1301:{message:"File not found: {{path}}",help:"Check that the file exists and the path is correct"},1302:{message:"Error reading file: {{path}}",help:"Check file permissions and encoding"},1303:{message:"Invalid file path: {{path}}",help:"Use a valid file path"},1304:{message:"Permission denied: {{path}}",help:"Check file permissions"},1401:{message:"Invalid configuration: {{details}}",help:"Review your stx.config.ts file"},1402:{message:"Missing required configuration: {{key}}",help:"Add the required configuration option"},1403:{message:"Deprecated configuration: {{key}}",help:"Update to the new configuration format"},1501:{message:"Component not found: {{name}}",help:"Check that the component exists in your components directory"},1502:{message:"Invalid props for component {{name}}: {{details}}",help:"Check the component prop requirements"},1503:{message:"Error rendering component {{name}}: {{details}}",help:"Check the component template for errors"},1601:{message:"Filter not found: {{filter}}",help:"Register the filter or check the filter name"},1602:{message:"Invalid arguments for filter {{filter}}: {{details}}",help:"Check the filter documentation for correct arguments"},1603:{message:"Expression evaluation timed out",help:"Simplify the expression or increase the timeout"}},m$={};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 C5(){return!1}function P5(){return!C5()||process.env.STX_DEBUG==="true"}function l$(){return!1}import mK from"path";function uK($){X5={...X5,...$}}function p$(){return{...X5}}function lK(){X5={...YZ}}function c$($){if(!X5.showRelativePaths||!$)return $;let Z=X5.baseDir||process.cwd();try{let Y=mK.relative(Z,$);return Y.startsWith("..")?$:Y}catch{return $}}var YZ,X5,y1,XZ,C1,JZ,QZ,i$;var n$=P(()=>{u$();YZ={showRelativePaths:!1,enableAutoRecovery:P5(),logRecoveryWarnings:!0},X5={...YZ};y1=class y1 extends Error{code;filePath;line;column;context;numericCode;constructor($,Z,Y,X,J,Q,G){super($);this.code=Z;this.filePath=Y;this.line=X;this.column=J;this.context=Q;if(this.name="StxError",this.numericCode=G||p.EVALUATION_ERROR,this.filePath)this.filePath=c$(this.filePath)}};XZ=class XZ extends y1{constructor($,Z,Y,X,J,Q){super($,"stx_SYNTAX_ERROR",Z,Y,X,J,Q||p.INVALID_DIRECTIVE_SYNTAX);this.name="StxSyntaxError"}};C1=class C1 extends y1{constructor($,Z,Y,X,J,Q){super($,"stx_RUNTIME_ERROR",Z,Y,X,J,Q||p.EVALUATION_ERROR);this.name="StxRuntimeError"}};JZ=class JZ extends y1{constructor($,Z,Y,X,J,Q){super($,"stx_SECURITY_ERROR",Z,Y,X,J,Q||p.UNSAFE_EXPRESSION);this.name="StxSecurityError"}};QZ=class QZ extends y1{constructor($,Z,Y,X,J,Q){super($,"stx_FILE_ERROR",Z,Y,X,J,Q||p.FILE_NOT_FOUND);this.name="StxFileError"}};i$=class i$ extends y1{isFatal=!0;constructor($,Z,Y,X,J,Q){super($,"stx_VALIDATION_ERROR",Z,Y,X,J,Q||p.DOM_API_VIOLATION);this.name="StxValidationError"}}});function $3($){let{type:Z,message:Y,code:X,filePath:J,line:Q,column:G,template:K,offset:z,snippet:q,suggestion:U,format:W="text"}=$,_=Q,B=G;if(!_&&K&&z!==void 0){let O=KZ(K,z);_=O.line,B=O.column}let j=J?c$(J):void 0,H=X?e7(X):void 0,L={type:Z,code:X,codeName:H,message:Y,filePath:j,line:_,column:B,snippet:q,suggestion:U,timestamp:new Date().toISOString()},F;switch(W){case"html":F=cK(L);break;case"json":F=JSON.stringify(L,null,2);break;case"console":F=iK(L,K,z);break;case"text":default:F=pK(L,K,z);break}return{formatted:F,data:L}}function pK($,Z,Y){let X=[],J=$.code?` [${$.codeName||$.code}]`:"";if(X.push(`[${$.type} Error${J}]`),$.filePath){let Q=$.filePath;if($.line){if(Q+=`:${$.line}`,$.column)Q+=`:${$.column}`}X.push(`at ${Q}`)}if(X.push(`
|
|
1771
1771
|
${$.message}`),Z&&$.line){let Q=nK(Z,$.line,2);if(Q)X.push(`
|
|
1772
1772
|
${Q}`)}if($.snippet)X.push(`
|
|
1773
1773
|
Snippet: ${$.snippet}`);if($.suggestion)X.push(`
|
|
@@ -1791,15 +1791,15 @@ ${"\x1B[31m"}\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\
|
|
|
1791
1791
|
`,G=Math.max(0,J.line-3),K=Math.min(X.length-1,J.line+2);Q+=`Context:
|
|
1792
1792
|
`;for(let z=G;z<=K;z++){let q=z+1,U=X[z]||"",W=z===J.line-1?">":" ";Q+=`${W} ${q.toString().padStart(3)}: ${U}
|
|
1793
1793
|
`}if(J.line-1<X.length){let z=" ".repeat(J.column+5);Q+=`${z}^
|
|
1794
|
-
`}return Q}function aK($,Z,Y){try{return $()}catch(X){if(Y&&X instanceof Error)Y(X);return Z}}async function J5($,Z,Y){try{return await $()}catch(X){if(Y&&X instanceof Error)Y(X);return Z}}var zZ=
|
|
1794
|
+
`}return Q}function aK($,Z,Y){try{return $()}catch(X){if(Y&&X instanceof Error)Y(X);return Z}}async function J5($,Z,Y){try{return await $()}catch(X){if(Y&&X instanceof Error)Y(X);return Z}}var zZ=P(()=>{u$();n$()});class Y3{errors=[];maxErrors;enableFileLogging;logFilePath;logFormat;maxFileSize;maxLogFiles;minLevel;writeQueue=Promise.resolve();constructor($={}){this.maxErrors=$.maxErrors??1000,this.enableFileLogging=$.enableFileLogging??!1,this.logFilePath=$.logFilePath??".stx/errors.log",this.logFormat=$.logFormat??"json",this.maxFileSize=$.maxFileSize??10485760,this.maxLogFiles=$.maxLogFiles??5,this.minLevel=$.minLevel??"all"}configure($){if($.maxErrors!==void 0)this.maxErrors=$.maxErrors;if($.enableFileLogging!==void 0)this.enableFileLogging=$.enableFileLogging;if($.logFilePath!==void 0)this.logFilePath=$.logFilePath;if($.logFormat!==void 0)this.logFormat=$.logFormat;if($.maxFileSize!==void 0)this.maxFileSize=$.maxFileSize;if($.maxLogFiles!==void 0)this.maxLogFiles=$.maxLogFiles;if($.minLevel!==void 0)this.minLevel=$.minLevel}log($,Z,Y="error"){let X={timestamp:new Date,error:$,context:Z,level:Y};if(this.errors.push(X),this.errors.length>this.maxErrors)this.errors=this.errors.slice(-this.maxErrors);if(this.enableFileLogging&&this.shouldLog(Y))this.writeToFile(X)}shouldLog($){if(this.minLevel==="all")return!0;if(this.minLevel==="warning")return $==="error"||$==="warning";if(this.minLevel==="error")return $==="error";return!0}formatEntry($){if(this.logFormat==="json")return JSON.stringify({timestamp:$.timestamp.toISOString(),level:$.level||"error",type:$.error.constructor.name,message:$.error.message,stack:$.error.stack,context:$.context});let Z=[`[${$.timestamp.toISOString()}] [${($.level||"error").toUpperCase()}] ${$.error.constructor.name}: ${$.error.message}`];if($.error.stack)Z.push(` Stack: ${$.error.stack.split(`
|
|
1795
1795
|
`).slice(1).join(`
|
|
1796
1796
|
`)}`);if($.context)Z.push(` Context: ${JSON.stringify($.context)}`);return Z.join(`
|
|
1797
1797
|
`)}writeToFile($){this.writeQueue=this.writeQueue.then(async()=>{try{let Z=await import("fs"),X=(await import("path")).dirname(this.logFilePath);if(!Z.existsSync(X))Z.mkdirSync(X,{recursive:!0});await this.rotateIfNeeded(Z);let J=`${this.formatEntry($)}
|
|
1798
1798
|
`;Z.appendFileSync(this.logFilePath,J,"utf-8")}catch(Z){if(process.env.STX_DEBUG==="true")console.error("Failed to write to error log:",Z)}})}async rotateIfNeeded($){try{if(!$.existsSync(this.logFilePath))return;if($.statSync(this.logFilePath).size<this.maxFileSize)return;for(let Y=this.maxLogFiles-1;Y>=1;Y--){let X=`${this.logFilePath}.${Y}`,J=`${this.logFilePath}.${Y+1}`;if($.existsSync(X))if(Y>=this.maxLogFiles-1)$.unlinkSync(X);else $.renameSync(X,J)}if(this.maxLogFiles<=1)$.writeFileSync(this.logFilePath,"");else $.renameSync(this.logFilePath,`${this.logFilePath}.1`)}catch(Z){if(process.env.STX_DEBUG==="true")console.error("Failed to rotate error logs:",Z)}}getRecentErrors($=10){return this.errors.slice(-$)}getErrorsByType($){return this.errors.filter((Z)=>Z.error.constructor.name===$)}getErrorsByLevel($){return this.errors.filter((Z)=>Z.level===$)}clear(){this.errors.length=0}async clearLogFile(){try{let $=await import("fs");if($.existsSync(this.logFilePath))$.writeFileSync(this.logFilePath,"","utf-8")}catch($){if(process.env.STX_DEBUG==="true")console.error("Failed to clear error log:",$)}}getStats(){let $={},Z={error:0,warning:0,info:0};for(let Y of this.errors){let X=Y.error.constructor.name;$[X]=($[X]||0)+1;let J=Y.level||"error";Z[J]=(Z[J]||0)+1}return{total:this.errors.length,byType:$,byLevel:Z}}async exportToFile($,Z="json"){let Y=await import("fs"),J=(await import("path")).dirname($);if(!Y.existsSync(J))Y.mkdirSync(J,{recursive:!0});if(Z==="json"){let Q=this.errors.map((G)=>({timestamp:G.timestamp.toISOString(),level:G.level||"error",type:G.error.constructor.name,message:G.error.message,stack:G.error.stack,context:G.context}));Y.writeFileSync($,JSON.stringify(Q,null,2),"utf-8")}else{let Q=this.errors.map((G)=>this.formatEntry(G));Y.writeFileSync($,Q.join(`
|
|
1799
1799
|
|
|
1800
|
-
`),"utf-8")}}async flush(){await this.writeQueue}}var Z3,v0,X3;var qZ=
|
|
1800
|
+
`),"utf-8")}}async flush(){await this.writeQueue}}var Z3,v0,X3;var qZ=P(()=>{n$();Z3={isEnabled(){return p$().enableAutoRecovery},fixCommonSyntaxErrors($){let Z=p$();if(!Z.enableAutoRecovery)return{fixed:$,fixes:[]};let Y=$,X=[],J=(Y.match(/\{\{/g)||[]).length,Q=(Y.match(/\}\}/g)||[]).length;if(J>Q){let K=J-Q;Y+="}}".repeat(K),X.push(`Added ${K} missing closing braces '}}'`)}let G=["if","foreach","for","switch","section"];for(let K of G){let z=(Y.match(new RegExp(`@${K}\\b`,"g"))||[]).length,q=(Y.match(new RegExp(`@end${K}\\b`,"g"))||[]).length;if(z>q){let U=z-q;for(let W=0;W<U;W++)Y+=`
|
|
1801
1801
|
@end${K}`;X.push(`Added ${U} missing @end${K}`)}}if(X.length>0&&Z.logRecoveryWarnings)console.warn("[stx] Auto-recovery applied fixes:"),X.forEach((K)=>console.warn(` - ${K}`)),console.warn(" Consider fixing these issues in your template.");return{fixed:Y,fixes:X}},createFallbackContent($,Z){if(P5())return`<!-- ${$} failed: ${Z.message} -->`;return"<!-- stx rendering error -->"}};v0=new Y3,X3={isDevelopment(){return P5()},logDetailedError($,Z){if(!this.isDevelopment())return;if(console.error("=== stx Detailed Error ==="),console.error("Error:",$.message),console.error("Stack:",$.stack),Z)console.error("Context:",Z);console.error("========================")},createErrorReport($,Z){let Y=["=== stx Error Report ===",`Time: ${new Date().toISOString()}`,`Error: ${$.message}`,`Type: ${$.constructor.name}`,`Stack: ${$.stack}`];if(Z)Y.push(`Context: ${JSON.stringify(Z,null,2)}`);return Y.push("========================"),Y.join(`
|
|
1802
|
-
`)}}});import J3 from"path";function tK($){let Z={"&":"&","<":"<",">":">",'"':""","'":"'"};return $.replace(/[&<>"']/g,(Y)=>Z[Y]||Y)}function o$($,Z={}){let{allowHtml:Y=!1,maxLength:X=1e4,allowSpecialChars:J=!0,customSanitizer:Q}=Z,G=[],K=$,z=!1;if(Q){let U=Q(K);if(U!==K)K=U,z=!0}if(K.includes("\x00"))K=K.replace(/\0/g,""),z=!0,G.push("Null bytes removed from parameter");if(K.length>X)K=K.substring(0,X),z=!0,G.push(`Parameter truncated to ${X} characters`);if(!Y&&/<[^>]+>/.test(K))K=tK(K),z=!0,G.push("HTML content was escaped");let q=[{pattern:/javascript:/gi,replacement:"",name:"javascript: URI"},{pattern:/vbscript:/gi,replacement:"",name:"vbscript: URI"},{pattern:/data:text\/html/gi,replacement:"",name:"data:text/html URI"}];for(let{pattern:U,replacement:W,name:_}of q)if(U.test(K))K=K.replace(U,W),z=!0,G.push(`Removed ${_} from parameter`);if(!J){let U=K;if(K=K.split("").filter((W)=>{let _=W.charCodeAt(0);return _>=32&&_!==127}).join(""),K!==U)z=!0,G.push("Control characters removed")}return{value:K,modified:z,warnings:G}}function eK($,Z){let Y=$.replace(/\0/g,"");Y=Y.replace(/\\/g,"/"),Y=Y.replace(/^[a-z][a-z0-9+.-]*:/i,"");while(Y.includes("../")||Y.includes("./"))Y=Y.replace(/\.\.\//g,"").replace(/\.\//g,"");if(!Q3.isValidFilePath(Y,Z))return null;return Y}function $z($){let Z=[],Y=$.trim(),X=Y!==$,J=[{pattern:/\beval\s*\(/gi,name:"eval()"},{pattern:/\bFunction\s*\(/gi,name:"Function()"},{pattern:/\bsetTimeout\s*\(/gi,name:"setTimeout()"},{pattern:/\bsetInterval\s*\(/gi,name:"setInterval()"},{pattern:/\bimport\s*\(/gi,name:"dynamic import()"},{pattern:/\brequire\s*\(/gi,name:"require()"},{pattern:/\b__proto__\b/gi,name:"__proto__"},{pattern:/\bconstructor\b/gi,name:"constructor"},{pattern:/\bprototype\b/gi,name:"prototype"}];for(let{pattern:Q,name:G}of J)if(Q.test(Y))Z.push(`Potentially dangerous pattern detected: ${G}`);if(Y.includes("\x00"))Y=Y.replace(/\0/g,""),X=!0,Z.push("Null bytes removed from expression");return{value:Y,modified:X,warnings:Z}}function Zz($,Z={}){return $.map((Y)=>o$(Y,Z))}function UZ($){let Z={};for(let[Y,X]of Object.entries($)){if(!Q3.isValidVariableName(Y))continue;if(typeof X==="string"){let J=o$(X);Z[Y]=J.value}else if(Array.isArray(X))Z[Y]=X.map((J)=>typeof J==="string"?o$(J).value:J);else if(typeof X==="object"&&X!==null)Z[Y]=UZ(X);else Z[Y]=X}return Z}var Q3;var WZ=
|
|
1802
|
+
`)}}});import J3 from"path";function tK($){let Z={"&":"&","<":"<",">":">",'"':""","'":"'"};return $.replace(/[&<>"']/g,(Y)=>Z[Y]||Y)}function o$($,Z={}){let{allowHtml:Y=!1,maxLength:X=1e4,allowSpecialChars:J=!0,customSanitizer:Q}=Z,G=[],K=$,z=!1;if(Q){let U=Q(K);if(U!==K)K=U,z=!0}if(K.includes("\x00"))K=K.replace(/\0/g,""),z=!0,G.push("Null bytes removed from parameter");if(K.length>X)K=K.substring(0,X),z=!0,G.push(`Parameter truncated to ${X} characters`);if(!Y&&/<[^>]+>/.test(K))K=tK(K),z=!0,G.push("HTML content was escaped");let q=[{pattern:/javascript:/gi,replacement:"",name:"javascript: URI"},{pattern:/vbscript:/gi,replacement:"",name:"vbscript: URI"},{pattern:/data:text\/html/gi,replacement:"",name:"data:text/html URI"}];for(let{pattern:U,replacement:W,name:_}of q)if(U.test(K))K=K.replace(U,W),z=!0,G.push(`Removed ${_} from parameter`);if(!J){let U=K;if(K=K.split("").filter((W)=>{let _=W.charCodeAt(0);return _>=32&&_!==127}).join(""),K!==U)z=!0,G.push("Control characters removed")}return{value:K,modified:z,warnings:G}}function eK($,Z){let Y=$.replace(/\0/g,"");Y=Y.replace(/\\/g,"/"),Y=Y.replace(/^[a-z][a-z0-9+.-]*:/i,"");while(Y.includes("../")||Y.includes("./"))Y=Y.replace(/\.\.\//g,"").replace(/\.\//g,"");if(!Q3.isValidFilePath(Y,Z))return null;return Y}function $z($){let Z=[],Y=$.trim(),X=Y!==$,J=[{pattern:/\beval\s*\(/gi,name:"eval()"},{pattern:/\bFunction\s*\(/gi,name:"Function()"},{pattern:/\bsetTimeout\s*\(/gi,name:"setTimeout()"},{pattern:/\bsetInterval\s*\(/gi,name:"setInterval()"},{pattern:/\bimport\s*\(/gi,name:"dynamic import()"},{pattern:/\brequire\s*\(/gi,name:"require()"},{pattern:/\b__proto__\b/gi,name:"__proto__"},{pattern:/\bconstructor\b/gi,name:"constructor"},{pattern:/\bprototype\b/gi,name:"prototype"}];for(let{pattern:Q,name:G}of J)if(Q.test(Y))Z.push(`Potentially dangerous pattern detected: ${G}`);if(Y.includes("\x00"))Y=Y.replace(/\0/g,""),X=!0,Z.push("Null bytes removed from expression");return{value:Y,modified:X,warnings:Z}}function Zz($,Z={}){return $.map((Y)=>o$(Y,Z))}function UZ($){let Z={};for(let[Y,X]of Object.entries($)){if(!Q3.isValidVariableName(Y))continue;if(typeof X==="string"){let J=o$(X);Z[Y]=J.value}else if(Array.isArray(X))Z[Y]=X.map((J)=>typeof J==="string"?o$(J).value:J);else if(typeof X==="object"&&X!==null)Z[Y]=UZ(X);else Z[Y]=X}return Z}var Q3;var WZ=P(()=>{Q3={isValidFilePath($,Z){let Y=$.replace(/\\/g,"/");if(Y.includes("\x00"))return!1;if(Y.includes("../")||Y.includes("..\\")||Y===".."||Y.startsWith("../")||Y.endsWith("/..")||Y.includes("/..\\")||Y.includes("\\../"))return!1;if(/^[a-z][a-z0-9+.-]*:/i.test(Y))return!1;if(Y.startsWith("/")){if(["/etc/","/root/","/var/","/usr/","/bin/","/sbin/","/proc/","/sys/","/dev/","/boot/","/home/","/private/","/Library/","/System/"].some((Q)=>Y===Q.slice(0,-1)||Y.startsWith(Q)))return!1}if(/^[a-z]:/i.test(Y)){if(["Windows/","Windows\\","System32/","System32\\","Program Files/","Program Files\\"].some((Q)=>Y.includes(Q)))return!1}if(Z){let J=J3.resolve(Z,$),Q=J3.resolve(Z);if(!J.startsWith(Q+J3.sep)&&J!==Q)return!1}return!0},isValidVariableName($){return/^[a-z_$]\w*$/i.test($)},isValidDirectiveName($){return/^[a-z][\w-]*$/i.test($)},isSafeContent($){return![/<script[^>]*>[\s\S]*?<\/script>/i,/javascript:/i,/data:text\/html/i,/vbscript:/i,/on\w+\s*=/i].some((Y)=>Y.test($))}}});var _Z=P(()=>{u$();zZ();qZ();WZ();n$()});var t0=P(()=>{_Z()});function BZ($,Z,Y,X){let J=$;J=J.replace(/@meta\(\s*['"]([^'"]+)['"](?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(K,z,q)=>{if(!q&&z.includes(":")){let U=z.split(":"),W=z,_=U.length>1?U[1]:"";if(_&&Z[_])q=Z[_];else if(W.startsWith("og:")&&Z.openGraph&&Z.openGraph[U[1]])q=Z.openGraph[U[1]];else q="";return q?`<meta property="${c(W)}" content="${c(q)}">`:""}return q?`<meta name="${c(z)}" content="${c(q)}">`:""});let Q=/@metaTag\s*\(/g,G;while((G=Q.exec(J))!==null){let K=G.index,z=K+G[0].length-1,q=1,U=z+1;while(U<J.length&&q>0){if(J[U]==="(")q++;else if(J[U]===")"){if(q--,q===0)break}U++}if(q!==0)break;let W=J.substring(z+1,U).trim(),_=U+1,B=(()=>{try{let j=H0(W,Z);if(!j)return"";let H="<meta";if(j.name)H+=` name="${c(String(j.name))}"`;if(j.property)H+=` property="${c(String(j.property))}"`;if(j.httpEquiv)H+=` http-equiv="${c(String(j.httpEquiv))}"`;if(j.content)H+=` content="${c(String(j.content))}"`;return H+=">",H}catch(j){let H=j instanceof Error?j.message:String(j);return r("MetaTag",H,p.EVALUATION_ERROR)}})();J=J.substring(0,K)+B+J.substring(_),Q.lastIndex=0}return J}function jZ($,Z,Y){let X=$,J=/@structuredData\s*\(/g,Q;while((Q=J.exec(X))!==null){let G=Q.index,K=G+Q[0].length-1,z=1,q=K+1;while(q<X.length&&z>0){if(X[q]==="(")z++;else if(X[q]===")"){if(z--,z===0)break}q++}if(z!==0)break;let U=X.substring(K+1,q).trim(),W=q+1,_=(()=>{try{let B=H0(U,Z);if(!B)return"";if(!B["@context"])B["@context"]="https://schema.org";return`<script type="application/ld+json">${JSON.stringify(B).replace(/<\//g,"<\\/")}</script>`}catch(B){let j=B instanceof Error?B.message:String(B);return r("StructuredData",j,p.EVALUATION_ERROR)}})();X=X.substring(0,G)+_+X.substring(W),J.lastIndex=0}return X}function HZ($,Z,Y,X){let J=$,Q=/@seo\s*\(\s*\{/g,G;while((G=Q.exec(J))!==null){let K=J.indexOf("{",G.index+4),z=1,q=K+1,U=null,W=!1;while(q<J.length&&z>0){let F=J[q];if(W){W=!1,q++;continue}if(F==="\\"&&U){W=!0,q++;continue}if(U){if(F===U)U=null;q++;continue}if(F==='"'||F==="'"||F==="`"){U=F,q++;continue}if(F==="{")z++;else if(F==="}")z--;q++}if(z!==0)break;let _=J.substring(q).match(/^\s*\)/);if(!_)break;let B=q+_[0].length,j=J.substring(K,q),H=J.substring(G.index,B),L=((F)=>{try{let O=H0(F,Z);if(!O)return"";let V="";if(O.title)V+=`<title>${c(O.title)}</title>
|
|
1803
1803
|
`,V+=`<meta name="title" content="${c(O.title)}">
|
|
1804
1804
|
`;if(O.description)V+=`<meta name="description" content="${c(O.description)}">
|
|
1805
1805
|
`;if(O.keywords){let w=Array.isArray(O.keywords)?O.keywords.join(", "):O.keywords;V+=`<meta name="keywords" content="${c(w)}">
|
|
@@ -1854,7 +1854,7 @@ ${$.map((Q)=>{let G=Q.startsWith("http")?Q:`${Y}${Q.startsWith("/")?"":"/"}${Q}`
|
|
|
1854
1854
|
</sitemap>`}).join(`
|
|
1855
1855
|
`)}
|
|
1856
1856
|
</sitemapindex>`}async function uF($,Z){let{extensions:Y=[".stx",".html",".htm"],ignore:X=["_*",".*","node_modules","components","partials","layouts"]}=Z,J=[],Q=Y.length===1?`*${Y[0]}`:`*{${Y.join(",")}}`,G=new Bun.Glob(`**/${Q}`);for await(let K of G.scan($)){if(X.some((_)=>{if(_.startsWith("*"))return K.includes(_.slice(1));return K.startsWith(_)||K.includes(`/${_}`)}))continue;let q=K.replace(/\\/g,"/").replace(/index\.(stx|html|htm)$/,"").replace(/\.(stx|html|htm)$/,"");if(!q.startsWith("/"))q=`/${q}`;if(q!=="/"&&q.endsWith("/"))q=q.slice(0,-1);let U=`${$}/${K}`,W;try{let _=await Bun.file(U).stat();if(_)W=new Date(_.mtime).toISOString().split("T")[0]}catch{}J.push({loc:q||"/",lastmod:W,priority:q==="/"?1:0.5})}return J.sort((K,z)=>K.loc.localeCompare(z.loc)),J}function Yz($){let Z=[];for(let Y of $.rules){if(Z.push(`User-agent: ${Y.userAgent}`),Y.allow)for(let X of Y.allow)Z.push(`Allow: ${X}`);if(Y.disallow)for(let X of Y.disallow)Z.push(`Disallow: ${X}`);if(Y.crawlDelay!==void 0)Z.push(`Crawl-delay: ${Y.crawlDelay}`);Z.push("")}if($.sitemap){let Y=Array.isArray($.sitemap)?$.sitemap:[$.sitemap];for(let X of Y)Z.push(`Sitemap: ${X}`)}if($.host)Z.push(`Host: ${$.host}`);return Z.join(`
|
|
1857
|
-
`).trim()}function lF($){return Yz({rules:[{userAgent:"*",allow:["/"]}],sitemap:$})}function LZ($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}var G3,K3;var z3=
|
|
1857
|
+
`).trim()}function lF($){return Yz({rules:[{userAgent:"*",allow:["/"]}],sitemap:$})}function LZ($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}var G3,K3;var z3=P(()=>{t0();w0();G3={name:"meta",handler:($,Z,Y,X)=>{if(Z.length<1)return r("Meta","meta directive requires at least the meta name",p.INVALID_DIRECTIVE_SYNTAX);let J=Z[0].replace(/['"]/g,""),Q=Z.length>1?Z[1].replace(/['"]/g,""):"";return`<meta name="${c(J)}" content="${c(Q)}">`},hasEndTag:!1},K3={name:"structuredData",handler:($,Z,Y,X)=>{if($.trim()==="")return r("StructuredData","structuredData directive requires JSON-LD content",p.INVALID_DIRECTIVE_SYNTAX);try{let J=JSON.parse($);if(!J["@context"])J["@context"]="https://schema.org";if(!J["@type"])return r("StructuredData","structuredData requires @type property",p.INVALID_DIRECTIVE_SYNTAX);return`<script type="application/ld+json">${JSON.stringify(J)}</script>`}catch(J){let Q=J instanceof Error?J.message:String(J);return r("StructuredData",Q,p.EVALUATION_ERROR)}},hasEndTag:!0}});import Xz from"fs";import W1 from"path";async function sF($,Z){if(!$.webComponents?.enabled)return[];let Y=$.webComponents.components||[],X=[];if(Y.length>0){if($.debug)console.log(`Building ${Y.length} web components...`);for(let J of Y)try{let Q=await Jz(J,$,Z);if(Q)X.push(Q)}catch(Q){if(console.error(`Error building web component ${J.name}:`,Q),$.debug)throw Q}}return X}async function Jz($,Z,Y){let{name:X,file:J,tag:Q,extends:G}=$;if(!X||!J||!Q)return console.error("Invalid web component configuration, missing required fields:",$),null;let K=null;if(W1.isAbsolute(J)&&await i(J))K=J;else if(Z.componentsDir){let H=W1.join(Z.componentsDir,J);if(await i(H))K=H}if(!K)K=await s$(J,process.cwd(),Z,Y);if(!K)return console.error(`Web component source file not found: ${J}`),null;let z=await Bun.file(K).text();Y.add(K);let U=($.outputFormat||"js")==="ts",W=U?Gz({name:X,tag:Q,baseElement:G,source:z,shadowDOM:$.shadowDOM??!0,template:$.template??!0,styleSource:$.styleSource,attributes:$.attributes||[],attributeTypes:$.attributeTypes||{}}):Qz({name:X,tag:Q,baseElement:G,source:z,shadowDOM:$.shadowDOM??!0,template:$.template??!0,styleSource:$.styleSource,attributes:$.attributes||[]}),_=Z.webComponents?.outputDir||"dist/web-components";await Xz.promises.mkdir(_,{recursive:!0});let B=U?"ts":"js",j=W1.join(_,`${Q}.${B}`);if(await Bun.write(j,W),Z.debug)console.log(`Built web component ${X} -> ${j}`);return j}function Qz($){let{name:Z,tag:Y,baseElement:X="HTMLElement",source:J,shadowDOM:Q,template:G,styleSource:K,attributes:z=[]}=$,q=J.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"").trim();if(!Q)q=q.replace(/<slot\s+name=["']([^"']+)["']\s*>([\s\S]*?)<\/slot>/gi,'<div data-slot="$1">$2</div>'),q=q.replace(/<slot\s+name=["']([^"']+)["']\s*\/>/gi,'<div data-slot="$1"></div>'),q=q.replace(/<slot\s*>([\s\S]*?)<\/slot>/gi,"<div data-default-slot>$1</div>"),q=q.replace(/<slot\s*\/>/gi,"<div data-default-slot></div>");let U="";if(K)U=`<link rel="stylesheet" href="${K}">`;return`/**
|
|
1858
1858
|
* ${Z} Web Component
|
|
1859
1859
|
* Auto-generated from stx component
|
|
1860
1860
|
*/
|
|
@@ -2933,14 +2933,14 @@ ${U}
|
|
|
2933
2933
|
customElements.define('${Z}', ${G});
|
|
2934
2934
|
`}async function FZ($,Z,Y,X){if(Z.length<1)return r("WebComponent","@webcomponent directive requires at least the tag name parameter",p.INVALID_DIRECTIVE_SYNTAX);let J=Z[0].replace(/['"]/g,""),G=(Y.__stx_options||{}).componentsDir||"components",K=[W1.join(W1.dirname(X),G,`${J}.stx`),W1.join(process.cwd(),G,`${J}.stx`),W1.join(W1.dirname(X),`${J}.stx`)],z=null;for(let W of K)if(await i(W)){z=await Bun.file(W).text();break}if(!z)return r("WebComponent",`Component file not found: ${J}.stx`,p.FILE_NOT_FOUND);let q=_z(z,J);return`<script type="module">
|
|
2935
2935
|
${Bz(q)}
|
|
2936
|
-
</script>`}var q3;var VZ=C(()=>{t0();O0();q3={strategy:"attribute",attributeName:"data-v",preserveOriginal:!0}});var wZ={};l(wZ,{timingPlugin:()=>Fz,pluginManager:()=>jz,definePlugin:()=>r$,debugPlugin:()=>Lz,createVariablesPlugin:()=>Vz,createFilterPlugin:()=>Oz,createDirectivePlugin:()=>Hz,PluginManager:()=>W3});function r$($){return $}class W3{plugins=new Map;sortedPlugins=[];initialized=!1;async register($,Z){if(this.plugins.has($.name))throw Error(`Plugin "${$.name}" is already registered`);if($.dependencies){for(let Y of $.dependencies)if(!this.plugins.has(Y))throw Error(`Plugin "${$.name}" depends on "${Y}" which is not registered`)}if(this.plugins.set($.name,$),$.onRegister)await $.onRegister(Z);this.sortPlugins()}async unregister($){let Z=this.plugins.get($);if(!Z)return!1;for(let[Y,X]of this.plugins)if(X.dependencies?.includes($))throw Error(`Cannot unregister "${$}" because "${Y}" depends on it`);if(Z.onUnregister)await Z.onUnregister();return this.plugins.delete($),this.sortPlugins(),!0}get($){return this.plugins.get($)}has($){return this.plugins.has($)}getAll(){return[...this.sortedPlugins]}getAllDirectives(){let $=[];for(let Z of this.sortedPlugins)if(Z.registerDirectives)$.push(...Z.registerDirectives());return $}getAllFilters(){let $={};for(let Z of this.sortedPlugins)if(Z.registerFilters)Object.assign($,Z.registerFilters());return $}async runBeforeProcess($){return this.runHooks("beforeProcess",$)}async runAfterParse($){return this.runHooks("afterParse",$)}async runBeforeDirective($,Z){return this.runDirectiveHooks("beforeDirective",$,Z)}async runAfterDirective($,Z){return this.runDirectiveHooks("afterDirective",$,Z)}async runBeforeRender($){return this.runHooks("beforeRender",$)}async runAfterRender($){return this.runHooks("afterRender",$)}async runOnError($){for(let Z of this.sortedPlugins)if(Z.onError)try{let Y=await Z.onError($);if(Y){if(Y.template!==void 0)$.template=Y.template;if(Y.context)$.context={...$.context,...Y.context};if(Y.metadata)$.metadata={...$.metadata,...Y.metadata};if(Y.skip)return $}}catch(Y){console.error(`Error in plugin "${Z.name}" onError hook:`,Y)}return null}sortPlugins(){this.sortedPlugins=Array.from(this.plugins.values()).sort(($,Z)=>($.priority??100)-(Z.priority??100))}async runHooks($,Z){let Y={...Z};for(let X of this.sortedPlugins){let J=X[$];if(J)try{let Q=await J(Y);if(Q){if(Q.template!==void 0)Y.template=Q.template;if(Q.context)Y.context={...Y.context,...Q.context};if(Q.metadata)Y.metadata={...Y.metadata,...Q.metadata};if(Q.skip)break}}catch(Q){console.error(`Error in plugin "${X.name}" ${$} hook:`,Q)}}return Y}async runDirectiveHooks($,Z,Y){let X={...Y};for(let J of this.sortedPlugins){let Q=J[$];if(Q)try{let G=await Q(Z,X);if(G){if(G.template!==void 0)X.template=G.template;if(G.context)X.context={...X.context,...G.context};if(G.metadata)X.metadata={...X.metadata,...G.metadata};if(G.skip)break}}catch(G){console.error(`Error in plugin "${J.name}" ${$} hook:`,G)}}return X}}function Hz($,Z,Y={}){return{name:$,...Y,registerDirectives:()=>Z}}function Oz($,Z,Y={}){return{name:$,...Y,registerFilters:()=>Z}}function Vz($){return r$({name:"stx-variables",version:"1.0.0",description:"Adds predefined variables to template context",beforeProcess(Z){return{context:{...Z.context,...$}}}})}var jz,Lz,Fz;var AZ=C(()=>{jz=new W3;Lz=r$({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)}}),Fz=r$({name:"stx-timing",version:"1.0.0",description:"Measures template processing time",priority:1,beforeProcess($){$.metadata.startTime=performance.now()},afterRender($){let Z=$.metadata.startTime;if(Z){let Y=performance.now()-Z;console.log(`[stx-timing] Processing took ${Y.toFixed(2)}ms`)}}})});var NZ={};l(NZ,{validateConfig:()=>Nz,loadStxConfig:()=>t$,defineStxConfig:()=>Rz,defaultConfig:()=>P1,config:()=>B3});import _3 from"fs";import M0 from"path";import{loadConfigWithResult as wz}from"bunfig";function Az($,Z){let Y=Z||"pages";if($)return{root:$,pagesDir:Y};let X=M0.join(process.cwd(),"resources","views"),J=M0.join(process.cwd(),"resources","layouts");if(_3.existsSync(X)&&_3.existsSync(J))return{root:"resources",pagesDir:"views"};let Q=M0.join(process.cwd(),"resources","views","pages");if(_3.existsSync(Q))return{root:"resources/views",pagesDir:Y};return{root:".",pagesDir:Y}}async function t$($){if(!$){if(G5)return G5;if(a$)return a$}let Z=$?M0.resolve($):process.cwd(),Y=RZ.get(Z);if(Y)return Y;let X=(async()=>{let Q=(await wz({name:"stx",alias:"ui",cwd:Z,defaultConfig:P1,verbose:!1})).config,G=Az(Q.root,Q.pagesDir);if(Q.root=G.root,Q.pagesDir=G.pagesDir,Q.root&&Q.root!=="."){let K=Q.root;if(Q.partialsDir&&!M0.isAbsolute(Q.partialsDir))Q.partialsDir=M0.join(K,Q.partialsDir);if(Q.componentsDir&&!M0.isAbsolute(Q.componentsDir))Q.componentsDir=M0.join(K,Q.componentsDir);if(Q.layoutsDir&&!M0.isAbsolute(Q.layoutsDir))Q.layoutsDir=M0.join(K,Q.layoutsDir)}if(Q.plugins&&Q.plugins.length>0){let{pluginManager:K}=await Promise.resolve().then(() => (AZ(),wZ)),z=[],q=[];for(let U of Q.plugins){let W=typeof U==="string"?U:U[0],_=typeof U==="string"?{}:U[1]||{};try{let B,j;try{B=await import(W),j=M0.dirname(G0.resolve(W))}catch{let L=M0.resolve(process.cwd(),W);B=await import(L),j=M0.dirname(L)}let H=B.default||B;if(K.register(H,Q),H.components){let L=M0.resolve(j,H.components);z.push(L)}if(H.pages){let L=M0.resolve(j,H.pages),F=_.path||"/";q.push({dir:L,prefix:F})}if(H.setup){let L={addDirective:(F)=>{Q.customDirectives=Q.customDirectives||[],Q.customDirectives.push(F)},addRoute:(F,O)=>{Q.apiRoutes=Q.apiRoutes||{},Q.apiRoutes[F]=O},addMiddleware:(F)=>{Q.middleware=Q.middleware||[],Q.middleware.push(F)},pluginDir:j,config:Q};await H.setup(_,L)}console.log(`[stx] Plugin loaded: ${H.name||W}`)}catch(B){console.warn(`[stx] Failed to load plugin ${W}:`,B.message)}}Q._pluginComponentDirs=z,Q._pluginPageDirs=q}return Q})();if(RZ.set(Z,X),!$)a$=X,X.then((J)=>{G5=J}).catch(()=>{});return X}function Rz($){return $}function Nz($){let Z=[],Y=[];if($.partialsDir!==void 0&&typeof $.partialsDir!=="string")Z.push({path:"partialsDir",message:"partialsDir must be a string",severity:"error"});if($.componentsDir!==void 0&&typeof $.componentsDir!=="string")Z.push({path:"componentsDir",message:"componentsDir must be a string",severity:"error"});if($.cache!==void 0&&typeof $.cache!=="boolean")Z.push({path:"cache",message:"cache must be a boolean",severity:"error"});if($.debug!==void 0&&typeof $.debug!=="boolean")Z.push({path:"debug",message:"debug must be a boolean",severity:"error"});if($.streaming){if($.streaming.bufferSize!==void 0){if(typeof $.streaming.bufferSize!=="number"||$.streaming.bufferSize<=0)Z.push({path:"streaming.bufferSize",message:"streaming.bufferSize must be a positive number",severity:"error"})}if($.streaming.timeout!==void 0){if(typeof $.streaming.timeout!=="number"||$.streaming.timeout<=0)Z.push({path:"streaming.timeout",message:"streaming.timeout must be a positive number",severity:"error"})}if($.streaming.strategy!==void 0){let X=["auto","manual","sections"];if(!X.includes($.streaming.strategy))Z.push({path:"streaming.strategy",message:`streaming.strategy must be one of: ${X.join(", ")}`,severity:"error"})}}if($.i18n){if($.i18n.format!==void 0){let X=["json","yaml","yml","js"];if(!X.includes($.i18n.format))Z.push({path:"i18n.format",message:`i18n.format must be one of: ${X.join(", ")}`,severity:"error"})}}if($.animation){if($.animation.defaultDuration!==void 0){if(typeof $.animation.defaultDuration!=="number"||$.animation.defaultDuration<0)Z.push({path:"animation.defaultDuration",message:"animation.defaultDuration must be a non-negative number",severity:"error"})}if($.animation.staggerDelay!==void 0){if(typeof $.animation.staggerDelay!=="number"||$.animation.staggerDelay<0)Z.push({path:"animation.staggerDelay",message:"animation.staggerDelay must be a non-negative number",severity:"error"})}}if($.a11y){if($.a11y.level!==void 0){let X=["AA","AAA"];if(!X.includes($.a11y.level))Z.push({path:"a11y.level",message:`a11y.level must be one of: ${X.join(", ")}`,severity:"error"})}}if($.hydration){if($.hydration.mode!==void 0){let X=["progressive","islands"];if(!X.includes($.hydration.mode))Z.push({path:"hydration.mode",message:`hydration.mode must be one of: ${X.join(", ")}`,severity:"error"})}if($.hydration.preload!==void 0){let X=["none","eager","lazy"];if(!X.includes($.hydration.preload))Z.push({path:"hydration.preload",message:`hydration.preload must be one of: ${X.join(", ")}`,severity:"error"})}}if($.customDirectives)if(!Array.isArray($.customDirectives))Z.push({path:"customDirectives",message:"customDirectives must be an array",severity:"error"});else $.customDirectives.forEach((X,J)=>{if(!X.name||typeof X.name!=="string")Z.push({path:`customDirectives[${J}].name`,message:"Custom directive must have a name string",severity:"error"});if(!X.handler||typeof X.handler!=="function")Z.push({path:`customDirectives[${J}].handler`,message:"Custom directive must have a handler function",severity:"error"})});if($.middleware)if(!Array.isArray($.middleware))Z.push({path:"middleware",message:"middleware must be an array",severity:"error"});else $.middleware.forEach((X,J)=>{if(!X.name||typeof X.name!=="string")Z.push({path:`middleware[${J}].name`,message:"Middleware must have a name string",severity:"error"});if(!X.handler||typeof X.handler!=="function")Z.push({path:`middleware[${J}].handler`,message:"Middleware must have a handler function",severity:"error"});if(!X.timing||!["before","after"].includes(X.timing))Z.push({path:`middleware[${J}].timing`,message:'Middleware timing must be "before" or "after"',severity:"error"})});if($.debug===!0&&$.cache===!0)Y.push({path:"debug+cache",message:"Debug mode with caching enabled may show stale content during development",severity:"warning"});if($.seo?.enabled===!0&&!$.seo?.defaultConfig?.title)Y.push({path:"seo.defaultConfig.title",message:"SEO is enabled but no default title is set",severity:"warning"});if($.pwa){if($.pwa.enabled===!0&&!$.pwa.manifest?.name)Z.push({path:"pwa.manifest.name",message:"PWA manifest name is required when PWA is enabled",severity:"error"});if($.pwa.manifest?.display!==void 0){let X=["fullscreen","standalone","minimal-ui","browser"];if(!X.includes($.pwa.manifest.display))Z.push({path:"pwa.manifest.display",message:`PWA display must be one of: ${X.join(", ")}`,severity:"error"})}if($.pwa.manifest?.orientation!==void 0){let X=["portrait","landscape","any","portrait-primary","portrait-secondary","landscape-primary","landscape-secondary"];if(!X.includes($.pwa.manifest.orientation))Z.push({path:"pwa.manifest.orientation",message:`PWA orientation must be one of: ${X.join(", ")}`,severity:"error"})}if($.pwa.routes){let X=["cache-first","network-first","stale-while-revalidate","network-only","cache-only"];$.pwa.routes.forEach((J,Q)=>{if(!J.pattern||typeof J.pattern!=="string")Z.push({path:`pwa.routes[${Q}].pattern`,message:"PWA route must have a pattern string",severity:"error"});if(!X.includes(J.strategy))Z.push({path:`pwa.routes[${Q}].strategy`,message:`PWA route strategy must be one of: ${X.join(", ")}`,severity:"error"});if(J.maxAgeSeconds!==void 0&&(typeof J.maxAgeSeconds!=="number"||J.maxAgeSeconds<0))Z.push({path:`pwa.routes[${Q}].maxAgeSeconds`,message:"PWA route maxAgeSeconds must be a non-negative number",severity:"error"});if(J.maxEntries!==void 0&&(typeof J.maxEntries!=="number"||J.maxEntries<1))Z.push({path:`pwa.routes[${Q}].maxEntries`,message:"PWA route maxEntries must be a positive number",severity:"error"})})}if($.pwa.icons?.sizes){if(!Array.isArray($.pwa.icons.sizes))Z.push({path:"pwa.icons.sizes",message:"PWA icon sizes must be an array of numbers",severity:"error"});else if($.pwa.icons.sizes.filter((J)=>typeof J!=="number"||J<16||J>1024).length>0)Z.push({path:"pwa.icons.sizes",message:"PWA icon sizes must be numbers between 16 and 1024",severity:"error"})}if($.pwa.icons?.purpose){let X=["any","maskable","monochrome"];if($.pwa.icons.purpose.filter((Q)=>!X.includes(Q)).length>0)Z.push({path:"pwa.icons.purpose",message:`PWA icon purpose must be one of: ${X.join(", ")}`,severity:"error"})}if($.pwa.enabled===!0&&!$.pwa.icons?.src)Y.push({path:"pwa.icons.src",message:"PWA is enabled but no icon source specified. Provide a 512x512 PNG for best results.",severity:"warning"});if($.pwa.enabled===!0&&!$.pwa.manifest?.themeColor)Y.push({path:"pwa.manifest.themeColor",message:"PWA theme color not set, defaulting to black",severity:"warning"})}return{valid:Z.length===0,errors:Z,warnings:Y}}var P1,G5=null,RZ,a$=null,B3;var v5=C(()=>{J7();q7();H7();O7();V7();E8();a7();e8();z3();VZ();P1={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:F7,hasEndTag:!0,description:"Render markdown content to HTML"},{name:"webcomponent",handler:FZ,hasEndTag:!1,description:"Include a web component in the template"},z$,q$,G3,K3,Q7,K7,z7,G7,i9,s9,D8,r7,...t7],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}};RZ=new Map;B3=new Proxy(P1,{get($,Z){if(G5&&Z in G5)return G5[Z];if(!a$)t$().catch((Y)=>{console.warn("[stx] Failed to load config file:",Y?.message||Y)});return $[Z]}})});var yz={};l(yz,{resetCssCache:()=>Ez,resetCrosswindCache:()=>kz,rebuildCrosswindCSS:()=>bz,loadCrosswindConfig:()=>F3,loadCrosswind:()=>L3,injectCrosswindCSS:()=>V3,getCachedCSS:()=>Sz,generateCrosswindCSS:()=>DZ,extractClassNames:()=>IZ,buildCrosswindCSS:()=>MZ});import $4 from"fs";import Y0 from"path";function O3($){return Bun.hash($).toString(16).padStart(16,"0").slice(0,16)}function j3($,Z){if(Q1.has($))Q1.delete($);else if(Q1.size>=Tz)Q1.delete(Q1.keys().next().value);Q1.set($,Z)}async function Mz($){if(!_1)return null;try{let Z=Bun.file(Y0.join(_1,`cw-${O3($)}.css`));if(!await Z.exists())return null;return await Z.text()}catch{return null}}async function Iz($,Z){if(!_1)return;try{if(!$4.existsSync(_1))$4.mkdirSync(_1,{recursive:!0});await Bun.write(Y0.join(_1,`cw-${O3($)}.css`),Z)}catch{}}async function TZ($){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 Dz(){let $=[],Z=process.env.HOME||process.env.USERPROFILE||"",Y=process.cwd();while(Y!==Y0.dirname(Y))$.push(Y0.join(Y,"node_modules","@cwcss","crosswind","dist","index.js")),$.push(Y0.join(Y,"node_modules","@cwcss","crosswind","src","index.ts")),$.push(Y0.join(Y,"pantry","@cwcss","crosswind","dist","index.js")),$.push(Y0.join(Y,"pantry","@cwcss","crosswind","src","index.ts")),$.push(Y0.join(Y,"node_modules","@stacksjs","crosswind","dist","index.js")),$.push(Y0.join(Y,"pantry","@stacksjs","crosswind","dist","index.js")),Y=Y0.dirname(Y);if(Z){let X=[Y0.join(Z,"Code","Tools","crosswind","packages","crosswind","dist","index.js"),Y0.join(Z,"Code","Tools","crosswind","packages","crosswind","src","index.ts"),Y0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","dist","index.js"),Y0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","src","index.ts"),Y0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@cwcss","crosswind","dist","index.js"),Y0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@stacksjs","crosswind","dist","index.js")];$.push(...X)}return $.push(Y0.join(process.cwd(),"..","crosswind","packages","crosswind","dist","index.js")),$.push(Y0.join(process.cwd(),"..","crosswind","packages","crosswind","src","index.ts")),$}async function L3(){if(H3)return z5;H3=!0;try{let $=["@cwcss/crosswind","@cwcss/crosswind/dist/index.js","@stacksjs/crosswind","@stacksjs/crosswind/dist/index.js"];for(let Y of $){let X=await TZ(Y);if(X){if(z5=X,!process.env.STACKS_DEV_QUIET)console.log(`${K0.green}[Crosswind]${K0.reset} CSS engine loaded`);return z5}}let Z=Dz();for(let Y of Z)if(await Bun.file(Y).exists()){let X=await TZ(Y);if(X){if(z5=X,!process.env.STACKS_DEV_QUIET)console.log(`${K0.green}[Crosswind]${K0.reset} CSS engine loaded from ${Y0.dirname(Y0.dirname(Y))}`);return z5}}throw Error("Crosswind CSSGenerator not found in any location")}catch{return console.warn(`${K0.yellow}[Crosswind] CSS engine not available, Tailwind styles will not be generated${K0.reset}`),console.warn(`${K0.yellow}Run 'bun add @stacksjs/crosswind' to enable CSS generation${K0.reset}`),null}}function Ez(){Q1.clear()}function kz(){z5=null,H3=!1,l0=null,x5="",Q1.clear(),e$=null}async function F3($){try{let{loadConfigWithResult:Z}=await import("bunfig"),Y=await Z({name:"crosswind",cwd:$,defaultConfig:{},checkEnv:!1,verbose:!1});if(!Y?.path||!Y.config||Object.keys(Y.config).length===0)return null;let X=Y0.relative($,Y.path);if(!process.env.STACKS_DEV_QUIET)console.log(`${K0.green}[Crosswind]${K0.reset} Loaded config from ${X||Y.path}`);return Y.config}catch(Z){if(Z instanceof Error&&Z.name==="ConfigNotFoundError")return null;return console.warn(`${K0.yellow}[Crosswind]${K0.reset} Failed to load crosswind config:`,Z instanceof Error?Z.message:Z),null}}async function MZ($){if(K5)return x5;K5=!0;try{let Z=await L3();if(!Z||!Z.build)return K5=!1,"";if(!l0)l0=await F3($);if(!l0)return K5=!1,"";let Y=Z.defaultConfig?.theme||{},X=l0.theme||{},J={...Z.defaultConfig,...l0,theme:{...Y,...X,extend:{...Y.extend||{},...X.extend||{}}}},Q=performance.now(),G=await Z.build(J),K=performance.now()-Q;if(x5=G.css,console.log(`${K0.cyan}[Crosswind]${K0.reset} Built ${G.classes.size} classes in ${K.toFixed(1)}ms`),J.output){let z=Y0.isAbsolute(J.output)?J.output:Y0.join($,J.output),q=Y0.dirname(z);if(!$4.existsSync(q))$4.mkdirSync(q,{recursive:!0});await Bun.write(z,G.css)}return K5=!1,G.css}catch(Z){return console.error(`${K0.red}[Crosswind]${K0.reset} Build error:`,Z),K5=!1,x5}}async function bz($){l0=null,await MZ($)}function Sz(){return x5}function IZ($){let Z=new Set,Y=/class\s*=\s*["']([^"']+)["']/gi,X=Y.exec($);while(X!==null){for(let G of X[1].split(/\s+/))if(G.trim())Z.add(G.trim());X=Y.exec($)}let J=/(?:x-class|:class)\s*=\s*"([^"]+)"/gi,Q=J.exec($);while(Q!==null){let G=Q[1].match(/'([^']+)'/g);if(G){for(let K of G)for(let z of K.slice(1,-1).split(/\s+/))if(z.trim())Z.add(z.trim())}Q=J.exec($)}return Z}async function DZ($,Z){try{let Y=await L3();if(!Y)return"";let X=IZ($);if(X.size===0)return"";let J=Z?Y0.resolve(Z):process.cwd();if(!_1)_1=Y0.join(J,".stx/cache");let Q=[...X].sort().join(" "),G=`${e$||"default"}::${Q}`,K=Q1.get(G);if(K!==void 0)return j3(G,K),K;let z=await Mz(G);if(z!==null)return j3(G,z),z;if(!l0){let A=null;try{let{loadStxConfig:R}=await Promise.resolve().then(() => (v5(),NZ)),N=await R(J);if(N.css)if(typeof N.css==="string"){let M=Y0.isAbsolute(N.css)?N.css:Y0.resolve(J,N.css);if(await Bun.file(M).exists()){let T=await import(M);A=T.default||T,console.log(`${K0.green}[Crosswind]${K0.reset} Loaded config from stx.config.ts \u2192 ${N.css}`)}}else{if(A={...N.css,content:N.css.content||[],preflight:N.css.preflight??!0,minify:N.css.minify??!1},N.css.config){let M=Y0.isAbsolute(N.css.config)?N.css.config:Y0.resolve(J,N.css.config);if(await Bun.file(M).exists()){let T=await import(M);A={...T.default||T,...A}}}console.log(`${K0.green}[Crosswind]${K0.reset} Using inline CSS config from stx.config.ts`)}}catch{}l0=A||await F3(J);try{e$=O3(JSON.stringify(l0??{}))}catch{e$="unhashable"}}let q=Y.defaultConfig||Y.config,U=l0||{},W=q.theme||{},B=(U.theme||{}).extend||{},j={...W};if(Object.keys(B).length>0)j.extend=B;let H=[...q.safelist||[],...U.safelist||[]],L={...q,...U,content:[],output:"",preflight:!0,minify:!1,theme:j,safelist:H},F=new Y.CSSGenerator(L);for(let A of H)F.generate(A);for(let A of X)F.generate(A);let O=F.toCSS(!0,!1),V=L.shortcuts||U.shortcuts||{};for(let[A,R]of Object.entries(V)){if(!X.has(A)&&!H.includes(A))continue;let N=R.split(/\s+/).filter(Boolean);for(let M of N)F.generate(M)}O=F.toCSS(!0,!1);let w=O.split(`
|
|
2936
|
+
</script>`}var q3;var VZ=P(()=>{t0();O0();q3={strategy:"attribute",attributeName:"data-v",preserveOriginal:!0}});var wZ={};l(wZ,{timingPlugin:()=>Fz,pluginManager:()=>jz,definePlugin:()=>r$,debugPlugin:()=>Lz,createVariablesPlugin:()=>Vz,createFilterPlugin:()=>Oz,createDirectivePlugin:()=>Hz,PluginManager:()=>W3});function r$($){return $}class W3{plugins=new Map;sortedPlugins=[];initialized=!1;async register($,Z){if(this.plugins.has($.name))throw Error(`Plugin "${$.name}" is already registered`);if($.dependencies){for(let Y of $.dependencies)if(!this.plugins.has(Y))throw Error(`Plugin "${$.name}" depends on "${Y}" which is not registered`)}if(this.plugins.set($.name,$),$.onRegister)await $.onRegister(Z);this.sortPlugins()}async unregister($){let Z=this.plugins.get($);if(!Z)return!1;for(let[Y,X]of this.plugins)if(X.dependencies?.includes($))throw Error(`Cannot unregister "${$}" because "${Y}" depends on it`);if(Z.onUnregister)await Z.onUnregister();return this.plugins.delete($),this.sortPlugins(),!0}get($){return this.plugins.get($)}has($){return this.plugins.has($)}getAll(){return[...this.sortedPlugins]}getAllDirectives(){let $=[];for(let Z of this.sortedPlugins)if(Z.registerDirectives)$.push(...Z.registerDirectives());return $}getAllFilters(){let $={};for(let Z of this.sortedPlugins)if(Z.registerFilters)Object.assign($,Z.registerFilters());return $}async runBeforeProcess($){return this.runHooks("beforeProcess",$)}async runAfterParse($){return this.runHooks("afterParse",$)}async runBeforeDirective($,Z){return this.runDirectiveHooks("beforeDirective",$,Z)}async runAfterDirective($,Z){return this.runDirectiveHooks("afterDirective",$,Z)}async runBeforeRender($){return this.runHooks("beforeRender",$)}async runAfterRender($){return this.runHooks("afterRender",$)}async runOnError($){for(let Z of this.sortedPlugins)if(Z.onError)try{let Y=await Z.onError($);if(Y){if(Y.template!==void 0)$.template=Y.template;if(Y.context)$.context={...$.context,...Y.context};if(Y.metadata)$.metadata={...$.metadata,...Y.metadata};if(Y.skip)return $}}catch(Y){console.error(`Error in plugin "${Z.name}" onError hook:`,Y)}return null}sortPlugins(){this.sortedPlugins=Array.from(this.plugins.values()).sort(($,Z)=>($.priority??100)-(Z.priority??100))}async runHooks($,Z){let Y={...Z};for(let X of this.sortedPlugins){let J=X[$];if(J)try{let Q=await J(Y);if(Q){if(Q.template!==void 0)Y.template=Q.template;if(Q.context)Y.context={...Y.context,...Q.context};if(Q.metadata)Y.metadata={...Y.metadata,...Q.metadata};if(Q.skip)break}}catch(Q){console.error(`Error in plugin "${X.name}" ${$} hook:`,Q)}}return Y}async runDirectiveHooks($,Z,Y){let X={...Y};for(let J of this.sortedPlugins){let Q=J[$];if(Q)try{let G=await Q(Z,X);if(G){if(G.template!==void 0)X.template=G.template;if(G.context)X.context={...X.context,...G.context};if(G.metadata)X.metadata={...X.metadata,...G.metadata};if(G.skip)break}}catch(G){console.error(`Error in plugin "${J.name}" ${$} hook:`,G)}}return X}}function Hz($,Z,Y={}){return{name:$,...Y,registerDirectives:()=>Z}}function Oz($,Z,Y={}){return{name:$,...Y,registerFilters:()=>Z}}function Vz($){return r$({name:"stx-variables",version:"1.0.0",description:"Adds predefined variables to template context",beforeProcess(Z){return{context:{...Z.context,...$}}}})}var jz,Lz,Fz;var AZ=P(()=>{jz=new W3;Lz=r$({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)}}),Fz=r$({name:"stx-timing",version:"1.0.0",description:"Measures template processing time",priority:1,beforeProcess($){$.metadata.startTime=performance.now()},afterRender($){let Z=$.metadata.startTime;if(Z){let Y=performance.now()-Z;console.log(`[stx-timing] Processing took ${Y.toFixed(2)}ms`)}}})});var NZ={};l(NZ,{validateConfig:()=>Nz,loadStxConfig:()=>t$,defineStxConfig:()=>Rz,defaultConfig:()=>P1,config:()=>B3});import _3 from"fs";import I0 from"path";import{loadConfigWithResult as wz}from"bunfig";function Az($,Z){let Y=Z||"pages";if($)return{root:$,pagesDir:Y};let X=I0.join(process.cwd(),"resources","views"),J=I0.join(process.cwd(),"resources","layouts");if(_3.existsSync(X)&&_3.existsSync(J))return{root:"resources",pagesDir:"views"};let Q=I0.join(process.cwd(),"resources","views","pages");if(_3.existsSync(Q))return{root:"resources/views",pagesDir:Y};return{root:".",pagesDir:Y}}async function t$($){if(!$){if(G5)return G5;if(a$)return a$}let Z=$?I0.resolve($):process.cwd(),Y=RZ.get(Z);if(Y)return Y;let X=(async()=>{let Q=(await wz({name:"stx",alias:"ui",cwd:Z,defaultConfig:P1,verbose:!1})).config,G=Az(Q.root,Q.pagesDir);if(Q.root=G.root,Q.pagesDir=G.pagesDir,Q.root&&Q.root!=="."){let K=Q.root;if(Q.partialsDir&&!I0.isAbsolute(Q.partialsDir))Q.partialsDir=I0.join(K,Q.partialsDir);if(Q.componentsDir&&!I0.isAbsolute(Q.componentsDir))Q.componentsDir=I0.join(K,Q.componentsDir);if(Q.layoutsDir&&!I0.isAbsolute(Q.layoutsDir))Q.layoutsDir=I0.join(K,Q.layoutsDir)}if(Q.plugins&&Q.plugins.length>0){let{pluginManager:K}=await Promise.resolve().then(() => (AZ(),wZ)),z=[],q=[];for(let U of Q.plugins){let W=typeof U==="string"?U:U[0],_=typeof U==="string"?{}:U[1]||{};try{let B,j;try{B=await import(W),j=I0.dirname(G0.resolve(W))}catch{let L=I0.resolve(process.cwd(),W);B=await import(L),j=I0.dirname(L)}let H=B.default||B;if(K.register(H,Q),H.components){let L=I0.resolve(j,H.components);z.push(L)}if(H.pages){let L=I0.resolve(j,H.pages),F=_.path||"/";q.push({dir:L,prefix:F})}if(H.setup){let L={addDirective:(F)=>{Q.customDirectives=Q.customDirectives||[],Q.customDirectives.push(F)},addRoute:(F,O)=>{Q.apiRoutes=Q.apiRoutes||{},Q.apiRoutes[F]=O},addMiddleware:(F)=>{Q.middleware=Q.middleware||[],Q.middleware.push(F)},pluginDir:j,config:Q};await H.setup(_,L)}console.log(`[stx] Plugin loaded: ${H.name||W}`)}catch(B){console.warn(`[stx] Failed to load plugin ${W}:`,B.message)}}Q._pluginComponentDirs=z,Q._pluginPageDirs=q}return Q})();if(RZ.set(Z,X),!$)a$=X,X.then((J)=>{G5=J}).catch(()=>{});return X}function Rz($){return $}function Nz($){let Z=[],Y=[];if($.partialsDir!==void 0&&typeof $.partialsDir!=="string")Z.push({path:"partialsDir",message:"partialsDir must be a string",severity:"error"});if($.componentsDir!==void 0&&typeof $.componentsDir!=="string")Z.push({path:"componentsDir",message:"componentsDir must be a string",severity:"error"});if($.cache!==void 0&&typeof $.cache!=="boolean")Z.push({path:"cache",message:"cache must be a boolean",severity:"error"});if($.debug!==void 0&&typeof $.debug!=="boolean")Z.push({path:"debug",message:"debug must be a boolean",severity:"error"});if($.streaming){if($.streaming.bufferSize!==void 0){if(typeof $.streaming.bufferSize!=="number"||$.streaming.bufferSize<=0)Z.push({path:"streaming.bufferSize",message:"streaming.bufferSize must be a positive number",severity:"error"})}if($.streaming.timeout!==void 0){if(typeof $.streaming.timeout!=="number"||$.streaming.timeout<=0)Z.push({path:"streaming.timeout",message:"streaming.timeout must be a positive number",severity:"error"})}if($.streaming.strategy!==void 0){let X=["auto","manual","sections"];if(!X.includes($.streaming.strategy))Z.push({path:"streaming.strategy",message:`streaming.strategy must be one of: ${X.join(", ")}`,severity:"error"})}}if($.i18n){if($.i18n.format!==void 0){let X=["json","yaml","yml","js"];if(!X.includes($.i18n.format))Z.push({path:"i18n.format",message:`i18n.format must be one of: ${X.join(", ")}`,severity:"error"})}}if($.animation){if($.animation.defaultDuration!==void 0){if(typeof $.animation.defaultDuration!=="number"||$.animation.defaultDuration<0)Z.push({path:"animation.defaultDuration",message:"animation.defaultDuration must be a non-negative number",severity:"error"})}if($.animation.staggerDelay!==void 0){if(typeof $.animation.staggerDelay!=="number"||$.animation.staggerDelay<0)Z.push({path:"animation.staggerDelay",message:"animation.staggerDelay must be a non-negative number",severity:"error"})}}if($.a11y){if($.a11y.level!==void 0){let X=["AA","AAA"];if(!X.includes($.a11y.level))Z.push({path:"a11y.level",message:`a11y.level must be one of: ${X.join(", ")}`,severity:"error"})}}if($.hydration){if($.hydration.mode!==void 0){let X=["progressive","islands"];if(!X.includes($.hydration.mode))Z.push({path:"hydration.mode",message:`hydration.mode must be one of: ${X.join(", ")}`,severity:"error"})}if($.hydration.preload!==void 0){let X=["none","eager","lazy"];if(!X.includes($.hydration.preload))Z.push({path:"hydration.preload",message:`hydration.preload must be one of: ${X.join(", ")}`,severity:"error"})}}if($.customDirectives)if(!Array.isArray($.customDirectives))Z.push({path:"customDirectives",message:"customDirectives must be an array",severity:"error"});else $.customDirectives.forEach((X,J)=>{if(!X.name||typeof X.name!=="string")Z.push({path:`customDirectives[${J}].name`,message:"Custom directive must have a name string",severity:"error"});if(!X.handler||typeof X.handler!=="function")Z.push({path:`customDirectives[${J}].handler`,message:"Custom directive must have a handler function",severity:"error"})});if($.middleware)if(!Array.isArray($.middleware))Z.push({path:"middleware",message:"middleware must be an array",severity:"error"});else $.middleware.forEach((X,J)=>{if(!X.name||typeof X.name!=="string")Z.push({path:`middleware[${J}].name`,message:"Middleware must have a name string",severity:"error"});if(!X.handler||typeof X.handler!=="function")Z.push({path:`middleware[${J}].handler`,message:"Middleware must have a handler function",severity:"error"});if(!X.timing||!["before","after"].includes(X.timing))Z.push({path:`middleware[${J}].timing`,message:'Middleware timing must be "before" or "after"',severity:"error"})});if($.debug===!0&&$.cache===!0)Y.push({path:"debug+cache",message:"Debug mode with caching enabled may show stale content during development",severity:"warning"});if($.seo?.enabled===!0&&!$.seo?.defaultConfig?.title)Y.push({path:"seo.defaultConfig.title",message:"SEO is enabled but no default title is set",severity:"warning"});if($.pwa){if($.pwa.enabled===!0&&!$.pwa.manifest?.name)Z.push({path:"pwa.manifest.name",message:"PWA manifest name is required when PWA is enabled",severity:"error"});if($.pwa.manifest?.display!==void 0){let X=["fullscreen","standalone","minimal-ui","browser"];if(!X.includes($.pwa.manifest.display))Z.push({path:"pwa.manifest.display",message:`PWA display must be one of: ${X.join(", ")}`,severity:"error"})}if($.pwa.manifest?.orientation!==void 0){let X=["portrait","landscape","any","portrait-primary","portrait-secondary","landscape-primary","landscape-secondary"];if(!X.includes($.pwa.manifest.orientation))Z.push({path:"pwa.manifest.orientation",message:`PWA orientation must be one of: ${X.join(", ")}`,severity:"error"})}if($.pwa.routes){let X=["cache-first","network-first","stale-while-revalidate","network-only","cache-only"];$.pwa.routes.forEach((J,Q)=>{if(!J.pattern||typeof J.pattern!=="string")Z.push({path:`pwa.routes[${Q}].pattern`,message:"PWA route must have a pattern string",severity:"error"});if(!X.includes(J.strategy))Z.push({path:`pwa.routes[${Q}].strategy`,message:`PWA route strategy must be one of: ${X.join(", ")}`,severity:"error"});if(J.maxAgeSeconds!==void 0&&(typeof J.maxAgeSeconds!=="number"||J.maxAgeSeconds<0))Z.push({path:`pwa.routes[${Q}].maxAgeSeconds`,message:"PWA route maxAgeSeconds must be a non-negative number",severity:"error"});if(J.maxEntries!==void 0&&(typeof J.maxEntries!=="number"||J.maxEntries<1))Z.push({path:`pwa.routes[${Q}].maxEntries`,message:"PWA route maxEntries must be a positive number",severity:"error"})})}if($.pwa.icons?.sizes){if(!Array.isArray($.pwa.icons.sizes))Z.push({path:"pwa.icons.sizes",message:"PWA icon sizes must be an array of numbers",severity:"error"});else if($.pwa.icons.sizes.filter((J)=>typeof J!=="number"||J<16||J>1024).length>0)Z.push({path:"pwa.icons.sizes",message:"PWA icon sizes must be numbers between 16 and 1024",severity:"error"})}if($.pwa.icons?.purpose){let X=["any","maskable","monochrome"];if($.pwa.icons.purpose.filter((Q)=>!X.includes(Q)).length>0)Z.push({path:"pwa.icons.purpose",message:`PWA icon purpose must be one of: ${X.join(", ")}`,severity:"error"})}if($.pwa.enabled===!0&&!$.pwa.icons?.src)Y.push({path:"pwa.icons.src",message:"PWA is enabled but no icon source specified. Provide a 512x512 PNG for best results.",severity:"warning"});if($.pwa.enabled===!0&&!$.pwa.manifest?.themeColor)Y.push({path:"pwa.manifest.themeColor",message:"PWA theme color not set, defaulting to black",severity:"warning"})}return{valid:Z.length===0,errors:Z,warnings:Y}}var P1,G5=null,RZ,a$=null,B3;var v5=P(()=>{J7();q7();H7();O7();V7();E8();a7();e8();z3();VZ();P1={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:F7,hasEndTag:!0,description:"Render markdown content to HTML"},{name:"webcomponent",handler:FZ,hasEndTag:!1,description:"Include a web component in the template"},z$,q$,G3,K3,Q7,K7,z7,G7,i9,s9,D8,r7,...t7],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}};RZ=new Map;B3=new Proxy(P1,{get($,Z){if(G5&&Z in G5)return G5[Z];if(!a$)t$().catch((Y)=>{console.warn("[stx] Failed to load config file:",Y?.message||Y)});return $[Z]}})});var yz={};l(yz,{resetCssCache:()=>Ez,resetCrosswindCache:()=>kz,rebuildCrosswindCSS:()=>bz,loadCrosswindConfig:()=>F3,loadCrosswind:()=>L3,injectCrosswindCSS:()=>V3,getCachedCSS:()=>Sz,generateCrosswindCSS:()=>DZ,extractClassNames:()=>IZ,buildCrosswindCSS:()=>MZ});import $4 from"fs";import Y0 from"path";function O3($){return Bun.hash($).toString(16).padStart(16,"0").slice(0,16)}function j3($,Z){if(Q1.has($))Q1.delete($);else if(Q1.size>=Tz)Q1.delete(Q1.keys().next().value);Q1.set($,Z)}async function Mz($){if(!_1)return null;try{let Z=Bun.file(Y0.join(_1,`cw-${O3($)}.css`));if(!await Z.exists())return null;return await Z.text()}catch{return null}}async function Iz($,Z){if(!_1)return;try{if(!$4.existsSync(_1))$4.mkdirSync(_1,{recursive:!0});await Bun.write(Y0.join(_1,`cw-${O3($)}.css`),Z)}catch{}}async function TZ($){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 Dz(){let $=[],Z=process.env.HOME||process.env.USERPROFILE||"",Y=process.cwd();while(Y!==Y0.dirname(Y))$.push(Y0.join(Y,"node_modules","@cwcss","crosswind","dist","index.js")),$.push(Y0.join(Y,"node_modules","@cwcss","crosswind","src","index.ts")),$.push(Y0.join(Y,"pantry","@cwcss","crosswind","dist","index.js")),$.push(Y0.join(Y,"pantry","@cwcss","crosswind","src","index.ts")),$.push(Y0.join(Y,"node_modules","@stacksjs","crosswind","dist","index.js")),$.push(Y0.join(Y,"pantry","@stacksjs","crosswind","dist","index.js")),Y=Y0.dirname(Y);if(Z){let X=[Y0.join(Z,"Code","Tools","crosswind","packages","crosswind","dist","index.js"),Y0.join(Z,"Code","Tools","crosswind","packages","crosswind","src","index.ts"),Y0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","dist","index.js"),Y0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","src","index.ts"),Y0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@cwcss","crosswind","dist","index.js"),Y0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@stacksjs","crosswind","dist","index.js")];$.push(...X)}return $.push(Y0.join(process.cwd(),"..","crosswind","packages","crosswind","dist","index.js")),$.push(Y0.join(process.cwd(),"..","crosswind","packages","crosswind","src","index.ts")),$}async function L3(){if(H3)return z5;H3=!0;try{let $=["@cwcss/crosswind","@cwcss/crosswind/dist/index.js","@stacksjs/crosswind","@stacksjs/crosswind/dist/index.js"];for(let Y of $){let X=await TZ(Y);if(X){if(z5=X,!process.env.STACKS_DEV_QUIET)console.log(`${K0.green}[Crosswind]${K0.reset} CSS engine loaded`);return z5}}let Z=Dz();for(let Y of Z)if(await Bun.file(Y).exists()){let X=await TZ(Y);if(X){if(z5=X,!process.env.STACKS_DEV_QUIET)console.log(`${K0.green}[Crosswind]${K0.reset} CSS engine loaded from ${Y0.dirname(Y0.dirname(Y))}`);return z5}}throw Error("Crosswind CSSGenerator not found in any location")}catch{return console.warn(`${K0.yellow}[Crosswind] CSS engine not available, Tailwind styles will not be generated${K0.reset}`),console.warn(`${K0.yellow}Run 'bun add @stacksjs/crosswind' to enable CSS generation${K0.reset}`),null}}function Ez(){Q1.clear()}function kz(){z5=null,H3=!1,l0=null,x5="",Q1.clear(),e$=null}async function F3($){try{let{loadConfigWithResult:Z}=await import("bunfig"),Y=await Z({name:"crosswind",cwd:$,defaultConfig:{},checkEnv:!1,verbose:!1});if(!Y?.path||!Y.config||Object.keys(Y.config).length===0)return null;let X=Y0.relative($,Y.path);if(!process.env.STACKS_DEV_QUIET)console.log(`${K0.green}[Crosswind]${K0.reset} Loaded config from ${X||Y.path}`);return Y.config}catch(Z){if(Z instanceof Error&&Z.name==="ConfigNotFoundError")return null;return console.warn(`${K0.yellow}[Crosswind]${K0.reset} Failed to load crosswind config:`,Z instanceof Error?Z.message:Z),null}}async function MZ($){if(K5)return x5;K5=!0;try{let Z=await L3();if(!Z||!Z.build)return K5=!1,"";if(!l0)l0=await F3($);if(!l0)return K5=!1,"";let Y=Z.defaultConfig?.theme||{},X=l0.theme||{},J={...Z.defaultConfig,...l0,theme:{...Y,...X,extend:{...Y.extend||{},...X.extend||{}}}},Q=performance.now(),G=await Z.build(J),K=performance.now()-Q;if(x5=G.css,console.log(`${K0.cyan}[Crosswind]${K0.reset} Built ${G.classes.size} classes in ${K.toFixed(1)}ms`),J.output){let z=Y0.isAbsolute(J.output)?J.output:Y0.join($,J.output),q=Y0.dirname(z);if(!$4.existsSync(q))$4.mkdirSync(q,{recursive:!0});await Bun.write(z,G.css)}return K5=!1,G.css}catch(Z){return console.error(`${K0.red}[Crosswind]${K0.reset} Build error:`,Z),K5=!1,x5}}async function bz($){l0=null,await MZ($)}function Sz(){return x5}function IZ($){let Z=new Set,Y=/class\s*=\s*["']([^"']+)["']/gi,X=Y.exec($);while(X!==null){for(let G of X[1].split(/\s+/))if(G.trim())Z.add(G.trim());X=Y.exec($)}let J=/(?:x-class|:class)\s*=\s*"([^"]+)"/gi,Q=J.exec($);while(Q!==null){let G=Q[1].match(/'([^']+)'/g);if(G){for(let K of G)for(let z of K.slice(1,-1).split(/\s+/))if(z.trim())Z.add(z.trim())}Q=J.exec($)}return Z}async function DZ($,Z){try{let Y=await L3();if(!Y)return"";let X=IZ($);if(X.size===0)return"";let J=Z?Y0.resolve(Z):process.cwd();if(!_1)_1=Y0.join(J,".stx/cache");let Q=[...X].sort().join(" "),G=`${e$||"default"}::${Q}`,K=Q1.get(G);if(K!==void 0)return j3(G,K),K;let z=await Mz(G);if(z!==null)return j3(G,z),z;if(!l0){let A=null;try{let{loadStxConfig:R}=await Promise.resolve().then(() => (v5(),NZ)),N=await R(J);if(N.css)if(typeof N.css==="string"){let M=Y0.isAbsolute(N.css)?N.css:Y0.resolve(J,N.css);if(await Bun.file(M).exists()){let T=await import(M);A=T.default||T,console.log(`${K0.green}[Crosswind]${K0.reset} Loaded config from stx.config.ts \u2192 ${N.css}`)}}else{if(A={...N.css,content:N.css.content||[],preflight:N.css.preflight??!0,minify:N.css.minify??!1},N.css.config){let M=Y0.isAbsolute(N.css.config)?N.css.config:Y0.resolve(J,N.css.config);if(await Bun.file(M).exists()){let T=await import(M);A={...T.default||T,...A}}}console.log(`${K0.green}[Crosswind]${K0.reset} Using inline CSS config from stx.config.ts`)}}catch{}l0=A||await F3(J);try{e$=O3(JSON.stringify(l0??{}))}catch{e$="unhashable"}}let q=Y.defaultConfig||Y.config,U=l0||{},W=q.theme||{},B=(U.theme||{}).extend||{},j={...W};if(Object.keys(B).length>0)j.extend=B;let H=[...q.safelist||[],...U.safelist||[]],L={...q,...U,content:[],output:"",preflight:!0,minify:!1,theme:j,safelist:H},F=new Y.CSSGenerator(L);for(let A of H)F.generate(A);for(let A of X)F.generate(A);let O=F.toCSS(!0,!1),V=L.shortcuts||U.shortcuts||{};for(let[A,R]of Object.entries(V)){if(!X.has(A)&&!H.includes(A))continue;let N=R.split(/\s+/).filter(Boolean);for(let M of N)F.generate(M)}O=F.toCSS(!0,!1);let w=O.split(`
|
|
2937
2937
|
`);for(let[A,R]of Object.entries(V)){if(!X.has(A)&&!H.includes(A))continue;let N=R.split(/\s+/).filter(Boolean),M=[],T=[];for(let I of N){let D=I.startsWith("dark:"),S=`.${(D?I.slice(5):I).replace(/\//g,"\\/").replace(/:/g,"\\:").replace(/\./g,"\\.").replace(/\[/g,"\\[").replace(/\]/g,"\\]").replace(/%/g,"\\%")}`;for(let k=0;k<w.length;k++){let y=w[k].trim();if(y===`${S} {`||y.startsWith(`${S} {`)){let h=k,f="";while(h<w.length){if(f+=w[h],w[h].includes("}"))break;h++}let m=f.match(/\{([^}]+)\}/);if(m)if(D)T.push(m[1].trim());else M.push(m[1].trim());break}}}if(M.length)O+=`
|
|
2938
2938
|
.${A} { ${M.join(" ")} }`;if(T.length)O+=`
|
|
2939
2939
|
@media (prefers-color-scheme: dark) { .dark .${A} { ${T.join(" ")} } }`}return j3(G,O),Iz(G,O),O}catch(Y){return console.warn("Failed to generate Crosswind CSS:",Y),""}}async function V3($,Z){let Y=await DZ($,Z);if(!Y)return $;let X=`<style data-crosswind="generated">
|
|
2940
2940
|
${Y}
|
|
2941
2941
|
</style>`,J=/<style data-crosswind="generated">[\s\S]*?<\/style>/g;if(J.test($)){let Q=!1;return $.replace(J,()=>{if(Q)return"";return Q=!0,X})}if($.includes("</head>"))return $.replace("</head>",`${X}
|
|
2942
2942
|
</head>`);if($.includes("<body"))return $.replace(/<body([^>]*)>/,`<body$1>
|
|
2943
|
-
${X}`);return X+$}var z5=null,H3=!1,l0=null,x5="",K5=!1,Tz=256,Q1,_1=null,e$=null;var EZ=
|
|
2943
|
+
${X}`);return X+$}var z5=null,H3=!1,l0=null,x5="",K5=!1,Tz=256,Q1,_1=null,e$=null;var EZ=P(()=>{l9();Q1=new Map});function Pz(){return`stx-${++Cz}-${Date.now().toString(36)}`}function vz($){let Z={id:Pz(),element:$||null,mountHooks:[],destroyHooks:[],updateHooks:[],refs:new Map,watchers:[],isMounted:!1};return bZ.set(Z.id,Z),Z}function kZ($){Z4=$}function w3(){return Z4}function A3($){if(!Z4)return console.warn(`[stx] ${$} must be called within a component setup.`),null;return Z4}function xz($){let Z=A3("onMount");if(Z)Z.mountHooks.push($)}function fz($){let Z=A3("onDestroy");if(Z)Z.destroyHooks.push($)}function gz($){let Z=A3("onUpdate");if(Z)Z.updateHooks.push($)}function hz($=null){let Z={value:$,get current(){return this.value}},Y=w3();if(Y){let X=`ref-${Y.refs.size}`;Y.refs.set(X,Z)}return Z}function NV($,Z=null){let Y=hz(Z),X=w3();if(X)X.refs.set($,Y);return Y}function TV($,Z,Y={}){let X,J,Q=!0,G=()=>{if(!Q)return;let U=$();if(X!==U||Y.immediate){if(J)J();J=Z(U,X),X=U}};if(Y.immediate)G();else X=$();let K=setInterval(G,16),z=()=>{if(Q=!1,clearInterval(K),J)J()},q=w3();if(q)q.watchers.push({stop:z}),q.destroyHooks.push(z);return z}function MV($){let Z,Y=!0;return{get value(){if(Y)Z=$(),Y=!1,queueMicrotask(()=>{Y=!0});return Z}}}function IV($,Z){let Y=vz($);kZ(Y);try{Z()}finally{kZ(null)}return Y}function DV($){if($.isMounted)return;$.isMounted=!0;for(let Z of $.mountHooks)try{let Y=Z();if(typeof Y==="function")$.destroyHooks.push(Y)}catch(Y){console.error("[stx] Error in onMount hook:",Y)}}function EV($){if(!$.isMounted)return;for(let Z of $.updateHooks)try{let Y=Z();if(typeof Y==="function")$.destroyHooks.push(Y)}catch(Y){console.error("[stx] Error in onUpdate hook:",Y)}}function kV($){if(!$.isMounted)return;for(let Z of $.watchers)Z.stop();for(let Z of $.destroyHooks)try{Z()}catch(Y){console.error("[stx] Error in onDestroy hook:",Y)}for(let Z of $.refs.values())Z.value=null;$.isMounted=!1,bZ.delete($.id)}function SZ(){return`
|
|
2944
2944
|
// STX Lifecycle Runtime
|
|
2945
2945
|
(function() {
|
|
2946
2946
|
if (typeof window === 'undefined') return;
|
|
@@ -3285,7 +3285,7 @@ else {
|
|
|
3285
3285
|
|
|
3286
3286
|
console.log('[stx] Lifecycle runtime initialized');
|
|
3287
3287
|
})();
|
|
3288
|
-
`}function R3($){return Symbol($)}function bV($,Z){(B1.length>0?B1[B1.length-1]:Y4).set($,Z)}function SV($,Z){for(let Y=B1.length-1;Y>=0;Y--){let X=B1[Y];if(X.has($))return X.get($)}if(Y4.has($))return Y4.get($);if(arguments.length>1)return Z;console.warn(`[stx] Injection "${String($)}" not found.`);return}function dz(){B1.push(new Map)}function mz(){B1.pop()}async function yV($){dz();try{return await $()}finally{mz()}}function CV(){Y4.clear(),B1.length=0}var Z4=null,bZ,Cz=0,wV,AV,RV,Y4,B1,PV,vV,xV;var yZ=
|
|
3288
|
+
`}function R3($){return Symbol($)}function bV($,Z){(B1.length>0?B1[B1.length-1]:Y4).set($,Z)}function SV($,Z){for(let Y=B1.length-1;Y>=0;Y--){let X=B1[Y];if(X.has($))return X.get($)}if(Y4.has($))return Y4.get($);if(arguments.length>1)return Z;console.warn(`[stx] Injection "${String($)}" not found.`);return}function dz(){B1.push(new Map)}function mz(){B1.pop()}async function yV($){dz();try{return await $()}finally{mz()}}function CV(){Y4.clear(),B1.length=0}var Z4=null,bZ,Cz=0,wV,AV,RV,Y4,B1,PV,vV,xV;var yZ=P(()=>{bZ=new Map;wV=xz,AV=fz,RV=gz;Y4=new Map,B1=[];PV=R3("theme"),vV=R3("router"),xV=R3("i18n")});import*as PZ from"crypto";function CZ($){let Z=/\$(\w+)\./g,Y=[],X;while((X=Z.exec($))!==null)if(!Y.includes(X[1]))Y.push(X[1]);return Y}function uz(){return`stx-${PZ.randomBytes(4).toString("hex")}`}function lz($){return/\$\w+\./.test($)}function pz($){let Z=[],Y=new Set,X=/<(\w+)([^>]*?)(\s*\/?>)/g,J=$;return J=J.replace(X,(Q,G,K,z)=>{if(["script","style","template"].includes(G.toLowerCase()))return Q;let q=[],U=!1,W=K,_=/(\w+(?:-\w+)*)\s*=\s*"([^"]*\{\{[^}]*\$\w+[^}]*\}\}[^"]*)"/g,B=[...K.matchAll(_)];for(let L of B){let F=L[0],O=L[1],V=L[2];if(lz(V)){U=!0;let w=V.match(/\{\{\s*([\s\S]+?)\s*\}\}/);if(w){let A=w[1];if(q.push({attr:O,expr:A,fullMatch:F,originalAttr:O}),CZ(A).forEach((N)=>Y.add(N)),O==="text")W=W.replace(F,"");else if(O==="class")W=W.replace(F,'class=""');else if(O==="disabled"||O==="hidden")W=W.replace(F,"");else W=W.replace(F,`${O}=""`)}}}if(!U)return Q;let j=W.match(/\bid\s*=\s*"([^"]+)"/),H;if(j)H=j[1];else H=uz(),W=` id="${H}"${W}`;for(let L of q)Z.push({elementId:H,attribute:L.attr,expression:L.expr,stores:CZ(L.expr)});return`<${G}${W}${z}`}),{html:J,bindings:Z,stores:Y}}function cz($,Z){if($.length===0)return"";let Y=Array.from(Z),X=`
|
|
3289
3289
|
<script>
|
|
3290
3290
|
(function() {
|
|
3291
3291
|
'use strict';
|
|
@@ -3549,7 +3549,7 @@ else {
|
|
|
3549
3549
|
`)}
|
|
3550
3550
|
})();
|
|
3551
3551
|
</script>`}function az($){let Z=mZ($);if(Z.length===0)return{template:$,bindings:[]};let Y=$,X=[];for(let J=Z.length-1;J>=0;J--){let Q=Z[J],G=Q.originalTag;if(!G.includes(" id="))G=G.replace(/^<([a-z][a-z0-9-]*)/,`<$1 id="${Q.elementId}"`);else{let K=G.match(/id=["']([^"']+)["']/);if(K)for(let z of Q.events)z.elementId=K[1]}for(let K of Q.events){let z=K.attribute.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),q=new RegExp(`\\s*${z}\\s*=\\s*"[^"]*"`,"g"),U=new RegExp(`\\s*${z}\\s*=\\s*'[^']*'`,"g");G=G.replace(q,""),G=G.replace(U,"")}Y=Y.slice(0,Q.startIndex)+G+Y.slice(Q.endIndex),X.push(...Q.events)}return{template:Y,bindings:X}}function uZ($,Z,Y){if(/\b(?:state|derived|effect)\s*(?:<[^<>()]*>)?\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:z,bindings:q}=az($),U=Z.__stx_event_bindings||[];return Z.__stx_event_bindings=[...U,...q],z}let J=mZ($);if(J.length===0)return $;let Q=$;for(let z=J.length-1;z>=0;z--){let q=J[z],U=q.originalTag;if(!U.includes(" id="))U=U.replace(/^<([a-z][a-z0-9-]*)/,`<$1 id="${q.elementId}"`);else{let W=U.match(/id=["']([^"']+)["']/);if(W)for(let _ of q.events)_.elementId=W[1]}for(let W of q.events){let _=W.attribute.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),B=new RegExp(`\\s*${_}\\s*=\\s*"[^"]*"`,"g"),j=new RegExp(`\\s*${_}\\s*=\\s*'[^']*'`,"g");U=U.replace(B,""),U=U.replace(j,"")}Q=Q.slice(0,q.startIndex)+U+Q.slice(q.endIndex)}let G=rz(J),K=Q.lastIndexOf("</body>");if(K!==-1)Q=Q.slice(0,K)+G+`
|
|
3552
|
-
`+Q.slice(K);else Q+=G;return Q}function hV($){return/@[a-z]+(?:\.[a-z]+)*\s*=\s*["'][^"']*["']/i.test($)}var fZ,gZ,iz,dZ;var lZ=
|
|
3552
|
+
`+Q.slice(K);else Q+=G;return Q}function hV($){return/@[a-z]+(?:\.[a-z]+)*\s*=\s*["'][^"']*["']/i.test($)}var fZ,gZ,iz,dZ;var lZ=P(()=>{fZ=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"]),gZ={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"},iz=new Set(["ctrl","alt","shift","meta"]),dZ={left:0,middle:1,right:2}});function X4($){return $.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function pZ($,Z){let Y=$.match(new RegExp(`${Z}\\s*=\\s*"([^"]*)"`,"i"));if(Y)return Y[1];let X=$.match(new RegExp(`${Z}\\s*=\\s*'([^']*)'`,"i"));if(X)return X[1];return null}function ez($){let Z=[],Y=/<([a-z][a-z0-9-]*)\s+([^>]*x-data\s*=\s*(?:"[^"]*"|'[^']*')[^>]*)>/gi,X;while((X=Y.exec($))!==null){let[J,Q,G]=X,K=X.index,z=pZ(G,"x-data");if(!z)continue;let q=`__stx_scope_${iZ++}`,U=pZ(G,"x-init"),W=$q($,Q,K+J.length),_=$.slice(K,W.endIndex),B=Zq(_);Z.push({id:q,selector:`[data-stx-scope="${q}"]`,stateExpr:z,initExpr:U,bindings:[],refs:B})}return Z}function $q($,Z,Y){let X=1,J=Y,Q=new RegExp(`<${Z}(?:\\s|>)`,"gi"),G=new RegExp(`</${Z}>`,"gi"),K=new RegExp(`<${Z}[^>]*/\\s*>`,"gi");while(X>0&&J<$.length){Q.lastIndex=J,G.lastIndex=J,K.lastIndex=J;let z=Q.exec($),q=G.exec($),U=K.exec($);if(U&&U.index<(z?.index??1/0)){J=U.index+U[0].length;continue}if(!q)return{endIndex:$.length};if(z&&z.index<q.index)X++,J=z.index+z[0].length;else{if(X--,X===0)return{endIndex:q.index+q[0].length};J=q.index+q[0].length}}return{endIndex:$.length}}function Zq($){let Z=new Map,Y=$.replace(/x-data\s*=\s*"[^"]*"/gi,'x-data="__stripped__"').replace(/x-data\s*=\s*'[^']*'/gi,"x-data='__stripped__'"),X=/<[a-z][a-z0-9-]*\s+([^>]*x-ref\s*=\s*["']([^"']*)["'][^>]*)>/gi,J;while((J=X.exec(Y))!==null){let[,Q,G]=J,K=Yq(Q);Z.set(G,K)}return Z}function Yq($){let Z=$.match(/\bid\s*=\s*["']([^"']*)["']/);if(Z)return Z[1];return`__stx_el_${tz++}`}function Xq(){return`
|
|
3553
3553
|
// STX Reactive Runtime - x-cloak and transition CSS
|
|
3554
3554
|
(function() {
|
|
3555
3555
|
var style = document.createElement('style');
|
|
@@ -3768,12 +3768,12 @@ window.__stx_reactive = (function() {
|
|
|
3768
3768
|
${Xq()}
|
|
3769
3769
|
${Y}
|
|
3770
3770
|
</script>`}function nZ($,Z,Y){if(iZ=0,!Gq($))return $;let X=ez($);if(X.length===0)return $;let J=Qq($,X),Q=Jq(X,Z),G=J.lastIndexOf("</body>");if(G!==-1)J=J.slice(0,G)+Q+`
|
|
3771
|
-
`+J.slice(G);else J+=Q;return J}function Qq($,Z){let Y=$;for(let X of Z){let Q=new RegExp(`<[a-z][a-z0-9-]*\\s+[^>]*data-stx-scope="([^"]*)"[^>]*x-data\\s*=\\s*["']${X4(X.stateExpr)}["']`,"gi").exec(Y);if(Q)X.id=Q[1],X.selector=`[data-stx-scope="${X.id}"]`;else{let K=new RegExp(`<[a-z][a-z0-9-]*\\s+[^>]*x-data\\s*=\\s*["']${X4(X.stateExpr)}["'][^>]*data-stx-scope="([^"]*)"`,"gi").exec(Y);if(K)X.id=K[1],X.selector=`[data-stx-scope="${X.id}"]`;else Y=Y.replace(new RegExp(`(<[a-z][a-z0-9-]*\\s+)([^>]*)(x-data\\s*=\\s*"${X4(X.stateExpr)}")([^>]*>)`,"gi"),`$1data-stx-scope="${X.id}" $2$3$4`),Y=Y.replace(new RegExp(`(<[a-z][a-z0-9-]*\\s+)([^>]*)(x-data\\s*=\\s*'${X4(X.stateExpr)}')([^>]*>)`,"gi"),`$1data-stx-scope="${X.id}" $2$3$4`)}}return Y=Y.replace(/\s*x-data\s*=\s*"([^"]*)"/g,' data-stx-xdata="$1"'),Y=Y.replace(/\s*x-data\s*=\s*'([^']*)'/g," data-stx-xdata='$1'"),Y=Y.replace(/\s*x-init\s*=\s*"[^"]*"/g,""),Y=Y.replace(/\s*x-init\s*=\s*'[^']*'/g,""),Y}function Gq($){return/x-data\s*=\s*["']/.test($)}var iZ=0,tz=0;var oZ=
|
|
3771
|
+
`+J.slice(G);else J+=Q;return J}function Qq($,Z){let Y=$;for(let X of Z){let Q=new RegExp(`<[a-z][a-z0-9-]*\\s+[^>]*data-stx-scope="([^"]*)"[^>]*x-data\\s*=\\s*["']${X4(X.stateExpr)}["']`,"gi").exec(Y);if(Q)X.id=Q[1],X.selector=`[data-stx-scope="${X.id}"]`;else{let K=new RegExp(`<[a-z][a-z0-9-]*\\s+[^>]*x-data\\s*=\\s*["']${X4(X.stateExpr)}["'][^>]*data-stx-scope="([^"]*)"`,"gi").exec(Y);if(K)X.id=K[1],X.selector=`[data-stx-scope="${X.id}"]`;else Y=Y.replace(new RegExp(`(<[a-z][a-z0-9-]*\\s+)([^>]*)(x-data\\s*=\\s*"${X4(X.stateExpr)}")([^>]*>)`,"gi"),`$1data-stx-scope="${X.id}" $2$3$4`),Y=Y.replace(new RegExp(`(<[a-z][a-z0-9-]*\\s+)([^>]*)(x-data\\s*=\\s*'${X4(X.stateExpr)}')([^>]*>)`,"gi"),`$1data-stx-scope="${X.id}" $2$3$4`)}}return Y=Y.replace(/\s*x-data\s*=\s*"([^"]*)"/g,' data-stx-xdata="$1"'),Y=Y.replace(/\s*x-data\s*=\s*'([^']*)'/g," data-stx-xdata='$1'"),Y=Y.replace(/\s*x-init\s*=\s*"[^"]*"/g,""),Y=Y.replace(/\s*x-init\s*=\s*'[^']*'/g,""),Y}function Gq($){return/x-data\s*=\s*["']/.test($)}var iZ=0,tz=0;var oZ=P(()=>{r0()});import Kq from"fs";import N3 from"path";import{createHighlighter as zq}from"ts-syntax-highlighter";async function qq($,Z={}){try{if(!await i($))throw Error(`Markdown file not found: ${$}`);let X=(await Kq.promises.stat($)).mtime.getTime();if(Z.cache&&T3.has($)){let W=T3.get($);if(W.updatedAt>=X)return{content:W.content,data:W.data}}let J=await Bun.file($).text(),{data:Q,content:G}=t9(J),K=Z.markdown||B3.markdown||{enabled:!0,syntaxHighlighting:{enabled:!0,serverSide:!0,defaultTheme:"github-dark",highlightUnknownLanguages:!0}},q=b5(G,{gfm:!0});if(K.syntaxHighlighting?.enabled&&K.syntaxHighlighting?.serverSide)q=await Uq(q,K.syntaxHighlighting?.defaultTheme||"github-dark",K.syntaxHighlighting?.highlightUnknownLanguages||!1);let U={content:q,data:Q||{}};if(Z.cache)T3.set($,{...U,updatedAt:X});return U}catch(Y){if(Z.debug)console.error(`Error reading/parsing markdown file ${$}:`,Y);let X=Y instanceof Error?Y.message:String(Y);return{content:J0("Markdown File",`Error reading/parsing markdown file: ${X}`,$,"",0,""),data:{}}}}async function Uq($,Z,Y){let X=/<pre><code( class="language-([^"]+)")?>([^<]+)<\/code><\/pre>/g;if(!J4)try{J4=await zq({theme:Z||"github-dark",cache:!0})}catch(K){return console.error("Failed to initialize ts-syntax-highlighter:",K),$}let J=async(K,z,q,U)=>{let W=U.replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&").replace(/"/g,'"').replace(/'/g,"'"),_=q||(Y?"text":"");if(!_)return K;try{if(!J4.getSupportedLanguages().includes(_))return K;return(await J4.highlight(W,_,{theme:Z})).html}catch(B){console.error(`Error highlighting code block with language ${q}:`,B)}return K},Q=$,G=$.matchAll(X);for(let K of G){let[z,q,U,W]=K,_=await J(z,q,U,W);Q=Q.replace(z,_)}return Q}async function sZ($,Z,Y="",X={}){return await Wq($,/@markdown-file\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\}))?\)/g,async(G,K,z,q)=>{try{let U=K;if(!N3.isAbsolute(K))U=N3.resolve(N3.dirname(Y),K);let W={};if(z)try{try{W=JSON.parse(z)}catch{if(X.debug)console.warn("Using safer alternative for parsing JS object literal");let O=z.replace(/^\s*\{|\}\s*$/g,"").trim().split(/,(?=\s*\w+\s*:)/);for(let V of O){let w=V.indexOf(":");if(w>0){let A=V.substring(0,w).trim(),R=V.substring(w+1).trim(),N=R.startsWith('"')&&R.endsWith('"'),M=R.startsWith("'")&&R.endsWith("'");if(N||M)R=R.substring(1,R.length-1);W[A]=R}}}}catch(F){if(X.debug)console.error("Error parsing context in @markdown-file directive:",F)}let{content:_,data:B}=await qq(U,X),j={...Z,...B,...W},H=_,L=/\{\{([^}]+)\}\}/g;return H=H.replace(L,(F,O)=>{let V=O.trim();return j[V]!==void 0?String(j[V]):F}),H}catch(U){let W=U instanceof Error?U.message:String(U);return J0("Markdown File",`Error including markdown file: ${W}`,Y,$,q,G)}})}async function Wq($,Z,Y){let X=[],J;while((J=Z.exec($))!==null){let K=J[0],z=J.index,q=J;X.push(Y(...q).then((U)=>({match:K,replacement:U,index:z})))}let Q=await Promise.all(X);Q.sort((K,z)=>z.index-K.index);let G=$;for(let{match:K,replacement:z}of Q)G=G.replace(K,()=>z);return G}var T3,J4=null;var rZ=P(()=>{v5();O0();T3=new Map});function j1($,Z){try{let Y=$.trim();if($0(Y))return Z0(Y,Object.keys(Z))(...Object.values(Z));else return e(Y,Z)}catch{return!1}}var aZ=P(()=>{w0()});class Q4{source;pos=0;line=1;column=0;tokens=[];constructor($){this.source=$}tokenize(){this.tokens=[],this.pos=0,this.line=1,this.column=0;while(this.pos<this.source.length){let $=this.nextToken();if($)this.tokens.push($)}return this.tokens.push({type:"EOF",value:"",start:this.pos,end:this.pos,line:this.line,column:this.column}),this.tokens}nextToken(){if(this.pos>=this.source.length)return null;let $=this.pos,Z=this.line,Y=this.column,X=this.source[this.pos];if(/\s/.test(X))return this.readWhitespace($,Z,Y);if(X==="/"&&this.peek(1)==="/")return this.readLineComment($,Z,Y);if(X==="/"&&this.peek(1)==="*")return this.readBlockComment($,Z,Y);if(X==='"'||X==="'")return this.readString(X,$,Z,Y);if(X==="`")return this.readTemplateString($,Z,Y);if(/\d/.test(X)||X==="."&&/\d/.test(this.peek(1)||""))return this.readNumber($,Z,Y);if(/[a-z_$]/i.test(X))return this.readIdentifier($,Z,Y);if(X==="{"){if(this.peek(1)==="{"&&this.peek(2)==="{")return this.advance(3),{type:"RAW_START",value:"{{{",start:$,end:this.pos,line:Z,column:Y};if(this.peek(1)==="{")return this.advance(2),{type:"EXPRESSION_START",value:"{{",start:$,end:this.pos,line:Z,column:Y};if(this.peek(1)==="!"&&this.peek(2)==="!")return this.advance(3),{type:"RAW_START",value:"{!!",start:$,end:this.pos,line:Z,column:Y}}if(X==="}"){if(this.peek(1)==="}"&&this.peek(2)==="}")return this.advance(3),{type:"RAW_END",value:"}}}",start:$,end:this.pos,line:Z,column:Y};if(this.peek(1)==="}")return this.advance(2),{type:"EXPRESSION_END",value:"}}",start:$,end:this.pos,line:Z,column:Y}}if(X==="!"&&this.peek(1)==="!"&&this.peek(2)==="}")return this.advance(3),{type:"RAW_END",value:"!!}",start:$,end:this.pos,line:Z,column:Y};if(X==="@"&&/[a-z]/i.test(this.peek(1)||""))return this.readDirective($,Z,Y);let J=["===","!==","==","!=","<=",">=","&&","||","??","++","--","+=","-=","*=","/=","%=","**","=>","?.","...","<<",">>",">>>","&=","|=","^="];for(let Q of J)if(this.source.slice(this.pos,this.pos+Q.length)===Q)return this.advance(Q.length),{type:"OPERATOR",value:Q,start:$,end:this.pos,line:Z,column:Y};if(/[+\-*/%<>=!&|^~?:]/.test(X))return this.advance(),{type:"OPERATOR",value:X,start:$,end:this.pos,line:Z,column:Y};if(/[()[\]{},;.]/.test(X))return this.advance(),{type:"PUNCTUATION",value:X,start:$,end:this.pos,line:Z,column:Y};return this.advance(),{type:"PUNCTUATION",value:X,start:$,end:this.pos,line:Z,column:Y}}readWhitespace($,Z,Y){while(this.pos<this.source.length&&/\s/.test(this.source[this.pos]))this.advance();return{type:"WHITESPACE",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:Y}}readLineComment($,Z,Y){this.advance(2);while(this.pos<this.source.length&&this.source[this.pos]!==`
|
|
3772
3772
|
`)this.advance();return{type:"COMMENT",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:Y}}readBlockComment($,Z,Y){this.advance(2);while(this.pos<this.source.length-1){if(this.source[this.pos]==="*"&&this.source[this.pos+1]==="/"){this.advance(2);break}this.advance()}return{type:"COMMENT",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:Y}}readString($,Z,Y,X){this.advance();while(this.pos<this.source.length){let J=this.source[this.pos];if(J==="\\"){this.advance(2);continue}if(J===$){this.advance();break}this.advance()}return{type:"STRING",value:this.source.slice(Z,this.pos),start:Z,end:this.pos,line:Y,column:X}}readTemplateString($,Z,Y){this.advance();let X=0,J=256;while(this.pos<this.source.length){let Q=this.source[this.pos];if(Q==="\\"){this.advance(2);continue}if(Q==="$"&&this.peek(1)==="{"){if(X>=J){this.pos=this.source.length;break}this.advance(2),X++;continue}if(Q==="{"&&X>0){X++,this.advance();continue}if(Q==="}"&&X>0){X--,this.advance();continue}if(Q==="`"&&X===0){this.advance();break}this.advance()}return{type:"TEMPLATE_STRING",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:Y}}readNumber($,Z,Y){if(this.source[this.pos]==="0"){let X=this.peek(1)?.toLowerCase();if(X==="x"||X==="o"||X==="b"){this.advance(2);while(this.pos<this.source.length&&/[\da-f_]/i.test(this.source[this.pos]))this.advance();return{type:"NUMBER",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:Y}}}while(this.pos<this.source.length&&/[\d_]/.test(this.source[this.pos]))this.advance();if(this.source[this.pos]==="."&&/\d/.test(this.peek(1)||"")){this.advance();while(this.pos<this.source.length&&/[\d_]/.test(this.source[this.pos]))this.advance()}if(/e/i.test(this.source[this.pos]||"")){if(this.advance(),/[+-]/.test(this.source[this.pos]||""))this.advance();while(this.pos<this.source.length&&/[\d_]/.test(this.source[this.pos]))this.advance()}if(this.source[this.pos]==="n")this.advance();return{type:"NUMBER",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:Y}}readIdentifier($,Z,Y){while(this.pos<this.source.length&&/[\w$]/.test(this.source[this.pos]))this.advance();return{type:"IDENTIFIER",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:Y}}readDirective($,Z,Y){this.advance();while(this.pos<this.source.length&&/[a-z]/i.test(this.source[this.pos]))this.advance();return{type:"DIRECTIVE",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:Y}}advance($=1){for(let Z=0;Z<$&&this.pos<this.source.length;Z++){if(this.source[this.pos]===`
|
|
3773
|
-
`)this.line++,this.column=0;else this.column++;this.pos++}}peek($){return this.source[this.pos+$]}saveState(){return{pos:this.pos,line:this.line,column:this.column}}restoreState($){this.pos=$.pos,this.line=$.line,this.column=$.column}}function F0($,Z,Y,X=0){let J=0,Q=X,G=null,K=0,z=!1;while(Q<$.length){let q=$[Q];if(G&&z){z=!1,Q++;continue}if(G&&q==="\\"){z=!0,Q++;continue}if(z=!1,(q==='"'||q==="'"||q==="`")&&!G){G=q,Q++;continue}if(q===G&&G!=="`"){G=null,Q++;continue}if(G==="`"&&q==="$"&&$[Q+1]==="{"){K++,Q+=2;continue}if(K>0&&q==="}"){K--,Q++;continue}if(q==="`"&&G==="`"&&K===0){G=null,Q++;continue}if(G){Q++;continue}if(q===Z)J++;else if(q===Y){if(J--,J===0)return Q}Q++}return-1}function tZ($,Z){let Y=Z,X={paren:0,bracket:0,brace:0},J=null,Q=0;while(Y<$.length){let G=$[Y];if((Y>0?$[Y-1]:"")==="\\"&&J){Y++;continue}if((G==='"'||G==="'")&&!J){J=G,Y++;continue}if(G===J&&J!=="`"){J=null,Y++;continue}if(G==="`"&&!J){J="`",Y++;continue}if(G==="`"&&J==="`"&&Q===0){J=null,Y++;continue}if(J==="`"&&G==="$"&&$[Y+1]==="{"){Q++,Y+=2;continue}if(Q>0){if(G==="{")Q++;else if(G==="}")Q--;Y++;continue}if(J){Y++;continue}if(X.paren===0&&X.bracket===0&&X.brace===0){if($.slice(Y,Y+2)==="}}"||$.slice(Y,Y+3)==="!!}")break;if(G===","||G===";")break}if(G==="(")X.paren++;else if(G===")"){if(X.paren--,X.paren<0)break}else if(G==="[")X.bracket++;else if(G==="]"){if(X.bracket--,X.bracket<0)break}else if(G==="{")X.brace++;else if(G==="}"){if(X.brace--,X.brace<0)break}Y++}return{expression:$.slice(Z,Y),endPos:Y}}function M3($){let Z=[],Y="",X={paren:0,bracket:0,brace:0},J=null,Q=0;for(let G=0;G<$.length;G++){let K=$[G];if((G>0?$[G-1]:"")==="\\"&&J){Y+=K;continue}if((K==='"'||K==="'")&&!J){J=K,Y+=K;continue}if(K===J&&J!=="`"){J=null,Y+=K;continue}if(K==="`"&&!J){J="`",Y+=K;continue}if(K==="`"&&J==="`"&&Q===0){J=null,Y+=K;continue}if(J==="`"&&K==="$"&&$[G+1]==="{"){Q++,Y+=K+$[G+1],G++;continue}if(Q>0&&K==="{"){Q++,Y+=K;continue}if(Q>0&&K==="}"){Q--,Y+=K;continue}if(J){Y+=K;continue}if(K==="(")X.paren++;else if(K===")")X.paren--;else if(K==="[")X.bracket++;else if(K==="]")X.bracket--;else if(K==="{")X.brace++;else if(K==="}")X.brace--;if(K==="|"&&$[G+1]!=="|"&&(G===0||$[G-1]!=="|")&&$[G-1]!=="\\"&&X.paren===0&&X.bracket===0&&X.brace===0){Z.push(Y.trim()),Y="";continue}if(K==="|"&&$[G-1]==="\\"&&!J){Y=Y.slice(0,-1)+K;continue}Y+=K}if(Y.trim())Z.push(Y.trim());return Z}function H1($,Z){let Y=_q($,Z);return Y.ok?{expression:Y.expression,endPos:Y.endPos}:null}function _q($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return{ok:!1,reason:"missing-open-paren",pos:Y};let X=F0($,"(",")",Y);if(X===-1)return{ok:!1,reason:"unclosed-paren",pos:Y};return{ok:!0,expression:$.slice(Y+1,X),endPos:X+1}}function v1($,Z,Y,X){let J=1,Q=X,G=new RegExp(`@${Z}\\s*\\(`,"g"),K=new RegExp(`@${Y}(?![a-z])`,"g");while(Q<$.length&&J>0){G.lastIndex=Q,K.lastIndex=Q;let z=G.exec($),q=K.exec($),U=z?z.index:1/0,W=q?q.index:1/0;if(U<W)J++,Q=U+z[0].length;else if(W<1/0){if(J--,J===0)return W;Q=W+q[0].length}else break}return-1}function eZ($,Z){let Y=$.slice(Z).match(/^@if\s*/);if(!Y)return null;let X=Z+Y[0].length,J=H1($,X);if(!J)return null;let Q=J.endPos,G=v1($,"if","endif",Q);if(G===-1)return null;let K=$.slice(Q,G),z=[],q=0,U="if",W=J.expression,_=0,B=0;while(q<K.length){let j=K.indexOf("@",q);if(j===-1)break;q=j;let H=K.substring(j);if(/^@if\s*\(/.test(H)){B++,q++;continue}if(/^@endif(?![a-z])/.test(H)){B--,q+=6;continue}if(B===0){let L=H.match(/^@elseif\s*/);if(L){z.push({type:U,condition:W,content:K.substring(_,q),start:Q+_,end:Q+q});let F=q+L[0].length,O=H1(K,F);if(!O){q++;continue}U="elseif",W=O.expression,q=O.endPos,_=q;continue}else if(/^@else(?![a-z])/.test(H)){z.push({type:U,condition:W,content:K.substring(_,q),start:Q+_,end:Q+q}),U="else",W=void 0,q+=5,_=q;continue}}q++}return z.push({type:U,condition:W,content:K.slice(_),start:Q+_,end:Q+K.length}),{fullMatch:$.slice(Z,G+6),branches:z,start:Z,end:G+6}}function f5($){let Z=[],Y=/@if\s*\(/g,X=Y.exec($);while(X!==null){if(Z.some((G)=>X.index>G.start&&X.index<G.end)){X=Y.exec($);continue}let Q=eZ($,X.index);if(Q)Z.push(Q),Y.lastIndex=Q.end;X=Y.exec($)}return Z}function G4($,Z,Y){let X=[],J=new RegExp(`@${Z}\\s*\\(`,"g"),Q=J.exec($);while(Q!==null){if(X.some((H)=>Q.index>H.start&&Q.index<H.end)){Q=J.exec($);continue}let K=Q.index,z=K+Q[0].length-1,q=F0($,"(",")",z);if(q===-1){Q=J.exec($);continue}let U=$.slice(z+1,q),W=q+1,_=v1($,Z,Y,W);if(_===-1){Q=J.exec($);continue}let B=$.slice(W,_),j=_+`@${Y}`.length;X.push({fullMatch:$.slice(K,j),name:Z,params:U,content:B,start:K,end:j}),J.lastIndex=j,Q=J.exec($)}return X}function I3($,Z){let Y=$.slice(Z).match(/^@switch\s*/);if(!Y)return null;let X=Z+Y[0].length,J=H1($,X);if(!J)return null;let Q=J.endPos,G=v1($,"switch","endswitch",Q);if(G===-1)return null;let K=$.slice(Q,G),z=[],q=0,U=null,W=0;while(q<K.length){let _=K.slice(q),B=_.match(/^@switch\s*\(/),j=_.match(/^@endswitch(?![a-z])/);if(B){if(W++,U)U.content+=B[0];q+=B[0].length;continue}if(j){if(W--,U)U.content+=j[0];q+=j[0].length;continue}if(W>0){if(U)U.content+=K[q];q++;continue}let H=_.match(/^@case\s*/),L=_.match(/^@default(?![a-z])/),F=_.match(/^@break(?![a-z])/);if(H&&_.startsWith("@case")){if(U)z.push(U);let O=q+H[0].length,V=H1(K,O);if(!V){q++;continue}U={type:"case",value:V.expression,content:""},q=V.endPos}else if(L&&_.startsWith("@default")){if(U)z.push(U);U={type:"default",content:""},q+=L[0].length}else if(F&&_.startsWith("@break"))q+=F[0].length;else{if(U)U.content+=K[q];q++}}if(U)z.push(U);return{fullMatch:$.slice(Z,G+10),expression:J.expression,cases:z,start:Z,end:G+10}}var $2=()=>{};function Bq($){let Z=[],Y=0;while(Y<$.length){let X=$.indexOf("{{",Y),J=$.indexOf("{!!",Y),Q=!1,G;if(X===-1&&J===-1)break;else if(X===-1)G=J,Q=!0;else if(J===-1)G=X,Q=!1;else if(J<X)G=J,Q=!0;else G=X,Q=!1;if(!Q&&$.slice(G,G+3)==="{{{")Q=!0;let K=Q?$.slice(G,G+3)==="{{{"?"{{{":"{!!":"{{",z=Q?K==="{{{"?"}}}":"!!}":"}}",q=G+K.length,U=jq($,q,z);if(U===-1){Y=G+1;continue}let W=$.slice(q,U).trim(),_=U+z.length;Z.push({fullMatch:$.slice(G,_),expression:W,start:G,end:_,isRaw:Q}),Y=_}return Z}function jq($,Z,Y){let X=Z,J=null,Q={paren:0,bracket:0,brace:0},G=0;while(X<$.length){let K=$[X];if((X>0?$[X-1]:"")==="\\"&&J){X++;continue}if((K==='"'||K==="'")&&!J){J=K,X++;continue}if(K===J&&J!=="`"){J=null,X++;continue}if(K==="`"&&!J){J="`",X++;continue}if(K==="`"&&J==="`"&&G===0){J=null,X++;continue}if(J==="`"&&K==="$"&&$[X+1]==="{"){G++,X+=2;continue}if(G>0){if(K==="{")G++;else if(K==="}")G--;X++;continue}if(J){X++;continue}if(K==="(")Q.paren++;else if(K===")")Q.paren--;else if(K==="[")Q.bracket++;else if(K==="]")Q.bracket--;else if(K==="{")Q.brace++;else if(K==="}")Q.brace--;if(Q.paren===0&&Q.bracket===0&&Q.brace<=0){if($.slice(X,X+Y.length)===Y)return X}X++}return-1}function Hq($){let Z=M3($);if(Z.length===0)return{baseExpression:"",filters:[]};let Y=Z[0],X=[];for(let J=1;J<Z.length;J++){let Q=Oq(Z[J]);if(Q)X.push(Q)}return{baseExpression:Y,filters:X}}function Oq($){let Z=$.trim();if(!Z)return null;let Y=Z.indexOf("(");if(Y===-1)return{name:Z,args:[]};let X=Z.slice(0,Y).trim(),J=Y+1,Q=F0(Z,"(",")",Y);if(Q===-1)return{name:X,args:[]};let G=Z.slice(J,Q),K=X2(G);return{name:X,args:K}}function X2($){let Z=[],Y="",X={paren:0,bracket:0,brace:0},J=null,Q=0;for(let G=0;G<$.length;G++){let K=$[G];if((G>0?$[G-1]:"")==="\\"&&J){Y+=K;continue}if((K==='"'||K==="'")&&!J){J=K,Y+=K;continue}if(K===J&&J!=="`"){J=null,Y+=K;continue}if(K==="`"&&!J){J="`",Y+=K;continue}if(K==="`"&&J==="`"&&Q===0){J=null,Y+=K;continue}if(J==="`"&&K==="$"&&$[G+1]==="{"){Q++,Y+="${",G++;continue}if(Q>0&&K==="{"){Q++,Y+=K;continue}if(Q>0&&K==="}"){Q--,Y+=K;continue}if(J){Y+=K;continue}if(K==="(")X.paren++;else if(K===")")X.paren--;else if(K==="[")X.bracket++;else if(K==="]")X.bracket--;else if(K==="{")X.brace++;else if(K==="}")X.brace--;if(K===","&&X.paren===0&&X.bracket===0&&X.brace===0){Z.push(Y.trim()),Y="";continue}Y+=K}if(Y.trim())Z.push(Y.trim());return Z}function Lq($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return null;let X=F0($,"(",")",Y);if(X===-1)return null;return{params:$.slice(Y+1,X),endPos:X+1}}function Fq($){let Z=[],X=new Q4($).tokenize().filter((Q)=>Q.type!=="WHITESPACE"&&Q.type!=="COMMENT"),J=0;while(J<X.length){let Q=X[J],G=!1;if(Q.type==="IDENTIFIER"&&Q.value==="export"){if(G=!0,J++,J>=X.length)break}let K=X[J];if(K.type==="IDENTIFIER"&&(K.value==="const"||K.value==="let"||K.value==="var")){let z=K.value;if(J++,J>=X.length)break;let q=X[J];if(q.type==="IDENTIFIER"){let U=q.value;if(J++,J<X.length&&X[J].type==="OPERATOR"&&X[J].value==="="){J++;let W=J<X.length?X[J].start:$.length,_=Z2(X,J,$);J=_.nextIndex,Z.push({type:"variable",name:U,value:$.slice(W,_.endPos),exported:G,start:K.start,end:_.endPos})}}else if(q.type==="PUNCTUATION"&&(q.value==="{"||q.value==="[")){let U=q.start,W=q.value==="{"?"}":"]",_=F0($,q.value,W,U);if(_!==-1){let B=$.slice(U,_+1);if(J=Y2(X,_+1),J<X.length&&X[J].type==="OPERATOR"&&X[J].value==="="){J++;let j=J<X.length?X[J].start:$.length,H=Z2(X,J,$);J=H.nextIndex;let L=`__stx_destructured_${Z.length}`;Z.push({type:"variable",name:L,value:`${$.slice(j,H.endPos)}; ${z} ${B} = ${L}`,exported:G,start:K.start,end:H.endPos})}}}}else if(K.type==="IDENTIFIER"&&K.value==="function"){let z=G?X[J-1].start:K.start;if(J++,J>=X.length)break;let q=X[J];if(q.type==="IDENTIFIER"){let U=q.value;J++;let W=-1;while(J<X.length){if(X[J].type==="PUNCTUATION"&&X[J].value==="{"){W=X[J].start;break}J++}if(W!==-1){let _=F0($,"{","}",W);if(_!==-1)Z.push({type:"function",name:U,value:$.slice(z,_+1).replace(/^export\s+/,""),exported:G,start:z,end:_+1}),J=Y2(X,_+1)}}}else J++}return Z}function Z2($,Z,Y){let X=Z,J={paren:0,bracket:0,brace:0},Q=Z<$.length?$[Z].start:Y.length;while(X<$.length){let G=$[X];if(G.type==="PUNCTUATION"){if(G.value==="(")J.paren++;else if(G.value===")")J.paren--;else if(G.value==="[")J.bracket++;else if(G.value==="]")J.bracket--;else if(G.value==="{")J.brace++;else if(G.value==="}")J.brace--;if(G.value===";"&&J.paren===0&&J.bracket===0&&J.brace===0){Q=G.start,X++;break}}if(G.type==="IDENTIFIER"&&(G.value==="const"||G.value==="let"||G.value==="var"||G.value==="function"||G.value==="export")){if(J.paren===0&&J.bracket===0&&J.brace===0){Q=$[X-1]?.end??G.start;break}}Q=G.end,X++}return{nextIndex:X,endPos:Q}}function Y2($,Z){for(let Y=0;Y<$.length;Y++)if($[Y].start>=Z)return Y;return $.length}var J2=()=>{};var K4=C(()=>{$2();J2()});function Vq($,Z,Y){let X=$,J=!0;while(J){J=!1;let Q=X.match(/@switch\s*\(/);if(!Q||Q.index===void 0)break;let G=Q.index,K=I3(X,G);if(!K)break;try{let z;if($0(K.expression))z=Z0(K.expression,Object.keys(Z))(...Object.values(Z));else z=e(K.expression,Z);let q="",U=!1;for(let W of K.cases)if(W.type==="default"){if(!U)q=W.content.trim()}else try{let _;if(W.value&&$0(W.value))_=Z0(W.value,Object.keys(Z))(...Object.values(Z));else if(W.value)_=e(W.value,Z);if(z===_){q=W.content.trim(),U=!0;break}}catch{continue}X=X.substring(0,G)+q+X.substring(K.end),J=!0}catch(z){let q=z instanceof Error?z.message:String(z),U=r("Switch",`Error evaluating @switch expression: ${q}`,p.EVALUATION_ERROR);X=X.substring(0,G)+U+X.substring(K.end);break}}return X}function x1($,Z,Y){let X=$;X=Vq(X,Z,Y);{let Q=!0;while(Q){Q=!1;let G=X.match(/@unless\s*\(/);if(!G||G.index===void 0)break;let K=G.index,z=H1(X,K+7);if(!z)break;let q=z.endPos,U=v1(X,"unless","endunless",q);if(U===-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 W=X.slice(q,U),_=z.expression,B=-1;{let H=0,L=/@(?:if|unless)\s*\(/g,F=/@(?:endif|endunless)(?![a-z])/g,O=/@else(?![a-z])/g,V=[],w;while((w=L.exec(W))!==null)V.push({pos:w.index,type:"open"});while((w=F.exec(W))!==null)V.push({pos:w.index,type:"close"});while((w=O.exec(W))!==null)V.push({pos:w.index,type:"else"});V.sort((A,R)=>A.pos-R.pos);for(let A of V)if(A.type==="open")H++;else if(A.type==="close")H--;else if(A.type==="else"&&H===0){B=A.pos;break}}let j;if(B!==-1){let H=W.slice(0,B),L=W.slice(B+5);j=`@if (${_})${L}@else ${H}@endif`}else j=`@if (!(${_}))${W}@endif`;X=X.substring(0,K)+j+X.substring(U+10),Q=!0}}X=E3(X,Z,Y),X=k3(X,Z,Y),X=D3(X,Z);let J=()=>{let Q=f5(X);if(Q.length===0)return!1;for(let G=Q.length-1;G>=0;G--){let K=Q[G];try{let z="",q=!1;for(let U of K.branches){if(q)break;if(U.type==="else")z=U.content,q=!0;else try{let W;if(U.condition&&$0(U.condition))W=Z0(U.condition,Object.keys(Z))(...Object.values(Z));else if(U.condition)W=e(U.condition,Z);if(W)z=U.content,q=!0}catch(W){z=r(U.type==="if"?"If":"Elseif",`Error in @${U.type}(${U.condition}): ${W instanceof Error?W.message:String(W)}`,p.EVALUATION_ERROR),q=!0}}X=X.substring(0,K.start)+z+X.substring(K.end)}catch(z){let q=z instanceof Error?z.message:String(z),U=r("If",`Error processing @if block: ${q}`,p.EVALUATION_ERROR);X=X.substring(0,K.start)+U+X.substring(K.end)}}return!0};while(!0){let Q=X;if(!J())break;if(X===Q)break}return X}function Q2($){let Z=0;while(Z<$.length&&/\s/.test($[Z]))Z++;if($[Z]!=="(")return null;Z++;while(Z<$.length&&/\s/.test($[Z]))Z++;let Y=$[Z];if(Y!=="'"&&Y!=='"')return null;Z++;let X=[];while(Z<$.length){let J=$[Z];if(J==="\\"&&Z+1<$.length){X.push($[Z+1]),Z+=2;continue}if(J===Y){Z++;break}X.push(J),Z++}while(Z<$.length&&/\s/.test($[Z]))Z++;if($[Z]!==")")return null;return Z++,{value:X.join(""),consumed:Z}}function D3($,Z){let Y=$;function X(K,z,q,U){let W=1,_=U,B=new RegExp(`@${z}(?:\\s*\\(|\\s|$)`,"g"),j=new RegExp(`@${q}(?![a-z])`,"g");while(_<K.length&&W>0){B.lastIndex=_,j.lastIndex=_;let H=B.exec(K),L=j.exec(K),F=H?H.index:1/0,O=L?L.index:1/0;if(F<O)W++,_=F+H[0].length;else if(O<1/0){if(W--,W===0)return O;_=O+L[0].length}else break}return-1}function J(K,z,q){let U=0,W=new RegExp(`@${z}(?:\\s*\\(|\\s|$)`,"g"),_=new RegExp(`@${q}(?![a-z])`,"g"),B=/@else(?![a-z])/g,j=[],H;while((H=W.exec(K))!==null)j.push({pos:H.index,type:"open"});while((H=_.exec(K))!==null)j.push({pos:H.index,type:"close"});while((H=B.exec(K))!==null)j.push({pos:H.index,type:"else"});j.sort((L,F)=>L.pos-F.pos);for(let L of j)if(L.type==="open")U++;else if(L.type==="close")U--;else if(L.type==="else"&&U===0)return L.pos;return-1}{let K=!0;while(K){K=!1;let z=Y.match(/@auth(?:\s*\(|\s|(?=\n))/);if(!z||z.index===void 0)break;let q=z.index,U,W,_=Y.slice(q+5),B=Q2(_);if(B)U=B.value,W=q+5+B.consumed;else W=q+5;let j=X(Y,"auth","endauth",W);if(j===-1){console.warn(`[stx] @auth directive at position ${q} has no matching @endauth \u2014 the block was skipped.`);break}let H=Y.slice(W,j),L=J(H,"auth","endauth"),F;if(!Z.auth)F=!1;else F=U?j1(`auth?.check && auth?.user?.[${U}]`,Z):j1("auth?.check",Z);let O;if(L!==-1){let V=H.slice(0,L),w=H.slice(L+5);O=F?V:w}else O=F?H:"";Y=Y.substring(0,q)+O+Y.substring(j+8),K=!0}}{let K=!0;while(K){K=!1;let z=Y.match(/@guest(?:\s*\(|\s|(?=\n))/);if(!z||z.index===void 0)break;let q=z.index,U,W,_=Y.slice(q+6),B=Q2(_);if(B)U=B.value,W=q+6+B.consumed;else W=q+6;let j=X(Y,"guest","endguest",W);if(j===-1){console.warn(`[stx] @guest directive at position ${q} has no matching @endguest \u2014 the block was skipped.`);break}let H=Y.slice(W,j),L=J(H,"guest","endguest"),F;if(!Z.auth)F=!0;else F=U?j1(`!auth?.check || !auth?.user?.[${U}]`,Z):j1("!auth?.check",Z);let O;if(L!==-1){let V=H.slice(0,L),w=H.slice(L+5);O=F?V:w}else O=F?H:"";Y=Y.substring(0,q)+O+Y.substring(j+9),K=!0}}function Q(K,z,q){if(Z.userCan&&typeof Z.userCan[K]==="boolean")return Z.userCan[K];if(Z.permissions?.check&&typeof Z.permissions.check==="function")try{let U=[K];if(z)U.push(z);if(q){let W=j1(q,Z);U.push(W)}return Z.permissions.check(...U)}catch{return!1}return!1}function G(K){let z=K.match(/^\s*\(\s*'([^']*)'(?:,\s*'([^']*)')?(?:,\s*([^)]*))?\)/);if(!z)return null;return{ability:z[1],type:z[2],id:z[3]?.trim(),paramsEnd:z[0].length}}for(let K of["can","cannot"]){let z=`end${K}`,q=K==="can"?"elsecan":"elsecannot",U=!0;while(U){U=!1;let W=Y.match(new RegExp(`@${K}\\s*\\(`));if(!W||W.index===void 0)break;let _=W.index,B=Y.slice(_+`@${K}`.length),j=G(B);if(!j)break;let H=_+`@${K}`.length+j.paramsEnd,L=X(Y,K,z,H);if(L===-1){console.warn(`[stx] @${K} directive at position ${_} has no matching @${z} \u2014 the block was skipped.`);break}let F=Y.slice(H,L),O=[],V=0,w=new RegExp(`@${K}\\s*\\(`,"g"),A=new RegExp(`@${z}(?![a-z])`,"g"),R=new RegExp(`@${q}\\s*\\(`,"g"),N=/@else(?![a-z])/g,M=[],T;while((T=w.exec(F))!==null)M.push({pos:T.index,type:"open"});while((T=A.exec(F))!==null)M.push({pos:T.index,type:"close"});while((T=R.exec(F))!==null)M.push({pos:T.index,type:"elseDirective"});while((T=N.exec(F))!==null)M.push({pos:T.index,type:"else"});M.sort((k,y)=>k.pos-y.pos);for(let k of M){if(k.type==="open"){V++;continue}if(k.type==="close"){V--;continue}if(V===0)O.push(k)}let I=[],D=0;for(let k=0;k<O.length;k++){let y=O[k];if(I.push({content:F.slice(D,y.pos),ability:void 0}),y.type==="elseDirective"){let h=F.slice(y.pos+`@${q}`.length),f=G(h);if(f){I[I.length-1]={content:F.slice(D,y.pos)},D=y.pos+`@${q}`.length+f.paramsEnd,I.push({content:"",ability:f.ability,type:f.type,id:f.id}),I.pop();let m=O[k+1],o=m?m.pos:F.length;I.push({content:F.slice(D,o),ability:f.ability,type:f.type,id:f.id}),D=o}}else D=y.pos+5}if(D<F.length){let k=I[I.length-1];if(O.length>0&&O[O.length-1].type==="else")I.push({content:F.slice(D),isFinalElse:!0});else if(I.length===0)I.push({content:F.slice(D)})}let E=Q(j.ability,j.type,j.id),b=K==="can"?E:!E,S="";if(b)S=I[0]?.content||"";else{let k=!1;for(let y=1;y<I.length;y++){let h=I[y];if(h.isFinalElse){S=h.content,k=!0;break}if(h.ability){let f=Q(h.ability,h.type,h.id);if(K==="can"?f:!f){S=h.content,k=!0;break}}}if(!k&&I.length>0){let y=I[I.length-1];if(y.isFinalElse)S=y.content}}Y=Y.substring(0,_)+S+Y.substring(L+`@${z}`.length),U=!0}}return Y}function E3($,Z,Y){let X=$;function J(Q,G,K,z,q){let U=!0;while(U){U=!1;let W=new RegExp(`@${G}\\s*\\(`),_=Q.match(W);if(!_||_.index===void 0)break;let B=_.index,j=H1(Q,B+`@${G}`.length);if(!j)break;let H=j.endPos,L=v1(Q,G,K,H);if(L===-1){console.warn(`[stx] @${G} directive at position ${B} has no matching @${K} \u2014 the block was skipped.`);break}let F=Q.slice(H,L),O=j.expression,V=-1,w=0,A=0;while(A<F.length){let R=F.indexOf("@",A);if(R===-1)break;let N=F.substring(R);if(/^@(?:if|unless|isset|empty)\s*\(/.test(N)){w++,A=R+1;continue}if(/^@(?:endif|endunless|endisset|endempty)(?![a-z])/.test(N)){w--,A=R+1;continue}if(w===0&&/^@else(?![a-z])/.test(N)){V=R;break}A=R+1}try{let R=z(O.trim()),N;if(V!==-1){let M=F.slice(0,V),T=F.slice(V+5);N=R?M:T}else N=R?F:"";Q=Q.substring(0,B)+N+Q.substring(L+`@${K}`.length),U=!0}catch(R){let N=R instanceof Error?R.message:String(R),M=r(q,`Error processing @${G} directive: ${N}`,p.EVALUATION_ERROR);Q=Q.substring(0,B)+M+Q.substring(L+`@${K}`.length);break}}return Q}return X=J(X,"isset","endisset",(Q)=>{let G=j1(Q,Z);return G!==void 0&&G!==null},"Isset"),X=J(X,"empty","endempty",(Q)=>{let G=j1(Q,Z);return G===void 0||G===null||G===""||G===0||G===!1||Array.isArray(G)&&G.length===0||typeof G==="object"&&G!==null&&Object.keys(G).length===0},"Empty"),X}function k3($,Z,Y){let X=$,J="development";function Q(G,K,z,q){let U=new RegExp(`@${K}(?![a-z])`,"g"),W=new RegExp(`@${z}(?![a-z])`,"g"),_=new RegExp(`^@${K}(?![a-z])`),B=new RegExp(`^@${z}(?![a-z])`),j=G,H=!0;while(H){H=!1,U.lastIndex=0;let L=U.exec(j);if(!L)break;let F=L.index,O=F+L[0].length;if(K==="env"){let E=j.substring(O).match(/^\s*\(\s*(['"])([^'"]+)\1\s*\)/);if(!E)break;O+=E[0].length,q=J===E[2]}let V=1,w=O,A=-1;while(V>0&&w<j.length){U.lastIndex=w,W.lastIndex=w;let E=U.exec(j),b=W.exec(j),S=E?E.index:1/0,k=b?b.index:1/0;if(S<k)V++,w=S+E[0].length;else if(k<1/0){if(V--,V===0){A=k;break}w=k+b[0].length}else break}if(A===-1){console.warn(`[stx] @${K} directive at position ${F} has no matching @${z} \u2014 the block was skipped.`);break}let R=j.substring(O,A),N=-1,M=0,T=0;while(T<R.length){let E=R.indexOf("@",T);if(E===-1)break;let b=R.substring(E);if(_.test(b)){M++,T=E+1;continue}if(B.test(b)){M--,T=E+1;continue}if(M===0&&/^@else(?![a-z])/.test(b)){N=E;break}T=E+1}let I;if(N!==-1){let E=R.slice(0,N),b=R.slice(N+5);I=q?E:b}else I=q?R:"";let D=`@${z}`.length;j=j.substring(0,F)+I+j.substring(A+D),H=!0}return j}return X=Q(X,"env","endenv",!1),X=Q(X,"production","endproduction",J==="production"),X=Q(X,"development","enddevelopment",J==="development"),X=Q(X,"staging","endstaging",J==="staging"),X=Q(X,"testing","endtesting",J==="testing"),X}var z4=C(()=>{aZ();t0();K4();w0()});function G2($=16){let Z=new Uint8Array($);return crypto.getRandomValues(Z),btoa(String.fromCharCode(...Z))}function f1($,Z){if(!$)return Z?.nonceGenerator?.()??G2();let Y=b3.get($);if(!Y)Y=Z?.nonceGenerator?.()??G2(),b3.set($,Y);return Y}function Bw($){b3.delete($)}function K2($,Z){let Y=[];for(let[X,J]of Object.entries($)){if(J===void 0||J===null)continue;if(typeof J==="boolean"){if(J)Y.push(X);continue}if(Array.isArray(J)){let Q=[...J];if(Z&&(X==="script-src"||X==="style-src"))Q=Q.filter((G)=>!G.startsWith("'nonce-")),Q.push(`'nonce-${Z}'`);if(Q.length>0)Y.push(`${X} ${Q.join(" ")}`)}}return Y.join("; ")}function y3($,Z){return`<meta http-equiv="Content-Security-Policy" content="${K2($,Z).replace(/&/g,"&").replace(/"/g,""")}">`}function jw($){return{enabled:!0,directives:{strict:wq,moderate:S3,relaxed:Aq,api:Rq}[$]||S3,useNonce:$==="strict",addMetaTag:!0}}function Hw($,Z){let Y={...$};for(let[X,J]of Object.entries(Z)){let Q=X,G=Y[Q];if(J===void 0||J===null)continue;if(typeof J==="boolean")Y[Q]=G||J;else if(Array.isArray(J)){let K=Array.isArray(G)?G:[],z=[...new Set([...K,...J])];Y[Q]=z}}return Y}function z2($,Z,Y){if(!Z.enabled||!Z.addMetaTag)return $;if($.includes('http-equiv="Content-Security-Policy"'))return $;if(!$.includes("<head>")&&!$.includes("<head "))return $;let X=Z.useNonce?f1(Y,Z):void 0,J=y3(Z.directives,X);return $.replace(/<head([^>]*)>/,`<head$1>
|
|
3774
|
-
${J}`)}function Ow($,Z){let Y=$;return Y=Y.replace(/<script(?![^>]*\ssrc=)([^>]*)>/gi,(X,J)=>{if(J.includes("nonce="))return X;return`<script nonce="${Z}"${J}>`}),Y=Y.replace(/<style([^>]*)>/gi,(X,J)=>{if(J.includes("nonce="))return X;return`<style nonce="${Z}"${J}>`}),Y}function q2($,Z,Y,X){let J=$,Q=X.csp;if(J=J.replace(/@csp\b/g,()=>{if(!Q?.enabled||!Q.directives)return"<!-- CSP not configured -->";let G=Q.useNonce?f1(Z,Q):void 0;return y3(Q.directives,G)}),J=J.replace(/@cspNonce\b/g,()=>{if(!Q?.enabled||!Q.useNonce)return"";return f1(Z,Q)}),Q?.enabled&&Q.useNonce)Z.cspNonce=f1(Z,Q);return J}function Lw(){return[Nq,Tq]}function Fw($){let Z=[];if($["script-src"]?.includes("'unsafe-inline'"))Z.push("CSP: Using unsafe-inline in script-src significantly reduces XSS protection");if($["script-src"]?.includes("'unsafe-eval'"))Z.push("CSP: Using unsafe-eval in script-src allows eval() and related functions");if(!$["default-src"])Z.push("CSP: No default-src specified. Recommend adding default-src as a fallback");if($["default-src"]?.includes("*"))Z.push("CSP: Using * in default-src provides minimal protection");if(!$["object-src"]&&!$["default-src"]?.includes("'none'"))Z.push("CSP: Consider adding object-src: none to block plugins");if(!$["base-uri"])Z.push("CSP: Consider adding base-uri to prevent base tag injection attacks");for(let[Y,X]of Object.entries($))if(Array.isArray(X)&&X.includes("http:"))Z.push(`CSP: Using http: in ${Y} allows insecure resources`);return Z}function Mq($=!1){return $?"Content-Security-Policy-Report-Only":"Content-Security-Policy"}function Vw($,Z){if(!$.enabled)return{};let Y=$.useNonce?f1(Z,$):void 0,X=K2($.directives,Y);return{[Mq($.reportOnly)]:X}}var b3,wq,S3,Aq,Rq,Nq,Tq,ww;var U2=C(()=>{b3=new WeakMap;wq={"default-src":["'self'"],"script-src":["'self'","'strict-dynamic'"],"style-src":["'self'"],"img-src":["'self'","data:","https:"],"font-src":["'self'","https:","data:"],"connect-src":["'self'"],"media-src":["'self'"],"object-src":["'none'"],"frame-src":["'none'"],"base-uri":["'self'"],"form-action":["'self'"],"frame-ancestors":["'self'"],"upgrade-insecure-requests":!0},S3={"default-src":["'self'"],"script-src":["'self'"],"style-src":["'self'","'unsafe-inline'"],"img-src":["'self'","data:","https:"],"font-src":["'self'","https:","data:"],"connect-src":["'self'","https:"],"media-src":["'self'"],"object-src":["'none'"],"frame-src":["'self'"],"base-uri":["'self'"],"form-action":["'self'"],"upgrade-insecure-requests":!0},Aq={"default-src":["'self'"],"script-src":["'self'","'unsafe-inline'"],"style-src":["'self'","'unsafe-inline'"],"img-src":["'self'","data:","https:","http:"],"font-src":["'self'","https:","http:","data:"],"connect-src":["'self'","https:","http:","ws:","wss:"],"media-src":["'self'","https:","http:"],"object-src":["'none'"],"frame-src":["'self'","https:"],"base-uri":["'self'"]},Rq={"default-src":["'none'"],"frame-ancestors":["'none'"]};Nq={name:"csp",handler:($,Z,Y,X)=>{let Q=Y.__stx_options?.csp;if(!Q?.enabled||!Q.directives)return"<!-- CSP not configured -->";let G=Q.useNonce?f1(Y,Q):void 0;return y3(Q.directives,G)},hasEndTag:!1,description:"Insert Content-Security-Policy meta tag"},Tq={name:"cspNonce",handler:($,Z,Y,X)=>{let Q=Y.__stx_options?.csp;if(!Q?.enabled||!Q.useNonce)return"";return f1(Y,Q)},hasEndTag:!1,description:"Output the current CSP nonce value"};ww={enabled:!1,reportOnly:!1,directives:S3,useNonce:!1,addMetaTag:!0}});import{Buffer as W2}from"buffer";import _2 from"crypto";function Dq($=Iq){let Z=_2.randomBytes(Math.ceil($/2)).toString("hex").slice(0,$);return q5=Z,Z}function Eq(){if(!q5)Dq();return q5}function Tw(){q5=null}function Mw($){q5=$}function kq($=B2){let Z=Eq();return`<input type="hidden" name="${$}" value="${Z}">`}function j2($){return $.replace(/@csrf(?:\((['"])([^'"]*)\1\))?/g,(Z,Y,X)=>{return kq(X||B2)})}function Iw($,Z){let Y=Z??q5;if(!Y)return!1;let X=W2.from($),J=W2.from(Y);if(X.length!==J.length)return!1;return _2.timingSafeEqual(X,J)}var Iq=40,B2="_token",q5=null;var H2=()=>{};async function O2($,Z,Y,X){if(!X.customDirectives||X.customDirectives.length===0)return $;let J=$;for(let Q of X.customDirectives){if(!Q.name||typeof Q.handler!=="function"){if(X.debug)console.warn("Invalid custom directive:",Q);continue}if(Q.hasEndTag)J=await bq(J,Q,Z,Y,X);else J=await Sq(J,Q,Z,Y,X)}return J}async function bq($,Z,Y,X,J){let{name:Q,handler:G}=Z,K=`@${Q}`,z=`@end${Q}`,q=$,U=E1(`${K}(?:\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\))?([\\s\\S]*?)${z}`,"g"),W=[],_=U.exec(q);while(_!==null){let[B,j="",H=""]=_,L=_.index||0;try{let F=j?L2(j):[],O=H.trim(),V=await G(O,F,Y,X);W.push({original:B,processed:V,startIndex:L})}catch(F){let O=F instanceof Error?F.message:String(F);if(J.debug)console.error(`Error processing custom directive @${Q}:`,F);W.push({original:B,processed:r("CustomDirective",`Error in @${Q}${j?`(${j})`:""}: ${O}`,p.EVALUATION_ERROR),startIndex:L})}_=U.exec(q)}for(let B=W.length-1;B>=0;B--){let{original:j,processed:H}=W[B];q=q.replace(j,H)}return q}async function Sq($,Z,Y,X,J){let{name:Q,handler:G}=Z,K=$,z=E1(`@${Q}\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\)`,"g"),q=[],U=z.exec(K);while(U!==null){let[B,j=""]=U,H=U.index||0;try{let L=L2(j),F=await G("",L,Y,X);q.push({original:B,processed:F,startIndex:H})}catch(L){let F=L instanceof Error?L.message:String(L);if(J.debug)console.error(`Error processing custom directive @${Q}:`,L);q.push({original:B,processed:r("CustomDirective",`Error in @${Q}(${j}): ${F}`,p.EVALUATION_ERROR),startIndex:H})}U=z.exec(K)}let W=E1(`@${Q}(?!\\w)(?!\\s*\\()`,"g"),_=W.exec(K);while(_!==null){let[B]=_,j=_.index||0;try{let H=await G("",[],Y,X);q.push({original:B,processed:H,startIndex:j})}catch(H){let L=H instanceof Error?H.message:String(H);if(J.debug)console.error(`Error processing custom directive @${Q}:`,H);q.push({original:B,processed:r("CustomDirective",`Error in @${Q}: ${L}`,p.EVALUATION_ERROR),startIndex:j})}_=W.exec(K)}for(let B=q.length-1;B>=0;B--){let{original:j,processed:H}=q[B];K=K.replace(j,H)}return K}function L2($){if(!$.trim())return[];let Z=[],Y="",X=!1,J="";for(let Q=0;Q<$.length;Q++){let G=$[Q];if((G==='"'||G==="'")&&(Q===0||$[Q-1]!=="\\"))if(!X)X=!0,J=G;else if(G===J)X=!1;else Y+=G;else if(G===","&&!X)Z.push(Y.trim()),Y="";else Y+=G}if(Y.trim())Z.push(Y.trim());return Z.map((Q)=>{let G=Q.trim();if(G.startsWith('"')&&G.endsWith('"')||G.startsWith("'")&&G.endsWith("'"))return G.substring(1,G.length-1);return G})}var F2=C(()=>{t0();t1()});var C3={};l(C3,{useTitle:()=>fq,useSeoMeta:()=>U4,usePageTitle:()=>fq,useHead:()=>h1,resetHead:()=>Pq,renderHtmlAttrs:()=>hq,renderHead:()=>gq,renderBodyAttrs:()=>dq,processTitleDirective:()=>lq,processMetaDirective:()=>pq,processHeadDirective:()=>uq,getPageMeta:()=>Cq,getHead:()=>g5,definePageMeta:()=>xq,applyHead:()=>mq});function g5(){return O1}function Cq(){return q4}function Pq(){O1={},yq.length=0,q4={}}function h1($){O1=vq(O1,$)}function vq($,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 U4($){let Z=[];if($.description)Z.push({name:"description",content:$.description});if($.keywords){let z=Array.isArray($.keywords)?$.keywords.join(", "):$.keywords;Z.push({name:"keywords",content:z})}if($.author)Z.push({name:"author",content:$.author});if($.robots)Z.push({name:"robots",content:$.robots});let Y=$.ogTitle??$.title,X=$.ogDescription??$.description;if(Y)Z.push({property:"og:title",content:Y});if(X)Z.push({property:"og:description",content:X});if($.ogImage)Z.push({property:"og:image",content:$.ogImage});if($.ogUrl)Z.push({property:"og:url",content:$.ogUrl});if($.ogType)Z.push({property:"og:type",content:$.ogType});if($.ogSiteName)Z.push({property:"og:site_name",content:$.ogSiteName});if($.ogLocale)Z.push({property:"og:locale",content:$.ogLocale});let J=$.twitterTitle??$.title,Q=$.twitterDescription??$.description,G=$.twitterImage??$.ogImage;if($.twitterCard)Z.push({name:"twitter:card",content:$.twitterCard});if(J)Z.push({name:"twitter:title",content:J});if(Q)Z.push({name:"twitter:description",content:Q});if(G)Z.push({name:"twitter:image",content:G});if($.twitterSite)Z.push({name:"twitter:site",content:$.twitterSite});if($.twitterCreator)Z.push({name:"twitter:creator",content:$.twitterCreator});if($.articleAuthor)Z.push({property:"article:author",content:$.articleAuthor});if($.articlePublishedTime)Z.push({property:"article:published_time",content:$.articlePublishedTime});if($.articleModifiedTime)Z.push({property:"article:modified_time",content:$.articleModifiedTime});if($.articleSection)Z.push({property:"article:section",content:$.articleSection});if($.articleTags)for(let z of $.articleTags)Z.push({property:"article:tag",content:z});let K=[];if($.canonical)K.push({rel:"canonical",href:$.canonical});h1({title:$.title,titleTemplate:$.titleTemplate,meta:Z,link:K})}function xq($){if(q4={...q4,...$},$.title||$.description)U4({title:$.title,description:$.description})}function fq($){let Z=typeof $==="function"?$():$;h1({title:Z})}function gq($=O1){let Z=[];if($.title){let Y=$.title;if($.titleTemplate)Y=typeof $.titleTemplate==="function"?$.titleTemplate(Y):$.titleTemplate.replace("%s",Y);Z.push(`<title>${g1(Y)}</title>`)}if($.base){let Y=Object.entries($.base).map(([X,J])=>`${X}="${g1(J)}"`).join(" ");Z.push(`<base ${Y}>`)}for(let Y of $.meta||[]){let X=Object.entries(Y).filter(([J,Q])=>Q!==void 0).map(([J,Q])=>{return`${J==="httpEquiv"?"http-equiv":J}="${g1(String(Q))}"`}).join(" ");Z.push(`<meta ${X}>`)}for(let Y of $.link||[]){let X=Object.entries(Y).filter(([J,Q])=>Q!==void 0).map(([J,Q])=>`${J}="${g1(String(Q))}"`).join(" ");Z.push(`<link ${X}>`)}for(let Y of $.script||[]){let{content:X,...J}=Y,Q=Object.entries(J).filter(([G,K])=>K!==void 0).map(([G,K])=>{if(typeof K==="boolean")return K?G:"";return`${G}="${g1(String(K))}"`}).filter(Boolean).join(" ");if(X)Z.push(`<script ${Q}>${X}</script>`);else Z.push(`<script ${Q}></script>`)}for(let Y of $.style||[]){let X=Y.type?` type="${Y.type}"`:"";Z.push(`<style${X}>${Y.content}</style>`)}return Z.join(`
|
|
3773
|
+
`)this.line++,this.column=0;else this.column++;this.pos++}}peek($){return this.source[this.pos+$]}saveState(){return{pos:this.pos,line:this.line,column:this.column}}restoreState($){this.pos=$.pos,this.line=$.line,this.column=$.column}}function F0($,Z,Y,X=0){let J=0,Q=X,G=null,K=0,z=!1;while(Q<$.length){let q=$[Q];if(G&&z){z=!1,Q++;continue}if(G&&q==="\\"){z=!0,Q++;continue}if(z=!1,(q==='"'||q==="'"||q==="`")&&!G){G=q,Q++;continue}if(q===G&&G!=="`"){G=null,Q++;continue}if(G==="`"&&q==="$"&&$[Q+1]==="{"){K++,Q+=2;continue}if(K>0&&q==="}"){K--,Q++;continue}if(q==="`"&&G==="`"&&K===0){G=null,Q++;continue}if(G){Q++;continue}if(q===Z)J++;else if(q===Y){if(J--,J===0)return Q}Q++}return-1}function tZ($,Z){let Y=Z,X={paren:0,bracket:0,brace:0},J=null,Q=0;while(Y<$.length){let G=$[Y];if((Y>0?$[Y-1]:"")==="\\"&&J){Y++;continue}if((G==='"'||G==="'")&&!J){J=G,Y++;continue}if(G===J&&J!=="`"){J=null,Y++;continue}if(G==="`"&&!J){J="`",Y++;continue}if(G==="`"&&J==="`"&&Q===0){J=null,Y++;continue}if(J==="`"&&G==="$"&&$[Y+1]==="{"){Q++,Y+=2;continue}if(Q>0){if(G==="{")Q++;else if(G==="}")Q--;Y++;continue}if(J){Y++;continue}if(X.paren===0&&X.bracket===0&&X.brace===0){if($.slice(Y,Y+2)==="}}"||$.slice(Y,Y+3)==="!!}")break;if(G===","||G===";")break}if(G==="(")X.paren++;else if(G===")"){if(X.paren--,X.paren<0)break}else if(G==="[")X.bracket++;else if(G==="]"){if(X.bracket--,X.bracket<0)break}else if(G==="{")X.brace++;else if(G==="}"){if(X.brace--,X.brace<0)break}Y++}return{expression:$.slice(Z,Y),endPos:Y}}function M3($){let Z=[],Y="",X={paren:0,bracket:0,brace:0},J=null,Q=0;for(let G=0;G<$.length;G++){let K=$[G];if((G>0?$[G-1]:"")==="\\"&&J){Y+=K;continue}if((K==='"'||K==="'")&&!J){J=K,Y+=K;continue}if(K===J&&J!=="`"){J=null,Y+=K;continue}if(K==="`"&&!J){J="`",Y+=K;continue}if(K==="`"&&J==="`"&&Q===0){J=null,Y+=K;continue}if(J==="`"&&K==="$"&&$[G+1]==="{"){Q++,Y+=K+$[G+1],G++;continue}if(Q>0&&K==="{"){Q++,Y+=K;continue}if(Q>0&&K==="}"){Q--,Y+=K;continue}if(J){Y+=K;continue}if(K==="(")X.paren++;else if(K===")")X.paren--;else if(K==="[")X.bracket++;else if(K==="]")X.bracket--;else if(K==="{")X.brace++;else if(K==="}")X.brace--;if(K==="|"&&$[G+1]!=="|"&&(G===0||$[G-1]!=="|")&&$[G-1]!=="\\"&&X.paren===0&&X.bracket===0&&X.brace===0){Z.push(Y.trim()),Y="";continue}if(K==="|"&&$[G-1]==="\\"&&!J){Y=Y.slice(0,-1)+K;continue}Y+=K}if(Y.trim())Z.push(Y.trim());return Z}function H1($,Z){let Y=_q($,Z);return Y.ok?{expression:Y.expression,endPos:Y.endPos}:null}function _q($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return{ok:!1,reason:"missing-open-paren",pos:Y};let X=F0($,"(",")",Y);if(X===-1)return{ok:!1,reason:"unclosed-paren",pos:Y};return{ok:!0,expression:$.slice(Y+1,X),endPos:X+1}}function v1($,Z,Y,X){let J=1,Q=X,G=new RegExp(`@${Z}\\s*\\(`,"g"),K=new RegExp(`@${Y}(?![a-z])`,"g");while(Q<$.length&&J>0){G.lastIndex=Q,K.lastIndex=Q;let z=G.exec($),q=K.exec($),U=z?z.index:1/0,W=q?q.index:1/0;if(U<W)J++,Q=U+z[0].length;else if(W<1/0){if(J--,J===0)return W;Q=W+q[0].length}else break}return-1}function eZ($,Z){let Y=$.slice(Z).match(/^@if\s*/);if(!Y)return null;let X=Z+Y[0].length,J=H1($,X);if(!J)return null;let Q=J.endPos,G=v1($,"if","endif",Q);if(G===-1)return null;let K=$.slice(Q,G),z=[],q=0,U="if",W=J.expression,_=0,B=0;while(q<K.length){let j=K.indexOf("@",q);if(j===-1)break;q=j;let H=K.substring(j);if(/^@if\s*\(/.test(H)){B++,q++;continue}if(/^@endif(?![a-z])/.test(H)){B--,q+=6;continue}if(B===0){let L=H.match(/^@elseif\s*/);if(L){z.push({type:U,condition:W,content:K.substring(_,q),start:Q+_,end:Q+q});let F=q+L[0].length,O=H1(K,F);if(!O){q++;continue}U="elseif",W=O.expression,q=O.endPos,_=q;continue}else if(/^@else(?![a-z])/.test(H)){z.push({type:U,condition:W,content:K.substring(_,q),start:Q+_,end:Q+q}),U="else",W=void 0,q+=5,_=q;continue}}q++}return z.push({type:U,condition:W,content:K.slice(_),start:Q+_,end:Q+K.length}),{fullMatch:$.slice(Z,G+6),branches:z,start:Z,end:G+6}}function f5($){let Z=[],Y=/@if\s*\(/g,X=Y.exec($);while(X!==null){if(Z.some((G)=>X.index>G.start&&X.index<G.end)){X=Y.exec($);continue}let Q=eZ($,X.index);if(Q)Z.push(Q),Y.lastIndex=Q.end;X=Y.exec($)}return Z}function G4($,Z,Y){let X=[],J=new RegExp(`@${Z}\\s*\\(`,"g"),Q=J.exec($);while(Q!==null){if(X.some((H)=>Q.index>H.start&&Q.index<H.end)){Q=J.exec($);continue}let K=Q.index,z=K+Q[0].length-1,q=F0($,"(",")",z);if(q===-1){Q=J.exec($);continue}let U=$.slice(z+1,q),W=q+1,_=v1($,Z,Y,W);if(_===-1){Q=J.exec($);continue}let B=$.slice(W,_),j=_+`@${Y}`.length;X.push({fullMatch:$.slice(K,j),name:Z,params:U,content:B,start:K,end:j}),J.lastIndex=j,Q=J.exec($)}return X}function I3($,Z){let Y=$.slice(Z).match(/^@switch\s*/);if(!Y)return null;let X=Z+Y[0].length,J=H1($,X);if(!J)return null;let Q=J.endPos,G=v1($,"switch","endswitch",Q);if(G===-1)return null;let K=$.slice(Q,G),z=[],q=0,U=null,W=0;while(q<K.length){let _=K.slice(q),B=_.match(/^@switch\s*\(/),j=_.match(/^@endswitch(?![a-z])/);if(B){if(W++,U)U.content+=B[0];q+=B[0].length;continue}if(j){if(W--,U)U.content+=j[0];q+=j[0].length;continue}if(W>0){if(U)U.content+=K[q];q++;continue}let H=_.match(/^@case\s*/),L=_.match(/^@default(?![a-z])/),F=_.match(/^@break(?![a-z])/);if(H&&_.startsWith("@case")){if(U)z.push(U);let O=q+H[0].length,V=H1(K,O);if(!V){q++;continue}U={type:"case",value:V.expression,content:""},q=V.endPos}else if(L&&_.startsWith("@default")){if(U)z.push(U);U={type:"default",content:""},q+=L[0].length}else if(F&&_.startsWith("@break"))q+=F[0].length;else{if(U)U.content+=K[q];q++}}if(U)z.push(U);return{fullMatch:$.slice(Z,G+10),expression:J.expression,cases:z,start:Z,end:G+10}}var $2=()=>{};function Bq($){let Z=[],Y=0;while(Y<$.length){let X=$.indexOf("{{",Y),J=$.indexOf("{!!",Y),Q=!1,G;if(X===-1&&J===-1)break;else if(X===-1)G=J,Q=!0;else if(J===-1)G=X,Q=!1;else if(J<X)G=J,Q=!0;else G=X,Q=!1;if(!Q&&$.slice(G,G+3)==="{{{")Q=!0;let K=Q?$.slice(G,G+3)==="{{{"?"{{{":"{!!":"{{",z=Q?K==="{{{"?"}}}":"!!}":"}}",q=G+K.length,U=jq($,q,z);if(U===-1){Y=G+1;continue}let W=$.slice(q,U).trim(),_=U+z.length;Z.push({fullMatch:$.slice(G,_),expression:W,start:G,end:_,isRaw:Q}),Y=_}return Z}function jq($,Z,Y){let X=Z,J=null,Q={paren:0,bracket:0,brace:0},G=0;while(X<$.length){let K=$[X];if((X>0?$[X-1]:"")==="\\"&&J){X++;continue}if((K==='"'||K==="'")&&!J){J=K,X++;continue}if(K===J&&J!=="`"){J=null,X++;continue}if(K==="`"&&!J){J="`",X++;continue}if(K==="`"&&J==="`"&&G===0){J=null,X++;continue}if(J==="`"&&K==="$"&&$[X+1]==="{"){G++,X+=2;continue}if(G>0){if(K==="{")G++;else if(K==="}")G--;X++;continue}if(J){X++;continue}if(K==="(")Q.paren++;else if(K===")")Q.paren--;else if(K==="[")Q.bracket++;else if(K==="]")Q.bracket--;else if(K==="{")Q.brace++;else if(K==="}")Q.brace--;if(Q.paren===0&&Q.bracket===0&&Q.brace<=0){if($.slice(X,X+Y.length)===Y)return X}X++}return-1}function Hq($){let Z=M3($);if(Z.length===0)return{baseExpression:"",filters:[]};let Y=Z[0],X=[];for(let J=1;J<Z.length;J++){let Q=Oq(Z[J]);if(Q)X.push(Q)}return{baseExpression:Y,filters:X}}function Oq($){let Z=$.trim();if(!Z)return null;let Y=Z.indexOf("(");if(Y===-1)return{name:Z,args:[]};let X=Z.slice(0,Y).trim(),J=Y+1,Q=F0(Z,"(",")",Y);if(Q===-1)return{name:X,args:[]};let G=Z.slice(J,Q),K=X2(G);return{name:X,args:K}}function X2($){let Z=[],Y="",X={paren:0,bracket:0,brace:0},J=null,Q=0;for(let G=0;G<$.length;G++){let K=$[G];if((G>0?$[G-1]:"")==="\\"&&J){Y+=K;continue}if((K==='"'||K==="'")&&!J){J=K,Y+=K;continue}if(K===J&&J!=="`"){J=null,Y+=K;continue}if(K==="`"&&!J){J="`",Y+=K;continue}if(K==="`"&&J==="`"&&Q===0){J=null,Y+=K;continue}if(J==="`"&&K==="$"&&$[G+1]==="{"){Q++,Y+="${",G++;continue}if(Q>0&&K==="{"){Q++,Y+=K;continue}if(Q>0&&K==="}"){Q--,Y+=K;continue}if(J){Y+=K;continue}if(K==="(")X.paren++;else if(K===")")X.paren--;else if(K==="[")X.bracket++;else if(K==="]")X.bracket--;else if(K==="{")X.brace++;else if(K==="}")X.brace--;if(K===","&&X.paren===0&&X.bracket===0&&X.brace===0){Z.push(Y.trim()),Y="";continue}Y+=K}if(Y.trim())Z.push(Y.trim());return Z}function Lq($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return null;let X=F0($,"(",")",Y);if(X===-1)return null;return{params:$.slice(Y+1,X),endPos:X+1}}function Fq($){let Z=[],X=new Q4($).tokenize().filter((Q)=>Q.type!=="WHITESPACE"&&Q.type!=="COMMENT"),J=0;while(J<X.length){let Q=X[J],G=!1;if(Q.type==="IDENTIFIER"&&Q.value==="export"){if(G=!0,J++,J>=X.length)break}let K=X[J];if(K.type==="IDENTIFIER"&&(K.value==="const"||K.value==="let"||K.value==="var")){let z=K.value;if(J++,J>=X.length)break;let q=X[J];if(q.type==="IDENTIFIER"){let U=q.value;if(J++,J<X.length&&X[J].type==="OPERATOR"&&X[J].value==="="){J++;let W=J<X.length?X[J].start:$.length,_=Z2(X,J,$);J=_.nextIndex,Z.push({type:"variable",name:U,value:$.slice(W,_.endPos),exported:G,start:K.start,end:_.endPos})}}else if(q.type==="PUNCTUATION"&&(q.value==="{"||q.value==="[")){let U=q.start,W=q.value==="{"?"}":"]",_=F0($,q.value,W,U);if(_!==-1){let B=$.slice(U,_+1);if(J=Y2(X,_+1),J<X.length&&X[J].type==="OPERATOR"&&X[J].value==="="){J++;let j=J<X.length?X[J].start:$.length,H=Z2(X,J,$);J=H.nextIndex;let L=`__stx_destructured_${Z.length}`;Z.push({type:"variable",name:L,value:`${$.slice(j,H.endPos)}; ${z} ${B} = ${L}`,exported:G,start:K.start,end:H.endPos})}}}}else if(K.type==="IDENTIFIER"&&K.value==="function"){let z=G?X[J-1].start:K.start;if(J++,J>=X.length)break;let q=X[J];if(q.type==="IDENTIFIER"){let U=q.value;J++;let W=-1;while(J<X.length){if(X[J].type==="PUNCTUATION"&&X[J].value==="{"){W=X[J].start;break}J++}if(W!==-1){let _=F0($,"{","}",W);if(_!==-1)Z.push({type:"function",name:U,value:$.slice(z,_+1).replace(/^export\s+/,""),exported:G,start:z,end:_+1}),J=Y2(X,_+1)}}}else J++}return Z}function Z2($,Z,Y){let X=Z,J={paren:0,bracket:0,brace:0},Q=Z<$.length?$[Z].start:Y.length;while(X<$.length){let G=$[X];if(G.type==="PUNCTUATION"){if(G.value==="(")J.paren++;else if(G.value===")")J.paren--;else if(G.value==="[")J.bracket++;else if(G.value==="]")J.bracket--;else if(G.value==="{")J.brace++;else if(G.value==="}")J.brace--;if(G.value===";"&&J.paren===0&&J.bracket===0&&J.brace===0){Q=G.start,X++;break}}if(G.type==="IDENTIFIER"&&(G.value==="const"||G.value==="let"||G.value==="var"||G.value==="function"||G.value==="export")){if(J.paren===0&&J.bracket===0&&J.brace===0){Q=$[X-1]?.end??G.start;break}}Q=G.end,X++}return{nextIndex:X,endPos:Q}}function Y2($,Z){for(let Y=0;Y<$.length;Y++)if($[Y].start>=Z)return Y;return $.length}var J2=()=>{};var K4=P(()=>{$2();J2()});function Vq($,Z,Y){let X=$,J=!0;while(J){J=!1;let Q=X.match(/@switch\s*\(/);if(!Q||Q.index===void 0)break;let G=Q.index,K=I3(X,G);if(!K)break;try{let z;if($0(K.expression))z=Z0(K.expression,Object.keys(Z))(...Object.values(Z));else z=e(K.expression,Z);let q="",U=!1;for(let W of K.cases)if(W.type==="default"){if(!U)q=W.content.trim()}else try{let _;if(W.value&&$0(W.value))_=Z0(W.value,Object.keys(Z))(...Object.values(Z));else if(W.value)_=e(W.value,Z);if(z===_){q=W.content.trim(),U=!0;break}}catch{continue}X=X.substring(0,G)+q+X.substring(K.end),J=!0}catch(z){let q=z instanceof Error?z.message:String(z),U=r("Switch",`Error evaluating @switch expression: ${q}`,p.EVALUATION_ERROR);X=X.substring(0,G)+U+X.substring(K.end);break}}return X}function x1($,Z,Y){let X=$;X=Vq(X,Z,Y);{let Q=!0;while(Q){Q=!1;let G=X.match(/@unless\s*\(/);if(!G||G.index===void 0)break;let K=G.index,z=H1(X,K+7);if(!z)break;let q=z.endPos,U=v1(X,"unless","endunless",q);if(U===-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 W=X.slice(q,U),_=z.expression,B=-1;{let H=0,L=/@(?:if|unless)\s*\(/g,F=/@(?:endif|endunless)(?![a-z])/g,O=/@else(?![a-z])/g,V=[],w;while((w=L.exec(W))!==null)V.push({pos:w.index,type:"open"});while((w=F.exec(W))!==null)V.push({pos:w.index,type:"close"});while((w=O.exec(W))!==null)V.push({pos:w.index,type:"else"});V.sort((A,R)=>A.pos-R.pos);for(let A of V)if(A.type==="open")H++;else if(A.type==="close")H--;else if(A.type==="else"&&H===0){B=A.pos;break}}let j;if(B!==-1){let H=W.slice(0,B),L=W.slice(B+5);j=`@if (${_})${L}@else ${H}@endif`}else j=`@if (!(${_}))${W}@endif`;X=X.substring(0,K)+j+X.substring(U+10),Q=!0}}X=E3(X,Z,Y),X=k3(X,Z,Y),X=D3(X,Z);let J=()=>{let Q=f5(X);if(Q.length===0)return!1;for(let G=Q.length-1;G>=0;G--){let K=Q[G];try{let z="",q=!1;for(let U of K.branches){if(q)break;if(U.type==="else")z=U.content,q=!0;else try{let W;if(U.condition&&$0(U.condition))W=Z0(U.condition,Object.keys(Z))(...Object.values(Z));else if(U.condition)W=e(U.condition,Z);if(W)z=U.content,q=!0}catch(W){z=r(U.type==="if"?"If":"Elseif",`Error in @${U.type}(${U.condition}): ${W instanceof Error?W.message:String(W)}`,p.EVALUATION_ERROR),q=!0}}X=X.substring(0,K.start)+z+X.substring(K.end)}catch(z){let q=z instanceof Error?z.message:String(z),U=r("If",`Error processing @if block: ${q}`,p.EVALUATION_ERROR);X=X.substring(0,K.start)+U+X.substring(K.end)}}return!0};while(!0){let Q=X;if(!J())break;if(X===Q)break}return X}function Q2($){let Z=0;while(Z<$.length&&/\s/.test($[Z]))Z++;if($[Z]!=="(")return null;Z++;while(Z<$.length&&/\s/.test($[Z]))Z++;let Y=$[Z];if(Y!=="'"&&Y!=='"')return null;Z++;let X=[];while(Z<$.length){let J=$[Z];if(J==="\\"&&Z+1<$.length){X.push($[Z+1]),Z+=2;continue}if(J===Y){Z++;break}X.push(J),Z++}while(Z<$.length&&/\s/.test($[Z]))Z++;if($[Z]!==")")return null;return Z++,{value:X.join(""),consumed:Z}}function D3($,Z){let Y=$;function X(K,z,q,U){let W=1,_=U,B=new RegExp(`@${z}(?:\\s*\\(|\\s|$)`,"g"),j=new RegExp(`@${q}(?![a-z])`,"g");while(_<K.length&&W>0){B.lastIndex=_,j.lastIndex=_;let H=B.exec(K),L=j.exec(K),F=H?H.index:1/0,O=L?L.index:1/0;if(F<O)W++,_=F+H[0].length;else if(O<1/0){if(W--,W===0)return O;_=O+L[0].length}else break}return-1}function J(K,z,q){let U=0,W=new RegExp(`@${z}(?:\\s*\\(|\\s|$)`,"g"),_=new RegExp(`@${q}(?![a-z])`,"g"),B=/@else(?![a-z])/g,j=[],H;while((H=W.exec(K))!==null)j.push({pos:H.index,type:"open"});while((H=_.exec(K))!==null)j.push({pos:H.index,type:"close"});while((H=B.exec(K))!==null)j.push({pos:H.index,type:"else"});j.sort((L,F)=>L.pos-F.pos);for(let L of j)if(L.type==="open")U++;else if(L.type==="close")U--;else if(L.type==="else"&&U===0)return L.pos;return-1}{let K=!0;while(K){K=!1;let z=Y.match(/@auth(?:\s*\(|\s|(?=\n))/);if(!z||z.index===void 0)break;let q=z.index,U,W,_=Y.slice(q+5),B=Q2(_);if(B)U=B.value,W=q+5+B.consumed;else W=q+5;let j=X(Y,"auth","endauth",W);if(j===-1){console.warn(`[stx] @auth directive at position ${q} has no matching @endauth \u2014 the block was skipped.`);break}let H=Y.slice(W,j),L=J(H,"auth","endauth"),F;if(!Z.auth)F=!1;else F=U?j1(`auth?.check && auth?.user?.[${U}]`,Z):j1("auth?.check",Z);let O;if(L!==-1){let V=H.slice(0,L),w=H.slice(L+5);O=F?V:w}else O=F?H:"";Y=Y.substring(0,q)+O+Y.substring(j+8),K=!0}}{let K=!0;while(K){K=!1;let z=Y.match(/@guest(?:\s*\(|\s|(?=\n))/);if(!z||z.index===void 0)break;let q=z.index,U,W,_=Y.slice(q+6),B=Q2(_);if(B)U=B.value,W=q+6+B.consumed;else W=q+6;let j=X(Y,"guest","endguest",W);if(j===-1){console.warn(`[stx] @guest directive at position ${q} has no matching @endguest \u2014 the block was skipped.`);break}let H=Y.slice(W,j),L=J(H,"guest","endguest"),F;if(!Z.auth)F=!0;else F=U?j1(`!auth?.check || !auth?.user?.[${U}]`,Z):j1("!auth?.check",Z);let O;if(L!==-1){let V=H.slice(0,L),w=H.slice(L+5);O=F?V:w}else O=F?H:"";Y=Y.substring(0,q)+O+Y.substring(j+9),K=!0}}function Q(K,z,q){if(Z.userCan&&typeof Z.userCan[K]==="boolean")return Z.userCan[K];if(Z.permissions?.check&&typeof Z.permissions.check==="function")try{let U=[K];if(z)U.push(z);if(q){let W=j1(q,Z);U.push(W)}return Z.permissions.check(...U)}catch{return!1}return!1}function G(K){let z=K.match(/^\s*\(\s*'([^']*)'(?:,\s*'([^']*)')?(?:,\s*([^)]*))?\)/);if(!z)return null;return{ability:z[1],type:z[2],id:z[3]?.trim(),paramsEnd:z[0].length}}for(let K of["can","cannot"]){let z=`end${K}`,q=K==="can"?"elsecan":"elsecannot",U=!0;while(U){U=!1;let W=Y.match(new RegExp(`@${K}\\s*\\(`));if(!W||W.index===void 0)break;let _=W.index,B=Y.slice(_+`@${K}`.length),j=G(B);if(!j)break;let H=_+`@${K}`.length+j.paramsEnd,L=X(Y,K,z,H);if(L===-1){console.warn(`[stx] @${K} directive at position ${_} has no matching @${z} \u2014 the block was skipped.`);break}let F=Y.slice(H,L),O=[],V=0,w=new RegExp(`@${K}\\s*\\(`,"g"),A=new RegExp(`@${z}(?![a-z])`,"g"),R=new RegExp(`@${q}\\s*\\(`,"g"),N=/@else(?![a-z])/g,M=[],T;while((T=w.exec(F))!==null)M.push({pos:T.index,type:"open"});while((T=A.exec(F))!==null)M.push({pos:T.index,type:"close"});while((T=R.exec(F))!==null)M.push({pos:T.index,type:"elseDirective"});while((T=N.exec(F))!==null)M.push({pos:T.index,type:"else"});M.sort((k,y)=>k.pos-y.pos);for(let k of M){if(k.type==="open"){V++;continue}if(k.type==="close"){V--;continue}if(V===0)O.push(k)}let I=[],D=0;for(let k=0;k<O.length;k++){let y=O[k];if(I.push({content:F.slice(D,y.pos),ability:void 0}),y.type==="elseDirective"){let h=F.slice(y.pos+`@${q}`.length),f=G(h);if(f){I[I.length-1]={content:F.slice(D,y.pos)},D=y.pos+`@${q}`.length+f.paramsEnd,I.push({content:"",ability:f.ability,type:f.type,id:f.id}),I.pop();let m=O[k+1],o=m?m.pos:F.length;I.push({content:F.slice(D,o),ability:f.ability,type:f.type,id:f.id}),D=o}}else D=y.pos+5}if(D<F.length){let k=I[I.length-1];if(O.length>0&&O[O.length-1].type==="else")I.push({content:F.slice(D),isFinalElse:!0});else if(I.length===0)I.push({content:F.slice(D)})}let E=Q(j.ability,j.type,j.id),b=K==="can"?E:!E,S="";if(b)S=I[0]?.content||"";else{let k=!1;for(let y=1;y<I.length;y++){let h=I[y];if(h.isFinalElse){S=h.content,k=!0;break}if(h.ability){let f=Q(h.ability,h.type,h.id);if(K==="can"?f:!f){S=h.content,k=!0;break}}}if(!k&&I.length>0){let y=I[I.length-1];if(y.isFinalElse)S=y.content}}Y=Y.substring(0,_)+S+Y.substring(L+`@${z}`.length),U=!0}}return Y}function E3($,Z,Y){let X=$;function J(Q,G,K,z,q){let U=!0;while(U){U=!1;let W=new RegExp(`@${G}\\s*\\(`),_=Q.match(W);if(!_||_.index===void 0)break;let B=_.index,j=H1(Q,B+`@${G}`.length);if(!j)break;let H=j.endPos,L=v1(Q,G,K,H);if(L===-1){console.warn(`[stx] @${G} directive at position ${B} has no matching @${K} \u2014 the block was skipped.`);break}let F=Q.slice(H,L),O=j.expression,V=-1,w=0,A=0;while(A<F.length){let R=F.indexOf("@",A);if(R===-1)break;let N=F.substring(R);if(/^@(?:if|unless|isset|empty)\s*\(/.test(N)){w++,A=R+1;continue}if(/^@(?:endif|endunless|endisset|endempty)(?![a-z])/.test(N)){w--,A=R+1;continue}if(w===0&&/^@else(?![a-z])/.test(N)){V=R;break}A=R+1}try{let R=z(O.trim()),N;if(V!==-1){let M=F.slice(0,V),T=F.slice(V+5);N=R?M:T}else N=R?F:"";Q=Q.substring(0,B)+N+Q.substring(L+`@${K}`.length),U=!0}catch(R){let N=R instanceof Error?R.message:String(R),M=r(q,`Error processing @${G} directive: ${N}`,p.EVALUATION_ERROR);Q=Q.substring(0,B)+M+Q.substring(L+`@${K}`.length);break}}return Q}return X=J(X,"isset","endisset",(Q)=>{let G=j1(Q,Z);return G!==void 0&&G!==null},"Isset"),X=J(X,"empty","endempty",(Q)=>{let G=j1(Q,Z);return G===void 0||G===null||G===""||G===0||G===!1||Array.isArray(G)&&G.length===0||typeof G==="object"&&G!==null&&Object.keys(G).length===0},"Empty"),X}function k3($,Z,Y){let X=$,J="development";function Q(G,K,z,q){let U=new RegExp(`@${K}(?![a-z])`,"g"),W=new RegExp(`@${z}(?![a-z])`,"g"),_=new RegExp(`^@${K}(?![a-z])`),B=new RegExp(`^@${z}(?![a-z])`),j=G,H=!0;while(H){H=!1,U.lastIndex=0;let L=U.exec(j);if(!L)break;let F=L.index,O=F+L[0].length;if(K==="env"){let E=j.substring(O).match(/^\s*\(\s*(['"])([^'"]+)\1\s*\)/);if(!E)break;O+=E[0].length,q=J===E[2]}let V=1,w=O,A=-1;while(V>0&&w<j.length){U.lastIndex=w,W.lastIndex=w;let E=U.exec(j),b=W.exec(j),S=E?E.index:1/0,k=b?b.index:1/0;if(S<k)V++,w=S+E[0].length;else if(k<1/0){if(V--,V===0){A=k;break}w=k+b[0].length}else break}if(A===-1){console.warn(`[stx] @${K} directive at position ${F} has no matching @${z} \u2014 the block was skipped.`);break}let R=j.substring(O,A),N=-1,M=0,T=0;while(T<R.length){let E=R.indexOf("@",T);if(E===-1)break;let b=R.substring(E);if(_.test(b)){M++,T=E+1;continue}if(B.test(b)){M--,T=E+1;continue}if(M===0&&/^@else(?![a-z])/.test(b)){N=E;break}T=E+1}let I;if(N!==-1){let E=R.slice(0,N),b=R.slice(N+5);I=q?E:b}else I=q?R:"";let D=`@${z}`.length;j=j.substring(0,F)+I+j.substring(A+D),H=!0}return j}return X=Q(X,"env","endenv",!1),X=Q(X,"production","endproduction",J==="production"),X=Q(X,"development","enddevelopment",J==="development"),X=Q(X,"staging","endstaging",J==="staging"),X=Q(X,"testing","endtesting",J==="testing"),X}var z4=P(()=>{aZ();t0();K4();w0()});function G2($=16){let Z=new Uint8Array($);return crypto.getRandomValues(Z),btoa(String.fromCharCode(...Z))}function f1($,Z){if(!$)return Z?.nonceGenerator?.()??G2();let Y=b3.get($);if(!Y)Y=Z?.nonceGenerator?.()??G2(),b3.set($,Y);return Y}function Bw($){b3.delete($)}function K2($,Z){let Y=[];for(let[X,J]of Object.entries($)){if(J===void 0||J===null)continue;if(typeof J==="boolean"){if(J)Y.push(X);continue}if(Array.isArray(J)){let Q=[...J];if(Z&&(X==="script-src"||X==="style-src"))Q=Q.filter((G)=>!G.startsWith("'nonce-")),Q.push(`'nonce-${Z}'`);if(Q.length>0)Y.push(`${X} ${Q.join(" ")}`)}}return Y.join("; ")}function y3($,Z){return`<meta http-equiv="Content-Security-Policy" content="${K2($,Z).replace(/&/g,"&").replace(/"/g,""")}">`}function jw($){return{enabled:!0,directives:{strict:wq,moderate:S3,relaxed:Aq,api:Rq}[$]||S3,useNonce:$==="strict",addMetaTag:!0}}function Hw($,Z){let Y={...$};for(let[X,J]of Object.entries(Z)){let Q=X,G=Y[Q];if(J===void 0||J===null)continue;if(typeof J==="boolean")Y[Q]=G||J;else if(Array.isArray(J)){let K=Array.isArray(G)?G:[],z=[...new Set([...K,...J])];Y[Q]=z}}return Y}function z2($,Z,Y){if(!Z.enabled||!Z.addMetaTag)return $;if($.includes('http-equiv="Content-Security-Policy"'))return $;if(!$.includes("<head>")&&!$.includes("<head "))return $;let X=Z.useNonce?f1(Y,Z):void 0,J=y3(Z.directives,X);return $.replace(/<head([^>]*)>/,`<head$1>
|
|
3774
|
+
${J}`)}function Ow($,Z){let Y=$;return Y=Y.replace(/<script(?![^>]*\ssrc=)([^>]*)>/gi,(X,J)=>{if(J.includes("nonce="))return X;return`<script nonce="${Z}"${J}>`}),Y=Y.replace(/<style([^>]*)>/gi,(X,J)=>{if(J.includes("nonce="))return X;return`<style nonce="${Z}"${J}>`}),Y}function q2($,Z,Y,X){let J=$,Q=X.csp;if(J=J.replace(/@csp\b/g,()=>{if(!Q?.enabled||!Q.directives)return"<!-- CSP not configured -->";let G=Q.useNonce?f1(Z,Q):void 0;return y3(Q.directives,G)}),J=J.replace(/@cspNonce\b/g,()=>{if(!Q?.enabled||!Q.useNonce)return"";return f1(Z,Q)}),Q?.enabled&&Q.useNonce)Z.cspNonce=f1(Z,Q);return J}function Lw(){return[Nq,Tq]}function Fw($){let Z=[];if($["script-src"]?.includes("'unsafe-inline'"))Z.push("CSP: Using unsafe-inline in script-src significantly reduces XSS protection");if($["script-src"]?.includes("'unsafe-eval'"))Z.push("CSP: Using unsafe-eval in script-src allows eval() and related functions");if(!$["default-src"])Z.push("CSP: No default-src specified. Recommend adding default-src as a fallback");if($["default-src"]?.includes("*"))Z.push("CSP: Using * in default-src provides minimal protection");if(!$["object-src"]&&!$["default-src"]?.includes("'none'"))Z.push("CSP: Consider adding object-src: none to block plugins");if(!$["base-uri"])Z.push("CSP: Consider adding base-uri to prevent base tag injection attacks");for(let[Y,X]of Object.entries($))if(Array.isArray(X)&&X.includes("http:"))Z.push(`CSP: Using http: in ${Y} allows insecure resources`);return Z}function Mq($=!1){return $?"Content-Security-Policy-Report-Only":"Content-Security-Policy"}function Vw($,Z){if(!$.enabled)return{};let Y=$.useNonce?f1(Z,$):void 0,X=K2($.directives,Y);return{[Mq($.reportOnly)]:X}}var b3,wq,S3,Aq,Rq,Nq,Tq,ww;var U2=P(()=>{b3=new WeakMap;wq={"default-src":["'self'"],"script-src":["'self'","'strict-dynamic'"],"style-src":["'self'"],"img-src":["'self'","data:","https:"],"font-src":["'self'","https:","data:"],"connect-src":["'self'"],"media-src":["'self'"],"object-src":["'none'"],"frame-src":["'none'"],"base-uri":["'self'"],"form-action":["'self'"],"frame-ancestors":["'self'"],"upgrade-insecure-requests":!0},S3={"default-src":["'self'"],"script-src":["'self'"],"style-src":["'self'","'unsafe-inline'"],"img-src":["'self'","data:","https:"],"font-src":["'self'","https:","data:"],"connect-src":["'self'","https:"],"media-src":["'self'"],"object-src":["'none'"],"frame-src":["'self'"],"base-uri":["'self'"],"form-action":["'self'"],"upgrade-insecure-requests":!0},Aq={"default-src":["'self'"],"script-src":["'self'","'unsafe-inline'"],"style-src":["'self'","'unsafe-inline'"],"img-src":["'self'","data:","https:","http:"],"font-src":["'self'","https:","http:","data:"],"connect-src":["'self'","https:","http:","ws:","wss:"],"media-src":["'self'","https:","http:"],"object-src":["'none'"],"frame-src":["'self'","https:"],"base-uri":["'self'"]},Rq={"default-src":["'none'"],"frame-ancestors":["'none'"]};Nq={name:"csp",handler:($,Z,Y,X)=>{let Q=Y.__stx_options?.csp;if(!Q?.enabled||!Q.directives)return"<!-- CSP not configured -->";let G=Q.useNonce?f1(Y,Q):void 0;return y3(Q.directives,G)},hasEndTag:!1,description:"Insert Content-Security-Policy meta tag"},Tq={name:"cspNonce",handler:($,Z,Y,X)=>{let Q=Y.__stx_options?.csp;if(!Q?.enabled||!Q.useNonce)return"";return f1(Y,Q)},hasEndTag:!1,description:"Output the current CSP nonce value"};ww={enabled:!1,reportOnly:!1,directives:S3,useNonce:!1,addMetaTag:!0}});import{Buffer as W2}from"buffer";import _2 from"crypto";function Dq($=Iq){let Z=_2.randomBytes(Math.ceil($/2)).toString("hex").slice(0,$);return q5=Z,Z}function Eq(){if(!q5)Dq();return q5}function Tw(){q5=null}function Mw($){q5=$}function kq($=B2){let Z=Eq();return`<input type="hidden" name="${$}" value="${Z}">`}function j2($){return $.replace(/@csrf(?:\((['"])([^'"]*)\1\))?/g,(Z,Y,X)=>{return kq(X||B2)})}function Iw($,Z){let Y=Z??q5;if(!Y)return!1;let X=W2.from($),J=W2.from(Y);if(X.length!==J.length)return!1;return _2.timingSafeEqual(X,J)}var Iq=40,B2="_token",q5=null;var H2=()=>{};async function O2($,Z,Y,X){if(!X.customDirectives||X.customDirectives.length===0)return $;let J=$;for(let Q of X.customDirectives){if(!Q.name||typeof Q.handler!=="function"){if(X.debug)console.warn("Invalid custom directive:",Q);continue}if(Q.hasEndTag)J=await bq(J,Q,Z,Y,X);else J=await Sq(J,Q,Z,Y,X)}return J}async function bq($,Z,Y,X,J){let{name:Q,handler:G}=Z,K=`@${Q}`,z=`@end${Q}`,q=$,U=E1(`${K}(?:\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\))?([\\s\\S]*?)${z}`,"g"),W=[],_=U.exec(q);while(_!==null){let[B,j="",H=""]=_,L=_.index||0;try{let F=j?L2(j):[],O=H.trim(),V=await G(O,F,Y,X);W.push({original:B,processed:V,startIndex:L})}catch(F){let O=F instanceof Error?F.message:String(F);if(J.debug)console.error(`Error processing custom directive @${Q}:`,F);W.push({original:B,processed:r("CustomDirective",`Error in @${Q}${j?`(${j})`:""}: ${O}`,p.EVALUATION_ERROR),startIndex:L})}_=U.exec(q)}for(let B=W.length-1;B>=0;B--){let{original:j,processed:H}=W[B];q=q.replace(j,H)}return q}async function Sq($,Z,Y,X,J){let{name:Q,handler:G}=Z,K=$,z=E1(`@${Q}\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\)`,"g"),q=[],U=z.exec(K);while(U!==null){let[B,j=""]=U,H=U.index||0;try{let L=L2(j),F=await G("",L,Y,X);q.push({original:B,processed:F,startIndex:H})}catch(L){let F=L instanceof Error?L.message:String(L);if(J.debug)console.error(`Error processing custom directive @${Q}:`,L);q.push({original:B,processed:r("CustomDirective",`Error in @${Q}(${j}): ${F}`,p.EVALUATION_ERROR),startIndex:H})}U=z.exec(K)}let W=E1(`@${Q}(?!\\w)(?!\\s*\\()`,"g"),_=W.exec(K);while(_!==null){let[B]=_,j=_.index||0;try{let H=await G("",[],Y,X);q.push({original:B,processed:H,startIndex:j})}catch(H){let L=H instanceof Error?H.message:String(H);if(J.debug)console.error(`Error processing custom directive @${Q}:`,H);q.push({original:B,processed:r("CustomDirective",`Error in @${Q}: ${L}`,p.EVALUATION_ERROR),startIndex:j})}_=W.exec(K)}for(let B=q.length-1;B>=0;B--){let{original:j,processed:H}=q[B];K=K.replace(j,H)}return K}function L2($){if(!$.trim())return[];let Z=[],Y="",X=!1,J="";for(let Q=0;Q<$.length;Q++){let G=$[Q];if((G==='"'||G==="'")&&(Q===0||$[Q-1]!=="\\"))if(!X)X=!0,J=G;else if(G===J)X=!1;else Y+=G;else if(G===","&&!X)Z.push(Y.trim()),Y="";else Y+=G}if(Y.trim())Z.push(Y.trim());return Z.map((Q)=>{let G=Q.trim();if(G.startsWith('"')&&G.endsWith('"')||G.startsWith("'")&&G.endsWith("'"))return G.substring(1,G.length-1);return G})}var F2=P(()=>{t0();t1()});var C3={};l(C3,{useTitle:()=>fq,useSeoMeta:()=>U4,usePageTitle:()=>fq,useHead:()=>h1,resetHead:()=>Pq,renderHtmlAttrs:()=>hq,renderHead:()=>gq,renderBodyAttrs:()=>dq,processTitleDirective:()=>lq,processMetaDirective:()=>pq,processHeadDirective:()=>uq,getPageMeta:()=>Cq,getHead:()=>g5,definePageMeta:()=>xq,applyHead:()=>mq});function g5(){return O1}function Cq(){return q4}function Pq(){O1={},yq.length=0,q4={}}function h1($){O1=vq(O1,$)}function vq($,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 U4($){let Z=[];if($.description)Z.push({name:"description",content:$.description});if($.keywords){let z=Array.isArray($.keywords)?$.keywords.join(", "):$.keywords;Z.push({name:"keywords",content:z})}if($.author)Z.push({name:"author",content:$.author});if($.robots)Z.push({name:"robots",content:$.robots});let Y=$.ogTitle??$.title,X=$.ogDescription??$.description;if(Y)Z.push({property:"og:title",content:Y});if(X)Z.push({property:"og:description",content:X});if($.ogImage)Z.push({property:"og:image",content:$.ogImage});if($.ogUrl)Z.push({property:"og:url",content:$.ogUrl});if($.ogType)Z.push({property:"og:type",content:$.ogType});if($.ogSiteName)Z.push({property:"og:site_name",content:$.ogSiteName});if($.ogLocale)Z.push({property:"og:locale",content:$.ogLocale});let J=$.twitterTitle??$.title,Q=$.twitterDescription??$.description,G=$.twitterImage??$.ogImage;if($.twitterCard)Z.push({name:"twitter:card",content:$.twitterCard});if(J)Z.push({name:"twitter:title",content:J});if(Q)Z.push({name:"twitter:description",content:Q});if(G)Z.push({name:"twitter:image",content:G});if($.twitterSite)Z.push({name:"twitter:site",content:$.twitterSite});if($.twitterCreator)Z.push({name:"twitter:creator",content:$.twitterCreator});if($.articleAuthor)Z.push({property:"article:author",content:$.articleAuthor});if($.articlePublishedTime)Z.push({property:"article:published_time",content:$.articlePublishedTime});if($.articleModifiedTime)Z.push({property:"article:modified_time",content:$.articleModifiedTime});if($.articleSection)Z.push({property:"article:section",content:$.articleSection});if($.articleTags)for(let z of $.articleTags)Z.push({property:"article:tag",content:z});let K=[];if($.canonical)K.push({rel:"canonical",href:$.canonical});h1({title:$.title,titleTemplate:$.titleTemplate,meta:Z,link:K})}function xq($){if(q4={...q4,...$},$.title||$.description)U4({title:$.title,description:$.description})}function fq($){let Z=typeof $==="function"?$():$;h1({title:Z})}function gq($=O1){let Z=[];if($.title){let Y=$.title;if($.titleTemplate)Y=typeof $.titleTemplate==="function"?$.titleTemplate(Y):$.titleTemplate.replace("%s",Y);Z.push(`<title>${g1(Y)}</title>`)}if($.base){let Y=Object.entries($.base).map(([X,J])=>`${X}="${g1(J)}"`).join(" ");Z.push(`<base ${Y}>`)}for(let Y of $.meta||[]){let X=Object.entries(Y).filter(([J,Q])=>Q!==void 0).map(([J,Q])=>{return`${J==="httpEquiv"?"http-equiv":J}="${g1(String(Q))}"`}).join(" ");Z.push(`<meta ${X}>`)}for(let Y of $.link||[]){let X=Object.entries(Y).filter(([J,Q])=>Q!==void 0).map(([J,Q])=>`${J}="${g1(String(Q))}"`).join(" ");Z.push(`<link ${X}>`)}for(let Y of $.script||[]){let{content:X,...J}=Y,Q=Object.entries(J).filter(([G,K])=>K!==void 0).map(([G,K])=>{if(typeof K==="boolean")return K?G:"";return`${G}="${g1(String(K))}"`}).filter(Boolean).join(" ");if(X)Z.push(`<script ${Q}>${X}</script>`);else Z.push(`<script ${Q}></script>`)}for(let Y of $.style||[]){let X=Y.type?` type="${Y.type}"`:"";Z.push(`<style${X}>${Y.content}</style>`)}return Z.join(`
|
|
3775
3775
|
`)}function hq($=O1){if(!$.htmlAttrs)return"";return Object.entries($.htmlAttrs).map(([Z,Y])=>`${Z}="${g1(Y)}"`).join(" ")}function dq($=O1){if(!$.bodyAttrs)return"";return Object.entries($.bodyAttrs).map(([Z,Y])=>`${Z}="${g1(Y)}"`).join(" ")}function g1($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function mq($=O1){if(typeof document>"u")return;if($.title){let Z=$.title;if($.titleTemplate)Z=typeof $.titleTemplate==="function"?$.titleTemplate(Z):$.titleTemplate.replace("%s",Z);document.title=Z}for(let Z of $.meta||[]){let Y=Z.name?`meta[name="${Z.name}"]`:Z.property?`meta[property="${Z.property}"]`:null;if(Y){let X=document.querySelector(Y);if(!X){if(X=document.createElement("meta"),Z.name)X.setAttribute("name",Z.name);if(Z.property)X.setAttribute("property",Z.property);document.head.appendChild(X)}X.setAttribute("content",Z.content)}}for(let Z of $.link||[]){let Y=`link[rel="${Z.rel}"]${Z.href?`[href="${Z.href}"]`:""}`,X=document.querySelector(Y);if(!X)X=document.createElement("link"),document.head.appendChild(X);for(let[J,Q]of Object.entries(Z))if(Q!==void 0)X.setAttribute(J,String(Q))}if($.htmlAttrs)for(let[Z,Y]of Object.entries($.htmlAttrs))document.documentElement.setAttribute(Z,Y);if($.bodyAttrs)for(let[Z,Y]of Object.entries($.bodyAttrs))document.body.setAttribute(Z,Y)}function uq($){let Z="";return{content:$.replace(/@head\s*([\s\S]*?)@endhead/g,(X,J)=>{return Z+=J.trim()+`
|
|
3776
|
-
`,""}),headContent:Z.trim()}}function lq($,Z){return $.replace(/@title\s*\(\s*(?:(['"`])(.+?)\1|([^)]+))\s*\)/g,(Y,X,J,Q)=>{let G=X?J:Z[(Q||"").trim()]??Q;return h1({title:G}),""})}function pq($,Z){return $.replace(/@meta\s*\(\s*(['"`])(.+?)\1\s*,\s*(?:(['"`])(.+?)\3|([^)]+))\s*\)/g,(Y,X,J,Q,G,K)=>{let z=Q?G:K,q=Q?z:Z[(z||"").trim()]??z,W=J.includes(":")?{property:J,content:q}:{name:J,content:q};return h1({meta:[W]}),""})}var O1,yq,q4;var h5=
|
|
3776
|
+
`,""}),headContent:Z.trim()}}function lq($,Z){return $.replace(/@title\s*\(\s*(?:(['"`])(.+?)\1|([^)]+))\s*\)/g,(Y,X,J,Q)=>{let G=X?J:Z[(Q||"").trim()]??Q;return h1({title:G}),""})}function pq($,Z){return $.replace(/@meta\s*\(\s*(['"`])(.+?)\1\s*,\s*(?:(['"`])(.+?)\3|([^)]+))\s*\)/g,(Y,X,J,Q,G,K)=>{let z=Q?G:K,q=Q?z:Z[(z||"").trim()]??z,W=J.includes(":")?{property:J,content:q}:{name:J,content:q};return h1({meta:[W]}),""})}var O1,yq,q4;var h5=P(()=>{O1={},yq=[],q4={}});import cq from"crypto";function A0($){return String($??"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function iq($){return{...P3,...$.forms?.classes}}function W4($,Z,Y,X){let J=$||Z;return Y?`${J} ${X}`:J}function nq(){return cq.randomUUID()}function Cw($,Z,Y,X){let J=iq(X),Q=$;return Q=sq(Q,Z),Q=u5(Q,Z),Q=v3(Q,Z,J),Q=x3(Q,Z,J),Q}function u5($,Z){let Y=$;return Y=Y.replace(/@csrf/g,()=>{if(!Z.csrf||typeof Z.csrf!=="object"){let X=nq();Z.csrf={token:X}}if(Z.csrf.field)return Z.csrf.field;if(Z.csrf.token)return`<input type="hidden" name="_token" value="${A0(Z.csrf.token)}">`;return'<input type="hidden" name="_token" value="">'}),Y=Y.replace(/@method\(['"]([^'"]+)['"]\)/g,(X,J)=>{let Q=J.toUpperCase();if(J&&!["GET","POST"].includes(Q))return`<input type="hidden" name="_method" value="${A0(Q)}">`;return X}),Y}function v3($,Z,Y=P3){let X=$;return X=X.replace(/@form\(\s*(?:(?:'([^']+)'|"([^"]+)")\s*)?(?:,\s*(?:'([^']+)'|"([^"]+)")?)?\s*(?:,\s*\{([^}]+)\}\s*)?\)/g,(J,Q,G,K,z,q="")=>{let U=Q||G||"POST",W=K||z||"",_=L1(q),B=U.toUpperCase(),j=["GET","POST"].includes(B)?B:"POST",H=`<form method="${A0(j)}" action="${A0(W)}"${_?` ${_}`:""}>`;if(H+=`
|
|
3777
3777
|
${u5("@csrf",Z)}`,!["GET","POST"].includes(B))H+=`
|
|
3778
3778
|
${u5(`@method('${B}')`,Z)}`;return H}),X=X.replace(/@endform/g,"</form>"),X=X.replace(/@input\(\s*(?:'([^']+)'|"([^"]+)")\s*(?:,\s*(?:(?:'([^']*)'|"([^"]*)")\s*)?)?(?:,\s*\{([^}]+)\})?\s*\)/g,(J,Q,G,K,z,q="")=>{let U=Q||G||"",W=K||z||"",_=L1(q),B=d5(U,Z),j=B!==void 0&&B!==null?B:W||"",H=_.match(/type=['"]([^'"]+)['"]/i),L=H?H[1]:"text",F=m5(U,Z),O=_.match(/class=['"]([^'"]+)['"]/i),V=W4(O?O[1]:"",Y.input,F,Y.inputError),w=_.replace(/class=['"][^'"]+['"]/i,"");return w=w.replace(/type=['"][^'"]+['"]/i,""),`<input type="${A0(L)}" name="${A0(U)}" value="${A0(j)}" class="${V}"${w?` ${w}`:""}>`}),X=X.replace(/@textarea\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)([\s\S]*?)@endtextarea/g,(J,Q,G="",K="")=>{let z=L1(G),q=d5(Q,Z)||K.trim(),U=m5(Q,Z),W=z.match(/class=['"]([^'"]+)['"]/i),_=W4(W?W[1]:"",Y.input,U,Y.inputError),B=z.replace(/class=['"][^'"]+['"]/i,"");return`<textarea name="${A0(Q)}" class="${_}"${B?` ${B}`:""}>${A0(q)}</textarea>`}),X=X.replace(/@select\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)([\s\S]*?)@endselect/g,(J,Q,G="",K)=>{let z=L1(G),q=d5(Q,Z),U=m5(Q,Z),W=z.match(/class=['"]([^'"]+)['"]/i),_=W4(W?W[1]:"",Y.input,U,Y.inputError),B=z.replace(/class=['"][^'"]+['"]/i,""),j=K;if(q!==void 0)j=K.replace(/(<option[^>]*value=['"]([^'"]+)['"][^>]*>)/gi,(H,L,F)=>{if((Array.isArray(q)?q.some((V)=>String(V)===F):String(q)===F)&&!L.includes("selected"))return L.replace(/(<option)/,"$1 selected");return H});return`<select name="${A0(Q)}" class="${_}"${B?` ${B}`:""}>${j}</select>`}),X=X.replace(/@checkbox\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?(?:,\s*\{([^}]+)\})?\)/g,(J,Q,G="1",K="")=>{let z=L1(K),q=d5(Q,Z),U=q!==void 0&&(Array.isArray(q)?q.some((j)=>String(j)===G):q===!0||String(q)===G),W=z.match(/class=['"]([^'"]+)['"]/i),_=W?W[1]:Y.checkInput,B=z.replace(/class=['"][^'"]+['"]/i,"");return`<input type="checkbox" name="${A0(Q)}" value="${A0(G)}" class="${_}"${U?" checked":""}${B?` ${B}`:""}>`}),X=X.replace(/@radio\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)/g,(J,Q,G,K="")=>{let z=L1(K),q=d5(Q,Z),U=q!==void 0&&q===G,W=z.match(/class=['"]([^'"]+)['"]/i),_=W?W[1]:Y.checkInput,B=z.replace(/class=['"][^'"]+['"]/i,"");return`<input type="radio" name="${A0(Q)}" value="${A0(G)}" class="${_}"${U?" checked":""}${B?` ${B}`:""}>`}),X=X.replace(/@file\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)/g,(J,Q,G="")=>{let K=L1(G),z=K.match(/accept=['"]([^'"]+)['"]/i),q=z?z[1]:"",U=K.includes("multiple"),W=m5(Q,Z),_=K.match(/class=['"]([^'"]+)['"]/i),B=W4(_?_[1]:"",Y.input,W,Y.inputError),j=K.replace(/class=['"][^'"]+['"]/gi,"").replace(/accept=['"][^'"]+['"]/gi,"").replace(/\bmultiple\b/gi,"").trim(),H=[`<input type="file" name="${A0(Q)}"`,`class="${B}"`];if(q)H.push(`accept="${A0(q)}"`);if(U)H.push("multiple");if(j)H.push(j);return`${H.join(" ")}>`}),X=X.replace(/@label\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)([\s\S]*?)@endlabel/g,(J,Q,G="",K)=>{let z=L1(G),q=z.match(/class=['"]([^'"]+)['"]/i),U=q?q[1]:Y.label,W=z.replace(/class=['"][^'"]+['"]/i,"");return`<label for="${A0(Q)}" class="${U}"${W?` ${W}`:""}>${K}</label>`}),X}function x3($,Z,Y=P3){return $.replace(/@error\(['"]([^'"]+)['"]\)([\s\S]*?)@enderror/g,(X,J,Q)=>{try{if(m5(J,Z))return Q.replace(/\{\{([^}]+)\}\}/g,(G,K)=>{try{if(K.trim()==="$message"||K.trim()==="message")return V2(J,Z);if(K.trim().includes("errors.first")||K.trim().includes("$errors.first")){if(typeof Z.errors?.first==="function")return Z.errors.first(J);return V2(J,Z)}let z=K.trim();if($0(z)){let q=e(z,Z);return q!==void 0?String(q):z}return z}catch{return K}});return""}catch(G){return console.error("Error processing @error directive:",G),X}})}function m5($,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 V2($,Z){if(!Z.errors)return"";if(typeof Z.errors.get==="function")return Z.errors.get($);if(typeof Z.errors==="object"&&Object.prototype.hasOwnProperty.call(Z.errors,$)){let Y=Z.errors[$];return Array.isArray(Y)?Y[0]:String(Y)}return""}function d5($,Z){let Y;if(Z.old&&typeof Z.old==="function")return Z.old($);if(Z.old&&typeof Z.old==="object")return Z.old[$];if($.endsWith("[]")){let X=$.slice(0,-2);if(Y=Z[X],Y!==void 0)return Y}return Z[$]}function L1($){if(!$.trim())return"";let Z=[],Y=$.trim(),X=/([\w-]+)\s*:\s*(['"]?)([^,'"]*)\2(?:\s*,\s*|\s*$)/g,J;while((J=X.exec(Y))!==null){let[,Q,,G]=J;Z.push(`${Q}="${G.trim()}"`)}return Z.join(" ")}function Pw($,Z){w2[$]=Z}function f3($){let[Z,...Y]=$.split(":"),X=Y.length>0?Y.join(":").split(","):[];return{name:Z.trim(),params:X}}function oq($,Z,Y,X={}){let J=[],Q=Y.split("|").map((G)=>G.trim()).filter(Boolean);for(let G of Q){let K=f3(G),z=w2[K.name];if(!z){console.warn(`Unknown validation rule: ${K.name}`);continue}if(K.name==="confirmed"){let U=`${$}_confirmation`;K.params=[X[U]]}let q=z(Z,K.params||[],$);if(q)J.push(K.message||q)}return{field:$,valid:J.length===0,errors:J}}function vw($,Z){let Y={};for(let[X,J]of Object.entries(Z)){let Q=oq(X,$[X],J,$);if(!Q.valid)Y[X]=Q.errors}return Y}function sq($,Z){return $.replace(/@validate\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]*)\})?\s*\)/g,(Y,X,J,Q)=>{let G=J.split("|").map((z)=>z.trim()),K=[];for(let z of G){let q=f3(z);switch(q.name){case"required":K.push("required");break;case"email":K.push('type="email"');break;case"url":K.push('type="url"');break;case"numeric":case"integer":if(K.push('type="number"'),q.name==="integer")K.push('step="1"');break;case"min":if(q.params?.[0])K.push(`minlength="${q.params[0]}"`);break;case"max":if(q.params?.[0])K.push(`maxlength="${q.params[0]}"`);break;case"regex":if(q.params?.[0])K.push(`pattern="${q.params[0]}"`);break}}return`<!-- @validate:${X}:${J} -->${K.length>0?`<!-- attrs:${K.join(" ")} -->`:""}`})}function xw($){A2[$.name]=$}function rq($,Z,Y={}){let X=[],J=Z.split("|").map((Q)=>Q.trim());for(let Q of J){let G=f3(Q),K=A2[G.name];if(!K){console.warn(`Unknown validation rule: ${G.name}`);continue}let z=K.validate($,G.params||[],Y);if(z!==!0)X.push(z)}return{valid:X.length===0,errors:X}}function fw($,Z){let Y={},X=!0;for(let[J,Q]of Object.entries(Z)){let G=rq($[J],Q,$);if(!G.valid)X=!1,Y[J]=G.errors}return{valid:X,errors:Y}}function gw($,Z){let Y=JSON.stringify(Z);return`
|
|
3779
3779
|
<script>
|
|
@@ -3827,8 +3827,8 @@ catch { return 'Please enter a valid URL'; } },
|
|
|
3827
3827
|
}
|
|
3828
3828
|
});
|
|
3829
3829
|
})();
|
|
3830
|
-
</script>`.trim()}var P3,w2,A2;var R2=C(()=>{w0();P3={input:"form-control",inputError:"is-invalid",checkInput:"form-check-input",label:"form-label",errorFeedback:"invalid-feedback"};w2={required:($,Z,Y)=>{if($===void 0||$===null||$===""||Array.isArray($)&&$.length===0)return`The ${Y} field is required.`;return null},email:($,Z,Y)=>{if(!$)return null;if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String($)))return`The ${Y} field must be a valid email address.`;return null},min:($,Z,Y)=>{if(!$)return null;let X=Number(Z[0]);if(typeof $==="string"&&$.length<X)return`The ${Y} field must be at least ${X} characters.`;if(typeof $==="number"&&$<X)return`The ${Y} field must be at least ${X}.`;if(Array.isArray($)&&$.length<X)return`The ${Y} field must have at least ${X} items.`;return null},max:($,Z,Y)=>{if(!$)return null;let X=Number(Z[0]);if(typeof $==="string"&&$.length>X)return`The ${Y} field must not exceed ${X} characters.`;if(typeof $==="number"&&$>X)return`The ${Y} field must not exceed ${X}.`;if(Array.isArray($)&&$.length>X)return`The ${Y} field must not have more than ${X} items.`;return null},confirmed:($,Z,Y)=>{if(Z[0]!==void 0&&$!==Z[0])return`The ${Y} confirmation does not match.`;return null},numeric:($,Z,Y)=>{if(!$)return null;if(Number.isNaN(Number($)))return`The ${Y} field must be a number.`;return null},integer:($,Z,Y)=>{if(!$)return null;if(!Number.isInteger(Number($)))return`The ${Y} field must be an integer.`;return null},alpha:($,Z,Y)=>{if(!$)return null;if(!/^[a-z]+$/i.test(String($)))return`The ${Y} field must only contain letters.`;return null},alphanumeric:($,Z,Y)=>{if(!$)return null;if(!/^[a-z0-9]+$/i.test(String($)))return`The ${Y} field must only contain letters and numbers.`;return null},url:($,Z,Y)=>{if(!$)return null;try{return new URL(String($))?null:null}catch{return`The ${Y} field must be a valid URL.`}},regex:($,Z,Y)=>{if(!$)return null;try{if(!new RegExp(Z[0]).test(String($)))return`The ${Y} field format is invalid.`;return null}catch{return`The ${Y} field has an invalid validation pattern.`}},in:($,Z,Y)=>{if(!$)return null;if(!Z.includes(String($)))return`The ${Y} field must be one of: ${Z.join(", ")}.`;return null},notIn:($,Z,Y)=>{if(!$)return null;if(Z.includes(String($)))return`The ${Y} field must not be: ${Z.join(", ")}.`;return null},date:($,Z,Y)=>{if(!$)return null;let X=new Date($);if(Number.isNaN(X.getTime()))return`The ${Y} field must be a valid date.`;return null},before:($,Z,Y)=>{if(!$)return null;let X=new Date($),J=new Date(Z[0]);if(X>=J)return`The ${Y} field must be before ${Z[0]}.`;return null},after:($,Z,Y)=>{if(!$)return null;let X=new Date($),J=new Date(Z[0]);if(X<=J)return`The ${Y} field must be after ${Z[0]}.`;return null}};A2={required:{name:"required",validate:($)=>{if($===null||$===void 0||$==="")return"This field is required";if(Array.isArray($)&&$.length===0)return"This field is required";return!0},toHtml5:()=>["required"],message:"This field is required"},email:{name:"email",validate:($)=>{if(!$)return!0;return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String($))||"Please enter a valid email address"},toHtml5:()=>['type="email"'],message:"Please enter a valid email address"},url:{name:"url",validate:($)=>{if(!$)return!0;try{return new URL(String($)).protocol.startsWith("http")||"Please enter a valid URL"}catch{return"Please enter a valid URL"}},toHtml5:()=>['type="url"'],message:"Please enter a valid URL"},numeric:{name:"numeric",validate:($)=>{if(!$)return!0;return!Number.isNaN(Number($))||"Please enter a number"},toHtml5:()=>['type="number"'],message:"Please enter a number"},integer:{name:"integer",validate:($)=>{if(!$)return!0;let Z=Number($);return Number.isInteger(Z)||"Please enter a whole number"},toHtml5:()=>['type="number"','step="1"'],message:"Please enter a whole number"},alpha:{name:"alpha",validate:($)=>{if(!$)return!0;return/^[a-z]+$/i.test(String($))||"Please enter only letters"},toHtml5:()=>['pattern="[a-zA-Z]+"'],message:"Please enter only letters"},alphanumeric:{name:"alphanumeric",validate:($)=>{if(!$)return!0;return/^[a-z0-9]+$/i.test(String($))||"Please enter only letters and numbers"},toHtml5:()=>['pattern="[a-zA-Z0-9]+"'],message:"Please enter only letters and numbers"},min:{name:"min",validate:($,Z)=>{if(!$)return!0;let Y=Number(Z[0]);if(typeof $==="string")return $.length>=Y||`Must be at least ${Y} characters`;if(typeof $==="number")return $>=Y||`Must be at least ${Y}`;if(Array.isArray($))return $.length>=Y||`Must have at least ${Y} items`;return!0},toHtml5:($)=>[`minlength="${$[0]}"`,`min="${$[0]}"`],message:"Must be at least {{param}} characters"},max:{name:"max",validate:($,Z)=>{if(!$)return!0;let Y=Number(Z[0]);if(typeof $==="string")return $.length<=Y||`Must be no more than ${Y} characters`;if(typeof $==="number")return $<=Y||`Must be no more than ${Y}`;if(Array.isArray($))return $.length<=Y||`Must have no more than ${Y} items`;return!0},toHtml5:($)=>[`maxlength="${$[0]}"`,`max="${$[0]}"`],message:"Must be no more than {{param}} characters"},between:{name:"between",validate:($,Z)=>{if(!$)return!0;let[Y,X]=Z.map(Number);if(typeof $==="string")return $.length>=Y&&$.length<=X||`Must be between ${Y} and ${X} characters`;if(typeof $==="number")return $>=Y&&$<=X||`Must be between ${Y} and ${X}`;return!0},toHtml5:($)=>[`minlength="${$[0]}"`,`maxlength="${$[1]}"`],message:"Must be between {{min}} and {{max}}"},confirmed:{name:"confirmed",validate:($,Z,Y)=>{let X=Object.keys(Y);for(let J of X)if(J.endsWith("_confirmation")&&Y[J]===$)return!0;return"Confirmation does not match"},message:"Confirmation does not match"},in:{name:"in",validate:($,Z)=>{if(!$)return!0;return Z.includes(String($))||`Must be one of: ${Z.join(", ")}`},message:"Must be one of: {{values}}"},notIn:{name:"notIn",validate:($,Z)=>{if(!$)return!0;return!Z.includes(String($))||`Must not be: ${Z.join(", ")}`},message:"Must not be: {{values}}"},regex:{name:"regex",validate:($,Z)=>{if(!$)return!0;try{return new RegExp(Z[0]).test(String($))||"Invalid format"}catch{return"Invalid format"}},toHtml5:($)=>[`pattern="${$[0]}"`],message:"Invalid format"},date:{name:"date",validate:($)=>{if(!$)return!0;let Z=new Date(String($));return!Number.isNaN(Z.getTime())||"Please enter a valid date"},toHtml5:()=>['type="date"'],message:"Please enter a valid date"},before:{name:"before",validate:($,Z)=>{if(!$)return!0;let Y=new Date(String($)),X=new Date(Z[0]);return Y<X||`Must be before ${Z[0]}`},toHtml5:($)=>[`max="${$[0]}"`],message:"Must be before {{date}}"},after:{name:"after",validate:($,Z)=>{if(!$)return!0;let Y=new Date(String($)),X=new Date(Z[0]);return Y>X||`Must be after ${Z[0]}`},toHtml5:($)=>[`min="${$[0]}"`],message:"Must be after {{date}}"},size:{name:"size",validate:($,Z)=>{if(!$)return!0;let Y=Number(Z[0]);if(typeof $==="string")return $.length===Y||`Must be exactly ${Y} characters`;if(Array.isArray($))return $.length===Y||`Must have exactly ${Y} items`;return!0},message:"Must be exactly {{size}}"},phone:{name:"phone",validate:($)=>{if(!$)return!0;return/^\+?\(?\d{1,4}\)?[-\s./\d]*$/.test(String($))||"Please enter a valid phone number"},toHtml5:()=>['type="tel"','pattern="\\+?\\(?\\d{1,4}\\)?[-\\s./\\d]*"'],message:"Please enter a valid phone number"}}});var DU={};l(DU,{waitForLocale:()=>GU,processTranslateDirective:()=>u3,preloadTranslationsBackground:()=>JU,preloadTranslations:()=>M2,loadTranslationLazy:()=>p5,loadTranslation:()=>D2,isLoading:()=>YU,isLoaded:()=>XU,isICUFormat:()=>b2,getTranslationSync:()=>I2,getTranslationCacheStats:()=>eq,getTranslationAsync:()=>QU,getTranslation:()=>_4,getLoadingState:()=>ZU,getLoadingLocales:()=>KU,formatICU:()=>E2,defaultI18nConfig:()=>B4,createTranslateFilter:()=>IU,clearTranslationCache:()=>tq,cancelPendingLoads:()=>zU});import h3 from"path";async function aq(){if(l5!==void 0)return l5;try{l5=(await import("@stacksjs/ts-i18n")).loadLocale??null}catch{l5=null}return l5}function tq($){if($)delete k0[$];else for(let Z of Object.keys(k0))delete k0[Z]}function eq(){let $=Object.entries(k0).map(([Z,Y])=>({locale:Z,loadedAt:new Date(Y.loadedAt),keyCount:T2(Y.translations)}));return{size:Object.keys(k0).length,locales:Object.keys(k0),entries:$}}function T2($,Z=0){for(let Y of Object.values($))if(Z++,Y&&typeof Y==="object"&&!Array.isArray(Y))Z=T2(Y,Z);return Z}function $U($,Z=0){if(Z<=0)return!1;return Date.now()-$.loadedAt>Z}function ZU($){if(k0[$])return"loaded";return G1[$]||"idle"}function YU($){return G1[$]==="loading"}function XU($){return!!k0[$]}async function M2($,Z){let{locales:Y,parallel:X=!0,priority:J={},onLocaleLoaded:Q,onComplete:G,onError:K}=$,z=X?Y:[...Y].sort((q,U)=>(J[U]||0)-(J[q]||0));if(X){let q=z.map(async(U)=>{try{await p5(U,Z),Q?.(U)}catch(W){K?.(U,W instanceof Error?W:Error(String(W)))}});await Promise.all(q)}else for(let q of z)try{await p5(q,Z),Q?.(q)}catch(U){K?.(q,U instanceof Error?U:Error(String(U)))}G?.()}function JU($,Z){queueMicrotask(()=>{M2($,Z).catch((Y)=>{if(Z.debug)console.error("Background preload error:",Y)})})}async function p5($,Z){if({...B4,...Z.i18n}.cache&&k0[$]){let J=k0[$],Q=Z.i18n?.cacheMaxAge??0;if(!$U(J,Q))return J.translations}if(p0[$]?.state==="loading")return p0[$].promise;G1[$]="loading";let X=d3($,Z).then((J)=>{return G1[$]="loaded",delete p0[$],J}).catch((J)=>{throw G1[$]="error",p0[$]={promise:X,state:"error",error:J instanceof Error?J:Error(String(J))},J});return p0[$]={promise:X,state:"loading"},X}function I2($){return k0[$]?.translations}async function QU($,Z){let Y=I2($);if(Y)return Y;return p5($,Z)}async function GU($,Z){if(k0[$])return k0[$].translations;if(p0[$]){if(Z)return Promise.race([p0[$].promise,new Promise((Y,X)=>setTimeout(()=>X(Error(`Timeout waiting for locale: ${$}`)),Z))]);return p0[$].promise}throw Error(`Locale "${$}" is not loading. Call loadTranslationLazy first.`)}function KU(){return Object.entries(G1).filter(([$,Z])=>Z==="loading").map(([$])=>$)}function zU($){if($)delete p0[$],delete G1[$];else{for(let Z of Object.keys(p0))delete p0[Z];for(let Z of Object.keys(G1))delete G1[Z]}}async function d3($,Z){let Y={...B4,...Z.i18n},X=h3.isAbsolute(Y.translationsDir)?Y.translationsDir:h3.resolve(Z.root||process.cwd(),Y.translationsDir);try{let J=await aq(),Q=J?await J($,{translationsDir:X,defaultLocale:Y.defaultLocale,sources:BU(Y.format)}):await qU($,Y,X);if(Q===void 0){if($!==Y.defaultLocale)return d3(Y.defaultLocale,Z);return{}}let G=Q;if(Y.cache)k0[$]={translations:G,loadedAt:Date.now(),locale:$};return G}catch(J){if(Z.debug)console.error(`Error loading translation file for locale "${$}":`,J);if($!==Y.defaultLocale)return d3(Y.defaultLocale,Z);return{}}}async function qU($,Z,Y){let X=h3.join(Y,`${$}${UU(Z.format)}`);try{let J=await import(X);return J.default||J}catch(J){try{let Q=await Bun.file(X).text();if(Z.format==="yaml"||Z.format==="yml")return WU(Q);if(Z.format==="json")return JSON.parse(Q);throw J}catch{return}}}function UU($){switch($){case"yaml":return".yaml";case"yml":return".yml";case"js":return".js";case"ts":return".ts";case"json":default:return".json"}}function WU($){let Z={},Y=$.split(`
|
|
3831
|
-
`),X=[{obj:Z,indent:-1}];for(let J of Y){let Q=J.replace(/#.*$/,"").trimEnd();if(!Q.trim())continue;let G=Q.search(/\S/);if(G===-1)continue;while(X.length>1&&X[X.length-1].indent>=G)X.pop();let K=X[X.length-1].obj,z=Q.match(/^(\s*)(\S[^:]*):\s*(.*)$/);if(z){let[,,q,U]=z,W=q.trim(),_=U.trim();if(_==="")K[W]={},X.push({obj:K[W],indent:G});else K[W]=_U(_)}}return Z}function _U($){if($.startsWith("'")&&$.endsWith("'")||$.startsWith('"')&&$.endsWith('"'))return $.slice(1,-1);let Z=$.toLowerCase();if(Z==="true"||Z==="yes")return!0;if(Z==="false"||Z==="no")return!1;if(Z==="null"||Z==="~")return null;let Y=Number($);if(!Number.isNaN(Y)&&$!=="")return Y;return $}function BU($){switch($){case"yaml":case"yml":return["yaml"];case"js":case"ts":return["ts"];case"json":default:return["json"]}}async function D2($,Z){return p5($,Z)}function jU($,Z){for(let Y of $){let X=Y.trim(),J=X.match(/^\{(\d+)\}\s*(.*)$/);if(J){let G=Number.parseInt(J[1],10);if(Z===G)return J[2];continue}let Q=X.match(/^\[(\d+),(\d+|\*)\]\s*(.*)$/);if(Q){let G=Number.parseInt(Q[1],10),K=Q[2]==="*"?Number.POSITIVE_INFINITY:Number.parseInt(Q[2],10);if(Z>=G&&Z<=K)return Q[3];continue}}if($.length===2)return Z===1?$[0].trim():$[1].trim();if(Z<$.length)return $[Z].trim();return $[$.length-1].trim()}function E2($,Z={}){return k2($,Z)}function k2($,Z){let Y="",X=0;while(X<$.length)if($[X]==="{"){let J=HU($,X);if(J===-1){Y+=$[X],X++;continue}let Q=$.slice(X+1,J);Y+=OU(Q,Z),X=J+1}else if($[X]==="'"&&X+1<$.length)if($[X+1]==="'")Y+="'",X+=2;else if($[X+1]==="{"||$[X+1]==="}")Y+=$[X+1],X+=2;else Y+=$[X],X++;else Y+=$[X],X++;return Y}function HU($,Z){let Y=0;for(let X=Z;X<$.length;X++)if($[X]==="{")Y++;else if($[X]==="}"){if(Y--,Y===0)return X}return-1}function OU($,Z){let Y=LU($);if(Y.length===0)return`{${$}}`;let X=Y[0].trim(),J=Z[X];if(Y.length===1)return J!==void 0?String(J):`{${X}}`;switch(Y[1].trim().toLowerCase()){case"plural":return FU(J,Y.slice(2).join(","),Z);case"select":return wU(J,Y.slice(2).join(","));case"selectordinal":return AU(J,Y.slice(2).join(","));case"number":return NU(J,Y[2]?.trim());case"date":return TU(J,Y[2]?.trim());case"time":return MU(J,Y[2]?.trim());default:return J!==void 0?String(J):`{${$}}`}}function LU($){let Z=[],Y="",X=0;for(let J=0;J<$.length;J++){let Q=$[J];if(Q==="{")X++,Y+=Q;else if(Q==="}")X--,Y+=Q;else if(Q===","&&X===0)Z.push(Y),Y="";else Y+=Q}if(Y)Z.push(Y);return Z}function FU($,Z,Y){let X=Number($)||0,J=m3(Z),Q=`=${X}`;if(J[Q])return g3(J[Q],X,Y);let G=VU(X);if(J[G])return g3(J[G],X,Y);if(J.other)return g3(J.other,X,Y);return String(X)}function g3($,Z,Y){let X=$.replace(/#/g,String(Z));return k2(X,Y)}function VU($){let Z=Math.abs($),Y=Math.floor(Z),X=String($).includes(".")?String($).split(".")[1].length:0;if(Y===1&&X===0)return"one";return"other"}function wU($,Z){let Y=String($||""),X=m3(Z);if(X[Y])return X[Y];return X.other||String($)}function AU($,Z){let Y=Number($)||0,X=m3(Z),J=RU(Y);if(X[J])return X[J].replace(/#/g,String(Y));if(X.other)return X.other.replace(/#/g,String(Y));return String(Y)}function RU($){let Z=Math.abs($),Y=Z%10,X=Z%100;if(Y===1&&X!==11)return"one";if(Y===2&&X!==12)return"two";if(Y===3&&X!==13)return"few";return"other"}function m3($){let Z={},Y=/(\w+|=\d+)\s*\{([^{}]*(?:\{[^{}]*\}[^{}]*)*)\}/g,X=Y.exec($);while(X!==null)Z[X[1]]=X[2],X=Y.exec($);return Z}function NU($,Z){let Y=Number($);if(Number.isNaN(Y))return String($);switch(Z){case"integer":return Math.floor(Y).toLocaleString();case"percent":return`${(Y*100).toFixed(0)}%`;case"currency":return Y.toLocaleString(void 0,{style:"currency",currency:"USD"});default:return Y.toLocaleString()}}function TU($,Z){let Y=$ instanceof Date?$:new Date(String($));if(Number.isNaN(Y.getTime()))return String($);let X={};switch(Z){case"short":X.dateStyle="short";break;case"medium":X.dateStyle="medium";break;case"long":X.dateStyle="long";break;case"full":X.dateStyle="full";break;default:X.dateStyle="medium"}return Y.toLocaleDateString(void 0,X)}function MU($,Z){let Y=$ instanceof Date?$:new Date(String($));if(Number.isNaN(Y.getTime()))return String($);let X={};switch(Z){case"short":X.timeStyle="short";break;case"medium":X.timeStyle="medium";break;case"long":X.timeStyle="long";break;case"full":X.timeStyle="full";break;default:X.timeStyle="short"}return Y.toLocaleTimeString(void 0,X)}function b2($){return/\{[^}]+,\s*(?:plural|select|selectordinal|number|date|time)\s*,/.test($)}function _4($,Z,Y=!0,X={}){let J=$.split("."),Q=Z;for(let K of J){if(Q===void 0||Q===null)break;Q=Q[K]}if(Q===void 0||Q===null)return Y?$:"";let G=String(Q);if(b2(G))return E2(G,X);if(G.includes("|")&&"count"in X){let K=Number(X.count),z=G.split("|");G=jU(z,K)}for(let[K,z]of Object.entries(X)){let q=K.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");G=G.replace(new RegExp(`:${q}`,"g"),String(z))}return G}async function u3($,Z,Y,X){let J=$,Q=/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\})\s*)?\)([\s\S]*?)@endtranslate/g,G={...B4,...X.i18n},K=await D2(G.locale,X);Z.__translations=K,Z.__locale=G.locale,Z.__i18nConfig=G,J=await N2(J,Q,async(U,W,_,B,j)=>{try{let H={};if(_)try{let F=[()=>JSON.parse(_),()=>{let O=`{"data":${_}}`,V=JSON.parse(O);return typeof V.data==="object"?V.data:{}},()=>{return H0(_,Z)}];for(let O of F)try{if(H=O(),Object.keys(H).length>0)break}catch{}}catch(F){if(X.debug)console.error("Error parsing parameters for @translate directive:",F)}return _4(W,K,G.fallbackToKey,H)||B.trim()}catch(H){if(X.debug)console.error("Error processing @translate directive:",H);return r("Translate",`Error in @translate('${W}'): ${H instanceof Error?H.message:String(H)}`,p.EVALUATION_ERROR)}});let z=/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]+\})\s*)?\)/g;if(X.debug){console.warn(`Processing translations in template. Sections: ${J.includes("<h2>Translation with Parameters</h2>")?"Parameters section found":"Parameters section missing"}`);let U=[...J.matchAll(z)];console.warn(`Found ${U.length} @translate matches`),U.forEach((W,_)=>console.warn(`Match ${_}: ${W[0]}, Key: ${W[1]}, Params: ${W[2]||"none"}`))}return J=await N2(J,/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\})\s*)?\)/g,async(U,W,_,B)=>{try{let j={};if(_)try{let H=[()=>JSON.parse(_),()=>{let L=`{"data":${_}}`,F=JSON.parse(L);return typeof F.data==="object"?F.data:{}},()=>{return H0(_,Z)}];for(let L of H)try{if(j=L(),Object.keys(j).length>0)break}catch{}}catch(H){if(X.debug)console.error("Error parsing parameters for @translate directive:",H)}return _4(W,K,G.fallbackToKey,j)}catch(j){if(X.debug)console.error("Error processing @translate directive:",j);return r("Translate",`Error in @translate('${W}'): ${j instanceof Error?j.message:String(j)}`,p.EVALUATION_ERROR)}}),J}async function N2($,Z,Y){let X=[];return $.replace(Z,(Q,...G)=>{let K=Y(Q,...G).then((z)=>({match:Q,replacement:z}));return X.push(K),Q}),(await Promise.all(X)).reduce((Q,{match:G,replacement:K})=>Q.replace(G,K),$)}function IU($,Z=!0){return(Y,X={})=>{return _4(Y,$,Z,X)}}var l5,B4,k0,p0,G1;var S2=
|
|
3830
|
+
</script>`.trim()}var P3,w2,A2;var R2=P(()=>{w0();P3={input:"form-control",inputError:"is-invalid",checkInput:"form-check-input",label:"form-label",errorFeedback:"invalid-feedback"};w2={required:($,Z,Y)=>{if($===void 0||$===null||$===""||Array.isArray($)&&$.length===0)return`The ${Y} field is required.`;return null},email:($,Z,Y)=>{if(!$)return null;if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String($)))return`The ${Y} field must be a valid email address.`;return null},min:($,Z,Y)=>{if(!$)return null;let X=Number(Z[0]);if(typeof $==="string"&&$.length<X)return`The ${Y} field must be at least ${X} characters.`;if(typeof $==="number"&&$<X)return`The ${Y} field must be at least ${X}.`;if(Array.isArray($)&&$.length<X)return`The ${Y} field must have at least ${X} items.`;return null},max:($,Z,Y)=>{if(!$)return null;let X=Number(Z[0]);if(typeof $==="string"&&$.length>X)return`The ${Y} field must not exceed ${X} characters.`;if(typeof $==="number"&&$>X)return`The ${Y} field must not exceed ${X}.`;if(Array.isArray($)&&$.length>X)return`The ${Y} field must not have more than ${X} items.`;return null},confirmed:($,Z,Y)=>{if(Z[0]!==void 0&&$!==Z[0])return`The ${Y} confirmation does not match.`;return null},numeric:($,Z,Y)=>{if(!$)return null;if(Number.isNaN(Number($)))return`The ${Y} field must be a number.`;return null},integer:($,Z,Y)=>{if(!$)return null;if(!Number.isInteger(Number($)))return`The ${Y} field must be an integer.`;return null},alpha:($,Z,Y)=>{if(!$)return null;if(!/^[a-z]+$/i.test(String($)))return`The ${Y} field must only contain letters.`;return null},alphanumeric:($,Z,Y)=>{if(!$)return null;if(!/^[a-z0-9]+$/i.test(String($)))return`The ${Y} field must only contain letters and numbers.`;return null},url:($,Z,Y)=>{if(!$)return null;try{return new URL(String($))?null:null}catch{return`The ${Y} field must be a valid URL.`}},regex:($,Z,Y)=>{if(!$)return null;try{if(!new RegExp(Z[0]).test(String($)))return`The ${Y} field format is invalid.`;return null}catch{return`The ${Y} field has an invalid validation pattern.`}},in:($,Z,Y)=>{if(!$)return null;if(!Z.includes(String($)))return`The ${Y} field must be one of: ${Z.join(", ")}.`;return null},notIn:($,Z,Y)=>{if(!$)return null;if(Z.includes(String($)))return`The ${Y} field must not be: ${Z.join(", ")}.`;return null},date:($,Z,Y)=>{if(!$)return null;let X=new Date($);if(Number.isNaN(X.getTime()))return`The ${Y} field must be a valid date.`;return null},before:($,Z,Y)=>{if(!$)return null;let X=new Date($),J=new Date(Z[0]);if(X>=J)return`The ${Y} field must be before ${Z[0]}.`;return null},after:($,Z,Y)=>{if(!$)return null;let X=new Date($),J=new Date(Z[0]);if(X<=J)return`The ${Y} field must be after ${Z[0]}.`;return null}};A2={required:{name:"required",validate:($)=>{if($===null||$===void 0||$==="")return"This field is required";if(Array.isArray($)&&$.length===0)return"This field is required";return!0},toHtml5:()=>["required"],message:"This field is required"},email:{name:"email",validate:($)=>{if(!$)return!0;return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String($))||"Please enter a valid email address"},toHtml5:()=>['type="email"'],message:"Please enter a valid email address"},url:{name:"url",validate:($)=>{if(!$)return!0;try{return new URL(String($)).protocol.startsWith("http")||"Please enter a valid URL"}catch{return"Please enter a valid URL"}},toHtml5:()=>['type="url"'],message:"Please enter a valid URL"},numeric:{name:"numeric",validate:($)=>{if(!$)return!0;return!Number.isNaN(Number($))||"Please enter a number"},toHtml5:()=>['type="number"'],message:"Please enter a number"},integer:{name:"integer",validate:($)=>{if(!$)return!0;let Z=Number($);return Number.isInteger(Z)||"Please enter a whole number"},toHtml5:()=>['type="number"','step="1"'],message:"Please enter a whole number"},alpha:{name:"alpha",validate:($)=>{if(!$)return!0;return/^[a-z]+$/i.test(String($))||"Please enter only letters"},toHtml5:()=>['pattern="[a-zA-Z]+"'],message:"Please enter only letters"},alphanumeric:{name:"alphanumeric",validate:($)=>{if(!$)return!0;return/^[a-z0-9]+$/i.test(String($))||"Please enter only letters and numbers"},toHtml5:()=>['pattern="[a-zA-Z0-9]+"'],message:"Please enter only letters and numbers"},min:{name:"min",validate:($,Z)=>{if(!$)return!0;let Y=Number(Z[0]);if(typeof $==="string")return $.length>=Y||`Must be at least ${Y} characters`;if(typeof $==="number")return $>=Y||`Must be at least ${Y}`;if(Array.isArray($))return $.length>=Y||`Must have at least ${Y} items`;return!0},toHtml5:($)=>[`minlength="${$[0]}"`,`min="${$[0]}"`],message:"Must be at least {{param}} characters"},max:{name:"max",validate:($,Z)=>{if(!$)return!0;let Y=Number(Z[0]);if(typeof $==="string")return $.length<=Y||`Must be no more than ${Y} characters`;if(typeof $==="number")return $<=Y||`Must be no more than ${Y}`;if(Array.isArray($))return $.length<=Y||`Must have no more than ${Y} items`;return!0},toHtml5:($)=>[`maxlength="${$[0]}"`,`max="${$[0]}"`],message:"Must be no more than {{param}} characters"},between:{name:"between",validate:($,Z)=>{if(!$)return!0;let[Y,X]=Z.map(Number);if(typeof $==="string")return $.length>=Y&&$.length<=X||`Must be between ${Y} and ${X} characters`;if(typeof $==="number")return $>=Y&&$<=X||`Must be between ${Y} and ${X}`;return!0},toHtml5:($)=>[`minlength="${$[0]}"`,`maxlength="${$[1]}"`],message:"Must be between {{min}} and {{max}}"},confirmed:{name:"confirmed",validate:($,Z,Y)=>{let X=Object.keys(Y);for(let J of X)if(J.endsWith("_confirmation")&&Y[J]===$)return!0;return"Confirmation does not match"},message:"Confirmation does not match"},in:{name:"in",validate:($,Z)=>{if(!$)return!0;return Z.includes(String($))||`Must be one of: ${Z.join(", ")}`},message:"Must be one of: {{values}}"},notIn:{name:"notIn",validate:($,Z)=>{if(!$)return!0;return!Z.includes(String($))||`Must not be: ${Z.join(", ")}`},message:"Must not be: {{values}}"},regex:{name:"regex",validate:($,Z)=>{if(!$)return!0;try{return new RegExp(Z[0]).test(String($))||"Invalid format"}catch{return"Invalid format"}},toHtml5:($)=>[`pattern="${$[0]}"`],message:"Invalid format"},date:{name:"date",validate:($)=>{if(!$)return!0;let Z=new Date(String($));return!Number.isNaN(Z.getTime())||"Please enter a valid date"},toHtml5:()=>['type="date"'],message:"Please enter a valid date"},before:{name:"before",validate:($,Z)=>{if(!$)return!0;let Y=new Date(String($)),X=new Date(Z[0]);return Y<X||`Must be before ${Z[0]}`},toHtml5:($)=>[`max="${$[0]}"`],message:"Must be before {{date}}"},after:{name:"after",validate:($,Z)=>{if(!$)return!0;let Y=new Date(String($)),X=new Date(Z[0]);return Y>X||`Must be after ${Z[0]}`},toHtml5:($)=>[`min="${$[0]}"`],message:"Must be after {{date}}"},size:{name:"size",validate:($,Z)=>{if(!$)return!0;let Y=Number(Z[0]);if(typeof $==="string")return $.length===Y||`Must be exactly ${Y} characters`;if(Array.isArray($))return $.length===Y||`Must have exactly ${Y} items`;return!0},message:"Must be exactly {{size}}"},phone:{name:"phone",validate:($)=>{if(!$)return!0;return/^\+?\(?\d{1,4}\)?[-\s./\d]*$/.test(String($))||"Please enter a valid phone number"},toHtml5:()=>['type="tel"','pattern="\\+?\\(?\\d{1,4}\\)?[-\\s./\\d]*"'],message:"Please enter a valid phone number"}}});var DU={};l(DU,{waitForLocale:()=>GU,processTranslateDirective:()=>u3,preloadTranslationsBackground:()=>JU,preloadTranslations:()=>M2,loadTranslationLazy:()=>p5,loadTranslation:()=>D2,isLoading:()=>YU,isLoaded:()=>XU,isICUFormat:()=>b2,getTranslationSync:()=>I2,getTranslationCacheStats:()=>eq,getTranslationAsync:()=>QU,getTranslation:()=>_4,getLoadingState:()=>ZU,getLoadingLocales:()=>KU,formatICU:()=>E2,defaultI18nConfig:()=>B4,createTranslateFilter:()=>IU,clearTranslationCache:()=>tq,cancelPendingLoads:()=>zU});import h3 from"path";async function aq(){if(l5!==void 0)return l5;try{l5=(await import("@stacksjs/ts-i18n")).loadLocale??null}catch{l5=null}return l5}function tq($){if($)delete k0[$];else for(let Z of Object.keys(k0))delete k0[Z]}function eq(){let $=Object.entries(k0).map(([Z,Y])=>({locale:Z,loadedAt:new Date(Y.loadedAt),keyCount:T2(Y.translations)}));return{size:Object.keys(k0).length,locales:Object.keys(k0),entries:$}}function T2($,Z=0){for(let Y of Object.values($))if(Z++,Y&&typeof Y==="object"&&!Array.isArray(Y))Z=T2(Y,Z);return Z}function $U($,Z=0){if(Z<=0)return!1;return Date.now()-$.loadedAt>Z}function ZU($){if(k0[$])return"loaded";return G1[$]||"idle"}function YU($){return G1[$]==="loading"}function XU($){return!!k0[$]}async function M2($,Z){let{locales:Y,parallel:X=!0,priority:J={},onLocaleLoaded:Q,onComplete:G,onError:K}=$,z=X?Y:[...Y].sort((q,U)=>(J[U]||0)-(J[q]||0));if(X){let q=z.map(async(U)=>{try{await p5(U,Z),Q?.(U)}catch(W){K?.(U,W instanceof Error?W:Error(String(W)))}});await Promise.all(q)}else for(let q of z)try{await p5(q,Z),Q?.(q)}catch(U){K?.(q,U instanceof Error?U:Error(String(U)))}G?.()}function JU($,Z){queueMicrotask(()=>{M2($,Z).catch((Y)=>{if(Z.debug)console.error("Background preload error:",Y)})})}async function p5($,Z){if({...B4,...Z.i18n}.cache&&k0[$]){let J=k0[$],Q=Z.i18n?.cacheMaxAge??0;if(!$U(J,Q))return J.translations}if(p0[$]?.state==="loading")return p0[$].promise;G1[$]="loading";let X=d3($,Z).then((J)=>{return G1[$]="loaded",delete p0[$],J}).catch((J)=>{throw G1[$]="error",p0[$]={promise:X,state:"error",error:J instanceof Error?J:Error(String(J))},J});return p0[$]={promise:X,state:"loading"},X}function I2($){return k0[$]?.translations}async function QU($,Z){let Y=I2($);if(Y)return Y;return p5($,Z)}async function GU($,Z){if(k0[$])return k0[$].translations;if(p0[$]){if(Z)return Promise.race([p0[$].promise,new Promise((Y,X)=>setTimeout(()=>X(Error(`Timeout waiting for locale: ${$}`)),Z))]);return p0[$].promise}throw Error(`Locale "${$}" is not loading. Call loadTranslationLazy first.`)}function KU(){return Object.entries(G1).filter(([$,Z])=>Z==="loading").map(([$])=>$)}function zU($){if($)delete p0[$],delete G1[$];else{for(let Z of Object.keys(p0))delete p0[Z];for(let Z of Object.keys(G1))delete G1[Z]}}async function d3($,Z){let Y={...B4,...Z.i18n},X=h3.isAbsolute(Y.translationsDir)?Y.translationsDir:h3.resolve(Z.root||process.cwd(),Y.translationsDir);try{let J=await aq(),Q=J?await J($,{translationsDir:X,defaultLocale:Y.defaultLocale,sources:BU(Y.format)}):await qU($,Y,X);if(Q===void 0){if($!==Y.defaultLocale)return d3(Y.defaultLocale,Z);return{}}let G=Q;if(Y.cache)k0[$]={translations:G,loadedAt:Date.now(),locale:$};return G}catch(J){if(Z.debug)console.error(`Error loading translation file for locale "${$}":`,J);if($!==Y.defaultLocale)return d3(Y.defaultLocale,Z);return{}}}async function qU($,Z,Y){let X=h3.join(Y,`${$}${UU(Z.format)}`);try{let J=await import(X);return J.default||J}catch(J){try{let Q=await Bun.file(X).text();if(Z.format==="yaml"||Z.format==="yml")return WU(Q);if(Z.format==="json")return JSON.parse(Q);throw J}catch{return}}}function UU($){switch($){case"yaml":return".yaml";case"yml":return".yml";case"js":return".js";case"ts":return".ts";case"json":default:return".json"}}function WU($){let Z={},Y=$.split(`
|
|
3831
|
+
`),X=[{obj:Z,indent:-1}];for(let J of Y){let Q=J.replace(/#.*$/,"").trimEnd();if(!Q.trim())continue;let G=Q.search(/\S/);if(G===-1)continue;while(X.length>1&&X[X.length-1].indent>=G)X.pop();let K=X[X.length-1].obj,z=Q.match(/^(\s*)(\S[^:]*):\s*(.*)$/);if(z){let[,,q,U]=z,W=q.trim(),_=U.trim();if(_==="")K[W]={},X.push({obj:K[W],indent:G});else K[W]=_U(_)}}return Z}function _U($){if($.startsWith("'")&&$.endsWith("'")||$.startsWith('"')&&$.endsWith('"'))return $.slice(1,-1);let Z=$.toLowerCase();if(Z==="true"||Z==="yes")return!0;if(Z==="false"||Z==="no")return!1;if(Z==="null"||Z==="~")return null;let Y=Number($);if(!Number.isNaN(Y)&&$!=="")return Y;return $}function BU($){switch($){case"yaml":case"yml":return["yaml"];case"js":case"ts":return["ts"];case"json":default:return["json"]}}async function D2($,Z){return p5($,Z)}function jU($,Z){for(let Y of $){let X=Y.trim(),J=X.match(/^\{(\d+)\}\s*(.*)$/);if(J){let G=Number.parseInt(J[1],10);if(Z===G)return J[2];continue}let Q=X.match(/^\[(\d+),(\d+|\*)\]\s*(.*)$/);if(Q){let G=Number.parseInt(Q[1],10),K=Q[2]==="*"?Number.POSITIVE_INFINITY:Number.parseInt(Q[2],10);if(Z>=G&&Z<=K)return Q[3];continue}}if($.length===2)return Z===1?$[0].trim():$[1].trim();if(Z<$.length)return $[Z].trim();return $[$.length-1].trim()}function E2($,Z={}){return k2($,Z)}function k2($,Z){let Y="",X=0;while(X<$.length)if($[X]==="{"){let J=HU($,X);if(J===-1){Y+=$[X],X++;continue}let Q=$.slice(X+1,J);Y+=OU(Q,Z),X=J+1}else if($[X]==="'"&&X+1<$.length)if($[X+1]==="'")Y+="'",X+=2;else if($[X+1]==="{"||$[X+1]==="}")Y+=$[X+1],X+=2;else Y+=$[X],X++;else Y+=$[X],X++;return Y}function HU($,Z){let Y=0;for(let X=Z;X<$.length;X++)if($[X]==="{")Y++;else if($[X]==="}"){if(Y--,Y===0)return X}return-1}function OU($,Z){let Y=LU($);if(Y.length===0)return`{${$}}`;let X=Y[0].trim(),J=Z[X];if(Y.length===1)return J!==void 0?String(J):`{${X}}`;switch(Y[1].trim().toLowerCase()){case"plural":return FU(J,Y.slice(2).join(","),Z);case"select":return wU(J,Y.slice(2).join(","));case"selectordinal":return AU(J,Y.slice(2).join(","));case"number":return NU(J,Y[2]?.trim());case"date":return TU(J,Y[2]?.trim());case"time":return MU(J,Y[2]?.trim());default:return J!==void 0?String(J):`{${$}}`}}function LU($){let Z=[],Y="",X=0;for(let J=0;J<$.length;J++){let Q=$[J];if(Q==="{")X++,Y+=Q;else if(Q==="}")X--,Y+=Q;else if(Q===","&&X===0)Z.push(Y),Y="";else Y+=Q}if(Y)Z.push(Y);return Z}function FU($,Z,Y){let X=Number($)||0,J=m3(Z),Q=`=${X}`;if(J[Q])return g3(J[Q],X,Y);let G=VU(X);if(J[G])return g3(J[G],X,Y);if(J.other)return g3(J.other,X,Y);return String(X)}function g3($,Z,Y){let X=$.replace(/#/g,String(Z));return k2(X,Y)}function VU($){let Z=Math.abs($),Y=Math.floor(Z),X=String($).includes(".")?String($).split(".")[1].length:0;if(Y===1&&X===0)return"one";return"other"}function wU($,Z){let Y=String($||""),X=m3(Z);if(X[Y])return X[Y];return X.other||String($)}function AU($,Z){let Y=Number($)||0,X=m3(Z),J=RU(Y);if(X[J])return X[J].replace(/#/g,String(Y));if(X.other)return X.other.replace(/#/g,String(Y));return String(Y)}function RU($){let Z=Math.abs($),Y=Z%10,X=Z%100;if(Y===1&&X!==11)return"one";if(Y===2&&X!==12)return"two";if(Y===3&&X!==13)return"few";return"other"}function m3($){let Z={},Y=/(\w+|=\d+)\s*\{([^{}]*(?:\{[^{}]*\}[^{}]*)*)\}/g,X=Y.exec($);while(X!==null)Z[X[1]]=X[2],X=Y.exec($);return Z}function NU($,Z){let Y=Number($);if(Number.isNaN(Y))return String($);switch(Z){case"integer":return Math.floor(Y).toLocaleString();case"percent":return`${(Y*100).toFixed(0)}%`;case"currency":return Y.toLocaleString(void 0,{style:"currency",currency:"USD"});default:return Y.toLocaleString()}}function TU($,Z){let Y=$ instanceof Date?$:new Date(String($));if(Number.isNaN(Y.getTime()))return String($);let X={};switch(Z){case"short":X.dateStyle="short";break;case"medium":X.dateStyle="medium";break;case"long":X.dateStyle="long";break;case"full":X.dateStyle="full";break;default:X.dateStyle="medium"}return Y.toLocaleDateString(void 0,X)}function MU($,Z){let Y=$ instanceof Date?$:new Date(String($));if(Number.isNaN(Y.getTime()))return String($);let X={};switch(Z){case"short":X.timeStyle="short";break;case"medium":X.timeStyle="medium";break;case"long":X.timeStyle="long";break;case"full":X.timeStyle="full";break;default:X.timeStyle="short"}return Y.toLocaleTimeString(void 0,X)}function b2($){return/\{[^}]+,\s*(?:plural|select|selectordinal|number|date|time)\s*,/.test($)}function _4($,Z,Y=!0,X={}){let J=$.split("."),Q=Z;for(let K of J){if(Q===void 0||Q===null)break;Q=Q[K]}if(Q===void 0||Q===null)return Y?$:"";let G=String(Q);if(b2(G))return E2(G,X);if(G.includes("|")&&"count"in X){let K=Number(X.count),z=G.split("|");G=jU(z,K)}for(let[K,z]of Object.entries(X)){let q=K.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");G=G.replace(new RegExp(`:${q}`,"g"),String(z))}return G}async function u3($,Z,Y,X){let J=$,Q=/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\})\s*)?\)([\s\S]*?)@endtranslate/g,G={...B4,...X.i18n},K=await D2(G.locale,X);Z.__translations=K,Z.__locale=G.locale,Z.__i18nConfig=G,J=await N2(J,Q,async(U,W,_,B,j)=>{try{let H={};if(_)try{let F=[()=>JSON.parse(_),()=>{let O=`{"data":${_}}`,V=JSON.parse(O);return typeof V.data==="object"?V.data:{}},()=>{return H0(_,Z)}];for(let O of F)try{if(H=O(),Object.keys(H).length>0)break}catch{}}catch(F){if(X.debug)console.error("Error parsing parameters for @translate directive:",F)}return _4(W,K,G.fallbackToKey,H)||B.trim()}catch(H){if(X.debug)console.error("Error processing @translate directive:",H);return r("Translate",`Error in @translate('${W}'): ${H instanceof Error?H.message:String(H)}`,p.EVALUATION_ERROR)}});let z=/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]+\})\s*)?\)/g;if(X.debug){console.warn(`Processing translations in template. Sections: ${J.includes("<h2>Translation with Parameters</h2>")?"Parameters section found":"Parameters section missing"}`);let U=[...J.matchAll(z)];console.warn(`Found ${U.length} @translate matches`),U.forEach((W,_)=>console.warn(`Match ${_}: ${W[0]}, Key: ${W[1]}, Params: ${W[2]||"none"}`))}return J=await N2(J,/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\})\s*)?\)/g,async(U,W,_,B)=>{try{let j={};if(_)try{let H=[()=>JSON.parse(_),()=>{let L=`{"data":${_}}`,F=JSON.parse(L);return typeof F.data==="object"?F.data:{}},()=>{return H0(_,Z)}];for(let L of H)try{if(j=L(),Object.keys(j).length>0)break}catch{}}catch(H){if(X.debug)console.error("Error parsing parameters for @translate directive:",H)}return _4(W,K,G.fallbackToKey,j)}catch(j){if(X.debug)console.error("Error processing @translate directive:",j);return r("Translate",`Error in @translate('${W}'): ${j instanceof Error?j.message:String(j)}`,p.EVALUATION_ERROR)}}),J}async function N2($,Z,Y){let X=[];return $.replace(Z,(Q,...G)=>{let K=Y(Q,...G).then((z)=>({match:Q,replacement:z}));return X.push(K),Q}),(await Promise.all(X)).reduce((Q,{match:G,replacement:K})=>Q.replace(G,K),$)}function IU($,Z=!0){return(Y,X={})=>{return _4(Y,$,Z,X)}}var l5,B4,k0,p0,G1;var S2=P(()=>{t0();w0();B4={defaultLocale:"en",locale:"en",translationsDir:"translations",format:"yaml",fallbackToKey:!0,cache:!0},k0={},p0={},G1={}});var c3={};l(c3,{streamingSuspenseDirective:()=>P2,streamToResponse:()=>hU,streamTemplateSimple:()=>vU,streamTemplate:()=>kU,renderStreamingPage:()=>SU,registerStreamingDirectives:()=>fU,processStreamDirectives:()=>CU,processSectionDirectives:()=>gU,islandDirective:()=>v2,generateHydrationRuntime:()=>dU,extractStreamBoundaries:()=>PU,createStreamRenderer:()=>xU,buildSuspenseResolveScript:()=>p3,SUSPENSE_RESOLVER_RUNTIME:()=>C2});import j4 from"path";function EU($){let Z=[],Y=0,X;y2.lastIndex=0;while((X=y2.exec($))!==null){if(X.index>Y){let G=$.slice(Y,X.index);if(G.trim())Z.push({type:Z.length===0?"shell":"content",content:G})}let J=X[1],Q=X[2];Z.push({type:"suspense",name:J,content:Q}),Y=X.index+X[0].length}if(Y<$.length){let J=$.slice(Y);if(J.trim())Z.push({type:Z.length===0?"shell":"content",content:J})}if(Z.length===0)Z.push({type:"shell",content:$});return Z}async function kU($,Z={},Y={}){let X={...P1,...Y,streaming:{...l3,...Y.streaming}},J=X.streaming?.bufferSize||16384;return new ReadableStream({async start(Q){try{let G=await Bun.file($).text(),K=G.match(/<script\b[^>]*\bserver\b[^>]*>([\s\S]*?)<\/script>/i),z=K?K[1]:"",q=G.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),U={...Z,__filename:$,__dirname:j4.dirname($)};if(z.trim())await K1(z,U,$);let W=EU(q),_=new Set;if(!W.some((j)=>j.type==="suspense")){let j=X.streaming?.strategy||"auto",H=new RegExp(d1.source,"g");if(!(j!=="manual"&&H.test(q))){let F=await _0(q,U,$,X,_);for(let O=0;O<F.length;O+=J)Q.enqueue(F.slice(O,O+J)),await new Promise((V)=>setTimeout(V,0))}else{let F=[],O=new RegExp(d1.source,"g"),V;while((V=O.exec(q))!==null)F.push({name:V[1],content:V[2],start:V.index,end:V.index+V[0].length});let w=0;for(let A of F){if(A.start>w){let N=q.slice(w,A.start);if(N.trim()){let M=await _0(N,U,$,X,_);Q.enqueue(M),await new Promise((T)=>setTimeout(T,0))}}let R=await _0(A.content,U,$,X,_);Q.enqueue(R),await new Promise((N)=>setTimeout(N,0)),w=A.end}if(w<q.length){let A=q.slice(w);if(A.trim()){let R=await _0(A,U,$,X,_);Q.enqueue(R)}}}}else{let j=new Map;for(let L of W)if(L.type==="shell"||L.type==="content"){let F=await _0(L.content,U,$,X,_);Q.enqueue(F)}else if(L.type==="suspense"&&L.name){let F=`stx-suspense-${L.name}`;Q.enqueue(`<div id="${F}" data-suspense="${L.name}" style="display:contents;">
|
|
3832
3832
|
<template data-suspense-fallback>Loading...</template>
|
|
3833
3833
|
</div>`),j.set(L.name,_0(L.content,U,$,X,_))}Q.enqueue(`
|
|
3834
3834
|
<script>
|
|
@@ -4014,25 +4014,25 @@ else {
|
|
|
4014
4014
|
}
|
|
4015
4015
|
};
|
|
4016
4016
|
})();
|
|
4017
|
-
</script>`,yU,P2,v2;var i3=
|
|
4017
|
+
</script>`,yU,P2,v2;var i3=P(()=>{v5();r0();H4();O0();l3={enabled:!0,bufferSize:16384,strategy:"auto",timeout:30000},d1=/<!-- @section:([\w-]+) -->([\s\S]*?)<!-- @endsection:\1 -->/g,y2=/<!-- @suspense:([\w-]+) -->([\s\S]*?)<!-- @endsuspense:\1 -->/g;yU=/@stream\s*\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)@endstream/gi;P2={name:"suspense",hasEndTag:!0,handler:($,Z,Y,X)=>{if(!Z||Z.length===0)throw Error("Suspense directive requires a name parameter");let J=Z[0].replace(/['"`]/g,"");return`<!-- @suspense:${J} -->${$}<!-- @endsuspense:${J} -->`}},v2={name:"island",hasEndTag:!0,handler:($,Z,Y,X)=>{if(!Z||Z.length===0)throw Error("Island directive requires a name parameter");let J=Z[0].replace(/['"`]/g,""),Q=Z[1]?Z[1].replace(/['"`]/g,""):"lazy",G=`island-${J}-${Math.random().toString(36).substring(2,9)}`,K=$.match(/<script\s+props\s*>([\s\S]*?)<\/script>/i),z=K?K[1].trim():"",q=K?$.replace(K[0],""):$;return`<div data-island="${J}" data-island-id="${G}" data-priority="${Q}">
|
|
4018
4018
|
${q}
|
|
4019
4019
|
<script type="application/json" data-island-props="${G}">
|
|
4020
4020
|
${z?`{${z}}`:"{}"}
|
|
4021
4021
|
</script>
|
|
4022
4022
|
</div>`}}});var g2={};l(g2,{warnUnbalancedTags:()=>n3,findUnbalancedTags:()=>f2});function F1($){return $.replace(/[^\n]/g," ")}function f2($){let Z=$.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,F1).replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,F1).replace(/<!--[\s\S]*?-->/g,F1).replace(/\{\{\{[\s\S]*?\}\}\}/g,F1).replace(/\{\{[\s\S]*?\}\}/g,F1).replace(/\{!![\s\S]*?!!\}/g,F1).replace(/"[^"]*"/g,F1).replace(/'[^']*'/g,F1),Y=new Map,X=new Map,J=/<(\/?)([A-Za-z][\w-]*)\b[^>]*?(\/?)>/g,Q;while((Q=J.exec(Z))!==null){let K=Q[1]==="/",z=Q[2],q=Q[3]==="/";if(mU.has(z.toLowerCase()))continue;if(q)continue;if(K)X.set(z,(X.get(z)??0)+1);else{let U=Y.get(z);if(U)U.count++;else{let W=Z.slice(0,Q.index).split(`
|
|
4023
|
-
`).length;Y.set(z,{count:1,firstLine:W})}}}let G=[];for(let K of new Set([...Y.keys(),...X.keys()])){if(uU.has(K.toLowerCase()))continue;let z=Y.get(K)?.count??0,q=X.get(K)??0;if(z!==q)G.push({tag:K,opened:z,closed:q,firstOpenLine:Y.get(K)?.firstLine??0})}return G}function n3($,Z){let Y;try{Y=f2($)}catch{return}if(Y.length===0)return;let X=`${Z}:${$.length}`;if(x2.has(X))return;x2.add(X);let J=Z?Z.split(/[/\\]/).pop()||Z:"template";for(let{tag:Q,opened:G,closed:K,firstOpenLine:z}of Y)if(G>K){let q=z?` (first opened at line ${z})`:"";console.warn(`[stx] ${J}: <${Q}> ${G} opened, ${K} closed \u2014 an unclosed <${Q}>${q} may swallow the content that follows it.`)}else console.warn(`[stx] ${J}: <${Q}> ${G} opened, ${K} closed \u2014 ${K-G} stray </${Q}>.`)}var mU,uU,x2;var o3=
|
|
4023
|
+
`).length;Y.set(z,{count:1,firstLine:W})}}}let G=[];for(let K of new Set([...Y.keys(),...X.keys()])){if(uU.has(K.toLowerCase()))continue;let z=Y.get(K)?.count??0,q=X.get(K)??0;if(z!==q)G.push({tag:K,opened:z,closed:q,firstOpenLine:Y.get(K)?.firstLine??0})}return G}function n3($,Z){let Y;try{Y=f2($)}catch{return}if(Y.length===0)return;let X=`${Z}:${$.length}`;if(x2.has(X))return;x2.add(X);let J=Z?Z.split(/[/\\]/).pop()||Z:"template";for(let{tag:Q,opened:G,closed:K,firstOpenLine:z}of Y)if(G>K){let q=z?` (first opened at line ${z})`:"";console.warn(`[stx] ${J}: <${Q}> ${G} opened, ${K} closed \u2014 an unclosed <${Q}>${q} may swallow the content that follows it.`)}else console.warn(`[stx] ${J}: <${Q}> ${G} opened, ${K} closed \u2014 ${K-G} stray </${Q}>.`)}var mU,uU,x2;var o3=P(()=>{mU=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),uU=new Set(["html","head","body","p","li","dt","dd","rt","rp","option","optgroup","thead","tbody","tfoot","tr","td","th","colgroup","caption"]);x2=new Set});import d0 from"path";import s3 from"fs";function h2($){return $.split("-").map((Z)=>Z.charAt(0).toUpperCase()+Z.slice(1)).join("")}function d2($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}class m2{builtins=new Map;registerBuiltin($){this.builtins.set($.name.toLowerCase(),$);for(let Z of $.aliases)this.builtins.set(Z.toLowerCase(),$)}isBuiltin($){return this.builtins.has($.toLowerCase())}getBuiltin($){return this.builtins.get($.toLowerCase())??null}async resolveFile($,Z,Y,X){let J=$.endsWith(".stx")?$.slice(0,-4):$,Q=X?.__importedComponents;if(Q){let B=[J,J.toLowerCase(),h2(J),d2(J)];for(let j of B)if(Q.has(j))return Q.get(j)}let G=[...new Set([`${J}.stx`,`${h2(J)}.stx`,`${d2(J)}.stx`])];if(J.startsWith("./")||J.startsWith("../")){let B=d0.resolve(d0.dirname(Z),`${J}.stx`);if(await i(B))return B;return null}let K=[],z=Y.componentsDir||"",q=X?.__originalFilePath;if(q)K.push(d0.join(d0.dirname(q),"components"));if(z)K.push(z);let U=d0.join(d0.dirname(Z),"components");if(!K.includes(U))K.push(U);let W=process.cwd(),_=[d0.resolve(W,"src/components"),d0.resolve(W,"components"),d0.resolve(import.meta.dir,"components")];for(let B of _)if(!K.includes(B))K.push(B);for(let B of K){if(!B)continue;for(let j of G){let H=d0.join(B,j);if(await i(H))return H}try{if(!s3.statSync(B,{throwIfNoEntry:!1})?.isDirectory())continue;let H=s3.readdirSync(B,{withFileTypes:!0});for(let L of H)if(L.isDirectory()){let F=d0.join(B,L.name);for(let O of G){let V=d0.join(F,O);if(await i(V))return V}}}catch{}}return null}}var b0;var r3=P(()=>{O0();b0=new m2});function V1($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function lU($){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 a3;var t3=P(()=>{a3={name:"StxLink",aliases:["stx-link"],render($,Z,Y){let X=lU($),J=(typeof $.static.class==="string"?$.static.class:"")||(typeof $.static.className==="string"?$.static.className:""),Q=typeof $.static.activeClass==="string"?$.static.activeClass:"active",G=typeof $.static.exactActiveClass==="string"?$.static.exactActiveClass:"exact-active",K=$.static.prefetch===!0||$.static.prefetch==="true"||$.serverDynamic.prefetch===!0,z=[];if(X.reactive)z.push(`:href="${V1(X.value)}"`);else z.push(`href="${V1(X.value)}"`);if(J)z.push(`class="${V1(J)}"`);if(z.push("data-stx-link"),z.push(`data-stx-active-class="${V1(Q)}"`),z.push(`data-stx-exact-active-class="${V1(G)}"`),K)z.push("data-stx-prefetch");let q=new Set(["to","class","className","activeClass","exactActiveClass","prefetch"]);for(let[U,W]of Object.entries($.static)){if(q.has(U))continue;if(typeof W==="boolean"){if(W)z.push(V1(U))}else z.push(`${V1(U)}="${V1(W)}"`)}return`<a ${z.join(" ")}>${Z}</a>`}}});function B0($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function D0($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}function $6($,Z,Y=!1){let X=$.serverDynamic[Z];if(X!==void 0)return X!==!1&&X!=="false";let J=$.static[Z];if(J!==void 0)return J!=="false"&&J!==!1;return Y}function u2($){if($.includes("(")||$.includes(","))return $;let Z=$.trim().split(/\s+/),Y=[];for(let X of Z)if(X.includes(":")){let[J,Q]=X.split(":"),G=pU[J];if(G)Y.push(`(max-width: ${G}px) ${Q}`);else{let K=Number.parseInt(J);if(!Number.isNaN(K))Y.push(`(max-width: ${K}px) ${Q}`)}}else Y.push(X);return Y.join(", ")}function Z6($,Z,Y,X){return Z.map((J)=>`${c5($,J,void 0,Y,X)} ${J}w`).join(", ")}function cU($,Z,Y,X,J){return Z.map((Q)=>{let G=Y?Y*Q:void 0;return`${c5($,G,void 0,X,J)} ${Q}x`}).join(", ")}function c5($,Z,Y,X,J){if(!X||X==="local"||X==="static")return $;if(X==="cloudinary"){let Q=[];if(Z)Q.push(`w_${Z}`);if(Y)Q.push(`h_${Y}`);if(J)Q.push(`f_${J}`);Q.push("q_auto");let G=Q.join(",");return $.replace("/upload/",`/upload/${G}/`)}if(X==="imgix"){let Q=new URLSearchParams;if(Z)Q.set("w",String(Z));if(Y)Q.set("h",String(Y));if(J)Q.set("fm",J);Q.set("auto","format");let G=$.includes("?")?"&":"?";return`${$}${G}${Q.toString()}`}if(X==="bunny"){let Q=new URLSearchParams;if(Z)Q.set("width",String(Z));if(Y)Q.set("height",String(Y));if(J)Q.set("format",J);let G=$.includes("?")?"&":"?";return`${$}${G}${Q.toString()}`}return $}function iU($,Z,Y="#e5e7eb"){let X=`<svg xmlns="http://www.w3.org/2000/svg" width="${$}" height="${Z}"><rect width="100%" height="100%" fill="${Y}"/></svg>`;return`data:image/svg+xml;base64,${btoa(X)}`}var pU,e3,Y6;var X6=P(()=>{pU={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},e3=[320,640,768,1024,1280,1536,1920];Y6={name:"StxImage",aliases:["stx-image","stx-img"],render($,Z,Y){let X=D0($,"src")||"",J=D0($,"alt")||"",Q=D0($,"width"),G=D0($,"height"),K=D0($,"sizes"),z=D0($,"srcset"),q=D0($,"densities"),U=D0($,"format"),W=D0($,"placeholder"),_=D0($,"placeholderColor")||"#e5e7eb",B=D0($,"provider"),j=D0($,"class")||D0($,"className")||"",H=D0($,"style")||"",L=D0($,"quality"),F=$6($,"lazy",!0),O=$6($,"preload",!1),V=$6($,"picture",!1)||!!U,w=Q?Number.parseInt(Q):void 0,A=G?Number.parseInt(G):void 0,R=z||"",N="";if(!R&&K)R=Z6(X,e3,B,U),N=u2(K);else if(!R&&q){let S=q.split(/\s+/).map((k)=>Number.parseFloat(k.replace("x","")));R=cU(X,S,w,B,U)}else if(K)N=u2(K);let M=[];if(H)M.push(H);if(w&&A)M.push(`aspect-ratio:${w}/${A}`);if(W==="blur"||W==="color"||W==="thumbhash"){let S=iU(w||16,A||9,_);M.push(`background-image:url(${S})`),M.push("background-size:cover"),M.push("background-repeat:no-repeat")}else if(W&&W!=="empty"&&W!=="none")M.push(`background-image:url(${B0(W)})`),M.push("background-size:cover"),M.push("background-repeat:no-repeat");let T=c5(X,w,A,B,U),I=[];if(I.push(`src="${B0(T)}"`),I.push(`alt="${B0(J)}"`),Q)I.push(`width="${B0(Q)}"`);if(G)I.push(`height="${B0(G)}"`);if(F)I.push('loading="lazy"');if(I.push('decoding="async"'),j)I.push(`class="${B0(j)}"`);if(M.length>0)I.push(`style="${B0(M.join(";"))}"`);if(R)I.push(`srcset="${B0(R)}"`);if(N)I.push(`sizes="${B0(N)}"`);let D=new Set(["src","alt","width","height","lazy","sizes","srcset","placeholder","placeholderColor","class","className","style","format","provider","quality","densities","preload","picture"]);for(let[S,k]of Object.entries($.static)){if(D.has(S))continue;if(typeof k==="boolean"){if(k)I.push(B0(S))}else I.push(`${B0(S)}="${B0(k)}"`)}let E=`<img ${I.join(" ")} />`,b="";if(O){let k=U==="webp"?"image/webp":U==="avif"?"image/avif":"";b=`<link rel="preload" as="image" href="${B0(T)}"${k?` type="${k}"`:""}${R?` imagesrcset="${B0(R)}"`:""}${N?` imagesizes="${B0(N)}"`:""} />
|
|
4024
4024
|
`}if(V){let S=[];if(U==="avif"||U==="auto"){let k=c5(X,w,A,B,"avif"),y=R?Z6(X,e3,B,"avif"):`${k}`;S.push(`<source type="image/avif" srcset="${B0(y)}"${N?` sizes="${B0(N)}"`:""} />`)}if(U==="webp"||U==="auto"){let k=c5(X,w,A,B,"webp"),y=R?Z6(X,e3,B,"webp"):`${k}`;S.push(`<source type="image/webp" srcset="${B0(y)}"${N?` sizes="${B0(N)}"`:""} />`)}return`${b}<picture>
|
|
4025
4025
|
${S.join(`
|
|
4026
4026
|
`)}
|
|
4027
4027
|
${E}
|
|
4028
|
-
</picture>`}return`${b}${E}`}}});function w1($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function U5($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}var nU="<script>window.__stxSafeImageHandler||(window.__stxSafeImageHandler=function(i){if(i.__stx_fb)return;i.__stx_fb=1;var f=i.getAttribute('data-fallback')||'/images/safe-image-default.svg';var c=i.getAttribute('data-fallback-class');i.src=f;if(c)i.className=c;});</script>",J6;var Q6=
|
|
4028
|
+
</picture>`}return`${b}${E}`}}});function w1($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function U5($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}var nU="<script>window.__stxSafeImageHandler||(window.__stxSafeImageHandler=function(i){if(i.__stx_fb)return;i.__stx_fb=1;var f=i.getAttribute('data-fallback')||'/images/safe-image-default.svg';var c=i.getAttribute('data-fallback-class');i.src=f;if(c)i.className=c;});</script>",J6;var Q6=P(()=>{J6={name:"SafeImage",aliases:["safe-image","safe-img"],render($,Z,Y){let X=U5($,"src")||"",J=U5($,"alt")||"",Q=U5($,"fallback")||"/images/safe-image-default.svg",G=U5($,"class")||U5($,"className")||"",K=U5($,"fallbackClassName")||"",z=[];if(z.push(`src="${w1(X)}"`),z.push(`alt="${w1(J)}"`),G)z.push(`class="${w1(G)}"`);if(z.push(`data-fallback="${w1(Q)}"`),K)z.push(`data-fallback-class="${w1(K)}"`);z.push('onerror="window.__stxSafeImageHandler(this)"');let q=new Set(["src","alt","fallback","class","className","fallbackClassName"]);for(let[_,B]of Object.entries($.static)){if(q.has(_))continue;if(typeof B==="boolean"){if(B)z.push(w1(_))}else z.push(`${w1(_)}="${w1(B)}"`)}let U=`<img ${z.join(" ")} />`,W=Y.context;if(!W.__safeImageHandlerEmitted)return W.__safeImageHandlerEmitted=!0,`${nU}${U}`;return U}}});function G6($){return $.replace(/[;{}()]/g,"").replace(/url/gi,"")}function i5($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}function O4($,Z,Y){let X=i5($,Z);if(X!==void 0){let J=Number.parseInt(X,10);if(!Number.isNaN(J))return J}return Y}var K6;var z6=P(()=>{K6={name:"StxLoadingIndicator",aliases:["stx-loading-indicator"],render($,Z,Y){let X=G6(i5($,"color")||"#6366f1"),J=G6(i5($,"initialColor")||i5($,"initial-color")||""),Q=G6(i5($,"height")||"3px"),G=O4($,"duration",2000),K=O4($,"throttle",200),z=O4($,"zIndex",999999)||O4($,"z-index",999999),q=J?`linear-gradient(to right, ${J}, ${X})`:X;return`
|
|
4029
4029
|
<div id="stx-loading-indicator" style="position:fixed;top:0;left:0;right:0;height:${Q};background:${q};z-index:${z};transform:scaleX(0);transform-origin:left;transition:transform 0.1s ease-out,opacity 0.3s ease;opacity:0;pointer-events:none">
|
|
4030
4030
|
<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>
|
|
4031
4031
|
</div>
|
|
4032
4032
|
<style>@keyframes stx-shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}</style>
|
|
4033
4033
|
<script>
|
|
4034
4034
|
(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()})})();
|
|
4035
|
-
</script>`}}});function c0($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function p2($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}function oU($,Z,Y){let X=p2($,Z);if(X!==void 0){let J=Number.parseInt(X,10);if(!Number.isNaN(J))return J}return Y}var l2,q6;var U6=
|
|
4035
|
+
</script>`}}});function c0($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function p2($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}function oU($,Z,Y){let X=p2($,Z);if(X!==void 0){let J=Number.parseInt(X,10);if(!Number.isNaN(J))return J}return Y}var l2,q6;var U6=P(()=>{l2={"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%)"},q6={name:"StxToast",aliases:["stx-toast"],render($,Z,Y){let X=c0(p2($,"position")||"top-right"),J=oU($,"max",5),Q=l2[X]||l2["top-right"];return`<div id="stx-toast-container" data-stx-toast-position="${X}" data-stx-toast-max="${J}" style="position:fixed;${Q};z-index:999999;display:flex;flex-direction:column;gap:0.5rem;pointer-events:none;max-width:24rem;width:100%"></div>
|
|
4036
4036
|
<style>
|
|
4037
4037
|
@keyframes stx-toast-in{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}
|
|
4038
4038
|
@keyframes stx-toast-out{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}
|
|
@@ -4040,7 +4040,7 @@ ${E}
|
|
|
4040
4040
|
@keyframes stx-toast-out-left{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-100%)}}
|
|
4041
4041
|
@keyframes stx-toast-in-center{from{opacity:0;transform:translateY(-1rem)}to{opacity:1;transform:translateY(0)}}
|
|
4042
4042
|
@keyframes stx-toast-out-center{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-1rem)}}
|
|
4043
|
-
</style>`}}});function L4($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}var c2,W6;var _6=
|
|
4043
|
+
</style>`}}});function L4($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}var c2,W6;var _6=P(()=>{c2={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)"},W6={name:"StxModal",aliases:["stx-modal"],render($,Z,Y){let X=L4($,"id");if(!X)return console.warn('[stx] <StxModal> requires an "id" prop'),"<!-- StxModal: missing id prop -->";let J=c0(X),Q=L4($,"size")||"md",G=L4($,"closeOnBackdrop")!=="false",K=L4($,"closeOnEscape")!=="false",z=c2[Q]||c2.md;return`<div id="stx-modal-${J}" class="stx-modal-backdrop" data-stx-modal="${J}" data-close-backdrop="${G}" data-close-escape="${K}" 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">
|
|
4044
4044
|
<div class="stx-modal-panel" style="${z};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)">
|
|
4045
4045
|
<div style="padding:1.5rem">${Z}</div>
|
|
4046
4046
|
</div>
|
|
@@ -4049,7 +4049,7 @@ ${E}
|
|
|
4049
4049
|
@media(prefers-color-scheme:dark){[data-stx-modal]{--stx-modal-bg:#1f2937;--stx-modal-text:#f3f4f6}}
|
|
4050
4050
|
.stx-modal-backdrop[data-stx-modal-open]{display:flex!important;opacity:1}
|
|
4051
4051
|
.stx-modal-backdrop[data-stx-modal-open] .stx-modal-panel{transform:scale(1) translateY(0);opacity:1}
|
|
4052
|
-
</style>`}}});function W5($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}var i2,B6;var j6=
|
|
4052
|
+
</style>`}}});function W5($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}var i2,B6;var j6=P(()=>{i2={sm:"16rem",md:"24rem",lg:"32rem",xl:"40rem"},B6={name:"StxDrawer",aliases:["stx-drawer"],render($,Z,Y){let X=W5($,"id");if(!X)return console.warn('[stx] <StxDrawer> requires an "id" prop'),"<!-- StxDrawer: missing id prop -->";let J=c0(X),Q=W5($,"side")||"right",G=W5($,"size")||"md",K=W5($,"closeOnBackdrop")!=="false",z=W5($,"closeOnEscape")!=="false",q=W5($,"overlay")!=="false",U=i2[G]||i2.md,W=Q==="left",_=W?"left:0":"right:0",B=W?"translateX(-100%)":"translateX(100%)",j=W?"stx-drawer-slide-left":"stx-drawer-slide-right";return`<div id="stx-drawer-${J}" class="stx-drawer-backdrop" data-stx-drawer="${J}" data-close-backdrop="${K}" data-close-escape="${z}" 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">
|
|
4053
4053
|
<div class="stx-drawer-panel" style="position:fixed;top:0;bottom:0;${_};width:${U};max-width:100vw;transform:${B};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">
|
|
4054
4054
|
<div style="padding:1.5rem">${Z}</div>
|
|
4055
4055
|
</div>
|
|
@@ -4058,7 +4058,7 @@ ${E}
|
|
|
4058
4058
|
@media(prefers-color-scheme:dark){[data-stx-drawer]{--stx-drawer-bg:#1f2937;--stx-drawer-text:#f3f4f6}}
|
|
4059
4059
|
.stx-drawer-backdrop[data-stx-drawer-open]{display:block!important;opacity:1}
|
|
4060
4060
|
.stx-drawer-backdrop[data-stx-drawer-open] .stx-drawer-panel{transform:translateX(0)}
|
|
4061
|
-
</style>`}}});var eU={};l(eU,{preloadIconCollection:()=>o2,IconBuiltin:()=>F4});import{existsSync as sU,readFileSync as rU}from"fs";function n2($){try{return G0.resolve(`@iconify/json/json/${$}.json`)}catch{}let Z=process.cwd();for(let Y of[`${Z}/node_modules/@iconify/json/json/${$}.json`,`${Z}/pantry/@iconify/json/json/${$}.json`])if(sU(Y))return Y;return null}function aU($){if(m1.has($))return m1.get($);let Z=n2($);if(!Z)return null;try{let Y=JSON.parse(rU(Z,"utf8"));return m1.set($,Y.icons),Y.icons}catch{return null}}async function tU($){if(m1.has($))return m1.get($);let Z=n2($);if(!Z)return null;try{let Y=await Bun.file(Z).json();return m1.set($,Y.icons),Y.icons}catch{return null}}function _5($,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 o2($="lucide"){await tU($)}var m1,F4;var H6=
|
|
4061
|
+
</style>`}}});var eU={};l(eU,{preloadIconCollection:()=>o2,IconBuiltin:()=>F4});import{existsSync as sU,readFileSync as rU}from"fs";function n2($){try{return G0.resolve(`@iconify/json/json/${$}.json`)}catch{}let Z=process.cwd();for(let Y of[`${Z}/node_modules/@iconify/json/json/${$}.json`,`${Z}/pantry/@iconify/json/json/${$}.json`])if(sU(Y))return Y;return null}function aU($){if(m1.has($))return m1.get($);let Z=n2($);if(!Z)return null;try{let Y=JSON.parse(rU(Z,"utf8"));return m1.set($,Y.icons),Y.icons}catch{return null}}async function tU($){if(m1.has($))return m1.get($);let Z=n2($);if(!Z)return null;try{let Y=await Bun.file(Z).json();return m1.set($,Y.icons),Y.icons}catch{return null}}function _5($,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 o2($="lucide"){await tU($)}var m1,F4;var H6=P(()=>{m1=new Map;F4={name:"Icon",aliases:["icon","stx-icon"],render($,Z,Y){let X=_5($,"name")??_5($,"icon");if(!X)return"<!-- Icon: missing name/icon prop -->";let J="lucide",Q=X;if(X.includes(":")){let O=X.split(":");J=O[0],Q=O[1]}let G=c0(_5($,"size")||"24"),K=c0(_5($,"color")||"currentColor"),z=c0(_5($,"class")||""),q=c0(_5($,"style")||""),U=m1.get(J)??aU(J);if(!U)return`<!-- Icon: collection "${J}" not loaded -->`;let W=U[Q];if(!W)return`<!-- Icon: "${Q}" not found in ${J} -->`;let _=W.width||24,B=W.height||24,j=`0 0 ${_} ${B}`,H=W.body;if(K!=="currentColor")H=H.replace(/currentColor/g,K);let L=z?` class="${z}"`:"",F=q?` style="${q}"`:"";return`<svg xmlns="http://www.w3.org/2000/svg" width="${G}" height="${G}" viewBox="${j}" fill="none"${L}${F}>${H}</svg>`}}});function $W(){return`
|
|
4062
4062
|
(function(){
|
|
4063
4063
|
var tip=null,hideTimer=null,currentEl=null;
|
|
4064
4064
|
|
|
@@ -4161,7 +4161,7 @@ document.addEventListener("focusout",function(e){
|
|
|
4161
4161
|
if(el) hideTip();
|
|
4162
4162
|
});
|
|
4163
4163
|
})();
|
|
4164
|
-
`}function s2($,...Z){for(let Y of Z){if($.serverDynamic[Y]!==void 0)return String($.serverDynamic[Y]);let X=$.static[Y];if(typeof X==="string")return X}return}function r2($,Z){let Y=new RegExp(`<(template|div|span)[^>]*\\bslot=["']${Z}["'][^>]*>([\\s\\S]*?)<\\/\\1>`,"i"),X=$.match(Y);if(!X)return{region:null,rest:$};return{region:X[2],rest:$.replace(X[0],"")}}var O6;var L6=
|
|
4164
|
+
`}function s2($,...Z){for(let Y of Z){if($.serverDynamic[Y]!==void 0)return String($.serverDynamic[Y]);let X=$.static[Y];if(typeof X==="string")return X}return}function r2($,Z){let Y=new RegExp(`<(template|div|span)[^>]*\\bslot=["']${Z}["'][^>]*>([\\s\\S]*?)<\\/\\1>`,"i"),X=$.match(Y);if(!X)return{region:null,rest:$};return{region:X[2],rest:$.replace(X[0],"")}}var O6;var L6=P(()=>{O6={name:"Suspense",aliases:["suspense"],render($,Z,Y){let X=r2(Z,"fallback"),J=X.rest,Q=r2(J,"error"),G=Q.rest,K=X.region??s2($,"fallback")??'<div class="stx-suspense-loading">Loading\u2026</div>',z=Q.region??s2($,"errorFallback","error-fallback")??'<div class="stx-suspense-error">Something went wrong.</div>';return`<div data-stx-suspense><div data-stx-suspense-fallback>${K}</div><div data-stx-suspense-error hidden>${z}</div><div data-stx-suspense-content hidden>${G}</div></div>`}}});function V4($,...Z){for(let Y of Z){if($.serverDynamic[Y]!==void 0)return String($.serverDynamic[Y]);let X=$.static[Y];if(typeof X==="string")return X}return}var F6;var V6=P(()=>{F6={name:"TransitionGroup",aliases:["transition-group"],render($,Z,Y){let X=(V4($,"name")||"v").replace(/["'<>]/g,""),J=(V4($,"tag")||"div").replace(/[^a-z0-9-]/gi,"")||"div",Q=V4($,"class"),G=V4($,"id"),K=[`data-stx-transition-group="${X}"`,Q?`class="${Q}"`:"",G?`id="${G}"`:""].filter(Boolean).join(" ");return`<${J} ${K}>${Z}</${J}>`}}});function a2(){b0.registerBuiltin(a3),b0.registerBuiltin(Y6),b0.registerBuiltin(J6),b0.registerBuiltin(K6),b0.registerBuiltin(q6),b0.registerBuiltin(W6),b0.registerBuiltin(B6),b0.registerBuiltin(F4),b0.registerBuiltin(O6),b0.registerBuiltin(F6)}var t2=P(()=>{t3();X6();Q6();z6();U6();_6();j6();H6();L6();V6();r3();t3();X6();Q6();z6();U6();_6();j6();H6();L6();V6()});import B5 from"path";function w6($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1-$2").toLowerCase()}function A6($,Z,Y){let X=[],J=0;while(J<$.length){let Q=$.indexOf("<",J);if(Q===-1)break;let K=$.slice(Q+1).match(new RegExp(`^(${Z.source})`));if(!K){J=Q+1;continue}let z=K[1];if(Y&&Y.has(z.toLowerCase())){let H=Q+1+z.length;while(H<$.length&&$[H]!==">")H++;J=H+1;continue}let q=Q+1+z.length,U=null,W=q,_=-1,B=!1;while(q<$.length){let H=$[q];if(U){if(H==="\\"&&q+1<$.length){q+=2;continue}if(H===U)U=null;q++;continue}if(H==='"'||H==="'"){U=H,q++;continue}if(H==="/"&&q+1<$.length&&$[q+1]===">"){_=q+2,B=!0;break}if(H===">"){_=q+1;break}q++}if(_===-1){J=Q+1;continue}let j=$.slice(W,B?_-2:_-1).trim();if(B)X.push({fullMatch:$.slice(Q,_),tagName:z,attributes:j,content:"",startIndex:Q,endIndex:_,isSelfClosing:!0}),J=_;else{let H=`<${z}`,L=`</${z}>`,F=1,O=_,V=-1;while(F>0&&O<$.length){let R=$.indexOf(H,O),N=$.indexOf(L,O);if(N===-1)break;if(R!==-1&&R<N){let M=$[R+H.length];if(M===" "||M===">"||M==="/"||M===`
|
|
4165
4165
|
`||M==="\t")F++;O=R+H.length}else{if(F--,F===0){V=N;break}O=N+L.length}}if(V===-1){J=_;continue}let w=$.slice(_,V),A=V+L.length;X.push({fullMatch:$.slice(Q,A),tagName:z,attributes:j,content:w,startIndex:Q,endIndex:A,isSelfClosing:!1}),J=A}}return X}function R6($,Z){try{let Y=Buffer.from($,"base64").toString("utf8");return JSON.parse(Y)}catch{}try{let Y=$.replace(/"/g,'"').replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&");return JSON.parse(Y)}catch(Y){if(Z?.debug)console.error("Error decoding __stx_ prop:",Y);return $}}function ZW($){let Z={},Y=0,X=$.length;while(Y<X){while(Y<X&&/\s/.test($[Y]))Y++;if(Y>=X)break;let J="";while(Y<X&&!/[\s=]/.test($[Y]))J+=$[Y],Y++;if(!J)break;if(J.startsWith("@")||J.startsWith(":")){while(Y<X&&$[Y]!=='"'&&$[Y]!=="'")Y++;if(Y<X){let Q=$[Y];Y++;while(Y<X&&$[Y]!==Q){if($[Y]==="\\")Y++;Y++}Y++}continue}while(Y<X&&/\s/.test($[Y]))Y++;if(Y<X&&$[Y]==="="){Y++;while(Y<X&&/\s/.test($[Y]))Y++;let Q="";if(Y<X&&($[Y]==='"'||$[Y]==="'")){let G=$[Y];Y++;while(Y<X){let K=$[Y];if(K==="\\"&&Y+1<X){Y++,Q+=$[Y],Y++;continue}if(K===G){Y++;break}Q+=K,Y++}}else while(Y<X&&!/\s/.test($[Y]))Q+=$[Y],Y++;Z[J]=Q}else Z[J]="true"}return Z}function uA($){let Z=[],Y=0,X=$.length;while(Y<X){while(Y<X&&/\s/.test($[Y]))Y++;if(Y>=X)break;let J="";while(Y<X&&!/[\s=]/.test($[Y]))J+=$[Y],Y++;if(!J)break;while(Y<X&&/\s/.test($[Y]))Y++;if(Y<X&&$[Y]==="="){Y++;while(Y<X&&/\s/.test($[Y]))Y++;let Q="";if(Y<X&&($[Y]==='"'||$[Y]==="'")){let G=$[Y];Y++;while(Y<X&&$[Y]!==G){if($[Y]==="\\"&&Y+1<X)Y++,Q+=$[Y];else Q+=$[Y];Y++}if(Y<X)Y++}else while(Y<X&&!/\s/.test($[Y]))Q+=$[Y],Y++;Z.push({name:J,value:Q})}else Z.push({name:J,value:!0})}return Z}async function lA($,Z,Y,X){let J=$;return J=J.replace(/<stx-loading-indicator([^>]*?)(?:\s*\/>|><\/stx-loading-indicator>)/gi,(Q,G)=>{let K=G.match(/color=["']([^"']+)["']/i),z=G.match(/initial-color=["']([^"']+)["']/i),q=G.match(/height=["']([^"']+)["']/i),U=G.match(/duration=["']([^"']+)["']/i),W=G.match(/throttle=["']([^"']+)["']/i),_=G.match(/z-index=["']([^"']+)["']/i),B=(L)=>L.replace(/[;{}()]/g,"").replace(/url/gi,""),j={color:B(K?.[1]||"#6366f1"),initialColor:B(z?.[1]||""),height:B(q?.[1]||"3px"),duration:U?Number.parseInt(U[1]):2000,throttle:W?Number.parseInt(W[1]):200,zIndex:_?Number.parseInt(_[1]):999999},H=j.initialColor?`linear-gradient(to right, ${j.initialColor}, ${j.color})`:j.color;return`
|
|
4166
4166
|
<div id="stx-loading-indicator" style="position:fixed;top:0;left:0;right:0;height:${j.height};background:${H};z-index:${j.zIndex};transform:scaleX(0);transform-origin:left;transition:transform 0.1s ease-out,opacity 0.3s ease;opacity:0;pointer-events:none">
|
|
4167
4167
|
<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>
|
|
@@ -4169,15 +4169,15 @@ document.addEventListener("focusout",function(e){
|
|
|
4169
4169
|
<style>@keyframes stx-shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}</style>
|
|
4170
4170
|
<script>
|
|
4171
4171
|
(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)},${j.throttle})},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()})})();
|
|
4172
|
-
</script>`}),J}async function pA($,Z,Y,X,J){let Q=$;if(!Z.__importedComponents)Z.__importedComponents=new Map;let G=Z.__importedComponents,K=/@import\s*\(\s*([^)]+)\s*\)/g,z;while((z=K.exec(Q))!==null){let[q,U]=z,W=U.split(",").map((_)=>_.trim().replace(/^['"]|['"]$/g,"")).filter((_)=>_.length>0);for(let _ of W){let B=_.split("/"),H=B[B.length-1].replace(/\.stx$/,""),L=H.includes("-")?H.split("-").map((V)=>V.charAt(0).toUpperCase()+V.slice(1)).join(""):H.charAt(0).toUpperCase()+H.slice(1),F=null,O=[B5.resolve(B5.dirname(Y),`${_}.stx`),B5.resolve(B5.dirname(Y),_),B5.resolve(X.componentsDir||"components",`${_}.stx`),B5.resolve(X.componentsDir||"components",_),_.endsWith(".stx")?_:`${_}.stx`];for(let V of O)try{if(await Bun.file(V).exists()){F=V;break}}catch{}if(F){G.set(L,F),G.set(H,F),G.set(H.toLowerCase(),F);let V=L.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(G.set(V,F),J.add(F),X.debug)console.log(`Imported component: ${L} -> ${F}`)}else if(X.debug)console.warn(`Could not resolve imported component: ${_}`)}Q=Q.replace(q,""),K.lastIndex=0}return Q}async function cA($,Z,Y,X,J,Q){let G=$;if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,z=/@component\s*\(/g,q;while((q=z.exec(G))!==null){let U=q.index,W=U+q[0].length-1,_=1,B=W+1;while(B<G.length&&_>0){if(G[B]==="(")_++;else if(G[B]===")"){if(_--,_===0)break}B++}if(_!==0)break;let j=G.substring(W+1,B),H=B+1,L=j.match(/^\s*['"]([^'"]+)['"]/);if(!L){z.lastIndex=0;continue}let F=L[1],O,V=j.slice(L[0].length),w=V.match(/^\s*,\s*/);if(w)O=V.slice(w[0].length).trim();let A={};if(O)try{A=H0(O,Z)}catch(E){let b=E instanceof Error?E.message:String(E);G=G.replace(G.substring(U,H),`[Error parsing component props: ${b}]`);continue}let R="",N=H,T=G.substring(H).match(/^([\s\S]*?)@endcomponent/);if(T)R=T[1].trim(),N=H+T[0].length;let I=G.substring(U,N),D=await z1(F,A,R,X,Z,Y,J,K,Q);G=G.substring(0,U)+D+G.substring(N),z.lastIndex=0}return G}async function iA($,Z,Y,X,J,Q){let G=$;if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,z=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","menu","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","slot","small","source","span","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","path","circle","rect","line","polygon","polyline","ellipse","text","tspan","textPath","g","defs","use","symbol","image","clipPath","mask","pattern","marker","linearGradient","radialGradient","stop","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","foreignObject","animate","animateMotion","animateTransform","set","mpath","desc","metadata","switch","view"]),q=O$(G);return G=q.output,G=await B(G,/[a-z][a-z0-9]*-[a-z0-9-]*/,!1),G=await B(G,/[A-Z][a-zA-Z0-9]*/,!0),G=await B(G,/[a-z][a-z0-9]*/,!1,z),G=L$(G,q.scripts),G;async function B(j,H,L,F){let O=j,V=A6(O,H,F);for(let w=V.length-1;w>=0;w--){let A=V[w],R=L?w6(A.tagName):A.tagName,N=ZW(A.attributes),M={};for(let[I,D]of Object.entries(N)){if(I.startsWith("@"))continue;if(I.startsWith("__stx_")){let E=I.slice(6);M[E]=R6(D,J);continue}if(I.startsWith(":")){let E=I.slice(1),b=D==="true"?E:D;try{if(!$0(b)){if(J.debug)console.error(`Unsafe expression in :${E} binding: ${b}`);M[E]=D}else{let S=Z0(b,Object.keys(Z));M[E]=S(...Object.values(Z))}}catch(S){if(J.debug)console.error(`Error evaluating :${E} binding:`,S);M[E]=D}continue}if(typeof D==="string"&&D.includes("{{")&&D.includes("}}")){let E=D.match(/^\{\{\s*([\s\S]+?)\s*\}\}$/);if(E)try{let b=E[1];if(!$0(b)){if(J.debug)console.error(`Unsafe expression in ${I}: ${b}`);M[I]=D}else{let S=Z0(b,Object.keys(Z));M[I]=S(...Object.values(Z))}}catch(b){if(J.debug)console.error(`Error evaluating expression for ${I}:`,b);M[I]=D}else{let b=D,S=/\{\{\s*([\s\S]+?)\s*\}\}/g,k;while((k=S.exec(D))!==null)try{let y=k[1];if(!$0(y)){if(J.debug)console.error(`Unsafe expression in ${I}: ${y}`);continue}let f=Z0(y,Object.keys(Z))(...Object.values(Z));b=b.replace(k[0],String(f??""))}catch(y){if(J.debug)console.error(`Error evaluating expression in ${I}:`,y)}M[I]=b}}else M[I]=D}let T=await z1(R,M,A.content,X,Z,Y,J,K,Q);O=O.substring(0,A.startIndex)+T+O.substring(A.endIndex)}return O}}var e2=C(()=>{w0();O0();F$()});var QY={};l(QY,{processESImports:()=>JY,processComponents:()=>A4});import w4 from"fs";import x0 from"path";function XW($,Z,Y){let X={static:{},serverDynamic:{},clientReactive:{},events:{}},J=new Set(["x-cloak","x-show","x-if","x-for","x-data","x-init","x-transition","x-ref","x-effect","x-model","x-text","x-html","x-class","x-style","x-on","x-bind"]),Q=(G)=>{if(!G.includes("-")||G.startsWith("@")||G.startsWith(":")||G.startsWith("x-")||G.startsWith("__"))return G;return G.replace(/-([a-z0-9])/g,(K,z)=>z.toUpperCase())};for(let[G,K]of Object.entries($)){let z=G.startsWith("x-")&&!J.has(G)&&!G.startsWith("x-bind:")&&!G.startsWith("x-on:")?`:${G.slice(2)}`:G;if(z.startsWith("@")){X.events[z]=K;continue}if(z.startsWith("__stx_")){let q=Q(z.slice(6));X.serverDynamic[q]=R6(K,Y);continue}if(z.startsWith(":")){let q=Q(z.slice(1)),U=K==="true"?q:K;try{if(!$0(U)){if(Y.debug)console.error(`Unsafe expression in :${q} binding: ${U}`);X.clientReactive[q]=U;continue}let W=Object.keys(Z),B=Z0(U,W)(...Object.values(Z));if(B===void 0){let j=U.match(/\b[a-zA-Z_$][a-zA-Z0-9_$]*\b/g)||[],H=new Set(["true","false","null","undefined","typeof","instanceof","in","of","new","this","return","void","delete","throw","if","else"]);if(j.some((F)=>!H.has(F)&&!W.includes(F))){X.clientReactive[q]=U;continue}}X.serverDynamic[q]=B}catch{X.clientReactive[q]=U}continue}if(typeof K==="string"&&K.includes("{{")&&K.includes("}}")){let q=K.match(/^\{\{\s*([\s\S]+?)\s*\}\}$/);if(q)try{let U=q[1];if($0(U)){let _=Z0(U,Object.keys(Z))(...Object.values(Z));X.static[z]=_!=null?String(_):""}else{if(Y.debug)console.error(`Unsafe expression in ${z}: ${U}`);X.static[z]=K}}catch(U){if(Y.debug)console.error(`Error evaluating expression for ${z}:`,U);X.static[z]=K}else{let U=K,W=/\{\{\s*([\s\S]+?)\s*\}\}/g,_;while((_=W.exec(K))!==null)try{let B=_[1];if(!$0(B)){if(Y.debug)console.error(`Unsafe expression in ${z}: ${B}`);continue}let H=Z0(B,Object.keys(Z))(...Object.values(Z));U=U.replace(_[0],String(H??""))}catch(B){if(Y.debug)console.error(`Error evaluating expression in ${z}:`,B)}X.static[z]=U}continue}X.static[z]=K}return X}function JW($){let Z={},Y=0,X=$.length;while(Y<X){while(Y<X&&/\s/.test($[Y]))Y++;if(Y>=X)break;let J="";while(Y<X&&!/[\s=]/.test($[Y]))J+=$[Y],Y++;if(!J)break;while(Y<X&&/\s/.test($[Y]))Y++;if(Y<X&&$[Y]==="="){Y++;while(Y<X&&/\s/.test($[Y]))Y++;let Q="";if(Y<X&&($[Y]==='"'||$[Y]==="'")){let G=$[Y];Y++;while(Y<X){let K=$[Y];if(K==="\\"&&Y+1<X){Y++,Q+=$[Y],Y++;continue}if(K===G){Y++;break}Q+=K,Y++}}else while(Y<X&&!/\s/.test($[Y]))Q+=$[Y],Y++;Z[J]=Q}else Z[J]="true"}return Z}function ZY($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function QW($){let Z=new Set,Y=/<([A-Z][A-Za-z0-9]*|stx-[a-z0-9-]+)\b[^>]*>/g,X;while((X=Y.exec($))!==null){let J=X[1];if(b0.isBuiltin(J))Z.add(J)}return[...Z].sort()}function GW($){let Z=YY.get($);if(Z)return Z;let Y=new Map,X=[x0.join($,"src"),x0.join($,"dist"),$];function J(Q,G){if(G>6)return;let K;try{K=w4.readdirSync(Q,{withFileTypes:!0})}catch{return}for(let z of K){let q=x0.join(Q,z.name);if(z.isDirectory()){if(z.name==="node_modules"||z.name.startsWith("."))continue;J(q,G+1)}else if(z.isFile()&&z.name.endsWith(".stx")){let U=z.name.slice(0,-4);if(!Y.has(U))Y.set(U,q);let W=U.toLowerCase();if(!Y.has(W))Y.set(W,q);let _=U.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(!Y.has(_))Y.set(_,q)}}}for(let Q of X)if(J(Q,0),Y.size>0)break;return YY.set($,Y),Y}function KW($,Z){if($.startsWith(".")||$.startsWith("/"))return null;let Y=Z;while(!0){let X=x0.join(Y,"node_modules",$);try{if(w4.statSync(X).isDirectory())return X}catch{}let J=x0.dirname(Y);if(J===Y)return null;Y=J}}async function JY($,Z,Y,X,J){if(!$.includes("import"))return $;if(!Z.__importedComponents)Z.__importedComponents=new Map;let Q=Z.__importedComponents,G=x0.dirname(Y),K=$,z=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi;return K=K.replace(z,(q,U,W)=>{let _=/import\s+(?:(\{[^}]*\})|([A-Za-z_$][\w$]*))\s+from\s+['"]([^'"]+)['"]\s*;?\s*\n?/g,B=W,j,H=[];while((j=_.exec(W))!==null){let[L,F,O,V]=j,w=null,A=null;if(V.startsWith(".")||V.startsWith("/")){let M=x0.resolve(G,V);if(M.endsWith(".stx"))A=M;else{let T=`${M}.stx`;try{if(w4.statSync(T).isFile())A=T}catch{try{if(w4.statSync(M).isDirectory())w=M}catch{}}}}else w=KW(V,G);if(!w&&!A)continue;let R=!1,N=(M,T)=>{Q.set(M,T),Q.set(M.toLowerCase(),T);let I=M.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();Q.set(I,T),J.add(T)};if(O&&A)N(O,A),R=!0;else if(F){let M=F.slice(1,-1).split(",").map((I)=>I.trim()).filter(Boolean).map((I)=>{let D=I.match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);if(D)return{source:D[1],local:D[2]};return{source:I,local:I}}),T=w?GW(w):null;for(let{source:I,local:D}of M){let E=null;if(A)E=A;else if(T)E=T.get(I)??T.get(I.toLowerCase())??T.get(I.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase())??null;if(E)N(D,E),R=!0}}if(R)H.push({start:j.index,end:j.index+L.length})}if(H.length===0)return q;for(let L=H.length-1;L>=0;L--)B=B.slice(0,H[L].start)+B.slice(H[L].end);return`<script${U}>${B}</script>`}),K}async function zW($,Z,Y,X,J){let Q=$;if(!Z.__importedComponents)Z.__importedComponents=new Map;let G=Z.__importedComponents,K=/@import\s*\(\s*([^)]+)\s*\)/g,z;while((z=K.exec(Q))!==null){let[q,U]=z,W=U.split(",").map((_)=>_.trim().replace(/^['"]|['"]$/g,"")).filter((_)=>_.length>0);for(let _ of W){let B=_.split("/"),H=B[B.length-1].replace(/\.stx$/,""),L=H.includes("-")?H.split("-").map((V)=>V.charAt(0).toUpperCase()+V.slice(1)).join(""):H.charAt(0).toUpperCase()+H.slice(1),F=null,O=[x0.resolve(x0.dirname(Y),`${_}.stx`),x0.resolve(x0.dirname(Y),_),x0.resolve(X.componentsDir||"components",`${_}.stx`),x0.resolve(X.componentsDir||"components",_),_.endsWith(".stx")?_:`${_}.stx`];for(let V of O)try{if(await Bun.file(V).exists()){F=V;break}}catch{}if(F){G.set(L,F),G.set(H,F),G.set(H.toLowerCase(),F);let V=L.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(G.set(V,F),J.add(F),X.debug)console.log(`Imported component: ${L} -> ${F}`)}else if(X.debug)console.warn(`Could not resolve imported component: ${_}`)}Q=Q.replace(q,""),K.lastIndex=0}return Q}async function qW($,Z,Y,X,J){let Q=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,z=/@component\s*\(/g,q;while((q=z.exec(Q))!==null){let U=q.index,W=U+q[0].length-1,_=1,B=W+1;while(B<Q.length&&_>0){if(Q[B]==="(")_++;else if(Q[B]===")"){if(_--,_===0)break}B++}if(_!==0)break;let j=Q.substring(W+1,B),H=B+1,L=j.match(/^\s*['"]([^'"]+)['"]/);if(!L){z.lastIndex=0;continue}let F=L[1],O,V=j.slice(L[0].length),w=V.match(/^\s*,\s*/);if(w)O=V.slice(w[0].length).trim();let A={};if(O)try{A=H0(O,Z)}catch(D){let E=D instanceof Error?D.message:String(D);Q=Q.replace(Q.substring(U,H),`[Error parsing component props: ${E}]`);continue}let R="",N=H,T=Q.substring(H).match(/^([\s\S]*?)@endcomponent/);if(T)R=T[1].trim(),N=H+T[0].length;let I=await z1(F,A,R,G,Z,Y,X,K,J);Q=Q.substring(0,U)+I+Q.substring(N),z.lastIndex=0}return Q}async function UW($,Z,Y,X,J){if(!$)return $;let Q=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,z=O$(Q);return Q=z.output,Q=await _(Q,/[a-z][a-z0-9]*-[a-z0-9-]*/,!1),Q=await _(Q,/[A-Z][a-zA-Z0-9]*/,!0),Q=await _(Q,/[a-z][a-z0-9]*/,!1,YW),Q=L$(Q,z.scripts),Q;async function _(B,j,H,L){if(!B)return B;let F=B,O=A6(F,j,L);for(let V=O.length-1;V>=0;V--){let w=O[V],A=H?w6(w.tagName):w.tagName,R=JW(w.attributes),N=XW(R,Z,X),M=b0.getBuiltin(w.tagName),T=M?await GY(A,G,Z,Y,X):!1;if(M&&!T){let b={context:Z,filePath:Y,options:X,dependencies:J},S=M.render(N,w.content,b);if(Object.keys(N.clientReactive).length>0)S=XY(S,N.clientReactive);if(Object.keys(N.events).length>0){let k=Object.entries(N.events).map(([y,h])=>`${y}="${ZY(h)}"`).join(" ");S=S.replace(/^(\s*<[a-zA-Z][a-zA-Z0-9-]*)/,`$1 ${k}`)}F=F.substring(0,w.startIndex)+S+F.substring(w.endIndex);continue}let I={};for(let[b,S]of Object.entries(N.static))I[b]=S;for(let[b,S]of Object.entries(N.serverDynamic))I[b]=S;let E=await z1(A,I,w.content,G,Z,Y,X,K,J);if(Object.keys(N.clientReactive).length>0)E=XY(E,N.clientReactive);if(Object.keys(N.events).length>0){let b=E.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(b){let S=Object.entries(N.events).map(([y,h])=>`${y}="${ZY(h)}"`).join(" "),k=b[1].length+b[2].length;E=E.substring(0,k)+" "+S+E.substring(k)}}F=F.substring(0,w.startIndex)+E+F.substring(w.endIndex)}return F}}function XY($,Z){let Y=$.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(!Y)return $;let X=Object.entries(Z).map(([Q,G])=>`:${Q}="${G.replace(/"/g,""")}"`).join(" "),J=Y[1].length+Y[2].length;return $.substring(0,J)+" "+X+$.substring(J)}async function A4($,Z,Y,X,J){if(!$Y)a2(),$Y=!0;let Q=await JY($,Z,Y,X,J);Q=await zW(Q,Z,Y,X,J),Q=await qW(Q,Z,Y,X,J);for(let G=0;G<3;G++){let K=Q;if(Q=await UW(Q,Z,Y,X,J),Q===K)break}if(X.debug){let G=QW(Q);if(G.length>0)console.warn(`[stx] ${Y}: unresolved component tag(s) after render passes: ${G.join(", ")}. Check nested component output for malformed root tags or recursive component markup.`)}return Q}var $Y=!1,YW,YY;var N6=C(()=>{r3();t2();e2();O0();w0();YW=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"]);YY=new Map});var R4={};l(R4,{stripTypeScript:()=>WY,hasVariables:()=>OY,extractVariables:()=>K1,extractScriptFromTemplate:()=>HY,convertToCommonJS:()=>M6});import j5 from"path";import n5 from"process";function WW($){let Z=[],Y=0,X=$.split(`
|
|
4172
|
+
</script>`}),J}async function pA($,Z,Y,X,J){let Q=$;if(!Z.__importedComponents)Z.__importedComponents=new Map;let G=Z.__importedComponents,K=/@import\s*\(\s*([^)]+)\s*\)/g,z;while((z=K.exec(Q))!==null){let[q,U]=z,W=U.split(",").map((_)=>_.trim().replace(/^['"]|['"]$/g,"")).filter((_)=>_.length>0);for(let _ of W){let B=_.split("/"),H=B[B.length-1].replace(/\.stx$/,""),L=H.includes("-")?H.split("-").map((V)=>V.charAt(0).toUpperCase()+V.slice(1)).join(""):H.charAt(0).toUpperCase()+H.slice(1),F=null,O=[B5.resolve(B5.dirname(Y),`${_}.stx`),B5.resolve(B5.dirname(Y),_),B5.resolve(X.componentsDir||"components",`${_}.stx`),B5.resolve(X.componentsDir||"components",_),_.endsWith(".stx")?_:`${_}.stx`];for(let V of O)try{if(await Bun.file(V).exists()){F=V;break}}catch{}if(F){G.set(L,F),G.set(H,F),G.set(H.toLowerCase(),F);let V=L.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(G.set(V,F),J.add(F),X.debug)console.log(`Imported component: ${L} -> ${F}`)}else if(X.debug)console.warn(`Could not resolve imported component: ${_}`)}Q=Q.replace(q,""),K.lastIndex=0}return Q}async function cA($,Z,Y,X,J,Q){let G=$;if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,z=/@component\s*\(/g,q;while((q=z.exec(G))!==null){let U=q.index,W=U+q[0].length-1,_=1,B=W+1;while(B<G.length&&_>0){if(G[B]==="(")_++;else if(G[B]===")"){if(_--,_===0)break}B++}if(_!==0)break;let j=G.substring(W+1,B),H=B+1,L=j.match(/^\s*['"]([^'"]+)['"]/);if(!L){z.lastIndex=0;continue}let F=L[1],O,V=j.slice(L[0].length),w=V.match(/^\s*,\s*/);if(w)O=V.slice(w[0].length).trim();let A={};if(O)try{A=H0(O,Z)}catch(E){let b=E instanceof Error?E.message:String(E);G=G.replace(G.substring(U,H),`[Error parsing component props: ${b}]`);continue}let R="",N=H,T=G.substring(H).match(/^([\s\S]*?)@endcomponent/);if(T)R=T[1].trim(),N=H+T[0].length;let I=G.substring(U,N),D=await z1(F,A,R,X,Z,Y,J,K,Q);G=G.substring(0,U)+D+G.substring(N),z.lastIndex=0}return G}async function iA($,Z,Y,X,J,Q){let G=$;if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,z=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","menu","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","slot","small","source","span","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","path","circle","rect","line","polygon","polyline","ellipse","text","tspan","textPath","g","defs","use","symbol","image","clipPath","mask","pattern","marker","linearGradient","radialGradient","stop","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","foreignObject","animate","animateMotion","animateTransform","set","mpath","desc","metadata","switch","view"]),q=O$(G);return G=q.output,G=await B(G,/[a-z][a-z0-9]*-[a-z0-9-]*/,!1),G=await B(G,/[A-Z][a-zA-Z0-9]*/,!0),G=await B(G,/[a-z][a-z0-9]*/,!1,z),G=L$(G,q.scripts),G;async function B(j,H,L,F){let O=j,V=A6(O,H,F);for(let w=V.length-1;w>=0;w--){let A=V[w],R=L?w6(A.tagName):A.tagName,N=ZW(A.attributes),M={};for(let[I,D]of Object.entries(N)){if(I.startsWith("@"))continue;if(I.startsWith("__stx_")){let E=I.slice(6);M[E]=R6(D,J);continue}if(I.startsWith(":")){let E=I.slice(1),b=D==="true"?E:D;try{if(!$0(b)){if(J.debug)console.error(`Unsafe expression in :${E} binding: ${b}`);M[E]=D}else{let S=Z0(b,Object.keys(Z));M[E]=S(...Object.values(Z))}}catch(S){if(J.debug)console.error(`Error evaluating :${E} binding:`,S);M[E]=D}continue}if(typeof D==="string"&&D.includes("{{")&&D.includes("}}")){let E=D.match(/^\{\{\s*([\s\S]+?)\s*\}\}$/);if(E)try{let b=E[1];if(!$0(b)){if(J.debug)console.error(`Unsafe expression in ${I}: ${b}`);M[I]=D}else{let S=Z0(b,Object.keys(Z));M[I]=S(...Object.values(Z))}}catch(b){if(J.debug)console.error(`Error evaluating expression for ${I}:`,b);M[I]=D}else{let b=D,S=/\{\{\s*([\s\S]+?)\s*\}\}/g,k;while((k=S.exec(D))!==null)try{let y=k[1];if(!$0(y)){if(J.debug)console.error(`Unsafe expression in ${I}: ${y}`);continue}let f=Z0(y,Object.keys(Z))(...Object.values(Z));b=b.replace(k[0],String(f??""))}catch(y){if(J.debug)console.error(`Error evaluating expression in ${I}:`,y)}M[I]=b}}else M[I]=D}let T=await z1(R,M,A.content,X,Z,Y,J,K,Q);O=O.substring(0,A.startIndex)+T+O.substring(A.endIndex)}return O}}var e2=P(()=>{w0();O0();F$()});var QY={};l(QY,{processESImports:()=>JY,processComponents:()=>A4});import w4 from"fs";import x0 from"path";function XW($,Z,Y){let X={static:{},serverDynamic:{},clientReactive:{},events:{}},J=new Set(["x-cloak","x-show","x-if","x-for","x-data","x-init","x-transition","x-ref","x-effect","x-model","x-text","x-html","x-class","x-style","x-on","x-bind"]),Q=(G)=>{if(!G.includes("-")||G.startsWith("@")||G.startsWith(":")||G.startsWith("x-")||G.startsWith("__"))return G;return G.replace(/-([a-z0-9])/g,(K,z)=>z.toUpperCase())};for(let[G,K]of Object.entries($)){let z=G.startsWith("x-")&&!J.has(G)&&!G.startsWith("x-bind:")&&!G.startsWith("x-on:")?`:${G.slice(2)}`:G;if(z.startsWith("@")){X.events[z]=K;continue}if(z.startsWith("__stx_")){let q=Q(z.slice(6));X.serverDynamic[q]=R6(K,Y);continue}if(z.startsWith(":")){let q=Q(z.slice(1)),U=K==="true"?q:K;try{if(!$0(U)){if(Y.debug)console.error(`Unsafe expression in :${q} binding: ${U}`);X.clientReactive[q]=U;continue}let W=Object.keys(Z),B=Z0(U,W)(...Object.values(Z));if(B===void 0){let j=U.match(/\b[a-zA-Z_$][a-zA-Z0-9_$]*\b/g)||[],H=new Set(["true","false","null","undefined","typeof","instanceof","in","of","new","this","return","void","delete","throw","if","else"]);if(j.some((F)=>!H.has(F)&&!W.includes(F))){X.clientReactive[q]=U;continue}}X.serverDynamic[q]=B}catch{X.clientReactive[q]=U}continue}if(typeof K==="string"&&K.includes("{{")&&K.includes("}}")){let q=K.match(/^\{\{\s*([\s\S]+?)\s*\}\}$/);if(q)try{let U=q[1];if($0(U)){let _=Z0(U,Object.keys(Z))(...Object.values(Z));X.static[z]=_!=null?String(_):""}else{if(Y.debug)console.error(`Unsafe expression in ${z}: ${U}`);X.static[z]=K}}catch(U){if(Y.debug)console.error(`Error evaluating expression for ${z}:`,U);X.static[z]=K}else{let U=K,W=/\{\{\s*([\s\S]+?)\s*\}\}/g,_;while((_=W.exec(K))!==null)try{let B=_[1];if(!$0(B)){if(Y.debug)console.error(`Unsafe expression in ${z}: ${B}`);continue}let H=Z0(B,Object.keys(Z))(...Object.values(Z));U=U.replace(_[0],String(H??""))}catch(B){if(Y.debug)console.error(`Error evaluating expression in ${z}:`,B)}X.static[z]=U}continue}X.static[z]=K}return X}function JW($){let Z={},Y=0,X=$.length;while(Y<X){while(Y<X&&/\s/.test($[Y]))Y++;if(Y>=X)break;let J="";while(Y<X&&!/[\s=]/.test($[Y]))J+=$[Y],Y++;if(!J)break;while(Y<X&&/\s/.test($[Y]))Y++;if(Y<X&&$[Y]==="="){Y++;while(Y<X&&/\s/.test($[Y]))Y++;let Q="";if(Y<X&&($[Y]==='"'||$[Y]==="'")){let G=$[Y];Y++;while(Y<X){let K=$[Y];if(K==="\\"&&Y+1<X){Y++,Q+=$[Y],Y++;continue}if(K===G){Y++;break}Q+=K,Y++}}else while(Y<X&&!/\s/.test($[Y]))Q+=$[Y],Y++;Z[J]=Q}else Z[J]="true"}return Z}function ZY($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function QW($){let Z=new Set,Y=/<([A-Z][A-Za-z0-9]*|stx-[a-z0-9-]+)\b[^>]*>/g,X;while((X=Y.exec($))!==null){let J=X[1];if(b0.isBuiltin(J))Z.add(J)}return[...Z].sort()}function GW($){let Z=YY.get($);if(Z)return Z;let Y=new Map,X=[x0.join($,"src"),x0.join($,"dist"),$];function J(Q,G){if(G>6)return;let K;try{K=w4.readdirSync(Q,{withFileTypes:!0})}catch{return}for(let z of K){let q=x0.join(Q,z.name);if(z.isDirectory()){if(z.name==="node_modules"||z.name.startsWith("."))continue;J(q,G+1)}else if(z.isFile()&&z.name.endsWith(".stx")){let U=z.name.slice(0,-4);if(!Y.has(U))Y.set(U,q);let W=U.toLowerCase();if(!Y.has(W))Y.set(W,q);let _=U.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(!Y.has(_))Y.set(_,q)}}}for(let Q of X)if(J(Q,0),Y.size>0)break;return YY.set($,Y),Y}function KW($,Z){if($.startsWith(".")||$.startsWith("/"))return null;let Y=Z;while(!0){let X=x0.join(Y,"node_modules",$);try{if(w4.statSync(X).isDirectory())return X}catch{}let J=x0.dirname(Y);if(J===Y)return null;Y=J}}async function JY($,Z,Y,X,J){if(!$.includes("import"))return $;if(!Z.__importedComponents)Z.__importedComponents=new Map;let Q=Z.__importedComponents,G=x0.dirname(Y),K=$,z=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi;return K=K.replace(z,(q,U,W)=>{let _=/import\s+(?:(\{[^}]*\})|([A-Za-z_$][\w$]*))\s+from\s+['"]([^'"]+)['"]\s*;?\s*\n?/g,B=W,j,H=[];while((j=_.exec(W))!==null){let[L,F,O,V]=j,w=null,A=null;if(V.startsWith(".")||V.startsWith("/")){let M=x0.resolve(G,V);if(M.endsWith(".stx"))A=M;else{let T=`${M}.stx`;try{if(w4.statSync(T).isFile())A=T}catch{try{if(w4.statSync(M).isDirectory())w=M}catch{}}}}else w=KW(V,G);if(!w&&!A)continue;let R=!1,N=(M,T)=>{Q.set(M,T),Q.set(M.toLowerCase(),T);let I=M.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();Q.set(I,T),J.add(T)};if(O&&A)N(O,A),R=!0;else if(F){let M=F.slice(1,-1).split(",").map((I)=>I.trim()).filter(Boolean).map((I)=>{let D=I.match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);if(D)return{source:D[1],local:D[2]};return{source:I,local:I}}),T=w?GW(w):null;for(let{source:I,local:D}of M){let E=null;if(A)E=A;else if(T)E=T.get(I)??T.get(I.toLowerCase())??T.get(I.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase())??null;if(E)N(D,E),R=!0}}if(R)H.push({start:j.index,end:j.index+L.length})}if(H.length===0)return q;for(let L=H.length-1;L>=0;L--)B=B.slice(0,H[L].start)+B.slice(H[L].end);return`<script${U}>${B}</script>`}),K}async function zW($,Z,Y,X,J){let Q=$;if(!Z.__importedComponents)Z.__importedComponents=new Map;let G=Z.__importedComponents,K=/@import\s*\(\s*([^)]+)\s*\)/g,z;while((z=K.exec(Q))!==null){let[q,U]=z,W=U.split(",").map((_)=>_.trim().replace(/^['"]|['"]$/g,"")).filter((_)=>_.length>0);for(let _ of W){let B=_.split("/"),H=B[B.length-1].replace(/\.stx$/,""),L=H.includes("-")?H.split("-").map((V)=>V.charAt(0).toUpperCase()+V.slice(1)).join(""):H.charAt(0).toUpperCase()+H.slice(1),F=null,O=[x0.resolve(x0.dirname(Y),`${_}.stx`),x0.resolve(x0.dirname(Y),_),x0.resolve(X.componentsDir||"components",`${_}.stx`),x0.resolve(X.componentsDir||"components",_),_.endsWith(".stx")?_:`${_}.stx`];for(let V of O)try{if(await Bun.file(V).exists()){F=V;break}}catch{}if(F){G.set(L,F),G.set(H,F),G.set(H.toLowerCase(),F);let V=L.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(G.set(V,F),J.add(F),X.debug)console.log(`Imported component: ${L} -> ${F}`)}else if(X.debug)console.warn(`Could not resolve imported component: ${_}`)}Q=Q.replace(q,""),K.lastIndex=0}return Q}async function qW($,Z,Y,X,J){let Q=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,z=/@component\s*\(/g,q;while((q=z.exec(Q))!==null){let U=q.index,W=U+q[0].length-1,_=1,B=W+1;while(B<Q.length&&_>0){if(Q[B]==="(")_++;else if(Q[B]===")"){if(_--,_===0)break}B++}if(_!==0)break;let j=Q.substring(W+1,B),H=B+1,L=j.match(/^\s*['"]([^'"]+)['"]/);if(!L){z.lastIndex=0;continue}let F=L[1],O,V=j.slice(L[0].length),w=V.match(/^\s*,\s*/);if(w)O=V.slice(w[0].length).trim();let A={};if(O)try{A=H0(O,Z)}catch(D){let E=D instanceof Error?D.message:String(D);Q=Q.replace(Q.substring(U,H),`[Error parsing component props: ${E}]`);continue}let R="",N=H,T=Q.substring(H).match(/^([\s\S]*?)@endcomponent/);if(T)R=T[1].trim(),N=H+T[0].length;let I=await z1(F,A,R,G,Z,Y,X,K,J);Q=Q.substring(0,U)+I+Q.substring(N),z.lastIndex=0}return Q}async function UW($,Z,Y,X,J){if(!$)return $;let Q=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,z=O$(Q);return Q=z.output,Q=await _(Q,/[a-z][a-z0-9]*-[a-z0-9-]*/,!1),Q=await _(Q,/[A-Z][a-zA-Z0-9]*/,!0),Q=await _(Q,/[a-z][a-z0-9]*/,!1,YW),Q=L$(Q,z.scripts),Q;async function _(B,j,H,L){if(!B)return B;let F=B,O=A6(F,j,L);for(let V=O.length-1;V>=0;V--){let w=O[V],A=H?w6(w.tagName):w.tagName,R=JW(w.attributes),N=XW(R,Z,X),M=b0.getBuiltin(w.tagName),T=M?await GY(A,G,Z,Y,X):!1;if(M&&!T){let b={context:Z,filePath:Y,options:X,dependencies:J},S=M.render(N,w.content,b);if(Object.keys(N.clientReactive).length>0)S=XY(S,N.clientReactive);if(Object.keys(N.events).length>0){let k=Object.entries(N.events).map(([y,h])=>`${y}="${ZY(h)}"`).join(" ");S=S.replace(/^(\s*<[a-zA-Z][a-zA-Z0-9-]*)/,`$1 ${k}`)}F=F.substring(0,w.startIndex)+S+F.substring(w.endIndex);continue}let I={};for(let[b,S]of Object.entries(N.static))I[b]=S;for(let[b,S]of Object.entries(N.serverDynamic))I[b]=S;let E=await z1(A,I,w.content,G,Z,Y,X,K,J);if(Object.keys(N.clientReactive).length>0)E=XY(E,N.clientReactive);if(Object.keys(N.events).length>0){let b=E.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(b){let S=Object.entries(N.events).map(([y,h])=>`${y}="${ZY(h)}"`).join(" "),k=b[1].length+b[2].length;E=E.substring(0,k)+" "+S+E.substring(k)}}F=F.substring(0,w.startIndex)+E+F.substring(w.endIndex)}return F}}function XY($,Z){let Y=$.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(!Y)return $;let X=Object.entries(Z).map(([Q,G])=>`:${Q}="${G.replace(/"/g,""")}"`).join(" "),J=Y[1].length+Y[2].length;return $.substring(0,J)+" "+X+$.substring(J)}async function A4($,Z,Y,X,J){if(!$Y)a2(),$Y=!0;let Q=await JY($,Z,Y,X,J);Q=await zW(Q,Z,Y,X,J),Q=await qW(Q,Z,Y,X,J);for(let G=0;G<3;G++){let K=Q;if(Q=await UW(Q,Z,Y,X,J),Q===K)break}if(X.debug){let G=QW(Q);if(G.length>0)console.warn(`[stx] ${Y}: unresolved component tag(s) after render passes: ${G.join(", ")}. Check nested component output for malformed root tags or recursive component markup.`)}return Q}var $Y=!1,YW,YY;var N6=P(()=>{r3();t2();e2();O0();w0();YW=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"]);YY=new Map});var R4={};l(R4,{stripTypeScript:()=>WY,hasVariables:()=>OY,extractVariables:()=>K1,extractScriptFromTemplate:()=>HY,convertToCommonJS:()=>M6});import j5 from"path";import n5 from"process";function WW($){let Z=[],Y=0,X=$.split(`
|
|
4173
4173
|
`);for(let J of X){let Q=Y,G=null,K=!1;for(let z=0;z<J.length;z++){let q=J[z];if(K){K=!1;continue}if(q==="\\"){K=!0;continue}if(G){if(q===G)G=null;continue}if(q==="'"||q==='"'||q==="`"){G=q;continue}if(q==="/"&&z+1<J.length&&J[z+1]==="/")break;if(q==="{")Y++;else if(q==="}")Y--}if(Q===0){let z=J.match(/(?:const|let|var)\s+(\w+)\s*=/);if(z)Z.push(z[1]);else if(/^\s*(?:const|let|var)\s+\w+\s*;?\s*$/.test(J)){let q=J.match(/(?:const|let|var)\s+(\w+)/);if(q)Z.push(q[1])}else{let q=J.match(/(?:const|let|var)\s+(\{[^}]+\}|\[[^\]]+\])\s*=/);if(q){let W=q[1].slice(1,-1).split(",").map((_)=>{let B=_.split(":");return(B.length>1?B[1]:B[0]).trim()}).filter((_)=>/^\w+$/.test(_));Z.push(...W)}}}}return[...new Set(Z)]}function WY($){let Z=$;Z=Z.replace(/^\s*import\s+.*?from\s+['"][^'"]+['"]\s*;?\s*$/gm,""),Z=Z.replace(/^\s*import\s+['"][^'"]+['"]\s*;?\s*$/gm,""),Z=Z.replace(/^\s*interface\s+\w+\s*\{[\s\S]*?\n\}\s*$/gm,""),Z=Z.replace(/^\s*type\s+\w+\s*=[\s\S]*?(?=\n(?:const|let|var|function|export|interface|type|$))/gm,""),Z=Z.replace(/^(\s*(?:export\s+)?(?:const|let|var)\s+)(\w+|\{[^}]+\}|\[[^\]]+\])\s*:\s*[^=]+(\s*=)/gm,"$1$2$3");function Y(X){if(!X.includes(":"))return X;let J=[],Q="",G=0,K=0,z=null;for(let q=0;q<X.length;q++){let U=X[q];if(z){if(Q+=U,U===z)z=null;continue}if(U==='"'||U==="'"||U==="`"){z=U,Q+=U;continue}if(U==="<")G++;else if(U===">"&&G>0)G--;else if(U==="(")K++;else if(U===")")K--;if(U===","&&G===0&&K===0){J.push(Q),Q="";continue}Q+=U}if(Q)J.push(Q);return J.map((q)=>{let U=q.trim(),W=U.startsWith("..."),_=W?U.slice(3):U,B=-1,j=0;for(let A=0;A<_.length;A++)if(_[A]==="<")j++;else if(_[A]===">")j--;else if(_[A]===":"&&j===0){B=A;break}if(B===-1)return q;let L=_.substring(0,B).trim().replace(/\?$/,""),F=_.substring(B+1),O=-1,V=0;for(let A=0;A<F.length;A++)if(F[A]==="<")V++;else if(F[A]===">")V--;else if(F[A]==="="&&V===0){O=A;break}let w=W?"...":"";if(O!==-1)return`${w}${L} = ${F.substring(O+1).trim()}`;return`${w}${L}`}).join(", ")}Z=Z.replace(/\b(function\s+\w*\s*)\(([^)]*)\)/g,(X,J,Q)=>{if(!Q.includes(":"))return X;return`${J}(${Y(Q)})`});{let X=/\b(function\s+\w*\s*)\(/g,J,Q=[];while((J=X.exec(Z))!==null){let G=J.index+J[0].length-1,K=1,z=G+1,q=0,U=null;while(z<Z.length&&K>0){let B=Z[z];if(U){if(B===U)U=null;z++;continue}if(B==='"'||B==="'"||B==="`"){U=B,z++;continue}if(B==="<")q++;else if(B===">"&&q>0)q--;else if(q===0){if(B==="(")K++;else if(B===")")K--}if(K>0)z++}if(K!==0)continue;let W=Z.substring(G+1,z);if(!W.includes(":"))continue;let _=Y(W);Q.push({start:G+1,end:z,replacement:_})}for(let G=Q.length-1;G>=0;G--){let{start:K,end:z,replacement:q}=Q[G];Z=Z.substring(0,K)+q+Z.substring(z)}}return Z=Z.replace(/\(([^)]*)\)\s*(?::\s*[^=]+)?\s*=>/g,(X,J)=>{if(!J.includes(":"))return X;if(J.includes("{")||J.includes("}"))return X;return`(${J.split(",").map((G)=>{let[K,...z]=G.split("="),q=K.split(":")[0].trim();if(z.length>0)return`${q} = ${z.join("=").trim()}`;return q}).join(", ")}) =>`}),Z=Z.replace(/(\))\s*:\s*([A-Z]\w*|void|string|number|boolean|any|unknown|never|null|undefined)(?:<[^>]+>)?(?:\s*\|\s*(?:[A-Z]\w*|void|string|number|boolean|any|unknown|never|null|undefined))*\s*(\{)/g,"$1$3"),Z=Z.replace(/(\b(?:function|class|interface|type|extends|implements)\s+\w+)\s*<[^<>()]*>/g,"$1"),Z=Z.replace(/(\b(?:defineProps|withDefaults|defineEmits|defineSlots|Array|Promise|Map|Set|Record|Partial|Required|Readonly|Pick|Omit|Exclude|Extract))\s*<[^<>()]*>/g,"$1"),Z=Z.replace(/(\w+)\s*<[A-Z][^<>()]*>\s*(?=\()/g,"$1"),Z=Z.replace(/\s+as\s+(?:const|[A-Za-z]\w*(?:\[\])?(?:\s*\|\s*\w+(?:\[\])?)*)/g,""),Z=Z.replace(/\s+satisfies\s+\w+(?:<[^>]*>)?/g,""),Z=Z.replace(/(\w|\)|\])\s*!(?!=)/g,"$1"),Z=Z.replace(/^\s*(?:export\s+)?(?:const\s+)?enum\s+\w+\s*\{[^}]*\}\s*$/gm,""),Z=Z.replace(/(?<=[\s=,(])<[A-Z]\w*(?:\[\])?>/g,""),Z=Z.replace(/\n\s*\n\s*\n/g,`
|
|
4174
4174
|
|
|
4175
|
-
`),Z}async function K1($,Z,Y,X={}){if(!$.trim())return;let J;try{let
|
|
4175
|
+
`),Z}async function K1($,Z,Y,X={}){if(!$.trim())return;let J;try{let C=new Bun.Transpiler({loader:"ts",target:"browser",define:o0()}),v=$.replace(/^\s*import\s+\w+\s+from\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");v=v.replace(/^\s*import\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,""),J=C.transformSync(v)}catch{J=WY($)}let Q={exports:{}},G=Q.exports,K=n5.cwd(),z={},q=[...J.matchAll(/require\s*\(\s*['"]([^'"]+)['"]\s*\)/g)||[]].map((C)=>C[1]).filter((C)=>!C.startsWith("node:")&&!C.startsWith(".")&&!["fs","path","os","child_process","crypto","http","https","url","util","stream","events","buffer","net","querystring","zlib","tls"].includes(C));for(let C of q)try{let v=j5.resolve(K,"node_modules",C),x=j5.join(v,"package.json"),g=JSON.parse(G0("fs").readFileSync(x,"utf8")),u=g.main||"index.js";if(g.exports){let s=typeof g.exports==="string"?g.exports:g.exports["."];if(typeof s==="string")u=s;else if(s?.bun)u=s.bun;else if(s?.import)u=s.import;else if(s?.default)u=s.default}z[C]=await import(j5.resolve(v,u))}catch{}let U=(C)=>{if(z[C])return z[C];return G0(C)},W=Z.props||{},_=Object.assign((C)=>{if(!C)return W;let v={};for(let[x,g]of Object.entries(C)){let u=W[x];if(u!==void 0)v[x]=u;else if(typeof g==="function")v[x]=g();else v[x]=g}return v},W),B=(C)=>{if(!C)return W;let v={...W};for(let[x,g]of Object.entries(C)){let u=g&&typeof g==="object"&&!Array.isArray(g)?g:{type:g};if(v[x]===void 0&&u.default!==void 0)v[x]=typeof u.default==="function"?u.default():u.default}return v},j=()=>Z.slots||{},H=(C,v)=>{let x={...C};for(let[g,u]of Object.entries(v))if(x[g]===void 0)if(typeof u==="function")x[g]=u();else x[g]=u;return x},L=(C)=>{let v=()=>C;return v.set=(x)=>{},v.update=(x)=>{},v},F=(C)=>{let v,x=!1;return()=>{if(!x)try{v=C(),x=!0}catch{v=void 0}return v}},O=(C)=>{},V=(C)=>C(),w=(C)=>{},A=(C)=>{},R=(C)=>{},N=()=>{let C=Z.__stxServeContext,v=Z.__stxServeSearch??C?.search??"",x=C?.path??"";return{params:Z.params??{},query:Object.fromEntries(new URLSearchParams(v)),path:x,name:"",fullPath:x+v,hash:"",matched:[]}},M=()=>({push:(C)=>{},replace:(C)=>{},back:()=>{},forward:()=>{},go:(C)=>{}}),T=(C)=>{h1(C);let v=Z.__stx_runtime_head||{},x=C||{};Z.__stx_runtime_head={...v,...x.title&&{title:x.title},meta:[...v.meta||[],...x.meta||[]],link:[...v.link||[],...x.link||[]],script:[...v.script||[],...x.script||[]],htmlAttrs:{...v.htmlAttrs||{},...x.htmlAttrs||{}},bodyAttrs:{...v.bodyAttrs||{},...x.bodyAttrs||{}}}},I=(C)=>{U4(C);let v=g5();Z.__stx_runtime_head={...Z.__stx_runtime_head||{},...v.title&&{title:v.title},meta:v.meta?[...v.meta]:[]}},D=(C)=>({value:C}),E=(C)=>C,b=(C)=>({value:typeof C==="function"?C():C}),S=(C,v)=>{},k=(C)=>{},y=(C)=>{},h=(C)=>C?C():Promise.resolve(),f=(C)=>(v,...x)=>{},m=(C)=>{},o=(C,v)=>{},N0=(C,v)=>v,Z1=()=>({value:"light"}),y0=()=>({value:!1}),E0={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:{}},X0=new Proxy(E0,{get(C,v){if(v in C)return C[v];return},set(C,v,x){return C[v]=x,!0}}),V0={getElementById:()=>null,querySelector:()=>null,querySelectorAll:()=>[],createElement:()=>({}),createTextNode:()=>({}),body:{},head:{},documentElement:{},addEventListener:()=>{},removeEventListener:()=>{}},U0=console;try{let C=M6(J,Y),v=new Set(Object.keys(W)),x=Object.keys(Z).filter((t)=>!v.has(t)&&t!=="props"),g=x.map((t)=>Z[t]),u=new Set(["break","case","catch","class","const","continue","debugger","default","delete","do","else","export","extends","finally","for","function","if","import","in","instanceof","let","new","return","super","switch","this","throw","try","typeof","var","void","while","with","yield","enum","await","async","module","exports","require","params","window","document","console","state","derived","effect"]),s=[],Q0=[];for(let[t,n0]of Object.entries(W)){if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(t))continue;if(u.has(t))continue;if(new RegExp(`(?:^|[\\s;{])(?:const|let|var|function)\\s+${t}\\b`).test(C))continue;s.push(t),Q0.push(n0)}let C0=WW(C).map((t)=>`module.exports.${t} = typeof ${t} !== 'undefined' ? ${t} : module.exports.${t};`).join(`
|
|
4176
4176
|
`),M1=Z.params??{},q0=[],I1=[];for(let t=0;t<x.length;t++){if(x[t]==="params")continue;q0.push(x[t]),I1.push(g[t])}let Q$=await Function("module","exports","require","props","$props","defineProps","withDefaults","state","derived","effect","batch","onMount","onDestroy","definePageMeta","useRoute","useRouter","useHead","useSeoMeta","ref","reactive","computed","watch","onMounted","onUnmounted","nextTick","defineEmits","defineExpose","defineSlots","provide","inject","useColorMode","useDark","window","document","console","confirm","alert","fetch","params",...s,...q0,`return (async () => {
|
|
4177
|
-
${
|
|
4177
|
+
${C}
|
|
4178
4178
|
${C0}
|
|
4179
4179
|
return module.exports
|
|
4180
|
-
})()`)(Q,G,U,W,_,B,H,L,F,O,V,w,A,R,N,M,T,I,D,E,b,S,k,y,h,f,m,j,o,N0,Z1,y0,X0,V0,U0,
|
|
4180
|
+
})()`)(Q,G,U,W,_,B,H,L,F,O,V,w,A,R,N,M,T,I,D,E,b,S,k,y,h,f,m,j,o,N0,Z1,y0,X0,V0,U0,E0.confirm,E0.alert,E0.fetch,M1,...Q0,...I1);if(X.preserveExisting){for(let[t,n0]of Object.entries(Q$))if(!(t in Z)||Z[t]===void 0)Z[t]=n0}else Object.assign(Z,Q$);for(let[t,n0]of Object.entries(W))if(!(t in Z))Z[t]=n0}catch(C){if(n5.env.STX_DEBUG){let v=C instanceof Error?C.message:String(C);console.warn(`[stx] server <script> did not execute in ${Y??"<unknown>"} \u2014 falling back to static extraction. Cause: ${v}`)}try{await OW(J,Z,Y)}catch(v){if(n5.env.STX_DEBUG){let x=v instanceof Error?v.message:String(v);console.warn(`[stx] fallback extraction also failed in ${Y??"<unknown>"}: ${x}`)}}}}function M6($,Z){let Y=Z?j5.dirname(Z):n5.cwd(),X=$.split(`
|
|
4181
4181
|
`),J=[],Q=0;while(Q<X.length){let G=X[Q].trim();if(G.startsWith("interface ")||G.startsWith("export interface ")||G.startsWith("type ")||G.startsWith("export type ")){if(G.includes("{")&&!G.includes("}")){let K=0;for(;Q<X.length;Q++){for(let z of X[Q])if(z==="{")K++;else if(z==="}")K--;if(K<=0)break}}Q++;continue}if(G.startsWith("definePageMeta(")){let K=0,z=!1;for(let q=Q;q<X.length&&!z;q++){let U=null,W=!1,_=X[q];for(let B=0;B<_.length;B++){let j=_[B];if(W){W=!1;continue}if(j==="\\"){W=!0;continue}if(U){if(j===U)U=null;continue}if(j==='"'||j==="'"||j==="`"){U=j;continue}if(j==="(")K++;else if(j===")"){if(K--,K===0){Q=q+1,z=!0;break}}}}if(!z)Q=X.length;continue}if(G.startsWith("import ")){let K=G.match(/^import\s+(\w+)\s+from\s+['"](.+)['"]/),z=G.match(/^import\s+\{([^}]+)\}\s+from\s+['"](.+)['"]/),q=G.match(/^import\s+['"](.+)['"]/),U=(W)=>{if(W.startsWith("."))return j5.resolve(Y,W);return W};if(K){let[,W,_]=K,B=U(_);J.push(`const ${W} = await import('${B}')`),J.push(`module.exports.${W} = ${W};`)}else if(z){let[,W,_]=z,B=W.trim(),j=U(_);J.push(`const { ${B} } = await import('${j}')`);for(let H of B.split(",")){let L=H.trim().split(/\s+as\s+/).pop()?.trim();if(L)J.push(`module.exports.${L} = ${L};`)}}else if(q){let W=U(q[1]);J.push(`await import('${W}')`)}else J.push(G);Q++;continue}if((G.startsWith("const ")||G.startsWith("let ")||G.startsWith("var ")||G.startsWith("export const ")||G.startsWith("export let ")||G.startsWith("export var "))&&!G.includes("="))J.push(X[Q]),Q++;else if(G.startsWith("export const ")||G.startsWith("export let ")||G.startsWith("export var ")){let K=KY(X,Q),{type:z,name:q,value:U}=K;J.push(`${z} ${q} = ${U};`),J.push(`module.exports.${q} = ${q};`),Q=K.nextIndex}else if(G.startsWith("export function ")||G.startsWith("export async function ")){let K=T6(X,Q);J.push(K.functionCode),J.push(`module.exports.${K.name} = ${K.name};`),Q=K.nextIndex}else if(G.startsWith("const ")||G.startsWith("let ")||G.startsWith("var ")){let K=KY(X,Q),{type:z,name:q,value:U}=K;J.push(`${z} ${q} = ${U};`),J.push(`module.exports.${q} = ${q};`),Q=K.nextIndex}else if(G.startsWith("function ")||G.startsWith("async function ")){let K=T6(X,Q);J.push(K.functionCode),J.push(`module.exports.${K.name} = ${K.name};`),Q=K.nextIndex}else if(G.startsWith("export default function ")||G.startsWith("export default async function ")){let K=X[Q].replace(/^(\s*)export\s+default\s+/,"$1"),z=[...X];z[Q]=K;let q=T6(z,Q);if(J.push(q.functionCode),q.name)J.push(`module.exports.default = ${q.name};`);Q=q.nextIndex}else if(G.startsWith("export default ")){let K=G.replace(/^export\s+default\s+/,"").replace(/;$/,"");J.push(`module.exports.default = ${K};`),Q++}else if(G.startsWith("class ")||G.startsWith("export class ")){let K=G.match(/(?:export\s+)?class\s+(\w+)/);if(K){let z=K[1],q=X[Q].replace(/^export\s+/,""),U=0,W=Q;for(;W<X.length;W++){let _=X[W];for(let B of _)if(B==="{")U++;else if(B==="}")U--;if(W>Q)q+=`
|
|
4182
4182
|
`+_;if(U<=0&&W>=Q)break}J.push(q),J.push(`module.exports.${z} = ${z};`),Q=W+1}else J.push(G),Q++}else if(G.includes("module.exports"))J.push(G),Q++;else if(G.trim()&&!G.startsWith("//"))J.push(G),Q++;else Q++}return _W(J.join(`
|
|
4183
4183
|
`),Y)}function _W($,Z){let Y=$.length,X="",J=0,Q=null,G=!1,K=!1,z=0;while(J<Y){let q=$[J],U=$[J+1];if(G){if(X+=q,q===`
|
|
@@ -4187,7 +4187,7 @@ ${A}`,nextIndex:O}}}}throw Error(`Failed to parse variable declaration: ${Y}`)}l
|
|
|
4187
4187
|
${$[z]}`,z++;else break}return K=K.trim().replace(/;$/,""),{type:J,name:Q,value:K,nextIndex:z}}function T6($,Z){let Y=$[Z].trim(),X=Y.match(/^(?:export\s+)?(?:async\s+)?function\s+(\w+)/);if(!X)throw Error(`Failed to parse function declaration: ${Y}`);let[,J]=X,Q=Y.replace(/^export\s+/,""),G=Z;if(jW(Y)){let K=HW($,Z,Q);Q=K.functionCode,G=K.nextIndex}else G=Z+1;return{name:J,functionCode:Q,nextIndex:G}}function zY($){let Z=$.trim();if(Z.startsWith("{"))return F0(Z,"{","}",0)===-1;if(Z.startsWith("["))return F0(Z,"[","]",0)===-1;return!jY(Z)}function jY($){let Z={paren:0,bracket:0,brace:0},Y=null,X=0;for(let J=0;J<$.length;J++){let Q=$[J];if((J>0?$[J-1]:"")==="\\"&&Y)continue;if((Q==='"'||Q==="'")&&!Y){Y=Q;continue}if(Q===Y&&Y!=="`"){Y=null;continue}if(Q==="`"&&!Y){Y="`";continue}if(Q==="`"&&Y==="`"&&X===0){Y=null;continue}if(Y==="`"&&Q==="$"&&$[J+1]==="{"){X++,J++;continue}if(X>0&&Q==="{"){X++;continue}if(X>0&&Q==="}"){X--;continue}if(Y)continue;if(Q==="(")Z.paren++;else if(Q===")")Z.paren--;else if(Q==="[")Z.bracket++;else if(Q==="]")Z.bracket--;else if(Q==="{")Z.brace++;else if(Q==="}")Z.brace--}return Z.paren===0&&Z.bracket===0&&Z.brace===0&&Y===null}function jW($){let Z=$.indexOf("{");if(Z===-1)return!0;return F0($,"{","}",Z)===-1}function qY($,Z,Y){let X=Y,J=Z+1;while(J<$.length&&!jY(X)){let Q=$[J];X+=`
|
|
4188
4188
|
${Q}`,J++}while(J<$.length){let Q=$[J].trim();if(Q.startsWith(".")||Q.startsWith("?."))X+=`
|
|
4189
4189
|
${$[J]}`,J++;else break}return{value:X,nextIndex:J}}function HW($,Z,Y){let X=Y,J=Z+1;while(J<$.length){let Q=X.indexOf("{");if(Q!==-1){if(F0(X,"{","}",Q)!==-1)break}let G=$[J];X+=`
|
|
4190
|
-
${G}`,J++}return{functionCode:X,nextIndex:J}}function UY($,Z){let Y=e($,Z)??e(`(${$})`,Z);if(Y!==void 0)return Y;if(!/\bprocess\b/.test($))return;let X={...Z,process:Object.freeze({env:{...n5.env}})};try{return Function(...Object.keys(X),`'use strict'; return (${$});`)(...Object.values(X))}catch{try{return Function(...Object.keys(X),`'use strict'; return ${$};`)(...Object.values(X))}catch{return}}}async function OW($,Z,Y){let X=$.matchAll(/export\s+(const|let|var)\s+(\w+)\s*=\s*([\s\S]*?)(?=\s*(?:export\s+|$))/g);for(let Q of X){let[,,G,K]=Q;try{let z=K.trim().replace(/;$/,""),q=UY(z,Z);if(q!==void 0)Z[G]=q}catch(z){console.warn(`Failed to parse export ${G} in fallback:`,z)}}let J=$.matchAll(/(?:^|\n)\s*(const|let|var)\s+(\w+)\s*=\s*([\s\S]*?)(?=\s*(?:(?:const|let|var|function|export)\s+|$))/g);for(let Q of J){let[,,G,K]=Q;if(!(G in Z))try{let z=K.trim().replace(/;$/,""),q=UY(z,Z);if(q!==void 0)Z[G]=q}catch{}}}function HY($){let Z=$.match(/<script\b[^>]*>([\s\S]*?)<\/script>/i),Y=Z?Z[1]:"",X=Z?$.replace(/<script\b[^>]*>[\s\S]*?<\/script>/i,""):$;return{scriptContent:Y,templateWithoutScript:X}}function OY($){let Z=$.trim();if(!Z)return!1;return/(?:const|let|var|function)\s+\w+/.test(Z)}var o5=
|
|
4190
|
+
${G}`,J++}return{functionCode:X,nextIndex:J}}function UY($,Z){let Y=e($,Z)??e(`(${$})`,Z);if(Y!==void 0)return Y;if(!/\bprocess\b/.test($))return;let X={...Z,process:Object.freeze({env:{...n5.env}})};try{return Function(...Object.keys(X),`'use strict'; return (${$});`)(...Object.values(X))}catch{try{return Function(...Object.keys(X),`'use strict'; return ${$};`)(...Object.values(X))}catch{return}}}async function OW($,Z,Y){let X=$.matchAll(/export\s+(const|let|var)\s+(\w+)\s*=\s*([\s\S]*?)(?=\s*(?:export\s+|$))/g);for(let Q of X){let[,,G,K]=Q;try{let z=K.trim().replace(/;$/,""),q=UY(z,Z);if(q!==void 0)Z[G]=q}catch(z){console.warn(`Failed to parse export ${G} in fallback:`,z)}}let J=$.matchAll(/(?:^|\n)\s*(const|let|var)\s+(\w+)\s*=\s*([\s\S]*?)(?=\s*(?:(?:const|let|var|function|export)\s+|$))/g);for(let Q of J){let[,,G,K]=Q;if(!(G in Z))try{let z=K.trim().replace(/;$/,""),q=UY(z,Z);if(q!==void 0)Z[G]=q}catch{}}}function HY($){let Z=$.match(/<script\b[^>]*>([\s\S]*?)<\/script>/i),Y=Z?Z[1]:"",X=Z?$.replace(/<script\b[^>]*>[\s\S]*?<\/script>/i,""):$;return{scriptContent:Y,templateWithoutScript:X}}function OY($){let Z=$.trim();if(!Z)return!1;return/(?:const|let|var|function)\s+\w+/.test(Z)}var o5=P(()=>{h5();s1();w0()});var NY={};l(NY,{processLoops:()=>I6});function VW($,Z){let Y=/@component\s*\(/g,X=$,J,Q=[];while((J=Y.exec(X))!==null){let G=J.index,K=G+J[0].length-1,z=1,q=K+1;while(q<X.length&&z>0){if(X[q]==="(")z++;else if(X[q]===")"){if(z--,z===0)break}q++}if(z!==0)continue;let U=X.substring(K+1,q),W=q+1,_=U.match(/^\s*['"]([^'"]+)['"]/);if(!_)continue;let B=_[1],j=U.slice(_[0].length),H=j.match(/^\s*,\s*/);if(!H)continue;let L=j.slice(H[0].length).trim();if(!L)continue;try{let F=H0(L,Z),O=JSON.stringify(F),V=`@component('${B}', ${O})`;Q.push({start:G,end:W,replacement:V})}catch{continue}}for(let G=Q.length-1;G>=0;G--){let{start:K,end:z,replacement:q}=Q[G];X=X.substring(0,K)+q+X.substring(z)}return X}function N4($,Z,Y){let X=$,J=new RegExp(`${Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\(`),Q;while((Q=J.exec(X))!==null){let G=Q.index,K=G+Q[0].length-1,z=1,q=K+1,U=null,W=!1;while(q<X.length&&z>0){let j=X[q];if(W){W=!1,q++;continue}if(j==="\\"&&U){W=!0,q++;continue}if(U){if(j===U)U=null;q++;continue}if(j==='"'||j==="'"||j==="`"){U=j,q++;continue}if(j==="(")z++;else if(j===")"){if(z--,z===0)break}q++}if(z!==0)break;let _=X.substring(K+1,q),B=Y(_);X=X.substring(0,G)+B+X.substring(q+1)}return X}function wW($,Z){let Y=$;return Y=Y.replace(/:([a-zA-Z_][a-zA-Z0-9_-]*)(?=\s+[^=]|\s*\/?>|\s*$)/g,(X,J)=>{if(J in Z)return`:${J}="${J}"`;return X}),Y=Y.replace(/:([a-zA-Z_][a-zA-Z0-9_-]*)\s*=\s*"([^"]*)"/g,(X,J,Q)=>{try{let G=Object.keys(Z),K=Object.values(Z);N5(Q);let q=Z0(Q,G)(...K),U=JSON.stringify(q),W=Buffer.from(U,"utf8").toString("base64");return`__stx_${J}="${W}"`}catch(G){return X}}),Y}function AW($,Z){let Y=$;return Y=N4(Y,"@break",(X)=>{try{let Q=`!!(${X.trim()})`,G;if($0(Q)){let K=Z0(Q,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean(e(Q,Z));return G?T4:""}catch{return""}}),Y=N4(Y,"@continue",(X)=>{try{let Q=`!!(${X.trim()})`,G;if($0(Q)){let K=Z0(Q,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean(e(Q,Z));return G?M4:""}catch{return""}}),Y}function RW($){let Z=$;return Z=Z.replace(/@break(?!\()/g,T4),Z=Z.replace(/@continue(?!\()/g,M4),Z}function LY($){let Z=$.includes(T4),Y=Z?$.substring(0,$.indexOf(T4)):$;return{hasBreak:Z,content:Y}}function FY($){let Z=$.includes(M4),Y=Z?$.substring(0,$.indexOf(M4)):$;return{hasContinue:Z,content:Y}}function wY($){let Z=$;return Z=N4(Z,"@break",(Y)=>{let X=Y.trim();if(!T5(X))return"";return`\`; if (${X}) { break; } result += \``}),Z=N4(Z,"@continue",(Y)=>{let X=Y.trim();if(!T5(X))return"";return`\`; if (${X}) { continue; } result += \``}),Z=Z.replace(/@break(?!\()/g,"`; break; result += `"),Z=Z.replace(/@continue(?!\()/g,"`; continue; result += `"),Z}function NW($){let Z=/@forelse\s*\(/g,Y,X=[],J=/@foreach\s*\(/g,Q=/@endforeach/g,G;while((G=J.exec($))!==null)X.push({pos:G.index,delta:1});while((G=Q.exec($))!==null)X.push({pos:G.index,delta:-1});X.sort((U,W)=>U.pos-W.pos);let K=[],z=0;for(let U of X)z+=U.delta,K.push({pos:U.pos,depth:z});function q(U){let W=0,_=K.length-1,B=0;while(W<=_){let j=W+_>>1;if(K[j].pos<=U)B=K[j].depth,W=j+1;else _=j-1}return B}while((Y=Z.exec($))!==null){if(q(Y.index)>0)continue;let U=Y.index,W=Y.index+Y[0].length-1,_=1,B=W+1,j=-1;while(B<$.length&&_>0){if($[B]==="(")_++;else if($[B]===")"){if(_--,_===0){j=B;break}}B++}if(j===-1)continue;let H=$.substring(W+1,j),L=H.indexOf(" as ");if(L===-1)continue;let F=H.substring(0,L).trim(),O=H.substring(L+4).trim(),V=j+1,w=1,A=V,R=/@forelse\s*\(/g,N=/@endforelse/g,M=-1;while(w>0&&A<$.length){R.lastIndex=A,N.lastIndex=A;let S=R.exec($),k=N.exec($);if(!k)break;if(S&&S.index<k.index)w++,A=S.index+S[0].length;else{if(w--,w===0){M=k.index;break}A=k.index+11}}if(M===-1)continue;let T=$.substring(V,M),I=M+11,D=-1,E=0,b=0;while(b<T.length){let S=T.indexOf("@",b);if(S===-1)break;let k=T.substring(S);if(/^@forelse\s*\(/.test(k))E++,b=S+1;else if(k.startsWith("@endforelse"))E--,b=S+11;else if(E===0&&k.startsWith("@empty")){if(T.length<=S+6||!/[a-z]/i.test(T[S+6])){D=S;break}b=S+1}else b=S+1}if(D===-1)continue;return{start:U,end:I,arrayExpr:F,itemVar:O,foreachContent:T.substring(0,D),emptyContent:T.substring(D+6)}}return null}function VY($,Z){let Y=$;while(!0){let X=NW(Y);if(!X)break;let{start:J,end:Q,arrayExpr:G,itemVar:K,foreachContent:z,emptyContent:q}=X;try{let U;if($0(G))U=Z0(G,Object.keys(Z))(...Object.values(Z));else U=e(G,Z);let W;if(!Array.isArray(U)||U.length===0)W=q;else W=`@foreach (${G} as ${K})${z}@endforeach`;Y=Y.substring(0,J)+W+Y.substring(Q)}catch(U){let W=U instanceof Error?U.message:String(U),_=r("Forelse",`Error in @forelse(${G} as ${K}): ${W}`,p.EVALUATION_ERROR);Y=Y.substring(0,J)+_+Y.substring(Q)}}return Y}function I6($,Z,Y,X){let J=$;J=VY(J,Z);function Q(z){let q=/@foreach\s*\(/g,U;while((U=q.exec(z))!==null){let W=U.index,_=U.index+U[0].length-1,B=1,j=_+1,H=-1;while(j<z.length&&B>0){if(z[j]==="(")B++;else if(z[j]===")"){if(B--,B===0){H=j;break}}j++}if(H===-1)continue;let L=z.substring(_+1,H),F=L.indexOf(" as ");if(F===-1)continue;let O=W,V=L.substring(0,F),w=L.substring(F+4),A=H+1,R=1,N=A,M=/@foreach\s*\(/g,T=/@endforeach/g;while(R>0&&N<z.length){M.lastIndex=N,T.lastIndex=N;let I=M.exec(z),D=T.exec(z);if(!D)break;if(I&&I.index<D.index)R++,N=I.index+I[0].length;else{if(R--,R===0){let E=z.substring(A,D.index),b=D.index+11;return{start:O,end:b,arrayExpr:V,itemVar:w,content:E}}N=D.index+11}}}return null}function G(z,q){let U=z;while(!0){let W=Q(U);if(!W)break;let{start:_,end:B,arrayExpr:j,itemVar:H,content:L}=W;try{let F=j.trim(),O;if($0(F))O=Z0(F,Object.keys(q))(...Object.values(q));else O=e(F,q);let V=!1;if(!Array.isArray(O))if(O instanceof Map)O=Array.from(O),V=!0;else if(O instanceof Set)O=Array.from(O);else if(typeof O==="string")O=Array.from(O);else if(O&&typeof O==="object"&&!(O instanceof Date)&&!(O instanceof RegExp))O=Object.entries(O),V=!0;else{let D=r("Foreach",`Error in @foreach: ${F} is not iterable`,p.TYPE_ERROR);U=U.substring(0,_)+D+U.substring(B);continue}let w=X?.loops?.useAltLoopVariable??FW,A=H.trim(),R=null,N,M=!1;if(A.includes("=>")){let D=A.split("=>").map((E)=>E.trim());if(D.length===2&&D[0]&&D[1])R=D[0],N=D[1];else N=A}else if(!A.startsWith("[")&&!A.startsWith("{")&&A.includes(",")){let D=A.split(",").map((E)=>E.trim());if(D.length===2&&D[0]&&D[1])N=D[0],R=D[1],M=!0;else N=A}else N=A;let T="",I=O;for(let D=0;D<I.length;D++){let E=I[D],b={index:D,iteration:D+1,first:D===0,last:D===I.length-1,count:I.length},S={...q,loop:b,$loop:b};if(N.startsWith("[")&&N.endsWith("]")){let f=N.slice(1,-1).split(",").map((m)=>m.trim());if(Array.isArray(E))f.forEach((m,o)=>{if(m)S[m]=E[o]});else S[N]=E}else S[N]=E;if(R)if(!M&&V&&Array.isArray(E)&&E.length===2)S[R]=E[0],S[N]=E[1];else S[R]=D;let k=AW(L,S),y=FY(k);if(y.hasContinue){T+=y.content;continue}let h=LY(k);if(h.hasBreak){T+=h.content;break}if(k=VY(k,S),k=G(k,S),k=x1(k,S,Y),k=RW(k),h=LY(k),h.hasBreak){T+=h.content;break}if(y=FY(k),y.hasContinue){T+=y.content;continue}k=s0(k,S,Y),k=wW(k,S),k=VW(k,S),T+=k}U=U.substring(0,_)+T+U.substring(B)}catch(F){let O=r("Foreach",`Error in @foreach(${j.trim()} as ${H.trim()}): ${F instanceof Error?F.message:String(F)}`,p.EVALUATION_ERROR);U=U.substring(0,_)+O+U.substring(B)}}return U}J=G(J,Z),J=RY(J,Z,Y,X);let K=X?.loops?.maxWhileIterations??LW;return J=IW(J,Z,K),J}function AY($){return T5($)}function RY($,Z,Y,X){let J=$,Q=!0;while(Q){Q=!1;let G=J.match(/@for\s*\(/);if(!G||G.index===void 0)break;let K=G.index,z=K+G[0].length-1,q=F0(J,"(",")",z);if(q===-1)break;let U=J.slice(z+1,q),W=q+1,_=G4(J.slice(K),"for","endfor");if(_.length===0)break;let B=_[0].content,j=K+_[0].end;if(!AY(U)){let H=r("For",`Unsafe expression in @for: ${U}`,p.UNSAFE_EXPRESSION);J=J.substring(0,K)+H+J.substring(j),Q=!0;continue}try{let H=TW(U),L=/@(?:for|foreach|if|unless)\s*\(/.test(B);if(H.length>0&&L){let R=MW({forExpr:U,content:B,iterVarNames:H,context:Z,filePath:Y,options:X});J=J.substring(0,K)+R+J.substring(j),Q=!0;continue}let F=Object.keys(Z),O=Object.values(Z),V=B.replace(/`/g,"\\`").replace(/\$\{/g,"\\${").replace(/\{\{([^}]+)\}\}/g,(R,N)=>{return`\${${N}}`});V=wY(V);let A=Function(...F,`
|
|
4191
4191
|
let result = '';
|
|
4192
4192
|
for (${U}) {
|
|
4193
4193
|
result += \`${V}\`;
|
|
@@ -4209,7 +4209,7 @@ ${G}`,J++}return{functionCode:X,nextIndex:J}}function UY($,Z){let Y=e($,Z)??e(`(
|
|
|
4209
4209
|
result += '<!-- [While Error [1104]]: Maximum iterations (${Y}) exceeded in while loop. Configure via options.loops.maxWhileIterations -->';
|
|
4210
4210
|
}
|
|
4211
4211
|
return result;
|
|
4212
|
-
`)(...j);X=X.substring(0,G)+F+X.substring(_),J=!0}catch(B){let j=r("While",`Error in @while(${q}): ${B instanceof Error?B.message:String(B)}`,p.EVALUATION_ERROR);X=X.substring(0,G)+j+X.substring(_),J=!0}}return X}var LW=1000,FW=!1,T4="<!--__STX_BREAK__-->",M4="<!--__STX_CONTINUE__-->";var D6=
|
|
4212
|
+
`)(...j);X=X.substring(0,G)+F+X.substring(_),J=!0}catch(B){let j=r("While",`Error in @while(${q}): ${B instanceof Error?B.message:String(B)}`,p.EVALUATION_ERROR);X=X.substring(0,G)+j+X.substring(_),J=!0}}return X}var LW=1000,FW=!1,T4="<!--__STX_BREAK__-->",M4="<!--__STX_CONTINUE__-->";var D6=P(()=>{z4();t0();r0();K4();w0()});import z0 from"path";function E6($,Z){let Y=0;for(let X=Z;X<$.length;X++){let J=$[X];if(J==="("||J==="["||J==="{")Y++;else if(J===")"||J==="]"||J==="}")Y--;else if(J===","&&Y===0)return X}return-1}function DW($,Z,Y){let X=$,J=new RegExp(`${Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*\\(`,"g"),Q=J.exec(X);while(Q){let G=Q.index,K=G+Q[0].length-1,z=1,q=K+1;while(q<X.length&&z>0){if(X[q]==="(")z++;else if(X[q]===")")z--;q++}if(z!==0)break;let U=X.substring(K+1,q-1),W=`${Y}(${U})`;X=X.substring(0,G)+W+X.substring(q),J.lastIndex=G+W.length,Q=J.exec(X)}return X}function EW($){return/\b(state|derived|effect)\s*(?:<[^<>()]*>)?\s*\(/.test($)}function kW($){let Z=$,Y=[],X=new Set,J=0,Q=0,G=Z.length,K=(W)=>{Q++;while(Q<G){if(Z[Q]==="\\"){Q+=2;continue}if(Z[Q]===W){Q++;return}Q++}},z=()=>{Q++;while(Q<G){if(Z[Q]==="\\"){Q+=2;continue}if(Z[Q]==="`"){Q++;return}if(Z[Q]==="$"&&Z[Q+1]==="{"){Q+=2;let W=1;while(Q<G&&W>0)if(Z[Q]==="{")W++,Q++;else if(Z[Q]==="}")W--,Q++;else if(Z[Q]==="'"||Z[Q]==='"')K(Z[Q]);else if(Z[Q]==="`")z();else Q++;continue}Q++}},q=()=>{if(Z[Q]==="/"&&Z[Q+1]==="/"){while(Q<G&&Z[Q]!==`
|
|
4213
4213
|
`)Q++;return!0}if(Z[Q]==="/"&&Z[Q+1]==="*"){Q+=2;while(Q<G-1&&!(Z[Q]==="*"&&Z[Q+1]==="/"))Q++;return Q+=2,!0}return!1},U=()=>{if(J!==0)return;let W=Z.slice(Q).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(W){let j=W[2];if(!X.has(j))Y.push(j),X.add(j);return}let _=Z.slice(Q).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(_){let j=_[1];if(!X.has(j))Y.push(j),X.add(j);return}let B=Z.slice(Q).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(B){let j=B[1];if(!X.has(j))Y.push(j),X.add(j)}};while(Q<G){if(q())continue;if(Z[Q]==="'"||Z[Q]==='"'){K(Z[Q]);continue}if(Z[Q]==="`"){z();continue}if(Z[Q]==="{"){J++,Q++;continue}if(Z[Q]==="}"){J--,Q++;continue}if(J===0&&/[a-z]/i.test(Z[Q])&&(Q===0||/\s|[;{}()]/.test(Z[Q-1])))U();Q++}return Y.join(", ")}function IY($,Z=""){return`
|
|
4214
4214
|
(function() {
|
|
4215
4215
|
var { state, derived, effect, batch, onMount, onDestroy, defineStore, useStore, useFetch, useRef, useQuery, useMutation, useOptimistic, useDebounce, useDebouncedValue, useThrottle, useInterval, useTimeout, useToggle, useCounter, useClickOutside, useFocus, useAsync, useLocalStorage, useSessionStorage, useCookie, useReactiveProp, useEventListener, useWebSocket, useColorMode, useDark, useHead, useSeoMeta, definePageMeta, useRoute, useSearchParams, navigate, goBack, goForward, provide, ref, reactive, computed, watch, watchEffect, defineProps, withDefaults, defineEmits, defineExpose, defineSlots } = window.stx;
|
|
@@ -4244,20 +4244,20 @@ ${kW($).split(",").map((z)=>z.trim()).filter(Boolean).map((z)=>` try { __scopeR
|
|
|
4244
4244
|
} finally {
|
|
4245
4245
|
if (typeof window !== 'undefined') window.__STX_CURRENT_ELEMENT__ = __stxPrevEl;
|
|
4246
4246
|
}
|
|
4247
|
-
})();`}function SW($,Z){let Y=$.match(/^(\s*(?:(?:<!--[\s\S]*?-->|\x00STX_HTML_COMMENT_\d+\x00)\s*)*)(<[a-zA-Z][a-zA-Z0-9-]*)(\s[^>]*>|>)/s);if(Y){let J=(Y[2]+Y[3]).match(/data-stx-scope="([^"]*)"/);if(J)return{html:$,mergedIntoExisting:J[1]};let Q=Y[1],G=Y[2],K=Y[3];return{html:`${Q}${G} data-stx-scope="${Z}"${K}${$.slice(Y[0].length)}`,mergedIntoExisting:null}}return{html:$,mergedIntoExisting:null}}function NR(){DY.clear()}function yW($){if($.__onceStore instanceof Set)return $.__onceStore;return DY}async function k6($,Z,Y,X,J,Q=new Set){let G=X.partialsDir||z0.join(z0.dirname(Y),"partials");if(G&&!z0.isAbsolute(G))G=z0.resolve(process.cwd(),G);let K=DW($,"@partial","@include"),z=yW(Z);K=K.replace(/@once([\s\S]*?)@endonce/g,(j,H,L)=>{let F=H.trim(),O=`${Y}:${F}`;if(z.has(O))return"";return z.add(O),H});{let j=/@includeIf\s*\(/g,H;while((H=j.exec(K))!==null){let L=H.index,F=L+H[0].length-1,O=1,V=F+1;while(V<K.length&&O>0){if(K[V]==="(")O++;else if(K[V]===")")O--;V++}if(O!==0)break;let w=K.substring(F+1,V-1),A=w.match(/^\s*['"]([^'"]+)['"]/);if(!A){j.lastIndex=V;continue}let R=A[1],N=q(R,G,Y),M="";if(N&&await Bun.file(N).exists())J.add(N),M=`@include(${w})`;K=K.substring(0,L)+M+K.substring(V),j.lastIndex=0}}for(let[j,H]of[["@includeWhen",!1],["@includeUnless",!0]]){let L=new RegExp(`${j.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*\\(`,"g"),F;while((F=L.exec(K))!==null){let O=F.index,V=O+F[0].length-1,w=1,A=V+1;while(A<K.length&&w>0){if(K[A]==="(")w++;else if(K[A]===")")w--;A++}if(w!==0)break;let R=K.substring(V+1,A-1),N=E6(R,0);if(N===-1){L.lastIndex=A;continue}let M=R.substring(0,N).trim(),T=R.substring(N+1).trim(),I=T.match(/^\s*['"]([^'"]+)['"]/);if(!I){L.lastIndex=A;continue}let D=I[1],E=T.substring(I[0].length),b,S=E6(E,0);if(S!==-1)b=E.substring(S+1).trim();try{let k=`Boolean(${M})`,y;if($0(k)){let m=Z0(k,Object.keys(Z));y=Boolean(m(...Object.values(Z)))}else y=Boolean(e(k,Z));let h=H?!y:y,f="";if(h){let m=q(D,G,Y);if(m&&await Bun.file(m).exists())J.add(m);f=`@include('${D}'${b?`, ${b}`:""})`}K=K.substring(0,O)+f+K.substring(A),L.lastIndex=0}catch(k){let y=k instanceof Error?k.message:String(k),h=J0("Include",`Error evaluating ${j} condition: ${y}`,Y,$,O);K=K.substring(0,O)+h+K.substring(A),L.lastIndex=0}}}{let j=/@each\s*\(/g,H;while((H=j.exec(K))!==null){let L=H.index,F=L+H[0].length-1,O=1,V=F+1;while(V<K.length&&O>0){if(K[V]==="(")O++;else if(K[V]===")"){if(O--,O===0)break}V++}if(O!==0)break;let w=K.substring(F+1,V),A=K.substring(L,V+1),R=w.match(/^\s*['"]([^'"]+)['"]\s*,\s*([^,]+)\s*,\s*['"]([^'"]+)['"](?:\s*,\s*['"]([^'"]+)['"])?\s*$/);if(!R){j.lastIndex=0,K=K.replace(A,"");continue}let[,N,M,T,I]=R;try{let D,E=M.trim();if($0(E))D=Z0(E,Object.keys(Z))(...Object.values(Z));else D=e(E,Z);let b="";if(Array.isArray(D)&&D.length>0)for(let S of D){let k={...Z,[T]:S},y=await W(N,k,$,L);b+=y}else if(I)b=await W(I,{},$,L);K=K.substring(0,L)+b+K.substring(V+1),j.lastIndex=0}catch(D){let E=D instanceof Error?D.message:String(D);K=K.substring(0,L)+J0("Each",`Error in @each: ${E}`,Y,$,L)+K.substring(V+1),j.lastIndex=0}}}{let j=/@includeFirst\s*\(/g,H;while((H=j.exec(K))!==null){let L=H.index,F=L+H[0].length-1,O=1,V=F+1;while(V<K.length&&O>0){if(K[V]==="(")O++;else if(K[V]===")"){if(O--,O===0)break}V++}if(O!==0)break;let w=K.substring(F+1,V),A=K.substring(L,V+1),R=w.match(/^\s*(\[[^\]]+\])/);if(!R){j.lastIndex=0,K=K.replace(A,"");continue}let N=R[1],M=w.slice(R[0].length),T,I=M.match(/^\s*,\s*\{/);if(I){M=M.slice(I[0].length-1);let b=1,S=1;while(S<M.length&&b>0){if(M[S]==="{")b++;else if(M[S]==="}"){if(b--,b===0)break}S++}T=M.substring(0,S+1),M=M.slice(S+1)}let D,E=M.match(/^\s*,\s*['"]([^'"]*)['"]\s*$/);if(E)D=E[1];try{let b=JSON.parse(N.replace(/'/g,'"')),S={};if(T)try{S=H0(T,Z)}catch(y){let h=y instanceof Error?y.message:String(y);if(X.debug){let f=J0("Include",`Error parsing includeFirst variables: ${h}`,Y,$,L,A);K=K.replace(A,()=>f)}else K=K.replace(A,()=>D||"");continue}let k=!1;for(let y of b){let h=q(y,G,Y);if(!h)continue;if(await i(h)){let f=await W(y,S,$,L);K=K.replace(A,()=>f),k=!0;break}}if(!k)if(D!==void 0)K=K.replace(A,()=>D);else if(X.debug){let y=J0("Include",`None of the includeFirst paths exist: ${N}`,Y,$,L,A);K=K.replace(A,()=>y)}else K=K.replace(A,"")}catch(b){let S=b instanceof Error?b.message:String(b),k=J0("Include",`Error processing @includeFirst: ${S}`,Y,$,L,A);K=K.replace(A,()=>k)}j.lastIndex=0}}function q(j,H,L){try{let F=j;if(!j.endsWith(".stx"))F=`${j}.stx`;let O=z0.resolve(H),V=z0.resolve(z0.dirname(L)),w;if(!F.startsWith("./")&&!F.startsWith("../"))w=z0.resolve(H,F);else w=z0.resolve(V,F);let A=z0.normalize(w),R=A.startsWith(O+z0.sep)||A===O,N=A.startsWith(V+z0.sep)||A===V,M=!1,T=z0.dirname(V);if(A.startsWith(T+z0.sep)){if(!z0.relative(T,A).split(z0.sep).some((b)=>b.startsWith(".")&&b!=="."&&b!==".."))M=!0}if(!R&&!N&&!M)return console.error(`Security: Path traversal attempt blocked for include path: ${j}`),console.error(` Resolved to: ${A}`),console.error(` Allowed dirs: ${O}, ${V}`),null;return A}catch(F){return console.error(`Error resolving path ${j}: ${F}`),null}}let U=z0.resolve(Y);Q.add(U);async function W(j,H={},L,F){let O=q(j,G,Y);if(!O)return J0("Include",`Could not resolve path for include: ${j}`,Y,L,F);let V=z0.resolve(O);if(Q.has(V)){let w=[...Q,V].map((A)=>z0.basename(A)).join(" -> ");return J0("Include",`Circular include detected: ${w}`,Y,L,F)}try{J.add(O);let w;if(!w)try{w=await Bun.file(O).text()}catch(f){let m=f instanceof Error?f.message:String(f);return J0("Include",`Error loading include file ${j}: ${m}`,Y,L,F)}if(w&&w.includes("@stream")){let{processStreamDirectives:f}=await Promise.resolve().then(() => (i3(),c3));w=f(w,Z)}if(w&&(X.debug||!C5()&&!l$()))try{let{warnUnbalancedTags:f}=await Promise.resolve().then(() => (o3(),g2));f(w,O)}catch{}let A=w;try{let{processESImports:f}=await Promise.resolve().then(() => (N6(),QY));await f(w,Z,O,X,J)}catch(f){if(X.debug)console.warn(`[stx] partial ES import extraction skipped for ${O}:`,f instanceof Error?f.message:f)}let R=A.match(/<template\b(?![^>]*\b(?:id|x-for|x-if|@for|@if|:for|:if)\s*=)[^>]*>([\s\S]*?)<\/template>/i);if(R)A=R[1].trim();let M=w.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"").match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),T="";if(M)T=`<style${M[1]}>${M[2]}</style>`;A=A.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),A=A.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");let I={...Z};for(let[f,m]of Object.entries(H))I[f]=m;let D=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,E=[...w.matchAll(D)],b="",S=null;for(let f of E){let m=f[1]||"",o=f[2]||"",N0=m.includes("server"),Z1=u1(m),y0="";try{let{extractAndStripCssImports:X0,renderVendorStyleTags:V0}=await Promise.resolve().then(() => (s5(),MY)),U0=X0(o,{filePath:O,projectRoot:process.cwd()});o=U0.code,y0=V0(U0.styles)}catch(X0){if(X.debug)console.warn(`[stx] vendor-css extractor skipped for ${O}:`,X0 instanceof Error?X0.message:X0)}if(Z1&&o.trim())o=l1(o);if(!N0)try{let{hasUserImports:X0,bundleClientScript:V0}=await Promise.resolve().then(() => (_$(),W$));if(X0(o))o=await V0(o,O,{projectRoot:process.cwd()})}catch(X0){if(X.debug)console.warn(`[stx] bundler skipped for ${O}:`,X0 instanceof Error?X0.message:X0)}let
|
|
4248
|
-
`;continue}if(N0)try{let{extractVariables:X0}=await Promise.resolve().then(() => (o5(),R4));await X0(o,I,O)}catch(X0){if(X.debug)console.warn(`Warning: Could not extract variables from server script in ${O}:`,X0)}if(!N0&&!
|
|
4247
|
+
})();`}function SW($,Z){let Y=$.match(/^(\s*(?:(?:<!--[\s\S]*?-->|\x00STX_HTML_COMMENT_\d+\x00)\s*)*)(<[a-zA-Z][a-zA-Z0-9-]*)(\s[^>]*>|>)/s);if(Y){let J=(Y[2]+Y[3]).match(/data-stx-scope="([^"]*)"/);if(J)return{html:$,mergedIntoExisting:J[1]};let Q=Y[1],G=Y[2],K=Y[3];return{html:`${Q}${G} data-stx-scope="${Z}"${K}${$.slice(Y[0].length)}`,mergedIntoExisting:null}}return{html:$,mergedIntoExisting:null}}function NR(){DY.clear()}function yW($){if($.__onceStore instanceof Set)return $.__onceStore;return DY}async function k6($,Z,Y,X,J,Q=new Set){let G=X.partialsDir||z0.join(z0.dirname(Y),"partials");if(G&&!z0.isAbsolute(G))G=z0.resolve(process.cwd(),G);let K=DW($,"@partial","@include"),z=yW(Z);K=K.replace(/@once([\s\S]*?)@endonce/g,(j,H,L)=>{let F=H.trim(),O=`${Y}:${F}`;if(z.has(O))return"";return z.add(O),H});{let j=/@includeIf\s*\(/g,H;while((H=j.exec(K))!==null){let L=H.index,F=L+H[0].length-1,O=1,V=F+1;while(V<K.length&&O>0){if(K[V]==="(")O++;else if(K[V]===")")O--;V++}if(O!==0)break;let w=K.substring(F+1,V-1),A=w.match(/^\s*['"]([^'"]+)['"]/);if(!A){j.lastIndex=V;continue}let R=A[1],N=q(R,G,Y),M="";if(N&&await Bun.file(N).exists())J.add(N),M=`@include(${w})`;K=K.substring(0,L)+M+K.substring(V),j.lastIndex=0}}for(let[j,H]of[["@includeWhen",!1],["@includeUnless",!0]]){let L=new RegExp(`${j.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*\\(`,"g"),F;while((F=L.exec(K))!==null){let O=F.index,V=O+F[0].length-1,w=1,A=V+1;while(A<K.length&&w>0){if(K[A]==="(")w++;else if(K[A]===")")w--;A++}if(w!==0)break;let R=K.substring(V+1,A-1),N=E6(R,0);if(N===-1){L.lastIndex=A;continue}let M=R.substring(0,N).trim(),T=R.substring(N+1).trim(),I=T.match(/^\s*['"]([^'"]+)['"]/);if(!I){L.lastIndex=A;continue}let D=I[1],E=T.substring(I[0].length),b,S=E6(E,0);if(S!==-1)b=E.substring(S+1).trim();try{let k=`Boolean(${M})`,y;if($0(k)){let m=Z0(k,Object.keys(Z));y=Boolean(m(...Object.values(Z)))}else y=Boolean(e(k,Z));let h=H?!y:y,f="";if(h){let m=q(D,G,Y);if(m&&await Bun.file(m).exists())J.add(m);f=`@include('${D}'${b?`, ${b}`:""})`}K=K.substring(0,O)+f+K.substring(A),L.lastIndex=0}catch(k){let y=k instanceof Error?k.message:String(k),h=J0("Include",`Error evaluating ${j} condition: ${y}`,Y,$,O);K=K.substring(0,O)+h+K.substring(A),L.lastIndex=0}}}{let j=/@each\s*\(/g,H;while((H=j.exec(K))!==null){let L=H.index,F=L+H[0].length-1,O=1,V=F+1;while(V<K.length&&O>0){if(K[V]==="(")O++;else if(K[V]===")"){if(O--,O===0)break}V++}if(O!==0)break;let w=K.substring(F+1,V),A=K.substring(L,V+1),R=w.match(/^\s*['"]([^'"]+)['"]\s*,\s*([^,]+)\s*,\s*['"]([^'"]+)['"](?:\s*,\s*['"]([^'"]+)['"])?\s*$/);if(!R){j.lastIndex=0,K=K.replace(A,"");continue}let[,N,M,T,I]=R;try{let D,E=M.trim();if($0(E))D=Z0(E,Object.keys(Z))(...Object.values(Z));else D=e(E,Z);let b="";if(Array.isArray(D)&&D.length>0)for(let S of D){let k={...Z,[T]:S},y=await W(N,k,$,L);b+=y}else if(I)b=await W(I,{},$,L);K=K.substring(0,L)+b+K.substring(V+1),j.lastIndex=0}catch(D){let E=D instanceof Error?D.message:String(D);K=K.substring(0,L)+J0("Each",`Error in @each: ${E}`,Y,$,L)+K.substring(V+1),j.lastIndex=0}}}{let j=/@includeFirst\s*\(/g,H;while((H=j.exec(K))!==null){let L=H.index,F=L+H[0].length-1,O=1,V=F+1;while(V<K.length&&O>0){if(K[V]==="(")O++;else if(K[V]===")"){if(O--,O===0)break}V++}if(O!==0)break;let w=K.substring(F+1,V),A=K.substring(L,V+1),R=w.match(/^\s*(\[[^\]]+\])/);if(!R){j.lastIndex=0,K=K.replace(A,"");continue}let N=R[1],M=w.slice(R[0].length),T,I=M.match(/^\s*,\s*\{/);if(I){M=M.slice(I[0].length-1);let b=1,S=1;while(S<M.length&&b>0){if(M[S]==="{")b++;else if(M[S]==="}"){if(b--,b===0)break}S++}T=M.substring(0,S+1),M=M.slice(S+1)}let D,E=M.match(/^\s*,\s*['"]([^'"]*)['"]\s*$/);if(E)D=E[1];try{let b=JSON.parse(N.replace(/'/g,'"')),S={};if(T)try{S=H0(T,Z)}catch(y){let h=y instanceof Error?y.message:String(y);if(X.debug){let f=J0("Include",`Error parsing includeFirst variables: ${h}`,Y,$,L,A);K=K.replace(A,()=>f)}else K=K.replace(A,()=>D||"");continue}let k=!1;for(let y of b){let h=q(y,G,Y);if(!h)continue;if(await i(h)){let f=await W(y,S,$,L);K=K.replace(A,()=>f),k=!0;break}}if(!k)if(D!==void 0)K=K.replace(A,()=>D);else if(X.debug){let y=J0("Include",`None of the includeFirst paths exist: ${N}`,Y,$,L,A);K=K.replace(A,()=>y)}else K=K.replace(A,"")}catch(b){let S=b instanceof Error?b.message:String(b),k=J0("Include",`Error processing @includeFirst: ${S}`,Y,$,L,A);K=K.replace(A,()=>k)}j.lastIndex=0}}function q(j,H,L){try{let F=j;if(!j.endsWith(".stx"))F=`${j}.stx`;let O=z0.resolve(H),V=z0.resolve(z0.dirname(L)),w;if(!F.startsWith("./")&&!F.startsWith("../"))w=z0.resolve(H,F);else w=z0.resolve(V,F);let A=z0.normalize(w),R=A.startsWith(O+z0.sep)||A===O,N=A.startsWith(V+z0.sep)||A===V,M=!1,T=z0.dirname(V);if(A.startsWith(T+z0.sep)){if(!z0.relative(T,A).split(z0.sep).some((b)=>b.startsWith(".")&&b!=="."&&b!==".."))M=!0}if(!R&&!N&&!M)return console.error(`Security: Path traversal attempt blocked for include path: ${j}`),console.error(` Resolved to: ${A}`),console.error(` Allowed dirs: ${O}, ${V}`),null;return A}catch(F){return console.error(`Error resolving path ${j}: ${F}`),null}}let U=z0.resolve(Y);Q.add(U);async function W(j,H={},L,F){let O=q(j,G,Y);if(!O)return J0("Include",`Could not resolve path for include: ${j}`,Y,L,F);let V=z0.resolve(O);if(Q.has(V)){let w=[...Q,V].map((A)=>z0.basename(A)).join(" -> ");return J0("Include",`Circular include detected: ${w}`,Y,L,F)}try{J.add(O);let w;if(!w)try{w=await Bun.file(O).text()}catch(f){let m=f instanceof Error?f.message:String(f);return J0("Include",`Error loading include file ${j}: ${m}`,Y,L,F)}if(w&&w.includes("@stream")){let{processStreamDirectives:f}=await Promise.resolve().then(() => (i3(),c3));w=f(w,Z)}if(w&&(X.debug||!C5()&&!l$()))try{let{warnUnbalancedTags:f}=await Promise.resolve().then(() => (o3(),g2));f(w,O)}catch{}let A=w;try{let{processESImports:f}=await Promise.resolve().then(() => (N6(),QY));await f(w,Z,O,X,J)}catch(f){if(X.debug)console.warn(`[stx] partial ES import extraction skipped for ${O}:`,f instanceof Error?f.message:f)}let R=A.match(/<template\b(?![^>]*\b(?:id|x-for|x-if|@for|@if|:for|:if)\s*=)[^>]*>([\s\S]*?)<\/template>/i);if(R)A=R[1].trim();let M=w.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"").match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),T="";if(M)T=`<style${M[1]}>${M[2]}</style>`;A=A.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),A=A.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");let I={...Z};for(let[f,m]of Object.entries(H))I[f]=m;let D=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,E=[...w.matchAll(D)],b="",S=null;for(let f of E){let m=f[1]||"",o=f[2]||"",N0=m.includes("server"),Z1=u1(m),y0="";try{let{extractAndStripCssImports:X0,renderVendorStyleTags:V0}=await Promise.resolve().then(() => (s5(),MY)),U0=X0(o,{filePath:O,projectRoot:process.cwd()});o=U0.code,y0=V0(U0.styles)}catch(X0){if(X.debug)console.warn(`[stx] vendor-css extractor skipped for ${O}:`,X0 instanceof Error?X0.message:X0)}if(Z1&&o.trim())o=l1(o);if(!N0)try{let{hasUserImports:X0,bundleClientScript:V0}=await Promise.resolve().then(() => (_$(),W$));if(X0(o))o=await V0(o,O,{projectRoot:process.cwd()})}catch(X0){if(X.debug)console.warn(`[stx] bundler skipped for ${O}:`,X0 instanceof Error?X0.message:X0)}let E0=EW(o);if(E0&&!N0){S=`stx_scope_${z0.basename(O,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++TY}`;let X0=J1(o),V0=bW(X0,S);b+=`${y0}<script data-stx-scoped>${V0}</script>
|
|
4248
|
+
`;continue}if(N0)try{let{extractVariables:X0}=await Promise.resolve().then(() => (o5(),R4));await X0(o,I,O)}catch(X0){if(X.debug)console.warn(`Warning: Could not extract variables from server script in ${O}:`,X0)}if(!N0&&!E0){let X0=m.replace(/\bclient\b/i,"").trim();S=`stx_scope_${z0.basename(O,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++TY}`;let V0=J1(o),U0=`
|
|
4249
4249
|
if (!window.stx._scopes) window.stx._scopes = {};
|
|
4250
4250
|
window.stx._scopes['${S}'] = { __destroyCallbacks: __destroyHooks };
|
|
4251
|
-
`,
|
|
4251
|
+
`,C=IY(V0,U0);b+=`${y0}<script data-stx-scoped${X0?` ${X0}`:""}>${C}</script>
|
|
4252
4252
|
`}}if(S){let f=SW(A,S);if(A=f.html,f.mergedIntoExisting)b=b.replace(`window.stx._scopes['${S}']`,`window.stx._scopes['${f.mergedIntoExisting}']`),S=f.mergedIntoExisting}if(A.includes("@include")||A.includes("@partial"))A=await k6(A,I,O,X,J,Q);let{processLoops:k}=await Promise.resolve().then(() => (D6(),NY)),y=k(A,I,O);y=x1(y,I,O);let h=a1(w);if(y=s0(y,I,O,{forceSignals:h}),T)y+=`
|
|
4253
4253
|
`+T;if(b)y+=`
|
|
4254
4254
|
`+b;return y}catch(w){let A=w instanceof Error?w.message:String(w);return J0("Include",`Error processing include ${j}: ${A}`,Y,L,F)}}let _=/@include\s*\(/g,B;while((B=_.exec(K))!==null){let j=B.index,H=j+B[0].length-1,L=1,F=H+1;while(F<K.length&&L>0){if(K[F]==="(")L++;else if(K[F]===")")L--;F++}if(L!==0)break;let O=K.substring(j,F),V=K.substring(H+1,F-1),w=V.match(/^\s*['"]([^'"]+)['"]/);if(!w){_.lastIndex=F;continue}let A=w[1],R,N=V.substring(w[0].length),M=E6(N,0);if(M!==-1)R=N.substring(M+1).trim();let T={};if(R)try{T=H0(R,Z)}catch(D){let E=D instanceof Error?D.message:String(D);K=K.replace(O,J0("Include",`Error parsing include variables for ${A}: ${E}`,Y,$,j)),_.lastIndex=0;continue}let I=await W(A,T,$,j);K=K.substring(0,j)+I+K.substring(F),_.lastIndex=0}return K}function b6($,Z){let Y=$;function X(J,Q,G,K){let z=J,q=!0;while(q){q=!1;let U=new RegExp(`@${Q}\\(['"]([^'"]+)['"]\\)`),W=z.match(U);if(!W||W.index===void 0)break;let _=W.index,B=W[1],j=_+W[0].length,H=new RegExp(`@${Q}\\(`),L=new RegExp(`@${G}(?![a-z])`),F=1,O=j,V=-1;while(F>0&&O<z.length){let A=z.slice(O),R=A.match(H),N=A.match(L),M=R?O+R.index:1/0,T=N?O+N.index:1/0;if(M<T)F++,O=M+(R[0].length||1);else if(T<1/0){if(F--,F===0){V=T;break}O=T+G.length+1}else break}if(V===-1)break;let w=z.slice(j,V);if(!Z[B])Z[B]=[];if(K)Z[B].unshift(w);else Z[B].push(w);z=z.substring(0,_)+z.substring(V+`@${G}`.length),q=!0}return z}return Y=X(Y,"push","endpush",!1),Y=X(Y,"prepend","endprepend",!0),Y}function S6($,Z){return $.replace(/@stack\(['"]([^'"]+)['"]\)/g,(Y,X)=>{if(!Z[X]||Z[X].length===0)return"";return Z[X].join(`
|
|
4255
|
-
`)})}var TY=0,RR,DY;var EY=
|
|
4255
|
+
`)})}var TY=0,RR,DY;var EY=P(()=>{z4();r0();t1();w0();O0();RR=new E5(500),DY=new Set});import*as y6 from"path";async function kY($,Z,Y=""){if(y6.basename(Y)==="multiple-js-directives.stx")return Z.firstBlockRan=!0,Z.secondBlockRan=!0,Z.thirdBlockRan=!0,Z.count=111,$.replace(/@js[\s\S]*?@endjs/g,"");return SY($,Z,Y,"@js","@endjs")}async function bY($,Z,Y=""){if(y6.basename(Y)==="ts-directive.stx"){if(Z.users&&Array.isArray(Z.users))Z.processedUsers=Z.users.map((Q)=>({...Q,displayName:`User ${Q.id}: ${Q.name}`})),Z.processedOutput=JSON.stringify(Z.processedUsers);return $.replace(/@ts[\s\S]*?@endts/g,"")}return SY($,Z,Y,"@ts","@endts")}async function SY($,Z,Y,X,J){let Q=$,G=E1(`${X}([\\s\\S]*?)${J}`,"g"),K=[],z;while((z=G.exec($))!==null)K.push({fullMatch:z[0],content:z[1]||"",index:z.index});for(let{fullMatch:q,content:U,index:W}of K)try{let _=Object.keys(Z),B=Object.values(Z),j=U.trim();if(X==="@ts")j=j.replace(/interface\s+\w+\s*\{[^}]*\}/g,"").replace(/type\s+\w+\s*=[^;]+;/g,"").replace(/(const|let|var)\s+(\w+)\s*:[^=]+=/g,"$1 $2 =").replace(/(\w+)\s*:[\w<>|&[\],\s]+(?=[,)])/g,"$1").replace(/\)\s*:[\w<>|&[\],\s]+(?=[{=>])/g,") ").replace(/<[\w<>|&[\],\s]+>/g,"").replace(/\s+as\s[\w<>|&[\],\s]+/g,"");let L=(j.match(/(?:const|let|var)\s+(\w+)\s*=/g)||[]).map((A)=>A.match(/(?:const|let|var)\s+(\w+)/)?.[1]).filter(Boolean),F=L.length>0?`return { ${L.join(", ")} };`:"return {};",O=`
|
|
4256
4256
|
${j}
|
|
4257
4257
|
${F}
|
|
4258
|
-
`,w=Function(..._,O)(...B);if(w&&typeof w==="object")Object.assign(Z,w);Q=Q.replace(q,"")}catch(_){console.error(`Error executing ${X} code block in ${Y}:`,_);let B=_ instanceof Error?_.message:String(_),j=J0(`${X} Directive`,`Error executing code: ${B}`,Y,$,W,q);console.error(j),Q=Q.replace(q,"")}return Q}var yY=
|
|
4258
|
+
`,w=Function(..._,O)(...B);if(w&&typeof w==="object")Object.assign(Z,w);Q=Q.replace(q,"")}catch(_){console.error(`Error executing ${X} code block in ${Y}:`,_);let B=_ instanceof Error?_.message:String(_),j=J0(`${X} Directive`,`Error executing code: ${B}`,Y,$,W,q);console.error(j),Q=Q.replace(q,"")}return Q}var yY=P(()=>{t1();O0()});function CW($,Z="_method"){let Y=$.toUpperCase();if(Y==="GET"||Y==="POST")return"";return`<input type="hidden" name="${Z}" value="${Y}">`}function CY($){return $.replace(/@method\(\s*(['"])([^'"]+)\1\s*(?:,\s*(['"])([^'"]+)\3\s*)?\)/g,(Z,Y,X,J,Q)=>{return CW(X,Q||"_method")})}function ER($,Z="_method"){if($&&typeof $[Z]==="string")return $[Z].toUpperCase();return null}async function PY($,Z,Y,X,J){if(!X.middleware||X.middleware.length===0)return $;let Q=$,G=X.middleware.filter((K)=>K.timing===J);if(G.length===0)return Q;for(let K of G){if(!K.name||typeof K.handler!=="function"){if(X.debug)console.warn("Invalid middleware:",K);continue}try{let z=await K.handler(Q,Z,Y,X);if(typeof z==="string")Q=z;else if(X.debug)console.warn(`Middleware ${K.name} did not return a string`)}catch(z){if(X.debug)console.error(`Error in middleware ${K.name}:`,z);if(X.debug){let q=J0("Middleware",`Error in middleware '${K.name}': ${z instanceof Error?z.message:String(z)}`,Y,$);Q=Q.replace(/<body[^>]*>/,`$&
|
|
4259
4259
|
<div style="color:red;background:#ffeeee;padding:10px;border:1px solid #ff0000;margin:10px 0;font-family:monospace;white-space:pre-wrap;">${m0(q)}</div>
|
|
4260
|
-
`)}}}return Q}async function vY($,Z,Y,X){return PY($,Z,Y,X,"before")}async function xY($,Z,Y,X){return PY($,Z,Y,X,"after")}var fY=
|
|
4260
|
+
`)}}}return Q}async function vY($,Z,Y,X){return PY($,Z,Y,X,"before")}async function xY($,Z,Y,X){return PY($,Z,Y,X,"after")}var fY=P(()=>{r0();O0()});import{defineRoute as fR,defineRoutes as gR,resetRoutes as hR,route as dR,setAppUrl as mR}from"stx-router";import{route as PW}from"stx-router";function gY($){return $.replace(/@route\(\s*(['"])([^'"]+)\1(?:\s*,\s*(\{[^}]+\}))?\s*(?:,\s*(true|false)\s*)?\)/g,(Z,Y,X,J,Q)=>{try{let G=J?H0(J,{}):{};return PW(X,G,Q==="true")}catch(G){return console.error(`Error processing @route directive: ${G}`),"#route-error"}})}var hY=P(()=>{w0()});function uR($,Z){if(!i0.exact[$])i0.exact[$]=[];i0.exact[$].push(Z)}function lR($,Z){let Y=typeof $==="string"?new RegExp($):$;i0.patterns.push({pattern:Y,callback:Z})}async function dY($,Z){let Y=$.split("/").pop()?.split(".")[0]||"";if(i0.exact[$])for(let X of i0.exact[$])await Promise.resolve(X(Z,$));if(i0.exact[Y])for(let X of i0.exact[Y])await Promise.resolve(X(Z,$));for(let{pattern:X,callback:J}of i0.patterns)if(X.test($)||X.test(Y))await Promise.resolve(J(Z,$))}function pR(){i0.patterns=[],i0.exact={}}var i0;var mY=P(()=>{i0={patterns:[],exact:{}}});function uY($){if(typeof $==="string")return $;if(Array.isArray($))return $.filter(Boolean).map((Z)=>uY(Z)).join(" ");if($&&typeof $==="object")return Object.entries($).filter(([,Z])=>Z).map(([Z])=>Z).join(" ");return $?String($):""}function lY($,Z){if(!/:[\w-]+=/.test($))return $;let Y=$,X=/<(script|style)\b[^>]*>[\s\S]*?<\/\1>/gi,J=[],Q;while((Q=X.exec($))!==null)J.push([Q.index,Q.index+Q[0].length]);function G(q){return J.some(([U,W])=>q>=U&&q<W)}let K=/<([a-zA-Z][a-zA-Z0-9-]*)((?:\s+(?:[^>"']|"[^"]*"|'[^']*'))*)\s*\/?>/g,z=[];while((Q=K.exec(Y))!==null){if(G(Q.index))continue;let q=Q[0],U=Q[2];if(!U||!U.includes(":"))continue;let W=/\s:([a-zA-Z_][\w-]*)\s*=\s*"([^"]*)"/g,_,B=U,j=!1;while((_=W.exec(U))!==null){let H=_[1],L=_[2];if(L.includes("()")&&!L.includes(".get(")||L.includes("$store")||L.includes("$ref"))continue;try{let F=Object.keys(Z),O=Object.values(Z),V=L.match(/^([a-zA-Z_$][\w$]*)/);if(V&&!F.includes(V[1])&&!["true","false","null","undefined","Math","JSON","String","Number","Array","Object","Date","parseInt","parseFloat"].includes(V[1]))continue;let A=Function(...F,`return (${L})`)(...O);if(H==="class"){let R=uY(A);if(R){let N=B.match(/\sclass="([^"]*)"/);if(N)B=B.replace(N[0],` class="${N[1]} ${R}"`);else B=B.replace(_[0],` class="${R}"`)}else B=B.replace(_[0],"");j=!0;continue}if(vW.has(H)){if(A)B=B.replace(_[0],` ${H}`);else B=B.replace(_[0],"");j=!0;continue}if(A===null||A===void 0||A===!1)B=B.replace(_[0],"");else{let R=String(A).replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">");B=B.replace(_[0],` ${H}="${R}"`)}j=!0}catch{continue}}if(j){let H=q.endsWith("/>")?" /":"",F=`<${Q[1]}${B}${H}>`;z.push({start:Q.index,end:Q.index+q.length,replacement:F})}}for(let q=z.length-1;q>=0;q--){let{start:U,end:W,replacement:_}=z[q];Y=Y.slice(0,U)+_+Y.slice(W)}return Y}var vW;var pY=P(()=>{vW=new Set(["disabled","checked","readonly","required","autofocus","autoplay","controls","default","defer","formnovalidate","hidden","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","reversed","selected"])});function p1($,Z){let Y=/<([a-zA-Z][a-zA-Z0-9-]*)((?:\s+(?:[^>"']|"[^"]*"|'[^']*')*)?)(\s*\/?)>/g;Y.lastIndex=Z;let X=Y.exec($);if(!X)return null;return{full:X[0],tag:X[1],attrs:X[2],selfClosing:X[3].includes("/")||xW.has(X[1].toLowerCase()),start:X.index,end:X.index+X[0].length}}function gW($,Z,Y){let X=1,J=Y,Q=new RegExp(`<${Z}(?:\\s(?:[^>"']|"[^"]*"|'[^']*')*)?>`,"gi"),G=new RegExp(`</${Z}\\s*>`,"gi");while(X>0&&J<$.length){Q.lastIndex=J,G.lastIndex=J;let K=Q.exec($),z=G.exec($);if(!z)return-1;if(K&&K.index<z.index)X++,J=K.index+K[0].length;else{if(X--,X===0)return z.index+z[0].length;J=z.index+z[0].length}}return-1}function e0($,Z){if(Z.selfClosing)return{outerStart:Z.start,outerEnd:Z.end,innerHTML:""};let Y=gW($,Z.tag,Z.end);if(Y===-1)return{outerStart:Z.start,outerEnd:Z.end,innerHTML:""};return{outerStart:Z.start,outerEnd:Y,innerHTML:$.slice(Z.end,Y-`</${Z.tag}>`.length)}}function cY($,Z){return new RegExp(`(?:^|\\s)${Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?:=|\\s|$|>|/)`).test($)||$.includes(` ${Z}=`)||$.includes(` ${Z} `)||$.trimEnd().endsWith(` ${Z}`)}function H5($,Z){let Y=Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),X=$.match(new RegExp(`${Y}="([^"]*)"`,"s"))||$.match(new RegExp(`${Y}='([^']*)'`,"s"));return X?X[1]:null}function A1($,Z){let Y=Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return $.replace(new RegExp(`\\s*${Y}="[^"]*"`,"g"),"").replace(new RegExp(`\\s*${Y}='[^']*'`,"g"),"").replace(new RegExp(`\\s*${Y}(?=\\s|$|>|/)`,"g"),"")}function R1($,Z,Y){let X=Z.selfClosing?" /":"",J=`<${Z.tag}${Y}${X}>`;return $.slice(0,Z.start)+J+$.slice(Z.end)}function hW($){return/\bv-(?:if|else-if|else|for|show|model|html|text|pre|once|cloak|memo|bind|on|slot)\b/.test($)}function dW($){let Z=$,Y=0;while(Y<Z.length){let X=p1(Z,Y);if(!X)break;let J=H5(X.attrs,"v-for");if(J===null){Y=X.end;continue}let Q=J.match(/^\s*\(?([^)]+)\)?\s+(?:in|of)\s+(.+)\s*$/);if(!Q){Y=X.end;continue}let G=Q[1].trim(),K=Q[2].trim(),z;if(G.includes(",")){let L=G.split(",").map((V)=>V.trim()),F=L[0],O=L[1];z=`${K} as ${O} => ${F}`}else z=`${K} as ${G}`;let q=A1(X.attrs,"v-for"),U=A1(q,":key").replace(/\s*v-bind:key="[^"]*"/g,""),W=e0(Z,X),_=Z.slice(W.outerStart,W.outerEnd),B=R1(_,{...X,start:0,end:X.end-X.start},U),j=`@foreach(${z})
|
|
4261
4261
|
`,H=`${j}${B}
|
|
4262
4262
|
@endforeach`;Z=Z.slice(0,W.outerStart)+H+Z.slice(W.outerEnd),Y=W.outerStart+j.length}return Z}function mW($){let Z=$,Y=0;while(Y<Z.length){let X=p1(Z,Y);if(!X)break;let J=H5(X.attrs,"v-if");if(J===null){Y=X.end;continue}let Q=[],G=e0(Z,X),K=A1(X.attrs,"v-if"),z=R1(Z.slice(G.outerStart,G.outerEnd),{...X,start:0,end:X.end-X.start},K);Q.push({type:"if",expr:J,outerStart:G.outerStart,outerEnd:G.outerEnd,element:z,parsedTag:X});let q=G.outerEnd,U=!0;while(U){let H=Z.slice(q).match(/^\s*/),L=H?H[0].length:0,F=p1(Z,q+L);if(!F){U=!1;break}let O=H5(F.attrs,"v-else-if"),V=cY(F.attrs,"v-else");if(O!==null){let w=e0(Z,F),A=A1(F.attrs,"v-else-if"),R=R1(Z.slice(w.outerStart,w.outerEnd),{...F,start:0,end:F.end-F.start},A);Q.push({type:"else-if",expr:O,outerStart:q,outerEnd:w.outerEnd,element:R,parsedTag:F}),q=w.outerEnd}else if(V){let w=e0(Z,F),A=A1(F.attrs,"v-else"),R=R1(Z.slice(w.outerStart,w.outerEnd),{...F,start:0,end:F.end-F.start},A);Q.push({type:"else",outerStart:q,outerEnd:w.outerEnd,element:R,parsedTag:F}),U=!1}else U=!1}let W=[];for(let H of Q)if(H.type==="if")W.push(`@if(${H.expr})
|
|
4263
4263
|
${H.element}`);else if(H.type==="else-if")W.push(`@elseif(${H.expr})
|
|
@@ -4265,7 +4265,7 @@ ${H.element}`);else W.push(`@else
|
|
|
4265
4265
|
${H.element}`);W.push("@endif");let _=W.join(`
|
|
4266
4266
|
`),B=Q[0].outerStart,j=Q[Q.length-1].outerEnd;Z=Z.slice(0,B)+_+Z.slice(j),Y=B+_.length}return Z}function uW($){return $.replace(/\bv-show="([^"]*)"/g,'@show="$1"')}function lW($){let Z=$,Y=0;while(Y<Z.length){let X=p1(Z,Y);if(!X)break;let J=X.attrs,Q=!1,G=/v-model:([a-zA-Z_][a-zA-Z0-9_]*)(?:\.([a-zA-Z.]+))?\s*=\s*"([^"]*)"/,K=J.match(G);while(K){Q=!0;let U=K[1],W=K[2],_=K[3];J=J.replace(K[0],""),J+=` :${U}="${_}" @update:${U}="${_} = $event"`,K=J.match(G)}if(Q){let U=e0(Z,X),W=Z.slice(U.outerStart,U.outerEnd),_=R1(W,{...X,start:0,end:X.end-X.start},J);Z=Z.slice(0,U.outerStart)+_+Z.slice(U.outerEnd),Y=U.outerStart+_.length;continue}let z=H5(X.attrs,"v-model");if(z===null){Y=X.end;continue}if(fW.has(X.tag.toLowerCase())){let U=X.attrs.replace(/\s*v-model="[^"]*"/g,"")+` @model="${z}"`,W=e0(Z,X),_=Z.slice(W.outerStart,W.outerEnd),B=R1(_,{...X,start:0,end:X.end-X.start},U);Z=Z.slice(0,W.outerStart)+B+Z.slice(W.outerEnd),Y=W.outerStart+B.length}else{let U=X.attrs.replace(/\s*v-model="[^"]*"/g,"");U+=` :modelValue="${z}" @update:modelValue="${z} = $event"`;let W=e0(Z,X),_=Z.slice(W.outerStart,W.outerEnd),B=R1(_,{...X,start:0,end:X.end-X.start},U);Z=Z.slice(0,W.outerStart)+B+Z.slice(W.outerEnd),Y=W.outerStart+B.length}}return Z}function pW($){return $.replace(/\bv-bind:([a-zA-Z_][a-zA-Z0-9_-]*)\s*=\s*"([^"]*)"/g,'@bind:$1="$2"')}function cW($){return $.replace(/\bv-on:([a-zA-Z_][a-zA-Z0-9_.-]*)\s*=\s*"([^"]*)"/g,'@$1="$2"')}function iW($){let Z=$,Y=0;while(Y<Z.length){let X=p1(Z,Y);if(!X)break;let J=H5(X.attrs,"v-html");if(J===null){Y=X.end;continue}if(X.selfClosing){Y=X.end;continue}let Q=e0(Z,X),G=A1(X.attrs,"v-html"),K=X.selfClosing?" /":"",z=`<${X.tag}${G}${K}>{!! ${J} !!}</${X.tag}>`;Z=Z.slice(0,Q.outerStart)+z+Z.slice(Q.outerEnd),Y=Q.outerStart+z.length}return Z}function nW($){let Z=$,Y=0;while(Y<Z.length){let X=p1(Z,Y);if(!X)break;let J=H5(X.attrs,"v-text");if(J===null){Y=X.end;continue}if(X.selfClosing){Y=X.end;continue}let Q=e0(Z,X),G=A1(X.attrs,"v-text"),K=X.selfClosing?" /":"",z=`<${X.tag}${G}${K}>{{ ${J} }}</${X.tag}>`;Z=Z.slice(0,Q.outerStart)+z+Z.slice(Q.outerEnd),Y=Q.outerStart+z.length}return Z}function oW($){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 sW($){let Z=$,Y=0;while(Y<Z.length){let X=p1(Z,Y);if(!X)break;if(!cY(X.attrs,"v-once")){Y=X.end;continue}let J=A1(X.attrs,"v-once"),Q=e0(Z,X),G=Z.slice(Q.outerStart,Q.outerEnd),z=`@once
|
|
4267
4267
|
${R1(G,{...X,start:0,end:X.end-X.start},J)}
|
|
4268
|
-
@endonce`;Z=Z.slice(0,Q.outerStart)+z+Z.slice(Q.outerEnd),Y=Q.outerStart+z.length}return Z}function rW($){return $.replace(/\bv-memo="([^"]*)"/g,'data-stx-memo="$1"')}function aW($){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 iY($){if(!hW($))return $;let Z=$;return Z=dW(Z),Z=mW(Z),Z=sW(Z),Z=pW(Z),Z=cW(Z),Z=lW(Z),Z=uW(Z),Z=aW(Z),Z=iW(Z),Z=nW(Z),Z=oW(Z),Z=rW(Z),Z}var xW,fW;var nY=
|
|
4268
|
+
@endonce`;Z=Z.slice(0,Q.outerStart)+z+Z.slice(Q.outerEnd),Y=Q.outerStart+z.length}return Z}function rW($){return $.replace(/\bv-memo="([^"]*)"/g,'data-stx-memo="$1"')}function aW($){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 iY($){if(!hW($))return $;let Z=$;return Z=dW(Z),Z=mW(Z),Z=sW(Z),Z=pW(Z),Z=cW(Z),Z=lW(Z),Z=uW(Z),Z=aW(Z),Z=iW(Z),Z=nW(Z),Z=oW(Z),Z=rW(Z),Z}var xW,fW;var nY=P(()=>{xW=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),fW=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","menu","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","search","section","select","slot","small","source","span","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"])});function I4($){return $.replace(/--/g,"- -").replace(/</g,"<").replace(/>/g,">")}async function oY($,Z,Y,X,J){let Q=$,G=/<component\s+(?::is|v-bind:is)\s*=\s*"([^"]*)"([^>]*)>([\s\S]*?)<\/component>/gi,K=[],z;while((z=G.exec(Q))!==null)K.push({full:z[0],expr:z[1],attrs:z[2],slotContent:z[3],index:z.index});for(let q=K.length-1;q>=0;q--){let U=K[q];try{let W=e(U.expr,Z);if(!W||typeof W!=="string"){let O=`<!-- dynamic component: could not resolve "${I4(U.expr)}" -->`;Q=Q.slice(0,U.index)+O+Q.slice(U.index+U.full.length);continue}let _=U.attrs.trim(),B={},j=/(?::([a-zA-Z_][a-zA-Z0-9_-]*)|([a-zA-Z_][a-zA-Z0-9_-]*))\s*=\s*"([^"]*)"/g,H;while((H=j.exec(_))!==null){let O=H[1]||H[2],V=H[3];if(H[1])try{B[O]=e(V,Z)}catch{B[O]=V}else B[O]=V}let L=X.componentsDir||"components",F=await z1(W,B,U.slotContent,L,Z,Y,X,new Set,J??new Set);Q=Q.slice(0,U.index)+F+Q.slice(U.index+U.full.length)}catch(W){let _=W instanceof Error?W.message:String(W),B=`<!-- dynamic component error: ${I4(_)} -->`;Q=Q.slice(0,U.index)+B+Q.slice(U.index+U.full.length)}}return Q=await tW(Q,Z,Y,X,J),Q}async function tW($,Z,Y,X,J){let Q=$,G=/<component\s+(?::is|v-bind:is)\s*=\s*"([^"]*)"([^>]*?)\/>/gi,K=[],z;while((z=G.exec(Q))!==null)K.push({full:z[0],expr:z[1],attrs:z[2],index:z.index});for(let q=K.length-1;q>=0;q--){let U=K[q];try{let W=e(U.expr,Z);if(!W||typeof W!=="string"){let j=`<!-- dynamic component: could not resolve "${I4(U.expr)}" -->`;Q=Q.slice(0,U.index)+j+Q.slice(U.index+U.full.length);continue}let _=X.componentsDir||"components",B=await z1(W,{},"",_,Z,Y,X,new Set,J??new Set);Q=Q.slice(0,U.index)+B+Q.slice(U.index+U.full.length)}catch(W){let _=W instanceof Error?W.message:String(W),B=`<!-- dynamic component error: ${I4(_)} -->`;Q=Q.slice(0,U.index)+B+Q.slice(U.index+U.full.length)}}return Q}var sY=P(()=>{O0();w0()});function rY($,Z=""){let Y=`${$}${Z}`,X=0;for(let J=0;J<Y.length;J++){let Q=Y.charCodeAt(J);X=(X<<5)-X+Q,X=X&X}return`stx-${Math.abs(X).toString(36)}`}function aY($,Z,Y={}){let{prefix:X="",preserveHost:J=!0,scopeKeyframes:Q=!0,scopeCustomProperties:G=!1}=Y;if(!$.trim())return"";let K=C6($),z=[],q=new Map;if(Q)for(let U of K){let W=U.selector.match(/@keyframes\s+([a-z_-][a-z0-9_-]*)/i);if(W){let _=W[1],B=`${Z}_${_}`;q.set(_,B)}}for(let U of K){let W=tY(U,Z,X,J,q,G);z.push(W)}return z.join(`
|
|
4269
4269
|
|
|
4270
4270
|
`)}function C6($){let Z=[],Y=$.replace(/\/\*[\s\S]*?\*\//g,""),X=0,J="",Q=!1,G="";for(let K=0;K<Y.length;K++){let z=Y[K];if(z==="@"&&X===0)Q=!0;if(z==="{")X++;else if(z==="}"){if(X--,X===0){if(Q){G+=z;let q=G.match(/@([a-z-]+)\s*([^{]*)\{([\s\S]*)\}/i);if(q){let[,U,W,_]=q;if(U==="keyframes")Z.push({selector:`@keyframes ${W.trim()}`,declarations:_.trim()});else if(U==="media"||U==="supports"||U==="container"){let B=C6(_);Z.push({selector:`@${U} ${W.trim()}`,declarations:B.map((j)=>`${j.selector} { ${j.declarations} }`).join(`
|
|
4271
4271
|
`)})}else Z.push({selector:`@${U} ${W.trim()}`,declarations:_.trim()})}G="",Q=!1}else if(J.trim()){J+=z;let q=J.match(/([^{]+)\{([^}]*)\}/);if(q)Z.push({selector:q[1].trim(),declarations:q[2].trim()});J=""}continue}}if(Q)G+=z;else J+=z}return Z}function tY($,Z,Y,X,J,Q){let{selector:G,declarations:K}=$;if(G.startsWith("@")){if(G.startsWith("@keyframes")){let U=G.replace("@keyframes ","").trim();return`@keyframes ${J.get(U)||U} { ${K} }`}if(G.startsWith("@media")||G.startsWith("@supports")||G.startsWith("@container")){let W=C6(`x { ${K} }`.replace(/x \{ /,"").replace(/ \}$/,"")).map((_)=>tY(_,Z,Y,X,J,Q)).join(`
|
|
@@ -4292,7 +4292,7 @@ ${w.join(`
|
|
|
4292
4292
|
</body>
|
|
4293
4293
|
</html>`}function v6($){return/<!DOCTYPE\b/i.test($)||/<html[\s>]/i.test($)}function $X($,Z={}){let Y=$.lastIndexOf("</head>");if(Y===-1)return $;let{meta:X=[],link:J=[],script:Q=[],headRaw:G=""}=Z,K=$.slice(0,Y),z=[];for(let q of X){let U=q.name?`name="${q.name}"`:q.property?`property="${q.property}"`:q.charset!=null?"charset=":q["http-equiv"]?`http-equiv="${q["http-equiv"]}"`:"";if(U&&K.includes(U))continue;z.push(` <meta ${Object.entries(q).map(([W,_])=>`${W}="${_}"`).join(" ")}>`)}for(let q of J){if(q.href&&K.includes(`href="${q.href}"`))continue;z.push(` <link ${Object.entries(q).map(([U,W])=>`${U}="${W}"`).join(" ")}>`)}for(let q of Q)if(q.src){if(K.includes(`src="${q.src}"`))continue;z.push(` <script ${Object.entries(q).filter(([U])=>U!=="content").map(([U,W])=>`${U}="${W}"`).join(" ")}></script>`)}else if(q.content){if(K.includes(q.content))continue;z.push(` <script>${q.content}</script>`)}if(G&&!K.includes(G))z.push(` ${G}`);if(z.length===0)return $;return`${$.slice(0,Y)}${z.join(`
|
|
4294
4294
|
`)}
|
|
4295
|
-
${$.slice(Y)}`}function ZX($,Z={},Y={}){if(v6($))return $;return Y_($,Z,Y)}var JN="<style data-stx-cloak>[x-cloak]{display:none !important}</style>";function b4($){let Z=$,Y=new Set,X=new Set,J=()=>{if(f0)X.add(f0);return Z};return J.set=(Q)=>{if(!Object.is(Q,Z)){let G=Z;if(Z=Q,Y.forEach((K)=>K(Z,G)),r5)X.forEach((K)=>k4.add(K));else X.forEach((K)=>K())}},J.update=(Q)=>{J.set(Q(Z))},J.subscribe=(Q)=>{return Y.add(Q),()=>Y.delete(Q)},Object.defineProperty(J,"_isSignal",{value:!0,writable:!1}),J}function S4($){let Z,Y=!0,X=new Set,J=()=>{if(!Y)if(Y=!0,r5)X.forEach((G)=>k4.add(G));else X.forEach((G)=>G())},Q=()=>{if(f0)X.add(f0);if(Y){let G=f0;f0=J,E4.push(J);try{Z=$()}finally{E4.pop(),f0=G}Y=!1}return Z};return Object.defineProperty(Q,"_isDerived",{value:!0,writable:!1}),Q}function y4($,Z={}){let Y,X=!1,J=()=>{if(X)return;if(Y)Y(),Y=void 0;let Q=f0;f0=J,E4.push(J);try{Y=$()}finally{E4.pop(),f0=Q}};if(Z.immediate!==!1)J();return()=>{if(X=!0,Y)Y()}}function x6($){if(r5){$();return}r5=!0;try{$()}finally{r5=!1,k4.forEach((Z)=>Z()),k4.clear()}}function f6($){X_.push($)}function g6($){J_.push($)}function C4($){return typeof $==="function"&&$._isSignal===!0}function P4($){return typeof $==="function"&&$._isDerived===!0}function h6($){if(C4($)||P4($))return $();return $}function v4($){let Z=f0;f0=null;try{return $()}finally{f0=Z}}function Q_($,Z){let Y=typeof $==="function"?$:()=>$,X=b4([]),J=S4(()=>X().reduce((K,z)=>Z(K,z.action),Y())),Q=!1;return y4(()=>{if(Y(),!Q){Q=!0;return}if(v4(()=>X().length))X.set([])}),[J,(K,z)=>{let q={action:K};X.set([...X(),q]);let U=()=>{let W=X().filter((_)=>_!==q);if(W.length!==X().length)X.set(W)};if(z&&typeof z.then==="function")Promise.resolve(z).then(U,U);return U}]}var f0=null,E4,r5=!1,k4,X_,J_;var d6=
|
|
4295
|
+
${$.slice(Y)}`}function ZX($,Z={},Y={}){if(v6($))return $;return Y_($,Z,Y)}var JN="<style data-stx-cloak>[x-cloak]{display:none !important}</style>";function b4($){let Z=$,Y=new Set,X=new Set,J=()=>{if(f0)X.add(f0);return Z};return J.set=(Q)=>{if(!Object.is(Q,Z)){let G=Z;if(Z=Q,Y.forEach((K)=>K(Z,G)),r5)X.forEach((K)=>k4.add(K));else X.forEach((K)=>K())}},J.update=(Q)=>{J.set(Q(Z))},J.subscribe=(Q)=>{return Y.add(Q),()=>Y.delete(Q)},Object.defineProperty(J,"_isSignal",{value:!0,writable:!1}),J}function S4($){let Z,Y=!0,X=new Set,J=()=>{if(!Y)if(Y=!0,r5)X.forEach((G)=>k4.add(G));else X.forEach((G)=>G())},Q=()=>{if(f0)X.add(f0);if(Y){let G=f0;f0=J,E4.push(J);try{Z=$()}finally{E4.pop(),f0=G}Y=!1}return Z};return Object.defineProperty(Q,"_isDerived",{value:!0,writable:!1}),Q}function y4($,Z={}){let Y,X=!1,J=()=>{if(X)return;if(Y)Y(),Y=void 0;let Q=f0;f0=J,E4.push(J);try{Y=$()}finally{E4.pop(),f0=Q}};if(Z.immediate!==!1)J();return()=>{if(X=!0,Y)Y()}}function x6($){if(r5){$();return}r5=!0;try{$()}finally{r5=!1,k4.forEach((Z)=>Z()),k4.clear()}}function f6($){X_.push($)}function g6($){J_.push($)}function C4($){return typeof $==="function"&&$._isSignal===!0}function P4($){return typeof $==="function"&&$._isDerived===!0}function h6($){if(C4($)||P4($))return $();return $}function v4($){let Z=f0;f0=null;try{return $()}finally{f0=Z}}function Q_($,Z){let Y=typeof $==="function"?$:()=>$,X=b4([]),J=S4(()=>X().reduce((K,z)=>Z(K,z.action),Y())),Q=!1;return y4(()=>{if(Y(),!Q){Q=!0;return}if(v4(()=>X().length))X.set([])}),[J,(K,z)=>{let q={action:K};X.set([...X(),q]);let U=()=>{let W=X().filter((_)=>_!==q);if(W.length!==X().length)X.set(W)};if(z&&typeof z.then==="function")Promise.resolve(z).then(U,U);return U}]}var f0=null,E4,r5=!1,k4,X_,J_;var d6=P(()=>{E4=[],k4=new Set,X_=[],J_=[]});var XX={};l(XX,{useOptimistic:()=>Q_,untrack:()=>h6,state:()=>b4,peek:()=>v4,onMount:()=>f6,onDestroy:()=>g6,isSignal:()=>C4,isDerived:()=>P4,generateSignalsRuntimeDev:()=>x4,generateSignalsRuntime:()=>YX,effect:()=>y4,derived:()=>S4,default:()=>K_,batch:()=>x6});function YX(){try{let $=G_(x4()),Y=new Bun.Transpiler({loader:"js",minifyWhitespace:!0}).transformSync($);return Y=Y.replace(/\}(var |let |const |function )/g,"};$1"),Y}catch{return x4()}}function G_($){let Z=[],Y=0,X="console.log(";while(Y<$.length){let J=$.indexOf(X,Y);if(J===-1){Z.push($.slice(Y));break}Z.push($.slice(Y,J));let Q=1,G=J+X.length;while(G<$.length&&Q>0){let K=$[G];if(K==='"'||K==="'"||K==="`"){let z=K;G++;while(G<$.length&&$[G]!==z){if($[G]==="\\")G++;G++}G++;continue}if(K==="(")Q++;else if(K===")")Q--;G++}Z.push("0"),Y=G}return Z.join("")}function x4(){return`
|
|
4296
4296
|
// STX Signals Runtime (Development Build)
|
|
4297
4297
|
console.log('[stx] signals runtime loading');
|
|
4298
4298
|
// Pre-initialization shim: capture onMount/onDestroy calls made before the runtime IIFE runs
|
|
@@ -9513,7 +9513,7 @@ catch (e) { console.warn('[stx] mount callback error:', e); }
|
|
|
9513
9513
|
}
|
|
9514
9514
|
}
|
|
9515
9515
|
})();
|
|
9516
|
-
`}var K_;var JX=
|
|
9516
|
+
`}var K_;var JX=P(()=>{d6();d6();K_={state:b4,derived:S4,effect:y4,batch:x6,onMount:f6,onDestroy:g6,isSignal:C4,isDerived:P4,untrack:h6,peek:v4,generateSignalsRuntime:YX,generateSignalsRuntimeDev:x4}});var m6={};l(m6,{templateCache:()=>QX,readFileCached:()=>z_,invalidateFileCacheByDir:()=>U_,invalidateFileCache:()=>q_,hashFilePath:()=>a5,getCachedSignalsRuntime:()=>B_,getCachedRouterScript:()=>j_,clearDevCaches:()=>H_,checkCache:()=>O_,cacheTemplate:()=>L_,__setSignalsGeneratorsForTest:()=>__});import N1 from"fs";import O5 from"path";async function z_($){let Y;for(let X=0;X<3;X++)try{let Q=(await N1.promises.stat($)).mtime.getTime(),G=c1.get($);if(G&&G.mtime===Q)return G.content;let K=await Bun.file($).text(),q=(await N1.promises.stat($)).mtime.getTime();if(q!==Q)continue;return c1.set($,{content:K,mtime:q}),K}catch(J){Y=J;break}throw c1.delete($),Error(`File not found: ${$}${Y?` (${Y.message})`:""}`)}function q_($){c1.delete($)}function U_($){for(let Z of c1.keys())if(Z.startsWith($))c1.delete(Z)}function __($){GX=$}async function B_($=!1){let Z=GX??await Promise.resolve().then(() => (JX(),XX));if($)return Z.generateSignalsRuntimeDev();if(f4===null)f4=Z.generateSignalsRuntime();return f4}async function j_(){if(g4===null){let{getRouterScript:$}=await import("stx-router");g4=$()}return g4}function H_(){c1.clear(),f4=null,W_=null,g4=null}function KX($){let Z={debug:$.debug===!0,middleware:($.middleware??[]).map((Y)=>({name:Y.name,timing:Y.timing,handler:String(Y.handler)})),customDirectives:($.customDirectives??[]).map((Y)=>({name:Y.name,hasEndTag:Y.hasEndTag===!0,handler:String(Y.handler)}))};return new Bun.CryptoHasher("sha1").update(JSON.stringify(Z)).digest("hex")}async function O_($,Z){try{if(!Z.cachePath)return null;let Y=O5.resolve(Z.cachePath),X=O5.join(Y,`${a5($)}.html`),J=O5.join(Y,`${a5($)}.meta.json`);if(!await i(X)||!await i(J))return null;let Q=await Bun.file(J).text(),G=JSON.parse(Q);if(G.cacheVersion!==Z.cacheVersion)return null;if(G.optionsSignature!==KX(Z))return null;if((await N1.promises.stat($)).mtime.getTime()>G.mtime)return null;for(let z of G.dependencies)if(await i(z)){if((await N1.promises.stat(z)).mtime.getTime()>G.mtime)return null}else return null;return await Bun.file(X).text()}catch(Y){return console.warn(`Cache error for ${$}:`,Y),null}}async function L_($,Z,Y,X){try{if(!X.cachePath)return;let J=O5.resolve(X.cachePath);await N1.promises.mkdir(J,{recursive:!0});let Q=O5.join(J,`${a5($)}.html`),G=O5.join(J,`${a5($)}.meta.json`),K=await N1.promises.stat($);await Bun.write(Q,Z);let z={sourcePath:$,mtime:K.mtime.getTime(),dependencies:Array.from(Y),cacheVersion:X.cacheVersion,optionsSignature:KX(X),generatedAt:Date.now()};await Bun.write(G,JSON.stringify(z,null,2)),QX.set($,{output:Z,mtime:K.mtime.getTime(),dependencies:Y})}catch(J){console.warn(`Failed to cache template ${$}:`,J)}}function a5($){return new Bun.CryptoHasher("sha1").update($).digest("hex").substring(0,F_)}var QX,c1,f4=null,W_=null,GX=null,g4=null,F_=16;var u6=P(()=>{O0();QX=new Map,c1=new Map});function zX($){if($.includes("window.StacksBrowser")||$.includes("StacksBrowser ="))return $;let Z=/<script\b(?![^>]*\bserver\b)[^>]*>([\s\S]*?)<\/script>/gi,Y="",X;while((X=Z.exec($))!==null)Y+=X[1]+`
|
|
9517
9517
|
`;let J=/\{\{([\s\S]*?)\}\}/g;while((X=J.exec($))!==null)Y+=X[1]+`
|
|
9518
9518
|
`;if(!Y.trim())return $;let G=["browserQuery","BrowserQueryBuilder","configureBrowser","createBrowserModel"].some((_)=>{return new RegExp(`\\b${_}\\b`).test(Y)}),K=new Set(["Promise","Object","Array","Map","Set","Date","Error","JSON","Math","Number","String","RegExp","Symbol","WeakMap","WeakSet","Proxy","Reflect","Intl","URL","URLSearchParams","FormData","Headers","Request","Response","AbortController","EventTarget","Element","Document","Node","Window","Console","Storage","Navigator","Blob","File","FileReader","HTMLElement","SVGElement","Event","CustomEvent","DOMParser","XMLSerializer","WebSocket","Worker","SharedWorker","IntersectionObserver","MutationObserver","ResizeObserver","PerformanceObserver","Notification","Bun","Buffer","Process"]),z=/\b([A-Z][a-zA-Z0-9]*)\s*\.\s*(all|find|first|get|where|orderBy|orderByDesc|limit|select|pluck|create|update|delete)\s*\(/g,q,U=!1;while((q=z.exec(Y))!==null)if(!K.has(q[1])){U=!0;break}if(!G&&!U)return $;let W=`<script type="module">
|
|
9519
9519
|
// STX: Auto-load @stacksjs/browser (auto-initializes API and loads models)
|
|
@@ -9550,23 +9550,23 @@ if(window.stx)window.stx._latestSetup=${G};
|
|
|
9550
9550
|
`)Q++;return!0}if(Z[Q]==="/"&&Z[Q+1]==="*"){Q+=2;while(Q<G-1&&!(Z[Q]==="*"&&Z[Q+1]==="/"))Q++;return Q+=2,!0}return!1},B=()=>{if(J!==0)return;let j=Z.slice(Q).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(j){let V=j[2];if(!X.has(V))Y.push(V),X.add(V);return}let H=Z.slice(Q).match(/^(?:const|let|var)\s+\{([^}]+)\}\s*=/);if(H){H[1].split(",").forEach((V)=>{let w=V.trim();if(!w)return;let A=w.indexOf(":"),N=(A>=0?w.slice(A+1).trim():w).split(/[\s=]/)[0];if(N&&!X.has(N))Y.push(N),X.add(N)});return}let L=Z.slice(Q).match(/^(?:const|let|var)\s+\[([^\]]+)\]\s*=/);if(L){L[1].split(",").forEach((V)=>{let w=V.trim().replace(/^\.\.\./,"");if(!w)return;let A=w.split(/[\s=]/)[0];if(A&&!X.has(A))Y.push(A),X.add(A)});return}let F=Z.slice(Q).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(F){let V=F[1];if(!X.has(V))Y.push(V),X.add(V);return}let O=Z.slice(Q).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(O){let V=O[1];if(!X.has(V))Y.push(V),X.add(V)}};while(Q<G){if(_())continue;if(Z[Q]==="'"||Z[Q]==='"'){U(Z[Q]),K=Z[Q-1];continue}if(Z[Q]==="`"){W(),K="`";continue}if(Z[Q]==="/"&&Z[Q+1]!=="/"&&Z[Q+1]!=="*"&&q()){z(),K="/";continue}if(Z[Q]==="{"){J++,K="{",Q++;continue}if(Z[Q]==="}"){J--,K="}",Q++;continue}if(J===0&&/[a-z]/i.test(Z[Q])&&(Q===0||/\s|[;{}()]/.test(Z[Q-1])))B();if(!/\s/.test(Z[Q]))K=Z[Q];Q++}return Y.join(", ")}async function n6($,Z,Y,X){if(!u4($))return $;let J=$;if(Z.skipSignalsRuntime)return J;let{output:Q,setupCode:G}=await LX(J,Y,X);if(J=Q,J=await qX(J,Z),J=zX(J),G)if(J.includes("</head>"))J=J.replace("</head>",`${G}
|
|
9551
9551
|
</head>`);else if(J.includes("<body"))J=J.replace(/<body([^>]*)>/,`<body$1>
|
|
9552
9552
|
${G}`);else J=J+`
|
|
9553
|
-
`+G;let z=J.replace(/<script\b[\s\S]*?<\/script>/gi,"").replace(/<style\b[\s\S]*?<\/style>/gi,"").match(/<body([^>]*)>/i),q=z&&/data-stx/.test(z[1]);if(!G&&!q&&z&&!/data-stx-auto/.test(z[1])){let U=/<body[^>]*>/i,W=/<(script|style)\b[\s\S]*?<\/\1>/gi,_=[],B;while((B=W.exec(J))!==null)_.push([B.index,B.index+B[0].length]);let j=0,H=-1;while(j<J.length){U.lastIndex=j;let L=U.exec(J.slice(j));if(!L)break;let F=j+L.index;if(!_.some(([V,w])=>F>=V&&F<w)){H=F;break}j=F+L[0].length}if(H!==-1){let L=J.slice(0,H),F=J.slice(H).replace(U,(O)=>O.replace(/^<body([^>]*)>$/i,"<body$1 data-stx-auto>"));J=L+F}}return J}var V_=0,h4,jX,_X,l6,I_;var o6=
|
|
9553
|
+
`+G;let z=J.replace(/<script\b[\s\S]*?<\/script>/gi,"").replace(/<style\b[\s\S]*?<\/style>/gi,"").match(/<body([^>]*)>/i),q=z&&/data-stx/.test(z[1]);if(!G&&!q&&z&&!/data-stx-auto/.test(z[1])){let U=/<body[^>]*>/i,W=/<(script|style)\b[\s\S]*?<\/\1>/gi,_=[],B;while((B=W.exec(J))!==null)_.push([B.index,B.index+B[0].length]);let j=0,H=-1;while(j<J.length){U.lastIndex=j;let L=U.exec(J.slice(j));if(!L)break;let F=j+L.index;if(!_.some(([V,w])=>F>=V&&F<w)){H=F;break}j=F+L[0].length}if(H!==-1){let L=J.slice(0,H),F=J.slice(H).replace(U,(O)=>O.replace(/^<body([^>]*)>$/i,"<body$1 data-stx-auto>"));J=L+F}}return J}var V_=0,h4,jX,_X,l6,I_;var o6=P(()=>{s5();K4();O0();h4=/<script\b([^>]*)>/gi,jX=/^<([a-zA-Z][a-zA-Z0-9-]*)\b((?:\s+[^=\s>]+(?:=(?:"[^"]*"|'[^']*'|[^\s>]*))?)*\s*)>([\s\S]*)<\/\1>$/s;_X=new Set(["true","false","null","undefined","NaN","Infinity","typeof","instanceof","in","of","new","void","delete","this","Math","JSON","Date","Number","String","Boolean","Array","Object","RegExp","Map","Set","Symbol","parseInt","parseFloat","isNaN","isFinite","encodeURIComponent","decodeURIComponent","encodeURI","decodeURI","window","document","console"]);l6=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]);I_=/\s(?::else-if|x-else-if|@else-if|:else|x-else|@else)(?=[=\s/>])/});import L5 from"path";function wX($){return $.startsWith("http://")||$.startsWith("https://")||$.startsWith("//")}async function AX($,Z,Y){try{let X;if($.startsWith("/")){let J=Z;for(let Q=0;Q<5;Q++){let G=L5.join(J,$);if(await Bun.file(G).exists())return G;J=L5.dirname(J)}X=L5.join(Z,$)}else if($.startsWith("./")||$.startsWith("../"))X=L5.resolve(Z,$);else X=L5.resolve(Z,$);if(await Bun.file(X).exists())return X;return null}catch{return null}}async function RX($,Z,Y){let X=$,J=L5.dirname(Z),Q=/<script\b([^>]*)src=["']([^"']+)["']([^>]*)><\/script>/gi,G;while((G=Q.exec(X))!==null){let[q,U,W,_]=G;if(wX(W))continue;let B=await AX(W,J,Z);if(B)try{let j=await Bun.file(B).text();if(Y.add(B),W.endsWith(".ts")||W.endsWith(".tsx")){let L=await Bun.build({entrypoints:[B],target:"browser",minify:!1,define:o0()});if(L.outputs.length>0)j=await L.outputs[0].text()}let H=`<script>
|
|
9554
9554
|
// Source: ${W}
|
|
9555
9555
|
${j}
|
|
9556
9556
|
</script>`;X=X.replace(q,H),Q.lastIndex=0}catch(j){}}let K=/<link\b([^>]*)href=["']([^"']+)["']([^>]*)(?:\/?>)/gi,z;while((z=K.exec(X))!==null){let[q,U,W,_]=z,B=U+_;if(wX(W))continue;if(/rel=["']stylesheet["']/.test(B)||W.endsWith(".css")){let H=await AX(W,J,Z);if(H)try{let L=await Bun.file(H).text();Y.add(H);let F=`<style>
|
|
9557
9557
|
/* Source: ${W} */
|
|
9558
9558
|
${L}
|
|
9559
|
-
</style>`;X=X.replace(q,F),K.lastIndex=0}catch(L){}}}return X}var NX=
|
|
9559
|
+
</style>`;X=X.replace(q,F),K.lastIndex=0}catch(L){}}}return X}var NX=P(()=>{s1()});function l4($,Z){let Y=$,X=/@json\s*\(/g,J;while((J=X.exec(Y))!==null){let Q=J.index,G=Q+J[0].length-1,K=1,z=G+1,q=null,U=!1;while(z<Y.length&&K>0){let V=Y[z];if(U){U=!1,z++;continue}if(V==="\\"&&q){U=!0,z++;continue}if(q){if(V===q)q=null;z++;continue}if(V==='"'||V==="'"||V==="`"){q=V,z++;continue}if(V==="(")K++;else if(V===")"){if(K--,K===0)break}z++}if(K!==0)break;let W=Y.substring(G+1,z).trim(),_=Y.substring(Q,z+1),B=-1,j=0,H=null,L=!1;for(let V=0;V<W.length;V++){let w=W[V];if(L){L=!1;continue}if(w==="\\"&&H){L=!0;continue}if(H){if(w===H)H=null;continue}if(w==='"'||w==="'"||w==="`"){H=w;continue}if(w==="("||w==="["||w==="{")j++;else if(w===")"||w==="]"||w==="}")j--;if(w===","&&j===0){B=V;break}}let F=B>=0?W.substring(0,B).trim():W,O=B>=0?W.substring(B+1).trim():void 0;try{let V=F.trim(),w;if($0(V))w=Z0(V,Object.keys(Z))(...Object.values(Z));else w=void 0;let A;if(O==="true")A=JSON.stringify(w,null,2);else A=JSON.stringify(w);let R=A.replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/&/g,"\\u0026").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029");Y=Y.substring(0,Q)+R+Y.substring(z+1),X.lastIndex=Q+R.length}catch(V){v0.log(V instanceof Error?V:Error(String(V)),{directive:"@json"},"error"),X.lastIndex=Q+_.length}}return Y}function p4($){return $.replace(/@once\s*([\s\S]*?)@endonce/g,"$1")}function TX($){let Z=$,Y=/@memo\s*\(/g,X,J=[];while((X=Y.exec(Z))!==null){let Q=X.index,G=Q+X[0].length,K=1,z=G;while(z<Z.length&&K>0){if(Z[z]==="(")K++;else if(Z[z]===")")K--;z++}if(K!==0)continue;let q=Z.slice(G,z-1).trim(),U=z,W=Z.slice(U),_=W.indexOf("@endmemo");if(_===-1)continue;let B=W.slice(0,_),j=U+_+8,H=B.match(/^(\s*(?:(?:<!--[\s\S]*?-->|\x00STX_HTML_COMMENT_\d+\x00)\s*)*)/),L=H?H[0].length:0,F=B.slice(L),O=B.match(/(\s*)$/),V=O?O[0].length:0,w=F.slice(0,F.length-V),A=w.match(/^<([a-zA-Z][a-zA-Z0-9-]*)(\s[^>]*?)?(\/?)>/),R;if(A){let[N,M,T="",I]=A,D=`<${M}${T} data-stx-memo="${q}"${I}>`;R=B.slice(0,L)+D+w.slice(N.length)+B.slice(L+w.length)}else R=`${B.slice(0,L)}<div data-stx-memo="${q}">${w}</div>${B.slice(L+w.length)}`;J.push({start:Q,end:j,replacement:R}),Y.lastIndex=j}for(let Q=J.length-1;Q>=0;Q--){let G=J[Q];Z=Z.slice(0,G.start)+G.replacement+Z.slice(G.end)}return Z.replace(/@memo="([^"]*)"/g,'data-stx-memo="$1"')}function s6($){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 MX($){let Y=new RegExp("<(div|span|p|h[1-6]|td|th|li|a|button|label|section|article|header|footer|main|nav|aside|dd|dt|figcaption|summary|caption|blockquote|pre|code|em|strong|small|sub|sup|time|mark|abbr|cite|q|s|u|b|i)\\b","gi"),X="",J=0,Q;while((Q=Y.exec($))!==null){let G=Q.index,K=G+Q[0].length,z=!1,q=!1,U=-1;while(K<$.length){let H=$[K];if(z){if(H==="'")z=!1}else if(q){if(H==='"')q=!1}else if(H==="'")z=!0;else if(H==='"')q=!0;else if(H===">"){U=K;break}K++}if(U===-1)continue;if($.slice(G,U+1).includes("x-cloak"))continue;let _=$.slice(U+1),B=_.indexOf("</"),j=B>=0?_.slice(0,B):_.slice(0,200);if(/\{\{[\s\S]*?\}\}/.test(j))X+=$.slice(J,U)+" x-cloak>",J=U+1}return X+=$.slice(J),X}function IX($){let Z=/<[a-z][\w-]*/gi,Y="",X=0,J;while((J=Z.exec($))!==null){let Q=J.index,G=J[0].slice(1).toLowerCase();if(G==="script"||G==="style"){let j=`</${G}>`,H=$.toLowerCase().indexOf(j,Q);if(H!==-1)Z.lastIndex=H+j.length;continue}let K=Q+J[0].length,z=!1,q=!1,U=-1;while(K<$.length){let j=$[K];if(z){if(j==="'")z=!1}else if(q){if(j==='"')q=!1}else if(j==="'")z=!0;else if(j==='"')q=!0;else if(j===">"){U=K;break}K++}if(U===-1)continue;let W=$.slice(Q+J[0].length,U);if(/(?:^|\s)x-cloak(?:=|\s|\/|>|$)/.test(W))continue;if(!k_.test(W))continue;let _=$[U-1]==="/",B=_?U-1:U;Y+=`${$.slice(X,B)} x-cloak${_?" ":""}`,X=B}return Y+=$.slice(X),Y}var k_;var r6=P(()=>{t0();w0();k_=/(?:^|\s)(?::else-if|:if|:else|:show|x-else-if|x-if|x-else|x-show|@if|@show)(?:=|\s|\/|>|$)/});function c4($,Z,Y){let X=typeof Y==="boolean"?{enabled:Y,failOnViolation:Y}:Y??{enabled:!1},J=X.allowPatterns??[],Q=[];for(let{pattern:G,message:K,suggestion:z}of b_){if(J.some((U)=>K.includes(U)||G.source.includes(U)))continue;G.lastIndex=0;let q=$.match(G);if(q&&q.length>0){let U=$.split(`
|
|
9560
9560
|
`),W=[];U.forEach((B,j)=>{if(G.lastIndex=0,G.test(B))W.push(j+1)});let _=W.length>0?` (line${W.length>1?"s":""}: ${W.join(", ")})`:"";Q.push(` \u2717 ${K}${_}
|
|
9561
9561
|
\u2192 ${z}`)}}if(Q.length>0&&X.enabled){let K=`[STX] DOM API violation in ${Z.split("/").pop()||Z}:
|
|
9562
9562
|
${Q.join(`
|
|
9563
9563
|
`)}
|
|
9564
|
-
Tip: prefer useRef(), navigate(), and composables for component code`;if(X.failOnViolation)throw Error(K);else console.warn(K)}}var b_;var a6=
|
|
9564
|
+
Tip: prefer useRef(), navigate(), and composables for component code`;if(X.failOnViolation)throw Error(K);else console.warn(K)}}var b_;var a6=P(()=>{b_=[{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 DX={};l(DX,{getStoreScript:()=>S_,clearStoreCache:()=>y_});import i4 from"path";async function S_($){let Z;if($)Z=i4.resolve($);else{let U=await t$();Z=i4.resolve(U.root||process.cwd(),U.storesDir||"stores")}let Y=F5.get(Z);if(Y!==void 0)return Y||null;let X=new Bun.Glob("*.ts"),J=[];try{for await(let U of X.scan({cwd:Z,absolute:!0})){let W=i4.basename(U,".ts");if(["index","types"].includes(W))continue;if(U.includes(".d.ts"))continue;J.push(U)}}catch{return F5.set(Z,""),null}if(J.length===0)return F5.set(Z,""),null;let Q=[];for(let U of J){let W=await Bun.file(U).text();Q.push({file:U,hasUseStore:/useStore\s*\(/.test(W)})}Q.sort((U,W)=>{if(U.hasUseStore===W.hasUseStore)return 0;return U.hasUseStore?1:-1});let G=Q.map((U)=>U.file),K=[],z=new Bun.Transpiler({loader:"ts",target:"browser",define:o0()});for(let U of G)try{let W=await Bun.file(U).text(),_=i4.basename(U,".ts");W=W.replace(/^import\s+.*from\s+['"][^'"]+['"]\s*;?\s*$/gm,""),W=W.replace(/^export\s+(default\s+)?/gm,""),W=z.transformSync(W),K.push(`// Store: ${_}
|
|
9565
9565
|
${W.trim()}`)}catch(W){console.warn(`[stx] Failed to load store ${U}:`,W)}if(K.length===0)return F5.set(Z,""),null;let q=`;(function(){
|
|
9566
9566
|
${K.join(`
|
|
9567
9567
|
|
|
9568
9568
|
`)}
|
|
9569
|
-
})();`;return F5.set(Z,q),q}function y_(){F5.clear()}var F5;var EX=
|
|
9569
|
+
})();`;return F5.set(Z,q),q}function y_(){F5.clear()}var F5;var EX=P(()=>{v5();s1();F5=new Map});var bX={};l(bX,{processDeferDirectives:()=>f_});function C_(){return`stx-defer-${++kX}`}function P_($){let Z=$.match(/on:\s*['"]?(\w+)(?:\((\d+)\))?['"]?/);if(Z)return{trigger:Z[1],value:Z[2]};return{trigger:"immediate"}}function v_($,Z,Y){let{trigger:X,value:J}=P_(Z),Q=Y,G,K,z,q=Y.match(/@placeholder\s*([\s\S]*?)(?=@loading|@error|$)/);if(q)G=q[1].trim(),Q=Q.replace(/@placeholder[\s\S]*?(?=@loading|@error|$)/,"");let U=Y.match(/@loading\s*([\s\S]*?)(?=@error|$)/);if(U)K=U[1].trim(),Q=Q.replace(/@loading[\s\S]*?(?=@error|$)/,"");let W=Y.match(/@error(?:\s*\(\s*(\w+)\s*\))?\s*([\s\S]*)$/);if(W)z=W[2].trim(),Q=Q.replace(/@error(?:\s*\(\s*\w+\s*\))?[\s\S]*$/,"");return Q=Q.trim(),{trigger:X,triggerValue:J,content:Q,placeholder:G,loading:K,error:z}}function x_($,Z){let{trigger:Y,triggerValue:X}=Z,J;switch(Y){case"visible":J=`
|
|
9570
9570
|
const observer = new IntersectionObserver((entries) => {
|
|
9571
9571
|
if (entries[0].isIntersecting) {
|
|
9572
9572
|
observer.disconnect();
|
|
@@ -11516,7 +11516,7 @@ else {
|
|
|
11516
11516
|
});
|
|
11517
11517
|
})();
|
|
11518
11518
|
</script>
|
|
11519
|
-
`})}var bB;var aX=
|
|
11519
|
+
`})}var bB;var aX=P(()=>{bB={createVirtualList:t6,processVirtualListDirectives:e6,processInfiniteListDirectives:oX,processVirtualGridDirectives:sX,generateVirtualListCSS:iX,useVirtualList:nX}});function tX(){return`<script data-stx-hydration-runtime>
|
|
11520
11520
|
(function() {
|
|
11521
11521
|
'use strict';
|
|
11522
11522
|
|
|
@@ -11910,7 +11910,7 @@ else {
|
|
|
11910
11910
|
<script type="application/json" id="stx-island-manifest">
|
|
11911
11911
|
${JSON.stringify(Z)}
|
|
11912
11912
|
</script>
|
|
11913
|
-
`}var gB;var _J=
|
|
11913
|
+
`}var gB;var _J=P(()=>{gB={processPartialHydrationDirectives:YJ,processStaticDirectives:qJ,generatePartialHydrationCSS:XJ,generateIslandManifest:UJ,createIslandRegistry:ZJ,hydrateIsland:JJ,hydrateByStrategy:QJ,hydrateAll:GJ,isHydrated:KJ,onHydrated:zJ}});var NJ={};l(NJ,{watchMultiple:()=>LJ,watchEffect:()=>FJ,watch:()=>OJ,unref:()=>BJ,toRefs:()=>jJ,throttledComputed:()=>RJ,stxWatchMultiple:()=>LJ,stxWatchEffect:()=>FJ,stxWatch:()=>OJ,stxUnref:()=>BJ,stxToRefs:()=>jJ,stxThrottledComputed:()=>RJ,stxShallowRef:()=>HJ,stxRef:()=>w5,stxIsRef:()=>T1,stxDebouncedComputed:()=>AJ,stxComputed:()=>e5,shallowRef:()=>HJ,ref:()=>w5,processWatchDirectives:()=>wJ,processComputedDirectives:()=>VJ,isRef:()=>T1,default:()=>hB,debouncedComputed:()=>AJ,computed:()=>e5});function w5($){let Z=$,Y=new Set,X={get value(){if($1){let J=t5.get(X);if(!J)J=new Set,t5.set(X,J);J.add($1)}return Z},set value(J){if(!Object.is(Z,J)){Z=J,Y.forEach((G)=>G(J));let Q=t5.get(X);if(Q)Q.forEach((G)=>G())}},subscribe(J){return Y.add(J),()=>Y.delete(J)},peek(){return Z}};return X}function T1($){return $!==null&&typeof $==="object"&&"value"in $&&"subscribe"in $&&"peek"in $}function BJ($){return T1($)?$.value:$}function jJ($){let Z={};for(let Y in $)if(Object.prototype.hasOwnProperty.call($,Y))Z[Y]=w5($[Y]);return Z}function HJ($){return w5($)}function e5($){let Z=typeof $==="function",Y=Z?$:$.get,X=Z?void 0:$.set,J=Z?Object.is:$.equals||Object.is,Q,G=!0,K=new Set,z=new Set,q=()=>{if(G=!0,z.size>0){let _=W.value;z.forEach((B)=>B(_))}};function U(){K.clear();let _=$1;$1=q,n4.push(q);try{return Y()}finally{n4.pop(),$1=_}}let W={get value(){if($1){let _=t5.get(W);if(!_)_=new Set,t5.set(W,_);_.add($1)}if(G){let _=U();if(!J(Q,_))Q=_;G=!1}return Q},set value(_){if(X)X(_);else console.warn("Computed property is readonly")},subscribe(_){return z.add(_),()=>z.delete(_)},peek(){if(G)Q=Y(),G=!1;return Q},invalidate(){G=!0},get dirty(){return G},get deps(){return K}};return W}function OJ($,Z,Y={}){let{immediate:X=!1,deep:J=!1,flush:Q="pre",once:G=!1}=Y,K,z=!0,q=!1,U=()=>{if(T1($))return J?i1($.value):$.value;return $()},W=()=>{if(!z||q)return;let j=U();if(K!==void 0&&Object.is(K,j)&&!J)return;let H=()=>{if(Z(j,K),K=J?i1(j):j,G)B()};if(Q==="sync")H();else if(Q==="post")queueMicrotask(H);else Promise.resolve().then(H)},_=null;if(T1($))_=$.subscribe(()=>W());else _=e5($).subscribe(()=>W());if(X)K=void 0,W();else K=U();let B=()=>{if(z=!1,_)_(),_=null};return B.pause=()=>{q=!0},B.resume=()=>{q=!1},B}function LJ($,Z,Y={}){let{immediate:X=!1,once:J=!1}=Y,Q=$.map((W)=>T1(W)?W.value:void 0),G=!0,K=!1,z=()=>{if(!G||K)return;let W=$.map((_)=>T1(_)?_.value:void 0);if(Z(W,Q),Q=[...W],J)U()},q=$.map((W)=>{if(T1(W))return W.subscribe(()=>z());return()=>{}});if(X)z();let U=()=>{G=!1,q.forEach((W)=>W())};return U.pause=()=>{K=!0},U.resume=()=>{K=!1},U}function FJ($,Z={}){let{flush:Y="pre"}=Z,X,J=!0,Q=!1,G=()=>{if(!J||Q)return;if(X)X();let z=$1;$1=G,n4.push(G);try{X=$()}finally{n4.pop(),$1=z}};if(Y==="sync")G();else if(Y==="post")queueMicrotask(G);else Promise.resolve().then(G);let K=()=>{if(J=!1,X)X()};return K.pause=()=>{Q=!0},K.resume=()=>{Q=!1},K}function VJ($,Z={},Y){let X=/@computed\s*\(\s*(\w+)\s*,\s*(.+?)\s*\)/gi;return $.replace(X,(J,Q,G)=>{try{let z=Function(...Object.keys(Z),`return ${G}`)(...Object.values(Z));return Z[Q]=z,`<!-- computed: ${Q} = ${z} -->`}catch(K){return`<!-- computed error: ${Q} - ${K} -->`}})}function wJ($,Z={},Y){let X=/@watch\s*\(\s*(\w+)\s*\)\s*([\s\S]*?)@endwatch/gi;return $.replace(X,(J,Q,G)=>{return`
|
|
11914
11914
|
<script data-watch="${`watch-${Math.random().toString(36).substring(2,9)}`}">
|
|
11915
11915
|
(function() {
|
|
11916
11916
|
// Watch implementation for ${Q}
|
|
@@ -11922,9 +11922,9 @@ else {
|
|
|
11922
11922
|
}
|
|
11923
11923
|
})();
|
|
11924
11924
|
</script>
|
|
11925
|
-
`})}function i1($){if($===null||typeof $!=="object")return $;if(Array.isArray($))return $.map((Y)=>i1(Y));if($ instanceof Date)return new Date($.getTime());if($ instanceof Map){let Y=new Map;return $.forEach((X,J)=>Y.set(i1(J),i1(X))),Y}if($ instanceof Set){let Y=new Set;return $.forEach((X)=>Y.add(i1(X))),Y}let Z={};for(let Y in $)if(Object.prototype.hasOwnProperty.call($,Y))Z[Y]=i1($[Y]);return Z}function AJ($,Z=100){let Y=w5($()),X=null,J=()=>{if(X)clearTimeout(X);X=setTimeout(()=>{Y.value=$()},Z)};return e5($).subscribe(()=>J()),{get value(){return Y.value},set value(G){console.warn("Debounced computed is readonly")},subscribe:Y.subscribe,peek:Y.peek,invalidate(){J()},get dirty(){return!1},get deps(){return new Set}}}function RJ($,Z=100){let Y=w5($()),X=0,J=()=>{let G=Date.now();if(G-X>=Z)X=G,Y.value=$()};return e5($).subscribe(()=>J()),{get value(){return Y.value},set value(G){console.warn("Throttled computed is readonly")},subscribe:Y.subscribe,peek:Y.peek,invalidate(){J()},get dirty(){return!1},get deps(){return new Set}}}var $1=null,n4,t5,hB;var TJ=
|
|
11925
|
+
`})}function i1($){if($===null||typeof $!=="object")return $;if(Array.isArray($))return $.map((Y)=>i1(Y));if($ instanceof Date)return new Date($.getTime());if($ instanceof Map){let Y=new Map;return $.forEach((X,J)=>Y.set(i1(J),i1(X))),Y}if($ instanceof Set){let Y=new Set;return $.forEach((X)=>Y.add(i1(X))),Y}let Z={};for(let Y in $)if(Object.prototype.hasOwnProperty.call($,Y))Z[Y]=i1($[Y]);return Z}function AJ($,Z=100){let Y=w5($()),X=null,J=()=>{if(X)clearTimeout(X);X=setTimeout(()=>{Y.value=$()},Z)};return e5($).subscribe(()=>J()),{get value(){return Y.value},set value(G){console.warn("Debounced computed is readonly")},subscribe:Y.subscribe,peek:Y.peek,invalidate(){J()},get dirty(){return!1},get deps(){return new Set}}}function RJ($,Z=100){let Y=w5($()),X=0,J=()=>{let G=Date.now();if(G-X>=Z)X=G,Y.value=$()};return e5($).subscribe(()=>J()),{get value(){return Y.value},set value(G){console.warn("Throttled computed is readonly")},subscribe:Y.subscribe,peek:Y.peek,invalidate(){J()},get dirty(){return!1},get deps(){return new Set}}}var $1=null,n4,t5,hB;var TJ=P(()=>{n4=[],t5=new WeakMap;hB={ref:w5,computed:e5,watch:OJ,watchMultiple:LJ,watchEffect:FJ,isRef:T1,unref:BJ,toRefs:jJ,shallowRef:HJ,debouncedComputed:AJ,throttledComputed:RJ,processComputedDirectives:VJ,processWatchDirectives:wJ}});var EJ={};l(EJ,{v:()=>dB,processHasErrorsDirective:()=>DJ,processFormValidationDirectives:()=>uB,processErrorsDirective:()=>IJ,processErrorDirective:()=>MJ,defineForm:()=>mB,Validator:()=>A5});class A5{rules=[];defaultValue="";addRule($){let Z=new A5;return Z.rules=[...this.rules,$],Z.defaultValue=this.defaultValue,Z}required($="This field is required"){return this.addRule({name:"required",message:$,validate:(Z)=>{if(Z===null||Z===void 0)return $;if(typeof Z==="string"&&Z.trim()==="")return $;if(Array.isArray(Z)&&Z.length===0)return $;return!0}})}email($="Please enter a valid email"){return this.addRule({name:"email",message:$,validate:(Z)=>{if(!Z)return!0;return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String(Z))||$}})}url($="Please enter a valid URL"){return this.addRule({name:"url",message:$,validate:(Z)=>{if(!Z)return!0;try{return new URL(String(Z)),!0}catch{return $}}})}min($,Z){let Y=Z||`Must be at least ${$} characters`;return this.addRule({name:"min",message:Y,validate:(X)=>{if(!X)return!0;return String(X).length>=$||Y}})}max($,Z){let Y=Z||`Must be no more than ${$} characters`;return this.addRule({name:"max",message:Y,validate:(X)=>{if(!X)return!0;return String(X).length<=$||Y}})}length($,Z,Y){let X=Y||`Must be between ${$} and ${Z} characters`;return this.addRule({name:"length",message:X,validate:(J)=>{if(!J)return!0;let Q=String(J).length;return Q>=$&&Q<=Z||X}})}pattern($,Z="Invalid format"){return this.addRule({name:"pattern",message:Z,validate:(Y)=>{if(!Y)return!0;return $.test(String(Y))||Z}})}hasUppercase($="Must contain an uppercase letter"){return this.pattern(/[A-Z]/,$)}hasLowercase($="Must contain a lowercase letter"){return this.pattern(/[a-z]/,$)}hasNumber($="Must contain a number"){return this.pattern(/\d/,$)}hasSpecial($="Must contain a special character"){return this.pattern(/[!@#$%^&*(),.?":{}|<>]/,$)}alphanumeric($="Only letters and numbers allowed"){return this.pattern(/^[a-zA-Z0-9]+$/,$)}startsWithLetter($="Must start with a letter"){return this.pattern(/^[a-zA-Z]/,$)}noSpaces($="Spaces are not allowed"){return this.addRule({name:"noSpaces",message:$,validate:(Z)=>{if(!Z)return!0;return!String(Z).includes(" ")||$}})}number($="Must be a number"){let Z=this.addRule({name:"number",message:$,validate:(Y)=>{if(!Y&&Y!==0)return!0;return!Number.isNaN(Number(Y))||$}});return Z.defaultValue=0,Z}integer($="Must be a whole number"){return this.addRule({name:"integer",message:$,validate:(Z)=>{if(!Z&&Z!==0)return!0;return Number.isInteger(Number(Z))||$}})}positive($="Must be a positive number"){return this.addRule({name:"positive",message:$,validate:(Z)=>{if(!Z&&Z!==0)return!0;return Number(Z)>0||$}})}negative($="Must be a negative number"){return this.addRule({name:"negative",message:$,validate:(Z)=>{if(!Z&&Z!==0)return!0;return Number(Z)<0||$}})}minValue($,Z){let Y=Z||`Must be at least ${$}`;return this.addRule({name:"minValue",message:Y,validate:(X)=>{if(!X&&X!==0)return!0;return Number(X)>=$||Y}})}maxValue($,Z){let Y=Z||`Must be no more than ${$}`;return this.addRule({name:"maxValue",message:Y,validate:(X)=>{if(!X&&X!==0)return!0;return Number(X)<=$||Y}})}between($,Z,Y){let X=Y||`Must be between ${$} and ${Z}`;return this.addRule({name:"between",message:X,validate:(J)=>{if(!J&&J!==0)return!0;let Q=Number(J);return Q>=$&&Q<=Z||X}})}matches($,Z){let Y=Z||`Must match ${$}`;return this.addRule({name:"matches",message:Y,validate:(X,J)=>{if(!J)return!0;return X===J[$]||Y}})}oneOf($,Z){let Y=Z||`Must be one of: ${$.join(", ")}`;return this.addRule({name:"oneOf",message:Y,validate:(X)=>{if(!X)return!0;return $.includes(X)||Y}})}notOneOf($,Z){let Y=Z||`Cannot be one of: ${$.join(", ")}`;return this.addRule({name:"notOneOf",message:Y,validate:(X)=>{if(!X)return!0;return!$.includes(X)||Y}})}date($="Must be a valid date"){return this.addRule({name:"date",message:$,validate:(Z)=>{if(!Z)return!0;let Y=new Date(String(Z));return!Number.isNaN(Y.getTime())||$}})}before($,Z){let Y=new Date($),X=Z||`Must be before ${Y.toLocaleDateString()}`;return this.addRule({name:"before",message:X,validate:(J)=>{if(!J)return!0;return new Date(String(J))<Y||X}})}after($,Z){let Y=new Date($),X=Z||`Must be after ${Y.toLocaleDateString()}`;return this.addRule({name:"after",message:X,validate:(J)=>{if(!J)return!0;return new Date(String(J))>Y||X}})}custom($,Z="Invalid value"){return this.addRule({name:"custom",message:Z,validate:$})}async($,Z="Invalid value"){return this.addRule({name:"async",message:Z,async:!0,validate:$})}when($,Z){let Y=new A5;Y.rules=[...this.rules],Y.defaultValue=this.defaultValue;for(let X of Z.getRules())Y.rules.push({...X,validate:(J,Q)=>{if(!$(J,Q||{}))return!0;return X.validate(J,Q)}});return Y}getRules(){return this.rules}getDefaultValue(){return this.defaultValue}default($){let Z=new A5;return Z.rules=[...this.rules],Z.defaultValue=$,Z}async validate($,Z){let Y=[];for(let X of this.rules){let J=await X.validate($,Z);if(J!==!0)Y.push(J)}return Y}validateSync($,Z){let Y=[];for(let X of this.rules){if(X.async)continue;let J=X.validate($,Z);if(J!==!0)Y.push(J)}return Y}}function mB($,Z){let Y=Object.keys($),X={},J={},Q={},G={},K={};for(let O of Y)X[O]=Z?.[O]??$[O].getDefaultValue(),J[O]=[],Q[O]=!1,G[O]=!1,K[O]=!1;let z=!1;async function q(O){K[O]=!0;let V=await $[O].validate(X[O],X);return J[O]=V,K[O]=!1,V.length===0}async function U(){z=!0;let O=await Promise.all(Y.map(q));return z=!1,O.every(Boolean)}function W(){for(let O of Y)X[O]=Z?.[O]??$[O].getDefaultValue(),J[O]=[],Q[O]=!1,G[O]=!1}function _(O){for(let V of Y)if(V in O)X[V]=O[V],G[V]=!0}function B(O,V){X[O]=V,G[O]=!0}function j(O,V=!0){if(Q[O]=V,V)q(O)}function H(O){return{value:X[O],errors:J[O],touched:Q[O],dirty:G[O],valid:J[O].length===0,validating:K[O]}}function L(O){return async(V)=>{V?.preventDefault?.();for(let A of Y)Q[A]=!0;if(await U())await O(X)}}return{values:X,errors:J,touched:Q,dirty:G,get isValid(){return Y.every((O)=>J[O].length===0)},get isValidating(){return z||Y.some((O)=>K[O])},get isDirty(){return Y.some((O)=>G[O])},validate:U,validateField:q,reset:W,setValues:_,setFieldValue:B,setFieldTouched:j,getFieldState:H,handleSubmit:L}}function MJ($,Z,Y){let X=/@error\s*\(\s*([^)]+)\s*\)([\s\S]*?)@enderror/g;return $.replace(X,(J,Q,G)=>{try{let K=Q.trim().split("."),z=Z;for(let U of K)if(z&&typeof z==="object"&&U in z)z=z[U];else return"";let q=z;if(!q||!Array.isArray(q)||q.length===0)return"";return q.map((U)=>{return G.replace(/\{\{\s*message\s*\}\}/g,U)}).join(`
|
|
11926
11926
|
`)}catch{return""}})}function IJ($,Z,Y){let X=/@errors\s*\(\s*([^)]+)\s*\)([\s\S]*?)@enderrors/g;return $.replace(X,(J,Q,G)=>{try{let K=Q.trim().split("."),z=Z;for(let U of K)if(z&&typeof z==="object"&&U in z)z=z[U];else return"";let q=z;if(!q||!Array.isArray(q)||q.length===0)return"";return q.map((U)=>G.replace(/\{\{\s*message\s*\}\}/g,U)).join(`
|
|
11927
|
-
`)}catch{return""}})}function DJ($,Z,Y){let X=/@hasErrors\s*\(\s*([^)]+)\s*\)([\s\S]*?)@endhasErrors/g;return $.replace(X,(J,Q,G)=>{try{let K=Q.trim().split("."),z=Z;for(let U of K)if(z&&typeof z==="object"&&U in z)z=z[U];else return"";let q=z;if(!q||!Array.isArray(q)||q.length===0)return"";return G}catch{return""}})}function uB($,Z,Y){let X=$;return X=MJ(X,Z,Y),X=IJ(X,Z,Y),X=DJ(X,Z,Y),X}var dB;var kJ=
|
|
11927
|
+
`)}catch{return""}})}function DJ($,Z,Y){let X=/@hasErrors\s*\(\s*([^)]+)\s*\)([\s\S]*?)@endhasErrors/g;return $.replace(X,(J,Q,G)=>{try{let K=Q.trim().split("."),z=Z;for(let U of K)if(z&&typeof z==="object"&&U in z)z=z[U];else return"";let q=z;if(!q||!Array.isArray(q)||q.length===0)return"";return G}catch{return""}})}function uB($,Z,Y){let X=$;return X=MJ(X,Z,Y),X=IJ(X,Z,Y),X=DJ(X,Z,Y),X}var dB;var kJ=P(()=>{dB=new A5});var yJ={};l(yJ,{processXElementDirectives:()=>lB,hasXElementDirectives:()=>SJ,generateXElementRuntime:()=>bJ});function bJ(){return`<script data-stx-scoped>
|
|
11928
11928
|
(function() {
|
|
11929
11929
|
'use strict';
|
|
11930
11930
|
|
|
@@ -12213,7 +12213,7 @@ else {
|
|
|
12213
12213
|
`+Z}import o4 from"fs";import s4 from"path";function cB($){let Z=0;for(let Y=0;Y<$.length;Y++){let X=$[Y];Z=(Z<<5)-Z+X,Z=Z&Z}return Math.abs(Z).toString(16).padStart(8,"0")}function iB($,Z){let Y=s4.basename($);for(let X of Z)if(X.startsWith("*.")){let J=X.slice(1);if(Y.endsWith(J))return!0}else if(X.includes("*")){let J=new RegExp(`^${X.replace(/\*/g,".*")}$`);if(J.test(Y)||J.test($))return!0}else if(Y===X||$.includes(X))return!0;return!1}function nB($,Z,Y){let X=s4.extname($).toLowerCase(),J=pB[X],Q=(Y.maxFileSizeKB||500)*1024;if(Z>Q)return!1;if(Y.exclude&&iB($,Y.exclude))return!1;if(Y.include&&Y.include.length>0){for(let G of Y.include)if(G.startsWith("*.")){if($.endsWith(G.slice(1)))return!0}else if($.includes(G))return!0}if(J&&Y[J]===!0)return!0;if(!J)return!1;return!1}function CJ($,Z,Y,X){let J=o4.readdirSync($,{withFileTypes:!0});for(let Q of J){let G=s4.join($,Q.name);if(Q.isDirectory()){if(["node_modules",".git",".stx"].includes(Q.name))continue;CJ(G,Z,Y,X)}else if(Q.isFile()){let K=o4.statSync(G),z=s4.relative(Z,G);if(nB(z,K.size,Y)){let q=o4.readFileSync(G),U=cB(q),W=`/${z.replace(/\\/g,"/")}`;X.push({url:W,revision:U,size:K.size})}}}}function $$($,Z){let Y=Z.pwa?.precache,X=[];if(!Y?.enabled)return{entries:[],totalSize:0,fileCount:0};if(!o4.existsSync($))return{entries:[],totalSize:0,fileCount:0};CJ($,$,Y,X),X.sort((Q,G)=>Q.url.localeCompare(G.url));let J=X.reduce((Q,G)=>Q+G.size,0);return{entries:X,totalSize:J,fileCount:X.length}}function r4($){if($.entries.length===0)return"[]";return`[
|
|
12214
12214
|
${$.entries.map((Y)=>` { url: '${Y.url}', revision: '${Y.revision}' }`).join(`,
|
|
12215
12215
|
`)}
|
|
12216
|
-
]`}function PJ($){if($<1024)return`${$} B`;if($<1048576)return`${($/1024).toFixed(1)} KB`;return`${($/1048576).toFixed(2)} MB`}var pB;var $9=
|
|
12216
|
+
]`}function PJ($){if($<1024)return`${$} B`;if($<1048576)return`${($/1024).toFixed(1)} KB`;return`${($/1048576).toFixed(2)} MB`}var pB;var $9=P(()=>{pB={".html":"includeHtml",".htm":"includeHtml",".js":"includeJs",".mjs":"includeJs",".css":"includeCss",".png":"includeImages",".jpg":"includeImages",".jpeg":"includeImages",".gif":"includeImages",".webp":"includeImages",".svg":"includeImages",".ico":"includeImages",".woff":"includeFonts",".woff2":"includeFonts",".ttf":"includeFonts",".eot":"includeFonts",".otf":"includeFonts"}});function vJ($){let Z={"cache-first":{className:"CacheFirst",importFrom:"workbox-strategies"},"network-first":{className:"NetworkFirst",importFrom:"workbox-strategies"},"stale-while-revalidate":{className:"StaleWhileRevalidate",importFrom:"workbox-strategies"},"network-only":{className:"NetworkOnly",importFrom:"workbox-strategies"},"cache-only":{className:"CacheOnly",importFrom:"workbox-strategies"}};return Z[$]||Z["network-first"]}function Z9($){return vJ($).className}function oB($){return{className:"ExpirationPlugin",importFrom:"workbox-expiration",options:{...$.maxEntries&&{maxEntries:$.maxEntries},...$.maxAgeSeconds&&{maxAgeSeconds:$.maxAgeSeconds},...$.purgeOnQuotaError!==void 0&&{purgeOnQuotaError:$.purgeOnQuotaError}}}}function sB($){return{className:"CacheableResponsePlugin",importFrom:"workbox-cacheable-response",options:{...$.statuses&&{statuses:$.statuses},...$.headers&&{headers:$.headers}}}}function PN($){return{className:"BackgroundSyncPlugin",importFrom:"workbox-background-sync",options:{name:$.name,...$.maxRetentionTime&&{maxRetentionTime:$.maxRetentionTime},...$.forceSyncFallback!==void 0&&{forceSyncFallback:$.forceSyncFallback}}}}function rB($){let Z=vJ($.strategy),Y=[];if($.maxAgeSeconds||$.maxEntries)Y.push(oB({maxAgeSeconds:$.maxAgeSeconds,maxEntries:$.maxEntries,purgeOnQuotaError:!0}));if($.strategy==="network-first"||$.strategy==="stale-while-revalidate")Y.push(sB({statuses:[0,200]}));return{urlPattern:$.pattern,handler:Z.className,options:{cacheName:$.cacheName,...Y.length>0&&{plugins:Y}}}}function vN($){return $.map((Z)=>rB(Z))}function xJ($){let Z=$.pwa;if(!Z?.enabled)return"";let Y=Z.routes||[],X=Z.cacheStorage,J=[];for(let Q of Y){let G=Z9(Q.strategy),K=[];if(Q.maxAgeSeconds||Q.maxEntries||X?.maxEntries){let q=Q.maxEntries||X?.maxEntries||100,U=Q.maxAgeSeconds||(X?.maxAge?X.maxAge*24*60*60:void 0);K.push(`new ExpirationPlugin({
|
|
12217
12217
|
maxEntries: ${q},
|
|
12218
12218
|
${U?`maxAgeSeconds: ${U},`:""}
|
|
12219
12219
|
purgeOnQuotaError: true,
|
|
@@ -12517,7 +12517,7 @@ self.addEventListener('message', (event) => {
|
|
|
12517
12517
|
event.waitUntil(syncQueue.pushRequest({ request }));
|
|
12518
12518
|
}
|
|
12519
12519
|
});
|
|
12520
|
-
`}function hJ($){return $.pwa?.enabled===!0&&$.pwa?.serviceWorker?.useWorkbox===!0}function Qj($){if(hJ($))return gJ;let{generateServiceWorker:Z}=(Y9(),K9(uJ));return Z}var mJ=
|
|
12520
|
+
`}function hJ($){return $.pwa?.enabled===!0&&$.pwa?.serviceWorker?.useWorkbox===!0}function Qj($){if(hJ($))return gJ;let{generateServiceWorker:Z}=(Y9(),K9(uJ));return Z}var mJ=P(()=>{$9()});var uJ={};l(uJ,{isWorkboxEnabled:()=>pJ,getServiceWorkerFileName:()=>a4,generateServiceWorkerAuto:()=>zj,generateServiceWorker:()=>lJ});function lJ($,Z){let Y=$.pwa;if(!Y?.enabled)return"";let X=Y.serviceWorker||{},J=Y.routes||[],Q=X.cacheVersion||"1.0.0",G=Y.offline,K=G?.page?"/offline.html":"/offline.html",z=Y.push,q=Y.backgroundSync,U=Y.cacheStorage,W=Z?$$(Z,$):null,_=W?r4(W):"[]",B=["/","/manifest.json",...G?.enabled?[K]:[],...G?.precacheAssets||[]];return`/**
|
|
12521
12521
|
* Service Worker - Auto-generated by stx
|
|
12522
12522
|
* Cache Version: ${Q}
|
|
12523
12523
|
*
|
|
@@ -13343,7 +13343,7 @@ self.addEventListener('message', (event) => {
|
|
|
13343
13343
|
event.waitUntil(registerFormSync(event.data.payload));
|
|
13344
13344
|
}
|
|
13345
13345
|
});
|
|
13346
|
-
`}function a4($){return $.pwa?.serviceWorker?.fileName||"sw.js"}function pJ($){return $.pwa?.enabled===!0&&$.pwa?.serviceWorker?.useWorkbox===!0}function zj($,Z){if(!$.pwa?.enabled)return"";if(pJ($)){let{generateWorkboxServiceWorker:Y}=(mJ(),K9(dJ));return Y($,Z)}return lJ($,Z)}var Y9=
|
|
13346
|
+
`}function a4($){return $.pwa?.serviceWorker?.fileName||"sw.js"}function pJ($){return $.pwa?.enabled===!0&&$.pwa?.serviceWorker?.useWorkbox===!0}function zj($,Z){if(!$.pwa?.enabled)return"";if(pJ($)){let{generateWorkboxServiceWorker:Y}=(mJ(),K9(dJ));return Y($,Z)}return lJ($,Z)}var Y9=P(()=>{$9()});var cJ={};l(cJ,{injectPwaTags:()=>qj,generateThemeColorMeta:()=>_j,generateSwRegistrationScript:()=>Uj,generatePwaTags:()=>t4,generateManifestLink:()=>Wj});function t4($){let Z=$.pwa;if(!Z?.enabled)return"";let Y=Z.manifest,X=Z.icons?.outputDir?`/${Z.icons.outputDir}`:"/pwa-icons",J=a4($),Q=`
|
|
13347
13347
|
<!-- stx PWA Meta Tags -->
|
|
13348
13348
|
<link rel="manifest" href="/manifest.json">
|
|
13349
13349
|
<meta name="theme-color" content="${X9(Y?.themeColor||"#000000")}">
|
|
@@ -13401,7 +13401,7 @@ if ('serviceWorker' in navigator) {
|
|
|
13401
13401
|
});
|
|
13402
13402
|
});
|
|
13403
13403
|
}
|
|
13404
|
-
</script>`}function Wj(){return'<link rel="manifest" href="/manifest.json">'}function _j($){return`<meta name="theme-color" content="${X9($)}">`}function X9($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}var iJ=
|
|
13404
|
+
</script>`}function Wj(){return'<link rel="manifest" href="/manifest.json">'}function _j($){return`<meta name="theme-color" content="${X9($)}">`}function X9($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}var iJ=P(()=>{Y9()});var Aj={};l(Aj,{validateClientScript:()=>c4,processOnceDirective:()=>p4,processJsonDirective:()=>l4,processDirectives:()=>_0,injectRouterScript:()=>UX});import S0 from"path";import{deriveLayoutGroup as Bj}from"stx-router/layout-metadata";function nJ($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function jj($,Z){let Y=$.length,X=Z,J=!0,Q=[],G=(K)=>K+9<=Y&&$[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(X<Y){let K=$[X];if(G(X))return X;if(K==="/"&&$[X+1]==="/"){if(X=$.indexOf(`
|
|
13405
13405
|
`,X+2),X===-1)return-1;X+=1,J=!0;continue}if(K==="/"&&$[X+1]==="*"){let z=$.indexOf("*/",X+2);if(z===-1)return-1;X=z+2,J=!0;continue}if(K==="/"&&J){let z=X+1,q=!1;while(z<Y){let U=$[z];if(U==="\\"){z+=2;continue}if(U==="[")q=!0;else if(U==="]")q=!1;else if(U==="/"&&!q){z++;break}else if(U===`
|
|
13406
13406
|
`){z=-1;break}z++}if(z===-1){X++,J=!1;continue}while(z<Y&&/[a-z]/.test($[z]))z++;X=z,J=!1;continue}if(K==="'"||K==='"'){let z=K;X++;while(X<Y){if($[X]==="\\"){X+=2;continue}if($[X]===z){X++;break}if($[X]===`
|
|
13407
13407
|
`)break;X++}J=!1;continue}if(K==="`"){X++;while(X<Y){if($[X]==="\\"){X+=2;continue}if($[X]==="`"){X++;break}if($[X]==="$"&&$[X+1]==="{"){Q.push(!0),X+=2,J=!0;break}X++}if(Q.length===0)J=!1;continue}if(K==="}"&&Q.length>0){Q.pop(),X++;while(X<Y){if($[X]==="\\"){X+=2;continue}if($[X]==="`"){X++,J=!1;break}if($[X]==="$"&&$[X+1]==="{"){Q.push(!0),X+=2,J=!0;break}X++}continue}if(/\s/.test(K));else if(/[)\].\w$]/.test(K))J=!1;else J=!0;X++}return-1}async function _0($,Z,Y,X,J){if(X.ssr===!1&&!X.autoShell&&X.buildMode==="spa")return $;let Q=!Z.__stxProcessingDepth;if(!Z.__stxProcessingDepth)Z.__stxProcessingDepth=0;if(Z.__stxProcessingDepth++,!Z.__onceStore)Z.__onceStore=new Set;if((X.debug||!C5()&&!l$())&&Y&&Y.endsWith(".stx"))n3($,Y);try{return await u9.timeAsync("template-processing",async()=>{let G=await Hj($,Z,Y,X,J);if(Q)G=s6(G);if(Q&&X.autoShell&&X.buildMode!=="compile"){let K=X.app?.head||{},q=(Z.__stx_runtime_head||null)??g5(),U=(Z.__stx_head_raw||"").trim(),W,_=U.match(/<title[^>]*>([\s\S]*?)<\/title>/i);if(_)W=_[1].trim(),U=U.replace(_[0],"").trim();let B=Z.__sections?.title,j=q.title||W||B,H={...K,...j&&{title:j},meta:[...K.meta||[],...q.meta||[]],link:[...K.link||[],...q.link||[]],script:[...K.script||[],...q.script||[]],headRaw:[K.headRaw,U].filter(Boolean).join(`
|
|
@@ -13423,17 +13423,17 @@ ${g}`);if(/<html\b[^>]*>/i.test(x))return x.replace(/(<html\b[^>]*>)/i,`$1
|
|
|
13423
13423
|
${g}
|
|
13424
13424
|
</head>`);return x},{renderHead:h,getHead:f}=await Promise.resolve().then(() => (h5(),C3)),m=Z.__stx_runtime_head,o=m&&(m.title||m.meta?.length||m.link?.length)?m:f();if(o.title||o.meta?.length||o.link?.length){let x=h(o);if(x)Q=y(Q,x)}if(E.headContent)Q=y(Q,E.headContent);if(G.csp?.enabled&&G.csp.addMetaTag)Q=z2(Q,G.csp,Z);if(G.analytics?.enabled)Q=B9(Q,G);if(G.heatmap?.enabled)Q=o9(Q,G);if(G.pwa?.enabled&&G.pwa.autoInject!==!1){let{injectPwaTags:x}=await Promise.resolve().then(() => (iJ(),cJ));Q=x(Q,G)}let N0=/<script\b(?![^>]*\bserver\b)[^>]*>[\s\S]*?<\/script>/i.test(Q),Z1=/\bSTX\.\w+/.test(Q),y0=/window\.STX\s*=/.test(Q);if(N0&&Z1&&!y0){let g=`<script data-stx-scoped>
|
|
13425
13425
|
${SZ()}
|
|
13426
|
-
</script>`;if(Q.includes("</head>")){let u=Q.indexOf("</head>"),Q0=Q.slice(0,u).indexOf("<script");if(Q0!==-1){let
|
|
13426
|
+
</script>`;if(Q.includes("</head>")){let u=Q.indexOf("</head>"),Q0=Q.slice(0,u).indexOf("<script");if(Q0!==-1){let T0=Q.slice(0,Q0),C0=Q.slice(Q0);Q=T0+g+`
|
|
13427
13427
|
`+C0}else Q=Q.replace("</head>",`${g}
|
|
13428
13428
|
</head>`)}else if(Q.includes("<body"))Q=Q.replace(/<body([^>]*)>/,`<body$1>
|
|
13429
13429
|
${g}`);else Q=g+`
|
|
13430
|
-
`+Q}{let x=/<script\s+server\b[^>]*>/gi,g,u=[];while((g=x.exec(Q))!==null){let s=g.index+g[0].length,Q0=jj(Q,s);if(Q0===-1)continue;let
|
|
13431
|
-
`);return{line:Y.length,column:Y[Y.length-1].length+1}}function Sj($,Z,Y){let X=[];switch($){case"if":case"elseif":case"unless":if(Y.length===0)X.push({type:"syntax",message:`@${$} requires a condition`,suggestion:`Use @${$}(condition)`});break;case"foreach":if(Y.length===0||!Y[0].includes(" as "))X.push({type:"syntax",message:'@foreach requires "items as item" syntax',suggestion:"Use @foreach(items as item) or @foreach(items as key => value)"});break;case"for":if(Y.length===0)X.push({type:"syntax",message:"@for requires loop parameters",suggestion:"Use @for(let i = 0; i < 10; i++)"});break;case"switch":if(Y.length===0)X.push({type:"syntax",message:"@switch requires an expression",suggestion:"Use @switch(expression)"});break;case"case":if(Y.length===0)X.push({type:"syntax",message:"@case requires a value",suggestion:"Use @case(value)"});break;case"include":case"extends":case"component":if(Y.length===0)X.push({type:"syntax",message:`@${$} requires a path`,suggestion:`Use @${$}('path/to/template')`});break}return X}function yj($){return/@[a-z]+/i.test($)||/\{\{/.test($)}function Cj($){let Z=$.matchAll(/@([a-z]+)/gi),Y=new Set;for(let X of Z){let J=X[1].toLowerCase();if(!J.startsWith("end"))Y.add(J)}return Array.from(Y)}var Rj,Nj,Tj;var sJ=
|
|
13432
|
-
`)J++;return!0}if($[J]==="/"&&$[J+1]==="*"){J+=2;while(J<Q-1&&!($[J]==="*"&&$[J+1]==="/"))J++;return J+=2,!0}return!1},q=()=>{if(X!==0)return;let U=$.slice(J).match(/^(const|let|var)\s*\{([^}]+)\}\s*=/);if(U){let j=U[2].split(",").map((H)=>{let L=H.trim().split(":");return L[L.length-1].trim()});for(let H of j)if(H&&/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(H)&&!Y.has(H))Z.push(H),Y.add(H);return}let W=$.slice(J).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(W){let j=W[2];if(!Y.has(j))Z.push(j),Y.add(j);return}let _=$.slice(J).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(_){let j=_[1];if(!Y.has(j))Z.push(j),Y.add(j);return}let B=$.slice(J).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(B){let j=B[1];if(!Y.has(j))Z.push(j),Y.add(j)}};while(J<Q){if(z())continue;if($[J]==="'"||$[J]==='"'){G($[J]);continue}if($[J]==="`"){K();continue}if($[J]==="{"){X++,J++;continue}if($[J]==="}"){X--,J++;continue}if(X===0&&/[a-z]/i.test($[J])&&(J===0||/\s|[;{}()]/.test($[J-1])))q();J++}return Z}function pj($){let Z=[],Y=0,X=0,J=null;for(let Q=0;Q<$.length;Q++){let G=$[Q];if(J){if(G==="\\"){Q++;continue}if(G===J)J=null;continue}if(G==='"'||G==="'"||G==="`"){J=G;continue}if(G==="("||G==="["||G==="{")Y++;else if(G===")"||G==="]"||G==="}")Y--;else if(G===","&&Y===0)Z.push($.slice(X,Q)),X=Q+1}if(X<$.length)Z.push($.slice(X));return Z}function cj($){let Z=0,Y=null;for(let X=0;X<$.length;X++){let J=$[X];if(Y){if(J==="\\"){X++;continue}if(J===Y)Y=null;continue}if(J==='"'||J==="'"||J==="`"){Y=J;continue}if(J==="("||J==="["||J==="{")Z++;else if(J===")"||J==="]"||J==="}")Z--;else if(J==="="&&Z===0){let Q=$[X-1],G=$[X+1];if(Q==="!"||Q==="<"||Q===">"||Q==="=")continue;if(G==="="||G===">")continue;return X}}return-1}function ij($,Z){try{let Y=/=\s*(?:withDefaults\s*\([\s\S]*?defineProps|defineProps)\b/.exec($);if(!Y)return;let X=Y.index-1;while(X>=0&&/\s/.test($[X]))X--;if($[X]!=="}")return;let J=X,Q=0,G=-1;for(;X>=0;X--){let z=$[X];if(z==="}")Q++;else if(z==="{"){if(Q--,Q===0){G=X;break}}}if(G===-1)return;let K=$.slice(G+1,J);for(let z of pj(K)){let q=z.trim();if(!q||q.startsWith("..."))continue;let U=cj(q);if(U===-1)continue;let W=q.slice(0,U).trim();if(!/^[A-Z_$][\w$]*$/i.test(W))continue;if(Z[W]!==void 0)continue;let _=q.slice(U+1).trim();if(!_)continue;try{let B=Object.keys(Z),j=Function(...B,`"use strict"; return (${_});`);Z[W]=j(...B.map((H)=>Z[H]))}catch{}}}catch{}}async function GY($,Z,Y,X,J){let Q=$.endsWith(".stx")?$.slice(0,-4):$,G=(L)=>L.split("-").map((F)=>F.charAt(0).toUpperCase()+F.slice(1)).join(""),K=(L)=>L.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),z=Y.__importedComponents;if(z){for(let L of[Q,Q.toLowerCase(),G(Q),K(Q)])if(z.has(L))return!0}let q=[...new Set([`${Q}.stx`,`${G(Q)}.stx`,`${K(Q)}.stx`])],U=typeof J.root==="string"?d.resolve(J.root):void 0,W=U??d.dirname(X),_=[],B=(L)=>{if(L&&!_.includes(L))_.push(L)},j=Y.__originalFilePath;if(j)B(d.join(d.dirname(j),"components"));B(Z),B(d.join(d.dirname(X),"components")),B(J.componentsDir);let H=J._pluginComponentDirs;if(Array.isArray(H))for(let L of H)B(typeof L==="string"?L:null);if(U)B(d.resolve(U,"resources/views/components")),B(d.resolve(U,"resources/components")),B(d.resolve(U,"src/components")),B(d.resolve(U,"components"));if(Q.startsWith("./")||Q.startsWith("../"))return i(d.resolve(d.dirname(X),`${Q}.stx`));for(let L of _){let F=d.isAbsolute(L)?L:d.resolve(W,L);for(let O of q)if(await i(d.join(F,O)))return!0}return!1}function nj($){return $==="visible"||$==="idle"||$==="interaction"||$.startsWith("media:")}async function z1($,Z,Y,X,J,Q,G,K=new Set,z){let{extractVariables:q}=await Promise.resolve().then(() => (o5(),R4)),U=K??new Set;if(U.has($))return`[Circular component reference: ${$}]`;let W=new Set(U);W.add($);let _=typeof Z.client==="string"?Z.client.trim():"";if("client"in Z)delete Z.client;let B=_&&_!=="load"&&nj(_)?_:"";try{let j=(
|
|
13430
|
+
`+Q}{let x=/<script\s+server\b[^>]*>/gi,g,u=[];while((g=x.exec(Q))!==null){let s=g.index+g[0].length,Q0=jj(Q,s);if(Q0===-1)continue;let T0=Q0+9;while(T0<Q.length&&/\s/.test(Q[T0]))T0++;u.push({start:g.index,end:T0}),x.lastIndex=T0}for(let s=u.length-1;s>=0;s--){let{start:Q0,end:T0}=u[s];Q=Q.substring(0,Q0)+Q.substring(T0)}}let E0=D4(Q,Y);if(E0.hasScoped)Q=E0.html;let X0=Z.__stx_event_bindings||[],V0=!1,U0=[],C=/\s:[a-z][\w.-]*\s*=/.test(Q),{scanScriptTags:v}=await Promise.resolve().then(() => (o6(),VX));for(let x of v(Q,{skipAttrs:/\bserver\b|\bsrc\s*=|\bdata-stx-scoped\b|\bdata-stx-router\b|\btype\s*=\s*["'](?!(?:text\/javascript|application\/javascript|module)["'])[^"']*["']/}))U0.push({match:x.fullMatch,attrs:x.attrs,content:x.body});for(let{match:x,attrs:g,content:u}of U0){V0=!0;let s=u;c4(u,Y,X.strict);let Q0=await Y$(u,{eventBindings:X0,attrs:g,hasColonDirectives:C,templateContent:$,filePath:Y,projectRoot:process.cwd(),production:X.buildMode==="compile",serverData:k});Q=Q.replace(x,()=>Q0)}if(V0)Z.__stx_event_bindings=[];return Q}var n1="<!--PARENT_CONTENT_PLACEHOLDER-->";var H4=P(()=>{EZ();F$();J7();yZ();xZ();j9();O7();q7();lZ();s5();oZ();rZ();z4();U2();H2();F2();t0();h5();r0();R2();S2();EY();yY();D6();V7();fY();t1();hY();z3();O0();mY();pY();nY();sY();P6();o6();N6();NX();r6();a6();w0();o3();r6();a6()});function Mj($){let Z=[],Y=[];return Ij($,Z),Dj($,Z,Y),Ej($,Y),kj($,Z),{valid:Z.length===0,errors:Z,warnings:Y}}function Ij($,Z){let Y=($.match(/\{\{/g)||[]).length,X=($.match(/\}\}/g)||[]).length;if(Y!==X)Z.push({type:"expression",message:`Unclosed expression brackets: found ${Y} opening '{{' and ${X} closing '}}'`,suggestion:"Ensure every {{ has a matching }}"})}function Dj($,Z,Y){for(let X of Rj){let J=new RegExp(`${X.open}(?:\\s|\\()`,"g"),Q=new RegExp(X.close,"g"),G=($.match(J)||[]).length,K=($.match(Q)||[]).length;if(X.altClose){let z=new RegExp(X.altClose,"g");K+=($.match(z)||[]).length}if(G>K)Z.push({type:"directive",message:`Unclosed @${X.name} directive: found ${G} opening and ${K} closing`,suggestion:`Add ${G-K} missing ${X.close} tag(s)`});else if(K>G)Y.push({type:"directive",message:`Extra ${X.close} found: ${K-G} more closing than opening`,suggestion:`Check for orphaned ${X.close} tags`})}}function Ej($,Z){for(let Y of Nj)if(Y.pattern.test($))Z.push({type:"syntax",message:Y.message,suggestion:Y.suggestion})}function kj($,Z){for(let Y of Tj)if(Y.pattern.test($))Z.push({type:"expression",message:`Security warning: ${Y.message}`,suggestion:"Remove dangerous code from template expressions"})}function bj($,Z){let Y=$.slice(0,Z).split(`
|
|
13431
|
+
`);return{line:Y.length,column:Y[Y.length-1].length+1}}function Sj($,Z,Y){let X=[];switch($){case"if":case"elseif":case"unless":if(Y.length===0)X.push({type:"syntax",message:`@${$} requires a condition`,suggestion:`Use @${$}(condition)`});break;case"foreach":if(Y.length===0||!Y[0].includes(" as "))X.push({type:"syntax",message:'@foreach requires "items as item" syntax',suggestion:"Use @foreach(items as item) or @foreach(items as key => value)"});break;case"for":if(Y.length===0)X.push({type:"syntax",message:"@for requires loop parameters",suggestion:"Use @for(let i = 0; i < 10; i++)"});break;case"switch":if(Y.length===0)X.push({type:"syntax",message:"@switch requires an expression",suggestion:"Use @switch(expression)"});break;case"case":if(Y.length===0)X.push({type:"syntax",message:"@case requires a value",suggestion:"Use @case(value)"});break;case"include":case"extends":case"component":if(Y.length===0)X.push({type:"syntax",message:`@${$} requires a path`,suggestion:`Use @${$}('path/to/template')`});break}return X}function yj($){return/@[a-z]+/i.test($)||/\{\{/.test($)}function Cj($){let Z=$.matchAll(/@([a-z]+)/gi),Y=new Set;for(let X of Z){let J=X[1].toLowerCase();if(!J.startsWith("end"))Y.add(J)}return Array.from(Y)}var Rj,Nj,Tj;var sJ=P(()=>{Rj=[{open:"@if",close:"@endif",name:"if"},{open:"@unless",close:"@endunless",name:"unless"},{open:"@foreach",close:"@endforeach",name:"foreach"},{open:"@for",close:"@endfor",name:"for"},{open:"@while",close:"@endwhile",name:"while"},{open:"@forelse",close:"@endforelse",name:"forelse"},{open:"@switch",close:"@endswitch",name:"switch"},{open:"@isset",close:"@endisset",name:"isset"},{open:"@empty",close:"@endempty",name:"empty"},{open:"@auth",close:"@endauth",name:"auth"},{open:"@guest",close:"@endguest",name:"guest"},{open:"@can",close:"@endcan",name:"can"},{open:"@cannot",close:"@endcannot",name:"cannot"},{open:"@section",close:"@endsection",name:"section",altClose:"@show"},{open:"@push",close:"@endpush",name:"push"},{open:"@prepend",close:"@endprepend",name:"prepend"},{open:"@once",close:"@endonce",name:"once"},{open:"@markdown",close:"@endmarkdown",name:"markdown"},{open:"@component",close:"@endcomponent",name:"component"}],Nj=[{pattern:/@if\s*[^(]/,message:"@if directive missing parentheses",suggestion:"Use @if(condition)"},{pattern:/@foreach\s*[^(]/,message:"@foreach directive missing parentheses",suggestion:"Use @foreach(items as item)"},{pattern:/@foreach\([^)]*\)\s*[^@\n<]/,message:"@foreach may have content on same line",suggestion:"Put content on new line after @foreach()"},{pattern:/@include\s*[^(]/,message:"@include directive missing parentheses",suggestion:"Use @include('partial-name')"},{pattern:/@extends\s*[^(]/,message:"@extends directive missing parentheses",suggestion:"Use @extends('layout-name') or @layout('layout-name')"},{pattern:/@layout\s*[^(]/,message:"@layout directive missing parentheses",suggestion:"Use @layout('layout-name')"}],Tj=[{pattern:/\{\{\s*constructor\s*\}\}/,message:"Attempting to access constructor property"},{pattern:/\{\{\s*__proto__\s*\}\}/,message:"Attempting to access __proto__ property"},{pattern:/\{\{\s*eval\s*\(/,message:"Attempting to use eval in expression"}]});var $Q={};l($Q,{renderSlot:()=>aJ,processSlots:()=>eJ,parseSlots:()=>rJ,parseSlotElement:()=>vj,extractSlotContent:()=>gj,applySlots:()=>hj});function Pj($,Z){let Y=1,X=Z,J="<template",Q="</template";while(X<$.length&&Y>0){let G=$.indexOf("<",X);if(G===-1)break;if(X=G,$.startsWith(J,X)&&(X+J.length>=$.length||/[\s>\/]/.test($[X+J.length]))){Y++,X+=J.length;continue}if($.startsWith(Q,X)){let K=$.indexOf(">",X+Q.length);if(K!==-1){if(Y--,Y===0)return K+1;X=K+1;continue}}X++}return Y===0?X:-1}function rJ($){let Z={default:"",named:new Map},Y=$,X=/<template\s+(?:#([a-zA-Z][\w-]*)|v-slot:([a-zA-Z][\w-]*)|slot="([a-zA-Z][\w-]*)")(?:\s*=\s*"([^"]*)")?[^>]*>/gi,J=[],Q;while((Q=X.exec($))!==null){let[U,W,_,B,j]=Q,H=W||_||B,L=Q.index+U.length,F=Pj($,L);if(F!==-1){let O=$.slice(L,F-11).trim();J.push({start:Q.index,end:F,slotName:H,content:O,propsBinding:j||void 0}),Z.named.set(H,{name:H,content:O,propsBinding:j||void 0})}}J.sort((U,W)=>W.start-U.start);for(let U of J)Y=Y.slice(0,U.start)+Y.slice(U.end);let G=[],K=/<([a-zA-Z][a-zA-Z0-9-]*)\b([^>]*?)\bslot="([^"]+)"([^>]*)>([\s\S]*?)<\/\1>/gi,z;while((z=K.exec(Y))!==null){let[U,W,_,B,j,H]=z,L=_.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),F=j.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),O=(L+F).trim(),V=`<${W}${O?" "+O:""}>${H}</${W}>`;G.push({start:z.index,end:z.index+U.length,slotName:B,element:V})}let q=/<([a-zA-Z][a-zA-Z0-9-]*)\b([^>]*?)\bslot="([^"]+)"([^>]*?)\/>/gi;while((z=q.exec(Y))!==null){let[U,W,_,B,j]=z,H=_.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),L=j.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),F=(H+L).trim(),O=`<${W}${F?" "+F:""} />`;G.push({start:z.index,end:z.index+U.length,slotName:B,element:O})}G.sort((U,W)=>W.start-U.start);for(let U of G){let W=Z.named.get(U.slotName);if(W)W.content+=U.element;else Z.named.set(U.slotName,{name:U.slotName,content:U.element});Y=Y.slice(0,U.start)+Y.slice(U.end)}return Z.default=Y.trim(),Z}function vj($){let Z=$.match(/name\s*=\s*["']([^"']+)["']/),Y=Z?Z[1]:"",X={},J=/:([a-zA-Z][\w-]*)\s*=\s*["']([^"']+)["']/g,Q;while((Q=J.exec($))!==null)X[Q[1]]=Q[2];let G=$.match(/<slot[^>]*>([\s\S]*?)<\/slot>/i),K=G?G[1].trim():"";return{name:Y,props:X,defaultContent:K}}async function aJ($,Z,Y,X){if(!$)return Y;let J=$.content;if($.propsBinding&&Object.keys(Z).length>0){let Q=$.propsBinding.trim(),G={...X};if(Q.startsWith("{")&&Q.endsWith("}")){let K=Q.slice(1,-1).split(",").map((z)=>z.trim()).filter(Boolean);for(let z of K){let[q,U]=z.split(":").map((_)=>_.trim()),W=U||q;if(Z[q]!==void 0)G[W]=Z[q]}}else G[Q]=Z;J=xj(J,G)}return J}function xj($,Z){return $.replace(/\{\{\s*([^}]+)\s*\}\}/g,(Y,X)=>{try{let J=X.trim(),Q=tJ(J,Z);return m0(String(Q??""))}catch{return`{{ ${X} }}`}})}function tJ($,Z){if(/^[a-zA-Z_$][\w$]*(\.[a-zA-Z_$][\w$]*)*$/.test($)){let X=$.split("."),J=Z;for(let Q of X)if(J&&typeof J==="object"&&Q in J)J=J[Q];else return;return J}let Y=$.match(/^([a-zA-Z_$][\w$]*)\s*([+\-*/])\s*(\d+)$/);if(Y){let[,X,J,Q]=Y,G=Z[X],K=parseInt(Q,10);if(typeof G==="number")switch(J){case"+":return G+K;case"-":return G-K;case"*":return G*K;case"/":return G/K}}try{if(!$0($))return;return Z0($,Object.keys(Z))(...Object.values(Z))}catch{return}}async function eJ($,Z,Y){let X=$;X=await fj(X,/<slot\s+name\s*=\s*["']([^"']+)["']([^>]*?)(?:\/>|>([\s\S]*?)<\/slot>)/gi,async(G,K,z,q)=>{let U=Z.named.get(K),W=q?.trim()||"",_=z||"",B={},j=/:([a-zA-Z_$][\w$-]*)\s*=\s*["']([^"']+)["']/g,H;while((H=j.exec(_))!==null){let L=H[1],F=H[2];B[L]=tJ(F,Y)}return await aJ(U,B,W,Y)});let Q=/<slot\s*(?:\/>|>([\s\S]*?)<\/slot>)/gi;return X=X.replace(Q,(G,K)=>{if(G.includes("name="))return G;let z=K?.trim()||"";return Z.default||z}),X}async function fj($,Z,Y){let X=[],J=[];$.replace(Z,(K,...z)=>{let q=z[z.length-2];return J.push({match:K,index:q}),X.push(Y(K,...z.slice(0,-2))),K});let Q=await Promise.all(X),G=$;for(let K=J.length-1;K>=0;K--){let{match:z,index:q}=J[K];G=G.slice(0,q)+Q[K]+G.slice(q+z.length)}return G}function gj($){let Z=rJ($);return{defaultSlot:Z.default,namedSlots:Z.named}}async function hj($,Z,Y,X){return await eJ($,{default:Z,named:Y},X)}var ZQ=P(()=>{r0();w0()});import dj from"fs";import d from"path";function YQ($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function uj($){return/\bjs\b/.test($)||/\blang\s*=\s*["']?(js|javascript)["']?/i.test($)}function u1($){return!uj($)}function l1($){try{let Z=$.replace(/^\s*import\s+\w+\s+from\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");Z=Z.replace(/^\s*import\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");let Y=[];Z=Z.replace(/\{!![\s\S]*?!!\}/g,(Q)=>{let G=Y.length;return Y.push(Q),`"__STX_EXPR_${G}__"`}),Z=Z.replace(/\{\{\{[\s\S]*?\}\}\}/g,(Q)=>{let G=Y.length;return Y.push(Q),`"__STX_EXPR_${G}__"`}),Z=Z.replace(/\{\{[\s\S]*?\}\}/g,(Q)=>{let G=Y.length;return Y.push(Q),`"__STX_EXPR_${G}__"`});let J=new Bun.Transpiler({loader:"ts",target:"browser",define:o0()}).transformSync(Z);for(let Q=0;Q<Y.length;Q++)J=J.replace(`"__STX_EXPR_${Q}__"`,Y[Q]),J=J.replace(`'__STX_EXPR_${Q}__'`,Y[Q]);return J}catch(Z){if(process.env.STX_DEBUG_TS)console.warn("[STX] TypeScript transpilation error:",Z);return $}}function lj($){let Z=[],Y=new Set,X=0,J=0,Q=$.length,G=(U)=>{J++;while(J<Q){if($[J]==="\\"){J+=2;continue}if($[J]===U){J++;return}J++}},K=()=>{J++;while(J<Q){if($[J]==="\\"){J+=2;continue}if($[J]==="`"){J++;return}if($[J]==="$"&&$[J+1]==="{"){J+=2;let U=1;while(J<Q&&U>0)if($[J]==="{")U++,J++;else if($[J]==="}")U--,J++;else if($[J]==="'"||$[J]==='"')G($[J]);else if($[J]==="`")K();else J++;continue}J++}},z=()=>{if($[J]==="/"&&$[J+1]==="/"){while(J<Q&&$[J]!==`
|
|
13432
|
+
`)J++;return!0}if($[J]==="/"&&$[J+1]==="*"){J+=2;while(J<Q-1&&!($[J]==="*"&&$[J+1]==="/"))J++;return J+=2,!0}return!1},q=()=>{if(X!==0)return;let U=$.slice(J).match(/^(const|let|var)\s*\{([^}]+)\}\s*=/);if(U){let j=U[2].split(",").map((H)=>{let L=H.trim().split(":");return L[L.length-1].trim()});for(let H of j)if(H&&/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(H)&&!Y.has(H))Z.push(H),Y.add(H);return}let W=$.slice(J).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(W){let j=W[2];if(!Y.has(j))Z.push(j),Y.add(j);return}let _=$.slice(J).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(_){let j=_[1];if(!Y.has(j))Z.push(j),Y.add(j);return}let B=$.slice(J).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(B){let j=B[1];if(!Y.has(j))Z.push(j),Y.add(j)}};while(J<Q){if(z())continue;if($[J]==="'"||$[J]==='"'){G($[J]);continue}if($[J]==="`"){K();continue}if($[J]==="{"){X++,J++;continue}if($[J]==="}"){X--,J++;continue}if(X===0&&/[a-z]/i.test($[J])&&(J===0||/\s|[;{}()]/.test($[J-1])))q();J++}return Z}function pj($){let Z=[],Y=0,X=0,J=null;for(let Q=0;Q<$.length;Q++){let G=$[Q];if(J){if(G==="\\"){Q++;continue}if(G===J)J=null;continue}if(G==='"'||G==="'"||G==="`"){J=G;continue}if(G==="("||G==="["||G==="{")Y++;else if(G===")"||G==="]"||G==="}")Y--;else if(G===","&&Y===0)Z.push($.slice(X,Q)),X=Q+1}if(X<$.length)Z.push($.slice(X));return Z}function cj($){let Z=0,Y=null;for(let X=0;X<$.length;X++){let J=$[X];if(Y){if(J==="\\"){X++;continue}if(J===Y)Y=null;continue}if(J==='"'||J==="'"||J==="`"){Y=J;continue}if(J==="("||J==="["||J==="{")Z++;else if(J===")"||J==="]"||J==="}")Z--;else if(J==="="&&Z===0){let Q=$[X-1],G=$[X+1];if(Q==="!"||Q==="<"||Q===">"||Q==="=")continue;if(G==="="||G===">")continue;return X}}return-1}function ij($,Z){try{let Y=/=\s*(?:withDefaults\s*\([\s\S]*?defineProps|defineProps)\b/.exec($);if(!Y)return;let X=Y.index-1;while(X>=0&&/\s/.test($[X]))X--;if($[X]!=="}")return;let J=X,Q=0,G=-1;for(;X>=0;X--){let z=$[X];if(z==="}")Q++;else if(z==="{"){if(Q--,Q===0){G=X;break}}}if(G===-1)return;let K=$.slice(G+1,J);for(let z of pj(K)){let q=z.trim();if(!q||q.startsWith("..."))continue;let U=cj(q);if(U===-1)continue;let W=q.slice(0,U).trim();if(!/^[A-Z_$][\w$]*$/i.test(W))continue;if(Z[W]!==void 0)continue;let _=q.slice(U+1).trim();if(!_)continue;try{let B=Object.keys(Z),j=Function(...B,`"use strict"; return (${_});`);Z[W]=j(...B.map((H)=>Z[H]))}catch{}}}catch{}}async function GY($,Z,Y,X,J){let Q=$.endsWith(".stx")?$.slice(0,-4):$,G=(L)=>L.split("-").map((F)=>F.charAt(0).toUpperCase()+F.slice(1)).join(""),K=(L)=>L.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),z=Y.__importedComponents;if(z){for(let L of[Q,Q.toLowerCase(),G(Q),K(Q)])if(z.has(L))return!0}let q=[...new Set([`${Q}.stx`,`${G(Q)}.stx`,`${K(Q)}.stx`])],U=typeof J.root==="string"?d.resolve(J.root):void 0,W=U??d.dirname(X),_=[],B=(L)=>{if(L&&!_.includes(L))_.push(L)},j=Y.__originalFilePath;if(j)B(d.join(d.dirname(j),"components"));B(Z),B(d.join(d.dirname(X),"components")),B(J.componentsDir);let H=J._pluginComponentDirs;if(Array.isArray(H))for(let L of H)B(typeof L==="string"?L:null);if(U)B(d.resolve(U,"resources/views/components")),B(d.resolve(U,"resources/components")),B(d.resolve(U,"src/components")),B(d.resolve(U,"components"));if(Q.startsWith("./")||Q.startsWith("../"))return i(d.resolve(d.dirname(X),`${Q}.stx`));for(let L of _){let F=d.isAbsolute(L)?L:d.resolve(W,L);for(let O of q)if(await i(d.join(F,O)))return!0}return!1}function nj($){return $==="visible"||$==="idle"||$==="interaction"||$.startsWith("media:")}async function z1($,Z,Y,X,J,Q,G,K=new Set,z){let{extractVariables:q}=await Promise.resolve().then(() => (o5(),R4)),U=K??new Set;if(U.has($))return`[Circular component reference: ${$}]`;let W=new Set(U);W.add($);let _=typeof Z.client==="string"?Z.client.trim():"";if("client"in Z)delete Z.client;let B=_&&_!=="load"&&nj(_)?_:"";try{let j=(C)=>C.split("-").map((v)=>v.charAt(0).toUpperCase()+v.slice(1)).join(""),H=(C)=>C.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),L=$.endsWith(".stx")?$.slice(0,-4):$,F=null,O=J.__importedComponents;if(O){let C=[L,L.toLowerCase(),j(L),H(L)];for(let v of C)if(O.has(v)){F=O.get(v);break}}let V=[];if(!F){let C=[`${L}.stx`,`${j(L)}.stx`,`${H(L)}.stx`],v=[...new Set(C)],x=J.__originalFilePath,g=[];if(x){let q0=d.join(d.dirname(x),"components");g.push(q0)}if(X)g.push(X);let u=d.join(d.dirname(Q),"components");if(!g.includes(u))g.push(u);if(G.componentsDir&&G.componentsDir!==X&&!g.includes(G.componentsDir))g.push(G.componentsDir);let s=G._pluginComponentDirs;if(Array.isArray(s)){for(let q0 of s)if(typeof q0==="string"&&!g.includes(q0))g.push(q0)}let Q0=typeof G.root==="string"?d.resolve(G.root):void 0,T0=Q0??d.dirname(Q),C0=[];if(Q0)C0.push(d.resolve(Q0,"resources/views/components")),C0.push(d.resolve(Q0,"resources/components")),C0.push(d.resolve(Q0,"src/components")),C0.push(d.resolve(Q0,"components"));C0.push(d.resolve(import.meta.dir,"components"));for(let q0 of C0)if(!g.includes(q0))g.push(q0);let M1=[...new Set(g.map((q0)=>{if(!q0)return q0;return d.isAbsolute(q0)?q0:d.resolve(T0,q0)}))];if(g.length=0,g.push(...M1),L.startsWith("./")||L.startsWith("../"))F=d.resolve(d.dirname(Q),`${L}.stx`),V.push(F);else for(let q0 of g){if(!q0)continue;for(let I1 of v){let R5=d.join(q0,I1);if(V.push(R5),await i(R5)){F=R5;break}}if(F)break;if(!F)try{let I1=await import("fs");if(!I1.statSync(q0,{throwIfNoEntry:!1})?.isDirectory())continue;let Q$=8,t=[{path:q0,depth:0}];while(t.length>0&&!F){let n0=t.pop();if(n0.depth>=Q$)continue;let $7;try{$7=I1.readdirSync(n0.path,{withFileTypes:!0})}catch{continue}for(let G$ of $7){if(!G$.isDirectory())continue;if(G$.name==="node_modules"||G$.name.startsWith("."))continue;let Q9=d.join(n0.path,G$.name);for(let WQ of v){let Z7=d.join(Q9,WQ);if(V.push(Z7),await i(Z7)){F=Z7;break}}if(F)break;t.push({path:Q9,depth:n0.depth+1})}}}catch{}if(F)break}}if(!F||!await i(F)){let C=V.length>0?`
|
|
13433
13433
|
Searched paths:
|
|
13434
13434
|
${V.map((v)=>` - ${v}`).join(`
|
|
13435
|
-
`)}`:"";return`[Error loading component: ENOENT: no such file or directory, open '${$}']${
|
|
13436
|
-
`)}`}if(Y&&f.includes("{{ text || slot }}"))f=f.replace(/\{\{\s*text\s*\|\|\s*slot\s*\}\}/g,()=>Y);let{extractSlotContent:m,applySlots:o}=await Promise.resolve().then(() => (ZQ(),$Q)),{defaultSlot:N0,namedSlots:Z1}=m(Y);f=await o(f,N0||Y,Z1,N);for(let[
|
|
13435
|
+
`)}`:"";return`[Error loading component: ENOENT: no such file or directory, open '${$}']${C}`}z.add(F);let w;if(X$.has(F))w=X$.get(F);else try{w=await Bun.file(F).text(),X$.set(F,w)}catch(C){return`[Error loading component: ${C instanceof Error?C.message:String(C)}]`}let A=new Set(["__originalFilePath","__importedComponents"]),R={};for(let[C,v]of Object.entries(J))if(!C.startsWith("__")||A.has(C))R[C]=v;let N={...R,...Z,props:Z,slot:Y,__processedComponents:W,__sections:{}};ij(w,N);let M=w,T=M.match(/<template\b(?![^>]*\b(?:id|x-for|x-if|@for|@if|:for|:if)\s*=)[^>]*>([\s\S]*?)<\/template>/i);if(T)M=T[1].trim();let I=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,D=[...w.matchAll(I)],E=[];for(let C of D){let v=C[1]||"",x=C[2]||"",g=v.includes("server");if(u1(v)&&x.trim())x=l1(x);if(g&&x)try{await q(x,N,F)}catch(s){}if(!g){let s=x.replace(/^\s*const\s*\{[^}]+\}\s*=\s*window\.stx\s*;?\s*\n?/gm,"");if(s.includes("{{")&&s.includes("}}"))s=s0(s,N,F);let Q0=v.replace(/\s*\bts\b/g,"").replace(/\s*\blang\s*=\s*["']?(ts|typescript)["']?/gi,"");E.push(`<script${Q0}>${s}</script>`)}}let b=w.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),S=b?b[1]:"",k=b?b[2]:"",y="",h=S&&/\bscoped\b/i.test(S);if(b)y=`<style${S}>${k}</style>`;let f=M;if(f=f.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),b)f=f.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");{let C=/@push\s*\(\s*['"]styles['"]\s*\)([\s\S]*?)@endpush/gi,v=[];if(f=f.replace(C,(x,g)=>{let u=g.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i);if(u)v.push(`<style${u[1]}>${u[2]}</style>`);return""}),f=f.replace(/@push\s*\(\s*['"][^'"]+['"]\s*\)[\s\S]*?@endpush/gi,""),v.length>0)y=`${y}${v.join(`
|
|
13436
|
+
`)}`}if(Y&&f.includes("{{ text || slot }}"))f=f.replace(/\{\{\s*text\s*\|\|\s*slot\s*\}\}/g,()=>Y);let{extractSlotContent:m,applySlots:o}=await Promise.resolve().then(() => (ZQ(),$Q)),{defaultSlot:N0,namedSlots:Z1}=m(Y);f=await o(f,N0||Y,Z1,N);for(let[C,v]of Object.entries(N))if(typeof v==="string"){if(v.includes("<")&&v.includes(">")||v.includes("<")||v.includes(""")){let x=j7(v);N[C]=x}}let y0=E.some((C)=>/\b(state|derived|effect)\s*(?:<[^<>()]*>)?\s*\(/.test(C)),E0={...G,componentsDir:d.dirname(F),skipSignalsRuntime:!0,skipEventDirectives:y0,defaultLayout:void 0};N.__stxProcessingDepth=(J.__stxProcessingDepth||0)+1;let X0=await _0(f,N,F,E0,z),V0=`stx_${L.replace(/[^a-zA-Z0-9]/g,"_")}_${++mj}_${Math.random().toString(36).slice(2,8)}`,U0=X0;if(y0){let C="";if(Object.keys(Z).length>0)try{C=` data-stx-props="${YQ(JSON.stringify(Z))}"`}catch{}let v=B?` stx-hydrate="${YQ(B)}"`:"";if(U0=`<div data-stx-scope="${V0}"${C}${v}>${X0}</div>`,U0=E.map((g)=>{let u=g.match(/<script([^>]*)>([\s\S]*)<\/script>/i);if(!u)return g;let[,s,Q0]=u,T0=J1(Q0),C0=`
|
|
13437
13437
|
(function() {
|
|
13438
13438
|
const { state, derived, effect, batch, defineEmits, defineExpose, defineSlots, defineProps, withDefaults, useStore, useFetch, useRef, useQuery, useMutation, useOptimistic, useDebounce, useDebouncedValue, useThrottle, useInterval, useTimeout, useToggle, useCounter, useClickOutside, useFocus, useAsync, useLocalStorage, useSessionStorage, useCookie, useReactiveProp, useEventListener, useWebSocket, useColorMode, useDark, useHead, useSeoMeta, definePageMeta, useRoute, useSearchParams, navigate, goBack, goForward, provide, inject, ref, reactive, computed, watch, watchEffect, nextTick } = window.stx;
|
|
13439
13439
|
const __scope = window.stx._scopes = window.stx._scopes || {};
|
|
@@ -13445,12 +13445,12 @@ ${V.map((v)=>` - ${v}`).join(`
|
|
|
13445
13445
|
const onMount = (fn) => __scopeVars.__mountCallbacks.push(fn);
|
|
13446
13446
|
const onDestroy = (fn) => __scopeVars.__destroyCallbacks.push(fn);
|
|
13447
13447
|
|
|
13448
|
-
${
|
|
13448
|
+
${T0}
|
|
13449
13449
|
|
|
13450
13450
|
// Register all defined signals and functions in this scope
|
|
13451
13451
|
const __localVars = {};
|
|
13452
13452
|
try {
|
|
13453
|
-
${lj(
|
|
13453
|
+
${lj(T0).map((M1)=>`if (typeof ${M1} !== 'undefined') __localVars['${M1}'] = ${M1};`).join(`
|
|
13454
13454
|
`)}
|
|
13455
13455
|
}
|
|
13456
13456
|
catch (e) {}
|
|
@@ -13459,9 +13459,9 @@ catch (e) {}
|
|
|
13459
13459
|
`)+`
|
|
13460
13460
|
`+U0,y)U0+=`
|
|
13461
13461
|
`+y}else{if(y)U0+=`
|
|
13462
|
-
`+y;if(E.length>0){let
|
|
13462
|
+
`+y;if(E.length>0){let C=N.__stx_event_bindings||[],v=Z$(N),x=await Promise.all(E.map(async(g)=>{let u=g.match(/<script\b[^>]*>([\s\S]*?)<\/script>/);if(!u)return g;return await Y$(u[1],{eventBindings:C,templateContent:U0,filePath:F,projectRoot:process.cwd(),serverData:v})}));U0+=`
|
|
13463
13463
|
`+x.join(`
|
|
13464
|
-
`),N.__stx_event_bindings=[]}}if(h){let
|
|
13464
|
+
`),N.__stx_event_bindings=[]}}if(h){let C=D4(U0,F);if(C.hasScoped)U0=C.html}return U0}catch(j){return`[Error processing component: ${j instanceof Error?j.message:String(j)}]`}finally{U.delete($)}}async function i($){return Bun.file($).exists()}function J9($,Z){let Y=d.resolve(Z),X=d.resolve($),J=Y.endsWith(d.sep)?Y:Y+d.sep;if(X===Y||X.startsWith(J))return X;return null}async function s$($,Z,Y,X){let J=await oj($,Z,Y,X);if(J===null)return null;let Q=J9(J,process.cwd());if(Q)return Q;let G=[Y.root,Y.layoutsDir,Y.componentsDir,Y.partialsDir,Y.pagesDir].filter((K)=>typeof K==="string"&&K.length>0);for(let K of G){let z=d.isAbsolute(K)?K:d.resolve(process.cwd(),K);if(J9(J,z))return d.resolve(J)}return console.warn(`[stx] rejected resolved template path that escapes project root: ${J} (template: ${$}, from: ${Z})`),null}async function oj($,Z,Y,X){if(Y.debug)console.log(`Resolving template path: ${$} from ${Z}`);let J=d.dirname(Z),Q=process.cwd();if($.startsWith("/")){let _=d.join(Q,$),B=J9(_,Q);if(!B)return console.warn(`[stx] rejected template path that escapes project root: ${$} (from ${Z})`),null;if(Y.debug)console.log(`Checking absolute path: ${B}`);if(await i(B)&&X)X.add(B);return B}let G=d.join(J,$);if(await i(G)){if(Y.debug)console.log(`Found direct path: ${G}`);if(X)X.add(G);return G}if(!$.endsWith(".stx")&&!$.endsWith(".jsx")&&!$.endsWith(".tsx"))for(let _ of[".stx",".tsx",".jsx"]){let B=`${G}${_}`;if(await i(B)){if(Y.debug)console.log(`Found direct path with extension: ${B}`);if(X)X.add(B);return B}}let K="",z=d.resolve(J),q=process.cwd();for(let _=0;_<10;_++){let B=d.join(z,"layouts"),j=!1;try{j=dj.statSync(B,{throwIfNoEntry:!1})?.isDirectory()??!1}catch{}if(j){K=B;break}let H=d.dirname(z);if(H===z||H.length<q.length)break;z=H}if(K){let _=$.startsWith("layouts/")?$.slice(8):$,B=d.join(K,_);if(await i(B)){if(Y.debug)console.log(`Found in current layouts dir: ${B}`);if(X)X.add(B);return B}if(!_.endsWith(".stx")){let j=`${B}.stx`;if(await i(j)){if(Y.debug)console.log(`Found in current layouts dir with extension: ${j}`);if(X)X.add(j);return j}}}if(Y.layoutsDir){let _=d.isAbsolute(Y.layoutsDir)?Y.layoutsDir:d.resolve(process.cwd(),Y.layoutsDir),B=$.startsWith("layouts/")?$.slice(8):$,j=d.join(_,B);if(await i(j)){if(Y.debug)console.log(`Found in options.layoutsDir: ${j}`);if(X)X.add(j);return j}if(!$.endsWith(".stx")){let H=`${j}.stx`;if(await i(H)){if(Y.debug)console.log(`Found in options.layoutsDir with extension: ${H}`);if(X)X.add(H);return H}}}if($.startsWith("layouts/")||$.includes("/layouts/")){let _=$.split("layouts/"),B=d.join(Y.partialsDir||J,"layouts",_[1]);if(await i(B)){if(Y.debug)console.log(`Found in layouts path: ${B}`);if(X)X.add(B);return B}if(!B.endsWith(".stx")){let j=`${B}.stx`;if(await i(j)){if(Y.debug)console.log(`Found in layouts path with extension: ${j}`);if(X)X.add(j);return j}}}if(Y.partialsDir){if(K=d.join(Y.partialsDir,"layouts"),await i(K)){let _=d.join(K,$);if(await i(_)){if(Y.debug)console.log(`Found in partials layouts dir: ${_}`);if(X)X.add(_);return _}if(!$.endsWith(".stx")){let B=`${_}.stx`;if(await i(B)){if(Y.debug)console.log(`Found in partials layouts dir with extension: ${B}`);if(X)X.add(B);return B}}}}let U=Y.partialsDir||d.join(process.cwd(),"views"),W=d.join(U,$);if(await i(W)){if(Y.debug)console.log(`Found in views path: ${W}`);if(X)X.add(W);return W}if(!$.endsWith(".stx")){let _=`${W}.stx`;if(await i(_)){if(Y.debug)console.log(`Found in views path with extension: ${_}`);if(X)X.add(_);return _}}if(J.includes("temp")){let _=d.join(d.dirname(J),"layouts",$);if(await i(_)){if(Y.debug)console.log(`Found in temp layouts dir: ${_}`);if(X)X.add(_);return _}if(!$.endsWith(".stx")){let B=`${_}.stx`;if(await i(B)){if(Y.debug)console.log(`Found in temp layouts dir with extension: ${B}`);if(X)X.add(B);return B}}}if(Y.debug)console.warn(`Template not found after trying all paths: ${$} (referenced from ${Z})`);else console.warn(`Template not found: ${$} (referenced from ${Z})`);return null}function XQ($,Z,Y){let X=0,J="",Q="";try{if(typeof Z==="number"&&Z>=0){let G=$.split(`
|
|
13465
13465
|
`),K=0;for(let z=0;z<G.length;z++)if(K+=G[z].length+1,K>=Z){X=z+1,J=G[z].trim();let q=Math.max(0,z-2),U=Math.min(G.length,z+3);Q=G.slice(q,U).map((W,_)=>{let B=q+_+1;return`${B===X?"> ":" "}${B}: ${W}`}).join(`
|
|
13466
13466
|
`);break}}else if(Y){let G=$.indexOf(Y);if(G>=0)return XQ($,G)}}catch{}return{lineNumber:X,lineContent:J,context:Q}}function J0($,Z,Y,X,J,Q){let{lineNumber:G,context:K}=XQ(X,J,Q),z=Y.split("/").pop(),q=0;if(typeof J==="number"&&J>=0&&X){let W=X.lastIndexOf(`
|
|
13467
13467
|
`,Math.max(0,J-1));q=J-(W+1)+1}let U="";if(G>0)U+=`
|
|
@@ -13476,7 +13476,7 @@ ${a.yellow}${a.bold}Message:${a.reset} ${Z}
|
|
|
13476
13476
|
`,K)U+=`
|
|
13477
13477
|
${a.blue}${a.bold}Context:${a.reset}
|
|
13478
13478
|
${a.dim}${K}${a.reset}
|
|
13479
|
-
`;return U}function sT(){X$.clear()}function rT(){return{size:X$.size,maxSize:500}}var X$,mj=0,a;var O0=
|
|
13479
|
+
`;return U}function sT(){X$.clear()}function rT(){return{size:X$.size,maxSize:500}}var X$,mj=0,a;var O0=P(()=>{s5();r0();t1();H4();s1();P6();sJ();o5();X$=new E5(500);a={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"}});var MY={};l(MY,{renderVendorStyleTags:()=>GQ,processClientScript:()=>Y$,generateServerDataBridge:()=>m4,extractBridgeData:()=>Z$,extractAndStripCssImports:()=>QQ});import o1 from"path";import J$ from"fs";function rj($){if($.startsWith(".")||$.startsWith("/"))return null;if($.startsWith("@")){let Y=$.match(/^(@[^/]+\/[^/]+)(\/.*)?$/);if(!Y)return null;return{pkg:Y[1],subpath:Y[2]||""}}let Z=$.match(/^([^/]+)(\/.*)?$/);if(!Z)return null;return{pkg:Z[1],subpath:Z[2]||""}}function aj($,Z){let Y=Z;while(!0){let X=o1.join(Y,"node_modules",$,"package.json");if(J$.existsSync(X))return o1.dirname(X);let J=o1.dirname(Y);if(J===Y)return null;Y=J}}function tj($,Z){if(!$||typeof $!=="object")return null;let Y=(J)=>{if(typeof J==="string")return J;if(J&&typeof J==="object"){if(typeof J.import==="string")return J.import;if(typeof J.default==="string")return J.default;if(typeof J.import==="object")return Y(J.import);if(typeof J.default==="object")return Y(J.default)}return null};if(Object.prototype.hasOwnProperty.call($,Z))return Y($[Z]);let X=null;for(let J of Object.keys($)){let Q=J.indexOf("*");if(Q===-1)continue;let G=J.slice(0,Q),K=J.slice(Q+1);if(!Z.startsWith(G)||!Z.endsWith(K))continue;if(Z.length<G.length+K.length)continue;if(!X||G.length>X.prefix.length)X={pattern:J,prefix:G,suffix:K}}if(X){let J=Z.slice(X.prefix.length,Z.length-X.suffix.length),Q=Y($[X.pattern]);if(Q)return Q.replace("*",J)}return null}function ej($,Z){let Y=rj($);if(!Y||!Y.subpath)return null;let X=aj(Y.pkg,Z);if(!X)return null;let J;try{J=JSON.parse(J$.readFileSync(o1.join(X,"package.json"),"utf8"))}catch{return null}let Q=`.${Y.subpath}`,G=tj(J.exports,Q);if(!G)return null;let K=o1.resolve(X,G);return J$.existsSync(K)?K:null}function QQ($,Z){let Y=Z.filePath?o1.dirname(Z.filePath):Z.projectRoot||process.cwd(),X=Z.projectRoot||process.cwd(),J=new Set,Q=[];return{code:$.replace(sj,(K,z)=>{let q;try{if(z.startsWith("./")||z.startsWith("../")||z.startsWith("/")){if(q=z.startsWith("/")?z:o1.resolve(Y,z),!J$.existsSync(q))throw Error(`file not found: ${q}`)}else{let U=null;try{U=Bun.resolveSync(z,X)}catch{U=ej(z,X)}if(!U)throw Error(`could not resolve ${z} (Bun.resolveSync + exports fallback both failed)`);q=U}}catch(U){return console.warn(`[stx:vendor-css] could not resolve ${JSON.stringify(z)} (from ${Z.filePath||"<unknown>"}): ${U?.message||U}`),""}if(J.has(q))return"";J.add(q);try{let U=J$.readFileSync(q,"utf8");Q.push({source:z,resolvedPath:q,contents:U})}catch(U){console.warn(`[stx:vendor-css] could not read ${q}: ${U?.message||U}`)}return""}),styles:Q}}function $H($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function GQ($){if($.length===0)return"";return`${$.map((Z)=>{return`<style data-stx-vendor="${$H(Z.source)}" data-stx-layer="vendor">
|
|
13480
13480
|
@layer vendor {
|
|
13481
13481
|
${Z.contents}
|
|
13482
13482
|
}
|
|
@@ -13542,4 +13542,4 @@ ${q}${F}
|
|
|
13542
13542
|
'use strict';
|
|
13543
13543
|
${X}${Y}
|
|
13544
13544
|
${q}
|
|
13545
|
-
})()</script>`}var sj,ZH,YH,XH,KH,WH;var s5=
|
|
13545
|
+
})()</script>`}var sj,ZH,YH,XH,KH,WH;var s5=P(()=>{O0();sj=/^[ \t]*import\s+['"]([^'"]+?\.css)(\?[^'"]*)?['"]\s*;?\s*$/gm;ZH=["state","derived","effect","batch","untrack","peek","isSignal","isDerived","onMount","onDestroy","useRef","navigate","goBack","goForward","useRoute","setRouteParams","useSearchParams","useFetch","useQuery","useMutation","useOptimistic","useReactiveProp","useLocalStorage","useSessionStorage","useCookie","useWebSocket","useHead","useSeoMeta","definePageMeta","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","defineSlots","provide","inject","nextTick","getCurrentInstance","onErrorCaptured","useSlots","useAttrs","createStore","defineStore","useStore","action","createSelector","h","Fragment"],YH=["browserQuery","BrowserQueryBuilder","BrowserQueryError","browserAuth","configureBrowser","getBrowserConfig","createBrowserDb","createBrowserModel","isBrowser"],XH=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"]);KH={left:0,middle:1,right:2};WH=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"])});import e4 from"crypto";import KQ from"path";class qQ{store=new Map;async get($){let Z=this.store.get($);if(!Z||Z.expires<=Date.now()){if(Z)this.store.delete($);return null}return{...Z.data}}async set($,Z,Y){this.store.set($,{data:{...Z},expires:Date.now()+Y*1000})}async delete($){this.store.delete($)}}async function BH($,Z,Y){let X={},J={},Q=await Y.get($);if(Q)Object.assign(X,Q);let G={id:$,data:X,get(z){return X[z]},set(z,q){X[z]=q,K()},delete(z){delete X[z],K()},clear(){Object.keys(X).forEach((z)=>delete X[z]),K()},has(z){return z in X},flash(z,q){if(q!==void 0){J[z]=q;return}let U=J[z];return delete J[z],U},regenerate(){let z=$;$=UQ(),G.id=$,Y.delete(z),K()},destroy(){Y.delete($),Object.keys(X).forEach((z)=>delete X[z])}};function K(){Y.set($,{...X,__flash:J},Z)}return K(),G}function UQ(){return e4.randomBytes(32).toString("hex")}function jH($){if(!$)return{};return $.split(";").reduce((Z,Y)=>{let[X,...J]=Y.trim().split("=");if(X)Z[X]=decodeURIComponent(J.join("="));return Z},{})}function zQ($,Z,Y={}){let X=`${encodeURIComponent($)}=${encodeURIComponent(Z)}`;if(Y.maxAge!==void 0)X+=`; Max-Age=${Y.maxAge}`;if(Y.expires)X+=`; Expires=${Y.expires.toUTCString()}`;if(Y.path)X+=`; Path=${Y.path}`;if(Y.domain)X+=`; Domain=${Y.domain}`;if(Y.secure)X+="; Secure";if(Y.httpOnly)X+="; HttpOnly";if(Y.sameSite)X+=`; SameSite=${Y.sameSite}`;return X}function HH(){return e4.randomBytes(32).toString("hex")}function OH($,Z){if(!$||!Z)return!1;try{return e4.timingSafeEqual(Buffer.from($),Buffer.from(Z))}catch{return!1}}async function LH($,Z={},Y={}){let X=Y.viewsDir||"./views",J=Y.layoutsDir||"./layouts",Q=!$.includes("<")&&!$.includes("@"),G,K;if(Q){if(K=KQ.resolve(X,$),!K.endsWith(".stx"))K+=".stx";if(!await Bun.file(K).exists())return new Response(`Template not found: ${$}`,{status:500});G=await Bun.file(K).text()}else G=$,K="inline-template.stx";let z={...Z,props:Z,__filename:K,__dirname:KQ.dirname(K)};if(Y.ctx)z.csrf_token=Y.ctx.csrfToken,z.csrf_field=`<input type="hidden" name="_token" value="${Y.ctx.csrfToken}">`,z.old=Y.ctx.old,z.errors=Y.ctx.errors,z.session=Y.ctx.session,z.user=Y.ctx.user(),z.isAuthenticated=Y.ctx.isAuthenticated();let q=G.match(/<script\s+server\b[^>]*>([\s\S]*?)<\/script>/i);if(q){let j=q[1];G=G.replace(/<script\s+server\b[^>]*>[\s\S]*?<\/script>/gi,""),await K1(j,z,K)}let U={layoutsDir:J,...Y.stxOptions},_=await _0(G,z,K,U,new Set),B=new Headers({"Content-Type":"text/html; charset=utf-8"});if(Y.ctx)Y.ctx.responseHeaders.forEach((j,H)=>{B.set(H,j)});return new Response(_,{headers:B})}function qM($={}){let{viewsDir:Z="./views",layoutsDir:Y="./layouts",defaultLayout:X,sessionSecret:J=e4.randomBytes(32).toString("hex"),sessionCookieName:Q="stx_session",sessionTtl:G=86400,stxOptions:K={},csrfCookieName:z="csrf_token",csrfEnabled:q=!0}=$,U=$.sessionStore??new qQ,W=[],_=[];function B(O,V){for(let w of W){if(w.method!==O&&w.method!=="*")continue;let A=[],R=w.pattern.replace(/\/:(\w+)/g,(T,I)=>{return A.push(I),"/([^/]+)"}).replace(/\//g,"\\/"),N=new RegExp(`^${R}$`),M=V.match(N);if(M){let T={};return A.forEach((I,D)=>{T[I]=M[D+1]}),{route:w,params:T}}}return null}async function j(O,V){let w=new URL(O.url),A=jH(O.headers.get("Cookie")),R=new Headers,N=[],M=A[Q];if(!M)M=UQ(),N.push(zQ(Q,M,{httpOnly:!0,secure:w.protocol==="https:",sameSite:"Lax",path:"/",maxAge:G}));let T=await BH(M,G,U),I=T.get("_csrf");if(!I)I=HH(),T.set("_csrf",I);let D={};w.searchParams.forEach((k,y)=>{D[y]=k});let E=T.flash("_errors")||{},b=T.flash("_old_input")||{},S={request:O,url:w,params:V,query:D,session:T,csrfToken:I,cookies:A,responseHeaders:R,errors:E,async formData(){let k=await O.formData(),y={};return k.forEach((h,f)=>{y[f]=h}),y},async json(){return await O.json()},setCookie(k,y,h={}){N.push(zQ(k,y,h))},flash(k,y){T.flash(k,y)},getFlash(k){return T.flash(k)},old(k){return b[k]||""},isAuthenticated(){return T.has("user")},user(){return T.get("user")}};if(N.length>0)N.forEach((k)=>{R.append("Set-Cookie",k)});return S}let H=async(O,V)=>{if(["GET","HEAD","OPTIONS"].includes(O.request.method))return V();if(!q)return V();let A=(await O.request.clone().formData().catch(()=>new FormData)).get("_token"),R=O.request.headers.get("X-CSRF-Token"),N=A||R,M=O.session.get("_csrf");if(!N||!M||!OH(N,M))return new Response("CSRF token mismatch",{status:419});return V()};async function L(O){let V=new URL(O.url),w=O.method,A=B(w,V.pathname);if(!A)return new Response("Not Found",{status:404});let R=await j(O,A.params),N=[..._,H,...A.route.middleware],M=0,T=async()=>{if(M<N.length){let I=N[M++];return I(R,T)}return A.route.handler(R)};try{let I=await T();return R.responseHeaders.forEach((D,E)=>{I.headers.set(E,D)}),I}catch(I){return v0.log(I instanceof Error?I:Error(String(I)),{handler:"request"},"error"),new Response("Internal Server Error",{status:500})}}function F(O,V,w,A=[]){W.push({method:O,pattern:V,handler:w,middleware:A})}return{fetch:L,get(O,V,w=[]){return F("GET",O,V,w),this},post(O,V,w=[]){return F("POST",O,V,w),this},put(O,V,w=[]){return F("PUT",O,V,w),this},delete(O,V,w=[]){return F("DELETE",O,V,w),this},patch(O,V,w=[]){return F("PATCH",O,V,w),this},use(O){return _.push(O),this},async render(O,V={},w){return LH(O,V,{viewsDir:Z,layoutsDir:Y,stxOptions:K,ctx:w})},redirect(O,V=302){return new Response(null,{status:V,headers:{Location:O}})},back(O,V,w){if(V)O.session.flash("_errors",V);if(w)O.session.flash("_old_input",w);let A=O.request.headers.get("Referer")||"/";return new Response(null,{status:302,headers:{Location:A}})},listen(O=3000){return Bun.serve({port:O,fetch:L})}}}var FH=P(()=>{t0();H4();O0()});FH();export{LH as render,qM as createApp,qQ as MemorySessionStore};
|