@stacksjs/stx 0.2.176 → 0.2.177
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/builtins/attrs.d.ts +19 -0
- package/dist/builtins/attrs.js +18 -0
- package/dist/builtins/safe-image.js +2 -1
- package/dist/builtins/stx-image.js +2 -1
- package/dist/builtins/stx-link.js +2 -1
- package/dist/cli-flags.d.ts +34 -0
- package/dist/cli-flags.js +20 -0
- package/dist/cli.js +899 -778
- package/dist/client-script.js +2 -1
- package/dist/component-registry.d.ts +9 -0
- package/dist/component-renderer.js +20 -1
- package/dist/composables/use-fetch.d.ts +6 -1
- package/dist/composables/use-fetch.js +40 -18
- package/dist/composables/use-query.d.ts +7 -2
- package/dist/cookie-serialize.d.ts +40 -0
- package/dist/cookie-serialize.js +18 -0
- package/dist/craft.js +500 -381
- package/dist/crosswind-config.d.ts +13 -0
- package/dist/crosswind-config.js +6 -2
- package/dist/dev-server/crosswind.js +2 -1
- package/dist/edge-runtime.d.ts +2 -9
- package/dist/edge-runtime.js +2 -16
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/page-action.d.ts +10 -20
- package/dist/page-action.js +33 -9
- package/dist/production-server.js +8 -7
- package/dist/pwa.js +452 -333
- package/dist/reactive.js +2 -2
- package/dist/signal-processing.js +37 -6
- package/dist/signals.js +150 -32
- package/dist/ssg.js +465 -346
- package/dist/ssr.js +2 -16
- package/dist/stx-virtual-ts.d.ts +45 -1
- package/dist/stx-virtual-ts.js +75 -5
- package/dist/stx.d.ts +66 -7
- package/dist/template-hydrator.d.ts +1 -1
- package/dist/template-hydrator.js +6 -6
- package/dist/theme-tokens.d.ts +88 -0
- package/dist/theme-tokens.js +71 -0
- package/dist/typecheck.d.ts +6 -1
- package/dist/typecheck.js +7 -6
- package/package.json +5 -5
- package/stx.d.ts +66 -7
package/dist/pwa.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var{defineProperty:
|
|
2
|
+
var{defineProperty:j$,getOwnPropertyNames:cK,getOwnPropertyDescriptor:pK}=Object,iK=Object.prototype.hasOwnProperty;function nK(X){return this[X]}var X6=(X)=>{var $=(e3??=new WeakMap).get(X),Z;if($)return $;if($=j$({},"__esModule",{value:!0}),X&&typeof X==="object"||typeof X==="function"){for(var Y of cK(X))if(!iK.call($,Y))j$($,Y,{get:nK.bind(X,Y),enumerable:!(Z=pK(X,Y))||Z.enumerable})}return e3.set(X,$),$},e3;var rK=(X)=>X;function oK(X,$){this[X]=rK.bind(null,$)}var o=(X,$)=>{for(var Z in $)j$(X,Z,{get:$[Z],enumerable:!0,configurable:!0,set:oK.bind($,Z)})};var E=(X,$)=>()=>(X&&($=X(X=0)),$);var U0=import.meta.require;import $X from"fs";import ZX from"path";function tK(X){let $=0;for(let Z=0;Z<X.length;Z++){let Y=X[Z];$=($<<5)-$+Y,$=$&$}return Math.abs($).toString(16).padStart(8,"0")}function eK(X,$){let Z=ZX.basename(X);for(let Y of $)if(Y.startsWith("*.")){let J=Y.slice(1);if(Z.endsWith(J))return!0}else if(Y.includes("*")){let J=new RegExp(`^${Y.replace(/\*/g,".*")}$`);if(J.test(Z)||J.test(X))return!0}else if(Z===Y||X.includes(Y))return!0;return!1}function XU(X,$,Z){let Y=ZX.extname(X).toLowerCase(),J=aK[Y],G=(Z.maxFileSizeKB||500)*1024;if($>G)return!1;if(Z.exclude&&eK(X,Z.exclude))return!1;if(Z.include&&Z.include.length>0){for(let Q of Z.include)if(Q.startsWith("*.")){if(X.endsWith(Q.slice(1)))return!0}else if(X.includes(Q))return!0}if(J&&Z[J]===!0)return!0;if(!J)return!1;return!1}function Q6(X,$,Z,Y){let J=$X.readdirSync(X,{withFileTypes:!0});for(let G of J){let Q=ZX.join(X,G.name);if(G.isDirectory()){if(["node_modules",".git",".stx"].includes(G.name))continue;Q6(Q,$,Z,Y)}else if(G.isFile()){let q=$X.statSync(Q),K=ZX.relative($,Q);if(XU(K,q.size,Z)){let U=$X.readFileSync(Q),W=tK(U),w=`/${K.replace(/\\/g,"/")}`;Y.push({url:w,revision:W,size:q.size})}}}}function g1(X,$){let Z=$.pwa?.precache,Y=[];if(!Z?.enabled)return{entries:[],totalSize:0,fileCount:0};if(!$X.existsSync(X))return{entries:[],totalSize:0,fileCount:0};Q6(X,X,Z,Y),Y.sort((G,Q)=>G.url.localeCompare(Q.url));let J=Y.reduce((G,Q)=>G+Q.size,0);return{entries:Y,totalSize:J,fileCount:Y.length}}function YX(X){if(X.entries.length===0)return"[]";return`[
|
|
3
3
|
${X.entries.map((Z)=>` { url: '${Z.url}', revision: '${Z.revision}' }`).join(`,
|
|
4
4
|
`)}
|
|
5
|
-
]`}function
|
|
5
|
+
]`}function q6(X){if(X<1024)return`${X} B`;if(X<1048576)return`${(X/1024).toFixed(1)} KB`;return`${(X/1048576).toFixed(2)} MB`}var aK;var a5=E(()=>{aK={".html":"includeHtml",".htm":"includeHtml",".js":"includeJs",".mjs":"includeJs",".css":"includeCss",".png":"includeImages",".jpg":"includeImages",".jpeg":"includeImages",".gif":"includeImages",".webp":"includeImages",".svg":"includeImages",".ico":"includeImages",".woff":"includeFonts",".woff2":"includeFonts",".ttf":"includeFonts",".eot":"includeFonts",".otf":"includeFonts"}});function $U(X){let $={"cache-first":{className:"CacheFirst",importFrom:"workbox-strategies"},"network-first":{className:"NetworkFirst",importFrom:"workbox-strategies"},"stale-while-revalidate":{className:"StaleWhileRevalidate",importFrom:"workbox-strategies"},"network-only":{className:"NetworkOnly",importFrom:"workbox-strategies"},"cache-only":{className:"CacheOnly",importFrom:"workbox-strategies"}};return $[X]||$["network-first"]}function B$(X){return $U(X).className}function K6(X){let $=X.pwa;if(!$?.enabled)return"";let Z=$.routes||[],Y=$.cacheStorage,J=[];for(let G of Z){let Q=B$(G.strategy),q=[];if(G.maxAgeSeconds||G.maxEntries||Y?.maxEntries){let U=G.maxEntries||Y?.maxEntries||100,W=G.maxAgeSeconds||(Y?.maxAge?Y.maxAge*24*60*60:void 0);q.push(`new ExpirationPlugin({
|
|
6
6
|
maxEntries: ${U},
|
|
7
7
|
${W?`maxAgeSeconds: ${W},`:""}
|
|
8
8
|
purgeOnQuotaError: true,
|
|
9
9
|
})`)}if(G.strategy==="network-first"||G.strategy==="stale-while-revalidate")q.push(`new CacheableResponsePlugin({
|
|
10
10
|
statuses: [0, 200],
|
|
11
|
-
})`);let K=
|
|
11
|
+
})`);let K=ZU(G.pattern);J.push(`
|
|
12
12
|
// ${G.pattern}
|
|
13
13
|
registerRoute(
|
|
14
14
|
${K},
|
|
15
15
|
new ${Q}({
|
|
16
|
-
cacheName: '${G.cacheName||
|
|
16
|
+
cacheName: '${G.cacheName||JU(G.pattern)}',
|
|
17
17
|
${q.length>0?`plugins: [
|
|
18
18
|
${q.join(`,
|
|
19
19
|
`)}
|
|
20
20
|
],`:""}
|
|
21
21
|
})
|
|
22
22
|
);`)}return J.join(`
|
|
23
|
-
`)}function
|
|
23
|
+
`)}function ZU(X){if(X.startsWith("*.")){let $=X.slice(2);return`({ request }) => request.destination === '${YU($)}'`}if(X.endsWith("/**"))return`({ url }) => url.pathname.startsWith('${X.slice(0,-3)}')`;if(X.endsWith("/*")){let $=X.slice(0,-2);return`({ url }) => url.pathname.startsWith('${$}') && !url.pathname.slice(${$.length+1}).includes('/')`}if(X.includes("*")&&!X.startsWith("*")){let[$,Z]=X.split("*");return`({ url }) => url.pathname.startsWith('${$}') && url.pathname.endsWith('${Z}')`}if(X==="/"||!X.includes("*"))return`({ url }) => url.pathname === '${X}'`;return`new RegExp('${GU(X).replace(/\\\*/g,".*")}')`}function YU(X){return{js:"script",mjs:"script",css:"style",html:"document",htm:"document",png:"image",jpg:"image",jpeg:"image",gif:"image",svg:"image",webp:"image",avif:"image",ico:"image",woff:"font",woff2:"font",ttf:"font",eot:"font",otf:"font"}[X.toLowerCase()]||"empty"}function JU(X){return"stx-"+X.replace(/[^\w]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"").toLowerCase().slice(0,30)+"-cache"}function GU(X){return X.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var z6={};o(z6,{isWorkboxEnabled:()=>w6,getServiceWorkerGenerator:()=>WU,generateWorkboxServiceWorker:()=>W6,generateWorkboxConfig:()=>U6});function U6(X,$){let Z=X.pwa;if(!Z?.enabled)return{mode:"generate",modules:[],skipWaiting:!0,clientsClaim:!0};let Y=Z.serviceWorker||{},J=Z.routes||[],G=[{name:"workbox-precaching",exports:["precacheAndRoute","cleanupOutdatedCaches"]},{name:"workbox-routing",exports:["registerRoute","NavigationRoute","setDefaultHandler"]}],Q=new Set;for(let U of J)Q.add(B$(U.strategy));if(Q.size>0)G.push({name:"workbox-strategies",exports:Array.from(Q)});if(J.some((U)=>U.maxAgeSeconds||U.maxEntries)||Z.cacheStorage)G.push({name:"workbox-expiration",exports:["ExpirationPlugin"]});if(J.some((U)=>U.strategy==="network-first"||U.strategy==="stale-while-revalidate"))G.push({name:"workbox-cacheable-response",exports:["CacheableResponsePlugin"]});if(Z.backgroundSync?.enabled)G.push({name:"workbox-background-sync",exports:["BackgroundSyncPlugin","Queue"]});if(Y.navigationPreload)G.push({name:"workbox-navigation-preload",exports:["enable"]});let K=$?g1($,X):void 0;return{mode:"generate",modules:G,precacheManifest:K?.entries,skipWaiting:Y.skipWaiting??!0,clientsClaim:Y.clientsClaim??!0,offlineFallback:Z.offline?.enabled?"/offline.html":void 0,navigationPreload:Y.navigationPreload??!1,cacheVersion:Y.cacheVersion||"1.0.0"}}function W6(X,$){let Z=X.pwa;if(!Z?.enabled)return"";let Y=U6(X,$),J=Z.serviceWorker||{},G=Z.push,Q=Z.backgroundSync,q=$?g1($,X):null,K=q?YX(q):"[]",U=QU(Y.modules),W=K6(X);return`/**
|
|
24
24
|
* Service Worker - Generated by stx with Workbox
|
|
25
25
|
* Cache Version: ${Y.cacheVersion}
|
|
26
26
|
*
|
|
@@ -169,13 +169,13 @@ self.addEventListener('message', (event) => {
|
|
|
169
169
|
}
|
|
170
170
|
});
|
|
171
171
|
|
|
172
|
-
${G?.enabled?
|
|
172
|
+
${G?.enabled?KU(G):"// Push notifications disabled"}
|
|
173
173
|
|
|
174
|
-
${Q?.enabled?
|
|
174
|
+
${Q?.enabled?UU(Q):"// Background sync disabled"}
|
|
175
175
|
|
|
176
176
|
console.log('[Workbox SW] Service Worker loaded - Version:', CACHE_VERSION);
|
|
177
|
-
`}function
|
|
178
|
-
`)}function
|
|
177
|
+
`}function QU(X){let $=[];for(let Z of X){let Y=Z.name.replace("workbox-","");$.push(`const { ${Z.exports.join(", ")} } = workbox.${qU(Y)};`)}return $.join(`
|
|
178
|
+
`)}function qU(X){return X.replace(/-([a-z])/g,($,Z)=>Z.toUpperCase())}function KU(X){return`
|
|
179
179
|
// ============================================================================
|
|
180
180
|
// Push Notifications
|
|
181
181
|
// ============================================================================
|
|
@@ -244,7 +244,7 @@ self.addEventListener('notificationclick', (event) => {
|
|
|
244
244
|
})
|
|
245
245
|
);
|
|
246
246
|
});
|
|
247
|
-
`}function
|
|
247
|
+
`}function UU(X){return`
|
|
248
248
|
// ============================================================================
|
|
249
249
|
// Background Sync
|
|
250
250
|
// ============================================================================
|
|
@@ -306,7 +306,7 @@ self.addEventListener('message', (event) => {
|
|
|
306
306
|
event.waitUntil(syncQueue.pushRequest({ request }));
|
|
307
307
|
}
|
|
308
308
|
});
|
|
309
|
-
`}function
|
|
309
|
+
`}function w6(X){return X.pwa?.enabled===!0&&X.pwa?.serviceWorker?.useWorkbox===!0}function WU(X){if(w6(X))return W6;let{generateServiceWorker:$}=(t5(),X6(B6));return $}var j6=E(()=>{a5()});var B6={};o(B6,{isWorkboxEnabled:()=>_6,getServiceWorkerFileName:()=>j5,generateServiceWorkerAuto:()=>jU,generateServiceWorker:()=>JX});function JX(X,$){let Z=X.pwa;if(!Z?.enabled)return"";let Y=Z.serviceWorker||{},J=Z.routes||[],G=Y.cacheVersion||"1.0.0",Q=Z.offline,q=Q?.page?"/offline.html":"/offline.html",K=Z.push,U=Z.backgroundSync,W=Z.cacheStorage,w=$?g1($,X):null,z=w?YX(w):"[]",B=["/","/manifest.json",...Q?.enabled?[q]:[],...Q?.precacheAssets||[]];return`/**
|
|
310
310
|
* Service Worker - Auto-generated by stx
|
|
311
311
|
* Cache Version: ${G}
|
|
312
312
|
*
|
|
@@ -320,7 +320,7 @@ self.addEventListener('message', (event) => {
|
|
|
320
320
|
* Additional features:
|
|
321
321
|
* - Push notifications: ${K?.enabled?"enabled":"disabled"}
|
|
322
322
|
* - Background sync: ${U?.enabled?"enabled":"disabled"}
|
|
323
|
-
* - Cache limits: ${W?.maxSize?`${
|
|
323
|
+
* - Cache limits: ${W?.maxSize?`${q6(W.maxSize*1024*1024)}`:"unlimited"}
|
|
324
324
|
*/
|
|
325
325
|
|
|
326
326
|
const CACHE_VERSION = '${G}';
|
|
@@ -501,9 +501,9 @@ self.addEventListener('message', (event) => {
|
|
|
501
501
|
}
|
|
502
502
|
});
|
|
503
503
|
|
|
504
|
-
${K?.enabled?
|
|
504
|
+
${K?.enabled?wU():"// Push notifications disabled"}
|
|
505
505
|
|
|
506
|
-
${U?.enabled?
|
|
506
|
+
${U?.enabled?zU():"// Background sync disabled"}
|
|
507
507
|
|
|
508
508
|
/**
|
|
509
509
|
* Check if a route should be excluded from caching
|
|
@@ -868,7 +868,7 @@ async function purgeByEntryCount(entries, cache, maxEntries) {
|
|
|
868
868
|
}
|
|
869
869
|
|
|
870
870
|
console.log('[SW] Service Worker loaded - Version:', CACHE_VERSION);
|
|
871
|
-
`}function
|
|
871
|
+
`}function wU(){return`
|
|
872
872
|
/**
|
|
873
873
|
* Push event - handle incoming push notifications
|
|
874
874
|
*/
|
|
@@ -950,7 +950,7 @@ self.addEventListener('notificationclose', (event) => {
|
|
|
950
950
|
// Could send analytics here
|
|
951
951
|
}
|
|
952
952
|
});
|
|
953
|
-
`}function
|
|
953
|
+
`}function zU(){return`
|
|
954
954
|
/**
|
|
955
955
|
* Background sync queue storage (IndexedDB)
|
|
956
956
|
*/
|
|
@@ -1132,14 +1132,14 @@ self.addEventListener('message', (event) => {
|
|
|
1132
1132
|
event.waitUntil(registerFormSync(event.data.payload));
|
|
1133
1133
|
}
|
|
1134
1134
|
});
|
|
1135
|
-
`}function j5(X){return X.pwa?.serviceWorker?.fileName||"sw.js"}function
|
|
1135
|
+
`}function j5(X){return X.pwa?.serviceWorker?.fileName||"sw.js"}function _6(X){return X.pwa?.enabled===!0&&X.pwa?.serviceWorker?.useWorkbox===!0}function jU(X,$){if(!X.pwa?.enabled)return"";if(_6(X)){let{generateWorkboxServiceWorker:Z}=(j6(),X6(z6));return Z(X,$)}return JX(X,$)}var t5=E(()=>{a5()});var H6={};o(H6,{injectPwaTags:()=>H$,generateThemeColorMeta:()=>HU,generateSwRegistrationScript:()=>BU,generatePwaTags:()=>GX,generateManifestLink:()=>_U});function GX(X){let $=X.pwa;if(!$?.enabled)return"";let Z=$.manifest,Y=$.icons?.outputDir?`/${$.icons.outputDir}`:"/pwa-icons",J=j5(X),G=`
|
|
1136
1136
|
<!-- stx PWA Meta Tags -->
|
|
1137
1137
|
<link rel="manifest" href="/manifest.json">
|
|
1138
|
-
<meta name="theme-color" content="${
|
|
1138
|
+
<meta name="theme-color" content="${_$(Z?.themeColor||"#000000")}">
|
|
1139
1139
|
<meta name="mobile-web-app-capable" content="yes">
|
|
1140
1140
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
1141
1141
|
<meta name="apple-mobile-web-app-status-bar-style" content="default">
|
|
1142
|
-
<meta name="apple-mobile-web-app-title" content="${
|
|
1142
|
+
<meta name="apple-mobile-web-app-title" content="${_$(Z?.shortName||Z?.name||"App")}">`;if($.icons?.generateAppleIcons!==!1)G+=`
|
|
1143
1143
|
<link rel="apple-touch-icon" href="${Y}/apple-touch-icon.png">
|
|
1144
1144
|
<link rel="apple-touch-icon" sizes="120x120" href="${Y}/apple-touch-icon-120x120.png">
|
|
1145
1145
|
<link rel="apple-touch-icon" sizes="152x152" href="${Y}/apple-touch-icon-152x152.png">
|
|
@@ -1176,9 +1176,9 @@ if ('serviceWorker' in navigator) {
|
|
|
1176
1176
|
});
|
|
1177
1177
|
}
|
|
1178
1178
|
</script>
|
|
1179
|
-
<!-- End stx PWA -->`,G}function
|
|
1180
|
-
`+X.slice(J)}return X+
|
|
1181
|
-
</head>`)}function
|
|
1179
|
+
<!-- End stx PWA -->`,G}function H$(X,$){let Z=$.pwa;if(!Z?.enabled||Z.autoInject===!1)return X;if(X.includes("<!-- stx PWA Meta Tags -->"))return X;if(!X.includes("</head>")){let J=X.lastIndexOf("</body>");if(J!==-1){let G=GX($);return X.slice(0,J)+G+`
|
|
1180
|
+
`+X.slice(J)}return X+GX($)}let Y=GX($);return X.replace("</head>",`${Y}
|
|
1181
|
+
</head>`)}function BU(X){if(!X.pwa?.enabled)return"";return`<script>
|
|
1182
1182
|
if ('serviceWorker' in navigator) {
|
|
1183
1183
|
window.addEventListener('load', function() {
|
|
1184
1184
|
navigator.serviceWorker.register('/${j5(X)}')
|
|
@@ -1190,7 +1190,8 @@ if ('serviceWorker' in navigator) {
|
|
|
1190
1190
|
});
|
|
1191
1191
|
});
|
|
1192
1192
|
}
|
|
1193
|
-
</script>`}function
|
|
1193
|
+
</script>`}function _U(){return'<link rel="manifest" href="/manifest.json">'}function HU(X){return`<meta name="theme-color" content="${_$(X)}">`}function _$(X){return X.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}var QX=E(()=>{t5()});function O$(X){return`--stx-${X}`}function L$(X,$){let Z=$.lastIndexOf("-");if(Z===-1)return typeof X[$]==="string"?X[$]:void 0;let Y=X[$.slice(0,Z)];if(!Y||typeof Y!=="object")return;let J=Y[$.slice(Z+1)];return typeof J==="string"?J:void 0}function F6(X){let $={};for(let[Z,Y]of Object.entries(L6)){let J=L$(X,Y.light);if(J===void 0)continue;$[Z]=`var(${O$(Z)}, ${J})`}return $}function V6(X){let $=[],Z=[];for(let[Y,J]of Object.entries(L6)){let G=L$(X,J.light),Q=L$(X,J.dark);if(G===void 0)continue;if($.push(` ${O$(Y)}: ${G};`),Q!==void 0)Z.push(` ${O$(Y)}: ${Q};`)}if($.length===0)return"";return["/* stx role tokens \u2014 override any of these to re-theme by meaning. */",":root {",...$,"}",".dark {",...Z,"}",""].join(`
|
|
1194
|
+
`)}var L6;var A6=E(()=>{L6={fg:{light:"gray-900",dark:"gray-100",description:"Primary text"},"fg-strong":{light:"gray-700",dark:"gray-300",description:"Labels, secondary headings"},"fg-muted":{light:"gray-600",dark:"gray-400",description:"Supporting text"},"fg-soft":{light:"gray-500",dark:"gray-400",description:"De-emphasised text"},"fg-subtle":{light:"gray-400",dark:"gray-500",description:"Placeholders, disabled text"},surface:{light:"gray-50",dark:"gray-800",description:"Page and panel background"},"surface-raised":{light:"gray-100",dark:"gray-700",description:"Cards, popovers"},"surface-sunken":{light:"gray-200",dark:"gray-700",description:"Wells, track backgrounds"},line:{light:"gray-200",dark:"gray-700",description:"Default border, divider"},"line-strong":{light:"gray-300",dark:"gray-600",description:"Input border, focus ring track"},accent:{light:"indigo-600",dark:"indigo-400",description:"Primary action, selected state"},info:{light:"blue-600",dark:"blue-400",description:"Informational emphasis, links"},danger:{light:"red-600",dark:"red-400",description:"Errors, destructive actions"},success:{light:"green-600",dark:"green-400",description:"Confirmation"},warning:{light:"yellow-500",dark:"yellow-400",description:"Caution"},"accent-solid":{light:"indigo-600",dark:"indigo-500",description:"Primary button fill"},"info-solid":{light:"blue-600",dark:"blue-500",description:"Informational fill"},"danger-solid":{light:"red-600",dark:"red-500",description:"Destructive button fill"},"success-solid":{light:"green-600",dark:"green-500",description:"Confirmation fill"}}});function R6(X){return typeof X==="object"&&X!==null&&!Array.isArray(X)}function F$(X,$){let Z={...X};for(let[Y,J]of Object.entries($))Z[Y]=R6(J)&&R6(Z[Y])?F$(Z[Y],J):J;return Z}function N6(X={},$={}){let Z=X.theme||{},Y=$.theme||{},{extend:J,...G}=Y,{extend:Q,...q}=Z,K=q.colors||{};q.colors={...K,...F6(K)};let U=F$(q,G),W=F$(Q||{},J||{});if(Object.keys(W).length>0)U.extend=W;let w=[...X.safelist||[],...$.safelist||[]],z={...X.shortcuts||{},...$.shortcuts||{}},B=[...X.preflights||[],...$.preflights||[]];return{config:{...X,...$,theme:U,safelist:w,shortcuts:z,...B.length>0?{preflights:B}:{},content:[],output:""},safelist:w,shortcuts:z,includePreflight:$.preflight!==!1,minify:$.minify===!0,tokenCSS:V6(K)}}var T6=E(()=>{A6()});import e5 from"path";function k6(X){M6=X?.trim()||null}function X7(){return process.env[NU]?.trim()||M6||B5}function $7(X=process.cwd(),...$){let Z=X7();return e5.isAbsolute(Z)?e5.join(Z,...$):e5.join(X,Z,...$)}function Z7(X){if(!X||e5.isAbsolute(X))return X;let $=X.replace(/\\/g,"/");if($!==B5&&!$.startsWith(`${B5}/`))return X;let Z=$.slice(B5.length+1);return Z?e5.join(X7(),Z):X7()}var B5=".stx",NU="STX_DIR",M6=null;var qX=()=>{};var A0;var I6=E(()=>{A0={reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",underscore:"\x1B[4m",blink:"\x1B[5m",reverse:"\x1B[7m",hidden:"\x1B[8m",black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",gray:"\x1B[90m",bgBlack:"\x1B[40m",bgRed:"\x1B[41m",bgGreen:"\x1B[42m",bgYellow:"\x1B[43m",bgBlue:"\x1B[44m",bgMagenta:"\x1B[45m",bgCyan:"\x1B[46m",bgWhite:"\x1B[47m",bgGray:"\x1B[100m"}});var E6=()=>{};function D6(X,$,Z,Y){let J=X;J=J.replace(/@a11y\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(Q,q,K)=>{let W={"aria-label":"Ensure interactive elements have accessible labels","alt-text":"Provide alternative text for images",focus:"Ensure the element can receive keyboard focus",landmark:"Use appropriate landmark roles","heading-order":"Maintain proper heading hierarchy","color-contrast":"Ensure sufficient color contrast","keyboard-nav":"Make sure element is keyboard navigable","screen-reader":"Optimize for screen reader users"}[q]||"Make this element accessible";return`<!-- a11y-hint: ${K||W} -->`});let G=/@screenReader\(([^@]*)\)@endScreenReader/g;return J=J.replace(G,(Q,q)=>{return`<span class="sr-only">${q.trim()}</span>`}),J=J.replace(/@ariaDescribe\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*\)/g,(Q,q,K)=>{return`<span id="${`desc-${q}`}" class="sr-only">${K}</span>`}),J}var y6,b6;var V$=E(()=>{E6();y6={name:"a11y",handler:(X,$,Z,Y)=>{if(!$.length)return X;let J=$[0].replace(/['"]/g,""),G=$.length>1?$[1].replace(/['"]/g,""):"",q={"aria-label":"Ensure interactive elements have accessible labels","alt-text":"Provide alternative text for images",focus:"Ensure the element can receive keyboard focus",landmark:"Use appropriate landmark roles","heading-order":"Maintain proper heading hierarchy","color-contrast":"Ensure sufficient color contrast","keyboard-nav":"Make sure element is keyboard navigable","screen-reader":"Optimize for screen reader users"}[J]||"Make this element accessible";return`<!-- a11y-hint: ${G||q} -->${X}`},hasEndTag:!1},b6={name:"screenReader",handler:(X)=>{return`<span class="sr-only">${X}</span>`},hasEndTag:!0}});function TU(X,$={}){let{duration:Z,delay:Y,ease:J,direction:G,custom:Q}={...U1,...$};if(X==="custom"&&Q)return Q;switch(X){case"fade":return`${G==="in"?"opacity: 0; animation: fadeIn var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":G==="out"?"opacity: 1; animation: fadeOut var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":"opacity: 1; transition: opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);"}
|
|
1194
1195
|
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
|
|
1195
1196
|
@keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } }`;case"slide":return`${G==="in"?"transform: translateY(20px); opacity: 0; animation: slideIn var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":G==="out"?"transform: translateY(0); opacity: 1; animation: slideOut var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":"transform: translateY(0); opacity: 1; transition: transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms), opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);"}
|
|
1196
1197
|
@keyframes slideIn { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
|
|
@@ -1200,7 +1201,7 @@ if ('serviceWorker' in navigator) {
|
|
|
1200
1201
|
@keyframes flipIn { from { transform: perspective(400px) rotateX(-90deg); opacity: 0; } to { transform: perspective(400px) rotateX(0); opacity: 1; } }
|
|
1201
1202
|
@keyframes flipOut { from { transform: perspective(400px) rotateX(0); opacity: 1; } to { transform: perspective(400px) rotateX(90deg); opacity: 0; } }`;case"rotate":return`${G==="in"?"transform: rotate(-90deg); opacity: 0; animation: rotateIn var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":G==="out"?"transform: rotate(0); opacity: 1; animation: rotateOut var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":"transform: rotate(0); opacity: 1; transition: transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms), opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);"}
|
|
1202
1203
|
@keyframes rotateIn { from { transform: rotate(-90deg); opacity: 0; } to { transform: rotate(0); opacity: 1; } }
|
|
1203
|
-
@keyframes rotateOut { from { transform: rotate(0); opacity: 1; } to { transform: rotate(90deg); opacity: 0; } }`;default:return""}}function
|
|
1204
|
+
@keyframes rotateOut { from { transform: rotate(0); opacity: 1; } to { transform: rotate(90deg); opacity: 0; } }`;default:return""}}function MU(){return`
|
|
1204
1205
|
<script data-stx-scoped data-stx-run="once">
|
|
1205
1206
|
// Motion preferences handling
|
|
1206
1207
|
(function() {
|
|
@@ -1228,7 +1229,7 @@ else {
|
|
|
1228
1229
|
});
|
|
1229
1230
|
})();
|
|
1230
1231
|
</script>
|
|
1231
|
-
`}function
|
|
1232
|
+
`}function kU(X){return[/@animate\b/,/@transition\b/,/@scroll(?:Animate)?\b/,/@staggered\b/,/@sequence\b/,/@motion\b/,/@animationGroup\b/,/\bstx-transition\b/,/\bstx-(?:fade|scale|flip|rotate|slide|from-|observe)\b/,/data-animate=['"](?:auto|true|false)['"]/].some((Z)=>Z.test(X))}function IU(X=0.1,$="0px"){return`
|
|
1232
1233
|
<script data-stx-scoped data-stx-run="always">
|
|
1233
1234
|
// Intersection Observer for scroll animations
|
|
1234
1235
|
(function() {
|
|
@@ -1271,7 +1272,7 @@ else {
|
|
|
1271
1272
|
}
|
|
1272
1273
|
})();
|
|
1273
1274
|
</script>
|
|
1274
|
-
`}function
|
|
1275
|
+
`}function EU(){return`
|
|
1275
1276
|
<style id="stx-animation-base">
|
|
1276
1277
|
:root {
|
|
1277
1278
|
--stx-transition-duration: 300ms;
|
|
@@ -1386,7 +1387,7 @@ else {
|
|
|
1386
1387
|
transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);
|
|
1387
1388
|
}
|
|
1388
1389
|
</style>
|
|
1389
|
-
`}function
|
|
1390
|
+
`}function DU(X,$,Z={}){let{staggerDelay:Y=50,sequence:J=!1}=Z;return`
|
|
1390
1391
|
<script data-stx-scoped data-stx-run="always">
|
|
1391
1392
|
// Animation Group: ${X}
|
|
1392
1393
|
(function() {
|
|
@@ -1423,13 +1424,13 @@ else {
|
|
|
1423
1424
|
}
|
|
1424
1425
|
})();
|
|
1425
1426
|
</script>
|
|
1426
|
-
`}function
|
|
1427
|
-
</head>`)}if(J.includes("stx-observe")){if(!J.includes("Intersection Observer for scroll animations")){let K=
|
|
1428
|
-
`+J.slice(U)}}return J}var U1,
|
|
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"},
|
|
1430
|
-
${K}`},hasEndTag:!1,description:"Coordinates multiple animations together as a group"},
|
|
1431
|
-
`),G=
|
|
1432
|
-
`))}var
|
|
1427
|
+
`}function x6(X,$,Z,Y){let J=X;if(Y.animation?.enabled===!1)return J;let G=Z.includes("test")&&Z.includes("animation");if(!kU(J)&&!G)return J;if(!J.includes('<style id="stx-animation-base">')){let q=EU();J=J.replace("</head>",`${q}
|
|
1428
|
+
</head>`)}if(J.includes("stx-observe")){if(!J.includes("Intersection Observer for scroll animations")){let K=IU(),U=J.lastIndexOf("</body>");if(U!==-1)J=J.slice(0,U)+K+`
|
|
1429
|
+
`+J.slice(U)}}return J}var U1,S6,C6,P6,v6;var A$=E(()=>{U1={duration:300,delay:0,ease:"ease",direction:"both"};S6={name:"transition",handler:(X,$,Z,Y)=>{if($.length<1)return`<div class="stx-error">@transition directive requires at least a transition type</div>${X}`;let J=$[0],G=$.length>1?Number.parseInt($[1],10)||U1.duration:U1.duration,Q=$.length>2?$[2]||U1.ease:U1.ease,q=$.length>3?Number.parseInt($[3],10)||U1.delay:U1.delay,K=$.length>4?$[4]||U1.direction:U1.direction,U=`stx-transition-${Math.random().toString(36).substr(2,9)}`,W=TU(J,{duration:G,delay:q,ease:Q,direction:K}),w="stx-transition",z="";if(J==="fade")z="stx-fade";else if(J==="slide")z="stx-slide";else if(J==="scale")z="stx-scale";else if(J==="flip")z="stx-flip";else if(J==="rotate")z="stx-rotate";return`<div id="${U}" class="${w} ${z} ${K==="out"?"stx-out":""}"
|
|
1430
|
+
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"},C6={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"},P6={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=DU(J,G,{staggerDelay:Q,sequence:q});return`${X}
|
|
1431
|
+
${K}`},hasEndTag:!1,description:"Coordinates multiple animations together as a group"},v6={name:"motion",handler:(X,$,Z,Y)=>{let J=$.length>0?$[0].toLowerCase()==="true":!0,G=MU();return`<div data-animate="${J?"auto":"true"}">${X}</div>${G}`},hasEndTag:!0,description:"Controls motion and animation preferences"}});function R$(X){return X.split(/[\\/]/).filter(Boolean).slice(0,-1).some((Z)=>Y7.includes(Z))}function J7(X){return R$(X.replace(/^\//,""))}var Y7;var KX=E(()=>{Y7=["components","layouts","partials","emails"]});import _5 from"fs";import G7 from"path";function Q7(X,$){let Z=X.filter((Q)=>!J7(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(`
|
|
1432
|
+
`),G=G7.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 q7(X,$,Z){let Y=process.cwd(),J=G7.relative(Y,Z),G=X.filter((q)=>!J7(q.pattern)),Q=["// Auto-generated by stx \u2014 do not edit",`// Source: ${J||"pages"}/`,"","export const routes = ["];for(let q of G){let K=G7.relative(Y,q.filePath).replace(/\\/g,"/"),U=JSON.stringify(q.params),W=q.layout?`, layout: '${G7.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(G7.join($,"routes.ts"),Q.join(`
|
|
1433
|
+
`))}var N$=E(()=>{KX()});import f6 from"path";function UX(X,$){let Y=f6.relative($,X).replace(/\.(stx|md)$/,"");if(Y=Y.split(f6.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 K7(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 WX(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 g6(X){let $=X.replace(/\[\[([^\]]+)\]\]/g,":$1?").replace(/\[([^\]]+)\]/g,":$1").replace(/:\.\.\.([^/]+)/g,":$1*");return K7($)}var T$=()=>{};import yU from"fs";import M$ from"path";function wX(X,$){let Z=[],Y=M$.dirname(X);while(Y.startsWith($)||Y===$){let J=M$.join(Y,"_layout.stx");if(yU.existsSync(J))Z.unshift(J);if(Y===$)break;Y=M$.dirname(Y)}return Z}var k$=()=>{};import I$ from"fs";import H5 from"path";function h6(X,$){let Z=[];if(!I$.existsSync(X))return Z;let Y=I$.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(Y7.includes(J.name))continue;Z.push(...h6(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=h6(Q,Y);for(let K of q){let U=UX(K,Q);if(J.has(U))continue;J.add(U);let{regex:W,params:w}=K7(U),z=$.layouts!==!1?wX(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");Q7(this.routes,G),q7(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 u6(X,$){return new O5(X,$)}function E$(X,$){let Z=[`${$}.stx`,"error.stx"];for(let Y of Z){let J=H5.join(X,Y);if(I$.existsSync(J))return J}return null}function D$(X,$){return X.map((Z)=>{let Y=H5.relative($,Z.filePath),J=Z.isDynamic?" (dynamic)":"";return`${Z.pattern} \u2192 ${Y}${J}`})}var d6=E(()=>{N$();T$();k$();KX()});function y$(X){zX=X.replace(/\/$/,"")}function b$(X,$,Z={}){L5[X]={path:$,name:X,params:Z}}function S$(X){for(let[$,Z]of Object.entries(X))if(typeof Z==="string")L5[$]={path:Z,name:$};else L5[$]={...Z,name:$}}function U7(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&&zX?`${zX}${G}`:G}function C$(){for(let X of Object.keys(L5))delete L5[X];zX=""}var L5,zX="";var m6=E(()=>{L5={}});import l6 from"fs";import c6 from"path";function p6(X,$={}){return{type:"redirect",path:X,options:{replace:$.replace??!1,external:$.external??!1,redirectCode:$.redirectCode??302}}}function i6(X){return{type:"abort",error:typeof X==="string"?{statusCode:500,message:X}:X}}function n6(X,$={}){return{handler:X,mode:$.mode??"universal"}}function P$(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 jX(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 v$(X,$){let Z=X.headers.get("cookie")||"",Y=P$(Z);return{get(J){return Y[J]},set(J,G,Q={}){Y[J]=G,$.append("Set-Cookie",jX(J,G,Q))},delete(J){delete Y[J],$.append("Set-Cookie",jX(J,"",{expires:new Date(0),path:"/"}))},getAll(){return{...Y}}}}function x$(){return{get(X){if(typeof document>"u")return;return P$(document.cookie)[X]},set(X,$,Z={}){if(typeof document>"u")return;document.cookie=jX(X,$,Z)},delete(X){if(typeof document>"u")return;document.cookie=jX(X,"",{expires:new Date(0),path:"/"})},getAll(){if(typeof document>"u")return{};return P$(document.cookie)}}}function f$(){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 BX(X,$){W7.set(X,$)}function g$(X){return W7.get(X)}function r6(X){return W7.has(X)}function o6(){W7.clear()}function s6(){return Array.from(W7.keys())}async function a6(X,$="middleware"){let Z=c6.resolve(X,$);if(!l6.existsSync(Z))return;let Y=l6.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=c6.join(Z,J);try{let K=(await import(Q)).default;if(K&&typeof K.handler==="function")BX(G,K);else if(typeof K==="function")BX(G,{handler:K,mode:"universal"})}catch(q){console.warn(`Failed to load middleware '${G}' from ${Q}:`,q)}}}function bU(X){let $={};if(!X)return $;let Z=new URLSearchParams(X);for(let[Y,J]of Z)$[Y]=J;return $}function t6(X,$,Z,Y=""){return{path:X,params:$,query:bU(Y),fullPath:Y?`${X}?${Y}`:X,meta:Z}}function e6(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?v$(Z,Q):x$(),storage:f$(),state:{},request:Z,responseHeaders:Q}}async function X2(X,$){let Z=Array.isArray(X)?X:[X],Y=$.isServer;for(let J of Z){let G=g$(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 W7;var $2=E(()=>{W7=new Map});function w7(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 Z2(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]||w7(J)}}function SU(X){try{return new Bun.Transpiler({loader:"js",minifyWhitespace:!0}).transformSync(X).replace(/\}(var |let |const |function )/g,"};$1").trim()}catch{return X}}function z7(){if(_X)return _X;return _X=SU(`
|
|
1433
1434
|
;(function(){
|
|
1434
1435
|
'use strict';
|
|
1435
1436
|
var ROUTER_REV=7;
|
|
@@ -3079,7 +3080,7 @@ else {
|
|
|
3079
3080
|
|
|
3080
3081
|
if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',init);else init();
|
|
3081
3082
|
})();
|
|
3082
|
-
`),
|
|
3083
|
+
`),_X}var _X;var Y2={};o(Y2,{setAppUrl:()=>y$,runMiddleware:()=>X2,route:()=>U7,resolveLayoutChain:()=>wX,resetRoutes:()=>C$,registerMiddleware:()=>BX,patternToRegex:()=>K7,navigateTo:()=>p6,matchRoute:()=>WX,loadMiddlewareFromDirectory:()=>a6,isNonPageRoutePattern:()=>J7,isNonPageRoutePath:()=>R$,hasMiddleware:()=>r6,getRouterScript:()=>z7,getMiddlewareNames:()=>s6,getMiddleware:()=>g$,generateRouteTypes:()=>Q7,generateRouteManifest:()=>q7,formatRoutes:()=>D$,findErrorPage:()=>E$,filePathToPattern:()=>UX,extractLayoutMetadata:()=>Z2,deriveLayoutGroup:()=>w7,defineRoutes:()=>S$,defineRoute:()=>b$,defineMiddleware:()=>n6,createStorageManager:()=>f$,createServerCookieManager:()=>v$,createRouter:()=>u6,createRouteLocation:()=>t6,createMiddlewareContext:()=>e6,createClientCookieManager:()=>x$,clearMiddleware:()=>o6,bracketPathToRegex:()=>g6,abortNavigation:()=>i6,Router:()=>O5,NON_PAGE_DIRS:()=>Y7});var h1=E(()=>{d6();T$();m6();$2();k$();N$();KX()});var J2=E(()=>{h1();h$()});async function CU(X,$,Z,Y){let J=$[0]?.replace(/['"]/g,"")||"main",G=z7();if(J!=="main")G=G.replace("container:'main'",`container:'${J}'`);return`<script data-stx-router>${G}</script>`}var G2;var h$=E(()=>{J2();G2={name:"stxRouter",handler:CU,hasEndTag:!1,description:"Inject the STX SPA router script for client-side navigation"}});function Q2(X){let $=X.heatmap;if(!$?.enabled)return"";let Z={...PU,...$};return`
|
|
3083
3084
|
<!-- stx Heatmap - Privacy-Compliant Tracking -->
|
|
3084
3085
|
<script>
|
|
3085
3086
|
(function() {
|
|
@@ -3462,10 +3463,10 @@ else {
|
|
|
3462
3463
|
};
|
|
3463
3464
|
})();
|
|
3464
3465
|
</script>
|
|
3465
|
-
`}function
|
|
3466
|
-
`)){let q=Q.trim();if(!q||q.startsWith("#"))continue;let K=q.indexOf(":");if(K===-1)continue;let U=q.slice(0,K).trim(),W=q.slice(K+1).trim();if(typeof W==="string"){if(W.startsWith('"')&&W.endsWith('"')||W.startsWith("'")&&W.endsWith("'"))W=W.slice(1,-1);else if(W.startsWith("[")&&W.endsWith("]"))try{W=JSON.parse(W)}catch{}else if(W==="true")W=!0;else if(W==="false")W=!1;else if(/^-?\d+(?:\.\d+)?$/.test(W))W=Number(W)}G[U]=W}return{data:G,content:J.trim()}}function
|
|
3467
|
-
`),J=J.replace(/^[*\-+]\s+(.*)$/gm,"<li data-ul>$1</li>"),J=J.replace(/(<li data-ul>.*<\/li>\n?)+/g,"<ul>$&</ul>"),J=J.replace(/<\/ul>\n<ul>/g,""),J=J.replace(/^\d+\.\s+(.*)$/gm,"<li data-ol>$1</li>"),J=J.replace(/(<li data-ol>.*<\/li>\n?)+/g,"<ol>$&</ol>"),J=J.replace(/<\/ol>\n<ol>/g,""),J=J.replace(/<li data-ul>/g,"<li>"),J=J.replace(/<li data-ol>/g,"<li>"),Z)J=J.replace(/^\|(.+)\|\s*\n\|[-:\s|]+\|\s*\n((?:\|.+\|\s*\n)*)/gm,(W,w,z)=>{let j=`<tr>${w.split("|").map((H)=>H.trim()).filter(Boolean).map((H)=>`<th>${
|
|
3468
|
-
`).map((H)=>{return`<tr>${H.split("|").map((L)=>L.trim()).filter(Boolean).map((L)=>`<td>${
|
|
3466
|
+
`}function q2(X,$){let Z=Q2($);if(!Z)return X;let Y=X.lastIndexOf("</body>");if(Y!==-1)return X.slice(0,Y)+Z+X.slice(Y);return X+Z}function vU(X){let $={},Z=X.match(/(\w+)=["']?([^"'\s]+)["']?/g)||[];for(let Y of Z){let[J,G]=Y.split("="),Q=G?.replace(/["']/g,"");switch(J){case"endpoint":$.endpoint=Q;break;case"samplingRate":$.samplingRate=Number.parseInt(Q,10);break;case"batchSize":$.batchSize=Number.parseInt(Q,10);break;case"trackMouse":$.trackMouse=Q==="true";break;case"trackClicks":$.trackClicks=Q==="true";break;case"trackScroll":$.trackScroll=Q==="true";break;case"honorDnt":$.honorDnt=Q==="true";break;case"debugOverlay":$.debugOverlay=Q==="true";break}}return $}var PU,K2;var u$=E(()=>{PU={enabled:!1,trackMouse:!0,trackClicks:!0,trackScroll:!0,samplingRate:100,honorDnt:!0,batchSize:50,maxDataPoints:1000,sessionTimeout:30,persistData:!1,storagePrefix:"stx_heatmap",captureAttributes:["data-heatmap-id","data-track"],ignoreSelectors:["[data-heatmap-ignore]",".heatmap-ignore"],debugOverlay:!1};K2={name:"heatmap",hasEndTag:!1,description:"Inject privacy-compliant heatmap tracking script",handler:async(X,$,Z,Y)=>{let J=Z.__stx_config||{};if($.length>0){let G=vU($.join(" "));J.heatmap={...J.heatmap,...G,enabled:!0}}return Q2(J)}}});function F1(X){return X.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function U2(X){let $=X.trim().toLowerCase();return!$.startsWith("javascript:")&&!$.startsWith("vbscript:")&&!$.startsWith("data:text/html")}function W2(X){let $=/^---\r?\n([\s\S]*?)\r?\n---\r?\n/,Z=X.match($);if(!Z)return{data:{},content:X.trim()};let Y=Z[1],J=X.slice(Z[0].length),G={};for(let Q of Y.split(`
|
|
3467
|
+
`)){let q=Q.trim();if(!q||q.startsWith("#"))continue;let K=q.indexOf(":");if(K===-1)continue;let U=q.slice(0,K).trim(),W=q.slice(K+1).trim();if(typeof W==="string"){if(W.startsWith('"')&&W.endsWith('"')||W.startsWith("'")&&W.endsWith("'"))W=W.slice(1,-1);else if(W.startsWith("[")&&W.endsWith("]"))try{W=JSON.parse(W)}catch{}else if(W==="true")W=!0;else if(W==="false")W=!1;else if(/^-?\d+(?:\.\d+)?$/.test(W))W=Number(W)}G[U]=W}return{data:G,content:J.trim()}}function j7(X,$={}){let{gfm:Z=!0,breaks:Y=!1}=$,J=X,G=[];if(J=J.replace(/```(\w*)\n([\s\S]*?)```/g,(W,w,z)=>{let B=G.length,j=w?` class="language-${F1(w)}"`:"";return G.push(`<pre><code${j}>${F1(z.trim())}</code></pre>`),`\x00CODEBLOCK${B}\x00`}),J=J.replace(/`([^`]*)`/g,(W,w)=>`<code>${F1(w)}</code>`),J=J.replace(/^######\s+(.*)$/gm,"<h6>$1</h6>"),J=J.replace(/^#####\s+(.*)$/gm,"<h5>$1</h5>"),J=J.replace(/^####\s+(.*)$/gm,"<h4>$1</h4>"),J=J.replace(/^###\s+(.*)$/gm,"<h3>$1</h3>"),J=J.replace(/^##\s+(.*)$/gm,"<h2>$1</h2>"),J=J.replace(/^#\s+(.*)$/gm,"<h1>$1</h1>"),J=J.replace(/\*\*\*(.+?)\*\*\*/g,"<strong><em>$1</em></strong>"),J=J.replace(/___(.+?)___/g,"<strong><em>$1</em></strong>"),J=J.replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>"),J=J.replace(/__(.+?)__/g,"<strong>$1</strong>"),J=J.replace(/\*(.+?)\*/g,"<em>$1</em>"),J=J.replace(/(?<![a-zA-Z0-9])_(.+?)_(?![a-zA-Z0-9])/g,"<em>$1</em>"),Z)J=J.replace(/~~(.+?)~~/g,"<del>$1</del>");if(J=J.replace(/!\[([^\]]*)\]\(([^)]+)\)/g,(W,w,z)=>{return`<img src="${U2(z)?F1(z):""}" alt="${F1(w)}" />`}),J=J.replace(/\[([^\]]+)\]\(([^)]+)\)/g,(W,w,z)=>{return`<a href="${U2(z)?F1(z):""}">${w}</a>`}),J=J.replace(/^(?:---|\*\*\*|___)\s*$/gm,"<hr />"),J=J.replace(/^>\s+(.*)$/gm,"<blockquote>$1</blockquote>"),J=J.replace(/<\/blockquote>\n<blockquote>/g,`
|
|
3468
|
+
`),J=J.replace(/^[*\-+]\s+(.*)$/gm,"<li data-ul>$1</li>"),J=J.replace(/(<li data-ul>.*<\/li>\n?)+/g,"<ul>$&</ul>"),J=J.replace(/<\/ul>\n<ul>/g,""),J=J.replace(/^\d+\.\s+(.*)$/gm,"<li data-ol>$1</li>"),J=J.replace(/(<li data-ol>.*<\/li>\n?)+/g,"<ol>$&</ol>"),J=J.replace(/<\/ol>\n<ol>/g,""),J=J.replace(/<li data-ul>/g,"<li>"),J=J.replace(/<li data-ol>/g,"<li>"),Z)J=J.replace(/^\|(.+)\|\s*\n\|[-:\s|]+\|\s*\n((?:\|.+\|\s*\n)*)/gm,(W,w,z)=>{let j=`<tr>${w.split("|").map((H)=>H.trim()).filter(Boolean).map((H)=>`<th>${F1(H)}</th>`).join("")}</tr>`,_=z.trim().split(`
|
|
3469
|
+
`).map((H)=>{return`<tr>${H.split("|").map((L)=>L.trim()).filter(Boolean).map((L)=>`<td>${F1(L)}</td>`).join("")}</tr>`}).join(`
|
|
3469
3470
|
`);return`<table>
|
|
3470
3471
|
<thead>
|
|
3471
3472
|
${j}
|
|
@@ -3480,7 +3481,7 @@ ${_}
|
|
|
3480
3481
|
`:`
|
|
3481
3482
|
`)}</p>`);if(J=q.join(`
|
|
3482
3483
|
`),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?W1.filter((J)=>!$.includes(J)):W1;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
|
|
3484
|
+
`);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?W1.filter((J)=>!$.includes(J)):W1;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 d$(X){if(!X)return!1;return fU.some(($)=>new RegExp(`\\b${$}\\s*(?:<[^>]*>)?\\s*\\(`).test(X))}function m$(X){if(!X)return!1;let $=O2(X);if(gU.some((Z)=>Z.test($)))return!0;return d$($)}function z2(X){if(!X)return!1;return hU.test(O2(X))||m$(X)}function j2(X){return uU.includes(X.toLowerCase())}function H2(){return`{${B2.map((X)=>`'${X}':1`).join(",")}}`}function O2(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 W1,w2,xU,fU,gU,hU,uU,B2,dU,_2;var a0=E(()=>{W1=["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"],w2=["onMount","onDestroy"];xU=["defineEmits","defineExpose","definePageMeta","defineProps","defineSlots","withDefaults"],fU=W1.filter((X)=>!xU.includes(X));gU=[/@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/],hU=/\s@[a-z][\w.:-]*\s*=/i;uU=["if","else-if","elseif","else","for","show","key","text","html","model","ref"];B2=["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"],dU=["x-init","x-transition","x-effect","x-on"],_2=[...B2,...dU]});function V2(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(mU.has(Y))$.systemKeys.push(Y);else if(Y in A2)$.mouse=Y;else if(Y in F2||/^[a-z]$/.test(Y))$.keys.push(F2[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 R2(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,O=_.split("."),L=O[0];if(!L2.has(L))continue;w.push({attribute:`@${_}`,event:L,handler:H,modifiers:V2(O.slice(1)),elementId:W})}let j=/@([a-z][a-z0-9.]*)\s*=\s*'([^']*)'/gi;while((B=j.exec(q))!==null){let[,_,H]=B,O=_.split("."),L=O[0];if(!L2.has(L))continue;w.push({attribute:`@${_}`,event:L,handler:H,modifiers:V2(O.slice(1)),elementId:W})}if(w.length>0)$.push({originalTag:G,elementId:W,events:w,startIndex:K,endIndex:U})}return $}function lU(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=A2[Z.mouse];$.push(`if ($event.button !== ${Y}) return`)}if(Z.prevent)$.push("$event.preventDefault()");if(Z.stop)$.push("$event.stopPropagation()");return $.join("; ")}function cU(X,$){let Z=X;if($.debounce!==null)Z=`__stx_debounce(() => { ${Z} }, ${$.debounce})`;else if($.throttle!==null)Z=`__stx_throttle(() => { ${Z} }, ${$.throttle})`;return Z}function l$(X){let $=X.trim();if(!/^[A-Za-z_$][A-Za-z0-9_$]*$/.test($))return X;return`if (typeof ${$} === 'function' && !${$}._isSignal) ${$}($event);`}function pU(X){let{modifiers:$}=X,Z=X.elementId.replace(/\\/g,"\\\\").replace(/'/g,"\\'"),Y=lU(X),J=cU(l$(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
3485
|
(function() {
|
|
3485
3486
|
var $el = document.getElementById('${Z}');
|
|
3486
3487
|
if (!$el) return;
|
|
@@ -3534,7 +3535,7 @@ else {
|
|
|
3534
3535
|
__stx_runHandler('${q}', $event, $el);
|
|
3535
3536
|
}
|
|
3536
3537
|
}${Q});
|
|
3537
|
-
})();`}function
|
|
3538
|
+
})();`}function c$(X){if(X.length===0)return"";return`
|
|
3538
3539
|
<script data-stx-events>
|
|
3539
3540
|
(function() {
|
|
3540
3541
|
'use strict';
|
|
@@ -3589,44 +3590,44 @@ else {
|
|
|
3589
3590
|
}
|
|
3590
3591
|
|
|
3591
3592
|
// Event listeners
|
|
3592
|
-
${X.map(
|
|
3593
|
+
${X.map(pU).join(`
|
|
3593
3594
|
`)}
|
|
3594
3595
|
})();
|
|
3595
|
-
</script>`}function
|
|
3596
|
-
`+J.slice(Q);else J+=G;return J}var
|
|
3596
|
+
</script>`}function iU(X){let $=R2(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 N2(X,$,Z){if(m$(X))return X;if($.__stx_sfc_mode){if(/x-data\s*=\s*["']/.test(X))return X;let{template:q,bindings:K}=iU(X),U=$.__stx_event_bindings||[];return $.__stx_event_bindings=[...U,...K],q}let Y=R2(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=c$(Y.flatMap((q)=>q.events)),Q=J.lastIndexOf("</body>");if(Q!==-1)J=J.slice(0,Q)+G+`
|
|
3597
|
+
`+J.slice(Q);else J+=G;return J}var L2,F2,mU,A2;var p$=E(()=>{a0();L2=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"]),F2={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"},mU=new Set(["ctrl","alt","shift","meta"]),A2={left:0,middle:1,right:2}});function u0(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
3598
|
`});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
|
-
`}),X}function
|
|
3599
|
+
`}),X}function HX(X){return X.replace(/^import\s+[^'"]*?from\s*['"][^'"]+['"]\s*;?[ \t]*$/gm,"").replace(/^import\s+['"][^'"]+['"]\s*;?[ \t]*$/gm,"")}function nU(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 rU(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=OX(X,Z+2),Z<X.length)Z++;continue}Z++}return X.length}function OX(X,$){let Z=1,Y=$;while(Y<X.length){let J=X[Y];if(J==="\\"){Y+=2;continue}if(J==='"'||J==="'"){Y=nU(X,Y);continue}if(J==="`"){Y=rU(X,Y);continue}if(J==="/"&&X[Y+1]==="/"){while(Y<X.length&&X[Y]!==`
|
|
3599
3600
|
`)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 i0(X){let $="",Z=0;while(Z<X.length){let Y=X.slice(Z,Z+2);if(Y==="//"){while(Z<X.length&&X[Z]!==`
|
|
3600
3601
|
`)$+=" ",Z++;continue}if(Y==="/*"){while(Z<X.length&&X.slice(Z,Z+2)!=="*/")$+=X[Z]===`
|
|
3601
3602
|
`?`
|
|
3602
3603
|
`:" ",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
3604
|
`?`
|
|
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=
|
|
3605
|
+
`:" ",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=OX(X,G);if($+=" ",$+=i0(X.slice(G,Q)),Q<X.length)$+=" ";Z=Q+1;continue}$+=X[Z]===`
|
|
3605
3606
|
`?`
|
|
3606
|
-
`:" ",Z++}$+=" ",Z++;continue}$+=J,Z++}return $}function
|
|
3607
|
+
`:" ",Z++}$+=" ",Z++;continue}$+=J,Z++}return $}function oU(){let X=globalThis;return X[T2]??=new Map,X[T2]}function a(X,$){let Z=oU(),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 T2;var B7=E(()=>{T2=Symbol.for("stx.lazy-module-promises")});function V5(X){if(!X||X.indexOf("</")===-1)return X;return X.replace(sU,"<\\/$1")}var sU;var i$=E(()=>{sU=/<\/(script)/gi});import aU from"process";function v0(X="STX_PUBLIC_"){let $={},Z={};for(let[Y,J]of Object.entries(aU.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 V1=()=>{};function tU(X){if(!X||typeof X!=="object")return!1;let $=X;return typeof $.message==="string"&&($.name==="BuildMessage"||$.name==="ResolveMessage"||("position"in $))}function eU(X){if(X&&typeof X==="object"&&Array.isArray(X.errors))return X.errors;return[X]}function n$(X,$){let Z=[];for(let Y of eU(X)){if(tU(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 M2(X,$){return n$(X,$).map((Z)=>{let Y=Z.file?`${Z.file}${Z.line?`:${Z.line}${Z.column?`:${Z.column}`:""}`:""}`:"",J=Z.lineText?`
|
|
3607
3608
|
${Z.lineText.trim()}`:"";return Y?`${Y}: ${Z.message}${J}`:`${Z.message}${J}`}).join(`
|
|
3608
|
-
`)}var
|
|
3609
|
-
export { ${B.join(", ")} }`:"";await Bun.write(W,X+O),
|
|
3610
|
-
`),
|
|
3609
|
+
`)}var _7={};o(_7,{shouldLogBundlerDiagnostics:()=>D2,setBundlerFallbackMode:()=>YW,resolveBundlerFallback:()=>b2,recordBundleFailure:()=>y2,queueClientBundleBuild:()=>S2,hasUserImports:()=>JW,getBundleFailures:()=>$W,clearBundleFailures:()=>ZW,bundleClientScript:()=>QW});import H0 from"path";import x0 from"fs";function D2(X=process.env){return X.STX_DEBUG==="true"||X.STX_DEBUG==="1"}function u1(...X){if(D2())console.log("[stx:bundler]",...X)}function y2(X,$,Z){s$.push({filePath:X||"<inline>",message:$,details:Z})}function $W(){return s$.slice()}function ZW(){s$.length=0}function YW(X){o$=X}function b2(){if(o$)return o$;try{let X=O7.strict;return typeof X==="object"&&X!==null?X.bundlerFallback??"warn":"warn"}catch{return"warn"}}function JW(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(!k2.some((Q)=>Q.test(J)))return u1("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(!k2.some((Q)=>Q.test(J)))return u1("detected side-effect import:",J),!0}return!1}function GW(X,$,Z,Y){let J=(G,Q)=>{let q=G===Z?$:H0.dirname(G),K=H0.resolve(q,Q),U=[K,`${K}.ts`,`${K}.tsx`,`${K}.js`,`${K}.mjs`,`${K}.jsx`,H0.join(K,"index.ts"),H0.join(K,"index.tsx"),H0.join(K,"index.js"),H0.join(K,"index.mjs")];for(let W of U)try{if(x0.existsSync(W)&&x0.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(x0.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=H0.resolve(X,Q.path.slice(2)),K=[q,`${q}.ts`,`${q}.tsx`,`${q}.js`,`${q}.mjs`,`${q}.jsx`,H0.join(q,"index.ts"),H0.join(q,"index.tsx"),H0.join(q,"index.js"),H0.join(q,"index.mjs")];for(let U of K)if(x0.existsSync(U)&&x0.statSync(U,{throwIfNoEntry:!1})?.isFile())return u1(`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=H0.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:x0.readFileSync(Q.path,"utf8"),loader:K}})}}}function S2(X){let $=globalThis,Y=($[I2]??Promise.resolve()).then(X,X);return $[I2]=Y.then(()=>{return},()=>{return}),Y}async function QW(X,$,Z={}){let Y=Z.projectRoot||process.cwd(),J=Z.minify??!1,G=Z.cacheDir||$7(Y,"bundle-cache"),Q=new Bun.CryptoHasher("md5");Q.update(`${XW}\x00${X}\x00${$}`);let q=Q.digest("hex").slice(0,12),K=H0.join(G,`${q}.js`),U=H0.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!==E2||!Array.isArray(_.files))j=!1;for(let H of Array.isArray(_.files)?_.files:[])try{if(x0.statSync(H.path).mtimeMs!==H.mtimeMs){j=!1;break}}catch{j=!1;break}}catch{j=!1}if(j)return u1("cache hit:",q),await W.text();u1("cache invalidated by dep change:",q)}let w=r$.get(q);if(w)return await w;let z=S2(()=>qW(X,$,{projectRoot:Y,minify:J,cacheDir:G,hash:q,cachePath:K,depsPath:U}));r$.set(q,z);try{return await z}finally{r$.delete(q)}}async function qW(X,$,Z){let{projectRoot:Y,minify:J,cacheDir:G,hash:Q,cachePath:q,depsPath:K}=Z,U=$7(Y,"bundle-tmp"),W=H0.join(U,`${Q}.ts`),w=H0.join(U,"out",Q);x0.mkdirSync(U,{recursive:!0}),x0.mkdirSync(w,{recursive:!0});let z=H0.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 O=B.length>0?`
|
|
3610
|
+
export { ${B.join(", ")} }`:"";await Bun.write(W,X+O),u1("bundling:",Q,"from:",H0.basename($));let L=new Set;try{let F=await Bun.build({entrypoints:[W],outdir:w,target:"browser",format:"esm",minify:J,plugins:[GW(Y,z,W,L)],define:{"process.env.NODE_ENV":J?'"production"':'"development"',...v0()},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 b=C.trim().match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);if(b){A.push([b[2],b[1]]);continue}let y=C.trim();if(/^[A-Za-z_$][\w$]*$/.test(y))A.push([y,y])}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 N=`__stxBundle_${Q}`,T=A.map(([I,C])=>`${JSON.stringify(I)}: ${C}`).join(", "),k=A.map(([I])=>`var ${I} = undefined;`).join(`
|
|
3611
|
+
`),M=A.map(([I])=>`${I} = ${N}[${JSON.stringify(I)}];`).join(`
|
|
3611
3612
|
`);if(V=`${R.join(`
|
|
3612
3613
|
`)}
|
|
3613
|
-
${
|
|
3614
|
-
var ${
|
|
3614
|
+
${k}
|
|
3615
|
+
var ${N} = (function() {
|
|
3615
3616
|
${V}
|
|
3616
|
-
return { ${
|
|
3617
|
+
return { ${T} };
|
|
3617
3618
|
})();
|
|
3618
|
-
${
|
|
3619
|
+
${M}`.trim(),u1("bundled:",Q,"output:",V.length,"bytes"),B.length>0&&A.length===0)return console.warn(`[stx:bundler] dropped every binding for ${H0.basename($)} (${Q}); serving the unbundled source and not caching this result`),X;x0.mkdirSync(G,{recursive:!0}),await Bun.write(q,V);let D=Array.from(L).map((I)=>{try{return{path:I,mtimeMs:x0.statSync(I).mtimeMs}}catch{return null}}).filter((I)=>I!==null);return await Bun.write(K,JSON.stringify({metadataVersion:E2,files:D})),V}catch(F){let V=n$(F,$||void 0),A=M2(F,$||void 0);if(console.warn(`[stx:bundler] error: ${A}`),y2($||"",A,V),b2()==="error")throw F;return X}finally{try{x0.rmSync(W,{force:!0}),x0.rmSync(w,{recursive:!0,force:!0})}catch{}}}var XW=5,E2=1,s$,o$,k2,r$,I2;var H7=E(()=>{V1();qX();A1();s$=[];k2=[/^stx$/,/^@stacksjs\/stx$/,/^@stores$/,/^stx\/stores$/,/^@composables$/];r$=new Map,I2=Symbol.for("stx.client-bundle-build-queue")});var u2={};o(u2,{stripCommentsAndLiterals:()=>i0,renderVendorStyleTags:()=>FX,processClientScript:()=>V7,injectBrowserCoreAutoImports:()=>A5,generateServerDataBridge:()=>VX,generateBrowserAutoImportDestructuring:()=>HW,generateAutoImportDestructuring:()=>a$,findInterpolationEnd:()=>OX,extractBridgeData:()=>F7,extractAndStripCssImports:()=>LX,STX_AUTO_IMPORTS:()=>x2});import d1 from"path";import L7 from"fs";function UW(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 WW(X,$){let Z=$;while(!0){let Y=d1.join(Z,"node_modules",X,"package.json");if(L7.existsSync(Y))return d1.dirname(Y);let J=d1.dirname(Z);if(J===Z)return null;Z=J}}function wW(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 zW(X,$){let Z=UW(X);if(!Z||!Z.subpath)return null;let Y=WW(Z.pkg,$);if(!Y)return null;let J;try{J=JSON.parse(L7.readFileSync(d1.join(Y,"package.json"),"utf8"))}catch{return null}let G=`.${Z.subpath}`,Q=wW(J.exports,G);if(!Q)return null;let q=d1.resolve(Y,Q);return L7.existsSync(q)?q:null}function LX(X,$){let Z=$.filePath?d1.dirname($.filePath):$.projectRoot||process.cwd(),Y=$.projectRoot||process.cwd(),J=new Set,G=[];return{code:X.replace(KW,(q,K)=>{let U;try{if(K.startsWith("./")||K.startsWith("../")||K.startsWith("/")){if(U=K.startsWith("/")?K:d1.resolve(Z,K),!L7.existsSync(U))throw Error(`file not found: ${U}`)}else{let W=null;try{W=Bun.resolveSync(K,Y)}catch{W=zW(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=L7.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 jW(X){return X.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function FX(X){if(X.length===0)return"";return`${X.map(($)=>{return`<style data-stx-vendor="${jW($.source)}" data-stx-layer="vendor">
|
|
3619
3620
|
@layer vendor {
|
|
3620
3621
|
${$.contents}
|
|
3621
3622
|
}
|
|
3622
3623
|
</style>`}).join(`
|
|
3623
3624
|
`)}
|
|
3624
|
-
`}function A5(X){let $=i0(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=
|
|
3625
|
+
`}function A5(X){let $=i0(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=f2.filter((q)=>{if(Z.has(q)||Y.has(q))return!1;return new RegExp(`\\b${q}\\s*\\(`).test($)}),G=g2($).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
3626
|
`)}
|
|
3626
|
-
${X}`,imports:J,models:G}}function
|
|
3627
|
+
${X}`,imports:J,models:G}}function g2(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(!BW.has(Y[1]))$.add(Y[1]);return Array.from($)}function _W(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 h2(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],O=_[2]||H;if(J.add(H),J.add(O),W==="stx"||W==="@stacksjs/stx")$.add(H);else Z.add(H);if(O!==H)w.push(`${O} = ${H}`)}let z=w.length>0?`var ${w.join(", ")}; /* [auto-import processed] */`:"// [auto-import processed]";Y=Y.replace(Q[0],z)}let q=_W(Y);for(let U of x2){if(J.has(U)||q.has(U))continue;if(new RegExp(`\\b${U}\\s*(?:<[^>]*>)?\\s*\\(`,"g").test(Y))$.add(U)}for(let U of f2){if(J.has(U)||q.has(U))continue;if(new RegExp(`\\b${U}\\b`,"g").test(Y))Z.add(U)}let K=g2(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 a$(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
3628
|
${Z.join(`
|
|
3628
3629
|
`)}
|
|
3629
|
-
${
|
|
3630
|
+
${OW(X,$)}`;return""}function HW(X,$=[]){let{browserImports:Z}=h2(X),Y=new Set($);return a$([],Z.filter((J)=>!Y.has(J)))}function OW(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
3631
|
[${Z.join(", ")}].forEach(function (e) {
|
|
3631
3632
|
if (e[1] !== 'undefined') return;
|
|
3632
3633
|
console.error(
|
|
@@ -3635,10 +3636,10 @@ ${KW(X,$)}`;return""}function qW(X,$=[]){let{browserImports:Z}=E2(X),Y=new Set($
|
|
|
3635
3636
|
+ 'or it should be imported from a relative path so the bundler includes it.'
|
|
3636
3637
|
);
|
|
3637
3638
|
});
|
|
3638
|
-
`}function
|
|
3639
|
+
`}function F7(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 C2(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 LW(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(C2(Z[1],!0).has($))return!0;for(let Z of X.matchAll(/(?:const|let|var)\s*\[([^\]]*)\]/g))if(C2(Z[1],!1).has($))return!0;return!1}function FW(X,$){return new RegExp(`(?<![.#\\w$])${$}(?![\\w$])`).test(X)}function AW(X,$){let Z=VW.test(X),Y=$.length>32768;if(!Z&&!Y)return;if(P2.has(X))return;if(P2.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 VX(X,$){if(!$)return"";let Z=i0(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&&!FW(Z,G))continue;if(LW(X,G))continue;let q;try{q=JSON.stringify(Q)}catch{continue}if(q===void 0)continue;AW(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
3640
|
${J.join(`
|
|
3640
3641
|
`)}
|
|
3641
|
-
`}function
|
|
3642
|
+
`}function NW(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=RW[X.mouse];$.push(`if ($event.button !== ${Z}) return`)}if(X.prevent)$.push("$event.preventDefault()");if(X.stop)$.push("$event.stopPropagation()");return $.join("; ")}function TW(X,$){let{elementId:Z,event:Y,modifiers:J}=X,G=l$(X.handler),Q=NW(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) {
|
|
3642
3643
|
$el.dispatchEvent(new CustomEvent(name, { detail: detail, bubbles: true, cancelable: true }))
|
|
3643
3644
|
};`;function z(B){if(/\$emit\s*\(/.test(B))return`${w}
|
|
3644
3645
|
${B}`;return`var scope = $el.closest('[data-stx-scope]');
|
|
@@ -3681,25 +3682,25 @@ else {
|
|
|
3681
3682
|
else {
|
|
3682
3683
|
${G}
|
|
3683
3684
|
}
|
|
3684
|
-
}${K})`}function
|
|
3685
|
+
}${K})`}function MW(X){if(X.length===0)return"";return`
|
|
3685
3686
|
// STX: auto-generated event bindings
|
|
3686
|
-
${X.map((Z,Y)=>
|
|
3687
|
-
`)}`}function
|
|
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
|
|
3687
|
+
${X.map((Z,Y)=>TW(Z,Y)).join(`
|
|
3688
|
+
`)}`}function v2(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]!==`
|
|
3689
|
+
`)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 IW(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(!kW.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 V7(X,$={}){let Z=X,Y="",J=!1,G=[],Q=LX(Z,{filePath:$.filePath,projectRoot:$.projectRoot});Z=Q.code;let q=FX(Q.styles),K=A5(Z);Z=K.code,G=[...K.imports,...K.models];let{hasUserImports:U,bundleClientScript:W}=await a("stx/client-script-bundler",()=>Promise.resolve().then(() => (H7(),_7)));if(U(Z))Z=await W(Z,$.filePath||"",{projectRoot:$.projectRoot,minify:$.production}),J=!0;if($.autoImports!==!1){let L=h2(Z);Z=L.code,Y=a$(L.stxImports,L.browserImports.filter((F)=>!G.includes(F)))}if(Y=`${VX(Z,$.serverData)}${Y}`,Z=u0(Z),!J&&m1($.attrs||""))Z=l1(Z);let w=MW($.eventBindings||[]),z=($.attrs||"").trim();if(/\btype\s*=\s*["']module["']/i.test(z)){let L=z.replace(/\btype\s*=\s*["']module["']/i,"").trim(),F=`type="module" data-stx-scoped${L?` ${L}`:""}`;return`${q}<script ${F}>
|
|
3689
3690
|
${V5(`${Y}${Z}
|
|
3690
3691
|
${w}`)}
|
|
3691
|
-
</script>`}let j=
|
|
3692
|
+
</script>`}let j=d$(X),_=/function __stx_setup_/.test(Z),H=/\bstx\.mount\s*\(|\bstx\.mountEl\s*\(/.test(X);function O(L){let F=L.length>0?`
|
|
3692
3693
|
return { ${L.join(", ")} };`:"";return`${q}<script data-stx-scoped data-stx-run="always">
|
|
3693
3694
|
window.stx.mount(function() {
|
|
3694
3695
|
'use strict';
|
|
3695
3696
|
${V5(`${Y}${Z}
|
|
3696
3697
|
${w}${F}`)}
|
|
3697
|
-
})</script>`}if(!H&&!_){if(j)return O(
|
|
3698
|
+
})</script>`}if(!H&&!_){if(j)return O(v2(X));if($.templateContent){let L=v2(X);if(L.length>0){let F=IW($.templateContent);if(L.some((A)=>F.has(A)))return O(L)}}}return`${q}<script data-stx-scoped data-stx-run="always">
|
|
3698
3699
|
;(function() {
|
|
3699
3700
|
'use strict';
|
|
3700
3701
|
${V5(`${Y}${Z}
|
|
3701
3702
|
${w}`)}
|
|
3702
|
-
})()</script>`}var
|
|
3703
|
+
})()</script>`}var KW,x2,f2,BW,VW,P2,RW,kW;var A7=E(()=>{p$();R0();B7();a0();i$();KW=/^[ \t]*import\s+['"]([^'"]+?\.css)(\?[^'"]*)?['"]\s*;?\s*$/gm;x2=W1,f2=["browserQuery","BrowserQueryBuilder","BrowserQueryError","browserAuth","configureBrowser","getBrowserConfig","createBrowserDb","createBrowserModel","isBrowser","debounce","throttle","retry","sleep","wait","delay","waitUntil","waitWhile","lazy","clamp","rand","readableSize","useActiveElement","useDocumentVisibility","useIntervalFn","useTimeoutFn"];BW=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"]);VW=/token|secret|passw|apikey|api_key|privatekey|private_key|credential|webhook|bearer|jwt|signature/i,P2=new Set;RW={left:0,middle:1,right:2};kW=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 EW}from"crypto";function d2(X){let $=X[AX];return $ instanceof Map?$:null}function m2(X){X[AX]=new Map}function l2(X,$){let Z=d2(X);if(!Z)return null;let Y=EW("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 c2(X,$){let Z=d2($);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
3704
|
(function() {
|
|
3704
3705
|
const factories = window.__stxComponentFactories = window.__stxComponentFactories || {};
|
|
3705
3706
|
${J.map(([K,U])=>` try { factories[${JSON.stringify(K)}] = factories[${JSON.stringify(K)}] || ${U.body}; }
|
|
@@ -3708,7 +3709,7 @@ ${J.map(([K,U])=>` try { factories[${JSON.stringify(K)}] = factories[${JSON.str
|
|
|
3708
3709
|
})();
|
|
3709
3710
|
</script>`,q=Y.search(/<script\b(?=[^>]*\bdata-stx-scoped\b)/i);if(q<0)return`${Q}
|
|
3710
3711
|
${Y}`;return`${Y.slice(0,q)}${Q}
|
|
3711
|
-
${Y.slice(q)}`}var
|
|
3712
|
+
${Y.slice(q)}`}var AX="__stx_component_client_factories";var t$=()=>{};function SW(X){let $="",Z=null,Y=!1;for(let J=0;J<X.length;J++){let G=X[J];if(Y){Y=!1;continue}if(G==="\\"&&Z){Y=!0;continue}if(Z){if(Z==="`"&&G==="$"&&J+1<X.length&&X[J+1]==="{"){let Q=1;J+=2;while(J<X.length&&Q>0){if(X[J]==="{")Q++;else if(X[J]==="}")Q--;if(Q>0)$+=X[J],J++}continue}if(G===Z)Z=null;continue}if(G==='"'||G==="'"||G==="`"){Z=G;continue}$+=G}return $}function CW(X,$){let Z=/[$A-Z_a-z][$\w]*/g,Y;while((Y=Z.exec(X))!==null){let J=Y[0],G=X[Y.index-1];if(yW.has(J))throw Error(`Potentially unsafe expression (matched /\\b${J}\\b/; identifier ${J}): ${$}`);if(G==="."&&r2.has(J))throw Error(`Potentially unsafe expression (matched /.${J}/; property ${J}): ${$}`)}}function PW(X){let $=/\[\s*(['"])(.*?)\1\s*\]/g,Z;while((Z=$.exec(X))!==null){let Y=Z[2];if(!r2.has(Y))continue;let J=X.slice(0,Z.index).match(/\S(?=\s*$)/)?.[0],G=X.slice(Z.index+Z[0].length).match(/^\s*(\S)/)?.[1];if(!((J==="{"||J===",")&&G===":"))throw Error(`Potentially unsafe expression (bracket key ${Z[2]}): ${X}`)}}function RX(X){let $=X.trim(),Z=SW($);CW(Z,$),PW($);for(let Y of n2)if(Y.test(Z))throw Error(`Potentially unsafe expression (matched /${Y.source}/): ${$}`);if(!i2.allowBracketNotation&&bW.test($))throw Error(`Bracket notation with strings not allowed: ${$}. Enable with configureSafeEvaluator({ allowBracketNotation: true })`);return $}function vW(X){let $={};$.Math=Math,$.JSON=JSON,$.Date=Date,$.String=String,$.Number=Number,$.Boolean=Boolean,$.Array=Array,$.parseInt=Number.parseInt,$.parseFloat=Number.parseFloat,$.isNaN=Number.isNaN,$.isFinite=Number.isFinite,$.encodeURIComponent=encodeURIComponent,$.decodeURIComponent=decodeURIComponent;for(let[Z,Y]of Object.entries(X)){if(Z.startsWith("__")||n2.some((J)=>J.test(Z)))continue;if(Y&&typeof Y==="object"&&!Array.isArray(Y))$[Z]=e$(Y);else $[Z]=Y}return $}function e$(X,$=0){if($>=i2.maxSanitizeDepth)return"[Object too deep]";if(X===null||typeof X!=="object")return X;if(Array.isArray(X))return X.map((Y)=>e$(Y,$+1));if(X instanceof Date||X instanceof RegExp||X instanceof Map||X instanceof Set||X instanceof Error)return X;let Z={};for(let[Y,J]of Object.entries(X)){if(Y.startsWith("__")||Y==="constructor"||Y==="prototype")continue;if(J&&typeof J==="object")Z[Y]=e$(J,$+1);else Z[Y]=J}return Z}function Z0(X,$){try{let Z=vW($),Y=Object.keys(Z),J=Object.values(Z);return G0(X,Y)(...J)}catch{return}}function J0(X){try{return RX(X),!0}catch{return!1}}function L0(X,$){try{let Z=Z0(X,$);if(Z&&typeof Z==="object"&&!Array.isArray(Z))return Z;return{}}catch{return{}}}function G0(X,$){let Z=RX(X),Y=/^[A-Za-z_$][\w$]*$/,J=[],G=[];for(let U=0;U<$.length;U++){let W=$[U];if(!Y.test(W))continue;if(o2.has(W))continue;J.push(U),G.push(W)}let Q=(U)=>Function(...G,...U,`
|
|
3712
3713
|
'use strict';
|
|
3713
3714
|
try {
|
|
3714
3715
|
return ${Z};
|
|
@@ -3719,7 +3720,7 @@ catch (e) {
|
|
|
3719
3720
|
}
|
|
3720
3721
|
throw e;
|
|
3721
3722
|
}
|
|
3722
|
-
`),q=Q([]);if(G.length===$.length)return P2(q,G,Q);return P2((...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 P2(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)||g2.has(j))return;K.add(j),q.push(j),Q=Z(q),Y?.(q)}return}}function AX(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 VW,v2,x2,AW,f2,RW,g2;var L0=E(()=>{VW={maxSanitizeDepth:10,allowBracketNotation:!1},v2={...VW},x2=[/\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/],AW=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"]),f2=new Set(["__proto__","constructor","prototype"]),RW=/[\w)\]]\s*\[\s*['"]/;g2=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 RX(X,$){let Z=IW++,Y=`<!--__STX_${X.toUpperCase()}_${Z}__-->`;return EW.set(Y,{type:X,expression:$}),Y}var IW=0,EW;var h2=E(()=>{EW=new Map});function c2(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 c2(X,$,u2,d2)}function R5(X,$){return c2(X,$,m2,l2)}function A7(X,$){if(!X.startsWith("<!--",$))return-1;let Z=X.indexOf("-->",$+4);if(Z===-1)return-1;return Z+3}function DW(X,$){if(X.startsWith("<!--",$)){let Z=A7(X,$);return Z===-1?X.length:Z}for(let[Z,Y]of[[u2,d2],[m2,l2]]){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 o$(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=DW(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=o$(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 R7(X,$){if($.length===0)return X;return X.replace(/\x00STX_SCRIPT_(\d+)\x00/g,(Z,Y)=>$[+Y]??"")}var u2,d2,m2,l2;var l1=E(()=>{u2=/<script\b[^>]*>/iy,d2=/<\/script\s*>/ig,m2=/<style\b[^>]*>/iy,l2=/<\/style\s*>/ig});var a2={};o(a2,{usesSignalsInScript:()=>w1,unescapeHtml:()=>gW,registerFilters:()=>bW,registerFilter:()=>n2,processExpressions:()=>T1,interpolateScriptsInTemplate:()=>PW,interpolateScriptExpressions:()=>TX,interpolateScriptAttributes:()=>o2,getAllFilters:()=>r2,evaluateExpression:()=>f0,escapeHtml:()=>t0,defaultFilters:()=>N7,clearCustomFilters:()=>SW,applyFilters:()=>s2});function yW(X){let $=p2.get(X);if(!$){let Z=X.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");$=new RegExp(`:${Z}(?!\\w)`,"g"),p2.set(X,$)}return $.lastIndex=0,$}function n2(X,$){if(X in N7)console.warn(`Filter "${X}" already exists as a built-in filter. Custom filter will take precedence.`);T7[X]=$}function bW(X){for(let[$,Z]of Object.entries(X))n2($,Z)}function r2(){return{...N7,...T7}}function SW(){for(let X of Object.keys(T7))delete T7[X]}function t0(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 i2(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 CW(X,$){let Z=$.__stx_serverDeclared;if(!Z||Z.size===0)return!1;let Y=i0(X);for(let J of Z)if(new RegExp(`(?<![.#\\w$])${J}(?![\\w$])`).test(Y))return!0;return!1}function TX(X,$){let Z=X;return Z=Z.replace(/\{!!([\s\S]*?)!!\}/g,(Y,J)=>{try{let G=f0(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=f0(J,$);if(Q===void 0)return Y;return JSON.stringify(Q).replace(/</g,"\\u003c")}catch{return Y}}),Z}function o2(X,$){if(!X.includes("{"))return X;let Z=X;return Z=Z.replace(/\{!!([\s\S]*?)!!\}/g,(Y,J)=>{try{let G=f0(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=f0(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 PW(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${o2(W,$)}>`;if(/\bsrc\s*=/.test(W)||/\btype\s*=\s*["']application\/json["']/.test(W))return B+w+Q.slice(U);return B+TX(w,$)+Q.slice(U)});return R7(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:O}=$1(w,z,(L,F)=>j(_+F));return B.push(...O),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=f0(z,$);return j!==void 0&&j!==null?String(j):""}catch(j){let _=j instanceof Error?j.message:String(j);return w0("Expression",`Error evaluating: {{{ ${z.trim()}}}}: ${_}`,Z,X,B,w)}}),Y=Y.replace(/\{!!([\s\S]*?)!!\}/g,(w,z,B)=>{try{let j=f0(z,$);if(j===void 0&&$.__stx_buildMode==="compile")return RX("raw",z.trim());return j!==void 0&&j!==null?String(j):""}catch(j){if($.__stx_buildMode==="compile")return RX("raw",z.trim());let _=j instanceof Error?j.message:String(j);return w0("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_$]*)/,L=j.match(H)?.[1],F=L&&((L in $)||_.includes(L)),V=Boolean(L&&U.has(L)),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 k=f0(z,$);if(V)return w;if(K&&!i2(j,$))return w;if($.__stx_buildMode==="compile"&&!K&&(k===void 0||CW(j,$)))return RX("expr",j);return k!==void 0&&k!==null?t0(String(k)):""}catch(k){if(V)return w;if(K&&!i2(j,$))return w;if(T)return w;let M=k instanceof Error?k.message:String(k);return w0("Expression",`Error evaluating: {{ ${j} }}: ${M}`,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 s2(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=T7[Q]||N7[Q];if(!q)throw Error(`Filter not found: ${Q}. Available filters: ${Object.keys(r2()).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=[f0(`(${w})`,Z,!0)];else{let z=[],B="",j=null,_=0,H=0,O=0,L=!1;for(let F=0;F<w.length;F++){let V=w[F];if(L){B+=V,L=!1;continue}if(V==="\\"){B+=V,L=!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==="{")O++;else if(V==="}")O--;if(V===","&&_===0&&H===0&&O===0){z.push(B),B="";continue}B+=V}if(B)z.push(B);K=z.map((F)=>{let V=F.trim();return f0(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 vW(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 f0(X,$,Z=!1){try{let Y=X.trim(),J=vW(Y);if(J>0){let G=Y.substring(0,J).trim(),Q=Y.substring(J+1).trim(),q=f0(G,$,!0);return s2(q,Q,$)}if(!J0(Y)){if(!Z)console.warn(`Potentially unsafe expression detected, using safe evaluator: ${Y}`);return Z0(Y,$)}try{let G=Object.keys($),Q=Object.values($);return G0(Y,G)(...Q)}catch{return Z0(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=xW(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 xW(X,$){let Z=null;for(let J of $){if(J===X)continue;let G=fW(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 fW(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 gW(X){if(!X)return"";return X.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/'/g,"'").replace(/&/g,"&")}var T7,p2,N7;var Z1=E(()=>{L0();A0();h2();l1();T7={},p2=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 t0(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(yW(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 N5(X,$){if($?.includes("g"))return new RegExp(X,$);let Z=`${X}:${$||""}`;if(!T5.has(Z)){if(T5.size>=hW){let Y=T5.keys().next().value;if(Y)T5.delete(Y)}T5.set(Z,new RegExp(X,$))}return T5.get(Z)}class t2{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
|
+
`),q=Q([]);if(G.length===$.length)return p2(q,G,Q);return p2((...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 p2(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)||o2.has(j))return;K.add(j),q.push(j),Q=Z(q),Y?.(q)}return}}function NX(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 DW,i2,n2,yW,r2,bW,o2;var F0=E(()=>{DW={maxSanitizeDepth:10,allowBracketNotation:!1},i2={...DW},n2=[/\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/],yW=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"]),r2=new Set(["__proto__","constructor","prototype"]),bW=/[\w)\]]\s*\[\s*['"]/;o2=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 TX(X,$){let Z=xW++,Y=`<!--__STX_${X.toUpperCase()}_${Z}__-->`;return fW.set(Y,{type:X,expression:$}),Y}var xW=0,fW;var s2=E(()=>{fW=new Map});function $Z(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 R1(X,$){return $Z(X,$,a2,t2)}function R5(X,$){return $Z(X,$,e2,XZ)}function R7(X,$){if(!X.startsWith("<!--",$))return-1;let Z=X.indexOf("-->",$+4);if(Z===-1)return-1;return Z+3}function gW(X,$){if(X.startsWith("<!--",$)){let Z=R7(X,$);return Z===-1?X.length:Z}for(let[Z,Y]of[[a2,t2],[e2,XZ]]){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 MX(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=gW(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=MX(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 N1(X){let{output:$,tokens:Z}=$1(X,R1,(Y,J)=>`\x00STX_SCRIPT_${J}\x00`);return{output:$,scripts:Z}}function N7(X,$){if($.length===0)return X;return X.replace(/\x00STX_SCRIPT_(\d+)\x00/g,(Z,Y)=>$[+Y]??"")}var a2,t2,e2,XZ;var c1=E(()=>{a2=/<script\b[^>]*>/iy,t2=/<\/script\s*>/ig,e2=/<style\b[^>]*>/iy,XZ=/<\/style\s*>/ig});var KZ={};o(KZ,{usesSignalsInScript:()=>w1,unescapeHtml:()=>nW,registerFilters:()=>uW,registerFilter:()=>JZ,processExpressions:()=>T1,interpolateScriptsInTemplate:()=>lW,interpolateScriptExpressions:()=>kX,interpolateScriptAttributes:()=>QZ,getAllFilters:()=>GZ,evaluateExpression:()=>f0,escapeHtml:()=>t0,defaultFilters:()=>M7,clearCustomFilters:()=>dW,applyFilters:()=>qZ});function hW(X){let $=ZZ.get(X);if(!$){let Z=X.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");$=new RegExp(`:${Z}(?!\\w)`,"g"),ZZ.set(X,$)}return $.lastIndex=0,$}function JZ(X,$){if(X in M7)console.warn(`Filter "${X}" already exists as a built-in filter. Custom filter will take precedence.`);T7[X]=$}function uW(X){for(let[$,Z]of Object.entries(X))JZ($,Z)}function GZ(){return{...M7,...T7}}function dW(){for(let X of Object.keys(T7))delete T7[X]}function t0(X){return X.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function w1(X){let{scripts:$}=N1(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 YZ(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 mW(X,$){let Z=$.__stx_serverDeclared;if(!Z||Z.size===0)return!1;let Y=i0(X);for(let J of Z)if(new RegExp(`(?<![.#\\w$])${J}(?![\\w$])`).test(Y))return!0;return!1}function kX(X,$){let Z=X;return Z=Z.replace(/\{!!([\s\S]*?)!!\}/g,(Y,J)=>{try{let G=f0(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=f0(J,$);if(Q===void 0)return Y;return JSON.stringify(Q).replace(/</g,"\\u003c")}catch{return Y}}),Z}function QZ(X,$){if(!X.includes("{"))return X;let Z=X;return Z=Z.replace(/\{!!([\s\S]*?)!!\}/g,(Y,J)=>{try{let G=f0(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=f0(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 lW(X,$,Z={}){let{output:Y,scripts:J}=N1(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${QZ(W,$)}>`;if(/\bsrc\s*=/.test(W)||/\btype\s*=\s*["']application\/json["']/.test(W))return B+w+Q.slice(U);return B+kX(w,$)+Q.slice(U)});return N7(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:O}=$1(w,z,(L,F)=>j(_+F));return B.push(...O),H},Q=[];Y=G(Y,J,Q,(w)=>`<!--__STX_STYLE_${w}__-->`);let q=[];Y=G(Y,R1,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=f0(z,$);return j!==void 0&&j!==null?String(j):""}catch(j){let _=j instanceof Error?j.message:String(j);return w0("Expression",`Error evaluating: {{{ ${z.trim()}}}}: ${_}`,Z,X,B,w)}}),Y=Y.replace(/\{!!([\s\S]*?)!!\}/g,(w,z,B)=>{try{let j=f0(z,$);if(j===void 0&&$.__stx_buildMode==="compile")return TX("raw",z.trim());return j!==void 0&&j!==null?String(j):""}catch(j){if($.__stx_buildMode==="compile")return TX("raw",z.trim());let _=j instanceof Error?j.message:String(j);return w0("Expression",`Error evaluating: {!! ${z.trim()} !!}: ${_}`,Z,X,B,w)}}),Y=G(Y,R1,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_$]*)/,L=j.match(H)?.[1],F=L&&((L in $)||_.includes(L)),V=Boolean(L&&U.has(L)),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=f0(z,$);if(V)return w;if(K&&!YZ(j,$))return w;if($.__stx_buildMode==="compile"&&!K&&(T===void 0||mW(j,$)))return TX("expr",j);return T!==void 0&&T!==null?t0(String(T)):""}catch(T){if(V)return w;if(K&&!YZ(j,$))return w;if(N)return w;let k=T instanceof Error?T.message:String(T);return w0("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 qZ(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=T7[Q]||M7[Q];if(!q)throw Error(`Filter not found: ${Q}. Available filters: ${Object.keys(GZ()).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=[f0(`(${w})`,Z,!0)];else{let z=[],B="",j=null,_=0,H=0,O=0,L=!1;for(let F=0;F<w.length;F++){let V=w[F];if(L){B+=V,L=!1;continue}if(V==="\\"){B+=V,L=!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==="{")O++;else if(V==="}")O--;if(V===","&&_===0&&H===0&&O===0){z.push(B),B="";continue}B+=V}if(B)z.push(B);K=z.map((F)=>{let V=F.trim();return f0(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 cW(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 f0(X,$,Z=!1){try{let Y=X.trim(),J=cW(Y);if(J>0){let G=Y.substring(0,J).trim(),Q=Y.substring(J+1).trim(),q=f0(G,$,!0);return qZ(q,Q,$)}if(!J0(Y)){if(!Z)console.warn(`Potentially unsafe expression detected, using safe evaluator: ${Y}`);return Z0(Y,$)}try{let G=Object.keys($),Q=Object.values($);return G0(Y,G)(...Q)}catch{return Z0(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=pW(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 pW(X,$){let Z=null;for(let J of $){if(J===X)continue;let G=iW(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 iW(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 nW(X){if(!X)return"";return X.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/'/g,"'").replace(/&/g,"&")}var T7,ZZ,M7;var Z1=E(()=>{F0();R0();s2();c1();T7={},ZZ=new Map;M7={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 t0(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(hW(K),String(U))}),q},t:(X,$,Z={})=>{return M7.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 p1{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>=rW){let Y=N5.keys().next().value;if(Y)N5.delete(Y)}N5.set(Z,new RegExp(X,$))}return N5.get(Z)}class UZ{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
3724
|
'use strict';
|
|
3724
3725
|
try {
|
|
3725
3726
|
return ${K};
|
|
@@ -3730,34 +3731,34 @@ catch (e) {
|
|
|
3730
3731
|
}
|
|
3731
3732
|
throw e;
|
|
3732
3733
|
}
|
|
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
|
|
3734
|
+
`),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 WZ{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 oW(){if(!X9)X9=new WZ;return X9}var N5,rW=500,GA,X9=null,wZ;var M5=E(()=>{N5=new Map;GA=new UZ;wZ=new Proxy({},{get(X,$){return oW()[$]}})});function zZ(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 jZ(X,$,Z={}){let{prefix:Y="",preserveHost:J=!0,scopeKeyframes:G=!0,scopeCustomProperties:Q=!1}=Z;if(!X.trim())return"";let q=$9(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=BZ(W,$,Y,J,U,Q);K.push(w)}return K.join(`
|
|
3734
3735
|
|
|
3735
|
-
`)}function
|
|
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
|
|
3736
|
+
`)}function $9(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=$9(z);$.push({selector:`@${W} ${w.trim()}`,declarations:B.map((j)=>`${j.selector} { ${j.declarations} }`).join(`
|
|
3737
|
+
`)})}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 BZ(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=$9(`x { ${q} }`.replace(/x \{ /,"").replace(/ \}$/,"")).map((z)=>BZ(z,$,Z,Y,J,G)).join(`
|
|
3737
3738
|
`);return`${Q} {
|
|
3738
3739
|
${w}
|
|
3739
|
-
}`}return`${Q} { ${q} }`}let K=
|
|
3740
|
-
`)}function
|
|
3741
|
-
`,""}),headContent:$.trim()}}function
|
|
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
|
|
3740
|
+
}`}return`${Q} { ${q} }`}let K=sW(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 sW(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=aW(Q,$);if(K)G.push(Z?`${Z} ${K}`:K)}return G.join(", ")}function aW(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 HZ(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 IX(X,$){if(!tW.test(X))return{html:X,hasScoped:!1};let Z=zZ($),Y=`data-v-${Z}`,J=X,G=new RegExp(`<style\\s+([^>]*${Z9}[^>]*)>([\\s\\S]*?)</style>`,"gi"),Q=!1;if(J=J.replace(G,(q,K,U)=>{Q=!0;let W=eW(U,Y),w=K.replace(new RegExp(Z9,"gi"),"").trim(),z=w?` ${w}`:"";return`<style data-stx-scoped="${Z}"${z}>${W}</style>`}),!Q)return{html:X,hasScoped:!1};return J=$w(J,Y),{html:J,hasScoped:!0}}function eW(X,$){return jZ(X,"__SCOPE_PLACEHOLDER__",{preserveHost:!1}).replace(/\.(__SCOPE_PLACEHOLDER__) /g,`[${$}] `).replace(/\.(__SCOPE_PLACEHOLDER__)/g,`[${$}]`)}function $w(X,$){let Z=$1(X,(J,G)=>{let Q=R1(J,G);return Q>G?Q:R5(J,G)},(J,G)=>Xw(G)),Y=Zw(Z.output,$);return _Z.lastIndex=0,Y.replace(_Z,(J,G)=>Z.tokens[Number(G)])}function Zw(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 Z9,tW,Xw=(X)=>`\x00stx-scope-mask-${X}\x00`,_Z;var Y9=E(()=>{c1();Z9=String.raw`(?<![\w-])scoped(?![\w-])`,tW=new RegExp(`<style\\s+[^>]*${Z9}`,"i");_Z=/\u0000stx-scope-mask-(\d+)\u0000/g});function Jw(X){let $=X.replace(/^<template\b/i,"").replace(/>$/,"");return Yw.test($)}function EX(X){k7.lastIndex=0;let $;while(($=k7.exec(X))!==null){if($[0].startsWith("</")||Jw($[0]))continue;let Z=$.index,Y=k7.lastIndex,J=1,G;while((G=k7.exec(X))!==null)if(G[0].startsWith("</")){if(J--,J===0){let Q=G.index;return{start:Z,openEnd:Y,closeStart:Q,end:k7.lastIndex,content:X.slice(Y,Q)}}}else J++;return null}return null}var k7,Yw;var J9=E(()=>{k7=/<\/?template\b[^>]*>/gi,Yw=/(?:^|\s)(?:id\s*=|(?:x-|[@:])(?:for|if|else(?:-if)?)(?=\s|=|$)|#[\w-]+(?:\s*=|\s|$)|v-slot(?::[\w-]+)?(?=\s|=|$)|slot\s*=)/i});var OZ=()=>{};function M0(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 q9={};o(q9,{useTitle:()=>Uw,useSeoMeta:()=>LZ,usePageTitle:()=>Uw,useHead:()=>Q9,seoMetaToHeadConfig:()=>yX,resetHead:()=>qw,renderHtmlAttrs:()=>ww,renderHead:()=>Ww,renderBodyAttrs:()=>zw,processTitleDirective:()=>_w,processMetaDirective:()=>Hw,processHeadDirective:()=>Bw,mergeHeadConfigs:()=>k5,getPageMeta:()=>Qw,getHead:()=>G9,definePageMeta:()=>Kw,applyHead:()=>jw});function G9(){return M1}function Qw(){return DX}function qw(){M1={},Gw.length=0,DX={}}function Q9(X){M1=k5(M1,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 LZ(X){Q9(yX(X))}function yX(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 Kw(X){if(DX={...DX,...X},X.title||X.description)LZ({title:X.title,description:X.description})}function Uw(X){let $=typeof X==="function"?X():X;Q9({title:$})}function Ww(X=M1){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>${i1(Z)}</title>`)}if(X.base){let Z=Object.entries(X.base).map(([Y,J])=>`${Y}="${i1(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}="${i1(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}="${i1(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}="${i1(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(`
|
|
3741
|
+
`)}function ww(X=M1){if(!X.htmlAttrs)return"";return Object.entries(X.htmlAttrs).map(([$,Z])=>`${$}="${i1(Z)}"`).join(" ")}function zw(X=M1){if(!X.bodyAttrs)return"";return Object.entries(X.bodyAttrs).map(([$,Z])=>`${$}="${i1(Z)}"`).join(" ")}function i1(X){return X.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function jw(X=M1){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 Bw(X){let $="";return{content:X.replace(/@head\s*([\s\S]*?)@endhead/g,(Y,J)=>{return $+=J.trim()+`
|
|
3742
|
+
`,""}),headContent:$.trim()}}function _w(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 Hw(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 M1,Gw,DX;var I7=E(()=>{M1={},Gw=[],DX={}});var bX={};o(bX,{stripTypeScript:()=>MZ,splitDeclaration:()=>bZ,isModuleResolutionFailure:()=>kZ,isMissingBindingFailure:()=>IZ,isCompleteImport:()=>EZ,hasVariables:()=>vZ,extractVariables:()=>n1,extractScriptFromTemplate:()=>PZ,convertToCommonJS:()=>W9,STX_ENGINE_BINDING_NAMES:()=>U9});import k1 from"path";import I5 from"process";function Lw(X){let $=[],Z=0,Y=X.split(`
|
|
3743
|
+
`);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 MZ(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(/\?$/,""),O=z.substring(B+1),L=-1,F=0;for(let A=0;A<O.length;A++)if(O[A]==="<")F++;else if(O[A]===">")F--;else if(O[A]==="="&&F===0){L=A;break}let V=w?"...":"";if(L!==-1)return`${V}${H} = ${O.substring(L+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
3744
|
|
|
3744
|
-
`),$}function
|
|
3745
|
-
`),s0=$.params??{},
|
|
3745
|
+
`),$}function kZ(X){return/cannot find module|could not resolve|module not found|failed to resolve/i.test(X)}function IZ(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 n1(X,$,Z,Y={}){if(!X.trim())return;let J;try{let P=new Bun.Transpiler({loader:"ts",target:"browser",define:v0()}),S=X.replace(/^\s*import\s+\w+\s+from\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");S=S.replace(/^\s*import\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,""),J=P.transformSync(S)}catch{J=MZ(X)}let G={exports:{}},Q=G.exports,q=I5.cwd(),K={},U=[...J.matchAll(/require\s*\(\s*['"]([^'"]+)['"]\s*\)/g)||[]].map((P)=>P[1]).filter((P)=>!P.startsWith("node:")&&!P.startsWith(".")&&!["fs","path","os","child_process","crypto","http","https","url","util","stream","events","buffer","net","querystring","zlib","tls"].includes(P));for(let P of U)try{let S=k1.resolve(q,"node_modules",P),f=k1.join(S,"package.json"),m=JSON.parse(U0("fs").readFileSync(f,"utf8")),d=m.main||"index.js";if(m.exports){let Y0=typeof m.exports==="string"?m.exports:m.exports["."];if(typeof Y0==="string")d=Y0;else if(Y0?.bun)d=Y0.bun;else if(Y0?.import)d=Y0.import;else if(Y0?.default)d=Y0.default}K[P]=await import(k1.resolve(S,d))}catch{}let W=(P)=>{if(K[P])return K[P];return U0(P)},w=$.props||{},z=(P)=>{if(!P)return w;let S={};for(let[f,m]of Object.entries(P)){let d=w[f];if(d!==void 0)S[f]=d;else if(typeof m==="function")S[f]=m();else S[f]=m}return S};for(let[P,S]of Object.entries(w))Object.defineProperty(z,P,{value:S,enumerable:!0,configurable:!0,writable:!0});for(let P of["name","length","caller","arguments"]){if(Object.prototype.hasOwnProperty.call(w,P))continue;try{Object.defineProperty(z,P,{value:void 0,enumerable:!1,configurable:!0,writable:!0})}catch{}}let B=(P)=>{if(!P)return w;let S={...w};for(let[f,m]of Object.entries(P)){let d=m&&typeof m==="object"&&!Array.isArray(m)?m:{type:m};if(S[f]===void 0&&d.default!==void 0)S[f]=typeof d.default==="function"?d.default():d.default}return S},j=()=>$.slots||{},_=(P,S)=>{let f={...P};for(let[m,d]of Object.entries(S))if(f[m]===void 0)if(typeof d==="function")f[m]=d();else f[m]=d;return f},H=(P)=>{let S=()=>P;return S.set=(f)=>{},S.update=(f)=>{},S},O=(P)=>{let S,f=!1;return()=>{if(!f)try{S=P(),f=!0}catch{S=void 0}return S}},L=(P)=>{},F=(P)=>P(),V=(P)=>{},A=(P)=>{};function R(P){let S=P||{};if(S.title!==void 0||S.description!==void 0)D({title:S.title,description:S.description})}function N(P){if(!P||typeof P!=="object")return;let S=$.__stxClientPayload??{};Object.assign(S,P),$.__stxClientPayload=S}let T=()=>{let P=$.__stxServeContext,S=$.__stxServeSearch??P?.search??"",f=P?.path??"",m=Object.fromEntries(new URLSearchParams(S)),d=$.query,Y0=Object.keys(m).length>0?m:d??{},_0=S||(Object.keys(Y0).length>0?`?${new URLSearchParams(Y0).toString()}`:"");return{params:$.params??{},query:Y0,path:f,name:"",fullPath:f+_0,hash:"",matched:[]}},k=()=>({push:(P)=>{},replace:(P)=>{},back:()=>{},forward:()=>{},go:(P)=>{}}),M=(P)=>{let S=$.__stx_runtime_head||{};$.__stx_runtime_head=k5(S,P||{})},D=(P)=>{M(yX(P||{}))},I=(P)=>({value:P}),C=(P)=>P,b=(P)=>({value:typeof P==="function"?P():P}),y=(P,S)=>{},v=(P)=>{},x=(P)=>{},g=(P)=>P?P():Promise.resolve(),l=(P)=>(S,...f)=>{},c=(P)=>{},D0=(P,S)=>{},y0=(P,S)=>S,c0=()=>({value:"light"}),W0=()=>H(!1),e=(P)=>H(!1),T0=()=>H(!1),o0=()=>e("(prefers-color-scheme: dark)"),O1=()=>e("(prefers-color-scheme: light)"),W5=()=>e("(prefers-reduced-motion: reduce)"),n=()=>e("(prefers-contrast: more)"),t={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:{}},q0=new Proxy(t,{get(P,S){if(S in P)return P[S];return},set(P,S,f){return P[S]=f,!0}}),b0={getElementById:()=>null,querySelector:()=>null,querySelectorAll:()=>[],createElement:()=>({}),createTextNode:()=>({}),body:{},head:{},documentElement:{},addEventListener:()=>{},removeEventListener:()=>{}},j0=console;try{let P=W9(J,Z),S=new Set(Object.keys(w)),f=(r)=>/^[a-z_$][\w$]*$/i.test(r),m=Object.keys($).filter((r)=>!S.has(r)&&r!=="props"&&f(r)),d=m.map((r)=>$[r]);if(!m.includes("__stxServeContext"))m.push("__stxServeContext"),d.push(void 0);let Y0=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"]),_0=[],Q1=[];for(let[r,h0]of Object.entries(w)){if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(r))continue;if(Y0.has(r))continue;if(new RegExp(`(?:^|[\\s;{])(?:const|let|var|function)\\s+${r}\\b`).test(P))continue;_0.push(r),Q1.push(h0)}let P0=Lw(P).map((r)=>`module.exports.${r} = typeof ${r} !== 'undefined' ? ${r} : module.exports.${r};`).join(`
|
|
3746
|
+
`),s0=$.params??{},f1=[],L1=[];for(let r=0;r<m.length;r++){if(m[r]==="params")continue;f1.push(m[r]),L1.push(d[r])}let K0=await Function(...U9,..._0,...f1,`return (async () => {
|
|
3746
3747
|
${P}
|
|
3747
3748
|
${P0}
|
|
3748
3749
|
return module.exports
|
|
3749
|
-
})()`)(G,Q,W,w,z,B,_,
|
|
3750
|
+
})()`)(G,Q,W,w,z,B,_,N,H,O,L,F,V,A,R,T,k,M,D,I,C,b,y,v,x,g,l,c,j,D0,y0,c0,W0,e,T0,o0,O1,W5,n,q0,b0,j0,t.confirm,t.alert,t.fetch,s0,...Q1,...L1);if(Y.preserveExisting){for(let[r,h0]of Object.entries(K0))if(!(r in $)||$[r]===void 0)$[r]=h0}else Object.assign($,K0);for(let[r,h0]of Object.entries(w))if(!(r in $))$[r]=h0}catch(P){let S=P instanceof Error?P.message:String(P);if(kZ(S))console.warn(`[stx] server <script> in ${Z??"<unknown>"} imports a module that does not resolve, so every variable in that script is undefined. Cause: ${S}`);else if(IZ(S))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: ${S}`);else if(I5.env.STX_DEBUG)console.warn(`[stx] server <script> did not execute in ${Z??"<unknown>"} \u2014 falling back to static extraction. Cause: ${S}`);try{await Tw(J,$,Z)}catch(f){if(I5.env.STX_DEBUG){let m=f instanceof Error?f.message:String(f);console.warn(`[stx] fallback extraction also failed in ${Z??"<unknown>"}: ${m}`)}}}}function EZ(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 W9(X,$){let Z=$?k1.dirname($):I5.cwd(),Y=I5.cwd(),J=X.split(`
|
|
3750
3751
|
`),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 O=0;O<H.length;O++){let L=H[O];if(_){_=!1;continue}if(L==="\\"){_=!0;continue}if(j){if(L===j)j=null;continue}if(L==='"'||L==="'"||L==="`"){j=L;continue}if(L==="(")K++;else if(L===")"){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(!
|
|
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
|
|
3753
|
-
`),Z,Y)}function
|
|
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=
|
|
3752
|
+
`),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(!EZ(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 k1.resolve(Z,_);if(_.startsWith("~/")||_.startsWith("@/"))return k1.resolve(Y,_.slice(2));return _};if(W){let[,_,H]=W,O=j(H);G.push(`const ${_} = (await import('${O}')).default`),G.push(`module.exports.${_} = ${_};`)}else if(w){let[,_,H]=w,O=j(H),L=[],F=[],V=Ow.has(H);for(let A of _.split(",")){let R=A.trim();if(!R)continue;let N=R.split(/\s+as\s+/);if(N.length===2){let[T,k]=[N[0].trim(),N[1].trim()];if(V&&FZ.has(T)){G.push(`const ${k} = ${T};`),F.push(k);continue}L.push(`${T}: ${k}`),F.push(k)}else{if(V&&FZ.has(R)){F.push(R);continue}L.push(R),F.push(R)}}if(L.length>0)G.push(`const { ${L.join(", ")} } = await import('${O}')`);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(Fw.test(q))G.push(J[Q]),Q++;else if(q.startsWith("export const ")||q.startsWith("export let ")||q.startsWith("export var ")){let K=AZ(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=K9(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=AZ(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=K9(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=K9(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+=`
|
|
3753
|
+
`+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 Vw(G.join(`
|
|
3754
|
+
`),Z,Y)}function Vw(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===`
|
|
3755
|
+
`)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=Aw(X,G);if(z){let{quote:B,path:j,end:_}=z;if(j.startsWith(".")||j.startsWith("~/")||j.startsWith("@/")){let H=j.startsWith(".")?k1.resolve($,j):k1.resolve(Z,j.slice(2));J+=`await import(${B}${H}${B})`,G=_;continue}}}J+=W,G++}return J}function Aw(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 DZ(X,$){let Z=X[$];if(Z!=="{"&&Z!=="[")return null;let J=M0(X,Z,Z==="{"?"}":"]",$);if(J===-1)return null;return{pattern:X.slice($,J+1),endPos:J+1}}function yZ(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?DZ(Z,Y):null;if(q){$.push(...yZ(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 bZ(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 VZ(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 AZ(X,$){let Z=X[$].trim(),Y=bZ(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=VZ(w,j,_,0),O=w;for(let L=$+1;L<X.length&&H>0;L++)O+=` ${X[L].trim()}`,z=L,H=VZ(X[L],j,_,H);if(H>0)O=w,z=$;w=O}let B=DZ(w,0);if(B){let j=W[1],_=B.pattern,H=w.slice(B.endPos).trim();if(H.startsWith("=")){let O=H.slice(1).trim(),L=O,F=Math.max(z,$);if(RZ(O)){let N=NZ(X,F,O);L=N.value,F=N.nextIndex}else F=F+1;L=L.trim().replace(/;$/,"");let V=yZ(_),A=`__stx_src_${$}`,R=V.map((N)=>`module.exports.${N} = ${N};`).join(`
|
|
3755
3756
|
`);return{type:j,name:A,value:`${L}; ${j} ${_} = ${A};
|
|
3756
|
-
${R}`,nextIndex:F}}}}throw Error(`Failed to parse variable declaration: ${Z}`)}let[,G,Q,q]=J,K=q,U=$;if(
|
|
3757
|
-
${X[U]}`,U++;else break}return K=K.trim().replace(/;$/,""),{type:G,name:Q,value:K,nextIndex:U}}function
|
|
3757
|
+
${R}`,nextIndex:F}}}}throw Error(`Failed to parse variable declaration: ${Z}`)}let[,G,Q,q]=J,K=q,U=$;if(RZ(q)){let W=NZ(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+=`
|
|
3758
|
+
${X[U]}`,U++;else break}return K=K.trim().replace(/;$/,""),{type:G,name:Q,value:K,nextIndex:U}}function K9(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(Rw(Z)){let q=Nw(X,$,G);G=q.functionCode,Q=q.nextIndex}else Q=$+1;return{name:J,functionCode:G,nextIndex:Q}}function RZ(X){let $=X.trim();if($.startsWith("{"))return M0($,"{","}",0)===-1;if($.startsWith("["))return M0($,"[","]",0)===-1;return!SZ($)}function SZ(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 CZ(X){let $=X.indexOf("(");if($===-1)return X.indexOf("{");let Z=M0(X,"(",")",$);if(Z===-1)return-1;return X.indexOf("{",Z)}function Rw(X){let $=CZ(X);if($===-1)return!0;return M0(X,"{","}",$)===-1}function NZ(X,$,Z){let Y=Z,J=$+1;while(J<X.length&&!SZ(Y)){let G=X[J];Y+=`
|
|
3758
3759
|
${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
|
|
3760
|
-
${Q}`,J++}return{functionCode:Y,nextIndex:J}}function jZ(X,$){let Z=Z0(X,$)??Z0(`(${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 _w(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=jZ(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=jZ(K,$);if(U!==void 0)$[Q]=U}catch{}}}function TZ(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 NZ(X){let $=X.trim();if(!$)return!1;return/(?:const|let|var|function)\s+\w+/.test($)}var G9,KZ,Kw,Ww;var I7=E(()=>{k7();F1();L0();G9=["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"],KZ=new Set(G9),Kw=new Set(["stx","@stacksjs/stx"]);Ww=/^(?:export\s+)?(?:const|let|var)\s+[A-Za-z_$][\w$]*(?:\s*,\s*[A-Za-z_$][\w$]*)*\s*;?$/});var q9={};o(q9,{renderSlot:()=>kZ,processSlots:()=>EZ,parseSlots:()=>MZ,parseSlotElement:()=>Vw,extractSlotContent:()=>Tw,applySlots:()=>Nw});function Hw(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 Lw(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 Fw(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=Lw(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=Hw(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)&&!Ow.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 MZ(X){let $={default:"",named:new Map},Z=X,Y=Fw(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(),O=`<${U}${H?" "+H:""}>${B}</${U}>`;J.push({start:Q.index,end:Q.index+K.length,slotName:w,element:O})}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 Vw(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 kZ(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=Aw(J,Q)}return J}function Aw(X,$){return X.replace(/\{\{\s*([^}]+)\s*\}\}/g,(Z,Y)=>{try{let J=Y.trim(),G=IZ(J,$);return t0(String(G??""))}catch{return`{{ ${Y} }}`}})}function IZ(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(!J0(X))return;return G0(X,Object.keys($))(...Object.values($))}catch{return}}async function EZ(X,$,Z){let Y=X;Y=await Rw(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],O=_[2];B[H]=IZ(O,Z)}return await kZ(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 Rw(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 Tw(X){let $=MZ(X);return{defaultSlot:$.default,namedSlots:$.named}}async function Nw(X,$,Z,Y){return await EZ(X,{default:$,named:Z},Y)}var Ow;var K9=E(()=>{Z1();L0();Ow=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"])});function k1(X,$){let Z=Mw(X,$);return Z.ok?{expression:Z.expression,endPos:Z.endPos}:null}function Mw(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 kw(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 DZ(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(kw(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 O=U+H[0].length,L=k1(q,O);if(!L){U++;continue}W="elseif",w=L.expression,U=L.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 E7(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=DZ(X,Y.index);if(G)$.push(G),Z.lastIndex=G.end;Y=Z.exec(X)}return $}function DX(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 U9(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])/),O=z.match(/^@break(?![a-z])/);if(_&&z.startsWith("@case")){if(W)K.push(W);let L=U+_[0].length,F=k1(q,L);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(O&&z.startsWith("@break"))U+=O[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 yZ=()=>{};var bZ=()=>{};var yX=E(()=>{yZ();bZ()});function SZ(X,$={}){return new O5(X,$).routes}var CZ=E(()=>{g1();g1()});async function vZ(X){let $=X;if(!$)try{$=(await I1())?.pagesDir||"pages"}catch{$="pages"}let Z=$,Y=PZ.get(Z);if(Y)return Y;let J=[];try{J=SZ(".",{pagesDir:Z}).map((G)=>G.regex.source).filter(Boolean)}catch{J=[]}return PZ.set(Z,J),J}var PZ;var xZ=E(()=>{CZ();V1();PZ=new Map});function yw(X){return X.replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}function fZ(X){return yw(JSON.stringify(X))}function D7(X){let $=0,Z,Y=W9.map(()=>{return});while($<X.length){if(Z===void 0||Z!==null&&Z.index<$)gZ.lastIndex=$,Z=gZ.exec(X);if(!Z)return null;let J=Z.index,G=-1,Q=null;for(let K=0;K<W9.length;K++){let U=W9[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 bX(X,$){let Z=D7(X);if(!Z)return X;return X.slice(0,Z.index)+$(Z.tag,Z.attrs)+X.slice(Z.index+Z.tag.length)}var W9,gZ;var w9=E(()=>{W9=[{open:/<!--/g,close:/-->/g},{open:/<script\b/gi,close:/<\/script\s*>/gi},{open:/<style\b/gi,close:/<\/style\s*>/gi}],gZ=/<body\b([^>]*)>/gi});function z9(){return`
|
|
3760
|
+
${X[J]}`,J++;else break}return{value:Y,nextIndex:J}}function Nw(X,$,Z){let Y=Z,J=$+1;while(J<X.length){let G=CZ(Y);if(G!==-1){if(M0(Y,"{","}",G)!==-1)break}let Q=X[J];Y+=`
|
|
3761
|
+
${Q}`,J++}return{functionCode:Y,nextIndex:J}}function TZ(X,$){let Z=Z0(X,$)??Z0(`(${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 Tw(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=TZ(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=TZ(K,$);if(U!==void 0)$[Q]=U}catch{}}}function PZ(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 U9,FZ,Ow,Fw;var E7=E(()=>{I7();V1();F0();U9=["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"],FZ=new Set(U9),Ow=new Set(["stx","@stacksjs/stx"]);Fw=/^(?:export\s+)?(?:const|let|var)\s+[A-Za-z_$][\w$]*(?:\s*,\s*[A-Za-z_$][\w$]*)*\s*;?$/});var w9={};o(w9,{renderSlot:()=>fZ,processSlots:()=>hZ,parseSlots:()=>xZ,parseSlotElement:()=>Dw,extractSlotContent:()=>Sw,applySlots:()=>Cw});function Mw(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 Iw(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 Ew(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=Iw(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=Mw(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)&&!kw.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 xZ(X){let $={default:"",named:new Map},Z=X,Y=Ew(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(),O=`<${U}${H?" "+H:""}>${B}</${U}>`;J.push({start:Q.index,end:Q.index+K.length,slotName:w,element:O})}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 Dw(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 fZ(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=yw(J,Q)}return J}function yw(X,$){return X.replace(/\{\{\s*([^}]+)\s*\}\}/g,(Z,Y)=>{try{let J=Y.trim(),G=gZ(J,$);return t0(String(G??""))}catch{return`{{ ${Y} }}`}})}function gZ(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(!J0(X))return;return G0(X,Object.keys($))(...Object.values($))}catch{return}}async function hZ(X,$,Z){let Y=X;Y=await bw(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],O=_[2];B[H]=gZ(O,Z)}return await fZ(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 bw(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 Sw(X){let $=xZ(X);return{defaultSlot:$.default,namedSlots:$.named}}async function Cw(X,$,Z,Y){return await hZ(X,{default:$,named:Z},Y)}var kw;var z9=E(()=>{Z1();F0();kw=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"])});function I1(X,$){let Z=Pw(X,$);return Z.ok?{expression:Z.expression,endPos:Z.endPos}:null}function Pw(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=M0(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 r1(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 uZ(X,$){let Z=X.slice($).match(/^@if\s*/);if(!Z)return null;let Y=$+Z[0].length,J=I1(X,Y);if(!J)return null;let G=J.endPos,Q=r1(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 O=U+H[0].length,L=I1(q,O);if(!L){U++;continue}W="elseif",w=L.expression,U=L.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 D7(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=uZ(X,Y.index);if(G)$.push(G),Z.lastIndex=G.end;Y=Z.exec(X)}return $}function SX(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=M0(X,"(",")",K);if(U===-1){G=J.exec(X);continue}let W=X.slice(K+1,U),w=U+1,z=r1(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 j9(X,$){let Z=X.slice($).match(/^@switch\s*/);if(!Z)return null;let Y=$+Z[0].length,J=I1(X,Y);if(!J)return null;let G=J.endPos,Q=r1(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])/),O=z.match(/^@break(?![a-z])/);if(_&&z.startsWith("@case")){if(W)K.push(W);let L=U+_[0].length,F=I1(q,L);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(O&&z.startsWith("@break"))U+=O[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 dZ=()=>{};var mZ=()=>{};var CX=E(()=>{dZ();mZ()});function lZ(X,$={}){return new O5(X,$).routes}var cZ=E(()=>{h1();h1()});async function iZ(X){let $=X;if(!$)try{$=(await E1())?.pagesDir||"pages"}catch{$="pages"}let Z=$,Y=pZ.get(Z);if(Y)return Y;let J=[];try{J=lZ(".",{pagesDir:Z}).map((G)=>G.regex.source).filter(Boolean)}catch{J=[]}return pZ.set(Z,J),J}var pZ;var nZ=E(()=>{cZ();A1();pZ=new Map});function hw(X){return X.replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}function rZ(X){return hw(JSON.stringify(X))}function y7(X){let $=0,Z,Y=B9.map(()=>{return});while($<X.length){if(Z===void 0||Z!==null&&Z.index<$)oZ.lastIndex=$,Z=oZ.exec(X);if(!Z)return null;let J=Z.index,G=-1,Q=null;for(let K=0;K<B9.length;K++){let U=B9[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 PX(X,$){let Z=y7(X);if(!Z)return X;return X.slice(0,Z.index)+$(Z.tag,Z.attrs)+X.slice(Z.index+Z.tag.length)}var B9,oZ;var _9=E(()=>{B9=[{open:/<!--/g,close:/-->/g},{open:/<script\b/gi,close:/<\/script\s*>/gi},{open:/<style\b/gi,close:/<\/style\s*>/gi}],oZ=/<body\b([^>]*)>/gi});function H9(){return`
|
|
3761
3762
|
(function(){
|
|
3762
3763
|
var tip=null,hideTimer=null,currentEl=null;
|
|
3763
3764
|
|
|
@@ -3860,7 +3861,7 @@ document.addEventListener("focusout",function(e){
|
|
|
3860
3861
|
if(el) hideTip();
|
|
3861
3862
|
});
|
|
3862
3863
|
})();
|
|
3863
|
-
`}function
|
|
3864
|
+
`}function L9(){return o1}function F9(X){let $=o1;return sZ.push(X),o1=X,$}function V9(X){sZ.pop(),o1=X}function A9(){return vX>0}function R9(X){O9.add(X)}function aZ(X){vX++;try{X()}finally{if(vX--,vX===0){let $=[...O9];O9.clear();for(let Z of $)Z()}}}function tZ(X){let $=o1;o1=null;try{return X()}finally{o1=$}}var o1=null,sZ,vX=0,O9;var eZ=E(()=>{sZ=[],O9=new Set});function D1(X){let $=X,Z=new Set,Y=new Set,J=()=>{let G=L9();if(G)Y.add(G);return $};return J.set=(G)=>{if(!Object.is(G,$)){let Q=$;if($=G,Z.forEach((q)=>q($,Q)),A9())Y.forEach((q)=>R9(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 fX(X){let $,Z=!0,Y=new Set,J=()=>{if(!Z)if(Z=!0,A9())Y.forEach((Q)=>R9(Q));else Y.forEach((Q)=>Q())},G=()=>{let Q=L9();if(Q)Y.add(Q);if(Z){let q=F9(J);try{$=X()}finally{V9(q)}Z=!1}return $};return Object.defineProperty(G,"_isDerived",{value:!0,writable:!1}),Object.defineProperty(G,"value",{get:()=>G(),configurable:!0}),G}function gX(X,$={}){let Z,Y=!1,J=()=>{if(Y)return;if(Z)Z(),Z=void 0;let G=F9(J);try{let Q=X();Z=typeof Q==="function"?Q:void 0}finally{V9(G)}};if($.immediate!==!1)J();return()=>{if(Y=!0,Z)Z()}}function T9(X){aZ(X)}function M9(X){N9.push(X)}function k9(X){xX.push(X)}function uw(){XY(N9,"onMount",xX)}function dw(){XY(xX,"onDestroy")}function XY(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 mw(){return{mount:N9.length,destroy:xX.length}}function hX(X){return typeof X==="function"&&X._isSignal===!0}function uX(X){return typeof X==="function"&&X._isDerived===!0}function I9(X){if(hX(X)||uX(X))return X();return X}function dX(X){return tZ(X)}function lw(X,$){let Z=typeof X==="function"?X:()=>X,Y=D1([]),J=fX(()=>Y().reduce((q,K)=>$(q,K.action),Z())),G=!1;return gX(()=>{if(Z(),!G){G=!0;return}if(dX(()=>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 N9,xX;var mX=E(()=>{eZ();N9=[],xX=[]});var ZY={};o(ZY,{useOptimistic:()=>lw,untrack:()=>I9,state:()=>D1,runMountCallbacks:()=>uw,runDestroyCallbacks:()=>dw,pendingLifecycleCounts:()=>mw,peek:()=>dX,onMount:()=>M9,onDestroy:()=>k9,isSignal:()=>hX,isDerived:()=>uX,generateSignalsRuntimeDev:()=>E9,generateSignalsRuntime:()=>$Y,effect:()=>gX,derived:()=>fX,default:()=>pw,batch:()=>T9});function $Y(){let X=cw(E9());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 cw(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 E9(){return`
|
|
3864
3865
|
// STX Signals Runtime (Development Build)
|
|
3865
3866
|
console.log('[stx] signals runtime loading');
|
|
3866
3867
|
// Pre-initialization shim: capture onMount/onDestroy calls made before the runtime IIFE runs
|
|
@@ -4876,6 +4877,10 @@ finally {
|
|
|
4876
4877
|
// case where a template is most likely driving a spinner off it (#1818).
|
|
4877
4878
|
const immediate = options.immediate !== false;
|
|
4878
4879
|
const loading = state(immediate);
|
|
4880
|
+
// Any request in flight, background ones included. loading answers "is
|
|
4881
|
+
// there nothing to show yet"; isFetching answers "is a request open" \u2014 and
|
|
4882
|
+
// a background refresh is the case where those two stop agreeing (#1929).
|
|
4883
|
+
const isFetching = state(immediate);
|
|
4879
4884
|
const error = state(null);
|
|
4880
4885
|
if (options.suspense) registerSuspense(loading, error);
|
|
4881
4886
|
|
|
@@ -4885,17 +4890,24 @@ finally {
|
|
|
4885
4890
|
// last in-flight one. State writes are guarded on signal.aborted (#1871).
|
|
4886
4891
|
let __stxAbort = null;
|
|
4887
4892
|
|
|
4888
|
-
|
|
4893
|
+
// runOptions: { background: true } refreshes data WITHOUT touching loading
|
|
4894
|
+
// or clearing the current error, so a poll cannot flash a spinner or blank
|
|
4895
|
+
// an error message that is still true. Everything already on screen stays
|
|
4896
|
+
// there until the new response actually lands (#1929).
|
|
4897
|
+
const fetchData = async (runOptions) => {
|
|
4898
|
+
const background = !!(runOptions && runOptions.background);
|
|
4889
4899
|
if (__stxAbort) __stxAbort.abort();
|
|
4890
4900
|
__stxAbort = (typeof AbortController !== 'undefined') ? new AbortController() : null;
|
|
4891
4901
|
const __signal = __stxAbort ? __stxAbort.signal : undefined;
|
|
4892
|
-
loading.set(true);
|
|
4893
|
-
|
|
4902
|
+
if (!background) loading.set(true);
|
|
4903
|
+
isFetching.set(true);
|
|
4904
|
+
if (!background) error.set(null);
|
|
4894
4905
|
|
|
4895
4906
|
try {
|
|
4896
4907
|
const url = typeof urlOrFn === 'function' ? urlOrFn() : urlOrFn;
|
|
4897
4908
|
if (!url) {
|
|
4898
|
-
loading.set(false);
|
|
4909
|
+
if (!background) loading.set(false);
|
|
4910
|
+
isFetching.set(false);
|
|
4899
4911
|
return;
|
|
4900
4912
|
}
|
|
4901
4913
|
|
|
@@ -4925,6 +4937,10 @@ finally {
|
|
|
4925
4937
|
// Apply transform if provided
|
|
4926
4938
|
const transformed = options.transform ? options.transform(result) : result;
|
|
4927
4939
|
data.set(transformed);
|
|
4940
|
+
// A background run did not clear the error up front, so a recovery has
|
|
4941
|
+
// to clear it here \u2014 otherwise the first failed poll would leave the
|
|
4942
|
+
// message on screen for the life of the page.
|
|
4943
|
+
if (background) error.set(null);
|
|
4928
4944
|
}
|
|
4929
4945
|
catch (e) {
|
|
4930
4946
|
// A superseded/unmounted request rejects with AbortError \u2014 expected,
|
|
@@ -4939,7 +4955,10 @@ catch (e) {
|
|
|
4939
4955
|
}
|
|
4940
4956
|
finally {
|
|
4941
4957
|
// If a newer run (or onDestroy) aborted this one, that run owns loading.
|
|
4942
|
-
if (!__signal || !__signal.aborted)
|
|
4958
|
+
if (!__signal || !__signal.aborted) {
|
|
4959
|
+
if (!background) loading.set(false);
|
|
4960
|
+
isFetching.set(false);
|
|
4961
|
+
}
|
|
4943
4962
|
}
|
|
4944
4963
|
};
|
|
4945
4964
|
|
|
@@ -4972,6 +4991,7 @@ else if (immediate) {
|
|
|
4972
4991
|
return {
|
|
4973
4992
|
data,
|
|
4974
4993
|
loading,
|
|
4994
|
+
isFetching,
|
|
4975
4995
|
error,
|
|
4976
4996
|
refetch: fetchData,
|
|
4977
4997
|
// Convenience getters
|
|
@@ -5222,6 +5242,10 @@ else if (immediate) {
|
|
|
5222
5242
|
var cacheKey = options.cacheKey || (typeof url === 'function' ? null : url);
|
|
5223
5243
|
var data = state(options.initialData || null);
|
|
5224
5244
|
var loading = state(true);
|
|
5245
|
+
// See useFetch: loading means "nothing to show yet", isFetching means "a
|
|
5246
|
+
// request is open" \u2014 including a background refresh, which is the case that
|
|
5247
|
+
// makes the distinction necessary (#1929).
|
|
5248
|
+
var isFetching = state(true);
|
|
5225
5249
|
var error = state(null);
|
|
5226
5250
|
var isStale = state(false);
|
|
5227
5251
|
if (options.suspense) registerSuspense(loading, error);
|
|
@@ -5240,16 +5264,21 @@ else if (immediate) {
|
|
|
5240
5264
|
// can release its claim without cancelling a request someone else joined.
|
|
5241
5265
|
var __joined = null;
|
|
5242
5266
|
|
|
5243
|
-
|
|
5267
|
+
// runOptions: { background: true } refreshes without touching loading or
|
|
5268
|
+
// clearing the current error. A poll must not flash a spinner over data
|
|
5269
|
+
// that is already on screen (#1929).
|
|
5270
|
+
var fetchData = async function(runOptions) {
|
|
5271
|
+
var background = !!(runOptions && runOptions.background);
|
|
5244
5272
|
var resolvedUrl = typeof url === 'function' ? url() : url;
|
|
5245
|
-
if (!resolvedUrl) { loading.set(false); return; }
|
|
5273
|
+
if (!resolvedUrl) { if (!background) loading.set(false); isFetching.set(false); return; }
|
|
5246
5274
|
var key = cacheKey || resolvedUrl;
|
|
5247
5275
|
|
|
5248
5276
|
// Check cache
|
|
5249
5277
|
var cached = _queryCache[key];
|
|
5250
5278
|
if (cached && (Date.now() - cached.timestamp < staleTime)) {
|
|
5251
5279
|
data.set(cached.data);
|
|
5252
|
-
loading.set(false);
|
|
5280
|
+
if (!background) loading.set(false);
|
|
5281
|
+
isFetching.set(false);
|
|
5253
5282
|
isStale.set(false);
|
|
5254
5283
|
if (options.onSuccess) options.onSuccess(cached.data);
|
|
5255
5284
|
return;
|
|
@@ -5269,12 +5298,14 @@ else if (immediate) {
|
|
|
5269
5298
|
if (shared && shared.owner !== __instanceId) {
|
|
5270
5299
|
shared.refs++;
|
|
5271
5300
|
__joined = shared;
|
|
5272
|
-
loading.set(true);
|
|
5273
|
-
|
|
5301
|
+
if (!background) loading.set(true);
|
|
5302
|
+
isFetching.set(true);
|
|
5303
|
+
if (!background) error.set(null);
|
|
5274
5304
|
try {
|
|
5275
5305
|
var joinedResult = await shared.promise;
|
|
5276
5306
|
var joinedTransformed = options.transform ? options.transform(joinedResult) : joinedResult;
|
|
5277
5307
|
data.set(joinedTransformed);
|
|
5308
|
+
if (background) error.set(null);
|
|
5278
5309
|
isStale.set(false);
|
|
5279
5310
|
if (options.onSuccess) options.onSuccess(joinedTransformed);
|
|
5280
5311
|
}
|
|
@@ -5286,7 +5317,8 @@ else if (immediate) {
|
|
|
5286
5317
|
finally {
|
|
5287
5318
|
shared.refs--;
|
|
5288
5319
|
if (__joined === shared) __joined = null;
|
|
5289
|
-
loading.set(false);
|
|
5320
|
+
if (!background) loading.set(false);
|
|
5321
|
+
isFetching.set(false);
|
|
5290
5322
|
}
|
|
5291
5323
|
return;
|
|
5292
5324
|
}
|
|
@@ -5301,8 +5333,9 @@ else if (immediate) {
|
|
|
5301
5333
|
__joined = null;
|
|
5302
5334
|
__stxAbort = (typeof AbortController !== 'undefined') ? new AbortController() : null;
|
|
5303
5335
|
var __signal = __stxAbort ? __stxAbort.signal : undefined;
|
|
5304
|
-
loading.set(true);
|
|
5305
|
-
|
|
5336
|
+
if (!background) loading.set(true);
|
|
5337
|
+
isFetching.set(true);
|
|
5338
|
+
if (!background) error.set(null);
|
|
5306
5339
|
try {
|
|
5307
5340
|
var fetchOpts = { method: 'GET', headers: { 'Content-Type': 'application/json', ...__stxHeaders(options.headers) }, signal: __signal };
|
|
5308
5341
|
// Published BEFORE it is awaited, so a caller starting in the same tick
|
|
@@ -5326,6 +5359,7 @@ else if (immediate) {
|
|
|
5326
5359
|
if (__signal && __signal.aborted) return;
|
|
5327
5360
|
var transformed = options.transform ? options.transform(result) : result;
|
|
5328
5361
|
data.set(transformed);
|
|
5362
|
+
if (background) error.set(null);
|
|
5329
5363
|
isStale.set(false);
|
|
5330
5364
|
_queryCache[key] = { data: transformed, timestamp: Date.now() };
|
|
5331
5365
|
if (options.onSuccess) options.onSuccess(transformed);
|
|
@@ -5340,7 +5374,10 @@ catch (e) {
|
|
|
5340
5374
|
if (options.onError) options.onError(e);
|
|
5341
5375
|
}
|
|
5342
5376
|
finally {
|
|
5343
|
-
if (!__signal || !__signal.aborted)
|
|
5377
|
+
if (!__signal || !__signal.aborted) {
|
|
5378
|
+
if (!background) loading.set(false);
|
|
5379
|
+
isFetching.set(false);
|
|
5380
|
+
}
|
|
5344
5381
|
}
|
|
5345
5382
|
};
|
|
5346
5383
|
|
|
@@ -5348,13 +5385,20 @@ finally {
|
|
|
5348
5385
|
onMount(fetchData);
|
|
5349
5386
|
}
|
|
5350
5387
|
|
|
5388
|
+
// A refetch nobody asked for does not set loading. Both of these refresh
|
|
5389
|
+
// data that is ALREADY on screen, so driving the first-load state from them
|
|
5390
|
+
// put a spinner over a populated view once a minute, forever \u2014 the reason a
|
|
5391
|
+
// polling view could not use this composable at all (#1929). Bind
|
|
5392
|
+
// isFetching for a subtle in-flight indicator.
|
|
5393
|
+
var backgroundRun = { background: true };
|
|
5394
|
+
|
|
5351
5395
|
// refetchOnFocus \u2014 removed on destroy, like refetchInterval right below.
|
|
5352
5396
|
// It used to add a listener and never remove it, so every instance leaked
|
|
5353
5397
|
// one for the life of the page and each SPA navigation added more; every
|
|
5354
5398
|
// stale listener still fired, refetching for components long gone (#1818).
|
|
5355
5399
|
if (options.refetchOnFocus) {
|
|
5356
5400
|
var onVisibility = function() {
|
|
5357
|
-
if (!document.hidden) fetchData();
|
|
5401
|
+
if (!document.hidden) fetchData(backgroundRun);
|
|
5358
5402
|
};
|
|
5359
5403
|
document.addEventListener('visibilitychange', onVisibility);
|
|
5360
5404
|
onDestroy(function() { document.removeEventListener('visibilitychange', onVisibility); });
|
|
@@ -5368,7 +5412,7 @@ finally {
|
|
|
5368
5412
|
if (typeof document !== 'undefined' && document.hidden) return;
|
|
5369
5413
|
var en = options.enabled;
|
|
5370
5414
|
if (typeof en === 'function' ? !en() : en === false) return;
|
|
5371
|
-
var p = fetchData();
|
|
5415
|
+
var p = fetchData(backgroundRun);
|
|
5372
5416
|
if (options.stopOnError && p && typeof p.then === 'function') {
|
|
5373
5417
|
p.then(function() { if (error()) clearInterval(intervalId); });
|
|
5374
5418
|
}
|
|
@@ -5382,13 +5426,14 @@ finally {
|
|
|
5382
5426
|
return {
|
|
5383
5427
|
data: data,
|
|
5384
5428
|
loading: loading,
|
|
5429
|
+
isFetching: isFetching,
|
|
5385
5430
|
error: error,
|
|
5386
5431
|
isStale: isStale,
|
|
5387
5432
|
refetch: fetchData,
|
|
5388
|
-
invalidate: function() {
|
|
5433
|
+
invalidate: function(runOptions) {
|
|
5389
5434
|
var key = cacheKey || (typeof url === 'function' ? url() : url);
|
|
5390
5435
|
delete _queryCache[key];
|
|
5391
|
-
return fetchData();
|
|
5436
|
+
return fetchData(runOptions);
|
|
5392
5437
|
}
|
|
5393
5438
|
};
|
|
5394
5439
|
}
|
|
@@ -5956,11 +6001,18 @@ catch (e) {
|
|
|
5956
6001
|
if (!el || !el.getAttribute || value === undefined) return;
|
|
5957
6002
|
var scopeId = el.getAttribute('data-stx-scope');
|
|
5958
6003
|
var scopeVars = scopeId && window.stx._scopes && window.stx._scopes[scopeId];
|
|
5959
|
-
if (!scopeVars) return;
|
|
5960
6004
|
var camelName = name.replace(/-([a-z0-9])/g, function(_, character) {
|
|
5961
6005
|
return character.toUpperCase();
|
|
5962
6006
|
});
|
|
5963
|
-
|
|
6007
|
+
// useReactiveProp signals are often intentionally aliased inside the
|
|
6008
|
+
// child, for example liveClosable = useReactiveProp('closable', true).
|
|
6009
|
+
// The public prop name therefore cannot be inferred from the variable
|
|
6010
|
+
// name exported by the component scope. Keep an element-owned registry as
|
|
6011
|
+
// the canonical bridge, with the scope lookup retained for older output.
|
|
6012
|
+
var propSignals = el.__stx_reactive_prop_signals;
|
|
6013
|
+
var propSignal = propSignals && (propSignals[name] || propSignals[camelName]);
|
|
6014
|
+
if (!propSignal && scopeVars)
|
|
6015
|
+
propSignal = scopeVars[name] || scopeVars[camelName];
|
|
5964
6016
|
if (!propSignal || !propSignal._isSignal || typeof propSignal.set !== 'function') return;
|
|
5965
6017
|
var directValues = el.__stx_direct_prop_values || (el.__stx_direct_prop_values = {});
|
|
5966
6018
|
var directValue = {
|
|
@@ -6288,13 +6340,12 @@ else if (part) {
|
|
|
6288
6340
|
}
|
|
6289
6341
|
|
|
6290
6342
|
// x-else / x-else-if are owned by their preceding x-if chain (#1734).
|
|
6291
|
-
//
|
|
6292
|
-
// iteration must be skipped
|
|
6293
|
-
//
|
|
6294
|
-
//
|
|
6295
|
-
//
|
|
6296
|
-
|
|
6297
|
-
if (el.__stx_chain_member && !el.isConnected) return;
|
|
6343
|
+
// An inactive chain member reached via the parent's snapshot child-
|
|
6344
|
+
// iteration must be skipped. Connectivity cannot identify inactivity:
|
|
6345
|
+
// an active inner branch is also disconnected while an outer conditional
|
|
6346
|
+
// temporarily detaches its parent. bindIfChain owns explicit branch state
|
|
6347
|
+
// so nested structural effects can still hydrate active detached subtrees.
|
|
6348
|
+
if (el.__stx_chain_member && !el.__stx_chain_active) return;
|
|
6298
6349
|
|
|
6299
6350
|
// An else/else-if with no preceding if is an orphan. Match Vue: warn,
|
|
6300
6351
|
// strip the attribute, and render it as a plain element (fall through).
|
|
@@ -6416,7 +6467,7 @@ catch (e2) {
|
|
|
6416
6467
|
// :attr still works for backward compat but is reserved for structural directives.
|
|
6417
6468
|
// x-text, x-html, x-model, x-show, x-if, x-for, x-cloak, x-ref, x-data are
|
|
6418
6469
|
// handled by their own code paths below \u2014 exclude them here.
|
|
6419
|
-
var X_HANDLED = ${
|
|
6470
|
+
var X_HANDLED = ${H2()};
|
|
6420
6471
|
if (name.startsWith('@bind:') || name.startsWith('x-bind:')
|
|
6421
6472
|
|| (name.startsWith(':') && !name.startsWith('::') && !DIRECTIVE_NAMES[name.slice(1).split('.')[0]] && !EVENT_RE.test(name.slice(1)))
|
|
6422
6473
|
|| (name.startsWith('x-') && !X_HANDLED[name.split('.')[0]] && !X_HANDLED[name])) {
|
|
@@ -7986,6 +8037,7 @@ catch (e) {
|
|
|
7986
8037
|
preserveConditionalComponentScopes(b.el, capturedComponentScope);
|
|
7987
8038
|
b.el.__stx_if_bound = true;
|
|
7988
8039
|
b.el.__stx_chain_member = true;
|
|
8040
|
+
b.el.__stx_chain_active = false;
|
|
7989
8041
|
b.capturedElementScope = findElementScope(b.el);
|
|
7990
8042
|
b.placeholder = document.createComment('stx-if-chain');
|
|
7991
8043
|
parent.insertBefore(b.placeholder, b.el);
|
|
@@ -8085,12 +8137,14 @@ catch (e2) {
|
|
|
8085
8137
|
// components under reactive conditionals (#1737). Permanent disposal is
|
|
8086
8138
|
// still handled by bindFor (item removal) and cleanupContainer (SPA nav).
|
|
8087
8139
|
if (currentIdx !== -1) {
|
|
8140
|
+
chain[currentIdx].el.__stx_chain_active = false;
|
|
8088
8141
|
chain[currentIdx].nodes.forEach(function (n) { if (n.parentNode) n.parentNode.removeChild(n); });
|
|
8089
8142
|
}
|
|
8090
8143
|
|
|
8091
8144
|
// Insert + process the newly-picked branch.
|
|
8092
8145
|
if (pickedIdx !== -1) {
|
|
8093
8146
|
var pick = chain[pickedIdx];
|
|
8147
|
+
pick.el.__stx_chain_active = true;
|
|
8094
8148
|
// Insert this branch's node(s) before the placeholder's next sibling.
|
|
8095
8149
|
// The anchor is captured once so the nodes stack in source order.
|
|
8096
8150
|
var anchor = pick.placeholder.nextSibling;
|
|
@@ -9289,6 +9343,11 @@ catch (e) {} }
|
|
|
9289
9343
|
}
|
|
9290
9344
|
var s = state(initial);
|
|
9291
9345
|
if (!root) return s;
|
|
9346
|
+
var propSignals = root.__stx_reactive_prop_signals
|
|
9347
|
+
|| (root.__stx_reactive_prop_signals = {});
|
|
9348
|
+
propSignals[name] = s;
|
|
9349
|
+
propSignals[kebabName] = s;
|
|
9350
|
+
propSignals[lowerName] = s;
|
|
9292
9351
|
var observer = new MutationObserver(function() {
|
|
9293
9352
|
var attribute = readAttribute();
|
|
9294
9353
|
var hasAttr = attribute.has;
|
|
@@ -9311,7 +9370,12 @@ catch (e) {} }
|
|
|
9311
9370
|
if (next !== s()) s.set(next);
|
|
9312
9371
|
});
|
|
9313
9372
|
observer.observe(root, { attributes: true, attributeFilter: attributeNames });
|
|
9314
|
-
onDestroy(function() {
|
|
9373
|
+
onDestroy(function() {
|
|
9374
|
+
observer.disconnect();
|
|
9375
|
+
attributeNames.forEach(function(attributeName) {
|
|
9376
|
+
if (propSignals[attributeName] === s) delete propSignals[attributeName];
|
|
9377
|
+
});
|
|
9378
|
+
});
|
|
9315
9379
|
return s;
|
|
9316
9380
|
}
|
|
9317
9381
|
|
|
@@ -10967,6 +11031,49 @@ else {
|
|
|
10967
11031
|
});
|
|
10968
11032
|
var pageScopeSnapshot = { ...componentScope };
|
|
10969
11033
|
|
|
11034
|
+
/*
|
|
11035
|
+
* Any x-data scope the reactive bridge did not reach, initialized here.
|
|
11036
|
+
*
|
|
11037
|
+
* The bridge script addresses each scope by a selector it generated, and
|
|
11038
|
+
* that numbering restarts per render - so a page carrying three component
|
|
11039
|
+
* islands emits three scripts all looking for the same scope id, and two of
|
|
11040
|
+
* the three scopes are never initialized at all. The symptom is the
|
|
11041
|
+
* quietest one available: the markup is there, every binding shows its
|
|
11042
|
+
* initial value, and whatever x-init was meant to start never starts.
|
|
11043
|
+
*
|
|
11044
|
+
* Registered scopes are skipped, so the bridge stays authoritative where it
|
|
11045
|
+
* did run and this only picks up what it missed. The init expression is
|
|
11046
|
+
* read from data-stx-xinit, which the server preserves for exactly this.
|
|
11047
|
+
*
|
|
11048
|
+
* No backticks in this comment, deliberately: it lives inside the runtime
|
|
11049
|
+
* source that is embedded as a template literal, and one would end the
|
|
11050
|
+
* literal and take the whole file's syntax with it.
|
|
11051
|
+
*/
|
|
11052
|
+
if (window.__stx_reactive && window.__stx_reactive.initScope) {
|
|
11053
|
+
document.querySelectorAll('[data-stx-xdata]').forEach(function(el) {
|
|
11054
|
+
var scopeId = el.getAttribute('data-stx-scope');
|
|
11055
|
+
if (scopeId && window.stx._scopes && window.stx._scopes[scopeId]) return;
|
|
11056
|
+
if (el.__stx_scope_initialized) return;
|
|
11057
|
+
|
|
11058
|
+
var xdata = el.getAttribute('data-stx-xdata');
|
|
11059
|
+
if (!xdata) return;
|
|
11060
|
+
|
|
11061
|
+
if (!scopeId) {
|
|
11062
|
+
scopeId = '__stx_scope_island_' + (++window.stx._scopeCounter);
|
|
11063
|
+
el.setAttribute('data-stx-scope', scopeId);
|
|
11064
|
+
}
|
|
11065
|
+
|
|
11066
|
+
el.__stx_scope_initialized = true;
|
|
11067
|
+
|
|
11068
|
+
try {
|
|
11069
|
+
window.__stx_reactive.initScope(el, xdata, [], {}, el.getAttribute('data-stx-xinit') || null);
|
|
11070
|
+
}
|
|
11071
|
+
catch (e) {
|
|
11072
|
+
console.error('[stx] island scope init error:', e);
|
|
11073
|
+
}
|
|
11074
|
+
});
|
|
11075
|
+
}
|
|
11076
|
+
|
|
10970
11077
|
// Process mount queue (from stx.mount() calls during loading) only after
|
|
10971
11078
|
// caller setup is available for Vue-style projected slot ownership.
|
|
10972
11079
|
mountQueue.forEach(function(fn) { fn(); });
|
|
@@ -11331,7 +11438,11 @@ catch (e) {
|
|
|
11331
11438
|
var walker = document.createTreeWalker(root, showText, null);
|
|
11332
11439
|
var node;
|
|
11333
11440
|
while ((node = walker.nextNode())) {
|
|
11334
|
-
|
|
11441
|
+
// Browsers expose Text.nodeValue as a string, while lightweight DOM and
|
|
11442
|
+
// native embedding shims can preserve an assigned number. Diagnostics
|
|
11443
|
+
// must normalize the boundary instead of aborting the entire audit on a
|
|
11444
|
+
// missing String#indexOf method.
|
|
11445
|
+
var text = node.nodeValue == null ? '' : String(node.nodeValue);
|
|
11335
11446
|
if (text.indexOf('{{') === -1 || text.indexOf('}}') === -1) continue;
|
|
11336
11447
|
if (auditSkipped(node)) continue;
|
|
11337
11448
|
found.push(text.trim().slice(0, 80));
|
|
@@ -11587,8 +11698,14 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
|
|
|
11587
11698
|
scopeId = '__stx_scope_spa_' + (++window.stx._scopeCounter);
|
|
11588
11699
|
el.setAttribute('data-stx-scope', scopeId);
|
|
11589
11700
|
}
|
|
11701
|
+
// The init expression, which used to be dropped here. A scope
|
|
11702
|
+
// re-initialized with its data and none of its setup renders every
|
|
11703
|
+
// binding at its initial value and starts nothing - a live region
|
|
11704
|
+
// showing its empty state forever, which is indistinguishable from one
|
|
11705
|
+
// where nothing has happened yet.
|
|
11706
|
+
var xinit = el.getAttribute('data-stx-xinit');
|
|
11590
11707
|
console.log('[stx:load] initializing x-data scope:', scopeId, xdata.substring(0, 40));
|
|
11591
|
-
window.__stx_reactive.initScope(el, xdata, [], {}, null);
|
|
11708
|
+
window.__stx_reactive.initScope(el, xdata, [], {}, xinit || null);
|
|
11592
11709
|
});
|
|
11593
11710
|
}
|
|
11594
11711
|
|
|
@@ -11679,8 +11796,10 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
|
|
|
11679
11796
|
if (el.nodeType !== Node.ELEMENT_NODE) return;
|
|
11680
11797
|
// Skip scoped elements - they were already processed
|
|
11681
11798
|
if (el.hasAttribute && el.hasAttribute('data-stx-scope')) return;
|
|
11682
|
-
//
|
|
11683
|
-
|
|
11799
|
+
// Inactive chain members are owned by bindIfChain. Use explicit branch
|
|
11800
|
+
// state because an active nested branch can live under a detached outer
|
|
11801
|
+
// conditional while its reactive effects continue to run.
|
|
11802
|
+
if (el.__stx_chain_member && !el.__stx_chain_active) return;
|
|
11684
11803
|
// Process this element's directives without recursing into children
|
|
11685
11804
|
// (we'll handle children manually to skip scoped ones)
|
|
11686
11805
|
const hasFor = el.hasAttribute && (el.hasAttribute('@for') || el.hasAttribute(':for') || el.hasAttribute('x-for'));
|
|
@@ -11708,22 +11827,22 @@ catch (e) { console.warn('[stx] destroy callback error:', e); }
|
|
|
11708
11827
|
}
|
|
11709
11828
|
}
|
|
11710
11829
|
})();
|
|
11711
|
-
`}var
|
|
11830
|
+
`}var pw;var YY=E(()=>{mX();a0();mX();pw={state:D1,derived:fX,effect:gX,batch:T9,onMount:M9,onDestroy:k9,isSignal:hX,isDerived:uX,untrack:I9,peek:dX,generateSignalsRuntime:$Y,generateSignalsRuntimeDev:E9}});var D9={};o(D9,{templateCache:()=>JY,readFileCached:()=>iw,invalidateFileCacheByDir:()=>rw,invalidateFileCache:()=>nw,hashFilePath:()=>b7,getCachedSignalsRuntime:()=>aw,getCachedRouterScript:()=>tw,clearDevCaches:()=>ew,checkCache:()=>Xz,cacheTemplate:()=>$z,__setSignalsGeneratorsForTest:()=>sw});import y1 from"fs";import E5 from"path";async function iw(X){let Z;for(let Y=0;Y<3;Y++)try{let G=(await y1.promises.stat(X)).mtime.getTime(),Q=s1.get(X);if(Q&&Q.mtime===G)return Q.content;let q=await Bun.file(X).text(),U=(await y1.promises.stat(X)).mtime.getTime();if(U!==G)continue;return s1.set(X,{content:q,mtime:U}),q}catch(J){Z=J;break}throw s1.delete(X),Error(`File not found: ${X}${Z?` (${Z.message})`:""}`)}function nw(X){s1.delete(X)}function rw(X){for(let $ of s1.keys())if($.startsWith(X))s1.delete($)}function sw(X){GY=X}async function aw(X=!1){let $=GY??await Promise.resolve().then(() => (YY(),ZY));if(X)return $.generateSignalsRuntimeDev();if(lX===null)lX=$.generateSignalsRuntime();return lX}async function tw(){if(cX===null){let{getRouterScript:X}=await Promise.resolve().then(() => (h1(),Y2));cX=X()}return cX}function ew(){s1.clear(),qY(),lX=null,ow=null,cX=null}function QY(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 Xz(X,$){try{if(!$.cachePath)return null;let Z=E5.resolve($.cachePath),Y=E5.join(Z,`${b7(X)}.html`),J=E5.join(Z,`${b7(X)}.meta.json`);if(!await i(Y)||!await i(J))return null;let G=await Bun.file(J).text(),Q=JSON.parse(G);if(Q.cacheVersion!==$.cacheVersion)return null;if(Q.optionsSignature!==QY($))return null;if((await y1.promises.stat(X)).mtime.getTime()>Q.mtime)return null;for(let K of Q.dependencies)if(await i(K)){if((await y1.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 $z(X,$,Z,Y){try{if(!Y.cachePath)return;let J=E5.resolve(Y.cachePath);await y1.promises.mkdir(J,{recursive:!0});let G=E5.join(J,`${b7(X)}.html`),Q=E5.join(J,`${b7(X)}.meta.json`),q=await y1.promises.stat(X);await Bun.write(G,$);let K={sourcePath:X,mtime:q.mtime.getTime(),dependencies:Array.from(Z),cacheVersion:Y.cacheVersion,optionsSignature:QY(Y),generatedAt:Date.now()};await Bun.write(Q,JSON.stringify(K,null,2)),JY.set(X,{output:$,mtime:q.mtime.getTime(),dependencies:Z})}catch(J){console.warn(`Failed to cache template ${X}:`,J)}}function b7(X){return new Bun.CryptoHasher("sha1").update(X).digest("hex").substring(0,Zz)}var JY,s1,lX=null,ow=null,GY=null,cX=null,Zz=16;var y9=E(()=>{R0();JY=new Map,s1=new Map});function KY(X){return X.includes("data-stx-runtime")}function UY(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 b9(X,$){let Z=X.indexOf("<script"),Y=X.search(/<!doctype\b/i);if(Z!==-1&&(Y===-1||Z>Y))return X.slice(0,Z)+$+`
|
|
11712
11831
|
`+X.slice(Z);let J=/<head\b[^>]*>/i.exec(X);if(J){let Q=J.index+J[0].length;return`${X.slice(0,Q)}
|
|
11713
11832
|
${$}${X.slice(Q)}`}if(X.includes("</head>")){let Q=X.indexOf("</head>");return X.slice(0,Q)+$+`
|
|
11714
|
-
`+X.slice(Q)}if(
|
|
11833
|
+
`+X.slice(Q)}if(y7(X))return PX(X,(Q)=>`${Q}
|
|
11715
11834
|
${$}`);return`${$}
|
|
11716
|
-
${X}`}async function
|
|
11835
|
+
${X}`}async function pX(X,$){if(X.includes("data-stx-runtime")||X.includes("window.stx.state")||X.includes("STX Signals Runtime"))return X;if($.buildMode==="serve")return b9(X,'<script data-stx-runtime src="/_stx/runtime.js"></script>');if($.buildMode==="compile")return b9(X,'<script data-stx-runtime src="/__stx/runtime.__STX_HASH__.js"></script>');let{getCachedSignalsRuntime:Z}=await Promise.resolve().then(() => (y9(),D9)),Y=await Z($.debug);return b9(X,`<script data-stx-scoped data-stx-runtime>${Y}</script>`)}function Yz(X){return/<[a-z][^>]*?\sx-tooltip\s*=/i.test(X)}function WY(X){if(X.includes("data-stx-tooltip-runtime")||!Yz(X))return X;let $=`<script data-stx-scoped data-stx-tooltip-runtime>${H9()}</script>`,Z=X.lastIndexOf("</body>");if(Z===-1)return`${X}
|
|
11717
11836
|
${$}`;return`${X.slice(0,Z)}${$}
|
|
11718
|
-
${X.slice(Z)}`}async function
|
|
11719
|
-
`}let{getCachedRouterScript:J}=await Promise.resolve().then(() => (
|
|
11720
|
-
</body>`+X.slice(Q+7)}var
|
|
11721
|
-
`)}else{if(!
|
|
11837
|
+
${X.slice(Z)}`}async function wY(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 iZ($?.pagesDir);if(K.length>0)q.ownedRoutes=K}catch{}if(Object.keys(q).length>0)Y=`<script>window.__stxRouterConfig=${rZ(q)};</script>
|
|
11838
|
+
`}let{getCachedRouterScript:J}=await Promise.resolve().then(() => (y9(),D9)),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+`
|
|
11839
|
+
</body>`+X.slice(Q+7)}var iX=E(()=>{nZ();_9()});var aX={};o(aX,{scanScriptTags:()=>OY,rewriteStxImportSpecifiers:()=>AY,processSignals:()=>f9,processScriptSetup:()=>FY,preEvalLiteralReactiveIfs:()=>v9,parseLoopExpression:()=>C9,hasSignalsSyntax:()=>sX,findMarkupIndexOutsideScripts:()=>rX,extractExports:()=>VY,convertSignalLoopsToAttributes:()=>x9,convertSignalDirectivesToAttributes:()=>P9});function OY(X,$={}){let Z=[];for(let Y of MX(X,R1)){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 C9(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}=zY(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}=zY(J);if(Q)return{style:"in",iterable:G,itemVar:Q,indexVar:q}}return{style:"unknown",iterable:null,itemVar:null,indexVar:null}}function zY(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 sX(X){return z2(X)}function Gz(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 Qz(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 qz(X){if(!/[:@]for\s*=/.test(X)&&!/\bx-for\s*=/.test(X))return[];let $=new RegExp(`<([a-zA-Z][\\w-]*)\\b(${S9})>`,"iy"),Z=/(?:^|\s)(?::for|@for|x-for)\s*=\s*(?:"([^"]*)"|'([^']*)')/i,Y=MX(X,(G,Q)=>{$.lastIndex=Q;let q=$.exec(G);if(!q||q.index!==Q||!Z.test(q[2]))return-1;return $.lastIndex}),J=[];for(let G of Y){$.lastIndex=0;let Q=$.exec(G.token);if(!Q)continue;let q=Q[2].match(Z),K=C9(q?.[1]??q?.[2]??""),U=[K.itemVar,K.indexVar].filter(Boolean);if(U.length===0)continue;let W=Q[1],z=/\/\s*>$/.test(G.token)||oX.has(W.toLowerCase())?G.end:LY(X,G.start,W,G.end);if(z!==-1)J.push({start:G.start,end:z,vars:new Set(U)})}return J}function Kz(X){return X.replace(/'(?:\\.|[^'\\])*'/g,"''").replace(/"(?:\\.|[^"\\])*"/g,'""').replace(/`(?:\\.|[^`\\])*`/g,"``")}function BY(X,$,Z,Y){if(!X)return!1;let J=Kz(X),G=!1,Q=!1,q=!1,K=/([a-zA-Z_$][\w$]*)/g,U;while((U=K.exec(J))!==null){let B=U[1];if(J.slice(0,U.index).trimEnd().endsWith("."))continue;if(jY.has(B))continue;if($.has(B)||Y?.has(B))G=!0;else if(Z&&B in Z)Q=!0}let W=/([a-zA-Z_$][\w$]*)(?:\.[a-zA-Z_$][\w$]*)*\s*\(\s*\)/g,w;while((w=W.exec(J))!==null){let B=w[1];if(J.slice(0,w.index).trimEnd().endsWith("."))continue;if(jY.has(B)||Z&&B in Z)continue;q=!0}return(G||q)&&!Q}function nX(X,$,Z){let Y=Z===void 0?` ${$}`:` ${$}="${Z.replace(/"/g,""")}"`,J=X.trim(),G=J.match(HY);if(G&&Uz(G[3],G[1])){let[,Q,q,K]=G;return`<${Q}${q}${Y}>${K}</${Q}>`}return`<template${Y}>${J}</template>`}function Uz(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 P9(X,$){let Z=Qz(X);function Y(J){let G=J,Q=qz(J),q=(w)=>{let z=new Set;for(let B of Q)if(w>B.start&&w<B.end)for(let j of B.vars)z.add(j);return z},K=/@if\s*\(/g,U,W=[];while((U=K.exec(G))!==null){let w=U.index,z=w+U[0].length,B=1,j=z;while(j<G.length&&B>0){if(G[j]==="(")B++;else if(G[j]===")")B--;j++}if(B!==0)continue;let _=G.substring(z,j-1).trim(),H=j,O=1,L=H,F=/@(if\s*\(|endif)/g;F.lastIndex=H;let V;while((V=F.exec(G))!==null)if(V[1].startsWith("if"))O++;else if(V[1]==="endif"){if(O--,O===0){L=V.index+V[0].length;break}}if(O!==0)continue;let A=G.substring(H,L-6).trim(),R;if(Gz(A)){let N=D7(G.substring(w,L));if(N.length===0)continue;let T=N[0].branches.filter((I)=>I.type!=="else"),k=q(w);if(!(T.length>0&&T.every((I)=>BY(I.condition,Z,$,k))))continue;R=N[0].branches.map((I)=>{let C=Y(I.content);if(I.type==="elseif")return nX(C,"@else-if",I.condition??"");if(I.type==="else")return nX(C,"@else");return nX(C,"@if",I.condition??"")}).join(`
|
|
11840
|
+
`)}else{if(!BY(_,Z,$,q(w)))continue;R=nX(Y(A),"@if",_)}W.push({start:w,end:L,replacement:R}),K.lastIndex=L}for(let w=W.length-1;w>=0;w--){let{start:z,end:B,replacement:j}=W[w];G=G.substring(0,z)+j+G.substring(B)}return G}return Y(X)}function Wz(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 LY(X,$,Z,Y){if(oX.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)||oX.has(J)))q++}K=z+1}return-1}function zz(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 wz.test(G)}function v9(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,O]=q,L=Wz(_);if(L===void 0)continue;let F=q.index,V=F+w.length,N=!!O||/\/\s*>$/.test(w)||oX.has(z.toLowerCase())?V:LY(X,F,z,V);if(N===-1)continue;if((j===":if"||j==="x-if"||j==="@if")&&zz(X,N)){G.lastIndex=V;continue}if(L===!0){let k=`<${z}${B}${H}${O}>`;Q.push({start:F,end:V,replacement:k});continue}Q.push({start:F,end:N,replacement:""}),G.lastIndex=N}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 x9(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=C9(z),_=q==="for"?"@endfor":"@endforeach",H=1,O=B,L=q==="for"?new RegExp("@(for(?!each)\\s*\\(|endfor(?!each))","g"):new RegExp(`@(${q}\\s*\\(|end${q})`,"g");L.lastIndex=B;let F;while((F=L.exec(Z))!==null)if(F[1].startsWith(q))H++;else if(H--,H===0){O=F.index+F[0].length;break}if(H!==0)continue;let V=()=>{let T=[j.itemVar,j.indexVar].filter(Boolean);if(T.length)Q.push({start:K,end:O,vars:T})};if(j.iterable){let T=j.iterable.trim();if(T.startsWith("[")||T.startsWith("{")||T.startsWith("'")||T.startsWith('"')||T.startsWith("`")||/^-?\d/.test(T)){V();continue}let k=T.split(/[.[(]/)[0].trim(),M=$?k in $:!1,D=Q.some((I)=>K>I.start&&K<I.end&&I.vars.includes(k));if(k&&(M||D)){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,O-_.length).trim(),R=A.match(HY),N;if(R){let[,T,k,M]=R;N=`<${T}${k} @for="${z}">${M}</${T}>`}else N=`<template @for="${z}">${A}</template>`;G.push({start:K,end:O,replacement:N})}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 jz(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]!==`
|
|
11722
11841
|
`)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]!==`
|
|
11723
|
-
`)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
|
|
11842
|
+
`)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 FY(X,$,Z){let Y=OY(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 O=H.body;if(m1(H.attrs))O=l1(O);if(J.test(O))G.push({fullMatch:H.fullMatch,attrs:H.attrs,content:O})}if(G.length===0)return{output:X,setupCode:null};let Q=`__stx_setup_${Date.now()}_${Jz++}`,{hasUserImports:q,bundleClientScript:K}=await a("stx/client-script-bundler",()=>Promise.resolve().then(() => (H7(),_7))),U=[];for(let H=0;H<G.length;H++){let O=G[H].content;if(O=A5(O).code,q(O))O=await K(O,$||"",{projectRoot:process.cwd()});O=O.replace(/^\s*import\s+(?:type\s+)?\{([^}]*)\}\s+from\s+['"](?:stx|@stacksjs\/stx|@stacksjs\/browser)['"]\s*;?\s*$/gm,(F,V)=>AY(V));let L=u0(O);U.push(`// \u2500\u2500 merged signal script #${H+1} \u2500\u2500
|
|
11724
11843
|
${L}`)}let W=U.join(`
|
|
11725
11844
|
|
|
11726
|
-
`);W=
|
|
11845
|
+
`);W=jz(W);let w=VY(W),z=w.split(",").map((H)=>H.trim()).filter(Boolean),B=VX(W,Z),j=`
|
|
11727
11846
|
<script data-stx-scoped>
|
|
11728
11847
|
function ${Q}() {
|
|
11729
11848
|
${F5("const",z)}
|
|
@@ -11732,18 +11851,18 @@ ${V5(`${B}${W}`)}
|
|
|
11732
11851
|
}
|
|
11733
11852
|
window.__stx_latestSetup=${Q};
|
|
11734
11853
|
if(window.stx)window.stx._latestSetup=${Q};
|
|
11735
|
-
</script>`,_=X;for(let H of G)_=_.split(H.fullMatch).join("");if(_.includes("<body"))_=_.replace(new RegExp(`<body(${
|
|
11854
|
+
</script>`,_=X;for(let H of G)_=_.split(H.fullMatch).join("");if(_.includes("<body"))_=_.replace(new RegExp(`<body(${S9})>`),`<body$1 data-stx="${Q}">`);else{let H=["script","style","html","head","meta","link","title","!doctype"],O=!1;_=_.replace(new RegExp(`<([a-zA-Z][a-zA-Z0-9-]*)\\b(${S9})>`,"gi"),(L,F,V)=>{if(O||H.includes(F.toLowerCase()))return L;return O=!0,`<${F}${V} data-stx="${Q}">`})}return{output:_,setupCode:j}}function VY(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(_===`
|
|
11736
11855
|
`)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]!==`
|
|
11737
|
-
`)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*(?:[!:;,\n]|=(?!=)|$)/);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(":"),
|
|
11856
|
+
`)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*(?:[!:;,\n]|=(?!=)|$)/);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(":"),N=(A>=0?V.slice(A+1).trim():V).split(/[\s=]/)[0];if(N&&!Y.has(N))Z.push(N),Y.add(N)});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 O=$.slice(G).match(/^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);return}let L=$.slice(G).match(/^async\s+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)}};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 f9(X,$,Z,Y){if(!sX(X))return X;let J=X;if($.skipSignalsRuntime)return J;let{output:G,setupCode:Q}=await FY(J,Z,Y);if(J=G,J=await pX(J,$),Q){let W=rX(J,/<\/head>/i),w=W===-1?rX(J,/<body[^>]*>/i):-1;if(W!==-1)J=`${J.slice(0,W)}${Q}
|
|
11738
11857
|
${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)}
|
|
11739
11858
|
${Q}${J.slice(B)}`}else J=`${J}
|
|
11740
|
-
${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=
|
|
11741
|
-
`)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
|
|
11859
|
+
${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=rX(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 rX(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 AY(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 _Y;return`var ${$.join(", ")}; ${_Y}`}var Jz=0,S9=`(?:"[^"]*"|'[^']*'|[^>"'])*`,HY,jY,oX,wz,_Y="/* [stx import stripped, resolved via window.stx in __stx_setup] */";var S7=E(()=>{A7();CX();a0();i$();R0();iX();c1();B7();HY=/^<([a-zA-Z][a-zA-Z0-9-]*)\b((?:\s+[^=\s>]+(?:=(?:"[^"]*"|'[^']*'|[^\s>]*))?)*\s*)>([\s\S]*)<\/\1>$/s;jY=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"]);oX=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]);wz=/\s(?::else-if|x-else-if|@else-if|:else|x-else|@else)(?=[=\s/>])/});import Bz from"fs";import h from"path";function Hz(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 RY(X){return X.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function Oz(X){return/\bjs\b/.test(X)||/\blang\s*=\s*["']?(js|javascript)["']?/i.test(X)}function m1(X){return!Oz(X)}function l1(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:v0()}).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 Lz(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]!==`
|
|
11860
|
+
`)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 Fz(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 Vz(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 Az(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 Fz(q)){let U=K.trim();if(!U||U.startsWith("..."))continue;let W=Vz(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 X8(X,$,Z,Y,J){let G=X.endsWith(".stx")?X.slice(0,-4):X,Q=(H)=>H.split("-").map((O)=>O.charAt(0).toUpperCase()+O.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"?h.resolve(J.root):void 0,w=W??h.dirname(Y),z=[],B=(H)=>{if(H&&!z.includes(H))z.push(H)},j=Z.__originalFilePath;if(j)B(h.join(h.dirname(j),"components"));B($),B(J._rootComponentsDir),B(h.join(h.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(h.resolve(W,"resources/views/components")),B(h.resolve(W,"resources/components")),B(h.resolve(W,"src/components")),B(h.resolve(W,"components"));if(G.startsWith("./")||G.startsWith("../"))return i(h.resolve(h.dirname(Y),`${G}.stx`));for(let H of z){let O=h.isAbsolute(H)?H:h.resolve(w,H);for(let L of U)if(await i(h.join(O,L)))return!0}return!1}function Rz(X){return X==="visible"||X==="idle"||X==="interaction"||X.startsWith("media:")}function Nz(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 Tz(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 a1(X,$,Z,Y,J,G,Q,q=new Set,K){let{extractVariables:U}=await a("stx/variable-extractor",()=>Promise.resolve().then(() => (E7(),bX))),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"&&Rz(z)?z:"";try{let j=(S)=>S.split("-").map((f)=>f.charAt(0).toUpperCase()+f.slice(1)).join(""),_=(S)=>S.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),H=X.endsWith(".stx")?X.slice(0,-4):X,O=null,L=J.__importedComponents;if(L){let S=[H,H.toLowerCase(),j(H),_(H)];for(let f of S)if(L.has(f)){O=L.get(f);break}}let F=[];if(!O){let S=[`${H}.stx`,`${j(H)}.stx`,`${_(H)}.stx`],f=[...new Set(S)],m=J.__originalFilePath,d=[];if(m){let K0=h.join(h.dirname(m),"components");d.push(K0)}if(Y)d.push(Y);let Y0=Q._rootComponentsDir;if(typeof Y0==="string"&&!d.includes(Y0))d.push(Y0);let _0=h.join(h.dirname(G),"components");if(!d.includes(_0))d.push(_0);if(Q.componentsDir&&Q.componentsDir!==Y&&!d.includes(Q.componentsDir))d.push(Q.componentsDir);let Q1=Q._pluginComponentDirs;if(Array.isArray(Q1)){for(let K0 of Q1)if(typeof K0==="string"&&!d.includes(K0))d.push(K0)}let p0=typeof Q.root==="string"?h.resolve(Q.root):void 0,P0=p0??h.dirname(G),s0=[];if(p0)s0.push(h.resolve(p0,"resources/views/components")),s0.push(h.resolve(p0,"resources/components")),s0.push(h.resolve(p0,"src/components")),s0.push(h.resolve(p0,"components"));s0.push(h.resolve(import.meta.dir,"components"));for(let K0 of s0)if(!d.includes(K0))d.push(K0);let f1=[...new Set(d.map((K0)=>{if(!K0)return K0;return h.isAbsolute(K0)?K0:h.resolve(P0,K0)}))];d.length=0,d.push(...f1);let L1=`${H}\x00${G}\x00${f1.join("\x00")}`,w5=eX.get(L1);if(w5)if(await i(w5))O=w5;else eX.delete(L1);if(!O&&(H.startsWith("./")||H.startsWith("../")))O=h.resolve(h.dirname(G),`${H}.stx`),F.push(O);else if(!O)for(let K0 of d){if(!K0)continue;for(let r of f){let h0=h.join(K0,r);if(F.push(h0),await i(h0)){O=h0;break}}if(O)break;if(!O)try{let r=await import("fs");if(!r.statSync(K0,{throwIfNoEntry:!1})?.isDirectory())continue;let s5=8,z5=[{path:K0,depth:0}];while(z5.length>0&&!O){let q1=z5.pop();if(q1.depth>=s5)continue;let e7;try{e7=r.readdirSync(q1.path,{withFileTypes:!0})}catch{continue}for(let XX of e7){if(!XX.isDirectory())continue;if(XX.name==="node_modules"||XX.name.startsWith("."))continue;let t3=h.join(q1.path,XX.name);for(let lK of f){let z$=h.join(t3,lK);if(F.push(z$),await i(z$)){O=z$;break}}if(O)break;z5.push({path:t3,depth:q1.depth+1})}}}catch{}if(O)break}if(O)eX.set(L1,O)}if(!O||!await i(O)){let S=F.length>0?`
|
|
11742
11861
|
Searched paths:
|
|
11743
|
-
${F.map((
|
|
11744
|
-
`)}`:"";return`[Error loading component: ENOENT: no such file or directory, open '${X}']${S}`}K.add(O);let V;if(
|
|
11745
|
-
`)}`}if(Z&&W0.includes("{{ text || slot }}"))W0=W0.replace(/\{\{\s*text\s*\|\|\s*slot\s*\}\}/g,()=>Z);let{applySlots:e}=await a("stx/slots",()=>Promise.resolve().then(() => (
|
|
11746
|
-
${F5("const",[...
|
|
11862
|
+
${F.map((f)=>` - ${f}`).join(`
|
|
11863
|
+
`)}`:"";return`[Error loading component: ENOENT: no such file or directory, open '${X}']${S}`}K.add(O);let V;if(tX.has(O))V=tX.get(O);else try{V=await Bun.file(O).text(),tX.set(O,V)}catch(S){return`[Error loading component: ${S instanceof Error?S.message:String(S)}]`}let A=new Set(["__originalFilePath","__importedComponents",AX,"__stx_client_signal_names"]),R={};for(let[S,f]of Object.entries(J))if(!S.startsWith("__")||A.has(S))R[S]=f;let{extractSlotContent:N}=await a("stx/slots",()=>Promise.resolve().then(() => (z9(),w9))),T=N(Z),k={};if(T.defaultSlot?.trim())k.default=T.defaultSlot;for(let[S,f]of T.namedSlots)k[S]=f.content;let M={...R,...$,props:$,slot:Z,$slots:k,__processedComponents:w,__sections:{},__stx_signals_gate:w1(V)||Nz(Z)};Az(V,M);let D=V,I=EX(D);if(I)D=I.content.trim();let C=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,b=[...V.matchAll(C)],y=[],v=b.some((S)=>/\bserver\b/.test(S[1]||"")&&/\bcache\b/.test(S[1]||""))&&b.every((S)=>/\bserver\b/.test(S[1]||"")),x=null,g=null;if(v){let S=Hz({props:$,slot:Z,buildMode:Q.buildMode??"",skipEventDirectives:Q.skipEventDirectives===!0});if(S!==null){x=`${O}\x00${S}`;let f=g9.get(x);if(f){for(let m of f.dependencies)K.add(m);return f.output}g=new Set(K)}}for(let S of b){let f=S[1]||"",m=S[2]||"",d=f.includes("server");if(m1(f)&&m.trim())m=l1(m);if(d&&m)try{await U(m,M,O)}catch(_0){}if(!d){let _0=m.replace(/^\s*const\s*\{[^}]+\}\s*=\s*window\.stx\s*;?\s*\n?/gm,""),Q1=_0.includes("{{")&&_0.includes("}}"),p0=_0.includes("{!!")&&_0.includes("!!}");if(Q1||p0)_0=kX(_0,M);let P0=f.replace(/\s*\bts\b/g,"").replace(/\s*\blang\s*=\s*["']?(ts|typescript)["']?/gi,"");y.push(`<script${P0}>${_0}</script>`)}}let l=V.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),c=l?l[1]:"",D0=l?l[2]:"",y0="",c0=c&&/\bscoped\b/i.test(c);if(l)y0=`<style${c}>${D0}</style>`;let W0=D;if(W0=W0.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),l)W0=W0.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");{let S=/@push\s*\(\s*['"]styles['"]\s*\)([\s\S]*?)@endpush/gi,f=[];if(W0=W0.replace(S,(m,d)=>{let Y0=d.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i);if(Y0)f.push(`<style${Y0[1]}>${Y0[2]}</style>`);return""}),W0=W0.replace(/@push\s*\(\s*['"][^'"]+['"]\s*\)[\s\S]*?@endpush/gi,""),f.length>0)y0=`${y0}${f.join(`
|
|
11864
|
+
`)}`}if(Z&&W0.includes("{{ text || slot }}"))W0=W0.replace(/\{\{\s*text\s*\|\|\s*slot\s*\}\}/g,()=>Z);let{applySlots:e}=await a("stx/slots",()=>Promise.resolve().then(() => (z9(),w9))),{defaultSlot:T0,namedSlots:o0}=T;W0=await e(W0,T0,o0,M);let O1=y.some((S)=>/\b(?:state|derived|effect|ref|reactive|computed|watch|watchEffect|useReactiveProp|defineProps|withDefaults|defineEmits|defineExpose|defineSlots)\s*(?:<[^<>()]*>)?\s*\(/.test(S)),W5=Tz(y),n=Array.isArray(M.__stx_client_signal_names)?M.__stx_client_signal_names:[];if(W5.length>0||n.length>0)M.__stx_client_signal_names=[...new Set([...n,...W5])];let t={...Q,_rootComponentsDir:Q._rootComponentsDir||Q.componentsDir,componentsDir:h.dirname(O),skipSignalsRuntime:!0,skipEventDirectives:O1||y.length===0,defaultLayout:void 0};M.__stxProcessingDepth=(J.__stxProcessingDepth||0)+1;let q0=await N0(W0,M,O,t,K),b0=new Set(Array.isArray(J.__stx_preserved_client_expressions)?J.__stx_preserved_client_expressions:[]);for(let S of q0.matchAll(/\{\{([\s\S]*?)\}\}/g))b0.add(S[1].trim());if(b0.size>0)J.__stx_preserved_client_expressions=[...b0];let j0=`stx_${H.replace(/[^a-zA-Z0-9]/g,"_")}_${++_z}_${Math.random().toString(36).slice(2,8)}`,P=q0;if(O1){let S="";if(Object.keys($).length>0)try{S=` data-stx-props="${RY(JSON.stringify($))}"`}catch{}let f=B?` stx-hydrate="${RY(B)}"`:"";P=`<div data-stx-scope="${j0}"${S}${f}>${q0}</div>`;let m=await Promise.all(y.map(async(d)=>{let Y0=d.match(/<script([^>]*)>([\s\S]*)<\/script>/i);if(!Y0)return d;let[,_0,Q1]=Y0,p0=LX(Q1,{filePath:O,projectRoot:process.cwd()}),P0=p0.code,s0=FX(p0.styles);P0=A5(P0).code;let{hasUserImports:f1,bundleClientScript:L1}=await a("stx/client-script-bundler",()=>Promise.resolve().then(() => (H7(),_7)));if(f1(P0))P0=await L1(P0,O,{projectRoot:process.cwd(),minify:Q.buildMode==="compile"});let{rewriteStxImportSpecifiers:w5}=await a("stx/signal-processing",()=>Promise.resolve().then(() => (S7(),aX)));P0=P0.replace(/^\s*import\s+(?:type\s+)?\{([^}]*)\}\s+from\s+['"](?:stx|@stacksjs\/stx|@stacksjs\/browser)['"]\s*;?\s*$/gm,(q1,e7)=>w5(e7));let K0=u0(P0),r=Lz(K0),h0=`function(__scopeId) {
|
|
11865
|
+
${F5("const",[...w2,...r],K0)}
|
|
11747
11866
|
const __scope = window.stx._scopes = window.stx._scopes || {};
|
|
11748
11867
|
const __scopeVars = __scope[__scopeId] = __scope[__scopeId] || {};
|
|
11749
11868
|
__scopeVars.$refs = __scopeVars.$refs || {};
|
|
@@ -11771,15 +11890,15 @@ catch (e) {}
|
|
|
11771
11890
|
finally {
|
|
11772
11891
|
window.__STX_CURRENT_ELEMENT__ = __previousCurrentElement;
|
|
11773
11892
|
}
|
|
11774
|
-
}`,
|
|
11893
|
+
}`,s5=B?null:l2(J,h0),z5=s5?`window.__stxComponentFactories[${JSON.stringify(s5)}](${JSON.stringify(j0)});`:`(${h0})(${JSON.stringify(j0)});`;if(B)return`${s0}<script type="stx/island" data-stx-island="${j0}" data-stx-scoped${_0}>${z5}</script>`;return`${s0}<script data-stx-scoped data-stx-run="always"${_0}>${z5}</script>`}));if(P=P+`
|
|
11775
11894
|
`+m.join(`
|
|
11776
11895
|
`),y0)P+=`
|
|
11777
11896
|
`+y0}else{if(y0)P+=`
|
|
11778
|
-
`+y0;if(y.length>0){let S=
|
|
11897
|
+
`+y0;if(y.length>0){let S=M.__stx_event_bindings||[],f=F7(M),m=await Promise.all(y.map(async(d)=>{let Y0=d.match(/<script\b[^>]*>([\s\S]*?)<\/script>/);if(!Y0)return d;return await V7(Y0[1],{eventBindings:S,templateContent:P,filePath:O,projectRoot:process.cwd(),serverData:f})}));P+=`
|
|
11779
11898
|
`+m.join(`
|
|
11780
|
-
`),
|
|
11899
|
+
`),M.__stx_event_bindings=[]}}if(c0){let S=IX(P,O);if(S.hasScoped)P=S.html}if(x&&g)g9.set(x,{output:P,dependencies:[...K].filter((S)=>!g.has(S))});return P}catch(j){return`[Error processing component: ${j instanceof Error?j.message:String(j)}]`}finally{W.delete(X)}}async function i(X){return Bun.file(X).exists()}function h9(X,$){let Z=h.resolve($),Y=h.resolve(X),J=Z.endsWith(h.sep)?Z:Z+h.sep;if(Y===Z||Y.startsWith(J))return Y;return null}async function u9(X,$,Z,Y){let J=await Mz(X,$,Z,Y);if(J===null)return null;let G=h9(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=h.isAbsolute(q)?q:h.resolve(process.cwd(),q);if(h9(J,K))return h.resolve(J)}return console.warn(`[stx] rejected resolved template path that escapes project root: ${J} (template: ${X}, from: ${$})`),null}async function Mz(X,$,Z,Y){if(Z.debug)console.log(`Resolving template path: ${X} from ${$}`);let J=h.dirname($),G=process.cwd();if(X.startsWith("/")){let z=h.join(G,X),B=h9(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 i(B)&&Y)Y.add(B);return B}let Q=h.join(J,X);if(await i(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 i(B)){if(Z.debug)console.log(`Found direct path with extension: ${B}`);if(Y)Y.add(B);return B}}let q="",K=h.resolve(J),U=process.cwd();for(let z=0;z<10;z++){let B=h.join(K,"layouts"),j=!1;try{j=Bz.statSync(B,{throwIfNoEntry:!1})?.isDirectory()??!1}catch{}if(j){q=B;break}let _=h.dirname(K);if(_===K||_.length<U.length)break;K=_}if(q){let z=X.startsWith("layouts/")?X.slice(8):X,B=h.join(q,z);if(await i(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 i(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=h.isAbsolute(Z.layoutsDir)?Z.layoutsDir:h.resolve(process.cwd(),Z.layoutsDir),B=X.startsWith("layouts/")?X.slice(8):X,j=h.join(z,B);if(await i(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 i(_)){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=h.join(Z.partialsDir||J,"layouts",z[1]);if(await i(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 i(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=h.join(Z.partialsDir,"layouts"),await i(q)){let z=h.join(q,X);if(await i(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 i(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||h.join(process.cwd(),"views"),w=h.join(W,X);if(await i(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 i(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=h.join(h.dirname(J),"layouts",X);if(await i(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 i(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 NY(X,$,Z){let Y=0,J="",G="";try{if(typeof $==="number"&&$>=0){let Q=X.split(`
|
|
11781
11900
|
`),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(`
|
|
11782
|
-
`);break}}else if(Z){let Q=X.indexOf(Z);if(Q>=0)return
|
|
11901
|
+
`);break}}else if(Z){let Q=X.indexOf(Z);if(Q>=0)return NY(X,Q)}}catch{}return{lineNumber:Y,lineContent:J,context:G}}function w0(X,$,Z,Y,J,G){let{lineNumber:Q,context:q}=NY(Y,J,G),K=Z.split("/").pop(),U=0;if(typeof J==="number"&&J>=0&&Y){let w=Y.lastIndexOf(`
|
|
11783
11902
|
`,Math.max(0,J-1));U=J-(w+1)+1}let W="";if(Q>0)W+=`
|
|
11784
11903
|
${Z}:${Q}${U>0?`:${U}`:""}: ${X.toLowerCase()} error: ${$}
|
|
11785
11904
|
`;if(W+=`
|
|
@@ -11792,8 +11911,8 @@ ${X0.yellow}${X0.bold}Message:${X0.reset} ${$}
|
|
|
11792
11911
|
`,q)W+=`
|
|
11793
11912
|
${X0.blue}${X0.bold}Context:${X0.reset}
|
|
11794
11913
|
${X0.dim}${q}${X0.reset}
|
|
11795
|
-
`;return W}function
|
|
11796
|
-
`||L==="\r"||L===" "||L===void 0)w++;z=H+9}else{if(w--,w===0){B=O;break}z=O+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=
|
|
11914
|
+
`;return W}function qY(){tX.clear(),eX.clear(),g9.clear()}var tX,eX,g9,_z=0,X0;var R0=E(()=>{A7();t$();Z1();a0();M5();$8();V1();Y9();J9();B7();OZ();E7();tX=new p1(500),eX=new p1(1000),g9=new p1(2000);X0={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 TY(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),O=X.indexOf("@endmarkdown",z);if(O===-1)break;if(H!==-1&&H<O&&H!==q){let L=X[H+9];if(L==="("||L===`
|
|
11915
|
+
`||L==="\r"||L===" "||L===void 0)w++;z=H+9}else{if(w--,w===0){B=O;break}z=O+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=j7(U.trim(),z);Y=Y.split(q).join(B)}catch(w){let z=w instanceof Error?w.message:String(w),B=w0("Markdown Directive",`Error processing markdown: ${z}`,Z,X,W,q);Y=Y.split(q).join(B)}return Y}async function MY(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}),j7(X.trim(),J)}var d9=E(()=>{R0()});function Ez(X){if(kz.set(X.name,X),X.client)Iz.set(X.name,X.client)}function Z8(X){return Ez(X),{name:X.name,hasEndTag:X.hasEndTag??!0,description:X.description,handler:async(Z,Y,J,G)=>{let Q=Dz(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 Dz(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 kz,Iz;var m9=E(()=>{kz=new Map,Iz=new Map});function l9(X,$=D5,Z={},Y){return $.sort((J,G)=>J-G).map((J)=>{return`${P7(X,{...Z,w:J,fm:Y})} ${J}w`}).join(", ")}function kY(X,$,Z=yz,Y={},J){return Z.sort((G,Q)=>G-Q).map((G)=>{let Q=Math.round($*G);return`${P7(X,{...Y,w:Q,dpr:G,fm:J})} ${G}x`}).join(", ")}function c9(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 P7(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 p9(X){return bz[X]||"application/octet-stream"}var D5,yz,C7,bz;var i9=E(()=>{D5=[320,480,640,768,1024,1280,1536,1920,2560],yz=[1,1.5,2,3],C7=["avif","webp","jpeg"],bz={avif:"image/avif",webp:"image/webp",jpeg:"image/jpeg",png:"image/png",gif:"image/gif"}});async function Cz(){try{return await import("ts-images")}catch{return null}}async function Pz(X,$={}){let Z={...Sz,...$},Y=await Cz();if(Y)try{return await vz(X,Z,Y)}catch(J){console.warn(`[stx-media] ts-images placeholder generation failed, using fallback: ${J}`)}return xz(X,Z)}async function vz(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 xz(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 IY(X,$,Z={}){let Y=Z.transitionDuration||300,J=Z.easing||"ease-out";return`
|
|
11797
11916
|
#${X} {
|
|
11798
11917
|
--stx-img-transition-duration: ${Y}ms;
|
|
11799
11918
|
--stx-img-transition-easing: ${J};
|
|
@@ -11810,7 +11929,7 @@ ${X0.dim}${q}${X0.reset}
|
|
|
11810
11929
|
#${X}.stx-img-loaded img {
|
|
11811
11930
|
opacity: 1;
|
|
11812
11931
|
}
|
|
11813
|
-
`.trim()}async function
|
|
11932
|
+
`.trim()}async function EY(X,$={}){let Z=`${X}:${JSON.stringify($)}`;if(n9.has(Z))return n9.get(Z);let Y=await Pz(X,$);return n9.set(Z,Y),Y}var Sz,r9,n9;var DY=E(()=>{Sz={strategy:"thumbhash",width:20,quality:50,blurLevel:40,transitionDuration:300,easing:"ease-out"},r9=`
|
|
11814
11933
|
.stx-img-placeholder {
|
|
11815
11934
|
position: relative;
|
|
11816
11935
|
overflow: hidden;
|
|
@@ -11839,20 +11958,20 @@ ${X0.dim}${q}${X0.reset}
|
|
|
11839
11958
|
filter: blur(0);
|
|
11840
11959
|
transform: scale(1);
|
|
11841
11960
|
}
|
|
11842
|
-
`.trim();m9=new Map});import{createHash as AY}from"crypto";import{readFile as Ez,stat as RY}from"fs/promises";async function S0(X){try{let $=await Ez(X);return AY("sha256").update($).digest("hex").slice(0,16)}catch{return""}}function VY(X){return AY("sha256").update(X).digest("hex").slice(0,16)}function eX(X,$){let Z=JSON.stringify($,Object.keys($).sort());return`${VY(X)}-${VY(Z)}`}async function c9(X){try{return(await RY(X)).mtimeMs}catch{return 0}}async function M0(X){try{return await RY(X),!0}catch{return!1}}var a1=()=>{};import{mkdir as Dz,readFile as yz,writeFile as bz,readdir as vR,rm as Sz,stat as xR}from"fs/promises";import{join as NY,dirname as Cz}from"path";async function Pz(X){try{await Dz(X,{recursive:!0})}catch{}}function MY(X,$,Z){return NY(X,Z,`${$}.json`)}async function TY(X,$,Z){if((Date.now()-X.createdAt)/86400000>Z)return!1;if(await c9($)!==X.srcMtime)return!1;return!0}async function X8(X,$,Z,Y=p9){if(!Y.enabled)return null;let J=eX(X,$),G=y5.get(J);if(G){if(await TY(G,X,Y.maxAge))return G.lastAccessedAt=Date.now(),G.data;y5.delete(J)}let Q=MY(Y.directory,J,Z);if(await M0(Q))try{let q=await yz(Q,"utf-8"),K=JSON.parse(q);if(await TY(K,X,Y.maxAge))return K.lastAccessedAt=Date.now(),y5.set(J,K),K.data}catch{}return null}async function $8(X,$,Z,Y,J=p9){if(!J.enabled)return;let G=eX(X,$),Q=await S0(X),q=await c9(X),K={key:G,src:X,srcHash:Q,srcMtime:q,optionsHash:eX("",$),data:Z,createdAt:Date.now(),lastAccessedAt:Date.now()};y5.set(G,K);let U=MY(J.directory,G,Y);try{await Pz(Cz(U)),await bz(U,JSON.stringify(K,null,2))}catch(W){console.warn(`[stx-media] Failed to write cache: ${W}`)}}async function Z8(X,$=p9){if(X==="all")y5.clear();else y5.clear();let Z=X==="all"?["image","video"]:[X];for(let Y of Z){let J=NY($.directory,Y);try{await Sz(J,{recursive:!0,force:!0})}catch{}}}var y5,p9;var i9=E(()=>{a1();y5=new Map,p9={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}});class J8{config;constructor(X={}){this.config={...vz,...X}}async get(X,$){return X8(X,$,"image",this.config)}async set(X,$,Z){return $8(X,$,Z,"image",this.config)}async clear(){return Z8("image",this.config)}updateConfig(X){this.config={...this.config,...X}}}function n9(X){if(!Y8)Y8=new J8(X);else if(X)Y8.updateConfig(X);return Y8}async function G8(X,$,Z){let Y=Z?{directory:`${Z.outputDir}/../.cache`}:{};return n9(Y).get(X,$)}async function Q8(X,$,Z,Y){let J=Y?{directory:`${Y.outputDir}/../.cache`}:{};return n9(J).set(X,$,Z)}async function kY(){return n9().clear()}var vz,Y8=null;var r9=E(()=>{i9();vz={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500,cacheVariants:!0,cachePlaceholders:!0}});import{resolve as xz,basename as fz,extname as gz,join as hz}from"path";import{mkdir as uz}from"fs/promises";async function o9(){try{return await import("ts-images")}catch{return null}}function IY(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 dz(X,$){let Z=$?IY($):IY("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 EY(X,$,Z){let Y=await o9();if(!Y)return console.warn("[stx-media] ts-images not installed, skipping optimization"),{src:X,processed:!1};let J=await G8(X,$,Z);if(J)return J;try{let G=xz(X);if(!await M0(G))return{src:X,processed:!1,errors:[`Source file not found: ${X}`]};let Q=dz(Z,$.preset),q=Z.outputDir||"dist/images",K=Z.baseUrl||"/images";await uz(q,{recursive:!0});let U=await S0(G),W=fz(X,gz(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 s9(G,$.transformations,Y);for(let j of w){let _=Q[j]||{},H=`${W}-${U}.${j}`,O=hz(q,H);try{let L=await Y.optimizeImage({input:B||G,output:O,format:j,quality:_.quality,progressive:_.progressive});if(L){if(z.variants.push({path:O,url:`${K}/${H}`,width:L.width||0,height:L.height||0,format:j,size:L.outputSize||0}),!z.originalWidth&&L.width)z.originalWidth=L.width,z.originalHeight=L.height}}catch(L){z.errors=z.errors||[],z.errors.push(`Failed to optimize ${j}: ${L}`)}}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 Q8(X,$,z,Z),z}catch(G){return{src:X,processed:!1,errors:[`Processing failed: ${G}`]}}}async function DY(X,$,Z,Y){let J=await o9();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 s9(X,$,Z){let Y=Z||await o9();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 yY=E(()=>{a1();r9()});import{resolve as mz,basename as lz,extname as cz,join as pz}from"path";import{mkdir as iz}from"fs/promises";async function nz(){try{return await import("ts-images")}catch{return null}}async function bY(X,$,Z){let Y=await nz();if(!Y)return console.warn("[stx-media] ts-images not installed, skipping responsive generation"),null;let J=mz(X);if(!await M0(J))return console.warn(`[stx-media] Source file not found: ${X}`),null;try{let G=$.responsiveWidths||Z.breakpoints||rz,Q=$.formats||Z.defaultFormats||["avif","webp","jpeg"],q=Z.outputDir||"dist/images",K=Z.baseUrl||"/images";await iz(q,{recursive:!0});let U=await S0(J),W=lz(X,cz(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 O=`${W}-${H}w-${U}.${j}`,L=pz(q,O),F=`${K}/${O}`;try{let V=w[j]?.quality||80;if(await M0(L)){z.byFormat[j].push({path:L,url:F,width:H,height:0,format:j,size:0}),_.push(`${F} ${H}w`);continue}let A=await Y.processImage({input:J,output:L,format:j,quality:V,resize:{width:H}});if(A)z.byFormat[j].push({path:L,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||oz(G),z}catch(G){return console.error(`[stx-media] Responsive generation failed: ${G}`),null}}function oz(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 SY(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 rz;var CY=E(()=>{a1();rz=[320,480,640,768,1024,1280,1536,1920]});var PY={};o(PY,{setCachedImageResult:()=>Q8,processImage:()=>EY,optimizeImage:()=>DY,getCachedImageResult:()=>G8,generateSrcset:()=>SY,generateResponsiveVariants:()=>bY,clearImageCache:()=>kY,applyTransformations:()=>s9,ImageProcessorCache:()=>J8});var vY=E(()=>{yY();CY();r9()});async function sz(){try{return await Promise.resolve().then(() => (vY(),PY))}catch(X){if(!xY)console.warn("[stx-media] Image processor not available, some features disabled:",X),xY=!0;return null}}async function q8(X,$={}){let Z=$,Y=X;if(Y.process&&!Y.skipOptimization){if(Z.tsImagesConfig?.enabled&&!Z.isDev)return Xj(Y,Z)}if(Z.processedResult?.processed)return X3(X,Z.processedResult,$);if(Z.responsiveVariants)return uY(X,Z.responsiveVariants,$);let{src:J,alt:G,width:Q,height:q,sizes:K,widths:U=D5,dpr:W,formats:w=S7,quality:z=a9,params:B={},placeholder:j="none",placeholderOptions:_={},lazy:H=!0,priority:O=!1,loading:L=O?"eager":U8,decoding:F=K8,fetchpriority:V,objectFit:A,objectPosition:R,crossorigin:T,referrerpolicy:k}=X,M=X.class,N=X.style,D=X.id,I=X.data||{},{isDev:C=!1,baseUrl:b=""}=$;if(C&&!$.optimize)return ez(X);let y,v,x=D||`stx-img-${Math.random().toString(36).slice(2,8)}`;if(j!=="none"&&!O)try{y=await LY(J,{strategy:j,..._}),v=OY(x,y,_)}catch{}let f=W!==void 0&&Q!==void 0,c;if(f)c=tz(X,x,y,$);else c=await az(X,x,y,$);let l;if(O){let c0=w.includes("webp")?"webp":w[0],W0=g9(J,U,{...B,q:z},c0),e=typeof K==="object"?h9(K):K||"100vw";l=`<link rel="preload" as="image" imagesrcset="${W0}" imagesizes="${e}" />`}let D0=[];if(!fY&&j!=="none")D0.push(l9),fY=!0;if(v)D0.push(v);let y0=H?hY(x):void 0;return{html:c,preloadLink:l,css:D0.length>0?D0.join(`
|
|
11843
|
-
`):void 0,script:y0}}async function
|
|
11961
|
+
`.trim();n9=new Map});import{createHash as bY}from"crypto";import{readFile as fz,stat as SY}from"fs/promises";async function S0(X){try{let $=await fz(X);return bY("sha256").update($).digest("hex").slice(0,16)}catch{return""}}function yY(X){return bY("sha256").update(X).digest("hex").slice(0,16)}function Y8(X,$){let Z=JSON.stringify($,Object.keys($).sort());return`${yY(X)}-${yY(Z)}`}async function o9(X){try{return(await SY(X)).mtimeMs}catch{return 0}}async function k0(X){try{return await SY(X),!0}catch{return!1}}var t1=()=>{};import{mkdir as gz,readFile as hz,writeFile as uz,readdir as rR,rm as dz,stat as oR}from"fs/promises";import{join as PY,dirname as mz}from"path";async function lz(X){try{await gz(X,{recursive:!0})}catch{}}function vY(X,$,Z){return PY(X,Z,`${$}.json`)}async function CY(X,$,Z){if((Date.now()-X.createdAt)/86400000>Z)return!1;if(await o9($)!==X.srcMtime)return!1;return!0}async function J8(X,$,Z,Y=s9){if(!Y.enabled)return null;let J=Y8(X,$),G=y5.get(J);if(G){if(await CY(G,X,Y.maxAge))return G.lastAccessedAt=Date.now(),G.data;y5.delete(J)}let Q=vY(Y.directory,J,Z);if(await k0(Q))try{let q=await hz(Q,"utf-8"),K=JSON.parse(q);if(await CY(K,X,Y.maxAge))return K.lastAccessedAt=Date.now(),y5.set(J,K),K.data}catch{}return null}async function G8(X,$,Z,Y,J=s9){if(!J.enabled)return;let G=Y8(X,$),Q=await S0(X),q=await o9(X),K={key:G,src:X,srcHash:Q,srcMtime:q,optionsHash:Y8("",$),data:Z,createdAt:Date.now(),lastAccessedAt:Date.now()};y5.set(G,K);let U=vY(J.directory,G,Y);try{await lz(mz(U)),await uz(U,JSON.stringify(K,null,2))}catch(W){console.warn(`[stx-media] Failed to write cache: ${W}`)}}async function Q8(X,$=s9){if(X==="all")y5.clear();else y5.clear();let Z=X==="all"?["image","video"]:[X];for(let Y of Z){let J=PY($.directory,Y);try{await dz(J,{recursive:!0,force:!0})}catch{}}}var y5,s9;var a9=E(()=>{t1();y5=new Map,s9={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}});class K8{config;constructor(X={}){this.config={...cz,...X}}async get(X,$){return J8(X,$,"image",this.config)}async set(X,$,Z){return G8(X,$,Z,"image",this.config)}async clear(){return Q8("image",this.config)}updateConfig(X){this.config={...this.config,...X}}}function t9(X){if(!q8)q8=new K8(X);else if(X)q8.updateConfig(X);return q8}async function U8(X,$,Z){let Y=Z?{directory:`${Z.outputDir}/../.cache`}:{};return t9(Y).get(X,$)}async function W8(X,$,Z,Y){let J=Y?{directory:`${Y.outputDir}/../.cache`}:{};return t9(J).set(X,$,Z)}async function xY(){return t9().clear()}var cz,q8=null;var e9=E(()=>{a9();cz={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500,cacheVariants:!0,cachePlaceholders:!0}});import{resolve as pz,basename as iz,extname as nz,join as rz}from"path";import{mkdir as oz}from"fs/promises";async function X4(){try{return await import("ts-images")}catch{return null}}function fY(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 sz(X,$){let Z=$?fY($):fY("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 gY(X,$,Z){let Y=await X4();if(!Y)return console.warn("[stx-media] ts-images not installed, skipping optimization"),{src:X,processed:!1};let J=await U8(X,$,Z);if(J)return J;try{let G=pz(X);if(!await k0(G))return{src:X,processed:!1,errors:[`Source file not found: ${X}`]};let Q=sz(Z,$.preset),q=Z.outputDir||"dist/images",K=Z.baseUrl||"/images";await oz(q,{recursive:!0});let U=await S0(G),W=iz(X,nz(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 $4(G,$.transformations,Y);for(let j of w){let _=Q[j]||{},H=`${W}-${U}.${j}`,O=rz(q,H);try{let L=await Y.optimizeImage({input:B||G,output:O,format:j,quality:_.quality,progressive:_.progressive});if(L){if(z.variants.push({path:O,url:`${K}/${H}`,width:L.width||0,height:L.height||0,format:j,size:L.outputSize||0}),!z.originalWidth&&L.width)z.originalWidth=L.width,z.originalHeight=L.height}}catch(L){z.errors=z.errors||[],z.errors.push(`Failed to optimize ${j}: ${L}`)}}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 W8(X,$,z,Z),z}catch(G){return{src:X,processed:!1,errors:[`Processing failed: ${G}`]}}}async function hY(X,$,Z,Y){let J=await X4();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 $4(X,$,Z){let Y=Z||await X4();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 uY=E(()=>{t1();e9()});import{resolve as az,basename as tz,extname as ez,join as Xj}from"path";import{mkdir as $j}from"fs/promises";async function Zj(){try{return await import("ts-images")}catch{return null}}async function dY(X,$,Z){let Y=await Zj();if(!Y)return console.warn("[stx-media] ts-images not installed, skipping responsive generation"),null;let J=az(X);if(!await k0(J))return console.warn(`[stx-media] Source file not found: ${X}`),null;try{let G=$.responsiveWidths||Z.breakpoints||Yj,Q=$.formats||Z.defaultFormats||["avif","webp","jpeg"],q=Z.outputDir||"dist/images",K=Z.baseUrl||"/images";await $j(q,{recursive:!0});let U=await S0(J),W=tz(X,ez(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 O=`${W}-${H}w-${U}.${j}`,L=Xj(q,O),F=`${K}/${O}`;try{let V=w[j]?.quality||80;if(await k0(L)){z.byFormat[j].push({path:L,url:F,width:H,height:0,format:j,size:0}),_.push(`${F} ${H}w`);continue}let A=await Y.processImage({input:J,output:L,format:j,quality:V,resize:{width:H}});if(A)z.byFormat[j].push({path:L,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||Jj(G),z}catch(G){return console.error(`[stx-media] Responsive generation failed: ${G}`),null}}function Jj(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 mY(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 Yj;var lY=E(()=>{t1();Yj=[320,480,640,768,1024,1280,1536,1920]});var cY={};o(cY,{setCachedImageResult:()=>W8,processImage:()=>gY,optimizeImage:()=>hY,getCachedImageResult:()=>U8,generateSrcset:()=>mY,generateResponsiveVariants:()=>dY,clearImageCache:()=>xY,applyTransformations:()=>$4,ImageProcessorCache:()=>K8});var pY=E(()=>{uY();lY();e9()});async function Gj(){try{return await Promise.resolve().then(() => (pY(),cY))}catch(X){if(!iY)console.warn("[stx-media] Image processor not available, some features disabled:",X),iY=!0;return null}}async function w8(X,$={}){let Z=$,Y=X;if(Y.process&&!Y.skipOptimization){if(Z.tsImagesConfig?.enabled&&!Z.isDev)return Uj(Y,Z)}if(Z.processedResult?.processed)return G4(X,Z.processedResult,$);if(Z.responsiveVariants)return sY(X,Z.responsiveVariants,$);let{src:J,alt:G,width:Q,height:q,sizes:K,widths:U=D5,dpr:W,formats:w=C7,quality:z=Z4,params:B={},placeholder:j="none",placeholderOptions:_={},lazy:H=!0,priority:O=!1,loading:L=O?"eager":j8,decoding:F=z8,fetchpriority:V,objectFit:A,objectPosition:R,crossorigin:N,referrerpolicy:T}=X,k=X.class,M=X.style,D=X.id,I=X.data||{},{isDev:C=!1,baseUrl:b=""}=$;if(C&&!$.optimize)return Kj(X);let y,v,x=D||`stx-img-${Math.random().toString(36).slice(2,8)}`;if(j!=="none"&&!O)try{y=await EY(J,{strategy:j,..._}),v=IY(x,y,_)}catch{}let g=W!==void 0&&Q!==void 0,l;if(g)l=qj(X,x,y,$);else l=await Qj(X,x,y,$);let c;if(O){let c0=w.includes("webp")?"webp":w[0],W0=l9(J,U,{...B,q:z},c0),e=typeof K==="object"?c9(K):K||"100vw";c=`<link rel="preload" as="image" imagesrcset="${W0}" imagesizes="${e}" />`}let D0=[];if(!nY&&j!=="none")D0.push(r9),nY=!0;if(v)D0.push(v);let y0=H?oY(x):void 0;return{html:l,preloadLink:c,css:D0.length>0?D0.join(`
|
|
11962
|
+
`):void 0,script:y0}}async function Qj(X,$,Z,Y){let{src:J,alt:G,width:Q,height:q,sizes:K,widths:U=D5,formats:W=C7,quality:w=Z4,params:z={},lazy:B=!0,priority:j=!1,loading:_=j?"eager":j8,decoding:H=z8,fetchpriority:O,objectFit:L,objectPosition:F,crossorigin:V,referrerpolicy:A}=X,R=X.class,N=X.style,T=X.data||{},k=typeof K==="object"?c9(K):K||"100vw",M=[];for(let C of W){let b=l9(J,U,{...z,q:w},C),y=p9(C);if(B&&!j)M.push(` <source type="${y}" data-srcset="${b}" data-sizes="${k}" />`);else M.push(` <source type="${y}" srcset="${b}" sizes="${k}" />`)}let D=Y4({src:P7(J,{...z,q:w}),alt:G,width:Q,height:q,loading:j?void 0:_,decoding:H,fetchpriority:j?"high":O,objectFit:L,objectPosition:F,crossorigin:V,referrerpolicy:A,className:rY(R,Z),style:J4(N,L,F,Z),lazy:B&&!j,data:T}),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}">
|
|
11844
11963
|
<picture>
|
|
11845
|
-
${
|
|
11964
|
+
${M.join(`
|
|
11846
11965
|
`)}
|
|
11847
11966
|
<img ${D} />
|
|
11848
11967
|
</picture>
|
|
11849
11968
|
</div>`}else I=`<picture${$?` id="${$}"`:""}>
|
|
11850
|
-
${
|
|
11969
|
+
${M.join(`
|
|
11851
11970
|
`)}
|
|
11852
11971
|
<img ${D} />
|
|
11853
|
-
</picture>`;return I}function
|
|
11854
|
-
<img ${
|
|
11855
|
-
</div>`}return`<img ${$?`id="${$}" `:""}${
|
|
11972
|
+
</picture>`;return I}function qj(X,$,Z,Y){let{src:J,alt:G,width:Q,height:q,dpr:K=[1,2,3],quality:U=Z4,params:W={},lazy:w=!0,priority:z=!1,loading:B=z?"eager":j8,decoding:j=z8,fetchpriority:_,objectFit:H,objectPosition:O,crossorigin:L,referrerpolicy:F}=X,V=X.class,A=X.style,R=X.data||{},N=typeof Q==="number"?Q:Number.parseInt(String(Q),10),T=kY(J,N,K,{...W,q:U}),k=Y4({src:P7(J,{...W,w:N,q:U}),alt:G,width:Q,height:q,loading:z?void 0:B,decoding:j,fetchpriority:z?"high":_,objectFit:H,objectPosition:O,crossorigin:L,referrerpolicy:F,className:rY(V,Z),style:J4(A,H,O,Z),lazy:w&&!z,data:R}),M=w&&!z?`data-srcset="${T}"`:`srcset="${T}"`;if(Z){let D=`background-image: url('${Z.dataURL}'); background-size: cover; background-position: center;`;return`<div id="${$}" class="stx-img-placeholder" style="${D}">
|
|
11973
|
+
<img ${k} ${M} />
|
|
11974
|
+
</div>`}return`<img ${$?`id="${$}" `:""}${k} ${M} />`}function Kj(X){let{src:$,alt:Z,width:Y,height:J,loading:G=j8,decoding:Q=z8,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 ${Y4({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:J4(j,K,U),id:_,data:H})} />`}}function Y4(X){let $=[];if(X.lazy)$.push(`data-src="${e0(X.src)}"`),$.push('src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"');else $.push(`src="${e0(X.src)}"`);if($.push(`alt="${e0(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="${e0(X.className)}"`);if(X.style)$.push(`style="${e0(X.style)}"`);if(X.id)$.push(`id="${e0(X.id)}"`);if(X.data)for(let[Z,Y]of Object.entries(X.data))$.push(`data-${Z}="${e0(Y)}"`);if(X.lazy)$.push("data-stx-lazy");return $.join(" ")}function rY(X,$){let Z=[];if(X)Z.push(X);if($)Z.push("stx-img-blur");return Z.join(" ")||""}function J4(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 e0(X){return X.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function oY(X){return`
|
|
11856
11975
|
(function() {
|
|
11857
11976
|
const container = document.getElementById('${X}');
|
|
11858
11977
|
if (!container) return;
|
|
@@ -11889,22 +12008,22 @@ ${N.join(`
|
|
|
11889
12008
|
|
|
11890
12009
|
observer.observe(container);
|
|
11891
12010
|
})();
|
|
11892
|
-
`.trim()}async function
|
|
12011
|
+
`.trim()}async function Uj(X,$){let Z=await Gj();if(!Z)return w8({...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 sY(X,G,$)}else{let G=await Z.processImage(X.src,X,Y);if(G.processed)return G4(X,G,$)}return w8({...X,process:!1},$)}async function G4(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||[],O=H.find((v)=>v.format==="jpeg")||H.find((v)=>v.format==="webp")||H[0],L=O?.url||X.src,F=H.filter((v)=>v.format===(O?.format||"jpeg")).map((v)=>`${v.url} ${v.width}w`).join(", "),V=new Map;for(let v of H){if(!V.has(v.format))V.set(v.format,[]);V.get(v.format).push(v)}let A=[],R=["avif","webp","jpeg","png"];for(let v of R){let x=V.get(v);if(x&&x.length>0){let g=x.map((c)=>`${c.url} ${c.width}w`).join(", "),l=p9(v);if(Q&&!q)A.push(` <source type="${l}" data-srcset="${g}" />`);else A.push(` <source type="${l}" srcset="${g}" />`)}}let N=[];if(Q&&!q){if(N.push(`data-src="${e0(L)}"`),N.push('src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"'),F)N.push(`data-srcset="${F}"`)}else if(N.push(`src="${e0(L)}"`),F)N.push(`srcset="${F}"`);N.push(`alt="${e0(Y)}"`);let T=J||$.originalWidth,k=G||$.originalHeight;if(T)N.push(`width="${T}"`);if(k)N.push(`height="${k}"`);if(!q)N.push(`loading="${Q?"lazy":"eager"}"`);if(N.push('decoding="async"'),q)N.push('fetchpriority="high"');if(W)N.push(`crossorigin="${W}"`);if(w)N.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)N.push(`style="${M.join("; ")}"`);let D=[];if(z)D.push(z);if($.placeholder)D.push("stx-img-blur");if(D.length>0)N.push(`class="${D.join(" ")}"`);if(Q&&!q)N.push("data-stx-lazy");for(let[v,x]of Object.entries(_))N.push(`data-${v}="${e0(x)}"`);let I;if($.placeholder||$.dominantColor&&X.useDominantColor){let v=$.placeholder?`background-image: url('${$.placeholder}'); background-size: cover; background-position: center;`:`background-color: ${$.dominantColor};`;I=`<div id="${j}" class="stx-img-placeholder" style="${v}">
|
|
11893
12012
|
<picture>
|
|
11894
12013
|
${A.join(`
|
|
11895
12014
|
`)}
|
|
11896
|
-
<img ${
|
|
12015
|
+
<img ${N.join(" ")} />
|
|
11897
12016
|
</picture>
|
|
11898
12017
|
</div>`}else I=`<picture${j?` id="${j}"`:""}>
|
|
11899
12018
|
${A.join(`
|
|
11900
12019
|
`)}
|
|
11901
|
-
<img ${
|
|
11902
|
-
</picture>`;let C=[];if($.placeholder)C.push(
|
|
11903
|
-
`):void 0,script:b}}async function
|
|
12020
|
+
<img ${N.join(" ")} />
|
|
12021
|
+
</picture>`;let C=[];if($.placeholder)C.push(r9);let b=Q?oY(j):void 0,y;if(q&&F)y=`<link rel="preload" as="image" imagesrcset="${F}" />`;return{html:I,preloadLink:y,css:C.length>0?C.join(`
|
|
12022
|
+
`):void 0,script:b}}async function sY(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 G4(X,Y,Z)}var iY=!1,Z4=80,z8="async",j8="lazy",nY=!1;var aY=E(()=>{i9();DY()});function Wj(){return Z8({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}=wj(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||C7,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 w8(q,{isDev:K}),W=U.html;if(U.preloadLink)W=U.preloadLink+`
|
|
11904
12023
|
`+W;if(U.css)W+=`
|
|
11905
12024
|
<style>${U.css}</style>`;if(U.script)W+=`
|
|
11906
|
-
<script>${U.script}</script>`;return W},defaults:{src:"",alt:"",options:{lazy:!0,placeholder:"none"}}})}function
|
|
11907
|
-
`)}async function
|
|
12025
|
+
<script>${U.script}</script>`;return W},defaults:{src:"",alt:"",options:{lazy:!0,placeholder:"none"}}})}function wj(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=zj(Y),G=Q4(J[0],Z)||"",Q=Q4(J[1],Z)||"",q={};if(J[2]){let K=Q4(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 zj(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 Q4(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 tY;var eY=E(()=>{m9();aY();i9();tY=Wj()});class _8{config;constructor(X={}){this.config={...jj,...X}}async get(X,$){return J8(X,$,"video",this.config)}async set(X,$,Z){return G8(X,$,Z,"video",this.config)}async clear(){return Q8("video",this.config)}updateConfig(X){this.config={...this.config,...X}}}function q4(X){if(!B8)B8=new _8(X);else if(X)B8.updateConfig(X);return B8}async function H8(X,$,Z){let Y=Z?{directory:`${Z.outputDir}/../.cache`}:{};return q4(Y).get(X,$)}async function O8(X,$,Z,Y){let J=Y?{directory:`${Y.outputDir}/../.cache`}:{};return q4(J).set(X,$,Z)}async function XJ(){return q4().clear()}var jj,B8=null;var K4=E(()=>{a9();jj={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:2000,cacheTranscoded:!0,cacheThumbnails:!0,cacheManifests:!0}});import{resolve as U4,basename as W4,extname as w4,join as L8}from"path";import{mkdir as z4}from"fs/promises";async function j4(){try{return await import("ts-videos")}catch{return null}}async function F8(X,$,Z,Y){let J=await j4();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate poster"),null;try{let G=U4(X);if(!await k0(G))return null;await z4(Z,{recursive:!0});let Q=await S0(G),q=W4(X,w4(X)),K=$.format||"webp",U=$.timestamp||0,W=`${q}-poster-${Q}.${K}`,w=L8(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 V8(X,$,Z,Y){let J=await j4();if(!J)return[];try{let G=U4(X);if(!await k0(G))return[];await z4(Z,{recursive:!0});let Q=await S0(G),q=W4(X,w4(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,O)=>({path:H.path||L8(Z,`${q}-thumb-${Q}-${O}.${K}`),url:`${Y}/${q}-thumb-${Q}-${O}.${K}`,width:H.width||$.width||320,height:H.height||180,timestamp:j[O],size:H.size||0}));return[]}catch(G){return console.warn(`[stx-media] Failed to generate thumbnails: ${G}`),[]}}async function $J(X,$,Z,Y){let J=await j4();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate sprite sheet"),null;try{let G=U4(X);if(!await k0(G))return null;await z4(Z,{recursive:!0});let Q=await S0(G),q=W4(X,w4(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),O=Math.ceil(H/w),L=`${q}-sprite-${Q}.${_}`,F=L8(Z,L),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:L8(Z,".temp")});if(!A||A.length===0)return null;try{let R=await import("ts-images"),N=w*B,T=O*j,k=await R.createSprite({images:A.map((M)=>M.path),columns:w,padding:0,outputPath:F,format:_,quality:$.quality||70});return{url:`${Y}/${L}`,path:F,columns:w,rows:O,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 B4=E(()=>{t1()});import{resolve as YJ,basename as JJ,extname as GJ,join as e1}from"path";import{mkdir as A8,writeFile as QJ}from"fs/promises";async function qJ(){try{return await import("ts-videos")}catch{return null}}async function R8(X,$,Z,Y,J){let G=await qJ();if(!G)return console.warn("[stx-media] ts-videos not installed, cannot generate HLS manifest"),null;try{let Q=YJ(X);if(!await k0(Q))return null;let q=await S0(Q),K=JJ(X,GJ(X)),U=e1(Z,`${K}-${q}-hls`);await A8(U,{recursive:!0});let W=$.length>0?$:KJ,w=J?.segmentDuration||6,j=(await new G.Input(Q).getInfo()).duration||0,_=[],H=0;for(let F of W){let V=e1(U,F.label);await A8(V,{recursive:!0});let A=`${F.label}.m3u8`,R=e1(V,A);try{let N=await G.generateHLS(Q,{outputDir:V,segmentDuration:w,width:F.width,height:F.height,videoBitrate:F.bitrate,audioBitrate:F.audioBitrate,playlistName:F.label});if(N)_.push({quality:F,url:`${Y}/${K}-${q}-hls/${F.label}/${A}`,path:R}),H+=N.segmentCount||Math.ceil(j/w)}catch(N){console.warn(`[stx-media] Failed to generate HLS for ${F.label}: ${N}`)}}if(_.length===0)return null;let O=e1(U,"master.m3u8"),L=Bj(_,Y,K,q);return await QJ(O,L),{manifestUrl:`${Y}/${K}-${q}-hls/master.m3u8`,manifestPath:O,playlists:_,segmentCount:H,duration:j}}catch(Q){return console.warn(`[stx-media] Failed to generate HLS manifest: ${Q}`),null}}function Bj(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(`
|
|
12026
|
+
`)}async function N8(X,$,Z,Y,J){let G=await qJ();if(!G)return console.warn("[stx-media] ts-videos not installed, cannot generate DASH manifest"),null;try{let Q=YJ(X);if(!await k0(Q))return null;let q=await S0(Q),K=JJ(X,GJ(X)),U=e1(Z,`${K}-${q}-dash`);await A8(U,{recursive:!0});let W=$.length>0?$:KJ,w=J?.segmentDuration||4,z=J?.minBufferTime||2,_=(await new G.Input(Q).getInfo()).duration||0,H=[],O=[];for(let A of W){let R=e1(U,A.label);await A8(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)O.push({bandwidth:A.audioBitrate,url:`${Y}/${K}-${q}-dash/${A.label}/audio`})}}catch(N){console.warn(`[stx-media] Failed to generate DASH for ${A.label}: ${N}`)}}if(H.length===0)return null;let L=e1(U,"manifest.mpd"),F=_j(H,O,_,w,z);await QJ(L,F);let V=[{type:"video",representations:H}];if(O.length>0)V.push({type:"audio",representations:O});return{manifestUrl:`${Y}/${K}-${q}-dash/manifest.mpd`,manifestPath:L,adaptationSets:V,duration:_}}catch(Q){return console.warn(`[stx-media] Failed to generate DASH manifest: ${Q}`),null}}function _j(X,$,Z,Y,J){let G=ZJ(Z),Q=ZJ(J),q=`<?xml version="1.0" encoding="UTF-8"?>
|
|
11908
12027
|
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011"
|
|
11909
12028
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
11910
12029
|
xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd"
|
|
@@ -11930,13 +12049,13 @@ ${A.join(`
|
|
|
11930
12049
|
</Representation>
|
|
11931
12050
|
`}q+=` </AdaptationSet>
|
|
11932
12051
|
`}return q+=` </Period>
|
|
11933
|
-
</MPD>`,q}function
|
|
12052
|
+
</MPD>`,q}function ZJ(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 KJ;var _4=E(()=>{t1();KJ=[{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 UJ,basename as Hj,extname as Oj,join as Lj}from"path";import{mkdir as Fj}from"fs/promises";async function WJ(){try{return await import("ts-videos")}catch{return null}}function Vj(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 Aj(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 H4(X){let $=await WJ();if(!$)return null;try{let Z=UJ(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 wJ(X,$,Z,Y){let J=await WJ();if(!J)return console.warn("[stx-media] ts-videos not installed, skipping processing"),{src:X,processed:!1};let G=await H8(X,$,Z);if(G)return G;try{let Q=UJ(X);if(!await k0(Q))return{src:X,processed:!1,errors:[`Source file not found: ${X}`]};let q=Z.outputDir||"dist/videos",K=Z.baseUrl||"/videos";await Fj(q,{recursive:!0});let U=await S0(Q),W=Hj(X,Oj(X)),w={src:X,processed:!0,hash:U};Y?.({percentage:5,stage:"analyzing"}),w.metadata=await H4(Q)||void 0;let z={};if($.quality)z.bitrate=Vj($.quality);if($.platform)Object.assign(z,Aj($.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=Lj(q,B);try{let _=await Rj(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 F8(Q,B,q,K);if(j)w.poster=j}if(Z.thumbnails?.enabled){Y?.({percentage:70,stage:"generating-thumbnails"});let B=await V8(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 R8(Q,B.qualities||Z.streaming?.defaultQualities||[],q,K);if(j)w.streaming={...w.streaming,hls:j}}if(B.format==="dash"){let j=await N8(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 O8(X,$,w,Z),w}catch(Q){return{src:X,processed:!1,errors:[`Processing failed: ${Q}`]}}}async function Rj(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 zJ=E(()=>{t1();K4();B4();_4()});var jJ={};o(jJ,{setCachedVideoResult:()=>O8,processVideo:()=>wJ,getCachedVideoResult:()=>H8,generateThumbnails:()=>V8,generateSpriteSheet:()=>$J,generatePoster:()=>F8,generateHLSManifest:()=>R8,generateDASHManifest:()=>N8,clearVideoCache:()=>XJ,analyzeVideo:()=>H4,VideoProcessorCache:()=>_8});var BJ=E(()=>{zJ();B4();_4();K4()});async function HJ(){try{return await Promise.resolve().then(() => (BJ(),jJ))}catch(X){if(!_J)console.warn("[stx-media] Video processor not available, some features disabled:",X),_J=!0;return null}}async function T8(X,$={}){let Z=$,Y=X;if(Y.process&&!Y.skipProcessing){if(Z.tsVideosConfig?.enabled&&!Z.isDev)return Ej(Y,Z)}if(Z.processedResult?.processed)return VJ(X,Z.processedResult,$);let J;if(Y.generatePoster&&Y.src&&!X.poster)J=await Dj(Y,Z);let{src:G,sources:Q=[],poster:q,posterPlaceholder:K,controls:U=OJ,autoplay:W=!1,muted:w=!1,loop:z=!1,preload:B=LJ,playsinline:j=!0,lazy:_=!0,player:H="native",type:O,width:L,height:F,crossorigin:V,disablePictureInPicture:A=!1,disableRemotePlayback:R=!1}=X,N=J||q,T=X.class,k=X.style,M=X.id||`stx-video-${Math.random().toString(36).slice(2,8)}`;if(H==="ts-video")return Mj(X,$);if(O&&O!=="video")return Tj(G||"",O,X);let D=Q.length>0?Q:G?[{src:G,type:FJ(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"'),N)I.push(`data-poster="${V0(N)}"`);I.push("data-stx-lazy")}else if(I.push(`preload="${B}"`),N)I.push(`poster="${V0(N)}"`);if(L)I.push(`width="${L}"`);if(F)I.push(`height="${F}"`);if(T)I.push(`class="${V0(T)}"`);if(k)I.push(`style="${V0(k)}"`);let C=D.map((v)=>{return` <source ${_?`data-src="${V0(v.src)}"`:`src="${V0(v.src)}"`} type="${v.type}"${v.media?` media="${v.media}"`:""} />`}).join(`
|
|
11934
12053
|
`),b=`<video ${I.join(" ")}>
|
|
11935
12054
|
${C}
|
|
11936
12055
|
Your browser does not support the video tag.
|
|
11937
12056
|
</video>`,y;if(_)y=`
|
|
11938
12057
|
(function() {
|
|
11939
|
-
var video = document.getElementById('${
|
|
12058
|
+
var video = document.getElementById('${M}');
|
|
11940
12059
|
if (!video) return;
|
|
11941
12060
|
|
|
11942
12061
|
var observer = new IntersectionObserver(function(entries) {
|
|
@@ -11969,12 +12088,12 @@ ${C}
|
|
|
11969
12088
|
|
|
11970
12089
|
observer.observe(video);
|
|
11971
12090
|
})();
|
|
11972
|
-
`.trim();return{html:b,script:y}}function
|
|
12091
|
+
`.trim();return{html:b,script:y}}function Tj(X,$,Z){let{width:Y=640,height:J=360}=Z,G=Z.class,Q=Z.style,q=Z.id||`stx-embed-${Math.random().toString(36).slice(2,8)}`,K,U=null;switch($){case"youtube":U=kj(X),K=U?`https://www.youtube-nocookie.com/embed/${U}`:X;break;case"vimeo":U=Ij(X),K=U?`https://player.vimeo.com/video/${U}`:X;break;case"dailymotion":U=X.split("/").pop()||"",K=`https://www.dailymotion.com/embed/video/${U}`;break;case"twitch":U=X.split("/").pop()||"",K=`https://player.twitch.tv/?video=${U}&parent=${typeof window<"u"?window.location.hostname:"localhost"}`;break;default:K=X}let W=[`id="${q}"`,`src="${V0(K)}"`,`width="${Y}"`,`height="${J}"`,'frameborder="0"',"allowfullscreen",'allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"'];if(G)W.push(`class="${V0(G)}"`);if(Q)W.push(`style="${V0(Q)}"`);if(Z.lazy)W.push('loading="lazy"');return{html:`<div class="stx-video-embed" style="position:relative;padding-bottom:56.25%;height:0;overflow:hidden;">
|
|
11973
12092
|
<iframe ${W.join(" ")} style="position:absolute;top:0;left:0;width:100%;height:100%;"></iframe>
|
|
11974
|
-
</div>`}}function
|
|
12093
|
+
</div>`}}function Mj(X,$={}){let{src:Z,sources:Y=[],poster:J,controls:G=!0,autoplay:Q=!1,muted:q=!1,loop:K=!1,preload:U="metadata",playsinline:W=!0,lazy:w=!0,width:z,height:B}=X,j=X.class,_=X.style,H=X.id||`ts-video-${Math.random().toString(36).slice(2,8)}`,O={src:Y.length>0?Y:Z,autoplay:Q,loop:K,muted:q,playsinline:W,preload:U,poster:J,controls:G,title:X.title},L=["position: relative",z?`width: ${typeof z==="number"?z+"px":z}`:"width: 100%",B?`height: ${typeof B==="number"?B+"px":B}`:"",_||""].filter(Boolean).join("; "),F=`
|
|
11975
12094
|
<div
|
|
11976
12095
|
id="${H}"
|
|
11977
|
-
class="ts-video-player${j?" "+
|
|
12096
|
+
class="ts-video-player${j?" "+V0(j):""}"
|
|
11978
12097
|
style="${L}"
|
|
11979
12098
|
data-ts-video-player
|
|
11980
12099
|
data-config='${JSON.stringify(O)}'
|
|
@@ -11982,7 +12101,7 @@ ${C}
|
|
|
11982
12101
|
>
|
|
11983
12102
|
<div class="ts-video-player__container">
|
|
11984
12103
|
${J?`
|
|
11985
|
-
<div class="ts-video-player__placeholder" style="background-image: url('${
|
|
12104
|
+
<div class="ts-video-player__placeholder" style="background-image: url('${V0(J)}');">
|
|
11986
12105
|
<button class="ts-video-player__play-button" aria-label="Play video">
|
|
11987
12106
|
<svg viewBox="0 0 24 24" fill="currentColor" width="64" height="64">
|
|
11988
12107
|
<path d="M8 5v14l11-7z"/>
|
|
@@ -12008,7 +12127,7 @@ ${C}
|
|
|
12008
12127
|
|
|
12009
12128
|
// Load ts-video-player from CDN
|
|
12010
12129
|
var script = document.createElement('script');
|
|
12011
|
-
script.src = '${
|
|
12130
|
+
script.src = '${Nj}';
|
|
12012
12131
|
script.onload = initPlayer;
|
|
12013
12132
|
script.onerror = function() {
|
|
12014
12133
|
console.error('[stx] Failed to load ts-video-player');
|
|
@@ -12138,10 +12257,10 @@ else {
|
|
|
12138
12257
|
.ts-video-player__play-button svg {
|
|
12139
12258
|
margin-left: 4px;
|
|
12140
12259
|
}
|
|
12141
|
-
`.trim();return{html:F,script:V,css:A}}function
|
|
12142
|
-
${
|
|
12260
|
+
`.trim();return{html:F,script:V,css:A}}function FJ(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 kj(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 Ij(X){let $=X.match(/vimeo\.com\/(\d+)/);return $?$[1]:null}function V0(X){return X.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'")}async function Ej(X,$){let Z=await HJ();if(!Z)return T8({...X,process:!1},$);let Y=$.tsVideosConfig,J=await Z.processVideo(X.src,X,Y,X.onProcessProgress);if(J.processed)return VJ(X,J,$);return T8({...X,process:!1},$)}async function Dj(X,$){let Z=await HJ();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 VJ(X,$,Z){let{controls:Y=OJ,autoplay:J=!1,muted:G=!1,loop:Q=!1,preload:q=LJ,playsinline:K=!0,lazy:U=!0,width:W,height:w,crossorigin:z,disablePictureInPicture:B=!1,disableRemotePlayback:j=!1}=X,_=X.class,H=X.style,O=X.id||`stx-video-${Math.random().toString(36).slice(2,8)}`,L=X.src,F=FJ(L);if($.transcoded)L=$.transcoded.url,F="video/mp4";let V=$.streaming?.hls||$.streaming?.dash;if(V){if($.streaming?.hls)L=$.streaming.hls.manifestUrl,F="application/x-mpegURL";else if($.streaming?.dash)L=$.streaming.dash.manifestUrl,F="application/dash+xml"}let A=$.poster?.url||X.poster,R=[`id="${O}"`];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="${V0(A)}"`);R.push("data-stx-lazy")}else if(R.push(`preload="${q}"`),A)R.push(`poster="${V0(A)}"`);let N=W||$.metadata?.width,T=w||$.metadata?.height;if(N)R.push(`width="${N}"`);if(T)R.push(`height="${T}"`);if(_)R.push(`class="${V0(_)}"`);if(H)R.push(`style="${V0(H)}"`);let M=` <source ${U?`data-src="${V0(L)}"`:`src="${V0(L)}"`} type="${F}" />`,D=`<video ${R.join(" ")}>
|
|
12261
|
+
${M}
|
|
12143
12262
|
Your browser does not support the video tag.
|
|
12144
|
-
</video>`;if($.spriteSheet)D=`<div class="stx-video-wrapper" data-sprite-sheet="${
|
|
12263
|
+
</video>`;if($.spriteSheet)D=`<div class="stx-video-wrapper" data-sprite-sheet="${V0($.spriteSheet.url)}" data-sprite-cols="${$.spriteSheet.columns}" data-sprite-interval="${$.spriteSheet.interval}">
|
|
12145
12264
|
${D}
|
|
12146
12265
|
</div>`;let I;if(U)I=`
|
|
12147
12266
|
(function() {
|
|
@@ -12187,9 +12306,9 @@ ${D}
|
|
|
12187
12306
|
width: 100%;
|
|
12188
12307
|
height: auto;
|
|
12189
12308
|
}
|
|
12190
|
-
`.trim();return{html:D,script:I,css:C}}var
|
|
12309
|
+
`.trim();return{html:D,script:I,css:C}}var _J=!1,OJ=!0,LJ="metadata",Nj="https://cdn.jsdelivr.net/npm/ts-video-player@latest/dist/index.min.js";var AJ=E(()=>{L4()});function RJ(){return Z8({name:"video",hasEndTag:!1,description:"Render a video with optional ts-videos processing, streaming, and poster generation",transform:async(X,$,Z,Y)=>{let{src:J,options:G}=yj(X,$,Z);if(!J)return console.warn("@video directive: missing src argument"),"<!-- @video: missing src -->";let Q={src:J,poster:G.poster,controls:G.controls!==!1,autoplay:G.autoplay||!1,muted:G.muted||!1,loop:G.loop||!1,preload:G.preload||"metadata",playsinline:G.playsinline!==!1,lazy:G.lazy!==!1,player:G.player||"native",type:G.type,width:G.width,height:G.height,class:G.class,style:G.style,id:G.id,crossorigin:G.crossorigin,disablePictureInPicture:G.disablePictureInPicture,disableRemotePlayback:G.disableRemotePlayback,title:G.title,quality:G.quality,platform:G.platform,process:G.process,generatePoster:G.generatePoster,streaming:G.streaming,transcode:G.transcode,spriteSheet:G.spriteSheet,waveform:G.waveform},K={isDev:Z.__isDev||!1,tsVideosConfig:Z.__tsVideosConfig},U=await T8(Q,K),W=U.html;if(U.css)W+=`
|
|
12191
12310
|
<style>${U.css}</style>`;if(U.script)W+=`
|
|
12192
|
-
<script>${U.script}</script>`;return W},defaults:{src:"",options:{controls:!0,lazy:!0,preload:"metadata"}}})}function
|
|
12311
|
+
<script>${U.script}</script>`;return W},defaults:{src:"",options:{controls:!0,lazy:!0,preload:"metadata"}}})}function yj(X,$,Z){if($.src)return{src:String($.src),options:$.options||{}};let Y=X.trim();if(Y.startsWith("@video(")||Y.startsWith("("))Y=Y.replace(/^@video\(/,"").replace(/^\(/,"").replace(/\)$/,"");let J=bj(Y),G=NJ(J[0],Z)||"",Q={};if(J[1]){let q=NJ(J[1],Z);if(typeof q==="object"&&q!==null)Q=q;else if(typeof J[1]==="string")try{Q=JSON.parse(J[1])}catch{}}return{src:G,options:Q}}function bj(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 NJ(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 O4;var L4=E(()=>{m9();AJ();O4=RJ()});function Sj(X,$){let Z=$.pwa?.manifest?.themeColor||"#4f46e5";return`<div class="stx-pwa-install" style="display:none;">
|
|
12193
12312
|
${X}
|
|
12194
12313
|
</div>
|
|
12195
12314
|
<script>
|
|
@@ -12234,7 +12353,7 @@ ${D}
|
|
|
12234
12353
|
}
|
|
12235
12354
|
}
|
|
12236
12355
|
})();
|
|
12237
|
-
</script>`}function
|
|
12356
|
+
</script>`}function Cj(X,$){let Z=$.pwa?.updates,Y=Z?.message||"A new version is available. Reload to update?",J=Z?.autoReload||!1,G=X.trim().length>0,Q=`
|
|
12238
12357
|
<div class="stx-pwa-update-banner" style="
|
|
12239
12358
|
position: fixed;
|
|
12240
12359
|
bottom: 0;
|
|
@@ -12345,7 +12464,7 @@ else {
|
|
|
12345
12464
|
// Also listen for custom event
|
|
12346
12465
|
window.addEventListener('pwa-update-available', showUpdate);
|
|
12347
12466
|
})();
|
|
12348
|
-
</script>`}function
|
|
12467
|
+
</script>`}function Pj(X,$){let Z=X.trim().length>0,Y=`
|
|
12349
12468
|
<div class="stx-offline-indicator" style="
|
|
12350
12469
|
position: fixed;
|
|
12351
12470
|
top: 16px;
|
|
@@ -12406,7 +12525,7 @@ else {
|
|
|
12406
12525
|
window.addEventListener('offline', updateStatus);
|
|
12407
12526
|
updateStatus();
|
|
12408
12527
|
})();
|
|
12409
|
-
</script>`}function
|
|
12528
|
+
</script>`}function vj(X,$){let Z=$.pwa?.push,Y=Z?.vapidPublicKey||"",J=Z?.subscriptionEndpoint||"/api/push/subscribe";return`<div class="stx-pwa-push" style="display:none;">
|
|
12410
12529
|
${X}
|
|
12411
12530
|
</div>
|
|
12412
12531
|
<script>
|
|
@@ -12488,33 +12607,33 @@ catch (error) {
|
|
|
12488
12607
|
init();
|
|
12489
12608
|
}
|
|
12490
12609
|
})();
|
|
12491
|
-
</script>`}function
|
|
12492
|
-
${X.message}`),$&&X.line){let G=
|
|
12610
|
+
</script>`}function rN(X){return[...X,...F4]}var xj,fj,gj,hj,F4;var V4=E(()=>{xj={name:"pwa.installButton",handler:(X,$,Z,Y)=>{let J=Z.__stx_options||{};return Sj(X,J)},hasEndTag:!0,description:"Renders a PWA install prompt button that appears when the app can be installed"},fj={name:"pwa.updatePrompt",handler:(X,$,Z,Y)=>{let J=Z.__stx_options||{};return Cj(X,J)},hasEndTag:!0,description:"Renders a PWA update notification UI when a new version is available"},gj={name:"pwa.offlineIndicator",handler:(X,$,Z,Y)=>{let J=Z.__stx_options||{};return Pj(X,J)},hasEndTag:!0,description:"Renders an offline status indicator that shows when the user loses connection"},hj={name:"pwa.pushSubscribe",handler:(X,$,Z,Y)=>{let J=Z.__stx_options||{};return vj(X,J)},hasEndTag:!0,description:"Renders a push notification subscription button"},F4=[xj,fj,gj,hj]});function A4(X){for(let[$,Z]of Object.entries(s))if(Z===X)return $;return}var s;var M8=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 v7(){return!1}function x7(){return!v7()||process.env.STX_DEBUG==="true"}function k8(){return!1}import uj from"path";function I8(){return{...R4}}function E8(X){if(!R4.showRelativePaths||!X)return X;let $=R4.baseDir||process.cwd();try{let Z=uj.relative($,X);return Z.startsWith("..")?X:Z}catch{return X}}var dj,R4,D8,X5,y8;var b8=E(()=>{M8();dj={showRelativePaths:!1,enableAutoRecovery:x7(),logRecoveryWarnings:!0},R4={...dj};D8=class D8 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=E8(this.filePath)}};X5=class X5 extends D8{constructor(X,$,Z,Y,J,G){super(X,"stx_RUNTIME_ERROR",$,Z,Y,J,G||s.EVALUATION_ERROR);this.name="StxRuntimeError"}};y8=class y8 extends D8{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 MJ(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 L=nj(q,K);z=L.line,B=L.column}let j=J?E8(J):void 0,_=Y?A4(Y):void 0,H={type:$,code:Y,codeName:_,message:Z,filePath:j,line:z,column:B,snippet:U,suggestion:W,timestamp:new Date().toISOString()},O;switch(w){case"html":O=lj(H);break;case"json":O=JSON.stringify(H,null,2);break;case"console":O=cj(H,q,K);break;case"text":default:O=mj(H,q,K);break}return{formatted:O,data:H}}function mj(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(`
|
|
12611
|
+
${X.message}`),$&&X.line){let G=pj($,X.line,2);if(G)Y.push(`
|
|
12493
12612
|
${G}`)}if(X.snippet)Y.push(`
|
|
12494
12613
|
Snippet: ${X.snippet}`);if(X.suggestion)Y.push(`
|
|
12495
|
-
Suggestion: ${X.suggestion}`);return Y.join(" ")}function
|
|
12614
|
+
Suggestion: ${X.suggestion}`);return Y.join(" ")}function lj(X){let $=X.code?` [${X.code}]`:"",Z=X.filePath?` in ${X.filePath}${X.line?`:${X.line}`:""}`:"",Y=`<!-- [${X.type} Error${$}]${Z}: ${TJ(X.message)}`;if(X.suggestion)Y+=` | Suggestion: ${TJ(X.suggestion)}`;return Y+=" -->",Y}function cj(X,$,Z){let U=[],W=X.code?` [${X.codeName||X.code}]`:"";if(U.push(`\x1B[1m${"\x1B[31m"}\u2501\u2501\u2501 ${X.type} Error${W} \u2501\u2501\u2501${"\x1B[0m"}`),X.filePath){let w=`\x1B[36m${X.filePath}\x1B[0m`;if(X.line){if(w+=`\x1B[90m:${X.line}\x1B[0m`,X.column)w+=`\x1B[90m:${X.column}\x1B[0m`}U.push(`
|
|
12496
12615
|
\x1B[90mat\x1B[0m ${w}`)}if(U.push(`
|
|
12497
12616
|
|
|
12498
|
-
${X.message}`),$&&X.line){let w=
|
|
12617
|
+
${X.message}`),$&&X.line){let w=ij($,X.line,2);if(w)U.push(`
|
|
12499
12618
|
|
|
12500
12619
|
\x1B[90mContext:\x1B[0m
|
|
12501
12620
|
${w}`)}if(X.suggestion)U.push(`
|
|
12502
12621
|
|
|
12503
12622
|
\x1B[33mSuggestion:\x1B[0m ${X.suggestion}`);return U.push(`
|
|
12504
|
-
${"\x1B[31m"}\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501${"\x1B[0m"}`),U.join("")}function
|
|
12623
|
+
${"\x1B[31m"}\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501${"\x1B[0m"}`),U.join("")}function pj(X,$,Z){let Y=X.split(`
|
|
12505
12624
|
`),J=Math.max(0,$-Z-1),G=Math.min(Y.length-1,$+Z-1),Q=[];for(let q=J;q<=G;q++){let K=(q+1).toString().padStart(4),U=q===$-1?">":" ";Q.push(`${U}${K} | ${Y[q]}`)}return Q.join(`
|
|
12506
|
-
`)}function
|
|
12625
|
+
`)}function ij(X,$,Z){let Y=X.split(`
|
|
12507
12626
|
`),J=Math.max(0,$-Z-1),G=Math.min(Y.length-1,$+Z-1),Q="\x1B[90m",q="\x1B[31m",K="\x1B[0m",U=[];for(let W=J;W<=G;W++){let w=(W+1).toString().padStart(4),z=W===$-1,B=z?"\x1B[31m>\x1B[0m":" ",j=z?`\x1B[31m${Y[W]}\x1B[0m`:`\x1B[90m${Y[W]}\x1B[0m`;U.push(`${B}\x1B[90m${w}\x1B[0m | ${j}`)}return U.join(`
|
|
12508
|
-
`)}function
|
|
12509
|
-
`);return{line:Y.length,column:Y[Y.length-1].length}}function $0(X,$,Z){return
|
|
12627
|
+
`)}function TJ(X){return X.replace(/--/g,"- -").replace(/>/g,">")}function nj(X,$){let Y=X.substring(0,$).split(`
|
|
12628
|
+
`);return{line:Y.length,column:Y[Y.length-1].length}}function $0(X,$,Z){return MJ({type:X,message:$,code:Z,format:"html"}).formatted}async function b5(X,$,Z){try{return await X()}catch(Y){if(Z&&Y instanceof Error)Z(Y);return $}}var kJ=E(()=>{M8();b8()});class T4{errors=[];maxErrors;enableFileLogging;logFilePath;logFormat;maxFileSize;maxLogFiles;minLevel;writeQueue=Promise.resolve();constructor(X={}){this.maxErrors=X.maxErrors??1000,this.enableFileLogging=X.enableFileLogging??!1,this.logFilePath=X.logFilePath??".stx/errors.log",this.logFormat=X.logFormat??"json",this.maxFileSize=X.maxFileSize??10485760,this.maxLogFiles=X.maxLogFiles??5,this.minLevel=X.minLevel??"all"}configure(X){if(X.maxErrors!==void 0)this.maxErrors=X.maxErrors;if(X.enableFileLogging!==void 0)this.enableFileLogging=X.enableFileLogging;if(X.logFilePath!==void 0)this.logFilePath=X.logFilePath;if(X.logFormat!==void 0)this.logFormat=X.logFormat;if(X.maxFileSize!==void 0)this.maxFileSize=X.maxFileSize;if(X.maxLogFiles!==void 0)this.maxLogFiles=X.maxLogFiles;if(X.minLevel!==void 0)this.minLevel=X.minLevel}log(X,$,Z="error"){let Y={timestamp:new Date,error:X,context:$,level:Z};if(this.errors.push(Y),this.errors.length>this.maxErrors)this.errors=this.errors.slice(-this.maxErrors);if(this.enableFileLogging&&this.shouldLog(Z))this.writeToFile(Y)}shouldLog(X){if(this.minLevel==="all")return!0;if(this.minLevel==="warning")return X==="error"||X==="warning";if(this.minLevel==="error")return X==="error";return!0}formatEntry(X){if(this.logFormat==="json")return JSON.stringify({timestamp:X.timestamp.toISOString(),level:X.level||"error",type:X.error.constructor.name,message:X.error.message,stack:X.error.stack,context:X.context});let $=[`[${X.timestamp.toISOString()}] [${(X.level||"error").toUpperCase()}] ${X.error.constructor.name}: ${X.error.message}`];if(X.error.stack)$.push(` Stack: ${X.error.stack.split(`
|
|
12510
12629
|
`).slice(1).join(`
|
|
12511
12630
|
`)}`);if(X.context)$.push(` Context: ${JSON.stringify(X.context)}`);return $.join(`
|
|
12512
12631
|
`)}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)}
|
|
12513
12632
|
`;$.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(`
|
|
12514
12633
|
|
|
12515
|
-
`),"utf-8")}}async flush(){await this.writeQueue}}var
|
|
12516
|
-
@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(
|
|
12517
|
-
`)}}});var
|
|
12634
|
+
`),"utf-8")}}async flush(){await this.writeQueue}}var N4,X1,M4;var IJ=E(()=>{b8();N4={isEnabled(){return I8().enableAutoRecovery},fixCommonSyntaxErrors(X){let $=I8();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+=`
|
|
12635
|
+
@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(x7())return`<!-- ${X} failed: ${$.message} -->`;return"<!-- stx rendering error -->"}};X1=new T4,M4={isDevelopment(){return x7()},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(`
|
|
12636
|
+
`)}}});var EJ=()=>{};var DJ=E(()=>{M8();kJ();IJ();EJ();b8()});var z1=E(()=>{DJ()});function yJ(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="${p(w)}" content="${p(U)}">`:""}return U?`<meta name="${p(K)}" content="${p(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=L0(w,$);if(!j)return"";let _="<meta";if(j.name)_+=` name="${p(String(j.name))}"`;if(j.property)_+=` property="${p(String(j.property))}"`;if(j.httpEquiv)_+=` http-equiv="${p(String(j.httpEquiv))}"`;if(j.content)_+=` content="${p(String(j.content))}"`;return _+=">",_}catch(j){let _=j instanceof Error?j.message:String(j);return $0("MetaTag",_,s.EVALUATION_ERROR)}})();J=J.substring(0,q)+B+J.substring(z),G.lastIndex=0}return J}function bJ(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=L0(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 $0("StructuredData",j,s.EVALUATION_ERROR)}})();Y=Y.substring(0,Q)+z+Y.substring(w),J.lastIndex=0}return Y}function SJ(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 O=J[U];if(w){w=!1,U++;continue}if(O==="\\"&&W){w=!0,U++;continue}if(W){if(O===W)W=null;U++;continue}if(O==='"'||O==="'"||O==="`"){W=O,U++;continue}if(O==="{")K++;else if(O==="}")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=((O)=>{try{let L=L0(O,$);if(!L)return"";let F="";if(L.title)F+=`<title>${p(L.title)}</title>
|
|
12518
12637
|
`,F+=`<meta name="title" content="${p(L.title)}">
|
|
12519
12638
|
`;if(L.description)F+=`<meta name="description" content="${p(L.description)}">
|
|
12520
12639
|
`;if(L.keywords){let V=Array.isArray(L.keywords)?L.keywords.join(", "):L.keywords;F+=`<meta name="keywords" content="${p(V)}">
|
|
@@ -12536,7 +12655,7 @@ ${"\x1B[31m"}\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\
|
|
|
12536
12655
|
`}if(V.site)F+=`<meta name="twitter:site" content="${p(V.site)}">
|
|
12537
12656
|
`;if(V.creator)F+=`<meta name="twitter:creator" content="${p(V.creator)}">
|
|
12538
12657
|
`}if(L.structuredData){let V=JSON.stringify(L.structuredData).replace(/<\//g,"<\\/");F+=`<script type="application/ld+json">${V}</script>
|
|
12539
|
-
`}return F.trim()}catch(L){let F=L instanceof Error?L.message:String(L);return $0("SEO",`Error processing @seo directive: ${F}`,s.EVALUATION_ERROR)}})(j);J=J.substring(0,Q.index)+H+J.substring(B),G.lastIndex=Q.index+H.length}return J}function
|
|
12658
|
+
`}return F.trim()}catch(L){let F=L instanceof Error?L.message:String(L);return $0("SEO",`Error processing @seo directive: ${F}`,s.EVALUATION_ERROR)}})(j);J=J.substring(0,Q.index)+H+J.substring(B),G.lastIndex=Q.index+H.length}return J}function CJ(X,$,Z){if(Z.seo?.enabled===!1)return X;if(X.includes("<!-- stx SEO Tags -->")||Z.skipDefaultSeoTags===!0)return X;let Y=$.__stx_runtime_head;if(!!(Y?.title||Y?.meta?.some((w)=>w.property==="og:title"||w.name==="og:title"||w.name==="twitter:title"||w.name==="description")))return X;if(/<meta\s+(?:[^>]*\s)?property=["']og:title["']/i.test(X)||/<meta\s+(?:[^>]*\s)?name=["']og:title["']/i.test(X)||/<meta\s+(?:[^>]*\s)?name=["']twitter:title["']/i.test(X))return X;if(!X.includes("<head>")&&!X.includes("<head "))return X;let G=X.includes("<title>")||X.includes("</title>"),Q="";if($.title)Q=$.title;else if($.meta&&$.meta.title)Q=$.meta.title;else if(Z.seo?.defaultConfig?.title)Q=Z.seo.defaultConfig.title;else Q=Z.defaultTitle||"stx Project";let q="";if($.description)q=$.description;else if($.meta&&$.meta.description)q=$.meta.description;else if(Z.seo?.defaultConfig?.description)q=Z.seo.defaultConfig.description;else q=Z.defaultDescription||"A website built with stx templating engine";let K="";if($.image)K=$.image;else if($.meta&&$.meta.image)K=$.meta.image;else if($.openGraph&&$.openGraph.image)K=$.openGraph.image;else if(Z.seo?.defaultImage)K=Z.seo.defaultImage;else if(Z.defaultImage)K=Z.defaultImage;let U=`
|
|
12540
12659
|
<!-- stx SEO Tags -->
|
|
12541
12660
|
<meta name="title" content="${p(Q)}">
|
|
12542
12661
|
<meta name="description" content="${p(q)}">
|
|
@@ -12552,7 +12671,7 @@ ${"\x1B[31m"}\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\
|
|
|
12552
12671
|
`;let W=X;if(!G)W=W.replace(/<head[^>]*>/,`$&
|
|
12553
12672
|
<title>${p(Q)}</title>`);return W.replace(/<head[^>]*>/,`$&
|
|
12554
12673
|
${U}
|
|
12555
|
-
`)}function p(X){return X.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}var
|
|
12674
|
+
`)}function p(X){return X.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}var PJ,vJ;var k4=E(()=>{z1();F0();PJ={name:"meta",handler:(X,$,Z,Y)=>{if($.length<1)return $0("Meta","meta directive requires at least the meta name",s.INVALID_DIRECTIVE_SYNTAX);let J=$[0].replace(/['"]/g,""),G=$.length>1?$[1].replace(/['"]/g,""):"";return`<meta name="${p(J)}" content="${p(G)}">`},hasEndTag:!1},vJ={name:"structuredData",handler:(X,$,Z,Y)=>{if(X.trim()==="")return $0("StructuredData","structuredData directive requires JSON-LD content",s.INVALID_DIRECTIVE_SYNTAX);try{let J=JSON.parse(X);if(!J["@context"])J["@context"]="https://schema.org";if(!J["@type"])return $0("StructuredData","structuredData requires @type property",s.INVALID_DIRECTIVE_SYNTAX);return`<script type="application/ld+json">${JSON.stringify(J)}</script>`}catch(J){let G=J instanceof Error?J.message:String(J);return $0("StructuredData",G,s.EVALUATION_ERROR)}},hasEndTag:!0}});import f7 from"path";function rj(X,$){let Z=X.match(/<script\b[^>]*>([\s\S]*?)<\/script>/i),Y=Z?Z[1].trim():"",J=$,G=[],Q=!0;if(Y){let w=Y.match(/export\s+default\s+({[\s\S]*})/);if(w)try{let z=w[1],B=z.match(/tag\s*:\s*['"`]([^'"`]+)['"`]/);if(B)J=B[1];let j=z.match(/props\s*:\s*\[([\s\S]*?)\]/);if(j)G=j[1].split(",").map((H)=>H.trim().replace(/['"`]/g,"")).filter((H)=>H.length>0);let _=z.match(/shadowDOM\s*:\s*(true|false)/);if(_)Q=_[1]==="true"}catch{}}let q=X.match(/<template\b(?![^>]*\bid\s*=)[^>]*>([\s\S]*?)<\/template>/i),K=q?q[1].trim():"",U=X.match(/<style\b[^>]*>([\s\S]*?)<\/style>/i),W=U?U[1].trim():"";return{tag:J,props:G,template:K,styles:W,script:Y,shadowDOM:Q}}function oj(X){let{tag:$,props:Z,template:Y,styles:J,shadowDOM:G}=X,Q=$.split("-").map((w)=>w.charAt(0).toUpperCase()+w.slice(1)).join(""),q=Y.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/g,"\\${"),K=J.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),U=Z.map((w)=>`'${w}'`).join(", "),W=Z.map((w)=>`
|
|
12556
12675
|
get ${w}() {
|
|
12557
12676
|
return this.getAttribute('${w}') || '';
|
|
12558
12677
|
}
|
|
@@ -12603,16 +12722,16 @@ ${W}
|
|
|
12603
12722
|
}
|
|
12604
12723
|
|
|
12605
12724
|
customElements.define('${$}', ${Q});
|
|
12606
|
-
`}async function
|
|
12607
|
-
${
|
|
12608
|
-
</script>`}var IJ=E(()=>{z1();A0()});var EJ={};o(EJ,{timingPlugin:()=>pj,pluginManager:()=>dj,definePlugin:()=>E8,debugPlugin:()=>cj,createVariablesPlugin:()=>ij,createFilterPlugin:()=>lj,createDirectivePlugin:()=>mj,PluginManager:()=>R3});function E8(X){return X}class R3{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 mj(X,$,Z={}){return{name:X,...Z,registerDirectives:()=>$}}function lj(X,$,Z={}){return{name:X,...Z,registerFilters:()=>$}}function ij(X){return E8({name:"stx-variables",version:"1.0.0",description:"Adds predefined variables to template context",beforeProcess($){return{context:{...$.context,...X}}}})}var dj,cj,pj;var DJ=E(()=>{dj=new R3;cj=E8({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)}}),pj=E8({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 CJ={};o(CJ,{validateConfig:()=>ej,resolveStxDirectories:()=>SJ,loadStxConfig:()=>I1,defineStxConfig:()=>tj,defaultConfig:()=>X5,config:()=>H7});import D8 from"fs";import d0 from"path";import{loadConfigWithResult as nj}from"bunfig";function rj(X,$,Z){let Y=$||"pages";if(X)return{root:X,pagesDir:Y};let J=Z||process.cwd(),G=d0.join(J,"resources","views"),Q=d0.join(J,"resources","layouts");if(D8.existsSync(G)&&D8.existsSync(Q))return{root:"resources",pagesDir:"views"};let q=d0.join(J,"resources","views","pages");if(D8.existsSync(q))return{root:"resources/views",pagesDir:Y};return{root:".",pagesDir:Y}}function oj(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 SJ(X,$){let Z=!X.root,Y=rj(X.root,X.pagesDir,$);if(X.root=Y.root,X.pagesDir=Y.pagesDir,Z&&Y.root!=="."){let J=`${$}::${Y.root}`;if(!yJ.has(J))yJ.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(d0.isAbsolute(Q)||oj(Q,J))continue;X[G]=d0.join(J,Q)}}return X}function sj(X,$){let Z=["componentsDir","layoutsDir","partialsDir"];for(let Y of Z){let J=X[Y];if(typeof J!=="string"||!J)continue;let G=d0.isAbsolute(J)?J:d0.join($,J);if(D8.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 aj(X){if(_6(X.stateDir),X.stateDir=e5(),X.cachePath=$7(X.cachePath),X.build)X.build.cacheDir=$7(X.build.cacheDir);if(X.media?.cache)X.media.cache.directory=$7(X.media.cache.directory);if(X.story)X.story.outDir=$7(X.story.outDir)}async function I1(X){if(!X){if(S5)return S5;if(y8)return y8}let $=X?d0.resolve(X):process.cwd(),Z=bJ.get($);if(Z)return Z;let Y=(async()=>{let G=(await nj({name:"stx",alias:"ui",cwd:$,defaultConfig:X5,verbose:!1})).config;if(aj(G),SJ(G,$),sj(G,$),G.plugins&&G.plugins.length>0){let{pluginManager:Q}=await Promise.resolve().then(() => (DJ(),EJ)),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=d0.dirname(U0.resolve(W))}catch{let _=d0.resolve(process.cwd(),W);z=await import(_),B=d0.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(d0.resolve(B,H))}if(j.pages){let _=d0.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,O)=>{G.apiRoutes=G.apiRoutes||{},G.apiRoutes[H]=O},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(bJ.set($,Y),!X)y8=Y,Y.then((J)=>{S5=J}).catch(()=>{});return Y}function tj(X){return X}function ej(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,yJ,S5=null,bJ,y8=null,H7;var V1=E(()=>{_$();H$();P$();v$();x9();lY();j3();_3();A3();GX();IJ();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:_Y,hasEndTag:!0,description:"Render markdown content to HTML"},{name:"webcomponent",handler:kJ,hasEndTag:!1,description:"Include a web component in the template"},F6,V6,NJ,MJ,A6,T6,N6,R6,r6,a6,mY,z3,...B3],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}};yJ=new Set;bJ=new Map;H7=new Proxy(X5,{get(X,$){if(S5&&$ in S5)return S5[$];if(!y8)I1().catch((Z)=>{console.warn("[stx] Failed to load config file:",Z?.message||Z)});return X[$]}})});import Q0 from"path";import{hasLocalConfig as XB}from"bunfig";function S8(X){return Bun.hash(X).toString(16).padStart(16,"0").slice(0,16)}function N3(X,$){if($5.has(X))$5.delete(X);else if($5.size>=xJ)$5.delete($5.keys().next().value);$5.set(X,$)}function $B(X){let $=S8(X);if(C5.has($))C5.delete($);else if(C5.size>=xJ)C5.delete(C5.keys().next().value);return C5.set($,X),$}async function ZB(X){if(!y1)return null;try{let $=Bun.file(Q0.join(y1,`cw-${S8(X)}.css`));if(!await $.exists())return null;return await $.text()}catch{return null}}async function YB(X,$){if(!y1)return;try{if(!fs.existsSync(y1))fs.mkdirSync(y1,{recursive:!0});await Bun.write(Q0.join(y1,`cw-${S8(X)}.css`),$)}catch{}}async function vJ(X){try{let $=await import(X);if($&&$.CSSGenerator)return{CSSGenerator:$.CSSGenerator,config:$.config,build:$.build,defaultConfig:$.defaultConfig,extractClasses:$.extractClasses}}catch{}return null}function JB(){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 GB(){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 QB(){if(PJ)return j1;PJ=!0;try{let X=async(J)=>{for(let G of J){if(!await Bun.file(G).exists())continue;let Q=await vJ(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 j1=G,j1}let $=await X(JB());if($)return j1=$,j1;let Z=["@cwcss/crosswind","@cwcss/crosswind/dist/index.js","@stacksjs/crosswind","@stacksjs/crosswind/dist/index.js"];for(let J of Z){let G=await vJ(J);if(G){if(j1=G,!process.env.STACKS_DEV_QUIET)console.log(`${V0.green}[Crosswind]${V0.reset} CSS engine loaded`);return j1}}let Y=await X(GB());if(Y)return j1=Y,j1;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 qB(X){try{if(!XB({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 KB(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 UB(X,$){try{let Z=await QB();if(!Z)return"";let Y=typeof Z.extractClasses==="function"?Z.extractClasses(X):KB(X);if(Y.size===0)return"";let J=$?Q0.resolve($):process.cwd();if(!y1)y1=X7(J,"cache");let G=[...Y].sort().join(" "),Q=`${T3||"default"}::${G}`,q=$5.get(Q);if(q!==void 0)return N3(Q,q),q;let K=await ZB(Q);if(K!==null)return N3(Q,K),K;if(!b8){let V=null;try{let{loadStxConfig:A}=await Promise.resolve().then(() => (V1(),CJ)),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 k=await import(T);V=k.default||k,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 k=await import(T);V={...k.default||k,...V}}}console.log(`${V0.green}[Crosswind]${V0.reset} Using inline CSS config from stx.config.ts`)}}catch{}b8=V||await qB(J);try{T3=S8(JSON.stringify(b8??{}))}catch{T3="unhashable"}}let U=Z.defaultConfig||Z.config,W=b8||{},w=j6(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 O=H.toCSS(B,j),L=_.shortcuts||W.shortcuts||{};for(let[V,A]of Object.entries(L)){if(!Y.has(V)&&!z.includes(V))continue;let R=A.split(/\s+/).filter(Boolean);for(let T of R)H.generate(T)}O=H.toCSS(B,j);let F=O.split(`
|
|
12609
|
-
`);for(let[
|
|
12610
|
-
.${
|
|
12611
|
-
@media (prefers-color-scheme: dark) { .dark .${
|
|
12725
|
+
`}async function xJ(X,$,Z,Y){if($.length<1)return $0("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=[f7.join(f7.dirname(Y),Q,`${J}.stx`),f7.join(process.cwd(),Q,`${J}.stx`),f7.join(f7.dirname(Y),`${J}.stx`)],K=null;for(let w of q)if(await i(w)){K=await Bun.file(w).text();break}if(!K)return $0("WebComponent",`Component file not found: ${J}.stx`,s.FILE_NOT_FOUND);let U=rj(K,J);return`<script type="module">
|
|
12726
|
+
${oj(U)}
|
|
12727
|
+
</script>`}var fJ=E(()=>{z1();R0()});var gJ={};o(gJ,{timingPlugin:()=>XB,pluginManager:()=>sj,definePlugin:()=>S8,debugPlugin:()=>ej,createVariablesPlugin:()=>$B,createFilterPlugin:()=>tj,createDirectivePlugin:()=>aj,PluginManager:()=>I4});function S8(X){return X}class I4{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 aj(X,$,Z={}){return{name:X,...Z,registerDirectives:()=>$}}function tj(X,$,Z={}){return{name:X,...Z,registerFilters:()=>$}}function $B(X){return S8({name:"stx-variables",version:"1.0.0",description:"Adds predefined variables to template context",beforeProcess($){return{context:{...$.context,...X}}}})}var sj,ej,XB;var hJ=E(()=>{sj=new I4;ej=S8({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)}}),XB=S8({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 lJ={};o(lJ,{validateConfig:()=>KB,resolveStxDirectories:()=>mJ,loadStxConfig:()=>E1,defineStxConfig:()=>qB,defaultConfig:()=>$5,config:()=>O7});import C8 from"fs";import d0 from"path";import{loadConfigWithResult as ZB}from"bunfig";function YB(X,$,Z){let Y=$||"pages";if(X)return{root:X,pagesDir:Y};let J=Z||process.cwd(),G=d0.join(J,"resources","views"),Q=d0.join(J,"resources","layouts");if(C8.existsSync(G)&&C8.existsSync(Q))return{root:"resources",pagesDir:"views"};let q=d0.join(J,"resources","views","pages");if(C8.existsSync(q))return{root:"resources/views",pagesDir:Y};return{root:".",pagesDir:Y}}function JB(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 mJ(X,$){let Z=!X.root,Y=YB(X.root,X.pagesDir,$);if(X.root=Y.root,X.pagesDir=Y.pagesDir,Z&&Y.root!=="."){let J=`${$}::${Y.root}`;if(!uJ.has(J))uJ.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(d0.isAbsolute(Q)||JB(Q,J))continue;X[G]=d0.join(J,Q)}}return X}function GB(X,$){let Z=["componentsDir","layoutsDir","partialsDir"];for(let Y of Z){let J=X[Y];if(typeof J!=="string"||!J)continue;let G=d0.isAbsolute(J)?J:d0.join($,J);if(C8.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 QB(X){if(k6(X.stateDir),X.stateDir=X7(),X.cachePath=Z7(X.cachePath),X.build)X.build.cacheDir=Z7(X.build.cacheDir);if(X.media?.cache)X.media.cache.directory=Z7(X.media.cache.directory);if(X.story)X.story.outDir=Z7(X.story.outDir)}async function E1(X){if(!X){if(S5)return S5;if(P8)return P8}let $=X?d0.resolve(X):process.cwd(),Z=dJ.get($);if(Z)return Z;let Y=(async()=>{let G=(await ZB({name:"stx",alias:"ui",cwd:$,defaultConfig:$5,verbose:!1})).config;if(QB(G),mJ(G,$),GB(G,$),G.plugins&&G.plugins.length>0){let{pluginManager:Q}=await Promise.resolve().then(() => (hJ(),gJ)),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=d0.dirname(U0.resolve(W))}catch{let _=d0.resolve(process.cwd(),W);z=await import(_),B=d0.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(d0.resolve(B,H))}if(j.pages){let _=d0.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,O)=>{G.apiRoutes=G.apiRoutes||{},G.apiRoutes[H]=O},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(dJ.set($,Y),!X)P8=Y,Y.then((J)=>{S5=J}).catch(()=>{});return Y}function qB(X){return X}function KB(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 $5,uJ,S5=null,dJ,P8=null,O7;var A1=E(()=>{V$();A$();h$();u$();d9();eY();L4();V4();k4();qX();fJ();$5={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:MY,hasEndTag:!0,description:"Render markdown content to HTML"},{name:"webcomponent",handler:xJ,hasEndTag:!1,description:"Include a web component in the template"},y6,b6,PJ,vJ,S6,P6,v6,C6,G2,K2,tY,O4,...F4],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}};uJ=new Set;dJ=new Map;O7=new Proxy($5,{get(X,$){if(S5&&$ in S5)return S5[$];if(!P8)E1().catch((Z)=>{console.warn("[stx] Failed to load config file:",Z?.message||Z)});return X[$]}})});import Q0 from"path";import{hasLocalConfig as UB}from"bunfig";function x8(X){return Bun.hash(X).toString(16).padStart(16,"0").slice(0,16)}function D4(X,$){if(Z5.has(X))Z5.delete(X);else if(Z5.size>=iJ)Z5.delete(Z5.keys().next().value);Z5.set(X,$)}function WB(X){let $=x8(X);if(C5.has($))C5.delete($);else if(C5.size>=iJ)C5.delete(C5.keys().next().value);return C5.set($,X),$}async function wB(X){if(!b1)return null;try{let $=Bun.file(Q0.join(b1,`cw-${x8(X)}.css`));if(!await $.exists())return null;return await $.text()}catch{return null}}async function zB(X,$){if(!b1)return;try{if(!fs.existsSync(b1))fs.mkdirSync(b1,{recursive:!0});await Bun.write(Q0.join(b1,`cw-${x8(X)}.css`),$)}catch{}}async function pJ(X){try{let $=await import(X);if($&&$.CSSGenerator)return{CSSGenerator:$.CSSGenerator,config:$.config,build:$.build,defaultConfig:$.defaultConfig,extractClasses:$.extractClasses}}catch{}return null}function jB(){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 BB(){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 _B(){if(cJ)return j1;cJ=!0;try{let X=async(J)=>{for(let G of J){if(!await Bun.file(G).exists())continue;let Q=await pJ(G);if(Q){if(!process.env.STACKS_DEV_QUIET)console.log(`${A0.green}[Crosswind]${A0.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 j1=G,j1}let $=await X(jB());if($)return j1=$,j1;let Z=["@cwcss/crosswind","@cwcss/crosswind/dist/index.js","@stacksjs/crosswind","@stacksjs/crosswind/dist/index.js"];for(let J of Z){let G=await pJ(J);if(G){if(j1=G,!process.env.STACKS_DEV_QUIET)console.log(`${A0.green}[Crosswind]${A0.reset} CSS engine loaded`);return j1}}let Y=await X(BB());if(Y)return j1=Y,j1;throw Error("Crosswind CSSGenerator not found in any location")}catch{return console.warn(`${A0.yellow}[Crosswind] CSS engine not available, Tailwind styles will not be generated${A0.reset}`),console.warn(`${A0.yellow}Run 'bun add @stacksjs/crosswind' to enable CSS generation${A0.reset}`),null}}async function HB(X){try{if(!UB({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(`${A0.green}[Crosswind]${A0.reset} Loaded config from ${Y||Z.path}`);return Z.config}catch($){if($ instanceof Error&&$.name==="ConfigNotFoundError")return null;return console.warn(`${A0.yellow}[Crosswind]${A0.reset} Failed to load crosswind config:`,$ instanceof Error?$.message:$),null}}function OB(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 LB(X,$){try{let Z=await _B();if(!Z)return"";let Y=typeof Z.extractClasses==="function"?Z.extractClasses(X):OB(X);if(Y.size===0)return"";let J=$?Q0.resolve($):process.cwd();if(!b1)b1=$7(J,"cache");let G=[...Y].sort().join(" "),Q=`${E4||"default"}::${G}`,q=Z5.get(Q);if(q!==void 0)return D4(Q,q),q;let K=await wB(Q);if(K!==null)return D4(Q,K),K;if(!v8){let A=null;try{let{loadStxConfig:R}=await Promise.resolve().then(() => (A1(),lJ)),N=await R(J);if(N.css)if(typeof N.css==="string"){let T=Q0.isAbsolute(N.css)?N.css:Q0.resolve(J,N.css);if(await Bun.file(T).exists()){let k=await import(T);A=k.default||k,console.log(`${A0.green}[Crosswind]${A0.reset} Loaded config from stx.config.ts \u2192 ${N.css}`)}}else{if(A={...N.css,content:N.css.content||[],preflight:N.css.preflight??!0,minify:N.css.minify??!1},N.css.config){let T=Q0.isAbsolute(N.css.config)?N.css.config:Q0.resolve(J,N.css.config);if(await Bun.file(T).exists()){let k=await import(T);A={...k.default||k,...A}}}console.log(`${A0.green}[Crosswind]${A0.reset} Using inline CSS config from stx.config.ts`)}}catch{}v8=A||await HB(J);try{E4=x8(JSON.stringify(v8??{}))}catch{E4="unhashable"}}let U=Z.defaultConfig||Z.config,W=v8||{},w=N6(U,W),{safelist:z,includePreflight:B,minify:j,tokenCSS:_}=w,H=w.config,O=new Z.CSSGenerator(H);for(let A of z)O.generate(A);for(let A of Y)O.generate(A);let L=O.toCSS(B,j),F=H.shortcuts||W.shortcuts||{};for(let[A,R]of Object.entries(F)){if(!Y.has(A)&&!z.includes(A))continue;let N=R.split(/\s+/).filter(Boolean);for(let T of N)O.generate(T)}L=O.toCSS(B,j);let V=L.split(`
|
|
12728
|
+
`);for(let[A,R]of Object.entries(F)){if(!Y.has(A)&&!z.includes(A))continue;let N=R.split(/\s+/).filter(Boolean),T=[],k=[];for(let M of N){let D=M.startsWith("dark:"),b=`.${(D?M.slice(5):M).replace(/\//g,"\\/").replace(/:/g,"\\:").replace(/\./g,"\\.").replace(/\[/g,"\\[").replace(/\]/g,"\\]").replace(/%/g,"\\%")}`;for(let y=0;y<V.length;y++){let v=V[y].trim();if(v===`${b} {`||v.startsWith(`${b} {`)){let x=y,g="";while(x<V.length){if(g+=V[x],V[x].includes("}"))break;x++}let l=g.match(/\{([^}]+)\}/);if(l)if(D)k.push(l[1].trim());else T.push(l[1].trim());break}}}if(T.length)L+=`
|
|
12729
|
+
.${A} { ${T.join(" ")} }`;if(k.length)L+=`
|
|
12730
|
+
@media (prefers-color-scheme: dark) { .dark .${A} { ${k.join(" ")} } }`}return L=_+L,D4(Q,L),zB(Q,L),L}catch(Z){return console.warn("Failed to generate Crosswind CSS:",Z),""}}async function nJ(X,$,Z=!1){let Y=await LB(X,$);if(!Y)return X;let J=Z?`<link data-crosswind="generated" rel="stylesheet" href="/_stx/crosswind.${WB(Y)}.css">`:`<style data-crosswind="generated">
|
|
12612
12731
|
${Y}
|
|
12613
12732
|
</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}
|
|
12614
12733
|
</head>`);if(X.includes("<body"))return X.replace(/<body([^>]*)>/,`<body$1>
|
|
12615
|
-
${J}`);return J+X}var j1=null,
|
|
12734
|
+
${J}`);return J+X}var j1=null,cJ=!1,v8=null,iJ=256,Z5,C5,b1=null,E4=null;var rJ=E(()=>{T6();qX();I6();Z5=new Map,C5=new Map});function oJ(){return`
|
|
12616
12735
|
// STX Lifecycle Runtime
|
|
12617
12736
|
(function() {
|
|
12618
12737
|
if (typeof window === 'undefined') return;
|
|
@@ -12957,7 +13076,7 @@ else {
|
|
|
12957
13076
|
|
|
12958
13077
|
console.log('[stx] Lifecycle runtime initialized');
|
|
12959
13078
|
})();
|
|
12960
|
-
`}function
|
|
13079
|
+
`}function y4(X){return Symbol(X)}var wM,zM,jM;var sJ=E(()=>{wM=y4("theme"),zM=y4("router"),jM=y4("i18n")});import*as tJ from"crypto";function aJ(X){let $=/\$(\w+)\./g,Z=[],Y;while((Y=$.exec(X))!==null)if(!Z.includes(Y[1]))Z.push(Y[1]);return Z}function FB(){return`stx-${tJ.randomBytes(4).toString("hex")}`}function VB(X){return/\$\w+\./.test(X)}function AB(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 O=H[0],L=H[1],F=H[2];if(VB(F)){W=!0;let V=F.match(/\{\{\s*([\s\S]+?)\s*\}\}/);if(V){let A=V[1];if(U.push({attr:L,expr:A,fullMatch:O,originalAttr:L}),aJ(A).forEach((N)=>Z.add(N)),L==="text")w=w.replace(O,"");else if(L==="class")w=w.replace(O,'class=""');else if(L==="disabled"||L==="hidden")w=w.replace(O,"");else w=w.replace(O,`${L}=""`)}}}if(!W)return G;let j=w.match(/\bid\s*=\s*"([^"]+)"/),_;if(j)_=j[1];else _=FB(),w=` id="${_}"${w}`;for(let H of U)$.push({elementId:_,attribute:H.attr,expression:H.expr,stores:aJ(H.expr)});return`<${Q}${w}${K}`}),{html:J,bindings:$,stores:Z}}function RB(X,$){if(X.length===0)return"";let Z=Array.from($),Y=`
|
|
12961
13080
|
<script>
|
|
12962
13081
|
(function() {
|
|
12963
13082
|
'use strict';
|
|
@@ -13115,10 +13234,10 @@ else {
|
|
|
13115
13234
|
}
|
|
13116
13235
|
})();
|
|
13117
13236
|
</script>
|
|
13118
|
-
`,Y}function
|
|
13237
|
+
`,Y}function eJ(X){let{html:$,bindings:Z,stores:Y}=AB(X);if(Z.length===0)return X;let J=RB(Z,Y),G=$.lastIndexOf("</body>");if(G!==-1)return $.slice(0,G)+J+$.slice(G);return $+J}var XG=()=>{};function NB(X){let $=X.analytics;if(!$?.enabled)return"";switch($.driver){case"fathom":return TB($);case"google-analytics":return MB($);case"plausible":return kB($);case"self-hosted":return IB($);case"custom":return EB($);default:return""}}function TB(X){let $=X.fathom;if(!$?.siteId)return"";let Z=$.scriptUrl||"https://cdn.usefathom.com/script.js",Y=$.defer!==!1?" defer":"",J=[`data-site="${m0($.siteId)}"`];if($.honorDnt)J.push('data-honor-dnt="true"');if($.spa)J.push('data-spa="auto"');if($.canonical)J.push(`data-canonical="${m0($.canonical)}"`);if($.auto===!1)J.push('data-auto="false"');return`
|
|
13119
13238
|
<!-- Fathom Analytics -->
|
|
13120
13239
|
<script src="${m0(Z)}" ${J.join(" ")}${Y}></script>
|
|
13121
|
-
`}function
|
|
13240
|
+
`}function MB(X){let $=X.googleAnalytics;if(!$?.measurementId)return"";let Z=m0($.measurementId),Y=$.debug?`gtag('config', '${Z}', { 'debug_mode': true });`:"";return`
|
|
13122
13241
|
<!-- Google Analytics -->
|
|
13123
13242
|
<script async src="https://www.googletagmanager.com/gtag/js?id=${Z}"></script>
|
|
13124
13243
|
<script>
|
|
@@ -13128,10 +13247,10 @@ else {
|
|
|
13128
13247
|
gtag('config', '${Z}');
|
|
13129
13248
|
${Y}
|
|
13130
13249
|
</script>
|
|
13131
|
-
`}function
|
|
13250
|
+
`}function kB(X){let $=X.plausible;if(!$?.domain)return"";let Z=$.scriptUrl||"https://plausible.io/js/script.js",Y=[`data-domain="${m0($.domain)}"`],J=Z,G=[];if($.trackLocalhost)G.push("local");if($.hashMode)G.push("hash");if(G.length>0&&Z==="https://plausible.io/js/script.js")J=`https://plausible.io/js/script.${G.join(".")}.js`;return`
|
|
13132
13251
|
<!-- Plausible Analytics -->
|
|
13133
13252
|
<script defer data-domain="${m0($.domain)}" src="${m0(J)}"></script>
|
|
13134
|
-
`}function
|
|
13253
|
+
`}function IB(X){let $=X.selfHosted;if(!$?.siteId||!$?.apiEndpoint)return"";let Z=m0($.siteId),Y=m0($.apiEndpoint),J=$.honorDnt?'if(n.doNotTrack==="1")return;':"",G=$.trackHashChanges?"w.addEventListener('hashchange',pv);":"",Q=$.trackOutboundLinks?`
|
|
13135
13254
|
d.addEventListener('click',function(e){
|
|
13136
13255
|
var a=e.target.closest('a');
|
|
13137
13256
|
if(a&&a.hostname!==location.hostname){
|
|
@@ -13164,7 +13283,7 @@ else {
|
|
|
13164
13283
|
w.stxAnalytics={track:function(n,v){t('event',{name:n,value:v});}};
|
|
13165
13284
|
})();
|
|
13166
13285
|
</script>
|
|
13167
|
-
`}function
|
|
13286
|
+
`}function EB(X){let $=X.custom;if(!$)return"";if($.inlineScript)return`
|
|
13168
13287
|
<!-- Custom Analytics -->
|
|
13169
13288
|
<script>
|
|
13170
13289
|
${$.inlineScript}
|
|
@@ -13172,7 +13291,7 @@ ${$.inlineScript}
|
|
|
13172
13291
|
`;if(!$.scriptUrl)return"";let Z=[];if($.scriptId)Z.push(`id="${m0($.scriptId)}"`);if($.attributes)for(let[J,G]of Object.entries($.attributes))Z.push(`${m0(J)}="${m0(G)}"`);return`
|
|
13173
13292
|
<!-- Custom Analytics -->
|
|
13174
13293
|
<script${Z.length>0?` ${Z.join(" ")}`:""} src="${m0($.scriptUrl)}" defer></script>
|
|
13175
|
-
`}function
|
|
13294
|
+
`}function $G(X,$){let Z=NB($);if(!Z)return X;if(!X.includes("</head>")){let Y=X.lastIndexOf("</body>");if(Y!==-1)return X.slice(0,Y)+Z+X.slice(Y);return X+Z}return X.replace("</head>",`${Z}</head>`)}function m0(X){return X.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}var ZG=()=>{};function YG(X){let $=X.match(/\bdefinePageMeta\s*\(\s*(\{[\s\S]*?\})\s*\)/m);if(!$)return null;try{return Function(`return ${$[1]}`)()}catch{return null}}function JG(X){let $=X?.layout;if($===!1)return!1;return typeof $==="string"&&$.trim()?$.trim():void 0}function GG(X,$){let Z=X.match(new RegExp(`${$}\\s*=\\s*"([^"]*)"`,"i"));if(Z)return Z[1];let Y=X.match(new RegExp(`${$}\\s*=\\s*'([^']*)'`,"i"));if(Y)return Y[1];return null}function yB(X){let $=[],Z=/<([a-z][a-z0-9-]*)\s+([^>]*x-data\s*=\s*(?:"[^"]*"|'[^']*')[^>]*)>/gi,Y;while((Y=Z.exec(X))!==null){let[J,G,Q]=Y,q=Y.index,K=GG(Q,"x-data");if(!K)continue;let U=`__stx_scope_${qG++}`,W=GG(Q,"x-init"),w=bB(X,G,q+J.length),z=X.slice(q,w.endIndex),B=SB(z);$.push({id:U,selector:`[data-stx-scope="${U}"]`,stateExpr:K,initExpr:W,bindings:[],refs:B})}return $}function bB(X,$,Z){let Y=1,J=Z,G=new RegExp(`<${$}(?:\\s|>)`,"gi"),Q=new RegExp(`</${$}>`,"gi"),q=new RegExp(`<${$}[^>]*/\\s*>`,"gi");while(Y>0&&J<X.length){G.lastIndex=J,Q.lastIndex=J,q.lastIndex=J;let K=G.exec(X),U=Q.exec(X),W=q.exec(X);if(W&&W.index<(K?.index??1/0)){J=W.index+W[0].length;continue}if(!U)return{endIndex:X.length};if(K&&K.index<U.index)Y++,J=K.index+K[0].length;else{if(Y--,Y===0)return{endIndex:U.index+U[0].length};J=U.index+U[0].length}}return{endIndex:X.length}}function SB(X){let $=new Map,Z=X.replace(/x-data\s*=\s*"[^"]*"/gi,'x-data="__stripped__"').replace(/x-data\s*=\s*'[^']*'/gi,"x-data='__stripped__'"),Y=/<[a-z][a-z0-9-]*\s+([^>]*x-ref\s*=\s*["']([^"']*)["'][^>]*)>/gi,J;while((J=Y.exec(Z))!==null){let[,G,Q]=J,q=CB(G);$.set(Q,q)}return $}function CB(X){let $=X.match(/\bid\s*=\s*["']([^"']*)["']/);if($)return $[1];return`__stx_el_${DB++}`}function PB(){return`
|
|
13176
13295
|
// STX Reactive Runtime - x-cloak and transition CSS
|
|
13177
13296
|
(function() {
|
|
13178
13297
|
var style = document.createElement('style');
|
|
@@ -13379,7 +13498,7 @@ window.__stx_reactive = (function() {
|
|
|
13379
13498
|
|
|
13380
13499
|
return { initScope: initScope, reactive: reactive };
|
|
13381
13500
|
})();
|
|
13382
|
-
`}function
|
|
13501
|
+
`}function QG(X,$){let Z=X.replace(/\{!!([\s\S]*?)!!\}/g,(q,K)=>{try{let U=f0(K,$,!0);if(U===void 0)return q;return String(U)}catch{return q}}),Y="",J=0,G=null;while(J<Z.length){let q=Z[J];if(G&&q==="\\"){Y+=q+(Z[J+1]??""),J+=2;continue}if(q==="{"&&Z[J+1]==="{"){let K=Z.indexOf("}}",J+2);if(K!==-1){let U=Z.slice(J,K+2);Y+=Q(Z.slice(J+2,K),U,G),J=K+2;continue}}if(G){if(q===G)G=null}else if(q==="'"||q==='"'||q==="`")G=q;Y+=q,J++}return Y;function Q(q,K,U){let W;try{W=f0(q,$,!0)}catch{return K}if(W===void 0)return K;if(U){let w=String(W).replace(/\\/g,"\\\\").replace(new RegExp(U==="`"?"`":U,"g"),`\\${U}`).replace(/\r/g,"\\r").replace(/\n/g,"\\n");return U==="`"?w.replace(/\$\{/g,"\\${"):w}if(typeof W==="string"){let w=W.trim();if(w.startsWith("{")&&w.endsWith("}")||w.startsWith("[")&&w.endsWith("]"))try{return JSON.parse(w),w}catch{}}return JSON.stringify(W)}}function vB(X,$){if(X.length===0)return"";let Z=X.map((Y)=>{let J=JSON.stringify(Object.fromEntries(Y.refs)),G=QG(Y.stateExpr,$),Q=Y.initExpr?QG(Y.initExpr,$):null,q=JSON.stringify(G),K=Q?JSON.stringify(Q):"null";return`
|
|
13383
13502
|
(function() {
|
|
13384
13503
|
var scopeEl = document.querySelector('${Y.selector}');
|
|
13385
13504
|
if (!scopeEl) return;
|
|
@@ -13388,16 +13507,16 @@ window.__stx_reactive = (function() {
|
|
|
13388
13507
|
})();`}).join(`
|
|
13389
13508
|
`);return`
|
|
13390
13509
|
<script data-stx-scoped data-stx-reactive data-stx-run="always">
|
|
13391
|
-
${
|
|
13510
|
+
${PB()}
|
|
13392
13511
|
${Z}
|
|
13393
|
-
</script>`}function
|
|
13394
|
-
`+J.slice(Q);else J+=G;return J}function IB(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 EB(X){return/x-data\s*=\s*["']/.test(X)}var aJ=0,VB=0;var eJ=E(()=>{Z1()});import DB from"fs";import k3 from"path";import{createHighlighter as yB}from"ts-syntax-highlighter";async function bB(X,$={}){try{if(!await i(X))throw Error(`Markdown file not found: ${X}`);let Y=(await DB.promises.stat(X)).mtime.getTime();if($.cache&&I3.has(X)){let w=I3.get(X);if(w.updatedAt>=Y)return{content:w.content,data:w.data}}let J=await Bun.file(X).text(),{data:G,content:Q}=e6(J),q=$.markdown||H7.markdown||{enabled:!0,syntaxHighlighting:{enabled:!0,serverSide:!0,defaultTheme:"github-dark",highlightUnknownLanguages:!0}},U=z7(Q,{gfm:!0});if(q.syntaxHighlighting?.enabled&&q.syntaxHighlighting?.serverSide)U=await SB(U,q.syntaxHighlighting?.defaultTheme||"github-dark",q.syntaxHighlighting?.highlightUnknownLanguages||!1);let W={content:U,data:G||{}};if($.cache)I3.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:w0("Markdown File",`Error reading/parsing markdown file: ${Y}`,X,"",0,""),data:{}}}}async function SB(X,$,Z){let Y=/<pre><code( class="language-([^"]+)")?>([^<]+)<\/code><\/pre>/g;if(!C8)try{C8=await yB({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(!C8.getSupportedLanguages().includes(z))return q;return(await C8.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 XG(X,$,Z="",Y={}){return await CB(X,/@markdown-file\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\}))?\)/g,async(Q,q,K,U)=>{try{let W=q;if(!k3.isAbsolute(q))W=k3.resolve(k3.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 L=K.replace(/^\s*\{|\}\s*$/g,"").trim().split(/,(?=\s*\w+\s*:)/);for(let F of L){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('"'),k=R.startsWith("'")&&R.endsWith("'");if(T||k)R=R.substring(1,R.length-1);w[A]=R}}}}catch(O){if(Y.debug)console.error("Error parsing context in @markdown-file directive:",O)}let{content:z,data:B}=await bB(W,Y),j={...$,...B,...w},_=z,H=/\{\{([^}]+)\}\}/g;return _=_.replace(H,(O,L)=>{let F=L.trim();return j[F]!==void 0?String(j[F]):O}),_}catch(W){let w=W instanceof Error?W.message:String(W);return w0("Markdown File",`Error including markdown file: ${w}`,Z,X,U,Q)}})}async function CB(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 I3,C8=null;var $G=E(()=>{V1();A0();I3=new Map});function b1(X,$){try{let Z=X.trim();if(J0(Z))return G0(Z,Object.keys($))(...Object.values($));else return Z0(Z,$)}catch{return!1}}var ZG=E(()=>{L0()});function PB(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=U9(Y,Q);if(!q)break;try{let K;if(J0(q.expression))K=G0(q.expression,Object.keys($))(...Object.values($));else K=Z0(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&&J0(w.value))z=G0(w.value,Object.keys($))(...Object.values($));else if(w.value)z=Z0(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=$0("Switch",`Error evaluating @switch expression: ${U}`,s.EVALUATION_ERROR);Y=Y.substring(0,Q)+W+Y.substring(q.end);break}}return Y}function vB(X){let $=[];return{masked:X.replace(/<script\b[\s\S]*?<\/script\s*>/gi,(Y)=>{return $.push(Y),`\x00stx-script-${$.length-1}\x00`}),scripts:$}}function xB(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}=vB(X);return xB(fB(Y,$,Z),J)}function fB(X,$,Z){let Y=X;Y=PB(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,O=/@(?:endif|endunless)(?![a-z])/g,L=/@else(?![a-z])/g,F=[],V;while((V=H.exec(w))!==null)F.push({pos:V.index,type:"open"});while((V=O.exec(w))!==null)F.push({pos:V.index,type:"close"});while((V=L.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=D3(Y,$,Z),Y=y3(Y,$,Z),Y=E3(Y,$);let J=()=>{let G=E7(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&&J0(W.condition))w=G0(W.condition,Object.keys($))(...Object.values($));else if(W.condition)w=Z0(W.condition,$);if(w)K=W.content,U=!0}catch(w){K=$0(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=$0("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 YG(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 E3(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),O=_?_.index:1/0,L=H?H.index:1/0;if(O<L)w++,z=O+_[0].length;else if(L<1/0){if(w--,w===0)return L;z=L+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,O)=>H.pos-O.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=YG(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"),O;if(!$.auth)O=!1;else O=W?b1(`auth?.check && auth?.user?.[${W}]`,$):b1("auth?.check",$);let L;if(H!==-1){let F=_.slice(0,H),V=_.slice(H+5);L=O?F:V}else L=O?_:"";Z=Z.substring(0,U)+L+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=YG(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"),O;if(!$.auth)O=!0;else O=W?b1(`!auth?.check || !auth?.user?.[${W}]`,$):b1("!auth?.check",$);let L;if(H!==-1){let F=_.slice(0,H),V=_.slice(H+5);L=O?F:V}else L=O?_:"";Z=Z.substring(0,U)+L+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 O=Z.slice(_,H),L=[],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,k=[],M;while((M=V.exec(O))!==null)k.push({pos:M.index,type:"open"});while((M=A.exec(O))!==null)k.push({pos:M.index,type:"close"});while((M=R.exec(O))!==null)k.push({pos:M.index,type:"elseDirective"});while((M=T.exec(O))!==null)k.push({pos:M.index,type:"else"});k.sort((y,v)=>y.pos-v.pos);for(let y of k){if(y.type==="open"){F++;continue}if(y.type==="close"){F--;continue}if(F===0)L.push(y)}let N=[],D=0;for(let y=0;y<L.length;y++){let v=L[y];if(N.push({content:O.slice(D,v.pos),ability:void 0}),v.type==="elseDirective"){let x=O.slice(v.pos+`@${U}`.length),f=Q(x);if(f){N[N.length-1]={content:O.slice(D,v.pos)},D=v.pos+`@${U}`.length+f.paramsEnd,N.push({content:"",ability:f.ability,type:f.type,id:f.id}),N.pop();let c=L[y+1],l=c?c.pos:O.length;N.push({content:O.slice(D,l),ability:f.ability,type:f.type,id:f.id}),D=l}}else D=v.pos+5}if(D<O.length){let y=N[N.length-1];if(L.length>0&&L[L.length-1].type==="else")N.push({content:O.slice(D),isFinalElse:!0});else if(N.length===0)N.push({content:O.slice(D)})}let I=G(j.ability,j.type,j.id),C=q==="can"?I:!I,b="";if(C)b=N[0]?.content||"";else{let y=!1;for(let v=1;v<N.length;v++){let x=N[v];if(x.isFinalElse){b=x.content,y=!0;break}if(x.ability){let f=G(x.ability,x.type,x.id);if(q==="can"?f:!f){b=x.content,y=!0;break}}}if(!y&&N.length>0){let v=N[N.length-1];if(v.isFinalElse)b=v.content}}Z=Z.substring(0,z)+b+Z.substring(H+`@${K}`.length),W=!0}}return Z}function D3(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 O=G.slice(_,H),L=j.expression,F=-1,V=0,A=0;while(A<O.length){let R=O.indexOf("@",A);if(R===-1)break;let T=O.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(L.trim()),T;if(F!==-1){let k=O.slice(0,F),M=O.slice(F+5);T=R?k:M}else T=R?O:"";G=G.substring(0,B)+T+G.substring(H+`@${q}`.length),W=!0}catch(R){let T=R instanceof Error?R.message:String(R),k=$0(U,`Error processing @${Q} directive: ${T}`,s.EVALUATION_ERROR);G=G.substring(0,B)+k+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 y3(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 O=H.index,L=O+H[0].length;if(q==="env"){let I=j.substring(L).match(/^\s*\(\s*(['"])([^'"]+)\1\s*\)/);if(!I)break;L+=I[0].length,U=J===I[2]}let F=1,V=L,A=-1;while(F>0&&V<j.length){W.lastIndex=V,w.lastIndex=V;let I=W.exec(j),C=w.exec(j),b=I?I.index:1/0,y=C?C.index:1/0;if(b<y)F++,V=b+I[0].length;else if(y<1/0){if(F--,F===0){A=y;break}V=y+C[0].length}else break}if(A===-1){console.warn(`[stx] @${q} directive at position ${O} has no matching @${K} \u2014 the block was skipped.`);break}let R=j.substring(L,A),T=-1,k=0,M=0;while(M<R.length){let I=R.indexOf("@",M);if(I===-1)break;let C=R.substring(I);if(z.test(C)){k++,M=I+1;continue}if(B.test(C)){k--,M=I+1;continue}if(k===0&&/^@else(?![a-z])/.test(C)){T=I;break}M=I+1}let N;if(T!==-1){let I=R.slice(0,T),C=R.slice(T+5);N=U?I:C}else N=U?R:"";let D=`@${K}`.length;j=j.substring(0,O)+N+j.substring(A+D),_=!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 P8=E(()=>{ZG();z1();yX();L0()});function GG(X=16){let $=new Uint8Array(X);return crypto.getRandomValues($),btoa(String.fromCharCode(...$))}function v8(X,$){if(!X)return $?.nonceGenerator?.()??GG();let Z=JG.get(X);if(!Z)Z=$?.nonceGenerator?.()??GG(),JG.set(X,Z);return Z}function gB(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 QG(X,$){return`<meta http-equiv="Content-Security-Policy" content="${gB(X,$).replace(/&/g,"&").replace(/"/g,""")}">`}function qG(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?v8(Z,$):void 0,J=QG($.directives,Y);return X.replace(/<head([^>]*)>/,`<head$1>
|
|
13395
|
-
${J}`)}function
|
|
13396
|
-
${
|
|
13397
|
-
${
|
|
13398
|
-
`),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]=
|
|
13512
|
+
</script>`}function KG(X,$,Z){if(qG=0,!fB(X))return X;let Y=yB(X);if(Y.length===0)return X;let J=xB(X,Y),G=vB(Y,$),Q=J.lastIndexOf("</body>");if(Q!==-1)J=J.slice(0,Q)+G+`
|
|
13513
|
+
`+J.slice(Q);else J+=G;return J}function xB(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,' data-stx-xinit="$1"'),Y=Y.replace(/\s*x-init\s*=\s*'([^']*)'/g," data-stx-xinit='$1'"),Y}function fB(X){return/x-data\s*=\s*["']/.test(X)}var qG=0,DB=0;var UG=E(()=>{Z1()});import gB from"fs";import b4 from"path";import{createHighlighter as hB}from"ts-syntax-highlighter";async function uB(X,$={}){try{if(!await i(X))throw Error(`Markdown file not found: ${X}`);let Y=(await gB.promises.stat(X)).mtime.getTime();if($.cache&&S4.has(X)){let w=S4.get(X);if(w.updatedAt>=Y)return{content:w.content,data:w.data}}let J=await Bun.file(X).text(),{data:G,content:Q}=W2(J),q=$.markdown||O7.markdown||{enabled:!0,syntaxHighlighting:{enabled:!0,serverSide:!0,defaultTheme:"github-dark",highlightUnknownLanguages:!0}},U=j7(Q,{gfm:!0});if(q.syntaxHighlighting?.enabled&&q.syntaxHighlighting?.serverSide)U=await dB(U,q.syntaxHighlighting?.defaultTheme||"github-dark",q.syntaxHighlighting?.highlightUnknownLanguages||!1);let W={content:U,data:G||{}};if($.cache)S4.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:w0("Markdown File",`Error reading/parsing markdown file: ${Y}`,X,"",0,""),data:{}}}}async function dB(X,$,Z){let Y=/<pre><code( class="language-([^"]+)")?>([^<]+)<\/code><\/pre>/g;if(!f8)try{f8=await hB({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(!f8.getSupportedLanguages().includes(z))return q;return(await f8.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 WG(X,$,Z="",Y={}){return await mB(X,/@markdown-file\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\}))?\)/g,async(Q,q,K,U)=>{try{let W=q;if(!b4.isAbsolute(q))W=b4.resolve(b4.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 L=K.replace(/^\s*\{|\}\s*$/g,"").trim().split(/,(?=\s*\w+\s*:)/);for(let F of L){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(O){if(Y.debug)console.error("Error parsing context in @markdown-file directive:",O)}let{content:z,data:B}=await uB(W,Y),j={...$,...B,...w},_=z,H=/\{\{([^}]+)\}\}/g;return _=_.replace(H,(O,L)=>{let F=L.trim();return j[F]!==void 0?String(j[F]):O}),_}catch(W){let w=W instanceof Error?W.message:String(W);return w0("Markdown File",`Error including markdown file: ${w}`,Z,X,U,Q)}})}async function mB(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 S4,f8=null;var wG=E(()=>{A1();R0();S4=new Map});function S1(X,$){try{let Z=X.trim();if(J0(Z))return G0(Z,Object.keys($))(...Object.values($));else return Z0(Z,$)}catch{return!1}}var zG=E(()=>{F0()});function lB(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=j9(Y,Q);if(!q)break;try{let K;if(J0(q.expression))K=G0(q.expression,Object.keys($))(...Object.values($));else K=Z0(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&&J0(w.value))z=G0(w.value,Object.keys($))(...Object.values($));else if(w.value)z=Z0(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=$0("Switch",`Error evaluating @switch expression: ${U}`,s.EVALUATION_ERROR);Y=Y.substring(0,Q)+W+Y.substring(q.end);break}}return Y}function cB(X){let $=[];return{masked:X.replace(/<script\b[\s\S]*?<\/script\s*>/gi,(Y)=>{return $.push(Y),`\x00stx-script-${$.length-1}\x00`}),scripts:$}}function pB(X,$){if($.length===0)return X;return X.replace(/\u0000stx-script-(\d+)\u0000/g,(Z,Y)=>$[Number(Y)]??Z)}function B1(X,$,Z){let{masked:Y,scripts:J}=cB(X);return pB(iB(Y,$,Z),J)}function iB(X,$,Z){let Y=X;Y=lB(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=I1(Y,q+7);if(!K)break;let U=K.endPos,W=r1(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,O=/@(?:endif|endunless)(?![a-z])/g,L=/@else(?![a-z])/g,F=[],V;while((V=H.exec(w))!==null)F.push({pos:V.index,type:"open"});while((V=O.exec(w))!==null)F.push({pos:V.index,type:"close"});while((V=L.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=P4(Y,$,Z),Y=v4(Y,$,Z),Y=C4(Y,$);let J=()=>{let G=D7(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&&J0(W.condition))w=G0(W.condition,Object.keys($))(...Object.values($));else if(W.condition)w=Z0(W.condition,$);if(w)K=W.content,U=!0}catch(w){K=$0(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=$0("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 jG(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 C4(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),O=_?_.index:1/0,L=H?H.index:1/0;if(O<L)w++,z=O+_[0].length;else if(L<1/0){if(w--,w===0)return L;z=L+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,O)=>H.pos-O.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=jG(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"),O;if(!$.auth)O=!1;else O=W?S1(`auth?.check && auth?.user?.[${W}]`,$):S1("auth?.check",$);let L;if(H!==-1){let F=_.slice(0,H),V=_.slice(H+5);L=O?F:V}else L=O?_:"";Z=Z.substring(0,U)+L+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=jG(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"),O;if(!$.auth)O=!0;else O=W?S1(`!auth?.check || !auth?.user?.[${W}]`,$):S1("!auth?.check",$);let L;if(H!==-1){let F=_.slice(0,H),V=_.slice(H+5);L=O?F:V}else L=O?_:"";Z=Z.substring(0,U)+L+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=S1(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 O=Z.slice(_,H),L=[],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(O))!==null)T.push({pos:k.index,type:"open"});while((k=A.exec(O))!==null)T.push({pos:k.index,type:"close"});while((k=R.exec(O))!==null)T.push({pos:k.index,type:"elseDirective"});while((k=N.exec(O))!==null)T.push({pos:k.index,type:"else"});T.sort((y,v)=>y.pos-v.pos);for(let y of T){if(y.type==="open"){F++;continue}if(y.type==="close"){F--;continue}if(F===0)L.push(y)}let M=[],D=0;for(let y=0;y<L.length;y++){let v=L[y];if(M.push({content:O.slice(D,v.pos),ability:void 0}),v.type==="elseDirective"){let x=O.slice(v.pos+`@${U}`.length),g=Q(x);if(g){M[M.length-1]={content:O.slice(D,v.pos)},D=v.pos+`@${U}`.length+g.paramsEnd,M.push({content:"",ability:g.ability,type:g.type,id:g.id}),M.pop();let l=L[y+1],c=l?l.pos:O.length;M.push({content:O.slice(D,c),ability:g.ability,type:g.type,id:g.id}),D=c}}else D=v.pos+5}if(D<O.length){let y=M[M.length-1];if(L.length>0&&L[L.length-1].type==="else")M.push({content:O.slice(D),isFinalElse:!0});else if(M.length===0)M.push({content:O.slice(D)})}let I=G(j.ability,j.type,j.id),C=q==="can"?I:!I,b="";if(C)b=M[0]?.content||"";else{let y=!1;for(let v=1;v<M.length;v++){let x=M[v];if(x.isFinalElse){b=x.content,y=!0;break}if(x.ability){let g=G(x.ability,x.type,x.id);if(q==="can"?g:!g){b=x.content,y=!0;break}}}if(!y&&M.length>0){let v=M[M.length-1];if(v.isFinalElse)b=v.content}}Z=Z.substring(0,z)+b+Z.substring(H+`@${K}`.length),W=!0}}return Z}function P4(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=I1(G,B+`@${Q}`.length);if(!j)break;let _=j.endPos,H=r1(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 O=G.slice(_,H),L=j.expression,F=-1,V=0,A=0;while(A<O.length){let R=O.indexOf("@",A);if(R===-1)break;let N=O.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(L.trim()),N;if(F!==-1){let T=O.slice(0,F),k=O.slice(F+5);N=R?T:k}else N=R?O:"";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=$0(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=S1(G,$);return Q!==void 0&&Q!==null},"Isset"),Y=J(Y,"empty","endempty",(G)=>{let Q=S1(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 v4(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 O=H.index,L=O+H[0].length;if(q==="env"){let I=j.substring(L).match(/^\s*\(\s*(['"])([^'"]+)\1\s*\)/);if(!I)break;L+=I[0].length,U=J===I[2]}let F=1,V=L,A=-1;while(F>0&&V<j.length){W.lastIndex=V,w.lastIndex=V;let I=W.exec(j),C=w.exec(j),b=I?I.index:1/0,y=C?C.index:1/0;if(b<y)F++,V=b+I[0].length;else if(y<1/0){if(F--,F===0){A=y;break}V=y+C[0].length}else break}if(A===-1){console.warn(`[stx] @${q} directive at position ${O} has no matching @${K} \u2014 the block was skipped.`);break}let R=j.substring(L,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 D=`@${K}`.length;j=j.substring(0,O)+M+j.substring(A+D),_=!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 g7=E(()=>{zG();z1();CX();F0()});function _G(X=16){let $=new Uint8Array(X);return crypto.getRandomValues($),btoa(String.fromCharCode(...$))}function g8(X,$){if(!X)return $?.nonceGenerator?.()??_G();let Z=BG.get(X);if(!Z)Z=$?.nonceGenerator?.()??_G(),BG.set(X,Z);return Z}function nB(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 HG(X,$){return`<meta http-equiv="Content-Security-Policy" content="${nB(X,$).replace(/&/g,"&").replace(/"/g,""")}">`}function OG(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?g8(Z,$):void 0,J=HG($.directives,Y);return X.replace(/<head([^>]*)>/,`<head$1>
|
|
13514
|
+
${J}`)}function LG(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 FG(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?g8($,G):void 0;return HG(G.directives,Q)}),J=J.replace(/@cspNonce\b/g,()=>{if(!G?.enabled||!G.useNonce)return"";return g8($,G)}),G?.enabled&&G.useNonce)$.cspNonce=g8($,G);return J}var BG;var VG=E(()=>{BG=new WeakMap});import rB from"crypto";function sB(X=oB){let $=rB.randomBytes(Math.ceil(X/2)).toString("hex").slice(0,X);return x4=$,$}function aB(){if(!x4)sB();return x4}function tB(X=AG){let $=aB();return`<input type="hidden" name="${X}" value="${$}">`}function RG(X){return X.replace(/@csrf(?:\((['"])([^'"]*)\1\))?/g,($,Z,Y)=>{return tB(Y||AG)})}var oB=40,AG="_token",x4=null;var NG=()=>{};async function TG(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 eB(J,G,$,Z,Y);else J=await X_(J,G,$,Z,Y)}return J}async function eB(X,$,Z,Y,J){let{name:G,handler:Q}=$,q=`@${G}`,K=`@end${G}`,U=X,W=T5(`${q}(?:\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\))?([\\s\\S]*?)${K}`,"g"),w=[],z=W.exec(U);while(z!==null){let[B,j="",_=""]=z,H=z.index||0;try{let O=j?MG(j):[],L=_.trim(),F=await Q(L,O,Z,Y);w.push({original:B,processed:F,startIndex:H})}catch(O){let L=O instanceof Error?O.message:String(O);if(J.debug)console.error(`Error processing custom directive @${G}:`,O);w.push({original:B,processed:$0("CustomDirective",`Error in @${G}${j?`(${j})`:""}: ${L}`,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 X_(X,$,Z,Y,J){let{name:G,handler:Q}=$,q=X,K=T5(`@${G}\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\)`,"g"),U=[],W=K.exec(q);while(W!==null){let[B,j=""]=W,_=W.index||0;try{let H=MG(j),O=await Q("",H,Z,Y);U.push({original:B,processed:O,startIndex:_})}catch(H){let O=H instanceof Error?H.message:String(H);if(J.debug)console.error(`Error processing custom directive @${G}:`,H);U.push({original:B,processed:$0("CustomDirective",`Error in @${G}(${j}): ${O}`,s.EVALUATION_ERROR),startIndex:_})}W=K.exec(q)}let w=T5(`@${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:$0("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 MG(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 kG=E(()=>{z1();M5()});function Y5(X,$){if(typeof X!=="string"||X.length===0)throw Error(`@appearanceBootstrap ${$} must be a non-empty string`)}function Z_(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"),!EG.test(Z.key)||!EG.test(Y.key))throw Error("@appearanceBootstrap preference keys must be JavaScript property names");if(!IG.test(Z.attribute)||!IG.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(!$_.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 Y_(X){return JSON.stringify(X).replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/&/g,"\\u0026").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}function J_(X){return`<script data-stx-scoped data-stx-appearance-bootstrap>(function(){"use strict";const config=${Y_(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 G_(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 DG(X,$){let Z=X,Y=/@appearanceBootstrap\s*\(/g,J;while((J=Y.exec(Z))!==null){let G=J.index+J[0].length-1,Q=G_(Z,G);if(Q===-1)throw Error("@appearanceBootstrap has an unclosed options object");let q=Z.slice(G+1,Q).trim(),K=Z0(`(${q})`,$),U=J_(Z_(K));Z=Z.slice(0,J.index)+U+Z.slice(Q+1),Y.lastIndex=J.index+U.length}return Z}var IG,EG,$_;var yG=E(()=>{F0();IG=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,EG=/^[A-Za-z_$][\w$]*$/,$_=new Set(["light","dark","system"])});import Q_ from"crypto";function B0(X){return String(X??"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function h8(X,$,Z,Y){let J=X||$;return Z?`${J} ${Y}`:J}function n0(X){return String(X).replace(/\[\]$/,"").replace(/[^\w.:-]+/g,"-").replace(/^-+|-+$/g,"")}function P5(X,$){if(/\bid\s*=/i.test(X))return"";return` id="${B0($)}"`}function f4(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(`${n0(X)}-error`)}"`;return Y}function q_(){return Q_.randomUUID()}function u8(X,$){let Z=X;return Z=Z.replace(/@csrf/g,()=>{if(!$.csrf||typeof $.csrf!=="object"){let Y=q_();$.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 CG(X,$,Z=SG){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=C1(U),B=W.toUpperCase(),j=["GET","POST"].includes(B)?B:"POST",_=`<form method="${B0(j)}" action="${B0(w)}"${z?` ${z}`:""}>`;if(_+=`
|
|
13515
|
+
${u8("@csrf",$)}`,!["GET","POST"].includes(B))_+=`
|
|
13516
|
+
${u8(`@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=C1(U),B=h7(W,$),j=B!==void 0&&B!==null?B:w||"",_=z.match(/type=['"]([^'"]+)['"]/i),H=_?_[1]:"text",O=u7(W,$),L=z.match(/class=['"]([^'"]+)['"]/i),F=h8(L?L[1]:"",Z.input,O,Z.inputError),V=z.replace(/class=['"][^'"]+['"]/i,"");return V=V.replace(/type=['"][^'"]+['"]/i,""),`<input type="${B0(H)}" name="${B0(W)}"${P5(z,n0(W))} value="${B0(j)}" class="${F}"${f4(W,O,z)}${V?` ${V}`:""}>`}),Y=Y.replace(/@textarea\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)([\s\S]*?)@endtextarea/g,(J,G,Q="",q="")=>{let K=C1(Q),U=h7(G,$)||q.trim(),W=u7(G,$),w=K.match(/class=['"]([^'"]+)['"]/i),z=h8(w?w[1]:"",Z.input,W,Z.inputError),B=K.replace(/class=['"][^'"]+['"]/i,"");return`<textarea name="${B0(G)}"${P5(K,n0(G))} class="${z}"${f4(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=C1(Q),U=h7(G,$),W=u7(G,$),w=K.match(/class=['"]([^'"]+)['"]/i),z=h8(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,O)=>{if((Array.isArray(U)?U.some((F)=>String(F)===O):String(U)===O)&&!H.includes("selected"))return H.replace(/(<option)/,"$1 selected");return _});return`<select name="${B0(G)}"${P5(K,n0(G))} class="${z}"${f4(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?n0(G):`${n0(G)}-${n0(K)}`,W=C1(q),w=h7(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=C1(q),U=h7(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,`${n0(G)}-${n0(Q)}`)} value="${B0(Q)}" class="${z}"${W?" checked":""}${B?` ${B}`:""}>`}),Y=Y.replace(/@file\(\s*['"]([^'"]+)['"]\s*(?:,\s*\{([^}]+)\})?\)/g,(J,G,Q="")=>{let q=C1(Q),K=q.match(/accept=['"]([^'"]+)['"]/i),U=K?K[1]:"",W=q.includes("multiple"),w=u7(G,$),z=q.match(/class=['"]([^'"]+)['"]/i),B=h8(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,n0(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=C1(Q),U=K.match(/class=['"]([^'"]+)['"]/i),W=U?U[1]:Z.label,w=K.replace(/class=['"][^'"]+['"]/i,"");return`<label for="${B0(n0(G))}" class="${W}"${w?` ${w}`:""}>${q}</label>`}),Y}function PG(X,$,Z=SG){return X.replace(/@error\(['"]([^'"]+)['"]\)([\s\S]*?)@enderror/g,(Y,J,G)=>{try{if(u7(J,$)){let Q=G.replace(/\{\{([^}]+)\}\}/g,(q,K)=>{try{if(K.trim()==="$message"||K.trim()==="message")return bG(J,$);if(K.trim().includes("errors.first")||K.trim().includes("$errors.first")){if(typeof $.errors?.first==="function")return $.errors.first(J);return bG(J,$)}let U=K.trim();if(J0(U)){let W=Z0(U,$);return W!==void 0?String(W):U}return U}catch{return K}});return`<div id="${B0(`${n0(J)}-error`)}" role="alert">${Q}</div>`}return""}catch(Q){return console.error("Error processing @error directive:",Q),Y}})}function u7(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 bG(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 h7(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 C1(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 SG;var vG=E(()=>{F0();SG={input:"form-control",inputError:"is-invalid",checkInput:"form-check-input",label:"form-label",errorFeedback:"invalid-feedback"}});import u4 from"path";async function K_(){if(d7!==void 0)return d7;try{d7=(await import("@stacksjs/ts-i18n")).loadLocale??null}catch{d7=null}return d7}function U_(X,$=0){if($<=0)return!1;return Date.now()-X.loadedAt>$}async function W_(X,$){if({...l4,...$.i18n}.cache&&d4[X]){let J=d4[X],G=$.i18n?.cacheMaxAge??0;if(!U_(J,G))return J.translations}if(m7[X]?.state==="loading")return m7[X].promise;g4[X]="loading";let Y=m4(X,$).then((J)=>{return g4[X]="loaded",delete m7[X],J}).catch((J)=>{throw g4[X]="error",m7[X]={promise:Y,state:"error",error:J instanceof Error?J:Error(String(J))},J});return m7[X]={promise:Y,state:"loading"},Y}async function m4(X,$){let Z={...l4,...$.i18n},Y=u4.isAbsolute(Z.translationsDir)?Z.translationsDir:u4.resolve($.root||process.cwd(),Z.translationsDir);try{let J=await K_(),G=J?await J(X,{translationsDir:Y,defaultLocale:Z.defaultLocale,sources:__(Z.format)}):await w_(X,Z,Y);if(G===void 0){if(X!==Z.defaultLocale)return m4(Z.defaultLocale,$);return{}}let Q=G;if(Z.cache)d4[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 m4(Z.defaultLocale,$);return{}}}async function w_(X,$,Z){let Y=u4.join(Z,`${X}${z_($.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 j_(G);if($.format==="json")return JSON.parse(G);throw J}catch{return}}}function z_(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 j_(X){let $={},Z=X.split(`
|
|
13517
|
+
`),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]=B_(z)}}return $}function B_(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 __(X){switch(X){case"yaml":case"yml":return["yaml"];case"js":case"ts":return["ts"];case"json":default:return["json"]}}async function H_(X,$){return W_(X,$)}function O_(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 L_(X,$={}){return gG(X,$)}function gG(X,$){let Z="",Y=0;while(Y<X.length)if(X[Y]==="{"){let J=F_(X,Y);if(J===-1){Z+=X[Y],Y++;continue}let G=X.slice(Y+1,J);Z+=V_(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 F_(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 V_(X,$){let Z=A_(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 R_(J,Z.slice(2).join(","),$);case"select":return T_(J,Z.slice(2).join(","));case"selectordinal":return M_(J,Z.slice(2).join(","));case"number":return I_(J,Z[2]?.trim());case"date":return E_(J,Z[2]?.trim());case"time":return D_(J,Z[2]?.trim());default:return J!==void 0?String(J):`{${X}}`}}function A_(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 R_(X,$,Z){let Y=Number(X)||0,J=c4($),G=`=${Y}`;if(J[G])return h4(J[G],Y,Z);let Q=N_(Y);if(J[Q])return h4(J[Q],Y,Z);if(J.other)return h4(J.other,Y,Z);return String(Y)}function h4(X,$,Z){let Y=X.replace(/#/g,String($));return gG(Y,Z)}function N_(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 T_(X,$){let Z=String(X||""),Y=c4($);if(Y[Z])return Y[Z];return Y.other||String(X)}function M_(X,$){let Z=Number(X)||0,Y=c4($),J=k_(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 k_(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 c4(X){let $={},Z=/(\w+|=\d+)\s*\{([^{}]*(?:\{[^{}]*\}[^{}]*)*)\}/g,Y=Z.exec(X);while(Y!==null)$[Y[1]]=Y[2],Y=Z.exec(X);return $}function I_(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 E_(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 D_(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 y_(X){return/\{[^}]+,\s*(?:plural|select|selectordinal|number|date|time)\s*,/.test(X)}function xG(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(y_(Q))return L_(Q,Y);if(Q.includes("|")&&"count"in Y){let q=Number(Y.count),K=Q.split("|");Q=O_(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 hG(X,$,Z,Y){let J=X,G=/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\})\s*)?\)([\s\S]*?)@endtranslate/g,Q={...l4,...Y.i18n},q=await H_(Q.locale,Y);$.__translations=q,$.__locale=Q.locale,$.__i18nConfig=Q,J=await fG(J,G,async(W,w,z,B,j)=>{try{let _={};if(z)try{let O=[()=>JSON.parse(z),()=>{let L=`{"data":${z}}`,F=JSON.parse(L);return typeof F.data==="object"?F.data:{}},()=>{return L0(z,$)}];for(let L of O)try{if(_=L(),Object.keys(_).length>0)break}catch{}}catch(O){if(Y.debug)console.error("Error parsing parameters for @translate directive:",O)}return xG(w,q,Q.fallbackToKey,_)||B.trim()}catch(_){if(Y.debug)console.error("Error processing @translate directive:",_);return $0("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 fG(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}}`,O=JSON.parse(H);return typeof O.data==="object"?O.data:{}},()=>{return L0(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 xG(w,q,Q.fallbackToKey,j)}catch(j){if(Y.debug)console.error("Error processing @translate directive:",j);return $0("Translate",`Error in @translate('${w}'): ${j instanceof Error?j.message:String(j)}`,s.EVALUATION_ERROR)}}),J}async function fG(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 d7,l4,d4,m7,g4;var uG=E(()=>{z1();F0();l4={defaultLocale:"en",locale:"en",translationsDir:"translations",format:"yaml",fallbackToKey:!0,cache:!0},d4={},m7={},g4={}});var n4={};o(n4,{streamingSuspenseDirective:()=>lG,streamToResponse:()=>m_,streamTemplateSimple:()=>g_,streamTemplate:()=>S_,renderStreamingPage:()=>P_,registerStreamingDirectives:()=>u_,processStreamDirectives:()=>x_,processSectionDirectives:()=>d_,islandDirective:()=>cG,generateHydrationRuntime:()=>l_,extractStreamBoundaries:()=>f_,createStreamRenderer:()=>h_,buildSuspenseResolveScript:()=>i4,SUSPENSE_RESOLVER_RUNTIME:()=>mG});import d8 from"path";function b_(X){let $=[],Z=0,Y;dG.lastIndex=0;while((Y=dG.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 S_(X,$={},Z={}){let Y={...$5,...Z,streaming:{...p4,...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:d8.dirname(X)};if(K.trim())await n1(K,W,X);let w=b_(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 O=await N0(U,W,X,Y,z);for(let L=0;L<O.length;L+=J)G.enqueue(O.slice(L,L+J)),await new Promise((F)=>setTimeout(F,0))}else{let O=[],L=new RegExp(J5.source,"g"),F;while((F=L.exec(U))!==null)O.push({name:F[1],content:F[2],start:F.index,end:F.index+F[0].length});let V=0;for(let A of O){if(A.start>V){let N=U.slice(V,A.start);if(N.trim()){let T=await N0(N,W,X,Y,z);G.enqueue(T),await new Promise((k)=>setTimeout(k,0))}}let R=await N0(A.content,W,X,Y,z);G.enqueue(R),await new Promise((N)=>setTimeout(N,0)),V=A.end}if(V<U.length){let A=U.slice(V);if(A.trim()){let R=await N0(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 O=await N0(H.content,W,X,Y,z);G.enqueue(O)}else if(H.type==="suspense"&&H.name){let O=`stx-suspense-${H.name}`;G.enqueue(`<div id="${O}" data-suspense="${H.name}" style="display:contents;">
|
|
13399
13518
|
<template data-suspense-fallback>Loading...</template>
|
|
13400
|
-
</div>`),j.set(H.name,
|
|
13519
|
+
</div>`),j.set(H.name,N0(H.content,W,X,Y,z))}G.enqueue(`
|
|
13401
13520
|
<script>
|
|
13402
13521
|
(function() {
|
|
13403
13522
|
window.__stxSuspense = window.__stxSuspense || {
|
|
@@ -13413,13 +13532,13 @@ ${J}`)}function KG(X,$){let Z=X;return Z=Z.replace(/<script(?![^>]*\ssrc=)([^>]*
|
|
|
13413
13532
|
}
|
|
13414
13533
|
};
|
|
13415
13534
|
})();
|
|
13416
|
-
</script>`);let _=Array.from(j.entries()).map(async([H,O])=>{G.enqueue(await
|
|
13535
|
+
</script>`);let _=Array.from(j.entries()).map(async([H,O])=>{G.enqueue(await i4(H,O))});await Promise.all(_)}G.close()}catch(Q){G.error(Q)}}})}async function i4(X,$){try{let Y=(await $).replace(/`/g,"\\`").replace(/<\/script>/gi,"<\\/script>");return`
|
|
13417
13536
|
<script>
|
|
13418
13537
|
window.__stxSuspense.resolve('${X}', \`${Y}\`);
|
|
13419
13538
|
</script>`}catch(Z){let Y=Z instanceof Error?Z.message:String(Z);return`
|
|
13420
13539
|
<script>
|
|
13421
13540
|
window.__stxSuspense.resolve('${X}', '<div class="stx-error">Error loading content: ${t0(Y)}</div>');
|
|
13422
|
-
</script>`}}function
|
|
13541
|
+
</script>`}}function C_(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 P_(X,$=[],Z={}){let Y=Z.timeoutMs??0;return new ReadableStream({async start(J){try{if(J.enqueue(X),$.length>0)J.enqueue(mG),await Promise.all($.map(async(G)=>{let Q=C_(G.render(),Y,G.id);J.enqueue(await i4(G.id,Q))}));J.close()}catch(G){J.error(G)}}})}function x_(X,$){return X.replace(v_,(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 f_(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 g_(X,$={},Z={}){let Y={...$5,...Z,streaming:{...p4,...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:d8.dirname(X)};if(K.trim())await n1(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 N0(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"),O;while((O=H.exec(U))!==null)_.push({name:O[1],content:O[2],start:O.index,end:O.index+O[0].length});let L=0;for(let F of _){if(F.start>L){let A=U.slice(L,F.start);if(A.trim()){let R=await N0(A,W,X,Y,w);G.enqueue(R)}}let V=await N0(F.content,W,X,Y,w);G.enqueue(V),L=F.end}if(L<U.length){let F=U.slice(L);if(F.trim()){let V=await N0(F,W,X,Y,w);G.enqueue(V)}}}G.close()}catch(Q){G.error(Q)}}})}async function h_(X,$={}){let Z={...$5,...$,streaming:{...p4,...$.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:d8.dirname(X)};return await n1(G,B,X),N0(W,B,X,Z,new Set)},renderSection:async(z,B={})=>{try{if(!K[z])return`<div class="error-message">Section "${t0(z)}" not found in template "${t0(X)}"</div>`;let j={...B,__filename:X,__dirname:d8.dirname(X)};await n1(G,j,X);let _=new Set;return await N0(K[z],j,X,Z,_)}catch(j){let _=j instanceof Error?j.message:String(j);return w0("Expression",_,X,K[z]||"",0,K[z]||"")}},getSections:()=>{return Object.keys(K)},getTemplate:()=>{return q}}}function u_(X={}){let $=[];if(X.streaming?.enabled)$.push(lG);if(X.hydration?.enabled)$.push(cG);return $}async function d_(X,$,Z,Y={}){return X}function m_(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 l_(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(`,
|
|
13423
13542
|
`);if($==="loader")return`
|
|
13424
13543
|
(function() {
|
|
13425
13544
|
window.__stx = window.__stx || {};
|
|
@@ -13561,7 +13680,7 @@ else {
|
|
|
13561
13680
|
else {
|
|
13562
13681
|
stx.hydrate();
|
|
13563
13682
|
}
|
|
13564
|
-
})();`}var
|
|
13683
|
+
})();`}var p4,J5,dG,mG=`
|
|
13565
13684
|
<script>
|
|
13566
13685
|
(function(){
|
|
13567
13686
|
window.__stxSuspense = window.__stxSuspense || {
|
|
@@ -13581,25 +13700,25 @@ else {
|
|
|
13581
13700
|
}
|
|
13582
13701
|
};
|
|
13583
13702
|
})();
|
|
13584
|
-
</script>`,
|
|
13703
|
+
</script>`,v_,lG,cG;var r4=E(()=>{A1();Z1();$8();R0();p4={enabled:!0,bufferSize:16384,strategy:"auto",timeout:30000},J5=/<!-- @section:([\w-]+) -->([\s\S]*?)<!-- @endsection:\1 -->/g,dG=/<!-- @suspense:([\w-]+) -->([\s\S]*?)<!-- @endsuspense:\1 -->/g;v_=/@stream\s*\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)@endstream/gi;lG={name:"suspense",hasEndTag:!0,handler:(X,$,Z,Y)=>{if(!$||$.length===0)throw Error("Suspense directive requires a name parameter");let J=$[0].replace(/['"`]/g,"");return`<!-- @suspense:${J} -->${X}<!-- @endsuspense:${J} -->`}},cG={name:"island",hasEndTag:!0,handler:(X,$,Z,Y)=>{if(!$||$.length===0)throw Error("Island directive requires a name parameter");let J=$[0].replace(/['"`]/g,""),G=$[1]?$[1].replace(/['"`]/g,""):"lazy",Q=`island-${J}-${Math.random().toString(36).substring(2,9)}`,q=X.match(/<script\s+props\s*>([\s\S]*?)<\/script>/i),K=q?q[1].trim():"",U=q?X.replace(q[0],""):X;return`<div data-island="${J}" data-island-id="${Q}" data-priority="${G}">
|
|
13585
13704
|
${U}
|
|
13586
13705
|
<script type="application/json" data-island-props="${Q}">
|
|
13587
13706
|
${K?`{${K}}`:"{}"}
|
|
13588
13707
|
</script>
|
|
13589
|
-
</div>`}}});var
|
|
13590
|
-
`).length;Z.set(K,{count:1,firstLine:w})}}}let Q=[];for(let q of new Set([...Z.keys(),...Y.keys()])){if(
|
|
13591
|
-
`}if(F){let b=[];if(W==="avif"||W==="auto"){let y=
|
|
13708
|
+
</div>`}}});var nG={};o(nG,{warnUnbalancedTags:()=>o4,findUnbalancedTags:()=>iG});function v5(X){return X.replace(/[^\n]/g," ")}function iG(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(c_.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(`
|
|
13709
|
+
`).length;Z.set(K,{count:1,firstLine:w})}}}let Q=[];for(let q of new Set([...Z.keys(),...Y.keys()])){if(p_.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 o4(X,$){let Z;try{Z=iG(X)}catch{return}if(Z.length===0)return;let Y=`${$}:${X.length}`;if(pG.has(Y))return;pG.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 c_,p_,pG;var s4=E(()=>{c_=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),p_=new Set(["html","head","body","p","li","dt","dd","rt","rp","option","optgroup","thead","tbody","tfoot","tr","td","th","colgroup","caption"]);pG=new Set});import r0 from"path";import a4 from"fs";function rG(X){return X.split("-").map(($)=>$.charAt(0).toUpperCase()+$.slice(1)).join("")}function oG(X){return X.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}class sG{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(),rG(J),oG(J)];for(let j of B)if(G.has(j))return G.get(j)}let Q=[...new Set([`${J}.stx`,`${rG(J)}.stx`,`${oG(J)}.stx`])];if(J.startsWith("./")||J.startsWith("../")){let B=r0.resolve(r0.dirname($),`${J}.stx`);if(await i(B))return B;return null}let q=[],K=Z.componentsDir||"",U=Y?.__originalFilePath;if(U)q.push(r0.join(r0.dirname(U),"components"));if(K)q.push(K);let W=r0.join(r0.dirname($),"components");if(!q.includes(W))q.push(W);let w=process.cwd(),z=[r0.resolve(w,"src/components"),r0.resolve(w,"components"),r0.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 _=r0.join(B,j);if(await i(_))return _}try{if(!a4.statSync(B,{throwIfNoEntry:!1})?.isDirectory())continue;let _=a4.readdirSync(B,{withFileTypes:!0});for(let H of _)if(H.isDirectory()){let O=r0.join(B,H.name);for(let L of Q){let F=r0.join(O,L);if(await i(F))return F}}}catch{}}return null}}var g0;var t4=E(()=>{R0();g0=new sG});function O0(X){return X.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function e4(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(O0(G));continue}if(J===G5){Z.push(O0(G));continue}Z.push(`${O0(G)}="${O0(e4(String(J)))}"`)}return Z}function f5(X,$){let Z=[];for(let[Y,J]of Object.entries(X.serverDynamic??{})){if($.has(Y))continue;if(J===null||J===void 0||J===!1)continue;let G=X.serverDynamicNames?.[Y]??Y;if(J===!0){Z.push(O0(G));continue}if(typeof J==="object")continue;Z.push(`${O0(G)}="${O0(e4(String(J)))}"`)}return Z}var m8=()=>{};function l7(X){return X.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function i_(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 X3;var $3=E(()=>{m8();X3={name:"StxLink",aliases:["stx-link"],render(X,$,Z){let Y=i_(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="${l7(Y.value)}"`);else K.push(`href="${l7(Y.value)}"`);if(J)K.push(`class="${l7(J)}"`);if(K.push("data-stx-link"),K.push(`data-stx-active-class="${l7(G)}"`),K.push(`data-stx-exact-active-class="${l7(Q)}"`),q)K.push("data-stx-prefetch");let U=new Set(["to","class","className","activeClass","exactActiveClass","prefetch"]);return K.push(...x5(X,U)),K.push(...f5(X,U)),`<a ${K.join(" ")}>${$}</a>`}}});function I0(X){return X.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function C0(X,$){if(X.serverDynamic[$]!==void 0)return String(X.serverDynamic[$]);let Z=X.static[$];if(typeof Z==="string")return Z;return}function Y3(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 aG(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=n_[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 J3(X,$,Z,Y){return $.map((J)=>`${c7(X,J,void 0,Z,Y)} ${J}w`).join(", ")}function r_(X,$,Z,Y,J){return $.map((G)=>{let Q=Z?Z*G:void 0;return`${c7(X,Q,void 0,Y,J)} ${G}x`}).join(", ")}function c7(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 o_(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 n_,Z3,G3;var Q3=E(()=>{m8();n_={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},Z3=[320,640,768,1024,1280,1536,1920];G3={name:"StxImage",aliases:["stx-image","stx-img"],render(X,$,Z){let Y=C0(X,"src")||"",J=C0(X,"alt")||"",G=C0(X,"width"),Q=C0(X,"height"),q=C0(X,"sizes"),K=C0(X,"srcset"),U=C0(X,"densities"),W=C0(X,"format"),w=C0(X,"placeholder"),z=C0(X,"placeholderColor")||"#e5e7eb",B=C0(X,"provider"),j=C0(X,"class")||C0(X,"className")||"",_=C0(X,"style")||"",H=C0(X,"quality"),O=Y3(X,"lazy",!0),L=Y3(X,"preload",!1),F=Y3(X,"picture",!1)||!!W,V=G?Number.parseInt(G):void 0,A=Q?Number.parseInt(Q):void 0,R=K||"",N="";if(!R&&q)R=J3(Y,Z3,B,W),N=aG(q);else if(!R&&U){let b=U.split(/\s+/).map((y)=>Number.parseFloat(y.replace("x","")));R=r_(Y,b,V,B,W)}else if(q)N=aG(q);let T=[];if(_)T.push(_);if(V&&A)T.push(`aspect-ratio:${V}/${A}`);if(w==="blur"||w==="color"||w==="thumbhash"){let b=o_(V||16,A||9,z);T.push(`background-image:url(${b})`),T.push("background-size:cover"),T.push("background-repeat:no-repeat")}else if(w&&w!=="empty"&&w!=="none")T.push(`background-image:url(${I0(w)})`),T.push("background-size:cover"),T.push("background-repeat:no-repeat");let k=c7(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(O)M.push('loading="lazy"');if(M.push('decoding="async"'),j)M.push(`class="${I0(j)}"`);if(T.length>0)M.push(`style="${I0(T.join(";"))}"`);if(R)M.push(`srcset="${I0(R)}"`);if(N)M.push(`sizes="${I0(N)}"`);let D=new Set(["src","alt","width","height","lazy","sizes","srcset","placeholder","placeholderColor","class","className","style","format","provider","quality","densities","preload","picture"]);M.push(...x5(X,D)),M.push(...f5(X,D));let I=`<img ${M.join(" ")} />`,C="";if(L){let y=W==="webp"?"image/webp":W==="avif"?"image/avif":"";C=`<link rel="preload" as="image" href="${I0(k)}"${y?` type="${y}"`:""}${R?` imagesrcset="${I0(R)}"`:""}${N?` imagesizes="${I0(N)}"`:""} />
|
|
13710
|
+
`}if(F){let b=[];if(W==="avif"||W==="auto"){let y=c7(Y,V,A,B,"avif"),v=R?J3(Y,Z3,B,"avif"):`${y}`;b.push(`<source type="image/avif" srcset="${I0(v)}"${N?` sizes="${I0(N)}"`:""} />`)}if(W==="webp"||W==="auto"){let y=c7(Y,V,A,B,"webp"),v=R?J3(Y,Z3,B,"webp"):`${y}`;b.push(`<source type="image/webp" srcset="${I0(v)}"${N?` sizes="${I0(N)}"`:""} />`)}return`${C}<picture>
|
|
13592
13711
|
${b.join(`
|
|
13593
13712
|
`)}
|
|
13594
13713
|
${I}
|
|
13595
|
-
</picture>`}return`${C}${I}`}}});function
|
|
13714
|
+
</picture>`}return`${C}${I}`}}});function p7(X){return X.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function g5(X,$){if(X.serverDynamic[$]!==void 0)return String(X.serverDynamic[$]);let Z=X.static[$];if(typeof Z==="string")return Z;return}var tG="/images/safe-image-default.svg",s_,q3;var K3=E(()=>{m8();s_=`<script>window.__stxSafeImageHandler||(window.__stxSafeImageHandler=function(i){if(i.__stx_fb)return;i.__stx_fb=1;var f=i.getAttribute('data-fallback')||'${tG}';var c=i.getAttribute('data-fallback-class');i.src=f;if(c)i.className=c;});</script>`,q3={name:"SafeImage",aliases:["safe-image","safe-img"],render(X,$,Z){let Y=g5(X,"src")||"",J=g5(X,"alt")||"",G=g5(X,"fallback")||tG,Q=g5(X,"class")||g5(X,"className")||"",q=g5(X,"fallbackClassName")||"",K=[];if(K.push(`src="${p7(Y)}"`),K.push(`alt="${p7(J)}"`),Q)K.push(`class="${p7(Q)}"`);if(K.push(`data-fallback="${p7(G)}"`),q)K.push(`data-fallback-class="${p7(q)}"`);K.push('onerror="window.__stxSafeImageHandler(this)"');let U=new Set(["src","alt","fallback","class","className","fallbackClassName"]);K.push(...x5(X,U)),K.push(...f5(X,U));let W=`<img ${K.join(" ")} />`,w=Z.context;if(!w.__safeImageHandlerEmitted)return w.__safeImageHandlerEmitted=!0,`${s_}${W}`;return W}}});function U3(X){return X.replace(/[;{}()]/g,"").replace(/url/gi,"")}function i7(X,$){if(X.serverDynamic[$]!==void 0)return String(X.serverDynamic[$]);let Z=X.static[$];if(typeof Z==="string")return Z;return}function l8(X,$,Z){let Y=i7(X,$);if(Y!==void 0){let J=Number.parseInt(Y,10);if(!Number.isNaN(J))return J}return Z}var W3;var w3=E(()=>{W3={name:"StxLoadingIndicator",aliases:["stx-loading-indicator"],render(X,$,Z){let Y=U3(i7(X,"color")||"#6366f1"),J=U3(i7(X,"initialColor")||i7(X,"initial-color")||""),G=U3(i7(X,"height")||"3px"),Q=l8(X,"duration",2000),q=l8(X,"throttle",200),K=l8(X,"zIndex",999999)||l8(X,"z-index",999999),U=J?`linear-gradient(to right, ${J}, ${Y})`:Y;return`
|
|
13596
13715
|
<div id="stx-loading-indicator" style="position:fixed;top:0;left:0;right:0;height:${G};background:${U};z-index:${K};transform:scaleX(0);transform-origin:left;transition:transform 0.1s ease-out,opacity 0.3s ease;opacity:0;pointer-events:none">
|
|
13597
13716
|
<div style="position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,0.4) 50%,transparent 100%);animation:stx-shimmer 1.5s infinite"></div>
|
|
13598
13717
|
</div>
|
|
13599
13718
|
<style>@keyframes stx-shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}</style>
|
|
13600
13719
|
<script>
|
|
13601
13720
|
(function(){var el=document.getElementById('stx-loading-indicator'),p=0,l=!1,i=null;function u(v){p=Math.min(Math.max(v,0),100);if(el){el.style.opacity=p>0?'1':'0';el.style.transform='scaleX('+(p/100)+')'}}window.stxLoading={start:function(){l=!0;p=0;u(10);if(i)clearInterval(i);i=setInterval(function(){if(!l)return;var r=90-p,inc=Math.max(0.5,r*0.1);if(p<90)u(p+inc)},${q})},finish:function(){l=!1;if(i){clearInterval(i);i=null}u(100);setTimeout(function(){if(el)el.style.opacity='0';setTimeout(function(){p=0;if(el)el.style.transform='scaleX(0)'},300)},200)},set:function(v){u(v)},clear:function(){l=!1;p=0;if(i){clearInterval(i);i=null}if(el){el.style.opacity='0';el.style.transform='scaleX(0)'}}};document.addEventListener('click',function(e){var a=e.target.closest&&e.target.closest('a');if(!a)return;var h=a.getAttribute('href');if(!h||h.startsWith('http')||h.startsWith('#')||h.startsWith('mailto:')||h.startsWith('tel:')||a.target==='_blank')return;window.stxLoading.start()});window.addEventListener('popstate',function(){window.stxLoading.start()});window.addEventListener('load',function(){window.stxLoading.finish()})})();
|
|
13602
|
-
</script>`}}});function
|
|
13721
|
+
</script>`}}});function XQ(X,$){if(X.serverDynamic[$]!==void 0)return String(X.serverDynamic[$]);let Z=X.static[$];if(typeof Z==="string")return Z;return}function a_(X,$,Z){let Y=XQ(X,$);if(Y!==void 0){let J=Number.parseInt(Y,10);if(!Number.isNaN(J))return J}return Z}var eG,z3;var j3=E(()=>{eG={"top-right":"top:1rem;right:1rem","top-left":"top:1rem;left:1rem","top-center":"top:1rem;left:50%;transform:translateX(-50%)","bottom-right":"bottom:1rem;right:1rem","bottom-left":"bottom:1rem;left:1rem","bottom-center":"bottom:1rem;left:50%;transform:translateX(-50%)"},z3={name:"StxToast",aliases:["stx-toast"],render(X,$,Z){let Y=O0(XQ(X,"position")||"top-right"),J=a_(X,"max",5),G=eG[Y]||eG["top-right"];return`<div id="stx-toast-container" data-stx-toast-position="${Y}" data-stx-toast-max="${J}" style="position:fixed;${G};z-index:999999;display:flex;flex-direction:column;gap:0.5rem;pointer-events:none;max-width:24rem;width:100%"></div>
|
|
13603
13722
|
<style>
|
|
13604
13723
|
@keyframes stx-toast-in{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}
|
|
13605
13724
|
@keyframes stx-toast-out{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}
|
|
@@ -13607,7 +13726,7 @@ ${I}
|
|
|
13607
13726
|
@keyframes stx-toast-out-left{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-100%)}}
|
|
13608
13727
|
@keyframes stx-toast-in-center{from{opacity:0;transform:translateY(-1rem)}to{opacity:1;transform:translateY(0)}}
|
|
13609
13728
|
@keyframes stx-toast-out-center{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-1rem)}}
|
|
13610
|
-
</style>`}}});function
|
|
13729
|
+
</style>`}}});function c8(X,$){if(X.serverDynamic[$]!==void 0)return String(X.serverDynamic[$]);let Z=X.static[$];if(typeof Z==="string")return Z;return}var $Q,B3;var _3=E(()=>{$Q={sm:"max-width:24rem",md:"max-width:32rem",lg:"max-width:42rem",xl:"max-width:56rem",full:"max-width:calc(100vw - 2rem);max-height:calc(100vh - 2rem)"},B3={name:"StxModal",aliases:["stx-modal"],render(X,$,Z){let Y=c8(X,"id");if(!Y)return console.warn('[stx] <StxModal> requires an "id" prop'),"<!-- StxModal: missing id prop -->";let J=O0(Y),G=c8(X,"size")||"md",Q=c8(X,"closeOnBackdrop")!=="false",q=c8(X,"closeOnEscape")!=="false",K=$Q[G]||$Q.md;return`<div id="stx-modal-${J}" class="stx-modal-backdrop" data-stx-modal="${J}" data-close-backdrop="${Q}" data-close-escape="${q}" style="display:none;position:fixed;inset:0;z-index:99999;align-items:center;justify-content:center;background:rgba(0,0,0,0.5);backdrop-filter:blur(2px);opacity:0;transition:opacity 0.2s ease" aria-modal="true" role="dialog">
|
|
13611
13730
|
<div class="stx-modal-panel" style="${K};width:100%;margin:1rem;border-radius:0.75rem;box-shadow:0 20px 60px rgba(0,0,0,0.3);overflow:hidden;transform:scale(0.95) translateY(8px);transition:transform 0.2s ease,opacity 0.2s ease;opacity:0;background:var(--stx-modal-bg,#fff);color:var(--stx-modal-text,#1f2937)">
|
|
13612
13731
|
<div style="padding:1.5rem">${$}</div>
|
|
13613
13732
|
</div>
|
|
@@ -13616,7 +13735,7 @@ ${I}
|
|
|
13616
13735
|
@media(prefers-color-scheme:dark){[data-stx-modal]{--stx-modal-bg:#1f2937;--stx-modal-text:#f3f4f6}}
|
|
13617
13736
|
.stx-modal-backdrop[data-stx-modal-open]{display:flex!important;opacity:1}
|
|
13618
13737
|
.stx-modal-backdrop[data-stx-modal-open] .stx-modal-panel{transform:scale(1) translateY(0);opacity:1}
|
|
13619
|
-
</style>`}}});function
|
|
13738
|
+
</style>`}}});function h5(X,$){if(X.serverDynamic[$]!==void 0)return String(X.serverDynamic[$]);let Z=X.static[$];if(typeof Z==="string")return Z;return}var ZQ,H3;var O3=E(()=>{ZQ={sm:"16rem",md:"24rem",lg:"32rem",xl:"40rem"},H3={name:"StxDrawer",aliases:["stx-drawer"],render(X,$,Z){let Y=h5(X,"id");if(!Y)return console.warn('[stx] <StxDrawer> requires an "id" prop'),"<!-- StxDrawer: missing id prop -->";let J=O0(Y),G=h5(X,"side")||"right",Q=h5(X,"size")||"md",q=h5(X,"closeOnBackdrop")!=="false",K=h5(X,"closeOnEscape")!=="false",U=h5(X,"overlay")!=="false",W=ZQ[Q]||ZQ.md,w=G==="left",z=w?"left:0":"right:0",B=w?"translateX(-100%)":"translateX(100%)",j=w?"stx-drawer-slide-left":"stx-drawer-slide-right";return`<div id="stx-drawer-${J}" class="stx-drawer-backdrop" data-stx-drawer="${J}" data-close-backdrop="${q}" data-close-escape="${K}" style="display:none;position:fixed;inset:0;z-index:99999;${U?"background:rgba(0,0,0,0.5);backdrop-filter:blur(2px)":"background:transparent;pointer-events:none"};opacity:0;transition:opacity 0.2s ease" role="dialog" aria-modal="true">
|
|
13620
13739
|
<div class="stx-drawer-panel" style="position:fixed;top:0;bottom:0;${z};width:${W};max-width:100vw;transform:${B};transition:transform 0.3s cubic-bezier(0.4,0,0.2,1);background:var(--stx-drawer-bg,#fff);color:var(--stx-drawer-text,#1f2937);box-shadow:0 20px 60px rgba(0,0,0,0.3);overflow-y:auto;pointer-events:auto">
|
|
13621
13740
|
<div style="padding:1.5rem">${$}</div>
|
|
13622
13741
|
</div>
|
|
@@ -13625,18 +13744,18 @@ ${I}
|
|
|
13625
13744
|
@media(prefers-color-scheme:dark){[data-stx-drawer]{--stx-drawer-bg:#1f2937;--stx-drawer-text:#f3f4f6}}
|
|
13626
13745
|
.stx-drawer-backdrop[data-stx-drawer-open]{display:block!important;opacity:1}
|
|
13627
13746
|
.stx-drawer-backdrop[data-stx-drawer-open] .stx-drawer-panel{transform:translateX(0)}
|
|
13628
|
-
</style>`}}});import{existsSync as
|
|
13629
|
-
`||k==="\t")O++;L=R+_.length}else{if(O--,O===0){F=T;break}L=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 XQ(X){return X.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/�?39;/g,"'").replace(/'/gi,"'").replace(/&/g,"&")}function $Q(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 ZQ=E(()=>{L0();A0();l1()});var UQ={};o(UQ,{processESImports:()=>qQ,processComponents:()=>i8});import p8 from"fs";import l0 from"path";function o_(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=i0(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(J2),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]=$Q(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(!J0(B)){if(Z.debug)console.error(`Unsafe expression in :${z} binding: ${B}`);Y.clientReactive[z]=B;continue}let j=Object.keys($),H=G0(B,j)(...Object.values($));if(H===void 0){let O=B.match(/\b[a-zA-Z_$][a-zA-Z0-9_$]*\b/g)||[],L=new Set(["true","false","null","undefined","typeof","instanceof","in","of","new","this","return","void","delete","throw","if","else"]);if(O.some((V)=>!L.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(J0(B)){let _=G0(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(!J0(H)){if(Z.debug)console.error(`Unsafe expression in ${w}: ${H}`);continue}let L=G0(H,Object.keys($))(...Object.values($));B=B.replace(_[0],String(L??""))}catch(H){if(Z.debug)console.error(`Error evaluating expression in ${w}:`,H)}K(w,B)}continue}K(w,W===G5?"true":XQ(W))}return Y}function s_(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 JQ(X){return Object.entries(X).map(([$,Z])=>Z===G5?$:`${$}="${a_(Z)}"`).join(" ")}function a_(X){return X.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function t_(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(g0.isBuiltin(J))$.add(J)}return[...$].sort()}function e_(X){let $=GQ.get(X);if($)return $;let Z=new Map,Y=[l0.join(X,"src"),l0.join(X,"dist"),X];function J(G,Q){if(Q>6)return;let q;try{q=p8.readdirSync(G,{withFileTypes:!0})}catch{return}for(let K of q){let U=l0.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 GQ.set(X,Z),Z}function XH(X,$){if(X.startsWith(".")||X.startsWith("/"))return null;let Z=$;while(!0){let Y=l0.join(Z,"node_modules",X);try{if(p8.statSync(Y).isDirectory())return Y}catch{}let J=l0.dirname(Z);if(J===Z)return null;Z=J}}async function qQ(X,$,Z,Y,J){if(!X.includes("import"))return X;if(!$.__importedComponents)$.__importedComponents=new Map;let G=$.__importedComponents,Q=l0.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,O,L,F]=j,V=null,A=null;if(F.startsWith(".")||F.startsWith("/")){let k=l0.resolve(Q,F);if(k.endsWith(".stx"))A=k;else{let M=`${k}.stx`;try{if(p8.statSync(M).isFile())A=M}catch{try{if(p8.statSync(k).isDirectory())V=k}catch{}}}}else V=XH(F,Q);if(!V&&!A)continue;let R=!1,T=(k,M)=>{G.set(k,M),G.set(k.toLowerCase(),M);let N=k.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();G.set(N,M),J.add(M)};if(L&&A)T(L,A),R=!0;else if(O){let k=O.slice(1,-1).split(",").map((N)=>N.trim()).filter(Boolean).map((N)=>{let D=N.match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);if(D)return{source:D[1],local:D[2]};return{source:N,local:N}}),M=V?e_(V):null;for(let{source:N,local:D}of k){let I=null;if(A)I=A;else if(M)I=M.get(N)??M.get(N.toLowerCase())??M.get(N.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase())??null;if(I)T(D,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 $H(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),O=null,L=[l0.resolve(l0.dirname(Z),`${z}.stx`),l0.resolve(l0.dirname(Z),z),l0.resolve(Y.componentsDir||"components",`${z}.stx`),l0.resolve(Y.componentsDir||"components",z),z.endsWith(".stx")?z:`${z}.stx`];for(let F of L)try{if(await Bun.file(F).exists()){O=F;break}}catch{}if(O){Q.set(H,O),Q.set(_,O),Q.set(_.toLowerCase(),O);let F=H.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(Q.set(F,O),J.add(O),Y.debug)console.log(`Imported component: ${H} -> ${O}`)}else if(Y.debug)console.warn(`Could not resolve imported component: ${z}`)}G=G.replace(U,""),q.lastIndex=0}return G}async function ZH(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 O=H[1],L,F=j.slice(H[0].length),V=F.match(/^\s*,\s*/);if(V)L=F.slice(V[0].length).trim();let A={};if(L)try{A=O0(L,$)}catch(D){let I=D instanceof Error?D.message:String(D);G=G.replace(G.substring(W,_),`[Error parsing component props: ${I}]`);continue}let R="",T=_,M=G.substring(_).match(/^([\s\S]*?)@endcomponent/);if(M)R=M[1].trim(),T=_+M[0].length;let N=await s1(O,A,R,Q,$,Z,Y,q,J);G=G.substring(0,W)+N+G.substring(T),K.lastIndex=0}return G}async function YH(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,r_),G=R7(G,K.scripts),G;async function z(B,j,_,H){if(!B)return B;let O=B,L=eG(O,j,H);for(let F=L.length-1;F>=0;F--){let V=L[F],A=_?c8(V.tagName):V.tagName,R=s_(V.attributes),T=o_(R,$,Y),k=g0.getBuiltin(V.tagName),M=k?await sX(A,Q,$,Z,Y):!1;if(k&&!M){let C={context:$,filePath:Z,options:Y,dependencies:J},b=k.render(T,V.content,C);if(Object.keys(T.clientReactive).length>0)b=QQ(b,T.clientReactive);if(Object.keys(T.events).length>0){let y=JQ(T.events);b=b.replace(/^(\s*<[a-zA-Z][a-zA-Z0-9-]*)/,`$1 ${y}`)}O=O.substring(0,V.startIndex)+b+O.substring(V.endIndex);continue}if(!_&&V.tagName.includes("-")&&!await sX(A,Q,$,Z,Y))continue;let N={};for(let[C,b]of Object.entries(T.static))N[C]=b;for(let[C,b]of Object.entries(T.serverDynamic))N[C]=b;let I=await s1(A,N,V.content,Q,$,Z,Y,q,J);if(Object.keys(T.clientReactive).length>0)I=QQ(I,T.clientReactive);if(Object.keys(T.events).length>0){let C=KQ(I);if(C){let b=JQ(T.events),y=Object.keys(T.events).map((v)=>v.replace(/^@/,"").split(".")[0]).join(" ");I=I.substring(0,C.insertPos)+` data-stx-parent-events="${y}" ${b}`+I.substring(C.insertPos)}}O=O.substring(0,V.startIndex)+I+O.substring(V.endIndex)}return O}}function QQ(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])=>c8(W)).join(" "),Q=X,q=J.length>0?KQ(Q):null;if(q){let W=J.map(([z,B])=>`:${c8(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 KQ(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 i8(X,$,Z,Y,J){if(!YQ)aG(),YQ=!0;let G=await qQ(X,$,Z,Y,J);G=await $H(G,$,Z,Y,J),G=await ZH(G,$,Z,Y,J);let Q=[];for(let q=0;q<3;q++){let K=$1(G,A7,(W,w)=>`\x00STX_COMPONENT_COMMENT_${Q.length+w}\x00`);Q.push(...K.tokens);let U=G;if(G=await YH(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=t_(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 YQ=!1,r_,GQ;var L4=E(()=>{n3();tG();ZQ();l1();A0();L0();a0();r_=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"]);GQ=new Map});var HQ={};o(HQ,{processLoops:()=>V4,parseLoopBinding:()=>F4});function QH(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=O0(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 qH(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 O=O0(H,$),L=JSON.stringify(O),F=`@component('${B}', ${L})`;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 n8(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 KH(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($);VX(G);let U=G0(G,Q)(...q),W=JSON.stringify(U),w=Buffer.from(W,"utf8").toString("base64");return`__stx_${J}="${w}"`}catch(Q){return Y}}),Z}function UH(X,$){let Z=X;return Z=n8(Z,"@break",(Y)=>{try{let G=`!!(${Y.trim()})`,Q;if(J0(G)){let q=G0(G,Object.keys($));Q=Boolean(q(...Object.values($)))}else Q=Boolean(Z0(G,$));return Q?r8:""}catch{return""}}),Z=n8(Z,"@continue",(Y)=>{try{let G=`!!(${Y.trim()})`,Q;if(J0(G)){let q=G0(G,Object.keys($));Q=Boolean(q(...Object.values($)))}else Q=Boolean(Z0(G,$));return Q?o8:""}catch{return""}}),Z}function WH(X){let $=X;return $=$.replace(/@break(?!\()/g,r8),$=$.replace(/@continue(?!\()/g,o8),$}function WQ(X){let $=X.includes(r8),Z=$?X.substring(0,X.indexOf(r8)):X;return{hasBreak:$,content:Z}}function wQ(X){let $=X.includes(o8),Z=$?X.substring(0,X.indexOf(o8)):X;return{hasContinue:$,content:Z}}function jQ(X){let $=X;return $=n8($,"@break",(Z)=>{let Y=Z.trim();if(!AX(Y))return"";return`\`; if (${Y}) { break; } result += \``}),$=n8($,"@continue",(Z)=>{let Y=Z.trim();if(!AX(Y))return"";return`\`; if (${Y}) { continue; } result += \``}),$=$.replace(/@break(?!\()/g,"`; break; result += `"),$=$.replace(/@continue(?!\()/g,"`; continue; result += `"),$}function wH(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=F4(_);if(!H)continue;let{arrayExpr:O,itemVar:L}=H,F=j+1,V=1,A=F,R=/@forelse\s*\(/g,T=/@endforelse/g,k=-1;while(V>0&&A<X.length){R.lastIndex=A,T.lastIndex=A;let b=R.exec(X),y=T.exec(X);if(!y)break;if(b&&b.index<y.index)V++,A=b.index+b[0].length;else{if(V--,V===0){k=y.index;break}A=y.index+11}}if(k===-1)continue;let M=X.substring(F,k),N=k+11,D=-1,I=0,C=0;while(C<M.length){let b=M.indexOf("@",C);if(b===-1)break;let y=M.substring(b);if(/^@forelse\s*\(/.test(y))I++,C=b+1;else if(y.startsWith("@endforelse"))I--,C=b+11;else if(I===0&&y.startsWith("@empty")){if(M.length<=b+6||!/[a-z]/i.test(M[b+6])){D=b;break}C=b+1}else C=b+1}if(D===-1)continue;return{start:W,end:N,arrayExpr:O,itemVar:L,foreachContent:M.substring(0,D),emptyContent:M.substring(D+6)}}return null}function zQ(X,$){let Z=X;while(!0){let Y=wH(Z);if(!Y)break;let{start:J,end:G,arrayExpr:Q,itemVar:q,foreachContent:K,emptyContent:U}=Y;try{let W;if(J0(Q))W=G0(Q,Object.keys($))(...Object.values($));else W=Z0(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=$0("Forelse",`Error in @forelse(${Q} as ${q}): ${w}`,s.EVALUATION_ERROR);Z=Z.substring(0,J)+z+Z.substring(G)}}return Z}function F4(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 V4(X,$,Z,Y){let J=X;J=zQ(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,_),O=F4(H);if(!O)continue;let L=w,{arrayExpr:F,itemVar:V}=O,A=_+1,R=1,T=A,k=/@foreach\s*\(/g,M=/@endforeach/g;while(R>0&&T<K.length){k.lastIndex=T,M.lastIndex=T;let N=k.exec(K),D=M.exec(K);if(!D)break;if(N&&N.index<D.index)R++,T=N.index+N[0].length;else{if(R--,R===0){let I=K.substring(A,D.index),C=D.index+11;return{start:L,end:C,arrayExpr:F,itemVar:V,content:I}}T=D.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 O=j.trim(),L;if(J0(O))L=G0(O,Object.keys(U))(...Object.values(U));else L=Z0(O,U);let F=!1;if(!Array.isArray(L))if(L instanceof Map)L=Array.from(L),F=!0;else if(L instanceof Set)L=Array.from(L);else if(typeof L==="string")L=Array.from(L);else if(L&&typeof L==="object"&&!(L instanceof Date)&&!(L instanceof RegExp))L=Object.entries(L),F=!0;else{console.warn(`[stx] @foreach(${O}) in ${Z}: ${O} 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 D=$0("Foreach",`Error in @foreach: ${O} is not iterable`,s.TYPE_ERROR);W=W.substring(0,z)+D+W.substring(B);continue}let V=Y?.loops?.useAltLoopVariable??GH,A=_.trim(),R=null,T,k=!1;if(A.includes("=>")){let D=A.split("=>").map((I)=>I.trim());if(D.length===2&&D[0]&&D[1])R=D[0],T=D[1];else T=A}else if(!A.startsWith("[")&&!A.startsWith("{")&&A.includes(",")){let D=A.split(",").map((I)=>I.trim());if(D.length===2&&D[0]&&D[1])T=D[0],R=D[1],k=!0;else T=A}else T=A;let M="",N=L;for(let D=0;D<N.length;D++){let I=N[D],C={index:D,iteration:D+1,first:D===0,last:D===N.length-1,count:N.length},b={...U,loop:C,$loop:C};if(T.startsWith("[")&&T.endsWith("]")){let f=T.slice(1,-1).split(",").map((c)=>c.trim());if(Array.isArray(I))f.forEach((c,l)=>{if(c)b[c]=I[l]});else b[T]=I}else b[T]=I;if(R)if(!k&&F&&Array.isArray(I)&&I.length===2)b[R]=I[0],b[T]=I[1];else b[R]=D;let y=UH(H,b),v=wQ(y);if(v.hasContinue){M+=v.content;continue}let x=WQ(y);if(x.hasBreak){M+=x.content;break}if(y=zQ(y,b),y=Q(y,b),y=Z5(y,b,Z),y=WH(y),x=WQ(y),x.hasBreak){M+=x.content;break}if(v=wQ(y),v.hasContinue){M+=v.content;continue}y=T1(y,b,Z),y=KH(y,b),y=qH(y,b),y=QH(y,b),M+=y}W=W.substring(0,z)+M+W.substring(B)}catch(O){let L=$0("Foreach",`Error in @foreach(${j.trim()} as ${_.trim()}): ${O instanceof Error?O.message:String(O)}`,s.EVALUATION_ERROR);W=W.substring(0,z)+L+W.substring(B)}}return W}J=Q(J,$),J=_Q(J,$,Z,Y);let q=Y?.loops?.maxWhileIterations??JH;return J=BH(J,$,q),J}function BQ(X){return AX(X)}function _Q(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=DX(J.slice(q),"for","endfor");if(z.length===0)break;let B=z[0].content,j=q+z[0].end;if(!BQ(W)){let _=$0("For",`Unsafe expression in @for: ${W}`,s.UNSAFE_EXPRESSION);J=J.substring(0,q)+_+J.substring(j),G=!0;continue}try{let _=zH(W),H=/@(?:for|foreach|if|unless)\s*\(/.test(B);if(_.length>0&&H){let R=jH({forExpr:W,content:B,iterVarNames:_,context:$,filePath:Z,options:Y});J=J.substring(0,q)+R+J.substring(j),G=!0;continue}let O=Object.keys($),L=Object.values($),F=B.replace(/`/g,"\\`").replace(/\$\{/g,"\\${").replace(/\{\{([^}]+)\}\}/g,(R,T)=>{return`\${${T}}`});F=jQ(F);let A=Function(...O,`
|
|
13747
|
+
</style>`}}});import{existsSync as t_,readFileSync as e_}from"fs";function XH(X){if(YQ.has(X))return;YQ.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(t_(Z))return Z;for(let Z of[`@iconify-json/${X}/icons.json`,`@iconify/json/json/${X}.json`])try{return U0.resolve(Z)}catch{}return null}function ZH(X){if(p8.has(X))return p8.get(X);let $=$H(X);if(!$)return XH(X),null;try{let Z=JSON.parse(e_($,"utf8"));return p8.set(X,Z.icons),Z.icons}catch{return null}}function u5(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 p8,YQ,L3;var F3=E(()=>{p8=new Map,YQ=new Set;L3={name:"Icon",aliases:["icon","stx-icon"],render(X,$,Z){let Y=u5(X,"name")??u5(X,"icon");if(!Y)return"<!-- Icon: missing name/icon prop -->";let J="lucide",G=Y;if(Y.includes(":")){let L=Y.split(":");J=L[0],G=L[1]}let Q=O0(u5(X,"size")||"24"),q=O0(u5(X,"color")||"currentColor"),K=O0(u5(X,"class")||""),U=O0(u5(X,"style")||""),W=p8.get(J)??ZH(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}"`:"",O=U?` style="${U}"`:"";return`<svg xmlns="http://www.w3.org/2000/svg" width="${Q}" height="${Q}" viewBox="${j}" fill="none"${H}${O}>${_}</svg>`}}});function JQ(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 GQ(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 V3;var A3=E(()=>{V3={name:"Suspense",aliases:["suspense"],render(X,$,Z){let Y=GQ($,"fallback"),J=Y.rest,G=GQ(J,"error"),Q=G.rest,q=Y.region??JQ(X,"fallback")??'<div class="stx-suspense-loading">Loading\u2026</div>',K=G.region??JQ(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 i8(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 R3;var N3=E(()=>{R3={name:"TransitionGroup",aliases:["transition-group"],render(X,$,Z){let Y=(i8(X,"name")||"v").replace(/["'<>]/g,""),J=(i8(X,"tag")||"div").replace(/[^a-z0-9-]/gi,"")||"div",G=i8(X,"class"),Q=i8(X,"id"),q=[`data-stx-transition-group="${Y}"`,G?`class="${G}"`:"",Q?`id="${Q}"`:""].filter(Boolean).join(" ");return`<${J} ${q}>${$}</${J}>`}}});function QQ(){g0.registerBuiltin(X3),g0.registerBuiltin(G3),g0.registerBuiltin(q3),g0.registerBuiltin(W3),g0.registerBuiltin(z3),g0.registerBuiltin(B3),g0.registerBuiltin(H3),g0.registerBuiltin(L3),g0.registerBuiltin(V3),g0.registerBuiltin(R3)}var qQ=E(()=>{$3();Q3();K3();w3();j3();_3();O3();F3();A3();N3();t4();$3();Q3();K3();w3();j3();_3();O3();F3();A3();N3()});function n8(X){return X.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1-$2").toLowerCase()}function KQ(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}>`,O=1,L=z,F=-1;while(O>0&&L<X.length){let R=X.indexOf(_,L),N=X.indexOf(H,L);if(N===-1)break;if(R!==-1&&R<N){let T=X[R+_.length];if(T===" "||T===">"||T==="/"||T===`
|
|
13748
|
+
`||T==="\t")O++;L=R+_.length}else{if(O--,O===0){F=N;break}L=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 UQ(X){return X.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/�?39;/g,"'").replace(/'/gi,"'").replace(/&/g,"&")}function WQ(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 wQ=E(()=>{F0();R0();c1()});var LQ={};o(LQ,{processESImports:()=>HQ,processComponents:()=>o8});import r8 from"fs";import l0 from"path";function JH(X,$,Z){let Y={static:{},staticNames:{},serverDynamic:{},serverDynamicNames:{},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=i0(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(_2),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]=WQ(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(!J0(B)){if(Z.debug)console.error(`Unsafe expression in :${z} binding: ${B}`);Y.clientReactive[z]=B;continue}let j=Object.keys($),H=G0(B,j)(...Object.values($));if(H===void 0){let O=B.match(/\b[a-zA-Z_$][a-zA-Z0-9_$]*\b/g)||[],L=new Set(["true","false","null","undefined","typeof","instanceof","in","of","new","this","return","void","delete","throw","if","else"]);if(O.some((V)=>!L.has(V)&&!j.includes(V))){Y.clientReactive[z]=B;continue}}if(Y.serverDynamic[z]=H,z!==w.slice(1)&&Y.serverDynamicNames)Y.serverDynamicNames[z]=w.slice(1)}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(J0(B)){let _=G0(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(!J0(H)){if(Z.debug)console.error(`Unsafe expression in ${w}: ${H}`);continue}let L=G0(H,Object.keys($))(...Object.values($));B=B.replace(_[0],String(L??""))}catch(H){if(Z.debug)console.error(`Error evaluating expression in ${w}:`,H)}K(w,B)}continue}K(w,W===G5?"true":UQ(W))}return Y}function QH(X,$,Z){if(!X.includes("@"))return X;if(!GH.some(([J,G])=>J.test(X)&&X.includes(G)))return X;try{return B1(X,$,Z)}catch{return X}}function qH(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 jQ(X){return Object.entries(X).map(([$,Z])=>Z===G5?$:`${$}="${KH(Z)}"`).join(" ")}function KH(X){return X.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function UH(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(g0.isBuiltin(J))$.add(J)}return[...$].sort()}function WH(X){let $=BQ.get(X);if($)return $;let Z=new Map,Y=[l0.join(X,"src"),l0.join(X,"dist"),X];function J(G,Q){if(Q>6)return;let q;try{q=r8.readdirSync(G,{withFileTypes:!0})}catch{return}for(let K of q){let U=l0.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 BQ.set(X,Z),Z}function wH(X,$){if(X.startsWith(".")||X.startsWith("/"))return null;let Z=$;while(!0){let Y=l0.join(Z,"node_modules",X);try{if(r8.statSync(Y).isDirectory())return Y}catch{}let J=l0.dirname(Z);if(J===Z)return null;Z=J}}async function HQ(X,$,Z,Y,J){if(!X.includes("import"))return X;if(!$.__importedComponents)$.__importedComponents=new Map;let G=$.__importedComponents,Q=l0.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,O,L,F]=j,V=null,A=null;if(F.startsWith(".")||F.startsWith("/")){let T=l0.resolve(Q,F);if(T.endsWith(".stx"))A=T;else{let k=`${T}.stx`;try{if(r8.statSync(k).isFile())A=k}catch{try{if(r8.statSync(T).isDirectory())V=T}catch{}}}}else V=wH(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(L&&A)N(L,A),R=!0;else if(O){let T=O.slice(1,-1).split(",").map((M)=>M.trim()).filter(Boolean).map((M)=>{let D=M.match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);if(D)return{source:D[1],local:D[2]};return{source:M,local:M}}),k=V?WH(V):null;for(let{source:M,local:D}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(D,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 zH(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),O=null,L=[l0.resolve(l0.dirname(Z),`${z}.stx`),l0.resolve(l0.dirname(Z),z),l0.resolve(Y.componentsDir||"components",`${z}.stx`),l0.resolve(Y.componentsDir||"components",z),z.endsWith(".stx")?z:`${z}.stx`];for(let F of L)try{if(await Bun.file(F).exists()){O=F;break}}catch{}if(O){Q.set(H,O),Q.set(_,O),Q.set(_.toLowerCase(),O);let F=H.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(Q.set(F,O),J.add(O),Y.debug)console.log(`Imported component: ${H} -> ${O}`)}else if(Y.debug)console.warn(`Could not resolve imported component: ${z}`)}G=G.replace(U,""),q.lastIndex=0}return G}async function jH(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 O=H[1],L,F=j.slice(H[0].length),V=F.match(/^\s*,\s*/);if(V)L=F.slice(V[0].length).trim();let A={};if(L)try{A=L0(L,$)}catch(D){let I=D instanceof Error?D.message:String(D);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 a1(O,A,R,Q,$,Z,Y,q,J);G=G.substring(0,W)+M+G.substring(N),K.lastIndex=0}return G}async function BH(X,$,Z,Y,J){if(!X)return X;let G=X,Q=Y.componentsDir||"components";if(!$.__processedComponents)$.__processedComponents=new Set;let q=$.__processedComponents,K=N1(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,YH),G=N7(G,K.scripts),G;async function z(B,j,_,H){if(!B)return B;let O=B,L=KQ(O,j,H);for(let F=L.length-1;F>=0;F--){let V=L[F],A=_?n8(V.tagName):V.tagName,R=qH(QH(V.attributes,$,Z)),N=JH(R,$,Y),T=g0.getBuiltin(V.tagName),k=T?await X8(A,Q,$,Z,Y):!1;if(T&&!k){let C={context:$,filePath:Z,options:Y,dependencies:J},b=T.render(N,V.content,C);if(Object.keys(N.clientReactive).length>0)b=_Q(b,N.clientReactive);if(Object.keys(N.events).length>0){let y=jQ(N.events);b=b.replace(/^(\s*<[a-zA-Z][a-zA-Z0-9-]*)/,`$1 ${y}`)}O=O.substring(0,V.startIndex)+b+O.substring(V.endIndex);continue}if(!_&&V.tagName.includes("-")&&!await X8(A,Q,$,Z,Y))continue;let M={};for(let[C,b]of Object.entries(N.static))M[C]=b;for(let[C,b]of Object.entries(N.serverDynamic))M[C]=b;let I=await a1(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=OQ(I);if(C){let b=jQ(N.events),y=Object.keys(N.events).map((v)=>v.replace(/^@/,"").split(".")[0]).join(" ");I=I.substring(0,C.insertPos)+` data-stx-parent-events="${y}" ${b}`+I.substring(C.insertPos)}}O=O.substring(0,V.startIndex)+I+O.substring(V.endIndex)}return O}}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])=>n8(W)).join(" "),Q=X,q=J.length>0?OQ(Q):null;if(q){let W=J.map(([z,B])=>`:${n8(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 OQ(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 o8(X,$,Z,Y,J){if(!zQ)QQ(),zQ=!0;let G=await HQ(X,$,Z,Y,J);G=await zH(G,$,Z,Y,J),G=await jH(G,$,Z,Y,J);let Q=[];for(let q=0;q<3;q++){let K=$1(G,R7,(W,w)=>`\x00STX_COMPONENT_COMMENT_${Q.length+w}\x00`);Q.push(...K.tokens);let U=G;if(G=await BH(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=UH(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 zQ=!1,YH,GH,BQ;var T3=E(()=>{t4();g7();qQ();wQ();c1();R0();F0();a0();YH=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"]);GH=[[/@if\s*\(/,"@endif"],[/@unless\s*\(/,"@endunless"]];BQ=new Map});var MQ={};o(MQ,{processLoops:()=>k3,parseLoopBinding:()=>M3});function OH(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=M0(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=L0(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 LH(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 O=L0(H,$),L=JSON.stringify(O),F=`@component('${B}', ${L})`;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 s8(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 FH(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($);RX(G);let U=G0(G,Q)(...q),W=JSON.stringify(U),w=Buffer.from(W,"utf8").toString("base64");return`__stx_${J}="${w}"`}catch(Q){return Y}}),Z}function VH(X,$){let Z=X;return Z=s8(Z,"@break",(Y)=>{try{let G=`!!(${Y.trim()})`,Q;if(J0(G)){let q=G0(G,Object.keys($));Q=Boolean(q(...Object.values($)))}else Q=Boolean(Z0(G,$));return Q?a8:""}catch{return""}}),Z=s8(Z,"@continue",(Y)=>{try{let G=`!!(${Y.trim()})`,Q;if(J0(G)){let q=G0(G,Object.keys($));Q=Boolean(q(...Object.values($)))}else Q=Boolean(Z0(G,$));return Q?t8:""}catch{return""}}),Z}function AH(X){let $=X;return $=$.replace(/@break(?!\()/g,a8),$=$.replace(/@continue(?!\()/g,t8),$}function FQ(X){let $=X.includes(a8),Z=$?X.substring(0,X.indexOf(a8)):X;return{hasBreak:$,content:Z}}function VQ(X){let $=X.includes(t8),Z=$?X.substring(0,X.indexOf(t8)):X;return{hasContinue:$,content:Z}}function RQ(X){let $=X;return $=s8($,"@break",(Z)=>{let Y=Z.trim();if(!NX(Y))return"";return`\`; if (${Y}) { break; } result += \``}),$=s8($,"@continue",(Z)=>{let Y=Z.trim();if(!NX(Y))return"";return`\`; if (${Y}) { continue; } result += \``}),$=$.replace(/@break(?!\()/g,"`; break; result += `"),$=$.replace(/@continue(?!\()/g,"`; continue; result += `"),$}function RH(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=M3(_);if(!H)continue;let{arrayExpr:O,itemVar:L}=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 b=R.exec(X),y=N.exec(X);if(!y)break;if(b&&b.index<y.index)V++,A=b.index+b[0].length;else{if(V--,V===0){T=y.index;break}A=y.index+11}}if(T===-1)continue;let k=X.substring(F,T),M=T+11,D=-1,I=0,C=0;while(C<k.length){let b=k.indexOf("@",C);if(b===-1)break;let y=k.substring(b);if(/^@forelse\s*\(/.test(y))I++,C=b+1;else if(y.startsWith("@endforelse"))I--,C=b+11;else if(I===0&&y.startsWith("@empty")){if(k.length<=b+6||!/[a-z]/i.test(k[b+6])){D=b;break}C=b+1}else C=b+1}if(D===-1)continue;return{start:W,end:M,arrayExpr:O,itemVar:L,foreachContent:k.substring(0,D),emptyContent:k.substring(D+6)}}return null}function AQ(X,$){let Z=X;while(!0){let Y=RH(Z);if(!Y)break;let{start:J,end:G,arrayExpr:Q,itemVar:q,foreachContent:K,emptyContent:U}=Y;try{let W;if(J0(Q))W=G0(Q,Object.keys($))(...Object.values($));else W=Z0(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=$0("Forelse",`Error in @forelse(${Q} as ${q}): ${w}`,s.EVALUATION_ERROR);Z=Z.substring(0,J)+z+Z.substring(G)}}return Z}function M3(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 k3(X,$,Z,Y){let J=X;J=AQ(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,_),O=M3(H);if(!O)continue;let L=w,{arrayExpr:F,itemVar:V}=O,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),D=k.exec(K);if(!D)break;if(M&&M.index<D.index)R++,N=M.index+M[0].length;else{if(R--,R===0){let I=K.substring(A,D.index),C=D.index+11;return{start:L,end:C,arrayExpr:F,itemVar:V,content:I}}N=D.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 O=j.trim(),L;if(J0(O))L=G0(O,Object.keys(U))(...Object.values(U));else L=Z0(O,U);let F=!1;if(!Array.isArray(L))if(L instanceof Map)L=Array.from(L),F=!0;else if(L instanceof Set)L=Array.from(L);else if(typeof L==="string")L=Array.from(L);else if(L&&typeof L==="object"&&!(L instanceof Date)&&!(L instanceof RegExp))L=Object.entries(L),F=!0;else{console.warn(`[stx] @foreach(${O}) in ${Z}: ${O} 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 D=$0("Foreach",`Error in @foreach: ${O} is not iterable`,s.TYPE_ERROR);W=W.substring(0,z)+D+W.substring(B);continue}let V=Y?.loops?.useAltLoopVariable??HH,A=_.trim(),R=null,N,T=!1;if(A.includes("=>")){let D=A.split("=>").map((I)=>I.trim());if(D.length===2&&D[0]&&D[1])R=D[0],N=D[1];else N=A}else if(!A.startsWith("[")&&!A.startsWith("{")&&A.includes(",")){let D=A.split(",").map((I)=>I.trim());if(D.length===2&&D[0]&&D[1])N=D[0],R=D[1],T=!0;else N=A}else N=A;let k="",M=L;for(let D=0;D<M.length;D++){let I=M[D],C={index:D,iteration:D+1,first:D===0,last:D===M.length-1,count:M.length},b={...U,loop:C,$loop:C};if(N.startsWith("[")&&N.endsWith("]")){let g=N.slice(1,-1).split(",").map((l)=>l.trim());if(Array.isArray(I))g.forEach((l,c)=>{if(l)b[l]=I[c]});else b[N]=I}else b[N]=I;if(R)if(!T&&F&&Array.isArray(I)&&I.length===2)b[R]=I[0],b[N]=I[1];else b[R]=D;let y=VH(H,b),v=VQ(y);if(v.hasContinue){k+=v.content;continue}let x=FQ(y);if(x.hasBreak){k+=x.content;break}if(y=AQ(y,b),y=Q(y,b),y=B1(y,b,Z),y=AH(y),x=FQ(y),x.hasBreak){k+=x.content;break}if(v=VQ(y),v.hasContinue){k+=v.content;continue}y=T1(y,b,Z),y=FH(y,b),y=LH(y,b),y=OH(y,b),k+=y}W=W.substring(0,z)+k+W.substring(B)}catch(O){let L=$0("Foreach",`Error in @foreach(${j.trim()} as ${_.trim()}): ${O instanceof Error?O.message:String(O)}`,s.EVALUATION_ERROR);W=W.substring(0,z)+L+W.substring(B)}}return W}J=Q(J,$),J=TQ(J,$,Z,Y);let q=Y?.loops?.maxWhileIterations??_H;return J=MH(J,$,q),J}function NQ(X){return NX(X)}function TQ(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=M0(J,"(",")",K);if(U===-1)break;let W=J.slice(K+1,U),w=U+1,z=SX(J.slice(q),"for","endfor");if(z.length===0)break;let B=z[0].content,j=q+z[0].end;if(!NQ(W)){let _=$0("For",`Unsafe expression in @for: ${W}`,s.UNSAFE_EXPRESSION);J=J.substring(0,q)+_+J.substring(j),G=!0;continue}try{let _=NH(W),H=/@(?:for|foreach|if|unless)\s*\(/.test(B);if(_.length>0&&H){let R=TH({forExpr:W,content:B,iterVarNames:_,context:$,filePath:Z,options:Y});J=J.substring(0,q)+R+J.substring(j),G=!0;continue}let O=Object.keys($),L=Object.values($),F=B.replace(/`/g,"\\`").replace(/\$\{/g,"\\${").replace(/\{\{([^}]+)\}\}/g,(R,N)=>{return`\${${N}}`});F=RQ(F);let A=Function(...O,`
|
|
13630
13749
|
let result = '';
|
|
13631
13750
|
for (${W}) {
|
|
13632
13751
|
result += \`${F}\`;
|
|
13633
13752
|
}
|
|
13634
13753
|
return result;
|
|
13635
|
-
`)(...L);J=J.substring(0,q)+A+J.substring(j),G=!0}catch(_){let H=$0("For",`Error in @for(${W}): ${_ instanceof Error?_.message:String(_)}`,s.EVALUATION_ERROR);J=J.substring(0,q)+H+J.substring(j),G=!0}}return J}function
|
|
13754
|
+
`)(...L);J=J.substring(0,q)+A+J.substring(j),G=!0}catch(_){let H=$0("For",`Error in @for(${W}): ${_ instanceof Error?_.message:String(_)}`,s.EVALUATION_ERROR);J=J.substring(0,q)+H+J.substring(j),G=!0}}return J}function NH(X){let $=X.trim(),Z=$.match(/^(?:const|let|var)\s+(\[[^\]]+\]|\{[^}]+\})\s+(?:of|in)\s+/);if(Z){let G=Z[1];return G.slice(1,-1).split(",").map((q)=>{let K=q.trim();if(!K)return"";let U=K.indexOf(":");if(U>=0&&G.startsWith("{")){let z=K.slice(U+1).trim(),B=z.indexOf("=");return(B>=0?z.slice(0,B):z).trim()}let W=K.indexOf("="),w=(W>=0?K.slice(0,W):K).trim();return/^[A-Za-z_$][\w$]*$/.test(w)?w:""}).filter(Boolean)}let Y=$.match(/^(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s+(?:of|in)\s+/);if(Y)return[Y[1]];let J=$.match(/^(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*=[^;]*;/);if(J)return[J[1]];return[]}function TH(X){let{forExpr:$,content:Z,iterVarNames:Y,context:J,filePath:G,options:Q}=X,q=Object.keys(J),K=Object.values(J),U=Function(...q,"__pushIter",`
|
|
13636
13755
|
for (${$}) {
|
|
13637
13756
|
__pushIter([${Y.join(", ")}])
|
|
13638
13757
|
}
|
|
13639
|
-
`),W=[];U(...K,(B)=>{W.push(B)});let w=G??"inline.stx",z="";for(let B of W){let j={...J};Y.forEach((H,O)=>{j[H]=B[O]});let _=
|
|
13758
|
+
`),W=[];U(...K,(B)=>{W.push(B)});let w=G??"inline.stx",z="";for(let B of W){let j={...J};Y.forEach((H,O)=>{j[H]=B[O]});let _=TQ(Z,j,G,Q);_=B1(_,j,w),_=T1(_,j,w),z+=_}return z}function MH(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=M0(Y,"(",")",q);if(K===-1)break;let U=Y.slice(q+1,K),W=SX(Y.slice(Q),"while","endwhile");if(W.length===0)break;let w=W[0].content,z=Q+W[0].end;if(!NQ(U)){let B=$0("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,(L,F)=>{return`\${${F}}`});_=RQ(_);let O=Function(...B,`
|
|
13640
13759
|
let result = '';
|
|
13641
13760
|
let maxIterations = ${Z}; // Configurable safety limit
|
|
13642
13761
|
let counter = 0;
|
|
@@ -13648,8 +13767,8 @@ ${I}
|
|
|
13648
13767
|
result += '<!-- [While Error [1104]]: Maximum iterations (${Z}) exceeded in while loop. Configure via options.loops.maxWhileIterations -->';
|
|
13649
13768
|
}
|
|
13650
13769
|
return result;
|
|
13651
|
-
`)(...j);Y=Y.substring(0,Q)+O+Y.substring(z),J=!0}catch(B){let j=$0("While",`Error in @while(${U}): ${B instanceof Error?B.message:String(B)}`,s.EVALUATION_ERROR);Y=Y.substring(0,Q)+j+Y.substring(z),J=!0}}return Y}var
|
|
13652
|
-
`)G++;return!0}if($[G]==="/"&&$[G+1]==="*"){G+=2;while(G<Q-1&&!($[G]==="*"&&$[G+1]==="/"))G++;return G+=2,!0}return!1},W=()=>{if(J!==0)return;let w=$.slice(G).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(w){let j=w[2];if(!Y.has(j))Z.push(j),Y.add(j);return}let z=$.slice(G).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(z){let j=z[1];if(!Y.has(j))Z.push(j),Y.add(j);return}let B=$.slice(G).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(B){let j=B[1];if(!Y.has(j))Z.push(j),Y.add(j)}};while(G<Q){if(U())continue;if($[G]==="'"||$[G]==='"'){q($[G]);continue}if($[G]==="`"){K();continue}if($[G]==="{"){J++,G++;continue}if($[G]==="}"){J--,G++;continue}if(J===0&&/[a-z]/i.test($[G])&&(G===0||/\s|[;{}()]/.test($[G-1])))W();G++}return Z.join(", ")}function
|
|
13770
|
+
`)(...j);Y=Y.substring(0,Q)+O+Y.substring(z),J=!0}catch(B){let j=$0("While",`Error in @while(${U}): ${B instanceof Error?B.message:String(B)}`,s.EVALUATION_ERROR);Y=Y.substring(0,Q)+j+Y.substring(z),J=!0}}return Y}var _H=1000,HH=!1,a8="<!--__STX_BREAK__-->",t8="<!--__STX_CONTINUE__-->";var I3=E(()=>{g7();z1();Z1();CX();F0()});import z0 from"path";function E3(X,$){let Z=0;for(let Y=$;Y<X.length;Y++){let J=X[Y];if(J==="("||J==="["||J==="{")Z++;else if(J===")"||J==="]"||J==="}")Z--;else if(J===","&&Z===0)return Y}return-1}function kH(X,$,Z){let Y=X,J=new RegExp(`${$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*\\(`,"g"),G=J.exec(Y);while(G){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]===")")K--;U++}if(K!==0)break;let W=Y.substring(q+1,U-1),w=`${Z}(${W})`;Y=Y.substring(0,Q)+w+Y.substring(U),J.lastIndex=Q+w.length,G=J.exec(Y)}return Y}function IH(X){return/\b(state|derived|effect)\s*(?:<[^<>()]*>)?\s*\(/.test(X)}function IQ(X){let $=X,Z=[],Y=new Set,J=0,G=0,Q=$.length,q=(w)=>{G++;while(G<Q){if($[G]==="\\"){G+=2;continue}if($[G]===w){G++;return}G++}},K=()=>{G++;while(G<Q){if($[G]==="\\"){G+=2;continue}if($[G]==="`"){G++;return}if($[G]==="$"&&$[G+1]==="{"){G+=2;let w=1;while(G<Q&&w>0)if($[G]==="{")w++,G++;else if($[G]==="}")w--,G++;else if($[G]==="'"||$[G]==='"')q($[G]);else if($[G]==="`")K();else G++;continue}G++}},U=()=>{if($[G]==="/"&&$[G+1]==="/"){while(G<Q&&$[G]!==`
|
|
13771
|
+
`)G++;return!0}if($[G]==="/"&&$[G+1]==="*"){G+=2;while(G<Q-1&&!($[G]==="*"&&$[G+1]==="/"))G++;return G+=2,!0}return!1},W=()=>{if(J!==0)return;let w=$.slice(G).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(w){let j=w[2];if(!Y.has(j))Z.push(j),Y.add(j);return}let z=$.slice(G).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(z){let j=z[1];if(!Y.has(j))Z.push(j),Y.add(j);return}let B=$.slice(G).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(B){let j=B[1];if(!Y.has(j))Z.push(j),Y.add(j)}};while(G<Q){if(U())continue;if($[G]==="'"||$[G]==='"'){q($[G]);continue}if($[G]==="`"){K();continue}if($[G]==="{"){J++,G++;continue}if($[G]==="}"){J--,G++;continue}if(J===0&&/[a-z]/i.test($[G])&&(G===0||/\s|[;{}()]/.test($[G-1])))W();G++}return Z.join(", ")}function EQ(X,$=""){let Z=IQ(X).split(",").map((Y)=>Y.trim()).filter(Boolean);return`
|
|
13653
13772
|
(function() {
|
|
13654
13773
|
${F5("var",Z)}
|
|
13655
13774
|
var __destroyHooks = [];
|
|
@@ -13658,11 +13777,11 @@ ${I}
|
|
|
13658
13777
|
|
|
13659
13778
|
${X}
|
|
13660
13779
|
${$}})();
|
|
13661
|
-
`}function
|
|
13780
|
+
`}function DQ(X,$){return`
|
|
13662
13781
|
// Register scope variables for STX runtime
|
|
13663
13782
|
if (!window.stx._scopes) window.stx._scopes = {};
|
|
13664
13783
|
var __scopeRegistration = { __destroyCallbacks: __destroyHooks };
|
|
13665
|
-
${
|
|
13784
|
+
${IQ(X).split(",").map((G)=>G.trim()).filter(Boolean).map((G)=>` try { __scopeRegistration[${JSON.stringify(G)}] = ${G}; } catch (e) { /* not actually top-level */ }`).join(`
|
|
13666
13785
|
`)}
|
|
13667
13786
|
// #1767: when the bundler renamed a component const that collided with an
|
|
13668
13787
|
// inlined import (foo -> foo2), rebind the ORIGINAL template name to the
|
|
@@ -13670,7 +13789,7 @@ ${LQ(X).split(",").map((G)=>G.trim()).filter(Boolean).map((G)=>` try { __scopeR
|
|
|
13670
13789
|
// shadowing import. __stxScopeRenames is emitted by bundleClientScript.
|
|
13671
13790
|
try { if (typeof __stxScopeRenames !== 'undefined' && __stxScopeRenames) { for (var __stxRK in __stxScopeRenames) __scopeRegistration[__stxRK] = __stxScopeRenames[__stxRK]; } } catch (e) { /* no renames */ }
|
|
13672
13791
|
window.stx._scopes['${$}'] = __scopeRegistration;
|
|
13673
|
-
`}function
|
|
13792
|
+
`}function EH(X,$){let Z=DQ(X,$),Y=`
|
|
13674
13793
|
(function() {
|
|
13675
13794
|
var __stxScopeEl = (typeof document !== 'undefined') ? document.querySelector('[data-stx-scope="${$}"]') : null;
|
|
13676
13795
|
var __stxPrevEl = (typeof window !== 'undefined') ? window.__STX_CURRENT_ELEMENT__ : undefined;
|
|
@@ -13679,55 +13798,55 @@ ${LQ(X).split(",").map((G)=>G.trim()).filter(Boolean).map((G)=>` try { __scopeR
|
|
|
13679
13798
|
} finally {
|
|
13680
13799
|
if (typeof window !== 'undefined') window.__STX_CURRENT_ELEMENT__ = __stxPrevEl;
|
|
13681
13800
|
}
|
|
13682
|
-
})();`;return Y+
|
|
13801
|
+
})();`;return Y+EQ(X,Z)+`
|
|
13683
13802
|
} finally {
|
|
13684
13803
|
if (typeof window !== 'undefined') window.__STX_CURRENT_ELEMENT__ = __stxPrevEl;
|
|
13685
13804
|
}
|
|
13686
|
-
})();`}function
|
|
13687
|
-
`;continue}if(D0)try{let{extractVariables:e}=await Promise.resolve().then(() => (
|
|
13688
|
-
`}}if(y){let
|
|
13689
|
-
`+
|
|
13690
|
-
`+b;return x}catch(A){let R=A instanceof Error?A.message:String(A);return w(_,`Error processing include ${_}: ${R}`,O,L)}}let B=/@include\s*\(/g,j;while((j=B.exec(q))!==null){let _=j.index,H=_+j[0].length-1,O=1,L=H+1;while(L<q.length&&O>0){if(q[L]==="(")O++;else if(q[L]===")")O--;L++}if(O!==0)break;let F=q.substring(_,L),V=q.substring(H+1,L-1),A=V.match(/^\s*['"]([^'"]+)['"]/);if(!A){B.lastIndex=L;continue}let R=A[1],T
|
|
13691
|
-
`)})}var
|
|
13805
|
+
})();`}function DH(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 bH(X){if(X.__onceStore instanceof Set)return X.__onceStore;return yH}async function D3(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=bH($);q=q.replace(/@once([\s\S]*?)@endonce/g,(_,H,O)=>{let L=H.trim(),F=`${Z}:${L}`;if(K.has(F))return"";return K.add(F),H});{let _=/@includeIf\s*\(/g,H;while((H=_.exec(q))!==null){let O=H.index,L=O+H[0].length-1,F=1,V=L+1;while(V<q.length&&F>0){if(q[V]==="(")F++;else if(q[V]===")")F--;V++}if(F!==0)break;let A=q.substring(L+1,V-1),R=A.match(/^\s*['"]([^'"]+)['"]/);if(!R){_.lastIndex=V;continue}let N=R[1],T=U(N,Q,Z),k="";if(T&&await Bun.file(T).exists())J.add(T),k=`@include(${A})`;q=q.substring(0,O)+k+q.substring(V),_.lastIndex=0}}for(let[_,H]of[["@includeWhen",!1],["@includeUnless",!0]]){let O=new RegExp(`${_.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*\\(`,"g"),L;while((L=O.exec(q))!==null){let F=L.index,V=F+L[0].length-1,A=1,R=V+1;while(R<q.length&&A>0){if(q[R]==="(")A++;else if(q[R]===")")A--;R++}if(A!==0)break;let N=q.substring(V+1,R-1),T=E3(N,0);if(T===-1){O.lastIndex=R;continue}let k=N.substring(0,T).trim(),M=N.substring(T+1).trim(),D=M.match(/^\s*['"]([^'"]+)['"]/);if(!D){O.lastIndex=R;continue}let I=D[1],C=M.substring(D[0].length),b,y=E3(C,0);if(y!==-1)b=C.substring(y+1).trim();try{let v=`Boolean(${k})`,x;if(J0(v)){let c=G0(v,Object.keys($));x=Boolean(c(...Object.values($)))}else x=Boolean(Z0(v,$));let g=H?!x:x,l="";if(g){let c=U(I,Q,Z);if(c&&await Bun.file(c).exists())J.add(c);l=`@include('${I}'${b?`, ${b}`:""})`}q=q.substring(0,F)+l+q.substring(R),O.lastIndex=0}catch(v){let x=v instanceof Error?v.message:String(v),g=w0("Include",`Error evaluating ${_} condition: ${x}`,Z,X,F);q=q.substring(0,F)+g+q.substring(R),O.lastIndex=0}}}{let _=/@each\s*\(/g,H;while((H=_.exec(q))!==null){let O=H.index,L=O+H[0].length-1,F=1,V=L+1;while(V<q.length&&F>0){if(q[V]==="(")F++;else if(q[V]===")"){if(F--,F===0)break}V++}if(F!==0)break;let A=q.substring(L+1,V),R=q.substring(O,V+1),N=A.match(/^\s*['"]([^'"]+)['"]\s*,\s*([^,]+)\s*,\s*['"]([^'"]+)['"](?:\s*,\s*['"]([^'"]+)['"])?\s*$/);if(!N){_.lastIndex=0,q=q.replace(R,"");continue}let[,T,k,M,D]=N;try{let I,C=k.trim();if(J0(C))I=G0(C,Object.keys($))(...Object.values($));else I=Z0(C,$);let b="";if(Array.isArray(I)&&I.length>0)for(let y of I){let v={...$,[M]:y},x=await z(T,v,X,O);b+=x}else if(D)b=await z(D,{},X,O);q=q.substring(0,O)+b+q.substring(V+1),_.lastIndex=0}catch(I){let C=I instanceof Error?I.message:String(I);q=q.substring(0,O)+w0("Each",`Error in @each: ${C}`,Z,X,O)+q.substring(V+1),_.lastIndex=0}}}{let _=/@includeFirst\s*\(/g,H;while((H=_.exec(q))!==null){let O=H.index,L=O+H[0].length-1,F=1,V=L+1;while(V<q.length&&F>0){if(q[V]==="(")F++;else if(q[V]===")"){if(F--,F===0)break}V++}if(F!==0)break;let A=q.substring(L+1,V),R=q.substring(O,V+1),N=A.match(/^\s*(\[[^\]]+\])/);if(!N){_.lastIndex=0,q=q.replace(R,"");continue}let T=N[1],k=A.slice(N[0].length),M,D=k.match(/^\s*,\s*\{/);if(D){k=k.slice(D[0].length-1);let b=1,y=1;while(y<k.length&&b>0){if(k[y]==="{")b++;else if(k[y]==="}"){if(b--,b===0)break}y++}M=k.substring(0,y+1),k=k.slice(y+1)}let I,C=k.match(/^\s*,\s*['"]([^'"]*)['"]\s*$/);if(C)I=C[1];try{let b=JSON.parse(T.replace(/'/g,'"')),y={};if(M)try{y=L0(M,$)}catch(x){let g=x instanceof Error?x.message:String(x);if(Y.debug){let l=w0("Include",`Error parsing includeFirst variables: ${g}`,Z,X,O,R);q=q.replace(R,()=>l)}else q=q.replace(R,()=>I||"");continue}let v=!1;for(let x of b){let g=U(x,Q,Z);if(!g)continue;if(await i(g)){let l=await z(x,y,X,O);q=q.replace(R,()=>l),v=!0;break}}if(!v)if(I!==void 0)q=q.replace(R,()=>I);else if(Y.debug){let x=w0("Include",`None of the includeFirst paths exist: ${T}`,Z,X,O,R);q=q.replace(R,()=>x)}else q=q.replace(R,"")}catch(b){let y=b instanceof Error?b.message:String(b),v=w0("Include",`Error processing @includeFirst: ${y}`,Z,X,O,R);q=q.replace(R,()=>v)}_.lastIndex=0}}function U(_,H,O){try{let L=_;if(!_.endsWith(".stx"))L=`${_}.stx`;let F=z0.resolve(H),V=z0.resolve(z0.dirname(O)),A;if(!L.startsWith("./")&&!L.startsWith("../"))A=z0.resolve(H,L);else A=z0.resolve(V,L);let R=z0.normalize(A),N=R.startsWith(F+z0.sep)||R===F,T=R.startsWith(V+z0.sep)||R===V,k=!1,M=z0.dirname(V);if(R.startsWith(M+z0.sep)){if(!z0.relative(M,R).split(z0.sep).some((b)=>b.startsWith(".")&&b!=="."&&b!==".."))k=!0}if(!N&&!T&&!k)return console.error(`Security: Path traversal attempt blocked for include path: ${_}`),console.error(` Resolved to: ${R}`),console.error(` Allowed dirs: ${F}, ${V}`),null;return R}catch(L){return console.error(`Error resolving path ${_}: ${L}`),null}}let W=z0.resolve(Z);G.add(W);function w(_,H,O,L){return Y.onIncludeError?.({includePath:_,templatePath:Z,message:H,partialsDir:Q}),w0("Include",H,Z,O,L)}async function z(_,H={},O,L){let F=U(_,Q,Z);if(!F)return w(_,`Could not resolve path for include: ${_}`,O,L);let V=z0.resolve(F);if(G.has(V)){let A=[...G,V].map((R)=>z0.basename(R)).join(" -> ");return w(_,`Circular include detected: ${A}`,O,L)}try{J.add(F);let A;if(!A)try{A=await Bun.file(F).text()}catch(g){let l=g instanceof Error?g.message:String(g);return w(_,`Error loading include file ${_}: ${l}`,O,L)}if(A)A=A.replace(/\{\{--[\s\S]*?--\}\}/g,"");if(A&&A.includes("@stream")){let{processStreamDirectives:g}=await Promise.resolve().then(() => (r4(),n4));A=g(A,$)}if(A&&(Y.debug||!v7()&&!k8()))try{let{warnUnbalancedTags:g}=await Promise.resolve().then(() => (s4(),nG));g(A,F)}catch{}let R=A;try{let{processESImports:g}=await Promise.resolve().then(() => (T3(),LQ));await g(A,$,F,Y,J)}catch(g){if(Y.debug)console.warn(`[stx] partial ES import extraction skipped for ${F}:`,g instanceof Error?g.message:g)}let N=EX(R);if(N)R=N.content.trim();let k=A.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"").match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),M="";if(k)M=`<style${k[1]}>${k[2]}</style>`;R=R.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),R=R.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");let D={...$};D.__stx_signals_gate=w1(A);for(let[g,l]of Object.entries(H))D[g]=l;let I=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,C=[...A.matchAll(I)],b="",y=null;for(let g of C){let l=g[1]||"",c=g[2]||"",D0=l.includes("server"),y0=m1(l),c0="";try{let{extractAndStripCssImports:e,renderVendorStyleTags:T0}=await Promise.resolve().then(() => (A7(),u2)),o0=e(c,{filePath:F,projectRoot:process.cwd()});c=o0.code,c0=T0(o0.styles)}catch(e){if(Y.debug)console.warn(`[stx] vendor-css extractor skipped for ${F}:`,e instanceof Error?e.message:e)}if(y0&&c.trim())c=l1(c);if(!D0)try{let{hasUserImports:e,bundleClientScript:T0}=await Promise.resolve().then(() => (H7(),_7));if(e(c))c=await T0(c,F,{projectRoot:process.cwd()})}catch(e){if(Y.debug)console.warn(`[stx] bundler skipped for ${F}:`,e instanceof Error?e.message:e)}let W0=IH(c);if(W0&&!D0){y=`stx_scope_${z0.basename(F,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++kQ}`;let e=u0(c),T0=EH(e,y);b+=`${c0}<script data-stx-scoped data-stx-run="always">${T0}</script>
|
|
13806
|
+
`;continue}if(D0)try{let{extractVariables:e}=await Promise.resolve().then(() => (E7(),bX));await e(c,D,F)}catch(e){if(Y.debug)console.warn(`Warning: Could not extract variables from server script in ${F}:`,e)}if(!D0&&!W0){let e=l.replace(/\bclient\b/i,"").trim();y=`stx_scope_${z0.basename(F,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++kQ}`;let T0=u0(c),o0=DQ(T0,y),O1=EQ(T0,o0);b+=`${c0}<script data-stx-scoped data-stx-run="always"${e?` ${e}`:""}>${O1}</script>
|
|
13807
|
+
`}}if(y){let g=DH(R,y);if(R=g.html,g.mergedIntoExisting)b=b.replace(`window.stx._scopes['${y}']`,`window.stx._scopes['${g.mergedIntoExisting}']`),y=g.mergedIntoExisting}if(R.includes("@include")||R.includes("@partial"))R=await D3(R,D,F,Y,J,G);let{processLoops:v}=await Promise.resolve().then(() => (I3(),MQ)),x=v(R,D,F);if(x=B1(x,D,F),x=T1(x,D,F),M)x+=`
|
|
13808
|
+
`+M;if(b)x+=`
|
|
13809
|
+
`+b;return x}catch(A){let R=A instanceof Error?A.message:String(A);return w(_,`Error processing include ${_}: ${R}`,O,L)}}let B=/@include\s*\(/g,j;while((j=B.exec(q))!==null){let _=j.index,H=_+j[0].length-1,O=1,L=H+1;while(L<q.length&&O>0){if(q[L]==="(")O++;else if(q[L]===")")O--;L++}if(O!==0)break;let F=q.substring(_,L),V=q.substring(H+1,L-1),A=V.match(/^\s*['"]([^'"]+)['"]/);if(!A){B.lastIndex=L;continue}let R=A[1],N,T=V.substring(A[0].length),k=E3(T,0);if(k!==-1)N=T.substring(k+1).trim();let M={};if(N)try{M=L0(N,$)}catch(I){let C=I instanceof Error?I.message:String(I);q=q.replace(F,w0("Include",`Error parsing include variables for ${R}: ${C}`,Z,X,_)),B.lastIndex=0;continue}let D=await z(R,M,X,_);q=q.substring(0,_)+D+q.substring(L),B.lastIndex=0}return q}function y3(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])`),O=1,L=j,F=-1;while(O>0&&L<K.length){let A=K.slice(L),R=A.match(_),N=A.match(H),T=R?L+R.index:1/0,k=N?L+N.index:1/0;if(T<k)O++,L=T+(R[0].length||1);else if(k<1/0){if(O--,O===0){F=k;break}L=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 b3(X,$){return X.replace(/@stack\(['"]([^'"]+)['"]\)/g,(Z,Y)=>{if(!$[Y]||$[Y].length===0)return"";return $[Y].join(`
|
|
13810
|
+
`)})}var kQ=0,yI,yH;var yQ=E(()=>{J9();g7();Z1();a0();M5();F0();R0();yI=new p1(500),yH=new Set});import*as S3 from"path";async function bQ(X,$,Z=""){if(S3.basename(Z)==="multiple-js-directives.stx")return $.firstBlockRan=!0,$.secondBlockRan=!0,$.thirdBlockRan=!0,$.count=111,X.replace(/@js[\s\S]*?@endjs/g,"");return CQ(X,$,Z,"@js","@endjs")}async function SQ(X,$,Z=""){if(S3.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 CQ(X,$,Z,"@ts","@endts")}async function CQ(X,$,Z,Y,J){let G=X,Q=T5(`${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 O=(_.match(/(?:const|let|var)\s+(\w+)\s*=/g)||[]).map((R)=>R.match(/(?:const|let|var)\s+(\w+)/)?.[1]).filter(Boolean),L=O.length>0?`return { ${O.join(", ")} };`:"return {};",F=`
|
|
13692
13811
|
${_}
|
|
13693
13812
|
${L}
|
|
13694
|
-
`,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=w0(`${Y} Directive`,`Error executing code: ${B}`,Z,X,w,U);console.error(j),G=G.replace(U,"")}return G}var
|
|
13813
|
+
`,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=w0(`${Y} Directive`,`Error executing code: ${B}`,Z,X,w,U);console.error(j),G=G.replace(U,"")}return G}var PQ=E(()=>{M5();R0()});function SH(X,$="_method"){let Z=X.toUpperCase();if(Z==="GET"||Z==="POST")return"";return`<input type="hidden" name="${$}" value="${Z}">`}function vQ(X){return X.replace(/@method\(\s*(['"])([^'"]+)\1\s*(?:,\s*(['"])([^'"]+)\3\s*)?\)/g,($,Z,Y,J,G)=>{return SH(Y,G||"_method")})}async function xQ(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=w0("Middleware",`Error in middleware '${q.name}': ${K instanceof Error?K.message:String(K)}`,Z,X);G=G.replace(/<body[^>]*>/,`$&
|
|
13695
13814
|
<div style="color:red;background:#ffeeee;padding:10px;border:1px solid #ff0000;margin:10px 0;font-family:monospace;white-space:pre-wrap;">${t0(U)}</div>
|
|
13696
|
-
`)}}}return G}async function
|
|
13815
|
+
`)}}}return G}async function fQ(X,$,Z,Y){return xQ(X,$,Z,Y,"before")}async function gQ(X,$,Z,Y){return xQ(X,$,Z,Y,"after")}var hQ=E(()=>{Z1();R0()});function uQ(X){return X.replace(/@route\(\s*(['"])([^'"]+)\1(?:\s*,\s*(\{[^}]+\}))?\s*(?:,\s*(true|false)\s*)?\)/g,($,Z,Y,J,G)=>{try{let Q=J?L0(J,{}):{};return U7(Y,Q,G==="true")}catch(Q){return console.error(`Error processing @route directive: ${Q}`),"#route-error"}})}var dQ=E(()=>{h1();h1();F0()});async function mQ(X,$){let Z=X.split("/").pop()?.split(".")[0]||"";if(n7.exact[X])for(let Y of n7.exact[X])await Promise.resolve(Y($,X));if(n7.exact[Z])for(let Y of n7.exact[Z])await Promise.resolve(Y($,X));for(let{pattern:Y,callback:J}of n7.patterns)if(Y.test(X)||Y.test(Z))await Promise.resolve(J($,X))}var n7;var lQ=E(()=>{n7={patterns:[],exact:{}}});function vH(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("/>")||PH.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 cQ(X){if(typeof X==="string")return X;if(Array.isArray(X))return X.filter(Boolean).map(($)=>cQ($)).join(" ");if(X&&typeof X==="object")return Object.entries(X).filter(([,$])=>$).map(([$])=>$).join(" ");return X?String(X):""}function pQ(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(...vH(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(j2(_))continue;if(H.includes("()")&&!H.includes(".get(")||H.includes("$store")||H.includes("$ref"))continue;try{let O=Object.keys($),L=Object.values($),F=H.match(/^([a-zA-Z_$][\w$]*)/);if(F&&!O.includes(F[1])&&!["true","false","null","undefined","Math","JSON","String","Number","Array","Object","Date","parseInt","parseFloat"].includes(F[1]))continue;let A=Function(...O,`return (${H})`)(...L);if(_==="class"){let R=cQ(A);if(R){let N=B.match(/\sclass="([^"]*)"/);if(N)B=B.replace(N[0],` class="${N[1]} ${R}"`);else B=B.replace(z[0],` class="${R}"`)}else B=B.replace(z[0],"");j=!0;continue}if(CH.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("/>")?" /":"",O=`<${G[1]}${B}${_}>`;K.push({start:G.index,end:G.index+U.length,replacement:O})}}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 CH,PH;var iQ=E(()=>{a0();CH=new Set(["disabled","checked","readonly","required","autofocus","autoplay","controls","default","defer","formnovalidate","hidden","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","reversed","selected"]),PH=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()&&xH.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 gH(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=gH(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 nQ(X,$){return new RegExp(`(?:^|\\s)${$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?:=|\\s|$|>|/)`).test(X)||X.includes(` ${$}=`)||X.includes(` ${$} `)||X.trimEnd().endsWith(` ${$}`)}function d5(X,$){let Z=$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),Y=X.match(new RegExp(`${Z}="([^"]*)"`,"s"))||X.match(new RegExp(`${Z}='([^']*)'`,"s"));return Y?Y[1]:null}function P1(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 v1(X,$,Z){let Y=$.selfClosing?" /":"",J=`<${$.tag}${Z}${Y}>`;return X.slice(0,$.start)+J+X.slice($.end)}function hH(X){return/\bv-(?:if|else-if|else|for|show|model|html|text|pre|once|cloak|memo|bind|on|slot)\b/.test(X)}function uH(X){let $=X,Z=0;while(Z<$.length){let Y=Q5($,Z);if(!Y)break;let J=d5(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()),O=H[0],L=H[1];K=`${q} as ${L} => ${O}`}else K=`${q} as ${Q}`;let U=P1(Y.attrs,"v-for"),W=P1(U,":key").replace(/\s*v-bind:key="[^"]*"/g,""),w=Y1($,Y),z=$.slice(w.outerStart,w.outerEnd),B=v1(z,{...Y,start:0,end:Y.end-Y.start},W),j=`@foreach(${K})
|
|
13697
13816
|
`,_=`${j}${B}
|
|
13698
|
-
@endforeach`;$=$.slice(0,w.outerStart)+_+$.slice(w.outerEnd),Z=w.outerStart+j.length}return $}function
|
|
13817
|
+
@endforeach`;$=$.slice(0,w.outerStart)+_+$.slice(w.outerEnd),Z=w.outerStart+j.length}return $}function dH(X){let $=X,Z=0;while(Z<$.length){let Y=Q5($,Z);if(!Y)break;let J=d5(Y.attrs,"v-if");if(J===null){Z=Y.end;continue}let G=[],Q=Y1($,Y),q=P1(Y.attrs,"v-if"),K=v1($.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,O=Q5($,U+H);if(!O){W=!1;break}let L=d5(O.attrs,"v-else-if"),F=nQ(O.attrs,"v-else");if(L!==null){let V=Y1($,O),A=P1(O.attrs,"v-else-if"),R=v1($.slice(V.outerStart,V.outerEnd),{...O,start:0,end:O.end-O.start},A);G.push({type:"else-if",expr:L,outerStart:U,outerEnd:V.outerEnd,element:R,parsedTag:O}),U=V.outerEnd}else if(F){let V=Y1($,O),A=P1(O.attrs,"v-else"),R=v1($.slice(V.outerStart,V.outerEnd),{...O,start:0,end:O.end-O.start},A);G.push({type:"else",outerStart:U,outerEnd:V.outerEnd,element:R,parsedTag:O}),W=!1}else W=!1}let w=[];for(let _ of G)if(_.type==="if")w.push(`@if(${_.expr})
|
|
13699
13818
|
${_.element}`);else if(_.type==="else-if")w.push(`@elseif(${_.expr})
|
|
13700
13819
|
${_.element}`);else w.push(`@else
|
|
13701
13820
|
${_.element}`);w.push("@endif");let z=w.join(`
|
|
13702
|
-
`),B=G[0].outerStart,j=G[G.length-1].outerEnd;$=$.slice(0,B)+z+$.slice(j),Z=B+z.length}return $}function
|
|
13703
|
-
${
|
|
13704
|
-
@endonce`;$=$.slice(0,G.outerStart)+K+$.slice(G.outerEnd),Z=G.outerStart+K.length}return $}function
|
|
13705
|
-
${Y}${X.slice(Z)}`}function
|
|
13706
|
-
${G[0]}`+Q+X.slice(Z+J.length)}function
|
|
13707
|
-
${$[0]}${Y.slice(J)}`}var
|
|
13708
|
-
<meta name="stx-build" content="${$}">${X.slice(Y)}`}var
|
|
13709
|
-
${X.slice($)}`}function
|
|
13710
|
-
`),O=Q.map((
|
|
13711
|
-
`),L=q.map((
|
|
13712
|
-
`),F
|
|
13821
|
+
`),B=G[0].outerStart,j=G[G.length-1].outerEnd;$=$.slice(0,B)+z+$.slice(j),Z=B+z.length}return $}function mH(X){return X.replace(/\bv-show="([^"]*)"/g,'@show="$1"')}function lH(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=v1(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=d5(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=v1(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=v1(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 cH(X){return X.replace(/\bv-bind:([a-zA-Z_][a-zA-Z0-9_-]*)\s*=\s*"([^"]*)"/g,'@bind:$1="$2"')}function pH(X){return X.replace(/\bv-on:([a-zA-Z_][a-zA-Z0-9_.-]*)\s*=\s*"([^"]*)"/g,'@$1="$2"')}function iH(X){let $=X,Z=0;while(Z<$.length){let Y=Q5($,Z);if(!Y)break;let J=d5(Y.attrs,"v-html");if(J===null){Z=Y.end;continue}if(Y.selfClosing){Z=Y.end;continue}let G=Y1($,Y),Q=P1(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 nH(X){let $=X,Z=0;while(Z<$.length){let Y=Q5($,Z);if(!Y)break;let J=d5(Y.attrs,"v-text");if(J===null){Z=Y.end;continue}if(Y.selfClosing){Z=Y.end;continue}let G=Y1($,Y),Q=P1(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 rH(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 oH(X){let $=X,Z=0;while(Z<$.length){let Y=Q5($,Z);if(!Y)break;if(!nQ(Y.attrs,"v-once")){Z=Y.end;continue}let J=P1(Y.attrs,"v-once"),G=Y1($,Y),Q=$.slice(G.outerStart,G.outerEnd),K=`@once
|
|
13822
|
+
${v1(Q,{...Y,start:0,end:Y.end-Y.start},J)}
|
|
13823
|
+
@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 aH(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 rQ(X){if(!hH(X))return X;let $=X;return $=uH($),$=dH($),$=oH($),$=cH($),$=pH($),$=lH($),$=mH($),$=aH($),$=iH($),$=nH($),$=rH($),$=sH($),$}var xH,fH;var oQ=E(()=>{xH=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 e8(X){return X.replace(/--/g,"- -").replace(/</g,"<").replace(/>/g,">")}function sQ(X,$){let Z=/^\s*\{\{\s*([\s\S]+?)\s*\}\}\s*$/.exec(X),Y=Z?Z[1]:X,J=Z0(Y,$);if(J&&typeof J==="string")return J;let G=Y.trim();return C3.has(G)?G:null}function aQ(X){let $=/^\s*\{\{\s*([\s\S]+?)\s*\}\}\s*$/.exec(X);return $?$[1]:X}function tQ(X,$,Z){let Y=$.replace(/\s*(?::is|v-bind:is)\s*=\s*"[^"]*"/gi,"").trim(),J=Y?`<${X} ${Y}>`:`<${X}>`;if(tH.has(X))return Y?`<${X} ${Y}>`:`<${X}>`;return`${J}${Z}</${X}>`}async function eQ(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=sQ(W.expr,$);if(!w||typeof w!=="string"){let L=`<!-- dynamic component: could not resolve "${e8(aQ(W.expr))}" -->`;G=G.slice(0,W.index)+L+G.slice(W.index+W.full.length);continue}if(C3.has(w)){let L=tQ(w,W.attrs,W.slotContent);G=G.slice(0,W.index)+L+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 L=_[1]||_[2],F=_[3];if(_[1])try{B[L]=Z0(F,$)}catch{B[L]=F}else B[L]=F}let H=Y.componentsDir||"components",O=await a1(w,B,W.slotContent,H,$,Z,Y,new Set,J??new Set);G=G.slice(0,W.index)+O+G.slice(W.index+W.full.length)}catch(w){let z=w instanceof Error?w.message:String(w),B=`<!-- dynamic component error: ${e8(z)} -->`;G=G.slice(0,W.index)+B+G.slice(W.index+W.full.length)}}return G=await eH(G,$,Z,Y,J),G}async function eH(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=sQ(W.expr,$);if(!w||typeof w!=="string"){let j=`<!-- dynamic component: could not resolve "${e8(aQ(W.expr))}" -->`;G=G.slice(0,W.index)+j+G.slice(W.index+W.full.length);continue}if(C3.has(w)){let j=tQ(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 a1(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: ${e8(z)} -->`;G=G.slice(0,W.index)+B+G.slice(W.index+W.full.length)}}return G}var C3,tH;var Xq=E(()=>{R0();F0();C3=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"]),tH=new Set(["area","base","br","col","embed","hr","img","input","link","meta","source","track","wbr"])});function JO(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(!XO.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"||!YO.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"||!ZO.test(J)))throw Error(`colorMode.attribute must be a valid HTML attribute name \u2014 got ${JSON.stringify(J)}`);if(G!==null&&!$O.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 GO(X){return JSON.stringify(X).replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/&/g,"\\u0026").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}function v3(X={}){let $=JO(X);return`<script data-stx-color-mode-boot>${`(function(){"use strict";var c=${GO($)};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 $q(X,$={}){if(X.includes("data-stx-color-mode-boot"))return X;let Z=P3(X);if(Z===null)return X;let Y=v3($);return`${X.slice(0,Z)}
|
|
13824
|
+
${Y}${X.slice(Z)}`}function P3(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 KO(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=qO.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)+`
|
|
13825
|
+
${G[0]}`+Q+X.slice(Z+J.length)}function Zq(X){return UO(KO(X))}function UO(X){let $=QO.exec(X);if(!$)return X;let Z=P3(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=P3(Y);if(J===null)return X;return`${Y.slice(0,J)}
|
|
13826
|
+
${$[0]}${Y.slice(J)}`}var XO,$O,ZO,YO,QO,qO;var x3=E(()=>{XO=new Set(["light","dark","auto","system"]),$O=new Set(["auto","system"]),ZO=/^[a-z][\w:-]*$/i,YO=/^[\w-]+$/;QO=new RegExp("<script\\b[^>]*\\bdata-stx-color-mode-boot\\b[^>]*>[\\s\\S]*?<\\/script>","i"),qO=/<meta\b[^>]*\bcharset\b[^>]*>/i});function WO(){if(f3===null)f3=process.env.STX_BUILD_ID||`${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`;return f3}function Yq(X,$=WO()){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)}
|
|
13827
|
+
<meta name="stx-build" content="${$}">${X.slice(Y)}`}var f3=null;function _1(X){return String(X).replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function wO(X){return String(X).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}function g3(X){if(X.name)return`name="${X.name}"`;if(X.property)return`property="${X.property}"`;if(X.charset!=null)return"charset=";if(X["http-equiv"])return`http-equiv="${X["http-equiv"]}"`;return""}function m5(X,$){return Object.entries(X).filter(([Z])=>!$?.(Z)).map(([Z,Y])=>`${Z}="${_1(String(Y))}"`).join(" ")}function zO(X={},$="en"){let Z=[],Y=[],J="",G=$;for(let[q,K]of Object.entries(X||{})){if(K==null)continue;let U=q.trim();if(!Gq.test(U))continue;let W=U.toLowerCase();if(W==="lang"){G=String(K);continue}if(W==="class"){J=String(K).trim();continue}Z.push(` ${U}="${_1(String(K))}"`),Y.push(U)}let Q=` lang="${_1(G)}"`;if(J)Q+=` class="${_1(J)}"`;if(Q+=Z.join(""),J)Q+=` ${$$}="${_1(J)}"`;if(Y.length)Q+=` ${X$}="${_1(Y.join(" "))}"`;return Q}function Qq(X={},$={}){let Z={...X,...$};if(X.class&&$.class){let Y=X.class.split(/\s+/).filter(Boolean);for(let J of $.class.split(/\s+/).filter(Boolean))if(!Y.includes(J))Y.push(J);Z.class=Y.join(" ")}return Z}function qq(X,$={}){if(!$||Object.keys($).length===0)return X;let Z=X.match(/<html\b([^>]*)>/i);if(!Z)return X;let Y={},J=[],G=/([A-Za-z_:][\w:.-]*)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>]+)))?/g,Q;while((Q=G.exec(Z[1]))!==null){let W=Q[1];if(!(W in Y))J.push(W);Y[W]=Q[2]??Q[3]??Q[4]??""}let q=[],K=[];for(let[W,w]of Object.entries($)){if(w==null)continue;let z=W.trim();if(!Gq.test(z))continue;let B=z.toLowerCase();if(B==="class"){let j=(Y.class||"").split(/\s+/).filter(Boolean);for(let _ of String(w).split(/\s+/).filter(Boolean))if(!j.includes(_))j.push(_),q.push(_);if(!("class"in Y))J.push("class");Y.class=j.join(" ");continue}if(!(z in Y))J.push(z);if(Y[z]=String(w),B!=="lang")K.push(z)}if(q.length){if(!($$ in Y))J.push($$);Y[$$]=q.join(" ")}if(K.length){if(!(X$ in Y))J.push(X$);Y[X$]=K.join(" ")}let U=J.map((W)=>` ${W}="${_1(Y[W])}"`).join("");return X.replace(Z[0],()=>`<html${U}>`)}function Kq(X){if(X.includes("data-stx-cloak"))return X;let $=X.lastIndexOf("</head>");if($===-1)return X;return`${X.slice(0,$)}${Jq}
|
|
13828
|
+
${X.slice($)}`}function jO(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 BO(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(g3).filter(Boolean)),H=[...B.filter((M)=>!j.has(g3(M))),...G].map((M)=>{return` <meta ${m5(M)}>`}).join(`
|
|
13829
|
+
`),O=Q.map((M)=>{return` <link ${m5(M)}>`}).join(`
|
|
13830
|
+
`),L=q.map((M)=>{if(M.src)return` <script ${m5(M,(D)=>D==="content")}></script>`;if(M.content)return` <script>${M.content}</script>`;return""}).filter(Boolean).join(`
|
|
13831
|
+
`),F=zO(U,J),V=Object.entries(w).map(([M,D])=>` ${M}="${_1(String(D))}"`).join(""),A=W?` class="${_1(W)}"`:"",{body:R,hoisted:N}=jO(X),T=[H,Z.colorMode?` ${v3(Z.colorMode)}`:"",` <title>${Z.titleIsHtml?z:wO(z)}</title>`,` ${Jq}`,O,L,K?` ${K}`:"",...(Z.styles||[]).map((M)=>` ${M}`),...N.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>
|
|
13713
13832
|
<html${F}>
|
|
13714
13833
|
<head>
|
|
13715
|
-
${
|
|
13834
|
+
${T.join(`
|
|
13716
13835
|
`)}
|
|
13717
13836
|
</head>
|
|
13718
13837
|
<body${A}${V}>
|
|
13719
|
-
${
|
|
13838
|
+
${k.join(`
|
|
13720
13839
|
`)}
|
|
13721
13840
|
</body>
|
|
13722
|
-
</html>`}function
|
|
13841
|
+
</html>`}function h3(X){let $=0;while($<X.length){let Z=X.slice($),Y=Z.match(/^\s+/);if(Y){$+=Y[0].length;continue}if(Z.startsWith("<!--")){let G=X.indexOf("-->",$);if(G===-1)return!1;$=G+3;continue}let J=Z.match(/^<(script|style)\b[^>]*>/i);if(J){let G=`</${J[1].toLowerCase()}>`,Q=X.toLowerCase().indexOf(G,$+J[0].length);if(Q===-1)return!1;$=Q+G.length;continue}return/^<!DOCTYPE\b/i.test(Z)||/^<html[\s>]/i.test(Z)}return!1}function u3(X){return h3(X)}function Uq(X,$={}){let Z=X.lastIndexOf("</head>");if(Z===-1)return X;let{meta:Y=[],link:J=[],script:G=[],headRaw:Q=""}=$,q=X.slice(0,Z),K=[];for(let U of Y){let W=g3(U);if(W&&q.includes(W))continue;K.push(` <meta ${m5(U)}>`)}for(let U of J){if(U.href&&q.includes(`href="${U.href}"`))continue;K.push(` <link ${m5(U)}>`)}for(let U of G)if(U.src){if(q.includes(`src="${U.src}"`))continue;K.push(` <script ${m5(U,(W)=>W==="content")}></script>`)}else if(U.content){if(q.includes(U.content))continue;K.push(` <script>${U.content}</script>`)}if(Q&&!q.includes(Q))K.push(` ${Q}`);if(K.length===0)return X;return`${X.slice(0,Z)}${K.join(`
|
|
13723
13842
|
`)}
|
|
13724
|
-
${X.slice(Z)}`}function
|
|
13843
|
+
${X.slice(Z)}`}function Wq(X,$={},Z={}){if(u3(X))return X;return BO(X,$,Z)}var Jq="<style data-stx-cloak>[x-cloak]{display:none !important}</style>",X$="data-stx-html-attrs",$$="data-stx-html-class",Gq;var wq=E(()=>{x3();Gq=/^[A-Za-z_:][\w:.-]*$/});import l5 from"path";function zq(X){return X.startsWith("http://")||X.startsWith("https://")||X.startsWith("//")}async function jq(X,$,Z){try{let Y;if(X.startsWith("/")){let J=$;for(let G=0;G<5;G++){let Q=l5.join(J,X);if(await Bun.file(Q).exists())return Q;J=l5.dirname(J)}Y=l5.join($,X)}else if(X.startsWith("./")||X.startsWith("../"))Y=l5.resolve($,X);else Y=l5.resolve($,X);if(await Bun.file(Y).exists())return Y;return null}catch{return null}}async function Bq(X,$,Z){let Y=X,J=l5.dirname($),G=/<script\b([^>]*)src=["']([^"']+)["']([^>]*)><\/script>/gi,Q;while((Q=G.exec(Y))!==null){let[U,W,w,z]=Q;if(zq(w))continue;let B=await jq(w,J,$);if(B)try{let j=await Bun.file(B).text();if(Z.add(B),w.endsWith(".ts")||w.endsWith(".tsx")){let H=await Bun.build({entrypoints:[B],target:"browser",minify:!1,define:v0()});if(H.outputs.length>0)j=await H.outputs[0].text()}let _=`<script>
|
|
13725
13844
|
// Source: ${w}
|
|
13726
13845
|
${j}
|
|
13727
|
-
</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(
|
|
13846
|
+
</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(zq(w))continue;if(/rel=["']stylesheet["']/.test(B)||w.endsWith(".css")){let _=await jq(w,J,$);if(_)try{let H=await Bun.file(_).text();Z.add(_);let O=`<style>
|
|
13728
13847
|
/* Source: ${w} */
|
|
13729
13848
|
${H}
|
|
13730
|
-
</style>`;Y=Y.replace(U,O),q.lastIndex=0}catch(H){}}}return Y}var
|
|
13849
|
+
</style>`;Y=Y.replace(U,O),q.lastIndex=0}catch(H){}}}return Y}var _q=E(()=>{V1()});function Z$(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 O=B>=0?w.substring(0,B).trim():w,L=B>=0?w.substring(B+1).trim():void 0;try{let F=O.trim(),V;if(J0(F))V=G0(F,Object.keys($))(...Object.values($));else V=void 0;let A;if(L==="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){X1.log(F instanceof Error?F:Error(String(F)),{directive:"@json"},"error"),Y.lastIndex=G+z.length}}return Z}function Y$(X){return X.replace(/@once\s*([\s\S]*?)@endonce/g,"$1")}function Hq(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,O=B.slice(H),L=B.match(/(\s*)$/),F=L?L[0].length:0,V=O.slice(0,O.length-F),A=V.match(/^<([a-zA-Z][a-zA-Z0-9-]*)(\s[^>]*?)?(\/?)>/),R;if(A){let[N,T,k="",M]=A,D=`<${T}${k} data-stx-memo="${U}"${M}>`;R=B.slice(0,H)+D+V.slice(N.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 d3(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 Oq(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 Lq(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(!_O.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 _O;var m3=E(()=>{z1();F0();_O=/(?:^|\s)(?::else-if|:if|:else|:show|x-else-if|x-if|x-else|x-show|@if|@show)(?:=|\s|\/|>|$)/});function J$(X,$,Z,Y){let J=typeof Z==="boolean"?{enabled:Z,failOnViolation:Z}:Z??{enabled:!1},G=J.allowPatterns??[],Q=[],q=i0(X.replace(/\{\{--[\s\S]*?--\}\}/g,(K)=>K.replace(/[^\n]/g," ")));for(let{pattern:K,message:U,suggestion:W}of HO){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(`
|
|
13731
13850
|
`),B=X.split(`
|
|
13732
13851
|
`),j=[];z.forEach((L,F)=>{if(K.lastIndex=0,K.test(L))j.push(F+1)});let _=j.length>0?` (script line${j.length>1?"s":""} ${j.join(", ")})`:"",H=j.slice(0,3).map((L)=>` ${L} | ${(B[L-1]??"").trim().slice(0,100)}`).join(`
|
|
13733
13852
|
`),O=H?`
|
|
@@ -13735,17 +13854,17 @@ ${H}`:"";Q.push(` \u2717 ${U}${_}
|
|
|
13735
13854
|
\u2192 ${W}${O}`)}}if(Q.length>0&&J.enabled){let K=(w)=>{let z=`${process.cwd()}/`;return w.startsWith(z)?w.slice(z.length):w},W=`[STX] DOM API violation in ${Y&&Y!==$?`${K(Y)} (composed into ${K($)})`:K($)}:
|
|
13736
13855
|
${Q.join(`
|
|
13737
13856
|
`)}
|
|
13738
|
-
Tip: prefer useRef(), navigate(), and composables for component code`;if(J.failOnViolation)throw Error(W);else console.warn(W)}}var
|
|
13739
|
-
`)}function
|
|
13740
|
-
${_.trim()}`)}catch(_){console.warn(`[stx] Failed to load store ${j}:`,_)}if(K.length===0)return J1(
|
|
13857
|
+
Tip: prefer useRef(), navigate(), and composables for component code`;if(J.failOnViolation)throw Error(W);else console.warn(W)}}var HO;var l3=E(()=>{HO=[{pattern:/document\.getElementById\s*\(/g,message:"document.getElementById() is prohibited",suggestion:'Use useRef("name") instead'},{pattern:/document\.querySelector\s*\(/g,message:"document.querySelector() is prohibited",suggestion:'Use useRef("name") instead'},{pattern:/document\.querySelectorAll\s*\(/g,message:"document.querySelectorAll() is prohibited",suggestion:'Use useRef("name") and access children instead'},{pattern:/document\.getElementsBy\w+\s*\(/g,message:"document.getElementsBy*() is prohibited",suggestion:'Use useRef("name") instead'},{pattern:/document\.createElement\s*\(/g,message:"document.createElement() is prohibited",suggestion:"Use template directives or component composition instead"},{pattern:/document\.activeElement(?![A-Za-z])/g,message:"document.activeElement is prohibited",suggestion:"Use useRef() to track focused elements"},{pattern:/document\.title\s*=/g,message:"document.title assignment is prohibited",suggestion:"Use useTitle() from composables"},{pattern:/document\.cookie(?![A-Za-z])/g,message:"document.cookie is prohibited",suggestion:"Use useCookie() from composables"},{pattern:/document\.addEventListener\s*\(/g,message:"document.addEventListener() is prohibited",suggestion:"Use useEventListener() or template @event directives"},{pattern:/window\.location(?![A-Za-z])/g,message:"window.location is prohibited",suggestion:"Use navigate() or useRoute()"},{pattern:/window\.history(?![A-Za-z])/g,message:"window.history is prohibited",suggestion:"Use navigate(), goBack(), goForward()"},{pattern:/window\.addEventListener\s*\(/g,message:"window.addEventListener() is prohibited",suggestion:"Use useEventListener() or @click directives"},{pattern:/(?:\bwindow\.)?localStorage(?![A-Za-z])/g,message:"window.localStorage is prohibited",suggestion:"Use useLocalStorage() from composables \u2014 or @appearanceBootstrap if this must run before first paint, where the runtime does not exist yet"},{pattern:/window\.sessionStorage(?![A-Za-z])/g,message:"window.sessionStorage is prohibited",suggestion:"Use useSessionStorage() from composables"},{pattern:/window\.scrollTo\s*\(/g,message:"window.scrollTo() is prohibited",suggestion:"Use useScroll().scrollTo() from composables"},{pattern:/window\.alert\s*\(/g,message:"window.alert() is prohibited",suggestion:"Use stx modal/dialog APIs instead"},{pattern:/window\.confirm\s*\(/g,message:"window.confirm() is prohibited",suggestion:"Use stx modal/dialog APIs instead"},{pattern:/window\.prompt\s*\(/g,message:"window.prompt() is prohibited",suggestion:"Use stx modal/dialog APIs instead"},{pattern:/(?<!\w)setTimeout\s*\(/g,message:"setTimeout() is prohibited",suggestion:"Use useTimeout() or useDebounce() from composables"},{pattern:/(?<!\w)setInterval\s*\(/g,message:"setInterval() is prohibited",suggestion:"Use useInterval() from composables"},{pattern:/(?<!\w)clearTimeout\s*\(/g,message:"clearTimeout() is prohibited",suggestion:"Use useTimeout().stop() or useDebounce().cancel()"},{pattern:/(?<!\w)clearInterval\s*\(/g,message:"clearInterval() is prohibited",suggestion:"Use useInterval().pause()"},{pattern:/(?<!\w)location\.href\s*=/g,message:"location.href assignment is prohibited",suggestion:"Use navigate() instead"},{pattern:/(?<!\w)location\.assign\s*\(/g,message:"location.assign() is prohibited",suggestion:"Use navigate() instead"},{pattern:/(?<!\w)location\.replace\s*\(/g,message:"location.replace() is prohibited",suggestion:"Use navigate() instead"}]});import OO from"fs";function G$(X){return[...X].sort().map(($)=>{try{let Z=OO.statSync($);return`${$}:${Z.size}:${Z.mtimeMs}`}catch{return`${$}:missing`}}).join(`
|
|
13858
|
+
`)}function Q$(X,$,Z){let Y=X.get($);return Y!==void 0&&Y.signature===Z?Y.value:void 0}function J1(X,$,Z,Y){return X.set($,{signature:Z,value:Y}),Y}var c3=()=>{};var Fq={};o(Fq,{getStoreScript:()=>FO,clearStoreCache:()=>VO});import q$ from"path";function LO(X,$){for(let Z of X.matchAll(/\b(?:const|let|var|function|class)\s+([A-Z_a-z$][\w$]*)/g))if(Z[1])$.add(Z[1]);for(let Z of X.matchAll(/\b(?:const|let|var)\s*\{([^{}]*)\}\s*=/g))for(let Y of(Z[1]??"").split(",")){let G=((Y.includes(":")?Y.split(":").pop():Y)??"").replace(/=.*$/s,"").replace(/^\s*\.\.\./,"").trim();if(/^[A-Z_a-z$][\w$]*$/.test(G))$.add(G)}for(let Z of X.matchAll(/\b(?:const|let|var)\s*\[([^\]]*)\]\s*=/g))for(let Y of(Z[1]??"").split(",")){let J=Y.replace(/=.*$/s,"").replace(/^\s*\.\.\./,"").trim();if(/^[A-Z_a-z$][\w$]*$/.test(J))$.add(J)}}async function FO(X){let $;if(X)$=q$.resolve(X);else{let j=await E1();$=q$.resolve(j.root||process.cwd(),j.storesDir||"stores")}let Z=new Bun.Glob("*.ts"),Y=[];try{for await(let j of Z.scan({cwd:$,absolute:!0})){let _=q$.basename(j,".ts");if(["index","types"].includes(_))continue;if(j.includes(".d.ts"))continue;Y.push(j)}}catch{return J1(c5,$,"",""),null}let J=G$(Y),G=Q$(c5,$,J);if(G!==void 0)return G||null;if(Y.length===0)return J1(c5,$,J,""),null;let Q=[];for(let j of Y){let _=await Bun.file(j).text();Q.push({file:j,hasUseStore:/useStore\s*\(/.test(_)})}Q.sort((j,_)=>{if(j.hasUseStore===_.hasUseStore)return 0;return j.hasUseStore?1:-1});let q=Q.map((j)=>j.file),K=[],U=new Set,W=new Bun.Transpiler({loader:"ts",target:"browser",define:v0()});for(let j of q)try{let _=await Bun.file(j).text(),H=q$.basename(j,".ts");LO(_,U),_=u0(_),_=HX(_),_=_.replace(/^export\s+(default\s+)?/gm,""),_=W.transformSync(_),K.push(`// Store: ${H}
|
|
13859
|
+
${_.trim()}`)}catch(_){console.warn(`[stx] Failed to load store ${j}:`,_)}if(K.length===0)return J1(c5,$,J,""),null;let w=K.join(`
|
|
13741
13860
|
|
|
13742
13861
|
`),B=`;(function(){
|
|
13743
13862
|
var __stx = window.stx || {};
|
|
13744
13863
|
${W1.filter((j)=>!U.has(j)&&new RegExp(`\\b${j}\\b`).test(w)).map((j)=>`var ${j} = __stx[${JSON.stringify(j)}];`).join(`
|
|
13745
13864
|
`)}
|
|
13746
13865
|
${w}
|
|
13747
|
-
})();`;return J1(
|
|
13748
|
-
${Q.transformSync(_).trim()}`);for(let O of H)U.add(O)}catch(O){console.warn(`[stx] framework composable ${
|
|
13866
|
+
})();`;return J1(c5,$,J,B),B}function VO(){c5.clear()}var c5;var Vq=E(()=>{A1();V1();a0();c3();c5=new Map});var p3,OE;var Aq=E(()=>{p3=["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"],OE=new Set(p3)});var Tq={};o(Tq,{selectComposableFiles:()=>Rq,referencedFrameworkComposables:()=>Nq,getFrameworkComposableScript:()=>TO,clearFrameworkComposableCache:()=>RO,__setRuntimeOwnedForTest:()=>MO});import K$ from"path";function RO(){r7.clear()}function Rq(X){let $=new Map;for(let Z of X){let Y=K$.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 NO(X,$){let Z=$.replace(/[$()*+.?[\\\]^{|}-]/g,"\\$&");return new RegExp(`(?:^|[^\\w$.])(?:const|let|var|function|class)\\s+${Z}\\b`).test(X)}function Nq(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 AO){if(i3.has(Y))continue;let J=Y.replace(/[$()*+.?[\\\]^{|}-]/g,"\\$&");if(new RegExp(`(^|[^\\w$.])${J}\\s*\\(`).test($))Z.push(Y)}return Z.sort()}async function TO(X,$){let Z=Nq(X);if(Z.length===0)return null;let Y=$??K$.join(import.meta.dir,"composables"),J=`${Y}\x00${Z.join(",")}`,G=r7.get(J);if(G!==void 0)return G||null;let Q=new Bun.Transpiler({loader:"ts",target:"browser",define:v0()}),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 r7.set(J,""),null}W=Rq(W);for(let j of W){let _;try{_=await Bun.file(j).text()}catch{continue}let H=[];try{H=Q.scan(_).exports.filter((O)=>O!=="default")}catch{continue}if(!H.some((O)=>q.has(O)))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(`// ${K$.basename(j).replace(/\.[jt]s$/,"")}
|
|
13867
|
+
${Q.transformSync(_).trim()}`);for(let O of H)U.add(O)}catch(O){console.warn(`[stx] framework composable ${K$.basename(j)} could not be bundled:`,O)}}let w=Z.filter((j)=>!U.has(j)&&!NO(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 r7.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(`
|
|
13749
13868
|
`),B=`<script data-stx-framework-composables>
|
|
13750
13869
|
;(function(){
|
|
13751
13870
|
var __s = window.stx = window.stx || {};
|
|
@@ -13754,8 +13873,8 @@ ${K.join(`
|
|
|
13754
13873
|
`)}
|
|
13755
13874
|
${z}
|
|
13756
13875
|
})();
|
|
13757
|
-
</script>`;return
|
|
13758
|
-
${_.trim()}`)}catch(_){console.warn(`[stx] Failed to load composable ${j}:`,_)}if(Q.length===0||q.size===0)return J1(
|
|
13876
|
+
</script>`;return r7.set(J,B),B}function MO(X){i3.clear();for(let $ of X)i3.add($)}var r7,i3,AO;var Mq=E(()=>{V1();Aq();r7=new Map,i3=new Set,AO=new Set(p3)});var Iq={};o(Iq,{getComposableScript:()=>DO,clearComposableCache:()=>yO});import o7 from"path";function kq(X){let $=o7.basename(X,".ts");return $==="index"||$==="types"||X.endsWith(".d.ts")}async function IO(X){if(X)return o7.resolve(X);let $=`<default>:${process.cwd()}`,Z=n3.get($);if(Z!==void 0)return Z;let Y=await EO();if(Y!==null)n3.set($,Y);return Y}async function EO(){let X=await E1(),$=X.root||process.cwd(),Z=X.composablesDir;if(Z)return o7.resolve($,Z);for(let Y of kO){let J=o7.resolve($,Y);try{let G=new Bun.Glob("**/*.ts");for await(let Q of G.scan({cwd:J,absolute:!0}))if(!kq(Q))return J}catch{}}return null}async function DO(X){let $=await IO(X);if(!$)return null;let Z=[];try{let j=new Bun.Glob("**/*.ts");for await(let _ of j.scan({cwd:$,absolute:!0})){if(kq(_))continue;Z.push(_)}}catch{return J1(p5,$,"",""),null}let Y=G$(Z),J=Q$(p5,$,Y);if(J!==void 0)return J||null;if(Z.length===0)return J1(p5,$,Y,""),null;Z.sort();let G=new Bun.Transpiler({loader:"ts",target:"browser",define:v0()}),Q=[],q=new Set,K=new Set;for(let j of Z)try{let _=await Bun.file(j).text(),H=o7.basename(j,".ts");for(let O of _.matchAll(/\b(?:const|let|var|function|class)\s+([A-Z_a-z$][\w$]*)/g))if(O[1])K.add(O[1]);try{for(let O of G.scan(_).exports)if(O!=="default")q.add(O)}catch{}_=u0(_),_=HX(_),_=_.replace(/^export\s+(default\s+)?/gm,""),_=G.transformSync(_),Q.push(`// Composable: ${H}
|
|
13877
|
+
${_.trim()}`)}catch(_){console.warn(`[stx] Failed to load composable ${j}:`,_)}if(Q.length===0||q.size===0)return J1(p5,$,Y,""),null;let U=[...q].map((j)=>` try { __c[${JSON.stringify(j)}] = ${j}; } catch (e) {}`).join(`
|
|
13759
13878
|
`),W=JSON.stringify([...q]),w=Q.join(`
|
|
13760
13879
|
|
|
13761
13880
|
`),B=`;(function(){
|
|
@@ -13779,7 +13898,7 @@ ${U}
|
|
|
13779
13898
|
}
|
|
13780
13899
|
window[__n] = __c[__n];
|
|
13781
13900
|
}
|
|
13782
|
-
})();`;return J1(
|
|
13901
|
+
})();`;return J1(p5,$,Y,B),B}function yO(){p5.clear(),n3.clear()}var p5,n3,kO;var Eq=E(()=>{A1();V1();c3();a0();p5=new Map,n3=new Map,kO=["composables","functions"]});var yq={};o(yq,{processDeferDirectives:()=>vO});function bO(){return`stx-defer-${++Dq}`}function SO(X){let $=X.match(/on:\s*['"]?(\w+)(?:\((\d+)\))?['"]?/);if($)return{trigger:$[1],value:$[2]};return{trigger:"immediate"}}function CO(X,$,Z){let{trigger:Y,value:J}=SO($),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 PO(X,$){let{trigger:Z,triggerValue:Y}=$,J;switch(Z){case"visible":J=`
|
|
13783
13902
|
const observer = new IntersectionObserver((entries) => {
|
|
13784
13903
|
if (entries[0].isIntersecting) {
|
|
13785
13904
|
observer.disconnect();
|
|
@@ -13852,7 +13971,7 @@ else {
|
|
|
13852
13971
|
${J}
|
|
13853
13972
|
})();
|
|
13854
13973
|
</script>
|
|
13855
|
-
`}function
|
|
13974
|
+
`}function vO(X,$,Z){Dq=0;let Y=/@defer\s*\(([^)]*)\)\s*([\s\S]*?)@enddefer/g;return X.replace(Y,(J,G,Q)=>{let q=bO(),K=CO(J,G,Q),U=K.placeholder?`<div data-defer-placeholder>${K.placeholder}</div>`:"",W=K.loading?`<div data-defer-loading style="display: none;">${K.loading}</div>`:'<div data-defer-loading style="display: none;"></div>',w=K.error?`<div data-defer-error style="display: none;">${K.error}</div>`:"",z=`<div data-defer-content style="display: none;">${K.content}</div>`,B=PO(q,K);return`
|
|
13856
13975
|
<div id="${q}" class="stx-defer" data-defer-trigger="${K.trigger}">
|
|
13857
13976
|
${U}
|
|
13858
13977
|
${W}
|
|
@@ -13860,7 +13979,7 @@ else {
|
|
|
13860
13979
|
${w}
|
|
13861
13980
|
</div>
|
|
13862
13981
|
${B}
|
|
13863
|
-
`})}var
|
|
13982
|
+
`})}var Dq=0;var Sq={};o(Sq,{processTeleportDirectives:()=>hO,ensureTeleportTargets:()=>uO});function xO(){return`stx-teleport-${++bq}`}function fO(X){let $=X.split(",").map((J)=>J.trim()),Z=$[0].replace(/['"]/g,""),Y;for(let J=1;J<$.length;J++){let G=$[J].match(/disabled:\s*(.+)/);if(G)Y=G[1].trim()}return{target:Z,disabled:Y}}function gO(X,$){return`
|
|
13864
13983
|
<script>
|
|
13865
13984
|
(function() {
|
|
13866
13985
|
const source = document.getElementById('${X}');
|
|
@@ -13906,12 +14025,12 @@ else {
|
|
|
13906
14025
|
});
|
|
13907
14026
|
})();
|
|
13908
14027
|
</script>
|
|
13909
|
-
`}function
|
|
14028
|
+
`}function hO(X,$,Z){bq=0;let Y=/@teleport\s*\(([^)]+)\)\s*([\s\S]*?)@endteleport/g;return X.replace(Y,(J,G,Q)=>{let q=xO(),{target:K,disabled:U}=fO(G),W=Q.trim();if(U)try{let z=!1;if(U==="true")z=!0;else if(U==="false")z=!1;else if(U in $)z=Boolean($[U]);if(z)return`<div class="stx-teleport-inline" data-teleport-disabled>${W}</div>`}catch{}let w=gO(q,K);return`
|
|
13910
14029
|
<div id="${q}" class="stx-teleport-source" style="display: none;">
|
|
13911
14030
|
<template>${W}</template>
|
|
13912
14031
|
</div>
|
|
13913
14032
|
${w}
|
|
13914
|
-
`})}function
|
|
14033
|
+
`})}function uO(){return`
|
|
13915
14034
|
<script>
|
|
13916
14035
|
(function() {
|
|
13917
14036
|
// Common teleport targets
|
|
@@ -13928,7 +14047,7 @@ else {
|
|
|
13928
14047
|
});
|
|
13929
14048
|
})();
|
|
13930
14049
|
</script>
|
|
13931
|
-
`}var
|
|
14050
|
+
`}var bq=0;var xq={};o(xq,{processTransitionDirectives:()=>cO,processTransitionAttributes:()=>rO,performLeave:()=>lO,performEnter:()=>mO,generateTransitionRuntime:()=>nO,generateTransitionCSS:()=>iO});function Cq(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 dO(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 Pq(X,$){return new Promise((Z)=>{let Y=$??dO(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 vq(X){X.offsetHeight}async function mO(X,$={}){let Z=$.name||"stx",Y=Cq(Z,$),J=typeof $.duration==="object"?$.duration.enter:$.duration;if($.onBeforeEnter?.(X),X.classList.add(Y.enterFrom),X.classList.add(Y.enterActive),vq(X),X.classList.remove(Y.enterFrom),X.classList.add(Y.enterTo),$.onEnter)await new Promise((G)=>{$.onEnter(X,G)});else await Pq(X,J);X.classList.remove(Y.enterActive),X.classList.remove(Y.enterTo),$.onAfterEnter?.(X)}async function lO(X,$={}){let Z=$.name||"stx",Y=Cq(Z,$),J=typeof $.duration==="object"?$.duration.leave:$.duration;if($.onBeforeLeave?.(X),X.classList.add(Y.leaveFrom),X.classList.add(Y.leaveActive),vq(X),X.classList.remove(Y.leaveFrom),X.classList.add(Y.leaveTo),$.onLeave)await new Promise((G)=>{$.onLeave(X,G)});else await Pq(X,J);X.classList.remove(Y.leaveActive),X.classList.remove(Y.leaveTo),$.onAfterLeave?.(X)}function cO(X,$={},Z){let Y=/@transition\s*\(([^)]*)\)([\s\S]*?)@endtransition/gi;return X.replace(Y,(J,G,Q)=>{let q=pO(G),K=q.name||"stx",U=q.duration||300,W=`stx-transition-${Math.random().toString(36).slice(2,9)}`;return`
|
|
13932
14051
|
<div
|
|
13933
14052
|
class="stx-transition-wrapper"
|
|
13934
14053
|
data-transition="${K}"
|
|
@@ -13970,7 +14089,7 @@ else {
|
|
|
13970
14089
|
});
|
|
13971
14090
|
})();
|
|
13972
14091
|
</script>
|
|
13973
|
-
`})}function
|
|
14092
|
+
`})}function pO(X){let $={},Z=/(\w+)\s*:\s*(?:'([^']*)'|"([^"]*)"|(\d+)|(\w+))/g,Y;while((Y=Z.exec(X))!==null){let J=Y[1],G=Y[2]||Y[3]||Y[4]||Y[5];switch(J){case"name":$.name=G;break;case"duration":$.duration=parseInt(G,10);break;case"mode":$.mode=G;break;case"easing":$.easing=G;break}}return $}function iO(){return`
|
|
13974
14093
|
/* STX Transition Presets */
|
|
13975
14094
|
|
|
13976
14095
|
/* Fade */
|
|
@@ -14157,7 +14276,7 @@ else {
|
|
|
14157
14276
|
opacity: 1;
|
|
14158
14277
|
max-height: 1000px;
|
|
14159
14278
|
}
|
|
14160
|
-
`}function
|
|
14279
|
+
`}function nO(){return`
|
|
14161
14280
|
// STX Transition Runtime
|
|
14162
14281
|
(function() {
|
|
14163
14282
|
if (typeof window === 'undefined') return;
|
|
@@ -14246,7 +14365,7 @@ else {
|
|
|
14246
14365
|
|
|
14247
14366
|
console.log('[stx] Transition runtime initialized');
|
|
14248
14367
|
})();
|
|
14249
|
-
`}function
|
|
14368
|
+
`}function rO(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 gq={};o(gq,{withErrorBoundary:()=>fq,processErrorBoundaryDirectives:()=>aO,generateErrorBoundaryRuntime:()=>ZL,generateErrorBoundaryCSS:()=>$L,createErrorBoundary:()=>XL});function sO(){return`eb-${++oO}-${Date.now().toString(36)}`}function aO(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=tO(G||"");return eO(K,Q.trim(),q.trim(),U)})}function tO(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 eO(X,$,Z,Y){let J=Y.logErrors!==!1;return`
|
|
14250
14369
|
<div class="stx-error-boundary" data-boundary-id="${X}" data-has-error="false">
|
|
14251
14370
|
<div class="stx-error-boundary-content" data-boundary-content="${X}">
|
|
14252
14371
|
${$}
|
|
@@ -14366,7 +14485,7 @@ else {
|
|
|
14366
14485
|
};
|
|
14367
14486
|
})();
|
|
14368
14487
|
</script>
|
|
14369
|
-
`}async function
|
|
14488
|
+
`}async function fq(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 XL(X,$={}){let Z=$.onError?(Y)=>$.onError(Y,{timestamp:Date.now(),boundaryId:"ssr"}):void 0;return(Y)=>fq(Y,X,Z)}function $L(){return`
|
|
14370
14489
|
/* STX Error Boundary Styles */
|
|
14371
14490
|
.stx-error-boundary {
|
|
14372
14491
|
position: relative;
|
|
@@ -14410,7 +14529,7 @@ else {
|
|
|
14410
14529
|
color: #fecaca;
|
|
14411
14530
|
}
|
|
14412
14531
|
}
|
|
14413
|
-
`}function
|
|
14532
|
+
`}function ZL(){return`
|
|
14414
14533
|
// STX Error Boundary Runtime
|
|
14415
14534
|
(function() {
|
|
14416
14535
|
if (typeof window === 'undefined') return;
|
|
@@ -14475,7 +14594,7 @@ else {
|
|
|
14475
14594
|
|
|
14476
14595
|
console.log('[stx] Error boundary runtime initialized');
|
|
14477
14596
|
})();
|
|
14478
|
-
`}var
|
|
14597
|
+
`}var oO=0;var hq={};o(hq,{renderSSRSuspense:()=>UL,processSuspenseDirectives:()=>GL,generateSuspenseRuntime:()=>wL,generateSuspenseCSS:()=>WL,createSSRSuspense:()=>KL});function JL(){return`suspense-${++YL}-${Date.now().toString(36)}`}function GL(X,$={},Z){let Y=/@suspense(?:\s*\(([^)]*)\))?\s*([\s\S]*?)@fallback\s*([\s\S]*?)@endsuspense/gi;return X.replace(Y,(J,G,Q,q)=>{let K=JL(),U=QL(G||"");return qL(K,Q.trim(),q.trim(),U)})}function QL(X){let $={},Z=/(\w+)\s*:\s*(?:'([^']*)'|"([^"]*)"|(\d+)|(\w+))/g,Y;while((Y=Z.exec(X))!==null){let J=Y[1],G=Y[2]||Y[3],Q=Y[4];switch(J){case"id":$.id=G;break;case"timeout":$.timeout=Q?parseInt(Q,10):void 0;break}}return $}function qL(X,$,Z,Y){let J=Y.timeout||30000,G=Y.id||X;return`
|
|
14479
14598
|
<div class="stx-suspense" data-suspense-id="${X}" data-custom-id="${G}" data-status="pending">
|
|
14480
14599
|
<div class="stx-suspense-fallback" data-suspense-fallback="${X}">
|
|
14481
14600
|
${Z}
|
|
@@ -14665,7 +14784,7 @@ else {
|
|
|
14665
14784
|
}, 0);
|
|
14666
14785
|
})();
|
|
14667
14786
|
</script>
|
|
14668
|
-
`}function
|
|
14787
|
+
`}function KL(X,$,Z){return{id:X,fallback:Z,content:$}}async function UL(X){let $=X.map((Y)=>`
|
|
14669
14788
|
<div id="stx-ssr-suspense-${Y.id}" class="stx-ssr-suspense">
|
|
14670
14789
|
${Y.fallback}
|
|
14671
14790
|
</div>
|
|
@@ -14690,7 +14809,7 @@ else {
|
|
|
14690
14809
|
}
|
|
14691
14810
|
})();
|
|
14692
14811
|
</script>
|
|
14693
|
-
`}}return{initial:$,streaming:Z()}}function
|
|
14812
|
+
`}}return{initial:$,streaming:Z()}}function WL(){return`
|
|
14694
14813
|
/* STX Suspense Styles */
|
|
14695
14814
|
.stx-suspense {
|
|
14696
14815
|
position: relative;
|
|
@@ -14746,7 +14865,7 @@ else {
|
|
|
14746
14865
|
background-size: 200% 100%;
|
|
14747
14866
|
}
|
|
14748
14867
|
}
|
|
14749
|
-
`}function
|
|
14868
|
+
`}function wL(){return`
|
|
14750
14869
|
// STX Suspense Runtime
|
|
14751
14870
|
(function() {
|
|
14752
14871
|
if (typeof window === 'undefined') return;
|
|
@@ -14813,7 +14932,7 @@ else {
|
|
|
14813
14932
|
|
|
14814
14933
|
console.log('[stx] Suspense runtime initialized');
|
|
14815
14934
|
})();
|
|
14816
|
-
`}var
|
|
14935
|
+
`}var YL=0;var lq={};o(lq,{processAsyncDirectives:()=>jL,isAsyncComponent:()=>_L,generateAsyncComponentRuntime:()=>OL,generateAsyncComponentCSS:()=>HL,defineAsyncComponent:()=>BL});function uq(){return`async-${++zL}-${Date.now().toString(36)}`}function jL(X,$={},Z){let Y=/@async\s*\(([^)]*)\)\s*([\s\S]*?)@error\s*([\s\S]*?)@endasync/gi,J=/@async\s*\(([^)]*)\)\s*([\s\S]*?)@endasync/gi,G=X;return G=G.replace(Y,(Q,q,K,U)=>{let W=uq(),w=dq(q);return mq(W,w,K.trim(),U.trim())}),G=G.replace(J,(Q,q,K)=>{let U=uq(),W=dq(q);return mq(U,W,K.trim(),'<div class="stx-async-error">Failed to load component</div>')}),G}function dq(X){let $={component:"",timeout:30000,delay:200,suspensible:!0,retries:0},Z=/(\w+)\s*:\s*(?:'([^']*)'|"([^"]*)"|(\d+)|(\w+))/g,Y;while((Y=Z.exec(X))!==null){let J=Y[1],G=Y[2]||Y[3],Q=Y[4],q=Y[5];switch(J){case"component":$.component=G||q||"";break;case"timeout":$.timeout=Q?parseInt(Q,10):30000;break;case"delay":$.delay=Q?parseInt(Q,10):200;break;case"suspensible":$.suspensible=q==="true";break;case"retries":$.retries=Q?parseInt(Q,10):0;break;case"loadingComponent":$.loadingComponent=G||q;break;case"errorComponent":$.errorComponent=G||q;break}}return $}function mq(X,$,Z,Y){let{component:J,timeout:G,delay:Q,suspensible:q,retries:K}=$;return`
|
|
14817
14936
|
<div class="stx-async-component" data-async-id="${X}" data-component="${J}" data-status="pending">
|
|
14818
14937
|
<div class="stx-async-loading" data-async-loading="${X}">
|
|
14819
14938
|
${Z}
|
|
@@ -15040,7 +15159,7 @@ catch (error) {
|
|
|
15040
15159
|
loadComponent();
|
|
15041
15160
|
})();
|
|
15042
15161
|
</script>
|
|
15043
|
-
`}function
|
|
15162
|
+
`}function BL(X){return{__asyncComponent:!0,...typeof X==="function"?{loader:X}:X}}function _L(X){return typeof X==="object"&&X!==null&&"__asyncComponent"in X&&X.__asyncComponent===!0}function HL(){return`
|
|
15044
15163
|
/* STX Async Component Styles */
|
|
15045
15164
|
.stx-async-component {
|
|
15046
15165
|
position: relative;
|
|
@@ -15114,7 +15233,7 @@ catch (error) {
|
|
|
15114
15233
|
background-size: 200% 100%;
|
|
15115
15234
|
}
|
|
15116
15235
|
}
|
|
15117
|
-
`}function
|
|
15236
|
+
`}function OL(){return`
|
|
15118
15237
|
// STX Async Component Runtime
|
|
15119
15238
|
(function() {
|
|
15120
15239
|
if (typeof window === 'undefined') return;
|
|
@@ -15168,7 +15287,7 @@ catch (error) {
|
|
|
15168
15287
|
|
|
15169
15288
|
console.log('[stx] Async component runtime initialized');
|
|
15170
15289
|
})();
|
|
15171
|
-
`}var
|
|
15290
|
+
`}var zL=0;var pq={};o(pq,{shouldCacheComponent:()=>NL,processKeepAliveDirectives:()=>FL,onDeactivated:()=>IL,onActivated:()=>kL,generateKeepAliveRuntime:()=>ML,generateKeepAliveCSS:()=>TL,createKeepAliveCache:()=>RL});function cq(){return`keep-alive-${++LL}-${Date.now().toString(36)}`}function FL(X,$={},Z){let Y=/@keepAlive(?:\s*\(([^)]*)\))?\s*([\s\S]*?)@endkeepAlive/gi;return X.replace(Y,(J,G,Q)=>{let q=cq(),K=VL(G||"");return AL(q,Q.trim(),K)})}function VL(X){let $={max:10},Z=/(\w+)\s*:\s*(?:'([^']*)'|"([^"]*)"|(\d+)|(\w+))/g,Y;while((Y=Z.exec(X))!==null){let J=Y[1],G=Y[2]||Y[3],Q=Y[4];switch(J){case"max":$.max=Q?parseInt(Q,10):10;break;case"include":$.include=G;break;case"exclude":$.exclude=G;break;case"id":$.id=G;break}}return $}function AL(X,$,Z){let{max:Y,include:J,exclude:G}=Z,Q=Z.id||X;return`
|
|
15172
15291
|
<div class="stx-keep-alive" data-keep-alive-id="${X}" data-custom-id="${Q}">
|
|
15173
15292
|
<div class="stx-keep-alive-content" data-keep-alive-content="${X}">
|
|
15174
15293
|
${$}
|
|
@@ -15455,7 +15574,7 @@ else {
|
|
|
15455
15574
|
});
|
|
15456
15575
|
})();
|
|
15457
15576
|
</script>
|
|
15458
|
-
`}function
|
|
15577
|
+
`}function RL(X={}){return{id:X.id||cq(),cache:new Map,max:X.max||10,include:X.include?X.include.split(",").map((Z)=>Z.trim()):null,exclude:X.exclude?X.exclude.split(",").map((Z)=>Z.trim()):null}}function NL(X,$){if($.exclude&&$.exclude.includes(X))return!1;if($.include&&!$.include.includes(X))return!1;return!0}function TL(){return`
|
|
15459
15578
|
/* STX Keep-Alive Styles */
|
|
15460
15579
|
.stx-keep-alive {
|
|
15461
15580
|
position: relative;
|
|
@@ -15480,7 +15599,7 @@ else {
|
|
|
15480
15599
|
.stx-keep-alive-content > [data-activated] {
|
|
15481
15600
|
opacity: 1;
|
|
15482
15601
|
}
|
|
15483
|
-
`}function
|
|
15602
|
+
`}function ML(){return`
|
|
15484
15603
|
// STX Keep-Alive Runtime
|
|
15485
15604
|
(function() {
|
|
15486
15605
|
if (typeof window === 'undefined') return;
|
|
@@ -15516,7 +15635,7 @@ else {
|
|
|
15516
15635
|
|
|
15517
15636
|
console.log('[stx] Keep-alive runtime initialized');
|
|
15518
15637
|
})();
|
|
15519
|
-
`}function
|
|
15638
|
+
`}function kL(X){if(typeof document<"u")document.addEventListener("stx:activated",($)=>{X($.detail)})}function IL(X){if(typeof document<"u")document.addEventListener("stx:deactivated",($)=>{X($.detail)})}var LL=0;var sq={};o(sq,{useVirtualList:()=>nq,processVirtualListDirectives:()=>o3,processVirtualGridDirectives:()=>oq,processInfiniteListDirectives:()=>rq,generateVirtualListCSS:()=>iq,default:()=>EL,createVirtualList:()=>r3});function r3(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),N=Math.ceil(Y/Z),T=Math.min(U.length-1,R+N+J*2);return{startIndex:R,endIndex:T}}function B(){let R=0,N=0,T=U.length-1;for(let k=0;k<U.length;k++){let M=w.get(k)||q;if(R+M>W){N=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){T=Math.min(U.length-1,k+J);break}}return{startIndex:N,endIndex:T}}function j(){if(Q){let R=0;for(let N=0;N<U.length;N++)R+=w.get(N)||q;return R}return U.length*Z}function _(R){if(Q){let N=0;for(let T=0;T<R;T++)N+=w.get(T)||q;return N}return R*Z}function H(){let{startIndex:R,endIndex:N}=z();return{startIndex:R,endIndex:N,scrollTop:W,totalHeight:j(),visibleItems:U.slice(R,N+1),itemHeights:new Map(w)}}function O(R,N="auto"){let T=_(R);L(T,N)}function L(R,N="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:O,scrollToOffset:L,getState:H,refresh:F,setItems:V,destroy:A}}function o3(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 L=Q.trim(),F=Function(`return ${L}`)();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 L=j;L<=_&&L<U.length;L++){let F=U[L],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(L));H+=`
|
|
15520
15639
|
<div class="virtual-item ${W.itemClass||""}"
|
|
15521
15640
|
style="position: absolute; top: ${L*W.itemHeight}px; height: ${W.itemHeight}px; width: 100%;"
|
|
15522
15641
|
data-index="${L}">
|
|
@@ -15593,7 +15712,7 @@ else {
|
|
|
15593
15712
|
};
|
|
15594
15713
|
})();
|
|
15595
15714
|
</script>
|
|
15596
|
-
`})}function
|
|
15715
|
+
`})}function iq(){return`
|
|
15597
15716
|
.virtual-list-container {
|
|
15598
15717
|
position: relative;
|
|
15599
15718
|
overflow-y: auto;
|
|
@@ -15641,7 +15760,7 @@ else {
|
|
|
15641
15760
|
0% { background-position: 200% 0; }
|
|
15642
15761
|
100% { background-position: -200% 0; }
|
|
15643
15762
|
}
|
|
15644
|
-
`}function
|
|
15763
|
+
`}function nq(X,$){let Z=null,Y=()=>{if(!Z)Z=r3(X(),$);return Z};return{visibleItems:()=>{return Y().getState().visibleItems},totalHeight:()=>{return Y().getState().totalHeight},containerProps:()=>({style:{height:`${$.containerHeight}px`,overflow:"auto",position:"relative"},onScroll:(J)=>{let G=J.target;if(Z)Z.scrollToOffset(G.scrollTop)}}),itemProps:(J)=>({style:{position:"absolute",top:`${J*$.itemHeight}px`,height:`${$.itemHeight}px`,width:"100%"},"data-index":J}),scrollToIndex:(J)=>{Y().scrollToIndex(J)}}}function rq(X,$={},Z){let Y=/@infiniteList\s*\(\s*([^,]+)\s*(?:,\s*(\{[^}]*\}))?\s*\)\s*([\s\S]*?)@loading\s*([\s\S]*?)@endinfiniteList/gi;return X.replace(Y,(J,G,Q,q,K)=>{let U=G.trim(),W=$[U];if(!W||!Array.isArray(W))return`<!-- infiniteList: items "${U}" not found or not an array -->`;let w={itemHeight:50,containerHeight:400,overscan:3,threshold:100,hasMore:!0};if(Q)try{let j=Function(`return ${Q.trim()}`)();w={...w,...j}}catch{}let z=`ilist-${Math.random().toString(36).substring(2,9)}`,B=o3(`@virtualList(${U}, ${JSON.stringify({itemHeight:w.itemHeight,containerHeight:w.containerHeight,overscan:w.overscan,containerClass:w.containerClass})})${q}@endvirtualList`,$);return B=B.replace("</script>",`
|
|
15645
15764
|
// Infinite scroll detection
|
|
15646
15765
|
container.addEventListener('scroll', function() {
|
|
15647
15766
|
const scrollBottom = container.scrollTop + container.clientHeight;
|
|
@@ -15659,11 +15778,11 @@ else {
|
|
|
15659
15778
|
${K}
|
|
15660
15779
|
</div>
|
|
15661
15780
|
</div>
|
|
15662
|
-
`})}function
|
|
15781
|
+
`})}function oq(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,O=Math.min(z-1,j+_),L="";for(let F=H;F<=O;F++)for(let V=0;V<W.columns;V++){let A=F*W.columns+V;if(A>=U.length)break;let R=U[A],N=V*(100/W.columns),T=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,D)=>{if(typeof R==="object"&&R!==null)return String(R[D]??"");return""}).replace(/\{\{\s*index\s*\}\}/g,String(A));L+=`
|
|
15663
15782
|
<div class="virtual-grid-item"
|
|
15664
|
-
style="position: absolute; top: ${
|
|
15783
|
+
style="position: absolute; top: ${T}px; left: ${N}%; width: calc(${100/W.columns}% - ${W.gap||0}px); height: ${W.rowHeight}px;"
|
|
15665
15784
|
data-index="${A}">
|
|
15666
|
-
${
|
|
15785
|
+
${k}
|
|
15667
15786
|
</div>`}return`
|
|
15668
15787
|
<div id="${w}"
|
|
15669
15788
|
class="virtual-grid-container"
|
|
@@ -15729,7 +15848,7 @@ else {
|
|
|
15729
15848
|
});
|
|
15730
15849
|
})();
|
|
15731
15850
|
</script>
|
|
15732
|
-
`})}var
|
|
15851
|
+
`})}var EL;var aq=E(()=>{EL={createVirtualList:r3,processVirtualListDirectives:o3,processInfiniteListDirectives:rq,processVirtualGridDirectives:oq,generateVirtualListCSS:iq,useVirtualList:nq}});function tq(){return`<script data-stx-hydration-runtime>
|
|
15733
15852
|
(function() {
|
|
15734
15853
|
'use strict';
|
|
15735
15854
|
|
|
@@ -15889,7 +16008,7 @@ else {
|
|
|
15889
16008
|
stxIslands.initIslands();
|
|
15890
16009
|
}
|
|
15891
16010
|
})();
|
|
15892
|
-
</script>`}function
|
|
16011
|
+
</script>`}function eq(X){let $=X.match(/<([A-Z][a-zA-Z0-9]+)[\s/>]/);if($)return $[1];let Z=X.match(/<([a-z][a-z0-9]*-[a-z0-9-]+)[\s/>]/);if(Z)return Z[1];return null}function XK(X,$){let Z={},Y=/:([a-zA-Z_][\w-]*)\s*=\s*"([^"]+)"/g,J;while((J=Y.exec(X))!==null){let G=J[1],Q=J[2];if(Q in $)Z[G]=$[Q];else Z[G]=Q}return Z}var wK={};o(wK,{processStaticDirectives:()=>UK,processPartialHydrationDirectives:()=>ZK,onHydrated:()=>KK,isHydrated:()=>qK,hydrateIsland:()=>JK,hydrateByStrategy:()=>GK,hydrateAll:()=>QK,generatePartialHydrationCSS:()=>YK,generateIslandManifest:()=>WK,default:()=>xL,createIslandRegistry:()=>$K});function $K(){let X=new Map;return{islands:X,register($){X.set($.id,$)},get($){return X.get($)},async hydrate($){let Z=X.get($);if(!Z||Z.hydrated)return;if(Z.hydrated=!0,typeof window<"u"&&typeof window.dispatchEvent==="function")window.dispatchEvent(new CustomEvent("stx:hydrate",{detail:{id:$,component:Z.component}}))},async hydrateAll(){let $=Array.from(X.values()).filter((Z)=>!Z.hydrated).map((Z)=>this.hydrate(Z.id));await Promise.all($)}}}function DL(X){return`
|
|
15893
16012
|
<script data-hydrate="${X}">
|
|
15894
16013
|
(function() {
|
|
15895
16014
|
const island = document.querySelector('[data-island="${X}"]');
|
|
@@ -15900,7 +16019,7 @@ else {
|
|
|
15900
16019
|
island.dispatchEvent(new CustomEvent('stx:hydrated', { bubbles: true }));
|
|
15901
16020
|
})();
|
|
15902
16021
|
</script>
|
|
15903
|
-
`}function
|
|
16022
|
+
`}function yL(X,$){let Z=$.timeout||2000,Y=$.priority||"low";return`
|
|
15904
16023
|
<script data-hydrate="${X}">
|
|
15905
16024
|
(function() {
|
|
15906
16025
|
const island = document.querySelector('[data-island="${X}"]');
|
|
@@ -15936,7 +16055,7 @@ else {
|
|
|
15936
16055
|
}
|
|
15937
16056
|
})();
|
|
15938
16057
|
</script>
|
|
15939
|
-
`}function
|
|
16058
|
+
`}function bL(X,$){let Z=$.rootMargin||"0px",Y=$.threshold||0;return`
|
|
15940
16059
|
<script data-hydrate="${X}">
|
|
15941
16060
|
(function() {
|
|
15942
16061
|
const island = document.querySelector('[data-island="${X}"]');
|
|
@@ -15969,7 +16088,7 @@ else {
|
|
|
15969
16088
|
}
|
|
15970
16089
|
})();
|
|
15971
16090
|
</script>
|
|
15972
|
-
`}function
|
|
16091
|
+
`}function SL(X,$){let Z=$.media||"(min-width: 768px)";return`
|
|
15973
16092
|
<script data-hydrate="${X}">
|
|
15974
16093
|
(function() {
|
|
15975
16094
|
const island = document.querySelector('[data-island="${X}"]');
|
|
@@ -15998,7 +16117,7 @@ else {
|
|
|
15998
16117
|
}
|
|
15999
16118
|
})();
|
|
16000
16119
|
</script>
|
|
16001
|
-
`}function
|
|
16120
|
+
`}function CL(X){return`
|
|
16002
16121
|
<script data-hydrate="${X}">
|
|
16003
16122
|
(function() {
|
|
16004
16123
|
const island = document.querySelector('[data-island="${X}"]');
|
|
@@ -16020,7 +16139,7 @@ else {
|
|
|
16020
16139
|
events.forEach(e => island.addEventListener(e, handler, { once: true, passive: true }));
|
|
16021
16140
|
})();
|
|
16022
16141
|
</script>
|
|
16023
|
-
`}function
|
|
16142
|
+
`}function PL(X,$){let Z=$.event||"stx:activate";return`
|
|
16024
16143
|
<script data-hydrate="${X}">
|
|
16025
16144
|
(function() {
|
|
16026
16145
|
const island = document.querySelector('[data-island="${X}"]');
|
|
@@ -16041,9 +16160,9 @@ else {
|
|
|
16041
16160
|
});
|
|
16042
16161
|
})();
|
|
16043
16162
|
</script>
|
|
16044
|
-
`}function
|
|
16045
|
-
`+
|
|
16046
|
-
<script type="application/json" data-island-props="${K}">${JSON.stringify(W)}</script>`:"",j="";switch($){case"load":j=
|
|
16163
|
+
`}function ZK(X,$={},Z){let Y=X,J=!1,G=/@client:(load|idle|visible|media|only|hover|event)/i.test(X);if(Y=i5(Y,"load",$),Y=i5(Y,"idle",$),Y=i5(Y,"visible",$),Y=i5(Y,"media",$),Y=vL(Y),Y=i5(Y,"hover",$),Y=i5(Y,"event",$),J=G&&Y!==X,J)Y+=`
|
|
16164
|
+
`+tq();return Y}function i5(X,$,Z){let Y=new RegExp(`@client:${$}(?:\\s*\\(([^)]*)\\))?\\s*([\\s\\S]*?)@endclient`,"gi");return X.replace(Y,(J,G,Q)=>{let q={strategy:$};if(G)try{let _=G.split(",").map((H)=>H.trim());for(let H of _){let[O,L]=H.split(":").map((F)=>F.trim());if(O&&L){let F=L.replace(/^['"]|['"]$/g,"");q[O]=F}}}catch{}let K=`island-${Math.random().toString(36).substring(2,9)}`,U=eq(Q.trim()),W=XK(Q.trim(),Z),w=[];if(q.rootMargin)w.push(`data-root-margin="${q.rootMargin}"`);if(q.threshold!==void 0)w.push(`data-threshold="${q.threshold}"`);if(q.media)w.push(`data-media="${q.media}"`);if(q.event)w.push(`data-event="${q.event}"`);if(U)w.push(`data-component="${U}"`);let B=Object.keys(W).length>0?`
|
|
16165
|
+
<script type="application/json" data-island-props="${K}">${JSON.stringify(W)}</script>`:"",j="";switch($){case"load":j=DL(K);break;case"idle":j=yL(K,q);break;case"visible":j=bL(K,q);break;case"media":j=SL(K,q);break;case"hover":j=CL(K);break;case"event":j=PL(K,q);break}return`
|
|
16047
16166
|
<div data-island="${K}"
|
|
16048
16167
|
data-strategy="${$}"
|
|
16049
16168
|
${w.join(`
|
|
@@ -16053,7 +16172,7 @@ else {
|
|
|
16053
16172
|
${Q.trim()}${B}
|
|
16054
16173
|
</div>
|
|
16055
16174
|
${j}
|
|
16056
|
-
`})}function
|
|
16175
|
+
`})}function vL(X){let $=/@client:only\s*([\s\S]*?)@endclient/gi;return X.replace($,(Z,Y)=>{let J=`island-only-${Math.random().toString(36).substring(2,9)}`;return`
|
|
16057
16176
|
<div data-island="${J}"
|
|
16058
16177
|
data-strategy="only"
|
|
16059
16178
|
class="stx-island stx-client-only">
|
|
@@ -16072,7 +16191,7 @@ else {
|
|
|
16072
16191
|
}
|
|
16073
16192
|
})();
|
|
16074
16193
|
</script>
|
|
16075
|
-
`})}function
|
|
16194
|
+
`})}function YK(){return`
|
|
16076
16195
|
/* Island base styles */
|
|
16077
16196
|
.stx-island {
|
|
16078
16197
|
display: contents;
|
|
@@ -16113,11 +16232,11 @@ else {
|
|
|
16113
16232
|
.stx-island.hydrated {
|
|
16114
16233
|
opacity: 1;
|
|
16115
16234
|
}
|
|
16116
|
-
`}function
|
|
16235
|
+
`}function JK(X){if(typeof window>"u")return;let $=document.querySelector(`[data-island="${X}"]`);if(!$||$.classList.contains("hydrated"))return;$.classList.add("hydrated"),$.dispatchEvent(new CustomEvent("stx:hydrated",{bubbles:!0}))}function GK(X){if(typeof window>"u")return;document.querySelectorAll(`[data-strategy="${X}"]:not(.hydrated)`).forEach((Z)=>{Z.classList.add("hydrated"),Z.dispatchEvent(new CustomEvent("stx:hydrated",{bubbles:!0}))})}function QK(){if(typeof window>"u")return;document.querySelectorAll(".stx-island:not(.hydrated)").forEach(($)=>{$.classList.add("hydrated"),$.dispatchEvent(new CustomEvent("stx:hydrated",{bubbles:!0}))})}function qK(X){if(typeof window>"u")return!1;return document.querySelector(`[data-island="${X}"]`)?.classList.contains("hydrated")??!1}function KK(X){return new Promise(($)=>{if(typeof window>"u"){$();return}let Z=document.querySelector(`[data-island="${X}"]`);if(!Z){$();return}if(Z.classList.contains("hydrated")){$();return}Z.addEventListener("stx:hydrated",()=>$(),{once:!0})})}function UK(X){return X.replace(/@static\s*([\s\S]*?)@endstatic/gi,($,Z)=>{return`<div class="stx-static">${Z.trim()}</div>`})}function WK(X){let $=X.map((Z)=>({id:Z.id,component:Z.component,strategy:Z.options.strategy,props:Z.props}));return`
|
|
16117
16236
|
<script type="application/json" id="stx-island-manifest">
|
|
16118
16237
|
${JSON.stringify($)}
|
|
16119
16238
|
</script>
|
|
16120
|
-
`}var
|
|
16239
|
+
`}var xL;var zK=E(()=>{xL={processPartialHydrationDirectives:ZK,processStaticDirectives:UK,generatePartialHydrationCSS:YK,generateIslandManifest:WK,createIslandRegistry:$K,hydrateIsland:JK,hydrateByStrategy:GK,hydrateAll:QK,isHydrated:qK,onHydrated:KK}});var NK={};o(NK,{watchMultiple:()=>OK,watchEffect:()=>LK,watch:()=>HK,unref:()=>jK,toRefs:()=>BK,throttledComputed:()=>RK,stxWatchMultiple:()=>OK,stxWatchEffect:()=>LK,stxWatch:()=>HK,stxUnref:()=>jK,stxToRefs:()=>BK,stxThrottledComputed:()=>RK,stxShallowRef:()=>_K,stxRef:()=>n5,stxIsRef:()=>x1,stxDebouncedComputed:()=>AK,stxComputed:()=>a7,shallowRef:()=>_K,ref:()=>n5,processWatchDirectives:()=>VK,processComputedDirectives:()=>FK,isRef:()=>x1,default:()=>fL,debouncedComputed:()=>AK,computed:()=>a7});function n5(X){let $=X,Z=new Set,Y={get value(){if(G1){let J=s7.get(Y);if(!J)J=new Set,s7.set(Y,J);J.add(G1)}return $},set value(J){if(!Object.is($,J)){$=J,Z.forEach((Q)=>Q(J));let G=s7.get(Y);if(G)G.forEach((Q)=>Q())}},subscribe(J){return Z.add(J),()=>Z.delete(J)},peek(){return $}};return Y}function x1(X){return X!==null&&typeof X==="object"&&"value"in X&&"subscribe"in X&&"peek"in X}function jK(X){return x1(X)?X.value:X}function BK(X){let $={};for(let Z in X)if(Object.prototype.hasOwnProperty.call(X,Z))$[Z]=n5(X[Z]);return $}function _K(X){return n5(X)}function a7(X){let $=typeof X==="function",Z=$?X:X.get,Y=$?void 0:X.set,J=$?Object.is:X.equals||Object.is,G,Q=!0,q=new Set,K=new Set,U=()=>{if(Q=!0,K.size>0){let z=w.value;K.forEach((B)=>B(z))}};function W(){q.clear();let z=G1;G1=U,U$.push(U);try{return Z()}finally{U$.pop(),G1=z}}let w={get value(){if(G1){let z=s7.get(w);if(!z)z=new Set,s7.set(w,z);z.add(G1)}if(Q){let z=W();if(!J(G,z))G=z;Q=!1}return G},set value(z){if(Y)Y(z);else console.warn("Computed property is readonly")},subscribe(z){return K.add(z),()=>K.delete(z)},peek(){if(Q)G=Z(),Q=!1;return G},invalidate(){Q=!0},get dirty(){return Q},get deps(){return q}};return w}function HK(X,$,Z={}){let{immediate:Y=!1,deep:J=!1,flush:G="pre",once:Q=!1}=Z,q,K=!0,U=!1,W=()=>{if(x1(X))return J?q5(X.value):X.value;return X()},w=()=>{if(!K||U)return;let j=W();if(q!==void 0&&Object.is(q,j)&&!J)return;let _=()=>{if($(j,q),q=J?q5(j):j,Q)B()};if(G==="sync")_();else if(G==="post")queueMicrotask(_);else Promise.resolve().then(_)},z=null;if(x1(X))z=X.subscribe(()=>w());else z=a7(X).subscribe(()=>w());if(Y)q=void 0,w();else q=W();let B=()=>{if(K=!1,z)z(),z=null};return B.pause=()=>{U=!0},B.resume=()=>{U=!1},B}function OK(X,$,Z={}){let{immediate:Y=!1,once:J=!1}=Z,G=X.map((w)=>x1(w)?w.value:void 0),Q=!0,q=!1,K=()=>{if(!Q||q)return;let w=X.map((z)=>x1(z)?z.value:void 0);if($(w,G),G=[...w],J)W()},U=X.map((w)=>{if(x1(w))return w.subscribe(()=>K());return()=>{}});if(Y)K();let W=()=>{Q=!1,U.forEach((w)=>w())};return W.pause=()=>{q=!0},W.resume=()=>{q=!1},W}function LK(X,$={}){let{flush:Z="pre"}=$,Y,J=!0,G=!1,Q=()=>{if(!J||G)return;if(Y)Y();let K=G1;G1=Q,U$.push(Q);try{Y=X()}finally{U$.pop(),G1=K}};if(Z==="sync")Q();else if(Z==="post")queueMicrotask(Q);else Promise.resolve().then(Q);let q=()=>{if(J=!1,Y)Y()};return q.pause=()=>{G=!0},q.resume=()=>{G=!1},q}function FK(X,$={},Z){let Y=/@computed\s*\(\s*(\w+)\s*,\s*(.+?)\s*\)/gi;return X.replace(Y,(J,G,Q)=>{try{let K=Function(...Object.keys($),`return ${Q}`)(...Object.values($));return $[G]=K,`<!-- computed: ${G} = ${K} -->`}catch(q){return`<!-- computed error: ${G} - ${q} -->`}})}function VK(X,$={},Z){let Y=/@watch\s*\(\s*(\w+)\s*\)\s*([\s\S]*?)@endwatch/gi;return X.replace(Y,(J,G,Q)=>{return`
|
|
16121
16240
|
<script data-watch="${`watch-${Math.random().toString(36).substring(2,9)}`}">
|
|
16122
16241
|
(function() {
|
|
16123
16242
|
// Watch implementation for ${G}
|
|
@@ -16129,9 +16248,9 @@ else {
|
|
|
16129
16248
|
}
|
|
16130
16249
|
})();
|
|
16131
16250
|
</script>
|
|
16132
|
-
`})}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
|
|
16133
|
-
`)}catch{return""}})}function
|
|
16134
|
-
`)}catch{return""}})}function
|
|
16251
|
+
`})}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 AK(X,$=100){let Z=n5(X()),Y=null,J=()=>{if(Y)clearTimeout(Y);Y=setTimeout(()=>{Z.value=X()},$)};return a7(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 RK(X,$=100){let Z=n5(X()),Y=0,J=()=>{let Q=Date.now();if(Q-Y>=$)Y=Q,Z.value=X()};return a7(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,U$,s7,fL;var TK=E(()=>{U$=[],s7=new WeakMap;fL={ref:n5,computed:a7,watch:HK,watchMultiple:OK,watchEffect:LK,isRef:x1,unref:jK,toRefs:BK,shallowRef:_K,debouncedComputed:AK,throttledComputed:RK,processComputedDirectives:FK,processWatchDirectives:VK}});function t7(X,$){let Z={};for(let Y of X)Z[Y]=D1($(Y));return new Proxy({},{get:(Y,J)=>Z[J]?.(),set:(Y,J,G)=>{if(Z[J])Z[J].set(G);else Z[J]=D1(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 gL(X,$){let Z={};for(let Y of $)Z[Y]=X[Y];return Z}function s3(X,$){let Z=Object.keys(X),Y=t7(Z,(L)=>$?.[L]??X[L].getDefaultValue()),J=t7(Z,()=>[]),G=t7(Z,()=>!1),Q=t7(Z,()=>!1),q=t7(Z,()=>!1),K=D1(!1);async function U(L){q[L]=!0;let F=await X[L].validate(Y[L],Y);return J[L]=F,q[L]=!1,F.length===0}async function W(){K.set(!0);let L=await Promise.all(Z.map(U));return K.set(!1),L.every(Boolean)}function w(){for(let L of Z)Y[L]=$?.[L]??X[L].getDefaultValue(),J[L]=[],G[L]=!1,Q[L]=!1}function z(L){for(let F of Z)if(F in L)Y[F]=L[F],Q[F]=!0}function B(L,F){Y[L]=F,Q[L]=!0}function j(L,F=!0){if(G[L]=F,F)U(L)}function _(L){return{value:Y[L],errors:J[L],touched:G[L],dirty:Q[L],valid:J[L].length===0,validating:q[L]}}function H(L){return async(F)=>{F?.preventDefault?.();for(let A of Z)G[A]=!0;if(await W())await L(gL(Y,Z))}}return{values:Y,errors:J,touched:G,dirty:Q,get isValid(){return Z.every((L)=>J[L].length===0)},get isValidating(){return K()||Z.some((L)=>q[L])},get isDirty(){return Z.some((L)=>Q[L])},validate:W,validateField:U,reset:w,setValues:z,setFieldValue:B,setFieldTouched:j,getFieldState:_,handleSubmit:H}}var MK;var kK=E(()=>{mX();MK=s3});var yK={};o(yK,{v:()=>hL,useForm:()=>s3,processHasErrorsDirective:()=>DK,processFormValidationDirectives:()=>uL,processErrorsDirective:()=>EK,processErrorDirective:()=>IK,defineForm:()=>MK,Validator:()=>r5});class r5{rules=[];defaultValue="";addRule(X){let $=new r5;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 r5;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 r5;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 IK(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(`
|
|
16252
|
+
`)}catch{return""}})}function EK(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(`
|
|
16253
|
+
`)}catch{return""}})}function DK(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 uL(X,$,Z){let Y=X;return Y=IK(Y,$,Z),Y=EK(Y,$,Z),Y=DK(Y,$,Z),Y}var hL;var bK=E(()=>{kK();hL=new r5});var PK={};o(PK,{processXElementDirectives:()=>dL,hasXElementDirectives:()=>CK,generateXElementRuntime:()=>SK});function SK(){return`<script data-stx-scoped data-stx-x-element-runtime data-stx-run="always">
|
|
16135
16254
|
(function() {
|
|
16136
16255
|
'use strict';
|
|
16137
16256
|
|
|
@@ -16415,49 +16534,49 @@ else {
|
|
|
16415
16534
|
// Expose for manual initialization
|
|
16416
16535
|
window.XElement = XElement;
|
|
16417
16536
|
})();
|
|
16418
|
-
</script>`}function
|
|
16537
|
+
</script>`}function CK(X){return/\bx-data(?:\s|=)/.test(X)}function dL(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(!CK(Y))return Y;let J=Z[0]?.trim()||SK(),G=Y.lastIndexOf("</body>");if(G!==-1)return Y.slice(0,G)+J+`
|
|
16419
16538
|
`+Y.slice(G);return Y+`
|
|
16420
|
-
`+J}var
|
|
16539
|
+
`+J}var vK={};o(vK,{rewriteImagesWithSiblings:()=>cL});import H1 from"path";async function cL(X,$){let Z=$.formats??lL;if(!$.publicDir)return X;let Y=nL(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(rL(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 pL(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="${oL(_.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 pL(X,$,Z){if(!iL(X))return[];let Y=H1.extname(X).toLowerCase();if(!mL.has(Y))return[];if(!X.startsWith("/"))return[];let J=H1.join($,X.slice(1)),G=H1.dirname(J),Q=H1.basename(J,Y),q=H1.resolve(G),K=H1.resolve($);if(!q.startsWith(K))return[];let U=H1.posix.dirname(X),W=Z.map(async(z)=>{let B=H1.join(G,`${Q}${z.ext}`);if(!await Bun.file(B).exists())return null;return{url:H1.posix.join(U,`${Q}${z.ext}`),mime:z.mime}});return(await Promise.all(W)).filter((z)=>z!==null)}function iL(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 nL(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 rL(X,$){for(let[Z,Y]of $)if(X>=Z&&X<Y)return!0;return!1}function oL(X){return X.replace(/&/g,"&").replace(/"/g,""")}var mL,lL;var xK=E(()=>{mL=new Set([".jpg",".jpeg",".png",".gif"]),lL=[{ext:".avif",mime:"image/avif"},{ext:".webp",mime:"image/webp"}]});var uK={};o(uK,{validateClientScript:()=>J$,processOnceDirective:()=>Y$,processJsonDirective:()=>Z$,processDirectives:()=>N0,injectRouterScript:()=>wY});import sL from"fs";import E0 from"path";function fK(X){return X.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function aL(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(`
|
|
16421
16540
|
`,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===`
|
|
16422
16541
|
`){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]===`
|
|
16423
|
-
`)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
|
|
16542
|
+
`)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 o5(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 gK(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 tL(X){let $=o5(X,"data-stx-runtime");if(!$)return X;let Z=gK(X);if(Z===-1||Z===$.start)return X;let Y=X.slice($.start,$.end),J=X.slice(0,$.start)+X.slice($.end),G=gK(J);if(G===-1)return Y+`
|
|
16424
16543
|
`+J;return J.slice(0,G)+Y+`
|
|
16425
|
-
`+J.slice(G)}async function
|
|
16426
|
-
`),...U.htmlAttrs&&{htmlAttrs:
|
|
16427
|
-
<meta name="stx-layout" content="${
|
|
16428
|
-
<meta name="stx-layout-group" content="${
|
|
16429
|
-
`+W+Q.slice(w.end)}}catch{}if(G)try{let{getFrameworkComposableScript:q}=await a("stx/framework-composables",()=>Promise.resolve().then(() => (
|
|
16430
|
-
`+K+Q.slice(U.end)}}catch{}if(G)try{let{getComposableScript:q}=await a("stx/composable-loader",()=>Promise.resolve().then(() => (
|
|
16431
|
-
`+W+Q.slice(w.end)}}catch{}if(G)Q=
|
|
16544
|
+
`+J.slice(G)}async function N0(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)m2($);if(!$.__stxProcessingDepth)$.__stxProcessingDepth=0;if($.__stxProcessingDepth++,!$.__onceStore)$.__onceStore=new Set;if((Y.debug||!v7()&&!k8())&&Z&&Z.endsWith(".stx"))o4(X,Z);try{return await wZ.timeAsync("template-processing",async()=>{let Q=await eL(X,$,Z,Y,J);if(G)Q=d3(Q);if(G&&Y.autoShell&&Y.buildMode!=="compile"){let q=Y.app?.head||{},U=($.__stx_runtime_head||null)??G9(),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(`
|
|
16545
|
+
`),...U.htmlAttrs&&{htmlAttrs:Qq(q.htmlAttrs,U.htmlAttrs)},...U.bodyAttrs&&{bodyAttrs:{...q.bodyAttrs||{},...U.bodyAttrs}}},O=u3(Q);if(Q=Wq(Q,H,{..._&&{titleIsHtml:!0},...Y.app?.colorMode&&{colorMode:Y.app.colorMode}}),O)Q=Uq(Q,q),Q=qq(Q,H.htmlAttrs);let L=Q.match(/<!-- stx-layout: ([^ ]+) -->/);if(L&&Q.includes("<head")){let A=L[1],R=w7(A);Q=Q.replace(/<head\b[^>]*>/i,(N)=>`${N}
|
|
16546
|
+
<meta name="stx-layout" content="${fK(A)}">
|
|
16547
|
+
<meta name="stx-layout-group" content="${fK(R)}">`)}let F=Q.match(/function (__stx_setup_\d+_\d+)\(/),V=F?y7(Q):null;if(F&&V&&!/\bdata-stx=/.test(V.tag)){Q=PX(Q,(R,N)=>`<body${N} 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=Kq(Q);let q=Y.app?.colorMode;if(q)Q=$q(Q,q);Q=Yq(Q),Q=tL(Q)}if(G)try{let{getStoreScript:q}=await a("stx/store-loader",()=>Promise.resolve().then(() => (Vq(),Fq))),K=Y.storesDir,U=await q(K);if(U){let W=`<script data-stx-stores>${U}</script>`,w=o5(Q,"data-stx-runtime");if(w)Q=Q.slice(0,w.end)+`
|
|
16548
|
+
`+W+Q.slice(w.end)}}catch{}if(G)try{let{getFrameworkComposableScript:q}=await a("stx/framework-composables",()=>Promise.resolve().then(() => (Mq(),Tq))),K=await q(Q);if(K){let U=o5(Q,"data-stx-stores")||o5(Q,"data-stx-runtime");if(U)Q=Q.slice(0,U.end)+`
|
|
16549
|
+
`+K+Q.slice(U.end)}}catch{}if(G)try{let{getComposableScript:q}=await a("stx/composable-loader",()=>Promise.resolve().then(() => (Eq(),Iq))),K=Y.composablesDir,U=await q(K);if(U){let W=`<script data-stx-composables>${U}</script>`,w=o5(Q,"data-stx-stores")||o5(Q,"data-stx-runtime");if(w)Q=Q.slice(0,w.end)+`
|
|
16550
|
+
`+W+Q.slice(w.end)}}catch{}if(G)Q=Zq(Q);if(G&&$.__stx_inject_css!==!1)Q=await nJ(Q,void 0,Y.buildMode==="serve");if(G)Q=HZ(Q);return Q=Q.replace(/\x00STX_ESCAPED_AT\x00/g,"@"),Q})}catch(Q){if(Q instanceof y8)throw Q;let q=Q instanceof Error?Q.message:String(Q),K=new X5(`Template processing failed: ${q}`,Z,void 0,void 0,X.substring(0,200)+(X.length>200?"...":""));if(X1.log(K,{filePath:Z,context:$}),M4.logDetailedError(K,{filePath:Z,template:X.substring(0,500)}),Y.debug)throw K;return N4.createFallbackContent("Template Processing",K)}}async function eL(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 ZF(Z,$),$F($,q),K=await b5(()=>fQ(K,$,Z,q),K,(F)=>{X1.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,R7,(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=rQ(K),K=await Bq(K,Z,J);let B={};K=y3(K,B);let j={...$.__sections||{}},_="",H=JG(YG(X)),O=/@nolayout\b/.test(K)||H===!1;if(/@nolayout\b/.test(K))K=K.replace(/@nolayout\b\s*/g,"");let L=K.match(/@(?:layout|extends)\(\s*['"]([^'"]+)['"]\s*\)/);if(L)_=L[1],K=K.replace(/@(?:layout|extends)\(\s*['"]([^'"]+)['"]\s*\)/g,"");else if(typeof H==="string"){if(_=H,!/@section\s*\(/.test(K))K=`@section('content')
|
|
16432
16551
|
${K.trim()}
|
|
16433
|
-
@endsection`}if(!_&&!O&&q.defaultLayout){let F=
|
|
16552
|
+
@endsection`}if(!_&&!O&&q.defaultLayout){let F=h3(K),V=/@section\s*\(/.test(K);if(!F||V){let A="",R=E0.dirname(Z),N=q.layoutsDir?E0.dirname(q.layoutsDir):process.cwd();for(let T=0;T<20;T++){let k=E0.join(R,"_layout.stx");if(await i(k)){A=k;break}let M=E0.dirname(R);if(M===R||M.length<N.length)break;R=M}if(A)_=A;else if(q.layoutsDir){let T=E0.isAbsolute(q.layoutsDir)?q.layoutsDir:E0.resolve(process.cwd(),q.layoutsDir),k=E0.join(T,`${q.defaultLayout}.stx`);if(await i(k))_=k}if(_&&!V)K=`@section('content')
|
|
16434
16553
|
${K.trim()}
|
|
16435
|
-
@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=Z0(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=
|
|
16554
|
+
@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=Z0(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=b3(K,B),_){let F=[],V=N1(K),A=$1(V.output,R5,(R,N)=>`\x00STX_ORPHAN_STYLE_${N}\x00`);if(K=A.output.replace(/\x00STX_(SCRIPT|ORPHAN_STYLE)_(\d+)\x00/g,(R,N,T)=>{let k=N==="SCRIPT"?V.scripts[Number(T)]:A.tokens[Number(T)];if(k)F.push(k);return""}),F.length>0){let R=F.join(`
|
|
16436
16555
|
`);j.content=j.content?`${j.content}
|
|
16437
|
-
${R}`:R,$.__sections=j}}if(_)try{let F;if(E0.isAbsolute(_))F=_,J.add(_);else F=await b5(()=>
|
|
16438
|
-
${K}`,w(K)}catch(F){return X1.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
|
|
16439
|
-
`;if(G=
|
|
16556
|
+
${R}`:R,$.__sections=j}}if(_)try{let F;if(E0.isAbsolute(_))F=_,J.add(_);else F=await b5(()=>u9(_,Z,Q,J),null,()=>{throw new X5(`Failed to resolve layout path: ${_}`,Z,void 0,void 0,`Layout referenced from ${Z}`)});if(!F){let k=[];try{let D=Q.layoutsDir;if(D){let I=E0.isAbsolute(D)?D:E0.resolve(process.cwd(),D);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(X1.log(Error(M),{layoutPath:_,filePath:Z,available:k},"error"),console.error(`[stx] ${M}`),Q.debug)throw new X5(M,Z);return K}let V=await b5(()=>Bun.file(F).text(),"",()=>{throw new X5(`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,b,y)=>{return k[b]=y.trim(),""});for(let[C,b]of Object.entries(k))if(j[C]&&j[C].includes(K5)){let y=j[C].indexOf(K5);j[C]=j[C].slice(0,y)+b+j[C].slice(y+K5.length)}else if(!j[C])j[C]=b;let D={...$,__sections:j},I=`@layout('${A[1]}')${M}`;return await N0(I,D,F,Q,J)}let R=V.replace(/\{\{--[\s\S]*?--\}\}/g,""),N=y3(R,B),T={};return N=N.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@show|@endsection)/g,(k,M,D)=>{return T[M]=D.trim(),`@slot('${M}')`}),N=N.replace(/@(?:yield|slot)\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(k,M,D)=>{if(j[M]){let I=j[M];if(I.includes(K5)){let C=T[M]||"",b=I.indexOf(K5);I=I.slice(0,b)+C+I.slice(b+K5.length)}return I}return D||""}),N=XF(N,j),N=N.replace(/\{\{\s*slot\s*\}\}/g,()=>{return j.content||""}),N=b3(N,B),$.__originalFilePath=Z,K=await hK(N,$,F,Q,J),K=`<!-- stx-layout: ${_} -->
|
|
16557
|
+
${K}`,w(K)}catch(F){return X1.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 hK(K,$,Z,Q,J))}function XF(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 $F(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 ZF(X,$){await b5(()=>mQ(X,$),void 0,(Z)=>{X1.log(Z,{filePath:X,phase:"view-composer"},"warning"),console.warn(`[stx] view composer failed for ${X}: ${Z.message}`)})}async function YF(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 a("stx/variable-extractor",()=>Promise.resolve().then(() => (E7(),bX)));await K(Q,$,Z,{preserveExisting:!0})}catch(K){let U=K instanceof Error?K:Error(String(K));X1.log(U,{filePath:Z,phase:"server-script-extraction"},"warning"),console.warn(`[stx] server <script> extraction failed in ${Z}: ${U.message}`)}}}async function JF(X,$,Z){try{let{interpolateScriptsInTemplate:Y}=await a("stx/expressions",()=>Promise.resolve().then(() => (Z1(),KZ)));return Y(X,$,{skipServer:!0})}catch(Y){let J=Y instanceof Error?Y:Error(String(Y));return X1.log(J,{filePath:Z,phase:"script-expression-interpolation"},"warning"),console.warn(`[stx] script expression interpolation failed in ${Z}: ${J.message}`),X}}async function hK(X,$,Z,Y,J){let G=X,Q=Y;if(await YF(G,$,Z),G=await JF(G,$,Z),G=await bQ(G,$,Z),G=await SQ(G,$,Z),G=await TG(G,$,Z,Q),w1(G))G=P9(G,$),G=x9(G,$);G=v9(G);let{processStreamDirectives:q}=await a("stx/streaming",()=>Promise.resolve().then(() => (r4(),n4)));G=q(G,$),G=k3(G,$,Z,Q),G=await eQ(G,$,Z,Q,J),G=await o8(G,$,Z,Q,J),G=x6(G,$,Z,Q);let{processDeferDirectives:K}=await a("stx/defer",()=>Promise.resolve().then(() => yq));G=K(G,$,Z);let{processTeleportDirectives:U}=await a("stx/teleport",()=>Promise.resolve().then(() => Sq));G=U(G,$,Z);let{processTransitionDirectives:W,processTransitionAttributes:w}=await a("stx/transitions",()=>Promise.resolve().then(() => xq));G=W(G,$,Z),G=w(G);let{processErrorBoundaryDirectives:z}=await a("stx/error-boundaries",()=>Promise.resolve().then(() => gq));G=z(G,$,Z);let{processSuspenseDirectives:B}=await a("stx/suspense",()=>Promise.resolve().then(() => hq));G=B(G,$,Z);let{processAsyncDirectives:j}=await a("stx/async-components",()=>Promise.resolve().then(() => lq));G=j(G,$,Z);let{processKeepAliveDirectives:_}=await a("stx/keep-alive",()=>Promise.resolve().then(() => pq));G=_(G,$,Z);let{processVirtualListDirectives:H,processVirtualGridDirectives:O,processInfiniteListDirectives:L}=await a("stx/virtual-scrolling",()=>Promise.resolve().then(() => (aq(),sq)));G=H(G,$,Z),G=O(G,$,Z),G=L(G,$,Z);let{processPartialHydrationDirectives:F,processStaticDirectives:V}=await a("stx/partial-hydration",()=>Promise.resolve().then(() => (zK(),wK)));G=F(G,$,Z),G=V(G);let{processComputedDirectives:A,processWatchDirectives:R}=await a("stx/computed",()=>Promise.resolve().then(() => (TK(),NK)));G=A(G,$,Z),G=R(G,$,Z);let{processFormValidationDirectives:N}=await a("stx/forms-validation",()=>Promise.resolve().then(() => (bK(),yK)));G=N(G,$,Z);let{processHeadDirective:T,processTitleDirective:k,processMetaDirective:M,resetHead:D}=await a("stx/head",()=>Promise.resolve().then(() => (I7(),q9)));if(!$.__stx_head_preset&&!$.__stx_runtime_head)D();let I=T(G);if(G=I.content,I.headContent)$.__stx_head_raw=`${$.__stx_head_raw||""}${I.headContent}
|
|
16558
|
+
`;if(G=k(G,$),G=M(G,$),G=uQ(G),G=C4(G,$),G=RG(G),G=vQ(G),G=await D3(G,$,Z,Q,J),G=await o8(G,$,Z,Q,J),$.__stxProcessingDepth===1)G=c2(G,$);if(G=G.replace(/@push\s*\(\s*['"][^'"]+['"]\s*\)[\s\S]*?@endpush/g,""),G=d3(G),G=B1(G,$,Z),G=P4(G,$),G=v4(G,$),G=u8(G,$),G=CG(G,$),G=PG(G,$),G=await WG(G,$,Z,Q),G=await TY(G,$,Z),G=await hG(G,$,Z,Q),G=D6(G,$,Z,Q),G=yJ(G,$,Z,Q),G=bJ(G,$,Z),G=SJ(G,$,Z,Q),G=FG(G,$,Z,Q),G=Z$(G,$),G=Y$(G),G=Hq(G),!Q.skipEventDirectives)G=N2(G,$,Z);if(G=KG(G,$,Z),Q.debug){let n=/\bx-data\s*=/.test(G),t=sX(X);if(n&&t)console.warn(`[stx] ${Z}: Template mixes Alpine-style (x-data) and signals (state/derived/effect) reactivity.
|
|
16440
16559
|
Both work on the same page, but they manage separate scopes.
|
|
16441
|
-
Prefer signals (state/derived/effect) for new components.`)}G=
|
|
16560
|
+
Prefer signals (state/derived/effect) for new components.`)}G=pQ(G,$),G=await T1(G,$,Z),G=Oq(G),G=Lq(G),G=eJ(G);let{processXElementDirectives:C}=await a("stx/x-element",()=>Promise.resolve().then(() => PK));G=C(G);let b=$.__originalFilePath||Z,y=F7($);if(G=await f9(G,Q,b,y),G=DG(G,$),G=await gQ(G,$,Z,Q),Q.media?.image?.autoSiblings){let n=Q.publicDir||"public",{rewriteImagesWithSiblings:t}=await a("stx/image-optimization/auto-sibling",()=>Promise.resolve().then(() => (xK(),vK)));G=await t(G,{publicDir:n})}if(Q.seo?.enabled)G=CJ(G,$,Q);let v=(n,t,q0=!0)=>{if(!t)return n;let b0=t.match(/<title\b[^>]*>[\s\S]*?<\/title>/i),j0=n.match(/<title\b[^>]*>[\s\S]*?<\/title>/i);if(b0&&j0){if(q0)n=n.replace(j0[0],b0[0]);if(t=t.replace(b0[0],"").trim(),!t)return n}if(/<\/head>/i.test(n))return n.replace(/<\/head>/i,`${t}
|
|
16442
16561
|
</head>`);if(/<head\b[^>]*>/i.test(n))return n.replace(/(<head\b[^>]*>)/i,`$1
|
|
16443
16562
|
${t}`);if(/<html\b[^>]*>/i.test(n))return n.replace(/(<html\b[^>]*>)/i,`$1
|
|
16444
16563
|
<head>
|
|
16445
16564
|
${t}
|
|
16446
|
-
</head>`);return n},{renderHead:x,getHead:
|
|
16447
|
-
${
|
|
16565
|
+
</head>`);return n},{renderHead:x,getHead:g}=await a("stx/head",()=>Promise.resolve().then(() => (I7(),q9))),c=$.__stx_runtime_head??g();if(c.title||c.meta?.length||c.link?.length){let n=x(c);if(n)G=v(G,n)}if(I.headContent)G=v(G,I.headContent,!c.title);if(Q.csp?.enabled&&Q.csp.addMetaTag)G=OG(G,Q.csp,$);if(Q.analytics?.enabled)G=$G(G,Q);if(Q.heatmap?.enabled)G=q2(G,Q);if(Q.pwa?.enabled&&Q.pwa.autoInject!==!1){let{injectPwaTags:n}=await a("stx/pwa/inject",()=>Promise.resolve().then(() => (QX(),H6)));G=n(G,Q)}let D0=/<script\b(?![^>]*\bserver\b)[^>]*>[\s\S]*?<\/script>/i.test(G),y0=/\bSTX\.\w+/.test(G),c0=/window\.STX\s*=/.test(G);if(D0&&y0&&!c0){let t=`<script data-stx-scoped data-stx-run="once">
|
|
16566
|
+
${oJ()}
|
|
16448
16567
|
</script>`;if(G.includes("</head>")){let q0=G.indexOf("</head>"),j0=G.slice(0,q0).indexOf("<script");if(j0!==-1){let P=G.slice(0,j0),S=G.slice(j0);G=P+t+`
|
|
16449
16568
|
`+S}else G=G.replace("</head>",`${t}
|
|
16450
16569
|
</head>`)}else if(G.includes("<body"))G=G.replace(/<body([^>]*)>/,`<body$1>
|
|
16451
16570
|
${t}`);else G=t+`
|
|
16452
|
-
`+G}{let{scanScriptTags:n}=await a("stx/signal-processing",()=>Promise.resolve().then(() => (
|
|
16453
|
-
`+G.slice(q0)}$.__stx_event_bindings=[]}}if(!
|
|
16454
|
-
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 O=K1.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(O),Z.generatedFiles.push(O),q){let L=K1.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(L),Z.generatedFiles.push(L)}}if(K){for(let O of
|
|
16571
|
+
`+G}{let{scanScriptTags:n}=await a("stx/signal-processing",()=>Promise.resolve().then(() => (S7(),aX))),t=[];for(let q0 of n(G)){if(!/\bserver\b/i.test(q0.attrs))continue;let b0=q0.start+q0.fullMatch.indexOf(">")+1,j0=aL(G,b0);if(j0===-1)continue;let P=j0+9;while(P<G.length&&/\s/.test(G[P]))P++;t.push({start:q0.start,end:P})}for(let q0=t.length-1;q0>=0;q0--){let{start:b0,end:j0}=t[q0];G=G.substring(0,b0)+G.substring(j0)}}let W0=IX(G,Z);if(W0.hasScoped)G=W0.html;let e=$.__stx_event_bindings||[],T0=!1,o0=[],O1=/\s:[a-z][\w.-]*\s*=/.test(G),{scanScriptTags:W5}=await a("stx/signal-processing",()=>Promise.resolve().then(() => (S7(),aX)));for(let n of W5(G,{skipAttrs:/\bserver\b|\bsrc\s*=|\bdata-stx-scoped\b|\bdata-stx-router\b|\btype\s*=\s*["'](?!(?:text\/javascript|application\/javascript|module)["'])[^"']*["']/}))o0.push({match:n.fullMatch,attrs:n.attrs,content:n.body});for(let{match:n,attrs:t,content:q0}of o0){T0=!0;let b0=q0;J$(q0,Z,Y.strict,$.__originalFilePath);let j0=await V7(q0,{eventBindings:e,attrs:t,hasColonDirectives:O1,templateContent:X,filePath:Z,projectRoot:process.cwd(),production:Y.buildMode==="compile",serverData:y});G=G.replace(n,()=>j0)}if(T0)$.__stx_event_bindings=[];if(!T0&&$.__stxProcessingDepth===1){let n=$.__stx_event_bindings||[];if(n.length>0){let t=c$(n);if(t){let q0=G.lastIndexOf("</body>");G=q0===-1?G+t:G.slice(0,q0)+t+`
|
|
16572
|
+
`+G.slice(q0)}$.__stx_event_bindings=[]}}if(!KY(G)&&UY(G))G=await pX(G,Q);if(G=WY(G),Q.csp?.enabled&&Q.csp.useNonce&&typeof $.cspNonce==="string")G=LG(G,$.cspNonce);return G}var K5="<!--PARENT_CONTENT_PLACEHOLDER-->";var $8=E(()=>{rJ();_9();c1();V$();sJ();XG();ZG();u$();A$();p$();A7();UG();wG();g7();VG();NG();kG();yG();z1();I7();Z1();vG();uG();yQ();PQ();I3();d9();hQ();M5();dQ();k4();R0();lQ();iQ();oQ();Xq();Y9();x3();wq();S7();T3();_q();m3();l3();F0();s4();t$();B7();iX();iX();m3();l3()});import UF from"fs";import a3 from"path";import sK from"fs";import K1 from"path";var $6=[72,96,128,144,152,192,384,512],Z6=[120,152,167,180],Y6=[16,32];async function J6(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=K1.isAbsolute(Y.src)?Y.src:K1.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=K1.resolve($,Y.outputDir||"pwa-icons");try{sK.mkdirSync(G,{recursive:!0})}catch{return Z.errors.push(`Failed to create output directory: ${G}`),Z.success=!1,Z}let Q=Y.sizes||$6,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
|
|
16573
|
+
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 O=K1.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(O),Z.generatedFiles.push(O),q){let L=K1.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(L),Z.generatedFiles.push(L)}}if(K){for(let O of Z6){let L=K1.join(G,`apple-touch-icon-${O}x${O}.png`);await U.default(J).resize(O,O,{fit:"contain",background:{r:255,g:255,b:255,alpha:1}}).png().toFile(L),Z.generatedFiles.push(L)}let H=K1.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 Y6){let O=K1.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(O),Z.generatedFiles.push(O)}let z=512,B=K1.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 jF(X){let $=X.sizes||$6,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 Z6)G.push(`${Z}/apple-touch-icon-${Q}x${Q}.png`)}for(let Q of Y6)G.push(`${Z}/favicon-${Q}x${Q}.png`);return G.push(`${Z}/icon-maskable-512x512.png`),G}async function G6(){try{return await import("sharp"),!0}catch{return!1}}QX();function OU(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 LU(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 FU(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 VU(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 AU(X){let $=X.pwa?.protocolHandlers;if(!$||$.length===0)return;return $.map((Z)=>({protocol:Z.protocol,url:Z.url}))}function RU(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:OU(J,G,Q,q)};if(Z.shortcuts&&Z.shortcuts.length>0)K.shortcuts=LU(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=FU(X);if(U)K.share_target=U;let W=VU(X);if(W)K.file_handlers=W;let w=AU(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 O6(X){let $=RU(X);if(!$)return"";let Z=JSON.parse(JSON.stringify($));return JSON.stringify(Z,null,2)}function NF(X,$){return{...$,...X,shortcuts:X.shortcuts||$.shortcuts,screenshots:X.screenshots||$.screenshots,categories:X.categories||$.categories}}function TF(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 dK from"path";async function mK(X){let $=X.pwa?.offline;if(!$?.enabled)return"";if($.page){let Z=dK.isAbsolute($.page)?$.page:dK.resolve(process.cwd(),$.page);if(await Bun.file(Z).exists())try{let{processDirectives:Y}=await Promise.resolve().then(() => ($8(),uK)),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 GF(X)}function GF(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>
|
|
16455
16574
|
<html lang="en">
|
|
16456
16575
|
<head>
|
|
16457
16576
|
<meta charset="UTF-8">
|
|
16458
16577
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
16459
16578
|
<meta name="theme-color" content="${G}">
|
|
16460
|
-
<title>${
|
|
16579
|
+
<title>${W$(Y)} - ${W$(Q)}</title>
|
|
16461
16580
|
<style>
|
|
16462
16581
|
:root {
|
|
16463
16582
|
--theme-color: ${G};
|
|
@@ -16627,8 +16746,8 @@ Icon generation requires the sharp package for image processing.`),Z.success=!1,
|
|
|
16627
16746
|
<circle cx="12" cy="20" r="1"/>
|
|
16628
16747
|
</svg>
|
|
16629
16748
|
|
|
16630
|
-
<h1>${
|
|
16631
|
-
<p>${
|
|
16749
|
+
<h1>${W$(Y)}</h1>
|
|
16750
|
+
<p>${W$(J)}</p>
|
|
16632
16751
|
|
|
16633
16752
|
<button class="retry-btn" onclick="window.location.reload()">
|
|
16634
16753
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
@@ -16684,9 +16803,9 @@ Icon generation requires the sharp package for image processing.`),Z.success=!1,
|
|
|
16684
16803
|
}, 5000);
|
|
16685
16804
|
</script>
|
|
16686
16805
|
</body>
|
|
16687
|
-
</html>`}function
|
|
16806
|
+
</html>`}function W$(X){return X.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}a5();t5();import U5 from"fs";import w$ from"path";function QF(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 qF(X){let $=[],Z=w$.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=w$.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=w$.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=w$.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 KF(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 cD(X,$){let Z=QF(X),Y=$&&U5.existsSync($)?qF($):[];return KF([...Z,...Y])}function pD(X){let $=[];$.push(`
|
|
16688
16807
|
=== PWA Audit Report ===
|
|
16689
16808
|
`);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}
|
|
16690
16809
|
`);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(`
|
|
16691
16810
|
${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(`
|
|
16692
|
-
`)}
|
|
16811
|
+
`)}V4();QX();a5();t5();async function $y(X,$){let Z={success:!0,files:{icons:[]},errors:[],warnings:[]},Y=X.pwa;if(!Y?.enabled)return Z;try{UF.mkdirSync($,{recursive:!0})}catch{return Z.errors.push(`Failed to create output directory: ${$}`),Z.success=!1,Z}try{let G=O6(X);if(G){let Q=a3.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 G6()){let Q=await J6(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 mK(X);if(G){let Q=a3.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=g1($,X);J={fileCount:G.fileCount,totalSize:G.totalSize},Z.precacheStats=J}try{let G=JX(X,$);if(G){let Q=j5(X),q=a3.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 Zy(X,$){return H$(X,$)}function Yy(X){return X.pwa?.enabled===!0}export{TF as validateManifest,cD as runPwaAudit,rN as registerPwaDirectives,fj as pwaUpdateDirective,hj as pwaPushDirective,gj as pwaOfflineDirective,xj as pwaInstallDirective,F4 as pwaDirectives,Zy as processPwaHtml,NF as mergeManifestConfig,_6 as isWorkboxEnabled,G6 as isSharpAvailable,Yy as isPwaEnabled,H$ as injectPwaTags,j5 as getServiceWorkerFileName,jF as getExpectedIconPaths,HU as generateThemeColorMeta,BU as generateSwRegistrationScript,jU as generateServiceWorkerAuto,JX as generateServiceWorker,GX as generatePwaTags,J6 as generatePwaIcons,YX as generatePrecacheManifestJs,g1 as generatePrecacheManifest,mK as generateOfflinePage,_U as generateManifestLink,O6 as generateManifestJson,RU as generateManifest,q6 as formatSize,pD as formatAuditResult,KF as calculateAuditResult,$y as buildPwaAssets,QF as auditConfig,qF as auditBuildOutput,Y6 as FAVICON_SIZES,$6 as DEFAULT_ICON_SIZES,Z6 as APPLE_TOUCH_ICON_SIZES};
|