@fluixi/compiler 1.0.0-alpha.78 → 1.0.0-alpha.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analyze/intrinsics.cjs +1 -1
- package/dist/analyze/intrinsics.d.ts.map +1 -1
- package/dist/analyze/intrinsics.js +0 -1
- package/dist/analyze/intrinsics.mjs +1 -1
- package/dist/analyze/reactive-bindings.cjs +1 -1
- package/dist/analyze/reactive-bindings.mjs +1 -1
- package/dist/babel-4JUDAR2G.mjs +1 -0
- package/dist/{chunk-L2QPV25P.mjs → chunk-PVR2SN3B.mjs} +1 -1
- package/dist/{chunk-SGDQZDEV.mjs → chunk-QUIYULS2.mjs} +1 -1
- package/dist/{chunk-E2PW2OZU.mjs → chunk-YR3SAEO7.mjs} +1 -1
- package/dist/frontend/babel/index.cjs +1 -1
- package/dist/frontend/babel/index.mjs +1 -1
- package/dist/frontend/babel/plugin.cjs +1 -1
- package/dist/frontend/babel/plugin.d.ts +1 -1
- package/dist/frontend/babel/plugin.d.ts.map +1 -1
- package/dist/frontend/babel/plugin.js +3 -13
- package/dist/frontend/babel/plugin.mjs +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/integrations.cjs +2 -2
- package/dist/integrations.d.ts +2 -2
- package/dist/integrations.js +1 -1
- package/dist/integrations.mjs +2 -2
- package/dist/lower/compile-template.cjs +1 -1
- package/dist/lower/compile-template.d.ts +2 -1
- package/dist/lower/compile-template.d.ts.map +1 -1
- package/dist/lower/compile-template.js +1 -1
- package/dist/lower/compile-template.mjs +1 -1
- package/dist/optimize/collapse-strategies.cjs +1 -1
- package/dist/resolve/builtins.cjs +1 -1
- package/dist/resolve/builtins.d.ts +1 -1
- package/dist/resolve/builtins.d.ts.map +1 -1
- package/dist/resolve/builtins.js +2 -2
- package/dist/resolve/builtins.mjs +1 -1
- package/dist/resolve/component-globals.cjs +1 -1
- package/dist/resolve/component-globals.mjs +1 -1
- package/dist/resolve/resolve-ir.cjs +1 -1
- package/dist/resolve/resolve-ir.mjs +1 -1
- package/dist/resolve/write-globals.cjs +1 -1
- package/dist/resolve/write-globals.mjs +1 -1
- package/dist/transform/index.cjs +5 -5
- package/dist/transform/index.mjs +7 -7
- package/dist/transform/intrinsics.cjs +1 -1
- package/dist/transform/intrinsics.mjs +1 -1
- package/dist/transform/templates.cjs +4 -4
- package/dist/transform/templates.d.ts.map +1 -1
- package/dist/transform/templates.js +2 -8
- package/dist/transform/templates.mjs +5 -5
- package/dist/transform-5WC4FWJE.mjs +8 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/package.json +9 -3
- package/dist/babel-YQ42WUS3.mjs +0 -1
- package/dist/transform-ATMT4MSA.mjs +0 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var c=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var d=(e,r)=>{for(var n in r)c(e,n,{get:r[n],enumerable:!0})},f=(e,r,n,
|
|
1
|
+
"use strict";var c=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var d=(e,r)=>{for(var n in r)c(e,n,{get:r[n],enumerable:!0})},f=(e,r,n,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of u(r))!m.call(e,o)&&o!==n&&c(e,o,{get:()=>r[o],enumerable:!(a=l(r,o))||a.enumerable});return e};var p=e=>f(c({},"__esModule",{value:!0}),e);var h={};d(h,{INTRINSICS:()=>s,PRIMITIVE_MODULES:()=>i,REACTIVE_MODULE:()=>t,RUNTIME_PRIMITIVES:()=>x,isIntrinsicName:()=>R,isPrimitiveModule:()=>v,mayHaveIntrinsic:()=>I});module.exports=p(h);var t="@fluixi/reactive/signal",s={$signal:{export:"signal",module:t,returns:"signal-handle"},$memo:{export:"memo",module:t,returns:"memo-handle"},$effect:{export:"effect",module:t,returns:"effect"},$store:{export:"store",module:"@fluixi/reactive/store",returns:"store-handle"},$resource:{export:"resource",module:t,returns:"resource-handle"},$selector:{export:"createSelector",module:t,returns:"memo-accessor"},$deferred:{export:"createDeferred",module:t,returns:"memo-accessor"},$untrack:{export:"untrack",module:t,returns:"plain"},$untrackStore:{export:"untrackStore",module:"@fluixi/reactive/store",returns:"plain"}},x={signal:"signal-handle",memo:"memo-handle",effect:"effect",store:"store-handle",createSignal:["signal-accessor","signal-setter"],createMemo:"memo-accessor",createEffect:"effect",createRenderEffect:"effect",createStore:"reactive-object",resource:"resource-handle",createResource:"reactive-object",createSelector:"memo-accessor",createDeferred:"memo-accessor"},i=["@fluixi/reactive","@fluixi/reactive/signal","@fluixi/reactive/store","@fluixi/core"],g=new RegExp(`\\$(?:${Object.keys(s).map(e=>e.slice(1)).join("|")})\\s*\\(`);function I(e){return g.test(e)}function R(e){return Object.prototype.hasOwnProperty.call(s,e)}function v(e){return i.includes(e)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intrinsics.d.ts","sourceRoot":"","sources":["../../src/analyze/intrinsics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,6DAA6D;AAC7D,MAAM,MAAM,YAAY,GACpB,OAAO;AACT,8EAA8E;GAC5E,eAAe;AACjB,gDAAgD;GAC9C,aAAa;AACf,gEAAgE;GAC9D,cAAc;AAChB,qFAAqF;GACnF,iBAAiB;AACnB,8EAA8E;GAC5E,iBAAiB,GACjB,eAAe,GACf,eAAe,GACf,QAAQ,GACR,iBAAiB,CAAC;AAEtB,MAAM,WAAW,SAAS;IACxB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,OAAO,EAAE,YAAY,GAAG,SAAS,YAAY,EAAE,CAAC;CACjD;AAED,0FAA0F;AAC1F,eAAO,MAAM,eAAe,4BAA4B,CAAC;AAEzD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAmB1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAc7E,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"intrinsics.d.ts","sourceRoot":"","sources":["../../src/analyze/intrinsics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,6DAA6D;AAC7D,MAAM,MAAM,YAAY,GACpB,OAAO;AACT,8EAA8E;GAC5E,eAAe;AACjB,gDAAgD;GAC9C,aAAa;AACf,gEAAgE;GAC9D,cAAc;AAChB,qFAAqF;GACnF,iBAAiB;AACnB,8EAA8E;GAC5E,iBAAiB,GACjB,eAAe,GACf,eAAe,GACf,QAAQ,GACR,iBAAiB,CAAC;AAEtB,MAAM,WAAW,SAAS;IACxB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,OAAO,EAAE,YAAY,GAAG,SAAS,YAAY,EAAE,CAAC;CACjD;AAED,0FAA0F;AAC1F,eAAO,MAAM,eAAe,4BAA4B,CAAC;AAEzD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAmB1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAc7E,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAK9C,CAAC;AAQF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,6DAA6D;AAC7D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var r="@fluixi/reactive/signal",t={$signal:{export:"signal",module:r,returns:"signal-handle"},$memo:{export:"memo",module:r,returns:"memo-handle"},$effect:{export:"effect",module:r,returns:"effect"},$store:{export:"store",module:"@fluixi/reactive/store",returns:"store-handle"},$resource:{export:"resource",module:r,returns:"resource-handle"},$selector:{export:"createSelector",module:r,returns:"memo-accessor"},$deferred:{export:"createDeferred",module:r,returns:"memo-accessor"},$untrack:{export:"untrack",module:r,returns:"plain"},$untrackStore:{export:"untrackStore",module:"@fluixi/reactive/store",returns:"plain"}},c={signal:"signal-handle",memo:"memo-handle",effect:"effect",store:"store-handle",createSignal:["signal-accessor","signal-setter"],createMemo:"memo-accessor",createEffect:"effect",createRenderEffect:"effect",createStore:"reactive-object",resource:"resource-handle",createResource:"reactive-object",createSelector:"memo-accessor",createDeferred:"memo-accessor"},o=["@fluixi/reactive","@fluixi/reactive/signal","@fluixi/reactive/store","@fluixi/core"
|
|
1
|
+
var r="@fluixi/reactive/signal",t={$signal:{export:"signal",module:r,returns:"signal-handle"},$memo:{export:"memo",module:r,returns:"memo-handle"},$effect:{export:"effect",module:r,returns:"effect"},$store:{export:"store",module:"@fluixi/reactive/store",returns:"store-handle"},$resource:{export:"resource",module:r,returns:"resource-handle"},$selector:{export:"createSelector",module:r,returns:"memo-accessor"},$deferred:{export:"createDeferred",module:r,returns:"memo-accessor"},$untrack:{export:"untrack",module:r,returns:"plain"},$untrackStore:{export:"untrackStore",module:"@fluixi/reactive/store",returns:"plain"}},c={signal:"signal-handle",memo:"memo-handle",effect:"effect",store:"store-handle",createSignal:["signal-accessor","signal-setter"],createMemo:"memo-accessor",createEffect:"effect",createRenderEffect:"effect",createStore:"reactive-object",resource:"resource-handle",createResource:"reactive-object",createSelector:"memo-accessor",createDeferred:"memo-accessor"},o=["@fluixi/reactive","@fluixi/reactive/signal","@fluixi/reactive/store","@fluixi/core"],n=new RegExp(`\\$(?:${Object.keys(t).map(e=>e.slice(1)).join("|")})\\s*\\(`);function s(e){return n.test(e)}function a(e){return Object.prototype.hasOwnProperty.call(t,e)}function i(e){return o.includes(e)}export{t as INTRINSICS,o as PRIMITIVE_MODULES,r as REACTIVE_MODULE,c as RUNTIME_PRIMITIVES,a as isIntrinsicName,i as isPrimitiveModule,s as mayHaveIntrinsic};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var f=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var N=Object.prototype.hasOwnProperty;var I=(r,e)=>{for(var n in e)f(r,n,{get:e[n],enumerable:!0})},
|
|
1
|
+
"use strict";var f=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var N=Object.prototype.hasOwnProperty;var I=(r,e)=>{for(var n in e)f(r,n,{get:e[n],enumerable:!0})},v=(r,e,n,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of y(e))!N.call(r,i)&&i!==n&&f(r,i,{get:()=>e[i],enumerable:!(t=g(e,i))||t.enumerable});return r};var x=r=>v(f({},"__esModule",{value:!0}),r);var b={};I(b,{declaredNames:()=>E,resolveReactiveBindings:()=>w});module.exports=x(b);var o="@fluixi/reactive/signal",l={$signal:{export:"signal",module:o,returns:"signal-handle"},$memo:{export:"memo",module:o,returns:"memo-handle"},$effect:{export:"effect",module:o,returns:"effect"},$store:{export:"store",module:"@fluixi/reactive/store",returns:"store-handle"},$resource:{export:"resource",module:o,returns:"resource-handle"},$selector:{export:"createSelector",module:o,returns:"memo-accessor"},$deferred:{export:"createDeferred",module:o,returns:"memo-accessor"},$untrack:{export:"untrack",module:o,returns:"plain"},$untrackStore:{export:"untrackStore",module:"@fluixi/reactive/store",returns:"plain"}},p={signal:"signal-handle",memo:"memo-handle",effect:"effect",store:"store-handle",createSignal:["signal-accessor","signal-setter"],createMemo:"memo-accessor",createEffect:"effect",createRenderEffect:"effect",createStore:"reactive-object",resource:"resource-handle",createResource:"reactive-object",createSelector:"memo-accessor",createDeferred:"memo-accessor"},R=["@fluixi/reactive","@fluixi/reactive/signal","@fluixi/reactive/store","@fluixi/core"],D=new RegExp(`\\$(?:${Object.keys(l).map(r=>r.slice(1)).join("|")})\\s*\\(`);function d(r){return R.includes(r)}function s(r,e){if(r)switch(r.type){case"Identifier":e.add(r.name);return;case"ObjectPattern":for(let n of r.properties??[])n.type==="RestElement"?s(n.argument,e):s(n.value,e);return;case"ArrayPattern":for(let n of r.elements??[])s(n,e);return;case"AssignmentPattern":s(r.left,e);return;case"RestElement":s(r.argument,e);return}}function c(r,e){if(!(!r||typeof r!="object"||typeof r.type!="string")){e(r);for(let n of Object.keys(r)){if(n==="loc"||n==="leadingComments"||n==="trailingComments")continue;let t=r[n];if(Array.isArray(t))for(let i of t)c(i,e);else t&&typeof t=="object"&&c(t,e)}}}function S(r,e){if(r.type!=="CallExpression")return;let n=r.callee;if(n?.type!=="Identifier")return;let t=n.name,i=e.primitives.get(t);if(i)return i;let a=l[t];if(a&&!e.shadowed.has(t))return a.returns}function h(r,e,n){if(Array.isArray(e)){r.type==="ArrayPattern"&&r.elements.forEach((t,i)=>{let a=e[i];t?.type==="Identifier"&&a&&n.set(t.name,a)});return}r.type==="Identifier"&&n.set(r.name,e)}function E(r){let e=new Set;return c(r,n=>{switch(n.type){case"VariableDeclarator":s(n.id,e);return;case"FunctionDeclaration":case"FunctionExpression":case"ArrowFunctionExpression":s(n.id,e);for(let t of n.params??[])s(t,e);return;case"ClassDeclaration":case"ClassExpression":s(n.id,e);return;case"ImportSpecifier":case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":s(n.local,e);return;case"CatchClause":s(n.param,e);return}}),e}function w(r){let e={kinds:new Map,primitives:new Map,shadowed:new Set},n=r;c(n,t=>{let i=new Set;if(t.type==="VariableDeclarator")s(t.id,i);else if(t.type==="FunctionDeclaration"||t.type==="ClassDeclaration")s(t.id,i);else if(t.type==="ImportDefaultSpecifier"||t.type==="ImportNamespaceSpecifier")s(t.local,i);else if(t.type==="ImportSpecifier")s(t.local,i);else if(t.type==="FunctionExpression"||t.type==="ArrowFunctionExpression"||t.type==="FunctionDeclaration")for(let a of t.params??[])s(a,i);for(let a of i)l[a]&&e.shadowed.add(a)});for(let t of n.body??[])if(t.type==="ImportDeclaration"&&d(t.source?.value))for(let i of t.specifiers??[]){if(i.type!=="ImportSpecifier")continue;let a=i.imported,m=a.type==="Identifier"?a.name:a.value,u=p[m];u&&e.primitives.set(i.local.name,u)}return c(n,t=>{if(t.type!=="VariableDeclarator"||!t.init)return;let i=S(t.init,e);i&&h(t.id,i,e.kinds)}),e}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var o="@fluixi/reactive/signal",l={$signal:{export:"signal",module:o,returns:"signal-handle"},$memo:{export:"memo",module:o,returns:"memo-handle"},$effect:{export:"effect",module:o,returns:"effect"},$store:{export:"store",module:"@fluixi/reactive/store",returns:"store-handle"},$resource:{export:"resource",module:o,returns:"resource-handle"},$selector:{export:"createSelector",module:o,returns:"memo-accessor"},$deferred:{export:"createDeferred",module:o,returns:"memo-accessor"},$untrack:{export:"untrack",module:o,returns:"plain"},$untrackStore:{export:"untrackStore",module:"@fluixi/reactive/store",returns:"plain"}},u={signal:"signal-handle",memo:"memo-handle",effect:"effect",store:"store-handle",createSignal:["signal-accessor","signal-setter"],createMemo:"memo-accessor",createEffect:"effect",createRenderEffect:"effect",createStore:"reactive-object",resource:"resource-handle",createResource:"reactive-object",createSelector:"memo-accessor",createDeferred:"memo-accessor"},m=["@fluixi/reactive","@fluixi/reactive/signal","@fluixi/reactive/store","@fluixi/core"
|
|
1
|
+
var o="@fluixi/reactive/signal",l={$signal:{export:"signal",module:o,returns:"signal-handle"},$memo:{export:"memo",module:o,returns:"memo-handle"},$effect:{export:"effect",module:o,returns:"effect"},$store:{export:"store",module:"@fluixi/reactive/store",returns:"store-handle"},$resource:{export:"resource",module:o,returns:"resource-handle"},$selector:{export:"createSelector",module:o,returns:"memo-accessor"},$deferred:{export:"createDeferred",module:o,returns:"memo-accessor"},$untrack:{export:"untrack",module:o,returns:"plain"},$untrackStore:{export:"untrackStore",module:"@fluixi/reactive/store",returns:"plain"}},u={signal:"signal-handle",memo:"memo-handle",effect:"effect",store:"store-handle",createSignal:["signal-accessor","signal-setter"],createMemo:"memo-accessor",createEffect:"effect",createRenderEffect:"effect",createStore:"reactive-object",resource:"resource-handle",createResource:"reactive-object",createSelector:"memo-accessor",createDeferred:"memo-accessor"},m=["@fluixi/reactive","@fluixi/reactive/signal","@fluixi/reactive/store","@fluixi/core"],N=new RegExp(`\\$(?:${Object.keys(l).map(r=>r.slice(1)).join("|")})\\s*\\(`);function p(r){return m.includes(r)}function s(r,t){if(r)switch(r.type){case"Identifier":t.add(r.name);return;case"ObjectPattern":for(let n of r.properties??[])n.type==="RestElement"?s(n.argument,t):s(n.value,t);return;case"ArrayPattern":for(let n of r.elements??[])s(n,t);return;case"AssignmentPattern":s(r.left,t);return;case"RestElement":s(r.argument,t);return}}function c(r,t){if(!(!r||typeof r!="object"||typeof r.type!="string")){t(r);for(let n of Object.keys(r)){if(n==="loc"||n==="leadingComments"||n==="trailingComments")continue;let e=r[n];if(Array.isArray(e))for(let i of e)c(i,t);else e&&typeof e=="object"&&c(e,t)}}}function g(r,t){if(r.type!=="CallExpression")return;let n=r.callee;if(n?.type!=="Identifier")return;let e=n.name,i=t.primitives.get(e);if(i)return i;let a=l[e];if(a&&!t.shadowed.has(e))return a.returns}function y(r,t,n){if(Array.isArray(t)){r.type==="ArrayPattern"&&r.elements.forEach((e,i)=>{let a=t[i];e?.type==="Identifier"&&a&&n.set(e.name,a)});return}r.type==="Identifier"&&n.set(r.name,t)}function x(r){let t=new Set;return c(r,n=>{switch(n.type){case"VariableDeclarator":s(n.id,t);return;case"FunctionDeclaration":case"FunctionExpression":case"ArrowFunctionExpression":s(n.id,t);for(let e of n.params??[])s(e,t);return;case"ClassDeclaration":case"ClassExpression":s(n.id,t);return;case"ImportSpecifier":case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":s(n.local,t);return;case"CatchClause":s(n.param,t);return}}),t}function R(r){let t={kinds:new Map,primitives:new Map,shadowed:new Set},n=r;c(n,e=>{let i=new Set;if(e.type==="VariableDeclarator")s(e.id,i);else if(e.type==="FunctionDeclaration"||e.type==="ClassDeclaration")s(e.id,i);else if(e.type==="ImportDefaultSpecifier"||e.type==="ImportNamespaceSpecifier")s(e.local,i);else if(e.type==="ImportSpecifier")s(e.local,i);else if(e.type==="FunctionExpression"||e.type==="ArrowFunctionExpression"||e.type==="FunctionDeclaration")for(let a of e.params??[])s(a,i);for(let a of i)l[a]&&t.shadowed.add(a)});for(let e of n.body??[])if(e.type==="ImportDeclaration"&&p(e.source?.value))for(let i of e.specifiers??[]){if(i.type!=="ImportSpecifier")continue;let a=i.imported,d=a.type==="Identifier"?a.name:a.value,f=u[d];f&&t.primitives.set(i.local.name,f)}return c(n,e=>{if(e.type!=="VariableDeclarator"||!e.init)return;let i=g(e.init,t);i&&y(e.id,i,t.kinds)}),t}export{x as declaredNames,R as resolveReactiveBindings};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as B,b as L,c as F,d as j,e as C,f as $,g as V,h as W,i as G,j as U}from"./chunk-PVR2SN3B.mjs";import{a as _,c as A,d as z}from"./chunk-YR3SAEO7.mjs";import"./chunk-3SAEGOMQ.mjs";import{declare as ge}from"@babel/helper-plugin-utils";import{types as t,template as oe}from"@babel/core";import{types as w,traverse as me,template as de}from"@babel/core";import K from"@babel/generator";import{types as D}from"@babel/core";import Y from"@babel/generator";var ae=Y.default??Y;function le(e){return ae(e,{concise:!0}).code}function pe(e,o,r){let i={code:k(e,o,r),reactive:J(e)};if(D.isArrowFunctionExpression(e)&&!D.isBlockStatement(e.body)){let n=e.body;i.arrow={params:e.params.map(c=>le(c)),body:k(n,o,r),bodyReactive:J(n)}}return D.isObjectExpression(e)&&(i.object=!0),i}function q(e,o,r={}){let i=e.quasi,n=i.expressions.map(c=>pe(c,o,r.onNested));return $(ce(i),n,o,r)}function ce(e){let o=[];return e.quasis.forEach((r,i)=>{let n=r.value.cooked??r.value.raw;if(o.push({kind:"static",text:n,start:r.start??0}),i<e.expressions.length){let c=e.expressions[i];o.push({kind:"hole",index:i,start:c.start??0,end:c.end??0})}}),o}function O(e,o=new Set,r={}){let i=q(e,o,r);return V(i),i}var fe=K.default??K;function Z(e){return fe(e,{concise:!0}).code}function ue(e,o,r){let i=w.cloneNode(e,!0),n=w.file(w.program([w.expressionStatement(i)])),c=!1,l=(a,m,g)=>{for(let h of g)o.add(h);a.replaceWith(de.expression(m,{placeholderPattern:!1,plugins:["typescript"]})()),a.skip(),c=!0};return me(n,{"JSXElement|JSXFragment"(a){let m=a.node,g=X(m,o,r);r?.(g);let{code:h,imports:R,templates:E}=C.emit(g,{});l(a,j(h,E),R)},TaggedTemplateExpression(a){let m=a.node.tag;if(!w.isIdentifier(m)||m.name!=="html"&&m.name!=="svg")return;let g=O(a.node,o,{svg:m.name==="svg",onNested:r});r?.(g);let{code:h,imports:R,templates:E}=C.emit(g,{});l(a,j(h,E),R)}}),c?n.program.body[0].expression:e}function k(e,o,r){return Z(ue(e,o,r))}function J(e){return W(G(e))}function X(e,o=new Set,r){return U(e,{code:n=>n.type==="JSXMemberExpression"?Z(n):k(n,o,r),used:o})}var Q=new Set(A),ee=new Set(z),I=ge((e,o={})=>{e.assertVersion(7);let{delegateEvents:r=!0,signalModule:i="@fluixi/dom",controlFlowModule:n="@fluixi/dom",routerModule:c="@fluixi/core/router",reactiveModule:l="@fluixi/reactive/signal",templateClone:a=!0,partialTemplates:m=!0,format:g="both",litTag:h="html",resolve:R=[]}=o,E=_(R),ie=g==="lit"||g==="both",se={irImports:new Set,libModule:"@fluixi/core",controlFlowModule:n,routerModule:c,templateClone:a,partialTemplates:m,hasJSX:!1,hasLitHTML:!1,needsControlFlowImport:!1,needsCreateMemo:!1,controlFlowComponents:new Set,resolvedComponents:new Map,deferredComponents:new Map,componentResolver:E,delegatedEvents:new Set,staticTemplates:new Map,staticCounter:0};return{name:"@fluixi/babel-plugin-jsx",manipulateOptions(p,s){s.plugins.push("jsx","typescript")},pre(p){Object.assign(p,se)},visitor:{Program:{enter(p,s){Object.assign(s,{hasJSX:!1,hasLitHTML:!1,hasLitIR:!1,needsControlFlowImport:!1,needsCreateMemo:!1,controlFlowComponents:new Set,resolvedComponents:new Map,deferredComponents:new Map,componentResolver:E,delegatedEvents:new Set,staticTemplates:new Map,staticCounter:0,libModule:"@fluixi/core",controlFlowModule:n,routerModule:c,templateClone:a,partialTemplates:m,irImports:new Set,needsCreateNativeElement:!1,needsInsert:!1,needsSpread:!1,needsCreateComponent:!1,needsMergeProps:!1})},exit(p,s){let b=[];if(s.hasJSX||s.hasLitIR){if(s.irImports.size>0){let f=new Set(["Show","For","Index","Switch","Match","Dynamic","ErrorBoundary","Portal","Suspense"]),d=new Set(["createMemo","createEffect","createRenderEffect","createRoot","createSignal","onCleanup","batch","untrack"]),y=Array.from(s.irImports),v=u=>t.importSpecifier(t.identifier(u),t.identifier(u)),x=u=>!p.scope.hasBinding(u),M=y.filter(u=>d.has(u)&&x(u)),S=y.filter(u=>!f.has(u)&&!d.has(u)&&x(u)),T=y.filter(u=>f.has(u)&&x(u));M.length>0&&b.push(t.importDeclaration(M.map(v),t.stringLiteral(l))),S.length>0&&b.push(t.importDeclaration(S.map(v),t.stringLiteral(i))),T.length>0&&b.push(t.importDeclaration(T.map(v),t.stringLiteral(n)))}if(s.needsCreateMemo&&!p.scope.hasBinding("createMemo")&&b.push(t.importDeclaration([t.importSpecifier(t.identifier("createMemo"),t.identifier("createMemo"))],t.stringLiteral(l))),s.needsControlFlowImport&&s.controlFlowComponents.size>0){let f=Array.from(s.controlFlowComponents).filter(S=>!p.scope.hasBinding(S)),d=s.libModule??"@fluixi/core",y=f.filter(S=>ee.has(S)),v=f.filter(S=>Q.has(S)),x=f.filter(S=>!Q.has(S)&&!ee.has(S)),M=(S,T)=>t.importDeclaration(S.map(u=>t.importSpecifier(t.identifier(u),t.identifier(u))),t.stringLiteral(T));x.length>0&&b.push(M(x,n)),v.length>0&&b.push(M(v,d)),y.length>0&&b.push(M(y,c))}let N=[];if(s.deferredComponents.size>0){for(let[f,d]of s.deferredComponents)p.scope.hasBinding(f)||N.push(t.variableDeclaration("const",[t.variableDeclarator(t.identifier(f),t.callExpression(t.identifier("deferred"),[t.arrowFunctionExpression([],t.callExpression(t.import(),[t.stringLiteral(d.module)])),t.objectExpression([t.objectProperty(t.identifier("strategy"),ye(d.strategy)),t.objectProperty(t.identifier("export"),t.stringLiteral(d.export))])]))]));N.length>0&&!p.scope.hasBinding("deferred")&&b.push(t.importDeclaration([t.importSpecifier(t.identifier("deferred"),t.identifier("deferred"))],t.stringLiteral(s.libModule??"@fluixi/core")))}if(s.resolvedComponents.size>0){let f=new Map;for(let[d,y]of s.resolvedComponents){if(p.scope.hasBinding(d))continue;let v=f.get(y.module)??[];v.push({local:d,exported:y.export}),f.set(y.module,v)}for(let[d,y]of f)b.push(t.importDeclaration(y.map(({local:v,exported:x})=>x==="default"?t.importDefaultSpecifier(t.identifier(v)):t.importSpecifier(t.identifier(v),t.identifier(x))),t.stringLiteral(d)))}if(r&&s.delegatedEvents.size>0){b.push(t.importDeclaration([t.importSpecifier(t.identifier("delegateEvents"),t.identifier("delegateEvents"))],t.stringLiteral(i)));let f=t.arrayExpression(Array.from(s.delegatedEvents).map(y=>t.stringLiteral(y))),d=t.expressionStatement(t.callExpression(t.identifier("delegateEvents"),[f]));p.node.body.unshift(d)}if(N.length>0&&p.node.body.unshift(...N),s.staticTemplates.size>0){let f=[];for(let[d,y]of s.staticTemplates){let x=d.startsWith("svg:")?d.slice(4):d;f.push(t.variableDeclaration("const",[t.variableDeclarator(t.identifier(y),t.stringLiteral(x))]))}p.node.body.unshift(...f)}}b.length>0&&p.node.body.unshift(...ve(b))}},JSXElement(p,s){s.hasJSX=!0,p.replaceWith(te(p.node,s))},JSXFragment(p,s){s.hasJSX=!0,p.replaceWith(te(p.node,s))},TaggedTemplateExpression(p,s){ie&&t.isIdentifier(p.node.tag)&&(p.node.tag.name===h||p.node.tag.name==="svg")&&p.replaceWith(Se(p.node,s))}}}});function re(e){return o=>{L(o,{resolver:e.componentResolver,modules:{controlFlowModule:e.controlFlowModule,coreModule:e.libModule,routerModule:e.routerModule},strategyFor:r=>r.load}),F(o),P(o,e)}}function ye(e){let o=[t.objectProperty(t.identifier("kind"),t.stringLiteral(e.kind))];return e.kind==="visible"&&e.rootMargin&&o.push(t.objectProperty(t.identifier("rootMargin"),t.stringLiteral(e.rootMargin))),e.kind==="interaction"&&o.push(t.objectProperty(t.identifier("events"),t.arrayExpression(e.events.map(r=>t.stringLiteral(r))))),e.kind==="media"&&o.push(t.objectProperty(t.identifier("query"),t.stringLiteral(e.query))),t.objectExpression(o)}function ne(e,o,r){if(!o||o.length===0)return e;let i=new Map;for(let n of o){let c=`${n.svg?"svg:":""}${n.html}`,l=r.staticTemplates.get(c);l||(l=`_tmpl$${r.staticTemplates.size}`,r.staticTemplates.set(c,l)),i.set(n.id,l)}return e.replace(/_tmpl\$\d+/g,n=>i.get(n)??n)}function te(e,o){let r=new Set,i=X(e,r,re(o));L(i,{resolver:o.componentResolver,modules:{controlFlowModule:o.controlFlowModule,coreModule:o.libModule,routerModule:o.routerModule},strategyFor:m=>m.load}),F(i);let{code:n,imports:c,templates:l}=C.emit(i,{templateClone:o.templateClone,partialTemplates:o.partialTemplates});for(let m of c)r.add(m);for(let m of r)o.irImports.add(m);P(i,o);let a=ne(n,l,o);return oe.expression(a,{placeholderPattern:!1,plugins:["typescript"]})()}function ve(e){let o=new Map,r=[];for(let i of e){let n=i.source.value;if(!i.specifiers.every(a=>t.isImportSpecifier(a))){r.push(i);continue}let l=o.get(n);if(!l){let a=new Set(i.specifiers.map(m=>m.local.name));o.set(n,{decl:i,names:a}),r.push(i);continue}for(let a of i.specifiers)l.names.has(a.local.name)||(l.names.add(a.local.name),l.decl.specifiers.push(a))}return r}function Se(e,o){let r=new Set,i=t.isIdentifier(e.tag)&&e.tag.name==="svg",n=O(e,r,{svg:i,onNested:re(o)});L(n,{resolver:o.componentResolver,modules:{controlFlowModule:o.controlFlowModule,coreModule:o.libModule,routerModule:o.routerModule},strategyFor:g=>g.load}),F(n);let{code:c,imports:l,templates:a}=C.emit(n,{templateClone:o.templateClone,partialTemplates:o.partialTemplates});for(let g of l)r.add(g);for(let g of r)o.irImports.add(g);P(n,o),o.hasLitIR=!0;let m=oe.expression(ne(c,a,o),{placeholderPattern:!1,plugins:["typescript"]})();return be(m,e),m}function be(e,o){if(!o.loc)return;let r=new Set,i=n=>{if(!r.has(n)){r.add(n),n.loc||(n.loc=o.loc,n.start=o.start,n.end=o.end);for(let c of t.VISITOR_KEYS[n.type]??[]){let l=n[c];if(Array.isArray(l))for(let a of l)a&&typeof a=="object"&&"type"in a&&i(a);else l&&typeof l=="object"&&"type"in l&&i(l)}}};i(e)}function P(e,o){if(e.kind==="component"&&e.source&&(e.source.origin==="builtin"?(o.controlFlowComponents.add(e.name),o.needsControlFlowImport=!0):B(e.source.loading)&&!o.resolvedComponents.has(e.name)?o.deferredComponents.set(e.name,{module:e.source.module,export:e.source.export,strategy:e.source.loading}):(o.deferredComponents.delete(e.name),o.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 r of e.props)r.kind==="event"&&r.event?.delegated&&o.delegatedEvents.add(r.event.name);if("children"in e&&e.children)for(let r of e.children)P(r,o)}var Ue=I;function Ye(e){return[I,e]}function H(e={}){return{plugins:[[I,{runtime:"automatic",importSource:"@fluixi/jsx",development:!1,detectReactivity:!0,useLitHTML:!0,hoistStatics:!0,delegateEvents:!0,optimizeControlFlow:!0,sourceMaps:!0,...e}]]}}var qe={production:H({development:!1,hoistStatics:!0,delegateEvents:!0,optimizeControlFlow:!0}),development:H({development:!0,hoistStatics:!1,sourceMaps:!0}),minimal:H({detectReactivity:!1,useLitHTML:!1,hoistStatics:!1,delegateEvents:!1,optimizeControlFlow:!1})};export{Ue as babelPluginReactiveJSX,Ye as createPlugin,H as createPreset,I as default,qe as presets};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as M,e as $,f as _}from"./chunk-E2PW2OZU.mjs";var le=new Set(["CallExpression","OptionalCallExpression"]),ce=new Set(["MemberExpression","OptionalMemberExpression"]);function w(e){if(!e)return{kind:"opaque"};if(le.has(e.type))return{kind:"call"};if(ce.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(h)}:e.type==="LogicalExpression"||e.type==="BinaryExpression"?{kind:"compound",parts:[e.left,e.right].map(h)}:e.type==="TemplateLiteral"?{kind:"compound",parts:e.expressions.map(h)}:e.type==="ObjectExpression"?{kind:"compound",parts:e.properties.filter(n=>(n.type==="ObjectProperty"||n.type==="Property")&&n.computed!==!0).map(n=>h(n.value))}:e.type==="ArrayExpression"?{kind:"compound",parts:e.elements.filter(n=>n!=null&&n.type!=="SpreadElement").map(h)}:{kind:"opaque"}}var h=e=>w(e);var y={kind:"eager"},pe=["pointerdown","focusin","keydown"],B=new Set(["eager","idle","visible","interaction","media","never"]),m=class extends Error{};function C(e){return e.startsWith("load:")}function E(e,t){let n=e.slice(5);if(!B.has(n))throw new m(`Unknown load strategy 'load:${n}'. Expected one of ${[...B].join(", ")}.`);switch(n){case"eager":return y;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?de(t):[...pe]};case"media":if(!t)throw new m(`'load:media' needs a query, e.g. load:media="(min-width: 1024px)".`);return{kind:"media",query:t};default:throw new m(`Unhandled load strategy '${n}'.`)}}function de(e){let t=e.split(/[\s,]+/).map(n=>n.trim()).filter(Boolean);if(t.length===0)throw new m("'load:interaction' was given no event names.");return t}function X(e){return e.kind!=="eager"&&e.kind!=="never"}function Ve(e,t={}){let{resolver:n,isBound:r,modules:i,strategyFor:o}=t,s=_(i),a=new Map,l=new Set,c=p=>{let{name:u}=p;if(!u||u.includes(".")||r?.(u))return;let f=d(u);if(!f){l.add(u);return}let N=f.origin==="builtin"&&$.has(u)?y:o?.(p)??y;p.source={...f,loading:N},a.set(u,p.source)},d=p=>{if($.has(p))return{module:s[p],export:p,origin:"builtin"};let u=n?.resolve(p);if(u)return{module:u.module,export:u.export,origin:"rule"};if(M.includes(p))return{module:s[p],export:p,origin:"builtin"}};return I(e,p=>{p.kind==="component"&&c(p)}),{resolved:a,unresolved:[...l]}}function I(e,t){let n=Array.isArray(e)?e:[e];for(let r of n){t(r);let i=r.children;i&&I(i,t)}}function Ge(e){let t=[];I(e,o=>{o.kind==="component"&&o.source&&t.push(o)});let n=new Set,r=new Set;for(let o of t){let{module:s,loading:a}=o.source;a.kind==="eager"&&n.add(s),a.kind==="never"&&r.add(s)}let i=new Map;for(let o of t){let s=o.source;X(s.loading)&&n.has(s.module)&&(s.loading={kind:"eager"},i.set(s.module,(i.get(s.module)??0)+1))}return{collapsed:i,conflicted:[...r].filter(o=>n.has(o))}}var ue=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),H={className:"class",htmlFor:"for"},fe=new Set(["innerHTML","outerHTML","innerText","textContent","value","checked","selected","muted","defaultValue","defaultChecked","children","ref"]),me=new Set(["script","style","textarea","title"]);function T(e){return me.has(e)}function z(e){return H[e]??e}function g(e){return e.kind!=="attr"||e.expr!==void 0||e.name.includes(":")?!1:!fe.has(e.name)}function P(e){if(!e.static||T(e.tag))return!1;for(let t of e.props)if(!g(t))return!1;for(let t of e.children)if(t.kind!=="text"&&!(t.kind==="element"&&P(t)))return!1;return!0}function v(e){let t=e.props.map(ge).filter(Boolean).join(""),n=`<${e.tag}${t}>`;return ue.has(e.tag)?n:`${n}${e.children.map(he).join("")}</${e.tag}>`}function he(e){if(e.kind==="text")return ke(e.value);if(e.kind!=="element")throw new Error(`serializeStatic: unexpected ${e.kind}`);return v(e)}function ge(e){let t=H[e.name]??e.name,n=e.literal;return n===!0||n===void 0?` ${t}`:n===!1||n===null?"":` ${t}="${ve(String(n))}"`}function ve(e){return e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function ke(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}var Re="<!--fx-->",xe="<!--fx/-->";function S(e){return e.kind==="expr"||e.kind==="component"||e.kind==="control"}function Ne(e){return e.kind==="text"||e.kind==="element"&&F(e)}function F(e){return e.svg||T(e.tag)||!e.props.every(t=>g(t))?!1:e.children.every(t=>Ne(t)||S(t))}function b(e){if(S(e))return!0;let t=e.children;return t?t.some(b):!1}function V(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"||V(t))}function q(e){if(!F(e)||!V(e)||!e.children.some(b))return null;let t=[],n=[],r=0,i=s=>{let a=`_n$${r++}`;return t.push({ref:a,expr:s}),a};return o(e,"_el$"),{html:ye(e),tag:e.tag,steps:t,holes:n};function o(s,a){let l=-1;s.children.forEach((d,p)=>{b(d)&&(l=p)});let c=null;for(let d=0;d<=l;d++){let p=s.children[d],u=c?`${c}.nextSibling`:`${a}.firstChild`;if(S(p)){let N=i(u),j=i(`holeEnd(${N})`);n.push({parentRef:a,startRef:N,endRef:j,node:p}),c=j;continue}let f=i(u);p.kind==="element"&&b(p)&&o(p,f),c=f}}}function ye(e){return v(U(e)).split(W).join(Re+xe)}function U(e){return{...e,children:e.children.map(t=>S(t)?{kind:"text",value:W}:t.kind==="element"?U(t):t)}}var W="\0fx-hole\0";var A={version:1,module:"@fluixi/dom",symbols:["createNativeElement","insert","spread","setAttribute","delegateEvents","createComponent","createMemo","untrack","Show","For","Index","Switch","Match","Dynamic","ErrorBoundary"]},et={version:2,module:"@fluixi/dom",symbols:[...A.symbols,"template","cloneTemplate","walk"]};var Ee={show:"Show",for:"For",index:"Index",switch:"Switch",match:"Match",dynamic:"Dynamic",errorBoundary:"ErrorBoundary",suspense:"Suspense"};function Ie(e){return/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(e)}function K(e){return Ie(e)?e:JSON.stringify(e)}function be(e){return e.expr!==void 0?e.reactive?`() => (${e.expr})`:`(${e.expr})`:JSON.stringify(e.literal??!0)}function Se(e){return e.expr!==void 0?`(${e.expr})`:JSON.stringify(e.literal??!0)}function $e(e,t,n){let r=e.filter(a=>a.kind==="spread"),o=e.filter(a=>a.kind!=="spread").map(a=>`${K(a.name)}: ${be(a)}`);t!=null&&o.push(`children: ${t}`);let s=`{ ${o.join(", ")} }`;return r.length>0?(n.add("mergeProps"),`mergeProps(${r.map(a=>a.expr).join(", ")}, ${s})`):s}function Z(e,t,n){return e.length===1?k(e[0],t,n):`[${e.map(r=>k(r,t,n)).join(", ")}]`}function G(e,t,n,r,i){r.add("createMemo"),r.add("createComponent");let o=t.filter(c=>c.kind==="spread"),a=t.filter(c=>c.kind!=="spread").map(c=>`get ${K(c.name)}() { return ${Se(c)}; }`);n.length>0&&a.push(`get children() { return ${Z(n,r,i)}; }`);let l=`{ ${a.join(", ")} }`;return o.length>0&&(r.add("mergeProps"),l=`mergeProps(${o.map(c=>c.expr).join(", ")}, ${l})`),`createMemo(() => createComponent(${e}, ${l}))`}function we(e,t){let n=z(t.name),r=t.literal;return r===!0||r===void 0?`${e}.setAttribute(${JSON.stringify(n)}, "");`:r===!1||r===null?"":`${e}.setAttribute(${JSON.stringify(n)}, ${JSON.stringify(String(r))});`}var Y=!1;function k(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":Z(e.children,t,n);case"component":return G(e.name,e.props,e.children,t,n);case"control":{let r=Ee[e.control]??e.control;return t.add(r),G(r,e.props,e.children,t,n)}case"element":{if(n&&e.static&&!e.svg&&P(e)){t.add("templateNode");let a=`_tmpl$${n.length}`;return n.push({id:a,html:v(e),tag:e.tag,svg:!1}),`templateNode(${a}, ${JSON.stringify(e.tag)})`}if(n&&Y){let a=q(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 d of a.steps)c.push(`const ${d.ref} = ${d.expr};`);for(let d of a.holes)c.push(`insert(${d.parentRef}, holeScope(${d.startRef}, () => (${k(d.node,t,n)})), ${d.endRef}, holeContent(${d.startRef}, ${d.endRef}));`);return c.push("return _el$;"),`(() => { ${c.join(" ")} })()`}}t.add("createNativeElement");let r=JSON.stringify(e.tag),i="_el$",o=[],s=e.svg?`${r}, true`:r;if(o.push(`const ${i} = createNativeElement(${s});`),e.props.length>0)if(!e.svg&&e.props.every(g))for(let a of e.props)o.push(we(i,a));else{t.add("spread");let a=e.svg?", isSVG: true":"";o.push(`spread({ element: ${i}, props: ${$e(e.props,null,t)}${a} });`)}for(let a of e.children){t.add("insert");let l=k(a,t,n),c=a.kind==="expr"&&a.reactive||a.kind==="component"||a.kind==="control";o.push(c?`insert(${i}, ${l}, null);`:`insert(${i}, ${l});`)}return o.push(`return ${i};`),`(() => { ${o.join(" ")} })()`}}}function Q(e,t){if(!t||t.length===0)return e;let n=new Map(t.map(r=>[r.id,JSON.stringify(r.html)]));return e.replace(/_tmpl\$\d+/g,r=>n.get(r)??r)}var ee={name:"imperative",contract:A,emit(e,t){let n=new Set,r=t?.templateClone!==!1?[]:void 0;return Y=t?.partialTemplates===!0,{code:k(e,n,r),imports:Array.from(n),templates:r}}};function Ce(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 te(e){let t=[],n=new Map,r=i=>{switch(i.kind){case"text":return!0;case"expr":return!1;case"component":case"control":for(let o of i.children)r(o);return!1;case"fragment":for(let o of i.children)r(o);return!1;case"element":{let o=!0;for(let a of i.children)r(a)||(o=!1);let s;for(let a of i.props)if(s=Ce(a),s)break;return!s&&!o&&(s=Te(i)),i.static=!s,s?n.set(i,s):t.push(i),i.static}default:return!1}};for(let i of Array.isArray(e)?e:[e])r(i);return{staticElements:t,reasons:n}}function Te(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 Pe="children";function L(e){switch(e.kind){case"call":return!0;case"member":return e.property!==Pe;case"compound":return e.parts.some(L);case"opaque":return!1}}function R(e){let t=e.split(/\r\n|\n|\r/),n=0;for(let i=0;i<t.length;i++)/[^ \t]/.test(t[i])&&(n=i);let r="";for(let i=0;i<t.length;i++){let o=t[i].replace(/\t/g," ");i!==0&&(o=o.replace(/^ +/,"")),i!==t.length-1&&(o=o.replace(/ +$/,"")),o&&(i!==n&&(o+=" "),r+=o)}return r}var Ae=new Set(["svg","path","circle","rect","line","polygon","polyline","ellipse","g","defs","clipPath","text"]),Le=/^on[A-Z]/,Oe=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]),ie=e=>L(w(e));function x(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}var O=e=>!!e&&typeof x(e)=="string";function Je(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 J(e){return e.type==="JSXIdentifier"?e.name==="class"?"className":e.name:e.type==="JSXNamespacedName"?`${e.namespace.name}:${e.name.name}`:"unknown"}function De(e,t){let n=J(e.name),r=Le.test(n),i=r||n.startsWith("on:")||n==="ref",s={name:n,kind:r?"event":"attr"};if(r){let l=n.slice(2).toLowerCase();s.event={name:l,delegated:Oe.has(l)}}let a=e.value;if(a==null)return s.literal=!0,s;if(O(a))return s.literal=x(a),s;if(a.type==="JSXExpressionContainer"&&a.expression?.type!=="JSXEmptyExpression"){let l=a.expression,c=x(l);return c!==void 0?(s.literal=c,s):(s.expr=t.code(l),s.reactive=i?!1:ie(l),(l.type==="JSXElement"||l.type==="JSXFragment")&&(s.jsxElement=!0),s)}return s.literal=!0,s}function ne(e,t){let n=e.value;return n==null?null:O(n)?JSON.stringify(x(n)):n.type==="JSXExpressionContainer"&&n.expression?.type!=="JSXEmptyExpression"?t.code(n.expression):null}function je(e,t){let n=[],r=[];for(let i of e){if(i.type==="JSXSpreadAttribute"){n.push({name:"",kind:"spread",expr:t.code(i.argument)});continue}if(i.type!=="JSXAttribute"||C(J(i.name)))continue;let o=i.name.type==="JSXNamespacedName"?i.name.namespace.name:null;if(o==="use"){let s=i.name.name.name;t.used.add(s);let a=ne(i,t);r.push(a!=null?`[${s}, () => (${a})]`:`[${s}]`);continue}if(o==="oncapture"){let s=i.name.name.name.toLowerCase(),a=ne(i,t)??"undefined";n.push({name:"on:"+s,kind:"attr",expr:`[${a}, { capture: true }]`});continue}n.push(De(i,t))}return r.length>0&&n.push({name:"use",kind:"attr",expr:`[${r.join(", ")}]`}),n}function re(e,t){let n=[];for(let r of e)if(r.type==="JSXText"){let i=R(r.value);i&&n.push({kind:"text",value:i})}else if(r.type==="JSXExpressionContainer"){if(r.expression?.type!=="JSXEmptyExpression"){let i=r.expression;n.push({kind:"expr",code:t.code(i),reactive:ie(i)})}}else r.type==="JSXElement"||r.type==="JSXFragment"?n.push(oe(r,t)):r.type==="JSXSpreadChild"&&n.push({kind:"expr",code:t.code(r.expression),reactive:!1});return n}function Me(e){for(let t of e){if(t.type!=="JSXAttribute")continue;let n=J(t.name);if(C(n)){if(t.value&&!O(t.value))throw new m(`'${n}' needs a literal value, not an expression — the strategy is compile-time.`);return E(n,t.value?x(t.value):null)}}}function oe(e,t){if(e.type==="JSXFragment")return{kind:"fragment",children:re(e.children,t)};let{tag:n,component:r}=Je(e.openingElement.name,t),i=je(e.openingElement.attributes,t),o=re(e.children,t);if(r){let s=Me(e.openingElement.attributes);return{kind:"component",name:n,props:i,children:o,...s?{load:s}:{}}}return{kind:"element",tag:n,svg:Ae.has(n),props:i,children:o,static:!1}}function mt(e,t){let n=oe(e,t);return te(n),n}import{parseTemplate as _e}from"@fluixi/template-parser";var se=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]);function Be(e){return e.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}function ae(e){return e.charAt(0).toUpperCase()+e.slice(1)}var D=class{constructor(t,n){this.holes=t;this.used=n}hole(t){return this.holes[t]??{code:"undefined",reactive:!1}}emit(t){let{code:n,imports:r,templates:i}=ee.emit(t,{});for(let o of r)this.used.add(o);return Q(n,i)}lowerRoot(t){let n=this.lowerChildren(t);return n.length===1?n[0]:{kind:"fragment",children:n}}lowerChildren(t){let n=[];for(let r=0;r<t.length;r++){let i=t[r];if(i.kind==="Element"||i.kind==="Component"){let s=i.attributes.find(a=>a.kind==="IfDirective");if(s&&s.kind==="IfDirective"){let a=r+1;a<t.length&&this.isBlankText(t[a])&&a++;let l=t[a],c=l&&(l.kind==="Element"||l.kind==="Component")&&l.attributes.some(d=>d.kind==="ElseDirective");n.push(this.lowerIf(i,s.hole,c?l:null)),c&&(r=a);continue}if(i.attributes.some(a=>a.kind==="EachDirective")){n.push(this.lowerEach(i));continue}}let o=this.lowerNode(i);o&&n.push(o)}return n}isBlankText(t){return t.kind==="Text"&&!t.raw&&R(t.value)===""}lowerNode(t){switch(t.kind){case"Text":{if(t.raw)return{kind:"text",value:t.value};let n=R(t.value);return n?{kind:"text",value:n}:null}case"Comment":return null;case"Expression":{let n=this.hole(t.hole);return{kind:"expr",code:n.code,reactive:n.reactive}}case"Fragment":return{kind:"fragment",children:this.lowerChildren(t.children)};case"Element":return this.lowerElement(t);case"Component":return this.lowerComponent(t);default:return null}}lowerElement(t){let n=t.attributes.find(r=>r.kind==="Attribute"&&r.name==="is");if(t.tag==="component"&&n&&n.value&&n.value.kind==="hole"){let r=t.attributes.filter(o=>o!==n),i=this.lowerComponent({...t,kind:"Component",tag:"Dynamic",tagHole:null,attributes:r});return i.props.unshift({name:"component",kind:"attr",expr:`() => (${this.hole(n.value.hole).code})`}),i}return{kind:"element",tag:t.tag,svg:t.namespace==="svg",props:this.lowerAttributes(t.attributes),children:this.lowerChildren(t.children),static:!1}}lowerComponent(t){let n=t.tagHole!=null?this.hole(t.tagHole).code:t.tag,r=this.lowerAttributes(t.attributes),{slots:i,rest:o}=this.partitionSlots(t.children);for(let[l,c]of i){let d=c.length===1?c[0]:{kind:"fragment",children:c},p={name:l,kind:"attr",expr:this.emit(d),jsxElement:!0},u=r.findIndex(f=>f.name===l);u>=0?r[u]=p:r.push(p)}let s=t.attributes.find(l=>l.kind==="LoadDirective"),a=s?E(`load:${s.strategy}`,s.modifier):void 0;return{kind:"component",name:n,props:r,children:this.lowerChildren(o),...a?{load:a}:{}}}partitionSlots(t){let n=new Map,r=[];for(let i of t){if(i.kind==="Element"||i.kind==="Component"){let o=i.attributes.find(s=>s.kind==="Attribute"&&s.name==="slot");if(o&&o.value&&o.value.kind==="static"){let s={...i,attributes:i.attributes.filter(c=>c!==o)},a=s.kind==="Element"?this.lowerElement(s):this.lowerComponent(s),l=n.get(o.value.value)??[];l.push(a),n.set(o.value.value,l);continue}}r.push(i)}return{slots:n,rest:r}}lowerIf(t,n,r){let i=this.hole(n),o=[{name:"when",kind:"attr",expr:i.code,reactive:i.reactive}];if(r){let a=this.stripAndLower(r,l=>l.kind==="ElseDirective");o.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:o,children:[s]}}lowerEach(t){let n=t.attributes.find(l=>l.kind==="EachDirective");if(!n||n.kind!=="EachDirective")return this.lowerNode(t);let r=this.hole(n.hole),i=[{name:"each",kind:"attr",expr:r.code,reactive:r.reactive}];if(n.key){let l="static"in n.key?`(item) => item[${JSON.stringify(n.key.static)}]`:this.hole(n.key.hole).code;i.push({name:"by",kind:"attr",expr:l})}let o=this.itemArrow(t),s;if(o){let l={kind:"expr",code:o.body,reactive:o.bodyReactive},c=this.rebuildWithChildren(t,[l]);s=`(${o.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:i,children:[{kind:"expr",code:s,reactive:!1}]}}itemArrow(t){let n=t.children.filter(r=>!this.isBlankText(r));return n.length!==1||n[0].kind!=="Expression"?null:this.hole(n[0].hole).arrow??null}stripAndLower(t,n){let r={...t,attributes:t.attributes.filter(i=>!n(i))};return r.kind==="Element"?this.lowerElement(r):this.lowerComponent(r)}rebuildWithChildren(t,n){let r=this.lowerAttributes(t.attributes.filter(i=>i.kind!=="EachDirective"));return t.kind==="Element"?{kind:"element",tag:t.tag,svg:t.namespace==="svg",props:r,children:n,static:!1}:{kind:"component",name:t.tag,props:r,children:n}}lowerAttributes(t){let n=[],r=[],i=!1,o=[],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);r.push(`${JSON.stringify(l.name)}: ${c.code}`),i=i||c.reactive;break}case"StyleDirective":{let c=this.hole(l.hole);o.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 r.length>0&&n.push({name:"classList",kind:"attr",expr:`{ ${r.join(", ")} }`,reactive:i}),o.length>0&&n.push({name:"style",kind:"attr",expr:`{ ${o.join(", ")} }`,reactive:s}),a.length>0&&n.push({name:"use",kind:"attr",expr:`[${a.join(", ")}]`}),n}eventProp(t){let n=t.name.toLowerCase(),r=this.hole(t.hole).code;if(!(t.syntax==="colon"||t.modifiers.length>0))return{name:"on"+ae(t.name),kind:"event",event:{name:n,delegated:se.has(n)},expr:r};let o=this.wrapHandler(r,t.modifiers),s=this.eventOptions(t.modifiers),a=s?`[${o}, ${s}]`:o;return{name:"on:"+n,kind:"attr",expr:a}}wrapHandler(t,n){let r=n.includes("self")?"if (e.target !== e.currentTarget) return; ":"",i=[];return n.includes("prevent")&&i.push("e.preventDefault();"),n.includes("stop")&&i.push("e.stopPropagation();"),!r&&i.length===0?t:`(e) => { ${r}${i.join(" ")} return (${t})(e); }`}eventOptions(t){let n=[];return t.includes("capture")&&n.push("capture: true"),t.includes("once")&&n.push("once: true"),t.includes("passive")&&n.push("passive: true"),n.length?`{ ${n.join(", ")} }`:null}bindProps(t,n){let r=t==="checked",i=r?"change":"input",o=r?"checked":"value";this.used.add("bindPair");let s=`bindPair(${n})`;return[{name:t,kind:"attr",expr:`${s}[0]()`,reactive:!0},{name:"on"+ae(i),kind:"event",event:{name:i,delegated:se.has(i)},expr:`(e) => ${s}[1](e.target.${o})`}]}plainAttr(t){let n=t.value,r=t.name;t.name==="class"?r=n&&n.kind==="hole"&&this.hole(n.hole).object?"classList":"className":t.name==="html"&&(r="innerHTML");let o={name:r,kind:"attr"};if(n==null)return o.literal=!0,o;if(n.kind==="static")return o.literal=n.value,o;if(n.kind==="hole"){let l=this.hole(n.hole);return o.expr=l.code,o.reactive=l.reactive,o}let s=!1,a=n.parts.map(l=>{if("text"in l)return Be(l.text);let c=this.hole(l.hole);return s=s||c.reactive,"${"+c.code+"}"}).join("");return o.expr="`"+a+"`",o.reactive=s,o}};function xt(e,t,n,r={}){let{root:i}=_e(e,{svg:r.svg});return new D(t,n).lowerRoot(i.children)}export{X as a,Ve as b,Ge as c,Q as d,ee as e,xt as f,te as g,L as h,w as i,mt as j};
|
|
1
|
+
import{d as M,e as $,f as _}from"./chunk-YR3SAEO7.mjs";var le=new Set(["CallExpression","OptionalCallExpression"]),ce=new Set(["MemberExpression","OptionalMemberExpression"]);function w(e){if(!e)return{kind:"opaque"};if(le.has(e.type))return{kind:"call"};if(ce.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(h)}:e.type==="LogicalExpression"||e.type==="BinaryExpression"?{kind:"compound",parts:[e.left,e.right].map(h)}:e.type==="TemplateLiteral"?{kind:"compound",parts:e.expressions.map(h)}:e.type==="ObjectExpression"?{kind:"compound",parts:e.properties.filter(n=>(n.type==="ObjectProperty"||n.type==="Property")&&n.computed!==!0).map(n=>h(n.value))}:e.type==="ArrayExpression"?{kind:"compound",parts:e.elements.filter(n=>n!=null&&n.type!=="SpreadElement").map(h)}:{kind:"opaque"}}var h=e=>w(e);var y={kind:"eager"},pe=["pointerdown","focusin","keydown"],B=new Set(["eager","idle","visible","interaction","media","never"]),m=class extends Error{};function C(e){return e.startsWith("load:")}function E(e,t){let n=e.slice(5);if(!B.has(n))throw new m(`Unknown load strategy 'load:${n}'. Expected one of ${[...B].join(", ")}.`);switch(n){case"eager":return y;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?de(t):[...pe]};case"media":if(!t)throw new m(`'load:media' needs a query, e.g. load:media="(min-width: 1024px)".`);return{kind:"media",query:t};default:throw new m(`Unhandled load strategy '${n}'.`)}}function de(e){let t=e.split(/[\s,]+/).map(n=>n.trim()).filter(Boolean);if(t.length===0)throw new m("'load:interaction' was given no event names.");return t}function X(e){return e.kind!=="eager"&&e.kind!=="never"}function Ve(e,t={}){let{resolver:n,isBound:r,modules:i,strategyFor:o}=t,s=_(i),a=new Map,l=new Set,c=p=>{let{name:u}=p;if(!u||u.includes(".")||r?.(u))return;let f=d(u);if(!f){l.add(u);return}let N=f.origin==="builtin"&&$.has(u)?y:o?.(p)??y;p.source={...f,loading:N},a.set(u,p.source)},d=p=>{if($.has(p))return{module:s[p],export:p,origin:"builtin"};let u=n?.resolve(p);if(u)return{module:u.module,export:u.export,origin:"rule"};if(M.includes(p))return{module:s[p],export:p,origin:"builtin"}};return I(e,p=>{p.kind==="component"&&c(p)}),{resolved:a,unresolved:[...l]}}function I(e,t){let n=Array.isArray(e)?e:[e];for(let r of n){t(r);let i=r.children;i&&I(i,t)}}function Ge(e){let t=[];I(e,o=>{o.kind==="component"&&o.source&&t.push(o)});let n=new Set,r=new Set;for(let o of t){let{module:s,loading:a}=o.source;a.kind==="eager"&&n.add(s),a.kind==="never"&&r.add(s)}let i=new Map;for(let o of t){let s=o.source;X(s.loading)&&n.has(s.module)&&(s.loading={kind:"eager"},i.set(s.module,(i.get(s.module)??0)+1))}return{collapsed:i,conflicted:[...r].filter(o=>n.has(o))}}var ue=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),H={className:"class",htmlFor:"for"},fe=new Set(["innerHTML","outerHTML","innerText","textContent","value","checked","selected","muted","defaultValue","defaultChecked","children","ref"]),me=new Set(["script","style","textarea","title"]);function T(e){return me.has(e)}function z(e){return H[e]??e}function g(e){return e.kind!=="attr"||e.expr!==void 0||e.name.includes(":")?!1:!fe.has(e.name)}function P(e){if(!e.static||T(e.tag))return!1;for(let t of e.props)if(!g(t))return!1;for(let t of e.children)if(t.kind!=="text"&&!(t.kind==="element"&&P(t)))return!1;return!0}function v(e){let t=e.props.map(ge).filter(Boolean).join(""),n=`<${e.tag}${t}>`;return ue.has(e.tag)?n:`${n}${e.children.map(he).join("")}</${e.tag}>`}function he(e){if(e.kind==="text")return ke(e.value);if(e.kind!=="element")throw new Error(`serializeStatic: unexpected ${e.kind}`);return v(e)}function ge(e){let t=H[e.name]??e.name,n=e.literal;return n===!0||n===void 0?` ${t}`:n===!1||n===null?"":` ${t}="${ve(String(n))}"`}function ve(e){return e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function ke(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}var Re="<!--fx-->",xe="<!--fx/-->";function S(e){return e.kind==="expr"||e.kind==="component"||e.kind==="control"}function Ne(e){return e.kind==="text"||e.kind==="element"&&F(e)}function F(e){return e.svg||T(e.tag)||!e.props.every(t=>g(t))?!1:e.children.every(t=>Ne(t)||S(t))}function b(e){if(S(e))return!0;let t=e.children;return t?t.some(b):!1}function V(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"||V(t))}function q(e){if(!F(e)||!V(e)||!e.children.some(b))return null;let t=[],n=[],r=0,i=s=>{let a=`_n$${r++}`;return t.push({ref:a,expr:s}),a};return o(e,"_el$"),{html:ye(e),tag:e.tag,steps:t,holes:n};function o(s,a){let l=-1;s.children.forEach((d,p)=>{b(d)&&(l=p)});let c=null;for(let d=0;d<=l;d++){let p=s.children[d],u=c?`${c}.nextSibling`:`${a}.firstChild`;if(S(p)){let N=i(u),j=i(`holeEnd(${N})`);n.push({parentRef:a,startRef:N,endRef:j,node:p}),c=j;continue}let f=i(u);p.kind==="element"&&b(p)&&o(p,f),c=f}}}function ye(e){return v(U(e)).split(W).join(Re+xe)}function U(e){return{...e,children:e.children.map(t=>S(t)?{kind:"text",value:W}:t.kind==="element"?U(t):t)}}var W="\0fx-hole\0";var A={version:1,module:"@fluixi/dom",symbols:["createNativeElement","insert","spread","setAttribute","delegateEvents","createComponent","createMemo","untrack","Show","For","Index","Switch","Match","Dynamic","ErrorBoundary"]},et={version:2,module:"@fluixi/dom",symbols:[...A.symbols,"template","cloneTemplate","walk"]};var Ee={show:"Show",for:"For",index:"Index",switch:"Switch",match:"Match",dynamic:"Dynamic",errorBoundary:"ErrorBoundary",suspense:"Suspense"};function Ie(e){return/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(e)}function K(e){return Ie(e)?e:JSON.stringify(e)}function be(e){return e.expr!==void 0?e.reactive?`() => (${e.expr})`:`(${e.expr})`:JSON.stringify(e.literal??!0)}function Se(e){return e.expr!==void 0?`(${e.expr})`:JSON.stringify(e.literal??!0)}function $e(e,t,n){let r=e.filter(a=>a.kind==="spread"),o=e.filter(a=>a.kind!=="spread").map(a=>`${K(a.name)}: ${be(a)}`);t!=null&&o.push(`children: ${t}`);let s=`{ ${o.join(", ")} }`;return r.length>0?(n.add("mergeProps"),`mergeProps(${r.map(a=>a.expr).join(", ")}, ${s})`):s}function Z(e,t,n){return e.length===1?k(e[0],t,n):`[${e.map(r=>k(r,t,n)).join(", ")}]`}function G(e,t,n,r,i){r.add("createMemo"),r.add("createComponent");let o=t.filter(c=>c.kind==="spread"),a=t.filter(c=>c.kind!=="spread").map(c=>`get ${K(c.name)}() { return ${Se(c)}; }`);n.length>0&&a.push(`get children() { return ${Z(n,r,i)}; }`);let l=`{ ${a.join(", ")} }`;return o.length>0&&(r.add("mergeProps"),l=`mergeProps(${o.map(c=>c.expr).join(", ")}, ${l})`),`createMemo(() => createComponent(${e}, ${l}))`}function we(e,t){let n=z(t.name),r=t.literal;return r===!0||r===void 0?`${e}.setAttribute(${JSON.stringify(n)}, "");`:r===!1||r===null?"":`${e}.setAttribute(${JSON.stringify(n)}, ${JSON.stringify(String(r))});`}var Y=!1;function k(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":Z(e.children,t,n);case"component":return G(e.name,e.props,e.children,t,n);case"control":{let r=Ee[e.control]??e.control;return t.add(r),G(r,e.props,e.children,t,n)}case"element":{if(n&&e.static&&!e.svg&&P(e)){t.add("templateNode");let a=`_tmpl$${n.length}`;return n.push({id:a,html:v(e),tag:e.tag,svg:!1}),`templateNode(${a}, ${JSON.stringify(e.tag)})`}if(n&&Y){let a=q(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 d of a.steps)c.push(`const ${d.ref} = ${d.expr};`);for(let d of a.holes)c.push(`insert(${d.parentRef}, holeScope(${d.startRef}, () => (${k(d.node,t,n)})), ${d.endRef}, holeContent(${d.startRef}, ${d.endRef}));`);return c.push("return _el$;"),`(() => { ${c.join(" ")} })()`}}t.add("createNativeElement");let r=JSON.stringify(e.tag),i="_el$",o=[],s=e.svg?`${r}, true`:r;if(o.push(`const ${i} = createNativeElement(${s});`),e.props.length>0)if(!e.svg&&e.props.every(g))for(let a of e.props)o.push(we(i,a));else{t.add("spread");let a=e.svg?", isSVG: true":"";o.push(`spread({ element: ${i}, props: ${$e(e.props,null,t)}${a} });`)}for(let a of e.children){t.add("insert");let l=k(a,t,n),c=a.kind==="expr"&&a.reactive||a.kind==="component"||a.kind==="control";o.push(c?`insert(${i}, ${l}, null);`:`insert(${i}, ${l});`)}return o.push(`return ${i};`),`(() => { ${o.join(" ")} })()`}}}function Q(e,t){if(!t||t.length===0)return e;let n=new Map(t.map(r=>[r.id,JSON.stringify(r.html)]));return e.replace(/_tmpl\$\d+/g,r=>n.get(r)??r)}var ee={name:"imperative",contract:A,emit(e,t){let n=new Set,r=t?.templateClone!==!1?[]:void 0;return Y=t?.partialTemplates===!0,{code:k(e,n,r),imports:Array.from(n),templates:r}}};function Ce(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 te(e){let t=[],n=new Map,r=i=>{switch(i.kind){case"text":return!0;case"expr":return!1;case"component":case"control":for(let o of i.children)r(o);return!1;case"fragment":for(let o of i.children)r(o);return!1;case"element":{let o=!0;for(let a of i.children)r(a)||(o=!1);let s;for(let a of i.props)if(s=Ce(a),s)break;return!s&&!o&&(s=Te(i)),i.static=!s,s?n.set(i,s):t.push(i),i.static}default:return!1}};for(let i of Array.isArray(e)?e:[e])r(i);return{staticElements:t,reasons:n}}function Te(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 Pe="children";function L(e){switch(e.kind){case"call":return!0;case"member":return e.property!==Pe;case"compound":return e.parts.some(L);case"opaque":return!1}}function R(e){let t=e.split(/\r\n|\n|\r/),n=0;for(let i=0;i<t.length;i++)/[^ \t]/.test(t[i])&&(n=i);let r="";for(let i=0;i<t.length;i++){let o=t[i].replace(/\t/g," ");i!==0&&(o=o.replace(/^ +/,"")),i!==t.length-1&&(o=o.replace(/ +$/,"")),o&&(i!==n&&(o+=" "),r+=o)}return r}var Ae=new Set(["svg","path","circle","rect","line","polygon","polyline","ellipse","g","defs","clipPath","text"]),Le=/^on[A-Z]/,Oe=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]),ie=e=>L(w(e));function x(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}var O=e=>!!e&&typeof x(e)=="string";function Je(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 J(e){return e.type==="JSXIdentifier"?e.name==="class"?"className":e.name:e.type==="JSXNamespacedName"?`${e.namespace.name}:${e.name.name}`:"unknown"}function De(e,t){let n=J(e.name),r=Le.test(n),i=r||n.startsWith("on:")||n==="ref",s={name:n,kind:r?"event":"attr"};if(r){let l=n.slice(2).toLowerCase();s.event={name:l,delegated:Oe.has(l)}}let a=e.value;if(a==null)return s.literal=!0,s;if(O(a))return s.literal=x(a),s;if(a.type==="JSXExpressionContainer"&&a.expression?.type!=="JSXEmptyExpression"){let l=a.expression,c=x(l);return c!==void 0?(s.literal=c,s):(s.expr=t.code(l),s.reactive=i?!1:ie(l),(l.type==="JSXElement"||l.type==="JSXFragment")&&(s.jsxElement=!0),s)}return s.literal=!0,s}function ne(e,t){let n=e.value;return n==null?null:O(n)?JSON.stringify(x(n)):n.type==="JSXExpressionContainer"&&n.expression?.type!=="JSXEmptyExpression"?t.code(n.expression):null}function je(e,t){let n=[],r=[];for(let i of e){if(i.type==="JSXSpreadAttribute"){n.push({name:"",kind:"spread",expr:t.code(i.argument)});continue}if(i.type!=="JSXAttribute"||C(J(i.name)))continue;let o=i.name.type==="JSXNamespacedName"?i.name.namespace.name:null;if(o==="use"){let s=i.name.name.name;t.used.add(s);let a=ne(i,t);r.push(a!=null?`[${s}, () => (${a})]`:`[${s}]`);continue}if(o==="oncapture"){let s=i.name.name.name.toLowerCase(),a=ne(i,t)??"undefined";n.push({name:"on:"+s,kind:"attr",expr:`[${a}, { capture: true }]`});continue}n.push(De(i,t))}return r.length>0&&n.push({name:"use",kind:"attr",expr:`[${r.join(", ")}]`}),n}function re(e,t){let n=[];for(let r of e)if(r.type==="JSXText"){let i=R(r.value);i&&n.push({kind:"text",value:i})}else if(r.type==="JSXExpressionContainer"){if(r.expression?.type!=="JSXEmptyExpression"){let i=r.expression;n.push({kind:"expr",code:t.code(i),reactive:ie(i)})}}else r.type==="JSXElement"||r.type==="JSXFragment"?n.push(oe(r,t)):r.type==="JSXSpreadChild"&&n.push({kind:"expr",code:t.code(r.expression),reactive:!1});return n}function Me(e){for(let t of e){if(t.type!=="JSXAttribute")continue;let n=J(t.name);if(C(n)){if(t.value&&!O(t.value))throw new m(`'${n}' needs a literal value, not an expression — the strategy is compile-time.`);return E(n,t.value?x(t.value):null)}}}function oe(e,t){if(e.type==="JSXFragment")return{kind:"fragment",children:re(e.children,t)};let{tag:n,component:r}=Je(e.openingElement.name,t),i=je(e.openingElement.attributes,t),o=re(e.children,t);if(r){let s=Me(e.openingElement.attributes);return{kind:"component",name:n,props:i,children:o,...s?{load:s}:{}}}return{kind:"element",tag:n,svg:Ae.has(n),props:i,children:o,static:!1}}function mt(e,t){let n=oe(e,t);return te(n),n}import{parseTemplate as _e}from"@fluixi/template-parser";var se=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]);function Be(e){return e.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}function ae(e){return e.charAt(0).toUpperCase()+e.slice(1)}var D=class{constructor(t,n){this.holes=t;this.used=n}hole(t){return this.holes[t]??{code:"undefined",reactive:!1}}emit(t){let{code:n,imports:r,templates:i}=ee.emit(t,{});for(let o of r)this.used.add(o);return Q(n,i)}lowerRoot(t){let n=this.lowerChildren(t);return n.length===1?n[0]:{kind:"fragment",children:n}}lowerChildren(t){let n=[];for(let r=0;r<t.length;r++){let i=t[r];if(i.kind==="Element"||i.kind==="Component"){let s=i.attributes.find(a=>a.kind==="IfDirective");if(s&&s.kind==="IfDirective"){let a=r+1;a<t.length&&this.isBlankText(t[a])&&a++;let l=t[a],c=l&&(l.kind==="Element"||l.kind==="Component")&&l.attributes.some(d=>d.kind==="ElseDirective");n.push(this.lowerIf(i,s.hole,c?l:null)),c&&(r=a);continue}if(i.attributes.some(a=>a.kind==="EachDirective")){n.push(this.lowerEach(i));continue}}let o=this.lowerNode(i);o&&n.push(o)}return n}isBlankText(t){return t.kind==="Text"&&!t.raw&&R(t.value)===""}lowerNode(t){switch(t.kind){case"Text":{if(t.raw)return{kind:"text",value:t.value};let n=R(t.value);return n?{kind:"text",value:n}:null}case"Comment":return null;case"Expression":{let n=this.hole(t.hole);return{kind:"expr",code:n.code,reactive:n.reactive}}case"Fragment":return{kind:"fragment",children:this.lowerChildren(t.children)};case"Element":return this.lowerElement(t);case"Component":return this.lowerComponent(t);default:return null}}lowerElement(t){let n=t.attributes.find(r=>r.kind==="Attribute"&&r.name==="is");if(t.tag==="component"&&n&&n.value&&n.value.kind==="hole"){let r=t.attributes.filter(o=>o!==n),i=this.lowerComponent({...t,kind:"Component",tag:"Dynamic",tagHole:null,attributes:r});return i.props.unshift({name:"component",kind:"attr",expr:`() => (${this.hole(n.value.hole).code})`}),i}return{kind:"element",tag:t.tag,svg:t.namespace==="svg",props:this.lowerAttributes(t.attributes),children:this.lowerChildren(t.children),static:!1}}lowerComponent(t){let n=t.tagHole!=null?this.hole(t.tagHole).code:t.tag,r=this.lowerAttributes(t.attributes),{slots:i,rest:o}=this.partitionSlots(t.children);for(let[l,c]of i){let d=c.length===1?c[0]:{kind:"fragment",children:c},p={name:l,kind:"attr",expr:this.emit(d),jsxElement:!0},u=r.findIndex(f=>f.name===l);u>=0?r[u]=p:r.push(p)}let s=t.attributes.find(l=>l.kind==="LoadDirective"),a=s?E(`load:${s.strategy}`,s.modifier):void 0;return{kind:"component",name:n,props:r,children:this.lowerChildren(o),...a?{load:a}:{}}}partitionSlots(t){let n=new Map,r=[];for(let i of t){if(i.kind==="Element"||i.kind==="Component"){let o=i.attributes.find(s=>s.kind==="Attribute"&&s.name==="slot");if(o&&o.value&&o.value.kind==="static"){let s={...i,attributes:i.attributes.filter(c=>c!==o)},a=s.kind==="Element"?this.lowerElement(s):this.lowerComponent(s),l=n.get(o.value.value)??[];l.push(a),n.set(o.value.value,l);continue}}r.push(i)}return{slots:n,rest:r}}lowerIf(t,n,r){let i=this.hole(n),o=[{name:"when",kind:"attr",expr:i.code,reactive:i.reactive}];if(r){let a=this.stripAndLower(r,l=>l.kind==="ElseDirective");o.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:o,children:[s]}}lowerEach(t){let n=t.attributes.find(l=>l.kind==="EachDirective");if(!n||n.kind!=="EachDirective")return this.lowerNode(t);let r=this.hole(n.hole),i=[{name:"each",kind:"attr",expr:r.code,reactive:r.reactive}];if(n.key){let l="static"in n.key?`(item) => item[${JSON.stringify(n.key.static)}]`:this.hole(n.key.hole).code;i.push({name:"by",kind:"attr",expr:l})}let o=this.itemArrow(t),s;if(o){let l={kind:"expr",code:o.body,reactive:o.bodyReactive},c=this.rebuildWithChildren(t,[l]);s=`(${o.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:i,children:[{kind:"expr",code:s,reactive:!1}]}}itemArrow(t){let n=t.children.filter(r=>!this.isBlankText(r));return n.length!==1||n[0].kind!=="Expression"?null:this.hole(n[0].hole).arrow??null}stripAndLower(t,n){let r={...t,attributes:t.attributes.filter(i=>!n(i))};return r.kind==="Element"?this.lowerElement(r):this.lowerComponent(r)}rebuildWithChildren(t,n){let r=this.lowerAttributes(t.attributes.filter(i=>i.kind!=="EachDirective"));return t.kind==="Element"?{kind:"element",tag:t.tag,svg:t.namespace==="svg",props:r,children:n,static:!1}:{kind:"component",name:t.tag,props:r,children:n}}lowerAttributes(t){let n=[],r=[],i=!1,o=[],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);r.push(`${JSON.stringify(l.name)}: ${c.code}`),i=i||c.reactive;break}case"StyleDirective":{let c=this.hole(l.hole);o.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 r.length>0&&n.push({name:"classList",kind:"attr",expr:`{ ${r.join(", ")} }`,reactive:i}),o.length>0&&n.push({name:"style",kind:"attr",expr:`{ ${o.join(", ")} }`,reactive:s}),a.length>0&&n.push({name:"use",kind:"attr",expr:`[${a.join(", ")}]`}),n}eventProp(t){let n=t.name.toLowerCase(),r=this.hole(t.hole).code;if(!(t.syntax==="colon"||t.modifiers.length>0))return{name:"on"+ae(t.name),kind:"event",event:{name:n,delegated:se.has(n)},expr:r};let o=this.wrapHandler(r,t.modifiers),s=this.eventOptions(t.modifiers),a=s?`[${o}, ${s}]`:o;return{name:"on:"+n,kind:"attr",expr:a}}wrapHandler(t,n){let r=n.includes("self")?"if (e.target !== e.currentTarget) return; ":"",i=[];return n.includes("prevent")&&i.push("e.preventDefault();"),n.includes("stop")&&i.push("e.stopPropagation();"),!r&&i.length===0?t:`(e) => { ${r}${i.join(" ")} return (${t})(e); }`}eventOptions(t){let n=[];return t.includes("capture")&&n.push("capture: true"),t.includes("once")&&n.push("once: true"),t.includes("passive")&&n.push("passive: true"),n.length?`{ ${n.join(", ")} }`:null}bindProps(t,n){let r=t==="checked",i=r?"change":"input",o=r?"checked":"value";this.used.add("bindPair");let s=`bindPair(${n})`;return[{name:t,kind:"attr",expr:`${s}[0]()`,reactive:!0},{name:"on"+ae(i),kind:"event",event:{name:i,delegated:se.has(i)},expr:`(e) => ${s}[1](e.target.${o})`}]}plainAttr(t){let n=t.value,r=t.name;t.name==="class"?r=n&&n.kind==="hole"&&this.hole(n.hole).object?"classList":"className":t.name==="html"&&(r="innerHTML");let o={name:r,kind:"attr"};if(n==null)return o.literal=!0,o;if(n.kind==="static")return o.literal=n.value,o;if(n.kind==="hole"){let l=this.hole(n.hole);return o.expr=l.code,o.reactive=l.reactive,o}let s=!1,a=n.parts.map(l=>{if("text"in l)return Be(l.text);let c=this.hole(l.hole);return s=s||c.reactive,"${"+c.code+"}"}).join("");return o.expr="`"+a+"`",o.reactive=s,o}};function xt(e,t,n,r={}){let{root:i}=_e(e,{svg:r.svg});return new D(t,n).lowerRoot(i.children)}export{X as a,Ve as b,Ge as c,Q as d,ee as e,xt as f,te as g,L as h,w as i,mt as j};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var r="@fluixi/reactive/signal",t={$signal:{export:"signal",module:r,returns:"signal-handle"},$memo:{export:"memo",module:r,returns:"memo-handle"},$effect:{export:"effect",module:r,returns:"effect"},$store:{export:"store",module:"@fluixi/reactive/store",returns:"store-handle"},$resource:{export:"resource",module:r,returns:"resource-handle"},$selector:{export:"createSelector",module:r,returns:"memo-accessor"},$deferred:{export:"createDeferred",module:r,returns:"memo-accessor"},$untrack:{export:"untrack",module:r,returns:"plain"},$untrackStore:{export:"untrackStore",module:"@fluixi/reactive/store",returns:"plain"}},c={signal:"signal-handle",memo:"memo-handle",effect:"effect",store:"store-handle",createSignal:["signal-accessor","signal-setter"],createMemo:"memo-accessor",createEffect:"effect",createRenderEffect:"effect",createStore:"reactive-object",resource:"resource-handle",createResource:"reactive-object",createSelector:"memo-accessor",createDeferred:"memo-accessor"},o=["@fluixi/reactive","@fluixi/reactive/signal","@fluixi/reactive/store","@fluixi/core"
|
|
1
|
+
var r="@fluixi/reactive/signal",t={$signal:{export:"signal",module:r,returns:"signal-handle"},$memo:{export:"memo",module:r,returns:"memo-handle"},$effect:{export:"effect",module:r,returns:"effect"},$store:{export:"store",module:"@fluixi/reactive/store",returns:"store-handle"},$resource:{export:"resource",module:r,returns:"resource-handle"},$selector:{export:"createSelector",module:r,returns:"memo-accessor"},$deferred:{export:"createDeferred",module:r,returns:"memo-accessor"},$untrack:{export:"untrack",module:r,returns:"plain"},$untrackStore:{export:"untrackStore",module:"@fluixi/reactive/store",returns:"plain"}},c={signal:"signal-handle",memo:"memo-handle",effect:"effect",store:"store-handle",createSignal:["signal-accessor","signal-setter"],createMemo:"memo-accessor",createEffect:"effect",createRenderEffect:"effect",createStore:"reactive-object",resource:"resource-handle",createResource:"reactive-object",createSelector:"memo-accessor",createDeferred:"memo-accessor"},o=["@fluixi/reactive","@fluixi/reactive/signal","@fluixi/reactive/store","@fluixi/core"],n=new RegExp(`\\$(?:${Object.keys(t).map(e=>e.slice(1)).join("|")})\\s*\\(`);function s(e){return n.test(e)}function a(e){return Object.prototype.hasOwnProperty.call(t,e)}function i(e){return o.includes(e)}export{t as a,c as b,s as c,a as d,i as e};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var C=t=>"components"in t;function f(t,e){return t.replace(/\$(\d+)/g,(i,c)=>e[Number(c)]??i)}function x(t,e){return typeof e=="string"?{module:e,export:t}:e}function M(t=[]){let e=new Map,i=[],c=[];for(let o of t){if(!C(o)){c.push(o);continue}for(let[n,l]of Object.entries(o.components)){let s=x(n,l),p=e.get(n);if(p&&p.module!==s.module){let d=i.find(g=>g.name===n);d?d.modules.push(s.module):i.push({name:n,modules:[p.module,s.module]});continue}e.set(n,s)}}let r=new Map;return{resolve:o=>{if(r.has(o))return r.get(o);let n=e.get(o);if(!n)for(let l of c){let s=o.match(new RegExp(l.match.source,l.match.flags.replace("g","")));if(s){n={module:f(l.module,s),export:l.export?f(l.export,s):o};break}}return r.set(o,n),n},names:()=>[...e.keys()],conflicts:()=>i}}var m=["Show","For","Index","Switch","Match","Portal","Dynamic","ErrorBoundary"],a=["Suspense","SuspenseList","Await"],R=["Router","Outlet","Redirect","Link"],O=[...m,...a,...R],h=new Set([...m,...a]);function E(t={}){let{controlFlowModule:e="@fluixi/dom",coreModule:i="@fluixi/core",routerModule:c="@fluixi/core/router
|
|
1
|
+
var C=t=>"components"in t;function f(t,e){return t.replace(/\$(\d+)/g,(i,c)=>e[Number(c)]??i)}function x(t,e){return typeof e=="string"?{module:e,export:t}:e}function M(t=[]){let e=new Map,i=[],c=[];for(let o of t){if(!C(o)){c.push(o);continue}for(let[n,l]of Object.entries(o.components)){let s=x(n,l),p=e.get(n);if(p&&p.module!==s.module){let d=i.find(g=>g.name===n);d?d.modules.push(s.module):i.push({name:n,modules:[p.module,s.module]});continue}e.set(n,s)}}let r=new Map;return{resolve:o=>{if(r.has(o))return r.get(o);let n=e.get(o);if(!n)for(let l of c){let s=o.match(new RegExp(l.match.source,l.match.flags.replace("g","")));if(s){n={module:f(l.module,s),export:l.export?f(l.export,s):o};break}}return r.set(o,n),n},names:()=>[...e.keys()],conflicts:()=>i}}var m=["Show","For","Index","Switch","Match","Portal","Dynamic","ErrorBoundary"],a=["Suspense","SuspenseList","Await"],R=["Router","Outlet","Redirect","Link"],O=[...m,...a,...R],h=new Set([...m,...a]);function E(t={}){let{controlFlowModule:e="@fluixi/dom",coreModule:i="@fluixi/core",routerModule:c="@fluixi/core/router"}=t,r={};for(let u of m)r[u]=e;for(let u of a)r[u]=i;for(let u of R)r[u]=c;return r}export{M as a,m as b,a as c,R as d,h as e,E as f};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Ze=Object.create;var z=Object.defineProperty;var Qe=Object.getOwnPropertyDescriptor;var et=Object.getOwnPropertyNames;var tt=Object.getPrototypeOf,nt=Object.prototype.hasOwnProperty;var rt=(e,t)=>{for(var n in t)z(e,n,{get:t[n],enumerable:!0})},xe=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of et(t))!nt.call(e,r)&&r!==n&&z(e,r,{get:()=>t[r],enumerable:!(o=Qe(t,r))||o.enumerable});return e};var Re=(e,t,n)=>(n=e!=null?Ze(tt(e)):{},xe(t||!e||!e.__esModule?z(n,"default",{value:e,enumerable:!0}):n,e)),ot=e=>xe(z({},"__esModule",{value:!0}),e);var Zt={};rt(Zt,{babelPluginReactiveJSX:()=>Gt,createPlugin:()=>Kt,createPreset:()=>oe,default:()=>$,presets:()=>Yt});module.exports=ot(Zt);var Ge=require("@babel/helper-plugin-utils");var it=e=>"components"in e;function ye(e,t){return e.replace(/\$(\d+)/g,(n,o)=>t[Number(o)]??n)}function st(e,t){return typeof t=="string"?{module:t,export:e}:t}function Ee(e=[]){let t=new Map,n=[],o=[];for(let s of e){if(!it(s)){o.push(s);continue}for(let[i,l]of Object.entries(s.components)){let p=st(i,l),u=t.get(i);if(u&&u.module!==p.module){let d=n.find(g=>g.name===i);d?d.modules.push(p.module):n.push({name:i,modules:[u.module,p.module]});continue}t.set(i,p)}}let r=new Map;return{resolve:s=>{if(r.has(s))return r.get(s);let i=t.get(s);if(!i)for(let l of o){let p=s.match(new RegExp(l.match.source,l.match.flags.replace("g","")));if(p){i={module:ye(l.module,p),export:l.export?ye(l.export,p):s};break}}return r.set(s,i),i},names:()=>[...t.keys()],conflicts:()=>n}}var ie=["Show","For","Index","Switch","Match","Portal","Dynamic","ErrorBoundary"],L=["Suspense","SuspenseList","Await"],M=["Router","Outlet","Redirect","Link"],tn=[...ie,...L,...M],se=new Set([...ie,...L]);function Ne(e={}){let{controlFlowModule:t="@fluixi/dom",coreModule:n="@fluixi/core",routerModule:o="@fluixi/core/router-next"}=e,r={};for(let a of ie)r[a]=t;for(let a of L)r[a]=n;for(let a of M)r[a]=o;return r}var V={kind:"eager"},at=["pointerdown","focusin","keydown"],be=new Set(["eager","idle","visible","interaction","media","never"]),I=class extends Error{};function ae(e){return e.startsWith("load:")}function W(e,t){let n=e.slice(5);if(!be.has(n))throw new I(`Unknown load strategy 'load:${n}'. Expected one of ${[...be].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?lt(t):[...at]};case"media":if(!t)throw new I(`'load:media' needs a query, e.g. load:media="(min-width: 1024px)".`);return{kind:"media",query:t};default:throw new I(`Unhandled load strategy '${n}'.`)}}function lt(e){let t=e.split(/[\s,]+/).map(n=>n.trim()).filter(Boolean);if(t.length===0)throw new I("'load:interaction' was given no event names.");return t}function U(e){return e.kind!=="eager"&&e.kind!=="never"}function q(e,t={}){let{resolver:n,isBound:o,modules:r,strategyFor:a}=t,s=Ne(r),i=new Map,l=new Set,p=d=>{let{name:g}=d;if(!g||g.includes(".")||o?.(g))return;let k=u(g);if(!k){l.add(g);return}let w=k.origin==="builtin"&&se.has(g)?V:a?.(d)??V;d.source={...k,loading:w},i.set(g,d.source)},u=d=>{if(se.has(d))return{module:s[d],export:d,origin:"builtin"};let g=n?.resolve(d);if(g)return{module:g.module,export:g.export,origin:"rule"};if(M.includes(d))return{module:s[d],export:d,origin:"builtin"}};return G(e,d=>{d.kind==="component"&&p(d)}),{resolved:i,unresolved:[...l]}}function G(e,t){let n=Array.isArray(e)?e:[e];for(let o of n){t(o);let r=o.children;r&&G(r,t)}}function K(e){let t=[];G(e,a=>{a.kind==="component"&&a.source&&t.push(a)});let n=new Set,o=new Set;for(let a of t){let{module:s,loading:i}=a.source;i.kind==="eager"&&n.add(s),i.kind==="never"&&o.add(s)}let r=new Map;for(let a of t){let s=a.source;U(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(a=>n.has(a))}}var c=require("@babel/core");var S=require("@babel/core"),he=Re(require("@babel/generator"),1);var ct=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),ke={className:"class",htmlFor:"for"},pt=new Set(["innerHTML","outerHTML","innerText","textContent","value","checked","selected","muted","defaultValue","defaultChecked","children","ref"]),dt=new Set(["script","style","textarea","title"]);function le(e){return dt.has(e)}function Se(e){return ke[e]??e}function P(e){return e.kind!=="attr"||e.expr!==void 0||e.name.includes(":")?!1:!pt.has(e.name)}function ce(e){if(!e.static||le(e.tag))return!1;for(let t of e.props)if(!P(t))return!1;for(let t of e.children)if(t.kind!=="text"&&!(t.kind==="element"&&ce(t)))return!1;return!0}function O(e){let t=e.props.map(mt).filter(Boolean).join(""),n=`<${e.tag}${t}>`;return ct.has(e.tag)?n:`${n}${e.children.map(ut).join("")}</${e.tag}>`}function ut(e){if(e.kind==="text")return gt(e.value);if(e.kind!=="element")throw new Error(`serializeStatic: unexpected ${e.kind}`);return O(e)}function mt(e){let t=ke[e.name]??e.name,n=e.literal;return n===!0||n===void 0?` ${t}`:n===!1||n===null?"":` ${t}="${ft(String(n))}"`}function ft(e){return e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function gt(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}var ht="<!--fx-->",vt="<!--fx/-->";function Z(e){return e.kind==="expr"||e.kind==="component"||e.kind==="control"}function xt(e){return e.kind==="text"||e.kind==="element"&&Ie(e)}function Ie(e){return e.svg||le(e.tag)||!e.props.every(t=>P(t))?!1:e.children.every(t=>xt(t)||Z(t))}function Y(e){if(Z(e))return!0;let t=e.children;return t?t.some(Y):!1}function Ce(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"||Ce(t))}function we(e){if(!Ie(e)||!Ce(e)||!e.children.some(Y))return null;let t=[],n=[],o=0,r=s=>{let i=`_n$${o++}`;return t.push({ref:i,expr:s}),i};return a(e,"_el$"),{html:Rt(e),tag:e.tag,steps:t,holes:n};function a(s,i){let l=-1;s.children.forEach((u,d)=>{Y(u)&&(l=d)});let p=null;for(let u=0;u<=l;u++){let d=s.children[u],g=p?`${p}.nextSibling`:`${i}.firstChild`;if(Z(d)){let w=r(g),m=r(`holeEnd(${w})`);n.push({parentRef:i,startRef:w,endRef:m,node:d}),p=m;continue}let k=r(g);d.kind==="element"&&Y(d)&&a(d,k),p=k}}}function Rt(e){return O(Te(e)).split(Me).join(ht+vt)}function Te(e){return{...e,children:e.children.map(t=>Z(t)?{kind:"text",value:Me}:t.kind==="element"?Te(t):t)}}var Me="\0fx-hole\0";var pe={version:1,module:"@fluixi/dom",symbols:["createNativeElement","insert","spread","setAttribute","delegateEvents","createComponent","createMemo","untrack","Show","For","Index","Switch","Match","Dynamic","ErrorBoundary"]},fn={version:2,module:"@fluixi/dom",symbols:[...pe.symbols,"template","cloneTemplate","walk"]};var yt={show:"Show",for:"For",index:"Index",switch:"Switch",match:"Match",dynamic:"Dynamic",errorBoundary:"ErrorBoundary",suspense:"Suspense"};function Et(e){return/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(e)}function Le(e){return Et(e)?e:JSON.stringify(e)}function Nt(e){return e.expr!==void 0?e.reactive?`() => (${e.expr})`:`(${e.expr})`:JSON.stringify(e.literal??!0)}function bt(e){return e.expr!==void 0?`(${e.expr})`:JSON.stringify(e.literal??!0)}function kt(e,t,n){let o=e.filter(i=>i.kind==="spread"),a=e.filter(i=>i.kind!=="spread").map(i=>`${Le(i.name)}: ${Nt(i)}`);t!=null&&a.push(`children: ${t}`);let s=`{ ${a.join(", ")} }`;return o.length>0?(n.add("mergeProps"),`mergeProps(${o.map(i=>i.expr).join(", ")}, ${s})`):s}function Pe(e,t,n){return e.length===1?A(e[0],t,n):`[${e.map(o=>A(o,t,n)).join(", ")}]`}function $e(e,t,n,o,r){o.add("createMemo"),o.add("createComponent");let a=t.filter(p=>p.kind==="spread"),i=t.filter(p=>p.kind!=="spread").map(p=>`get ${Le(p.name)}() { return ${bt(p)}; }`);n.length>0&&i.push(`get children() { return ${Pe(n,o,r)}; }`);let l=`{ ${i.join(", ")} }`;return a.length>0&&(o.add("mergeProps"),l=`mergeProps(${a.map(p=>p.expr).join(", ")}, ${l})`),`createMemo(() => createComponent(${e}, ${l}))`}function St(e,t){let n=Se(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))});`}var Oe=!1;function A(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":Pe(e.children,t,n);case"component":return $e(e.name,e.props,e.children,t,n);case"control":{let o=yt[e.control]??e.control;return t.add(o),$e(o,e.props,e.children,t,n)}case"element":{if(n&&e.static&&!e.svg&&ce(e)){t.add("templateNode");let i=`_tmpl$${n.length}`;return n.push({id:i,html:O(e),tag:e.tag,svg:!1}),`templateNode(${i}, ${JSON.stringify(e.tag)})`}if(n&&Oe){let i=we(e);if(i){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:i.html,tag:i.tag,svg:!1});let p=[`const _el$ = templateNode(${l}, ${JSON.stringify(i.tag)}, true);`];for(let u of i.steps)p.push(`const ${u.ref} = ${u.expr};`);for(let u of i.holes)p.push(`insert(${u.parentRef}, holeScope(${u.startRef}, () => (${A(u.node,t,n)})), ${u.endRef}, holeContent(${u.startRef}, ${u.endRef}));`);return p.push("return _el$;"),`(() => { ${p.join(" ")} })()`}}t.add("createNativeElement");let o=JSON.stringify(e.tag),r="_el$",a=[],s=e.svg?`${o}, true`:o;if(a.push(`const ${r} = createNativeElement(${s});`),e.props.length>0)if(!e.svg&&e.props.every(P))for(let i of e.props)a.push(St(r,i));else{t.add("spread");let i=e.svg?", isSVG: true":"";a.push(`spread({ element: ${r}, props: ${kt(e.props,null,t)}${i} });`)}for(let i of e.children){t.add("insert");let l=A(i,t,n),p=i.kind==="expr"&&i.reactive||i.kind==="component"||i.kind==="control";a.push(p?`insert(${r}, ${l}, null);`:`insert(${r}, ${l});`)}return a.push(`return ${r};`),`(() => { ${a.join(" ")} })()`}}}function D(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 C={name:"imperative",contract:pe,emit(e,t){let n=new Set,o=t?.templateClone!==!1?[]:void 0;return Oe=t?.partialTemplates===!0,{code:A(e,n,o),imports:Array.from(n),templates:o}}};var Q=require("@babel/core"),ue=Re(require("@babel/generator"),1);var Je=require("@fluixi/template-parser");function J(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 a=t[r].replace(/\t/g," ");r!==0&&(a=a.replace(/^ +/,"")),r!==t.length-1&&(a=a.replace(/ +$/,"")),a&&(r!==n&&(a+=" "),o+=a)}return o}var Ae=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]);function It(e){return e.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}function De(e){return e.charAt(0).toUpperCase()+e.slice(1)}var de=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}=C.emit(t,{});for(let a of o)this.used.add(a);return D(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(i=>i.kind==="IfDirective");if(s&&s.kind==="IfDirective"){let i=o+1;i<t.length&&this.isBlankText(t[i])&&i++;let l=t[i],p=l&&(l.kind==="Element"||l.kind==="Component")&&l.attributes.some(u=>u.kind==="ElseDirective");n.push(this.lowerIf(r,s.hole,p?l:null)),p&&(o=i);continue}if(r.attributes.some(i=>i.kind==="EachDirective")){n.push(this.lowerEach(r));continue}}let a=this.lowerNode(r);a&&n.push(a)}return n}isBlankText(t){return t.kind==="Text"&&!t.raw&&J(t.value)===""}lowerNode(t){switch(t.kind){case"Text":{if(t.raw)return{kind:"text",value:t.value};let n=J(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(a=>a!==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:a}=this.partitionSlots(t.children);for(let[l,p]of r){let u=p.length===1?p[0]:{kind:"fragment",children:p},d={name:l,kind:"attr",expr:this.emit(u),jsxElement:!0},g=o.findIndex(k=>k.name===l);g>=0?o[g]=d:o.push(d)}let s=t.attributes.find(l=>l.kind==="LoadDirective"),i=s?W(`load:${s.strategy}`,s.modifier):void 0;return{kind:"component",name:n,props:o,children:this.lowerChildren(a),...i?{load:i}:{}}}partitionSlots(t){let n=new Map,o=[];for(let r of t){if(r.kind==="Element"||r.kind==="Component"){let a=r.attributes.find(s=>s.kind==="Attribute"&&s.name==="slot");if(a&&a.value&&a.value.kind==="static"){let s={...r,attributes:r.attributes.filter(p=>p!==a)},i=s.kind==="Element"?this.lowerElement(s):this.lowerComponent(s),l=n.get(a.value.value)??[];l.push(i),n.set(a.value.value,l);continue}}o.push(r)}return{slots:n,rest:o}}lowerIf(t,n,o){let r=this.hole(n),a=[{name:"when",kind:"attr",expr:r.code,reactive:r.reactive}];if(o){let i=this.stripAndLower(o,l=>l.kind==="ElseDirective");a.push({name:"fallback",kind:"attr",expr:this.emit(i),jsxElement:!0})}let s=this.stripAndLower(t,i=>i.kind==="IfDirective");return{kind:"component",name:"Show",props:a,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 a=this.itemArrow(t),s;if(a){let l={kind:"expr",code:a.body,reactive:a.bodyReactive},p=this.rebuildWithChildren(t,[l]);s=`(${a.params.join(", ")}) => (${this.emit(p)})`}else{let l=this.stripAndLower(t,p=>p.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,a=[],s=!1,i=[];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 p=this.hole(l.hole);o.push(`${JSON.stringify(l.name)}: ${p.code}`),r=r||p.reactive;break}case"StyleDirective":{let p=this.hole(l.hole);a.push(`${JSON.stringify(l.name)}: ${p.code}`),s=s||p.reactive;break}case"BindDirective":n.push(...this.bindProps(l.name,this.hole(l.hole).code));break;case"UseDirective":{let p=l.name??(l.hole!=null?this.hole(l.hole).code:null);if(!p)break;i.push(l.name!=null&&l.hole!=null?`[${p}, () => (${this.hole(l.hole).code})]`:`[${p}]`);break}}return o.length>0&&n.push({name:"classList",kind:"attr",expr:`{ ${o.join(", ")} }`,reactive:r}),a.length>0&&n.push({name:"style",kind:"attr",expr:`{ ${a.join(", ")} }`,reactive:s}),i.length>0&&n.push({name:"use",kind:"attr",expr:`[${i.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"+De(t.name),kind:"event",event:{name:n,delegated:Ae.has(n)},expr:o};let a=this.wrapHandler(o,t.modifiers),s=this.eventOptions(t.modifiers),i=s?`[${a}, ${s}]`:a;return{name:"on:"+n,kind:"attr",expr:i}}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",a=o?"checked":"value";this.used.add("bindPair");let s=`bindPair(${n})`;return[{name:t,kind:"attr",expr:`${s}[0]()`,reactive:!0},{name:"on"+De(r),kind:"event",event:{name:r,delegated:Ae.has(r)},expr:`(e) => ${s}[1](e.target.${a})`}]}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 a={name:o,kind:"attr"};if(n==null)return a.literal=!0,a;if(n.kind==="static")return a.literal=n.value,a;if(n.kind==="hole"){let l=this.hole(n.hole);return a.expr=l.code,a.reactive=l.reactive,a}let s=!1,i=n.parts.map(l=>{if("text"in l)return It(l.text);let p=this.hole(l.hole);return s=s||p.reactive,"${"+p.code+"}"}).join("");return a.expr="`"+i+"`",a.reactive=s,a}};function je(e,t,n,o={}){let{root:r}=(0,Je.parseTemplate)(e,{svg:o.svg});return new de(t,n).lowerRoot(r.children)}var Ct=ue.default.default??ue.default;function wt(e){return Ct(e,{concise:!0}).code}function Tt(e,t,n){let o={code:ee(e,t,n),reactive:me(e)};if(Q.types.isArrowFunctionExpression(e)&&!Q.types.isBlockStatement(e.body)){let r=e.body;o.arrow={params:e.params.map(a=>wt(a)),body:ee(r,t,n),bodyReactive:me(r)}}return Q.types.isObjectExpression(e)&&(o.object=!0),o}function Fe(e,t,n={}){let o=e.quasi,r=o.expressions.map(a=>Tt(a,t,n.onNested));return je(Mt(o),r,t,n)}function Mt(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 a=e.expressions[o];t.push({kind:"hole",index:o,start:a.start??0,end:a.end??0})}}),t}function $t(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 te(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 a of r.children)o(a);return!1;case"fragment":for(let a of r.children)o(a);return!1;case"element":{let a=!0;for(let i of r.children)o(i)||(a=!1);let s;for(let i of r.props)if(s=$t(i),s)break;return!s&&!a&&(s=Lt(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 Lt(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"}function ne(e,t=new Set,n={}){let o=Fe(e,t,n);return te(o),o}var Pt="children";function j(e){switch(e.kind){case"call":return!0;case"member":return e.property!==Pt;case"compound":return e.parts.some(j);case"opaque":return!1}}var Ot=new Set(["CallExpression","OptionalCallExpression"]),At=new Set(["MemberExpression","OptionalMemberExpression"]);function _(e){if(!e)return{kind:"opaque"};if(Ot.has(e.type))return{kind:"call"};if(At.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(F)}:e.type==="LogicalExpression"||e.type==="BinaryExpression"?{kind:"compound",parts:[e.left,e.right].map(F)}:e.type==="TemplateLiteral"?{kind:"compound",parts:e.expressions.map(F)}:e.type==="ObjectExpression"?{kind:"compound",parts:e.properties.filter(n=>(n.type==="ObjectProperty"||n.type==="Property")&&n.computed!==!0).map(n=>F(n.value))}:e.type==="ArrayExpression"?{kind:"compound",parts:e.elements.filter(n=>n!=null&&n.type!=="SpreadElement").map(F)}:{kind:"opaque"}}var F=e=>_(e);var Dt=new Set(["svg","path","circle","rect","line","polygon","polyline","ellipse","g","defs","clipPath","text"]),Jt=/^on[A-Z]/,jt=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]),Be=e=>j(_(e));function X(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}var fe=e=>!!e&&typeof X(e)=="string";function Ft(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 ge(e){return e.type==="JSXIdentifier"?e.name==="class"?"className":e.name:e.type==="JSXNamespacedName"?`${e.namespace.name}:${e.name.name}`:"unknown"}function _t(e,t){let n=ge(e.name),o=Jt.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:jt.has(l)}}let i=e.value;if(i==null)return s.literal=!0,s;if(fe(i))return s.literal=X(i),s;if(i.type==="JSXExpressionContainer"&&i.expression?.type!=="JSXEmptyExpression"){let l=i.expression,p=X(l);return p!==void 0?(s.literal=p,s):(s.expr=t.code(l),s.reactive=r?!1:Be(l),(l.type==="JSXElement"||l.type==="JSXFragment")&&(s.jsxElement=!0),s)}return s.literal=!0,s}function _e(e,t){let n=e.value;return n==null?null:fe(n)?JSON.stringify(X(n)):n.type==="JSXExpressionContainer"&&n.expression?.type!=="JSXEmptyExpression"?t.code(n.expression):null}function Xt(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"||ae(ge(r.name)))continue;let a=r.name.type==="JSXNamespacedName"?r.name.namespace.name:null;if(a==="use"){let s=r.name.name.name;t.used.add(s);let i=_e(r,t);o.push(i!=null?`[${s}, () => (${i})]`:`[${s}]`);continue}if(a==="oncapture"){let s=r.name.name.name.toLowerCase(),i=_e(r,t)??"undefined";n.push({name:"on:"+s,kind:"attr",expr:`[${i}, { capture: true }]`});continue}n.push(_t(r,t))}return o.length>0&&n.push({name:"use",kind:"attr",expr:`[${o.join(", ")}]`}),n}function Xe(e,t){let n=[];for(let o of e)if(o.type==="JSXText"){let r=J(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:Be(r)})}}else o.type==="JSXElement"||o.type==="JSXFragment"?n.push(He(o,t)):o.type==="JSXSpreadChild"&&n.push({kind:"expr",code:t.code(o.expression),reactive:!1});return n}function Bt(e){for(let t of e){if(t.type!=="JSXAttribute")continue;let n=ge(t.name);if(ae(n)){if(t.value&&!fe(t.value))throw new I(`'${n}' needs a literal value, not an expression — the strategy is compile-time.`);return W(n,t.value?X(t.value):null)}}}function He(e,t){if(e.type==="JSXFragment")return{kind:"fragment",children:Xe(e.children,t)};let{tag:n,component:o}=Ft(e.openingElement.name,t),r=Xt(e.openingElement.attributes,t),a=Xe(e.children,t);if(o){let s=Bt(e.openingElement.attributes);return{kind:"component",name:n,props:r,children:a,...s?{load:s}:{}}}return{kind:"element",tag:n,svg:Dt.has(n),props:r,children:a,static:!1}}function ze(e,t){let n=He(e,t);return te(n),n}var Ht=he.default.default??he.default;function Ve(e){return Ht(e,{concise:!0}).code}function zt(e,t,n){let o=S.types.cloneNode(e,!0),r=S.types.file(S.types.program([S.types.expressionStatement(o)])),a=!1,s=(i,l,p)=>{for(let u of p)t.add(u);i.replaceWith(S.template.expression(l,{placeholderPattern:!1,plugins:["typescript"]})()),i.skip(),a=!0};return(0,S.traverse)(r,{"JSXElement|JSXFragment"(i){let l=i.node,p=ve(l,t,n);n?.(p);let{code:u,imports:d,templates:g}=C.emit(p,{});s(i,D(u,g),d)},TaggedTemplateExpression(i){let l=i.node.tag;if(!S.types.isIdentifier(l)||l.name!=="html"&&l.name!=="svg")return;let p=ne(i.node,t,{svg:l.name==="svg",onNested:n});n?.(p);let{code:u,imports:d,templates:g}=C.emit(p,{});s(i,D(u,g),d)}}),a?r.program.body[0].expression:e}function ee(e,t,n){return Ve(zt(e,t,n))}function me(e){return j(_(e))}function ve(e,t=new Set,n){return ze(e,{code:r=>r.type==="JSXMemberExpression"?Ve(r):ee(r,t,n),used:t})}var We=new Set(L),Ue=new Set(M),$=(0,Ge.declare)((e,t={})=>{e.assertVersion(7);let{delegateEvents:n=!0,signalModule:o="@fluixi/dom",controlFlowModule:r="@fluixi/dom",routerModule:a="@fluixi/core/router-next",reactiveModule:s="@fluixi/reactive/signal",templateClone:i=!0,partialTemplates:l=!0,format:p="both",litTag:u="html",resolve:d=[]}=t,g=Ee(d),k=p==="lit"||p==="both",w={irImports:new Set,libModule:"@fluixi/core",controlFlowModule:r,routerModule:a,templateClone:i,partialTemplates:l,hasJSX:!1,hasLitHTML:!1,needsControlFlowImport:!1,needsCreateMemo:!1,controlFlowComponents:new Set,resolvedComponents:new Map,deferredComponents:new Map,componentResolver:g,delegatedEvents:new Set,staticTemplates:new Map,staticCounter:0};return{name:"@fluixi/babel-plugin-jsx",manipulateOptions(m,f){f.plugins.push("jsx","typescript")},pre(m){Object.assign(m,w)},visitor:{ImportDeclaration(m,f){m.node.source.value==="@fluixi/core/rx"&&(m.node.source=c.types.stringLiteral("@fluixi/reactive"))},Program:{enter(m,f){Object.assign(f,{hasJSX:!1,hasLitHTML:!1,hasLitIR:!1,needsControlFlowImport:!1,needsCreateMemo:!1,controlFlowComponents:new Set,resolvedComponents:new Map,deferredComponents:new Map,componentResolver:g,delegatedEvents:new Set,staticTemplates:new Map,staticCounter:0,libModule:"@fluixi/core",controlFlowModule:r,routerModule:a,templateClone:i,partialTemplates:l,irImports:new Set,needsCreateNativeElement:!1,needsInsert:!1,needsSpread:!1,needsCreateComponent:!1,needsMergeProps:!1})},exit(m,f){let y=[];if(f.hasJSX||f.hasLitIR){if(f.irImports.size>0){let v=new Set(["Show","For","Index","Switch","Match","Dynamic","ErrorBoundary","Portal","Suspense"]),h=new Set(["createMemo","createEffect","createRenderEffect","createRoot","createSignal","onCleanup","batch","untrack"]),R=Array.from(f.irImports),E=x=>c.types.importSpecifier(c.types.identifier(x),c.types.identifier(x)),b=x=>!m.scope.hasBinding(x),T=R.filter(x=>h.has(x)&&b(x)),N=R.filter(x=>!v.has(x)&&!h.has(x)&&b(x)),H=R.filter(x=>v.has(x)&&b(x));T.length>0&&y.push(c.types.importDeclaration(T.map(E),c.types.stringLiteral(s))),N.length>0&&y.push(c.types.importDeclaration(N.map(E),c.types.stringLiteral(o))),H.length>0&&y.push(c.types.importDeclaration(H.map(E),c.types.stringLiteral(r)))}if(f.needsCreateMemo&&!m.scope.hasBinding("createMemo")&&y.push(c.types.importDeclaration([c.types.importSpecifier(c.types.identifier("createMemo"),c.types.identifier("createMemo"))],c.types.stringLiteral(s))),f.needsControlFlowImport&&f.controlFlowComponents.size>0){let v=Array.from(f.controlFlowComponents).filter(N=>!m.scope.hasBinding(N)),h=f.libModule??"@fluixi/core",R=v.filter(N=>Ue.has(N)),E=v.filter(N=>We.has(N)),b=v.filter(N=>!We.has(N)&&!Ue.has(N)),T=(N,H)=>c.types.importDeclaration(N.map(x=>c.types.importSpecifier(c.types.identifier(x),c.types.identifier(x))),c.types.stringLiteral(H));b.length>0&&y.push(T(b,r)),E.length>0&&y.push(T(E,h)),R.length>0&&y.push(T(R,a))}let B=[];if(f.deferredComponents.size>0){for(let[v,h]of f.deferredComponents)m.scope.hasBinding(v)||B.push(c.types.variableDeclaration("const",[c.types.variableDeclarator(c.types.identifier(v),c.types.callExpression(c.types.identifier("deferred"),[c.types.arrowFunctionExpression([],c.types.callExpression(c.types.import(),[c.types.stringLiteral(h.module)])),c.types.objectExpression([c.types.objectProperty(c.types.identifier("strategy"),Vt(h.strategy)),c.types.objectProperty(c.types.identifier("export"),c.types.stringLiteral(h.export))])]))]));B.length>0&&!m.scope.hasBinding("deferred")&&y.push(c.types.importDeclaration([c.types.importSpecifier(c.types.identifier("deferred"),c.types.identifier("deferred"))],c.types.stringLiteral(f.libModule??"@fluixi/core")))}if(f.resolvedComponents.size>0){let v=new Map;for(let[h,R]of f.resolvedComponents){if(m.scope.hasBinding(h))continue;let E=v.get(R.module)??[];E.push({local:h,exported:R.export}),v.set(R.module,E)}for(let[h,R]of v)y.push(c.types.importDeclaration(R.map(({local:E,exported:b})=>b==="default"?c.types.importDefaultSpecifier(c.types.identifier(E)):c.types.importSpecifier(c.types.identifier(E),c.types.identifier(b))),c.types.stringLiteral(h)))}if(n&&f.delegatedEvents.size>0){y.push(c.types.importDeclaration([c.types.importSpecifier(c.types.identifier("delegateEvents"),c.types.identifier("delegateEvents"))],c.types.stringLiteral(o)));let v=c.types.arrayExpression(Array.from(f.delegatedEvents).map(R=>c.types.stringLiteral(R))),h=c.types.expressionStatement(c.types.callExpression(c.types.identifier("delegateEvents"),[v]));m.node.body.unshift(h)}if(B.length>0&&m.node.body.unshift(...B),f.staticTemplates.size>0){let v=[];for(let[h,R]of f.staticTemplates){let b=h.startsWith("svg:")?h.slice(4):h;v.push(c.types.variableDeclaration("const",[c.types.variableDeclarator(c.types.identifier(R),c.types.stringLiteral(b))]))}m.node.body.unshift(...v)}}y.length>0&&m.node.body.unshift(...Wt(y))}},JSXElement(m,f){f.hasJSX=!0,m.replaceWith(qe(m.node,f))},JSXFragment(m,f){f.hasJSX=!0,m.replaceWith(qe(m.node,f))},TaggedTemplateExpression(m,f){k&&c.types.isIdentifier(m.node.tag)&&(m.node.tag.name===u||m.node.tag.name==="svg")&&m.replaceWith(Ut(m.node,f))}}}});function Ke(e){return t=>{q(t,{resolver:e.componentResolver,modules:{controlFlowModule:e.controlFlowModule,coreModule:e.libModule,routerModule:e.routerModule},strategyFor:n=>n.load}),K(t),re(t,e)}}function Vt(e){let t=[c.types.objectProperty(c.types.identifier("kind"),c.types.stringLiteral(e.kind))];return e.kind==="visible"&&e.rootMargin&&t.push(c.types.objectProperty(c.types.identifier("rootMargin"),c.types.stringLiteral(e.rootMargin))),e.kind==="interaction"&&t.push(c.types.objectProperty(c.types.identifier("events"),c.types.arrayExpression(e.events.map(n=>c.types.stringLiteral(n))))),e.kind==="media"&&t.push(c.types.objectProperty(c.types.identifier("query"),c.types.stringLiteral(e.query))),c.types.objectExpression(t)}function Ye(e,t,n){if(!t||t.length===0)return e;let o=new Map;for(let r of t){let a=`${r.svg?"svg:":""}${r.html}`,s=n.staticTemplates.get(a);s||(s=`_tmpl$${n.staticTemplates.size}`,n.staticTemplates.set(a,s)),o.set(r.id,s)}return e.replace(/_tmpl\$\d+/g,r=>o.get(r)??r)}function qe(e,t){let n=new Set,o=ve(e,n,Ke(t));q(o,{resolver:t.componentResolver,modules:{controlFlowModule:t.controlFlowModule,coreModule:t.libModule,routerModule:t.routerModule},strategyFor:l=>l.load}),K(o);let{code:r,imports:a,templates:s}=C.emit(o,{templateClone:t.templateClone,partialTemplates:t.partialTemplates});for(let l of a)n.add(l);for(let l of n)t.irImports.add(l);re(o,t);let i=Ye(r,s,t);return c.template.expression(i,{placeholderPattern:!1,plugins:["typescript"]})()}function Wt(e){let t=new Map,n=[];for(let o of e){let r=o.source.value;if(!o.specifiers.every(i=>c.types.isImportSpecifier(i))){n.push(o);continue}let s=t.get(r);if(!s){let i=new Set(o.specifiers.map(l=>l.local.name));t.set(r,{decl:o,names:i}),n.push(o);continue}for(let i of o.specifiers)s.names.has(i.local.name)||(s.names.add(i.local.name),s.decl.specifiers.push(i))}return n}function Ut(e,t){let n=new Set,o=c.types.isIdentifier(e.tag)&&e.tag.name==="svg",r=ne(e,n,{svg:o,onNested:Ke(t)});q(r,{resolver:t.componentResolver,modules:{controlFlowModule:t.controlFlowModule,coreModule:t.libModule,routerModule:t.routerModule},strategyFor:p=>p.load}),K(r);let{code:a,imports:s,templates:i}=C.emit(r,{templateClone:t.templateClone,partialTemplates:t.partialTemplates});for(let p of s)n.add(p);for(let p of n)t.irImports.add(p);re(r,t),t.hasLitIR=!0;let l=c.template.expression(Ye(a,i,t),{placeholderPattern:!1,plugins:["typescript"]})();return qt(l,e),l}function qt(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 a of c.types.VISITOR_KEYS[r.type]??[]){let s=r[a];if(Array.isArray(s))for(let i of s)i&&typeof i=="object"&&"type"in i&&o(i);else s&&typeof s=="object"&&"type"in s&&o(s)}}};o(e)}function re(e,t){if(e.kind==="component"&&e.source&&(e.source.origin==="builtin"?(t.controlFlowComponents.add(e.name),t.needsControlFlowImport=!0):U(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)re(n,t)}var Gt=$;function Kt(e){return[$,e]}function oe(e={}){return{plugins:[[$,{runtime:"automatic",importSource:"@fluixi/jsx",development:!1,detectReactivity:!0,useLitHTML:!0,hoistStatics:!0,delegateEvents:!0,optimizeControlFlow:!0,sourceMaps:!0,...e}]]}}var Yt={production:oe({development:!1,hoistStatics:!0,delegateEvents:!0,optimizeControlFlow:!0}),development:oe({development:!0,hoistStatics:!1,sourceMaps:!0}),minimal:oe({detectReactivity:!1,useLitHTML:!1,hoistStatics:!1,delegateEvents:!1,optimizeControlFlow:!1})};
|
|
1
|
+
"use strict";var Ze=Object.create;var z=Object.defineProperty;var Qe=Object.getOwnPropertyDescriptor;var et=Object.getOwnPropertyNames;var tt=Object.getPrototypeOf,nt=Object.prototype.hasOwnProperty;var rt=(e,t)=>{for(var n in t)z(e,n,{get:t[n],enumerable:!0})},Re=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of et(t))!nt.call(e,r)&&r!==n&&z(e,r,{get:()=>t[r],enumerable:!(o=Qe(t,r))||o.enumerable});return e};var xe=(e,t,n)=>(n=e!=null?Ze(tt(e)):{},Re(t||!e||!e.__esModule?z(n,"default",{value:e,enumerable:!0}):n,e)),ot=e=>Re(z({},"__esModule",{value:!0}),e);var Zt={};rt(Zt,{babelPluginReactiveJSX:()=>Gt,createPlugin:()=>Kt,createPreset:()=>oe,default:()=>$,presets:()=>Yt});module.exports=ot(Zt);var Ge=require("@babel/helper-plugin-utils");var it=e=>"components"in e;function ye(e,t){return e.replace(/\$(\d+)/g,(n,o)=>t[Number(o)]??n)}function st(e,t){return typeof t=="string"?{module:t,export:e}:t}function Ee(e=[]){let t=new Map,n=[],o=[];for(let s of e){if(!it(s)){o.push(s);continue}for(let[i,l]of Object.entries(s.components)){let p=st(i,l),u=t.get(i);if(u&&u.module!==p.module){let d=n.find(g=>g.name===i);d?d.modules.push(p.module):n.push({name:i,modules:[u.module,p.module]});continue}t.set(i,p)}}let r=new Map;return{resolve:s=>{if(r.has(s))return r.get(s);let i=t.get(s);if(!i)for(let l of o){let p=s.match(new RegExp(l.match.source,l.match.flags.replace("g","")));if(p){i={module:ye(l.module,p),export:l.export?ye(l.export,p):s};break}}return r.set(s,i),i},names:()=>[...t.keys()],conflicts:()=>n}}var ie=["Show","For","Index","Switch","Match","Portal","Dynamic","ErrorBoundary"],L=["Suspense","SuspenseList","Await"],M=["Router","Outlet","Redirect","Link"],tn=[...ie,...L,...M],se=new Set([...ie,...L]);function Ne(e={}){let{controlFlowModule:t="@fluixi/dom",coreModule:n="@fluixi/core",routerModule:o="@fluixi/core/router"}=e,r={};for(let a of ie)r[a]=t;for(let a of L)r[a]=n;for(let a of M)r[a]=o;return r}var V={kind:"eager"},at=["pointerdown","focusin","keydown"],be=new Set(["eager","idle","visible","interaction","media","never"]),I=class extends Error{};function ae(e){return e.startsWith("load:")}function W(e,t){let n=e.slice(5);if(!be.has(n))throw new I(`Unknown load strategy 'load:${n}'. Expected one of ${[...be].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?lt(t):[...at]};case"media":if(!t)throw new I(`'load:media' needs a query, e.g. load:media="(min-width: 1024px)".`);return{kind:"media",query:t};default:throw new I(`Unhandled load strategy '${n}'.`)}}function lt(e){let t=e.split(/[\s,]+/).map(n=>n.trim()).filter(Boolean);if(t.length===0)throw new I("'load:interaction' was given no event names.");return t}function U(e){return e.kind!=="eager"&&e.kind!=="never"}function q(e,t={}){let{resolver:n,isBound:o,modules:r,strategyFor:a}=t,s=Ne(r),i=new Map,l=new Set,p=d=>{let{name:g}=d;if(!g||g.includes(".")||o?.(g))return;let k=u(g);if(!k){l.add(g);return}let w=k.origin==="builtin"&&se.has(g)?V:a?.(d)??V;d.source={...k,loading:w},i.set(g,d.source)},u=d=>{if(se.has(d))return{module:s[d],export:d,origin:"builtin"};let g=n?.resolve(d);if(g)return{module:g.module,export:g.export,origin:"rule"};if(M.includes(d))return{module:s[d],export:d,origin:"builtin"}};return G(e,d=>{d.kind==="component"&&p(d)}),{resolved:i,unresolved:[...l]}}function G(e,t){let n=Array.isArray(e)?e:[e];for(let o of n){t(o);let r=o.children;r&&G(r,t)}}function K(e){let t=[];G(e,a=>{a.kind==="component"&&a.source&&t.push(a)});let n=new Set,o=new Set;for(let a of t){let{module:s,loading:i}=a.source;i.kind==="eager"&&n.add(s),i.kind==="never"&&o.add(s)}let r=new Map;for(let a of t){let s=a.source;U(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(a=>n.has(a))}}var c=require("@babel/core");var S=require("@babel/core"),he=xe(require("@babel/generator"),1);var ct=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),ke={className:"class",htmlFor:"for"},pt=new Set(["innerHTML","outerHTML","innerText","textContent","value","checked","selected","muted","defaultValue","defaultChecked","children","ref"]),dt=new Set(["script","style","textarea","title"]);function le(e){return dt.has(e)}function Se(e){return ke[e]??e}function P(e){return e.kind!=="attr"||e.expr!==void 0||e.name.includes(":")?!1:!pt.has(e.name)}function ce(e){if(!e.static||le(e.tag))return!1;for(let t of e.props)if(!P(t))return!1;for(let t of e.children)if(t.kind!=="text"&&!(t.kind==="element"&&ce(t)))return!1;return!0}function O(e){let t=e.props.map(mt).filter(Boolean).join(""),n=`<${e.tag}${t}>`;return ct.has(e.tag)?n:`${n}${e.children.map(ut).join("")}</${e.tag}>`}function ut(e){if(e.kind==="text")return gt(e.value);if(e.kind!=="element")throw new Error(`serializeStatic: unexpected ${e.kind}`);return O(e)}function mt(e){let t=ke[e.name]??e.name,n=e.literal;return n===!0||n===void 0?` ${t}`:n===!1||n===null?"":` ${t}="${ft(String(n))}"`}function ft(e){return e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function gt(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}var ht="<!--fx-->",vt="<!--fx/-->";function Z(e){return e.kind==="expr"||e.kind==="component"||e.kind==="control"}function Rt(e){return e.kind==="text"||e.kind==="element"&&Ie(e)}function Ie(e){return e.svg||le(e.tag)||!e.props.every(t=>P(t))?!1:e.children.every(t=>Rt(t)||Z(t))}function Y(e){if(Z(e))return!0;let t=e.children;return t?t.some(Y):!1}function Ce(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"||Ce(t))}function we(e){if(!Ie(e)||!Ce(e)||!e.children.some(Y))return null;let t=[],n=[],o=0,r=s=>{let i=`_n$${o++}`;return t.push({ref:i,expr:s}),i};return a(e,"_el$"),{html:xt(e),tag:e.tag,steps:t,holes:n};function a(s,i){let l=-1;s.children.forEach((u,d)=>{Y(u)&&(l=d)});let p=null;for(let u=0;u<=l;u++){let d=s.children[u],g=p?`${p}.nextSibling`:`${i}.firstChild`;if(Z(d)){let w=r(g),f=r(`holeEnd(${w})`);n.push({parentRef:i,startRef:w,endRef:f,node:d}),p=f;continue}let k=r(g);d.kind==="element"&&Y(d)&&a(d,k),p=k}}}function xt(e){return O(Te(e)).split(Me).join(ht+vt)}function Te(e){return{...e,children:e.children.map(t=>Z(t)?{kind:"text",value:Me}:t.kind==="element"?Te(t):t)}}var Me="\0fx-hole\0";var pe={version:1,module:"@fluixi/dom",symbols:["createNativeElement","insert","spread","setAttribute","delegateEvents","createComponent","createMemo","untrack","Show","For","Index","Switch","Match","Dynamic","ErrorBoundary"]},fn={version:2,module:"@fluixi/dom",symbols:[...pe.symbols,"template","cloneTemplate","walk"]};var yt={show:"Show",for:"For",index:"Index",switch:"Switch",match:"Match",dynamic:"Dynamic",errorBoundary:"ErrorBoundary",suspense:"Suspense"};function Et(e){return/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(e)}function Le(e){return Et(e)?e:JSON.stringify(e)}function Nt(e){return e.expr!==void 0?e.reactive?`() => (${e.expr})`:`(${e.expr})`:JSON.stringify(e.literal??!0)}function bt(e){return e.expr!==void 0?`(${e.expr})`:JSON.stringify(e.literal??!0)}function kt(e,t,n){let o=e.filter(i=>i.kind==="spread"),a=e.filter(i=>i.kind!=="spread").map(i=>`${Le(i.name)}: ${Nt(i)}`);t!=null&&a.push(`children: ${t}`);let s=`{ ${a.join(", ")} }`;return o.length>0?(n.add("mergeProps"),`mergeProps(${o.map(i=>i.expr).join(", ")}, ${s})`):s}function Pe(e,t,n){return e.length===1?A(e[0],t,n):`[${e.map(o=>A(o,t,n)).join(", ")}]`}function $e(e,t,n,o,r){o.add("createMemo"),o.add("createComponent");let a=t.filter(p=>p.kind==="spread"),i=t.filter(p=>p.kind!=="spread").map(p=>`get ${Le(p.name)}() { return ${bt(p)}; }`);n.length>0&&i.push(`get children() { return ${Pe(n,o,r)}; }`);let l=`{ ${i.join(", ")} }`;return a.length>0&&(o.add("mergeProps"),l=`mergeProps(${a.map(p=>p.expr).join(", ")}, ${l})`),`createMemo(() => createComponent(${e}, ${l}))`}function St(e,t){let n=Se(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))});`}var Oe=!1;function A(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":Pe(e.children,t,n);case"component":return $e(e.name,e.props,e.children,t,n);case"control":{let o=yt[e.control]??e.control;return t.add(o),$e(o,e.props,e.children,t,n)}case"element":{if(n&&e.static&&!e.svg&&ce(e)){t.add("templateNode");let i=`_tmpl$${n.length}`;return n.push({id:i,html:O(e),tag:e.tag,svg:!1}),`templateNode(${i}, ${JSON.stringify(e.tag)})`}if(n&&Oe){let i=we(e);if(i){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:i.html,tag:i.tag,svg:!1});let p=[`const _el$ = templateNode(${l}, ${JSON.stringify(i.tag)}, true);`];for(let u of i.steps)p.push(`const ${u.ref} = ${u.expr};`);for(let u of i.holes)p.push(`insert(${u.parentRef}, holeScope(${u.startRef}, () => (${A(u.node,t,n)})), ${u.endRef}, holeContent(${u.startRef}, ${u.endRef}));`);return p.push("return _el$;"),`(() => { ${p.join(" ")} })()`}}t.add("createNativeElement");let o=JSON.stringify(e.tag),r="_el$",a=[],s=e.svg?`${o}, true`:o;if(a.push(`const ${r} = createNativeElement(${s});`),e.props.length>0)if(!e.svg&&e.props.every(P))for(let i of e.props)a.push(St(r,i));else{t.add("spread");let i=e.svg?", isSVG: true":"";a.push(`spread({ element: ${r}, props: ${kt(e.props,null,t)}${i} });`)}for(let i of e.children){t.add("insert");let l=A(i,t,n),p=i.kind==="expr"&&i.reactive||i.kind==="component"||i.kind==="control";a.push(p?`insert(${r}, ${l}, null);`:`insert(${r}, ${l});`)}return a.push(`return ${r};`),`(() => { ${a.join(" ")} })()`}}}function D(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 C={name:"imperative",contract:pe,emit(e,t){let n=new Set,o=t?.templateClone!==!1?[]:void 0;return Oe=t?.partialTemplates===!0,{code:A(e,n,o),imports:Array.from(n),templates:o}}};var Q=require("@babel/core"),ue=xe(require("@babel/generator"),1);var Je=require("@fluixi/template-parser");function J(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 a=t[r].replace(/\t/g," ");r!==0&&(a=a.replace(/^ +/,"")),r!==t.length-1&&(a=a.replace(/ +$/,"")),a&&(r!==n&&(a+=" "),o+=a)}return o}var Ae=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]);function It(e){return e.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}function De(e){return e.charAt(0).toUpperCase()+e.slice(1)}var de=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}=C.emit(t,{});for(let a of o)this.used.add(a);return D(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(i=>i.kind==="IfDirective");if(s&&s.kind==="IfDirective"){let i=o+1;i<t.length&&this.isBlankText(t[i])&&i++;let l=t[i],p=l&&(l.kind==="Element"||l.kind==="Component")&&l.attributes.some(u=>u.kind==="ElseDirective");n.push(this.lowerIf(r,s.hole,p?l:null)),p&&(o=i);continue}if(r.attributes.some(i=>i.kind==="EachDirective")){n.push(this.lowerEach(r));continue}}let a=this.lowerNode(r);a&&n.push(a)}return n}isBlankText(t){return t.kind==="Text"&&!t.raw&&J(t.value)===""}lowerNode(t){switch(t.kind){case"Text":{if(t.raw)return{kind:"text",value:t.value};let n=J(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(a=>a!==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:a}=this.partitionSlots(t.children);for(let[l,p]of r){let u=p.length===1?p[0]:{kind:"fragment",children:p},d={name:l,kind:"attr",expr:this.emit(u),jsxElement:!0},g=o.findIndex(k=>k.name===l);g>=0?o[g]=d:o.push(d)}let s=t.attributes.find(l=>l.kind==="LoadDirective"),i=s?W(`load:${s.strategy}`,s.modifier):void 0;return{kind:"component",name:n,props:o,children:this.lowerChildren(a),...i?{load:i}:{}}}partitionSlots(t){let n=new Map,o=[];for(let r of t){if(r.kind==="Element"||r.kind==="Component"){let a=r.attributes.find(s=>s.kind==="Attribute"&&s.name==="slot");if(a&&a.value&&a.value.kind==="static"){let s={...r,attributes:r.attributes.filter(p=>p!==a)},i=s.kind==="Element"?this.lowerElement(s):this.lowerComponent(s),l=n.get(a.value.value)??[];l.push(i),n.set(a.value.value,l);continue}}o.push(r)}return{slots:n,rest:o}}lowerIf(t,n,o){let r=this.hole(n),a=[{name:"when",kind:"attr",expr:r.code,reactive:r.reactive}];if(o){let i=this.stripAndLower(o,l=>l.kind==="ElseDirective");a.push({name:"fallback",kind:"attr",expr:this.emit(i),jsxElement:!0})}let s=this.stripAndLower(t,i=>i.kind==="IfDirective");return{kind:"component",name:"Show",props:a,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 a=this.itemArrow(t),s;if(a){let l={kind:"expr",code:a.body,reactive:a.bodyReactive},p=this.rebuildWithChildren(t,[l]);s=`(${a.params.join(", ")}) => (${this.emit(p)})`}else{let l=this.stripAndLower(t,p=>p.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,a=[],s=!1,i=[];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 p=this.hole(l.hole);o.push(`${JSON.stringify(l.name)}: ${p.code}`),r=r||p.reactive;break}case"StyleDirective":{let p=this.hole(l.hole);a.push(`${JSON.stringify(l.name)}: ${p.code}`),s=s||p.reactive;break}case"BindDirective":n.push(...this.bindProps(l.name,this.hole(l.hole).code));break;case"UseDirective":{let p=l.name??(l.hole!=null?this.hole(l.hole).code:null);if(!p)break;i.push(l.name!=null&&l.hole!=null?`[${p}, () => (${this.hole(l.hole).code})]`:`[${p}]`);break}}return o.length>0&&n.push({name:"classList",kind:"attr",expr:`{ ${o.join(", ")} }`,reactive:r}),a.length>0&&n.push({name:"style",kind:"attr",expr:`{ ${a.join(", ")} }`,reactive:s}),i.length>0&&n.push({name:"use",kind:"attr",expr:`[${i.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"+De(t.name),kind:"event",event:{name:n,delegated:Ae.has(n)},expr:o};let a=this.wrapHandler(o,t.modifiers),s=this.eventOptions(t.modifiers),i=s?`[${a}, ${s}]`:a;return{name:"on:"+n,kind:"attr",expr:i}}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",a=o?"checked":"value";this.used.add("bindPair");let s=`bindPair(${n})`;return[{name:t,kind:"attr",expr:`${s}[0]()`,reactive:!0},{name:"on"+De(r),kind:"event",event:{name:r,delegated:Ae.has(r)},expr:`(e) => ${s}[1](e.target.${a})`}]}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 a={name:o,kind:"attr"};if(n==null)return a.literal=!0,a;if(n.kind==="static")return a.literal=n.value,a;if(n.kind==="hole"){let l=this.hole(n.hole);return a.expr=l.code,a.reactive=l.reactive,a}let s=!1,i=n.parts.map(l=>{if("text"in l)return It(l.text);let p=this.hole(l.hole);return s=s||p.reactive,"${"+p.code+"}"}).join("");return a.expr="`"+i+"`",a.reactive=s,a}};function je(e,t,n,o={}){let{root:r}=(0,Je.parseTemplate)(e,{svg:o.svg});return new de(t,n).lowerRoot(r.children)}var Ct=ue.default.default??ue.default;function wt(e){return Ct(e,{concise:!0}).code}function Tt(e,t,n){let o={code:ee(e,t,n),reactive:me(e)};if(Q.types.isArrowFunctionExpression(e)&&!Q.types.isBlockStatement(e.body)){let r=e.body;o.arrow={params:e.params.map(a=>wt(a)),body:ee(r,t,n),bodyReactive:me(r)}}return Q.types.isObjectExpression(e)&&(o.object=!0),o}function Fe(e,t,n={}){let o=e.quasi,r=o.expressions.map(a=>Tt(a,t,n.onNested));return je(Mt(o),r,t,n)}function Mt(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 a=e.expressions[o];t.push({kind:"hole",index:o,start:a.start??0,end:a.end??0})}}),t}function $t(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 te(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 a of r.children)o(a);return!1;case"fragment":for(let a of r.children)o(a);return!1;case"element":{let a=!0;for(let i of r.children)o(i)||(a=!1);let s;for(let i of r.props)if(s=$t(i),s)break;return!s&&!a&&(s=Lt(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 Lt(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"}function ne(e,t=new Set,n={}){let o=Fe(e,t,n);return te(o),o}var Pt="children";function j(e){switch(e.kind){case"call":return!0;case"member":return e.property!==Pt;case"compound":return e.parts.some(j);case"opaque":return!1}}var Ot=new Set(["CallExpression","OptionalCallExpression"]),At=new Set(["MemberExpression","OptionalMemberExpression"]);function _(e){if(!e)return{kind:"opaque"};if(Ot.has(e.type))return{kind:"call"};if(At.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(F)}:e.type==="LogicalExpression"||e.type==="BinaryExpression"?{kind:"compound",parts:[e.left,e.right].map(F)}:e.type==="TemplateLiteral"?{kind:"compound",parts:e.expressions.map(F)}:e.type==="ObjectExpression"?{kind:"compound",parts:e.properties.filter(n=>(n.type==="ObjectProperty"||n.type==="Property")&&n.computed!==!0).map(n=>F(n.value))}:e.type==="ArrayExpression"?{kind:"compound",parts:e.elements.filter(n=>n!=null&&n.type!=="SpreadElement").map(F)}:{kind:"opaque"}}var F=e=>_(e);var Dt=new Set(["svg","path","circle","rect","line","polygon","polyline","ellipse","g","defs","clipPath","text"]),Jt=/^on[A-Z]/,jt=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]),Be=e=>j(_(e));function X(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}var fe=e=>!!e&&typeof X(e)=="string";function Ft(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 ge(e){return e.type==="JSXIdentifier"?e.name==="class"?"className":e.name:e.type==="JSXNamespacedName"?`${e.namespace.name}:${e.name.name}`:"unknown"}function _t(e,t){let n=ge(e.name),o=Jt.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:jt.has(l)}}let i=e.value;if(i==null)return s.literal=!0,s;if(fe(i))return s.literal=X(i),s;if(i.type==="JSXExpressionContainer"&&i.expression?.type!=="JSXEmptyExpression"){let l=i.expression,p=X(l);return p!==void 0?(s.literal=p,s):(s.expr=t.code(l),s.reactive=r?!1:Be(l),(l.type==="JSXElement"||l.type==="JSXFragment")&&(s.jsxElement=!0),s)}return s.literal=!0,s}function _e(e,t){let n=e.value;return n==null?null:fe(n)?JSON.stringify(X(n)):n.type==="JSXExpressionContainer"&&n.expression?.type!=="JSXEmptyExpression"?t.code(n.expression):null}function Xt(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"||ae(ge(r.name)))continue;let a=r.name.type==="JSXNamespacedName"?r.name.namespace.name:null;if(a==="use"){let s=r.name.name.name;t.used.add(s);let i=_e(r,t);o.push(i!=null?`[${s}, () => (${i})]`:`[${s}]`);continue}if(a==="oncapture"){let s=r.name.name.name.toLowerCase(),i=_e(r,t)??"undefined";n.push({name:"on:"+s,kind:"attr",expr:`[${i}, { capture: true }]`});continue}n.push(_t(r,t))}return o.length>0&&n.push({name:"use",kind:"attr",expr:`[${o.join(", ")}]`}),n}function Xe(e,t){let n=[];for(let o of e)if(o.type==="JSXText"){let r=J(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:Be(r)})}}else o.type==="JSXElement"||o.type==="JSXFragment"?n.push(He(o,t)):o.type==="JSXSpreadChild"&&n.push({kind:"expr",code:t.code(o.expression),reactive:!1});return n}function Bt(e){for(let t of e){if(t.type!=="JSXAttribute")continue;let n=ge(t.name);if(ae(n)){if(t.value&&!fe(t.value))throw new I(`'${n}' needs a literal value, not an expression — the strategy is compile-time.`);return W(n,t.value?X(t.value):null)}}}function He(e,t){if(e.type==="JSXFragment")return{kind:"fragment",children:Xe(e.children,t)};let{tag:n,component:o}=Ft(e.openingElement.name,t),r=Xt(e.openingElement.attributes,t),a=Xe(e.children,t);if(o){let s=Bt(e.openingElement.attributes);return{kind:"component",name:n,props:r,children:a,...s?{load:s}:{}}}return{kind:"element",tag:n,svg:Dt.has(n),props:r,children:a,static:!1}}function ze(e,t){let n=He(e,t);return te(n),n}var Ht=he.default.default??he.default;function Ve(e){return Ht(e,{concise:!0}).code}function zt(e,t,n){let o=S.types.cloneNode(e,!0),r=S.types.file(S.types.program([S.types.expressionStatement(o)])),a=!1,s=(i,l,p)=>{for(let u of p)t.add(u);i.replaceWith(S.template.expression(l,{placeholderPattern:!1,plugins:["typescript"]})()),i.skip(),a=!0};return(0,S.traverse)(r,{"JSXElement|JSXFragment"(i){let l=i.node,p=ve(l,t,n);n?.(p);let{code:u,imports:d,templates:g}=C.emit(p,{});s(i,D(u,g),d)},TaggedTemplateExpression(i){let l=i.node.tag;if(!S.types.isIdentifier(l)||l.name!=="html"&&l.name!=="svg")return;let p=ne(i.node,t,{svg:l.name==="svg",onNested:n});n?.(p);let{code:u,imports:d,templates:g}=C.emit(p,{});s(i,D(u,g),d)}}),a?r.program.body[0].expression:e}function ee(e,t,n){return Ve(zt(e,t,n))}function me(e){return j(_(e))}function ve(e,t=new Set,n){return ze(e,{code:r=>r.type==="JSXMemberExpression"?Ve(r):ee(r,t,n),used:t})}var We=new Set(L),Ue=new Set(M),$=(0,Ge.declare)((e,t={})=>{e.assertVersion(7);let{delegateEvents:n=!0,signalModule:o="@fluixi/dom",controlFlowModule:r="@fluixi/dom",routerModule:a="@fluixi/core/router",reactiveModule:s="@fluixi/reactive/signal",templateClone:i=!0,partialTemplates:l=!0,format:p="both",litTag:u="html",resolve:d=[]}=t,g=Ee(d),k=p==="lit"||p==="both",w={irImports:new Set,libModule:"@fluixi/core",controlFlowModule:r,routerModule:a,templateClone:i,partialTemplates:l,hasJSX:!1,hasLitHTML:!1,needsControlFlowImport:!1,needsCreateMemo:!1,controlFlowComponents:new Set,resolvedComponents:new Map,deferredComponents:new Map,componentResolver:g,delegatedEvents:new Set,staticTemplates:new Map,staticCounter:0};return{name:"@fluixi/babel-plugin-jsx",manipulateOptions(f,m){m.plugins.push("jsx","typescript")},pre(f){Object.assign(f,w)},visitor:{Program:{enter(f,m){Object.assign(m,{hasJSX:!1,hasLitHTML:!1,hasLitIR:!1,needsControlFlowImport:!1,needsCreateMemo:!1,controlFlowComponents:new Set,resolvedComponents:new Map,deferredComponents:new Map,componentResolver:g,delegatedEvents:new Set,staticTemplates:new Map,staticCounter:0,libModule:"@fluixi/core",controlFlowModule:r,routerModule:a,templateClone:i,partialTemplates:l,irImports:new Set,needsCreateNativeElement:!1,needsInsert:!1,needsSpread:!1,needsCreateComponent:!1,needsMergeProps:!1})},exit(f,m){let N=[];if(m.hasJSX||m.hasLitIR){if(m.irImports.size>0){let v=new Set(["Show","For","Index","Switch","Match","Dynamic","ErrorBoundary","Portal","Suspense"]),h=new Set(["createMemo","createEffect","createRenderEffect","createRoot","createSignal","onCleanup","batch","untrack"]),x=Array.from(m.irImports),y=R=>c.types.importSpecifier(c.types.identifier(R),c.types.identifier(R)),b=R=>!f.scope.hasBinding(R),T=x.filter(R=>h.has(R)&&b(R)),E=x.filter(R=>!v.has(R)&&!h.has(R)&&b(R)),H=x.filter(R=>v.has(R)&&b(R));T.length>0&&N.push(c.types.importDeclaration(T.map(y),c.types.stringLiteral(s))),E.length>0&&N.push(c.types.importDeclaration(E.map(y),c.types.stringLiteral(o))),H.length>0&&N.push(c.types.importDeclaration(H.map(y),c.types.stringLiteral(r)))}if(m.needsCreateMemo&&!f.scope.hasBinding("createMemo")&&N.push(c.types.importDeclaration([c.types.importSpecifier(c.types.identifier("createMemo"),c.types.identifier("createMemo"))],c.types.stringLiteral(s))),m.needsControlFlowImport&&m.controlFlowComponents.size>0){let v=Array.from(m.controlFlowComponents).filter(E=>!f.scope.hasBinding(E)),h=m.libModule??"@fluixi/core",x=v.filter(E=>Ue.has(E)),y=v.filter(E=>We.has(E)),b=v.filter(E=>!We.has(E)&&!Ue.has(E)),T=(E,H)=>c.types.importDeclaration(E.map(R=>c.types.importSpecifier(c.types.identifier(R),c.types.identifier(R))),c.types.stringLiteral(H));b.length>0&&N.push(T(b,r)),y.length>0&&N.push(T(y,h)),x.length>0&&N.push(T(x,a))}let B=[];if(m.deferredComponents.size>0){for(let[v,h]of m.deferredComponents)f.scope.hasBinding(v)||B.push(c.types.variableDeclaration("const",[c.types.variableDeclarator(c.types.identifier(v),c.types.callExpression(c.types.identifier("deferred"),[c.types.arrowFunctionExpression([],c.types.callExpression(c.types.import(),[c.types.stringLiteral(h.module)])),c.types.objectExpression([c.types.objectProperty(c.types.identifier("strategy"),Vt(h.strategy)),c.types.objectProperty(c.types.identifier("export"),c.types.stringLiteral(h.export))])]))]));B.length>0&&!f.scope.hasBinding("deferred")&&N.push(c.types.importDeclaration([c.types.importSpecifier(c.types.identifier("deferred"),c.types.identifier("deferred"))],c.types.stringLiteral(m.libModule??"@fluixi/core")))}if(m.resolvedComponents.size>0){let v=new Map;for(let[h,x]of m.resolvedComponents){if(f.scope.hasBinding(h))continue;let y=v.get(x.module)??[];y.push({local:h,exported:x.export}),v.set(x.module,y)}for(let[h,x]of v)N.push(c.types.importDeclaration(x.map(({local:y,exported:b})=>b==="default"?c.types.importDefaultSpecifier(c.types.identifier(y)):c.types.importSpecifier(c.types.identifier(y),c.types.identifier(b))),c.types.stringLiteral(h)))}if(n&&m.delegatedEvents.size>0){N.push(c.types.importDeclaration([c.types.importSpecifier(c.types.identifier("delegateEvents"),c.types.identifier("delegateEvents"))],c.types.stringLiteral(o)));let v=c.types.arrayExpression(Array.from(m.delegatedEvents).map(x=>c.types.stringLiteral(x))),h=c.types.expressionStatement(c.types.callExpression(c.types.identifier("delegateEvents"),[v]));f.node.body.unshift(h)}if(B.length>0&&f.node.body.unshift(...B),m.staticTemplates.size>0){let v=[];for(let[h,x]of m.staticTemplates){let b=h.startsWith("svg:")?h.slice(4):h;v.push(c.types.variableDeclaration("const",[c.types.variableDeclarator(c.types.identifier(x),c.types.stringLiteral(b))]))}f.node.body.unshift(...v)}}N.length>0&&f.node.body.unshift(...Wt(N))}},JSXElement(f,m){m.hasJSX=!0,f.replaceWith(qe(f.node,m))},JSXFragment(f,m){m.hasJSX=!0,f.replaceWith(qe(f.node,m))},TaggedTemplateExpression(f,m){k&&c.types.isIdentifier(f.node.tag)&&(f.node.tag.name===u||f.node.tag.name==="svg")&&f.replaceWith(Ut(f.node,m))}}}});function Ke(e){return t=>{q(t,{resolver:e.componentResolver,modules:{controlFlowModule:e.controlFlowModule,coreModule:e.libModule,routerModule:e.routerModule},strategyFor:n=>n.load}),K(t),re(t,e)}}function Vt(e){let t=[c.types.objectProperty(c.types.identifier("kind"),c.types.stringLiteral(e.kind))];return e.kind==="visible"&&e.rootMargin&&t.push(c.types.objectProperty(c.types.identifier("rootMargin"),c.types.stringLiteral(e.rootMargin))),e.kind==="interaction"&&t.push(c.types.objectProperty(c.types.identifier("events"),c.types.arrayExpression(e.events.map(n=>c.types.stringLiteral(n))))),e.kind==="media"&&t.push(c.types.objectProperty(c.types.identifier("query"),c.types.stringLiteral(e.query))),c.types.objectExpression(t)}function Ye(e,t,n){if(!t||t.length===0)return e;let o=new Map;for(let r of t){let a=`${r.svg?"svg:":""}${r.html}`,s=n.staticTemplates.get(a);s||(s=`_tmpl$${n.staticTemplates.size}`,n.staticTemplates.set(a,s)),o.set(r.id,s)}return e.replace(/_tmpl\$\d+/g,r=>o.get(r)??r)}function qe(e,t){let n=new Set,o=ve(e,n,Ke(t));q(o,{resolver:t.componentResolver,modules:{controlFlowModule:t.controlFlowModule,coreModule:t.libModule,routerModule:t.routerModule},strategyFor:l=>l.load}),K(o);let{code:r,imports:a,templates:s}=C.emit(o,{templateClone:t.templateClone,partialTemplates:t.partialTemplates});for(let l of a)n.add(l);for(let l of n)t.irImports.add(l);re(o,t);let i=Ye(r,s,t);return c.template.expression(i,{placeholderPattern:!1,plugins:["typescript"]})()}function Wt(e){let t=new Map,n=[];for(let o of e){let r=o.source.value;if(!o.specifiers.every(i=>c.types.isImportSpecifier(i))){n.push(o);continue}let s=t.get(r);if(!s){let i=new Set(o.specifiers.map(l=>l.local.name));t.set(r,{decl:o,names:i}),n.push(o);continue}for(let i of o.specifiers)s.names.has(i.local.name)||(s.names.add(i.local.name),s.decl.specifiers.push(i))}return n}function Ut(e,t){let n=new Set,o=c.types.isIdentifier(e.tag)&&e.tag.name==="svg",r=ne(e,n,{svg:o,onNested:Ke(t)});q(r,{resolver:t.componentResolver,modules:{controlFlowModule:t.controlFlowModule,coreModule:t.libModule,routerModule:t.routerModule},strategyFor:p=>p.load}),K(r);let{code:a,imports:s,templates:i}=C.emit(r,{templateClone:t.templateClone,partialTemplates:t.partialTemplates});for(let p of s)n.add(p);for(let p of n)t.irImports.add(p);re(r,t),t.hasLitIR=!0;let l=c.template.expression(Ye(a,i,t),{placeholderPattern:!1,plugins:["typescript"]})();return qt(l,e),l}function qt(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 a of c.types.VISITOR_KEYS[r.type]??[]){let s=r[a];if(Array.isArray(s))for(let i of s)i&&typeof i=="object"&&"type"in i&&o(i);else s&&typeof s=="object"&&"type"in s&&o(s)}}};o(e)}function re(e,t){if(e.kind==="component"&&e.source&&(e.source.origin==="builtin"?(t.controlFlowComponents.add(e.name),t.needsControlFlowImport=!0):U(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)re(n,t)}var Gt=$;function Kt(e){return[$,e]}function oe(e={}){return{plugins:[[$,{runtime:"automatic",importSource:"@fluixi/jsx",development:!1,detectReactivity:!0,useLitHTML:!0,hoistStatics:!0,delegateEvents:!0,optimizeControlFlow:!0,sourceMaps:!0,...e}]]}}var Yt={production:oe({development:!1,hoistStatics:!0,delegateEvents:!0,optimizeControlFlow:!0}),development:oe({development:!0,hoistStatics:!1,sourceMaps:!0}),minimal:oe({detectReactivity:!1,useLitHTML:!1,hoistStatics:!1,delegateEvents:!1,optimizeControlFlow:!1})};
|