@fluixi/compiler 1.0.0-alpha.82 → 1.0.0-alpha.83

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.
Files changed (75) hide show
  1. package/dist/analyze/static-graph.cjs +1 -0
  2. package/dist/analyze/static-graph.d.ts +103 -0
  3. package/dist/analyze/static-graph.d.ts.map +1 -0
  4. package/dist/analyze/static-graph.js +869 -0
  5. package/dist/analyze/static-graph.mjs +1 -0
  6. package/dist/{babel-4JUDAR2G.mjs → babel-VXKH6MRQ.mjs} +1 -1
  7. package/dist/chunk-5KMMN5QP.mjs +1 -0
  8. package/dist/chunk-YKZ54NVE.mjs +1 -0
  9. package/dist/codegen/backends/imperative.cjs +1 -1
  10. package/dist/codegen/backends/imperative.d.ts.map +1 -1
  11. package/dist/codegen/backends/imperative.js +62 -11
  12. package/dist/codegen/backends/imperative.mjs +1 -1
  13. package/dist/codegen/partial-template.cjs +1 -1
  14. package/dist/codegen/partial-template.mjs +1 -1
  15. package/dist/codegen/serialize-static.cjs +1 -1
  16. package/dist/codegen/serialize-static.d.ts +16 -0
  17. package/dist/codegen/serialize-static.d.ts.map +1 -1
  18. package/dist/codegen/serialize-static.js +25 -0
  19. package/dist/codegen/serialize-static.mjs +1 -1
  20. package/dist/frontend/babel/build-ir-lit.cjs +1 -1
  21. package/dist/frontend/babel/build-ir-lit.mjs +1 -1
  22. package/dist/frontend/babel/build-ir.cjs +1 -1
  23. package/dist/frontend/babel/build-ir.mjs +1 -1
  24. package/dist/frontend/babel/index.cjs +1 -1
  25. package/dist/frontend/babel/index.mjs +1 -1
  26. package/dist/frontend/babel/lower-template.cjs +1 -1
  27. package/dist/frontend/babel/lower-template.mjs +1 -1
  28. package/dist/frontend/babel/plugin.cjs +1 -1
  29. package/dist/frontend/babel/plugin.mjs +1 -1
  30. package/dist/index.cjs +8 -8
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +3 -0
  33. package/dist/index.mjs +8 -8
  34. package/dist/integrations.cjs +18 -18
  35. package/dist/integrations.d.ts +16 -0
  36. package/dist/integrations.d.ts.map +1 -1
  37. package/dist/integrations.js +21 -2
  38. package/dist/integrations.mjs +5 -5
  39. package/dist/ir/nodes.cjs +1 -1
  40. package/dist/ir/nodes.d.ts +46 -0
  41. package/dist/ir/nodes.d.ts.map +1 -1
  42. package/dist/lower/compile-template.cjs +1 -1
  43. package/dist/lower/compile-template.d.ts +12 -0
  44. package/dist/lower/compile-template.d.ts.map +1 -1
  45. package/dist/lower/compile-template.js +5 -1
  46. package/dist/lower/compile-template.mjs +1 -1
  47. package/dist/lower/jsx.cjs +1 -1
  48. package/dist/lower/jsx.d.ts +2 -0
  49. package/dist/lower/jsx.d.ts.map +1 -1
  50. package/dist/lower/jsx.js +25 -3
  51. package/dist/lower/jsx.mjs +1 -1
  52. package/dist/lower/template.cjs +1 -1
  53. package/dist/lower/template.d.ts +14 -1
  54. package/dist/lower/template.d.ts.map +1 -1
  55. package/dist/lower/template.js +101 -15
  56. package/dist/lower/template.mjs +1 -1
  57. package/dist/transform/index.cjs +5 -5
  58. package/dist/transform/index.mjs +12 -12
  59. package/dist/transform/source-locations.cjs +1 -0
  60. package/dist/transform/source-locations.d.ts +44 -0
  61. package/dist/transform/source-locations.d.ts.map +1 -0
  62. package/dist/transform/source-locations.js +238 -0
  63. package/dist/transform/source-locations.mjs +1 -0
  64. package/dist/transform/templates.cjs +4 -4
  65. package/dist/transform/templates.d.ts +12 -4
  66. package/dist/transform/templates.d.ts.map +1 -1
  67. package/dist/transform/templates.js +72 -7
  68. package/dist/transform/templates.mjs +11 -11
  69. package/dist/transform-C4ZXRVGP.mjs +8 -0
  70. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  71. package/package.json +3 -3
  72. package/dist/chunk-PVR2SN3B.mjs +0 -1
  73. package/dist/chunk-QUIYULS2.mjs +0 -1
  74. package/dist/chunk-YR3SAEO7.mjs +0 -1
  75. package/dist/transform-5WC4FWJE.mjs +0 -8
@@ -1,35 +1,35 @@
1
- "use strict";var Yn=Object.create;var Ne=Object.defineProperty;var Zn=Object.getOwnPropertyDescriptor;var Qn=Object.getOwnPropertyNames;var er=Object.getPrototypeOf,tr=Object.prototype.hasOwnProperty;var b=(e,t)=>()=>(e&&(t=e(e=0)),t);var oe=(e,t)=>{for(var n in t)Ne(e,n,{get:t[n],enumerable:!0})},It=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Qn(t))!tr.call(e,o)&&o!==n&&Ne(e,o,{get:()=>t[o],enumerable:!(r=Zn(t,o))||r.enumerable});return e};var J=(e,t,n)=>(n=e!=null?Yn(er(e)):{},It(t||!e||!e.__esModule?Ne(n,"default",{value:e,enumerable:!0}):n,e)),nr=e=>It(Ne({},"__esModule",{value:!0}),e);function Ct(e,t){return e.replace(/\$(\d+)/g,(n,r)=>t[Number(r)]??n)}function or(e,t){return typeof t=="string"?{module:t,export:e}:t}function X(e=[]){let t=new Map,n=[],r=[];for(let i of e){if(!rr(i)){r.push(i);continue}for(let[a,l]of Object.entries(i.components)){let c=or(a,l),p=t.get(a);if(p&&p.module!==c.module){let d=n.find(m=>m.name===a);d?d.modules.push(c.module):n.push({name:a,modules:[p.module,c.module]});continue}t.set(a,c)}}let o=new Map;return{resolve:i=>{if(o.has(i))return o.get(i);let a=t.get(i);if(!a)for(let l of r){let c=i.match(new RegExp(l.match.source,l.match.flags.replace("g","")));if(c){a={module:Ct(l.module,c),export:l.export?Ct(l.export,c):i};break}}return o.set(i,a),a},names:()=>[...t.keys()],conflicts:()=>n}}var rr,se=b(()=>{"use strict";rr=e=>"components"in e});function Se(e={}){let{controlFlowModule:t="@fluixi/dom",coreModule:n="@fluixi/core",routerModule:r="@fluixi/core/router"}=e,o={};for(let s of ie)o[s]=t;for(let s of K)o[s]=n;for(let s of B)o[s]=r;return o}var ie,K,B,Uo,ze,ae=b(()=>{"use strict";ie=["Show","For","Index","Switch","Match","Portal","Dynamic","ErrorBoundary"],K=["Suspense","SuspenseList","Await"],B=["Router","Outlet","Redirect","Link"],Uo=[...ie,...K,...B],ze=new Set([...ie,...K])});function Mt(e){return ir.test(e)}function $t(e){return Object.prototype.hasOwnProperty.call(L,e)}function Ot(e){return sr.includes(e)}var Y,L,Tt,sr,ir,le=b(()=>{"use strict";Y="@fluixi/reactive/signal",L={$signal:{export:"signal",module:Y,returns:"signal-handle"},$memo:{export:"memo",module:Y,returns:"memo-handle"},$effect:{export:"effect",module:Y,returns:"effect"},$store:{export:"store",module:"@fluixi/reactive/store",returns:"store-handle"},$resource:{export:"resource",module:Y,returns:"resource-handle"},$selector:{export:"createSelector",module:Y,returns:"memo-accessor"},$deferred:{export:"createDeferred",module:Y,returns:"memo-accessor"},$untrack:{export:"untrack",module:Y,returns:"plain"},$untrackStore:{export:"untrackStore",module:"@fluixi/reactive/store",returns:"plain"}},Tt={signal:"signal-handle",memo:"memo-handle",effect:"effect",store:"store-handle",createSignal:["signal-accessor","signal-setter"],createMemo:"memo-accessor",createEffect:"effect",createRenderEffect:"effect",createStore:"reactive-object",resource:"resource-handle",createResource:"reactive-object",createSelector:"memo-accessor",createDeferred:"memo-accessor"},sr=["@fluixi/reactive","@fluixi/reactive/signal","@fluixi/reactive/store","@fluixi/core"],ir=new RegExp(`\\$(?:${Object.keys(L).map(e=>e.slice(1)).join("|")})\\s*\\(`)});function qe(e){return e.startsWith("load:")}function Ee(e,t){let n=e.slice(5);if(!At.has(n))throw new V(`Unknown load strategy 'load:${n}'. Expected one of ${[...At].join(", ")}.`);switch(n){case"eager":return Re;case"idle":return{kind:"idle"};case"never":return{kind:"never"};case"visible":return t?{kind:"visible",rootMargin:t}:{kind:"visible"};case"interaction":return{kind:"interaction",events:t?gr(t):[...fr]};case"media":if(!t)throw new V(`'load:media' needs a query, e.g. load:media="(min-width: 1024px)".`);return{kind:"media",query:t};default:throw new V(`Unhandled load strategy '${n}'.`)}}function gr(e){let t=e.split(/[\s,]+/).map(n=>n.trim()).filter(Boolean);if(t.length===0)throw new V("'load:interaction' was given no event names.");return t}function Z(e){return e.kind!=="eager"&&e.kind!=="never"}var Re,fr,At,V,Q=b(()=>{"use strict";Re={kind:"eager"},fr=["pointerdown","focusin","keydown"],At=new Set(["eager","idle","visible","interaction","media","never"]),V=class extends Error{}});function W(e,t={}){let{resolver:n,isBound:r,modules:o,strategyFor:s}=t,i=Se(o),a=new Map,l=new Set,c=d=>{let{name:m}=d;if(!m||m.includes(".")||r?.(m))return;let x=p(m);if(!x){l.add(m);return}let y=x.origin==="builtin"&&ze.has(m)?Re:s?.(d)??Re;d.source={...x,loading:y},a.set(m,d.source)},p=d=>{if(ze.has(d))return{module:i[d],export:d,origin:"builtin"};let m=n?.resolve(d);if(m)return{module:m.module,export:m.export,origin:"rule"};if(B.includes(d))return{module:i[d],export:d,origin:"builtin"}};return we(e,d=>{d.kind==="component"&&c(d)}),{resolved:a,unresolved:[...l]}}function we(e,t){let n=Array.isArray(e)?e:[e];for(let r of n){t(r);let o=r.children;o&&we(o,t)}}var ce=b(()=>{"use strict";ae();Q()});function U(e){let t=[];we(e,s=>{s.kind==="component"&&s.source&&t.push(s)});let n=new Set,r=new Set;for(let s of t){let{module:i,loading:a}=s.source;a.kind==="eager"&&n.add(i),a.kind==="never"&&r.add(i)}let o=new Map;for(let s of t){let i=s.source;Z(i.loading)&&n.has(i.module)&&(i.loading={kind:"eager"},o.set(i.module,(o.get(i.module)??0)+1))}return{collapsed:o,conflicted:[...r].filter(s=>n.has(s))}}var ke=b(()=>{"use strict";Q();ce()});function Ke(e){return vr.has(e)}function Jt(e){return Ft[e]??e}function pe(e){return e.kind!=="attr"||e.expr!==void 0||e.name.includes(":")?!1:!yr.has(e.name)}function Ye(e){if(!e.static||Ke(e.tag))return!1;for(let t of e.props)if(!pe(t))return!1;for(let t of e.children)if(t.kind!=="text"&&!(t.kind==="element"&&Ye(t)))return!1;return!0}function ue(e){let t=e.props.map(br).filter(Boolean).join(""),n=`<${e.tag}${t}>`;return hr.has(e.tag)?n:`${n}${e.children.map(xr).join("")}</${e.tag}>`}function xr(e){if(e.kind==="text")return Sr(e.value);if(e.kind!=="element")throw new Error(`serializeStatic: unexpected ${e.kind}`);return ue(e)}function br(e){let t=Ft[e.name]??e.name,n=e.literal;return n===!0||n===void 0?` ${t}`:n===!1||n===null?"":` ${t}="${Nr(String(n))}"`}function Nr(e){return e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Sr(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}var hr,Ft,yr,vr,Ze=b(()=>{"use strict";hr=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),Ft={className:"class",htmlFor:"for"},yr=new Set(["innerHTML","outerHTML","innerText","textContent","value","checked","selected","muted","defaultValue","defaultChecked","children","ref"]),vr=new Set(["script","style","textarea","title"])});function Ce(e){return e.kind==="expr"||e.kind==="component"||e.kind==="control"}function wr(e){return e.kind==="text"||e.kind==="element"&&_t(e)}function _t(e){return e.svg||Ke(e.tag)||!e.props.every(t=>pe(t))?!1:e.children.every(t=>wr(t)||Ce(t))}function Ie(e){if(Ce(e))return!0;let t=e.children;return t?t.some(Ie):!1}function Xt(e){for(let t=0;t<e.children.length;t++){let n=e.children[t];if(n.kind==="text"&&(n.value===""||e.children[t+1]?.kind==="text"))return!1}return e.children.every(t=>t.kind!=="element"||Xt(t))}function Bt(e){if(!_t(e)||!Xt(e)||!e.children.some(Ie))return null;let t=[],n=[],r=0,o=i=>{let a=`_n$${r++}`;return t.push({ref:a,expr:i}),a};return s(e,"_el$"),{html:kr(e),tag:e.tag,steps:t,holes:n};function s(i,a){let l=-1;i.children.forEach((p,d)=>{Ie(p)&&(l=d)});let c=null;for(let p=0;p<=l;p++){let d=i.children[p],m=c?`${c}.nextSibling`:`${a}.firstChild`;if(Ce(d)){let y=o(m),g=o(`holeEnd(${y})`);n.push({parentRef:a,startRef:y,endRef:g,node:d}),c=g;continue}let x=o(m);d.kind==="element"&&Ie(d)&&s(d,x),c=x}}}function kr(e){return ue(Ht(e)).split(Vt).join(Rr+Er)}function Ht(e){return{...e,children:e.children.map(t=>Ce(t)?{kind:"text",value:Vt}:t.kind==="element"?Ht(t):t)}}var Rr,Er,Vt,Wt=b(()=>{"use strict";Ze();Rr="<!--fx-->",Er="<!--fx/-->";Vt="\0fx-hole\0"});var Qe,us,Ut=b(()=>{"use strict";Qe={version:1,module:"@fluixi/dom",symbols:["createNativeElement","insert","spread","setAttribute","delegateEvents","createComponent","createMemo","untrack","Show","For","Index","Switch","Match","Dynamic","ErrorBoundary"]},us={version:2,module:"@fluixi/dom",symbols:[...Qe.symbols,"template","cloneTemplate","walk"]}});function Cr(e){return/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(e)}function Gt(e){return Cr(e)?e:JSON.stringify(e)}function Tr(e){return e.expr!==void 0?e.reactive?`() => (${e.expr})`:`(${e.expr})`:JSON.stringify(e.literal??!0)}function Mr(e){return e.expr!==void 0?`(${e.expr})`:JSON.stringify(e.literal??!0)}function $r(e,t,n){let r=e.filter(a=>a.kind==="spread"),s=e.filter(a=>a.kind!=="spread").map(a=>`${Gt(a.name)}: ${Tr(a)}`);t!=null&&s.push(`children: ${t}`);let i=`{ ${s.join(", ")} }`;return r.length>0?(n.add("mergeProps"),`mergeProps(${r.map(a=>a.expr).join(", ")}, ${i})`):i}function qt(e,t,n){return e.length===1?de(e[0],t,n):`[${e.map(r=>de(r,t,n)).join(", ")}]`}function zt(e,t,n,r,o){r.add("createMemo"),r.add("createComponent");let s=t.filter(c=>c.kind==="spread"),a=t.filter(c=>c.kind!=="spread").map(c=>`get ${Gt(c.name)}() { return ${Mr(c)}; }`);n.length>0&&a.push(`get children() { return ${qt(n,r,o)}; }`);let l=`{ ${a.join(", ")} }`;return s.length>0&&(r.add("mergeProps"),l=`mergeProps(${s.map(c=>c.expr).join(", ")}, ${l})`),`createMemo(() => createComponent(${e}, ${l}))`}function Or(e,t){let n=Jt(t.name),r=t.literal;return r===!0||r===void 0?`${e}.setAttribute(${JSON.stringify(n)}, "");`:r===!1||r===null?"":`${e}.setAttribute(${JSON.stringify(n)}, ${JSON.stringify(String(r))});`}function de(e,t,n){switch(e.kind){case"text":return JSON.stringify(e.value);case"expr":return e.reactive?`() => (${e.code})`:`(${e.code})`;case"fragment":return e.children.length===0?"null":qt(e.children,t,n);case"component":return zt(e.name,e.props,e.children,t,n);case"control":{let r=Ir[e.control]??e.control;return t.add(r),zt(r,e.props,e.children,t,n)}case"element":{if(n&&e.static&&!e.svg&&Ye(e)){t.add("templateNode");let a=`_tmpl$${n.length}`;return n.push({id:a,html:ue(e),tag:e.tag,svg:!1}),`templateNode(${a}, ${JSON.stringify(e.tag)})`}if(n&&Kt){let a=Bt(e);if(a){t.add("templateNode"),t.add("insert"),t.add("holeEnd"),t.add("holeContent"),t.add("holeScope");let l=`_tmpl$${n.length}`;n.push({id:l,html:a.html,tag:a.tag,svg:!1});let c=[`const _el$ = templateNode(${l}, ${JSON.stringify(a.tag)}, true);`];for(let p of a.steps)c.push(`const ${p.ref} = ${p.expr};`);for(let p of a.holes)c.push(`insert(${p.parentRef}, holeScope(${p.startRef}, () => (${de(p.node,t,n)})), ${p.endRef}, holeContent(${p.startRef}, ${p.endRef}));`);return c.push("return _el$;"),`(() => { ${c.join(" ")} })()`}}t.add("createNativeElement");let r=JSON.stringify(e.tag),o="_el$",s=[],i=e.svg?`${r}, true`:r;if(s.push(`const ${o} = createNativeElement(${i});`),e.props.length>0)if(!e.svg&&e.props.every(pe))for(let a of e.props)s.push(Or(o,a));else{t.add("spread");let a=e.svg?", isSVG: true":"";s.push(`spread({ element: ${o}, props: ${$r(e.props,null,t)}${a} });`)}for(let a of e.children){t.add("insert");let l=de(a,t,n),c=a.kind==="expr"&&a.reactive||a.kind==="component"||a.kind==="control";s.push(c?`insert(${o}, ${l}, null);`:`insert(${o}, ${l});`)}return s.push(`return ${o};`),`(() => { ${s.join(" ")} })()`}}}function ee(e,t){if(!t||t.length===0)return e;let n=new Map(t.map(r=>[r.id,JSON.stringify(r.html)]));return e.replace(/_tmpl\$\d+/g,r=>n.get(r)??r)}var Ir,Kt,P,te=b(()=>{"use strict";Wt();Ze();Ut();Ir={show:"Show",for:"For",index:"Index",switch:"Switch",match:"Match",dynamic:"Dynamic",errorBoundary:"ErrorBoundary",suspense:"Suspense"};Kt=!1;P={name:"imperative",contract:Qe,emit(e,t){let n=new Set,r=t?.templateClone!==!1?[]:void 0;return Kt=t?.partialTemplates===!0,{code:de(e,n,r),imports:Array.from(n),templates:r}}}});function me(e){let t=e.split(/\r\n|\n|\r/),n=0;for(let o=0;o<t.length;o++)/[^ \t]/.test(t[o])&&(n=o);let r="";for(let o=0;o<t.length;o++){let s=t[o].replace(/\t/g," ");o!==0&&(s=s.replace(/^ +/,"")),o!==t.length-1&&(s=s.replace(/ +$/,"")),s&&(o!==n&&(s+=" "),r+=s)}return r}var et=b(()=>{"use strict"});function Pr(e){return e.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}function Zt(e){return e.charAt(0).toUpperCase()+e.slice(1)}function Te(e,t,n,r={}){let{root:o}=(0,Qt.parseTemplate)(e,{svg:r.svg});return new tt(t,n).lowerRoot(o.children)}var Qt,Yt,tt,nt=b(()=>{"use strict";Qt=require("@fluixi/template-parser");Q();te();et();Yt=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]);tt=class{constructor(t,n){this.holes=t;this.used=n}hole(t){return this.holes[t]??{code:"undefined",reactive:!1}}emit(t){let{code:n,imports:r,templates:o}=P.emit(t,{});for(let s of r)this.used.add(s);return ee(n,o)}lowerRoot(t){let n=this.lowerChildren(t);return n.length===1?n[0]:{kind:"fragment",children:n}}lowerChildren(t){let n=[];for(let r=0;r<t.length;r++){let o=t[r];if(o.kind==="Element"||o.kind==="Component"){let i=o.attributes.find(a=>a.kind==="IfDirective");if(i&&i.kind==="IfDirective"){let a=r+1;a<t.length&&this.isBlankText(t[a])&&a++;let l=t[a],c=l&&(l.kind==="Element"||l.kind==="Component")&&l.attributes.some(p=>p.kind==="ElseDirective");n.push(this.lowerIf(o,i.hole,c?l:null)),c&&(r=a);continue}if(o.attributes.some(a=>a.kind==="EachDirective")){n.push(this.lowerEach(o));continue}}let s=this.lowerNode(o);s&&n.push(s)}return n}isBlankText(t){return t.kind==="Text"&&!t.raw&&me(t.value)===""}lowerNode(t){switch(t.kind){case"Text":{if(t.raw)return{kind:"text",value:t.value};let n=me(t.value);return n?{kind:"text",value:n}:null}case"Comment":return null;case"Expression":{let n=this.hole(t.hole);return{kind:"expr",code:n.code,reactive:n.reactive}}case"Fragment":return{kind:"fragment",children:this.lowerChildren(t.children)};case"Element":return this.lowerElement(t);case"Component":return this.lowerComponent(t);default:return null}}lowerElement(t){let n=t.attributes.find(r=>r.kind==="Attribute"&&r.name==="is");if(t.tag==="component"&&n&&n.value&&n.value.kind==="hole"){let r=t.attributes.filter(s=>s!==n),o=this.lowerComponent({...t,kind:"Component",tag:"Dynamic",tagHole:null,attributes:r});return o.props.unshift({name:"component",kind:"attr",expr:`() => (${this.hole(n.value.hole).code})`}),o}return{kind:"element",tag:t.tag,svg:t.namespace==="svg",props:this.lowerAttributes(t.attributes),children:this.lowerChildren(t.children),static:!1}}lowerComponent(t){let n=t.tagHole!=null?this.hole(t.tagHole).code:t.tag,r=this.lowerAttributes(t.attributes),{slots:o,rest:s}=this.partitionSlots(t.children);for(let[l,c]of o){let p=c.length===1?c[0]:{kind:"fragment",children:c},d={name:l,kind:"attr",expr:this.emit(p),jsxElement:!0},m=r.findIndex(x=>x.name===l);m>=0?r[m]=d:r.push(d)}let i=t.attributes.find(l=>l.kind==="LoadDirective"),a=i?Ee(`load:${i.strategy}`,i.modifier):void 0;return{kind:"component",name:n,props:r,children:this.lowerChildren(s),...a?{load:a}:{}}}partitionSlots(t){let n=new Map,r=[];for(let o of t){if(o.kind==="Element"||o.kind==="Component"){let s=o.attributes.find(i=>i.kind==="Attribute"&&i.name==="slot");if(s&&s.value&&s.value.kind==="static"){let i={...o,attributes:o.attributes.filter(c=>c!==s)},a=i.kind==="Element"?this.lowerElement(i):this.lowerComponent(i),l=n.get(s.value.value)??[];l.push(a),n.set(s.value.value,l);continue}}r.push(o)}return{slots:n,rest:r}}lowerIf(t,n,r){let o=this.hole(n),s=[{name:"when",kind:"attr",expr:o.code,reactive:o.reactive}];if(r){let a=this.stripAndLower(r,l=>l.kind==="ElseDirective");s.push({name:"fallback",kind:"attr",expr:this.emit(a),jsxElement:!0})}let i=this.stripAndLower(t,a=>a.kind==="IfDirective");return{kind:"component",name:"Show",props:s,children:[i]}}lowerEach(t){let n=t.attributes.find(l=>l.kind==="EachDirective");if(!n||n.kind!=="EachDirective")return this.lowerNode(t);let r=this.hole(n.hole),o=[{name:"each",kind:"attr",expr:r.code,reactive:r.reactive}];if(n.key){let l="static"in n.key?`(item) => item[${JSON.stringify(n.key.static)}]`:this.hole(n.key.hole).code;o.push({name:"by",kind:"attr",expr:l})}let s=this.itemArrow(t),i;if(s){let l={kind:"expr",code:s.body,reactive:s.bodyReactive},c=this.rebuildWithChildren(t,[l]);i=`(${s.params.join(", ")}) => (${this.emit(c)})`}else{let l=this.stripAndLower(t,c=>c.kind==="EachDirective");i=`() => (${this.emit(l)})`}return{kind:"component",name:"For",props:o,children:[{kind:"expr",code:i,reactive:!1}]}}itemArrow(t){let n=t.children.filter(r=>!this.isBlankText(r));return n.length!==1||n[0].kind!=="Expression"?null:this.hole(n[0].hole).arrow??null}stripAndLower(t,n){let r={...t,attributes:t.attributes.filter(o=>!n(o))};return r.kind==="Element"?this.lowerElement(r):this.lowerComponent(r)}rebuildWithChildren(t,n){let r=this.lowerAttributes(t.attributes.filter(o=>o.kind!=="EachDirective"));return t.kind==="Element"?{kind:"element",tag:t.tag,svg:t.namespace==="svg",props:r,children:n,static:!1}:{kind:"component",name:t.tag,props:r,children:n}}lowerAttributes(t){let n=[],r=[],o=!1,s=[],i=!1,a=[];for(let l of t)switch(l.kind){case"IfDirective":case"EachDirective":case"ElseDirective":break;case"Attribute":n.push(this.plainAttr(l));break;case"PropertyBinding":n.push({name:l.name,kind:"prop",expr:this.hole(l.hole).code,reactive:this.hole(l.hole).reactive});break;case"EventBinding":n.push(this.eventProp(l));break;case"RefBinding":n.push({name:"ref",kind:"ref",expr:this.hole(l.hole).code,reactive:this.hole(l.hole).reactive});break;case"Spread":n.push({name:"",kind:"spread",expr:this.hole(l.hole).code});break;case"ClassDirective":{let c=this.hole(l.hole);r.push(`${JSON.stringify(l.name)}: ${c.code}`),o=o||c.reactive;break}case"StyleDirective":{let c=this.hole(l.hole);s.push(`${JSON.stringify(l.name)}: ${c.code}`),i=i||c.reactive;break}case"BindDirective":n.push(...this.bindProps(l.name,this.hole(l.hole).code));break;case"UseDirective":{let c=l.name??(l.hole!=null?this.hole(l.hole).code:null);if(!c)break;a.push(l.name!=null&&l.hole!=null?`[${c}, () => (${this.hole(l.hole).code})]`:`[${c}]`);break}}return r.length>0&&n.push({name:"classList",kind:"attr",expr:`{ ${r.join(", ")} }`,reactive:o}),s.length>0&&n.push({name:"style",kind:"attr",expr:`{ ${s.join(", ")} }`,reactive:i}),a.length>0&&n.push({name:"use",kind:"attr",expr:`[${a.join(", ")}]`}),n}eventProp(t){let n=t.name.toLowerCase(),r=this.hole(t.hole).code;if(!(t.syntax==="colon"||t.modifiers.length>0))return{name:"on"+Zt(t.name),kind:"event",event:{name:n,delegated:Yt.has(n)},expr:r};let s=this.wrapHandler(r,t.modifiers),i=this.eventOptions(t.modifiers),a=i?`[${s}, ${i}]`:s;return{name:"on:"+n,kind:"attr",expr:a}}wrapHandler(t,n){let r=n.includes("self")?"if (e.target !== e.currentTarget) return; ":"",o=[];return n.includes("prevent")&&o.push("e.preventDefault();"),n.includes("stop")&&o.push("e.stopPropagation();"),!r&&o.length===0?t:`(e) => { ${r}${o.join(" ")} return (${t})(e); }`}eventOptions(t){let n=[];return t.includes("capture")&&n.push("capture: true"),t.includes("once")&&n.push("once: true"),t.includes("passive")&&n.push("passive: true"),n.length?`{ ${n.join(", ")} }`:null}bindProps(t,n){let r=t==="checked",o=r?"change":"input",s=r?"checked":"value";this.used.add("bindPair");let i=`bindPair(${n})`;return[{name:t,kind:"attr",expr:`${i}[0]()`,reactive:!0},{name:"on"+Zt(o),kind:"event",event:{name:o,delegated:Yt.has(o)},expr:`(e) => ${i}[1](e.target.${s})`}]}plainAttr(t){let n=t.value,r=t.name;t.name==="class"?r=n&&n.kind==="hole"&&this.hole(n.hole).object?"classList":"className":t.name==="html"&&(r="innerHTML");let s={name:r,kind:"attr"};if(n==null)return s.literal=!0,s;if(n.kind==="static")return s.literal=n.value,s;if(n.kind==="hole"){let l=this.hole(n.hole);return s.expr=l.code,s.reactive=l.reactive,s}let i=!1,a=n.parts.map(l=>{if("text"in l)return Pr(l.text);let c=this.hole(l.hole);return i=i||c.reactive,"${"+c.code+"}"}).join("");return s.expr="`"+a+"`",s.reactive=i,s}}});function jr(e){return Dr(e,{concise:!0}).code}function Lr(e,t,n){let r={code:$e(e,t,n),reactive:ot(e)};if(Me.types.isArrowFunctionExpression(e)&&!Me.types.isBlockStatement(e.body)){let o=e.body;r.arrow={params:e.params.map(s=>jr(s)),body:$e(o,t,n),bodyReactive:ot(o)}}return Me.types.isObjectExpression(e)&&(r.object=!0),r}function en(e,t,n={}){let r=e.quasi,o=r.expressions.map(s=>Lr(s,t,n.onNested));return Te(Ar(r),o,t,n)}function Ar(e){let t=[];return e.quasis.forEach((n,r)=>{let o=n.value.cooked??n.value.raw;if(t.push({kind:"static",text:o,start:n.start??0}),r<e.expressions.length){let s=e.expressions[r];t.push({kind:"hole",index:r,start:s.start??0,end:s.end??0})}}),t}var Me,rt,Dr,tn=b(()=>{"use strict";Me=require("@babel/core"),rt=J(require("@babel/generator"),1);nt();st();Dr=rt.default.default??rt.default});function Fr(e){switch(e.kind){case"event":return"event";case"ref":return"ref";case"spread":return"spread";case"class":case"style":return"class-or-style-directive";case"attr":case"prop":return e.reactive?"reactive-prop":e.expr!==void 0?"expression-prop":void 0;default:return"expression-prop"}}function z(e){let t=[],n=new Map,r=o=>{switch(o.kind){case"text":return!0;case"expr":return!1;case"component":case"control":for(let s of o.children)r(s);return!1;case"fragment":for(let s of o.children)r(s);return!1;case"element":{let s=!0;for(let a of o.children)r(a)||(s=!1);let i;for(let a of o.props)if(i=Fr(a),i)break;return!i&&!s&&(i=Jr(o)),o.static=!i,i?n.set(o,i):t.push(o),o.static}default:return!1}};for(let o of Array.isArray(e)?e:[e])r(o);return{staticElements:t,reasons:n}}function Jr(e){for(let t of e.children){if(t.kind==="expr")return"expression-child";if(t.kind==="component")return"component-child";if(t.kind==="control")return"control-child";if(t.kind==="element"&&!t.static||t.kind==="fragment")return"expression-child"}return"expression-child"}var fe=b(()=>{"use strict"});function Oe(e,t=new Set,n={}){let r=en(e,t,n);return z(r),r}var it=b(()=>{"use strict";tn();fe()});function G(e){switch(e.kind){case"call":return!0;case"member":return e.property!==_r;case"compound":return e.parts.some(G);case"opaque":return!1}}var _r,Pe=b(()=>{"use strict";_r="children"});function A(e){if(!e)return{kind:"opaque"};if(Xr.has(e.type))return{kind:"call"};if(Br.has(e.type)){let t=e.property;return{kind:"member",property:!(e.computed===!0)&&t?.type==="Identifier"?t.name:null}}return e.type==="ConditionalExpression"?{kind:"compound",parts:[e.test,e.consequent,e.alternate].map(ge)}:e.type==="LogicalExpression"||e.type==="BinaryExpression"?{kind:"compound",parts:[e.left,e.right].map(ge)}:e.type==="TemplateLiteral"?{kind:"compound",parts:e.expressions.map(ge)}:e.type==="ObjectExpression"?{kind:"compound",parts:e.properties.filter(n=>(n.type==="ObjectProperty"||n.type==="Property")&&n.computed!==!0).map(n=>ge(n.value))}:e.type==="ArrayExpression"?{kind:"compound",parts:e.elements.filter(n=>n!=null&&n.type!=="SpreadElement").map(ge)}:{kind:"opaque"}}var Xr,Br,ge,he=b(()=>{"use strict";Xr=new Set(["CallExpression","OptionalCallExpression"]),Br=new Set(["MemberExpression","OptionalMemberExpression"]);ge=e=>A(e)});function ye(e){if(e.type==="StringLiteral"||e.type==="NumericLiteral"||e.type==="BooleanLiteral"||e.type==="Literal"&&(typeof e.value=="string"||typeof e.value=="number"||typeof e.value=="boolean"))return e.value}function Ur(e,t){return e.type==="JSXIdentifier"?{tag:e.name,component:e.name[0]!==e.name[0].toLowerCase()}:e.type==="JSXMemberExpression"?{tag:t.code(e),component:!0}:e.type==="JSXNamespacedName"?{tag:`${e.namespace.name}:${e.name.name}`,component:!1}:{tag:"div",component:!1}}function lt(e){return e.type==="JSXIdentifier"?e.name==="class"?"className":e.name:e.type==="JSXNamespacedName"?`${e.namespace.name}:${e.name.name}`:"unknown"}function zr(e,t){let n=lt(e.name),r=Vr.test(n),o=r||n.startsWith("on:")||n==="ref",i={name:n,kind:r?"event":"attr"};if(r){let l=n.slice(2).toLowerCase();i.event={name:l,delegated:Wr.has(l)}}let a=e.value;if(a==null)return i.literal=!0,i;if(at(a))return i.literal=ye(a),i;if(a.type==="JSXExpressionContainer"&&a.expression?.type!=="JSXEmptyExpression"){let l=a.expression,c=ye(l);return c!==void 0?(i.literal=c,i):(i.expr=t.code(l),i.reactive=o?!1:on(l),(l.type==="JSXElement"||l.type==="JSXFragment")&&(i.jsxElement=!0),i)}return i.literal=!0,i}function nn(e,t){let n=e.value;return n==null?null:at(n)?JSON.stringify(ye(n)):n.type==="JSXExpressionContainer"&&n.expression?.type!=="JSXEmptyExpression"?t.code(n.expression):null}function Gr(e,t){let n=[],r=[];for(let o of e){if(o.type==="JSXSpreadAttribute"){n.push({name:"",kind:"spread",expr:t.code(o.argument)});continue}if(o.type!=="JSXAttribute"||qe(lt(o.name)))continue;let s=o.name.type==="JSXNamespacedName"?o.name.namespace.name:null;if(s==="use"){let i=o.name.name.name;t.used.add(i);let a=nn(o,t);r.push(a!=null?`[${i}, () => (${a})]`:`[${i}]`);continue}if(s==="oncapture"){let i=o.name.name.name.toLowerCase(),a=nn(o,t)??"undefined";n.push({name:"on:"+i,kind:"attr",expr:`[${a}, { capture: true }]`});continue}n.push(zr(o,t))}return r.length>0&&n.push({name:"use",kind:"attr",expr:`[${r.join(", ")}]`}),n}function rn(e,t){let n=[];for(let r of e)if(r.type==="JSXText"){let o=me(r.value);o&&n.push({kind:"text",value:o})}else if(r.type==="JSXExpressionContainer"){if(r.expression?.type!=="JSXEmptyExpression"){let o=r.expression;n.push({kind:"expr",code:t.code(o),reactive:on(o)})}}else r.type==="JSXElement"||r.type==="JSXFragment"?n.push(sn(r,t)):r.type==="JSXSpreadChild"&&n.push({kind:"expr",code:t.code(r.expression),reactive:!1});return n}function qr(e){for(let t of e){if(t.type!=="JSXAttribute")continue;let n=lt(t.name);if(qe(n)){if(t.value&&!at(t.value))throw new V(`'${n}' needs a literal value, not an expression — the strategy is compile-time.`);return Ee(n,t.value?ye(t.value):null)}}}function sn(e,t){if(e.type==="JSXFragment")return{kind:"fragment",children:rn(e.children,t)};let{tag:n,component:r}=Ur(e.openingElement.name,t),o=Gr(e.openingElement.attributes,t),s=rn(e.children,t);if(r){let i=qr(e.openingElement.attributes);return{kind:"component",name:n,props:o,children:s,...i?{load:i}:{}}}return{kind:"element",tag:n,svg:Hr.has(n),props:o,children:s,static:!1}}function De(e,t){let n=sn(e,t);return z(n),n}var Hr,Vr,Wr,on,at,ct=b(()=>{"use strict";Q();Pe();he();fe();et();Hr=new Set(["svg","path","circle","rect","line","polygon","polyline","ellipse","g","defs","clipPath","text"]),Vr=/^on[A-Z]/,Wr=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]),on=e=>G(A(e));at=e=>!!e&&typeof ye(e)=="string"});function an(e){return Kr(e,{concise:!0}).code}function Yr(e,t,n){let r=F.types.cloneNode(e,!0),o=F.types.file(F.types.program([F.types.expressionStatement(r)])),s=!1,i=(a,l,c)=>{for(let p of c)t.add(p);a.replaceWith(F.template.expression(l,{placeholderPattern:!1,plugins:["typescript"]})()),a.skip(),s=!0};return(0,F.traverse)(o,{"JSXElement|JSXFragment"(a){let l=a.node,c=ut(l,t,n);n?.(c);let{code:p,imports:d,templates:m}=P.emit(c,{});i(a,ee(p,m),d)},TaggedTemplateExpression(a){let l=a.node.tag;if(!F.types.isIdentifier(l)||l.name!=="html"&&l.name!=="svg")return;let c=Oe(a.node,t,{svg:l.name==="svg",onNested:n});n?.(c);let{code:p,imports:d,templates:m}=P.emit(c,{});i(a,ee(p,m),d)}}),s?o.program.body[0].expression:e}function $e(e,t,n){return an(Yr(e,t,n))}function ot(e){return G(A(e))}function ut(e,t=new Set,n){return De(e,{code:o=>o.type==="JSXMemberExpression"?an(o):$e(o,t,n),used:t})}var F,pt,Kr,st=b(()=>{"use strict";F=require("@babel/core"),pt=J(require("@babel/generator"),1);te();it();ct();Pe();he();Kr=pt.default.default??pt.default});function dn(e){return t=>{W(t,{resolver:e.componentResolver,modules:{controlFlowModule:e.controlFlowModule,coreModule:e.libModule,routerModule:e.routerModule},strategyFor:n=>n.load}),U(t),je(t,e)}}function Zr(e){let t=[u.types.objectProperty(u.types.identifier("kind"),u.types.stringLiteral(e.kind))];return e.kind==="visible"&&e.rootMargin&&t.push(u.types.objectProperty(u.types.identifier("rootMargin"),u.types.stringLiteral(e.rootMargin))),e.kind==="interaction"&&t.push(u.types.objectProperty(u.types.identifier("events"),u.types.arrayExpression(e.events.map(n=>u.types.stringLiteral(n))))),e.kind==="media"&&t.push(u.types.objectProperty(u.types.identifier("query"),u.types.stringLiteral(e.query))),u.types.objectExpression(t)}function mn(e,t,n){if(!t||t.length===0)return e;let r=new Map;for(let o of t){let s=`${o.svg?"svg:":""}${o.html}`,i=n.staticTemplates.get(s);i||(i=`_tmpl$${n.staticTemplates.size}`,n.staticTemplates.set(s,i)),r.set(o.id,i)}return e.replace(/_tmpl\$\d+/g,o=>r.get(o)??o)}function pn(e,t){let n=new Set,r=ut(e,n,dn(t));W(r,{resolver:t.componentResolver,modules:{controlFlowModule:t.controlFlowModule,coreModule:t.libModule,routerModule:t.routerModule},strategyFor:l=>l.load}),U(r);let{code:o,imports:s,templates:i}=P.emit(r,{templateClone:t.templateClone,partialTemplates:t.partialTemplates});for(let l of s)n.add(l);for(let l of n)t.irImports.add(l);je(r,t);let a=mn(o,i,t);return u.template.expression(a,{placeholderPattern:!1,plugins:["typescript"]})()}function Qr(e){let t=new Map,n=[];for(let r of e){let o=r.source.value;if(!r.specifiers.every(a=>u.types.isImportSpecifier(a))){n.push(r);continue}let i=t.get(o);if(!i){let a=new Set(r.specifiers.map(l=>l.local.name));t.set(o,{decl:r,names:a}),n.push(r);continue}for(let a of r.specifiers)i.names.has(a.local.name)||(i.names.add(a.local.name),i.decl.specifiers.push(a))}return n}function eo(e,t){let n=new Set,r=u.types.isIdentifier(e.tag)&&e.tag.name==="svg",o=Oe(e,n,{svg:r,onNested:dn(t)});W(o,{resolver:t.componentResolver,modules:{controlFlowModule:t.controlFlowModule,coreModule:t.libModule,routerModule:t.routerModule},strategyFor:c=>c.load}),U(o);let{code:s,imports:i,templates:a}=P.emit(o,{templateClone:t.templateClone,partialTemplates:t.partialTemplates});for(let c of i)n.add(c);for(let c of n)t.irImports.add(c);je(o,t),t.hasLitIR=!0;let l=u.template.expression(mn(s,a,t),{placeholderPattern:!1,plugins:["typescript"]})();return to(l,e),l}function to(e,t){if(!t.loc)return;let n=new Set,r=o=>{if(!n.has(o)){n.add(o),o.loc||(o.loc=t.loc,o.start=t.start,o.end=t.end);for(let s of u.types.VISITOR_KEYS[o.type]??[]){let i=o[s];if(Array.isArray(i))for(let a of i)a&&typeof a=="object"&&"type"in a&&r(a);else i&&typeof i=="object"&&"type"in i&&r(i)}}};r(e)}function je(e,t){if(e.kind==="component"&&e.source&&(e.source.origin==="builtin"?(t.controlFlowComponents.add(e.name),t.needsControlFlowImport=!0):Z(e.source.loading)&&!t.resolvedComponents.has(e.name)?t.deferredComponents.set(e.name,{module:e.source.module,export:e.source.export,strategy:e.source.loading}):(t.deferredComponents.delete(e.name),t.resolvedComponents.set(e.name,{module:e.source.module,export:e.source.export}))),(e.kind==="element"||e.kind==="component"||e.kind==="control")&&"props"in e)for(let n of e.props)n.kind==="event"&&n.event?.delegated&&t.delegatedEvents.add(n.event.name);if("children"in e&&e.children)for(let n of e.children)je(n,t)}var un,u,ln,cn,ne,dt=b(()=>{"use strict";un=require("@babel/helper-plugin-utils");se();ce();ke();Q();ae();u=require("@babel/core");st();it();te();ln=new Set(K),cn=new Set(B),ne=(0,un.declare)((e,t={})=>{e.assertVersion(7);let{delegateEvents:n=!0,signalModule:r="@fluixi/dom",controlFlowModule:o="@fluixi/dom",routerModule:s="@fluixi/core/router",reactiveModule:i="@fluixi/reactive/signal",templateClone:a=!0,partialTemplates:l=!0,format:c="both",litTag:p="html",resolve:d=[]}=t,m=X(d),x=c==="lit"||c==="both",y={irImports:new Set,libModule:"@fluixi/core",controlFlowModule:o,routerModule:s,templateClone:a,partialTemplates:l,hasJSX:!1,hasLitHTML:!1,needsControlFlowImport:!1,needsCreateMemo:!1,controlFlowComponents:new Set,resolvedComponents:new Map,deferredComponents:new Map,componentResolver:m,delegatedEvents:new Set,staticTemplates:new Map,staticCounter:0};return{name:"@fluixi/babel-plugin-jsx",manipulateOptions(g,h){h.plugins.push("jsx","typescript")},pre(g){Object.assign(g,y)},visitor:{Program:{enter(g,h){Object.assign(h,{hasJSX:!1,hasLitHTML:!1,hasLitIR:!1,needsControlFlowImport:!1,needsCreateMemo:!1,controlFlowComponents:new Set,resolvedComponents:new Map,deferredComponents:new Map,componentResolver:m,delegatedEvents:new Set,staticTemplates:new Map,staticCounter:0,libModule:"@fluixi/core",controlFlowModule:o,routerModule:s,templateClone:a,partialTemplates:l,irImports:new Set,needsCreateNativeElement:!1,needsInsert:!1,needsSpread:!1,needsCreateComponent:!1,needsMergeProps:!1})},exit(g,h){let E=[];if(h.hasJSX||h.hasLitIR){if(h.irImports.size>0){let R=new Set(["Show","For","Index","Switch","Match","Dynamic","ErrorBoundary","Portal","Suspense"]),S=new Set(["createMemo","createEffect","createRenderEffect","createRoot","createSignal","onCleanup","batch","untrack"]),I=Array.from(h.irImports),T=N=>u.types.importSpecifier(u.types.identifier(N),u.types.identifier(N)),v=N=>!g.scope.hasBinding(N),w=I.filter(N=>S.has(N)&&v(N)),k=I.filter(N=>!R.has(N)&&!S.has(N)&&v(N)),f=I.filter(N=>R.has(N)&&v(N));w.length>0&&E.push(u.types.importDeclaration(w.map(T),u.types.stringLiteral(i))),k.length>0&&E.push(u.types.importDeclaration(k.map(T),u.types.stringLiteral(r))),f.length>0&&E.push(u.types.importDeclaration(f.map(T),u.types.stringLiteral(o)))}if(h.needsCreateMemo&&!g.scope.hasBinding("createMemo")&&E.push(u.types.importDeclaration([u.types.importSpecifier(u.types.identifier("createMemo"),u.types.identifier("createMemo"))],u.types.stringLiteral(i))),h.needsControlFlowImport&&h.controlFlowComponents.size>0){let R=Array.from(h.controlFlowComponents).filter(k=>!g.scope.hasBinding(k)),S=h.libModule??"@fluixi/core",I=R.filter(k=>cn.has(k)),T=R.filter(k=>ln.has(k)),v=R.filter(k=>!ln.has(k)&&!cn.has(k)),w=(k,f)=>u.types.importDeclaration(k.map(N=>u.types.importSpecifier(u.types.identifier(N),u.types.identifier(N))),u.types.stringLiteral(f));v.length>0&&E.push(w(v,o)),T.length>0&&E.push(w(T,S)),I.length>0&&E.push(w(I,s))}let C=[];if(h.deferredComponents.size>0){for(let[R,S]of h.deferredComponents)g.scope.hasBinding(R)||C.push(u.types.variableDeclaration("const",[u.types.variableDeclarator(u.types.identifier(R),u.types.callExpression(u.types.identifier("deferred"),[u.types.arrowFunctionExpression([],u.types.callExpression(u.types.import(),[u.types.stringLiteral(S.module)])),u.types.objectExpression([u.types.objectProperty(u.types.identifier("strategy"),Zr(S.strategy)),u.types.objectProperty(u.types.identifier("export"),u.types.stringLiteral(S.export))])]))]));C.length>0&&!g.scope.hasBinding("deferred")&&E.push(u.types.importDeclaration([u.types.importSpecifier(u.types.identifier("deferred"),u.types.identifier("deferred"))],u.types.stringLiteral(h.libModule??"@fluixi/core")))}if(h.resolvedComponents.size>0){let R=new Map;for(let[S,I]of h.resolvedComponents){if(g.scope.hasBinding(S))continue;let T=R.get(I.module)??[];T.push({local:S,exported:I.export}),R.set(I.module,T)}for(let[S,I]of R)E.push(u.types.importDeclaration(I.map(({local:T,exported:v})=>v==="default"?u.types.importDefaultSpecifier(u.types.identifier(T)):u.types.importSpecifier(u.types.identifier(T),u.types.identifier(v))),u.types.stringLiteral(S)))}if(n&&h.delegatedEvents.size>0){E.push(u.types.importDeclaration([u.types.importSpecifier(u.types.identifier("delegateEvents"),u.types.identifier("delegateEvents"))],u.types.stringLiteral(r)));let R=u.types.arrayExpression(Array.from(h.delegatedEvents).map(I=>u.types.stringLiteral(I))),S=u.types.expressionStatement(u.types.callExpression(u.types.identifier("delegateEvents"),[R]));g.node.body.unshift(S)}if(C.length>0&&g.node.body.unshift(...C),h.staticTemplates.size>0){let R=[];for(let[S,I]of h.staticTemplates){let v=S.startsWith("svg:")?S.slice(4):S;R.push(u.types.variableDeclaration("const",[u.types.variableDeclarator(u.types.identifier(I),u.types.stringLiteral(v))]))}g.node.body.unshift(...R)}}E.length>0&&g.node.body.unshift(...Qr(E))}},JSXElement(g,h){h.hasJSX=!0,g.replaceWith(pn(g.node,h))},JSXFragment(g,h){h.hasJSX=!0,g.replaceWith(pn(g.node,h))},TaggedTemplateExpression(g,h){x&&u.types.isIdentifier(g.node.tag)&&(g.node.tag.name===p||g.node.tag.name==="svg")&&g.replaceWith(eo(g.node,h))}}}})});var fn=b(()=>{"use strict"});var gn={};oe(gn,{babelPluginReactiveJSX:()=>no,createPlugin:()=>ro,createPreset:()=>Le,default:()=>ne,presets:()=>oo});function ro(e){return[ne,e]}function Le(e={}){return{plugins:[[ne,{runtime:"automatic",importSource:"@fluixi/jsx",development:!1,detectReactivity:!0,useLitHTML:!0,hoistStatics:!0,delegateEvents:!0,optimizeControlFlow:!0,sourceMaps:!0,...e}]]}}var no,oo,hn=b(()=>{"use strict";dt();fn();dt();no=ne;oo={production:Le({development:!1,hoistStatics:!0,delegateEvents:!0,optimizeControlFlow:!0}),development:Le({development:!0,hoistStatics:!1,sourceMaps:!0}),minimal:Le({detectReactivity:!1,useLitHTML:!1,hoistStatics:!1,delegateEvents:!1,optimizeControlFlow:!1})}});function yn(e,t,n={}){let r=new Set,o=Te(e,[...t],r,{svg:n.svg});z(o),W(o,{resolver:X(n.resolve??[]),modules:{controlFlowModule:n.controlFlowModule??"@fluixi/dom",coreModule:n.coreModule??"@fluixi/core",routerModule:n.routerModule??"@fluixi/core/router"},strategyFor:l=>l.load}),U(o);let{code:s,imports:i,templates:a}=P.emit(o,{templateClone:n.templateClone,partialTemplates:n.partialTemplates});for(let l of i)r.add(l);return n.hoistTemplates?{code:s,imports:[...r],ir:o,templates:a}:{code:ee(s,a),imports:[...r],ir:o}}var vn=b(()=>{"use strict";fe();ke();te();ce();se();nt()});function q(e,t){if(e)switch(e.type){case"Identifier":t.add(e.name);return;case"ObjectPattern":for(let n of e.properties)n.type==="RestElement"?q(n.argument,t):q(n.value,t);return;case"ArrayPattern":for(let n of e.elements)q(n,t);return;case"AssignmentPattern":q(e.left,t);return;case"RestElement":q(e.argument,t);return}}function xn(e,t){switch(e.type){case"ImportDeclaration":for(let n of e.specifiers)q(n.local,t);return;case"VariableDeclaration":for(let n of e.declarations)q(n.id,t);return;case"FunctionDeclaration":case"ClassDeclaration":q(e.id,t);return;case"ExportNamedDeclaration":case"ExportDefaultDeclaration":e.declaration&&xn(e.declaration,t);return}}function re(e){let t=new Set;for(let n of e.body)xn(n,t);return t}var Ae=b(()=>{"use strict"});function j(e,t){if(e)switch(e.type){case"Identifier":t.add(e.name);return;case"ObjectPattern":for(let n of e.properties)n.type==="RestElement"?j(n.argument,t):j(n.value,t);return;case"ArrayPattern":for(let n of e.elements)j(n,t);return;case"AssignmentPattern":j(e.left,t);return;case"RestElement":j(e.argument,t);return}}function mt(e){switch(e.type){case"StringLiteral":case"NumericLiteral":case"BooleanLiteral":case"NullLiteral":case"BigIntLiteral":case"RegExpLiteral":case"Identifier":return!0;case"Literal":return!0;case"TemplateLiteral":return e.expressions.every(mt);case"UnaryExpression":return mt(e.argument);case"MemberExpression":return!1;default:return!1}}function Fe(e,t){if(!(!e||typeof e!="object")){t(e);for(let n of Object.keys(e)){if(n==="loc"||n==="range"||n==="leadingComments"||n==="trailingComments")continue;let r=e[n];if(Array.isArray(r))for(let o of r)o&&typeof o=="object"&&Fe(o,t);else r&&typeof r=="object"&&typeof r.type=="string"&&Fe(r,t)}}}function so(e){let t=new Set;return Fe(e,n=>{if(n.type==="AssignmentExpression")j(n.left,t);else if(n.type==="UpdateExpression"){let r=n.argument;r?.type==="Identifier"&&t.add(r.name)}}),t}function io(e,t){let n=new Set,r=o=>{let s=new Set;j(o,s);for(let i of s)t.has(i)&&n.add(i)};return Fe(e,o=>{switch(o.type){case"VariableDeclarator":r(o.id);return;case"FunctionDeclaration":case"FunctionExpression":case"ArrowFunctionExpression":r(o.id);for(let s of o.params??[])r(s);return;case"CatchClause":r(o.param);return;case"ClassDeclaration":case"ClassExpression":r(o.id);return}}),n}function bn(e,t,n){for(let r of e.properties??[]){if(r.type==="RestElement"){let p=r.argument;if(p?.type!=="Identifier"||t.length>0){let d=new Set;j(p,d);for(let m of d)n.bails.push({name:m,reason:"rest"});continue}n.rest={name:p.name,keys:[]};continue}if(r.computed){let p=new Set;j(r.value,p);for(let d of p)n.bails.push({name:d,reason:"computed"});continue}let o=r.key,s=o.type==="Identifier"?o.name:o.value,i=r.value,a;i.type==="AssignmentPattern"&&(a=i.right,i=i.left);let l=[...t,s];if(i.type==="Identifier"){if(a&&!mt(a)){n.bails.push({name:i.name,reason:"unsafe-default"});continue}n.reads.push({name:i.name,path:l,...a?{fallback:a}:{}});continue}if(i.type==="ObjectPattern"){if(a){let p=new Set;j(i,p);for(let d of p)n.bails.push({name:d,reason:"unsafe-default"});continue}bn(i,l,n);continue}let c=new Set;j(i,c);for(let p of c)n.bails.push({name:p,reason:"computed"})}}function Je(e,t){let n={reads:[],bails:[]};if(e?.type!=="ObjectPattern"||(bn(e,[],n),n.rest&&(t?.type!=="BlockStatement"?(n.bails.push({name:n.rest.name,reason:"rest"}),delete n.rest):n.rest.keys=(e.properties??[]).filter(a=>a.type!=="RestElement"&&!a.computed).map(a=>{let l=a.key;return l.type==="Identifier"?l.name:l.value})),n.reads.length===0&&!n.rest))return n;let r=new Set(n.reads.map(a=>a.name));n.rest&&r.add(n.rest.name);let o=so(t),s=io(t,r),i=[];for(let a of n.reads)o.has(a.name)?n.bails.push({name:a.name,reason:"reassigned"}):s.has(a.name)?n.bails.push({name:a.name,reason:"shadowed"}):i.push(a);return n.reads=i,n.rest&&o.has(n.rest.name)?(n.bails.push({name:n.rest.name,reason:"reassigned"}),delete n.rest):n.rest&&s.has(n.rest.name)&&(n.bails.push({name:n.rest.name,reason:"shadowed"}),delete n.rest),n}function _e(e){switch(e){case"rest":return"this rest element cannot be served by splitProps, and copying the props into a plain object would lose the getters";case"computed":return"the property is not known until it runs";case"reassigned":return"the binding is assigned to, and props are read-only";case"shadowed":return"an inner scope binds the same name";case"unsafe-default":return"the default would have to run again on every read"}}var ft=b(()=>{"use strict"});function ve(e,t,n=null){if(!(!e||typeof e!="object"||typeof e.type!="string")&&!e.type.startsWith("TS")&&t(e,n)!==!1)for(let r of Object.keys(e)){if(r==="loc"||r==="leadingComments"||r==="trailingComments")continue;let o=e[r];if(Array.isArray(o))for(let s of o)ve(s,t,e);else o&&typeof o=="object"&&ve(o,t,e)}}function Nn(e){return!!e&&e[0]>="A"&&e[0]<="Z"}function ao(e){let t=[];return ve(e,n=>{if(n.type==="FunctionDeclaration"&&Nn(n.id?.name)){t.push(n);return}if(n.type==="VariableDeclarator"&&Nn(n.id?.name)){let r=n.init;r&&(r.type==="ArrowFunctionExpression"||r.type==="FunctionExpression")&&t.push(r)}}),t}function lo(e){let t=new Set;return ve(e,n=>{n.type==="Identifier"&&t.add(n.name)}),t}function co(e,t){if(!t)return!0;switch(t.type){case"MemberExpression":case"OptionalMemberExpression":return!(t.property===e&&!t.computed);case"ObjectProperty":case"ObjectMethod":case"ClassProperty":case"ClassMethod":return!(t.key===e&&!t.computed);case"LabeledStatement":case"BreakStatement":case"ContinueStatement":return t.label!==e;case"ImportSpecifier":case"ExportSpecifier":return!1;default:return!0}}function gt(e,t,n={}){let r=[],o=[],s=new Set;for(let i of ao(e)){let a=i.params?.[0];if(a?.type!=="ObjectPattern")continue;let l=Je(a,i.body);for(let y of l.bails)o.push({name:y.name,reason:y.reason,message:_e(y.reason),start:a.start});if(l.bails.length>0||l.reads.length===0&&!l.rest)continue;let c=lo(i),p=n.parameterName??"props";for(;c.has(p);)p=`_${p}`;let d=new Map;for(let y of l.reads){let g=`${p}.${y.path.join(".")}`,h=y.fallback;d.set(y.name,h?`(${g} === undefined ? ${t.slice(h.start,h.end)} : ${g})`:g)}let m=a.typeAnnotation;if(r.push({start:a.start,end:m?.start??a.end,code:p}),l.rest){let y=l.rest.keys.map(h=>JSON.stringify(h)).join(", "),g=i.body;r.push({start:g.start+1,end:g.start+1,code:`
2
- const [, ${l.rest.name}] = splitProps(${p}, [${y}]);`}),s.add("splitProps")}let x=[];ve(i.body,(y,g)=>{if(y.type!=="Identifier")return;let h=d.get(y.name);if(!h)return;let E=g?.type==="ObjectProperty"&&g.shorthand&&g.value===y;if(!E&&!co(y,g))return;let C=l.reads.find(R=>R.name===y.name).path;x.push({node:y,parent:E?g:null,text:h,property:C[C.length-1]})});for(let y of x)y.parent?r.push({start:y.parent.start,end:y.parent.end,code:`${y.node.name}: ${y.text}`}):r.push({start:y.node.start,end:y.node.end,code:y.text}),po(y.node,p,y.property)}return{edits:r,diagnostics:o,used:s}}function po(e,t,n){e.type="MemberExpression",e.computed=!1,e.optional=!1,e.object={type:"Identifier",name:t,start:e.start,end:e.start},e.property={type:"Identifier",name:n,start:e.end,end:e.end},delete e.name}function En(e,t="module.tsx",n={}){let r=(0,Sn.parse)(e,{sourceType:"module",plugins:["typescript","jsx"],errorRecovery:!0}),{edits:o,diagnostics:s,used:i}=gt(r.program,e,n),a=new Rn.default(e);for(let l of o)l.start===l.end?a.appendLeft(l.start,l.code):a.overwrite(l.start,l.end,l.code);return i.has("splitProps")&&!re(r.program).has("splitProps")&&a.prepend(`import { splitProps } from ${JSON.stringify(n.runtimeModule??"@fluixi/dom")};
3
- `),{code:a.toString(),map:a.generateMap({source:t,includeContent:!0,hires:!0}),diagnostics:s,rewritten:o.filter(l=>l.code!==(n.parameterName??"props")).length}}var Sn,Rn,ht=b(()=>{"use strict";Sn=require("@babel/parser"),Rn=J(require("magic-string"),1);ft();Ae()});function M(e,t){if(e)switch(e.type){case"Identifier":t.add(e.name);return;case"ObjectPattern":for(let n of e.properties??[])n.type==="RestElement"?M(n.argument,t):M(n.value,t);return;case"ArrayPattern":for(let n of e.elements??[])M(n,t);return;case"AssignmentPattern":M(e.left,t);return;case"RestElement":M(e.argument,t);return}}function xe(e,t){if(!(!e||typeof e!="object"||typeof e.type!="string")){t(e);for(let n of Object.keys(e)){if(n==="loc"||n==="leadingComments"||n==="trailingComments")continue;let r=e[n];if(Array.isArray(r))for(let o of r)xe(o,t);else r&&typeof r=="object"&&xe(r,t)}}}function uo(e,t){if(e.type!=="CallExpression")return;let n=e.callee;if(n?.type!=="Identifier")return;let r=n.name,o=t.primitives.get(r);if(o)return o;let s=L[r];if(s&&!t.shadowed.has(r))return s.returns}function mo(e,t,n){if(Array.isArray(t)){e.type==="ArrayPattern"&&e.elements.forEach((r,o)=>{let s=t[o];r?.type==="Identifier"&&s&&n.set(r.name,s)});return}e.type==="Identifier"&&n.set(e.name,t)}function wn(e){let t=new Set;return xe(e,n=>{switch(n.type){case"VariableDeclarator":M(n.id,t);return;case"FunctionDeclaration":case"FunctionExpression":case"ArrowFunctionExpression":M(n.id,t);for(let r of n.params??[])M(r,t);return;case"ClassDeclaration":case"ClassExpression":M(n.id,t);return;case"ImportSpecifier":case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":M(n.local,t);return;case"CatchClause":M(n.param,t);return}}),t}function kn(e){let t={kinds:new Map,primitives:new Map,shadowed:new Set},n=e;xe(n,r=>{let o=new Set;if(r.type==="VariableDeclarator")M(r.id,o);else if(r.type==="FunctionDeclaration"||r.type==="ClassDeclaration")M(r.id,o);else if(r.type==="ImportDefaultSpecifier"||r.type==="ImportNamespaceSpecifier")M(r.local,o);else if(r.type==="ImportSpecifier")M(r.local,o);else if(r.type==="FunctionExpression"||r.type==="ArrowFunctionExpression"||r.type==="FunctionDeclaration")for(let s of r.params??[])M(s,o);for(let s of o)L[s]&&t.shadowed.add(s)});for(let r of n.body??[])if(r.type==="ImportDeclaration"&&Ot(r.source?.value))for(let o of r.specifiers??[]){if(o.type!=="ImportSpecifier")continue;let s=o.imported,i=s.type==="Identifier"?s.name:s.value,a=Tt[i];a&&t.primitives.set(o.local.name,a)}return xe(n,r=>{if(r.type!=="VariableDeclarator"||!r.init)return;let o=uo(r.init,t);o&&mo(r.id,o,t.kinds)}),t}var yt=b(()=>{"use strict";le()});function vt(e,t){if(!(!e||typeof e!="object"||typeof e.type!="string")){t(e);for(let n of Object.keys(e)){if(n==="loc"||n==="leadingComments"||n==="trailingComments")continue;let r=e[n];if(Array.isArray(r))for(let o of r)vt(o,t);else r&&typeof r=="object"&&vt(r,t)}}}function In(e){let t=[],n=[],r=new Map,o=new Set,{shadowed:s}=kn(e);return vt(e,i=>{if(i.type!=="CallExpression")return;let a=i.callee;if(a?.type!=="Identifier")return;let l=a.name;if(!$t(l))return;if(s.has(l)){o.has(l)||(o.add(l),n.push({name:l,message:`${l} is reserved for the compiler, and this module binds it. The call keeps your binding's meaning; rename it to use the intrinsic.`,start:a.start}));return}let c=L[l];t.push({start:a.start,end:a.end,code:c.export});let p=r.get(c.module)??new Set;p.add(c.export),r.set(c.module,p)}),{edits:t,diagnostics:n,imports:r}}function Cn(e,t){let n=[];for(let[r,o]of[...e.imports].sort(([s],[i])=>s.localeCompare(i))){let s=[...o].filter(i=>!t.has(i)).sort();s.length&&n.push(`import { ${s.join(", ")} } from ${JSON.stringify(r)};`)}return n.length?`${n.join(`
1
+ "use strict";var dr=Object.create;var we=Object.defineProperty;var fr=Object.getOwnPropertyDescriptor;var mr=Object.getOwnPropertyNames;var gr=Object.getPrototypeOf,hr=Object.prototype.hasOwnProperty;var N=(e,t)=>()=>(e&&(t=e(e=0)),t);var ae=(e,t)=>{for(var n in t)we(e,n,{get:t[n],enumerable:!0})},Ft=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of mr(t))!hr.call(e,o)&&o!==n&&we(e,o,{get:()=>t[o],enumerable:!(r=fr(t,o))||r.enumerable});return e};var _=(e,t,n)=>(n=e!=null?dr(gr(e)):{},Ft(t||!e||!e.__esModule?we(n,"default",{value:e,enumerable:!0}):n,e)),yr=e=>Ft(we({},"__esModule",{value:!0}),e);function Jt(e,t){return e.replace(/\$(\d+)/g,(n,r)=>t[Number(r)]??n)}function xr(e,t){return typeof t=="string"?{module:t,export:e}:t}function X(e=[]){let t=new Map,n=[],r=[];for(let a of e){if(!vr(a)){r.push(a);continue}for(let[s,l]of Object.entries(a.components)){let p=xr(s,l),c=t.get(s);if(c&&c.module!==p.module){let u=n.find(d=>d.name===s);u?u.modules.push(p.module):n.push({name:s,modules:[c.module,p.module]});continue}t.set(s,p)}}let o=new Map;return{resolve:a=>{if(o.has(a))return o.get(a);let s=t.get(a);if(!s)for(let l of r){let p=a.match(new RegExp(l.match.source,l.match.flags.replace("g","")));if(p){s={module:Jt(l.module,p),export:l.export?Jt(l.export,p):a};break}}return o.set(a,s),s},names:()=>[...t.keys()],conflicts:()=>n}}var vr,le=N(()=>{"use strict";vr=e=>"components"in e});function ke(e={}){let{controlFlowModule:t="@fluixi/dom",coreModule:n="@fluixi/core",routerModule:r="@fluixi/core/router"}=e,o={};for(let i of ce)o[i]=t;for(let i of Y)o[i]=n;for(let i of H)o[i]=r;return o}var ce,Y,H,vi,et,pe=N(()=>{"use strict";ce=["Show","For","Index","Switch","Match","Portal","Dynamic","ErrorBoundary"],Y=["Suspense","SuspenseList","Await"],H=["Router","Outlet","Redirect","Link"],vi=[...ce,...Y,...H],et=new Set([...ce,...Y])});function Bt(e){return Nr.test(e)}function Ie(e){return Object.prototype.hasOwnProperty.call(D,e)}function Xt(e){return br.includes(e)}var Z,D,_t,br,Nr,re=N(()=>{"use strict";Z="@fluixi/reactive/signal",D={$signal:{export:"signal",module:Z,returns:"signal-handle"},$memo:{export:"memo",module:Z,returns:"memo-handle"},$effect:{export:"effect",module:Z,returns:"effect"},$store:{export:"store",module:"@fluixi/reactive/store",returns:"store-handle"},$resource:{export:"resource",module:Z,returns:"resource-handle"},$selector:{export:"createSelector",module:Z,returns:"memo-accessor"},$deferred:{export:"createDeferred",module:Z,returns:"memo-accessor"},$untrack:{export:"untrack",module:Z,returns:"plain"},$untrackStore:{export:"untrackStore",module:"@fluixi/reactive/store",returns:"plain"}},_t={signal:"signal-handle",memo:"memo-handle",effect:"effect",store:"store-handle",createSignal:["signal-accessor","signal-setter"],createMemo:"memo-accessor",createEffect:"effect",createRenderEffect:"effect",createStore:"reactive-object",resource:"resource-handle",createResource:"reactive-object",createSelector:"memo-accessor",createDeferred:"memo-accessor"},br=["@fluixi/reactive","@fluixi/reactive/signal","@fluixi/reactive/store","@fluixi/core"],Nr=new RegExp(`\\$(?:${Object.keys(D).map(e=>e.slice(1)).join("|")})\\s*\\(`)});function nt(e){return e.startsWith("load:")}function Te(e,t){let n=e.slice(5);if(!zt.has(n))throw new V(`Unknown load strategy 'load:${n}'. Expected one of ${[...zt].join(", ")}.`);switch(n){case"eager":return Ce;case"idle":return{kind:"idle"};case"never":return{kind:"never"};case"visible":return t?{kind:"visible",rootMargin:t}:{kind:"visible"};case"interaction":return{kind:"interaction",events:t?$r(t):[...Tr]};case"media":if(!t)throw new V(`'load:media' needs a query, e.g. load:media="(min-width: 1024px)".`);return{kind:"media",query:t};default:throw new V(`Unhandled load strategy '${n}'.`)}}function $r(e){let t=e.split(/[\s,]+/).map(n=>n.trim()).filter(Boolean);if(t.length===0)throw new V("'load:interaction' was given no event names.");return t}function Q(e){return e.kind!=="eager"&&e.kind!=="never"}var Ce,Tr,zt,V,ee=N(()=>{"use strict";Ce={kind:"eager"},Tr=["pointerdown","focusin","keydown"],zt=new Set(["eager","idle","visible","interaction","media","never"]),V=class extends Error{}});function U(e,t={}){let{resolver:n,isBound:r,modules:o,strategyFor:i}=t,a=ke(o),s=new Map,l=new Set,p=u=>{let{name:d}=u;if(!d||d.includes(".")||r?.(d))return;let x=c(d);if(!x){l.add(d);return}let g=x.origin==="builtin"&&et.has(d)?Ce:i?.(u)??Ce;u.source={...x,loading:g},s.set(d,u.source)},c=u=>{if(et.has(u))return{module:a[u],export:u,origin:"builtin"};let d=n?.resolve(u);if(d)return{module:d.module,export:d.export,origin:"rule"};if(H.includes(u))return{module:a[u],export:u,origin:"builtin"}};return $e(e,u=>{u.kind==="component"&&p(u)}),{resolved:s,unresolved:[...l]}}function $e(e,t){let n=Array.isArray(e)?e:[e];for(let r of n){t(r);let o=r.children;o&&$e(o,t)}}var ue=N(()=>{"use strict";pe();ee()});function z(e){let t=[];$e(e,i=>{i.kind==="component"&&i.source&&t.push(i)});let n=new Set,r=new Set;for(let i of t){let{module:a,loading:s}=i.source;s.kind==="eager"&&n.add(a),s.kind==="never"&&r.add(a)}let o=new Map;for(let i of t){let a=i.source;Q(a.loading)&&n.has(a.module)&&(a.loading={kind:"eager"},o.set(a.module,(o.get(a.module)??0)+1))}return{collapsed:o,conflicted:[...r].filter(i=>n.has(i))}}var Me=N(()=>{"use strict";ee();ue()});function rt(e){return Pr.has(e)}function qt(e){return Gt[e]??e}function de(e){return e.kind!=="attr"||e.expr!==void 0||e.name.includes(":")?!1:!Or.has(e.name)}function ot(e){if(!e.static||rt(e.tag))return!1;for(let t of e.props)if(!de(t))return!1;for(let t of e.children)if(t.kind!=="text"&&!(t.kind==="element"&&ot(t)))return!1;return!0}function fe(e){let t=e.props.map(Lr).filter(Boolean).join(""),n=`<${e.tag}${t}>`;return Mr.has(e.tag)?n:`${n}${e.children.map(Dr).join("")}</${e.tag}>`}function Dr(e){if(e.kind==="text")return jr(e.value);if(e.kind!=="element")throw new Error(`serializeStatic: unexpected ${e.kind}`);return fe(e)}function Lr(e){let t=Gt[e.name]??e.name,n=e.literal;return n===!0||n===void 0?` ${t}`:n===!1||n===null?"":` ${t}="${Ar(String(n))}"`}function Ar(e){return e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function jr(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function it(e){let t=[],n,r=o=>{n??=o.at?.file,t.push(o.at?.line??0,o.at?.column??0);for(let i of o.children)i.kind==="element"&&r(i)};return r(e),n&&t.some(o=>o!==0)?{file:n,pos:t}:void 0}var Mr,Gt,Or,Pr,st=N(()=>{"use strict";Mr=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),Gt={className:"class",htmlFor:"for"},Or=new Set(["innerHTML","outerHTML","innerText","textContent","value","checked","selected","muted","defaultValue","defaultChecked","children","ref"]),Pr=new Set(["script","style","textarea","title"])});function Pe(e){return e.kind==="expr"||e.kind==="component"||e.kind==="control"}function _r(e){return e.kind==="text"||e.kind==="element"&&Kt(e)}function Kt(e){return e.svg||rt(e.tag)||!e.props.every(t=>de(t))?!1:e.children.every(t=>_r(t)||Pe(t))}function Oe(e){if(Pe(e))return!0;let t=e.children;return t?t.some(Oe):!1}function Yt(e){for(let t=0;t<e.children.length;t++){let n=e.children[t];if(n.kind==="text"&&(n.value===""||e.children[t+1]?.kind==="text"))return!1}return e.children.every(t=>t.kind!=="element"||Yt(t))}function Zt(e){if(!Kt(e)||!Yt(e)||!e.children.some(Oe))return null;let t=[],n=[],r=0,o=a=>{let s=`_n$${r++}`;return t.push({ref:s,expr:a}),s};return i(e,"_el$"),{html:Br(e),tag:e.tag,steps:t,holes:n};function i(a,s){let l=-1;a.children.forEach((c,u)=>{Oe(c)&&(l=u)});let p=null;for(let c=0;c<=l;c++){let u=a.children[c],d=p?`${p}.nextSibling`:`${s}.firstChild`;if(Pe(u)){let g=o(d),h=o(`holeEnd(${g})`);n.push({parentRef:s,startRef:g,endRef:h,node:u}),p=h;continue}let x=o(d);u.kind==="element"&&Oe(u)&&i(u,x),p=x}}}function Br(e){return fe(Qt(e)).split(en).join(Fr+Jr)}function Qt(e){return{...e,children:e.children.map(t=>Pe(t)?{kind:"text",value:en}:t.kind==="element"?Qt(t):t)}}var Fr,Jr,en,tn=N(()=>{"use strict";st();Fr="<!--fx-->",Jr="<!--fx/-->";en="\0fx-hole\0"});var at,ji,nn=N(()=>{"use strict";at={version:1,module:"@fluixi/dom",symbols:["createNativeElement","insert","spread","setAttribute","delegateEvents","createComponent","createMemo","untrack","Show","For","Index","Switch","Match","Dynamic","ErrorBoundary"]},ji={version:2,module:"@fluixi/dom",symbols:[...at.symbols,"template","cloneTemplate","walk"]}});function $(e,t){if(e)switch(e.type){case"Identifier":t.add(e.name);return;case"ObjectPattern":for(let n of e.properties??[])n.type==="RestElement"?$(n.argument,t):$(n.value,t);return;case"ArrayPattern":for(let n of e.elements??[])$(n,t);return;case"AssignmentPattern":$(e.left,t);return;case"RestElement":$(e.argument,t);return}}function me(e,t){if(!(!e||typeof e!="object"||typeof e.type!="string")){t(e);for(let n of Object.keys(e)){if(n==="loc"||n==="leadingComments"||n==="trailingComments")continue;let r=e[n];if(Array.isArray(r))for(let o of r)me(o,t);else r&&typeof r=="object"&&me(r,t)}}}function Xr(e,t){if(e.type!=="CallExpression")return;let n=e.callee;if(n?.type!=="Identifier")return;let r=n.name,o=t.primitives.get(r);if(o)return o;let i=D[r];if(i&&!t.shadowed.has(r))return i.returns}function Hr(e,t,n){if(Array.isArray(t)){e.type==="ArrayPattern"&&e.elements.forEach((r,o)=>{let i=t[o];r?.type==="Identifier"&&i&&n.set(r.name,i)});return}e.type==="Identifier"&&n.set(e.name,t)}function rn(e){let t=new Set;return me(e,n=>{switch(n.type){case"VariableDeclarator":$(n.id,t);return;case"FunctionDeclaration":case"FunctionExpression":case"ArrowFunctionExpression":$(n.id,t);for(let r of n.params??[])$(r,t);return;case"ClassDeclaration":case"ClassExpression":$(n.id,t);return;case"ImportSpecifier":case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":$(n.local,t);return;case"CatchClause":$(n.param,t);return}}),t}function De(e){let t={kinds:new Map,primitives:new Map,shadowed:new Set},n=e;me(n,r=>{let o=new Set;if(r.type==="VariableDeclarator")$(r.id,o);else if(r.type==="FunctionDeclaration"||r.type==="ClassDeclaration")$(r.id,o);else if(r.type==="ImportDefaultSpecifier"||r.type==="ImportNamespaceSpecifier")$(r.local,o);else if(r.type==="ImportSpecifier")$(r.local,o);else if(r.type==="FunctionExpression"||r.type==="ArrowFunctionExpression"||r.type==="FunctionDeclaration")for(let i of r.params??[])$(i,o);for(let i of o)D[i]&&t.shadowed.add(i)});for(let r of n.body??[])if(r.type==="ImportDeclaration"&&Xt(r.source?.value))for(let o of r.specifiers??[]){if(o.type!=="ImportSpecifier")continue;let i=o.imported,a=i.type==="Identifier"?i.name:i.value,s=_t[a];s&&t.primitives.set(o.local.name,s)}return me(n,r=>{if(r.type!=="VariableDeclarator"||!r.init)return;let o=Xr(r.init,t);o&&Hr(r.id,o,t.kinds)}),t}var Le=N(()=>{"use strict";re()});function ln(e){for(let t of an)if(e.includes(t))return!0;return e.includes("$signal")||e.includes("$memo")||e.includes("$effect")||e.includes("$store")}function Gr(e,t){return!t||e.type==="BlockStatement"?!1:zr.has(t.type)}function on(e){return e.type==="ExportNamedDeclaration"||e.type==="ExportDefaultDeclaration"}function qr(e){return e.type.endsWith("Statement")||e.type==="VariableDeclaration"}function lt(e,t,n=[]){if(!(!e||typeof e.type!="string")){t(e,n),n.push(e);for(let r of Object.keys(e)){if(r==="loc"||r==="parent")continue;let o=e[r];if(Array.isArray(o))for(let i of o)lt(i,t,n);else o&&typeof o.type=="string"&&lt(o,t,n)}n.pop()}}function Kr(e){let t=e[e.length-1];if(t?.type!=="VariableDeclarator")return;let n=t.id;if(n?.type==="Identifier")return n.name;if(n?.type==="ArrayPattern"){let r=n.elements?.[0];if(r?.type==="Identifier")return r.name}}function Yr(e){if(e.type==="FunctionDeclaration"){let t=e.id?.name;return t&&t[0]===t[0]?.toUpperCase()?t:void 0}if(e.type==="VariableDeclarator"){let t=e.id,n=e.init;if(t?.type!=="Identifier"||!n||n.type!=="ArrowFunctionExpression"&&n.type!=="FunctionExpression")return;let r=t.name;return r[0]===r[0]?.toUpperCase()?r:void 0}}function cn(e,t){let n=[],r=new Set,{primitives:o,shadowed:i}=De(e);return lt(e,(a,s)=>{let l=Yr(a);if(l){let b=a.loc?.start,y=a.end;for(let k=s.length-1;k>=0;k--){let I=s[k];if(I.type!=="VariableDeclaration"&&I.type!=="ExportNamedDeclaration"&&I.type!=="ExportDefaultDeclaration")break;y=I.end}b&&n.push({start:y,end:y,code:`;globalThis.${Wr}?.(${JSON.stringify(l)},${JSON.stringify(t)},${b.line},${b.column});`})}if(a.type!=="CallExpression")return;let p=a.callee;if(p?.type!=="Identifier")return;let c=p.name,u=Ie(c)&&!i.has(c)?D[c]:void 0,d=o.has(c)||an.has(c);if(!u&&!d)return;let x=a.loc?.start;if(!x)return;let g,h,v=-1;for(let b=s.length-1;b>=0;b--)if(qr(s[b])||on(s[b])){g=s[b],h=s[b-1],v=b;break}if(!g)return;let R=g.start,C=g.end;for(let b=v-1;b>=0&&on(s[b]);b--)R=s[b].start,C=s[b].end,h=s[b-1];if(r.has(R))return;r.add(R);let E=Kr(s),S=[JSON.stringify(t),String(x.line),String(x.column),E?JSON.stringify(E):void 0].filter(b=>b!==void 0).join(","),w=`globalThis.${ct}?.(${S});`;if(Gr(g,h)){n.push({start:R,end:R,code:`{${w}`}),n.push({start:C,end:C,code:"}"});return}n.push({start:R,end:R,code:w})}),{edits:n,marked:n.length}}var ct,Wr,Vr,ge,Ur,sn,an,zr,pt=N(()=>{"use strict";re();Le();ct="__fx_source",Wr="__fx_component",Vr="__fx_hole",ge=(e,t,n,r)=>`(globalThis.${Vr} ?? ((f) => f))(${e},${t},${n}${r===void 0?"":`,${JSON.stringify(r)}`})`,Ur="__fx_props",sn=(e,t)=>`(globalThis.${Ur} ?? ((p) => p))(${e},${JSON.stringify(t)})`,an=new Set(["signal","memo","effect","store","resource","watch","createSignal","createMemo","createEffect","createStore","createResource"]);zr=new Set(["IfStatement","ForStatement","ForInStatement","ForOfStatement","WhileStatement","DoWhileStatement","LabeledStatement","WithStatement"])});function Qr(e){return/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(e)}function dn(e){return Qr(e)?e:JSON.stringify(e)}function eo(e){if(e.expr!==void 0){if(e.name==="ref"&&e.at)return ge(`(${e.expr})`,e.at.line,e.at.column,e.expr);if(!e.reactive)return`(${e.expr})`;let t=`() => (${e.expr})`;return e.at?ge(t,e.at.line,e.at.column,e.directive):t}return JSON.stringify(e.literal??!0)}function to(e){return e.expr!==void 0?`(${e.expr})`:JSON.stringify(e.literal??!0)}function no(e,t,n){let r=e.filter(s=>s.kind==="spread"),i=e.filter(s=>s.kind!=="spread").map(s=>`${dn(s.name)}: ${eo(s)}`);t!=null&&i.push(`children: ${t}`);let a=`{ ${i.join(", ")} }`;return r.length>0?(n.add("mergeProps"),`mergeProps(${r.map(s=>s.expr).join(", ")}, ${a})`):a}function pn(e,t){return t?ge(e,t.line,t.column):e}function fn(e,t,n){return e.length===1?he(e[0],t,n):`[${e.map(r=>he(r,t,n)).join(", ")}]`}function un(e,t,n,r,o,i){r.add("createMemo"),r.add("createComponent");let a=t.filter(d=>d.kind==="spread"),s=t.filter(d=>d.kind!=="spread"),l=s.map(d=>`get ${dn(d.name)}() { return ${to(d)}; }`);n.length>0&&l.push(`get children() { return ${fn(n,r,o)}; }`);let p=`{ ${l.join(", ")} }`;a.length>0&&(r.add("mergeProps"),p=`mergeProps(${a.map(d=>d.expr).join(", ")}, ${p})`);let c={};for(let d of s)d.at&&(c[d.name]=[d.at.line,d.at.column]);return Object.keys(c).length&&(p=sn(p,c)),`createMemo((${i?`globalThis.${ct}?.(${JSON.stringify(i.file)},${i.line},${i.column},${JSON.stringify(e)}), `:""}() => createComponent(${e}, ${p})))`}function ro(e,t){let n=qt(t.name),r=t.literal;return r===!0||r===void 0?`${e}.setAttribute(${JSON.stringify(n)}, "");`:r===!1||r===null?"":`${e}.setAttribute(${JSON.stringify(n)}, ${JSON.stringify(String(r))});`}function he(e,t,n){switch(e.kind){case"text":return JSON.stringify(e.value);case"expr":{if(!e.reactive)return`(${e.code})`;let r=`() => (${e.code})`;return e.at?ge(r,e.at.line,e.at.column):r}case"fragment":return e.children.length===0?"null":fn(e.children,t,n);case"component":return pn(un(e.name,e.props,e.children,t,n,e.at),e.bindAt??e.at);case"control":{let r=Zr[e.control]??e.control;return t.add(r),pn(un(r,e.props,e.children,t,n),e.bindAt)}case"element":{if(n&&e.static&&!e.svg&&ot(e)){t.add("templateNode");let s=`_tmpl$${n.length}`;n.push({id:s,html:fe(e),tag:e.tag,svg:!1});let l=it(e);return l?`templateNode(${s}, ${JSON.stringify(e.tag)}, false, false, ${JSON.stringify(l)})`:`templateNode(${s}, ${JSON.stringify(e.tag)})`}if(n&&mn){let s=Zt(e);if(s){t.add("templateNode"),t.add("insert"),t.add("holeEnd"),t.add("holeContent"),t.add("holeScope");let l=`_tmpl$${n.length}`;n.push({id:l,html:s.html,tag:s.tag,svg:!1});let p=it(e),c=[`const _el$ = templateNode(${l}, ${JSON.stringify(s.tag)}, true${p?`, false, ${JSON.stringify(p)}`:""});`];for(let u of s.steps)c.push(`const ${u.ref} = ${u.expr};`);for(let u of s.holes)c.push(`insert(${u.parentRef}, holeScope(${u.startRef}, () => (${he(u.node,t,n)})), ${u.endRef}, holeContent(${u.startRef}, ${u.endRef}));`);return c.push("return _el$;"),`(() => { ${c.join(" ")} })()`}}t.add("createNativeElement");let r=JSON.stringify(e.tag),o="_el$",i=[],a=e.at?`${r}, ${e.svg}, ${JSON.stringify(e.at)}`:e.svg?`${r}, true`:r;if(i.push(`const ${o} = createNativeElement(${a});`),e.props.length>0)if(!e.svg&&e.props.every(de))for(let s of e.props)i.push(ro(o,s));else{t.add("spread");let s=e.svg?", isSVG: true":"";i.push(`spread({ element: ${o}, props: ${no(e.props,null,t)}${s} });`)}for(let s of e.children){t.add("insert");let l=he(s,t,n),p=s.kind==="expr"&&s.reactive||s.kind==="component"||s.kind==="control";i.push(p?`insert(${o}, ${l}, null);`:`insert(${o}, ${l});`)}return i.push(`return ${o};`),`(() => { ${i.join(" ")} })()`}}}function te(e,t){if(!t||t.length===0)return e;let n=new Map(t.map(r=>[r.id,JSON.stringify(r.html)]));return e.replace(/_tmpl\$\d+/g,r=>n.get(r)??r)}var Zr,mn,L,oe=N(()=>{"use strict";tn();st();nn();pt();Zr={show:"Show",for:"For",index:"Index",switch:"Switch",match:"Match",dynamic:"Dynamic",errorBoundary:"ErrorBoundary",suspense:"Suspense"};mn=!1;L={name:"imperative",contract:at,emit(e,t){let n=new Set,r=t?.templateClone!==!1?[]:void 0;return mn=t?.partialTemplates===!0,{code:he(e,n,r),imports:Array.from(n),templates:r}}}});function ye(e){let t=e.split(/\r\n|\n|\r/),n=0;for(let o=0;o<t.length;o++)/[^ \t]/.test(t[o])&&(n=o);let r="";for(let o=0;o<t.length;o++){let i=t[o].replace(/\t/g," ");o!==0&&(i=i.replace(/^ +/,"")),o!==t.length-1&&(i=i.replace(/ +$/,"")),i&&(o!==n&&(i+=" "),r+=i)}return r}var ut=N(()=>{"use strict"});function oo(e){return e.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}function hn(e){return e.charAt(0).toUpperCase()+e.slice(1)}function Ae(e,t,n,r={}){let{root:o}=(0,yn.parseTemplate)(e,{svg:r.svg});return new dt(t,n,r.sourceFile,r.positionAt).lowerRoot(o.children)}var yn,gn,dt,ft=N(()=>{"use strict";yn=require("@fluixi/template-parser");ee();oe();ut();gn=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]);dt=class{constructor(t,n,r,o){this.holes=t;this.used=n;this.sourceFile=r;this.positionAt=o}tagAt(t){let n=t.loc?.start;if(!this.sourceFile||!this.positionAt||n==null)return;let{line:r,column:o}=this.positionAt(n);return{file:this.sourceFile,line:r,column:o}}hole(t){return this.holes[t]??{code:"undefined",reactive:!1}}emit(t){let{code:n,imports:r,templates:o}=L.emit(t,{});for(let i of r)this.used.add(i);return te(n,o)}lowerRoot(t){let n=this.lowerChildren(t);return n.length===1?n[0]:{kind:"fragment",children:n}}lowerChildren(t){let n=[];for(let r=0;r<t.length;r++){let o=t[r];if(o.kind==="Element"||o.kind==="Component"){let a=o.attributes.find(s=>s.kind==="IfDirective");if(a&&a.kind==="IfDirective"){let s=r+1;s<t.length&&this.isBlankText(t[s])&&s++;let l=t[s],p=l&&(l.kind==="Element"||l.kind==="Component")&&l.attributes.some(c=>c.kind==="ElseDirective");n.push(this.lowerIf(o,a.hole,p?l:null)),p&&(r=s);continue}if(o.attributes.some(s=>s.kind==="EachDirective")){n.push(this.lowerEach(o));continue}}let i=this.lowerNode(o);i&&n.push(i)}return n}isBlankText(t){return t.kind==="Text"&&!t.raw&&ye(t.value)===""}lowerNode(t){switch(t.kind){case"Text":{if(t.raw)return{kind:"text",value:t.value};let n=ye(t.value);return n?{kind:"text",value:n}:null}case"Comment":return null;case"Expression":{let n=this.hole(t.hole);return{kind:"expr",code:n.code,reactive:n.reactive,...n.at?{at:n.at}:{}}}case"Fragment":return{kind:"fragment",children:this.lowerChildren(t.children)};case"Element":return this.lowerElement(t);case"Component":return this.lowerComponent(t);default:return null}}lowerElement(t){let n=t.attributes.find(o=>o.kind==="Attribute"&&o.name==="is");if(t.tag==="component"&&n&&n.value&&n.value.kind==="hole"){let o=t.attributes.filter(a=>a!==n),i=this.lowerComponent({...t,kind:"Component",tag:"Dynamic",tagHole:null,attributes:o});return i.props.unshift({name:"component",kind:"attr",expr:`() => (${this.hole(n.value.hole).code})`}),i}let r=this.tagAt(t);return{kind:"element",tag:t.tag,svg:t.namespace==="svg",props:this.lowerAttributes(t.attributes),children:this.lowerChildren(t.children),static:!1,...r?{at:r}:{}}}lowerComponent(t){let n=t.tagHole!=null?this.hole(t.tagHole).code:t.tag,r=this.lowerAttributes(t.attributes),{slots:o,rest:i}=this.partitionSlots(t.children);for(let[c,u]of o){let d=u.length===1?u[0]:{kind:"fragment",children:u},x={name:c,kind:"attr",expr:this.emit(d),jsxElement:!0},g=r.findIndex(h=>h.name===c);g>=0?r[g]=x:r.push(x)}let a=t.attributes.find(c=>c.kind==="LoadDirective"),s=a?Te(`load:${a.strategy}`,a.modifier):void 0,l=r.find(c=>c.at&&c.reactive)?.at,p=this.tagAt(t);return{kind:"component",name:n,props:r,children:this.lowerChildren(i),...p?{at:p}:{},...l?{bindAt:l}:{},...s?{load:s}:{}}}partitionSlots(t){let n=new Map,r=[];for(let o of t){if(o.kind==="Element"||o.kind==="Component"){let i=o.attributes.find(a=>a.kind==="Attribute"&&a.name==="slot");if(i&&i.value&&i.value.kind==="static"){let a={...o,attributes:o.attributes.filter(p=>p!==i)},s=a.kind==="Element"?this.lowerElement(a):this.lowerComponent(a),l=n.get(i.value.value)??[];l.push(s),n.set(i.value.value,l);continue}}r.push(o)}return{slots:n,rest:r}}lowerIf(t,n,r){let o=this.hole(n),i=[{name:"when",kind:"attr",expr:o.code,reactive:o.reactive,...o.at?{at:o.at}:{}}];if(r){let l=this.stripAndLower(r,p=>p.kind==="ElseDirective");i.push({name:"fallback",kind:"attr",expr:this.emit(l),jsxElement:!0})}let a=this.stripAndLower(t,l=>l.kind==="IfDirective"),s=this.tagAt(t);return{kind:"component",name:"Show",props:i,children:[a],...s?{at:s}:{},...o.at?{bindAt:o.at}:{}}}lowerEach(t){let n=t.attributes.find(p=>p.kind==="EachDirective");if(!n||n.kind!=="EachDirective")return this.lowerNode(t);let r=this.hole(n.hole),o=[{name:"each",kind:"attr",expr:r.code,reactive:r.reactive,...r.at?{at:r.at}:{}}];if(n.key){let p="static"in n.key?`(item) => item[${JSON.stringify(n.key.static)}]`:this.hole(n.key.hole).code;o.push({name:"by",kind:"attr",expr:p})}let i=this.itemArrow(t),a;if(i){let p={kind:"expr",code:i.body,reactive:i.bodyReactive},c=this.rebuildWithChildren(t,[p]);a=`(${i.params.join(", ")}) => (${this.emit(c)})`}else{let p=this.stripAndLower(t,c=>c.kind==="EachDirective");a=`() => (${this.emit(p)})`}let s=[{kind:"expr",code:a,reactive:!1}],l=this.tagAt(t);return{kind:"component",name:"For",props:o,children:s,...l?{at:l}:{},...r.at?{bindAt:r.at}:{}}}itemArrow(t){let n=t.children.filter(r=>!this.isBlankText(r));return n.length!==1||n[0].kind!=="Expression"?null:this.hole(n[0].hole).arrow??null}stripAndLower(t,n){let r={...t,attributes:t.attributes.filter(o=>!n(o))};return r.kind==="Element"?this.lowerElement(r):this.lowerComponent(r)}rebuildWithChildren(t,n){let r=this.lowerAttributes(t.attributes.filter(o=>o.kind!=="EachDirective"));if(t.kind==="Element"){let o=this.tagAt(t);return{kind:"element",tag:t.tag,svg:t.namespace==="svg",props:r,children:n,static:!1,...o?{at:o}:{}}}return{kind:"component",name:t.tag,props:r,children:n}}lowerAttributes(t){let n=[],r=[],o=!1,i,a=[],s=!1,l,p=[];for(let c of t)switch(c.kind){case"IfDirective":case"EachDirective":case"ElseDirective":break;case"Attribute":n.push(this.plainAttr(c));break;case"PropertyBinding":n.push({name:c.name,kind:"prop",expr:this.hole(c.hole).code,reactive:this.hole(c.hole).reactive,...this.hole(c.hole).at?{at:this.hole(c.hole).at}:{}});break;case"EventBinding":n.push(this.eventProp(c));break;case"RefBinding":n.push({name:"ref",kind:"ref",expr:this.hole(c.hole).code,reactive:this.hole(c.hole).reactive,...this.hole(c.hole).at?{at:this.hole(c.hole).at}:{}});break;case"Spread":n.push({name:"",kind:"spread",expr:this.hole(c.hole).code});break;case"ClassDirective":{let u=this.hole(c.hole);r.push(`${JSON.stringify(c.name)}: ${u.code}`),o=o||u.reactive,i??=u.at;break}case"StyleDirective":{let u=this.hole(c.hole);a.push(`${JSON.stringify(c.name)}: ${u.code}`),s=s||u.reactive,l??=u.at;break}case"BindDirective":n.push(...this.bindProps(c.name,this.hole(c.hole)));break;case"UseDirective":{let u=c.name??(c.hole!=null?this.hole(c.hole).code:null);if(!u)break;p.push(c.name!=null&&c.hole!=null?`[${u}, () => (${this.hole(c.hole).code})]`:`[${u}]`);break}}return r.length>0&&n.push({name:"classList",kind:"attr",expr:`{ ${r.join(", ")} }`,reactive:o,...i?{at:i}:{}}),a.length>0&&n.push({name:"style",kind:"attr",expr:`{ ${a.join(", ")} }`,reactive:s,...l?{at:l}:{}}),p.length>0&&n.push({name:"use",kind:"attr",expr:`[${p.join(", ")}]`}),n}eventProp(t){let n=t.name.toLowerCase(),r=this.hole(t.hole).code;if(!(t.syntax==="colon"||t.modifiers.length>0))return{name:"on"+hn(t.name),kind:"event",event:{name:n,delegated:gn.has(n)},expr:r};let i=this.wrapHandler(r,t.modifiers),a=this.eventOptions(t.modifiers),s=a?`[${i}, ${a}]`:i;return{name:"on:"+n,kind:"attr",expr:s}}wrapHandler(t,n){let r=n.includes("self")?"if (e.target !== e.currentTarget) return; ":"",o=[];return n.includes("prevent")&&o.push("e.preventDefault();"),n.includes("stop")&&o.push("e.stopPropagation();"),!r&&o.length===0?t:`(e) => { ${r}${o.join(" ")} return (${t})(e); }`}eventOptions(t){let n=[];return t.includes("capture")&&n.push("capture: true"),t.includes("once")&&n.push("once: true"),t.includes("passive")&&n.push("passive: true"),n.length?`{ ${n.join(", ")} }`:null}bindProps(t,n){let r=n.code,o=t==="checked",i=o?"change":"input",a=o?"checked":"value";this.used.add("bindPair");let s=`bindPair(${r})`;return[{name:t,kind:"attr",expr:`${s}[0]()`,reactive:!0,directive:`bind:${t}`,...n.at?{at:n.at}:{}},{name:"on"+hn(i),kind:"event",event:{name:i,delegated:gn.has(i)},expr:`(e) => ${s}[1](e.target.${a})`}]}plainAttr(t){let n=t.value,r=t.name;t.name==="class"?r=n&&n.kind==="hole"&&this.hole(n.hole).object?"classList":"className":t.name==="html"&&(r="innerHTML");let i={name:r,kind:"attr"};if(n==null)return i.literal=!0,i;if(n.kind==="static")return i.literal=n.value,i;if(n.kind==="hole"){let p=this.hole(n.hole);return i.expr=p.code,i.reactive=p.reactive,p.at&&(i.at=p.at),i}let a=!1,s,l=n.parts.map(p=>{if("text"in p)return oo(p.text);let c=this.hole(p.hole);return a=a||c.reactive,s??=c.at,"${"+c.code+"}"}).join("");return i.expr="`"+l+"`",i.reactive=a,s&&(i.at=s),i}}});function so(e){return io(e,{concise:!0}).code}function ao(e,t,n){let r={code:Fe(e,t,n),reactive:gt(e)};if(je.types.isArrowFunctionExpression(e)&&!je.types.isBlockStatement(e.body)){let o=e.body;r.arrow={params:e.params.map(i=>so(i)),body:Fe(o,t,n),bodyReactive:gt(o)}}return je.types.isObjectExpression(e)&&(r.object=!0),r}function vn(e,t,n={}){let r=e.quasi,o=r.expressions.map(i=>ao(i,t,n.onNested));return Ae(lo(r),o,t,n)}function lo(e){let t=[];return e.quasis.forEach((n,r)=>{let o=n.value.cooked??n.value.raw;if(t.push({kind:"static",text:o,start:n.start??0}),r<e.expressions.length){let i=e.expressions[r];t.push({kind:"hole",index:r,start:i.start??0,end:i.end??0})}}),t}var je,mt,io,xn=N(()=>{"use strict";je=require("@babel/core"),mt=_(require("@babel/generator"),1);ft();ht();io=mt.default.default??mt.default});function co(e){switch(e.kind){case"event":return"event";case"ref":return"ref";case"spread":return"spread";case"class":case"style":return"class-or-style-directive";case"attr":case"prop":return e.reactive?"reactive-prop":e.expr!==void 0?"expression-prop":void 0;default:return"expression-prop"}}function G(e){let t=[],n=new Map,r=o=>{switch(o.kind){case"text":return!0;case"expr":return!1;case"component":case"control":for(let i of o.children)r(i);return!1;case"fragment":for(let i of o.children)r(i);return!1;case"element":{let i=!0;for(let s of o.children)r(s)||(i=!1);let a;for(let s of o.props)if(a=co(s),a)break;return!a&&!i&&(a=po(o)),o.static=!a,a?n.set(o,a):t.push(o),o.static}default:return!1}};for(let o of Array.isArray(e)?e:[e])r(o);return{staticElements:t,reasons:n}}function po(e){for(let t of e.children){if(t.kind==="expr")return"expression-child";if(t.kind==="component")return"component-child";if(t.kind==="control")return"control-child";if(t.kind==="element"&&!t.static||t.kind==="fragment")return"expression-child"}return"expression-child"}var ve=N(()=>{"use strict"});function Je(e,t=new Set,n={}){let r=vn(e,t,n);return G(r),r}var yt=N(()=>{"use strict";xn();ve()});function q(e){switch(e.kind){case"call":return!0;case"member":return e.property!==uo;case"compound":return e.parts.some(q);case"opaque":return!1}}var uo,_e=N(()=>{"use strict";uo="children"});function F(e){if(!e)return{kind:"opaque"};if(fo.has(e.type))return{kind:"call"};if(mo.has(e.type)){let t=e.property;return{kind:"member",property:!(e.computed===!0)&&t?.type==="Identifier"?t.name:null}}return e.type==="ConditionalExpression"?{kind:"compound",parts:[e.test,e.consequent,e.alternate].map(xe)}:e.type==="LogicalExpression"||e.type==="BinaryExpression"?{kind:"compound",parts:[e.left,e.right].map(xe)}:e.type==="TemplateLiteral"?{kind:"compound",parts:e.expressions.map(xe)}:e.type==="ObjectExpression"?{kind:"compound",parts:e.properties.filter(n=>(n.type==="ObjectProperty"||n.type==="Property")&&n.computed!==!0).map(n=>xe(n.value))}:e.type==="ArrayExpression"?{kind:"compound",parts:e.elements.filter(n=>n!=null&&n.type!=="SpreadElement").map(xe)}:{kind:"opaque"}}var fo,mo,xe,be=N(()=>{"use strict";fo=new Set(["CallExpression","OptionalCallExpression"]),mo=new Set(["MemberExpression","OptionalMemberExpression"]);xe=e=>F(e)});function Se(e){if(e.type==="StringLiteral"||e.type==="NumericLiteral"||e.type==="BooleanLiteral"||e.type==="Literal"&&(typeof e.value=="string"||typeof e.value=="number"||typeof e.value=="boolean"))return e.value}function vo(e,t){return e.type==="JSXIdentifier"?{tag:e.name,component:e.name[0]!==e.name[0].toLowerCase()}:e.type==="JSXMemberExpression"?{tag:t.code(e),component:!0}:e.type==="JSXNamespacedName"?{tag:`${e.namespace.name}:${e.name.name}`,component:!1}:{tag:"div",component:!1}}function xt(e){return e.type==="JSXIdentifier"?e.name==="class"?"className":e.name:e.type==="JSXNamespacedName"?`${e.namespace.name}:${e.name.name}`:"unknown"}function xo(e,t){let n=xt(e.name),r=ho.test(n),o=r||n.startsWith("on:")||n==="ref",a={name:n,kind:r?"event":"attr"};if(r){let l=n.slice(2).toLowerCase();a.event={name:l,delegated:yo.has(l)}}let s=e.value;if(s==null)return a.literal=!0,a.at=Ne(e,t),a;if(vt(s))return a.literal=Se(s),a.at=Ne(s,t),a;if(s.type==="JSXExpressionContainer"&&s.expression?.type!=="JSXEmptyExpression"){let l=s.expression,p=Se(l);return p!==void 0?(a.literal=p,a.at=Ne(l,t),a):(a.expr=t.code(l),a.reactive=o?!1:Sn(l),a.at=Ne(l,t),(l.type==="JSXElement"||l.type==="JSXFragment")&&(a.jsxElement=!0),a)}return a.literal=!0,a}function bn(e,t){let n=e.value;return n==null?null:vt(n)?JSON.stringify(Se(n)):n.type==="JSXExpressionContainer"&&n.expression?.type!=="JSXEmptyExpression"?t.code(n.expression):null}function bo(e,t){let n=[],r=[];for(let o of e){if(o.type==="JSXSpreadAttribute"){n.push({name:"",kind:"spread",expr:t.code(o.argument)});continue}if(o.type!=="JSXAttribute"||nt(xt(o.name)))continue;let i=o.name.type==="JSXNamespacedName"?o.name.namespace.name:null;if(i==="use"){let a=o.name.name.name;t.used.add(a);let s=bn(o,t);r.push(s!=null?`[${a}, () => (${s})]`:`[${a}]`);continue}if(i==="oncapture"){let a=o.name.name.name.toLowerCase(),s=bn(o,t)??"undefined";n.push({name:"on:"+a,kind:"attr",expr:`[${s}, { capture: true }]`});continue}n.push(xo(o,t))}return r.length>0&&n.push({name:"use",kind:"attr",expr:`[${r.join(", ")}]`}),n}function Nn(e,t){let n=[];for(let r of e)if(r.type==="JSXText"){let o=ye(r.value);o&&n.push({kind:"text",value:o})}else if(r.type==="JSXExpressionContainer"){if(r.expression?.type!=="JSXEmptyExpression"){let o=r.expression,i=Sn(o);n.push({kind:"expr",code:t.code(o),reactive:i,...i?{at:Ne(o,t)}:{}})}}else r.type==="JSXElement"||r.type==="JSXFragment"?n.push(Rn(r,t)):r.type==="JSXSpreadChild"&&n.push({kind:"expr",code:t.code(r.expression),reactive:!1});return n}function No(e){for(let t of e){if(t.type!=="JSXAttribute")continue;let n=xt(t.name);if(nt(n)){if(t.value&&!vt(t.value))throw new V(`'${n}' needs a literal value, not an expression — the strategy is compile-time.`);return Te(n,t.value?Se(t.value):null)}}}function Rn(e,t){if(e.type==="JSXFragment")return{kind:"fragment",children:Nn(e.children,t)};let{tag:n,component:r}=vo(e.openingElement.name,t),o=bo(e.openingElement.attributes,t),i=Nn(e.children,t),a=t.sourceFile&&e.loc?.start?{file:t.sourceFile,line:e.loc.start.line,column:e.loc.start.column}:void 0;if(r){let s=No(e.openingElement.attributes);return{kind:"component",name:n,props:o,children:i,...s?{load:s}:{},...a?{at:a}:{}}}return{kind:"element",tag:n,svg:go.has(n),props:o,children:i,static:!1,...a?{at:a}:{}}}function Be(e,t){let n=Rn(e,t);return G(n),n}var go,ho,yo,Sn,Ne,vt,bt=N(()=>{"use strict";ee();_e();be();ve();ut();go=new Set(["svg","path","circle","rect","line","polygon","polyline","ellipse","g","defs","clipPath","text"]),ho=/^on[A-Z]/,yo=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]),Sn=e=>q(F(e)),Ne=(e,t)=>{if(!t.sourceFile)return;let n=e.loc?.start;return n?{line:n.line,column:n.column}:void 0};vt=e=>!!e&&typeof Se(e)=="string"});function En(e){return So(e,{concise:!0}).code}function Ro(e,t,n){let r=J.types.cloneNode(e,!0),o=J.types.file(J.types.program([J.types.expressionStatement(r)])),i=!1,a=(s,l,p)=>{for(let c of p)t.add(c);s.replaceWith(J.template.expression(l,{placeholderPattern:!1,plugins:["typescript"]})()),s.skip(),i=!0};return(0,J.traverse)(o,{"JSXElement|JSXFragment"(s){let l=s.node,p=St(l,t,n);n?.(p);let{code:c,imports:u,templates:d}=L.emit(p,{});a(s,te(c,d),u)},TaggedTemplateExpression(s){let l=s.node.tag;if(!J.types.isIdentifier(l)||l.name!=="html"&&l.name!=="svg")return;let p=Je(s.node,t,{svg:l.name==="svg",onNested:n});n?.(p);let{code:c,imports:u,templates:d}=L.emit(p,{});a(s,te(c,d),u)}}),i?o.program.body[0].expression:e}function Fe(e,t,n){return En(Ro(e,t,n))}function gt(e){return q(F(e))}function St(e,t=new Set,n){return Be(e,{code:o=>o.type==="JSXMemberExpression"?En(o):Fe(o,t,n),used:t})}var J,Nt,So,ht=N(()=>{"use strict";J=require("@babel/core"),Nt=_(require("@babel/generator"),1);oe();yt();bt();_e();be();So=Nt.default.default??Nt.default});function Tn(e){return t=>{U(t,{resolver:e.componentResolver,modules:{controlFlowModule:e.controlFlowModule,coreModule:e.libModule,routerModule:e.routerModule},strategyFor:n=>n.load}),z(t),Xe(t,e)}}function Eo(e){let t=[f.types.objectProperty(f.types.identifier("kind"),f.types.stringLiteral(e.kind))];return e.kind==="visible"&&e.rootMargin&&t.push(f.types.objectProperty(f.types.identifier("rootMargin"),f.types.stringLiteral(e.rootMargin))),e.kind==="interaction"&&t.push(f.types.objectProperty(f.types.identifier("events"),f.types.arrayExpression(e.events.map(n=>f.types.stringLiteral(n))))),e.kind==="media"&&t.push(f.types.objectProperty(f.types.identifier("query"),f.types.stringLiteral(e.query))),f.types.objectExpression(t)}function $n(e,t,n){if(!t||t.length===0)return e;let r=new Map;for(let o of t){let i=`${o.svg?"svg:":""}${o.html}`,a=n.staticTemplates.get(i);a||(a=`_tmpl$${n.staticTemplates.size}`,n.staticTemplates.set(i,a)),r.set(o.id,a)}return e.replace(/_tmpl\$\d+/g,o=>r.get(o)??o)}function In(e,t){let n=new Set,r=St(e,n,Tn(t));U(r,{resolver:t.componentResolver,modules:{controlFlowModule:t.controlFlowModule,coreModule:t.libModule,routerModule:t.routerModule},strategyFor:l=>l.load}),z(r);let{code:o,imports:i,templates:a}=L.emit(r,{templateClone:t.templateClone,partialTemplates:t.partialTemplates});for(let l of i)n.add(l);for(let l of n)t.irImports.add(l);Xe(r,t);let s=$n(o,a,t);return f.template.expression(s,{placeholderPattern:!1,plugins:["typescript"]})()}function wo(e){let t=new Map,n=[];for(let r of e){let o=r.source.value;if(!r.specifiers.every(s=>f.types.isImportSpecifier(s))){n.push(r);continue}let a=t.get(o);if(!a){let s=new Set(r.specifiers.map(l=>l.local.name));t.set(o,{decl:r,names:s}),n.push(r);continue}for(let s of r.specifiers)a.names.has(s.local.name)||(a.names.add(s.local.name),a.decl.specifiers.push(s))}return n}function ko(e,t){let n=new Set,r=f.types.isIdentifier(e.tag)&&e.tag.name==="svg",o=Je(e,n,{svg:r,onNested:Tn(t)});U(o,{resolver:t.componentResolver,modules:{controlFlowModule:t.controlFlowModule,coreModule:t.libModule,routerModule:t.routerModule},strategyFor:p=>p.load}),z(o);let{code:i,imports:a,templates:s}=L.emit(o,{templateClone:t.templateClone,partialTemplates:t.partialTemplates});for(let p of a)n.add(p);for(let p of n)t.irImports.add(p);Xe(o,t),t.hasLitIR=!0;let l=f.template.expression($n(i,s,t),{placeholderPattern:!1,plugins:["typescript"]})();return Io(l,e),l}function Io(e,t){if(!t.loc)return;let n=new Set,r=o=>{if(!n.has(o)){n.add(o),o.loc||(o.loc=t.loc,o.start=t.start,o.end=t.end);for(let i of f.types.VISITOR_KEYS[o.type]??[]){let a=o[i];if(Array.isArray(a))for(let s of a)s&&typeof s=="object"&&"type"in s&&r(s);else a&&typeof a=="object"&&"type"in a&&r(a)}}};r(e)}function Xe(e,t){if(e.kind==="component"&&e.source&&(e.source.origin==="builtin"?(t.controlFlowComponents.add(e.name),t.needsControlFlowImport=!0):Q(e.source.loading)&&!t.resolvedComponents.has(e.name)?t.deferredComponents.set(e.name,{module:e.source.module,export:e.source.export,strategy:e.source.loading}):(t.deferredComponents.delete(e.name),t.resolvedComponents.set(e.name,{module:e.source.module,export:e.source.export}))),(e.kind==="element"||e.kind==="component"||e.kind==="control")&&"props"in e)for(let n of e.props)n.kind==="event"&&n.event?.delegated&&t.delegatedEvents.add(n.event.name);if("children"in e&&e.children)for(let n of e.children)Xe(n,t)}var Cn,f,wn,kn,ie,Rt=N(()=>{"use strict";Cn=require("@babel/helper-plugin-utils");le();ue();Me();ee();pe();f=require("@babel/core");ht();yt();oe();wn=new Set(Y),kn=new Set(H),ie=(0,Cn.declare)((e,t={})=>{e.assertVersion(7);let{delegateEvents:n=!0,signalModule:r="@fluixi/dom",controlFlowModule:o="@fluixi/dom",routerModule:i="@fluixi/core/router",reactiveModule:a="@fluixi/reactive/signal",templateClone:s=!0,partialTemplates:l=!0,format:p="both",litTag:c="html",resolve:u=[]}=t,d=X(u),x=p==="lit"||p==="both",g={irImports:new Set,libModule:"@fluixi/core",controlFlowModule:o,routerModule:i,templateClone:s,partialTemplates:l,hasJSX:!1,hasLitHTML:!1,needsControlFlowImport:!1,needsCreateMemo:!1,controlFlowComponents:new Set,resolvedComponents:new Map,deferredComponents:new Map,componentResolver:d,delegatedEvents:new Set,staticTemplates:new Map,staticCounter:0};return{name:"@fluixi/babel-plugin-jsx",manipulateOptions(h,v){v.plugins.push("jsx","typescript")},pre(h){Object.assign(h,g)},visitor:{Program:{enter(h,v){Object.assign(v,{hasJSX:!1,hasLitHTML:!1,hasLitIR:!1,needsControlFlowImport:!1,needsCreateMemo:!1,controlFlowComponents:new Set,resolvedComponents:new Map,deferredComponents:new Map,componentResolver:d,delegatedEvents:new Set,staticTemplates:new Map,staticCounter:0,libModule:"@fluixi/core",controlFlowModule:o,routerModule:i,templateClone:s,partialTemplates:l,irImports:new Set,needsCreateNativeElement:!1,needsInsert:!1,needsSpread:!1,needsCreateComponent:!1,needsMergeProps:!1})},exit(h,v){let R=[];if(v.hasJSX||v.hasLitIR){if(v.irImports.size>0){let E=new Set(["Show","For","Index","Switch","Match","Dynamic","ErrorBoundary","Portal","Suspense"]),S=new Set(["createMemo","createEffect","createRenderEffect","createRoot","createSignal","onCleanup","batch","untrack"]),w=Array.from(v.irImports),b=T=>f.types.importSpecifier(f.types.identifier(T),f.types.identifier(T)),y=T=>!h.scope.hasBinding(T),k=w.filter(T=>S.has(T)&&y(T)),I=w.filter(T=>!E.has(T)&&!S.has(T)&&y(T)),ne=w.filter(T=>E.has(T)&&y(T));k.length>0&&R.push(f.types.importDeclaration(k.map(b),f.types.stringLiteral(a))),I.length>0&&R.push(f.types.importDeclaration(I.map(b),f.types.stringLiteral(r))),ne.length>0&&R.push(f.types.importDeclaration(ne.map(b),f.types.stringLiteral(o)))}if(v.needsCreateMemo&&!h.scope.hasBinding("createMemo")&&R.push(f.types.importDeclaration([f.types.importSpecifier(f.types.identifier("createMemo"),f.types.identifier("createMemo"))],f.types.stringLiteral(a))),v.needsControlFlowImport&&v.controlFlowComponents.size>0){let E=Array.from(v.controlFlowComponents).filter(I=>!h.scope.hasBinding(I)),S=v.libModule??"@fluixi/core",w=E.filter(I=>kn.has(I)),b=E.filter(I=>wn.has(I)),y=E.filter(I=>!wn.has(I)&&!kn.has(I)),k=(I,ne)=>f.types.importDeclaration(I.map(T=>f.types.importSpecifier(f.types.identifier(T),f.types.identifier(T))),f.types.stringLiteral(ne));y.length>0&&R.push(k(y,o)),b.length>0&&R.push(k(b,S)),w.length>0&&R.push(k(w,i))}let C=[];if(v.deferredComponents.size>0){for(let[E,S]of v.deferredComponents)h.scope.hasBinding(E)||C.push(f.types.variableDeclaration("const",[f.types.variableDeclarator(f.types.identifier(E),f.types.callExpression(f.types.identifier("deferred"),[f.types.arrowFunctionExpression([],f.types.callExpression(f.types.import(),[f.types.stringLiteral(S.module)])),f.types.objectExpression([f.types.objectProperty(f.types.identifier("strategy"),Eo(S.strategy)),f.types.objectProperty(f.types.identifier("export"),f.types.stringLiteral(S.export))])]))]));C.length>0&&!h.scope.hasBinding("deferred")&&R.push(f.types.importDeclaration([f.types.importSpecifier(f.types.identifier("deferred"),f.types.identifier("deferred"))],f.types.stringLiteral(v.libModule??"@fluixi/core")))}if(v.resolvedComponents.size>0){let E=new Map;for(let[S,w]of v.resolvedComponents){if(h.scope.hasBinding(S))continue;let b=E.get(w.module)??[];b.push({local:S,exported:w.export}),E.set(w.module,b)}for(let[S,w]of E)R.push(f.types.importDeclaration(w.map(({local:b,exported:y})=>y==="default"?f.types.importDefaultSpecifier(f.types.identifier(b)):f.types.importSpecifier(f.types.identifier(b),f.types.identifier(y))),f.types.stringLiteral(S)))}if(n&&v.delegatedEvents.size>0){R.push(f.types.importDeclaration([f.types.importSpecifier(f.types.identifier("delegateEvents"),f.types.identifier("delegateEvents"))],f.types.stringLiteral(r)));let E=f.types.arrayExpression(Array.from(v.delegatedEvents).map(w=>f.types.stringLiteral(w))),S=f.types.expressionStatement(f.types.callExpression(f.types.identifier("delegateEvents"),[E]));h.node.body.unshift(S)}if(C.length>0&&h.node.body.unshift(...C),v.staticTemplates.size>0){let E=[];for(let[S,w]of v.staticTemplates){let y=S.startsWith("svg:")?S.slice(4):S;E.push(f.types.variableDeclaration("const",[f.types.variableDeclarator(f.types.identifier(w),f.types.stringLiteral(y))]))}h.node.body.unshift(...E)}}R.length>0&&h.node.body.unshift(...wo(R))}},JSXElement(h,v){v.hasJSX=!0,h.replaceWith(In(h.node,v))},JSXFragment(h,v){v.hasJSX=!0,h.replaceWith(In(h.node,v))},TaggedTemplateExpression(h,v){x&&f.types.isIdentifier(h.node.tag)&&(h.node.tag.name===c||h.node.tag.name==="svg")&&h.replaceWith(ko(h.node,v))}}}})});var Mn=N(()=>{"use strict"});var On={};ae(On,{babelPluginReactiveJSX:()=>Co,createPlugin:()=>To,createPreset:()=>He,default:()=>ie,presets:()=>$o});function To(e){return[ie,e]}function He(e={}){return{plugins:[[ie,{runtime:"automatic",importSource:"@fluixi/jsx",development:!1,detectReactivity:!0,useLitHTML:!0,hoistStatics:!0,delegateEvents:!0,optimizeControlFlow:!0,sourceMaps:!0,...e}]]}}var Co,$o,Pn=N(()=>{"use strict";Rt();Mn();Rt();Co=ie;$o={production:He({development:!1,hoistStatics:!0,delegateEvents:!0,optimizeControlFlow:!0}),development:He({development:!0,hoistStatics:!1,sourceMaps:!0}),minimal:He({detectReactivity:!1,useLitHTML:!1,hoistStatics:!1,delegateEvents:!1,optimizeControlFlow:!1})}});function Dn(e,t,n={}){let r=new Set,o=Ae(e,[...t],r,{svg:n.svg,...n.sourceFile?{sourceFile:n.sourceFile}:{},...n.positionAt?{positionAt:n.positionAt}:{}});G(o),U(o,{resolver:X(n.resolve??[]),modules:{controlFlowModule:n.controlFlowModule??"@fluixi/dom",coreModule:n.coreModule??"@fluixi/core",routerModule:n.routerModule??"@fluixi/core/router"},strategyFor:l=>l.load}),z(o);let{code:i,imports:a,templates:s}=L.emit(o,{templateClone:n.templateClone,partialTemplates:n.partialTemplates});for(let l of a)r.add(l);return n.hoistTemplates?{code:i,imports:[...r],ir:o,templates:s}:{code:te(i,s),imports:[...r],ir:o}}var Ln=N(()=>{"use strict";ve();Me();oe();ue();le();ft()});function K(e,t){if(e)switch(e.type){case"Identifier":t.add(e.name);return;case"ObjectPattern":for(let n of e.properties)n.type==="RestElement"?K(n.argument,t):K(n.value,t);return;case"ArrayPattern":for(let n of e.elements)K(n,t);return;case"AssignmentPattern":K(e.left,t);return;case"RestElement":K(e.argument,t);return}}function An(e,t){switch(e.type){case"ImportDeclaration":for(let n of e.specifiers)K(n.local,t);return;case"VariableDeclaration":for(let n of e.declarations)K(n.id,t);return;case"FunctionDeclaration":case"ClassDeclaration":K(e.id,t);return;case"ExportNamedDeclaration":case"ExportDefaultDeclaration":e.declaration&&An(e.declaration,t);return}}function se(e){let t=new Set;for(let n of e.body)An(n,t);return t}var We=N(()=>{"use strict"});function j(e,t){if(e)switch(e.type){case"Identifier":t.add(e.name);return;case"ObjectPattern":for(let n of e.properties)n.type==="RestElement"?j(n.argument,t):j(n.value,t);return;case"ArrayPattern":for(let n of e.elements)j(n,t);return;case"AssignmentPattern":j(e.left,t);return;case"RestElement":j(e.argument,t);return}}function Et(e){switch(e.type){case"StringLiteral":case"NumericLiteral":case"BooleanLiteral":case"NullLiteral":case"BigIntLiteral":case"RegExpLiteral":case"Identifier":return!0;case"Literal":return!0;case"TemplateLiteral":return e.expressions.every(Et);case"UnaryExpression":return Et(e.argument);case"MemberExpression":return!1;default:return!1}}function Ve(e,t){if(!(!e||typeof e!="object")){t(e);for(let n of Object.keys(e)){if(n==="loc"||n==="range"||n==="leadingComments"||n==="trailingComments")continue;let r=e[n];if(Array.isArray(r))for(let o of r)o&&typeof o=="object"&&Ve(o,t);else r&&typeof r=="object"&&typeof r.type=="string"&&Ve(r,t)}}}function Mo(e){let t=new Set;return Ve(e,n=>{if(n.type==="AssignmentExpression")j(n.left,t);else if(n.type==="UpdateExpression"){let r=n.argument;r?.type==="Identifier"&&t.add(r.name)}}),t}function Oo(e,t){let n=new Set,r=o=>{let i=new Set;j(o,i);for(let a of i)t.has(a)&&n.add(a)};return Ve(e,o=>{switch(o.type){case"VariableDeclarator":r(o.id);return;case"FunctionDeclaration":case"FunctionExpression":case"ArrowFunctionExpression":r(o.id);for(let i of o.params??[])r(i);return;case"CatchClause":r(o.param);return;case"ClassDeclaration":case"ClassExpression":r(o.id);return}}),n}function jn(e,t,n){for(let r of e.properties??[]){if(r.type==="RestElement"){let c=r.argument;if(c?.type!=="Identifier"||t.length>0){let u=new Set;j(c,u);for(let d of u)n.bails.push({name:d,reason:"rest"});continue}n.rest={name:c.name,keys:[]};continue}if(r.computed){let c=new Set;j(r.value,c);for(let u of c)n.bails.push({name:u,reason:"computed"});continue}let o=r.key,i=o.type==="Identifier"?o.name:o.value,a=r.value,s;a.type==="AssignmentPattern"&&(s=a.right,a=a.left);let l=[...t,i];if(a.type==="Identifier"){if(s&&!Et(s)){n.bails.push({name:a.name,reason:"unsafe-default"});continue}n.reads.push({name:a.name,path:l,...s?{fallback:s}:{}});continue}if(a.type==="ObjectPattern"){if(s){let c=new Set;j(a,c);for(let u of c)n.bails.push({name:u,reason:"unsafe-default"});continue}jn(a,l,n);continue}let p=new Set;j(a,p);for(let c of p)n.bails.push({name:c,reason:"computed"})}}function Ue(e,t){let n={reads:[],bails:[]};if(e?.type!=="ObjectPattern"||(jn(e,[],n),n.rest&&(t?.type!=="BlockStatement"?(n.bails.push({name:n.rest.name,reason:"rest"}),delete n.rest):n.rest.keys=(e.properties??[]).filter(s=>s.type!=="RestElement"&&!s.computed).map(s=>{let l=s.key;return l.type==="Identifier"?l.name:l.value})),n.reads.length===0&&!n.rest))return n;let r=new Set(n.reads.map(s=>s.name));n.rest&&r.add(n.rest.name);let o=Mo(t),i=Oo(t,r),a=[];for(let s of n.reads)o.has(s.name)?n.bails.push({name:s.name,reason:"reassigned"}):i.has(s.name)?n.bails.push({name:s.name,reason:"shadowed"}):a.push(s);return n.reads=a,n.rest&&o.has(n.rest.name)?(n.bails.push({name:n.rest.name,reason:"reassigned"}),delete n.rest):n.rest&&i.has(n.rest.name)&&(n.bails.push({name:n.rest.name,reason:"shadowed"}),delete n.rest),n}function ze(e){switch(e){case"rest":return"this rest element cannot be served by splitProps, and copying the props into a plain object would lose the getters";case"computed":return"the property is not known until it runs";case"reassigned":return"the binding is assigned to, and props are read-only";case"shadowed":return"an inner scope binds the same name";case"unsafe-default":return"the default would have to run again on every read"}}var wt=N(()=>{"use strict"});function Re(e,t,n=null){if(!(!e||typeof e!="object"||typeof e.type!="string")&&!e.type.startsWith("TS")&&t(e,n)!==!1)for(let r of Object.keys(e)){if(r==="loc"||r==="leadingComments"||r==="trailingComments")continue;let o=e[r];if(Array.isArray(o))for(let i of o)Re(i,t,e);else o&&typeof o=="object"&&Re(o,t,e)}}function Fn(e){return!!e&&e[0]>="A"&&e[0]<="Z"}function Po(e){let t=[];return Re(e,n=>{if(n.type==="FunctionDeclaration"&&Fn(n.id?.name)){t.push(n);return}if(n.type==="VariableDeclarator"&&Fn(n.id?.name)){let r=n.init;r&&(r.type==="ArrowFunctionExpression"||r.type==="FunctionExpression")&&t.push(r)}}),t}function Do(e){let t=new Set;return Re(e,n=>{n.type==="Identifier"&&t.add(n.name)}),t}function Lo(e,t){if(!t)return!0;switch(t.type){case"MemberExpression":case"OptionalMemberExpression":return!(t.property===e&&!t.computed);case"ObjectProperty":case"ObjectMethod":case"ClassProperty":case"ClassMethod":return!(t.key===e&&!t.computed);case"LabeledStatement":case"BreakStatement":case"ContinueStatement":return t.label!==e;case"ImportSpecifier":case"ExportSpecifier":return!1;default:return!0}}function kt(e,t,n={}){let r=[],o=[],i=new Set;for(let a of Po(e)){let s=a.params?.[0];if(s?.type!=="ObjectPattern")continue;let l=Ue(s,a.body);for(let g of l.bails)o.push({name:g.name,reason:g.reason,message:ze(g.reason),start:s.start});if(l.bails.length>0||l.reads.length===0&&!l.rest)continue;let p=Do(a),c=n.parameterName??"props";for(;p.has(c);)c=`_${c}`;let u=new Map;for(let g of l.reads){let h=`${c}.${g.path.join(".")}`,v=g.fallback;u.set(g.name,v?`(${h} === undefined ? ${t.slice(v.start,v.end)} : ${h})`:h)}let d=s.typeAnnotation;if(r.push({start:s.start,end:d?.start??s.end,code:c}),l.rest){let g=l.rest.keys.map(v=>JSON.stringify(v)).join(", "),h=a.body;r.push({start:h.start+1,end:h.start+1,code:`
2
+ const [, ${l.rest.name}] = splitProps(${c}, [${g}]);`}),i.add("splitProps")}let x=[];Re(a.body,(g,h)=>{if(g.type!=="Identifier")return;let v=u.get(g.name);if(!v)return;let R=h?.type==="ObjectProperty"&&h.shorthand&&h.value===g;if(!R&&!Lo(g,h))return;let C=l.reads.find(E=>E.name===g.name).path;x.push({node:g,parent:R?h:null,text:v,property:C[C.length-1]})});for(let g of x)g.parent?r.push({start:g.parent.start,end:g.parent.end,code:`${g.node.name}: ${g.text}`}):r.push({start:g.node.start,end:g.node.end,code:g.text}),Ao(g.node,c,g.property)}return{edits:r,diagnostics:o,used:i}}function Ao(e,t,n){e.type="MemberExpression",e.computed=!1,e.optional=!1,e.object={type:"Identifier",name:t,start:e.start,end:e.start},e.property={type:"Identifier",name:n,start:e.end,end:e.end},delete e.name}function Bn(e,t="module.tsx",n={}){let r=(0,Jn.parse)(e,{sourceType:"module",plugins:["typescript","jsx"],errorRecovery:!0}),{edits:o,diagnostics:i,used:a}=kt(r.program,e,n),s=new _n.default(e);for(let l of o)l.start===l.end?s.appendLeft(l.start,l.code):s.overwrite(l.start,l.end,l.code);return a.has("splitProps")&&!se(r.program).has("splitProps")&&s.prepend(`import { splitProps } from ${JSON.stringify(n.runtimeModule??"@fluixi/dom")};
3
+ `),{code:s.toString(),map:s.generateMap({source:t,includeContent:!0,hires:!0}),diagnostics:i,rewritten:o.filter(l=>l.code!==(n.parameterName??"props")).length}}var Jn,_n,It=N(()=>{"use strict";Jn=require("@babel/parser"),_n=_(require("magic-string"),1);wt();We()});function Ct(e,t){if(!(!e||typeof e!="object"||typeof e.type!="string")){t(e);for(let n of Object.keys(e)){if(n==="loc"||n==="leadingComments"||n==="trailingComments")continue;let r=e[n];if(Array.isArray(r))for(let o of r)Ct(o,t);else r&&typeof r=="object"&&Ct(r,t)}}}function Xn(e){let t=[],n=[],r=new Map,o=new Set,{shadowed:i}=De(e);return Ct(e,a=>{if(a.type!=="CallExpression")return;let s=a.callee;if(s?.type!=="Identifier")return;let l=s.name;if(!Ie(l))return;if(i.has(l)){o.has(l)||(o.add(l),n.push({name:l,message:`${l} is reserved for the compiler, and this module binds it. The call keeps your binding's meaning; rename it to use the intrinsic.`,start:s.start}));return}let p=D[l];t.push({start:s.start,end:s.end,code:p.export});let c=r.get(p.module)??new Set;c.add(p.export),r.set(p.module,c)}),{edits:t,diagnostics:n,imports:r}}function Hn(e,t){let n=[];for(let[r,o]of[...e.imports].sort(([i],[a])=>i.localeCompare(a))){let i=[...o].filter(a=>!t.has(a)).sort();i.length&&n.push(`import { ${i.join(", ")} } from ${JSON.stringify(r)};`)}return n.length?`${n.join(`
4
4
  `)}
5
- `:""}var Tn=b(()=>{"use strict";le();yt()});function Be(e,t,n=null,r=""){if(!(!e||typeof e!="object")){if(Array.isArray(e)){for(let o of e)Be(o,t,n,r);return}typeof e.type=="string"&&t(e,n,r);for(let o of Object.keys(e))o==="loc"||o==="leadingComments"||o==="trailingComments"||Be(e[o],t,typeof e.type=="string"?e:n,o)}}function vo(e,t,n){return xt(e)?!(t&&xt(t)&&n==="children"):!1}function xo(e,t){return e.type==="TaggedTemplateExpression"&&e.tag?.type==="Identifier"&&(e.tag.name===t||e.tag.name==="svg")}function On(e){return e.filter(t=>!e.some(n=>n!==t&&n.start<=t.start&&n.end>=t.end&&n.end-n.start>t.end-t.start))}function Xe(e,t,n,r){let o=On(r.filter(i=>i.start>=t&&i.end<=n)).sort((i,a)=>a.start-i.start),s=e.slice(t,n);for(let i of o)s=s.slice(0,i.start-t)+i.code+s.slice(i.end-t);return s}function bo(e,t,n){let r={code:Xe(e,t.start,t.end,n),reactive:G(A(t))};return t.type==="ArrowFunctionExpression"&&t.body?.type!=="BlockStatement"&&(r.arrow={params:t.params.map(o=>Xe(e,o.start,o.end,n)),body:Xe(e,t.body.start,t.body.end,n),bodyReactive:G(A(t.body))}),t.type==="ObjectExpression"&&(r.object=!0),r}function Pn(e,t,n){if(!t||t.length===0)return e;let r=new Map;for(let o of t){let s=`${o.svg?"svg:":""}${o.html}`,i=n.get(s);i||(i=`_fxTmpl$${n.size}`,n.set(s,i)),r.set(o.id,i)}return e.replace(/_tmpl\$\d+/g,o=>r.get(o)??o)}function bt(e,t){if(e.kind==="component"&&e.load&&!e.source&&Z(e.load)&&(t.ignoredLoad.has(e.name)||t.ignoredLoad.set(e.name,e.load)),e.kind==="component"&&e.source){let n=e.source;n.origin==="builtin"?t.builtins.add(e.name):Z(n.loading)&&!t.resolved.has(e.name)?t.deferred.set(e.name,n):(t.deferred.delete(e.name),t.resolved.set(e.name,n))}if("props"in e&&e.props)for(let n of e.props)n.kind==="event"&&n.event?.delegated&&t.delegatedEvents.add(n.event.name);if("children"in e&&e.children)for(let n of e.children)bt(n,t)}function No(e,t){for(let n of e.body??[])if(n.type==="ImportDeclaration")for(let r of n.specifiers??[]){if(r.local?.name!==t)continue;if(r.type==="ImportNamespaceSpecifier")return;let o=r.type==="ImportDefaultSpecifier"?"default":r.imported?.name??r.imported?.value;return{module:n.source.value,export:o,declaration:n,specifier:r}}}function So(e,t){for(let n of e.body??[])if(n.type==="ImportDeclaration"){for(let r of n.specifiers??[])if(r.type==="ImportNamespaceSpecifier"&&r.local?.name===t)return!0}return!1}function Ro(e,t,n){let r=!1;return Be(e,o=>{r||o.type!=="Identifier"||o.name!==t||o.start===n.local?.start&&o.end===n.local?.end||(r=!0)}),r}function Eo(e){let t=[`kind: ${JSON.stringify(e.kind)}`];return e.kind==="visible"&&e.rootMargin&&t.push(`rootMargin: ${JSON.stringify(e.rootMargin)}`),e.kind==="interaction"&&t.push(`events: ${JSON.stringify(e.events)}`),e.kind==="media"&&t.push(`query: ${JSON.stringify(e.query)}`),`{ ${t.join(", ")} }`}function wo(e){let t=[];return e.quasi.quasis.forEach((n,r)=>{if(t.push({kind:"static",text:n.value.cooked??n.value.raw,start:n.start}),r<e.quasi.expressions.length){let o=e.quasi.expressions[r];t.push({kind:"hole",index:r,start:o.start,end:o.end})}}),t}function Dn(e,t,n={}){let r=n.litTag??"html",o=n.format??"both",s=o!=="jsx",i=o!=="lit",a=s&&(e.includes(`${r}\``)||e.includes("svg`")),l=n.intrinsics!==!1&&Mt(e);if(!a&&!(i&&e.includes("<"))&&!l)return null;let c=(0,Mn.parse)(e,{sourceType:"module",plugins:["jsx","typescript"],errorRecovery:!0}),p=[];Be(c.program,(f,N,$)=>{(s&&xo(f,r)||i&&vo(f,N,$))&&p.push(f)});let d=n.propsDestructure===!1?{edits:[],diagnostics:[],used:new Set}:gt(c.program,e,{runtimeModule:n.runtimeModule}),m=n.intrinsics===!1?{edits:[],diagnostics:[],imports:new Map}:In(c.program);if(p.length===0&&d.edits.length===0&&m.edits.length===0&&m.diagnostics.length===0&&d.diagnostics.length===0)return null;p.sort((f,N)=>N.start-f.start||f.end-N.end);let y=new Set(d.used),g={builtins:new Set,resolved:new Map,deferred:new Map,delegatedEvents:new Set,ignoredLoad:new Map,unresolved:new Set,declared:wn(c.program)},h=new Map,E=[...d.edits,...m.edits];for(let f of p){let N=p.some(D=>D!==f&&D.start<=f.start&&D.end>=f.end&&D.end-D.start>f.end-f.start);if(xt(f)){E.push({start:f.start,end:f.end,code:ko(e,f,E,N,y,g,h,n)});continue}let $=f.quasi.expressions.map(D=>bo(e,D,E)),_=yn(wo(f),$,{...n,hoistTemplates:!0,templateClone:n.templateClone??!0,partialTemplates:N?!1:n.partialTemplates??!0,svg:f.tag.name==="svg"});for(let D of _.imports)y.add(D);bt(_.ir,g),E.push({start:f.start,end:f.end,code:Pn(_.code,_.templates,h)})}let C=new $n.default(e);for(let f of On(E))f.start===f.end?C.appendLeft(f.start,f.code):C.overwrite(f.start,f.end,f.code);let R=re(c.program),S=new Map;for(let[f]of g.ignoredLoad)R.has(f)||S.set(f,"unsupplied");for(let[f,N]of[...g.ignoredLoad]){if(!R.has(f))continue;let $=No(c.program,f);if(!$){S.set(f,So(c.program,f)?"namespace":"local");continue}if(Ro(c.program,f,$.specifier)){S.set(f,"value");continue}let _=$.declaration.specifiers.filter(be=>be!==$.specifier),D=_.length===0&&e[$.declaration.end]===`
6
- `?$.declaration.end+1:$.declaration.end;C.overwrite($.declaration.start,D,_.length===0?"":`import { ${_.map(be=>e.slice(be.start,be.end)).join(", ")} } from ${JSON.stringify($.declaration.source.value)};`),g.deferred.set(f,{module:$.module,export:$.export,origin:"rule",loading:N}),R.delete(f),g.ignoredLoad.delete(f)}let I=Io(y,g,h,R,n);I&&C.prepend(I);let T=Cn(m,R);T&&C.prepend(T);let v={value:f=>`${f} is used as a value here, not only as a tag, so its import has to stay — deferring would hand those references a lazy wrapper instead of the component. Defer it at the point it is rendered, or keep it eager.`,namespace:f=>`${f} came in through a namespace import, which has no single export to defer. Import ${f} by name.`,local:f=>`${f} is declared in this file, so there is no module to load separately. Move it to its own file and import it.`,unsupplied:f=>`nothing supplies ${f}, so there is no import to defer. Import it, or add a \`resolve\` rule for it.`},w=[...g.ignoredLoad].map(([f,N])=>({name:f,strategy:N,message:`load:${N.kind} has no effect on <${f}>: ${v[S.get(f)??"unsupplied"](f)}`})),k=[...g.unresolved].map(f=>({name:f,message:`<${f}> is not defined: nothing imports it and no \`resolve\` rule supplies it. This compiles to a reference to a name that does not exist, so the component renders nothing. Import ${f}, or add a \`resolve\` rule for it.`}));return{code:C.toString(),map:C.generateMap({source:t,includeContent:!0,hires:!0}),...w.length?{loadDiagnostics:w}:{},...k.length?{unresolvedDiagnostics:k}:{},...d.diagnostics.length?{propsDiagnostics:d.diagnostics}:{},...m.diagnostics.length?{intrinsicDiagnostics:m.diagnostics}:{}}}function ko(e,t,n,r,o,s,i,a){let l=De(t,{code:d=>Xe(e,d.start,d.end,n),used:o});z(l);let c=W(l,{resolver:X(a.resolve??[]),isBound:d=>s.declared.has(d),modules:{controlFlowModule:a.controlFlowModule??a.runtimeModule??"@fluixi/dom",coreModule:a.coreModule??"@fluixi/core",routerModule:a.routerModule??"@fluixi/core/router"},strategyFor:d=>d.load});for(let d of c.unresolved)s.unresolved.add(d);U(l);let p=P.emit(l,{templateClone:a.templateClone??!0,partialTemplates:r?!1:a.partialTemplates??!0});for(let d of p.imports)o.add(d);return bt(l,s),Pn(p.code,p.templates,i)}function Io(e,t,n,r,o){let s=o.runtimeModule??"@fluixi/dom",i=o.coreModule??"@fluixi/core",a=new Map,l=(m,x)=>a.set(m,[...a.get(m)??[],x]),c=new Set(e);for(let m of t.builtins)c.add(m);t.delegatedEvents.size>0&&c.add("delegateEvents");for(let m of[...c].sort())r.has(m)||(yo.has(m)?l(o.reactiveModule??"@fluixi/reactive/signal",m):ho.has(m)?l(o.routerModule??"@fluixi/core/router",m):go.has(m)?l(i,m):fo.has(m)?l(o.controlFlowModule??s,m):l(s,m));for(let[m,x]of t.resolved)r.has(m)||l(x.module,x.export==="default"?`default as ${m}`:m===x.export?m:`${x.export} as ${m}`);let p=[];for(let[m,x]of a)p.push(`import { ${x.join(", ")} } from ${JSON.stringify(m)};`);let d=[...t.deferred].filter(([m])=>!r.has(m));if(d.length>0){r.has("deferred")||p.push(`import { deferred } from ${JSON.stringify(i)};`);for(let[m,x]of d)p.push(`const ${m} = deferred(() => import(${JSON.stringify(x.module)}), { strategy: ${Eo(x.loading)}, export: ${JSON.stringify(x.export)} });`)}for(let[m,x]of n)p.push(`const ${x} = ${JSON.stringify(m.startsWith("svg:")?m.slice(4):m)};`);return t.delegatedEvents.size>0&&p.push(`delegateEvents(${JSON.stringify([...t.delegatedEvents])});`),p.length>0?p.join(`
5
+ `:""}var Wn=N(()=>{"use strict";re();Le()});function qe(e,t,n=null,r=""){if(!(!e||typeof e!="object")){if(Array.isArray(e)){for(let o of e)qe(o,t,n,r);return}typeof e.type=="string"&&t(e,n,r);for(let o of Object.keys(e))o==="loc"||o==="leadingComments"||o==="trailingComments"||qe(e[o],t,typeof e.type=="string"?e:n,o)}}function Bo(e,t,n){return Tt(e)?!(t&&Tt(t)&&n==="children"):!1}function Xo(e,t){return e.type==="TaggedTemplateExpression"&&e.tag?.type==="Identifier"&&(e.tag.name===t||e.tag.name==="svg")}function zn(e){return e.filter(t=>!e.some(n=>n!==t&&n.start<=t.start&&n.end>=t.end&&n.end-n.start>t.end-t.start&&!(t.start===t.end&&(t.start===n.start||t.start===n.end))))}function Ge(e,t,n,r){let o=zn(r.filter(a=>a.start>=t&&a.end<=n)).sort((a,s)=>s.start-a.start),i=e.slice(t,n);for(let a of o)i=i.slice(0,a.start-t)+a.code+i.slice(a.end-t);return i}function Ho(e,t,n,r=!1){let o=r?t.loc?.start:void 0,i={code:Ge(e,t.start,t.end,n),reactive:q(F(t)),...o?{at:{line:o.line,column:o.column}}:{}};return t.type==="ArrowFunctionExpression"&&t.body?.type!=="BlockStatement"&&(i.arrow={params:t.params.map(a=>Ge(e,a.start,a.end,n)),body:Ge(e,t.body.start,t.body.end,n),bodyReactive:q(F(t.body))}),t.type==="ObjectExpression"&&(i.object=!0),i}function Gn(e,t,n){if(!t||t.length===0)return e;let r=new Map;for(let o of t){let i=`${o.svg?"svg:":""}${o.html}`,a=n.get(i);a||(a=`_fxTmpl$${n.size}`,n.set(i,a)),r.set(o.id,a)}return e.replace(/_tmpl\$\d+/g,o=>r.get(o)??o)}function $t(e,t){if(e.kind==="component"&&e.load&&!e.source&&Q(e.load)&&(t.ignoredLoad.has(e.name)||t.ignoredLoad.set(e.name,e.load)),e.kind==="component"&&e.source){let n=e.source;n.origin==="builtin"?t.builtins.add(e.name):Q(n.loading)&&!t.resolved.has(e.name)?t.deferred.set(e.name,n):(t.deferred.delete(e.name),t.resolved.set(e.name,n))}if("props"in e&&e.props)for(let n of e.props)n.kind==="event"&&n.event?.delegated&&t.delegatedEvents.add(n.event.name);if("children"in e&&e.children)for(let n of e.children)$t(n,t)}function Wo(e,t){for(let n of e.body??[])if(n.type==="ImportDeclaration")for(let r of n.specifiers??[]){if(r.local?.name!==t)continue;if(r.type==="ImportNamespaceSpecifier")return;let o=r.type==="ImportDefaultSpecifier"?"default":r.imported?.name??r.imported?.value;return{module:n.source.value,export:o,declaration:n,specifier:r}}}function Vo(e,t){for(let n of e.body??[])if(n.type==="ImportDeclaration"){for(let r of n.specifiers??[])if(r.type==="ImportNamespaceSpecifier"&&r.local?.name===t)return!0}return!1}function Uo(e,t,n){let r=!1;return qe(e,o=>{r||o.type!=="Identifier"||o.name!==t||o.start===n.local?.start&&o.end===n.local?.end||(r=!0)}),r}function zo(e){let t=[`kind: ${JSON.stringify(e.kind)}`];return e.kind==="visible"&&e.rootMargin&&t.push(`rootMargin: ${JSON.stringify(e.rootMargin)}`),e.kind==="interaction"&&t.push(`events: ${JSON.stringify(e.events)}`),e.kind==="media"&&t.push(`query: ${JSON.stringify(e.query)}`),`{ ${t.join(", ")} }`}function Go(e){let t=[0];for(let n=0;n<e.length;n++)e.charCodeAt(n)===10&&t.push(n+1);return n=>{let r=0,o=t.length-1;for(;r<o;){let i=r+o+1>>1;t[i]<=n?r=i:o=i-1}return{line:r+1,column:n-t[r]}}}function qo(e){let t=[];return e.quasi.quasis.forEach((n,r)=>{if(t.push({kind:"static",text:n.value.cooked??n.value.raw,start:n.start}),r<e.quasi.expressions.length){let o=e.quasi.expressions[r];t.push({kind:"hole",index:r,start:o.start,end:o.end})}}),t}function Ko(e,t){if(!t)return e;let n=t.endsWith("/")?t:`${t}/`;return e.startsWith(n)?e.slice(n.length):e}function qn(e,t,n={}){let r=n.litTag??"html",o=n.format??"both",i=o!=="jsx",a=o!=="lit",s=i&&(e.includes(`${r}\``)||e.includes("svg`")),l=n.intrinsics!==!1&&Bt(e),p=n.sourceLocations===!0&&ln(e),c=Ko(t,n.sourceRoot);if(!s&&!(a&&e.includes("<"))&&!l&&!p)return null;let u=(0,Vn.parse)(e,{sourceType:"module",plugins:["jsx","typescript"],errorRecovery:!0}),d=[];qe(u.program,(m,P,M)=>{(i&&Xo(m,r)||a&&Bo(m,P,M))&&d.push(m)});let x=n.propsDestructure===!1?{edits:[],diagnostics:[],used:new Set}:kt(u.program,e,{runtimeModule:n.runtimeModule}),g=n.intrinsics===!1?{edits:[],diagnostics:[],imports:new Map}:Xn(u.program),h=n.sourceLocations===!0?cn(u.program,c):{edits:[],marked:0};if(d.length===0&&x.edits.length===0&&h.edits.length===0&&g.edits.length===0&&g.diagnostics.length===0&&x.diagnostics.length===0)return null;d.sort((m,P)=>P.start-m.start||m.end-P.end);let R=new Set(x.used),C={builtins:new Set,resolved:new Map,deferred:new Map,delegatedEvents:new Set,ignoredLoad:new Map,unresolved:new Set,declared:rn(u.program)},E=new Map,S=[...x.edits,...g.edits,...h.edits];for(let m of d){let P=d.some(A=>A!==m&&A.start<=m.start&&A.end>=m.end&&A.end-A.start>m.end-m.start);if(Tt(m)){S.push({start:m.start,end:m.end,code:Yo(e,m,S,P,R,C,E,n,c)});continue}let M=m.quasi.expressions.map(A=>Ho(e,A,S,n.sourceLocations===!0)),B=Dn(qo(m),M,{...n,hoistTemplates:!0,...n.sourceLocations===!0?{sourceFile:c,positionAt:Go(e)}:{},templateClone:n.templateClone??!0,partialTemplates:P?!1:n.partialTemplates??!0,svg:m.tag.name==="svg"});for(let A of B.imports)R.add(A);$t(B.ir,C),S.push({start:m.start,end:m.end,code:Gn(B.code,B.templates,E)})}let w=new Un.default(e);for(let m of zn(S))m.start===m.end?w.appendLeft(m.start,m.code):w.overwrite(m.start,m.end,m.code);let b=se(u.program),y=new Map;for(let[m]of C.ignoredLoad)b.has(m)||y.set(m,"unsupplied");for(let[m,P]of[...C.ignoredLoad]){if(!b.has(m))continue;let M=Wo(u.program,m);if(!M){y.set(m,Vo(u.program,m)?"namespace":"local");continue}if(Uo(u.program,m,M.specifier)){y.set(m,"value");continue}let B=M.declaration.specifiers.filter(Ee=>Ee!==M.specifier),A=B.length===0&&e[M.declaration.end]===`
6
+ `?M.declaration.end+1:M.declaration.end;w.overwrite(M.declaration.start,A,B.length===0?"":`import { ${B.map(Ee=>e.slice(Ee.start,Ee.end)).join(", ")} } from ${JSON.stringify(M.declaration.source.value)};`),C.deferred.set(m,{module:M.module,export:M.export,origin:"rule",loading:P}),b.delete(m),C.ignoredLoad.delete(m)}let k=Zo(R,C,E,b,n);k&&w.prepend(k);let I=Hn(g,b);I&&w.prepend(I);let ne={value:m=>`${m} is used as a value here, not only as a tag, so its import has to stay — deferring would hand those references a lazy wrapper instead of the component. Defer it at the point it is rendered, or keep it eager.`,namespace:m=>`${m} came in through a namespace import, which has no single export to defer. Import ${m} by name.`,local:m=>`${m} is declared in this file, so there is no module to load separately. Move it to its own file and import it.`,unsupplied:m=>`nothing supplies ${m}, so there is no import to defer. Import it, or add a \`resolve\` rule for it.`},T=[...C.ignoredLoad].map(([m,P])=>({name:m,strategy:P,message:`load:${P.kind} has no effect on <${m}>: ${ne[y.get(m)??"unsupplied"](m)}`})),jt=[...C.unresolved].map(m=>({name:m,message:`<${m}> is not defined: nothing imports it and no \`resolve\` rule supplies it. This compiles to a reference to a name that does not exist, so the component renders nothing. Import ${m}, or add a \`resolve\` rule for it.`}));return{code:w.toString(),map:w.generateMap({source:t,includeContent:!0,hires:!0}),...T.length?{loadDiagnostics:T}:{},...jt.length?{unresolvedDiagnostics:jt}:{},...x.diagnostics.length?{propsDiagnostics:x.diagnostics}:{},...g.diagnostics.length?{intrinsicDiagnostics:g.diagnostics}:{}}}function Yo(e,t,n,r,o,i,a,s,l){let p=Be(t,{code:d=>Ge(e,d.start,d.end,n),used:o,...s.sourceLocations===!0&&l?{sourceFile:l}:{}});G(p);let c=U(p,{resolver:X(s.resolve??[]),isBound:d=>i.declared.has(d),modules:{controlFlowModule:s.controlFlowModule??s.runtimeModule??"@fluixi/dom",coreModule:s.coreModule??"@fluixi/core",routerModule:s.routerModule??"@fluixi/core/router"},strategyFor:d=>d.load});for(let d of c.unresolved)i.unresolved.add(d);z(p);let u=L.emit(p,{templateClone:s.templateClone??!0,partialTemplates:r?!1:s.partialTemplates??!0});for(let d of u.imports)o.add(d);return $t(p,i),Gn(u.code,u.templates,a)}function Zo(e,t,n,r,o){let i=o.runtimeModule??"@fluixi/dom",a=o.coreModule??"@fluixi/core",s=new Map,l=(d,x)=>s.set(d,[...s.get(d)??[],x]),p=new Set(e);for(let d of t.builtins)p.add(d);t.delegatedEvents.size>0&&p.add("delegateEvents");for(let d of[...p].sort())r.has(d)||(_o.has(d)?l(o.reactiveModule??"@fluixi/reactive/signal",d):Jo.has(d)?l(o.routerModule??"@fluixi/core/router",d):Fo.has(d)?l(a,d):jo.has(d)?l(o.controlFlowModule??i,d):l(i,d));for(let[d,x]of t.resolved)r.has(d)||l(x.module,x.export==="default"?`default as ${d}`:d===x.export?d:`${x.export} as ${d}`);let c=[];for(let[d,x]of s)c.push(`import { ${x.join(", ")} } from ${JSON.stringify(d)};`);let u=[...t.deferred].filter(([d])=>!r.has(d));if(u.length>0){r.has("deferred")||c.push(`import { deferred } from ${JSON.stringify(a)};`);for(let[d,x]of u)c.push(`const ${d} = deferred(() => import(${JSON.stringify(x.module)}), { strategy: ${zo(x.loading)}, export: ${JSON.stringify(x.export)} });`)}for(let[d,x]of n)c.push(`const ${x} = ${JSON.stringify(d.startsWith("svg:")?d.slice(4):d)};`);return t.delegatedEvents.size>0&&c.push(`delegateEvents(${JSON.stringify([...t.delegatedEvents])});`),c.length>0?c.join(`
7
7
  `)+`
8
- `:null}var Mn,$n,fo,go,ho,yo,xt,jn=b(()=>{"use strict";Mn=require("@babel/parser"),$n=J(require("magic-string"),1);vn();Q();Pe();he();ct();fe();ke();ce();se();te();Ae();ht();Tn();le();yt();ae();fo=new Set(ie),go=new Set(K),ho=new Set(B),yo=new Set(["createMemo","createEffect","createRenderEffect","createRoot","createSignal","onCleanup","batch","untrack"]);xt=e=>e.type==="JSXElement"||e.type==="JSXFragment"});var Nt={};oe(Nt,{explainBail:()=>_e,moduleBindings:()=>re,planPropsDestructure:()=>Je,shapeOf:()=>A,transformProps:()=>En,transformTemplates:()=>Dn});var St=b(()=>{"use strict";jn();Ae();he();ht();ft()});function Co(e){let t=5381;for(let n=0;n<e.length;n++)t=t*33^e.charCodeAt(n);return(t>>>0).toString(16)}function He(e,t,n){let r=(e||"unknown").replace(t?t+"/":"","");return`${Co(r)}:${n}`}var Rt=b(()=>{"use strict"});var An={};oe(An,{transformServerFunctions:()=>$o});function Mo({types:e}){return{name:"fluixi-server-functions",visitor:{Program:{enter(t,n){n.fxIndex=0,n.fxUsed=null},exit(t,n){n.fxUsed&&t.unshiftContainer("body",e.importDeclaration([e.importSpecifier(e.identifier(n.fxUsed),e.identifier(n.fxUsed))],e.stringLiteral(n.opts.runtimeModule||To)))}},"FunctionDeclaration|FunctionExpression|ArrowFunctionExpression":(t,n)=>{let r=t.node.body;if(!e.isBlockStatement(r))return;let s=(r.directives||[]).findIndex(p=>p.value.value==="use server");if(s<0)return;r.directives.splice(s,1);let i=He(n.opts.filename||n.filename||"unknown",n.opts.root,n.fxIndex++),a=!!n.opts.ssr,l=a?"$$registerServerFn":"$$createServerReference";n.fxUsed=l;let c=a?e.callExpression(e.identifier(l),[e.stringLiteral(i),t.isFunctionDeclaration()?e.functionExpression(null,t.node.params,r,t.node.generator,t.node.async):t.node]):e.callExpression(e.identifier(l),[e.stringLiteral(i)]);t.isFunctionDeclaration()?t.replaceWith(e.variableDeclaration("const",[e.variableDeclarator(t.node.id,c)])):t.replaceWith(c),t.skip()}}}}function $o(e,t){if(!e.includes("use server"))return null;let n=(0,Ln.transformSync)(e,{filename:t.filename,configFile:!1,babelrc:!1,sourceMaps:!0,parserOpts:{plugins:["typescript","jsx"]},plugins:[[Mo,t]]});return n?.code?{code:n.code,map:n.map}:null}var Ln,To,Fn=b(()=>{"use strict";Ln=require("@babel/core");Rt();To="@fluixi/start/server-fn"});var Xn={};oe(Xn,{transformServerFns:()=>jo});function Do(e){if(!Po.has(e.type))return null;let t=e.body;if(!t||t.type!=="BlockStatement")return null;for(let n of t.directives??[])if(n.value?.value==="use server")return n;return null}function Et(e,t){if(!(!e||typeof e!="object")){if(Array.isArray(e)){for(let n of e)Et(n,t);return}if(typeof e.type=="string"){let n=Do(e);if(n){t.push({fn:e,directive:n});return}}for(let n of Object.keys(e))n==="loc"||n==="leadingComments"||n==="trailingComments"||Et(e[n],t)}}function jo(e,t){if(!e.includes("use server"))return null;let n=(0,Jn.parse)(e,{sourceType:"module",plugins:["jsx","typescript"],errorRecovery:!0}),r=[];if(Et(n.program,r),r.length===0)return null;let o=t.ssr?"$$registerServerFn":"$$createServerReference",s=new _n.default(e);return r.forEach(({fn:i,directive:a},l)=>{let c=He(t.filename,t.root,l),p=i.type==="FunctionDeclaration";if(!t.ssr){let d=`${o}(${JSON.stringify(c)})`;s.overwrite(i.start,i.end,p?`const ${i.id.name} = ${d};`:d);return}s.remove(a.start,a.end),s.appendLeft(i.start,p?`const ${i.id.name} = ${o}(${JSON.stringify(c)}, `:`${o}(${JSON.stringify(c)}, `),s.appendRight(i.end,p?");":")")}),s.prepend(`import { ${o} } from ${JSON.stringify(t.runtimeModule??Oo)};
9
- `),{code:s.toString(),map:s.generateMap({source:t.filename,includeContent:!0,hires:!0})}}var Jn,_n,Oo,Po,Bn=b(()=>{"use strict";Jn=require("@babel/parser"),_n=J(require("magic-string"),1);Rt();Oo="@fluixi/start/server-fn",Po=new Set(["FunctionDeclaration","FunctionExpression","ArrowFunctionExpression"])});var Ho={};oe(Ho,{createBabelPlugin:()=>Ve,createESBuildPlugin:()=>qn,createRollupPlugin:()=>Gn,createTypeScriptTransformer:()=>Vn,createVitePlugin:()=>Wn,createWebpackLoader:()=>zn,default:()=>Bo,serverFunctionsVitePlugin:()=>Xo});module.exports=nr(Ho);var H=require("node:fs"),O=require("node:path");se();ae();le();var ar=new Set(["Text","Image","Option","Audio","Comment","Range","Selection","Notification","Event","Document","Element","Node","Screen","Window","Location","History","Storage","Response","Request","Headers"]);function lr(e){if(e.startsWith(".")||e.startsWith("/")||/^[~@]\//.test(e))return;let t=e.split("/");return e.startsWith("@")?t.slice(0,2).join("/"):t[0]}function Ge(e){return`_${e.replace(/[^A-Za-z0-9]/g,"_")}`}function Pt(e,t={}){let{available:n,builtins:r=!0,intrinsics:o=!0,generator:s="@fluixi/compiler",specifier:i=v=>v}=t,a=[...e];r&&a.push({components:Se()});let l=X(a),c=n?new Set(n):void 0,p=[],d=[],m=[],x=new Map;for(let v of[...l.names()].sort()){let w=l.resolve(v);if(!w)continue;let k=lr(w.module);ar.has(v)?d.push(v):c&&k&&!c.has(k)?m.push(v):(p.push(v),x.set(v,w))}let y=o?[...new Set(Object.values(L).map(v=>v.module))]:[],h=[...new Set([...p.map(v=>x.get(v).module),...y])].sort().map(v=>`import * as ${Ge(v)} from '${i(v)}';`),E=p.map(v=>{let w=x.get(v),k=Ge(w.module);return w.export==="default"?` const ${v}: typeof ${k}.default;`:` export import ${v} = ${k}.${w.export};`}),C=d.length>0?`//
8
+ `:null}var Vn,Un,jo,Fo,Jo,_o,Tt,Kn=N(()=>{"use strict";Vn=require("@babel/parser"),Un=_(require("magic-string"),1);Ln();ee();_e();be();bt();ve();Me();ue();le();oe();We();It();Wn();pt();re();Le();pe();jo=new Set(ce),Fo=new Set(Y),Jo=new Set(H),_o=new Set(["createMemo","createEffect","createRenderEffect","createRoot","createSignal","onCleanup","batch","untrack"]);Tt=e=>e.type==="JSXElement"||e.type==="JSXFragment"});var Mt={};ae(Mt,{explainBail:()=>ze,moduleBindings:()=>se,planPropsDestructure:()=>Ue,shapeOf:()=>F,transformProps:()=>Bn,transformTemplates:()=>qn});var Ot=N(()=>{"use strict";Kn();We();be();It();wt()});function Qo(e){let t=5381;for(let n=0;n<e.length;n++)t=t*33^e.charCodeAt(n);return(t>>>0).toString(16)}function Ke(e,t,n){let r=(e||"unknown").replace(t?t+"/":"","");return`${Qo(r)}:${n}`}var Pt=N(()=>{"use strict"});var Zn={};ae(Zn,{transformServerFunctions:()=>ni});function ti({types:e}){return{name:"fluixi-server-functions",visitor:{Program:{enter(t,n){n.fxIndex=0,n.fxUsed=null},exit(t,n){n.fxUsed&&t.unshiftContainer("body",e.importDeclaration([e.importSpecifier(e.identifier(n.fxUsed),e.identifier(n.fxUsed))],e.stringLiteral(n.opts.runtimeModule||ei)))}},"FunctionDeclaration|FunctionExpression|ArrowFunctionExpression":(t,n)=>{let r=t.node.body;if(!e.isBlockStatement(r))return;let i=(r.directives||[]).findIndex(c=>c.value.value==="use server");if(i<0)return;r.directives.splice(i,1);let a=Ke(n.opts.filename||n.filename||"unknown",n.opts.root,n.fxIndex++),s=!!n.opts.ssr,l=s?"$$registerServerFn":"$$createServerReference";n.fxUsed=l;let p=s?e.callExpression(e.identifier(l),[e.stringLiteral(a),t.isFunctionDeclaration()?e.functionExpression(null,t.node.params,r,t.node.generator,t.node.async):t.node]):e.callExpression(e.identifier(l),[e.stringLiteral(a)]);t.isFunctionDeclaration()?t.replaceWith(e.variableDeclaration("const",[e.variableDeclarator(t.node.id,p)])):t.replaceWith(p),t.skip()}}}}function ni(e,t){if(!e.includes("use server"))return null;let n=(0,Yn.transformSync)(e,{filename:t.filename,configFile:!1,babelrc:!1,sourceMaps:!0,parserOpts:{plugins:["typescript","jsx"]},plugins:[[ti,t]]});return n?.code?{code:n.code,map:n.map}:null}var Yn,ei,Qn=N(()=>{"use strict";Yn=require("@babel/core");Pt();ei="@fluixi/start/server-fn"});var nr={};ae(nr,{transformServerFns:()=>si});function ii(e){if(!oi.has(e.type))return null;let t=e.body;if(!t||t.type!=="BlockStatement")return null;for(let n of t.directives??[])if(n.value?.value==="use server")return n;return null}function Dt(e,t){if(!(!e||typeof e!="object")){if(Array.isArray(e)){for(let n of e)Dt(n,t);return}if(typeof e.type=="string"){let n=ii(e);if(n){t.push({fn:e,directive:n});return}}for(let n of Object.keys(e))n==="loc"||n==="leadingComments"||n==="trailingComments"||Dt(e[n],t)}}function si(e,t){if(!e.includes("use server"))return null;let n=(0,er.parse)(e,{sourceType:"module",plugins:["jsx","typescript"],errorRecovery:!0}),r=[];if(Dt(n.program,r),r.length===0)return null;let o=t.ssr?"$$registerServerFn":"$$createServerReference",i=new tr.default(e);return r.forEach(({fn:a,directive:s},l)=>{let p=Ke(t.filename,t.root,l),c=a.type==="FunctionDeclaration";if(!t.ssr){let u=`${o}(${JSON.stringify(p)})`;i.overwrite(a.start,a.end,c?`const ${a.id.name} = ${u};`:u);return}i.remove(s.start,s.end),i.appendLeft(a.start,c?`const ${a.id.name} = ${o}(${JSON.stringify(p)}, `:`${o}(${JSON.stringify(p)}, `),i.appendRight(a.end,c?");":")")}),i.prepend(`import { ${o} } from ${JSON.stringify(t.runtimeModule??ri)};
9
+ `),{code:i.toString(),map:i.generateMap({source:t.filename,includeContent:!0,hires:!0})}}var er,tr,ri,oi,rr=N(()=>{"use strict";er=require("@babel/parser"),tr=_(require("magic-string"),1);Pt();ri="@fluixi/start/server-fn",oi=new Set(["FunctionDeclaration","FunctionExpression","ArrowFunctionExpression"])});var gi={};ae(gi,{createBabelPlugin:()=>Ye,createESBuildPlugin:()=>pr,createRollupPlugin:()=>cr,createTypeScriptTransformer:()=>ir,createVitePlugin:()=>sr,createWebpackLoader:()=>lr,default:()=>mi,serverFunctionsVitePlugin:()=>fi});module.exports=yr(gi);var W=require("node:fs"),O=require("node:path");le();pe();re();var Sr=new Set(["Text","Image","Option","Audio","Comment","Range","Selection","Notification","Event","Document","Element","Node","Screen","Window","Location","History","Storage","Response","Request","Headers"]);function Rr(e){if(e.startsWith(".")||e.startsWith("/")||/^[~@]\//.test(e))return;let t=e.split("/");return e.startsWith("@")?t.slice(0,2).join("/"):t[0]}function tt(e){return`_${e.replace(/[^A-Za-z0-9]/g,"_")}`}function Ht(e,t={}){let{available:n,builtins:r=!0,intrinsics:o=!0,generator:i="@fluixi/compiler",specifier:a=y=>y}=t,s=[...e];r&&s.push({components:ke()});let l=X(s),p=n?new Set(n):void 0,c=[],u=[],d=[],x=new Map;for(let y of[...l.names()].sort()){let k=l.resolve(y);if(!k)continue;let I=Rr(k.module);Sr.has(y)?u.push(y):p&&I&&!p.has(I)?d.push(y):(c.push(y),x.set(y,k))}let g=o?[...new Set(Object.values(D).map(y=>y.module))]:[],v=[...new Set([...c.map(y=>x.get(y).module),...g])].sort().map(y=>`import * as ${tt(y)} from '${a(y)}';`),R=c.map(y=>{let k=x.get(y),I=tt(k.module);return k.export==="default"?` const ${y}: typeof ${I}.default;`:` export import ${y} = ${I}.${k.export};`}),C=u.length>0?`//
10
10
  // Import these explicitly — lib.dom already declares the name, so an ambient
11
11
  // declaration cannot win:
12
- `+d.map(v=>{let w=l.resolve(v)?.module;return`// import { ${v} } from '${w?i(w):""}';
13
- `}).join(""):"",R=o?Object.entries(L).map(([v,w])=>` const ${v}: typeof ${Ge(w.module)}.${w.export};`):[],S=e.filter(v=>"match"in v).length,I=S>0?`//
12
+ `+u.map(y=>{let k=l.resolve(y)?.module;return`// import { ${y} } from '${k?a(k):""}';
13
+ `}).join(""):"",E=o?Object.entries(D).map(([y,k])=>` const ${y}: typeof ${tt(k.module)}.${k.export};`):[],S=e.filter(y=>"match"in y).length,w=S>0?`//
14
14
  // ${S} pattern rule${S===1?"":"s"} cannot be declared:
15
15
  // a pattern matches unboundedly many names, so there is no list to emit. Those
16
16
  // tags still resolve at build time; declare them by hand if the editor needs them.
17
- `:"";return{source:`// GENERATED by ${s} — do not edit.
17
+ `:"";return{source:`// GENERATED by ${i} — do not edit.
18
18
  //
19
19
  // The components \`resolve\` supplies without an import. This describes what the
20
20
  // compiler already does; it does not enable it.
21
- `+C+I+(h.length>0?`
22
- ${h.join(`
21
+ `+C+w+(v.length>0?`
22
+ ${v.join(`
23
23
  `)}
24
24
  `:`
25
25
  `)+`
26
26
  declare global {
27
- ${[...E,...R].join(`
27
+ ${[...R,...E].join(`
28
28
  `)}
29
29
  }
30
- `,declared:p,shadowedByDom:d,unavailable:m,patternRules:S}}var cr="GENERATED by @fluixi/compiler",pr="fluixi.d.ts";function ur(e,t){let n;try{let o=(0,H.readFileSync)((0,O.resolve)(e,"tsconfig.json"),"utf8");n=JSON.parse(o.replace(/^\s*\/\/.*$/gm,""))}catch{return}if(n.extends!==void 0)return;if(!Array.isArray(n.include))return!0;let r=jt(e,t);return n.include.some(o=>{if(typeof o!="string")return!1;let s=o.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*\//g,"(?:.*/)?").replace(/\*/g,"[^/]*");return new RegExp(`^${s}(?:/.*)?$`).test(r)})}function jt(e,t){return(0,O.relative)(e,t).split(O.sep).join("/")}function dr(e,t,n){if(!e.startsWith("/"))return e;let r=(0,O.resolve)(n,e.slice(1)),o=(0,O.relative)(t,r).split(O.sep).join("/");return o.startsWith(".")||(o=`./${o}`),o.replace(/\.(tsx|ts|jsx|mts|cts)$/,".js")}function mr(e){try{let t=JSON.parse((0,H.readFileSync)((0,O.resolve)(e,"package.json"),"utf8"));return[...Object.keys(t.dependencies??{}),...Object.keys(t.devDependencies??{}),...Object.keys(t.peerDependencies??{})]}catch{return}}function Lt(e,t){if(e.globals===!1)return{status:"skipped",reason:"disabled"};let n=e.resolve??[],r=(0,O.resolve)(t,e.globals??pr),o;try{o=(0,H.readFileSync)(r,"utf8")}catch{o=void 0}if(o!==void 0&&!o.includes(cr))return{status:"skipped",reason:"foreign-file",path:r};let{source:s,declared:i}=Pt(n,{available:mr(t),specifier:a=>dr(a,(0,O.dirname)(r),t)});return o===s?{status:"unchanged",path:r,declared:i.length,warning:Dt(t,r)}:((0,H.mkdirSync)((0,O.dirname)(r),{recursive:!0}),(0,H.writeFileSync)(r,s),{status:"written",path:r,declared:i.length,warning:Dt(t,r)})}function Dt(e,t){if(ur(e,t)!==!1)return;let n=jt(e,t);return`[fluixi] ${n} is not covered by "include" in tsconfig.json, so TypeScript will ignore it and every resolved component stays "Cannot find name". Add "${n}" to "include".`}var Ue=require("node:fs"),kt=require("node:path");async function Ve(e={}){let t=null;try{t=await Promise.resolve().then(()=>(hn(),gn))}catch(n){console.warn("Could not load the babel front-end:",n)}return{name:"babel-fluixi-jsx",plugin:t?t.default||t:null,getOptions(){return{importSource:e.importSource||"@fluixi/jsx",development:e.development||!1,delegateEvents:e.delegateEvents!==!1,...e.format?{format:e.format}:{},...e.resolve?{resolve:e.resolve}:{},...e.templateClone!==void 0?{templateClone:e.templateClone}:{},...e.partialTemplates!==void 0?{partialTemplates:e.partialTemplates}:{},...e.litTag?{litTag:e.litTag}:{},...e.signalModule?{signalModule:e.signalModule}:{},...e.controlFlowModule?{controlFlowModule:e.controlFlowModule}:{},...e.routerModule?{routerModule:e.routerModule}:{},...e.reactiveModule?{reactiveModule:e.reactiveModule}:{}}}}}function Vn(e={}){let t=Ao("typescript");return t?n=>{let r=o=>t.isJsxElement(o)||t.isJsxSelfClosingElement(o)?Lo(o,e,t):t.visitEachChild(o,r,n);return o=>t.visitNode(o,r)}:(console.warn("TypeScript not found, transformer unavailable"),n=>r=>r)}function Lo(e,t,n){return e}function Ao(e){try{return require(e)}catch{return null}}var Fo={"@fluixi/core/router-next":"is now @fluixi/core/router","@fluixi/core/rx":"is gone — import signals and effects from @fluixi/reactive, or the server primitives it resolved to under node from @fluixi/core/server"};function Wn(e={}){return{name:"vite-fluixi-jsx",enforce:"pre",config(){return{esbuild:{jsx:"automatic",jsxImportSource:e.importSource||"@fluixi/jsx"}}},configResolved(t){let n=Lt(e,t?.root??process.cwd());n.warning&&console.warn(n.warning)},resolveId(t,n){let r=Fo[t];if(!r)return null;throw new Error(`[fluixi] ${t} ${r}`+(n?`
31
- imported by ${n}`:""))},async transform(t,n){if(!/\.(jsx|tsx|ts)$/i.test(n))return null;if(!e.babel)return We(t,n,e);let r=await Ve(e);try{let o=await import("@babel/core").catch(()=>null);if(!o)throw new Error(`[fluixi] @babel/core is required to compile ${n} but could not be loaded. Install it alongside @fluixi/compiler.`);let s=/\.tsx$/.test(n),i=/\.ts$/.test(n),a=[],l=[];if(s||i){let p=await import("@babel/preset-typescript").then(d=>d.default||d).catch(()=>null);p&&a.push([p,{isTSX:s,allExtensions:!0,jsxPragma:"jsx",jsxPragmaFrag:"Fragment",onlyRemoveTypeImports:!0}])}r&&r.plugin?l.push([r.plugin,r.getOptions()]):console.warn("[createVitePlugin] custom babel plugin not found");let c=await o.transformAsync(t,{filename:n,configFile:!1,babelrc:!1,presets:a,plugins:l,sourceMaps:e.sourceMaps!==!1});return{code:c?.code||t,map:c?.map}}catch(o){throw o}}}}function Jo(e){return{resolve:e.resolve,litTag:e.litTag,templateClone:e.templateClone,partialTemplates:e.partialTemplates,runtimeModule:e.signalModule,controlFlowModule:e.controlFlowModule,routerModule:e.routerModule,reactiveModule:e.reactiveModule,propsDestructure:e.propsDestructure}}async function _o(e,t,n){if(n.propsDestructure===!1)return e;let{transformProps:r}=await Promise.resolve().then(()=>(St(),Nt)),o=r(e,t);return Un({propsDiagnostics:o.diagnostics},t),o.rewritten>0?o.code:e}var Hn=new Set;function Un(e,t){let n=e,r=o=>{let s=`${t}\0${o}`;Hn.has(s)||(Hn.add(s),console.warn(`[fluixi] ${t}: ${o}`))};for(let o of n?.unresolvedDiagnostics??[])r(o.message);for(let o of n?.loadDiagnostics??[])r(o.message);for(let o of n?.intrinsicDiagnostics??[])r(o.message);for(let o of n?.propsDiagnostics??[])r(`\`${o.name}\` was left destructured: ${o.message}. It reads once instead of tracking.`)}async function We(e,t,n){if(!n.babel){let{transformTemplates:a}=await Promise.resolve().then(()=>(St(),Nt)),l=a(e,t,Jo(n));return Un(l,t),l}let r=await _o(e,t,n),o=await import("@babel/core").catch(()=>null),s=await Ve(n);if(!o||!s.plugin)throw new Error(`[fluixi] babel: true needs @babel/core, which could not be loaded for ${t}. Install it, or drop the option to use the built-in compiler.`);let i=await o.transformAsync(r,{filename:t,configFile:!1,babelrc:!1,plugins:[[s.plugin,s.getOptions()]],sourceMaps:n.sourceMaps!==!1});return i?.code?{code:i.code,map:i.map}:null}function zn(e={}){return async function(t){let n=this.async();We(t,this.resourcePath,e).then(r=>{n(null,r?.code,r?.map)}).catch(r=>{n(r)})}}function Gn(e={}){return{name:"rollup-fluixi-jsx",async transform(t,n){return/\.[jt]sx?$/.test(n)?We(t,n,e):null}}}function qn(e={}){return{name:"esbuild-fluixi-jsx",setup(t){t.onLoad({filter:/\.[jt]sx?$/},async n=>{let{readFileSync:r}=await import("node:fs"),o=r(n.path,"utf8");try{return{contents:(await We(o,n.path,e))?.code??o,loader:n.path.endsWith("x")?"tsx":"ts"}}catch(s){return{errors:[{text:`Transform error: ${s}`}]}}})}}}var wt="virtual:fluixi-server-fns";function Kn(e,t=[]){let n;try{n=(0,Ue.readdirSync)(e,{withFileTypes:!0})}catch{return t}for(let r of n){if(r.name==="node_modules"||r.name==="dist"||r.name.startsWith("."))continue;let o=(0,kt.join)(e,r.name);if(r.isDirectory())Kn(o,t);else if(/\.[jt]sx?$/.test(r.name))try{(0,Ue.readFileSync)(o,"utf8").includes("use server")&&t.push(o)}catch{}}return t}function Xo(e={}){let t=process.cwd();return{name:"fluixi-server-functions",enforce:"pre",configResolved(n){t=n.root||t},resolveId(n){return n===wt||n==="@fluixi/start/server-fns"?"\0"+wt:null},load(n){if(n!=="\0"+wt)return null;let r=Kn((0,kt.join)(t,"src")),o=`import '@fluixi/start/server-fn-setup';
32
- `,s=r.map(a=>`import ${JSON.stringify(a)};`).join(`
33
- `);return o+s+`
30
+ `,declared:c,shadowedByDom:u,unavailable:d,patternRules:S}}var Er="GENERATED by @fluixi/compiler",wr="fluixi.d.ts";function kr(e,t){let n;try{let o=(0,W.readFileSync)((0,O.resolve)(e,"tsconfig.json"),"utf8");n=JSON.parse(o.replace(/^\s*\/\/.*$/gm,""))}catch{return}if(n.extends!==void 0)return;if(!Array.isArray(n.include))return!0;let r=Vt(e,t);return n.include.some(o=>{if(typeof o!="string")return!1;let i=o.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*\//g,"(?:.*/)?").replace(/\*/g,"[^/]*");return new RegExp(`^${i}(?:/.*)?$`).test(r)})}function Vt(e,t){return(0,O.relative)(e,t).split(O.sep).join("/")}function Ir(e,t,n){if(!e.startsWith("/"))return e;let r=(0,O.resolve)(n,e.slice(1)),o=(0,O.relative)(t,r).split(O.sep).join("/");return o.startsWith(".")||(o=`./${o}`),o.replace(/\.(tsx|ts|jsx|mts|cts)$/,".js")}function Cr(e){try{let t=JSON.parse((0,W.readFileSync)((0,O.resolve)(e,"package.json"),"utf8"));return[...Object.keys(t.dependencies??{}),...Object.keys(t.devDependencies??{}),...Object.keys(t.peerDependencies??{})]}catch{return}}function Ut(e,t){if(e.globals===!1)return{status:"skipped",reason:"disabled"};let n=e.resolve??[],r=(0,O.resolve)(t,e.globals??wr),o;try{o=(0,W.readFileSync)(r,"utf8")}catch{o=void 0}if(o!==void 0&&!o.includes(Er))return{status:"skipped",reason:"foreign-file",path:r};let{source:i,declared:a}=Ht(n,{available:Cr(t),specifier:s=>Ir(s,(0,O.dirname)(r),t)});return o===i?{status:"unchanged",path:r,declared:a.length,warning:Wt(t,r)}:((0,W.mkdirSync)((0,O.dirname)(r),{recursive:!0}),(0,W.writeFileSync)(r,i),{status:"written",path:r,declared:a.length,warning:Wt(t,r)})}function Wt(e,t){if(kr(e,t)!==!1)return;let n=Vt(e,t);return`[fluixi] ${n} is not covered by "include" in tsconfig.json, so TypeScript will ignore it and every resolved component stays "Cannot find name". Add "${n}" to "include".`}var Qe=require("node:fs"),At=require("node:path");async function Ye(e={}){let t=null;try{t=await Promise.resolve().then(()=>(Pn(),On))}catch(n){console.warn("Could not load the babel front-end:",n)}return{name:"babel-fluixi-jsx",plugin:t?t.default||t:null,getOptions(){return{importSource:e.importSource||"@fluixi/jsx",development:e.development||!1,delegateEvents:e.delegateEvents!==!1,...e.format?{format:e.format}:{},...e.resolve?{resolve:e.resolve}:{},...e.templateClone!==void 0?{templateClone:e.templateClone}:{},...e.partialTemplates!==void 0?{partialTemplates:e.partialTemplates}:{},...e.litTag?{litTag:e.litTag}:{},...e.signalModule?{signalModule:e.signalModule}:{},...e.controlFlowModule?{controlFlowModule:e.controlFlowModule}:{},...e.routerModule?{routerModule:e.routerModule}:{},...e.reactiveModule?{reactiveModule:e.reactiveModule}:{}}}}}function ir(e={}){let t=li("typescript");return t?n=>{let r=o=>t.isJsxElement(o)||t.isJsxSelfClosingElement(o)?ai(o,e,t):t.visitEachChild(o,r,n);return o=>t.visitNode(o,r)}:(console.warn("TypeScript not found, transformer unavailable"),n=>r=>r)}function ai(e,t,n){return e}function li(e){try{return require(e)}catch{return null}}var ci={"@fluixi/core/router-next":"is now @fluixi/core/router","@fluixi/core/rx":"is gone — import signals and effects from @fluixi/reactive, or the server primitives it resolved to under node from @fluixi/core/server"};function sr(e={}){return{name:"vite-fluixi-jsx",enforce:"pre",config(){return{esbuild:{jsx:"automatic",jsxImportSource:e.importSource||"@fluixi/jsx"}}},configResolved(t){let n=Ut(e,t?.root??process.cwd());n.warning&&console.warn(n.warning)},resolveId(t,n){let r=ci[t];if(!r)return null;throw new Error(`[fluixi] ${t} ${r}`+(n?`
31
+ imported by ${n}`:""))},async transform(t,n){if(!/\.(jsx|tsx|ts)$/i.test(n))return null;if(!e.babel)return Ze(t,n,e);let r=await Ye(e);try{let o=await import("@babel/core").catch(()=>null);if(!o)throw new Error(`[fluixi] @babel/core is required to compile ${n} but could not be loaded. Install it alongside @fluixi/compiler.`);let i=/\.tsx$/.test(n),a=/\.ts$/.test(n),s=[],l=[];if(i||a){let c=await import("@babel/preset-typescript").then(u=>u.default||u).catch(()=>null);c&&s.push([c,{isTSX:i,allExtensions:!0,jsxPragma:"jsx",jsxPragmaFrag:"Fragment",onlyRemoveTypeImports:!0}])}r&&r.plugin?l.push([r.plugin,r.getOptions()]):console.warn("[createVitePlugin] custom babel plugin not found");let p=await o.transformAsync(t,{filename:n,configFile:!1,babelrc:!1,presets:s,plugins:l,sourceMaps:e.sourceMaps!==!1});return{code:p?.code||t,map:p?.map}}catch(o){throw o}}}}function pi(e,t){if(e.sourceLocations!==!0)return!1;if(e.sourceLocationsExternal)return!0;if(!t||t.includes("/node_modules/"))return!1;let n=e.sourceRoot;if(!n)return!0;let r=n.endsWith("/")?n:`${n}/`;return t.startsWith(r)}function ui(e,t){return{resolve:e.resolve,litTag:e.litTag,sourceLocations:pi(e,t),sourceRoot:e.sourceRoot,templateClone:e.templateClone,partialTemplates:e.partialTemplates,runtimeModule:e.signalModule,controlFlowModule:e.controlFlowModule,routerModule:e.routerModule,reactiveModule:e.reactiveModule,propsDestructure:e.propsDestructure}}async function di(e,t,n){if(n.propsDestructure===!1)return e;let{transformProps:r}=await Promise.resolve().then(()=>(Ot(),Mt)),o=r(e,t);return ar({propsDiagnostics:o.diagnostics},t),o.rewritten>0?o.code:e}var or=new Set;function ar(e,t){let n=e,r=o=>{let i=`${t}\0${o}`;or.has(i)||(or.add(i),console.warn(`[fluixi] ${t}: ${o}`))};for(let o of n?.unresolvedDiagnostics??[])r(o.message);for(let o of n?.loadDiagnostics??[])r(o.message);for(let o of n?.intrinsicDiagnostics??[])r(o.message);for(let o of n?.propsDiagnostics??[])r(`\`${o.name}\` was left destructured: ${o.message}. It reads once instead of tracking.`)}async function Ze(e,t,n){if(!n.babel){let{transformTemplates:s}=await Promise.resolve().then(()=>(Ot(),Mt)),l=s(e,t,ui(n,t));return ar(l,t),l}let r=await di(e,t,n),o=await import("@babel/core").catch(()=>null),i=await Ye(n);if(!o||!i.plugin)throw new Error(`[fluixi] babel: true needs @babel/core, which could not be loaded for ${t}. Install it, or drop the option to use the built-in compiler.`);let a=await o.transformAsync(r,{filename:t,configFile:!1,babelrc:!1,plugins:[[i.plugin,i.getOptions()]],sourceMaps:n.sourceMaps!==!1});return a?.code?{code:a.code,map:a.map}:null}function lr(e={}){return async function(t){let n=this.async();Ze(t,this.resourcePath,e).then(r=>{n(null,r?.code,r?.map)}).catch(r=>{n(r)})}}function cr(e={}){return{name:"rollup-fluixi-jsx",async transform(t,n){return/\.[jt]sx?$/.test(n)?Ze(t,n,e):null}}}function pr(e={}){return{name:"esbuild-fluixi-jsx",setup(t){t.onLoad({filter:/\.[jt]sx?$/},async n=>{let{readFileSync:r}=await import("node:fs"),o=r(n.path,"utf8");try{return{contents:(await Ze(o,n.path,e))?.code??o,loader:n.path.endsWith("x")?"tsx":"ts"}}catch(i){return{errors:[{text:`Transform error: ${i}`}]}}})}}}var Lt="virtual:fluixi-server-fns";function ur(e,t=[]){let n;try{n=(0,Qe.readdirSync)(e,{withFileTypes:!0})}catch{return t}for(let r of n){if(r.name==="node_modules"||r.name==="dist"||r.name.startsWith("."))continue;let o=(0,At.join)(e,r.name);if(r.isDirectory())ur(o,t);else if(/\.[jt]sx?$/.test(r.name))try{(0,Qe.readFileSync)(o,"utf8").includes("use server")&&t.push(o)}catch{}}return t}function fi(e={}){let t=process.cwd();return{name:"fluixi-server-functions",enforce:"pre",configResolved(n){t=n.root||t},resolveId(n){return n===Lt||n==="@fluixi/start/server-fns"?"\0"+Lt:null},load(n){if(n!=="\0"+Lt)return null;let r=ur((0,At.join)(t,"src")),o=`import '@fluixi/start/server-fn-setup';
32
+ `,i=r.map(s=>`import ${JSON.stringify(s)};`).join(`
33
+ `);return o+i+`
34
34
  export { isServerFnRequest, handleServerFn } from '@fluixi/start/server-fn';
35
- `},async transform(n,r,o){if(!/\.[jt]sx?$/.test(r)||!n.includes("use server"))return null;let s={ssr:!!o?.ssr,filename:r,root:t};if(e.babel){let{transformServerFunctions:a}=await Promise.resolve().then(()=>(Fn(),An));return a(n,s)}let{transformServerFns:i}=await Promise.resolve().then(()=>(Bn(),Xn));return i(n,s)}}}var Bo={createBabelPlugin:Ve,createTypeScriptTransformer:Vn,createVitePlugin:Wn,createWebpackLoader:zn,createRollupPlugin:Gn,createESBuildPlugin:qn};
35
+ `},async transform(n,r,o){if(!/\.[jt]sx?$/.test(r)||!n.includes("use server"))return null;let i={ssr:!!o?.ssr,filename:r,root:t};if(e.babel){let{transformServerFunctions:s}=await Promise.resolve().then(()=>(Qn(),Zn));return s(n,i)}let{transformServerFns:a}=await Promise.resolve().then(()=>(rr(),nr));return a(n,i)}}}var mi={createBabelPlugin:Ye,createTypeScriptTransformer:ir,createVitePlugin:sr,createWebpackLoader:lr,createRollupPlugin:cr,createESBuildPlugin:pr};
@@ -67,6 +67,22 @@ export interface CompilerOptions {
67
67
  * @default 'both'
68
68
  */
69
69
  format?: 'jsx' | 'lit' | 'both';
70
+ /**
71
+ * Record where each reactive node is created, and serve the running app's graph to a tool
72
+ * that asks for it. Development only — a build never carries either.
73
+ *
74
+ * On by default when the dev server is running and @fluixi/devtools is installed. The
75
+ * marks are what turn `m5` into `double @ src/app.tsx:6`, and the endpoint is what an
76
+ * editor or a graph panel reads.
77
+ *
78
+ * `{ external: true }` marks dependencies too — node_modules and anything outside the
79
+ * project. That is for working on the framework itself: the graph then shows which nodes
80
+ * a library created and which the application did, at the cost of a mark per node in code
81
+ * you are not editing.
82
+ */
83
+ devtools?: boolean | {
84
+ external?: boolean;
85
+ };
70
86
  /**
71
87
  * Compile through babel instead of rewriting the source directly.
72
88
  *
@@ -1 +1 @@
1
- {"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../src/integrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC3C;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACzB,6FAA6F;IAC7F,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAEhC;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,eAAoB;;;;;;;;;;;;;;;;;GAwCpE;AAMD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,GAAE,eAAoB,aAIpD,GAAG,MAAM,YAAY,GAAG,SAkB5C;AAqCD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAE,eAAoB,GAAG,CAAC,CAsHpE;AA0GD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,eAAoB,IACxC,MAAM,GAAG,EAAE,QAAQ,MAAM,mBAUjD;AAMD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,eAAoB;;oBAItC,MAAM,MAAM,MAAM;;;;;;;;;;;;EAK3C;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,eAAoB;;iBAIhD,GAAG;EAwBnB;AAWD,YAAY,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AA8B7E;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,CAAC,CAqCvF;;;;;;;;;AAED,wBAOE"}
1
+ {"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../src/integrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC3C;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACzB,6FAA6F;IAC7F,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAEhC;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAE5C;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,eAAoB;;;;;;;;;;;;;;;;;GAwCpE;AAMD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,GAAE,eAAoB,aAIpD,GAAG,MAAM,YAAY,GAAG,SAkB5C;AAqCD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAE,eAAoB,GAAG,CAAC,CAsHpE;AAoID;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,eAAoB,IACxC,MAAM,GAAG,EAAE,QAAQ,MAAM,mBAUjD;AAMD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,eAAoB;;oBAItC,MAAM,MAAM,MAAM;;;;;;;;;;;;EAK3C;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,eAAoB;;iBAIhD,GAAG;EAwBnB;AAWD,YAAY,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AA8B7E;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,CAAC,CAqCvF;;;;;;;;;AAED,wBAOE"}
@@ -225,10 +225,29 @@ export function createVitePlugin(options = {}) {
225
225
  };
226
226
  }
227
227
  /** CompilerOptions as the transform wants them. Shared by every adapter. */
228
- function transformOptions(options) {
228
+ /**
229
+ * A dependency's own signals are not the author's, and marking them costs a call per node in
230
+ * code nobody is going to open. Source marks stop at the project boundary.
231
+ */
232
+ function marks(options, id) {
233
+ if (options.sourceLocations !== true)
234
+ return false;
235
+ if (options.sourceLocationsExternal)
236
+ return true;
237
+ if (!id || id.includes('/node_modules/'))
238
+ return false;
239
+ const root = options.sourceRoot;
240
+ if (!root)
241
+ return true;
242
+ const base = root.endsWith('/') ? root : `${root}/`;
243
+ return id.startsWith(base);
244
+ }
245
+ function transformOptions(options, id) {
229
246
  return {
230
247
  resolve: options.resolve,
231
248
  litTag: options.litTag,
249
+ sourceLocations: marks(options, id),
250
+ sourceRoot: options.sourceRoot,
232
251
  templateClone: options.templateClone,
233
252
  partialTemplates: options.partialTemplates,
234
253
  runtimeModule: options.signalModule,
@@ -295,7 +314,7 @@ function reportDiagnostics(result, id) {
295
314
  async function compileModule(code, id, options) {
296
315
  if (!options.babel) {
297
316
  const { transformTemplates } = await import('./transform/index.js');
298
- const result = transformTemplates(code, id, transformOptions(options));
317
+ const result = transformTemplates(code, id, transformOptions(options, id));
299
318
  reportDiagnostics(result, id);
300
319
  return result;
301
320
  }