ladrillosjs 2.0.0-rc.7 → 2.0.0
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/README.md +171 -16
- package/dist/core/cache/expressionCache.d.ts +5 -70
- package/dist/core/component/loader.d.ts +1 -1
- package/dist/core/configure.d.ts +24 -0
- package/dist/core/diff/listDiff.d.ts +16 -0
- package/dist/core/html/controlTagEscape.d.ts +47 -0
- package/dist/core/js/moduleExecutor.d.ts +19 -0
- package/dist/core/js/scriptParser.d.ts +35 -1
- package/dist/core.d.ts +2 -2
- package/dist/core.dev.js +12 -0
- package/dist/core.dev.js.map +1 -0
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/dist/events.dev.js +2 -0
- package/dist/events.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.dev.js +22 -0
- package/dist/index.dev.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lazy.dev.js +2 -0
- package/dist/lazy.js +1 -1
- package/dist/shared-CMbR-Hhy.js +3 -0
- package/dist/shared-CMbR-Hhy.js.map +1 -0
- package/dist/shared-DqWGO1vN.js +2 -0
- package/dist/{shared-D-P0qKQY.js.map → shared-DqWGO1vN.js.map} +1 -1
- package/dist/shared-R1SSiaIW.dev.js +6785 -0
- package/dist/shared-R1SSiaIW.dev.js.map +1 -0
- package/dist/shared-Sk_U4mcq.dev.js +161 -0
- package/dist/shared-Sk_U4mcq.dev.js.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/utils/devWarnings.d.ts +24 -3
- package/dist/utils/directives.d.ts +10 -0
- package/dist/utils/jsevents.d.ts +5 -0
- package/dist/utils/sandbox.d.ts +11 -0
- package/dist/utils/stateTransform.d.ts +58 -0
- package/package.json +22 -8
- package/dist/core/reactivity/dependencyTracker.d.ts +0 -120
- package/dist/shared-18P4lj9w.js +0 -2
- package/dist/shared-18P4lj9w.js.map +0 -1
- package/dist/shared-D-P0qKQY.js +0 -2
- package/dist/shared-mjNRZBte.js +0 -3
- package/dist/shared-mjNRZBte.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a,
|
|
1
|
+
import{c as a,d as s,f as e,h as n,i as o,l as t,m as r,o as l,p as i,s as m,t as d,u as p}from"./shared-CMbR-Hhy.js";import{n as y,t as z}from"./shared-DqWGO1vN.js";var f=a=>d.loadLazyComponent(a),O={registerComponent:r,registerComponents:n,$use:i,$emit:z,$listen:y,loadLazyComponent:f,configure:o,lazyOnIdle:m,lazyOnVisible:p,lazyOnMedia:t,lazyOnInteraction:a,lazyOnDelay:l};export{z as $emit,y as $listen,i as $use,s as ErrorCode,e as LadrillosError,o as configure,O as default,l as lazyOnDelay,m as lazyOnIdle,a as lazyOnInteraction,t as lazyOnMedia,p as lazyOnVisible,f as loadLazyComponent,r as registerComponent,n as registerComponents};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import\r\n {\r\n ladrillos,\r\n ComponentConfig,\r\n RegisterComponentsResult,\r\n } from \"./core/ladrillos\";\r\nimport\r\n {\r\n registerComponent,\r\n registerComponents,\r\n $use,\r\n } from \"./core/helpers/frameworkHelpers\";\r\nimport { $emit, $listen, EventCallback } from \"./core/events/eventBus\";\r\nimport { configure, LadrillosConfig } from \"./core/configure\";\r\nimport\r\n {\r\n ErrorCode,\r\n LadrillosError,\r\n type LadrillosErrorHandler,\r\n } from \"./utils/devWarnings\";\r\n\r\n// Import lazy loading strategies\r\nimport\r\n {\r\n LazyStrategy,\r\n lazyOnIdle,\r\n lazyOnVisible,\r\n lazyOnMedia,\r\n lazyOnInteraction,\r\n lazyOnDelay,\r\n } from \"./core/lazy\";\r\n\r\n// Export public types\r\nexport type {\r\n ComponentConfig,\r\n RegisterComponentsResult,\r\n EventCallback,\r\n LazyStrategy,\r\n LadrillosConfig,\r\n LadrillosErrorHandler,\r\n};\r\nexport type { LadrillosComponent } from \"./types\";\r\n\r\n// Export error code enum for consumers to branch on\r\nexport { ErrorCode, LadrillosError };\r\n\r\n// Export lazy loading strategies\r\nexport\r\n{\r\n lazyOnIdle,\r\n lazyOnVisible,\r\n lazyOnMedia,\r\n lazyOnInteraction,\r\n lazyOnDelay,\r\n};\r\n\r\n// Force load a lazy component\r\nexport const loadLazyComponent = (name: string) =>\r\n ladrillos.loadLazyComponent(name);\r\n\r\n// Framework configuration\r\nexport { configure };\r\n\r\n// Component registration + $use alias + event bus helpers\r\nexport { registerComponent, registerComponents, $use, $emit, $listen };\r\n\r\n// Default export with all methods for CDN usage\r\n// This allows: ladrillosjs.registerComponent() in CDN mode\r\nexport default {\r\n registerComponent,\r\n registerComponents,\r\n $use,\r\n $emit,\r\n $listen,\r\n loadLazyComponent,\r\n configure,\r\n // Lazy loading strategies\r\n lazyOnIdle,\r\n lazyOnVisible,\r\n lazyOnMedia,\r\n lazyOnInteraction,\r\n lazyOnDelay,\r\n};\r\n"],"mappings":"sKAyDA,IAAa,EAAqB,GAChC,EAAU,kBAAkB,GAU9B,EAAe,CACb,oBACA,qBACA,OACA,QACA,UACA,oBACA,YAEA,aACA,gBACA,cACA,oBACA"}
|
package/dist/lazy.dev.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as defaultLazyStrategy, c as lazyOnInteraction, l as lazyOnMedia, n as forceLoadLazyComponent, o as lazyOnDelay, r as isLazyComponent, s as lazyOnIdle, u as lazyOnVisible } from "./shared-R1SSiaIW.dev.js";
|
|
2
|
+
export { defaultLazyStrategy, forceLoadLazyComponent, isLazyComponent, lazyOnDelay, lazyOnIdle, lazyOnInteraction, lazyOnMedia, lazyOnVisible };
|
package/dist/lazy.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as s,c as a,
|
|
1
|
+
import{a as s,c as a,l as r,n as o,o as e,r as m,s as p,u as t}from"./shared-CMbR-Hhy.js";export{s as defaultLazyStrategy,o as forceLoadLazyComponent,m as isLazyComponent,e as lazyOnDelay,p as lazyOnIdle,a as lazyOnInteraction,r as lazyOnMedia,t as lazyOnVisible};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{a as e,i as t,r as n}from"./shared-DqWGO1vN.js";var r=Object.defineProperty,o=(e,t)=>{let n={};for(var o in e)r(n,o,{get:e[o],enumerable:!0});return t||r(n,Symbol.toStringTag,{value:"Module"}),n},s=/{([^}]+)}/g;function i(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 a(e){return{registerComponent:function(t,n,r=!0,o=!1){const s=i(n,e);return Bn.registerComponent(t,s,r,o)},registerComponents:function(t){const n=Array.isArray(t)?t.map(t=>({...t,path:i(t.path,e)})):Object.entries(t).map(([t,n])=>"string"==typeof n?{name:t,path:i(n,e)}:{name:t,...n,path:i(n.path,e)});return Bn.registerComponents(n)},$use:function(t,n=!0,r=!1){const o=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),s=i(t,e);return Bn.registerComponent(o,s,n,r)}}}var c=["registerComponent","registerComponents","$use"],l=a(window.location.href),u=l.registerComponent,f=l.registerComponents,d=l.$use,p=/* @__PURE__ */new Map,h=Symbol("reactive-array"),m=Symbol("reactive-array-subscribers"),g=["push","pop","shift","unshift","splice","sort","reverse","fill","copyWithin"];function _(e,t){if(e[h]){const n=e[m];return n&&t&&n.add(t),e}const n=/* @__PURE__ */new Set;t&&n.add(t);const r=()=>{for(const e of n)e()};return new Proxy(e,{get(e,t){if(t===h)return!0;if(t===m)return n;const o=e[t];return"string"==typeof t&&g.includes(t)&&"function"==typeof o?(...t)=>{const n=t.map(e=>Array.isArray(e)?_(e,r):e),s=o.apply(e,n);return r(),s}:Array.isArray(o)?_(o,r):o},set(e,t,n){const o=!isNaN("string"==typeof t?parseInt(t,10):NaN),s="length"===t,i=Array.isArray(n)?_(n,r):n;return e[t]===i||(e[t]=i,(o||s)&&r()),!0},deleteProperty(e,t){const n=delete e[t];return n&&r(),n}})}function y(e){if(null===e||"object"!=typeof e||Array.isArray(e))return!1;const t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}function v(e,t){for(const n of Object.keys(e)){const r=e[n];Array.isArray(r)?e[n]=_(r,t):r&&"object"==typeof r&&!Array.isArray(r)&&v(r,t)}return e}function b(e,t){return function(e){let t=p.get(e);if(!t){const n=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=new RegExp(`\\b${n}\\b`),p.set(e,t)}return t}(t).test(e)}function w(e,t,n){if(0===t.length)return e;const r=!1!==n?.rewriteDeclarations,o=[],s=e=>(o.push(e),`__STRING_PLACEHOLDER_${o.length-1}__`);let i="",a=0;for(;a<e.length;){const r=e[a];if("/"===r&&"/"===e[a+1]){const t=e.indexOf("\n",a),n=-1===t?e.length:t;i+=e.slice(a,n),a=n;continue}if("/"===r&&"*"===e[a+1]){const t=e.indexOf("*/",a+2),n=-1===t?e.length:t+2;i+=e.slice(a,n),a=n;continue}if('"'===r||"'"===r){let t=a+1;for(;t<e.length&&e[t]!==r;)"\\"===e[t]?t+=2:t++;i+=s(e.slice(a,t+1)),a=t+1;continue}if("`"===r){i+="`",a++;let r=a;for(;a<e.length&&"`"!==e[a];)if("\\"!==e[a]){if("$"===e[a]&&"{"===e[a+1]){a>r&&(i+=s(e.slice(r,a))),i+="${",a+=2;const o=a;let c=1;for(;a<e.length&&c>0;){const t=e[a];if('"'!==t&&"'"!==t){if("`"===t){a++;let t=0;for(;a<e.length;)if("\\"!==e[a]){if("`"===e[a]&&0===t){a++;break}"$"!==e[a]||"{"!==e[a+1]?("}"===e[a]&&t>0&&t--,a++):(t++,a+=2)}else a+=2;continue}if("{"===t)c++;else if("}"===t&&(c--,0===c))break;a++}else{for(a++;a<e.length&&e[a]!==t;)"\\"===e[a]?a+=2:a++;a++}}i+=s(w(e.slice(o,a),t,n)),"}"===e[a]&&a++,i+="}",r=a;continue}a++}else a+=2;a>r&&(i+=s(e.slice(r,a))),i+="`",a++;continue}i+=r,a++}if(r)for(const l of t){const e=new RegExp(`\\b(let|const|var)\\s+(${N(l)})\\s*=`,"g");i=i.replace(e,`__state__.${l} ??=`)}for(const l of t)i=A(i,l);let c=i;for(let l=0;l<o.length;l++)c=c.replace(`__STRING_PLACEHOLDER_${l}__`,()=>o[l]);return c}var E=/* @__PURE__ */new Set(["return","typeof","case","in","of","yield","await","throw","void","delete","new"]);function A(e,t){const n=new RegExp(`(?<![^.]\\.)(?<!__state__\\.)\\b${N(t)}\\b(?!\\s*[:(])`,"g");return e.replace(n,(n,r)=>{switch(function(e,t,n){const r=function(e,t){for(let n=t;n>=0;n--)if(!/\s/.test(e[n]))return e[n];return""}(e,t-1),o=function(e,t){for(let n=t;n<e.length;n++)if(!/\s/.test(e[n]))return e[n];return""}(e,t+n);if("{"!==r&&","!==r||","!==o&&"}"!==o)return"none";const s=function(e,t){let n=0;for(let r=t-1;r>=0;r--){const t=e[r];if(")"===t||"]"===t||"}"===t)n++;else if("("===t||"["===t||"{"===t){if(0===n)return r;n--}}return-1}(e,t);return-1===s||"{"!==e[s]?"none":function(e,t){let n=t-1;for(;n>=0&&/\s/.test(e[n]);)n--;if(n<0)return"object";const r=e[n];if(")"===r)return"none";if(">"===r&&"="===e[n-1])return"none";if("=([,:?!&|^~+-*/%<>".includes(r))return"object";if(/[A-Za-z0-9_$]/.test(r)){let t=n;for(;t>=0&&/[A-Za-z0-9_$]/.test(e[t]);)t--;const r=e.slice(t+1,n+1);return"let"===r||"const"===r||"var"===r?"destructuring":E.has(r)?"object":"none"}return"none"}(e,s)}(e,r,n.length)){case"object":return`${t}: __state__.${t}`;case"destructuring":return n;default:return`__state__.${t}`}})}function N(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var $="[LadrillosJS]",S=null;function x(){return S}function C(e,t){return`${e}${function(e){const t=void 0!==e?e:S;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)}`}var T=/* @__PURE__ */function(e){return 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.COMPONENT_ALREADY_REGISTERED=503]="COMPONENT_ALREADY_REGISTERED",e[e.INVALID_COMPONENT_PATH=504]="INVALID_COMPONENT_PATH",e[e.COMPONENT_REGISTRATION_FAILED=505]="COMPONENT_REGISTRATION_FAILED",e[e.INVALID_COMPONENT_NAME=506]="INVALID_COMPONENT_NAME",e[e.MODULE_LOAD_FAILED=601]="MODULE_LOAD_FAILED",e[e.MODULE_EXECUTION_FAILED=602]="MODULE_EXECUTION_FAILED",e}({});function L(e){return`https://github.com/drubiodev/LadrillosJS/blob/main/docs/21-error-handling.md#ljs${e}`}function R(e){return`LJS${e}`}var O=class extends Error{code;docsUrl;componentContext;hint;constructor(e,t,n={}){const r=L(t);super(`[${R(t)}] ${C(e,n.context)} See ${r}`,void 0!==n.cause?{cause:n.cause}:void 0),this.name="LadrillosError",this.code=t,this.docsUrl=r,this.componentContext=n.context??null,this.hint=n.hint}},k=null;function I(e,t){if(k)try{const n=e instanceof Error?e:new Error(String(e));k(n,t??null)}catch{}}function M(e,t,n,r){const o=r?`[${R(r.code)}] ${C(e,t)} See ${L(r.code)}`:C(e,t);"undefined"!=typeof window&&"undefined"!=typeof console&&"function"==typeof console.log?console.error(`%c${$}%c ${o}`,"color: #ff6b35; font-weight: bold","color: inherit; font-weight: normal"):console.error(`${$} ${o}`),void 0!==n&&"undefined"!=typeof console&&console.error(n),I(r?new O(e,r.code,{context:t,hint:r.hint,cause:n}):n instanceof Error?n:new Error(o,void 0!==n?{cause:n}:void 0),t)}function P(e,t,n={}){const r=void 0!==n.context?n.context:S,o=n.errorCode||((i=t)instanceof SyntaxError?102:i instanceof ReferenceError?103:i instanceof TypeError&&(i.message.includes("Cannot read properties of null")||i.message.includes("Cannot read properties of undefined"))?104:101),s=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"}return e instanceof TypeError?e.message.includes("Cannot read properties of null")?"Cannot access property of null":e.message.includes("Cannot read properties of undefined")?"Cannot access property of undefined":"Type error":"Expression evaluation failed"}(t);var i;L(o),I(new O(s,o,{context:r,cause:t}),r)}function D(e,t,n,r,o){return new O(e,t,{context:void 0!==n?n:S,hint:r,cause:o})}var j=/* @__PURE__ */new Map,F=/* @__PURE__ */new Map,z=/(?:import|export)\s+(?:[\s\S]*?\s+from\s+)?['"]([^'"]+)['"]/g,U=/import\s*\(\s*['"]([^'"]+)['"]\s*\)/g,W=[".ts",".tsx",".mts"];function H(e){return e.startsWith("./")||e.startsWith("../")}function B(e){return W.some(t=>e.endsWith(t))}function Z(e){return!(e.startsWith("/")||e.startsWith("./")||e.startsWith("../")||e.startsWith("http://")||e.startsWith("https://")||e.startsWith("data:")||e.startsWith("blob:"))}function q(e,t){let n=e;const r=[],o=[];return n=n.replace(z,(e,n)=>{if(H(n)){const r=new URL(n,t).href;return B(n)&&o.push(n),e.replace(n,r)}return Z(n)&&r.push(n),e}),n=n.replace(U,(e,n)=>{if(H(n)){const e=new URL(n,t).href;return B(n)&&o.push(n),`import("${e}")`}return Z(n)&&r.push(n),e}),o.length>0&&o.join(", "),r.length>0&&r.join(", "),n}var J=/^(?:export\s+)?(?:let|const|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)/gm,V=["$emit","$listen","$refs","registerComponent","registerComponents","$use"];async function X(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(/* @__PURE__ */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(/* @__PURE__ */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=q(await r.text(),e.src),s=function(e){const t=function(e){const t=[];let n;for(J.lastIndex=0;null!==(n=J.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, "${r}");`)}else{const e=`__raw_${i}`;s.push(`${i} as ${e}`),t.push(`const ${i} = __wrapReactiveArray(${e}, __ladrillos_componentId, "${i}");`)}}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 V){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. stateKey is the local binding name the\n// array is exported/merged into component state under; passing it to the\n// component's callback lets mutations refresh the text/attribute bindings\n// that depend on that key (not just directives).\nconst __wrapReactiveArray = (arr, componentId, stateKey) => {\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(stateKey);\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, stateKey);\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, stateKey) : 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)+s,c=new Blob([a],{type:"text/javascript"}),l=URL.createObjectURL(c);try{return await(0,eval)(`import("${l}")`)}finally{URL.revokeObjectURL(l)}}catch(M){throw console.error(`[LadrillosJS] Failed to load external module: ${e.src}`,M),M}}var G=/* @__PURE__ */new Map;async function K(e){if(F.has(e))return F.get(e);const t=(async()=>{try{return await(0,eval)(`import("${e}")`)}catch(M){throw console.error(`[LadrillosJS] Failed to fetch module: ${e}`,M),M}})();return F.set(e,t),t}function Y(e,t){return t&&Array.isArray(e)?_(e,t):e}async function Q(n,r,o,s,i,l,u){if("module"!==n.type)throw new Error('executeModuleScriptWithReactivity only handles type="module" scripts');const f=n.content,d=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 s of r){if(s.isSideEffect){await K(H(s.specifier)?new URL(s.specifier,t).href:s.specifier);continue}const e=H(s.specifier)?new URL(s.specifier,t).href:s.specifier;try{const t=await K(e);for(const e of s.imports){let r;r="*"===e.imported?t:"default"===e.imported?t.default:t[e.imported],o[e.local]=Y(r,n)}}catch(M){}}return o}(f,r,l);if(i){const t=/* @__PURE__ */new Set([...c,...e,"ladrillosjs","$host","$refs","event","state"]);for(const[e,n]of Object.entries(d))t.has(e)||e in i||(i[e]=n)}const p=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}}(p),g=w(p,h),_=Object.keys(d),y=Object.values(d),v=`\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"],d=[s||/* @__PURE__ */new Map,i||{},u],p=a(r),h=[p.registerComponent,p.registerComponents,p.$use],m=t(o||"anonymous"),g=[m.$emit,m.$listen],b={...globalThis.ladrillosjs||{},registerComponent:p.registerComponent,registerComponents:p.registerComponents},w={registerComponent:p.registerComponent,registerComponents:p.registerComponents,$use:p.$use,$emit:m.$emit,$listen:m.$listen,ladrillosjs:b},E=new Set(_),A=[..._],N=_.map((e,t)=>e in w?w[e]:y[t]),$=(e,t)=>{for(let n=0;n<e.length;n++){const r=e[n];E.has(r)||(E.add(r),A.push(r),N.push(t[n]))}};$(n,l),$(c,h),$(e,g),$(f,d),$(["ladrillosjs"],[b]);const S=await new Function(...A,v)(...N);return{...i||{},...S||{}}}catch(M){throw console.error("[LadrillosJS] Failed to execute module script:",M),console.error("Original code:",p),console.error("Transformed code:",g),console.error("Imports:",d),M}}var ee="data-l-ctrl",te=/* @__PURE__ */new Set(["FOR","IF","ELSE-IF","ELSE","SHOW"]),ne=/<(for|else-if|if|else|show)\b((?:[^>"']|"[^"]*"|'[^']*')*)>/gi,re=/<\/(for|else-if|if|else|show)\s*>/gi,oe=/(<script\b[\s\S]*?<\/script\s*>|<style\b[\s\S]*?<\/style\s*>|<!--[\s\S]*?-->)/gi,se=/<\/?(?:for|if|else|show)\b/i;function ie(e){return se.test(e)?e.split(oe).map((e,t)=>t%2==1?e:e.replace(ne,(e,t,n)=>`<template ${ee}="${t.toLowerCase()}"${n}>`).replace(re,"</template>")).join(""):e}function ae(e){let t;for(;t=e.querySelector(`template[${ee}]`);){const e=t.ownerDocument.createElement(t.getAttribute(ee));for(const n of Array.from(t.attributes))n.name!==ee&&e.setAttribute(n.name,n.value);e.appendChild(t.content),t.replaceWith(e)}for(const n of Array.from(e.querySelectorAll("template")))ae(n.content)}function ce(e){return te.has(e.tagName)}var le=new DOMParser,ue=["___vscode_livepreview_injected_script","/livereload.js","browser-sync-client","browser-sync/dist","webpack-dev-server","sockjs-node","__webpack_hmr"],fe=["aka.ms/live-preview","Live Preview Extension","___vscode_livepreview","__bs_script__","browser-sync","Browsersync","browserSync","LiveReload","webpackHotUpdate","__webpack_hmr"],de=["__bs_script__"];async function pe(e,t,n){const r=function(e){const t=le.parseFromString(ie(e),"text/html");ae(t.head),ae(t.body);const n=Array.from(t.head.children).filter(ce),r=t.body.firstChild;for(const o of n)t.body.insertBefore(o,r);return t}(e),o=Array.from(r.querySelectorAll("script")),i=o.filter(e=>!function(e){const t=e.getAttribute("src")||"";if(t&&ue.some(e=>t.includes(e)))return!0;const n=e.getAttribute("id")||"";if(n&&de.includes(n))return!0;const r=e.textContent||"";return!(!r||!fe.some(e=>r.includes(e)))}(e)),a=i.filter(e=>!e.src).map(e=>({content:(e.textContent??"").trim(),type:e.getAttribute("type")})).filter(e=>e.content.length>0),c=i.filter(e=>(e.getAttribute("src")||"").includes("html-proxy")&&"module"===e.getAttribute("type")),l=[...a,...(await Promise.all(c.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)],u=i.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),f=u.filter(e=>!e.external),d=u.filter(e=>e.external),p=await Promise.all(f.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=q(n,e.src)),{content:n,type:e.type}}}catch{}return null}));for(const s of p)s&&l.push(s);o.forEach(e=>e.remove());const h=Array.from(r.querySelectorAll('link[rel="stylesheet"]')),m=h.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);h.forEach(e=>e.remove());const g=Array.from(r.querySelectorAll("style")),_=g.map(e=>e.textContent??"").join("\n").trim();g.forEach(e=>e.remove());const y=e=>e?Array.from(e.children).find(e=>"TEMPLATE"===e.tagName):void 0,v=y(r.body)??y(r.head);let b;if(v){const e=document.createElement("div");e.appendChild(v.content.cloneNode(!0)),b=e.innerHTML.trim()}else b=r.body.innerHTML.trim();const w=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),r=e.matchAll(s);for(const o of r){const e=o[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)}}for(const o of 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().match(/\bin\b\s+(.+)$/);if(!e)continue;const n=e[1].trim().match(/^([a-zA-Z_$][a-zA-Z0-9_$]*)/);n&&t.add(n[1])}return t}(e))n.has(o)||t.add(o);return Array.from(t)}(b);return{tagName:t,template:b,scripts:l,externalScripts:d,externalStyles:m,styles:_,sourcePath:n,lazy:!1,templateBindings:w}}var he=/* @__PURE__ */new Map,me=25,ge=(e,t)=>{if(he.has(e))he.delete(e);else if(he.size>=me){const e=he.keys().next().value;e&&he.delete(e)}he.set(e,t)};async function _e(e){if(!e?.trim())throw D("A component path is required.",T.INVALID_COMPONENT_PATH,null,"Pass a URL or relative .html path to registerComponent().");const t=(e=>{const t=he.get(e);return t&&(he.delete(e),he.set(e,t)),t})(e);if(t)return{source:t,resolvedPath:e};const n=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(!n)throw D(`Could not load the component file. Tried ${e.endsWith(".html")?e:`${e}/index.html and ${e}`}.`,T.COMPONENT_LOAD_FAILED,{sourcePath:e},"Check the path, serve the app over HTTP, and make sure the server returns an HTML response.");const r=await n.response.text();return ge(e,r),n.path!==e&&ge(n.path,r),{source:r,resolvedPath:n.path}}function ye(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=ve(e.slice(0,t).trim());return r?{calleePath:r,args:be(e.slice(t+1,n))}:null}(t);if(n)return{raw:t,path:n.calleePath,isFunction:!0,isExpression:!0,functionArgs:n.args};const r=ve(t);return r?{raw:t,path:r,isFunction:!1,isExpression:!1}:{raw:t,path:[],isExpression:!0}}function ve(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}function be(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}var we=globalThis.requestIdleCallback||(e=>setTimeout(e,1)),Ee=globalThis.cancelIdleCallback||(e=>clearTimeout(e)),Ae=(e=1e4)=>t=>{const n=we(t,{timeout:e});return()=>Ee(n)},Ne=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()},$e=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)},Se=(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}},xe=(e=0)=>t=>{const n=setTimeout(t,e);return()=>clearTimeout(n)},Ce=Ne({rootMargin:"100px"});function Te(e){const t=e.querySelector(':scope > template[slot="placeholder"]');return t?(t.remove(),t.content.cloneNode(!0)):null}function Le(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 Se();const n=t.split(",").map(e=>e.trim()).filter(Boolean);return Se(1===n.length?n[0]:n)}if(e.hasAttribute("media"))return $e(e.getAttribute("media")||"");if(e.hasAttribute("delay"))return xe(Number(e.getAttribute("delay"))||0);if(e.hasAttribute("idle")||e.hasAttribute("idle-timeout")){const t=e.getAttribute("idle-timeout");return t?Ae(Number(t)||1e4):Ae()}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?Ne(t):Ce}(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=Te(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(()=>Hn)).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 d=document.createElement("span");let p;d.setAttribute("data-lazy-sentinel",""),d.style.cssText="display:inline-block;width:0;height:0;padding:0;margin:0;border:0;",i.parentNode?.insertBefore(d,i.nextSibling);const h=()=>{p?.(),d.remove(),f()};return void(p=n(h,d))}var a;const c=Te(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 d=document.createElement("span");let p;d.setAttribute("data-lazy-sentinel",""),d.style.cssText="display:inline-block;width:0;height:0;padding:0;margin:0;border:0;",i.parentNode?.insertBefore(d,i.nextSibling),d.__lazyContent=l,p=n(()=>{p?.(),d.remove(),f()},d)}function Re(e){const t=Array.from(e.querySelectorAll("lazy"));for(const n of t)Oe(n)||Le(n)}function Oe(e){let t=e.parentElement;for(;t;){if("FOR"===t.tagName)return!0;t=t.parentElement}return!1}function ke(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 Ie(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null);let r;for(;r=n.nextNode();){if(Me(r)||Pe(r))continue;const e=r.textContent;if(!e)continue;const n=[...e.matchAll(s)];if(n.length>0){const o=e,s=n.map(e=>ye(e[1].trim()));t.push({node:r,bindings:s,original:o})}}const o=function(e){const t=[],n=["$bind","$ref","$no:bind","condition","each","key","track-by"],r=Array.from(e.querySelectorAll("*"));for(const o of r)if("FOR"!==o.tagName&&!Me(o)&&!o.hasAttribute("$no:bind")&&!Pe(o))for(const e of Array.from(o.attributes)){if(n.includes(e.name))continue;const r=[...e.value.matchAll(s)];if(r.length>0){const n=document.createTextNode(e.value),s=r.map(e=>ye(e[1].trim()));t.push({node:n,bindings:s,original:e.value,isAttribute:!0,attributeName:e.name,element:o})}}return t}(e);return t.push(...o),t}function Me(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}var 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"],je=new Set(De),Fe="$bind";function ze(e){const t=e.currentTarget?.__ladrillosBindSync;t&&t.eventType===e.type&&t.sync()}var Ue="$ref",We=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]+)$/,He=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Be=/^\(|\)$/g;function Ze(e){return e.replace(/\$/g,"\\$")}var qe=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"]),Je=Object.freeze([]),Ve=/* @__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"]),Xe=(Object.freeze(["registerComponent","$use"]),{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"}),Ge=["ctrl","alt","shift","meta"],Ke=["prevent","stop","self","once","passive","capture"],Ye={left:0,middle:1,right:2};function Qe(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?Ke.includes(e)?o.eventModifiers.push(e):Ge.includes(e)?o.systemModifiers.push(e):e in Ye?o.mouseModifier=e:o.keyModifiers.push(e):o.exact=!0}return o}function et(e){const t={};return e.includes("passive")&&(t.passive=!0),e.includes("capture")&&(t.capture=!0),e.includes("once")&&(t.once=!0),t}function tt(e,t){return function(n){t.eventModifiers.includes("self")&&n.target!==n.currentTarget||t.mouseModifier&&n instanceof MouseEvent&&!function(e,t){return e.button===Ye[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 Ge)if(!t.includes(o)&&r[o])return!1;return!0}(n,t.systemModifiers,t.exact)||t.keyModifiers.length>0&&n instanceof KeyboardEvent&&!t.keyModifiers.some(e=>function(e,t){const n=t.toLowerCase(),r=Xe[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))||(t.eventModifiers.includes("prevent")&&n.preventDefault(),t.eventModifiers.includes("stop")&&n.stopPropagation(),e(n))}}function nt(e){return e.startsWith("$on:")}var rt=e=>e instanceof ShadowRoot?e.host:e;function ot(e,t,n,r){const o=[e,...ke(e)];for(const s of o){const e=Array.from(s.querySelectorAll("*"));for(const o of e)if(!it(o)){for(const e of De){const s=o.getAttribute(e);if(s){o.removeAttribute(e);const i=e.slice(2),a=at(s,t,n,r);a&&o.addEventListener(i,a)}}st(o,t,n,r)}}}function st(e,t,n,r){const o=Array.from(e.attributes).filter(e=>nt(e.name));for(const s of o){const o=Qe(s.name);if(!o)continue;const i=s.value;e.removeAttribute(s.name);const a=at(i,t,n,r);if(!a)continue;const c=tt(a,o),l=et(o.eventModifiers);e.addEventListener(o.eventName,c,l)}}function it(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 at(e,t,n,r){try{const o=r?.__componentUrl,s=r?.__componentId,i=mt(o,s),a=ht(),c=["event","__state__","$refs","$host",...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,p=f.length>0?`let { ${f.join(", ")} } = __state__;`:"",h=d&&u.length>0?`const { ${u.join(", ")} } = __state__;`:"",m=w(ut(n,d?u:[]),f,{rewriteDeclarations:!1}),g=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(" "):"",_=/\bawait\b/.test(e)||/\bawait\b/.test(m)||/\basync\b/.test(m),y=o||"ladrillos-event-handler",v=_?`"use strict"; ${p} ${h} ${m} try { await (async () => { ${e} })(); } finally { ${g} }\n//# sourceURL=${y}`:`"use strict"; ${p} ${h} ${m} ${e}; ${g}\n//# sourceURL=${y}`,b=Object.getPrototypeOf(async function(){}).constructor,E=_?new b(...c,v):new Function(...c,v);return e=>{try{ze(e);const n=[e,t,r&&r.__refs||/* @__PURE__ */new Map,r,...a.map(()=>{}),...i.values],o=E(...n);o&&"function"==typeof o.catch&&o.catch(e=>{const n={tagName:r?.tagName?.toLowerCase(),sourcePath:t.__componentUrl,instanceId:t.__componentId};P(0,e,{context:n.tagName?n:x(),errorCode:T.EVENT_HANDLER_FAILED})})}catch(n){const e={tagName:r?.tagName?.toLowerCase(),sourcePath:t.__componentUrl,instanceId:t.__componentId};P(0,n,{context:e.tagName?e:x(),errorCode:T.EVENT_HANDLER_FAILED})}}}catch(o){return r?.tagName&&r.tagName.toLowerCase(),null}}var ct=/* @__PURE__ */new Map,lt=500;function ut(e,t=[]){const n=t.join(",")+"\0"+e,r=ct.get(n);if(void 0!==r)return r;const o=function(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=ft(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=ft(e,r,e.indexOf("{",r+o[0].length-1));s&&n.push(s)}return n.map(e=>e.trim()).join(";\n")+(n.length>0?";":"")}(e,t);if(ct.size>=lt){const e=ct.keys().next().value;void 0!==e&&ct.delete(e)}return ct.set(n,o),o}function ft(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 dt(e,t,n,r,o,s,i=[]){try{const a=pt(e),c=`\n "use strict";\n ${w(e,[.../* @__PURE__ */new Set([...a,...i])])}\n//# sourceURL=${n||"ladrillos-component"}\n `,l=mt(n,r),u=ht(),f=["__state__","$host","$refs",...u,...l.keys],d=[t,o,s,...u.map(()=>{}),...l.values];new Function(...f,c)(...d)}catch(a){!function(e,t){const n=S,r=new O("Error executing script with reactive state",201,{context:n,cause:t});console.error(`${$} Script error. See: ${L(201)}`),I(r,n)}(0,a)}}function pt(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},d=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=d(r)}continue}r++}else r+=2;return r},p=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=d(r);a()&&c(r,e),r=e;continue}if("/"===m&&p(r)){const e=h(r);a()&&c(r,e),r=e;continue}if("{"!==m)if("}"!==m)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 a()&&i[i.length-1]===o?i.pop():a()&&(t[r]=" "),o--,r++;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 ht(){return Je.filter(e=>!Ve.has(e))}function mt(n,r){const o=[],s=[];for(const e of qe)e in globalThis&&(o.push(e),s.push(globalThis[e]));const i=a(n||window.location.href);o.push(...c),s.push(i.registerComponent,i.registerComponents,i.$use);const l=t(r||"anonymous");return o.push(...e),s.push(l.$emit,l.$listen),{keys:o,values:s}}var gt=/* @__PURE__ */new Map,_t=/^[A-Za-z_$][\w$]*$/,yt=null,vt=null;function bt(e,t){try{const n=Object.keys(t),r=[],o=[];for(let e=0;e<n.length;e++){const s=n[e];_t.test(s)&&(r.push(s),o.push(t[s]))}return wt(),At(r,Et(r.join(",")),e)(...vt,...o)}catch(n){return P(0,n,{context:x()}),`{${e}}`}}function wt(){return null===yt&&(yt=ht(),vt=yt.map(()=>{})),yt}function Et(e){let t=gt.get(e);if(!t){if(gt.size>=100){const e=gt.keys().next().value;void 0!==e&>.delete(e)}t=/* @__PURE__ */new Map,gt.set(e,t)}return t}function At(e,t,n){let r=t.get(n);if(!r){if(t.size>=5e3){const e=t.keys().next().value;void 0!==e&&t.delete(e)}r=new Function(...yt,...e,`"use strict"; return ${n};`),t.set(n,r)}return r}function Nt(e,t){const n=wt(),r=Object.keys(e),o=[];for(let h=0;h<r.length;h++)_t.test(r[h])&&o.push(r[h]);const s=o.join(","),i=Et(s),a=n.length,c=new Array(a+o.length).fill(void 0),l=()=>{for(let t=0;t<o.length;t++)c[a+t]=e[o[t]]},u=void 0!==t;let f=null,d=null;if(u){l(),f=[],d=[];for(const e of t){const t=o.indexOf(e);t>=0&&(f.push(a+t),d.push(e))}}const p=e=>{try{const t=At(o,i,e);return u||l(),t.apply(null,c)}catch(t){return P(0,t,{context:x()}),`{${e}}`}};return p.sig=s,p.refresh=u?()=>{for(let t=0;t<f.length;t++)c[f[t]]=e[d[t]]}:l,p.compile=e=>{try{return At(o,i,e)}catch(t){return P(0,t,{context:x()}),null}},p.invoke=(e,t)=>{try{return u||l(),e.apply(null,c)}catch(n){return P(0,n,{context:x()}),`{${t}}`}},p}var $t=/* @__PURE__ */new Set(["disabled","checked","readonly","required","selected","hidden","multiple","autofocus","open","novalidate","formnovalidate","inert","reversed","loop","muted","controls","autoplay","playsinline","default","ismap","allowfullscreen"]);function St(e,t){if(function(e){if(!e.isAttribute||!e.attributeName)return!1;if(1!==e.bindings.length)return!1;const t=e.original.trim();return!!/^\{[\s\S]*\}$/.test(t)&&t.slice(1,-1).trim()===e.bindings[0].raw.trim()}(e)){const r=e.element??e.node.parentElement,o=bt(e.bindings[0].raw,t);return void(r&&(n=o,null===n||"object"!=typeof n&&"function"!=typeof n?function(e,t,n){$t.has(t)?n?e.setAttribute(t,""):e.removeAttribute(t):null!=n?e.setAttribute(t,String(n)):e.removeAttribute(t)}(r,e.attributeName,o):(r.hasAttribute?.(e.attributeName)&&r.removeAttribute(e.attributeName),r[e.attributeName]=o)))}var n;let r=e.original;for(const o of e.bindings){const e=bt(o.raw,t),n=String(e??"");r=r.replace(`{${o.raw}}`,n)}if(e.isAttribute&&e.attributeName){const t=e.element??e.node.parentElement;t&&t.setAttribute(e.attributeName,r)}else e.node.textContent=r}function xt(e,t){for(const n of e)St(n,t)}var Ct=!1;function Tt(e){void 0!==e.cacheSize&&(e=>{if(!Number.isFinite(e)||e<1)throw new Error(`[LadrillosJS] configure({ cacheSize }) requires a positive integer, got ${e}`);for(me=Math.floor(e);he.size>me;){const e=he.keys().next().value;if(!e)break;he.delete(e)}})(e.cacheSize),void 0!==e.onError&&(k=e.onError),void 0!==e.delegateLoopEvents&&(Ct=e.delegateLoopEvents)}var Lt="ELSE-IF",Rt="ELSE";function Ot(e){const t=e.trim();return t.startsWith("{")&&t.endsWith("}")?t.slice(1,-1).trim():t}function kt(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 It(e,t){const n=Array.from(e.querySelectorAll("for"));for(const r of n){if(!r.parentNode)continue;if(Pt(r))continue;const n=r.getAttribute("each")||r.getAttribute("of")||"";if(!n)continue;let o=Dt(n);if(!o)continue;const s=r.getAttribute("key")||r.getAttribute("track-by")||o.key,i=Mt(r);if(!i)continue;const a=document.createComment(` <for> ${n} `),c=r.parentElement||e;c.insertBefore(a,r),r.remove();const l={template:i,expression:n,itemName:o.item,indexName:o.index,arrayName:o.array,keyAttribute:s,placeholder:a,renderedElements:[],originalParent:c,hasConditionals:null!==i.querySelector("IF")};t.loops.push(l)}}function Mt(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 Pt(e){let t=e.parentElement;for(;t;){if("FOR"===t.tagName)return!0;t=t.parentElement}return!1}function Dt(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(Be,"").trim(),a=i.match(He);let c,l,u;return a?(c=i.replace(He,"").trim(),l=a[1]?.trim(),u=a[2]?.trim()):c=i,{item:c,index:l||u,key:n,array:o}}function jt(e,t){const n=Array.from(e.querySelectorAll("if"));for(const r of n){if(Pt(r))continue;const n=[],o=Ot(r.getAttribute("condition")||""),s=document.createComment(` <if> ${o} `),i=r.parentElement||e,a=r.nextSibling;i.insertBefore(s,r),n.push(Ft(r,o,"if",s,i,a));let c=r.nextElementSibling;for(;c;){const e=c.tagName;if(e!==Lt){if(e===Rt){n.push(Ft(c,"","else",s,i,c.nextSibling)),c.remove();break}break}{const e=Ot(c.getAttribute("condition")||""),t=c.nextElementSibling;n.push(Ft(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 Ft(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 zt(e,t){const n=Array.from(e.querySelectorAll("show"));for(const r of n){if(!r.parentNode)continue;if(Pt(r))continue;const e=Ot(r.getAttribute("condition")||""),n=r;n.style.display="contents",t.showElements.push({element:n,expression:e,originalDisplay:"contents"}),r.removeAttribute("condition")}}function Ut(e,t){const n=Array.from(e.querySelectorAll(`[${Ze(Fe)}]`));for(const r of n){const e=r.getAttribute(Fe);if(!e)continue;if(Wt(r))continue;const n={element:r,path:e.split("."),raw:e,isContentEditable:r.hasAttribute("contenteditable")};t.twoWayBindings.push(n),r.removeAttribute(Fe)}}function Wt(e,t){return Pt(e)}function Ht(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=function(e){const t=e.__scriptContent;return{...e,__reactiveState__:e,__scriptContent__:t||"",__componentUrl__:e.__componentUrl||""}}(t);c[e.itemName]=null,e.indexName&&(c[e.indexName]=0);const l="function"==typeof n.forContext?n.forContext(c,e.indexName?[e.itemName,e.indexName]:[e.itemName]):e=>n(e,c),u=(t,n)=>{c[e.itemName]=t,e.indexName&&(c[e.indexName]=n),l.refresh?.()};let f=null;const d=()=>f??=_n(t,e.indexName?[e.itemName,e.indexName]:[e.itemName]),p=(t,n,r)=>{const o=t[Vt];o&&(o[e.itemName]=n,e.indexName&&(o[e.indexName]=r))},h=function(e){let t=rn.get(e);return void 0===t&&(t=function(e){if(e.hasConditionals)return null;if(null!==e.template.querySelector("FOR"))return null;const t=[],n=[],r=[],o=[],s=e=>{if(e.nodeType===Node.ELEMENT_NODE){const t=e.attributes;for(let e=0;e<t.length;e++){const s=t[e];if(je.has(s.name))r.push({path:o.slice(),attrName:s.name,eventName:s.name.slice(2),code:dn(s.value),directive:null});else if(nt(s.name)){const e=Qe(s.name);e&&r.push({path:o.slice(),attrName:s.name,eventName:e.eventName,code:dn(s.value),directive:e,options:et(e.eventModifiers)})}else s.value.includes("{")&&n.push({path:o.slice(),name:s.name,parsed:qt(s.value)})}}else if(e.nodeType===Node.TEXT_NODE){const n=e.textContent;n&&n.includes("{")&&t.push({path:o.slice(),parsed:qt(n)})}const i=e.childNodes;for(let t=0;t<i.length;t++)o.push(t),s(i[t]),o.pop()};s(e.template);let i=r,a=null;const c=[];if(Ct&&r.length>0){i=[];const t=/* @__PURE__ */new Map;for(const n of r)if(Qt(n.eventName,n.directive)){const r=n.path.join(",");let o=t.get(r);if(!o){const s=[];o={path:n.path,entries:s,stamp:{owner:e,entries:s}},t.set(r,o)}o.entries.push(n),c.includes(n.eventName)||c.push(n.eventName)}else i.push(n);t.size>0&&(a=[...t.values()])}return{texts:t,attrs:n,handlers:i,delegated:a,delegatedEvents:c}}(e),rn.set(e,t)),t}(e),m=(t,r)=>{const o=e.template.cloneNode(!0);u(t,r);const s=Object.create(d().proto);return s[e.itemName]=t,e.indexName&&(s[e.indexName]=r),o[Vt]=s,h?(function(e,t,n,r,o,s){const i=void 0!==n.invoke&&void 0!==n.sig,a=t=>{let n=e;for(let e=0;e<t.length;e++)n=n.childNodes[t[e]];return n},c=new Array(t.texts.length);for(let u=0;u<t.texts.length;u++){const{path:e,parsed:r}=t.texts[u],o=a(e);o.__originalTemplate=o.textContent;const{statics:s,exprs:l}=r,f=i?Zt(r,n):null;let d=s[0];for(let t=0;t<l.length;t++){const e=null!==f?f[t]:null,r=null!==e?n.invoke(e,l[t]):n(l[t]);d+=String(r??"")+s[t+1]}o.textContent=d,c[u]={node:o,parsed:r}}const l=new Array(t.attrs.length);for(let u=0;u<t.attrs.length;u++){const{path:e,name:r,parsed:o}=t.attrs[u],s=a(e).getAttributeNode(r);s.__originalTemplate=s.value;const{statics:c,exprs:f}=o,d=i?Zt(o,n):null;let p=c[0];for(let t=0;t<f.length;t++){const e=null!==d?d[t]:null,r=null!==e?n.invoke(e,f[t]):n(f[t]);p+=(null!==r&&"object"==typeof r?JSON.stringify(r):String(r??""))+c[t+1]}s.value=p,l[u]={attr:s,parsed:o}}if(t.handlers.length>0||null!==t.delegated){const n=o();for(const e of t.handlers){const t=a(e.path);t.removeAttribute(e.attrName);const o=vn(e.code,r,n);o&&(e.directive?t.addEventListener(e.eventName,tt(o,e.directive),e.options):t.addEventListener(e.eventName,o))}if(null!==t.delegated){e[Yt]=s;for(const e of t.delegated){const t=a(e.path);for(const n of e.entries)t.removeAttribute(n.attrName);t[Kt]=e.stamp}!function(e,t,n){let r=en.get(e);r||(r={container:e.placeholder.parentNode??e.originalParent,setup:t,events:/* @__PURE__ */new Set},en.set(e,r)),r.setup=t;for(const o of n)if(!r.events.has(o)){r.events.add(o);const t=r;r.container.addEventListener(o,n=>tn(n,e,t))}}(s,n,t.delegatedEvents)}}e[Jt]={texts:c,attrs:l,conds:[]}}(o,h,l,s,d,e),o):(e.hasConditionals&&un(o,c,n,l),fn(o,c,n,l,s,d),o)},g=new Array(s.length),_=new Array(s.length);if(s.length===i.length&&a.length===s.length){let t=!0;for(let e=0;e<s.length;e++)if(s[e]!==i[e]){t=!1;break}if(t){for(let e=0;e<s.length;e++)u(s[e],e),p(a[e],s[e],e),on(a[e],c,n,l,d);return void(e.previousItems=s)}}if(e.keyAttribute){const t=/* @__PURE__ */new Map,r=/* @__PURE__ */new Map;for(let n=0;n<i.length;n++){const o=e.keyGetter(i[n],n);r.set(o,n),a[n]&&t.set(o,a[n])}const o=/* @__PURE__ */new Set;for(let n=0;n<s.length;n++)o.add(e.keyGetter(s[n],n));for(const[e,n]of t)o.has(e)||(n.remove(),t.delete(e));for(let i=0;i<s.length;i++){const o=s[i],a=e.keyGetter(o,i),f=t.get(a);f?(u(o,i),p(f,o,i),on(f,c,n,l,d),g[i]=f,_[i]=r.get(a)??-1):(g[i]=m(o,i),_[i]=-1)}}else{const e=Math.min(i.length,s.length);for(let t=0;t<s.length;t++)t<e?(u(s[t],t),p(a[t],s[t],t),on(a[t],c,n,l,d),g[t]=a[t],_[t]=t):(g[t]=m(s[t],t),_[t]=-1);for(let t=e;t<a.length;t++)a[t]?.remove()}const y=function(e){const t=e.length,n=/* @__PURE__ */new Set;if(0===t)return n;let r=-1,o=!0;for(let c=0;c<t;c++){const t=e[c];if(!(t<0)){if(t<=r){o=!1;break}r=t}}if(o){for(let r=0;r<t;r++)e[r]>=0&&n.add(r);return n}const s=[],i=new Array(t).fill(-1);for(let c=0;c<t;c++){const t=e[c];if(t<0)continue;let n=0,r=s.length;for(;n<r;){const o=n+r>>1;e[s[o]]<t?n=o+1:r=o}n>0&&(i[c]=s[n-1]),s[n]=c}let a=s.length>0?s[s.length-1]:-1;for(;-1!==a;)n.add(a),a=i[a];return n}(_),v=e.placeholder.parentNode;if(v){let t=e.placeholder;for(let e=0;e<g.length;e++){const n=g[e];y.has(e)||t.nextSibling!==n&&v.insertBefore(n,t.nextSibling),t=n}}e.renderedElements=g,e.previousItems=[...s]}var Bt=/* @__PURE__ */new Map;function Zt(e,t){if(e.fnsSig!==t.sig){const n=new Array(e.exprs.length);for(let r=0;r<e.exprs.length;r++)n[r]=t.compile(e.exprs[r]);e.fns=n,e.fnsSig=t.sig}return e.fns}function qt(e){let t=Bt.get(e);if(t)return t;const n=[],r=[],o=/\{([^}]+)\}/g;let s,i=0;for(;s=o.exec(e);)n.push(e.slice(i,s.index)),r.push(s[1].trim()),i=s.index+s[0].length;return n.push(e.slice(i)),t={statics:n,exprs:r},Bt.set(e,t),t}var Jt="__ladrillosBindingCache",Vt="__ladrillosLoopCtx";function Xt(e){const t=[],n=[],r=[],o=e=>{const t=e.attributes;for(let r=0;r<t.length;r++){const e=t[r].__originalTemplate;e&&n.push({attr:t[r],parsed:qt(e)})}};o(e);const s=document.createTreeWalker(e,NodeFilter.SHOW_TEXT|NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT);let i;for(;i=s.nextNode();)if(i.nodeType===Node.TEXT_NODE){const e=i.__originalTemplate;e&&t.push({node:i,parsed:qt(e)})}else i.nodeType===Node.ELEMENT_NODE?o(i):i[sn]&&r.push(i);return{texts:t,attrs:n,conds:r}}var Gt=/* @__PURE__ */new Set(["click","dblclick","auxclick","contextmenu","mousedown","mouseup","mousemove","mouseover","mouseout","pointerdown","pointerup","pointermove","pointerover","pointerout","pointercancel","touchstart","touchend","touchmove","touchcancel","keydown","keyup","keypress","input","beforeinput","change","submit","reset","focusin","focusout","wheel","dragstart","drag","dragend","dragenter","dragover","dragleave","drop","cut","copy","paste"]),Kt="__ladrillosDelegated",Yt="__ladrillosLoopOwner";function Qt(e,t){if(!Gt.has(e))return!1;if(t){const e=t.eventModifiers;if(e.includes("self")||e.includes("capture")||e.includes("once")||e.includes("passive"))return!1}return!0}var en=/* @__PURE__ */new WeakMap;function tn(e,t,n){const r=n.container,o=[];let s=null,i=e.target;for(;i&&i!==r;){const e=i[Kt];if(e&&e.owner===t&&o.push(e.entries),i[Yt]===t){s=i[Vt]??null;break}i=i.parentNode}if(null!==s&&0!==o.length)for(const a of o)for(const t of a)if(t.eventName===e.type&&(nn(t,e,s,n.setup),e.cancelBubble))return}function nn(e,t,n,r){const o=yn(e.code,r);if(!o)return;const s=t=>{try{ze(t),o(t,n,r.reactiveState,r.emit,r.listen)}catch(s){M(`Error in loop event handler: ${e.code}`,null,s)}};e.directive?tt(s,e.directive)(t):s(t)}var rn=/* @__PURE__ */new WeakMap;function on(e,t,n,r=e=>n(e,t),o){let s=e[Jt];s||(s=Xt(e),e[Jt]=s),s.conds.length>0&&function(e,t,n,r,o,s){let i=!1;for(const a of e){const e=a[sn],c=an(e.branches,r);if(c!==e.currentIndex&&(i=!0,e.currentEl&&e.currentEl.parentNode&&e.currentEl.remove(),e.currentEl=null,e.currentIndex=-1,c>=0)){const i=cn(e.branches[c]);a.parentNode.insertBefore(i,a.nextSibling),e.currentIndex=c,e.currentEl=i,un(i,t,n,r),fn(i,t,n,r,o,s)}}return i}(s.conds,t,n,r,e[Vt]??t,o)&&(s=Xt(e),e[Jt]=s);const i=void 0!==r.invoke&&void 0!==r.sig,a=s.texts;for(let l=0;l<a.length;l++){const{node:e,parsed:t}=a[l],{statics:n,exprs:o}=t,s=i?Zt(t,r):null;let c=n[0];for(let i=0;i<o.length;i++){const e=null!==s?s[i]:null,t=null!==e?r.invoke(e,o[i]):r(o[i]);c+=String(t??"")+n[i+1]}e.textContent!==c&&(e.textContent=c)}const c=s.attrs;for(let l=0;l<c.length;l++){const{attr:e,parsed:t}=c[l],{statics:n,exprs:o}=t,s=i?Zt(t,r):null;let a=n[0];for(let i=0;i<o.length;i++){const e=null!==s?s[i]:null,t=null!==e?r.invoke(e,o[i]):r(o[i]);a+=(null!==t&&"object"==typeof t?JSON.stringify(t):String(t??""))+n[i+1]}e.value!==a&&(e.value=a)}}var sn="__ladrillosLoopCond";function an(e,t){for(let n=0;n<e.length;n++){const r=e[n];if("else"===r.type)return n;try{if(t(r.condition))return n}catch{}}return-1}function cn(e){const t=document.createElement("span");return t.style.display="contents",t.appendChild(e.template.content.cloneNode(!0)),t}function ln(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?"":Ot(e.getAttribute("condition")||""),template:n}}function un(e,t,n,r){const o=r??(e=>n(e,t));let s=1e4;for(;s-- >0;){let t=null;const n=e.querySelectorAll("IF");for(let e=0;e<n.length;e++){const r=n[e];if(r.parentNode&&!Pt(r)){t=r;break}}if(!t)return;const r=[];r.push(ln(t,"if"));const s=[];let i=t.nextElementSibling;for(;i;){if(i.tagName!==Lt){if(i.tagName===Rt){r.push(ln(i,"else")),s.push(i);break}break}r.push(ln(i,"else-if")),s.push(i),i=i.nextElementSibling}const a=document.createComment(" <if> (loop) "),c={branches:r,currentIndex:-1,currentEl:null};a[sn]=c,t.parentNode.insertBefore(a,t),t.remove();for(const e of s)e.remove();const l=an(r,o);if(l>=0){const e=cn(r[l]);a.parentNode.insertBefore(e,a.nextSibling),c.currentIndex=l,c.currentEl=e}}}function fn(e,t,n,r,o,s){const i=[],a=[],c=[],l=r??("function"==typeof n.forContext?n.forContext(t):e=>n(e,t)),u=o??t;let f=null;const d=s??(()=>f??=function(e){const t=e.__reactiveState__??e;return _n(t,Object.keys(e).filter(n=>!n.startsWith("__")&&"function"!=typeof e[n]&&!Object.prototype.hasOwnProperty.call(t,n)))}(t)),p=void 0!==l.invoke&&void 0!==l.sig,h=(e,t,n)=>{const r=null!==e?e[n]:null;return null!==r?l.invoke(r,t[n]):l(t[n])},m=e=>{for(const t of Array.from(e.attributes))if(!je.has(t.name)&&!nt(t.name)&&t.value.includes("{")){const e=qt(t.value);t.__originalTemplate=t.value;const n=p?Zt(e,l):null;let r=e.statics[0];for(let t=0;t<e.exprs.length;t++){const o=h(n,e.exprs,t);r+=(null!==o&&"object"==typeof o?JSON.stringify(o):String(o??""))+e.statics[t+1]}t.value=r,a.push({attr:t,parsed:e})}!function(e,t,n){const r=e.attributes;let o=null;for(let i=0;i<r.length;i++){const e=r[i].name;(je.has(e)||nt(e))&&(o??=[]).push({name:e,value:r[i].value})}if(!o)return;const s=n();for(const{name:i,value:a}of o)if(je.has(i)){e.removeAttribute(i);const n=i.slice(2),r=vn(dn(a),t,s);r&&e.addEventListener(n,r)}else pn(e,i,a,t,s)}(e,u,d)};m(e);const g=document.createTreeWalker(e,NodeFilter.SHOW_TEXT|NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT);let _;for(;_=g.nextNode();)if(_.nodeType===Node.TEXT_NODE){const e=_.textContent;if(e&&e.includes("{")){const t=qt(e);_.__originalTemplate=e;const n=p?Zt(t,l):null;let r=t.statics[0];for(let e=0;e<t.exprs.length;e++)r+=String(h(n,t.exprs,e)??"")+t.statics[e+1];_.textContent=r,i.push({node:_,parsed:t})}}else _.nodeType===Node.ELEMENT_NODE?m(_):_[sn]&&c.push(_);e[Jt]={texts:i,attrs:a,conds:c}}function dn(e){return e.replace(/\{([^}]+)\}/g,(e,t)=>`(${t.trim()})`)}function pn(e,t,n,r,o){const s=Qe(t);if(!s)return;const i=dn(n);e.removeAttribute(t);const a=vn(i,r,o);if(!a)return;const c=tt(a,s),l=et(s.eventModifiers);e.addEventListener(s.eventName,c,l)}var hn=/* @__PURE__ */new Map,mn=/* @__PURE__ */new Map,gn=1e3;function _n(e,n){const r=e.__scriptContent||"",o=r.trim().length>0,s=!0===e.__hasModuleScripts,i=[],a=[];for(const t of Object.keys(e))t.startsWith("__")||("function"==typeof e[t]?a.push(t):i.push(t));const c=n.filter(e=>!i.includes(e)),l=a.filter(e=>!n.includes(e));let u="",f="";if(s||!o)f=l.length>0?`const { ${l.join(", ")} } = context;`:"";else{const e=hn.get(r);void 0!==e?u=e:(u=ut(r,[]),hn.set(r,u))}const d=c.length>0?`const { ${c.join(", ")} } = context;`:"",p=i.length>0?`let { ${i.join(", ")} } = reactiveState;`:"",h=!s&&i.length>0?i.map(e=>`reactiveState.${e} = ${e};`).join(" "):"",m=t(e.__componentId||"anonymous"),g={__reactiveState__:e,__scriptContent__:r,__componentUrl__:e.__componentUrl||""};for(const t of a)g[t]=e[t];return{reactiveState:e,proto:g,bodyPrefix:`"use strict";\n ${d}\n ${p}\n ${f}\n ${u}\n `,bodySuffix:`;\n ${h}`,emit:m.$emit,listen:m.$listen,fnCache:/* @__PURE__ */new Map}}function yn(e,t){let n=t.fnCache.get(e);if(void 0!==n)return n;const r=t.bodyPrefix+e+t.bodySuffix;if(n=mn.get(r)??null,null===n)try{if(mn.size>=gn){const e=mn.keys().next().value;void 0!==e&&mn.delete(e)}n=new Function("event","context","reactiveState","$emit","$listen",r),mn.set(r,n)}catch(o){n=null}return t.fnCache.set(e,n),n}function vn(e,t,n){const r=yn(e,n);if(!r)return null;const{reactiveState:o,emit:s,listen:i}=n;return n=>{try{ze(n),r(n,t,o,s,i)}catch(a){M(`Error in loop event handler: ${e}`,null,a)}}}function bn(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 wn(e,t,n,r){const o=e.element,{raw:s,path:i,isContentEditable:a}=e;En(o,n(s,t),a);const c=i[0];r.has(c)||r.set(c,[]),r.get(c).push({element:o,path:i,isContentEditable:a}),s===c||r.has(s)||r.set(s,[]),s!==c&&r.get(s).push({element:o,path:i,isContentEditable:a});const l=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 u=!1;o.__isUpdatingFromState=()=>u,o.__setUpdatingFromState=e=>{u=e};const f=()=>{if(u)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)};o.__ladrillosBindSync={eventType:l,sync:f},o.addEventListener(l,f)}function En(e,t,n){n?e.textContent=String(t??""):e instanceof HTMLInputElement?"checkbox"===e.type.toLowerCase()?e.checked=Boolean(t):e.value=String(t??""):e.value=e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement?String(t??""):t}var An=[],Nn=/* @__PURE__ */new Set,$n=!1,Sn=!1,xn=0,Cn=Promise.resolve();function Tn(){Sn=!1,$n=!0,An.sort((e,t)=>(e.id??0)-(t.id??0));try{for(const t of An)if(!1!==t.active)try{t()}catch(e){M("Error in scheduled update",null,e)}}finally{An.length=0,Nn.clear(),$n=!1}}var Ln=/* @__PURE__ */new Map;var Rn=/* @__PURE__ */new Set(["state","_root","_initialized","_componentId","_directives","_evaluator","_updateBoundInputs","_pendingProps","_propsReady"]);function On(e,t){const{tagName:r,template:o,scripts:s,externalScripts:i,externalStyles:a,styles:c,sourcePath:l,templateBindings:u=[]}=e,f=pt(s.map(e=>e.content).join("\n")),d=[.../* @__PURE__ */new Set([...f,...u])];class p 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;_pendingProps=/* @__PURE__ */new Map;_propsReady=!1;constructor(){super()}async connectedCallback(){if(this._initialized)return;this._initialized=!0,S={tagName:r,sourcePath:l,instanceId:this._componentId};const e=this.innerHTML,n=document.createDocumentFragment();if(t)for(const t of Array.from(this.childNodes))n.appendChild(t.cloneNode(!0));else 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:f}=((e,t)=>{const n=document.createElement("template");n.innerHTML=ie(t),ae(n.content),Re(n.content),e.innerHTML="",e.appendChild(n.content);const r=Ie(e);for(const o of ke(e))r.push(...Ie(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 p=this._getAttributeOverrides();for(const t of d){if(Rn.has(t))continue;Object.prototype.hasOwnProperty.call(this,t)&&(this._pendingProps.set(t,this[t]),delete this[t]);const e=t.toLowerCase();e!==t&&Object.prototype.hasOwnProperty.call(this,e)&&(this._pendingProps.set(t,this[e]),delete this[e])}for(const[t,r]of this._pendingProps)p[t]=r;const 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 r of e)if(n&&t)try{let e=G.get(r.href);if(!e){const t=await fetch(r.href);if(!t.ok){console.error(`[LadrillosJS] Failed to load stylesheet: ${r.href}`);continue}e=await t.text(),G.set(r.href,e)}const n=document.createElement("style");n.textContent=e,n.setAttribute("data-external-href",r.href),t.insertBefore(n,t.firstChild)}catch(M){console.error(`[LadrillosJS] Failed to load stylesheet: ${r.href}`,M)}else{if(document.querySelector(`link[href="${r.href}"]`))continue;await new Promise(e=>{const t=document.createElement("link");t.rel=r.rel||"stylesheet",t.href=r.href,t.onload=()=>e(),t.onerror=()=>{console.error(`[LadrillosJS] Failed to load stylesheet: ${r.href}`),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 n of t)try{await X(n)}catch(M){console.error(`[LadrillosJS] Failed to load external script: ${n.src}`,M)}}(i),this.state=await async function(e,t,n,r={},o,s=!1,i,a,c,l=[]){const u=rt(e),f={},d=t.map(e=>e.content).join("\n");for(const[h,m]of Object.entries(r))f[h]=m;f.__scriptContent=d,f.__componentUrl=i,f.__componentId=a;const p=function(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)b(e.raw,o)&&n.get(o).add(r);return n}(t,Object.keys(e)),s=(e,t)=>{const s=o.get(e);if(s)for(const r of s)n(r,t);r&&r()},i=t=>()=>{e.__suspendReactivity?r&&r():s(t,e)},a=e=>{i(e)()};for(const u of Object.keys(e)){const t=e[u];Array.isArray(t)?e[u]=_(t,i(u)):t&&"object"==typeof t&&v(t,i(u))}const c=/* @__PURE__ */new WeakMap,l=(t,n)=>{let r=c.get(t);const o=r?.get(n);if(o)return o;const a=new Proxy(t,{get(e,t){const r=e[t];return"string"==typeof t&&y(r)?l(r,n):r},set:(t,r,o)=>"string"!=typeof r?(t[r]=o,!0):(r in t&&t[r]===o||(t[r]=Array.isArray(o)?_(o,i(n)):o,e.__suspendReactivity||s(n,e)),!0),deleteProperty(t,r){const o=r in t;return delete t[r],o&&"string"==typeof r&&!e.__suspendReactivity&&s(n,e),!0}});return r||(r=/* @__PURE__ */new Map,c.set(t,r)),r.set(n,a),a};return new Proxy(e,{get(e,t){if("__notifyKeyChanged"===t)return a;const n=e[t];return"string"==typeof t&&y(n)?l(n,t):n},set(e,n,r){const a=!(n in e);return!a&&e[n]===r||(e[n]=Array.isArray(r)?_(r,i(n)):r,a&&function(e,t,n){n.set(e,/* @__PURE__ */new Set);for(const r of t)for(const t of r.bindings)b(t.raw,e)&&n.get(e).add(r)}(n,t,o),e.__suspendReactivity||s(n,e),!0)}})}(f,n,(e,t)=>St(e,t),o);p.__suspendReactivity=!0;try{for(const e of t)dt(e.content,p,i,a,u,c,l)}finally{p.__suspendReactivity=!1}return u.__state=p,u.__scriptContent=d,u.__componentUrl=i,u.__componentId=a,s||(ot(e,p,d,u),xt(n,p)),p}(this._root,h,f,p,()=>this._updateDirectives(),m,l,this._componentId,g,u),this._propsReady=!0,this._pendingProps.size>0){for(const[e,t]of this._pendingProps)this.state[e]=t;this._pendingProps.clear()}if("undefined"!=typeof globalThis&&(globalThis.__ladrillosStateCallbacks||(globalThis.__ladrillosStateCallbacks=/* @__PURE__ */new Map),globalThis.__ladrillosStateCallbacks.set(this._componentId,e=>{const t=this.state?.__notifyKeyChanged;e&&"function"==typeof t?t(e):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 X(d,r,n)}catch(M){console.error("[LadrillosJS] External script failed:",d.src,M)}for(const d of u)try{const e=await X(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(M){console.error("[LadrillosJS] External module script failed:",d.src,M)}for(const d of l)try{const e=await Q(d,n,r,o,s,i,a);Object.assign(c,e)}catch(M){console.error("[LadrillosJS] Module script failed:",M)}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=rt(e);ot(e,n,r.__scriptContent||"",r),xt(t,n)}(this._root,f,this.state),this._evaluator=function(){const e=bt;return e.forContext=Nt,e}(),this._directives=function(e,t){const n={loops:[],conditionals:[],twoWayBindings:[],refs:t,showElements:[]},r=[e,...ke(e)];for(const o of r)kt(o,n),It(o,n),zt(o,n),Ut(o,n),jt(o,n);return Re(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)wn(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),En(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=j.get(e);if(t){for(const e of t)URL.revokeObjectURL(e);j.delete(e)}}(this._componentId),n(this._componentId),function(e){const t=Ln.get(e);t&&(t.active=!1,Ln.delete(e))}(this._componentId),"undefined"!=typeof globalThis&&globalThis.__ladrillosStateCallbacks?.delete(this._componentId),this._initialized=!1,this._propsReady=!1}attributeChangedCallback(e,t,n){if(t===n)return;if(!this._initialized)return;const r=this._parseAttributeValue(n);this._propsReady?this.state[e]=r:this._pendingProps.set(e,r)}adoptedCallback(){}_updateDirectives(){this._directives&&this._evaluator&&function(e,t){let n=Ln.get(e);n||(n=function(){const e=()=>{t()};return e.id=++xn,e.active=!0,e}(),Ln.set(e,n)),function(e){void 0===e.id&&(e.id=++xn),Nn.has(e.id)||(Nn.add(e.id),An.push(e),$n||Sn||(Sn=!0,Cn.then(Tn)))}(n)}(this._componentId,()=>{this._performDirectiveUpdates()})}_performDirectiveUpdates(){this._directives&&this._evaluator&&(this._directives.loops.length>0&&function(e,t,n){for(const r of e)Ht(r,t,n)}(this._directives.loops,this.state,this._evaluator),this._directives.conditionals.length>0&&function(e,t,n){for(const r of e)bn(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);r.element.style.display=Boolean(e)?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))if(this._isReservedAttribute(r.name))r.value&&""!==r.value.trim()&&t.push(r.name);else if(e[r.name]=this._parseAttributeValue(r.value),r.name.includes("-")){const t=r.name.replace(/-([a-z0-9])/g,(e,t)=>t.toUpperCase());t===r.name||t in e||(e[t]=e[r.name])}const n=t.filter(e=>!u.includes(e));if(n.length>0){const e=n.map(e=>`"${e}" → try "${{title:"heading",class:"className",style:"customStyle",id:"componentId",hidden:"isHidden"}[e]||`my${e.charAt(0).toUpperCase()}${e.slice(1)}`}"`);
|
|
2
|
+
/* @__PURE__ */n.map(e=>`"${e}"`).join(", "),e.join(", ")}return 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}}for(const n of d){if(Rn.has(n))continue;if(n in HTMLElement.prototype)continue;if(Object.prototype.hasOwnProperty.call(p.prototype,n))continue;Object.defineProperty(p.prototype,n,{configurable:!0,enumerable:!1,get(){return this._propsReady?this.state[n]:this._pendingProps.get(n)},set(e){this._propsReady?this.state[n]=e:this._pendingProps.set(n,e)}});const e=n.toLowerCase();e===n||e in HTMLElement.prototype||Object.prototype.hasOwnProperty.call(p.prototype,e)||Object.defineProperty(p.prototype,e,{configurable:!0,enumerable:!1,get(){return this._propsReady?this.state[n]:this._pendingProps.get(n)},set(e){this._propsReady?this.state[n]=e:this._pendingProps.set(n,e)}})}return p}function kn(e,t){const{tagName:n}=e;if(!customElements.get(n)){const r=On(e,t);customElements.define(n,r)}}var In,Mn=/* @__PURE__ */new Map,Pn=/* @__PURE__ */new Map,Dn=/* @__PURE__ */new Set,jn=/* @__PURE__ */new Map;function Fn(e,t,n,r){var o;jn.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=jn.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 zn(o);this.isUpgraded=!0,this.upgradeToRealComponent(e)}catch(e){const t=e instanceof Error?e:new Error(String(e));M("Could not load the lazy component.",{tagName:o},t,{code:T.COMPONENT_LOAD_FAILED,hint:"Check the registered component path and the original error shown below."}),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 zn(e){const t=function(e){return`${e}--loaded`}(e);if(Dn.has(e))return t;if(Mn.has(e))return await Mn.get(e),t;const n=jn.get(e);if(!n)throw new Error(`Lazy component "${e}" not registered`);const r=(async()=>{const r=await _e(n.absolutePath),o=await pe(r.source,e,r.resolvedPath);In[e]=o;const s=On(o,n.useShadowDOM);return customElements.get(t)||customElements.define(t,s),Dn.add(e),Pn.set(e,{component:o,useShadowDOM:n.useShadowDOM}),o})();Mn.set(e,r);try{return await r,t}finally{Mn.delete(e)}}function Un(e){return jn.has(e)||Dn.has(e)}async function Wn(e){return jn.has(e)&&await zn(e),In[e]}var Hn=/* @__PURE__ */o({ladrillos:()=>Bn}),Bn=new class{components;constructor(){this.components={},In=this.components}async registerComponent(e,t,n=!0,r=!1){if(this.components[e])return;const o={tagName:e,sourcePath:t};if(e?.trim()&&e.includes("-"))if(t?.trim())try{const o=new URL(t,window.location.href).href;if(r)return void Fn(e,o,n,!0===r?Ce:r);const s=await _e(o),i=await pe(s.source,e,s.resolvedPath);this.components[e]=i,kn(i,n)}catch(s){const e=s instanceof O?s:null;M("Could not register the component.",o,s,{code:e?.code??T.COMPONENT_REGISTRATION_FAILED,hint:e?.hint??"Check the component template and the original error shown below."})}else M("A component path is required.",o,void 0,{code:T.INVALID_COMPONENT_PATH,hint:"Pass a URL or relative .html path as the second argument to registerComponent()."});else M(`Invalid component name "${e||"(empty)"}". Custom element names must contain a hyphen.`,o,void 0,{code:T.INVALID_COMPONENT_NAME,hint:'Use a lowercase name with a hyphen, such as "user-card".'})}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{Fn(c.name,c.absolutePath,c.useShadowDOM??!0,!0===c.lazy?Ce: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 _e(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;return{config:n,component:await pe(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{kn(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 Wn(e)}};export{Ce as a,Se as c,T as d,O as f,f as h,Tt as i,$e as l,u as m,Wn as n,xe as o,d as p,Un as r,Ae as s,Bn as t,Ne as u};
|
|
3
|
+
//# sourceMappingURL=shared-CMbR-Hhy.js.map
|