ladrillosjs 2.0.0-rc.4 → 2.0.0-rc.6

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.
@@ -37,6 +37,10 @@ export declare function applyBindingsDeferred(host: HTMLElement | ShadowRoot, bi
37
37
  export declare function extractFunctionDefinitions(content: string, skipFunctions?: string[]): string;
38
38
  /**
39
39
  * Finds variable declarations: let x = ..., const y = ..., var z = ...
40
+ * Only returns TOP-LEVEL declarations — declarations inside callbacks,
41
+ * arrow function bodies, and other nested scopes are intentionally skipped
42
+ * so they remain real local variables after script transformation.
43
+ *
40
44
  * Exported so webcomponent.ts can use it for observedAttributes.
41
45
  */
42
46
  export declare function extractVariableNames(content: string): string[];
package/dist/core.js CHANGED
@@ -1,2 +1,2 @@
1
- import{$ as r,r as s,e}from"./shared-Cce5mWkr.js";import{E as o}from"./shared-Cce5mWkr.js";import{c as a}from"./shared-CgY9vs70.js";const t={registerComponent:e,registerComponents:s,$use:r,configure:a};export{r as $use,o as ErrorCode,a as configure,t as default,e as registerComponent,s as registerComponents};
1
+ import{$ as r,r as s,e}from"./shared-CM0Gy9QI.js";import{E as o}from"./shared-CM0Gy9QI.js";import{c as a}from"./shared-7ZWfGAEo.js";const t={registerComponent:e,registerComponents:s,$use:r,configure:a};export{r as $use,o as ErrorCode,a as configure,t as default,e as registerComponent,s as registerComponents};
2
2
  //# sourceMappingURL=core.js.map
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{l as a,a as s,b as e,c as o,d as r,$ as n,r as t,e as i,f as l}from"./shared-Cce5mWkr.js";import{E as m}from"./shared-Cce5mWkr.js";import{$ as d,a as p}from"./shared-DGGk2qBc.js";import{c as y}from"./shared-CgY9vs70.js";const f=a=>l.loadLazyComponent(a),z={registerComponent:i,registerComponents:t,$use:n,$emit:p,$listen:d,loadLazyComponent:f,configure:y,lazyOnIdle:r,lazyOnVisible:o,lazyOnMedia:e,lazyOnInteraction:s,lazyOnDelay:a};export{p as $emit,d as $listen,n as $use,m as ErrorCode,y as configure,z as default,a as lazyOnDelay,r as lazyOnIdle,s as lazyOnInteraction,e as lazyOnMedia,o as lazyOnVisible,f as loadLazyComponent,i as registerComponent,t as registerComponents};
1
+ import{l as a,a as s,b as e,c as o,d as r,$ as n,r as t,e as i,f as l}from"./shared-CM0Gy9QI.js";import{E as m}from"./shared-CM0Gy9QI.js";import{$ as d,a as p}from"./shared-DGGk2qBc.js";import{c as y}from"./shared-7ZWfGAEo.js";const f=a=>l.loadLazyComponent(a),z={registerComponent:i,registerComponents:t,$use:n,$emit:p,$listen:d,loadLazyComponent:f,configure:y,lazyOnIdle:r,lazyOnVisible:o,lazyOnMedia:e,lazyOnInteraction:s,lazyOnDelay:a};export{p as $emit,d as $listen,n as $use,m as ErrorCode,y as configure,z as default,a as lazyOnDelay,r as lazyOnIdle,s as lazyOnInteraction,e as lazyOnMedia,o as lazyOnVisible,f as loadLazyComponent,i as registerComponent,t as registerComponents};
2
2
  //# sourceMappingURL=index.js.map
package/dist/lazy.js CHANGED
@@ -1,2 +1,2 @@
1
- import{h as a,i as e,j as s,l as n,d as o,a as y,b as l,c as t}from"./shared-Cce5mWkr.js";export{a as defaultLazyStrategy,e as forceLoadLazyComponent,s as isLazyComponent,n as lazyOnDelay,o as lazyOnIdle,y as lazyOnInteraction,l as lazyOnMedia,t as lazyOnVisible};
1
+ import{h as a,i as e,j as s,l as n,d as o,a as y,b as l,c as t}from"./shared-CM0Gy9QI.js";export{a as defaultLazyStrategy,e as forceLoadLazyComponent,s as isLazyComponent,n as lazyOnDelay,o as lazyOnIdle,y as lazyOnInteraction,l as lazyOnMedia,t as lazyOnVisible};
2
2
  //# sourceMappingURL=lazy.js.map
@@ -0,0 +1,2 @@
1
+ import{s as o,g as r}from"./shared-CM0Gy9QI.js";function a(a){void 0!==a.cacheSize&&o(a.cacheSize),void 0!==a.onError&&r(a.onError)}export{a as c};
2
+ //# sourceMappingURL=shared-7ZWfGAEo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared-CgY9vs70.js","sources":["../src/core/configure.ts"],"sourcesContent":["/**\r\n * Framework-level configuration API for LadrillosJS.\r\n *\r\n * Exposed to consumers via `import { configure } from 'ladrillosjs'`.\r\n * All options are optional; unspecified keys retain their defaults.\r\n */\r\n\r\nimport { setCacheSize } from \"./component/cache\";\r\nimport {\r\n setErrorHandler,\r\n type LadrillosErrorHandler,\r\n} from \"../utils/devWarnings\";\r\n\r\n/**\r\n * Options accepted by `configure()`.\r\n */\r\nexport interface LadrillosConfig {\r\n /**\r\n * Maximum number of component source files retained in the LRU cache.\r\n * Defaults to 25. Must be a positive integer.\r\n */\r\n cacheSize?: number;\r\n\r\n /**\r\n * Custom error handler. Called in addition to the framework's built-in\r\n * console logging so embedders can route framework errors to telemetry.\r\n *\r\n * @example\r\n * configure({\r\n * onError: (err) => telemetry.capture(err),\r\n * });\r\n */\r\n onError?: LadrillosErrorHandler | null;\r\n}\r\n\r\n/**\r\n * Configure framework-level options.\r\n *\r\n * Safe to call at any time; subsequent calls override prior values. Pass\r\n * `onError: null` to clear a previously registered handler.\r\n */\r\nexport function configure(config: LadrillosConfig): void {\r\n if (config.cacheSize !== undefined) {\r\n setCacheSize(config.cacheSize);\r\n }\r\n if (config.onError !== undefined) {\r\n setErrorHandler(config.onError);\r\n }\r\n}\r\n"],"names":["configure","config","cacheSize","setCacheSize","onError","setErrorHandler"],"mappings":"gDAyCO,SAASA,EAAUC,QACC,IAArBA,EAAOC,WACTC,EAAaF,EAAOC,gBAEC,IAAnBD,EAAOG,SACTC,EAAgBJ,EAAOG,QAE3B"}
1
+ {"version":3,"file":"shared-7ZWfGAEo.js","sources":["../src/core/configure.ts"],"sourcesContent":["/**\r\n * Framework-level configuration API for LadrillosJS.\r\n *\r\n * Exposed to consumers via `import { configure } from 'ladrillosjs'`.\r\n * All options are optional; unspecified keys retain their defaults.\r\n */\r\n\r\nimport { setCacheSize } from \"./component/cache\";\r\nimport {\r\n setErrorHandler,\r\n type LadrillosErrorHandler,\r\n} from \"../utils/devWarnings\";\r\n\r\n/**\r\n * Options accepted by `configure()`.\r\n */\r\nexport interface LadrillosConfig {\r\n /**\r\n * Maximum number of component source files retained in the LRU cache.\r\n * Defaults to 25. Must be a positive integer.\r\n */\r\n cacheSize?: number;\r\n\r\n /**\r\n * Custom error handler. Called in addition to the framework's built-in\r\n * console logging so embedders can route framework errors to telemetry.\r\n *\r\n * @example\r\n * configure({\r\n * onError: (err) => telemetry.capture(err),\r\n * });\r\n */\r\n onError?: LadrillosErrorHandler | null;\r\n}\r\n\r\n/**\r\n * Configure framework-level options.\r\n *\r\n * Safe to call at any time; subsequent calls override prior values. Pass\r\n * `onError: null` to clear a previously registered handler.\r\n */\r\nexport function configure(config: LadrillosConfig): void {\r\n if (config.cacheSize !== undefined) {\r\n setCacheSize(config.cacheSize);\r\n }\r\n if (config.onError !== undefined) {\r\n setErrorHandler(config.onError);\r\n }\r\n}\r\n"],"names":["configure","config","cacheSize","setCacheSize","onError","setErrorHandler"],"mappings":"gDAyCO,SAASA,EAAUC,QACC,IAArBA,EAAOC,WACTC,EAAaF,EAAOC,gBAEC,IAAnBD,EAAOG,SACTC,EAAgBJ,EAAOG,QAE3B"}
@@ -0,0 +1,2 @@
1
+ import{e,c as t,b as n}from"./shared-DGGk2qBc.js";const r=/{([^}]+)}/g;function o(e,t){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e.startsWith("/")?new URL(e,window.location.origin).href:e:new URL(e,t).href}function s(e){return{registerComponent:function(t,n,r=!0,s=!1){const i=o(n,e);return Ft.registerComponent(t,i,r,s)},registerComponents:function(t){const n=Array.isArray(t)?t.map(t=>({...t,path:o(t.path,e)})):Object.entries(t).map(([t,n])=>"string"==typeof n?{name:t,path:o(n,e)}:{name:t,...n,path:o(n.path,e)});return Ft.registerComponents(n)},$use:function(t,n=!0,r=!1){const s=function(e){return(e.split("/").pop()?.replace(/\.[^.]+$/,"")||e).replace(/([a-z])([A-Z])/g,"$1-$2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1-$2").toLowerCase()}(t),i=o(t,e);return Ft.registerComponent(s,i,n,r)}}}const i=["registerComponent","registerComponents","$use"],a=s(window.location.href),c=a.registerComponent,l=a.registerComponents,u=a.$use;let f=null;var p=/* @__PURE__ */(e=>(e[e.EXPRESSION_EVAL_FAILED=101]="EXPRESSION_EVAL_FAILED",e[e.EXPRESSION_SYNTAX_ERROR=102]="EXPRESSION_SYNTAX_ERROR",e[e.EXPRESSION_UNDEFINED_VAR=103]="EXPRESSION_UNDEFINED_VAR",e[e.EXPRESSION_NULL_ACCESS=104]="EXPRESSION_NULL_ACCESS",e[e.SCRIPT_EXTRACT_FAILED=201]="SCRIPT_EXTRACT_FAILED",e[e.SCRIPT_EXECUTION_FAILED=202]="SCRIPT_EXECUTION_FAILED",e[e.EVENT_HANDLER_FAILED=301]="EVENT_HANDLER_FAILED",e[e.DIRECTIVE_ERROR=401]="DIRECTIVE_ERROR",e[e.LOOP_ERROR=402]="LOOP_ERROR",e[e.CONDITIONAL_ERROR=403]="CONDITIONAL_ERROR",e[e.COMPONENT_LOAD_FAILED=501]="COMPONENT_LOAD_FAILED",e[e.COMPONENT_NOT_FOUND=502]="COMPONENT_NOT_FOUND",e[e.MODULE_LOAD_FAILED=601]="MODULE_LOAD_FAILED",e[e.MODULE_EXECUTION_FAILED=602]="MODULE_EXECUTION_FAILED",e))(p||{});let d=null;function h(e){d=e}function m(e,t,n){const r=function(e,t){const n=function(e){const t=void 0!==e?e:f;if(!t)return"";const n=[];if(t.tagName&&n.push(`<${t.tagName}>`),t.sourcePath){const e=t.sourcePath.split("/").pop()||t.sourcePath;n.push(`(${e})`)}return n.length>0?` in ${n.join(" ")}`:""}(t);return`${e}${n}`}(e,t);"undefined"!=typeof window&&"undefined"!=typeof console&&console,function(e,t){if(d)try{const n=e instanceof Error?e:new Error(String(e));d(n,t??null)}catch{}}(n instanceof Error?n:new Error(r,void 0!==n?{cause:n}:void 0),t)}function g(e,t,n={}){var r;n.errorCode||(r=t)instanceof SyntaxError||r instanceof ReferenceError||r instanceof TypeError&&(r.message.includes("Cannot read properties of null")||r.message.includes("Cannot read properties of undefined")),function(e){if(e instanceof SyntaxError)return"Invalid expression syntax";if(e instanceof ReferenceError){const t=e.message.match(/(\w+) is not defined/);return t?`Undefined variable: "${t[1]}"`:"Undefined variable"}e instanceof TypeError&&(e.message.includes("Cannot read properties of null")||e.message.includes("Cannot read properties of undefined"))}(t)}const _=/* @__PURE__ */new Map,y=/* @__PURE__ */Symbol("reactive-array"),b=["push","pop","shift","unshift","splice","sort","reverse","fill","copyWithin"];function v(e,t){return e[y]?e:new Proxy(e,{get(e,n){if(n===y)return!0;const r=e[n];return"string"==typeof n&&b.includes(n)&&"function"==typeof r?(...n)=>{const o=n.map(e=>Array.isArray(e)?v(e,t):e),s=r.apply(e,o);return t(),s}:Array.isArray(r)?v(r,t):r},set(e,n,r){const o="string"==typeof n?parseInt(n,10):NaN,s=!isNaN(o),i="length"===n,a=Array.isArray(r)?v(r,t):r;return e[n]===a||(e[n]=a,(s||i)&&t()),!0},deleteProperty(e,n){const r=delete e[n];return r&&t(),r}})}function w(e,t){for(const n of Object.keys(e)){const r=e[n];Array.isArray(r)?e[n]=v(r,t):r&&"object"==typeof r&&!Array.isArray(r)&&w(r,t)}return e}function E(e,t,n,r){const o=function(e,t){const n=/* @__PURE__ */new Map;for(const r of t)n.set(r,/* @__PURE__ */new Set);for(const r of e)for(const e of r.bindings)for(const o of t)A(e.raw,o)&&n.get(o).add(r);return n}(t,Object.keys(e));w(e,()=>{r&&r()});const s=new Proxy(e,{get:(e,t)=>e[t],set(e,s,i){const a=!(s in e);if(!a&&e[s]===i)return!0;const c=Array.isArray(i)?v(i,()=>{r&&r()}):i;return e[s]=c,a&&function(e,t,n){n.set(e,/* @__PURE__ */new Set);for(const r of t)for(const t of r.bindings)A(t.raw,e)&&n.get(e).add(r)}(s,t,o),e.__suspendReactivity||((e,t)=>{const s=o.get(e);if(s)for(const r of s)n(r,t);r&&r()})(s,e),!0}});return s}function A(e,t){const n=function(e){let t=_.get(e);if(!t){const n=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=new RegExp(`\\b${n}\\b`),_.set(e,t)}return t}(t);return n.test(e)}const $=/* @__PURE__ */new Map,S=/* @__PURE__ */new Map,C=/(?:import|export)\s+(?:[\s\S]*?\s+from\s+)?['"]([^'"]+)['"]/g,N=/import\s*\(\s*['"]([^'"]+)['"]\s*\)/g,x=[".ts",".tsx",".mts"];function R(e){return e.startsWith("./")||e.startsWith("../")}function L(e){return x.some(t=>e.endsWith(t))}function k(e){return!(e.startsWith("/")||e.startsWith("./")||e.startsWith("../")||e.startsWith("http://")||e.startsWith("https://")||e.startsWith("data:")||e.startsWith("blob:"))}function T(e,t){let n=e;const r=[],o=[];return n=n.replace(C,(e,n)=>{if(R(n)){const r=new URL(n,t).href;return L(n)&&o.push(n),e.replace(n,r)}return k(n)&&r.push(n),e}),n=n.replace(N,(e,n)=>{if(R(n)){const e=new URL(n,t).href;return L(n)&&o.push(n),`import("${e}")`}return k(n)&&r.push(n),e}),n}const I=/^(?:export\s+)?(?:let|const|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)/gm,O=["$emit","$listen","$refs","registerComponent","registerComponents","$use"];async function M(e,t,n){if(e.external)return document.querySelector(`script[src="${e.src}"]`)?Promise.resolve(void 0):new Promise((t,n)=>{const r=document.createElement("script");r.src=e.src,e.type&&(r.type=e.type),r.onload=()=>t(void 0),r.onerror=t=>n(new Error(`Failed to load external script: ${e.src}`)),document.head.appendChild(r)});if("module"!==e.type)return document.querySelector(`script[src="${e.src}"]`)?Promise.resolve(void 0):new Promise((t,n)=>{const r=document.createElement("script");r.src=e.src,e.type&&(r.type=e.type),r.onload=()=>t(void 0),r.onerror=t=>n(new Error(`Failed to load script: ${e.src}`)),document.head.appendChild(r)});try{const r=await fetch(e.src);if(!r.ok)throw new Error(`Failed to fetch module: ${e.src}`);const o=T(await r.text(),e.src),s=function(e){const t=function(e){const t=[];let n;for(I.lastIndex=0;null!==(n=I.exec(e));)t.push(n[1]);const r=/^(?:export\s+)?function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)/gm;for(;null!==(n=r.exec(e));)t.includes(n[1])||t.push(n[1]);return t}(e),n=/* @__PURE__ */new Set,r=/export\s+(?:let|const|var|function)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)/g;let o;for(;null!==(o=r.exec(e));)n.add(o[1]);const s=/export\s*\{([^}]+)\}/g;for(;null!==(o=s.exec(e));)o[1].split(",").map(e=>e.trim().split(/\s+as\s+/)[0].trim()).forEach(e=>n.add(e));const i=t.filter(e=>!n.has(e));return 0===i.length?e:`${e}\nexport { ${i.join(", ")} };`}(function(e){const t=[];let n=e;if(n=n.replace(/import\s*\{([^}]+)\}\s*from\s*(['"][^'"]+['"])\s*;?/g,(e,n,r)=>{const o=n.split(",").map(e=>e.trim()),s=[];for(const i of o){if(!i)continue;const e=i.match(/^(\w+)\s+as\s+(\w+)$/);if(e){const[,n,r]=e,o=`__raw_${r}`;s.push(`${n} as ${o}`),t.push(`const ${r} = __wrapReactiveArray(${o}, __ladrillos_componentId);`)}else{const e=`__raw_${i}`;s.push(`${i} as ${e}`),t.push(`const ${i} = __wrapReactiveArray(${e}, __ladrillos_componentId);`)}}return`import { ${s.join(", ")} } from ${r};`}),t.length>0){const e=n.split("\n");let r=-1;for(let t=0;t<e.length;t++){const n=e[t].trim();(n.startsWith("import ")||n.startsWith("import{"))&&(r=t)}r>=0&&(e.splice(r+1,0,"","// === Reactive Import Wrappers ===",...t,"// === End Reactive Import Wrappers ===",""),n=e.join("\n"))}return n}(o)),i=function(e){const t=/* @__PURE__ */new Set;for(const n of O){const r=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");new RegExp(`(?:^|[\\s,{])${r}(?:\\s+as\\b|[\\s,}=;(])|\\b(?:let|const|var|function)\\s+${r}\\b`,"m").test(e)&&t.add(n)}return t}(o),a=function(e,t,n=/* @__PURE__ */new Set){const r=(e,t)=>n.has(e)?"":t;return`\n// === LadrillosJS Framework Helpers (auto-injected) ===\nconst __ladrillos_componentId = "${e||"anonymous"}";\nconst __ladrillos_componentUrl = "${t||"unknown"}";\n\n// Global event bus (shared across all components)\nif (!globalThis.__ladrillosEventBus) {\n globalThis.__ladrillosEventBus = {\n listeners: new Map(),\n componentListeners: new Map()\n };\n}\n\n// Global state change callbacks (for reactive array updates)\nif (!globalThis.__ladrillosStateCallbacks) {\n globalThis.__ladrillosStateCallbacks = new Map();\n}\n\n// Reactive array symbol\nconst __REACTIVE_ARRAY = Symbol.for("ladrillos-reactive-array");\n\n// Array mutation methods to intercept\nconst __ARRAY_METHODS = ["push", "pop", "shift", "unshift", "splice", "sort", "reverse", "fill", "copyWithin"];\n\n// Wrap an array in a reactive proxy\nconst __wrapReactiveArray = (arr, componentId) => {\n if (!Array.isArray(arr) || arr[__REACTIVE_ARRAY]) return arr;\n \n const onMutate = () => {\n const callback = globalThis.__ladrillosStateCallbacks?.get(componentId);\n if (callback) callback();\n };\n \n return new Proxy(arr, {\n get(target, key) {\n if (key === __REACTIVE_ARRAY) return true;\n const value = target[key];\n if (typeof key === "string" && __ARRAY_METHODS.includes(key) && typeof value === "function") {\n return (...args) => {\n const result = value.apply(target, args);\n onMutate();\n return result;\n };\n }\n if (Array.isArray(value)) return __wrapReactiveArray(value, componentId);\n return value;\n },\n set(target, key, value) {\n const index = parseInt(key, 10);\n const isIndex = !isNaN(index);\n const isLength = key === "length";\n target[key] = Array.isArray(value) ? __wrapReactiveArray(value, componentId) : value;\n if (isIndex || isLength) onMutate();\n return true;\n }\n });\n};\n\nconst __ladrillos_emit = (eventName, data) => {\n const listeners = globalThis.__ladrillosEventBus.listeners.get(eventName);\n if (!listeners || listeners.size === 0) return;\n for (const registration of listeners) {\n try {\n registration.callback(data);\n } catch (error) {\n console.error(\`[LadrillosJS] Error in event listener for "\${eventName}":\`, error);\n }\n }\n};\n${r("$emit","const $emit = __ladrillos_emit;")}\n\nconst __ladrillos_listen = (eventName, callback) => {\n const bus = globalThis.__ladrillosEventBus;\n let listeners = bus.listeners.get(eventName);\n if (!listeners) {\n listeners = new Set();\n bus.listeners.set(eventName, listeners);\n }\n const registration = { callback, componentId: __ladrillos_componentId };\n listeners.add(registration);\n\n // Track by component ID for cleanup\n let componentRegs = bus.componentListeners.get(__ladrillos_componentId);\n if (!componentRegs) {\n componentRegs = new Set();\n bus.componentListeners.set(__ladrillos_componentId, componentRegs);\n }\n componentRegs.add({ event: eventName, registration });\n\n // Return unsubscribe function\n return () => {\n listeners?.delete(registration);\n if (listeners?.size === 0) bus.listeners.delete(eventName);\n const compRegs = bus.componentListeners.get(__ladrillos_componentId);\n if (compRegs) {\n for (const reg of compRegs) {\n if (reg.registration === registration) {\n compRegs.delete(reg);\n break;\n }\n }\n if (compRegs.size === 0) bus.componentListeners.delete(__ladrillos_componentId);\n }\n };\n};\n${r("$listen","const $listen = __ladrillos_listen;")}\n\n// Global refs registry (shared across all components)\n// Each component gets its own Map, keyed by component ID\nif (!globalThis.__ladrillosRefs) {\n globalThis.__ladrillosRefs = new Map();\n}\n\n// Helper to wrap refs Map in Proxy for cleaner dot notation access\nconst __createRefsProxy = (map) => new Proxy(map, {\n get(target, prop, receiver) {\n if (prop in target) {\n const value = Reflect.get(target, prop, receiver);\n return typeof value === "function" ? value.bind(target) : value;\n }\n if (typeof prop === "string") return target.get(prop);\n return undefined;\n },\n set(target, prop, value) {\n if (typeof prop === "string") { target.set(prop, value); return true; }\n return false;\n },\n has(target, prop) {\n return typeof prop === "string" ? target.has(prop) || prop in target : prop in target;\n }\n});\n\n// Get or create refs Map for this component (wrapped in Proxy)\nif (!globalThis.__ladrillosRefs.has(__ladrillos_componentId)) {\n globalThis.__ladrillosRefs.set(__ladrillos_componentId, __createRefsProxy(new Map()));\n}\n\n// $refs for this component - supports both $refs.inputEl and $refs.get("inputEl")\nconst __ladrillos_refs = globalThis.__ladrillosRefs.get(__ladrillos_componentId);\n${r("$refs","const $refs = __ladrillos_refs;")}\n\n// Helper to resolve relative paths against component URL\nconst __resolvePath = (path) => {\n if (path.startsWith("http://") || path.startsWith("https://") || path.startsWith("/")) {\n return path.startsWith("/") ? new URL(path, window.location.origin).href : path;\n }\n return new URL(path, __ladrillos_componentUrl).href;\n};\n\n// Helper to convert filename to tag name\nconst __filenameToTagName = (path) => {\n const filename = path.split("/").pop()?.replace(/\\.[^.]+$/, "") || path;\n return filename.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/[_\\s]+/g, "-").toLowerCase();\n};\n\n// registerComponent - Register a child component\nconst __ladrillos_registerComponent = async (name, path, useShadowDOM = true) => {\n const resolvedPath = __resolvePath(path);\n return globalThis.ladrillosjs.registerComponent({ name, path: resolvedPath, useShadowDOM });\n};\n${r("registerComponent","const registerComponent = __ladrillos_registerComponent;")}\n\n// registerComponents - Register multiple components at once\nconst __ladrillos_registerComponents = async (configs) => {\n const resolvedConfigs = configs.map(config => ({\n ...config,\n path: __resolvePath(config.path)\n }));\n return globalThis.ladrillosjs.registerComponents(resolvedConfigs);\n};\n${r("registerComponents","const registerComponents = __ladrillos_registerComponents;")}\n\n// $use - Shorthand for registerComponent with auto-derived tag name\nconst __ladrillos_use = async (path, useShadowDOM = true) => {\n const tagName = __filenameToTagName(path);\n return __ladrillos_registerComponent(tagName, path, useShadowDOM);\n};\n${r("$use","const $use = __ladrillos_use;")}\n\n// === End Framework Helpers ===\n\n`}(t,n||e.src,i),c=new Blob([a+s],{type:"text/javascript"}),l=URL.createObjectURL(c);try{return await(0,eval)(`import("${l}")`)}finally{URL.revokeObjectURL(l)}}catch(r){throw r}}const D=/* @__PURE__ */new Map;async function P(e){if(S.has(e))return S.get(e);const t=(async()=>{try{return await(0,eval)(`import("${e}")`)}catch(t){throw t}})();return S.set(e,t),t}function F(e,t){return t&&Array.isArray(e)?v(e,t):e}async function j(n,r,o,a,c,l,u){if("module"!==n.type)throw new Error('executeModuleScriptWithReactivity only handles type="module" scripts');const f=n.content,p=await async function(e,t,n){const r=function(e){const t=[],n=/import\s+(?:(\{[^}]+\})|(\*\s+as\s+\w+)|(\w+)(?:\s*,\s*(\{[^}]+\}))?)?\s*(?:from\s+)?['"]([^'"]+)['"]/g;let r;for(;null!==(r=n.exec(e));){const[e,n,o,s,i,a]=r,c={statement:e,specifier:a,imports:[],isDefault:!1,isNamespace:!1,isSideEffect:!1};if(n||o||s||(c.isSideEffect=!0),s&&(c.isDefault=!0,c.imports.push({imported:"default",local:s})),o){c.isNamespace=!0;const e=o.replace(/\*\s+as\s+/,"").trim();c.imports.push({imported:"*",local:e})}const l=n||i;if(l){const e=l.slice(1,-1).split(",").map(e=>e.trim()).filter(Boolean);for(const t of e){const e=t.match(/(\w+)\s+as\s+(\w+)/);c.imports.push(e?{imported:e[1],local:e[2]}:{imported:t,local:t})}}t.push(c)}return t}(e),o={};for(const i of r){if(i.isSideEffect){const e=R(i.specifier)?new URL(i.specifier,t).href:i.specifier;await P(e);continue}const e=R(i.specifier)?new URL(i.specifier,t).href:i.specifier;try{const t=await P(e);for(const e of i.imports){let r;r="*"===e.imported?t:"default"===e.imported?t.default:t[e.imported],o[e.local]=F(r,n)}}catch(s){}}return o}(f,r,l);if(c){const t=/* @__PURE__ */new Set([...i,...e,"ladrillosjs","$host","$refs","event","state"]);for(const[e,n]of Object.entries(p))t.has(e)||e in c||(c[e]=n)}const d=function(e){return e.replace(/import\s+(?:(?:\{[^}]+\}|\*\s+as\s+\w+|\w+)(?:\s*,\s*\{[^}]+\})?\s+from\s+)?['"][^'"]+['"]\s*;?/g,"").trim()}(f),{variables:h,functions:m}=function(e){const t=[],n=[],r=e.replace(/`[^`]*`/g,e=>" ".repeat(e.length)).replace(/"(?:[^"\\]|\\.)*"/g,e=>" ".repeat(e.length)).replace(/'(?:[^'\\]|\\.)*'/g,e=>" ".repeat(e.length)).replace(/\/\*[\s\S]*?\*\//g,e=>" ".repeat(e.length)).replace(/\/\/[^\n]*/g,e=>" ".repeat(e.length));let o=0,s=0;for(;s<r.length;){const e=r[s];if("{"!==e)if("}"!==e){if(0===o){const e=r.slice(s).match(/^(?:async\s+)?function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(e){n.push(e[1]),s+=e[0].length;continue}const o=r.slice(s).match(/^(?:let|const|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(o){t.push(o[1]),s+=o[0].length;continue}}s++}else o--,s++;else o++,s++}return{variables:t,functions:n}}(d),g=z(d,h),_=Object.keys(p),y=Object.values(p),b=`\n "use strict";\n return (async () => {\n ${g}\n ${m.length>0?`return { ${m.join(", ")} };`:"return {};"}\n })();\n `;try{const n=["console","alert","Math","JSON","Date","Array","Object","String","Number","Boolean","Promise","setTimeout","setInterval","clearTimeout","clearInterval"],l=n.map(e=>globalThis[e]),f=["$refs","__state__","$host"],p=[a||/* @__PURE__ */new Map,c||{},u],d=s(r),h=[d.registerComponent,d.registerComponents,d.$use],m=t(o||"anonymous"),g=[m.$emit,m.$listen],v={...globalThis.ladrillosjs||{},registerComponent:d.registerComponent,registerComponents:d.registerComponents},w={registerComponent:d.registerComponent,registerComponents:d.registerComponents,$use:d.$use,$emit:m.$emit,$listen:m.$listen,ladrillosjs:v},E=new Set(_),A=[..._],$=_.map((e,t)=>e in w?w[e]:y[t]),S=(e,t)=>{for(let n=0;n<e.length;n++){const r=e[n];E.has(r)||(E.add(r),A.push(r),$.push(t[n]))}};S(n,l),S(i,h),S(e,g),S(f,p),S(["ladrillosjs"],[v]);const C=new Function(...A,b),N=await C(...$);return{...c||{},...N||{}}}catch(v){throw v}}function z(e,t){if(0===t.length)return e;const n=[],r=e=>(n.push(e),`__STRING_PLACEHOLDER_${n.length-1}__`);let o="",s=0;for(;s<e.length;){const n=e[s];if("/"===n&&"/"===e[s+1]){const t=e.indexOf("\n",s),n=-1===t?e.length:t;o+=e.slice(s,n),s=n;continue}if("/"===n&&"*"===e[s+1]){const t=e.indexOf("*/",s+2),n=-1===t?e.length:t+2;o+=e.slice(s,n),s=n;continue}if('"'===n||"'"===n){let t=s+1;for(;t<e.length&&e[t]!==n;)"\\"===e[t]?t+=2:t++;o+=r(e.slice(s,t+1)),s=t+1;continue}if("`"===n){o+="`",s++;let n=s;for(;s<e.length&&"`"!==e[s];)if("\\"!==e[s]){if("$"===e[s]&&"{"===e[s+1]){s>n&&(o+=r(e.slice(n,s))),o+="${",s+=2;const i=s;let a=1;for(;s<e.length&&a>0;){const t=e[s];if('"'!==t&&"'"!==t){if("`"===t){s++;let t=0;for(;s<e.length;)if("\\"!==e[s]){if("`"===e[s]&&0===t){s++;break}"$"!==e[s]||"{"!==e[s+1]?("}"===e[s]&&t>0&&t--,s++):(t++,s+=2)}else s+=2;continue}if("{"===t)a++;else if("}"===t&&(a--,0===a))break;s++}else{for(s++;s<e.length&&e[s]!==t;)"\\"===e[s]?s+=2:s++;s++}}o+=z(e.slice(i,s),t),"}"===e[s]&&s++,o+="}",n=s;continue}s++}else s+=2;s>n&&(o+=r(e.slice(n,s))),o+="`",s++;continue}o+=n,s++}for(const a of t){const e=new RegExp(`\\b(let|const|var)\\s+(${U(a)})\\s*=`,"g");o=o.replace(e,`__state__.${a} ??=`)}for(const a of t){const e=new RegExp(`(?<![^.]\\.)(?<!__state__\\.)\\b${U(a)}\\b(?!\\s*[:(])`,"g");o=o.replace(e,`__state__.${a}`)}let i=o;for(let a=0;a<n.length;a++)i=i.replace(`__STRING_PLACEHOLDER_${a}__`,n[a]);return i}function U(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}const W=new DOMParser;async function B(e,t,n){const o=function(e){return W.parseFromString(e,"text/html")}(e),s=Array.from(o.querySelectorAll("script")),i=s.filter(e=>!e.src).map(e=>({content:(e.textContent??"").trim(),type:e.getAttribute("type")})).filter(e=>e.content.length>0),a=s.filter(e=>(e.getAttribute("src")||"").includes("html-proxy")&&"module"===e.getAttribute("type")),c=[...i,...(await Promise.all(a.map(async e=>{const t=e.getAttribute("src")||"";try{const e=await fetch(t);if(e.ok)return{content:(await e.text()).trim(),type:"module"}}catch(n){}return null}))).filter(e=>null!==e&&e.content.length>0)],l=s.filter(e=>{if(!e.src)return!1;const t=e.getAttribute("src")||"";return!t.includes("@vite/client")&&!t.includes("html-proxy")}).map(e=>{const t=e.getAttribute("type");let r=e.src;if(n)try{r=new URL(e.getAttribute("src")??e.src,n).toString()}catch{}return{src:r,type:t,external:e.hasAttribute("external")}}).filter(e=>e.src.length>0),u=l.filter(e=>!e.external),f=l.filter(e=>e.external),p=await Promise.all(u.map(async e=>{try{const t=await fetch(e.src);if(t.ok){let n=(await t.text()).trim();if(n.length>0)return"module"===e.type&&(n=T(n,e.src)),{content:n,type:e.type}}}catch{}return null}));for(const r of p)r&&c.push(r);s.forEach(e=>e.remove());const d=Array.from(o.querySelectorAll('link[rel="stylesheet"]')),h=d.map(e=>{let t=e.getAttribute("href")||"";const r=e.getAttribute("rel")||"stylesheet";if(n&&t&&!t.startsWith("http"))try{t=new URL(t,n).toString()}catch{}return{href:t,rel:r}}).filter(e=>e.href.length>0);d.forEach(e=>e.remove());const m=Array.from(o.querySelectorAll("style")),g=m.map(e=>e.textContent??"").join("\n").trim();m.forEach(e=>e.remove());const _=e=>e?Array.from(e.children).find(e=>"TEMPLATE"===e.tagName):void 0,y=_(o.body)??_(o.head);let b;if(y){const e=document.createElement("div");e.appendChild(y.content.cloneNode(!0)),b=e.innerHTML.trim()}else b=o.body.innerHTML.trim();const v=function(e){const t=/* @__PURE__ */new Set,n=function(e){const t=/* @__PURE__ */new Set,n=/<for\b[^>]*?\beach\s*=\s*["']([^"']+)["'][^>]*>/gi;let r;for(;null!==(r=n.exec(e));){const e=r[1].trim(),n=e.match(/^\(\s*([a-zA-Z_$][a-zA-Z0-9_$]*)\s*,\s*([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\)\s+in\s+/);if(n){t.add(n[1]),t.add(n[2]);continue}const o=e.match(/^([a-zA-Z_$][a-zA-Z0-9_$]*)\s+in\s+/);o&&t.add(o[1])}return t}(e),o=e.matchAll(r);for(const r of o){const e=r[1].trim().match(/^([a-zA-Z_$][a-zA-Z0-9_$]*)/);if(e){const r=e[1];["true","false","null","undefined","new","this","typeof","instanceof","void","delete","in","of","if","else","for","while","do","switch","case","break","continue","return","throw","try","catch","finally","function","class","const","let","var","Math","Date","JSON","Array","Object","String","Number","Boolean","console","window","document"].includes(r)||n.has(r)||t.add(r)}}return Array.from(t)}(b);return{tagName:t,template:b,scripts:c,externalScripts:f,externalStyles:h,styles:g,sourcePath:n,lazy:!1,templateBindings:v}}const H=/* @__PURE__ */new Map;let Z=25;const q=e=>{if(!Number.isFinite(e)||e<1)throw new Error(`[LadrillosJS] configure({ cacheSize }) requires a positive integer, got ${e}`);for(Z=Math.floor(e);H.size>Z;){const e=H.keys().next().value;if(!e)break;H.delete(e)}},X=(e,t)=>{if(H.has(e))H.delete(e);else if(H.size>=Z){const e=H.keys().next().value;e&&H.delete(e)}H.set(e,t)};async function V(e){if(!e)throw new Error("Path cannot be null or empty");const t=(e=>{const t=H.get(e);return t&&(H.delete(e),H.set(e,t)),t})(e);if(t)return{source:t,resolvedPath:e};try{const t=await async function(e){if(e.endsWith(".html")){const t=await fetch(e);return t.ok?{path:e,response:t}:null}const t=e.endsWith("/")?e.slice(0,-1):e,n=`${t}/index.html`;try{const e=await fetch(n);if(e.ok)return{path:n,response:e}}catch{}try{const e=await fetch(t);if(e.ok&&(e.headers.get("content-type")||"").includes("text/html"))return{path:t,response:e}}catch{}return null}(e);if(!t)throw new Error(`Failed to fetch component from ${e}: Could not resolve path. Tried: ${e}${e.endsWith(".html")?"":` and ${e}/index.html`}`);const n=await t.response.text();return X(e,n),t.path!==e&&X(t.path,n),{source:n,resolvedPath:t.path}}catch(n){return}}function G(e){const t=e.trim(),n=function(e){const t=function(e){let t=0,n=0,r=0,o=!1,s=!1,i=!1,a=!1;for(let c=0;c<e.length;c++){const l=e[c];if(a)a=!1;else if("\\"!==l)if(s||i||"'"!==l)if(o||i||'"'!==l)if(o||s||"`"!==l){if(!(o||s||i)&&("("===l?t++:")"===l?t=Math.max(0,t-1):"["===l?n++:"]"===l?n=Math.max(0,n-1):"{"===l?r++:"}"===l&&(r=Math.max(0,r-1)),"("===l&&0===t&&0===n&&0===r))return c}else i=!i;else s=!s;else o=!o;else a=!0}return-1}(e);if(t<0)return null;const n=function(e,t){let n=0,r=!1,o=!1,s=!1,i=!1;for(let a=t;a<e.length;a++){const t=e[a];if(i)i=!1;else if("\\"!==t)if(o||s||"'"!==t)if(r||s||'"'!==t)if(r||o||"`"!==t){if(!(r||o||s))if("("===t)n++;else if(")"===t){if(n--,0===n)return a;if(n<0)return-1}}else s=!s;else o=!o;else r=!r;else i=!0}return-1}(e,t);if(n<0)return null;if(0!==e.slice(n+1).trim().length)return null;const r=J(e.slice(0,t).trim());if(!r)return null;return{calleePath:r,args:function(e){const t=[];let n="",r=0,o=0,s=0,i=!1,a=!1,c=!1,l=!1;for(let f=0;f<e.length;f++){const u=e[f];if(l)n+=u,l=!1;else if("\\"!==u)if(a||c||"'"!==u)if(i||c||'"'!==u)if(i||a||"`"!==u){if(!i&&!a&&!c&&("("===u?r++:")"===u?r=Math.max(0,r-1):"["===u?o++:"]"===u?o=Math.max(0,o-1):"{"===u?s++:"}"===u&&(s=Math.max(0,s-1)),","===u&&0===r&&0===o&&0===s)){const e=n.trim();e.length>0&&t.push(e),n="";continue}n+=u}else c=!c,n+=u;else a=!a,n+=u;else i=!i,n+=u;else n+=u,l=!0}const u=n.trim();return u.length>0&&t.push(u),t}(e.slice(t+1,n))}}(t);if(n)return{raw:t,path:n.calleePath,isFunction:!0,isExpression:!0,functionArgs:n.args};const r=J(t);return r?{raw:t,path:r,isFunction:!1,isExpression:!1}:{raw:t,path:[],isExpression:!0}}function J(e){return/^[$A-Z_][0-9A-Z_$]*(?:\s*\.\s*[$A-Z_][0-9A-Z_$]*)*$/i.test(e)?e.split(".").map(e=>e.trim()).filter(e=>e.length>0):null}const Y=globalThis.requestIdleCallback||(e=>setTimeout(e,1)),K=globalThis.cancelIdleCallback||(e=>clearTimeout(e)),Q=(e=1e4)=>t=>{const n=Y(t,{timeout:e});return()=>K(n)},ee=e=>(t,n)=>{if(function(e){const{top:t,left:n,bottom:r,right:o}=e.getBoundingClientRect(),{innerHeight:s,innerWidth:i}=window;return(t>0&&t<s||r>0&&r<s)&&(n>0&&n<i||o>0&&o<i)}(n))return void t();const r=new IntersectionObserver(e=>{for(const n of e)if(n.isIntersecting){r.disconnect(),t();break}},e);return r.observe(n),()=>r.disconnect()},te=e=>t=>{if(!e)return void t();const n=matchMedia(e);if(n.matches)return void t();const r=()=>t();return n.addEventListener("change",r,{once:!0}),()=>n.removeEventListener("change",r)},ne=(e=["click","focusin"])=>{const t="string"==typeof e?[e]:e;return(e,n)=>{let r=!1;const o=t=>{r||(r=!0,s(),e(),queueMicrotask(()=>{t.target&&t.target instanceof Element&&t.target.dispatchEvent(new t.constructor(t.type,t))}))},s=()=>{for(const e of t)n.removeEventListener(e,o)};for(const i of t)n.addEventListener(i,o,{once:!0,passive:!0});return s}},re=(e=0)=>t=>{const n=setTimeout(t,e);return()=>clearTimeout(n)},oe=ee({rootMargin:"100px"});function se(e){const t=e.querySelector(':scope > template[slot="placeholder"]');return t?(t.remove(),t.content.cloneNode(!0)):null}function ie(e){const t=e.parentNode;if(!t)return;const n=function(e){if(e.hasAttribute("eager"))return null;if(e.hasAttribute("interaction")){const t=(e.getAttribute("interaction")||"").trim();if(!t)return ne();const n=t.split(",").map(e=>e.trim()).filter(Boolean);return ne(1===n.length?n[0]:n)}if(e.hasAttribute("media")){const t=e.getAttribute("media")||"";return te(t)}if(e.hasAttribute("delay")){const t=Number(e.getAttribute("delay"))||0;return re(t)}if(e.hasAttribute("idle")||e.hasAttribute("idle-timeout")){const t=e.getAttribute("idle-timeout");return t?Q(Number(t)||1e4):Q()}const t={},n=e.getAttribute("margin");n&&(t.rootMargin=n);const r=e.getAttribute("threshold");if(null!==r){const e=Number(r);Number.isNaN(e)||(t.threshold=e)}return Object.keys(t).length>0?ee(t):oe}(e),r=e.getAttribute("src"),o=e.getAttribute("component"),s=/* @__PURE__ */new Set(["eager","visible","margin","threshold","idle","idle-timeout","delay","interaction","media","src","component"]),i=document.createComment(r?` <lazy src="${r}"> `:" <lazy> ");if(t.insertBefore(i,e),e.remove(),r){const t=(o||(a=r,(a.split(/[?#]/)[0].split("/").pop()?.replace(/\.[^.]+$/,"")||a).replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/[_\s]+/g,"-").toLowerCase())).trim();if(!t.includes("-"))return;const c=se(e),l=()=>{const n=document.createElement(t);for(const t of Array.from(e.attributes))s.has(t.name)||n.setAttribute(t.name,t.value);i.parentNode?.replaceChild(n,i)};let u=null;c&&(u=document.createComment(" /lazy-placeholder "),i.parentNode?.insertBefore(u,i.nextSibling),i.parentNode?.insertBefore(c,u));const f=async()=>{try{if(customElements.get(t)||await async function(e,t){return(await Promise.resolve().then(()=>jt)).ladrillos.registerComponent(e,t,!0,!1)}(t,r),u){let e=i.nextSibling;for(;e&&e!==u;){const t=e.nextSibling;e.parentNode?.removeChild(e),e=t}u.parentNode?.removeChild(u)}l()}catch(e){}};if(!n)return void f();const p=document.createElement("span");let d;p.setAttribute("data-lazy-sentinel",""),p.style.cssText="display:inline-block;width:0;height:0;padding:0;margin:0;border:0;",i.parentNode?.insertBefore(p,i.nextSibling);const h=()=>{d?.(),p.remove(),f()};return void(d=n(h,p))}var a;const c=se(e),l=document.createDocumentFragment();for(;e.firstChild;)l.appendChild(e.firstChild);const u=document.createComment(" /lazy ");i.parentNode?.insertBefore(u,i.nextSibling),c&&i.parentNode?.insertBefore(c,u);const f=()=>{let e=i.nextSibling;for(;e&&e!==u;){const t=e.nextSibling;e.parentNode?.removeChild(e),e=t}u.parentNode?.insertBefore(l,u)};if(!n)return void f();const p=document.createElement("span");let d;p.setAttribute("data-lazy-sentinel",""),p.style.cssText="display:inline-block;width:0;height:0;padding:0;margin:0;border:0;",i.parentNode?.insertBefore(p,i.nextSibling),p.__lazyContent=l,d=n(()=>{d?.(),p.remove(),f()},p)}function ae(e){const t=Array.from(e.querySelectorAll("lazy"));for(const n of t)ce(n)||ie(n)}function ce(e){let t=e.parentElement;for(;t;){if("FOR"===t.tagName)return!0;t=t.parentElement}return!1}function le(e){const t=[],n=e.querySelectorAll("[data-lazy-sentinel]");for(const r of Array.from(n)){const e=r.__lazyContent;e&&t.push(e)}return t}function ue(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null);let o;for(;o=n.nextNode();){if(fe(o)||pe(o))continue;const e=o.textContent;if(!e)continue;const n=[...e.matchAll(r)];if(n.length>0){const r=e,s=n.map(e=>G(e[1].trim()));t.push({node:o,bindings:s,original:r})}}const s=function(e){const t=[],n=["$bind","$ref","$no:bind","condition","each","key","track-by"],o=Array.from(e.querySelectorAll("*"));for(const s of o)if("FOR"!==s.tagName&&!fe(s)&&!s.hasAttribute("$no:bind")&&!pe(s))for(const e of Array.from(s.attributes)){if(n.includes(e.name))continue;const o=[...e.value.matchAll(r)];if(o.length>0){const n=document.createTextNode(e.value),r=o.map(e=>G(e[1].trim()));t.push({node:n,bindings:r,original:e.value,isAttribute:!0,attributeName:e.name,element:s})}}return t}(e);return t.push(...s),t}function fe(e){let t=(Node,e.parentElement);for(;t;){if("FOR"===t.tagName)return!0;t=t.parentElement}return!1}function pe(e){let t=e.parentElement;for(;t;){if(t.hasAttribute&&t.hasAttribute("$no:bind"))return!0;t=t.parentElement}return!1}const de=["onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmouseout","onmousemove","onmouseenter","onmouseleave","onkeydown","onkeyup","onkeypress","onfocus","onblur","onchange","oninput","onsubmit","onreset","onscroll","onload","onerror","ontouchstart","ontouchmove","ontouchend","ontouchcancel","ondragstart","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondrop"],he=Object.freeze(["alert","confirm","prompt","console","JSON","Math","Date","Array","Object","String","Number","Boolean","Map","Set","WeakMap","WeakSet","Symbol","BigInt","Promise","Proxy","Reflect","parseInt","parseFloat","isNaN","isFinite","Infinity","NaN","encodeURIComponent","decodeURIComponent","encodeURI","decodeURI","setTimeout","clearTimeout","setInterval","clearInterval","requestAnimationFrame","cancelAnimationFrame","requestIdleCallback","cancelIdleCallback","queueMicrotask","fetch","AbortController","AbortSignal","Headers","Request","Response","URL","URLSearchParams","navigator","location","history","localStorage","sessionStorage","crypto","document","window","globalThis","Element","HTMLElement","Event","CustomEvent","EventTarget","TextEncoder","TextDecoder","Blob","File","FileReader","FormData","Error","TypeError","RangeError","SyntaxError","ReferenceError","atob","btoa","structuredClone"]),me=Object.freeze([]),ge=/* @__PURE__ */new Set(["with","eval","arguments","constructor","prototype","break","case","catch","continue","debugger","default","delete","do","else","finally","for","function","if","in","instanceof","new","return","switch","this","throw","try","typeof","var","void","while","class","const","enum","export","extends","import","super","implements","interface","let","package","private","protected","public","static","yield","null","true","false"]),_e={enter:"Enter",tab:"Tab",esc:"Escape",escape:"Escape",space:" ",up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight",delete:"Delete",backspace:"Backspace",insert:"Insert",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",home:"Home",end:"End",pageup:"PageUp",pagedown:"PageDown"},ye=["ctrl","alt","shift","meta"],be=["prevent","stop","self","once","passive","capture"],ve={left:0,middle:1,right:2};function we(e){if(!e.startsWith("$on:"))return null;const t=e.slice(4).split(".");if(0===t.length||!t[0])return null;const n=t[0],r=t.slice(1),o={eventName:n,keyModifiers:[],systemModifiers:[],eventModifiers:[],mouseModifier:null,exact:!1};for(const s of r){const e=s.toLowerCase();"exact"!==e?be.includes(e)?o.eventModifiers.push(e):ye.includes(e)?o.systemModifiers.push(e):e in ve?o.mouseModifier=e:o.keyModifiers.push(e):o.exact=!0}return o}function Ee(e){const t={};return e.includes("passive")&&(t.passive=!0),e.includes("capture")&&(t.capture=!0),e.includes("once")&&(t.once=!0),t}function Ae(e,t){return function(n){if((!t.eventModifiers.includes("self")||n.target===n.currentTarget)&&(!(t.mouseModifier&&n instanceof MouseEvent)||function(e,t){return e.button===ve[t]}(n,t.mouseModifier))&&(!(t.systemModifiers.length>0||t.exact)||!(n instanceof KeyboardEvent||n instanceof MouseEvent)||function(e,t,n){const r={ctrl:e.ctrlKey,alt:e.altKey,shift:e.shiftKey,meta:e.metaKey};for(const o of t)if(!r[o])return!1;if(n)for(const o of ye)if(!t.includes(o)&&r[o])return!1;return!0}(n,t.systemModifiers,t.exact))){if(t.keyModifiers.length>0&&n instanceof KeyboardEvent){const e=t.keyModifiers.some(e=>function(e,t){const n=t.toLowerCase(),r=_e[n];if(r)return e.key===r;if(1===n.length)return e.key.toLowerCase()===n;const o=n.split("-").map((e,t)=>0===t?e:e.charAt(0).toUpperCase()+e.slice(1)).join("");return e.key.toLowerCase()===n||e.key.toLowerCase()===o.toLowerCase()}(n,e));if(!e)return}t.eventModifiers.includes("prevent")&&n.preventDefault(),t.eventModifiers.includes("stop")&&n.stopPropagation(),e(n)}}}function $e(e){return e.startsWith("$on:")}const Se=e=>e instanceof ShadowRoot?e.host:e;function Ce(e,t,n,r){const o=[e,...le(e)];for(const s of o){const e=Array.from(s.querySelectorAll("*"));for(const o of e)if(!xe(o)){for(const e of de){const s=o.getAttribute(e);if(s){o.removeAttribute(e);const i=e.slice(2),a=Re(s,t,n,r);a&&o.addEventListener(i,a)}}Ne(o,t,n,r)}}}function Ne(e,t,n,r){const o=Array.from(e.attributes).filter(e=>$e(e.name));for(const s of o){const o=we(s.name);if(!o)continue;const i=s.value;e.removeAttribute(s.name);const a=Re(i,t,n,r);if(!a)continue;const c=Ae(a,o),l=Ee(o.eventModifiers);e.addEventListener(o.eventName,c,l)}}function xe(e){if(e.hasAttribute("$for")||"FOR"===e.tagName)return!0;let t=e.parentElement;for(;t;){if(t.hasAttribute("$for")||"FOR"===t.tagName)return!0;t=t.parentElement}return!1}function Re(e,t,n,r){try{const o=r?.__componentUrl,s=r?.__componentId,i=De(o,s),a=Me(),c=["event","state","$refs",...a,...i.keys],l=Object.keys(t),u=l.filter(e=>"function"==typeof t[e]),f=l.filter(e=>"function"!=typeof t[e]),d=!0===t.__hasModuleScripts,h=f.length>0?`let { ${f.join(", ")} } = state;`:"",m=d&&u.length>0?`const { ${u.join(", ")} } = state;`:"",_=function(e,t){if(!e||0===t.length)return e;const n=[];let r=e.replace(/"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'/g,e=>(n.push(e),`__STRING_PLACEHOLDER_${n.length-1}__`));r=r.replace(/`(?:[^`\\$]|\\.|\$(?!\{)|\$\{[^}]*\})*`/g,e=>e.replace(/\$\{([^}]+)\}/g,(e,n)=>{let r=n;for(const o of t){const e=new RegExp(`(?<![^.]\\.)(?<!state\\.)\\b${Oe(o)}\\b(?!\\s*[:(])`,"g");r=r.replace(e,`state.${o}`)}return`\${${r}}`}));for(const s of t){const e=new RegExp(`(?<![^.]\\.)(?<!state\\.)\\b${Oe(s)}\\b(?!\\s*[:(])`,"g");r=r.replace(e,`state.${s}`)}let o=r;for(let s=0;s<n.length;s++)o=o.replace(`__STRING_PLACEHOLDER_${s}__`,n[s]);return o}(Le(n,d?u:[]),f),y=f.some(t=>new RegExp(`\\b${t}\\b`).test(e))?f.filter(t=>new RegExp(`\\b${t}\\b`).test(e)).map(e=>`state.${e} = ${e};`).join(" "):"",b=/\bawait\b/.test(e)||/\bawait\b/.test(_)||/\basync\b/.test(_),v=o||"ladrillos-event-handler",w=b?`"use strict"; ${h} ${m} ${_} try { await (async () => { ${e} })(); } finally { ${y} }\n//# sourceURL=${v}`:`"use strict"; ${h} ${m} ${_} ${e}; ${y}\n//# sourceURL=${v}`,E=Object.getPrototypeOf(async function(){}).constructor,A=b?new E(...c,w):new Function(...c,w);return e=>{try{const n=[e,t,r&&r.__refs||/* @__PURE__ */new Map,...a.map(()=>{}),...i.values],o=A(...n);o&&"function"==typeof o.catch&&o.catch(e=>{r?.tagName?.toLowerCase(),g(0,e,{errorCode:p.EVENT_HANDLER_FAILED})})}catch(n){r?.tagName?.toLowerCase(),g(0,n,{errorCode:p.EVENT_HANDLER_FAILED})}}}catch(o){return r?.tagName&&r.tagName.toLowerCase(),null}}function Le(e,t=[]){const n=[],r=/(?:async\s+)?function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\([^)]*\)\s*\{/g;let o;for(;null!==(o=r.exec(e));){if(t.includes(o[1]))continue;const r=ke(e,o.index);r&&n.push(r)}const s=/(?:const|let)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=\s*(?:async\s*)?\([^)]*\)\s*=>\s*\{/g;for(;null!==(o=s.exec(e));){if(t.includes(o[1]))continue;const r=o.index,s=e.indexOf("{",r+o[0].length-1),i=ke(e,r,s);i&&n.push(i)}return n.map(e=>e.trim()).join(";\n")+(n.length>0?";":"")}function ke(e,t,n){let r=0,o=t,s=!1,i="",a=!1;for(let c=n??t;c<e.length;c++){const t=e[c];if('"'!==t&&"'"!==t&&"`"!==t||"\\"===(c>0?e[c-1]:"")||(s?t===i&&(s=!1):(s=!0,i=t)),!s&&("{"===t&&(r++,a=!0),"}"===t&&r--,a&&0===r&&"}"===t)){o=c+1;break}}return 0!==r?null:e.slice(t,o)}function Te(e,t,n,r,o,s,i=[]){try{const a=Ie(e),c=`\n "use strict";\n ${function(e,t){if(0===t.length)return e;const n=[];let r=e.replace(/(["'])(?:(?!\1)[^\\]|\\.)*\1/g,e=>(n.push(e),`__STRING_PLACEHOLDER_${n.length-1}__`));r=r.replace(/`(?:[^`\\$]|\\.|\$(?!\{)|\$\{[^}]*\})*`/g,e=>e.replace(/\$\{([^}]+)\}/g,(e,n)=>{let r=n;for(const o of t){const e=new RegExp(`(?<![^.]\\.)(?<!__state__\\.)\\b${Oe(o)}\\b(?!\\s*[:(])`,"g");r=r.replace(e,`__state__.${o}`)}return`\${${r}}`}));for(const s of t){const e=new RegExp(`\\b(let|const|var)\\s+(${Oe(s)})\\s*=`,"g");r=r.replace(e,`__state__.${s} ??=`)}for(const s of t){const e=new RegExp(`(?<![^.]\\.)(?<!__state__\\.)\\b${Oe(s)}\\b(?!\\s*[:(])`,"g");r=r.replace(e,`__state__.${s}`)}let o=r;for(let s=0;s<n.length;s++)o=o.replace(`__STRING_PLACEHOLDER_${s}__`,n[s]);return o}(e,[.../* @__PURE__ */new Set([...a,...i])])}\n//# sourceURL=${n||"ladrillos-component"}\n `,l=De(n,r),u=Me(),f=["__state__","$host","$refs",...u,...l.keys],p=[t,o,s,...u.map(()=>{}),...l.values];new Function(...f,c)(...p)}catch(a){}}function Ie(e){const t=function(e){const t=e.split(""),n=e.length;let r=0,o=0,s=!1;const i=[],a=()=>i.length>0,c=(e,n)=>{for(let r=e;r<n;r++){const e=t[r];"\n"!==e&&"\r"!==e&&(t[r]=" ")}},l=t=>{let r=t;for(;r<n&&"\n"!==e[r];)r++;return r},u=t=>{let r=t+2;for(;r<n-1&&("*"!==e[r]||"/"!==e[r+1]);)r++;return Math.min(n,r+2)},f=(t,r)=>{let o=t+1;for(;o<n;)if("\\"!==e[o]){if(e[o]===r)return o+1;if("\n"===e[o])return o;o++}else o+=2;return o},p=t=>{let r=t+1;for(;r<n;)if("\\"!==e[r]){if("`"===e[r])return r+1;if("$"===e[r]&&"{"===e[r+1]){r+=2;let t=1;for(;r<n&&t>0;){const n=e[r];"`"!==n?'"'!==n&&"'"!==n?"/"!==n||"/"!==e[r+1]?"/"!==n||"*"!==e[r+1]?("{"===n?t++:"}"===n&&t--,r++):r=u(r):r=l(r):r=f(r,n):r=p(r)}continue}r++}else r+=2;return r},d=t=>{let n=t-1;for(;n>=0&&/\s/.test(e[n]);)n--;return n<0||!!"([{,;:!&|?=+-*%^~<>".includes(e[n])||/\b(return|typeof|delete|void|in|of|new|instanceof|throw)$/.test(e.slice(0,n+1))},h=t=>{let r=t+1,o=!1;for(;r<n;){const t=e[r];if("\\"!==t){if("["===t)o=!0;else if("]"===t)o=!1;else{if("/"===t&&!o){r++;break}if("\n"===t)break}r++}else r+=2}for(;r<n&&/[a-zA-Z]/.test(e[r]);)r++;return r};for(;r<n;){const m=e[r];if("/"===m&&"/"===e[r+1]){const e=l(r);a()&&c(r,e),r=e;continue}if("/"===m&&"*"===e[r+1]){const e=u(r);a()&&c(r,e),r=e;continue}if('"'===m||"'"===m){const e=f(r,m);a()&&c(r,e),r=e;continue}if("`"===m){const e=p(r);a()&&c(r,e),r=e;continue}if("/"===m&&d(r)){const e=h(r);a()&&c(r,e),r=e;continue}if("{"!==m){if("}"===m){a()&&i[i.length-1]===o?i.pop():a()&&(t[r]=" "),o--,r++;continue}if("="!==m||">"!==e[r+1]){if(/[a-zA-Z_$]/.test(m)){const t=r;for(;r<n&&/[a-zA-Z0-9_$]/.test(e[r]);)r++;const o=e.slice(t,r);a()?c(t,r):"function"===o&&(s=!0);continue}a()&&"\n"!==m&&"\r"!==m&&(t[r]=" "),r++}else{if(a())t[r]=" ",t[r+1]=" ";else{let t=r+2;for(;t<n;){const n=e[t];if(/\s/.test(n))t++;else if("/"!==n||"/"!==e[t+1]){if("/"!==n||"*"!==e[t+1])break;t=u(t)}else t=l(t)}"{"===e[t]&&(s=!0)}r+=2}}else o++,s?(i.push(o),s=!1):a()&&(t[r]=" "),r++}return t.join("")}(e),n=[],r=/(?:let|const|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/g;let o;for(;null!==(o=r.exec(t));)n.push(o[1]);return n}function Oe(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Me(){return me.filter(e=>!ge.has(e))}function De(n,r){const o=[],a=[];for(const e of he)e in globalThis&&(o.push(e),a.push(globalThis[e]));const c=s(n||window.location.href);o.push(...i),a.push(c.registerComponent,c.registerComponents,c.$use);const l=t(r||"anonymous");return o.push(...e),a.push(l.$emit,l.$listen),{keys:o,values:a}}function Pe(e,t){try{const n=Object.keys(t),r=Object.values(t),o=Me(),s=[...o,...n],i=[...o.map(()=>{}),...r];return new Function(...s,`"use strict"; return ${e};`)(...i)}catch(n){return g(0,n,{}),`{${e}}`}}function Fe(e,t){let n=e.original;for(const r of e.bindings){const e=Pe(r.raw,t),o=String(e??"");n=n.replace(`{${r.raw}}`,o)}if(e.isAttribute&&e.attributeName){const t=e.element??e.node.parentElement;t&&t.setAttribute(e.attributeName,n)}else e.node.textContent=n}function je(e,t){for(const n of e)Fe(n,t)}const ze="$bind",Ue="$ref",We=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]+)$/,Be=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,He=/^\(|\)$/g;function Ze(e){return e.replace(/\$/g,"\\$")}function qe(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(null===e||null===t)return e===t;if("object"!=typeof e)return e===t;const n=e,r=t,o=Object.keys(n),s=Object.keys(r);if(o.length!==s.length)return!1;for(const i of o)if(n[i]!==r[i])return!1;return!0}const Xe="ELSE-IF",Ve="ELSE";function Ge(e){const t=e.trim();return t.startsWith("{")&&t.endsWith("}")?t.slice(1,-1).trim():t}function Je(e,t){const n=Array.from(e.querySelectorAll(`[${Ze(Ue)}]`));for(const r of n){const e=r.getAttribute(Ue);e&&(t.refs.set(e,r),r.removeAttribute(Ue))}}function Ye(e,t){const n=Array.from(e.querySelectorAll("for"));for(const r of n){if(!r.parentNode)continue;if(Qe(r))continue;const n=r.getAttribute("each")||r.getAttribute("of")||"";if(!n)continue;let o=et(n);if(!o)continue;const s=r.getAttribute("key")||r.getAttribute("track-by")||o.key,i=Ke(r);if(!i)continue;const a=document.createComment(` <for> ${n} `),c=r.parentElement||e;c.insertBefore(a,r),r.remove(),t.loops.push({template:i,expression:n,itemName:o.item,indexName:o.index,arrayName:o.array,keyAttribute:s,placeholder:a,renderedElements:[],originalParent:c})}}function Ke(e){const t=[];for(const r of Array.from(e.childNodes))(r.nodeType!==Node.TEXT_NODE||r.textContent?.trim())&&t.push(r);if(0===t.length)return null;if(1===t.length&&t[0].nodeType===Node.ELEMENT_NODE)return t[0];const n=document.createElement("span");n.style.display="contents";for(const r of Array.from(e.childNodes))n.appendChild(r);return n}function Qe(e){let t=e.parentElement;for(;t;){if("FOR"===t.tagName)return!0;t=t.parentElement}return!1}function et(e){const t=e.match(We);if(!t)return null;let n,[,r,o]=t;r=r.trim(),o=o.trim();const s=o.match(/\s+track\s+by\s+(.+)$/i);s&&(n=s[1].trim(),o=o.slice(0,s.index).trim());const i=r.replace(He,"").trim(),a=i.match(Be);let c,l,u;return a?(c=i.replace(Be,"").trim(),l=a[1]?.trim(),u=a[2]?.trim()):c=i,{item:c,index:l||u,key:n,array:o}}function tt(e,t){const n=Array.from(e.querySelectorAll("if"));for(const r of n){if(Qe(r))continue;const n=[],o=Ge(r.getAttribute("condition")||""),s=document.createComment(` <if> ${o} `),i=r.parentElement||e,a=r.nextSibling;i.insertBefore(s,r),n.push(nt(r,o,"if",s,i,a));let c=r.nextElementSibling;for(;c;){const e=c.tagName;if(e!==Xe){if(e===Ve){n.push(nt(c,"","else",s,i,c.nextSibling)),c.remove();break}break}{const e=Ge(c.getAttribute("condition")||""),t=c.nextElementSibling;n.push(nt(c,e,"else-if",s,i,c.nextSibling)),c.remove(),c=t}}r.remove();for(const e of n)e.group=n;t.conditionals.push(n)}}function nt(e,t,n,r,o,s){return e.removeAttribute("condition"),e.style.display="contents",{element:e,condition:t,type:n,placeholder:r,group:[],originalParent:o,nextSibling:s}}function rt(e,t){const n=Array.from(e.querySelectorAll("show"));for(const r of n){if(!r.parentNode)continue;if(Qe(r))continue;const e=Ge(r.getAttribute("condition")||""),n=r;n.style.display="contents",t.showElements.push({element:n,expression:e,originalDisplay:"contents"}),r.removeAttribute("condition")}}function ot(e,t){const n=Array.from(e.querySelectorAll(`[${Ze(ze)}]`));for(const r of n){const e=r.getAttribute(ze);if(!e)continue;if(st(r))continue;const n=e.split("."),o=r.hasAttribute("contenteditable");t.twoWayBindings.push({element:r,path:n,raw:e,isContentEditable:o}),r.removeAttribute(ze)}}function st(e,t){return Qe(e)}function it(e,t,n){const r=n(e.arrayName,t);if(!r||null==(o=r)||!Array.isArray(o)&&"function"!=typeof o[Symbol.iterator]&&"object"!=typeof o){for(const t of e.renderedElements)t.remove();return e.renderedElements=[],void(e.previousItems=[])}var o;const s=Array.from(r),i=e.previousItems||[],a=e.renderedElements;e.keyGetter||(e.keyGetter=function(e,t){if(!e)return(e,t)=>t;const n=e.startsWith(t+".")?e.slice(t.length+1).split("."):e.split(".");return e=>{let t=e;for(const r of n){if(null==t)return;t=t[r]}return t}}(e.keyAttribute,e.itemName));const c=(r,o)=>{const s=e.template.cloneNode(!0),i=at(t,e,r,o);return dt(s,i,n),ht(s,i,n),s};if(e.keyAttribute){const r=function(e,t,n){const r=[],o=/* @__PURE__ */new Map,s=/* @__PURE__ */new Map;for(let f=0;f<e.length;f++)o.set(n(e[f],f),f);for(let f=0;f<t.length;f++)s.set(n(t[f],f),f);const i=/* @__PURE__ */new Set;for(let f=0;f<e.length;f++){const t=n(e[f],f);s.has(t)||r.push({type:"remove",oldIndex:f,key:t,item:e[f]})}for(let f=0;f<t.length;f++){const e=n(t[f],f);o.has(e)||(r.push({type:"insert",newIndex:f,key:e,item:t[f]}),i.add(f))}const a=[];for(let f=0;f<e.length;f++){const t=n(e[f],f),r=s.get(t);void 0!==r&&a.push(r)}const c=function(e){if(0===e.length)return[];const t=e.length,n=new Array(t).fill(1),r=new Array(t).fill(-1);let o=1,s=0;for(let c=1;c<t;c++){for(let t=0;t<c;t++)e[t]<e[c]&&n[t]+1>n[c]&&(n[c]=n[t]+1,r[c]=t);n[c]>o&&(o=n[c],s=c)}const i=[];let a=s;for(;-1!==a;)i.unshift(a),a=r[a];return i}(a),l=new Set(c.map(e=>a[e]));let u=0;for(const f of a){for(;u<e.length&&!s.has(n(e[u],u));)u++;if(u<e.length){const t=n(e[u],u),o=u,i=s.get(t);l.has(i)||r.push({type:"move",oldIndex:o,newIndex:i,key:t,item:e[o]}),u++}}for(let f=0;f<t.length;f++){const s=n(t[f],f),i=o.get(s);if(void 0!==i){const n=t[f];qe(e[i],n)||r.push({type:"update",oldIndex:i,newIndex:f,key:s,item:n})}}return r}(i,s,e.keyGetter),o=/* @__PURE__ */new Map;for(let t=0;t<i.length;t++){const n=e.keyGetter(i[t],t);a[t]&&o.set(n,a[t])}const l=new Array(s.length);for(const e of r)if("remove"===e.type&&void 0!==e.key){const t=o.get(e.key);t&&(t.remove(),o.delete(e.key))}for(let i=0;i<s.length;i++){const r=s[i],a=e.keyGetter(r,i),u=o.get(a);u?(ct(u,at(t,e,r,i),n),l[i]=u):l[i]=c(r,i)}const u=document.createDocumentFragment();for(const e of l)u.appendChild(e);e.placeholder.parentNode?.insertBefore(u,e.placeholder.nextSibling),e.renderedElements=l}else{const r=Math.min(i.length,s.length);for(let i=0;i<r;i++){const r=at(t,e,s[i],i);ct(a[i],r,n)}for(let e=s.length;e<i.length;e++)a[e]?.remove();const o=document.createDocumentFragment();for(let e=i.length;e<s.length;e++){const t=c(s[e],e);o.appendChild(t),a[e]=t}if(o.childNodes.length>0){const t=a[r-1]?.nextSibling||e.placeholder.nextSibling;e.placeholder.parentNode?.insertBefore(o,t)}e.renderedElements=a.slice(0,s.length)}e.previousItems=[...s]}function at(e,t,n,r){const o=e.__scriptContent,s={...e,[t.itemName]:n,__reactiveState__:e,__scriptContent__:o||"",__componentUrl__:e.__componentUrl||""};return t.indexName&&(s[t.indexName]=r),s}function ct(e,t,n){!function(e,t,n){const r=document.createTreeWalker(e,NodeFilter.SHOW_COMMENT),o=[];let s;for(;s=r.nextNode();)s[lt]&&o.push(s);for(const i of o){const e=i[lt],r=ut(e.branches,t,n);if(r!==e.currentIndex&&(e.currentEl&&e.currentEl.parentNode&&e.currentEl.remove(),e.currentEl=null,e.currentIndex=-1,r>=0)){const o=ft(e.branches[r]);i.parentNode.insertBefore(o,i.nextSibling),e.currentIndex=r,e.currentEl=o,dt(o,t,n),ht(o,t,n)}}}(e,t,n);const r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);let o;for(;o=r.nextNode();){const e=o.__originalTemplate;e&&(o.textContent=e.replace(/\{([^}]+)\}/g,(e,r)=>{const o=n(r.trim(),t);return String(o??"")}))}for(const s of Array.from(e.attributes)){const e=s.__originalTemplate;e&&(s.value=e.replace(/\{([^}]+)\}/g,(e,r)=>{const o=n(r.trim(),t);return null!==o&&"object"==typeof o?JSON.stringify(o):String(o??"")}))}for(const s of Array.from(e.children))ct(s,t,n)}const lt="__ladrillosLoopCond";function ut(e,t,n){for(let r=0;r<e.length;r++){const o=e[r];if("else"===o.type)return r;try{if(n(o.condition,t))return r}catch{}}return-1}function ft(e){const t=document.createElement("span");return t.style.display="contents",t.appendChild(e.template.content.cloneNode(!0)),t}function pt(e,t){const n=document.createElement("template");for(const r of Array.from(e.childNodes))n.content.appendChild(r.cloneNode(!0));return{type:t,condition:"else"===t?"":Ge(e.getAttribute("condition")||""),template:n}}function dt(e,t,n){let r=1e4;for(;r-- >0;){let r=null;const o=e.querySelectorAll("IF");for(let e=0;e<o.length;e++){const t=o[e];if(t.parentNode&&!Qe(t)){r=t;break}}if(!r)return;const s=[];s.push(pt(r,"if"));const i=[];let a=r.nextElementSibling;for(;a;){if(a.tagName!==Xe){if(a.tagName===Ve){s.push(pt(a,"else")),i.push(a);break}break}s.push(pt(a,"else-if")),i.push(a),a=a.nextElementSibling}const c=document.createComment(" <if> (loop) "),l={branches:s,currentIndex:-1,currentEl:null};c[lt]=l,r.parentNode.insertBefore(c,r),r.remove();for(const e of i)e.remove();const u=ut(s,t,n);if(u>=0){const e=ft(s[u]);c.parentNode.insertBefore(e,c.nextSibling),l.currentIndex=u,l.currentEl=e}}}function ht(e,t,n){for(const i of Array.from(e.attributes))if(i.value.includes("{")){i.__originalTemplate=i.value;const e=i.value.replace(/\{([^}]+)\}/g,(e,r)=>{const o=n(r.trim(),t);return null!==o&&"object"==typeof o?JSON.stringify(o):String(o??"")});i.value=e}!function(e,t){for(const n of de){const r=e.getAttribute(n);if(r){e.removeAttribute(n);const o=n.slice(2),s=mt(r,t);s&&e.addEventListener(o,s)}}!function(e,t){const n=Array.from(e.attributes).filter(e=>$e(e.name));for(const r of n){const n=we(r.name);if(!n)continue;const o=r.value;e.removeAttribute(r.name);const s=mt(o,t);if(!s)continue;const i=Ae(s,n),a=Ee(n.eventModifiers);e.addEventListener(n.eventName,i,a)}}(e,t)}(e,t);const r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),o=[];let s;for(;s=r.nextNode();)s.textContent?.includes("{")&&o.push(s);for(const i of o)i.__originalTemplate=i.textContent,i.textContent=i.textContent.replace(/\{([^}]+)\}/g,(e,r)=>{const o=n(r.trim(),t);return String(o??"")});for(const i of Array.from(e.children))ht(i,t,n)}function mt(e,n){try{const r=n.__reactiveState__,o=n.__scriptContent__||"",s=Object.keys(n).filter(e=>!e.startsWith("__")),i=r?Object.keys(r).filter(e=>!e.startsWith("__")&&"function"!=typeof r[e]):[],a=s.filter(e=>!i.includes(e)&&"function"!=typeof n[e]),c=o.trim().length>0,l=s.filter(e=>"function"==typeof n[e]),u=r&&!0===r.__hasModuleScripts;let f="",p="";u?p=l.length>0?`const { ${l.join(", ")} } = context;`:"":c?f=Le(o,[]):p=l.length>0?`const { ${l.join(", ")} } = context;`:"";const d=a.length>0?`const { ${a.join(", ")} } = context;`:"",h=r&&i.length>0?"reactiveState":"context",g=i.length>0?`let { ${i.join(", ")} } = ${h};`:"",_=!u&&r&&i.length>0?i.map(e=>`reactiveState.${e} = ${e};`).join(" "):"",y=t(n.__componentId__||r?.__componentId||"anonymous"),b=new Function("event","context","reactiveState","$emit","$listen",`"use strict";\n ${d}\n ${g}\n ${p}\n ${f}\n ${e};\n ${_}`);return t=>{try{b(t,n,r,y.$emit,y.$listen)}catch(o){m(`Error in loop event handler: ${e}`,null,o)}}}catch(r){return null}}function gt(e,t,n){for(const r of e)r.element.parentNode&&r.element.remove();for(const r of e){let e=!1;if("else"===r.type)e=!0;else{const o=n(r.condition,t);e=Boolean(o)}if(e){r.placeholder.parentNode?.insertBefore(r.element,r.placeholder.nextSibling);break}}}function _t(e,t,n,r){const o=e.element,{raw:s,path:i,isContentEditable:a}=e,c=n(s,t);yt(o,c,a);const l=i[0];r.has(l)||r.set(l,[]),r.get(l).push({element:o,path:i,isContentEditable:a}),s===l||r.has(s)||r.set(s,[]),s!==l&&r.get(s).push({element:o,path:i,isContentEditable:a});const u=function(e){if(e instanceof HTMLSelectElement)return"change";if(e instanceof HTMLInputElement){const t=e.type.toLowerCase();if("checkbox"===t||"radio"===t)return"change"}return"input"}(o);let f=!1;o.__isUpdatingFromState=()=>f,o.__setUpdatingFromState=e=>{f=e},o.addEventListener(u,()=>{if(f)return;const e=function(e,t){if(t)return e.textContent||"";if(e instanceof HTMLInputElement){const t=e.type.toLowerCase();return"checkbox"===t?e.checked:"number"===t||"range"===t?e.valueAsNumber:e.value}return e instanceof HTMLSelectElement?e.multiple?Array.from(e.selectedOptions).map(e=>e.value):e.value:e instanceof HTMLTextAreaElement?e.value:e.value??""}(o,a);!function(e,t,n){let r=e;for(let o=0;o<t.length-1;o++){const e=t[o];e in r&&"object"==typeof r[e]||(r[e]={}),r=r[e]}r[t[t.length-1]]=n}(t,i,e)})}function yt(e,t,n){if(n)e.textContent=String(t??"");else{if(e instanceof HTMLInputElement)return void("checkbox"===e.type.toLowerCase()?e.checked=Boolean(t):e.value=String(t??""));e.value=e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement?String(t??""):t}}const bt=[],vt=/* @__PURE__ */new Set;let wt=!1,Et=!1,At=0;const $t=Promise.resolve();function St(){Et=!1,wt=!0,bt.sort((e,t)=>(e.id??0)-(t.id??0));try{for(const t of bt)if(!1!==t.active)try{t()}catch(e){m("Error in scheduled update",null,e)}}finally{bt.length=0,vt.clear(),wt=!1}}const Ct=/* @__PURE__ */new Map;function Nt(e,t){const{tagName:r,template:o,scripts:s,externalScripts:i,externalStyles:a,styles:c,sourcePath:l,templateBindings:u=[]}=e,p=Ie(s.map(e=>e.content).join("\n")),d=[.../* @__PURE__ */new Set([...p,...u])];class h extends HTMLElement{static get observedAttributes(){return d}state={};_root=null;_initialized=!1;_componentId=`${r}-${Math.random().toString(36).slice(2)}`;_directives=null;_evaluator=null;_updateBoundInputs=null;constructor(){super()}async connectedCallback(){if(this._initialized)return;this._initialized=!0,f={tagName:r,sourcePath:l,instanceId:this._componentId};const e=this.innerHTML,n=document.createDocumentFragment();for(;this.firstChild;)n.appendChild(this.firstChild);this.__originalHTML=e,this.__originalChildren=n,this._root=t?this.shadowRoot??this.attachShadow({mode:"open"}):this;const{bindings:p}=((e,t)=>{const n=document.createElement("template");n.innerHTML=t,ae(n.content),e.innerHTML="",e.appendChild(n.content);const r=ue(e);for(const o of le(e))r.push(...ue(o));return{bindings:r}})(this._root,o);((e,t,n)=>{if(!t)return;const r=document.createElement("style");r.textContent=t,n?e.appendChild(r):document.head.appendChild(r)})(this._root,c,t);const d=this._getAttributeOverrides(),h=s.filter(e=>"module"!==e.type),m=s.some(e=>"module"===e.type),g=new Proxy(/* @__PURE__ */new Map,{get(e,t,n){if(t in e){const r=Reflect.get(e,t,n);return"function"==typeof r?r.bind(e):r}if("string"==typeof t)return e.get(t)},set:(e,t,n)=>"string"==typeof t&&(e.set(t,n),!0),has:(e,t)=>"string"==typeof t&&e.has(t)||t in e});if(function(e,t){const n=Array.from(e.querySelectorAll(`[${Ze(Ue)}]`));for(const r of n){const e=r.getAttribute(Ue);e&&t.set(e,r)}}(this._root,g),a&&a.length>0&&await async function(e,t,n){for(const o of e)if(n&&t)try{let e=D.get(o.href);if(!e){const t=await fetch(o.href);if(!t.ok)continue;e=await t.text(),D.set(o.href,e)}const n=document.createElement("style");n.textContent=e,n.setAttribute("data-external-href",o.href),t.insertBefore(n,t.firstChild)}catch(r){}else{if(document.querySelector(`link[href="${o.href}"]`))continue;await new Promise(e=>{const t=document.createElement("link");t.rel=o.rel||"stylesheet",t.href=o.href,t.onload=()=>e(),t.onerror=()=>{e()},document.head.appendChild(t)})}}(a,this._root,t),i.length>0&&await async function(e){const t=e.filter(e=>e.external);for(const r of t)try{await M(r)}catch(n){}}(i),this.state=await async function(e,t,n,r={},o,s=!1,i,a,c,l=[]){const u=Se(e),f={},p=t.map(e=>e.content).join("\n");for(const[h,m]of Object.entries(r))f[h]=m;f.__scriptContent=p,f.__componentUrl=i,f.__componentId=a;const d=E(f,n,(e,t)=>Fe(e,t),o);for(const h of t)Te(h.content,d,i,a,u,c,l);return u.__state=d,u.__scriptContent=p,u.__componentUrl=i,u.__componentId=a,s||(Ce(e,d,p,u),je(n,d)),d}(this._root,h,p,d,()=>this._updateDirectives(),m,l,this._componentId,g,u),"undefined"!=typeof globalThis&&(globalThis.__ladrillosStateCallbacks||(globalThis.__ladrillosStateCallbacks=/* @__PURE__ */new Map),globalThis.__ladrillosStateCallbacks.set(this._componentId,()=>this._updateDirectives())),l){this.state.__suspendReactivity=!0;try{const e=await async function(e,t,n,r,o,s,i,a){const c={},l=e.filter(e=>"module"===e.type),u=t.filter(e=>"module"===e.type),f=t.filter(e=>"module"!==e.type);for(const d of f)try{await M(d,r,n)}catch(p){}for(const d of u)try{const e=await M(d,r,n);if(e&&"object"==typeof e)for(const[t,n]of Object.entries(e))"default"!==t&&(c[t]=n,s&&(s[t]=n))}catch(p){}for(const d of l)try{const e=await j(d,n,r,o,s,i,a);Object.assign(c,e)}catch(p){}return c}(s,i,l,this._componentId,g,this.state,()=>this._updateDirectives(),this);(m||i.length>0)&&(this.state.__hasModuleScripts=!0);for(const[t,n]of Object.entries(e))"function"==typeof n&&(this.state[t]=n)}finally{this.state.__suspendReactivity=!1}}if(m&&function(e,t,n){const r=Se(e);Ce(e,n,r.__scriptContent||"",r),je(t,n)}(this._root,p,this.state),this._evaluator=Pe,this._directives=function(e,t){const n={loops:[],conditionals:[],twoWayBindings:[],refs:t,showElements:[]},r=[e,...le(e)];for(const o of r)Je(o,n),Ye(o,n),rt(o,n),ot(o,n),tt(o,n);return ae(e),n}(this._root,g),"undefined"!=typeof globalThis){globalThis.__ladrillosRefs||(globalThis.__ladrillosRefs=/* @__PURE__ */new Map);let e=globalThis.__ladrillosRefs.get(this._componentId);e||(e=/* @__PURE__ */new Map,globalThis.__ladrillosRefs.set(this._componentId,e));for(const[t,n]of this._directives.refs)e.set(t,n)}this.refs=this._directives.refs,this.__refs=this._directives.refs,this._updateDirectives(),this._directives.twoWayBindings.length>0&&(this._updateBoundInputs=function(e,t,n){const r=/* @__PURE__ */new Map;for(const o of e)_t(o,t,n,r);return e=>{!function(e,t,n,r){const o=r?[r]:Array.from(e.keys());for(const s of o){const r=e.get(s);if(r)for(const e of r){const{element:r,path:o,isContentEditable:s}=e,i=n(o.join("."),t),a=r.__setUpdatingFromState;a&&a(!0),yt(r,i,s),a&&queueMicrotask(()=>a(!1))}}}(r,t,n,e)}}(this._directives.twoWayBindings,this.state,this._evaluator)),this.dispatchEvent(new CustomEvent("ladrillos:ready",{bubbles:!0,composed:!0,detail:{state:this.state,refs:this._directives.refs}}))}disconnectedCallback(){!function(e){const t=$.get(e);if(t){for(const e of t)URL.revokeObjectURL(e);$.delete(e)}}(this._componentId),n(this._componentId),function(e){const t=Ct.get(e);t&&(t.active=!1,Ct.delete(e))}(this._componentId),"undefined"!=typeof globalThis&&globalThis.__ladrillosStateCallbacks?.delete(this._componentId),this._initialized=!1}attributeChangedCallback(e,t,n){if(t===n)return;if(!this._initialized)return;const r=this._parseAttributeValue(n);this.state[e]=r}adoptedCallback(){}_updateDirectives(){this._directives&&this._evaluator&&function(e,t){let n=Ct.get(e);n||(n=function(){const e=()=>{t()};return e.id=++At,e.active=!0,e}(),Ct.set(e,n)),function(e){void 0===e.id&&(e.id=++At),vt.has(e.id)||(vt.add(e.id),bt.push(e),wt||Et||(Et=!0,$t.then(St)))}(n)}(this._componentId,()=>{this._performDirectiveUpdates()})}_performDirectiveUpdates(){this._directives&&this._evaluator&&(this._directives.loops.length>0&&function(e,t,n){for(const r of e)it(r,t,n)}(this._directives.loops,this.state,this._evaluator),this._directives.conditionals.length>0&&function(e,t,n){for(const r of e)gt(r,t,n)}(this._directives.conditionals,this.state,this._evaluator),this._directives.showElements.length>0&&function(e,t,n){for(const r of e){const e=n(r.expression,t),o=Boolean(e);r.element.style.display=o?r.originalDisplay:"none"}}(this._directives.showElements,this.state,this._evaluator),this._updateBoundInputs&&this._updateBoundInputs())}_getAttributeOverrides(){const e={},t=[];for(const r of Array.from(this.attributes))this._isReservedAttribute(r.name)?r.value&&""!==r.value.trim()&&t.push(r.name):e[r.name]=this._parseAttributeValue(r.value);const n=t.filter(e=>!u.includes(e));return n.length>0&&n.map(e=>{const t={title:"heading",class:"className",style:"customStyle",id:"componentId",hidden:"isHidden"}[e]||`my${e.charAt(0).toUpperCase()}${e.slice(1)}`;return`"${e}" → try "${t}"`}),e}_isReservedAttribute(e){return!u.includes(e)&&(["id","class","style","slot","part","is","tabindex","title","lang","dir","hidden","draggable","contenteditable"].includes(e.toLowerCase())||e.startsWith("data-"))}_parseAttributeValue(e){if(null===e)return null;if(""===e)return!0;if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);if(!isNaN(t)&&""!==e.trim())return t;try{const t=e.trim();if(t.startsWith("[")||t.startsWith("{"))return JSON.parse(t)}catch{}return e}get root(){return this._root}}return h}function xt(e,t){const{tagName:n}=e;if(!customElements.get(n)){const r=Nt(e,t);customElements.define(n,r)}}const Rt=/* @__PURE__ */new Map;let Lt;const kt=/* @__PURE__ */new Map,Tt=/* @__PURE__ */new Set,It=/* @__PURE__ */new Map;function Ot(e,t,n,r){var o;It.set(e,{name:e,absolutePath:t,useShadowDOM:n,strategy:r}),customElements.get(e)||customElements.define(e,(o=e,class extends HTMLElement{teardown;isLoading=!1;isUpgraded=!1;connectedCallback(){if(this.hasAttribute("eager"))return void this.triggerLoad();const e=It.get(o);e?this.teardown=e.strategy(()=>this.triggerLoad(),this):this.triggerLoad()}disconnectedCallback(){this.teardown?.(),this.teardown=void 0}async triggerLoad(){if(!this.isLoading&&!this.isUpgraded){this.isLoading=!0,this.teardown?.(),this.teardown=void 0;try{const e=await Mt(o);this.isUpgraded=!0,this.upgradeToRealComponent(e)}catch(e){m(`Failed to load lazy component "<${o}>"`,{tagName:o}),this.isLoading=!1}}}upgradeToRealComponent(e){const t=document.createElement(e);for(const n of Array.from(this.attributes))"eager"!==n.name&&"tabindex"!==n.name&&t.setAttribute(n.name,n.value);for(;this.firstChild;)t.appendChild(this.firstChild);this.parentNode?this.parentNode.replaceChild(t,this):m("No parent node for placeholder - cannot upgrade lazy component",{tagName:o})}}))}async function Mt(e){const t=function(e){return`${e}--loaded`}(e);if(Tt.has(e))return t;if(Rt.has(e))return await Rt.get(e),t;const n=It.get(e);if(!n)throw new Error(`Lazy component "${e}" not registered`);const r=(async()=>{const r=await V(n.absolutePath);if(!r)throw new Error(`Failed to fetch component source for "${e}"`);const o=await B(r.source,e,r.resolvedPath);Lt[e]=o;const s=Nt(o,n.useShadowDOM);return customElements.get(t)||customElements.define(t,s),Tt.add(e),kt.set(e,{component:o,useShadowDOM:n.useShadowDOM}),o})();Rt.set(e,r);try{return await r,t}finally{Rt.delete(e)}}function Dt(e){return It.has(e)||Tt.has(e)}async function Pt(e){return It.has(e)&&await Mt(e),Lt[e]}const Ft=new class{components;constructor(){this.components={},Lt=this.components}async registerComponent(e,t,n=!0,r=!1){if(this.components[e])return;const o=new URL(t,window.location.href).href;if(r)Ot(e,o,n,!0===r?oe:r);else try{const t=await V(o);if(!t)throw new Error(`Failed to fetch component source from ${o}`);const r=await B(t.source,e,t.resolvedPath);this.components[e]=r,xt(r,n)}catch(s){m(`Error registering component "<${e}>"`,{tagName:e,sourcePath:t},s)}}async registerComponents(e){const t=Array.isArray(e)?e:Object.entries(e).map(([e,t])=>"string"==typeof t?{name:e,path:t}:{name:e,...t}),n={success:[],failed:[],skipped:[]},r=[],o=[];for(const c of t){if(this.components[c.name]){n.skipped.push(c.name);continue}const e=new URL(c.path,window.location.href).href,t={...c,absolutePath:e};c.lazy?r.push(t):o.push(t)}for(const c of r)try{Ot(c.name,c.absolutePath,c.useShadowDOM??!0,!0===c.lazy?oe:c.lazy),n.success.push(c.name)}catch(a){n.failed.push({name:c.name,error:a instanceof Error?a:new Error(String(a))})}if(0===o.length)return n;const s=await Promise.allSettled(o.map(async e=>({config:e,result:await V(e.absolutePath)}))),i=await Promise.allSettled(s.map(async(e,t)=>{if("rejected"===e.status)throw e.reason;const{config:n,result:r}=e.value;if(!r)throw new Error(`Failed to fetch component source from ${n.absolutePath}`);return{config:n,component:await B(r.source,n.name,r.resolvedPath)}}));for(let c=0;c<i.length;c++){const e=i[c],t=o[c];if("rejected"===e.status){n.failed.push({name:t.name,error:e.reason instanceof Error?e.reason:new Error(String(e.reason))}),m(`Error registering component "${t.name}"`,{tagName:t.name,sourcePath:t.path},e.reason);continue}const{component:r}=e.value,s=t.useShadowDOM??!0;this.components[t.name]=r;try{xt(r,s),n.success.push(t.name)}catch(a){n.failed.push({name:t.name,error:a instanceof Error?a:new Error(String(a))}),delete this.components[t.name]}}return n}async loadLazyComponent(e){return Pt(e)}},jt=/* @__PURE__ */Object.freeze(/* @__PURE__ */Object.defineProperty({__proto__:null,ladrillos:Ft},Symbol.toStringTag,{value:"Module"}));export{u as $,p as E,ne as a,te as b,ee as c,Q as d,c as e,Ft as f,h as g,oe as h,Pt as i,Dt as j,re as l,l as r,q as s};
2
+ //# sourceMappingURL=shared-CM0Gy9QI.js.map