@fluixi/compiler 1.0.0-alpha.74 → 1.0.0-alpha.76

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 (72) hide show
  1. package/dist/analyze/intrinsics.cjs +1 -0
  2. package/dist/analyze/intrinsics.d.ts +67 -0
  3. package/dist/analyze/intrinsics.d.ts.map +1 -0
  4. package/dist/analyze/intrinsics.js +91 -0
  5. package/dist/analyze/intrinsics.mjs +1 -0
  6. package/dist/analyze/props-destructure.cjs +1 -0
  7. package/dist/analyze/props-destructure.d.ts +84 -0
  8. package/dist/analyze/props-destructure.d.ts.map +1 -0
  9. package/dist/analyze/props-destructure.js +272 -0
  10. package/dist/analyze/props-destructure.mjs +1 -0
  11. package/dist/analyze/reactive-bindings.cjs +1 -0
  12. package/dist/analyze/reactive-bindings.d.ts +34 -0
  13. package/dist/analyze/reactive-bindings.d.ts.map +1 -0
  14. package/dist/analyze/reactive-bindings.js +153 -0
  15. package/dist/analyze/reactive-bindings.mjs +1 -0
  16. package/dist/{babel-GXO3KAVI.mjs → babel-YQ42WUS3.mjs} +1 -1
  17. package/dist/chunk-545LMC5W.mjs +1 -0
  18. package/dist/{chunk-TIE4XNAM.mjs → chunk-L2QPV25P.mjs} +1 -1
  19. package/dist/frontend/babel/build-ir-lit.cjs +1 -1
  20. package/dist/frontend/babel/build-ir-lit.mjs +1 -1
  21. package/dist/frontend/babel/build-ir.cjs +1 -1
  22. package/dist/frontend/babel/build-ir.mjs +1 -1
  23. package/dist/frontend/babel/index.cjs +1 -1
  24. package/dist/frontend/babel/index.mjs +1 -1
  25. package/dist/frontend/babel/lower-template.cjs +1 -1
  26. package/dist/frontend/babel/lower-template.mjs +1 -1
  27. package/dist/frontend/babel/plugin.cjs +1 -1
  28. package/dist/frontend/babel/plugin.mjs +1 -1
  29. package/dist/index.cjs +8 -8
  30. package/dist/index.mjs +9 -9
  31. package/dist/integrations.cjs +18 -14
  32. package/dist/integrations.d.ts +14 -0
  33. package/dist/integrations.d.ts.map +1 -1
  34. package/dist/integrations.js +16 -1
  35. package/dist/integrations.mjs +11 -11
  36. package/dist/lower/compile-template.cjs +1 -1
  37. package/dist/lower/compile-template.mjs +1 -1
  38. package/dist/lower/template.cjs +1 -1
  39. package/dist/lower/template.d.ts.map +1 -1
  40. package/dist/lower/template.js +7 -5
  41. package/dist/lower/template.mjs +1 -1
  42. package/dist/resolve/component-globals.cjs +9 -9
  43. package/dist/resolve/component-globals.d.ts +8 -0
  44. package/dist/resolve/component-globals.d.ts.map +1 -1
  45. package/dist/resolve/component-globals.js +17 -3
  46. package/dist/resolve/component-globals.mjs +9 -9
  47. package/dist/resolve/write-globals.cjs +9 -9
  48. package/dist/resolve/write-globals.mjs +9 -9
  49. package/dist/transform/index.cjs +5 -1
  50. package/dist/transform/index.d.ts +4 -0
  51. package/dist/transform/index.d.ts.map +1 -1
  52. package/dist/transform/index.js +2 -0
  53. package/dist/transform/index.mjs +14 -10
  54. package/dist/transform/intrinsics.cjs +3 -0
  55. package/dist/transform/intrinsics.d.ts +22 -0
  56. package/dist/transform/intrinsics.d.ts.map +1 -0
  57. package/dist/transform/intrinsics.js +78 -0
  58. package/dist/transform/intrinsics.mjs +3 -0
  59. package/dist/transform/props.cjs +3 -0
  60. package/dist/transform/props.d.ts +46 -0
  61. package/dist/transform/props.d.ts.map +1 -0
  62. package/dist/transform/props.js +221 -0
  63. package/dist/transform/props.mjs +12 -0
  64. package/dist/transform/templates.cjs +4 -1
  65. package/dist/transform/templates.d.ts +20 -0
  66. package/dist/transform/templates.d.ts.map +1 -1
  67. package/dist/transform/templates.js +41 -6
  68. package/dist/transform/templates.mjs +13 -10
  69. package/dist/transform-ZWIHEZVN.mjs +7 -0
  70. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  71. package/package.json +8 -7
  72. package/dist/transform-PJX2GNSV.mjs +0 -3
@@ -1,29 +1,33 @@
1
- "use strict";var gn=Object.create;var ce=Object.defineProperty;var hn=Object.getOwnPropertyDescriptor;var vn=Object.getOwnPropertyNames;var yn=Object.getPrototypeOf,xn=Object.prototype.hasOwnProperty;var b=(e,t)=>()=>(e&&(t=e(e=0)),t);var q=(e,t)=>{for(var n in t)ce(e,n,{get:t[n],enumerable:!0})},ot=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of vn(t))!xn.call(e,r)&&r!==n&&ce(e,r,{get:()=>t[r],enumerable:!(o=hn(t,r))||o.enumerable});return e};var O=(e,t,n)=>(n=e!=null?gn(yn(e)):{},ot(t||!e||!e.__esModule?ce(n,"default",{value:e,enumerable:!0}):n,e)),bn=e=>ot(ce({},"__esModule",{value:!0}),e);function it(e,t){return e.replace(/\$(\d+)/g,(n,o)=>t[Number(o)]??n)}function Sn(e,t){return typeof t=="string"?{module:t,export:e}:t}function P(e=[]){let t=new Map,n=[],o=[];for(let s of e){if(!Rn(s)){o.push(s);continue}for(let[a,l]of Object.entries(s.components)){let c=Sn(a,l),u=t.get(a);if(u&&u.module!==c.module){let m=n.find(d=>d.name===a);m?m.modules.push(c.module):n.push({name:a,modules:[u.module,c.module]});continue}t.set(a,c)}}let r=new Map;return{resolve:s=>{if(r.has(s))return r.get(s);let a=t.get(s);if(!a)for(let l of o){let c=s.match(new RegExp(l.match.source,l.match.flags.replace("g","")));if(c){a={module:it(l.module,c),export:l.export?it(l.export,c):s};break}}return r.set(s,a),a},names:()=>[...t.keys()],conflicts:()=>n}}var Rn,K=b(()=>{"use strict";Rn=e=>"components"in e});function pe(e={}){let{controlFlowModule:t="@fluixi/dom",coreModule:n="@fluixi/core",routerModule:o="@fluixi/core/router-next"}=e,r={};for(let i of Y)r[i]=t;for(let i of B)r[i]=n;for(let i of L)r[i]=o;return r}var Y,B,L,Ur,$e,Z=b(()=>{"use strict";Y=["Show","For","Index","Switch","Match","Portal","Dynamic","ErrorBoundary"],B=["Suspense","SuspenseList","Await"],L=["Router","Outlet","Redirect","Link"],Ur=[...Y,...B,...L],$e=new Set([...Y,...B])});function Oe(e){return e.startsWith("load:")}function de(e,t){let n=e.slice(5);if(!ut.has(n))throw new F(`Unknown load strategy 'load:${n}'. Expected one of ${[...ut].join(", ")}.`);switch(n){case"eager":return ue;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?$n(t):[...Mn]};case"media":if(!t)throw new F(`'load:media' needs a query, e.g. load:media="(min-width: 1024px)".`);return{kind:"media",query:t};default:throw new F(`Unhandled load strategy '${n}'.`)}}function $n(e){let t=e.split(/[\s,]+/).map(n=>n.trim()).filter(Boolean);if(t.length===0)throw new F("'load:interaction' was given no event names.");return t}function G(e){return e.kind!=="eager"&&e.kind!=="never"}var ue,Mn,ut,F,H=b(()=>{"use strict";ue={kind:"eager"},Mn=["pointerdown","focusin","keydown"],ut=new Set(["eager","idle","visible","interaction","media","never"]),F=class extends Error{}});function J(e,t={}){let{resolver:n,isBound:o,modules:r,strategyFor:i}=t,s=pe(r),a=new Map,l=new Set,c=m=>{let{name:d}=m;if(!d||d.includes(".")||o?.(d))return;let x=u(d);if(!x){l.add(d);return}let N=x.origin==="builtin"&&$e.has(d)?ue:i?.(m)??ue;m.source={...x,loading:N},a.set(d,m.source)},u=m=>{if($e.has(m))return{module:s[m],export:m,origin:"builtin"};let d=n?.resolve(m);if(d)return{module:d.module,export:d.export,origin:"rule"};if(L.includes(m))return{module:s[m],export:m,origin:"builtin"}};return me(e,m=>{m.kind==="component"&&c(m)}),{resolved:a,unresolved:[...l]}}function me(e,t){let n=Array.isArray(e)?e:[e];for(let o of n){t(o);let r=o.children;r&&me(r,t)}}var Q=b(()=>{"use strict";Z();H()});function A(e){let t=[];me(e,i=>{i.kind==="component"&&i.source&&t.push(i)});let n=new Set,o=new Set;for(let i of t){let{module:s,loading:a}=i.source;a.kind==="eager"&&n.add(s),a.kind==="never"&&o.add(s)}let r=new Map;for(let i of t){let s=i.source;G(s.loading)&&n.has(s.module)&&(s.loading={kind:"eager"},r.set(s.module,(r.get(s.module)??0)+1))}return{collapsed:r,conflicted:[...o].filter(i=>n.has(i))}}var fe=b(()=>{"use strict";H();Q()});function Pe(e){return Ln.has(e)}function mt(e){return dt[e]??e}function ee(e){return e.kind!=="attr"||e.expr!==void 0||e.name.includes(":")?!1:!Pn.has(e.name)}function Le(e){if(!e.static||Pe(e.tag))return!1;for(let t of e.props)if(!ee(t))return!1;for(let t of e.children)if(t.kind!=="text"&&!(t.kind==="element"&&Le(t)))return!1;return!0}function te(e){let t=e.props.map(Fn).filter(Boolean).join(""),n=`<${e.tag}${t}>`;return On.has(e.tag)?n:`${n}${e.children.map(jn).join("")}</${e.tag}>`}function jn(e){if(e.kind==="text")return An(e.value);if(e.kind!=="element")throw new Error(`serializeStatic: unexpected ${e.kind}`);return te(e)}function Fn(e){let t=dt[e.name]??e.name,n=e.literal;return n===!0||n===void 0?` ${t}`:n===!1||n===null?"":` ${t}="${Jn(String(n))}"`}function Jn(e){return e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function An(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}var On,dt,Pn,Ln,je=b(()=>{"use strict";On=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),dt={className:"class",htmlFor:"for"},Pn=new Set(["innerHTML","outerHTML","innerText","textContent","value","checked","selected","muted","defaultValue","defaultChecked","children","ref"]),Ln=new Set(["script","style","textarea","title"])});function he(e){return e.kind==="expr"||e.kind==="component"||e.kind==="control"}function _n(e){return e.kind==="text"||e.kind==="element"&&ft(e)}function ft(e){return e.svg||Pe(e.tag)||!e.props.every(t=>ee(t))?!1:e.children.every(t=>_n(t)||he(t))}function ge(e){if(he(e))return!0;let t=e.children;return t?t.some(ge):!1}function gt(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"||gt(t))}function ht(e){if(!ft(e)||!gt(e)||!e.children.some(ge))return null;let t=[],n=[],o=0,r=s=>{let a=`_n$${o++}`;return t.push({ref:a,expr:s}),a};return i(e,"_el$"),{html:Bn(e),tag:e.tag,steps:t,holes:n};function i(s,a){let l=-1;s.children.forEach((u,m)=>{ge(u)&&(l=m)});let c=null;for(let u=0;u<=l;u++){let m=s.children[u],d=c?`${c}.nextSibling`:`${a}.firstChild`;if(he(m)){let N=r(d),v=r(`holeEnd(${N})`);n.push({parentRef:a,startRef:N,endRef:v,node:m}),c=v;continue}let x=r(d);m.kind==="element"&&ge(m)&&i(m,x),c=x}}}function Bn(e){return te(vt(e)).split(yt).join(Dn+Xn)}function vt(e){return{...e,children:e.children.map(t=>he(t)?{kind:"text",value:yt}:t.kind==="element"?vt(t):t)}}var Dn,Xn,yt,xt=b(()=>{"use strict";je();Dn="<!--fx-->",Xn="<!--fx/-->";yt="\0fx-hole\0"});var Fe,uo,bt=b(()=>{"use strict";Fe={version:1,module:"@fluixi/dom",symbols:["createNativeElement","insert","spread","setAttribute","delegateEvents","createComponent","createMemo","untrack","Show","For","Index","Switch","Match","Dynamic","ErrorBoundary"]},uo={version:2,module:"@fluixi/dom",symbols:[...Fe.symbols,"template","cloneTemplate","walk"]}});function Wn(e){return/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(e)}function St(e){return Wn(e)?e:JSON.stringify(e)}function zn(e){return e.expr!==void 0?e.reactive?`() => (${e.expr})`:`(${e.expr})`:JSON.stringify(e.literal??!0)}function Gn(e){return e.expr!==void 0?`(${e.expr})`:JSON.stringify(e.literal??!0)}function Vn(e,t,n){let o=e.filter(a=>a.kind==="spread"),i=e.filter(a=>a.kind!=="spread").map(a=>`${St(a.name)}: ${zn(a)}`);t!=null&&i.push(`children: ${t}`);let s=`{ ${i.join(", ")} }`;return o.length>0?(n.add("mergeProps"),`mergeProps(${o.map(a=>a.expr).join(", ")}, ${s})`):s}function Et(e,t,n){return e.length===1?ne(e[0],t,n):`[${e.map(o=>ne(o,t,n)).join(", ")}]`}function Rt(e,t,n,o,r){o.add("createMemo"),o.add("createComponent");let i=t.filter(c=>c.kind==="spread"),a=t.filter(c=>c.kind!=="spread").map(c=>`get ${St(c.name)}() { return ${Gn(c)}; }`);n.length>0&&a.push(`get children() { return ${Et(n,o,r)}; }`);let l=`{ ${a.join(", ")} }`;return i.length>0&&(o.add("mergeProps"),l=`mergeProps(${i.map(c=>c.expr).join(", ")}, ${l})`),`createMemo(() => createComponent(${e}, ${l}))`}function Un(e,t){let n=mt(t.name),o=t.literal;return o===!0||o===void 0?`${e}.setAttribute(${JSON.stringify(n)}, "");`:o===!1||o===null?"":`${e}.setAttribute(${JSON.stringify(n)}, ${JSON.stringify(String(o))});`}function ne(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":Et(e.children,t,n);case"component":return Rt(e.name,e.props,e.children,t,n);case"control":{let o=Hn[e.control]??e.control;return t.add(o),Rt(o,e.props,e.children,t,n)}case"element":{if(n&&e.static&&!e.svg&&Le(e)){t.add("templateNode");let a=`_tmpl$${n.length}`;return n.push({id:a,html:te(e),tag:e.tag,svg:!1}),`templateNode(${a}, ${JSON.stringify(e.tag)})`}if(n&&Nt){let a=ht(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 u of a.steps)c.push(`const ${u.ref} = ${u.expr};`);for(let u of a.holes)c.push(`insert(${u.parentRef}, holeScope(${u.startRef}, () => (${ne(u.node,t,n)})), ${u.endRef}, holeContent(${u.startRef}, ${u.endRef}));`);return c.push("return _el$;"),`(() => { ${c.join(" ")} })()`}}t.add("createNativeElement");let o=JSON.stringify(e.tag),r="_el$",i=[],s=e.svg?`${o}, true`:o;if(i.push(`const ${r} = createNativeElement(${s});`),e.props.length>0)if(!e.svg&&e.props.every(ee))for(let a of e.props)i.push(Un(r,a));else{t.add("spread");let a=e.svg?", isSVG: true":"";i.push(`spread({ element: ${r}, props: ${Vn(e.props,null,t)}${a} });`)}for(let a of e.children){t.add("insert");let l=ne(a,t,n),c=a.kind==="expr"&&a.reactive||a.kind==="component"||a.kind==="control";i.push(c?`insert(${r}, ${l}, null);`:`insert(${r}, ${l});`)}return i.push(`return ${r};`),`(() => { ${i.join(" ")} })()`}}}function W(e,t){if(!t||t.length===0)return e;let n=new Map(t.map(o=>[o.id,JSON.stringify(o.html)]));return e.replace(/_tmpl\$\d+/g,o=>n.get(o)??o)}var Hn,Nt,T,V=b(()=>{"use strict";xt();je();bt();Hn={show:"Show",for:"For",index:"Index",switch:"Switch",match:"Match",dynamic:"Dynamic",errorBoundary:"ErrorBoundary",suspense:"Suspense"};Nt=!1;T={name:"imperative",contract:Fe,emit(e,t){let n=new Set,o=t?.templateClone!==!1?[]:void 0;return Nt=t?.partialTemplates===!0,{code:ne(e,n,o),imports:Array.from(n),templates:o}}}});function re(e){let t=e.split(/\r\n|\n|\r/),n=0;for(let r=0;r<t.length;r++)/[^ \t]/.test(t[r])&&(n=r);let o="";for(let r=0;r<t.length;r++){let i=t[r].replace(/\t/g," ");r!==0&&(i=i.replace(/^ +/,"")),r!==t.length-1&&(i=i.replace(/ +$/,"")),i&&(r!==n&&(i+=" "),o+=i)}return o}var Je=b(()=>{"use strict"});function qn(e){return e.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}function kt(e){return e.charAt(0).toUpperCase()+e.slice(1)}function ve(e,t,n,o={}){let{root:r}=(0,wt.parseTemplate)(e,{svg:o.svg});return new Ae(t,n).lowerRoot(r.children)}var wt,Ct,Ae,De=b(()=>{"use strict";wt=require("@fluixi/template-parser");H();V();Je();Ct=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]);Ae=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:o,templates:r}=T.emit(t,{});for(let i of o)this.used.add(i);return W(n,r)}lowerRoot(t){let n=this.lowerChildren(t);return n.length===1?n[0]:{kind:"fragment",children:n}}lowerChildren(t){let n=[];for(let o=0;o<t.length;o++){let r=t[o];if(r.kind==="Element"||r.kind==="Component"){let s=r.attributes.find(a=>a.kind==="IfDirective");if(s&&s.kind==="IfDirective"){let a=o+1;a<t.length&&this.isBlankText(t[a])&&a++;let l=t[a],c=l&&(l.kind==="Element"||l.kind==="Component")&&l.attributes.some(u=>u.kind==="ElseDirective");n.push(this.lowerIf(r,s.hole,c?l:null)),c&&(o=a);continue}if(r.attributes.some(a=>a.kind==="EachDirective")){n.push(this.lowerEach(r));continue}}let i=this.lowerNode(r);i&&n.push(i)}return n}isBlankText(t){return t.kind==="Text"&&!t.raw&&re(t.value)===""}lowerNode(t){switch(t.kind){case"Text":{if(t.raw)return{kind:"text",value:t.value};let n=re(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(o=>o.kind==="Attribute"&&o.name==="is");if(t.tag==="component"&&n&&n.value&&n.value.kind==="hole"){let o=t.attributes.filter(i=>i!==n),r=this.lowerComponent({...t,kind:"Component",tag:"Dynamic",tagHole:null,attributes:o});return r.props.unshift({name:"component",kind:"attr",expr:`() => (${this.hole(n.value.hole).code})`}),r}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,o=this.lowerAttributes(t.attributes),{slots:r,rest:i}=this.partitionSlots(t.children);for(let[l,c]of r){let u=c.length===1?c[0]:{kind:"fragment",children:c},m={name:l,kind:"attr",expr:this.emit(u),jsxElement:!0},d=o.findIndex(x=>x.name===l);d>=0?o[d]=m:o.push(m)}let s=t.attributes.find(l=>l.kind==="LoadDirective"),a=s?de(`load:${s.strategy}`,s.modifier):void 0;return{kind:"component",name:n,props:o,children:this.lowerChildren(i),...a?{load:a}:{}}}partitionSlots(t){let n=new Map,o=[];for(let r of t){if(r.kind==="Element"||r.kind==="Component"){let i=r.attributes.find(s=>s.kind==="Attribute"&&s.name==="slot");if(i&&i.value&&i.value.kind==="static"){let s={...r,attributes:r.attributes.filter(c=>c!==i)},a=s.kind==="Element"?this.lowerElement(s):this.lowerComponent(s),l=n.get(i.value.value)??[];l.push(a),n.set(i.value.value,l);continue}}o.push(r)}return{slots:n,rest:o}}lowerIf(t,n,o){let r=this.hole(n),i=[{name:"when",kind:"attr",expr:r.code,reactive:r.reactive}];if(o){let a=this.stripAndLower(o,l=>l.kind==="ElseDirective");i.push({name:"fallback",kind:"attr",expr:this.emit(a),jsxElement:!0})}let s=this.stripAndLower(t,a=>a.kind==="IfDirective");return{kind:"component",name:"Show",props:i,children:[s]}}lowerEach(t){let n=t.attributes.find(l=>l.kind==="EachDirective");if(!n||n.kind!=="EachDirective")return this.lowerNode(t);let o=this.hole(n.hole),r=[{name:"each",kind:"attr",expr:o.code,reactive:o.reactive}];if(n.key){let l="static"in n.key?`(item) => item[${JSON.stringify(n.key.static)}]`:this.hole(n.key.hole).code;r.push({name:"by",kind:"attr",expr:l})}let i=this.itemArrow(t),s;if(i){let l={kind:"expr",code:i.body,reactive:i.bodyReactive},c=this.rebuildWithChildren(t,[l]);s=`(${i.params.join(", ")}) => (${this.emit(c)})`}else{let l=this.stripAndLower(t,c=>c.kind==="EachDirective");s=`() => (${this.emit(l)})`}return{kind:"component",name:"For",props:r,children:[{kind:"expr",code:s,reactive:!1}]}}itemArrow(t){let n=t.children.filter(o=>!this.isBlankText(o));return n.length!==1||n[0].kind!=="Expression"?null:this.hole(n[0].hole).arrow??null}stripAndLower(t,n){let o={...t,attributes:t.attributes.filter(r=>!n(r))};return o.kind==="Element"?this.lowerElement(o):this.lowerComponent(o)}rebuildWithChildren(t,n){let o=this.lowerAttributes(t.attributes.filter(r=>r.kind!=="EachDirective"));return t.kind==="Element"?{kind:"element",tag:t.tag,svg:t.namespace==="svg",props:o,children:n,static:!1}:{kind:"component",name:t.tag,props:o,children:n}}lowerAttributes(t){let n=[],o=[],r=!1,i=[],s=!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);o.push(`${JSON.stringify(l.name)}: ${c.code}`),r=r||c.reactive;break}case"StyleDirective":{let c=this.hole(l.hole);i.push(`${JSON.stringify(l.name)}: ${c.code}`),s=s||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 o.length>0&&n.push({name:"classList",kind:"attr",expr:`{ ${o.join(", ")} }`,reactive:r}),i.length>0&&n.push({name:"style",kind:"attr",expr:`{ ${i.join(", ")} }`,reactive:s}),a.length>0&&n.push({name:"use",kind:"attr",expr:`[${a.join(", ")}]`}),n}eventProp(t){let n=t.name.toLowerCase(),o=this.hole(t.hole).code;if(!(t.syntax==="colon"||t.modifiers.length>0))return{name:"on"+kt(t.name),kind:"event",event:{name:n,delegated:Ct.has(n)},expr:o};let i=this.wrapHandler(o,t.modifiers),s=this.eventOptions(t.modifiers),a=s?`[${i}, ${s}]`:i;return{name:"on:"+n,kind:"attr",expr:a}}wrapHandler(t,n){let o=n.includes("self")?"if (e.target !== e.currentTarget) return; ":"",r=[];return n.includes("prevent")&&r.push("e.preventDefault();"),n.includes("stop")&&r.push("e.stopPropagation();"),!o&&r.length===0?t:`(e) => { ${o}${r.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 o=t==="checked",r=o?"change":"input",i=o?"checked":"value",s=`(${n})`;return[{name:t,kind:"attr",expr:`${s}[0]()`,reactive:!0},{name:"on"+kt(r),kind:"event",event:{name:r,delegated:Ct.has(r)},expr:`(e) => ${s}[1](e.target.${i})`}]}plainAttr(t){let n=t.value,o=t.name;t.name==="class"?o=n&&n.kind==="hole"&&this.hole(n.hole).object?"classList":"className":t.name==="html"&&(o="innerHTML");let i={name:o,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 l=this.hole(n.hole);return i.expr=l.code,i.reactive=l.reactive,i}let s=!1,a=n.parts.map(l=>{if("text"in l)return qn(l.text);let c=this.hole(l.hole);return s=s||c.reactive,"${"+c.code+"}"}).join("");return i.expr="`"+a+"`",i.reactive=s,i}}});function Yn(e){return Kn(e,{concise:!0}).code}function Zn(e,t,n){let o={code:xe(e,t,n),reactive:_e(e)};if(ye.types.isArrowFunctionExpression(e)&&!ye.types.isBlockStatement(e.body)){let r=e.body;o.arrow={params:e.params.map(i=>Yn(i)),body:xe(r,t,n),bodyReactive:_e(r)}}return ye.types.isObjectExpression(e)&&(o.object=!0),o}function Tt(e,t,n={}){let o=e.quasi,r=o.expressions.map(i=>Zn(i,t,n.onNested));return ve(Qn(o),r,t,n)}function Qn(e){let t=[];return e.quasis.forEach((n,o)=>{let r=n.value.cooked??n.value.raw;if(t.push({kind:"static",text:r,start:n.start??0}),o<e.expressions.length){let i=e.expressions[o];t.push({kind:"hole",index:o,start:i.start??0,end:i.end??0})}}),t}var ye,Xe,Kn,It=b(()=>{"use strict";ye=require("@babel/core"),Xe=O(require("@babel/generator"),1);De();Be();Kn=Xe.default.default??Xe.default});function er(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 D(e){let t=[],n=new Map,o=r=>{switch(r.kind){case"text":return!0;case"expr":return!1;case"component":case"control":for(let i of r.children)o(i);return!1;case"fragment":for(let i of r.children)o(i);return!1;case"element":{let i=!0;for(let a of r.children)o(a)||(i=!1);let s;for(let a of r.props)if(s=er(a),s)break;return!s&&!i&&(s=tr(r)),r.static=!s,s?n.set(r,s):t.push(r),r.static}default:return!1}};for(let r of Array.isArray(e)?e:[e])o(r);return{staticElements:t,reasons:n}}function tr(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 oe=b(()=>{"use strict"});function be(e,t=new Set,n={}){let o=Tt(e,t,n);return D(o),o}var He=b(()=>{"use strict";It();oe()});function X(e){switch(e.kind){case"call":return!0;case"member":return e.property!==nr;case"compound":return e.parts.some(X);case"opaque":return!1}}var nr,Re=b(()=>{"use strict";nr="children"});function M(e){if(!e)return{kind:"opaque"};if(rr.has(e.type))return{kind:"call"};if(or.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(ie)}:e.type==="LogicalExpression"||e.type==="BinaryExpression"?{kind:"compound",parts:[e.left,e.right].map(ie)}:e.type==="TemplateLiteral"?{kind:"compound",parts:e.expressions.map(ie)}:e.type==="ObjectExpression"?{kind:"compound",parts:e.properties.filter(n=>(n.type==="ObjectProperty"||n.type==="Property")&&n.computed!==!0).map(n=>ie(n.value))}:e.type==="ArrayExpression"?{kind:"compound",parts:e.elements.filter(n=>n!=null&&n.type!=="SpreadElement").map(ie)}:{kind:"opaque"}}var rr,or,ie,se=b(()=>{"use strict";rr=new Set(["CallExpression","OptionalCallExpression"]),or=new Set(["MemberExpression","OptionalMemberExpression"]);ie=e=>M(e)});function ae(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 lr(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 ze(e){return e.type==="JSXIdentifier"?e.name==="class"?"className":e.name:e.type==="JSXNamespacedName"?`${e.namespace.name}:${e.name.name}`:"unknown"}function cr(e,t){let n=ze(e.name),o=sr.test(n),r=o||n.startsWith("on:")||n==="ref",s={name:n,kind:o?"event":"attr"};if(o){let l=n.slice(2).toLowerCase();s.event={name:l,delegated:ar.has(l)}}let a=e.value;if(a==null)return s.literal=!0,s;if(We(a))return s.literal=ae(a),s;if(a.type==="JSXExpressionContainer"&&a.expression?.type!=="JSXEmptyExpression"){let l=a.expression,c=ae(l);return c!==void 0?(s.literal=c,s):(s.expr=t.code(l),s.reactive=r?!1:Ot(l),(l.type==="JSXElement"||l.type==="JSXFragment")&&(s.jsxElement=!0),s)}return s.literal=!0,s}function Mt(e,t){let n=e.value;return n==null?null:We(n)?JSON.stringify(ae(n)):n.type==="JSXExpressionContainer"&&n.expression?.type!=="JSXEmptyExpression"?t.code(n.expression):null}function pr(e,t){let n=[],o=[];for(let r of e){if(r.type==="JSXSpreadAttribute"){n.push({name:"",kind:"spread",expr:t.code(r.argument)});continue}if(r.type!=="JSXAttribute"||Oe(ze(r.name)))continue;let i=r.name.type==="JSXNamespacedName"?r.name.namespace.name:null;if(i==="use"){let s=r.name.name.name;t.used.add(s);let a=Mt(r,t);o.push(a!=null?`[${s}, () => (${a})]`:`[${s}]`);continue}if(i==="oncapture"){let s=r.name.name.name.toLowerCase(),a=Mt(r,t)??"undefined";n.push({name:"on:"+s,kind:"attr",expr:`[${a}, { capture: true }]`});continue}n.push(cr(r,t))}return o.length>0&&n.push({name:"use",kind:"attr",expr:`[${o.join(", ")}]`}),n}function $t(e,t){let n=[];for(let o of e)if(o.type==="JSXText"){let r=re(o.value);r&&n.push({kind:"text",value:r})}else if(o.type==="JSXExpressionContainer"){if(o.expression?.type!=="JSXEmptyExpression"){let r=o.expression;n.push({kind:"expr",code:t.code(r),reactive:Ot(r)})}}else o.type==="JSXElement"||o.type==="JSXFragment"?n.push(Pt(o,t)):o.type==="JSXSpreadChild"&&n.push({kind:"expr",code:t.code(o.expression),reactive:!1});return n}function ur(e){for(let t of e){if(t.type!=="JSXAttribute")continue;let n=ze(t.name);if(Oe(n)){if(t.value&&!We(t.value))throw new F(`'${n}' needs a literal value, not an expression — the strategy is compile-time.`);return de(n,t.value?ae(t.value):null)}}}function Pt(e,t){if(e.type==="JSXFragment")return{kind:"fragment",children:$t(e.children,t)};let{tag:n,component:o}=lr(e.openingElement.name,t),r=pr(e.openingElement.attributes,t),i=$t(e.children,t);if(o){let s=ur(e.openingElement.attributes);return{kind:"component",name:n,props:r,children:i,...s?{load:s}:{}}}return{kind:"element",tag:n,svg:ir.has(n),props:r,children:i,static:!1}}function Se(e,t){let n=Pt(e,t);return D(n),n}var ir,sr,ar,Ot,We,Ge=b(()=>{"use strict";H();Re();se();oe();Je();ir=new Set(["svg","path","circle","rect","line","polygon","polyline","ellipse","g","defs","clipPath","text"]),sr=/^on[A-Z]/,ar=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]),Ot=e=>X(M(e));We=e=>!!e&&typeof ae(e)=="string"});function Lt(e){return dr(e,{concise:!0}).code}function mr(e,t,n){let o=$.types.cloneNode(e,!0),r=$.types.file($.types.program([$.types.expressionStatement(o)])),i=!1,s=(a,l,c)=>{for(let u of c)t.add(u);a.replaceWith($.template.expression(l,{placeholderPattern:!1,plugins:["typescript"]})()),a.skip(),i=!0};return(0,$.traverse)(r,{"JSXElement|JSXFragment"(a){let l=a.node,c=Ue(l,t,n);n?.(c);let{code:u,imports:m,templates:d}=T.emit(c,{});s(a,W(u,d),m)},TaggedTemplateExpression(a){let l=a.node.tag;if(!$.types.isIdentifier(l)||l.name!=="html"&&l.name!=="svg")return;let c=be(a.node,t,{svg:l.name==="svg",onNested:n});n?.(c);let{code:u,imports:m,templates:d}=T.emit(c,{});s(a,W(u,d),m)}}),i?r.program.body[0].expression:e}function xe(e,t,n){return Lt(mr(e,t,n))}function _e(e){return X(M(e))}function Ue(e,t=new Set,n){return Se(e,{code:r=>r.type==="JSXMemberExpression"?Lt(r):xe(r,t,n),used:t})}var $,Ve,dr,Be=b(()=>{"use strict";$=require("@babel/core"),Ve=O(require("@babel/generator"),1);V();He();Ge();Re();se();dr=Ve.default.default??Ve.default});function Dt(e){return t=>{J(t,{resolver:e.componentResolver,modules:{controlFlowModule:e.controlFlowModule,coreModule:e.libModule,routerModule:e.routerModule},strategyFor:n=>n.load}),A(t),Ee(t,e)}}function fr(e){let t=[p.types.objectProperty(p.types.identifier("kind"),p.types.stringLiteral(e.kind))];return e.kind==="visible"&&e.rootMargin&&t.push(p.types.objectProperty(p.types.identifier("rootMargin"),p.types.stringLiteral(e.rootMargin))),e.kind==="interaction"&&t.push(p.types.objectProperty(p.types.identifier("events"),p.types.arrayExpression(e.events.map(n=>p.types.stringLiteral(n))))),e.kind==="media"&&t.push(p.types.objectProperty(p.types.identifier("query"),p.types.stringLiteral(e.query))),p.types.objectExpression(t)}function Xt(e,t,n){if(!t||t.length===0)return e;let o=new Map;for(let r of t){let i=`${r.svg?"svg:":""}${r.html}`,s=n.staticTemplates.get(i);s||(s=`_tmpl$${n.staticTemplates.size}`,n.staticTemplates.set(i,s)),o.set(r.id,s)}return e.replace(/_tmpl\$\d+/g,r=>o.get(r)??r)}function Jt(e,t){let n=new Set,o=Ue(e,n,Dt(t));J(o,{resolver:t.componentResolver,modules:{controlFlowModule:t.controlFlowModule,coreModule:t.libModule,routerModule:t.routerModule},strategyFor:l=>l.load}),A(o);let{code:r,imports:i,templates:s}=T.emit(o,{templateClone:t.templateClone,partialTemplates:t.partialTemplates});for(let l of i)n.add(l);for(let l of n)t.irImports.add(l);Ee(o,t);let a=Xt(r,s,t);return p.template.expression(a,{placeholderPattern:!1,plugins:["typescript"]})()}function gr(e){let t=new Map,n=[];for(let o of e){let r=o.source.value;if(!o.specifiers.every(a=>p.types.isImportSpecifier(a))){n.push(o);continue}let s=t.get(r);if(!s){let a=new Set(o.specifiers.map(l=>l.local.name));t.set(r,{decl:o,names:a}),n.push(o);continue}for(let a of o.specifiers)s.names.has(a.local.name)||(s.names.add(a.local.name),s.decl.specifiers.push(a))}return n}function hr(e,t){let n=new Set,o=p.types.isIdentifier(e.tag)&&e.tag.name==="svg",r=be(e,n,{svg:o,onNested:Dt(t)});J(r,{resolver:t.componentResolver,modules:{controlFlowModule:t.controlFlowModule,coreModule:t.libModule,routerModule:t.routerModule},strategyFor:c=>c.load}),A(r);let{code:i,imports:s,templates:a}=T.emit(r,{templateClone:t.templateClone,partialTemplates:t.partialTemplates});for(let c of s)n.add(c);for(let c of n)t.irImports.add(c);Ee(r,t),t.hasLitIR=!0;let l=p.template.expression(Xt(i,a,t),{placeholderPattern:!1,plugins:["typescript"]})();return vr(l,e),l}function vr(e,t){if(!t.loc)return;let n=new Set,o=r=>{if(!n.has(r)){n.add(r),r.loc||(r.loc=t.loc,r.start=t.start,r.end=t.end);for(let i of p.types.VISITOR_KEYS[r.type]??[]){let s=r[i];if(Array.isArray(s))for(let a of s)a&&typeof a=="object"&&"type"in a&&o(a);else s&&typeof s=="object"&&"type"in s&&o(s)}}};o(e)}function Ee(e,t){if(e.kind==="component"&&e.source&&(e.source.origin==="builtin"?(t.controlFlowComponents.add(e.name),t.needsControlFlowImport=!0):G(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)Ee(n,t)}var At,p,jt,Ft,U,qe=b(()=>{"use strict";At=require("@babel/helper-plugin-utils");K();Q();fe();H();Z();p=require("@babel/core");Be();He();V();jt=new Set(B),Ft=new Set(L),U=(0,At.declare)((e,t={})=>{e.assertVersion(7);let{delegateEvents:n=!0,signalModule:o="@fluixi/dom",controlFlowModule:r="@fluixi/dom",routerModule:i="@fluixi/core/router-next",reactiveModule:s="@fluixi/reactive/signal",templateClone:a=!0,partialTemplates:l=!0,format:c="both",litTag:u="html",resolve:m=[]}=t,d=P(m),x=c==="lit"||c==="both",N={irImports:new Set,libModule:"@fluixi/core",controlFlowModule:r,routerModule:i,templateClone:a,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(v,y){y.plugins.push("jsx","typescript")},pre(v){Object.assign(v,N)},visitor:{ImportDeclaration(v,y){v.node.source.value==="@fluixi/core/rx"&&(v.node.source=p.types.stringLiteral("@fluixi/reactive"))},Program:{enter(v,y){Object.assign(y,{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:r,routerModule:i,templateClone:a,partialTemplates:l,irImports:new Set,needsCreateNativeElement:!1,needsInsert:!1,needsSpread:!1,needsCreateComponent:!1,needsMergeProps:!1})},exit(v,y){let f=[];if(y.hasJSX||y.hasLitIR){if(y.irImports.size>0){let R=new Set(["Show","For","Index","Switch","Match","Dynamic","ErrorBoundary","Portal","Suspense"]),g=new Set(["createMemo","createEffect","createRenderEffect","createRoot","createSignal","onCleanup","batch","untrack"]),h=Array.from(y.irImports),S=E=>p.types.importSpecifier(p.types.identifier(E),p.types.identifier(E)),I=E=>!v.scope.hasBinding(E),z=h.filter(E=>g.has(E)&&I(E)),w=h.filter(E=>!R.has(E)&&!g.has(E)&&I(E)),le=h.filter(E=>R.has(E)&&I(E));z.length>0&&f.push(p.types.importDeclaration(z.map(S),p.types.stringLiteral(s))),w.length>0&&f.push(p.types.importDeclaration(w.map(S),p.types.stringLiteral(o))),le.length>0&&f.push(p.types.importDeclaration(le.map(S),p.types.stringLiteral(r)))}if(y.needsCreateMemo&&!v.scope.hasBinding("createMemo")&&f.push(p.types.importDeclaration([p.types.importSpecifier(p.types.identifier("createMemo"),p.types.identifier("createMemo"))],p.types.stringLiteral(s))),y.needsControlFlowImport&&y.controlFlowComponents.size>0){let R=Array.from(y.controlFlowComponents).filter(w=>!v.scope.hasBinding(w)),g=y.libModule??"@fluixi/core",h=R.filter(w=>Ft.has(w)),S=R.filter(w=>jt.has(w)),I=R.filter(w=>!jt.has(w)&&!Ft.has(w)),z=(w,le)=>p.types.importDeclaration(w.map(E=>p.types.importSpecifier(p.types.identifier(E),p.types.identifier(E))),p.types.stringLiteral(le));I.length>0&&f.push(z(I,r)),S.length>0&&f.push(z(S,g)),h.length>0&&f.push(z(h,i))}let C=[];if(y.deferredComponents.size>0){for(let[R,g]of y.deferredComponents)v.scope.hasBinding(R)||C.push(p.types.variableDeclaration("const",[p.types.variableDeclarator(p.types.identifier(R),p.types.callExpression(p.types.identifier("deferred"),[p.types.arrowFunctionExpression([],p.types.callExpression(p.types.import(),[p.types.stringLiteral(g.module)])),p.types.objectExpression([p.types.objectProperty(p.types.identifier("strategy"),fr(g.strategy)),p.types.objectProperty(p.types.identifier("export"),p.types.stringLiteral(g.export))])]))]));C.length>0&&!v.scope.hasBinding("deferred")&&f.push(p.types.importDeclaration([p.types.importSpecifier(p.types.identifier("deferred"),p.types.identifier("deferred"))],p.types.stringLiteral(y.libModule??"@fluixi/core")))}if(y.resolvedComponents.size>0){let R=new Map;for(let[g,h]of y.resolvedComponents){if(v.scope.hasBinding(g))continue;let S=R.get(h.module)??[];S.push({local:g,exported:h.export}),R.set(h.module,S)}for(let[g,h]of R)f.push(p.types.importDeclaration(h.map(({local:S,exported:I})=>I==="default"?p.types.importDefaultSpecifier(p.types.identifier(S)):p.types.importSpecifier(p.types.identifier(S),p.types.identifier(I))),p.types.stringLiteral(g)))}if(n&&y.delegatedEvents.size>0){f.push(p.types.importDeclaration([p.types.importSpecifier(p.types.identifier("delegateEvents"),p.types.identifier("delegateEvents"))],p.types.stringLiteral(o)));let R=p.types.arrayExpression(Array.from(y.delegatedEvents).map(h=>p.types.stringLiteral(h))),g=p.types.expressionStatement(p.types.callExpression(p.types.identifier("delegateEvents"),[R]));v.node.body.unshift(g)}if(C.length>0&&v.node.body.unshift(...C),y.staticTemplates.size>0){let R=[];for(let[g,h]of y.staticTemplates){let I=g.startsWith("svg:")?g.slice(4):g;R.push(p.types.variableDeclaration("const",[p.types.variableDeclarator(p.types.identifier(h),p.types.stringLiteral(I))]))}v.node.body.unshift(...R)}}f.length>0&&v.node.body.unshift(...gr(f))}},JSXElement(v,y){y.hasJSX=!0,v.replaceWith(Jt(v.node,y))},JSXFragment(v,y){y.hasJSX=!0,v.replaceWith(Jt(v.node,y))},TaggedTemplateExpression(v,y){x&&p.types.isIdentifier(v.node.tag)&&(v.node.tag.name===u||v.node.tag.name==="svg")&&v.replaceWith(hr(v.node,y))}}}})});var _t=b(()=>{"use strict"});var Bt={};q(Bt,{babelPluginReactiveJSX:()=>yr,createPlugin:()=>xr,createPreset:()=>Ne,default:()=>U,presets:()=>br});function xr(e){return[U,e]}function Ne(e={}){return{plugins:[[U,{runtime:"automatic",importSource:"@fluixi/jsx",development:!1,detectReactivity:!0,useLitHTML:!0,hoistStatics:!0,delegateEvents:!0,optimizeControlFlow:!0,sourceMaps:!0,...e}]]}}var yr,br,Ht=b(()=>{"use strict";qe();_t();qe();yr=U;br={production:Ne({development:!1,hoistStatics:!0,delegateEvents:!0,optimizeControlFlow:!0}),development:Ne({development:!0,hoistStatics:!1,sourceMaps:!0}),minimal:Ne({detectReactivity:!1,useLitHTML:!1,hoistStatics:!1,delegateEvents:!1,optimizeControlFlow:!1})}});function Wt(e,t,n={}){let o=new Set,r=ve(e,[...t],o,{svg:n.svg});D(r),J(r,{resolver:P(n.resolve??[]),modules:{controlFlowModule:n.controlFlowModule??"@fluixi/dom",coreModule:n.coreModule??"@fluixi/core",routerModule:n.routerModule??"@fluixi/core/router-next"},strategyFor:l=>l.load}),A(r);let{code:i,imports:s,templates:a}=T.emit(r,{templateClone:n.templateClone,partialTemplates:n.partialTemplates});for(let l of s)o.add(l);return n.hoistTemplates?{code:i,imports:[...o],ir:r,templates:a}:{code:W(i,a),imports:[...o],ir:r}}var zt=b(()=>{"use strict";oe();fe();V();Q();K();De()});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 Gt(e,t){switch(e.type){case"ImportDeclaration":for(let n of e.specifiers)_(n.local,t);return;case"VariableDeclaration":for(let n of e.declarations)_(n.id,t);return;case"FunctionDeclaration":case"ClassDeclaration":_(e.id,t);return;case"ExportNamedDeclaration":case"ExportDefaultDeclaration":e.declaration&&Gt(e.declaration,t);return}}function Ce(e){let t=new Set;for(let n of e.body)Gt(n,t);return t}var Ke=b(()=>{"use strict"});function Ye(e,t,n=null,o=""){if(!(!e||typeof e!="object")){if(Array.isArray(e)){for(let r of e)Ye(r,t,n,o);return}typeof e.type=="string"&&t(e,n,o);for(let r of Object.keys(e))r==="loc"||r==="leadingComments"||r==="trailingComments"||Ye(e[r],t,typeof e.type=="string"?e:n,r)}}function Cr(e,t,n){return Ze(e)?!(t&&Ze(t)&&n==="children"):!1}function kr(e,t){return e.type==="TaggedTemplateExpression"&&e.tag?.type==="Identifier"&&(e.tag.name===t||e.tag.name==="svg")}function qt(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 ke(e,t,n,o){let r=qt(o.filter(s=>s.start>=t&&s.end<=n)).sort((s,a)=>a.start-s.start),i=e.slice(t,n);for(let s of r)i=i.slice(0,s.start-t)+s.code+i.slice(s.end-t);return i}function wr(e,t,n){let o={code:ke(e,t.start,t.end,n),reactive:X(M(t))};return t.type==="ArrowFunctionExpression"&&t.body?.type!=="BlockStatement"&&(o.arrow={params:t.params.map(r=>ke(e,r.start,r.end,n)),body:ke(e,t.body.start,t.body.end,n),bodyReactive:X(M(t.body))}),t.type==="ObjectExpression"&&(o.object=!0),o}function Kt(e,t,n){if(!t||t.length===0)return e;let o=new Map;for(let r of t){let i=`${r.svg?"svg:":""}${r.html}`,s=n.get(i);s||(s=`_fxTmpl$${n.size}`,n.set(i,s)),o.set(r.id,s)}return e.replace(/_tmpl\$\d+/g,r=>o.get(r)??r)}function Qe(e,t){if(e.kind==="component"&&e.source){let n=e.source;n.origin==="builtin"?t.builtins.add(e.name):G(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)Qe(n,t)}function Tr(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 Ir(e){let t=[];return e.quasi.quasis.forEach((n,o)=>{if(t.push({kind:"static",text:n.value.cooked??n.value.raw,start:n.start}),o<e.quasi.expressions.length){let r=e.quasi.expressions[o];t.push({kind:"hole",index:o,start:r.start,end:r.end})}}),t}function Yt(e,t,n={}){let o=n.litTag??"html",r=n.format??"both",i=r!=="jsx",s=r!=="lit";if(!(i&&(e.includes(`${o}\``)||e.includes("svg`")))&&!(s&&e.includes("<")))return null;let l=(0,Vt.parse)(e,{sourceType:"module",plugins:["jsx","typescript"],errorRecovery:!0}),c=[];if(Ye(l.program,(f,C,R)=>{(i&&kr(f,o)||s&&Cr(f,C,R))&&c.push(f)}),c.length===0)return null;c.sort((f,C)=>C.start-f.start||f.end-C.end);let u=new Set,m={builtins:new Set,resolved:new Map,deferred:new Map,delegatedEvents:new Set},d=new Map,x=[];for(let f of c){let C=c.some(h=>h!==f&&h.start<=f.start&&h.end>=f.end&&h.end-h.start>f.end-f.start);if(Ze(f)){x.push({start:f.start,end:f.end,code:Mr(e,f,x,C,u,m,d,n)});continue}let R=f.quasi.expressions.map(h=>wr(e,h,x)),g=Wt(Ir(f),R,{...n,hoistTemplates:!0,templateClone:n.templateClone??!0,partialTemplates:C?!1:n.partialTemplates??!0,svg:f.tag.name==="svg"});for(let h of g.imports)u.add(h);Qe(g.ir,m),x.push({start:f.start,end:f.end,code:Kt(g.code,g.templates,d)})}let N=new Ut.default(e);for(let f of qt(x))N.overwrite(f.start,f.end,f.code);let v=Ce(l.program),y=$r(u,m,d,v,n);y&&N.prepend(y);for(let f of l.program.body)f.type==="ImportDeclaration"&&f.source?.value==="@fluixi/core/rx"&&N.overwrite(f.source.start,f.source.end,JSON.stringify("@fluixi/reactive"));return{code:N.toString(),map:N.generateMap({source:t,includeContent:!0,hires:!0})}}function Mr(e,t,n,o,r,i,s,a){let l=Se(t,{code:u=>ke(e,u.start,u.end,n),used:r});D(l),J(l,{resolver:P(a.resolve??[]),modules:{controlFlowModule:a.controlFlowModule??a.runtimeModule??"@fluixi/dom",coreModule:a.coreModule??"@fluixi/core",routerModule:a.routerModule??"@fluixi/core/router-next"},strategyFor:u=>u.load}),A(l);let c=T.emit(l,{templateClone:a.templateClone??!0,partialTemplates:o?!1:a.partialTemplates??!0});for(let u of c.imports)r.add(u);return Qe(l,i),Kt(c.code,c.templates,s)}function $r(e,t,n,o,r){let i=r.runtimeModule??"@fluixi/dom",s=r.coreModule??"@fluixi/core",a=new Map,l=(d,x)=>a.set(d,[...a.get(d)??[],x]),c=new Set(e);for(let d of t.builtins)c.add(d);t.delegatedEvents.size>0&&c.add("delegateEvents");for(let d of[...c].sort())o.has(d)||(Nr.has(d)?l(r.reactiveModule??"@fluixi/reactive/signal",d):Er.has(d)?l(r.routerModule??"@fluixi/core/router-next",d):Sr.has(d)?l(s,d):Rr.has(d)?l(r.controlFlowModule??i,d):l(i,d));for(let[d,x]of t.resolved)o.has(d)||l(x.module,x.export==="default"?`default as ${d}`:d===x.export?d:`${x.export} as ${d}`);let u=[];for(let[d,x]of a)u.push(`import { ${x.join(", ")} } from ${JSON.stringify(d)};`);let m=[...t.deferred].filter(([d])=>!o.has(d));if(m.length>0){o.has("deferred")||u.push(`import { deferred } from ${JSON.stringify(s)};`);for(let[d,x]of m)u.push(`const ${d} = deferred(() => import(${JSON.stringify(x.module)}), { strategy: ${Tr(x.loading)}, export: ${JSON.stringify(x.export)} });`)}for(let[d,x]of n)u.push(`const ${x} = ${JSON.stringify(d.startsWith("svg:")?d.slice(4):d)};`);return t.delegatedEvents.size>0&&u.push(`delegateEvents(${JSON.stringify([...t.delegatedEvents])});`),u.length>0?u.join(`
1
+ "use strict";var Wn=Object.create;var he=Object.defineProperty;var Vn=Object.getOwnPropertyDescriptor;var zn=Object.getOwnPropertyNames;var Un=Object.getPrototypeOf,Gn=Object.prototype.hasOwnProperty;var b=(e,t)=>()=>(e&&(t=e(e=0)),t);var te=(e,t)=>{for(var n in t)he(e,n,{get:t[n],enumerable:!0})},St=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of zn(t))!Gn.call(e,o)&&o!==n&&he(e,o,{get:()=>t[o],enumerable:!(r=Vn(t,o))||r.enumerable});return e};var A=(e,t,n)=>(n=e!=null?Wn(Un(e)):{},St(t||!e||!e.__esModule?he(n,"default",{value:e,enumerable:!0}):n,e)),qn=e=>St(he({},"__esModule",{value:!0}),e);function Rt(e,t){return e.replace(/\$(\d+)/g,(n,r)=>t[Number(r)]??n)}function Yn(e,t){return typeof t=="string"?{module:t,export:e}:t}function F(e=[]){let t=new Map,n=[],r=[];for(let i of e){if(!Kn(i)){r.push(i);continue}for(let[a,l]of Object.entries(i.components)){let c=Yn(a,l),p=t.get(a);if(p&&p.module!==c.module){let m=n.find(d=>d.name===a);m?m.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:Rt(l.module,c),export:l.export?Rt(l.export,c):i};break}}return o.set(i,a),a},names:()=>[...t.keys()],conflicts:()=>n}}var Kn,ne=b(()=>{"use strict";Kn=e=>"components"in e});function ye(e={}){let{controlFlowModule:t="@fluixi/dom",coreModule:n="@fluixi/core",routerModule:r="@fluixi/core/router-next"}=e,o={};for(let s of re)o[s]=t;for(let s of U)o[s]=n;for(let s of J)o[s]=r;return o}var re,U,J,Do,Be,oe=b(()=>{"use strict";re=["Show","For","Index","Switch","Match","Portal","Dynamic","ErrorBoundary"],U=["Suspense","SuspenseList","Await"],J=["Router","Outlet","Redirect","Link"],Do=[...re,...U,...J],Be=new Set([...re,...U])});function wt(e){return Qn.test(e)}function kt(e){return Object.prototype.hasOwnProperty.call(P,e)}function It(e){return Zn.includes(e)}var G,P,Et,Zn,Qn,se=b(()=>{"use strict";G="@fluixi/reactive/signal",P={$signal:{export:"signal",module:G,returns:"signal-handle"},$memo:{export:"memo",module:G,returns:"memo-handle"},$effect:{export:"effect",module:G,returns:"effect"},$store:{export:"store",module:"@fluixi/reactive/store",returns:"store-handle"},$resource:{export:"resource",module:G,returns:"resource-handle"},$selector:{export:"createSelector",module:G,returns:"memo-accessor"},$deferred:{export:"createDeferred",module:G,returns:"memo-accessor"},$untrack:{export:"untrack",module:G,returns:"plain"},$untrackStore:{export:"untrackStore",module:"@fluixi/reactive/store",returns:"plain"}},Et={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"},Zn=["@fluixi/reactive","@fluixi/reactive/signal","@fluixi/reactive/signal-next","@fluixi/reactive/store","@fluixi/core","@fluixi/core/rx"],Qn=new RegExp(`\\$(?:${Object.keys(P).map(e=>e.slice(1)).join("|")})\\s*\\(`)});function We(e){return e.startsWith("load:")}function xe(e,t){let n=e.slice(5);if(!Ot.has(n))throw new X(`Unknown load strategy 'load:${n}'. Expected one of ${[...Ot].join(", ")}.`);switch(n){case"eager":return ve;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?lr(t):[...ar]};case"media":if(!t)throw new X(`'load:media' needs a query, e.g. load:media="(min-width: 1024px)".`);return{kind:"media",query:t};default:throw new X(`Unhandled load strategy '${n}'.`)}}function lr(e){let t=e.split(/[\s,]+/).map(n=>n.trim()).filter(Boolean);if(t.length===0)throw new X("'load:interaction' was given no event names.");return t}function Y(e){return e.kind!=="eager"&&e.kind!=="never"}var ve,ar,Ot,X,q=b(()=>{"use strict";ve={kind:"eager"},ar=["pointerdown","focusin","keydown"],Ot=new Set(["eager","idle","visible","interaction","media","never"]),X=class extends Error{}});function B(e,t={}){let{resolver:n,isBound:r,modules:o,strategyFor:s}=t,i=ye(o),a=new Map,l=new Set,c=m=>{let{name:d}=m;if(!d||d.includes(".")||r?.(d))return;let x=p(d);if(!x){l.add(d);return}let v=x.origin==="builtin"&&Be.has(d)?ve:s?.(m)??ve;m.source={...x,loading:v},a.set(d,m.source)},p=m=>{if(Be.has(m))return{module:i[m],export:m,origin:"builtin"};let d=n?.resolve(m);if(d)return{module:d.module,export:d.export,origin:"rule"};if(J.includes(m))return{module:i[m],export:m,origin:"builtin"}};return be(e,m=>{m.kind==="component"&&c(m)}),{resolved:a,unresolved:[...l]}}function be(e,t){let n=Array.isArray(e)?e:[e];for(let r of n){t(r);let o=r.children;o&&be(o,t)}}var ie=b(()=>{"use strict";oe();q()});function H(e){let t=[];be(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;Y(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 Ne=b(()=>{"use strict";q();ie()});function Ve(e){return ur.has(e)}function jt(e){return Pt[e]??e}function ae(e){return e.kind!=="attr"||e.expr!==void 0||e.name.includes(":")?!1:!pr.has(e.name)}function ze(e){if(!e.static||Ve(e.tag))return!1;for(let t of e.props)if(!ae(t))return!1;for(let t of e.children)if(t.kind!=="text"&&!(t.kind==="element"&&ze(t)))return!1;return!0}function le(e){let t=e.props.map(mr).filter(Boolean).join(""),n=`<${e.tag}${t}>`;return cr.has(e.tag)?n:`${n}${e.children.map(dr).join("")}</${e.tag}>`}function dr(e){if(e.kind==="text")return gr(e.value);if(e.kind!=="element")throw new Error(`serializeStatic: unexpected ${e.kind}`);return le(e)}function mr(e){let t=Pt[e.name]??e.name,n=e.literal;return n===!0||n===void 0?` ${t}`:n===!1||n===null?"":` ${t}="${fr(String(n))}"`}function fr(e){return e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function gr(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}var cr,Pt,pr,ur,Ue=b(()=>{"use strict";cr=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),Pt={className:"class",htmlFor:"for"},pr=new Set(["innerHTML","outerHTML","innerText","textContent","value","checked","selected","muted","defaultValue","defaultChecked","children","ref"]),ur=new Set(["script","style","textarea","title"])});function Re(e){return e.kind==="expr"||e.kind==="component"||e.kind==="control"}function vr(e){return e.kind==="text"||e.kind==="element"&&Dt(e)}function Dt(e){return e.svg||Ve(e.tag)||!e.props.every(t=>ae(t))?!1:e.children.every(t=>vr(t)||Re(t))}function Se(e){if(Re(e))return!0;let t=e.children;return t?t.some(Se):!1}function Lt(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"||Lt(t))}function At(e){if(!Dt(e)||!Lt(e)||!e.children.some(Se))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:xr(e),tag:e.tag,steps:t,holes:n};function s(i,a){let l=-1;i.children.forEach((p,m)=>{Se(p)&&(l=m)});let c=null;for(let p=0;p<=l;p++){let m=i.children[p],d=c?`${c}.nextSibling`:`${a}.firstChild`;if(Re(m)){let v=o(d),f=o(`holeEnd(${v})`);n.push({parentRef:a,startRef:v,endRef:f,node:m}),c=f;continue}let x=o(d);m.kind==="element"&&Se(m)&&s(m,x),c=x}}}function xr(e){return le(Ft(e)).split(Jt).join(hr+yr)}function Ft(e){return{...e,children:e.children.map(t=>Re(t)?{kind:"text",value:Jt}:t.kind==="element"?Ft(t):t)}}var hr,yr,Jt,_t=b(()=>{"use strict";Ue();hr="<!--fx-->",yr="<!--fx/-->";Jt="\0fx-hole\0"});var Ge,es,Xt=b(()=>{"use strict";Ge={version:1,module:"@fluixi/dom",symbols:["createNativeElement","insert","spread","setAttribute","delegateEvents","createComponent","createMemo","untrack","Show","For","Index","Switch","Match","Dynamic","ErrorBoundary"]},es={version:2,module:"@fluixi/dom",symbols:[...Ge.symbols,"template","cloneTemplate","walk"]}});function Nr(e){return/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(e)}function Ht(e){return Nr(e)?e:JSON.stringify(e)}function Sr(e){return e.expr!==void 0?e.reactive?`() => (${e.expr})`:`(${e.expr})`:JSON.stringify(e.literal??!0)}function Rr(e){return e.expr!==void 0?`(${e.expr})`:JSON.stringify(e.literal??!0)}function Er(e,t,n){let r=e.filter(a=>a.kind==="spread"),s=e.filter(a=>a.kind!=="spread").map(a=>`${Ht(a.name)}: ${Sr(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 Wt(e,t,n){return e.length===1?ce(e[0],t,n):`[${e.map(r=>ce(r,t,n)).join(", ")}]`}function Bt(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 ${Ht(c.name)}() { return ${Rr(c)}; }`);n.length>0&&a.push(`get children() { return ${Wt(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 wr(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 ce(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":Wt(e.children,t,n);case"component":return Bt(e.name,e.props,e.children,t,n);case"control":{let r=br[e.control]??e.control;return t.add(r),Bt(r,e.props,e.children,t,n)}case"element":{if(n&&e.static&&!e.svg&&ze(e)){t.add("templateNode");let a=`_tmpl$${n.length}`;return n.push({id:a,html:le(e),tag:e.tag,svg:!1}),`templateNode(${a}, ${JSON.stringify(e.tag)})`}if(n&&Vt){let a=At(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}, () => (${ce(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(ae))for(let a of e.props)s.push(wr(o,a));else{t.add("spread");let a=e.svg?", isSVG: true":"";s.push(`spread({ element: ${o}, props: ${Er(e.props,null,t)}${a} });`)}for(let a of e.children){t.add("insert");let l=ce(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 K(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 br,Vt,$,Z=b(()=>{"use strict";_t();Ue();Xt();br={show:"Show",for:"For",index:"Index",switch:"Switch",match:"Match",dynamic:"Dynamic",errorBoundary:"ErrorBoundary",suspense:"Suspense"};Vt=!1;$={name:"imperative",contract:Ge,emit(e,t){let n=new Set,r=t?.templateClone!==!1?[]:void 0;return Vt=t?.partialTemplates===!0,{code:ce(e,n,r),imports:Array.from(n),templates:r}}}});function pe(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 qe=b(()=>{"use strict"});function kr(e){return e.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}function Ut(e){return e.charAt(0).toUpperCase()+e.slice(1)}function Ee(e,t,n,r={}){let{root:o}=(0,Gt.parseTemplate)(e,{svg:r.svg});return new Ke(t,n).lowerRoot(o.children)}var Gt,zt,Ke,Ye=b(()=>{"use strict";Gt=require("@fluixi/template-parser");q();Z();qe();zt=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]);Ke=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}=$.emit(t,{});for(let s of r)this.used.add(s);return K(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&&pe(t.value)===""}lowerNode(t){switch(t.kind){case"Text":{if(t.raw)return{kind:"text",value:t.value};let n=pe(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},m={name:l,kind:"attr",expr:this.emit(p),jsxElement:!0},d=r.findIndex(x=>x.name===l);d>=0?r[d]=m:r.push(m)}let i=t.attributes.find(l=>l.kind==="LoadDirective"),a=i?xe(`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"+Ut(t.name),kind:"event",event:{name:n,delegated:zt.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"+Ut(o),kind:"event",event:{name:o,delegated:zt.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 kr(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 Cr(e){return Ir(e,{concise:!0}).code}function Tr(e,t,n){let r={code:ke(e,t,n),reactive:Qe(e)};if(we.types.isArrowFunctionExpression(e)&&!we.types.isBlockStatement(e.body)){let o=e.body;r.arrow={params:e.params.map(s=>Cr(s)),body:ke(o,t,n),bodyReactive:Qe(o)}}return we.types.isObjectExpression(e)&&(r.object=!0),r}function qt(e,t,n={}){let r=e.quasi,o=r.expressions.map(s=>Tr(s,t,n.onNested));return Ee(Mr(r),o,t,n)}function Mr(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 we,Ze,Ir,Kt=b(()=>{"use strict";we=require("@babel/core"),Ze=A(require("@babel/generator"),1);Ye();et();Ir=Ze.default.default??Ze.default});function $r(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 W(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=$r(a),i)break;return!i&&!s&&(i=Or(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 Or(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 ue=b(()=>{"use strict"});function Ie(e,t=new Set,n={}){let r=qt(e,t,n);return W(r),r}var tt=b(()=>{"use strict";Kt();ue()});function V(e){switch(e.kind){case"call":return!0;case"member":return e.property!==Pr;case"compound":return e.parts.some(V);case"opaque":return!1}}var Pr,Ce=b(()=>{"use strict";Pr="children"});function j(e){if(!e)return{kind:"opaque"};if(jr.has(e.type))return{kind:"call"};if(Dr.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(de)}:e.type==="LogicalExpression"||e.type==="BinaryExpression"?{kind:"compound",parts:[e.left,e.right].map(de)}:e.type==="TemplateLiteral"?{kind:"compound",parts:e.expressions.map(de)}:e.type==="ObjectExpression"?{kind:"compound",parts:e.properties.filter(n=>(n.type==="ObjectProperty"||n.type==="Property")&&n.computed!==!0).map(n=>de(n.value))}:e.type==="ArrayExpression"?{kind:"compound",parts:e.elements.filter(n=>n!=null&&n.type!=="SpreadElement").map(de)}:{kind:"opaque"}}var jr,Dr,de,me=b(()=>{"use strict";jr=new Set(["CallExpression","OptionalCallExpression"]),Dr=new Set(["MemberExpression","OptionalMemberExpression"]);de=e=>j(e)});function fe(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 Jr(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 rt(e){return e.type==="JSXIdentifier"?e.name==="class"?"className":e.name:e.type==="JSXNamespacedName"?`${e.namespace.name}:${e.name.name}`:"unknown"}function _r(e,t){let n=rt(e.name),r=Ar.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:Fr.has(l)}}let a=e.value;if(a==null)return i.literal=!0,i;if(nt(a))return i.literal=fe(a),i;if(a.type==="JSXExpressionContainer"&&a.expression?.type!=="JSXEmptyExpression"){let l=a.expression,c=fe(l);return c!==void 0?(i.literal=c,i):(i.expr=t.code(l),i.reactive=o?!1:Qt(l),(l.type==="JSXElement"||l.type==="JSXFragment")&&(i.jsxElement=!0),i)}return i.literal=!0,i}function Yt(e,t){let n=e.value;return n==null?null:nt(n)?JSON.stringify(fe(n)):n.type==="JSXExpressionContainer"&&n.expression?.type!=="JSXEmptyExpression"?t.code(n.expression):null}function Xr(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"||We(rt(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=Yt(o,t);r.push(a!=null?`[${i}, () => (${a})]`:`[${i}]`);continue}if(s==="oncapture"){let i=o.name.name.name.toLowerCase(),a=Yt(o,t)??"undefined";n.push({name:"on:"+i,kind:"attr",expr:`[${a}, { capture: true }]`});continue}n.push(_r(o,t))}return r.length>0&&n.push({name:"use",kind:"attr",expr:`[${r.join(", ")}]`}),n}function Zt(e,t){let n=[];for(let r of e)if(r.type==="JSXText"){let o=pe(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:Qt(o)})}}else r.type==="JSXElement"||r.type==="JSXFragment"?n.push(en(r,t)):r.type==="JSXSpreadChild"&&n.push({kind:"expr",code:t.code(r.expression),reactive:!1});return n}function Br(e){for(let t of e){if(t.type!=="JSXAttribute")continue;let n=rt(t.name);if(We(n)){if(t.value&&!nt(t.value))throw new X(`'${n}' needs a literal value, not an expression — the strategy is compile-time.`);return xe(n,t.value?fe(t.value):null)}}}function en(e,t){if(e.type==="JSXFragment")return{kind:"fragment",children:Zt(e.children,t)};let{tag:n,component:r}=Jr(e.openingElement.name,t),o=Xr(e.openingElement.attributes,t),s=Zt(e.children,t);if(r){let i=Br(e.openingElement.attributes);return{kind:"component",name:n,props:o,children:s,...i?{load:i}:{}}}return{kind:"element",tag:n,svg:Lr.has(n),props:o,children:s,static:!1}}function Te(e,t){let n=en(e,t);return W(n),n}var Lr,Ar,Fr,Qt,nt,ot=b(()=>{"use strict";q();Ce();me();ue();qe();Lr=new Set(["svg","path","circle","rect","line","polygon","polyline","ellipse","g","defs","clipPath","text"]),Ar=/^on[A-Z]/,Fr=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]),Qt=e=>V(j(e));nt=e=>!!e&&typeof fe(e)=="string"});function tn(e){return Hr(e,{concise:!0}).code}function Wr(e,t,n){let r=D.types.cloneNode(e,!0),o=D.types.file(D.types.program([D.types.expressionStatement(r)])),s=!1,i=(a,l,c)=>{for(let p of c)t.add(p);a.replaceWith(D.template.expression(l,{placeholderPattern:!1,plugins:["typescript"]})()),a.skip(),s=!0};return(0,D.traverse)(o,{"JSXElement|JSXFragment"(a){let l=a.node,c=it(l,t,n);n?.(c);let{code:p,imports:m,templates:d}=$.emit(c,{});i(a,K(p,d),m)},TaggedTemplateExpression(a){let l=a.node.tag;if(!D.types.isIdentifier(l)||l.name!=="html"&&l.name!=="svg")return;let c=Ie(a.node,t,{svg:l.name==="svg",onNested:n});n?.(c);let{code:p,imports:m,templates:d}=$.emit(c,{});i(a,K(p,d),m)}}),s?o.program.body[0].expression:e}function ke(e,t,n){return tn(Wr(e,t,n))}function Qe(e){return V(j(e))}function it(e,t=new Set,n){return Te(e,{code:o=>o.type==="JSXMemberExpression"?tn(o):ke(o,t,n),used:t})}var D,st,Hr,et=b(()=>{"use strict";D=require("@babel/core"),st=A(require("@babel/generator"),1);Z();tt();ot();Ce();me();Hr=st.default.default??st.default});function an(e){return t=>{B(t,{resolver:e.componentResolver,modules:{controlFlowModule:e.controlFlowModule,coreModule:e.libModule,routerModule:e.routerModule},strategyFor:n=>n.load}),H(t),Me(t,e)}}function Vr(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 ln(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 on(e,t){let n=new Set,r=it(e,n,an(t));B(r,{resolver:t.componentResolver,modules:{controlFlowModule:t.controlFlowModule,coreModule:t.libModule,routerModule:t.routerModule},strategyFor:l=>l.load}),H(r);let{code:o,imports:s,templates:i}=$.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);Me(r,t);let a=ln(o,i,t);return u.template.expression(a,{placeholderPattern:!1,plugins:["typescript"]})()}function zr(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 Ur(e,t){let n=new Set,r=u.types.isIdentifier(e.tag)&&e.tag.name==="svg",o=Ie(e,n,{svg:r,onNested:an(t)});B(o,{resolver:t.componentResolver,modules:{controlFlowModule:t.controlFlowModule,coreModule:t.libModule,routerModule:t.routerModule},strategyFor:c=>c.load}),H(o);let{code:s,imports:i,templates:a}=$.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);Me(o,t),t.hasLitIR=!0;let l=u.template.expression(ln(s,a,t),{placeholderPattern:!1,plugins:["typescript"]})();return Gr(l,e),l}function Gr(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 Me(e,t){if(e.kind==="component"&&e.source&&(e.source.origin==="builtin"?(t.controlFlowComponents.add(e.name),t.needsControlFlowImport=!0):Y(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)Me(n,t)}var sn,u,nn,rn,Q,at=b(()=>{"use strict";sn=require("@babel/helper-plugin-utils");ne();ie();Ne();q();oe();u=require("@babel/core");et();tt();Z();nn=new Set(U),rn=new Set(J),Q=(0,sn.declare)((e,t={})=>{e.assertVersion(7);let{delegateEvents:n=!0,signalModule:r="@fluixi/dom",controlFlowModule:o="@fluixi/dom",routerModule:s="@fluixi/core/router-next",reactiveModule:i="@fluixi/reactive/signal",templateClone:a=!0,partialTemplates:l=!0,format:c="both",litTag:p="html",resolve:m=[]}=t,d=F(m),x=c==="lit"||c==="both",v={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:d,delegatedEvents:new Set,staticTemplates:new Map,staticCounter:0};return{name:"@fluixi/babel-plugin-jsx",manipulateOptions(f,h){h.plugins.push("jsx","typescript")},pre(f){Object.assign(f,v)},visitor:{ImportDeclaration(f,h){f.node.source.value==="@fluixi/core/rx"&&(f.node.source=u.types.stringLiteral("@fluixi/reactive"))},Program:{enter(f,h){Object.assign(h,{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:s,templateClone:a,partialTemplates:l,irImports:new Set,needsCreateNativeElement:!1,needsInsert:!1,needsSpread:!1,needsCreateComponent:!1,needsMergeProps:!1})},exit(f,h){let R=[];if(h.hasJSX||h.hasLitIR){if(h.irImports.size>0){let S=new Set(["Show","For","Index","Switch","Match","Dynamic","ErrorBoundary","Portal","Suspense"]),N=new Set(["createMemo","createEffect","createRenderEffect","createRoot","createSignal","onCleanup","batch","untrack"]),k=Array.from(h.irImports),g=C=>u.types.importSpecifier(u.types.identifier(C),u.types.identifier(C)),y=C=>!f.scope.hasBinding(C),E=k.filter(C=>N.has(C)&&y(C)),w=k.filter(C=>!S.has(C)&&!N.has(C)&&y(C)),T=k.filter(C=>S.has(C)&&y(C));E.length>0&&R.push(u.types.importDeclaration(E.map(g),u.types.stringLiteral(i))),w.length>0&&R.push(u.types.importDeclaration(w.map(g),u.types.stringLiteral(r))),T.length>0&&R.push(u.types.importDeclaration(T.map(g),u.types.stringLiteral(o)))}if(h.needsCreateMemo&&!f.scope.hasBinding("createMemo")&&R.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 S=Array.from(h.controlFlowComponents).filter(w=>!f.scope.hasBinding(w)),N=h.libModule??"@fluixi/core",k=S.filter(w=>rn.has(w)),g=S.filter(w=>nn.has(w)),y=S.filter(w=>!nn.has(w)&&!rn.has(w)),E=(w,T)=>u.types.importDeclaration(w.map(C=>u.types.importSpecifier(u.types.identifier(C),u.types.identifier(C))),u.types.stringLiteral(T));y.length>0&&R.push(E(y,o)),g.length>0&&R.push(E(g,N)),k.length>0&&R.push(E(k,s))}let I=[];if(h.deferredComponents.size>0){for(let[S,N]of h.deferredComponents)f.scope.hasBinding(S)||I.push(u.types.variableDeclaration("const",[u.types.variableDeclarator(u.types.identifier(S),u.types.callExpression(u.types.identifier("deferred"),[u.types.arrowFunctionExpression([],u.types.callExpression(u.types.import(),[u.types.stringLiteral(N.module)])),u.types.objectExpression([u.types.objectProperty(u.types.identifier("strategy"),Vr(N.strategy)),u.types.objectProperty(u.types.identifier("export"),u.types.stringLiteral(N.export))])]))]));I.length>0&&!f.scope.hasBinding("deferred")&&R.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 S=new Map;for(let[N,k]of h.resolvedComponents){if(f.scope.hasBinding(N))continue;let g=S.get(k.module)??[];g.push({local:N,exported:k.export}),S.set(k.module,g)}for(let[N,k]of S)R.push(u.types.importDeclaration(k.map(({local:g,exported:y})=>y==="default"?u.types.importDefaultSpecifier(u.types.identifier(g)):u.types.importSpecifier(u.types.identifier(g),u.types.identifier(y))),u.types.stringLiteral(N)))}if(n&&h.delegatedEvents.size>0){R.push(u.types.importDeclaration([u.types.importSpecifier(u.types.identifier("delegateEvents"),u.types.identifier("delegateEvents"))],u.types.stringLiteral(r)));let S=u.types.arrayExpression(Array.from(h.delegatedEvents).map(k=>u.types.stringLiteral(k))),N=u.types.expressionStatement(u.types.callExpression(u.types.identifier("delegateEvents"),[S]));f.node.body.unshift(N)}if(I.length>0&&f.node.body.unshift(...I),h.staticTemplates.size>0){let S=[];for(let[N,k]of h.staticTemplates){let y=N.startsWith("svg:")?N.slice(4):N;S.push(u.types.variableDeclaration("const",[u.types.variableDeclarator(u.types.identifier(k),u.types.stringLiteral(y))]))}f.node.body.unshift(...S)}}R.length>0&&f.node.body.unshift(...zr(R))}},JSXElement(f,h){h.hasJSX=!0,f.replaceWith(on(f.node,h))},JSXFragment(f,h){h.hasJSX=!0,f.replaceWith(on(f.node,h))},TaggedTemplateExpression(f,h){x&&u.types.isIdentifier(f.node.tag)&&(f.node.tag.name===p||f.node.tag.name==="svg")&&f.replaceWith(Ur(f.node,h))}}}})});var cn=b(()=>{"use strict"});var pn={};te(pn,{babelPluginReactiveJSX:()=>qr,createPlugin:()=>Kr,createPreset:()=>$e,default:()=>Q,presets:()=>Yr});function Kr(e){return[Q,e]}function $e(e={}){return{plugins:[[Q,{runtime:"automatic",importSource:"@fluixi/jsx",development:!1,detectReactivity:!0,useLitHTML:!0,hoistStatics:!0,delegateEvents:!0,optimizeControlFlow:!0,sourceMaps:!0,...e}]]}}var qr,Yr,un=b(()=>{"use strict";at();cn();at();qr=Q;Yr={production:$e({development:!1,hoistStatics:!0,delegateEvents:!0,optimizeControlFlow:!0}),development:$e({development:!0,hoistStatics:!1,sourceMaps:!0}),minimal:$e({detectReactivity:!1,useLitHTML:!1,hoistStatics:!1,delegateEvents:!1,optimizeControlFlow:!1})}});function dn(e,t,n={}){let r=new Set,o=Ee(e,[...t],r,{svg:n.svg});W(o),B(o,{resolver:F(n.resolve??[]),modules:{controlFlowModule:n.controlFlowModule??"@fluixi/dom",coreModule:n.coreModule??"@fluixi/core",routerModule:n.routerModule??"@fluixi/core/router-next"},strategyFor:l=>l.load}),H(o);let{code:s,imports:i,templates:a}=$.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:K(s,a),imports:[...r],ir:o}}var mn=b(()=>{"use strict";ue();Ne();Z();ie();ne();Ye()});function z(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"?z(n.argument,t):z(n.value,t);return;case"ArrayPattern":for(let n of e.elements)z(n,t);return;case"AssignmentPattern":z(e.left,t);return;case"RestElement":z(e.argument,t);return}}function fn(e,t){switch(e.type){case"ImportDeclaration":for(let n of e.specifiers)z(n.local,t);return;case"VariableDeclaration":for(let n of e.declarations)z(n.id,t);return;case"FunctionDeclaration":case"ClassDeclaration":z(e.id,t);return;case"ExportNamedDeclaration":case"ExportDefaultDeclaration":e.declaration&&fn(e.declaration,t);return}}function ee(e){let t=new Set;for(let n of e.body)fn(n,t);return t}var Oe=b(()=>{"use strict"});function O(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"?O(n.argument,t):O(n.value,t);return;case"ArrayPattern":for(let n of e.elements)O(n,t);return;case"AssignmentPattern":O(e.left,t);return;case"RestElement":O(e.argument,t);return}}function lt(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(lt);case"UnaryExpression":return lt(e.argument);case"MemberExpression":return!1;default:return!1}}function Pe(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"&&Pe(o,t);else r&&typeof r=="object"&&typeof r.type=="string"&&Pe(r,t)}}}function Zr(e){let t=new Set;return Pe(e,n=>{if(n.type==="AssignmentExpression")O(n.left,t);else if(n.type==="UpdateExpression"){let r=n.argument;r?.type==="Identifier"&&t.add(r.name)}}),t}function Qr(e,t){let n=new Set,r=o=>{let s=new Set;O(o,s);for(let i of s)t.has(i)&&n.add(i)};return Pe(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 gn(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 m=new Set;O(p,m);for(let d of m)n.bails.push({name:d,reason:"rest"});continue}n.rest={name:p.name,keys:[]};continue}if(r.computed){let p=new Set;O(r.value,p);for(let m of p)n.bails.push({name:m,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&&!lt(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;O(i,p);for(let m of p)n.bails.push({name:m,reason:"unsafe-default"});continue}gn(i,l,n);continue}let c=new Set;O(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"||(gn(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=Zr(t),s=Qr(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 De(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 ct=b(()=>{"use strict"});function ge(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)ge(s,t,e);else o&&typeof o=="object"&&ge(o,t,e)}}function hn(e){return!!e&&e[0]>="A"&&e[0]<="Z"}function eo(e){let t=[];return ge(e,n=>{if(n.type==="FunctionDeclaration"&&hn(n.id?.name)){t.push(n);return}if(n.type==="VariableDeclarator"&&hn(n.id?.name)){let r=n.init;r&&(r.type==="ArrowFunctionExpression"||r.type==="FunctionExpression")&&t.push(r)}}),t}function to(e){let t=new Set;return ge(e,n=>{n.type==="Identifier"&&t.add(n.name)}),t}function no(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 pt(e,t,n={}){let r=[],o=[],s=new Set;for(let i of eo(e)){let a=i.params?.[0];if(a?.type!=="ObjectPattern")continue;let l=je(a,i.body);for(let v of l.bails)o.push({name:v.name,reason:v.reason,message:De(v.reason),start:a.start});if(l.bails.length>0||l.reads.length===0&&!l.rest)continue;let c=to(i),p=n.parameterName??"props";for(;c.has(p);)p=`_${p}`;let m=new Map;for(let v of l.reads){let f=`${p}.${v.path.join(".")}`,h=v.fallback;m.set(v.name,h?`(${f} === undefined ? ${t.slice(h.start,h.end)} : ${f})`:f)}let d=a.typeAnnotation;if(r.push({start:a.start,end:d?.start??a.end,code:p}),l.rest){let v=l.rest.keys.map(h=>JSON.stringify(h)).join(", "),f=i.body;r.push({start:f.start+1,end:f.start+1,code:`
2
+ const [, ${l.rest.name}] = splitProps(${p}, [${v}]);`}),s.add("splitProps")}let x=[];ge(i.body,(v,f)=>{if(v.type!=="Identifier")return;let h=m.get(v.name);if(!h)return;let R=f?.type==="ObjectProperty"&&f.shorthand&&f.value===v;if(!R&&!no(v,f))return;let I=l.reads.find(S=>S.name===v.name).path;x.push({node:v,parent:R?f:null,text:h,property:I[I.length-1]})});for(let v of x)v.parent?r.push({start:v.parent.start,end:v.parent.end,code:`${v.node.name}: ${v.text}`}):r.push({start:v.node.start,end:v.node.end,code:v.text}),ro(v.node,p,v.property)}return{edits:r,diagnostics:o,used:s}}function ro(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 xn(e,t="module.tsx",n={}){let r=(0,yn.parse)(e,{sourceType:"module",plugins:["typescript","jsx"],errorRecovery:!0}),{edits:o,diagnostics:s,used:i}=pt(r.program,e,n),a=new vn.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")&&!ee(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 yn,vn,ut=b(()=>{"use strict";yn=require("@babel/parser"),vn=A(require("magic-string"),1);ct();Oe()});function L(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"?L(n.argument,t):L(n.value,t);return;case"ArrayPattern":for(let n of e.elements??[])L(n,t);return;case"AssignmentPattern":L(e.left,t);return;case"RestElement":L(e.argument,t);return}}function Le(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)Le(o,t);else r&&typeof r=="object"&&Le(r,t)}}}function oo(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=P[r];if(s&&!t.shadowed.has(r))return s.returns}function so(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 bn(e){let t={kinds:new Map,primitives:new Map,shadowed:new Set},n=e;Le(n,r=>{let o=new Set;if(r.type==="VariableDeclarator")L(r.id,o);else if(r.type==="FunctionDeclaration"||r.type==="ClassDeclaration")L(r.id,o);else if(r.type==="ImportDefaultSpecifier"||r.type==="ImportNamespaceSpecifier")L(r.local,o);else if(r.type==="ImportSpecifier")L(r.local,o);else if(r.type==="FunctionExpression"||r.type==="ArrowFunctionExpression"||r.type==="FunctionDeclaration")for(let s of r.params??[])L(s,o);for(let s of o)P[s]&&t.shadowed.add(s)});for(let r of n.body??[])if(r.type==="ImportDeclaration"&&It(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=Et[i];a&&t.primitives.set(o.local.name,a)}return Le(n,r=>{if(r.type!=="VariableDeclarator"||!r.init)return;let o=oo(r.init,t);o&&so(r.id,o,t.kinds)}),t}var Nn=b(()=>{"use strict";se()});function dt(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)dt(o,t);else r&&typeof r=="object"&&dt(r,t)}}}function Sn(e){let t=[],n=[],r=new Map,o=new Set,{shadowed:s}=bn(e);return dt(e,i=>{if(i.type!=="CallExpression")return;let a=i.callee;if(a?.type!=="Identifier")return;let l=a.name;if(!kt(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=P[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 Rn(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(`
4
+ `)}
5
+ `:""}var En=b(()=>{"use strict";se();Nn()});function mt(e,t,n=null,r=""){if(!(!e||typeof e!="object")){if(Array.isArray(e)){for(let o of e)mt(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"||mt(e[o],t,typeof e.type=="string"?e:n,o)}}function po(e,t,n){return ft(e)?!(t&&ft(t)&&n==="children"):!1}function uo(e,t){return e.type==="TaggedTemplateExpression"&&e.tag?.type==="Identifier"&&(e.tag.name===t||e.tag.name==="svg")}function In(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 Ae(e,t,n,r){let o=In(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 mo(e,t,n){let r={code:Ae(e,t.start,t.end,n),reactive:V(j(t))};return t.type==="ArrowFunctionExpression"&&t.body?.type!=="BlockStatement"&&(r.arrow={params:t.params.map(o=>Ae(e,o.start,o.end,n)),body:Ae(e,t.body.start,t.body.end,n),bodyReactive:V(j(t.body))}),t.type==="ObjectExpression"&&(r.object=!0),r}function Cn(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 gt(e,t){if(e.kind==="component"&&e.source){let n=e.source;n.origin==="builtin"?t.builtins.add(e.name):Y(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)gt(n,t)}function fo(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=[];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 Tn(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&&wt(e);if(!a&&!(i&&e.includes("<"))&&!l)return null;let c=(0,wn.parse)(e,{sourceType:"module",plugins:["jsx","typescript"],errorRecovery:!0}),p=[];mt(c.program,(g,y,E)=>{(s&&uo(g,r)||i&&po(g,y,E))&&p.push(g)});let m=n.propsDestructure?pt(c.program,e,{runtimeModule:n.runtimeModule}):{edits:[],diagnostics:[],used:new Set},d=n.intrinsics===!1?{edits:[],diagnostics:[],imports:new Map}:Sn(c.program);if(p.length===0&&m.edits.length===0&&d.edits.length===0&&d.diagnostics.length===0&&m.diagnostics.length===0)return null;p.sort((g,y)=>y.start-g.start||g.end-y.end);let v=new Set(m.used),f={builtins:new Set,resolved:new Map,deferred:new Map,delegatedEvents:new Set},h=new Map,R=[...m.edits,...d.edits];for(let g of p){let y=p.some(T=>T!==g&&T.start<=g.start&&T.end>=g.end&&T.end-T.start>g.end-g.start);if(ft(g)){R.push({start:g.start,end:g.end,code:ho(e,g,R,y,v,f,h,n)});continue}let E=g.quasi.expressions.map(T=>mo(e,T,R)),w=dn(go(g),E,{...n,hoistTemplates:!0,templateClone:n.templateClone??!0,partialTemplates:y?!1:n.partialTemplates??!0,svg:g.tag.name==="svg"});for(let T of w.imports)v.add(T);gt(w.ir,f),R.push({start:g.start,end:g.end,code:Cn(w.code,w.templates,h)})}let I=new kn.default(e);for(let g of In(R))g.start===g.end?I.appendLeft(g.start,g.code):I.overwrite(g.start,g.end,g.code);let S=ee(c.program),N=yo(v,f,h,S,n);N&&I.prepend(N);let k=Rn(d,S);k&&I.prepend(k);for(let g of c.program.body)g.type==="ImportDeclaration"&&g.source?.value==="@fluixi/core/rx"&&I.overwrite(g.source.start,g.source.end,JSON.stringify("@fluixi/reactive"));return{code:I.toString(),map:I.generateMap({source:t,includeContent:!0,hires:!0}),...m.diagnostics.length?{propsDiagnostics:m.diagnostics}:{},...d.diagnostics.length?{intrinsicDiagnostics:d.diagnostics}:{}}}function ho(e,t,n,r,o,s,i,a){let l=Te(t,{code:p=>Ae(e,p.start,p.end,n),used:o});W(l),B(l,{resolver:F(a.resolve??[]),modules:{controlFlowModule:a.controlFlowModule??a.runtimeModule??"@fluixi/dom",coreModule:a.coreModule??"@fluixi/core",routerModule:a.routerModule??"@fluixi/core/router-next"},strategyFor:p=>p.load}),H(l);let c=$.emit(l,{templateClone:a.templateClone??!0,partialTemplates:r?!1:a.partialTemplates??!0});for(let p of c.imports)o.add(p);return gt(l,s),Cn(c.code,c.templates,i)}function yo(e,t,n,r,o){let s=o.runtimeModule??"@fluixi/dom",i=o.coreModule??"@fluixi/core",a=new Map,l=(d,x)=>a.set(d,[...a.get(d)??[],x]),c=new Set(e);for(let d of t.builtins)c.add(d);t.delegatedEvents.size>0&&c.add("delegateEvents");for(let d of[...c].sort())r.has(d)||(co.has(d)?l(o.reactiveModule??"@fluixi/reactive/signal",d):lo.has(d)?l(o.routerModule??"@fluixi/core/router-next",d):ao.has(d)?l(i,d):io.has(d)?l(o.controlFlowModule??s,d):l(s,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 p=[];for(let[d,x]of a)p.push(`import { ${x.join(", ")} } from ${JSON.stringify(d)};`);let m=[...t.deferred].filter(([d])=>!r.has(d));if(m.length>0){r.has("deferred")||p.push(`import { deferred } from ${JSON.stringify(i)};`);for(let[d,x]of m)p.push(`const ${d} = deferred(() => import(${JSON.stringify(x.module)}), { strategy: ${fo(x.loading)}, export: ${JSON.stringify(x.export)} });`)}for(let[d,x]of n)p.push(`const ${x} = ${JSON.stringify(d.startsWith("svg:")?d.slice(4):d)};`);return t.delegatedEvents.size>0&&p.push(`delegateEvents(${JSON.stringify([...t.delegatedEvents])});`),p.length>0?p.join(`
2
6
  `)+`
3
- `:null}var Vt,Ut,Rr,Sr,Er,Nr,Ze,Zt=b(()=>{"use strict";Vt=require("@babel/parser"),Ut=O(require("magic-string"),1);zt();H();Re();se();Ge();oe();fe();Q();K();V();Ke();Z();Rr=new Set(Y),Sr=new Set(B),Er=new Set(L),Nr=new Set(["createMemo","createEffect","createRenderEffect","createRoot","createSignal","onCleanup","batch","untrack"]);Ze=e=>e.type==="JSXElement"||e.type==="JSXFragment"});var Qt={};q(Qt,{moduleBindings:()=>Ce,shapeOf:()=>M,transformTemplates:()=>Yt});var en=b(()=>{"use strict";Zt();Ke();se()});function Or(e){let t=5381;for(let n=0;n<e.length;n++)t=t*33^e.charCodeAt(n);return(t>>>0).toString(16)}function we(e,t,n){let o=(e||"unknown").replace(t?t+"/":"","");return`${Or(o)}:${n}`}var et=b(()=>{"use strict"});var nn={};q(nn,{transformServerFunctions:()=>jr});function Lr({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||Pr)))}},"FunctionDeclaration|FunctionExpression|ArrowFunctionExpression":(t,n)=>{let o=t.node.body;if(!e.isBlockStatement(o))return;let i=(o.directives||[]).findIndex(u=>u.value.value==="use server");if(i<0)return;o.directives.splice(i,1);let s=we(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(s),t.isFunctionDeclaration()?e.functionExpression(null,t.node.params,o,t.node.generator,t.node.async):t.node]):e.callExpression(e.identifier(l),[e.stringLiteral(s)]);t.isFunctionDeclaration()?t.replaceWith(e.variableDeclaration("const",[e.variableDeclarator(t.node.id,c)])):t.replaceWith(c),t.skip()}}}}function jr(e,t){if(!e.includes("use server"))return null;let n=(0,tn.transformSync)(e,{filename:t.filename,configFile:!1,babelrc:!1,sourceMaps:!0,parserOpts:{plugins:["typescript","jsx"]},plugins:[[Lr,t]]});return n?.code?{code:n.code,map:n.map}:null}var tn,Pr,rn=b(()=>{"use strict";tn=require("@babel/core");et();Pr="@fluixi/start/server-fn"});var an={};q(an,{transformServerFns:()=>Dr});function Ar(e){if(!Jr.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 tt(e,t){if(!(!e||typeof e!="object")){if(Array.isArray(e)){for(let n of e)tt(n,t);return}if(typeof e.type=="string"){let n=Ar(e);if(n){t.push({fn:e,directive:n});return}}for(let n of Object.keys(e))n==="loc"||n==="leadingComments"||n==="trailingComments"||tt(e[n],t)}}function Dr(e,t){if(!e.includes("use server"))return null;let n=(0,on.parse)(e,{sourceType:"module",plugins:["jsx","typescript"],errorRecovery:!0}),o=[];if(tt(n.program,o),o.length===0)return null;let r=t.ssr?"$$registerServerFn":"$$createServerReference",i=new sn.default(e);return o.forEach(({fn:s,directive:a},l)=>{let c=we(t.filename,t.root,l),u=s.type==="FunctionDeclaration";if(!t.ssr){let m=`${r}(${JSON.stringify(c)})`;i.overwrite(s.start,s.end,u?`const ${s.id.name} = ${m};`:m);return}i.remove(a.start,a.end),i.appendLeft(s.start,u?`const ${s.id.name} = ${r}(${JSON.stringify(c)}, `:`${r}(${JSON.stringify(c)}, `),i.appendRight(s.end,u?");":")")}),i.prepend(`import { ${r} } from ${JSON.stringify(t.runtimeModule??Fr)};
4
- `),{code:i.toString(),map:i.generateMap({source:t.filename,includeContent:!0,hires:!0})}}var on,sn,Fr,Jr,ln=b(()=>{"use strict";on=require("@babel/parser"),sn=O(require("magic-string"),1);et();Fr="@fluixi/start/server-fn",Jr=new Set(["FunctionDeclaration","FunctionExpression","ArrowFunctionExpression"])});var zr={};q(zr,{createBabelPlugin:()=>Te,createESBuildPlugin:()=>mn,createRollupPlugin:()=>dn,createTypeScriptTransformer:()=>cn,createVitePlugin:()=>pn,createWebpackLoader:()=>un,default:()=>Wr,serverFunctionsVitePlugin:()=>Hr});module.exports=bn(zr);var j=require("node:fs"),k=require("node:path");K();Z();var En=new Set(["Text","Image","Option","Audio","Comment","Range","Selection","Notification","Event","Document","Element","Node","Screen","Window","Location","History","Storage","Response","Request","Headers"]);function Nn(e){if(e.startsWith(".")||e.startsWith("/")||/^[~@]\//.test(e))return;let t=e.split("/");return e.startsWith("@")?t.slice(0,2).join("/"):t[0]}function st(e){return`_${e.replace(/[^A-Za-z0-9]/g,"_")}`}function at(e,t={}){let{available:n,builtins:o=!0,generator:r="@fluixi/compiler",specifier:i=g=>g}=t,s=[...e];o&&s.push({components:pe()});let a=P(s),l=n?new Set(n):void 0,c=[],u=[],m=[],d=new Map;for(let g of[...a.names()].sort()){let h=a.resolve(g);if(!h)continue;let S=Nn(h.module);En.has(g)?u.push(g):l&&S&&!l.has(S)?m.push(g):(c.push(g),d.set(g,h))}let N=[...new Set(c.map(g=>d.get(g).module))].sort().map(g=>`import * as ${st(g)} from '${i(g)}';`),v=c.map(g=>{let h=d.get(g),S=st(h.module);return h.export==="default"?` const ${g}: typeof ${S}.default;`:` export import ${g} = ${S}.${h.export};`}),y=u.length>0?`//
7
+ `:null}var wn,kn,io,ao,lo,co,ft,Mn=b(()=>{"use strict";wn=require("@babel/parser"),kn=A(require("magic-string"),1);mn();q();Ce();me();ot();ue();Ne();ie();ne();Z();Oe();ut();En();se();oe();io=new Set(re),ao=new Set(U),lo=new Set(J),co=new Set(["createMemo","createEffect","createRenderEffect","createRoot","createSignal","onCleanup","batch","untrack"]);ft=e=>e.type==="JSXElement"||e.type==="JSXFragment"});var ht={};te(ht,{explainBail:()=>De,moduleBindings:()=>ee,planPropsDestructure:()=>je,shapeOf:()=>j,transformProps:()=>xn,transformTemplates:()=>Tn});var yt=b(()=>{"use strict";Mn();Oe();me();ut();ct()});function vo(e){let t=5381;for(let n=0;n<e.length;n++)t=t*33^e.charCodeAt(n);return(t>>>0).toString(16)}function Fe(e,t,n){let r=(e||"unknown").replace(t?t+"/":"","");return`${vo(r)}:${n}`}var vt=b(()=>{"use strict"});var On={};te(On,{transformServerFunctions:()=>No});function bo({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||xo)))}},"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=Fe(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 No(e,t){if(!e.includes("use server"))return null;let n=(0,$n.transformSync)(e,{filename:t.filename,configFile:!1,babelrc:!1,sourceMaps:!0,parserOpts:{plugins:["typescript","jsx"]},plugins:[[bo,t]]});return n?.code?{code:n.code,map:n.map}:null}var $n,xo,Pn=b(()=>{"use strict";$n=require("@babel/core");vt();xo="@fluixi/start/server-fn"});var Ln={};te(Ln,{transformServerFns:()=>wo});function Eo(e){if(!Ro.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 xt(e,t){if(!(!e||typeof e!="object")){if(Array.isArray(e)){for(let n of e)xt(n,t);return}if(typeof e.type=="string"){let n=Eo(e);if(n){t.push({fn:e,directive:n});return}}for(let n of Object.keys(e))n==="loc"||n==="leadingComments"||n==="trailingComments"||xt(e[n],t)}}function wo(e,t){if(!e.includes("use server"))return null;let n=(0,jn.parse)(e,{sourceType:"module",plugins:["jsx","typescript"],errorRecovery:!0}),r=[];if(xt(n.program,r),r.length===0)return null;let o=t.ssr?"$$registerServerFn":"$$createServerReference",s=new Dn.default(e);return r.forEach(({fn:i,directive:a},l)=>{let c=Fe(t.filename,t.root,l),p=i.type==="FunctionDeclaration";if(!t.ssr){let m=`${o}(${JSON.stringify(c)})`;s.overwrite(i.start,i.end,p?`const ${i.id.name} = ${m};`:m);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??So)};
8
+ `),{code:s.toString(),map:s.generateMap({source:t.filename,includeContent:!0,hires:!0})}}var jn,Dn,So,Ro,An=b(()=>{"use strict";jn=require("@babel/parser"),Dn=A(require("magic-string"),1);vt();So="@fluixi/start/server-fn",Ro=new Set(["FunctionDeclaration","FunctionExpression","ArrowFunctionExpression"])});var Oo={};te(Oo,{createBabelPlugin:()=>Je,createESBuildPlugin:()=>Bn,createRollupPlugin:()=>Xn,createTypeScriptTransformer:()=>Fn,createVitePlugin:()=>Jn,createWebpackLoader:()=>_n,default:()=>$o,serverFunctionsVitePlugin:()=>Mo});module.exports=qn(Oo);var _=require("node:fs"),M=require("node:path");ne();oe();se();var er=new Set(["Text","Image","Option","Audio","Comment","Range","Selection","Notification","Event","Document","Element","Node","Screen","Window","Location","History","Storage","Response","Request","Headers"]);function tr(e){if(e.startsWith(".")||e.startsWith("/")||/^[~@]\//.test(e))return;let t=e.split("/");return e.startsWith("@")?t.slice(0,2).join("/"):t[0]}function He(e){return`_${e.replace(/[^A-Za-z0-9]/g,"_")}`}function Ct(e,t={}){let{available:n,builtins:r=!0,intrinsics:o=!0,generator:s="@fluixi/compiler",specifier:i=y=>y}=t,a=[...e];r&&a.push({components:ye()});let l=F(a),c=n?new Set(n):void 0,p=[],m=[],d=[],x=new Map;for(let y of[...l.names()].sort()){let E=l.resolve(y);if(!E)continue;let w=tr(E.module);er.has(y)?m.push(y):c&&w&&!c.has(w)?d.push(y):(p.push(y),x.set(y,E))}let v=o?[...new Set(Object.values(P).map(y=>y.module))]:[],h=[...new Set([...p.map(y=>x.get(y).module),...v])].sort().map(y=>`import * as ${He(y)} from '${i(y)}';`),R=p.map(y=>{let E=x.get(y),w=He(E.module);return E.export==="default"?` const ${y}: typeof ${w}.default;`:` export import ${y} = ${w}.${E.export};`}),I=m.length>0?`//
5
9
  // Import these explicitly — lib.dom already declares the name, so an ambient
6
10
  // declaration cannot win:
7
- `+u.map(g=>{let h=a.resolve(g)?.module;return`// import { ${g} } from '${h?i(h):""}';
8
- `}).join(""):"",f=e.filter(g=>"match"in g).length,C=f>0?`//
9
- // ${f} pattern rule${f===1?"":"s"} cannot be declared:
11
+ `+m.map(y=>{let E=l.resolve(y)?.module;return`// import { ${y} } from '${E?i(E):""}';
12
+ `}).join(""):"",S=o?Object.entries(P).map(([y,E])=>` const ${y}: typeof ${He(E.module)}.${E.export};`):[],N=e.filter(y=>"match"in y).length,k=N>0?`//
13
+ // ${N} pattern rule${N===1?"":"s"} cannot be declared:
10
14
  // a pattern matches unboundedly many names, so there is no list to emit. Those
11
15
  // tags still resolve at build time; declare them by hand if the editor needs them.
12
- `:"";return{source:`// GENERATED by ${r} — do not edit.
16
+ `:"";return{source:`// GENERATED by ${s} — do not edit.
13
17
  //
14
18
  // The components \`resolve\` supplies without an import. This describes what the
15
19
  // compiler already does; it does not enable it.
16
- `+y+C+(N.length>0?`
17
- ${N.join(`
20
+ `+I+k+(h.length>0?`
21
+ ${h.join(`
18
22
  `)}
19
23
  `:`
20
24
  `)+`
21
25
  declare global {
22
- ${v.join(`
26
+ ${[...R,...S].join(`
23
27
  `)}
24
28
  }
25
- `,declared:c,shadowedByDom:u,unavailable:m,patternRules:f}}var Cn="GENERATED by @fluixi/compiler",kn="fluixi.d.ts";function wn(e,t){let n;try{let r=(0,j.readFileSync)((0,k.resolve)(e,"tsconfig.json"),"utf8");n=JSON.parse(r.replace(/^\s*\/\/.*$/gm,""))}catch{return}if(n.extends!==void 0)return;if(!Array.isArray(n.include))return!0;let o=ct(e,t);return n.include.some(r=>{if(typeof r!="string")return!1;let i=r.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*\//g,"(?:.*/)?").replace(/\*/g,"[^/]*");return new RegExp(`^${i}(?:/.*)?$`).test(o)})}function ct(e,t){return(0,k.relative)(e,t).split(k.sep).join("/")}function Tn(e,t,n){if(!e.startsWith("/"))return e;let o=(0,k.resolve)(n,e.slice(1)),r=(0,k.relative)(t,o).split(k.sep).join("/");return r.startsWith(".")||(r=`./${r}`),r.replace(/\.(tsx|ts|jsx|mts|cts)$/,".js")}function In(e){try{let t=JSON.parse((0,j.readFileSync)((0,k.resolve)(e,"package.json"),"utf8"));return[...Object.keys(t.dependencies??{}),...Object.keys(t.devDependencies??{}),...Object.keys(t.peerDependencies??{})]}catch{return}}function pt(e,t){if(e.globals===!1)return{status:"skipped",reason:"disabled"};let n=e.resolve??[],o=(0,k.resolve)(t,e.globals??kn),r;try{r=(0,j.readFileSync)(o,"utf8")}catch{r=void 0}if(r!==void 0&&!r.includes(Cn))return{status:"skipped",reason:"foreign-file",path:o};let{source:i,declared:s}=at(n,{available:In(t),specifier:a=>Tn(a,(0,k.dirname)(o),t)});return r===i?{status:"unchanged",path:o,declared:s.length,warning:lt(t,o)}:((0,j.mkdirSync)((0,k.dirname)(o),{recursive:!0}),(0,j.writeFileSync)(o,i),{status:"written",path:o,declared:s.length,warning:lt(t,o)})}function lt(e,t){if(wn(e,t)!==!1)return;let n=ct(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 Me=require("node:fs"),rt=require("node:path");async function Te(e={}){let t=null;try{t=await Promise.resolve().then(()=>(Ht(),Bt))}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 cn(e={}){let t=_r("typescript");return t?n=>{let o=r=>t.isJsxElement(r)||t.isJsxSelfClosingElement(r)?Xr(r,e,t):t.visitEachChild(r,o,n);return r=>t.visitNode(r,o)}:(console.warn("TypeScript not found, transformer unavailable"),n=>o=>o)}function Xr(e,t,n){return e}function _r(e){try{return require(e)}catch{return null}}function pn(e={}){return{name:"vite-fluixi-jsx",enforce:"pre",config(){return{esbuild:{jsx:"automatic",jsxImportSource:e.importSource||"@fluixi/jsx"}}},configResolved(t){let n=pt(e,t?.root??process.cwd());n.warning&&console.warn(n.warning)},async transform(t,n){if(!/\.(jsx|tsx|ts)$/i.test(n))return null;if(!e.babel)return Ie(t,n,e);let o=await Te(e);try{let r=await import("@babel/core").catch(()=>null);if(!r)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),s=/\.ts$/.test(n),a=[],l=[];if(i||s){let u=await import("@babel/preset-typescript").then(m=>m.default||m).catch(()=>null);u&&a.push([u,{isTSX:i,allExtensions:!0,jsxPragma:"jsx",jsxPragmaFrag:"Fragment",onlyRemoveTypeImports:!0}])}o&&o.plugin?l.push([o.plugin,o.getOptions()]):console.warn("[createVitePlugin] custom babel plugin not found");let c=await r.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(r){throw r}}}}function Br(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}}async function Ie(e,t,n){if(!n.babel){let{transformTemplates:s}=await Promise.resolve().then(()=>(en(),Qt));return s(e,t,Br(n))}let o=await import("@babel/core").catch(()=>null),r=await Te(n);if(!o||!r.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(e,{filename:t,configFile:!1,babelrc:!1,plugins:[[r.plugin,r.getOptions()]],sourceMaps:n.sourceMaps!==!1});return i?.code?{code:i.code,map:i.map}:null}function un(e={}){return async function(t){let n=this.async();Ie(t,this.resourcePath,e).then(o=>{n(null,o?.code,o?.map)}).catch(o=>{n(o)})}}function dn(e={}){return{name:"rollup-fluixi-jsx",async transform(t,n){return/\.[jt]sx?$/.test(n)?Ie(t,n,e):null}}}function mn(e={}){return{name:"esbuild-fluixi-jsx",setup(t){t.onLoad({filter:/\.[jt]sx?$/},async n=>{let{readFileSync:o}=await import("node:fs"),r=o(n.path,"utf8");try{return{contents:(await Ie(r,n.path,e))?.code??r,loader:n.path.endsWith("x")?"tsx":"ts"}}catch(i){return{errors:[{text:`Transform error: ${i}`}]}}})}}}var nt="virtual:fluixi-server-fns";function fn(e,t=[]){let n;try{n=(0,Me.readdirSync)(e,{withFileTypes:!0})}catch{return t}for(let o of n){if(o.name==="node_modules"||o.name==="dist"||o.name.startsWith("."))continue;let r=(0,rt.join)(e,o.name);if(o.isDirectory())fn(r,t);else if(/\.[jt]sx?$/.test(o.name))try{(0,Me.readFileSync)(r,"utf8").includes("use server")&&t.push(r)}catch{}}return t}function Hr(e={}){let t=process.cwd();return{name:"fluixi-server-functions",enforce:"pre",configResolved(n){t=n.root||t},resolveId(n){return n===nt||n==="@fluixi/start/server-fns"?"\0"+nt:null},load(n){if(n!=="\0"+nt)return null;let o=fn((0,rt.join)(t,"src")),r=`import '@fluixi/start/server-fn-setup';
26
- `,i=o.map(a=>`import ${JSON.stringify(a)};`).join(`
27
- `);return r+i+`
29
+ `,declared:p,shadowedByDom:m,unavailable:d,patternRules:N}}var nr="GENERATED by @fluixi/compiler",rr="fluixi.d.ts";function or(e,t){let n;try{let o=(0,_.readFileSync)((0,M.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=Mt(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 Mt(e,t){return(0,M.relative)(e,t).split(M.sep).join("/")}function sr(e,t,n){if(!e.startsWith("/"))return e;let r=(0,M.resolve)(n,e.slice(1)),o=(0,M.relative)(t,r).split(M.sep).join("/");return o.startsWith(".")||(o=`./${o}`),o.replace(/\.(tsx|ts|jsx|mts|cts)$/,".js")}function ir(e){try{let t=JSON.parse((0,_.readFileSync)((0,M.resolve)(e,"package.json"),"utf8"));return[...Object.keys(t.dependencies??{}),...Object.keys(t.devDependencies??{}),...Object.keys(t.peerDependencies??{})]}catch{return}}function $t(e,t){if(e.globals===!1)return{status:"skipped",reason:"disabled"};let n=e.resolve??[],r=(0,M.resolve)(t,e.globals??rr),o;try{o=(0,_.readFileSync)(r,"utf8")}catch{o=void 0}if(o!==void 0&&!o.includes(nr))return{status:"skipped",reason:"foreign-file",path:r};let{source:s,declared:i}=Ct(n,{available:ir(t),specifier:a=>sr(a,(0,M.dirname)(r),t)});return o===s?{status:"unchanged",path:r,declared:i.length,warning:Tt(t,r)}:((0,_.mkdirSync)((0,M.dirname)(r),{recursive:!0}),(0,_.writeFileSync)(r,s),{status:"written",path:r,declared:i.length,warning:Tt(t,r)})}function Tt(e,t){if(or(e,t)!==!1)return;let n=Mt(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 Xe=require("node:fs"),Nt=require("node:path");async function Je(e={}){let t=null;try{t=await Promise.resolve().then(()=>(un(),pn))}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 Fn(e={}){let t=Io("typescript");return t?n=>{let r=o=>t.isJsxElement(o)||t.isJsxSelfClosingElement(o)?ko(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 ko(e,t,n){return e}function Io(e){try{return require(e)}catch{return null}}function Jn(e={}){return{name:"vite-fluixi-jsx",enforce:"pre",config(){return{esbuild:{jsx:"automatic",jsxImportSource:e.importSource||"@fluixi/jsx"}}},configResolved(t){let n=$t(e,t?.root??process.cwd());n.warning&&console.warn(n.warning)},async transform(t,n){if(!/\.(jsx|tsx|ts)$/i.test(n))return null;if(!e.babel)return _e(t,n,e);let r=await Je(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(m=>m.default||m).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 Co(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 To(e,t,n){if(!n.propsDestructure)return e;let{transformProps:r}=await Promise.resolve().then(()=>(yt(),ht)),o=r(e,t);return o.rewritten>0?o.code:e}async function _e(e,t,n){if(!n.babel){let{transformTemplates:a}=await Promise.resolve().then(()=>(yt(),ht));return a(e,t,Co(n))}let r=await To(e,t,n),o=await import("@babel/core").catch(()=>null),s=await Je(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 _n(e={}){return async function(t){let n=this.async();_e(t,this.resourcePath,e).then(r=>{n(null,r?.code,r?.map)}).catch(r=>{n(r)})}}function Xn(e={}){return{name:"rollup-fluixi-jsx",async transform(t,n){return/\.[jt]sx?$/.test(n)?_e(t,n,e):null}}}function Bn(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 _e(o,n.path,e))?.code??o,loader:n.path.endsWith("x")?"tsx":"ts"}}catch(s){return{errors:[{text:`Transform error: ${s}`}]}}})}}}var bt="virtual:fluixi-server-fns";function Hn(e,t=[]){let n;try{n=(0,Xe.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,Nt.join)(e,r.name);if(r.isDirectory())Hn(o,t);else if(/\.[jt]sx?$/.test(r.name))try{(0,Xe.readFileSync)(o,"utf8").includes("use server")&&t.push(o)}catch{}}return t}function Mo(e={}){let t=process.cwd();return{name:"fluixi-server-functions",enforce:"pre",configResolved(n){t=n.root||t},resolveId(n){return n===bt||n==="@fluixi/start/server-fns"?"\0"+bt:null},load(n){if(n!=="\0"+bt)return null;let r=Hn((0,Nt.join)(t,"src")),o=`import '@fluixi/start/server-fn-setup';
30
+ `,s=r.map(a=>`import ${JSON.stringify(a)};`).join(`
31
+ `);return o+s+`
28
32
  export { isServerFnRequest, handleServerFn } from '@fluixi/start/server-fn';
29
- `},async transform(n,o,r){if(!/\.[jt]sx?$/.test(o)||!n.includes("use server"))return null;let i={ssr:!!r?.ssr,filename:o,root:t};if(e.babel){let{transformServerFunctions:a}=await Promise.resolve().then(()=>(rn(),nn));return a(n,i)}let{transformServerFns:s}=await Promise.resolve().then(()=>(ln(),an));return s(n,i)}}}var Wr={createBabelPlugin:Te,createTypeScriptTransformer:cn,createVitePlugin:pn,createWebpackLoader:un,createRollupPlugin:dn,createESBuildPlugin:mn};
33
+ `},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(()=>(Pn(),On));return a(n,s)}let{transformServerFns:i}=await Promise.resolve().then(()=>(An(),Ln));return i(n,s)}}}var $o={createBabelPlugin:Je,createTypeScriptTransformer:Fn,createVitePlugin:Jn,createWebpackLoader:_n,createRollupPlugin:Xn,createESBuildPlugin:Bn};
@@ -83,6 +83,20 @@ export interface CompilerOptions {
83
83
  * @default 'html'
84
84
  */
85
85
  litTag?: string;
86
+ /**
87
+ * Rewrite a component's destructured props into property reads, so
88
+ * `function Card({ title })` keeps updating instead of reading `title` once.
89
+ * Applies to JSX and html`` alike — it rewrites the function body before either is
90
+ * compiled. A pattern it can't prove is left as written, so `splitProps` keeps
91
+ * working wherever it's still needed.
92
+ *
93
+ * Off while we shake it out. Known gap before it can default on: when it rewrites a
94
+ * file the emitted map points at the rewritten source, not the author's, because the
95
+ * two passes each build their own map and nothing chains them yet.
96
+ *
97
+ * @default false
98
+ */
99
+ propsDestructure?: boolean;
86
100
  /**
87
101
  * Module emitted runtime symbols are imported from in 'imperative' mode.
88
102
  * @default '@fluixi/dom'
@@ -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;;;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;AA0BD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAE,eAAoB,GAAG,CAAC,CA2GpE;AA4CD;;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;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;;;OAYG;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;AA0BD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAE,eAAoB,GAAG,CAAC,CA2GpE;AA4DD;;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"}
@@ -217,21 +217,36 @@ function transformOptions(options) {
217
217
  controlFlowModule: options.controlFlowModule,
218
218
  routerModule: options.routerModule,
219
219
  reactiveModule: options.reactiveModule,
220
+ propsDestructure: options.propsDestructure,
220
221
  };
221
222
  }
223
+ /**
224
+ * The babel path compiles through a host AST, so the rewrite runs as its own pass there
225
+ * and pays for a second parse. The built-in path folds the same edits into the template
226
+ * transform instead, which is why only this branch needs it.
227
+ */
228
+ async function rewriteProps(code, id, options) {
229
+ if (!options.propsDestructure)
230
+ return code;
231
+ const { transformProps } = await import('./transform/index.js');
232
+ const result = transformProps(code, id);
233
+ // Untouched source comes back identical, so nothing pays for the option being on.
234
+ return result.rewritten > 0 ? result.code : code;
235
+ }
222
236
  /** Compile one module, through babel only when asked for it. */
223
237
  async function compileModule(code, id, options) {
224
238
  if (!options.babel) {
225
239
  const { transformTemplates } = await import('./transform/index.js');
226
240
  return transformTemplates(code, id, transformOptions(options));
227
241
  }
242
+ const source = await rewriteProps(code, id, options);
228
243
  const babel = await import('@babel/core').catch(() => null);
229
244
  const plugin = await createBabelPlugin(options);
230
245
  if (!babel || !plugin.plugin) {
231
246
  throw new Error(`[fluixi] babel: true needs @babel/core, which could not be loaded for ${id}. ` +
232
247
  `Install it, or drop the option to use the built-in compiler.`);
233
248
  }
234
- const result = await babel.transformAsync(code, {
249
+ const result = await babel.transformAsync(source, {
235
250
  filename: id,
236
251
  configFile: false,
237
252
  babelrc: false,
@@ -1,26 +1,26 @@
1
- import{a as R,f as j}from"./chunk-E2PW2OZU.mjs";import{a as T}from"./chunk-3SAEGOMQ.mjs";import{mkdirSync as L,readFileSync as v,writeFileSync as B}from"node:fs";import{dirname as $,relative as E,sep as F,resolve as b}from"node:path";var I=new Set(["Text","Image","Option","Audio","Comment","Range","Selection","Notification","Event","Document","Element","Node","Screen","Window","Location","History","Storage","Response","Request","Headers"]);function _(e){if(e.startsWith(".")||e.startsWith("/")||/^[~@]\//.test(e))return;let t=e.split("/");return e.startsWith("@")?t.slice(0,2).join("/"):t[0]}function C(e){return`_${e.replace(/[^A-Za-z0-9]/g,"_")}`}function M(e,t={}){let{available:n,builtins:r=!0,generator:s="@fluixi/compiler",specifier:o=i=>i}=t,l=[...e];r&&l.push({components:j()});let a=R(l),f=n?new Set(n):void 0,c=[],p=[],d=[],h=new Map;for(let i of[...a.names()].sort()){let u=a.resolve(i);if(!u)continue;let m=_(u.module);I.has(i)?p.push(i):f&&m&&!f.has(m)?d.push(i):(c.push(i),h.set(i,u))}let S=[...new Set(c.map(i=>h.get(i).module))].sort().map(i=>`import * as ${C(i)} from '${o(i)}';`),D=c.map(i=>{let u=h.get(i),m=C(u.module);return u.export==="default"?` const ${i}: typeof ${m}.default;`:` export import ${i} = ${m}.${u.export};`}),W=p.length>0?`//
1
+ import{a as v}from"./chunk-545LMC5W.mjs";import{a as M,f as $}from"./chunk-E2PW2OZU.mjs";import{a as C}from"./chunk-3SAEGOMQ.mjs";import{mkdirSync as V,readFileSync as w,writeFileSync as H}from"node:fs";import{dirname as E,relative as D,sep as G,resolve as b}from"node:path";var J=new Set(["Text","Image","Option","Audio","Comment","Range","Selection","Notification","Event","Document","Element","Node","Screen","Window","Location","History","Storage","Response","Request","Headers"]);function q(e){if(e.startsWith(".")||e.startsWith("/")||/^[~@]\//.test(e))return;let t=e.split("/");return e.startsWith("@")?t.slice(0,2).join("/"):t[0]}function x(e){return`_${e.replace(/[^A-Za-z0-9]/g,"_")}`}function O(e,t={}){let{available:n,builtins:r=!0,intrinsics:s=!0,generator:i="@fluixi/compiler",specifier:l=o=>o}=t,a=[...e];r&&a.push({components:$()});let f=M(a),m=n?new Set(n):void 0,c=[],p=[],R=[],h=new Map;for(let o of[...f.names()].sort()){let u=f.resolve(o);if(!u)continue;let d=q(u.module);J.has(o)?p.push(o):m&&d&&!m.has(d)?R.push(o):(c.push(o),h.set(o,u))}let I=s?[...new Set(Object.values(v).map(o=>o.module))]:[],j=[...new Set([...c.map(o=>h.get(o).module),...I])].sort().map(o=>`import * as ${x(o)} from '${l(o)}';`),W=c.map(o=>{let u=h.get(o),d=x(u.module);return u.export==="default"?` const ${o}: typeof ${d}.default;`:` export import ${o} = ${d}.${u.export};`}),L=p.length>0?`//
2
2
  // Import these explicitly — lib.dom already declares the name, so an ambient
3
3
  // declaration cannot win:
4
- `+p.map(i=>{let u=a.resolve(i)?.module;return`// import { ${i} } from '${u?o(u):""}';
5
- `}).join(""):"",g=e.filter(i=>"match"in i).length,N=g>0?`//
4
+ `+p.map(o=>{let u=f.resolve(o)?.module;return`// import { ${o} } from '${u?l(u):""}';
5
+ `}).join(""):"",_=s?Object.entries(v).map(([o,u])=>` const ${o}: typeof ${x(u.module)}.${u.export};`):[],g=e.filter(o=>"match"in o).length,B=g>0?`//
6
6
  // ${g} pattern rule${g===1?"":"s"} cannot be declared:
7
7
  // a pattern matches unboundedly many names, so there is no list to emit. Those
8
8
  // tags still resolve at build time; declare them by hand if the editor needs them.
9
- `:"";return{source:`// GENERATED by ${s} — do not edit.
9
+ `:"";return{source:`// GENERATED by ${i} — do not edit.
10
10
  //
11
11
  // The components \`resolve\` supplies without an import. This describes what the
12
12
  // compiler already does; it does not enable it.
13
- `+W+N+(S.length>0?`
14
- ${S.join(`
13
+ `+L+B+(j.length>0?`
14
+ ${j.join(`
15
15
  `)}
16
16
  `:`
17
17
  `)+`
18
18
  declare global {
19
- ${D.join(`
19
+ ${[...W,..._].join(`
20
20
  `)}
21
21
  }
22
- `,declared:c,shadowedByDom:p,unavailable:d,patternRules:g}}var J="GENERATED by @fluixi/compiler",q="fluixi.d.ts";function V(e,t){let n;try{let s=v(b(e,"tsconfig.json"),"utf8");n=JSON.parse(s.replace(/^\s*\/\/.*$/gm,""))}catch{return}if(n.extends!==void 0)return;if(!Array.isArray(n.include))return!0;let r=G(e,t);return n.include.some(s=>{if(typeof s!="string")return!1;let o=s.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*\//g,"(?:.*/)?").replace(/\*/g,"[^/]*");return new RegExp(`^${o}(?:/.*)?$`).test(r)})}function G(e,t){return E(e,t).split(F).join("/")}function H(e,t,n){if(!e.startsWith("/"))return e;let r=b(n,e.slice(1)),s=E(t,r).split(F).join("/");return s.startsWith(".")||(s=`./${s}`),s.replace(/\.(tsx|ts|jsx|mts|cts)$/,".js")}function X(e){try{let t=JSON.parse(v(b(e,"package.json"),"utf8"));return[...Object.keys(t.dependencies??{}),...Object.keys(t.devDependencies??{}),...Object.keys(t.peerDependencies??{})]}catch{return}}function A(e,t){if(e.globals===!1)return{status:"skipped",reason:"disabled"};let n=e.resolve??[],r=b(t,e.globals??q),s;try{s=v(r,"utf8")}catch{s=void 0}if(s!==void 0&&!s.includes(J))return{status:"skipped",reason:"foreign-file",path:r};let{source:o,declared:l}=M(n,{available:X(t),specifier:a=>H(a,$(r),t)});return s===o?{status:"unchanged",path:r,declared:l.length,warning:O(t,r)}:(L($(r),{recursive:!0}),B(r,o),{status:"written",path:r,declared:l.length,warning:O(t,r)})}function O(e,t){if(V(e,t)!==!1)return;let n=G(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".`}import{readdirSync as ne,readFileSync as re}from"node:fs";import{join as k}from"node:path";async function w(e={}){let t=null;try{t=await import("./babel-GXO3KAVI.mjs")}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 U(e={}){let t=K("typescript");return t?n=>{let r=s=>t.isJsxElement(s)||t.isJsxSelfClosingElement(s)?z(s,e,t):t.visitEachChild(s,r,n);return s=>t.visitNode(s,r)}:(console.warn("TypeScript not found, transformer unavailable"),n=>r=>r)}function z(e,t,n){return e}function K(e){try{return T(e)}catch{return null}}function Z(e={}){return{name:"vite-fluixi-jsx",enforce:"pre",config(){return{esbuild:{jsx:"automatic",jsxImportSource:e.importSource||"@fluixi/jsx"}}},configResolved(t){let n=A(e,t?.root??process.cwd());n.warning&&console.warn(n.warning)},async transform(t,n){if(!/\.(jsx|tsx|ts)$/i.test(n))return null;if(!e.babel)return y(t,n,e);let r=await w(e);try{let s=await import("@babel/core").catch(()=>null);if(!s)throw new Error(`[fluixi] @babel/core is required to compile ${n} but could not be loaded. Install it alongside @fluixi/compiler.`);let o=/\.tsx$/.test(n),l=/\.ts$/.test(n),a=[],f=[];if(o||l){let p=await import("@babel/preset-typescript").then(d=>d.default||d).catch(()=>null);p&&a.push([p,{isTSX:o,allExtensions:!0,jsxPragma:"jsx",jsxPragmaFrag:"Fragment",onlyRemoveTypeImports:!0}])}r&&r.plugin?f.push([r.plugin,r.getOptions()]):console.warn("[createVitePlugin] custom babel plugin not found");let c=await s.transformAsync(t,{filename:n,configFile:!1,babelrc:!1,presets:a,plugins:f,sourceMaps:e.sourceMaps!==!1});return{code:c?.code||t,map:c?.map}}catch(s){throw s}}}}function Q(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}}async function y(e,t,n){if(!n.babel){let{transformTemplates:l}=await import("./transform-PJX2GNSV.mjs");return l(e,t,Q(n))}let r=await import("@babel/core").catch(()=>null),s=await w(n);if(!r||!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 o=await r.transformAsync(e,{filename:t,configFile:!1,babelrc:!1,plugins:[[s.plugin,s.getOptions()]],sourceMaps:n.sourceMaps!==!1});return o?.code?{code:o.code,map:o.map}:null}function Y(e={}){return async function(t){let n=this.async();y(t,this.resourcePath,e).then(r=>{n(null,r?.code,r?.map)}).catch(r=>{n(r)})}}function ee(e={}){return{name:"rollup-fluixi-jsx",async transform(t,n){return/\.[jt]sx?$/.test(n)?y(t,n,e):null}}}function te(e={}){return{name:"esbuild-fluixi-jsx",setup(t){t.onLoad({filter:/\.[jt]sx?$/},async n=>{let{readFileSync:r}=await import("node:fs"),s=r(n.path,"utf8");try{return{contents:(await y(s,n.path,e))?.code??s,loader:n.path.endsWith("x")?"tsx":"ts"}}catch(o){return{errors:[{text:`Transform error: ${o}`}]}}})}}}var x="virtual:fluixi-server-fns";function P(e,t=[]){let n;try{n=ne(e,{withFileTypes:!0})}catch{return t}for(let r of n){if(r.name==="node_modules"||r.name==="dist"||r.name.startsWith("."))continue;let s=k(e,r.name);if(r.isDirectory())P(s,t);else if(/\.[jt]sx?$/.test(r.name))try{re(s,"utf8").includes("use server")&&t.push(s)}catch{}}return t}function be(e={}){let t=process.cwd();return{name:"fluixi-server-functions",enforce:"pre",configResolved(n){t=n.root||t},resolveId(n){return n===x||n==="@fluixi/start/server-fns"?"\0"+x:null},load(n){if(n!=="\0"+x)return null;let r=P(k(t,"src")),s=`import '@fluixi/start/server-fn-setup';
23
- `,o=r.map(a=>`import ${JSON.stringify(a)};`).join(`
24
- `);return s+o+`
22
+ `,declared:c,shadowedByDom:p,unavailable:R,patternRules:g}}var X="GENERATED by @fluixi/compiler",U="fluixi.d.ts";function z(e,t){let n;try{let s=w(b(e,"tsconfig.json"),"utf8");n=JSON.parse(s.replace(/^\s*\/\/.*$/gm,""))}catch{return}if(n.extends!==void 0)return;if(!Array.isArray(n.include))return!0;let r=A(e,t);return n.include.some(s=>{if(typeof s!="string")return!1;let i=s.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*\//g,"(?:.*/)?").replace(/\*/g,"[^/]*");return new RegExp(`^${i}(?:/.*)?$`).test(r)})}function A(e,t){return D(e,t).split(G).join("/")}function K(e,t,n){if(!e.startsWith("/"))return e;let r=b(n,e.slice(1)),s=D(t,r).split(G).join("/");return s.startsWith(".")||(s=`./${s}`),s.replace(/\.(tsx|ts|jsx|mts|cts)$/,".js")}function Z(e){try{let t=JSON.parse(w(b(e,"package.json"),"utf8"));return[...Object.keys(t.dependencies??{}),...Object.keys(t.devDependencies??{}),...Object.keys(t.peerDependencies??{})]}catch{return}}function P(e,t){if(e.globals===!1)return{status:"skipped",reason:"disabled"};let n=e.resolve??[],r=b(t,e.globals??U),s;try{s=w(r,"utf8")}catch{s=void 0}if(s!==void 0&&!s.includes(X))return{status:"skipped",reason:"foreign-file",path:r};let{source:i,declared:l}=O(n,{available:Z(t),specifier:a=>K(a,E(r),t)});return s===i?{status:"unchanged",path:r,declared:l.length,warning:F(t,r)}:(V(E(r),{recursive:!0}),H(r,i),{status:"written",path:r,declared:l.length,warning:F(t,r)})}function F(e,t){if(z(e,t)!==!1)return;let n=A(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".`}import{readdirSync as le,readFileSync as ae}from"node:fs";import{join as k}from"node:path";async function T(e={}){let t=null;try{t=await import("./babel-YQ42WUS3.mjs")}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 Q(e={}){let t=ee("typescript");return t?n=>{let r=s=>t.isJsxElement(s)||t.isJsxSelfClosingElement(s)?Y(s,e,t):t.visitEachChild(s,r,n);return s=>t.visitNode(s,r)}:(console.warn("TypeScript not found, transformer unavailable"),n=>r=>r)}function Y(e,t,n){return e}function ee(e){try{return C(e)}catch{return null}}function te(e={}){return{name:"vite-fluixi-jsx",enforce:"pre",config(){return{esbuild:{jsx:"automatic",jsxImportSource:e.importSource||"@fluixi/jsx"}}},configResolved(t){let n=P(e,t?.root??process.cwd());n.warning&&console.warn(n.warning)},async transform(t,n){if(!/\.(jsx|tsx|ts)$/i.test(n))return null;if(!e.babel)return y(t,n,e);let r=await T(e);try{let s=await import("@babel/core").catch(()=>null);if(!s)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),l=/\.ts$/.test(n),a=[],f=[];if(i||l){let c=await import("@babel/preset-typescript").then(p=>p.default||p).catch(()=>null);c&&a.push([c,{isTSX:i,allExtensions:!0,jsxPragma:"jsx",jsxPragmaFrag:"Fragment",onlyRemoveTypeImports:!0}])}r&&r.plugin?f.push([r.plugin,r.getOptions()]):console.warn("[createVitePlugin] custom babel plugin not found");let m=await s.transformAsync(t,{filename:n,configFile:!1,babelrc:!1,presets:a,plugins:f,sourceMaps:e.sourceMaps!==!1});return{code:m?.code||t,map:m?.map}}catch(s){throw s}}}}function ne(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 re(e,t,n){if(!n.propsDestructure)return e;let{transformProps:r}=await import("./transform-ZWIHEZVN.mjs"),s=r(e,t);return s.rewritten>0?s.code:e}async function y(e,t,n){if(!n.babel){let{transformTemplates:a}=await import("./transform-ZWIHEZVN.mjs");return a(e,t,ne(n))}let r=await re(e,t,n),s=await import("@babel/core").catch(()=>null),i=await T(n);if(!s||!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 l=await s.transformAsync(r,{filename:t,configFile:!1,babelrc:!1,plugins:[[i.plugin,i.getOptions()]],sourceMaps:n.sourceMaps!==!1});return l?.code?{code:l.code,map:l.map}:null}function se(e={}){return async function(t){let n=this.async();y(t,this.resourcePath,e).then(r=>{n(null,r?.code,r?.map)}).catch(r=>{n(r)})}}function oe(e={}){return{name:"rollup-fluixi-jsx",async transform(t,n){return/\.[jt]sx?$/.test(n)?y(t,n,e):null}}}function ie(e={}){return{name:"esbuild-fluixi-jsx",setup(t){t.onLoad({filter:/\.[jt]sx?$/},async n=>{let{readFileSync:r}=await import("node:fs"),s=r(n.path,"utf8");try{return{contents:(await y(s,n.path,e))?.code??s,loader:n.path.endsWith("x")?"tsx":"ts"}}catch(i){return{errors:[{text:`Transform error: ${i}`}]}}})}}}var S="virtual:fluixi-server-fns";function N(e,t=[]){let n;try{n=le(e,{withFileTypes:!0})}catch{return t}for(let r of n){if(r.name==="node_modules"||r.name==="dist"||r.name.startsWith("."))continue;let s=k(e,r.name);if(r.isDirectory())N(s,t);else if(/\.[jt]sx?$/.test(r.name))try{ae(s,"utf8").includes("use server")&&t.push(s)}catch{}}return t}function Se(e={}){let t=process.cwd();return{name:"fluixi-server-functions",enforce:"pre",configResolved(n){t=n.root||t},resolveId(n){return n===S||n==="@fluixi/start/server-fns"?"\0"+S:null},load(n){if(n!=="\0"+S)return null;let r=N(k(t,"src")),s=`import '@fluixi/start/server-fn-setup';
23
+ `,i=r.map(a=>`import ${JSON.stringify(a)};`).join(`
24
+ `);return s+i+`
25
25
  export { isServerFnRequest, handleServerFn } from '@fluixi/start/server-fn';
26
- `},async transform(n,r,s){if(!/\.[jt]sx?$/.test(r)||!n.includes("use server"))return null;let o={ssr:!!s?.ssr,filename:r,root:t};if(e.babel){let{transformServerFunctions:a}=await import("./server-functions-E3LKCZ4R.mjs");return a(n,o)}let{transformServerFns:l}=await import("./server-fns-6QM243HC.mjs");return l(n,o)}}}var ye={createBabelPlugin:w,createTypeScriptTransformer:U,createVitePlugin:Z,createWebpackLoader:Y,createRollupPlugin:ee,createESBuildPlugin:te};export{w as createBabelPlugin,te as createESBuildPlugin,ee as createRollupPlugin,U as createTypeScriptTransformer,Z as createVitePlugin,Y as createWebpackLoader,ye as default,be as serverFunctionsVitePlugin};
26
+ `},async transform(n,r,s){if(!/\.[jt]sx?$/.test(r)||!n.includes("use server"))return null;let i={ssr:!!s?.ssr,filename:r,root:t};if(e.babel){let{transformServerFunctions:a}=await import("./server-functions-E3LKCZ4R.mjs");return a(n,i)}let{transformServerFns:l}=await import("./server-fns-6QM243HC.mjs");return l(n,i)}}}var Te={createBabelPlugin:T,createTypeScriptTransformer:Q,createVitePlugin:te,createWebpackLoader:se,createRollupPlugin:oe,createESBuildPlugin:ie};export{T as createBabelPlugin,ie as createESBuildPlugin,oe as createRollupPlugin,Q as createTypeScriptTransformer,te as createVitePlugin,se as createWebpackLoader,Te as default,Se as serverFunctionsVitePlugin};