@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/interactive.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var{defineProperty:Q7,getOwnPropertyNames:_Q,getOwnPropertyDescriptor:BQ}=Object,jQ=Object.prototype.hasOwnProperty;function HQ($){return this[$]}var U9=($)=>{var Z=(z9??=new WeakMap).get($),Y;if(Z)return Z;if(Z=Q7({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function"){for(var X of _Q($))if(!jQ.call(Z,X))Q7(Z,X,{get:HQ.bind($,X),enumerable:!(Y=BQ($,X))||Y.enumerable})}return z9.set($,Z),Z},z9;var OQ=($)=>$;function LQ($,Z){this[$]=OQ.bind(null,Z)}var p=($,Z)=>{for(var Y in Z)Q7($,Y,{get:Z[Y],enumerable:!0,configurable:!0,set:LQ.bind(Z,Y)})};var
|
|
2
|
+
var{defineProperty:Q7,getOwnPropertyNames:_Q,getOwnPropertyDescriptor:BQ}=Object,jQ=Object.prototype.hasOwnProperty;function HQ($){return this[$]}var U9=($)=>{var Z=(z9??=new WeakMap).get($),Y;if(Z)return Z;if(Z=Q7({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function"){for(var X of _Q($))if(!jQ.call(Z,X))Q7(Z,X,{get:HQ.bind($,X),enumerable:!(Y=BQ($,X))||Y.enumerable})}return z9.set($,Z),Z},z9;var OQ=($)=>$;function LQ($,Z){this[$]=OQ.bind(null,Z)}var p=($,Z)=>{for(var Y in Z)Q7($,Y,{get:Z[Y],enumerable:!0,configurable:!0,set:LQ.bind(Z,Y)})};var P=($,Z)=>()=>($&&(Z=$($=0)),Z);var K0=import.meta.require;var TQ={};p(TQ,{screenReaderDirective:()=>B$,scanA11yIssues:()=>wQ,registerA11yDirectives:()=>NQ,processA11yDirectives:()=>G7,hasDOMSupport:()=>W9,getScreenReaderOnlyStyle:()=>FQ,checkA11y:()=>_9,autoFixA11yFile:()=>j9,autoFixA11yDirectory:()=>RQ,autoFixA11y:()=>B9,a11yDirective:()=>_$});import W$ from"path";function G7($,Z,Y,X){let J=$;J=J.replace(/@a11y\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(G,K,q)=>{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: ${q||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,q)=>{return`<span id="${`desc-${K}`}" class="sr-only">${q}</span>`}),J}function FQ(){return`
|
|
3
3
|
.sr-only {
|
|
4
4
|
position: absolute;
|
|
5
5
|
width: 1px;
|
|
@@ -11,7 +11,7 @@ var{defineProperty:Q7,getOwnPropertyNames:_Q,getOwnPropertyDescriptor:BQ}=Object
|
|
|
11
11
|
white-space: nowrap;
|
|
12
12
|
border-width: 0;
|
|
13
13
|
}
|
|
14
|
-
`.trim()}function W9(){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($),A=J.index,w=$.substring(0,A),R=$.substring(A),N=(w.match(/<label\b/gi)||[]).length,M=(w.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 q=/<h([1-6])[^>]*>/gi,z=[];J=q.exec($);while(J!==null)z.push(Number.parseInt(J[1],10)),J=q.exec($);let U=0;for(let L of z){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 _9($,Z){if(!W9())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 q=K.getAttribute("id"),z=q&&X.querySelector(`label[for="${q}"]`),U=K.hasAttribute("aria-label")||K.hasAttribute("aria-labelledby"),W=K.closest("label")!==null;if(!z&&!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 q=Number.parseInt(K.tagName.charAt(1));if(Q>0&&q>Q+1)Y.push({type:"heading-skip",element:`<${K.outerHTML}>`,message:`Heading level skipped from h${Q} to h${q}`,impact:"moderate",help:"Maintain proper heading hierarchy without skipping levels",helpUrl:"https://web.dev/learn/accessibility/structure/"});Q=q}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 q=K.textContent&&K.textContent.trim().length>0,z=K.hasAttribute("aria-label")||K.hasAttribute("aria-labelledby"),U=K.hasAttribute("title"),W=K.querySelector("img[alt]");if(!q&&!z&&!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 q=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(!q&&!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 q=K.getAttribute("style")||"";if(q.includes("color:")&&!q.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=W$.join($,X?"**/*.stx":"*.stx"),G=new Bun.Glob(Q),K=[];for await(let q of G.scan())if(!J.some((U)=>q.includes(W$.normalize(U))))K.push(q);for(let q of K)try{let z=await Bun.file(q).text();if(q.endsWith("good-a11y.stx"))continue;let U=await _9(z,q);if(U.length>0)Y[q]=U}catch(z){console.error(`Error scanning ${q}:`,z)}return Y}function B9($,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 q=Q,z=`<img${G} alt=""${K}`;return X.push({type:"missing-alt",description:"Added empty alt attribute to image",before:q,after:z}),z});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,q=`<button${G} aria-label="Button"></button>`;return X.push({type:"missing-accessible-name",description:"Added aria-label to empty button",before:K,after:q}),q}),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 q=Q,z=`<a${G} aria-label="Link">${K||""}</a>`;return X.push({type:"missing-accessible-name",description:"Added aria-label to link without text",before:q,after:z}),z});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 q=K.match(/\bname\s*=\s*["']([^"']+)["']/i),z=K.match(/\bid\s*=\s*["']([^"']+)["']/i),U=q?.[1]||z?.[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,q=`<html${G} lang="${Y.defaultLang}">`;return X.push({type:"missing-lang",description:`Added lang="${Y.defaultLang}" to html element`,before:K,after:q}),q});if(Y.fixPositiveTabindex)J=J.replace(/\btabindex\s*=\s*["']([1-9]\d*)["']/gi,(Q,G)=>{let K=Q,q='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 q=Q,z=`<${G}${K} tabindex="0">`;return X.push({type:"button-not-focusable",description:'Added tabindex="0" to element with role="button"',before:q,after:z}),z});if(Y.fixTableHeaders)J=J.replace(/<th([^>]*)>/gi,(Q,G)=>{if(/\bscope\s*=/i.test(G))return Q;let K=Q,q=`<th${G} scope="col">`;return X.push({type:"table-missing-scope",description:'Added scope="col" to table header',before:K,after:q}),q});return{original:$,fixed:J,fixCount:X.length,fixes:X}}async function j9($,Z={},Y=!1){let X=await Bun.file($).text(),J=B9(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,q=K.length===1?`*${K[0]}`:`*{${K.join(",")}}`,z=W$.join($,J?`**/${q}`:q),U=new Bun.Glob(z);for await(let W of U.scan()){if(Q.some((B)=>W.includes(W$.normalize(B))))continue;try{let B=await j9(W,Z,G);if(B.fixCount>0)X[W]=B}catch(B){console.error(`Error fixing ${W}:`,B)}}return X}function NQ(){return[_$,B$]}var AQ,_$,B$;var K7=C(()=>{AQ={fixMissingAlt:!0,fixMissingLabels:!0,fixMissingFormLabels:!0,fixTableHeaders:!0,fixMissingLang:!0,fixPositiveTabindex:!0,fixButtonFocusable:!0,defaultLang:"en"};_$={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},B$={name:"screenReader",handler:($)=>{return`<span class="sr-only">${$}</span>`},hasEndTag:!0}});function H9($){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="${v0(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="${v0(Z.canonical)}"`);if(Z.auto===!1)J.push('data-auto="false"');return`
|
|
14
|
+
`.trim()}function W9(){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($),A=J.index,w=$.substring(0,A),R=$.substring(A),N=(w.match(/<label\b/gi)||[]).length,M=(w.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 q=/<h([1-6])[^>]*>/gi,z=[];J=q.exec($);while(J!==null)z.push(Number.parseInt(J[1],10)),J=q.exec($);let U=0;for(let L of z){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 _9($,Z){if(!W9())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 q=K.getAttribute("id"),z=q&&X.querySelector(`label[for="${q}"]`),U=K.hasAttribute("aria-label")||K.hasAttribute("aria-labelledby"),W=K.closest("label")!==null;if(!z&&!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 q=Number.parseInt(K.tagName.charAt(1));if(Q>0&&q>Q+1)Y.push({type:"heading-skip",element:`<${K.outerHTML}>`,message:`Heading level skipped from h${Q} to h${q}`,impact:"moderate",help:"Maintain proper heading hierarchy without skipping levels",helpUrl:"https://web.dev/learn/accessibility/structure/"});Q=q}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 q=K.textContent&&K.textContent.trim().length>0,z=K.hasAttribute("aria-label")||K.hasAttribute("aria-labelledby"),U=K.hasAttribute("title"),W=K.querySelector("img[alt]");if(!q&&!z&&!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 q=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(!q&&!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 q=K.getAttribute("style")||"";if(q.includes("color:")&&!q.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=W$.join($,X?"**/*.stx":"*.stx"),G=new Bun.Glob(Q),K=[];for await(let q of G.scan())if(!J.some((U)=>q.includes(W$.normalize(U))))K.push(q);for(let q of K)try{let z=await Bun.file(q).text();if(q.endsWith("good-a11y.stx"))continue;let U=await _9(z,q);if(U.length>0)Y[q]=U}catch(z){console.error(`Error scanning ${q}:`,z)}return Y}function B9($,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 q=Q,z=`<img${G} alt=""${K}`;return X.push({type:"missing-alt",description:"Added empty alt attribute to image",before:q,after:z}),z});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,q=`<button${G} aria-label="Button"></button>`;return X.push({type:"missing-accessible-name",description:"Added aria-label to empty button",before:K,after:q}),q}),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 q=Q,z=`<a${G} aria-label="Link">${K||""}</a>`;return X.push({type:"missing-accessible-name",description:"Added aria-label to link without text",before:q,after:z}),z});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 q=K.match(/\bname\s*=\s*["']([^"']+)["']/i),z=K.match(/\bid\s*=\s*["']([^"']+)["']/i),U=q?.[1]||z?.[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,q=`<html${G} lang="${Y.defaultLang}">`;return X.push({type:"missing-lang",description:`Added lang="${Y.defaultLang}" to html element`,before:K,after:q}),q});if(Y.fixPositiveTabindex)J=J.replace(/\btabindex\s*=\s*["']([1-9]\d*)["']/gi,(Q,G)=>{let K=Q,q='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 q=Q,z=`<${G}${K} tabindex="0">`;return X.push({type:"button-not-focusable",description:'Added tabindex="0" to element with role="button"',before:q,after:z}),z});if(Y.fixTableHeaders)J=J.replace(/<th([^>]*)>/gi,(Q,G)=>{if(/\bscope\s*=/i.test(G))return Q;let K=Q,q=`<th${G} scope="col">`;return X.push({type:"table-missing-scope",description:'Added scope="col" to table header',before:K,after:q}),q});return{original:$,fixed:J,fixCount:X.length,fixes:X}}async function j9($,Z={},Y=!1){let X=await Bun.file($).text(),J=B9(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,q=K.length===1?`*${K[0]}`:`*{${K.join(",")}}`,z=W$.join($,J?`**/${q}`:q),U=new Bun.Glob(z);for await(let W of U.scan()){if(Q.some((B)=>W.includes(W$.normalize(B))))continue;try{let B=await j9(W,Z,G);if(B.fixCount>0)X[W]=B}catch(B){console.error(`Error fixing ${W}:`,B)}}return X}function NQ(){return[_$,B$]}var AQ,_$,B$;var K7=P(()=>{AQ={fixMissingAlt:!0,fixMissingLabels:!0,fixMissingFormLabels:!0,fixTableHeaders:!0,fixMissingLang:!0,fixPositiveTabindex:!0,fixButtonFocusable:!0,defaultLang:"en"};_$={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},B$={name:"screenReader",handler:($)=>{return`<span class="sr-only">${$}</span>`},hasEndTag:!0}});function H9($){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="${v0(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="${v0(Z.canonical)}"`);if(Z.auto===!1)J.push('data-auto="false"');return`
|
|
15
15
|
<!-- Fathom Analytics -->
|
|
16
16
|
<script src="${v0(Y)}" ${J.join(" ")}${X}></script>
|
|
17
17
|
`}function IQ($){let Z=$.googleAnalytics;if(!Z?.measurementId)return"";let Y=v0(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="${v0(Z.scriptId)}"`);if(Z.attributes)for(let[J,Q]of Object.entries(Z.attributes))Y.push(`${v0(J)}="${v0(Q)}"`);return`
|
|
69
69
|
<!-- Custom Analytics -->
|
|
70
70
|
<script${Y.length>0?` ${Y.join(" ")}`:""} src="${v0(Z.scriptUrl)}" defer></script>
|
|
71
|
-
`}function O9($,Z){let Y=H9(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 v0($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}var LH;var L9=
|
|
71
|
+
`}function O9($,Z){let Y=H9(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 v0($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}var LH;var L9=P(()=>{LH={name:"analytics",hasEndTag:!1,handler:async($,Z,Y,X)=>{let J=Y.__stx_config||{};return H9(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 NH($){let Z=$.customDirectives||[];return Z.push(q7),Z.push(U7),Z.push(W7),Z.push(z7),Z.push(dQ),Z.push(uQ),Z.push(pQ),{...$,customDirectives:Z}}var SQ,bQ,yQ,Y1,q7,z7,U7,W7,F9,dQ,uQ,pQ;var _7=
|
|
442
|
+
</script>`}function NH($){let Z=$.customDirectives||[];return Z.push(q7),Z.push(U7),Z.push(W7),Z.push(z7),Z.push(dQ),Z.push(uQ),Z.push(pQ),{...$,customDirectives:Z}}var SQ,bQ,yQ,Y1,q7,z7,U7,W7,F9,dQ,uQ,pQ;var _7=P(()=>{((G)=>{G.Fade="fade";G.Slide="slide";G.Scale="scale";G.Flip="flip";G.Rotate="rotate";G.Custom="custom"})(SQ||={});((X)=>{X.In="in";X.Out="out";X.Both="both"})(bQ||={});((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,q=Z.length>4?Z[4]||Y1.direction:Y1.direction,z=`stx-transition-${Math.random().toString(36).substr(2,9)}`,U=CQ(J,{duration:Q,delay:K,ease:G,direction:q}),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="${z}" class="${W} ${_} ${q==="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"},z7={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,q=Z.length>4?Number.parseInt(Z[4],10)||0:0,z=`stx-scroll-${Math.random().toString(36).substr(2,9)}`,U=`--stx-transition-duration: ${Q}ms; --stx-transition-ease: ${G}; --stx-transition-delay: ${q}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="${z}" class="${W}" style="${U}" data-threshold="${K}">${$}</div>`},hasEndTag:!0,description:"Applies animations that trigger when scrolled into view"},U7={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((z)=>z.startsWith("#")||z.startsWith(".")?z:`#${z}`),G=Y.staggerDelay||50,K=Y.sequence||!0,q=gQ(J,Q,{staggerDelay:G,sequence:K});return`${$}
|
|
444
444
|
${q}`},hasEndTag:!1,description:"Coordinates multiple animations together as a group"},W7={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"};F9={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",q=Z[4]?.replace(/['"`]/g,"")||"normal",z=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 @@ ${q}`},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="${z}">${$}</div>`},description:"Applies spring physics animations to an element"}});var w9={};p(w9,{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 q=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 q){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 z="",U=0;for(let W of J)z+=$.slice(U,W.start),z+=W.replacement,U=W.end;return z+=$.slice(U),z}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),q=X1.resolve(Z);if(!K.startsWith(q))return[];let z=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(z,`${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 A9=
|
|
466
|
+
`.trim().replace(/\s+/g," ");return`<div id="${K}" class="stx-spring" style="${z}">${$}</div>`},description:"Applies spring physics animations to an element"}});var w9={};p(w9,{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 q=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 q){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 z="",U=0;for(let W of J)z+=$.slice(U,W.start),z+=W.replacement,U=W.end;return z+=$.slice(U),z}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),q=X1.resolve(Z);if(!K.startsWith(q))return[];let z=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(z,`${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 A9=P(()=>{cQ=new Set([".jpg",".jpeg",".png",".gif"]),iQ=[{ext:".avif",mime:"image/avif"},{ext:".webp",mime:"image/webp"}]});function eQ($){if(j$.set($.name,$),$.client)B7.set($.name,$.client)}function IH($){return j$.get($)}function DH(){return Array.from(j$.values())}function EH($){return B7.delete($),j$.delete($)}function H0($){return eQ($),{name:$.name,hasEndTag:$.hasEndTag??!0,description:$.description,handler:async(Y,X,J,Q)=>{let G=$G(X,$.defaults);if($.validate){let q=$.validate(G);if(q!==!0){let z=typeof q==="string"?q:`Invalid parameters for @${$.name}`;throw Error(z)}}let K=Y;if($.transform)K=await $.transform(Y,G,J,Q);if($.clientScript){let q=$.clientScript(G);K+=`<script>${q}</script>`}if($.css){let q=$.css(G);K+=`<style>${q}</style>`}return K}}}function kH($,Z){let Y=typeof Z==="function"?{mounted:Z}:Z;return B7.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(),q=X.slice(G+1).trim();if(q==="true")q=!0;else if(q==="false")q=!1;else if(q==="null")q=null;else if(!Number.isNaN(Number(q)))q=Number(q);else if(typeof q==="string"&&q.startsWith("{"))try{q=JSON.parse(q)}catch{}Y[K]=q}else{let K=Object.keys(Y).filter((q)=>!Z||!(q in Z)).length;Y[K===0?"value":`arg${K}`]=X}}return Y}function SH(){return[H0({name:"uppercase",description:"Convert content to uppercase",transform:($)=>$.toUpperCase()}),H0({name:"lowercase",description:"Convert content to lowercase",transform:($)=>$.toLowerCase()}),H0({name:"capitalize",description:"Capitalize first letter of content",transform:($)=>$.charAt(0).toUpperCase()+$.slice(1)}),H0({name:"trim",description:"Remove leading and trailing whitespace",transform:($)=>$.trim()}),H0({name:"truncate",description:"Truncate content to specified length",defaults:{length:100,suffix:"..."},transform:($,{length:Z,suffix:Y})=>$.length>Z?$.slice(0,Z)+Y:$}),H0({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>`}),H0({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>`}}),H0({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>`}),H0({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 @@ ${q}`},hasEndTag:!1,description:"Coordinates multiple animations together as a g
|
|
|
607
607
|
|
|
608
608
|
console.log('[stx] Directive runtime initialized');
|
|
609
609
|
})();
|
|
610
|
-
`}function yH($){let Z=/v-(\w+)(?::(\w+))?(?:\.([\w.]+))?="([^"]*)"/g;return $.replace(Z,(Y,X,J,Q,G)=>{let q=(Q?Q.split("."):[]).reduce((z,U)=>{return z[U]=!0,z},{});return`data-stx-directive="${X}:${G}" data-stx-directive-arg="${J||""}" data-stx-directive-modifiers='${JSON.stringify(q)}'`})}var j$,B7;var j7=
|
|
610
|
+
`}function yH($){let Z=/v-(\w+)(?::(\w+))?(?:\.([\w.]+))?="([^"]*)"/g;return $.replace(Z,(Y,X,J,Q,G)=>{let q=(Q?Q.split("."):[]).reduce((z,U)=>{return z[U]=!0,z},{});return`data-stx-directive="${X}:${G}" data-stx-directive-arg="${J||""}" data-stx-directive-modifiers='${JSON.stringify(q)}'`})}var j$,B7;var j7=P(()=>{j$=new Map,B7=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 R9 from"process";function a0($="STX_PUBLIC_"){let Z={},Y={};for(let[X,J]of Object.entries(R9.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 xH($="STX_PUBLIC_"){let Z={};for(let[Y,X]of Object.entries(R9.env))if(Y.startsWith($)&&X!==void 0)Z[Y]=X;return Z}var t1=()=>{};var H$={};p(H$,{hasUserImports:()=>ZG,bundleClientScript:()=>XG});import _0 from"path";import h0 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(!N9.some((q)=>q.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(!N9.some((q)=>q.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:_0.dirname(Q),q=_0.resolve(K,G),z=[q,`${q}.ts`,`${q}.tsx`,`${q}.js`,`${q}.mjs`,`${q}.jsx`,_0.join(q,"index.ts"),_0.join(q,"index.tsx"),_0.join(q,"index.js"),_0.join(q,"index.mjs")];for(let U of z)try{if(h0.existsSync(U)&&h0.statSync(U,{throwIfNoEntry:!1})?.isFile())return U}catch{}return q};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=_0.resolve($,G.path.slice(2)),q=[K,`${K}.ts`,`${K}.tsx`,`${K}.js`,`${K}.mjs`,`${K}.jsx`,_0.join(K,"index.ts"),_0.join(K,"index.tsx"),_0.join(K,"index.js"),_0.join(K,"index.mjs")];for(let z of q)if(h0.existsSync(z)&&h0.statSync(z,{throwIfNoEntry:!1})?.isFile())return console.log(`[stx:bundler] resolved ${G.path[0]}/ import:`,G.path,"\u2192",z),X.add(z),{path:z};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||_0.join(X,".stx","bundle-cache"),G=new Bun.CryptoHasher("md5");G.update($+Z);let K=G.digest("hex").slice(0,12),q=_0.join(Q,`${K}.js`),z=_0.join(Q,`${K}.deps.json`),U=Bun.file(q);if(await U.exists()){let w=Bun.file(z),R=!0;if(await w.exists())try{let N=JSON.parse(await w.text());for(let M of N.files)try{if(h0.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=_0.join(X,".stx","bundle-tmp"),_=_0.join(W,`${K}.ts`),B=_0.join(W,"out",K);h0.mkdirSync(W,{recursive:!0}),h0.mkdirSync(B,{recursive:!0});let j=_0.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((w)=>{let R=w.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:",_0.basename(Z));let A=new Set;try{let w=await Bun.build({entrypoints:[_],outdir:B,target:"browser",format:"esm",minify:J,plugins:[YG(X,j,_,A)],define:{"process.env.NODE_ENV":J?'"production"':'"development"',...a0()},root:X});if(!w.success){let T=w.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 w.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"),h0.mkdirSync(Q,{recursive:!0}),await Bun.write(q,R);let M=Array.from(A).map((T)=>{try{return{path:T,mtimeMs:h0.statSync(T).mtimeMs}}catch{return null}}).filter((T)=>T!==null);return await Bun.write(z,JSON.stringify({files:M})),R}catch(w){let R=w instanceof Error?w.message:String(w),N=w?.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{h0.rmSync(_,{force:!0}),h0.rmSync(B,{recursive:!0,force:!0})}catch{}}}var N9;var O$=
|
|
616
|
+
`)}`:"";return console.warn(`[stx:bundler] error: ${R}${M}`),$}finally{try{h0.rmSync(_,{force:!0}),h0.rmSync(B,{recursive:!0,force:!0})}catch{}}}var N9;var O$=P(()=>{t1();N9=[/^stx$/,/^@stacksjs\/stx$/,/^@stacksjs\/browser$/,/^@stores$/,/^stx\/stores$/,/^@composables$/]});function mH($){e1={...e1,...$}}function uH(){e1={...I9}}function lH(){return{...e1}}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==="."&&D9.has(J))throw Error(`Potentially unsafe expression (matched /.${J}/; property ${J}): ${Z}`)}}function qG($){let Z=/\[\s*(['"])(.*?)\1\s*\]/g,Y;while((Y=Z.exec($))!==null){let X=Y[2];if(!D9.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 I5($){let Z=$.trim(),Y=GG(Z);KG(Y,Z),qG(Z);for(let X of O7)if(X.test(Y))throw Error(`Potentially unsafe expression (matched /${X.source}/): ${Z}`);if(!e1.allowBracketNotation&&QG.test(Z))throw Error(`Bracket notation with strings not allowed: ${Z}. Enable with configureSafeEvaluator({ allowBracketNotation: true })`);return Z}function E9($){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("__")||O7.some((J)=>J.test(Y)))continue;if(X&&typeof X==="object"&&!Array.isArray(X))Z[Y]=H7(X);else Z[Y]=X}return Z}function H7($,Z=0){if(Z>=e1.maxSanitizeDepth)return"[Object too deep]";if($===null||typeof $!=="object")return $;if(Array.isArray($))return $.map((X)=>H7(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]=H7(J,Z+1);else Y[X]=J}return Y}function $0($,Z){try{let Y=E9(Z),X=Object.keys(Y),J=Object.values(Y);return Y0($,X)(...J)}catch{return}}function Z0($){try{return I5($),!0}catch{return!1}}function pH($){try{return I5($),null}catch(Z){return Z instanceof Error?Z.message:String(Z)}}function cH($,Z){try{let Y=$0($,Z);return Boolean(Y)}catch{return!1}}function iH($,Z){try{let Y=$0($,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 O0($,Z){try{let Y=$0($,Z);if(Y&&typeof Y==="object"&&!Array.isArray(Y))return Y;return{}}catch{return{}}}function Y0($,Z){let Y=I5($),X=/^[A-Za-z_$][\w$]*$/,J=[],Q=[];for(let z=0;z<Z.length;z++){let U=Z[z];if(!X.test(U))continue;if(k9.has(U))continue;J.push(z),Q.push(U)}let G=(z)=>Function(...Q,...z,`
|
|
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 I9,e1,O7,JG,D9,QG,k9,M9=65536;var w0=C(()=>{I9={maxSanitizeDepth:10,allowBracketNotation:!1},e1={...I9};O7=[/\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"]),D9=new Set(["__proto__","constructor","prototype"]),QG=/[\w)\]]\s*\[\s*['"]/;k9=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 rH(){S9=0,L$.clear()}function F$($,Z){let Y=S9++,X=`<!--__STX_${$.toUpperCase()}_${Y}__-->`;return L$.set(X,{type:$,expression:Z}),X}function aH(){let $={};for(let[Z,Y]of L$)$[Z]={type:Y.type,expression:Y.expression};return $}function tH($){let Z={},Y=/<!--__STX_(EXPR|COND|RAW)_(\d+)__-->/g,X;while((X=Y.exec($))!==null){let J=X[0],Q=X[1].toLowerCase(),G=L$.get(J);Z[J]={type:Q,expression:G?.expression||""}}return Z}function eH($,Z){let Y=$;for(let[X,J]of Z)Y=Y.split(X).join(J);return Y}function $O($){return $.includes("<!--__STX_")}var S9=0,L$;var b9=C(()=>{L$=new Map});function y9($,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 V$($,Z){return y9($,Z,zG,UG)}function C9($,Z){return y9($,Z,WG,_G)}function P9($,Z){if(!$.startsWith("<!--",Z))return-1;let Y=$.indexOf("-->",Z+4);if(Y===-1)return-1;return Y+3}function E5($,Z,Y){let X=[],J="",Q=0,G=$.length,K=!1,q=null;while(Q<G){let z=$[Q];if(K){if(J+=z,q){if(z===q)q=null}else if(z==='"'||z==="'")q=z;else if(z===">")K=!1;Q++;continue}if(z==="<"){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+=z,Q++;continue}J+=z,Q++}return{output:J,tokens:X}}function w$($){let{output:Z,tokens:Y}=E5($,V$,(X,J)=>`\x00STX_SCRIPT_${J}\x00`);return{output:Z,scripts:Y}}function A$($,Z){if(Z.length===0)return $;return $.replace(/\x00STX_SCRIPT_(\d+)\x00/g,(Y,X)=>Z[+X]??"")}var zG,UG,WG,_G;var R$=C(()=>{zG=/<script\b[^>]*>/iy,UG=/<\/script\s*>/ig,WG=/<style\b[^>]*>/iy,_G=/<\/style\s*>/ig});var m9={};p(m9,{usesSignalsInScript:()=>$5,unescapeHtml:()=>L7,registerFilters:()=>jG,registerFilter:()=>f9,processExpressions:()=>x0,interpolateScriptsInTemplate:()=>OG,interpolateScriptExpressions:()=>h9,getAllFilters:()=>g9,evaluateExpression:()=>d0,escapeHtml:()=>u0,defaultFilters:()=>S5,clearCustomFilters:()=>HG,applyFilters:()=>d9});function BG($){let Z=v9.get($);if(!Z){let Y=$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");Z=new RegExp(`:${Y}(?!\\w)`,"g"),v9.set($,Z)}return Z.lastIndex=0,Z}function f9($,Z){if($ in S5)console.warn(`Filter "${$}" already exists as a built-in filter. Custom filter will take precedence.`);k5[$]=Z}function jG($){for(let[Z,Y]of Object.entries($))f9(Z,Y)}function g9(){return{...S5,...k5}}function HG(){for(let $ of Object.keys(k5))delete k5[$]}function u0($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function $5($){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 x9($,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 z=0;z<X.length;z++){let U=X[z];if(!Q&&U==="`"){Q=!0,G=0;continue}if(Q){if(U==="`"&&G===0){Q=!1;continue}if(U==="$"&&X[z+1]==="{"){G++,z++;continue}if(U==="}"&&G>0){G--;continue}continue}J+=U}X=J;let K=/\b([a-zA-Z_$][a-zA-Z0-9_$]*)\b/g,q;while((q=K.exec(X))!==null){let z=q[1];if(!X.substring(0,q.index).trimEnd().endsWith(".")){if(!Y.includes(z)&&!(z in Z))return!1}}return!0}function h9($,Z){let Y=$;return Y=Y.replace(/\{!!([\s\S]*?)!!\}/g,(X,J)=>{try{let Q=d0(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=d0(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=h9(Q,Z);return`<script${J}>${G}</script>`})}function x0($,Z,Y,X){let J=$,Q=(U,W)=>{let _=C9(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}=E5(U,W,(F,O)=>B(j+O));return _.push(...L),H},K=[];J=G(J,Q,K,(U)=>`<!--__STX_STYLE_${U}__-->`);let q=[];J=G(J,V$,q,(U)=>`<!--__STX_SCRIPT_EXPR_${U}__-->`);let z=X?.forceSignals===!0||$5($);J=J.replace(/\{\{\{([\s\S]*?)\}\}\}/g,(U,W,_)=>{try{let B=d0(W,Z);return B!==void 0&&B!==null?String(B):""}catch(B){let j=B instanceof Error?B.message:String(B);return Q0("Expression",`Error evaluating: {{{ ${W.trim()}}}}: ${j}`,Y,$,_,U)}}),J=J.replace(/\{!!([\s\S]*?)!!\}/g,(U,W,_)=>{try{let B=d0(W,Z);if(B===void 0&&Z.__stx_buildMode==="compile")return F$("raw",W.trim());return B!==void 0&&B!==null?String(B):""}catch(B){if(Z.__stx_buildMode==="compile")return F$("raw",W.trim());let j=B instanceof Error?B.message:String(B);return Q0("Expression",`Error evaluating: {!! ${W.trim()} !!}: ${j}`,Y,$,_,U)}}),J=G(J,V$,q,(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*\(/,A=B.match(V),w=A&&!j.includes(A[1])&&!(A[1]in Z);if(/^__[A-Z_]+__$/.test(B))return"";try{let R=d0(W,Z);if(R===void 0&&z&&!x9(B,Z))return U;if(R===void 0&&Z.__stx_buildMode==="compile"&&!z)return F$("expr",B);return R!==void 0&&R!==null?u0(String(R)):""}catch(R){if(z&&!x9(B,Z))return U;if(w)return U;let N=R instanceof Error?R.message:String(R);return Q0("Expression",`Error evaluating: {{ ${B} }}: ${N}`,Y,$,_,U)}});for(let U=0;U<q.length;U++)J=J.replace(`<!--__STX_SCRIPT_EXPR_${U}__-->`,()=>q[U]);for(let U=0;U<K.length;U++)J=J.replace(`<!--__STX_STYLE_${U}__-->`,()=>K[U]);return J}function d9($,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=k5[G]||S5[G];if(!K)throw Error(`Filter not found: ${G}. Available filters: ${Object.keys(g9()).join(", ")}`);let q=[];if(J.startsWith(":")){let z=J.match(/^:([^|\s]+)/);if(z){let U=z[1].trim();try{let W=Number(U);q=[Number.isNaN(W)?U:W]}catch{q=[U]}J=J.substring(z[0].length).trim()}}else if(J.startsWith("(")){let z=1,U=1;while(z>0&&U<J.length){if(J[U]==="(")z++;if(J[U]===")")z--;U++}if(z===0){let W=J.substring(1,U-1).trim();if(W)try{if(W.startsWith("{")&&W.endsWith("}"))q=[d0(`(${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 A=W[V];if(O){B+=A,O=!1;continue}if(A==="\\"){B+=A,O=!0;continue}if(j){if(B+=A,A===j)j=null;continue}if(A==='"'||A==="'"||A==="`"){j=A,B+=A;continue}if(A==="(")H++;else if(A===")")H--;else if(A==="[")L++;else if(A==="]")L--;else if(A==="{")F++;else if(A==="}")F--;if(A===","&&H===0&&L===0&&F===0){_.push(B),B="";continue}B+=A}if(B)_.push(B);q=_.map((V)=>{let A=V.trim();return d0(A,Y,!0)})}}catch{q=[W]}J=J.substring(U).trim()}}try{X=K(X,Y,...q)}catch(z){let U=z instanceof Error?z.message:String(z);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 q=$[K],z=$[K+1];if(Z&&G){G=!1;continue}if(Z&&q==="\\"){G=!0;continue}if(G=!1,(q==='"'||q==="'"||q==="`")&&!G){if(!Z)Z=!0,Y=q;else if(q===Y)Z=!1,Y="";continue}if(Z&&Y==="`"&&q==="$"&&z==="{"){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(q==="(")X++;else if(q===")")X--;else if(q==="[")J++;else if(q==="]")J--;else if(q==="{")Q++;else if(q==="}")Q--;if(q==="|"&&X===0&&J===0&&Q===0){if(z==="|"){K++;continue}if(z==="="){K++;continue}return K}}return-1}function d0($,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=d0(Q,Z,!0);return d9(K,G,Z)}if(!Z0(X)){if(!Y)console.warn(`Potentially unsafe expression detected, using safe evaluator: ${X}`);return $0(X,Z)}try{let Q=Object.keys(Z),G=Object.values(Z);return Y0(X,Q)(...G)}catch{return $0(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 q=Y[K-1]===X[G-1]?0:1;Q[K]=Math.min(Q[K-1]+1,J[K]+1,J[K-1]+q)}for(let K=0;K<=Y.length;K++)J[K]=Q[K]}return J[Y.length]}function L7($){if(!$)return"";return $.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/'/g,"'").replace(/&/g,"&")}var k5,v9,S5;var l0=C(()=>{w0();A0();b9();R$();k5={},v9=new Map;S5={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 u0(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 q of Q){if(G===void 0||G===null)break;G=G[q]}if(G===void 0||G===null)return J?$:"";let K=String(G);return Object.entries(Y).forEach(([q,z])=>{K=K.replace(BG(q),String(z))}),K},t:($,Z,Y={})=>{return S5.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 b5{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 k1($,Z){if(Z?.includes("g"))return new RegExp($,Z);let Y=`${$}:${Z||""}`;if(!E1.has(Y)){if(E1.size>=wG){let X=E1.keys().next().value;if(X)E1.delete(X)}E1.set(Y,new RegExp($,Z))}return E1.get(Y)}function KO(){E1.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 qO($,Z){let Y;return(...X)=>{if(Y)clearTimeout(Y);Y=setTimeout(()=>{$(...X)},Z)}}function zO($,Z){let Y=0,X;return(...J)=>{let Q=Date.now();if(Q-Y>=Z)Y=Q,X=$(...J);return X}}function UO($,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 WO($,Z,Y,X){if(typeof Z==="string"){let J=k1(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 u9{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(q)=>{try{let z=`${Y}:${q}`,U=J.get(z);if(!U){if(J.size>=Q){let W=J.keys().next().value;if(W)J.delete(W)}U=Function(...Z,`
|
|
658
|
+
`)}var I9,e1,O7,JG,D9,QG,k9,M9=65536;var w0=P(()=>{I9={maxSanitizeDepth:10,allowBracketNotation:!1},e1={...I9};O7=[/\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"]),D9=new Set(["__proto__","constructor","prototype"]),QG=/[\w)\]]\s*\[\s*['"]/;k9=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 rH(){S9=0,L$.clear()}function F$($,Z){let Y=S9++,X=`<!--__STX_${$.toUpperCase()}_${Y}__-->`;return L$.set(X,{type:$,expression:Z}),X}function aH(){let $={};for(let[Z,Y]of L$)$[Z]={type:Y.type,expression:Y.expression};return $}function tH($){let Z={},Y=/<!--__STX_(EXPR|COND|RAW)_(\d+)__-->/g,X;while((X=Y.exec($))!==null){let J=X[0],Q=X[1].toLowerCase(),G=L$.get(J);Z[J]={type:Q,expression:G?.expression||""}}return Z}function eH($,Z){let Y=$;for(let[X,J]of Z)Y=Y.split(X).join(J);return Y}function $O($){return $.includes("<!--__STX_")}var S9=0,L$;var b9=P(()=>{L$=new Map});function y9($,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 V$($,Z){return y9($,Z,zG,UG)}function C9($,Z){return y9($,Z,WG,_G)}function P9($,Z){if(!$.startsWith("<!--",Z))return-1;let Y=$.indexOf("-->",Z+4);if(Y===-1)return-1;return Y+3}function E5($,Z,Y){let X=[],J="",Q=0,G=$.length,K=!1,q=null;while(Q<G){let z=$[Q];if(K){if(J+=z,q){if(z===q)q=null}else if(z==='"'||z==="'")q=z;else if(z===">")K=!1;Q++;continue}if(z==="<"){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+=z,Q++;continue}J+=z,Q++}return{output:J,tokens:X}}function w$($){let{output:Z,tokens:Y}=E5($,V$,(X,J)=>`\x00STX_SCRIPT_${J}\x00`);return{output:Z,scripts:Y}}function A$($,Z){if(Z.length===0)return $;return $.replace(/\x00STX_SCRIPT_(\d+)\x00/g,(Y,X)=>Z[+X]??"")}var zG,UG,WG,_G;var R$=P(()=>{zG=/<script\b[^>]*>/iy,UG=/<\/script\s*>/ig,WG=/<style\b[^>]*>/iy,_G=/<\/style\s*>/ig});var m9={};p(m9,{usesSignalsInScript:()=>$5,unescapeHtml:()=>L7,registerFilters:()=>jG,registerFilter:()=>f9,processExpressions:()=>x0,interpolateScriptsInTemplate:()=>OG,interpolateScriptExpressions:()=>h9,getAllFilters:()=>g9,evaluateExpression:()=>d0,escapeHtml:()=>u0,defaultFilters:()=>S5,clearCustomFilters:()=>HG,applyFilters:()=>d9});function BG($){let Z=v9.get($);if(!Z){let Y=$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");Z=new RegExp(`:${Y}(?!\\w)`,"g"),v9.set($,Z)}return Z.lastIndex=0,Z}function f9($,Z){if($ in S5)console.warn(`Filter "${$}" already exists as a built-in filter. Custom filter will take precedence.`);k5[$]=Z}function jG($){for(let[Z,Y]of Object.entries($))f9(Z,Y)}function g9(){return{...S5,...k5}}function HG(){for(let $ of Object.keys(k5))delete k5[$]}function u0($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function $5($){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 x9($,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 z=0;z<X.length;z++){let U=X[z];if(!Q&&U==="`"){Q=!0,G=0;continue}if(Q){if(U==="`"&&G===0){Q=!1;continue}if(U==="$"&&X[z+1]==="{"){G++,z++;continue}if(U==="}"&&G>0){G--;continue}continue}J+=U}X=J;let K=/\b([a-zA-Z_$][a-zA-Z0-9_$]*)\b/g,q;while((q=K.exec(X))!==null){let z=q[1];if(!X.substring(0,q.index).trimEnd().endsWith(".")){if(!Y.includes(z)&&!(z in Z))return!1}}return!0}function h9($,Z){let Y=$;return Y=Y.replace(/\{!!([\s\S]*?)!!\}/g,(X,J)=>{try{let Q=d0(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=d0(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=h9(Q,Z);return`<script${J}>${G}</script>`})}function x0($,Z,Y,X){let J=$,Q=(U,W)=>{let _=C9(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}=E5(U,W,(F,O)=>B(j+O));return _.push(...L),H},K=[];J=G(J,Q,K,(U)=>`<!--__STX_STYLE_${U}__-->`);let q=[];J=G(J,V$,q,(U)=>`<!--__STX_SCRIPT_EXPR_${U}__-->`);let z=X?.forceSignals===!0||$5($);J=J.replace(/\{\{\{([\s\S]*?)\}\}\}/g,(U,W,_)=>{try{let B=d0(W,Z);return B!==void 0&&B!==null?String(B):""}catch(B){let j=B instanceof Error?B.message:String(B);return Q0("Expression",`Error evaluating: {{{ ${W.trim()}}}}: ${j}`,Y,$,_,U)}}),J=J.replace(/\{!!([\s\S]*?)!!\}/g,(U,W,_)=>{try{let B=d0(W,Z);if(B===void 0&&Z.__stx_buildMode==="compile")return F$("raw",W.trim());return B!==void 0&&B!==null?String(B):""}catch(B){if(Z.__stx_buildMode==="compile")return F$("raw",W.trim());let j=B instanceof Error?B.message:String(B);return Q0("Expression",`Error evaluating: {!! ${W.trim()} !!}: ${j}`,Y,$,_,U)}}),J=G(J,V$,q,(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*\(/,A=B.match(V),w=A&&!j.includes(A[1])&&!(A[1]in Z);if(/^__[A-Z_]+__$/.test(B))return"";try{let R=d0(W,Z);if(R===void 0&&z&&!x9(B,Z))return U;if(R===void 0&&Z.__stx_buildMode==="compile"&&!z)return F$("expr",B);return R!==void 0&&R!==null?u0(String(R)):""}catch(R){if(z&&!x9(B,Z))return U;if(w)return U;let N=R instanceof Error?R.message:String(R);return Q0("Expression",`Error evaluating: {{ ${B} }}: ${N}`,Y,$,_,U)}});for(let U=0;U<q.length;U++)J=J.replace(`<!--__STX_SCRIPT_EXPR_${U}__-->`,()=>q[U]);for(let U=0;U<K.length;U++)J=J.replace(`<!--__STX_STYLE_${U}__-->`,()=>K[U]);return J}function d9($,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=k5[G]||S5[G];if(!K)throw Error(`Filter not found: ${G}. Available filters: ${Object.keys(g9()).join(", ")}`);let q=[];if(J.startsWith(":")){let z=J.match(/^:([^|\s]+)/);if(z){let U=z[1].trim();try{let W=Number(U);q=[Number.isNaN(W)?U:W]}catch{q=[U]}J=J.substring(z[0].length).trim()}}else if(J.startsWith("(")){let z=1,U=1;while(z>0&&U<J.length){if(J[U]==="(")z++;if(J[U]===")")z--;U++}if(z===0){let W=J.substring(1,U-1).trim();if(W)try{if(W.startsWith("{")&&W.endsWith("}"))q=[d0(`(${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 A=W[V];if(O){B+=A,O=!1;continue}if(A==="\\"){B+=A,O=!0;continue}if(j){if(B+=A,A===j)j=null;continue}if(A==='"'||A==="'"||A==="`"){j=A,B+=A;continue}if(A==="(")H++;else if(A===")")H--;else if(A==="[")L++;else if(A==="]")L--;else if(A==="{")F++;else if(A==="}")F--;if(A===","&&H===0&&L===0&&F===0){_.push(B),B="";continue}B+=A}if(B)_.push(B);q=_.map((V)=>{let A=V.trim();return d0(A,Y,!0)})}}catch{q=[W]}J=J.substring(U).trim()}}try{X=K(X,Y,...q)}catch(z){let U=z instanceof Error?z.message:String(z);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 q=$[K],z=$[K+1];if(Z&&G){G=!1;continue}if(Z&&q==="\\"){G=!0;continue}if(G=!1,(q==='"'||q==="'"||q==="`")&&!G){if(!Z)Z=!0,Y=q;else if(q===Y)Z=!1,Y="";continue}if(Z&&Y==="`"&&q==="$"&&z==="{"){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(q==="(")X++;else if(q===")")X--;else if(q==="[")J++;else if(q==="]")J--;else if(q==="{")Q++;else if(q==="}")Q--;if(q==="|"&&X===0&&J===0&&Q===0){if(z==="|"){K++;continue}if(z==="="){K++;continue}return K}}return-1}function d0($,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=d0(Q,Z,!0);return d9(K,G,Z)}if(!Z0(X)){if(!Y)console.warn(`Potentially unsafe expression detected, using safe evaluator: ${X}`);return $0(X,Z)}try{let Q=Object.keys(Z),G=Object.values(Z);return Y0(X,Q)(...G)}catch{return $0(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 q=Y[K-1]===X[G-1]?0:1;Q[K]=Math.min(Q[K-1]+1,J[K]+1,J[K-1]+q)}for(let K=0;K<=Y.length;K++)J[K]=Q[K]}return J[Y.length]}function L7($){if(!$)return"";return $.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/'/g,"'").replace(/&/g,"&")}var k5,v9,S5;var l0=P(()=>{w0();A0();b9();R$();k5={},v9=new Map;S5={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 u0(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 q of Q){if(G===void 0||G===null)break;G=G[q]}if(G===void 0||G===null)return J?$:"";let K=String(G);return Object.entries(Y).forEach(([q,z])=>{K=K.replace(BG(q),String(z))}),K},t:($,Z,Y={})=>{return S5.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 b5{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 k1($,Z){if(Z?.includes("g"))return new RegExp($,Z);let Y=`${$}:${Z||""}`;if(!E1.has(Y)){if(E1.size>=wG){let X=E1.keys().next().value;if(X)E1.delete(X)}E1.set(Y,new RegExp($,Z))}return E1.get(Y)}function KO(){E1.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 qO($,Z){let Y;return(...X)=>{if(Y)clearTimeout(Y);Y=setTimeout(()=>{$(...X)},Z)}}function zO($,Z){let Y=0,X;return(...J)=>{let Q=Date.now();if(Q-Y>=Z)Y=Q,X=$(...J);return X}}function UO($,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 WO($,Z,Y,X){if(typeof Z==="string"){let J=k1(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 u9{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(q)=>{try{let z=`${Y}:${q}`,U=J.get(z);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 ${q};
|
|
@@ -666,7 +666,7 @@ catch (e) {
|
|
|
666
666
|
}
|
|
667
667
|
throw e;
|
|
668
668
|
}
|
|
669
|
-
`),J.set(z,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 l9{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 q of this.violationHandlers)try{q(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 p9(){if(!N$)N$=new l9;return N$}function BO($=p9()){$.setBudgets(RG)}function jO(){N$=null}var E1,wG=500,_O,RG,N$=null,c9;var Z5=
|
|
669
|
+
`),J.set(z,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 l9{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 q of this.violationHandlers)try{q(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 p9(){if(!N$)N$=new l9;return N$}function BO($=p9()){$.setBudgets(RG)}function jO(){N$=null}var E1,wG=500,_O,RG,N$=null,c9;var Z5=P(()=>{E1=new Map;_O=new u9;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"}};c9=new Proxy({},{get($,Z){return p9()[Z]}})});function y5($,Z){return`${q0[Z]}${$}${q0.reset}`}function OO($){return y5($,"green")}function LO($){return y5($,"yellow")}function FO($){return y5($,"red")}function VO($){return y5($,"cyan")}function wO($){return y5($,"gray")}var q0;var i9=P(()=>{q0={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 n9}from"stx-router";var o9=P(()=>{F7()});async function NG($,Z,Y,X){let J=Z[0]?.replace(/['"]/g,"")||"main",Q=n9();if(J!=="main")Q=Q.replace("container:'main'",`container:'${J}'`);return`<script data-stx-router>${Q}</script>`}var s9;var F7=P(()=>{o9();s9={name:"stxRouter",handler:NG,hasEndTag:!1,description:"Inject the STX SPA router script for client-side navigation"}});function r9($){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 a9($,Z){let Y=r9(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 e9{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,q)=>({x:q,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 DO(){return new e9}var TG,t9;var V7=
|
|
1052
|
+
`}function a9($,Z){let Y=r9(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 e9{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,q)=>({x:q,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 DO(){return new e9}var TG,t9;var V7=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};t9={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 r9(J)}}});function z1($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function $8($){let Z=$.trim().toLowerCase();return!Z.startsWith("javascript:")&&!Z.startsWith("vbscript:")&&!Z.startsWith("data:text/html")}function Z8($){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 q=K.indexOf(":");if(q===-1)continue;let z=K.slice(0,q).trim(),U=K.slice(q+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[z]=U}return{data:Q,content:J.trim()}}function C5($,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-${z1(W)}"`:"";return Q.push(`<pre><code${j}>${z1(_.trim())}</code></pre>`),`\x00CODEBLOCK${B}\x00`}),J=J.replace(/`([^`]*)`/g,(U,W)=>`<code>${z1(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="${$8(_)?z1(_):""}" alt="${z1(W)}" />`}),J=J.replace(/\[([^\]]+)\]\(([^)]+)\)/g,(U,W,_)=>{return`<a href="${$8(_)?z1(_):""}">${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>${z1(L)}</th>`).join("")}</tr>`,H=_.trim().split(`
|
|
1055
1055
|
`).map((L)=>{return`<tr>${L.split("|").map((O)=>O.trim()).filter(Boolean).map((O)=>`<td>${z1(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={};p(IG,{processMarkdownDirectives:()=>w7,markdownDirectiveHandler:()=>A7});async function w7($,Z,Y=""){let X=$,J=[],Q=/@markdown(?:\([^)]*\))?/g,G;while((G=Q.exec($))!==null){let K=G.index,q=G[0].match(/@markdown\(([^)]*)\)/),z=q?q[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:z,content:j,index:K}),Q.lastIndex=B+12}for(let{fullMatch:K,options:q,content:z,index:U}of J)try{let W={};if(q)q.split(",").forEach((j)=>{let H=j.trim();if(H)W[H]=!0});let _={gfm:W.gfm??!0,breaks:W.breaks??!1},B=C5(z.trim(),_);X=X.split(K).join(B)}catch(W){let _=W instanceof Error?W.message:String(W),B=Q0("Markdown Directive",`Error processing markdown: ${_}`,Y,$,U,K);X=X.split(K).join(B)}return X}async function A7($,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}),C5($.trim(),J)}var R7=
|
|
1072
|
-
`)}function hO($,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 dO($,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 mO($){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 M7($){return X8[$]||"application/octet-stream"}function uO($){return DG[$]||$}function lO($){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 S1,Y8,Y5,X8,DG,vO;var I7=
|
|
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:z,content:j,index:K}),Q.lastIndex=B+12}for(let{fullMatch:K,options:q,content:z,index:U}of J)try{let W={};if(q)q.split(",").forEach((j)=>{let H=j.trim();if(H)W[H]=!0});let _={gfm:W.gfm??!0,breaks:W.breaks??!1},B=C5(z.trim(),_);X=X.split(K).join(B)}catch(W){let _=W instanceof Error?W.message:String(W),B=Q0("Markdown Directive",`Error processing markdown: ${_}`,Y,$,U,K);X=X.split(K).join(B)}return X}async function A7($,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}),C5($.trim(),J)}var R7=P(()=>{A0()});function P5($,Z=S1,Y={},X){return Z.sort((J,Q)=>J-Q).map((J)=>{return`${U1($,{...Y,w:J,fm:X})} ${J}w`}).join(", ")}function yO($,Z=320,Y=2560,X=0.08,J={},Q){let G=EG(Z,Y,X);return P5($,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 N7($,Z,Y=Y8,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 CO($,Z,Y=Y8,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,q)=>K-q).map((K)=>{let q=Math.round(Z*K),z=G[K]||Math.round(X*Math.max(0.5,1-K*0.1));return`${U1($,{...J,w:q,q:z,dpr:K,fm:Q})} ${K}x`}).join(", ")}function T7($,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 PO($,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 xO($){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 fO($){let{src:Z,widths:Y,dprValues:X,fixedWidth:J,formats:Q=Y5,baseUrl:G="",params:K={}}=$,q=[];for(let z of Q){let U,W;if(J!==void 0&&X)U=N7(Z,J,X,K,z),W=X.map((_)=>({path:"",url:U1(Z,{...K,w:Math.round(J*_),fm:z}),width:Math.round(J*_),height:0,format:z,size:0,dpr:_}));else{let _=Y||S1;U=P5(Z,_,K,z),W=_.map((B)=>({path:"",url:U1(Z,{...K,w:B,fm:z}),width:B,height:0,format:z,size:0}))}q.push({srcset:U,format:z,mimeType:X8[z],variants:W})}return q}function gO($,Z="100vw"){return $.map(({srcset:Y,mimeType:X})=>`<source type="${X}" srcset="${Y}" sizes="${Z}" />`).join(`
|
|
1072
|
+
`)}function hO($,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 dO($,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 mO($){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 M7($){return X8[$]||"application/octet-stream"}function uO($){return DG[$]||$}function lO($){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 S1,Y8,Y5,X8,DG,vO;var I7=P(()=>{S1=[320,480,640,768,1024,1280,1536,1920,2560],Y8=[1,1.5,2,3],Y5=["avif","webp","jpeg"],X8={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"};vO={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 E7(){try{return await import("ts-images")}catch{return null}}async function J8($,Z={}){let Y={...kG,...Z},X=await E7();if(X)try{return await SG($,Y,X)}catch(J){console.warn(`[stx-media] ts-images placeholder generation failed, using fallback: ${J}`)}return Q8($,Y)}async function SG($,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 Q8($,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 cO($){let Z=await E7();if(Z)try{return(await Z.generateThumbHash($)).dataUrl}catch{}return(await Q8($,{strategy:"thumbhash",width:32,height:32})).dataURL}function iO($){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,q=(K>>3&63)/63,z=(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 nO($,Z=20,Y=50){return J8($,{strategy:"blur",width:Z,quality:Y,blurLevel:40})}async function oO($){let Z=await E7();if(Z)try{return(await Z.generatePlaceholder($,{strategy:"dominant-color"})).dominantColor||"#e5e7eb"}catch{}return"#e5e7eb"}function sO($,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 G8($,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 rO($){return`background-image: url('${$.dataURL}'); background-size: cover; background-position: center;`}async function K8($,Z={}){let Y=`${$}:${JSON.stringify(Z)}`;if(X5.has(Y))return X5.get(Y);let X=await J8($,Z);return X5.set(Y,X),X}function aO(){X5.clear()}function tO(){return{size:X5.size,keys:Array.from(X5.keys())}}var kG,D7,X5;var q8=
|
|
1091
|
+
`.trim()}function rO($){return`background-image: url('${$.dataURL}'); background-size: cover; background-position: center;`}async function K8($,Z={}){let Y=`${$}:${JSON.stringify(Z)}`;if(X5.has(Y))return X5.get(Y);let X=await J8($,Z);return X5.set(Y,X),X}function aO(){X5.clear()}function tO(){return{size:X5.size,keys:Array.from(X5.keys())}}var kG,D7,X5;var q8=P(()=>{kG={strategy:"thumbhash",width:20,quality:50,blurLevel:40,transitionDuration:300,easing:"ease-out"},D7=`
|
|
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();X5=new Map});import{createHash as k7}from"crypto";import{readFile as bG,stat as U8}from"fs/promises";async function M0($){try{let Z=await bG($);return k7("sha256").update(Z).digest("hex").slice(0,16)}catch{return""}}function YL($){return k7("sha256").update($).digest("hex").slice(0,16)}function z8($){return k7("sha256").update($).digest("hex").slice(0,16)}function T$($,Z){let Y=JSON.stringify(Z,Object.keys(Z).sort());return`${z8($)}-${z8(Y)}`}async function S7($){try{return(await U8($)).mtimeMs}catch{return 0}}async function N0($){try{return await U8($),!0}catch{return!1}}var b1=()=>{};import{mkdir as yG,readFile as _8,writeFile as CG,readdir as B8,rm as b7,stat as PG}from"fs/promises";import{join as J5,dirname as vG}from"path";async function xG($){try{await yG($,{recursive:!0})}catch{}}function j8($,Z,Y){return J5($,Y,`${Z}.json`)}async function W8($,Z,Y){if((Date.now()-$.createdAt)/86400000>Y)return!1;if(await S7(Z)!==$.srcMtime)return!1;return!0}async function M$($,Z,Y,X=Q5){if(!X.enabled)return null;let J=T$($,Z),Q=t0.get(J);if(Q){if(await W8(Q,$,X.maxAge))return Q.lastAccessedAt=Date.now(),Q.data;t0.delete(J)}let G=j8(X.directory,J,Y);if(await N0(G))try{let K=await _8(G,"utf-8"),q=JSON.parse(K);if(await W8(q,$,X.maxAge))return q.lastAccessedAt=Date.now(),t0.set(J,q),q.data}catch{}return null}async function I$($,Z,Y,X,J=Q5){if(!J.enabled)return;let Q=T$($,Z),G=await M0($),K=await S7($),q={key:Q,src:$,srcHash:G,srcMtime:K,optionsHash:T$("",Z),data:Y,createdAt:Date.now(),lastAccessedAt:Date.now()};t0.set(Q,q);let z=j8(J.directory,Q,X);try{await xG(vG(z)),await CG(z,JSON.stringify(q,null,2))}catch(U){console.warn(`[stx-media] Failed to write cache: ${U}`)}}async function KL($,Z,Y=Q5){for(let[X,J]of t0.entries())if(J.src===$)t0.delete(X)}async function D$($,Z=Q5){if($==="all")t0.clear();else t0.clear();let Y=$==="all"?["image","video"]:[$];for(let X of Y){let J=J5(Z.directory,X);try{await b7(J,{recursive:!0,force:!0})}catch{}}}async function qL($=Q5){let Z={memoryEntries:t0.size,diskEntries:{image:0,video:0},totalSizeMB:0};for(let Y of["image","video"]){let X=J5($.directory,Y);try{let J=await B8(X);Z.diskEntries[Y]=J.length;for(let Q of J){let G=J5(X,Q),K=await PG(G);Z.totalSizeMB+=K.size/1048576}}catch{}}return Z}async function zL($=Q5){let Z=0,Y=$.maxAge*24*60*60*1000;for(let X of["image","video"]){let J=J5($.directory,X);try{let Q=await B8(J);for(let G of Q){let K=J5(J,G);try{let q=await _8(K,"utf-8"),z=JSON.parse(q);if(Date.now()-z.createdAt>Y)await b7(K),t0.delete(z.key),Z++}catch{await b7(K).catch(()=>{}),Z++}}}catch{}}return Z}var t0,Q5;var y7=C(()=>{b1();t0=new Map,Q5={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}});class k${config;constructor($={}){this.config={...fG,...$}}async get($,Z){return M$($,Z,"image",this.config)}async set($,Z,Y){return I$($,Z,Y,"image",this.config)}async clear(){return D$("image",this.config)}updateConfig($){this.config={...this.config,...$}}}function C7($){if(!E$)E$=new k$($);else if($)E$.updateConfig($);return E$}async function S$($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return C7(X).get($,Z)}async function b$($,Z,Y,X){let J=X?{directory:`${X.outputDir}/../.cache`}:{};return C7(J).set($,Z,Y)}async function H8(){return C7().clear()}var fG,E$=null;var P7=C(()=>{y7();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 v7(){try{return await import("ts-images")}catch{return null}}function O8($){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?O8(Z):O8("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 L8($,Z,Y){let X=await v7();if(!X)return console.warn("[stx-media] ts-images not installed, skipping optimization"),{src:$,processed:!1};let J=await S$($,Z,Y);if(J)return J;try{let Q=gG($);if(!await N0(Q))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let G=lG(Y,Z.preset),K=Y.outputDir||"dist/images",q=Y.baseUrl||"/images";await uG(K,{recursive:!0});let z=await M0(Q),U=hG($,dG($)),W=Z.outputFormat?[Z.outputFormat]:Y.defaultFormats||["avif","webp","jpeg"],_={src:$,processed:!0,variants:[],hash:z},B=null;if(Z.transformations&&Z.transformations.length>0)B=await x7(Q,Z.transformations,X);for(let j of W){let H=G[j]||{},L=`${U}-${z}.${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:`${q}/${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 b$($,Z,_,Y),_}catch(Q){return{src:$,processed:!1,errors:[`Processing failed: ${Q}`]}}}async function F8($,Z,Y,X){let J=await v7();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 x7($,Z,Y){let X=Y||await v7();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 V8=C(()=>{b1();P7()});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 f7($,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 N0(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",q=Y.baseUrl||"/images";await oG(K,{recursive:!0});let z=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-${z}.${j}`,O=nG(K,F),V=`${q}/${F}`;try{let A=W[j]?.quality||80;if(await N0(O)){_.byFormat[j].push({path:O,url:V,width:L,height:0,format:j,size:0}),H.push(`${V} ${L}w`);continue}let w=await X.processImage({input:J,output:O,format:j,quality:A,resize:{width:L}});if(w)_.byFormat[j].push({path:O,url:V,width:L,height:w.height||Math.round(L*(w.height||1)/(w.width||1)),format:j,size:w.outputSize||0}),H.push(`${V} ${L}w`)}catch(A){console.warn(`[stx-media] Failed to generate ${j} at ${L}w: ${A}`)}}_.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 w8($,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 NL($,Z,Y){let X=[];for(let J of Z){let Q=await f7(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 A8=C(()=>{b1();rG=[320,480,640,768,1024,1280,1536,1920]});var R8={};p(R8,{setCachedImageResult:()=>b$,processImage:()=>L8,optimizeImage:()=>F8,getCachedImageResult:()=>S$,generateSrcset:()=>w8,generateResponsiveVariants:()=>f7,clearImageCache:()=>H8,applyTransformations:()=>x7,ImageProcessorCache:()=>k$});var N8=C(()=>{V8();A8();P7()});async function eG(){try{return await Promise.resolve().then(() => (N8(),R8))}catch($){if(!T8)console.warn("[stx-media] Image processor not available, some features disabled:",$),T8=!0;return null}}async function v5($,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 m7($,Y.processedResult,Z);if(Y.responsiveVariants)return E8($,Y.responsiveVariants,Z);let{src:J,alt:Q,width:G,height:K,sizes:q,widths:z=S1,dpr:U,formats:W=Y5,quality:_=g7,params:B={},placeholder:j="none",placeholderOptions:H={},lazy:L=!0,priority:F=!1,loading:O=F?"eager":C$,decoding:V=y$,fetchpriority:A,objectFit:w,objectPosition:R,crossorigin:N,referrerpolicy:M}=$,T=$.class,I=$.style,D=$.id,E=$.data||{},{isDev:k=!1,baseUrl:S=""}=Z;if(k&&!Z.optimize)return YK($);let y,P,m=D||`stx-img-${Math.random().toString(36).slice(2,8)}`;if(j!=="none"&&!F)try{y=await K8(J,{strategy:j,...H}),P=G8(m,y,H)}catch{}let g=U!==void 0&&G!==void 0,u;if(g)u=ZK($,m,y,Z);else u=await $K($,m,y,Z);let s;if(F){let C0=W.includes("webp")?"webp":W[0],E0=P5(J,z,{...B,q:_},C0),J0=typeof q==="object"?T7(q):q||"100vw";s=`<link rel="preload" as="image" imagesrcset="${E0}" imagesizes="${J0}" />`}let T0=[];if(!M8&&j!=="none")T0.push(D7),M8=!0;if(P)T0.push(P);let Z1=L?D8(m):void 0;return{html:u,preloadLink:s,css:T0.length>0?T0.join(`
|
|
1120
|
+
`.trim();X5=new Map});import{createHash as k7}from"crypto";import{readFile as bG,stat as U8}from"fs/promises";async function I0($){try{let Z=await bG($);return k7("sha256").update(Z).digest("hex").slice(0,16)}catch{return""}}function YL($){return k7("sha256").update($).digest("hex").slice(0,16)}function z8($){return k7("sha256").update($).digest("hex").slice(0,16)}function T$($,Z){let Y=JSON.stringify(Z,Object.keys(Z).sort());return`${z8($)}-${z8(Y)}`}async function S7($){try{return(await U8($)).mtimeMs}catch{return 0}}async function N0($){try{return await U8($),!0}catch{return!1}}var b1=()=>{};import{mkdir as yG,readFile as _8,writeFile as CG,readdir as B8,rm as b7,stat as PG}from"fs/promises";import{join as J5,dirname as vG}from"path";async function xG($){try{await yG($,{recursive:!0})}catch{}}function j8($,Z,Y){return J5($,Y,`${Z}.json`)}async function W8($,Z,Y){if((Date.now()-$.createdAt)/86400000>Y)return!1;if(await S7(Z)!==$.srcMtime)return!1;return!0}async function M$($,Z,Y,X=Q5){if(!X.enabled)return null;let J=T$($,Z),Q=t0.get(J);if(Q){if(await W8(Q,$,X.maxAge))return Q.lastAccessedAt=Date.now(),Q.data;t0.delete(J)}let G=j8(X.directory,J,Y);if(await N0(G))try{let K=await _8(G,"utf-8"),q=JSON.parse(K);if(await W8(q,$,X.maxAge))return q.lastAccessedAt=Date.now(),t0.set(J,q),q.data}catch{}return null}async function I$($,Z,Y,X,J=Q5){if(!J.enabled)return;let Q=T$($,Z),G=await I0($),K=await S7($),q={key:Q,src:$,srcHash:G,srcMtime:K,optionsHash:T$("",Z),data:Y,createdAt:Date.now(),lastAccessedAt:Date.now()};t0.set(Q,q);let z=j8(J.directory,Q,X);try{await xG(vG(z)),await CG(z,JSON.stringify(q,null,2))}catch(U){console.warn(`[stx-media] Failed to write cache: ${U}`)}}async function KL($,Z,Y=Q5){for(let[X,J]of t0.entries())if(J.src===$)t0.delete(X)}async function D$($,Z=Q5){if($==="all")t0.clear();else t0.clear();let Y=$==="all"?["image","video"]:[$];for(let X of Y){let J=J5(Z.directory,X);try{await b7(J,{recursive:!0,force:!0})}catch{}}}async function qL($=Q5){let Z={memoryEntries:t0.size,diskEntries:{image:0,video:0},totalSizeMB:0};for(let Y of["image","video"]){let X=J5($.directory,Y);try{let J=await B8(X);Z.diskEntries[Y]=J.length;for(let Q of J){let G=J5(X,Q),K=await PG(G);Z.totalSizeMB+=K.size/1048576}}catch{}}return Z}async function zL($=Q5){let Z=0,Y=$.maxAge*24*60*60*1000;for(let X of["image","video"]){let J=J5($.directory,X);try{let Q=await B8(J);for(let G of Q){let K=J5(J,G);try{let q=await _8(K,"utf-8"),z=JSON.parse(q);if(Date.now()-z.createdAt>Y)await b7(K),t0.delete(z.key),Z++}catch{await b7(K).catch(()=>{}),Z++}}}catch{}}return Z}var t0,Q5;var y7=P(()=>{b1();t0=new Map,Q5={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}});class k${config;constructor($={}){this.config={...fG,...$}}async get($,Z){return M$($,Z,"image",this.config)}async set($,Z,Y){return I$($,Z,Y,"image",this.config)}async clear(){return D$("image",this.config)}updateConfig($){this.config={...this.config,...$}}}function C7($){if(!E$)E$=new k$($);else if($)E$.updateConfig($);return E$}async function S$($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return C7(X).get($,Z)}async function b$($,Z,Y,X){let J=X?{directory:`${X.outputDir}/../.cache`}:{};return C7(J).set($,Z,Y)}async function H8(){return C7().clear()}var fG,E$=null;var P7=P(()=>{y7();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 v7(){try{return await import("ts-images")}catch{return null}}function O8($){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?O8(Z):O8("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 L8($,Z,Y){let X=await v7();if(!X)return console.warn("[stx-media] ts-images not installed, skipping optimization"),{src:$,processed:!1};let J=await S$($,Z,Y);if(J)return J;try{let Q=gG($);if(!await N0(Q))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let G=lG(Y,Z.preset),K=Y.outputDir||"dist/images",q=Y.baseUrl||"/images";await uG(K,{recursive:!0});let z=await I0(Q),U=hG($,dG($)),W=Z.outputFormat?[Z.outputFormat]:Y.defaultFormats||["avif","webp","jpeg"],_={src:$,processed:!0,variants:[],hash:z},B=null;if(Z.transformations&&Z.transformations.length>0)B=await x7(Q,Z.transformations,X);for(let j of W){let H=G[j]||{},L=`${U}-${z}.${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:`${q}/${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 b$($,Z,_,Y),_}catch(Q){return{src:$,processed:!1,errors:[`Processing failed: ${Q}`]}}}async function F8($,Z,Y,X){let J=await v7();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 x7($,Z,Y){let X=Y||await v7();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 V8=P(()=>{b1();P7()});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 f7($,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 N0(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",q=Y.baseUrl||"/images";await oG(K,{recursive:!0});let z=await I0(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-${z}.${j}`,O=nG(K,F),V=`${q}/${F}`;try{let A=W[j]?.quality||80;if(await N0(O)){_.byFormat[j].push({path:O,url:V,width:L,height:0,format:j,size:0}),H.push(`${V} ${L}w`);continue}let w=await X.processImage({input:J,output:O,format:j,quality:A,resize:{width:L}});if(w)_.byFormat[j].push({path:O,url:V,width:L,height:w.height||Math.round(L*(w.height||1)/(w.width||1)),format:j,size:w.outputSize||0}),H.push(`${V} ${L}w`)}catch(A){console.warn(`[stx-media] Failed to generate ${j} at ${L}w: ${A}`)}}_.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 w8($,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 NL($,Z,Y){let X=[];for(let J of Z){let Q=await f7(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 A8=P(()=>{b1();rG=[320,480,640,768,1024,1280,1536,1920]});var R8={};p(R8,{setCachedImageResult:()=>b$,processImage:()=>L8,optimizeImage:()=>F8,getCachedImageResult:()=>S$,generateSrcset:()=>w8,generateResponsiveVariants:()=>f7,clearImageCache:()=>H8,applyTransformations:()=>x7,ImageProcessorCache:()=>k$});var N8=P(()=>{V8();A8();P7()});async function eG(){try{return await Promise.resolve().then(() => (N8(),R8))}catch($){if(!T8)console.warn("[stx-media] Image processor not available, some features disabled:",$),T8=!0;return null}}async function v5($,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 m7($,Y.processedResult,Z);if(Y.responsiveVariants)return E8($,Y.responsiveVariants,Z);let{src:J,alt:Q,width:G,height:K,sizes:q,widths:z=S1,dpr:U,formats:W=Y5,quality:_=g7,params:B={},placeholder:j="none",placeholderOptions:H={},lazy:L=!0,priority:F=!1,loading:O=F?"eager":C$,decoding:V=y$,fetchpriority:A,objectFit:w,objectPosition:R,crossorigin:N,referrerpolicy:M}=$,T=$.class,I=$.style,D=$.id,E=$.data||{},{isDev:k=!1,baseUrl:S=""}=Z;if(k&&!Z.optimize)return YK($);let y,v,m=D||`stx-img-${Math.random().toString(36).slice(2,8)}`;if(j!=="none"&&!F)try{y=await K8(J,{strategy:j,...H}),v=G8(m,y,H)}catch{}let g=U!==void 0&&G!==void 0,u;if(g)u=ZK($,m,y,Z);else u=await $K($,m,y,Z);let s;if(F){let C0=W.includes("webp")?"webp":W[0],k0=P5(J,z,{...B,q:_},C0),J0=typeof q==="object"?T7(q):q||"100vw";s=`<link rel="preload" as="image" imagesrcset="${k0}" imagesizes="${J0}" />`}let T0=[];if(!M8&&j!=="none")T0.push(D7),M8=!0;if(v)T0.push(v);let Z1=L?D8(m):void 0;return{html:u,preloadLink:s,css:T0.length>0?T0.join(`
|
|
1121
1121
|
`):void 0,script:Z1}}async function $K($,Z,Y,X){let{src:J,alt:Q,width:G,height:K,sizes:q,widths:z=S1,formats:U=Y5,quality:W=g7,params:_={},lazy:B=!0,priority:j=!1,loading:H=j?"eager":C$,decoding:L=y$,fetchpriority:F,objectFit:O,objectPosition:V,crossorigin:A,referrerpolicy:w}=$,R=$.class,N=$.style,M=$.data||{},T=typeof q==="object"?T7(q):q||"100vw",I=[];for(let k of U){let S=P5(J,z,{..._,q:W},k),y=M7(k);if(B&&!j)I.push(` <source type="${y}" data-srcset="${S}" data-sizes="${T}" />`);else I.push(` <source type="${y}" srcset="${S}" sizes="${T}" />`)}let D=h7({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:A,referrerpolicy:w,className:I8(R,Y),style:d7(N,O,V,Y),lazy:B&&!j,data:M}),E;if(Y){let k=`background-image: url('${Y.dataURL}'); background-size: cover; background-position: center;`;E=`<div id="${Z}" class="stx-img-placeholder" style="${k}">
|
|
1122
1122
|
<picture>
|
|
1123
1123
|
${I.join(`
|
|
@@ -1167,7 +1167,7 @@ ${I.join(`
|
|
|
1167
1167
|
|
|
1168
1168
|
observer.observe(container);
|
|
1169
1169
|
})();
|
|
1170
|
-
`.trim()}function XK($){let Z=$.match(/<Img\s+([^>]*?)\/?>/);if(!Z)return null;let Y=Z[1],X={},J=/(:?)(\w+)(?:=(?:"([^"]*)"|'([^']*)'|\{([^}]+)\}))?/g,Q;while((Q=J.exec(Y))!==null){let[,G,K,q,z,U]=Q,W=q??z??U??!0;if(G===":"&&typeof W==="string")try{X[K]=JSON.parse(W)}catch{X[K]=W}else switch(K){case"src":X.src=String(W);break;case"alt":X.alt=String(W);break;case"width":X.width=Number(W)||W;break;case"height":X.height=Number(W)||W;break;case"sizes":X.sizes=String(W);break;case"quality":X.quality=Number(W);break;case"placeholder":X.placeholder=W;break;case"lazy":X.lazy=W===!0||W==="true";break;case"priority":X.priority=W===!0||W==="true";break;case"class":X.class=String(W);break;case"style":X.style=String(W);break;case"id":X.id=String(W);break;case"loading":X.loading=W;break;case"decoding":X.decoding=W;break;case"fetchpriority":X.fetchpriority=W;break;case"objectFit":X.objectFit=W;break;case"objectPosition":X.objectPosition=String(W);break;case"crossorigin":X.crossorigin=W;break}}if(!X.src||!X.alt)return null;return X}async function SL($,Z={}){let Y=/<Img\s+[^>]*?\/?>/g,X=[],J=[],Q=[],G=$,K=[],q;while((q=Y.exec($))!==null)K.push({match:q[0],index:q.index});for(let z=K.length-1;z>=0;z--){let{match:U}=K[z],W=XK(U);if(W){let _=await v5(W,Z);if(G=G.replace(U,_.html),_.preloadLink)X.push(_.preloadLink);if(_.css)J.push(_.css);if(_.script)Q.push(_.script)}}return{html:G,preloadLinks:X,styles:J,scripts:Q}}async function JK($,Z){let Y=await eG();if(!Y)return v5({...$,process:!1},Z);let X=Z.tsImagesConfig;if($.responsiveWidths&&$.responsiveWidths.length>0||$.widths&&$.widths.length>0||!$.width&&!$.dpr){let Q=await Y.generateResponsiveVariants($.src,$,X);if(Q)return E8($,Q,Z)}else{let Q=await Y.processImage($.src,$,X);if(Q.processed)return m7($,Q,Z)}return v5({...$,process:!1},Z)}async function m7($,Z,Y){let{alt:X,width:J,height:Q,lazy:G=!0,priority:K=!1,objectFit:q,objectPosition:z,crossorigin:U,referrerpolicy:W}=$,_=$.class,B=$.style,j=$.id||`stx-img-${Math.random().toString(36).slice(2,8)}`,H=$.data||{},L=Z.variants||[],F=L.find((
|
|
1170
|
+
`.trim()}function XK($){let Z=$.match(/<Img\s+([^>]*?)\/?>/);if(!Z)return null;let Y=Z[1],X={},J=/(:?)(\w+)(?:=(?:"([^"]*)"|'([^']*)'|\{([^}]+)\}))?/g,Q;while((Q=J.exec(Y))!==null){let[,G,K,q,z,U]=Q,W=q??z??U??!0;if(G===":"&&typeof W==="string")try{X[K]=JSON.parse(W)}catch{X[K]=W}else switch(K){case"src":X.src=String(W);break;case"alt":X.alt=String(W);break;case"width":X.width=Number(W)||W;break;case"height":X.height=Number(W)||W;break;case"sizes":X.sizes=String(W);break;case"quality":X.quality=Number(W);break;case"placeholder":X.placeholder=W;break;case"lazy":X.lazy=W===!0||W==="true";break;case"priority":X.priority=W===!0||W==="true";break;case"class":X.class=String(W);break;case"style":X.style=String(W);break;case"id":X.id=String(W);break;case"loading":X.loading=W;break;case"decoding":X.decoding=W;break;case"fetchpriority":X.fetchpriority=W;break;case"objectFit":X.objectFit=W;break;case"objectPosition":X.objectPosition=String(W);break;case"crossorigin":X.crossorigin=W;break}}if(!X.src||!X.alt)return null;return X}async function SL($,Z={}){let Y=/<Img\s+[^>]*?\/?>/g,X=[],J=[],Q=[],G=$,K=[],q;while((q=Y.exec($))!==null)K.push({match:q[0],index:q.index});for(let z=K.length-1;z>=0;z--){let{match:U}=K[z],W=XK(U);if(W){let _=await v5(W,Z);if(G=G.replace(U,_.html),_.preloadLink)X.push(_.preloadLink);if(_.css)J.push(_.css);if(_.script)Q.push(_.script)}}return{html:G,preloadLinks:X,styles:J,scripts:Q}}async function JK($,Z){let Y=await eG();if(!Y)return v5({...$,process:!1},Z);let X=Z.tsImagesConfig;if($.responsiveWidths&&$.responsiveWidths.length>0||$.widths&&$.widths.length>0||!$.width&&!$.dpr){let Q=await Y.generateResponsiveVariants($.src,$,X);if(Q)return E8($,Q,Z)}else{let Q=await Y.processImage($.src,$,X);if(Q.processed)return m7($,Q,Z)}return v5({...$,process:!1},Z)}async function m7($,Z,Y){let{alt:X,width:J,height:Q,lazy:G=!0,priority:K=!1,objectFit:q,objectPosition:z,crossorigin:U,referrerpolicy:W}=$,_=$.class,B=$.style,j=$.id||`stx-img-${Math.random().toString(36).slice(2,8)}`,H=$.data||{},L=Z.variants||[],F=L.find((v)=>v.format==="jpeg")||L.find((v)=>v.format==="webp")||L[0],O=F?.url||$.src,V=L.filter((v)=>v.format===(F?.format||"jpeg")).map((v)=>`${v.url} ${v.width}w`).join(", "),A=new Map;for(let v of L){if(!A.has(v.format))A.set(v.format,[]);A.get(v.format).push(v)}let w=[],R=["avif","webp","jpeg","png"];for(let v of R){let m=A.get(v);if(m&&m.length>0){let g=m.map((s)=>`${s.url} ${s.width}w`).join(", "),u=M7(v);if(G&&!K)w.push(` <source type="${u}" data-srcset="${g}" />`);else w.push(` <source type="${u}" srcset="${g}" />`)}}let N=[];if(G&&!K){if(N.push(`data-src="${p0(O)}"`),N.push('src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"'),V)N.push(`data-srcset="${V}"`)}else if(N.push(`src="${p0(O)}"`),V)N.push(`srcset="${V}"`);N.push(`alt="${p0(X)}"`);let M=J||Z.originalWidth,T=Q||Z.originalHeight;if(M)N.push(`width="${M}"`);if(T)N.push(`height="${T}"`);if(!K)N.push(`loading="${G?"lazy":"eager"}"`);if(N.push('decoding="async"'),K)N.push('fetchpriority="high"');if(U)N.push(`crossorigin="${U}"`);if(W)N.push(`referrerpolicy="${W}"`);let I=[];if(q)I.push(`object-fit: ${q}`);if(z)I.push(`object-position: ${z}`);if(Z.placeholder&&G)I.push("opacity: 0; transition: opacity 300ms ease-out");if(B)I.push(B);if(I.length>0)N.push(`style="${I.join("; ")}"`);let D=[];if(_)D.push(_);if(Z.placeholder)D.push("stx-img-blur");if(D.length>0)N.push(`class="${D.join(" ")}"`);if(G&&!K)N.push("data-stx-lazy");for(let[v,m]of Object.entries(H))N.push(`data-${v}="${p0(m)}"`);let E;if(Z.placeholder||Z.dominantColor&&$.useDominantColor){let v=Z.placeholder?`background-image: url('${Z.placeholder}'); background-size: cover; background-position: center;`:`background-color: ${Z.dominantColor};`;E=`<div id="${j}" class="stx-img-placeholder" style="${v}">
|
|
1171
1171
|
<picture>
|
|
1172
1172
|
${w.join(`
|
|
1173
1173
|
`)}
|
|
@@ -1178,11 +1178,11 @@ ${w.join(`
|
|
|
1178
1178
|
`)}
|
|
1179
1179
|
<img ${N.join(" ")} />
|
|
1180
1180
|
</picture>`;let k=[];if(Z.placeholder)k.push(D7);let S=G?D8(j):void 0,y;if(K&&V)y=`<link rel="preload" as="image" imagesrcset="${V}" />`;return{html:E,preloadLink:y,css:k.length>0?k.join(`
|
|
1181
|
-
`):void 0,script:S}}async function E8($,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 m7($,X,Y)}var T8=!1,g7=80,y$="async",C$="lazy",M8=!1;var k8=
|
|
1181
|
+
`):void 0,script:S}}async function E8($,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 m7($,X,Y)}var T8=!1,g7=80,y$="async",C$="lazy",M8=!1;var k8=P(()=>{I7();q8()});function QK(){return H0({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||S1,formats:G.formats||Y5,quality:G.quality,sizes:G.sizes,dpr:G.dpr,params:G.params,placeholder:G.placeholder,placeholderOptions:G.placeholderOptions,lazy:G.lazy!==!1,priority:G.priority||!1,loading:G.loading,decoding:G.decoding,fetchpriority:G.fetchpriority,objectFit:G.objectFit,objectPosition:G.objectPosition,class:G.class,style:G.style,id:G.id,width:G.width,height:G.height},q=Y.__isDev||!1,z=await v5(K,{isDev:q}),U=z.html;if(z.preloadLink)U=z.preloadLink+`
|
|
1182
1182
|
`+U;if(z.css)U+=`
|
|
1183
1183
|
<style>${z.css}</style>`;if(z.script)U+=`
|
|
1184
|
-
<script>${z.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=u7(J[0],Y)||"",G=u7(J[1],Y)||"",K={};if(J[2]){let q=u7(J[2],Y);if(typeof q==="object"&&q!==null)K=q;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 q=$[K],z=K>0?$[K-1]:"";if((q==='"'||q==="'"||q==="`")&&z!=="\\"){if(!X)X=!0,J=q;else if(q===J)X=!1,J="";else Y+=q;continue}if(!X){if(q==="{")Q++;if(q==="}")Q--;if(q==="[")G++;if(q==="]")G--;if(q===","&&Q===0&&G===0){Z.push(Y.trim()),Y="";continue}}Y+=q}if(Y.trim())Z.push(Y.trim());return Z}function u7($,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 S8;var b8=
|
|
1185
|
-
`)}async function l$($,Z,Y,X,J){let Q=await h8();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate DASH manifest"),null;try{let G=v8($);if(!await N0(G))return null;let K=await
|
|
1184
|
+
<script>${z.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=u7(J[0],Y)||"",G=u7(J[1],Y)||"",K={};if(J[2]){let q=u7(J[2],Y);if(typeof q==="object"&&q!==null)K=q;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 q=$[K],z=K>0?$[K-1]:"";if((q==='"'||q==="'"||q==="`")&&z!=="\\"){if(!X)X=!0,J=q;else if(q===J)X=!1,J="";else Y+=q;continue}if(!X){if(q==="{")Q++;if(q==="}")Q--;if(q==="[")G++;if(q==="]")G--;if(q===","&&Q===0&&G===0){Z.push(Y.trim()),Y="";continue}}Y+=q}if(Y.trim())Z.push(Y.trim());return Z}function u7($,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 S8;var b8=P(()=>{j7();k8();I7();S8=QK()});class v${config;constructor($={}){this.config={...qK,...$}}async get($,Z){return M$($,Z,"video",this.config)}async set($,Z,Y){return I$($,Z,Y,"video",this.config)}async clear(){return D$("video",this.config)}updateConfig($){this.config={...this.config,...$}}}function l7($){if(!P$)P$=new v$($);else if($)P$.updateConfig($);return P$}async function x$($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return l7(X).get($,Z)}async function f$($,Z,Y,X){let J=X?{directory:`${X.outputDir}/../.cache`}:{};return l7(J).set($,Z,Y)}async function y8(){return l7().clear()}var qK,P$=null;var p7=P(()=>{y7();qK={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:2000,cacheTranscoded:!0,cacheThumbnails:!0,cacheManifests:!0}});import{resolve as c7,basename as i7,extname as n7,join as g$}from"path";import{mkdir as o7}from"fs/promises";async function s7(){try{return await import("ts-videos")}catch{return null}}async function h$($,Z,Y,X){let J=await s7();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate poster"),null;try{let Q=c7($);if(!await N0(Q))return null;await o7(Y,{recursive:!0});let G=await I0(Q),K=i7($,n7($)),q=Z.format||"webp",z=Z.timestamp||0,U=`${K}-poster-${G}.${q}`,W=g$(Y,U),_=await J.extractThumbnails(Q,{timestamps:[z],width:Z.width||1280,height:Z.height,format:q,quality:Z.quality||85,outputDir:Y,outputPattern:U.replace(`.${q}`,"")});if(_&&_.length>0){let B=_[0];return{path:W,url:`${X}/${U}`,width:B.width||Z.width||1280,height:B.height||720,timestamp:z,size:B.size||0}}return null}catch(Q){return console.warn(`[stx-media] Failed to generate poster: ${Q}`),null}}async function d$($,Z,Y,X){let J=await s7();if(!J)return[];try{let Q=c7($);if(!await N0(Q))return[];await o7(Y,{recursive:!0});let G=await I0(Q),K=i7($,n7($)),q=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:q,quality:Z.quality||80,outputDir:Y,outputPattern:`${K}-thumb-${G}`});if(H&&H.length>0)return H.map((L,F)=>({path:L.path||g$(Y,`${K}-thumb-${G}-${F}.${q}`),url:`${X}/${K}-thumb-${G}-${F}.${q}`,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 C8($,Z,Y,X){let J=await s7();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate sprite sheet"),null;try{let Q=c7($);if(!await N0(Q))return null;await o7(Y,{recursive:!0});let G=await I0(Q),K=i7($,n7($)),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=g$(Y,O),A=[];for(let R=0;R<L;R++)A.push(R*_);let w=await J.extractThumbnails(Q,{timestamps:A,width:B,height:j,format:H,quality:Z.quality||70,outputDir:g$(Y,".temp")});if(!w||w.length===0)return null;try{let R=await import("ts-images"),N=W*B,M=F*j,T=await R.createSprite({images:w.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 r7=P(()=>{b1()});import{resolve as v8,basename as x8,extname as f8,join as y1}from"path";import{mkdir as m$,writeFile as g8}from"fs/promises";async function h8(){try{return await import("ts-videos")}catch{return null}}async function u$($,Z,Y,X,J){let Q=await h8();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate HLS manifest"),null;try{let G=v8($);if(!await N0(G))return null;let K=await I0(G),q=x8($,f8($)),z=y1(Y,`${q}-${K}-hls`);await m$(z,{recursive:!0});let U=Z.length>0?Z:d8,W=J?.segmentDuration||6,j=(await new Q.Input(G).getInfo()).duration||0,H=[],L=0;for(let V of U){let A=y1(z,V.label);await m$(A,{recursive:!0});let w=`${V.label}.m3u8`,R=y1(A,w);try{let N=await Q.generateHLS(G,{outputDir:A,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}/${q}-${K}-hls/${V.label}/${w}`,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=y1(z,"master.m3u8"),O=zK(H,X,q,K);return await g8(F,O),{manifestUrl:`${X}/${q}-${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 zK($,Z,Y,X){let J=["#EXTM3U","#EXT-X-VERSION:3"];for(let Q of $){let{quality:G}=Q,K=G.bitrate+(G.audioBitrate||128000),q=`${G.width}x${G.height||Math.round(G.width*9/16)}`;J.push(`#EXT-X-STREAM-INF:BANDWIDTH=${K},RESOLUTION=${q},NAME="${G.label}"`,`${G.label}/${G.label}.m3u8`)}return J.join(`
|
|
1185
|
+
`)}async function l$($,Z,Y,X,J){let Q=await h8();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate DASH manifest"),null;try{let G=v8($);if(!await N0(G))return null;let K=await I0(G),q=x8($,f8($)),z=y1(Y,`${q}-${K}-dash`);await m$(z,{recursive:!0});let U=Z.length>0?Z:d8,W=J?.segmentDuration||4,_=J?.minBufferTime||2,H=(await new Q.Input(G).getInfo()).duration||0,L=[],F=[];for(let w of U){let R=y1(z,w.label);await m$(R,{recursive:!0});try{if(await Q.generateDASH(G,{outputDir:R,segmentDuration:W,width:w.width,height:w.height,videoBitrate:w.bitrate,audioBitrate:w.audioBitrate})){if(L.push({bandwidth:w.bitrate,width:w.width,height:w.height||Math.round(w.width*9/16),url:`${X}/${q}-${K}-dash/${w.label}/video`}),w.audioBitrate)F.push({bandwidth:w.audioBitrate,url:`${X}/${q}-${K}-dash/${w.label}/audio`})}}catch(N){console.warn(`[stx-media] Failed to generate DASH for ${w.label}: ${N}`)}}if(L.length===0)return null;let O=y1(z,"manifest.mpd"),V=UK(L,F,H,W,_);await g8(O,V);let A=[{type:"video",representations:L}];if(F.length>0)A.push({type:"audio",representations:F});return{manifestUrl:`${X}/${q}-${K}-dash/manifest.mpd`,manifestPath:O,adaptationSets:A,duration:H}}catch(G){return console.warn(`[stx-media] Failed to generate DASH manifest: ${G}`),null}}function UK($,Z,Y,X,J){let Q=P8(Y),G=P8(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 @@ ${w.join(`
|
|
|
1208
1208
|
</Representation>
|
|
1209
1209
|
`}K+=` </AdaptationSet>
|
|
1210
1210
|
`}return K+=` </Period>
|
|
1211
|
-
</MPD>`,K}function P8($){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 d8;var a7=
|
|
1211
|
+
</MPD>`,K}function P8($){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 d8;var a7=P(()=>{b1();d8=[{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 m8,basename as WK,extname as _K,join as BK}from"path";import{mkdir as jK}from"fs/promises";async function u8(){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 t7($){let Z=await u8();if(!Z)return null;try{let Y=m8($),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 l8($,Z,Y,X){let J=await u8();if(!J)return console.warn("[stx-media] ts-videos not installed, skipping processing"),{src:$,processed:!1};let Q=await x$($,Z,Y);if(Q)return Q;try{let G=m8($);if(!await N0(G))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let K=Y.outputDir||"dist/videos",q=Y.baseUrl||"/videos";await jK(K,{recursive:!0});let z=await I0(G),U=WK($,_K($)),W={src:$,processed:!0,hash:z};X?.({percentage:5,stage:"analyzing"}),W.metadata=await t7(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}-${z}.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:`${q}/${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 h$(G,B,K,q);if(j)W.poster=j}if(Y.thumbnails?.enabled){X?.({percentage:70,stage:"generating-thumbnails"});let B=await d$(G,Y.thumbnails,K,q);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 u$(G,B.qualities||Y.streaming?.defaultQualities||[],K,q);if(j)W.streaming={...W.streaming,hls:j}}if(B.format==="dash"){let j=await l$(G,B.qualities||Y.streaming?.defaultQualities||[],K,q);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 f$($,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 p8=P(()=>{b1();p7();r7();a7()});var c8={};p(c8,{setCachedVideoResult:()=>f$,processVideo:()=>l8,getCachedVideoResult:()=>x$,generateThumbnails:()=>d$,generateSpriteSheet:()=>C8,generatePoster:()=>h$,generateHLSManifest:()=>u$,generateDASHManifest:()=>l$,clearVideoCache:()=>y8,analyzeVideo:()=>t7,VideoProcessorCache:()=>v$});var i8=P(()=>{p8();r7();a7();p7()});async function o8(){try{return await Promise.resolve().then(() => (i8(),c8))}catch($){if(!n8)console.warn("[stx-media] Video processor not available, some features disabled:",$),n8=!0;return null}}async function p$($,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 t8($,Y.processedResult,Z);let J;if(X.generatePoster&&X.src&&!$.poster)J=await TK(X,Y);let{src:Q,sources:G=[],poster:K,posterPlaceholder:q,controls:z=s8,autoplay:U=!1,muted:W=!1,loop:_=!1,preload:B=r8,playsinline:j=!0,lazy:H=!0,player:L="native",type:F,width:O,height:V,crossorigin:A,disablePictureInPicture:w=!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:a8(Q)}]:[],E=[`id="${I}"`];if(z)E.push("controls");if(U)E.push("autoplay");if(W)E.push("muted");if(_)E.push("loop");if(j)E.push("playsinline");if(w)E.push("disablepictureinpicture");if(R)E.push("disableremoteplayback");if(A)E.push(`crossorigin="${A}"`);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 k=D.map((v)=>{return` <source ${H?`data-src="${L0(v.src)}"`:`src="${L0(v.src)}"`} type="${v.type}"${v.media?` media="${v.media}"`:""} />`}).join(`
|
|
1212
1212
|
`),S=`<video ${E.join(" ")}>
|
|
1213
1213
|
${k}
|
|
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:k}}var n8=!1,s8=!0,r8="metadata",FK="https://cdn.jsdelivr.net/npm/ts-video-player@latest/dist/index.min.js";var e8=
|
|
1468
|
+
`.trim();return{html:D,script:E,css:k}}var n8=!1,s8=!0,r8="metadata",FK="https://cdn.jsdelivr.net/npm/ts-video-player@latest/dist/index.min.js";var e8=P(()=>{$3()});function $Z(){return H0({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},q={isDev:Y.__isDev||!1,tsVideosConfig:Y.__tsVideosConfig},z=await p$(G,q),U=z.html;if(z.css)U+=`
|
|
1469
1469
|
<style>${z.css}</style>`;if(z.script)U+=`
|
|
1470
|
-
<script>${z.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=ZZ(J[0],Y)||"",G={};if(J[1]){let K=ZZ(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 q=$[K],z=K>0?$[K-1]:"";if((q==='"'||q==="'"||q==="`")&&z!=="\\"){if(!X)X=!0,J=q;else if(q===J)X=!1,J="";else Y+=q;continue}if(!X){if(q==="{")Q++;if(q==="}")Q--;if(q==="[")G++;if(q==="]")G--;if(q===","&&Q===0&&G===0){Z.push(Y.trim()),Y="";continue}}Y+=q}if(Y.trim())Z.push(Y.trim());return Z}function ZZ($,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 e7;var $3=
|
|
1470
|
+
<script>${z.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=ZZ(J[0],Y)||"",G={};if(J[1]){let K=ZZ(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 q=$[K],z=K>0?$[K-1]:"";if((q==='"'||q==="'"||q==="`")&&z!=="\\"){if(!X)X=!0,J=q;else if(q===J)X=!1,J="";else Y+=q;continue}if(!X){if(q==="{")Q++;if(q==="}")Q--;if(q==="[")G++;if(q==="]")G--;if(q===","&&Q===0&&G===0){Z.push(Y.trim()),Y="";continue}}Y+=q}if(Y.trim())Z.push(Y.trim());return Z}function ZZ($,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 e7;var $3=P(()=>{j7();e8();e7=$Z()});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 zF($){return[...$,...Z3]}var bK,yK,CK,PK,Z3;var YZ=
|
|
1770
|
-
Help: ${X}`:Y}function Y3($){for(let[Z,Y]of Object.entries(c))if(Y===$)return Z;return}var vK,c$,XZ="en",c;var i$=
|
|
1769
|
+
</script>`}function zF($){return[...$,...Z3]}var bK,yK,CK,PK,Z3;var YZ=P(()=>{bK={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 SK($,J)},hasEndTag:!0,description:"Renders a push notification subscription button"},Z3=[bK,yK,CK,PK]});function xK($){XZ=$}function fK(){return XZ}function gK($){c$={...c$,...$}}function hK(){c$={}}function JZ($,Z={}){let Y=c$[$]||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}=JZ($,Z);return X?`${Y}
|
|
1770
|
+
Help: ${X}`:Y}function Y3($){for(let[Z,Y]of Object.entries(c))if(Y===$)return Z;return}var vK,c$,XZ="en",c;var i$=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"}},c$={};c={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 x5(){return!1}function f5(){return!x5()||process.env.STX_DEBUG==="true"}function n$(){return!1}import mK from"path";function uK($){G5={...G5,...$}}function o$(){return{...G5}}function lK(){G5={...QZ}}function s$($){if(!G5.showRelativePaths||!$)return $;let Z=G5.baseDir||process.cwd();try{let Y=mK.relative(Z,$);return Y.startsWith("..")?$:Y}catch{return $}}var QZ,G5,C1,GZ,P1,KZ,qZ,r$;var a$=P(()=>{i$();QZ={showRelativePaths:!1,enableAutoRecovery:f5(),logRecoveryWarnings:!0},G5={...QZ};C1=class C1 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||c.EVALUATION_ERROR,this.filePath)this.filePath=s$(this.filePath)}};GZ=class GZ extends C1{constructor($,Z,Y,X,J,Q){super($,"stx_SYNTAX_ERROR",Z,Y,X,J,Q||c.INVALID_DIRECTIVE_SYNTAX);this.name="StxSyntaxError"}};P1=class P1 extends C1{constructor($,Z,Y,X,J,Q){super($,"stx_RUNTIME_ERROR",Z,Y,X,J,Q||c.EVALUATION_ERROR);this.name="StxRuntimeError"}};KZ=class KZ extends C1{constructor($,Z,Y,X,J,Q){super($,"stx_SECURITY_ERROR",Z,Y,X,J,Q||c.UNSAFE_EXPRESSION);this.name="StxSecurityError"}};qZ=class qZ extends C1{constructor($,Z,Y,X,J,Q){super($,"stx_FILE_ERROR",Z,Y,X,J,Q||c.FILE_NOT_FOUND);this.name="StxFileError"}};r$=class r$ extends C1{isFatal=!0;constructor($,Z,Y,X,J,Q){super($,"stx_VALIDATION_ERROR",Z,Y,X,J,Q||c.DOM_API_VIOLATION);this.name="StxValidationError"}}});function X3($){let{type:Z,message:Y,code:X,filePath:J,line:Q,column:G,template:K,offset:q,snippet:z,suggestion:U,format:W="text"}=$,_=Q,B=G;if(!_&&K&&q!==void 0){let O=UZ(K,q);_=O.line,B=O.column}let j=J?s$(J):void 0,H=X?Y3(X):void 0,L={type:Z,code:X,codeName:H,message:Y,filePath:j,line:_,column:B,snippet:z,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,q);break;case"text":default:F=pK(L,K,q);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 q=G;q<=K;q++){let z=q+1,U=X[q]||"",W=q===J.line-1?">":" ";Q+=`${W} ${z.toString().padStart(3)}: ${U}
|
|
1793
1793
|
`}if(J.line-1<X.length){let q=" ".repeat(J.column+5);Q+=`${q}^
|
|
1794
|
-
`}return Q}function aK($,Z,Y){try{return $()}catch(X){if(Y&&X instanceof Error)Y(X);return Z}}async function K5($,Z,Y){try{return await $()}catch(X){if(Y&&X instanceof Error)Y(X);return Z}}var WZ=
|
|
1794
|
+
`}return Q}function aK($,Z,Y){try{return $()}catch(X){if(Y&&X instanceof Error)Y(X);return Z}}async function K5($,Z,Y){try{return await $()}catch(X){if(Y&&X instanceof Error)Y(X);return Z}}var WZ=P(()=>{i$();a$()});class Q3{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 J3,c0,G3;var _Z=
|
|
1800
|
+
`),"utf-8")}}async flush(){await this.writeQueue}}var J3,c0,G3;var _Z=P(()=>{a$();J3={isEnabled(){return o$().enableAutoRecovery},fixCommonSyntaxErrors($){let Z=o$();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 q=(Y.match(new RegExp(`@${K}\\b`,"g"))||[]).length,z=(Y.match(new RegExp(`@end${K}\\b`,"g"))||[]).length;if(q>z){let U=q-z;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(f5())return`<!-- ${$} failed: ${Z.message} -->`;return"<!-- stx rendering error -->"}};c0=new Q3,G3={isDevelopment(){return f5()},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 K3 from"path";function tK($){let Z={"&":"&","<":"<",">":">",'"':""","'":"'"};return $.replace(/[&<>"']/g,(Y)=>Z[Y]||Y)}function t$($,Z={}){let{allowHtml:Y=!1,maxLength:X=1e4,allowSpecialChars:J=!0,customSanitizer:Q}=Z,G=[],K=$,q=!1;if(Q){let U=Q(K);if(U!==K)K=U,q=!0}if(K.includes("\x00"))K=K.replace(/\0/g,""),q=!0,G.push("Null bytes removed from parameter");if(K.length>X)K=K.substring(0,X),q=!0,G.push(`Parameter truncated to ${X} characters`);if(!Y&&/<[^>]+>/.test(K))K=tK(K),q=!0,G.push("HTML content was escaped");let z=[{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 z)if(U.test(K))K=K.replace(U,W),q=!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)q=!0,G.push("Control characters removed")}return{value:K,modified:q,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 $q($){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 Zq($,Z={}){return $.map((Y)=>t$(Y,Z))}function BZ($){let Z={};for(let[Y,X]of Object.entries($)){if(!q3.isValidVariableName(Y))continue;if(typeof X==="string"){let J=t$(X);Z[Y]=J.value}else if(Array.isArray(X))Z[Y]=X.map((J)=>typeof J==="string"?t$(J).value:J);else if(typeof X==="object"&&X!==null)Z[Y]=BZ(X);else Z[Y]=X}return Z}var q3;var jZ=
|
|
1802
|
+
`)}}});import K3 from"path";function tK($){let Z={"&":"&","<":"<",">":">",'"':""","'":"'"};return $.replace(/[&<>"']/g,(Y)=>Z[Y]||Y)}function t$($,Z={}){let{allowHtml:Y=!1,maxLength:X=1e4,allowSpecialChars:J=!0,customSanitizer:Q}=Z,G=[],K=$,q=!1;if(Q){let U=Q(K);if(U!==K)K=U,q=!0}if(K.includes("\x00"))K=K.replace(/\0/g,""),q=!0,G.push("Null bytes removed from parameter");if(K.length>X)K=K.substring(0,X),q=!0,G.push(`Parameter truncated to ${X} characters`);if(!Y&&/<[^>]+>/.test(K))K=tK(K),q=!0,G.push("HTML content was escaped");let z=[{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 z)if(U.test(K))K=K.replace(U,W),q=!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)q=!0,G.push("Control characters removed")}return{value:K,modified:q,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 $q($){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 Zq($,Z={}){return $.map((Y)=>t$(Y,Z))}function BZ($){let Z={};for(let[Y,X]of Object.entries($)){if(!q3.isValidVariableName(Y))continue;if(typeof X==="string"){let J=t$(X);Z[Y]=J.value}else if(Array.isArray(X))Z[Y]=X.map((J)=>typeof J==="string"?t$(J).value:J);else if(typeof X==="object"&&X!==null)Z[Y]=BZ(X);else Z[Y]=X}return Z}var q3;var jZ=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=K3.resolve(Z,$),Q=K3.resolve(Z);if(!J.startsWith(Q+K3.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 HZ=P(()=>{i$();WZ();_Z();jZ();a$()});var Q1=P(()=>{HZ()});function OZ($,Z,Y,X){let J=$;J=J.replace(/@meta\(\s*['"]([^'"]+)['"](?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(K,q,z)=>{if(!z&&q.includes(":")){let U=q.split(":"),W=q,_=U.length>1?U[1]:"";if(_&&Z[_])z=Z[_];else if(W.startsWith("og:")&&Z.openGraph&&Z.openGraph[U[1]])z=Z.openGraph[U[1]];else z="";return z?`<meta property="${i(W)}" content="${i(z)}">`:""}return z?`<meta name="${i(q)}" content="${i(z)}">`:""});let Q=/@metaTag\s*\(/g,G;while((G=Q.exec(J))!==null){let K=G.index,q=K+G[0].length-1,z=1,U=q+1;while(U<J.length&&z>0){if(J[U]==="(")z++;else if(J[U]===")"){if(z--,z===0)break}U++}if(z!==0)break;let W=J.substring(q+1,U).trim(),_=U+1,B=(()=>{try{let j=O0(W,Z);if(!j)return"";let H="<meta";if(j.name)H+=` name="${i(String(j.name))}"`;if(j.property)H+=` property="${i(String(j.property))}"`;if(j.httpEquiv)H+=` http-equiv="${i(String(j.httpEquiv))}"`;if(j.content)H+=` content="${i(String(j.content))}"`;return H+=">",H}catch(j){let H=j instanceof Error?j.message:String(j);return a("MetaTag",H,c.EVALUATION_ERROR)}})();J=J.substring(0,K)+B+J.substring(_),Q.lastIndex=0}return J}function LZ($,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,q=1,z=K+1;while(z<X.length&&q>0){if(X[z]==="(")q++;else if(X[z]===")"){if(q--,q===0)break}z++}if(q!==0)break;let U=X.substring(K+1,z).trim(),W=z+1,_=(()=>{try{let B=O0(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 a("StructuredData",j,c.EVALUATION_ERROR)}})();X=X.substring(0,G)+_+X.substring(W),J.lastIndex=0}return X}function FZ($,Z,Y,X){let J=$,Q=/@seo\s*\(\s*\{/g,G;while((G=Q.exec(J))!==null){let K=J.indexOf("{",G.index+4),q=1,z=K+1,U=null,W=!1;while(z<J.length&&q>0){let F=J[z];if(W){W=!1,z++;continue}if(F==="\\"&&U){W=!0,z++;continue}if(U){if(F===U)U=null;z++;continue}if(F==='"'||F==="'"||F==="`"){U=F,z++;continue}if(F==="{")q++;else if(F==="}")q--;z++}if(q!==0)break;let _=J.substring(z).match(/^\s*\)/);if(!_)break;let B=z+_[0].length,j=J.substring(K,z),H=J.substring(G.index,B),L=((F)=>{try{let O=O0(F,Z);if(!O)return"";let V="";if(O.title)V+=`<title>${i(O.title)}</title>
|
|
1803
1803
|
`,V+=`<meta name="title" content="${i(O.title)}">
|
|
1804
1804
|
`;if(O.description)V+=`<meta name="description" content="${i(O.description)}">
|
|
1805
1805
|
`;if(O.keywords){let A=Array.isArray(O.keywords)?O.keywords.join(", "):O.keywords;V+=`<meta name="keywords" content="${i(A)}">
|
|
@@ -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 gF($,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 z=K.replace(/\\/g,"/").replace(/index\.(stx|html|htm)$/,"").replace(/\.(stx|html|htm)$/,"");if(!z.startsWith("/"))z=`/${z}`;if(z!=="/"&&z.endsWith("/"))z=z.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:z||"/",lastmod:W,priority:z==="/"?1:0.5})}return J.sort((K,q)=>K.loc.localeCompare(q.loc)),J}function Yq($){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 hF($){return Yq({rules:[{userAgent:"*",allow:["/"]}],sitemap:$})}function wZ($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}var z3,U3;var W3=
|
|
1857
|
+
`).trim()}function hF($){return Yq({rules:[{userAgent:"*",allow:["/"]}],sitemap:$})}function wZ($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}var z3,U3;var W3=P(()=>{Q1();w0();z3={name:"meta",handler:($,Z,Y,X)=>{if(Z.length<1)return a("Meta","meta directive requires at least the meta name",c.INVALID_DIRECTIVE_SYNTAX);let J=Z[0].replace(/['"]/g,""),Q=Z.length>1?Z[1].replace(/['"]/g,""):"";return`<meta name="${i(J)}" content="${i(Q)}">`},hasEndTag:!1},U3={name:"structuredData",handler:($,Z,Y,X)=>{if($.trim()==="")return a("StructuredData","structuredData directive requires JSON-LD content",c.INVALID_DIRECTIVE_SYNTAX);try{let J=JSON.parse($);if(!J["@context"])J["@context"]="https://schema.org";if(!J["@type"])return a("StructuredData","structuredData requires @type property",c.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 a("StructuredData",Q,c.EVALUATION_ERROR)}},hasEndTag:!0}});import Xq from"fs";import W1 from"path";async function cF($,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 Jq(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 Jq($,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 n(J))K=J;else if(Z.componentsDir){let H=W1.join(Z.componentsDir,J);if(await n(H))K=H}if(!K)K=await e$(J,process.cwd(),Z,Y);if(!K)return console.error(`Web component source file not found: ${J}`),null;let q=await Bun.file(K).text();Y.add(K);let U=($.outputFormat||"js")==="ts",W=U?Gq({name:X,tag:Q,baseElement:G,source:q,shadowDOM:$.shadowDOM??!0,template:$.template??!0,styleSource:$.styleSource,attributes:$.attributes||[],attributeTypes:$.attributeTypes||{}}):Qq({name:X,tag:Q,baseElement:G,source:q,shadowDOM:$.shadowDOM??!0,template:$.template??!0,styleSource:$.styleSource,attributes:$.attributes||[]}),_=Z.webComponents?.outputDir||"dist/web-components";await Xq.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 Qq($){let{name:Z,tag:Y,baseElement:X="HTMLElement",source:J,shadowDOM:Q,template:G,styleSource:K,attributes:q=[]}=$,z=J.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"").trim();if(!Q)z=z.replace(/<slot\s+name=["']([^"']+)["']\s*>([\s\S]*?)<\/slot>/gi,'<div data-slot="$1">$2</div>'),z=z.replace(/<slot\s+name=["']([^"']+)["']\s*\/>/gi,'<div data-slot="$1"></div>'),z=z.replace(/<slot\s*>([\s\S]*?)<\/slot>/gi,"<div data-default-slot>$1</div>"),z=z.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
|
*/
|
|
@@ -2317,7 +2317,7 @@ else { this.removeAttribute('${E}'); }`:`this.setAttribute('${E}', ${I.type==="o
|
|
|
2317
2317
|
}
|
|
2318
2318
|
else {
|
|
2319
2319
|
this.removeAttribute('${E}');
|
|
2320
|
-
}`:"",y=I.observer?`this.${I.observer}(value, oldValue);`:"",
|
|
2320
|
+
}`:"",y=I.observer?`this.${I.observer}(value, oldValue);`:"",v=I.render!==!1?"this._scheduleRender();":"";return`
|
|
2321
2321
|
get ${T}(): ${D} {
|
|
2322
2322
|
return this._${T};
|
|
2323
2323
|
}
|
|
@@ -2327,7 +2327,7 @@ else {
|
|
|
2327
2327
|
if (oldValue === value) return;
|
|
2328
2328
|
this._${T} = value;${S}
|
|
2329
2329
|
${y}
|
|
2330
|
-
${
|
|
2330
|
+
${v}
|
|
2331
2331
|
this.dispatchEvent(new CustomEvent('${T}-changed', {
|
|
2332
2332
|
detail: { value, oldValue },
|
|
2333
2333
|
bubbles: true
|
|
@@ -2933,14 +2933,14 @@ ${U}
|
|
|
2933
2933
|
customElements.define('${Z}', ${G});
|
|
2934
2934
|
`}async function AZ($,Z,Y,X){if(Z.length<1)return a("WebComponent","@webcomponent directive requires at least the tag name parameter",c.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`)],q=null;for(let W of K)if(await n(W)){q=await Bun.file(W).text();break}if(!q)return a("WebComponent",`Component file not found: ${J}.stx`,c.FILE_NOT_FOUND);let z=_q(q,J);return`<script type="module">
|
|
2935
2935
|
${Bq(z)}
|
|
2936
|
-
</script>`}var _3;var RZ=C(()=>{Q1();A0();_3={strategy:"attribute",attributeName:"data-v",preserveOriginal:!0}});var NZ={};p(NZ,{timingPlugin:()=>Fq,pluginManager:()=>jq,definePlugin:()=>$4,debugPlugin:()=>Lq,createVariablesPlugin:()=>Vq,createFilterPlugin:()=>Oq,createDirectivePlugin:()=>Hq,PluginManager:()=>j3});function $4($){return $}class j3{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 Hq($,Z,Y={}){return{name:$,...Y,registerDirectives:()=>Z}}function Oq($,Z,Y={}){return{name:$,...Y,registerFilters:()=>Z}}function Vq($){return $4({name:"stx-variables",version:"1.0.0",description:"Adds predefined variables to template context",beforeProcess(Z){return{context:{...Z.context,...$}}}})}var jq,Lq,Fq;var TZ=C(()=>{jq=new j3;Lq=$4({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)}}),Fq=$4({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 IZ={};p(IZ,{validateConfig:()=>Nq,loadStxConfig:()=>Y4,defineStxConfig:()=>Rq,defaultConfig:()=>v1,config:()=>O3});import H3 from"fs";import I0 from"path";import{loadConfigWithResult as wq}from"bunfig";function Aq($,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(H3.existsSync(X)&&H3.existsSync(J))return{root:"resources",pagesDir:"views"};let Q=I0.join(process.cwd(),"resources","views","pages");if(H3.existsSync(Q))return{root:"resources/views",pagesDir:Y};return{root:".",pagesDir:Y}}async function Y4($){if(!$){if(z5)return z5;if(Z4)return Z4}let Z=$?I0.resolve($):process.cwd(),Y=MZ.get(Z);if(Y)return Y;let X=(async()=>{let Q=(await wq({name:"stx",alias:"ui",cwd:Z,defaultConfig:v1,verbose:!1})).config,G=Aq(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(() => (TZ(),NZ)),q=[],z=[];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(K0.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);q.push(L)}if(H.pages){let L=I0.resolve(j,H.pages),F=_.path||"/";z.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=q,Q._pluginPageDirs=z}return Q})();if(MZ.set(Z,X),!$)Z4=X,X.then((J)=>{z5=J}).catch(()=>{});return X}function Rq($){return $}function Nq($){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 v1,z5=null,MZ,Z4=null,O3;var g5=C(()=>{K7();_7();F7();V7();R7();b8();$3();YZ();W3();RZ();v1={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:A7,hasEndTag:!0,description:"Render markdown content to HTML"},{name:"webcomponent",handler:AZ,hasEndTag:!1,description:"Include a web component in the template"},_$,B$,z3,U3,q7,U7,W7,z7,s9,t9,S8,e7,...Z3],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}};MZ=new Map;O3=new Proxy(v1,{get($,Z){if(z5&&Z in z5)return z5[Z];if(!Z4)Y4().catch((Y)=>{console.warn("[stx] Failed to load config file:",Y?.message||Y)});return $[Z]}})});var yq={};p(yq,{resetCssCache:()=>Eq,resetCrosswindCache:()=>kq,rebuildCrosswindCSS:()=>Sq,loadCrosswindConfig:()=>A3,loadCrosswind:()=>w3,injectCrosswindCSS:()=>R3,getCachedCSS:()=>bq,generateCrosswindCSS:()=>SZ,extractClassNames:()=>kZ,buildCrosswindCSS:()=>EZ});import J4 from"fs";import X0 from"path";function V3($){return Bun.hash($).toString(16).padStart(16,"0").slice(0,16)}function L3($,Z){if(G1.has($))G1.delete($);else if(G1.size>=Tq)G1.delete(G1.keys().next().value);G1.set($,Z)}async function Mq($){if(!_1)return null;try{let Z=Bun.file(X0.join(_1,`cw-${V3($)}.css`));if(!await Z.exists())return null;return await Z.text()}catch{return null}}async function Iq($,Z){if(!_1)return;try{if(!J4.existsSync(_1))J4.mkdirSync(_1,{recursive:!0});await Bun.write(X0.join(_1,`cw-${V3($)}.css`),Z)}catch{}}async function DZ($){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 Dq(){let $=[],Z=process.env.HOME||process.env.USERPROFILE||"",Y=process.cwd();while(Y!==X0.dirname(Y))$.push(X0.join(Y,"node_modules","@cwcss","crosswind","dist","index.js")),$.push(X0.join(Y,"node_modules","@cwcss","crosswind","src","index.ts")),$.push(X0.join(Y,"pantry","@cwcss","crosswind","dist","index.js")),$.push(X0.join(Y,"pantry","@cwcss","crosswind","src","index.ts")),$.push(X0.join(Y,"node_modules","@stacksjs","crosswind","dist","index.js")),$.push(X0.join(Y,"pantry","@stacksjs","crosswind","dist","index.js")),Y=X0.dirname(Y);if(Z){let X=[X0.join(Z,"Code","Tools","crosswind","packages","crosswind","dist","index.js"),X0.join(Z,"Code","Tools","crosswind","packages","crosswind","src","index.ts"),X0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","dist","index.js"),X0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","src","index.ts"),X0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@cwcss","crosswind","dist","index.js"),X0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@stacksjs","crosswind","dist","index.js")];$.push(...X)}return $.push(X0.join(process.cwd(),"..","crosswind","packages","crosswind","dist","index.js")),$.push(X0.join(process.cwd(),"..","crosswind","packages","crosswind","src","index.ts")),$}async function w3(){if(F3)return W5;F3=!0;try{let $=["@cwcss/crosswind","@cwcss/crosswind/dist/index.js","@stacksjs/crosswind","@stacksjs/crosswind/dist/index.js"];for(let Y of $){let X=await DZ(Y);if(X){if(W5=X,!process.env.STACKS_DEV_QUIET)console.log(`${q0.green}[Crosswind]${q0.reset} CSS engine loaded`);return W5}}let Z=Dq();for(let Y of Z)if(await Bun.file(Y).exists()){let X=await DZ(Y);if(X){if(W5=X,!process.env.STACKS_DEV_QUIET)console.log(`${q0.green}[Crosswind]${q0.reset} CSS engine loaded from ${X0.dirname(X0.dirname(Y))}`);return W5}}throw Error("Crosswind CSSGenerator not found in any location")}catch{return console.warn(`${q0.yellow}[Crosswind] CSS engine not available, Tailwind styles will not be generated${q0.reset}`),console.warn(`${q0.yellow}Run 'bun add @stacksjs/crosswind' to enable CSS generation${q0.reset}`),null}}function Eq(){G1.clear()}function kq(){W5=null,F3=!1,i0=null,h5="",G1.clear(),X4=null}async function A3($){try{let{loadConfigWithResult:Z}=await import("bunfig"),Y=await Z({name:"crosswind",cwd:$,defaultConfig:{},checkEnv:!1,verbose:!1});if(!Y?.path||!Y.config||Object.keys(Y.config).length===0)return null;let X=X0.relative($,Y.path);if(!process.env.STACKS_DEV_QUIET)console.log(`${q0.green}[Crosswind]${q0.reset} Loaded config from ${X||Y.path}`);return Y.config}catch(Z){if(Z instanceof Error&&Z.name==="ConfigNotFoundError")return null;return console.warn(`${q0.yellow}[Crosswind]${q0.reset} Failed to load crosswind config:`,Z instanceof Error?Z.message:Z),null}}async function EZ($){if(U5)return h5;U5=!0;try{let Z=await w3();if(!Z||!Z.build)return U5=!1,"";if(!i0)i0=await A3($);if(!i0)return U5=!1,"";let Y=Z.defaultConfig?.theme||{},X=i0.theme||{},J={...Z.defaultConfig,...i0,theme:{...Y,...X,extend:{...Y.extend||{},...X.extend||{}}}},Q=performance.now(),G=await Z.build(J),K=performance.now()-Q;if(h5=G.css,console.log(`${q0.cyan}[Crosswind]${q0.reset} Built ${G.classes.size} classes in ${K.toFixed(1)}ms`),J.output){let q=X0.isAbsolute(J.output)?J.output:X0.join($,J.output),z=X0.dirname(q);if(!J4.existsSync(z))J4.mkdirSync(z,{recursive:!0});await Bun.write(q,G.css)}return U5=!1,G.css}catch(Z){return console.error(`${q0.red}[Crosswind]${q0.reset} Build error:`,Z),U5=!1,h5}}async function Sq($){i0=null,await EZ($)}function bq(){return h5}function kZ($){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 q of K.slice(1,-1).split(/\s+/))if(q.trim())Z.add(q.trim())}Q=J.exec($)}return Z}async function SZ($,Z){try{let Y=await w3();if(!Y)return"";let X=kZ($);if(X.size===0)return"";let J=Z?X0.resolve(Z):process.cwd();if(!_1)_1=X0.join(J,".stx/cache");let Q=[...X].sort().join(" "),G=`${X4||"default"}::${Q}`,K=G1.get(G);if(K!==void 0)return L3(G,K),K;let q=await Mq(G);if(q!==null)return L3(G,q),q;if(!i0){let w=null;try{let{loadStxConfig:R}=await Promise.resolve().then(() => (g5(),IZ)),N=await R(J);if(N.css)if(typeof N.css==="string"){let M=X0.isAbsolute(N.css)?N.css:X0.resolve(J,N.css);if(await Bun.file(M).exists()){let T=await import(M);w=T.default||T,console.log(`${q0.green}[Crosswind]${q0.reset} Loaded config from stx.config.ts \u2192 ${N.css}`)}}else{if(w={...N.css,content:N.css.content||[],preflight:N.css.preflight??!0,minify:N.css.minify??!1},N.css.config){let M=X0.isAbsolute(N.css.config)?N.css.config:X0.resolve(J,N.css.config);if(await Bun.file(M).exists()){let T=await import(M);w={...T.default||T,...w}}}console.log(`${q0.green}[Crosswind]${q0.reset} Using inline CSS config from stx.config.ts`)}}catch{}i0=w||await A3(J);try{X4=V3(JSON.stringify(i0??{}))}catch{X4="unhashable"}}let z=Y.defaultConfig||Y.config,U=i0||{},W=z.theme||{},B=(U.theme||{}).extend||{},j={...W};if(Object.keys(B).length>0)j.extend=B;let H=[...z.safelist||[],...U.safelist||[]],L={...z,...U,content:[],output:"",preflight:!0,minify:!1,theme:j,safelist:H},F=new Y.CSSGenerator(L);for(let w of H)F.generate(w);for(let w of X)F.generate(w);let O=F.toCSS(!0,!1),V=L.shortcuts||U.shortcuts||{};for(let[w,R]of Object.entries(V)){if(!X.has(w)&&!H.includes(w))continue;let N=R.split(/\s+/).filter(Boolean);for(let M of N)F.generate(M)}O=F.toCSS(!0,!1);let A=O.split(`
|
|
2937
|
-
`);for(let[w,R]of Object.entries(V)){if(!X.has(w)&&!H.includes(w))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 y=0;y<A.length;y++){let
|
|
2936
|
+
</script>`}var _3;var RZ=P(()=>{Q1();A0();_3={strategy:"attribute",attributeName:"data-v",preserveOriginal:!0}});var NZ={};p(NZ,{timingPlugin:()=>Fq,pluginManager:()=>jq,definePlugin:()=>$4,debugPlugin:()=>Lq,createVariablesPlugin:()=>Vq,createFilterPlugin:()=>Oq,createDirectivePlugin:()=>Hq,PluginManager:()=>j3});function $4($){return $}class j3{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 Hq($,Z,Y={}){return{name:$,...Y,registerDirectives:()=>Z}}function Oq($,Z,Y={}){return{name:$,...Y,registerFilters:()=>Z}}function Vq($){return $4({name:"stx-variables",version:"1.0.0",description:"Adds predefined variables to template context",beforeProcess(Z){return{context:{...Z.context,...$}}}})}var jq,Lq,Fq;var TZ=P(()=>{jq=new j3;Lq=$4({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)}}),Fq=$4({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 IZ={};p(IZ,{validateConfig:()=>Nq,loadStxConfig:()=>Y4,defineStxConfig:()=>Rq,defaultConfig:()=>v1,config:()=>O3});import H3 from"fs";import D0 from"path";import{loadConfigWithResult as wq}from"bunfig";function Aq($,Z){let Y=Z||"pages";if($)return{root:$,pagesDir:Y};let X=D0.join(process.cwd(),"resources","views"),J=D0.join(process.cwd(),"resources","layouts");if(H3.existsSync(X)&&H3.existsSync(J))return{root:"resources",pagesDir:"views"};let Q=D0.join(process.cwd(),"resources","views","pages");if(H3.existsSync(Q))return{root:"resources/views",pagesDir:Y};return{root:".",pagesDir:Y}}async function Y4($){if(!$){if(z5)return z5;if(Z4)return Z4}let Z=$?D0.resolve($):process.cwd(),Y=MZ.get(Z);if(Y)return Y;let X=(async()=>{let Q=(await wq({name:"stx",alias:"ui",cwd:Z,defaultConfig:v1,verbose:!1})).config,G=Aq(Q.root,Q.pagesDir);if(Q.root=G.root,Q.pagesDir=G.pagesDir,Q.root&&Q.root!=="."){let K=Q.root;if(Q.partialsDir&&!D0.isAbsolute(Q.partialsDir))Q.partialsDir=D0.join(K,Q.partialsDir);if(Q.componentsDir&&!D0.isAbsolute(Q.componentsDir))Q.componentsDir=D0.join(K,Q.componentsDir);if(Q.layoutsDir&&!D0.isAbsolute(Q.layoutsDir))Q.layoutsDir=D0.join(K,Q.layoutsDir)}if(Q.plugins&&Q.plugins.length>0){let{pluginManager:K}=await Promise.resolve().then(() => (TZ(),NZ)),q=[],z=[];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=D0.dirname(K0.resolve(W))}catch{let L=D0.resolve(process.cwd(),W);B=await import(L),j=D0.dirname(L)}let H=B.default||B;if(K.register(H,Q),H.components){let L=D0.resolve(j,H.components);q.push(L)}if(H.pages){let L=D0.resolve(j,H.pages),F=_.path||"/";z.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=q,Q._pluginPageDirs=z}return Q})();if(MZ.set(Z,X),!$)Z4=X,X.then((J)=>{z5=J}).catch(()=>{});return X}function Rq($){return $}function Nq($){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 v1,z5=null,MZ,Z4=null,O3;var g5=P(()=>{K7();_7();F7();V7();R7();b8();$3();YZ();W3();RZ();v1={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:A7,hasEndTag:!0,description:"Render markdown content to HTML"},{name:"webcomponent",handler:AZ,hasEndTag:!1,description:"Include a web component in the template"},_$,B$,z3,U3,q7,U7,W7,z7,s9,t9,S8,e7,...Z3],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}};MZ=new Map;O3=new Proxy(v1,{get($,Z){if(z5&&Z in z5)return z5[Z];if(!Z4)Y4().catch((Y)=>{console.warn("[stx] Failed to load config file:",Y?.message||Y)});return $[Z]}})});var yq={};p(yq,{resetCssCache:()=>Eq,resetCrosswindCache:()=>kq,rebuildCrosswindCSS:()=>Sq,loadCrosswindConfig:()=>A3,loadCrosswind:()=>w3,injectCrosswindCSS:()=>R3,getCachedCSS:()=>bq,generateCrosswindCSS:()=>SZ,extractClassNames:()=>kZ,buildCrosswindCSS:()=>EZ});import J4 from"fs";import X0 from"path";function V3($){return Bun.hash($).toString(16).padStart(16,"0").slice(0,16)}function L3($,Z){if(G1.has($))G1.delete($);else if(G1.size>=Tq)G1.delete(G1.keys().next().value);G1.set($,Z)}async function Mq($){if(!_1)return null;try{let Z=Bun.file(X0.join(_1,`cw-${V3($)}.css`));if(!await Z.exists())return null;return await Z.text()}catch{return null}}async function Iq($,Z){if(!_1)return;try{if(!J4.existsSync(_1))J4.mkdirSync(_1,{recursive:!0});await Bun.write(X0.join(_1,`cw-${V3($)}.css`),Z)}catch{}}async function DZ($){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 Dq(){let $=[],Z=process.env.HOME||process.env.USERPROFILE||"",Y=process.cwd();while(Y!==X0.dirname(Y))$.push(X0.join(Y,"node_modules","@cwcss","crosswind","dist","index.js")),$.push(X0.join(Y,"node_modules","@cwcss","crosswind","src","index.ts")),$.push(X0.join(Y,"pantry","@cwcss","crosswind","dist","index.js")),$.push(X0.join(Y,"pantry","@cwcss","crosswind","src","index.ts")),$.push(X0.join(Y,"node_modules","@stacksjs","crosswind","dist","index.js")),$.push(X0.join(Y,"pantry","@stacksjs","crosswind","dist","index.js")),Y=X0.dirname(Y);if(Z){let X=[X0.join(Z,"Code","Tools","crosswind","packages","crosswind","dist","index.js"),X0.join(Z,"Code","Tools","crosswind","packages","crosswind","src","index.ts"),X0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","dist","index.js"),X0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","src","index.ts"),X0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@cwcss","crosswind","dist","index.js"),X0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@stacksjs","crosswind","dist","index.js")];$.push(...X)}return $.push(X0.join(process.cwd(),"..","crosswind","packages","crosswind","dist","index.js")),$.push(X0.join(process.cwd(),"..","crosswind","packages","crosswind","src","index.ts")),$}async function w3(){if(F3)return W5;F3=!0;try{let $=["@cwcss/crosswind","@cwcss/crosswind/dist/index.js","@stacksjs/crosswind","@stacksjs/crosswind/dist/index.js"];for(let Y of $){let X=await DZ(Y);if(X){if(W5=X,!process.env.STACKS_DEV_QUIET)console.log(`${q0.green}[Crosswind]${q0.reset} CSS engine loaded`);return W5}}let Z=Dq();for(let Y of Z)if(await Bun.file(Y).exists()){let X=await DZ(Y);if(X){if(W5=X,!process.env.STACKS_DEV_QUIET)console.log(`${q0.green}[Crosswind]${q0.reset} CSS engine loaded from ${X0.dirname(X0.dirname(Y))}`);return W5}}throw Error("Crosswind CSSGenerator not found in any location")}catch{return console.warn(`${q0.yellow}[Crosswind] CSS engine not available, Tailwind styles will not be generated${q0.reset}`),console.warn(`${q0.yellow}Run 'bun add @stacksjs/crosswind' to enable CSS generation${q0.reset}`),null}}function Eq(){G1.clear()}function kq(){W5=null,F3=!1,i0=null,h5="",G1.clear(),X4=null}async function A3($){try{let{loadConfigWithResult:Z}=await import("bunfig"),Y=await Z({name:"crosswind",cwd:$,defaultConfig:{},checkEnv:!1,verbose:!1});if(!Y?.path||!Y.config||Object.keys(Y.config).length===0)return null;let X=X0.relative($,Y.path);if(!process.env.STACKS_DEV_QUIET)console.log(`${q0.green}[Crosswind]${q0.reset} Loaded config from ${X||Y.path}`);return Y.config}catch(Z){if(Z instanceof Error&&Z.name==="ConfigNotFoundError")return null;return console.warn(`${q0.yellow}[Crosswind]${q0.reset} Failed to load crosswind config:`,Z instanceof Error?Z.message:Z),null}}async function EZ($){if(U5)return h5;U5=!0;try{let Z=await w3();if(!Z||!Z.build)return U5=!1,"";if(!i0)i0=await A3($);if(!i0)return U5=!1,"";let Y=Z.defaultConfig?.theme||{},X=i0.theme||{},J={...Z.defaultConfig,...i0,theme:{...Y,...X,extend:{...Y.extend||{},...X.extend||{}}}},Q=performance.now(),G=await Z.build(J),K=performance.now()-Q;if(h5=G.css,console.log(`${q0.cyan}[Crosswind]${q0.reset} Built ${G.classes.size} classes in ${K.toFixed(1)}ms`),J.output){let q=X0.isAbsolute(J.output)?J.output:X0.join($,J.output),z=X0.dirname(q);if(!J4.existsSync(z))J4.mkdirSync(z,{recursive:!0});await Bun.write(q,G.css)}return U5=!1,G.css}catch(Z){return console.error(`${q0.red}[Crosswind]${q0.reset} Build error:`,Z),U5=!1,h5}}async function Sq($){i0=null,await EZ($)}function bq(){return h5}function kZ($){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 q of K.slice(1,-1).split(/\s+/))if(q.trim())Z.add(q.trim())}Q=J.exec($)}return Z}async function SZ($,Z){try{let Y=await w3();if(!Y)return"";let X=kZ($);if(X.size===0)return"";let J=Z?X0.resolve(Z):process.cwd();if(!_1)_1=X0.join(J,".stx/cache");let Q=[...X].sort().join(" "),G=`${X4||"default"}::${Q}`,K=G1.get(G);if(K!==void 0)return L3(G,K),K;let q=await Mq(G);if(q!==null)return L3(G,q),q;if(!i0){let w=null;try{let{loadStxConfig:R}=await Promise.resolve().then(() => (g5(),IZ)),N=await R(J);if(N.css)if(typeof N.css==="string"){let M=X0.isAbsolute(N.css)?N.css:X0.resolve(J,N.css);if(await Bun.file(M).exists()){let T=await import(M);w=T.default||T,console.log(`${q0.green}[Crosswind]${q0.reset} Loaded config from stx.config.ts \u2192 ${N.css}`)}}else{if(w={...N.css,content:N.css.content||[],preflight:N.css.preflight??!0,minify:N.css.minify??!1},N.css.config){let M=X0.isAbsolute(N.css.config)?N.css.config:X0.resolve(J,N.css.config);if(await Bun.file(M).exists()){let T=await import(M);w={...T.default||T,...w}}}console.log(`${q0.green}[Crosswind]${q0.reset} Using inline CSS config from stx.config.ts`)}}catch{}i0=w||await A3(J);try{X4=V3(JSON.stringify(i0??{}))}catch{X4="unhashable"}}let z=Y.defaultConfig||Y.config,U=i0||{},W=z.theme||{},B=(U.theme||{}).extend||{},j={...W};if(Object.keys(B).length>0)j.extend=B;let H=[...z.safelist||[],...U.safelist||[]],L={...z,...U,content:[],output:"",preflight:!0,minify:!1,theme:j,safelist:H},F=new Y.CSSGenerator(L);for(let w of H)F.generate(w);for(let w of X)F.generate(w);let O=F.toCSS(!0,!1),V=L.shortcuts||U.shortcuts||{};for(let[w,R]of Object.entries(V)){if(!X.has(w)&&!H.includes(w))continue;let N=R.split(/\s+/).filter(Boolean);for(let M of N)F.generate(M)}O=F.toCSS(!0,!1);let A=O.split(`
|
|
2937
|
+
`);for(let[w,R]of Object.entries(V)){if(!X.has(w)&&!H.includes(w))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 y=0;y<A.length;y++){let v=A[y].trim();if(v===`${S} {`||v.startsWith(`${S} {`)){let m=y,g="";while(m<A.length){if(g+=A[m],A[m].includes("}"))break;m++}let u=g.match(/\{([^}]+)\}/);if(u)if(D)T.push(u[1].trim());else M.push(u[1].trim());break}}}if(M.length)O+=`
|
|
2938
2938
|
.${w} { ${M.join(" ")} }`;if(T.length)O+=`
|
|
2939
2939
|
@media (prefers-color-scheme: dark) { .dark .${w} { ${T.join(" ")} } }`}return L3(G,O),Iq(G,O),O}catch(Y){return console.warn("Failed to generate Crosswind CSS:",Y),""}}async function R3($,Z){let Y=await SZ($,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 W5=null,F3=!1,i0=null,h5="",U5=!1,Tq=256,G1,_1=null,X4=null;var bZ=
|
|
2943
|
+
${X}`);return X+$}var W5=null,F3=!1,i0=null,h5="",U5=!1,Tq=256,G1,_1=null,X4=null;var bZ=P(()=>{i9();G1=new Map});function Pq(){return`stx-${++Cq}-${Date.now().toString(36)}`}function vq($){let Z={id:Pq(),element:$||null,mountHooks:[],destroyHooks:[],updateHooks:[],refs:new Map,watchers:[],isMounted:!1};return CZ.set(Z.id,Z),Z}function yZ($){Q4=$}function N3(){return Q4}function T3($){if(!Q4)return console.warn(`[stx] ${$} must be called within a component setup.`),null;return Q4}function xq($){let Z=T3("onMount");if(Z)Z.mountHooks.push($)}function fq($){let Z=T3("onDestroy");if(Z)Z.destroyHooks.push($)}function gq($){let Z=T3("onUpdate");if(Z)Z.updateHooks.push($)}function hq($=null){let Z={value:$,get current(){return this.value}},Y=N3();if(Y){let X=`ref-${Y.refs.size}`;Y.refs.set(X,Z)}return Z}function VV($,Z=null){let Y=hq(Z),X=N3();if(X)X.refs.set($,Y);return Y}function wV($,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),q=()=>{if(Q=!1,clearInterval(K),J)J()},z=N3();if(z)z.watchers.push({stop:q}),z.destroyHooks.push(q);return q}function AV($){let Z,Y=!0;return{get value(){if(Y)Z=$(),Y=!1,queueMicrotask(()=>{Y=!0});return Z}}}function RV($,Z){let Y=vq($);yZ(Y);try{Z()}finally{yZ(null)}return Y}function NV($){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 TV($){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 MV($){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,CZ.delete($.id)}function PZ(){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 M3($){return Symbol($)}function IV($,Z){(B1.length>0?B1[B1.length-1]:G4).set($,Z)}function DV($,Z){for(let Y=B1.length-1;Y>=0;Y--){let X=B1[Y];if(X.has($))return X.get($)}if(G4.has($))return G4.get($);if(arguments.length>1)return Z;console.warn(`[stx] Injection "${String($)}" not found.`);return}function dq(){B1.push(new Map)}function mq(){B1.pop()}async function EV($){dq();try{return await $()}finally{mq()}}function kV(){G4.clear(),B1.length=0}var Q4=null,CZ,Cq=0,OV,LV,FV,G4,B1,SV,bV,yV;var vZ=
|
|
3288
|
+
`}function M3($){return Symbol($)}function IV($,Z){(B1.length>0?B1[B1.length-1]:G4).set($,Z)}function DV($,Z){for(let Y=B1.length-1;Y>=0;Y--){let X=B1[Y];if(X.has($))return X.get($)}if(G4.has($))return G4.get($);if(arguments.length>1)return Z;console.warn(`[stx] Injection "${String($)}" not found.`);return}function dq(){B1.push(new Map)}function mq(){B1.pop()}async function EV($){dq();try{return await $()}finally{mq()}}function kV(){G4.clear(),B1.length=0}var Q4=null,CZ,Cq=0,OV,LV,FV,G4,B1,SV,bV,yV;var vZ=P(()=>{CZ=new Map;OV=xq,LV=fq,FV=gq;G4=new Map,B1=[];SV=M3("theme"),bV=M3("router"),yV=M3("i18n")});import*as fZ from"crypto";function xZ($){let Z=/\$(\w+)\./g,Y=[],X;while((X=Z.exec($))!==null)if(!Y.includes(X[1]))Y.push(X[1]);return Y}function uq(){return`stx-${fZ.randomBytes(4).toString("hex")}`}function lq($){return/\$\w+\./.test($)}function pq($){let Z=[],Y=new Set,X=/<(\w+)([^>]*?)(\s*\/?>)/g,J=$;return J=J.replace(X,(Q,G,K,q)=>{if(["script","style","template"].includes(G.toLowerCase()))return Q;let z=[],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(lq(V)){U=!0;let A=V.match(/\{\{\s*([\s\S]+?)\s*\}\}/);if(A){let w=A[1];if(z.push({attr:O,expr:w,fullMatch:F,originalAttr:O}),xZ(w).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=uq(),W=` id="${H}"${W}`;for(let L of z)Z.push({elementId:H,attribute:L.attr,expression:L.expr,stores:xZ(L.expr)});return`<${G}${W}${q}`}),{html:J,bindings:Z,stores:Y}}function cq($,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 aq($){let Z=pZ($);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 q of Q.events)q.elementId=K[1]}for(let K of Q.events){let q=K.attribute.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),z=new RegExp(`\\s*${q}\\s*=\\s*"[^"]*"`,"g"),U=new RegExp(`\\s*${q}\\s*=\\s*'[^']*'`,"g");G=G.replace(z,""),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 cZ($,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:q,bindings:z}=aq($),U=Z.__stx_event_bindings||[];return Z.__stx_event_bindings=[...U,...z],q}let J=pZ($);if(J.length===0)return $;let Q=$;for(let q=J.length-1;q>=0;q--){let z=J[q],U=z.originalTag;if(!U.includes(" id="))U=U.replace(/^<([a-z][a-z0-9-]*)/,`<$1 id="${z.elementId}"`);else{let W=U.match(/id=["']([^"']+)["']/);if(W)for(let _ of z.events)_.elementId=W[1]}for(let W of z.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,z.startIndex)+U+Q.slice(z.endIndex)}let G=rq(J),K=Q.lastIndexOf("</body>");if(K!==-1)Q=Q.slice(0,K)+G+`
|
|
3552
|
-
`+Q.slice(K);else Q+=G;return Q}function vV($){return/@[a-z]+(?:\.[a-z]+)*\s*=\s*["'][^"']*["']/i.test($)}var dZ,mZ,iq,lZ;var iZ=
|
|
3552
|
+
`+Q.slice(K);else Q+=G;return Q}function vV($){return/@[a-z]+(?:\.[a-z]+)*\s*=\s*["'][^"']*["']/i.test($)}var dZ,mZ,iq,lZ;var iZ=P(()=>{dZ=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"]),mZ={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"},iq=new Set(["ctrl","alt","shift","meta"]),lZ={left:0,middle:1,right:2}});function K4($){return $.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function nZ($,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 eq($){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,q=nZ(G,"x-data");if(!q)continue;let z=`__stx_scope_${sZ++}`,U=nZ(G,"x-init"),W=$z($,Q,K+J.length),_=$.slice(K,W.endIndex),B=Zz(_);Z.push({id:z,selector:`[data-stx-scope="${z}"]`,stateExpr:q,initExpr:U,bindings:[],refs:B})}return Z}function $z($,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 q=Q.exec($),z=G.exec($),U=K.exec($);if(U&&U.index<(q?.index??1/0)){J=U.index+U[0].length;continue}if(!z)return{endIndex:$.length};if(q&&q.index<z.index)X++,J=q.index+q[0].length;else{if(X--,X===0)return{endIndex:z.index+z[0].length};J=z.index+z[0].length}}return{endIndex:$.length}}function Zz($){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=Yz(Q);Z.set(G,K)}return Z}function Yz($){let Z=$.match(/\bid\s*=\s*["']([^"']*)["']/);if(Z)return Z[1];return`__stx_el_${tq++}`}function Xz(){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
|
${Xz()}
|
|
3769
3769
|
${Y}
|
|
3770
3770
|
</script>`}function rZ($,Z,Y){if(sZ=0,!Gz($))return $;let X=eq($);if(X.length===0)return $;let J=Qz($,X),Q=Jz(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 Qz($,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*["']${K4(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*["']${K4(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*"${K4(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*'${K4(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 Gz($){return/x-data\s*=\s*["']/.test($)}var sZ=0,tq=0;var aZ=
|
|
3771
|
+
`+J.slice(G);else J+=Q;return J}function Qz($,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*["']${K4(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*["']${K4(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*"${K4(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*'${K4(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 Gz($){return/x-data\s*=\s*["']/.test($)}var sZ=0,tq=0;var aZ=P(()=>{l0()});import Kz from"fs";import I3 from"path";import{createHighlighter as qz}from"ts-syntax-highlighter";async function zz($,Z={}){try{if(!await n($))throw Error(`Markdown file not found: ${$}`);let X=(await Kz.promises.stat($)).mtime.getTime();if(Z.cache&&D3.has($)){let W=D3.get($);if(W.updatedAt>=X)return{content:W.content,data:W.data}}let J=await Bun.file($).text(),{data:Q,content:G}=Z8(J),K=Z.markdown||O3.markdown||{enabled:!0,syntaxHighlighting:{enabled:!0,serverSide:!0,defaultTheme:"github-dark",highlightUnknownLanguages:!0}},z=C5(G,{gfm:!0});if(K.syntaxHighlighting?.enabled&&K.syntaxHighlighting?.serverSide)z=await Uz(z,K.syntaxHighlighting?.defaultTheme||"github-dark",K.syntaxHighlighting?.highlightUnknownLanguages||!1);let U={content:z,data:Q||{}};if(Z.cache)D3.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:Q0("Markdown File",`Error reading/parsing markdown file: ${X}`,$,"",0,""),data:{}}}}async function Uz($,Z,Y){let X=/<pre><code( class="language-([^"]+)")?>([^<]+)<\/code><\/pre>/g;if(!q4)try{q4=await qz({theme:Z||"github-dark",cache:!0})}catch(K){return console.error("Failed to initialize ts-syntax-highlighter:",K),$}let J=async(K,q,z,U)=>{let W=U.replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&").replace(/"/g,'"').replace(/'/g,"'"),_=z||(Y?"text":"");if(!_)return K;try{if(!q4.getSupportedLanguages().includes(_))return K;return(await q4.highlight(W,_,{theme:Z})).html}catch(B){console.error(`Error highlighting code block with language ${z}:`,B)}return K},Q=$,G=$.matchAll(X);for(let K of G){let[q,z,U,W]=K,_=await J(q,z,U,W);Q=Q.replace(q,_)}return Q}async function tZ($,Z,Y="",X={}){return await Wz($,/@markdown-file\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\}))?\)/g,async(G,K,q,z)=>{try{let U=K;if(!I3.isAbsolute(K))U=I3.resolve(I3.dirname(Y),K);let W={};if(q)try{try{W=JSON.parse(q)}catch{if(X.debug)console.warn("Using safer alternative for parsing JS object literal");let O=q.replace(/^\s*\{|\}\s*$/g,"").trim().split(/,(?=\s*\w+\s*:)/);for(let V of O){let A=V.indexOf(":");if(A>0){let w=V.substring(0,A).trim(),R=V.substring(A+1).trim(),N=R.startsWith('"')&&R.endsWith('"'),M=R.startsWith("'")&&R.endsWith("'");if(N||M)R=R.substring(1,R.length-1);W[w]=R}}}}catch(F){if(X.debug)console.error("Error parsing context in @markdown-file directive:",F)}let{content:_,data:B}=await zz(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 Q0("Markdown File",`Error including markdown file: ${W}`,Y,$,z,G)}})}async function Wz($,Z,Y){let X=[],J;while((J=Z.exec($))!==null){let K=J[0],q=J.index,z=J;X.push(Y(...z).then((U)=>({match:K,replacement:U,index:q})))}let Q=await Promise.all(X);Q.sort((K,q)=>q.index-K.index);let G=$;for(let{match:K,replacement:q}of Q)G=G.replace(K,()=>q);return G}var D3,q4=null;var eZ=P(()=>{g5();A0();D3=new Map});function j1($,Z){try{let Y=$.trim();if(Z0(Y))return Y0(Y,Object.keys(Z))(...Object.values(Z));else return $0(Y,Z)}catch{return!1}}var $2=P(()=>{w0()});class z4{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,q=!1;while(Q<$.length){let z=$[Q];if(G&&q){q=!1,Q++;continue}if(G&&z==="\\"){q=!0,Q++;continue}if(q=!1,(z==='"'||z==="'"||z==="`")&&!G){G=z,Q++;continue}if(z===G&&G!=="`"){G=null,Q++;continue}if(G==="`"&&z==="$"&&$[Q+1]==="{"){K++,Q+=2;continue}if(K>0&&z==="}"){K--,Q++;continue}if(z==="`"&&G==="`"&&K===0){G=null,Q++;continue}if(G){Q++;continue}if(z===Z)J++;else if(z===Y){if(J--,J===0)return Q}Q++}return-1}function Z2($,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 E3($){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=_z($,Z);return Y.ok?{expression:Y.expression,endPos:Y.endPos}:null}function _z($,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 x1($,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 q=G.exec($),z=K.exec($),U=q?q.index:1/0,W=z?z.index:1/0;if(U<W)J++,Q=U+q[0].length;else if(W<1/0){if(J--,J===0)return W;Q=W+z[0].length}else break}return-1}function Y2($,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=x1($,"if","endif",Q);if(G===-1)return null;let K=$.slice(Q,G),q=[],z=0,U="if",W=J.expression,_=0,B=0;while(z<K.length){let j=K.indexOf("@",z);if(j===-1)break;z=j;let H=K.substring(j);if(/^@if\s*\(/.test(H)){B++,z++;continue}if(/^@endif(?![a-z])/.test(H)){B--,z+=6;continue}if(B===0){let L=H.match(/^@elseif\s*/);if(L){q.push({type:U,condition:W,content:K.substring(_,z),start:Q+_,end:Q+z});let F=z+L[0].length,O=H1(K,F);if(!O){z++;continue}U="elseif",W=O.expression,z=O.endPos,_=z;continue}else if(/^@else(?![a-z])/.test(H)){q.push({type:U,condition:W,content:K.substring(_,z),start:Q+_,end:Q+z}),U="else",W=void 0,z+=5,_=z;continue}}z++}return q.push({type:U,condition:W,content:K.slice(_),start:Q+_,end:Q+K.length}),{fullMatch:$.slice(Z,G+6),branches:q,start:Z,end:G+6}}function d5($){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=Y2($,X.index);if(Q)Z.push(Q),Y.lastIndex=Q.end;X=Y.exec($)}return Z}function U4($,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,q=K+Q[0].length-1,z=F0($,"(",")",q);if(z===-1){Q=J.exec($);continue}let U=$.slice(q+1,z),W=z+1,_=x1($,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 k3($,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=x1($,"switch","endswitch",Q);if(G===-1)return null;let K=$.slice(Q,G),q=[],z=0,U=null,W=0;while(z<K.length){let _=K.slice(z),B=_.match(/^@switch\s*\(/),j=_.match(/^@endswitch(?![a-z])/);if(B){if(W++,U)U.content+=B[0];z+=B[0].length;continue}if(j){if(W--,U)U.content+=j[0];z+=j[0].length;continue}if(W>0){if(U)U.content+=K[z];z++;continue}let H=_.match(/^@case\s*/),L=_.match(/^@default(?![a-z])/),F=_.match(/^@break(?![a-z])/);if(H&&_.startsWith("@case")){if(U)q.push(U);let O=z+H[0].length,V=H1(K,O);if(!V){z++;continue}U={type:"case",value:V.expression,content:""},z=V.endPos}else if(L&&_.startsWith("@default")){if(U)q.push(U);U={type:"default",content:""},z+=L[0].length}else if(F&&_.startsWith("@break"))z+=F[0].length;else{if(U)U.content+=K[z];z++}}if(U)q.push(U);return{fullMatch:$.slice(Z,G+10),expression:J.expression,cases:q,start:Z,end:G+10}}var X2=()=>{};function Bz($){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)==="{{{"?"{{{":"{!!":"{{",q=Q?K==="{{{"?"}}}":"!!}":"}}",z=G+K.length,U=jz($,z,q);if(U===-1){Y=G+1;continue}let W=$.slice(z,U).trim(),_=U+q.length;Z.push({fullMatch:$.slice(G,_),expression:W,start:G,end:_,isRaw:Q}),Y=_}return Z}function jz($,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 Hz($){let Z=E3($);if(Z.length===0)return{baseExpression:"",filters:[]};let Y=Z[0],X=[];for(let J=1;J<Z.length;J++){let Q=Oz(Z[J]);if(Q)X.push(Q)}return{baseExpression:Y,filters:X}}function Oz($){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=G2(G);return{name:X,args:K}}function G2($){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 Lz($,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 Fz($){let Z=[],X=new z4($).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 q=K.value;if(J++,J>=X.length)break;let z=X[J];if(z.type==="IDENTIFIER"){let U=z.value;if(J++,J<X.length&&X[J].type==="OPERATOR"&&X[J].value==="="){J++;let W=J<X.length?X[J].start:$.length,_=J2(X,J,$);J=_.nextIndex,Z.push({type:"variable",name:U,value:$.slice(W,_.endPos),exported:G,start:K.start,end:_.endPos})}}else if(z.type==="PUNCTUATION"&&(z.value==="{"||z.value==="[")){let U=z.start,W=z.value==="{"?"}":"]",_=F0($,z.value,W,U);if(_!==-1){let B=$.slice(U,_+1);if(J=Q2(X,_+1),J<X.length&&X[J].type==="OPERATOR"&&X[J].value==="="){J++;let j=J<X.length?X[J].start:$.length,H=J2(X,J,$);J=H.nextIndex;let L=`__stx_destructured_${Z.length}`;Z.push({type:"variable",name:L,value:`${$.slice(j,H.endPos)}; ${q} ${B} = ${L}`,exported:G,start:K.start,end:H.endPos})}}}}else if(K.type==="IDENTIFIER"&&K.value==="function"){let q=G?X[J-1].start:K.start;if(J++,J>=X.length)break;let z=X[J];if(z.type==="IDENTIFIER"){let U=z.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(q,_+1).replace(/^export\s+/,""),exported:G,start:q,end:_+1}),J=Q2(X,_+1)}}}else J++}return Z}function J2($,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 Q2($,Z){for(let Y=0;Y<$.length;Y++)if($[Y].start>=Z)return Y;return $.length}var K2=()=>{};var W4=C(()=>{X2();K2()});function Vz($,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=k3(X,G);if(!K)break;try{let q;if(Z0(K.expression))q=Y0(K.expression,Object.keys(Z))(...Object.values(Z));else q=$0(K.expression,Z);let z="",U=!1;for(let W of K.cases)if(W.type==="default"){if(!U)z=W.content.trim()}else try{let _;if(W.value&&Z0(W.value))_=Y0(W.value,Object.keys(Z))(...Object.values(Z));else if(W.value)_=$0(W.value,Z);if(q===_){z=W.content.trim(),U=!0;break}}catch{continue}X=X.substring(0,G)+z+X.substring(K.end),J=!0}catch(q){let z=q instanceof Error?q.message:String(q),U=a("Switch",`Error evaluating @switch expression: ${z}`,c.EVALUATION_ERROR);X=X.substring(0,G)+U+X.substring(K.end);break}}return X}function f1($,Z,Y){let X=$;X=Vz(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,q=H1(X,K+7);if(!q)break;let z=q.endPos,U=x1(X,"unless","endunless",z);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(z,U),_=q.expression,B=-1;{let H=0,L=/@(?:if|unless)\s*\(/g,F=/@(?:endif|endunless)(?![a-z])/g,O=/@else(?![a-z])/g,V=[],A;while((A=L.exec(W))!==null)V.push({pos:A.index,type:"open"});while((A=F.exec(W))!==null)V.push({pos:A.index,type:"close"});while((A=O.exec(W))!==null)V.push({pos:A.index,type:"else"});V.sort((w,R)=>w.pos-R.pos);for(let w of V)if(w.type==="open")H++;else if(w.type==="close")H--;else if(w.type==="else"&&H===0){B=w.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=b3(X,Z,Y),X=y3(X,Z,Y),X=S3(X,Z);let J=()=>{let Q=d5(X);if(Q.length===0)return!1;for(let G=Q.length-1;G>=0;G--){let K=Q[G];try{let q="",z=!1;for(let U of K.branches){if(z)break;if(U.type==="else")q=U.content,z=!0;else try{let W;if(U.condition&&Z0(U.condition))W=Y0(U.condition,Object.keys(Z))(...Object.values(Z));else if(U.condition)W=$0(U.condition,Z);if(W)q=U.content,z=!0}catch(W){q=a(U.type==="if"?"If":"Elseif",`Error in @${U.type}(${U.condition}): ${W instanceof Error?W.message:String(W)}`,c.EVALUATION_ERROR),z=!0}}X=X.substring(0,K.start)+q+X.substring(K.end)}catch(q){let z=q instanceof Error?q.message:String(q),U=a("If",`Error processing @if block: ${z}`,c.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 S3($,Z){let Y=$;function X(K,q,z,U){let W=1,_=U,B=new RegExp(`@${q}(?:\\s*\\(|\\s|$)`,"g"),j=new RegExp(`@${z}(?![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,q,z){let U=0,W=new RegExp(`@${q}(?:\\s*\\(|\\s|$)`,"g"),_=new RegExp(`@${z}(?![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 q=Y.match(/@auth(?:\s*\(|\s|(?=\n))/);if(!q||q.index===void 0)break;let z=q.index,U,W,_=Y.slice(z+5),B=q2(_);if(B)U=B.value,W=z+5+B.consumed;else W=z+5;let j=X(Y,"auth","endauth",W);if(j===-1){console.warn(`[stx] @auth directive at position ${z} 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),A=H.slice(L+5);O=F?V:A}else O=F?H:"";Y=Y.substring(0,z)+O+Y.substring(j+8),K=!0}}{let K=!0;while(K){K=!1;let q=Y.match(/@guest(?:\s*\(|\s|(?=\n))/);if(!q||q.index===void 0)break;let z=q.index,U,W,_=Y.slice(z+6),B=q2(_);if(B)U=B.value,W=z+6+B.consumed;else W=z+6;let j=X(Y,"guest","endguest",W);if(j===-1){console.warn(`[stx] @guest directive at position ${z} 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),A=H.slice(L+5);O=F?V:A}else O=F?H:"";Y=Y.substring(0,z)+O+Y.substring(j+9),K=!0}}function Q(K,q,z){if(Z.userCan&&typeof Z.userCan[K]==="boolean")return Z.userCan[K];if(Z.permissions?.check&&typeof Z.permissions.check==="function")try{let U=[K];if(q)U.push(q);if(z){let W=j1(z,Z);U.push(W)}return Z.permissions.check(...U)}catch{return!1}return!1}function G(K){let q=K.match(/^\s*\(\s*'([^']*)'(?:,\s*'([^']*)')?(?:,\s*([^)]*))?\)/);if(!q)return null;return{ability:q[1],type:q[2],id:q[3]?.trim(),paramsEnd:q[0].length}}for(let K of["can","cannot"]){let q=`end${K}`,z=K==="can"?"elsecan":"elsecannot",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,q,H);if(L===-1){console.warn(`[stx] @${K} directive at position ${_} has no matching @${q} \u2014 the block was skipped.`);break}let F=Y.slice(H,L),O=[],V=0,A=new RegExp(`@${K}\\s*\\(`,"g"),w=new RegExp(`@${q}(?![a-z])`,"g"),R=new RegExp(`@${z}\\s*\\(`,"g"),N=/@else(?![a-z])/g,M=[],T;while((T=A.exec(F))!==null)M.push({pos:T.index,type:"open"});while((T=w.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((y,P)=>y.pos-P.pos);for(let y of M){if(y.type==="open"){V++;continue}if(y.type==="close"){V--;continue}if(V===0)O.push(y)}let I=[],D=0;for(let y=0;y<O.length;y++){let P=O[y];if(I.push({content:F.slice(D,P.pos),ability:void 0}),P.type==="elseDirective"){let m=F.slice(P.pos+`@${z}`.length),g=G(m);if(g){I[I.length-1]={content:F.slice(D,P.pos)},D=P.pos+`@${z}`.length+g.paramsEnd,I.push({content:"",ability:g.ability,type:g.type,id:g.id}),I.pop();let u=O[y+1],s=u?u.pos:F.length;I.push({content:F.slice(D,s),ability:g.ability,type:g.type,id:g.id}),D=s}}else D=P.pos+5}if(D<F.length){let y=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),k=K==="can"?E:!E,S="";if(k)S=I[0]?.content||"";else{let y=!1;for(let P=1;P<I.length;P++){let m=I[P];if(m.isFinalElse){S=m.content,y=!0;break}if(m.ability){let g=Q(m.ability,m.type,m.id);if(K==="can"?g:!g){S=m.content,y=!0;break}}}if(!y&&I.length>0){let P=I[I.length-1];if(P.isFinalElse)S=P.content}}Y=Y.substring(0,_)+S+Y.substring(L+`@${q}`.length),U=!0}}return Y}function b3($,Z,Y){let X=$;function J(Q,G,K,q,z){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=x1(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,A=0,w=0;while(w<F.length){let R=F.indexOf("@",w);if(R===-1)break;let N=F.substring(R);if(/^@(?:if|unless|isset|empty)\s*\(/.test(N)){A++,w=R+1;continue}if(/^@(?:endif|endunless|endisset|endempty)(?![a-z])/.test(N)){A--,w=R+1;continue}if(A===0&&/^@else(?![a-z])/.test(N)){V=R;break}w=R+1}try{let R=q(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=a(z,`Error processing @${G} directive: ${N}`,c.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 y3($,Z,Y){let X=$,J="development";function Q(G,K,q,z){let U=new RegExp(`@${K}(?![a-z])`,"g"),W=new RegExp(`@${q}(?![a-z])`,"g"),_=new RegExp(`^@${K}(?![a-z])`),B=new RegExp(`^@${q}(?![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,z=J===E[2]}let V=1,A=O,w=-1;while(V>0&&A<j.length){U.lastIndex=A,W.lastIndex=A;let E=U.exec(j),k=W.exec(j),S=E?E.index:1/0,y=k?k.index:1/0;if(S<y)V++,A=S+E[0].length;else if(y<1/0){if(V--,V===0){w=y;break}A=y+k[0].length}else break}if(w===-1){console.warn(`[stx] @${K} directive at position ${F} has no matching @${q} \u2014 the block was skipped.`);break}let R=j.substring(O,w),N=-1,M=0,T=0;while(T<R.length){let E=R.indexOf("@",T);if(E===-1)break;let k=R.substring(E);if(_.test(k)){M++,T=E+1;continue}if(B.test(k)){M--,T=E+1;continue}if(M===0&&/^@else(?![a-z])/.test(k)){N=E;break}T=E+1}let I;if(N!==-1){let E=R.slice(0,N),k=R.slice(N+5);I=z?E:k}else I=z?R:"";let D=`@${q}`.length;j=j.substring(0,F)+I+j.substring(w+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 _4=C(()=>{$2();Q1();W4();w0()});function z2($=16){let Z=new Uint8Array($);return crypto.getRandomValues(Z),btoa(String.fromCharCode(...Z))}function g1($,Z){if(!$)return Z?.nonceGenerator?.()??z2();let Y=C3.get($);if(!Y)Y=Z?.nonceGenerator?.()??z2(),C3.set($,Y);return Y}function zw($){C3.delete($)}function U2($,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 v3($,Z){return`<meta http-equiv="Content-Security-Policy" content="${U2($,Z).replace(/&/g,"&").replace(/"/g,""")}">`}function Uw($){return{enabled:!0,directives:{strict:wz,moderate:P3,relaxed:Az,api:Rz}[$]||P3,useNonce:$==="strict",addMetaTag:!0}}function Ww($,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:[],q=[...new Set([...K,...J])];Y[Q]=q}}return Y}function W2($,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?g1(Y,Z):void 0,J=v3(Z.directives,X);return $.replace(/<head([^>]*)>/,`<head$1>
|
|
3774
|
-
${J}`)}function _w($,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 _2($,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?g1(Z,Q):void 0;return v3(Q.directives,G)}),J=J.replace(/@cspNonce\b/g,()=>{if(!Q?.enabled||!Q.useNonce)return"";return g1(Z,Q)}),Q?.enabled&&Q.useNonce)Z.cspNonce=g1(Z,Q);return J}function Bw(){return[Nz,Tz]}function jw($){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 Mz($=!1){return $?"Content-Security-Policy-Report-Only":"Content-Security-Policy"}function Hw($,Z){if(!$.enabled)return{};let Y=$.useNonce?g1(Z,$):void 0,X=U2($.directives,Y);return{[Mz($.reportOnly)]:X}}var C3,wz,P3,Az,Rz,Nz,Tz,Ow;var B2=C(()=>{C3=new WeakMap;wz={"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},P3={"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},Az={"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'"]},Rz={"default-src":["'none'"],"frame-ancestors":["'none'"]};Nz={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?g1(Y,Q):void 0;return v3(Q.directives,G)},hasEndTag:!1,description:"Insert Content-Security-Policy meta tag"},Tz={name:"cspNonce",handler:($,Z,Y,X)=>{let Q=Y.__stx_options?.csp;if(!Q?.enabled||!Q.useNonce)return"";return g1(Y,Q)},hasEndTag:!1,description:"Output the current CSP nonce value"};Ow={enabled:!1,reportOnly:!1,directives:P3,useNonce:!1,addMetaTag:!0}});import{Buffer as j2}from"buffer";import H2 from"crypto";function Dz($=Iz){let Z=H2.randomBytes(Math.ceil($/2)).toString("hex").slice(0,$);return _5=Z,Z}function Ez(){if(!_5)Dz();return _5}function ww(){_5=null}function Aw($){_5=$}function kz($=O2){let Z=Ez();return`<input type="hidden" name="${$}" value="${Z}">`}function L2($){return $.replace(/@csrf(?:\((['"])([^'"]*)\1\))?/g,(Z,Y,X)=>{return kz(X||O2)})}function Rw($,Z){let Y=Z??_5;if(!Y)return!1;let X=j2.from($),J=j2.from(Y);if(X.length!==J.length)return!1;return H2.timingSafeEqual(X,J)}var Iz=40,O2="_token",_5=null;var F2=()=>{};async function V2($,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 Sz(J,Q,Z,Y,X);else J=await bz(J,Q,Z,Y,X)}return J}async function Sz($,Z,Y,X,J){let{name:Q,handler:G}=Z,K=`@${Q}`,q=`@end${Q}`,z=$,U=k1(`${K}(?:\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\))?([\\s\\S]*?)${q}`,"g"),W=[],_=U.exec(z);while(_!==null){let[B,j="",H=""]=_,L=_.index||0;try{let F=j?w2(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:a("CustomDirective",`Error in @${Q}${j?`(${j})`:""}: ${O}`,c.EVALUATION_ERROR),startIndex:L})}_=U.exec(z)}for(let B=W.length-1;B>=0;B--){let{original:j,processed:H}=W[B];z=z.replace(j,H)}return z}async function bz($,Z,Y,X,J){let{name:Q,handler:G}=Z,K=$,q=k1(`@${Q}\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\)`,"g"),z=[],U=q.exec(K);while(U!==null){let[B,j=""]=U,H=U.index||0;try{let L=w2(j),F=await G("",L,Y,X);z.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);z.push({original:B,processed:a("CustomDirective",`Error in @${Q}(${j}): ${F}`,c.EVALUATION_ERROR),startIndex:H})}U=q.exec(K)}let W=k1(`@${Q}(?!\\w)(?!\\s*\\()`,"g"),_=W.exec(K);while(_!==null){let[B]=_,j=_.index||0;try{let H=await G("",[],Y,X);z.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);z.push({original:B,processed:a("CustomDirective",`Error in @${Q}: ${L}`,c.EVALUATION_ERROR),startIndex:j})}_=W.exec(K)}for(let B=z.length-1;B>=0;B--){let{original:j,processed:H}=z[B];K=K.replace(j,H)}return K}function w2($){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 A2=C(()=>{Q1();Z5()});var x3={};p(x3,{useTitle:()=>fz,useSeoMeta:()=>j4,usePageTitle:()=>fz,useHead:()=>d1,resetHead:()=>Pz,renderHtmlAttrs:()=>hz,renderHead:()=>gz,renderBodyAttrs:()=>dz,processTitleDirective:()=>lz,processMetaDirective:()=>pz,processHeadDirective:()=>uz,getPageMeta:()=>Cz,getHead:()=>m5,definePageMeta:()=>xz,applyHead:()=>mz});function m5(){return O1}function Cz(){return B4}function Pz(){O1={},yz.length=0,B4={}}function d1($){O1=vz(O1,$)}function vz($,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 j4($){let Z=[];if($.description)Z.push({name:"description",content:$.description});if($.keywords){let q=Array.isArray($.keywords)?$.keywords.join(", "):$.keywords;Z.push({name:"keywords",content:q})}if($.author)Z.push({name:"author",content:$.author});if($.robots)Z.push({name:"robots",content:$.robots});let 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 q of $.articleTags)Z.push({property:"article:tag",content:q});let K=[];if($.canonical)K.push({rel:"canonical",href:$.canonical});d1({title:$.title,titleTemplate:$.titleTemplate,meta:Z,link:K})}function xz($){if(B4={...B4,...$},$.title||$.description)j4({title:$.title,description:$.description})}function fz($){let Z=typeof $==="function"?$():$;d1({title:Z})}function gz($=O1){let Z=[];if($.title){let Y=$.title;if($.titleTemplate)Y=typeof $.titleTemplate==="function"?$.titleTemplate(Y):$.titleTemplate.replace("%s",Y);Z.push(`<title>${h1(Y)}</title>`)}if($.base){let Y=Object.entries($.base).map(([X,J])=>`${X}="${h1(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}="${h1(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}="${h1(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}="${h1(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,q=!1;while(Q<$.length){let z=$[Q];if(G&&q){q=!1,Q++;continue}if(G&&z==="\\"){q=!0,Q++;continue}if(q=!1,(z==='"'||z==="'"||z==="`")&&!G){G=z,Q++;continue}if(z===G&&G!=="`"){G=null,Q++;continue}if(G==="`"&&z==="$"&&$[Q+1]==="{"){K++,Q+=2;continue}if(K>0&&z==="}"){K--,Q++;continue}if(z==="`"&&G==="`"&&K===0){G=null,Q++;continue}if(G){Q++;continue}if(z===Z)J++;else if(z===Y){if(J--,J===0)return Q}Q++}return-1}function Z2($,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 E3($){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=_z($,Z);return Y.ok?{expression:Y.expression,endPos:Y.endPos}:null}function _z($,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 x1($,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 q=G.exec($),z=K.exec($),U=q?q.index:1/0,W=z?z.index:1/0;if(U<W)J++,Q=U+q[0].length;else if(W<1/0){if(J--,J===0)return W;Q=W+z[0].length}else break}return-1}function Y2($,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=x1($,"if","endif",Q);if(G===-1)return null;let K=$.slice(Q,G),q=[],z=0,U="if",W=J.expression,_=0,B=0;while(z<K.length){let j=K.indexOf("@",z);if(j===-1)break;z=j;let H=K.substring(j);if(/^@if\s*\(/.test(H)){B++,z++;continue}if(/^@endif(?![a-z])/.test(H)){B--,z+=6;continue}if(B===0){let L=H.match(/^@elseif\s*/);if(L){q.push({type:U,condition:W,content:K.substring(_,z),start:Q+_,end:Q+z});let F=z+L[0].length,O=H1(K,F);if(!O){z++;continue}U="elseif",W=O.expression,z=O.endPos,_=z;continue}else if(/^@else(?![a-z])/.test(H)){q.push({type:U,condition:W,content:K.substring(_,z),start:Q+_,end:Q+z}),U="else",W=void 0,z+=5,_=z;continue}}z++}return q.push({type:U,condition:W,content:K.slice(_),start:Q+_,end:Q+K.length}),{fullMatch:$.slice(Z,G+6),branches:q,start:Z,end:G+6}}function d5($){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=Y2($,X.index);if(Q)Z.push(Q),Y.lastIndex=Q.end;X=Y.exec($)}return Z}function U4($,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,q=K+Q[0].length-1,z=F0($,"(",")",q);if(z===-1){Q=J.exec($);continue}let U=$.slice(q+1,z),W=z+1,_=x1($,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 k3($,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=x1($,"switch","endswitch",Q);if(G===-1)return null;let K=$.slice(Q,G),q=[],z=0,U=null,W=0;while(z<K.length){let _=K.slice(z),B=_.match(/^@switch\s*\(/),j=_.match(/^@endswitch(?![a-z])/);if(B){if(W++,U)U.content+=B[0];z+=B[0].length;continue}if(j){if(W--,U)U.content+=j[0];z+=j[0].length;continue}if(W>0){if(U)U.content+=K[z];z++;continue}let H=_.match(/^@case\s*/),L=_.match(/^@default(?![a-z])/),F=_.match(/^@break(?![a-z])/);if(H&&_.startsWith("@case")){if(U)q.push(U);let O=z+H[0].length,V=H1(K,O);if(!V){z++;continue}U={type:"case",value:V.expression,content:""},z=V.endPos}else if(L&&_.startsWith("@default")){if(U)q.push(U);U={type:"default",content:""},z+=L[0].length}else if(F&&_.startsWith("@break"))z+=F[0].length;else{if(U)U.content+=K[z];z++}}if(U)q.push(U);return{fullMatch:$.slice(Z,G+10),expression:J.expression,cases:q,start:Z,end:G+10}}var X2=()=>{};function Bz($){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)==="{{{"?"{{{":"{!!":"{{",q=Q?K==="{{{"?"}}}":"!!}":"}}",z=G+K.length,U=jz($,z,q);if(U===-1){Y=G+1;continue}let W=$.slice(z,U).trim(),_=U+q.length;Z.push({fullMatch:$.slice(G,_),expression:W,start:G,end:_,isRaw:Q}),Y=_}return Z}function jz($,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 Hz($){let Z=E3($);if(Z.length===0)return{baseExpression:"",filters:[]};let Y=Z[0],X=[];for(let J=1;J<Z.length;J++){let Q=Oz(Z[J]);if(Q)X.push(Q)}return{baseExpression:Y,filters:X}}function Oz($){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=G2(G);return{name:X,args:K}}function G2($){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 Lz($,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 Fz($){let Z=[],X=new z4($).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 q=K.value;if(J++,J>=X.length)break;let z=X[J];if(z.type==="IDENTIFIER"){let U=z.value;if(J++,J<X.length&&X[J].type==="OPERATOR"&&X[J].value==="="){J++;let W=J<X.length?X[J].start:$.length,_=J2(X,J,$);J=_.nextIndex,Z.push({type:"variable",name:U,value:$.slice(W,_.endPos),exported:G,start:K.start,end:_.endPos})}}else if(z.type==="PUNCTUATION"&&(z.value==="{"||z.value==="[")){let U=z.start,W=z.value==="{"?"}":"]",_=F0($,z.value,W,U);if(_!==-1){let B=$.slice(U,_+1);if(J=Q2(X,_+1),J<X.length&&X[J].type==="OPERATOR"&&X[J].value==="="){J++;let j=J<X.length?X[J].start:$.length,H=J2(X,J,$);J=H.nextIndex;let L=`__stx_destructured_${Z.length}`;Z.push({type:"variable",name:L,value:`${$.slice(j,H.endPos)}; ${q} ${B} = ${L}`,exported:G,start:K.start,end:H.endPos})}}}}else if(K.type==="IDENTIFIER"&&K.value==="function"){let q=G?X[J-1].start:K.start;if(J++,J>=X.length)break;let z=X[J];if(z.type==="IDENTIFIER"){let U=z.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(q,_+1).replace(/^export\s+/,""),exported:G,start:q,end:_+1}),J=Q2(X,_+1)}}}else J++}return Z}function J2($,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 Q2($,Z){for(let Y=0;Y<$.length;Y++)if($[Y].start>=Z)return Y;return $.length}var K2=()=>{};var W4=P(()=>{X2();K2()});function Vz($,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=k3(X,G);if(!K)break;try{let q;if(Z0(K.expression))q=Y0(K.expression,Object.keys(Z))(...Object.values(Z));else q=$0(K.expression,Z);let z="",U=!1;for(let W of K.cases)if(W.type==="default"){if(!U)z=W.content.trim()}else try{let _;if(W.value&&Z0(W.value))_=Y0(W.value,Object.keys(Z))(...Object.values(Z));else if(W.value)_=$0(W.value,Z);if(q===_){z=W.content.trim(),U=!0;break}}catch{continue}X=X.substring(0,G)+z+X.substring(K.end),J=!0}catch(q){let z=q instanceof Error?q.message:String(q),U=a("Switch",`Error evaluating @switch expression: ${z}`,c.EVALUATION_ERROR);X=X.substring(0,G)+U+X.substring(K.end);break}}return X}function f1($,Z,Y){let X=$;X=Vz(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,q=H1(X,K+7);if(!q)break;let z=q.endPos,U=x1(X,"unless","endunless",z);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(z,U),_=q.expression,B=-1;{let H=0,L=/@(?:if|unless)\s*\(/g,F=/@(?:endif|endunless)(?![a-z])/g,O=/@else(?![a-z])/g,V=[],A;while((A=L.exec(W))!==null)V.push({pos:A.index,type:"open"});while((A=F.exec(W))!==null)V.push({pos:A.index,type:"close"});while((A=O.exec(W))!==null)V.push({pos:A.index,type:"else"});V.sort((w,R)=>w.pos-R.pos);for(let w of V)if(w.type==="open")H++;else if(w.type==="close")H--;else if(w.type==="else"&&H===0){B=w.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=b3(X,Z,Y),X=y3(X,Z,Y),X=S3(X,Z);let J=()=>{let Q=d5(X);if(Q.length===0)return!1;for(let G=Q.length-1;G>=0;G--){let K=Q[G];try{let q="",z=!1;for(let U of K.branches){if(z)break;if(U.type==="else")q=U.content,z=!0;else try{let W;if(U.condition&&Z0(U.condition))W=Y0(U.condition,Object.keys(Z))(...Object.values(Z));else if(U.condition)W=$0(U.condition,Z);if(W)q=U.content,z=!0}catch(W){q=a(U.type==="if"?"If":"Elseif",`Error in @${U.type}(${U.condition}): ${W instanceof Error?W.message:String(W)}`,c.EVALUATION_ERROR),z=!0}}X=X.substring(0,K.start)+q+X.substring(K.end)}catch(q){let z=q instanceof Error?q.message:String(q),U=a("If",`Error processing @if block: ${z}`,c.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 S3($,Z){let Y=$;function X(K,q,z,U){let W=1,_=U,B=new RegExp(`@${q}(?:\\s*\\(|\\s|$)`,"g"),j=new RegExp(`@${z}(?![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,q,z){let U=0,W=new RegExp(`@${q}(?:\\s*\\(|\\s|$)`,"g"),_=new RegExp(`@${z}(?![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 q=Y.match(/@auth(?:\s*\(|\s|(?=\n))/);if(!q||q.index===void 0)break;let z=q.index,U,W,_=Y.slice(z+5),B=q2(_);if(B)U=B.value,W=z+5+B.consumed;else W=z+5;let j=X(Y,"auth","endauth",W);if(j===-1){console.warn(`[stx] @auth directive at position ${z} 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),A=H.slice(L+5);O=F?V:A}else O=F?H:"";Y=Y.substring(0,z)+O+Y.substring(j+8),K=!0}}{let K=!0;while(K){K=!1;let q=Y.match(/@guest(?:\s*\(|\s|(?=\n))/);if(!q||q.index===void 0)break;let z=q.index,U,W,_=Y.slice(z+6),B=q2(_);if(B)U=B.value,W=z+6+B.consumed;else W=z+6;let j=X(Y,"guest","endguest",W);if(j===-1){console.warn(`[stx] @guest directive at position ${z} 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),A=H.slice(L+5);O=F?V:A}else O=F?H:"";Y=Y.substring(0,z)+O+Y.substring(j+9),K=!0}}function Q(K,q,z){if(Z.userCan&&typeof Z.userCan[K]==="boolean")return Z.userCan[K];if(Z.permissions?.check&&typeof Z.permissions.check==="function")try{let U=[K];if(q)U.push(q);if(z){let W=j1(z,Z);U.push(W)}return Z.permissions.check(...U)}catch{return!1}return!1}function G(K){let q=K.match(/^\s*\(\s*'([^']*)'(?:,\s*'([^']*)')?(?:,\s*([^)]*))?\)/);if(!q)return null;return{ability:q[1],type:q[2],id:q[3]?.trim(),paramsEnd:q[0].length}}for(let K of["can","cannot"]){let q=`end${K}`,z=K==="can"?"elsecan":"elsecannot",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,q,H);if(L===-1){console.warn(`[stx] @${K} directive at position ${_} has no matching @${q} \u2014 the block was skipped.`);break}let F=Y.slice(H,L),O=[],V=0,A=new RegExp(`@${K}\\s*\\(`,"g"),w=new RegExp(`@${q}(?![a-z])`,"g"),R=new RegExp(`@${z}\\s*\\(`,"g"),N=/@else(?![a-z])/g,M=[],T;while((T=A.exec(F))!==null)M.push({pos:T.index,type:"open"});while((T=w.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((y,v)=>y.pos-v.pos);for(let y of M){if(y.type==="open"){V++;continue}if(y.type==="close"){V--;continue}if(V===0)O.push(y)}let I=[],D=0;for(let y=0;y<O.length;y++){let v=O[y];if(I.push({content:F.slice(D,v.pos),ability:void 0}),v.type==="elseDirective"){let m=F.slice(v.pos+`@${z}`.length),g=G(m);if(g){I[I.length-1]={content:F.slice(D,v.pos)},D=v.pos+`@${z}`.length+g.paramsEnd,I.push({content:"",ability:g.ability,type:g.type,id:g.id}),I.pop();let u=O[y+1],s=u?u.pos:F.length;I.push({content:F.slice(D,s),ability:g.ability,type:g.type,id:g.id}),D=s}}else D=v.pos+5}if(D<F.length){let y=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),k=K==="can"?E:!E,S="";if(k)S=I[0]?.content||"";else{let y=!1;for(let v=1;v<I.length;v++){let m=I[v];if(m.isFinalElse){S=m.content,y=!0;break}if(m.ability){let g=Q(m.ability,m.type,m.id);if(K==="can"?g:!g){S=m.content,y=!0;break}}}if(!y&&I.length>0){let v=I[I.length-1];if(v.isFinalElse)S=v.content}}Y=Y.substring(0,_)+S+Y.substring(L+`@${q}`.length),U=!0}}return Y}function b3($,Z,Y){let X=$;function J(Q,G,K,q,z){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=x1(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,A=0,w=0;while(w<F.length){let R=F.indexOf("@",w);if(R===-1)break;let N=F.substring(R);if(/^@(?:if|unless|isset|empty)\s*\(/.test(N)){A++,w=R+1;continue}if(/^@(?:endif|endunless|endisset|endempty)(?![a-z])/.test(N)){A--,w=R+1;continue}if(A===0&&/^@else(?![a-z])/.test(N)){V=R;break}w=R+1}try{let R=q(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=a(z,`Error processing @${G} directive: ${N}`,c.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 y3($,Z,Y){let X=$,J="development";function Q(G,K,q,z){let U=new RegExp(`@${K}(?![a-z])`,"g"),W=new RegExp(`@${q}(?![a-z])`,"g"),_=new RegExp(`^@${K}(?![a-z])`),B=new RegExp(`^@${q}(?![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,z=J===E[2]}let V=1,A=O,w=-1;while(V>0&&A<j.length){U.lastIndex=A,W.lastIndex=A;let E=U.exec(j),k=W.exec(j),S=E?E.index:1/0,y=k?k.index:1/0;if(S<y)V++,A=S+E[0].length;else if(y<1/0){if(V--,V===0){w=y;break}A=y+k[0].length}else break}if(w===-1){console.warn(`[stx] @${K} directive at position ${F} has no matching @${q} \u2014 the block was skipped.`);break}let R=j.substring(O,w),N=-1,M=0,T=0;while(T<R.length){let E=R.indexOf("@",T);if(E===-1)break;let k=R.substring(E);if(_.test(k)){M++,T=E+1;continue}if(B.test(k)){M--,T=E+1;continue}if(M===0&&/^@else(?![a-z])/.test(k)){N=E;break}T=E+1}let I;if(N!==-1){let E=R.slice(0,N),k=R.slice(N+5);I=z?E:k}else I=z?R:"";let D=`@${q}`.length;j=j.substring(0,F)+I+j.substring(w+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 _4=P(()=>{$2();Q1();W4();w0()});function z2($=16){let Z=new Uint8Array($);return crypto.getRandomValues(Z),btoa(String.fromCharCode(...Z))}function g1($,Z){if(!$)return Z?.nonceGenerator?.()??z2();let Y=C3.get($);if(!Y)Y=Z?.nonceGenerator?.()??z2(),C3.set($,Y);return Y}function zw($){C3.delete($)}function U2($,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 v3($,Z){return`<meta http-equiv="Content-Security-Policy" content="${U2($,Z).replace(/&/g,"&").replace(/"/g,""")}">`}function Uw($){return{enabled:!0,directives:{strict:wz,moderate:P3,relaxed:Az,api:Rz}[$]||P3,useNonce:$==="strict",addMetaTag:!0}}function Ww($,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:[],q=[...new Set([...K,...J])];Y[Q]=q}}return Y}function W2($,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?g1(Y,Z):void 0,J=v3(Z.directives,X);return $.replace(/<head([^>]*)>/,`<head$1>
|
|
3774
|
+
${J}`)}function _w($,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 _2($,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?g1(Z,Q):void 0;return v3(Q.directives,G)}),J=J.replace(/@cspNonce\b/g,()=>{if(!Q?.enabled||!Q.useNonce)return"";return g1(Z,Q)}),Q?.enabled&&Q.useNonce)Z.cspNonce=g1(Z,Q);return J}function Bw(){return[Nz,Tz]}function jw($){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 Mz($=!1){return $?"Content-Security-Policy-Report-Only":"Content-Security-Policy"}function Hw($,Z){if(!$.enabled)return{};let Y=$.useNonce?g1(Z,$):void 0,X=U2($.directives,Y);return{[Mz($.reportOnly)]:X}}var C3,wz,P3,Az,Rz,Nz,Tz,Ow;var B2=P(()=>{C3=new WeakMap;wz={"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},P3={"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},Az={"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'"]},Rz={"default-src":["'none'"],"frame-ancestors":["'none'"]};Nz={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?g1(Y,Q):void 0;return v3(Q.directives,G)},hasEndTag:!1,description:"Insert Content-Security-Policy meta tag"},Tz={name:"cspNonce",handler:($,Z,Y,X)=>{let Q=Y.__stx_options?.csp;if(!Q?.enabled||!Q.useNonce)return"";return g1(Y,Q)},hasEndTag:!1,description:"Output the current CSP nonce value"};Ow={enabled:!1,reportOnly:!1,directives:P3,useNonce:!1,addMetaTag:!0}});import{Buffer as j2}from"buffer";import H2 from"crypto";function Dz($=Iz){let Z=H2.randomBytes(Math.ceil($/2)).toString("hex").slice(0,$);return _5=Z,Z}function Ez(){if(!_5)Dz();return _5}function ww(){_5=null}function Aw($){_5=$}function kz($=O2){let Z=Ez();return`<input type="hidden" name="${$}" value="${Z}">`}function L2($){return $.replace(/@csrf(?:\((['"])([^'"]*)\1\))?/g,(Z,Y,X)=>{return kz(X||O2)})}function Rw($,Z){let Y=Z??_5;if(!Y)return!1;let X=j2.from($),J=j2.from(Y);if(X.length!==J.length)return!1;return H2.timingSafeEqual(X,J)}var Iz=40,O2="_token",_5=null;var F2=()=>{};async function V2($,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 Sz(J,Q,Z,Y,X);else J=await bz(J,Q,Z,Y,X)}return J}async function Sz($,Z,Y,X,J){let{name:Q,handler:G}=Z,K=`@${Q}`,q=`@end${Q}`,z=$,U=k1(`${K}(?:\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\))?([\\s\\S]*?)${q}`,"g"),W=[],_=U.exec(z);while(_!==null){let[B,j="",H=""]=_,L=_.index||0;try{let F=j?w2(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:a("CustomDirective",`Error in @${Q}${j?`(${j})`:""}: ${O}`,c.EVALUATION_ERROR),startIndex:L})}_=U.exec(z)}for(let B=W.length-1;B>=0;B--){let{original:j,processed:H}=W[B];z=z.replace(j,H)}return z}async function bz($,Z,Y,X,J){let{name:Q,handler:G}=Z,K=$,q=k1(`@${Q}\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\)`,"g"),z=[],U=q.exec(K);while(U!==null){let[B,j=""]=U,H=U.index||0;try{let L=w2(j),F=await G("",L,Y,X);z.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);z.push({original:B,processed:a("CustomDirective",`Error in @${Q}(${j}): ${F}`,c.EVALUATION_ERROR),startIndex:H})}U=q.exec(K)}let W=k1(`@${Q}(?!\\w)(?!\\s*\\()`,"g"),_=W.exec(K);while(_!==null){let[B]=_,j=_.index||0;try{let H=await G("",[],Y,X);z.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);z.push({original:B,processed:a("CustomDirective",`Error in @${Q}: ${L}`,c.EVALUATION_ERROR),startIndex:j})}_=W.exec(K)}for(let B=z.length-1;B>=0;B--){let{original:j,processed:H}=z[B];K=K.replace(j,H)}return K}function w2($){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 A2=P(()=>{Q1();Z5()});var x3={};p(x3,{useTitle:()=>fz,useSeoMeta:()=>j4,usePageTitle:()=>fz,useHead:()=>d1,resetHead:()=>Pz,renderHtmlAttrs:()=>hz,renderHead:()=>gz,renderBodyAttrs:()=>dz,processTitleDirective:()=>lz,processMetaDirective:()=>pz,processHeadDirective:()=>uz,getPageMeta:()=>Cz,getHead:()=>m5,definePageMeta:()=>xz,applyHead:()=>mz});function m5(){return O1}function Cz(){return B4}function Pz(){O1={},yz.length=0,B4={}}function d1($){O1=vz(O1,$)}function vz($,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 j4($){let Z=[];if($.description)Z.push({name:"description",content:$.description});if($.keywords){let q=Array.isArray($.keywords)?$.keywords.join(", "):$.keywords;Z.push({name:"keywords",content:q})}if($.author)Z.push({name:"author",content:$.author});if($.robots)Z.push({name:"robots",content:$.robots});let 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 q of $.articleTags)Z.push({property:"article:tag",content:q});let K=[];if($.canonical)K.push({rel:"canonical",href:$.canonical});d1({title:$.title,titleTemplate:$.titleTemplate,meta:Z,link:K})}function xz($){if(B4={...B4,...$},$.title||$.description)j4({title:$.title,description:$.description})}function fz($){let Z=typeof $==="function"?$():$;d1({title:Z})}function gz($=O1){let Z=[];if($.title){let Y=$.title;if($.titleTemplate)Y=typeof $.titleTemplate==="function"?$.titleTemplate(Y):$.titleTemplate.replace("%s",Y);Z.push(`<title>${h1(Y)}</title>`)}if($.base){let Y=Object.entries($.base).map(([X,J])=>`${X}="${h1(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}="${h1(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}="${h1(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}="${h1(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 hz($=O1){if(!$.htmlAttrs)return"";return Object.entries($.htmlAttrs).map(([Z,Y])=>`${Z}="${h1(Y)}"`).join(" ")}function dz($=O1){if(!$.bodyAttrs)return"";return Object.entries($.bodyAttrs).map(([Z,Y])=>`${Z}="${h1(Y)}"`).join(" ")}function h1($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function mz($=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 uz($){let Z="";return{content:$.replace(/@head\s*([\s\S]*?)@endhead/g,(X,J)=>{return Z+=J.trim()+`
|
|
3776
|
-
`,""}),headContent:Z.trim()}}function lz($,Z){return $.replace(/@title\s*\(\s*(?:(['"`])(.+?)\1|([^)]+))\s*\)/g,(Y,X,J,Q)=>{let G=X?J:Z[(Q||"").trim()]??Q;return d1({title:G}),""})}function pz($,Z){return $.replace(/@meta\s*\(\s*(['"`])(.+?)\1\s*,\s*(?:(['"`])(.+?)\3|([^)]+))\s*\)/g,(Y,X,J,Q,G,K)=>{let q=Q?G:K,z=Q?q:Z[(q||"").trim()]??q,W=J.includes(":")?{property:J,content:z}:{name:J,content:z};return d1({meta:[W]}),""})}var O1,yz,B4;var u5=
|
|
3776
|
+
`,""}),headContent:Z.trim()}}function lz($,Z){return $.replace(/@title\s*\(\s*(?:(['"`])(.+?)\1|([^)]+))\s*\)/g,(Y,X,J,Q)=>{let G=X?J:Z[(Q||"").trim()]??Q;return d1({title:G}),""})}function pz($,Z){return $.replace(/@meta\s*\(\s*(['"`])(.+?)\1\s*,\s*(?:(['"`])(.+?)\3|([^)]+))\s*\)/g,(Y,X,J,Q,G,K)=>{let q=Q?G:K,z=Q?q:Z[(q||"").trim()]??q,W=J.includes(":")?{property:J,content:z}:{name:J,content:z};return d1({meta:[W]}),""})}var O1,yz,B4;var u5=P(()=>{O1={},yz=[],B4={}});import cz from"crypto";function R0($){return String($??"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function iz($){return{...f3,...$.forms?.classes}}function H4($,Z,Y,X){let J=$||Z;return Y?`${J} ${X}`:J}function nz(){return cz.randomUUID()}function kw($,Z,Y,X){let J=iz(X),Q=$;return Q=sz(Q,Z),Q=c5(Q,Z),Q=g3(Q,Z,J),Q=h3(Q,Z,J),Q}function c5($,Z){let Y=$;return Y=Y.replace(/@csrf/g,()=>{if(!Z.csrf||typeof Z.csrf!=="object"){let X=nz();Z.csrf={token:X}}if(Z.csrf.field)return Z.csrf.field;if(Z.csrf.token)return`<input type="hidden" name="_token" value="${R0(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="${R0(Q)}">`;return X}),Y}function g3($,Z,Y=f3){let X=$;return X=X.replace(/@form\(\s*(?:(?:'([^']+)'|"([^"]+)")\s*)?(?:,\s*(?:'([^']+)'|"([^"]+)")?)?\s*(?:,\s*\{([^}]+)\}\s*)?\)/g,(J,Q,G,K,q,z="")=>{let U=Q||G||"POST",W=K||q||"",_=L1(z),B=U.toUpperCase(),j=["GET","POST"].includes(B)?B:"POST",H=`<form method="${R0(j)}" action="${R0(W)}"${_?` ${_}`:""}>`;if(H+=`
|
|
3777
3777
|
${c5("@csrf",Z)}`,!["GET","POST"].includes(B))H+=`
|
|
3778
3778
|
${c5(`@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,q,z="")=>{let U=Q||G||"",W=K||q||"",_=L1(z),B=l5(U,Z),j=B!==void 0&&B!==null?B:W||"",H=_.match(/type=['"]([^'"]+)['"]/i),L=H?H[1]:"text",F=p5(U,Z),O=_.match(/class=['"]([^'"]+)['"]/i),V=H4(O?O[1]:"",Y.input,F,Y.inputError),A=_.replace(/class=['"][^'"]+['"]/i,"");return A=A.replace(/type=['"][^'"]+['"]/i,""),`<input type="${R0(L)}" name="${R0(U)}" value="${R0(j)}" class="${V}"${A?` ${A}`:""}>`}),X=X.replace(/@textarea\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)([\s\S]*?)@endtextarea/g,(J,Q,G="",K="")=>{let q=L1(G),z=l5(Q,Z)||K.trim(),U=p5(Q,Z),W=q.match(/class=['"]([^'"]+)['"]/i),_=H4(W?W[1]:"",Y.input,U,Y.inputError),B=q.replace(/class=['"][^'"]+['"]/i,"");return`<textarea name="${R0(Q)}" class="${_}"${B?` ${B}`:""}>${R0(z)}</textarea>`}),X=X.replace(/@select\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)([\s\S]*?)@endselect/g,(J,Q,G="",K)=>{let q=L1(G),z=l5(Q,Z),U=p5(Q,Z),W=q.match(/class=['"]([^'"]+)['"]/i),_=H4(W?W[1]:"",Y.input,U,Y.inputError),B=q.replace(/class=['"][^'"]+['"]/i,""),j=K;if(z!==void 0)j=K.replace(/(<option[^>]*value=['"]([^'"]+)['"][^>]*>)/gi,(H,L,F)=>{if((Array.isArray(z)?z.some((V)=>String(V)===F):String(z)===F)&&!L.includes("selected"))return L.replace(/(<option)/,"$1 selected");return H});return`<select name="${R0(Q)}" class="${_}"${B?` ${B}`:""}>${j}</select>`}),X=X.replace(/@checkbox\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?(?:,\s*\{([^}]+)\})?\)/g,(J,Q,G="1",K="")=>{let q=L1(K),z=l5(Q,Z),U=z!==void 0&&(Array.isArray(z)?z.some((j)=>String(j)===G):z===!0||String(z)===G),W=q.match(/class=['"]([^'"]+)['"]/i),_=W?W[1]:Y.checkInput,B=q.replace(/class=['"][^'"]+['"]/i,"");return`<input type="checkbox" name="${R0(Q)}" value="${R0(G)}" class="${_}"${U?" checked":""}${B?` ${B}`:""}>`}),X=X.replace(/@radio\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)/g,(J,Q,G,K="")=>{let q=L1(K),z=l5(Q,Z),U=z!==void 0&&z===G,W=q.match(/class=['"]([^'"]+)['"]/i),_=W?W[1]:Y.checkInput,B=q.replace(/class=['"][^'"]+['"]/i,"");return`<input type="radio" name="${R0(Q)}" value="${R0(G)}" class="${_}"${U?" checked":""}${B?` ${B}`:""}>`}),X=X.replace(/@file\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)/g,(J,Q,G="")=>{let K=L1(G),q=K.match(/accept=['"]([^'"]+)['"]/i),z=q?q[1]:"",U=K.includes("multiple"),W=p5(Q,Z),_=K.match(/class=['"]([^'"]+)['"]/i),B=H4(_?_[1]:"",Y.input,W,Y.inputError),j=K.replace(/class=['"][^'"]+['"]/gi,"").replace(/accept=['"][^'"]+['"]/gi,"").replace(/\bmultiple\b/gi,"").trim(),H=[`<input type="file" name="${R0(Q)}"`,`class="${B}"`];if(z)H.push(`accept="${R0(z)}"`);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 q=L1(G),z=q.match(/class=['"]([^'"]+)['"]/i),U=z?z[1]:Y.label,W=q.replace(/class=['"][^'"]+['"]/i,"");return`<label for="${R0(Q)}" class="${U}"${W?` ${W}`:""}>${K}</label>`}),X}function h3($,Z,Y=f3){return $.replace(/@error\(['"]([^'"]+)['"]\)([\s\S]*?)@enderror/g,(X,J,Q)=>{try{if(p5(J,Z))return Q.replace(/\{\{([^}]+)\}\}/g,(G,K)=>{try{if(K.trim()==="$message"||K.trim()==="message")return R2(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 R2(J,Z)}let q=K.trim();if(Z0(q)){let z=$0(q,Z);return z!==void 0?String(z):q}return q}catch{return K}});return""}catch(G){return console.error("Error processing @error directive:",G),X}})}function p5($,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 R2($,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 l5($,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 Sw($,Z){N2[$]=Z}function d3($){let[Z,...Y]=$.split(":"),X=Y.length>0?Y.join(":").split(","):[];return{name:Z.trim(),params:X}}function oz($,Z,Y,X={}){let J=[],Q=Y.split("|").map((G)=>G.trim()).filter(Boolean);for(let G of Q){let K=d3(G),q=N2[K.name];if(!q){console.warn(`Unknown validation rule: ${K.name}`);continue}if(K.name==="confirmed"){let U=`${$}_confirmation`;K.params=[X[U]]}let z=q(Z,K.params||[],$);if(z)J.push(K.message||z)}return{field:$,valid:J.length===0,errors:J}}function bw($,Z){let Y={};for(let[X,J]of Object.entries(Z)){let Q=oz(X,$[X],J,$);if(!Q.valid)Y[X]=Q.errors}return Y}function sz($,Z){return $.replace(/@validate\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]*)\})?\s*\)/g,(Y,X,J,Q)=>{let G=J.split("|").map((q)=>q.trim()),K=[];for(let q of G){let z=d3(q);switch(z.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"'),z.name==="integer")K.push('step="1"');break;case"min":if(z.params?.[0])K.push(`minlength="${z.params[0]}"`);break;case"max":if(z.params?.[0])K.push(`maxlength="${z.params[0]}"`);break;case"regex":if(z.params?.[0])K.push(`pattern="${z.params[0]}"`);break}}return`<!-- @validate:${X}:${J} -->${K.length>0?`<!-- attrs:${K.join(" ")} -->`:""}`})}function yw($){T2[$.name]=$}function rz($,Z,Y={}){let X=[],J=Z.split("|").map((Q)=>Q.trim());for(let Q of J){let G=d3(Q),K=T2[G.name];if(!K){console.warn(`Unknown validation rule: ${G.name}`);continue}let q=K.validate($,G.params||[],Y);if(q!==!0)X.push(q)}return{valid:X.length===0,errors:X}}function Cw($,Z){let Y={},X=!0;for(let[J,Q]of Object.entries(Z)){let G=rz($[J],Q,$);if(!G.valid)X=!1,Y[J]=G.errors}return{valid:X,errors:Y}}function Pw($,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 f3,N2,T2;var M2=C(()=>{w0();f3={input:"form-control",inputError:"is-invalid",checkInput:"form-check-input",label:"form-label",errorFeedback:"invalid-feedback"};N2={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}};T2={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={};p(DU,{waitForLocale:()=>GU,processTranslateDirective:()=>c3,preloadTranslationsBackground:()=>JU,preloadTranslations:()=>E2,loadTranslationLazy:()=>n5,loadTranslation:()=>S2,isLoading:()=>YU,isLoaded:()=>XU,isICUFormat:()=>C2,getTranslationSync:()=>k2,getTranslationCacheStats:()=>ez,getTranslationAsync:()=>QU,getTranslation:()=>O4,getLoadingState:()=>ZU,getLoadingLocales:()=>KU,formatICU:()=>b2,defaultI18nConfig:()=>L4,createTranslateFilter:()=>IU,clearTranslationCache:()=>tz,cancelPendingLoads:()=>qU});import u3 from"path";async function az(){if(i5!==void 0)return i5;try{i5=(await import("@stacksjs/ts-i18n")).loadLocale??null}catch{i5=null}return i5}function tz($){if($)delete S0[$];else for(let Z of Object.keys(S0))delete S0[Z]}function ez(){let $=Object.entries(S0).map(([Z,Y])=>({locale:Z,loadedAt:new Date(Y.loadedAt),keyCount:D2(Y.translations)}));return{size:Object.keys(S0).length,locales:Object.keys(S0),entries:$}}function D2($,Z=0){for(let Y of Object.values($))if(Z++,Y&&typeof Y==="object"&&!Array.isArray(Y))Z=D2(Y,Z);return Z}function $U($,Z=0){if(Z<=0)return!1;return Date.now()-$.loadedAt>Z}function ZU($){if(S0[$])return"loaded";return K1[$]||"idle"}function YU($){return K1[$]==="loading"}function XU($){return!!S0[$]}async function E2($,Z){let{locales:Y,parallel:X=!0,priority:J={},onLocaleLoaded:Q,onComplete:G,onError:K}=$,q=X?Y:[...Y].sort((z,U)=>(J[U]||0)-(J[z]||0));if(X){let z=q.map(async(U)=>{try{await n5(U,Z),Q?.(U)}catch(W){K?.(U,W instanceof Error?W:Error(String(W)))}});await Promise.all(z)}else for(let z of q)try{await n5(z,Z),Q?.(z)}catch(U){K?.(z,U instanceof Error?U:Error(String(U)))}G?.()}function JU($,Z){queueMicrotask(()=>{E2($,Z).catch((Y)=>{if(Z.debug)console.error("Background preload error:",Y)})})}async function n5($,Z){if({...L4,...Z.i18n}.cache&&S0[$]){let J=S0[$],Q=Z.i18n?.cacheMaxAge??0;if(!$U(J,Q))return J.translations}if(n0[$]?.state==="loading")return n0[$].promise;K1[$]="loading";let X=l3($,Z).then((J)=>{return K1[$]="loaded",delete n0[$],J}).catch((J)=>{throw K1[$]="error",n0[$]={promise:X,state:"error",error:J instanceof Error?J:Error(String(J))},J});return n0[$]={promise:X,state:"loading"},X}function k2($){return S0[$]?.translations}async function QU($,Z){let Y=k2($);if(Y)return Y;return n5($,Z)}async function GU($,Z){if(S0[$])return S0[$].translations;if(n0[$]){if(Z)return Promise.race([n0[$].promise,new Promise((Y,X)=>setTimeout(()=>X(Error(`Timeout waiting for locale: ${$}`)),Z))]);return n0[$].promise}throw Error(`Locale "${$}" is not loading. Call loadTranslationLazy first.`)}function KU(){return Object.entries(K1).filter(([$,Z])=>Z==="loading").map(([$])=>$)}function qU($){if($)delete n0[$],delete K1[$];else{for(let Z of Object.keys(n0))delete n0[Z];for(let Z of Object.keys(K1))delete K1[Z]}}async function l3($,Z){let Y={...L4,...Z.i18n},X=u3.isAbsolute(Y.translationsDir)?Y.translationsDir:u3.resolve(Z.root||process.cwd(),Y.translationsDir);try{let J=await az(),Q=J?await J($,{translationsDir:X,defaultLocale:Y.defaultLocale,sources:BU(Y.format)}):await zU($,Y,X);if(Q===void 0){if($!==Y.defaultLocale)return l3(Y.defaultLocale,Z);return{}}let G=Q;if(Y.cache)S0[$]={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 l3(Y.defaultLocale,Z);return{}}}async function zU($,Z,Y){let X=u3.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,q=Q.match(/^(\s*)(\S[^:]*):\s*(.*)$/);if(q){let[,,z,U]=q,W=z.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 S2($,Z){return n5($,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 b2($,Z={}){return y2($,Z)}function y2($,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=p3(Z),Q=`=${X}`;if(J[Q])return m3(J[Q],X,Y);let G=VU(X);if(J[G])return m3(J[G],X,Y);if(J.other)return m3(J.other,X,Y);return String(X)}function m3($,Z,Y){let X=$.replace(/#/g,String(Z));return y2(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=p3(Z);if(X[Y])return X[Y];return X.other||String($)}function AU($,Z){let Y=Number($)||0,X=p3(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 p3($){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 C2($){return/\{[^}]+,\s*(?:plural|select|selectordinal|number|date|time)\s*,/.test($)}function O4($,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(C2(G))return b2(G,X);if(G.includes("|")&&"count"in X){let K=Number(X.count),q=G.split("|");G=jU(q,K)}for(let[K,q]of Object.entries(X)){let z=K.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");G=G.replace(new RegExp(`:${z}`,"g"),String(q))}return G}async function c3($,Z,Y,X){let J=$,Q=/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\})\s*)?\)([\s\S]*?)@endtranslate/g,G={...L4,...X.i18n},K=await S2(G.locale,X);Z.__translations=K,Z.__locale=G.locale,Z.__i18nConfig=G,J=await I2(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 O0(_,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 O4(W,K,G.fallbackToKey,H)||B.trim()}catch(H){if(X.debug)console.error("Error processing @translate directive:",H);return a("Translate",`Error in @translate('${W}'): ${H instanceof Error?H.message:String(H)}`,c.EVALUATION_ERROR)}});let q=/@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(q)];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 I2(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 O0(_,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 O4(W,K,G.fallbackToKey,j)}catch(j){if(X.debug)console.error("Error processing @translate directive:",j);return a("Translate",`Error in @translate('${W}'): ${j instanceof Error?j.message:String(j)}`,c.EVALUATION_ERROR)}}),J}async function I2($,Z,Y){let X=[];return $.replace(Z,(Q,...G)=>{let K=Y(Q,...G).then((q)=>({match:Q,replacement:q}));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 O4(Y,$,Z,X)}}var i5,L4,S0,n0,K1;var P2=
|
|
3830
|
+
</script>`.trim()}var f3,N2,T2;var M2=P(()=>{w0();f3={input:"form-control",inputError:"is-invalid",checkInput:"form-check-input",label:"form-label",errorFeedback:"invalid-feedback"};N2={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}};T2={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={};p(DU,{waitForLocale:()=>GU,processTranslateDirective:()=>c3,preloadTranslationsBackground:()=>JU,preloadTranslations:()=>E2,loadTranslationLazy:()=>n5,loadTranslation:()=>S2,isLoading:()=>YU,isLoaded:()=>XU,isICUFormat:()=>C2,getTranslationSync:()=>k2,getTranslationCacheStats:()=>ez,getTranslationAsync:()=>QU,getTranslation:()=>O4,getLoadingState:()=>ZU,getLoadingLocales:()=>KU,formatICU:()=>b2,defaultI18nConfig:()=>L4,createTranslateFilter:()=>IU,clearTranslationCache:()=>tz,cancelPendingLoads:()=>qU});import u3 from"path";async function az(){if(i5!==void 0)return i5;try{i5=(await import("@stacksjs/ts-i18n")).loadLocale??null}catch{i5=null}return i5}function tz($){if($)delete S0[$];else for(let Z of Object.keys(S0))delete S0[Z]}function ez(){let $=Object.entries(S0).map(([Z,Y])=>({locale:Z,loadedAt:new Date(Y.loadedAt),keyCount:D2(Y.translations)}));return{size:Object.keys(S0).length,locales:Object.keys(S0),entries:$}}function D2($,Z=0){for(let Y of Object.values($))if(Z++,Y&&typeof Y==="object"&&!Array.isArray(Y))Z=D2(Y,Z);return Z}function $U($,Z=0){if(Z<=0)return!1;return Date.now()-$.loadedAt>Z}function ZU($){if(S0[$])return"loaded";return K1[$]||"idle"}function YU($){return K1[$]==="loading"}function XU($){return!!S0[$]}async function E2($,Z){let{locales:Y,parallel:X=!0,priority:J={},onLocaleLoaded:Q,onComplete:G,onError:K}=$,q=X?Y:[...Y].sort((z,U)=>(J[U]||0)-(J[z]||0));if(X){let z=q.map(async(U)=>{try{await n5(U,Z),Q?.(U)}catch(W){K?.(U,W instanceof Error?W:Error(String(W)))}});await Promise.all(z)}else for(let z of q)try{await n5(z,Z),Q?.(z)}catch(U){K?.(z,U instanceof Error?U:Error(String(U)))}G?.()}function JU($,Z){queueMicrotask(()=>{E2($,Z).catch((Y)=>{if(Z.debug)console.error("Background preload error:",Y)})})}async function n5($,Z){if({...L4,...Z.i18n}.cache&&S0[$]){let J=S0[$],Q=Z.i18n?.cacheMaxAge??0;if(!$U(J,Q))return J.translations}if(n0[$]?.state==="loading")return n0[$].promise;K1[$]="loading";let X=l3($,Z).then((J)=>{return K1[$]="loaded",delete n0[$],J}).catch((J)=>{throw K1[$]="error",n0[$]={promise:X,state:"error",error:J instanceof Error?J:Error(String(J))},J});return n0[$]={promise:X,state:"loading"},X}function k2($){return S0[$]?.translations}async function QU($,Z){let Y=k2($);if(Y)return Y;return n5($,Z)}async function GU($,Z){if(S0[$])return S0[$].translations;if(n0[$]){if(Z)return Promise.race([n0[$].promise,new Promise((Y,X)=>setTimeout(()=>X(Error(`Timeout waiting for locale: ${$}`)),Z))]);return n0[$].promise}throw Error(`Locale "${$}" is not loading. Call loadTranslationLazy first.`)}function KU(){return Object.entries(K1).filter(([$,Z])=>Z==="loading").map(([$])=>$)}function qU($){if($)delete n0[$],delete K1[$];else{for(let Z of Object.keys(n0))delete n0[Z];for(let Z of Object.keys(K1))delete K1[Z]}}async function l3($,Z){let Y={...L4,...Z.i18n},X=u3.isAbsolute(Y.translationsDir)?Y.translationsDir:u3.resolve(Z.root||process.cwd(),Y.translationsDir);try{let J=await az(),Q=J?await J($,{translationsDir:X,defaultLocale:Y.defaultLocale,sources:BU(Y.format)}):await zU($,Y,X);if(Q===void 0){if($!==Y.defaultLocale)return l3(Y.defaultLocale,Z);return{}}let G=Q;if(Y.cache)S0[$]={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 l3(Y.defaultLocale,Z);return{}}}async function zU($,Z,Y){let X=u3.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,q=Q.match(/^(\s*)(\S[^:]*):\s*(.*)$/);if(q){let[,,z,U]=q,W=z.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 S2($,Z){return n5($,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 b2($,Z={}){return y2($,Z)}function y2($,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=p3(Z),Q=`=${X}`;if(J[Q])return m3(J[Q],X,Y);let G=VU(X);if(J[G])return m3(J[G],X,Y);if(J.other)return m3(J.other,X,Y);return String(X)}function m3($,Z,Y){let X=$.replace(/#/g,String(Z));return y2(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=p3(Z);if(X[Y])return X[Y];return X.other||String($)}function AU($,Z){let Y=Number($)||0,X=p3(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 p3($){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 C2($){return/\{[^}]+,\s*(?:plural|select|selectordinal|number|date|time)\s*,/.test($)}function O4($,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(C2(G))return b2(G,X);if(G.includes("|")&&"count"in X){let K=Number(X.count),q=G.split("|");G=jU(q,K)}for(let[K,q]of Object.entries(X)){let z=K.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");G=G.replace(new RegExp(`:${z}`,"g"),String(q))}return G}async function c3($,Z,Y,X){let J=$,Q=/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\})\s*)?\)([\s\S]*?)@endtranslate/g,G={...L4,...X.i18n},K=await S2(G.locale,X);Z.__translations=K,Z.__locale=G.locale,Z.__i18nConfig=G,J=await I2(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 O0(_,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 O4(W,K,G.fallbackToKey,H)||B.trim()}catch(H){if(X.debug)console.error("Error processing @translate directive:",H);return a("Translate",`Error in @translate('${W}'): ${H instanceof Error?H.message:String(H)}`,c.EVALUATION_ERROR)}});let q=/@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(q)];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 I2(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 O0(_,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 O4(W,K,G.fallbackToKey,j)}catch(j){if(X.debug)console.error("Error processing @translate directive:",j);return a("Translate",`Error in @translate('${W}'): ${j instanceof Error?j.message:String(j)}`,c.EVALUATION_ERROR)}}),J}async function I2($,Z,Y){let X=[];return $.replace(Z,(Q,...G)=>{let K=Y(Q,...G).then((q)=>({match:Q,replacement:q}));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 O4(Y,$,Z,X)}}var i5,L4,S0,n0,K1;var P2=P(()=>{Q1();w0();L4={defaultLocale:"en",locale:"en",translationsDir:"translations",format:"yaml",fallbackToKey:!0,cache:!0},S0={},n0={},K1={}});var o3={};p(o3,{streamingSuspenseDirective:()=>f2,streamToResponse:()=>hU,streamTemplateSimple:()=>vU,streamTemplate:()=>kU,renderStreamingPage:()=>bU,registerStreamingDirectives:()=>fU,processStreamDirectives:()=>CU,processSectionDirectives:()=>gU,islandDirective:()=>g2,generateHydrationRuntime:()=>dU,extractStreamBoundaries:()=>PU,createStreamRenderer:()=>xU,buildSuspenseResolveScript:()=>n3,SUSPENSE_RESOLVER_RUNTIME:()=>x2});import F4 from"path";function EU($){let Z=[],Y=0,X;v2.lastIndex=0;while((X=v2.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={...v1,...Y,streaming:{...i3,...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),q=K?K[1]:"",z=G.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),U={...Z,__filename:$,__dirname:F4.dirname($)};if(q.trim())await u1(q,U,$);let W=EU(z),_=new Set;if(!W.some((j)=>j.type==="suspense")){let j=X.streaming?.strategy||"auto",H=new RegExp(m1.source,"g");if(!(j!=="manual"&&H.test(z))){let F=await B0(z,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(m1.source,"g"),V;while((V=O.exec(z))!==null)F.push({name:V[1],content:V[2],start:V.index,end:V.index+V[0].length});let A=0;for(let w of F){if(w.start>A){let N=z.slice(A,w.start);if(N.trim()){let M=await B0(N,U,$,X,_);Q.enqueue(M),await new Promise((T)=>setTimeout(T,0))}}let R=await B0(w.content,U,$,X,_);Q.enqueue(R),await new Promise((N)=>setTimeout(N,0)),A=w.end}if(A<z.length){let w=z.slice(A);if(w.trim()){let R=await B0(w,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 B0(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,B0(L.content,U,$,X,_))}Q.enqueue(`
|
|
3834
3834
|
<script>
|
|
@@ -4014,25 +4014,25 @@ else {
|
|
|
4014
4014
|
}
|
|
4015
4015
|
};
|
|
4016
4016
|
})();
|
|
4017
|
-
</script>`,yU,f2,g2;var s3=
|
|
4017
|
+
</script>`,yU,f2,g2;var s3=P(()=>{g5();l0();V4();A0();i3={enabled:!0,bufferSize:16384,strategy:"auto",timeout:30000},m1=/<!-- @section:([\w-]+) -->([\s\S]*?)<!-- @endsection:\1 -->/g,v2=/<!-- @suspense:([\w-]+) -->([\s\S]*?)<!-- @endsuspense:\1 -->/g;yU=/@stream\s*\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)@endstream/gi;f2={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} -->`}},g2={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),q=K?K[1].trim():"",z=K?$.replace(K[0],""):$;return`<div data-island="${J}" data-island-id="${G}" data-priority="${Q}">
|
|
4018
4018
|
${z}
|
|
4019
4019
|
<script type="application/json" data-island-props="${G}">
|
|
4020
4020
|
${q?`{${q}}`:"{}"}
|
|
4021
4021
|
</script>
|
|
4022
4022
|
</div>`}}});var m2={};p(m2,{warnUnbalancedTags:()=>r3,findUnbalancedTags:()=>d2});function F1($){return $.replace(/[^\n]/g," ")}function d2($){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]==="/",q=Q[2],z=Q[3]==="/";if(mU.has(q.toLowerCase()))continue;if(z)continue;if(K)X.set(q,(X.get(q)??0)+1);else{let U=Y.get(q);if(U)U.count++;else{let W=Z.slice(0,Q.index).split(`
|
|
4023
|
-
`).length;Y.set(q,{count:1,firstLine:W})}}}let G=[];for(let K of new Set([...Y.keys(),...X.keys()])){if(uU.has(K.toLowerCase()))continue;let q=Y.get(K)?.count??0,z=X.get(K)??0;if(q!==z)G.push({tag:K,opened:q,closed:z,firstOpenLine:Y.get(K)?.firstLine??0})}return G}function r3($,Z){let Y;try{Y=d2($)}catch{return}if(Y.length===0)return;let X=`${Z}:${$.length}`;if(h2.has(X))return;h2.add(X);let J=Z?Z.split(/[/\\]/).pop()||Z:"template";for(let{tag:Q,opened:G,closed:K,firstOpenLine:q}of Y)if(G>K){let z=q?` (first opened at line ${q})`:"";console.warn(`[stx] ${J}: <${Q}> ${G} opened, ${K} closed \u2014 an unclosed <${Q}>${z} 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,h2;var a3=
|
|
4024
|
-
`}if(V){let S=[];if(U==="avif"||U==="auto"){let y=o5(X,A,w,B,"avif"),
|
|
4023
|
+
`).length;Y.set(q,{count:1,firstLine:W})}}}let G=[];for(let K of new Set([...Y.keys(),...X.keys()])){if(uU.has(K.toLowerCase()))continue;let q=Y.get(K)?.count??0,z=X.get(K)??0;if(q!==z)G.push({tag:K,opened:q,closed:z,firstOpenLine:Y.get(K)?.firstLine??0})}return G}function r3($,Z){let Y;try{Y=d2($)}catch{return}if(Y.length===0)return;let X=`${Z}:${$.length}`;if(h2.has(X))return;h2.add(X);let J=Z?Z.split(/[/\\]/).pop()||Z:"template";for(let{tag:Q,opened:G,closed:K,firstOpenLine:q}of Y)if(G>K){let z=q?` (first opened at line ${q})`:"";console.warn(`[stx] ${J}: <${Q}> ${G} opened, ${K} closed \u2014 an unclosed <${Q}>${z} 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,h2;var a3=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"]);h2=new Set});import m0 from"path";import t3 from"fs";function u2($){return $.split("-").map((Z)=>Z.charAt(0).toUpperCase()+Z.slice(1)).join("")}function l2($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}class p2{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(),u2(J),l2(J)];for(let j of B)if(Q.has(j))return Q.get(j)}let G=[...new Set([`${J}.stx`,`${u2(J)}.stx`,`${l2(J)}.stx`])];if(J.startsWith("./")||J.startsWith("../")){let B=m0.resolve(m0.dirname(Z),`${J}.stx`);if(await n(B))return B;return null}let K=[],q=Y.componentsDir||"",z=X?.__originalFilePath;if(z)K.push(m0.join(m0.dirname(z),"components"));if(q)K.push(q);let U=m0.join(m0.dirname(Z),"components");if(!K.includes(U))K.push(U);let W=process.cwd(),_=[m0.resolve(W,"src/components"),m0.resolve(W,"components"),m0.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=m0.join(B,j);if(await n(H))return H}try{if(!t3.statSync(B,{throwIfNoEntry:!1})?.isDirectory())continue;let H=t3.readdirSync(B,{withFileTypes:!0});for(let L of H)if(L.isDirectory()){let F=m0.join(B,L.name);for(let O of G){let V=m0.join(F,O);if(await n(V))return V}}}catch{}}return null}}var b0;var e3=P(()=>{A0();b0=new p2});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 $6;var Z6=P(()=>{$6={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,q=[];if(X.reactive)q.push(`:href="${V1(X.value)}"`);else q.push(`href="${V1(X.value)}"`);if(J)q.push(`class="${V1(J)}"`);if(q.push("data-stx-link"),q.push(`data-stx-active-class="${V1(Q)}"`),q.push(`data-stx-exact-active-class="${V1(G)}"`),K)q.push("data-stx-prefetch");let z=new Set(["to","class","className","activeClass","exactActiveClass","prefetch"]);for(let[U,W]of Object.entries($.static)){if(z.has(U))continue;if(typeof W==="boolean"){if(W)q.push(V1(U))}else q.push(`${V1(U)}="${V1(W)}"`)}return`<a ${q.join(" ")}>${Z}</a>`}}});function j0($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function E0($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}function X6($,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 c2($){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 J6($,Z,Y,X){return Z.map((J)=>`${o5($,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`${o5($,G,void 0,X,J)} ${Q}x`}).join(", ")}function o5($,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,Y6,Q6;var G6=P(()=>{pU={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},Y6=[320,640,768,1024,1280,1536,1920];Q6={name:"StxImage",aliases:["stx-image","stx-img"],render($,Z,Y){let X=E0($,"src")||"",J=E0($,"alt")||"",Q=E0($,"width"),G=E0($,"height"),K=E0($,"sizes"),q=E0($,"srcset"),z=E0($,"densities"),U=E0($,"format"),W=E0($,"placeholder"),_=E0($,"placeholderColor")||"#e5e7eb",B=E0($,"provider"),j=E0($,"class")||E0($,"className")||"",H=E0($,"style")||"",L=E0($,"quality"),F=X6($,"lazy",!0),O=X6($,"preload",!1),V=X6($,"picture",!1)||!!U,A=Q?Number.parseInt(Q):void 0,w=G?Number.parseInt(G):void 0,R=q||"",N="";if(!R&&K)R=J6(X,Y6,B,U),N=c2(K);else if(!R&&z){let S=z.split(/\s+/).map((y)=>Number.parseFloat(y.replace("x","")));R=cU(X,S,A,B,U)}else if(K)N=c2(K);let M=[];if(H)M.push(H);if(A&&w)M.push(`aspect-ratio:${A}/${w}`);if(W==="blur"||W==="color"||W==="thumbhash"){let S=iU(A||16,w||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(${j0(W)})`),M.push("background-size:cover"),M.push("background-repeat:no-repeat");let T=o5(X,A,w,B,U),I=[];if(I.push(`src="${j0(T)}"`),I.push(`alt="${j0(J)}"`),Q)I.push(`width="${j0(Q)}"`);if(G)I.push(`height="${j0(G)}"`);if(F)I.push('loading="lazy"');if(I.push('decoding="async"'),j)I.push(`class="${j0(j)}"`);if(M.length>0)I.push(`style="${j0(M.join(";"))}"`);if(R)I.push(`srcset="${j0(R)}"`);if(N)I.push(`sizes="${j0(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,y]of Object.entries($.static)){if(D.has(S))continue;if(typeof y==="boolean"){if(y)I.push(j0(S))}else I.push(`${j0(S)}="${j0(y)}"`)}let E=`<img ${I.join(" ")} />`,k="";if(O){let y=U==="webp"?"image/webp":U==="avif"?"image/avif":"";k=`<link rel="preload" as="image" href="${j0(T)}"${y?` type="${y}"`:""}${R?` imagesrcset="${j0(R)}"`:""}${N?` imagesizes="${j0(N)}"`:""} />
|
|
4024
|
+
`}if(V){let S=[];if(U==="avif"||U==="auto"){let y=o5(X,A,w,B,"avif"),v=R?J6(X,Y6,B,"avif"):`${y}`;S.push(`<source type="image/avif" srcset="${j0(v)}"${N?` sizes="${j0(N)}"`:""} />`)}if(U==="webp"||U==="auto"){let y=o5(X,A,w,B,"webp"),v=R?J6(X,Y6,B,"webp"):`${y}`;S.push(`<source type="image/webp" srcset="${j0(v)}"${N?` sizes="${j0(N)}"`:""} />`)}return`${k}<picture>
|
|
4025
4025
|
${S.join(`
|
|
4026
4026
|
`)}
|
|
4027
4027
|
${E}
|
|
4028
|
-
</picture>`}return`${k}${E}`}}});function w1($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function B5($,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>",K6;var q6=
|
|
4028
|
+
</picture>`}return`${k}${E}`}}});function w1($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function B5($,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>",K6;var q6=P(()=>{K6={name:"SafeImage",aliases:["safe-image","safe-img"],render($,Z,Y){let X=B5($,"src")||"",J=B5($,"alt")||"",Q=B5($,"fallback")||"/images/safe-image-default.svg",G=B5($,"class")||B5($,"className")||"",K=B5($,"fallbackClassName")||"",q=[];if(q.push(`src="${w1(X)}"`),q.push(`alt="${w1(J)}"`),G)q.push(`class="${w1(G)}"`);if(q.push(`data-fallback="${w1(Q)}"`),K)q.push(`data-fallback-class="${w1(K)}"`);q.push('onerror="window.__stxSafeImageHandler(this)"');let z=new Set(["src","alt","fallback","class","className","fallbackClassName"]);for(let[_,B]of Object.entries($.static)){if(z.has(_))continue;if(typeof B==="boolean"){if(B)q.push(w1(_))}else q.push(`${w1(_)}="${w1(B)}"`)}let U=`<img ${q.join(" ")} />`,W=Y.context;if(!W.__safeImageHandlerEmitted)return W.__safeImageHandlerEmitted=!0,`${nU}${U}`;return U}}});function z6($){return $.replace(/[;{}()]/g,"").replace(/url/gi,"")}function s5($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}function w4($,Z,Y){let X=s5($,Z);if(X!==void 0){let J=Number.parseInt(X,10);if(!Number.isNaN(J))return J}return Y}var U6;var W6=P(()=>{U6={name:"StxLoadingIndicator",aliases:["stx-loading-indicator"],render($,Z,Y){let X=z6(s5($,"color")||"#6366f1"),J=z6(s5($,"initialColor")||s5($,"initial-color")||""),Q=z6(s5($,"height")||"3px"),G=w4($,"duration",2000),K=w4($,"throttle",200),q=w4($,"zIndex",999999)||w4($,"z-index",999999),z=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:${z};z-index:${q};transform:scaleX(0);transform-origin:left;transition:transform 0.1s ease-out,opacity 0.3s ease;opacity:0;pointer-events:none">
|
|
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 o0($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function n2($,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=n2($,Z);if(X!==void 0){let J=Number.parseInt(X,10);if(!Number.isNaN(J))return J}return Y}var i2,_6;var B6=
|
|
4035
|
+
</script>`}}});function o0($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function n2($,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=n2($,Z);if(X!==void 0){let J=Number.parseInt(X,10);if(!Number.isNaN(J))return J}return Y}var i2,_6;var B6=P(()=>{i2={"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%)"},_6={name:"StxToast",aliases:["stx-toast"],render($,Z,Y){let X=o0(n2($,"position")||"top-right"),J=oU($,"max",5),Q=i2[X]||i2["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 A4($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}var o2,j6;var H6=
|
|
4043
|
+
</style>`}}});function A4($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}var o2,j6;var H6=P(()=>{o2={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)"},j6={name:"StxModal",aliases:["stx-modal"],render($,Z,Y){let X=A4($,"id");if(!X)return console.warn('[stx] <StxModal> requires an "id" prop'),"<!-- StxModal: missing id prop -->";let J=o0(X),Q=A4($,"size")||"md",G=A4($,"closeOnBackdrop")!=="false",K=A4($,"closeOnEscape")!=="false",q=o2[Q]||o2.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="${q};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 j5($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}var s2,O6;var L6=
|
|
4052
|
+
</style>`}}});function j5($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}var s2,O6;var L6=P(()=>{s2={sm:"16rem",md:"24rem",lg:"32rem",xl:"40rem"},O6={name:"StxDrawer",aliases:["stx-drawer"],render($,Z,Y){let X=j5($,"id");if(!X)return console.warn('[stx] <StxDrawer> requires an "id" prop'),"<!-- StxDrawer: missing id prop -->";let J=o0(X),Q=j5($,"side")||"right",G=j5($,"size")||"md",K=j5($,"closeOnBackdrop")!=="false",q=j5($,"closeOnEscape")!=="false",z=j5($,"overlay")!=="false",U=s2[G]||s2.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="${q}" style="display:none;position:fixed;inset:0;z-index:99999;${z?"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={};p(eU,{preloadIconCollection:()=>a2,IconBuiltin:()=>R4});import{existsSync as sU,readFileSync as rU}from"fs";function r2($){try{return K0.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(l1.has($))return l1.get($);let Z=r2($);if(!Z)return null;try{let Y=JSON.parse(rU(Z,"utf8"));return l1.set($,Y.icons),Y.icons}catch{return null}}async function tU($){if(l1.has($))return l1.get($);let Z=r2($);if(!Z)return null;try{let Y=await Bun.file(Z).json();return l1.set($,Y.icons),Y.icons}catch{return null}}function H5($,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 a2($="lucide"){await tU($)}var l1,R4;var F6=
|
|
4061
|
+
</style>`}}});var eU={};p(eU,{preloadIconCollection:()=>a2,IconBuiltin:()=>R4});import{existsSync as sU,readFileSync as rU}from"fs";function r2($){try{return K0.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(l1.has($))return l1.get($);let Z=r2($);if(!Z)return null;try{let Y=JSON.parse(rU(Z,"utf8"));return l1.set($,Y.icons),Y.icons}catch{return null}}async function tU($){if(l1.has($))return l1.get($);let Z=r2($);if(!Z)return null;try{let Y=await Bun.file(Z).json();return l1.set($,Y.icons),Y.icons}catch{return null}}function H5($,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 a2($="lucide"){await tU($)}var l1,R4;var F6=P(()=>{l1=new Map;R4={name:"Icon",aliases:["icon","stx-icon"],render($,Z,Y){let X=H5($,"name")??H5($,"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=o0(H5($,"size")||"24"),K=o0(H5($,"color")||"currentColor"),q=o0(H5($,"class")||""),z=o0(H5($,"style")||""),U=l1.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=q?` class="${q}"`:"",F=z?` style="${z}"`:"";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 t2($,...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 e2($,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 V6;var w6=
|
|
4164
|
+
`}function t2($,...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 e2($,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 V6;var w6=P(()=>{V6={name:"Suspense",aliases:["suspense"],render($,Z,Y){let X=e2(Z,"fallback"),J=X.rest,Q=e2(J,"error"),G=Q.rest,K=X.region??t2($,"fallback")??'<div class="stx-suspense-loading">Loading\u2026</div>',q=Q.region??t2($,"errorFallback","error-fallback")??'<div class="stx-suspense-error">Something went wrong.</div>';return`<div data-stx-suspense><div data-stx-suspense-fallback>${K}</div><div data-stx-suspense-error hidden>${q}</div><div data-stx-suspense-content hidden>${G}</div></div>`}}});function N4($,...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 A6;var R6=P(()=>{A6={name:"TransitionGroup",aliases:["transition-group"],render($,Z,Y){let X=(N4($,"name")||"v").replace(/["'<>]/g,""),J=(N4($,"tag")||"div").replace(/[^a-z0-9-]/gi,"")||"div",Q=N4($,"class"),G=N4($,"id"),K=[`data-stx-transition-group="${X}"`,Q?`class="${Q}"`:"",G?`id="${G}"`:""].filter(Boolean).join(" ");return`<${J} ${K}>${Z}</${J}>`}}});function $Y(){b0.registerBuiltin($6),b0.registerBuiltin(Q6),b0.registerBuiltin(K6),b0.registerBuiltin(U6),b0.registerBuiltin(_6),b0.registerBuiltin(j6),b0.registerBuiltin(O6),b0.registerBuiltin(R4),b0.registerBuiltin(V6),b0.registerBuiltin(A6)}var ZY=P(()=>{Z6();G6();q6();W6();B6();H6();L6();F6();w6();R6();e3();Z6();G6();q6();W6();B6();H6();L6();F6();w6();R6()});import O5 from"path";function N6($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1-$2").toLowerCase()}function T6($,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 q=K[1];if(Y&&Y.has(q.toLowerCase())){let H=Q+1+q.length;while(H<$.length&&$[H]!==">")H++;J=H+1;continue}let z=Q+1+q.length,U=null,W=z,_=-1,B=!1;while(z<$.length){let H=$[z];if(U){if(H==="\\"&&z+1<$.length){z+=2;continue}if(H===U)U=null;z++;continue}if(H==='"'||H==="'"){U=H,z++;continue}if(H==="/"&&z+1<$.length&&$[z+1]===">"){_=z+2,B=!0;break}if(H===">"){_=z+1;break}z++}if(_===-1){J=Q+1;continue}let j=$.slice(W,B?_-2:_-1).trim();if(B)X.push({fullMatch:$.slice(Q,_),tagName:q,attributes:j,content:"",startIndex:Q,endIndex:_,isSelfClosing:!0}),J=_;else{let H=`<${q}`,L=`</${q}>`,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 A=$.slice(_,V),w=V+L.length;X.push({fullMatch:$.slice(Q,w),tagName:q,attributes:j,content:A,startIndex:Q,endIndex:w,isSelfClosing:!1}),J=w}}return X}function M6($,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 gA($){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 hA($,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),q=G.match(/initial-color=["']([^"']+)["']/i),z=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(q?.[1]||""),height:B(z?.[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 dA($,Z,Y,X,J){let Q=$;if(!Z.__importedComponents)Z.__importedComponents=new Map;let G=Z.__importedComponents,K=/@import\s*\(\s*([^)]+)\s*\)/g,q;while((q=K.exec(Q))!==null){let[z,U]=q,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=[O5.resolve(O5.dirname(Y),`${_}.stx`),O5.resolve(O5.dirname(Y),_),O5.resolve(X.componentsDir||"components",`${_}.stx`),O5.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(z,""),K.lastIndex=0}return Q}async function mA($,Z,Y,X,J,Q){let G=$;if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,q=/@component\s*\(/g,z;while((z=q.exec(G))!==null){let U=z.index,W=U+z[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){q.lastIndex=0;continue}let F=L[1],O,V=j.slice(L[0].length),A=V.match(/^\s*,\s*/);if(A)O=V.slice(A[0].length).trim();let w={};if(O)try{w=O0(O,Z)}catch(E){let k=E instanceof Error?E.message:String(E);G=G.replace(G.substring(U,H),`[Error parsing component props: ${k}]`);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 q1(F,w,R,X,Z,Y,J,K,Q);G=G.substring(0,U)+D+G.substring(N),q.lastIndex=0}return G}async function uA($,Z,Y,X,J,Q){let G=$;if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,q=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"]),z=w$(G);return G=z.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,q),G=A$(G,z.scripts),G;async function B(j,H,L,F){let O=j,V=T6(O,H,F);for(let A=V.length-1;A>=0;A--){let w=V[A],R=L?N6(w.tagName):w.tagName,N=ZW(w.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]=M6(D,J);continue}if(I.startsWith(":")){let E=I.slice(1),k=D==="true"?E:D;try{if(!Z0(k)){if(J.debug)console.error(`Unsafe expression in :${E} binding: ${k}`);M[E]=D}else{let S=Y0(k,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 k=E[1];if(!Z0(k)){if(J.debug)console.error(`Unsafe expression in ${I}: ${k}`);M[I]=D}else{let S=Y0(k,Object.keys(Z));M[I]=S(...Object.values(Z))}}catch(k){if(J.debug)console.error(`Error evaluating expression for ${I}:`,k);M[I]=D}else{let k=D,S=/\{\{\s*([\s\S]+?)\s*\}\}/g,y;while((y=S.exec(D))!==null)try{let P=y[1];if(!Z0(P)){if(J.debug)console.error(`Unsafe expression in ${I}: ${P}`);continue}let g=Y0(P,Object.keys(Z))(...Object.values(Z));k=k.replace(y[0],String(g??""))}catch(P){if(J.debug)console.error(`Error evaluating expression in ${I}:`,P)}M[I]=k}}else M[I]=D}let T=await q1(R,M,w.content,X,Z,Y,J,K,Q);O=O.substring(0,w.startIndex)+T+O.substring(w.endIndex)}return O}}var YY=C(()=>{w0();A0();R$()});var qY={};p(qY,{processESImports:()=>KY,processComponents:()=>M4});import T4 from"fs";import f0 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,q)=>q.toUpperCase())};for(let[G,K]of Object.entries($)){let q=G.startsWith("x-")&&!J.has(G)&&!G.startsWith("x-bind:")&&!G.startsWith("x-on:")?`:${G.slice(2)}`:G;if(q.startsWith("@")){X.events[q]=K;continue}if(q.startsWith("__stx_")){let z=Q(q.slice(6));X.serverDynamic[z]=M6(K,Y);continue}if(q.startsWith(":")){let z=Q(q.slice(1)),U=K==="true"?z:K;try{if(!Z0(U)){if(Y.debug)console.error(`Unsafe expression in :${z} binding: ${U}`);X.clientReactive[z]=U;continue}let W=Object.keys(Z),B=Y0(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[z]=U;continue}}X.serverDynamic[z]=B}catch{X.clientReactive[z]=U}continue}if(typeof K==="string"&&K.includes("{{")&&K.includes("}}")){let z=K.match(/^\{\{\s*([\s\S]+?)\s*\}\}$/);if(z)try{let U=z[1];if(Z0(U)){let _=Y0(U,Object.keys(Z))(...Object.values(Z));X.static[q]=_!=null?String(_):""}else{if(Y.debug)console.error(`Unsafe expression in ${q}: ${U}`);X.static[q]=K}}catch(U){if(Y.debug)console.error(`Error evaluating expression for ${q}:`,U);X.static[q]=K}else{let U=K,W=/\{\{\s*([\s\S]+?)\s*\}\}/g,_;while((_=W.exec(K))!==null)try{let B=_[1];if(!Z0(B)){if(Y.debug)console.error(`Unsafe expression in ${q}: ${B}`);continue}let H=Y0(B,Object.keys(Z))(...Object.values(Z));U=U.replace(_[0],String(H??""))}catch(B){if(Y.debug)console.error(`Error evaluating expression in ${q}:`,B)}X.static[q]=U}continue}X.static[q]=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 JY($){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=QY.get($);if(Z)return Z;let Y=new Map,X=[f0.join($,"src"),f0.join($,"dist"),$];function J(Q,G){if(G>6)return;let K;try{K=T4.readdirSync(Q,{withFileTypes:!0})}catch{return}for(let q of K){let z=f0.join(Q,q.name);if(q.isDirectory()){if(q.name==="node_modules"||q.name.startsWith("."))continue;J(z,G+1)}else if(q.isFile()&&q.name.endsWith(".stx")){let U=q.name.slice(0,-4);if(!Y.has(U))Y.set(U,z);let W=U.toLowerCase();if(!Y.has(W))Y.set(W,z);let _=U.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(!Y.has(_))Y.set(_,z)}}}for(let Q of X)if(J(Q,0),Y.size>0)break;return QY.set($,Y),Y}function KW($,Z){if($.startsWith(".")||$.startsWith("/"))return null;let Y=Z;while(!0){let X=f0.join(Y,"node_modules",$);try{if(T4.statSync(X).isDirectory())return X}catch{}let J=f0.dirname(Y);if(J===Y)return null;Y=J}}async function KY($,Z,Y,X,J){if(!$.includes("import"))return $;if(!Z.__importedComponents)Z.__importedComponents=new Map;let Q=Z.__importedComponents,G=f0.dirname(Y),K=$,q=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi;return K=K.replace(q,(z,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,A=null,w=null;if(V.startsWith(".")||V.startsWith("/")){let M=f0.resolve(G,V);if(M.endsWith(".stx"))w=M;else{let T=`${M}.stx`;try{if(T4.statSync(T).isFile())w=T}catch{try{if(T4.statSync(M).isDirectory())A=M}catch{}}}}else A=KW(V,G);if(!A&&!w)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&&w)N(O,w),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=A?GW(A):null;for(let{source:I,local:D}of M){let E=null;if(w)E=w;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 z;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 qW($,Z,Y,X,J){let Q=$;if(!Z.__importedComponents)Z.__importedComponents=new Map;let G=Z.__importedComponents,K=/@import\s*\(\s*([^)]+)\s*\)/g,q;while((q=K.exec(Q))!==null){let[z,U]=q,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=[f0.resolve(f0.dirname(Y),`${_}.stx`),f0.resolve(f0.dirname(Y),_),f0.resolve(X.componentsDir||"components",`${_}.stx`),f0.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(z,""),K.lastIndex=0}return Q}async function zW($,Z,Y,X,J){let Q=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,q=/@component\s*\(/g,z;while((z=q.exec(Q))!==null){let U=z.index,W=U+z[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){q.lastIndex=0;continue}let F=L[1],O,V=j.slice(L[0].length),A=V.match(/^\s*,\s*/);if(A)O=V.slice(A[0].length).trim();let w={};if(O)try{w=O0(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 q1(F,w,R,G,Z,Y,X,K,J);Q=Q.substring(0,U)+I+Q.substring(N),q.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,q=w$(Q);return Q=q.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=A$(Q,q.scripts),Q;async function _(B,j,H,L){if(!B)return B;let F=B,O=T6(F,j,L);for(let V=O.length-1;V>=0;V--){let A=O[V],w=H?N6(A.tagName):A.tagName,R=JW(A.attributes),N=XW(R,Z,X),M=b0.getBuiltin(A.tagName),T=M?await zY(w,G,Z,Y,X):!1;if(M&&!T){let k={context:Z,filePath:Y,options:X,dependencies:J},S=M.render(N,A.content,k);if(Object.keys(N.clientReactive).length>0)S=GY(S,N.clientReactive);if(Object.keys(N.events).length>0){let y=Object.entries(N.events).map(([P,m])=>`${P}="${JY(m)}"`).join(" ");S=S.replace(/^(\s*<[a-zA-Z][a-zA-Z0-9-]*)/,`$1 ${y}`)}F=F.substring(0,A.startIndex)+S+F.substring(A.endIndex);continue}let I={};for(let[k,S]of Object.entries(N.static))I[k]=S;for(let[k,S]of Object.entries(N.serverDynamic))I[k]=S;let E=await q1(w,I,A.content,G,Z,Y,X,K,J);if(Object.keys(N.clientReactive).length>0)E=GY(E,N.clientReactive);if(Object.keys(N.events).length>0){let k=E.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(k){let S=Object.entries(N.events).map(([P,m])=>`${P}="${JY(m)}"`).join(" "),y=k[1].length+k[2].length;E=E.substring(0,y)+" "+S+E.substring(y)}}F=F.substring(0,A.startIndex)+E+F.substring(A.endIndex)}return F}}function GY($,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 M4($,Z,Y,X,J){if(!XY)$Y(),XY=!0;let Q=await KY($,Z,Y,X,J);Q=await qW(Q,Z,Y,X,J),Q=await zW(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 XY=!1,YW,QY;var I6=C(()=>{e3();ZY();YY();A0();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"]);QY=new Map});var I4={};p(I4,{stripTypeScript:()=>jY,hasVariables:()=>VY,extractVariables:()=>u1,extractScriptFromTemplate:()=>FY,convertToCommonJS:()=>E6});import L5 from"path";import r5 from"process";function WW($){let Z=[],Y=0,X=$.split(`
|
|
4172
|
+
</script>`}),J}async function dA($,Z,Y,X,J){let Q=$;if(!Z.__importedComponents)Z.__importedComponents=new Map;let G=Z.__importedComponents,K=/@import\s*\(\s*([^)]+)\s*\)/g,q;while((q=K.exec(Q))!==null){let[z,U]=q,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=[O5.resolve(O5.dirname(Y),`${_}.stx`),O5.resolve(O5.dirname(Y),_),O5.resolve(X.componentsDir||"components",`${_}.stx`),O5.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(z,""),K.lastIndex=0}return Q}async function mA($,Z,Y,X,J,Q){let G=$;if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,q=/@component\s*\(/g,z;while((z=q.exec(G))!==null){let U=z.index,W=U+z[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){q.lastIndex=0;continue}let F=L[1],O,V=j.slice(L[0].length),A=V.match(/^\s*,\s*/);if(A)O=V.slice(A[0].length).trim();let w={};if(O)try{w=O0(O,Z)}catch(E){let k=E instanceof Error?E.message:String(E);G=G.replace(G.substring(U,H),`[Error parsing component props: ${k}]`);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 q1(F,w,R,X,Z,Y,J,K,Q);G=G.substring(0,U)+D+G.substring(N),q.lastIndex=0}return G}async function uA($,Z,Y,X,J,Q){let G=$;if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,q=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"]),z=w$(G);return G=z.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,q),G=A$(G,z.scripts),G;async function B(j,H,L,F){let O=j,V=T6(O,H,F);for(let A=V.length-1;A>=0;A--){let w=V[A],R=L?N6(w.tagName):w.tagName,N=ZW(w.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]=M6(D,J);continue}if(I.startsWith(":")){let E=I.slice(1),k=D==="true"?E:D;try{if(!Z0(k)){if(J.debug)console.error(`Unsafe expression in :${E} binding: ${k}`);M[E]=D}else{let S=Y0(k,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 k=E[1];if(!Z0(k)){if(J.debug)console.error(`Unsafe expression in ${I}: ${k}`);M[I]=D}else{let S=Y0(k,Object.keys(Z));M[I]=S(...Object.values(Z))}}catch(k){if(J.debug)console.error(`Error evaluating expression for ${I}:`,k);M[I]=D}else{let k=D,S=/\{\{\s*([\s\S]+?)\s*\}\}/g,y;while((y=S.exec(D))!==null)try{let v=y[1];if(!Z0(v)){if(J.debug)console.error(`Unsafe expression in ${I}: ${v}`);continue}let g=Y0(v,Object.keys(Z))(...Object.values(Z));k=k.replace(y[0],String(g??""))}catch(v){if(J.debug)console.error(`Error evaluating expression in ${I}:`,v)}M[I]=k}}else M[I]=D}let T=await q1(R,M,w.content,X,Z,Y,J,K,Q);O=O.substring(0,w.startIndex)+T+O.substring(w.endIndex)}return O}}var YY=P(()=>{w0();A0();R$()});var qY={};p(qY,{processESImports:()=>KY,processComponents:()=>M4});import T4 from"fs";import f0 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,q)=>q.toUpperCase())};for(let[G,K]of Object.entries($)){let q=G.startsWith("x-")&&!J.has(G)&&!G.startsWith("x-bind:")&&!G.startsWith("x-on:")?`:${G.slice(2)}`:G;if(q.startsWith("@")){X.events[q]=K;continue}if(q.startsWith("__stx_")){let z=Q(q.slice(6));X.serverDynamic[z]=M6(K,Y);continue}if(q.startsWith(":")){let z=Q(q.slice(1)),U=K==="true"?z:K;try{if(!Z0(U)){if(Y.debug)console.error(`Unsafe expression in :${z} binding: ${U}`);X.clientReactive[z]=U;continue}let W=Object.keys(Z),B=Y0(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[z]=U;continue}}X.serverDynamic[z]=B}catch{X.clientReactive[z]=U}continue}if(typeof K==="string"&&K.includes("{{")&&K.includes("}}")){let z=K.match(/^\{\{\s*([\s\S]+?)\s*\}\}$/);if(z)try{let U=z[1];if(Z0(U)){let _=Y0(U,Object.keys(Z))(...Object.values(Z));X.static[q]=_!=null?String(_):""}else{if(Y.debug)console.error(`Unsafe expression in ${q}: ${U}`);X.static[q]=K}}catch(U){if(Y.debug)console.error(`Error evaluating expression for ${q}:`,U);X.static[q]=K}else{let U=K,W=/\{\{\s*([\s\S]+?)\s*\}\}/g,_;while((_=W.exec(K))!==null)try{let B=_[1];if(!Z0(B)){if(Y.debug)console.error(`Unsafe expression in ${q}: ${B}`);continue}let H=Y0(B,Object.keys(Z))(...Object.values(Z));U=U.replace(_[0],String(H??""))}catch(B){if(Y.debug)console.error(`Error evaluating expression in ${q}:`,B)}X.static[q]=U}continue}X.static[q]=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 JY($){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=QY.get($);if(Z)return Z;let Y=new Map,X=[f0.join($,"src"),f0.join($,"dist"),$];function J(Q,G){if(G>6)return;let K;try{K=T4.readdirSync(Q,{withFileTypes:!0})}catch{return}for(let q of K){let z=f0.join(Q,q.name);if(q.isDirectory()){if(q.name==="node_modules"||q.name.startsWith("."))continue;J(z,G+1)}else if(q.isFile()&&q.name.endsWith(".stx")){let U=q.name.slice(0,-4);if(!Y.has(U))Y.set(U,z);let W=U.toLowerCase();if(!Y.has(W))Y.set(W,z);let _=U.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(!Y.has(_))Y.set(_,z)}}}for(let Q of X)if(J(Q,0),Y.size>0)break;return QY.set($,Y),Y}function KW($,Z){if($.startsWith(".")||$.startsWith("/"))return null;let Y=Z;while(!0){let X=f0.join(Y,"node_modules",$);try{if(T4.statSync(X).isDirectory())return X}catch{}let J=f0.dirname(Y);if(J===Y)return null;Y=J}}async function KY($,Z,Y,X,J){if(!$.includes("import"))return $;if(!Z.__importedComponents)Z.__importedComponents=new Map;let Q=Z.__importedComponents,G=f0.dirname(Y),K=$,q=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi;return K=K.replace(q,(z,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,A=null,w=null;if(V.startsWith(".")||V.startsWith("/")){let M=f0.resolve(G,V);if(M.endsWith(".stx"))w=M;else{let T=`${M}.stx`;try{if(T4.statSync(T).isFile())w=T}catch{try{if(T4.statSync(M).isDirectory())A=M}catch{}}}}else A=KW(V,G);if(!A&&!w)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&&w)N(O,w),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=A?GW(A):null;for(let{source:I,local:D}of M){let E=null;if(w)E=w;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 z;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 qW($,Z,Y,X,J){let Q=$;if(!Z.__importedComponents)Z.__importedComponents=new Map;let G=Z.__importedComponents,K=/@import\s*\(\s*([^)]+)\s*\)/g,q;while((q=K.exec(Q))!==null){let[z,U]=q,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=[f0.resolve(f0.dirname(Y),`${_}.stx`),f0.resolve(f0.dirname(Y),_),f0.resolve(X.componentsDir||"components",`${_}.stx`),f0.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(z,""),K.lastIndex=0}return Q}async function zW($,Z,Y,X,J){let Q=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,q=/@component\s*\(/g,z;while((z=q.exec(Q))!==null){let U=z.index,W=U+z[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){q.lastIndex=0;continue}let F=L[1],O,V=j.slice(L[0].length),A=V.match(/^\s*,\s*/);if(A)O=V.slice(A[0].length).trim();let w={};if(O)try{w=O0(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 q1(F,w,R,G,Z,Y,X,K,J);Q=Q.substring(0,U)+I+Q.substring(N),q.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,q=w$(Q);return Q=q.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=A$(Q,q.scripts),Q;async function _(B,j,H,L){if(!B)return B;let F=B,O=T6(F,j,L);for(let V=O.length-1;V>=0;V--){let A=O[V],w=H?N6(A.tagName):A.tagName,R=JW(A.attributes),N=XW(R,Z,X),M=b0.getBuiltin(A.tagName),T=M?await zY(w,G,Z,Y,X):!1;if(M&&!T){let k={context:Z,filePath:Y,options:X,dependencies:J},S=M.render(N,A.content,k);if(Object.keys(N.clientReactive).length>0)S=GY(S,N.clientReactive);if(Object.keys(N.events).length>0){let y=Object.entries(N.events).map(([v,m])=>`${v}="${JY(m)}"`).join(" ");S=S.replace(/^(\s*<[a-zA-Z][a-zA-Z0-9-]*)/,`$1 ${y}`)}F=F.substring(0,A.startIndex)+S+F.substring(A.endIndex);continue}let I={};for(let[k,S]of Object.entries(N.static))I[k]=S;for(let[k,S]of Object.entries(N.serverDynamic))I[k]=S;let E=await q1(w,I,A.content,G,Z,Y,X,K,J);if(Object.keys(N.clientReactive).length>0)E=GY(E,N.clientReactive);if(Object.keys(N.events).length>0){let k=E.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(k){let S=Object.entries(N.events).map(([v,m])=>`${v}="${JY(m)}"`).join(" "),y=k[1].length+k[2].length;E=E.substring(0,y)+" "+S+E.substring(y)}}F=F.substring(0,A.startIndex)+E+F.substring(A.endIndex)}return F}}function GY($,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 M4($,Z,Y,X,J){if(!XY)$Y(),XY=!0;let Q=await KY($,Z,Y,X,J);Q=await qW(Q,Z,Y,X,J),Q=await zW(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 XY=!1,YW,QY;var I6=P(()=>{e3();ZY();YY();A0();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"]);QY=new Map});var I4={};p(I4,{stripTypeScript:()=>jY,hasVariables:()=>VY,extractVariables:()=>u1,extractScriptFromTemplate:()=>FY,convertToCommonJS:()=>E6});import L5 from"path";import r5 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 q=0;q<J.length;q++){let z=J[q];if(K){K=!1;continue}if(z==="\\"){K=!0;continue}if(G){if(z===G)G=null;continue}if(z==="'"||z==='"'||z==="`"){G=z;continue}if(z==="/"&&q+1<J.length&&J[q+1]==="/")break;if(z==="{")Y++;else if(z==="}")Y--}if(Q===0){let q=J.match(/(?:const|let|var)\s+(\w+)\s*=/);if(q)Z.push(q[1]);else if(/^\s*(?:const|let|var)\s+\w+\s*;?\s*$/.test(J)){let z=J.match(/(?:const|let|var)\s+(\w+)/);if(z)Z.push(z[1])}else{let z=J.match(/(?:const|let|var)\s+(\{[^}]+\}|\[[^\]]+\])\s*=/);if(z){let W=z[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 jY($){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,q=null;for(let z=0;z<X.length;z++){let U=X[z];if(q){if(Q+=U,U===q)q=null;continue}if(U==='"'||U==="'"||U==="`"){q=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((z)=>{let U=z.trim(),W=U.startsWith("..."),_=W?U.slice(3):U,B=-1,j=0;for(let w=0;w<_.length;w++)if(_[w]==="<")j++;else if(_[w]===">")j--;else if(_[w]===":"&&j===0){B=w;break}if(B===-1)return z;let L=_.substring(0,B).trim().replace(/\?$/,""),F=_.substring(B+1),O=-1,V=0;for(let w=0;w<F.length;w++)if(F[w]==="<")V++;else if(F[w]===">")V--;else if(F[w]==="="&&V===0){O=w;break}let A=W?"...":"";if(O!==-1)return`${A}${L} = ${F.substring(O+1).trim()}`;return`${A}${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,q=G+1,z=0,U=null;while(q<Z.length&&K>0){let B=Z[q];if(U){if(B===U)U=null;q++;continue}if(B==='"'||B==="'"||B==="`"){U=B,q++;continue}if(B==="<")z++;else if(B===">"&&z>0)z--;else if(z===0){if(B==="(")K++;else if(B===")")K--}if(K>0)q++}if(K!==0)continue;let W=Z.substring(G+1,q);if(!W.includes(":"))continue;let _=Y(W);Q.push({start:G+1,end:q,replacement:_})}for(let G=Q.length-1;G>=0;G--){let{start:K,end:q,replacement:z}=Q[G];Z=Z.substring(0,K)+z+Z.substring(q)}}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,...q]=G.split("="),z=K.split(":")[0].trim();if(q.length>0)return`${z} = ${q.join("=").trim()}`;return z}).join(", ")}) =>`}),Z=Z.replace(/(\))\s*:\s*([A-Z]\w*|void|string|number|boolean|any|unknown|never|null|undefined)(?:<[^>]+>)?(?:\s*\|\s*(?:[A-Z]\w*|void|string|number|boolean|any|unknown|never|null|undefined))*\s*(\{)/g,"$1$3"),Z=Z.replace(/(\b(?:function|class|interface|type|extends|implements)\s+\w+)\s*<[^<>()]*>/g,"$1"),Z=Z.replace(/(\b(?:defineProps|withDefaults|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 u1($,Z,Y,X={}){if(!$.trim())return;let J;try{let
|
|
4175
|
+
`),Z}async function u1($,Z,Y,X={}){if(!$.trim())return;let J;try{let C=new Bun.Transpiler({loader:"ts",target:"browser",define:a0()}),x=$.replace(/^\s*import\s+\w+\s+from\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");x=x.replace(/^\s*import\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,""),J=C.transformSync(x)}catch{J=jY($)}let Q={exports:{}},G=Q.exports,K=r5.cwd(),q={},z=[...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 z)try{let x=L5.resolve(K,"node_modules",C),f=L5.join(x,"package.json"),h=JSON.parse(K0("fs").readFileSync(f,"utf8")),l=h.main||"index.js";if(h.exports){let r=typeof h.exports==="string"?h.exports:h.exports["."];if(typeof r==="string")l=r;else if(r?.bun)l=r.bun;else if(r?.import)l=r.import;else if(r?.default)l=r.default}q[C]=await import(L5.resolve(x,l))}catch{}let U=(C)=>{if(q[C])return q[C];return K0(C)},W=Z.props||{},_=Object.assign((C)=>{if(!C)return W;let x={};for(let[f,h]of Object.entries(C)){let l=W[f];if(l!==void 0)x[f]=l;else if(typeof h==="function")x[f]=h();else x[f]=h}return x},W),B=(C)=>{if(!C)return W;let x={...W};for(let[f,h]of Object.entries(C)){let l=h&&typeof h==="object"&&!Array.isArray(h)?h:{type:h};if(x[f]===void 0&&l.default!==void 0)x[f]=typeof l.default==="function"?l.default():l.default}return x},j=()=>Z.slots||{},H=(C,x)=>{let f={...C};for(let[h,l]of Object.entries(x))if(f[h]===void 0)if(typeof l==="function")f[h]=l();else f[h]=l;return f},L=(C)=>{let x=()=>C;return x.set=(f)=>{},x.update=(f)=>{},x},F=(C)=>{let x,f=!1;return()=>{if(!f)try{x=C(),f=!0}catch{x=void 0}return x}},O=(C)=>{},V=(C)=>C(),A=(C)=>{},w=(C)=>{},R=(C)=>{},N=()=>{let C=Z.__stxServeContext,x=Z.__stxServeSearch??C?.search??"",f=C?.path??"";return{params:Z.params??{},query:Object.fromEntries(new URLSearchParams(x)),path:f,name:"",fullPath:f+x,hash:"",matched:[]}},M=()=>({push:(C)=>{},replace:(C)=>{},back:()=>{},forward:()=>{},go:(C)=>{}}),T=(C)=>{d1(C);let x=Z.__stx_runtime_head||{},f=C||{};Z.__stx_runtime_head={...x,...f.title&&{title:f.title},meta:[...x.meta||[],...f.meta||[]],link:[...x.link||[],...f.link||[]],script:[...x.script||[],...f.script||[]],htmlAttrs:{...x.htmlAttrs||{},...f.htmlAttrs||{}},bodyAttrs:{...x.bodyAttrs||{},...f.bodyAttrs||{}}}},I=(C)=>{j4(C);let x=m5();Z.__stx_runtime_head={...Z.__stx_runtime_head||{},...x.title&&{title:x.title},meta:x.meta?[...x.meta]:[]}},D=(C)=>({value:C}),E=(C)=>C,k=(C)=>({value:typeof C==="function"?C():C}),S=(C,x)=>{},y=(C)=>{},v=(C)=>{},m=(C)=>C?C():Promise.resolve(),g=(C)=>(x,...f)=>{},u=(C)=>{},s=(C,x)=>{},T0=(C,x)=>x,Z1=()=>({value:"light"}),C0=()=>({value:!1}),k0={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:{}},J0=new Proxy(k0,{get(C,x){if(x in C)return C[x];return},set(C,x,f){return C[x]=f,!0}}),V0={getElementById:()=>null,querySelector:()=>null,querySelectorAll:()=>[],createElement:()=>({}),createTextNode:()=>({}),body:{},head:{},documentElement:{},addEventListener:()=>{},removeEventListener:()=>{}},W0=console;try{let C=E6(J,Y),x=new Set(Object.keys(W)),f=Object.keys(Z).filter((e)=>!x.has(e)&&e!=="props"),h=f.map((e)=>Z[e]),l=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"]),r=[],G0=[];for(let[e,r0]of Object.entries(W)){if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(e))continue;if(l.has(e))continue;if(new RegExp(`(?:^|[\\s;{])(?:const|let|var|function)\\s+${e}\\b`).test(C))continue;r.push(e),G0.push(r0)}let P0=WW(C).map((e)=>`module.exports.${e} = typeof ${e} !== 'undefined' ? ${e} : module.exports.${e};`).join(`
|
|
4176
4176
|
`),I1=Z.params??{},U0=[],D1=[];for(let e=0;e<f.length;e++){if(f[e]==="params")continue;U0.push(f[e]),D1.push(h[e])}let z$=await Function("module","exports","require","props","$props","defineProps","withDefaults","state","derived","effect","batch","onMount","onDestroy","definePageMeta","useRoute","useRouter","useHead","useSeoMeta","ref","reactive","computed","watch","onMounted","onUnmounted","nextTick","defineEmits","defineExpose","defineSlots","provide","inject","useColorMode","useDark","window","document","console","confirm","alert","fetch","params",...r,...U0,`return (async () => {
|
|
4177
|
-
${
|
|
4177
|
+
${C}
|
|
4178
4178
|
${P0}
|
|
4179
4179
|
return module.exports
|
|
4180
|
-
})()`)(Q,G,U,W,_,B,H,L,F,O,V,A,w,R,N,M,T,I,D,E,k,S,y,
|
|
4180
|
+
})()`)(Q,G,U,W,_,B,H,L,F,O,V,A,w,R,N,M,T,I,D,E,k,S,y,v,m,g,u,j,s,T0,Z1,C0,J0,V0,W0,k0.confirm,k0.alert,k0.fetch,I1,...G0,...D1);if(X.preserveExisting){for(let[e,r0]of Object.entries(z$))if(!(e in Z)||Z[e]===void 0)Z[e]=r0}else Object.assign(Z,z$);for(let[e,r0]of Object.entries(W))if(!(e in Z))Z[e]=r0}catch(C){if(r5.env.STX_DEBUG){let x=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: ${x}`)}try{await OW(J,Z,Y)}catch(x){if(r5.env.STX_DEBUG){let f=x instanceof Error?x.message:String(x);console.warn(`[stx] fallback extraction also failed in ${Y??"<unknown>"}: ${f}`)}}}}function E6($,Z){let Y=Z?L5.dirname(Z):r5.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 q of X[Q])if(q==="{")K++;else if(q==="}")K--;if(K<=0)break}}Q++;continue}if(G.startsWith("definePageMeta(")){let K=0,q=!1;for(let z=Q;z<X.length&&!q;z++){let U=null,W=!1,_=X[z];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=z+1,q=!0;break}}}}if(!q)Q=X.length;continue}if(G.startsWith("import ")){let K=G.match(/^import\s+(\w+)\s+from\s+['"](.+)['"]/),q=G.match(/^import\s+\{([^}]+)\}\s+from\s+['"](.+)['"]/),z=G.match(/^import\s+['"](.+)['"]/),U=(W)=>{if(W.startsWith("."))return L5.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(q){let[,W,_]=q,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(z){let W=U(z[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=UY(X,Q),{type:q,name:z,value:U}=K;J.push(`${q} ${z} = ${U};`),J.push(`module.exports.${z} = ${z};`),Q=K.nextIndex}else if(G.startsWith("export function ")||G.startsWith("export async function ")){let K=D6(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=UY(X,Q),{type:q,name:z,value:U}=K;J.push(`${q} ${z} = ${U};`),J.push(`module.exports.${z} = ${z};`),Q=K.nextIndex}else if(G.startsWith("function ")||G.startsWith("async function ")){let K=D6(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"),q=[...X];q[Q]=K;let z=D6(q,Q);if(J.push(z.functionCode),z.name)J.push(`module.exports.default = ${z.name};`);Q=z.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 q=K[1],z=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)z+=`
|
|
4182
4182
|
`+_;if(U<=0&&W>=Q)break}J.push(z),J.push(`module.exports.${q} = ${q};`),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,q=0;while(J<Y){let z=$[J],U=$[J+1];if(G){if(X+=z,z===`
|
|
@@ -4187,7 +4187,7 @@ ${w}`,nextIndex:O}}}}throw Error(`Failed to parse variable declaration: ${Y}`)}l
|
|
|
4187
4187
|
${$[q]}`,q++;else break}return K=K.trim().replace(/;$/,""),{type:J,name:Q,value:K,nextIndex:q}}function D6($,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 WY($){let Z=$.trim();if(Z.startsWith("{"))return F0(Z,"{","}",0)===-1;if(Z.startsWith("["))return F0(Z,"[","]",0)===-1;return!LY(Z)}function LY($){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 _Y($,Z,Y){let X=Y,J=Z+1;while(J<$.length&&!LY(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 BY($,Z){let Y=$0($,Z)??$0(`(${$})`,Z);if(Y!==void 0)return Y;if(!/\bprocess\b/.test($))return;let X={...Z,process:Object.freeze({env:{...r5.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 q=K.trim().replace(/;$/,""),z=BY(q,Z);if(z!==void 0)Z[G]=z}catch(q){console.warn(`Failed to parse export ${G} in fallback:`,q)}}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 q=K.trim().replace(/;$/,""),z=BY(q,Z);if(z!==void 0)Z[G]=z}catch{}}}function FY($){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 VY($){let Z=$.trim();if(!Z)return!1;return/(?:const|let|var|function)\s+\w+/.test(Z)}var a5=
|
|
4190
|
+
${G}`,J++}return{functionCode:X,nextIndex:J}}function BY($,Z){let Y=$0($,Z)??$0(`(${$})`,Z);if(Y!==void 0)return Y;if(!/\bprocess\b/.test($))return;let X={...Z,process:Object.freeze({env:{...r5.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 q=K.trim().replace(/;$/,""),z=BY(q,Z);if(z!==void 0)Z[G]=z}catch(q){console.warn(`Failed to parse export ${G} in fallback:`,q)}}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 q=K.trim().replace(/;$/,""),z=BY(q,Z);if(z!==void 0)Z[G]=z}catch{}}}function FY($){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 VY($){let Z=$.trim();if(!Z)return!1;return/(?:const|let|var|function)\s+\w+/.test(Z)}var a5=P(()=>{u5();t1();w0()});var IY={};p(IY,{processLoops:()=>k6});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,q=1,z=K+1;while(z<X.length&&q>0){if(X[z]==="(")q++;else if(X[z]===")"){if(q--,q===0)break}z++}if(q!==0)continue;let U=X.substring(K+1,z),W=z+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=O0(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:q,replacement:z}=Q[G];X=X.substring(0,K)+z+X.substring(q)}return X}function D4($,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,q=1,z=K+1,U=null,W=!1;while(z<X.length&&q>0){let j=X[z];if(W){W=!1,z++;continue}if(j==="\\"&&U){W=!0,z++;continue}if(U){if(j===U)U=null;z++;continue}if(j==='"'||j==="'"||j==="`"){U=j,z++;continue}if(j==="(")q++;else if(j===")"){if(q--,q===0)break}z++}if(q!==0)break;let _=X.substring(K+1,z),B=Y(_);X=X.substring(0,G)+B+X.substring(z+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);I5(Q);let z=Y0(Q,G)(...K),U=JSON.stringify(z),W=Buffer.from(U,"utf8").toString("base64");return`__stx_${J}="${W}"`}catch(G){return X}}),Y}function AW($,Z){let Y=$;return Y=D4(Y,"@break",(X)=>{try{let Q=`!!(${X.trim()})`,G;if(Z0(Q)){let K=Y0(Q,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean($0(Q,Z));return G?E4:""}catch{return""}}),Y=D4(Y,"@continue",(X)=>{try{let Q=`!!(${X.trim()})`,G;if(Z0(Q)){let K=Y0(Q,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean($0(Q,Z));return G?k4:""}catch{return""}}),Y}function RW($){let Z=$;return Z=Z.replace(/@break(?!\()/g,E4),Z=Z.replace(/@continue(?!\()/g,k4),Z}function wY($){let Z=$.includes(E4),Y=Z?$.substring(0,$.indexOf(E4)):$;return{hasBreak:Z,content:Y}}function AY($){let Z=$.includes(k4),Y=Z?$.substring(0,$.indexOf(k4)):$;return{hasContinue:Z,content:Y}}function NY($){let Z=$;return Z=D4(Z,"@break",(Y)=>{let X=Y.trim();if(!D5(X))return"";return`\`; if (${X}) { break; } result += \``}),Z=D4(Z,"@continue",(Y)=>{let X=Y.trim();if(!D5(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=[],q=0;for(let U of X)q+=U.delta,K.push({pos:U.pos,depth:q});function z(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(z(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,A=1,w=V,R=/@forelse\s*\(/g,N=/@endforelse/g,M=-1;while(A>0&&w<$.length){R.lastIndex=w,N.lastIndex=w;let S=R.exec($),y=N.exec($);if(!y)break;if(S&&S.index<y.index)A++,w=S.index+S[0].length;else{if(A--,A===0){M=y.index;break}w=y.index+11}}if(M===-1)continue;let T=$.substring(V,M),I=M+11,D=-1,E=0,k=0;while(k<T.length){let S=T.indexOf("@",k);if(S===-1)break;let y=T.substring(S);if(/^@forelse\s*\(/.test(y))E++,k=S+1;else if(y.startsWith("@endforelse"))E--,k=S+11;else if(E===0&&y.startsWith("@empty")){if(T.length<=S+6||!/[a-z]/i.test(T[S+6])){D=S;break}k=S+1}else k=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 RY($,Z){let Y=$;while(!0){let X=NW(Y);if(!X)break;let{start:J,end:Q,arrayExpr:G,itemVar:K,foreachContent:q,emptyContent:z}=X;try{let U;if(Z0(G))U=Y0(G,Object.keys(Z))(...Object.values(Z));else U=$0(G,Z);let W;if(!Array.isArray(U)||U.length===0)W=z;else W=`@foreach (${G} as ${K})${q}@endforeach`;Y=Y.substring(0,J)+W+Y.substring(Q)}catch(U){let W=U instanceof Error?U.message:String(U),_=a("Forelse",`Error in @forelse(${G} as ${K}): ${W}`,c.EVALUATION_ERROR);Y=Y.substring(0,J)+_+Y.substring(Q)}}return Y}function k6($,Z,Y,X){let J=$;J=RY(J,Z);function Q(q){let z=/@foreach\s*\(/g,U;while((U=z.exec(q))!==null){let W=U.index,_=U.index+U[0].length-1,B=1,j=_+1,H=-1;while(j<q.length&&B>0){if(q[j]==="(")B++;else if(q[j]===")"){if(B--,B===0){H=j;break}}j++}if(H===-1)continue;let L=q.substring(_+1,H),F=L.indexOf(" as ");if(F===-1)continue;let O=W,V=L.substring(0,F),A=L.substring(F+4),w=H+1,R=1,N=w,M=/@foreach\s*\(/g,T=/@endforeach/g;while(R>0&&N<q.length){M.lastIndex=N,T.lastIndex=N;let I=M.exec(q),D=T.exec(q);if(!D)break;if(I&&I.index<D.index)R++,N=I.index+I[0].length;else{if(R--,R===0){let E=q.substring(w,D.index),k=D.index+11;return{start:O,end:k,arrayExpr:V,itemVar:A,content:E}}N=D.index+11}}}return null}function G(q,z){let U=q;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(Z0(F))O=Y0(F,Object.keys(z))(...Object.values(z));else O=$0(F,z);let V=!1;if(!Array.isArray(O))if(O instanceof Map)O=Array.from(O),V=!0;else if(O instanceof Set)O=Array.from(O);else if(typeof O==="string")O=Array.from(O);else if(O&&typeof O==="object"&&!(O instanceof Date)&&!(O instanceof RegExp))O=Object.entries(O),V=!0;else{let D=a("Foreach",`Error in @foreach: ${F} is not iterable`,c.TYPE_ERROR);U=U.substring(0,_)+D+U.substring(B);continue}let A=X?.loops?.useAltLoopVariable??FW,w=H.trim(),R=null,N,M=!1;if(w.includes("=>")){let D=w.split("=>").map((E)=>E.trim());if(D.length===2&&D[0]&&D[1])R=D[0],N=D[1];else N=w}else if(!w.startsWith("[")&&!w.startsWith("{")&&w.includes(",")){let D=w.split(",").map((E)=>E.trim());if(D.length===2&&D[0]&&D[1])N=D[0],R=D[1],M=!0;else N=w}else N=w;let T="",I=O;for(let D=0;D<I.length;D++){let E=I[D],k={index:D,iteration:D+1,first:D===0,last:D===I.length-1,count:I.length},S={...z,loop:k,$loop:k};if(N.startsWith("[")&&N.endsWith("]")){let g=N.slice(1,-1).split(",").map((u)=>u.trim());if(Array.isArray(E))g.forEach((u,s)=>{if(u)S[u]=E[s]});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 y=AW(L,S),v=AY(y);if(v.hasContinue){T+=v.content;continue}let m=wY(y);if(m.hasBreak){T+=m.content;break}if(y=RY(y,S),y=G(y,S),y=f1(y,S,Y),y=RW(y),m=wY(y),m.hasBreak){T+=m.content;break}if(v=AY(y),v.hasContinue){T+=v.content;continue}y=x0(y,S,Y),y=wW(y,S),y=VW(y,S),T+=y}U=U.substring(0,_)+T+U.substring(B)}catch(F){let O=a("Foreach",`Error in @foreach(${j.trim()} as ${H.trim()}): ${F instanceof Error?F.message:String(F)}`,c.EVALUATION_ERROR);U=U.substring(0,_)+O+U.substring(B)}}return U}J=G(J,Z),J=MY(J,Z,Y,X);let K=X?.loops?.maxWhileIterations??LW;return J=IW(J,Z,K),J}function TY($){return D5($)}function MY($,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,q=K+G[0].length-1,z=F0(J,"(",")",q);if(z===-1)break;let U=J.slice(q+1,z),W=z+1,_=U4(J.slice(K),"for","endfor");if(_.length===0)break;let B=_[0].content,j=K+_[0].end;if(!TY(U)){let H=a("For",`Unsafe expression in @for: ${U}`,c.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=NY(V);let w=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 BY($,Z){let Y=$0($,Z)??$0(
|
|
|
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=a("While",`Error in @while(${z}): ${B instanceof Error?B.message:String(B)}`,c.EVALUATION_ERROR);X=X.substring(0,G)+j+X.substring(_),J=!0}}return X}var LW=1000,FW=!1,E4="<!--__STX_BREAK__-->",k4="<!--__STX_CONTINUE__-->";var S6=
|
|
4212
|
+
`)(...j);X=X.substring(0,G)+F+X.substring(_),J=!0}catch(B){let j=a("While",`Error in @while(${z}): ${B instanceof Error?B.message:String(B)}`,c.EVALUATION_ERROR);X=X.substring(0,G)+j+X.substring(_),J=!0}}return X}var LW=1000,FW=!1,E4="<!--__STX_BREAK__-->",k4="<!--__STX_CONTINUE__-->";var S6=P(()=>{_4();Q1();l0();W4();w0()});import z0 from"path";function b6($,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,q=1,z=K+1;while(z<X.length&&q>0){if(X[z]==="(")q++;else if(X[z]===")")q--;z++}if(q!==0)break;let U=X.substring(K+1,z-1),W=`${Y}(${U})`;X=X.substring(0,G)+W+X.substring(z),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++}},q=()=>{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]==="`")q();else Q++;continue}Q++}},z=()=>{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(z())continue;if(Z[Q]==="'"||Z[Q]==='"'){K(Z[Q]);continue}if(Z[Q]==="`"){q();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 kY($,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((q)=>q.trim()).filter(Boolean).map((q)=>` try { __scopeR
|
|
|
4244
4244
|
} finally {
|
|
4245
4245
|
if (typeof window !== 'undefined') window.__STX_CURRENT_ELEMENT__ = __stxPrevEl;
|
|
4246
4246
|
}
|
|
4247
|
-
})();`}function bW($,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 VR(){SY.clear()}function yW($){if($.__onceStore instanceof Set)return $.__onceStore;return SY}async function y6($,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"),q=yW(Z);K=K.replace(/@once([\s\S]*?)@endonce/g,(j,H,L)=>{let F=H.trim(),O=`${Y}:${F}`;if(q.has(O))return"";return q.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 A=K.substring(F+1,V-1),w=A.match(/^\s*['"]([^'"]+)['"]/);if(!w){j.lastIndex=V;continue}let R=w[1],N=z(R,G,Y),M="";if(N&&await Bun.file(N).exists())J.add(N),M=`@include(${A})`;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,A=1,w=V+1;while(w<K.length&&A>0){if(K[w]==="(")A++;else if(K[w]===")")A--;w++}if(A!==0)break;let R=K.substring(V+1,w-1),N=b6(R,0);if(N===-1){L.lastIndex=w;continue}let M=R.substring(0,N).trim(),T=R.substring(N+1).trim(),I=T.match(/^\s*['"]([^'"]+)['"]/);if(!I){L.lastIndex=w;continue}let D=I[1],E=T.substring(I[0].length),k,S=b6(E,0);if(S!==-1)k=E.substring(S+1).trim();try{let y=`Boolean(${M})`,
|
|
4248
|
-
`;continue}if(T0)try{let{extractVariables:J0}=await Promise.resolve().then(() => (a5(),I4));await J0(s,I,O)}catch(J0){if(X.debug)console.warn(`Warning: Could not extract variables from server script in ${O}:`,J0)}if(!T0&&!
|
|
4247
|
+
})();`}function bW($,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 VR(){SY.clear()}function yW($){if($.__onceStore instanceof Set)return $.__onceStore;return SY}async function y6($,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"),q=yW(Z);K=K.replace(/@once([\s\S]*?)@endonce/g,(j,H,L)=>{let F=H.trim(),O=`${Y}:${F}`;if(q.has(O))return"";return q.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 A=K.substring(F+1,V-1),w=A.match(/^\s*['"]([^'"]+)['"]/);if(!w){j.lastIndex=V;continue}let R=w[1],N=z(R,G,Y),M="";if(N&&await Bun.file(N).exists())J.add(N),M=`@include(${A})`;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,A=1,w=V+1;while(w<K.length&&A>0){if(K[w]==="(")A++;else if(K[w]===")")A--;w++}if(A!==0)break;let R=K.substring(V+1,w-1),N=b6(R,0);if(N===-1){L.lastIndex=w;continue}let M=R.substring(0,N).trim(),T=R.substring(N+1).trim(),I=T.match(/^\s*['"]([^'"]+)['"]/);if(!I){L.lastIndex=w;continue}let D=I[1],E=T.substring(I[0].length),k,S=b6(E,0);if(S!==-1)k=E.substring(S+1).trim();try{let y=`Boolean(${M})`,v;if(Z0(y)){let u=Y0(y,Object.keys(Z));v=Boolean(u(...Object.values(Z)))}else v=Boolean($0(y,Z));let m=H?!v:v,g="";if(m){let u=z(D,G,Y);if(u&&await Bun.file(u).exists())J.add(u);g=`@include('${D}'${k?`, ${k}`:""})`}K=K.substring(0,O)+g+K.substring(w),L.lastIndex=0}catch(y){let v=y instanceof Error?y.message:String(y),m=Q0("Include",`Error evaluating ${j} condition: ${v}`,Y,$,O);K=K.substring(0,O)+m+K.substring(w),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 A=K.substring(F+1,V),w=K.substring(L,V+1),R=A.match(/^\s*['"]([^'"]+)['"]\s*,\s*([^,]+)\s*,\s*['"]([^'"]+)['"](?:\s*,\s*['"]([^'"]+)['"])?\s*$/);if(!R){j.lastIndex=0,K=K.replace(w,"");continue}let[,N,M,T,I]=R;try{let D,E=M.trim();if(Z0(E))D=Y0(E,Object.keys(Z))(...Object.values(Z));else D=$0(E,Z);let k="";if(Array.isArray(D)&&D.length>0)for(let S of D){let y={...Z,[T]:S},v=await W(N,y,$,L);k+=v}else if(I)k=await W(I,{},$,L);K=K.substring(0,L)+k+K.substring(V+1),j.lastIndex=0}catch(D){let E=D instanceof Error?D.message:String(D);K=K.substring(0,L)+Q0("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 A=K.substring(F+1,V),w=K.substring(L,V+1),R=A.match(/^\s*(\[[^\]]+\])/);if(!R){j.lastIndex=0,K=K.replace(w,"");continue}let N=R[1],M=A.slice(R[0].length),T,I=M.match(/^\s*,\s*\{/);if(I){M=M.slice(I[0].length-1);let k=1,S=1;while(S<M.length&&k>0){if(M[S]==="{")k++;else if(M[S]==="}"){if(k--,k===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 k=JSON.parse(N.replace(/'/g,'"')),S={};if(T)try{S=O0(T,Z)}catch(v){let m=v instanceof Error?v.message:String(v);if(X.debug){let g=Q0("Include",`Error parsing includeFirst variables: ${m}`,Y,$,L,w);K=K.replace(w,()=>g)}else K=K.replace(w,()=>D||"");continue}let y=!1;for(let v of k){let m=z(v,G,Y);if(!m)continue;if(await n(m)){let g=await W(v,S,$,L);K=K.replace(w,()=>g),y=!0;break}}if(!y)if(D!==void 0)K=K.replace(w,()=>D);else if(X.debug){let v=Q0("Include",`None of the includeFirst paths exist: ${N}`,Y,$,L,w);K=K.replace(w,()=>v)}else K=K.replace(w,"")}catch(k){let S=k instanceof Error?k.message:String(k),y=Q0("Include",`Error processing @includeFirst: ${S}`,Y,$,L,w);K=K.replace(w,()=>y)}j.lastIndex=0}}function z(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)),A;if(!F.startsWith("./")&&!F.startsWith("../"))A=z0.resolve(H,F);else A=z0.resolve(V,F);let w=z0.normalize(A),R=w.startsWith(O+z0.sep)||w===O,N=w.startsWith(V+z0.sep)||w===V,M=!1,T=z0.dirname(V);if(w.startsWith(T+z0.sep)){if(!z0.relative(T,w).split(z0.sep).some((k)=>k.startsWith(".")&&k!=="."&&k!==".."))M=!0}if(!R&&!N&&!M)return console.error(`Security: Path traversal attempt blocked for include path: ${j}`),console.error(` Resolved to: ${w}`),console.error(` Allowed dirs: ${O}, ${V}`),null;return w}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=z(j,G,Y);if(!O)return Q0("Include",`Could not resolve path for include: ${j}`,Y,L,F);let V=z0.resolve(O);if(Q.has(V)){let A=[...Q,V].map((w)=>z0.basename(w)).join(" -> ");return Q0("Include",`Circular include detected: ${A}`,Y,L,F)}try{J.add(O);let A;if(!A)try{A=await Bun.file(O).text()}catch(g){let u=g instanceof Error?g.message:String(g);return Q0("Include",`Error loading include file ${j}: ${u}`,Y,L,F)}if(A&&A.includes("@stream")){let{processStreamDirectives:g}=await Promise.resolve().then(() => (s3(),o3));A=g(A,Z)}if(A&&(X.debug||!x5()&&!n$()))try{let{warnUnbalancedTags:g}=await Promise.resolve().then(() => (a3(),m2));g(A,O)}catch{}let w=A;try{let{processESImports:g}=await Promise.resolve().then(() => (I6(),qY));await g(A,Z,O,X,J)}catch(g){if(X.debug)console.warn(`[stx] partial ES import extraction skipped for ${O}:`,g instanceof Error?g.message:g)}let R=w.match(/<template\b(?![^>]*\b(?:id|x-for|x-if|@for|@if|:for|:if)\s*=)[^>]*>([\s\S]*?)<\/template>/i);if(R)w=R[1].trim();let M=A.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"").match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),T="";if(M)T=`<style${M[1]}>${M[2]}</style>`;w=w.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),w=w.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");let I={...Z};for(let[g,u]of Object.entries(H))I[g]=u;let D=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,E=[...A.matchAll(D)],k="",S=null;for(let g of E){let u=g[1]||"",s=g[2]||"",T0=u.includes("server"),Z1=p1(u),C0="";try{let{extractAndStripCssImports:J0,renderVendorStyleTags:V0}=await Promise.resolve().then(() => (t5(),EY)),W0=J0(s,{filePath:O,projectRoot:process.cwd()});s=W0.code,C0=V0(W0.styles)}catch(J0){if(X.debug)console.warn(`[stx] vendor-css extractor skipped for ${O}:`,J0 instanceof Error?J0.message:J0)}if(Z1&&s.trim())s=c1(s);if(!T0)try{let{hasUserImports:J0,bundleClientScript:V0}=await Promise.resolve().then(() => (O$(),H$));if(J0(s))s=await V0(s,O,{projectRoot:process.cwd()})}catch(J0){if(X.debug)console.warn(`[stx] bundler skipped for ${O}:`,J0 instanceof Error?J0.message:J0)}let k0=EW(s);if(k0&&!T0){S=`stx_scope_${z0.basename(O,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++DY}`;let J0=J1(s),V0=SW(J0,S);k+=`${C0}<script data-stx-scoped>${V0}</script>
|
|
4248
|
+
`;continue}if(T0)try{let{extractVariables:J0}=await Promise.resolve().then(() => (a5(),I4));await J0(s,I,O)}catch(J0){if(X.debug)console.warn(`Warning: Could not extract variables from server script in ${O}:`,J0)}if(!T0&&!k0){let J0=u.replace(/\bclient\b/i,"").trim();S=`stx_scope_${z0.basename(O,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++DY}`;let V0=J1(s),W0=`
|
|
4249
4249
|
if (!window.stx._scopes) window.stx._scopes = {};
|
|
4250
4250
|
window.stx._scopes['${S}'] = { __destroyCallbacks: __destroyHooks };
|
|
4251
|
-
`,
|
|
4252
|
-
`}}if(S){let g=bW(w,S);if(w=g.html,g.mergedIntoExisting)k=k.replace(`window.stx._scopes['${S}']`,`window.stx._scopes['${g.mergedIntoExisting}']`),S=g.mergedIntoExisting}if(w.includes("@include")||w.includes("@partial"))w=await y6(w,I,O,X,J,Q);let{processLoops:y}=await Promise.resolve().then(() => (S6(),IY)),
|
|
4253
|
-
`+T;if(k)
|
|
4254
|
-
`+k;return
|
|
4255
|
-
`)})}var DY=0,FR,SY;var bY=
|
|
4251
|
+
`,C=kY(V0,W0);k+=`${C0}<script data-stx-scoped${J0?` ${J0}`:""}>${C}</script>
|
|
4252
|
+
`}}if(S){let g=bW(w,S);if(w=g.html,g.mergedIntoExisting)k=k.replace(`window.stx._scopes['${S}']`,`window.stx._scopes['${g.mergedIntoExisting}']`),S=g.mergedIntoExisting}if(w.includes("@include")||w.includes("@partial"))w=await y6(w,I,O,X,J,Q);let{processLoops:y}=await Promise.resolve().then(() => (S6(),IY)),v=y(w,I,O);v=f1(v,I,O);let m=$5(A);if(v=x0(v,I,O,{forceSignals:m}),T)v+=`
|
|
4253
|
+
`+T;if(k)v+=`
|
|
4254
|
+
`+k;return v}catch(A){let w=A instanceof Error?A.message:String(A);return Q0("Include",`Error processing include ${j}: ${w}`,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),A=V.match(/^\s*['"]([^'"]+)['"]/);if(!A){_.lastIndex=F;continue}let w=A[1],R,N=V.substring(A[0].length),M=b6(N,0);if(M!==-1)R=N.substring(M+1).trim();let T={};if(R)try{T=O0(R,Z)}catch(D){let E=D instanceof Error?D.message:String(D);K=K.replace(O,Q0("Include",`Error parsing include variables for ${w}: ${E}`,Y,$,j)),_.lastIndex=0;continue}let I=await W(w,T,$,j);K=K.substring(0,j)+I+K.substring(F),_.lastIndex=0}return K}function C6($,Z){let Y=$;function X(J,Q,G,K){let q=J,z=!0;while(z){z=!1;let U=new RegExp(`@${Q}\\(['"]([^'"]+)['"]\\)`),W=q.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<q.length){let w=q.slice(O),R=w.match(H),N=w.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 A=q.slice(j,V);if(!Z[B])Z[B]=[];if(K)Z[B].unshift(A);else Z[B].push(A);q=q.substring(0,_)+q.substring(V+`@${G}`.length),z=!0}return q}return Y=X(Y,"push","endpush",!1),Y=X(Y,"prepend","endprepend",!0),Y}function P6($,Z){return $.replace(/@stack\(['"]([^'"]+)['"]\)/g,(Y,X)=>{if(!Z[X]||Z[X].length===0)return"";return Z[X].join(`
|
|
4255
|
+
`)})}var DY=0,FR,SY;var bY=P(()=>{_4();l0();Z5();w0();A0();FR=new b5(500),SY=new Set});import*as v6 from"path";async function yY($,Z,Y=""){if(v6.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 PY($,Z,Y,"@js","@endjs")}async function CY($,Z,Y=""){if(v6.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 PY($,Z,Y,"@ts","@endts")}async function PY($,Z,Y,X,J){let Q=$,G=k1(`${X}([\\s\\S]*?)${J}`,"g"),K=[],q;while((q=G.exec($))!==null)K.push({fullMatch:q[0],content:q[1]||"",index:q.index});for(let{fullMatch:z,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((w)=>w.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
|
-
`,A=Function(..._,O)(...B);if(A&&typeof A==="object")Object.assign(Z,A);Q=Q.replace(z,"")}catch(_){console.error(`Error executing ${X} code block in ${Y}:`,_);let B=_ instanceof Error?_.message:String(_),j=Q0(`${X} Directive`,`Error executing code: ${B}`,Y,$,W,z);console.error(j),Q=Q.replace(z,"")}return Q}var vY=
|
|
4258
|
+
`,A=Function(..._,O)(...B);if(A&&typeof A==="object")Object.assign(Z,A);Q=Q.replace(z,"")}catch(_){console.error(`Error executing ${X} code block in ${Y}:`,_);let B=_ instanceof Error?_.message:String(_),j=Q0(`${X} Directive`,`Error executing code: ${B}`,Y,$,W,z);console.error(j),Q=Q.replace(z,"")}return Q}var vY=P(()=>{Z5();A0()});function CW($,Z="_method"){let Y=$.toUpperCase();if(Y==="GET"||Y==="POST")return"";return`<input type="hidden" name="${Z}" value="${Y}">`}function xY($){return $.replace(/@method\(\s*(['"])([^'"]+)\1\s*(?:,\s*(['"])([^'"]+)\3\s*)?\)/g,(Z,Y,X,J,Q)=>{return CW(X,Q||"_method")})}function TR($,Z="_method"){if($&&typeof $[Z]==="string")return $[Z].toUpperCase();return null}async function fY($,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 q=await K.handler(Q,Z,Y,X);if(typeof q==="string")Q=q;else if(X.debug)console.warn(`Middleware ${K.name} did not return a string`)}catch(q){if(X.debug)console.error(`Error in middleware ${K.name}:`,q);if(X.debug){let z=Q0("Middleware",`Error in middleware '${K.name}': ${q instanceof Error?q.message:String(q)}`,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;">${u0(z)}</div>
|
|
4260
|
-
`)}}}return Q}async function gY($,Z,Y,X){return fY($,Z,Y,X,"before")}async function hY($,Z,Y,X){return fY($,Z,Y,X,"after")}var dY=
|
|
4260
|
+
`)}}}return Q}async function gY($,Z,Y,X){return fY($,Z,Y,X,"before")}async function hY($,Z,Y,X){return fY($,Z,Y,X,"after")}var dY=P(()=>{l0();A0()});import{defineRoute as CR,defineRoutes as PR,resetRoutes as vR,route as xR,setAppUrl as fR}from"stx-router";import{route as PW}from"stx-router";function mY($){return $.replace(/@route\(\s*(['"])([^'"]+)\1(?:\s*,\s*(\{[^}]+\}))?\s*(?:,\s*(true|false)\s*)?\)/g,(Z,Y,X,J,Q)=>{try{let G=J?O0(J,{}):{};return PW(X,G,Q==="true")}catch(G){return console.error(`Error processing @route directive: ${G}`),"#route-error"}})}var uY=P(()=>{w0()});function gR($,Z){if(!s0.exact[$])s0.exact[$]=[];s0.exact[$].push(Z)}function hR($,Z){let Y=typeof $==="string"?new RegExp($):$;s0.patterns.push({pattern:Y,callback:Z})}async function lY($,Z){let Y=$.split("/").pop()?.split(".")[0]||"";if(s0.exact[$])for(let X of s0.exact[$])await Promise.resolve(X(Z,$));if(s0.exact[Y])for(let X of s0.exact[Y])await Promise.resolve(X(Z,$));for(let{pattern:X,callback:J}of s0.patterns)if(X.test($)||X.test(Y))await Promise.resolve(J(Z,$))}function dR(){s0.patterns=[],s0.exact={}}var s0;var pY=P(()=>{s0={patterns:[],exact:{}}});function cY($){if(typeof $==="string")return $;if(Array.isArray($))return $.filter(Boolean).map((Z)=>cY(Z)).join(" ");if($&&typeof $==="object")return Object.entries($).filter(([,Z])=>Z).map(([Z])=>Z).join(" ");return $?String($):""}function iY($,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(z){return J.some(([U,W])=>z>=U&&z<W)}let K=/<([a-zA-Z][a-zA-Z0-9-]*)((?:\s+(?:[^>"']|"[^"]*"|'[^']*'))*)\s*\/?>/g,q=[];while((Q=K.exec(Y))!==null){if(G(Q.index))continue;let z=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 w=Function(...F,`return (${L})`)(...O);if(H==="class"){let R=cY(w);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(w)B=B.replace(_[0],` ${H}`);else B=B.replace(_[0],"");j=!0;continue}if(w===null||w===void 0||w===!1)B=B.replace(_[0],"");else{let R=String(w).replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">");B=B.replace(_[0],` ${H}="${R}"`)}j=!0}catch{continue}}if(j){let H=z.endsWith("/>")?" /":"",F=`<${Q[1]}${B}${H}>`;q.push({start:Q.index,end:Q.index+z.length,replacement:F})}}for(let z=q.length-1;z>=0;z--){let{start:U,end:W,replacement:_}=q[z];Y=Y.slice(0,U)+_+Y.slice(W)}return Y}var vW;var nY=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 i1($,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($),q=G.exec($);if(!q)return-1;if(K&&K.index<q.index)X++,J=K.index+K[0].length;else{if(X--,X===0)return q.index+q[0].length;J=q.index+q[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 oY($,Z){return new RegExp(`(?:^|\\s)${Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?:=|\\s|$|>|/)`).test($)||$.includes(` ${Z}=`)||$.includes(` ${Z} `)||$.trimEnd().endsWith(` ${Z}`)}function F5($,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=i1(Z,Y);if(!X)break;let J=F5(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(),q;if(G.includes(",")){let L=G.split(",").map((V)=>V.trim()),F=L[0],O=L[1];q=`${K} as ${O} => ${F}`}else q=`${K} as ${G}`;let z=A1(X.attrs,"v-for"),U=A1(z,":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(${q})
|
|
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=i1(Z,Y);if(!X)break;let J=F5(X.attrs,"v-if");if(J===null){Y=X.end;continue}let Q=[],G=e0(Z,X),K=A1(X.attrs,"v-if"),q=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:q,parsedTag:X});let z=G.outerEnd,U=!0;while(U){let H=Z.slice(z).match(/^\s*/),L=H?H[0].length:0,F=i1(Z,z+L);if(!F){U=!1;break}let O=F5(F.attrs,"v-else-if"),V=oY(F.attrs,"v-else");if(O!==null){let A=e0(Z,F),w=A1(F.attrs,"v-else-if"),R=R1(Z.slice(A.outerStart,A.outerEnd),{...F,start:0,end:F.end-F.start},w);Q.push({type:"else-if",expr:O,outerStart:z,outerEnd:A.outerEnd,element:R,parsedTag:F}),z=A.outerEnd}else if(V){let A=e0(Z,F),w=A1(F.attrs,"v-else"),R=R1(Z.slice(A.outerStart,A.outerEnd),{...F,start:0,end:F.end-F.start},w);Q.push({type:"else",outerStart:z,outerEnd:A.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=i1(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 q=F5(X.attrs,"v-model");if(q===null){Y=X.end;continue}if(fW.has(X.tag.toLowerCase())){let U=X.attrs.replace(/\s*v-model="[^"]*"/g,"")+` @model="${q}"`,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="${q}" @update:modelValue="${q} = $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=i1(Z,Y);if(!X)break;let J=F5(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?" /":"",q=`<${X.tag}${G}${K}>{!! ${J} !!}</${X.tag}>`;Z=Z.slice(0,Q.outerStart)+q+Z.slice(Q.outerEnd),Y=Q.outerStart+q.length}return Z}function nW($){let Z=$,Y=0;while(Y<Z.length){let X=i1(Z,Y);if(!X)break;let J=F5(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?" /":"",q=`<${X.tag}${G}${K}>{{ ${J} }}</${X.tag}>`;Z=Z.slice(0,Q.outerStart)+q+Z.slice(Q.outerEnd),Y=Q.outerStart+q.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=i1(Z,Y);if(!X)break;if(!oY(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),q=`@once
|
|
4267
4267
|
${R1(G,{...X,start:0,end:X.end-X.start},J)}
|
|
4268
|
-
@endonce`;Z=Z.slice(0,Q.outerStart)+q+Z.slice(Q.outerEnd),Y=Q.outerStart+q.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 sY($){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 rY=
|
|
4268
|
+
@endonce`;Z=Z.slice(0,Q.outerStart)+q+Z.slice(Q.outerEnd),Y=Q.outerStart+q.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 sY($){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 rY=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 S4($){return $.replace(/--/g,"- -").replace(/</g,"<").replace(/>/g,">")}async function aY($,Z,Y,X,J){let Q=$,G=/<component\s+(?::is|v-bind:is)\s*=\s*"([^"]*)"([^>]*)>([\s\S]*?)<\/component>/gi,K=[],q;while((q=G.exec(Q))!==null)K.push({full:q[0],expr:q[1],attrs:q[2],slotContent:q[3],index:q.index});for(let z=K.length-1;z>=0;z--){let U=K[z];try{let W=$0(U.expr,Z);if(!W||typeof W!=="string"){let O=`<!-- dynamic component: could not resolve "${S4(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]=$0(V,Z)}catch{B[O]=V}else B[O]=V}let L=X.componentsDir||"components",F=await q1(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: ${S4(_)} -->`;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=[],q;while((q=G.exec(Q))!==null)K.push({full:q[0],expr:q[1],attrs:q[2],index:q.index});for(let z=K.length-1;z>=0;z--){let U=K[z];try{let W=$0(U.expr,Z);if(!W||typeof W!=="string"){let j=`<!-- dynamic component: could not resolve "${S4(U.expr)}" -->`;Q=Q.slice(0,U.index)+j+Q.slice(U.index+U.full.length);continue}let _=X.componentsDir||"components",B=await q1(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: ${S4(_)} -->`;Q=Q.slice(0,U.index)+B+Q.slice(U.index+U.full.length)}}return Q}var tY=P(()=>{A0();w0()});function eY($,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 $X($,Z,Y={}){let{prefix:X="",preserveHost:J=!0,scopeKeyframes:Q=!0,scopeCustomProperties:G=!1}=Y;if(!$.trim())return"";let K=x6($),q=[],z=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}_${_}`;z.set(_,B)}}for(let U of K){let W=ZX(U,Z,X,J,z,G);q.push(W)}return q.join(`
|
|
4269
4269
|
|
|
4270
4270
|
`)}function x6($){let Z=[],Y=$.replace(/\/\*[\s\S]*?\*\//g,""),X=0,J="",Q=!1,G="";for(let K=0;K<Y.length;K++){let q=Y[K];if(q==="@"&&X===0)Q=!0;if(q==="{")X++;else if(q==="}"){if(X--,X===0){if(Q){G+=q;let z=G.match(/@([a-z-]+)\s*([^{]*)\{([\s\S]*)\}/i);if(z){let[,U,W,_]=z;if(U==="keyframes")Z.push({selector:`@keyframes ${W.trim()}`,declarations:_.trim()});else if(U==="media"||U==="supports"||U==="container"){let B=x6(_);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+=q;let z=J.match(/([^{]+)\{([^}]*)\}/);if(z)Z.push({selector:z[1].trim(),declarations:z[2].trim()});J=""}continue}}if(Q)G+=q;else J+=q}return Z}function ZX($,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=x6(`x { ${K} }`.replace(/x \{ /,"").replace(/ \}$/,"")).map((_)=>ZX(_,Z,Y,X,J,Q)).join(`
|
|
@@ -4292,7 +4292,7 @@ ${A.join(`
|
|
|
4292
4292
|
</body>
|
|
4293
4293
|
</html>`}function g6($){return/<!DOCTYPE\b/i.test($)||/<html[\s>]/i.test($)}function XX($,Z={}){let Y=$.lastIndexOf("</head>");if(Y===-1)return $;let{meta:X=[],link:J=[],script:Q=[],headRaw:G=""}=Z,K=$.slice(0,Y),q=[];for(let z of X){let U=z.name?`name="${z.name}"`:z.property?`property="${z.property}"`:z.charset!=null?"charset=":z["http-equiv"]?`http-equiv="${z["http-equiv"]}"`:"";if(U&&K.includes(U))continue;q.push(` <meta ${Object.entries(z).map(([W,_])=>`${W}="${_}"`).join(" ")}>`)}for(let z of J){if(z.href&&K.includes(`href="${z.href}"`))continue;q.push(` <link ${Object.entries(z).map(([U,W])=>`${U}="${W}"`).join(" ")}>`)}for(let z of Q)if(z.src){if(K.includes(`src="${z.src}"`))continue;q.push(` <script ${Object.entries(z).filter(([U])=>U!=="content").map(([U,W])=>`${U}="${W}"`).join(" ")}></script>`)}else if(z.content){if(K.includes(z.content))continue;q.push(` <script>${z.content}</script>`)}if(G&&!K.includes(G))q.push(` ${G}`);if(q.length===0)return $;return`${$.slice(0,Y)}${q.join(`
|
|
4294
4294
|
`)}
|
|
4295
|
-
${$.slice(Y)}`}function JX($,Z={},Y={}){if(g6($))return $;return Y_($,Z,Y)}var $N="<style data-stx-cloak>[x-cloak]{display:none !important}</style>";function P4($){let Z=$,Y=new Set,X=new Set,J=()=>{if(g0)X.add(g0);return Z};return J.set=(Q)=>{if(!Object.is(Q,Z)){let G=Z;if(Z=Q,Y.forEach((K)=>K(Z,G)),e5)X.forEach((K)=>C4.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 v4($){let Z,Y=!0,X=new Set,J=()=>{if(!Y)if(Y=!0,e5)X.forEach((G)=>C4.add(G));else X.forEach((G)=>G())},Q=()=>{if(g0)X.add(g0);if(Y){let G=g0;g0=J,y4.push(J);try{Z=$()}finally{y4.pop(),g0=G}Y=!1}return Z};return Object.defineProperty(Q,"_isDerived",{value:!0,writable:!1}),Q}function x4($,Z={}){let Y,X=!1,J=()=>{if(X)return;if(Y)Y(),Y=void 0;let Q=g0;g0=J,y4.push(J);try{Y=$()}finally{y4.pop(),g0=Q}};if(Z.immediate!==!1)J();return()=>{if(X=!0,Y)Y()}}function h6($){if(e5){$();return}e5=!0;try{$()}finally{e5=!1,C4.forEach((Z)=>Z()),C4.clear()}}function d6($){X_.push($)}function m6($){J_.push($)}function f4($){return typeof $==="function"&&$._isSignal===!0}function g4($){return typeof $==="function"&&$._isDerived===!0}function u6($){if(f4($)||g4($))return $();return $}function h4($){let Z=g0;g0=null;try{return $()}finally{g0=Z}}function Q_($,Z){let Y=typeof $==="function"?$:()=>$,X=P4([]),J=v4(()=>X().reduce((K,q)=>Z(K,q.action),Y())),Q=!1;return x4(()=>{if(Y(),!Q){Q=!0;return}if(h4(()=>X().length))X.set([])}),[J,(K,q)=>{let z={action:K};X.set([...X(),z]);let U=()=>{let W=X().filter((_)=>_!==z);if(W.length!==X().length)X.set(W)};if(q&&typeof q.then==="function")Promise.resolve(q).then(U,U);return U}]}var g0=null,y4,e5=!1,C4,X_,J_;var l6=
|
|
4295
|
+
${$.slice(Y)}`}function JX($,Z={},Y={}){if(g6($))return $;return Y_($,Z,Y)}var $N="<style data-stx-cloak>[x-cloak]{display:none !important}</style>";function P4($){let Z=$,Y=new Set,X=new Set,J=()=>{if(g0)X.add(g0);return Z};return J.set=(Q)=>{if(!Object.is(Q,Z)){let G=Z;if(Z=Q,Y.forEach((K)=>K(Z,G)),e5)X.forEach((K)=>C4.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 v4($){let Z,Y=!0,X=new Set,J=()=>{if(!Y)if(Y=!0,e5)X.forEach((G)=>C4.add(G));else X.forEach((G)=>G())},Q=()=>{if(g0)X.add(g0);if(Y){let G=g0;g0=J,y4.push(J);try{Z=$()}finally{y4.pop(),g0=G}Y=!1}return Z};return Object.defineProperty(Q,"_isDerived",{value:!0,writable:!1}),Q}function x4($,Z={}){let Y,X=!1,J=()=>{if(X)return;if(Y)Y(),Y=void 0;let Q=g0;g0=J,y4.push(J);try{Y=$()}finally{y4.pop(),g0=Q}};if(Z.immediate!==!1)J();return()=>{if(X=!0,Y)Y()}}function h6($){if(e5){$();return}e5=!0;try{$()}finally{e5=!1,C4.forEach((Z)=>Z()),C4.clear()}}function d6($){X_.push($)}function m6($){J_.push($)}function f4($){return typeof $==="function"&&$._isSignal===!0}function g4($){return typeof $==="function"&&$._isDerived===!0}function u6($){if(f4($)||g4($))return $();return $}function h4($){let Z=g0;g0=null;try{return $()}finally{g0=Z}}function Q_($,Z){let Y=typeof $==="function"?$:()=>$,X=P4([]),J=v4(()=>X().reduce((K,q)=>Z(K,q.action),Y())),Q=!1;return x4(()=>{if(Y(),!Q){Q=!0;return}if(h4(()=>X().length))X.set([])}),[J,(K,q)=>{let z={action:K};X.set([...X(),z]);let U=()=>{let W=X().filter((_)=>_!==z);if(W.length!==X().length)X.set(W)};if(q&&typeof q.then==="function")Promise.resolve(q).then(U,U);return U}]}var g0=null,y4,e5=!1,C4,X_,J_;var l6=P(()=>{y4=[],C4=new Set,X_=[],J_=[]});var GX={};p(GX,{useOptimistic:()=>Q_,untrack:()=>u6,state:()=>P4,peek:()=>h4,onMount:()=>d6,onDestroy:()=>m6,isSignal:()=>f4,isDerived:()=>g4,generateSignalsRuntimeDev:()=>d4,generateSignalsRuntime:()=>QX,effect:()=>x4,derived:()=>v4,default:()=>K_,batch:()=>h6});function QX(){try{let $=G_(d4()),Y=new Bun.Transpiler({loader:"js",minifyWhitespace:!0}).transformSync($);return Y=Y.replace(/\}(var |let |const |function )/g,"};$1"),Y}catch{return d4()}}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 q=K;G++;while(G<$.length&&$[G]!==q){if($[G]==="\\")G++;G++}G++;continue}if(K==="(")Q++;else if(K===")")Q--;G++}Z.push("0"),Y=G}return Z.join("")}function d4(){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 KX=
|
|
9516
|
+
`}var K_;var KX=P(()=>{l6();l6();K_={state:P4,derived:v4,effect:x4,batch:h6,onMount:d6,onDestroy:m6,isSignal:f4,isDerived:g4,untrack:u6,peek:h4,generateSignalsRuntime:QX,generateSignalsRuntimeDev:d4}});var p6={};p(p6,{templateCache:()=>qX,readFileCached:()=>q_,invalidateFileCacheByDir:()=>U_,invalidateFileCache:()=>z_,hashFilePath:()=>$$,getCachedSignalsRuntime:()=>B_,getCachedRouterScript:()=>j_,clearDevCaches:()=>H_,checkCache:()=>O_,cacheTemplate:()=>L_,__setSignalsGeneratorsForTest:()=>__});import N1 from"fs";import V5 from"path";async function q_($){let Y;for(let X=0;X<3;X++)try{let Q=(await N1.promises.stat($)).mtime.getTime(),G=n1.get($);if(G&&G.mtime===Q)return G.content;let K=await Bun.file($).text(),z=(await N1.promises.stat($)).mtime.getTime();if(z!==Q)continue;return n1.set($,{content:K,mtime:z}),K}catch(J){Y=J;break}throw n1.delete($),Error(`File not found: ${$}${Y?` (${Y.message})`:""}`)}function z_($){n1.delete($)}function U_($){for(let Z of n1.keys())if(Z.startsWith($))n1.delete(Z)}function __($){zX=$}async function B_($=!1){let Z=zX??await Promise.resolve().then(() => (KX(),GX));if($)return Z.generateSignalsRuntimeDev();if(m4===null)m4=Z.generateSignalsRuntime();return m4}async function j_(){if(u4===null){let{getRouterScript:$}=await import("stx-router");u4=$()}return u4}function H_(){n1.clear(),m4=null,W_=null,u4=null}function UX($){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=V5.resolve(Z.cachePath),X=V5.join(Y,`${$$($)}.html`),J=V5.join(Y,`${$$($)}.meta.json`);if(!await n(X)||!await n(J))return null;let Q=await Bun.file(J).text(),G=JSON.parse(Q);if(G.cacheVersion!==Z.cacheVersion)return null;if(G.optionsSignature!==UX(Z))return null;if((await N1.promises.stat($)).mtime.getTime()>G.mtime)return null;for(let q of G.dependencies)if(await n(q)){if((await N1.promises.stat(q)).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=V5.resolve(X.cachePath);await N1.promises.mkdir(J,{recursive:!0});let Q=V5.join(J,`${$$($)}.html`),G=V5.join(J,`${$$($)}.meta.json`),K=await N1.promises.stat($);await Bun.write(Q,Z);let q={sourcePath:$,mtime:K.mtime.getTime(),dependencies:Array.from(Y),cacheVersion:X.cacheVersion,optionsSignature:UX(X),generatedAt:Date.now()};await Bun.write(G,JSON.stringify(q,null,2)),qX.set($,{output:Z,mtime:K.mtime.getTime(),dependencies:Y})}catch(J){console.warn(`Failed to cache template ${$}:`,J)}}function $$($){return new Bun.CryptoHasher("sha1").update($).digest("hex").substring(0,F_)}var qX,n1,m4=null,W_=null,zX=null,u4=null,F_=16;var c6=P(()=>{A0();qX=new Map,n1=new Map});function WX($){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"]),q=/\b([A-Z][a-zA-Z0-9]*)\s*\.\s*(all|find|first|get|where|orderBy|orderByDesc|limit|select|pluck|create|update|delete)\s*\(/g,z,U=!1;while((z=q.exec(Y))!==null)if(!K.has(z[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 A=V.trim();if(!A)return;let w=A.indexOf(":"),N=(w>=0?A.slice(w+1).trim():A).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 A=V.trim().replace(/^\.\.\./,"");if(!A)return;let w=A.split(/[\s=]/)[0];if(w&&!X.has(w))Y.push(w),X.add(w)});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]!=="*"&&z()){q(),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 r6($,Z,Y,X){if(!i4($))return $;let J=$;if(Z.skipSignalsRuntime)return J;let{output:Q,setupCode:G}=await wX(J,Y,X);if(J=Q,J=await _X(J,Z),J=WX(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 q=J.replace(/<script\b[\s\S]*?<\/script>/gi,"").replace(/<style\b[\s\S]*?<\/style>/gi,"").match(/<body([^>]*)>/i),z=q&&/data-stx/.test(q[1]);if(!G&&!z&&q&&!/data-stx-auto/.test(q[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,A])=>F>=V&&F<A)){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,l4,LX,HX,i6,I_;var a6=
|
|
9553
|
+
`+G;let q=J.replace(/<script\b[\s\S]*?<\/script>/gi,"").replace(/<style\b[\s\S]*?<\/style>/gi,"").match(/<body([^>]*)>/i),z=q&&/data-stx/.test(q[1]);if(!G&&!z&&q&&!/data-stx-auto/.test(q[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,A])=>F>=V&&F<A)){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,l4,LX,HX,i6,I_;var a6=P(()=>{t5();W4();A0();l4=/<script\b([^>]*)>/gi,LX=/^<([a-zA-Z][a-zA-Z0-9-]*)\b((?:\s+[^=\s>]+(?:=(?:"[^"]*"|'[^']*'|[^\s>]*))?)*\s*)>([\s\S]*)<\/\1>$/s;HX=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"]);i6=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 w5 from"path";function NX($){return $.startsWith("http://")||$.startsWith("https://")||$.startsWith("//")}async function TX($,Z,Y){try{let X;if($.startsWith("/")){let J=Z;for(let Q=0;Q<5;Q++){let G=w5.join(J,$);if(await Bun.file(G).exists())return G;J=w5.dirname(J)}X=w5.join(Z,$)}else if($.startsWith("./")||$.startsWith("../"))X=w5.resolve(Z,$);else X=w5.resolve(Z,$);if(await Bun.file(X).exists())return X;return null}catch{return null}}async function MX($,Z,Y){let X=$,J=w5.dirname(Z),Q=/<script\b([^>]*)src=["']([^"']+)["']([^>]*)><\/script>/gi,G;while((G=Q.exec(X))!==null){let[z,U,W,_]=G;if(NX(W))continue;let B=await TX(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:a0()});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(z,H),Q.lastIndex=0}catch(j){}}let K=/<link\b([^>]*)href=["']([^"']+)["']([^>]*)(?:\/?>)/gi,q;while((q=K.exec(X))!==null){let[z,U,W,_]=q,B=U+_;if(NX(W))continue;if(/rel=["']stylesheet["']/.test(B)||W.endsWith(".css")){let H=await TX(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(z,F),K.lastIndex=0}catch(L){}}}return X}var IX=
|
|
9559
|
+
</style>`;X=X.replace(z,F),K.lastIndex=0}catch(L){}}}return X}var IX=P(()=>{t1()});function n4($,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,q=G+1,z=null,U=!1;while(q<Y.length&&K>0){let V=Y[q];if(U){U=!1,q++;continue}if(V==="\\"&&z){U=!0,q++;continue}if(z){if(V===z)z=null;q++;continue}if(V==='"'||V==="'"||V==="`"){z=V,q++;continue}if(V==="(")K++;else if(V===")"){if(K--,K===0)break}q++}if(K!==0)break;let W=Y.substring(G+1,q).trim(),_=Y.substring(Q,q+1),B=-1,j=0,H=null,L=!1;for(let V=0;V<W.length;V++){let A=W[V];if(L){L=!1;continue}if(A==="\\"&&H){L=!0;continue}if(H){if(A===H)H=null;continue}if(A==='"'||A==="'"||A==="`"){H=A;continue}if(A==="("||A==="["||A==="{")j++;else if(A===")"||A==="]"||A==="}")j--;if(A===","&&j===0){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(),A;if(Z0(V))A=Y0(V,Object.keys(Z))(...Object.values(Z));else A=void 0;let w;if(O==="true")w=JSON.stringify(A,null,2);else w=JSON.stringify(A);let R=w.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(q+1),X.lastIndex=Q+R.length}catch(V){c0.log(V instanceof Error?V:Error(String(V)),{directive:"@json"},"error"),X.lastIndex=Q+_.length}}return Y}function o4($){return $.replace(/@once\s*([\s\S]*?)@endonce/g,"$1")}function DX($){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,q=G;while(q<Z.length&&K>0){if(Z[q]==="(")K++;else if(Z[q]===")")K--;q++}if(K!==0)continue;let z=Z.slice(G,q-1).trim(),U=q,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,A=F.slice(0,F.length-V),w=A.match(/^<([a-zA-Z][a-zA-Z0-9-]*)(\s[^>]*?)?(\/?)>/),R;if(w){let[N,M,T="",I]=w,D=`<${M}${T} data-stx-memo="${z}"${I}>`;R=B.slice(0,L)+D+A.slice(N.length)+B.slice(L+A.length)}else R=`${B.slice(0,L)}<div data-stx-memo="${z}">${A}</div>${B.slice(L+A.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 t6($){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 EX($){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,q=!1,z=!1,U=-1;while(K<$.length){let H=$[K];if(q){if(H==="'")q=!1}else if(z){if(H==='"')z=!1}else if(H==="'")q=!0;else if(H==='"')z=!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 kX($){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,q=!1,z=!1,U=-1;while(K<$.length){let j=$[K];if(q){if(j==="'")q=!1}else if(z){if(j==='"')z=!1}else if(j==="'")q=!0;else if(j==='"')z=!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 e6=P(()=>{Q1();w0();k_=/(?:^|\s)(?::else-if|:if|:else|:show|x-else-if|x-if|x-else|x-show|@if|@show)(?:=|\s|\/|>|$)/});function s4($,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:q}of S_){if(J.some((U)=>K.includes(U)||G.source.includes(U)))continue;G.lastIndex=0;let z=$.match(G);if(z&&z.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 ${q}`)}}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 S_;var $9=
|
|
9564
|
+
Tip: prefer useRef(), navigate(), and composables for component code`;if(X.failOnViolation)throw Error(K);else console.warn(K)}}var S_;var $9=P(()=>{S_=[{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 SX={};p(SX,{getStoreScript:()=>b_,clearStoreCache:()=>y_});import r4 from"path";async function b_($){let Z;if($)Z=r4.resolve($);else{let U=await Y4();Z=r4.resolve(U.root||process.cwd(),U.storesDir||"stores")}let Y=A5.get(Z);if(Y!==void 0)return Y||null;let X=new Bun.Glob("*.ts"),J=[];try{for await(let U of X.scan({cwd:Z,absolute:!0})){let W=r4.basename(U,".ts");if(["index","types"].includes(W))continue;if(U.includes(".d.ts"))continue;J.push(U)}}catch{return A5.set(Z,""),null}if(J.length===0)return A5.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=[],q=new Bun.Transpiler({loader:"ts",target:"browser",define:a0()});for(let U of G)try{let W=await Bun.file(U).text(),_=r4.basename(U,".ts");W=W.replace(/^import\s+.*from\s+['"][^'"]+['"]\s*;?\s*$/gm,""),W=W.replace(/^export\s+(default\s+)?/gm,""),W=q.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 A5.set(Z,""),null;let z=`;(function(){
|
|
9566
9566
|
${K.join(`
|
|
9567
9567
|
|
|
9568
9568
|
`)}
|
|
9569
|
-
})();`;return A5.set(Z,z),z}function y_(){A5.clear()}var A5;var bX=
|
|
9569
|
+
})();`;return A5.set(Z,z),z}function y_(){A5.clear()}var A5;var bX=P(()=>{g5();t1();A5=new Map});var CX={};p(CX,{processDeferDirectives:()=>f_});function C_(){return`stx-defer-${++yX}`}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,q,z=Y.match(/@placeholder\s*([\s\S]*?)(?=@loading|@error|$)/);if(z)G=z[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)q=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:q}}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 SB;var $J=
|
|
11519
|
+
`})}var SB;var $J=P(()=>{SB={createVirtualList:Z9,processVirtualListDirectives:Y9,processInfiniteListDirectives:aX,processVirtualGridDirectives:tX,generateVirtualListCSS:sX,useVirtualList:rX}});function ZJ(){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 HJ=
|
|
11913
|
+
`}var gB;var HJ=P(()=>{gB={processPartialHydrationDirectives:QJ,processStaticDirectives:_J,generatePartialHydrationCSS:GJ,generateIslandManifest:BJ,createIslandRegistry:JJ,hydrateIsland:KJ,hydrateByStrategy:qJ,hydrateAll:zJ,isHydrated:UJ,onHydrated:WJ}});var IJ={};p(IJ,{watchMultiple:()=>wJ,watchEffect:()=>AJ,watch:()=>VJ,unref:()=>OJ,toRefs:()=>LJ,throttledComputed:()=>MJ,stxWatchMultiple:()=>wJ,stxWatchEffect:()=>AJ,stxWatch:()=>VJ,stxUnref:()=>OJ,stxToRefs:()=>LJ,stxThrottledComputed:()=>MJ,stxShallowRef:()=>FJ,stxRef:()=>N5,stxIsRef:()=>T1,stxDebouncedComputed:()=>TJ,stxComputed:()=>Y$,shallowRef:()=>FJ,ref:()=>N5,processWatchDirectives:()=>NJ,processComputedDirectives:()=>RJ,isRef:()=>T1,default:()=>hB,debouncedComputed:()=>TJ,computed:()=>Y$});function N5($){let Z=$,Y=new Set,X={get value(){if($1){let J=Z$.get(X);if(!J)J=new Set,Z$.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=Z$.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 OJ($){return T1($)?$.value:$}function LJ($){let Z={};for(let Y in $)if(Object.prototype.hasOwnProperty.call($,Y))Z[Y]=N5($[Y]);return Z}function FJ($){return N5($)}function Y$($){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,q=new Set,z=()=>{if(G=!0,q.size>0){let _=W.value;q.forEach((B)=>B(_))}};function U(){K.clear();let _=$1;$1=z,a4.push(z);try{return Y()}finally{a4.pop(),$1=_}}let W={get value(){if($1){let _=Z$.get(W);if(!_)_=new Set,Z$.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 q.add(_),()=>q.delete(_)},peek(){if(G)Q=Y(),G=!1;return Q},invalidate(){G=!0},get dirty(){return G},get deps(){return K}};return W}function VJ($,Z,Y={}){let{immediate:X=!1,deep:J=!1,flush:Q="pre",once:G=!1}=Y,K,q=!0,z=!1,U=()=>{if(T1($))return J?o1($.value):$.value;return $()},W=()=>{if(!q||z)return;let j=U();if(K!==void 0&&Object.is(K,j)&&!J)return;let H=()=>{if(Z(j,K),K=J?o1(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 _=Y$($).subscribe(()=>W());if(X)K=void 0,W();else K=U();let B=()=>{if(q=!1,_)_(),_=null};return B.pause=()=>{z=!0},B.resume=()=>{z=!1},B}function wJ($,Z,Y={}){let{immediate:X=!1,once:J=!1}=Y,Q=$.map((W)=>T1(W)?W.value:void 0),G=!0,K=!1,q=()=>{if(!G||K)return;let W=$.map((_)=>T1(_)?_.value:void 0);if(Z(W,Q),Q=[...W],J)U()},z=$.map((W)=>{if(T1(W))return W.subscribe(()=>q());return()=>{}});if(X)q();let U=()=>{G=!1,z.forEach((W)=>W())};return U.pause=()=>{K=!0},U.resume=()=>{K=!1},U}function AJ($,Z={}){let{flush:Y="pre"}=Z,X,J=!0,Q=!1,G=()=>{if(!J||Q)return;if(X)X();let q=$1;$1=G,a4.push(G);try{X=$()}finally{a4.pop(),$1=q}};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 RJ($,Z={},Y){let X=/@computed\s*\(\s*(\w+)\s*,\s*(.+?)\s*\)/gi;return $.replace(X,(J,Q,G)=>{try{let q=Function(...Object.keys(Z),`return ${G}`)(...Object.values(Z));return Z[Q]=q,`<!-- computed: ${Q} = ${q} -->`}catch(K){return`<!-- computed error: ${Q} - ${K} -->`}})}function NJ($,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 o1($){if($===null||typeof $!=="object")return $;if(Array.isArray($))return $.map((Y)=>o1(Y));if($ instanceof Date)return new Date($.getTime());if($ instanceof Map){let Y=new Map;return $.forEach((X,J)=>Y.set(o1(J),o1(X))),Y}if($ instanceof Set){let Y=new Set;return $.forEach((X)=>Y.add(o1(X))),Y}let Z={};for(let Y in $)if(Object.prototype.hasOwnProperty.call($,Y))Z[Y]=o1($[Y]);return Z}function TJ($,Z=100){let Y=N5($()),X=null,J=()=>{if(X)clearTimeout(X);X=setTimeout(()=>{Y.value=$()},Z)};return Y$($).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 MJ($,Z=100){let Y=N5($()),X=0,J=()=>{let G=Date.now();if(G-X>=Z)X=G,Y.value=$()};return Y$($).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,a4,Z$,hB;var DJ=
|
|
11925
|
+
`})}function o1($){if($===null||typeof $!=="object")return $;if(Array.isArray($))return $.map((Y)=>o1(Y));if($ instanceof Date)return new Date($.getTime());if($ instanceof Map){let Y=new Map;return $.forEach((X,J)=>Y.set(o1(J),o1(X))),Y}if($ instanceof Set){let Y=new Set;return $.forEach((X)=>Y.add(o1(X))),Y}let Z={};for(let Y in $)if(Object.prototype.hasOwnProperty.call($,Y))Z[Y]=o1($[Y]);return Z}function TJ($,Z=100){let Y=N5($()),X=null,J=()=>{if(X)clearTimeout(X);X=setTimeout(()=>{Y.value=$()},Z)};return Y$($).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 MJ($,Z=100){let Y=N5($()),X=0,J=()=>{let G=Date.now();if(G-X>=Z)X=G,Y.value=$()};return Y$($).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,a4,Z$,hB;var DJ=P(()=>{a4=[],Z$=new WeakMap;hB={ref:N5,computed:Y$,watch:VJ,watchMultiple:wJ,watchEffect:AJ,isRef:T1,unref:OJ,toRefs:LJ,shallowRef:FJ,debouncedComputed:TJ,throttledComputed:MJ,processComputedDirectives:RJ,processWatchDirectives:NJ}});var bJ={};p(bJ,{v:()=>dB,processHasErrorsDirective:()=>SJ,processFormValidationDirectives:()=>uB,processErrorsDirective:()=>kJ,processErrorDirective:()=>EJ,defineForm:()=>mB,Validator:()=>T5});class T5{rules=[];defaultValue="";addRule($){let Z=new T5;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 T5;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 T5;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 q=!1;async function z(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(){q=!0;let O=await Promise.all(Y.map(z));return q=!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)z(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 w of Y)Q[w]=!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 q||Y.some((O)=>K[O])},get isDirty(){return Y.some((O)=>G[O])},validate:U,validateField:z,reset:W,setValues:_,setFieldValue:B,setFieldTouched:j,getFieldState:H,handleSubmit:L}}function EJ($,Z,Y){let X=/@error\s*\(\s*([^)]+)\s*\)([\s\S]*?)@enderror/g;return $.replace(X,(J,Q,G)=>{try{let K=Q.trim().split("."),q=Z;for(let U of K)if(q&&typeof q==="object"&&U in q)q=q[U];else return"";let z=q;if(!z||!Array.isArray(z)||z.length===0)return"";return z.map((U)=>{return G.replace(/\{\{\s*message\s*\}\}/g,U)}).join(`
|
|
11926
11926
|
`)}catch{return""}})}function kJ($,Z,Y){let X=/@errors\s*\(\s*([^)]+)\s*\)([\s\S]*?)@enderrors/g;return $.replace(X,(J,Q,G)=>{try{let K=Q.trim().split("."),q=Z;for(let U of K)if(q&&typeof q==="object"&&U in q)q=q[U];else return"";let z=q;if(!z||!Array.isArray(z)||z.length===0)return"";return z.map((U)=>G.replace(/\{\{\s*message\s*\}\}/g,U)).join(`
|
|
11927
|
-
`)}catch{return""}})}function SJ($,Z,Y){let X=/@hasErrors\s*\(\s*([^)]+)\s*\)([\s\S]*?)@endhasErrors/g;return $.replace(X,(J,Q,G)=>{try{let K=Q.trim().split("."),q=Z;for(let U of K)if(q&&typeof q==="object"&&U in q)q=q[U];else return"";let z=q;if(!z||!Array.isArray(z)||z.length===0)return"";return G}catch{return""}})}function uB($,Z,Y){let X=$;return X=EJ(X,Z,Y),X=kJ(X,Z,Y),X=SJ(X,Z,Y),X}var dB;var yJ=
|
|
11927
|
+
`)}catch{return""}})}function SJ($,Z,Y){let X=/@hasErrors\s*\(\s*([^)]+)\s*\)([\s\S]*?)@endhasErrors/g;return $.replace(X,(J,Q,G)=>{try{let K=Q.trim().split("."),q=Z;for(let U of K)if(q&&typeof q==="object"&&U in q)q=q[U];else return"";let z=q;if(!z||!Array.isArray(z)||z.length===0)return"";return G}catch{return""}})}function uB($,Z,Y){let X=$;return X=EJ(X,Z,Y),X=kJ(X,Z,Y),X=SJ(X,Z,Y),X}var dB;var yJ=P(()=>{dB=new T5});var vJ={};p(vJ,{processXElementDirectives:()=>lB,hasXElementDirectives:()=>PJ,generateXElementRuntime:()=>CJ});function CJ(){return`<script data-stx-scoped>
|
|
11928
11928
|
(function() {
|
|
11929
11929
|
'use strict';
|
|
11930
11930
|
|
|
@@ -12213,7 +12213,7 @@ else {
|
|
|
12213
12213
|
`+Z}import t4 from"fs";import e4 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=e4.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=e4.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 xJ($,Z,Y,X){let J=t4.readdirSync($,{withFileTypes:!0});for(let Q of J){let G=e4.join($,Q.name);if(Q.isDirectory()){if(["node_modules",".git",".stx"].includes(Q.name))continue;xJ(G,Z,Y,X)}else if(Q.isFile()){let K=t4.statSync(G),q=e4.relative(Z,G);if(nB(q,K.size,Y)){let z=t4.readFileSync(G),U=cB(z),W=`/${q.replace(/\\/g,"/")}`;X.push({url:W,revision:U,size:K.size})}}}}function X$($,Z){let Y=Z.pwa?.precache,X=[];if(!Y?.enabled)return{entries:[],totalSize:0,fileCount:0};if(!t4.existsSync($))return{entries:[],totalSize:0,fileCount:0};xJ($,$,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 $7($){if($.entries.length===0)return"[]";return`[
|
|
12214
12214
|
${$.entries.map((Y)=>` { url: '${Y.url}', revision: '${Y.revision}' }`).join(`,
|
|
12215
12215
|
`)}
|
|
12216
|
-
]`}function fJ($){if($<1024)return`${$} B`;if($<1048576)return`${($/1024).toFixed(1)} KB`;return`${($/1048576).toFixed(2)} MB`}var pB;var X9=
|
|
12216
|
+
]`}function fJ($){if($<1024)return`${$} B`;if($<1048576)return`${($/1024).toFixed(1)} KB`;return`${($/1048576).toFixed(2)} MB`}var pB;var X9=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 gJ($){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 J9($){return gJ($).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 SN($){return{className:"BackgroundSyncPlugin",importFrom:"workbox-background-sync",options:{name:$.name,...$.maxRetentionTime&&{maxRetentionTime:$.maxRetentionTime},...$.forceSyncFallback!==void 0&&{forceSyncFallback:$.forceSyncFallback}}}}function rB($){let Z=gJ($.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 bN($){return $.map((Z)=>rB(Z))}function hJ($){let Z=$.pwa;if(!Z?.enabled)return"";let Y=Z.routes||[],X=Z.cacheStorage,J=[];for(let Q of Y){let G=J9(Q.strategy),K=[];if(Q.maxAgeSeconds||Q.maxEntries||X?.maxEntries){let z=Q.maxEntries||X?.maxEntries||100,U=Q.maxAgeSeconds||(X?.maxAge?X.maxAge*24*60*60:void 0);K.push(`new ExpirationPlugin({
|
|
12217
12217
|
maxEntries: ${z},
|
|
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 uJ($){return $.pwa?.enabled===!0&&$.pwa?.serviceWorker?.useWorkbox===!0}function Qj($){if(uJ($))return mJ;let{generateServiceWorker:Z}=(Q9(),U9(cJ));return Z}var pJ=
|
|
12520
|
+
`}function uJ($){return $.pwa?.enabled===!0&&$.pwa?.serviceWorker?.useWorkbox===!0}function Qj($){if(uJ($))return mJ;let{generateServiceWorker:Z}=(Q9(),U9(cJ));return Z}var pJ=P(()=>{X9()});var cJ={};p(cJ,{isWorkboxEnabled:()=>nJ,getServiceWorkerFileName:()=>Z7,generateServiceWorkerAuto:()=>qj,generateServiceWorker:()=>iJ});function iJ($,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",q=Y.push,z=Y.backgroundSync,U=Y.cacheStorage,W=Z?X$(Z,$):null,_=W?$7(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 Z7($){return $.pwa?.serviceWorker?.fileName||"sw.js"}function nJ($){return $.pwa?.enabled===!0&&$.pwa?.serviceWorker?.useWorkbox===!0}function qj($,Z){if(!$.pwa?.enabled)return"";if(nJ($)){let{generateWorkboxServiceWorker:Y}=(pJ(),U9(lJ));return Y($,Z)}return iJ($,Z)}var Q9=
|
|
13346
|
+
`}function Z7($){return $.pwa?.serviceWorker?.fileName||"sw.js"}function nJ($){return $.pwa?.enabled===!0&&$.pwa?.serviceWorker?.useWorkbox===!0}function qj($,Z){if(!$.pwa?.enabled)return"";if(nJ($)){let{generateWorkboxServiceWorker:Y}=(pJ(),U9(lJ));return Y($,Z)}return iJ($,Z)}var Q9=P(()=>{X9()});var oJ={};p(oJ,{injectPwaTags:()=>zj,generateThemeColorMeta:()=>_j,generateSwRegistrationScript:()=>Uj,generatePwaTags:()=>Y7,generateManifestLink:()=>Wj});function Y7($){let Z=$.pwa;if(!Z?.enabled)return"";let Y=Z.manifest,X=Z.icons?.outputDir?`/${Z.icons.outputDir}`:"/pwa-icons",J=Z7($),Q=`
|
|
13347
13347
|
<!-- stx PWA Meta Tags -->
|
|
13348
13348
|
<link rel="manifest" href="/manifest.json">
|
|
13349
13349
|
<meta name="theme-color" content="${G9(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="${G9($)}">`}function G9($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}var sJ=
|
|
13404
|
+
</script>`}function Wj(){return'<link rel="manifest" href="/manifest.json">'}function _j($){return`<meta name="theme-color" content="${G9($)}">`}function G9($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}var sJ=P(()=>{Q9()});var Aj={};p(Aj,{validateClientScript:()=>s4,processOnceDirective:()=>o4,processJsonDirective:()=>n4,processDirectives:()=>B0,injectRouterScript:()=>BX});import y0 from"path";import{deriveLayoutGroup as Bj}from"stx-router/layout-metadata";function rJ($){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 q=$.indexOf("*/",X+2);if(q===-1)return-1;X=q+2,J=!0;continue}if(K==="/"&&J){let q=X+1,z=!1;while(q<Y){let U=$[q];if(U==="\\"){q+=2;continue}if(U==="[")z=!0;else if(U==="]")z=!1;else if(U==="/"&&!z){q++;break}else if(U===`
|
|
13406
13406
|
`){q=-1;break}q++}if(q===-1){X++,J=!1;continue}while(q<Y&&/[a-z]/.test($[q]))q++;X=q,J=!1;continue}if(K==="'"||K==='"'){let q=K;X++;while(X<Y){if($[X]==="\\"){X+=2;continue}if($[X]===q){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 B0($,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||!x5()&&!n$())&&Y&&Y.endsWith(".stx"))r3($,Y);try{return await c9.timeAsync("template-processing",async()=>{let G=await Hj($,Z,Y,X,J);if(Q)G=t6(G);if(Q&&X.autoShell&&X.buildMode!=="compile"){let K=X.app?.head||{},z=(Z.__stx_runtime_head||null)??m5(),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=z.title||W||B,H={...K,...j&&{title:j},meta:[...K.meta||[],...z.meta||[]],link:[...K.link||[],...z.link||[]],script:[...K.script||[],...z.script||[]],headRaw:[K.headRaw,U].filter(Boolean).join(`
|
|
@@ -13416,24 +13416,24 @@ ${V}`:V,Z.__sections=j}}if(H)try{let O;if(y0.isAbsolute(H))O=H,J.add(H);else O=a
|
|
|
13416
13416
|
${q}`,W(q)}catch(O){return c0.log(O instanceof Error?O:Error(String(O)),{layoutPath:H,filePath:Y},"error"),`[Error processing layout: ${O instanceof Error?O.message:String(O)}]`}return W(await aJ(q,Z,Y,G,J))}function Oj($,Z){return $.replace(/@(?:yield|slot)\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(Y,X,J)=>{let Q=Z[X];if(Q!==void 0){if(!new RegExp(`@(?:yield|slot)\\(\\s*['"]${X.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}['"]`).test(Q))return Q}return J||""})}function Lj($,Z){if($.__stx_sfc_mode=!0,$.__stx_options=Z,Z.buildMode)$.__stx_buildMode=Z.buildMode;let Y=Z.envPrefix||"STX_PUBLIC_",X={};for(let[J,Q]of Object.entries(process.env))if(J.startsWith(Y)&&Q!==void 0)X[J]=Q;$.$env=X}async function Fj($,Z){await K5(()=>lY($,Z),void 0,(Y)=>{c0.log(Y,{filePath:$,phase:"view-composer"},"warning"),console.warn(`[stx] view composer failed for ${$}: ${Y.message}`)})}async function Vj($,Z,Y){let X=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,J;while((J=X.exec($))!==null){let Q=J[1],G=J[2];if(!/\bserver\b/.test(Q)||!G.trim())continue;try{let{extractVariables:q}=await Promise.resolve().then(() => (a5(),I4));await q(G,Z,Y,{preserveExisting:!0})}catch(q){let z=q instanceof Error?q:Error(String(q));c0.log(z,{filePath:Y,phase:"server-script-extraction"},"warning"),console.warn(`[stx] server <script> extraction failed in ${Y}: ${z.message}`)}}}async function wj($,Z,Y){try{let{interpolateScriptsInTemplate:X}=await Promise.resolve().then(() => (l0(),m9));return X($,Z,{skipServer:!0})}catch(X){let J=X instanceof Error?X:Error(String(X));return c0.log(J,{filePath:Y,phase:"script-expression-interpolation"},"warning"),console.warn(`[stx] script expression interpolation failed in ${Y}: ${J.message}`),$}}async function aJ($,Z,Y,X,J){let Q=$,G=X;if(await Vj(Q,Z,Y),Q=await wj(Q,Z,Y),Q=await yY(Q,Z,Y),Q=await CY(Q,Z,Y),Q=await V2(Q,Z,Y,G),$5(Q))Q=n6(Q,Z),Q=s6(Q,Z);Q=o6(Q);let{processStreamDirectives:K}=await Promise.resolve().then(() => (s3(),o3));Q=K(Q,Z),Q=k6(Q,Z,Y,G),Q=await M4(Q,Z,Y,G,J),Q=await aY(Q,Z,Y,G,J),Q=V9(Q,Z,Y,G);let{processDeferDirectives:q}=await Promise.resolve().then(() => CX);Q=q(Q,Z,Y);let{processTeleportDirectives:z}=await Promise.resolve().then(() => vX);Q=z(Q,Z,Y);let{processTransitionDirectives:U,processTransitionAttributes:W}=await Promise.resolve().then(() => hX);Q=U(Q,Z,Y),Q=W(Q);let{processErrorBoundaryDirectives:_}=await Promise.resolve().then(() => mX);Q=_(Q,Z,Y);let{processSuspenseDirectives:B}=await Promise.resolve().then(() => uX);Q=B(Q,Z,Y);let{processAsyncDirectives:j}=await Promise.resolve().then(() => iX);Q=j(Q,Z,Y);let{processKeepAliveDirectives:H}=await Promise.resolve().then(() => oX);Q=H(Q,Z,Y);let{processVirtualListDirectives:L,processVirtualGridDirectives:F,processInfiniteListDirectives:O}=await Promise.resolve().then(() => ($J(),eX));Q=L(Q,Z,Y),Q=F(Q,Z,Y),Q=O(Q,Z,Y);let{processPartialHydrationDirectives:V,processStaticDirectives:A}=await Promise.resolve().then(() => (HJ(),jJ));Q=V(Q,Z,Y),Q=A(Q);let{processComputedDirectives:w,processWatchDirectives:R}=await Promise.resolve().then(() => (DJ(),IJ));Q=w(Q,Z,Y),Q=R(Q,Z,Y);let{processFormValidationDirectives:N}=await Promise.resolve().then(() => (yJ(),bJ));Q=N(Q,Z,Y);let{processHeadDirective:M,processTitleDirective:T,processMetaDirective:I,resetHead:D}=await Promise.resolve().then(() => (u5(),x3));if(!Z.__stx_head_preset&&!Z.__stx_runtime_head)D();let E=M(Q);if(Q=E.content,E.headContent)Z.__stx_head_raw=`${Z.__stx_head_raw||""}${E.headContent}
|
|
13417
13417
|
`;if(Q=T(Q,Z),Q=I(Q,Z),Q=mY(Q),Q=S3(Q,Z),Q=L2(Q),Q=xY(Q),Q=await y6(Q,Z,Y,G,J),Q=await M4(Q,Z,Y,G,J),Q=Q.replace(/@push\s*\(\s*['"][^'"]+['"]\s*\)[\s\S]*?@endpush/g,""),Q=t6(Q),Q=f1(Q,Z,Y),Q=b3(Q,Z),Q=y3(Q,Z),Q=c5(Q,Z),Q=g3(Q,Z),Q=h3(Q,Z),Q=await tZ(Q,Z,Y,G),Q=await w7(Q,Z,Y),Q=await c3(Q,Z,Y,G),Q=G7(Q,Z,Y,G),Q=OZ(Q,Z,Y,G),Q=LZ(Q,Z,Y),Q=FZ(Q,Z,Y,G),Q=_2(Q,Z,Y,G),Q=n4(Q,Z),Q=o4(Q),Q=DX(Q),!G.skipEventDirectives)Q=cZ(Q,Z,Y);if(Q=rZ(Q,Z,Y),G.debug){let f=/\bx-data\s*=/.test(Q),h=i4($);if(f&&h)console.warn(`[stx] ${Y}: Template mixes Alpine-style (x-data) and signals (state/derived/effect) reactivity.
|
|
13418
13418
|
Both work on the same page, but they manage separate scopes.
|
|
13419
|
-
Prefer signals (state/derived/effect) for new components.`)}Q=iY(Q,Z),Q=await x0(Q,Z,Y),Q=EX(Q),Q=kX(Q),Q=gZ(Q);let{processXElementDirectives:k}=await Promise.resolve().then(() => vJ);Q=k(Q);let S=Z.__originalFilePath||Y,y=J$(Z);if(Q=await r6(Q,G,S,y),Q=await hY(Q,Z,Y,G),G.media?.image?.autoSiblings){let f=G.publicDir||"public",{rewriteImagesWithSiblings:h}=await Promise.resolve().then(() => (A9(),w9));Q=await h(Q,{publicDir:f})}if(G.seo?.enabled)Q=VZ(Q,Z,G);let
|
|
13419
|
+
Prefer signals (state/derived/effect) for new components.`)}Q=iY(Q,Z),Q=await x0(Q,Z,Y),Q=EX(Q),Q=kX(Q),Q=gZ(Q);let{processXElementDirectives:k}=await Promise.resolve().then(() => vJ);Q=k(Q);let S=Z.__originalFilePath||Y,y=J$(Z);if(Q=await r6(Q,G,S,y),Q=await hY(Q,Z,Y,G),G.media?.image?.autoSiblings){let f=G.publicDir||"public",{rewriteImagesWithSiblings:h}=await Promise.resolve().then(() => (A9(),w9));Q=await h(Q,{publicDir:f})}if(G.seo?.enabled)Q=VZ(Q,Z,G);let v=(f,h)=>{if(!h)return f;if(/<\/head>/i.test(f))return f.replace(/<\/head>/i,`${h}
|
|
13420
13420
|
</head>`);if(/<head\b[^>]*>/i.test(f))return f.replace(/(<head\b[^>]*>)/i,`$1
|
|
13421
13421
|
${h}`);if(/<html\b[^>]*>/i.test(f))return f.replace(/(<html\b[^>]*>)/i,`$1
|
|
13422
13422
|
<head>
|
|
13423
13423
|
${h}
|
|
13424
|
-
</head>`);return f},{renderHead:m,getHead:g}=await Promise.resolve().then(() => (u5(),x3)),u=Z.__stx_runtime_head,s=u&&(u.title||u.meta?.length||u.link?.length)?u:g();if(s.title||s.meta?.length||s.link?.length){let f=m(s);if(f)Q=
|
|
13424
|
+
</head>`);return f},{renderHead:m,getHead:g}=await Promise.resolve().then(() => (u5(),x3)),u=Z.__stx_runtime_head,s=u&&(u.title||u.meta?.length||u.link?.length)?u:g();if(s.title||s.meta?.length||s.link?.length){let f=m(s);if(f)Q=v(Q,f)}if(E.headContent)Q=v(Q,E.headContent);if(G.csp?.enabled&&G.csp.addMetaTag)Q=W2(Q,G.csp,Z);if(G.analytics?.enabled)Q=O9(Q,G);if(G.heatmap?.enabled)Q=a9(Q,G);if(G.pwa?.enabled&&G.pwa.autoInject!==!1){let{injectPwaTags:f}=await Promise.resolve().then(() => (sJ(),oJ));Q=f(Q,G)}let T0=/<script\b(?![^>]*\bserver\b)[^>]*>[\s\S]*?<\/script>/i.test(Q),Z1=/\bSTX\.\w+/.test(Q),C0=/window\.STX\s*=/.test(Q);if(T0&&Z1&&!C0){let h=`<script data-stx-scoped>
|
|
13425
13425
|
${PZ()}
|
|
13426
|
-
</script>`;if(Q.includes("</head>")){let l=Q.indexOf("</head>"),G0=Q.slice(0,l).indexOf("<script");if(G0!==-1){let
|
|
13426
|
+
</script>`;if(Q.includes("</head>")){let l=Q.indexOf("</head>"),G0=Q.slice(0,l).indexOf("<script");if(G0!==-1){let M0=Q.slice(0,G0),P0=Q.slice(G0);Q=M0+h+`
|
|
13427
13427
|
`+P0}else Q=Q.replace("</head>",`${h}
|
|
13428
13428
|
</head>`)}else if(Q.includes("<body"))Q=Q.replace(/<body([^>]*)>/,`<body$1>
|
|
13429
13429
|
${h}`);else Q=h+`
|
|
13430
|
-
`+Q}{let f=/<script\s+server\b[^>]*>/gi,h,l=[];while((h=f.exec(Q))!==null){let r=h.index+h[0].length,G0=jj(Q,r);if(G0===-1)continue;let
|
|
13431
|
-
`);return{line:Y.length,column:Y[Y.length-1].length+1}}function bj($,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 tJ=
|
|
13432
|
-
`)J++;return!0}if($[J]==="/"&&$[J+1]==="*"){J+=2;while(J<Q-1&&!($[J]==="*"&&$[J+1]==="/"))J++;return J+=2,!0}return!1},z=()=>{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(q())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])))z();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 q=$[X];if(q==="}")Q++;else if(q==="{"){if(Q--,Q===0){G=X;break}}}if(G===-1)return;let K=$.slice(G+1,J);for(let q of pj(K)){let z=q.trim();if(!z||z.startsWith("..."))continue;let U=cj(z);if(U===-1)continue;let W=z.slice(0,U).trim();if(!/^[A-Z_$][\w$]*$/i.test(W))continue;if(Z[W]!==void 0)continue;let _=z.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 zY($,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(),q=Y.__importedComponents;if(q){for(let L of[Q,Q.toLowerCase(),G(Q),K(Q)])if(q.has(L))return!0}let z=[...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 n(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 z)if(await n(d.join(F,O)))return!0}return!1}function nj($){return $==="visible"||$==="idle"||$==="interaction"||$.startsWith("media:")}async function q1($,Z,Y,X,J,Q,G,K=new Set,q){let{extractVariables:z}=await Promise.resolve().then(() => (a5(),I4)),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 f=/<script\s+server\b[^>]*>/gi,h,l=[];while((h=f.exec(Q))!==null){let r=h.index+h[0].length,G0=jj(Q,r);if(G0===-1)continue;let M0=G0+9;while(M0<Q.length&&/\s/.test(Q[M0]))M0++;l.push({start:h.index,end:M0}),f.lastIndex=M0}for(let r=l.length-1;r>=0;r--){let{start:G0,end:M0}=l[r];Q=Q.substring(0,G0)+Q.substring(M0)}}let k0=b4(Q,Y);if(k0.hasScoped)Q=k0.html;let J0=Z.__stx_event_bindings||[],V0=!1,W0=[],C=/\s:[a-z][\w.-]*\s*=/.test(Q),{scanScriptTags:x}=await Promise.resolve().then(() => (a6(),RX));for(let f of x(Q,{skipAttrs:/\bserver\b|\bsrc\s*=|\bdata-stx-scoped\b|\bdata-stx-router\b|\btype\s*=\s*["'](?!(?:text\/javascript|application\/javascript|module)["'])[^"']*["']/}))W0.push({match:f.fullMatch,attrs:f.attrs,content:f.body});for(let{match:f,attrs:h,content:l}of W0){V0=!0;let r=l;s4(l,Y,X.strict);let G0=await Q$(l,{eventBindings:J0,attrs:h,hasColonDirectives:C,templateContent:$,filePath:Y,projectRoot:process.cwd(),production:X.buildMode==="compile",serverData:y});Q=Q.replace(f,()=>G0)}if(V0)Z.__stx_event_bindings=[];return Q}var s1="<!--PARENT_CONTENT_PLACEHOLDER-->";var V4=P(()=>{bZ();R$();K7();vZ();hZ();L9();V7();_7();iZ();t5();aZ();eZ();_4();B2();F2();A2();Q1();u5();l0();M2();P2();bY();vY();S6();R7();dY();Z5();uY();W3();A0();pY();nY();rY();tY();f6();a6();I6();IX();e6();$9();w0();a3();e6();$9()});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 q=new RegExp(X.altClose,"g");K+=($.match(q)||[]).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 Sj($,Z){let Y=$.slice(0,Z).split(`
|
|
13431
|
+
`);return{line:Y.length,column:Y[Y.length-1].length+1}}function bj($,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 tJ=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 XQ={};p(XQ,{renderSlot:()=>$Q,processSlots:()=>YQ,parseSlots:()=>eJ,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 eJ($){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,q;while((q=K.exec(Y))!==null){let[U,W,_,B,j,H]=q,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:q.index,end:q.index+U.length,slotName:B,element:V})}let z=/<([a-zA-Z][a-zA-Z0-9-]*)\b([^>]*?)\bslot="([^"]+)"([^>]*?)\/>/gi;while((q=z.exec(Y))!==null){let[U,W,_,B,j]=q,H=_.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),L=j.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),F=(H+L).trim(),O=`<${W}${F?" "+F:""} />`;G.push({start:q.index,end:q.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 $Q($,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((q)=>q.trim()).filter(Boolean);for(let q of K){let[z,U]=q.split(":").map((_)=>_.trim()),W=U||z;if(Z[z]!==void 0)G[W]=Z[z]}}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=ZQ(J,Z);return u0(String(Q??""))}catch{return`{{ ${X} }}`}})}function ZQ($,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(!Z0($))return;return Y0($,Object.keys(Z))(...Object.values(Z))}catch{return}}async function YQ($,Z,Y){let X=$;X=await fj(X,/<slot\s+name\s*=\s*["']([^"']+)["']([^>]*?)(?:\/>|>([\s\S]*?)<\/slot>)/gi,async(G,K,q,z)=>{let U=Z.named.get(K),W=z?.trim()||"",_=q||"",B={},j=/:([a-zA-Z_$][\w$-]*)\s*=\s*["']([^"']+)["']/g,H;while((H=j.exec(_))!==null){let L=H[1],F=H[2];B[L]=ZQ(F,Y)}return await $Q(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 q=K?.trim()||"";return Z.default||q}),X}async function fj($,Z,Y){let X=[],J=[];$.replace(Z,(K,...q)=>{let z=q[q.length-2];return J.push({match:K,index:z}),X.push(Y(K,...q.slice(0,-2))),K});let Q=await Promise.all(X),G=$;for(let K=J.length-1;K>=0;K--){let{match:q,index:z}=J[K];G=G.slice(0,z)+Q[K]+G.slice(z+q.length)}return G}function gj($){let Z=eJ($);return{defaultSlot:Z.default,namedSlots:Z.named}}async function hj($,Z,Y,X){return await YQ($,{default:Z,named:Y},X)}var JQ=P(()=>{l0();w0()});import dj from"fs";import d from"path";function QQ($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function uj($){return/\bjs\b/.test($)||/\blang\s*=\s*["']?(js|javascript)["']?/i.test($)}function p1($){return!uj($)}function c1($){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:a0()}).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++}},q=()=>{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},z=()=>{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(q())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])))z();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 q=$[X];if(q==="}")Q++;else if(q==="{"){if(Q--,Q===0){G=X;break}}}if(G===-1)return;let K=$.slice(G+1,J);for(let q of pj(K)){let z=q.trim();if(!z||z.startsWith("..."))continue;let U=cj(z);if(U===-1)continue;let W=z.slice(0,U).trim();if(!/^[A-Z_$][\w$]*$/i.test(W))continue;if(Z[W]!==void 0)continue;let _=z.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 zY($,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(),q=Y.__importedComponents;if(q){for(let L of[Q,Q.toLowerCase(),G(Q),K(Q)])if(q.has(L))return!0}let z=[...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 n(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 z)if(await n(d.join(F,O)))return!0}return!1}function nj($){return $==="visible"||$==="idle"||$==="interaction"||$.startsWith("media:")}async function q1($,Z,Y,X,J,Q,G,K=new Set,q){let{extractVariables:z}=await Promise.resolve().then(() => (a5(),I4)),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((x)=>x.charAt(0).toUpperCase()+x.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 x of C)if(O.has(x)){F=O.get(x);break}}let V=[];if(!F){let C=[`${L}.stx`,`${j(L)}.stx`,`${H(L)}.stx`],x=[...new Set(C)],f=J.__originalFilePath,h=[];if(f){let U0=d.join(d.dirname(f),"components");h.push(U0)}if(X)h.push(X);let l=d.join(d.dirname(Q),"components");if(!h.includes(l))h.push(l);if(G.componentsDir&&G.componentsDir!==X&&!h.includes(G.componentsDir))h.push(G.componentsDir);let r=G._pluginComponentDirs;if(Array.isArray(r)){for(let U0 of r)if(typeof U0==="string"&&!h.includes(U0))h.push(U0)}let G0=typeof G.root==="string"?d.resolve(G.root):void 0,M0=G0??d.dirname(Q),P0=[];if(G0)P0.push(d.resolve(G0,"resources/views/components")),P0.push(d.resolve(G0,"resources/components")),P0.push(d.resolve(G0,"src/components")),P0.push(d.resolve(G0,"components"));P0.push(d.resolve(import.meta.dir,"components"));for(let U0 of P0)if(!h.includes(U0))h.push(U0);let I1=[...new Set(h.map((U0)=>{if(!U0)return U0;return d.isAbsolute(U0)?U0:d.resolve(M0,U0)}))];if(h.length=0,h.push(...I1),L.startsWith("./")||L.startsWith("../"))F=d.resolve(d.dirname(Q),`${L}.stx`),V.push(F);else for(let U0 of h){if(!U0)continue;for(let D1 of x){let M5=d.join(U0,D1);if(V.push(M5),await n(M5)){F=M5;break}}if(F)break;if(!F)try{let D1=await import("fs");if(!D1.statSync(U0,{throwIfNoEntry:!1})?.isDirectory())continue;let z$=8,e=[{path:U0,depth:0}];while(e.length>0&&!F){let r0=e.pop();if(r0.depth>=z$)continue;let X7;try{X7=D1.readdirSync(r0.path,{withFileTypes:!0})}catch{continue}for(let U$ of X7){if(!U$.isDirectory())continue;if(U$.name==="node_modules"||U$.name.startsWith("."))continue;let q9=d.join(r0.path,U$.name);for(let WQ of x){let J7=d.join(q9,WQ);if(V.push(J7),await n(J7)){F=J7;break}}if(F)break;e.push({path:q9,depth:r0.depth+1})}}}catch{}if(F)break}}if(!F||!await n(F)){let C=V.length>0?`
|
|
13433
13433
|
Searched paths:
|
|
13434
13434
|
${V.map((x)=>` - ${x}`).join(`
|
|
13435
|
-
`)}`:"";return`[Error loading component: ENOENT: no such file or directory, open '${$}']${
|
|
13436
|
-
`)}`}if(Y&&g.includes("{{ text || slot }}"))g=g.replace(/\{\{\s*text\s*\|\|\s*slot\s*\}\}/g,()=>Y);let{extractSlotContent:u,applySlots:s}=await Promise.resolve().then(() => (JQ(),XQ)),{defaultSlot:T0,namedSlots:Z1}=u(Y);g=await s(g,T0||Y,Z1,N);for(let[
|
|
13435
|
+
`)}`:"";return`[Error loading component: ENOENT: no such file or directory, open '${$}']${C}`}q.add(F);let A;if(G$.has(F))A=G$.get(F);else try{A=await Bun.file(F).text(),G$.set(F,A)}catch(C){return`[Error loading component: ${C instanceof Error?C.message:String(C)}]`}let w=new Set(["__originalFilePath","__importedComponents"]),R={};for(let[C,x]of Object.entries(J))if(!C.startsWith("__")||w.has(C))R[C]=x;let N={...R,...Z,props:Z,slot:Y,__processedComponents:W,__sections:{}};ij(A,N);let M=A,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=[...A.matchAll(I)],E=[];for(let C of D){let x=C[1]||"",f=C[2]||"",h=x.includes("server");if(p1(x)&&f.trim())f=c1(f);if(h&&f)try{await z(f,N,F)}catch(r){}if(!h){let r=f.replace(/^\s*const\s*\{[^}]+\}\s*=\s*window\.stx\s*;?\s*\n?/gm,"");if(r.includes("{{")&&r.includes("}}"))r=x0(r,N,F);let G0=x.replace(/\s*\bts\b/g,"").replace(/\s*\blang\s*=\s*["']?(ts|typescript)["']?/gi,"");E.push(`<script${G0}>${r}</script>`)}}let k=A.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),S=k?k[1]:"",y=k?k[2]:"",v="",m=S&&/\bscoped\b/i.test(S);if(k)v=`<style${S}>${y}</style>`;let g=M;if(g=g.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),k)g=g.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");{let C=/@push\s*\(\s*['"]styles['"]\s*\)([\s\S]*?)@endpush/gi,x=[];if(g=g.replace(C,(f,h)=>{let l=h.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i);if(l)x.push(`<style${l[1]}>${l[2]}</style>`);return""}),g=g.replace(/@push\s*\(\s*['"][^'"]+['"]\s*\)[\s\S]*?@endpush/gi,""),x.length>0)v=`${v}${x.join(`
|
|
13436
|
+
`)}`}if(Y&&g.includes("{{ text || slot }}"))g=g.replace(/\{\{\s*text\s*\|\|\s*slot\s*\}\}/g,()=>Y);let{extractSlotContent:u,applySlots:s}=await Promise.resolve().then(() => (JQ(),XQ)),{defaultSlot:T0,namedSlots:Z1}=u(Y);g=await s(g,T0||Y,Z1,N);for(let[C,x]of Object.entries(N))if(typeof x==="string"){if(x.includes("<")&&x.includes(">")||x.includes("<")||x.includes(""")){let f=L7(x);N[C]=f}}let C0=E.some((C)=>/\b(state|derived|effect)\s*(?:<[^<>()]*>)?\s*\(/.test(C)),k0={...G,componentsDir:d.dirname(F),skipSignalsRuntime:!0,skipEventDirectives:C0,defaultLayout:void 0};N.__stxProcessingDepth=(J.__stxProcessingDepth||0)+1;let J0=await B0(g,N,F,k0,q),V0=`stx_${L.replace(/[^a-zA-Z0-9]/g,"_")}_${++mj}_${Math.random().toString(36).slice(2,8)}`,W0=J0;if(C0){let C="";if(Object.keys(Z).length>0)try{C=` data-stx-props="${QQ(JSON.stringify(Z))}"`}catch{}let x=B?` stx-hydrate="${QQ(B)}"`:"";if(W0=`<div data-stx-scope="${V0}"${C}${x}>${J0}</div>`,W0=E.map((h)=>{let l=h.match(/<script([^>]*)>([\s\S]*)<\/script>/i);if(!l)return h;let[,r,G0]=l,M0=J1(G0),P0=`
|
|
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,23 +13445,23 @@ ${V.map((x)=>` - ${x}`).join(`
|
|
|
13445
13445
|
const onMount = (fn) => __scopeVars.__mountCallbacks.push(fn);
|
|
13446
13446
|
const onDestroy = (fn) => __scopeVars.__destroyCallbacks.push(fn);
|
|
13447
13447
|
|
|
13448
|
-
${
|
|
13448
|
+
${M0}
|
|
13449
13449
|
|
|
13450
13450
|
// Register all defined signals and functions in this scope
|
|
13451
13451
|
const __localVars = {};
|
|
13452
13452
|
try {
|
|
13453
|
-
${lj(
|
|
13453
|
+
${lj(M0).map((I1)=>`if (typeof ${I1} !== 'undefined') __localVars['${I1}'] = ${I1};`).join(`
|
|
13454
13454
|
`)}
|
|
13455
13455
|
}
|
|
13456
13456
|
catch (e) {}
|
|
13457
13457
|
Object.assign(__scopeVars, __localVars);
|
|
13458
13458
|
})();`;if(B)return`<script type="stx/island" data-stx-island="${V0}" data-stx-scoped${r}>${P0}</script>`;return`<script data-stx-scoped${r}>${P0}</script>`}).join(`
|
|
13459
13459
|
`)+`
|
|
13460
|
-
`+W0,
|
|
13461
|
-
`+
|
|
13462
|
-
`+
|
|
13460
|
+
`+W0,v)W0+=`
|
|
13461
|
+
`+v}else{if(v)W0+=`
|
|
13462
|
+
`+v;if(E.length>0){let C=N.__stx_event_bindings||[],x=J$(N),f=await Promise.all(E.map(async(h)=>{let l=h.match(/<script\b[^>]*>([\s\S]*?)<\/script>/);if(!l)return h;return await Q$(l[1],{eventBindings:C,templateContent:W0,filePath:F,projectRoot:process.cwd(),serverData:x})}));W0+=`
|
|
13463
13463
|
`+f.join(`
|
|
13464
|
-
`),N.__stx_event_bindings=[]}}if(m){let
|
|
13464
|
+
`),N.__stx_event_bindings=[]}}if(m){let C=b4(W0,F);if(C.hasScoped)W0=C.html}return W0}catch(j){return`[Error processing component: ${j instanceof Error?j.message:String(j)}]`}finally{U.delete($)}}async function n($){return Bun.file($).exists()}function K9($,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 e$($,Z,Y,X){let J=await oj($,Z,Y,X);if(J===null)return null;let Q=K9(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 q=d.isAbsolute(K)?K:d.resolve(process.cwd(),K);if(K9(J,q))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=K9(_,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 n(B)&&X)X.add(B);return B}let G=d.join(J,$);if(await n(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 n(B)){if(Y.debug)console.log(`Found direct path with extension: ${B}`);if(X)X.add(B);return B}}let K="",q=d.resolve(J),z=process.cwd();for(let _=0;_<10;_++){let B=d.join(q,"layouts"),j=!1;try{j=dj.statSync(B,{throwIfNoEntry:!1})?.isDirectory()??!1}catch{}if(j){K=B;break}let H=d.dirname(q);if(H===q||H.length<z.length)break;q=H}if(K){let _=$.startsWith("layouts/")?$.slice(8):$,B=d.join(K,_);if(await n(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 n(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 n(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 n(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 n(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 n(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 n(K)){let _=d.join(K,$);if(await n(_)){if(Y.debug)console.log(`Found in partials layouts dir: ${_}`);if(X)X.add(_);return _}if(!$.endsWith(".stx")){let B=`${_}.stx`;if(await n(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 n(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 n(_)){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 n(_)){if(Y.debug)console.log(`Found in temp layouts dir: ${_}`);if(X)X.add(_);return _}if(!$.endsWith(".stx")){let B=`${_}.stx`;if(await n(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 GQ($,Z,Y){let X=0,J="",Q="";try{if(typeof Z==="number"&&Z>=0){let G=$.split(`
|
|
13465
13465
|
`),K=0;for(let q=0;q<G.length;q++)if(K+=G[q].length+1,K>=Z){X=q+1,J=G[q].trim();let z=Math.max(0,q-2),U=Math.min(G.length,q+3);Q=G.slice(z,U).map((W,_)=>{let B=z+_+1;return`${B===X?"> ":" "}${B}: ${W}`}).join(`
|
|
13466
13466
|
`);break}}else if(Y){let G=$.indexOf(Y);if(G>=0)return GQ($,G)}}catch{}return{lineNumber:X,lineContent:J,context:Q}}function Q0($,Z,Y,X,J,Q){let{lineNumber:G,context:K}=GQ(X,J,Q),q=Y.split("/").pop(),z=0;if(typeof J==="number"&&J>=0&&X){let W=X.lastIndexOf(`
|
|
13467
13467
|
`,Math.max(0,J-1));z=J-(W+1)+1}let U="";if(G>0)U+=`
|
|
@@ -13476,7 +13476,7 @@ ${t.yellow}${t.bold}Message:${t.reset} ${Z}
|
|
|
13476
13476
|
`,K)U+=`
|
|
13477
13477
|
${t.blue}${t.bold}Context:${t.reset}
|
|
13478
13478
|
${t.dim}${K}${t.reset}
|
|
13479
|
-
`;return U}function cT(){G$.clear()}function iT(){return{size:G$.size,maxSize:500}}var G$,mj=0,t;var A0=
|
|
13479
|
+
`;return U}function cT(){G$.clear()}function iT(){return{size:G$.size,maxSize:500}}var G$,mj=0,t;var A0=P(()=>{t5();l0();Z5();V4();t1();f6();tJ();a5();G$=new b5(500);t={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 EY={};p(EY,{renderVendorStyleTags:()=>zQ,processClientScript:()=>Q$,generateServerDataBridge:()=>c4,extractBridgeData:()=>J$,extractAndStripCssImports:()=>qQ});import r1 from"path";import K$ 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=r1.join(Y,"node_modules",$,"package.json");if(K$.existsSync(X))return r1.dirname(X);let J=r1.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(K$.readFileSync(r1.join(X,"package.json"),"utf8"))}catch{return null}let Q=`.${Y.subpath}`,G=tj(J.exports,Q);if(!G)return null;let K=r1.resolve(X,G);return K$.existsSync(K)?K:null}function qQ($,Z){let Y=Z.filePath?r1.dirname(Z.filePath):Z.projectRoot||process.cwd(),X=Z.projectRoot||process.cwd(),J=new Set,Q=[];return{code:$.replace(sj,(K,q)=>{let z;try{if(q.startsWith("./")||q.startsWith("../")||q.startsWith("/")){if(z=q.startsWith("/")?q:r1.resolve(Y,q),!K$.existsSync(z))throw Error(`file not found: ${z}`)}else{let U=null;try{U=Bun.resolveSync(q,X)}catch{U=ej(q,X)}if(!U)throw Error(`could not resolve ${q} (Bun.resolveSync + exports fallback both failed)`);z=U}}catch(U){return console.warn(`[stx:vendor-css] could not resolve ${JSON.stringify(q)} (from ${Z.filePath||"<unknown>"}): ${U?.message||U}`),""}if(J.has(z))return"";J.add(z);try{let U=K$.readFileSync(z,"utf8");Q.push({source:q,resolvedPath:z,contents:U})}catch(U){console.warn(`[stx:vendor-css] could not read ${z}: ${U?.message||U}`)}return""}),styles:Q}}function $H($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function zQ($){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,11 +13542,11 @@ ${z}${F}
|
|
|
13542
13542
|
'use strict';
|
|
13543
13543
|
${X}${Y}
|
|
13544
13544
|
${z}
|
|
13545
|
-
})()</script>`}var sj,ZH,YH,XH,KH,WH;var t5=
|
|
13545
|
+
})()</script>`}var sj,ZH,YH,XH,KH,WH;var t5=P(()=>{A0();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 q$ from"fs";import M1 from"path";import*as UQ from"readline";function BH($,Z){let Y=$.split(" "),X=Y[0];if(Y.length===1)return Object.keys(a1).filter((J)=>J.startsWith(X));if(["render","cat","load","cd"].includes(X)){let J=Y.slice(1).join(" "),Q=M1.dirname(J)||".",G=M1.basename(J),K=M1.resolve(Z.cwd,Q);if(q$.existsSync(K)&&q$.statSync(K).isDirectory())try{return q$.readdirSync(K).filter((z)=>z.startsWith(G)).map((z)=>`${X} ${Q==="."?"":`${Q}/`}${z}`)}catch{return[]}}if(["unset","eval","set"].includes(X)){let J=Y[1]||"";return Object.keys(Z.context).filter((Q)=>Q.startsWith(J)).map((Q)=>`${X} ${Q}`)}return[]}async function JM($={}){let Z={context:$.context||{},cwd:$.cwd||process.cwd(),history:[],running:!0,lastResult:null},Y=UQ.createInterface({input:process.stdin,output:process.stdout,completer:(J)=>{return[BH(J,Z),J]},historySize:$.maxHistory||100});console.log(`
|
|
13546
13546
|
${b.bold}${b.blue}stx Interactive Mode${b.reset}
|
|
13547
13547
|
${b.dim}Type 'help' for available commands, 'exit' to quit${b.reset}
|
|
13548
13548
|
`);let X=()=>{let J=Z.cwd.replace(process.env.HOME||"","~");Y.question(`${b.cyan}stx${b.reset} ${b.dim}${J}${b.reset} ${b.green}>${b.reset} `,async(Q)=>{let G=Q.trim();if(!G){if(Z.running)X();return}Z.history.push(G);let K=G.match(/(?:[^\s"]|"[^"]*")+/g)||[],q=K[0]?.toLowerCase(),z=K.slice(1).map((U)=>U.replace(/^"|"$/g,""));if(q&&a1[q])try{await a1[q].handler(z,Z)}catch(U){console.log(`${b.red}Error:${b.reset}`,U)}else if(q)if(G.includes("{{")||G.includes("}}"))try{let U=await x0(G,Z.context,"eval");console.log(`${b.green}\u2192${b.reset} ${U}`)}catch{console.log(`${b.red}Unknown command: ${q}${b.reset}`),console.log(`${b.dim}Type 'help' for available commands${b.reset}`)}else console.log(`${b.red}Unknown command: ${q}${b.reset}`),console.log(`${b.dim}Type 'help' for available commands${b.reset}`);if(Z.running)X();else Y.close()})};Y.on("SIGINT",()=>{console.log(`
|
|
13549
|
-
${b.dim}(Use 'exit' to quit)${b.reset}`),X()}),X()}var b,a1;var jH=
|
|
13549
|
+
${b.dim}(Use 'exit' to quit)${b.reset}`),X()}),X()}var b,a1;var jH=P(()=>{l0();V4();b={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m"},a1={help:{description:"Show available commands",usage:"help [command]",handler:async($,Z)=>{if($[0]&&a1[$[0]]){let Y=a1[$[0]];console.log(`
|
|
13550
13550
|
${b.bold}${$[0]}${b.reset} - ${Y.description}`),console.log(` Usage: ${b.cyan}${Y.usage}${b.reset}
|
|
13551
13551
|
`)}else{console.log(`
|
|
13552
13552
|
${b.bold}Available Commands:${b.reset}
|