@fluixi/compiler 1.0.0-alpha.72 → 1.0.0-alpha.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -16
- package/dist/analyze/expr-shape.cjs +1 -0
- package/dist/analyze/expr-shape.d.ts +15 -0
- package/dist/analyze/expr-shape.d.ts.map +1 -0
- package/dist/analyze/expr-shape.js +37 -0
- package/dist/analyze/expr-shape.mjs +1 -0
- package/dist/analyze/reactive-expr.cjs +1 -0
- package/dist/analyze/reactive-expr.d.ts +39 -0
- package/dist/analyze/reactive-expr.d.ts.map +1 -0
- package/dist/analyze/reactive-expr.js +31 -0
- package/dist/analyze/reactive-expr.mjs +1 -0
- package/dist/babel-GXO3KAVI.mjs +1 -0
- package/dist/chunk-3SAEGOMQ.mjs +1 -0
- package/dist/chunk-E2PW2OZU.mjs +1 -0
- package/dist/chunk-IBRM4W7I.mjs +10 -0
- package/dist/chunk-OHHZCYIQ.mjs +1 -0
- package/dist/chunk-TIE4XNAM.mjs +1 -0
- package/dist/frontend/babel/build-ir-lit.cjs +1 -1
- package/dist/frontend/babel/build-ir-lit.d.ts +1 -0
- package/dist/frontend/babel/build-ir-lit.d.ts.map +1 -1
- package/dist/frontend/babel/build-ir-lit.mjs +1 -1
- package/dist/frontend/babel/build-ir.cjs +1 -1
- package/dist/frontend/babel/build-ir.d.ts +13 -11
- package/dist/frontend/babel/build-ir.d.ts.map +1 -1
- package/dist/frontend/babel/build-ir.js +27 -217
- package/dist/frontend/babel/build-ir.mjs +1 -1
- package/dist/frontend/babel/index.cjs +1 -2
- package/dist/frontend/babel/index.mjs +1 -2
- package/dist/frontend/babel/lower-template.cjs +1 -1
- package/dist/frontend/babel/lower-template.d.ts +12 -9
- package/dist/frontend/babel/lower-template.d.ts.map +1 -1
- package/dist/frontend/babel/lower-template.js +33 -445
- package/dist/frontend/babel/lower-template.mjs +1 -1
- package/dist/frontend/babel/plugin.cjs +1 -2
- package/dist/frontend/babel/plugin.d.ts +24 -85
- package/dist/frontend/babel/plugin.d.ts.map +1 -1
- package/dist/frontend/babel/plugin.js +52 -1285
- package/dist/frontend/babel/plugin.mjs +1 -2
- package/dist/frontend/babel/server-functions.cjs +1 -1
- package/dist/frontend/babel/server-functions.d.ts.map +1 -1
- package/dist/frontend/babel/server-functions.js +2 -9
- package/dist/frontend/babel/server-functions.mjs +1 -1
- package/dist/index.cjs +8 -8
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.mjs +9 -9
- package/dist/integrations.cjs +15 -19
- package/dist/integrations.d.ts +39 -151
- package/dist/integrations.d.ts.map +1 -1
- package/dist/integrations.js +79 -491
- package/dist/integrations.mjs +11 -17
- package/dist/lower/compile-template.cjs +1 -0
- package/dist/lower/compile-template.d.ts +57 -0
- package/dist/lower/compile-template.d.ts.map +1 -0
- package/dist/lower/compile-template.js +72 -0
- package/dist/lower/compile-template.mjs +1 -0
- package/dist/lower/jsx.cjs +1 -0
- package/dist/lower/jsx.d.ts +24 -0
- package/dist/lower/jsx.d.ts.map +1 -0
- package/dist/lower/jsx.js +193 -0
- package/dist/lower/jsx.mjs +1 -0
- package/dist/lower/template.cjs +1 -0
- package/dist/lower/template.d.ts +41 -0
- package/dist/lower/template.d.ts.map +1 -0
- package/dist/lower/template.js +445 -0
- package/dist/lower/template.mjs +1 -0
- package/dist/lower/text.cjs +1 -0
- package/dist/lower/text.d.ts +11 -0
- package/dist/lower/text.d.ts.map +1 -0
- package/dist/lower/text.js +31 -0
- package/dist/lower/text.mjs +1 -0
- package/dist/options.cjs +1 -1
- package/dist/options.d.ts +0 -2
- package/dist/options.d.ts.map +1 -1
- package/dist/options.js +0 -1
- package/dist/options.mjs +1 -1
- package/dist/server-fns-6QM243HC.mjs +2 -0
- package/dist/server-functions-E3LKCZ4R.mjs +1 -0
- package/dist/transform/bindings.cjs +1 -0
- package/dist/transform/bindings.d.ts +17 -0
- package/dist/transform/bindings.d.ts.map +1 -0
- package/dist/transform/bindings.js +69 -0
- package/dist/transform/bindings.mjs +1 -0
- package/dist/transform/index.cjs +3 -0
- package/dist/transform/index.d.ts +12 -0
- package/dist/transform/index.d.ts.map +1 -0
- package/dist/transform/index.js +10 -0
- package/dist/transform/index.mjs +12 -0
- package/dist/transform/server-fn-id.cjs +1 -0
- package/dist/transform/server-fn-id.d.ts +10 -0
- package/dist/transform/server-fn-id.d.ts.map +1 -0
- package/dist/transform/server-fn-id.js +18 -0
- package/dist/transform/server-fn-id.mjs +1 -0
- package/dist/transform/server-fns.cjs +2 -0
- package/dist/transform/server-fns.d.ts +13 -0
- package/dist/transform/server-fns.d.ts.map +1 -0
- package/dist/transform/server-fns.js +94 -0
- package/dist/transform/server-fns.mjs +11 -0
- package/dist/transform/templates.cjs +3 -0
- package/dist/transform/templates.d.ts +26 -0
- package/dist/transform/templates.d.ts.map +1 -0
- package/dist/transform/templates.js +347 -0
- package/dist/transform/templates.mjs +12 -0
- package/dist/transform-PJX2GNSV.mjs +3 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/package.json +29 -8
- package/dist/babel-E7EQLX36.mjs +0 -2
- package/dist/chunk-EF6V4GTD.mjs +0 -1
package/dist/index.mjs
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
var se=e=>"components"in e;function L(e,t){return e.replace(/\$(\d+)/g,(n,o)=>t[Number(o)]??n)}function le(e,t){return typeof t=="string"?{module:t,export:e}:t}function B(e=[]){let t=new Map,n=[],o=[];for(let a of e){if(!se(a)){o.push(a);continue}for(let[r,p]of Object.entries(a.components)){let s=le(r,p),u=t.get(r);if(u&&u.module!==s.module){let c=n.find(m=>m.name===r);c?c.modules.push(s.module):n.push({name:r,modules:[u.module,s.module]});continue}t.set(r,s)}}let i=new Map;return{resolve:a=>{if(i.has(a))return i.get(a);let r=t.get(a);if(!r)for(let p of o){let s=a.match(new RegExp(p.match.source,p.match.flags.replace("g","")));if(s){r={module:L(p.module,s),export:p.export?L(p.export,s):a};break}}return i.set(a,r),r},names:()=>[...t.keys()],conflicts:()=>n}}var I=["Show","For","Index","Switch","Match","Portal","Dynamic","ErrorBoundary"],O=["Suspense","SuspenseList","Await"],x=["Router","Outlet","Redirect","Link"],_e=[...I,...O,...x],T=new Set([...I,...O]);function v(e={}){let{controlFlowModule:t="@fluixi/dom",coreModule:n="@fluixi/core",routerModule:o="@fluixi/core/router-next"}=e,i={};for(let l of I)i[l]=t;for(let l of O)i[l]=n;for(let l of x)i[l]=o;return i}function Le(e={}){return{components:v(e)}}function Be(e){let t=e??"@fluixi/core/router-next";return{components:Object.fromEntries(x.map(n=>[n,t]))}}var ae=new Set(["Text","Image","Option","Audio","Comment","Range","Selection","Notification","Event","Document","Element","Node","Screen","Window","Location","History","Storage","Response","Request","Headers"]);function ce(e){if(e.startsWith(".")||e.startsWith("/")||/^[~@]\//.test(e))return;let t=e.split("/");return e.startsWith("@")?t.slice(0,2).join("/"):t[0]}function D(e){return`_${e.replace(/[^A-Za-z0-9]/g,"_")}`}function G(e,t={}){let{available:n,builtins:o=!0,generator:i="@fluixi/compiler",specifier:l=d=>d}=t,a=[...e];o&&a.push({components:v()});let r=B(a),p=n?new Set(n):void 0,s=[],u=[],c=[],m=new Map;for(let d of[...r.names()].sort()){let f=r.resolve(d);if(!f)continue;let h=ce(f.module);ae.has(d)?u.push(d):p&&h&&!p.has(h)?c.push(d):(s.push(d),m.set(d,f))}let R=[...new Set(s.map(d=>m.get(d).module))].sort().map(d=>`import * as ${D(d)} from '${l(d)}';`),C=s.map(d=>{let f=m.get(d),h=D(f.module);return f.export==="default"?` const ${d}: typeof ${h}.default;`:` export import ${d} = ${h}.${f.export};`}),oe=u.length>0?`//
|
|
1
|
+
var xe="children";function ke(t){switch(t.kind){case"call":return!0;case"member":return t.property!==xe;case"compound":return t.parts.some(ke);case"opaque":return!1}}import{parseTemplate as He}from"@fluixi/template-parser";var w={kind:"eager"},be=["pointerdown","focusin","keydown"],J=new Set(["eager","idle","visible","interaction","media","never"]),R=class extends Error{};function z(t,e){let n=t.slice(5);if(!J.has(n))throw new R(`Unknown load strategy 'load:${n}'. Expected one of ${[...J].join(", ")}.`);switch(n){case"eager":return w;case"idle":return{kind:"idle"};case"never":return{kind:"never"};case"visible":return e?{kind:"visible",rootMargin:e}:{kind:"visible"};case"interaction":return{kind:"interaction",events:e?ye(e):[...be]};case"media":if(!e)throw new R(`'load:media' needs a query, e.g. load:media="(min-width: 1024px)".`);return{kind:"media",query:e};default:throw new R(`Unhandled load strategy '${n}'.`)}}function ye(t){let e=t.split(/[\s,]+/).map(n=>n.trim()).filter(Boolean);if(e.length===0)throw new R("'load:interaction' was given no event names.");return e}function U(t){return t.kind!=="eager"&&t.kind!=="never"}var Ne=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),V={className:"class",htmlFor:"for"},Ce=new Set(["innerHTML","outerHTML","innerText","textContent","value","checked","selected","muted","defaultValue","defaultChecked","children","ref"]),Ee=new Set(["script","style","textarea","title"]);function j(t){return Ee.has(t)}function q(t){return V[t]??t}function k(t){return t.kind!=="attr"||t.expr!==void 0||t.name.includes(":")?!1:!Ce.has(t.name)}function D(t){if(!t.static||j(t.tag))return!1;for(let e of t.props)if(!k(e))return!1;for(let e of t.children)if(e.kind!=="text"&&!(e.kind==="element"&&D(e)))return!1;return!0}function b(t){let e=t.props.map(we).filter(Boolean).join(""),n=`<${t.tag}${e}>`;return Ne.has(t.tag)?n:`${n}${t.children.map(Ie).join("")}</${t.tag}>`}function Ie(t){if(t.kind==="text")return Te(t.value);if(t.kind!=="element")throw new Error(`serializeStatic: unexpected ${t.kind}`);return b(t)}function we(t){let e=V[t.name]??t.name,n=t.literal;return n===!0||n===void 0?` ${e}`:n===!1||n===null?"":` ${e}="${$e(String(n))}"`}function $e(t){return t.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function Te(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}var Se="<!--fx-->",Oe="<!--fx/-->";function T(t){return t.kind==="expr"||t.kind==="component"||t.kind==="control"}function Me(t){return t.kind==="text"||t.kind==="element"&&K(t)}function K(t){return t.svg||j(t.tag)||!t.props.every(e=>k(e))?!1:t.children.every(e=>Me(e)||T(e))}function $(t){if(T(t))return!0;let e=t.children;return e?e.some($):!1}function Z(t){for(let e=0;e<t.children.length;e++){let n=t.children[e];if(n.kind==="text"&&(n.value===""||t.children[e+1]?.kind==="text"))return!1}return t.children.every(e=>e.kind!=="element"||Z(e))}function Y(t){if(!K(t)||!Z(t)||!t.children.some($))return null;let e=[],n=[],o=0,r=l=>{let s=`_n$${o++}`;return e.push({ref:s,expr:l}),s};return i(t,"_el$"),{html:Ae(t),tag:t.tag,steps:e,holes:n};function i(l,s){let a=-1;l.children.forEach((d,p)=>{$(d)&&(a=p)});let c=null;for(let d=0;d<=a;d++){let p=l.children[d],u=c?`${c}.nextSibling`:`${s}.firstChild`;if(T(p)){let h=r(u),E=r(`holeEnd(${h})`);n.push({parentRef:s,startRef:h,endRef:E,node:p}),c=E;continue}let g=r(u);p.kind==="element"&&$(p)&&i(p,g),c=g}}}function Ae(t){return b(X(t)).split(Q).join(Se+Oe)}function X(t){return{...t,children:t.children.map(e=>T(e)?{kind:"text",value:Q}:e.kind==="element"?X(e):e)}}var Q="\0fx-hole\0";var L={version:1,module:"@fluixi/dom",symbols:["createNativeElement","insert","spread","setAttribute","delegateEvents","createComponent","createMemo","untrack","Show","For","Index","Switch","Match","Dynamic","ErrorBoundary"]},ct={version:2,module:"@fluixi/dom",symbols:[...L.symbols,"template","cloneTemplate","walk"]};var Pe={show:"Show",for:"For",index:"Index",switch:"Switch",match:"Match",dynamic:"Dynamic",errorBoundary:"ErrorBoundary",suspense:"Suspense"};function je(t){return/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(t)}function te(t){return je(t)?t:JSON.stringify(t)}function De(t){return t.expr!==void 0?t.reactive?`() => (${t.expr})`:`(${t.expr})`:JSON.stringify(t.literal??!0)}function Le(t){return t.expr!==void 0?`(${t.expr})`:JSON.stringify(t.literal??!0)}function _e(t,e,n){let o=t.filter(s=>s.kind==="spread"),i=t.filter(s=>s.kind!=="spread").map(s=>`${te(s.name)}: ${De(s)}`);e!=null&&i.push(`children: ${e}`);let l=`{ ${i.join(", ")} }`;return o.length>0?(n.add("mergeProps"),`mergeProps(${o.map(s=>s.expr).join(", ")}, ${l})`):l}function ne(t,e,n){return t.length===1?y(t[0],e,n):`[${t.map(o=>y(o,e,n)).join(", ")}]`}function ee(t,e,n,o,r){o.add("createMemo"),o.add("createComponent");let i=e.filter(c=>c.kind==="spread"),s=e.filter(c=>c.kind!=="spread").map(c=>`get ${te(c.name)}() { return ${Le(c)}; }`);n.length>0&&s.push(`get children() { return ${ne(n,o,r)}; }`);let a=`{ ${s.join(", ")} }`;return i.length>0&&(o.add("mergeProps"),a=`mergeProps(${i.map(c=>c.expr).join(", ")}, ${a})`),`createMemo(() => createComponent(${t}, ${a}))`}function Be(t,e){let n=q(e.name),o=e.literal;return o===!0||o===void 0?`${t}.setAttribute(${JSON.stringify(n)}, "");`:o===!1||o===null?"":`${t}.setAttribute(${JSON.stringify(n)}, ${JSON.stringify(String(o))});`}var re=!1;function y(t,e,n){switch(t.kind){case"text":return JSON.stringify(t.value);case"expr":return t.reactive?`() => (${t.code})`:`(${t.code})`;case"fragment":return t.children.length===0?"null":ne(t.children,e,n);case"component":return ee(t.name,t.props,t.children,e,n);case"control":{let o=Pe[t.control]??t.control;return e.add(o),ee(o,t.props,t.children,e,n)}case"element":{if(n&&t.static&&!t.svg&&D(t)){e.add("templateNode");let s=`_tmpl$${n.length}`;return n.push({id:s,html:b(t),tag:t.tag,svg:!1}),`templateNode(${s}, ${JSON.stringify(t.tag)})`}if(n&&re){let s=Y(t);if(s){e.add("templateNode"),e.add("insert"),e.add("holeEnd"),e.add("holeContent"),e.add("holeScope");let a=`_tmpl$${n.length}`;n.push({id:a,html:s.html,tag:s.tag,svg:!1});let c=[`const _el$ = templateNode(${a}, ${JSON.stringify(s.tag)}, true);`];for(let d of s.steps)c.push(`const ${d.ref} = ${d.expr};`);for(let d of s.holes)c.push(`insert(${d.parentRef}, holeScope(${d.startRef}, () => (${y(d.node,e,n)})), ${d.endRef}, holeContent(${d.startRef}, ${d.endRef}));`);return c.push("return _el$;"),`(() => { ${c.join(" ")} })()`}}e.add("createNativeElement");let o=JSON.stringify(t.tag),r="_el$",i=[],l=t.svg?`${o}, true`:o;if(i.push(`const ${r} = createNativeElement(${l});`),t.props.length>0)if(!t.svg&&t.props.every(k))for(let s of t.props)i.push(Be(r,s));else{e.add("spread");let s=t.svg?", isSVG: true":"";i.push(`spread({ element: ${r}, props: ${_e(t.props,null,e)}${s} });`)}for(let s of t.children){e.add("insert");let a=y(s,e,n),c=s.kind==="expr"&&s.reactive||s.kind==="component"||s.kind==="control";i.push(c?`insert(${r}, ${a}, null);`:`insert(${r}, ${a});`)}return i.push(`return ${r};`),`(() => { ${i.join(" ")} })()`}}}function S(t,e){if(!e||e.length===0)return t;let n=new Map(e.map(o=>[o.id,JSON.stringify(o.html)]));return t.replace(/_tmpl\$\d+/g,o=>n.get(o)??o)}var v={name:"imperative",contract:L,emit(t,e){let n=new Set,o=e?.templateClone!==!1?[]:void 0;return re=e?.partialTemplates===!0,{code:y(t,n,o),imports:Array.from(n),templates:o}}};function O(t){let e=t.split(/\r\n|\n|\r/),n=0;for(let r=0;r<e.length;r++)/[^ \t]/.test(e[r])&&(n=r);let o="";for(let r=0;r<e.length;r++){let i=e[r].replace(/\t/g," ");r!==0&&(i=i.replace(/^ +/,"")),r!==e.length-1&&(i=i.replace(/ +$/,"")),i&&(r!==n&&(i+=" "),o+=i)}return o}var oe=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]);function Fe(t){return t.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}function ie(t){return t.charAt(0).toUpperCase()+t.slice(1)}var _=class{constructor(e,n){this.holes=e;this.used=n}hole(e){return this.holes[e]??{code:"undefined",reactive:!1}}emit(e){let{code:n,imports:o,templates:r}=v.emit(e,{});for(let i of o)this.used.add(i);return S(n,r)}lowerRoot(e){let n=this.lowerChildren(e);return n.length===1?n[0]:{kind:"fragment",children:n}}lowerChildren(e){let n=[];for(let o=0;o<e.length;o++){let r=e[o];if(r.kind==="Element"||r.kind==="Component"){let l=r.attributes.find(s=>s.kind==="IfDirective");if(l&&l.kind==="IfDirective"){let s=o+1;s<e.length&&this.isBlankText(e[s])&&s++;let a=e[s],c=a&&(a.kind==="Element"||a.kind==="Component")&&a.attributes.some(d=>d.kind==="ElseDirective");n.push(this.lowerIf(r,l.hole,c?a:null)),c&&(o=s);continue}if(r.attributes.some(s=>s.kind==="EachDirective")){n.push(this.lowerEach(r));continue}}let i=this.lowerNode(r);i&&n.push(i)}return n}isBlankText(e){return e.kind==="Text"&&!e.raw&&O(e.value)===""}lowerNode(e){switch(e.kind){case"Text":{if(e.raw)return{kind:"text",value:e.value};let n=O(e.value);return n?{kind:"text",value:n}:null}case"Comment":return null;case"Expression":{let n=this.hole(e.hole);return{kind:"expr",code:n.code,reactive:n.reactive}}case"Fragment":return{kind:"fragment",children:this.lowerChildren(e.children)};case"Element":return this.lowerElement(e);case"Component":return this.lowerComponent(e);default:return null}}lowerElement(e){let n=e.attributes.find(o=>o.kind==="Attribute"&&o.name==="is");if(e.tag==="component"&&n&&n.value&&n.value.kind==="hole"){let o=e.attributes.filter(i=>i!==n),r=this.lowerComponent({...e,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:e.tag,svg:e.namespace==="svg",props:this.lowerAttributes(e.attributes),children:this.lowerChildren(e.children),static:!1}}lowerComponent(e){let n=e.tagHole!=null?this.hole(e.tagHole).code:e.tag,o=this.lowerAttributes(e.attributes),{slots:r,rest:i}=this.partitionSlots(e.children);for(let[a,c]of r){let d=c.length===1?c[0]:{kind:"fragment",children:c},p={name:a,kind:"attr",expr:this.emit(d),jsxElement:!0},u=o.findIndex(g=>g.name===a);u>=0?o[u]=p:o.push(p)}let l=e.attributes.find(a=>a.kind==="LoadDirective"),s=l?z(`load:${l.strategy}`,l.modifier):void 0;return{kind:"component",name:n,props:o,children:this.lowerChildren(i),...s?{load:s}:{}}}partitionSlots(e){let n=new Map,o=[];for(let r of e){if(r.kind==="Element"||r.kind==="Component"){let i=r.attributes.find(l=>l.kind==="Attribute"&&l.name==="slot");if(i&&i.value&&i.value.kind==="static"){let l={...r,attributes:r.attributes.filter(c=>c!==i)},s=l.kind==="Element"?this.lowerElement(l):this.lowerComponent(l),a=n.get(i.value.value)??[];a.push(s),n.set(i.value.value,a);continue}}o.push(r)}return{slots:n,rest:o}}lowerIf(e,n,o){let r=this.hole(n),i=[{name:"when",kind:"attr",expr:r.code,reactive:r.reactive}];if(o){let s=this.stripAndLower(o,a=>a.kind==="ElseDirective");i.push({name:"fallback",kind:"attr",expr:this.emit(s),jsxElement:!0})}let l=this.stripAndLower(e,s=>s.kind==="IfDirective");return{kind:"component",name:"Show",props:i,children:[l]}}lowerEach(e){let n=e.attributes.find(a=>a.kind==="EachDirective");if(!n||n.kind!=="EachDirective")return this.lowerNode(e);let o=this.hole(n.hole),r=[{name:"each",kind:"attr",expr:o.code,reactive:o.reactive}];if(n.key){let a="static"in n.key?`(item) => item[${JSON.stringify(n.key.static)}]`:this.hole(n.key.hole).code;r.push({name:"by",kind:"attr",expr:a})}let i=this.itemArrow(e),l;if(i){let a={kind:"expr",code:i.body,reactive:i.bodyReactive},c=this.rebuildWithChildren(e,[a]);l=`(${i.params.join(", ")}) => (${this.emit(c)})`}else{let a=this.stripAndLower(e,c=>c.kind==="EachDirective");l=`() => (${this.emit(a)})`}return{kind:"component",name:"For",props:r,children:[{kind:"expr",code:l,reactive:!1}]}}itemArrow(e){let n=e.children.filter(o=>!this.isBlankText(o));return n.length!==1||n[0].kind!=="Expression"?null:this.hole(n[0].hole).arrow??null}stripAndLower(e,n){let o={...e,attributes:e.attributes.filter(r=>!n(r))};return o.kind==="Element"?this.lowerElement(o):this.lowerComponent(o)}rebuildWithChildren(e,n){let o=this.lowerAttributes(e.attributes.filter(r=>r.kind!=="EachDirective"));return e.kind==="Element"?{kind:"element",tag:e.tag,svg:e.namespace==="svg",props:o,children:n,static:!1}:{kind:"component",name:e.tag,props:o,children:n}}lowerAttributes(e){let n=[],o=[],r=!1,i=[],l=!1,s=[];for(let a of e)switch(a.kind){case"IfDirective":case"EachDirective":case"ElseDirective":break;case"Attribute":n.push(this.plainAttr(a));break;case"PropertyBinding":n.push({name:a.name,kind:"prop",expr:this.hole(a.hole).code,reactive:this.hole(a.hole).reactive});break;case"EventBinding":n.push(this.eventProp(a));break;case"RefBinding":n.push({name:"ref",kind:"ref",expr:this.hole(a.hole).code,reactive:this.hole(a.hole).reactive});break;case"Spread":n.push({name:"",kind:"spread",expr:this.hole(a.hole).code});break;case"ClassDirective":{let c=this.hole(a.hole);o.push(`${JSON.stringify(a.name)}: ${c.code}`),r=r||c.reactive;break}case"StyleDirective":{let c=this.hole(a.hole);i.push(`${JSON.stringify(a.name)}: ${c.code}`),l=l||c.reactive;break}case"BindDirective":n.push(...this.bindProps(a.name,this.hole(a.hole).code));break;case"UseDirective":{let c=a.name??(a.hole!=null?this.hole(a.hole).code:null);if(!c)break;s.push(a.name!=null&&a.hole!=null?`[${c}, () => (${this.hole(a.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:l}),s.length>0&&n.push({name:"use",kind:"attr",expr:`[${s.join(", ")}]`}),n}eventProp(e){let n=e.name.toLowerCase(),o=this.hole(e.hole).code;if(!(e.syntax==="colon"||e.modifiers.length>0))return{name:"on"+ie(e.name),kind:"event",event:{name:n,delegated:oe.has(n)},expr:o};let i=this.wrapHandler(o,e.modifiers),l=this.eventOptions(e.modifiers),s=l?`[${i}, ${l}]`:i;return{name:"on:"+n,kind:"attr",expr:s}}wrapHandler(e,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?e:`(e) => { ${o}${r.join(" ")} return (${e})(e); }`}eventOptions(e){let n=[];return e.includes("capture")&&n.push("capture: true"),e.includes("once")&&n.push("once: true"),e.includes("passive")&&n.push("passive: true"),n.length?`{ ${n.join(", ")} }`:null}bindProps(e,n){let o=e==="checked",r=o?"change":"input",i=o?"checked":"value",l=`(${n})`;return[{name:e,kind:"attr",expr:`${l}[0]()`,reactive:!0},{name:"on"+ie(r),kind:"event",event:{name:r,delegated:oe.has(r)},expr:`(e) => ${l}[1](e.target.${i})`}]}plainAttr(e){let n=e.value,o=e.name;e.name==="class"?o=n&&n.kind==="hole"&&this.hole(n.hole).object?"classList":"className":e.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 a=this.hole(n.hole);return i.expr=a.code,i.reactive=a.reactive,i}let l=!1,s=n.parts.map(a=>{if("text"in a)return Fe(a.text);let c=this.hole(a.hole);return l=l||c.reactive,"${"+c.code+"}"}).join("");return i.expr="`"+s+"`",i.reactive=l,i}};function B(t,e,n,o={}){let{root:r}=He(t,{svg:o.svg});return new _(e,n).lowerRoot(r.children)}function Ge(t){switch(t.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 t.reactive?"reactive-prop":t.expr!==void 0?"expression-prop":void 0;default:return"expression-prop"}}function se(t){let e=[],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 s of r.children)o(s)||(i=!1);let l;for(let s of r.props)if(l=Ge(s),l)break;return!l&&!i&&(l=We(r)),r.static=!l,l?n.set(r,l):e.push(r),r.static}default:return!1}};for(let r of Array.isArray(t)?t:[t])o(r);return{staticElements:e,reasons:n}}function We(t){for(let e of t.children){if(e.kind==="expr")return"expression-child";if(e.kind==="component")return"component-child";if(e.kind==="control")return"control-child";if(e.kind==="element"&&!e.static||e.kind==="fragment")return"expression-child"}return"expression-child"}var H=["Show","For","Index","Switch","Match","Portal","Dynamic","ErrorBoundary"],F=["Suspense","SuspenseList","Await"],N=["Router","Outlet","Redirect","Link"],yt=[...H,...F,...N],G=new Set([...H,...F]);function C(t={}){let{controlFlowModule:e="@fluixi/dom",coreModule:n="@fluixi/core",routerModule:o="@fluixi/core/router-next"}=t,r={};for(let i of H)r[i]=e;for(let i of F)r[i]=n;for(let i of N)r[i]=o;return r}function Nt(t={}){return{components:C(t)}}function Ct(t){let e=t??"@fluixi/core/router-next";return{components:Object.fromEntries(N.map(n=>[n,e]))}}function le(t,e={}){let{resolver:n,isBound:o,modules:r,strategyFor:i}=e,l=C(r),s=new Map,a=new Set,c=p=>{let{name:u}=p;if(!u||u.includes(".")||o?.(u))return;let g=d(u);if(!g){a.add(u);return}let h=g.origin==="builtin"&&G.has(u)?w:i?.(p)??w;p.source={...g,loading:h},s.set(u,p.source)},d=p=>{if(G.has(p))return{module:l[p],export:p,origin:"builtin"};let u=n?.resolve(p);if(u)return{module:u.module,export:u.export,origin:"rule"};if(N.includes(p))return{module:l[p],export:p,origin:"builtin"}};return M(t,p=>{p.kind==="component"&&c(p)}),{resolved:s,unresolved:[...a]}}function M(t,e){let n=Array.isArray(t)?t:[t];for(let o of n){e(o);let r=o.children;r&&M(r,e)}}function ae(t){let e=[];M(t,i=>{i.kind==="component"&&i.source&&e.push(i)});let n=new Set,o=new Set;for(let i of e){let{module:l,loading:s}=i.source;s.kind==="eager"&&n.add(l),s.kind==="never"&&o.add(l)}let r=new Map;for(let i of e){let l=i.source;U(l.loading)&&n.has(l.module)&&(l.loading={kind:"eager"},r.set(l.module,(r.get(l.module)??0)+1))}return{collapsed:r,conflicted:[...o].filter(i=>n.has(i))}}var Je=t=>"components"in t;function ce(t,e){return t.replace(/\$(\d+)/g,(n,o)=>e[Number(o)]??n)}function ze(t,e){return typeof e=="string"?{module:e,export:t}:e}function A(t=[]){let e=new Map,n=[],o=[];for(let l of t){if(!Je(l)){o.push(l);continue}for(let[s,a]of Object.entries(l.components)){let c=ze(s,a),d=e.get(s);if(d&&d.module!==c.module){let p=n.find(u=>u.name===s);p?p.modules.push(c.module):n.push({name:s,modules:[d.module,c.module]});continue}e.set(s,c)}}let r=new Map;return{resolve:l=>{if(r.has(l))return r.get(l);let s=e.get(l);if(!s)for(let a of o){let c=l.match(new RegExp(a.match.source,a.match.flags.replace("g","")));if(c){s={module:ce(a.module,c),export:a.export?ce(a.export,c):l};break}}return r.set(l,s),s},names:()=>[...e.keys()],conflicts:()=>n}}function Ue(t){let e=[],n=0;return t.statics.forEach((o,r)=>{if(e.push({kind:"static",text:o,start:n}),n+=o.length,r<t.holes.length){let i=n+t.holes[r].code.length;e.push({kind:"hole",index:r,start:n,end:i}),n=i}}),e}function Bt(t,e={}){if(t.statics.length!==t.holes.length+1)throw new Error(`[fluixi] compileTemplate: ${t.statics.length} static runs for ${t.holes.length} holes — a template always has exactly one more.`);return Ve(Ue(t),t.holes,e)}function Ve(t,e,n={}){let o=new Set,r=B(t,[...e],o,{svg:n.svg});se(r),le(r,{resolver:A(n.resolve??[]),modules:{controlFlowModule:n.controlFlowModule??"@fluixi/dom",coreModule:n.coreModule??"@fluixi/core",routerModule:n.routerModule??"@fluixi/core/router-next"},strategyFor:a=>a.load}),ae(r);let{code:i,imports:l,templates:s}=v.emit(r,{templateClone:n.templateClone,partialTemplates:n.partialTemplates});for(let a of l)o.add(a);return n.hoistTemplates?{code:i,imports:[...o],ir:r,templates:s}:{code:S(i,s),imports:[...o],ir:r}}var qe=new Set(["Text","Image","Option","Audio","Comment","Range","Selection","Notification","Event","Document","Element","Node","Screen","Window","Location","History","Storage","Response","Request","Headers"]);function Ke(t){if(t.startsWith(".")||t.startsWith("/")||/^[~@]\//.test(t))return;let e=t.split("/");return t.startsWith("@")?e.slice(0,2).join("/"):e[0]}function pe(t){return`_${t.replace(/[^A-Za-z0-9]/g,"_")}`}function de(t,e={}){let{available:n,builtins:o=!0,generator:r="@fluixi/compiler",specifier:i=m=>m}=e,l=[...t];o&&l.push({components:C()});let s=A(l),a=n?new Set(n):void 0,c=[],d=[],p=[],u=new Map;for(let m of[...s.names()].sort()){let f=s.resolve(m);if(!f)continue;let x=Ke(f.module);qe.has(m)?d.push(m):a&&x&&!a.has(x)?p.push(m):(c.push(m),u.set(m,f))}let h=[...new Set(c.map(m=>u.get(m).module))].sort().map(m=>`import * as ${pe(m)} from '${i(m)}';`),E=c.map(m=>{let f=u.get(m),x=pe(f.module);return f.export==="default"?` const ${m}: typeof ${x}.default;`:` export import ${m} = ${x}.${f.export};`}),ve=d.length>0?`//
|
|
2
2
|
// Import these explicitly — lib.dom already declares the name, so an ambient
|
|
3
3
|
// declaration cannot win:
|
|
4
|
-
`+
|
|
5
|
-
`}).join(""):"",
|
|
6
|
-
// ${
|
|
4
|
+
`+d.map(m=>{let f=s.resolve(m)?.module;return`// import { ${m} } from '${f?i(f):""}';
|
|
5
|
+
`}).join(""):"",I=t.filter(m=>"match"in m).length,Re=I>0?`//
|
|
6
|
+
// ${I} pattern rule${I===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 ${
|
|
9
|
+
`:"";return{source:`// GENERATED by ${r} — 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
|
-
`+
|
|
14
|
-
${
|
|
13
|
+
`+ve+Re+(h.length>0?`
|
|
14
|
+
${h.join(`
|
|
15
15
|
`)}
|
|
16
16
|
`:`
|
|
17
17
|
`)+`
|
|
18
18
|
declare global {
|
|
19
|
-
${
|
|
19
|
+
${E.join(`
|
|
20
20
|
`)}
|
|
21
21
|
}
|
|
22
|
-
`,declared:
|
|
22
|
+
`,declared:c,shadowedByDom:d,unavailable:p,patternRules:I}}import{mkdirSync as Ze,readFileSync as W,writeFileSync as Ye}from"node:fs";import{dirname as ue,relative as fe,sep as ge,resolve as P}from"node:path";var Xe="GENERATED by @fluixi/compiler",Qe="fluixi.d.ts";function et(t,e){let n;try{let r=W(P(t,"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=he(t,e);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 he(t,e){return fe(t,e).split(ge).join("/")}function tt(t,e,n){if(!t.startsWith("/"))return t;let o=P(n,t.slice(1)),r=fe(e,o).split(ge).join("/");return r.startsWith(".")||(r=`./${r}`),r.replace(/\.(tsx|ts|jsx|mts|cts)$/,".js")}function nt(t){try{let e=JSON.parse(W(P(t,"package.json"),"utf8"));return[...Object.keys(e.dependencies??{}),...Object.keys(e.devDependencies??{}),...Object.keys(e.peerDependencies??{})]}catch{return}}function Vt(t,e){if(t.globals===!1)return{status:"skipped",reason:"disabled"};let n=t.resolve??[],o=P(e,t.globals??Qe),r;try{r=W(o,"utf8")}catch{r=void 0}if(r!==void 0&&!r.includes(Xe))return{status:"skipped",reason:"foreign-file",path:o};let{source:i,declared:l}=de(n,{available:nt(e),specifier:s=>tt(s,ue(o),e)});return r===i?{status:"unchanged",path:o,declared:l.length,warning:me(e,o)}:(Ze(ue(o),{recursive:!0}),Ye(o,i),{status:"written",path:o,declared:l.length,warning:me(e,o)})}function me(t,e){if(et(t,e)!==!1)return;let n=he(t,e);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 Kt={backend:"imperative",moduleName:"@fluixi/dom",delegateEvents:!0,hydratable:!1,sourceMaps:!0,dev:!1};var Xt={imperative:v};export{yt as BUILTIN_COMPONENTS,F as CORE_CONTROL_FLOW,Qe as DEFAULT_GLOBALS_PATH,H as DOM_CONTROL_FLOW,G as RESERVED_COMPONENTS,N as ROUTER_COMPONENTS,L as RUNTIME_CONTRACT_V1,ct as RUNTIME_CONTRACT_V2,Xt as backends,C as builtinComponentMap,Nt as builtinComponents,O as cleanTemplateText,Ve as compilePieces,Bt as compileTemplate,de as componentGlobals,A as createComponentResolver,Kt as defaultOptions,v as imperativeBackend,ke as isReactiveShape,B as lowerTemplate,le as resolveComponentSources,Ct as routerComponents,M as walk,Vt as writeComponentGlobals};
|
package/dist/integrations.cjs
CHANGED
|
@@ -1,33 +1,29 @@
|
|
|
1
|
-
"use strict";var Cn=Object.create;var ue=Object.defineProperty;var wn=Object.getOwnPropertyDescriptor;var In=Object.getOwnPropertyNames;var kn=Object.getPrototypeOf,Nn=Object.prototype.hasOwnProperty;var I=(e,t)=>()=>(e&&(t=e(e=0)),t);var dt=(e,t)=>{for(var n in t)ue(e,n,{get:t[n],enumerable:!0})},ft=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of In(t))!Nn.call(e,o)&&o!==n&&ue(e,o,{get:()=>t[o],enumerable:!(i=wn(t,o))||i.enumerable});return e};var de=(e,t,n)=>(n=e!=null?Cn(kn(e)):{},ft(t||!e||!e.__esModule?ue(n,"default",{value:e,enumerable:!0}):n,e)),Mn=e=>ft(ue({},"__esModule",{value:!0}),e);function gt(e,t){return e.replace(/\$(\d+)/g,(n,i)=>t[Number(i)]??n)}function jn(e,t){return typeof t=="string"?{module:t,export:e}:t}function me(e=[]){let t=new Map,n=[],i=[];for(let a of e){if(!Jn(a)){i.push(a);continue}for(let[l,c]of Object.entries(a.components)){let p=jn(l,c),d=t.get(l);if(d&&d.module!==p.module){let u=n.find(g=>g.name===l);u?u.modules.push(p.module):n.push({name:l,modules:[d.module,p.module]});continue}t.set(l,p)}}let o=new Map;return{resolve:a=>{if(o.has(a))return o.get(a);let l=t.get(a);if(!l)for(let c of i){let p=a.match(new RegExp(c.match.source,c.match.flags.replace("g","")));if(p){l={module:gt(c.module,p),export:c.export?gt(c.export,p):a};break}}return o.set(a,l),l},names:()=>[...t.keys()],conflicts:()=>n}}var Jn,Le=I(()=>{"use strict";Jn=e=>"components"in e});function ge(e={}){let{controlFlowModule:t="@fluixi/dom",coreModule:n="@fluixi/core",routerModule:i="@fluixi/core/router-next"}=e,o={};for(let s of te)o[s]=t;for(let s of q)o[s]=n;for(let s of Z)o[s]=i;return o}var te,q,Z,ai,Je,he=I(()=>{"use strict";te=["Show","For","Index","Switch","Match","Portal","Dynamic","ErrorBoundary"],q=["Suspense","SuspenseList","Await"],Z=["Router","Outlet","Redirect","Link"],ai=[...te,...q,...Z],Je=new Set([...te,...q])});function ne(e){return e.startsWith("load:")}function K(e,t){let n=e.slice(5);if(!yt.has(n))throw new O(`Unknown load strategy 'load:${n}'. Expected one of ${[...yt].join(", ")}.`);switch(n){case"eager":return V;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?zn(t):[...Bn]};case"media":if(!t)throw new O(`'load:media' needs a query, e.g. load:media="(min-width: 1024px)".`);return{kind:"media",query:t};default:throw new O(`Unhandled load strategy '${n}'.`)}}function zn(e){let t=e.split(/[\s,]+/).map(n=>n.trim()).filter(Boolean);if(t.length===0)throw new O("'load:interaction' was given no event names.");return t}function D(e){return e.kind!=="eager"&&e.kind!=="never"}var V,Bn,yt,O,Y=I(()=>{"use strict";V={kind:"eager"},Bn=["pointerdown","focusin","keydown"],yt=new Set(["eager","idle","visible","interaction","media","never"]),O=class extends Error{}});function je(e,t={}){let{resolver:n,isBound:i,modules:o,strategyFor:s}=t,a=ge(o),l=new Map,c=new Set,p=u=>{let{name:g}=u;if(!g||g.includes(".")||i?.(g))return;let C=d(g);if(!C){c.add(g);return}let b=C.origin==="builtin"&&Je.has(g)?V:s?.(u)??V;u.source={...C,loading:b},l.set(g,u.source)},d=u=>{if(Je.has(u))return{module:a[u],export:u,origin:"builtin"};let g=n?.resolve(u);if(g)return{module:g.module,export:g.export,origin:"rule"};if(Z.includes(u))return{module:a[u],export:u,origin:"builtin"}};return xe(e,u=>{u.kind==="component"&&p(u)}),{resolved:l,unresolved:[...c]}}function xe(e,t){let n=Array.isArray(e)?e:[e];for(let i of n){t(i);let o=i.children;o&&xe(o,t)}}var Pe=I(()=>{"use strict";he();Y()});function Oe(e){let t=[];xe(e,s=>{s.kind==="component"&&s.source&&t.push(s)});let n=new Set,i=new Set;for(let s of t){let{module:a,loading:l}=s.source;l.kind==="eager"&&n.add(a),l.kind==="never"&&i.add(a)}let o=new Map;for(let s of t){let a=s.source;D(a.loading)&&n.has(a.module)&&(a.loading={kind:"eager"},o.set(a.module,(o.get(a.module)??0)+1))}return{collapsed:o,conflicted:[...i].filter(s=>n.has(s))}}var bt=I(()=>{"use strict";Y();Pe()});function Ae(e){return Hn.has(e)}function Ct(e){return Rt[e]??e}function re(e){return e.kind!=="attr"||e.expr!==void 0||e.name.includes(":")?!1:!Vn.has(e.name)}function Fe(e){if(!e.static||Ae(e.tag))return!1;for(let t of e.props)if(!re(t))return!1;for(let t of e.children)if(t.kind!=="text"&&!(t.kind==="element"&&Fe(t)))return!1;return!0}function ie(e){let t=e.props.map(Un).filter(Boolean).join(""),n=`<${e.tag}${t}>`;return Wn.has(e.tag)?n:`${n}${e.children.map(Gn).join("")}</${e.tag}>`}function Gn(e){if(e.kind==="text")return Zn(e.value);if(e.kind!=="element")throw new Error(`serializeStatic: unexpected ${e.kind}`);return ie(e)}function Un(e){let t=Rt[e.name]??e.name,n=e.literal;return n===!0||n===void 0?` ${t}`:n===!1||n===null?"":` ${t}="${qn(String(n))}"`}function qn(e){return e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function Zn(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}var Wn,Rt,Vn,Hn,Xe=I(()=>{"use strict";Wn=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),Rt={className:"class",htmlFor:"for"},Vn=new Set(["innerHTML","outerHTML","innerText","textContent","value","checked","selected","muted","defaultValue","defaultChecked","children","ref"]),Hn=new Set(["script","style","textarea","title"])});function Se(e){return e.kind==="expr"||e.kind==="component"||e.kind==="control"}function Qn(e){return e.kind==="text"||e.kind==="element"&&wt(e)}function wt(e){return e.svg||Ae(e.tag)||!e.props.every(t=>re(t))?!1:e.children.every(t=>Qn(t)||Se(t))}function Ee(e){if(Se(e))return!0;let t=e.children;return t?t.some(Ee):!1}function It(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"||It(t))}function kt(e){if(!wt(e)||!It(e)||!e.children.some(Ee))return null;let t=[],n=[],i=0,o=a=>{let l=`_n$${i++}`;return t.push({ref:l,expr:a}),l};return s(e,"_el$"),{html:er(e),tag:e.tag,steps:t,holes:n};function s(a,l){let c=-1;a.children.forEach((d,u)=>{Ee(d)&&(c=u)});let p=null;for(let d=0;d<=c;d++){let u=a.children[d],g=p?`${p}.nextSibling`:`${l}.firstChild`;if(Se(u)){let b=o(g),w=o(`holeEnd(${b})`);n.push({parentRef:l,startRef:b,endRef:w,node:u}),p=w;continue}let C=o(g);u.kind==="element"&&Ee(u)&&s(u,C),p=C}}}function er(e){return ie(Nt(e)).split(Mt).join(Kn+Yn)}function Nt(e){return{...e,children:e.children.map(t=>Se(t)?{kind:"text",value:Mt}:t.kind==="element"?Nt(t):t)}}var Kn,Yn,Mt,Tt=I(()=>{"use strict";Xe();Kn="<!--fx-->",Yn="<!--fx/-->";Mt="\0fx-hole\0"});var De,Ci,$t=I(()=>{"use strict";De={version:1,module:"@fluixi/dom",symbols:["createNativeElement","insert","spread","setAttribute","delegateEvents","createComponent","createMemo","untrack","Show","For","Index","Switch","Match","Dynamic","ErrorBoundary"]},Ci={version:2,module:"@fluixi/dom",symbols:[...De.symbols,"template","cloneTemplate","walk"]}});function nr(e){return/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(e)}function Jt(e){return nr(e)?e:JSON.stringify(e)}function rr(e){return e.expr!==void 0?e.reactive?`() => (${e.expr})`:`(${e.expr})`:JSON.stringify(e.literal??!0)}function ir(e){return e.expr!==void 0?`(${e.expr})`:JSON.stringify(e.literal??!0)}function or(e,t,n){let i=e.filter(l=>l.kind==="spread"),s=e.filter(l=>l.kind!=="spread").map(l=>`${Jt(l.name)}: ${rr(l)}`);t!=null&&s.push(`children: ${t}`);let a=`{ ${s.join(", ")} }`;return i.length>0?(n.add("mergeProps"),`mergeProps(${i.map(l=>l.expr).join(", ")}, ${a})`):a}function jt(e,t,n){return e.length===1?oe(e[0],t,n):`[${e.map(i=>oe(i,t,n)).join(", ")}]`}function Lt(e,t,n,i,o){i.add("createMemo"),i.add("createComponent");let s=t.filter(p=>p.kind==="spread"),l=t.filter(p=>p.kind!=="spread").map(p=>`get ${Jt(p.name)}() { return ${ir(p)}; }`);n.length>0&&l.push(`get children() { return ${jt(n,i,o)}; }`);let c=`{ ${l.join(", ")} }`;return s.length>0&&(i.add("mergeProps"),c=`mergeProps(${s.map(p=>p.expr).join(", ")}, ${c})`),`createMemo(() => createComponent(${e}, ${c}))`}function sr(e,t){let n=Ct(t.name),i=t.literal;return i===!0||i===void 0?`${e}.setAttribute(${JSON.stringify(n)}, "");`:i===!1||i===null?"":`${e}.setAttribute(${JSON.stringify(n)}, ${JSON.stringify(String(i))});`}function oe(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":jt(e.children,t,n);case"component":return Lt(e.name,e.props,e.children,t,n);case"control":{let i=tr[e.control]??e.control;return t.add(i),Lt(i,e.props,e.children,t,n)}case"element":{if(n&&e.static&&!e.svg&&Fe(e)){t.add("templateNode");let l=`_tmpl$${n.length}`;return n.push({id:l,html:ie(e),tag:e.tag,svg:!1}),`templateNode(${l}, ${JSON.stringify(e.tag)})`}if(n&&Pt){let l=kt(e);if(l){t.add("templateNode"),t.add("insert"),t.add("holeEnd"),t.add("holeContent"),t.add("holeScope");let c=`_tmpl$${n.length}`;n.push({id:c,html:l.html,tag:l.tag,svg:!1});let p=[`const _el$ = templateNode(${c}, ${JSON.stringify(l.tag)}, true);`];for(let d of l.steps)p.push(`const ${d.ref} = ${d.expr};`);for(let d of l.holes)p.push(`insert(${d.parentRef}, holeScope(${d.startRef}, () => (${oe(d.node,t,n)})), ${d.endRef}, holeContent(${d.startRef}, ${d.endRef}));`);return p.push("return _el$;"),`(() => { ${p.join(" ")} })()`}}t.add("createNativeElement");let i=JSON.stringify(e.tag),o="_el$",s=[],a=e.svg?`${i}, true`:i;if(s.push(`const ${o} = createNativeElement(${a});`),e.props.length>0)if(!e.svg&&e.props.every(re))for(let l of e.props)s.push(sr(o,l));else{t.add("spread");let l=e.svg?", isSVG: true":"";s.push(`spread({ element: ${o}, props: ${or(e.props,null,t)}${l} });`)}for(let l of e.children){t.add("insert");let c=oe(l,t,n),p=l.kind==="expr"&&l.reactive||l.kind==="component"||l.kind==="control";s.push(p?`insert(${o}, ${c}, null);`:`insert(${o}, ${c});`)}return s.push(`return ${o};`),`(() => { ${s.join(" ")} })()`}}}function se(e,t){if(!t||t.length===0)return e;let n=new Map(t.map(i=>[i.id,JSON.stringify(i.html)]));return e.replace(/_tmpl\$\d+/g,i=>n.get(i)??i)}var tr,Pt,_,ve=I(()=>{"use strict";Tt();Xe();$t();tr={show:"Show",for:"For",index:"Index",switch:"Switch",match:"Match",dynamic:"Dynamic",errorBoundary:"ErrorBoundary",suspense:"Suspense"};Pt=!1;_={name:"imperative",contract:De,emit(e,t){let n=new Set,i=t?.templateClone!==!1?[]:void 0;return Pt=t?.partialTemplates===!0,{code:oe(e,n,i),imports:Array.from(n),templates:i}}}});function lr(e){return ar(e,{concise:!0}).code}function cr(e){return e.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}function At(e){return e.charAt(0).toUpperCase()+e.slice(1)}function Xt(e,t,n={}){let i=e.quasi,o=i.expressions.map(l=>{let c=l;return{node:c,code:B(c,t),reactive:L(c)}}),s=pr(i),{root:a}=(0,Ft.parseTemplate)(s,{svg:n.svg});return new Be(o,t).lowerRoot(a.children)}function pr(e){let t=[];return e.quasis.forEach((n,i)=>{let o=n.value.cooked??n.value.raw;if(t.push({kind:"static",text:o,start:n.start??0}),i<e.expressions.length){let s=e.expressions[i];t.push({kind:"hole",index:i,start:s.start??0,end:s.end??0})}}),t}var ae,_e,Ft,ar,Ot,Be,Dt=I(()=>{"use strict";ae=require("@babel/core"),_e=de(require("@babel/generator"),1),Ft=require("@fluixi/template-parser");Y();ve();ze();ar=_e.default.default??_e.default;Ot=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]);Be=class{constructor(t,n){this.holes=t;this.used=n}hole(t){return this.holes[t]??{node:ae.types.identifier("undefined"),code:"undefined",reactive:!1}}emit(t){let{code:n,imports:i,templates:o}=_.emit(t,{});for(let s of i)this.used.add(s);return se(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 i=0;i<t.length;i++){let o=t[i];if(o.kind==="Element"||o.kind==="Component"){let a=o.attributes.find(l=>l.kind==="IfDirective");if(a&&a.kind==="IfDirective"){let l=i+1;l<t.length&&this.isBlankText(t[l])&&l++;let c=t[l],p=c&&(c.kind==="Element"||c.kind==="Component")&&c.attributes.some(d=>d.kind==="ElseDirective");n.push(this.lowerIf(o,a.hole,p?c:null)),p&&(i=l);continue}if(o.attributes.some(l=>l.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&&ye(t.value)===""}lowerNode(t){switch(t.kind){case"Text":{if(t.raw)return{kind:"text",value:t.value};let n=ye(t.value);return n?{kind:"text",value:n}:null}case"Comment":return null;case"Expression":{let n=this.hole(t.hole);return{kind:"expr",code:n.code,reactive:n.reactive}}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(i=>i.kind==="Attribute"&&i.name==="is");if(t.tag==="component"&&n&&n.value&&n.value.kind==="hole"){let i=t.attributes.filter(s=>s!==n),o=this.lowerComponent({...t,kind:"Component",tag:"Dynamic",tagHole:null,attributes:i});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,i=this.lowerAttributes(t.attributes),{slots:o,rest:s}=this.partitionSlots(t.children);for(let[c,p]of o){let d=p.length===1?p[0]:{kind:"fragment",children:p},u={name:c,kind:"attr",expr:this.emit(d),jsxElement:!0},g=i.findIndex(C=>C.name===c);g>=0?i[g]=u:i.push(u)}let a=t.attributes.find(c=>c.kind==="LoadDirective"),l=a?K(`load:${a.strategy}`,a.modifier):void 0;return{kind:"component",name:n,props:i,children:this.lowerChildren(s),...l?{load:l}:{}}}partitionSlots(t){let n=new Map,i=[];for(let o of t){if(o.kind==="Element"||o.kind==="Component"){let s=o.attributes.find(a=>a.kind==="Attribute"&&a.name==="slot");if(s&&s.value&&s.value.kind==="static"){let a={...o,attributes:o.attributes.filter(p=>p!==s)},l=a.kind==="Element"?this.lowerElement(a):this.lowerComponent(a),c=n.get(s.value.value)??[];c.push(l),n.set(s.value.value,c);continue}}i.push(o)}return{slots:n,rest:i}}lowerIf(t,n,i){let o=this.hole(n),s=[{name:"when",kind:"attr",expr:o.code,reactive:o.reactive}];if(i){let l=this.stripAndLower(i,c=>c.kind==="ElseDirective");s.push({name:"fallback",kind:"attr",expr:this.emit(l),jsxElement:!0})}let a=this.stripAndLower(t,l=>l.kind==="IfDirective");return{kind:"component",name:"Show",props:s,children:[a]}}lowerEach(t){let n=t.attributes.find(c=>c.kind==="EachDirective");if(!n||n.kind!=="EachDirective")return this.lowerNode(t);let i=this.hole(n.hole),o=[{name:"each",kind:"attr",expr:i.code,reactive:i.reactive}];if(n.key){let c="static"in n.key?`(item) => item[${JSON.stringify(n.key.static)}]`:this.hole(n.key.hole).code;o.push({name:"by",kind:"attr",expr:c})}let s=this.itemArrow(t),a;if(s){let c=s.body,p={kind:"expr",code:B(c,this.used),reactive:L(c)},d=this.rebuildWithChildren(t,[p]);a=`(${s.params.map(u=>lr(u)).join(", ")}) => (${this.emit(d)})`}else{let c=this.stripAndLower(t,p=>p.kind==="EachDirective");a=`() => (${this.emit(c)})`}return{kind:"component",name:"For",props:o,children:[{kind:"expr",code:a,reactive:!1}]}}itemArrow(t){let n=t.children.filter(o=>!this.isBlankText(o));if(n.length!==1||n[0].kind!=="Expression")return null;let i=this.hole(n[0].hole).node;return ae.types.isArrowFunctionExpression(i)&&!ae.types.isBlockStatement(i.body)?i:null}stripAndLower(t,n){let i={...t,attributes:t.attributes.filter(o=>!n(o))};return i.kind==="Element"?this.lowerElement(i):this.lowerComponent(i)}rebuildWithChildren(t,n){let i=this.lowerAttributes(t.attributes.filter(o=>o.kind!=="EachDirective"));return t.kind==="Element"?{kind:"element",tag:t.tag,svg:t.namespace==="svg",props:i,children:n,static:!1}:{kind:"component",name:t.tag,props:i,children:n}}lowerAttributes(t){let n=[],i=[],o=!1,s=[],a=!1,l=[];for(let c of t)switch(c.kind){case"IfDirective":case"EachDirective":case"ElseDirective":break;case"Attribute":n.push(this.plainAttr(c));break;case"PropertyBinding":n.push({name:c.name,kind:"prop",expr:this.hole(c.hole).code,reactive:this.hole(c.hole).reactive});break;case"EventBinding":n.push(this.eventProp(c));break;case"RefBinding":n.push({name:"ref",kind:"ref",expr:this.hole(c.hole).code,reactive:this.hole(c.hole).reactive});break;case"Spread":n.push({name:"",kind:"spread",expr:this.hole(c.hole).code});break;case"ClassDirective":{let p=this.hole(c.hole);i.push(`${JSON.stringify(c.name)}: ${p.code}`),o=o||p.reactive;break}case"StyleDirective":{let p=this.hole(c.hole);s.push(`${JSON.stringify(c.name)}: ${p.code}`),a=a||p.reactive;break}case"BindDirective":n.push(...this.bindProps(c.name,this.hole(c.hole).code));break;case"UseDirective":{let p=c.name??(c.hole!=null?this.hole(c.hole).code:null);if(!p)break;l.push(c.name!=null&&c.hole!=null?`[${p}, () => (${this.hole(c.hole).code})]`:`[${p}]`);break}}return i.length>0&&n.push({name:"classList",kind:"attr",expr:`{ ${i.join(", ")} }`,reactive:o}),s.length>0&&n.push({name:"style",kind:"attr",expr:`{ ${s.join(", ")} }`,reactive:a}),l.length>0&&n.push({name:"use",kind:"attr",expr:`[${l.join(", ")}]`}),n}eventProp(t){let n=t.name.toLowerCase(),i=this.hole(t.hole).code;if(!(t.syntax==="colon"||t.modifiers.length>0))return{name:"on"+At(t.name),kind:"event",event:{name:n,delegated:Ot.has(n)},expr:i};let s=this.wrapHandler(i,t.modifiers),a=this.eventOptions(t.modifiers),l=a?`[${s}, ${a}]`:s;return{name:"on:"+n,kind:"attr",expr:l}}wrapHandler(t,n){let i=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();"),!i&&o.length===0?t:`(e) => { ${i}${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 i=t==="checked",o=i?"change":"input",s=i?"checked":"value",a=`(${n})`;return[{name:t,kind:"attr",expr:`${a}[0]()`,reactive:!0},{name:"on"+At(o),kind:"event",event:{name:o,delegated:Ot.has(o)},expr:`(e) => ${a}[1](e.target.${s})`}]}plainAttr(t){let n=t.value,i=t.name;t.name==="class"?i=n&&n.kind==="hole"&&ae.types.isObjectExpression(this.hole(n.hole).node)?"classList":"className":t.name==="html"&&(i="innerHTML");let s={name:i,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 c=this.hole(n.hole);return s.expr=c.code,s.reactive=c.reactive,s}let a=!1,l=n.parts.map(c=>{if("text"in c)return cr(c.text);let p=this.hole(c.hole);return a=a||p.reactive,"${"+p.code+"}"}).join("");return s.expr="`"+l+"`",s.reactive=a,s}}});function ur(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 be(e){let t=[],n=new Map,i=o=>{switch(o.kind){case"text":return!0;case"expr":return!1;case"component":case"control":for(let s of o.children)i(s);return!1;case"fragment":for(let s of o.children)i(s);return!1;case"element":{let s=!0;for(let l of o.children)i(l)||(s=!1);let a;for(let l of o.props)if(a=ur(l),a)break;return!a&&!s&&(a=dr(o)),o.static=!a,a?n.set(o,a):t.push(o),o.static}default:return!1}};for(let o of Array.isArray(e)?e:[e])i(o);return{staticElements:t,reasons:n}}function dr(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 We=I(()=>{"use strict"});function Re(e,t=new Set,n={}){let i=Xt(e,t,n);return be(i),i}var Ve=I(()=>{"use strict";Dt();We()});function zt(e){return fr(e,{concise:!0}).code}function mr(e,t){let n=m.types.cloneNode(e,!0),i=m.types.file(m.types.program([m.types.expressionStatement(n)])),o=!1,s=(a,l,c)=>{for(let p of c)t.add(p);a.replaceWith(m.template.expression(l,{placeholderPattern:!1,plugins:["typescript"]})()),a.skip(),o=!0};return(0,m.traverse)(i,{"JSXElement|JSXFragment"(a){let l=a.node,{code:c,imports:p,templates:d}=_.emit(qe(l,t),{});s(a,se(c,d),p)},TaggedTemplateExpression(a){let l=a.node.tag;if(!m.types.isIdentifier(l)||l.name!=="html"&&l.name!=="svg")return;let c=Re(a.node,t,{svg:l.name==="svg"}),{code:p,imports:d,templates:u}=_.emit(c,{});s(a,se(p,u),d)}}),o?i.program.body[0].expression:e}function B(e,t){return zt(mr(e,t))}function Er(e){if(m.types.isJSXIdentifier(e)){let t=e.name[0]!==e.name[0].toLowerCase();return{tag:e.name,component:t}}return m.types.isJSXMemberExpression(e)?{tag:zt(e),component:!0}:m.types.isJSXNamespacedName(e)?{tag:`${e.namespace.name}:${e.name.name}`,component:!1}:{tag:"div",component:!1}}function Ue(e){return m.types.isJSXIdentifier(e)?e.name==="class"?"className":e.name:m.types.isJSXNamespacedName(e)?`${e.namespace.name}:${e.name.name}`:"unknown"}function L(e){return m.types.isCallExpression(e)||m.types.isOptionalCallExpression(e)?!0:m.types.isMemberExpression(e)||m.types.isOptionalMemberExpression(e)?!(!e.computed&&m.types.isIdentifier(e.property,{name:"children"})):m.types.isConditionalExpression(e)?L(e.test)||L(e.consequent)||L(e.alternate):m.types.isLogicalExpression(e)||m.types.isBinaryExpression(e)?L(e.left)||L(e.right):m.types.isTemplateLiteral(e)?e.expressions.some(t=>L(t)):m.types.isObjectExpression(e)?e.properties.some(t=>m.types.isObjectProperty(t)&&!t.computed&&L(t.value)):m.types.isArrayExpression(e)?e.elements.some(t=>t!=null&&!m.types.isSpreadElement(t)&&L(t)):!1}function Sr(e,t){let n=Ue(e.name),i=hr.test(n),o=i||n.startsWith("on:")||n==="ref",a={name:n,kind:i?"event":"attr"};i&&(a.event={name:n.slice(2).toLowerCase(),delegated:xr.has(n.slice(2).toLowerCase())});let l=e.value;if(l==null)return a.literal=!0,a;if(m.types.isStringLiteral(l))return a.literal=l.value,a;if(m.types.isJSXExpressionContainer(l)&&!m.types.isJSXEmptyExpression(l.expression)){let c=l.expression;return m.types.isStringLiteral(c)||m.types.isNumericLiteral(c)||m.types.isBooleanLiteral(c)?(a.literal=c.value,a):(a.expr=B(c,t),a.reactive=o?!1:L(c),(m.types.isJSXElement(c)||m.types.isJSXFragment(c))&&(a.jsxElement=!0),a)}return a.literal=!0,a}function _t(e,t){let n=e.value;return n==null?null:m.types.isStringLiteral(n)?JSON.stringify(n.value):m.types.isJSXExpressionContainer(n)&&!m.types.isJSXEmptyExpression(n.expression)?B(n.expression,t):null}function vr(e,t){let n=[],i=[];for(let o of e){if(m.types.isJSXSpreadAttribute(o)){n.push({name:"",kind:"spread",expr:B(o.argument,t)});continue}if(!m.types.isJSXAttribute(o)||ne(Ue(o.name)))continue;let s=m.types.isJSXNamespacedName(o.name)?o.name.namespace.name:null;if(s==="use"){let a=o.name.name.name;t.add(a);let l=_t(o,t);i.push(l!=null?`[${a}, () => (${l})]`:`[${a}]`);continue}if(s==="oncapture"){let a=o.name.name.name.toLowerCase(),l=_t(o,t)??"undefined";n.push({name:"on:"+a,kind:"attr",expr:`[${l}, { capture: true }]`});continue}n.push(Sr(o,t))}return i.length>0&&n.push({name:"use",kind:"attr",expr:`[${i.join(", ")}]`}),n}function ye(e){let t=e.split(/\r\n|\n|\r/),n=0;for(let o=0;o<t.length;o++)/[^ \t]/.test(t[o])&&(n=o);let i="";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+=" "),i+=s)}return i}function Bt(e,t){let n=[];for(let i of e)if(m.types.isJSXText(i)){let o=ye(i.value);o&&n.push({kind:"text",value:o})}else if(m.types.isJSXExpressionContainer(i)){if(!m.types.isJSXEmptyExpression(i.expression)){let o=i.expression;n.push({kind:"expr",code:B(o,t),reactive:L(o)})}}else m.types.isJSXElement(i)||m.types.isJSXFragment(i)?n.push(Ge(i,t)):m.types.isJSXSpreadChild(i)&&n.push({kind:"expr",code:B(i.expression,t),reactive:!1});return n}function qe(e,t=new Set){let n=Ge(e,t);return be(n),n}function Ge(e,t){if(m.types.isJSXFragment(e))return{kind:"fragment",children:Bt(e.children,t)};let{tag:n,component:i}=Er(e.openingElement.name),o=vr(e.openingElement.attributes,t),s=Bt(e.children,t);if(i){let a=yr(e.openingElement.attributes);return{kind:"component",name:n,props:o,children:s,...a?{load:a}:{}}}return{kind:"element",tag:n,svg:gr.has(n),props:o,children:s,static:!1}}function yr(e){for(let t of e){if(!m.types.isJSXAttribute(t))continue;let n=Ue(t.name);if(ne(n)){if(t.value&&!m.types.isStringLiteral(t.value))throw new O(`'${n}' needs a literal value, not an expression — the strategy is compile-time.`);return K(n,t.value?t.value.value:null)}}}var m,He,fr,gr,hr,xr,ze=I(()=>{"use strict";m=require("@babel/core"),He=de(require("@babel/generator"),1);ve();Ve();We();Y();fr=He.default.default??He.default;gr=new Set(["svg","path","circle","rect","line","polygon","polyline","ellipse","g","defs","clipPath","text"]),hr=/^on[A-Z]/,xr=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"])});function Rr(e,t,n){let{runtime:i,pragma:o,development:s,autoShow:a=!0}=n;return i==="automatic"?ce(e,t,s,a):Jr(e,t,o)}function Vt(e,t,n){return t.length>0?(n.needsMergeProps=!0,r.types.callExpression(r.types.identifier("mergeProps"),[...t,r.types.objectExpression(e)])):r.types.objectExpression(e)}function Yt(e){return e.length===1?e[0]:r.types.arrayExpression(e)}function wr(e,t,n,i,o,s){if(!t){let u=[...n];return o.length>0&&u.push(r.types.objectMethod("get",r.types.identifier("children"),[],r.types.blockStatement([r.types.returnStatement(Yt(o))]))),Qt(e,Vt(u,i,s),s)}let a=e.value,l=Cr.has(a),c=r.types.identifier("_el$"),p=[];s.needsCreateNativeElement=!0;let d=[e];if(l&&d.push(r.types.booleanLiteral(!0)),p.push(r.types.variableDeclaration("const",[r.types.variableDeclarator(c,r.types.callExpression(r.types.identifier("createNativeElement"),d))])),n.length>0||i.length>0){s.needsSpread=!0;let u=[r.types.objectProperty(r.types.identifier("element"),c),r.types.objectProperty(r.types.identifier("props"),Vt(n,i,s))];l&&u.push(r.types.objectProperty(r.types.identifier("isSVG"),r.types.booleanLiteral(!0))),p.push(r.types.expressionStatement(r.types.callExpression(r.types.identifier("spread"),[r.types.objectExpression(u)])))}if(o.length>0){s.needsInsert=!0;for(let u of o){let C=r.types.isArrowFunctionExpression(u)||r.types.isFunctionExpression(u)||r.types.isCallExpression(u)&&r.types.isIdentifier(u.callee)&&u.callee.name==="createMemo"?[r.types.cloneNode(c),u,r.types.nullLiteral()]:[r.types.cloneNode(c),u];p.push(r.types.expressionStatement(r.types.callExpression(r.types.identifier("insert"),C)))}}return p.push(r.types.returnStatement(c)),r.types.callExpression(r.types.arrowFunctionExpression([],r.types.blockStatement(p)),[])}function Ir(e,t){let n=null;if(t.value)if(r.types.isStringLiteral(t.value))n=t.value.value;else throw new O(`'${e}' needs a literal value, not an expression — the strategy is compile-time.`);return K(e,n)}function kr(e){let t=[r.types.objectProperty(r.types.identifier("kind"),r.types.stringLiteral(e.kind))];return e.kind==="visible"&&e.rootMargin&&t.push(r.types.objectProperty(r.types.identifier("rootMargin"),r.types.stringLiteral(e.rootMargin))),e.kind==="interaction"&&t.push(r.types.objectProperty(r.types.identifier("events"),r.types.arrayExpression(e.events.map(n=>r.types.stringLiteral(n))))),e.kind==="media"&&t.push(r.types.objectProperty(r.types.identifier("query"),r.types.stringLiteral(e.query))),r.types.objectExpression(t)}function Nr(e,t){return!D(e)||!D(t)?V:e}function Qt(e,t,n){r.types.isIdentifier(e)&&we.has(e.name)&&(n.controlFlowComponents.add(e.name),n.needsControlFlowImport=!0);let i=!1;if(r.types.isIdentifier(e)&&!we.has(e.name)&&n.componentResolver){let o=n.componentResolver.resolve(e.name);if(o){let s=n.pendingLoad??V,a=n.resolvedComponents.has(e.name);if(D(s)&&!a){let l=n.deferredComponents.get(e.name),c=l?Nr(l.strategy,s):s;D(c)?n.deferredComponents.set(e.name,{...o,strategy:c}):(n.deferredComponents.delete(e.name),n.resolvedComponents.set(e.name,o))}else n.deferredComponents.delete(e.name),n.resolvedComponents.set(e.name,o);i=!0}}return n.pendingLoad=void 0,!i&&r.types.isIdentifier(e)&&Ce.has(e.name)&&(n.controlFlowComponents.add(e.name),n.needsControlFlowImport=!0),n.backend==="imperative"?(n.needsCreateComponent=!0,n.needsCreateMemo=!0,r.types.callExpression(r.types.identifier("createMemo"),[r.types.arrowFunctionExpression([],r.types.callExpression(r.types.identifier("createComponent"),[e,t]))])):r.types.callExpression(r.types.identifier("jsx"),[e,t])}function en(e,t,n){if(!t||t.length===0)return e;let i=new Map;for(let o of t){let s=`${o.svg?"svg:":""}${o.html}`,a=n.staticTemplates.get(s);a||(a=`_tmpl$${n.staticTemplates.size}`,n.staticTemplates.set(s,a)),i.set(o.id,a)}return e.replace(/_tmpl\$\d+/g,o=>i.get(o)??o)}function Ht(e,t){let n=new Set,i=qe(e,n);je(i,{resolver:t.componentResolver,modules:{controlFlowModule:t.controlFlowModule,coreModule:t.libModule,routerModule:t.routerModule},strategyFor:c=>c.load}),Oe(i);let{code:o,imports:s,templates:a}=_.emit(i,{templateClone:t.templateClone,partialTemplates:t.partialTemplates});for(let c of s)n.add(c);for(let c of n)t.irImports.add(c);Ke(i,t);let l=en(o,a,t);return r.template.expression(l,{placeholderPattern:!1,plugins:["typescript"]})()}function Mr(e){let t=new Map,n=[];for(let i of e){let o=i.source.value;if(!i.specifiers.every(l=>r.types.isImportSpecifier(l))){n.push(i);continue}let a=t.get(o);if(!a){let l=new Set(i.specifiers.map(c=>c.local.name));t.set(o,{decl:i,names:l}),n.push(i);continue}for(let l of i.specifiers)a.names.has(l.local.name)||(a.names.add(l.local.name),a.decl.specifiers.push(l))}return n}function Tr(e,t){let n=new Set,i=r.types.isIdentifier(e.tag)&&e.tag.name==="svg",o=Re(e,n,{svg:i});je(o,{resolver:t.componentResolver,modules:{controlFlowModule:t.controlFlowModule,coreModule:t.libModule,routerModule:t.routerModule},strategyFor:p=>p.load}),Oe(o);let{code:s,imports:a,templates:l}=_.emit(o,{templateClone:t.templateClone,partialTemplates:t.partialTemplates});for(let p of a)n.add(p);for(let p of n)t.irImports.add(p);Ke(o,t),t.hasLitIR=!0;let c=r.template.expression(en(s,l,t),{placeholderPattern:!1,plugins:["typescript"]})();return $r(c,e),c}function $r(e,t){if(!t.loc)return;let n=new Set,i=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 r.types.VISITOR_KEYS[o.type]??[]){let a=o[s];if(Array.isArray(a))for(let l of a)l&&typeof l=="object"&&"type"in l&&i(l);else a&&typeof a=="object"&&"type"in a&&i(a)}}};i(e)}function Ke(e,t){if(e.kind==="component"&&e.source&&(e.source.origin==="builtin"?(t.controlFlowComponents.add(e.name),t.needsControlFlowImport=!0):D(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)Ke(n,t)}function Lr(e){return e.map(t=>{if(r.types.isObjectProperty(t)){let n=t.key,i=t.computed,o=t.value;return r.types.objectMethod("get",n,[],r.types.blockStatement([r.types.returnStatement(o)]),i)}return t})}function ce(e,t,n,i=!0){let o=e.openingElement,s=e.children,a=tn(o.name),l=r.types.isJSXIdentifier(o.name)&&/^[a-z]/.test(o.name.name),c=rn(o.attributes,t,l,r.types.isJSXIdentifier(o.name)?o.name.name:""),p=c.props,d=c.spreads;l||(p=Lr(p));let u=Ye(s,t,i);if(t.backend==="imperative")return wr(a,l,p,d,u,t);if(u.length>0){let w=u.length===1?u[0]:r.types.arrayExpression(u);p.push(r.types.objectProperty(r.types.identifier("children"),w))}let g;if(d.length>0){let w=p.length>0?r.types.objectExpression(p):r.types.objectExpression([]);t.needsMergeProps=!0,g=r.types.callExpression(r.types.identifier("mergeProps"),[...d,w])}else g=r.types.objectExpression(p);let C=n?"jsxDEV":u.length>1?"jsxs":"jsx",b=[a,g];return n&&b.push(r.types.identifier("undefined"),r.types.booleanLiteral(!1),r.types.identifier("undefined"),r.types.identifier("undefined")),r.types.callExpression(r.types.identifier(C),b)}function Jr(e,t,n){let i=e.openingElement,o=e.children,s=tn(i.name),a=r.types.isJSXIdentifier(i.name)&&/^[a-z]/.test(i.name.name),{props:l,spreads:c}=rn(i.attributes,t,a,r.types.isJSXIdentifier(i.name)?i.name.name:""),p=Ye(o,t,t.autoShow??!0),d;if(c.length>0){let g=l.length>0?r.types.objectExpression(l):r.types.objectExpression([]);t.needsMergeProps=!0,d=r.types.callExpression(r.types.identifier("mergeProps"),[...c,g])}else d=l.length>0?r.types.objectExpression(l):r.types.nullLiteral();let u=[s,d,...p];return r.types.callExpression(r.types.identifier(n),u)}function Ie(e,t,n){let{runtime:i,pragmaFrag:o,development:s}=n,a=Ye(e.children,t,t.autoShow??!0);if(t.backend==="imperative")return a.length===0?r.types.nullLiteral():Yt(a);if(i==="automatic"){let l=s?"jsxDEV":a.length>1?"jsxs":"jsx",c=r.types.objectExpression([r.types.objectProperty(r.types.identifier("children"),a.length===1?a[0]:r.types.arrayExpression(a))]),p=[r.types.identifier("Fragment"),c];return s&&p.push(r.types.identifier("undefined"),r.types.booleanLiteral(!1),r.types.identifier("undefined"),r.types.identifier("undefined")),r.types.callExpression(r.types.identifier(l),p)}else return r.types.callExpression(r.types.identifier(o),a)}function tn(e){if(r.types.isJSXIdentifier(e)){let t=e.name;return t[0]===t[0].toLowerCase()?r.types.stringLiteral(t):r.types.identifier(t)}return r.types.isJSXMemberExpression(e)?nn(e):r.types.isJSXNamespacedName(e)?r.types.stringLiteral(`${e.namespace.name}:${e.name.name}`):r.types.stringLiteral("div")}function nn(e){let t;return r.types.isJSXIdentifier(e.object)?t=r.types.identifier(e.object.name):t=nn(e.object),r.types.memberExpression(t,r.types.identifier(e.property.name))}function jr(e){return/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(e)}function rn(e,t,n=!0,i=""){let o=[],s=[],a=br[i],l=[];t.pendingLoad=void 0;for(let c of e)if(r.types.isJSXSpreadAttribute(c))s.push(c.argument);else if(r.types.isJSXAttribute(c)){let p=Pr(c.name);if(ne(p)){t.pendingLoad=Ir(p,c);continue}if(r.types.isJSXNamespacedName(c.name)&&c.name.namespace.name==="use"){let M=r.types.identifier(c.name.name.name),W=c.value===null?null:Gt(c.value,t,p,n);l.push(r.types.arrayExpression(W?[M,r.types.arrowFunctionExpression([],W)]:[M]));continue}let d=Gt(c.value,t,p,n);if(Zt.test(p)){let M=p.slice(2).toLowerCase();Kt.includes(M)&&t.delegatedEvents.add(M)}let u=jr(p)?r.types.identifier(p):r.types.stringLiteral(p),g=c.value,C=r.types.isJSXElement(g)||r.types.isJSXFragment(g)||r.types.isJSXExpressionContainer(g)&&(r.types.isJSXElement(g.expression)||r.types.isJSXFragment(g.expression)),b=!n&&p===a,w=r.types.isJSXExpressionContainer(g)&&!r.types.isJSXEmptyExpression(g.expression)?g.expression:null,z=!n&&!!w&&on(w,p);!n&&C||b||z?o.push(r.types.objectMethod("get",u,[],r.types.blockStatement([r.types.returnStatement(d)]))):o.push(r.types.objectProperty(u,d))}return l.length>0&&o.push(r.types.objectProperty(r.types.identifier("use"),r.types.arrayExpression(l))),{props:o,spreads:s}}function Pr(e){return r.types.isJSXIdentifier(e)?e.name==="class"?"className":e.name:r.types.isJSXNamespacedName(e)?`${e.namespace.name}:${e.name.name}`:"unknown"}function Gt(e,t,n="",i=!0){if(e===null)return r.types.booleanLiteral(!0);if(r.types.isStringLiteral(e))return e.value.includes(`
|
|
2
|
-
`)?r.types.stringLiteral(e.value.replace(/\s+/g," ").trim()):e;if(r.types.isJSXExpressionContainer(e)){if(r.types.isJSXEmptyExpression(e.expression))return r.types.booleanLiteral(!0);let o=e.expression;return i&&on(o,n)?r.types.arrowFunctionExpression([],o):o}return r.types.isJSXElement(e)?ce(e,t,!1,t.autoShow??!0):r.types.isJSXFragment(e)?Ie(e,t,{runtime:"automatic",pragmaFrag:"Fragment",development:!1}):r.types.booleanLiteral(!0)}function on(e,t){return Zt.test(t)||t.startsWith("on:")||t==="ref"||t.startsWith("use:")||r.types.isArrowFunctionExpression(e)||r.types.isFunctionExpression(e)||r.types.isIdentifier(e)||r.types.isStringLiteral(e)||r.types.isNumericLiteral(e)||r.types.isBooleanLiteral(e)||r.types.isNullLiteral(e)?!1:!!(r.types.isCallExpression(e)||r.types.isOptionalCallExpression(e)||r.types.isMemberExpression(e)||r.types.isOptionalMemberExpression(e)||r.types.isLogicalExpression(e)||r.types.isConditionalExpression(e)||r.types.isBinaryExpression(e)||r.types.isUnaryExpression(e)||r.types.isTemplateLiteral(e)||r.types.isObjectExpression(e)||r.types.isArrayExpression(e))}function Or(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 i="";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+=" "),i+=s)}return i}function Ye(e,t,n=!0){let i=[];for(let o of e)if(r.types.isJSXText(o)){let s=Or(o.value);s&&i.push(r.types.stringLiteral(s))}else if(r.types.isJSXExpressionContainer(o)){if(!r.types.isJSXEmptyExpression(o.expression)){let s=o.expression;if(n){let a=Ar(s,t)??Fr(s,t);if(a){i.push(a);continue}}else{let a=Xr(s,t);if(a){i.push(a);continue}}_r(s)?i.push(r.types.arrowFunctionExpression([],s)):i.push(s)}}else r.types.isJSXElement(o)?i.push(ce(o,t,!1,t.autoShow??!0)):r.types.isJSXFragment(o)?i.push(Ie(o,t,{runtime:"automatic",pragmaFrag:"Fragment",development:!1})):r.types.isJSXSpreadChild(o)&&i.push(o.expression);return i}function Ar(e,t){if(!r.types.isArrowFunctionExpression(e)||e.params.length!==0||e.async)return null;let n=e.body;if(r.types.isLogicalExpression(n)&&n.operator==="&&"){let i=A(n.right);if(i)return le(H(n.left),i,null,t)}if(r.types.isConditionalExpression(n)){let i=A(n.consequent);if(i){let o=Qe(n.alternate,t);return le(H(n.test),i,o,t,!0)}}return null}function Fr(e,t){if(r.types.isLogicalExpression(e)&&e.operator==="&&"){let n=A(e.right);if(n)return le(H(e.left),n,null,t)}if(r.types.isConditionalExpression(e)){let n=A(e.consequent);if(n){let i=Qe(e.alternate,t);return le(H(e.test),n,i,t)}}return null}function Xr(e,t){let n=r.types.isArrowFunctionExpression(e)&&e.params.length===0&&!e.async&&r.types.isExpression(e.body)?e.body:e;if(r.types.isConditionalExpression(n)){let i=H(n.test),s=A(n.consequent)??n.consequent,l=A(n.alternate)??n.alternate,c=r.types.conditionalExpression(i,s,l);return Ze(n.consequent)||Ze(n.alternate)?null:(t.needsCreateMemo=!0,r.types.callExpression(r.types.identifier("createMemo"),[r.types.arrowFunctionExpression([],c)]))}if(r.types.isLogicalExpression(n)&&n.operator==="&&"){let i=H(n.left),s=A(n.right)??n.right,a=r.types.logicalExpression("&&",i,s);return Ze(n.right)?null:(t.needsCreateMemo=!0,r.types.callExpression(r.types.identifier("createMemo"),[r.types.arrowFunctionExpression([],a)]))}return null}function Qe(e,t){if(Dr(e))return null;let n=A(e);if(n)return sn(n,t);if(r.types.isConditionalExpression(e)){let i=e,o=A(i.consequent);if(o){let s=Qe(i.alternate,t);return le(H(i.test),o,s,t)}}return e}function Ut(e){return r.types.isJSXElement(e)||r.types.isJSXFragment(e)}function Ze(e){let t=A(e);if(!t||!r.types.isJSXElement(t))return!1;let n=t.openingElement.name;return r.types.isJSXIdentifier(n)&&we.has(n.name)}function A(e){return Ut(e)?e:r.types.isArrowFunctionExpression(e)&&e.params.length===0&&!e.async&&Ut(e.body)?e.body:null}function H(e){return r.types.isArrowFunctionExpression(e)&&e.params.length===0&&!e.async&&r.types.isExpression(e.body)?e.body:e}function Dr(e){return r.types.isNullLiteral(e)||r.types.isIdentifier(e)&&e.name==="undefined"||r.types.isBooleanLiteral(e)&&e.value===!1}function sn(e,t){return r.types.isJSXElement(e)?ce(e,t,!1,t.autoShow??!0):Ie(e,t,{runtime:"automatic",pragmaFrag:"Fragment",development:!1})}function le(e,t,n,i,o=!1){i.controlFlowComponents.add("Show"),i.needsControlFlowImport=!0;let s=sn(t,i),a=[r.types.objectProperty(r.types.identifier("when"),r.types.arrowFunctionExpression([],e)),r.types.objectProperty(r.types.identifier("children"),s)];return n&&a.push(r.types.objectProperty(r.types.identifier("fallback"),n)),Qt(r.types.identifier("Show"),r.types.objectExpression(a),i)}function _r(e){return r.types.isMemberExpression(e)||r.types.isOptionalMemberExpression(e)?!(!e.computed&&r.types.isIdentifier(e.property,{name:"children"})):r.types.isCallExpression(e)||r.types.isOptionalCallExpression(e)?!0:r.types.isIdentifier(e)?!1:!!(r.types.isLogicalExpression(e)||r.types.isConditionalExpression(e)||r.types.isBinaryExpression(e)||r.types.isUnaryExpression(e)||r.types.isTemplateLiteral(e))}function an(e,t){let n=e.openingElement;if(!r.types.isJSXIdentifier(n.name))return!1;let i=n.name.name;if(i[0]!==i[0].toLowerCase())return!1;for(let o of n.attributes){if(r.types.isJSXSpreadAttribute(o))return!1;if(r.types.isJSXAttribute(o)){let s=o.value;if(r.types.isJSXExpressionContainer(s)&&!r.types.isStringLiteral(s.expression)&&!r.types.isNumericLiteral(s.expression))return!1}}for(let o of e.children)if(r.types.isJSXElement(o)&&!an(o,t)||r.types.isJSXExpressionContainer(o))return!1;return!0}function Br(e,t){let n=`_$static${t.staticCounter++}`,i=ce(e,t,!1);return t.staticElements.set(n,i),r.types.identifier(n)}function zr(e,t){let n=e.openingElement.name.name;return n==="Show"?Wr(e,t):n==="For"?Vr(e,t):null}function Wr(e,t){return null}function Vr(e,t){return null}var qt,r,we,Wt,Ce,br,Zt,Kt,Q,Cr,et=I(()=>{"use strict";qt=require("@babel/helper-plugin-utils");Le();Pe();bt();Y();he();r=require("@babel/core");ze();Ve();ve();we=new Set([...te,...q]),Wt=new Set(q),Ce=new Set(Z),br={Show:"when",For:"each",Index:"each",Match:"when"},Zt=/^on[A-Z]/,Kt=["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup","mouseover","mouseout","mouseenter","mouseleave"],Q=(0,qt.declare)((e,t={})=>{e.assertVersion(7);let{runtime:n="automatic",importSource:i="@fluixi/jsx",pragma:o="jsx",pragmaFrag:s="Fragment",development:a=!1,detectReactivity:l=!0,useLitHTML:c=!0,hoistStatics:p=!0,delegateEvents:d=!0,delegatedEvents:u=Kt,optimizeControlFlow:g=!0,sourceMaps:C=!0,signalModule:b="@fluixi/dom",controlFlowModule:w="@fluixi/dom",routerModule:z="@fluixi/core/router-next",reactiveModule:M="@fluixi/reactive/signal",autoShowTransform:W=!1,backend:j="imperative",codegen:S="ir",templateClone:T=!0,partialTemplates:F=!0,format:pt="both",litTag:vn="html",resolve:yn=[]}=t,ut=me(yn),bn=pt==="lit"||pt==="both",Rn={backend:j,codegen:S,irImports:new Set,libModule:"@fluixi/core",controlFlowModule:w,routerModule:z,templateClone:T,partialTemplates:F,hasJSX:!1,hasReactivity:!1,hasLitHTML:!1,needsSignalImport:!1,needsControlFlowImport:!1,needsCreateMemo:!1,controlFlowComponents:new Set,resolvedComponents:new Map,deferredComponents:new Map,componentResolver:ut,delegatedEvents:new Set,staticElements:new Map,staticTemplates:new Map,staticCounter:0};return{name:"@fluixi/babel-plugin-jsx",manipulateOptions(h,f){f.plugins.push("jsx","typescript")},pre(h){Object.assign(h,Rn)},visitor:{ImportDeclaration(h,f){h.node.source.value==="@fluixi/core/rx"&&(h.node.source=r.types.stringLiteral("@fluixi/reactive"))},Program:{enter(h,f){Object.assign(f,{hasJSX:!1,hasReactivity:!1,hasLitHTML:!1,hasLitIR:!1,needsSignalImport:!1,needsControlFlowImport:!1,needsCreateMemo:!1,controlFlowComponents:new Set,resolvedComponents:new Map,deferredComponents:new Map,componentResolver:ut,delegatedEvents:new Set,staticElements:new Map,staticTemplates:new Map,autoShow:W,staticCounter:0,libModule:"@fluixi/core",controlFlowModule:w,routerModule:z,templateClone:T,partialTemplates:F,backend:j,codegen:S,irImports:new Set,needsCreateNativeElement:!1,needsInsert:!1,needsSpread:!1,needsCreateComponent:!1,needsMergeProps:!1})},exit(h,f){let x=[];if(f.hasJSX||f.needsSignalImport&&x.push(r.types.importDeclaration([r.types.importSpecifier(r.types.identifier("signal"),r.types.identifier("signal"))],r.types.stringLiteral(b))),f.hasJSX||f.hasLitIR){if(f.irImports.size>0){let v=new Set(["Show","For","Index","Switch","Match","Dynamic","ErrorBoundary","Portal","Suspense"]),E=new Set(["createMemo","createEffect","createRenderEffect","createRoot","createSignal","onCleanup","batch","untrack"]),y=Array.from(f.irImports),k=R=>r.types.importSpecifier(r.types.identifier(R),r.types.identifier(R)),P=R=>!h.scope.hasBinding(R),U=y.filter(R=>E.has(R)&&P(R)),$=y.filter(R=>!v.has(R)&&!E.has(R)&&P(R)),pe=y.filter(R=>v.has(R)&&P(R));U.length>0&&x.push(r.types.importDeclaration(U.map(k),r.types.stringLiteral(M))),$.length>0&&x.push(r.types.importDeclaration($.map(k),r.types.stringLiteral(b))),pe.length>0&&x.push(r.types.importDeclaration(pe.map(k),r.types.stringLiteral(w)))}if(f.hasJSX&&j==="imperative"&&S!=="ir"){let E=[[!!f.needsCreateNativeElement,"createNativeElement"],[!!f.needsSpread,"spread"],[!!f.needsInsert,"insert"],[!!f.needsCreateComponent,"createComponent"],[!!f.needsMergeProps,"mergeProps"]].filter(([y,k])=>y&&!h.scope.hasBinding(k)).map(([,y])=>r.types.importSpecifier(r.types.identifier(y),r.types.identifier(y)));E.length>0&&x.push(r.types.importDeclaration(E,r.types.stringLiteral(b)))}else if(f.hasJSX&&n==="automatic"&&j!=="imperative"){let v=[r.types.importSpecifier(r.types.identifier("jsx"),r.types.identifier("jsx")),r.types.importSpecifier(r.types.identifier("jsxs"),r.types.identifier("jsxs")),r.types.importSpecifier(r.types.identifier("Fragment"),r.types.identifier("Fragment"))];a&&v.push(r.types.importSpecifier(r.types.identifier("jsxDEV"),r.types.identifier("jsxDEV"))),f.needsMergeProps&&v.push(r.types.importSpecifier(r.types.identifier("mergeProps"),r.types.identifier("mergeProps"))),x.push(r.types.importDeclaration(v,r.types.stringLiteral(i)))}if(f.needsCreateMemo&&!h.scope.hasBinding("createMemo")&&x.push(r.types.importDeclaration([r.types.importSpecifier(r.types.identifier("createMemo"),r.types.identifier("createMemo"))],r.types.stringLiteral(j==="imperative"?M:f.libModule??"@fluixi/core"))),f.needsControlFlowImport&&f.controlFlowComponents.size>0){let v=Array.from(f.controlFlowComponents).filter($=>!h.scope.hasBinding($)),E=f.libModule??"@fluixi/core",y=v.filter($=>Ce.has($)),k=v.filter($=>Wt.has($)),P=v.filter($=>!Wt.has($)&&!Ce.has($)),U=($,pe)=>r.types.importDeclaration($.map(R=>r.types.importSpecifier(r.types.identifier(R),r.types.identifier(R))),r.types.stringLiteral(pe));P.length>0&&x.push(U(P,w)),k.length>0&&x.push(U(k,E)),y.length>0&&x.push(U(y,z))}let J=[];if(f.deferredComponents.size>0){for(let[v,E]of f.deferredComponents)h.scope.hasBinding(v)||J.push(r.types.variableDeclaration("const",[r.types.variableDeclarator(r.types.identifier(v),r.types.callExpression(r.types.identifier("deferred"),[r.types.arrowFunctionExpression([],r.types.callExpression(r.types.import(),[r.types.stringLiteral(E.module)])),r.types.objectExpression([r.types.objectProperty(r.types.identifier("strategy"),kr(E.strategy)),r.types.objectProperty(r.types.identifier("export"),r.types.stringLiteral(E.export))])]))]));J.length>0&&!h.scope.hasBinding("deferred")&&x.push(r.types.importDeclaration([r.types.importSpecifier(r.types.identifier("deferred"),r.types.identifier("deferred"))],r.types.stringLiteral(f.libModule??"@fluixi/core")))}if(f.resolvedComponents.size>0){let v=new Map;for(let[E,y]of f.resolvedComponents){if(h.scope.hasBinding(E))continue;let k=v.get(y.module)??[];k.push({local:E,exported:y.export}),v.set(y.module,k)}for(let[E,y]of v)x.push(r.types.importDeclaration(y.map(({local:k,exported:P})=>P==="default"?r.types.importDefaultSpecifier(r.types.identifier(k)):r.types.importSpecifier(r.types.identifier(k),r.types.identifier(P))),r.types.stringLiteral(E)))}if(d&&f.delegatedEvents.size>0){x.push(r.types.importDeclaration([r.types.importSpecifier(r.types.identifier("delegateEvents"),r.types.identifier("delegateEvents"))],r.types.stringLiteral(j==="imperative"?b:"@fluixi/jsx")));let v=r.types.arrayExpression(Array.from(f.delegatedEvents).map(y=>r.types.stringLiteral(y))),E=r.types.expressionStatement(r.types.callExpression(r.types.identifier("delegateEvents"),[v]));h.node.body.unshift(E)}if(p&&f.staticElements.size>0){let v=[];f.staticElements.forEach((E,y)=>{v.push(r.types.variableDeclaration("const",[r.types.variableDeclarator(r.types.identifier(y),E)]))}),h.node.body.unshift(...v)}if(J.length>0&&h.node.body.unshift(...J),f.staticTemplates.size>0){let v=[];for(let[E,y]of f.staticTemplates){let P=E.startsWith("svg:")?E.slice(4):E;v.push(r.types.variableDeclaration("const",[r.types.variableDeclarator(r.types.identifier(y),r.types.stringLiteral(P))]))}h.node.body.unshift(...v)}}x.length>0&&h.node.body.unshift(...Mr(x))}},JSXElement(h,f){if(f.hasJSX=!0,j==="imperative"&&S==="ir"){h.replaceWith(Ht(h.node,f));return}let x=h.node,J=x.openingElement;if(r.types.isJSXIdentifier(J.name)&&Ce.has(J.name.name)&&!f.componentResolver?.resolve(J.name.name)&&(f.controlFlowComponents.add(J.name.name),f.needsControlFlowImport=!0),r.types.isJSXIdentifier(J.name)&&we.has(J.name.name)&&(f.controlFlowComponents.add(J.name.name),g)){let E=zr(x,f);if(E){h.replaceWith(E);return}}if(p&&j!=="imperative"&&an(x,f)){let E=Br(x,f);if(E){h.replaceWith(E);return}}let v=Rr(x,f,{runtime:n,pragma:o,development:a,detectReactivity:l,useLitHTML:c,autoShow:W});h.replaceWith(v)},JSXFragment(h,f){if(f.hasJSX=!0,j==="imperative"&&S==="ir"){h.replaceWith(Ht(h.node,f));return}let x=Ie(h.node,f,{runtime:n,pragmaFrag:s,development:a});h.replaceWith(x)},CallExpression(h,f){if(!l)return;let x=h.node.callee;x.name,r.types.isIdentifier(x)&&(x.name==="createSignal"||x.name==="createStore"||x.name==="useContext"||x.name==="useLocation")&&(f.hasReactivity=!0)},JSXExpressionContainer(h){},TaggedTemplateExpression(h,f){if(bn&&j==="imperative"&&r.types.isIdentifier(h.node.tag)&&(h.node.tag.name===vn||h.node.tag.name==="svg")){h.replaceWith(Tr(h.node,f));return}}}}});Cr=new Set(["svg","path","circle","rect","line","polygon","polyline","ellipse","g","defs","clipPath","text"])});var ln=I(()=>{"use strict"});var cn={};dt(cn,{babelPluginReactiveJSX:()=>Hr,createPlugin:()=>Gr,createPreset:()=>ke,default:()=>Q,presets:()=>Ur});function Gr(e){return[Q,e]}function ke(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 Hr,Ur,pn=I(()=>{"use strict";et();ln();et();Hr=Q;Ur={production:ke({development:!1,hoistStatics:!0,delegateEvents:!0,optimizeControlFlow:!0}),development:ke({development:!0,hoistStatics:!1,sourceMaps:!0}),minimal:ke({detectReactivity:!1,useLitHTML:!1,hoistStatics:!1,delegateEvents:!1,optimizeControlFlow:!1})}});var ri={};dt(ri,{analyzeProp:()=>Ne,analyzeProps:()=>Me,createBabelPlugin:()=>ee,createESBuildPlugin:()=>En,createRollupPlugin:()=>xn,createTypeScriptTransformer:()=>mn,createVitePlugin:()=>gn,createWebpackLoader:()=>hn,default:()=>ni,generateChildrenCode:()=>it,generateCreateElement:()=>dn,generateEventDelegation:()=>lt,generateLitHTMLTemplate:()=>ot,generatePropsCode:()=>rt,hoistStatic:()=>at,isLitTemplate:()=>un,optimizeSpreads:()=>fn,optimizeStatic:()=>st,serverFunctionsVitePlugin:()=>ti,shouldUseLitTemplate:()=>nt,transform:()=>G,transformServerFunctions:()=>fe});module.exports=Mn(ri);var mt=require("@babel/core"),Tn="@fluixi/start/server-fn";function $n(e){let t=5381;for(let n=0;n<e.length;n++)t=t*33^e.charCodeAt(n);return(t>>>0).toString(16)}function Ln({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||Tn)))}},"FunctionDeclaration|FunctionExpression|ArrowFunctionExpression":(t,n)=>{let i=t.node.body;if(!e.isBlockStatement(i))return;let s=(i.directives||[]).findIndex(u=>u.value.value==="use server");if(s<0)return;i.directives.splice(s,1);let a=(n.opts.filename||n.filename||"unknown").replace(n.opts.root?n.opts.root+"/":"",""),l=`${$n(a)}:${n.fxIndex++}`,c=!!n.opts.ssr,p=c?"$$registerServerFn":"$$createServerReference";n.fxUsed=p;let d=c?e.callExpression(e.identifier(p),[e.stringLiteral(l),t.isFunctionDeclaration()?e.functionExpression(null,t.node.params,i,t.node.generator,t.node.async):t.node]):e.callExpression(e.identifier(p),[e.stringLiteral(l)]);t.isFunctionDeclaration()?t.replaceWith(e.variableDeclaration("const",[e.variableDeclarator(t.node.id,d)])):t.replaceWith(d),t.skip()}}}}function fe(e,t){if(!e.includes("use server"))return null;let n=(0,mt.transformSync)(e,{filename:t.filename,configFile:!1,babelrc:!1,sourceMaps:!0,parserOpts:{plugins:["typescript","jsx"]},plugins:[[Ln,t]]});return n?.code?{code:n.code,map:n.map}:null}var X=require("node:fs"),N=require("node:path");Le();he();var Pn=new Set(["Text","Image","Option","Audio","Comment","Range","Selection","Notification","Event","Document","Element","Node","Screen","Window","Location","History","Storage","Response","Request","Headers"]);function On(e){if(e.startsWith(".")||e.startsWith("/")||/^[~@]\//.test(e))return;let t=e.split("/");return e.startsWith("@")?t.slice(0,2).join("/"):t[0]}function ht(e){return`_${e.replace(/[^A-Za-z0-9]/g,"_")}`}function xt(e,t={}){let{available:n,builtins:i=!0,generator:o="@fluixi/compiler",specifier:s=S=>S}=t,a=[...e];i&&a.push({components:ge()});let l=me(a),c=n?new Set(n):void 0,p=[],d=[],u=[],g=new Map;for(let S of[...l.names()].sort()){let T=l.resolve(S);if(!T)continue;let F=On(T.module);Pn.has(S)?d.push(S):c&&F&&!c.has(F)?u.push(S):(p.push(S),g.set(S,T))}let b=[...new Set(p.map(S=>g.get(S).module))].sort().map(S=>`import * as ${ht(S)} from '${s(S)}';`),w=p.map(S=>{let T=g.get(S),F=ht(T.module);return T.export==="default"?` const ${S}: typeof ${F}.default;`:` export import ${S} = ${F}.${T.export};`}),z=d.length>0?`//
|
|
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,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function An(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}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(`
|
|
2
|
+
`)+`
|
|
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?`//
|
|
3
5
|
// Import these explicitly — lib.dom already declares the name, so an ambient
|
|
4
6
|
// declaration cannot win:
|
|
5
|
-
`+
|
|
6
|
-
`}).join(""):"",
|
|
7
|
-
// ${
|
|
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:
|
|
8
10
|
// a pattern matches unboundedly many names, so there is no list to emit. Those
|
|
9
11
|
// tags still resolve at build time; declare them by hand if the editor needs them.
|
|
10
|
-
`:"";return{source:`// GENERATED by ${
|
|
12
|
+
`:"";return{source:`// GENERATED by ${r} — do not edit.
|
|
11
13
|
//
|
|
12
14
|
// The components \`resolve\` supplies without an import. This describes what the
|
|
13
15
|
// compiler already does; it does not enable it.
|
|
14
|
-
`+
|
|
15
|
-
${
|
|
16
|
+
`+y+C+(N.length>0?`
|
|
17
|
+
${N.join(`
|
|
16
18
|
`)}
|
|
17
19
|
`:`
|
|
18
20
|
`)+`
|
|
19
21
|
declare global {
|
|
20
|
-
${
|
|
22
|
+
${v.join(`
|
|
21
23
|
`)}
|
|
22
24
|
}
|
|
23
|
-
`,declared:
|
|
24
|
-
`
|
|
25
|
-
|
|
26
|
-
`+i)}return i=Qr(i,n,t),{code:i,metadata:n}}function Yr(e){let t=new Set,n=/on([A-Z][a-z]+)/g,i;for(;(i=n.exec(e))!==null;)t.add(i[1].toLowerCase());return Array.from(t)}function Qr(e,t,n){let i=[],o=n.importSource||"@fluixi/jsx";return i.push(`import { jsx, jsxs, Fragment, spread } from '${o}';`),t.hasSignals&&i.push("import { signal } from '@fluixi/dom/reactive';"),(e.includes("<Show")||e.includes("<For")||e.includes("<Switch"))&&i.push("import { Show, For, Index, Switch, Match } from '@fluixi/dom/control-flow';"),n.delegateEvents!==!1&&i.push("import { delegateEvents } from '@fluixi/dom/runtime';"),i.join(`
|
|
27
|
-
`)+`
|
|
28
|
-
|
|
29
|
-
`+e}async function ee(e={}){let t=null;try{t=await Promise.resolve().then(()=>(pn(),cn))}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{runtime:"automatic",importSource:e.importSource||"@fluixi/jsx",pragma:e.pragma||"jsx",pragmaFrag:e.pragmaFrag||"Fragment",development:e.development||!1,detectReactivity:!0,useLitHTML:e.useLitHTML!==!1,hoistStatics:e.optimize!==!1,delegateEvents:e.delegateEvents!==!1,delegatedEvents:e.delegatedEvents||["click","input","change","submit"],optimizeControlFlow:e.optimize!==!1,sourceMaps:e.sourceMaps!==!1,backend:e.backend||"imperative",...e.codegen?{codegen:e.codegen}:{},...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 mn(e={}){let t=Te("typescript");return t?n=>{let i=o=>t.isJsxElement(o)||t.isJsxSelfClosingElement(o)?ei(o,e,t):t.visitEachChild(o,i,n);return o=>t.visitNode(o,i)}:(console.warn("TypeScript not found, transformer unavailable"),n=>i=>i)}function ei(e,t,n){return e}function Te(e){try{return require(e)}catch{return null}}function gn(e={}){return{name:"vite-fluixi-jsx",enforce:"pre",config(){return{esbuild:{jsx:"automatic",jsxImportSource:e.importSource||"@fluixi/jsx"}}},configResolved(t){let n=vt(e,t?.root??process.cwd());n.warning&&console.warn(n.warning)},async transform(t,n){let i=await ee(e);if(!/\.(jsx|tsx|ts)$/i.test(n))return null;try{let o=await import("@babel/core").catch(()=>null);if(!o)return{code:G(t,e).code,map:null};let s=/\.tsx$/.test(n),a=/\.ts$/.test(n),l=[],c=[];if(s||a){let d=await import("@babel/preset-typescript").then(u=>u.default||u).catch(()=>null);d&&l.push([d,{isTSX:s,allExtensions:!0,jsxPragma:e.pragma||"jsx",jsxPragmaFrag:e.pragmaFrag||"Fragment",onlyRemoveTypeImports:!0}])}i&&i.plugin?c.push([i.plugin,i.getOptions()]):console.warn("[createVitePlugin] custom babel plugin not found");let p=await o.transformAsync(t,{filename:n,configFile:!1,babelrc:!1,presets:l,plugins:c,sourceMaps:e.sourceMaps!==!1});return{code:p?.code||t,map:p?.map}}catch(o){console.error("Transform error:",o);try{return{code:G(t,e).code,map:null}}catch(s){return console.error("Fallback transform also failed:",s),null}}}}}function hn(e={}){return async function(t){let n=this.async(),i=Te("@babel/core"),o=await ee(e);if(!i||!o.plugin){let s=G(t,e);n(null,s.code);return}i.transformAsync(t,{filename:this.resourcePath,plugins:[[o.plugin,o.getOptions()]],sourceMaps:e.sourceMaps!==!1}).then(s=>{n(null,s?.code,s?.map)}).catch(s=>{n(s)})}}function xn(e={}){return{name:"rollup-fluixi-jsx",async transform(t,n){let i=await ee(e);if(!/\.[jt]sx$/.test(n))return null;try{let o=Te("@babel/core");if(!o||!i.plugin)return{code:G(t,e).code,map:null};let s=await o.transformAsync(t,{filename:n,plugins:[[i.plugin,i.getOptions()]],sourceMaps:e.sourceMaps!==!1});return{code:s?.code||t,map:s?.map}}catch(o){return console.error("Transform error:",o),null}}}}function En(e={}){return{name:"esbuild-fluixi-jsx",setup(t){t.onLoad({filter:/\.[jt]sx$/},async n=>{let i=Te("@babel/core"),o=await ee(e),a=require("fs").readFileSync(n.path,"utf8");try{return!i||!o.plugin?{contents:G(a,e).code,loader:"js"}:{contents:(await i.transformAsync(a,{filename:n.path,plugins:[[o.plugin,o.getOptions()]],sourceMaps:!1}))?.code||a,loader:"js"}}catch(l){return{errors:[{text:`Transform error: ${l}`}]}}})}}}var tt="virtual:fluixi-server-fns";function Sn(e,t=[]){let n;try{n=(0,$e.readdirSync)(e,{withFileTypes:!0})}catch{return t}for(let i of n){if(i.name==="node_modules"||i.name==="dist"||i.name.startsWith("."))continue;let o=(0,ct.join)(e,i.name);if(i.isDirectory())Sn(o,t);else if(/\.[jt]sx?$/.test(i.name))try{(0,$e.readFileSync)(o,"utf8").includes("use server")&&t.push(o)}catch{}}return t}function ti(){let e=process.cwd();return{name:"fluixi-server-functions",enforce:"pre",configResolved(t){e=t.root||e},resolveId(t){return t===tt?"\0"+tt:null},load(t){if(t!=="\0"+tt)return null;let n=Sn((0,ct.join)(e,"src")),i=`import '@fluixi/start/server-fn-setup';
|
|
30
|
-
`,o=n.map(a=>`import ${JSON.stringify(a)};`).join(`
|
|
31
|
-
`);return i+o+`
|
|
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+`
|
|
32
28
|
export { isServerFnRequest, handleServerFn } from '@fluixi/start/server-fn';
|
|
33
|
-
`},transform(
|
|
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};
|