@stacksjs/stx 0.2.173 → 0.2.175
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +340 -334
- package/dist/client-script.js +1 -0
- package/dist/component-renderer.js +17 -0
- package/dist/craft.js +86 -80
- package/dist/pwa.js +144 -138
- package/dist/runtime-injection.js +1 -0
- package/dist/signals.js +29 -24
- package/dist/ssg.js +90 -84
- package/dist/utils.js +1 -0
- package/package.json +5 -5
package/dist/pwa.js
CHANGED
|
@@ -1429,7 +1429,7 @@ else {
|
|
|
1429
1429
|
style="--stx-transition-duration: ${G}ms; --stx-transition-ease: ${Q}; --stx-transition-delay: ${q}ms;">${X}</div>`},hasEndTag:!0,description:"Applies transition effects to an element"},F2={name:"scrollAnimate",handler:(X,$,Z,Y)=>{if($.length<1)return`<div class="stx-error">@scrollAnimate directive requires at least an animation type</div>${X}`;let J=$[0],G=$.length>1?Number.parseInt($[1],10)||300:300,Q=$.length>2?$[2]||"ease":"ease",q=$.length>3?Number.parseFloat($[3])||0.2:0.2,K=$.length>4?Number.parseInt($[4],10)||0:0,U=`stx-scroll-${Math.random().toString(36).substr(2,9)}`,W=`--stx-transition-duration: ${G}ms; --stx-transition-ease: ${Q}; --stx-transition-delay: ${K}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="${U}" class="${w}" style="${W}" data-threshold="${q}">${X}</div>`},hasEndTag:!0,description:"Applies animations that trigger when scrolled into view"},V2={name:"animationGroup",handler:(X,$,Z,Y)=>{if($.length<2)return`<div class="stx-error">@animationGroup directive requires a group name and at least one element selector</div>${X}`;let J=$[0],G=$.slice(1).map((U)=>U.startsWith("#")||U.startsWith(".")?U:`#${U}`),Q=Z.staggerDelay||50,q=Z.sequence||!0,K=_U(J,G,{staggerDelay:Q,sequence:q});return`${X}
|
|
1430
1430
|
${K}`},hasEndTag:!1,description:"Coordinates multiple animations together as a group"},A2={name:"motion",handler:(X,$,Z,Y)=>{let J=$.length>0?$[0].toLowerCase()==="true":!0,G=wU();return`<div data-animate="${J?"auto":"true"}">${X}</div>${G}`},hasEndTag:!0,description:"Controls motion and animation preferences"}});function H$(X){return X.split(/[\\/]/).filter(Boolean).slice(0,-1).some((Z)=>$7.includes(Z))}function Z7(X){return H$(X.replace(/^\//,""))}var $7;var GX=E(()=>{$7=["components","layouts","partials","emails"]});import _5 from"fs";import Y7 from"path";function J7(X,$){let Z=X.filter((Q)=>!Z7(Q.pattern)),Y=["// Auto-generated by STX - do not edit"];if(Z.length===0)Y.push("// No page routes found \u2014 route paths stay typed as string.","export {}","");else{Y.push("declare module '@stacksjs/stx' {"," interface KnownRoutes {");for(let Q of Z){let q=[];for(let U of Q.params){let W=Q.pattern.includes(`:${U}?`)?"?":"";q.push(`${U}${W}: string`)}let K=q.join("; ");Y.push(` '${Q.pattern}': { ${K} }`)}Y.push(" }","}","","export {}","")}let J=Y.join(`
|
|
1431
1431
|
`),G=Y7.join($,"route-types.d.ts");try{if(_5.existsSync(G)&&_5.readFileSync(G,"utf8")===J)return;_5.mkdirSync($,{recursive:!0}),_5.writeFileSync(G,J)}catch{}}function G7(X,$,Z){let Y=process.cwd(),J=Y7.relative(Y,Z),G=X.filter((q)=>!Z7(q.pattern)),Q=["// Auto-generated by stx \u2014 do not edit",`// Source: ${J||"pages"}/`,"","export const routes = ["];for(let q of G){let K=Y7.relative(Y,q.filePath).replace(/\\/g,"/"),U=JSON.stringify(q.params),W=q.layout?`, layout: '${Y7.relative(Y,q.layout).replace(/\\/g,"/")}'`:"";Q.push(` { pattern: '${q.pattern}', filePath: '${K}', isDynamic: ${q.isDynamic}, params: ${U}${W} },`)}Q.push("] as const",""),Q.push("export type RouteName = typeof routes[number]['pattern']",""),_5.mkdirSync($,{recursive:!0}),_5.writeFileSync(Y7.join($,"routes.ts"),Q.join(`
|
|
1432
|
-
`))}var O$=E(()=>{GX()});import
|
|
1432
|
+
`))}var O$=E(()=>{GX()});import T2 from"path";function QX(X,$){let Y=T2.relative($,X).replace(/\.(stx|md)$/,"");if(Y=Y.split(T2.sep).join("/"),Y==="index")return"/";if(Y.endsWith("/index"))Y=Y.slice(0,-6);return Y=Y.replace(/\[\[([^\]]+)\]\]/g,":$1?"),Y=Y.replace(/\[([^\]]+)\]/g,":$1"),Y=Y.replace(/:\.\.\.([^/]+)/g,":$1*"),`/${Y}`}function Q7(X){let $=[],Z="",Y=0;while(Y<X.length){let J=X.slice(Y),G=/^\/:([^/?*]+)\?/.exec(J);if(G){$.push(G[1]),Z+="(?:/([^/]+))?",Y+=G[0].length;continue}let Q=/^:([^/?*]+)\*/.exec(J);if(Q){$.push(Q[1]),Z+="(.+)",Y+=Q[0].length;continue}let q=/^:([^/?*]+)/.exec(J);if(q){$.push(q[1]),Z+="([^/]+)",Y+=q[0].length;continue}Z+=X[Y].replace(/[.+^${}()|[\]\\*?]/g,"\\$&"),Y+=1}return{regex:new RegExp(`^${Z}$`),params:$}}function qX(X,$){let Z=X===""?"/":X;for(let Y of $){let J=Z.match(Y.regex);if(J){let G={};return Y.params.forEach((Q,q)=>{G[Q]=J[q+1]}),{route:Y,params:G}}}return null}function N2(X){let $=X.replace(/\[\[([^\]]+)\]\]/g,":$1?").replace(/\[([^\]]+)\]/g,":$1").replace(/:\.\.\.([^/]+)/g,":$1*");return Q7($)}var L$=()=>{};import HU from"fs";import F$ from"path";function KX(X,$){let Z=[],Y=F$.dirname(X);while(Y.startsWith($)||Y===$){let J=F$.join(Y,"_layout.stx");if(HU.existsSync(J))Z.unshift(J);if(Y===$)break;Y=F$.dirname(Y)}return Z}var V$=()=>{};import A$ from"fs";import H5 from"path";function M2(X,$){let Z=[];if(!A$.existsSync(X))return Z;let Y=A$.readdirSync(X,{withFileTypes:!0});for(let J of Y){let G=H5.join(X,J.name);if(J.isDirectory()){if(J.name.startsWith("."))continue;if($7.includes(J.name))continue;Z.push(...M2(G,$))}else if(J.isFile()){let Q=H5.extname(J.name);if($.includes(Q)){if(J.name.startsWith("_")&&J.name!=="_layout.stx")continue;if(J.name==="_layout.stx")continue;Z.push(G)}}}return Z}class O5{routes;pagesDir;pagesDirs;config;constructor(X,$={}){this.config=$;let Z=$.pagesDirs&&$.pagesDirs.length>0?$.pagesDirs:[$.pagesDir||"pages"];this.pagesDirs=Z.map((Q)=>H5.resolve(X,Q)),this.pagesDir=this.pagesDirs[0];let Y=$.extensions||[".stx"],J=new Set;this.routes=[];for(let Q of this.pagesDirs){let q=M2(Q,Y);for(let K of q){let U=QX(K,Q);if(J.has(U))continue;J.add(U);let{regex:W,params:w}=Q7(U),z=$.layouts!==!1?KX(K,Q):[];this.routes.push({pattern:U,regex:W,params:w,filePath:K,isDynamic:w.length>0,layout:z.length>0?z[z.length-1]:void 0})}}this.routes.sort((Q,q)=>{if(!Q.isDynamic&&q.isDynamic)return-1;if(Q.isDynamic&&!q.isDynamic)return 1;let K=Q.pattern.split("/").length,U=q.pattern.split("/").length;if(K!==U)return U-K;return Q.pattern.localeCompare(q.pattern)});let G=H5.resolve(X,$.stateDir||process.env.STX_DIR?.trim()||".stx");J7(this.routes,G),G7(this.routes,G,this.pagesDir)}match(X){let $=X===""?"/":X;for(let Z of this.routes){let Y=$.match(Z.regex);if(Y){let J={};return Z.params.forEach((G,Q)=>{J[G]=Y[Q+1]}),{route:Z,params:J}}}return null}resolve(X,$){let Z=this.routes.find((J)=>J.pattern===X||J.filePath.includes(X));if(!Z)return"#not-found";let Y=Z.pattern;if($)for(let[J,G]of Object.entries($))Y=Y.replace(`:${J}`,encodeURIComponent(G));return Y}addRoute(X){this.routes.push(X),this.routes.sort(($,Z)=>{if(!$.isDynamic&&Z.isDynamic)return-1;if($.isDynamic&&!Z.isDynamic)return 1;return $.pattern.localeCompare(Z.pattern)})}getLayout(X){return X.layout??null}}function k2(X,$){return new O5(X,$)}function R$(X,$){let Z=[`${$}.stx`,"error.stx"];for(let Y of Z){let J=H5.join(X,Y);if(A$.existsSync(J))return J}return null}function T$(X,$){return X.map((Z)=>{let Y=H5.relative($,Z.filePath),J=Z.isDynamic?" (dynamic)":"";return`${Z.pattern} \u2192 ${Y}${J}`})}var I2=E(()=>{O$();L$();V$();GX()});function N$(X){UX=X.replace(/\/$/,"")}function M$(X,$,Z={}){L5[X]={path:$,name:X,params:Z}}function k$(X){for(let[$,Z]of Object.entries(X))if(typeof Z==="string")L5[$]={path:Z,name:$};else L5[$]={...Z,name:$}}function q7(X,$={},Z=!1){let Y=L5[X];if(!Y)return console.warn(`Route [${X}] not defined.`),"#undefined-route";let J={...Y.params,...$},G=Y.path;G=G.replace(/:(\w+)/g,(q,K)=>{let U=J[K];if(U===void 0)return console.warn(`Missing parameter [${K}] for route [${X}].`),`:${K}`;return delete J[K],encodeURIComponent(String(U))});let Q=Object.entries(J);if(Q.length>0){let q=Q.map(([K,U])=>`${encodeURIComponent(K)}=${encodeURIComponent(String(U))}`).join("&");G+=(G.includes("?")?"&":"?")+q}return Z&&UX?`${UX}${G}`:G}function I$(){for(let X of Object.keys(L5))delete L5[X];UX=""}var L5,UX="";var E2=E(()=>{L5={}});import D2 from"fs";import y2 from"path";function b2(X,$={}){return{type:"redirect",path:X,options:{replace:$.replace??!1,external:$.external??!1,redirectCode:$.redirectCode??302}}}function S2(X){return{type:"abort",error:typeof X==="string"?{statusCode:500,message:X}:X}}function C2(X,$={}){return{handler:X,mode:$.mode??"universal"}}function E$(X){let $={};if(!X)return $;let Z=X.split(";");for(let Y of Z){let[J,...G]=Y.split("=");if(J){let Q=J.trim(),q=G.join("=").trim();if(Q)$[Q]=decodeURIComponent(q)}}return $}function WX(X,$,Z={}){let Y=`${encodeURIComponent(X)}=${encodeURIComponent($)}`;if(Z.expires){let J=typeof Z.expires==="number"?new Date(Date.now()+Z.expires*1000):Z.expires;Y+=`; Expires=${J.toUTCString()}`}if(Z.path)Y+=`; Path=${Z.path}`;if(Z.domain)Y+=`; Domain=${Z.domain}`;if(Z.secure)Y+="; Secure";if(Z.httpOnly)Y+="; HttpOnly";if(Z.sameSite)Y+=`; SameSite=${Z.sameSite}`;return Y}function D$(X,$){let Z=X.headers.get("cookie")||"",Y=E$(Z);return{get(J){return Y[J]},set(J,G,Q={}){Y[J]=G,$.append("Set-Cookie",WX(J,G,Q))},delete(J){delete Y[J],$.append("Set-Cookie",WX(J,"",{expires:new Date(0),path:"/"}))},getAll(){return{...Y}}}}function y$(){return{get(X){if(typeof document>"u")return;return E$(document.cookie)[X]},set(X,$,Z={}){if(typeof document>"u")return;document.cookie=WX(X,$,Z)},delete(X){if(typeof document>"u")return;document.cookie=WX(X,"",{expires:new Date(0),path:"/"})},getAll(){if(typeof document>"u")return{};return E$(document.cookie)}}}function b$(){let X=typeof window<"u"&&typeof window.localStorage<"u";return{get($){if(!X)return null;try{return window.localStorage.getItem($)}catch{return null}},set($,Z){if(!X)return;try{window.localStorage.setItem($,Z)}catch{}},remove($){if(!X)return;try{window.localStorage.removeItem($)}catch{}},isAvailable(){return X}}}function wX(X,$){K7.set(X,$)}function S$(X){return K7.get(X)}function P2(X){return K7.has(X)}function v2(){K7.clear()}function x2(){return Array.from(K7.keys())}async function f2(X,$="middleware"){let Z=y2.resolve(X,$);if(!D2.existsSync(Z))return;let Y=D2.readdirSync(Z);for(let J of Y){if(!J.endsWith(".ts")&&!J.endsWith(".js"))continue;if(J.includes(".test.")||J.includes(".spec."))continue;let G=J.replace(/\.(ts|js)$/,""),Q=y2.join(Z,J);try{let K=(await import(Q)).default;if(K&&typeof K.handler==="function")wX(G,K);else if(typeof K==="function")wX(G,{handler:K,mode:"universal"})}catch(q){console.warn(`Failed to load middleware '${G}' from ${Q}:`,q)}}}function OU(X){let $={};if(!X)return $;let Z=new URLSearchParams(X);for(let[Y,J]of Z)$[Y]=J;return $}function g2(X,$,Z,Y=""){return{path:X,params:$,query:OU(Y),fullPath:Y?`${X}?${Y}`:X,meta:Z}}function h2(X,$,Z,Y){let J=Y?.isServer??typeof window>"u",G=!J,Q=new Headers;return{to:X,from:$,isClient:G,isServer:J,cookies:J&&Z?D$(Z,Q):y$(),storage:b$(),state:{},request:Z,responseHeaders:Q}}async function u2(X,$){let Z=Array.isArray(X)?X:[X],Y=$.isServer;for(let J of Z){let G=S$(J);if(!G)return console.error(`Route middleware '${J}' is not registered \u2014 failing the guard closed.`),{passed:!1,abort:{type:"abort",error:{statusCode:500,message:`Route middleware '${J}' is not registered`}},state:$.state,responseHeaders:$.responseHeaders};if(G.mode==="server"&&!Y)continue;try{let Q=await G.handler($);if(Q){if(Q.type==="redirect")return{passed:!1,redirect:Q,state:$.state,responseHeaders:$.responseHeaders};if(Q.type==="abort")return{passed:!1,abort:Q,state:$.state,responseHeaders:$.responseHeaders}}}catch(Q){return console.error(`Error in middleware '${J}':`,Q),{passed:!1,abort:{type:"abort",error:{statusCode:500,message:Q instanceof Error?Q.message:"Middleware error"}},state:$.state,responseHeaders:$.responseHeaders}}}return{passed:!0,state:$.state,responseHeaders:$.responseHeaders}}var K7;var d2=E(()=>{K7=new Map});function U7(X){let Z=X.replace(/\\/g,"/").split("/").filter(Boolean),Y=Z.lastIndexOf("layouts"),J=Y>=0?Z[Y+1]:Z.at(-1);if(!J)return"app";return J.replace(/\.stx$/i,"")||"app"}function m2(X){let $=X.match(/<meta\b[^>]*name=["']stx-layout["'][^>]*content=["']([^"']+)["'][^>]*>/i),Z=X.match(/<meta\b[^>]*name=["']stx-layout-group["'][^>]*content=["']([^"']+)["'][^>]*>/i),Y=X.match(/<!--\s*stx-layout:\s*([^ ]+)\s*-->/i),J=$?.[1]||Y?.[1]||"";return{layout:J,group:Z?.[1]||U7(J)}}function LU(X){try{return new Bun.Transpiler({loader:"js",minifyWhitespace:!0}).transformSync(X).replace(/\}(var |let |const |function )/g,"};$1").trim()}catch{return X}}function W7(){if(zX)return zX;return zX=LU(`
|
|
1433
1433
|
;(function(){
|
|
1434
1434
|
'use strict';
|
|
1435
1435
|
var ROUTER_REV=7;
|
|
@@ -3079,7 +3079,7 @@ else {
|
|
|
3079
3079
|
|
|
3080
3080
|
if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',init);else init();
|
|
3081
3081
|
})();
|
|
3082
|
-
`),zX}var zX;var l2={};n(l2,{setAppUrl:()=>
|
|
3082
|
+
`),zX}var zX;var l2={};n(l2,{setAppUrl:()=>N$,runMiddleware:()=>u2,route:()=>q7,resolveLayoutChain:()=>KX,resetRoutes:()=>I$,registerMiddleware:()=>wX,patternToRegex:()=>Q7,navigateTo:()=>b2,matchRoute:()=>qX,loadMiddlewareFromDirectory:()=>f2,isNonPageRoutePattern:()=>Z7,isNonPageRoutePath:()=>H$,hasMiddleware:()=>P2,getRouterScript:()=>W7,getMiddlewareNames:()=>x2,getMiddleware:()=>S$,generateRouteTypes:()=>J7,generateRouteManifest:()=>G7,formatRoutes:()=>T$,findErrorPage:()=>R$,filePathToPattern:()=>QX,extractLayoutMetadata:()=>m2,deriveLayoutGroup:()=>U7,defineRoutes:()=>k$,defineRoute:()=>M$,defineMiddleware:()=>C2,createStorageManager:()=>b$,createServerCookieManager:()=>D$,createRouter:()=>k2,createRouteLocation:()=>g2,createMiddlewareContext:()=>h2,createClientCookieManager:()=>y$,clearMiddleware:()=>v2,bracketPathToRegex:()=>N2,abortNavigation:()=>S2,Router:()=>O5,NON_PAGE_DIRS:()=>$7});var g1=E(()=>{I2();L$();E2();d2();V$();O$();GX()});var c2=E(()=>{g1();C$()});async function FU(X,$,Z,Y){let J=$[0]?.replace(/['"]/g,"")||"main",G=W7();if(J!=="main")G=G.replace("container:'main'",`container:'${J}'`);return`<script data-stx-router>${G}</script>`}var p2;var C$=E(()=>{c2();p2={name:"stxRouter",handler:FU,hasEndTag:!1,description:"Inject the STX SPA router script for client-side navigation"}});function i2(X){let $=X.heatmap;if(!$?.enabled)return"";let Z={...VU,...$};return`
|
|
3083
3083
|
<!-- stx Heatmap - Privacy-Compliant Tracking -->
|
|
3084
3084
|
<script>
|
|
3085
3085
|
(function() {
|
|
@@ -3480,7 +3480,7 @@ ${_}
|
|
|
3480
3480
|
`:`
|
|
3481
3481
|
`)}</p>`);if(J=q.join(`
|
|
3482
3482
|
`),Y)J=J.replace(/\n/g,`<br />
|
|
3483
|
-
`);for(let W=0;W<G.length;W++)J=J.replace(`\x00CODEBLOCK${W}\x00`,G[W]);return J=J.replace(/<p>\s*<\/p>/g,""),J.trim()}function F5(X="const",$=[],Z){let Y=$.length?U1.filter((J)=>!$.includes(J)):U1;if(Z!==void 0)Y=Y.filter((J)=>{let G=J.replace(/[$()*+.?[\\\]^{|}-]/g,"\\$&");return new RegExp(`(^|[^\\w$])${G}(?![\\w$])`).test(Z)});return`${X} { ${Y.join(", ")} } = window.stx;`}function v$(X){if(!X)return!1;return
|
|
3483
|
+
`);for(let W=0;W<G.length;W++)J=J.replace(`\x00CODEBLOCK${W}\x00`,G[W]);return J=J.replace(/<p>\s*<\/p>/g,""),J.trim()}function F5(X="const",$=[],Z){let Y=$.length?U1.filter((J)=>!$.includes(J)):U1;if(Z!==void 0)Y=Y.filter((J)=>{let G=J.replace(/[$()*+.?[\\\]^{|}-]/g,"\\$&");return new RegExp(`(^|[^\\w$])${G}(?![\\w$])`).test(Z)});return`${X} { ${Y.join(", ")} } = window.stx;`}function v$(X){if(!X)return!1;return TU.some(($)=>new RegExp(`\\b${$}\\s*(?:<[^>]*>)?\\s*\\(`).test(X))}function x$(X){if(!X)return!1;let $=Z6(X);if(NU.some((Z)=>Z.test($)))return!0;return v$($)}function t2(X){if(!X)return!1;return MU.test(Z6(X))||x$(X)}function $6(){return`{${e2.map((X)=>`'${X}':1`).join(",")}}`}function Z6(X){if(!X)return X;let $=(Z)=>Z.replace(/(<[^>]*>)|([^<]+)/g,(Y,J,G)=>J??" ".repeat(G.length));return X.replace(/(<pre\b[^>]*>)([\s\S]*?)(<\/pre>)/gi,(Z,Y,J,G)=>Y+$(J)+G).replace(/(<code\b[^>]*>)([\s\S]*?)(<\/code>)/gi,(Z,Y,J,G)=>Y+$(J)+G).replace(/<!--[\s\S]*?-->/g,(Z)=>" ".repeat(Z.length))}var U1,a2,RU,TU,NU,MU,e2,kU,X6;var X1=E(()=>{U1=["batch","computed","configureFetch","defineEmits","defineExpose","definePageMeta","defineProps","defineSlots","defineStore","derived","effect","goBack","goForward","inject","invalidateRoute","isDerived","isSignal","navigate","nextTick","onBeforeMount","onBeforeUnmount","onDestroy","onMount","onMounted","onUnmounted","peek","provide","reactive","ref","refresh","registerStoresClient","setRouteParams","state","untrack","useAsync","useClickOutside","useColorMode","useCookie","useCounter","useDark","useDebounce","useDebouncedValue","useEventListener","useFetch","useFocus","useHead","useId","useInterval","useLocalStorage","useMediaQuery","useMutation","useOptimistic","usePreferredContrast","usePreferredDark","usePreferredLight","usePreferredReducedMotion","useQuery","useReactiveProp","useRef","useRoute","useRouteParam","useRouteParams","useScrollLock","useSearchParams","useSeoMeta","useSessionStorage","useSlots","useStore","useThrottle","useTimeout","useToggle","useWebSocket","watch","watchEffect","watchMultiple","withDefaults"],a2=["onMount","onDestroy"];RU=["defineEmits","defineExpose","definePageMeta","defineProps","defineSlots","withDefaults"],TU=U1.filter((X)=>!RU.includes(X));NU=[/@if\s*=/,/@for\s*=/,/@show\s*=/,/@model\s*=/,/@bind:/,/@class\s*=/,/@style\s*=/,/\bx-data\s*=/,/\bstate\s*(?:<[^>]*>)?\s*\(/,/\bderived\s*(?:<[^>]*>)?\s*\(/,/\beffect\s*(?:<[^>]*>)?\s*\(/,/\bref\s*(?:<[^>]*>)?\s*\(/,/\bcomputed\s*(?:<[^>]*>)?\s*\(/,/\breactive\s*(?:<[^>]*>)?\s*\(/,/\bwatch\s*(?:<[^>]*>)?\s*\(/,/\bwatchEffect\s*(?:<[^>]*>)?\s*\(/,/\s:[a-z][\w-]*\s*=\s*["']/i,/\s:(?:if|else-if|else|for|show|text|html|model)\s*=/,/data-stx(?:-auto)?(?![-\w])/,/data-stx-scoped/],MU=/\s@[a-z][\w.:-]*\s*=/i;e2=["x-text","x-html","x-model","x-show","x-if","x-for","x-cloak","x-ref","x-data","x-bind","x-class","x-style","x-tooltip","x-tooltip-position"],kU=["x-init","x-transition","x-effect","x-on"],X6=[...e2,...kU]});function G6(X){let $={prevent:!1,stop:!1,once:!1,capture:!1,self:!1,passive:!1,keys:[],systemKeys:[],mouse:null,debounce:null,throttle:null};for(let Z of X){let Y=Z.toLowerCase();if(Y==="prevent")$.prevent=!0;else if(Y==="stop")$.stop=!0;else if(Y==="once")$.once=!0;else if(Y==="capture")$.capture=!0;else if(Y==="self")$.self=!0;else if(Y==="passive")$.passive=!0;else if(IU.has(Y))$.systemKeys.push(Y);else if(Y in Q6)$.mouse=Y;else if(Y in J6||/^[a-z]$/.test(Y))$.keys.push(J6[Y]||Y.toUpperCase());else if(Y.startsWith("debounce")){let J=Y.match(/debounce(?:\.(\d+))?/);$.debounce=J?.[1]?Number.parseInt(J[1],10):300}else if(Y.startsWith("throttle")){let J=Y.match(/throttle(?:\.(\d+))?/);$.throttle=J?.[1]?Number.parseInt(J[1],10):300}}return $}function q6(X){let $=[],Z=0,Y=/<([a-z][a-z0-9-]*)\s+([^>]*@[a-z][^>]*)>/gi,J;while((J=Y.exec(X))!==null){let[G,Q,q]=J,K=J.index,U=K+G.length,W=`__stx_evt_${Z++}`,w=[],z=/@([a-z][a-z0-9.]*)\s*=\s*"([^"]*)"/gi,B;while((B=z.exec(q))!==null){let[,_,H]=B,L=_.split("."),O=L[0];if(!Y6.has(O))continue;w.push({attribute:`@${_}`,event:O,handler:H,modifiers:G6(L.slice(1)),elementId:W})}let j=/@([a-z][a-z0-9.]*)\s*=\s*'([^']*)'/gi;while((B=j.exec(q))!==null){let[,_,H]=B,L=_.split("."),O=L[0];if(!Y6.has(O))continue;w.push({attribute:`@${_}`,event:O,handler:H,modifiers:G6(L.slice(1)),elementId:W})}if(w.length>0)$.push({originalTag:G,elementId:W,events:w,startIndex:K,endIndex:U})}return $}function EU(X){let $=[],{modifiers:Z}=X;if(Z.self)$.push("if ($event.target !== $el) return");for(let Y of Z.systemKeys)$.push(`if (!$event.${Y}Key) return`);if(Z.keys.length>0){let Y=Z.keys.map((J)=>`$event.key === '${J}'`).join(" || ");$.push(`if (!(${Y})) return`)}if(Z.mouse!==null){let Y=Q6[Z.mouse];$.push(`if ($event.button !== ${Y}) return`)}if(Z.prevent)$.push("$event.preventDefault()");if(Z.stop)$.push("$event.stopPropagation()");return $.join("; ")}function DU(X,$){let Z=X;if($.debounce!==null)Z=`__stx_debounce(() => { ${Z} }, ${$.debounce})`;else if($.throttle!==null)Z=`__stx_throttle(() => { ${Z} }, ${$.throttle})`;return Z}function f$(X){let $=X.trim();if(!/^[A-Za-z_$][A-Za-z0-9_$]*$/.test($))return X;return`if (typeof ${$} === 'function' && !${$}._isSignal) ${$}($event);`}function yU(X){let{modifiers:$}=X,Z=X.elementId.replace(/\\/g,"\\\\").replace(/'/g,"\\'"),Y=EU(X),J=DU(f$(X.handler),$),G=[];if($.once)G.push("once: true");if($.capture)G.push("capture: true");if($.passive)G.push("passive: true");let Q=G.length>0?`, { ${G.join(", ")} }`:"",q=J.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t");if(X.event==="mounted")return`
|
|
3484
3484
|
(function() {
|
|
3485
3485
|
var $el = document.getElementById('${Z}');
|
|
3486
3486
|
if (!$el) return;
|
|
@@ -3593,40 +3593,40 @@ else {
|
|
|
3593
3593
|
`)}
|
|
3594
3594
|
})();
|
|
3595
3595
|
</script>`}function bU(X){let $=q6(X);if($.length===0)return{template:X,bindings:[]};let Z=X,Y=[];for(let J=$.length-1;J>=0;J--){let G=$[J],Q=G.originalTag;if(!Q.includes(" id="))Q=Q.replace(/^<([a-z][a-z0-9-]*)/,`<$1 id="${G.elementId}"`);else{let q=Q.match(/id=["']([^"']+)["']/);if(q)for(let K of G.events)K.elementId=q[1]}for(let q of G.events){let K=q.attribute.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),U=new RegExp(`\\s*${K}\\s*=\\s*"[^"]*"`,"g"),W=new RegExp(`\\s*${K}\\s*=\\s*'[^']*'`,"g");Q=Q.replace(U,""),Q=Q.replace(W,"")}Z=Z.slice(0,G.startIndex)+Q+Z.slice(G.endIndex),Y.push(...G.events)}return{template:Z,bindings:Y}}function K6(X,$,Z){if(x$(X))return X;if($.__stx_sfc_mode){if(/x-data\s*=\s*["']/.test(X))return X;let{template:q,bindings:K}=bU(X),U=$.__stx_event_bindings||[];return $.__stx_event_bindings=[...U,...K],q}let Y=q6(X);if(Y.length===0)return X;let J=X;for(let q=Y.length-1;q>=0;q--){let K=Y[q],U=K.originalTag;if(!U.includes(" id="))U=U.replace(/^<([a-z][a-z0-9-]*)/,`<$1 id="${K.elementId}"`);else{let W=U.match(/id=["']([^"']+)["']/);if(W)for(let w of K.events)w.elementId=W[1]}for(let W of K.events){let w=W.attribute.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),z=new RegExp(`\\s*${w}\\s*=\\s*"[^"]*"`,"g"),B=new RegExp(`\\s*${w}\\s*=\\s*'[^']*'`,"g");U=U.replace(z,""),U=U.replace(B,"")}J=J.slice(0,K.startIndex)+U+J.slice(K.endIndex)}let G=g$(Y.flatMap((q)=>q.events)),Q=J.lastIndexOf("</body>");if(Q!==-1)J=J.slice(0,Q)+G+`
|
|
3596
|
-
`+J.slice(Q);else J+=G;return J}var Y6,J6,IU,Q6;var h$=E(()=>{
|
|
3596
|
+
`+J.slice(Q);else J+=G;return J}var Y6,J6,IU,Q6;var h$=E(()=>{X1();Y6=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"]),J6={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"},IU=new Set(["ctrl","alt","shift","meta"]),Q6={left:0,middle:1,right:2}});function f0(X){let $=/import\s*\{([^}]+)\}\s*from\s*['"](@stores|stx\/stores)['"]\s*;?\n?/g;X=X.replace($,(Y,J)=>{return`const { ${J.split(",").map((Q)=>Q.trim()).filter(Boolean).join(", ")} } = window.__STX_STORES__
|
|
3597
3597
|
`});let Z=/import\s*\{([^}]+)\}\s*from\s*['"]@composables['"]\s*;?\n?/g;return X=X.replace(Z,(Y,J)=>{return`const { ${J.split(",").map((Q)=>Q.trim()).filter(Boolean).join(", ")} } = window.__composables
|
|
3598
3598
|
`}),X}function jX(X){return X.replace(/^import\s+[^'"]*?from\s*['"][^'"]+['"]\s*;?[ \t]*$/gm,"").replace(/^import\s+['"][^'"]+['"]\s*;?[ \t]*$/gm,"")}function SU(X,$){let Z=X[$],Y=$+1;while(Y<X.length){if(X[Y]==="\\"){Y+=2;continue}if(X[Y]===Z)return Y+1;Y++}return X.length}function CU(X,$){let Z=$+1;while(Z<X.length){if(X[Z]==="\\"){Z+=2;continue}if(X[Z]==="`")return Z+1;if(X[Z]==="$"&&X[Z+1]==="{"){if(Z=BX(X,Z+2),Z<X.length)Z++;continue}Z++}return X.length}function BX(X,$){let Z=1,Y=$;while(Y<X.length){let J=X[Y];if(J==="\\"){Y+=2;continue}if(J==='"'||J==="'"){Y=SU(X,Y);continue}if(J==="`"){Y=CU(X,Y);continue}if(J==="/"&&X[Y+1]==="/"){while(Y<X.length&&X[Y]!==`
|
|
3599
|
-
`)Y++;continue}if(J==="/"&&X[Y+1]==="*"){Y+=2;while(Y<X.length&&X.slice(Y,Y+2)!=="*/")Y++;Y+=2;continue}if(J==="{"){Z++,Y++;continue}if(J==="}"){if(Z--,Z===0)return Y;Y++;continue}Y++}return X.length}function
|
|
3599
|
+
`)Y++;continue}if(J==="/"&&X[Y+1]==="*"){Y+=2;while(Y<X.length&&X.slice(Y,Y+2)!=="*/")Y++;Y+=2;continue}if(J==="{"){Z++,Y++;continue}if(J==="}"){if(Z--,Z===0)return Y;Y++;continue}Y++}return X.length}function l0(X){let $="",Z=0;while(Z<X.length){let Y=X.slice(Z,Z+2);if(Y==="//"){while(Z<X.length&&X[Z]!==`
|
|
3600
3600
|
`)$+=" ",Z++;continue}if(Y==="/*"){while(Z<X.length&&X.slice(Z,Z+2)!=="*/")$+=X[Z]===`
|
|
3601
3601
|
`?`
|
|
3602
3602
|
`:" ",Z++;$+=" ",Z+=2;continue}let J=X[Z];if(J==='"'||J==="'"){let G=J;$+=" ",Z++;while(Z<X.length&&X[Z]!==G){if(X[Z]==="\\"){$+=" ",Z+=2;continue}$+=X[Z]===`
|
|
3603
3603
|
`?`
|
|
3604
|
-
`:" ",Z++}$+=" ",Z++;continue}if(J==="`"){$+=" ",Z++;while(Z<X.length&&X[Z]!=="`"){if(X[Z]==="\\"){$+=" ",Z+=2;continue}if(X[Z]==="$"&&X[Z+1]==="{"){let G=Z+2,Q=BX(X,G);if($+=" ",$+=
|
|
3604
|
+
`:" ",Z++}$+=" ",Z++;continue}if(J==="`"){$+=" ",Z++;while(Z<X.length&&X[Z]!=="`"){if(X[Z]==="\\"){$+=" ",Z+=2;continue}if(X[Z]==="$"&&X[Z+1]==="{"){let G=Z+2,Q=BX(X,G);if($+=" ",$+=l0(X.slice(G,Q)),Q<X.length)$+=" ";Z=Q+1;continue}$+=X[Z]===`
|
|
3605
3605
|
`?`
|
|
3606
3606
|
`:" ",Z++}$+=" ",Z++;continue}$+=J,Z++}return $}function PU(){let X=globalThis;return X[U6]??=new Map,X[U6]}function t(X,$){let Z=PU(),Y=`${import.meta.url}\x00${X}`,J=Z.get(Y);if(J)return J;let G=$();return Z.set(Y,G),G.catch(()=>{if(Z.get(Y)===G)Z.delete(Y)}),G}var U6;var z7=E(()=>{U6=Symbol.for("stx.lazy-module-promises")});function V5(X){if(!X||X.indexOf("</")===-1)return X;return X.replace(vU,"<\\/$1")}var vU;var u$=E(()=>{vU=/<\/(script)/gi});import xU from"process";function S0(X="STX_PUBLIC_"){let $={},Z={};for(let[Y,J]of Object.entries(xU.env)){if(!Y.startsWith(X)||J===void 0)continue;$[`import.meta.env.${Y}`]=JSON.stringify(J),Z[Y]=J}return $["import.meta.env"]=JSON.stringify(Z),$}var F1=()=>{};function fU(X){if(!X||typeof X!=="object")return!1;let $=X;return typeof $.message==="string"&&($.name==="BuildMessage"||$.name==="ResolveMessage"||("position"in $))}function gU(X){if(X&&typeof X==="object"&&Array.isArray(X.errors))return X.errors;return[X]}function d$(X,$){let Z=[];for(let Y of gU(X)){if(fU(Y)){let J=Y.position||void 0;Z.push({file:$||J?.file,line:J?.line,column:J?.column,message:Y.message??"",lineText:J?.lineText});continue}Z.push({file:$,message:Y instanceof Error?Y.message:String(Y)})}return Z}function W6(X,$){return d$(X,$).map((Z)=>{let Y=Z.file?`${Z.file}${Z.line?`:${Z.line}${Z.column?`:${Z.column}`:""}`:""}`:"",J=Z.lineText?`
|
|
3607
3607
|
${Z.lineText.trim()}`:"";return Y?`${Y}: ${Z.message}${J}`:`${Z.message}${J}`}).join(`
|
|
3608
3608
|
`)}var j7={};n(j7,{shouldLogBundlerDiagnostics:()=>B6,setBundlerFallbackMode:()=>mU,resolveBundlerFallback:()=>H6,recordBundleFailure:()=>_6,queueClientBundleBuild:()=>O6,hasUserImports:()=>lU,getBundleFailures:()=>uU,clearBundleFailures:()=>dU,bundleClientScript:()=>pU});import _0 from"path";import C0 from"fs";function B6(X=process.env){return X.STX_DEBUG==="true"||X.STX_DEBUG==="1"}function h1(...X){if(B6())console.log("[stx:bundler]",...X)}function _6(X,$,Z){c$.push({filePath:X||"<inline>",message:$,details:Z})}function uU(){return c$.slice()}function dU(){c$.length=0}function mU(X){l$=X}function H6(){if(l$)return l$;try{let X=_7.strict;return typeof X==="object"&&X!==null?X.bundlerFallback??"warn":"warn"}catch{return"warn"}}function lU(X){let $=/^[ \t]*import[ \t]+(?!type(?:[ \t]|{))[\s\S]*?\s+from\s+['"]([^'"]+)['"][ \t]*;?/gm,Z;while((Z=$.exec(X))!==null){let J=Z[1];if(!w6.some((Q)=>Q.test(J)))return h1("detected user import:",J),!0}let Y=/^[ \t]*import[ \t]+['"]([^'"]+)['"]/gm;while((Z=Y.exec(X))!==null){let J=Z[1];if(/\.css(?:\?.*)?$/.test(J))continue;if(!w6.some((Q)=>Q.test(J)))return h1("detected side-effect import:",J),!0}return!1}function cU(X,$,Z,Y){let J=(G,Q)=>{let q=G===Z?$:_0.dirname(G),K=_0.resolve(q,Q),U=[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 W of U)try{if(C0.existsSync(W)&&C0.statSync(W,{throwIfNoEntry:!1})?.isFile())return W}catch{}return K};return{name:"stx-client-bundle",setup(G){G.onResolve({filter:/^(stx|@stacksjs\/stx)$/},(Q)=>({path:Q.path,external:!0})),G.onResolve({filter:/^(@stores|@composables|stx\/stores)$/},(Q)=>({path:Q.path,external:!0})),G.onResolve({filter:/^\//},(Q)=>{if(C0.existsSync(Q.path))return{path:Q.path};return{path:Q.path,external:!0}}),G.onResolve({filter:/^\.\.?\//},(Q)=>{let q=J(Q.importer,Q.path);return Y.add(q),{path:q}}),G.onResolve({filter:/^[@~]\//},(Q)=>{let q=_0.resolve(X,Q.path.slice(2)),K=[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 K)if(C0.existsSync(U)&&C0.statSync(U,{throwIfNoEntry:!1})?.isFile())return h1(`resolved ${Q.path[0]}/ import:`,Q.path,"\u2192",U),Y.add(U),{path:U};return console.warn(`[stx:bundler] could not resolve ${Q.path[0]}/ import:`,Q.path),{path:q}}),G.onLoad({filter:/\.(?:[cm]?[jt]sx?|json)$/},(Q)=>{let q=_0.extname(Q.path).toLowerCase(),K=q===".json"?"json":q===".tsx"?"tsx":q===".jsx"?"jsx":q===".ts"||q===".mts"||q===".cts"?"ts":"js";if(Q.path!==Z)Y.add(Q.path);return{contents:C0.readFileSync(Q.path,"utf8"),loader:K}})}}}function O6(X){let $=globalThis,Y=($[z6]??Promise.resolve()).then(X,X);return $[z6]=Y.then(()=>{return},()=>{return}),Y}async function pU(X,$,Z={}){let Y=Z.projectRoot||process.cwd(),J=Z.minify??!1,G=Z.cacheDir||e5(Y,"bundle-cache"),Q=new Bun.CryptoHasher("md5");Q.update(`${hU}\x00${X}\x00${$}`);let q=Q.digest("hex").slice(0,12),K=_0.join(G,`${q}.js`),U=_0.join(G,`${q}.deps.json`),W=Bun.file(K);if(await W.exists()){let B=Bun.file(U),j=!0;if(await B.exists())try{let _=JSON.parse(await B.text());if(_.metadataVersion!==j6||!Array.isArray(_.files))j=!1;for(let H of Array.isArray(_.files)?_.files:[])try{if(C0.statSync(H.path).mtimeMs!==H.mtimeMs){j=!1;break}}catch{j=!1;break}}catch{j=!1}if(j)return h1("cache hit:",q),await W.text();h1("cache invalidated by dep change:",q)}let w=m$.get(q);if(w)return await w;let z=O6(()=>iU(X,$,{projectRoot:Y,minify:J,cacheDir:G,hash:q,cachePath:K,depsPath:U}));m$.set(q,z);try{return await z}finally{m$.delete(q)}}async function iU(X,$,Z){let{projectRoot:Y,minify:J,cacheDir:G,hash:Q,cachePath:q,depsPath:K}=Z,U=e5(Y,"bundle-tmp"),W=_0.join(U,`${Q}.ts`),w=_0.join(U,"out",Q);C0.mkdirSync(U,{recursive:!0}),C0.mkdirSync(w,{recursive:!0});let z=_0.dirname($),B=[],j=/^(export\s+)?(?:const|let|var)\s+(?:\{([^}]+)\}|(\w+))/gm,_=/^(export\s+)?(?:async\s+)?function\s+(\w+)/gm,H;while((H=j.exec(X))!==null){if(H[1])continue;if(H[2])H[2].split(",").forEach((F)=>{let V=F.split(":")[0].trim();if(V)B.push(V)});else if(H[3])B.push(H[3])}while((H=_.exec(X))!==null){if(H[1])continue;B.push(H[2])}let L=B.length>0?`
|
|
3609
|
-
export { ${B.join(", ")} }`:"";await Bun.write(W,X+L),h1("bundling:",Q,"from:",_0.basename($));let O=new Set;try{let F=await Bun.build({entrypoints:[W],outdir:w,target:"browser",format:"esm",minify:J,plugins:[cU(Y,z,W,O)],define:{"process.env.NODE_ENV":J?'"production"':'"development"',...S0()},root:Y});if(!F.success){let I=F.logs.filter((C)=>C.level==="error").map((C)=>C.message).join(", ");return console.warn("[stx:bundler] build failed:",I),X}let V="";for(let I of F.outputs){V=await I.text();break}let A=[];for(let I of V.matchAll(/^\s*export\s*\{([^}]*)\}\s*;?\s*$/gm))for(let C of I[1].split(",")){let S=C.trim().match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);if(S){A.push([S[2],S[1]]);continue}let b=C.trim();if(/^[A-Za-z_$][\w$]*$/.test(b))A.push([b,b])}let R=V.match(/^\s*import\s+[^;]+;?\s*$/gm)||[];V=V.replace(/^\s*import\s+[^;]+;?\s*$/gm,"").replace(/^\s*export\s*\{[^}]*\}\s*;?\s*$/gm,"").replace(/^\s*export\s+default\s+.*$/gm,"").trim();let
|
|
3610
|
-
`),M=A.map(([I])=>`${I} = ${
|
|
3609
|
+
export { ${B.join(", ")} }`:"";await Bun.write(W,X+L),h1("bundling:",Q,"from:",_0.basename($));let O=new Set;try{let F=await Bun.build({entrypoints:[W],outdir:w,target:"browser",format:"esm",minify:J,plugins:[cU(Y,z,W,O)],define:{"process.env.NODE_ENV":J?'"production"':'"development"',...S0()},root:Y});if(!F.success){let I=F.logs.filter((C)=>C.level==="error").map((C)=>C.message).join(", ");return console.warn("[stx:bundler] build failed:",I),X}let V="";for(let I of F.outputs){V=await I.text();break}let A=[];for(let I of V.matchAll(/^\s*export\s*\{([^}]*)\}\s*;?\s*$/gm))for(let C of I[1].split(",")){let S=C.trim().match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);if(S){A.push([S[2],S[1]]);continue}let b=C.trim();if(/^[A-Za-z_$][\w$]*$/.test(b))A.push([b,b])}let R=V.match(/^\s*import\s+[^;]+;?\s*$/gm)||[];V=V.replace(/^\s*import\s+[^;]+;?\s*$/gm,"").replace(/^\s*export\s*\{[^}]*\}\s*;?\s*$/gm,"").replace(/^\s*export\s+default\s+.*$/gm,"").trim();let T=`__stxBundle_${Q}`,N=A.map(([I,C])=>`${JSON.stringify(I)}: ${C}`).join(", "),k=A.map(([I])=>`var ${I} = undefined;`).join(`
|
|
3610
|
+
`),M=A.map(([I])=>`${I} = ${T}[${JSON.stringify(I)}];`).join(`
|
|
3611
3611
|
`);if(V=`${R.join(`
|
|
3612
3612
|
`)}
|
|
3613
3613
|
${k}
|
|
3614
|
-
var ${
|
|
3614
|
+
var ${T} = (function() {
|
|
3615
3615
|
${V}
|
|
3616
|
-
return { ${
|
|
3616
|
+
return { ${N} };
|
|
3617
3617
|
})();
|
|
3618
|
-
${M}`.trim(),h1("bundled:",Q,"output:",V.length,"bytes"),B.length>0&&A.length===0)return console.warn(`[stx:bundler] dropped every binding for ${_0.basename($)} (${Q}); serving the unbundled source and not caching this result`),X;C0.mkdirSync(G,{recursive:!0}),await Bun.write(q,V);let y=Array.from(O).map((I)=>{try{return{path:I,mtimeMs:C0.statSync(I).mtimeMs}}catch{return null}}).filter((I)=>I!==null);return await Bun.write(K,JSON.stringify({metadataVersion:j6,files:y})),V}catch(F){let V=d$(F,$||void 0),A=W6(F,$||void 0);if(console.warn(`[stx:bundler] error: ${A}`),_6($||"",A,V),H6()==="error")throw F;return X}finally{try{C0.rmSync(W,{force:!0}),C0.rmSync(w,{recursive:!0,force:!0})}catch{}}}var hU=5,j6=1,c$,l$,w6,m$,z6;var B7=E(()=>{F1();JX();V1();c$=[];w6=[/^stx$/,/^@stacksjs\/stx$/,/^@stores$/,/^stx\/stores$/,/^@composables$/];m$=new Map,z6=Symbol.for("stx.client-bundle-build-queue")});var M6={};n(M6,{stripCommentsAndLiterals:()=>
|
|
3618
|
+
${M}`.trim(),h1("bundled:",Q,"output:",V.length,"bytes"),B.length>0&&A.length===0)return console.warn(`[stx:bundler] dropped every binding for ${_0.basename($)} (${Q}); serving the unbundled source and not caching this result`),X;C0.mkdirSync(G,{recursive:!0}),await Bun.write(q,V);let y=Array.from(O).map((I)=>{try{return{path:I,mtimeMs:C0.statSync(I).mtimeMs}}catch{return null}}).filter((I)=>I!==null);return await Bun.write(K,JSON.stringify({metadataVersion:j6,files:y})),V}catch(F){let V=d$(F,$||void 0),A=W6(F,$||void 0);if(console.warn(`[stx:bundler] error: ${A}`),_6($||"",A,V),H6()==="error")throw F;return X}finally{try{C0.rmSync(W,{force:!0}),C0.rmSync(w,{recursive:!0,force:!0})}catch{}}}var hU=5,j6=1,c$,l$,w6,m$,z6;var B7=E(()=>{F1();JX();V1();c$=[];w6=[/^stx$/,/^@stacksjs\/stx$/,/^@stores$/,/^stx\/stores$/,/^@composables$/];m$=new Map,z6=Symbol.for("stx.client-bundle-build-queue")});var M6={};n(M6,{stripCommentsAndLiterals:()=>l0,renderVendorStyleTags:()=>HX,processClientScript:()=>L7,injectBrowserCoreAutoImports:()=>A5,generateServerDataBridge:()=>OX,generateBrowserAutoImportDestructuring:()=>$W,generateAutoImportDestructuring:()=>p$,findInterpolationEnd:()=>BX,extractBridgeData:()=>O7,extractAndStripCssImports:()=>_X,STX_AUTO_IMPORTS:()=>A6});import u1 from"path";import H7 from"fs";function rU(X){if(X.startsWith(".")||X.startsWith("/"))return null;if(X.startsWith("@")){let Z=X.match(/^(@[^/]+\/[^/]+)(\/.*)?$/);if(!Z)return null;return{pkg:Z[1],subpath:Z[2]||""}}let $=X.match(/^([^/]+)(\/.*)?$/);if(!$)return null;return{pkg:$[1],subpath:$[2]||""}}function oU(X,$){let Z=$;while(!0){let Y=u1.join(Z,"node_modules",X,"package.json");if(H7.existsSync(Y))return u1.dirname(Y);let J=u1.dirname(Z);if(J===Z)return null;Z=J}}function sU(X,$){if(!X||typeof X!=="object")return null;let Z=(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 Z(J.import);if(typeof J.default==="object")return Z(J.default)}return null};if(Object.prototype.hasOwnProperty.call(X,$))return Z(X[$]);let Y=null;for(let J of Object.keys(X)){let G=J.indexOf("*");if(G===-1)continue;let Q=J.slice(0,G),q=J.slice(G+1);if(!$.startsWith(Q)||!$.endsWith(q))continue;if($.length<Q.length+q.length)continue;if(!Y||Q.length>Y.prefix.length)Y={pattern:J,prefix:Q,suffix:q}}if(Y){let J=$.slice(Y.prefix.length,$.length-Y.suffix.length),G=Z(X[Y.pattern]);if(G)return G.replace("*",J)}return null}function aU(X,$){let Z=rU(X);if(!Z||!Z.subpath)return null;let Y=oU(Z.pkg,$);if(!Y)return null;let J;try{J=JSON.parse(H7.readFileSync(u1.join(Y,"package.json"),"utf8"))}catch{return null}let G=`.${Z.subpath}`,Q=sU(J.exports,G);if(!Q)return null;let q=u1.resolve(Y,Q);return H7.existsSync(q)?q:null}function _X(X,$){let Z=$.filePath?u1.dirname($.filePath):$.projectRoot||process.cwd(),Y=$.projectRoot||process.cwd(),J=new Set,G=[];return{code:X.replace(nU,(q,K)=>{let U;try{if(K.startsWith("./")||K.startsWith("../")||K.startsWith("/")){if(U=K.startsWith("/")?K:u1.resolve(Z,K),!H7.existsSync(U))throw Error(`file not found: ${U}`)}else{let W=null;try{W=Bun.resolveSync(K,Y)}catch{W=aU(K,Y)}if(!W)throw Error(`could not resolve ${K} (Bun.resolveSync + exports fallback both failed)`);U=W}}catch(W){return console.warn(`[stx:vendor-css] could not resolve ${JSON.stringify(K)} (from ${$.filePath||"<unknown>"}): ${W?.message||W}`),""}if(J.has(U))return"";J.add(U);try{let W=H7.readFileSync(U,"utf8");G.push({source:K,resolvedPath:U,contents:W})}catch(W){console.warn(`[stx:vendor-css] could not read ${U}: ${W?.message||W}`)}return""}),styles:G}}function tU(X){return X.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function HX(X){if(X.length===0)return"";return`${X.map(($)=>{return`<style data-stx-vendor="${tU($.source)}" data-stx-layer="vendor">
|
|
3619
3619
|
@layer vendor {
|
|
3620
3620
|
${$.contents}
|
|
3621
3621
|
}
|
|
3622
3622
|
</style>`}).join(`
|
|
3623
3623
|
`)}
|
|
3624
|
-
`}function A5(X){let $=
|
|
3624
|
+
`}function A5(X){let $=l0(X),Z=new Set;for(let q of X.matchAll(/^\s*import\s+(?:type\s+)?\{([^}]*)\}\s+from\s+['"][^'"]+['"]\s*;?\s*$/gm))for(let K of q[1].split(",")){let U=K.trim().split(/\s+as\s+/).pop()?.replace(/^type\s+/,"").trim();if(U)Z.add(U)}let Y=new Set;for(let q of $.matchAll(/\b(?:const|let|var|function|class)\s+([A-Za-z_$][\w$]*)/g))Y.add(q[1]);for(let q of $.matchAll(/\b(?:const|let|var)\s*\{([^}]*)\}/g))for(let K of q[1].split(",")){let U=K.trim().split(/[:=]/).pop()?.trim();if(U)Y.add(U)}let J=R6.filter((q)=>{if(Z.has(q)||Y.has(q))return!1;return new RegExp(`\\b${q}\\s*\\(`).test($)}),G=T6($).filter((q)=>!Z.has(q)&&!Y.has(q));if(J.length===0&&G.length===0)return{code:X,imports:J,models:G};return{code:`${[J.length>0?`import { ${J.join(", ")} } from '@stacksjs/browser'`:"",G.length>0?"import '@stacksjs/browser'":"",G.length>0?`const { ${G.join(", ")} } = window.StacksBrowser || {}`:""].filter(Boolean).join(`
|
|
3625
3625
|
`)}
|
|
3626
|
-
${X}`,imports:J,models:G}}function
|
|
3626
|
+
${X}`,imports:J,models:G}}function T6(X){let $=new Set,Z=/\b([A-Z][a-zA-Z0-9]*)\s*\.\s*(all|find|first|get|where|orderBy|orderByDesc|limit|select|pluck|create|update|delete)\s*\(/g,Y;while((Y=Z.exec(X))!==null)if(!eU.has(Y[1]))$.add(Y[1]);return Array.from($)}function XW(X){let $=new Set;for(let Z of X.matchAll(/\b(?:const|let|var|function|class)\s+([A-Za-z_$][\w$]*)/g))$.add(Z[1]);for(let Z of X.matchAll(/\b(?:const|let|var)\s*\{([^}]*)\}/g))for(let Y of Z[1].split(",")){let J=Y.trim().split(/[:=]/).pop()?.trim();if(J&&/^[A-Za-z_$][\w$]*$/.test(J))$.add(J)}return $}function N6(X){let $=new Set,Z=new Set,Y=X;Y=Y.replace(/^\s*import\s+type\s+\{[^}]*\}\s+from\s+['"][^'"]+['"]\s*;?\s*$/gm,"// [type import stripped]");let J=new Set,G=/^\s*import\s+(?:type\s+)?{\s*([^}]+)\s*}\s+from\s+['"](@stacksjs\/browser|@stacksjs\/stx|stx)['"]\s*;?\s*$/gm,Q;while((Q=G.exec(X))!==null){let U=Q[1],W=Q[2];if(Q[0].includes("import type"))continue;let w=[];for(let B of U.split(",")){let j=B.trim();if(!j||j.startsWith("type "))continue;let _=j.match(/^([A-Za-z_$][\w$]*)(?:\s+as\s+([A-Za-z_$][\w$]*))?$/);if(!_)continue;let H=_[1],L=_[2]||H;if(J.add(H),J.add(L),W==="stx"||W==="@stacksjs/stx")$.add(H);else Z.add(H);if(L!==H)w.push(`${L} = ${H}`)}let z=w.length>0?`var ${w.join(", ")}; /* [auto-import processed] */`:"// [auto-import processed]";Y=Y.replace(Q[0],z)}let q=XW(Y);for(let U of A6){if(J.has(U)||q.has(U))continue;if(new RegExp(`\\b${U}\\s*(?:<[^>]*>)?\\s*\\(`,"g").test(Y))$.add(U)}for(let U of R6){if(J.has(U)||q.has(U))continue;if(new RegExp(`\\b${U}\\b`,"g").test(Y))Z.add(U)}let K=T6(Y);for(let U of K)if(!J.has(U)&&!q.has(U))Z.add(U);return{code:Y,stxImports:Array.from($),browserImports:Array.from(Z)}}function p$(X,$){let Z=[];if(X.length>0)Z.push(` var { ${X.join(", ")} } = window.stx || window;`);if($.length>0)Z.push(` var { ${$.join(", ")} } = window.StacksBrowser || {};`);if(Z.length>0)return` // STX: auto-imported from stx and @stacksjs/browser
|
|
3627
3627
|
${Z.join(`
|
|
3628
3628
|
`)}
|
|
3629
|
-
${ZW(X,$)}`;return""}function $W(X,$=[]){let{browserImports:Z}=
|
|
3629
|
+
${ZW(X,$)}`;return""}function $W(X,$=[]){let{browserImports:Z}=N6(X),Y=new Set($);return p$([],Z.filter((J)=>!Y.has(J)))}function ZW(X,$){let Z=[...X.map((Y)=>`['${Y}', typeof ${Y}, 'stx']`),...$.map((Y)=>`['${Y}', typeof ${Y}, '@stacksjs/browser']`)];if(Z.length===0)return"";return` // STX: report auto-imports the client runtime did not provide
|
|
3630
3630
|
[${Z.join(", ")}].forEach(function (e) {
|
|
3631
3631
|
if (e[1] !== 'undefined') return;
|
|
3632
3632
|
console.error(
|
|
@@ -3635,7 +3635,7 @@ ${ZW(X,$)}`;return""}function $W(X,$=[]){let{browserImports:Z}=T6(X),Y=new Set($
|
|
|
3635
3635
|
+ 'or it should be imported from a relative path so the bundler includes it.'
|
|
3636
3636
|
);
|
|
3637
3637
|
});
|
|
3638
|
-
`}function O7(X){let $=X.__stxClientPayload;if($&&typeof $==="object"){let Y={};for(let J in $){let G=$[J];if(typeof G==="function")continue;Y[J]=G}return Y.__stxDeclaredPayload=!0,Y}let Z={};for(let Y in X){if(Y.startsWith("__")||Y.startsWith("$"))continue;let J=X[Y];if(typeof J==="function")continue;Z[Y]=J}return Z}function L6(X,$){let Z=new Set;for(let Y of X.split(",")){let J=Y.trim().replace(/^\.\.\./,"").trim();if(!J)continue;if($){let G=J.lastIndexOf(":");if(G!==-1)J=J.slice(G+1).trim()}if(J=J.split("=")[0].trim(),/^[A-Za-z_$][\w$]*$/.test(J))Z.add(J)}return Z}function YW(X,$){if(new RegExp(`(?:const|let|var|function|class)\\s+${$}\\b`).test(X))return!0;for(let Z of X.matchAll(/(?:const|let|var)\s*\{([^}]*)\}/g))if(L6(Z[1],!0).has($))return!0;for(let Z of X.matchAll(/(?:const|let|var)\s*\[([^\]]*)\]/g))if(L6(Z[1],!1).has($))return!0;return!1}function JW(X,$){return new RegExp(`(?<![.#\\w$])${$}(?![\\w$])`).test(X)}function QW(X,$){let Z=GW.test(X),Y=$.length>32768;if(!Z&&!Y)return;if(F6.has(X))return;if(F6.add(X),Z)console.warn(`[stx] server\u2192client bridge is publishing "${X}" into the page body. If it holds a credential, rename it with a "__" prefix (never bridged) and pass only what the template needs. See stacksjs/stx#1831.`);if(Y)console.warn(`[stx] server\u2192client bridge is publishing ${($.length/1024).toFixed(1)}KB under "${X}". Every byte ships in the HTML on each request; prefix the binding with "__" and project just the fields the client reads.`)}function OX(X,$){if(!$)return"";let Z=
|
|
3638
|
+
`}function O7(X){let $=X.__stxClientPayload;if($&&typeof $==="object"){let Y={};for(let J in $){let G=$[J];if(typeof G==="function")continue;Y[J]=G}return Y.__stxDeclaredPayload=!0,Y}let Z={};for(let Y in X){if(Y.startsWith("__")||Y.startsWith("$"))continue;let J=X[Y];if(typeof J==="function")continue;Z[Y]=J}return Z}function L6(X,$){let Z=new Set;for(let Y of X.split(",")){let J=Y.trim().replace(/^\.\.\./,"").trim();if(!J)continue;if($){let G=J.lastIndexOf(":");if(G!==-1)J=J.slice(G+1).trim()}if(J=J.split("=")[0].trim(),/^[A-Za-z_$][\w$]*$/.test(J))Z.add(J)}return Z}function YW(X,$){if(new RegExp(`(?:const|let|var|function|class)\\s+${$}\\b`).test(X))return!0;for(let Z of X.matchAll(/(?:const|let|var)\s*\{([^}]*)\}/g))if(L6(Z[1],!0).has($))return!0;for(let Z of X.matchAll(/(?:const|let|var)\s*\[([^\]]*)\]/g))if(L6(Z[1],!1).has($))return!0;return!1}function JW(X,$){return new RegExp(`(?<![.#\\w$])${$}(?![\\w$])`).test(X)}function QW(X,$){let Z=GW.test(X),Y=$.length>32768;if(!Z&&!Y)return;if(F6.has(X))return;if(F6.add(X),Z)console.warn(`[stx] server\u2192client bridge is publishing "${X}" into the page body. If it holds a credential, rename it with a "__" prefix (never bridged) and pass only what the template needs. See stacksjs/stx#1831.`);if(Y)console.warn(`[stx] server\u2192client bridge is publishing ${($.length/1024).toFixed(1)}KB under "${X}". Every byte ships in the HTML on each request; prefix the binding with "__" and project just the fields the client reads.`)}function OX(X,$){if(!$)return"";let Z=l0(X),Y=$.__stxDeclaredPayload===!0,J=[];for(let[G,Q]of Object.entries($)){if(!/^[A-Za-z_$][\w$]*$/.test(G))continue;if(G.startsWith("__")||G.startsWith("$"))continue;if(!Y&&!JW(Z,G))continue;if(YW(X,G))continue;let q;try{q=JSON.stringify(Q)}catch{continue}if(q===void 0)continue;QW(G,q),J.push(` var ${G} = ${q.replace(/</g,"\\u003c")};`)}if(J.length===0)return"";return` // stx: server -> client data bridge (seeded from server scope)
|
|
3639
3639
|
${J.join(`
|
|
3640
3640
|
`)}
|
|
3641
3641
|
`}function KW(X){let $=[];if(X.self)$.push("if ($event.target !== $el) return");for(let Z of X.systemKeys)$.push(`if (!$event.${Z}Key) return`);if(X.keys.length>0){let Z=X.keys.map((Y)=>`$event.key === '${Y}'`).join(" || ");$.push(`if (!(${Z})) return`)}if(X.mouse!==null){let Z=qW[X.mouse];$.push(`if ($event.button !== ${Z}) return`)}if(X.prevent)$.push("$event.preventDefault()");if(X.stop)$.push("$event.stopPropagation()");return $.join("; ")}function UW(X,$){let{elementId:Z,event:Y,modifiers:J}=X,G=f$(X.handler),Q=KW(J),q=[];if(J.once)q.push("once: true");if(J.capture)q.push("capture: true");if(J.passive)q.push("passive: true");let K=q.length>0?`, { ${q.join(", ")} }`:"",U="";if(Q)U+=`${Q}; `;let W=G.replace(/\\/g,"\\\\").replace(/'/g,"\\'"),w=`var $emit = function(name, detail) {
|
|
@@ -3685,7 +3685,7 @@ else {
|
|
|
3685
3685
|
// STX: auto-generated event bindings
|
|
3686
3686
|
${X.map((Z,Y)=>UW(Z,Y)).join(`
|
|
3687
3687
|
`)}`}function V6(X){let $=[],Z=new Set,Y=X.replace(/^\s*import\s+.*$/gm,""),J=0,G=Y.length,Q=0;while(Q<G){let q=Y[Q];if(q==="'"||q==='"'||q==="`"){let K=q;if(Q++,K==="`"){let U=0;while(Q<G){if(Y[Q]==="\\"){Q+=2;continue}if(Y[Q]==="`"&&U===0){Q++;break}if(Y[Q]==="$"&&Y[Q+1]==="{"){U++,Q+=2;continue}if(Y[Q]==="}"&&U>0){U--,Q++;continue}Q++}}else while(Q<G){if(Y[Q]==="\\"){Q+=2;continue}if(Y[Q]===K){Q++;break}Q++}continue}if(q==="/"&&Y[Q+1]==="/"){while(Q<G&&Y[Q]!==`
|
|
3688
|
-
`)Q++;continue}if(q==="/"&&Y[Q+1]==="*"){Q+=2;while(Q<G-1&&!(Y[Q]==="*"&&Y[Q+1]==="/"))Q++;Q+=2;continue}if(q==="{"){J++,Q++;continue}if(q==="}"){J--,Q++;continue}if(J===0){let K=Y.slice(Q),U=K.match(/^(?:const|let|var)\s+([a-zA-Z_$]\w*)\s*(?::[^=]*)?=/);if(U){let z=U[1];if(!z.startsWith("_")&&!Z.has(z))$.push(z),Z.add(z);Q+=U[0].length;continue}let W=K.match(/^(?:const|let|var)\s+\{([^}]+)\}\s*=/);if(W){W[1].split(",").forEach((z)=>{let B=z.trim(),j=B.indexOf(":"),_=j>=0?B.slice(j+1).trim().split(/[\s=]/)[0]:B.split(/[\s=]/)[0];if(_&&!_.startsWith("_")&&!Z.has(_))$.push(_),Z.add(_)}),Q+=W[0].length;continue}let w=K.match(/^(?:async\s+)?function\s+([a-zA-Z_$]\w*)/);if(w){let z=w[1];if(!z.startsWith("_")&&!Z.has(z))$.push(z),Z.add(z);Q+=w[0].length;continue}}Q++}return $}function zW(X){let $=new Set,Z=/[a-zA-Z_$][a-zA-Z0-9_$]*/g;function Y(z){let B;while((B=Z.exec(z))!==null){let j=B[0];if(!wW.has(j))$.add(j)}}let J=/\{\{([\s\S]*?)\}\}/g,G;while((G=J.exec(X))!==null)Y(G[1]);let Q=/:[a-z][\w.-]*\s*=\s*"([^"]*)"/gi;while((G=Q.exec(X))!==null)Y(G[1]);let q=/:[a-z][\w.-]*\s*=\s*'([^']*)'/gi;while((G=q.exec(X))!==null)Y(G[1]);let K=/@[a-z]+(?:\.[a-z]+)*\s*=\s*"([^"]*)"/gi;while((G=K.exec(X))!==null)Y(G[1]);let U=/@[a-z]+(?:\.[a-z]+)*\s*=\s*'([^']*)'/gi;while((G=U.exec(X))!==null)Y(G[1]);let W=/@model\s*=\s*["']([^"']*)["']/gi;while((G=W.exec(X))!==null)Y(G[1]);let w=/@for\s*=\s*["'][^"']*\bin\s+([^"']+)["']/gi;while((G=w.exec(X))!==null)Y(G[1]);return $}async function L7(X,$={}){let Z=X,Y="",J=!1,G=[],Q=_X(Z,{filePath:$.filePath,projectRoot:$.projectRoot});Z=Q.code;let q=HX(Q.styles),K=A5(Z);Z=K.code,G=[...K.imports,...K.models];let{hasUserImports:U,bundleClientScript:W}=await t("stx/client-script-bundler",()=>Promise.resolve().then(() => (B7(),j7)));if(U(Z))Z=await W(Z,$.filePath||"",{projectRoot:$.projectRoot,minify:$.production}),J=!0;if($.autoImports!==!1){let O=
|
|
3688
|
+
`)Q++;continue}if(q==="/"&&Y[Q+1]==="*"){Q+=2;while(Q<G-1&&!(Y[Q]==="*"&&Y[Q+1]==="/"))Q++;Q+=2;continue}if(q==="{"){J++,Q++;continue}if(q==="}"){J--,Q++;continue}if(J===0){let K=Y.slice(Q),U=K.match(/^(?:const|let|var)\s+([a-zA-Z_$]\w*)\s*(?::[^=]*)?=/);if(U){let z=U[1];if(!z.startsWith("_")&&!Z.has(z))$.push(z),Z.add(z);Q+=U[0].length;continue}let W=K.match(/^(?:const|let|var)\s+\{([^}]+)\}\s*=/);if(W){W[1].split(",").forEach((z)=>{let B=z.trim(),j=B.indexOf(":"),_=j>=0?B.slice(j+1).trim().split(/[\s=]/)[0]:B.split(/[\s=]/)[0];if(_&&!_.startsWith("_")&&!Z.has(_))$.push(_),Z.add(_)}),Q+=W[0].length;continue}let w=K.match(/^(?:async\s+)?function\s+([a-zA-Z_$]\w*)/);if(w){let z=w[1];if(!z.startsWith("_")&&!Z.has(z))$.push(z),Z.add(z);Q+=w[0].length;continue}}Q++}return $}function zW(X){let $=new Set,Z=/[a-zA-Z_$][a-zA-Z0-9_$]*/g;function Y(z){let B;while((B=Z.exec(z))!==null){let j=B[0];if(!wW.has(j))$.add(j)}}let J=/\{\{([\s\S]*?)\}\}/g,G;while((G=J.exec(X))!==null)Y(G[1]);let Q=/:[a-z][\w.-]*\s*=\s*"([^"]*)"/gi;while((G=Q.exec(X))!==null)Y(G[1]);let q=/:[a-z][\w.-]*\s*=\s*'([^']*)'/gi;while((G=q.exec(X))!==null)Y(G[1]);let K=/@[a-z]+(?:\.[a-z]+)*\s*=\s*"([^"]*)"/gi;while((G=K.exec(X))!==null)Y(G[1]);let U=/@[a-z]+(?:\.[a-z]+)*\s*=\s*'([^']*)'/gi;while((G=U.exec(X))!==null)Y(G[1]);let W=/@model\s*=\s*["']([^"']*)["']/gi;while((G=W.exec(X))!==null)Y(G[1]);let w=/@for\s*=\s*["'][^"']*\bin\s+([^"']+)["']/gi;while((G=w.exec(X))!==null)Y(G[1]);return $}async function L7(X,$={}){let Z=X,Y="",J=!1,G=[],Q=_X(Z,{filePath:$.filePath,projectRoot:$.projectRoot});Z=Q.code;let q=HX(Q.styles),K=A5(Z);Z=K.code,G=[...K.imports,...K.models];let{hasUserImports:U,bundleClientScript:W}=await t("stx/client-script-bundler",()=>Promise.resolve().then(() => (B7(),j7)));if(U(Z))Z=await W(Z,$.filePath||"",{projectRoot:$.projectRoot,minify:$.production}),J=!0;if($.autoImports!==!1){let O=N6(Z);Z=O.code,Y=p$(O.stxImports,O.browserImports.filter((F)=>!G.includes(F)))}if(Y=`${OX(Z,$.serverData)}${Y}`,Z=f0(Z),!J&&d1($.attrs||""))Z=m1(Z);let w=WW($.eventBindings||[]),z=($.attrs||"").trim();if(/\btype\s*=\s*["']module["']/i.test(z)){let O=z.replace(/\btype\s*=\s*["']module["']/i,"").trim(),F=`type="module" data-stx-scoped${O?` ${O}`:""}`;return`${q}<script ${F}>
|
|
3689
3689
|
${V5(`${Y}${Z}
|
|
3690
3690
|
${w}`)}
|
|
3691
3691
|
</script>`}let j=v$(X),_=/function __stx_setup_/.test(Z),H=/\bstx\.mount\s*\(|\bstx\.mountEl\s*\(/.test(X);function L(O){let F=O.length>0?`
|
|
@@ -3699,7 +3699,7 @@ ${w}${F}`)}
|
|
|
3699
3699
|
'use strict';
|
|
3700
3700
|
${V5(`${Y}${Z}
|
|
3701
3701
|
${w}`)}
|
|
3702
|
-
})()</script>`}var nU,A6,R6,eU,GW,F6,qW,wW;var F7=E(()=>{h$();A0();z7();
|
|
3702
|
+
})()</script>`}var nU,A6,R6,eU,GW,F6,qW,wW;var F7=E(()=>{h$();A0();z7();X1();u$();nU=/^[ \t]*import\s+['"]([^'"]+?\.css)(\?[^'"]*)?['"]\s*;?\s*$/gm;A6=U1,R6=["browserQuery","BrowserQueryBuilder","BrowserQueryError","browserAuth","configureBrowser","getBrowserConfig","createBrowserDb","createBrowserModel","isBrowser","debounce","throttle","retry","sleep","wait","delay","waitUntil","waitWhile","lazy","clamp","rand","readableSize","useActiveElement","useDocumentVisibility","useIntervalFn"];eU=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"]);GW=/token|secret|passw|apikey|api_key|privatekey|private_key|credential|webhook|bearer|jwt|signature/i,F6=new Set;qW={left:0,middle:1,right:2};wW=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{createHash as jW}from"crypto";function k6(X){let $=X[LX];return $ instanceof Map?$:null}function I6(X){X[LX]=new Map}function E6(X,$){let Z=k6(X);if(!Z)return null;let Y=jW("sha256").update($).digest("hex").slice(0,16),J=Z.get(Y);if(J)J.instances++;else Z.set(Y,{body:$,instances:1});return Y}function D6(X,$){let Z=k6($);if(!Z?.size)return X;let Y=X;for(let[K,U]of Z){if(U.instances!==1)continue;let W=new RegExp(`window\\.__stxComponentFactories\\[${JSON.stringify(K)}\\]\\(("[^"]+")\\);`,"g");Y=Y.replace(W,(w,z)=>`(${U.body})(${z});`)}let J=[...Z].filter(([,K])=>K.instances>1);if(J.length===0)return Y;let Q=`<script data-stx-scoped data-stx-run="always" data-stx-component-factories>
|
|
3703
3703
|
(function() {
|
|
3704
3704
|
const factories = window.__stxComponentFactories = window.__stxComponentFactories || {};
|
|
3705
3705
|
${J.map(([K,U])=>` try { factories[${JSON.stringify(K)}] = factories[${JSON.stringify(K)}] || ${U.body}; }
|
|
@@ -3719,7 +3719,7 @@ catch (e) {
|
|
|
3719
3719
|
}
|
|
3720
3720
|
throw e;
|
|
3721
3721
|
}
|
|
3722
|
-
`),q=Q([]);if(G.length===$.length)return y6(q,G,Q);return y6((...U)=>{let W=Array(J.length);for(let w=0;w<J.length;w++)W[w]=U[J[w]];return q(...W)},G,Q,(U)=>{q=Q(U)})}function y6(X,$,Z,Y){let G=/^(\w+) is not defined$/,Q=X,q=[],K=new Set($);return(...U)=>{for(let W=0;W<=8;W++)try{return Q(...U)}catch(w){let z=w instanceof Error?w.message:"",B=G.exec(z);if(!(w instanceof ReferenceError)||!B)return;let j=B[1];if(K.has(j)||P6.has(j))return;K.add(j),q.push(j),Q=Z(q),Y?.(q)}return}}function VX(X){let $=X.trim(),Z=[/\beval\s*\(/i,/\bFunction\s*\(/i,/\bimport\s*\(/i,/\brequire\s*\(/i,/\bprocess\b/i,/\b__proto__\b/i,/\bconstructor\s*[.(]/i,/\bglobalThis\b/i,/\bwindow\b/i,/\bdocument\b/i,/\bfetch\s*\(/i,/\bBun\b/i,/\bDeno\b/i,/\bconsole\b/i,/\bthis\b/i,/\bReflect\b/i,/\bProxy\b/i,/\bprototype\b/i,/\.(bind|call|apply)\s*\(/i];for(let Y of Z)if(Y.test($))return!1;return!0}var BW,b6,S6,_W,C6,HW,P6;var O0=E(()=>{BW={maxSanitizeDepth:10,allowBracketNotation:!1},b6={...BW},S6=[/\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/],_W=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"]),C6=new Set(["__proto__","constructor","prototype"]),HW=/[\w)\]]\s*\[\s*['"]/;P6=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 AX(X,$){let Z=AW++,Y=`<!--__STX_${X.toUpperCase()}_${Z}__-->`;return RW.set(Y,{type:X,expression:$}),Y}var AW=0,RW;var v6=E(()=>{RW=new Map});function u6(X,$,Z,Y){Z.lastIndex=$;let J=Z.exec(X);if(!J||J.index!==$)return-1;Y.lastIndex=Z.lastIndex;let G=Y.exec(X);if(!G)return-1;return G.index+G[0].length}function A1(X,$){return u6(X,$,x6,f6)}function R5(X,$){return u6(X,$,g6,h6)}function V7(X,$){if(!X.startsWith("<!--",$))return-1;let Z=X.indexOf("-->",$+4);if(Z===-1)return-1;return Z+3}function NW(X,$){if(X.startsWith("<!--",$)){let Z=V7(X,$);return Z===-1?X.length:Z}for(let[Z,Y]of[[x6,f6],[g6,h6]]){Z.lastIndex=$;let J=Z.exec(X);if(!J||J.index!==$)continue;Y.lastIndex=Z.lastIndex;let G=Y.exec(X);return G?G.index+G[0].length:X.length}return-1}function r$(X,$){let Z=[],Y=0,J=X.length,G=!1,Q=null;while(Y<J){let q=X[Y];if(G){if(Q){if(q===Q)Q=null}else if(q==='"'||q==="'")Q=q;else if(q===">")G=!1;Y++;continue}if(q!=="<"){Y++;continue}let K=$(X,Y);if(K>Y){Z.push({start:Y,end:K,token:X.slice(Y,K)}),Y=K;continue}let U=NW(X,Y);if(U>Y){Y=U;continue}if(/^<\/?[a-zA-Z]/.test(X.slice(Y,Y+2)))G=!0;Y++}return Z}function $1(X,$,Z){let Y=r$(X,$);if(Y.length===0)return{output:X,tokens:[]};let J=Y.map((q)=>q.token),G="",Q=0;for(let q=0;q<Y.length;q++){let K=Y[q];G+=X.slice(Q,K.start),G+=Z(K.token,q),Q=K.end}return G+=X.slice(Q),{output:G,tokens:J}}function R1(X){let{output:$,tokens:Z}=$1(X,A1,(Y,J)=>`\x00STX_SCRIPT_${J}\x00`);return{output:$,scripts:Z}}function A7(X,$){if($.length===0)return X;return X.replace(/\x00STX_SCRIPT_(\d+)\x00/g,(Z,Y)=>$[+Y]??"")}var x6,f6,g6,h6;var l1=E(()=>{x6=/<script\b[^>]*>/iy,f6=/<\/script\s*>/ig,g6=/<style\b[^>]*>/iy,h6=/<\/style\s*>/ig});var n6={};n(n6,{usesSignalsInScript:()=>W1,unescapeHtml:()=>SW,registerFilters:()=>MW,registerFilter:()=>l6,processExpressions:()=>N1,interpolateScriptsInTemplate:()=>EW,interpolateScriptExpressions:()=>RX,interpolateScriptAttributes:()=>p6,getAllFilters:()=>c6,evaluateExpression:()=>P0,escapeHtml:()=>r0,defaultFilters:()=>N7,clearCustomFilters:()=>kW,applyFilters:()=>i6});function TW(X){let $=d6.get(X);if(!$){let Z=X.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");$=new RegExp(`:${Z}(?!\\w)`,"g"),d6.set(X,$)}return $.lastIndex=0,$}function l6(X,$){if(X in N7)console.warn(`Filter "${X}" already exists as a built-in filter. Custom filter will take precedence.`);R7[X]=$}function MW(X){for(let[$,Z]of Object.entries(X))l6($,Z)}function c6(){return{...N7,...R7}}function kW(){for(let X of Object.keys(R7))delete R7[X]}function r0(X){return X.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function W1(X){let{scripts:$}=R1(X);for(let Z of $){let Y=Z.match(/^<script\b([^>]*)>([\s\S]*?)<\/script\s*>$/i);if(!Y||/\bserver\b|\bsrc\s*=/.test(Y[1]))continue;let J=Y[2];if(/\b(state|derived|effect|ref|reactive|computed|watch|watchEffect)\s*(?:<[^>]*>)?\s*\(/.test(J))return!0}if(/@(if|for|show)\s*=\s*["'][^"']*\(\s*\)/.test(X))return!0;if(/@for\s*=\s*["'][^"']*\s+(?:in|of)\s+[^"']*\(\s*\)/.test(X))return!0;if(/(?:^|[\s"'])(?::|x-)(?:for|if|else-if|else|show|text|html|model|bind)\b/.test(X))return!0;return!1}function m6(X,$){let Z=["parseInt","parseFloat","String","Number","Boolean","Array","Object","JSON","Math","Date","encodeURIComponent","decodeURIComponent","encodeURI","decodeURI","true","false","null","undefined","NaN","Infinity","isNaN","isFinite","window","document","console"],Y=X.replace(/'[^']*'/g,"").replace(/"[^"]*"/g,""),J="",G=!1,Q=0;for(let U=0;U<Y.length;U++){let W=Y[U];if(!G&&W==="`"){G=!0,Q=0;continue}if(G){if(W==="`"&&Q===0){G=!1;continue}if(W==="$"&&Y[U+1]==="{"){Q++,U++,J+=" ";continue}if(W==="}"&&Q>0){Q--;continue}if(Q>0){J+=W;continue}continue}J+=W}Y=J;let q=/(?<![a-zA-Z0-9_$])([a-zA-Z_$][a-zA-Z0-9_$]*)/g,K;while((K=q.exec(Y))!==null){let U=K[1];if(!Y.substring(0,K.index).trimEnd().endsWith(".")){if(!Z.includes(U)&&!(U in $))return!1}}return!0}function IW(X,$){let Z=$.__stx_serverDeclared;if(!Z||Z.size===0)return!1;let Y=X1(X);for(let J of Z)if(new RegExp(`(?<![.#\\w$])${J}(?![\\w$])`).test(Y))return!0;return!1}function RX(X,$){let Z=X;return Z=Z.replace(/\{!!([\s\S]*?)!!\}/g,(Y,J)=>{try{let G=P0(J,$);if(G===void 0)return Y;return G===null?"":String(G)}catch{return Y}}),Z=Z.replace(/\{\{([\s\S]*?)\}\}/g,(Y,J)=>{let G=J.trim();if(/^__[A-Z_]+__$/.test(G))return Y;try{let Q=P0(J,$);if(Q===void 0)return Y;return JSON.stringify(Q).replace(/</g,"\\u003c")}catch{return Y}}),Z}function p6(X,$){if(!X.includes("{"))return X;let Z=X;return Z=Z.replace(/\{!!([\s\S]*?)!!\}/g,(Y,J)=>{try{let G=P0(J,$);if(G===void 0)return Y;return G===null?"":String(G)}catch{return Y}}),Z=Z.replace(/\{\{([\s\S]*?)\}\}/g,(Y,J)=>{let G=J.trim();if(/^__[A-Z_]+__$/.test(G))return Y;try{let Q=P0(J,$);if(Q===void 0)return Y;if(Q===null)return"";return String(Q).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}catch{return Y}}),Z}function EW(X,$,Z={}){let{output:Y,scripts:J}=R1(X),G=J.map((Q)=>{let q=Q.match(/^<script\b([^>]*)>([\s\S]*?)<\/script\s*>$/i),K=Q.match(/^<script\b[^>]*>/i),U=Q.search(/<\/script\s*>$/i);if(!q||!K||U===-1)return Q;let W=q[1],w=q[2];if(/\bdata-raw\b/.test(W))return Q;if(Z.skipServer&&/\bserver\b/.test(W))return Q;let B=`<script${p6(W,$)}>`;if(/\bsrc\s*=/.test(W)||/\btype\s*=\s*["']application\/json["']/.test(W))return B+w+Q.slice(U);return B+RX(w,$)+Q.slice(U)});return A7(Y,G)}function N1(X,$,Z){let Y=X,J=(w,z)=>{let B=R5(w,z);if(B===-1)return-1;return/\{\{[\s\S]*?\}\}|\{!![\s\S]*?!!\}/.test(w.slice(z,B))?-1:B},G=(w,z,B,j)=>{let _=B.length,{output:H,tokens:L}=$1(w,z,(O,F)=>j(_+F));return B.push(...L),H},Q=[];Y=G(Y,J,Q,(w)=>`<!--__STX_STYLE_${w}__-->`);let q=[];Y=G(Y,A1,q,(w)=>`<!--__STX_SCRIPT_EXPR_${w}__-->`);let K=$?.__stx_signals_gate===!0||W1(X),U=new Set(Array.isArray($?.__stx_client_signal_names)?$.__stx_client_signal_names:[]),W=new Set(Array.isArray($?.__stx_preserved_client_expressions)?$.__stx_preserved_client_expressions:[]);Y=Y.replace(/\{\{\{([\s\S]*?)\}\}\}/g,(w,z,B)=>{try{let j=P0(z,$);return j!==void 0&&j!==null?String(j):""}catch(j){let _=j instanceof Error?j.message:String(j);return U0("Expression",`Error evaluating: {{{ ${z.trim()}}}}: ${_}`,Z,X,B,w)}}),Y=Y.replace(/\{!!([\s\S]*?)!!\}/g,(w,z,B)=>{try{let j=P0(z,$);if(j===void 0&&$.__stx_buildMode==="compile")return AX("raw",z.trim());return j!==void 0&&j!==null?String(j):""}catch(j){if($.__stx_buildMode==="compile")return AX("raw",z.trim());let _=j instanceof Error?j.message:String(j);return U0("Expression",`Error evaluating: {!! ${z.trim()} !!}: ${_}`,Z,X,B,w)}}),Y=G(Y,A1,q,(w)=>`<!--__STX_SCRIPT_EXPR_${w}__-->`),Y=G(Y,J,Q,(w)=>`<!--__STX_STYLE_${w}__-->`),Y=Y.replace(/\{\{([\s\S]*?)\}\}/g,(w,z,B)=>{let j=z.trim();if(W.has(j))return w;let _=["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_$]*)/,O=j.match(H)?.[1],F=O&&((O in $)||_.includes(O)),V=Boolean(O&&U.has(O)),A=/^([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/,R=j.match(A),N=R&&!_.includes(R[1])&&!(R[1]in $);if(/^__[A-Z_]+__$/.test(j))return"";try{let T=P0(z,$);if(V)return w;if(K&&!m6(j,$))return w;if($.__stx_buildMode==="compile"&&!K&&(T===void 0||IW(j,$)))return AX("expr",j);return T!==void 0&&T!==null?r0(String(T)):""}catch(T){if(V)return w;if(K&&!m6(j,$))return w;if(N)return w;let k=T instanceof Error?T.message:String(T);return U0("Expression",`Error evaluating: {{ ${j} }}: ${k}`,Z,X,B,w)}});for(let w=0;w<q.length;w++)Y=Y.replace(`<!--__STX_SCRIPT_EXPR_${w}__-->`,()=>q[w]);for(let w=0;w<Q.length;w++)Y=Y.replace(`<!--__STX_STYLE_${w}__-->`,()=>Q[w]);return Y}function i6(X,$,Z){if(!$.trim())return X;let Y=X,J=$.trim();while(J.length>0){let G=J.match(/^(\w+)/);if(!G)break;let Q=G[1];J=J.substring(Q.length).trim();let q=R7[Q]||N7[Q];if(!q)throw Error(`Filter not found: ${Q}. Available filters: ${Object.keys(c6()).join(", ")}`);let K=[];if(J.startsWith(":")){let U=J.match(/^:([^|\s]+)/);if(U){let W=U[1].trim();try{let w=Number(W);K=[Number.isNaN(w)?W:w]}catch{K=[W]}J=J.substring(U[0].length).trim()}}else if(J.startsWith("(")){let U=1,W=1;while(U>0&&W<J.length){if(J[W]==="(")U++;if(J[W]===")")U--;W++}if(U===0){let w=J.substring(1,W-1).trim();if(w)try{if(w.startsWith("{")&&w.endsWith("}"))K=[P0(`(${w})`,Z,!0)];else{let z=[],B="",j=null,_=0,H=0,L=0,O=!1;for(let F=0;F<w.length;F++){let V=w[F];if(O){B+=V,O=!1;continue}if(V==="\\"){B+=V,O=!0;continue}if(j){if(B+=V,V===j)j=null;continue}if(V==='"'||V==="'"||V==="`"){j=V,B+=V;continue}if(V==="(")_++;else if(V===")")_--;else if(V==="[")H++;else if(V==="]")H--;else if(V==="{")L++;else if(V==="}")L--;if(V===","&&_===0&&H===0&&L===0){z.push(B),B="";continue}B+=V}if(B)z.push(B);K=z.map((F)=>{let V=F.trim();return P0(V,Z,!0)})}}catch{K=[w]}J=J.substring(W).trim()}}try{Y=q(Y,Z,...K)}catch(U){let W=U instanceof Error?U.message:String(U);throw Error(`Error applying filter '${Q}': ${W}`)}if(J.startsWith("|"))J=J.substring(1).trim();else break}return Y}function DW(X){let $=!1,Z="",Y=0,J=0,G=0,Q=!1;for(let q=0;q<X.length;q++){let K=X[q],U=X[q+1];if($&&Q){Q=!1;continue}if($&&K==="\\"){Q=!0;continue}if(Q=!1,(K==='"'||K==="'"||K==="`")&&!Q){if(!$)$=!0,Z=K;else if(K===Z)$=!1,Z="";continue}if($&&Z==="`"&&K==="$"&&U==="{"){let W=1;q+=2;while(q<X.length&&W>0){if(X[q]==="{")W++;else if(X[q]==="}")W--;if(W>0)q++}continue}if($)continue;if(K==="(")Y++;else if(K===")")Y--;else if(K==="[")J++;else if(K==="]")J--;else if(K==="{")G++;else if(K==="}")G--;if(K==="|"&&Y===0&&J===0&&G===0){if(U==="|"){q++;continue}if(U==="="){q++;continue}return q}}return-1}function P0(X,$,Z=!1){try{let Y=X.trim(),J=DW(Y);if(J>0){let G=Y.substring(0,J).trim(),Q=Y.substring(J+1).trim(),q=P0(G,$,!0);return i6(q,Q,$)}if(!G0(Y)){if(!Z)console.warn(`Potentially unsafe expression detected, using safe evaluator: ${Y}`);return $0(Y,$)}try{let G=Object.keys($),Q=Object.values($);return Q0(Y,G)(...Q)}catch{return $0(Y,$)}}catch(Y){if(Y instanceof ReferenceError){let J=/(\b\w+)\s+is not defined/.exec(Y.message);if(J){let G=J[1],Q=yW(G,Object.keys($));if(Q&&Q!==G)Y.message=`${Y.message} \u2014 did you mean '${Q}'?`}}if(!Z)console.error(`Error evaluating expression: ${X}`,Y);throw Y}}function yW(X,$){let Z=null;for(let J of $){if(J===X)continue;let G=bW(X,J);if(Z===null||G<Z.dist)Z={key:J,dist:G}}if(!Z)return null;let Y=Math.max(X.length,Z.key.length);if(Z.dist<=2||Z.dist/Y<=0.35)return Z.key;return null}function bW(X,$){if(X===$)return 0;if(X.length===0)return $.length;if($.length===0)return X.length;let[Z,Y]=X.length<$.length?[X,$]:[$,X],J=Array(Z.length+1),G=Array(Z.length+1);for(let Q=0;Q<=Z.length;Q++)J[Q]=Q;for(let Q=1;Q<=Y.length;Q++){G[0]=Q;for(let q=1;q<=Z.length;q++){let K=Z[q-1]===Y[Q-1]?0:1;G[q]=Math.min(G[q-1]+1,J[q]+1,J[q-1]+K)}for(let q=0;q<=Z.length;q++)J[q]=G[q]}return J[Z.length]}function SW(X){if(!X)return"";return X.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/'/g,"'").replace(/&/g,"&")}var R7,d6,N7;var Z1=E(()=>{O0();A0();v6();l1();R7={},d6=new Map;N7={uppercase:(X,$)=>{return X!==void 0&&X!==null?String(X).toUpperCase():""},lowercase:(X,$)=>{return X!==void 0&&X!==null?String(X).toLowerCase():""},capitalize:(X,$)=>{if(X===void 0||X===null)return"";let Z=String(X);return Z.charAt(0).toUpperCase()+Z.slice(1)},number:(X,$,Z=0)=>{if(X===void 0||X===null)return"";try{let Y=Number(X);return Number.isNaN(Y)?"":Y.toFixed(Number.parseInt(String(Z),10))}catch{return""}},fmt:(X,$,Z="en-US")=>{if(X===void 0||X===null)return"";try{let Y=Number(X);if(Number.isNaN(Y))return String(X);return Y.toLocaleString(Z)}catch{return String(X)}},join:(X,$,Z=",")=>{if(!Array.isArray(X))return"";return X.join(String(Z))},escape:(X,$)=>{if(X===void 0||X===null)return"";return r0(String(X))},translate:(X,$,Z={})=>{if(!$||!$.__translations)return X;let Y=$.__translations,J=$.__i18nConfig?.fallbackToKey??!0,G=String(X).split("."),Q=Y;for(let K of G){if(Q===void 0||Q===null)break;Q=Q[K]}if(Q===void 0||Q===null)return J?X:"";let q=String(Q);return Object.entries(Z).forEach(([K,U])=>{q=q.replace(TW(K),String(U))}),q},t:(X,$,Z={})=>{return N7.translate(X,$,Z)},truncate:(X,$,Z=50,Y="...")=>{if(X===void 0||X===null)return"";let J=String(X);if(J.length<=Z)return J;if(Z<=Y.length)return Y.substring(0,Z);return J.substring(0,Z-Y.length)+Y},date:(X,$,Z="short",Y="en-US")=>{if(X===void 0||X===null)return"";try{let J=X instanceof Date?X:new Date(X);if(Number.isNaN(J.getTime()))return String(X);let G={short:{dateStyle:"short"},medium:{dateStyle:"medium"},long:{dateStyle:"long"},full:{dateStyle:"full"},time:{timeStyle:"short"},datetime:{dateStyle:"short",timeStyle:"short"},iso:{}};if(Z==="iso")return J.toISOString();return new Intl.DateTimeFormat(Y,G[Z]||G.short).format(J)}catch{return String(X)}},currency:(X,$,Z="USD",Y="en-US")=>{if(X===void 0||X===null)return"";try{let J=Number(X);if(Number.isNaN(J))return String(X);return new Intl.NumberFormat(Y,{style:"currency",currency:Z}).format(J)}catch{return String(X)}},pluralize:(X,$,Z,Y)=>{let J=Number(X);if(Number.isNaN(J))return Z;let G=Y||`${Z}s`;return J===1?Z:G},first:(X,$)=>{if(X===void 0||X===null)return"";if(Array.isArray(X))return X.length===0?"":X[0];return String(X).charAt(0)},last:(X,$)=>{if(X===void 0||X===null)return"";if(Array.isArray(X))return X.length===0?"":X[X.length-1];let Z=String(X);return Z.charAt(Z.length-1)},length:(X,$)=>{if(X===void 0||X===null)return 0;if(Array.isArray(X)||typeof X==="string")return X.length;if(X instanceof Map||X instanceof Set)return X.size;if(typeof X==="object")return Object.keys(X).length;return 0},json:(X,$,Z=!1)=>{if(X===void 0)return"undefined";if(X===null)return"null";try{return Z?JSON.stringify(X,null,2):JSON.stringify(X)}catch{return String(X)}},default:(X,$,Z="")=>{return X===void 0||X===null||X===""?Z:X},reverse:(X,$)=>{if(X===void 0||X===null)return"";if(Array.isArray(X))return[...X].reverse();return String(X).split("").reverse().join("")},slice:(X,$,Z=0,Y)=>{if(X===void 0||X===null)return"";if(Array.isArray(X)||typeof X==="string")return X.slice(Z,Y);return X},replace:(X,$,Z,Y="")=>{if(X===void 0||X===null)return"";let J=Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return String(X).replace(new RegExp(J,"g"),()=>Y)},stripTags:(X,$)=>{if(X===void 0||X===null)return"";return String(X).replace(/<[^>]*>/g,"")},urlencode:(X,$)=>{if(X===void 0||X===null)return"";return encodeURIComponent(String(X))},abs:(X,$)=>{let Z=Number(X);return Number.isNaN(Z)?0:Math.abs(Z)},round:(X,$,Z=0)=>{let Y=Number(X);if(Number.isNaN(Y))return 0;let J=10**Z;return Math.round(Y*J)/J}}});class c1{cache=new Map;maxSize;constructor(X=100){this.maxSize=X}get(X){if(!this.cache.has(X))return;let $=this.cache.get(X);return this.cache.delete(X),this.cache.set(X,$),$}set(X,$){if(this.cache.has(X))this.cache.delete(X);else if(this.cache.size>=this.maxSize){let Z=this.cache.keys().next().value;if(Z!==void 0)this.cache.delete(Z)}this.cache.set(X,$)}has(X){return this.cache.has(X)}delete(X){return this.cache.delete(X)}clear(){this.cache.clear()}get size(){return this.cache.size}keys(){return this.cache.keys()}values(){return this.cache.values()}}function T5(X,$){if($?.includes("g"))return new RegExp(X,$);let Z=`${X}:${$||""}`;if(!N5.has(Z)){if(N5.size>=CW){let Y=N5.keys().next().value;if(Y)N5.delete(Y)}N5.set(Z,new RegExp(X,$))}return N5.get(Z)}class r6{pool=[];maxPoolSize=10;fnCache=new Map;fnCacheMaxSize=200;getEvaluator(X){let $=Array.from(new Set(X)),Z=$.sort().join(","),Y=this.pool.find((q)=>q.context.join(",")===Z);if(Y)return Y.func;let J=this.fnCache,G=this.fnCacheMaxSize,Q=(...q)=>{return(K)=>{try{let U=`${Z}:${K}`,W=J.get(U);if(!W){if(J.size>=G){let w=J.keys().next().value;if(w)J.delete(w)}W=Function(...$,`
|
|
3722
|
+
`),q=Q([]);if(G.length===$.length)return y6(q,G,Q);return y6((...U)=>{let W=Array(J.length);for(let w=0;w<J.length;w++)W[w]=U[J[w]];return q(...W)},G,Q,(U)=>{q=Q(U)})}function y6(X,$,Z,Y){let G=/^(\w+) is not defined$/,Q=X,q=[],K=new Set($);return(...U)=>{for(let W=0;W<=8;W++)try{return Q(...U)}catch(w){let z=w instanceof Error?w.message:"",B=G.exec(z);if(!(w instanceof ReferenceError)||!B)return;let j=B[1];if(K.has(j)||P6.has(j))return;K.add(j),q.push(j),Q=Z(q),Y?.(q)}return}}function VX(X){let $=X.trim(),Z=[/\beval\s*\(/i,/\bFunction\s*\(/i,/\bimport\s*\(/i,/\brequire\s*\(/i,/\bprocess\b/i,/\b__proto__\b/i,/\bconstructor\s*[.(]/i,/\bglobalThis\b/i,/\bwindow\b/i,/\bdocument\b/i,/\bfetch\s*\(/i,/\bBun\b/i,/\bDeno\b/i,/\bconsole\b/i,/\bthis\b/i,/\bReflect\b/i,/\bProxy\b/i,/\bprototype\b/i,/\.(bind|call|apply)\s*\(/i];for(let Y of Z)if(Y.test($))return!1;return!0}var BW,b6,S6,_W,C6,HW,P6;var O0=E(()=>{BW={maxSanitizeDepth:10,allowBracketNotation:!1},b6={...BW},S6=[/\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/],_W=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"]),C6=new Set(["__proto__","constructor","prototype"]),HW=/[\w)\]]\s*\[\s*['"]/;P6=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 AX(X,$){let Z=AW++,Y=`<!--__STX_${X.toUpperCase()}_${Z}__-->`;return RW.set(Y,{type:X,expression:$}),Y}var AW=0,RW;var v6=E(()=>{RW=new Map});function u6(X,$,Z,Y){Z.lastIndex=$;let J=Z.exec(X);if(!J||J.index!==$)return-1;Y.lastIndex=Z.lastIndex;let G=Y.exec(X);if(!G)return-1;return G.index+G[0].length}function A1(X,$){return u6(X,$,x6,f6)}function R5(X,$){return u6(X,$,g6,h6)}function V7(X,$){if(!X.startsWith("<!--",$))return-1;let Z=X.indexOf("-->",$+4);if(Z===-1)return-1;return Z+3}function TW(X,$){if(X.startsWith("<!--",$)){let Z=V7(X,$);return Z===-1?X.length:Z}for(let[Z,Y]of[[x6,f6],[g6,h6]]){Z.lastIndex=$;let J=Z.exec(X);if(!J||J.index!==$)continue;Y.lastIndex=Z.lastIndex;let G=Y.exec(X);return G?G.index+G[0].length:X.length}return-1}function r$(X,$){let Z=[],Y=0,J=X.length,G=!1,Q=null;while(Y<J){let q=X[Y];if(G){if(Q){if(q===Q)Q=null}else if(q==='"'||q==="'")Q=q;else if(q===">")G=!1;Y++;continue}if(q!=="<"){Y++;continue}let K=$(X,Y);if(K>Y){Z.push({start:Y,end:K,token:X.slice(Y,K)}),Y=K;continue}let U=TW(X,Y);if(U>Y){Y=U;continue}if(/^<\/?[a-zA-Z]/.test(X.slice(Y,Y+2)))G=!0;Y++}return Z}function $1(X,$,Z){let Y=r$(X,$);if(Y.length===0)return{output:X,tokens:[]};let J=Y.map((q)=>q.token),G="",Q=0;for(let q=0;q<Y.length;q++){let K=Y[q];G+=X.slice(Q,K.start),G+=Z(K.token,q),Q=K.end}return G+=X.slice(Q),{output:G,tokens:J}}function R1(X){let{output:$,tokens:Z}=$1(X,A1,(Y,J)=>`\x00STX_SCRIPT_${J}\x00`);return{output:$,scripts:Z}}function A7(X,$){if($.length===0)return X;return X.replace(/\x00STX_SCRIPT_(\d+)\x00/g,(Z,Y)=>$[+Y]??"")}var x6,f6,g6,h6;var l1=E(()=>{x6=/<script\b[^>]*>/iy,f6=/<\/script\s*>/ig,g6=/<style\b[^>]*>/iy,h6=/<\/style\s*>/ig});var n6={};n(n6,{usesSignalsInScript:()=>W1,unescapeHtml:()=>SW,registerFilters:()=>MW,registerFilter:()=>l6,processExpressions:()=>T1,interpolateScriptsInTemplate:()=>EW,interpolateScriptExpressions:()=>RX,interpolateScriptAttributes:()=>p6,getAllFilters:()=>c6,evaluateExpression:()=>P0,escapeHtml:()=>o0,defaultFilters:()=>T7,clearCustomFilters:()=>kW,applyFilters:()=>i6});function NW(X){let $=d6.get(X);if(!$){let Z=X.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");$=new RegExp(`:${Z}(?!\\w)`,"g"),d6.set(X,$)}return $.lastIndex=0,$}function l6(X,$){if(X in T7)console.warn(`Filter "${X}" already exists as a built-in filter. Custom filter will take precedence.`);R7[X]=$}function MW(X){for(let[$,Z]of Object.entries(X))l6($,Z)}function c6(){return{...T7,...R7}}function kW(){for(let X of Object.keys(R7))delete R7[X]}function o0(X){return X.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function W1(X){let{scripts:$}=R1(X);for(let Z of $){let Y=Z.match(/^<script\b([^>]*)>([\s\S]*?)<\/script\s*>$/i);if(!Y||/\bserver\b|\bsrc\s*=/.test(Y[1]))continue;let J=Y[2];if(/\b(state|derived|effect|ref|reactive|computed|watch|watchEffect)\s*(?:<[^>]*>)?\s*\(/.test(J))return!0}if(/@(if|for|show)\s*=\s*["'][^"']*\(\s*\)/.test(X))return!0;if(/@for\s*=\s*["'][^"']*\s+(?:in|of)\s+[^"']*\(\s*\)/.test(X))return!0;if(/(?:^|[\s"'])(?::|x-)(?:for|if|else-if|else|show|text|html|model|bind)\b/.test(X))return!0;return!1}function m6(X,$){let Z=["parseInt","parseFloat","String","Number","Boolean","Array","Object","JSON","Math","Date","encodeURIComponent","decodeURIComponent","encodeURI","decodeURI","true","false","null","undefined","NaN","Infinity","isNaN","isFinite","window","document","console"],Y=X.replace(/'[^']*'/g,"").replace(/"[^"]*"/g,""),J="",G=!1,Q=0;for(let U=0;U<Y.length;U++){let W=Y[U];if(!G&&W==="`"){G=!0,Q=0;continue}if(G){if(W==="`"&&Q===0){G=!1;continue}if(W==="$"&&Y[U+1]==="{"){Q++,U++,J+=" ";continue}if(W==="}"&&Q>0){Q--;continue}if(Q>0){J+=W;continue}continue}J+=W}Y=J;let q=/(?<![a-zA-Z0-9_$])([a-zA-Z_$][a-zA-Z0-9_$]*)/g,K;while((K=q.exec(Y))!==null){let U=K[1];if(!Y.substring(0,K.index).trimEnd().endsWith(".")){if(!Z.includes(U)&&!(U in $))return!1}}return!0}function IW(X,$){let Z=$.__stx_serverDeclared;if(!Z||Z.size===0)return!1;let Y=l0(X);for(let J of Z)if(new RegExp(`(?<![.#\\w$])${J}(?![\\w$])`).test(Y))return!0;return!1}function RX(X,$){let Z=X;return Z=Z.replace(/\{!!([\s\S]*?)!!\}/g,(Y,J)=>{try{let G=P0(J,$);if(G===void 0)return Y;return G===null?"":String(G)}catch{return Y}}),Z=Z.replace(/\{\{([\s\S]*?)\}\}/g,(Y,J)=>{let G=J.trim();if(/^__[A-Z_]+__$/.test(G))return Y;try{let Q=P0(J,$);if(Q===void 0)return Y;return JSON.stringify(Q).replace(/</g,"\\u003c")}catch{return Y}}),Z}function p6(X,$){if(!X.includes("{"))return X;let Z=X;return Z=Z.replace(/\{!!([\s\S]*?)!!\}/g,(Y,J)=>{try{let G=P0(J,$);if(G===void 0)return Y;return G===null?"":String(G)}catch{return Y}}),Z=Z.replace(/\{\{([\s\S]*?)\}\}/g,(Y,J)=>{let G=J.trim();if(/^__[A-Z_]+__$/.test(G))return Y;try{let Q=P0(J,$);if(Q===void 0)return Y;if(Q===null)return"";return String(Q).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}catch{return Y}}),Z}function EW(X,$,Z={}){let{output:Y,scripts:J}=R1(X),G=J.map((Q)=>{let q=Q.match(/^<script\b([^>]*)>([\s\S]*?)<\/script\s*>$/i),K=Q.match(/^<script\b[^>]*>/i),U=Q.search(/<\/script\s*>$/i);if(!q||!K||U===-1)return Q;let W=q[1],w=q[2];if(/\bdata-raw\b/.test(W))return Q;if(Z.skipServer&&/\bserver\b/.test(W))return Q;let B=`<script${p6(W,$)}>`;if(/\bsrc\s*=/.test(W)||/\btype\s*=\s*["']application\/json["']/.test(W))return B+w+Q.slice(U);return B+RX(w,$)+Q.slice(U)});return A7(Y,G)}function T1(X,$,Z){let Y=X,J=(w,z)=>{let B=R5(w,z);if(B===-1)return-1;return/\{\{[\s\S]*?\}\}|\{!![\s\S]*?!!\}/.test(w.slice(z,B))?-1:B},G=(w,z,B,j)=>{let _=B.length,{output:H,tokens:L}=$1(w,z,(O,F)=>j(_+F));return B.push(...L),H},Q=[];Y=G(Y,J,Q,(w)=>`<!--__STX_STYLE_${w}__-->`);let q=[];Y=G(Y,A1,q,(w)=>`<!--__STX_SCRIPT_EXPR_${w}__-->`);let K=$?.__stx_signals_gate===!0||W1(X),U=new Set(Array.isArray($?.__stx_client_signal_names)?$.__stx_client_signal_names:[]),W=new Set(Array.isArray($?.__stx_preserved_client_expressions)?$.__stx_preserved_client_expressions:[]);Y=Y.replace(/\{\{\{([\s\S]*?)\}\}\}/g,(w,z,B)=>{try{let j=P0(z,$);return j!==void 0&&j!==null?String(j):""}catch(j){let _=j instanceof Error?j.message:String(j);return U0("Expression",`Error evaluating: {{{ ${z.trim()}}}}: ${_}`,Z,X,B,w)}}),Y=Y.replace(/\{!!([\s\S]*?)!!\}/g,(w,z,B)=>{try{let j=P0(z,$);if(j===void 0&&$.__stx_buildMode==="compile")return AX("raw",z.trim());return j!==void 0&&j!==null?String(j):""}catch(j){if($.__stx_buildMode==="compile")return AX("raw",z.trim());let _=j instanceof Error?j.message:String(j);return U0("Expression",`Error evaluating: {!! ${z.trim()} !!}: ${_}`,Z,X,B,w)}}),Y=G(Y,A1,q,(w)=>`<!--__STX_SCRIPT_EXPR_${w}__-->`),Y=G(Y,J,Q,(w)=>`<!--__STX_STYLE_${w}__-->`),Y=Y.replace(/\{\{([\s\S]*?)\}\}/g,(w,z,B)=>{let j=z.trim();if(W.has(j))return w;let _=["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_$]*)/,O=j.match(H)?.[1],F=O&&((O in $)||_.includes(O)),V=Boolean(O&&U.has(O)),A=/^([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/,R=j.match(A),T=R&&!_.includes(R[1])&&!(R[1]in $);if(/^__[A-Z_]+__$/.test(j))return"";try{let N=P0(z,$);if(V)return w;if(K&&!m6(j,$))return w;if($.__stx_buildMode==="compile"&&!K&&(N===void 0||IW(j,$)))return AX("expr",j);return N!==void 0&&N!==null?o0(String(N)):""}catch(N){if(V)return w;if(K&&!m6(j,$))return w;if(T)return w;let k=N instanceof Error?N.message:String(N);return U0("Expression",`Error evaluating: {{ ${j} }}: ${k}`,Z,X,B,w)}});for(let w=0;w<q.length;w++)Y=Y.replace(`<!--__STX_SCRIPT_EXPR_${w}__-->`,()=>q[w]);for(let w=0;w<Q.length;w++)Y=Y.replace(`<!--__STX_STYLE_${w}__-->`,()=>Q[w]);return Y}function i6(X,$,Z){if(!$.trim())return X;let Y=X,J=$.trim();while(J.length>0){let G=J.match(/^(\w+)/);if(!G)break;let Q=G[1];J=J.substring(Q.length).trim();let q=R7[Q]||T7[Q];if(!q)throw Error(`Filter not found: ${Q}. Available filters: ${Object.keys(c6()).join(", ")}`);let K=[];if(J.startsWith(":")){let U=J.match(/^:([^|\s]+)/);if(U){let W=U[1].trim();try{let w=Number(W);K=[Number.isNaN(w)?W:w]}catch{K=[W]}J=J.substring(U[0].length).trim()}}else if(J.startsWith("(")){let U=1,W=1;while(U>0&&W<J.length){if(J[W]==="(")U++;if(J[W]===")")U--;W++}if(U===0){let w=J.substring(1,W-1).trim();if(w)try{if(w.startsWith("{")&&w.endsWith("}"))K=[P0(`(${w})`,Z,!0)];else{let z=[],B="",j=null,_=0,H=0,L=0,O=!1;for(let F=0;F<w.length;F++){let V=w[F];if(O){B+=V,O=!1;continue}if(V==="\\"){B+=V,O=!0;continue}if(j){if(B+=V,V===j)j=null;continue}if(V==='"'||V==="'"||V==="`"){j=V,B+=V;continue}if(V==="(")_++;else if(V===")")_--;else if(V==="[")H++;else if(V==="]")H--;else if(V==="{")L++;else if(V==="}")L--;if(V===","&&_===0&&H===0&&L===0){z.push(B),B="";continue}B+=V}if(B)z.push(B);K=z.map((F)=>{let V=F.trim();return P0(V,Z,!0)})}}catch{K=[w]}J=J.substring(W).trim()}}try{Y=q(Y,Z,...K)}catch(U){let W=U instanceof Error?U.message:String(U);throw Error(`Error applying filter '${Q}': ${W}`)}if(J.startsWith("|"))J=J.substring(1).trim();else break}return Y}function DW(X){let $=!1,Z="",Y=0,J=0,G=0,Q=!1;for(let q=0;q<X.length;q++){let K=X[q],U=X[q+1];if($&&Q){Q=!1;continue}if($&&K==="\\"){Q=!0;continue}if(Q=!1,(K==='"'||K==="'"||K==="`")&&!Q){if(!$)$=!0,Z=K;else if(K===Z)$=!1,Z="";continue}if($&&Z==="`"&&K==="$"&&U==="{"){let W=1;q+=2;while(q<X.length&&W>0){if(X[q]==="{")W++;else if(X[q]==="}")W--;if(W>0)q++}continue}if($)continue;if(K==="(")Y++;else if(K===")")Y--;else if(K==="[")J++;else if(K==="]")J--;else if(K==="{")G++;else if(K==="}")G--;if(K==="|"&&Y===0&&J===0&&G===0){if(U==="|"){q++;continue}if(U==="="){q++;continue}return q}}return-1}function P0(X,$,Z=!1){try{let Y=X.trim(),J=DW(Y);if(J>0){let G=Y.substring(0,J).trim(),Q=Y.substring(J+1).trim(),q=P0(G,$,!0);return i6(q,Q,$)}if(!G0(Y)){if(!Z)console.warn(`Potentially unsafe expression detected, using safe evaluator: ${Y}`);return $0(Y,$)}try{let G=Object.keys($),Q=Object.values($);return Q0(Y,G)(...Q)}catch{return $0(Y,$)}}catch(Y){if(Y instanceof ReferenceError){let J=/(\b\w+)\s+is not defined/.exec(Y.message);if(J){let G=J[1],Q=yW(G,Object.keys($));if(Q&&Q!==G)Y.message=`${Y.message} \u2014 did you mean '${Q}'?`}}if(!Z)console.error(`Error evaluating expression: ${X}`,Y);throw Y}}function yW(X,$){let Z=null;for(let J of $){if(J===X)continue;let G=bW(X,J);if(Z===null||G<Z.dist)Z={key:J,dist:G}}if(!Z)return null;let Y=Math.max(X.length,Z.key.length);if(Z.dist<=2||Z.dist/Y<=0.35)return Z.key;return null}function bW(X,$){if(X===$)return 0;if(X.length===0)return $.length;if($.length===0)return X.length;let[Z,Y]=X.length<$.length?[X,$]:[$,X],J=Array(Z.length+1),G=Array(Z.length+1);for(let Q=0;Q<=Z.length;Q++)J[Q]=Q;for(let Q=1;Q<=Y.length;Q++){G[0]=Q;for(let q=1;q<=Z.length;q++){let K=Z[q-1]===Y[Q-1]?0:1;G[q]=Math.min(G[q-1]+1,J[q]+1,J[q-1]+K)}for(let q=0;q<=Z.length;q++)J[q]=G[q]}return J[Z.length]}function SW(X){if(!X)return"";return X.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/'/g,"'").replace(/&/g,"&")}var R7,d6,T7;var Z1=E(()=>{O0();A0();v6();l1();R7={},d6=new Map;T7={uppercase:(X,$)=>{return X!==void 0&&X!==null?String(X).toUpperCase():""},lowercase:(X,$)=>{return X!==void 0&&X!==null?String(X).toLowerCase():""},capitalize:(X,$)=>{if(X===void 0||X===null)return"";let Z=String(X);return Z.charAt(0).toUpperCase()+Z.slice(1)},number:(X,$,Z=0)=>{if(X===void 0||X===null)return"";try{let Y=Number(X);return Number.isNaN(Y)?"":Y.toFixed(Number.parseInt(String(Z),10))}catch{return""}},fmt:(X,$,Z="en-US")=>{if(X===void 0||X===null)return"";try{let Y=Number(X);if(Number.isNaN(Y))return String(X);return Y.toLocaleString(Z)}catch{return String(X)}},join:(X,$,Z=",")=>{if(!Array.isArray(X))return"";return X.join(String(Z))},escape:(X,$)=>{if(X===void 0||X===null)return"";return o0(String(X))},translate:(X,$,Z={})=>{if(!$||!$.__translations)return X;let Y=$.__translations,J=$.__i18nConfig?.fallbackToKey??!0,G=String(X).split("."),Q=Y;for(let K of G){if(Q===void 0||Q===null)break;Q=Q[K]}if(Q===void 0||Q===null)return J?X:"";let q=String(Q);return Object.entries(Z).forEach(([K,U])=>{q=q.replace(NW(K),String(U))}),q},t:(X,$,Z={})=>{return T7.translate(X,$,Z)},truncate:(X,$,Z=50,Y="...")=>{if(X===void 0||X===null)return"";let J=String(X);if(J.length<=Z)return J;if(Z<=Y.length)return Y.substring(0,Z);return J.substring(0,Z-Y.length)+Y},date:(X,$,Z="short",Y="en-US")=>{if(X===void 0||X===null)return"";try{let J=X instanceof Date?X:new Date(X);if(Number.isNaN(J.getTime()))return String(X);let G={short:{dateStyle:"short"},medium:{dateStyle:"medium"},long:{dateStyle:"long"},full:{dateStyle:"full"},time:{timeStyle:"short"},datetime:{dateStyle:"short",timeStyle:"short"},iso:{}};if(Z==="iso")return J.toISOString();return new Intl.DateTimeFormat(Y,G[Z]||G.short).format(J)}catch{return String(X)}},currency:(X,$,Z="USD",Y="en-US")=>{if(X===void 0||X===null)return"";try{let J=Number(X);if(Number.isNaN(J))return String(X);return new Intl.NumberFormat(Y,{style:"currency",currency:Z}).format(J)}catch{return String(X)}},pluralize:(X,$,Z,Y)=>{let J=Number(X);if(Number.isNaN(J))return Z;let G=Y||`${Z}s`;return J===1?Z:G},first:(X,$)=>{if(X===void 0||X===null)return"";if(Array.isArray(X))return X.length===0?"":X[0];return String(X).charAt(0)},last:(X,$)=>{if(X===void 0||X===null)return"";if(Array.isArray(X))return X.length===0?"":X[X.length-1];let Z=String(X);return Z.charAt(Z.length-1)},length:(X,$)=>{if(X===void 0||X===null)return 0;if(Array.isArray(X)||typeof X==="string")return X.length;if(X instanceof Map||X instanceof Set)return X.size;if(typeof X==="object")return Object.keys(X).length;return 0},json:(X,$,Z=!1)=>{if(X===void 0)return"undefined";if(X===null)return"null";try{return Z?JSON.stringify(X,null,2):JSON.stringify(X)}catch{return String(X)}},default:(X,$,Z="")=>{return X===void 0||X===null||X===""?Z:X},reverse:(X,$)=>{if(X===void 0||X===null)return"";if(Array.isArray(X))return[...X].reverse();return String(X).split("").reverse().join("")},slice:(X,$,Z=0,Y)=>{if(X===void 0||X===null)return"";if(Array.isArray(X)||typeof X==="string")return X.slice(Z,Y);return X},replace:(X,$,Z,Y="")=>{if(X===void 0||X===null)return"";let J=Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return String(X).replace(new RegExp(J,"g"),()=>Y)},stripTags:(X,$)=>{if(X===void 0||X===null)return"";return String(X).replace(/<[^>]*>/g,"")},urlencode:(X,$)=>{if(X===void 0||X===null)return"";return encodeURIComponent(String(X))},abs:(X,$)=>{let Z=Number(X);return Number.isNaN(Z)?0:Math.abs(Z)},round:(X,$,Z=0)=>{let Y=Number(X);if(Number.isNaN(Y))return 0;let J=10**Z;return Math.round(Y*J)/J}}});class c1{cache=new Map;maxSize;constructor(X=100){this.maxSize=X}get(X){if(!this.cache.has(X))return;let $=this.cache.get(X);return this.cache.delete(X),this.cache.set(X,$),$}set(X,$){if(this.cache.has(X))this.cache.delete(X);else if(this.cache.size>=this.maxSize){let Z=this.cache.keys().next().value;if(Z!==void 0)this.cache.delete(Z)}this.cache.set(X,$)}has(X){return this.cache.has(X)}delete(X){return this.cache.delete(X)}clear(){this.cache.clear()}get size(){return this.cache.size}keys(){return this.cache.keys()}values(){return this.cache.values()}}function N5(X,$){if($?.includes("g"))return new RegExp(X,$);let Z=`${X}:${$||""}`;if(!T5.has(Z)){if(T5.size>=CW){let Y=T5.keys().next().value;if(Y)T5.delete(Y)}T5.set(Z,new RegExp(X,$))}return T5.get(Z)}class r6{pool=[];maxPoolSize=10;fnCache=new Map;fnCacheMaxSize=200;getEvaluator(X){let $=Array.from(new Set(X)),Z=$.sort().join(","),Y=this.pool.find((q)=>q.context.join(",")===Z);if(Y)return Y.func;let J=this.fnCache,G=this.fnCacheMaxSize,Q=(...q)=>{return(K)=>{try{let U=`${Z}:${K}`,W=J.get(U);if(!W){if(J.size>=G){let w=J.keys().next().value;if(w)J.delete(w)}W=Function(...$,`
|
|
3723
3723
|
'use strict';
|
|
3724
3724
|
try {
|
|
3725
3725
|
return ${K};
|
|
@@ -3730,34 +3730,34 @@ catch (e) {
|
|
|
3730
3730
|
}
|
|
3731
3731
|
throw e;
|
|
3732
3732
|
}
|
|
3733
|
-
`),J.set(U,W)}return W(...q)}catch{return}}};if(this.pool.length<this.maxPoolSize)this.pool.push({func:Q,context:$.slice()});return Q}clear(){this.pool.length=0,this.fnCache.clear()}}class o6{metrics=new Map;budgets=new Map;violations=[];maxViolations=100;violationHandlers=[];enabled=!0;setEnabled(X){this.enabled=X}isEnabled(){return this.enabled}setBudget(X,$){this.budgets.set(X,{warnThreshold:0.8,action:"warn",...$})}setBudgets(X){for(let[$,Z]of Object.entries(X))this.setBudget($,Z)}removeBudget(X){this.budgets.delete(X)}getBudgets(){let X={};for(let[$,Z]of this.budgets.entries())X[$]=Z;return X}onViolation(X){this.violationHandlers.push(X)}offViolation(X){let $=this.violationHandlers.indexOf(X);if($!==-1)this.violationHandlers.splice($,1)}time(X,$){if(!this.enabled)return $();let Z=performance.now(),Y=$(),J=performance.now()-Z;return this.recordTime(X,J),this.checkBudget(X,J),Y}async timeAsync(X,$){if(!this.enabled)return $();let Z=performance.now(),Y=await $(),J=performance.now()-Z;return this.recordTime(X,J),this.checkBudget(X,J),Y}checkBudget(X,$){let Z=this.budgets.get(X);if(!Z)return;let Y=$/Z.maxTime*100,J=Z.warnThreshold!==void 0?$>=Z.maxTime*Z.warnThreshold&&$<Z.maxTime:!1,G=$>=Z.maxTime;if(!J&&!G)return;let Q={label:X,actualTime:$,budgetTime:Z.maxTime,exceedancePercent:Y,timestamp:new Date,isWarning:J};this.violations.push(Q);while(this.violations.length>this.maxViolations)this.violations.shift();for(let K of this.violationHandlers)try{K(Q)}catch{}let q=J?`[Performance Warning] "${X}" took ${$.toFixed(2)}ms (${Y.toFixed(1)}% of ${Z.maxTime}ms budget)`:`[Performance Budget Exceeded] "${X}" took ${$.toFixed(2)}ms (exceeded ${Z.maxTime}ms budget by ${(Y-100).toFixed(1)}%)`;switch(Z.action){case"log":console.log(q);break;case"warn":console.warn(q);break;case"error":console.error(q);break;case"throw":if(G)throw Error(q);else console.warn(q);break}}recordTime(X,$){let Z=this.metrics.get(X);if(Z)Z.count++,Z.totalTime+=$,Z.maxTime=Math.max(Z.maxTime,$),Z.minTime=Math.min(Z.minTime,$);else this.metrics.set(X,{count:1,totalTime:$,maxTime:$,minTime:$})}getStats(X){if(X){let Z=this.metrics.get(X);if(!Z)return{};let Y=this.budgets.get(X);return{count:Z.count,avgTime:Z.totalTime/Z.count,totalTime:Z.totalTime,maxTime:Z.maxTime,minTime:Z.minTime,budget:Y?.maxTime,budgetUtilization:Y?Z.totalTime/Z.count/Y.maxTime*100:void 0}}let $={};for(let[Z,Y]of this.metrics.entries()){let J=this.budgets.get(Z);$[Z]={count:Y.count,avgTime:Y.totalTime/Y.count,totalTime:Y.totalTime,maxTime:Y.maxTime,minTime:Y.minTime,budget:J?.maxTime,budgetUtilization:J?Y.totalTime/Y.count/J.maxTime*100:void 0}}return $}getViolations(X){if(X)return this.violations.filter(($)=>$.label===X);return[...this.violations]}getViolationStats(){let X={},$=0,Z=0;for(let Y of this.violations)if(X[Y.label]=(X[Y.label]||0)+1,Y.isWarning)$++;else Z++;return{total:this.violations.length,byLabel:X,warnings:$,errors:Z}}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 PW(){if(!o$)o$=new o6;return o$}var
|
|
3733
|
+
`),J.set(U,W)}return W(...q)}catch{return}}};if(this.pool.length<this.maxPoolSize)this.pool.push({func:Q,context:$.slice()});return Q}clear(){this.pool.length=0,this.fnCache.clear()}}class o6{metrics=new Map;budgets=new Map;violations=[];maxViolations=100;violationHandlers=[];enabled=!0;setEnabled(X){this.enabled=X}isEnabled(){return this.enabled}setBudget(X,$){this.budgets.set(X,{warnThreshold:0.8,action:"warn",...$})}setBudgets(X){for(let[$,Z]of Object.entries(X))this.setBudget($,Z)}removeBudget(X){this.budgets.delete(X)}getBudgets(){let X={};for(let[$,Z]of this.budgets.entries())X[$]=Z;return X}onViolation(X){this.violationHandlers.push(X)}offViolation(X){let $=this.violationHandlers.indexOf(X);if($!==-1)this.violationHandlers.splice($,1)}time(X,$){if(!this.enabled)return $();let Z=performance.now(),Y=$(),J=performance.now()-Z;return this.recordTime(X,J),this.checkBudget(X,J),Y}async timeAsync(X,$){if(!this.enabled)return $();let Z=performance.now(),Y=await $(),J=performance.now()-Z;return this.recordTime(X,J),this.checkBudget(X,J),Y}checkBudget(X,$){let Z=this.budgets.get(X);if(!Z)return;let Y=$/Z.maxTime*100,J=Z.warnThreshold!==void 0?$>=Z.maxTime*Z.warnThreshold&&$<Z.maxTime:!1,G=$>=Z.maxTime;if(!J&&!G)return;let Q={label:X,actualTime:$,budgetTime:Z.maxTime,exceedancePercent:Y,timestamp:new Date,isWarning:J};this.violations.push(Q);while(this.violations.length>this.maxViolations)this.violations.shift();for(let K of this.violationHandlers)try{K(Q)}catch{}let q=J?`[Performance Warning] "${X}" took ${$.toFixed(2)}ms (${Y.toFixed(1)}% of ${Z.maxTime}ms budget)`:`[Performance Budget Exceeded] "${X}" took ${$.toFixed(2)}ms (exceeded ${Z.maxTime}ms budget by ${(Y-100).toFixed(1)}%)`;switch(Z.action){case"log":console.log(q);break;case"warn":console.warn(q);break;case"error":console.error(q);break;case"throw":if(G)throw Error(q);else console.warn(q);break}}recordTime(X,$){let Z=this.metrics.get(X);if(Z)Z.count++,Z.totalTime+=$,Z.maxTime=Math.max(Z.maxTime,$),Z.minTime=Math.min(Z.minTime,$);else this.metrics.set(X,{count:1,totalTime:$,maxTime:$,minTime:$})}getStats(X){if(X){let Z=this.metrics.get(X);if(!Z)return{};let Y=this.budgets.get(X);return{count:Z.count,avgTime:Z.totalTime/Z.count,totalTime:Z.totalTime,maxTime:Z.maxTime,minTime:Z.minTime,budget:Y?.maxTime,budgetUtilization:Y?Z.totalTime/Z.count/Y.maxTime*100:void 0}}let $={};for(let[Z,Y]of this.metrics.entries()){let J=this.budgets.get(Z);$[Z]={count:Y.count,avgTime:Y.totalTime/Y.count,totalTime:Y.totalTime,maxTime:Y.maxTime,minTime:Y.minTime,budget:J?.maxTime,budgetUtilization:J?Y.totalTime/Y.count/J.maxTime*100:void 0}}return $}getViolations(X){if(X)return this.violations.filter(($)=>$.label===X);return[...this.violations]}getViolationStats(){let X={},$=0,Z=0;for(let Y of this.violations)if(X[Y.label]=(X[Y.label]||0)+1,Y.isWarning)$++;else Z++;return{total:this.violations.length,byLabel:X,warnings:$,errors:Z}}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 PW(){if(!o$)o$=new o6;return o$}var T5,CW=500,xV,o$=null,s6;var M5=E(()=>{T5=new Map;xV=new r6;s6=new Proxy({},{get(X,$){return PW()[$]}})});function a6(X,$=""){let Z=`${X}${$}`,Y=0;for(let J=0;J<Z.length;J++){let G=Z.charCodeAt(J);Y=(Y<<5)-Y+G,Y=Y&Y}return`stx-${Math.abs(Y).toString(36)}`}function t6(X,$,Z={}){let{prefix:Y="",preserveHost:J=!0,scopeKeyframes:G=!0,scopeCustomProperties:Q=!1}=Z;if(!X.trim())return"";let q=s$(X),K=[],U=new Map;if(G)for(let W of q){let w=W.selector.match(/@keyframes\s+([a-z_-][a-z0-9_-]*)/i);if(w){let z=w[1],B=`${$}_${z}`;U.set(z,B)}}for(let W of q){let w=e6(W,$,Y,J,U,Q);K.push(w)}return K.join(`
|
|
3734
3734
|
|
|
3735
3735
|
`)}function s$(X){let $=[],Z=X.replace(/\/\*[\s\S]*?\*\//g,""),Y=0,J="",G=!1,Q="";for(let q=0;q<Z.length;q++){let K=Z[q];if(K==="@"&&Y===0)G=!0;if(K==="{")Y++;else if(K==="}"){if(Y--,Y===0){if(G){Q+=K;let U=Q.match(/@([a-z-]+)\s*([^{]*)\{([\s\S]*)\}/i);if(U){let[,W,w,z]=U;if(W==="keyframes")$.push({selector:`@keyframes ${w.trim()}`,declarations:z.trim()});else if(W==="media"||W==="supports"||W==="container"){let B=s$(z);$.push({selector:`@${W} ${w.trim()}`,declarations:B.map((j)=>`${j.selector} { ${j.declarations} }`).join(`
|
|
3736
3736
|
`)})}else $.push({selector:`@${W} ${w.trim()}`,declarations:z.trim()})}Q="",G=!1}else if(J.trim()){J+=K;let U=J.match(/([^{]+)\{([^}]*)\}/);if(U)$.push({selector:U[1].trim(),declarations:U[2].trim()});J=""}continue}}if(G)Q+=K;else J+=K}return $}function e6(X,$,Z,Y,J,G){let{selector:Q,declarations:q}=X;if(Q.startsWith("@")){if(Q.startsWith("@keyframes")){let W=Q.replace("@keyframes ","").trim();return`@keyframes ${J.get(W)||W} { ${q} }`}if(Q.startsWith("@media")||Q.startsWith("@supports")||Q.startsWith("@container")){let w=s$(`x { ${q} }`.replace(/x \{ /,"").replace(/ \}$/,"")).map((z)=>e6(z,$,Z,Y,J,G)).join(`
|
|
3737
3737
|
`);return`${Q} {
|
|
3738
3738
|
${w}
|
|
3739
|
-
}`}return`${Q} { ${q} }`}let K=vW(Q,$,Z,Y),U=q;for(let[W,w]of J)U=U.replace(new RegExp(`\\b${W}\\b`,"g"),w);if(G)U=U.replace(/--([a-z-]+)/gi,`--${$}-$1`);return`${K} { ${U} }`}function vW(X,$,Z,Y){let J=X.split(",").map((Q)=>Q.trim()),G=[];for(let Q of J){if(Q.startsWith(":host")){if(Y)G.push(Q);else{let U=Q.replace(/:host(\([^)]*\))?/,`.${$}$1`);G.push(U)}continue}if(Q.includes("::slotted")){G.push(Q);continue}if(Q===":root"){G.push(`:root .${$}`);continue}let q=Z?`${Z} .${$}`:`.${$}`;G.push(`${q} ${Q}`);let K=xW(Q,$);if(K)G.push(Z?`${Z} ${K}`:K)}return G.join(", ")}function xW(X,$){let Z=0,Y=X.length;for(let K=0;K<X.length;K++){let U=X[K];if(U==="["||U==="(")Z++;else if(U==="]"||U===")")Z--;else if(Z===0&&(U===" "||U===">"||U==="+"||U==="~")){Y=K;break}}let J=X.slice(0,Y),G=X.slice(Y);if(!J)return"";let Q=J.length,q=0;for(let K=0;K<J.length;K++){let U=J[K];if(U==="["||U==="(")q++;else if(U==="]"||U===")")q--;else if(Z===0&&q===0&&U===":"){Q=K;break}}return`${J.slice(0,Q)}.${$}${J.slice(Q)}${G}`}function $Z(X){let $=new Set;return X.replace(/<style\b[^>]*\bdata-stx-scoped(?:=(?:"[^"]*"|'[^']*'|[^\s>]+))?[^>]*>[\s\S]*?<\/style>\s*/gi,(Z)=>{let Y=Z.trim();if($.has(Y))return"";return $.add(Y),Z})}function
|
|
3740
|
-
`)}function sW(X=
|
|
3741
|
-
`,""}),headContent:$.trim()}}function Xw(X,$){return X.replace(/@title\s*\(\s*(?:(['"`])(.+?)\1|([^)]+))\s*\)/g,(Z,Y,J,G)=>{let Q=Y?J:$[(G||"").trim()]??G,q=$.__stx_runtime_head??{};return $.__stx_runtime_head=k5(q,{title:Q}),""})}function $w(X,$){return X.replace(/@meta\s*\(\s*(['"`])(.+?)\1\s*,\s*(?:(['"`])(.+?)\3|([^)]+))\s*\)/g,(Z,Y,J,G,Q,q)=>{let K=G?Q:q,U=G?K:$[(K||"").trim()]??K,w=J.includes(":")?{property:J,content:U}:{name:J,content:U},z=$.__stx_runtime_head??{};return $.__stx_runtime_head=k5(z,{meta:[w]}),""})}var
|
|
3739
|
+
}`}return`${Q} { ${q} }`}let K=vW(Q,$,Z,Y),U=q;for(let[W,w]of J)U=U.replace(new RegExp(`\\b${W}\\b`,"g"),w);if(G)U=U.replace(/--([a-z-]+)/gi,`--${$}-$1`);return`${K} { ${U} }`}function vW(X,$,Z,Y){let J=X.split(",").map((Q)=>Q.trim()),G=[];for(let Q of J){if(Q.startsWith(":host")){if(Y)G.push(Q);else{let U=Q.replace(/:host(\([^)]*\))?/,`.${$}$1`);G.push(U)}continue}if(Q.includes("::slotted")){G.push(Q);continue}if(Q===":root"){G.push(`:root .${$}`);continue}let q=Z?`${Z} .${$}`:`.${$}`;G.push(`${q} ${Q}`);let K=xW(Q,$);if(K)G.push(Z?`${Z} ${K}`:K)}return G.join(", ")}function xW(X,$){let Z=0,Y=X.length;for(let K=0;K<X.length;K++){let U=X[K];if(U==="["||U==="(")Z++;else if(U==="]"||U===")")Z--;else if(Z===0&&(U===" "||U===">"||U==="+"||U==="~")){Y=K;break}}let J=X.slice(0,Y),G=X.slice(Y);if(!J)return"";let Q=J.length,q=0;for(let K=0;K<J.length;K++){let U=J[K];if(U==="["||U==="(")q++;else if(U==="]"||U===")")q--;else if(Z===0&&q===0&&U===":"){Q=K;break}}return`${J.slice(0,Q)}.${$}${J.slice(Q)}${G}`}function $Z(X){let $=new Set;return X.replace(/<style\b[^>]*\bdata-stx-scoped(?:=(?:"[^"]*"|'[^']*'|[^\s>]+))?[^>]*>[\s\S]*?<\/style>\s*/gi,(Z)=>{let Y=Z.trim();if($.has(Y))return"";return $.add(Y),Z})}function TX(X,$){if(!fW.test(X))return{html:X,hasScoped:!1};let Z=a6($),Y=`data-v-${Z}`,J=X,G=new RegExp(`<style\\s+([^>]*${a$}[^>]*)>([\\s\\S]*?)</style>`,"gi"),Q=!1;if(J=J.replace(G,(q,K,U)=>{Q=!0;let W=gW(U,Y),w=K.replace(new RegExp(a$,"gi"),"").trim(),z=w?` ${w}`:"";return`<style data-stx-scoped="${Z}"${z}>${W}</style>`}),!Q)return{html:X,hasScoped:!1};return J=uW(J,Y),{html:J,hasScoped:!0}}function gW(X,$){return t6(X,"__SCOPE_PLACEHOLDER__",{preserveHost:!1}).replace(/\.(__SCOPE_PLACEHOLDER__) /g,`[${$}] `).replace(/\.(__SCOPE_PLACEHOLDER__)/g,`[${$}]`)}function uW(X,$){let Z=$1(X,(J,G)=>{let Q=A1(J,G);return Q>G?Q:R5(J,G)},(J,G)=>hW(G)),Y=dW(Z.output,$);return XZ.lastIndex=0,Y.replace(XZ,(J,G)=>Z.tokens[Number(G)])}function dW(X,$){let Z=new Set(["script","style","template","html","head","body","meta","link","title","base","!doctype","!DOCTYPE"]);return X.replace(/<([a-zA-Z][a-zA-Z0-9-]*)(\s[^>]*)?\/?>/g,(Y,J,G)=>{if(Z.has(J.toLowerCase()))return Y;if(Y.includes($))return Y;if(J.toLowerCase()==="style"||J.toLowerCase()==="script")return Y;if(G)return Y.replace(`<${J}${G}`,`<${J} ${$}${G}`);if(Y.endsWith("/>"))return`<${J} ${$} />`;return`<${J} ${$}>`})}var a$,fW,hW=(X)=>`\x00stx-scope-mask-${X}\x00`,XZ;var t$=E(()=>{l1();a$=String.raw`(?<![\w-])scoped(?![\w-])`,fW=new RegExp(`<style\\s+[^>]*${a$}`,"i");XZ=/\u0000stx-scope-mask-(\d+)\u0000/g});function lW(X){let $=X.replace(/^<template\b/i,"").replace(/>$/,"");return mW.test($)}function NX(X){N7.lastIndex=0;let $;while(($=N7.exec(X))!==null){if($[0].startsWith("</")||lW($[0]))continue;let Z=$.index,Y=N7.lastIndex,J=1,G;while((G=N7.exec(X))!==null)if(G[0].startsWith("</")){if(J--,J===0){let Q=G.index;return{start:Z,openEnd:Y,closeStart:Q,end:N7.lastIndex,content:X.slice(Y,Q)}}}else J++;return null}return null}var N7,mW;var e$=E(()=>{N7=/<\/?template\b[^>]*>/gi,mW=/(?:^|\s)(?:id\s*=|(?:x-|[@:])(?:for|if|else(?:-if)?)(?=\s|=|$)|#[\w-]+(?:\s*=|\s|$)|v-slot(?::[\w-]+)?(?=\s|=|$)|slot\s*=)/i});var ZZ=()=>{};function N0(X,$,Z,Y=0){let J=0,G=Y,Q=null,q=0,K=!1;while(G<X.length){let U=X[G];if(Q&&K){K=!1,G++;continue}if(Q&&U==="\\"){K=!0,G++;continue}if(K=!1,(U==='"'||U==="'"||U==="`")&&!Q){Q=U,G++;continue}if(U===Q&&Q!=="`"){Q=null,G++;continue}if(Q==="`"&&U==="$"&&X[G+1]==="{"){q++,G+=2;continue}if(q>0&&U==="}"){q--,G++;continue}if(U==="`"&&Q==="`"&&q===0){Q=null,G++;continue}if(Q){G++;continue}if(U===$)J++;else if(U===Z){if(J--,J===0)return G}G++}return-1}var Z9={};n(Z9,{useTitle:()=>rW,useSeoMeta:()=>YZ,usePageTitle:()=>rW,useHead:()=>$9,seoMetaToHeadConfig:()=>kX,resetHead:()=>iW,renderHtmlAttrs:()=>sW,renderHead:()=>oW,renderBodyAttrs:()=>aW,processTitleDirective:()=>Xw,processMetaDirective:()=>$w,processHeadDirective:()=>eW,mergeHeadConfigs:()=>k5,getPageMeta:()=>pW,getHead:()=>X9,definePageMeta:()=>nW,applyHead:()=>tW});function X9(){return N1}function pW(){return MX}function iW(){N1={},cW.length=0,MX={}}function $9(X){N1=k5(N1,X)}function k5(X,$){return{title:$.title??X.title,titleTemplate:$.titleTemplate??X.titleTemplate,base:$.base??X.base,meta:[...X.meta||[],...$.meta||[]],link:[...X.link||[],...$.link||[]],script:[...X.script||[],...$.script||[]],style:[...X.style||[],...$.style||[]],htmlAttrs:{...X.htmlAttrs,...$.htmlAttrs},bodyAttrs:{...X.bodyAttrs,...$.bodyAttrs}}}function YZ(X){$9(kX(X))}function kX(X){let $=[];if(X.description)$.push({name:"description",content:X.description});if(X.keywords){let K=Array.isArray(X.keywords)?X.keywords.join(", "):X.keywords;$.push({name:"keywords",content:K})}if(X.author)$.push({name:"author",content:X.author});if(X.robots)$.push({name:"robots",content:X.robots});let Z=X.ogTitle??X.title,Y=X.ogDescription??X.description;if(Z)$.push({property:"og:title",content:Z});if(Y)$.push({property:"og:description",content:Y});if(X.ogImage)$.push({property:"og:image",content:X.ogImage});if(X.ogUrl)$.push({property:"og:url",content:X.ogUrl});if(X.ogType)$.push({property:"og:type",content:X.ogType});if(X.ogSiteName)$.push({property:"og:site_name",content:X.ogSiteName});if(X.ogLocale)$.push({property:"og:locale",content:X.ogLocale});let J=X.twitterTitle??X.title,G=X.twitterDescription??X.description,Q=X.twitterImage??X.ogImage;if(X.twitterCard)$.push({name:"twitter:card",content:X.twitterCard});if(J)$.push({name:"twitter:title",content:J});if(G)$.push({name:"twitter:description",content:G});if(Q)$.push({name:"twitter:image",content:Q});if(X.twitterSite)$.push({name:"twitter:site",content:X.twitterSite});if(X.twitterCreator)$.push({name:"twitter:creator",content:X.twitterCreator});if(X.articleAuthor)$.push({property:"article:author",content:X.articleAuthor});if(X.articlePublishedTime)$.push({property:"article:published_time",content:X.articlePublishedTime});if(X.articleModifiedTime)$.push({property:"article:modified_time",content:X.articleModifiedTime});if(X.articleSection)$.push({property:"article:section",content:X.articleSection});if(X.articleTags)for(let K of X.articleTags)$.push({property:"article:tag",content:K});let q=[];if(X.canonical)q.push({rel:"canonical",href:X.canonical});return{title:X.title,titleTemplate:X.titleTemplate,meta:$,link:q}}function nW(X){if(MX={...MX,...X},X.title||X.description)YZ({title:X.title,description:X.description})}function rW(X){let $=typeof X==="function"?X():X;$9({title:$})}function oW(X=N1){let $=[];if(X.title){let Z=X.title;if(X.titleTemplate)Z=typeof X.titleTemplate==="function"?X.titleTemplate(Z):X.titleTemplate.replace("%s",Z);$.push(`<title>${p1(Z)}</title>`)}if(X.base){let Z=Object.entries(X.base).map(([Y,J])=>`${Y}="${p1(J)}"`).join(" ");$.push(`<base ${Z}>`)}for(let Z of X.meta||[]){let Y=Object.entries(Z).filter(([J,G])=>G!==void 0).map(([J,G])=>{return`${J==="httpEquiv"?"http-equiv":J}="${p1(String(G))}"`}).join(" ");$.push(`<meta ${Y}>`)}for(let Z of X.link||[]){let Y=Object.entries(Z).filter(([J,G])=>G!==void 0).map(([J,G])=>`${J}="${p1(String(G))}"`).join(" ");$.push(`<link ${Y}>`)}for(let Z of X.script||[]){let{content:Y,...J}=Z,G=Object.entries(J).filter(([Q,q])=>q!==void 0).map(([Q,q])=>{if(typeof q==="boolean")return q?Q:"";return`${Q}="${p1(String(q))}"`}).filter(Boolean).join(" ");if(Y)$.push(`<script ${G}>${Y}</script>`);else $.push(`<script ${G}></script>`)}for(let Z of X.style||[]){let Y=Z.type?` type="${Z.type}"`:"";$.push(`<style${Y}>${Z.content}</style>`)}return $.join(`
|
|
3740
|
+
`)}function sW(X=N1){if(!X.htmlAttrs)return"";return Object.entries(X.htmlAttrs).map(([$,Z])=>`${$}="${p1(Z)}"`).join(" ")}function aW(X=N1){if(!X.bodyAttrs)return"";return Object.entries(X.bodyAttrs).map(([$,Z])=>`${$}="${p1(Z)}"`).join(" ")}function p1(X){return X.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function tW(X=N1){if(typeof document>"u")return;if(X.title){let $=X.title;if(X.titleTemplate)$=typeof X.titleTemplate==="function"?X.titleTemplate($):X.titleTemplate.replace("%s",$);document.title=$}for(let $ of X.meta||[]){let Z=$.name?`meta[name="${$.name}"]`:$.property?`meta[property="${$.property}"]`:null;if(Z){let Y=document.querySelector(Z);if(!Y){if(Y=document.createElement("meta"),$.name)Y.setAttribute("name",$.name);if($.property)Y.setAttribute("property",$.property);document.head.appendChild(Y)}Y.setAttribute("content",$.content)}}for(let $ of X.link||[]){let Z=`link[rel="${$.rel}"]${$.href?`[href="${$.href}"]`:""}`,Y=document.querySelector(Z);if(!Y)Y=document.createElement("link"),document.head.appendChild(Y);for(let[J,G]of Object.entries($))if(G!==void 0)Y.setAttribute(J,String(G))}if(X.htmlAttrs)for(let[$,Z]of Object.entries(X.htmlAttrs))if($==="class")for(let Y of String(Z).split(/\s+/).filter(Boolean))document.documentElement.classList.add(Y);else document.documentElement.setAttribute($,Z);if(X.bodyAttrs)for(let[$,Z]of Object.entries(X.bodyAttrs))document.body.setAttribute($,Z)}function eW(X){let $="";return{content:X.replace(/@head\s*([\s\S]*?)@endhead/g,(Y,J)=>{return $+=J.trim()+`
|
|
3741
|
+
`,""}),headContent:$.trim()}}function Xw(X,$){return X.replace(/@title\s*\(\s*(?:(['"`])(.+?)\1|([^)]+))\s*\)/g,(Z,Y,J,G)=>{let Q=Y?J:$[(G||"").trim()]??G,q=$.__stx_runtime_head??{};return $.__stx_runtime_head=k5(q,{title:Q}),""})}function $w(X,$){return X.replace(/@meta\s*\(\s*(['"`])(.+?)\1\s*,\s*(?:(['"`])(.+?)\3|([^)]+))\s*\)/g,(Z,Y,J,G,Q,q)=>{let K=G?Q:q,U=G?K:$[(K||"").trim()]??K,w=J.includes(":")?{property:J,content:U}:{name:J,content:U},z=$.__stx_runtime_head??{};return $.__stx_runtime_head=k5(z,{meta:[w]}),""})}var N1,cW,MX;var M7=E(()=>{N1={},cW=[],MX={}});var IX={};n(IX,{stripTypeScript:()=>WZ,splitDeclaration:()=>HZ,isModuleResolutionFailure:()=>wZ,isMissingBindingFailure:()=>zZ,isCompleteImport:()=>jZ,hasVariables:()=>VZ,extractVariables:()=>i1,extractScriptFromTemplate:()=>FZ,convertToCommonJS:()=>G9,STX_ENGINE_BINDING_NAMES:()=>J9});import M1 from"path";import I5 from"process";function Yw(X){let $=[],Z=0,Y=X.split(`
|
|
3742
3742
|
`);for(let J of Y){let G=Z,Q=null,q=!1;for(let K=0;K<J.length;K++){let U=J[K];if(q){q=!1;continue}if(U==="\\"){q=!0;continue}if(Q){if(U===Q)Q=null;continue}if(U==="'"||U==='"'||U==="`"){Q=U;continue}if(U==="/"&&K+1<J.length&&J[K+1]==="/")break;if(U==="{")Z++;else if(U==="}")Z--}if(G===0){let K=J.match(/(?:const|let|var)\s+(\w+)\s*=/);if(K)$.push(K[1]);else if(/^\s*(?:const|let|var)\s+\w+\s*;?\s*$/.test(J)){let U=J.match(/(?:const|let|var)\s+(\w+)/);if(U)$.push(U[1])}else{let U=J.match(/(?:const|let|var)\s+(\{[^}]+\}|\[[^\]]+\])\s*=/);if(U){let w=U[1].slice(1,-1).split(",").map((z)=>{let B=z.split(":");return(B.length>1?B[1]:B[0]).trim()}).filter((z)=>/^\w+$/.test(z));$.push(...w)}}}}return[...new Set($)]}function WZ(X){let $=X;$=$.replace(/^\s*import\s+.*?from\s+['"][^'"]+['"]\s*;?\s*$/gm,""),$=$.replace(/^\s*import\s+['"][^'"]+['"]\s*;?\s*$/gm,""),$=$.replace(/^\s*interface\s+\w+\s*\{[\s\S]*?\n\}\s*$/gm,""),$=$.replace(/^\s*type\s+\w+\s*=[\s\S]*?(?=\n(?:const|let|var|function|export|interface|type|$))/gm,""),$=$.replace(/^(\s*(?:export\s+)?(?:const|let|var)\s+)(\w+|\{[^}]+\}|\[[^\]]+\])\s*:\s*[^=]+(\s*=)/gm,"$1$2$3");function Z(Y){if(!Y.includes(":"))return Y;let J=[],G="",Q=0,q=0,K=null;for(let U=0;U<Y.length;U++){let W=Y[U];if(K){if(G+=W,W===K)K=null;continue}if(W==='"'||W==="'"||W==="`"){K=W,G+=W;continue}if(W==="<")Q++;else if(W===">"&&Q>0)Q--;else if(W==="(")q++;else if(W===")")q--;if(W===","&&Q===0&&q===0){J.push(G),G="";continue}G+=W}if(G)J.push(G);return J.map((U)=>{let W=U.trim(),w=W.startsWith("..."),z=w?W.slice(3):W,B=-1,j=0;for(let A=0;A<z.length;A++)if(z[A]==="<")j++;else if(z[A]===">")j--;else if(z[A]===":"&&j===0){B=A;break}if(B===-1)return U;let H=z.substring(0,B).trim().replace(/\?$/,""),L=z.substring(B+1),O=-1,F=0;for(let A=0;A<L.length;A++)if(L[A]==="<")F++;else if(L[A]===">")F--;else if(L[A]==="="&&F===0){O=A;break}let V=w?"...":"";if(O!==-1)return`${V}${H} = ${L.substring(O+1).trim()}`;return`${V}${H}`}).join(", ")}$=$.replace(/\b(function\s+\w*\s*)\(([^)]*)\)/g,(Y,J,G)=>{if(!G.includes(":"))return Y;return`${J}(${Z(G)})`});{let Y=/\b(function\s+\w*\s*)\(/g,J,G=[];while((J=Y.exec($))!==null){let Q=J.index+J[0].length-1,q=1,K=Q+1,U=0,W=null;while(K<$.length&&q>0){let B=$[K];if(W){if(B===W)W=null;K++;continue}if(B==='"'||B==="'"||B==="`"){W=B,K++;continue}if(B==="<")U++;else if(B===">"&&U>0)U--;else if(U===0){if(B==="(")q++;else if(B===")")q--}if(q>0)K++}if(q!==0)continue;let w=$.substring(Q+1,K);if(!w.includes(":"))continue;let z=Z(w);G.push({start:Q+1,end:K,replacement:z})}for(let Q=G.length-1;Q>=0;Q--){let{start:q,end:K,replacement:U}=G[Q];$=$.substring(0,q)+U+$.substring(K)}}return $=$.replace(/\(([^)]*)\)\s*(?::\s*[^=]+)?\s*=>/g,(Y,J)=>{if(!J.includes(":"))return Y;if(J.includes("{")||J.includes("}"))return Y;return`(${J.split(",").map((Q)=>{let[q,...K]=Q.split("="),U=q.split(":")[0].trim();if(K.length>0)return`${U} = ${K.join("=").trim()}`;return U}).join(", ")}) =>`}),$=$.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"),$=$.replace(/(\b(?:function|class|interface|type|extends|implements)\s+\w+)\s*<[^<>()]*>/g,"$1"),$=$.replace(/(\b(?:defineProps|withDefaults|defineEmits|defineSlots|Array|Promise|Map|Set|Record|Partial|Required|Readonly|Pick|Omit|Exclude|Extract))\s*<[^<>()]*>/g,"$1"),$=$.replace(/(\w+)\s*<[A-Z][^<>()]*>\s*(?=\()/g,"$1"),$=$.replace(/\s+as\s+(?:const|[A-Za-z]\w*(?:\[\])?(?:\s*\|\s*\w+(?:\[\])?)*)/g,""),$=$.replace(/\s+satisfies\s+\w+(?:<[^>]*>)?/g,""),$=$.replace(/(\w|\)|\])\s*!(?!=)/g,"$1"),$=$.replace(/^\s*(?:export\s+)?(?:const\s+)?enum\s+\w+\s*\{[^}]*\}\s*$/gm,""),$=$.replace(/(?<=[\s=,(])<[A-Z]\w*(?:\[\])?>/g,""),$=$.replace(/\n\s*\n\s*\n/g,`
|
|
3743
3743
|
|
|
3744
|
-
`),$}function wZ(X){return/cannot find module|could not resolve|module not found|failed to resolve/i.test(X)}function zZ(X){if(!/is not defined|can't find variable/i.test(X))return!1;return!/\b(document|window|navigator|localStorage|sessionStorage|self)\b/.test(X)}async function i1(X,$,Z,Y={}){if(!X.trim())return;let J;try{let D=new Bun.Transpiler({loader:"ts",target:"browser",define:S0()}),v=X.replace(/^\s*import\s+\w+\s+from\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");v=v.replace(/^\s*import\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,""),J=D.transformSync(v)}catch{J=WZ(X)}let G={exports:{}},Q=G.exports,q=I5.cwd(),K={},U=[...J.matchAll(/require\s*\(\s*['"]([^'"]+)['"]\s*\)/g)||[]].map((D)=>D[1]).filter((D)=>!D.startsWith("node:")&&!D.startsWith(".")&&!["fs","path","os","child_process","crypto","http","https","url","util","stream","events","buffer","net","querystring","zlib","tls"].includes(D));for(let D of U)try{let v=M1.resolve(q,"node_modules",D),u=M1.join(v,"package.json"),f=JSON.parse(W0("fs").readFileSync(u,"utf8")),o=f.main||"index.js";if(f.exports){let Z0=typeof f.exports==="string"?f.exports:f.exports["."];if(typeof Z0==="string")o=Z0;else if(Z0?.bun)o=Z0.bun;else if(Z0?.import)o=Z0.import;else if(Z0?.default)o=Z0.default}K[D]=await import(M1.resolve(v,o))}catch{}let W=(D)=>{if(K[D])return K[D];return W0(D)},w=$.props||{},z=(D)=>{if(!D)return w;let v={};for(let[u,f]of Object.entries(D)){let o=w[u];if(o!==void 0)v[u]=o;else if(typeof f==="function")v[u]=f();else v[u]=f}return v};for(let[D,v]of Object.entries(w))Object.defineProperty(z,D,{value:v,enumerable:!0,configurable:!0,writable:!0});for(let D of["name","length","caller","arguments"]){if(Object.prototype.hasOwnProperty.call(w,D))continue;try{Object.defineProperty(z,D,{value:void 0,enumerable:!1,configurable:!0,writable:!0})}catch{}}let B=(D)=>{if(!D)return w;let v={...w};for(let[u,f]of Object.entries(D)){let o=f&&typeof f==="object"&&!Array.isArray(f)?f:{type:f};if(v[u]===void 0&&o.default!==void 0)v[u]=typeof o.default==="function"?o.default():o.default}return v},j=()=>$.slots||{},_=(D,v)=>{let u={...D};for(let[f,o]of Object.entries(v))if(u[f]===void 0)if(typeof o==="function")u[f]=o();else u[f]=o;return u},H=(D)=>{let v=()=>D;return v.set=(u)=>{},v.update=(u)=>{},v},L=(D)=>{let v,u=!1;return()=>{if(!u)try{v=D(),u=!0}catch{v=void 0}return v}},O=(D)=>{},F=(D)=>D(),V=(D)=>{},A=(D)=>{};function R(D){let v=D||{};if(v.title!==void 0||v.description!==void 0)y({title:v.title,description:v.description})}function
|
|
3745
|
-
`),z5=$.params??{},H1=[],O1=[];for(let i=0;i<f.length;i++){if(f[i]==="params")continue;H1.push(f[i]),O1.push(o[i])}let
|
|
3744
|
+
`),$}function wZ(X){return/cannot find module|could not resolve|module not found|failed to resolve/i.test(X)}function zZ(X){if(!/is not defined|can't find variable/i.test(X))return!1;return!/\b(document|window|navigator|localStorage|sessionStorage|self)\b/.test(X)}async function i1(X,$,Z,Y={}){if(!X.trim())return;let J;try{let D=new Bun.Transpiler({loader:"ts",target:"browser",define:S0()}),v=X.replace(/^\s*import\s+\w+\s+from\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");v=v.replace(/^\s*import\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,""),J=D.transformSync(v)}catch{J=WZ(X)}let G={exports:{}},Q=G.exports,q=I5.cwd(),K={},U=[...J.matchAll(/require\s*\(\s*['"]([^'"]+)['"]\s*\)/g)||[]].map((D)=>D[1]).filter((D)=>!D.startsWith("node:")&&!D.startsWith(".")&&!["fs","path","os","child_process","crypto","http","https","url","util","stream","events","buffer","net","querystring","zlib","tls"].includes(D));for(let D of U)try{let v=M1.resolve(q,"node_modules",D),u=M1.join(v,"package.json"),f=JSON.parse(W0("fs").readFileSync(u,"utf8")),o=f.main||"index.js";if(f.exports){let Z0=typeof f.exports==="string"?f.exports:f.exports["."];if(typeof Z0==="string")o=Z0;else if(Z0?.bun)o=Z0.bun;else if(Z0?.import)o=Z0.import;else if(Z0?.default)o=Z0.default}K[D]=await import(M1.resolve(v,o))}catch{}let W=(D)=>{if(K[D])return K[D];return W0(D)},w=$.props||{},z=(D)=>{if(!D)return w;let v={};for(let[u,f]of Object.entries(D)){let o=w[u];if(o!==void 0)v[u]=o;else if(typeof f==="function")v[u]=f();else v[u]=f}return v};for(let[D,v]of Object.entries(w))Object.defineProperty(z,D,{value:v,enumerable:!0,configurable:!0,writable:!0});for(let D of["name","length","caller","arguments"]){if(Object.prototype.hasOwnProperty.call(w,D))continue;try{Object.defineProperty(z,D,{value:void 0,enumerable:!1,configurable:!0,writable:!0})}catch{}}let B=(D)=>{if(!D)return w;let v={...w};for(let[u,f]of Object.entries(D)){let o=f&&typeof f==="object"&&!Array.isArray(f)?f:{type:f};if(v[u]===void 0&&o.default!==void 0)v[u]=typeof o.default==="function"?o.default():o.default}return v},j=()=>$.slots||{},_=(D,v)=>{let u={...D};for(let[f,o]of Object.entries(v))if(u[f]===void 0)if(typeof o==="function")u[f]=o();else u[f]=o;return u},H=(D)=>{let v=()=>D;return v.set=(u)=>{},v.update=(u)=>{},v},L=(D)=>{let v,u=!1;return()=>{if(!u)try{v=D(),u=!0}catch{v=void 0}return v}},O=(D)=>{},F=(D)=>D(),V=(D)=>{},A=(D)=>{};function R(D){let v=D||{};if(v.title!==void 0||v.description!==void 0)y({title:v.title,description:v.description})}function T(D){if(!D||typeof D!=="object")return;let v=$.__stxClientPayload??{};Object.assign(v,D),$.__stxClientPayload=v}let N=()=>{let D=$.__stxServeContext,v=$.__stxServeSearch??D?.search??"",u=D?.path??"",f=Object.fromEntries(new URLSearchParams(v)),o=$.query,Z0=Object.keys(f).length>0?f:o??{},n0=v||(Object.keys(Z0).length>0?`?${new URLSearchParams(Z0).toString()}`:"");return{params:$.params??{},query:Z0,path:u,name:"",fullPath:u+n0,hash:"",matched:[]}},k=()=>({push:(D)=>{},replace:(D)=>{},back:()=>{},forward:()=>{},go:(D)=>{}}),M=(D)=>{let v=$.__stx_runtime_head||{};$.__stx_runtime_head=k5(v,D||{})},y=(D)=>{M(kX(D||{}))},I=(D)=>({value:D}),C=(D)=>D,S=(D)=>({value:typeof D==="function"?D():D}),b=(D,v)=>{},P=(D)=>{},x=(D)=>{},d=(D)=>D?D():Promise.resolve(),m=(D)=>(v,...u)=>{},Y0=(D)=>{},d0=(D,v)=>{},F0=(D,v)=>v,i0=()=>({value:"light"}),l=()=>H(!1),j0=(D)=>H(!1),m0=()=>H(!1),_1=()=>j0("(prefers-color-scheme: dark)"),W5=()=>j0("(prefers-color-scheme: light)"),w5=()=>j0("(prefers-reduced-motion: reduce)"),r=()=>j0("(prefers-contrast: more)"),a={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:{}},K0=new Proxy(a,{get(D,v){if(v in D)return D[v];return},set(D,v,u){return D[v]=u,!0}}),T0={getElementById:()=>null,querySelector:()=>null,querySelectorAll:()=>[],createElement:()=>({}),createTextNode:()=>({}),body:{},head:{},documentElement:{},addEventListener:()=>{},removeEventListener:()=>{}},J0=console;try{let D=G9(J,Z),v=new Set(Object.keys(w)),u=(i)=>/^[a-z_$][\w$]*$/i.test(i),f=Object.keys($).filter((i)=>!v.has(i)&&i!=="props"&&u(i)),o=f.map((i)=>$[i]);if(!f.includes("__stxServeContext"))f.push("__stxServeContext"),o.push(void 0);let Z0=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"]),n0=[],b0=[];for(let[i,e0]of Object.entries(w)){if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(i))continue;if(Z0.has(i))continue;if(new RegExp(`(?:^|[\\s;{])(?:const|let|var|function)\\s+${i}\\b`).test(D))continue;n0.push(i),b0.push(e0)}let r0=Yw(D).map((i)=>`module.exports.${i} = typeof ${i} !== 'undefined' ? ${i} : module.exports.${i};`).join(`
|
|
3745
|
+
`),z5=$.params??{},H1=[],O1=[];for(let i=0;i<f.length;i++){if(f[i]==="params")continue;H1.push(f[i]),O1.push(o[i])}let t0=await Function(...J9,...n0,...H1,`return (async () => {
|
|
3746
3746
|
${D}
|
|
3747
|
-
${
|
|
3747
|
+
${r0}
|
|
3748
3748
|
return module.exports
|
|
3749
|
-
})()`)(G,Q,W,w,z,B,_,
|
|
3749
|
+
})()`)(G,Q,W,w,z,B,_,T,H,L,O,F,V,A,R,N,k,M,y,I,C,S,b,P,x,d,m,Y0,j,d0,F0,i0,l,j0,m0,_1,W5,w5,r,K0,T0,J0,a.confirm,a.alert,a.fetch,z5,...b0,...O1);if(Y.preserveExisting){for(let[i,e0]of Object.entries(t0))if(!(i in $)||$[i]===void 0)$[i]=e0}else Object.assign($,t0);for(let[i,e0]of Object.entries(w))if(!(i in $))$[i]=e0}catch(D){let v=D instanceof Error?D.message:String(D);if(wZ(v))console.warn(`[stx] server <script> in ${Z??"<unknown>"} imports a module that does not resolve, so every variable in that script is undefined. Cause: ${v}`);else if(zZ(v))console.warn(`[stx] server <script> in ${Z??"<unknown>"} names something that does not exist, so every variable in that script is undefined. Optional chaining does not help here: an undefined identifier throws before the chain is reached. Cause: ${v}`);else if(I5.env.STX_DEBUG)console.warn(`[stx] server <script> did not execute in ${Z??"<unknown>"} \u2014 falling back to static extraction. Cause: ${v}`);try{await Uw(J,$,Z)}catch(u){if(I5.env.STX_DEBUG){let f=u instanceof Error?u.message:String(u);console.warn(`[stx] fallback extraction also failed in ${Z??"<unknown>"}: ${f}`)}}}}function jZ(X){let $=0,Z=null,Y=!1,J=!1;for(let G=0;G<X.length;G++){let Q=X[G];if(Z){if(Q===Z){if(Z=null,Y||$===0)J=!0}continue}if(Q==="'"||Q==='"'||Q==="`"){Z=Q;continue}if(Q==="{")$++;else if(Q==="}")$--;else if(X.startsWith("from",G)&&$===0)Y=!0}return Z===null&&$===0&&J}function G9(X,$){let Z=$?M1.dirname($):I5.cwd(),Y=I5.cwd(),J=X.split(`
|
|
3750
3750
|
`),G=[],Q=0;while(Q<J.length){let q=J[Q].trim();if(q.startsWith("interface ")||q.startsWith("export interface ")||q.startsWith("type ")||q.startsWith("export type ")){if(q.includes("{")&&!q.includes("}")){let K=0;for(;Q<J.length;Q++){for(let U of J[Q])if(U==="{")K++;else if(U==="}")K--;if(K<=0)break}}Q++;continue}if(q.startsWith("definePageMeta(")){let K=0,U=!1,W=Q;for(let B=Q;B<J.length&&!U;B++){let j=null,_=!1,H=J[B];for(let L=0;L<H.length;L++){let O=H[L];if(_){_=!1;continue}if(O==="\\"){_=!0;continue}if(j){if(O===j)j=null;continue}if(O==='"'||O==="'"||O==="`"){j=O;continue}if(O==="(")K++;else if(O===")"){if(K--,K===0){Q=B+1,U=!0;break}}}}if(!U)Q=J.length;let w=J.slice(W,Q).join(`
|
|
3751
|
-
`),z=[];for(let B of["title","description"]){let j=new RegExp(`\\b${B}\\s*:\\s*(['"\`])((?:\\\\.|(?!\\1)[^\\\\])*)\\1`).exec(w);if(j)z.push(`${B}: ${JSON.stringify(j[2])}`)}if(z.length>0)G.push(`useSeoMeta({ ${z.join(", ")} });`);continue}if(q.startsWith("import ")||q==="import"||q.startsWith("import{")){let K=q,U=0;while(!jZ(K)&&Q+U+1<J.length)U++,K=`${K} ${J[Q+U].trim()}`;Q+=U;let W=K.match(/^import\s+(\w+)\s+from\s+['"](.+?)['"]/),w=K.match(/^import\s+\{([^}]*)\}\s+from\s+['"](.+?)['"]/),z=K.match(/^import\s+['"](.+?)['"]/),B=K,j=(_)=>{if(_.startsWith("."))return M1.resolve(Z,_);if(_.startsWith("~/")||_.startsWith("@/"))return M1.resolve(Y,_.slice(2));return _};if(W){let[,_,H]=W,L=j(H);G.push(`const ${_} = (await import('${L}')).default`),G.push(`module.exports.${_} = ${_};`)}else if(w){let[,_,H]=w,L=j(H),O=[],F=[],V=Zw.has(H);for(let A of _.split(",")){let R=A.trim();if(!R)continue;let
|
|
3751
|
+
`),z=[];for(let B of["title","description"]){let j=new RegExp(`\\b${B}\\s*:\\s*(['"\`])((?:\\\\.|(?!\\1)[^\\\\])*)\\1`).exec(w);if(j)z.push(`${B}: ${JSON.stringify(j[2])}`)}if(z.length>0)G.push(`useSeoMeta({ ${z.join(", ")} });`);continue}if(q.startsWith("import ")||q==="import"||q.startsWith("import{")){let K=q,U=0;while(!jZ(K)&&Q+U+1<J.length)U++,K=`${K} ${J[Q+U].trim()}`;Q+=U;let W=K.match(/^import\s+(\w+)\s+from\s+['"](.+?)['"]/),w=K.match(/^import\s+\{([^}]*)\}\s+from\s+['"](.+?)['"]/),z=K.match(/^import\s+['"](.+?)['"]/),B=K,j=(_)=>{if(_.startsWith("."))return M1.resolve(Z,_);if(_.startsWith("~/")||_.startsWith("@/"))return M1.resolve(Y,_.slice(2));return _};if(W){let[,_,H]=W,L=j(H);G.push(`const ${_} = (await import('${L}')).default`),G.push(`module.exports.${_} = ${_};`)}else if(w){let[,_,H]=w,L=j(H),O=[],F=[],V=Zw.has(H);for(let A of _.split(",")){let R=A.trim();if(!R)continue;let T=R.split(/\s+as\s+/);if(T.length===2){let[N,k]=[T[0].trim(),T[1].trim()];if(V&&JZ.has(N)){G.push(`const ${k} = ${N};`),F.push(k);continue}O.push(`${N}: ${k}`),F.push(k)}else{if(V&&JZ.has(R)){F.push(R);continue}O.push(R),F.push(R)}}if(O.length>0)G.push(`const { ${O.join(", ")} } = await import('${L}')`);for(let A of F)G.push(`module.exports.${A} = ${A};`)}else if(z){let _=j(z[1]);G.push(`await import('${_}')`)}else G.push(B);Q++;continue}if(Jw.test(q))G.push(J[Q]),Q++;else if(q.startsWith("export const ")||q.startsWith("export let ")||q.startsWith("export var ")){let K=QZ(J,Q),{type:U,name:W,value:w}=K;G.push(`${U} ${W} = ${w};`),G.push(`module.exports.${W} = ${W};`),Q=K.nextIndex}else if(q.startsWith("export function ")||q.startsWith("export async function ")){let K=Y9(J,Q);G.push(K.functionCode),G.push(`module.exports.${K.name} = ${K.name};`),Q=K.nextIndex}else if(q.startsWith("const ")||q.startsWith("let ")||q.startsWith("var ")){let K=QZ(J,Q),{type:U,name:W,value:w}=K;G.push(`${U} ${W} = ${w};`),G.push(`module.exports.${W} = ${W};`),Q=K.nextIndex}else if(q.startsWith("function ")||q.startsWith("async function ")){let K=Y9(J,Q);G.push(K.functionCode),G.push(`module.exports.${K.name} = ${K.name};`),Q=K.nextIndex}else if(q.startsWith("export default function ")||q.startsWith("export default async function ")){let K=J[Q].replace(/^(\s*)export\s+default\s+/,"$1"),U=[...J];U[Q]=K;let W=Y9(U,Q);if(G.push(W.functionCode),W.name)G.push(`module.exports.default = ${W.name};`);Q=W.nextIndex}else if(q.startsWith("export default ")){let K=q.replace(/^export\s+default\s+/,"").replace(/;$/,"");G.push(`module.exports.default = ${K};`),Q++}else if(q.startsWith("class ")||q.startsWith("export class ")){let K=q.match(/(?:export\s+)?class\s+(\w+)/);if(K){let U=K[1],W=J[Q].replace(/^export\s+/,""),w=0,z=Q;for(;z<J.length;z++){let B=J[z];for(let j of B)if(j==="{")w++;else if(j==="}")w--;if(z>Q)W+=`
|
|
3752
3752
|
`+B;if(w<=0&&z>=Q)break}G.push(W),G.push(`module.exports.${U} = ${U};`),Q=z+1}else G.push(q),Q++}else if(q.includes("module.exports"))G.push(q),Q++;else if(q.trim()&&!q.startsWith("//"))G.push(q),Q++;else Q++}return Gw(G.join(`
|
|
3753
3753
|
`),Z,Y)}function Gw(X,$,Z){let Y=X.length,J="",G=0,Q=null,q=!1,K=!1,U=0;while(G<Y){let W=X[G],w=X[G+1];if(q){if(J+=W,W===`
|
|
3754
|
-
`)q=!1;G++;continue}if(K){if(J+=W,W==="*"&&w==="/"){J+=w,G+=2,K=!1;continue}G++;continue}if(!Q&&W==="/"&&w==="/"){q=!0,J+=W,G++;continue}if(!Q&&W==="/"&&w==="*"){K=!0,J+=W,G++;continue}if(Q){if(J+=W,W==="\\"){J+=w,G+=2;continue}if(W===Q&&Q!=="`"){Q=null,G++;continue}if(Q==="`"){if(W==="$"&&w==="{"){U++,J+=w,G+=2;continue}if(W==="`"){Q=null,G++;continue}}G++;continue}if(U>0){if(W==="{")U++;else if(W==="}")U--}if(W==='"'||W==="'"||W==="`"){Q=W,J+=W,G++;continue}if(W==="a"&&X.startsWith("await",G)){let z=Qw(X,G);if(z){let{quote:B,path:j,end:_}=z;if(j.startsWith(".")||j.startsWith("~/")||j.startsWith("@/")){let H=j.startsWith(".")?M1.resolve($,j):M1.resolve(Z,j.slice(2));J+=`await import(${B}${H}${B})`,G=_;continue}}}J+=W,G++}return J}function Qw(X,$){let Z=$+5;if(Z>=X.length)return null;if(!/\s/.test(X[Z]))return null;while(Z<X.length&&/\s/.test(X[Z]))Z++;if(!X.startsWith("import",Z))return null;Z+=6;while(Z<X.length&&/\s/.test(X[Z]))Z++;if(X[Z]!=="(")return null;Z++;while(Z<X.length&&/\s/.test(X[Z]))Z++;let Y=X[Z];if(Y!=="'"&&Y!=='"')return null;Z++;let J=Z;while(Z<X.length&&X[Z]!==Y)if(X[Z]==="\\")Z+=2;else Z++;if(Z>=X.length)return null;let G=X.slice(J,Z);Z++;while(Z<X.length&&/\s/.test(X[Z]))Z++;if(X[Z]!==")")return null;return{quote:Y,path:G,end:Z+1}}function BZ(X,$){let Z=X[$];if(Z!=="{"&&Z!=="[")return null;let J=
|
|
3754
|
+
`)q=!1;G++;continue}if(K){if(J+=W,W==="*"&&w==="/"){J+=w,G+=2,K=!1;continue}G++;continue}if(!Q&&W==="/"&&w==="/"){q=!0,J+=W,G++;continue}if(!Q&&W==="/"&&w==="*"){K=!0,J+=W,G++;continue}if(Q){if(J+=W,W==="\\"){J+=w,G+=2;continue}if(W===Q&&Q!=="`"){Q=null,G++;continue}if(Q==="`"){if(W==="$"&&w==="{"){U++,J+=w,G+=2;continue}if(W==="`"){Q=null,G++;continue}}G++;continue}if(U>0){if(W==="{")U++;else if(W==="}")U--}if(W==='"'||W==="'"||W==="`"){Q=W,J+=W,G++;continue}if(W==="a"&&X.startsWith("await",G)){let z=Qw(X,G);if(z){let{quote:B,path:j,end:_}=z;if(j.startsWith(".")||j.startsWith("~/")||j.startsWith("@/")){let H=j.startsWith(".")?M1.resolve($,j):M1.resolve(Z,j.slice(2));J+=`await import(${B}${H}${B})`,G=_;continue}}}J+=W,G++}return J}function Qw(X,$){let Z=$+5;if(Z>=X.length)return null;if(!/\s/.test(X[Z]))return null;while(Z<X.length&&/\s/.test(X[Z]))Z++;if(!X.startsWith("import",Z))return null;Z+=6;while(Z<X.length&&/\s/.test(X[Z]))Z++;if(X[Z]!=="(")return null;Z++;while(Z<X.length&&/\s/.test(X[Z]))Z++;let Y=X[Z];if(Y!=="'"&&Y!=='"')return null;Z++;let J=Z;while(Z<X.length&&X[Z]!==Y)if(X[Z]==="\\")Z+=2;else Z++;if(Z>=X.length)return null;let G=X.slice(J,Z);Z++;while(Z<X.length&&/\s/.test(X[Z]))Z++;if(X[Z]!==")")return null;return{quote:Y,path:G,end:Z+1}}function BZ(X,$){let Z=X[$];if(Z!=="{"&&Z!=="[")return null;let J=N0(X,Z,Z==="{"?"}":"]",$);if(J===-1)return null;return{pattern:X.slice($,J+1),endPos:J+1}}function _Z(X){let $=[],Z=X.slice(1,-1).trim();if(!Z)return $;let Y=0,J=0,G="";while(Y<Z.length){let Q=Z[Y];if(Q==="{"||Q==="["){let q=J===0?BZ(Z,Y):null;if(q){$.push(..._Z(q.pattern)),Y=q.endPos,G="";continue}J++}else if(Q==="}"||Q==="]")J--;if(J>0){Y++;continue}if(Q===","){if(G.trim())$.push(G.trim());G="",Y++;continue}if(Q===":"){G="",Y++;continue}if(Q==="="){if(G.trim())$.push(G.trim());G="",Y++;while(Y<Z.length&&Z[Y]!==","&&J===0){if(Z[Y]==="{"||Z[Y]==="[")J++;else if(Z[Y]==="}"||Z[Y]==="]")J--;Y++}continue}if(/[\w$]/.test(Q))G+=Q;Y++}if(G.trim())$.push(G.trim());return $}function HZ(X){let $=/^(?:export\s+)?(const|let|var)\s+([A-Za-z_$][\w$]*)/.exec(X);if(!$)return null;let Z=$[0].length,Y=(J)=>J===" "||J==="\t";while(Z<X.length&&Y(X[Z]))Z++;if(X[Z]===":"){let J=0,G=null;Z++;for(;Z<X.length;Z++){let Q=X[Z];if(G){if(Q==="\\"){Z++;continue}if(Q===G)G=null;continue}if(Q==="'"||Q==='"'||Q==="`"){G=Q;continue}if(Q==="("||Q==="["||Q==="{"||Q==="<"){J++;continue}if(Q===")"||Q==="]"||Q==="}"||Q===">"){J--;continue}if(Q==="="&&J<=0){let q=X[Z+1],K=X[Z-1];if(q!=="="&&q!==">"&&K!=="="&&K!=="!"&&K!=="<"&&K!==">")break}}if(X[Z]!=="=")return null}while(Z<X.length&&Y(X[Z]))Z++;if(X[Z]!=="=")return null;return{type:$[1],name:$[2],value:X.slice(Z+1).trim()}}function GZ(X,$,Z,Y){let J=null,G=!1;for(let Q of X){if(G){G=!1;continue}if(Q==="\\"){G=!0;continue}if(J){if(Q===J)J=null;continue}if(Q==="'"||Q==='"'||Q==="`"){J=Q;continue}if(Q===$)Y++;else if(Q===Z)Y--}return Y}function QZ(X,$){let Z=X[$].trim(),Y=HZ(Z),J=Y?[Z,Y.type,Y.name,Y.value]:null;if(!J){let W=Z.match(/^(?:export\s+)?(const|let|var)\s+/);if(W){let w=Z.slice(W[0].length),z=$;if(w.startsWith("{")||w.startsWith("[")){let j=w[0],_=j==="{"?"}":"]",H=GZ(w,j,_,0),L=w;for(let O=$+1;O<X.length&&H>0;O++)L+=` ${X[O].trim()}`,z=O,H=GZ(X[O],j,_,H);if(H>0)L=w,z=$;w=L}let B=BZ(w,0);if(B){let j=W[1],_=B.pattern,H=w.slice(B.endPos).trim();if(H.startsWith("=")){let L=H.slice(1).trim(),O=L,F=Math.max(z,$);if(qZ(L)){let T=KZ(X,F,L);O=T.value,F=T.nextIndex}else F=F+1;O=O.trim().replace(/;$/,"");let V=_Z(_),A=`__stx_src_${$}`,R=V.map((T)=>`module.exports.${T} = ${T};`).join(`
|
|
3755
3755
|
`);return{type:j,name:A,value:`${O}; ${j} ${_} = ${A};
|
|
3756
3756
|
${R}`,nextIndex:F}}}}throw Error(`Failed to parse variable declaration: ${Z}`)}let[,G,Q,q]=J,K=q,U=$;if(qZ(q)){let W=KZ(X,$,q);K=W.value,U=W.nextIndex}else U=$+1;while(U<X.length){let W=X[U].trim();if(W.startsWith(".")||W.startsWith("?."))K+=`
|
|
3757
|
-
${X[U]}`,U++;else break}return K=K.trim().replace(/;$/,""),{type:G,name:Q,value:K,nextIndex:U}}function Y9(X,$){let Z=X[$].trim(),Y=Z.match(/^(?:export\s+)?(?:async\s+)?function\s+(\w+)/);if(!Y)throw Error(`Failed to parse function declaration: ${Z}`);let[,J]=Y,G=Z.replace(/^export\s+/,""),Q=$;if(qw(Z)){let q=Kw(X,$,G);G=q.functionCode,Q=q.nextIndex}else Q=$+1;return{name:J,functionCode:G,nextIndex:Q}}function qZ(X){let $=X.trim();if($.startsWith("{"))return
|
|
3757
|
+
${X[U]}`,U++;else break}return K=K.trim().replace(/;$/,""),{type:G,name:Q,value:K,nextIndex:U}}function Y9(X,$){let Z=X[$].trim(),Y=Z.match(/^(?:export\s+)?(?:async\s+)?function\s+(\w+)/);if(!Y)throw Error(`Failed to parse function declaration: ${Z}`);let[,J]=Y,G=Z.replace(/^export\s+/,""),Q=$;if(qw(Z)){let q=Kw(X,$,G);G=q.functionCode,Q=q.nextIndex}else Q=$+1;return{name:J,functionCode:G,nextIndex:Q}}function qZ(X){let $=X.trim();if($.startsWith("{"))return N0($,"{","}",0)===-1;if($.startsWith("["))return N0($,"[","]",0)===-1;return!OZ($)}function OZ(X){let $={paren:0,bracket:0,brace:0},Z=null,Y=0;for(let J=0;J<X.length;J++){let G=X[J];if((J>0?X[J-1]:"")==="\\"&&Z)continue;if((G==='"'||G==="'")&&!Z){Z=G;continue}if(G===Z&&Z!=="`"){Z=null;continue}if(G==="`"&&!Z){Z="`";continue}if(G==="`"&&Z==="`"&&Y===0){Z=null;continue}if(Z==="`"&&G==="$"&&X[J+1]==="{"){Y++,J++;continue}if(Y>0&&G==="{"){Y++;continue}if(Y>0&&G==="}"){Y--;continue}if(Z)continue;if(G==="(")$.paren++;else if(G===")")$.paren--;else if(G==="[")$.bracket++;else if(G==="]")$.bracket--;else if(G==="{")$.brace++;else if(G==="}")$.brace--}return $.paren===0&&$.bracket===0&&$.brace===0&&Z===null}function LZ(X){let $=X.indexOf("(");if($===-1)return X.indexOf("{");let Z=N0(X,"(",")",$);if(Z===-1)return-1;return X.indexOf("{",Z)}function qw(X){let $=LZ(X);if($===-1)return!0;return N0(X,"{","}",$)===-1}function KZ(X,$,Z){let Y=Z,J=$+1;while(J<X.length&&!OZ(Y)){let G=X[J];Y+=`
|
|
3758
3758
|
${G}`,J++}while(J<X.length){let G=X[J].trim();if(G.startsWith(".")||G.startsWith("?."))Y+=`
|
|
3759
|
-
${X[J]}`,J++;else break}return{value:Y,nextIndex:J}}function Kw(X,$,Z){let Y=Z,J=$+1;while(J<X.length){let G=LZ(Y);if(G!==-1){if(
|
|
3760
|
-
${Q}`,J++}return{functionCode:Y,nextIndex:J}}function UZ(X,$){let Z=$0(X,$)??$0(`(${X})`,$);if(Z!==void 0)return Z;if(!/\bprocess\b/.test(X))return;let Y={...$,process:Object.freeze({env:{...I5.env}})};try{return Function(...Object.keys(Y),`'use strict'; return (${X});`)(...Object.values(Y))}catch{try{return Function(...Object.keys(Y),`'use strict'; return ${X};`)(...Object.values(Y))}catch{return}}}async function Uw(X,$,Z){let Y=X.matchAll(/export\s+(const|let|var)\s+(\w+)\s*=\s*([\s\S]*?)(?=\s*(?:export\s+|$))/g);for(let G of Y){let[,,Q,q]=G;try{let K=q.trim().replace(/;$/,""),U=UZ(K,$);if(U!==void 0)$[Q]=U}catch(K){console.warn(`Failed to parse export ${Q} in fallback:`,K)}}let J=X.matchAll(/(?:^|\n)\s*(const|let|var)\s+(\w+)\s*=\s*([\s\S]*?)(?=\s*(?:(?:const|let|var|function|export)\s+|$))/g);for(let G of J){let[,,Q,q]=G;if(!(Q in $))try{let K=q.trim().replace(/;$/,""),U=UZ(K,$);if(U!==void 0)$[Q]=U}catch{}}}function FZ(X){let $=X.match(/<script\b[^>]*>([\s\S]*?)<\/script>/i),Z=$?$[1]:"",Y=$?X.replace(/<script\b[^>]*>[\s\S]*?<\/script>/i,""):X;return{scriptContent:Z,templateWithoutScript:Y}}function VZ(X){let $=X.trim();if(!$)return!1;return/(?:const|let|var|function)\s+\w+/.test($)}var J9,JZ,Zw,Jw;var k7=E(()=>{M7();F1();O0();J9=["module","exports","require","props","$props","defineProps","withDefaults","defineClientPayload","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","useMediaQuery","useScrollLock","usePreferredDark","usePreferredLight","usePreferredReducedMotion","usePreferredContrast","window","document","console","confirm","alert","fetch","params"],JZ=new Set(J9),Zw=new Set(["stx","@stacksjs/stx"]);Jw=/^(?:export\s+)?(?:const|let|var)\s+[A-Za-z_$][\w$]*(?:\s*,\s*[A-Za-z_$][\w$]*)*\s*;?$/});var Q9={};n(Q9,{renderSlot:()=>RZ,processSlots:()=>TZ,parseSlots:()=>AZ,parseSlotElement:()=>Bw,extractSlotContent:()=>Ow,applySlots:()=>Lw});function Ww(X,$){let Z=1,Y=$,J="<template",G="</template";while(Y<X.length&&Z>0){let Q=X.indexOf("<",Y);if(Q===-1)break;if(Y=Q,X.startsWith(J,Y)&&(Y+J.length>=X.length||/[\s>\/]/.test(X[Y+J.length]))){Z++,Y+=J.length;continue}if(X.startsWith(G,Y)){let q=X.indexOf(">",Y+G.length);if(q!==-1){if(Z--,Z===0)return q+1;Y=q+1;continue}}Y++}return Z===0?Y:-1}function zw(X,$){let Z=null;for(let Y=$;Y<X.length;Y++){let J=X[Y];if(Z){if(J==="\\"){Y++;continue}if(J===Z)Z=null;continue}if(J==='"'||J==="'"){Z=J;continue}if(J===">")return Y+1}return-1}function jw(X){let $=[],Z=[],Y=/^<template\s+(?:#([a-zA-Z][\w-]*)|v-slot:([a-zA-Z][\w-]*)|slot="([a-zA-Z][\w-]*)")(?:\s*=\s*"([^"]*)")?[^>]*>$/i,J=0;while(J<X.length){let G=X.indexOf("<",J);if(G===-1)break;if(X.startsWith("<!--",G)){let z=X.indexOf("-->",G+4);J=z===-1?X.length:z+3;continue}let Q=zw(X,G+1);if(Q===-1)break;let q=X.slice(G,Q),K=q.match(/^<\s*(\/?)\s*([a-zA-Z][\w-]*)/);if(!K){J=Q;continue}let U=K[1]==="/",W=K[2].toLowerCase();if(U){let z=Z.lastIndexOf(W);if(z!==-1)Z.splice(z);J=Q;continue}if(W==="template"&&Z.length===0){let z=q.match(Y);if(z){let B=Ww(X,Q);if(B!==-1){let j=z[1]||z[2]||z[3];$.push({start:G,end:B,slotName:j,content:X.slice(Q,B-11).trim(),propsBinding:z[4]||void 0}),J=B;continue}}}if(!/\/\s*>$/.test(q)&&!ww.has(W)){if(Z.push(W),W==="script"||W==="style"){let z=X.toLowerCase().indexOf(`</${W}>`,Q);if(z!==-1){J=z;continue}}}J=Q}return $}function AZ(X){let $={default:"",named:new Map},Z=X,Y=jw(X);for(let K of Y)$.named.set(K.slotName,{name:K.slotName,content:K.content,propsBinding:K.propsBinding});Y.sort((K,U)=>U.start-K.start);for(let K of Y)Z=Z.slice(0,K.start)+Z.slice(K.end);let J=[],G=/<([a-zA-Z][a-zA-Z0-9-]*)\b([^>]*?)\bslot="([^"]+)"([^>]*)>([\s\S]*?)<\/\1>/gi,Q;while((Q=G.exec(Z))!==null){let[K,U,W,w,z,B]=Q,j=W.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),_=z.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),H=(j+_).trim(),L=`<${U}${H?" "+H:""}>${B}</${U}>`;J.push({start:Q.index,end:Q.index+K.length,slotName:w,element:L})}let q=/<([a-zA-Z][a-zA-Z0-9-]*)\b([^>]*?)\bslot="([^"]+)"([^>]*?)\/>/gi;while((Q=q.exec(Z))!==null){let[K,U,W,w,z]=Q,B=W.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),j=z.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),_=(B+j).trim(),H=`<${U}${_?" "+_:""} />`;J.push({start:Q.index,end:Q.index+K.length,slotName:w,element:H})}J.sort((K,U)=>U.start-K.start);for(let K of J){let U=$.named.get(K.slotName);if(U)U.content+=K.element;else $.named.set(K.slotName,{name:K.slotName,content:K.element});Z=Z.slice(0,K.start)+Z.slice(K.end)}return $.default=Z.trim(),$}function Bw(X){let $=X.match(/name\s*=\s*["']([^"']+)["']/),Z=$?$[1]:"",Y={},J=/:([a-zA-Z][\w-]*)\s*=\s*["']([^"']+)["']/g,G;while((G=J.exec(X))!==null)Y[G[1]]=G[2];let Q=X.match(/<slot[^>]*>([\s\S]*?)<\/slot>/i),q=Q?Q[1].trim():"";return{name:Z,props:Y,defaultContent:q}}async function RZ(X,$,Z,Y){if(!X)return Z;let J=X.content;if(X.propsBinding&&Object.keys($).length>0){let G=X.propsBinding.trim(),Q={...Y};if(G.startsWith("{")&&G.endsWith("}")){let q=G.slice(1,-1).split(",").map((K)=>K.trim()).filter(Boolean);for(let K of q){let[U,W]=K.split(":").map((z)=>z.trim()),w=W||U;if($[U]!==void 0)Q[w]=$[U]}}else Q[G]=$;J=_w(J,Q)}return J}function _w(X,$){return X.replace(/\{\{\s*([^}]+)\s*\}\}/g,(Z,Y)=>{try{let J=Y.trim(),G=NZ(J,$);return r0(String(G??""))}catch{return`{{ ${Y} }}`}})}function NZ(X,$){if(/^[a-zA-Z_$][\w$]*(\.[a-zA-Z_$][\w$]*)*$/.test(X)){let Y=X.split("."),J=$;for(let G of Y)if(J&&typeof J==="object"&&G in J)J=J[G];else return;return J}let Z=X.match(/^([a-zA-Z_$][\w$]*)\s*([+\-*/])\s*(\d+)$/);if(Z){let[,Y,J,G]=Z,Q=$[Y],q=parseInt(G,10);if(typeof Q==="number")switch(J){case"+":return Q+q;case"-":return Q-q;case"*":return Q*q;case"/":return Q/q}}try{if(!G0(X))return;return Q0(X,Object.keys($))(...Object.values($))}catch{return}}async function TZ(X,$,Z){let Y=X;Y=await Hw(Y,/<slot\s+name\s*=\s*["']([^"']+)["']([^>]*?)(?:\/>|>([\s\S]*?)<\/slot>)/gi,async(Q,q,K,U)=>{let W=$.named.get(q),w=U?.trim()||"",z=K||"",B={},j=/:([a-zA-Z_$][\w$-]*)\s*=\s*["']([^"']+)["']/g,_;while((_=j.exec(z))!==null){let H=_[1],L=_[2];B[H]=NZ(L,Z)}return await RZ(W,B,w,Z)});let G=/<slot\s*(?:\/>|>([\s\S]*?)<\/slot>)/gi;return Y=Y.replace(G,(Q,q)=>{if(Q.includes("name="))return Q;let K=q?.trim()||"";return $.default||K}),Y}async function Hw(X,$,Z){let Y=[],J=[];X.replace($,(q,...K)=>{let U=K[K.length-2];return J.push({match:q,index:U}),Y.push(Z(q,...K.slice(0,-2))),q});let G=await Promise.all(Y),Q=X;for(let q=J.length-1;q>=0;q--){let{match:K,index:U}=J[q];Q=Q.slice(0,U)+G[q]+Q.slice(U+K.length)}return Q}function Ow(X){let $=AZ(X);return{defaultSlot:$.default,namedSlots:$.named}}async function Lw(X,$,Z,Y){return await TZ(X,{default:$,named:Z},Y)}var ww;var q9=E(()=>{Z1();O0();ww=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"])});function k1(X,$){let Z=Fw(X,$);return Z.ok?{expression:Z.expression,endPos:Z.endPos}:null}function Fw(X,$){let Z=$;while(Z<X.length&&/\s/.test(X[Z]))Z++;if(X[Z]!=="(")return{ok:!1,reason:"missing-open-paren",pos:Z};let Y=T0(X,"(",")",Z);if(Y===-1)return{ok:!1,reason:"unclosed-paren",pos:Z};return{ok:!0,expression:X.slice(Z+1,Y),endPos:Y+1}}function Vw(X,$){let Z=X.lastIndexOf("<",$);if(Z===-1)return!1;return Z>X.lastIndexOf(">",$)}function n1(X,$,Z,Y){let J=1,G=Y,Q=new RegExp(`@${$}\\s*\\(`,"g"),q=new RegExp(`@${Z}(?![a-z])`,"g");while(G<X.length&&J>0){Q.lastIndex=G,q.lastIndex=G;let K=Q.exec(X),U=q.exec(X),W=K?K.index:1/0,w=U?U.index:1/0;if(W<w)J++,G=W+K[0].length;else if(w<1/0){if(J--,J===0)return w;G=w+U[0].length}else break}return-1}function MZ(X,$){let Z=X.slice($).match(/^@if\s*/);if(!Z)return null;let Y=$+Z[0].length,J=k1(X,Y);if(!J)return null;let G=J.endPos,Q=n1(X,"if","endif",G);if(Q===-1)return null;let q=X.slice(G,Q),K=[],U=0,W="if",w=J.expression,z=0,B=0;while(U<q.length){let j=q.indexOf("@",U);if(j===-1)break;U=j;let _=q.substring(j);if(Vw(q,j)){U++;continue}if(/^@if\s*\(/.test(_)){B++,U++;continue}if(/^@endif(?![a-z])/.test(_)){B--,U+=6;continue}if(B===0){let H=_.match(/^@elseif\s*/);if(H){K.push({type:W,condition:w,content:q.substring(z,U),start:G+z,end:G+U});let L=U+H[0].length,O=k1(q,L);if(!O){U++;continue}W="elseif",w=O.expression,U=O.endPos,z=U;continue}else if(/^@else(?![a-z])/.test(_)){K.push({type:W,condition:w,content:q.substring(z,U),start:G+z,end:G+U}),W="else",w=void 0,U+=5,z=U;continue}}U++}return K.push({type:W,condition:w,content:q.slice(z),start:G+z,end:G+q.length}),{fullMatch:X.slice($,Q+6),branches:K,start:$,end:Q+6}}function I7(X){let $=[],Z=/@if\s*\(/g,Y=Z.exec(X);while(Y!==null){if($.some((Q)=>Y.index>Q.start&&Y.index<Q.end)){Y=Z.exec(X);continue}let G=MZ(X,Y.index);if(G)$.push(G),Z.lastIndex=G.end;Y=Z.exec(X)}return $}function EX(X,$,Z){let Y=[],J=new RegExp(`@${$}\\s*\\(`,"g"),G=J.exec(X);while(G!==null){if(Y.some((_)=>G.index>_.start&&G.index<_.end)){G=J.exec(X);continue}let q=G.index,K=q+G[0].length-1,U=T0(X,"(",")",K);if(U===-1){G=J.exec(X);continue}let W=X.slice(K+1,U),w=U+1,z=n1(X,$,Z,w);if(z===-1){G=J.exec(X);continue}let B=X.slice(w,z),j=z+`@${Z}`.length;Y.push({fullMatch:X.slice(q,j),name:$,params:W,content:B,start:q,end:j}),J.lastIndex=j,G=J.exec(X)}return Y}function K9(X,$){let Z=X.slice($).match(/^@switch\s*/);if(!Z)return null;let Y=$+Z[0].length,J=k1(X,Y);if(!J)return null;let G=J.endPos,Q=n1(X,"switch","endswitch",G);if(Q===-1)return null;let q=X.slice(G,Q),K=[],U=0,W=null,w=0;while(U<q.length){let z=q.slice(U),B=z.match(/^@switch\s*\(/),j=z.match(/^@endswitch(?![a-z])/);if(B){if(w++,W)W.content+=B[0];U+=B[0].length;continue}if(j){if(w--,W)W.content+=j[0];U+=j[0].length;continue}if(w>0){if(W)W.content+=q[U];U++;continue}let _=z.match(/^@case\s*/),H=z.match(/^@default(?![a-z])/),L=z.match(/^@break(?![a-z])/);if(_&&z.startsWith("@case")){if(W)K.push(W);let O=U+_[0].length,F=k1(q,O);if(!F){U++;continue}W={type:"case",value:F.expression,content:""},U=F.endPos}else if(H&&z.startsWith("@default")){if(W)K.push(W);W={type:"default",content:""},U+=H[0].length}else if(L&&z.startsWith("@break"))U+=L[0].length;else{if(W)W.content+=q[U];U++}}if(W)K.push(W);return{fullMatch:X.slice($,Q+10),expression:J.expression,cases:K,start:$,end:Q+10}}var kZ=()=>{};var IZ=()=>{};var DX=E(()=>{kZ();IZ()});function EZ(X,$={}){return new O5(X,$).routes}var DZ=E(()=>{g1();g1()});async function bZ(X){let $=X;if(!$)try{$=(await I1())?.pagesDir||"pages"}catch{$="pages"}let Z=$,Y=yZ.get(Z);if(Y)return Y;let J=[];try{J=EZ(".",{pagesDir:Z}).map((G)=>G.regex.source).filter(Boolean)}catch{J=[]}return yZ.set(Z,J),J}var yZ;var SZ=E(()=>{DZ();V1();yZ=new Map});function Tw(X){return X.replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}function CZ(X){return Tw(JSON.stringify(X))}function E7(X){let $=0,Z,Y=U9.map(()=>{return});while($<X.length){if(Z===void 0||Z!==null&&Z.index<$)PZ.lastIndex=$,Z=PZ.exec(X);if(!Z)return null;let J=Z.index,G=-1,Q=null;for(let K=0;K<U9.length;K++){let U=U9[K],W=Y[K];if(W===void 0||W!==null&&W.index<$)U.open.lastIndex=$,W=U.open.exec(X),Y[K]=W;if(!W)continue;if(W.index<J&&(G===-1||W.index<G))G=W.index,Q=U.close}if(G===-1||!Q)return{index:J,tag:Z[0],attrs:Z[1]??""};Q.lastIndex=G;let q=Q.exec(X);if(!q)return null;$=q.index+q[0].length}return null}function yX(X,$){let Z=E7(X);if(!Z)return X;return X.slice(0,Z.index)+$(Z.tag,Z.attrs)+X.slice(Z.index+Z.tag.length)}var U9,PZ;var W9=E(()=>{U9=[{open:/<!--/g,close:/-->/g},{open:/<script\b/gi,close:/<\/script\s*>/gi},{open:/<style\b/gi,close:/<\/style\s*>/gi}],PZ=/<body\b([^>]*)>/gi});function z9(){return r1}function j9(X){let $=r1;return vZ.push(X),r1=X,$}function B9(X){vZ.pop(),r1=X}function _9(){return bX>0}function H9(X){w9.add(X)}function xZ(X){bX++;try{X()}finally{if(bX--,bX===0){let $=[...w9];w9.clear();for(let Z of $)Z()}}}function fZ(X){let $=r1;r1=null;try{return X()}finally{r1=$}}var r1=null,vZ,bX=0,w9;var gZ=E(()=>{vZ=[],w9=new Set});function E1(X){let $=X,Z=new Set,Y=new Set,J=()=>{let G=z9();if(G)Y.add(G);return $};return J.set=(G)=>{if(!Object.is(G,$)){let Q=$;if($=G,Z.forEach((q)=>q($,Q)),_9())Y.forEach((q)=>H9(q));else Y.forEach((q)=>q())}},J.update=(G)=>{J.set(G($))},J.subscribe=(G)=>{return Z.add(G),()=>Z.delete(G)},Object.defineProperty(J,"_isSignal",{value:!0,writable:!1}),Object.defineProperty(J,"value",{get:()=>J(),set:(G)=>J.set(G),configurable:!0}),J}function CX(X){let $,Z=!0,Y=new Set,J=()=>{if(!Z)if(Z=!0,_9())Y.forEach((Q)=>H9(Q));else Y.forEach((Q)=>Q())},G=()=>{let Q=z9();if(Q)Y.add(Q);if(Z){let q=j9(J);try{$=X()}finally{B9(q)}Z=!1}return $};return Object.defineProperty(G,"_isDerived",{value:!0,writable:!1}),Object.defineProperty(G,"value",{get:()=>G(),configurable:!0}),G}function PX(X,$={}){let Z,Y=!1,J=()=>{if(Y)return;if(Z)Z(),Z=void 0;let G=j9(J);try{let Q=X();Z=typeof Q==="function"?Q:void 0}finally{B9(G)}};if($.immediate!==!1)J();return()=>{if(Y=!0,Z)Z()}}function L9(X){xZ(X)}function F9(X){O9.push(X)}function V9(X){SX.push(X)}function Mw(){hZ(O9,"onMount",SX)}function kw(){hZ(SX,"onDestroy")}function hZ(X,$,Z){let Y=X.splice(0,X.length);for(let J of Y)try{let G=J();if(Z&&typeof G==="function")Z.push(G)}catch(G){console.error(`[stx] ${$} callback threw:`,G)}}function Iw(){return{mount:O9.length,destroy:SX.length}}function vX(X){return typeof X==="function"&&X._isSignal===!0}function xX(X){return typeof X==="function"&&X._isDerived===!0}function A9(X){if(vX(X)||xX(X))return X();return X}function fX(X){return fZ(X)}function Ew(X,$){let Z=typeof X==="function"?X:()=>X,Y=E1([]),J=CX(()=>Y().reduce((q,K)=>$(q,K.action),Z())),G=!1;return PX(()=>{if(Z(),!G){G=!0;return}if(fX(()=>Y().length))Y.set([])}),[J,(q,K)=>{let U={action:q};Y.set([...Y(),U]);let W=()=>{let w=Y().filter((z)=>z!==U);if(w.length!==Y().length)Y.set(w)};if(K&&typeof K.then==="function")Promise.resolve(K).then(W,W);return W}]}var O9,SX;var gX=E(()=>{gZ();O9=[],SX=[]});var dZ={};n(dZ,{useOptimistic:()=>Ew,untrack:()=>A9,state:()=>E1,runMountCallbacks:()=>Mw,runDestroyCallbacks:()=>kw,pendingLifecycleCounts:()=>Iw,peek:()=>fX,onMount:()=>F9,onDestroy:()=>V9,isSignal:()=>vX,isDerived:()=>xX,generateSignalsRuntimeDev:()=>R9,generateSignalsRuntime:()=>uZ,effect:()=>PX,derived:()=>CX,default:()=>yw,batch:()=>L9});function uZ(){let X=Dw(R9());try{let Z=new Bun.Transpiler({loader:"js",minifyWhitespace:!0}).transformSync(X);return Z=Z.replace(/\}(var |let |const |function )/g,"};$1"),Z}catch{return X}}function Dw(X){let $=[],Z=0,Y="console.log(";while(Z<X.length){let J=X.indexOf(Y,Z);if(J===-1){$.push(X.slice(Z));break}$.push(X.slice(Z,J));let G=1,Q=J+Y.length;while(Q<X.length&&G>0){let q=X[Q];if(q==='"'||q==="'"||q==="`"){let K=q;Q++;while(Q<X.length&&X[Q]!==K){if(X[Q]==="\\")Q++;Q++}Q++;continue}if(q==="(")G++;else if(q===")")G--;Q++}$.push("0"),Z=Q}return $.join("")}function R9(){return`
|
|
3759
|
+
${X[J]}`,J++;else break}return{value:Y,nextIndex:J}}function Kw(X,$,Z){let Y=Z,J=$+1;while(J<X.length){let G=LZ(Y);if(G!==-1){if(N0(Y,"{","}",G)!==-1)break}let Q=X[J];Y+=`
|
|
3760
|
+
${Q}`,J++}return{functionCode:Y,nextIndex:J}}function UZ(X,$){let Z=$0(X,$)??$0(`(${X})`,$);if(Z!==void 0)return Z;if(!/\bprocess\b/.test(X))return;let Y={...$,process:Object.freeze({env:{...I5.env}})};try{return Function(...Object.keys(Y),`'use strict'; return (${X});`)(...Object.values(Y))}catch{try{return Function(...Object.keys(Y),`'use strict'; return ${X};`)(...Object.values(Y))}catch{return}}}async function Uw(X,$,Z){let Y=X.matchAll(/export\s+(const|let|var)\s+(\w+)\s*=\s*([\s\S]*?)(?=\s*(?:export\s+|$))/g);for(let G of Y){let[,,Q,q]=G;try{let K=q.trim().replace(/;$/,""),U=UZ(K,$);if(U!==void 0)$[Q]=U}catch(K){console.warn(`Failed to parse export ${Q} in fallback:`,K)}}let J=X.matchAll(/(?:^|\n)\s*(const|let|var)\s+(\w+)\s*=\s*([\s\S]*?)(?=\s*(?:(?:const|let|var|function|export)\s+|$))/g);for(let G of J){let[,,Q,q]=G;if(!(Q in $))try{let K=q.trim().replace(/;$/,""),U=UZ(K,$);if(U!==void 0)$[Q]=U}catch{}}}function FZ(X){let $=X.match(/<script\b[^>]*>([\s\S]*?)<\/script>/i),Z=$?$[1]:"",Y=$?X.replace(/<script\b[^>]*>[\s\S]*?<\/script>/i,""):X;return{scriptContent:Z,templateWithoutScript:Y}}function VZ(X){let $=X.trim();if(!$)return!1;return/(?:const|let|var|function)\s+\w+/.test($)}var J9,JZ,Zw,Jw;var k7=E(()=>{M7();F1();O0();J9=["module","exports","require","props","$props","defineProps","withDefaults","defineClientPayload","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","useMediaQuery","useScrollLock","usePreferredDark","usePreferredLight","usePreferredReducedMotion","usePreferredContrast","window","document","console","confirm","alert","fetch","params"],JZ=new Set(J9),Zw=new Set(["stx","@stacksjs/stx"]);Jw=/^(?:export\s+)?(?:const|let|var)\s+[A-Za-z_$][\w$]*(?:\s*,\s*[A-Za-z_$][\w$]*)*\s*;?$/});var Q9={};n(Q9,{renderSlot:()=>RZ,processSlots:()=>NZ,parseSlots:()=>AZ,parseSlotElement:()=>Bw,extractSlotContent:()=>Ow,applySlots:()=>Lw});function Ww(X,$){let Z=1,Y=$,J="<template",G="</template";while(Y<X.length&&Z>0){let Q=X.indexOf("<",Y);if(Q===-1)break;if(Y=Q,X.startsWith(J,Y)&&(Y+J.length>=X.length||/[\s>\/]/.test(X[Y+J.length]))){Z++,Y+=J.length;continue}if(X.startsWith(G,Y)){let q=X.indexOf(">",Y+G.length);if(q!==-1){if(Z--,Z===0)return q+1;Y=q+1;continue}}Y++}return Z===0?Y:-1}function zw(X,$){let Z=null;for(let Y=$;Y<X.length;Y++){let J=X[Y];if(Z){if(J==="\\"){Y++;continue}if(J===Z)Z=null;continue}if(J==='"'||J==="'"){Z=J;continue}if(J===">")return Y+1}return-1}function jw(X){let $=[],Z=[],Y=/^<template\s+(?:#([a-zA-Z][\w-]*)|v-slot:([a-zA-Z][\w-]*)|slot="([a-zA-Z][\w-]*)")(?:\s*=\s*"([^"]*)")?[^>]*>$/i,J=0;while(J<X.length){let G=X.indexOf("<",J);if(G===-1)break;if(X.startsWith("<!--",G)){let z=X.indexOf("-->",G+4);J=z===-1?X.length:z+3;continue}let Q=zw(X,G+1);if(Q===-1)break;let q=X.slice(G,Q),K=q.match(/^<\s*(\/?)\s*([a-zA-Z][\w-]*)/);if(!K){J=Q;continue}let U=K[1]==="/",W=K[2].toLowerCase();if(U){let z=Z.lastIndexOf(W);if(z!==-1)Z.splice(z);J=Q;continue}if(W==="template"&&Z.length===0){let z=q.match(Y);if(z){let B=Ww(X,Q);if(B!==-1){let j=z[1]||z[2]||z[3];$.push({start:G,end:B,slotName:j,content:X.slice(Q,B-11).trim(),propsBinding:z[4]||void 0}),J=B;continue}}}if(!/\/\s*>$/.test(q)&&!ww.has(W)){if(Z.push(W),W==="script"||W==="style"){let z=X.toLowerCase().indexOf(`</${W}>`,Q);if(z!==-1){J=z;continue}}}J=Q}return $}function AZ(X){let $={default:"",named:new Map},Z=X,Y=jw(X);for(let K of Y)$.named.set(K.slotName,{name:K.slotName,content:K.content,propsBinding:K.propsBinding});Y.sort((K,U)=>U.start-K.start);for(let K of Y)Z=Z.slice(0,K.start)+Z.slice(K.end);let J=[],G=/<([a-zA-Z][a-zA-Z0-9-]*)\b([^>]*?)\bslot="([^"]+)"([^>]*)>([\s\S]*?)<\/\1>/gi,Q;while((Q=G.exec(Z))!==null){let[K,U,W,w,z,B]=Q,j=W.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),_=z.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),H=(j+_).trim(),L=`<${U}${H?" "+H:""}>${B}</${U}>`;J.push({start:Q.index,end:Q.index+K.length,slotName:w,element:L})}let q=/<([a-zA-Z][a-zA-Z0-9-]*)\b([^>]*?)\bslot="([^"]+)"([^>]*?)\/>/gi;while((Q=q.exec(Z))!==null){let[K,U,W,w,z]=Q,B=W.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),j=z.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),_=(B+j).trim(),H=`<${U}${_?" "+_:""} />`;J.push({start:Q.index,end:Q.index+K.length,slotName:w,element:H})}J.sort((K,U)=>U.start-K.start);for(let K of J){let U=$.named.get(K.slotName);if(U)U.content+=K.element;else $.named.set(K.slotName,{name:K.slotName,content:K.element});Z=Z.slice(0,K.start)+Z.slice(K.end)}return $.default=Z.trim(),$}function Bw(X){let $=X.match(/name\s*=\s*["']([^"']+)["']/),Z=$?$[1]:"",Y={},J=/:([a-zA-Z][\w-]*)\s*=\s*["']([^"']+)["']/g,G;while((G=J.exec(X))!==null)Y[G[1]]=G[2];let Q=X.match(/<slot[^>]*>([\s\S]*?)<\/slot>/i),q=Q?Q[1].trim():"";return{name:Z,props:Y,defaultContent:q}}async function RZ(X,$,Z,Y){if(!X)return Z;let J=X.content;if(X.propsBinding&&Object.keys($).length>0){let G=X.propsBinding.trim(),Q={...Y};if(G.startsWith("{")&&G.endsWith("}")){let q=G.slice(1,-1).split(",").map((K)=>K.trim()).filter(Boolean);for(let K of q){let[U,W]=K.split(":").map((z)=>z.trim()),w=W||U;if($[U]!==void 0)Q[w]=$[U]}}else Q[G]=$;J=_w(J,Q)}return J}function _w(X,$){return X.replace(/\{\{\s*([^}]+)\s*\}\}/g,(Z,Y)=>{try{let J=Y.trim(),G=TZ(J,$);return o0(String(G??""))}catch{return`{{ ${Y} }}`}})}function TZ(X,$){if(/^[a-zA-Z_$][\w$]*(\.[a-zA-Z_$][\w$]*)*$/.test(X)){let Y=X.split("."),J=$;for(let G of Y)if(J&&typeof J==="object"&&G in J)J=J[G];else return;return J}let Z=X.match(/^([a-zA-Z_$][\w$]*)\s*([+\-*/])\s*(\d+)$/);if(Z){let[,Y,J,G]=Z,Q=$[Y],q=parseInt(G,10);if(typeof Q==="number")switch(J){case"+":return Q+q;case"-":return Q-q;case"*":return Q*q;case"/":return Q/q}}try{if(!G0(X))return;return Q0(X,Object.keys($))(...Object.values($))}catch{return}}async function NZ(X,$,Z){let Y=X;Y=await Hw(Y,/<slot\s+name\s*=\s*["']([^"']+)["']([^>]*?)(?:\/>|>([\s\S]*?)<\/slot>)/gi,async(Q,q,K,U)=>{let W=$.named.get(q),w=U?.trim()||"",z=K||"",B={},j=/:([a-zA-Z_$][\w$-]*)\s*=\s*["']([^"']+)["']/g,_;while((_=j.exec(z))!==null){let H=_[1],L=_[2];B[H]=TZ(L,Z)}return await RZ(W,B,w,Z)});let G=/<slot\s*(?:\/>|>([\s\S]*?)<\/slot>)/gi;return Y=Y.replace(G,(Q,q)=>{if(Q.includes("name="))return Q;let K=q?.trim()||"";return $.default||K}),Y}async function Hw(X,$,Z){let Y=[],J=[];X.replace($,(q,...K)=>{let U=K[K.length-2];return J.push({match:q,index:U}),Y.push(Z(q,...K.slice(0,-2))),q});let G=await Promise.all(Y),Q=X;for(let q=J.length-1;q>=0;q--){let{match:K,index:U}=J[q];Q=Q.slice(0,U)+G[q]+Q.slice(U+K.length)}return Q}function Ow(X){let $=AZ(X);return{defaultSlot:$.default,namedSlots:$.named}}async function Lw(X,$,Z,Y){return await NZ(X,{default:$,named:Z},Y)}var ww;var q9=E(()=>{Z1();O0();ww=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"])});function k1(X,$){let Z=Fw(X,$);return Z.ok?{expression:Z.expression,endPos:Z.endPos}:null}function Fw(X,$){let Z=$;while(Z<X.length&&/\s/.test(X[Z]))Z++;if(X[Z]!=="(")return{ok:!1,reason:"missing-open-paren",pos:Z};let Y=N0(X,"(",")",Z);if(Y===-1)return{ok:!1,reason:"unclosed-paren",pos:Z};return{ok:!0,expression:X.slice(Z+1,Y),endPos:Y+1}}function Vw(X,$){let Z=X.lastIndexOf("<",$);if(Z===-1)return!1;return Z>X.lastIndexOf(">",$)}function n1(X,$,Z,Y){let J=1,G=Y,Q=new RegExp(`@${$}\\s*\\(`,"g"),q=new RegExp(`@${Z}(?![a-z])`,"g");while(G<X.length&&J>0){Q.lastIndex=G,q.lastIndex=G;let K=Q.exec(X),U=q.exec(X),W=K?K.index:1/0,w=U?U.index:1/0;if(W<w)J++,G=W+K[0].length;else if(w<1/0){if(J--,J===0)return w;G=w+U[0].length}else break}return-1}function MZ(X,$){let Z=X.slice($).match(/^@if\s*/);if(!Z)return null;let Y=$+Z[0].length,J=k1(X,Y);if(!J)return null;let G=J.endPos,Q=n1(X,"if","endif",G);if(Q===-1)return null;let q=X.slice(G,Q),K=[],U=0,W="if",w=J.expression,z=0,B=0;while(U<q.length){let j=q.indexOf("@",U);if(j===-1)break;U=j;let _=q.substring(j);if(Vw(q,j)){U++;continue}if(/^@if\s*\(/.test(_)){B++,U++;continue}if(/^@endif(?![a-z])/.test(_)){B--,U+=6;continue}if(B===0){let H=_.match(/^@elseif\s*/);if(H){K.push({type:W,condition:w,content:q.substring(z,U),start:G+z,end:G+U});let L=U+H[0].length,O=k1(q,L);if(!O){U++;continue}W="elseif",w=O.expression,U=O.endPos,z=U;continue}else if(/^@else(?![a-z])/.test(_)){K.push({type:W,condition:w,content:q.substring(z,U),start:G+z,end:G+U}),W="else",w=void 0,U+=5,z=U;continue}}U++}return K.push({type:W,condition:w,content:q.slice(z),start:G+z,end:G+q.length}),{fullMatch:X.slice($,Q+6),branches:K,start:$,end:Q+6}}function I7(X){let $=[],Z=/@if\s*\(/g,Y=Z.exec(X);while(Y!==null){if($.some((Q)=>Y.index>Q.start&&Y.index<Q.end)){Y=Z.exec(X);continue}let G=MZ(X,Y.index);if(G)$.push(G),Z.lastIndex=G.end;Y=Z.exec(X)}return $}function EX(X,$,Z){let Y=[],J=new RegExp(`@${$}\\s*\\(`,"g"),G=J.exec(X);while(G!==null){if(Y.some((_)=>G.index>_.start&&G.index<_.end)){G=J.exec(X);continue}let q=G.index,K=q+G[0].length-1,U=N0(X,"(",")",K);if(U===-1){G=J.exec(X);continue}let W=X.slice(K+1,U),w=U+1,z=n1(X,$,Z,w);if(z===-1){G=J.exec(X);continue}let B=X.slice(w,z),j=z+`@${Z}`.length;Y.push({fullMatch:X.slice(q,j),name:$,params:W,content:B,start:q,end:j}),J.lastIndex=j,G=J.exec(X)}return Y}function K9(X,$){let Z=X.slice($).match(/^@switch\s*/);if(!Z)return null;let Y=$+Z[0].length,J=k1(X,Y);if(!J)return null;let G=J.endPos,Q=n1(X,"switch","endswitch",G);if(Q===-1)return null;let q=X.slice(G,Q),K=[],U=0,W=null,w=0;while(U<q.length){let z=q.slice(U),B=z.match(/^@switch\s*\(/),j=z.match(/^@endswitch(?![a-z])/);if(B){if(w++,W)W.content+=B[0];U+=B[0].length;continue}if(j){if(w--,W)W.content+=j[0];U+=j[0].length;continue}if(w>0){if(W)W.content+=q[U];U++;continue}let _=z.match(/^@case\s*/),H=z.match(/^@default(?![a-z])/),L=z.match(/^@break(?![a-z])/);if(_&&z.startsWith("@case")){if(W)K.push(W);let O=U+_[0].length,F=k1(q,O);if(!F){U++;continue}W={type:"case",value:F.expression,content:""},U=F.endPos}else if(H&&z.startsWith("@default")){if(W)K.push(W);W={type:"default",content:""},U+=H[0].length}else if(L&&z.startsWith("@break"))U+=L[0].length;else{if(W)W.content+=q[U];U++}}if(W)K.push(W);return{fullMatch:X.slice($,Q+10),expression:J.expression,cases:K,start:$,end:Q+10}}var kZ=()=>{};var IZ=()=>{};var DX=E(()=>{kZ();IZ()});function EZ(X,$={}){return new O5(X,$).routes}var DZ=E(()=>{g1();g1()});async function bZ(X){let $=X;if(!$)try{$=(await I1())?.pagesDir||"pages"}catch{$="pages"}let Z=$,Y=yZ.get(Z);if(Y)return Y;let J=[];try{J=EZ(".",{pagesDir:Z}).map((G)=>G.regex.source).filter(Boolean)}catch{J=[]}return yZ.set(Z,J),J}var yZ;var SZ=E(()=>{DZ();V1();yZ=new Map});function Nw(X){return X.replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}function CZ(X){return Nw(JSON.stringify(X))}function E7(X){let $=0,Z,Y=U9.map(()=>{return});while($<X.length){if(Z===void 0||Z!==null&&Z.index<$)PZ.lastIndex=$,Z=PZ.exec(X);if(!Z)return null;let J=Z.index,G=-1,Q=null;for(let K=0;K<U9.length;K++){let U=U9[K],W=Y[K];if(W===void 0||W!==null&&W.index<$)U.open.lastIndex=$,W=U.open.exec(X),Y[K]=W;if(!W)continue;if(W.index<J&&(G===-1||W.index<G))G=W.index,Q=U.close}if(G===-1||!Q)return{index:J,tag:Z[0],attrs:Z[1]??""};Q.lastIndex=G;let q=Q.exec(X);if(!q)return null;$=q.index+q[0].length}return null}function yX(X,$){let Z=E7(X);if(!Z)return X;return X.slice(0,Z.index)+$(Z.tag,Z.attrs)+X.slice(Z.index+Z.tag.length)}var U9,PZ;var W9=E(()=>{U9=[{open:/<!--/g,close:/-->/g},{open:/<script\b/gi,close:/<\/script\s*>/gi},{open:/<style\b/gi,close:/<\/style\s*>/gi}],PZ=/<body\b([^>]*)>/gi});function z9(){return r1}function j9(X){let $=r1;return vZ.push(X),r1=X,$}function B9(X){vZ.pop(),r1=X}function _9(){return bX>0}function H9(X){w9.add(X)}function xZ(X){bX++;try{X()}finally{if(bX--,bX===0){let $=[...w9];w9.clear();for(let Z of $)Z()}}}function fZ(X){let $=r1;r1=null;try{return X()}finally{r1=$}}var r1=null,vZ,bX=0,w9;var gZ=E(()=>{vZ=[],w9=new Set});function E1(X){let $=X,Z=new Set,Y=new Set,J=()=>{let G=z9();if(G)Y.add(G);return $};return J.set=(G)=>{if(!Object.is(G,$)){let Q=$;if($=G,Z.forEach((q)=>q($,Q)),_9())Y.forEach((q)=>H9(q));else Y.forEach((q)=>q())}},J.update=(G)=>{J.set(G($))},J.subscribe=(G)=>{return Z.add(G),()=>Z.delete(G)},Object.defineProperty(J,"_isSignal",{value:!0,writable:!1}),Object.defineProperty(J,"value",{get:()=>J(),set:(G)=>J.set(G),configurable:!0}),J}function CX(X){let $,Z=!0,Y=new Set,J=()=>{if(!Z)if(Z=!0,_9())Y.forEach((Q)=>H9(Q));else Y.forEach((Q)=>Q())},G=()=>{let Q=z9();if(Q)Y.add(Q);if(Z){let q=j9(J);try{$=X()}finally{B9(q)}Z=!1}return $};return Object.defineProperty(G,"_isDerived",{value:!0,writable:!1}),Object.defineProperty(G,"value",{get:()=>G(),configurable:!0}),G}function PX(X,$={}){let Z,Y=!1,J=()=>{if(Y)return;if(Z)Z(),Z=void 0;let G=j9(J);try{let Q=X();Z=typeof Q==="function"?Q:void 0}finally{B9(G)}};if($.immediate!==!1)J();return()=>{if(Y=!0,Z)Z()}}function L9(X){xZ(X)}function F9(X){O9.push(X)}function V9(X){SX.push(X)}function Mw(){hZ(O9,"onMount",SX)}function kw(){hZ(SX,"onDestroy")}function hZ(X,$,Z){let Y=X.splice(0,X.length);for(let J of Y)try{let G=J();if(Z&&typeof G==="function")Z.push(G)}catch(G){console.error(`[stx] ${$} callback threw:`,G)}}function Iw(){return{mount:O9.length,destroy:SX.length}}function vX(X){return typeof X==="function"&&X._isSignal===!0}function xX(X){return typeof X==="function"&&X._isDerived===!0}function A9(X){if(vX(X)||xX(X))return X();return X}function fX(X){return fZ(X)}function Ew(X,$){let Z=typeof X==="function"?X:()=>X,Y=E1([]),J=CX(()=>Y().reduce((q,K)=>$(q,K.action),Z())),G=!1;return PX(()=>{if(Z(),!G){G=!0;return}if(fX(()=>Y().length))Y.set([])}),[J,(q,K)=>{let U={action:q};Y.set([...Y(),U]);let W=()=>{let w=Y().filter((z)=>z!==U);if(w.length!==Y().length)Y.set(w)};if(K&&typeof K.then==="function")Promise.resolve(K).then(W,W);return W}]}var O9,SX;var gX=E(()=>{gZ();O9=[],SX=[]});var dZ={};n(dZ,{useOptimistic:()=>Ew,untrack:()=>A9,state:()=>E1,runMountCallbacks:()=>Mw,runDestroyCallbacks:()=>kw,pendingLifecycleCounts:()=>Iw,peek:()=>fX,onMount:()=>F9,onDestroy:()=>V9,isSignal:()=>vX,isDerived:()=>xX,generateSignalsRuntimeDev:()=>R9,generateSignalsRuntime:()=>uZ,effect:()=>PX,derived:()=>CX,default:()=>yw,batch:()=>L9});function uZ(){let X=Dw(R9());try{let Z=new Bun.Transpiler({loader:"js",minifyWhitespace:!0}).transformSync(X);return Z=Z.replace(/\}(var |let |const |function )/g,"};$1"),Z}catch{return X}}function Dw(X){let $=[],Z=0,Y="console.log(";while(Z<X.length){let J=X.indexOf(Y,Z);if(J===-1){$.push(X.slice(Z));break}$.push(X.slice(Z,J));let G=1,Q=J+Y.length;while(Q<X.length&&G>0){let q=X[Q];if(q==='"'||q==="'"||q==="`"){let K=q;Q++;while(Q<X.length&&X[Q]!==K){if(X[Q]==="\\")Q++;Q++}Q++;continue}if(q==="(")G++;else if(q===")")G--;Q++}$.push("0"),Z=Q}return $.join("")}function R9(){return`
|
|
3761
3761
|
// STX Signals Runtime (Development Build)
|
|
3762
3762
|
console.log('[stx] signals runtime loading');
|
|
3763
3763
|
// Pre-initialization shim: capture onMount/onDestroy calls made before the runtime IIFE runs
|
|
@@ -4883,9 +4883,15 @@ else if (immediate) {
|
|
|
4883
4883
|
// ==========================================================================
|
|
4884
4884
|
|
|
4885
4885
|
function useRef(name) {
|
|
4886
|
+
// A ref belongs to the component scope that created it. Capturing that
|
|
4887
|
+
// owner now is essential: componentScope is a mutable compatibility
|
|
4888
|
+
// fallback and changes while the rest of the page hydrates. Reading it
|
|
4889
|
+
// from the getter made an early component resolve refs from whichever
|
|
4890
|
+
// component happened to hydrate last.
|
|
4891
|
+
var ownerScope = currentLifecycleScope() || componentScope;
|
|
4886
4892
|
return {
|
|
4887
4893
|
get current() {
|
|
4888
|
-
return
|
|
4894
|
+
return (ownerScope.$refs && ownerScope.$refs[name]) || null;
|
|
4889
4895
|
},
|
|
4890
4896
|
get value() {
|
|
4891
4897
|
return this.current;
|
|
@@ -8069,33 +8075,30 @@ catch (e2) {
|
|
|
8069
8075
|
}
|
|
8070
8076
|
|
|
8071
8077
|
// Helper to evaluate with captured scope (auto-unwraps signals).
|
|
8072
|
-
//
|
|
8073
|
-
//
|
|
8074
|
-
//
|
|
8075
|
-
//
|
|
8076
|
-
//
|
|
8077
|
-
//
|
|
8078
|
-
//
|
|
8079
|
-
// for EVERY comparison/boolean expression. bindIf was the only
|
|
8080
|
-
// directive missing this retry.
|
|
8078
|
+
// A with-scope resolves only identifiers the expression actually references,
|
|
8079
|
+
// so the conditional subscribes narrowly instead of reading every signal
|
|
8080
|
+
// in a component scope. That broad subscription made an unrelated ref
|
|
8081
|
+
// update re-enter structural removal while the real condition was already
|
|
8082
|
+
// removing the same subtree. First try the auto-unwrap proxy (so a bare
|
|
8083
|
+
// comparison like count > 5 reads the signal value), then retry with the
|
|
8084
|
+
// raw scope so call syntax like count() === 0 still works (#1733).
|
|
8081
8085
|
const evalExpr = (expression) => {
|
|
8082
8086
|
// Skip placeholder expressions like __TITLE__ (build-time placeholders)
|
|
8083
8087
|
if (/^__[A-Z_]+__$/.test(expression.trim())) {
|
|
8084
8088
|
return expression;
|
|
8085
8089
|
}
|
|
8086
8090
|
try {
|
|
8087
|
-
// Use captured componentScope (with @for vars) merged with element scope
|
|
8088
8091
|
const scope = { ...globalHelpers, ...capturedComponentScope, ...(capturedElementScope || {}) };
|
|
8089
8092
|
const unwrapScope = createExpressionAutoUnwrapProxy(scope, expression);
|
|
8090
|
-
const fn = new Function(
|
|
8091
|
-
return fn(
|
|
8093
|
+
const fn = new Function('__scope__', 'with(__scope__) { return ' + expression + ' }');
|
|
8094
|
+
return fn(unwrapScope);
|
|
8092
8095
|
}
|
|
8093
8096
|
catch (e1) {
|
|
8094
8097
|
try {
|
|
8095
8098
|
// Retry without the unwrap proxy so call-syntax (signal()) works.
|
|
8096
8099
|
const scope2 = { ...globalHelpers, ...capturedComponentScope, ...(capturedElementScope || {}) };
|
|
8097
|
-
const fn2 = new Function(
|
|
8098
|
-
return fn2(
|
|
8100
|
+
const fn2 = new Function('__scope__', 'with(__scope__) { return ' + expression + ' }');
|
|
8101
|
+
return fn2(scope2);
|
|
8099
8102
|
}
|
|
8100
8103
|
catch (e2) {
|
|
8101
8104
|
if (!(e2 instanceof ReferenceError) && !(e2 instanceof TypeError)) console.warn('[STX] Expression error:', expression, e2);
|
|
@@ -8152,11 +8155,6 @@ catch (e2) {
|
|
|
8152
8155
|
value = directSignal();
|
|
8153
8156
|
console.log('[stx] bindIf effect (direct):', expr, '\u2192', value, 'isInserted:', isInserted);
|
|
8154
8157
|
} else {
|
|
8155
|
-
// Complex expression: read all signals first for tracking, then evaluate
|
|
8156
|
-
for (var sk in fullScope) {
|
|
8157
|
-
var sv = fullScope[sk];
|
|
8158
|
-
if (sv && typeof sv === 'function' && (sv._isSignal || sv._isDerived)) sv();
|
|
8159
|
-
}
|
|
8160
8158
|
value = evalExpr(expr);
|
|
8161
8159
|
}
|
|
8162
8160
|
|
|
@@ -8594,12 +8592,19 @@ else if (timer === null) {
|
|
|
8594
8592
|
};
|
|
8595
8593
|
}
|
|
8596
8594
|
|
|
8597
|
-
// Queue work after the current synchronous signal/effect flush
|
|
8598
|
-
//
|
|
8599
|
-
//
|
|
8595
|
+
// Queue work after the current synchronous signal/effect flush and after
|
|
8596
|
+
// structural directives finish their deferred subtree hydration. The
|
|
8597
|
+
// microtask schedules this timer only after every subscriber has run, so a
|
|
8598
|
+
// :if/:for timer created later in the same signal flush runs first and its
|
|
8599
|
+
// template refs are available to the callback.
|
|
8600
8600
|
function nextTick(fn) {
|
|
8601
8601
|
return Promise.resolve().then(function() {
|
|
8602
|
-
|
|
8602
|
+
return new Promise(function(resolve) {
|
|
8603
|
+
setTimeout(function() {
|
|
8604
|
+
if (fn) fn();
|
|
8605
|
+
resolve();
|
|
8606
|
+
}, 0);
|
|
8607
|
+
});
|
|
8603
8608
|
});
|
|
8604
8609
|
}
|
|
8605
8610
|
|
|
@@ -11596,15 +11601,15 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
|
|
|
11596
11601
|
}
|
|
11597
11602
|
}
|
|
11598
11603
|
})();
|
|
11599
|
-
`}var yw;var mZ=E(()=>{gX();
|
|
11604
|
+
`}var yw;var mZ=E(()=>{gX();X1();gX();yw={state:E1,derived:CX,effect:PX,batch:L9,onMount:F9,onDestroy:V9,isSignal:vX,isDerived:xX,untrack:A9,peek:fX,generateSignalsRuntime:uZ,generateSignalsRuntimeDev:R9}});var T9={};n(T9,{templateCache:()=>lZ,readFileCached:()=>bw,invalidateFileCacheByDir:()=>Cw,invalidateFileCache:()=>Sw,hashFilePath:()=>D7,getCachedSignalsRuntime:()=>xw,getCachedRouterScript:()=>fw,clearDevCaches:()=>gw,checkCache:()=>hw,cacheTemplate:()=>uw,__setSignalsGeneratorsForTest:()=>vw});import D1 from"fs";import E5 from"path";async function bw(X){let Z;for(let Y=0;Y<3;Y++)try{let G=(await D1.promises.stat(X)).mtime.getTime(),Q=o1.get(X);if(Q&&Q.mtime===G)return Q.content;let q=await Bun.file(X).text(),U=(await D1.promises.stat(X)).mtime.getTime();if(U!==G)continue;return o1.set(X,{content:q,mtime:U}),q}catch(J){Z=J;break}throw o1.delete(X),Error(`File not found: ${X}${Z?` (${Z.message})`:""}`)}function Sw(X){o1.delete(X)}function Cw(X){for(let $ of o1.keys())if($.startsWith(X))o1.delete($)}function vw(X){cZ=X}async function xw(X=!1){let $=cZ??await Promise.resolve().then(() => (mZ(),dZ));if(X)return $.generateSignalsRuntimeDev();if(hX===null)hX=$.generateSignalsRuntime();return hX}async function fw(){if(uX===null){let{getRouterScript:X}=await Promise.resolve().then(() => (g1(),l2));uX=X()}return uX}function gw(){o1.clear(),iZ(),hX=null,Pw=null,uX=null}function pZ(X){let $={debug:X.debug===!0,middleware:(X.middleware??[]).map((Z)=>({name:Z.name,timing:Z.timing,handler:String(Z.handler)})),customDirectives:(X.customDirectives??[]).map((Z)=>({name:Z.name,hasEndTag:Z.hasEndTag===!0,handler:String(Z.handler)}))};return new Bun.CryptoHasher("sha1").update(JSON.stringify($)).digest("hex")}async function hw(X,$){try{if(!$.cachePath)return null;let Z=E5.resolve($.cachePath),Y=E5.join(Z,`${D7(X)}.html`),J=E5.join(Z,`${D7(X)}.meta.json`);if(!await p(Y)||!await p(J))return null;let G=await Bun.file(J).text(),Q=JSON.parse(G);if(Q.cacheVersion!==$.cacheVersion)return null;if(Q.optionsSignature!==pZ($))return null;if((await D1.promises.stat(X)).mtime.getTime()>Q.mtime)return null;for(let K of Q.dependencies)if(await p(K)){if((await D1.promises.stat(K)).mtime.getTime()>Q.mtime)return null}else return null;return await Bun.file(Y).text()}catch(Z){return console.warn(`Cache error for ${X}:`,Z),null}}async function uw(X,$,Z,Y){try{if(!Y.cachePath)return;let J=E5.resolve(Y.cachePath);await D1.promises.mkdir(J,{recursive:!0});let G=E5.join(J,`${D7(X)}.html`),Q=E5.join(J,`${D7(X)}.meta.json`),q=await D1.promises.stat(X);await Bun.write(G,$);let K={sourcePath:X,mtime:q.mtime.getTime(),dependencies:Array.from(Z),cacheVersion:Y.cacheVersion,optionsSignature:pZ(Y),generatedAt:Date.now()};await Bun.write(Q,JSON.stringify(K,null,2)),lZ.set(X,{output:$,mtime:q.mtime.getTime(),dependencies:Z})}catch(J){console.warn(`Failed to cache template ${X}:`,J)}}function D7(X){return new Bun.CryptoHasher("sha1").update(X).digest("hex").substring(0,dw)}var lZ,o1,hX=null,Pw=null,cZ=null,uX=null,dw=16;var N9=E(()=>{A0();lZ=new Map,o1=new Map});function nZ(X){return X.includes("data-stx-runtime")}function rZ(X){let $=/window\.stx\s*\.\s*[A-Za-z_$]|\}\s*=\s*window\.stx\s*;/g;for(let Z=$.exec(X);Z!==null;Z=$.exec(X)){let Y=X.slice(Math.max(0,Z.index-80),Z.index);if(/if\s*\(\s*window\.stx\s*\)|window\.stx\s*&&/.test(Y))continue;return!0}return!1}function M9(X,$){let Z=X.indexOf("<script"),Y=X.search(/<!doctype\b/i);if(Z!==-1&&(Y===-1||Z>Y))return X.slice(0,Z)+$+`
|
|
11600
11605
|
`+X.slice(Z);let J=/<head\b[^>]*>/i.exec(X);if(J){let Q=J.index+J[0].length;return`${X.slice(0,Q)}
|
|
11601
11606
|
${$}${X.slice(Q)}`}if(X.includes("</head>")){let Q=X.indexOf("</head>");return X.slice(0,Q)+$+`
|
|
11602
11607
|
`+X.slice(Q)}if(E7(X))return yX(X,(Q)=>`${Q}
|
|
11603
11608
|
${$}`);return`${$}
|
|
11604
|
-
${X}`}async function dX(X,$){if(X.includes("data-stx-runtime")||X.includes("window.stx.state")||X.includes("STX Signals Runtime"))return X;if($.buildMode==="serve")return M9(X,'<script data-stx-runtime src="/_stx/runtime.js"></script>');if($.buildMode==="compile")return M9(X,'<script data-stx-runtime src="/__stx/runtime.__STX_HASH__.js"></script>');let{getCachedSignalsRuntime:Z}=await Promise.resolve().then(() => (
|
|
11605
|
-
`}let{getCachedRouterScript:J}=await Promise.resolve().then(() => (
|
|
11609
|
+
${X}`}async function dX(X,$){if(X.includes("data-stx-runtime")||X.includes("window.stx.state")||X.includes("STX Signals Runtime"))return X;if($.buildMode==="serve")return M9(X,'<script data-stx-runtime src="/_stx/runtime.js"></script>');if($.buildMode==="compile")return M9(X,'<script data-stx-runtime src="/__stx/runtime.__STX_HASH__.js"></script>');let{getCachedSignalsRuntime:Z}=await Promise.resolve().then(() => (N9(),T9)),Y=await Z($.debug);return M9(X,`<script data-stx-scoped data-stx-runtime>${Y}</script>`)}async function oZ(X,$){if(!X.includes("</body>"))return X;if(X.includes("data-stx-router")||X.includes("__stxRouter)return")||X.includes("__stxRouter=true"))return X;let Z=$?.router,Y="";{let q={};if(Z){if(Z.container)q.container=Z.container;if(Z.interceptAllLinks!==void 0)q.interceptAllLinks=Z.interceptAllLinks;if(Z.progress!==void 0)q.progress=Z.progress;if(Z.viewTransitions!==void 0)q.viewTransitions=Z.viewTransitions;if(Z.viewTransitionDuration!==void 0)q.viewTransitionDuration=Z.viewTransitionDuration;if(Z.viewTransitionEasing!==void 0)q.viewTransitionEasing=Z.viewTransitionEasing;if(Z.scrollToTop!==void 0)q.scrollToTop=Z.scrollToTop;if(Z.prefetch!==void 0)q.prefetch=Z.prefetch;if(Z.cache!==void 0)q.cache=Z.cache;if(Z.progressColor!==void 0)q.progressColor=Z.progressColor;if(Z.progressHeight!==void 0)q.progressHeight=Z.progressHeight}try{let K=await bZ($?.pagesDir);if(K.length>0)q.ownedRoutes=K}catch{}if(Object.keys(q).length>0)Y=`<script>window.__stxRouterConfig=${CZ(q)};</script>
|
|
11610
|
+
`}let{getCachedRouterScript:J}=await Promise.resolve().then(() => (N9(),T9)),G=$?.buildMode==="compile"?'<script data-stx-router src="/__stx/router.__STX_HASH__.js"></script>':$?.buildMode==="serve"?'<script data-stx-router src="/_stx/router.js"></script>':`<script data-stx-router>${await J()}</script>`,Q=X.lastIndexOf("</body>");return X.slice(0,Q)+Y+G+`
|
|
11606
11611
|
</body>`+X.slice(Q+7)}var mX=E(()=>{SZ();W9()});var iX={};n(iX,{scanScriptTags:()=>ZY,rewriteStxImportSpecifiers:()=>QY,processSignals:()=>y9,processScriptSetup:()=>JY,preEvalLiteralReactiveIfs:()=>E9,parseLoopExpression:()=>YY,hasSignalsSyntax:()=>pX,findMarkupIndexOutsideScripts:()=>cX,extractExports:()=>GY,convertSignalLoopsToAttributes:()=>D9,convertSignalDirectivesToAttributes:()=>I9});function ZY(X,$={}){let Z=[];for(let Y of r$(X,A1)){let J=Y.token.match(/^<script\b([^>]*)>/i),G=Y.token.match(/<\/script\s*>$/i);if(!J||!G)continue;let Q=J[1];if($.skipAttrs){if($.skipAttrs.lastIndex=0,$.skipAttrs.test(Q))continue}let q=J[0].length,K=Y.token.length-G[0].length;Z.push({fullMatch:Y.token,attrs:Q,body:Y.token.slice(q,K),start:Y.start,end:Y.end})}return Z}function YY(X){let $=X.trim(),Z=$.match(/^([\s\S]+?)\s+as\s+(.+)$/);if(Z){let J=Z[1].trim(),G=Z[2].trim(),{itemVar:Q,indexVar:q}=aZ(G);if(Q)return{style:"as",iterable:J,itemVar:Q,indexVar:q}}let Y=$.match(/^(\([^)]+\)|\w+(?:\s*,\s*\w+)?)\s+(?:in|of)\s+([\s\S]+)$/);if(Y){let J=Y[1].trim(),G=Y[2].trim(),{itemVar:Q,indexVar:q}=aZ(J);if(Q)return{style:"in",iterable:G,itemVar:Q,indexVar:q}}return{style:"unknown",iterable:null,itemVar:null,indexVar:null}}function aZ(X){let $=X.trim(),Z=$.match(/^(\w+)\s*=>\s*(\w+)$/);if(Z)return{itemVar:Z[2],indexVar:Z[1]};let Y=$.match(/^\(\s*(\w+)(?:\s*,\s*(\w+))?\s*\)$/);if(Y)return{itemVar:Y[1],indexVar:Y[2]||null};let J=$.match(/^(\w+)\s*,\s*(\w+)$/);if(J)return{itemVar:J[1],indexVar:J[2]};let G=$.match(/^(\w+)$/);if(G)return{itemVar:G[1],indexVar:null};return{itemVar:null,indexVar:null}}function pX(X){return t2(X)}function lw(X){let $=/@(if\s*\(|endif|elseif\s*\(|else\b)/g,Z=0,Y;while((Y=$.exec(X))!==null){let J=Y[1];if(J.startsWith("if"))Z++;else if(J==="endif")Z--;else if(Z===0)return!0}return!1}function cw(X){let $=new Set,Z=/<script\b(?![^>]*\bserver\b)(?![^>]*\bsrc\s*=)[^>]*>([\s\S]*?)<\/script>/gi,Y=/\b(?:const|let|var)\s+([a-zA-Z_$][\w$]*)\s*=\s*(?:state|derived|computed|ref|reactive|signal)\s*(?:<[^>]*>)?\s*\(/g,J;while((J=Z.exec(X))!==null){let G=J[1],Q;while((Q=Y.exec(G))!==null)$.add(Q[1])}return $}function pw(X){return X.replace(/'(?:\\.|[^'\\])*'/g,"''").replace(/"(?:\\.|[^"\\])*"/g,'""').replace(/`(?:\\.|[^`\\])*`/g,"``")}function eZ(X,$,Z){if(!X)return!1;let Y=pw(X),J=!1,G=!1,Q=!1,q=/([a-zA-Z_$][\w$]*)/g,K;while((K=q.exec(Y))!==null){let z=K[1];if(Y.slice(0,K.index).trimEnd().endsWith("."))continue;if(tZ.has(z))continue;if($.has(z))J=!0;else if(Z&&z in Z)G=!0}let U=/([a-zA-Z_$][\w$]*)(?:\.[a-zA-Z_$][\w$]*)*\s*\(\s*\)/g,W;while((W=U.exec(Y))!==null){let z=W[1];if(Y.slice(0,W.index).trimEnd().endsWith("."))continue;if(tZ.has(z)||Z&&z in Z)continue;Q=!0}return(J||Q)&&!G}function lX(X,$,Z){let Y=Z===void 0?` ${$}`:` ${$}="${Z.replace(/"/g,""")}"`,J=X.trim(),G=J.match($Y);if(G&&iw(G[3],G[1])){let[,Q,q,K]=G;return`<${Q}${q}${Y}>${K}</${Q}>`}return`<template${Y}>${J}</template>`}function iw(X,$){let Z=new RegExp(`<(/)?${$}(?=[\\s/>])`,"gi"),Y=0,J;while((J=Z.exec(X))!==null)if(J[1]){if(Y--,Y<0)return!1}else Y++;return!0}function I9(X,$){let Z=cw(X);function Y(J){let G=J,Q=/@if\s*\(/g,q,K=[];while((q=Q.exec(G))!==null){let U=q.index,W=U+q[0].length,w=1,z=W;while(z<G.length&&w>0){if(G[z]==="(")w++;else if(G[z]===")")w--;z++}if(w!==0)continue;let B=G.substring(W,z-1).trim(),j=z,_=1,H=j,L=/@(if\s*\(|endif)/g;L.lastIndex=j;let O;while((O=L.exec(G))!==null)if(O[1].startsWith("if"))_++;else if(O[1]==="endif"){if(_--,_===0){H=O.index+O[0].length;break}}if(_!==0)continue;let F=G.substring(j,H-6).trim(),V;if(lw(F)){let A=I7(G.substring(U,H));if(A.length===0)continue;let R=A[0].branches.filter((k)=>k.type!=="else");if(!(R.length>0&&R.every((k)=>eZ(k.condition,Z,$))))continue;V=A[0].branches.map((k)=>{let M=Y(k.content);if(k.type==="elseif")return lX(M,"@else-if",k.condition??"");if(k.type==="else")return lX(M,"@else");return lX(M,"@if",k.condition??"")}).join(`
|
|
11607
|
-
`)}else{if(!eZ(B,Z,$))continue;V=lX(Y(F),"@if",B)}K.push({start:U,end:H,replacement:V}),Q.lastIndex=H}for(let U=K.length-1;U>=0;U--){let{start:W,end:w,replacement:z}=K[U];G=G.substring(0,W)+z+G.substring(w)}return G}return Y(X)}function nw(X){let $=X.trim();if($==="")return;if($==="true")return!0;if($==="false")return!1;if($==="null")return!1;if($==="undefined")return!1;if($==="NaN")return!1;if(/^-?\d+(?:\.\d+)?$/.test($)){let J=Number($);return J!==0&&!Number.isNaN(J)}let Z=$.match(/^'((?:\\.|[^'\\])*)'$/);if(Z)return Z[1].length>0;let Y=$.match(/^"((?:\\.|[^"\\])*)"$/);if(Y)return Y[1].length>0;return}function rw(X,$,Z,Y){if(k9.has(Z.toLowerCase()))return Y;let J=Z.toLowerCase(),G=X.toLowerCase(),Q=X.length,q=1,K=Y;while(K<Q){let U=X.indexOf("<",K);if(U===-1)return-1;if(K=U,X.startsWith("<!--",K)){let B=X.indexOf("-->",K+4);if(B===-1)return-1;K=B+3;continue}let W=/^<(script|style)\b/i.exec(X.slice(K,K+8));if(W){let B=X.indexOf(">",K);if(B===-1)return-1;if(X[B-1]==="/"){K=B+1;continue}let j=G.indexOf(`</${W[1].toLowerCase()}`,K);if(j===-1)return-1;let _=X.indexOf(">",j);if(_===-1)return-1;K=_+1;continue}if(X[K+1]==="/"){let B=/^<\/([a-z][\w-]*)\s*>/i.exec(X.slice(K,K+64));if(!B){K++;continue}if(B[1].toLowerCase()===J){if(q--,K+=B[0].length,q===0)return K;continue}K+=B[0].length;continue}let w=/^<([a-z][\w-]*)\b/i.exec(X.slice(K,K+64));if(!w){K++;continue}let z=X.indexOf(">",K);if(z===-1)return-1;if(w[1].toLowerCase()===J){let B=X.slice(K,z+1);if(!(/\/\s*>$/.test(B)||k9.has(J)))q++}K=z+1}return-1}function sw(X,$){let Z=$,Y=X.length;for(;;){while(Z<Y&&X[Z]!=="<")Z++;if(Z>=Y)return!1;if(X.startsWith("<!--",Z)){let Q=X.indexOf("-->",Z+4);if(Q===-1)return!1;Z=Q+3;continue}break}if(X[Z+1]==="/")return!1;let J=X.indexOf(">",Z);if(J===-1)return!1;let G=X.slice(Z,J+1);return ow.test(G)}function E9(X){if(!X.includes(":if")&&!X.includes(":show")&&!X.includes("x-if")&&!X.includes("x-show")&&!X.includes("@if=")&&!X.includes("@show="))return X;let $=[],Z=/<(script|style)\b[^>]*>[\s\S]*?<\/\1\s*>/gi,Y;while((Y=Z.exec(X))!==null)$.push([Y.index,Y.index+Y[0].length]);let J=(w)=>$.some(([z,B])=>w>=z&&w<B),G=/<([a-zA-Z][\w-]*)\b((?:\s+[^=\s>]+(?:=(?:"[^"]*"|'[^']*'|[^\s>]*))?)*?)\s+(:if|:show|x-if|x-show|@if|@show)\s*=\s*"([^"]*)"((?:\s+[^=\s>]+(?:=(?:"[^"]*"|'[^']*'|[^\s>]*))?)*\s*)(\/?)>/g,Q=[],q;while((q=G.exec(X))!==null){if(J(q.index))continue;let[w,z,B,j,_,H,L]=q,O=nw(_);if(O===void 0)continue;let F=q.index,V=F+w.length,
|
|
11612
|
+
`)}else{if(!eZ(B,Z,$))continue;V=lX(Y(F),"@if",B)}K.push({start:U,end:H,replacement:V}),Q.lastIndex=H}for(let U=K.length-1;U>=0;U--){let{start:W,end:w,replacement:z}=K[U];G=G.substring(0,W)+z+G.substring(w)}return G}return Y(X)}function nw(X){let $=X.trim();if($==="")return;if($==="true")return!0;if($==="false")return!1;if($==="null")return!1;if($==="undefined")return!1;if($==="NaN")return!1;if(/^-?\d+(?:\.\d+)?$/.test($)){let J=Number($);return J!==0&&!Number.isNaN(J)}let Z=$.match(/^'((?:\\.|[^'\\])*)'$/);if(Z)return Z[1].length>0;let Y=$.match(/^"((?:\\.|[^"\\])*)"$/);if(Y)return Y[1].length>0;return}function rw(X,$,Z,Y){if(k9.has(Z.toLowerCase()))return Y;let J=Z.toLowerCase(),G=X.toLowerCase(),Q=X.length,q=1,K=Y;while(K<Q){let U=X.indexOf("<",K);if(U===-1)return-1;if(K=U,X.startsWith("<!--",K)){let B=X.indexOf("-->",K+4);if(B===-1)return-1;K=B+3;continue}let W=/^<(script|style)\b/i.exec(X.slice(K,K+8));if(W){let B=X.indexOf(">",K);if(B===-1)return-1;if(X[B-1]==="/"){K=B+1;continue}let j=G.indexOf(`</${W[1].toLowerCase()}`,K);if(j===-1)return-1;let _=X.indexOf(">",j);if(_===-1)return-1;K=_+1;continue}if(X[K+1]==="/"){let B=/^<\/([a-z][\w-]*)\s*>/i.exec(X.slice(K,K+64));if(!B){K++;continue}if(B[1].toLowerCase()===J){if(q--,K+=B[0].length,q===0)return K;continue}K+=B[0].length;continue}let w=/^<([a-z][\w-]*)\b/i.exec(X.slice(K,K+64));if(!w){K++;continue}let z=X.indexOf(">",K);if(z===-1)return-1;if(w[1].toLowerCase()===J){let B=X.slice(K,z+1);if(!(/\/\s*>$/.test(B)||k9.has(J)))q++}K=z+1}return-1}function sw(X,$){let Z=$,Y=X.length;for(;;){while(Z<Y&&X[Z]!=="<")Z++;if(Z>=Y)return!1;if(X.startsWith("<!--",Z)){let Q=X.indexOf("-->",Z+4);if(Q===-1)return!1;Z=Q+3;continue}break}if(X[Z+1]==="/")return!1;let J=X.indexOf(">",Z);if(J===-1)return!1;let G=X.slice(Z,J+1);return ow.test(G)}function E9(X){if(!X.includes(":if")&&!X.includes(":show")&&!X.includes("x-if")&&!X.includes("x-show")&&!X.includes("@if=")&&!X.includes("@show="))return X;let $=[],Z=/<(script|style)\b[^>]*>[\s\S]*?<\/\1\s*>/gi,Y;while((Y=Z.exec(X))!==null)$.push([Y.index,Y.index+Y[0].length]);let J=(w)=>$.some(([z,B])=>w>=z&&w<B),G=/<([a-zA-Z][\w-]*)\b((?:\s+[^=\s>]+(?:=(?:"[^"]*"|'[^']*'|[^\s>]*))?)*?)\s+(:if|:show|x-if|x-show|@if|@show)\s*=\s*"([^"]*)"((?:\s+[^=\s>]+(?:=(?:"[^"]*"|'[^']*'|[^\s>]*))?)*\s*)(\/?)>/g,Q=[],q;while((q=G.exec(X))!==null){if(J(q.index))continue;let[w,z,B,j,_,H,L]=q,O=nw(_);if(O===void 0)continue;let F=q.index,V=F+w.length,T=!!L||/\/\s*>$/.test(w)||k9.has(z.toLowerCase())?V:rw(X,F,z,V);if(T===-1)continue;if((j===":if"||j==="x-if"||j==="@if")&&sw(X,T)){G.lastIndex=V;continue}if(O===!0){let k=`<${z}${B}${H}${L}>`;Q.push({start:F,end:V,replacement:k});continue}Q.push({start:F,end:T,replacement:""}),G.lastIndex=T}if(Q.length===0)return X;Q.sort((w,z)=>w.start-z.start);let K=[],U=-1;for(let w of Q){if(w.start<U)continue;K.push(w),U=w.end}let W=X;for(let w=K.length-1;w>=0;w--){let{start:z,end:B,replacement:j}=K[w];W=W.substring(0,z)+j+W.substring(B)}return W}function D9(X,$){let Z=X,Y=/@(for|foreach)\s*\(/g,J,G=[],Q=[];while((J=Y.exec(Z))!==null){let q=J[1],K=J.index,U=K+J[0].length,W=1,w=U;while(w<Z.length&&W>0){if(Z[w]==="(")W++;else if(Z[w]===")")W--;w++}if(W!==0)continue;let z=Z.substring(U,w-1).trim(),B=w,j=YY(z),_=q==="for"?"@endfor":"@endforeach",H=1,L=B,O=q==="for"?new RegExp("@(for(?!each)\\s*\\(|endfor(?!each))","g"):new RegExp(`@(${q}\\s*\\(|end${q})`,"g");O.lastIndex=B;let F;while((F=O.exec(Z))!==null)if(F[1].startsWith(q))H++;else if(H--,H===0){L=F.index+F[0].length;break}if(H!==0)continue;let V=()=>{let N=[j.itemVar,j.indexVar].filter(Boolean);if(N.length)Q.push({start:K,end:L,vars:N})};if(j.iterable){let N=j.iterable.trim();if(N.startsWith("[")||N.startsWith("{")||N.startsWith("'")||N.startsWith('"')||N.startsWith("`")||/^-?\d/.test(N)){V();continue}let k=N.split(/[.[(]/)[0].trim(),M=$?k in $:!1,y=Q.some((I)=>K>I.start&&K<I.end&&I.vars.includes(k));if(k&&(M||y)){V();continue}}if(j.style==="as")z=j.indexVar?`(${j.itemVar}, ${j.indexVar}) in ${j.iterable}`:`${j.itemVar} in ${j.iterable}`;let A=Z.substring(B,L-_.length).trim(),R=A.match($Y),T;if(R){let[,N,k,M]=R;T=`<${N}${k} @for="${z}">${M}</${N}>`}else T=`<template @for="${z}">${A}</template>`;G.push({start:K,end:L,replacement:T})}for(let q=G.length-1;q>=0;q--){let{start:K,end:U,replacement:W}=G[q];Z=Z.substring(0,K)+W+Z.substring(U)}return Z}function aw(X){let $=new Set,Z=[],Y=0,J=0,G=X.length,Q=(W)=>{let w=Y+1;while(w<G){let z=X[w];if(z==="\\"){w+=2;continue}if(z===W)return w+1;w++}return G},q=()=>{let W=Y+2;while(W<G&&X[W]!==`
|
|
11608
11613
|
`)W++;return W},K=()=>{let W=Y+2;while(W<G-1){if(X[W]==="*"&&X[W+1]==="/")return W+2;W++}return G},U=(W)=>{let w=W,z=0;while(w<G){let B=X[w];if(B==="/"&&X[w+1]==="/"){let j=w+2;while(j<G&&X[j]!==`
|
|
11609
11614
|
`)j++;w=j;continue}if(B==="/"&&X[w+1]==="*"){let j=w+2;while(j<G-1&&!(X[j]==="*"&&X[j+1]==="/"))j++;w=j+2;continue}if(B==='"'||B==="'"||B==="`"){let j=w+1;while(j<G){if(X[j]==="\\"){j+=2;continue}if(X[j]===B){j++;break}j++}w=j;continue}if(B==="("||B==="["||B==="{"){z++,w++;continue}if(B===")"||B==="]"||B==="}"){z--,w++;continue}if(B===";"&&z===0)return w+1;w++}return G};while(Y<G){let W=X[Y];if(W==="/"&&X[Y+1]==="/"){let w=q();Z.push(X.slice(Y,w)),Y=w;continue}if(W==="/"&&X[Y+1]==="*"){let w=K();Z.push(X.slice(Y,w)),Y=w;continue}if(W==='"'||W==="'"||W==="`"){let w=Q(W);Z.push(X.slice(Y,w)),Y=w;continue}if(W==="{"){J++,Z.push(W),Y++;continue}if(W==="}"){J--,Z.push(W),Y++;continue}if(J===0){let w=Y>0?X[Y-1]:"";if(w===""||/\s/.test(w)||w===";"||w==="}"||w==="{"){let B=X.slice(Y).match(/^(const|let|var)\s+([a-zA-Z_$][\w$]*)\s*=/);if(B){let j=B[2],_=U(Y+B[0].length);if($.has(j)){Z.push(`/* stx: deduped const ${j} */`),Y=_;continue}$.add(j),Z.push(X.slice(Y,_)),Y=_;continue}}}Z.push(W),Y++}return Z.join("")}async function JY(X,$,Z){let Y=ZY(X,{skipAttrs:/\bserver\b|\bsrc\s*=|\bdata-stx-scoped\b|\bdata-stx-router\b/}),J=/\b(?:state|derived|effect|ref|reactive|computed|watch|watchEffect|useStore|useLocalStorage|useSessionStorage|useCookie|useId|useReactiveProp|useFetch|useRef|useEventListener|useDebounce|useDebouncedValue|useThrottle|useInterval|useTimeout|useToggle|useCounter|useClickOutside|useFocus|useAsync|useColorMode|useDark|useMediaQuery|useScrollLock|usePreferredDark|usePreferredLight|usePreferredReducedMotion|usePreferredContrast|useWebSocket|useRoute|useSearchParams|onMount|onDestroy|defineProps|withDefaults|defineEmits|defineExpose|defineSlots|useOptimistic)\s*(?:<[^>]*>)?\s*\(/,G=[];for(let H of Y){let L=H.body;if(d1(H.attrs))L=m1(L);if(J.test(L))G.push({fullMatch:H.fullMatch,attrs:H.attrs,content:L})}if(G.length===0)return{output:X,setupCode:null};let Q=`__stx_setup_${Date.now()}_${mw++}`,{hasUserImports:q,bundleClientScript:K}=await t("stx/client-script-bundler",()=>Promise.resolve().then(() => (B7(),j7))),U=[];for(let H=0;H<G.length;H++){let L=G[H].content;if(L=A5(L).code,q(L))L=await K(L,$||"",{projectRoot:process.cwd()});L=L.replace(/^\s*import\s+(?:type\s+)?\{([^}]*)\}\s+from\s+['"](?:stx|@stacksjs\/stx|@stacksjs\/browser)['"]\s*;?\s*$/gm,(F,V)=>QY(V));let O=f0(L);U.push(`// \u2500\u2500 merged signal script #${H+1} \u2500\u2500
|
|
11610
11615
|
${O}`)}let W=U.join(`
|
|
@@ -11620,18 +11625,19 @@ window.__stx_latestSetup=${Q};
|
|
|
11620
11625
|
if(window.stx)window.stx._latestSetup=${Q};
|
|
11621
11626
|
</script>`,_=X;for(let H of G)_=_.split(H.fullMatch).join("");if(_.includes("<body"))_=_.replace(new RegExp(`<body(${sZ})>`),`<body$1 data-stx="${Q}">`);else{let H=["script","style","html","head","meta","link","title","!doctype"],L=!1;_=_.replace(new RegExp(`<([a-zA-Z][a-zA-Z0-9-]*)\\b(${sZ})>`,"gi"),(O,F,V)=>{if(L||H.includes(F.toLowerCase()))return O;return L=!0,`<${F}${V} data-stx="${Q}">`})}return{output:_,setupCode:j}}function GY(X){let $=X,Z=[],Y=new Set,J=0,G=0,Q=$.length,q="",K=()=>{G++;let j=!1;while(G<Q){let _=$[G];if(_==="\\"){G+=2;continue}if(_==="["&&!j){j=!0,G++;continue}if(_==="]"&&j){j=!1,G++;continue}if(_==="/"&&!j){G++;while(G<Q&&/[gimsuyd]/.test($[G]))G++;return}if(_===`
|
|
11622
11627
|
`)return;G++}},U=()=>{if(!q)return!0;if(/[\w)\]]/.test(q))return!1;return!0},W=(j)=>{G++;while(G<Q){if($[G]==="\\"){G+=2;continue}if($[G]===j){G++;return}G++}},w=()=>{G++;while(G<Q){if($[G]==="\\"){G+=2;continue}if($[G]==="`"){G++;return}if($[G]==="$"&&$[G+1]==="{"){G+=2;let j=1;while(G<Q&&j>0)if($[G]==="{")j++,G++;else if($[G]==="}")j--,G++;else if($[G]==="'"||$[G]==='"')W($[G]);else if($[G]==="`")w();else G++;continue}G++}},z=()=>{if($[G]==="/"&&$[G+1]==="/"){while(G<Q&&$[G]!==`
|
|
11623
|
-
`)G++;return!0}if($[G]==="/"&&$[G+1]==="*"){G+=2;while(G<Q-1&&!($[G]==="*"&&$[G+1]==="/"))G++;return G+=2,!0}return!1},B=()=>{if(J!==0)return;let j=$.slice(G).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(j){let F=j[2];if(!Y.has(F))Z.push(F),Y.add(F);return}let _=$.slice(G).match(/^(?:const|let|var)\s+\{([^}]+)\}\s*=/);if(_){_[1].split(",").forEach((F)=>{let V=F.trim();if(!V)return;let A=V.indexOf(":"),
|
|
11628
|
+
`)G++;return!0}if($[G]==="/"&&$[G+1]==="*"){G+=2;while(G<Q-1&&!($[G]==="*"&&$[G+1]==="/"))G++;return G+=2,!0}return!1},B=()=>{if(J!==0)return;let j=$.slice(G).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(j){let F=j[2];if(!Y.has(F))Z.push(F),Y.add(F);return}let _=$.slice(G).match(/^(?:const|let|var)\s+\{([^}]+)\}\s*=/);if(_){_[1].split(",").forEach((F)=>{let V=F.trim();if(!V)return;let A=V.indexOf(":"),T=(A>=0?V.slice(A+1).trim():V).split(/[\s=]/)[0];if(T&&!Y.has(T))Z.push(T),Y.add(T)});return}let H=$.slice(G).match(/^(?:const|let|var)\s+\[([^\]]+)\]\s*=/);if(H){H[1].split(",").forEach((F)=>{let V=F.trim().replace(/^\.\.\./,"");if(!V)return;let A=V.split(/[\s=]/)[0];if(A&&!Y.has(A))Z.push(A),Y.add(A)});return}let L=$.slice(G).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(L){let F=L[1];if(!Y.has(F))Z.push(F),Y.add(F);return}let O=$.slice(G).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(O){let F=O[1];if(!Y.has(F))Z.push(F),Y.add(F)}};while(G<Q){if(z())continue;if($[G]==="'"||$[G]==='"'){W($[G]),q=$[G-1];continue}if($[G]==="`"){w(),q="`";continue}if($[G]==="/"&&$[G+1]!=="/"&&$[G+1]!=="*"&&U()){K(),q="/";continue}if($[G]==="{"){J++,q="{",G++;continue}if($[G]==="}"){J--,q="}",G++;continue}if(J===0&&/[a-z]/i.test($[G])&&(G===0||/\s|[;{}()]/.test($[G-1])))B();if(!/\s/.test($[G]))q=$[G];G++}return Z.join(", ")}async function y9(X,$,Z,Y){if(!pX(X))return X;let J=X;if($.skipSignalsRuntime)return J;let{output:G,setupCode:Q}=await JY(J,Z,Y);if(J=G,J=await dX(J,$),Q){let W=cX(J,/<\/head>/i),w=W===-1?cX(J,/<body[^>]*>/i):-1;if(W!==-1)J=`${J.slice(0,W)}${Q}
|
|
11624
11629
|
${J.slice(W)}`;else if(w!==-1){let z=/<body[^>]*>/i.exec(J.slice(w))[0],B=w+z.length;J=`${J.slice(0,B)}
|
|
11625
11630
|
${Q}${J.slice(B)}`}else J=`${J}
|
|
11626
|
-
${Q}`}let K=J.replace(/<script\b[\s\S]*?<\/script>/gi,"").replace(/<style\b[\s\S]*?<\/style>/gi,"").match(/<body([^>]*)>/i),U=K&&/data-stx/.test(K[1]);if(!Q&&!U&&K&&!/data-stx-auto/.test(K[1])){let W=/<body[^>]*>/i,w=cX(J,W);if(w!==-1){let z=J.slice(0,w),B=J.slice(w).replace(W,(j)=>j.replace(/^<body([^>]*)>$/i,"<body$1 data-stx-auto>"));J=z+B}}return J}function cX(X,$){let Z=/<(script|style)\b[\s\S]*?<\/\1>/gi,Y=[],J;while((J=Z.exec(X))!==null)Y.push([J.index,J.index+J[0].length]);let G=new RegExp($.source,$.flags.replace(/[gy]/g,"")),Q=0;while(Q<X.length){let q=G.exec(X.slice(Q));if(!q)return-1;let K=Q+q.index;if(!Y.some(([W,w])=>K>=W&&K<w))return K;Q=K+Math.max(q[0].length,1)}return-1}function QY(X){let $=[];for(let Z of X.split(",")){let Y=Z.trim();if(!Y||Y.startsWith("type "))continue;let J=Y.match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);if(J&&J[1]!==J[2])$.push(`${J[2]} = ${J[1]}`)}if($.length===0)return XY;return`var ${$.join(", ")}; ${XY}`}var mw=0,sZ=`(?:"[^"]*"|'[^']*'|[^>"'])*`,$Y,tZ,k9,ow,XY="/* [stx import stripped, resolved via window.stx in __stx_setup] */";var y7=E(()=>{F7();DX();
|
|
11627
|
-
`)J++;return!0}if(X[J]==="/"&&X[J+1]==="*"){J+=2;while(J<G-1&&!(X[J]==="*"&&X[J+1]==="/"))J++;return J+=2,!0}return!1},U=()=>{if(Y!==0)return;let W=X.slice(J).match(/^(const|let|var)\s*\{([^}]+)\}\s*=/);if(W){let j=W[2].split(",").map((_)=>{let H=_.trim().split(":");return H[H.length-1].trim()});for(let _ of j)if(_&&/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(_)&&!Z.has(_))$.push(_),Z.add(_);return}let w=X.slice(J).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(w){let j=w[2];if(!Z.has(j))$.push(j),Z.add(j);return}let z=X.slice(J).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(z){let j=z[1];if(!Z.has(j))$.push(j),Z.add(j);return}let B=X.slice(J).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(B){let j=B[1];if(!Z.has(j))$.push(j),Z.add(j)}};while(J<G){if(K())continue;if(X[J]==="'"||X[J]==='"'){Q(X[J]);continue}if(X[J]==="`"){q();continue}if(X[J]==="{"){Y++,J++;continue}if(X[J]==="}"){Y--,J++;continue}if(Y===0&&/[a-z]/i.test(X[J])&&(J===0||/\s|[;{}()]/.test(X[J-1])))U();J++}return $}function Yz(X){let $=[],Z=0,Y=0,J=null;for(let G=0;G<X.length;G++){let Q=X[G];if(J){if(Q==="\\"){G++;continue}if(Q===J)J=null;continue}if(Q==='"'||Q==="'"||Q==="`"){J=Q;continue}if(Q==="("||Q==="["||Q==="{")Z++;else if(Q===")"||Q==="]"||Q==="}")Z--;else if(Q===","&&Z===0)$.push(X.slice(Y,G)),Y=G+1}if(Y<X.length)$.push(X.slice(Y));return $}function Jz(X){let $=0,Z=null;for(let Y=0;Y<X.length;Y++){let J=X[Y];if(Z){if(J==="\\"){Y++;continue}if(J===Z)Z=null;continue}if(J==='"'||J==="'"||J==="`"){Z=J;continue}if(J==="("||J==="["||J==="{")$++;else if(J===")"||J==="]"||J==="}")$--;else if(J==="="&&$===0){let G=X[Y-1],Q=X[Y+1];if(G==="!"||G==="<"||G===">"||G==="=")continue;if(Q==="="||Q===">")continue;return Y}}return-1}function Gz(X,$){try{let Z=/=\s*(?:withDefaults\s*\([\s\S]*?defineProps|defineProps)\b/.exec(X);if(!Z)return;let Y=Z.index-1;while(Y>=0&&/\s/.test(X[Y]))Y--;if(X[Y]!=="}")return;let J=Y,G=0,Q=-1;for(;Y>=0;Y--){let K=X[Y];if(K==="}")G++;else if(K==="{"){if(G--,G===0){Q=Y;break}}}if(Q===-1)return;let q=X.slice(Q+1,J);for(let K of Yz(q)){let U=K.trim();if(!U||U.startsWith("..."))continue;let W=Jz(U);if(W===-1)continue;let w=U.slice(0,W).trim();if(!/^[A-Z_$][\w$]*$/i.test(w))continue;if($[w]!==void 0)continue;let z=U.slice(W+1).trim();if(!z)continue;try{let B=Object.keys($),j=Function(...B,`"use strict"; return (${z});`);$[w]=j(...B.map((_)=>$[_]))}catch{}}}catch{}}async function oX(X,$,Z,Y,J){let G=X.endsWith(".stx")?X.slice(0,-4):X,Q=(H)=>H.split("-").map((L)=>L.charAt(0).toUpperCase()+L.slice(1)).join(""),q=(H)=>H.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),K=Z.__importedComponents;if(K){for(let H of[G,G.toLowerCase(),Q(G),q(G)])if(K.has(H))return!0}let U=[...new Set([`${G}.stx`,`${Q(G)}.stx`,`${q(G)}.stx`])],W=typeof J.root==="string"?g.resolve(J.root):void 0,w=W??g.dirname(Y),z=[],B=(H)=>{if(H&&!z.includes(H))z.push(H)},j=Z.__originalFilePath;if(j)B(g.join(g.dirname(j),"components"));B($),B(J._rootComponentsDir),B(g.join(g.dirname(Y),"components")),B(J.componentsDir);let _=J._pluginComponentDirs;if(Array.isArray(_))for(let H of _)B(typeof H==="string"?H:null);if(W)B(g.resolve(W,"resources/views/components")),B(g.resolve(W,"resources/components")),B(g.resolve(W,"src/components")),B(g.resolve(W,"components"));if(G.startsWith("./")||G.startsWith("../"))return p(g.resolve(g.dirname(Y),`${G}.stx`));for(let H of z){let L=g.isAbsolute(H)?H:g.resolve(w,H);for(let O of U)if(await p(g.join(L,O)))return!0}return!1}function Qz(X){return X==="visible"||X==="idle"||X==="interaction"||X.startsWith("media:")}function qz(X){if(!X)return!1;let $=X.replace(/<script[\s\S]*?<\/script>/gi,"").replace(/<style[\s\S]*?<\/style>/gi,"");return/\{\{[\s\S]*?\}\}|\{!![\s\S]*?!!\}/.test($)}function Kz(X){let $=new Set,Z=/\b(?:const|let|var)\s+([a-zA-Z_$][\w$]*)\s*=\s*(?:state|derived|computed|ref|reactive|signal|useReactiveProp|useLocalStorage|useSessionStorage|useCookie|useDebouncedValue)\s*(?:<[^>]*>)?\s*\(/g;for(let Y of X){let J;while((J=Z.exec(Y))!==null)$.add(J[1]);Z.lastIndex=0}return[...$]}async function s1(X,$,Z,Y,J,G,Q,q=new Set,K){let{extractVariables:U}=await t("stx/variable-extractor",()=>Promise.resolve().then(() => (k7(),IX))),W=q??new Set;if(W.has(X))return`[Circular component reference: ${X}]`;let w=new Set(W);w.add(X);let z=typeof $.client==="string"?$.client.trim():"";if("client"in $)delete $.client;let B=z&&z!=="load"&&Qz(z)?z:"";try{let j=(D)=>D.split("-").map((v)=>v.charAt(0).toUpperCase()+v.slice(1)).join(""),_=(D)=>D.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),H=X.endsWith(".stx")?X.slice(0,-4):X,L=null,O=J.__importedComponents;if(O){let D=[H,H.toLowerCase(),j(H),_(H)];for(let v of D)if(O.has(v)){L=O.get(v);break}}let F=[];if(!L){let D=[`${H}.stx`,`${j(H)}.stx`,`${_(H)}.stx`],v=[...new Set(D)],u=J.__originalFilePath,f=[];if(u){let w0=g.join(g.dirname(u),"components");f.push(w0)}if(Y)f.push(Y);let o=Q._rootComponentsDir;if(typeof o==="string"&&!f.includes(o))f.push(o);let Z0=g.join(g.dirname(G),"components");if(!f.includes(Z0))f.push(Z0);if(Q.componentsDir&&Q.componentsDir!==Y&&!f.includes(Q.componentsDir))f.push(Q.componentsDir);let
|
|
11631
|
+
${Q}`}let K=J.replace(/<script\b[\s\S]*?<\/script>/gi,"").replace(/<style\b[\s\S]*?<\/style>/gi,"").match(/<body([^>]*)>/i),U=K&&/data-stx/.test(K[1]);if(!Q&&!U&&K&&!/data-stx-auto/.test(K[1])){let W=/<body[^>]*>/i,w=cX(J,W);if(w!==-1){let z=J.slice(0,w),B=J.slice(w).replace(W,(j)=>j.replace(/^<body([^>]*)>$/i,"<body$1 data-stx-auto>"));J=z+B}}return J}function cX(X,$){let Z=/<(script|style)\b[\s\S]*?<\/\1>/gi,Y=[],J;while((J=Z.exec(X))!==null)Y.push([J.index,J.index+J[0].length]);let G=new RegExp($.source,$.flags.replace(/[gy]/g,"")),Q=0;while(Q<X.length){let q=G.exec(X.slice(Q));if(!q)return-1;let K=Q+q.index;if(!Y.some(([W,w])=>K>=W&&K<w))return K;Q=K+Math.max(q[0].length,1)}return-1}function QY(X){let $=[];for(let Z of X.split(",")){let Y=Z.trim();if(!Y||Y.startsWith("type "))continue;let J=Y.match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);if(J&&J[1]!==J[2])$.push(`${J[2]} = ${J[1]}`)}if($.length===0)return XY;return`var ${$.join(", ")}; ${XY}`}var mw=0,sZ=`(?:"[^"]*"|'[^']*'|[^>"'])*`,$Y,tZ,k9,ow,XY="/* [stx import stripped, resolved via window.stx in __stx_setup] */";var y7=E(()=>{F7();DX();X1();u$();A0();mX();l1();z7();$Y=/^<([a-zA-Z][a-zA-Z0-9-]*)\b((?:\s+[^=\s>]+(?:=(?:"[^"]*"|'[^']*'|[^\s>]*))?)*\s*)>([\s\S]*)<\/\1>$/s;tZ=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"]);k9=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]);ow=/\s(?::else-if|x-else-if|@else-if|:else|x-else|@else)(?=[=\s/>])/});import tw from"fs";import g from"path";function Xz(X){let $=new WeakSet;try{let Z=(Y)=>{if(Y===void 0)return{__stxType:"undefined"};if(typeof Y==="bigint")return{__stxType:"bigint",value:Y.toString()};if(typeof Y==="function"||typeof Y==="symbol")throw TypeError("Non-serializable component input");if(Y===null||typeof Y!=="object")return Y;if($.has(Y))throw TypeError("Circular component input");if($.add(Y),Y instanceof Date)return{__stxType:"date",value:Y.toISOString()};if(Array.isArray(Y))return Y.map(Z);let J={};for(let G of Object.keys(Y).sort())J[G]=Z(Y[G]);return J};return JSON.stringify(Z(X))}catch{return null}}function qY(X){return X.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function $z(X){return/\bjs\b/.test(X)||/\blang\s*=\s*["']?(js|javascript)["']?/i.test(X)}function d1(X){return!$z(X)}function m1(X){try{let $=X.replace(/^\s*import\s+\w+\s+from\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");$=$.replace(/^\s*import\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");let Z=[];$=$.replace(/\{!![\s\S]*?!!\}/g,(G)=>{let Q=Z.length;return Z.push(G),`"__STX_EXPR_${Q}__"`}),$=$.replace(/\{\{\{[\s\S]*?\}\}\}/g,(G)=>{let Q=Z.length;return Z.push(G),`"__STX_EXPR_${Q}__"`}),$=$.replace(/\{\{[\s\S]*?\}\}/g,(G)=>{let Q=Z.length;return Z.push(G),`"__STX_EXPR_${Q}__"`});let J=new Bun.Transpiler({loader:"ts",target:"browser",define:S0()}).transformSync($);for(let G=0;G<Z.length;G++)J=J.replace(`"__STX_EXPR_${G}__"`,Z[G]),J=J.replace(`'__STX_EXPR_${G}__'`,Z[G]);return J}catch($){if(process.env.STX_DEBUG_TS)console.warn("[STX] TypeScript transpilation error:",$);return X}}function Zz(X){let $=[],Z=new Set,Y=0,J=0,G=X.length,Q=(W)=>{J++;while(J<G){if(X[J]==="\\"){J+=2;continue}if(X[J]===W){J++;return}J++}},q=()=>{J++;while(J<G){if(X[J]==="\\"){J+=2;continue}if(X[J]==="`"){J++;return}if(X[J]==="$"&&X[J+1]==="{"){J+=2;let W=1;while(J<G&&W>0)if(X[J]==="{")W++,J++;else if(X[J]==="}")W--,J++;else if(X[J]==="'"||X[J]==='"')Q(X[J]);else if(X[J]==="`")q();else J++;continue}J++}},K=()=>{if(X[J]==="/"&&X[J+1]==="/"){while(J<G&&X[J]!==`
|
|
11632
|
+
`)J++;return!0}if(X[J]==="/"&&X[J+1]==="*"){J+=2;while(J<G-1&&!(X[J]==="*"&&X[J+1]==="/"))J++;return J+=2,!0}return!1},U=()=>{if(Y!==0)return;let W=X.slice(J).match(/^(const|let|var)\s*\{([^}]+)\}\s*=/);if(W){let j=W[2].split(",").map((_)=>{let H=_.trim().split(":");return H[H.length-1].trim()});for(let _ of j)if(_&&/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(_)&&!Z.has(_))$.push(_),Z.add(_);return}let w=X.slice(J).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(w){let j=w[2];if(!Z.has(j))$.push(j),Z.add(j);return}let z=X.slice(J).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(z){let j=z[1];if(!Z.has(j))$.push(j),Z.add(j);return}let B=X.slice(J).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(B){let j=B[1];if(!Z.has(j))$.push(j),Z.add(j)}};while(J<G){if(K())continue;if(X[J]==="'"||X[J]==='"'){Q(X[J]);continue}if(X[J]==="`"){q();continue}if(X[J]==="{"){Y++,J++;continue}if(X[J]==="}"){Y--,J++;continue}if(Y===0&&/[a-z]/i.test(X[J])&&(J===0||/\s|[;{}()]/.test(X[J-1])))U();J++}return $}function Yz(X){let $=[],Z=0,Y=0,J=null;for(let G=0;G<X.length;G++){let Q=X[G];if(J){if(Q==="\\"){G++;continue}if(Q===J)J=null;continue}if(Q==='"'||Q==="'"||Q==="`"){J=Q;continue}if(Q==="("||Q==="["||Q==="{")Z++;else if(Q===")"||Q==="]"||Q==="}")Z--;else if(Q===","&&Z===0)$.push(X.slice(Y,G)),Y=G+1}if(Y<X.length)$.push(X.slice(Y));return $}function Jz(X){let $=0,Z=null;for(let Y=0;Y<X.length;Y++){let J=X[Y];if(Z){if(J==="\\"){Y++;continue}if(J===Z)Z=null;continue}if(J==='"'||J==="'"||J==="`"){Z=J;continue}if(J==="("||J==="["||J==="{")$++;else if(J===")"||J==="]"||J==="}")$--;else if(J==="="&&$===0){let G=X[Y-1],Q=X[Y+1];if(G==="!"||G==="<"||G===">"||G==="=")continue;if(Q==="="||Q===">")continue;return Y}}return-1}function Gz(X,$){try{let Z=/=\s*(?:withDefaults\s*\([\s\S]*?defineProps|defineProps)\b/.exec(X);if(!Z)return;let Y=Z.index-1;while(Y>=0&&/\s/.test(X[Y]))Y--;if(X[Y]!=="}")return;let J=Y,G=0,Q=-1;for(;Y>=0;Y--){let K=X[Y];if(K==="}")G++;else if(K==="{"){if(G--,G===0){Q=Y;break}}}if(Q===-1)return;let q=X.slice(Q+1,J);for(let K of Yz(q)){let U=K.trim();if(!U||U.startsWith("..."))continue;let W=Jz(U);if(W===-1)continue;let w=U.slice(0,W).trim();if(!/^[A-Z_$][\w$]*$/i.test(w))continue;if($[w]!==void 0)continue;let z=U.slice(W+1).trim();if(!z)continue;try{let B=Object.keys($),j=Function(...B,`"use strict"; return (${z});`);$[w]=j(...B.map((_)=>$[_]))}catch{}}}catch{}}async function oX(X,$,Z,Y,J){let G=X.endsWith(".stx")?X.slice(0,-4):X,Q=(H)=>H.split("-").map((L)=>L.charAt(0).toUpperCase()+L.slice(1)).join(""),q=(H)=>H.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),K=Z.__importedComponents;if(K){for(let H of[G,G.toLowerCase(),Q(G),q(G)])if(K.has(H))return!0}let U=[...new Set([`${G}.stx`,`${Q(G)}.stx`,`${q(G)}.stx`])],W=typeof J.root==="string"?g.resolve(J.root):void 0,w=W??g.dirname(Y),z=[],B=(H)=>{if(H&&!z.includes(H))z.push(H)},j=Z.__originalFilePath;if(j)B(g.join(g.dirname(j),"components"));B($),B(J._rootComponentsDir),B(g.join(g.dirname(Y),"components")),B(J.componentsDir);let _=J._pluginComponentDirs;if(Array.isArray(_))for(let H of _)B(typeof H==="string"?H:null);if(W)B(g.resolve(W,"resources/views/components")),B(g.resolve(W,"resources/components")),B(g.resolve(W,"src/components")),B(g.resolve(W,"components"));if(G.startsWith("./")||G.startsWith("../"))return p(g.resolve(g.dirname(Y),`${G}.stx`));for(let H of z){let L=g.isAbsolute(H)?H:g.resolve(w,H);for(let O of U)if(await p(g.join(L,O)))return!0}return!1}function Qz(X){return X==="visible"||X==="idle"||X==="interaction"||X.startsWith("media:")}function qz(X){if(!X)return!1;let $=X.replace(/<script[\s\S]*?<\/script>/gi,"").replace(/<style[\s\S]*?<\/style>/gi,"");return/\{\{[\s\S]*?\}\}|\{!![\s\S]*?!!\}/.test($)}function Kz(X){let $=new Set,Z=/\b(?:const|let|var)\s+([a-zA-Z_$][\w$]*)\s*=\s*(?:state|derived|computed|ref|reactive|signal|useReactiveProp|useLocalStorage|useSessionStorage|useCookie|useDebouncedValue)\s*(?:<[^>]*>)?\s*\(/g;for(let Y of X){let J;while((J=Z.exec(Y))!==null)$.add(J[1]);Z.lastIndex=0}return[...$]}async function s1(X,$,Z,Y,J,G,Q,q=new Set,K){let{extractVariables:U}=await t("stx/variable-extractor",()=>Promise.resolve().then(() => (k7(),IX))),W=q??new Set;if(W.has(X))return`[Circular component reference: ${X}]`;let w=new Set(W);w.add(X);let z=typeof $.client==="string"?$.client.trim():"";if("client"in $)delete $.client;let B=z&&z!=="load"&&Qz(z)?z:"";try{let j=(D)=>D.split("-").map((v)=>v.charAt(0).toUpperCase()+v.slice(1)).join(""),_=(D)=>D.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),H=X.endsWith(".stx")?X.slice(0,-4):X,L=null,O=J.__importedComponents;if(O){let D=[H,H.toLowerCase(),j(H),_(H)];for(let v of D)if(O.has(v)){L=O.get(v);break}}let F=[];if(!L){let D=[`${H}.stx`,`${j(H)}.stx`,`${_(H)}.stx`],v=[...new Set(D)],u=J.__originalFilePath,f=[];if(u){let w0=g.join(g.dirname(u),"components");f.push(w0)}if(Y)f.push(Y);let o=Q._rootComponentsDir;if(typeof o==="string"&&!f.includes(o))f.push(o);let Z0=g.join(g.dirname(G),"components");if(!f.includes(Z0))f.push(Z0);if(Q.componentsDir&&Q.componentsDir!==Y&&!f.includes(Q.componentsDir))f.push(Q.componentsDir);let n0=Q._pluginComponentDirs;if(Array.isArray(n0)){for(let w0 of n0)if(typeof w0==="string"&&!f.includes(w0))f.push(w0)}let b0=typeof Q.root==="string"?g.resolve(Q.root):void 0,x0=b0??g.dirname(G),r0=[];if(b0)r0.push(g.resolve(b0,"resources/views/components")),r0.push(g.resolve(b0,"resources/components")),r0.push(g.resolve(b0,"src/components")),r0.push(g.resolve(b0,"components"));r0.push(g.resolve(import.meta.dir,"components"));for(let w0 of r0)if(!f.includes(w0))f.push(w0);let z5=[...new Set(f.map((w0)=>{if(!w0)return w0;return g.isAbsolute(w0)?w0:g.resolve(x0,w0)}))];f.length=0,f.push(...z5);let H1=`${H}\x00${G}\x00${z5.join("\x00")}`,O1=rX.get(H1);if(O1)if(await p(O1))L=O1;else rX.delete(H1);if(!L&&(H.startsWith("./")||H.startsWith("../")))L=g.resolve(g.dirname(G),`${H}.stx`),F.push(L);else if(!L)for(let w0 of f){if(!w0)continue;for(let t0 of v){let i=g.join(w0,t0);if(F.push(i),await p(i)){L=i;break}}if(L)break;if(!L)try{let t0=await import("fs");if(!t0.statSync(w0,{throwIfNoEntry:!1})?.isDirectory())continue;let e0=8,x1=[{path:w0,depth:0}];while(x1.length>0&&!L){let Q1=x1.pop();if(Q1.depth>=e0)continue;let s7;try{s7=t0.readdirSync(Q1.path,{withFileTypes:!0})}catch{continue}for(let a7 of s7){if(!a7.isDirectory())continue;if(a7.name==="node_modules"||a7.name.startsWith("."))continue;let c4=g.join(Q1.path,a7.name);for(let DK of v){let K$=g.join(c4,DK);if(F.push(K$),await p(K$)){L=K$;break}}if(L)break;x1.push({path:c4,depth:Q1.depth+1})}}}catch{}if(L)break}if(L)rX.set(H1,L)}if(!L||!await p(L)){let D=F.length>0?`
|
|
11628
11633
|
Searched paths:
|
|
11629
11634
|
${F.map((v)=>` - ${v}`).join(`
|
|
11630
|
-
`)}`:"";return`[Error loading component: ENOENT: no such file or directory, open '${X}']${D}`}K.add(L);let V;if(nX.has(L))V=nX.get(L);else try{V=await Bun.file(L).text(),nX.set(L,V)}catch(D){return`[Error loading component: ${D instanceof Error?D.message:String(D)}]`}let A=new Set(["__originalFilePath","__importedComponents",LX]),R={};for(let[D,v]of Object.entries(J))if(!D.startsWith("__")||A.has(D))R[D]=v;let{extractSlotContent:
|
|
11631
|
-
`)}`}if(Z&&l.includes("{{ text || slot }}"))l=l.replace(/\{\{\s*text\s*\|\|\s*slot\s*\}\}/g,()=>Z);let{applySlots:j0}=await t("stx/slots",()=>Promise.resolve().then(() => (q9(),Q9))),{defaultSlot:m0,namedSlots:_1}=
|
|
11632
|
-
${F5("const",[...a2,...
|
|
11635
|
+
`)}`:"";return`[Error loading component: ENOENT: no such file or directory, open '${X}']${D}`}K.add(L);let V;if(nX.has(L))V=nX.get(L);else try{V=await Bun.file(L).text(),nX.set(L,V)}catch(D){return`[Error loading component: ${D instanceof Error?D.message:String(D)}]`}let A=new Set(["__originalFilePath","__importedComponents",LX]),R={};for(let[D,v]of Object.entries(J))if(!D.startsWith("__")||A.has(D))R[D]=v;let{extractSlotContent:T}=await t("stx/slots",()=>Promise.resolve().then(() => (q9(),Q9))),N=T(Z),k={};if(N.defaultSlot?.trim())k.default=N.defaultSlot;for(let[D,v]of N.namedSlots)k[D]=v.content;let M={...R,...$,props:$,slot:Z,$slots:k,__processedComponents:w,__sections:{},__stx_signals_gate:W1(V)||qz(Z)};Gz(V,M);let y=V,I=NX(y);if(I)y=I.content.trim();let C=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,S=[...V.matchAll(C)],b=[],P=S.some((D)=>/\bserver\b/.test(D[1]||"")&&/\bcache\b/.test(D[1]||""))&&S.every((D)=>/\bserver\b/.test(D[1]||"")),x=null,d=null;if(P){let D=Xz({props:$,slot:Z,buildMode:Q.buildMode??"",skipEventDirectives:Q.skipEventDirectives===!0});if(D!==null){x=`${L}\x00${D}`;let v=b9.get(x);if(v){for(let u of v.dependencies)K.add(u);return v.output}d=new Set(K)}}for(let D of S){let v=D[1]||"",u=D[2]||"",f=v.includes("server");if(d1(v)&&u.trim())u=m1(u);if(f&&u)try{await U(u,M,L)}catch(Z0){}if(!f){let Z0=u.replace(/^\s*const\s*\{[^}]+\}\s*=\s*window\.stx\s*;?\s*\n?/gm,""),n0=Z0.includes("{{")&&Z0.includes("}}"),b0=Z0.includes("{!!")&&Z0.includes("!!}");if(n0||b0)Z0=RX(Z0,M);let x0=v.replace(/\s*\bts\b/g,"").replace(/\s*\blang\s*=\s*["']?(ts|typescript)["']?/gi,"");b.push(`<script${x0}>${Z0}</script>`)}}let m=V.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),Y0=m?m[1]:"",d0=m?m[2]:"",F0="",i0=Y0&&/\bscoped\b/i.test(Y0);if(m)F0=`<style${Y0}>${d0}</style>`;let l=y;if(l=l.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),m)l=l.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");{let D=/@push\s*\(\s*['"]styles['"]\s*\)([\s\S]*?)@endpush/gi,v=[];if(l=l.replace(D,(u,f)=>{let o=f.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i);if(o)v.push(`<style${o[1]}>${o[2]}</style>`);return""}),l=l.replace(/@push\s*\(\s*['"][^'"]+['"]\s*\)[\s\S]*?@endpush/gi,""),v.length>0)F0=`${F0}${v.join(`
|
|
11636
|
+
`)}`}if(Z&&l.includes("{{ text || slot }}"))l=l.replace(/\{\{\s*text\s*\|\|\s*slot\s*\}\}/g,()=>Z);let{applySlots:j0}=await t("stx/slots",()=>Promise.resolve().then(() => (q9(),Q9))),{defaultSlot:m0,namedSlots:_1}=N;l=await j0(l,m0,_1,M);let W5=b.some((D)=>/\b(?:state|derived|effect|ref|reactive|computed|watch|watchEffect|useReactiveProp|defineProps|withDefaults|defineEmits|defineExpose|defineSlots)\s*(?:<[^<>()]*>)?\s*\(/.test(D)),w5=Kz(b);if(w5.length>0)M.__stx_client_signal_names=w5;let r={...Q,_rootComponentsDir:Q._rootComponentsDir||Q.componentsDir,componentsDir:g.dirname(L),skipSignalsRuntime:!0,skipEventDirectives:W5||b.length===0,defaultLayout:void 0};M.__stxProcessingDepth=(J.__stxProcessingDepth||0)+1;let a=await R0(l,M,L,r,K),K0=new Set(Array.isArray(J.__stx_preserved_client_expressions)?J.__stx_preserved_client_expressions:[]);for(let D of a.matchAll(/\{\{([\s\S]*?)\}\}/g))K0.add(D[1].trim());if(K0.size>0)J.__stx_preserved_client_expressions=[...K0];let T0=`stx_${H.replace(/[^a-zA-Z0-9]/g,"_")}_${++ew}_${Math.random().toString(36).slice(2,8)}`,J0=a;if(W5){let D="";if(Object.keys($).length>0)try{D=` data-stx-props="${qY(JSON.stringify($))}"`}catch{}let v=B?` stx-hydrate="${qY(B)}"`:"";J0=`<div data-stx-scope="${T0}"${D}${v}>${a}</div>`;let u=await Promise.all(b.map(async(f)=>{let o=f.match(/<script([^>]*)>([\s\S]*)<\/script>/i);if(!o)return f;let[,Z0,n0]=o,b0=_X(n0,{filePath:L,projectRoot:process.cwd()}),x0=b0.code,r0=HX(b0.styles);x0=A5(x0).code;let{hasUserImports:z5,bundleClientScript:H1}=await t("stx/client-script-bundler",()=>Promise.resolve().then(() => (B7(),j7)));if(z5(x0))x0=await H1(x0,L,{projectRoot:process.cwd(),minify:Q.buildMode==="compile"});let{rewriteStxImportSpecifiers:O1}=await t("stx/signal-processing",()=>Promise.resolve().then(() => (y7(),iX)));x0=x0.replace(/^\s*import\s+(?:type\s+)?\{([^}]*)\}\s+from\s+['"](?:stx|@stacksjs\/stx|@stacksjs\/browser)['"]\s*;?\s*$/gm,(Q1,s7)=>O1(s7));let w0=f0(x0),t0=Zz(w0),i=`function(__scopeId) {
|
|
11637
|
+
${F5("const",[...a2,...t0],w0)}
|
|
11633
11638
|
const __scope = window.stx._scopes = window.stx._scopes || {};
|
|
11634
11639
|
const __scopeVars = __scope[__scopeId] = __scope[__scopeId] || {};
|
|
11640
|
+
__scopeVars.$refs = __scopeVars.$refs || {};
|
|
11635
11641
|
const __previousCurrentElement = window.__STX_CURRENT_ELEMENT__;
|
|
11636
11642
|
window.__STX_CURRENT_ELEMENT__ = document.querySelector('[data-stx-scope="' + __scopeId + '"]');
|
|
11637
11643
|
|
|
@@ -11647,7 +11653,7 @@ ${w0}
|
|
|
11647
11653
|
// Register all defined signals and functions in this scope
|
|
11648
11654
|
const __localVars = {};
|
|
11649
11655
|
try {
|
|
11650
|
-
${
|
|
11656
|
+
${t0.map((Q1)=>`if (typeof ${Q1} !== 'undefined') __localVars['${Q1}'] = ${Q1};`).join(`
|
|
11651
11657
|
`)}
|
|
11652
11658
|
}
|
|
11653
11659
|
catch (e) {}
|
|
@@ -11656,13 +11662,13 @@ catch (e) {}
|
|
|
11656
11662
|
finally {
|
|
11657
11663
|
window.__STX_CURRENT_ELEMENT__ = __previousCurrentElement;
|
|
11658
11664
|
}
|
|
11659
|
-
}`,
|
|
11665
|
+
}`,e0=B?null:E6(J,i),x1=e0?`window.__stxComponentFactories[${JSON.stringify(e0)}](${JSON.stringify(T0)});`:`(${i})(${JSON.stringify(T0)});`;if(B)return`${r0}<script type="stx/island" data-stx-island="${T0}" data-stx-scoped${Z0}>${x1}</script>`;return`${r0}<script data-stx-scoped data-stx-run="always"${Z0}>${x1}</script>`}));if(J0=J0+`
|
|
11660
11666
|
`+u.join(`
|
|
11661
11667
|
`),F0)J0+=`
|
|
11662
11668
|
`+F0}else{if(F0)J0+=`
|
|
11663
11669
|
`+F0;if(b.length>0){let D=M.__stx_event_bindings||[],v=O7(M),u=await Promise.all(b.map(async(f)=>{let o=f.match(/<script\b[^>]*>([\s\S]*?)<\/script>/);if(!o)return f;return await L7(o[1],{eventBindings:D,templateContent:J0,filePath:L,projectRoot:process.cwd(),serverData:v})}));J0+=`
|
|
11664
11670
|
`+u.join(`
|
|
11665
|
-
`),M.__stx_event_bindings=[]}}if(
|
|
11671
|
+
`),M.__stx_event_bindings=[]}}if(i0){let D=TX(J0,L);if(D.hasScoped)J0=D.html}if(x&&d)b9.set(x,{output:J0,dependencies:[...K].filter((D)=>!d.has(D))});return J0}catch(j){return`[Error processing component: ${j instanceof Error?j.message:String(j)}]`}finally{W.delete(X)}}async function p(X){return Bun.file(X).exists()}function S9(X,$){let Z=g.resolve($),Y=g.resolve(X),J=Z.endsWith(g.sep)?Z:Z+g.sep;if(Y===Z||Y.startsWith(J))return Y;return null}async function C9(X,$,Z,Y){let J=await Uz(X,$,Z,Y);if(J===null)return null;let G=S9(J,process.cwd());if(G)return G;let Q=[Z.root,Z.layoutsDir,Z.componentsDir,Z.partialsDir,Z.pagesDir].filter((q)=>typeof q==="string"&&q.length>0);for(let q of Q){let K=g.isAbsolute(q)?q:g.resolve(process.cwd(),q);if(S9(J,K))return g.resolve(J)}return console.warn(`[stx] rejected resolved template path that escapes project root: ${J} (template: ${X}, from: ${$})`),null}async function Uz(X,$,Z,Y){if(Z.debug)console.log(`Resolving template path: ${X} from ${$}`);let J=g.dirname($),G=process.cwd();if(X.startsWith("/")){let z=g.join(G,X),B=S9(z,G);if(!B)return console.warn(`[stx] rejected template path that escapes project root: ${X} (from ${$})`),null;if(Z.debug)console.log(`Checking absolute path: ${B}`);if(await p(B)&&Y)Y.add(B);return B}let Q=g.join(J,X);if(await p(Q)){if(Z.debug)console.log(`Found direct path: ${Q}`);if(Y)Y.add(Q);return Q}if(!X.endsWith(".stx")&&!X.endsWith(".jsx")&&!X.endsWith(".tsx"))for(let z of[".stx",".tsx",".jsx"]){let B=`${Q}${z}`;if(await p(B)){if(Z.debug)console.log(`Found direct path with extension: ${B}`);if(Y)Y.add(B);return B}}let q="",K=g.resolve(J),U=process.cwd();for(let z=0;z<10;z++){let B=g.join(K,"layouts"),j=!1;try{j=tw.statSync(B,{throwIfNoEntry:!1})?.isDirectory()??!1}catch{}if(j){q=B;break}let _=g.dirname(K);if(_===K||_.length<U.length)break;K=_}if(q){let z=X.startsWith("layouts/")?X.slice(8):X,B=g.join(q,z);if(await p(B)){if(Z.debug)console.log(`Found in current layouts dir: ${B}`);if(Y)Y.add(B);return B}if(!z.endsWith(".stx")){let j=`${B}.stx`;if(await p(j)){if(Z.debug)console.log(`Found in current layouts dir with extension: ${j}`);if(Y)Y.add(j);return j}}}if(Z.layoutsDir){let z=g.isAbsolute(Z.layoutsDir)?Z.layoutsDir:g.resolve(process.cwd(),Z.layoutsDir),B=X.startsWith("layouts/")?X.slice(8):X,j=g.join(z,B);if(await p(j)){if(Z.debug)console.log(`Found in options.layoutsDir: ${j}`);if(Y)Y.add(j);return j}if(!X.endsWith(".stx")){let _=`${j}.stx`;if(await p(_)){if(Z.debug)console.log(`Found in options.layoutsDir with extension: ${_}`);if(Y)Y.add(_);return _}}}if(X.startsWith("layouts/")||X.includes("/layouts/")){let z=X.split("layouts/"),B=g.join(Z.partialsDir||J,"layouts",z[1]);if(await p(B)){if(Z.debug)console.log(`Found in layouts path: ${B}`);if(Y)Y.add(B);return B}if(!B.endsWith(".stx")){let j=`${B}.stx`;if(await p(j)){if(Z.debug)console.log(`Found in layouts path with extension: ${j}`);if(Y)Y.add(j);return j}}}if(Z.partialsDir){if(q=g.join(Z.partialsDir,"layouts"),await p(q)){let z=g.join(q,X);if(await p(z)){if(Z.debug)console.log(`Found in partials layouts dir: ${z}`);if(Y)Y.add(z);return z}if(!X.endsWith(".stx")){let B=`${z}.stx`;if(await p(B)){if(Z.debug)console.log(`Found in partials layouts dir with extension: ${B}`);if(Y)Y.add(B);return B}}}}let W=Z.partialsDir||g.join(process.cwd(),"views"),w=g.join(W,X);if(await p(w)){if(Z.debug)console.log(`Found in views path: ${w}`);if(Y)Y.add(w);return w}if(!X.endsWith(".stx")){let z=`${w}.stx`;if(await p(z)){if(Z.debug)console.log(`Found in views path with extension: ${z}`);if(Y)Y.add(z);return z}}if(J.includes("temp")){let z=g.join(g.dirname(J),"layouts",X);if(await p(z)){if(Z.debug)console.log(`Found in temp layouts dir: ${z}`);if(Y)Y.add(z);return z}if(!X.endsWith(".stx")){let B=`${z}.stx`;if(await p(B)){if(Z.debug)console.log(`Found in temp layouts dir with extension: ${B}`);if(Y)Y.add(B);return B}}}if(Z.debug)console.warn(`Template not found after trying all paths: ${X} (referenced from ${$})`);else console.warn(`Template not found: ${X} (referenced from ${$})`);return null}function KY(X,$,Z){let Y=0,J="",G="";try{if(typeof $==="number"&&$>=0){let Q=X.split(`
|
|
11666
11672
|
`),q=0;for(let K=0;K<Q.length;K++)if(q+=Q[K].length+1,q>=$){Y=K+1,J=Q[K].trim();let U=Math.max(0,K-2),W=Math.min(Q.length,K+3);G=Q.slice(U,W).map((w,z)=>{let B=U+z+1;return`${B===Y?"> ":" "}${B}: ${w}`}).join(`
|
|
11667
11673
|
`);break}}else if(Z){let Q=X.indexOf(Z);if(Q>=0)return KY(X,Q)}}catch{}return{lineNumber:Y,lineContent:J,context:G}}function U0(X,$,Z,Y,J,G){let{lineNumber:Q,context:q}=KY(Y,J,G),K=Z.split("/").pop(),U=0;if(typeof J==="number"&&J>=0&&Y){let w=Y.lastIndexOf(`
|
|
11668
11674
|
`,Math.max(0,J-1));U=J-(w+1)+1}let W="";if(Q>0)W+=`
|
|
@@ -11677,7 +11683,7 @@ ${e.yellow}${e.bold}Message:${e.reset} ${$}
|
|
|
11677
11683
|
`,q)W+=`
|
|
11678
11684
|
${e.blue}${e.bold}Context:${e.reset}
|
|
11679
11685
|
${e.dim}${q}${e.reset}
|
|
11680
|
-
`;return W}function iZ(){nX.clear(),rX.clear(),b9.clear()}var nX,rX,b9,ew=0,e;var A0=E(()=>{F7();i$();Z1();
|
|
11686
|
+
`;return W}function iZ(){nX.clear(),rX.clear(),b9.clear()}var nX,rX,b9,ew=0,e;var A0=E(()=>{F7();i$();Z1();X1();M5();sX();F1();t$();e$();z7();ZZ();k7();nX=new c1(500),rX=new c1(1000),b9=new c1(2000);e={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",yellow:"\x1B[33m",blue:"\x1B[34m",cyan:"\x1B[36m",gray:"\x1B[90m",bgRed:"\x1B[41m",bgYellow:"\x1B[43m"}});async function UY(X,$,Z=""){let Y=X,J=[],G=/@markdown(?:\([^)]*\))?/g,Q;while((Q=G.exec(X))!==null){let q=Q.index,K=Q[0].match(/@markdown\(([^)]*)\)/),U=K?K[1]:"",W=q+Q[0].length,w=1,z=W,B=-1;while(w>0&&z<X.length){let H=X.indexOf("@markdown",z),L=X.indexOf("@endmarkdown",z);if(L===-1)break;if(H!==-1&&H<L&&H!==q){let O=X[H+9];if(O==="("||O===`
|
|
11681
11687
|
`||O==="\r"||O===" "||O===void 0)w++;z=H+9}else{if(w--,w===0){B=L;break}z=L+12}}if(B===-1)continue;let j=X.slice(W,B),_=X.slice(q,B+12);J.push({fullMatch:_,options:U,content:j,index:q}),G.lastIndex=B+12}for(let{fullMatch:q,options:K,content:U,index:W}of J)try{let w={};if(K)K.split(",").forEach((j)=>{let _=j.trim();if(_)w[_]=!0});let z={gfm:w.gfm??!0,breaks:w.breaks??!1},B=w7(U.trim(),z);Y=Y.split(q).join(B)}catch(w){let z=w instanceof Error?w.message:String(w),B=U0("Markdown Directive",`Error processing markdown: ${z}`,Z,X,W,q);Y=Y.split(q).join(B)}return Y}async function WY(X,$,Z,Y){let J={gfm:!0,breaks:!1};return $.forEach((G)=>{let Q=G.trim().replace(/['"]/g,"");if(Q==="breaks")J.breaks=!0;if(Q==="no-gfm")J.gfm=!1}),w7(X.trim(),J)}var P9=E(()=>{A0()});function zz(X){if(Wz.set(X.name,X),X.client)wz.set(X.name,X.client)}function aX(X){return zz(X),{name:X.name,hasEndTag:X.hasEndTag??!0,description:X.description,handler:async(Z,Y,J,G)=>{let Q=jz(Y,X.defaults);if(X.validate){let K=X.validate(Q);if(K!==!0){let U=typeof K==="string"?K:`Invalid parameters for @${X.name}`;throw Error(U)}}let q=Z;if(X.transform)q=await X.transform(Z,Q,J,G);if(X.clientScript){let K=X.clientScript(Q);q+=`<script>${K}</script>`}if(X.css){let K=X.css(Q);q+=`<style>${K}</style>`}return q}}}function jz(X,$){let Z={...$};for(let Y of X){let J=Y.indexOf(":"),G=Y.indexOf("="),Q=J>=0&&(G<0||J<G)?J:G;if(Q>=0){let q=Y.slice(0,Q).trim(),K=Y.slice(Q+1).trim();if(K==="true")K=!0;else if(K==="false")K=!1;else if(K==="null")K=null;else if(!Number.isNaN(Number(K)))K=Number(K);else if(typeof K==="string"&&K.startsWith("{"))try{K=JSON.parse(K)}catch{}Z[q]=K}else{let q=Object.keys(Z).filter((K)=>!$||!(K in $)).length;Z[q===0?"value":`arg${q}`]=Y}}return Z}var Wz,wz;var v9=E(()=>{Wz=new Map,wz=new Map});function x9(X,$=D5,Z={},Y){return $.sort((J,G)=>J-G).map((J)=>{return`${S7(X,{...Z,w:J,fm:Y})} ${J}w`}).join(", ")}function wY(X,$,Z=Bz,Y={},J){return Z.sort((G,Q)=>G-Q).map((G)=>{let Q=Math.round($*G);return`${S7(X,{...Y,w:Q,dpr:G,fm:J})} ${G}x`}).join(", ")}function f9(X,$="100vw"){if(!X||Object.keys(X).length===0)return $;let Y=Object.entries(X).map(([J,G])=>{let Q=/^\d+$/.test(J)?`${J}px`:J;return{bp:Q,size:G,numericBp:Number.parseInt(Q)||0}}).sort((J,G)=>J.numericBp-G.numericBp).map(({bp:J,size:G})=>`(max-width: ${J}) ${G}`);return Y.push($),Y.join(", ")}function S7(X,$={}){let Z=Object.entries($).filter(([,G])=>G!==void 0&&G!==null).map(([G,Q])=>{if(Array.isArray(Q))return[G,Q.join(",")];return[G,String(Q)]});if(Z.length===0)return X;let Y=Z.map(([G,Q])=>`${G}=${encodeURIComponent(Q)}`).join("&"),J=X.includes("?")?"&":"?";return`${X}${J}${Y}`}function g9(X){return _z[X]||"application/octet-stream"}var D5,Bz,b7,_z;var h9=E(()=>{D5=[320,480,640,768,1024,1280,1536,1920,2560],Bz=[1,1.5,2,3],b7=["avif","webp","jpeg"],_z={avif:"image/avif",webp:"image/webp",jpeg:"image/jpeg",png:"image/png",gif:"image/gif"}});async function Oz(){try{return await import("ts-images")}catch{return null}}async function Lz(X,$={}){let Z={...Hz,...$},Y=await Oz();if(Y)try{return await Fz(X,Z,Y)}catch(J){console.warn(`[stx-media] ts-images placeholder generation failed, using fallback: ${J}`)}return Vz(X,Z)}async function Fz(X,$,Z){let{generatePlaceholder:Y,generateThumbHash:J}=Z,Q={blur:"blur",thumbhash:"thumbhash",blurhash:"thumbhash",pixelate:"pixelate","dominant-color":"dominant-color",none:"blur"}[$.strategy]||"blur";if($.strategy==="thumbhash")return{dataURL:(await J(X)).dataUrl,width:32,height:32,aspectRatio:1,originalWidth:0,originalHeight:0,strategy:"thumbhash"};let q=await Y(X,{width:$.width,height:$.height,quality:$.quality,blurLevel:$.blurLevel,strategy:Q,base64Encode:!0});return{dataURL:q.dataURL,width:q.width,height:q.height,aspectRatio:q.aspectRatio,originalWidth:q.originalWidth,originalHeight:q.originalHeight,strategy:$.strategy,dominantColor:q.dominantColor,css:q.css}}function Vz(X,$){let Z=$.width||20,Y=$.height||Z,J="#e5e7eb",G=`<svg xmlns="http://www.w3.org/2000/svg" width="${Z}" height="${Y}" viewBox="0 0 ${Z} ${Y}"><rect fill="#e5e7eb" width="${Z}" height="${Y}"/></svg>`;return{dataURL:`data:image/svg+xml;charset=utf-8,${encodeURIComponent(G)}`,width:Z,height:Y,aspectRatio:Z/Y,originalWidth:0,originalHeight:0,strategy:$.strategy,dominantColor:"#e5e7eb"}}function zY(X,$,Z={}){let Y=Z.transitionDuration||300,J=Z.easing||"ease-out";return`
|
|
11682
11688
|
#${X} {
|
|
11683
11689
|
--stx-img-transition-duration: ${Y}ms;
|
|
@@ -11724,8 +11730,8 @@ ${e.dim}${q}${e.reset}
|
|
|
11724
11730
|
filter: blur(0);
|
|
11725
11731
|
transform: scale(1);
|
|
11726
11732
|
}
|
|
11727
|
-
`.trim();u9=new Map});import{createHash as HY}from"crypto";import{readFile as Az,stat as OY}from"fs/promises";async function D0(X){try{let $=await Az(X);return HY("sha256").update($).digest("hex").slice(0,16)}catch{return""}}function _Y(X){return HY("sha256").update(X).digest("hex").slice(0,16)}function tX(X,$){let Z=JSON.stringify($,Object.keys($).sort());return`${_Y(X)}-${_Y(Z)}`}async function m9(X){try{return(await OY(X)).mtimeMs}catch{return 0}}async function M0(X){try{return await OY(X),!0}catch{return!1}}var a1=()=>{};import{mkdir as Rz,readFile as Nz,writeFile as Tz,readdir as NR,rm as Mz,stat as TR}from"fs/promises";import{join as FY,dirname as kz}from"path";async function Iz(X){try{await Rz(X,{recursive:!0})}catch{}}function VY(X,$,Z){return FY(X,Z,`${$}.json`)}async function LY(X,$,Z){if((Date.now()-X.createdAt)/86400000>Z)return!1;if(await m9($)!==X.srcMtime)return!1;return!0}async function eX(X,$,Z,Y=l9){if(!Y.enabled)return null;let J=tX(X,$),G=y5.get(J);if(G){if(await LY(G,X,Y.maxAge))return G.lastAccessedAt=Date.now(),G.data;y5.delete(J)}let Q=VY(Y.directory,J,Z);if(await M0(Q))try{let q=await Nz(Q,"utf-8"),K=JSON.parse(q);if(await LY(K,X,Y.maxAge))return K.lastAccessedAt=Date.now(),y5.set(J,K),K.data}catch{}return null}async function X8(X,$,Z,Y,J=l9){if(!J.enabled)return;let G=tX(X,$),Q=await D0(X),q=await m9(X),K={key:G,src:X,srcHash:Q,srcMtime:q,optionsHash:tX("",$),data:Z,createdAt:Date.now(),lastAccessedAt:Date.now()};y5.set(G,K);let U=VY(J.directory,G,Y);try{await Iz(kz(U)),await Tz(U,JSON.stringify(K,null,2))}catch(W){console.warn(`[stx-media] Failed to write cache: ${W}`)}}async function $8(X,$=l9){if(X==="all")y5.clear();else y5.clear();let Z=X==="all"?["image","video"]:[X];for(let Y of Z){let J=FY($.directory,Y);try{await Mz(J,{recursive:!0,force:!0})}catch{}}}var y5,l9;var c9=E(()=>{a1();y5=new Map,l9={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}});class Y8{config;constructor(X={}){this.config={...Ez,...X}}async get(X,$){return eX(X,$,"image",this.config)}async set(X,$,Z){return X8(X,$,Z,"image",this.config)}async clear(){return $8("image",this.config)}updateConfig(X){this.config={...this.config,...X}}}function p9(X){if(!Z8)Z8=new Y8(X);else if(X)Z8.updateConfig(X);return Z8}async function J8(X,$,Z){let Y=Z?{directory:`${Z.outputDir}/../.cache`}:{};return p9(Y).get(X,$)}async function G8(X,$,Z,Y){let J=Y?{directory:`${Y.outputDir}/../.cache`}:{};return p9(J).set(X,$,Z)}async function AY(){return p9().clear()}var Ez,Z8=null;var i9=E(()=>{c9();Ez={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500,cacheVariants:!0,cachePlaceholders:!0}});import{resolve as Dz,basename as yz,extname as bz,join as Sz}from"path";import{mkdir as Cz}from"fs/promises";async function n9(){try{return await import("ts-images")}catch{return null}}function RY(X){switch(X){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 Pz(X,$){let Z=$?RY($):RY("web"),Y=X.formatQuality||{};return{jpeg:{...Z.jpeg,...Y.jpeg},png:{...Z.png,...Y.png},webp:{...Z.webp,...Y.webp},avif:{...Z.avif,...Y.avif}}}async function NY(X,$,Z){let Y=await n9();if(!Y)return console.warn("[stx-media] ts-images not installed, skipping optimization"),{src:X,processed:!1};let J=await J8(X,$,Z);if(J)return J;try{let G=Dz(X);if(!await M0(G))return{src:X,processed:!1,errors:[`Source file not found: ${X}`]};let Q=Pz(Z,$.preset),q=Z.outputDir||"dist/images",K=Z.baseUrl||"/images";await Cz(q,{recursive:!0});let U=await D0(G),W=yz(X,bz(X)),w=$.outputFormat?[$.outputFormat]:Z.defaultFormats||["avif","webp","jpeg"],z={src:X,processed:!0,variants:[],hash:U},B=null;if($.transformations&&$.transformations.length>0)B=await r9(G,$.transformations,Y);for(let j of w){let _=Q[j]||{},H=`${W}-${U}.${j}`,L=Sz(q,H);try{let O=await Y.optimizeImage({input:B||G,output:L,format:j,quality:_.quality,progressive:_.progressive});if(O){if(z.variants.push({path:L,url:`${K}/${H}`,width:O.width||0,height:O.height||0,format:j,size:O.outputSize||0}),!z.originalWidth&&O.width)z.originalWidth=O.width,z.originalHeight=O.height}}catch(O){z.errors=z.errors||[],z.errors.push(`Failed to optimize ${j}: ${O}`)}}if($.embedThumbhash||$.placeholder==="thumbhash")try{let j=await Y.generateThumbHash(G);z.placeholder=j.dataUrl}catch(j){z.errors=z.errors||[],z.errors.push(`Failed to generate thumbhash: ${j}`)}if($.useDominantColor)try{let j=await Y.generatePlaceholder(G,{strategy:"dominant-color"});z.dominantColor=j.dominantColor}catch(j){z.errors=z.errors||[],z.errors.push(`Failed to extract dominant color: ${j}`)}return await G8(X,$,z,Z),z}catch(G){return{src:X,processed:!1,errors:[`Processing failed: ${G}`]}}}async function TY(X,$,Z,Y){let J=await n9();if(!J)return{success:!1,error:"ts-images not installed"};try{return{success:!0,size:(await J.optimizeImage({input:X,output:Y,format:$,quality:Z}))?.outputSize}}catch(G){return{success:!1,error:String(G)}}}async function r9(X,$,Z){let Y=Z||await n9();if(!Y)return console.warn("[stx-media] ts-images not installed, skipping transformations"),null;try{let J=await Y.decode(X);for(let G of $){let Q=G.options||{};switch(G.type){case"resize":if(Q.width||Q.height)J=await Y.resize(J,{width:Q.width,height:Q.height,fit:Q.fit});break;case"blur":if(Q.sigma!==void 0)J=await Y.blur(J,Q.sigma);break;case"sharpen":if(Q.amount!==void 0)J=await Y.sharpen(J,Q.amount);break;case"grayscale":J=await Y.grayscale(J);break;case"rotate":if(Q.angle!==void 0)J=await Y.rotate(J,Q.angle);break;case"flip":J=await Y.flip(J);break;case"flop":J=await Y.flop(J);break;case"brightness":if(Q.value!==void 0)J=await Y.brightness(J,Q.value);break;case"contrast":if(Q.value!==void 0)J=await Y.contrast(J,Q.value);break;case"saturation":if(Q.value!==void 0)J=await Y.saturation(J,Q.value);break}}return await Y.encode(J,"png")}catch(J){return console.error(`[stx-media] Transformation failed: ${J}`),null}}var MY=E(()=>{a1();i9()});import{resolve as vz,basename as xz,extname as fz,join as gz}from"path";import{mkdir as hz}from"fs/promises";async function uz(){try{return await import("ts-images")}catch{return null}}async function kY(X,$,Z){let Y=await uz();if(!Y)return console.warn("[stx-media] ts-images not installed, skipping responsive generation"),null;let J=vz(X);if(!await M0(J))return console.warn(`[stx-media] Source file not found: ${X}`),null;try{let G=$.responsiveWidths||Z.breakpoints||dz,Q=$.formats||Z.defaultFormats||["avif","webp","jpeg"],q=Z.outputDir||"dist/images",K=Z.baseUrl||"/images";await hz(q,{recursive:!0});let U=await D0(J),W=xz(X,fz(X)),w=Z.formatQuality||{jpeg:{quality:82},png:{quality:80},webp:{quality:82},avif:{quality:75}},z={src:X,byFormat:{},srcsets:{}};for(let j of Q){z.byFormat[j]=[];let _=[];for(let H of G){let L=`${W}-${H}w-${U}.${j}`,O=gz(q,L),F=`${K}/${L}`;try{let V=w[j]?.quality||80;if(await M0(O)){z.byFormat[j].push({path:O,url:F,width:H,height:0,format:j,size:0}),_.push(`${F} ${H}w`);continue}let A=await Y.processImage({input:J,output:O,format:j,quality:V,resize:{width:H}});if(A)z.byFormat[j].push({path:O,url:F,width:H,height:A.height||Math.round(H*(A.height||1)/(A.width||1)),format:j,size:A.outputSize||0}),_.push(`${F} ${H}w`)}catch(V){console.warn(`[stx-media] Failed to generate ${j} at ${H}w: ${V}`)}}z.srcsets[j]=_.join(", ")}let B=$.placeholder||Z.placeholderStrategy||"thumbhash";if(B!=="none")try{if(B==="thumbhash"){let j=await Y.generateThumbHash(J);z.placeholder={dataURL:j.dataUrl,width:j.width||32,height:j.height||32,strategy:"thumbhash"}}else{let j=await Y.generatePlaceholder(J,{strategy:B,width:20});z.placeholder={dataURL:j.dataURL,width:j.width,height:j.height,strategy:B}}}catch(j){console.warn(`[stx-media] Failed to generate placeholder: ${j}`)}return z.sizes=$.sizes||mz(G),z}catch(G){return console.error(`[stx-media] Responsive generation failed: ${G}`),null}}function mz(X){let $=[...X].sort((Y,J)=>Y-J),Z=[];for(let Y=0;Y<$.length-1;Y++){let J=$[Y];Z.push(`(max-width: ${J}px) ${J}px`)}return Z.push(`${$[$.length-1]}px`),Z.join(", ")}function IY(X,$="width"){if(!X||X.length===0)return"";if($==="dpr")return X.filter((Z)=>Z.dpr).map((Z)=>`${Z.url} ${Z.dpr}x`).join(", ");return X.map((Z)=>`${Z.url} ${Z.width}w`).join(", ")}var dz;var EY=E(()=>{a1();dz=[320,480,640,768,1024,1280,1536,1920]});var DY={};n(DY,{setCachedImageResult:()=>G8,processImage:()=>NY,optimizeImage:()=>TY,getCachedImageResult:()=>J8,generateSrcset:()=>IY,generateResponsiveVariants:()=>kY,clearImageCache:()=>AY,applyTransformations:()=>r9,ImageProcessorCache:()=>Y8});var yY=E(()=>{MY();EY();i9()});async function lz(){try{return await Promise.resolve().then(() => (yY(),DY))}catch(X){if(!bY)console.warn("[stx-media] Image processor not available, some features disabled:",X),bY=!0;return null}}async function Q8(X,$={}){let Z=$,Y=X;if(Y.process&&!Y.skipOptimization){if(Z.tsImagesConfig?.enabled&&!Z.isDev)return nz(Y,Z)}if(Z.processedResult?.processed)return t9(X,Z.processedResult,$);if(Z.responsiveVariants)return vY(X,Z.responsiveVariants,$);let{src:J,alt:G,width:Q,height:q,sizes:K,widths:U=D5,dpr:W,formats:w=b7,quality:z=o9,params:B={},placeholder:j="none",placeholderOptions:_={},lazy:H=!0,priority:L=!1,loading:O=L?"eager":K8,decoding:F=q8,fetchpriority:V,objectFit:A,objectPosition:R,crossorigin:N,referrerpolicy:T}=X,k=X.class,M=X.style,y=X.id,I=X.data||{},{isDev:C=!1,baseUrl:S=""}=$;if(C&&!$.optimize)return iz(X);let b,P,x=y||`stx-img-${Math.random().toString(36).slice(2,8)}`;if(j!=="none"&&!L)try{b=await jY(J,{strategy:j,..._}),P=zY(x,b,_)}catch{}let d=W!==void 0&&Q!==void 0,m;if(d)m=pz(X,x,b,$);else m=await cz(X,x,b,$);let Y0;if(L){let p0=w.includes("webp")?"webp":w[0],l=x9(J,U,{...B,q:z},p0),j0=typeof K==="object"?f9(K):K||"100vw";Y0=`<link rel="preload" as="image" imagesrcset="${l}" imagesizes="${j0}" />`}let d0=[];if(!SY&&j!=="none")d0.push(d9),SY=!0;if(P)d0.push(P);let F0=H?PY(x):void 0;return{html:m,preloadLink:Y0,css:d0.length>0?d0.join(`
|
|
11728
|
-
`):void 0,script:F0}}async function cz(X,$,Z,Y){let{src:J,alt:G,width:Q,height:q,sizes:K,widths:U=D5,formats:W=b7,quality:w=o9,params:z={},lazy:B=!0,priority:j=!1,loading:_=j?"eager":K8,decoding:H=q8,fetchpriority:L,objectFit:O,objectPosition:F,crossorigin:V,referrerpolicy:A}=X,R=X.class,
|
|
11733
|
+
`.trim();u9=new Map});import{createHash as HY}from"crypto";import{readFile as Az,stat as OY}from"fs/promises";async function D0(X){try{let $=await Az(X);return HY("sha256").update($).digest("hex").slice(0,16)}catch{return""}}function _Y(X){return HY("sha256").update(X).digest("hex").slice(0,16)}function tX(X,$){let Z=JSON.stringify($,Object.keys($).sort());return`${_Y(X)}-${_Y(Z)}`}async function m9(X){try{return(await OY(X)).mtimeMs}catch{return 0}}async function M0(X){try{return await OY(X),!0}catch{return!1}}var a1=()=>{};import{mkdir as Rz,readFile as Tz,writeFile as Nz,readdir as TR,rm as Mz,stat as NR}from"fs/promises";import{join as FY,dirname as kz}from"path";async function Iz(X){try{await Rz(X,{recursive:!0})}catch{}}function VY(X,$,Z){return FY(X,Z,`${$}.json`)}async function LY(X,$,Z){if((Date.now()-X.createdAt)/86400000>Z)return!1;if(await m9($)!==X.srcMtime)return!1;return!0}async function eX(X,$,Z,Y=l9){if(!Y.enabled)return null;let J=tX(X,$),G=y5.get(J);if(G){if(await LY(G,X,Y.maxAge))return G.lastAccessedAt=Date.now(),G.data;y5.delete(J)}let Q=VY(Y.directory,J,Z);if(await M0(Q))try{let q=await Tz(Q,"utf-8"),K=JSON.parse(q);if(await LY(K,X,Y.maxAge))return K.lastAccessedAt=Date.now(),y5.set(J,K),K.data}catch{}return null}async function X8(X,$,Z,Y,J=l9){if(!J.enabled)return;let G=tX(X,$),Q=await D0(X),q=await m9(X),K={key:G,src:X,srcHash:Q,srcMtime:q,optionsHash:tX("",$),data:Z,createdAt:Date.now(),lastAccessedAt:Date.now()};y5.set(G,K);let U=VY(J.directory,G,Y);try{await Iz(kz(U)),await Nz(U,JSON.stringify(K,null,2))}catch(W){console.warn(`[stx-media] Failed to write cache: ${W}`)}}async function $8(X,$=l9){if(X==="all")y5.clear();else y5.clear();let Z=X==="all"?["image","video"]:[X];for(let Y of Z){let J=FY($.directory,Y);try{await Mz(J,{recursive:!0,force:!0})}catch{}}}var y5,l9;var c9=E(()=>{a1();y5=new Map,l9={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}});class Y8{config;constructor(X={}){this.config={...Ez,...X}}async get(X,$){return eX(X,$,"image",this.config)}async set(X,$,Z){return X8(X,$,Z,"image",this.config)}async clear(){return $8("image",this.config)}updateConfig(X){this.config={...this.config,...X}}}function p9(X){if(!Z8)Z8=new Y8(X);else if(X)Z8.updateConfig(X);return Z8}async function J8(X,$,Z){let Y=Z?{directory:`${Z.outputDir}/../.cache`}:{};return p9(Y).get(X,$)}async function G8(X,$,Z,Y){let J=Y?{directory:`${Y.outputDir}/../.cache`}:{};return p9(J).set(X,$,Z)}async function AY(){return p9().clear()}var Ez,Z8=null;var i9=E(()=>{c9();Ez={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500,cacheVariants:!0,cachePlaceholders:!0}});import{resolve as Dz,basename as yz,extname as bz,join as Sz}from"path";import{mkdir as Cz}from"fs/promises";async function n9(){try{return await import("ts-images")}catch{return null}}function RY(X){switch(X){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 Pz(X,$){let Z=$?RY($):RY("web"),Y=X.formatQuality||{};return{jpeg:{...Z.jpeg,...Y.jpeg},png:{...Z.png,...Y.png},webp:{...Z.webp,...Y.webp},avif:{...Z.avif,...Y.avif}}}async function TY(X,$,Z){let Y=await n9();if(!Y)return console.warn("[stx-media] ts-images not installed, skipping optimization"),{src:X,processed:!1};let J=await J8(X,$,Z);if(J)return J;try{let G=Dz(X);if(!await M0(G))return{src:X,processed:!1,errors:[`Source file not found: ${X}`]};let Q=Pz(Z,$.preset),q=Z.outputDir||"dist/images",K=Z.baseUrl||"/images";await Cz(q,{recursive:!0});let U=await D0(G),W=yz(X,bz(X)),w=$.outputFormat?[$.outputFormat]:Z.defaultFormats||["avif","webp","jpeg"],z={src:X,processed:!0,variants:[],hash:U},B=null;if($.transformations&&$.transformations.length>0)B=await r9(G,$.transformations,Y);for(let j of w){let _=Q[j]||{},H=`${W}-${U}.${j}`,L=Sz(q,H);try{let O=await Y.optimizeImage({input:B||G,output:L,format:j,quality:_.quality,progressive:_.progressive});if(O){if(z.variants.push({path:L,url:`${K}/${H}`,width:O.width||0,height:O.height||0,format:j,size:O.outputSize||0}),!z.originalWidth&&O.width)z.originalWidth=O.width,z.originalHeight=O.height}}catch(O){z.errors=z.errors||[],z.errors.push(`Failed to optimize ${j}: ${O}`)}}if($.embedThumbhash||$.placeholder==="thumbhash")try{let j=await Y.generateThumbHash(G);z.placeholder=j.dataUrl}catch(j){z.errors=z.errors||[],z.errors.push(`Failed to generate thumbhash: ${j}`)}if($.useDominantColor)try{let j=await Y.generatePlaceholder(G,{strategy:"dominant-color"});z.dominantColor=j.dominantColor}catch(j){z.errors=z.errors||[],z.errors.push(`Failed to extract dominant color: ${j}`)}return await G8(X,$,z,Z),z}catch(G){return{src:X,processed:!1,errors:[`Processing failed: ${G}`]}}}async function NY(X,$,Z,Y){let J=await n9();if(!J)return{success:!1,error:"ts-images not installed"};try{return{success:!0,size:(await J.optimizeImage({input:X,output:Y,format:$,quality:Z}))?.outputSize}}catch(G){return{success:!1,error:String(G)}}}async function r9(X,$,Z){let Y=Z||await n9();if(!Y)return console.warn("[stx-media] ts-images not installed, skipping transformations"),null;try{let J=await Y.decode(X);for(let G of $){let Q=G.options||{};switch(G.type){case"resize":if(Q.width||Q.height)J=await Y.resize(J,{width:Q.width,height:Q.height,fit:Q.fit});break;case"blur":if(Q.sigma!==void 0)J=await Y.blur(J,Q.sigma);break;case"sharpen":if(Q.amount!==void 0)J=await Y.sharpen(J,Q.amount);break;case"grayscale":J=await Y.grayscale(J);break;case"rotate":if(Q.angle!==void 0)J=await Y.rotate(J,Q.angle);break;case"flip":J=await Y.flip(J);break;case"flop":J=await Y.flop(J);break;case"brightness":if(Q.value!==void 0)J=await Y.brightness(J,Q.value);break;case"contrast":if(Q.value!==void 0)J=await Y.contrast(J,Q.value);break;case"saturation":if(Q.value!==void 0)J=await Y.saturation(J,Q.value);break}}return await Y.encode(J,"png")}catch(J){return console.error(`[stx-media] Transformation failed: ${J}`),null}}var MY=E(()=>{a1();i9()});import{resolve as vz,basename as xz,extname as fz,join as gz}from"path";import{mkdir as hz}from"fs/promises";async function uz(){try{return await import("ts-images")}catch{return null}}async function kY(X,$,Z){let Y=await uz();if(!Y)return console.warn("[stx-media] ts-images not installed, skipping responsive generation"),null;let J=vz(X);if(!await M0(J))return console.warn(`[stx-media] Source file not found: ${X}`),null;try{let G=$.responsiveWidths||Z.breakpoints||dz,Q=$.formats||Z.defaultFormats||["avif","webp","jpeg"],q=Z.outputDir||"dist/images",K=Z.baseUrl||"/images";await hz(q,{recursive:!0});let U=await D0(J),W=xz(X,fz(X)),w=Z.formatQuality||{jpeg:{quality:82},png:{quality:80},webp:{quality:82},avif:{quality:75}},z={src:X,byFormat:{},srcsets:{}};for(let j of Q){z.byFormat[j]=[];let _=[];for(let H of G){let L=`${W}-${H}w-${U}.${j}`,O=gz(q,L),F=`${K}/${L}`;try{let V=w[j]?.quality||80;if(await M0(O)){z.byFormat[j].push({path:O,url:F,width:H,height:0,format:j,size:0}),_.push(`${F} ${H}w`);continue}let A=await Y.processImage({input:J,output:O,format:j,quality:V,resize:{width:H}});if(A)z.byFormat[j].push({path:O,url:F,width:H,height:A.height||Math.round(H*(A.height||1)/(A.width||1)),format:j,size:A.outputSize||0}),_.push(`${F} ${H}w`)}catch(V){console.warn(`[stx-media] Failed to generate ${j} at ${H}w: ${V}`)}}z.srcsets[j]=_.join(", ")}let B=$.placeholder||Z.placeholderStrategy||"thumbhash";if(B!=="none")try{if(B==="thumbhash"){let j=await Y.generateThumbHash(J);z.placeholder={dataURL:j.dataUrl,width:j.width||32,height:j.height||32,strategy:"thumbhash"}}else{let j=await Y.generatePlaceholder(J,{strategy:B,width:20});z.placeholder={dataURL:j.dataURL,width:j.width,height:j.height,strategy:B}}}catch(j){console.warn(`[stx-media] Failed to generate placeholder: ${j}`)}return z.sizes=$.sizes||mz(G),z}catch(G){return console.error(`[stx-media] Responsive generation failed: ${G}`),null}}function mz(X){let $=[...X].sort((Y,J)=>Y-J),Z=[];for(let Y=0;Y<$.length-1;Y++){let J=$[Y];Z.push(`(max-width: ${J}px) ${J}px`)}return Z.push(`${$[$.length-1]}px`),Z.join(", ")}function IY(X,$="width"){if(!X||X.length===0)return"";if($==="dpr")return X.filter((Z)=>Z.dpr).map((Z)=>`${Z.url} ${Z.dpr}x`).join(", ");return X.map((Z)=>`${Z.url} ${Z.width}w`).join(", ")}var dz;var EY=E(()=>{a1();dz=[320,480,640,768,1024,1280,1536,1920]});var DY={};n(DY,{setCachedImageResult:()=>G8,processImage:()=>TY,optimizeImage:()=>NY,getCachedImageResult:()=>J8,generateSrcset:()=>IY,generateResponsiveVariants:()=>kY,clearImageCache:()=>AY,applyTransformations:()=>r9,ImageProcessorCache:()=>Y8});var yY=E(()=>{MY();EY();i9()});async function lz(){try{return await Promise.resolve().then(() => (yY(),DY))}catch(X){if(!bY)console.warn("[stx-media] Image processor not available, some features disabled:",X),bY=!0;return null}}async function Q8(X,$={}){let Z=$,Y=X;if(Y.process&&!Y.skipOptimization){if(Z.tsImagesConfig?.enabled&&!Z.isDev)return nz(Y,Z)}if(Z.processedResult?.processed)return t9(X,Z.processedResult,$);if(Z.responsiveVariants)return vY(X,Z.responsiveVariants,$);let{src:J,alt:G,width:Q,height:q,sizes:K,widths:U=D5,dpr:W,formats:w=b7,quality:z=o9,params:B={},placeholder:j="none",placeholderOptions:_={},lazy:H=!0,priority:L=!1,loading:O=L?"eager":K8,decoding:F=q8,fetchpriority:V,objectFit:A,objectPosition:R,crossorigin:T,referrerpolicy:N}=X,k=X.class,M=X.style,y=X.id,I=X.data||{},{isDev:C=!1,baseUrl:S=""}=$;if(C&&!$.optimize)return iz(X);let b,P,x=y||`stx-img-${Math.random().toString(36).slice(2,8)}`;if(j!=="none"&&!L)try{b=await jY(J,{strategy:j,..._}),P=zY(x,b,_)}catch{}let d=W!==void 0&&Q!==void 0,m;if(d)m=pz(X,x,b,$);else m=await cz(X,x,b,$);let Y0;if(L){let i0=w.includes("webp")?"webp":w[0],l=x9(J,U,{...B,q:z},i0),j0=typeof K==="object"?f9(K):K||"100vw";Y0=`<link rel="preload" as="image" imagesrcset="${l}" imagesizes="${j0}" />`}let d0=[];if(!SY&&j!=="none")d0.push(d9),SY=!0;if(P)d0.push(P);let F0=H?PY(x):void 0;return{html:m,preloadLink:Y0,css:d0.length>0?d0.join(`
|
|
11734
|
+
`):void 0,script:F0}}async function cz(X,$,Z,Y){let{src:J,alt:G,width:Q,height:q,sizes:K,widths:U=D5,formats:W=b7,quality:w=o9,params:z={},lazy:B=!0,priority:j=!1,loading:_=j?"eager":K8,decoding:H=q8,fetchpriority:L,objectFit:O,objectPosition:F,crossorigin:V,referrerpolicy:A}=X,R=X.class,T=X.style,N=X.data||{},k=typeof K==="object"?f9(K):K||"100vw",M=[];for(let C of W){let S=x9(J,U,{...z,q:w},C),b=g9(C);if(B&&!j)M.push(` <source type="${b}" data-srcset="${S}" data-sizes="${k}" />`);else M.push(` <source type="${b}" srcset="${S}" sizes="${k}" />`)}let y=s9({src:S7(J,{...z,q:w}),alt:G,width:Q,height:q,loading:j?void 0:_,decoding:H,fetchpriority:j?"high":L,objectFit:O,objectPosition:F,crossorigin:V,referrerpolicy:A,className:CY(R,Z),style:a9(T,O,F,Z),lazy:B&&!j,data:N}),I;if(Z){let C=`background-image: url('${Z.dataURL}'); background-size: cover; background-position: center;`;I=`<div id="${$}" class="stx-img-placeholder" style="${C}">
|
|
11729
11735
|
<picture>
|
|
11730
11736
|
${M.join(`
|
|
11731
11737
|
`)}
|
|
@@ -11735,9 +11741,9 @@ ${M.join(`
|
|
|
11735
11741
|
${M.join(`
|
|
11736
11742
|
`)}
|
|
11737
11743
|
<img ${y} />
|
|
11738
|
-
</picture>`;return I}function pz(X,$,Z,Y){let{src:J,alt:G,width:Q,height:q,dpr:K=[1,2,3],quality:U=o9,params:W={},lazy:w=!0,priority:z=!1,loading:B=z?"eager":K8,decoding:j=q8,fetchpriority:_,objectFit:H,objectPosition:L,crossorigin:O,referrerpolicy:F}=X,V=X.class,A=X.style,R=X.data||{},
|
|
11744
|
+
</picture>`;return I}function pz(X,$,Z,Y){let{src:J,alt:G,width:Q,height:q,dpr:K=[1,2,3],quality:U=o9,params:W={},lazy:w=!0,priority:z=!1,loading:B=z?"eager":K8,decoding:j=q8,fetchpriority:_,objectFit:H,objectPosition:L,crossorigin:O,referrerpolicy:F}=X,V=X.class,A=X.style,R=X.data||{},T=typeof Q==="number"?Q:Number.parseInt(String(Q),10),N=wY(J,T,K,{...W,q:U}),k=s9({src:S7(J,{...W,w:T,q:U}),alt:G,width:Q,height:q,loading:z?void 0:B,decoding:j,fetchpriority:z?"high":_,objectFit:H,objectPosition:L,crossorigin:O,referrerpolicy:F,className:CY(V,Z),style:a9(A,H,L,Z),lazy:w&&!z,data:R}),M=w&&!z?`data-srcset="${N}"`:`srcset="${N}"`;if(Z){let y=`background-image: url('${Z.dataURL}'); background-size: cover; background-position: center;`;return`<div id="${$}" class="stx-img-placeholder" style="${y}">
|
|
11739
11745
|
<img ${k} ${M} />
|
|
11740
|
-
</div>`}return`<img ${$?`id="${$}" `:""}${k} ${M} />`}function iz(X){let{src:$,alt:Z,width:Y,height:J,loading:G=K8,decoding:Q=q8,fetchpriority:q,objectFit:K,objectPosition:U,crossorigin:W,referrerpolicy:w,priority:z=!1}=X,B=X.class,j=X.style,_=X.id,H=X.data||{};return{html:`<img ${s9({src:$,alt:Z,width:Y,height:J,loading:z?"eager":G,decoding:Q,fetchpriority:z?"high":q,objectFit:K,objectPosition:U,crossorigin:W,referrerpolicy:w,className:B,style:a9(j,K,U),id:_,data:H})} />`}}function s9(X){let $=[];if(X.lazy)$.push(`data-src="${
|
|
11746
|
+
</div>`}return`<img ${$?`id="${$}" `:""}${k} ${M} />`}function iz(X){let{src:$,alt:Z,width:Y,height:J,loading:G=K8,decoding:Q=q8,fetchpriority:q,objectFit:K,objectPosition:U,crossorigin:W,referrerpolicy:w,priority:z=!1}=X,B=X.class,j=X.style,_=X.id,H=X.data||{};return{html:`<img ${s9({src:$,alt:Z,width:Y,height:J,loading:z?"eager":G,decoding:Q,fetchpriority:z?"high":q,objectFit:K,objectPosition:U,crossorigin:W,referrerpolicy:w,className:B,style:a9(j,K,U),id:_,data:H})} />`}}function s9(X){let $=[];if(X.lazy)$.push(`data-src="${s0(X.src)}"`),$.push('src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"');else $.push(`src="${s0(X.src)}"`);if($.push(`alt="${s0(X.alt)}"`),X.width)$.push(`width="${X.width}"`);if(X.height)$.push(`height="${X.height}"`);if(X.loading)$.push(`loading="${X.loading}"`);if(X.decoding)$.push(`decoding="${X.decoding}"`);if(X.fetchpriority)$.push(`fetchpriority="${X.fetchpriority}"`);if(X.crossorigin)$.push(`crossorigin="${X.crossorigin}"`);if(X.referrerpolicy)$.push(`referrerpolicy="${X.referrerpolicy}"`);if(X.className)$.push(`class="${s0(X.className)}"`);if(X.style)$.push(`style="${s0(X.style)}"`);if(X.id)$.push(`id="${s0(X.id)}"`);if(X.data)for(let[Z,Y]of Object.entries(X.data))$.push(`data-${Z}="${s0(Y)}"`);if(X.lazy)$.push("data-stx-lazy");return $.join(" ")}function CY(X,$){let Z=[];if(X)Z.push(X);if($)Z.push("stx-img-blur");return Z.join(" ")||""}function a9(X,$,Z,Y){let J=[];if($)J.push(`object-fit: ${$}`);if(Z)J.push(`object-position: ${Z}`);if(Y)J.push("opacity: 0; transition: opacity 300ms ease-out");if(X)J.push(X);return J.join("; ")}function s0(X){return X.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function PY(X){return`
|
|
11741
11747
|
(function() {
|
|
11742
11748
|
const container = document.getElementById('${X}');
|
|
11743
11749
|
if (!container) return;
|
|
@@ -11774,22 +11780,22 @@ ${M.join(`
|
|
|
11774
11780
|
|
|
11775
11781
|
observer.observe(container);
|
|
11776
11782
|
})();
|
|
11777
|
-
`.trim()}async function nz(X,$){let Z=await lz();if(!Z)return Q8({...X,process:!1},$);let Y=$.tsImagesConfig;if(X.responsiveWidths&&X.responsiveWidths.length>0||X.widths&&X.widths.length>0||!X.width&&!X.dpr){let G=await Z.generateResponsiveVariants(X.src,X,Y);if(G)return vY(X,G,$)}else{let G=await Z.processImage(X.src,X,Y);if(G.processed)return t9(X,G,$)}return Q8({...X,process:!1},$)}async function t9(X,$,Z){let{alt:Y,width:J,height:G,lazy:Q=!0,priority:q=!1,objectFit:K,objectPosition:U,crossorigin:W,referrerpolicy:w}=X,z=X.class,B=X.style,j=X.id||`stx-img-${Math.random().toString(36).slice(2,8)}`,_=X.data||{},H=$.variants||[],L=H.find((P)=>P.format==="jpeg")||H.find((P)=>P.format==="webp")||H[0],O=L?.url||X.src,F=H.filter((P)=>P.format===(L?.format||"jpeg")).map((P)=>`${P.url} ${P.width}w`).join(", "),V=new Map;for(let P of H){if(!V.has(P.format))V.set(P.format,[]);V.get(P.format).push(P)}let A=[],R=["avif","webp","jpeg","png"];for(let P of R){let x=V.get(P);if(x&&x.length>0){let d=x.map((Y0)=>`${Y0.url} ${Y0.width}w`).join(", "),m=g9(P);if(Q&&!q)A.push(` <source type="${m}" data-srcset="${d}" />`);else A.push(` <source type="${m}" srcset="${d}" />`)}}let
|
|
11783
|
+
`.trim()}async function nz(X,$){let Z=await lz();if(!Z)return Q8({...X,process:!1},$);let Y=$.tsImagesConfig;if(X.responsiveWidths&&X.responsiveWidths.length>0||X.widths&&X.widths.length>0||!X.width&&!X.dpr){let G=await Z.generateResponsiveVariants(X.src,X,Y);if(G)return vY(X,G,$)}else{let G=await Z.processImage(X.src,X,Y);if(G.processed)return t9(X,G,$)}return Q8({...X,process:!1},$)}async function t9(X,$,Z){let{alt:Y,width:J,height:G,lazy:Q=!0,priority:q=!1,objectFit:K,objectPosition:U,crossorigin:W,referrerpolicy:w}=X,z=X.class,B=X.style,j=X.id||`stx-img-${Math.random().toString(36).slice(2,8)}`,_=X.data||{},H=$.variants||[],L=H.find((P)=>P.format==="jpeg")||H.find((P)=>P.format==="webp")||H[0],O=L?.url||X.src,F=H.filter((P)=>P.format===(L?.format||"jpeg")).map((P)=>`${P.url} ${P.width}w`).join(", "),V=new Map;for(let P of H){if(!V.has(P.format))V.set(P.format,[]);V.get(P.format).push(P)}let A=[],R=["avif","webp","jpeg","png"];for(let P of R){let x=V.get(P);if(x&&x.length>0){let d=x.map((Y0)=>`${Y0.url} ${Y0.width}w`).join(", "),m=g9(P);if(Q&&!q)A.push(` <source type="${m}" data-srcset="${d}" />`);else A.push(` <source type="${m}" srcset="${d}" />`)}}let T=[];if(Q&&!q){if(T.push(`data-src="${s0(O)}"`),T.push('src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"'),F)T.push(`data-srcset="${F}"`)}else if(T.push(`src="${s0(O)}"`),F)T.push(`srcset="${F}"`);T.push(`alt="${s0(Y)}"`);let N=J||$.originalWidth,k=G||$.originalHeight;if(N)T.push(`width="${N}"`);if(k)T.push(`height="${k}"`);if(!q)T.push(`loading="${Q?"lazy":"eager"}"`);if(T.push('decoding="async"'),q)T.push('fetchpriority="high"');if(W)T.push(`crossorigin="${W}"`);if(w)T.push(`referrerpolicy="${w}"`);let M=[];if(K)M.push(`object-fit: ${K}`);if(U)M.push(`object-position: ${U}`);if($.placeholder&&Q)M.push("opacity: 0; transition: opacity 300ms ease-out");if(B)M.push(B);if(M.length>0)T.push(`style="${M.join("; ")}"`);let y=[];if(z)y.push(z);if($.placeholder)y.push("stx-img-blur");if(y.length>0)T.push(`class="${y.join(" ")}"`);if(Q&&!q)T.push("data-stx-lazy");for(let[P,x]of Object.entries(_))T.push(`data-${P}="${s0(x)}"`);let I;if($.placeholder||$.dominantColor&&X.useDominantColor){let P=$.placeholder?`background-image: url('${$.placeholder}'); background-size: cover; background-position: center;`:`background-color: ${$.dominantColor};`;I=`<div id="${j}" class="stx-img-placeholder" style="${P}">
|
|
11778
11784
|
<picture>
|
|
11779
11785
|
${A.join(`
|
|
11780
11786
|
`)}
|
|
11781
|
-
<img ${
|
|
11787
|
+
<img ${T.join(" ")} />
|
|
11782
11788
|
</picture>
|
|
11783
11789
|
</div>`}else I=`<picture${j?` id="${j}"`:""}>
|
|
11784
11790
|
${A.join(`
|
|
11785
11791
|
`)}
|
|
11786
|
-
<img ${
|
|
11792
|
+
<img ${T.join(" ")} />
|
|
11787
11793
|
</picture>`;let C=[];if($.placeholder)C.push(d9);let S=Q?PY(j):void 0,b;if(q&&F)b=`<link rel="preload" as="image" imagesrcset="${F}" />`;return{html:I,preloadLink:b,css:C.length>0?C.join(`
|
|
11788
11794
|
`):void 0,script:S}}async function vY(X,$,Z){let Y={src:$.src,processed:!0,variants:[],placeholder:$.placeholder?.dataURL,originalWidth:$.placeholder?.width,originalHeight:$.placeholder?.height};for(let[J,G]of Object.entries($.byFormat))if(G)Y.variants.push(...G);return t9(X,Y,Z)}var bY=!1,o9=80,q8="async",K8="lazy",SY=!1;var xY=E(()=>{h9();BY()});function rz(){return aX({name:"img",hasEndTag:!1,description:"Render an optimized responsive image with srcset and lazy loading",transform:async(X,$,Z,Y)=>{let{src:J,alt:G,options:Q}=oz(X,$,Z);if(!J)return console.warn("@img directive: missing src argument"),"<!-- @img: missing src -->";let q={src:J,alt:G||"",widths:Q.widths||D5,formats:Q.formats||b7,quality:Q.quality,sizes:Q.sizes,dpr:Q.dpr,params:Q.params,placeholder:Q.placeholder,placeholderOptions:Q.placeholderOptions,lazy:Q.lazy!==!1,priority:Q.priority||!1,loading:Q.loading,decoding:Q.decoding,fetchpriority:Q.fetchpriority,objectFit:Q.objectFit,objectPosition:Q.objectPosition,class:Q.class,style:Q.style,id:Q.id,width:Q.width,height:Q.height},K=Z.__isDev||!1,U=await Q8(q,{isDev:K}),W=U.html;if(U.preloadLink)W=U.preloadLink+`
|
|
11789
11795
|
`+W;if(U.css)W+=`
|
|
11790
11796
|
<style>${U.css}</style>`;if(U.script)W+=`
|
|
11791
|
-
<script>${U.script}</script>`;return W},defaults:{src:"",alt:"",options:{lazy:!0,placeholder:"none"}}})}function oz(X,$,Z){if($.src)return{src:String($.src),alt:String($.alt||""),options:$.options||{}};let Y=X.trim();if(Y.startsWith("@img(")||Y.startsWith("("))Y=Y.replace(/^@img\(/,"").replace(/^\(/,"").replace(/\)$/,"");let J=sz(Y),G=e9(J[0],Z)||"",Q=e9(J[1],Z)||"",q={};if(J[2]){let K=e9(J[2],Z);if(typeof K==="object"&&K!==null)q=K;else if(typeof J[2]==="string")try{q=JSON.parse(J[2])}catch{}}return{src:G,alt:Q,options:q}}function sz(X){let $=[],Z="",Y=!1,J="",G=0,Q=0;for(let q=0;q<X.length;q++){let K=X[q],U=q>0?X[q-1]:"";if((K==='"'||K==="'"||K==="`")&&U!=="\\"){if(!Y)Y=!0,J=K;else if(K===J)Y=!1,J="";else Z+=K;continue}if(!Y){if(K==="{")G++;if(K==="}")G--;if(K==="[")Q++;if(K==="]")Q--;if(K===","&&G===0&&Q===0){$.push(Z.trim()),Z="";continue}}Z+=K}if(Z.trim())$.push(Z.trim());return $}function e9(X,$){if(typeof X!=="string")return X;let Z=X.trim();if(Z.startsWith('"')&&Z.endsWith('"')||Z.startsWith("'")&&Z.endsWith("'"))return Z.slice(1,-1);if(!Z.startsWith("/")&&!Z.startsWith(".")&&!Z.startsWith("http")&&!Z.startsWith("{")){let Y=$[Z];if(Y!==void 0)return Y}if(Z.startsWith("{")||Z.startsWith("["))try{return JSON.parse(Z)}catch{}return Z}var fY;var gY=E(()=>{v9();xY();h9();fY=rz()});class W8{config;constructor(X={}){this.config={...az,...X}}async get(X,$){return eX(X,$,"video",this.config)}async set(X,$,Z){return X8(X,$,Z,"video",this.config)}async clear(){return $8("video",this.config)}updateConfig(X){this.config={...this.config,...X}}}function X3(X){if(!U8)U8=new W8(X);else if(X)U8.updateConfig(X);return U8}async function w8(X,$,Z){let Y=Z?{directory:`${Z.outputDir}/../.cache`}:{};return X3(Y).get(X,$)}async function z8(X,$,Z,Y){let J=Y?{directory:`${Y.outputDir}/../.cache`}:{};return X3(J).set(X,$,Z)}async function hY(){return X3().clear()}var az,U8=null;var $3=E(()=>{c9();az={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:2000,cacheTranscoded:!0,cacheThumbnails:!0,cacheManifests:!0}});import{resolve as Z3,basename as Y3,extname as J3,join as j8}from"path";import{mkdir as G3}from"fs/promises";async function Q3(){try{return await import("ts-videos")}catch{return null}}async function B8(X,$,Z,Y){let J=await Q3();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate poster"),null;try{let G=Z3(X);if(!await M0(G))return null;await G3(Z,{recursive:!0});let Q=await D0(G),q=Y3(X,J3(X)),K=$.format||"webp",U=$.timestamp||0,W=`${q}-poster-${Q}.${K}`,w=j8(Z,W),z=await J.extractThumbnails(G,{timestamps:[U],width:$.width||1280,height:$.height,format:K,quality:$.quality||85,outputDir:Z,outputPattern:W.replace(`.${K}`,"")});if(z&&z.length>0){let B=z[0];return{path:w,url:`${Y}/${W}`,width:B.width||$.width||1280,height:B.height||720,timestamp:U,size:B.size||0}}return null}catch(G){return console.warn(`[stx-media] Failed to generate poster: ${G}`),null}}async function _8(X,$,Z,Y){let J=await Q3();if(!J)return[];try{let G=Z3(X);if(!await M0(G))return[];await G3(Z,{recursive:!0});let Q=await D0(G),q=Y3(X,J3(X)),K=$.format||"webp",w=(await new J.Input(G).getInfo()).duration||60,z=$.count||10,B=$.interval||w/z,j=[];for(let H=0;H<z&&H*B<w;H++)j.push(H*B);let _=await J.extractThumbnails(G,{timestamps:j,width:$.width||320,format:K,quality:$.quality||80,outputDir:Z,outputPattern:`${q}-thumb-${Q}`});if(_&&_.length>0)return _.map((H,L)=>({path:H.path||j8(Z,`${q}-thumb-${Q}-${L}.${K}`),url:`${Y}/${q}-thumb-${Q}-${L}.${K}`,width:H.width||$.width||320,height:H.height||180,timestamp:j[L],size:H.size||0}));return[]}catch(G){return console.warn(`[stx-media] Failed to generate thumbnails: ${G}`),[]}}async function uY(X,$,Z,Y){let J=await Q3();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate sprite sheet"),null;try{let G=Z3(X);if(!await M0(G))return null;await G3(Z,{recursive:!0});let Q=await D0(G),q=Y3(X,J3(X)),W=(await new J.Input(G).getInfo()).duration||60,w=$.columns||10,z=$.interval||5,B=$.thumbnailWidth||160,j=$.thumbnailHeight||90,_=$.format||"jpeg",H=Math.ceil(W/z),L=Math.ceil(H/w),O=`${q}-sprite-${Q}.${_}`,F=j8(Z,O),V=[];for(let R=0;R<H;R++)V.push(R*z);let A=await J.extractThumbnails(G,{timestamps:V,width:B,height:j,format:_,quality:$.quality||70,outputDir:j8(Z,".temp")});if(!A||A.length===0)return null;try{let R=await import("ts-images"),
|
|
11792
|
-
`)}async function L8(X,$,Z,Y,J){let G=await iY();if(!G)return console.warn("[stx-media] ts-videos not installed, cannot generate DASH manifest"),null;try{let Q=mY(X);if(!await M0(Q))return null;let q=await D0(Q),K=lY(X,cY(X)),U=t1(Z,`${K}-${q}-dash`);await H8(U,{recursive:!0});let W=$.length>0?$:nY,w=J?.segmentDuration||4,z=J?.minBufferTime||2,_=(await new G.Input(Q).getInfo()).duration||0,H=[],L=[];for(let A of W){let R=t1(U,A.label);await H8(R,{recursive:!0});try{if(await G.generateDASH(Q,{outputDir:R,segmentDuration:w,width:A.width,height:A.height,videoBitrate:A.bitrate,audioBitrate:A.audioBitrate})){if(H.push({bandwidth:A.bitrate,width:A.width,height:A.height||Math.round(A.width*9/16),url:`${Y}/${K}-${q}-dash/${A.label}/video`}),A.audioBitrate)L.push({bandwidth:A.audioBitrate,url:`${Y}/${K}-${q}-dash/${A.label}/audio`})}}catch(
|
|
11797
|
+
<script>${U.script}</script>`;return W},defaults:{src:"",alt:"",options:{lazy:!0,placeholder:"none"}}})}function oz(X,$,Z){if($.src)return{src:String($.src),alt:String($.alt||""),options:$.options||{}};let Y=X.trim();if(Y.startsWith("@img(")||Y.startsWith("("))Y=Y.replace(/^@img\(/,"").replace(/^\(/,"").replace(/\)$/,"");let J=sz(Y),G=e9(J[0],Z)||"",Q=e9(J[1],Z)||"",q={};if(J[2]){let K=e9(J[2],Z);if(typeof K==="object"&&K!==null)q=K;else if(typeof J[2]==="string")try{q=JSON.parse(J[2])}catch{}}return{src:G,alt:Q,options:q}}function sz(X){let $=[],Z="",Y=!1,J="",G=0,Q=0;for(let q=0;q<X.length;q++){let K=X[q],U=q>0?X[q-1]:"";if((K==='"'||K==="'"||K==="`")&&U!=="\\"){if(!Y)Y=!0,J=K;else if(K===J)Y=!1,J="";else Z+=K;continue}if(!Y){if(K==="{")G++;if(K==="}")G--;if(K==="[")Q++;if(K==="]")Q--;if(K===","&&G===0&&Q===0){$.push(Z.trim()),Z="";continue}}Z+=K}if(Z.trim())$.push(Z.trim());return $}function e9(X,$){if(typeof X!=="string")return X;let Z=X.trim();if(Z.startsWith('"')&&Z.endsWith('"')||Z.startsWith("'")&&Z.endsWith("'"))return Z.slice(1,-1);if(!Z.startsWith("/")&&!Z.startsWith(".")&&!Z.startsWith("http")&&!Z.startsWith("{")){let Y=$[Z];if(Y!==void 0)return Y}if(Z.startsWith("{")||Z.startsWith("["))try{return JSON.parse(Z)}catch{}return Z}var fY;var gY=E(()=>{v9();xY();h9();fY=rz()});class W8{config;constructor(X={}){this.config={...az,...X}}async get(X,$){return eX(X,$,"video",this.config)}async set(X,$,Z){return X8(X,$,Z,"video",this.config)}async clear(){return $8("video",this.config)}updateConfig(X){this.config={...this.config,...X}}}function X3(X){if(!U8)U8=new W8(X);else if(X)U8.updateConfig(X);return U8}async function w8(X,$,Z){let Y=Z?{directory:`${Z.outputDir}/../.cache`}:{};return X3(Y).get(X,$)}async function z8(X,$,Z,Y){let J=Y?{directory:`${Y.outputDir}/../.cache`}:{};return X3(J).set(X,$,Z)}async function hY(){return X3().clear()}var az,U8=null;var $3=E(()=>{c9();az={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:2000,cacheTranscoded:!0,cacheThumbnails:!0,cacheManifests:!0}});import{resolve as Z3,basename as Y3,extname as J3,join as j8}from"path";import{mkdir as G3}from"fs/promises";async function Q3(){try{return await import("ts-videos")}catch{return null}}async function B8(X,$,Z,Y){let J=await Q3();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate poster"),null;try{let G=Z3(X);if(!await M0(G))return null;await G3(Z,{recursive:!0});let Q=await D0(G),q=Y3(X,J3(X)),K=$.format||"webp",U=$.timestamp||0,W=`${q}-poster-${Q}.${K}`,w=j8(Z,W),z=await J.extractThumbnails(G,{timestamps:[U],width:$.width||1280,height:$.height,format:K,quality:$.quality||85,outputDir:Z,outputPattern:W.replace(`.${K}`,"")});if(z&&z.length>0){let B=z[0];return{path:w,url:`${Y}/${W}`,width:B.width||$.width||1280,height:B.height||720,timestamp:U,size:B.size||0}}return null}catch(G){return console.warn(`[stx-media] Failed to generate poster: ${G}`),null}}async function _8(X,$,Z,Y){let J=await Q3();if(!J)return[];try{let G=Z3(X);if(!await M0(G))return[];await G3(Z,{recursive:!0});let Q=await D0(G),q=Y3(X,J3(X)),K=$.format||"webp",w=(await new J.Input(G).getInfo()).duration||60,z=$.count||10,B=$.interval||w/z,j=[];for(let H=0;H<z&&H*B<w;H++)j.push(H*B);let _=await J.extractThumbnails(G,{timestamps:j,width:$.width||320,format:K,quality:$.quality||80,outputDir:Z,outputPattern:`${q}-thumb-${Q}`});if(_&&_.length>0)return _.map((H,L)=>({path:H.path||j8(Z,`${q}-thumb-${Q}-${L}.${K}`),url:`${Y}/${q}-thumb-${Q}-${L}.${K}`,width:H.width||$.width||320,height:H.height||180,timestamp:j[L],size:H.size||0}));return[]}catch(G){return console.warn(`[stx-media] Failed to generate thumbnails: ${G}`),[]}}async function uY(X,$,Z,Y){let J=await Q3();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate sprite sheet"),null;try{let G=Z3(X);if(!await M0(G))return null;await G3(Z,{recursive:!0});let Q=await D0(G),q=Y3(X,J3(X)),W=(await new J.Input(G).getInfo()).duration||60,w=$.columns||10,z=$.interval||5,B=$.thumbnailWidth||160,j=$.thumbnailHeight||90,_=$.format||"jpeg",H=Math.ceil(W/z),L=Math.ceil(H/w),O=`${q}-sprite-${Q}.${_}`,F=j8(Z,O),V=[];for(let R=0;R<H;R++)V.push(R*z);let A=await J.extractThumbnails(G,{timestamps:V,width:B,height:j,format:_,quality:$.quality||70,outputDir:j8(Z,".temp")});if(!A||A.length===0)return null;try{let R=await import("ts-images"),T=w*B,N=L*j,k=await R.createSprite({images:A.map((M)=>M.path),columns:w,padding:0,outputPath:F,format:_,quality:$.quality||70});return{url:`${Y}/${O}`,path:F,columns:w,rows:L,thumbnailWidth:B,thumbnailHeight:j,interval:z,totalFrames:H}}catch{return console.warn("[stx-media] ts-images not installed, sprite sheet generation skipped"),null}}catch(G){return console.warn(`[stx-media] Failed to generate sprite sheet: ${G}`),null}}var q3=E(()=>{a1()});import{resolve as mY,basename as lY,extname as cY,join as t1}from"path";import{mkdir as H8,writeFile as pY}from"fs/promises";async function iY(){try{return await import("ts-videos")}catch{return null}}async function O8(X,$,Z,Y,J){let G=await iY();if(!G)return console.warn("[stx-media] ts-videos not installed, cannot generate HLS manifest"),null;try{let Q=mY(X);if(!await M0(Q))return null;let q=await D0(Q),K=lY(X,cY(X)),U=t1(Z,`${K}-${q}-hls`);await H8(U,{recursive:!0});let W=$.length>0?$:nY,w=J?.segmentDuration||6,j=(await new G.Input(Q).getInfo()).duration||0,_=[],H=0;for(let F of W){let V=t1(U,F.label);await H8(V,{recursive:!0});let A=`${F.label}.m3u8`,R=t1(V,A);try{let T=await G.generateHLS(Q,{outputDir:V,segmentDuration:w,width:F.width,height:F.height,videoBitrate:F.bitrate,audioBitrate:F.audioBitrate,playlistName:F.label});if(T)_.push({quality:F,url:`${Y}/${K}-${q}-hls/${F.label}/${A}`,path:R}),H+=T.segmentCount||Math.ceil(j/w)}catch(T){console.warn(`[stx-media] Failed to generate HLS for ${F.label}: ${T}`)}}if(_.length===0)return null;let L=t1(U,"master.m3u8"),O=tz(_,Y,K,q);return await pY(L,O),{manifestUrl:`${Y}/${K}-${q}-hls/master.m3u8`,manifestPath:L,playlists:_,segmentCount:H,duration:j}}catch(Q){return console.warn(`[stx-media] Failed to generate HLS manifest: ${Q}`),null}}function tz(X,$,Z,Y){let J=["#EXTM3U","#EXT-X-VERSION:3"];for(let G of X){let{quality:Q}=G,q=Q.bitrate+(Q.audioBitrate||128000),K=`${Q.width}x${Q.height||Math.round(Q.width*9/16)}`;J.push(`#EXT-X-STREAM-INF:BANDWIDTH=${q},RESOLUTION=${K},NAME="${Q.label}"`,`${Q.label}/${Q.label}.m3u8`)}return J.join(`
|
|
11798
|
+
`)}async function L8(X,$,Z,Y,J){let G=await iY();if(!G)return console.warn("[stx-media] ts-videos not installed, cannot generate DASH manifest"),null;try{let Q=mY(X);if(!await M0(Q))return null;let q=await D0(Q),K=lY(X,cY(X)),U=t1(Z,`${K}-${q}-dash`);await H8(U,{recursive:!0});let W=$.length>0?$:nY,w=J?.segmentDuration||4,z=J?.minBufferTime||2,_=(await new G.Input(Q).getInfo()).duration||0,H=[],L=[];for(let A of W){let R=t1(U,A.label);await H8(R,{recursive:!0});try{if(await G.generateDASH(Q,{outputDir:R,segmentDuration:w,width:A.width,height:A.height,videoBitrate:A.bitrate,audioBitrate:A.audioBitrate})){if(H.push({bandwidth:A.bitrate,width:A.width,height:A.height||Math.round(A.width*9/16),url:`${Y}/${K}-${q}-dash/${A.label}/video`}),A.audioBitrate)L.push({bandwidth:A.audioBitrate,url:`${Y}/${K}-${q}-dash/${A.label}/audio`})}}catch(T){console.warn(`[stx-media] Failed to generate DASH for ${A.label}: ${T}`)}}if(H.length===0)return null;let O=t1(U,"manifest.mpd"),F=ez(H,L,_,w,z);await pY(O,F);let V=[{type:"video",representations:H}];if(L.length>0)V.push({type:"audio",representations:L});return{manifestUrl:`${Y}/${K}-${q}-dash/manifest.mpd`,manifestPath:O,adaptationSets:V,duration:_}}catch(Q){return console.warn(`[stx-media] Failed to generate DASH manifest: ${Q}`),null}}function ez(X,$,Z,Y,J){let G=dY(Z),Q=dY(J),q=`<?xml version="1.0" encoding="UTF-8"?>
|
|
11793
11799
|
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011"
|
|
11794
11800
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
11795
11801
|
xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd"
|
|
@@ -11815,7 +11821,7 @@ ${A.join(`
|
|
|
11815
11821
|
</Representation>
|
|
11816
11822
|
`}q+=` </AdaptationSet>
|
|
11817
11823
|
`}return q+=` </Period>
|
|
11818
|
-
</MPD>`,q}function dY(X){let $=Math.floor(X/3600),Z=Math.floor(X%3600/60),Y=Math.floor(X%60),J="PT";if($>0)J+=`${$}H`;if(Z>0)J+=`${Z}M`;return J+=`${Y}S`,J}var nY;var K3=E(()=>{a1();nY=[{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 rY,basename as Xj,extname as $j,join as Zj}from"path";import{mkdir as Yj}from"fs/promises";async function oY(){try{return await import("ts-videos")}catch{return null}}function Jj(X){switch(X){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 Gj(X){switch(X){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 U3(X){let $=await oY();if(!$)return null;try{let Z=rY(X),J=await new $.Input(Z).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(Z){return console.warn(`[stx-media] Failed to analyze video: ${Z}`),null}}async function sY(X,$,Z,Y){let J=await oY();if(!J)return console.warn("[stx-media] ts-videos not installed, skipping processing"),{src:X,processed:!1};let G=await w8(X,$,Z);if(G)return G;try{let Q=rY(X);if(!await M0(Q))return{src:X,processed:!1,errors:[`Source file not found: ${X}`]};let q=Z.outputDir||"dist/videos",K=Z.baseUrl||"/videos";await Yj(q,{recursive:!0});let U=await D0(Q),W=Xj(X,$j(X)),w={src:X,processed:!0,hash:U};Y?.({percentage:5,stage:"analyzing"}),w.metadata=await U3(Q)||void 0;let z={};if($.quality)z.bitrate=Jj($.quality);if($.platform)Object.assign(z,Gj($.platform));if($.transcode)Object.assign(z,$.transcode);if(Object.keys(z).length>0||$.process){Y?.({percentage:10,stage:"transcoding"});let B=`${W}-${U}.mp4`,j=Zj(q,B);try{let _=await Qj(Q,j,z,J,(H)=>Y?.({percentage:10+H*0.5,stage:"transcoding"}));if(_)w.transcoded={path:j,url:`${K}/${B}`,duration:_.duration,size:_.size,video:{codec:z.codec||"h264",width:_.width,height:_.height,bitrate:_.bitrate,frameRate:_.frameRate},audio:_.audioCodec?{codec:z.audioCodec||"aac",bitrate:z.audioBitrate||128000,sampleRate:z.sampleRate||48000,channels:z.channels||2}:void 0}}catch(_){w.errors=w.errors||[],w.errors.push(`Transcoding failed: ${_}`)}}if($.generatePoster){Y?.({percentage:65,stage:"generating-poster"});let B=typeof $.generatePoster==="object"?$.generatePoster:{timestamp:0},j=await B8(Q,B,q,K);if(j)w.poster=j}if(Z.thumbnails?.enabled){Y?.({percentage:70,stage:"generating-thumbnails"});let B=await _8(Q,Z.thumbnails,q,K);if(B.length>0)w.thumbnails=B}if($.streaming){Y?.({percentage:80,stage:"generating-manifests"});let B=typeof $.streaming==="object"?$.streaming:Z.streaming||{format:"hls"};if(B.format==="hls"||B.format===void 0){let j=await O8(Q,B.qualities||Z.streaming?.defaultQualities||[],q,K);if(j)w.streaming={...w.streaming,hls:j}}if(B.format==="dash"){let j=await L8(Q,B.qualities||Z.streaming?.defaultQualities||[],q,K);if(j)w.streaming={...w.streaming,dash:j}}}if($.spriteSheet)Y?.({percentage:90,stage:"generating-sprite-sheet"});return Y?.({percentage:100,stage:"complete"}),await z8(X,$,w,Z),w}catch(Q){return{src:X,processed:!1,errors:[`Processing failed: ${Q}`]}}}async function Qj(X,$,Z,Y,J){try{let Q=await new Y.Conversion(X,$,{videoCodec:Z.codec,videoBitrate:Z.bitrate,width:Z.maxWidth,height:Z.maxHeight,frameRate:Z.frameRate,audioCodec:Z.audioCodec,audioBitrate:Z.audioBitrate,sampleRate:Z.sampleRate,channels:Z.channels}).run((q)=>{J?.(q.percentage/100)});return{duration:Q.duration||0,size:Q.size||0,width:Q.width||Z.maxWidth||0,height:Q.height||Z.maxHeight||0,bitrate:Q.bitrate||Z.bitrate||0,frameRate:Q.frameRate||Z.frameRate||30,audioCodec:Q.audioCodec}}catch(G){return console.error(`[stx-media] Transcoding failed: ${G}`),null}}var aY=E(()=>{a1();$3();q3();K3()});var tY={};n(tY,{setCachedVideoResult:()=>z8,processVideo:()=>sY,getCachedVideoResult:()=>w8,generateThumbnails:()=>_8,generateSpriteSheet:()=>uY,generatePoster:()=>B8,generateHLSManifest:()=>O8,generateDASHManifest:()=>L8,clearVideoCache:()=>hY,analyzeVideo:()=>U3,VideoProcessorCache:()=>W8});var eY=E(()=>{aY();q3();K3();$3()});async function $J(){try{return await Promise.resolve().then(() => (eY(),tY))}catch(X){if(!XJ)console.warn("[stx-media] Video processor not available, some features disabled:",X),XJ=!0;return null}}async function F8(X,$={}){let Z=$,Y=X;if(Y.process&&!Y.skipProcessing){if(Z.tsVideosConfig?.enabled&&!Z.isDev)return zj(Y,Z)}if(Z.processedResult?.processed)return GJ(X,Z.processedResult,$);let J;if(Y.generatePoster&&Y.src&&!X.poster)J=await jj(Y,Z);let{src:G,sources:Q=[],poster:q,posterPlaceholder:K,controls:U=ZJ,autoplay:W=!1,muted:w=!1,loop:z=!1,preload:B=YJ,playsinline:j=!0,lazy:_=!0,player:H="native",type:L,width:O,height:F,crossorigin:V,disablePictureInPicture:A=!1,disableRemotePlayback:R=!1}=X,
|
|
11824
|
+
</MPD>`,q}function dY(X){let $=Math.floor(X/3600),Z=Math.floor(X%3600/60),Y=Math.floor(X%60),J="PT";if($>0)J+=`${$}H`;if(Z>0)J+=`${Z}M`;return J+=`${Y}S`,J}var nY;var K3=E(()=>{a1();nY=[{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 rY,basename as Xj,extname as $j,join as Zj}from"path";import{mkdir as Yj}from"fs/promises";async function oY(){try{return await import("ts-videos")}catch{return null}}function Jj(X){switch(X){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 Gj(X){switch(X){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 U3(X){let $=await oY();if(!$)return null;try{let Z=rY(X),J=await new $.Input(Z).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(Z){return console.warn(`[stx-media] Failed to analyze video: ${Z}`),null}}async function sY(X,$,Z,Y){let J=await oY();if(!J)return console.warn("[stx-media] ts-videos not installed, skipping processing"),{src:X,processed:!1};let G=await w8(X,$,Z);if(G)return G;try{let Q=rY(X);if(!await M0(Q))return{src:X,processed:!1,errors:[`Source file not found: ${X}`]};let q=Z.outputDir||"dist/videos",K=Z.baseUrl||"/videos";await Yj(q,{recursive:!0});let U=await D0(Q),W=Xj(X,$j(X)),w={src:X,processed:!0,hash:U};Y?.({percentage:5,stage:"analyzing"}),w.metadata=await U3(Q)||void 0;let z={};if($.quality)z.bitrate=Jj($.quality);if($.platform)Object.assign(z,Gj($.platform));if($.transcode)Object.assign(z,$.transcode);if(Object.keys(z).length>0||$.process){Y?.({percentage:10,stage:"transcoding"});let B=`${W}-${U}.mp4`,j=Zj(q,B);try{let _=await Qj(Q,j,z,J,(H)=>Y?.({percentage:10+H*0.5,stage:"transcoding"}));if(_)w.transcoded={path:j,url:`${K}/${B}`,duration:_.duration,size:_.size,video:{codec:z.codec||"h264",width:_.width,height:_.height,bitrate:_.bitrate,frameRate:_.frameRate},audio:_.audioCodec?{codec:z.audioCodec||"aac",bitrate:z.audioBitrate||128000,sampleRate:z.sampleRate||48000,channels:z.channels||2}:void 0}}catch(_){w.errors=w.errors||[],w.errors.push(`Transcoding failed: ${_}`)}}if($.generatePoster){Y?.({percentage:65,stage:"generating-poster"});let B=typeof $.generatePoster==="object"?$.generatePoster:{timestamp:0},j=await B8(Q,B,q,K);if(j)w.poster=j}if(Z.thumbnails?.enabled){Y?.({percentage:70,stage:"generating-thumbnails"});let B=await _8(Q,Z.thumbnails,q,K);if(B.length>0)w.thumbnails=B}if($.streaming){Y?.({percentage:80,stage:"generating-manifests"});let B=typeof $.streaming==="object"?$.streaming:Z.streaming||{format:"hls"};if(B.format==="hls"||B.format===void 0){let j=await O8(Q,B.qualities||Z.streaming?.defaultQualities||[],q,K);if(j)w.streaming={...w.streaming,hls:j}}if(B.format==="dash"){let j=await L8(Q,B.qualities||Z.streaming?.defaultQualities||[],q,K);if(j)w.streaming={...w.streaming,dash:j}}}if($.spriteSheet)Y?.({percentage:90,stage:"generating-sprite-sheet"});return Y?.({percentage:100,stage:"complete"}),await z8(X,$,w,Z),w}catch(Q){return{src:X,processed:!1,errors:[`Processing failed: ${Q}`]}}}async function Qj(X,$,Z,Y,J){try{let Q=await new Y.Conversion(X,$,{videoCodec:Z.codec,videoBitrate:Z.bitrate,width:Z.maxWidth,height:Z.maxHeight,frameRate:Z.frameRate,audioCodec:Z.audioCodec,audioBitrate:Z.audioBitrate,sampleRate:Z.sampleRate,channels:Z.channels}).run((q)=>{J?.(q.percentage/100)});return{duration:Q.duration||0,size:Q.size||0,width:Q.width||Z.maxWidth||0,height:Q.height||Z.maxHeight||0,bitrate:Q.bitrate||Z.bitrate||0,frameRate:Q.frameRate||Z.frameRate||30,audioCodec:Q.audioCodec}}catch(G){return console.error(`[stx-media] Transcoding failed: ${G}`),null}}var aY=E(()=>{a1();$3();q3();K3()});var tY={};n(tY,{setCachedVideoResult:()=>z8,processVideo:()=>sY,getCachedVideoResult:()=>w8,generateThumbnails:()=>_8,generateSpriteSheet:()=>uY,generatePoster:()=>B8,generateHLSManifest:()=>O8,generateDASHManifest:()=>L8,clearVideoCache:()=>hY,analyzeVideo:()=>U3,VideoProcessorCache:()=>W8});var eY=E(()=>{aY();q3();K3();$3()});async function $J(){try{return await Promise.resolve().then(() => (eY(),tY))}catch(X){if(!XJ)console.warn("[stx-media] Video processor not available, some features disabled:",X),XJ=!0;return null}}async function F8(X,$={}){let Z=$,Y=X;if(Y.process&&!Y.skipProcessing){if(Z.tsVideosConfig?.enabled&&!Z.isDev)return zj(Y,Z)}if(Z.processedResult?.processed)return GJ(X,Z.processedResult,$);let J;if(Y.generatePoster&&Y.src&&!X.poster)J=await jj(Y,Z);let{src:G,sources:Q=[],poster:q,posterPlaceholder:K,controls:U=ZJ,autoplay:W=!1,muted:w=!1,loop:z=!1,preload:B=YJ,playsinline:j=!0,lazy:_=!0,player:H="native",type:L,width:O,height:F,crossorigin:V,disablePictureInPicture:A=!1,disableRemotePlayback:R=!1}=X,T=J||q,N=X.class,k=X.style,M=X.id||`stx-video-${Math.random().toString(36).slice(2,8)}`;if(H==="ts-video")return Uj(X,$);if(L&&L!=="video")return Kj(G||"",L,X);let y=Q.length>0?Q:G?[{src:G,type:JJ(G)}]:[],I=[`id="${M}"`];if(U)I.push("controls");if(W)I.push("autoplay");if(w)I.push("muted");if(z)I.push("loop");if(j)I.push("playsinline");if(A)I.push("disablepictureinpicture");if(R)I.push("disableremoteplayback");if(V)I.push(`crossorigin="${V}"`);if(_){if(I.push(`data-preload="${B}"`),I.push('preload="none"'),T)I.push(`data-poster="${L0(T)}"`);I.push("data-stx-lazy")}else if(I.push(`preload="${B}"`),T)I.push(`poster="${L0(T)}"`);if(O)I.push(`width="${O}"`);if(F)I.push(`height="${F}"`);if(N)I.push(`class="${L0(N)}"`);if(k)I.push(`style="${L0(k)}"`);let C=y.map((P)=>{return` <source ${_?`data-src="${L0(P.src)}"`:`src="${L0(P.src)}"`} type="${P.type}"${P.media?` media="${P.media}"`:""} />`}).join(`
|
|
11819
11825
|
`),S=`<video ${I.join(" ")}>
|
|
11820
11826
|
${C}
|
|
11821
11827
|
Your browser does not support the video tag.
|
|
@@ -12023,7 +12029,7 @@ else {
|
|
|
12023
12029
|
.ts-video-player__play-button svg {
|
|
12024
12030
|
margin-left: 4px;
|
|
12025
12031
|
}
|
|
12026
|
-
`.trim();return{html:F,script:V,css:A}}function JJ(X){switch(X.split(".").pop()?.toLowerCase()){case"mp4":return"video/mp4";case"webm":return"video/webm";case"ogg":case"ogv":return"video/ogg";case"mov":return"video/quicktime";case"avi":return"video/x-msvideo";case"mkv":return"video/x-matroska";case"m3u8":return"application/x-mpegURL";default:return"video/mp4"}}function Wj(X){let $=[/youtube\.com\/watch\?v=([^&]+)/,/youtube\.com\/embed\/([^?]+)/,/youtu\.be\/([^?]+)/,/youtube\.com\/v\/([^?]+)/];for(let Z of $){let Y=X.match(Z);if(Y)return Y[1]}return null}function wj(X){let $=X.match(/vimeo\.com\/(\d+)/);return $?$[1]:null}function L0(X){return X.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'")}async function zj(X,$){let Z=await $J();if(!Z)return F8({...X,process:!1},$);let Y=$.tsVideosConfig,J=await Z.processVideo(X.src,X,Y,X.onProcessProgress);if(J.processed)return GJ(X,J,$);return F8({...X,process:!1},$)}async function jj(X,$){let Z=await $J();if(!Z||!X.src)return;let Y=typeof X.generatePoster==="object"?X.generatePoster:{timestamp:0},J=$.tsVideosConfig||{enabled:!0,outputDir:"dist/videos",baseUrl:"/videos"};return(await Z.generatePoster(X.src,Y,J.outputDir,J.baseUrl||"/videos"))?.url}function GJ(X,$,Z){let{controls:Y=ZJ,autoplay:J=!1,muted:G=!1,loop:Q=!1,preload:q=YJ,playsinline:K=!0,lazy:U=!0,width:W,height:w,crossorigin:z,disablePictureInPicture:B=!1,disableRemotePlayback:j=!1}=X,_=X.class,H=X.style,L=X.id||`stx-video-${Math.random().toString(36).slice(2,8)}`,O=X.src,F=JJ(O);if($.transcoded)O=$.transcoded.url,F="video/mp4";let V=$.streaming?.hls||$.streaming?.dash;if(V){if($.streaming?.hls)O=$.streaming.hls.manifestUrl,F="application/x-mpegURL";else if($.streaming?.dash)O=$.streaming.dash.manifestUrl,F="application/dash+xml"}let A=$.poster?.url||X.poster,R=[`id="${L}"`];if(Y)R.push("controls");if(J)R.push("autoplay");if(G)R.push("muted");if(Q)R.push("loop");if(K)R.push("playsinline");if(B)R.push("disablepictureinpicture");if(j)R.push("disableremoteplayback");if(z)R.push(`crossorigin="${z}"`);if(U){if(R.push(`data-preload="${q}"`),R.push('preload="none"'),A)R.push(`data-poster="${L0(A)}"`);R.push("data-stx-lazy")}else if(R.push(`preload="${q}"`),A)R.push(`poster="${L0(A)}"`);let
|
|
12032
|
+
`.trim();return{html:F,script:V,css:A}}function JJ(X){switch(X.split(".").pop()?.toLowerCase()){case"mp4":return"video/mp4";case"webm":return"video/webm";case"ogg":case"ogv":return"video/ogg";case"mov":return"video/quicktime";case"avi":return"video/x-msvideo";case"mkv":return"video/x-matroska";case"m3u8":return"application/x-mpegURL";default:return"video/mp4"}}function Wj(X){let $=[/youtube\.com\/watch\?v=([^&]+)/,/youtube\.com\/embed\/([^?]+)/,/youtu\.be\/([^?]+)/,/youtube\.com\/v\/([^?]+)/];for(let Z of $){let Y=X.match(Z);if(Y)return Y[1]}return null}function wj(X){let $=X.match(/vimeo\.com\/(\d+)/);return $?$[1]:null}function L0(X){return X.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'")}async function zj(X,$){let Z=await $J();if(!Z)return F8({...X,process:!1},$);let Y=$.tsVideosConfig,J=await Z.processVideo(X.src,X,Y,X.onProcessProgress);if(J.processed)return GJ(X,J,$);return F8({...X,process:!1},$)}async function jj(X,$){let Z=await $J();if(!Z||!X.src)return;let Y=typeof X.generatePoster==="object"?X.generatePoster:{timestamp:0},J=$.tsVideosConfig||{enabled:!0,outputDir:"dist/videos",baseUrl:"/videos"};return(await Z.generatePoster(X.src,Y,J.outputDir,J.baseUrl||"/videos"))?.url}function GJ(X,$,Z){let{controls:Y=ZJ,autoplay:J=!1,muted:G=!1,loop:Q=!1,preload:q=YJ,playsinline:K=!0,lazy:U=!0,width:W,height:w,crossorigin:z,disablePictureInPicture:B=!1,disableRemotePlayback:j=!1}=X,_=X.class,H=X.style,L=X.id||`stx-video-${Math.random().toString(36).slice(2,8)}`,O=X.src,F=JJ(O);if($.transcoded)O=$.transcoded.url,F="video/mp4";let V=$.streaming?.hls||$.streaming?.dash;if(V){if($.streaming?.hls)O=$.streaming.hls.manifestUrl,F="application/x-mpegURL";else if($.streaming?.dash)O=$.streaming.dash.manifestUrl,F="application/dash+xml"}let A=$.poster?.url||X.poster,R=[`id="${L}"`];if(Y)R.push("controls");if(J)R.push("autoplay");if(G)R.push("muted");if(Q)R.push("loop");if(K)R.push("playsinline");if(B)R.push("disablepictureinpicture");if(j)R.push("disableremoteplayback");if(z)R.push(`crossorigin="${z}"`);if(U){if(R.push(`data-preload="${q}"`),R.push('preload="none"'),A)R.push(`data-poster="${L0(A)}"`);R.push("data-stx-lazy")}else if(R.push(`preload="${q}"`),A)R.push(`poster="${L0(A)}"`);let T=W||$.metadata?.width,N=w||$.metadata?.height;if(T)R.push(`width="${T}"`);if(N)R.push(`height="${N}"`);if(_)R.push(`class="${L0(_)}"`);if(H)R.push(`style="${L0(H)}"`);let M=` <source ${U?`data-src="${L0(O)}"`:`src="${L0(O)}"`} type="${F}" />`,y=`<video ${R.join(" ")}>
|
|
12027
12033
|
${M}
|
|
12028
12034
|
Your browser does not support the video tag.
|
|
12029
12035
|
</video>`;if($.spriteSheet)y=`<div class="stx-video-wrapper" data-sprite-sheet="${L0($.spriteSheet.url)}" data-sprite-cols="${$.spriteSheet.columns}" data-sprite-interval="${$.spriteSheet.interval}">
|
|
@@ -12373,7 +12379,7 @@ catch (error) {
|
|
|
12373
12379
|
init();
|
|
12374
12380
|
}
|
|
12375
12381
|
})();
|
|
12376
|
-
</script>`}function
|
|
12382
|
+
</script>`}function TT(X){return[...X,...z3]}var Vj,Aj,Rj,Tj,z3;var j3=E(()=>{Vj={name:"pwa.installButton",handler:(X,$,Z,Y)=>{let J=Z.__stx_options||{};return Hj(X,J)},hasEndTag:!0,description:"Renders a PWA install prompt button that appears when the app can be installed"},Aj={name:"pwa.updatePrompt",handler:(X,$,Z,Y)=>{let J=Z.__stx_options||{};return Oj(X,J)},hasEndTag:!0,description:"Renders a PWA update notification UI when a new version is available"},Rj={name:"pwa.offlineIndicator",handler:(X,$,Z,Y)=>{let J=Z.__stx_options||{};return Lj(X,J)},hasEndTag:!0,description:"Renders an offline status indicator that shows when the user loses connection"},Tj={name:"pwa.pushSubscribe",handler:(X,$,Z,Y)=>{let J=Z.__stx_options||{};return Fj(X,J)},hasEndTag:!0,description:"Renders a push notification subscription button"},z3=[Vj,Aj,Rj,Tj]});function B3(X){for(let[$,Z]of Object.entries(s))if(Z===X)return $;return}var s;var V8=E(()=>{s={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 C7(){return!1}function P7(){return!C7()||process.env.STX_DEBUG==="true"}function A8(){return!1}import Nj from"path";function R8(){return{..._3}}function T8(X){if(!_3.showRelativePaths||!X)return X;let $=_3.baseDir||process.cwd();try{let Z=Nj.relative($,X);return Z.startsWith("..")?X:Z}catch{return X}}var Mj,_3,N8,e1,M8;var k8=E(()=>{V8();Mj={showRelativePaths:!1,enableAutoRecovery:P7(),logRecoveryWarnings:!0},_3={...Mj};N8=class N8 extends Error{code;filePath;line;column;context;numericCode;constructor(X,$,Z,Y,J,G,Q){super(X);this.code=$;this.filePath=Z;this.line=Y;this.column=J;this.context=G;if(this.name="StxError",this.numericCode=Q||s.EVALUATION_ERROR,this.filePath)this.filePath=T8(this.filePath)}};e1=class e1 extends N8{constructor(X,$,Z,Y,J,G){super(X,"stx_RUNTIME_ERROR",$,Z,Y,J,G||s.EVALUATION_ERROR);this.name="StxRuntimeError"}};M8=class M8 extends N8{isFatal=!0;constructor(X,$,Z,Y,J,G){super(X,"stx_VALIDATION_ERROR",$,Z,Y,J,G||s.DOM_API_VIOLATION);this.name="StxValidationError"}}});function WJ(X){let{type:$,message:Z,code:Y,filePath:J,line:G,column:Q,template:q,offset:K,snippet:U,suggestion:W,format:w="text"}=X,z=G,B=Q;if(!z&&q&&K!==void 0){let O=bj(q,K);z=O.line,B=O.column}let j=J?T8(J):void 0,_=Y?B3(Y):void 0,H={type:$,code:Y,codeName:_,message:Z,filePath:j,line:z,column:B,snippet:U,suggestion:W,timestamp:new Date().toISOString()},L;switch(w){case"html":L=Ij(H);break;case"json":L=JSON.stringify(H,null,2);break;case"console":L=Ej(H,q,K);break;case"text":default:L=kj(H,q,K);break}return{formatted:L,data:H}}function kj(X,$,Z){let Y=[],J=X.code?` [${X.codeName||X.code}]`:"";if(Y.push(`[${X.type} Error${J}]`),X.filePath){let G=X.filePath;if(X.line){if(G+=`:${X.line}`,X.column)G+=`:${X.column}`}Y.push(`at ${G}`)}if(Y.push(`
|
|
12377
12383
|
${X.message}`),$&&X.line){let G=Dj($,X.line,2);if(G)Y.push(`
|
|
12378
12384
|
${G}`)}if(X.snippet)Y.push(`
|
|
12379
12385
|
Snippet: ${X.snippet}`);if(X.suggestion)Y.push(`
|
|
@@ -12397,8 +12403,8 @@ ${"\x1B[31m"}\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\
|
|
|
12397
12403
|
`)}writeToFile(X){this.writeQueue=this.writeQueue.then(async()=>{try{let $=await import("fs"),Y=(await import("path")).dirname(this.logFilePath);if(!$.existsSync(Y))$.mkdirSync(Y,{recursive:!0});await this.rotateIfNeeded($);let J=`${this.formatEntry(X)}
|
|
12398
12404
|
`;$.appendFileSync(this.logFilePath,J,"utf-8")}catch($){if(process.env.STX_DEBUG==="true")console.error("Failed to write to error log:",$)}})}async rotateIfNeeded(X){try{if(!X.existsSync(this.logFilePath))return;if(X.statSync(this.logFilePath).size<this.maxFileSize)return;for(let Z=this.maxLogFiles-1;Z>=1;Z--){let Y=`${this.logFilePath}.${Z}`,J=`${this.logFilePath}.${Z+1}`;if(X.existsSync(Y))if(Z>=this.maxLogFiles-1)X.unlinkSync(Y);else X.renameSync(Y,J)}if(this.maxLogFiles<=1)X.writeFileSync(this.logFilePath,"");else X.renameSync(this.logFilePath,`${this.logFilePath}.1`)}catch($){if(process.env.STX_DEBUG==="true")console.error("Failed to rotate error logs:",$)}}getRecentErrors(X=10){return this.errors.slice(-X)}getErrorsByType(X){return this.errors.filter(($)=>$.error.constructor.name===X)}getErrorsByLevel(X){return this.errors.filter(($)=>$.level===X)}clear(){this.errors.length=0}async clearLogFile(){try{let X=await import("fs");if(X.existsSync(this.logFilePath))X.writeFileSync(this.logFilePath,"","utf-8")}catch(X){if(process.env.STX_DEBUG==="true")console.error("Failed to clear error log:",X)}}getStats(){let X={},$={error:0,warning:0,info:0};for(let Z of this.errors){let Y=Z.error.constructor.name;X[Y]=(X[Y]||0)+1;let J=Z.level||"error";$[J]=($[J]||0)+1}return{total:this.errors.length,byType:X,byLevel:$}}async exportToFile(X,$="json"){let Z=await import("fs"),J=(await import("path")).dirname(X);if(!Z.existsSync(J))Z.mkdirSync(J,{recursive:!0});if($==="json"){let G=this.errors.map((Q)=>({timestamp:Q.timestamp.toISOString(),level:Q.level||"error",type:Q.error.constructor.name,message:Q.error.message,stack:Q.error.stack,context:Q.context}));Z.writeFileSync(X,JSON.stringify(G,null,2),"utf-8")}else{let G=this.errors.map((Q)=>this.formatEntry(Q));Z.writeFileSync(X,G.join(`
|
|
12399
12405
|
|
|
12400
|
-
`),"utf-8")}}async flush(){await this.writeQueue}}var H3,
|
|
12401
|
-
@end${q}`;Y.push(`Added ${W} missing @end${q}`)}}if(Y.length>0&&$.logRecoveryWarnings)console.warn("[stx] Auto-recovery applied fixes:"),Y.forEach((q)=>console.warn(` - ${q}`)),console.warn(" Consider fixing these issues in your template.");return{fixed:Z,fixes:Y}},createFallbackContent(X,$){if(P7())return`<!-- ${X} failed: ${$.message} -->`;return"<!-- stx rendering error -->"}};
|
|
12406
|
+
`),"utf-8")}}async flush(){await this.writeQueue}}var H3,a0,L3;var zJ=E(()=>{k8();H3={isEnabled(){return R8().enableAutoRecovery},fixCommonSyntaxErrors(X){let $=R8();if(!$.enableAutoRecovery)return{fixed:X,fixes:[]};let Z=X,Y=[],J=(Z.match(/\{\{/g)||[]).length,G=(Z.match(/\}\}/g)||[]).length;if(J>G){let q=J-G;Z+="}}".repeat(q),Y.push(`Added ${q} missing closing braces '}}'`)}let Q=["if","foreach","for","switch","section"];for(let q of Q){let K=(Z.match(new RegExp(`@${q}\\b`,"g"))||[]).length,U=(Z.match(new RegExp(`@end${q}\\b`,"g"))||[]).length;if(K>U){let W=K-U;for(let w=0;w<W;w++)Z+=`
|
|
12407
|
+
@end${q}`;Y.push(`Added ${W} missing @end${q}`)}}if(Y.length>0&&$.logRecoveryWarnings)console.warn("[stx] Auto-recovery applied fixes:"),Y.forEach((q)=>console.warn(` - ${q}`)),console.warn(" Consider fixing these issues in your template.");return{fixed:Z,fixes:Y}},createFallbackContent(X,$){if(P7())return`<!-- ${X} failed: ${$.message} -->`;return"<!-- stx rendering error -->"}};a0=new O3,L3={isDevelopment(){return P7()},logDetailedError(X,$){if(!this.isDevelopment())return;if(console.error("=== stx Detailed Error ==="),console.error("Error:",X.message),console.error("Stack:",X.stack),$)console.error("Context:",$);console.error("========================")},createErrorReport(X,$){let Z=["=== stx Error Report ===",`Time: ${new Date().toISOString()}`,`Error: ${X.message}`,`Type: ${X.constructor.name}`,`Stack: ${X.stack}`];if($)Z.push(`Context: ${JSON.stringify($,null,2)}`);return Z.push("========================"),Z.join(`
|
|
12402
12408
|
`)}}});var jJ=()=>{};var BJ=E(()=>{V8();wJ();zJ();jJ();k8()});var w1=E(()=>{BJ()});function _J(X,$,Z,Y){let J=X;J=J.replace(/@meta\(\s*['"]([^'"]+)['"](?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(q,K,U)=>{if(!U&&K.includes(":")){let W=K.split(":"),w=K,z=W.length>1?W[1]:"";if(z&&$[z])U=$[z];else if(w.startsWith("og:")&&$.openGraph&&$.openGraph[W[1]])U=$.openGraph[W[1]];else U="";return U?`<meta property="${c(w)}" content="${c(U)}">`:""}return U?`<meta name="${c(K)}" content="${c(U)}">`:""});let G=/@metaTag\s*\(/g,Q;while((Q=G.exec(J))!==null){let q=Q.index,K=q+Q[0].length-1,U=1,W=K+1;while(W<J.length&&U>0){if(J[W]==="(")U++;else if(J[W]===")"){if(U--,U===0)break}W++}if(U!==0)break;let w=J.substring(K+1,W).trim(),z=W+1,B=(()=>{try{let j=H0(w,$);if(!j)return"";let _="<meta";if(j.name)_+=` name="${c(String(j.name))}"`;if(j.property)_+=` property="${c(String(j.property))}"`;if(j.httpEquiv)_+=` http-equiv="${c(String(j.httpEquiv))}"`;if(j.content)_+=` content="${c(String(j.content))}"`;return _+=">",_}catch(j){let _=j instanceof Error?j.message:String(j);return X0("MetaTag",_,s.EVALUATION_ERROR)}})();J=J.substring(0,q)+B+J.substring(z),G.lastIndex=0}return J}function HJ(X,$,Z){let Y=X,J=/@structuredData\s*\(/g,G;while((G=J.exec(Y))!==null){let Q=G.index,q=Q+G[0].length-1,K=1,U=q+1;while(U<Y.length&&K>0){if(Y[U]==="(")K++;else if(Y[U]===")"){if(K--,K===0)break}U++}if(K!==0)break;let W=Y.substring(q+1,U).trim(),w=U+1,z=(()=>{try{let B=H0(W,$);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 X0("StructuredData",j,s.EVALUATION_ERROR)}})();Y=Y.substring(0,Q)+z+Y.substring(w),J.lastIndex=0}return Y}function OJ(X,$,Z,Y){let J=X,G=/@seo\s*\(\s*\{/g,Q;while((Q=G.exec(J))!==null){let q=J.indexOf("{",Q.index+4),K=1,U=q+1,W=null,w=!1;while(U<J.length&&K>0){let L=J[U];if(w){w=!1,U++;continue}if(L==="\\"&&W){w=!0,U++;continue}if(W){if(L===W)W=null;U++;continue}if(L==='"'||L==="'"||L==="`"){W=L,U++;continue}if(L==="{")K++;else if(L==="}")K--;U++}if(K!==0)break;let z=J.substring(U).match(/^\s*\)/);if(!z)break;let B=U+z[0].length,j=J.substring(q,U),_=J.substring(Q.index,B),H=((L)=>{try{let O=H0(L,$);if(!O)return"";let F="";if(O.title)F+=`<title>${c(O.title)}</title>
|
|
12403
12409
|
`,F+=`<meta name="title" content="${c(O.title)}">
|
|
12404
12410
|
`;if(O.description)F+=`<meta name="description" content="${c(O.description)}">
|
|
@@ -12490,10 +12496,10 @@ ${W}
|
|
|
12490
12496
|
customElements.define('${$}', ${Q});
|
|
12491
12497
|
`}async function AJ(X,$,Z,Y){if($.length<1)return X0("WebComponent","@webcomponent directive requires at least the tag name parameter",s.INVALID_DIRECTIVE_SYNTAX);let J=$[0].replace(/['"]/g,""),Q=(Z.__stx_options||{}).componentsDir||"components",q=[v7.join(v7.dirname(Y),Q,`${J}.stx`),v7.join(process.cwd(),Q,`${J}.stx`),v7.join(v7.dirname(Y),`${J}.stx`)],K=null;for(let w of q)if(await p(w)){K=await Bun.file(w).text();break}if(!K)return X0("WebComponent",`Component file not found: ${J}.stx`,s.FILE_NOT_FOUND);let U=Sj(K,J);return`<script type="module">
|
|
12492
12498
|
${Cj(U)}
|
|
12493
|
-
</script>`}var RJ=E(()=>{w1();A0()});var NJ={};n(NJ,{timingPlugin:()=>gj,pluginManager:()=>Pj,definePlugin:()=>I8,debugPlugin:()=>fj,createVariablesPlugin:()=>hj,createFilterPlugin:()=>xj,createDirectivePlugin:()=>vj,PluginManager:()=>V3});function I8(X){return X}class V3{plugins=new Map;sortedPlugins=[];initialized=!1;async register(X,$){if(this.plugins.has(X.name))throw Error(`Plugin "${X.name}" is already registered`);if(X.dependencies){for(let Z of X.dependencies)if(!this.plugins.has(Z))throw Error(`Plugin "${X.name}" depends on "${Z}" which is not registered`)}if(this.plugins.set(X.name,X),X.onRegister)await X.onRegister($);this.sortPlugins()}async unregister(X){let $=this.plugins.get(X);if(!$)return!1;for(let[Z,Y]of this.plugins)if(Y.dependencies?.includes(X))throw Error(`Cannot unregister "${X}" because "${Z}" depends on it`);if($.onUnregister)await $.onUnregister();return this.plugins.delete(X),this.sortPlugins(),!0}get(X){return this.plugins.get(X)}has(X){return this.plugins.has(X)}getAll(){return[...this.sortedPlugins]}getAllDirectives(){let X=[];for(let $ of this.sortedPlugins)if($.registerDirectives)X.push(...$.registerDirectives());return X}getAllFilters(){let X={};for(let $ of this.sortedPlugins)if($.registerFilters)Object.assign(X,$.registerFilters());return X}async runBeforeProcess(X){return this.runHooks("beforeProcess",X)}async runAfterParse(X){return this.runHooks("afterParse",X)}async runBeforeDirective(X,$){return this.runDirectiveHooks("beforeDirective",X,$)}async runAfterDirective(X,$){return this.runDirectiveHooks("afterDirective",X,$)}async runBeforeRender(X){return this.runHooks("beforeRender",X)}async runAfterRender(X){return this.runHooks("afterRender",X)}async runOnError(X){for(let $ of this.sortedPlugins)if($.onError)try{let Z=await $.onError(X);if(Z){if(Z.template!==void 0)X.template=Z.template;if(Z.context)X.context={...X.context,...Z.context};if(Z.metadata)X.metadata={...X.metadata,...Z.metadata};if(Z.skip)return X}}catch(Z){console.error(`Error in plugin "${$.name}" onError hook:`,Z)}return null}sortPlugins(){this.sortedPlugins=Array.from(this.plugins.values()).sort((X,$)=>(X.priority??100)-($.priority??100))}async runHooks(X,$){let Z={...$};for(let Y of this.sortedPlugins){let J=Y[X];if(J)try{let G=await J(Z);if(G){if(G.template!==void 0)Z.template=G.template;if(G.context)Z.context={...Z.context,...G.context};if(G.metadata)Z.metadata={...Z.metadata,...G.metadata};if(G.skip)break}}catch(G){console.error(`Error in plugin "${Y.name}" ${X} hook:`,G)}}return Z}async runDirectiveHooks(X,$,Z){let Y={...Z};for(let J of this.sortedPlugins){let G=J[X];if(G)try{let Q=await G($,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 "${J.name}" ${X} hook:`,Q)}}return Y}}function vj(X,$,Z={}){return{name:X,...Z,registerDirectives:()=>$}}function xj(X,$,Z={}){return{name:X,...Z,registerFilters:()=>$}}function hj(X){return I8({name:"stx-variables",version:"1.0.0",description:"Adds predefined variables to template context",beforeProcess($){return{context:{...$.context,...X}}}})}var Pj,fj,gj;var TJ=E(()=>{Pj=new V3;fj=I8({name:"stx-debug",version:"1.0.0",description:"Logs all plugin lifecycle events for debugging",priority:0,beforeProcess(X){console.log("[stx-debug] beforeProcess:",X.filePath)},afterParse(X){console.log("[stx-debug] afterParse:",X.template.length,"chars")},beforeDirective(X,$){console.log("[stx-debug] beforeDirective:",X)},afterDirective(X,$){console.log("[stx-debug] afterDirective:",X)},beforeRender(X){console.log("[stx-debug] beforeRender")},afterRender(X){console.log("[stx-debug] afterRender:",X.template.length,"chars")},onError(X){console.error("[stx-debug] onError:",X.error.message,"in phase:",X.phase)}}),gj=I8({name:"stx-timing",version:"1.0.0",description:"Measures template processing time",priority:1,beforeProcess(X){X.metadata.startTime=performance.now()},afterRender(X){let $=X.metadata.startTime;if($){let Z=performance.now()-$;console.log(`[stx-timing] Processing took ${Z.toFixed(2)}ms`)}}})});var EJ={};n(EJ,{validateConfig:()=>ij,resolveStxDirectories:()=>IJ,loadStxConfig:()=>I1,defineStxConfig:()=>pj,defaultConfig:()=>X5,config:()=>_7});import E8 from"fs";import g0 from"path";import{loadConfigWithResult as uj}from"bunfig";function dj(X,$,Z){let Y=$||"pages";if(X)return{root:X,pagesDir:Y};let J=Z||process.cwd(),G=g0.join(J,"resources","views"),Q=g0.join(J,"resources","layouts");if(E8.existsSync(G)&&E8.existsSync(Q))return{root:"resources",pagesDir:"views"};let q=g0.join(J,"resources","views","pages");if(E8.existsSync(q))return{root:"resources/views",pagesDir:Y};return{root:".",pagesDir:Y}}function mj(X,$){let Z=$.replace(/[\\/]+$/,"");if(!Z||Z===".")return!0;let Y=X.replace(/\\/g,"/"),J=Z.replace(/\\/g,"/");return Y===J||Y.startsWith(`${J}/`)}function IJ(X,$){let Z=!X.root,Y=dj(X.root,X.pagesDir,$);if(X.root=Y.root,X.pagesDir=Y.pagesDir,Z&&Y.root!=="."){let J=`${$}::${Y.root}`;if(!MJ.has(J))MJ.add(J),console.warn(`[stx] No "root" in config \u2014 inferred "${Y.root}" from the project layout. Template directories are resolved under it; set root explicitly to pin this.`)}if(X.root&&X.root!=="."){let J=X.root;for(let G of["partialsDir","componentsDir","layoutsDir"]){let Q=X[G];if(typeof Q!=="string"||!Q)continue;if(g0.isAbsolute(Q)||mj(Q,J))continue;X[G]=g0.join(J,Q)}}return X}function lj(X,$){let Z=["componentsDir","layoutsDir","partialsDir"];for(let Y of Z){let J=X[Y];if(typeof J!=="string"||!J)continue;let G=g0.isAbsolute(J)?J:g0.join($,J);if(E8.existsSync(G))continue;let Q=X.root,q=!!Q&&Q!==".";console.warn(`[stx] ${String(Y)} resolves to "${G}", which does not exist. Configured as "${J}"`+(q?`, resolved under root "${Q}".`:"."))}}function cj(X){if(j2(X.stateDir),X.stateDir=t5(),X.cachePath=X7(X.cachePath),X.build)X.build.cacheDir=X7(X.build.cacheDir);if(X.media?.cache)X.media.cache.directory=X7(X.media.cache.directory);if(X.story)X.story.outDir=X7(X.story.outDir)}async function I1(X){if(!X){if(S5)return S5;if(D8)return D8}let $=X?g0.resolve(X):process.cwd(),Z=kJ.get($);if(Z)return Z;let Y=(async()=>{let G=(await uj({name:"stx",alias:"ui",cwd:$,defaultConfig:X5,verbose:!1})).config;if(cj(G),IJ(G,$),lj(G,$),G.plugins&&G.plugins.length>0){let{pluginManager:Q}=await Promise.resolve().then(() => (TJ(),NJ)),q=[],K=[];for(let U of G.plugins){let W=typeof U==="string"?U:U[0],w=typeof U==="string"?{}:U[1]||{};try{let z,B;try{z=await import(W),B=g0.dirname(W0.resolve(W))}catch{let _=g0.resolve(process.cwd(),W);z=await import(_),B=g0.dirname(_)}let j=z.default||z;if(Q.register(j,G),j.components){let _=Array.isArray(j.components)?j.components:[j.components];for(let H of _)q.push(g0.resolve(B,H))}if(j.pages){let _=g0.resolve(B,j.pages),H=w.path||"/";K.push({dir:_,prefix:H})}if(j.setup){let _={addDirective:(H)=>{G.customDirectives=G.customDirectives||[],G.customDirectives.push(H)},addRoute:(H,L)=>{G.apiRoutes=G.apiRoutes||{},G.apiRoutes[H]=L},addMiddleware:(H)=>{G.middleware=G.middleware||[],G.middleware.push(H)},pluginDir:B,config:G};await j.setup(w,_)}console.log(`[stx] Plugin loaded: ${j.name||W}`)}catch(z){console.warn(`[stx] Failed to load plugin ${W}:`,z.message)}}G._pluginComponentDirs=q,G._pluginPageDirs=K}return G})();if(kJ.set($,Y),!X)D8=Y,Y.then((J)=>{S5=J}).catch(()=>{});return Y}function pj(X){return X}function ij(X){let $=[],Z=[];if(X.partialsDir!==void 0&&typeof X.partialsDir!=="string")$.push({path:"partialsDir",message:"partialsDir must be a string",severity:"error"});if(X.componentsDir!==void 0&&typeof X.componentsDir!=="string")$.push({path:"componentsDir",message:"componentsDir must be a string",severity:"error"});if(X.cache!==void 0&&typeof X.cache!=="boolean")$.push({path:"cache",message:"cache must be a boolean",severity:"error"});if(X.debug!==void 0&&typeof X.debug!=="boolean")$.push({path:"debug",message:"debug must be a boolean",severity:"error"});if(X.streaming){if(X.streaming.bufferSize!==void 0){if(typeof X.streaming.bufferSize!=="number"||X.streaming.bufferSize<=0)$.push({path:"streaming.bufferSize",message:"streaming.bufferSize must be a positive number",severity:"error"})}if(X.streaming.timeout!==void 0){if(typeof X.streaming.timeout!=="number"||X.streaming.timeout<=0)$.push({path:"streaming.timeout",message:"streaming.timeout must be a positive number",severity:"error"})}if(X.streaming.strategy!==void 0){let Y=["auto","manual","sections"];if(!Y.includes(X.streaming.strategy))$.push({path:"streaming.strategy",message:`streaming.strategy must be one of: ${Y.join(", ")}`,severity:"error"})}}if(X.i18n){if(X.i18n.format!==void 0){let Y=["json","yaml","yml","js"];if(!Y.includes(X.i18n.format))$.push({path:"i18n.format",message:`i18n.format must be one of: ${Y.join(", ")}`,severity:"error"})}}if(X.animation){if(X.animation.defaultDuration!==void 0){if(typeof X.animation.defaultDuration!=="number"||X.animation.defaultDuration<0)$.push({path:"animation.defaultDuration",message:"animation.defaultDuration must be a non-negative number",severity:"error"})}if(X.animation.staggerDelay!==void 0){if(typeof X.animation.staggerDelay!=="number"||X.animation.staggerDelay<0)$.push({path:"animation.staggerDelay",message:"animation.staggerDelay must be a non-negative number",severity:"error"})}}if(X.a11y){if(X.a11y.level!==void 0){let Y=["AA","AAA"];if(!Y.includes(X.a11y.level))$.push({path:"a11y.level",message:`a11y.level must be one of: ${Y.join(", ")}`,severity:"error"})}}if(X.hydration){if(X.hydration.mode!==void 0){let Y=["progressive","islands"];if(!Y.includes(X.hydration.mode))$.push({path:"hydration.mode",message:`hydration.mode must be one of: ${Y.join(", ")}`,severity:"error"})}if(X.hydration.preload!==void 0){let Y=["none","eager","lazy"];if(!Y.includes(X.hydration.preload))$.push({path:"hydration.preload",message:`hydration.preload must be one of: ${Y.join(", ")}`,severity:"error"})}}if(X.customDirectives)if(!Array.isArray(X.customDirectives))$.push({path:"customDirectives",message:"customDirectives must be an array",severity:"error"});else X.customDirectives.forEach((Y,J)=>{if(!Y.name||typeof Y.name!=="string")$.push({path:`customDirectives[${J}].name`,message:"Custom directive must have a name string",severity:"error"});if(!Y.handler||typeof Y.handler!=="function")$.push({path:`customDirectives[${J}].handler`,message:"Custom directive must have a handler function",severity:"error"})});if(X.middleware)if(!Array.isArray(X.middleware))$.push({path:"middleware",message:"middleware must be an array",severity:"error"});else X.middleware.forEach((Y,J)=>{if(!Y.name||typeof Y.name!=="string")$.push({path:`middleware[${J}].name`,message:"Middleware must have a name string",severity:"error"});if(!Y.handler||typeof Y.handler!=="function")$.push({path:`middleware[${J}].handler`,message:"Middleware must have a handler function",severity:"error"});if(!Y.timing||!["before","after"].includes(Y.timing))$.push({path:`middleware[${J}].timing`,message:'Middleware timing must be "before" or "after"',severity:"error"})});if(X.debug===!0&&X.cache===!0)Z.push({path:"debug+cache",message:"Debug mode with caching enabled may show stale content during development",severity:"warning"});if(X.seo?.enabled===!0&&!X.seo?.defaultConfig?.title)Z.push({path:"seo.defaultConfig.title",message:"SEO is enabled but no default title is set",severity:"warning"});if(X.pwa){if(X.pwa.enabled===!0&&!X.pwa.manifest?.name)$.push({path:"pwa.manifest.name",message:"PWA manifest name is required when PWA is enabled",severity:"error"});if(X.pwa.manifest?.display!==void 0){let Y=["fullscreen","standalone","minimal-ui","browser"];if(!Y.includes(X.pwa.manifest.display))$.push({path:"pwa.manifest.display",message:`PWA display must be one of: ${Y.join(", ")}`,severity:"error"})}if(X.pwa.manifest?.orientation!==void 0){let Y=["portrait","landscape","any","portrait-primary","portrait-secondary","landscape-primary","landscape-secondary"];if(!Y.includes(X.pwa.manifest.orientation))$.push({path:"pwa.manifest.orientation",message:`PWA orientation must be one of: ${Y.join(", ")}`,severity:"error"})}if(X.pwa.routes){let Y=["cache-first","network-first","stale-while-revalidate","network-only","cache-only"];X.pwa.routes.forEach((J,G)=>{if(!J.pattern||typeof J.pattern!=="string")$.push({path:`pwa.routes[${G}].pattern`,message:"PWA route must have a pattern string",severity:"error"});if(!Y.includes(J.strategy))$.push({path:`pwa.routes[${G}].strategy`,message:`PWA route strategy must be one of: ${Y.join(", ")}`,severity:"error"});if(J.maxAgeSeconds!==void 0&&(typeof J.maxAgeSeconds!=="number"||J.maxAgeSeconds<0))$.push({path:`pwa.routes[${G}].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))$.push({path:`pwa.routes[${G}].maxEntries`,message:"PWA route maxEntries must be a positive number",severity:"error"})})}if(X.pwa.icons?.sizes){if(!Array.isArray(X.pwa.icons.sizes))$.push({path:"pwa.icons.sizes",message:"PWA icon sizes must be an array of numbers",severity:"error"});else if(X.pwa.icons.sizes.filter((J)=>typeof J!=="number"||J<16||J>1024).length>0)$.push({path:"pwa.icons.sizes",message:"PWA icon sizes must be numbers between 16 and 1024",severity:"error"})}if(X.pwa.icons?.purpose){let Y=["any","maskable","monochrome"];if(X.pwa.icons.purpose.filter((G)=>!Y.includes(G)).length>0)$.push({path:"pwa.icons.purpose",message:`PWA icon purpose must be one of: ${Y.join(", ")}`,severity:"error"})}if(X.pwa.enabled===!0&&!X.pwa.icons?.src)Z.push({path:"pwa.icons.src",message:"PWA is enabled but no icon source specified. Provide a 512x512 PNG for best results.",severity:"warning"});if(X.pwa.enabled===!0&&!X.pwa.manifest?.themeColor)Z.push({path:"pwa.manifest.themeColor",message:"PWA theme color not set, defaulting to black",severity:"warning"})}return{valid:$.length===0,errors:$,warnings:Z}}var X5,MJ,S5=null,kJ,D8=null,_7;var V1=E(()=>{B$();_$();C$();P$();P9();gY();w3();j3();F3();JX();RJ();X5={enabled:!0,ssr:!1,partialsDir:"partials",componentsDir:"components",layoutsDir:"layouts",defaultLayout:"default",debug:!1,cache:!0,stateDir:B5,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:WY,hasEndTag:!0,description:"Render markdown content to HTML"},{name:"webcomponent",handler:AJ,hasEndTag:!1,description:"Include a web component in the template"},H2,O2,FJ,VJ,L2,V2,A2,F2,p2,r2,fY,W3,...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:"main",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}};MJ=new Set;kJ=new Map;_7=new Proxy(X5,{get(X,$){if(S5&&$ in S5)return S5[$];if(!D8)I1().catch((Z)=>{console.warn("[stx] Failed to load config file:",Z?.message||Z)});return X[$]}})});import q0 from"path";import{hasLocalConfig as nj}from"bunfig";function b8(X){return Bun.hash(X).toString(16).padStart(16,"0").slice(0,16)}function R3(X,$){if($5.has(X))$5.delete(X);else if($5.size>=bJ)$5.delete($5.keys().next().value);$5.set(X,$)}function rj(X){let $=b8(X);if(C5.has($))C5.delete($);else if(C5.size>=bJ)C5.delete(C5.keys().next().value);return C5.set($,X),$}async function oj(X){if(!y1)return null;try{let $=Bun.file(q0.join(y1,`cw-${b8(X)}.css`));if(!await $.exists())return null;return await $.text()}catch{return null}}async function sj(X,$){if(!y1)return;try{if(!fs.existsSync(y1))fs.mkdirSync(y1,{recursive:!0});await Bun.write(q0.join(y1,`cw-${b8(X)}.css`),$)}catch{}}async function yJ(X){try{let $=await import(X);if($&&$.CSSGenerator)return{CSSGenerator:$.CSSGenerator,config:$.config,build:$.build,defaultConfig:$.defaultConfig,extractClasses:$.extractClasses}}catch{}return null}function aj(){let X=[],$=process.cwd();while($!==q0.dirname($))X.push(q0.join($,"node_modules","@cwcss","crosswind","dist","index.js")),X.push(q0.join($,"node_modules","@cwcss","crosswind","src","index.ts")),X.push(q0.join($,"pantry","@cwcss","crosswind","dist","index.js")),X.push(q0.join($,"pantry","@cwcss","crosswind","src","index.ts")),X.push(q0.join($,"node_modules","@stacksjs","crosswind","dist","index.js")),X.push(q0.join($,"pantry","@stacksjs","crosswind","dist","index.js")),$=q0.dirname($);return X}function tj(){let X=[],$=process.env.HOME||process.env.USERPROFILE||"";if($){let Z=[q0.join($,"Code","Tools","crosswind","packages","crosswind","dist","index.js"),q0.join($,"Code","Tools","crosswind","packages","crosswind","src","index.ts"),q0.join($,"repos","stacks-org","crosswind","packages","crosswind","dist","index.js"),q0.join($,"repos","stacks-org","crosswind","packages","crosswind","src","index.ts"),q0.join($,"Code","Tools","stx","packages","stx","node_modules","@cwcss","crosswind","dist","index.js"),q0.join($,"Code","Tools","stx","packages","stx","node_modules","@stacksjs","crosswind","dist","index.js")];X.push(...Z)}return X.push(q0.join(process.cwd(),"..","crosswind","packages","crosswind","dist","index.js")),X.push(q0.join(process.cwd(),"..","crosswind","packages","crosswind","src","index.ts")),X}async function ej(){if(DJ)return z1;DJ=!0;try{let X=async(J)=>{for(let G of J){if(!await Bun.file(G).exists())continue;let Q=await yJ(G);if(Q){if(!process.env.STACKS_DEV_QUIET)console.log(`${V0.green}[Crosswind]${V0.reset} CSS engine loaded from ${q0.dirname(q0.dirname(G))}`);return Q}}return null};if(process.env.CROSSWIND_SRC){let J=q0.resolve(process.env.CROSSWIND_SRC),G=await X([J]);if(!G)throw Error(`CROSSWIND_SRC did not resolve to a Crosswind module: ${J}`);return z1=G,z1}let $=await X(aj());if($)return z1=$,z1;let Z=["@cwcss/crosswind","@cwcss/crosswind/dist/index.js","@stacksjs/crosswind","@stacksjs/crosswind/dist/index.js"];for(let J of Z){let G=await yJ(J);if(G){if(z1=G,!process.env.STACKS_DEV_QUIET)console.log(`${V0.green}[Crosswind]${V0.reset} CSS engine loaded`);return z1}}let Y=await X(tj());if(Y)return z1=Y,z1;throw Error("Crosswind CSSGenerator not found in any location")}catch{return console.warn(`${V0.yellow}[Crosswind] CSS engine not available, Tailwind styles will not be generated${V0.reset}`),console.warn(`${V0.yellow}Run 'bun add @stacksjs/crosswind' to enable CSS generation${V0.reset}`),null}}async function XB(X){try{if(!nj({name:"crosswind",cwd:X}))return null;let{loadConfigWithResult:$}=await import("bunfig"),Z=await $({name:"crosswind",cwd:X,defaultConfig:{},checkEnv:!1,verbose:!1});if(!Z?.path||!Z.config||Object.keys(Z.config).length===0)return null;let Y=q0.relative(X,Z.path);if(!process.env.STACKS_DEV_QUIET)console.log(`${V0.green}[Crosswind]${V0.reset} Loaded config from ${Y||Z.path}`);return Z.config}catch($){if($ instanceof Error&&$.name==="ConfigNotFoundError")return null;return console.warn(`${V0.yellow}[Crosswind]${V0.reset} Failed to load crosswind config:`,$ instanceof Error?$.message:$),null}}function $B(X){let $=new Set,Z=/class\s*=\s*["']([^"']+)["']/gi,Y=Z.exec(X);while(Y!==null){for(let Q of Y[1].split(/\s+/))if(Q.trim())$.add(Q.trim());Y=Z.exec(X)}let J=/(?:x-class|:class)\s*=\s*"([^"]+)"/gi,G=J.exec(X);while(G!==null){let Q=G[1].match(/'([^']+)'/g);if(Q){for(let q of Q)for(let K of q.slice(1,-1).split(/\s+/))if(K.trim())$.add(K.trim())}G=J.exec(X)}return $}async function ZB(X,$){try{let Z=await ej();if(!Z)return"";let Y=typeof Z.extractClasses==="function"?Z.extractClasses(X):$B(X);if(Y.size===0)return"";let J=$?q0.resolve($):process.cwd();if(!y1)y1=e5(J,"cache");let G=[...Y].sort().join(" "),Q=`${A3||"default"}::${G}`,q=$5.get(Q);if(q!==void 0)return R3(Q,q),q;let K=await oj(Q);if(K!==null)return R3(Q,K),K;if(!y8){let V=null;try{let{loadStxConfig:A}=await Promise.resolve().then(() => (V1(),EJ)),R=await A(J);if(R.css)if(typeof R.css==="string"){let N=q0.isAbsolute(R.css)?R.css:q0.resolve(J,R.css);if(await Bun.file(N).exists()){let T=await import(N);V=T.default||T,console.log(`${V0.green}[Crosswind]${V0.reset} Loaded config from stx.config.ts \u2192 ${R.css}`)}}else{if(V={...R.css,content:R.css.content||[],preflight:R.css.preflight??!0,minify:R.css.minify??!1},R.css.config){let N=q0.isAbsolute(R.css.config)?R.css.config:q0.resolve(J,R.css.config);if(await Bun.file(N).exists()){let T=await import(N);V={...T.default||T,...V}}}console.log(`${V0.green}[Crosswind]${V0.reset} Using inline CSS config from stx.config.ts`)}}catch{}y8=V||await XB(J);try{A3=b8(JSON.stringify(y8??{}))}catch{A3="unhashable"}}let U=Z.defaultConfig||Z.config,W=y8||{},w=w2(U,W),{safelist:z,includePreflight:B,minify:j}=w,_=w.config,H=new Z.CSSGenerator(_);for(let V of z)H.generate(V);for(let V of Y)H.generate(V);let L=H.toCSS(B,j),O=_.shortcuts||W.shortcuts||{};for(let[V,A]of Object.entries(O)){if(!Y.has(V)&&!z.includes(V))continue;let R=A.split(/\s+/).filter(Boolean);for(let N of R)H.generate(N)}L=H.toCSS(B,j);let F=L.split(`
|
|
12494
|
-
`);for(let[V,A]of Object.entries(O)){if(!Y.has(V)&&!z.includes(V))continue;let R=A.split(/\s+/).filter(Boolean),
|
|
12495
|
-
.${V} { ${
|
|
12496
|
-
@media (prefers-color-scheme: dark) { .dark .${V} { ${
|
|
12499
|
+
</script>`}var RJ=E(()=>{w1();A0()});var TJ={};n(TJ,{timingPlugin:()=>gj,pluginManager:()=>Pj,definePlugin:()=>I8,debugPlugin:()=>fj,createVariablesPlugin:()=>hj,createFilterPlugin:()=>xj,createDirectivePlugin:()=>vj,PluginManager:()=>V3});function I8(X){return X}class V3{plugins=new Map;sortedPlugins=[];initialized=!1;async register(X,$){if(this.plugins.has(X.name))throw Error(`Plugin "${X.name}" is already registered`);if(X.dependencies){for(let Z of X.dependencies)if(!this.plugins.has(Z))throw Error(`Plugin "${X.name}" depends on "${Z}" which is not registered`)}if(this.plugins.set(X.name,X),X.onRegister)await X.onRegister($);this.sortPlugins()}async unregister(X){let $=this.plugins.get(X);if(!$)return!1;for(let[Z,Y]of this.plugins)if(Y.dependencies?.includes(X))throw Error(`Cannot unregister "${X}" because "${Z}" depends on it`);if($.onUnregister)await $.onUnregister();return this.plugins.delete(X),this.sortPlugins(),!0}get(X){return this.plugins.get(X)}has(X){return this.plugins.has(X)}getAll(){return[...this.sortedPlugins]}getAllDirectives(){let X=[];for(let $ of this.sortedPlugins)if($.registerDirectives)X.push(...$.registerDirectives());return X}getAllFilters(){let X={};for(let $ of this.sortedPlugins)if($.registerFilters)Object.assign(X,$.registerFilters());return X}async runBeforeProcess(X){return this.runHooks("beforeProcess",X)}async runAfterParse(X){return this.runHooks("afterParse",X)}async runBeforeDirective(X,$){return this.runDirectiveHooks("beforeDirective",X,$)}async runAfterDirective(X,$){return this.runDirectiveHooks("afterDirective",X,$)}async runBeforeRender(X){return this.runHooks("beforeRender",X)}async runAfterRender(X){return this.runHooks("afterRender",X)}async runOnError(X){for(let $ of this.sortedPlugins)if($.onError)try{let Z=await $.onError(X);if(Z){if(Z.template!==void 0)X.template=Z.template;if(Z.context)X.context={...X.context,...Z.context};if(Z.metadata)X.metadata={...X.metadata,...Z.metadata};if(Z.skip)return X}}catch(Z){console.error(`Error in plugin "${$.name}" onError hook:`,Z)}return null}sortPlugins(){this.sortedPlugins=Array.from(this.plugins.values()).sort((X,$)=>(X.priority??100)-($.priority??100))}async runHooks(X,$){let Z={...$};for(let Y of this.sortedPlugins){let J=Y[X];if(J)try{let G=await J(Z);if(G){if(G.template!==void 0)Z.template=G.template;if(G.context)Z.context={...Z.context,...G.context};if(G.metadata)Z.metadata={...Z.metadata,...G.metadata};if(G.skip)break}}catch(G){console.error(`Error in plugin "${Y.name}" ${X} hook:`,G)}}return Z}async runDirectiveHooks(X,$,Z){let Y={...Z};for(let J of this.sortedPlugins){let G=J[X];if(G)try{let Q=await G($,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 "${J.name}" ${X} hook:`,Q)}}return Y}}function vj(X,$,Z={}){return{name:X,...Z,registerDirectives:()=>$}}function xj(X,$,Z={}){return{name:X,...Z,registerFilters:()=>$}}function hj(X){return I8({name:"stx-variables",version:"1.0.0",description:"Adds predefined variables to template context",beforeProcess($){return{context:{...$.context,...X}}}})}var Pj,fj,gj;var NJ=E(()=>{Pj=new V3;fj=I8({name:"stx-debug",version:"1.0.0",description:"Logs all plugin lifecycle events for debugging",priority:0,beforeProcess(X){console.log("[stx-debug] beforeProcess:",X.filePath)},afterParse(X){console.log("[stx-debug] afterParse:",X.template.length,"chars")},beforeDirective(X,$){console.log("[stx-debug] beforeDirective:",X)},afterDirective(X,$){console.log("[stx-debug] afterDirective:",X)},beforeRender(X){console.log("[stx-debug] beforeRender")},afterRender(X){console.log("[stx-debug] afterRender:",X.template.length,"chars")},onError(X){console.error("[stx-debug] onError:",X.error.message,"in phase:",X.phase)}}),gj=I8({name:"stx-timing",version:"1.0.0",description:"Measures template processing time",priority:1,beforeProcess(X){X.metadata.startTime=performance.now()},afterRender(X){let $=X.metadata.startTime;if($){let Z=performance.now()-$;console.log(`[stx-timing] Processing took ${Z.toFixed(2)}ms`)}}})});var EJ={};n(EJ,{validateConfig:()=>ij,resolveStxDirectories:()=>IJ,loadStxConfig:()=>I1,defineStxConfig:()=>pj,defaultConfig:()=>X5,config:()=>_7});import E8 from"fs";import g0 from"path";import{loadConfigWithResult as uj}from"bunfig";function dj(X,$,Z){let Y=$||"pages";if(X)return{root:X,pagesDir:Y};let J=Z||process.cwd(),G=g0.join(J,"resources","views"),Q=g0.join(J,"resources","layouts");if(E8.existsSync(G)&&E8.existsSync(Q))return{root:"resources",pagesDir:"views"};let q=g0.join(J,"resources","views","pages");if(E8.existsSync(q))return{root:"resources/views",pagesDir:Y};return{root:".",pagesDir:Y}}function mj(X,$){let Z=$.replace(/[\\/]+$/,"");if(!Z||Z===".")return!0;let Y=X.replace(/\\/g,"/"),J=Z.replace(/\\/g,"/");return Y===J||Y.startsWith(`${J}/`)}function IJ(X,$){let Z=!X.root,Y=dj(X.root,X.pagesDir,$);if(X.root=Y.root,X.pagesDir=Y.pagesDir,Z&&Y.root!=="."){let J=`${$}::${Y.root}`;if(!MJ.has(J))MJ.add(J),console.warn(`[stx] No "root" in config \u2014 inferred "${Y.root}" from the project layout. Template directories are resolved under it; set root explicitly to pin this.`)}if(X.root&&X.root!=="."){let J=X.root;for(let G of["partialsDir","componentsDir","layoutsDir"]){let Q=X[G];if(typeof Q!=="string"||!Q)continue;if(g0.isAbsolute(Q)||mj(Q,J))continue;X[G]=g0.join(J,Q)}}return X}function lj(X,$){let Z=["componentsDir","layoutsDir","partialsDir"];for(let Y of Z){let J=X[Y];if(typeof J!=="string"||!J)continue;let G=g0.isAbsolute(J)?J:g0.join($,J);if(E8.existsSync(G))continue;let Q=X.root,q=!!Q&&Q!==".";console.warn(`[stx] ${String(Y)} resolves to "${G}", which does not exist. Configured as "${J}"`+(q?`, resolved under root "${Q}".`:"."))}}function cj(X){if(j2(X.stateDir),X.stateDir=t5(),X.cachePath=X7(X.cachePath),X.build)X.build.cacheDir=X7(X.build.cacheDir);if(X.media?.cache)X.media.cache.directory=X7(X.media.cache.directory);if(X.story)X.story.outDir=X7(X.story.outDir)}async function I1(X){if(!X){if(S5)return S5;if(D8)return D8}let $=X?g0.resolve(X):process.cwd(),Z=kJ.get($);if(Z)return Z;let Y=(async()=>{let G=(await uj({name:"stx",alias:"ui",cwd:$,defaultConfig:X5,verbose:!1})).config;if(cj(G),IJ(G,$),lj(G,$),G.plugins&&G.plugins.length>0){let{pluginManager:Q}=await Promise.resolve().then(() => (NJ(),TJ)),q=[],K=[];for(let U of G.plugins){let W=typeof U==="string"?U:U[0],w=typeof U==="string"?{}:U[1]||{};try{let z,B;try{z=await import(W),B=g0.dirname(W0.resolve(W))}catch{let _=g0.resolve(process.cwd(),W);z=await import(_),B=g0.dirname(_)}let j=z.default||z;if(Q.register(j,G),j.components){let _=Array.isArray(j.components)?j.components:[j.components];for(let H of _)q.push(g0.resolve(B,H))}if(j.pages){let _=g0.resolve(B,j.pages),H=w.path||"/";K.push({dir:_,prefix:H})}if(j.setup){let _={addDirective:(H)=>{G.customDirectives=G.customDirectives||[],G.customDirectives.push(H)},addRoute:(H,L)=>{G.apiRoutes=G.apiRoutes||{},G.apiRoutes[H]=L},addMiddleware:(H)=>{G.middleware=G.middleware||[],G.middleware.push(H)},pluginDir:B,config:G};await j.setup(w,_)}console.log(`[stx] Plugin loaded: ${j.name||W}`)}catch(z){console.warn(`[stx] Failed to load plugin ${W}:`,z.message)}}G._pluginComponentDirs=q,G._pluginPageDirs=K}return G})();if(kJ.set($,Y),!X)D8=Y,Y.then((J)=>{S5=J}).catch(()=>{});return Y}function pj(X){return X}function ij(X){let $=[],Z=[];if(X.partialsDir!==void 0&&typeof X.partialsDir!=="string")$.push({path:"partialsDir",message:"partialsDir must be a string",severity:"error"});if(X.componentsDir!==void 0&&typeof X.componentsDir!=="string")$.push({path:"componentsDir",message:"componentsDir must be a string",severity:"error"});if(X.cache!==void 0&&typeof X.cache!=="boolean")$.push({path:"cache",message:"cache must be a boolean",severity:"error"});if(X.debug!==void 0&&typeof X.debug!=="boolean")$.push({path:"debug",message:"debug must be a boolean",severity:"error"});if(X.streaming){if(X.streaming.bufferSize!==void 0){if(typeof X.streaming.bufferSize!=="number"||X.streaming.bufferSize<=0)$.push({path:"streaming.bufferSize",message:"streaming.bufferSize must be a positive number",severity:"error"})}if(X.streaming.timeout!==void 0){if(typeof X.streaming.timeout!=="number"||X.streaming.timeout<=0)$.push({path:"streaming.timeout",message:"streaming.timeout must be a positive number",severity:"error"})}if(X.streaming.strategy!==void 0){let Y=["auto","manual","sections"];if(!Y.includes(X.streaming.strategy))$.push({path:"streaming.strategy",message:`streaming.strategy must be one of: ${Y.join(", ")}`,severity:"error"})}}if(X.i18n){if(X.i18n.format!==void 0){let Y=["json","yaml","yml","js"];if(!Y.includes(X.i18n.format))$.push({path:"i18n.format",message:`i18n.format must be one of: ${Y.join(", ")}`,severity:"error"})}}if(X.animation){if(X.animation.defaultDuration!==void 0){if(typeof X.animation.defaultDuration!=="number"||X.animation.defaultDuration<0)$.push({path:"animation.defaultDuration",message:"animation.defaultDuration must be a non-negative number",severity:"error"})}if(X.animation.staggerDelay!==void 0){if(typeof X.animation.staggerDelay!=="number"||X.animation.staggerDelay<0)$.push({path:"animation.staggerDelay",message:"animation.staggerDelay must be a non-negative number",severity:"error"})}}if(X.a11y){if(X.a11y.level!==void 0){let Y=["AA","AAA"];if(!Y.includes(X.a11y.level))$.push({path:"a11y.level",message:`a11y.level must be one of: ${Y.join(", ")}`,severity:"error"})}}if(X.hydration){if(X.hydration.mode!==void 0){let Y=["progressive","islands"];if(!Y.includes(X.hydration.mode))$.push({path:"hydration.mode",message:`hydration.mode must be one of: ${Y.join(", ")}`,severity:"error"})}if(X.hydration.preload!==void 0){let Y=["none","eager","lazy"];if(!Y.includes(X.hydration.preload))$.push({path:"hydration.preload",message:`hydration.preload must be one of: ${Y.join(", ")}`,severity:"error"})}}if(X.customDirectives)if(!Array.isArray(X.customDirectives))$.push({path:"customDirectives",message:"customDirectives must be an array",severity:"error"});else X.customDirectives.forEach((Y,J)=>{if(!Y.name||typeof Y.name!=="string")$.push({path:`customDirectives[${J}].name`,message:"Custom directive must have a name string",severity:"error"});if(!Y.handler||typeof Y.handler!=="function")$.push({path:`customDirectives[${J}].handler`,message:"Custom directive must have a handler function",severity:"error"})});if(X.middleware)if(!Array.isArray(X.middleware))$.push({path:"middleware",message:"middleware must be an array",severity:"error"});else X.middleware.forEach((Y,J)=>{if(!Y.name||typeof Y.name!=="string")$.push({path:`middleware[${J}].name`,message:"Middleware must have a name string",severity:"error"});if(!Y.handler||typeof Y.handler!=="function")$.push({path:`middleware[${J}].handler`,message:"Middleware must have a handler function",severity:"error"});if(!Y.timing||!["before","after"].includes(Y.timing))$.push({path:`middleware[${J}].timing`,message:'Middleware timing must be "before" or "after"',severity:"error"})});if(X.debug===!0&&X.cache===!0)Z.push({path:"debug+cache",message:"Debug mode with caching enabled may show stale content during development",severity:"warning"});if(X.seo?.enabled===!0&&!X.seo?.defaultConfig?.title)Z.push({path:"seo.defaultConfig.title",message:"SEO is enabled but no default title is set",severity:"warning"});if(X.pwa){if(X.pwa.enabled===!0&&!X.pwa.manifest?.name)$.push({path:"pwa.manifest.name",message:"PWA manifest name is required when PWA is enabled",severity:"error"});if(X.pwa.manifest?.display!==void 0){let Y=["fullscreen","standalone","minimal-ui","browser"];if(!Y.includes(X.pwa.manifest.display))$.push({path:"pwa.manifest.display",message:`PWA display must be one of: ${Y.join(", ")}`,severity:"error"})}if(X.pwa.manifest?.orientation!==void 0){let Y=["portrait","landscape","any","portrait-primary","portrait-secondary","landscape-primary","landscape-secondary"];if(!Y.includes(X.pwa.manifest.orientation))$.push({path:"pwa.manifest.orientation",message:`PWA orientation must be one of: ${Y.join(", ")}`,severity:"error"})}if(X.pwa.routes){let Y=["cache-first","network-first","stale-while-revalidate","network-only","cache-only"];X.pwa.routes.forEach((J,G)=>{if(!J.pattern||typeof J.pattern!=="string")$.push({path:`pwa.routes[${G}].pattern`,message:"PWA route must have a pattern string",severity:"error"});if(!Y.includes(J.strategy))$.push({path:`pwa.routes[${G}].strategy`,message:`PWA route strategy must be one of: ${Y.join(", ")}`,severity:"error"});if(J.maxAgeSeconds!==void 0&&(typeof J.maxAgeSeconds!=="number"||J.maxAgeSeconds<0))$.push({path:`pwa.routes[${G}].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))$.push({path:`pwa.routes[${G}].maxEntries`,message:"PWA route maxEntries must be a positive number",severity:"error"})})}if(X.pwa.icons?.sizes){if(!Array.isArray(X.pwa.icons.sizes))$.push({path:"pwa.icons.sizes",message:"PWA icon sizes must be an array of numbers",severity:"error"});else if(X.pwa.icons.sizes.filter((J)=>typeof J!=="number"||J<16||J>1024).length>0)$.push({path:"pwa.icons.sizes",message:"PWA icon sizes must be numbers between 16 and 1024",severity:"error"})}if(X.pwa.icons?.purpose){let Y=["any","maskable","monochrome"];if(X.pwa.icons.purpose.filter((G)=>!Y.includes(G)).length>0)$.push({path:"pwa.icons.purpose",message:`PWA icon purpose must be one of: ${Y.join(", ")}`,severity:"error"})}if(X.pwa.enabled===!0&&!X.pwa.icons?.src)Z.push({path:"pwa.icons.src",message:"PWA is enabled but no icon source specified. Provide a 512x512 PNG for best results.",severity:"warning"});if(X.pwa.enabled===!0&&!X.pwa.manifest?.themeColor)Z.push({path:"pwa.manifest.themeColor",message:"PWA theme color not set, defaulting to black",severity:"warning"})}return{valid:$.length===0,errors:$,warnings:Z}}var X5,MJ,S5=null,kJ,D8=null,_7;var V1=E(()=>{B$();_$();C$();P$();P9();gY();w3();j3();F3();JX();RJ();X5={enabled:!0,ssr:!1,partialsDir:"partials",componentsDir:"components",layoutsDir:"layouts",defaultLayout:"default",debug:!1,cache:!0,stateDir:B5,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:WY,hasEndTag:!0,description:"Render markdown content to HTML"},{name:"webcomponent",handler:AJ,hasEndTag:!1,description:"Include a web component in the template"},H2,O2,FJ,VJ,L2,V2,A2,F2,p2,r2,fY,W3,...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:"main",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}};MJ=new Set;kJ=new Map;_7=new Proxy(X5,{get(X,$){if(S5&&$ in S5)return S5[$];if(!D8)I1().catch((Z)=>{console.warn("[stx] Failed to load config file:",Z?.message||Z)});return X[$]}})});import q0 from"path";import{hasLocalConfig as nj}from"bunfig";function b8(X){return Bun.hash(X).toString(16).padStart(16,"0").slice(0,16)}function R3(X,$){if($5.has(X))$5.delete(X);else if($5.size>=bJ)$5.delete($5.keys().next().value);$5.set(X,$)}function rj(X){let $=b8(X);if(C5.has($))C5.delete($);else if(C5.size>=bJ)C5.delete(C5.keys().next().value);return C5.set($,X),$}async function oj(X){if(!y1)return null;try{let $=Bun.file(q0.join(y1,`cw-${b8(X)}.css`));if(!await $.exists())return null;return await $.text()}catch{return null}}async function sj(X,$){if(!y1)return;try{if(!fs.existsSync(y1))fs.mkdirSync(y1,{recursive:!0});await Bun.write(q0.join(y1,`cw-${b8(X)}.css`),$)}catch{}}async function yJ(X){try{let $=await import(X);if($&&$.CSSGenerator)return{CSSGenerator:$.CSSGenerator,config:$.config,build:$.build,defaultConfig:$.defaultConfig,extractClasses:$.extractClasses}}catch{}return null}function aj(){let X=[],$=process.cwd();while($!==q0.dirname($))X.push(q0.join($,"node_modules","@cwcss","crosswind","dist","index.js")),X.push(q0.join($,"node_modules","@cwcss","crosswind","src","index.ts")),X.push(q0.join($,"pantry","@cwcss","crosswind","dist","index.js")),X.push(q0.join($,"pantry","@cwcss","crosswind","src","index.ts")),X.push(q0.join($,"node_modules","@stacksjs","crosswind","dist","index.js")),X.push(q0.join($,"pantry","@stacksjs","crosswind","dist","index.js")),$=q0.dirname($);return X}function tj(){let X=[],$=process.env.HOME||process.env.USERPROFILE||"";if($){let Z=[q0.join($,"Code","Tools","crosswind","packages","crosswind","dist","index.js"),q0.join($,"Code","Tools","crosswind","packages","crosswind","src","index.ts"),q0.join($,"repos","stacks-org","crosswind","packages","crosswind","dist","index.js"),q0.join($,"repos","stacks-org","crosswind","packages","crosswind","src","index.ts"),q0.join($,"Code","Tools","stx","packages","stx","node_modules","@cwcss","crosswind","dist","index.js"),q0.join($,"Code","Tools","stx","packages","stx","node_modules","@stacksjs","crosswind","dist","index.js")];X.push(...Z)}return X.push(q0.join(process.cwd(),"..","crosswind","packages","crosswind","dist","index.js")),X.push(q0.join(process.cwd(),"..","crosswind","packages","crosswind","src","index.ts")),X}async function ej(){if(DJ)return z1;DJ=!0;try{let X=async(J)=>{for(let G of J){if(!await Bun.file(G).exists())continue;let Q=await yJ(G);if(Q){if(!process.env.STACKS_DEV_QUIET)console.log(`${V0.green}[Crosswind]${V0.reset} CSS engine loaded from ${q0.dirname(q0.dirname(G))}`);return Q}}return null};if(process.env.CROSSWIND_SRC){let J=q0.resolve(process.env.CROSSWIND_SRC),G=await X([J]);if(!G)throw Error(`CROSSWIND_SRC did not resolve to a Crosswind module: ${J}`);return z1=G,z1}let $=await X(aj());if($)return z1=$,z1;let Z=["@cwcss/crosswind","@cwcss/crosswind/dist/index.js","@stacksjs/crosswind","@stacksjs/crosswind/dist/index.js"];for(let J of Z){let G=await yJ(J);if(G){if(z1=G,!process.env.STACKS_DEV_QUIET)console.log(`${V0.green}[Crosswind]${V0.reset} CSS engine loaded`);return z1}}let Y=await X(tj());if(Y)return z1=Y,z1;throw Error("Crosswind CSSGenerator not found in any location")}catch{return console.warn(`${V0.yellow}[Crosswind] CSS engine not available, Tailwind styles will not be generated${V0.reset}`),console.warn(`${V0.yellow}Run 'bun add @stacksjs/crosswind' to enable CSS generation${V0.reset}`),null}}async function XB(X){try{if(!nj({name:"crosswind",cwd:X}))return null;let{loadConfigWithResult:$}=await import("bunfig"),Z=await $({name:"crosswind",cwd:X,defaultConfig:{},checkEnv:!1,verbose:!1});if(!Z?.path||!Z.config||Object.keys(Z.config).length===0)return null;let Y=q0.relative(X,Z.path);if(!process.env.STACKS_DEV_QUIET)console.log(`${V0.green}[Crosswind]${V0.reset} Loaded config from ${Y||Z.path}`);return Z.config}catch($){if($ instanceof Error&&$.name==="ConfigNotFoundError")return null;return console.warn(`${V0.yellow}[Crosswind]${V0.reset} Failed to load crosswind config:`,$ instanceof Error?$.message:$),null}}function $B(X){let $=new Set,Z=/class\s*=\s*["']([^"']+)["']/gi,Y=Z.exec(X);while(Y!==null){for(let Q of Y[1].split(/\s+/))if(Q.trim())$.add(Q.trim());Y=Z.exec(X)}let J=/(?:x-class|:class)\s*=\s*"([^"]+)"/gi,G=J.exec(X);while(G!==null){let Q=G[1].match(/'([^']+)'/g);if(Q){for(let q of Q)for(let K of q.slice(1,-1).split(/\s+/))if(K.trim())$.add(K.trim())}G=J.exec(X)}return $}async function ZB(X,$){try{let Z=await ej();if(!Z)return"";let Y=typeof Z.extractClasses==="function"?Z.extractClasses(X):$B(X);if(Y.size===0)return"";let J=$?q0.resolve($):process.cwd();if(!y1)y1=e5(J,"cache");let G=[...Y].sort().join(" "),Q=`${A3||"default"}::${G}`,q=$5.get(Q);if(q!==void 0)return R3(Q,q),q;let K=await oj(Q);if(K!==null)return R3(Q,K),K;if(!y8){let V=null;try{let{loadStxConfig:A}=await Promise.resolve().then(() => (V1(),EJ)),R=await A(J);if(R.css)if(typeof R.css==="string"){let T=q0.isAbsolute(R.css)?R.css:q0.resolve(J,R.css);if(await Bun.file(T).exists()){let N=await import(T);V=N.default||N,console.log(`${V0.green}[Crosswind]${V0.reset} Loaded config from stx.config.ts \u2192 ${R.css}`)}}else{if(V={...R.css,content:R.css.content||[],preflight:R.css.preflight??!0,minify:R.css.minify??!1},R.css.config){let T=q0.isAbsolute(R.css.config)?R.css.config:q0.resolve(J,R.css.config);if(await Bun.file(T).exists()){let N=await import(T);V={...N.default||N,...V}}}console.log(`${V0.green}[Crosswind]${V0.reset} Using inline CSS config from stx.config.ts`)}}catch{}y8=V||await XB(J);try{A3=b8(JSON.stringify(y8??{}))}catch{A3="unhashable"}}let U=Z.defaultConfig||Z.config,W=y8||{},w=w2(U,W),{safelist:z,includePreflight:B,minify:j}=w,_=w.config,H=new Z.CSSGenerator(_);for(let V of z)H.generate(V);for(let V of Y)H.generate(V);let L=H.toCSS(B,j),O=_.shortcuts||W.shortcuts||{};for(let[V,A]of Object.entries(O)){if(!Y.has(V)&&!z.includes(V))continue;let R=A.split(/\s+/).filter(Boolean);for(let T of R)H.generate(T)}L=H.toCSS(B,j);let F=L.split(`
|
|
12500
|
+
`);for(let[V,A]of Object.entries(O)){if(!Y.has(V)&&!z.includes(V))continue;let R=A.split(/\s+/).filter(Boolean),T=[],N=[];for(let k of R){let M=k.startsWith("dark:"),C=`.${(M?k.slice(5):k).replace(/\//g,"\\/").replace(/:/g,"\\:").replace(/\./g,"\\.").replace(/\[/g,"\\[").replace(/\]/g,"\\]").replace(/%/g,"\\%")}`;for(let S=0;S<F.length;S++){let b=F[S].trim();if(b===`${C} {`||b.startsWith(`${C} {`)){let P=S,x="";while(P<F.length){if(x+=F[P],F[P].includes("}"))break;P++}let d=x.match(/\{([^}]+)\}/);if(d)if(M)N.push(d[1].trim());else T.push(d[1].trim());break}}}if(T.length)L+=`
|
|
12501
|
+
.${V} { ${T.join(" ")} }`;if(N.length)L+=`
|
|
12502
|
+
@media (prefers-color-scheme: dark) { .dark .${V} { ${N.join(" ")} } }`}return R3(Q,L),sj(Q,L),L}catch(Z){return console.warn("Failed to generate Crosswind CSS:",Z),""}}async function SJ(X,$,Z=!1){let Y=await ZB(X,$);if(!Y)return X;let J=Z?`<link data-crosswind="generated" rel="stylesheet" href="/_stx/crosswind.${rj(Y)}.css">`:`<style data-crosswind="generated">
|
|
12497
12503
|
${Y}
|
|
12498
12504
|
</style>`,G=/(?:<style\b[^>]*\bdata-crosswind=(?:"generated"|'generated')[^>]*>[\s\S]*?<\/style>|<link\b[^>]*\bdata-crosswind=(?:"generated"|'generated')[^>]*>)/g;if(G.test(X)){let Q=!1;return X.replace(G,()=>{if(Q)return"";return Q=!0,J})}if(X.includes("</head>"))return X.replace("</head>",`${J}
|
|
12499
12505
|
</head>`);if(X.includes("<body"))return X.replace(/<body([^>]*)>/,`<body$1>
|
|
@@ -12842,7 +12848,7 @@ else {
|
|
|
12842
12848
|
|
|
12843
12849
|
console.log('[stx] Lifecycle runtime initialized');
|
|
12844
12850
|
})();
|
|
12845
|
-
`}function
|
|
12851
|
+
`}function T3(X){return Symbol(X)}var uN,dN,mN;var vJ=E(()=>{uN=T3("theme"),dN=T3("router"),mN=T3("i18n")});import*as fJ from"crypto";function xJ(X){let $=/\$(\w+)\./g,Z=[],Y;while((Y=$.exec(X))!==null)if(!Z.includes(Y[1]))Z.push(Y[1]);return Z}function YB(){return`stx-${fJ.randomBytes(4).toString("hex")}`}function JB(X){return/\$\w+\./.test(X)}function GB(X){let $=[],Z=new Set,Y=/<(\w+)([^>]*?)(\s*\/?>)/g,J=X;return J=J.replace(Y,(G,Q,q,K)=>{if(["script","style","template"].includes(Q.toLowerCase()))return G;let U=[],W=!1,w=q,z=/(\w+(?:-\w+)*)\s*=\s*"([^"]*\{\{[^}]*\$\w+[^}]*\}\}[^"]*)"/g,B=[...q.matchAll(z)];for(let H of B){let L=H[0],O=H[1],F=H[2];if(JB(F)){W=!0;let V=F.match(/\{\{\s*([\s\S]+?)\s*\}\}/);if(V){let A=V[1];if(U.push({attr:O,expr:A,fullMatch:L,originalAttr:O}),xJ(A).forEach((T)=>Z.add(T)),O==="text")w=w.replace(L,"");else if(O==="class")w=w.replace(L,'class=""');else if(O==="disabled"||O==="hidden")w=w.replace(L,"");else w=w.replace(L,`${O}=""`)}}}if(!W)return G;let j=w.match(/\bid\s*=\s*"([^"]+)"/),_;if(j)_=j[1];else _=YB(),w=` id="${_}"${w}`;for(let H of U)$.push({elementId:_,attribute:H.attr,expression:H.expr,stores:xJ(H.expr)});return`<${Q}${w}${K}`}),{html:J,bindings:$,stores:Z}}function QB(X,$){if(X.length===0)return"";let Z=Array.from($),Y=`
|
|
12846
12852
|
<script>
|
|
12847
12853
|
(function() {
|
|
12848
12854
|
'use strict';
|
|
@@ -13276,11 +13282,11 @@ window.__stx_reactive = (function() {
|
|
|
13276
13282
|
${LB()}
|
|
13277
13283
|
${Z}
|
|
13278
13284
|
</script>`}function nJ(X,$,Z){if(iJ=0,!AB(X))return X;let Y=BB(X);if(Y.length===0)return X;let J=VB(X,Y),G=FB(Y,$),Q=J.lastIndexOf("</body>");if(Q!==-1)J=J.slice(0,Q)+G+`
|
|
13279
|
-
`+J.slice(Q);else J+=G;return J}function VB(X,$){let Z=0,Y=X.replace(/<([a-z][a-z0-9-]*)(\s+[^>]*x-data\s*=\s*(?:"[^"]*"|'[^']*')[^>]*)>/gi,(J,G,Q)=>{let q=$[Z++];if(!q)return J;let K=/data-stx-scope="([^"]*)"/.exec(Q);if(K)return q.id=K[1],q.selector=`[data-stx-scope="${q.id}"]`,J;return`<${G} data-stx-scope="${q.id}"${Q}>`});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 AB(X){return/x-data\s*=\s*["']/.test(X)}var iJ=0,jB=0;var rJ=E(()=>{Z1()});import RB from"fs";import T3 from"path";import{createHighlighter as NB}from"ts-syntax-highlighter";async function TB(X,$={}){try{if(!await p(X))throw Error(`Markdown file not found: ${X}`);let Y=(await RB.promises.stat(X)).mtime.getTime();if($.cache&&M3.has(X)){let w=M3.get(X);if(w.updatedAt>=Y)return{content:w.content,data:w.data}}let J=await Bun.file(X).text(),{data:G,content:Q}=s2(J),q=$.markdown||_7.markdown||{enabled:!0,syntaxHighlighting:{enabled:!0,serverSide:!0,defaultTheme:"github-dark",highlightUnknownLanguages:!0}},U=w7(Q,{gfm:!0});if(q.syntaxHighlighting?.enabled&&q.syntaxHighlighting?.serverSide)U=await MB(U,q.syntaxHighlighting?.defaultTheme||"github-dark",q.syntaxHighlighting?.highlightUnknownLanguages||!1);let W={content:U,data:G||{}};if($.cache)M3.set(X,{...W,updatedAt:Y});return W}catch(Z){if($.debug)console.error(`Error reading/parsing markdown file ${X}:`,Z);let Y=Z instanceof Error?Z.message:String(Z);return{content:U0("Markdown File",`Error reading/parsing markdown file: ${Y}`,X,"",0,""),data:{}}}}async function MB(X,$,Z){let Y=/<pre><code( class="language-([^"]+)")?>([^<]+)<\/code><\/pre>/g;if(!S8)try{S8=await NB({theme:$||"github-dark",cache:!0})}catch(q){return console.error("Failed to initialize ts-syntax-highlighter:",q),X}let J=async(q,K,U,W)=>{let w=W.replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&").replace(/"/g,'"').replace(/'/g,"'"),z=U||(Z?"text":"");if(!z)return q;try{if(!S8.getSupportedLanguages().includes(z))return q;return(await S8.highlight(w,z,{theme:$})).html}catch(B){console.error(`Error highlighting code block with language ${U}:`,B)}return q},G=X,Q=X.matchAll(Y);for(let q of Q){let[K,U,W,w]=q,z=await J(K,U,W,w);G=G.replace(K,z)}return G}async function oJ(X,$,Z="",Y={}){return await kB(X,/@markdown-file\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\}))?\)/g,async(Q,q,K,U)=>{try{let W=q;if(!T3.isAbsolute(q))W=T3.resolve(T3.dirname(Z),q);let w={};if(K)try{try{w=JSON.parse(K)}catch{if(Y.debug)console.warn("Using safer alternative for parsing JS object literal");let O=K.replace(/^\s*\{|\}\s*$/g,"").trim().split(/,(?=\s*\w+\s*:)/);for(let F of O){let V=F.indexOf(":");if(V>0){let A=F.substring(0,V).trim(),R=F.substring(V+1).trim(),N=R.startsWith('"')&&R.endsWith('"'),T=R.startsWith("'")&&R.endsWith("'");if(N||T)R=R.substring(1,R.length-1);w[A]=R}}}}catch(L){if(Y.debug)console.error("Error parsing context in @markdown-file directive:",L)}let{content:z,data:B}=await TB(W,Y),j={...$,...B,...w},_=z,H=/\{\{([^}]+)\}\}/g;return _=_.replace(H,(L,O)=>{let F=O.trim();return j[F]!==void 0?String(j[F]):L}),_}catch(W){let w=W instanceof Error?W.message:String(W);return U0("Markdown File",`Error including markdown file: ${w}`,Z,X,U,Q)}})}async function kB(X,$,Z){let Y=[],J;while((J=$.exec(X))!==null){let q=J[0],K=J.index,U=J;Y.push(Z(...U).then((W)=>({match:q,replacement:W,index:K})))}let G=await Promise.all(Y);G.sort((q,K)=>K.index-q.index);let Q=X;for(let{match:q,replacement:K}of G)Q=Q.replace(q,()=>K);return Q}var M3,S8=null;var sJ=E(()=>{V1();A0();M3=new Map});function b1(X,$){try{let Z=X.trim();if(G0(Z))return Q0(Z,Object.keys($))(...Object.values($));else return $0(Z,$)}catch{return!1}}var aJ=E(()=>{O0()});function IB(X,$,Z){let Y=X,J=!0;while(J){J=!1;let G=Y.match(/@switch\s*\(/);if(!G||G.index===void 0)break;let Q=G.index,q=K9(Y,Q);if(!q)break;try{let K;if(G0(q.expression))K=Q0(q.expression,Object.keys($))(...Object.values($));else K=$0(q.expression,$);let U="",W=!1;for(let w of q.cases)if(w.type==="default"){if(!W)U=w.content.trim()}else try{let z;if(w.value&&G0(w.value))z=Q0(w.value,Object.keys($))(...Object.values($));else if(w.value)z=$0(w.value,$);if(K===z){U=w.content.trim(),W=!0;break}}catch{continue}Y=Y.substring(0,Q)+U+Y.substring(q.end),J=!0}catch(K){let U=K instanceof Error?K.message:String(K),W=X0("Switch",`Error evaluating @switch expression: ${U}`,s.EVALUATION_ERROR);Y=Y.substring(0,Q)+W+Y.substring(q.end);break}}return Y}function EB(X){let $=[];return{masked:X.replace(/<script\b[\s\S]*?<\/script\s*>/gi,(Y)=>{return $.push(Y),`\x00stx-script-${$.length-1}\x00`}),scripts:$}}function DB(X,$){if($.length===0)return X;return X.replace(/\u0000stx-script-(\d+)\u0000/g,(Z,Y)=>$[Number(Y)]??Z)}function Z5(X,$,Z){let{masked:Y,scripts:J}=EB(X);return DB(yB(Y,$,Z),J)}function yB(X,$,Z){let Y=X;Y=IB(Y,$,Z);{let G=!0;while(G){G=!1;let Q=Y.match(/@unless\s*\(/);if(!Q||Q.index===void 0)break;let q=Q.index,K=k1(Y,q+7);if(!K)break;let U=K.endPos,W=n1(Y,"unless","endunless",U);if(W===-1){console.warn(`[stx] @unless directive at position ${q} has no matching @endunless \u2014 the block was skipped. Check for typos or missing closers.`);break}let w=Y.slice(U,W),z=K.expression,B=-1;{let _=0,H=/@(?:if|unless)\s*\(/g,L=/@(?:endif|endunless)(?![a-z])/g,O=/@else(?![a-z])/g,F=[],V;while((V=H.exec(w))!==null)F.push({pos:V.index,type:"open"});while((V=L.exec(w))!==null)F.push({pos:V.index,type:"close"});while((V=O.exec(w))!==null)F.push({pos:V.index,type:"else"});F.sort((A,R)=>A.pos-R.pos);for(let A of F)if(A.type==="open")_++;else if(A.type==="close")_--;else if(A.type==="else"&&_===0){B=A.pos;break}}let j;if(B!==-1){let _=w.slice(0,B),H=w.slice(B+5);j=`@if (${z})${H}@else ${_}@endif`}else j=`@if (!(${z}))${w}@endif`;Y=Y.substring(0,q)+j+Y.substring(W+10),G=!0}}Y=I3(Y,$,Z),Y=E3(Y,$,Z),Y=k3(Y,$);let J=()=>{let G=I7(Y);if(G.length===0)return!1;for(let Q=G.length-1;Q>=0;Q--){let q=G[Q];try{let K="",U=!1;for(let W of q.branches){if(U)break;if(W.type==="else")K=W.content,U=!0;else try{let w;if(W.condition&&G0(W.condition))w=Q0(W.condition,Object.keys($))(...Object.values($));else if(W.condition)w=$0(W.condition,$);if(w)K=W.content,U=!0}catch(w){K=X0(W.type==="if"?"If":"Elseif",`Error in @${W.type}(${W.condition}): ${w instanceof Error?w.message:String(w)}`,s.EVALUATION_ERROR),U=!0}}Y=Y.substring(0,q.start)+K+Y.substring(q.end)}catch(K){let U=K instanceof Error?K.message:String(K),W=X0("If",`Error processing @if block: ${U}`,s.EVALUATION_ERROR);Y=Y.substring(0,q.start)+W+Y.substring(q.end)}}return!0};while(!0){let G=Y;if(!J())break;if(Y===G)break}return Y}function tJ(X){let $=0;while($<X.length&&/\s/.test(X[$]))$++;if(X[$]!=="(")return null;$++;while($<X.length&&/\s/.test(X[$]))$++;let Z=X[$];if(Z!=="'"&&Z!=='"')return null;$++;let Y=[];while($<X.length){let J=X[$];if(J==="\\"&&$+1<X.length){Y.push(X[$+1]),$+=2;continue}if(J===Z){$++;break}Y.push(J),$++}while($<X.length&&/\s/.test(X[$]))$++;if(X[$]!==")")return null;return $++,{value:Y.join(""),consumed:$}}function k3(X,$){let Z=X;function Y(q,K,U,W){let w=1,z=W,B=new RegExp(`@${K}(?:\\s*\\(|\\s|$)`,"g"),j=new RegExp(`@${U}(?![a-z])`,"g");while(z<q.length&&w>0){B.lastIndex=z,j.lastIndex=z;let _=B.exec(q),H=j.exec(q),L=_?_.index:1/0,O=H?H.index:1/0;if(L<O)w++,z=L+_[0].length;else if(O<1/0){if(w--,w===0)return O;z=O+H[0].length}else break}return-1}function J(q,K,U){let W=0,w=new RegExp(`@${K}(?:\\s*\\(|\\s|$)`,"g"),z=new RegExp(`@${U}(?![a-z])`,"g"),B=/@else(?![a-z])/g,j=[],_;while((_=w.exec(q))!==null)j.push({pos:_.index,type:"open"});while((_=z.exec(q))!==null)j.push({pos:_.index,type:"close"});while((_=B.exec(q))!==null)j.push({pos:_.index,type:"else"});j.sort((H,L)=>H.pos-L.pos);for(let H of j)if(H.type==="open")W++;else if(H.type==="close")W--;else if(H.type==="else"&&W===0)return H.pos;return-1}{let q=!0;while(q){q=!1;let K=Z.match(/@auth(?:\s*\(|\s|(?=\n))/);if(!K||K.index===void 0)break;let U=K.index,W,w,z=Z.slice(U+5),B=tJ(z);if(B)W=B.value,w=U+5+B.consumed;else w=U+5;let j=Y(Z,"auth","endauth",w);if(j===-1){console.warn(`[stx] @auth directive at position ${U} has no matching @endauth \u2014 the block was skipped.`);break}let _=Z.slice(w,j),H=J(_,"auth","endauth"),L;if(!$.auth)L=!1;else L=W?b1(`auth?.check && auth?.user?.[${W}]`,$):b1("auth?.check",$);let O;if(H!==-1){let F=_.slice(0,H),V=_.slice(H+5);O=L?F:V}else O=L?_:"";Z=Z.substring(0,U)+O+Z.substring(j+8),q=!0}}{let q=!0;while(q){q=!1;let K=Z.match(/@guest(?:\s*\(|\s|(?=\n))/);if(!K||K.index===void 0)break;let U=K.index,W,w,z=Z.slice(U+6),B=tJ(z);if(B)W=B.value,w=U+6+B.consumed;else w=U+6;let j=Y(Z,"guest","endguest",w);if(j===-1){console.warn(`[stx] @guest directive at position ${U} has no matching @endguest \u2014 the block was skipped.`);break}let _=Z.slice(w,j),H=J(_,"guest","endguest"),L;if(!$.auth)L=!0;else L=W?b1(`!auth?.check || !auth?.user?.[${W}]`,$):b1("!auth?.check",$);let O;if(H!==-1){let F=_.slice(0,H),V=_.slice(H+5);O=L?F:V}else O=L?_:"";Z=Z.substring(0,U)+O+Z.substring(j+9),q=!0}}function G(q,K,U){if($.userCan&&typeof $.userCan[q]==="boolean")return $.userCan[q];if($.permissions?.check&&typeof $.permissions.check==="function")try{let W=[q];if(K)W.push(K);if(U){let w=b1(U,$);W.push(w)}return $.permissions.check(...W)}catch{return!1}return!1}function Q(q){let K=q.match(/^\s*\(\s*'([^']*)'(?:,\s*'([^']*)')?(?:,\s*([^)]*))?\)/);if(!K)return null;return{ability:K[1],type:K[2],id:K[3]?.trim(),paramsEnd:K[0].length}}for(let q of["can","cannot"]){let K=`end${q}`,U=q==="can"?"elsecan":"elsecannot",W=!0;while(W){W=!1;let w=Z.match(new RegExp(`@${q}\\s*\\(`));if(!w||w.index===void 0)break;let z=w.index,B=Z.slice(z+`@${q}`.length),j=Q(B);if(!j)break;let _=z+`@${q}`.length+j.paramsEnd,H=Y(Z,q,K,_);if(H===-1){console.warn(`[stx] @${q} directive at position ${z} has no matching @${K} \u2014 the block was skipped.`);break}let L=Z.slice(_,H),O=[],F=0,V=new RegExp(`@${q}\\s*\\(`,"g"),A=new RegExp(`@${K}(?![a-z])`,"g"),R=new RegExp(`@${U}\\s*\\(`,"g"),N=/@else(?![a-z])/g,T=[],k;while((k=V.exec(L))!==null)T.push({pos:k.index,type:"open"});while((k=A.exec(L))!==null)T.push({pos:k.index,type:"close"});while((k=R.exec(L))!==null)T.push({pos:k.index,type:"elseDirective"});while((k=N.exec(L))!==null)T.push({pos:k.index,type:"else"});T.sort((b,P)=>b.pos-P.pos);for(let b of T){if(b.type==="open"){F++;continue}if(b.type==="close"){F--;continue}if(F===0)O.push(b)}let M=[],y=0;for(let b=0;b<O.length;b++){let P=O[b];if(M.push({content:L.slice(y,P.pos),ability:void 0}),P.type==="elseDirective"){let x=L.slice(P.pos+`@${U}`.length),d=Q(x);if(d){M[M.length-1]={content:L.slice(y,P.pos)},y=P.pos+`@${U}`.length+d.paramsEnd,M.push({content:"",ability:d.ability,type:d.type,id:d.id}),M.pop();let m=O[b+1],Y0=m?m.pos:L.length;M.push({content:L.slice(y,Y0),ability:d.ability,type:d.type,id:d.id}),y=Y0}}else y=P.pos+5}if(y<L.length){let b=M[M.length-1];if(O.length>0&&O[O.length-1].type==="else")M.push({content:L.slice(y),isFinalElse:!0});else if(M.length===0)M.push({content:L.slice(y)})}let I=G(j.ability,j.type,j.id),C=q==="can"?I:!I,S="";if(C)S=M[0]?.content||"";else{let b=!1;for(let P=1;P<M.length;P++){let x=M[P];if(x.isFinalElse){S=x.content,b=!0;break}if(x.ability){let d=G(x.ability,x.type,x.id);if(q==="can"?d:!d){S=x.content,b=!0;break}}}if(!b&&M.length>0){let P=M[M.length-1];if(P.isFinalElse)S=P.content}}Z=Z.substring(0,z)+S+Z.substring(H+`@${K}`.length),W=!0}}return Z}function I3(X,$,Z){let Y=X;function J(G,Q,q,K,U){let W=!0;while(W){W=!1;let w=new RegExp(`@${Q}\\s*\\(`),z=G.match(w);if(!z||z.index===void 0)break;let B=z.index,j=k1(G,B+`@${Q}`.length);if(!j)break;let _=j.endPos,H=n1(G,Q,q,_);if(H===-1){console.warn(`[stx] @${Q} directive at position ${B} has no matching @${q} \u2014 the block was skipped.`);break}let L=G.slice(_,H),O=j.expression,F=-1,V=0,A=0;while(A<L.length){let R=L.indexOf("@",A);if(R===-1)break;let N=L.substring(R);if(/^@(?:if|unless|isset|empty)\s*\(/.test(N)){V++,A=R+1;continue}if(/^@(?:endif|endunless|endisset|endempty)(?![a-z])/.test(N)){V--,A=R+1;continue}if(V===0&&/^@else(?![a-z])/.test(N)){F=R;break}A=R+1}try{let R=K(O.trim()),N;if(F!==-1){let T=L.slice(0,F),k=L.slice(F+5);N=R?T:k}else N=R?L:"";G=G.substring(0,B)+N+G.substring(H+`@${q}`.length),W=!0}catch(R){let N=R instanceof Error?R.message:String(R),T=X0(U,`Error processing @${Q} directive: ${N}`,s.EVALUATION_ERROR);G=G.substring(0,B)+T+G.substring(H+`@${q}`.length);break}}return G}return Y=J(Y,"isset","endisset",(G)=>{let Q=b1(G,$);return Q!==void 0&&Q!==null},"Isset"),Y=J(Y,"empty","endempty",(G)=>{let Q=b1(G,$);return Q===void 0||Q===null||Q===""||Q===0||Q===!1||Array.isArray(Q)&&Q.length===0||typeof Q==="object"&&Q!==null&&Object.keys(Q).length===0},"Empty"),Y}function E3(X,$,Z){let Y=X,J="development";function G(Q,q,K,U){let W=new RegExp(`@${q}(?![a-z])`,"g"),w=new RegExp(`@${K}(?![a-z])`,"g"),z=new RegExp(`^@${q}(?![a-z])`),B=new RegExp(`^@${K}(?![a-z])`),j=Q,_=!0;while(_){_=!1,W.lastIndex=0;let H=W.exec(j);if(!H)break;let L=H.index,O=L+H[0].length;if(q==="env"){let I=j.substring(O).match(/^\s*\(\s*(['"])([^'"]+)\1\s*\)/);if(!I)break;O+=I[0].length,U=J===I[2]}let F=1,V=O,A=-1;while(F>0&&V<j.length){W.lastIndex=V,w.lastIndex=V;let I=W.exec(j),C=w.exec(j),S=I?I.index:1/0,b=C?C.index:1/0;if(S<b)F++,V=S+I[0].length;else if(b<1/0){if(F--,F===0){A=b;break}V=b+C[0].length}else break}if(A===-1){console.warn(`[stx] @${q} directive at position ${L} has no matching @${K} \u2014 the block was skipped.`);break}let R=j.substring(O,A),N=-1,T=0,k=0;while(k<R.length){let I=R.indexOf("@",k);if(I===-1)break;let C=R.substring(I);if(z.test(C)){T++,k=I+1;continue}if(B.test(C)){T--,k=I+1;continue}if(T===0&&/^@else(?![a-z])/.test(C)){N=I;break}k=I+1}let M;if(N!==-1){let I=R.slice(0,N),C=R.slice(N+5);M=U?I:C}else M=U?R:"";let y=`@${K}`.length;j=j.substring(0,L)+M+j.substring(A+y),_=!0}return j}return Y=G(Y,"env","endenv",!1),Y=G(Y,"production","endproduction",J==="production"),Y=G(Y,"development","enddevelopment",J==="development"),Y=G(Y,"staging","endstaging",J==="staging"),Y=G(Y,"testing","endtesting",J==="testing"),Y}var C8=E(()=>{aJ();w1();DX();O0()});function XG(X=16){let $=new Uint8Array(X);return crypto.getRandomValues($),btoa(String.fromCharCode(...$))}function P8(X,$){if(!X)return $?.nonceGenerator?.()??XG();let Z=eJ.get(X);if(!Z)Z=$?.nonceGenerator?.()??XG(),eJ.set(X,Z);return Z}function bB(X,$){let Z=[];for(let[Y,J]of Object.entries(X)){if(J===void 0||J===null)continue;if(typeof J==="boolean"){if(J)Z.push(Y);continue}if(Array.isArray(J)){let G=[...J];if($&&(Y==="script-src"||Y==="style-src"))G=G.filter((Q)=>!Q.startsWith("'nonce-")),G.push(`'nonce-${$}'`);if(G.length>0)Z.push(`${Y} ${G.join(" ")}`)}}return Z.join("; ")}function $G(X,$){return`<meta http-equiv="Content-Security-Policy" content="${bB(X,$).replace(/&/g,"&").replace(/"/g,""")}">`}function ZG(X,$,Z){if(!$.enabled||!$.addMetaTag)return X;if(X.includes('http-equiv="Content-Security-Policy"'))return X;if(!X.includes("<head>")&&!X.includes("<head "))return X;let Y=$.useNonce?P8(Z,$):void 0,J=$G($.directives,Y);return X.replace(/<head([^>]*)>/,`<head$1>
|
|
13280
|
-
${J}`)}function YG(X,$){let Z=X;return Z=Z.replace(/<script(?![^>]*\ssrc=)([^>]*)>/gi,(Y,J)=>{if(J.includes("nonce="))return Y;return`<script nonce="${$}"${J}>`}),Z=Z.replace(/<style([^>]*)>/gi,(Y,J)=>{if(J.includes("nonce="))return Y;return`<style nonce="${$}"${J}>`}),Z}function JG(X,$,Z,Y){let J=X,G=Y.csp;if(J=J.replace(/@csp\b/g,()=>{if(!G?.enabled||!G.directives)return"<!-- CSP not configured -->";let Q=G.useNonce?P8($,G):void 0;return $G(G.directives,Q)}),J=J.replace(/@cspNonce\b/g,()=>{if(!G?.enabled||!G.useNonce)return"";return P8($,G)}),G?.enabled&&G.useNonce)$.cspNonce=P8($,G);return J}var eJ;var GG=E(()=>{eJ=new WeakMap});import SB from"crypto";function PB(X=CB){let $=SB.randomBytes(Math.ceil(X/2)).toString("hex").slice(0,X);return D3=$,$}function vB(){if(!D3)PB();return D3}function xB(X=QG){let $=vB();return`<input type="hidden" name="${X}" value="${$}">`}function qG(X){return X.replace(/@csrf(?:\((['"])([^'"]*)\1\))?/g,($,Z,Y)=>{return xB(Y||QG)})}var CB=40,QG="_token",D3=null;var KG=()=>{};async function UG(X,$,Z,Y){if(!Y.customDirectives||Y.customDirectives.length===0)return X;let J=X;for(let G of Y.customDirectives){if(!G.name||typeof G.handler!=="function"){if(Y.debug)console.warn("Invalid custom directive:",G);continue}if(G.hasEndTag)J=await fB(J,G,$,Z,Y);else J=await gB(J,G,$,Z,Y)}return J}async function fB(X,$,Z,Y,J){let{name:G,handler:Q}=$,q=`@${G}`,K=`@end${G}`,U=X,W=
|
|
13285
|
+
`+J.slice(Q);else J+=G;return J}function VB(X,$){let Z=0,Y=X.replace(/<([a-z][a-z0-9-]*)(\s+[^>]*x-data\s*=\s*(?:"[^"]*"|'[^']*')[^>]*)>/gi,(J,G,Q)=>{let q=$[Z++];if(!q)return J;let K=/data-stx-scope="([^"]*)"/.exec(Q);if(K)return q.id=K[1],q.selector=`[data-stx-scope="${q.id}"]`,J;return`<${G} data-stx-scope="${q.id}"${Q}>`});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 AB(X){return/x-data\s*=\s*["']/.test(X)}var iJ=0,jB=0;var rJ=E(()=>{Z1()});import RB from"fs";import N3 from"path";import{createHighlighter as TB}from"ts-syntax-highlighter";async function NB(X,$={}){try{if(!await p(X))throw Error(`Markdown file not found: ${X}`);let Y=(await RB.promises.stat(X)).mtime.getTime();if($.cache&&M3.has(X)){let w=M3.get(X);if(w.updatedAt>=Y)return{content:w.content,data:w.data}}let J=await Bun.file(X).text(),{data:G,content:Q}=s2(J),q=$.markdown||_7.markdown||{enabled:!0,syntaxHighlighting:{enabled:!0,serverSide:!0,defaultTheme:"github-dark",highlightUnknownLanguages:!0}},U=w7(Q,{gfm:!0});if(q.syntaxHighlighting?.enabled&&q.syntaxHighlighting?.serverSide)U=await MB(U,q.syntaxHighlighting?.defaultTheme||"github-dark",q.syntaxHighlighting?.highlightUnknownLanguages||!1);let W={content:U,data:G||{}};if($.cache)M3.set(X,{...W,updatedAt:Y});return W}catch(Z){if($.debug)console.error(`Error reading/parsing markdown file ${X}:`,Z);let Y=Z instanceof Error?Z.message:String(Z);return{content:U0("Markdown File",`Error reading/parsing markdown file: ${Y}`,X,"",0,""),data:{}}}}async function MB(X,$,Z){let Y=/<pre><code( class="language-([^"]+)")?>([^<]+)<\/code><\/pre>/g;if(!S8)try{S8=await TB({theme:$||"github-dark",cache:!0})}catch(q){return console.error("Failed to initialize ts-syntax-highlighter:",q),X}let J=async(q,K,U,W)=>{let w=W.replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&").replace(/"/g,'"').replace(/'/g,"'"),z=U||(Z?"text":"");if(!z)return q;try{if(!S8.getSupportedLanguages().includes(z))return q;return(await S8.highlight(w,z,{theme:$})).html}catch(B){console.error(`Error highlighting code block with language ${U}:`,B)}return q},G=X,Q=X.matchAll(Y);for(let q of Q){let[K,U,W,w]=q,z=await J(K,U,W,w);G=G.replace(K,z)}return G}async function oJ(X,$,Z="",Y={}){return await kB(X,/@markdown-file\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\}))?\)/g,async(Q,q,K,U)=>{try{let W=q;if(!N3.isAbsolute(q))W=N3.resolve(N3.dirname(Z),q);let w={};if(K)try{try{w=JSON.parse(K)}catch{if(Y.debug)console.warn("Using safer alternative for parsing JS object literal");let O=K.replace(/^\s*\{|\}\s*$/g,"").trim().split(/,(?=\s*\w+\s*:)/);for(let F of O){let V=F.indexOf(":");if(V>0){let A=F.substring(0,V).trim(),R=F.substring(V+1).trim(),T=R.startsWith('"')&&R.endsWith('"'),N=R.startsWith("'")&&R.endsWith("'");if(T||N)R=R.substring(1,R.length-1);w[A]=R}}}}catch(L){if(Y.debug)console.error("Error parsing context in @markdown-file directive:",L)}let{content:z,data:B}=await NB(W,Y),j={...$,...B,...w},_=z,H=/\{\{([^}]+)\}\}/g;return _=_.replace(H,(L,O)=>{let F=O.trim();return j[F]!==void 0?String(j[F]):L}),_}catch(W){let w=W instanceof Error?W.message:String(W);return U0("Markdown File",`Error including markdown file: ${w}`,Z,X,U,Q)}})}async function kB(X,$,Z){let Y=[],J;while((J=$.exec(X))!==null){let q=J[0],K=J.index,U=J;Y.push(Z(...U).then((W)=>({match:q,replacement:W,index:K})))}let G=await Promise.all(Y);G.sort((q,K)=>K.index-q.index);let Q=X;for(let{match:q,replacement:K}of G)Q=Q.replace(q,()=>K);return Q}var M3,S8=null;var sJ=E(()=>{V1();A0();M3=new Map});function b1(X,$){try{let Z=X.trim();if(G0(Z))return Q0(Z,Object.keys($))(...Object.values($));else return $0(Z,$)}catch{return!1}}var aJ=E(()=>{O0()});function IB(X,$,Z){let Y=X,J=!0;while(J){J=!1;let G=Y.match(/@switch\s*\(/);if(!G||G.index===void 0)break;let Q=G.index,q=K9(Y,Q);if(!q)break;try{let K;if(G0(q.expression))K=Q0(q.expression,Object.keys($))(...Object.values($));else K=$0(q.expression,$);let U="",W=!1;for(let w of q.cases)if(w.type==="default"){if(!W)U=w.content.trim()}else try{let z;if(w.value&&G0(w.value))z=Q0(w.value,Object.keys($))(...Object.values($));else if(w.value)z=$0(w.value,$);if(K===z){U=w.content.trim(),W=!0;break}}catch{continue}Y=Y.substring(0,Q)+U+Y.substring(q.end),J=!0}catch(K){let U=K instanceof Error?K.message:String(K),W=X0("Switch",`Error evaluating @switch expression: ${U}`,s.EVALUATION_ERROR);Y=Y.substring(0,Q)+W+Y.substring(q.end);break}}return Y}function EB(X){let $=[];return{masked:X.replace(/<script\b[\s\S]*?<\/script\s*>/gi,(Y)=>{return $.push(Y),`\x00stx-script-${$.length-1}\x00`}),scripts:$}}function DB(X,$){if($.length===0)return X;return X.replace(/\u0000stx-script-(\d+)\u0000/g,(Z,Y)=>$[Number(Y)]??Z)}function Z5(X,$,Z){let{masked:Y,scripts:J}=EB(X);return DB(yB(Y,$,Z),J)}function yB(X,$,Z){let Y=X;Y=IB(Y,$,Z);{let G=!0;while(G){G=!1;let Q=Y.match(/@unless\s*\(/);if(!Q||Q.index===void 0)break;let q=Q.index,K=k1(Y,q+7);if(!K)break;let U=K.endPos,W=n1(Y,"unless","endunless",U);if(W===-1){console.warn(`[stx] @unless directive at position ${q} has no matching @endunless \u2014 the block was skipped. Check for typos or missing closers.`);break}let w=Y.slice(U,W),z=K.expression,B=-1;{let _=0,H=/@(?:if|unless)\s*\(/g,L=/@(?:endif|endunless)(?![a-z])/g,O=/@else(?![a-z])/g,F=[],V;while((V=H.exec(w))!==null)F.push({pos:V.index,type:"open"});while((V=L.exec(w))!==null)F.push({pos:V.index,type:"close"});while((V=O.exec(w))!==null)F.push({pos:V.index,type:"else"});F.sort((A,R)=>A.pos-R.pos);for(let A of F)if(A.type==="open")_++;else if(A.type==="close")_--;else if(A.type==="else"&&_===0){B=A.pos;break}}let j;if(B!==-1){let _=w.slice(0,B),H=w.slice(B+5);j=`@if (${z})${H}@else ${_}@endif`}else j=`@if (!(${z}))${w}@endif`;Y=Y.substring(0,q)+j+Y.substring(W+10),G=!0}}Y=I3(Y,$,Z),Y=E3(Y,$,Z),Y=k3(Y,$);let J=()=>{let G=I7(Y);if(G.length===0)return!1;for(let Q=G.length-1;Q>=0;Q--){let q=G[Q];try{let K="",U=!1;for(let W of q.branches){if(U)break;if(W.type==="else")K=W.content,U=!0;else try{let w;if(W.condition&&G0(W.condition))w=Q0(W.condition,Object.keys($))(...Object.values($));else if(W.condition)w=$0(W.condition,$);if(w)K=W.content,U=!0}catch(w){K=X0(W.type==="if"?"If":"Elseif",`Error in @${W.type}(${W.condition}): ${w instanceof Error?w.message:String(w)}`,s.EVALUATION_ERROR),U=!0}}Y=Y.substring(0,q.start)+K+Y.substring(q.end)}catch(K){let U=K instanceof Error?K.message:String(K),W=X0("If",`Error processing @if block: ${U}`,s.EVALUATION_ERROR);Y=Y.substring(0,q.start)+W+Y.substring(q.end)}}return!0};while(!0){let G=Y;if(!J())break;if(Y===G)break}return Y}function tJ(X){let $=0;while($<X.length&&/\s/.test(X[$]))$++;if(X[$]!=="(")return null;$++;while($<X.length&&/\s/.test(X[$]))$++;let Z=X[$];if(Z!=="'"&&Z!=='"')return null;$++;let Y=[];while($<X.length){let J=X[$];if(J==="\\"&&$+1<X.length){Y.push(X[$+1]),$+=2;continue}if(J===Z){$++;break}Y.push(J),$++}while($<X.length&&/\s/.test(X[$]))$++;if(X[$]!==")")return null;return $++,{value:Y.join(""),consumed:$}}function k3(X,$){let Z=X;function Y(q,K,U,W){let w=1,z=W,B=new RegExp(`@${K}(?:\\s*\\(|\\s|$)`,"g"),j=new RegExp(`@${U}(?![a-z])`,"g");while(z<q.length&&w>0){B.lastIndex=z,j.lastIndex=z;let _=B.exec(q),H=j.exec(q),L=_?_.index:1/0,O=H?H.index:1/0;if(L<O)w++,z=L+_[0].length;else if(O<1/0){if(w--,w===0)return O;z=O+H[0].length}else break}return-1}function J(q,K,U){let W=0,w=new RegExp(`@${K}(?:\\s*\\(|\\s|$)`,"g"),z=new RegExp(`@${U}(?![a-z])`,"g"),B=/@else(?![a-z])/g,j=[],_;while((_=w.exec(q))!==null)j.push({pos:_.index,type:"open"});while((_=z.exec(q))!==null)j.push({pos:_.index,type:"close"});while((_=B.exec(q))!==null)j.push({pos:_.index,type:"else"});j.sort((H,L)=>H.pos-L.pos);for(let H of j)if(H.type==="open")W++;else if(H.type==="close")W--;else if(H.type==="else"&&W===0)return H.pos;return-1}{let q=!0;while(q){q=!1;let K=Z.match(/@auth(?:\s*\(|\s|(?=\n))/);if(!K||K.index===void 0)break;let U=K.index,W,w,z=Z.slice(U+5),B=tJ(z);if(B)W=B.value,w=U+5+B.consumed;else w=U+5;let j=Y(Z,"auth","endauth",w);if(j===-1){console.warn(`[stx] @auth directive at position ${U} has no matching @endauth \u2014 the block was skipped.`);break}let _=Z.slice(w,j),H=J(_,"auth","endauth"),L;if(!$.auth)L=!1;else L=W?b1(`auth?.check && auth?.user?.[${W}]`,$):b1("auth?.check",$);let O;if(H!==-1){let F=_.slice(0,H),V=_.slice(H+5);O=L?F:V}else O=L?_:"";Z=Z.substring(0,U)+O+Z.substring(j+8),q=!0}}{let q=!0;while(q){q=!1;let K=Z.match(/@guest(?:\s*\(|\s|(?=\n))/);if(!K||K.index===void 0)break;let U=K.index,W,w,z=Z.slice(U+6),B=tJ(z);if(B)W=B.value,w=U+6+B.consumed;else w=U+6;let j=Y(Z,"guest","endguest",w);if(j===-1){console.warn(`[stx] @guest directive at position ${U} has no matching @endguest \u2014 the block was skipped.`);break}let _=Z.slice(w,j),H=J(_,"guest","endguest"),L;if(!$.auth)L=!0;else L=W?b1(`!auth?.check || !auth?.user?.[${W}]`,$):b1("!auth?.check",$);let O;if(H!==-1){let F=_.slice(0,H),V=_.slice(H+5);O=L?F:V}else O=L?_:"";Z=Z.substring(0,U)+O+Z.substring(j+9),q=!0}}function G(q,K,U){if($.userCan&&typeof $.userCan[q]==="boolean")return $.userCan[q];if($.permissions?.check&&typeof $.permissions.check==="function")try{let W=[q];if(K)W.push(K);if(U){let w=b1(U,$);W.push(w)}return $.permissions.check(...W)}catch{return!1}return!1}function Q(q){let K=q.match(/^\s*\(\s*'([^']*)'(?:,\s*'([^']*)')?(?:,\s*([^)]*))?\)/);if(!K)return null;return{ability:K[1],type:K[2],id:K[3]?.trim(),paramsEnd:K[0].length}}for(let q of["can","cannot"]){let K=`end${q}`,U=q==="can"?"elsecan":"elsecannot",W=!0;while(W){W=!1;let w=Z.match(new RegExp(`@${q}\\s*\\(`));if(!w||w.index===void 0)break;let z=w.index,B=Z.slice(z+`@${q}`.length),j=Q(B);if(!j)break;let _=z+`@${q}`.length+j.paramsEnd,H=Y(Z,q,K,_);if(H===-1){console.warn(`[stx] @${q} directive at position ${z} has no matching @${K} \u2014 the block was skipped.`);break}let L=Z.slice(_,H),O=[],F=0,V=new RegExp(`@${q}\\s*\\(`,"g"),A=new RegExp(`@${K}(?![a-z])`,"g"),R=new RegExp(`@${U}\\s*\\(`,"g"),T=/@else(?![a-z])/g,N=[],k;while((k=V.exec(L))!==null)N.push({pos:k.index,type:"open"});while((k=A.exec(L))!==null)N.push({pos:k.index,type:"close"});while((k=R.exec(L))!==null)N.push({pos:k.index,type:"elseDirective"});while((k=T.exec(L))!==null)N.push({pos:k.index,type:"else"});N.sort((b,P)=>b.pos-P.pos);for(let b of N){if(b.type==="open"){F++;continue}if(b.type==="close"){F--;continue}if(F===0)O.push(b)}let M=[],y=0;for(let b=0;b<O.length;b++){let P=O[b];if(M.push({content:L.slice(y,P.pos),ability:void 0}),P.type==="elseDirective"){let x=L.slice(P.pos+`@${U}`.length),d=Q(x);if(d){M[M.length-1]={content:L.slice(y,P.pos)},y=P.pos+`@${U}`.length+d.paramsEnd,M.push({content:"",ability:d.ability,type:d.type,id:d.id}),M.pop();let m=O[b+1],Y0=m?m.pos:L.length;M.push({content:L.slice(y,Y0),ability:d.ability,type:d.type,id:d.id}),y=Y0}}else y=P.pos+5}if(y<L.length){let b=M[M.length-1];if(O.length>0&&O[O.length-1].type==="else")M.push({content:L.slice(y),isFinalElse:!0});else if(M.length===0)M.push({content:L.slice(y)})}let I=G(j.ability,j.type,j.id),C=q==="can"?I:!I,S="";if(C)S=M[0]?.content||"";else{let b=!1;for(let P=1;P<M.length;P++){let x=M[P];if(x.isFinalElse){S=x.content,b=!0;break}if(x.ability){let d=G(x.ability,x.type,x.id);if(q==="can"?d:!d){S=x.content,b=!0;break}}}if(!b&&M.length>0){let P=M[M.length-1];if(P.isFinalElse)S=P.content}}Z=Z.substring(0,z)+S+Z.substring(H+`@${K}`.length),W=!0}}return Z}function I3(X,$,Z){let Y=X;function J(G,Q,q,K,U){let W=!0;while(W){W=!1;let w=new RegExp(`@${Q}\\s*\\(`),z=G.match(w);if(!z||z.index===void 0)break;let B=z.index,j=k1(G,B+`@${Q}`.length);if(!j)break;let _=j.endPos,H=n1(G,Q,q,_);if(H===-1){console.warn(`[stx] @${Q} directive at position ${B} has no matching @${q} \u2014 the block was skipped.`);break}let L=G.slice(_,H),O=j.expression,F=-1,V=0,A=0;while(A<L.length){let R=L.indexOf("@",A);if(R===-1)break;let T=L.substring(R);if(/^@(?:if|unless|isset|empty)\s*\(/.test(T)){V++,A=R+1;continue}if(/^@(?:endif|endunless|endisset|endempty)(?![a-z])/.test(T)){V--,A=R+1;continue}if(V===0&&/^@else(?![a-z])/.test(T)){F=R;break}A=R+1}try{let R=K(O.trim()),T;if(F!==-1){let N=L.slice(0,F),k=L.slice(F+5);T=R?N:k}else T=R?L:"";G=G.substring(0,B)+T+G.substring(H+`@${q}`.length),W=!0}catch(R){let T=R instanceof Error?R.message:String(R),N=X0(U,`Error processing @${Q} directive: ${T}`,s.EVALUATION_ERROR);G=G.substring(0,B)+N+G.substring(H+`@${q}`.length);break}}return G}return Y=J(Y,"isset","endisset",(G)=>{let Q=b1(G,$);return Q!==void 0&&Q!==null},"Isset"),Y=J(Y,"empty","endempty",(G)=>{let Q=b1(G,$);return Q===void 0||Q===null||Q===""||Q===0||Q===!1||Array.isArray(Q)&&Q.length===0||typeof Q==="object"&&Q!==null&&Object.keys(Q).length===0},"Empty"),Y}function E3(X,$,Z){let Y=X,J="development";function G(Q,q,K,U){let W=new RegExp(`@${q}(?![a-z])`,"g"),w=new RegExp(`@${K}(?![a-z])`,"g"),z=new RegExp(`^@${q}(?![a-z])`),B=new RegExp(`^@${K}(?![a-z])`),j=Q,_=!0;while(_){_=!1,W.lastIndex=0;let H=W.exec(j);if(!H)break;let L=H.index,O=L+H[0].length;if(q==="env"){let I=j.substring(O).match(/^\s*\(\s*(['"])([^'"]+)\1\s*\)/);if(!I)break;O+=I[0].length,U=J===I[2]}let F=1,V=O,A=-1;while(F>0&&V<j.length){W.lastIndex=V,w.lastIndex=V;let I=W.exec(j),C=w.exec(j),S=I?I.index:1/0,b=C?C.index:1/0;if(S<b)F++,V=S+I[0].length;else if(b<1/0){if(F--,F===0){A=b;break}V=b+C[0].length}else break}if(A===-1){console.warn(`[stx] @${q} directive at position ${L} has no matching @${K} \u2014 the block was skipped.`);break}let R=j.substring(O,A),T=-1,N=0,k=0;while(k<R.length){let I=R.indexOf("@",k);if(I===-1)break;let C=R.substring(I);if(z.test(C)){N++,k=I+1;continue}if(B.test(C)){N--,k=I+1;continue}if(N===0&&/^@else(?![a-z])/.test(C)){T=I;break}k=I+1}let M;if(T!==-1){let I=R.slice(0,T),C=R.slice(T+5);M=U?I:C}else M=U?R:"";let y=`@${K}`.length;j=j.substring(0,L)+M+j.substring(A+y),_=!0}return j}return Y=G(Y,"env","endenv",!1),Y=G(Y,"production","endproduction",J==="production"),Y=G(Y,"development","enddevelopment",J==="development"),Y=G(Y,"staging","endstaging",J==="staging"),Y=G(Y,"testing","endtesting",J==="testing"),Y}var C8=E(()=>{aJ();w1();DX();O0()});function XG(X=16){let $=new Uint8Array(X);return crypto.getRandomValues($),btoa(String.fromCharCode(...$))}function P8(X,$){if(!X)return $?.nonceGenerator?.()??XG();let Z=eJ.get(X);if(!Z)Z=$?.nonceGenerator?.()??XG(),eJ.set(X,Z);return Z}function bB(X,$){let Z=[];for(let[Y,J]of Object.entries(X)){if(J===void 0||J===null)continue;if(typeof J==="boolean"){if(J)Z.push(Y);continue}if(Array.isArray(J)){let G=[...J];if($&&(Y==="script-src"||Y==="style-src"))G=G.filter((Q)=>!Q.startsWith("'nonce-")),G.push(`'nonce-${$}'`);if(G.length>0)Z.push(`${Y} ${G.join(" ")}`)}}return Z.join("; ")}function $G(X,$){return`<meta http-equiv="Content-Security-Policy" content="${bB(X,$).replace(/&/g,"&").replace(/"/g,""")}">`}function ZG(X,$,Z){if(!$.enabled||!$.addMetaTag)return X;if(X.includes('http-equiv="Content-Security-Policy"'))return X;if(!X.includes("<head>")&&!X.includes("<head "))return X;let Y=$.useNonce?P8(Z,$):void 0,J=$G($.directives,Y);return X.replace(/<head([^>]*)>/,`<head$1>
|
|
13286
|
+
${J}`)}function YG(X,$){let Z=X;return Z=Z.replace(/<script(?![^>]*\ssrc=)([^>]*)>/gi,(Y,J)=>{if(J.includes("nonce="))return Y;return`<script nonce="${$}"${J}>`}),Z=Z.replace(/<style([^>]*)>/gi,(Y,J)=>{if(J.includes("nonce="))return Y;return`<style nonce="${$}"${J}>`}),Z}function JG(X,$,Z,Y){let J=X,G=Y.csp;if(J=J.replace(/@csp\b/g,()=>{if(!G?.enabled||!G.directives)return"<!-- CSP not configured -->";let Q=G.useNonce?P8($,G):void 0;return $G(G.directives,Q)}),J=J.replace(/@cspNonce\b/g,()=>{if(!G?.enabled||!G.useNonce)return"";return P8($,G)}),G?.enabled&&G.useNonce)$.cspNonce=P8($,G);return J}var eJ;var GG=E(()=>{eJ=new WeakMap});import SB from"crypto";function PB(X=CB){let $=SB.randomBytes(Math.ceil(X/2)).toString("hex").slice(0,X);return D3=$,$}function vB(){if(!D3)PB();return D3}function xB(X=QG){let $=vB();return`<input type="hidden" name="${X}" value="${$}">`}function qG(X){return X.replace(/@csrf(?:\((['"])([^'"]*)\1\))?/g,($,Z,Y)=>{return xB(Y||QG)})}var CB=40,QG="_token",D3=null;var KG=()=>{};async function UG(X,$,Z,Y){if(!Y.customDirectives||Y.customDirectives.length===0)return X;let J=X;for(let G of Y.customDirectives){if(!G.name||typeof G.handler!=="function"){if(Y.debug)console.warn("Invalid custom directive:",G);continue}if(G.hasEndTag)J=await fB(J,G,$,Z,Y);else J=await gB(J,G,$,Z,Y)}return J}async function fB(X,$,Z,Y,J){let{name:G,handler:Q}=$,q=`@${G}`,K=`@end${G}`,U=X,W=N5(`${q}(?:\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\))?([\\s\\S]*?)${K}`,"g"),w=[],z=W.exec(U);while(z!==null){let[B,j="",_=""]=z,H=z.index||0;try{let L=j?WG(j):[],O=_.trim(),F=await Q(O,L,Z,Y);w.push({original:B,processed:F,startIndex:H})}catch(L){let O=L instanceof Error?L.message:String(L);if(J.debug)console.error(`Error processing custom directive @${G}:`,L);w.push({original:B,processed:X0("CustomDirective",`Error in @${G}${j?`(${j})`:""}: ${O}`,s.EVALUATION_ERROR),startIndex:H})}z=W.exec(U)}for(let B=w.length-1;B>=0;B--){let{original:j,processed:_}=w[B];U=U.replace(j,_)}return U}async function gB(X,$,Z,Y,J){let{name:G,handler:Q}=$,q=X,K=N5(`@${G}\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\)`,"g"),U=[],W=K.exec(q);while(W!==null){let[B,j=""]=W,_=W.index||0;try{let H=WG(j),L=await Q("",H,Z,Y);U.push({original:B,processed:L,startIndex:_})}catch(H){let L=H instanceof Error?H.message:String(H);if(J.debug)console.error(`Error processing custom directive @${G}:`,H);U.push({original:B,processed:X0("CustomDirective",`Error in @${G}(${j}): ${L}`,s.EVALUATION_ERROR),startIndex:_})}W=K.exec(q)}let w=N5(`@${G}(?!\\w)(?!\\s*\\()`,"g"),z=w.exec(q);while(z!==null){let[B]=z,j=z.index||0;try{let _=await Q("",[],Z,Y);U.push({original:B,processed:_,startIndex:j})}catch(_){let H=_ instanceof Error?_.message:String(_);if(J.debug)console.error(`Error processing custom directive @${G}:`,_);U.push({original:B,processed:X0("CustomDirective",`Error in @${G}: ${H}`,s.EVALUATION_ERROR),startIndex:j})}z=w.exec(q)}for(let B=U.length-1;B>=0;B--){let{original:j,processed:_}=U[B];q=q.replace(j,_)}return q}function WG(X){if(!X.trim())return[];let $=[],Z="",Y=!1,J="";for(let G=0;G<X.length;G++){let Q=X[G];if((Q==='"'||Q==="'")&&(G===0||X[G-1]!=="\\"))if(!Y)Y=!0,J=Q;else if(Q===J)Y=!1;else Z+=Q;else if(Q===","&&!Y)$.push(Z.trim()),Z="";else Z+=Q}if(Z.trim())$.push(Z.trim());return $.map((G)=>{let Q=G.trim();if(Q.startsWith('"')&&Q.endsWith('"')||Q.startsWith("'")&&Q.endsWith("'"))return Q.substring(1,Q.length-1);return Q})}var wG=E(()=>{w1();M5()});function Y5(X,$){if(typeof X!=="string"||X.length===0)throw Error(`@appearanceBootstrap ${$} must be a non-empty string`)}function uB(X){if(!X||typeof X!=="object"||Array.isArray(X))throw Error("@appearanceBootstrap expects an options object");let $=X,Z=$.appearance,Y=$.colorMode;if(Y5($.storageKey,"storageKey"),!Z||typeof Z!=="object"||Array.isArray(Z))throw Error("@appearanceBootstrap appearance must be an object");if(!Y||typeof Y!=="object"||Array.isArray(Y))throw Error("@appearanceBootstrap colorMode must be an object");if(Y5(Z.key,"appearance.key"),Y5(Z.attribute,"appearance.attribute"),Y5(Z.default,"appearance.default"),Y5(Y.key,"colorMode.key"),Y5(Y.attribute,"colorMode.attribute"),Y5(Y.default,"colorMode.default"),!jG.test(Z.key)||!jG.test(Y.key))throw Error("@appearanceBootstrap preference keys must be JavaScript property names");if(!zG.test(Z.attribute)||!zG.test(Y.attribute))throw Error("@appearanceBootstrap attributes must be lowercase data attribute names");if(!Array.isArray(Z.allowed)||Z.allowed.length===0||Z.allowed.some((J)=>typeof J!=="string"||J.length===0))throw Error("@appearanceBootstrap appearance.allowed must contain one or more strings");if(!Z.allowed.includes(Z.default))throw Error("@appearanceBootstrap appearance.default must be in appearance.allowed");if(!hB.has(Y.default))throw Error("@appearanceBootstrap colorMode.default must be light, dark, or system");return{storageKey:$.storageKey,appearance:{key:Z.key,attribute:Z.attribute,allowed:[...new Set(Z.allowed)],default:Z.default},colorMode:{key:Y.key,attribute:Y.attribute,default:Y.default}}}function dB(X){return JSON.stringify(X).replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/&/g,"\\u0026").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}function mB(X){return`<script data-stx-scoped data-stx-appearance-bootstrap>(function(){"use strict";const config=${dB(X)};const root=document.documentElement;let stored={};try{const raw=localStorage.getItem(config.storageKey);const parsed=raw?JSON.parse(raw):{};if(parsed&&typeof parsed==="object"&&!Array.isArray(parsed))stored=parsed}catch{}const selectedAppearance=config.appearance.allowed.includes(stored[config.appearance.key])?stored[config.appearance.key]:config.appearance.default;const selectedMode=["light","dark","system"].includes(stored[config.colorMode.key])?stored[config.colorMode.key]:config.colorMode.default;root.setAttribute("data-"+config.appearance.attribute,selectedAppearance);root.setAttribute("data-"+config.colorMode.attribute,selectedMode);let dark=selectedMode==="dark";if(selectedMode==="system"){try{dark=matchMedia("(prefers-color-scheme: dark)").matches}catch{dark=false}}root.classList.toggle("dark",dark);root.dataset.theme=dark?"dark":"light"}());</script>`}function lB(X,$){let Z=1,Y=null,J=!1;for(let G=$+1;G<X.length;G++){let Q=X[G];if(J){J=!1;continue}if(Y){if(Q==="\\")J=!0;else if(Q===Y)Y=null;continue}if(Q==='"'||Q==="'"||Q==="`"){Y=Q;continue}if(Q==="(")Z++;else if(Q===")"&&--Z===0)return G}return-1}function BG(X,$){let Z=X,Y=/@appearanceBootstrap\s*\(/g,J;while((J=Y.exec(Z))!==null){let G=J.index+J[0].length-1,Q=lB(Z,G);if(Q===-1)throw Error("@appearanceBootstrap has an unclosed options object");let q=Z.slice(G+1,Q).trim(),K=$0(`(${q})`,$),U=mB(uB(K));Z=Z.slice(0,J.index)+U+Z.slice(Q+1),Y.lastIndex=J.index+U.length}return Z}var zG,jG,hB;var _G=E(()=>{O0();zG=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,jG=/^[A-Za-z_$][\w$]*$/,hB=new Set(["light","dark","system"])});import cB from"crypto";function B0(X){return String(X??"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function v8(X,$,Z,Y){let J=X||$;return Z?`${J} ${Y}`:J}function c0(X){return String(X).replace(/\[\]$/,"").replace(/[^\w.:-]+/g,"-").replace(/^-+|-+$/g,"")}function P5(X,$){if(/\bid\s*=/i.test(X))return"";return` id="${B0($)}"`}function y3(X,$,Z){if(!$)return"";let Y="";if(!/\baria-invalid\s*=/i.test(Z))Y+=' aria-invalid="true"';if(!/\baria-describedby\s*=/i.test(Z))Y+=` aria-describedby="${B0(`${c0(X)}-error`)}"`;return Y}function pB(){return cB.randomUUID()}function x8(X,$){let Z=X;return Z=Z.replace(/@csrf/g,()=>{if(!$.csrf||typeof $.csrf!=="object"){let Y=pB();$.csrf={token:Y}}if($.csrf.field)return $.csrf.field;if($.csrf.token)return`<input type="hidden" name="_token" value="${B0($.csrf.token)}">`;return'<input type="hidden" name="_token" value="">'}),Z=Z.replace(/@method\(['"]([^'"]+)['"]\)/g,(Y,J)=>{let G=J.toUpperCase();if(J&&!["GET","POST"].includes(G))return`<input type="hidden" name="_method" value="${B0(G)}">`;return Y}),Z}function LG(X,$,Z=OG){let Y=X;return Y=Y.replace(/@form\(\s*(?:(?:'([^']+)'|"([^"]+)")\s*)?(?:,\s*(?:'([^']+)'|"([^"]+)")?)?\s*(?:,\s*\{([^}]+)\}\s*)?\)/g,(J,G,Q,q,K,U="")=>{let W=G||Q||"POST",w=q||K||"",z=S1(U),B=W.toUpperCase(),j=["GET","POST"].includes(B)?B:"POST",_=`<form method="${B0(j)}" action="${B0(w)}"${z?` ${z}`:""}>`;if(_+=`
|
|
13281
13287
|
${x8("@csrf",$)}`,!["GET","POST"].includes(B))_+=`
|
|
13282
|
-
${x8(`@method('${B}')`,$)}`;return _}),Y=Y.replace(/@endform/g,"</form>"),Y=Y.replace(/@input\(\s*(?:'([^']+)'|"([^"]+)")\s*(?:,\s*(?:(?:'([^']*)'|"([^"]*)")\s*)?)?(?:,\s*\{([^}]+)\})?\s*\)/g,(J,G,Q,q,K,U="")=>{let W=G||Q||"",w=q||K||"",z=S1(U),B=x7(W,$),j=B!==void 0&&B!==null?B:w||"",_=z.match(/type=['"]([^'"]+)['"]/i),H=_?_[1]:"text",L=f7(W,$),O=z.match(/class=['"]([^'"]+)['"]/i),F=v8(O?O[1]:"",Z.input,L,Z.inputError),V=z.replace(/class=['"][^'"]+['"]/i,"");return V=V.replace(/type=['"][^'"]+['"]/i,""),`<input type="${B0(H)}" name="${B0(W)}"${P5(z,
|
|
13283
|
-
`),Y=[{obj:$,indent:-1}];for(let J of Z){let G=J.replace(/#.*$/,"").trimEnd();if(!G.trim())continue;let Q=G.search(/\S/);if(Q===-1)continue;while(Y.length>1&&Y[Y.length-1].indent>=Q)Y.pop();let q=Y[Y.length-1].obj,K=G.match(/^(\s*)(\S[^:]*):\s*(.*)$/);if(K){let[,,U,W]=K,w=U.trim(),z=W.trim();if(z==="")q[w]={},Y.push({obj:q[w],indent:Q});else q[w]=tB(z)}}return $}function tB(X){if(X.startsWith("'")&&X.endsWith("'")||X.startsWith('"')&&X.endsWith('"'))return X.slice(1,-1);let $=X.toLowerCase();if($==="true"||$==="yes")return!0;if($==="false"||$==="no")return!1;if($==="null"||$==="~")return null;let Z=Number(X);if(!Number.isNaN(Z)&&X!=="")return Z;return X}function eB(X){switch(X){case"yaml":case"yml":return["yaml"];case"js":case"ts":return["ts"];case"json":default:return["json"]}}async function X_(X,$){return rB(X,$)}function $_(X,$){for(let Z of X){let Y=Z.trim(),J=Y.match(/^\{(\d+)\}\s*(.*)$/);if(J){let Q=Number.parseInt(J[1],10);if($===Q)return J[2];continue}let G=Y.match(/^\[(\d+),(\d+|\*)\]\s*(.*)$/);if(G){let Q=Number.parseInt(G[1],10),q=G[2]==="*"?Number.POSITIVE_INFINITY:Number.parseInt(G[2],10);if($>=Q&&$<=q)return G[3];continue}}if(X.length===2)return $===1?X[0].trim():X[1].trim();if($<X.length)return X[$].trim();return X[X.length-1].trim()}function Z_(X,$={}){return
|
|
13288
|
+
${x8(`@method('${B}')`,$)}`;return _}),Y=Y.replace(/@endform/g,"</form>"),Y=Y.replace(/@input\(\s*(?:'([^']+)'|"([^"]+)")\s*(?:,\s*(?:(?:'([^']*)'|"([^"]*)")\s*)?)?(?:,\s*\{([^}]+)\})?\s*\)/g,(J,G,Q,q,K,U="")=>{let W=G||Q||"",w=q||K||"",z=S1(U),B=x7(W,$),j=B!==void 0&&B!==null?B:w||"",_=z.match(/type=['"]([^'"]+)['"]/i),H=_?_[1]:"text",L=f7(W,$),O=z.match(/class=['"]([^'"]+)['"]/i),F=v8(O?O[1]:"",Z.input,L,Z.inputError),V=z.replace(/class=['"][^'"]+['"]/i,"");return V=V.replace(/type=['"][^'"]+['"]/i,""),`<input type="${B0(H)}" name="${B0(W)}"${P5(z,c0(W))} value="${B0(j)}" class="${F}"${y3(W,L,z)}${V?` ${V}`:""}>`}),Y=Y.replace(/@textarea\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)([\s\S]*?)@endtextarea/g,(J,G,Q="",q="")=>{let K=S1(Q),U=x7(G,$)||q.trim(),W=f7(G,$),w=K.match(/class=['"]([^'"]+)['"]/i),z=v8(w?w[1]:"",Z.input,W,Z.inputError),B=K.replace(/class=['"][^'"]+['"]/i,"");return`<textarea name="${B0(G)}"${P5(K,c0(G))} class="${z}"${y3(G,W,K)}${B?` ${B}`:""}>${B0(U)}</textarea>`}),Y=Y.replace(/@select\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)([\s\S]*?)@endselect/g,(J,G,Q="",q)=>{let K=S1(Q),U=x7(G,$),W=f7(G,$),w=K.match(/class=['"]([^'"]+)['"]/i),z=v8(w?w[1]:"",Z.input,W,Z.inputError),B=K.replace(/class=['"][^'"]+['"]/i,""),j=q;if(U!==void 0)j=q.replace(/(<option[^>]*value=['"]([^'"]+)['"][^>]*>)/gi,(_,H,L)=>{if((Array.isArray(U)?U.some((F)=>String(F)===L):String(U)===L)&&!H.includes("selected"))return H.replace(/(<option)/,"$1 selected");return _});return`<select name="${B0(G)}"${P5(K,c0(G))} class="${z}"${y3(G,W,K)}${B?` ${B}`:""}>${j}</select>`}),Y=Y.replace(/@checkbox\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?(?:,\s*\{([^}]+)\})?\)/g,(J,G,Q,q="")=>{let K=Q===void 0?"1":Q,U=Q===void 0?c0(G):`${c0(G)}-${c0(K)}`,W=S1(q),w=x7(G,$),z=w!==void 0&&(Array.isArray(w)?w.some((H)=>String(H)===K):w===!0||String(w)===K),B=W.match(/class=['"]([^'"]+)['"]/i),j=B?B[1]:Z.checkInput,_=W.replace(/class=['"][^'"]+['"]/i,"");return`<input type="checkbox" name="${B0(G)}"${P5(W,U)} value="${B0(K)}" class="${j}"${z?" checked":""}${_?` ${_}`:""}>`}),Y=Y.replace(/@radio\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)/g,(J,G,Q,q="")=>{let K=S1(q),U=x7(G,$),W=U!==void 0&&U===Q,w=K.match(/class=['"]([^'"]+)['"]/i),z=w?w[1]:Z.checkInput,B=K.replace(/class=['"][^'"]+['"]/i,"");return`<input type="radio" name="${B0(G)}"${P5(K,`${c0(G)}-${c0(Q)}`)} value="${B0(Q)}" class="${z}"${W?" checked":""}${B?` ${B}`:""}>`}),Y=Y.replace(/@file\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)/g,(J,G,Q="")=>{let q=S1(Q),K=q.match(/accept=['"]([^'"]+)['"]/i),U=K?K[1]:"",W=q.includes("multiple"),w=f7(G,$),z=q.match(/class=['"]([^'"]+)['"]/i),B=v8(z?z[1]:"",Z.input,w,Z.inputError),j=q.replace(/class=['"][^'"]+['"]/gi,"").replace(/accept=['"][^'"]+['"]/gi,"").replace(/\bmultiple\b/gi,"").trim(),_=[`<input type="file" name="${B0(G)}"${P5(q,c0(G))}`,`class="${B}"`];if(U)_.push(`accept="${B0(U)}"`);if(W)_.push("multiple");if(j)_.push(j);return`${_.join(" ")}>`}),Y=Y.replace(/@label\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)([\s\S]*?)@endlabel/g,(J,G,Q="",q)=>{let K=S1(Q),U=K.match(/class=['"]([^'"]+)['"]/i),W=U?U[1]:Z.label,w=K.replace(/class=['"][^'"]+['"]/i,"");return`<label for="${B0(c0(G))}" class="${W}"${w?` ${w}`:""}>${q}</label>`}),Y}function FG(X,$,Z=OG){return X.replace(/@error\(['"]([^'"]+)['"]\)([\s\S]*?)@enderror/g,(Y,J,G)=>{try{if(f7(J,$)){let Q=G.replace(/\{\{([^}]+)\}\}/g,(q,K)=>{try{if(K.trim()==="$message"||K.trim()==="message")return HG(J,$);if(K.trim().includes("errors.first")||K.trim().includes("$errors.first")){if(typeof $.errors?.first==="function")return $.errors.first(J);return HG(J,$)}let U=K.trim();if(G0(U)){let W=$0(U,$);return W!==void 0?String(W):U}return U}catch{return K}});return`<div id="${B0(`${c0(J)}-error`)}" role="alert">${Q}</div>`}return""}catch(Q){return console.error("Error processing @error directive:",Q),Y}})}function f7(X,$){if(!$.errors)return!1;if(typeof $.errors.has==="function")return $.errors.has(X);if(typeof $.errors==="object")return Object.prototype.hasOwnProperty.call($.errors,X);return!1}function HG(X,$){if(!$.errors)return"";if(typeof $.errors.get==="function")return $.errors.get(X);if(typeof $.errors==="object"&&Object.prototype.hasOwnProperty.call($.errors,X)){let Z=$.errors[X];return Array.isArray(Z)?Z[0]:String(Z)}return""}function x7(X,$){let Z;if($.old&&typeof $.old==="function")return $.old(X);if($.old&&typeof $.old==="object")return $.old[X];if(X.endsWith("[]")){let Y=X.slice(0,-2);if(Z=$[Y],Z!==void 0)return Z}return $[X]}function S1(X){if(!X.trim())return"";let $=[],Z=X.trim(),Y=/([\w-]+)\s*:\s*(['"]?)([^,'"]*)\2(?:\s*,\s*|\s*$)/g,J;while((J=Y.exec(Z))!==null){let[,G,,Q]=J;$.push(`${G}="${Q.trim()}"`)}return $.join(" ")}var OG;var VG=E(()=>{O0();OG={input:"form-control",inputError:"is-invalid",checkInput:"form-check-input",label:"form-label",errorFeedback:"invalid-feedback"}});import C3 from"path";async function iB(){if(g7!==void 0)return g7;try{g7=(await import("@stacksjs/ts-i18n")).loadLocale??null}catch{g7=null}return g7}function nB(X,$=0){if($<=0)return!1;return Date.now()-X.loadedAt>$}async function rB(X,$){if({...x3,...$.i18n}.cache&&P3[X]){let J=P3[X],G=$.i18n?.cacheMaxAge??0;if(!nB(J,G))return J.translations}if(h7[X]?.state==="loading")return h7[X].promise;b3[X]="loading";let Y=v3(X,$).then((J)=>{return b3[X]="loaded",delete h7[X],J}).catch((J)=>{throw b3[X]="error",h7[X]={promise:Y,state:"error",error:J instanceof Error?J:Error(String(J))},J});return h7[X]={promise:Y,state:"loading"},Y}async function v3(X,$){let Z={...x3,...$.i18n},Y=C3.isAbsolute(Z.translationsDir)?Z.translationsDir:C3.resolve($.root||process.cwd(),Z.translationsDir);try{let J=await iB(),G=J?await J(X,{translationsDir:Y,defaultLocale:Z.defaultLocale,sources:eB(Z.format)}):await oB(X,Z,Y);if(G===void 0){if(X!==Z.defaultLocale)return v3(Z.defaultLocale,$);return{}}let Q=G;if(Z.cache)P3[X]={translations:Q,loadedAt:Date.now(),locale:X};return Q}catch(J){if($.debug)console.error(`Error loading translation file for locale "${X}":`,J);if(X!==Z.defaultLocale)return v3(Z.defaultLocale,$);return{}}}async function oB(X,$,Z){let Y=C3.join(Z,`${X}${sB($.format)}`);try{let J=await import(Y);return J.default||J}catch(J){try{let G=await Bun.file(Y).text();if($.format==="yaml"||$.format==="yml")return aB(G);if($.format==="json")return JSON.parse(G);throw J}catch{return}}}function sB(X){switch(X){case"yaml":return".yaml";case"yml":return".yml";case"js":return".js";case"ts":return".ts";case"json":default:return".json"}}function aB(X){let $={},Z=X.split(`
|
|
13289
|
+
`),Y=[{obj:$,indent:-1}];for(let J of Z){let G=J.replace(/#.*$/,"").trimEnd();if(!G.trim())continue;let Q=G.search(/\S/);if(Q===-1)continue;while(Y.length>1&&Y[Y.length-1].indent>=Q)Y.pop();let q=Y[Y.length-1].obj,K=G.match(/^(\s*)(\S[^:]*):\s*(.*)$/);if(K){let[,,U,W]=K,w=U.trim(),z=W.trim();if(z==="")q[w]={},Y.push({obj:q[w],indent:Q});else q[w]=tB(z)}}return $}function tB(X){if(X.startsWith("'")&&X.endsWith("'")||X.startsWith('"')&&X.endsWith('"'))return X.slice(1,-1);let $=X.toLowerCase();if($==="true"||$==="yes")return!0;if($==="false"||$==="no")return!1;if($==="null"||$==="~")return null;let Z=Number(X);if(!Number.isNaN(Z)&&X!=="")return Z;return X}function eB(X){switch(X){case"yaml":case"yml":return["yaml"];case"js":case"ts":return["ts"];case"json":default:return["json"]}}async function X_(X,$){return rB(X,$)}function $_(X,$){for(let Z of X){let Y=Z.trim(),J=Y.match(/^\{(\d+)\}\s*(.*)$/);if(J){let Q=Number.parseInt(J[1],10);if($===Q)return J[2];continue}let G=Y.match(/^\[(\d+),(\d+|\*)\]\s*(.*)$/);if(G){let Q=Number.parseInt(G[1],10),q=G[2]==="*"?Number.POSITIVE_INFINITY:Number.parseInt(G[2],10);if($>=Q&&$<=q)return G[3];continue}}if(X.length===2)return $===1?X[0].trim():X[1].trim();if($<X.length)return X[$].trim();return X[X.length-1].trim()}function Z_(X,$={}){return TG(X,$)}function TG(X,$){let Z="",Y=0;while(Y<X.length)if(X[Y]==="{"){let J=Y_(X,Y);if(J===-1){Z+=X[Y],Y++;continue}let G=X.slice(Y+1,J);Z+=J_(G,$),Y=J+1}else if(X[Y]==="'"&&Y+1<X.length)if(X[Y+1]==="'")Z+="'",Y+=2;else if(X[Y+1]==="{"||X[Y+1]==="}")Z+=X[Y+1],Y+=2;else Z+=X[Y],Y++;else Z+=X[Y],Y++;return Z}function Y_(X,$){let Z=0;for(let Y=$;Y<X.length;Y++)if(X[Y]==="{")Z++;else if(X[Y]==="}"){if(Z--,Z===0)return Y}return-1}function J_(X,$){let Z=G_(X);if(Z.length===0)return`{${X}}`;let Y=Z[0].trim(),J=$[Y];if(Z.length===1)return J!==void 0?String(J):`{${Y}}`;switch(Z[1].trim().toLowerCase()){case"plural":return Q_(J,Z.slice(2).join(","),$);case"select":return K_(J,Z.slice(2).join(","));case"selectordinal":return U_(J,Z.slice(2).join(","));case"number":return w_(J,Z[2]?.trim());case"date":return z_(J,Z[2]?.trim());case"time":return j_(J,Z[2]?.trim());default:return J!==void 0?String(J):`{${X}}`}}function G_(X){let $=[],Z="",Y=0;for(let J=0;J<X.length;J++){let G=X[J];if(G==="{")Y++,Z+=G;else if(G==="}")Y--,Z+=G;else if(G===","&&Y===0)$.push(Z),Z="";else Z+=G}if(Z)$.push(Z);return $}function Q_(X,$,Z){let Y=Number(X)||0,J=f3($),G=`=${Y}`;if(J[G])return S3(J[G],Y,Z);let Q=q_(Y);if(J[Q])return S3(J[Q],Y,Z);if(J.other)return S3(J.other,Y,Z);return String(Y)}function S3(X,$,Z){let Y=X.replace(/#/g,String($));return TG(Y,Z)}function q_(X){let $=Math.abs(X),Z=Math.floor($),Y=String(X).includes(".")?String(X).split(".")[1].length:0;if(Z===1&&Y===0)return"one";return"other"}function K_(X,$){let Z=String(X||""),Y=f3($);if(Y[Z])return Y[Z];return Y.other||String(X)}function U_(X,$){let Z=Number(X)||0,Y=f3($),J=W_(Z);if(Y[J])return Y[J].replace(/#/g,String(Z));if(Y.other)return Y.other.replace(/#/g,String(Z));return String(Z)}function W_(X){let $=Math.abs(X),Z=$%10,Y=$%100;if(Z===1&&Y!==11)return"one";if(Z===2&&Y!==12)return"two";if(Z===3&&Y!==13)return"few";return"other"}function f3(X){let $={},Z=/(\w+|=\d+)\s*\{([^{}]*(?:\{[^{}]*\}[^{}]*)*)\}/g,Y=Z.exec(X);while(Y!==null)$[Y[1]]=Y[2],Y=Z.exec(X);return $}function w_(X,$){let Z=Number(X);if(Number.isNaN(Z))return String(X);switch($){case"integer":return Math.floor(Z).toLocaleString();case"percent":return`${(Z*100).toFixed(0)}%`;case"currency":return Z.toLocaleString(void 0,{style:"currency",currency:"USD"});default:return Z.toLocaleString()}}function z_(X,$){let Z=X instanceof Date?X:new Date(String(X));if(Number.isNaN(Z.getTime()))return String(X);let Y={};switch($){case"short":Y.dateStyle="short";break;case"medium":Y.dateStyle="medium";break;case"long":Y.dateStyle="long";break;case"full":Y.dateStyle="full";break;default:Y.dateStyle="medium"}return Z.toLocaleDateString(void 0,Y)}function j_(X,$){let Z=X instanceof Date?X:new Date(String(X));if(Number.isNaN(Z.getTime()))return String(X);let Y={};switch($){case"short":Y.timeStyle="short";break;case"medium":Y.timeStyle="medium";break;case"long":Y.timeStyle="long";break;case"full":Y.timeStyle="full";break;default:Y.timeStyle="short"}return Z.toLocaleTimeString(void 0,Y)}function B_(X){return/\{[^}]+,\s*(?:plural|select|selectordinal|number|date|time)\s*,/.test(X)}function AG(X,$,Z=!0,Y={}){let J=X.split("."),G=$;for(let q of J){if(G===void 0||G===null)break;G=G[q]}if(G===void 0||G===null)return Z?X:"";let Q=String(G);if(B_(Q))return Z_(Q,Y);if(Q.includes("|")&&"count"in Y){let q=Number(Y.count),K=Q.split("|");Q=$_(K,q)}for(let[q,K]of Object.entries(Y)){let U=q.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");Q=Q.replace(new RegExp(`:${U}`,"g"),String(K))}return Q}async function NG(X,$,Z,Y){let J=X,G=/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\})\s*)?\)([\s\S]*?)@endtranslate/g,Q={...x3,...Y.i18n},q=await X_(Q.locale,Y);$.__translations=q,$.__locale=Q.locale,$.__i18nConfig=Q,J=await RG(J,G,async(W,w,z,B,j)=>{try{let _={};if(z)try{let L=[()=>JSON.parse(z),()=>{let O=`{"data":${z}}`,F=JSON.parse(O);return typeof F.data==="object"?F.data:{}},()=>{return H0(z,$)}];for(let O of L)try{if(_=O(),Object.keys(_).length>0)break}catch{}}catch(L){if(Y.debug)console.error("Error parsing parameters for @translate directive:",L)}return AG(w,q,Q.fallbackToKey,_)||B.trim()}catch(_){if(Y.debug)console.error("Error processing @translate directive:",_);return X0("Translate",`Error in @translate('${w}'): ${_ instanceof Error?_.message:String(_)}`,s.EVALUATION_ERROR)}});let K=/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]+\})\s*)?\)/g;if(Y.debug){console.warn(`Processing translations in template. Sections: ${J.includes("<h2>Translation with Parameters</h2>")?"Parameters section found":"Parameters section missing"}`);let W=[...J.matchAll(K)];console.warn(`Found ${W.length} @translate matches`),W.forEach((w,z)=>console.warn(`Match ${z}: ${w[0]}, Key: ${w[1]}, Params: ${w[2]||"none"}`))}return J=await RG(J,/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\})\s*)?\)/g,async(W,w,z,B)=>{try{let j={};if(z)try{let _=[()=>JSON.parse(z),()=>{let H=`{"data":${z}}`,L=JSON.parse(H);return typeof L.data==="object"?L.data:{}},()=>{return H0(z,$)}];for(let H of _)try{if(j=H(),Object.keys(j).length>0)break}catch{}}catch(_){if(Y.debug)console.error("Error parsing parameters for @translate directive:",_)}return AG(w,q,Q.fallbackToKey,j)}catch(j){if(Y.debug)console.error("Error processing @translate directive:",j);return X0("Translate",`Error in @translate('${w}'): ${j instanceof Error?j.message:String(j)}`,s.EVALUATION_ERROR)}}),J}async function RG(X,$,Z){let Y=[];return X.replace($,(G,...Q)=>{let q=Z(G,...Q).then((K)=>({match:G,replacement:K}));return Y.push(q),G}),(await Promise.all(Y)).reduce((G,{match:Q,replacement:q})=>G.replace(Q,q),X)}var g7,x3,P3,h7,b3;var MG=E(()=>{w1();O0();x3={defaultLocale:"en",locale:"en",translationsDir:"translations",format:"yaml",fallbackToKey:!0,cache:!0},P3={},h7={},b3={}});var u3={};n(u3,{streamingSuspenseDirective:()=>EG,streamToResponse:()=>k_,streamTemplateSimple:()=>R_,streamTemplate:()=>H_,renderStreamingPage:()=>L_,registerStreamingDirectives:()=>N_,processStreamDirectives:()=>V_,processSectionDirectives:()=>M_,islandDirective:()=>DG,generateHydrationRuntime:()=>I_,extractStreamBoundaries:()=>A_,createStreamRenderer:()=>T_,buildSuspenseResolveScript:()=>h3,SUSPENSE_RESOLVER_RUNTIME:()=>IG});import f8 from"path";function __(X){let $=[],Z=0,Y;kG.lastIndex=0;while((Y=kG.exec(X))!==null){if(Y.index>Z){let Q=X.slice(Z,Y.index);if(Q.trim())$.push({type:$.length===0?"shell":"content",content:Q})}let J=Y[1],G=Y[2];$.push({type:"suspense",name:J,content:G}),Z=Y.index+Y[0].length}if(Z<X.length){let J=X.slice(Z);if(J.trim())$.push({type:$.length===0?"shell":"content",content:J})}if($.length===0)$.push({type:"shell",content:X});return $}async function H_(X,$={},Z={}){let Y={...X5,...Z,streaming:{...g3,...Z.streaming}},J=Y.streaming?.bufferSize||16384;return new ReadableStream({async start(G){try{let Q=await Bun.file(X).text(),q=Q.match(/<script\b[^>]*\bserver\b[^>]*>([\s\S]*?)<\/script>/i),K=q?q[1]:"",U=Q.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),W={...$,__filename:X,__dirname:f8.dirname(X)};if(K.trim())await i1(K,W,X);let w=__(U),z=new Set;if(!w.some((j)=>j.type==="suspense")){let j=Y.streaming?.strategy||"auto",_=new RegExp(J5.source,"g");if(!(j!=="manual"&&_.test(U))){let L=await R0(U,W,X,Y,z);for(let O=0;O<L.length;O+=J)G.enqueue(L.slice(O,O+J)),await new Promise((F)=>setTimeout(F,0))}else{let L=[],O=new RegExp(J5.source,"g"),F;while((F=O.exec(U))!==null)L.push({name:F[1],content:F[2],start:F.index,end:F.index+F[0].length});let V=0;for(let A of L){if(A.start>V){let T=U.slice(V,A.start);if(T.trim()){let N=await R0(T,W,X,Y,z);G.enqueue(N),await new Promise((k)=>setTimeout(k,0))}}let R=await R0(A.content,W,X,Y,z);G.enqueue(R),await new Promise((T)=>setTimeout(T,0)),V=A.end}if(V<U.length){let A=U.slice(V);if(A.trim()){let R=await R0(A,W,X,Y,z);G.enqueue(R)}}}}else{let j=new Map;for(let H of w)if(H.type==="shell"||H.type==="content"){let L=await R0(H.content,W,X,Y,z);G.enqueue(L)}else if(H.type==="suspense"&&H.name){let L=`stx-suspense-${H.name}`;G.enqueue(`<div id="${L}" data-suspense="${H.name}" style="display:contents;">
|
|
13284
13290
|
<template data-suspense-fallback>Loading...</template>
|
|
13285
13291
|
</div>`),j.set(H.name,R0(H.content,W,X,Y,z))}G.enqueue(`
|
|
13286
13292
|
<script>
|
|
@@ -13303,8 +13309,8 @@ ${J}`)}function YG(X,$){let Z=X;return Z=Z.replace(/<script(?![^>]*\ssrc=)([^>]*
|
|
|
13303
13309
|
window.__stxSuspense.resolve('${X}', \`${Y}\`);
|
|
13304
13310
|
</script>`}catch(Z){let Y=Z instanceof Error?Z.message:String(Z);return`
|
|
13305
13311
|
<script>
|
|
13306
|
-
window.__stxSuspense.resolve('${X}', '<div class="stx-error">Error loading content: ${
|
|
13307
|
-
</script>`}}function O_(X,$,Z){if(!$||$<=0)return X;let Y,J=new Promise((G,Q)=>{Y=setTimeout(()=>Q(Error(`streaming boundary "${Z}" timed out after ${$}ms`)),$)});return Promise.race([X,J]).finally(()=>clearTimeout(Y))}function L_(X,$=[],Z={}){let Y=Z.timeoutMs??0;return new ReadableStream({async start(J){try{if(J.enqueue(X),$.length>0)J.enqueue(IG),await Promise.all($.map(async(G)=>{let Q=O_(G.render(),Y,G.id);J.enqueue(await h3(G.id,Q))}));J.close()}catch(G){J.error(G)}}})}function V_(X,$){return X.replace(F_,(Z,Y,J)=>{let G=Y.trim(),Q=J.split(/@fallback/i),q=Q[0].trim(),K=Q.length>1?Q.slice(1).join("@fallback").trim():"";if(!$.__streamTemplates)$.__streamTemplates={};return $.__streamTemplates[G]=q,`<div data-suspense="${G}">${K}</div>`})}function A_(X){let $=X?.streamBoundaries;if(!$||typeof $!=="object")return;let Z=Object.entries($).filter(([,Y])=>typeof Y==="function");return Z.length>0?Z.map(([Y,J])=>({id:Y,render:J})):void 0}async function R_(X,$={},Z={}){let Y={...X5,...Z,streaming:{...g3,...Z.streaming}},J=Y.streaming?.bufferSize||16384;return new ReadableStream({async start(G){try{let Q=await Bun.file(X).text(),q=Q.match(/<script\b[^>]*\bserver\b[^>]*>([\s\S]*?)<\/script>/i),K=q?q[1]:"",U=Q.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),W={...$,__filename:X,__dirname:f8.dirname(X)};if(K.trim())await i1(K,W,X);let w=new Set,z=Y.streaming?.strategy||"auto",B=new RegExp(J5.source,"g");if(!(z!=="manual"&&B.test(U))){let _=await R0(U,W,X,Y,w);for(let H=0;H<_.length;H+=J)G.enqueue(_.slice(H,H+J))}else{let _=[],H=new RegExp(J5.source,"g"),L;while((L=H.exec(U))!==null)_.push({name:L[1],content:L[2],start:L.index,end:L.index+L[0].length});let O=0;for(let F of _){if(F.start>O){let A=U.slice(O,F.start);if(A.trim()){let R=await R0(A,W,X,Y,w);G.enqueue(R)}}let V=await R0(F.content,W,X,Y,w);G.enqueue(V),O=F.end}if(O<U.length){let F=U.slice(O);if(F.trim()){let V=await R0(F,W,X,Y,w);G.enqueue(V)}}}G.close()}catch(Q){G.error(Q)}}})}async function
|
|
13312
|
+
window.__stxSuspense.resolve('${X}', '<div class="stx-error">Error loading content: ${o0(Y)}</div>');
|
|
13313
|
+
</script>`}}function O_(X,$,Z){if(!$||$<=0)return X;let Y,J=new Promise((G,Q)=>{Y=setTimeout(()=>Q(Error(`streaming boundary "${Z}" timed out after ${$}ms`)),$)});return Promise.race([X,J]).finally(()=>clearTimeout(Y))}function L_(X,$=[],Z={}){let Y=Z.timeoutMs??0;return new ReadableStream({async start(J){try{if(J.enqueue(X),$.length>0)J.enqueue(IG),await Promise.all($.map(async(G)=>{let Q=O_(G.render(),Y,G.id);J.enqueue(await h3(G.id,Q))}));J.close()}catch(G){J.error(G)}}})}function V_(X,$){return X.replace(F_,(Z,Y,J)=>{let G=Y.trim(),Q=J.split(/@fallback/i),q=Q[0].trim(),K=Q.length>1?Q.slice(1).join("@fallback").trim():"";if(!$.__streamTemplates)$.__streamTemplates={};return $.__streamTemplates[G]=q,`<div data-suspense="${G}">${K}</div>`})}function A_(X){let $=X?.streamBoundaries;if(!$||typeof $!=="object")return;let Z=Object.entries($).filter(([,Y])=>typeof Y==="function");return Z.length>0?Z.map(([Y,J])=>({id:Y,render:J})):void 0}async function R_(X,$={},Z={}){let Y={...X5,...Z,streaming:{...g3,...Z.streaming}},J=Y.streaming?.bufferSize||16384;return new ReadableStream({async start(G){try{let Q=await Bun.file(X).text(),q=Q.match(/<script\b[^>]*\bserver\b[^>]*>([\s\S]*?)<\/script>/i),K=q?q[1]:"",U=Q.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),W={...$,__filename:X,__dirname:f8.dirname(X)};if(K.trim())await i1(K,W,X);let w=new Set,z=Y.streaming?.strategy||"auto",B=new RegExp(J5.source,"g");if(!(z!=="manual"&&B.test(U))){let _=await R0(U,W,X,Y,w);for(let H=0;H<_.length;H+=J)G.enqueue(_.slice(H,H+J))}else{let _=[],H=new RegExp(J5.source,"g"),L;while((L=H.exec(U))!==null)_.push({name:L[1],content:L[2],start:L.index,end:L.index+L[0].length});let O=0;for(let F of _){if(F.start>O){let A=U.slice(O,F.start);if(A.trim()){let R=await R0(A,W,X,Y,w);G.enqueue(R)}}let V=await R0(F.content,W,X,Y,w);G.enqueue(V),O=F.end}if(O<U.length){let F=U.slice(O);if(F.trim()){let V=await R0(F,W,X,Y,w);G.enqueue(V)}}}G.close()}catch(Q){G.error(Q)}}})}async function T_(X,$={}){let Z={...X5,...$,streaming:{...g3,...$.streaming}},Y=await Bun.file(X).text(),J=Y.match(/<script\b[^>]*\bserver\b[^>]*>([\s\S]*?)<\/script>/i),G=J?J[1]:"",Q=Y.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),q=Q,K={},U;J5.lastIndex=0;while((U=J5.exec(Q))!==null){let z=U[1],B=U[2];K[z]=B}let W=Q.replace(J5,"");return{renderShell:async(z={})=>{let B={...z,__filename:X,__dirname:f8.dirname(X)};return await i1(G,B,X),R0(W,B,X,Z,new Set)},renderSection:async(z,B={})=>{try{if(!K[z])return`<div class="error-message">Section "${o0(z)}" not found in template "${o0(X)}"</div>`;let j={...B,__filename:X,__dirname:f8.dirname(X)};await i1(G,j,X);let _=new Set;return await R0(K[z],j,X,Z,_)}catch(j){let _=j instanceof Error?j.message:String(j);return U0("Expression",_,X,K[z]||"",0,K[z]||"")}},getSections:()=>{return Object.keys(K)},getTemplate:()=>{return q}}}function N_(X={}){let $=[];if(X.streaming?.enabled)$.push(EG);if(X.hydration?.enabled)$.push(DG);return $}async function M_(X,$,Z,Y={}){return X}function k_(X,$={}){let Z=new TextEncoder,Y=X.pipeThrough(new TransformStream({transform(G,Q){Q.enqueue(Z.encode(G))}})),J=new Headers($.headers);if(!J.has("Content-Type"))J.set("Content-Type","text/html; charset=utf-8");if(!J.has("Transfer-Encoding"))J.set("Transfer-Encoding","chunked");if(!J.has("X-Content-Type-Options"))J.set("X-Content-Type-Options","nosniff");if(!J.has("X-Accel-Buffering"))J.set("X-Accel-Buffering","no");return new Response(Y,{...$,headers:J})}function I_(X={mode:"full"}){let{mode:$,components:Z={},dynamicImports:Y=!0}=X,J=Object.entries(Z).map(([G,Q])=>`'${G}': ${Y?`() => import('${Q}')`:`require('${Q}')`}`).join(`,
|
|
13308
13314
|
`);if($==="loader")return`
|
|
13309
13315
|
(function() {
|
|
13310
13316
|
window.__stx = window.__stx || {};
|
|
@@ -13472,8 +13478,8 @@ else {
|
|
|
13472
13478
|
${K?`{${K}}`:"{}"}
|
|
13473
13479
|
</script>
|
|
13474
13480
|
</div>`}}});var SG={};n(SG,{warnUnbalancedTags:()=>m3,findUnbalancedTags:()=>bG});function v5(X){return X.replace(/[^\n]/g," ")}function bG(X){let $=X.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,v5).replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,v5).replace(/<!--[\s\S]*?-->/g,v5).replace(/\{\{\{[\s\S]*?\}\}\}/g,v5).replace(/\{\{[\s\S]*?\}\}/g,v5).replace(/\{!![\s\S]*?!!\}/g,v5),Z=new Map,Y=new Map,J=/<(\/?)([A-Za-z][\w-]*)\b(?:[^>"']|"[^"]*"|'[^']*')*?(\/?)>/g,G;while((G=J.exec($))!==null){let q=G[1]==="/",K=G[2],U=G[3]==="/";if(E_.has(K.toLowerCase()))continue;if(U)continue;if(q)Y.set(K,(Y.get(K)??0)+1);else{let W=Z.get(K);if(W)W.count++;else{let w=$.slice(0,G.index).split(`
|
|
13475
|
-
`).length;Z.set(K,{count:1,firstLine:w})}}}let Q=[];for(let q of new Set([...Z.keys(),...Y.keys()])){if(D_.has(q.toLowerCase()))continue;let K=Z.get(q)?.count??0,U=Y.get(q)??0;if(K!==U)Q.push({tag:q,opened:K,closed:U,firstOpenLine:Z.get(q)?.firstLine??0})}return Q}function m3(X,$){let Z;try{Z=bG(X)}catch{return}if(Z.length===0)return;let Y=`${$}:${X.length}`;if(yG.has(Y))return;yG.add(Y);let J=$?$.split(/[/\\]/).pop()||$:"template";for(let{tag:G,opened:Q,closed:q,firstOpenLine:K}of Z)if(Q>q){let U=K?` (first opened at line ${K})`:"";console.warn(`[stx] ${J}: <${G}> ${Q} opened, ${q} closed \u2014 an unclosed <${G}>${U} may swallow the content that follows it.`)}else console.warn(`[stx] ${J}: <${G}> ${Q} opened, ${q} closed \u2014 ${q-Q} stray </${G}>.`)}var E_,D_,yG;var l3=E(()=>{E_=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),D_=new Set(["html","head","body","p","li","dt","dd","rt","rp","option","optgroup","thead","tbody","tfoot","tr","td","th","colgroup","caption"]);yG=new Set});import
|
|
13476
|
-
`}if(F){let S=[];if(W==="avif"||W==="auto"){let b=d7(Y,V,A,B,"avif"),P=R?s3(Y,r3,B,"avif"):`${b}`;S.push(`<source type="image/avif" srcset="${I0(P)}"${
|
|
13481
|
+
`).length;Z.set(K,{count:1,firstLine:w})}}}let Q=[];for(let q of new Set([...Z.keys(),...Y.keys()])){if(D_.has(q.toLowerCase()))continue;let K=Z.get(q)?.count??0,U=Y.get(q)??0;if(K!==U)Q.push({tag:q,opened:K,closed:U,firstOpenLine:Z.get(q)?.firstLine??0})}return Q}function m3(X,$){let Z;try{Z=bG(X)}catch{return}if(Z.length===0)return;let Y=`${$}:${X.length}`;if(yG.has(Y))return;yG.add(Y);let J=$?$.split(/[/\\]/).pop()||$:"template";for(let{tag:G,opened:Q,closed:q,firstOpenLine:K}of Z)if(Q>q){let U=K?` (first opened at line ${K})`:"";console.warn(`[stx] ${J}: <${G}> ${Q} opened, ${q} closed \u2014 an unclosed <${G}>${U} may swallow the content that follows it.`)}else console.warn(`[stx] ${J}: <${G}> ${Q} opened, ${q} closed \u2014 ${q-Q} stray </${G}>.`)}var E_,D_,yG;var l3=E(()=>{E_=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),D_=new Set(["html","head","body","p","li","dt","dd","rt","rp","option","optgroup","thead","tbody","tfoot","tr","td","th","colgroup","caption"]);yG=new Set});import p0 from"path";import c3 from"fs";function CG(X){return X.split("-").map(($)=>$.charAt(0).toUpperCase()+$.slice(1)).join("")}function PG(X){return X.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}class vG{builtins=new Map;registerBuiltin(X){this.builtins.set(X.name.toLowerCase(),X);for(let $ of X.aliases)this.builtins.set($.toLowerCase(),X)}isBuiltin(X){return this.builtins.has(X.toLowerCase())}getBuiltin(X){return this.builtins.get(X.toLowerCase())??null}async resolveFile(X,$,Z,Y){let J=X.endsWith(".stx")?X.slice(0,-4):X,G=Y?.__importedComponents;if(G){let B=[J,J.toLowerCase(),CG(J),PG(J)];for(let j of B)if(G.has(j))return G.get(j)}let Q=[...new Set([`${J}.stx`,`${CG(J)}.stx`,`${PG(J)}.stx`])];if(J.startsWith("./")||J.startsWith("../")){let B=p0.resolve(p0.dirname($),`${J}.stx`);if(await p(B))return B;return null}let q=[],K=Z.componentsDir||"",U=Y?.__originalFilePath;if(U)q.push(p0.join(p0.dirname(U),"components"));if(K)q.push(K);let W=p0.join(p0.dirname($),"components");if(!q.includes(W))q.push(W);let w=process.cwd(),z=[p0.resolve(w,"src/components"),p0.resolve(w,"components"),p0.resolve(import.meta.dir,"components")];for(let B of z)if(!q.includes(B))q.push(B);for(let B of q){if(!B)continue;for(let j of Q){let _=p0.join(B,j);if(await p(_))return _}try{if(!c3.statSync(B,{throwIfNoEntry:!1})?.isDirectory())continue;let _=c3.readdirSync(B,{withFileTypes:!0});for(let H of _)if(H.isDirectory()){let L=p0.join(B,H.name);for(let O of Q){let F=p0.join(L,O);if(await p(F))return F}}}catch{}}return null}}var v0;var p3=E(()=>{A0();v0=new vG});function k0(X){return X.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function xG(X){return X.indexOf("\x00")===-1?X:X.replace(/\0/g,"")}var G5="\x00stx-boolean-attribute";function x5(X,$){let Z=[];for(let[Y,J]of Object.entries(X.static)){if($.has(Y))continue;let G=X.staticNames?.[Y]??Y;if(typeof J==="boolean"){if(J)Z.push(k0(G));continue}if(J===G5){Z.push(k0(G));continue}Z.push(`${k0(G)}="${k0(xG(String(J)))}"`)}return Z}var g8=()=>{};function u7(X){return X.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function y_(X){if(X.clientReactive.to)return{value:X.clientReactive.to,reactive:!0};if(X.serverDynamic.to!==void 0)return{value:String(X.serverDynamic.to),reactive:!1};if(typeof X.static.to==="string")return{value:X.static.to,reactive:!1};return{value:"#",reactive:!1}}var i3;var n3=E(()=>{g8();i3={name:"StxLink",aliases:["stx-link"],render(X,$,Z){let Y=y_(X),J=(typeof X.static.class==="string"?X.static.class:"")||(typeof X.static.className==="string"?X.static.className:""),G=typeof X.static.activeClass==="string"?X.static.activeClass:"active",Q=typeof X.static.exactActiveClass==="string"?X.static.exactActiveClass:"exact-active",q=X.static.prefetch===!0||X.static.prefetch==="true"||X.serverDynamic.prefetch===!0,K=[];if(Y.reactive)K.push(`:href="${u7(Y.value)}"`);else K.push(`href="${u7(Y.value)}"`);if(J)K.push(`class="${u7(J)}"`);if(K.push("data-stx-link"),K.push(`data-stx-active-class="${u7(G)}"`),K.push(`data-stx-exact-active-class="${u7(Q)}"`),q)K.push("data-stx-prefetch");let U=new Set(["to","class","className","activeClass","exactActiveClass","prefetch"]);return K.push(...x5(X,U)),`<a ${K.join(" ")}>${$}</a>`}}});function I0(X){return X.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function y0(X,$){if(X.serverDynamic[$]!==void 0)return String(X.serverDynamic[$]);let Z=X.static[$];if(typeof Z==="string")return Z;return}function o3(X,$,Z=!1){let Y=X.serverDynamic[$];if(Y!==void 0)return Y!==!1&&Y!=="false";let J=X.static[$];if(J!==void 0)return J!=="false"&&J!==!1;return Z}function fG(X){if(X.includes("(")||X.includes(","))return X;let $=X.trim().split(/\s+/),Z=[];for(let Y of $)if(Y.includes(":")){let[J,G]=Y.split(":"),Q=b_[J];if(Q)Z.push(`(max-width: ${Q}px) ${G}`);else{let q=Number.parseInt(J);if(!Number.isNaN(q))Z.push(`(max-width: ${q}px) ${G}`)}}else Z.push(Y);return Z.join(", ")}function s3(X,$,Z,Y){return $.map((J)=>`${d7(X,J,void 0,Z,Y)} ${J}w`).join(", ")}function S_(X,$,Z,Y,J){return $.map((G)=>{let Q=Z?Z*G:void 0;return`${d7(X,Q,void 0,Y,J)} ${G}x`}).join(", ")}function d7(X,$,Z,Y,J){if(!Y||Y==="local"||Y==="static")return X;if(Y==="cloudinary"){let G=[];if($)G.push(`w_${$}`);if(Z)G.push(`h_${Z}`);if(J)G.push(`f_${J}`);G.push("q_auto");let Q=G.join(",");return X.replace("/upload/",`/upload/${Q}/`)}if(Y==="imgix"){let G=new URLSearchParams;if($)G.set("w",String($));if(Z)G.set("h",String(Z));if(J)G.set("fm",J);G.set("auto","format");let Q=X.includes("?")?"&":"?";return`${X}${Q}${G.toString()}`}if(Y==="bunny"){let G=new URLSearchParams;if($)G.set("width",String($));if(Z)G.set("height",String(Z));if(J)G.set("format",J);let Q=X.includes("?")?"&":"?";return`${X}${Q}${G.toString()}`}return X}function C_(X,$,Z="#e5e7eb"){let Y=`<svg xmlns="http://www.w3.org/2000/svg" width="${X}" height="${$}"><rect width="100%" height="100%" fill="${Z}"/></svg>`;return`data:image/svg+xml;base64,${btoa(Y)}`}var b_,r3,a3;var t3=E(()=>{g8();b_={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},r3=[320,640,768,1024,1280,1536,1920];a3={name:"StxImage",aliases:["stx-image","stx-img"],render(X,$,Z){let Y=y0(X,"src")||"",J=y0(X,"alt")||"",G=y0(X,"width"),Q=y0(X,"height"),q=y0(X,"sizes"),K=y0(X,"srcset"),U=y0(X,"densities"),W=y0(X,"format"),w=y0(X,"placeholder"),z=y0(X,"placeholderColor")||"#e5e7eb",B=y0(X,"provider"),j=y0(X,"class")||y0(X,"className")||"",_=y0(X,"style")||"",H=y0(X,"quality"),L=o3(X,"lazy",!0),O=o3(X,"preload",!1),F=o3(X,"picture",!1)||!!W,V=G?Number.parseInt(G):void 0,A=Q?Number.parseInt(Q):void 0,R=K||"",T="";if(!R&&q)R=s3(Y,r3,B,W),T=fG(q);else if(!R&&U){let S=U.split(/\s+/).map((b)=>Number.parseFloat(b.replace("x","")));R=S_(Y,S,V,B,W)}else if(q)T=fG(q);let N=[];if(_)N.push(_);if(V&&A)N.push(`aspect-ratio:${V}/${A}`);if(w==="blur"||w==="color"||w==="thumbhash"){let S=C_(V||16,A||9,z);N.push(`background-image:url(${S})`),N.push("background-size:cover"),N.push("background-repeat:no-repeat")}else if(w&&w!=="empty"&&w!=="none")N.push(`background-image:url(${I0(w)})`),N.push("background-size:cover"),N.push("background-repeat:no-repeat");let k=d7(Y,V,A,B,W),M=[];if(M.push(`src="${I0(k)}"`),M.push(`alt="${I0(J)}"`),G)M.push(`width="${I0(G)}"`);if(Q)M.push(`height="${I0(Q)}"`);if(L)M.push('loading="lazy"');if(M.push('decoding="async"'),j)M.push(`class="${I0(j)}"`);if(N.length>0)M.push(`style="${I0(N.join(";"))}"`);if(R)M.push(`srcset="${I0(R)}"`);if(T)M.push(`sizes="${I0(T)}"`);let y=new Set(["src","alt","width","height","lazy","sizes","srcset","placeholder","placeholderColor","class","className","style","format","provider","quality","densities","preload","picture"]);M.push(...x5(X,y));let I=`<img ${M.join(" ")} />`,C="";if(O){let b=W==="webp"?"image/webp":W==="avif"?"image/avif":"";C=`<link rel="preload" as="image" href="${I0(k)}"${b?` type="${b}"`:""}${R?` imagesrcset="${I0(R)}"`:""}${T?` imagesizes="${I0(T)}"`:""} />
|
|
13482
|
+
`}if(F){let S=[];if(W==="avif"||W==="auto"){let b=d7(Y,V,A,B,"avif"),P=R?s3(Y,r3,B,"avif"):`${b}`;S.push(`<source type="image/avif" srcset="${I0(P)}"${T?` sizes="${I0(T)}"`:""} />`)}if(W==="webp"||W==="auto"){let b=d7(Y,V,A,B,"webp"),P=R?s3(Y,r3,B,"webp"):`${b}`;S.push(`<source type="image/webp" srcset="${I0(P)}"${T?` sizes="${I0(T)}"`:""} />`)}return`${C}<picture>
|
|
13477
13483
|
${S.join(`
|
|
13478
13484
|
`)}
|
|
13479
13485
|
${I}
|
|
@@ -13510,8 +13516,8 @@ ${I}
|
|
|
13510
13516
|
@media(prefers-color-scheme:dark){[data-stx-drawer]{--stx-drawer-bg:#1f2937;--stx-drawer-text:#f3f4f6}}
|
|
13511
13517
|
.stx-drawer-backdrop[data-stx-drawer-open]{display:block!important;opacity:1}
|
|
13512
13518
|
.stx-drawer-backdrop[data-stx-drawer-open] .stx-drawer-panel{transform:translateX(0)}
|
|
13513
|
-
</style>`}}});import{existsSync as x_,readFileSync as f_}from"fs";function g_(X){if(lG.has(X))return;lG.add(X),console.warn(`[stx] icon collection "${X}" is not installed, so its icons render as nothing. Install it with \`bun add -d @iconify-json/${X}\`.`)}function h_(X){let $=process.cwd();for(let Z of[`${$}/node_modules/@iconify-json/${X}/icons.json`,`${$}/pantry/@iconify-json/${X}/icons.json`,`${$}/node_modules/@iconify/json/json/${X}.json`,`${$}/pantry/@iconify/json/json/${X}.json`])if(x_(Z))return Z;for(let Z of[`@iconify-json/${X}/icons.json`,`@iconify/json/json/${X}.json`])try{return W0.resolve(Z)}catch{}return null}function u_(X){if(d8.has(X))return d8.get(X);let $=h_(X);if(!$)return g_(X),null;try{let Z=JSON.parse(f_($,"utf8"));return d8.set(X,Z.icons),Z.icons}catch{return null}}function h5(X,$){if(X.serverDynamic[$]!==void 0)return String(X.serverDynamic[$]);if(X.static[$]!==void 0)return String(X.static[$]);if(X.clientReactive[$]!==void 0)return X.clientReactive[$];return}var d8,lG,W4;var w4=E(()=>{d8=new Map,lG=new Set;W4={name:"Icon",aliases:["icon","stx-icon"],render(X,$,Z){let Y=h5(X,"name")??h5(X,"icon");if(!Y)return"<!-- Icon: missing name/icon prop -->";let J="lucide",G=Y;if(Y.includes(":")){let O=Y.split(":");J=O[0],G=O[1]}let Q=k0(h5(X,"size")||"24"),q=k0(h5(X,"color")||"currentColor"),K=k0(h5(X,"class")||""),U=k0(h5(X,"style")||""),W=d8.get(J)??u_(J);if(!W)return`<!-- Icon: collection "${J}" not loaded -->`;let w=W[G];if(!w)return`<!-- Icon: "${G}" not found in ${J} -->`;let z=w.width||24,B=w.height||24,j=`0 0 ${z} ${B}`,_=w.body;if(q!=="currentColor")_=_.replace(/currentColor/g,q);let H=K?` class="${K}"`:"",L=U?` style="${U}"`:"";return`<svg xmlns="http://www.w3.org/2000/svg" width="${Q}" height="${Q}" viewBox="${j}" fill="none"${H}${L}>${_}</svg>`}}});function cG(X,...$){for(let Z of $){if(X.serverDynamic[Z]!==void 0)return String(X.serverDynamic[Z]);let Y=X.static[Z];if(typeof Y==="string")return Y}return}function pG(X,$){let Z=new RegExp(`<(template|div|span)[^>]*\\bslot=["']${$}["'][^>]*>([\\s\\S]*?)<\\/\\1>`,"i"),Y=X.match(Z);if(!Y)return{region:null,rest:X};return{region:Y[2],rest:X.replace(Y[0],"")}}var z4;var j4=E(()=>{z4={name:"Suspense",aliases:["suspense"],render(X,$,Z){let Y=pG($,"fallback"),J=Y.rest,G=pG(J,"error"),Q=G.rest,q=Y.region??cG(X,"fallback")??'<div class="stx-suspense-loading">Loading\u2026</div>',K=G.region??cG(X,"errorFallback","error-fallback")??'<div class="stx-suspense-error">Something went wrong.</div>';return`<div data-stx-suspense><div data-stx-suspense-fallback>${q}</div><div data-stx-suspense-error hidden>${K}</div><div data-stx-suspense-content hidden>${Q}</div></div>`}}});function m8(X,...$){for(let Z of $){if(X.serverDynamic[Z]!==void 0)return String(X.serverDynamic[Z]);let Y=X.static[Z];if(typeof Y==="string")return Y}return}var B4;var _4=E(()=>{B4={name:"TransitionGroup",aliases:["transition-group"],render(X,$,Z){let Y=(m8(X,"name")||"v").replace(/["'<>]/g,""),J=(m8(X,"tag")||"div").replace(/[^a-z0-9-]/gi,"")||"div",G=m8(X,"class"),Q=m8(X,"id"),q=[`data-stx-transition-group="${Y}"`,G?`class="${G}"`:"",Q?`id="${Q}"`:""].filter(Boolean).join(" ");return`<${J} ${q}>${$}</${J}>`}}});function iG(){v0.registerBuiltin(i3),v0.registerBuiltin(a3),v0.registerBuiltin(e3),v0.registerBuiltin(Z4),v0.registerBuiltin(J4),v0.registerBuiltin(Q4),v0.registerBuiltin(K4),v0.registerBuiltin(W4),v0.registerBuiltin(z4),v0.registerBuiltin(B4)}var nG=E(()=>{n3();t3();X4();Y4();G4();q4();U4();w4();j4();_4();p3();n3();t3();X4();Y4();G4();q4();U4();w4();j4();_4()});function l8(X){return X.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1-$2").toLowerCase()}function rG(X,$,Z){let Y=[],J=0;while(J<X.length){let G=X.indexOf("<",J);if(G===-1)break;let q=X.slice(G+1).match(new RegExp(`^(${$.source})(?![\\w.:-])`));if(!q){J=G+1;continue}let K=q[1];if(Z&&Z.has(K.toLowerCase())){let _=G+1+K.length;while(_<X.length&&X[_]!==">")_++;J=_+1;continue}let U=G+1+K.length,W=null,w=U,z=-1,B=!1;while(U<X.length){let _=X[U];if(W){if(_==="\\"&&U+1<X.length){U+=2;continue}if(_===W)W=null;U++;continue}if(_==='"'||_==="'"){W=_,U++;continue}if(_==="/"&&U+1<X.length&&X[U+1]===">"){z=U+2,B=!0;break}if(_===">"){z=U+1;break}U++}if(z===-1){J=G+1;continue}let j=X.slice(w,B?z-2:z-1).trim();if(B)Y.push({fullMatch:X.slice(G,z),tagName:K,attributes:j,content:"",startIndex:G,endIndex:z,isSelfClosing:!0}),J=z;else{let _=`<${K}`,H=`</${K}>`,L=1,O=z,F=-1;while(L>0&&O<X.length){let R=X.indexOf(_,O),
|
|
13514
|
-
`||T==="\t")L++;O=R+_.length}else{if(L--,L===0){F=N;break}O=N+H.length}}if(F===-1){J=z;continue}let V=X.slice(z,F),A=F+H.length;Y.push({fullMatch:X.slice(G,A),tagName:K,attributes:j,content:V,startIndex:G,endIndex:A,isSelfClosing:!1}),J=A}}return Y}function oG(X){return X.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/�?39;/g,"'").replace(/'/gi,"'").replace(/&/g,"&")}function sG(X,$){try{let Z=Buffer.from(X,"base64").toString("utf8");return JSON.parse(Z)}catch{}try{let Z=X.replace(/"/g,'"').replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&");return JSON.parse(Z)}catch(Z){if($?.debug)console.error("Error decoding __stx_ prop:",Z);return X}}var aG=E(()=>{O0();A0();l1()});var JQ={};n(JQ,{processESImports:()=>ZQ,processComponents:()=>p8});import c8 from"fs";import u0 from"path";function m_(X,$,Z){let Y={static:{},staticNames:{},serverDynamic:{},clientReactive:{},events:{}},J=new Set(X6),G=(q)=>{if(!q.includes("-")||q.startsWith("@")||q.startsWith(":")||q.startsWith("x-")||q.startsWith("__"))return q;if(q.startsWith("aria-")||q.startsWith("data-"))return q;return q.replace(/-([a-z0-9])/g,(K,U)=>U.toUpperCase())},Q=(q,K)=>{let U=G(q);if(Y.static[U]=K,U!==q)Y.staticNames[U]=q};for(let[q,K]of Object.entries(X)){let U=q.startsWith("x-")&&!J.has(q)&&!q.startsWith("x-bind:")&&!q.startsWith("x-on:")?`:${q.slice(2)}`:q;if(U.startsWith("@")){Y.events[U]=K;continue}if(U.startsWith("__stx_")){let W=G(U.slice(6));Y.serverDynamic[W]=sG(K,Z);continue}if(U.startsWith(":")){let W=G(U.slice(1)),w=K===G5?W:K;if(W==="if"||W==="for"||W==="show"){Y.clientReactive[W]=w;continue}try{if(!G0(w)){if(Z.debug)console.error(`Unsafe expression in :${W} binding: ${w}`);Y.clientReactive[W]=w;continue}let z=Object.keys($),j=Q0(w,z)(...Object.values($));if(j===void 0){let _=w.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(_.some((O)=>!H.has(O)&&!z.includes(O))){Y.clientReactive[W]=w;continue}}Y.serverDynamic[W]=j}catch{Y.clientReactive[W]=w}continue}if(typeof K==="string"&&K.includes("{{")&&K.includes("}}")){let W=K.match(/^\{\{\s*([\s\S]+?)\s*\}\}$/);if(W)try{let w=W[1];if(G0(w)){let B=Q0(w,Object.keys($))(...Object.values($));Q(U,B!=null?String(B):"")}else{if(Z.debug)console.error(`Unsafe expression in ${U}: ${w}`);Q(U,K)}}catch(w){if(Z.debug)console.error(`Error evaluating expression for ${U}:`,w);Q(U,K)}else{let w=K,z=/\{\{\s*([\s\S]+?)\s*\}\}/g,B;while((B=z.exec(K))!==null)try{let j=B[1];if(!G0(j)){if(Z.debug)console.error(`Unsafe expression in ${U}: ${j}`);continue}let H=Q0(j,Object.keys($))(...Object.values($));w=w.replace(B[0],String(H??""))}catch(j){if(Z.debug)console.error(`Error evaluating expression in ${U}:`,j)}Q(U,w)}continue}Q(U,K===G5?"true":oG(K))}return Y}function l_(X){let $={},Z=0,Y=X.length;while(Z<Y){while(Z<Y&&/\s/.test(X[Z]))Z++;if(Z>=Y)break;let J="";while(Z<Y&&!/[\s=]/.test(X[Z]))J+=X[Z],Z++;if(!J)break;while(Z<Y&&/\s/.test(X[Z]))Z++;if(Z<Y&&X[Z]==="="){Z++;while(Z<Y&&/\s/.test(X[Z]))Z++;let G="";if(Z<Y&&(X[Z]==='"'||X[Z]==="'")){let Q=X[Z];Z++;while(Z<Y){let q=X[Z];if(q==="\\"&&Z+1<Y){Z++,G+=X[Z],Z++;continue}if(q===Q){Z++;break}G+=q,Z++}}else while(Z<Y&&!/\s/.test(X[Z]))G+=X[Z],Z++;$[J]=G}else $[J]=G5}return $}function eG(X){return Object.entries(X).map(([$,Z])=>Z===G5?$:`${$}="${c_(Z)}"`).join(" ")}function c_(X){return X.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function p_(X){let $=new Set,Z=/<([A-Z][A-Za-z0-9]*|stx-[a-z0-9-]+)\b[^>]*>/g,Y;while((Y=Z.exec(X))!==null){let J=Y[1];if(v0.isBuiltin(J))$.add(J)}return[...$].sort()}function i_(X){let $=XQ.get(X);if($)return $;let Z=new Map,Y=[u0.join(X,"src"),u0.join(X,"dist"),X];function J(G,Q){if(Q>6)return;let q;try{q=c8.readdirSync(G,{withFileTypes:!0})}catch{return}for(let K of q){let U=u0.join(G,K.name);if(K.isDirectory()){if(K.name==="node_modules"||K.name.startsWith("."))continue;J(U,Q+1)}else if(K.isFile()&&K.name.endsWith(".stx")){let W=K.name.slice(0,-4);if(!Z.has(W))Z.set(W,U);let w=W.toLowerCase();if(!Z.has(w))Z.set(w,U);let z=W.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(!Z.has(z))Z.set(z,U)}}}for(let G of Y)if(J(G,0),Z.size>0)break;return XQ.set(X,Z),Z}function n_(X,$){if(X.startsWith(".")||X.startsWith("/"))return null;let Z=$;while(!0){let Y=u0.join(Z,"node_modules",X);try{if(c8.statSync(Y).isDirectory())return Y}catch{}let J=u0.dirname(Z);if(J===Z)return null;Z=J}}async function ZQ(X,$,Z,Y,J){if(!X.includes("import"))return X;if(!$.__importedComponents)$.__importedComponents=new Map;let G=$.__importedComponents,Q=u0.dirname(Z),q=X,K=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi;return q=q.replace(K,(U,W,w)=>{let z=/import\s+(?:(\{[^}]*\})|([A-Za-z_$][\w$]*))\s+from\s+['"]([^'"]+)['"]\s*;?\s*\n?/g,B=w,j,_=[];while((j=z.exec(w))!==null){let[H,L,O,F]=j,V=null,A=null;if(F.startsWith(".")||F.startsWith("/")){let T=u0.resolve(Q,F);if(T.endsWith(".stx"))A=T;else{let k=`${T}.stx`;try{if(c8.statSync(k).isFile())A=k}catch{try{if(c8.statSync(T).isDirectory())V=T}catch{}}}}else V=n_(F,Q);if(!V&&!A)continue;let R=!1,N=(T,k)=>{G.set(T,k),G.set(T.toLowerCase(),k);let M=T.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();G.set(M,k),J.add(k)};if(O&&A)N(O,A),R=!0;else if(L){let T=L.slice(1,-1).split(",").map((M)=>M.trim()).filter(Boolean).map((M)=>{let y=M.match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);if(y)return{source:y[1],local:y[2]};return{source:M,local:M}}),k=V?i_(V):null;for(let{source:M,local:y}of T){let I=null;if(A)I=A;else if(k)I=k.get(M)??k.get(M.toLowerCase())??k.get(M.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase())??null;if(I)N(y,I),R=!0}}if(R)_.push({start:j.index,end:j.index+H.length})}if(_.length===0)return U;for(let H=_.length-1;H>=0;H--)B=B.slice(0,_[H].start)+B.slice(_[H].end);return`<script${W}>${B}</script>`}),q}async function r_(X,$,Z,Y,J){let G=X;if(!$.__importedComponents)$.__importedComponents=new Map;let Q=$.__importedComponents,q=/@import\s*\(\s*([^)]+)\s*\)/g,K;while((K=q.exec(G))!==null){let[U,W]=K,w=W.split(",").map((z)=>z.trim().replace(/^['"]|['"]$/g,"")).filter((z)=>z.length>0);for(let z of w){let B=z.split("/"),_=B[B.length-1].replace(/\.stx$/,""),H=_.includes("-")?_.split("-").map((F)=>F.charAt(0).toUpperCase()+F.slice(1)).join(""):_.charAt(0).toUpperCase()+_.slice(1),L=null,O=[u0.resolve(u0.dirname(Z),`${z}.stx`),u0.resolve(u0.dirname(Z),z),u0.resolve(Y.componentsDir||"components",`${z}.stx`),u0.resolve(Y.componentsDir||"components",z),z.endsWith(".stx")?z:`${z}.stx`];for(let F of O)try{if(await Bun.file(F).exists()){L=F;break}}catch{}if(L){Q.set(H,L),Q.set(_,L),Q.set(_.toLowerCase(),L);let F=H.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(Q.set(F,L),J.add(L),Y.debug)console.log(`Imported component: ${H} -> ${L}`)}else if(Y.debug)console.warn(`Could not resolve imported component: ${z}`)}G=G.replace(U,""),q.lastIndex=0}return G}async function o_(X,$,Z,Y,J){let G=X,Q=Y.componentsDir||"components";if(!$.__processedComponents)$.__processedComponents=new Set;let q=$.__processedComponents,K=/@component\s*\(/g,U;while((U=K.exec(G))!==null){let W=U.index,w=W+U[0].length-1,z=1,B=w+1;while(B<G.length&&z>0){if(G[B]==="(")z++;else if(G[B]===")"){if(z--,z===0)break}B++}if(z!==0)break;let j=G.substring(w+1,B),_=B+1,H=j.match(/^\s*['"]([^'"]+)['"]/);if(!H){K.lastIndex=0;continue}let L=H[1],O,F=j.slice(H[0].length),V=F.match(/^\s*,\s*/);if(V)O=F.slice(V[0].length).trim();let A={};if(O)try{A=H0(O,$)}catch(y){let I=y instanceof Error?y.message:String(y);G=G.replace(G.substring(W,_),`[Error parsing component props: ${I}]`);continue}let R="",N=_,k=G.substring(_).match(/^([\s\S]*?)@endcomponent/);if(k)R=k[1].trim(),N=_+k[0].length;let M=await s1(L,A,R,Q,$,Z,Y,q,J);G=G.substring(0,W)+M+G.substring(N),K.lastIndex=0}return G}async function s_(X,$,Z,Y,J){if(!X)return X;let G=X,Q=Y.componentsDir||"components";if(!$.__processedComponents)$.__processedComponents=new Set;let q=$.__processedComponents,K=R1(G);return G=K.output,G=await z(G,/[a-z][a-z0-9]*-[a-z0-9-]*/,!1),G=await z(G,/[A-Z][a-zA-Z0-9]*/,!0),G=await z(G,/[a-z][a-z0-9]*/,!1,d_),G=A7(G,K.scripts),G;async function z(B,j,_,H){if(!B)return B;let L=B,O=rG(L,j,H);for(let F=O.length-1;F>=0;F--){let V=O[F],A=_?l8(V.tagName):V.tagName,R=l_(V.attributes),N=m_(R,$,Y),T=v0.getBuiltin(V.tagName),k=T?await oX(A,Q,$,Z,Y):!1;if(T&&!k){let C={context:$,filePath:Z,options:Y,dependencies:J},S=T.render(N,V.content,C);if(Object.keys(N.clientReactive).length>0)S=$Q(S,N.clientReactive);if(Object.keys(N.events).length>0){let b=eG(N.events);S=S.replace(/^(\s*<[a-zA-Z][a-zA-Z0-9-]*)/,`$1 ${b}`)}L=L.substring(0,V.startIndex)+S+L.substring(V.endIndex);continue}if(!_&&V.tagName.includes("-")&&!await oX(A,Q,$,Z,Y))continue;let M={};for(let[C,S]of Object.entries(N.static))M[C]=S;for(let[C,S]of Object.entries(N.serverDynamic))M[C]=S;let I=await s1(A,M,V.content,Q,$,Z,Y,q,J);if(Object.keys(N.clientReactive).length>0)I=$Q(I,N.clientReactive);if(Object.keys(N.events).length>0){let C=YQ(I);if(C){let S=eG(N.events),b=Object.keys(N.events).map((P)=>P.replace(/^@/,"").split(".")[0]).join(" ");I=I.substring(0,C.insertPos)+` data-stx-parent-events="${b}" ${S}`+I.substring(C.insertPos)}}L=L.substring(0,V.startIndex)+I+L.substring(V.endIndex)}return L}}function $Q(X,$){let Z=new Set(["if","for"]),Y=new Set(["show"]),J=Object.entries($).filter(([W])=>!Z.has(W)),G=J.filter(([W])=>!Y.has(W)).map(([W])=>l8(W)).join(" "),Q=X,q=J.length>0?YQ(Q):null;if(q){let W=J.map(([z,B])=>`:${l8(z)}="${B.replace(/"/g,""")}"`).join(" "),w=G?` data-stx-parent-bindings="${G}"`:"";Q=Q.substring(0,q.insertPos)+`${w} ${W}`+Q.substring(q.insertPos)}let K=$.if;if(K)Q=`<template :if="${K.replace(/"/g,""")}">${Q}</template>`;let U=$.for;if(U)Q=`<template :for="${U.replace(/"/g,""")}">${Q}</template>`;return Q}function YQ(X){let $=/<([a-zA-Z][a-zA-Z0-9-]*)\b[^>]*\bdata-stx-scope(?:\s|=|>)/i.exec(X);if($)return{insertPos:$.index+1+$[1].length};let Z=0;while(Z<X.length){let Y=X.slice(Z),J=Y.match(/^\s+/);if(J){Z+=J[0].length;continue}if(Y.startsWith("<!--")){let q=X.indexOf("-->",Z+4);if(q===-1)return null;Z=q+3;continue}let G=Y.match(/^<(script|style)\b[^>]*>/i);if(G){let q=`</${G[1].toLowerCase()}>`,K=X.toLowerCase().indexOf(q,Z+G[0].length);if(K===-1)return null;Z=K+q.length;continue}let Q=Y.match(/^<([a-zA-Z][a-zA-Z0-9-]*)(?:\s|>|\/)/);if(!Q)return null;return{insertPos:Z+1+Q[1].length}}return null}async function p8(X,$,Z,Y,J){if(!tG)iG(),tG=!0;let G=await ZQ(X,$,Z,Y,J);G=await r_(G,$,Z,Y,J),G=await o_(G,$,Z,Y,J);let Q=[];for(let q=0;q<3;q++){let K=$1(G,V7,(W,w)=>`\x00STX_COMPONENT_COMMENT_${Q.length+w}\x00`);Q.push(...K.tokens);let U=G;if(G=await s_(K.output,$,Z,Y,J),G===U)break}if(Q.length>0)G=G.replace(/\x00STX_COMPONENT_COMMENT_(\d+)\x00/g,(q,K)=>Q[Number(K)]??"");if(Y.debug){let q=p_(G);if(q.length>0)console.warn(`[stx] ${Z}: unresolved component tag(s) after render passes: ${q.join(", ")}. Check nested component output for malformed root tags or recursive component markup.`)}return G}var tG=!1,d_,XQ;var H4=E(()=>{p3();nG();aG();l1();A0();O0();e0();d_=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","component","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"]);XQ=new Map});var wQ={};n(wQ,{processLoops:()=>L4,parseLoopBinding:()=>O4});function e_(X,$){let Z=/@(include|partial)\s*\(\s*(['"])([^'"]+)\2\s*,\s*/g,Y="",J=0,G;while((G=Z.exec(X))!==null){let Q=G.index+G[0].length,q=G.index+G[0].indexOf("("),K=T0(X,"(",")",q);if(K===-1)continue;let U=X.slice(Q,K).trim();if(!U)continue;if(!Object.keys($).some((z)=>new RegExp(`(?:^|[^\\w$.])${z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?![\\w$])`).test(U)))continue;let w;try{let z=H0(U,$);if(!z||typeof z!=="object")continue;w=JSON.stringify(z)}catch{continue}Y+=X.slice(J,Q)+w,J=K,Z.lastIndex=K}return J===0?X:Y+X.slice(J)}function XH(X,$){let Z=/@component\s*\(/g,Y=X,J,G=[];while((J=Z.exec(Y))!==null){let Q=J.index,q=Q+J[0].length-1,K=1,U=q+1;while(U<Y.length&&K>0){if(Y[U]==="(")K++;else if(Y[U]===")"){if(K--,K===0)break}U++}if(K!==0)continue;let W=Y.substring(q+1,U),w=U+1,z=W.match(/^\s*['"]([^'"]+)['"]/);if(!z)continue;let B=z[1],j=W.slice(z[0].length),_=j.match(/^\s*,\s*/);if(!_)continue;let H=j.slice(_[0].length).trim();if(!H)continue;try{let L=H0(H,$),O=JSON.stringify(L),F=`@component('${B}', ${O})`;G.push({start:Q,end:w,replacement:F})}catch{continue}}for(let Q=G.length-1;Q>=0;Q--){let{start:q,end:K,replacement:U}=G[Q];Y=Y.substring(0,q)+U+Y.substring(K)}return Y}function i8(X,$,Z){let Y=X,J=new RegExp(`${$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\(`),G;while((G=J.exec(Y))!==null){let Q=G.index,q=Q+G[0].length-1,K=1,U=q+1,W=null,w=!1;while(U<Y.length&&K>0){let j=Y[U];if(w){w=!1,U++;continue}if(j==="\\"&&W){w=!0,U++;continue}if(W){if(j===W)W=null;U++;continue}if(j==='"'||j==="'"||j==="`"){W=j,U++;continue}if(j==="(")K++;else if(j===")"){if(K--,K===0)break}U++}if(K!==0)break;let z=Y.substring(q+1,U),B=Z(z);Y=Y.substring(0,Q)+B+Y.substring(U+1)}return Y}function $H(X,$){let Z=X;return Z=Z.replace(/:([a-zA-Z_][a-zA-Z0-9_-]*)(?=\s+[^=]|\s*\/?>|\s*$)/g,(Y,J)=>{if(J in $)return`:${J}="${J}"`;return Y}),Z=Z.replace(/:([a-zA-Z_][a-zA-Z0-9_-]*)\s*=\s*"([^"]*)"/g,(Y,J,G)=>{try{let Q=Object.keys($),q=Object.values($);FX(G);let U=Q0(G,Q)(...q),W=JSON.stringify(U),w=Buffer.from(W,"utf8").toString("base64");return`__stx_${J}="${w}"`}catch(Q){return Y}}),Z}function ZH(X,$){let Z=X;return Z=i8(Z,"@break",(Y)=>{try{let G=`!!(${Y.trim()})`,Q;if(G0(G)){let q=Q0(G,Object.keys($));Q=Boolean(q(...Object.values($)))}else Q=Boolean($0(G,$));return Q?n8:""}catch{return""}}),Z=i8(Z,"@continue",(Y)=>{try{let G=`!!(${Y.trim()})`,Q;if(G0(G)){let q=Q0(G,Object.keys($));Q=Boolean(q(...Object.values($)))}else Q=Boolean($0(G,$));return Q?r8:""}catch{return""}}),Z}function YH(X){let $=X;return $=$.replace(/@break(?!\()/g,n8),$=$.replace(/@continue(?!\()/g,r8),$}function GQ(X){let $=X.includes(n8),Z=$?X.substring(0,X.indexOf(n8)):X;return{hasBreak:$,content:Z}}function QQ(X){let $=X.includes(r8),Z=$?X.substring(0,X.indexOf(r8)):X;return{hasContinue:$,content:Z}}function KQ(X){let $=X;return $=i8($,"@break",(Z)=>{let Y=Z.trim();if(!VX(Y))return"";return`\`; if (${Y}) { break; } result += \``}),$=i8($,"@continue",(Z)=>{let Y=Z.trim();if(!VX(Y))return"";return`\`; if (${Y}) { continue; } result += \``}),$=$.replace(/@break(?!\()/g,"`; break; result += `"),$=$.replace(/@continue(?!\()/g,"`; continue; result += `"),$}function JH(X){let $=/@forelse\s*\(/g,Z,Y=[],J=/@foreach\s*\(/g,G=/@endforeach/g,Q;while((Q=J.exec(X))!==null)Y.push({pos:Q.index,delta:1});while((Q=G.exec(X))!==null)Y.push({pos:Q.index,delta:-1});Y.sort((W,w)=>W.pos-w.pos);let q=[],K=0;for(let W of Y)K+=W.delta,q.push({pos:W.pos,depth:K});function U(W){let w=0,z=q.length-1,B=0;while(w<=z){let j=w+z>>1;if(q[j].pos<=W)B=q[j].depth,w=j+1;else z=j-1}return B}while((Z=$.exec(X))!==null){if(U(Z.index)>0)continue;let W=Z.index,w=Z.index+Z[0].length-1,z=1,B=w+1,j=-1;while(B<X.length&&z>0){if(X[B]==="(")z++;else if(X[B]===")"){if(z--,z===0){j=B;break}}B++}if(j===-1)continue;let _=X.substring(w+1,j),H=O4(_);if(!H)continue;let{arrayExpr:L,itemVar:O}=H,F=j+1,V=1,A=F,R=/@forelse\s*\(/g,N=/@endforelse/g,T=-1;while(V>0&&A<X.length){R.lastIndex=A,N.lastIndex=A;let S=R.exec(X),b=N.exec(X);if(!b)break;if(S&&S.index<b.index)V++,A=S.index+S[0].length;else{if(V--,V===0){T=b.index;break}A=b.index+11}}if(T===-1)continue;let k=X.substring(F,T),M=T+11,y=-1,I=0,C=0;while(C<k.length){let S=k.indexOf("@",C);if(S===-1)break;let b=k.substring(S);if(/^@forelse\s*\(/.test(b))I++,C=S+1;else if(b.startsWith("@endforelse"))I--,C=S+11;else if(I===0&&b.startsWith("@empty")){if(k.length<=S+6||!/[a-z]/i.test(k[S+6])){y=S;break}C=S+1}else C=S+1}if(y===-1)continue;return{start:W,end:M,arrayExpr:L,itemVar:O,foreachContent:k.substring(0,y),emptyContent:k.substring(y+6)}}return null}function qQ(X,$){let Z=X;while(!0){let Y=JH(Z);if(!Y)break;let{start:J,end:G,arrayExpr:Q,itemVar:q,foreachContent:K,emptyContent:U}=Y;try{let W;if(G0(Q))W=Q0(Q,Object.keys($))(...Object.values($));else W=$0(Q,$);let w;if(!Array.isArray(W)||W.length===0)w=U;else w=`@foreach (${Q} as ${q})${K}@endforeach`;Z=Z.substring(0,J)+w+Z.substring(G)}catch(W){let w=W instanceof Error?W.message:String(W),z=X0("Forelse",`Error in @forelse(${Q} as ${q}): ${w}`,s.EVALUATION_ERROR);Z=Z.substring(0,J)+z+Z.substring(G)}}return Z}function O4(X){let $=X.indexOf(" as ");if($!==-1){let G=X.slice(0,$).trim(),Q=X.slice($+4).trim();return G&&Q?{arrayExpr:G,itemVar:Q}:null}let Z=/^\s*(.+?)\s+in\s+([\s\S]+)$/.exec(X);if(!Z)return null;let Y=Z[1].trim().replace(/^\(([\s\S]*)\)$/,"$1").trim(),J=Z[2].trim();return Y&&J?{arrayExpr:J,itemVar:Y}:null}function L4(X,$,Z,Y){let J=X;J=qQ(J,$);function G(K){let U=/@foreach\s*\(/g,W;while((W=U.exec(K))!==null){let w=W.index,z=W.index+W[0].length-1,B=1,j=z+1,_=-1;while(j<K.length&&B>0){if(K[j]==="(")B++;else if(K[j]===")"){if(B--,B===0){_=j;break}}j++}if(_===-1)continue;let H=K.substring(z+1,_),L=O4(H);if(!L)continue;let O=w,{arrayExpr:F,itemVar:V}=L,A=_+1,R=1,N=A,T=/@foreach\s*\(/g,k=/@endforeach/g;while(R>0&&N<K.length){T.lastIndex=N,k.lastIndex=N;let M=T.exec(K),y=k.exec(K);if(!y)break;if(M&&M.index<y.index)R++,N=M.index+M[0].length;else{if(R--,R===0){let I=K.substring(A,y.index),C=y.index+11;return{start:O,end:C,arrayExpr:F,itemVar:V,content:I}}N=y.index+11}}}return null}function Q(K,U){let W=K;while(!0){let w=G(W);if(!w)break;let{start:z,end:B,arrayExpr:j,itemVar:_,content:H}=w;try{let L=j.trim(),O;if(G0(L))O=Q0(L,Object.keys(U))(...Object.values(U));else O=$0(L,U);let F=!1;if(!Array.isArray(O))if(O instanceof Map)O=Array.from(O),F=!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),F=!0;else{console.warn(`[stx] @foreach(${L}) in ${Z}: ${L} is not iterable server-side, so the loop rendered nothing. `+"Values a server loop reads must come from <script server> or the page context \u2014 "+"a plain <script> runs in the browser.");let y=X0("Foreach",`Error in @foreach: ${L} is not iterable`,s.TYPE_ERROR);W=W.substring(0,z)+y+W.substring(B);continue}let V=Y?.loops?.useAltLoopVariable??t_,A=_.trim(),R=null,N,T=!1;if(A.includes("=>")){let y=A.split("=>").map((I)=>I.trim());if(y.length===2&&y[0]&&y[1])R=y[0],N=y[1];else N=A}else if(!A.startsWith("[")&&!A.startsWith("{")&&A.includes(",")){let y=A.split(",").map((I)=>I.trim());if(y.length===2&&y[0]&&y[1])N=y[0],R=y[1],T=!0;else N=A}else N=A;let k="",M=O;for(let y=0;y<M.length;y++){let I=M[y],C={index:y,iteration:y+1,first:y===0,last:y===M.length-1,count:M.length},S={...U,loop:C,$loop:C};if(N.startsWith("[")&&N.endsWith("]")){let d=N.slice(1,-1).split(",").map((m)=>m.trim());if(Array.isArray(I))d.forEach((m,Y0)=>{if(m)S[m]=I[Y0]});else S[N]=I}else S[N]=I;if(R)if(!T&&F&&Array.isArray(I)&&I.length===2)S[R]=I[0],S[N]=I[1];else S[R]=y;let b=ZH(H,S),P=QQ(b);if(P.hasContinue){k+=P.content;continue}let x=GQ(b);if(x.hasBreak){k+=x.content;break}if(b=qQ(b,S),b=Q(b,S),b=Z5(b,S,Z),b=YH(b),x=GQ(b),x.hasBreak){k+=x.content;break}if(P=QQ(b),P.hasContinue){k+=P.content;continue}b=N1(b,S,Z),b=$H(b,S),b=XH(b,S),b=e_(b,S),k+=b}W=W.substring(0,z)+k+W.substring(B)}catch(L){let O=X0("Foreach",`Error in @foreach(${j.trim()} as ${_.trim()}): ${L instanceof Error?L.message:String(L)}`,s.EVALUATION_ERROR);W=W.substring(0,z)+O+W.substring(B)}}return W}J=Q(J,$),J=WQ(J,$,Z,Y);let q=Y?.loops?.maxWhileIterations??a_;return J=qH(J,$,q),J}function UQ(X){return VX(X)}function WQ(X,$,Z,Y){let J=X,G=!0;while(G){G=!1;let Q=J.match(/@for\s*\(/);if(!Q||Q.index===void 0)break;let q=Q.index,K=q+Q[0].length-1,U=T0(J,"(",")",K);if(U===-1)break;let W=J.slice(K+1,U),w=U+1,z=EX(J.slice(q),"for","endfor");if(z.length===0)break;let B=z[0].content,j=q+z[0].end;if(!UQ(W)){let _=X0("For",`Unsafe expression in @for: ${W}`,s.UNSAFE_EXPRESSION);J=J.substring(0,q)+_+J.substring(j),G=!0;continue}try{let _=GH(W),H=/@(?:for|foreach|if|unless)\s*\(/.test(B);if(_.length>0&&H){let R=QH({forExpr:W,content:B,iterVarNames:_,context:$,filePath:Z,options:Y});J=J.substring(0,q)+R+J.substring(j),G=!0;continue}let L=Object.keys($),O=Object.values($),F=B.replace(/`/g,"\\`").replace(/\$\{/g,"\\${").replace(/\{\{([^}]+)\}\}/g,(R,N)=>{return`\${${N}}`});F=KQ(F);let A=Function(...L,`
|
|
13519
|
+
</style>`}}});import{existsSync as x_,readFileSync as f_}from"fs";function g_(X){if(lG.has(X))return;lG.add(X),console.warn(`[stx] icon collection "${X}" is not installed, so its icons render as nothing. Install it with \`bun add -d @iconify-json/${X}\`.`)}function h_(X){let $=process.cwd();for(let Z of[`${$}/node_modules/@iconify-json/${X}/icons.json`,`${$}/pantry/@iconify-json/${X}/icons.json`,`${$}/node_modules/@iconify/json/json/${X}.json`,`${$}/pantry/@iconify/json/json/${X}.json`])if(x_(Z))return Z;for(let Z of[`@iconify-json/${X}/icons.json`,`@iconify/json/json/${X}.json`])try{return W0.resolve(Z)}catch{}return null}function u_(X){if(d8.has(X))return d8.get(X);let $=h_(X);if(!$)return g_(X),null;try{let Z=JSON.parse(f_($,"utf8"));return d8.set(X,Z.icons),Z.icons}catch{return null}}function h5(X,$){if(X.serverDynamic[$]!==void 0)return String(X.serverDynamic[$]);if(X.static[$]!==void 0)return String(X.static[$]);if(X.clientReactive[$]!==void 0)return X.clientReactive[$];return}var d8,lG,W4;var w4=E(()=>{d8=new Map,lG=new Set;W4={name:"Icon",aliases:["icon","stx-icon"],render(X,$,Z){let Y=h5(X,"name")??h5(X,"icon");if(!Y)return"<!-- Icon: missing name/icon prop -->";let J="lucide",G=Y;if(Y.includes(":")){let O=Y.split(":");J=O[0],G=O[1]}let Q=k0(h5(X,"size")||"24"),q=k0(h5(X,"color")||"currentColor"),K=k0(h5(X,"class")||""),U=k0(h5(X,"style")||""),W=d8.get(J)??u_(J);if(!W)return`<!-- Icon: collection "${J}" not loaded -->`;let w=W[G];if(!w)return`<!-- Icon: "${G}" not found in ${J} -->`;let z=w.width||24,B=w.height||24,j=`0 0 ${z} ${B}`,_=w.body;if(q!=="currentColor")_=_.replace(/currentColor/g,q);let H=K?` class="${K}"`:"",L=U?` style="${U}"`:"";return`<svg xmlns="http://www.w3.org/2000/svg" width="${Q}" height="${Q}" viewBox="${j}" fill="none"${H}${L}>${_}</svg>`}}});function cG(X,...$){for(let Z of $){if(X.serverDynamic[Z]!==void 0)return String(X.serverDynamic[Z]);let Y=X.static[Z];if(typeof Y==="string")return Y}return}function pG(X,$){let Z=new RegExp(`<(template|div|span)[^>]*\\bslot=["']${$}["'][^>]*>([\\s\\S]*?)<\\/\\1>`,"i"),Y=X.match(Z);if(!Y)return{region:null,rest:X};return{region:Y[2],rest:X.replace(Y[0],"")}}var z4;var j4=E(()=>{z4={name:"Suspense",aliases:["suspense"],render(X,$,Z){let Y=pG($,"fallback"),J=Y.rest,G=pG(J,"error"),Q=G.rest,q=Y.region??cG(X,"fallback")??'<div class="stx-suspense-loading">Loading\u2026</div>',K=G.region??cG(X,"errorFallback","error-fallback")??'<div class="stx-suspense-error">Something went wrong.</div>';return`<div data-stx-suspense><div data-stx-suspense-fallback>${q}</div><div data-stx-suspense-error hidden>${K}</div><div data-stx-suspense-content hidden>${Q}</div></div>`}}});function m8(X,...$){for(let Z of $){if(X.serverDynamic[Z]!==void 0)return String(X.serverDynamic[Z]);let Y=X.static[Z];if(typeof Y==="string")return Y}return}var B4;var _4=E(()=>{B4={name:"TransitionGroup",aliases:["transition-group"],render(X,$,Z){let Y=(m8(X,"name")||"v").replace(/["'<>]/g,""),J=(m8(X,"tag")||"div").replace(/[^a-z0-9-]/gi,"")||"div",G=m8(X,"class"),Q=m8(X,"id"),q=[`data-stx-transition-group="${Y}"`,G?`class="${G}"`:"",Q?`id="${Q}"`:""].filter(Boolean).join(" ");return`<${J} ${q}>${$}</${J}>`}}});function iG(){v0.registerBuiltin(i3),v0.registerBuiltin(a3),v0.registerBuiltin(e3),v0.registerBuiltin(Z4),v0.registerBuiltin(J4),v0.registerBuiltin(Q4),v0.registerBuiltin(K4),v0.registerBuiltin(W4),v0.registerBuiltin(z4),v0.registerBuiltin(B4)}var nG=E(()=>{n3();t3();X4();Y4();G4();q4();U4();w4();j4();_4();p3();n3();t3();X4();Y4();G4();q4();U4();w4();j4();_4()});function l8(X){return X.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1-$2").toLowerCase()}function rG(X,$,Z){let Y=[],J=0;while(J<X.length){let G=X.indexOf("<",J);if(G===-1)break;let q=X.slice(G+1).match(new RegExp(`^(${$.source})(?![\\w.:-])`));if(!q){J=G+1;continue}let K=q[1];if(Z&&Z.has(K.toLowerCase())){let _=G+1+K.length;while(_<X.length&&X[_]!==">")_++;J=_+1;continue}let U=G+1+K.length,W=null,w=U,z=-1,B=!1;while(U<X.length){let _=X[U];if(W){if(_==="\\"&&U+1<X.length){U+=2;continue}if(_===W)W=null;U++;continue}if(_==='"'||_==="'"){W=_,U++;continue}if(_==="/"&&U+1<X.length&&X[U+1]===">"){z=U+2,B=!0;break}if(_===">"){z=U+1;break}U++}if(z===-1){J=G+1;continue}let j=X.slice(w,B?z-2:z-1).trim();if(B)Y.push({fullMatch:X.slice(G,z),tagName:K,attributes:j,content:"",startIndex:G,endIndex:z,isSelfClosing:!0}),J=z;else{let _=`<${K}`,H=`</${K}>`,L=1,O=z,F=-1;while(L>0&&O<X.length){let R=X.indexOf(_,O),T=X.indexOf(H,O);if(T===-1)break;if(R!==-1&&R<T){let N=X[R+_.length];if(N===" "||N===">"||N==="/"||N===`
|
|
13520
|
+
`||N==="\t")L++;O=R+_.length}else{if(L--,L===0){F=T;break}O=T+H.length}}if(F===-1){J=z;continue}let V=X.slice(z,F),A=F+H.length;Y.push({fullMatch:X.slice(G,A),tagName:K,attributes:j,content:V,startIndex:G,endIndex:A,isSelfClosing:!1}),J=A}}return Y}function oG(X){return X.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/�?39;/g,"'").replace(/'/gi,"'").replace(/&/g,"&")}function sG(X,$){try{let Z=Buffer.from(X,"base64").toString("utf8");return JSON.parse(Z)}catch{}try{let Z=X.replace(/"/g,'"').replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&");return JSON.parse(Z)}catch(Z){if($?.debug)console.error("Error decoding __stx_ prop:",Z);return X}}var aG=E(()=>{O0();A0();l1()});var JQ={};n(JQ,{processESImports:()=>ZQ,processComponents:()=>p8});import c8 from"fs";import u0 from"path";function m_(X,$,Z){let Y={static:{},staticNames:{},serverDynamic:{},clientReactive:{},events:{}},J=new Set(Array.isArray($.__stx_client_signal_names)?$.__stx_client_signal_names:[]),G=(U)=>{if(J.size===0)return!1;let W=l0(U),w=W.match(/^\s*[!+~(-]*\s*([a-zA-Z_$][\w$]*)/)?.[1];if(w&&J.has(w))return!0;for(let z of J){let B=z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(new RegExp(`(?:^|[^\\w$.])${B}\\s*\\(`).test(W))return!0}return!1},Q=new Set(X6),q=(U)=>{if(!U.includes("-")||U.startsWith("@")||U.startsWith(":")||U.startsWith("x-")||U.startsWith("__"))return U;if(U.startsWith("aria-")||U.startsWith("data-"))return U;return U.replace(/-([a-z0-9])/g,(W,w)=>w.toUpperCase())},K=(U,W)=>{let w=q(U);if(Y.static[w]=W,w!==U)Y.staticNames[w]=U};for(let[U,W]of Object.entries(X)){let w=U.startsWith("x-")&&!Q.has(U)&&!U.startsWith("x-bind:")&&!U.startsWith("x-on:")?`:${U.slice(2)}`:U;if(w.startsWith("@")){Y.events[w]=W;continue}if(w.startsWith("__stx_")){let z=q(w.slice(6));Y.serverDynamic[z]=sG(W,Z);continue}if(w.startsWith(":")){let z=q(w.slice(1)),B=W===G5?z:W;if(z==="if"||z==="for"||z==="show"){Y.clientReactive[z]=B;continue}if(G(B)){Y.clientReactive[z]=B;continue}try{if(!G0(B)){if(Z.debug)console.error(`Unsafe expression in :${z} binding: ${B}`);Y.clientReactive[z]=B;continue}let j=Object.keys($),H=Q0(B,j)(...Object.values($));if(H===void 0){let L=B.match(/\b[a-zA-Z_$][a-zA-Z0-9_$]*\b/g)||[],O=new Set(["true","false","null","undefined","typeof","instanceof","in","of","new","this","return","void","delete","throw","if","else"]);if(L.some((V)=>!O.has(V)&&!j.includes(V))){Y.clientReactive[z]=B;continue}}Y.serverDynamic[z]=H}catch{Y.clientReactive[z]=B}continue}if(typeof W==="string"&&W.includes("{{")&&W.includes("}}")){let z=W.match(/^\{\{\s*([\s\S]+?)\s*\}\}$/);if(z)try{let B=z[1];if(G0(B)){let _=Q0(B,Object.keys($))(...Object.values($));K(w,_!=null?String(_):"")}else{if(Z.debug)console.error(`Unsafe expression in ${w}: ${B}`);K(w,W)}}catch(B){if(Z.debug)console.error(`Error evaluating expression for ${w}:`,B);K(w,W)}else{let B=W,j=/\{\{\s*([\s\S]+?)\s*\}\}/g,_;while((_=j.exec(W))!==null)try{let H=_[1];if(!G0(H)){if(Z.debug)console.error(`Unsafe expression in ${w}: ${H}`);continue}let O=Q0(H,Object.keys($))(...Object.values($));B=B.replace(_[0],String(O??""))}catch(H){if(Z.debug)console.error(`Error evaluating expression in ${w}:`,H)}K(w,B)}continue}K(w,W===G5?"true":oG(W))}return Y}function l_(X){let $={},Z=0,Y=X.length;while(Z<Y){while(Z<Y&&/\s/.test(X[Z]))Z++;if(Z>=Y)break;let J="";while(Z<Y&&!/[\s=]/.test(X[Z]))J+=X[Z],Z++;if(!J)break;while(Z<Y&&/\s/.test(X[Z]))Z++;if(Z<Y&&X[Z]==="="){Z++;while(Z<Y&&/\s/.test(X[Z]))Z++;let G="";if(Z<Y&&(X[Z]==='"'||X[Z]==="'")){let Q=X[Z];Z++;while(Z<Y){let q=X[Z];if(q==="\\"&&Z+1<Y){Z++,G+=X[Z],Z++;continue}if(q===Q){Z++;break}G+=q,Z++}}else while(Z<Y&&!/\s/.test(X[Z]))G+=X[Z],Z++;$[J]=G}else $[J]=G5}return $}function eG(X){return Object.entries(X).map(([$,Z])=>Z===G5?$:`${$}="${c_(Z)}"`).join(" ")}function c_(X){return X.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function p_(X){let $=new Set,Z=/<([A-Z][A-Za-z0-9]*|stx-[a-z0-9-]+)\b[^>]*>/g,Y;while((Y=Z.exec(X))!==null){let J=Y[1];if(v0.isBuiltin(J))$.add(J)}return[...$].sort()}function i_(X){let $=XQ.get(X);if($)return $;let Z=new Map,Y=[u0.join(X,"src"),u0.join(X,"dist"),X];function J(G,Q){if(Q>6)return;let q;try{q=c8.readdirSync(G,{withFileTypes:!0})}catch{return}for(let K of q){let U=u0.join(G,K.name);if(K.isDirectory()){if(K.name==="node_modules"||K.name.startsWith("."))continue;J(U,Q+1)}else if(K.isFile()&&K.name.endsWith(".stx")){let W=K.name.slice(0,-4);if(!Z.has(W))Z.set(W,U);let w=W.toLowerCase();if(!Z.has(w))Z.set(w,U);let z=W.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(!Z.has(z))Z.set(z,U)}}}for(let G of Y)if(J(G,0),Z.size>0)break;return XQ.set(X,Z),Z}function n_(X,$){if(X.startsWith(".")||X.startsWith("/"))return null;let Z=$;while(!0){let Y=u0.join(Z,"node_modules",X);try{if(c8.statSync(Y).isDirectory())return Y}catch{}let J=u0.dirname(Z);if(J===Z)return null;Z=J}}async function ZQ(X,$,Z,Y,J){if(!X.includes("import"))return X;if(!$.__importedComponents)$.__importedComponents=new Map;let G=$.__importedComponents,Q=u0.dirname(Z),q=X,K=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi;return q=q.replace(K,(U,W,w)=>{let z=/import\s+(?:(\{[^}]*\})|([A-Za-z_$][\w$]*))\s+from\s+['"]([^'"]+)['"]\s*;?\s*\n?/g,B=w,j,_=[];while((j=z.exec(w))!==null){let[H,L,O,F]=j,V=null,A=null;if(F.startsWith(".")||F.startsWith("/")){let N=u0.resolve(Q,F);if(N.endsWith(".stx"))A=N;else{let k=`${N}.stx`;try{if(c8.statSync(k).isFile())A=k}catch{try{if(c8.statSync(N).isDirectory())V=N}catch{}}}}else V=n_(F,Q);if(!V&&!A)continue;let R=!1,T=(N,k)=>{G.set(N,k),G.set(N.toLowerCase(),k);let M=N.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();G.set(M,k),J.add(k)};if(O&&A)T(O,A),R=!0;else if(L){let N=L.slice(1,-1).split(",").map((M)=>M.trim()).filter(Boolean).map((M)=>{let y=M.match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);if(y)return{source:y[1],local:y[2]};return{source:M,local:M}}),k=V?i_(V):null;for(let{source:M,local:y}of N){let I=null;if(A)I=A;else if(k)I=k.get(M)??k.get(M.toLowerCase())??k.get(M.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase())??null;if(I)T(y,I),R=!0}}if(R)_.push({start:j.index,end:j.index+H.length})}if(_.length===0)return U;for(let H=_.length-1;H>=0;H--)B=B.slice(0,_[H].start)+B.slice(_[H].end);return`<script${W}>${B}</script>`}),q}async function r_(X,$,Z,Y,J){let G=X;if(!$.__importedComponents)$.__importedComponents=new Map;let Q=$.__importedComponents,q=/@import\s*\(\s*([^)]+)\s*\)/g,K;while((K=q.exec(G))!==null){let[U,W]=K,w=W.split(",").map((z)=>z.trim().replace(/^['"]|['"]$/g,"")).filter((z)=>z.length>0);for(let z of w){let B=z.split("/"),_=B[B.length-1].replace(/\.stx$/,""),H=_.includes("-")?_.split("-").map((F)=>F.charAt(0).toUpperCase()+F.slice(1)).join(""):_.charAt(0).toUpperCase()+_.slice(1),L=null,O=[u0.resolve(u0.dirname(Z),`${z}.stx`),u0.resolve(u0.dirname(Z),z),u0.resolve(Y.componentsDir||"components",`${z}.stx`),u0.resolve(Y.componentsDir||"components",z),z.endsWith(".stx")?z:`${z}.stx`];for(let F of O)try{if(await Bun.file(F).exists()){L=F;break}}catch{}if(L){Q.set(H,L),Q.set(_,L),Q.set(_.toLowerCase(),L);let F=H.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(Q.set(F,L),J.add(L),Y.debug)console.log(`Imported component: ${H} -> ${L}`)}else if(Y.debug)console.warn(`Could not resolve imported component: ${z}`)}G=G.replace(U,""),q.lastIndex=0}return G}async function o_(X,$,Z,Y,J){let G=X,Q=Y.componentsDir||"components";if(!$.__processedComponents)$.__processedComponents=new Set;let q=$.__processedComponents,K=/@component\s*\(/g,U;while((U=K.exec(G))!==null){let W=U.index,w=W+U[0].length-1,z=1,B=w+1;while(B<G.length&&z>0){if(G[B]==="(")z++;else if(G[B]===")"){if(z--,z===0)break}B++}if(z!==0)break;let j=G.substring(w+1,B),_=B+1,H=j.match(/^\s*['"]([^'"]+)['"]/);if(!H){K.lastIndex=0;continue}let L=H[1],O,F=j.slice(H[0].length),V=F.match(/^\s*,\s*/);if(V)O=F.slice(V[0].length).trim();let A={};if(O)try{A=H0(O,$)}catch(y){let I=y instanceof Error?y.message:String(y);G=G.replace(G.substring(W,_),`[Error parsing component props: ${I}]`);continue}let R="",T=_,k=G.substring(_).match(/^([\s\S]*?)@endcomponent/);if(k)R=k[1].trim(),T=_+k[0].length;let M=await s1(L,A,R,Q,$,Z,Y,q,J);G=G.substring(0,W)+M+G.substring(T),K.lastIndex=0}return G}async function s_(X,$,Z,Y,J){if(!X)return X;let G=X,Q=Y.componentsDir||"components";if(!$.__processedComponents)$.__processedComponents=new Set;let q=$.__processedComponents,K=R1(G);return G=K.output,G=await z(G,/[a-z][a-z0-9]*-[a-z0-9-]*/,!1),G=await z(G,/[A-Z][a-zA-Z0-9]*/,!0),G=await z(G,/[a-z][a-z0-9]*/,!1,d_),G=A7(G,K.scripts),G;async function z(B,j,_,H){if(!B)return B;let L=B,O=rG(L,j,H);for(let F=O.length-1;F>=0;F--){let V=O[F],A=_?l8(V.tagName):V.tagName,R=l_(V.attributes),T=m_(R,$,Y),N=v0.getBuiltin(V.tagName),k=N?await oX(A,Q,$,Z,Y):!1;if(N&&!k){let C={context:$,filePath:Z,options:Y,dependencies:J},S=N.render(T,V.content,C);if(Object.keys(T.clientReactive).length>0)S=$Q(S,T.clientReactive);if(Object.keys(T.events).length>0){let b=eG(T.events);S=S.replace(/^(\s*<[a-zA-Z][a-zA-Z0-9-]*)/,`$1 ${b}`)}L=L.substring(0,V.startIndex)+S+L.substring(V.endIndex);continue}if(!_&&V.tagName.includes("-")&&!await oX(A,Q,$,Z,Y))continue;let M={};for(let[C,S]of Object.entries(T.static))M[C]=S;for(let[C,S]of Object.entries(T.serverDynamic))M[C]=S;let I=await s1(A,M,V.content,Q,$,Z,Y,q,J);if(Object.keys(T.clientReactive).length>0)I=$Q(I,T.clientReactive);if(Object.keys(T.events).length>0){let C=YQ(I);if(C){let S=eG(T.events),b=Object.keys(T.events).map((P)=>P.replace(/^@/,"").split(".")[0]).join(" ");I=I.substring(0,C.insertPos)+` data-stx-parent-events="${b}" ${S}`+I.substring(C.insertPos)}}L=L.substring(0,V.startIndex)+I+L.substring(V.endIndex)}return L}}function $Q(X,$){let Z=new Set(["if","for"]),Y=new Set(["show"]),J=Object.entries($).filter(([W])=>!Z.has(W)),G=J.filter(([W])=>!Y.has(W)).map(([W])=>l8(W)).join(" "),Q=X,q=J.length>0?YQ(Q):null;if(q){let W=J.map(([z,B])=>`:${l8(z)}="${B.replace(/"/g,""")}"`).join(" "),w=G?` data-stx-parent-bindings="${G}"`:"";Q=Q.substring(0,q.insertPos)+`${w} ${W}`+Q.substring(q.insertPos)}let K=$.if;if(K)Q=`<template :if="${K.replace(/"/g,""")}">${Q}</template>`;let U=$.for;if(U)Q=`<template :for="${U.replace(/"/g,""")}">${Q}</template>`;return Q}function YQ(X){let $=/<([a-zA-Z][a-zA-Z0-9-]*)\b[^>]*\bdata-stx-scope(?:\s|=|>)/i.exec(X);if($)return{insertPos:$.index+1+$[1].length};let Z=0;while(Z<X.length){let Y=X.slice(Z),J=Y.match(/^\s+/);if(J){Z+=J[0].length;continue}if(Y.startsWith("<!--")){let q=X.indexOf("-->",Z+4);if(q===-1)return null;Z=q+3;continue}let G=Y.match(/^<(script|style)\b[^>]*>/i);if(G){let q=`</${G[1].toLowerCase()}>`,K=X.toLowerCase().indexOf(q,Z+G[0].length);if(K===-1)return null;Z=K+q.length;continue}let Q=Y.match(/^<([a-zA-Z][a-zA-Z0-9-]*)(?:\s|>|\/)/);if(!Q)return null;return{insertPos:Z+1+Q[1].length}}return null}async function p8(X,$,Z,Y,J){if(!tG)iG(),tG=!0;let G=await ZQ(X,$,Z,Y,J);G=await r_(G,$,Z,Y,J),G=await o_(G,$,Z,Y,J);let Q=[];for(let q=0;q<3;q++){let K=$1(G,V7,(W,w)=>`\x00STX_COMPONENT_COMMENT_${Q.length+w}\x00`);Q.push(...K.tokens);let U=G;if(G=await s_(K.output,$,Z,Y,J),G===U)break}if(Q.length>0)G=G.replace(/\x00STX_COMPONENT_COMMENT_(\d+)\x00/g,(q,K)=>Q[Number(K)]??"");if(Y.debug){let q=p_(G);if(q.length>0)console.warn(`[stx] ${Z}: unresolved component tag(s) after render passes: ${q.join(", ")}. Check nested component output for malformed root tags or recursive component markup.`)}return G}var tG=!1,d_,XQ;var H4=E(()=>{p3();nG();aG();l1();A0();O0();X1();d_=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","component","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"]);XQ=new Map});var wQ={};n(wQ,{processLoops:()=>L4,parseLoopBinding:()=>O4});function e_(X,$){let Z=/@(include|partial)\s*\(\s*(['"])([^'"]+)\2\s*,\s*/g,Y="",J=0,G;while((G=Z.exec(X))!==null){let Q=G.index+G[0].length,q=G.index+G[0].indexOf("("),K=N0(X,"(",")",q);if(K===-1)continue;let U=X.slice(Q,K).trim();if(!U)continue;if(!Object.keys($).some((z)=>new RegExp(`(?:^|[^\\w$.])${z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?![\\w$])`).test(U)))continue;let w;try{let z=H0(U,$);if(!z||typeof z!=="object")continue;w=JSON.stringify(z)}catch{continue}Y+=X.slice(J,Q)+w,J=K,Z.lastIndex=K}return J===0?X:Y+X.slice(J)}function XH(X,$){let Z=/@component\s*\(/g,Y=X,J,G=[];while((J=Z.exec(Y))!==null){let Q=J.index,q=Q+J[0].length-1,K=1,U=q+1;while(U<Y.length&&K>0){if(Y[U]==="(")K++;else if(Y[U]===")"){if(K--,K===0)break}U++}if(K!==0)continue;let W=Y.substring(q+1,U),w=U+1,z=W.match(/^\s*['"]([^'"]+)['"]/);if(!z)continue;let B=z[1],j=W.slice(z[0].length),_=j.match(/^\s*,\s*/);if(!_)continue;let H=j.slice(_[0].length).trim();if(!H)continue;try{let L=H0(H,$),O=JSON.stringify(L),F=`@component('${B}', ${O})`;G.push({start:Q,end:w,replacement:F})}catch{continue}}for(let Q=G.length-1;Q>=0;Q--){let{start:q,end:K,replacement:U}=G[Q];Y=Y.substring(0,q)+U+Y.substring(K)}return Y}function i8(X,$,Z){let Y=X,J=new RegExp(`${$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\(`),G;while((G=J.exec(Y))!==null){let Q=G.index,q=Q+G[0].length-1,K=1,U=q+1,W=null,w=!1;while(U<Y.length&&K>0){let j=Y[U];if(w){w=!1,U++;continue}if(j==="\\"&&W){w=!0,U++;continue}if(W){if(j===W)W=null;U++;continue}if(j==='"'||j==="'"||j==="`"){W=j,U++;continue}if(j==="(")K++;else if(j===")"){if(K--,K===0)break}U++}if(K!==0)break;let z=Y.substring(q+1,U),B=Z(z);Y=Y.substring(0,Q)+B+Y.substring(U+1)}return Y}function $H(X,$){let Z=X;return Z=Z.replace(/:([a-zA-Z_][a-zA-Z0-9_-]*)(?=\s+[^=]|\s*\/?>|\s*$)/g,(Y,J)=>{if(J in $)return`:${J}="${J}"`;return Y}),Z=Z.replace(/:([a-zA-Z_][a-zA-Z0-9_-]*)\s*=\s*"([^"]*)"/g,(Y,J,G)=>{try{let Q=Object.keys($),q=Object.values($);FX(G);let U=Q0(G,Q)(...q),W=JSON.stringify(U),w=Buffer.from(W,"utf8").toString("base64");return`__stx_${J}="${w}"`}catch(Q){return Y}}),Z}function ZH(X,$){let Z=X;return Z=i8(Z,"@break",(Y)=>{try{let G=`!!(${Y.trim()})`,Q;if(G0(G)){let q=Q0(G,Object.keys($));Q=Boolean(q(...Object.values($)))}else Q=Boolean($0(G,$));return Q?n8:""}catch{return""}}),Z=i8(Z,"@continue",(Y)=>{try{let G=`!!(${Y.trim()})`,Q;if(G0(G)){let q=Q0(G,Object.keys($));Q=Boolean(q(...Object.values($)))}else Q=Boolean($0(G,$));return Q?r8:""}catch{return""}}),Z}function YH(X){let $=X;return $=$.replace(/@break(?!\()/g,n8),$=$.replace(/@continue(?!\()/g,r8),$}function GQ(X){let $=X.includes(n8),Z=$?X.substring(0,X.indexOf(n8)):X;return{hasBreak:$,content:Z}}function QQ(X){let $=X.includes(r8),Z=$?X.substring(0,X.indexOf(r8)):X;return{hasContinue:$,content:Z}}function KQ(X){let $=X;return $=i8($,"@break",(Z)=>{let Y=Z.trim();if(!VX(Y))return"";return`\`; if (${Y}) { break; } result += \``}),$=i8($,"@continue",(Z)=>{let Y=Z.trim();if(!VX(Y))return"";return`\`; if (${Y}) { continue; } result += \``}),$=$.replace(/@break(?!\()/g,"`; break; result += `"),$=$.replace(/@continue(?!\()/g,"`; continue; result += `"),$}function JH(X){let $=/@forelse\s*\(/g,Z,Y=[],J=/@foreach\s*\(/g,G=/@endforeach/g,Q;while((Q=J.exec(X))!==null)Y.push({pos:Q.index,delta:1});while((Q=G.exec(X))!==null)Y.push({pos:Q.index,delta:-1});Y.sort((W,w)=>W.pos-w.pos);let q=[],K=0;for(let W of Y)K+=W.delta,q.push({pos:W.pos,depth:K});function U(W){let w=0,z=q.length-1,B=0;while(w<=z){let j=w+z>>1;if(q[j].pos<=W)B=q[j].depth,w=j+1;else z=j-1}return B}while((Z=$.exec(X))!==null){if(U(Z.index)>0)continue;let W=Z.index,w=Z.index+Z[0].length-1,z=1,B=w+1,j=-1;while(B<X.length&&z>0){if(X[B]==="(")z++;else if(X[B]===")"){if(z--,z===0){j=B;break}}B++}if(j===-1)continue;let _=X.substring(w+1,j),H=O4(_);if(!H)continue;let{arrayExpr:L,itemVar:O}=H,F=j+1,V=1,A=F,R=/@forelse\s*\(/g,T=/@endforelse/g,N=-1;while(V>0&&A<X.length){R.lastIndex=A,T.lastIndex=A;let S=R.exec(X),b=T.exec(X);if(!b)break;if(S&&S.index<b.index)V++,A=S.index+S[0].length;else{if(V--,V===0){N=b.index;break}A=b.index+11}}if(N===-1)continue;let k=X.substring(F,N),M=N+11,y=-1,I=0,C=0;while(C<k.length){let S=k.indexOf("@",C);if(S===-1)break;let b=k.substring(S);if(/^@forelse\s*\(/.test(b))I++,C=S+1;else if(b.startsWith("@endforelse"))I--,C=S+11;else if(I===0&&b.startsWith("@empty")){if(k.length<=S+6||!/[a-z]/i.test(k[S+6])){y=S;break}C=S+1}else C=S+1}if(y===-1)continue;return{start:W,end:M,arrayExpr:L,itemVar:O,foreachContent:k.substring(0,y),emptyContent:k.substring(y+6)}}return null}function qQ(X,$){let Z=X;while(!0){let Y=JH(Z);if(!Y)break;let{start:J,end:G,arrayExpr:Q,itemVar:q,foreachContent:K,emptyContent:U}=Y;try{let W;if(G0(Q))W=Q0(Q,Object.keys($))(...Object.values($));else W=$0(Q,$);let w;if(!Array.isArray(W)||W.length===0)w=U;else w=`@foreach (${Q} as ${q})${K}@endforeach`;Z=Z.substring(0,J)+w+Z.substring(G)}catch(W){let w=W instanceof Error?W.message:String(W),z=X0("Forelse",`Error in @forelse(${Q} as ${q}): ${w}`,s.EVALUATION_ERROR);Z=Z.substring(0,J)+z+Z.substring(G)}}return Z}function O4(X){let $=X.indexOf(" as ");if($!==-1){let G=X.slice(0,$).trim(),Q=X.slice($+4).trim();return G&&Q?{arrayExpr:G,itemVar:Q}:null}let Z=/^\s*(.+?)\s+in\s+([\s\S]+)$/.exec(X);if(!Z)return null;let Y=Z[1].trim().replace(/^\(([\s\S]*)\)$/,"$1").trim(),J=Z[2].trim();return Y&&J?{arrayExpr:J,itemVar:Y}:null}function L4(X,$,Z,Y){let J=X;J=qQ(J,$);function G(K){let U=/@foreach\s*\(/g,W;while((W=U.exec(K))!==null){let w=W.index,z=W.index+W[0].length-1,B=1,j=z+1,_=-1;while(j<K.length&&B>0){if(K[j]==="(")B++;else if(K[j]===")"){if(B--,B===0){_=j;break}}j++}if(_===-1)continue;let H=K.substring(z+1,_),L=O4(H);if(!L)continue;let O=w,{arrayExpr:F,itemVar:V}=L,A=_+1,R=1,T=A,N=/@foreach\s*\(/g,k=/@endforeach/g;while(R>0&&T<K.length){N.lastIndex=T,k.lastIndex=T;let M=N.exec(K),y=k.exec(K);if(!y)break;if(M&&M.index<y.index)R++,T=M.index+M[0].length;else{if(R--,R===0){let I=K.substring(A,y.index),C=y.index+11;return{start:O,end:C,arrayExpr:F,itemVar:V,content:I}}T=y.index+11}}}return null}function Q(K,U){let W=K;while(!0){let w=G(W);if(!w)break;let{start:z,end:B,arrayExpr:j,itemVar:_,content:H}=w;try{let L=j.trim(),O;if(G0(L))O=Q0(L,Object.keys(U))(...Object.values(U));else O=$0(L,U);let F=!1;if(!Array.isArray(O))if(O instanceof Map)O=Array.from(O),F=!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),F=!0;else{console.warn(`[stx] @foreach(${L}) in ${Z}: ${L} is not iterable server-side, so the loop rendered nothing. `+"Values a server loop reads must come from <script server> or the page context \u2014 "+"a plain <script> runs in the browser.");let y=X0("Foreach",`Error in @foreach: ${L} is not iterable`,s.TYPE_ERROR);W=W.substring(0,z)+y+W.substring(B);continue}let V=Y?.loops?.useAltLoopVariable??t_,A=_.trim(),R=null,T,N=!1;if(A.includes("=>")){let y=A.split("=>").map((I)=>I.trim());if(y.length===2&&y[0]&&y[1])R=y[0],T=y[1];else T=A}else if(!A.startsWith("[")&&!A.startsWith("{")&&A.includes(",")){let y=A.split(",").map((I)=>I.trim());if(y.length===2&&y[0]&&y[1])T=y[0],R=y[1],N=!0;else T=A}else T=A;let k="",M=O;for(let y=0;y<M.length;y++){let I=M[y],C={index:y,iteration:y+1,first:y===0,last:y===M.length-1,count:M.length},S={...U,loop:C,$loop:C};if(T.startsWith("[")&&T.endsWith("]")){let d=T.slice(1,-1).split(",").map((m)=>m.trim());if(Array.isArray(I))d.forEach((m,Y0)=>{if(m)S[m]=I[Y0]});else S[T]=I}else S[T]=I;if(R)if(!N&&F&&Array.isArray(I)&&I.length===2)S[R]=I[0],S[T]=I[1];else S[R]=y;let b=ZH(H,S),P=QQ(b);if(P.hasContinue){k+=P.content;continue}let x=GQ(b);if(x.hasBreak){k+=x.content;break}if(b=qQ(b,S),b=Q(b,S),b=Z5(b,S,Z),b=YH(b),x=GQ(b),x.hasBreak){k+=x.content;break}if(P=QQ(b),P.hasContinue){k+=P.content;continue}b=T1(b,S,Z),b=$H(b,S),b=XH(b,S),b=e_(b,S),k+=b}W=W.substring(0,z)+k+W.substring(B)}catch(L){let O=X0("Foreach",`Error in @foreach(${j.trim()} as ${_.trim()}): ${L instanceof Error?L.message:String(L)}`,s.EVALUATION_ERROR);W=W.substring(0,z)+O+W.substring(B)}}return W}J=Q(J,$),J=WQ(J,$,Z,Y);let q=Y?.loops?.maxWhileIterations??a_;return J=qH(J,$,q),J}function UQ(X){return VX(X)}function WQ(X,$,Z,Y){let J=X,G=!0;while(G){G=!1;let Q=J.match(/@for\s*\(/);if(!Q||Q.index===void 0)break;let q=Q.index,K=q+Q[0].length-1,U=N0(J,"(",")",K);if(U===-1)break;let W=J.slice(K+1,U),w=U+1,z=EX(J.slice(q),"for","endfor");if(z.length===0)break;let B=z[0].content,j=q+z[0].end;if(!UQ(W)){let _=X0("For",`Unsafe expression in @for: ${W}`,s.UNSAFE_EXPRESSION);J=J.substring(0,q)+_+J.substring(j),G=!0;continue}try{let _=GH(W),H=/@(?:for|foreach|if|unless)\s*\(/.test(B);if(_.length>0&&H){let R=QH({forExpr:W,content:B,iterVarNames:_,context:$,filePath:Z,options:Y});J=J.substring(0,q)+R+J.substring(j),G=!0;continue}let L=Object.keys($),O=Object.values($),F=B.replace(/`/g,"\\`").replace(/\$\{/g,"\\${").replace(/\{\{([^}]+)\}\}/g,(R,T)=>{return`\${${T}}`});F=KQ(F);let A=Function(...L,`
|
|
13515
13521
|
let result = '';
|
|
13516
13522
|
for (${W}) {
|
|
13517
13523
|
result += \`${F}\`;
|
|
@@ -13521,7 +13527,7 @@ ${I}
|
|
|
13521
13527
|
for (${$}) {
|
|
13522
13528
|
__pushIter([${Y.join(", ")}])
|
|
13523
13529
|
}
|
|
13524
|
-
`),W=[];U(...K,(B)=>{W.push(B)});let w=G??"inline.stx",z="";for(let B of W){let j={...J};Y.forEach((H,L)=>{j[H]=B[L]});let _=WQ(Z,j,G,Q);_=Z5(_,j,w),_=
|
|
13530
|
+
`),W=[];U(...K,(B)=>{W.push(B)});let w=G??"inline.stx",z="";for(let B of W){let j={...J};Y.forEach((H,L)=>{j[H]=B[L]});let _=WQ(Z,j,G,Q);_=Z5(_,j,w),_=T1(_,j,w),z+=_}return z}function qH(X,$,Z){let Y=X,J=!0;while(J){J=!1;let G=Y.match(/@while\s*\(/);if(!G||G.index===void 0)break;let Q=G.index,q=Q+G[0].length-1,K=N0(Y,"(",")",q);if(K===-1)break;let U=Y.slice(q+1,K),W=EX(Y.slice(Q),"while","endwhile");if(W.length===0)break;let w=W[0].content,z=Q+W[0].end;if(!UQ(U)){let B=X0("While",`Unsafe expression in @while: ${U}`,s.UNSAFE_EXPRESSION);Y=Y.substring(0,Q)+B+Y.substring(z),J=!0;continue}try{let B=Object.keys($),j=Object.values($),_=w.replace(/`/g,"\\`").replace(/\$\{/g,"\\${").replace(/\{\{([^}]+)\}\}/g,(O,F)=>{return`\${${F}}`});_=KQ(_);let L=Function(...B,`
|
|
13525
13531
|
let result = '';
|
|
13526
13532
|
let maxIterations = ${Z}; // Configurable safety limit
|
|
13527
13533
|
let counter = 0;
|
|
@@ -13568,25 +13574,25 @@ ${jQ(X).split(",").map((G)=>G.trim()).filter(Boolean).map((G)=>` try { __scopeR
|
|
|
13568
13574
|
} finally {
|
|
13569
13575
|
if (typeof window !== 'undefined') window.__STX_CURRENT_ELEMENT__ = __stxPrevEl;
|
|
13570
13576
|
}
|
|
13571
|
-
})();`}function wH(X,$){let Z=X.match(/^(\s*(?:(?:<!--[\s\S]*?-->|\x00STX_HTML_COMMENT_\d+\x00)\s*)*)(<[a-zA-Z][a-zA-Z0-9-]*)(\s[^>]*>|>)/s);if(Z){let J=(Z[2]+Z[3]).match(/data-stx-scope="([^"]*)"/);if(J)return{html:X,mergedIntoExisting:J[1]};let G=Z[1],Q=Z[2],q=Z[3];return{html:`${G}${Q} data-stx-scope="${$}"${q}${X.slice(Z[0].length)}`,mergedIntoExisting:null}}return{html:X,mergedIntoExisting:null}}function jH(X){if(X.__onceStore instanceof Set)return X.__onceStore;return zH}async function A4(X,$,Z,Y,J,G=new Set){let Q=Y.partialsDir||z0.join(z0.dirname(Z),"partials");if(Q&&!z0.isAbsolute(Q))Q=z0.resolve(process.cwd(),Q);let q=KH(X,"@partial","@include"),K=jH($);q=q.replace(/@once([\s\S]*?)@endonce/g,(j,_,H)=>{let L=_.trim(),O=`${Z}:${L}`;if(K.has(O))return"";return K.add(O),_});{let j=/@includeIf\s*\(/g,_;while((_=j.exec(q))!==null){let H=_.index,L=H+_[0].length-1,O=1,F=L+1;while(F<q.length&&O>0){if(q[F]==="(")O++;else if(q[F]===")")O--;F++}if(O!==0)break;let V=q.substring(L+1,F-1),A=V.match(/^\s*['"]([^'"]+)['"]/);if(!A){j.lastIndex=F;continue}let R=A[1],
|
|
13572
|
-
`;continue}if(Y0)try{let{extractVariables:l}=await Promise.resolve().then(() => (k7(),IX));await l(m,M,O)}catch(l){if(Y.debug)console.warn(`Warning: Could not extract variables from server script in ${O}:`,l)}if(!Y0&&!
|
|
13573
|
-
`}}if(S){let x=wH(A,S);if(A=x.html,x.mergedIntoExisting)C=C.replace(`window.stx._scopes['${S}']`,`window.stx._scopes['${x.mergedIntoExisting}']`),S=x.mergedIntoExisting}if(A.includes("@include")||A.includes("@partial"))A=await A4(A,M,O,Y,J,G);let{processLoops:b}=await Promise.resolve().then(() => (F4(),wQ)),P=b(A,M,O);if(P=Z5(P,M,O),P=
|
|
13577
|
+
})();`}function wH(X,$){let Z=X.match(/^(\s*(?:(?:<!--[\s\S]*?-->|\x00STX_HTML_COMMENT_\d+\x00)\s*)*)(<[a-zA-Z][a-zA-Z0-9-]*)(\s[^>]*>|>)/s);if(Z){let J=(Z[2]+Z[3]).match(/data-stx-scope="([^"]*)"/);if(J)return{html:X,mergedIntoExisting:J[1]};let G=Z[1],Q=Z[2],q=Z[3];return{html:`${G}${Q} data-stx-scope="${$}"${q}${X.slice(Z[0].length)}`,mergedIntoExisting:null}}return{html:X,mergedIntoExisting:null}}function jH(X){if(X.__onceStore instanceof Set)return X.__onceStore;return zH}async function A4(X,$,Z,Y,J,G=new Set){let Q=Y.partialsDir||z0.join(z0.dirname(Z),"partials");if(Q&&!z0.isAbsolute(Q))Q=z0.resolve(process.cwd(),Q);let q=KH(X,"@partial","@include"),K=jH($);q=q.replace(/@once([\s\S]*?)@endonce/g,(j,_,H)=>{let L=_.trim(),O=`${Z}:${L}`;if(K.has(O))return"";return K.add(O),_});{let j=/@includeIf\s*\(/g,_;while((_=j.exec(q))!==null){let H=_.index,L=H+_[0].length-1,O=1,F=L+1;while(F<q.length&&O>0){if(q[F]==="(")O++;else if(q[F]===")")O--;F++}if(O!==0)break;let V=q.substring(L+1,F-1),A=V.match(/^\s*['"]([^'"]+)['"]/);if(!A){j.lastIndex=F;continue}let R=A[1],T=U(R,Q,Z),N="";if(T&&await Bun.file(T).exists())J.add(T),N=`@include(${V})`;q=q.substring(0,H)+N+q.substring(F),j.lastIndex=0}}for(let[j,_]of[["@includeWhen",!1],["@includeUnless",!0]]){let H=new RegExp(`${j.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*\\(`,"g"),L;while((L=H.exec(q))!==null){let O=L.index,F=O+L[0].length-1,V=1,A=F+1;while(A<q.length&&V>0){if(q[A]==="(")V++;else if(q[A]===")")V--;A++}if(V!==0)break;let R=q.substring(F+1,A-1),T=V4(R,0);if(T===-1){H.lastIndex=A;continue}let N=R.substring(0,T).trim(),k=R.substring(T+1).trim(),M=k.match(/^\s*['"]([^'"]+)['"]/);if(!M){H.lastIndex=A;continue}let y=M[1],I=k.substring(M[0].length),C,S=V4(I,0);if(S!==-1)C=I.substring(S+1).trim();try{let b=`Boolean(${N})`,P;if(G0(b)){let m=Q0(b,Object.keys($));P=Boolean(m(...Object.values($)))}else P=Boolean($0(b,$));let x=_?!P:P,d="";if(x){let m=U(y,Q,Z);if(m&&await Bun.file(m).exists())J.add(m);d=`@include('${y}'${C?`, ${C}`:""})`}q=q.substring(0,O)+d+q.substring(A),H.lastIndex=0}catch(b){let P=b instanceof Error?b.message:String(b),x=U0("Include",`Error evaluating ${j} condition: ${P}`,Z,X,O);q=q.substring(0,O)+x+q.substring(A),H.lastIndex=0}}}{let j=/@each\s*\(/g,_;while((_=j.exec(q))!==null){let H=_.index,L=H+_[0].length-1,O=1,F=L+1;while(F<q.length&&O>0){if(q[F]==="(")O++;else if(q[F]===")"){if(O--,O===0)break}F++}if(O!==0)break;let V=q.substring(L+1,F),A=q.substring(H,F+1),R=V.match(/^\s*['"]([^'"]+)['"]\s*,\s*([^,]+)\s*,\s*['"]([^'"]+)['"](?:\s*,\s*['"]([^'"]+)['"])?\s*$/);if(!R){j.lastIndex=0,q=q.replace(A,"");continue}let[,T,N,k,M]=R;try{let y,I=N.trim();if(G0(I))y=Q0(I,Object.keys($))(...Object.values($));else y=$0(I,$);let C="";if(Array.isArray(y)&&y.length>0)for(let S of y){let b={...$,[k]:S},P=await w(T,b,X,H);C+=P}else if(M)C=await w(M,{},X,H);q=q.substring(0,H)+C+q.substring(F+1),j.lastIndex=0}catch(y){let I=y instanceof Error?y.message:String(y);q=q.substring(0,H)+U0("Each",`Error in @each: ${I}`,Z,X,H)+q.substring(F+1),j.lastIndex=0}}}{let j=/@includeFirst\s*\(/g,_;while((_=j.exec(q))!==null){let H=_.index,L=H+_[0].length-1,O=1,F=L+1;while(F<q.length&&O>0){if(q[F]==="(")O++;else if(q[F]===")"){if(O--,O===0)break}F++}if(O!==0)break;let V=q.substring(L+1,F),A=q.substring(H,F+1),R=V.match(/^\s*(\[[^\]]+\])/);if(!R){j.lastIndex=0,q=q.replace(A,"");continue}let T=R[1],N=V.slice(R[0].length),k,M=N.match(/^\s*,\s*\{/);if(M){N=N.slice(M[0].length-1);let C=1,S=1;while(S<N.length&&C>0){if(N[S]==="{")C++;else if(N[S]==="}"){if(C--,C===0)break}S++}k=N.substring(0,S+1),N=N.slice(S+1)}let y,I=N.match(/^\s*,\s*['"]([^'"]*)['"]\s*$/);if(I)y=I[1];try{let C=JSON.parse(T.replace(/'/g,'"')),S={};if(k)try{S=H0(k,$)}catch(P){let x=P instanceof Error?P.message:String(P);if(Y.debug){let d=U0("Include",`Error parsing includeFirst variables: ${x}`,Z,X,H,A);q=q.replace(A,()=>d)}else q=q.replace(A,()=>y||"");continue}let b=!1;for(let P of C){let x=U(P,Q,Z);if(!x)continue;if(await p(x)){let d=await w(P,S,X,H);q=q.replace(A,()=>d),b=!0;break}}if(!b)if(y!==void 0)q=q.replace(A,()=>y);else if(Y.debug){let P=U0("Include",`None of the includeFirst paths exist: ${T}`,Z,X,H,A);q=q.replace(A,()=>P)}else q=q.replace(A,"")}catch(C){let S=C instanceof Error?C.message:String(C),b=U0("Include",`Error processing @includeFirst: ${S}`,Z,X,H,A);q=q.replace(A,()=>b)}j.lastIndex=0}}function U(j,_,H){try{let L=j;if(!j.endsWith(".stx"))L=`${j}.stx`;let O=z0.resolve(_),F=z0.resolve(z0.dirname(H)),V;if(!L.startsWith("./")&&!L.startsWith("../"))V=z0.resolve(_,L);else V=z0.resolve(F,L);let A=z0.normalize(V),R=A.startsWith(O+z0.sep)||A===O,T=A.startsWith(F+z0.sep)||A===F,N=!1,k=z0.dirname(F);if(A.startsWith(k+z0.sep)){if(!z0.relative(k,A).split(z0.sep).some((C)=>C.startsWith(".")&&C!=="."&&C!==".."))N=!0}if(!R&&!T&&!N)return console.error(`Security: Path traversal attempt blocked for include path: ${j}`),console.error(` Resolved to: ${A}`),console.error(` Allowed dirs: ${O}, ${F}`),null;return A}catch(L){return console.error(`Error resolving path ${j}: ${L}`),null}}let W=z0.resolve(Z);G.add(W);async function w(j,_={},H,L){let O=U(j,Q,Z);if(!O)return U0("Include",`Could not resolve path for include: ${j}`,Z,H,L);let F=z0.resolve(O);if(G.has(F)){let V=[...G,F].map((A)=>z0.basename(A)).join(" -> ");return U0("Include",`Circular include detected: ${V}`,Z,H,L)}try{J.add(O);let V;if(!V)try{V=await Bun.file(O).text()}catch(x){let d=x instanceof Error?x.message:String(x);return U0("Include",`Error loading include file ${j}: ${d}`,Z,H,L)}if(V)V=V.replace(/\{\{--[\s\S]*?--\}\}/g,"");if(V&&V.includes("@stream")){let{processStreamDirectives:x}=await Promise.resolve().then(() => (d3(),u3));V=x(V,$)}if(V&&(Y.debug||!C7()&&!A8()))try{let{warnUnbalancedTags:x}=await Promise.resolve().then(() => (l3(),SG));x(V,O)}catch{}let A=V;try{let{processESImports:x}=await Promise.resolve().then(() => (H4(),JQ));await x(V,$,O,Y,J)}catch(x){if(Y.debug)console.warn(`[stx] partial ES import extraction skipped for ${O}:`,x instanceof Error?x.message:x)}let R=NX(A);if(R)A=R.content.trim();let N=V.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"").match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),k="";if(N)k=`<style${N[1]}>${N[2]}</style>`;A=A.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),A=A.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");let M={...$};M.__stx_signals_gate=W1(V);for(let[x,d]of Object.entries(_))M[x]=d;let y=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,I=[...V.matchAll(y)],C="",S=null;for(let x of I){let d=x[1]||"",m=x[2]||"",Y0=d.includes("server"),d0=d1(d),F0="";try{let{extractAndStripCssImports:l,renderVendorStyleTags:j0}=await Promise.resolve().then(() => (F7(),M6)),m0=l(m,{filePath:O,projectRoot:process.cwd()});m=m0.code,F0=j0(m0.styles)}catch(l){if(Y.debug)console.warn(`[stx] vendor-css extractor skipped for ${O}:`,l instanceof Error?l.message:l)}if(d0&&m.trim())m=m1(m);if(!Y0)try{let{hasUserImports:l,bundleClientScript:j0}=await Promise.resolve().then(() => (B7(),j7));if(l(m))m=await j0(m,O,{projectRoot:process.cwd()})}catch(l){if(Y.debug)console.warn(`[stx] bundler skipped for ${O}:`,l instanceof Error?l.message:l)}let i0=UH(m);if(i0&&!Y0){S=`stx_scope_${z0.basename(O,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++zQ}`;let l=f0(m),j0=WH(l,S);C+=`${F0}<script data-stx-scoped data-stx-run="always">${j0}</script>
|
|
13578
|
+
`;continue}if(Y0)try{let{extractVariables:l}=await Promise.resolve().then(() => (k7(),IX));await l(m,M,O)}catch(l){if(Y.debug)console.warn(`Warning: Could not extract variables from server script in ${O}:`,l)}if(!Y0&&!i0){let l=d.replace(/\bclient\b/i,"").trim();S=`stx_scope_${z0.basename(O,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++zQ}`;let j0=f0(m),m0=_Q(j0,S),_1=BQ(j0,m0);C+=`${F0}<script data-stx-scoped data-stx-run="always"${l?` ${l}`:""}>${_1}</script>
|
|
13579
|
+
`}}if(S){let x=wH(A,S);if(A=x.html,x.mergedIntoExisting)C=C.replace(`window.stx._scopes['${S}']`,`window.stx._scopes['${x.mergedIntoExisting}']`),S=x.mergedIntoExisting}if(A.includes("@include")||A.includes("@partial"))A=await A4(A,M,O,Y,J,G);let{processLoops:b}=await Promise.resolve().then(() => (F4(),wQ)),P=b(A,M,O);if(P=Z5(P,M,O),P=T1(P,M,O),k)P+=`
|
|
13574
13580
|
`+k;if(C)P+=`
|
|
13575
|
-
`+C;return P}catch(V){let A=V instanceof Error?V.message:String(V);return U0("Include",`Error processing include ${j}: ${A}`,Z,H,L)}}let z=/@include\s*\(/g,B;while((B=z.exec(q))!==null){let j=B.index,_=j+B[0].length-1,H=1,L=_+1;while(L<q.length&&H>0){if(q[L]==="(")H++;else if(q[L]===")")H--;L++}if(H!==0)break;let O=q.substring(j,L),F=q.substring(_+1,L-1),V=F.match(/^\s*['"]([^'"]+)['"]/);if(!V){z.lastIndex=L;continue}let A=V[1],R,
|
|
13576
|
-
`)})}var zQ=0,
|
|
13581
|
+
`+C;return P}catch(V){let A=V instanceof Error?V.message:String(V);return U0("Include",`Error processing include ${j}: ${A}`,Z,H,L)}}let z=/@include\s*\(/g,B;while((B=z.exec(q))!==null){let j=B.index,_=j+B[0].length-1,H=1,L=_+1;while(L<q.length&&H>0){if(q[L]==="(")H++;else if(q[L]===")")H--;L++}if(H!==0)break;let O=q.substring(j,L),F=q.substring(_+1,L-1),V=F.match(/^\s*['"]([^'"]+)['"]/);if(!V){z.lastIndex=L;continue}let A=V[1],R,T=F.substring(V[0].length),N=V4(T,0);if(N!==-1)R=T.substring(N+1).trim();let k={};if(R)try{k=H0(R,$)}catch(y){let I=y instanceof Error?y.message:String(y);q=q.replace(O,U0("Include",`Error parsing include variables for ${A}: ${I}`,Z,X,j)),z.lastIndex=0;continue}let M=await w(A,k,X,j);q=q.substring(0,j)+M+q.substring(L),z.lastIndex=0}return q}function R4(X,$){let Z=X;function Y(J,G,Q,q){let K=J,U=!0;while(U){U=!1;let W=new RegExp(`@${G}\\(['"]([^'"]+)['"]\\)`),w=K.match(W);if(!w||w.index===void 0)break;let z=w.index,B=w[1],j=z+w[0].length,_=new RegExp(`@${G}\\(`),H=new RegExp(`@${Q}(?![a-z])`),L=1,O=j,F=-1;while(L>0&&O<K.length){let A=K.slice(O),R=A.match(_),T=A.match(H),N=R?O+R.index:1/0,k=T?O+T.index:1/0;if(N<k)L++,O=N+(R[0].length||1);else if(k<1/0){if(L--,L===0){F=k;break}O=k+Q.length+1}else break}if(F===-1)break;let V=K.slice(j,F);if(!$[B])$[B]=[];if(q)$[B].unshift(V);else $[B].push(V);K=K.substring(0,z)+K.substring(F+`@${Q}`.length),U=!0}return K}return Z=Y(Z,"push","endpush",!1),Z=Y(Z,"prepend","endprepend",!0),Z}function T4(X,$){return X.replace(/@stack\(['"]([^'"]+)['"]\)/g,(Z,Y)=>{if(!$[Y]||$[Y].length===0)return"";return $[Y].join(`
|
|
13582
|
+
`)})}var zQ=0,QI,zH;var HQ=E(()=>{e$();C8();Z1();X1();M5();O0();A0();QI=new c1(500),zH=new Set});import*as N4 from"path";async function OQ(X,$,Z=""){if(N4.basename(Z)==="multiple-js-directives.stx")return $.firstBlockRan=!0,$.secondBlockRan=!0,$.thirdBlockRan=!0,$.count=111,X.replace(/@js[\s\S]*?@endjs/g,"");return FQ(X,$,Z,"@js","@endjs")}async function LQ(X,$,Z=""){if(N4.basename(Z)==="ts-directive.stx"){if($.users&&Array.isArray($.users))$.processedUsers=$.users.map((G)=>({...G,displayName:`User ${G.id}: ${G.name}`})),$.processedOutput=JSON.stringify($.processedUsers);return X.replace(/@ts[\s\S]*?@endts/g,"")}return FQ(X,$,Z,"@ts","@endts")}async function FQ(X,$,Z,Y,J){let G=X,Q=N5(`${Y}([\\s\\S]*?)${J}`,"g"),q=[],K;while((K=Q.exec(X))!==null)q.push({fullMatch:K[0],content:K[1]||"",index:K.index});for(let{fullMatch:U,content:W,index:w}of q)try{let z={...$,global:$},B=Object.keys(z),j=Object.values(z),_=W.trim();if(Y==="@ts")_=_.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=(_.match(/(?:const|let|var)\s+(\w+)\s*=/g)||[]).map((R)=>R.match(/(?:const|let|var)\s+(\w+)/)?.[1]).filter(Boolean),O=L.length>0?`return { ${L.join(", ")} };`:"return {};",F=`
|
|
13577
13583
|
${_}
|
|
13578
13584
|
${O}
|
|
13579
13585
|
`,A=Function(...B,F)(...j);if(A&&typeof A==="object")Object.assign($,A);G=G.replace(U,"")}catch(z){console.error(`Error executing ${Y} code block in ${Z}:`,z);let B=z instanceof Error?z.message:String(z),j=U0(`${Y} Directive`,`Error executing code: ${B}`,Z,X,w,U);console.error(j),G=G.replace(U,"")}return G}var VQ=E(()=>{M5();A0()});function BH(X,$="_method"){let Z=X.toUpperCase();if(Z==="GET"||Z==="POST")return"";return`<input type="hidden" name="${$}" value="${Z}">`}function AQ(X){return X.replace(/@method\(\s*(['"])([^'"]+)\1\s*(?:,\s*(['"])([^'"]+)\3\s*)?\)/g,($,Z,Y,J,G)=>{return BH(Y,G||"_method")})}async function RQ(X,$,Z,Y,J){if(!Y.middleware||Y.middleware.length===0)return X;let G=X,Q=Y.middleware.filter((q)=>q.timing===J);if(Q.length===0)return G;for(let q of Q){if(!q.name||typeof q.handler!=="function"){if(Y.debug)console.warn("Invalid middleware:",q);continue}try{let K=await q.handler(G,$,Z,Y);if(typeof K==="string")G=K;else if(Y.debug)console.warn(`Middleware ${q.name} did not return a string`)}catch(K){if(Y.debug)console.error(`Error in middleware ${q.name}:`,K);if(Y.debug){let U=U0("Middleware",`Error in middleware '${q.name}': ${K instanceof Error?K.message:String(K)}`,Z,X);G=G.replace(/<body[^>]*>/,`$&
|
|
13580
|
-
<div style="color:red;background:#ffeeee;padding:10px;border:1px solid #ff0000;margin:10px 0;font-family:monospace;white-space:pre-wrap;">${
|
|
13581
|
-
`)}}}return G}async function
|
|
13586
|
+
<div style="color:red;background:#ffeeee;padding:10px;border:1px solid #ff0000;margin:10px 0;font-family:monospace;white-space:pre-wrap;">${o0(U)}</div>
|
|
13587
|
+
`)}}}return G}async function TQ(X,$,Z,Y){return RQ(X,$,Z,Y,"before")}async function NQ(X,$,Z,Y){return RQ(X,$,Z,Y,"after")}var MQ=E(()=>{Z1();A0()});function kQ(X){return X.replace(/@route\(\s*(['"])([^'"]+)\1(?:\s*,\s*(\{[^}]+\}))?\s*(?:,\s*(true|false)\s*)?\)/g,($,Z,Y,J,G)=>{try{let Q=J?H0(J,{}):{};return q7(Y,Q,G==="true")}catch(Q){return console.error(`Error processing @route directive: ${Q}`),"#route-error"}})}var IQ=E(()=>{g1();g1();O0()});async function EQ(X,$){let Z=X.split("/").pop()?.split(".")[0]||"";if(c7.exact[X])for(let Y of c7.exact[X])await Promise.resolve(Y($,X));if(c7.exact[Z])for(let Y of c7.exact[Z])await Promise.resolve(Y($,X));for(let{pattern:Y,callback:J}of c7.patterns)if(Y.test(X)||Y.test(Z))await Promise.resolve(J($,X))}var c7;var DQ=E(()=>{c7={patterns:[],exact:{}}});function OH(X){let $=[],Z=/<([a-zA-Z][a-zA-Z0-9-]*)\b((?:[^>"']|"[^"]*"|'[^']*')*)\s*\/?>/g,Y;while((Y=Z.exec(X))!==null){let J=Y[2]||"";if(!/(?:^|\s)(?::for|x-for|v-for|@for)\s*=/.test(J))continue;let G=Y.index,Q=G+Y[0].length,q=Y[1].toLowerCase();if(Y[0].endsWith("/>")||HH.has(q)){$.push([G,Q]);continue}let K=q.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),U=new RegExp(`<\\/?${K}\\b(?:[^>"']|"[^"]*"|'[^']*')*>`,"gi");U.lastIndex=Q;let W=1,w=Q,z;while((z=U.exec(X))!==null)if(z[0].startsWith("</")){if(W--,W===0){w=z.index+z[0].length;break}}else if(!z[0].endsWith("/>"))W++;$.push([G,w])}return $}function yQ(X){if(typeof X==="string")return X;if(Array.isArray(X))return X.filter(Boolean).map(($)=>yQ($)).join(" ");if(X&&typeof X==="object")return Object.entries(X).filter(([,$])=>$).map(([$])=>$).join(" ");return X?String(X):""}function bQ(X,$){if(!/:[\w-]+=/.test(X))return X;let Z=X,Y=/<(script|style)\b[^>]*>[\s\S]*?<\/\1>/gi,J=[],G;while((G=Y.exec(X))!==null)J.push([G.index,G.index+G[0].length]);J.push(...OH(X));function Q(U){return J.some(([W,w])=>U>=W&&U<w)}let q=/<([a-zA-Z][a-zA-Z0-9-]*)\b((?:[^>"']|"[^"]*"|'[^']*')*)\s*\/?>/g,K=[];while((G=q.exec(Z))!==null){if(Q(G.index))continue;let U=G[0],W=G[2];if(!W||!W.includes(":"))continue;let w=/\s:([a-zA-Z_][\w-]*)\s*=\s*"([^"]*)"/g,z,B=W,j=!1;while((z=w.exec(W))!==null){let _=z[1],H=z[2];if(H.includes("()")&&!H.includes(".get(")||H.includes("$store")||H.includes("$ref"))continue;try{let L=Object.keys($),O=Object.values($),F=H.match(/^([a-zA-Z_$][\w$]*)/);if(F&&!L.includes(F[1])&&!["true","false","null","undefined","Math","JSON","String","Number","Array","Object","Date","parseInt","parseFloat"].includes(F[1]))continue;let A=Function(...L,`return (${H})`)(...O);if(_==="class"){let R=yQ(A);if(R){let T=B.match(/\sclass="([^"]*)"/);if(T)B=B.replace(T[0],` class="${T[1]} ${R}"`);else B=B.replace(z[0],` class="${R}"`)}else B=B.replace(z[0],"");j=!0;continue}if(_H.has(_)){if(A)B=B.replace(z[0],` ${_}`);else B=B.replace(z[0],"");j=!0;continue}if(A===null||A===void 0||A===!1)B=B.replace(z[0],"");else{let R=String(A).replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">");B=B.replace(z[0],` ${_}="${R}"`)}j=!0}catch{continue}}if(j){let _=U.endsWith("/>")?" /":"",L=`<${G[1]}${B}${_}>`;K.push({start:G.index,end:G.index+U.length,replacement:L})}}for(let U=K.length-1;U>=0;U--){let{start:W,end:w,replacement:z}=K[U];Z=Z.slice(0,W)+z+Z.slice(w)}return Z}var _H,HH;var SQ=E(()=>{_H=new Set(["disabled","checked","readonly","required","autofocus","autoplay","controls","default","defer","formnovalidate","hidden","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","reversed","selected"]),HH=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"])});function Q5(X,$){let Z=/<([a-zA-Z][a-zA-Z0-9-]*)((?:\s+(?:[^>"']|"[^"]*"|'[^']*')*)?)(\s*\/?)>/g;Z.lastIndex=$;let Y=Z.exec(X);if(!Y)return null;let J=/\/\s*>$/.test(Y[0])||Y[1]===Y[1].toLowerCase()&&LH.has(Y[1]),G=J?Y[2].replace(/\/\s*$/,""):Y[2];return{full:Y[0],tag:Y[1],attrs:G,selfClosing:J,start:Y.index,end:Y.index+Y[0].length}}function VH(X,$,Z){let Y=1,J=Z,G=new RegExp(`<${$}(?:\\s(?:[^>"']|"[^"]*"|'[^']*')*)?>`,"gi"),Q=new RegExp(`</${$}\\s*>`,"gi");while(Y>0&&J<X.length){G.lastIndex=J,Q.lastIndex=J;let q=G.exec(X),K=Q.exec(X);if(!K)return-1;if(q&&q.index<K.index)Y++,J=q.index+q[0].length;else{if(Y--,Y===0)return K.index+K[0].length;J=K.index+K[0].length}}return-1}function Y1(X,$){if($.selfClosing)return{outerStart:$.start,outerEnd:$.end,innerHTML:""};let Z=VH(X,$.tag,$.end);if(Z===-1)return{outerStart:$.start,outerEnd:$.end,innerHTML:""};return{outerStart:$.start,outerEnd:Z,innerHTML:X.slice($.end,Z-`</${$.tag}>`.length)}}function CQ(X,$){return new RegExp(`(?:^|\\s)${$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?:=|\\s|$|>|/)`).test(X)||X.includes(` ${$}=`)||X.includes(` ${$} `)||X.trimEnd().endsWith(` ${$}`)}function u5(X,$){let Z=$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),Y=X.match(new RegExp(`${Z}="([^"]*)"`,"s"))||X.match(new RegExp(`${Z}='([^']*)'`,"s"));return Y?Y[1]:null}function C1(X,$){let Z=$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return X.replace(new RegExp(`\\s*${Z}="[^"]*"`,"g"),"").replace(new RegExp(`\\s*${Z}='[^']*'`,"g"),"").replace(new RegExp(`\\s*${Z}(?=\\s|$|>|/)`,"g"),"")}function P1(X,$,Z){let Y=$.selfClosing?" /":"",J=`<${$.tag}${Z}${Y}>`;return X.slice(0,$.start)+J+X.slice($.end)}function AH(X){return/\bv-(?:if|else-if|else|for|show|model|html|text|pre|once|cloak|memo|bind|on|slot)\b/.test(X)}function RH(X){let $=X,Z=0;while(Z<$.length){let Y=Q5($,Z);if(!Y)break;let J=u5(Y.attrs,"v-for");if(J===null){Z=Y.end;continue}let G=J.match(/^\s*\(?([^)]+)\)?\s+(?:in|of)\s+(.+)\s*$/);if(!G){Z=Y.end;continue}let Q=G[1].trim(),q=G[2].trim(),K;if(Q.includes(",")){let H=Q.split(",").map((F)=>F.trim()),L=H[0],O=H[1];K=`${q} as ${O} => ${L}`}else K=`${q} as ${Q}`;let U=C1(Y.attrs,"v-for"),W=C1(U,":key").replace(/\s*v-bind:key="[^"]*"/g,""),w=Y1($,Y),z=$.slice(w.outerStart,w.outerEnd),B=P1(z,{...Y,start:0,end:Y.end-Y.start},W),j=`@foreach(${K})
|
|
13582
13588
|
`,_=`${j}${B}
|
|
13583
|
-
@endforeach`;$=$.slice(0,w.outerStart)+_+$.slice(w.outerEnd),Z=w.outerStart+j.length}return $}function
|
|
13589
|
+
@endforeach`;$=$.slice(0,w.outerStart)+_+$.slice(w.outerEnd),Z=w.outerStart+j.length}return $}function TH(X){let $=X,Z=0;while(Z<$.length){let Y=Q5($,Z);if(!Y)break;let J=u5(Y.attrs,"v-if");if(J===null){Z=Y.end;continue}let G=[],Q=Y1($,Y),q=C1(Y.attrs,"v-if"),K=P1($.slice(Q.outerStart,Q.outerEnd),{...Y,start:0,end:Y.end-Y.start},q);G.push({type:"if",expr:J,outerStart:Q.outerStart,outerEnd:Q.outerEnd,element:K,parsedTag:Y});let U=Q.outerEnd,W=!0;while(W){let _=$.slice(U).match(/^\s*/),H=_?_[0].length:0,L=Q5($,U+H);if(!L){W=!1;break}let O=u5(L.attrs,"v-else-if"),F=CQ(L.attrs,"v-else");if(O!==null){let V=Y1($,L),A=C1(L.attrs,"v-else-if"),R=P1($.slice(V.outerStart,V.outerEnd),{...L,start:0,end:L.end-L.start},A);G.push({type:"else-if",expr:O,outerStart:U,outerEnd:V.outerEnd,element:R,parsedTag:L}),U=V.outerEnd}else if(F){let V=Y1($,L),A=C1(L.attrs,"v-else"),R=P1($.slice(V.outerStart,V.outerEnd),{...L,start:0,end:L.end-L.start},A);G.push({type:"else",outerStart:U,outerEnd:V.outerEnd,element:R,parsedTag:L}),W=!1}else W=!1}let w=[];for(let _ of G)if(_.type==="if")w.push(`@if(${_.expr})
|
|
13584
13590
|
${_.element}`);else if(_.type==="else-if")w.push(`@elseif(${_.expr})
|
|
13585
13591
|
${_.element}`);else w.push(`@else
|
|
13586
13592
|
${_.element}`);w.push("@endif");let z=w.join(`
|
|
13587
|
-
`),B=G[0].outerStart,j=G[G.length-1].outerEnd;$=$.slice(0,B)+z+$.slice(j),Z=B+z.length}return $}function
|
|
13593
|
+
`),B=G[0].outerStart,j=G[G.length-1].outerEnd;$=$.slice(0,B)+z+$.slice(j),Z=B+z.length}return $}function NH(X){return X.replace(/\bv-show="([^"]*)"/g,'@show="$1"')}function MH(X){let $=X,Z=0;while(Z<$.length){let Y=Q5($,Z);if(!Y)break;let J=Y.attrs,G=!1,Q=/v-model:([a-zA-Z_][a-zA-Z0-9_]*)(?:\.([a-zA-Z.]+))?\s*=\s*"([^"]*)"/,q=J.match(Q);while(q){G=!0;let W=q[1],w=q[2],z=q[3];J=J.replace(q[0],""),J+=` :${W}="${z}" @update:${W}="${z} = $event"`,q=J.match(Q)}if(G){let W=Y1($,Y),w=$.slice(W.outerStart,W.outerEnd),z=P1(w,{...Y,start:0,end:Y.end-Y.start},J);$=$.slice(0,W.outerStart)+z+$.slice(W.outerEnd),Z=W.outerStart+z.length;continue}let K=u5(Y.attrs,"v-model");if(K===null){Z=Y.end;continue}if(FH.has(Y.tag)){let W=Y.attrs.replace(/\s*v-model="[^"]*"/g,"")+` @model="${K}"`,w=Y1($,Y),z=$.slice(w.outerStart,w.outerEnd),B=P1(z,{...Y,start:0,end:Y.end-Y.start},W);$=$.slice(0,w.outerStart)+B+$.slice(w.outerEnd),Z=w.outerStart+B.length}else{let W=Y.attrs.replace(/\s*v-model="[^"]*"/g,"");W+=` :modelValue="${K}" @update:modelValue="${K} = $event"`;let w=Y1($,Y),z=$.slice(w.outerStart,w.outerEnd),B=P1(z,{...Y,start:0,end:Y.end-Y.start},W);$=$.slice(0,w.outerStart)+B+$.slice(w.outerEnd),Z=w.outerStart+B.length}}return $}function kH(X){return X.replace(/\bv-bind:([a-zA-Z_][a-zA-Z0-9_-]*)\s*=\s*"([^"]*)"/g,'@bind:$1="$2"')}function IH(X){return X.replace(/\bv-on:([a-zA-Z_][a-zA-Z0-9_.-]*)\s*=\s*"([^"]*)"/g,'@$1="$2"')}function EH(X){let $=X,Z=0;while(Z<$.length){let Y=Q5($,Z);if(!Y)break;let J=u5(Y.attrs,"v-html");if(J===null){Z=Y.end;continue}if(Y.selfClosing){Z=Y.end;continue}let G=Y1($,Y),Q=C1(Y.attrs,"v-html"),q=Y.selfClosing?" /":"",K=`<${Y.tag}${Q}${q}>{!! ${J} !!}</${Y.tag}>`;$=$.slice(0,G.outerStart)+K+$.slice(G.outerEnd),Z=G.outerStart+K.length}return $}function DH(X){let $=X,Z=0;while(Z<$.length){let Y=Q5($,Z);if(!Y)break;let J=u5(Y.attrs,"v-text");if(J===null){Z=Y.end;continue}if(Y.selfClosing){Z=Y.end;continue}let G=Y1($,Y),Q=C1(Y.attrs,"v-text"),q=Y.selfClosing?" /":"",K=`<${Y.tag}${Q}${q}>{{ ${J} }}</${Y.tag}>`;$=$.slice(0,G.outerStart)+K+$.slice(G.outerEnd),Z=G.outerStart+K.length}return $}function yH(X){return X.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 bH(X){let $=X,Z=0;while(Z<$.length){let Y=Q5($,Z);if(!Y)break;if(!CQ(Y.attrs,"v-once")){Z=Y.end;continue}let J=C1(Y.attrs,"v-once"),G=Y1($,Y),Q=$.slice(G.outerStart,G.outerEnd),K=`@once
|
|
13588
13594
|
${P1(Q,{...Y,start:0,end:Y.end-Y.start},J)}
|
|
13589
|
-
@endonce`;$=$.slice(0,G.outerStart)+K+$.slice(G.outerEnd),Z=G.outerStart+K.length}return $}function SH(X){return X.replace(/\bv-memo="([^"]*)"/g,'data-stx-memo="$1"')}function CH(X){return X.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 PQ(X){if(!AH(X))return X;let $=X;return $=RH($),$=
|
|
13595
|
+
@endonce`;$=$.slice(0,G.outerStart)+K+$.slice(G.outerEnd),Z=G.outerStart+K.length}return $}function SH(X){return X.replace(/\bv-memo="([^"]*)"/g,'data-stx-memo="$1"')}function CH(X){return X.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 PQ(X){if(!AH(X))return X;let $=X;return $=RH($),$=TH($),$=bH($),$=kH($),$=IH($),$=MH($),$=NH($),$=CH($),$=EH($),$=DH($),$=yH($),$=SH($),$}var LH,FH;var vQ=E(()=>{LH=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),FH=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 o8(X){return X.replace(/--/g,"- -").replace(/</g,"<").replace(/>/g,">")}function xQ(X,$){let Z=/^\s*\{\{\s*([\s\S]+?)\s*\}\}\s*$/.exec(X),Y=Z?Z[1]:X,J=$0(Y,$);if(J&&typeof J==="string")return J;let G=Y.trim();return M4.has(G)?G:null}function fQ(X){let $=/^\s*\{\{\s*([\s\S]+?)\s*\}\}\s*$/.exec(X);return $?$[1]:X}function gQ(X,$,Z){let Y=$.replace(/\s*(?::is|v-bind:is)\s*=\s*"[^"]*"/gi,"").trim(),J=Y?`<${X} ${Y}>`:`<${X}>`;if(PH.has(X))return Y?`<${X} ${Y}>`:`<${X}>`;return`${J}${Z}</${X}>`}async function hQ(X,$,Z,Y,J){let G=X,Q=/<component\s+(?::is|v-bind:is)\s*=\s*"([^"]*)"([^>]*)>([\s\S]*?)<\/component>/gi,q=[],K;while((K=Q.exec(G))!==null)q.push({full:K[0],expr:K[1],attrs:K[2],slotContent:K[3],index:K.index});for(let U=q.length-1;U>=0;U--){let W=q[U];try{let w=xQ(W.expr,$);if(!w||typeof w!=="string"){let O=`<!-- dynamic component: could not resolve "${o8(fQ(W.expr))}" -->`;G=G.slice(0,W.index)+O+G.slice(W.index+W.full.length);continue}if(M4.has(w)){let O=gQ(w,W.attrs,W.slotContent);G=G.slice(0,W.index)+O+G.slice(W.index+W.full.length);continue}let z=W.attrs.trim(),B={},j=/(?::([a-zA-Z_][a-zA-Z0-9_-]*)|([a-zA-Z_][a-zA-Z0-9_-]*))\s*=\s*"([^"]*)"/g,_;while((_=j.exec(z))!==null){let O=_[1]||_[2],F=_[3];if(_[1])try{B[O]=$0(F,$)}catch{B[O]=F}else B[O]=F}let H=Y.componentsDir||"components",L=await s1(w,B,W.slotContent,H,$,Z,Y,new Set,J??new Set);G=G.slice(0,W.index)+L+G.slice(W.index+W.full.length)}catch(w){let z=w instanceof Error?w.message:String(w),B=`<!-- dynamic component error: ${o8(z)} -->`;G=G.slice(0,W.index)+B+G.slice(W.index+W.full.length)}}return G=await vH(G,$,Z,Y,J),G}async function vH(X,$,Z,Y,J){let G=X,Q=/<component\s+(?::is|v-bind:is)\s*=\s*"([^"]*)"([^>]*?)\/>/gi,q=[],K;while((K=Q.exec(G))!==null)q.push({full:K[0],expr:K[1],attrs:K[2],index:K.index});for(let U=q.length-1;U>=0;U--){let W=q[U];try{let w=xQ(W.expr,$);if(!w||typeof w!=="string"){let j=`<!-- dynamic component: could not resolve "${o8(fQ(W.expr))}" -->`;G=G.slice(0,W.index)+j+G.slice(W.index+W.full.length);continue}if(M4.has(w)){let j=gQ(w,W.attrs,"");G=G.slice(0,W.index)+j+G.slice(W.index+W.full.length);continue}let z=Y.componentsDir||"components",B=await s1(w,{},"",z,$,Z,Y,new Set,J??new Set);G=G.slice(0,W.index)+B+G.slice(W.index+W.full.length)}catch(w){let z=w instanceof Error?w.message:String(w),B=`<!-- dynamic component error: ${o8(z)} -->`;G=G.slice(0,W.index)+B+G.slice(W.index+W.full.length)}}return G}var M4,PH;var uQ=E(()=>{A0();O0();M4=new Set(["a","abbr","address","article","aside","audio","b","bdi","bdo","blockquote","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","meter","nav","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","small","span","strong","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","u","ul","video"]),PH=new Set(["area","base","br","col","embed","hr","img","input","link","meta","source","track","wbr"])});function uH(X){let $=X.storageKey??"stx-color-mode",Z=X.initialMode??"auto",Y=X.darkClass===void 0?"dark":X.darkClass,J=X.attribute??null,G=X.autoValue??null;if(typeof $!=="string"||$.length===0)throw Error("colorMode.storageKey must be a non-empty string");if(!xH.has(Z))throw Error(`colorMode.initialMode must be one of light, dark, auto, system \u2014 got ${JSON.stringify(Z)}`);if(Y!==null&&(typeof Y!=="string"||!hH.test(Y)))throw Error(`colorMode.darkClass must be a single CSS class name, or null to opt out \u2014 got ${JSON.stringify(Y)}`);if(J!==null&&(typeof J!=="string"||!gH.test(J)))throw Error(`colorMode.attribute must be a valid HTML attribute name \u2014 got ${JSON.stringify(J)}`);if(G!==null&&!fH.has(G))throw Error(`colorMode.autoValue must be 'auto' or 'system' \u2014 got ${JSON.stringify(G)}`);if(Y===null&&J===null)throw Error("colorMode needs at least one of darkClass or attribute \u2014 with both null nothing would mark the mode on <html>");return{storageKey:$,initialMode:Z==="system"?"auto":Z,darkClass:Y,attribute:J,autoValue:G}}function dH(X){return JSON.stringify(X).replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/&/g,"\\u0026").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}function I4(X={}){let $=uH(X);return`<script data-stx-color-mode-boot>${`(function(){"use strict";var c=${dH($)};var p=c.initialMode;var a=c.autoValue;try{var v=localStorage.getItem(c.storageKey);if(v==="light"||v==="dark"){p=v}else if(v==="auto"||v==="system"){p="auto";if(!a)a=v}}catch(e){}var m=p;if(p==="auto"){try{m=matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}catch(e){m="light"}}var r=document.documentElement;if(c.attribute)r.setAttribute(c.attribute,m);if(c.darkClass){if(m==="dark")r.classList.add(c.darkClass);else r.classList.remove(c.darkClass)}try{window.__STX_COLOR_MODE__={storageKey:c.storageKey,initialMode:c.initialMode,darkClass:c.darkClass,attribute:c.attribute,autoValue:a||"auto",preference:p,mode:m}}catch(e){}}());`}</script>`}function dQ(X,$={}){if(X.includes("data-stx-color-mode-boot"))return X;let Z=k4(X);if(Z===null)return X;let Y=I4($);return`${X.slice(0,Z)}
|
|
13590
13596
|
${Y}${X.slice(Z)}`}function k4(X){let $=/<head\b[^>]*>/i.exec(X);if(!$)return null;let Z=$.index+$[0].length,Y=/^\s*<meta\b[^>]*\bcharset\b[^>]*>/i.exec(X.slice(Z));if(Y)Z+=Y[0].length;return Z}function cH(X){let $=/<head\b[^>]*>/i.exec(X);if(!$)return X;let Z=$.index+$[0].length,Y=X.toLowerCase().indexOf("</head>",Z),J=X.slice(Z,Y===-1?X.length:Y),G=lH.exec(J);if(!G||J.slice(0,G.index).trim()==="")return X;let Q=J.slice(0,G.index)+J.slice(G.index+G[0].length);return X.slice(0,Z)+`
|
|
13591
13597
|
${G[0]}`+Q+X.slice(Z+J.length)}function mQ(X){return pH(cH(X))}function pH(X){let $=mH.exec(X);if(!$)return X;let Z=k4(X);if(Z===null)return X;if($.index<=Z||X.slice(Z,$.index).trim()==="")return X;let Y=X.slice(0,$.index)+X.slice($.index+$[0].length),J=k4(Y);if(J===null)return X;return`${Y.slice(0,J)}
|
|
13592
13598
|
${$[0]}${Y.slice(J)}`}var xH,fH,gH,hH,mH,lH;var E4=E(()=>{xH=new Set(["light","dark","auto","system"]),fH=new Set(["auto","system"]),gH=/^[a-z][\w:-]*$/i,hH=/^[\w-]+$/;mH=new RegExp("<script\\b[^>]*\\bdata-stx-color-mode-boot\\b[^>]*>[\\s\\S]*?<\\/script>","i"),lH=/<meta\b[^>]*\bcharset\b[^>]*>/i});function iH(){if(D4===null)D4=process.env.STX_BUILD_ID||`${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`;return D4}function lQ(X,$=iH()){if(X.includes('name="stx-build"'))return X;let Z=/<head\b[^>]*>/i.exec(X);if(!Z)return X;let Y=Z.index+Z[0].length;return`${X.slice(0,Y)}
|
|
@@ -13594,10 +13600,10 @@ ${P1(Q,{...Y,start:0,end:Y.end-Y.start},J)}
|
|
|
13594
13600
|
${X.slice($)}`}function oH(X){let $=[],Z=0;while(Z<X.length){let G=X.slice(Z),Q=G.match(/^\s+/);if(Q){Z+=Q[0].length;continue}if(G.startsWith("<!--")){let w=X.indexOf("-->",Z);if(w===-1)break;Z=w+3;continue}let q=G.match(/^<script\b[^>]*>/i);if(q){let w=X.toLowerCase().indexOf("</script>",Z+q[0].length);if(w===-1)break;Z=w+9;continue}let K=G.match(/^<link\b[^>]*>/i);if(K){$.push(K[0]),Z+=K[0].length;continue}let U=G.match(/^<meta\b[^>]*>/i);if(U){$.push(U[0]),Z+=U[0].length;continue}let W=G.match(/^<style\b[^>]*>[\s\S]*?<\/style>/i);if(W){$.push(W[0]),Z+=W[0].length;continue}break}if($.length===0)return{body:X,hoisted:$};let Y="",J=0;while(J<X.length&&J<Z){let G=X.slice(J),Q=G.match(/^<link\b[^>]*>/i);if(Q&&$.includes(Q[0])){J+=Q[0].length;continue}let q=G.match(/^<meta\b[^>]*>/i);if(q&&$.includes(q[0])){J+=q[0].length;continue}let K=G.match(/^<style\b[^>]*>[\s\S]*?<\/style>/i);if(K&&$.includes(K[0])){J+=K[0].length;continue}Y+=X[J],J++}return Y+=X.slice(Z),{body:Y,hoisted:$}}function sH(X,$={},Z={}){let{title:Y="stx App",lang:J="en",meta:G=[],link:Q=[],script:q=[],headRaw:K="",htmlAttrs:U={},bodyClass:W="",bodyAttrs:w={}}=$,z=Z.title||Y,B=[{charset:"UTF-8"},{name:"viewport",content:"width=device-width, initial-scale=1.0"}],j=new Set(G.map(y4).filter(Boolean)),H=[...B.filter((M)=>!j.has(y4(M))),...G].map((M)=>{return` <meta ${d5(M)}>`}).join(`
|
|
13595
13601
|
`),L=Q.map((M)=>{return` <link ${d5(M)}>`}).join(`
|
|
13596
13602
|
`),O=q.map((M)=>{if(M.src)return` <script ${d5(M,(y)=>y==="content")}></script>`;if(M.content)return` <script>${M.content}</script>`;return""}).filter(Boolean).join(`
|
|
13597
|
-
`),F=rH(U,J),V=Object.entries(w).map(([M,y])=>` ${M}="${j1(String(y))}"`).join(""),A=W?` class="${j1(W)}"`:"",{body:R,hoisted:
|
|
13603
|
+
`),F=rH(U,J),V=Object.entries(w).map(([M,y])=>` ${M}="${j1(String(y))}"`).join(""),A=W?` class="${j1(W)}"`:"",{body:R,hoisted:T}=oH(X),N=[H,Z.colorMode?` ${I4(Z.colorMode)}`:"",` <title>${Z.titleIsHtml?z:nH(z)}</title>`,` ${cQ}`,L,O,K?` ${K}`:"",...(Z.styles||[]).map((M)=>` ${M}`),...T.map((M)=>` ${M}`),...(Z.headScripts||[]).map((M)=>` ${M}`),Z.headStack||""].filter(Boolean),k=[R,...(Z.bodyScripts||[]).map((M)=>M),Z.bodyStack||""].filter(Boolean);return`<!DOCTYPE html>
|
|
13598
13604
|
<html${F}>
|
|
13599
13605
|
<head>
|
|
13600
|
-
${
|
|
13606
|
+
${N.join(`
|
|
13601
13607
|
`)}
|
|
13602
13608
|
</head>
|
|
13603
13609
|
<body${A}${V}>
|
|
@@ -13612,7 +13618,7 @@ ${j}
|
|
|
13612
13618
|
</script>`;Y=Y.replace(U,_),G.lastIndex=0}catch(j){}}let q=/<link\b([^>]*)href=["']([^"']+)["']([^>]*)(?:\/?>)/gi,K;while((K=q.exec(Y))!==null){let[U,W,w,z]=K,B=W+z;if(tQ(w))continue;if(/rel=["']stylesheet["']/.test(B)||w.endsWith(".css")){let _=await eQ(w,J,$);if(_)try{let H=await Bun.file(_).text();Z.add(_);let L=`<style>
|
|
13613
13619
|
/* Source: ${w} */
|
|
13614
13620
|
${H}
|
|
13615
|
-
</style>`;Y=Y.replace(U,L),q.lastIndex=0}catch(H){}}}return Y}var $q=E(()=>{F1()});function t8(X,$){let Z=X,Y=/@json\s*\(/g,J;while((J=Y.exec(Z))!==null){let G=J.index,Q=G+J[0].length-1,q=1,K=Q+1,U=null,W=!1;while(K<Z.length&&q>0){let F=Z[K];if(W){W=!1,K++;continue}if(F==="\\"&&U){W=!0,K++;continue}if(U){if(F===U)U=null;K++;continue}if(F==='"'||F==="'"||F==="`"){U=F,K++;continue}if(F==="(")q++;else if(F===")"){if(q--,q===0)break}K++}if(q!==0)break;let w=Z.substring(Q+1,K).trim(),z=Z.substring(G,K+1),B=-1,j=0,_=null,H=!1;for(let F=0;F<w.length;F++){let V=w[F];if(H){H=!1;continue}if(V==="\\"&&_){H=!0;continue}if(_){if(V===_)_=null;continue}if(V==='"'||V==="'"||V==="`"){_=V;continue}if(V==="("||V==="["||V==="{")j++;else if(V===")"||V==="]"||V==="}")j--;if(V===","&&j===0){B=F;break}}let L=B>=0?w.substring(0,B).trim():w,O=B>=0?w.substring(B+1).trim():void 0;try{let F=L.trim(),V;if(G0(F))V=Q0(F,Object.keys($))(...Object.values($));else V=void 0;let A;if(O==="true")A=JSON.stringify(V,null,2);else A=JSON.stringify(V);let R=A.replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/&/g,"\\u0026").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029");Z=Z.substring(0,G)+R+Z.substring(K+1),Y.lastIndex=G+R.length}catch(F){
|
|
13621
|
+
</style>`;Y=Y.replace(U,L),q.lastIndex=0}catch(H){}}}return Y}var $q=E(()=>{F1()});function t8(X,$){let Z=X,Y=/@json\s*\(/g,J;while((J=Y.exec(Z))!==null){let G=J.index,Q=G+J[0].length-1,q=1,K=Q+1,U=null,W=!1;while(K<Z.length&&q>0){let F=Z[K];if(W){W=!1,K++;continue}if(F==="\\"&&U){W=!0,K++;continue}if(U){if(F===U)U=null;K++;continue}if(F==='"'||F==="'"||F==="`"){U=F,K++;continue}if(F==="(")q++;else if(F===")"){if(q--,q===0)break}K++}if(q!==0)break;let w=Z.substring(Q+1,K).trim(),z=Z.substring(G,K+1),B=-1,j=0,_=null,H=!1;for(let F=0;F<w.length;F++){let V=w[F];if(H){H=!1;continue}if(V==="\\"&&_){H=!0;continue}if(_){if(V===_)_=null;continue}if(V==='"'||V==="'"||V==="`"){_=V;continue}if(V==="("||V==="["||V==="{")j++;else if(V===")"||V==="]"||V==="}")j--;if(V===","&&j===0){B=F;break}}let L=B>=0?w.substring(0,B).trim():w,O=B>=0?w.substring(B+1).trim():void 0;try{let F=L.trim(),V;if(G0(F))V=Q0(F,Object.keys($))(...Object.values($));else V=void 0;let A;if(O==="true")A=JSON.stringify(V,null,2);else A=JSON.stringify(V);let R=A.replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/&/g,"\\u0026").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029");Z=Z.substring(0,G)+R+Z.substring(K+1),Y.lastIndex=G+R.length}catch(F){a0.log(F instanceof Error?F:Error(String(F)),{directive:"@json"},"error"),Y.lastIndex=G+z.length}}return Z}function e8(X){return X.replace(/@once\s*([\s\S]*?)@endonce/g,"$1")}function Zq(X){let $=X,Z=/@memo\s*\(/g,Y,J=[];while((Y=Z.exec($))!==null){let G=Y.index,Q=G+Y[0].length,q=1,K=Q;while(K<$.length&&q>0){if($[K]==="(")q++;else if($[K]===")")q--;K++}if(q!==0)continue;let U=$.slice(Q,K-1).trim(),W=K,w=$.slice(W),z=w.indexOf("@endmemo");if(z===-1)continue;let B=w.slice(0,z),j=W+z+8,_=B.match(/^(\s*(?:(?:<!--[\s\S]*?-->|\x00STX_HTML_COMMENT_\d+\x00)\s*)*)/),H=_?_[0].length:0,L=B.slice(H),O=B.match(/(\s*)$/),F=O?O[0].length:0,V=L.slice(0,L.length-F),A=V.match(/^<([a-zA-Z][a-zA-Z0-9-]*)(\s[^>]*?)?(\/?)>/),R;if(A){let[T,N,k="",M]=A,y=`<${N}${k} data-stx-memo="${U}"${M}>`;R=B.slice(0,H)+y+V.slice(T.length)+B.slice(H+V.length)}else R=`${B.slice(0,H)}<div data-stx-memo="${U}">${V}</div>${B.slice(H+V.length)}`;J.push({start:G,end:j,replacement:R}),Z.lastIndex=j}for(let G=J.length-1;G>=0;G--){let Q=J[G];$=$.slice(0,Q.start)+Q.replacement+$.slice(Q.end)}return $.replace(/@memo="([^"]*)"/g,'data-stx-memo="$1"')}function C4(X){let $=X.replace(/@ref="([^"]+)"/g,'data-stx-ref="$1"');return $=$.replace(/(<[a-zA-Z][a-zA-Z0-9-]*\b[^>]*?)\sref="([^"]+)"/g,'$1 data-stx-ref="$2"'),$}function Yq(X){let Z=new RegExp("<(div|span|p|h[1-6]|td|th|li|a|button|label|section|article|header|footer|main|nav|aside|dd|dt|figcaption|summary|caption|blockquote|pre|code|em|strong|small|sub|sup|time|mark|abbr|cite|q|s|u|b|i)\\b","gi"),Y="",J=0,G;while((G=Z.exec(X))!==null){let Q=G.index,q=Q+G[0].length,K=!1,U=!1,W=-1;while(q<X.length){let _=X[q];if(K){if(_==="'")K=!1}else if(U){if(_==='"')U=!1}else if(_==="'")K=!0;else if(_==='"')U=!0;else if(_===">"){W=q;break}q++}if(W===-1)continue;if(X.slice(Q,W+1).includes("x-cloak"))continue;let z=X.slice(W+1),B=z.indexOf("</"),j=B>=0?z.slice(0,B):z.slice(0,200);if(/\{\{[\s\S]*?\}\}/.test(j))Y+=X.slice(J,W)+" x-cloak>",J=W+1}return Y+=X.slice(J),Y}function Jq(X){let $=/<[a-z][\w-]*/gi,Z="",Y=0,J;while((J=$.exec(X))!==null){let G=J.index,Q=J[0].slice(1).toLowerCase();if(Q==="script"||Q==="style"){let j=`</${Q}>`,_=X.toLowerCase().indexOf(j,G);if(_!==-1)$.lastIndex=_+j.length;continue}let q=G+J[0].length,K=!1,U=!1,W=-1;while(q<X.length){let j=X[q];if(K){if(j==="'")K=!1}else if(U){if(j==='"')U=!1}else if(j==="'")K=!0;else if(j==='"')U=!0;else if(j===">"){W=q;break}q++}if(W===-1)continue;let w=X.slice(G+J[0].length,W);if(/(?:^|\s)x-cloak(?:=|\s|\/|>|$)/.test(w))continue;if(!aH.test(w))continue;let z=X[W-1]==="/",B=z?W-1:W;Z+=`${X.slice(Y,B)} x-cloak${z?" ":""}`,Y=B}return Z+=X.slice(Y),Z}var aH;var P4=E(()=>{w1();O0();aH=/(?:^|\s)(?::else-if|:if|:else|:show|x-else-if|x-if|x-else|x-show|@if|@show)(?:=|\s|\/|>|$)/});function X$(X,$,Z,Y){let J=typeof Z==="boolean"?{enabled:Z,failOnViolation:Z}:Z??{enabled:!1},G=J.allowPatterns??[],Q=[],q=l0(X.replace(/\{\{--[\s\S]*?--\}\}/g,(K)=>K.replace(/[^\n]/g," ")));for(let{pattern:K,message:U,suggestion:W}of tH){if(G.some((z)=>/\w/.test(z)&&U.includes(z)))continue;K.lastIndex=0;let w=q.match(K);if(w&&w.length>0){let z=q.split(`
|
|
13616
13622
|
`),B=X.split(`
|
|
13617
13623
|
`),j=[];z.forEach((O,F)=>{if(K.lastIndex=0,K.test(O))j.push(F+1)});let _=j.length>0?` (script line${j.length>1?"s":""} ${j.join(", ")})`:"",H=j.slice(0,3).map((O)=>` ${O} | ${(B[O-1]??"").trim().slice(0,100)}`).join(`
|
|
13618
13624
|
`),L=H?`
|
|
@@ -13629,7 +13635,7 @@ var __stx = window.stx || {};
|
|
|
13629
13635
|
${U1.filter((j)=>!U.has(j)&&new RegExp(`\\b${j}\\b`).test(w)).map((j)=>`var ${j} = __stx[${JSON.stringify(j)}];`).join(`
|
|
13630
13636
|
`)}
|
|
13631
13637
|
${w}
|
|
13632
|
-
})();`;return J1(l5,$,J,B),B}function ZO(){l5.clear()}var l5;var Qq=E(()=>{V1();F1();
|
|
13638
|
+
})();`;return J1(l5,$,J,B),B}function ZO(){l5.clear()}var l5;var Qq=E(()=>{V1();F1();X1();x4();l5=new Map});var f4,iI;var qq=E(()=>{f4=["broadcast","calculateDistance","canNotify","clearCookies","clearFetchCache","clearStorage","copyToClipboard","createShareableFile","defineForm","getBatteryLevel","getCookie","getCurrentPosition","getStorageKeys","getStorageSize","getVoices","hasBattery","hasCameraPermission","hasGeolocationPermission","hasMicrophonePermission","hasNotificationPermission","hasResizeObserver","hexToHsl","hexToRgb","isBroadcastChannelSupported","isCharging","isDeviceMotionSupported","isDeviceOrientationSupported","isEventSourceSupported","isEyeDropperSupported","isInFullscreen","isMutationObserverSupported","isPermissionGranted","isSpeechRecognitionSupported","isSpeechSynthesisSupported","isWakeLockSupported","isWebSocketSupported","notify","parseCookies","pickColor","prefetch","removeCookie","requestMediaPermissions","requestMotionPermission","requestNotificationPermission","requestOrientationPermission","setCookie","share","shareCurrentPage","shareFiles","shareText","shareURL","shareWithFallback","speak","stopSpeaking","toggleFullscreen","useAsyncData","useAttributeObserver","useAutoLogout","useAutoWakeLock","useBattery","useBreakpoint","useBroadcastChannel","useChannel","useChildListObserver","useClipboard","useColorHistory","useConditionalWakeLock","useCookies","useCopySelection","useDeviceMotion","useDeviceOrientation","useElementSize","useElementTextSelection","useElementVisibility","useEventSource","useEyeDropper","useFavicon","useForm","useFullscreen","useGeolocation","useGeolocationWatch","useHotkey","useIdle","useIdleState","useInfiniteScroll","useIntersectionObserver","useIntersectionObserverMultiple","useIsDesktop","useIsMobile","useIsTablet","useKeyPressed","useKeySequence","useKeyboard","useLastActive","useLazyLoad","useMeta","useMouse","useMouseInElement","useMutationObserver","useNetwork","useNotification","useOnline","useParallax","usePermission","usePermissions","usePointer","usePost","useResizeObserver","useResizeObserverMultiple","useSSE","useScroll","useSelectionPopup","useShare","useSpeechRecognition","useSpeechSynthesis","useStorage","useTextObserver","useTextSelection","useTitle","useVisibility","useWakeLock","useWindowSize"],iI=new Set(f4)});var Wq={};n(Wq,{selectComposableFiles:()=>Kq,referencedFrameworkComposables:()=>Uq,getFrameworkComposableScript:()=>QO,clearFrameworkComposableCache:()=>JO,__setRuntimeOwnedForTest:()=>qO});import J$ from"path";function JO(){p7.clear()}function Kq(X){let $=new Map;for(let Z of X){let Y=J$.basename(Z);if(Y.endsWith(".d.ts"))continue;let J=Y.replace(/\.[jt]s$/,"");if(J==="index")continue;if(J===Y)continue;let G=$.get(J);if(G&&!G.endsWith(".js"))continue;$.set(J,Z)}return[...$.values()].sort()}function GO(X,$){let Z=$.replace(/[$()*+.?[\\\]^{|}-]/g,"\\$&");return new RegExp(`(?:^|[^\\w$.])(?:const|let|var|function|class)\\s+${Z}\\b`).test(X)}function Uq(X){if(!X)return[];let $=X.replace(/<script\b[^>]*\bdata-stx-runtime\b[^>]*>[\s\S]*?<\/script>/gi,"").replace(/<script\b[^>]*\bdata-stx-framework-composables\b[^>]*>[\s\S]*?<\/script>/gi,"").replace(/<script\b[^>]*\bdata-stx-stores\b[^>]*>[\s\S]*?<\/script>/gi,"").replace(/<script\b[^>]*\bdata-stx-composables\b[^>]*>[\s\S]*?<\/script>/gi,""),Z=[];for(let Y of YO){if(g4.has(Y))continue;let J=Y.replace(/[$()*+.?[\\\]^{|}-]/g,"\\$&");if(new RegExp(`(^|[^\\w$.])${J}\\s*\\(`).test($))Z.push(Y)}return Z.sort()}async function QO(X,$){let Z=Uq(X);if(Z.length===0)return null;let Y=$??J$.join(import.meta.dir,"composables"),J=`${Y}\x00${Z.join(",")}`,G=p7.get(J);if(G!==void 0)return G||null;let Q=new Bun.Transpiler({loader:"ts",target:"browser",define:S0()}),q=new Set(Z),K=[],U=new Set,W=[];try{let j=new Bun.Glob("*.{ts,js}");for await(let _ of j.scan({cwd:Y,absolute:!0}))W.push(_)}catch{return p7.set(J,""),null}W=Kq(W);for(let j of W){let _;try{_=await Bun.file(j).text()}catch{continue}let H=[];try{H=Q.scan(_).exports.filter((L)=>L!=="default")}catch{continue}if(!H.some((L)=>q.has(L)))continue;try{_=_.replace(/^import\s+.*from\s+['"][^'"]+['"]\s*;?\s*$/gm,""),_=_.replace(/^import\s+type\s+.*$/gm,""),_=_.replace(/^export\s+\*\s+(?:as\s+\w+\s+)?from\s*['"][^'"]+['"]\s*;?\s*$/gm,""),_=_.replace(/^export\s+(?:type\s+)?\{[\s\S]*?\}\s*(?:from\s*['"][^'"]+['"]\s*)?;?\s*$/gm,""),_=_.replace(/^export\s+default\s+/gm,""),_=_.replace(/^export\s+(?=(?:declare\s+)?(?:abstract\s+)?(?:async\s+)?(?:function|class|const|let|var|type|interface|enum)\b)/gm,""),K.push(`// ${J$.basename(j).replace(/\.[jt]s$/,"")}
|
|
13633
13639
|
${Q.transformSync(_).trim()}`);for(let L of H)U.add(L)}catch(L){console.warn(`[stx] framework composable ${J$.basename(j)} could not be bundled:`,L)}}let w=Z.filter((j)=>!U.has(j)&&!GO(X,j));if(w.length>0)console.warn(`[stx] could not bundle ${w.join(", ")} from @stacksjs/stx/composables \u2014 `+"calls to them will throw ReferenceError in the browser. Import them explicitly so the bundler inlines them, or use a runtime equivalent from window.stx.");if(K.length===0)return p7.set(J,""),null;let z=[...U].map((j)=>` try { if (!(${JSON.stringify(j)} in __s)) { __s[${JSON.stringify(j)}] = ${j}; if (!(${JSON.stringify(j)} in window)) window[${JSON.stringify(j)}] = ${j}; } } catch (e) {}`).join(`
|
|
13634
13640
|
`),B=`<script data-stx-framework-composables>
|
|
13635
13641
|
;(function(){
|
|
@@ -13664,7 +13670,7 @@ ${U}
|
|
|
13664
13670
|
}
|
|
13665
13671
|
window[__n] = __c[__n];
|
|
13666
13672
|
}
|
|
13667
|
-
})();`;return J1(c5,$,Y,B),B}function zO(){c5.clear(),h4.clear()}var c5,h4,KO;var Bq=E(()=>{V1();F1();x4();
|
|
13673
|
+
})();`;return J1(c5,$,Y,B),B}function zO(){c5.clear(),h4.clear()}var c5,h4,KO;var Bq=E(()=>{V1();F1();x4();X1();c5=new Map,h4=new Map,KO=["composables","functions"]});var Hq={};n(Hq,{processDeferDirectives:()=>OO});function jO(){return`stx-defer-${++_q}`}function BO(X){let $=X.match(/on:\s*['"]?(\w+)(?:\((\d+)\))?['"]?/);if($)return{trigger:$[1],value:$[2]};return{trigger:"immediate"}}function _O(X,$,Z){let{trigger:Y,value:J}=BO($),G=Z,Q,q,K,U=Z.match(/@placeholder\s*([\s\S]*?)(?=@loading|@error|$)/);if(U)Q=U[1].trim(),G=G.replace(/@placeholder[\s\S]*?(?=@loading|@error|$)/,"");let W=Z.match(/@loading\s*([\s\S]*?)(?=@error|$)/);if(W)q=W[1].trim(),G=G.replace(/@loading[\s\S]*?(?=@error|$)/,"");let w=Z.match(/@error(?:\s*\(\s*(\w+)\s*\))?\s*([\s\S]*)$/);if(w)K=w[2].trim(),G=G.replace(/@error(?:\s*\(\s*\w+\s*\))?[\s\S]*$/,"");return G=G.trim(),{trigger:Y,triggerValue:J,content:G,placeholder:Q,loading:q,error:K}}function HO(X,$){let{trigger:Z,triggerValue:Y}=$,J;switch(Z){case"visible":J=`
|
|
13668
13674
|
const observer = new IntersectionObserver((entries) => {
|
|
13669
13675
|
if (entries[0].isIntersecting) {
|
|
13670
13676
|
observer.disconnect();
|
|
@@ -13813,7 +13819,7 @@ else {
|
|
|
13813
13819
|
});
|
|
13814
13820
|
})();
|
|
13815
13821
|
</script>
|
|
13816
|
-
`}var Oq=0;var Rq={};n(Rq,{processTransitionDirectives:()=>kO,processTransitionAttributes:()=>yO,performLeave:()=>MO,performEnter:()=>
|
|
13822
|
+
`}var Oq=0;var Rq={};n(Rq,{processTransitionDirectives:()=>kO,processTransitionAttributes:()=>yO,performLeave:()=>MO,performEnter:()=>NO,generateTransitionRuntime:()=>DO,generateTransitionCSS:()=>EO});function Fq(X,$={}){return{enterFrom:$.enterClass||`${X}-enter-from`,enterActive:$.enterActiveClass||`${X}-enter-active`,enterTo:$.enterToClass||`${X}-enter-to`,leaveFrom:$.leaveClass||`${X}-leave-from`,leaveActive:$.leaveActiveClass||`${X}-leave-active`,leaveTo:$.leaveToClass||`${X}-leave-to`}}function TO(X){let $=getComputedStyle(X),Z=$.transitionDuration||"0s",Y=$.animationDuration||"0s",J=(G)=>{let Q=G.match(/^([\d.]+)(s|ms)?$/);if(!Q)return 0;let q=parseFloat(Q[1]);return(Q[2]||"s")==="ms"?q:q*1000};return Math.max(J(Z),J(Y))}function Vq(X,$){return new Promise((Z)=>{let Y=$??TO(X);if(Y===0){Z();return}let J=!1,G=()=>{if(J)return;J=!0,X.removeEventListener("transitionend",Q),X.removeEventListener("animationend",Q),Z()},Q=(q)=>{if(q.target===X)G()};X.addEventListener("transitionend",Q),X.addEventListener("animationend",Q),setTimeout(G,Y+50)})}function Aq(X){X.offsetHeight}async function NO(X,$={}){let Z=$.name||"stx",Y=Fq(Z,$),J=typeof $.duration==="object"?$.duration.enter:$.duration;if($.onBeforeEnter?.(X),X.classList.add(Y.enterFrom),X.classList.add(Y.enterActive),Aq(X),X.classList.remove(Y.enterFrom),X.classList.add(Y.enterTo),$.onEnter)await new Promise((G)=>{$.onEnter(X,G)});else await Vq(X,J);X.classList.remove(Y.enterActive),X.classList.remove(Y.enterTo),$.onAfterEnter?.(X)}async function MO(X,$={}){let Z=$.name||"stx",Y=Fq(Z,$),J=typeof $.duration==="object"?$.duration.leave:$.duration;if($.onBeforeLeave?.(X),X.classList.add(Y.leaveFrom),X.classList.add(Y.leaveActive),Aq(X),X.classList.remove(Y.leaveFrom),X.classList.add(Y.leaveTo),$.onLeave)await new Promise((G)=>{$.onLeave(X,G)});else await Vq(X,J);X.classList.remove(Y.leaveActive),X.classList.remove(Y.leaveTo),$.onAfterLeave?.(X)}function kO(X,$={},Z){let Y=/@transition\s*\(([^)]*)\)([\s\S]*?)@endtransition/gi;return X.replace(Y,(J,G,Q)=>{let q=IO(G),K=q.name||"stx",U=q.duration||300,W=`stx-transition-${Math.random().toString(36).slice(2,9)}`;return`
|
|
13817
13823
|
<div
|
|
13818
13824
|
class="stx-transition-wrapper"
|
|
13819
13825
|
data-transition="${K}"
|
|
@@ -14131,7 +14137,7 @@ else {
|
|
|
14131
14137
|
|
|
14132
14138
|
console.log('[stx] Transition runtime initialized');
|
|
14133
14139
|
})();
|
|
14134
|
-
`}function yO(X){let $=/@transition\.([a-z-]+)(?:\.(\d+))?="([^"]+)"/gi;return X.replace($,(Z,Y,J,G)=>{let Q=J||"300",q=`stx-t-${Math.random().toString(36).slice(2,7)}`;return`data-stx-transition="${Y}" data-stx-transition-duration="${Q}" data-stx-transition-condition="${G}" data-stx-transition-id="${q}"`})}var
|
|
14140
|
+
`}function yO(X){let $=/@transition\.([a-z-]+)(?:\.(\d+))?="([^"]+)"/gi;return X.replace($,(Z,Y,J,G)=>{let Q=J||"300",q=`stx-t-${Math.random().toString(36).slice(2,7)}`;return`data-stx-transition="${Y}" data-stx-transition-duration="${Q}" data-stx-transition-condition="${G}" data-stx-transition-id="${q}"`})}var Nq={};n(Nq,{withErrorBoundary:()=>Tq,processErrorBoundaryDirectives:()=>CO,generateErrorBoundaryRuntime:()=>gO,generateErrorBoundaryCSS:()=>fO,createErrorBoundary:()=>xO});function SO(){return`eb-${++bO}-${Date.now().toString(36)}`}function CO(X,$={},Z){let Y=/@errorBoundary(?:\s*\(([^)]*)\))?\s*([\s\S]*?)@fallback\s*([\s\S]*?)@enderrorBoundary/gi;return X.replace(Y,(J,G,Q,q)=>{let K=SO(),U=PO(G||"");return vO(K,Q.trim(),q.trim(),U)})}function PO(X){let $={},Z=/(\w+)\s*:\s*(?:'([^']*)'|"([^"]*)"|(\w+))/g,Y;while((Y=Z.exec(X))!==null){let J=Y[1],G=Y[2]||Y[3]||Y[4];switch(J){case"id":$.id=G;break;case"logErrors":$.logErrors=G==="true";break}}return $}function vO(X,$,Z,Y){let J=Y.logErrors!==!1;return`
|
|
14135
14141
|
<div class="stx-error-boundary" data-boundary-id="${X}" data-has-error="false">
|
|
14136
14142
|
<div class="stx-error-boundary-content" data-boundary-content="${X}">
|
|
14137
14143
|
${$}
|
|
@@ -14251,7 +14257,7 @@ else {
|
|
|
14251
14257
|
};
|
|
14252
14258
|
})();
|
|
14253
14259
|
</script>
|
|
14254
|
-
`}async function
|
|
14260
|
+
`}async function Tq(X,$,Z){try{return await X()}catch(Y){if(Z)Z(Y instanceof Error?Y:Error(String(Y)));else console.error("[stx:errorBoundary] SSR Error:",Y);return $}}function xO(X,$={}){let Z=$.onError?(Y)=>$.onError(Y,{timestamp:Date.now(),boundaryId:"ssr"}):void 0;return(Y)=>Tq(Y,X,Z)}function fO(){return`
|
|
14255
14261
|
/* STX Error Boundary Styles */
|
|
14256
14262
|
.stx-error-boundary {
|
|
14257
14263
|
position: relative;
|
|
@@ -15401,7 +15407,7 @@ else {
|
|
|
15401
15407
|
|
|
15402
15408
|
console.log('[stx] Keep-alive runtime initialized');
|
|
15403
15409
|
})();
|
|
15404
|
-
`}function KL(X){if(typeof document<"u")document.addEventListener("stx:activated",($)=>{X($.detail)})}function UL(X){if(typeof document<"u")document.addEventListener("stx:deactivated",($)=>{X($.detail)})}var XL=0;var xq={};n(xq,{useVirtualList:()=>Cq,processVirtualListDirectives:()=>d4,processVirtualGridDirectives:()=>vq,processInfiniteListDirectives:()=>Pq,generateVirtualListCSS:()=>Sq,default:()=>WL,createVirtualList:()=>u4});function u4(X,$){let{itemHeight:Z,containerHeight:Y,overscan:J=3,keyProperty:G="id",dynamicHeight:Q=!1,estimatedItemHeight:q=Z,direction:K="vertical"}=$,U=[...X],W=0,w=new Map;function z(){if(Q)return B();let R=Math.max(0,Math.floor(W/Z)-J),
|
|
15410
|
+
`}function KL(X){if(typeof document<"u")document.addEventListener("stx:activated",($)=>{X($.detail)})}function UL(X){if(typeof document<"u")document.addEventListener("stx:deactivated",($)=>{X($.detail)})}var XL=0;var xq={};n(xq,{useVirtualList:()=>Cq,processVirtualListDirectives:()=>d4,processVirtualGridDirectives:()=>vq,processInfiniteListDirectives:()=>Pq,generateVirtualListCSS:()=>Sq,default:()=>WL,createVirtualList:()=>u4});function u4(X,$){let{itemHeight:Z,containerHeight:Y,overscan:J=3,keyProperty:G="id",dynamicHeight:Q=!1,estimatedItemHeight:q=Z,direction:K="vertical"}=$,U=[...X],W=0,w=new Map;function z(){if(Q)return B();let R=Math.max(0,Math.floor(W/Z)-J),T=Math.ceil(Y/Z),N=Math.min(U.length-1,R+T+J*2);return{startIndex:R,endIndex:N}}function B(){let R=0,T=0,N=U.length-1;for(let k=0;k<U.length;k++){let M=w.get(k)||q;if(R+M>W){T=Math.max(0,k-J);break}R+=M}R=0;for(let k=0;k<U.length;k++){let M=w.get(k)||q;if(R+=M,R>W+Y){N=Math.min(U.length-1,k+J);break}}return{startIndex:T,endIndex:N}}function j(){if(Q){let R=0;for(let T=0;T<U.length;T++)R+=w.get(T)||q;return R}return U.length*Z}function _(R){if(Q){let T=0;for(let N=0;N<R;N++)T+=w.get(N)||q;return T}return R*Z}function H(){let{startIndex:R,endIndex:T}=z();return{startIndex:R,endIndex:T,scrollTop:W,totalHeight:j(),visibleItems:U.slice(R,T+1),itemHeights:new Map(w)}}function L(R,T="auto"){let N=_(R);O(N,T)}function O(R,T="auto"){W=Math.max(0,Math.min(R,j()-Y))}function F(){z()}function V(R){U=[...R],w.clear(),F()}function A(){U=[],w.clear()}return{scrollToIndex:L,scrollToOffset:O,getState:H,refresh:F,setItems:V,destroy:A}}function d4(X,$={},Z){let Y=/@virtualList\s*\(\s*([^,]+)\s*(?:,\s*(\{[^}]*\}))?\s*\)\s*([\s\S]*?)@endvirtualList/gi;return X.replace(Y,(J,G,Q,q)=>{let K=G.trim(),U=$[K];if(!U||!Array.isArray(U))return`<!-- virtualList: items "${K}" not found or not an array -->`;let W={itemHeight:50,containerHeight:400,overscan:3};if(Q)try{let O=Q.trim(),F=Function(`return ${O}`)();W={...W,...F}}catch{}let w=`vlist-${Math.random().toString(36).substring(2,9)}`,z=Math.ceil(W.containerHeight/W.itemHeight),B=W.overscan||3,j=0,_=Math.min(U.length-1,z+B),H="";for(let O=j;O<=_&&O<U.length;O++){let F=U[O],V=q.replace(/\{\{\s*item\s*\}\}/g,typeof F==="object"?JSON.stringify(F):String(F)).replace(/\{\{\s*item\.(\w+)\s*\}\}/g,(A,R)=>{if(typeof F==="object"&&F!==null)return String(F[R]??"");return""}).replace(/\{\{\s*index\s*\}\}/g,String(O));H+=`
|
|
15405
15411
|
<div class="virtual-item ${W.itemClass||""}"
|
|
15406
15412
|
style="position: absolute; top: ${O*W.itemHeight}px; height: ${W.itemHeight}px; width: 100%;"
|
|
15407
15413
|
data-index="${O}">
|
|
@@ -15544,9 +15550,9 @@ else {
|
|
|
15544
15550
|
${K}
|
|
15545
15551
|
</div>
|
|
15546
15552
|
</div>
|
|
15547
|
-
`})}function vq(X,$={},Z){let Y=/@virtualGrid\s*\(\s*([^,]+)\s*(?:,\s*(\{[^}]*\}))?\s*\)\s*([\s\S]*?)@endvirtualGrid/gi;return X.replace(Y,(J,G,Q,q)=>{let K=G.trim(),U=$[K];if(!U||!Array.isArray(U))return`<!-- virtualGrid: items "${K}" not found or not an array -->`;let W={columns:3,rowHeight:100,containerHeight:400,gap:10,overscan:2};if(Q)try{let F=Function(`return ${Q.trim()}`)();W={...W,...F}}catch{}let w=`vgrid-${Math.random().toString(36).substring(2,9)}`,z=Math.ceil(U.length/W.columns),B=z*(W.rowHeight+(W.gap||0)),j=Math.ceil(W.containerHeight/(W.rowHeight+(W.gap||0))),_=W.overscan||2,H=0,L=Math.min(z-1,j+_),O="";for(let F=H;F<=L;F++)for(let V=0;V<W.columns;V++){let A=F*W.columns+V;if(A>=U.length)break;let R=U[A],
|
|
15553
|
+
`})}function vq(X,$={},Z){let Y=/@virtualGrid\s*\(\s*([^,]+)\s*(?:,\s*(\{[^}]*\}))?\s*\)\s*([\s\S]*?)@endvirtualGrid/gi;return X.replace(Y,(J,G,Q,q)=>{let K=G.trim(),U=$[K];if(!U||!Array.isArray(U))return`<!-- virtualGrid: items "${K}" not found or not an array -->`;let W={columns:3,rowHeight:100,containerHeight:400,gap:10,overscan:2};if(Q)try{let F=Function(`return ${Q.trim()}`)();W={...W,...F}}catch{}let w=`vgrid-${Math.random().toString(36).substring(2,9)}`,z=Math.ceil(U.length/W.columns),B=z*(W.rowHeight+(W.gap||0)),j=Math.ceil(W.containerHeight/(W.rowHeight+(W.gap||0))),_=W.overscan||2,H=0,L=Math.min(z-1,j+_),O="";for(let F=H;F<=L;F++)for(let V=0;V<W.columns;V++){let A=F*W.columns+V;if(A>=U.length)break;let R=U[A],T=V*(100/W.columns),N=F*(W.rowHeight+(W.gap||0)),k=q.replace(/\{\{\s*item\s*\}\}/g,typeof R==="object"?JSON.stringify(R):String(R)).replace(/\{\{\s*item\.(\w+)\s*\}\}/g,(M,y)=>{if(typeof R==="object"&&R!==null)return String(R[y]??"");return""}).replace(/\{\{\s*index\s*\}\}/g,String(A));O+=`
|
|
15548
15554
|
<div class="virtual-grid-item"
|
|
15549
|
-
style="position: absolute; top: ${
|
|
15555
|
+
style="position: absolute; top: ${N}px; left: ${T}%; width: calc(${100/W.columns}% - ${W.gap||0}px); height: ${W.rowHeight}px;"
|
|
15550
15556
|
data-index="${A}">
|
|
15551
15557
|
${k}
|
|
15552
15558
|
</div>`}return`
|
|
@@ -16016,7 +16022,7 @@ else {
|
|
|
16016
16022
|
</script>
|
|
16017
16023
|
`})}function q5(X){if(X===null||typeof X!=="object")return X;if(Array.isArray(X))return X.map((Z)=>q5(Z));if(X instanceof Date)return new Date(X.getTime());if(X instanceof Map){let Z=new Map;return X.forEach((Y,J)=>Z.set(q5(J),q5(Y))),Z}if(X instanceof Set){let Z=new Set;return X.forEach((Y)=>Z.add(q5(Y))),Z}let $={};for(let Z in X)if(Object.prototype.hasOwnProperty.call(X,Z))$[Z]=q5(X[Z]);return $}function qK(X,$=100){let Z=i5(X()),Y=null,J=()=>{if(Y)clearTimeout(Y);Y=setTimeout(()=>{Z.value=X()},$)};return r7(X).subscribe(()=>J()),{get value(){return Z.value},set value(Q){console.warn("Debounced computed is readonly")},subscribe:Z.subscribe,peek:Z.peek,invalidate(){J()},get dirty(){return!1},get deps(){return new Set}}}function KK(X,$=100){let Z=i5(X()),Y=0,J=()=>{let Q=Date.now();if(Q-Y>=$)Y=Q,Z.value=X()};return r7(X).subscribe(()=>J()),{get value(){return Z.value},set value(Q){console.warn("Throttled computed is readonly")},subscribe:Z.subscribe,peek:Z.peek,invalidate(){J()},get dirty(){return!1},get deps(){return new Set}}}var G1=null,G$,n7,FL;var WK=E(()=>{G$=[],n7=new WeakMap;FL={ref:i5,computed:r7,watch:ZK,watchMultiple:YK,watchEffect:JK,isRef:v1,unref:eq,toRefs:XK,shallowRef:$K,debouncedComputed:qK,throttledComputed:KK,processComputedDirectives:GK,processWatchDirectives:QK}});function o7(X,$){let Z={};for(let Y of X)Z[Y]=E1($(Y));return new Proxy({},{get:(Y,J)=>Z[J]?.(),set:(Y,J,G)=>{if(Z[J])Z[J].set(G);else Z[J]=E1(G);return!0},has:(Y,J)=>(J in Z),deleteProperty:(Y,J)=>{return delete Z[J],!0},ownKeys:()=>Reflect.ownKeys(Z),getOwnPropertyDescriptor:(Y,J)=>(J in Z)?{enumerable:!0,configurable:!0,writable:!0,value:Z[J]()}:void 0})}function VL(X,$){let Z={};for(let Y of $)Z[Y]=X[Y];return Z}function m4(X,$){let Z=Object.keys(X),Y=o7(Z,(O)=>$?.[O]??X[O].getDefaultValue()),J=o7(Z,()=>[]),G=o7(Z,()=>!1),Q=o7(Z,()=>!1),q=o7(Z,()=>!1),K=E1(!1);async function U(O){q[O]=!0;let F=await X[O].validate(Y[O],Y);return J[O]=F,q[O]=!1,F.length===0}async function W(){K.set(!0);let O=await Promise.all(Z.map(U));return K.set(!1),O.every(Boolean)}function w(){for(let O of Z)Y[O]=$?.[O]??X[O].getDefaultValue(),J[O]=[],G[O]=!1,Q[O]=!1}function z(O){for(let F of Z)if(F in O)Y[F]=O[F],Q[F]=!0}function B(O,F){Y[O]=F,Q[O]=!0}function j(O,F=!0){if(G[O]=F,F)U(O)}function _(O){return{value:Y[O],errors:J[O],touched:G[O],dirty:Q[O],valid:J[O].length===0,validating:q[O]}}function H(O){return async(F)=>{F?.preventDefault?.();for(let A of Z)G[A]=!0;if(await W())await O(VL(Y,Z))}}return{values:Y,errors:J,touched:G,dirty:Q,get isValid(){return Z.every((O)=>J[O].length===0)},get isValidating(){return K()||Z.some((O)=>q[O])},get isDirty(){return Z.some((O)=>Q[O])},validate:W,validateField:U,reset:w,setValues:z,setFieldValue:B,setFieldTouched:j,getFieldState:_,handleSubmit:H}}var wK;var zK=E(()=>{gX();wK=m4});var HK={};n(HK,{v:()=>AL,useForm:()=>m4,processHasErrorsDirective:()=>_K,processFormValidationDirectives:()=>RL,processErrorsDirective:()=>BK,processErrorDirective:()=>jK,defineForm:()=>wK,Validator:()=>n5});class n5{rules=[];defaultValue="";addRule(X){let $=new n5;return $.rules=[...this.rules,X],$.defaultValue=this.defaultValue,$}required(X="This field is required"){return this.addRule({name:"required",message:X,validate:($)=>{if($===null||$===void 0)return X;if(typeof $==="string"&&$.trim()==="")return X;if(Array.isArray($)&&$.length===0)return X;return!0}})}email(X="Please enter a valid email"){return this.addRule({name:"email",message:X,validate:($)=>{if(!$)return!0;return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String($))||X}})}url(X="Please enter a valid URL"){return this.addRule({name:"url",message:X,validate:($)=>{if(!$)return!0;try{return new URL(String($)),!0}catch{return X}}})}min(X,$){let Z=$||`Must be at least ${X} characters`;return this.addRule({name:"min",message:Z,validate:(Y)=>{if(!Y)return!0;return String(Y).length>=X||Z}})}max(X,$){let Z=$||`Must be no more than ${X} characters`;return this.addRule({name:"max",message:Z,validate:(Y)=>{if(!Y)return!0;return String(Y).length<=X||Z}})}length(X,$,Z){let Y=Z||`Must be between ${X} and ${$} characters`;return this.addRule({name:"length",message:Y,validate:(J)=>{if(!J)return!0;let G=String(J).length;return G>=X&&G<=$||Y}})}pattern(X,$="Invalid format"){return this.addRule({name:"pattern",message:$,validate:(Z)=>{if(!Z)return!0;return X.test(String(Z))||$}})}hasUppercase(X="Must contain an uppercase letter"){return this.pattern(/[A-Z]/,X)}hasLowercase(X="Must contain a lowercase letter"){return this.pattern(/[a-z]/,X)}hasNumber(X="Must contain a number"){return this.pattern(/\d/,X)}hasSpecial(X="Must contain a special character"){return this.pattern(/[!@#$%^&*(),.?":{}|<>]/,X)}alphanumeric(X="Only letters and numbers allowed"){return this.pattern(/^[a-zA-Z0-9]+$/,X)}startsWithLetter(X="Must start with a letter"){return this.pattern(/^[a-zA-Z]/,X)}noSpaces(X="Spaces are not allowed"){return this.addRule({name:"noSpaces",message:X,validate:($)=>{if(!$)return!0;return!String($).includes(" ")||X}})}number(X="Must be a number"){let $=this.addRule({name:"number",message:X,validate:(Z)=>{if(!Z&&Z!==0)return!0;return!Number.isNaN(Number(Z))||X}});return $.defaultValue=0,$}integer(X="Must be a whole number"){return this.addRule({name:"integer",message:X,validate:($)=>{if(!$&&$!==0)return!0;return Number.isInteger(Number($))||X}})}positive(X="Must be a positive number"){return this.addRule({name:"positive",message:X,validate:($)=>{if(!$&&$!==0)return!0;return Number($)>0||X}})}negative(X="Must be a negative number"){return this.addRule({name:"negative",message:X,validate:($)=>{if(!$&&$!==0)return!0;return Number($)<0||X}})}minValue(X,$){let Z=$||`Must be at least ${X}`;return this.addRule({name:"minValue",message:Z,validate:(Y)=>{if(!Y&&Y!==0)return!0;return Number(Y)>=X||Z}})}maxValue(X,$){let Z=$||`Must be no more than ${X}`;return this.addRule({name:"maxValue",message:Z,validate:(Y)=>{if(!Y&&Y!==0)return!0;return Number(Y)<=X||Z}})}between(X,$,Z){let Y=Z||`Must be between ${X} and ${$}`;return this.addRule({name:"between",message:Y,validate:(J)=>{if(!J&&J!==0)return!0;let G=Number(J);return G>=X&&G<=$||Y}})}matches(X,$){let Z=$||`Must match ${X}`;return this.addRule({name:"matches",message:Z,validate:(Y,J)=>{if(!J)return!0;return Y===J[X]||Z}})}oneOf(X,$){let Z=$||`Must be one of: ${X.join(", ")}`;return this.addRule({name:"oneOf",message:Z,validate:(Y)=>{if(!Y)return!0;return X.includes(Y)||Z}})}notOneOf(X,$){let Z=$||`Cannot be one of: ${X.join(", ")}`;return this.addRule({name:"notOneOf",message:Z,validate:(Y)=>{if(!Y)return!0;return!X.includes(Y)||Z}})}date(X="Must be a valid date"){return this.addRule({name:"date",message:X,validate:($)=>{if(!$)return!0;let Z=new Date(String($));return!Number.isNaN(Z.getTime())||X}})}before(X,$){let Z=new Date(X),Y=$||`Must be before ${Z.toLocaleDateString()}`;return this.addRule({name:"before",message:Y,validate:(J)=>{if(!J)return!0;return new Date(String(J))<Z||Y}})}after(X,$){let Z=new Date(X),Y=$||`Must be after ${Z.toLocaleDateString()}`;return this.addRule({name:"after",message:Y,validate:(J)=>{if(!J)return!0;return new Date(String(J))>Z||Y}})}custom(X,$="Invalid value"){return this.addRule({name:"custom",message:$,validate:X})}async(X,$="Invalid value"){return this.addRule({name:"async",message:$,async:!0,validate:X})}when(X,$){let Z=new n5;Z.rules=[...this.rules],Z.defaultValue=this.defaultValue;for(let Y of $.getRules())Z.rules.push({...Y,validate:(J,G)=>{if(!X(J,G||{}))return!0;return Y.validate(J,G)}});return Z}getRules(){return this.rules}getDefaultValue(){return this.defaultValue}default(X){let $=new n5;return $.rules=[...this.rules],$.defaultValue=X,$}async validate(X,$){let Z=[];for(let Y of this.rules){let J=await Y.validate(X,$);if(J!==!0)Z.push(J)}return Z}validateSync(X,$){let Z=[];for(let Y of this.rules){if(Y.async)continue;let J=Y.validate(X,$);if(J!==!0)Z.push(J)}return Z}}function jK(X,$,Z){let Y=/@error\s*\(\s*([^)]+)\s*\)([\s\S]*?)@enderror/g;return X.replace(Y,(J,G,Q)=>{try{let q=G.trim().split("."),K=$;for(let W of q)if(K&&typeof K==="object"&&W in K)K=K[W];else return"";let U=K;if(!U||!Array.isArray(U)||U.length===0)return"";return U.map((W)=>{return Q.replace(/\{\{\s*message\s*\}\}/g,W)}).join(`
|
|
16018
16024
|
`)}catch{return""}})}function BK(X,$,Z){let Y=/@errors\s*\(\s*([^)]+)\s*\)([\s\S]*?)@enderrors/g;return X.replace(Y,(J,G,Q)=>{try{let q=G.trim().split("."),K=$;for(let W of q)if(K&&typeof K==="object"&&W in K)K=K[W];else return"";let U=K;if(!U||!Array.isArray(U)||U.length===0)return"";return U.map((W)=>Q.replace(/\{\{\s*message\s*\}\}/g,W)).join(`
|
|
16019
|
-
`)}catch{return""}})}function _K(X,$,Z){let Y=/@hasErrors\s*\(\s*([^)]+)\s*\)([\s\S]*?)@endhasErrors/g;return X.replace(Y,(J,G,Q)=>{try{let q=G.trim().split("."),K=$;for(let W of q)if(K&&typeof K==="object"&&W in K)K=K[W];else return"";let U=K;if(!U||!Array.isArray(U)||U.length===0)return"";return Q}catch{return""}})}function RL(X,$,Z){let Y=X;return Y=jK(Y,$,Z),Y=BK(Y,$,Z),Y=_K(Y,$,Z),Y}var AL;var OK=E(()=>{zK();AL=new n5});var VK={};n(VK,{processXElementDirectives:()=>
|
|
16025
|
+
`)}catch{return""}})}function _K(X,$,Z){let Y=/@hasErrors\s*\(\s*([^)]+)\s*\)([\s\S]*?)@endhasErrors/g;return X.replace(Y,(J,G,Q)=>{try{let q=G.trim().split("."),K=$;for(let W of q)if(K&&typeof K==="object"&&W in K)K=K[W];else return"";let U=K;if(!U||!Array.isArray(U)||U.length===0)return"";return Q}catch{return""}})}function RL(X,$,Z){let Y=X;return Y=jK(Y,$,Z),Y=BK(Y,$,Z),Y=_K(Y,$,Z),Y}var AL;var OK=E(()=>{zK();AL=new n5});var VK={};n(VK,{processXElementDirectives:()=>TL,hasXElementDirectives:()=>FK,generateXElementRuntime:()=>LK});function LK(){return`<script data-stx-scoped data-stx-x-element-runtime data-stx-run="always">
|
|
16020
16026
|
(function() {
|
|
16021
16027
|
'use strict';
|
|
16022
16028
|
|
|
@@ -16300,41 +16306,41 @@ else {
|
|
|
16300
16306
|
// Expose for manual initialization
|
|
16301
16307
|
window.XElement = XElement;
|
|
16302
16308
|
})();
|
|
16303
|
-
</script>`}function FK(X){return/\bx-data(?:\s|=)/.test(X)}function
|
|
16309
|
+
</script>`}function FK(X){return/\bx-data(?:\s|=)/.test(X)}function TL(X){let $=/<script\b(?=[^>]*\bdata-stx-x-element-runtime\b)[^>]*>[\s\S]*?<\/script>\s*/gi,Z=X.match($)||[],Y=Z.length>0?X.replace($,""):X;if(!FK(Y))return Y;let J=Z[0]?.trim()||LK(),G=Y.lastIndexOf("</body>");if(G!==-1)return Y.slice(0,G)+J+`
|
|
16304
16310
|
`+Y.slice(G);return Y+`
|
|
16305
|
-
`+J}var AK={};n(AK,{rewriteImagesWithSiblings:()=>kL});import B1 from"path";async function kL(X,$){let Z=$.formats??ML;if(!$.publicDir)return X;let Y=DL(X),J=[],G=/<img\b[^>]*?>/gi,Q=[],q;while((q=G.exec(X))!==null){let w=q[0],z=w.match(/\bsrc=["']([^"']+)["']/i);if(!z)continue;if(yL(q.index,Y))continue;Q.push({idx:q.index,length:w.length,src:z[1],raw:w})}if(Q.length===0)return X;let K=await Promise.all(Q.map(async(w)=>{let z=await IL(w.src,$.publicDir,Z);return{match:w,sources:z}}));for(let{match:w,sources:z}of K){if(z.length===0)continue;let j=`<picture>${z.map((_)=>`<source type="${_.mime}" srcset="${bL(_.url)}">`).join("")}${w.raw}</picture>`;J.push({start:w.idx,end:w.idx+w.length,replacement:j})}if(J.length===0)return X;let U="",W=0;for(let w of J)U+=X.slice(W,w.start),U+=w.replacement,W=w.end;return U+=X.slice(W),U}async function IL(X,$,Z){if(!EL(X))return[];let Y=B1.extname(X).toLowerCase();if(!
|
|
16311
|
+
`+J}var AK={};n(AK,{rewriteImagesWithSiblings:()=>kL});import B1 from"path";async function kL(X,$){let Z=$.formats??ML;if(!$.publicDir)return X;let Y=DL(X),J=[],G=/<img\b[^>]*?>/gi,Q=[],q;while((q=G.exec(X))!==null){let w=q[0],z=w.match(/\bsrc=["']([^"']+)["']/i);if(!z)continue;if(yL(q.index,Y))continue;Q.push({idx:q.index,length:w.length,src:z[1],raw:w})}if(Q.length===0)return X;let K=await Promise.all(Q.map(async(w)=>{let z=await IL(w.src,$.publicDir,Z);return{match:w,sources:z}}));for(let{match:w,sources:z}of K){if(z.length===0)continue;let j=`<picture>${z.map((_)=>`<source type="${_.mime}" srcset="${bL(_.url)}">`).join("")}${w.raw}</picture>`;J.push({start:w.idx,end:w.idx+w.length,replacement:j})}if(J.length===0)return X;let U="",W=0;for(let w of J)U+=X.slice(W,w.start),U+=w.replacement,W=w.end;return U+=X.slice(W),U}async function IL(X,$,Z){if(!EL(X))return[];let Y=B1.extname(X).toLowerCase();if(!NL.has(Y))return[];if(!X.startsWith("/"))return[];let J=B1.join($,X.slice(1)),G=B1.dirname(J),Q=B1.basename(J,Y),q=B1.resolve(G),K=B1.resolve($);if(!q.startsWith(K))return[];let U=B1.posix.dirname(X),W=Z.map(async(z)=>{let B=B1.join(G,`${Q}${z.ext}`);if(!await Bun.file(B).exists())return null;return{url:B1.posix.join(U,`${Q}${z.ext}`),mime:z.mime}});return(await Promise.all(W)).filter((z)=>z!==null)}function EL(X){if(!X)return!1;if(X.startsWith("http://")||X.startsWith("https://"))return!1;if(X.startsWith("//"))return!1;if(X.startsWith("data:"))return!1;return!0}function DL(X){let $=[],Z=/<picture\b[^>]*>[\s\S]*?<\/picture>/gi,Y;while((Y=Z.exec(X))!==null)$.push([Y.index,Y.index+Y[0].length]);return $}function yL(X,$){for(let[Z,Y]of $)if(X>=Z&&X<Y)return!0;return!1}function bL(X){return X.replace(/&/g,"&").replace(/"/g,""")}var NL,ML;var RK=E(()=>{NL=new Set([".jpg",".jpeg",".png",".gif"]),ML=[{ext:".avif",mime:"image/avif"},{ext:".webp",mime:"image/webp"}]});var kK={};n(kK,{validateClientScript:()=>X$,processOnceDirective:()=>e8,processJsonDirective:()=>t8,processDirectives:()=>R0,injectRouterScript:()=>oZ});import SL from"fs";import E0 from"path";function TK(X){return X.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function CL(X,$){let Z=X.length,Y=$,J=!0,G=[],Q=(q)=>q+9<=Z&&X[q]==="<"&&X[q+1]==="/"&&(X[q+2]==="s"||X[q+2]==="S")&&(X[q+3]==="c"||X[q+3]==="C")&&(X[q+4]==="r"||X[q+4]==="R")&&(X[q+5]==="i"||X[q+5]==="I")&&(X[q+6]==="p"||X[q+6]==="P")&&(X[q+7]==="t"||X[q+7]==="T")&&(X[q+8]===">"||/\s/.test(X[q+8]));while(Y<Z){let q=X[Y];if(Q(Y))return Y;if(q==="/"&&X[Y+1]==="/"){if(Y=X.indexOf(`
|
|
16306
16312
|
`,Y+2),Y===-1)return-1;Y+=1,J=!0;continue}if(q==="/"&&X[Y+1]==="*"){let K=X.indexOf("*/",Y+2);if(K===-1)return-1;Y=K+2,J=!0;continue}if(q==="/"&&J){let K=Y+1,U=!1;while(K<Z){let W=X[K];if(W==="\\"){K+=2;continue}if(W==="[")U=!0;else if(W==="]")U=!1;else if(W==="/"&&!U){K++;break}else if(W===`
|
|
16307
16313
|
`){K=-1;break}K++}if(K===-1){Y++,J=!1;continue}while(K<Z&&/[a-z]/.test(X[K]))K++;Y=K,J=!1;continue}if(q==="'"||q==='"'){let K=q;Y++;while(Y<Z){if(X[Y]==="\\"){Y+=2;continue}if(X[Y]===K){Y++;break}if(X[Y]===`
|
|
16308
|
-
`)break;Y++}J=!1;continue}if(q==="`"){Y++;while(Y<Z){if(X[Y]==="\\"){Y+=2;continue}if(X[Y]==="`"){Y++;break}if(X[Y]==="$"&&X[Y+1]==="{"){G.push(!0),Y+=2,J=!0;break}Y++}if(G.length===0)J=!1;continue}if(q==="}"&&G.length>0){G.pop(),Y++;while(Y<Z){if(X[Y]==="\\"){Y+=2;continue}if(X[Y]==="`"){Y++,J=!1;break}if(X[Y]==="$"&&X[Y+1]==="{"){G.push(!0),Y+=2,J=!0;break}Y++}continue}if(/\s/.test(q));else if(/[)\].\w$]/.test(q))J=!1;else J=!0;Y++}return-1}function r5(X,$){let Z=$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),Y=new RegExp(`<script\\b(?=[^>]*\\b${Z}(?:\\s|=|/?>))[^>]*>`,"i").exec(X);if(!Y)return null;let J=Y.index+Y[0].length,G=X.indexOf("</script>",J);if(G===-1)return null;let Q=X.indexOf(">",G);if(Q===-1)return null;return{start:Y.index,end:Q+1}}function
|
|
16314
|
+
`)break;Y++}J=!1;continue}if(q==="`"){Y++;while(Y<Z){if(X[Y]==="\\"){Y+=2;continue}if(X[Y]==="`"){Y++;break}if(X[Y]==="$"&&X[Y+1]==="{"){G.push(!0),Y+=2,J=!0;break}Y++}if(G.length===0)J=!1;continue}if(q==="}"&&G.length>0){G.pop(),Y++;while(Y<Z){if(X[Y]==="\\"){Y+=2;continue}if(X[Y]==="`"){Y++,J=!1;break}if(X[Y]==="$"&&X[Y+1]==="{"){G.push(!0),Y+=2,J=!0;break}Y++}continue}if(/\s/.test(q));else if(/[)\].\w$]/.test(q))J=!1;else J=!0;Y++}return-1}function r5(X,$){let Z=$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),Y=new RegExp(`<script\\b(?=[^>]*\\b${Z}(?:\\s|=|/?>))[^>]*>`,"i").exec(X);if(!Y)return null;let J=Y.index+Y[0].length,G=X.indexOf("</script>",J);if(G===-1)return null;let Q=X.indexOf(">",G);if(Q===-1)return null;return{start:Y.index,end:Q+1}}function NK(X){let $=0;while($<X.length){let Z=X.indexOf("<",$);if(Z===-1)return-1;if(X.startsWith("<!--",Z)){let G=X.indexOf("-->",Z+4);$=G===-1?X.length:G+3;continue}let Y=X.slice(Z),J=/^<style\b[^>]*>/i.exec(Y);if(J){let G=X.toLowerCase().indexOf("</style>",Z+J[0].length);$=G===-1?X.length:G+8;continue}if(/^<script\b[^>]*>/i.test(Y))return Z;$=Z+1}return-1}function PL(X){let $=r5(X,"data-stx-runtime");if(!$)return X;let Z=NK(X);if(Z===-1||Z===$.start)return X;let Y=X.slice($.start,$.end),J=X.slice(0,$.start)+X.slice($.end),G=NK(J);if(G===-1)return Y+`
|
|
16309
16315
|
`+J;return J.slice(0,G)+Y+`
|
|
16310
16316
|
`+J.slice(G)}async function R0(X,$,Z,Y,J){if(Y.ssr===!1&&!Y.autoShell&&Y.buildMode==="spa")return X;if($.__stx_signals_gate===void 0)$.__stx_signals_gate=W1(X);let G=!$.__stxProcessingDepth;if(G)I6($);if(!$.__stxProcessingDepth)$.__stxProcessingDepth=0;if($.__stxProcessingDepth++,!$.__onceStore)$.__onceStore=new Set;if((Y.debug||!C7()&&!A8())&&Z&&Z.endsWith(".stx"))m3(X,Z);try{return await s6.timeAsync("template-processing",async()=>{let Q=await vL(X,$,Z,Y,J);if(G)Q=C4(Q);if(G&&Y.autoShell&&Y.buildMode!=="compile"){let q=Y.app?.head||{},U=($.__stx_runtime_head||null)??X9(),W=($.__stx_head_raw||"").trim(),w,z=W.match(/<title[^>]*>([\s\S]*?)<\/title>/i);if(z)w=z[1].trim(),W=W.replace(z[0],"").trim();let B=$.__sections?.title,j=U.title||w||B,_=!U.title&&(!!w||!!B),H={...q,...j&&{title:j},meta:[...q.meta||[],...U.meta||[]],link:[...q.link||[],...U.link||[]],script:[...q.script||[],...U.script||[]],headRaw:[q.headRaw,W].filter(Boolean).join(`
|
|
16311
|
-
`),...U.htmlAttrs&&{htmlAttrs:iQ(q.htmlAttrs,U.htmlAttrs)},...U.bodyAttrs&&{bodyAttrs:{...q.bodyAttrs||{},...U.bodyAttrs}}},L=S4(Q);if(Q=sQ(Q,H,{..._&&{titleIsHtml:!0},...Y.app?.colorMode&&{colorMode:Y.app.colorMode}}),L)Q=oQ(Q,q),Q=nQ(Q,H.htmlAttrs);let O=Q.match(/<!-- stx-layout: ([^ ]+) -->/);if(O&&Q.includes("<head")){let A=O[1],R=U7(A);Q=Q.replace(/<head\b[^>]*>/i,(
|
|
16312
|
-
<meta name="stx-layout" content="${
|
|
16313
|
-
<meta name="stx-layout-group" content="${
|
|
16317
|
+
`),...U.htmlAttrs&&{htmlAttrs:iQ(q.htmlAttrs,U.htmlAttrs)},...U.bodyAttrs&&{bodyAttrs:{...q.bodyAttrs||{},...U.bodyAttrs}}},L=S4(Q);if(Q=sQ(Q,H,{..._&&{titleIsHtml:!0},...Y.app?.colorMode&&{colorMode:Y.app.colorMode}}),L)Q=oQ(Q,q),Q=nQ(Q,H.htmlAttrs);let O=Q.match(/<!-- stx-layout: ([^ ]+) -->/);if(O&&Q.includes("<head")){let A=O[1],R=U7(A);Q=Q.replace(/<head\b[^>]*>/i,(T)=>`${T}
|
|
16318
|
+
<meta name="stx-layout" content="${TK(A)}">
|
|
16319
|
+
<meta name="stx-layout-group" content="${TK(R)}">`)}let F=Q.match(/function (__stx_setup_\d+_\d+)\(/),V=F?E7(Q):null;if(F&&V&&!/\bdata-stx=/.test(V.tag)){Q=yX(Q,(R,T)=>`<body${T} data-stx="${F[1]}">`);let A=new RegExp(`(<(?!body)[a-zA-Z][^>]*) data-stx="${F[1]}"`,"i");Q=Q.replace(A,"$1")}}if(G){Q=rQ(Q);let q=Y.app?.colorMode;if(q)Q=dQ(Q,q);Q=lQ(Q),Q=PL(Q)}if(G)try{let{getStoreScript:q}=await t("stx/store-loader",()=>Promise.resolve().then(() => (Qq(),Gq))),K=Y.storesDir,U=await q(K);if(U){let W=`<script data-stx-stores>${U}</script>`,w=r5(Q,"data-stx-runtime");if(w)Q=Q.slice(0,w.end)+`
|
|
16314
16320
|
`+W+Q.slice(w.end)}}catch{}if(G)try{let{getFrameworkComposableScript:q}=await t("stx/framework-composables",()=>Promise.resolve().then(() => (wq(),Wq))),K=await q(Q);if(K){let U=r5(Q,"data-stx-stores")||r5(Q,"data-stx-runtime");if(U)Q=Q.slice(0,U.end)+`
|
|
16315
16321
|
`+K+Q.slice(U.end)}}catch{}if(G)try{let{getComposableScript:q}=await t("stx/composable-loader",()=>Promise.resolve().then(() => (Bq(),jq))),K=Y.composablesDir,U=await q(K);if(U){let W=`<script data-stx-composables>${U}</script>`,w=r5(Q,"data-stx-stores")||r5(Q,"data-stx-runtime");if(w)Q=Q.slice(0,w.end)+`
|
|
16316
|
-
`+W+Q.slice(w.end)}}catch{}if(G)Q=mQ(Q);if(G&&$.__stx_inject_css!==!1)Q=await SJ(Q,void 0,Y.buildMode==="serve");if(G)Q=$Z(Q);return Q=Q.replace(/\x00STX_ESCAPED_AT\x00/g,"@"),Q})}catch(Q){if(Q instanceof M8)throw Q;let q=Q instanceof Error?Q.message:String(Q),K=new e1(`Template processing failed: ${q}`,Z,void 0,void 0,X.substring(0,200)+(X.length>200?"...":""));if(
|
|
16322
|
+
`+W+Q.slice(w.end)}}catch{}if(G)Q=mQ(Q);if(G&&$.__stx_inject_css!==!1)Q=await SJ(Q,void 0,Y.buildMode==="serve");if(G)Q=$Z(Q);return Q=Q.replace(/\x00STX_ESCAPED_AT\x00/g,"@"),Q})}catch(Q){if(Q instanceof M8)throw Q;let q=Q instanceof Error?Q.message:String(Q),K=new e1(`Template processing failed: ${q}`,Z,void 0,void 0,X.substring(0,200)+(X.length>200?"...":""));if(a0.log(K,{filePath:Z,context:$}),L3.logDetailedError(K,{filePath:Z,template:X.substring(0,500)}),Y.debug)throw K;return H3.createFallbackContent("Template Processing",K)}}async function vL(X,$,Z,Y,J){let G=process.cwd(),Q={...Y,partialsDir:Y.partialsDir&&!E0.isAbsolute(Y.partialsDir)?E0.resolve(G,Y.partialsDir):Y.partialsDir,componentsDir:Y.componentsDir&&!E0.isAbsolute(Y.componentsDir)?E0.resolve(G,Y.componentsDir):Y.componentsDir,layoutsDir:Y.layoutsDir&&!E0.isAbsolute(Y.layoutsDir)?E0.resolve(G,Y.layoutsDir):Y.layoutsDir},q=Q,K=X;await gL(Z,$),fL($,q),K=await b5(()=>TQ(K,$,Z,q),K,(F)=>{a0.log(F,{filePath:Z,phase:"pre-processing-middleware"},"warning"),console.warn(`[stx] pre-processing middleware failed for ${Z}: ${F.message}`)}),K=K.replace(/\{\{--[\s\S]*?--\}\}/g,"");let U=$1(K,V7,(F,V)=>`\x00STX_HTML_COMMENT_${V}\x00`);K=U.output;let W=U.tokens,w=(F)=>W.length===0?F:F.replace(/\x00STX_HTML_COMMENT_(\d+)\x00/g,(V,A)=>W[Number(A)]??""),z="\x00STX_ESCAPED_AT\x00";K=K.replace(/@@/g,z),K=K.replace(/@\{\{([\s\S]*?)\}\}/g,(F,V)=>{return`{{ ${V} }}`}),K=PQ(K),K=await Xq(K,Z,J);let B={};K=R4(K,B);let j={...$.__sections||{}},_="",H=lJ(mJ(X)),L=/@nolayout\b/.test(K)||H===!1;if(/@nolayout\b/.test(K))K=K.replace(/@nolayout\b\s*/g,"");let O=K.match(/@(?:layout|extends)\(\s*['"]([^'"]+)['"]\s*\)/);if(O)_=O[1],K=K.replace(/@(?:layout|extends)\(\s*['"]([^'"]+)['"]\s*\)/g,"");else if(typeof H==="string"){if(_=H,!/@section\s*\(/.test(K))K=`@section('content')
|
|
16317
16323
|
${K.trim()}
|
|
16318
|
-
@endsection`}if(!_&&!L&&q.defaultLayout){let F=b4(K),V=/@section\s*\(/.test(K);if(!F||V){let A="",R=E0.dirname(Z),
|
|
16324
|
+
@endsection`}if(!_&&!L&&q.defaultLayout){let F=b4(K),V=/@section\s*\(/.test(K);if(!F||V){let A="",R=E0.dirname(Z),T=q.layoutsDir?E0.dirname(q.layoutsDir):process.cwd();for(let N=0;N<20;N++){let k=E0.join(R,"_layout.stx");if(await p(k)){A=k;break}let M=E0.dirname(R);if(M===R||M.length<T.length)break;R=M}if(A)_=A;else if(q.layoutsDir){let N=E0.isAbsolute(q.layoutsDir)?q.layoutsDir:E0.resolve(process.cwd(),q.layoutsDir),k=E0.join(N,`${q.defaultLayout}.stx`);if(await p(k))_=k}if(_&&!V)K=`@section('content')
|
|
16319
16325
|
${K.trim()}
|
|
16320
|
-
@endsection`}}if(K=K.replace(/@section\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*\)/g,(F,V,A)=>{return j[V]=A,""}),K=K.replace(/@section\(\s*['"]([^'"]+)['"]\s*,\s*([^)]+?)\s*\)/g,(F,V,A)=>{if(/^(['"]).*\1$/.test(A.trim()))return F;try{let R=$0(A.trim(),$);if(R===void 0)return F;return j[V]=String(R??""),""}catch{return F}}),K=K.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@endsection|@show)/g,(F,V,A)=>{if(A.includes("@parent"))j[V]=A.replace("@parent",K5);else j[V]=A.trim();return""}),$.__sections=j,K=K.replace(/@(?:yield|slot)\(\s*['"]([^'"]+)['"](?:,\s*['"]([^'"]+)['"])?\)/g,(F,V,A)=>{return j[V]||A||""}),!("slot"in $)||$.slot===void 0)K=K.replace(/\{\{\s*slot\s*\}\}/g,()=>{return j.content||""});if(K=
|
|
16326
|
+
@endsection`}}if(K=K.replace(/@section\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*\)/g,(F,V,A)=>{return j[V]=A,""}),K=K.replace(/@section\(\s*['"]([^'"]+)['"]\s*,\s*([^)]+?)\s*\)/g,(F,V,A)=>{if(/^(['"]).*\1$/.test(A.trim()))return F;try{let R=$0(A.trim(),$);if(R===void 0)return F;return j[V]=String(R??""),""}catch{return F}}),K=K.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@endsection|@show)/g,(F,V,A)=>{if(A.includes("@parent"))j[V]=A.replace("@parent",K5);else j[V]=A.trim();return""}),$.__sections=j,K=K.replace(/@(?:yield|slot)\(\s*['"]([^'"]+)['"](?:,\s*['"]([^'"]+)['"])?\)/g,(F,V,A)=>{return j[V]||A||""}),!("slot"in $)||$.slot===void 0)K=K.replace(/\{\{\s*slot\s*\}\}/g,()=>{return j.content||""});if(K=T4(K,B),_){let F=[],V=R1(K),A=$1(V.output,R5,(R,T)=>`\x00STX_ORPHAN_STYLE_${T}\x00`);if(K=A.output.replace(/\x00STX_(SCRIPT|ORPHAN_STYLE)_(\d+)\x00/g,(R,T,N)=>{let k=T==="SCRIPT"?V.scripts[Number(N)]:A.tokens[Number(N)];if(k)F.push(k);return""}),F.length>0){let R=F.join(`
|
|
16321
16327
|
`);j.content=j.content?`${j.content}
|
|
16322
|
-
${R}`:R,$.__sections=j}}if(_)try{let F;if(E0.isAbsolute(_))F=_,J.add(_);else F=await b5(()=>C9(_,Z,Q,J),null,()=>{throw new e1(`Failed to resolve layout path: ${_}`,Z,void 0,void 0,`Layout referenced from ${Z}`)});if(!F){let k=[];try{let y=Q.layoutsDir;if(y){let I=E0.isAbsolute(y)?y:E0.resolve(process.cwd(),y);k=SL.readdirSync(I).filter((C)=>C.endsWith(".stx")).map((C)=>C.replace(/\.stx$/,"")).sort()}}catch{}let M=`Layout not found: ${_} (referenced from ${Z})`+(k.length>0?`. Available layouts: ${k.join(", ")}`:Q.layoutsDir?`. No .stx layouts found in ${Q.layoutsDir}`:"");if(
|
|
16323
|
-
${K}`,w(K)}catch(F){return
|
|
16324
|
-
`;if(G=k(G,$),G=M(G,$),G=kQ(G),G=k3(G,$),G=qG(G),G=AQ(G),G=await A4(G,$,Z,Q,J),G=await p8(G,$,Z,Q,J),$.__stxProcessingDepth===1)G=D6(G,$);if(G=G.replace(/@push\s*\(\s*['"][^'"]+['"]\s*\)[\s\S]*?@endpush/g,""),G=C4(G),G=Z5(G,$,Z),G=I3(G,$),G=E3(G,$),G=x8(G,$),G=LG(G,$),G=FG(G,$),G=await oJ(G,$,Z,Q),G=await UY(G,$,Z),G=await
|
|
16328
|
+
${R}`:R,$.__sections=j}}if(_)try{let F;if(E0.isAbsolute(_))F=_,J.add(_);else F=await b5(()=>C9(_,Z,Q,J),null,()=>{throw new e1(`Failed to resolve layout path: ${_}`,Z,void 0,void 0,`Layout referenced from ${Z}`)});if(!F){let k=[];try{let y=Q.layoutsDir;if(y){let I=E0.isAbsolute(y)?y:E0.resolve(process.cwd(),y);k=SL.readdirSync(I).filter((C)=>C.endsWith(".stx")).map((C)=>C.replace(/\.stx$/,"")).sort()}}catch{}let M=`Layout not found: ${_} (referenced from ${Z})`+(k.length>0?`. Available layouts: ${k.join(", ")}`:Q.layoutsDir?`. No .stx layouts found in ${Q.layoutsDir}`:"");if(a0.log(Error(M),{layoutPath:_,filePath:Z,available:k},"error"),console.error(`[stx] ${M}`),Q.debug)throw new e1(M,Z);return K}let V=await b5(()=>Bun.file(F).text(),"",()=>{throw new e1(`Failed to read layout file: ${F}`,Z,void 0,void 0,"Layout content could not be loaded")}),A=V.match(/@(?:layout|extends)\(\s*['"]([^'"]+)['"]\s*\)/);if(A){if(Q.debug)console.log(`Found nested layout: ${A[1]} in ${F}`);let k={},M=V.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@show|@endsection)/g,(C,S,b)=>{return k[S]=b.trim(),""});for(let[C,S]of Object.entries(k))if(j[C]&&j[C].includes(K5)){let b=j[C].indexOf(K5);j[C]=j[C].slice(0,b)+S+j[C].slice(b+K5.length)}else if(!j[C])j[C]=S;let y={...$,__sections:j},I=`@layout('${A[1]}')${M}`;return await R0(I,y,F,Q,J)}let R=V.replace(/\{\{--[\s\S]*?--\}\}/g,""),T=R4(R,B),N={};return T=T.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@show|@endsection)/g,(k,M,y)=>{return N[M]=y.trim(),`@slot('${M}')`}),T=T.replace(/@(?:yield|slot)\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(k,M,y)=>{if(j[M]){let I=j[M];if(I.includes(K5)){let C=N[M]||"",S=I.indexOf(K5);I=I.slice(0,S)+C+I.slice(S+K5.length)}return I}return y||""}),T=xL(T,j),T=T.replace(/\{\{\s*slot\s*\}\}/g,()=>{return j.content||""}),T=T4(T,B),$.__originalFilePath=Z,K=await MK(T,$,F,Q,J),K=`<!-- stx-layout: ${_} -->
|
|
16329
|
+
${K}`,w(K)}catch(F){return a0.log(F instanceof Error?F:Error(String(F)),{layoutPath:_,filePath:Z},"error"),`[Error processing layout: ${F instanceof Error?F.message:String(F)}]`}return w(await MK(K,$,Z,Q,J))}function xL(X,$){return X.replace(/@(?:yield|slot)\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(Z,Y,J)=>{let G=$[Y];if(G!==void 0){if(!new RegExp(`@(?:yield|slot)\\(\\s*['"]${Y.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}['"]`).test(G))return G}return J||""})}function fL(X,$){if(X.__stx_sfc_mode=!0,X.__stx_options=$,$.buildMode)X.__stx_buildMode=$.buildMode;let Z=$.envPrefix||"STX_PUBLIC_",Y={};for(let[J,G]of Object.entries(process.env))if(J.startsWith(Z)&&G!==void 0)Y[J]=G;X.$env=Y}async function gL(X,$){await b5(()=>EQ(X,$),void 0,(Z)=>{a0.log(Z,{filePath:X,phase:"view-composer"},"warning"),console.warn(`[stx] view composer failed for ${X}: ${Z.message}`)})}async function hL(X,$,Z){let Y=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,J;while((J=Y.exec(X))!==null){let G=J[1],Q=J[2];if(!/\bserver\b/.test(G)||!Q.trim())continue;try{let{extractVariables:K}=await t("stx/variable-extractor",()=>Promise.resolve().then(() => (k7(),IX)));await K(Q,$,Z,{preserveExisting:!0})}catch(K){let U=K instanceof Error?K:Error(String(K));a0.log(U,{filePath:Z,phase:"server-script-extraction"},"warning"),console.warn(`[stx] server <script> extraction failed in ${Z}: ${U.message}`)}}}async function uL(X,$,Z){try{let{interpolateScriptsInTemplate:Y}=await t("stx/expressions",()=>Promise.resolve().then(() => (Z1(),n6)));return Y(X,$,{skipServer:!0})}catch(Y){let J=Y instanceof Error?Y:Error(String(Y));return a0.log(J,{filePath:Z,phase:"script-expression-interpolation"},"warning"),console.warn(`[stx] script expression interpolation failed in ${Z}: ${J.message}`),X}}async function MK(X,$,Z,Y,J){let G=X,Q=Y;if(await hL(G,$,Z),G=await uL(G,$,Z),G=await OQ(G,$,Z),G=await LQ(G,$,Z),G=await UG(G,$,Z,Q),W1(G))G=I9(G,$),G=D9(G,$);G=E9(G);let{processStreamDirectives:q}=await t("stx/streaming",()=>Promise.resolve().then(() => (d3(),u3)));G=q(G,$),G=L4(G,$,Z,Q),G=await hQ(G,$,Z,Q,J),G=await p8(G,$,Z,Q,J),G=R2(G,$,Z,Q);let{processDeferDirectives:K}=await t("stx/defer",()=>Promise.resolve().then(() => Hq));G=K(G,$,Z);let{processTeleportDirectives:U}=await t("stx/teleport",()=>Promise.resolve().then(() => Lq));G=U(G,$,Z);let{processTransitionDirectives:W,processTransitionAttributes:w}=await t("stx/transitions",()=>Promise.resolve().then(() => Rq));G=W(G,$,Z),G=w(G);let{processErrorBoundaryDirectives:z}=await t("stx/error-boundaries",()=>Promise.resolve().then(() => Nq));G=z(G,$,Z);let{processSuspenseDirectives:B}=await t("stx/suspense",()=>Promise.resolve().then(() => Mq));G=B(G,$,Z);let{processAsyncDirectives:j}=await t("stx/async-components",()=>Promise.resolve().then(() => Dq));G=j(G,$,Z);let{processKeepAliveDirectives:_}=await t("stx/keep-alive",()=>Promise.resolve().then(() => bq));G=_(G,$,Z);let{processVirtualListDirectives:H,processVirtualGridDirectives:L,processInfiniteListDirectives:O}=await t("stx/virtual-scrolling",()=>Promise.resolve().then(() => (fq(),xq)));G=H(G,$,Z),G=L(G,$,Z),G=O(G,$,Z);let{processPartialHydrationDirectives:F,processStaticDirectives:V}=await t("stx/partial-hydration",()=>Promise.resolve().then(() => (tq(),aq)));G=F(G,$,Z),G=V(G);let{processComputedDirectives:A,processWatchDirectives:R}=await t("stx/computed",()=>Promise.resolve().then(() => (WK(),UK)));G=A(G,$,Z),G=R(G,$,Z);let{processFormValidationDirectives:T}=await t("stx/forms-validation",()=>Promise.resolve().then(() => (OK(),HK)));G=T(G,$,Z);let{processHeadDirective:N,processTitleDirective:k,processMetaDirective:M,resetHead:y}=await t("stx/head",()=>Promise.resolve().then(() => (M7(),Z9)));if(!$.__stx_head_preset&&!$.__stx_runtime_head)y();let I=N(G);if(G=I.content,I.headContent)$.__stx_head_raw=`${$.__stx_head_raw||""}${I.headContent}
|
|
16330
|
+
`;if(G=k(G,$),G=M(G,$),G=kQ(G),G=k3(G,$),G=qG(G),G=AQ(G),G=await A4(G,$,Z,Q,J),G=await p8(G,$,Z,Q,J),$.__stxProcessingDepth===1)G=D6(G,$);if(G=G.replace(/@push\s*\(\s*['"][^'"]+['"]\s*\)[\s\S]*?@endpush/g,""),G=C4(G),G=Z5(G,$,Z),G=I3(G,$),G=E3(G,$),G=x8(G,$),G=LG(G,$),G=FG(G,$),G=await oJ(G,$,Z,Q),G=await UY(G,$,Z),G=await NG(G,$,Z,Q),G=_2(G,$,Z,Q),G=_J(G,$,Z,Q),G=HJ(G,$,Z),G=OJ(G,$,Z,Q),G=JG(G,$,Z,Q),G=t8(G,$),G=e8(G),G=Zq(G),!Q.skipEventDirectives)G=K6(G,$,Z);if(G=nJ(G,$,Z),Q.debug){let r=/\bx-data\s*=/.test(G),a=pX(X);if(r&&a)console.warn(`[stx] ${Z}: Template mixes Alpine-style (x-data) and signals (state/derived/effect) reactivity.
|
|
16325
16331
|
Both work on the same page, but they manage separate scopes.
|
|
16326
|
-
Prefer signals (state/derived/effect) for new components.`)}G=bQ(G,$),G=await
|
|
16332
|
+
Prefer signals (state/derived/effect) for new components.`)}G=bQ(G,$),G=await T1(G,$,Z),G=Yq(G),G=Jq(G),G=gJ(G);let{processXElementDirectives:C}=await t("stx/x-element",()=>Promise.resolve().then(() => VK));G=C(G);let S=$.__originalFilePath||Z,b=O7($);if(G=await y9(G,Q,S,b),G=BG(G,$),G=await NQ(G,$,Z,Q),Q.media?.image?.autoSiblings){let r=Q.publicDir||"public",{rewriteImagesWithSiblings:a}=await t("stx/image-optimization/auto-sibling",()=>Promise.resolve().then(() => (RK(),AK)));G=await a(G,{publicDir:r})}if(Q.seo?.enabled)G=LJ(G,$,Q);let P=(r,a,K0=!0)=>{if(!a)return r;let T0=a.match(/<title\b[^>]*>[\s\S]*?<\/title>/i),J0=r.match(/<title\b[^>]*>[\s\S]*?<\/title>/i);if(T0&&J0){if(K0)r=r.replace(J0[0],T0[0]);if(a=a.replace(T0[0],"").trim(),!a)return r}if(/<\/head>/i.test(r))return r.replace(/<\/head>/i,`${a}
|
|
16327
16333
|
</head>`);if(/<head\b[^>]*>/i.test(r))return r.replace(/(<head\b[^>]*>)/i,`$1
|
|
16328
16334
|
${a}`);if(/<html\b[^>]*>/i.test(r))return r.replace(/(<html\b[^>]*>)/i,`$1
|
|
16329
16335
|
<head>
|
|
16330
16336
|
${a}
|
|
16331
|
-
</head>`);return r},{renderHead:x,getHead:d}=await t("stx/head",()=>Promise.resolve().then(() => (M7(),Z9))),Y0=$.__stx_runtime_head??d();if(Y0.title||Y0.meta?.length||Y0.link?.length){let r=x(Y0);if(r)G=P(G,r)}if(I.headContent)G=P(G,I.headContent,!Y0.title);if(Q.csp?.enabled&&Q.csp.addMetaTag)G=ZG(G,Q.csp,$);if(Q.analytics?.enabled)G=uJ(G,Q);if(Q.heatmap?.enabled)G=n2(G,Q);if(Q.pwa?.enabled&&Q.pwa.autoInject!==!1){let{injectPwaTags:r}=await t("stx/pwa/inject",()=>Promise.resolve().then(() => (YX(),K2)));G=r(G,Q)}let d0=/<script\b(?![^>]*\bserver\b)[^>]*>[\s\S]*?<\/script>/i.test(G),F0=/\bSTX\.\w+/.test(G),
|
|
16337
|
+
</head>`);return r},{renderHead:x,getHead:d}=await t("stx/head",()=>Promise.resolve().then(() => (M7(),Z9))),Y0=$.__stx_runtime_head??d();if(Y0.title||Y0.meta?.length||Y0.link?.length){let r=x(Y0);if(r)G=P(G,r)}if(I.headContent)G=P(G,I.headContent,!Y0.title);if(Q.csp?.enabled&&Q.csp.addMetaTag)G=ZG(G,Q.csp,$);if(Q.analytics?.enabled)G=uJ(G,Q);if(Q.heatmap?.enabled)G=n2(G,Q);if(Q.pwa?.enabled&&Q.pwa.autoInject!==!1){let{injectPwaTags:r}=await t("stx/pwa/inject",()=>Promise.resolve().then(() => (YX(),K2)));G=r(G,Q)}let d0=/<script\b(?![^>]*\bserver\b)[^>]*>[\s\S]*?<\/script>/i.test(G),F0=/\bSTX\.\w+/.test(G),i0=/window\.STX\s*=/.test(G);if(d0&&F0&&!i0){let a=`<script data-stx-scoped data-stx-run="once">
|
|
16332
16338
|
${PJ()}
|
|
16333
16339
|
</script>`;if(G.includes("</head>")){let K0=G.indexOf("</head>"),J0=G.slice(0,K0).indexOf("<script");if(J0!==-1){let D=G.slice(0,J0),v=G.slice(J0);G=D+a+`
|
|
16334
16340
|
`+v}else G=G.replace("</head>",`${a}
|
|
16335
16341
|
</head>`)}else if(G.includes("<body"))G=G.replace(/<body([^>]*)>/,`<body$1>
|
|
16336
16342
|
${a}`);else G=a+`
|
|
16337
|
-
`+G}{let{scanScriptTags:r}=await t("stx/signal-processing",()=>Promise.resolve().then(() => (y7(),iX))),a=[];for(let K0 of r(G)){if(!/\bserver\b/i.test(K0.attrs))continue;let
|
|
16343
|
+
`+G}{let{scanScriptTags:r}=await t("stx/signal-processing",()=>Promise.resolve().then(() => (y7(),iX))),a=[];for(let K0 of r(G)){if(!/\bserver\b/i.test(K0.attrs))continue;let T0=K0.start+K0.fullMatch.indexOf(">")+1,J0=CL(G,T0);if(J0===-1)continue;let D=J0+9;while(D<G.length&&/\s/.test(G[D]))D++;a.push({start:K0.start,end:D})}for(let K0=a.length-1;K0>=0;K0--){let{start:T0,end:J0}=a[K0];G=G.substring(0,T0)+G.substring(J0)}}let l=TX(G,Z);if(l.hasScoped)G=l.html;let j0=$.__stx_event_bindings||[],m0=!1,_1=[],W5=/\s:[a-z][\w.-]*\s*=/.test(G),{scanScriptTags:w5}=await t("stx/signal-processing",()=>Promise.resolve().then(() => (y7(),iX)));for(let r of w5(G,{skipAttrs:/\bserver\b|\bsrc\s*=|\bdata-stx-scoped\b|\bdata-stx-router\b|\btype\s*=\s*["'](?!(?:text\/javascript|application\/javascript|module)["'])[^"']*["']/}))_1.push({match:r.fullMatch,attrs:r.attrs,content:r.body});for(let{match:r,attrs:a,content:K0}of _1){m0=!0;let T0=K0;X$(K0,Z,Y.strict,$.__originalFilePath);let J0=await L7(K0,{eventBindings:j0,attrs:a,hasColonDirectives:W5,templateContent:X,filePath:Z,projectRoot:process.cwd(),production:Y.buildMode==="compile",serverData:b});G=G.replace(r,()=>J0)}if(m0)$.__stx_event_bindings=[];if(!m0&&$.__stxProcessingDepth===1){let r=$.__stx_event_bindings||[];if(r.length>0){let a=g$(r);if(a){let K0=G.lastIndexOf("</body>");G=K0===-1?G+a:G.slice(0,K0)+a+`
|
|
16338
16344
|
`+G.slice(K0)}$.__stx_event_bindings=[]}}if(!nZ(G)&&rZ(G))G=await dX(G,Q);if(Q.csp?.enabled&&Q.csp.useNonce&&typeof $.cspNonce==="string")G=YG(G,$.cspNonce);return G}var K5="<!--PARENT_CONTENT_PLACEHOLDER-->";var sX=E(()=>{CJ();W9();l1();B$();vJ();hJ();dJ();P$();_$();h$();F7();rJ();sJ();C8();GG();KG();wG();_G();w1();M7();Z1();VG();MG();HQ();VQ();F4();P9();MQ();M5();IQ();F3();A0();DQ();SQ();vQ();uQ();t$();E4();aQ();y7();H4();$q();P4();v4();O0();l3();i$();z7();mX();mX();P4();v4()});import pL from"fs";import l4 from"path";import xK from"fs";import q1 from"path";var n4=[72,96,128,144,152,192,384,512],r4=[120,152,167,180],o4=[16,32];async function s4(X,$){let Z={success:!0,generatedFiles:[],errors:[],warnings:[]},Y=X.pwa?.icons;if(!Y?.src)return Z.errors.push("No source icon specified in pwa.icons.src"),Z.success=!1,Z;let J=q1.isAbsolute(Y.src)?Y.src:q1.resolve(process.cwd(),Y.src);if(!await Bun.file(J).exists())return Z.errors.push(`Source icon not found: ${J}`),Z.success=!1,Z;let G=q1.resolve($,Y.outputDir||"pwa-icons");try{xK.mkdirSync(G,{recursive:!0})}catch{return Z.errors.push(`Failed to create output directory: ${G}`),Z.success=!1,Z}let Q=Y.sizes||n4,q=Y.generateWebP??!0,K=Y.generateAppleIcons??!0;try{let U;try{U=await import("sharp")}catch{return Z.errors.push(`sharp is not installed. Install it with: bun add sharp
|
|
16339
16345
|
Icon generation requires the sharp package for image processing.`),Z.success=!1,Z}let w=await U.default(J).metadata();if(w.width&&w.width<512)Z.warnings.push(`Source icon is ${w.width}x${w.height}. Recommend using at least 512x512 for best quality.`);for(let H of Q){let L=q1.join(G,`icon-${H}x${H}.png`);if(await U.default(J).resize(H,H,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).png().toFile(L),Z.generatedFiles.push(L),q){let O=q1.join(G,`icon-${H}x${H}.webp`);await U.default(J).resize(H,H,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).webp({quality:90}).toFile(O),Z.generatedFiles.push(O)}}if(K){for(let L of r4){let O=q1.join(G,`apple-touch-icon-${L}x${L}.png`);await U.default(J).resize(L,L,{fit:"contain",background:{r:255,g:255,b:255,alpha:1}}).png().toFile(O),Z.generatedFiles.push(O)}let H=q1.join(G,"apple-touch-icon.png");await U.default(J).resize(180,180,{fit:"contain",background:{r:255,g:255,b:255,alpha:1}}).png().toFile(H),Z.generatedFiles.push(H)}for(let H of o4){let L=q1.join(G,`favicon-${H}x${H}.png`);await U.default(J).resize(H,H,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).png().toFile(L),Z.generatedFiles.push(L)}let z=512,B=q1.join(G,`icon-maskable-${z}x${z}.png`),j=Math.floor(z*0.1),_=z-j*2;await U.default(J).resize(_,_,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).extend({top:j,bottom:j,left:j,right:j,background:{r:255,g:255,b:255,alpha:1}}).png().toFile(B),Z.generatedFiles.push(B)}catch(U){let W=U instanceof Error?U.message:String(U);Z.errors.push(`Icon generation failed: ${W}`),Z.success=!1}return Z}function oL(X){let $=X.sizes||n4,Z=X.outputDir?`/${X.outputDir}`:"/pwa-icons",Y=X.generateWebP??!0,J=X.generateAppleIcons??!0,G=[];for(let Q of $)if(G.push(`${Z}/icon-${Q}x${Q}.png`),Y)G.push(`${Z}/icon-${Q}x${Q}.webp`);if(J){G.push(`${Z}/apple-touch-icon.png`);for(let Q of r4)G.push(`${Z}/apple-touch-icon-${Q}x${Q}.png`)}for(let Q of o4)G.push(`${Z}/favicon-${Q}x${Q}.png`);return G.push(`${Z}/icon-maskable-512x512.png`),G}async function a4(){try{return await import("sharp"),!0}catch{return!1}}YX();function YU(X,$,Z,Y){let J=[],G=Y.join(" ");for(let Q of X)if(J.push({src:`${$}/icon-${Q}x${Q}.png`,sizes:`${Q}x${Q}`,type:"image/png",purpose:G}),Z)J.push({src:`${$}/icon-${Q}x${Q}.webp`,sizes:`${Q}x${Q}`,type:"image/webp",purpose:G});return J}function JU(X){return X.map(($)=>({name:$.name,short_name:$.shortName,description:$.description,url:$.url,icons:$.icons?.map((Z)=>({src:Z.src,sizes:Z.sizes,type:Z.type}))}))}function GU(X){let $=X.pwa?.shareTarget;if(!$?.enabled)return;let Z={action:$.action||"/share",method:$.method||"POST",enctype:$.enctype||"multipart/form-data",params:{title:$.params?.title||"title",text:$.params?.text||"text",url:$.params?.url||"url"}};if($.acceptFiles&&$.acceptFiles.length>0)Z.params.files=$.acceptFiles.map((Y)=>({name:Y.name,accept:Y.accept}));return Z}function QU(X){let $=X.pwa?.fileHandlers;if(!$?.enabled||!$.accept)return;let Z=[{action:$.action||"/",accept:$.accept,launch_type:$.launchType||"single-client"}];if($.icons)Z[0].icons=$.icons.map((Y)=>({src:Y.src,sizes:Y.sizes,type:Y.type}));return Z}function qU(X){let $=X.pwa?.protocolHandlers;if(!$||$.length===0)return;return $.map((Z)=>({protocol:Z.protocol,url:Z.url}))}function KU(X){let $=X.pwa;if(!$?.enabled||!$.manifest)return null;let{manifest:Z,icons:Y}=$,J=Y?.sizes||[72,96,128,144,152,192,384,512],G=Y?.outputDir?`/${Y.outputDir}`:"/pwa-icons",Q=Y?.generateWebP??!0,q=Y?.purpose||["any","maskable"],K={name:Z.name,short_name:Z.shortName||Z.name,description:Z.description,start_url:Z.startUrl||"/",display:Z.display||"standalone",display_override:Z.displayOverride,orientation:Z.orientation,theme_color:Z.themeColor,background_color:Z.backgroundColor,scope:Z.scope||"/",lang:Z.lang,dir:Z.dir,id:Z.id,categories:Z.categories,icons:YU(J,G,Q,q)};if(Z.shortcuts&&Z.shortcuts.length>0)K.shortcuts=JU(Z.shortcuts);if(Z.screenshots&&Z.screenshots.length>0)K.screenshots=Z.screenshots.map((z)=>({src:z.src,sizes:z.sizes,type:z.type,label:z.label,form_factor:z.platform}));let U=GU(X);if(U)K.share_target=U;let W=QU(X);if(W)K.file_handlers=W;let w=qU(X);if(w)K.protocol_handlers=w;if(Z.launchHandler)K.launch_handler={client_mode:Z.launchHandler};if(Z.handleLinks)K.handle_links=Z.handleLinks;if(Z.edgeSidePanel?.enabled)K.edge_side_panel={preferred_width:Z.edgeSidePanel.preferredWidth};return K}function U2(X){let $=KU(X);if(!$)return"";let Z=JSON.parse(JSON.stringify($));return JSON.stringify(Z,null,2)}function GF(X,$){return{...$,...X,shortcuts:X.shortcuts||$.shortcuts,screenshots:X.screenshots||$.screenshots,categories:X.categories||$.categories}}function QF(X){let $=[],Z=X.pwa;if(!Z?.enabled)return $;let Y=Z.manifest;if(!Y)return $.push("PWA manifest configuration is missing"),$;if(!Y.name)$.push("Manifest name is required");let J=["fullscreen","standalone","minimal-ui","browser"];if(Y.display&&!J.includes(Y.display))$.push(`Invalid display mode: ${Y.display}. Must be one of: ${J.join(", ")}`);let G=["any","natural","landscape","landscape-primary","landscape-secondary","portrait","portrait-primary","portrait-secondary"];if(Y.orientation&&!G.includes(Y.orientation))$.push(`Invalid orientation: ${Y.orientation}`);let Q=/^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/;if(Y.themeColor&&!Q.test(Y.themeColor))$.push(`Invalid theme color: ${Y.themeColor}. Must be a valid hex color.`);if(Y.backgroundColor&&!Q.test(Y.backgroundColor))$.push(`Invalid background color: ${Y.backgroundColor}. Must be a valid hex color.`);if(Z.shareTarget?.enabled){if(!Z.shareTarget.action)$.push("Share target action URL is required")}if(Z.fileHandlers?.enabled){if(!Z.fileHandlers.accept||Object.keys(Z.fileHandlers.accept).length===0)$.push("File handlers must specify accepted MIME types")}if(Z.protocolHandlers)for(let q of Z.protocolHandlers){if(!q.protocol)$.push("Protocol handler missing protocol");if(!q.url||!q.url.includes("%s"))$.push(`Protocol handler URL must contain %s placeholder: ${q.protocol}`)}return $}import IK from"path";async function EK(X){let $=X.pwa?.offline;if(!$?.enabled)return"";if($.page){let Z=IK.isAbsolute($.page)?$.page:IK.resolve(process.cwd(),$.page);if(await Bun.file(Z).exists())try{let{processDirectives:Y}=await Promise.resolve().then(() => (sX(),kK)),J=await Bun.file(Z).text();return await Y(J,{},Z,X,new Set)}catch(Y){console.warn(`[PWA] Failed to process custom offline page: ${Y}`)}else console.warn(`[PWA] Custom offline page not found: ${Z}`)}return dL(X)}function dL(X){let $=X.pwa?.offline,Z=X.pwa?.manifest,Y=$?.fallbackTitle||"You are offline",J=$?.fallbackMessage||"Please check your internet connection and try again.",G=Z?.themeColor||"#4f46e5",Q=Z?.shortName||Z?.name||"App";return`<!DOCTYPE html>
|
|
16340
16346
|
<html lang="en">
|
|
@@ -16569,9 +16575,9 @@ Icon generation requires the sharp package for image processing.`),Z.success=!1,
|
|
|
16569
16575
|
}, 5000);
|
|
16570
16576
|
</script>
|
|
16571
16577
|
</body>
|
|
16572
|
-
</html>`}function Q$(X){return X.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}o5();s5();import U5 from"fs";import q$ from"path";function mL(X){let $=[],Z=X.pwa;if($.push({id:"pwa-enabled",name:"PWA Enabled",category:"required",passed:Z?.enabled===!0,message:Z?.enabled?"PWA is enabled":"PWA is not enabled in config"}),!Z?.enabled)return $;$.push({id:"manifest-name",name:"App Name",category:"required",passed:Boolean(Z.manifest?.name),message:Z.manifest?.name?`App name: "${Z.manifest.name}"`:"Missing required manifest name"}),$.push({id:"manifest-short-name",name:"Short Name",category:"recommended",passed:Boolean(Z.manifest?.shortName),message:Z.manifest?.shortName?`Short name: "${Z.manifest.shortName}"`:"Short name not set (will use full name)"}),$.push({id:"manifest-description",name:"App Description",category:"recommended",passed:Boolean(Z.manifest?.description),message:Z.manifest?.description?"Description is set":"App description not provided"}),$.push({id:"manifest-theme-color",name:"Theme Color",category:"required",passed:Boolean(Z.manifest?.themeColor),message:Z.manifest?.themeColor?`Theme color: ${Z.manifest.themeColor}`:"Theme color not set"}),$.push({id:"manifest-background-color",name:"Background Color",category:"required",passed:Boolean(Z.manifest?.backgroundColor),message:Z.manifest?.backgroundColor?`Background color: ${Z.manifest.backgroundColor}`:"Background color not set"}),$.push({id:"manifest-display",name:"Display Mode",category:"required",passed:["standalone","fullscreen","minimal-ui"].includes(Z.manifest?.display||""),message:Z.manifest?.display?`Display mode: ${Z.manifest.display}`:"Display mode should be standalone, fullscreen, or minimal-ui"}),$.push({id:"manifest-start-url",name:"Start URL",category:"required",passed:Boolean(Z.manifest?.startUrl),message:Z.manifest?.startUrl?`Start URL: ${Z.manifest.startUrl}`:"Start URL not set"}),$.push({id:"icons-source",name:"Icon Source",category:"required",passed:Boolean(Z.icons?.src),message:Z.icons?.src?`Icon source: ${Z.icons.src}`:"No icon source configured"});let Y=Z.icons?.sizes||[];$.push({id:"icons-192",name:"192x192 Icon",category:"required",passed:Y.includes(192),message:Y.includes(192)?"192x192 icon will be generated":"Missing 192x192 icon (required for Android)"}),$.push({id:"icons-512",name:"512x512 Icon",category:"required",passed:Y.includes(512),message:Y.includes(512)?"512x512 icon will be generated":"Missing 512x512 icon (required for splash screen)"}),$.push({id:"icons-maskable",name:"Maskable Icon",category:"recommended",passed:Z.icons?.purpose?.includes("maskable")||!1,message:Z.icons?.purpose?.includes("maskable")?"Maskable icon purpose is set":"Consider adding maskable icon purpose for adaptive icons"}),$.push({id:"sw-configured",name:"Service Worker",category:"required",passed:Boolean(Z.serviceWorker),message:Z.serviceWorker?"Service worker is configured":"Service worker configuration missing"}),$.push({id:"sw-cache-version",name:"Cache Version",category:"recommended",passed:Boolean(Z.serviceWorker?.cacheVersion),message:Z.serviceWorker?.cacheVersion?`Cache version: ${Z.serviceWorker.cacheVersion}`:"Set cache version for proper cache busting"}),$.push({id:"offline-enabled",name:"Offline Support",category:"required",passed:Z.offline?.enabled===!0,message:Z.offline?.enabled?"Offline support is enabled":"Offline support is disabled"});let J=Z.routes||[];return $.push({id:"caching-strategies",name:"Caching Strategies",category:"recommended",passed:J.length>0,message:J.length>0?`${J.length} route caching strategies configured`:"No custom caching strategies defined"}),$.push({id:"push-config",name:"Push Notifications",category:"optional",passed:!Z.push?.enabled||Boolean(Z.push?.vapidPublicKey),message:Z.push?.enabled?Z.push?.vapidPublicKey?"Push notifications configured with VAPID key":"Push enabled but missing VAPID key":"Push notifications not enabled"}),$.push({id:"share-target",name:"Share Target",category:"optional",passed:!0,message:Z.shareTarget?.enabled?`Share target enabled at ${Z.shareTarget.action}`:"Share target not enabled"}),$.push({id:"auto-inject",name:"Auto-injection",category:"recommended",passed:Z.autoInject!==!1,message:Z.autoInject!==!1?"PWA tags will be auto-injected":"Auto-injection disabled - manual tag insertion required"}),$}function lL(X){let $=[],Z=q$.join(X,"manifest.json"),Y=U5.existsSync(Z);if($.push({id:"build-manifest",name:"Manifest File",category:"required",passed:Y,message:Y?"manifest.json exists":"manifest.json not found in build output"}),Y)try{let W=JSON.parse(U5.readFileSync(Z,"utf-8"));$.push({id:"build-manifest-valid",name:"Valid Manifest JSON",category:"required",passed:!0,message:"Manifest is valid JSON"}),$.push({id:"build-manifest-icons",name:"Manifest Icons",category:"required",passed:Array.isArray(W.icons)&&W.icons.length>0,message:W.icons?.length?`${W.icons.length} icons defined in manifest`:"No icons defined in manifest"})}catch{$.push({id:"build-manifest-valid",name:"Valid Manifest JSON",category:"required",passed:!1,message:"Manifest is not valid JSON"})}let J=q$.join(X,"sw.js"),G=U5.existsSync(J);$.push({id:"build-sw",name:"Service Worker File",category:"required",passed:G,message:G?"Service worker (sw.js) exists":"Service worker not found in build output"});let Q=q$.join(X,"offline.html"),q=U5.existsSync(Q);$.push({id:"build-offline",name:"Offline Page",category:"recommended",passed:q,message:q?"Offline page exists":"No offline.html found"});let K=q$.join(X,"pwa-icons");if(U5.existsSync(K)){let W=U5.readdirSync(K).filter((w)=>w.endsWith(".png")||w.endsWith(".webp"));$.push({id:"build-icons",name:"Generated Icons",category:"required",passed:W.length>0,message:W.length>0?`${W.length} icon files generated`:"No icon files found"})}else $.push({id:"build-icons",name:"Generated Icons",category:"required",passed:!1,message:"Icons directory not found"});return $}function cL(X){let $=X.filter((K)=>K.category==="required"),Z=X.filter((K)=>K.category==="recommended"),Y=$.filter((K)=>K.passed).length,J=Z.filter((K)=>K.passed).length,G=$.length>0?Y/$.length*70:70,Q=Z.length>0?J/Z.length*30:30;return{score:Math.round(G+Q),passed:X.filter((K)=>K.passed).length,failed:X.filter((K)=>!K.passed&&K.category==="required").length,warnings:X.filter((K)=>!K.passed&&K.category!=="required").length,checks:X}}function
|
|
16578
|
+
</html>`}function Q$(X){return X.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}o5();s5();import U5 from"fs";import q$ from"path";function mL(X){let $=[],Z=X.pwa;if($.push({id:"pwa-enabled",name:"PWA Enabled",category:"required",passed:Z?.enabled===!0,message:Z?.enabled?"PWA is enabled":"PWA is not enabled in config"}),!Z?.enabled)return $;$.push({id:"manifest-name",name:"App Name",category:"required",passed:Boolean(Z.manifest?.name),message:Z.manifest?.name?`App name: "${Z.manifest.name}"`:"Missing required manifest name"}),$.push({id:"manifest-short-name",name:"Short Name",category:"recommended",passed:Boolean(Z.manifest?.shortName),message:Z.manifest?.shortName?`Short name: "${Z.manifest.shortName}"`:"Short name not set (will use full name)"}),$.push({id:"manifest-description",name:"App Description",category:"recommended",passed:Boolean(Z.manifest?.description),message:Z.manifest?.description?"Description is set":"App description not provided"}),$.push({id:"manifest-theme-color",name:"Theme Color",category:"required",passed:Boolean(Z.manifest?.themeColor),message:Z.manifest?.themeColor?`Theme color: ${Z.manifest.themeColor}`:"Theme color not set"}),$.push({id:"manifest-background-color",name:"Background Color",category:"required",passed:Boolean(Z.manifest?.backgroundColor),message:Z.manifest?.backgroundColor?`Background color: ${Z.manifest.backgroundColor}`:"Background color not set"}),$.push({id:"manifest-display",name:"Display Mode",category:"required",passed:["standalone","fullscreen","minimal-ui"].includes(Z.manifest?.display||""),message:Z.manifest?.display?`Display mode: ${Z.manifest.display}`:"Display mode should be standalone, fullscreen, or minimal-ui"}),$.push({id:"manifest-start-url",name:"Start URL",category:"required",passed:Boolean(Z.manifest?.startUrl),message:Z.manifest?.startUrl?`Start URL: ${Z.manifest.startUrl}`:"Start URL not set"}),$.push({id:"icons-source",name:"Icon Source",category:"required",passed:Boolean(Z.icons?.src),message:Z.icons?.src?`Icon source: ${Z.icons.src}`:"No icon source configured"});let Y=Z.icons?.sizes||[];$.push({id:"icons-192",name:"192x192 Icon",category:"required",passed:Y.includes(192),message:Y.includes(192)?"192x192 icon will be generated":"Missing 192x192 icon (required for Android)"}),$.push({id:"icons-512",name:"512x512 Icon",category:"required",passed:Y.includes(512),message:Y.includes(512)?"512x512 icon will be generated":"Missing 512x512 icon (required for splash screen)"}),$.push({id:"icons-maskable",name:"Maskable Icon",category:"recommended",passed:Z.icons?.purpose?.includes("maskable")||!1,message:Z.icons?.purpose?.includes("maskable")?"Maskable icon purpose is set":"Consider adding maskable icon purpose for adaptive icons"}),$.push({id:"sw-configured",name:"Service Worker",category:"required",passed:Boolean(Z.serviceWorker),message:Z.serviceWorker?"Service worker is configured":"Service worker configuration missing"}),$.push({id:"sw-cache-version",name:"Cache Version",category:"recommended",passed:Boolean(Z.serviceWorker?.cacheVersion),message:Z.serviceWorker?.cacheVersion?`Cache version: ${Z.serviceWorker.cacheVersion}`:"Set cache version for proper cache busting"}),$.push({id:"offline-enabled",name:"Offline Support",category:"required",passed:Z.offline?.enabled===!0,message:Z.offline?.enabled?"Offline support is enabled":"Offline support is disabled"});let J=Z.routes||[];return $.push({id:"caching-strategies",name:"Caching Strategies",category:"recommended",passed:J.length>0,message:J.length>0?`${J.length} route caching strategies configured`:"No custom caching strategies defined"}),$.push({id:"push-config",name:"Push Notifications",category:"optional",passed:!Z.push?.enabled||Boolean(Z.push?.vapidPublicKey),message:Z.push?.enabled?Z.push?.vapidPublicKey?"Push notifications configured with VAPID key":"Push enabled but missing VAPID key":"Push notifications not enabled"}),$.push({id:"share-target",name:"Share Target",category:"optional",passed:!0,message:Z.shareTarget?.enabled?`Share target enabled at ${Z.shareTarget.action}`:"Share target not enabled"}),$.push({id:"auto-inject",name:"Auto-injection",category:"recommended",passed:Z.autoInject!==!1,message:Z.autoInject!==!1?"PWA tags will be auto-injected":"Auto-injection disabled - manual tag insertion required"}),$}function lL(X){let $=[],Z=q$.join(X,"manifest.json"),Y=U5.existsSync(Z);if($.push({id:"build-manifest",name:"Manifest File",category:"required",passed:Y,message:Y?"manifest.json exists":"manifest.json not found in build output"}),Y)try{let W=JSON.parse(U5.readFileSync(Z,"utf-8"));$.push({id:"build-manifest-valid",name:"Valid Manifest JSON",category:"required",passed:!0,message:"Manifest is valid JSON"}),$.push({id:"build-manifest-icons",name:"Manifest Icons",category:"required",passed:Array.isArray(W.icons)&&W.icons.length>0,message:W.icons?.length?`${W.icons.length} icons defined in manifest`:"No icons defined in manifest"})}catch{$.push({id:"build-manifest-valid",name:"Valid Manifest JSON",category:"required",passed:!1,message:"Manifest is not valid JSON"})}let J=q$.join(X,"sw.js"),G=U5.existsSync(J);$.push({id:"build-sw",name:"Service Worker File",category:"required",passed:G,message:G?"Service worker (sw.js) exists":"Service worker not found in build output"});let Q=q$.join(X,"offline.html"),q=U5.existsSync(Q);$.push({id:"build-offline",name:"Offline Page",category:"recommended",passed:q,message:q?"Offline page exists":"No offline.html found"});let K=q$.join(X,"pwa-icons");if(U5.existsSync(K)){let W=U5.readdirSync(K).filter((w)=>w.endsWith(".png")||w.endsWith(".webp"));$.push({id:"build-icons",name:"Generated Icons",category:"required",passed:W.length>0,message:W.length>0?`${W.length} icon files generated`:"No icon files found"})}else $.push({id:"build-icons",name:"Generated Icons",category:"required",passed:!1,message:"Icons directory not found"});return $}function cL(X){let $=X.filter((K)=>K.category==="required"),Z=X.filter((K)=>K.category==="recommended"),Y=$.filter((K)=>K.passed).length,J=Z.filter((K)=>K.passed).length,G=$.length>0?Y/$.length*70:70,Q=Z.length>0?J/Z.length*30:30;return{score:Math.round(G+Q),passed:X.filter((K)=>K.passed).length,failed:X.filter((K)=>!K.passed&&K.category==="required").length,warnings:X.filter((K)=>!K.passed&&K.category!=="required").length,checks:X}}function FD(X,$){let Z=mL(X),Y=$&&U5.existsSync($)?lL($):[];return cL([...Z,...Y])}function VD(X){let $=[];$.push(`
|
|
16573
16579
|
=== PWA Audit Report ===
|
|
16574
16580
|
`);let Z=X.score>=90?"32":X.score>=70?"33":"31";$.push(`Score: \x1B[${Z}m${X.score}/100\x1B[0m`),$.push(`Passed: ${X.passed} | Failed: ${X.failed} | Warnings: ${X.warnings}
|
|
16575
16581
|
`);let Y=["required","recommended","optional"];for(let J of Y){let G=X.checks.filter((Q)=>Q.category===J);if(G.length===0)continue;$.push(`
|
|
16576
16582
|
${J.toUpperCase()}:`);for(let Q of G){let q=Q.passed?"\x1B[32m\u2713\x1B[0m":"\x1B[31m\u2717\x1B[0m";if($.push(` ${q} ${Q.name}: ${Q.message}`),Q.details)$.push(` ${Q.details}`)}}return $.push(""),$.join(`
|
|
16577
|
-
`)}j3();YX();o5();s5();async function
|
|
16583
|
+
`)}j3();YX();o5();s5();async function yD(X,$){let Z={success:!0,files:{icons:[]},errors:[],warnings:[]},Y=X.pwa;if(!Y?.enabled)return Z;try{pL.mkdirSync($,{recursive:!0})}catch{return Z.errors.push(`Failed to create output directory: ${$}`),Z.success=!1,Z}try{let G=U2(X);if(G){let Q=l4.join($,"manifest.json");await Bun.write(Q,G),Z.files.manifest=Q}}catch(G){let Q=G instanceof Error?G.message:String(G);Z.errors.push(`Failed to generate manifest.json: ${Q}`),Z.success=!1}if(Y.icons?.src)if(await a4()){let Q=await s4(X,$);if(Z.files.icons=Q.generatedFiles,Z.warnings.push(...Q.warnings),!Q.success)Z.errors.push(...Q.errors),Z.success=!1}else Z.warnings.push("sharp is not installed. Skipping icon generation. Install with: bun add sharp");if(Y.offline?.enabled)try{let G=await EK(X);if(G){let Q=l4.join($,"offline.html");await Bun.write(Q,G),Z.files.offlinePage=Q}}catch(G){let Q=G instanceof Error?G.message:String(G);Z.errors.push(`Failed to generate offline page: ${Q}`),Z.success=!1}let J;if(Y.precache?.enabled){let G=f1($,X);J={fileCount:G.fileCount,totalSize:G.totalSize},Z.precacheStats=J}try{let G=$X(X,$);if(G){let Q=j5(X),q=l4.join($,Q);await Bun.write(q,G),Z.files.serviceWorker=q}}catch(G){let Q=G instanceof Error?G.message:String(G);Z.errors.push(`Failed to generate service worker: ${Q}`),Z.success=!1}return Z}function bD(X,$){return z$(X,$)}function SD(X){return X.pwa?.enabled===!0}export{QF as validateManifest,FD as runPwaAudit,TT as registerPwaDirectives,Aj as pwaUpdateDirective,Tj as pwaPushDirective,Rj as pwaOfflineDirective,Vj as pwaInstallDirective,z3 as pwaDirectives,bD as processPwaHtml,GF as mergeManifestConfig,q2 as isWorkboxEnabled,a4 as isSharpAvailable,SD as isPwaEnabled,z$ as injectPwaTags,j5 as getServiceWorkerFileName,oL as getExpectedIconPaths,ZU as generateThemeColorMeta,XU as generateSwRegistrationScript,eK as generateServiceWorkerAuto,$X as generateServiceWorker,ZX as generatePwaTags,s4 as generatePwaIcons,XX as generatePrecacheManifestJs,f1 as generatePrecacheManifest,EK as generateOfflinePage,$U as generateManifestLink,U2 as generateManifestJson,KU as generateManifest,e4 as formatSize,VD as formatAuditResult,cL as calculateAuditResult,yD as buildPwaAssets,mL as auditConfig,lL as auditBuildOutput,o4 as FAVICON_SIZES,n4 as DEFAULT_ICON_SIZES,r4 as APPLE_TOUCH_ICON_SIZES};
|