@akashjs/compiler 0.1.16 → 0.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,43 +1,43 @@
1
- import {createHash}from'crypto';function y(e){return {script:E(e,"script",(t,n,i,r)=>({content:t,lang:q(n,"lang")??"ts",start:i,end:r})),template:E(e,"template",(t,n,i,r)=>({content:t,start:i,end:r})),style:E(e,"style",(t,n,i,r)=>({content:t,scoped:n.includes("scoped"),start:i,end:r}))}}function E(e,t,n){let i=new RegExp(`<${t}(\\b[^>]*)>`,"i"),r=new RegExp(`</${t}>`,"i"),s=i.exec(e);if(!s)return null;let o=s[1]??"",a=s.index+s[0].length,p=r.exec(e.slice(a));if(!p)return null;let u=a+p.index,l=e.slice(a,u);return n(l.trim(),o,a,u)}function q(e,t){return new RegExp(`${t}=["']([^"']+)["']`).exec(e)?.[1]??null}function h(e){let t=[],n=0;for(;n<e.length;){if(e[n]==="<"){if(e[n+1]==="/")break;let s=Q(e,n);if(s){t.push(s.node),n=s.end;continue}}if(e[n]==="{"){let s=X(e,n);if(s){t.push(s.node),n=s.end;continue}}let i=ee(e,n+1),r=e.slice(n,i).trim();r&&t.push({type:"text",content:r}),n=i;}return t}function Q(e,t){let n=/^<([a-zA-Z][a-zA-Z0-9-]*)/.exec(e.slice(t));if(!n)return null;let i=n[1],r=t+n[0].length,s=[],o=[];for(;r<e.length;){let m=/^\s+/.exec(e.slice(r));if(m&&(r+=m[0].length),e[r]===">"||e.slice(r,r+2)==="/>")break;let g=G(e,r);g?(g.attr.name.startsWith("bind:")?o.push({name:"bind",arg:g.attr.name.slice(5),value:g.attr.value}):g.attr.name.startsWith(":")?o.push({name:g.attr.name.slice(1),value:g.attr.value}):s.push(g.attr),r=g.end):r++;}let a=i[0]===i[0].toUpperCase();if(e.slice(r,r+2)==="/>")return {node:{type:a?"component":"element",tag:i,attrs:s,directives:o.length>0?o:void 0,children:[]},end:r+2};r++;let p=h(e.slice(r));e.slice(r);let l=`</${i}>`,f=te(e,r,i);if(f===-1)return {node:{type:a?"component":"element",tag:i,attrs:s,directives:o.length>0?o:void 0,children:p},end:e.length};let d=e.slice(r,f),c=h(d);return {node:{type:a?"component":"element",tag:i,attrs:s,directives:o.length>0?o:void 0,children:c},end:f+l.length}}function G(e,t){let n=/^(?:bind:|[:a-zA-Z_])[\w:.-]*/.exec(e.slice(t));if(!n)return null;let i=n[0],r=t+i.length;if(e[r]!=="=")return {attr:{name:i,value:"true",dynamic:false},end:r};if(r++,e[r]==="{"){let o=P(e,r);if(o)return {attr:{name:i,value:o.content,dynamic:true},end:o.end}}let s=e[r];if(s==='"'||s==="'"){let o=e.indexOf(s,r+1);return o===-1?null:{attr:{name:i,value:e.slice(r+1,o),dynamic:false},end:o+1}}return null}function X(e,t){let n=P(e,t);return n?{node:{type:"expression",content:n.content},end:n.end}:null}function P(e,t){if(e[t]!=="{")return null;let n=1,i=t+1;for(;i<e.length&&n>0;){let r=e[i];if(r==='"'||r==="'"||r==="`"){i=Y(e,i)+1;continue}r==="{"?n++:r==="}"&&n--,i++;}return {content:e.slice(t+1,i-1).trim(),end:i}}function Y(e,t){let n=e[t],i=t+1;for(;i<e.length;){if(e[i]==="\\"){i+=2;continue}if(e[i]===n)return i;i++;}return i}function ee(e,t){let n=t;for(;n<e.length;){if(e[n]==="<"||e[n]==="{")return n;n++;}return n}function te(e,t,n){let i=`</${n}>`,r=1,s=t,o=e.length*2,a=0;for(;s<e.length&&a++<o;){let p=e.indexOf(`<${n}`,s),u=e.indexOf(i,s);if(u===-1)return -1;if(p!==-1&&p<u){let l=ne(e,p);l!==-1&&e[l-1]==="/"?s=l+1:l!==-1?(r++,s=l+1):s=p+1;}else {if(r--,r===0)return u;s=u+1;}}return -1}function ne(e,t){let n=t,i=0;for(;n<e.length;){let r=e[n];if(r==="{")i++;else if(r==="}")i--;else if(r===">"&&i===0)return n;n++;}return -1}function R(e){return `data-a-${createHash("md5").update(e).digest("hex").slice(0,6)}`}function N(e,t){return H(e,t)}function H(e,t,n){let i="",r=0;for(;r<e.length;){let s=/^\s+/.exec(e.slice(r));if(s&&(i+=s[0],r+=s[0].length,r>=e.length))break;if(e.slice(r,r+2)==="/*"){let d=e.indexOf("*/",r+2);if(d===-1){i+=e.slice(r);break}i+=e.slice(r,d+2),r=d+2;continue}if(e[r]==="}"){i+="}",r++;continue}let o=e.indexOf("{",r);if(o===-1){i+=e.slice(r);break}let a=e.slice(r,o),p=a.trim(),u=o+1,l=ie(e,o),f=e.slice(u,l);if(p.startsWith("@")){let d=p.split(/\s/)[0];d==="@keyframes"||d==="@-webkit-keyframes"||d==="@font-face"?i+=a+"{"+f+"}":i+=a+"{"+H(f,t)+"}";}else {let d=se(p,t);i+=a.replace(p,d)+"{"+f+"}";}r=l+1;}return i}function ie(e,t){let n=1,i=t+1;for(;i<e.length&&n>0;)e[i]==="{"?n++:e[i]==="}"&&n--,n>0&&i++;return i}function se(e,t){return e.split(",").map(n=>{let i=n.trim();return !i||i===":root"||i===":host"||i.includes(t)?n:oe(i,t)}).join(",")}function oe(e,t){let n=e.split(/(\s*[>+~]\s*|\s+)/);for(let i=n.length-1;i>=0;i--){let r=n[i].trim();if(r&&!ae(r)){if(r.includes("::")){let[s,o]=r.split("::");n[i]=n[i].replace(r,`${s}[${t}]::${o}`);}else if(r.includes(":")){let s=r.indexOf(":"),o=r.slice(0,s),a=r.slice(s);n[i]=n[i].replace(r,`${o}[${t}]${a}`);}else n[i]=n[i].replace(r,`${r}[${t}]`);break}}return n.join("")}function ae(e){return e===">"||e==="+"||e==="~"}function L(e,t={}){let n=t.scopeId??(t.filename?R(t.filename):void 0),r=new Set;r.add("defineComponent");let s=e.script?.content??"",o=e.template?.content??"";ue(s,o,r);let a=t.mode==="server",p="";if(e.template){let $=h(e.template.content);a?p=he($,r,n):p=de($,r,n);}let u="";r.size>0&&(u+=`import { ${[...r].join(", ")} } from '@akashjs/runtime';
2
- `);let{cleanScript:l,propsInterface:f}=fe(s),{userImports:d,bodyScript:c}=pe(l);d.length>0&&(u+=d.join(`
1
+ import {createHash}from'crypto';function y(e){return {script:N(e,"script",(t,n,i,r)=>({content:t,lang:G(n,"lang")??"ts",start:i,end:r})),template:N(e,"template",(t,n,i,r)=>({content:t,start:i,end:r})),style:N(e,"style",(t,n,i,r)=>({content:t,scoped:n.includes("scoped"),start:i,end:r}))}}function N(e,t,n){let i=new RegExp(`<${t}(\\b[^>]*)>`,"i"),r=new RegExp(`</${t}>`,"i"),s=i.exec(e);if(!s)return null;let o=s[1]??"",a=s.index+s[0].length,p=r.exec(e.slice(a));if(!p)return null;let u=a+p.index,c=e.slice(a,u);return n(c.trim(),o,a,u)}function G(e,t){return new RegExp(`${t}=["']([^"']+)["']`).exec(e)?.[1]??null}function b(e){let t=[],n=0;for(;n<e.length;){if(e[n]==="<"){if(e[n+1]==="/")break;let s=X(e,n);if(s){t.push(s.node),n=s.end;continue}}if(e[n]==="{"){let s=ee(e,n);if(s){t.push(s.node),n=s.end;continue}}let i=ne(e,n+1),r=e.slice(n,i).trim();r&&t.push({type:"text",content:r}),n=i;}return t}function X(e,t){let n=/^<([a-zA-Z][a-zA-Z0-9-]*)/.exec(e.slice(t));if(!n)return null;let i=n[1],r=t+n[0].length,s=[],o=[];for(;r<e.length;){let h=/^\s+/.exec(e.slice(r));if(h&&(r+=h[0].length),e[r]===">"||e.slice(r,r+2)==="/>")break;let l=Y(e,r);l?(l.attr.name.startsWith("bind:")?o.push({name:"bind",arg:l.attr.name.slice(5),value:l.attr.value}):l.attr.name.startsWith(":")?o.push({name:l.attr.name.slice(1),value:l.attr.value}):s.push(l.attr),r=l.end):r++;}let a=i[0]===i[0].toUpperCase();if(e.slice(r,r+2)==="/>")return {node:{type:a?"component":"element",tag:i,attrs:s,directives:o.length>0?o:void 0,children:[]},end:r+2};r++;let p=b(e.slice(r));e.slice(r);let c=`</${i}>`,f=re(e,r,i);if(f===-1)return {node:{type:a?"component":"element",tag:i,attrs:s,directives:o.length>0?o:void 0,children:p},end:e.length};let d=e.slice(r,f),$=b(d);return {node:{type:a?"component":"element",tag:i,attrs:s,directives:o.length>0?o:void 0,children:$},end:f+c.length}}function Y(e,t){let n=/^(?:bind:|[:a-zA-Z_])[\w:.-]*/.exec(e.slice(t));if(!n)return null;let i=n[0],r=t+i.length;if(e[r]!=="=")return {attr:{name:i,value:"true",dynamic:false},end:r};if(r++,e[r]==="{"){let o=z(e,r);if(o)return {attr:{name:i,value:o.content,dynamic:true},end:o.end}}let s=e[r];if(s==='"'||s==="'"){let o=e.indexOf(s,r+1);return o===-1?null:{attr:{name:i,value:e.slice(r+1,o),dynamic:false},end:o+1}}return null}function ee(e,t){let n=z(e,t);return n?{node:{type:"expression",content:n.content},end:n.end}:null}function z(e,t){if(e[t]!=="{")return null;let n=1,i=t+1;for(;i<e.length&&n>0;){let r=e[i];if(r==='"'||r==="'"||r==="`"){i=te(e,i)+1;continue}r==="{"?n++:r==="}"&&n--,i++;}return {content:e.slice(t+1,i-1).trim(),end:i}}function te(e,t){let n=e[t],i=t+1;for(;i<e.length;){if(e[i]==="\\"){i+=2;continue}if(e[i]===n)return i;i++;}return i}function ne(e,t){let n=t;for(;n<e.length;){if(e[n]==="<"||e[n]==="{")return n;n++;}return n}function re(e,t,n){let i=`</${n}>`,r=1,s=t,o=e.length*2,a=0;for(;s<e.length&&a++<o;){let p=e.indexOf(`<${n}`,s),u=e.indexOf(i,s);if(u===-1)return -1;if(p!==-1&&p<u){let c=ie(e,p);c!==-1&&e[c-1]==="/"?s=c+1:c!==-1?(r++,s=c+1):s=p+1;}else {if(r--,r===0)return u;s=u+1;}}return -1}function ie(e,t){let n=t,i=0;for(;n<e.length;){let r=e[n];if(r==="{")i++;else if(r==="}")i--;else if(r===">"&&i===0)return n;n++;}return -1}function A(e){return `data-a-${createHash("md5").update(e).digest("hex").slice(0,6)}`}function D(e,t){return B(e,t)}function B(e,t,n){let i="",r=0;for(;r<e.length;){let s=/^\s+/.exec(e.slice(r));if(s&&(i+=s[0],r+=s[0].length,r>=e.length))break;if(e.slice(r,r+2)==="/*"){let d=e.indexOf("*/",r+2);if(d===-1){i+=e.slice(r);break}i+=e.slice(r,d+2),r=d+2;continue}if(e[r]==="}"){i+="}",r++;continue}let o=e.indexOf("{",r);if(o===-1){i+=e.slice(r);break}let a=e.slice(r,o),p=a.trim(),u=o+1,c=oe(e,o),f=e.slice(u,c);if(p.startsWith("@")){let d=p.split(/\s/)[0];d==="@keyframes"||d==="@-webkit-keyframes"||d==="@font-face"?i+=a+"{"+f+"}":i+=a+"{"+B(f,t)+"}";}else {let d=ae(p,t);i+=a.replace(p,d)+"{"+f+"}";}r=c+1;}return i}function oe(e,t){let n=1,i=t+1;for(;i<e.length&&n>0;)e[i]==="{"?n++:e[i]==="}"&&n--,n>0&&i++;return i}function ae(e,t){return e.split(",").map(n=>{let i=n.trim();return !i||i===":root"||i===":host"||i.includes(t)?n:le(i,t)}).join(",")}function le(e,t){let n=e.split(/(\s*[>+~]\s*|\s+)/);for(let i=n.length-1;i>=0;i--){let r=n[i].trim();if(r&&!ce(r)){if(r.includes("::")){let[s,o]=r.split("::");n[i]=n[i].replace(r,`${s}[${t}]::${o}`);}else if(r.includes(":")){let s=r.indexOf(":"),o=r.slice(0,s),a=r.slice(s);n[i]=n[i].replace(r,`${o}[${t}]${a}`);}else n[i]=n[i].replace(r,`${r}[${t}]`);break}}return n.join("")}function ce(e){return e===">"||e==="+"||e==="~"}function I(e,t={}){let n=t.scopeId??(t.filename?A(t.filename):void 0),r=new Set;r.add("defineComponent");let s=e.script?.content??"",o=e.template?.content??"";fe(s,o,r);let a=t.mode==="server",p="";if(e.template){let m=b(e.template.content);a?p=be(m,r,n):p=ge(m,r,n);}let u="";r.size>0&&(u+=`import { ${[...r].join(", ")} } from '@akashjs/runtime';
2
+ `);let{cleanScript:c,propsInterface:f}=me(s),{userImports:d,bodyScript:$}=de(c);d.length>0&&(u+=d.join(`
3
3
  `)+`
4
- `);let m=f?`<${f}>`:"";if(u+=`
5
- `,u+=`export default defineComponent${m}((ctx) => {
4
+ `);let h=f?`<${f}>`:"";if(u+=`
5
+ `,u+=`export default defineComponent${h}((ctx) => {
6
6
  `,s.includes("props")&&(u+=` const props = ctx.props;
7
- `),c.trim()){let $=c.trim().split(`
8
- `).map(v=>` ${v}`).join(`
9
- `);u+=`${$}
7
+ `),$.trim()){let m=$.trim().split(`
8
+ `).map(g=>` ${g}`).join(`
9
+ `);u+=`${m}
10
10
  `;}u+=`
11
11
  `,u+=` return () => {
12
12
  `,u+=p,u+=` };
13
13
  `,u+=`});
14
- `;let g;return e.style&&(g=e.style.scoped&&n?N(e.style.content,n):e.style.content),{code:u,css:g}}function le(e){let t=e.trim();return !!(/^(?:\([^)]*\)|[a-zA-Z_$]\w*)\s*=>/.test(t)||/^function[\s(]/.test(t))}function ce(e){let t=e.trim();return /^\[/.test(t)&&!t.includes("(")||/^\{/.test(t)&&!t.includes("(")||/^["'`]/.test(t)||/^\d/.test(t)||t==="true"||t==="false"||t==="null"||t==="undefined"||t.startsWith("`")&&!t.includes("(")?false:/\w\(/.test(t)?true:!(/^[a-zA-Z_$][\w$.]*$/.test(t)||!t.includes("("))}function ue(e,t,n){let i=["signal","computed","effect","batch","untrack","onMount","onUnmount","onError","ref","createContext","provide","inject","Show","For"];for(let s of i){let o=new RegExp(`\\b${s}\\b`),a=new RegExp(`import\\s+.*\\b${s}\\b.*from`);o.test(e)&&!a.test(e)&&n.add(s);}let r=["Show","For"];for(let s of r)new RegExp(`<${s}[\\s/>]`).test(t)&&!n.has(s)&&n.add(s);}function pe(e){let t=e.split(`
14
+ `;let l;return e.style&&(l=e.style.scoped&&n?D(e.style.content,n):e.style.content),{code:u,css:l}}function ue(e){let t=e.trim();return !!(/^(?:\([^)]*\)|[a-zA-Z_$]\w*)\s*=>/.test(t)||/^function[\s(]/.test(t))}function pe(e){let t=e.trim();return /^\[/.test(t)&&!t.includes("(")||/^\{/.test(t)&&!t.includes("(")||/^["'`]/.test(t)||/^\d/.test(t)||t==="true"||t==="false"||t==="null"||t==="undefined"||t.startsWith("`")&&!t.includes("(")?false:/\w\(/.test(t)?true:!(/^[a-zA-Z_$][\w$.]*$/.test(t)||!t.includes("("))}function fe(e,t,n){let i=["signal","computed","effect","batch","untrack","onMount","onUnmount","onError","ref","createContext","provide","inject","Show","For"];for(let s of i){let o=new RegExp(`\\b${s}\\b`),a=new RegExp(`import\\s+.*\\b${s}\\b.*from`);o.test(e)&&!a.test(e)&&n.add(s);}let r=["Show","For"];for(let s of r)new RegExp(`<${s}[\\s/>]`).test(t)&&!n.has(s)&&n.add(s);}function de(e){let t=e.split(`
15
15
  `),n=[],i=[],r=false,s=false;for(let o of t){if(r){n[n.length-1]+=`
16
16
  `+o,(o.includes("from ")||o.trimEnd().endsWith(";"))&&(r=false);continue}if(s){n[n.length-1]+=`
17
17
  `+o,(o.trimEnd().endsWith("}")||o.trimEnd().endsWith("};"))&&(s=false);continue}let a=o.trim();/^import\s/.test(a)?(n.push(o.trim()),!a.includes("from ")&&!a.endsWith(";")&&(r=true)):/^export\s+(interface|type|enum)\s/.test(a)?(n.push(o.trim()),!a.endsWith("}")&&!a.endsWith("};")&&!a.endsWith(";")&&(s=true)):/^export\s+(const|let|var|function|class)\s/.test(a)?i.push(o.replace(/\bexport\s+/,"")):/^declare\s/.test(a)?(n.push(o.trim()),!a.endsWith("}")&&!a.endsWith("};")&&!a.endsWith(";")&&(s=true)):i.push(o);}return {userImports:n,bodyScript:i.join(`
18
- `)}}function fe(e){let t=/interface\s+Props\s*\{([^}]*)\}/s.exec(e);if(!t)return {cleanScript:e,propsInterface:null};let n=e.replace(t[0],"").trim(),i=`{${t[1].trim()}}`;return {cleanScript:n,propsInterface:i}}function de(e,t,n){if(e.length===0)return ` return null;
19
- `;if(e.length===1){let r=[];return b(e[0],r,t,4,"root",n),r.push(" return root;"),r.join(`
18
+ `)}}function me(e){let t=/interface\s+Props\s*\{([^}]*)\}/s.exec(e);if(!t)return {cleanScript:e,propsInterface:null};let n=e.replace(t[0],"").trim(),i=`{${t[1].trim()}}`;return {cleanScript:n,propsInterface:i}}function ge(e,t,n){if(e.length===0)return ` return null;
19
+ `;if(e.length===1){let r=[];return v(e[0],r,t,4,"root",n),r.push(" return root;"),r.join(`
20
20
  `)+`
21
- `}t.add("createElement");let i=[];i.push(" const __fragment = document.createDocumentFragment();");for(let r=0;r<e.length;r++){let s=`__n${r}`;b(e[r],i,t,4,s,n),i.push(` __fragment.appendChild(${s});`);}return i.push(" return __fragment;"),i.join(`
21
+ `}t.add("createElement");let i=[];i.push(" const __fragment = document.createDocumentFragment();");for(let r=0;r<e.length;r++){let s=`__n${r}`;v(e[r],i,t,4,s,n),i.push(` __fragment.appendChild(${s});`);}return i.push(" return __fragment;"),i.join(`
22
22
  `)+`
23
- `}function b(e,t,n,i,r,s){let o=" ".repeat(i);switch(e.type){case "element":D(e,t,n,i,r,s);break;case "component":me(e,t,n,i,r,s);break;case "text":t.push(`${o}const ${r} = document.createTextNode(${JSON.stringify(e.content??"")});`);break;case "expression":n.add("effect"),t.push(`${o}const ${r} = document.createTextNode('');`),t.push(`${o}effect(() => { ${r}.textContent = String(${e.content}); }, { render: true });`);break}}function D(e,t,n,i,r,s){let o=" ".repeat(i),a=e.tag,p=e.directives?.find(c=>c.name==="if");if(p){n.add("renderConditional"),t.push(`${o}const ${r}_anchor = document.createComment('if');`),t.push(`${o}const ${r} = document.createDocumentFragment();`),t.push(`${o}${r}.appendChild(${r}_anchor);`),t.push(`${o}renderConditional(${r}, ${r}_anchor, () => ${p.value}, () => {`);let c=[],m={...e,directives:e.directives?.filter(g=>g.name!=="if")};D(m,c,n,i+2,"__el",s),c.push(`${o} return __el;`),t.push(...c),t.push(`${o}});`);return}let u=e.directives?.find(c=>c.name==="for");if(u){n.add("renderList");let c=e.directives?.find(g=>g.name==="key"),m=/^(?:\(([^)]+)\)|(\w+))\s+of\s+(.+)$/.exec(u.value);if(m){let g=m[1]??m[2],$=m[3],v=c?.value??`${g}`;t.push(`${o}const ${r}_anchor = document.createComment('for');`),t.push(`${o}const ${r} = document.createDocumentFragment();`),t.push(`${o}${r}.appendChild(${r}_anchor);`),t.push(`${o}renderList(${r}, ${r}_anchor, () => ${$}, (${g}) => ${v}, (${g}) => {`);let w=[],K={...e,directives:e.directives?.filter(j=>j.name!=="for"&&j.name!=="key")};D(K,w,n,i+2,"__el",s),w.push(`${o} return __el;`),t.push(...w),t.push(`${o}});`);}return}let l=e.directives?.filter(c=>c.name==="bind")??[];l.length>0&&e.directives&&(e.directives=e.directives.filter(c=>c.name!=="bind")),t.push(`${o}const ${r} = document.createElement('${a}');`),s&&t.push(`${o}${r}.setAttribute('${s}', '');`);let f=[],d=[];if(e.attrs)for(let c of e.attrs)c.name.startsWith("on")?f.push(c):d.push(c);for(let c of d)c.dynamic?(n.add("effect"),t.push(`${o}effect(() => {`),c.name==="class"||c.name==="className"?t.push(`${o} ${r}.className = ${c.value};`):c.name==="value"?(t.push(`${o} const __v = ${c.value};`),t.push(`${o} if (${r}.value !== String(__v)) ${r}.value = __v;`)):t.push(`${o} ${r}.setAttribute('${c.name}', String(${c.value}));`),t.push(`${o}}, { render: true });`)):c.name==="class"||c.name==="className"?t.push(`${o}${r}.className = ${JSON.stringify(c.value)};`):t.push(`${o}${r}.setAttribute('${c.name}', ${JSON.stringify(c.value)});`);for(let c of f)c.dynamic?t.push(`${o}${r}.addEventListener('${c.name.slice(2).toLowerCase()}', ${c.value});`):t.push(`${o}${r}.setAttribute('${c.name}', ${JSON.stringify(c.value)});`);for(let c of l){let m=c.arg??"value",g=c.value;n.add("effect"),t.push(`${o}effect(() => { const __v = ${g}(); if (${r}.${m} !== __v) ${r}.${m} = __v; }, { render: true });`);let $=m==="value"||m==="checked"?"input":"change",v=m==="checked"?"checked":"value";t.push(`${o}${r}.addEventListener('${$}', (e) => { ${g}.set(e.target.${v}); });`);}if(e.children&&e.children.length>0)for(let c=0;c<e.children.length;c++){let m=`${r}_c${c}`;b(e.children[c],t,n,i,m,s),t.push(`${o}${r}.appendChild(${m});`);}}function me(e,t,n,i,r,s){let o=" ".repeat(i),a=e.tag,p=a==="Show"||a==="For"||a==="Switch",u=[];if(e.attrs)for(let f of e.attrs)if(f.dynamic){let d=ge(f.value,n,i,s);d?u.push(`${f.name}: ${d}`):f.name.startsWith("on")||le(f.value)?u.push(`${f.name}: ${f.value}`):p&&ce(f.value)?u.push(`${f.name}: () => ${f.value}`):u.push(`${f.name}: ${f.value}`);}else u.push(`${f.name}: ${JSON.stringify(f.value)}`);if(e.children&&e.children.length>0){let f=z(e.children,n,i+2,s);u.push(`children: ${f}`);}let l=u.length>0?`{ ${u.join(", ")} }`:"{}";t.push(`${o}const ${r} = ${a}(${l});`);}function z(e,t,n,i){if(e.length===1&&e[0].type==="expression"){let a=B(e[0].content??"",t,n,i);if(a)return a}let r=" ".repeat(n),s=[],o=e.filter(a=>!(a.type==="text"&&!(a.content??"").trim()));if(o.length===1)b(o[0],s,t,n,"__child",i),s.push(`${r}return __child;`);else {s.push(`${r}const __frag = document.createDocumentFragment();`);for(let a=0;a<o.length;a++){let p=`__child${a}`;b(o[a],s,t,n,p,i),s.push(`${r}__frag.appendChild(${p});`);}s.push(`${r}return __frag;`);}return `() => {
23
+ `}function v(e,t,n,i,r,s){let o=" ".repeat(i);switch(e.type){case "element":O(e,t,n,i,r,s);break;case "component":he(e,t,n,i,r,s);break;case "text":t.push(`${o}const ${r} = document.createTextNode(${JSON.stringify(e.content??"")});`);break;case "expression":n.add("effect"),t.push(`${o}const ${r} = document.createTextNode('');`),t.push(`${o}effect(() => { ${r}.textContent = String(${e.content}); }, { render: true });`);break}}function O(e,t,n,i,r,s){let o=" ".repeat(i),a=e.tag,p=e.directives?.find(l=>l.name==="if");if(p){n.add("renderConditional"),t.push(`${o}const ${r}_anchor = document.createComment('if');`),t.push(`${o}const ${r} = document.createDocumentFragment();`),t.push(`${o}${r}.appendChild(${r}_anchor);`),t.push(`${o}renderConditional(${r}, ${r}_anchor, () => ${p.value}, () => {`);let l=[],m={...e,directives:e.directives?.filter(g=>g.name!=="if")};O(m,l,n,i+2,"__el",s),l.push(`${o} return __el;`),t.push(...l),t.push(`${o}});`);return}let u=e.directives?.find(l=>l.name==="for");if(u){n.add("renderList");let l=e.directives?.find(g=>g.name==="key"),m=/^(?:\(([^)]+)\)|(\w+))\s+of\s+(.+)$/.exec(u.value);if(m){let g=m[1]??m[2],w=m[3],E=l?.value??`${g}`;t.push(`${o}const ${r}_anchor = document.createComment('for');`),t.push(`${o}const ${r} = document.createDocumentFragment();`),t.push(`${o}${r}.appendChild(${r}_anchor);`),t.push(`${o}renderList(${r}, ${r}_anchor, () => ${w}, (${g}) => ${E}, (${g}) => {`);let R=[],Q={...e,directives:e.directives?.filter(H=>H.name!=="for"&&H.name!=="key")};O(Q,R,n,i+2,"__el",s),R.push(`${o} return __el;`),t.push(...R),t.push(`${o}});`);}return}let c=e.directives?.filter(l=>l.name==="bind")??[];c.length>0&&e.directives&&(e.directives=e.directives.filter(l=>l.name!=="bind")),t.push(`${o}const ${r} = document.createElement('${a}');`),s&&t.push(`${o}${r}.setAttribute('${s}', '');`);let f=[],d=[];if(e.attrs)for(let l of e.attrs)l.name.startsWith("on")?f.push(l):d.push(l);let $=[],h=[];for(let l of d)l.name==="value"?$.push(l):h.push(l);for(let l of h)l.dynamic?(n.add("effect"),t.push(`${o}effect(() => {`),l.name==="class"||l.name==="className"?t.push(`${o} ${r}.className = ${l.value};`):t.push(`${o} ${r}.setAttribute('${l.name}', String(${l.value}));`),t.push(`${o}}, { render: true });`)):l.name==="class"||l.name==="className"?t.push(`${o}${r}.className = ${JSON.stringify(l.value)};`):t.push(`${o}${r}.setAttribute('${l.name}', ${JSON.stringify(l.value)});`);for(let l of c){let m=l.arg??"value",g=l.value;n.add("effect"),t.push(`${o}effect(() => { const __v = ${g}(); if (${r}.${m} !== __v) ${r}.${m} = __v; }, { render: true });`);let w=m==="value"||m==="checked"?"input":"change",E=m==="checked"?"checked":"value";t.push(`${o}${r}.addEventListener('${w}', (e) => { ${g}.set(e.target.${E}); });`);}if(e.children&&e.children.length>0)for(let l=0;l<e.children.length;l++){let m=`${r}_c${l}`;v(e.children[l],t,n,i,m,s),t.push(`${o}${r}.appendChild(${m});`);}for(let l of $)l.dynamic?(t.push(`${o}${r}.value = ${l.value};`),n.add("effect"),t.push(`${o}effect(() => {`),t.push(`${o} const __v = ${l.value};`),t.push(`${o} if (${r}.value !== String(__v)) ${r}.value = __v;`),t.push(`${o}}, { render: true });`)):t.push(`${o}${r}.value = ${JSON.stringify(l.value)};`);for(let l of f)l.dynamic?t.push(`${o}${r}.addEventListener('${l.name.slice(2).toLowerCase()}', ${l.value});`):t.push(`${o}${r}.setAttribute('${l.name}', ${JSON.stringify(l.value)});`);}function he(e,t,n,i,r,s){let o=" ".repeat(i),a=e.tag,p=a==="Show"||a==="For"||a==="Switch",u=[];if(e.attrs)for(let f of e.attrs)if(f.dynamic){let d=$e(f.value,n,i,s);d?u.push(`${f.name}: ${d}`):f.name.startsWith("on")||ue(f.value)?u.push(`${f.name}: ${f.value}`):p&&pe(f.value)?u.push(`${f.name}: () => ${f.value}`):u.push(`${f.name}: ${f.value}`);}else u.push(`${f.name}: ${JSON.stringify(f.value)}`);if(e.children&&e.children.length>0){let f=F(e.children,n,i+2,s);u.push(`children: ${f}`);}let c=u.length>0?`{ ${u.join(", ")} }`:"{}";t.push(`${o}const ${r} = ${a}(${c});`);}function F(e,t,n,i){if(e.length===1&&e[0].type==="expression"){let a=W(e[0].content??"",t,n,i);if(a)return a}let r=" ".repeat(n),s=[],o=e.filter(a=>!(a.type==="text"&&!(a.content??"").trim()));if(o.length===1)v(o[0],s,t,n,"__child",i),s.push(`${r}return __child;`);else {s.push(`${r}const __frag = document.createDocumentFragment();`);for(let a=0;a<o.length;a++){let p=`__child${a}`;v(o[a],s,t,n,p,i),s.push(`${r}__frag.appendChild(${p});`);}s.push(`${r}return __frag;`);}return `() => {
24
24
  ${s.join(`
25
25
  `)}
26
- ${" ".repeat(n-2)}}`}function B(e,t,n,i){let r=e.trim(),s=/^(\(?[^)]*\)?)\s*=>\s*(<[a-zA-Z].*)$/s.exec(r);if(!s)return null;let o=s[1],a=s[2],p=h(a);if(p.length===0)return null;let u=" ".repeat(n),l=[];if(p.length===1)b(p[0],l,t,n,"__child",i),l.push(`${u}return __child;`);else {l.push(`${u}const __frag = document.createDocumentFragment();`);for(let f=0;f<p.length;f++){let d=`__child${f}`;b(p[f],l,t,n,d,i),l.push(`${u}__frag.appendChild(${d});`);}l.push(`${u}return __frag;`);}return `${o} => {
27
- ${l.join(`
26
+ ${" ".repeat(n-2)}}`}function W(e,t,n,i){let r=e.trim(),s=/^(\(?[^)]*\)?)\s*=>\s*(<[a-zA-Z].*)$/s.exec(r);if(!s)return null;let o=s[1],a=s[2],p=b(a);if(p.length===0)return null;let u=" ".repeat(n),c=[];if(p.length===1)v(p[0],c,t,n,"__child",i),c.push(`${u}return __child;`);else {c.push(`${u}const __frag = document.createDocumentFragment();`);for(let f=0;f<p.length;f++){let d=`__child${f}`;v(p[f],c,t,n,d,i),c.push(`${u}__frag.appendChild(${d});`);}c.push(`${u}return __frag;`);}return `${o} => {
27
+ ${c.join(`
28
28
  `)}
29
- ${" ".repeat(n-2)}}`}function ge(e,t,n,i){let r=e.trim(),s=B(r,t,n+2,i);if(s)return s;if(!/^<[a-zA-Z]/.test(r))return null;let o=h(r);return o.length===0?null:z(o,t,n+2,i)}function he(e,t,n){if(e.length===0)return ` return '';
30
- `;let i=[];i.push(" let __html = '';");for(let r of e)F(r,i,t,4,n);return i.push(" return __html;"),i.join(`
29
+ ${" ".repeat(n-2)}}`}function $e(e,t,n,i){let r=e.trim(),s=W(r,t,n+2,i);if(s)return s;if(!/^<[a-zA-Z]/.test(r))return null;let o=b(r);return o.length===0?null:F(o,t,n+2,i)}function be(e,t,n){if(e.length===0)return ` return '';
30
+ `;let i=[];i.push(" let __html = '';");for(let r of e)V(r,i,t,4,n);return i.push(" return __html;"),i.join(`
31
31
  `)+`
32
- `}function F(e,t,n,i,r){let s=" ".repeat(i);switch(e.type){case "text":t.push(`${s}__html += ${JSON.stringify(e.content??"")};`);break;case "expression":n.add("escapeHtml"),t.push(`${s}__html += escapeHtml(String(${e.content}));`);break;case "element":A(e,t,n,i,r);break;case "component":t.push(`${s}// TODO: SSR component rendering for ${e.tag}`),t.push(`${s}__html += '';`);break}}var $e=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]);function A(e,t,n,i,r){let s=" ".repeat(i),o=e.tag,a=e.directives?.find(l=>l.name==="if");if(a){t.push(`${s}if (${a.value}) {`);let l={...e,directives:e.directives?.filter(f=>f.name!=="if")};A(l,t,n,i+2,r),t.push(`${s}}`);return}let p=e.directives?.find(l=>l.name==="for");if(p){let l=/^(?:\(([^)]+)\)|(\w+))\s+of\s+(.+)$/.exec(p.value);if(l){let f=l[1]??l[2],d=l[3];t.push(`${s}for (const ${f} of ${d}) {`);let c={...e,directives:e.directives?.filter(m=>m.name!=="for"&&m.name!=="key")};A(c,t,n,i+2,r),t.push(`${s}}`);}return}let u=`'<${o}`;if(r&&(u+=` ${r}`),e.attrs)for(let l of e.attrs)l.name.startsWith("on")||(l.dynamic?(t.push(`${s}__html += ${u}';`),u="'",n.add("escapeHtml"),l.name==="class"||l.name==="className"?t.push(`${s}__html += ' class="' + escapeHtml(String(${l.value})) + '"';`):t.push(`${s}__html += ' ${l.name}="' + escapeHtml(String(${l.value})) + '"';`)):l.name==="class"||l.name==="className"?u+=` class="${l.value}"`:u+=` ${l.name}="${l.value}"`);if($e.has(o)){t.push(`${s}__html += ${u} />';`);return}if(t.push(`${s}__html += ${u}>';`),e.children)for(let l of e.children)F(l,t,n,i,r);t.push(`${s}__html += '</${o}>';`);}function be(e){let t={signalReads:[],eventHandlers:[],hasDynamicContent:false,staticSubtrees:[],reactiveExpressions:[],componentRefs:[]};for(let n of e)O(n,t);return t}function O(e,t){switch(e.type){case "expression":t.hasDynamicContent=true,e.content&&(t.reactiveExpressions.push({expression:e.content,kind:"text"}),x(e.content,"text",t));break;case "element":ve(e,t);break;case "component":if(e.tag&&t.componentRefs.push(e.tag),t.hasDynamicContent=true,W(e,t),e.children)for(let n of e.children)O(n,t);break;}}function ve(e,t){let n=V(e);if(e.directives)for(let i of e.directives)t.hasDynamicContent=true,ye(i,e,t);if(W(e,t),!n&&!e.directives?.length&&t.staticSubtrees.push(e),e.children)for(let i of e.children)O(i,t);}function W(e,t){if(e.attrs){for(let n of e.attrs)if(n.dynamic)if(t.hasDynamicContent=true,n.name.startsWith("on")){let i=n.name.slice(2).toLowerCase();t.eventHandlers.push({event:i,handler:n.value,tag:e.tag??"unknown"});}else t.reactiveExpressions.push({expression:n.value,kind:"attribute",attributeName:n.name}),x(n.value,"attribute",t);}}function ye(e,t,n){switch(e.name){case "if":case "else-if":case "show":n.reactiveExpressions.push({expression:e.value,kind:"conditional"}),x(e.value,"directive",n);break;case "for":{let i=/\bof\s+(.+)$/.exec(e.value);i&&(n.reactiveExpressions.push({expression:i[1],kind:"list"}),x(i[1],"directive",n));break}case "bind":{n.reactiveExpressions.push({expression:e.value,kind:"attribute",attributeName:e.value}),x(e.value,"directive",n);break}}}function x(e,t,n){let i=new Set(["console","Math","JSON","Object","Array","String","Number","Boolean","Date","RegExp","Error","Promise","parseInt","parseFloat","setTimeout","setInterval","clearTimeout","clearInterval","document","window","navigator","fetch"]),r=/\b([a-zA-Z_$][\w$]*)\s*\(\s*\)/g,s;for(;(s=r.exec(e))!==null;){let o=s[1];i.has(o)||n.signalReads.push({expression:`${o}()`,context:t});}}function V(e){return !!(e.attrs?.some(t=>t.dynamic)||e.directives?.length||e.children?.some(t=>t.type==="expression"||t.type==="component")||e.children?.some(t=>V(t)))}function xe(e){let t=e.trim();return !!(/^['"`].*['"`]$/.test(t)||/^-?\d+(\.\d+)?$/.test(t)||t==="true"||t==="false"||t==="null"||t==="undefined")}var Se="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function S(e){let t="",n=e<0?-e<<1|1:e<<1;do{let i=n&31;n>>>=5,n>0&&(i|=32),t+=Se[i];}while(n>0);return t}var _=class{mappings=[];sources=[];sourcesContent=[];addSource(t,n){let i=this.sources.length;return this.sources.push(t),this.sourcesContent.push(n??null),i}addMapping(t){this.mappings.push(t);}addLineRange(t,n,i,r=0){for(let s=0;s<i;s++)this.addMapping({generatedLine:t+s,generatedColumn:0,originalLine:n+s,originalColumn:0,source:r});}build(t){let n=[...this.mappings].sort((i,r)=>i.generatedLine-r.generatedLine||i.generatedColumn-r.generatedColumn);return {version:3,file:t,sources:this.sources,sourcesContent:this.sourcesContent,names:[],mappings:_e(n)}}toJSON(t){return JSON.stringify(this.build(t))}toDataUrl(t){let n=this.toJSON(t);return `data:application/json;charset=utf-8;base64,${typeof btoa=="function"?btoa(n):Buffer.from(n).toString("base64")}`}};function _e(e){let t=[],n=0,i=0,r=0,s=0,o=0;for(let a of e){for(;t.length<=a.generatedLine;)t.push([]);a.generatedLine!==n&&(i=0,n=a.generatedLine);let p="";p+=S(a.generatedColumn-i),i=a.generatedColumn;let u=a.source??0;p+=S(u-o),o=u,p+=S(a.originalLine-r),r=a.originalLine,p+=S(a.originalColumn-s),s=a.originalColumn,t[a.generatedLine].push(p);}return t.map(a=>a.join(",")).join(";")}function Te(e,t,n,i,r){let s=new _;return s.addSource(e,t),s.addLineRange(r,n,i,0),s}function T(e){return e.type==="expression"||e.type==="component"?false:e.type==="text"?true:!(e.directives&&e.directives.length>0||e.attrs?.some(t=>t.dynamic)||e.children?.some(t=>!T(t)))}function I(e){switch(e.type){case "text":return e.content??"";case "element":{let t=`<${e.tag}`;if(e.attrs)for(let n of e.attrs)n.name==="class"||n.name==="className"?t+=` class="${n.value}"`:t+=` ${n.name}="${n.value}"`;if(t+=">",e.children)for(let n of e.children)t+=I(n);return t+=`</${e.tag}>`,t}default:return ""}}function J(e){let t=[],n=0;function i(r){if(r.type==="element"){if(T(r)&&r.children&&r.children.length>0){let s=`__hoisted_${n++}`;t.push({varName:s,html:I(r)}),r._hoisted=s;return}if(r.children)for(let s of r.children)i(s);}}for(let r of e)i(r);return t}function ke(e){if(e.length===0)return "";let t=`// Hoisted static templates (created once, cloned per instance)
32
+ `}function V(e,t,n,i,r){let s=" ".repeat(i);switch(e.type){case "text":t.push(`${s}__html += ${JSON.stringify(e.content??"")};`);break;case "expression":n.add("escapeHtml"),t.push(`${s}__html += escapeHtml(String(${e.content}));`);break;case "element":L(e,t,n,i,r);break;case "component":t.push(`${s}// TODO: SSR component rendering for ${e.tag}`),t.push(`${s}__html += '';`);break}}var ve=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]);function L(e,t,n,i,r){let s=" ".repeat(i),o=e.tag,a=e.directives?.find(c=>c.name==="if");if(a){t.push(`${s}if (${a.value}) {`);let c={...e,directives:e.directives?.filter(f=>f.name!=="if")};L(c,t,n,i+2,r),t.push(`${s}}`);return}let p=e.directives?.find(c=>c.name==="for");if(p){let c=/^(?:\(([^)]+)\)|(\w+))\s+of\s+(.+)$/.exec(p.value);if(c){let f=c[1]??c[2],d=c[3];t.push(`${s}for (const ${f} of ${d}) {`);let $={...e,directives:e.directives?.filter(h=>h.name!=="for"&&h.name!=="key")};L($,t,n,i+2,r),t.push(`${s}}`);}return}let u=`'<${o}`;if(r&&(u+=` ${r}`),e.attrs)for(let c of e.attrs)c.name.startsWith("on")||(c.dynamic?(t.push(`${s}__html += ${u}';`),u="'",n.add("escapeHtml"),c.name==="class"||c.name==="className"?t.push(`${s}__html += ' class="' + escapeHtml(String(${c.value})) + '"';`):t.push(`${s}__html += ' ${c.name}="' + escapeHtml(String(${c.value})) + '"';`)):c.name==="class"||c.name==="className"?u+=` class="${c.value}"`:u+=` ${c.name}="${c.value}"`);if(ve.has(o)){t.push(`${s}__html += ${u} />';`);return}if(t.push(`${s}__html += ${u}>';`),e.children)for(let c of e.children)V(c,t,n,i,r);t.push(`${s}__html += '</${o}>';`);}function ye(e){let t={signalReads:[],eventHandlers:[],hasDynamicContent:false,staticSubtrees:[],reactiveExpressions:[],componentRefs:[]};for(let n of e)M(n,t);return t}function M(e,t){switch(e.type){case "expression":t.hasDynamicContent=true,e.content&&(t.reactiveExpressions.push({expression:e.content,kind:"text"}),x(e.content,"text",t));break;case "element":xe(e,t);break;case "component":if(e.tag&&t.componentRefs.push(e.tag),t.hasDynamicContent=true,J(e,t),e.children)for(let n of e.children)M(n,t);break;}}function xe(e,t){let n=U(e);if(e.directives)for(let i of e.directives)t.hasDynamicContent=true,Se(i,e,t);if(J(e,t),!n&&!e.directives?.length&&t.staticSubtrees.push(e),e.children)for(let i of e.children)M(i,t);}function J(e,t){if(e.attrs){for(let n of e.attrs)if(n.dynamic)if(t.hasDynamicContent=true,n.name.startsWith("on")){let i=n.name.slice(2).toLowerCase();t.eventHandlers.push({event:i,handler:n.value,tag:e.tag??"unknown"});}else t.reactiveExpressions.push({expression:n.value,kind:"attribute",attributeName:n.name}),x(n.value,"attribute",t);}}function Se(e,t,n){switch(e.name){case "if":case "else-if":case "show":n.reactiveExpressions.push({expression:e.value,kind:"conditional"}),x(e.value,"directive",n);break;case "for":{let i=/\bof\s+(.+)$/.exec(e.value);i&&(n.reactiveExpressions.push({expression:i[1],kind:"list"}),x(i[1],"directive",n));break}case "bind":{n.reactiveExpressions.push({expression:e.value,kind:"attribute",attributeName:e.value}),x(e.value,"directive",n);break}}}function x(e,t,n){let i=new Set(["console","Math","JSON","Object","Array","String","Number","Boolean","Date","RegExp","Error","Promise","parseInt","parseFloat","setTimeout","setInterval","clearTimeout","clearInterval","document","window","navigator","fetch"]),r=/\b([a-zA-Z_$][\w$]*)\s*\(\s*\)/g,s;for(;(s=r.exec(e))!==null;){let o=s[1];i.has(o)||n.signalReads.push({expression:`${o}()`,context:t});}}function U(e){return !!(e.attrs?.some(t=>t.dynamic)||e.directives?.length||e.children?.some(t=>t.type==="expression"||t.type==="component")||e.children?.some(t=>U(t)))}function _e(e){let t=e.trim();return !!(/^['"`].*['"`]$/.test(t)||/^-?\d+(\.\d+)?$/.test(t)||t==="true"||t==="false"||t==="null"||t==="undefined")}var Te="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function S(e){let t="",n=e<0?-e<<1|1:e<<1;do{let i=n&31;n>>>=5,n>0&&(i|=32),t+=Te[i];}while(n>0);return t}var _=class{mappings=[];sources=[];sourcesContent=[];addSource(t,n){let i=this.sources.length;return this.sources.push(t),this.sourcesContent.push(n??null),i}addMapping(t){this.mappings.push(t);}addLineRange(t,n,i,r=0){for(let s=0;s<i;s++)this.addMapping({generatedLine:t+s,generatedColumn:0,originalLine:n+s,originalColumn:0,source:r});}build(t){let n=[...this.mappings].sort((i,r)=>i.generatedLine-r.generatedLine||i.generatedColumn-r.generatedColumn);return {version:3,file:t,sources:this.sources,sourcesContent:this.sourcesContent,names:[],mappings:ke(n)}}toJSON(t){return JSON.stringify(this.build(t))}toDataUrl(t){let n=this.toJSON(t);return `data:application/json;charset=utf-8;base64,${typeof btoa=="function"?btoa(n):Buffer.from(n).toString("base64")}`}};function ke(e){let t=[],n=0,i=0,r=0,s=0,o=0;for(let a of e){for(;t.length<=a.generatedLine;)t.push([]);a.generatedLine!==n&&(i=0,n=a.generatedLine);let p="";p+=S(a.generatedColumn-i),i=a.generatedColumn;let u=a.source??0;p+=S(u-o),o=u,p+=S(a.originalLine-r),r=a.originalLine,p+=S(a.originalColumn-s),s=a.originalColumn,t[a.generatedLine].push(p);}return t.map(a=>a.join(",")).join(";")}function Ce(e,t,n,i,r){let s=new _;return s.addSource(e,t),s.addLineRange(r,n,i,0),s}function T(e){return e.type==="expression"||e.type==="component"?false:e.type==="text"?true:!(e.directives&&e.directives.length>0||e.attrs?.some(t=>t.dynamic)||e.children?.some(t=>!T(t)))}function j(e){switch(e.type){case "text":return e.content??"";case "element":{let t=`<${e.tag}`;if(e.attrs)for(let n of e.attrs)n.name==="class"||n.name==="className"?t+=` class="${n.value}"`:t+=` ${n.name}="${n.value}"`;if(t+=">",e.children)for(let n of e.children)t+=j(n);return t+=`</${e.tag}>`,t}default:return ""}}function Z(e){let t=[],n=0;function i(r){if(r.type==="element"){if(T(r)&&r.children&&r.children.length>0){let s=`__hoisted_${n++}`;t.push({varName:s,html:j(r)}),r._hoisted=s;return}if(r.children)for(let s of r.children)i(s);}}for(let r of e)i(r);return t}function we(e){if(e.length===0)return "";let t=`// Hoisted static templates (created once, cloned per instance)
33
33
  `;for(let n of e)t+=`const ${n.varName} = /*#__PURE__*/ (() => {
34
34
  `,t+=` const _t = document.createElement('template');
35
35
  `,t+=` _t.innerHTML = ${JSON.stringify(n.html)};
36
36
  `,t+=` return _t;
37
37
  `,t+=`})();
38
- `;return t}function Ce(e){return e._hoisted??null}function we(e){let t=0,n=0;function i(s){if(t++,T(s)&&n++,s.children)for(let o of s.children)i(o);}for(let s of e)i(s);let r=J(JSON.parse(JSON.stringify(e)));return {totalNodes:t,staticNodes:n,hoistedTemplates:r.length,staticRatio:t>0?n/t:0}}var M=[{label:"signal",kind:"property",detail:"signal<T>(initial: T): Signal<T>",documentation:"Create a reactive signal"},{label:"computed",kind:"property",detail:"computed<T>(fn: () => T): ReadonlySignal<T>",documentation:"Create a derived reactive value"},{label:"effect",kind:"property",detail:"effect(fn: () => void): () => void",documentation:"Run a side-effect when dependencies change"},{label:"batch",kind:"property",detail:"batch(fn: () => void): void",documentation:"Batch signal updates"},{label:"untrack",kind:"property",detail:"untrack<T>(fn: () => T): T",documentation:"Read signals without tracking"},{label:"onMount",kind:"property",detail:"onMount(fn: () => void | (() => void)): void",documentation:"Run after component mounts"},{label:"onUnmount",kind:"property",detail:"onUnmount(fn: () => void): void",documentation:"Run before component unmounts"},{label:"provide",kind:"property",detail:"provide<T>(key: InjectionKey<T>, value: T): void",documentation:"Provide a value to descendants"},{label:"inject",kind:"property",detail:"inject<T>(key: InjectionKey<T>): T",documentation:"Inject a value from ancestors"},{label:"defineStore",kind:"property",detail:"defineStore(id, config): () => Store",documentation:"Define a global store"},{label:"useHead",kind:"property",detail:"useHead(config: HeadConfig): void",documentation:"Manage document head tags"},{label:"cx",kind:"property",detail:"cx(...inputs): string",documentation:"Merge CSS class names"},{label:"pipe",kind:"property",detail:"pipe(value, transform, ...args): any",documentation:"Apply a pipe transform"}],k=[{label:"Show",kind:"component",detail:"<Show when={condition}>{value => ...}</Show>",documentation:"Conditional rendering with type narrowing"},{label:"For",kind:"component",detail:"<For each={items} key={fn}>{item => ...}</For>",documentation:"List rendering with keyed reconciliation"},{label:"Switch",kind:"component",detail:"<Switch on={value} cases={...} />",documentation:"Switch/case rendering"},{label:"Portal",kind:"component",detail:'<Portal target="selector">...</Portal>',documentation:"Render into different DOM node"},{label:"Transition",kind:"component",detail:'<Transition name="fade" when={show}>...</Transition>',documentation:"CSS enter/exit transitions"},{label:"ErrorBoundary",kind:"component",detail:"<ErrorBoundary fallback={fn}>...</ErrorBoundary>",documentation:"Catch errors from children"},{label:"Suspense",kind:"component",detail:"<Suspense fallback={fn}>...</Suspense>",documentation:"Show fallback during async loading"},{label:"VirtualFor",kind:"component",detail:"<VirtualFor each={items} itemHeight={40}>...</VirtualFor>",documentation:"Virtual scrolling for large lists"},{label:"Image",kind:"component",detail:'<Image src="..." alt="..." />',documentation:"Optimized image with lazy loading"}],C=[{label:":if",kind:"directive",detail:":if={condition}",documentation:"Conditional rendering"},{label:":for",kind:"directive",detail:":for={item of items()}",documentation:"List rendering"},{label:":show",kind:"directive",detail:":show={condition}",documentation:"Toggle visibility (display)"},{label:":key",kind:"directive",detail:":key={uniqueId}",documentation:"Reconciliation key for lists"},{label:"bind:value",kind:"directive",detail:"bind:value={signal}",documentation:"Two-way binding"},{label:"bind:checked",kind:"directive",detail:"bind:checked={signal}",documentation:"Two-way checkbox binding"}],U=["onClick","onInput","onChange","onSubmit","onKeyDown","onKeyUp","onFocus","onBlur","onMouseEnter","onMouseLeave","onScroll","onLoad","onError","onResize","onPointerDown","onPointerUp"].map(e=>({label:e,kind:"event",detail:`${e}={(e) => { ... }}`,documentation:`${e.slice(2)} event handler`}));function Ee(){return {getDiagnostics(e,t){let n=[];try{let i=y(e);if(i.template||n.push({range:{start:{line:0,character:0},end:{line:0,character:0}},message:"Missing <template> block",severity:"warning"}),i.template){let r=h(i.template.content);Z(r,n,i.template.start);}}catch(i){n.push({range:{start:{line:0,character:0},end:{line:0,character:0}},message:`Parse error: ${i instanceof Error?i.message:String(i)}`,severity:"error"});}return n},getCompletions(e,t){let i=(e.split(`
39
- `)[t.line]??"").slice(0,t.character);return Re(e,t)?[...M]:Ne(e,t)?i.endsWith("<")||/^<[A-Z]/.test(i.trimStart())?[...k]:i.endsWith(":")||i.includes(":")?[...C]:De(i)?[...C,...U]:[...k,...C]:[]},getHoverInfo(e,t){let n=e.split(`
40
- `)[t.line]??"",i=Ae(n,t.character),r=M.find(o=>o.label===i);if(r)return {contents:`**${r.label}**
38
+ `;return t}function Ee(e){return e._hoisted??null}function Re(e){let t=0,n=0;function i(s){if(t++,T(s)&&n++,s.children)for(let o of s.children)i(o);}for(let s of e)i(s);let r=Z(JSON.parse(JSON.stringify(e)));return {totalNodes:t,staticNodes:n,hoistedTemplates:r.length,staticRatio:t>0?n/t:0}}var P=[{label:"signal",kind:"property",detail:"signal<T>(initial: T): Signal<T>",documentation:"Create a reactive signal"},{label:"computed",kind:"property",detail:"computed<T>(fn: () => T): ReadonlySignal<T>",documentation:"Create a derived reactive value"},{label:"effect",kind:"property",detail:"effect(fn: () => void): () => void",documentation:"Run a side-effect when dependencies change"},{label:"batch",kind:"property",detail:"batch(fn: () => void): void",documentation:"Batch signal updates"},{label:"untrack",kind:"property",detail:"untrack<T>(fn: () => T): T",documentation:"Read signals without tracking"},{label:"onMount",kind:"property",detail:"onMount(fn: () => void | (() => void)): void",documentation:"Run after component mounts"},{label:"onUnmount",kind:"property",detail:"onUnmount(fn: () => void): void",documentation:"Run before component unmounts"},{label:"provide",kind:"property",detail:"provide<T>(key: InjectionKey<T>, value: T): void",documentation:"Provide a value to descendants"},{label:"inject",kind:"property",detail:"inject<T>(key: InjectionKey<T>): T",documentation:"Inject a value from ancestors"},{label:"defineStore",kind:"property",detail:"defineStore(id, config): () => Store",documentation:"Define a global store"},{label:"useHead",kind:"property",detail:"useHead(config: HeadConfig): void",documentation:"Manage document head tags"},{label:"cx",kind:"property",detail:"cx(...inputs): string",documentation:"Merge CSS class names"},{label:"pipe",kind:"property",detail:"pipe(value, transform, ...args): any",documentation:"Apply a pipe transform"}],k=[{label:"Show",kind:"component",detail:"<Show when={condition}>{value => ...}</Show>",documentation:"Conditional rendering with type narrowing"},{label:"For",kind:"component",detail:"<For each={items} key={fn}>{item => ...}</For>",documentation:"List rendering with keyed reconciliation"},{label:"Switch",kind:"component",detail:"<Switch on={value} cases={...} />",documentation:"Switch/case rendering"},{label:"Portal",kind:"component",detail:'<Portal target="selector">...</Portal>',documentation:"Render into different DOM node"},{label:"Transition",kind:"component",detail:'<Transition name="fade" when={show}>...</Transition>',documentation:"CSS enter/exit transitions"},{label:"ErrorBoundary",kind:"component",detail:"<ErrorBoundary fallback={fn}>...</ErrorBoundary>",documentation:"Catch errors from children"},{label:"Suspense",kind:"component",detail:"<Suspense fallback={fn}>...</Suspense>",documentation:"Show fallback during async loading"},{label:"VirtualFor",kind:"component",detail:"<VirtualFor each={items} itemHeight={40}>...</VirtualFor>",documentation:"Virtual scrolling for large lists"},{label:"Image",kind:"component",detail:'<Image src="..." alt="..." />',documentation:"Optimized image with lazy loading"}],C=[{label:":if",kind:"directive",detail:":if={condition}",documentation:"Conditional rendering"},{label:":for",kind:"directive",detail:":for={item of items()}",documentation:"List rendering"},{label:":show",kind:"directive",detail:":show={condition}",documentation:"Toggle visibility (display)"},{label:":key",kind:"directive",detail:":key={uniqueId}",documentation:"Reconciliation key for lists"},{label:"bind:value",kind:"directive",detail:"bind:value={signal}",documentation:"Two-way binding"},{label:"bind:checked",kind:"directive",detail:"bind:checked={signal}",documentation:"Two-way checkbox binding"}],K=["onClick","onInput","onChange","onSubmit","onKeyDown","onKeyUp","onFocus","onBlur","onMouseEnter","onMouseLeave","onScroll","onLoad","onError","onResize","onPointerDown","onPointerUp"].map(e=>({label:e,kind:"event",detail:`${e}={(e) => { ... }}`,documentation:`${e.slice(2)} event handler`}));function Ne(){return {getDiagnostics(e,t){let n=[];try{let i=y(e);if(i.template||n.push({range:{start:{line:0,character:0},end:{line:0,character:0}},message:"Missing <template> block",severity:"warning"}),i.template){let r=b(i.template.content);q(r,n,i.template.start);}}catch(i){n.push({range:{start:{line:0,character:0},end:{line:0,character:0}},message:`Parse error: ${i instanceof Error?i.message:String(i)}`,severity:"error"});}return n},getCompletions(e,t){let i=(e.split(`
39
+ `)[t.line]??"").slice(0,t.character);return Ae(e,t)?[...P]:De(e,t)?i.endsWith("<")||/^<[A-Z]/.test(i.trimStart())?[...k]:i.endsWith(":")||i.includes(":")?[...C]:Oe(i)?[...C,...K]:[...k,...C]:[]},getHoverInfo(e,t){let n=e.split(`
40
+ `)[t.line]??"",i=Le(n,t.character),r=P.find(o=>o.label===i);if(r)return {contents:`**${r.label}**
41
41
 
42
42
  ${r.detail}
43
43
 
@@ -45,7 +45,7 @@ ${r.documentation}`};let s=k.find(o=>o.label===i);return s?{contents:`**${s.labe
45
45
 
46
46
  ${s.detail}
47
47
 
48
- ${s.documentation}`}:null},getAllCompletions(){return {apis:M,components:k,directives:C,events:U}}}}function Z(e,t,n){for(let i of e)i.type==="element"&&i.tag==="img"&&(i.attrs?.some(s=>s.name==="alt")||t.push({range:{start:{line:0,character:0},end:{line:0,character:0}},message:"<img> element should have an alt attribute for accessibility",severity:"warning",code:"a11y-img-alt"})),i.type==="element"&&i.tag==="button"&&(i.attrs?.some(s=>s.name==="type")||t.push({range:{start:{line:0,character:0},end:{line:0,character:0}},message:'<button> should have an explicit type attribute (type="button" or type="submit")',severity:"hint",code:"a11y-button-type"})),i.children&&Z(i.children,t);}function Re(e,t){let n=e.split(`
49
- `),i=false;for(let r=0;r<=t.line&&r<n.length;r++)n[r].includes("<script")&&(i=true),n[r].includes("</script>")&&(i=false);return i}function Ne(e,t){let n=e.split(`
50
- `),i=false;for(let r=0;r<=t.line&&r<n.length;r++)n[r].includes("<template>")&&(i=true),n[r].includes("</template>")&&(i=false);return i}function De(e){let t=e.lastIndexOf("<"),n=e.lastIndexOf(">");return t>n}function Ae(e,t){let n=t,i=t;for(;n>0&&/\w/.test(e[n-1]);)n--;for(;i<e.length&&/\w/.test(e[i]);)i++;return e.slice(n,i)}function Ke(e,t={}){let n=y(e);return L(n,t)}export{_ as SourceMapBuilder,be as analyzeTemplate,Ke as compile,Te as createAkashSourceMap,Ee as createLanguageService,S as encodeVLQ,J as extractHoistedTemplates,ke as generateHoistedDeclarations,R as generateScopeId,Ce as getHoistedVar,we as getOptimizationStats,xe as isStaticExpression,T as isStaticNode,y as parse,h as parseTemplate,N as scopeStyles,I as staticNodeToHtml,L as transform};//# sourceMappingURL=index.js.map
48
+ ${s.documentation}`}:null},getAllCompletions(){return {apis:P,components:k,directives:C,events:K}}}}function q(e,t,n){for(let i of e)i.type==="element"&&i.tag==="img"&&(i.attrs?.some(s=>s.name==="alt")||t.push({range:{start:{line:0,character:0},end:{line:0,character:0}},message:"<img> element should have an alt attribute for accessibility",severity:"warning",code:"a11y-img-alt"})),i.type==="element"&&i.tag==="button"&&(i.attrs?.some(s=>s.name==="type")||t.push({range:{start:{line:0,character:0},end:{line:0,character:0}},message:'<button> should have an explicit type attribute (type="button" or type="submit")',severity:"hint",code:"a11y-button-type"})),i.children&&q(i.children,t);}function Ae(e,t){let n=e.split(`
49
+ `),i=false;for(let r=0;r<=t.line&&r<n.length;r++)n[r].includes("<script")&&(i=true),n[r].includes("</script>")&&(i=false);return i}function De(e,t){let n=e.split(`
50
+ `),i=false;for(let r=0;r<=t.line&&r<n.length;r++)n[r].includes("<template>")&&(i=true),n[r].includes("</template>")&&(i=false);return i}function Oe(e){let t=e.lastIndexOf("<"),n=e.lastIndexOf(">");return t>n}function Le(e,t){let n=t,i=t;for(;n>0&&/\w/.test(e[n-1]);)n--;for(;i<e.length&&/\w/.test(e[i]);)i++;return e.slice(n,i)}function Qe(e,t={}){let n=y(e);return I(n,t)}export{_ as SourceMapBuilder,ye as analyzeTemplate,Qe as compile,Ce as createAkashSourceMap,Ne as createLanguageService,S as encodeVLQ,Z as extractHoistedTemplates,we as generateHoistedDeclarations,A as generateScopeId,Ee as getHoistedVar,Re as getOptimizationStats,_e as isStaticExpression,T as isStaticNode,y as parse,b as parseTemplate,D as scopeStyles,j as staticNodeToHtml,I as transform};//# sourceMappingURL=index.js.map
51
51
  //# sourceMappingURL=index.js.map