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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/README.md +41 -16
  2. package/dist/analyze/expr-shape.cjs +1 -0
  3. package/dist/analyze/expr-shape.d.ts +15 -0
  4. package/dist/analyze/expr-shape.d.ts.map +1 -0
  5. package/dist/analyze/expr-shape.js +37 -0
  6. package/dist/analyze/expr-shape.mjs +1 -0
  7. package/dist/analyze/reactive-expr.cjs +1 -0
  8. package/dist/analyze/reactive-expr.d.ts +39 -0
  9. package/dist/analyze/reactive-expr.d.ts.map +1 -0
  10. package/dist/analyze/reactive-expr.js +31 -0
  11. package/dist/analyze/reactive-expr.mjs +1 -0
  12. package/dist/babel-GXO3KAVI.mjs +1 -0
  13. package/dist/chunk-3SAEGOMQ.mjs +1 -0
  14. package/dist/chunk-E2PW2OZU.mjs +1 -0
  15. package/dist/chunk-IBRM4W7I.mjs +10 -0
  16. package/dist/chunk-OHHZCYIQ.mjs +1 -0
  17. package/dist/chunk-TIE4XNAM.mjs +1 -0
  18. package/dist/frontend/babel/build-ir-lit.cjs +1 -1
  19. package/dist/frontend/babel/build-ir-lit.d.ts +1 -0
  20. package/dist/frontend/babel/build-ir-lit.d.ts.map +1 -1
  21. package/dist/frontend/babel/build-ir-lit.mjs +1 -1
  22. package/dist/frontend/babel/build-ir.cjs +1 -1
  23. package/dist/frontend/babel/build-ir.d.ts +13 -11
  24. package/dist/frontend/babel/build-ir.d.ts.map +1 -1
  25. package/dist/frontend/babel/build-ir.js +27 -217
  26. package/dist/frontend/babel/build-ir.mjs +1 -1
  27. package/dist/frontend/babel/index.cjs +1 -2
  28. package/dist/frontend/babel/index.mjs +1 -2
  29. package/dist/frontend/babel/lower-template.cjs +1 -1
  30. package/dist/frontend/babel/lower-template.d.ts +12 -9
  31. package/dist/frontend/babel/lower-template.d.ts.map +1 -1
  32. package/dist/frontend/babel/lower-template.js +33 -445
  33. package/dist/frontend/babel/lower-template.mjs +1 -1
  34. package/dist/frontend/babel/plugin.cjs +1 -2
  35. package/dist/frontend/babel/plugin.d.ts +24 -85
  36. package/dist/frontend/babel/plugin.d.ts.map +1 -1
  37. package/dist/frontend/babel/plugin.js +52 -1285
  38. package/dist/frontend/babel/plugin.mjs +1 -2
  39. package/dist/frontend/babel/server-functions.cjs +1 -1
  40. package/dist/frontend/babel/server-functions.d.ts.map +1 -1
  41. package/dist/frontend/babel/server-functions.js +2 -9
  42. package/dist/frontend/babel/server-functions.mjs +1 -1
  43. package/dist/index.cjs +8 -8
  44. package/dist/index.d.ts +4 -0
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +8 -0
  47. package/dist/index.mjs +9 -9
  48. package/dist/integrations.cjs +15 -19
  49. package/dist/integrations.d.ts +39 -151
  50. package/dist/integrations.d.ts.map +1 -1
  51. package/dist/integrations.js +79 -491
  52. package/dist/integrations.mjs +11 -17
  53. package/dist/lower/compile-template.cjs +1 -0
  54. package/dist/lower/compile-template.d.ts +57 -0
  55. package/dist/lower/compile-template.d.ts.map +1 -0
  56. package/dist/lower/compile-template.js +72 -0
  57. package/dist/lower/compile-template.mjs +1 -0
  58. package/dist/lower/jsx.cjs +1 -0
  59. package/dist/lower/jsx.d.ts +24 -0
  60. package/dist/lower/jsx.d.ts.map +1 -0
  61. package/dist/lower/jsx.js +193 -0
  62. package/dist/lower/jsx.mjs +1 -0
  63. package/dist/lower/template.cjs +1 -0
  64. package/dist/lower/template.d.ts +41 -0
  65. package/dist/lower/template.d.ts.map +1 -0
  66. package/dist/lower/template.js +445 -0
  67. package/dist/lower/template.mjs +1 -0
  68. package/dist/lower/text.cjs +1 -0
  69. package/dist/lower/text.d.ts +11 -0
  70. package/dist/lower/text.d.ts.map +1 -0
  71. package/dist/lower/text.js +31 -0
  72. package/dist/lower/text.mjs +1 -0
  73. package/dist/options.cjs +1 -1
  74. package/dist/options.d.ts +0 -2
  75. package/dist/options.d.ts.map +1 -1
  76. package/dist/options.js +0 -1
  77. package/dist/options.mjs +1 -1
  78. package/dist/server-fns-6QM243HC.mjs +2 -0
  79. package/dist/server-functions-E3LKCZ4R.mjs +1 -0
  80. package/dist/transform/bindings.cjs +1 -0
  81. package/dist/transform/bindings.d.ts +17 -0
  82. package/dist/transform/bindings.d.ts.map +1 -0
  83. package/dist/transform/bindings.js +69 -0
  84. package/dist/transform/bindings.mjs +1 -0
  85. package/dist/transform/index.cjs +3 -0
  86. package/dist/transform/index.d.ts +12 -0
  87. package/dist/transform/index.d.ts.map +1 -0
  88. package/dist/transform/index.js +10 -0
  89. package/dist/transform/index.mjs +12 -0
  90. package/dist/transform/server-fn-id.cjs +1 -0
  91. package/dist/transform/server-fn-id.d.ts +10 -0
  92. package/dist/transform/server-fn-id.d.ts.map +1 -0
  93. package/dist/transform/server-fn-id.js +18 -0
  94. package/dist/transform/server-fn-id.mjs +1 -0
  95. package/dist/transform/server-fns.cjs +2 -0
  96. package/dist/transform/server-fns.d.ts +13 -0
  97. package/dist/transform/server-fns.d.ts.map +1 -0
  98. package/dist/transform/server-fns.js +94 -0
  99. package/dist/transform/server-fns.mjs +11 -0
  100. package/dist/transform/templates.cjs +3 -0
  101. package/dist/transform/templates.d.ts +26 -0
  102. package/dist/transform/templates.d.ts.map +1 -0
  103. package/dist/transform/templates.js +347 -0
  104. package/dist/transform/templates.mjs +12 -0
  105. package/dist/transform-PJX2GNSV.mjs +3 -0
  106. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  107. package/package.json +29 -8
  108. package/dist/babel-E7EQLX36.mjs +0 -2
  109. package/dist/chunk-EF6V4GTD.mjs +0 -1
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # @fluixi/compiler
6
6
 
7
- **The Fluixi JSX compiler — host-agnostic IR + pluggable codegen backends.**
7
+ **The Fluixi compiler — parses, lowers and emits. Not a Babel plugin.**
8
8
 
9
9
  [![License: MIT](https://img.shields.io/badge/License-MIT-22c55e.svg)](./LICENSE)
10
10
  ![TypeScript](https://img.shields.io/badge/TypeScript-strict-3178c6?logo=typescript&logoColor=white)
@@ -14,13 +14,23 @@
14
14
 
15
15
  ## ✨ Overview
16
16
 
17
- `@fluixi/compiler` turns Fluixi JSX into fine-grained reactive output. A **Babel
18
- front-end** parses source into a host-agnostic IR; a **codegen backend** emits the result:
17
+ `@fluixi/compiler` turns Fluixi source into fine-grained reactive output. Both authoring
18
+ syntaxes JSX and `` html`...` `` templates lower to the **same host-agnostic IR**, and
19
+ the **imperative backend** compiles that straight into [`@fluixi/dom`](../dom) runtime
20
+ calls (`createNativeElement`/`spread`/`insert`/`createComponent`/…). No VDOM, and no
21
+ `jsx()` dispatch at runtime.
19
22
 
20
- - **`imperative`** (default) compiles straight into [`@fluixi/dom`](../dom) runtime
21
- calls (`createNativeElement`/`spread`/`insert`/`createComponent`/…). No VDOM.
22
- - **`jsx`** emits the automatic runtime `jsx()`/`jsxs()` (the [`@fluixi/jsx`](../jsx)
23
- runtime).
23
+ It owns the transform rather than running inside someone else's: parse once, splice the
24
+ emitted code over the spans it replaces. Nothing is reprinted, so a hole keeps the text the
25
+ author wrote and every edit carries a source map; types are left in place for the bundler
26
+ to strip.
27
+
28
+ `@babel/parser` is the only package it takes from that namespace, used as a parser — the
29
+ same position Vue's compiler is in. `@babel/core` and the plugin machinery are optional
30
+ peers, needed only by `babel: true`.
31
+
32
+ The `@fluixi/jsx` automatic runtime is still what esbuild and TypeScript's
33
+ `jsxImportSource` point at; this compiler simply never emits a call into it.
24
34
 
25
35
  It also provides the **`"use server"`** transform (server functions): the client build
26
36
  gets an RPC stub, the server build keeps and registers the body.
@@ -45,25 +55,40 @@ import { createVitePlugin, serverFunctionsVitePlugin } from '@fluixi/compiler/in
45
55
  export default defineConfig({
46
56
  plugins: [
47
57
  serverFunctionsVitePlugin(), // "use server" transform
48
- createVitePlugin({ backend: 'imperative' }),
58
+ createVitePlugin(),
49
59
  ],
50
60
  });
51
61
  ```
52
62
 
53
- Or transform a string directly:
63
+ Or compile a module directly:
54
64
 
55
65
  ```ts
56
- import { transform } from '@fluixi/compiler';
57
- const { code } = transform(source, { backend: 'imperative' });
66
+ import { transformTemplates } from '@fluixi/compiler/transform';
67
+
68
+ const { code, map } = transformTemplates(source, 'App.tsx', {})!;
58
69
  ```
59
70
 
71
+ `transformTemplates` returns `null` when a module has no JSX and no templates, so a
72
+ bundler can leave the file untouched.
73
+
74
+ ### Compiling through Babel
75
+
76
+ `fluixi({ babel: true })` routes through the Babel front-end instead. It exists for a
77
+ project whose own Babel plugins have to see the compiled output; it needs `@babel/core`
78
+ and friends installed, and says so rather than degrading. Everything else — the IR, the
79
+ passes, the backend — is the same code either way.
80
+
60
81
  ## 🔌 Subpaths
61
82
 
62
- | Import | What |
63
- | --- | --- |
64
- | `@fluixi/compiler` | `transform()` + the compile pipeline |
65
- | `@fluixi/compiler/integrations` | `createVitePlugin`, `serverFunctionsVitePlugin`, webpack/rollup/esbuild adapters |
66
- | `@fluixi/compiler/babel` | the Babel plugin front-end |
83
+ | Import | What | Babel |
84
+ | --- | --- | --- |
85
+ | `@fluixi/compiler` | IR, codegen backends, resolve/optimize passes, options | none |
86
+ | `@fluixi/compiler/builtins` | the control-flow / router component names | none |
87
+ | `@fluixi/compiler/transform` | `transformTemplates`, `transformServerFns` | parser only |
88
+ | `@fluixi/compiler/integrations` | vite, webpack, rollup and esbuild adapters | parser only |
89
+ | `@fluixi/compiler/babel` | the Babel plugin front-end | `@babel/core` |
90
+
91
+ `no-babel-in-core.spec.ts` fails the build if that column stops being true.
67
92
 
68
93
  ## 📄 License
69
94
 
@@ -0,0 +1 @@
1
+ "use strict";var s=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var m=(e,t)=>{for(var r in t)s(e,r,{get:t[r],enumerable:!0})},c=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let p of u(t))!l.call(e,p)&&p!==r&&s(e,p,{get:()=>t[p],enumerable:!(i=o(t,p))||i.enumerable});return e};var y=e=>c(s({},"__esModule",{value:!0}),e);var x={};m(x,{shapeOf:()=>a});module.exports=y(x);var f=new Set(["CallExpression","OptionalCallExpression"]),d=new Set(["MemberExpression","OptionalMemberExpression"]);function a(e){if(!e)return{kind:"opaque"};if(f.has(e.type))return{kind:"call"};if(d.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(n)}:e.type==="LogicalExpression"||e.type==="BinaryExpression"?{kind:"compound",parts:[e.left,e.right].map(n)}:e.type==="TemplateLiteral"?{kind:"compound",parts:e.expressions.map(n)}:e.type==="ObjectExpression"?{kind:"compound",parts:e.properties.filter(r=>(r.type==="ObjectProperty"||r.type==="Property")&&r.computed!==!0).map(r=>n(r.value))}:e.type==="ArrayExpression"?{kind:"compound",parts:e.elements.filter(r=>r!=null&&r.type!=="SpreadElement").map(n)}:{kind:"opaque"}}var n=e=>a(e);
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Map a parsed expression node to an `ExprShape`.
3
+ *
4
+ * Works off `node.type` strings, so it takes any ESTree-shaped AST — @babel/parser,
5
+ * acorn, or whatever replaces them — and accepts the few names Babel spells
6
+ * differently (`ObjectProperty`, `Optional*Expression`).
7
+ */
8
+ import type { ExprShape } from './reactive-expr.js';
9
+ interface Node {
10
+ type: string;
11
+ [key: string]: unknown;
12
+ }
13
+ export declare function shapeOf(node: Node | null | undefined): ExprShape;
14
+ export {};
15
+ //# sourceMappingURL=expr-shape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expr-shape.d.ts","sourceRoot":"","sources":["../../src/analyze/expr-shape.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,UAAU,IAAI;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAKD,wBAAgB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,CAuChE"}
@@ -0,0 +1,37 @@
1
+ const CALL = new Set(['CallExpression', 'OptionalCallExpression']);
2
+ const MEMBER = new Set(['MemberExpression', 'OptionalMemberExpression']);
3
+ export function shapeOf(node) {
4
+ if (!node)
5
+ return { kind: 'opaque' };
6
+ if (CALL.has(node.type))
7
+ return { kind: 'call' };
8
+ if (MEMBER.has(node.type)) {
9
+ const property = node.property;
10
+ const computed = node.computed === true;
11
+ return {
12
+ kind: 'member',
13
+ property: !computed && property?.type === 'Identifier' ? property.name : null,
14
+ };
15
+ }
16
+ if (node.type === 'ConditionalExpression') {
17
+ return { kind: 'compound', parts: [node.test, node.consequent, node.alternate].map(part) };
18
+ }
19
+ if (node.type === 'LogicalExpression' || node.type === 'BinaryExpression') {
20
+ return { kind: 'compound', parts: [node.left, node.right].map(part) };
21
+ }
22
+ if (node.type === 'TemplateLiteral') {
23
+ return { kind: 'compound', parts: node.expressions.map(part) };
24
+ }
25
+ // A computed key or a spread contributes nothing — we cannot see what it
26
+ // introduces, so we must not claim it is inert.
27
+ if (node.type === 'ObjectExpression') {
28
+ const props = node.properties.filter((p) => (p.type === 'ObjectProperty' || p.type === 'Property') && p.computed !== true);
29
+ return { kind: 'compound', parts: props.map((p) => part(p.value)) };
30
+ }
31
+ if (node.type === 'ArrayExpression') {
32
+ const items = node.elements.filter((e) => e != null && e.type !== 'SpreadElement');
33
+ return { kind: 'compound', parts: items.map(part) };
34
+ }
35
+ return { kind: 'opaque' };
36
+ }
37
+ const part = (n) => shapeOf(n);
@@ -0,0 +1 @@
1
+ var n=new Set(["CallExpression","OptionalCallExpression"]),s=new Set(["MemberExpression","OptionalMemberExpression"]);function i(e){if(!e)return{kind:"opaque"};if(n.has(e.type))return{kind:"call"};if(s.has(e.type)){let p=e.property;return{kind:"member",property:!(e.computed===!0)&&p?.type==="Identifier"?p.name:null}}return e.type==="ConditionalExpression"?{kind:"compound",parts:[e.test,e.consequent,e.alternate].map(r)}:e.type==="LogicalExpression"||e.type==="BinaryExpression"?{kind:"compound",parts:[e.left,e.right].map(r)}:e.type==="TemplateLiteral"?{kind:"compound",parts:e.expressions.map(r)}:e.type==="ObjectExpression"?{kind:"compound",parts:e.properties.filter(t=>(t.type==="ObjectProperty"||t.type==="Property")&&t.computed!==!0).map(t=>r(t.value))}:e.type==="ArrayExpression"?{kind:"compound",parts:e.elements.filter(t=>t!=null&&t.type!=="SpreadElement").map(r)}:{kind:"opaque"}}var r=e=>i(e);export{i as shapeOf};
@@ -0,0 +1 @@
1
+ "use strict";var t=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var s=(e,r)=>{for(var p in r)t(e,p,{get:r[p],enumerable:!0})},l=(e,r,p,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of i(r))!u.call(e,n)&&n!==p&&t(e,n,{get:()=>r[n],enumerable:!(a=c(r,n))||a.enumerable});return e};var d=e=>l(t({},"__esModule",{value:!0}),e);var E={};s(E,{isReactiveShape:()=>o});module.exports=d(E);var m="children";function o(e){switch(e.kind){case"call":return!0;case"member":return e.property!==m;case"compound":return e.parts.some(o);case"opaque":return!1}}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Which expressions get wired reactively: `count()` re-runs on change, `count`
3
+ * does not, `props.children` is a subtree reference rather than a value.
4
+ *
5
+ * `ExprShape` is four cases and must not grow into a JavaScript AST — a front-end
6
+ * reports what the rule branches on, everything else collapses to `compound` or
7
+ * `opaque`. One rule, one place, whatever the parser.
8
+ */
9
+ export type ExprShape =
10
+ /** A call — `count()`, `t('key')`, `mergeRefs(a, b)`. Always reactive. */
11
+ {
12
+ kind: 'call';
13
+ }
14
+ /**
15
+ * A property access. `property` is the static name, or `null` when the access is
16
+ * computed or otherwise not a plain identifier (`obj[key]`, `obj[fn()]`).
17
+ */
18
+ | {
19
+ kind: 'member';
20
+ property: string | null;
21
+ }
22
+ /**
23
+ * Anything built out of sub-expressions — conditionals, logical and binary
24
+ * operators, template literals, object and array literals. Reactive when any
25
+ * part is, so `class={{ active: active() }}` reacts and `class={{ a: true }}`
26
+ * does not. The front-end decides which children count: a spread element or a
27
+ * computed key contributes nothing, because the compiler cannot see through it.
28
+ */
29
+ | {
30
+ kind: 'compound';
31
+ parts: ExprShape[];
32
+ }
33
+ /** Identifiers, literals, functions, JSX — passed through untouched. */
34
+ | {
35
+ kind: 'opaque';
36
+ };
37
+ /** Whether an expression of this shape must be wired reactively. */
38
+ export declare function isReactiveShape(shape: ExprShape): boolean;
39
+ //# sourceMappingURL=reactive-expr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactive-expr.d.ts","sourceRoot":"","sources":["../../src/analyze/reactive-expr.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,SAAS;AACnB,0EAA0E;AACxE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE;AAClB;;;GAGG;GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE;AAC7C;;;;;;GAMG;GACD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,SAAS,EAAE,CAAA;CAAE;AAC1C,wEAAwE;GACtE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAavB,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAWzD"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Which expressions get wired reactively: `count()` re-runs on change, `count`
3
+ * does not, `props.children` is a subtree reference rather than a value.
4
+ *
5
+ * `ExprShape` is four cases and must not grow into a JavaScript AST — a front-end
6
+ * reports what the rule branches on, everything else collapses to `compound` or
7
+ * `opaque`. One rule, one place, whatever the parser.
8
+ */
9
+ /**
10
+ * `props.children` — and any `.children` access — is a stable subtree reference,
11
+ * not a reactive value. Compiling it to a `() => props.children` thunk adds an
12
+ * insert layer that fully unwraps the children's Suspense/memo into a static node,
13
+ * severing the reactive binding: a nested lazy/Suspense that resolves later never
14
+ * propagates up through the component-children hop. Passing it through
15
+ * non-reactively (`insert(el, props.children)`) keeps the child's memo intact so
16
+ * `insert` binds to it, which is what a direct `<Outlet/>` does.
17
+ */
18
+ const STABLE_MEMBER = 'children';
19
+ /** Whether an expression of this shape must be wired reactively. */
20
+ export function isReactiveShape(shape) {
21
+ switch (shape.kind) {
22
+ case 'call':
23
+ return true;
24
+ case 'member':
25
+ return shape.property !== STABLE_MEMBER;
26
+ case 'compound':
27
+ return shape.parts.some(isReactiveShape);
28
+ case 'opaque':
29
+ return false;
30
+ }
31
+ }
@@ -0,0 +1 @@
1
+ var r="children";function n(e){switch(e.kind){case"call":return!0;case"member":return e.property!==r;case"compound":return e.parts.some(n);case"opaque":return!1}}export{n as isReactiveShape};
@@ -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-TIE4XNAM.mjs";import{a as _,c as A,d as z}from"./chunk-E2PW2OZU.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,p=(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,{});p(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,{});p(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-next",reactiveModule:p="@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(l,s){s.plugins.push("jsx","typescript")},pre(l){Object.assign(l,se)},visitor:{ImportDeclaration(l,s){l.node.source.value==="@fluixi/core/rx"&&(l.node.source=t.stringLiteral("@fluixi/reactive"))},Program:{enter(l,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(l,s){let y=[];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"]),v=Array.from(s.irImports),S=u=>t.importSpecifier(t.identifier(u),t.identifier(u)),b=u=>!l.scope.hasBinding(u),M=v.filter(u=>d.has(u)&&b(u)),x=v.filter(u=>!f.has(u)&&!d.has(u)&&b(u)),T=v.filter(u=>f.has(u)&&b(u));M.length>0&&y.push(t.importDeclaration(M.map(S),t.stringLiteral(p))),x.length>0&&y.push(t.importDeclaration(x.map(S),t.stringLiteral(i))),T.length>0&&y.push(t.importDeclaration(T.map(S),t.stringLiteral(n)))}if(s.needsCreateMemo&&!l.scope.hasBinding("createMemo")&&y.push(t.importDeclaration([t.importSpecifier(t.identifier("createMemo"),t.identifier("createMemo"))],t.stringLiteral(p))),s.needsControlFlowImport&&s.controlFlowComponents.size>0){let f=Array.from(s.controlFlowComponents).filter(x=>!l.scope.hasBinding(x)),d=s.libModule??"@fluixi/core",v=f.filter(x=>ee.has(x)),S=f.filter(x=>Q.has(x)),b=f.filter(x=>!Q.has(x)&&!ee.has(x)),M=(x,T)=>t.importDeclaration(x.map(u=>t.importSpecifier(t.identifier(u),t.identifier(u))),t.stringLiteral(T));b.length>0&&y.push(M(b,n)),S.length>0&&y.push(M(S,d)),v.length>0&&y.push(M(v,c))}let N=[];if(s.deferredComponents.size>0){for(let[f,d]of s.deferredComponents)l.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"),ve(d.strategy)),t.objectProperty(t.identifier("export"),t.stringLiteral(d.export))])]))]));N.length>0&&!l.scope.hasBinding("deferred")&&y.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,v]of s.resolvedComponents){if(l.scope.hasBinding(d))continue;let S=f.get(v.module)??[];S.push({local:d,exported:v.export}),f.set(v.module,S)}for(let[d,v]of f)y.push(t.importDeclaration(v.map(({local:S,exported:b})=>b==="default"?t.importDefaultSpecifier(t.identifier(S)):t.importSpecifier(t.identifier(S),t.identifier(b))),t.stringLiteral(d)))}if(r&&s.delegatedEvents.size>0){y.push(t.importDeclaration([t.importSpecifier(t.identifier("delegateEvents"),t.identifier("delegateEvents"))],t.stringLiteral(i)));let f=t.arrayExpression(Array.from(s.delegatedEvents).map(v=>t.stringLiteral(v))),d=t.expressionStatement(t.callExpression(t.identifier("delegateEvents"),[f]));l.node.body.unshift(d)}if(N.length>0&&l.node.body.unshift(...N),s.staticTemplates.size>0){let f=[];for(let[d,v]of s.staticTemplates){let b=d.startsWith("svg:")?d.slice(4):d;f.push(t.variableDeclaration("const",[t.variableDeclarator(t.identifier(v),t.stringLiteral(b))]))}l.node.body.unshift(...f)}}y.length>0&&l.node.body.unshift(...ye(y))}},JSXElement(l,s){s.hasJSX=!0,l.replaceWith(te(l.node,s))},JSXFragment(l,s){s.hasJSX=!0,l.replaceWith(te(l.node,s))},TaggedTemplateExpression(l,s){ie&&t.isIdentifier(l.node.tag)&&(l.node.tag.name===h||l.node.tag.name==="svg")&&l.replaceWith(Se(l.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 ve(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}`,p=r.staticTemplates.get(c);p||(p=`_tmpl$${r.staticTemplates.size}`,r.staticTemplates.set(c,p)),i.set(n.id,p)}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:p}=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,p,o);return oe.expression(a,{placeholderPattern:!1,plugins:["typescript"]})()}function ye(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 p=o.get(n);if(!p){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)p.names.has(a.local.name)||(p.names.add(a.local.name),p.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:p,templates:a}=C.emit(n,{templateClone:o.templateClone,partialTemplates:o.partialTemplates});for(let g of p)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 xe(m,e),m}function xe(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 p=n[c];if(Array.isArray(p))for(let a of p)a&&typeof a=="object"&&"type"in a&&i(a);else p&&typeof p=="object"&&"type"in p&&i(p)}}};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};
@@ -0,0 +1 @@
1
+ var d=(a=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(a,{get:(b,c)=>(typeof require<"u"?require:b)[c]}):a)(function(a){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+a+'" is not supported')});export{d as a};
@@ -0,0 +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-next"}=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};
@@ -0,0 +1,10 @@
1
+ var k=44,R=59,C="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",v=new Uint8Array(64),I=new Uint8Array(128);for(let l=0;l<C.length;l++){let t=C.charCodeAt(l);v[l]=t,I[t]=l}function c(l,t,e){let n=t-e;n=n<0?-n<<1|1:n<<1;do{let i=n&31;n>>>=5,n>0&&(i|=32),l.write(v[i])}while(n>0);return t}var S=1024*16,x=typeof TextDecoder<"u"?new TextDecoder:typeof Buffer<"u"?{decode(l){return Buffer.from(l.buffer,l.byteOffset,l.byteLength).toString()}}:{decode(l){let t="";for(let e=0;e<l.length;e++)t+=String.fromCharCode(l[e]);return t}},_=class{constructor(){this.pos=0,this.out="",this.buffer=new Uint8Array(S)}write(l){let{buffer:t}=this;t[this.pos++]=l,this.pos===S&&(this.out+=x.decode(t),this.pos=0)}flush(){let{buffer:l,out:t,pos:e}=this;return e>0?t+x.decode(l.subarray(0,e)):t}};function y(l){let t=new _,e=0,n=0,i=0,r=0;for(let s=0;s<l.length;s++){let h=l[s];if(s>0&&t.write(R),h.length===0)continue;let o=0;for(let u=0;u<h.length;u++){let a=h[u];u>0&&t.write(k),o=c(t,a[0],o),a.length!==1&&(e=c(t,a[1],e),n=c(t,a[2],n),i=c(t,a[3],i),a.length!==4&&(r=c(t,a[4],r)))}}return t.flush()}var g=class l{constructor(t){this.bits=t instanceof l?t.bits.slice():[]}add(t){this.bits[t>>5]|=1<<(t&31)}has(t){return!!(this.bits[t>>5]&1<<(t&31))}},p=class l{constructor(t,e,n){this.start=t,this.end=e,this.original=n,this.intro="",this.outro="",this.content=n,this.storeName=!1,this.edited=!1,this.previous=null,this.next=null}appendLeft(t){this.outro+=t}appendRight(t){this.intro=this.intro+t}clone(){let t=new l(this.start,this.end,this.original);return t.intro=this.intro,t.outro=this.outro,t.content=this.content,t.storeName=this.storeName,t.edited=this.edited,t}contains(t){return this.start<t&&t<this.end}eachNext(t){let e=this;for(;e;)t(e),e=e.next}eachPrevious(t){let e=this;for(;e;)t(e),e=e.previous}edit(t,e,n){return this.content=t,n||(this.intro="",this.outro=""),this.storeName=e,this.edited=!0,this}prependLeft(t){this.outro=t+this.outro}prependRight(t){this.intro=t+this.intro}reset(){this.intro="",this.outro="",this.edited&&(this.content=this.original,this.storeName=!1,this.edited=!1)}split(t){let e=t-this.start,n=this.original.slice(0,e),i=this.original.slice(e);this.original=n;let r=new l(t,this.end,i);return r.outro=this.outro,this.outro="",this.end=t,this.edited?(r.edit("",!1),this.content=""):this.content=n,r.next=this.next,r.next&&(r.next.previous=r),r.previous=this,this.next=r,r}toString(){return this.intro+this.content+this.outro}trimEnd(t){if(this.outro=this.outro.replace(t,""),this.outro.length)return!0;let e=this.content.replace(t,"");if(e.length)return e!==this.content&&(this.split(this.start+e.length).edit("",void 0,!0),this.edited&&this.edit(e,this.storeName,!0)),!0;if(this.edit("",void 0,!0),this.intro=this.intro.replace(t,""),this.intro.length)return!0}trimStart(t){if(this.intro=this.intro.replace(t,""),this.intro.length)return!0;let e=this.content.replace(t,"");if(e.length){if(e!==this.content){let n=this.split(this.end-e.length);this.edited&&n.edit(e,this.storeName,!0),this.edit("",void 0,!0)}return!0}else if(this.edit("",void 0,!0),this.outro=this.outro.replace(t,""),this.outro.length)return!0}};function O(){return typeof globalThis<"u"&&typeof globalThis.btoa=="function"?l=>globalThis.btoa(unescape(encodeURIComponent(l))):typeof Buffer=="function"?l=>Buffer.from(l,"utf-8").toString("base64"):()=>{throw new Error("Unsupported environment: `window.btoa` or `Buffer` should be supported.")}}var N=O(),w=class{constructor(t){this.version=3,this.file=t.file,this.sources=t.sources,this.sourcesContent=t.sourcesContent,this.names=t.names,this.mappings=y(t.mappings),typeof t.x_google_ignoreList<"u"&&(this.x_google_ignoreList=t.x_google_ignoreList),typeof t.debugId<"u"&&(this.debugId=t.debugId)}toString(){return JSON.stringify(this)}toUrl(){return"data:application/json;charset=utf-8;base64,"+N(this.toString())}};function A(l){let t=l.split(`
2
+ `),e=t.filter(r=>/^\t+/.test(r)),n=t.filter(r=>/^ {2,}/.test(r));if(e.length===0&&n.length===0)return null;if(e.length>=n.length)return" ";let i=n.reduce((r,s)=>{let h=/^ +/.exec(s)[0].length;return Math.min(h,r)},1/0);return new Array(i+1).join(" ")}function j(l,t){let e=l.split(/[/\\]/),n=t.split(/[/\\]/);for(e.pop();e[0]===n[0];)e.shift(),n.shift();if(e.length){let i=e.length;for(;i--;)e[i]=".."}return e.concat(n).join("/")}var $=Object.prototype.toString;function q(l){return $.call(l)==="[object Object]"}function E(l){let t=l.split(`
3
+ `),e=[];for(let n=0,i=0;n<t.length;n++)e.push(i),i+=t[n].length+1;return function(i){let r=0,s=e.length;for(;r<s;){let u=r+s>>1;i<e[u]?s=u:r=u+1}let h=r-1,o=i-e[h];return{line:h,column:o}}}var T=/\w/,b=class{constructor(t){this.hires=t,this.generatedCodeLine=0,this.generatedCodeColumn=0,this.raw=[],this.rawSegments=this.raw[this.generatedCodeLine]=[],this.pending=null}addEdit(t,e,n,i){if(e.length){let r=e.length-1,s=e.indexOf(`
4
+ `,0),h=-1;for(;s>=0&&r>s;){let u=[this.generatedCodeColumn,t,n.line,n.column];i>=0&&u.push(i),this.rawSegments.push(u),this.generatedCodeLine+=1,this.raw[this.generatedCodeLine]=this.rawSegments=[],this.generatedCodeColumn=0,h=s,s=e.indexOf(`
5
+ `,s+1)}let o=[this.generatedCodeColumn,t,n.line,n.column];i>=0&&o.push(i),this.rawSegments.push(o),this.advance(e.slice(h+1))}else this.pending&&(this.rawSegments.push(this.pending),this.advance(e));this.pending=null}addUneditedChunk(t,e,n,i,r){let s=e.start,h=!0,o=!1;for(;s<e.end;){if(n[s]===`
6
+ `)i.line+=1,i.column=0,this.generatedCodeLine+=1,this.raw[this.generatedCodeLine]=this.rawSegments=[],this.generatedCodeColumn=0,h=!0,o=!1;else{if(this.hires||h||r.has(s)){let u=[this.generatedCodeColumn,t,i.line,i.column];this.hires==="boundary"?T.test(n[s])?o||(this.rawSegments.push(u),o=!0):(this.rawSegments.push(u),o=!1):this.rawSegments.push(u)}i.column+=1,this.generatedCodeColumn+=1,h=!1}s+=1}this.pending=null}advance(t){if(!t)return;let e=t.split(`
7
+ `);if(e.length>1){for(let n=0;n<e.length-1;n++)this.generatedCodeLine++,this.raw[this.generatedCodeLine]=this.rawSegments=[];this.generatedCodeColumn=0}this.generatedCodeColumn+=e[e.length-1].length}},d=`
8
+ `,f={insertLeft:!1,insertRight:!1,storeName:!1},L=class l{constructor(t,e={}){let n=new p(0,t.length,t);Object.defineProperties(this,{original:{writable:!0,value:t},outro:{writable:!0,value:""},intro:{writable:!0,value:""},firstChunk:{writable:!0,value:n},lastChunk:{writable:!0,value:n},lastSearchedChunk:{writable:!0,value:n},byStart:{writable:!0,value:{}},byEnd:{writable:!0,value:{}},filename:{writable:!0,value:e.filename},indentExclusionRanges:{writable:!0,value:e.indentExclusionRanges},sourcemapLocations:{writable:!0,value:new g},storedNames:{writable:!0,value:{}},indentStr:{writable:!0,value:void 0},ignoreList:{writable:!0,value:e.ignoreList},offset:{writable:!0,value:e.offset||0}}),this.byStart[0]=n,this.byEnd[t.length]=n}addSourcemapLocation(t){this.sourcemapLocations.add(t)}append(t){if(typeof t!="string")throw new TypeError("outro content must be a string");return this.outro+=t,this}appendLeft(t,e){if(t=t+this.offset,typeof e!="string")throw new TypeError("inserted content must be a string");this._split(t);let n=this.byEnd[t];return n?n.appendLeft(e):this.intro+=e,this}appendRight(t,e){if(t=t+this.offset,typeof e!="string")throw new TypeError("inserted content must be a string");this._split(t);let n=this.byStart[t];return n?n.appendRight(e):this.outro+=e,this}clone(){let t=new l(this.original,{filename:this.filename,offset:this.offset}),e=this.firstChunk,n=t.firstChunk=t.lastSearchedChunk=e.clone();for(;e;){t.byStart[n.start]=n,t.byEnd[n.end]=n;let i=e.next,r=i&&i.clone();r&&(n.next=r,r.previous=n,n=r),e=i}return t.lastChunk=n,this.indentExclusionRanges&&(t.indentExclusionRanges=this.indentExclusionRanges.slice()),t.sourcemapLocations=new g(this.sourcemapLocations),t.intro=this.intro,t.outro=this.outro,t}generateDecodedMap(t){t=t||{};let e=0,n=Object.keys(this.storedNames),i=new b(t.hires),r=E(this.original);return this.intro&&i.advance(this.intro),this.firstChunk.eachNext(s=>{let h=r(s.start);s.intro.length&&i.advance(s.intro),s.edited?i.addEdit(e,s.content,h,s.storeName?n.indexOf(s.original):-1):i.addUneditedChunk(e,s,this.original,h,this.sourcemapLocations),s.outro.length&&i.advance(s.outro)}),this.outro&&i.advance(this.outro),{file:t.file?t.file.split(/[/\\]/).pop():void 0,sources:[t.source?j(t.file||"",t.source):t.file||""],sourcesContent:t.includeContent?[this.original]:void 0,names:n,mappings:i.raw,x_google_ignoreList:this.ignoreList?[e]:void 0}}generateMap(t){return new w(this.generateDecodedMap(t))}_ensureindentStr(){this.indentStr===void 0&&(this.indentStr=A(this.original))}_getRawIndentString(){return this._ensureindentStr(),this.indentStr}getIndentString(){return this._ensureindentStr(),this.indentStr===null?" ":this.indentStr}indent(t,e){let n=/^[^\r\n]/gm;if(q(t)&&(e=t,t=void 0),t===void 0&&(this._ensureindentStr(),t=this.indentStr||" "),t==="")return this;e=e||{};let i={};e.exclude&&(typeof e.exclude[0]=="number"?[e.exclude]:e.exclude).forEach(a=>{for(let m=a[0];m<a[1];m+=1)i[m]=!0});let r=e.indentStart!==!1,s=u=>r?`${t}${u}`:(r=!0,u);this.intro=this.intro.replace(n,s);let h=0,o=this.firstChunk;for(;o;){let u=o.end;if(o.edited)i[h]||(o.content=o.content.replace(n,s),o.content.length&&(r=o.content[o.content.length-1]===`
9
+ `));else for(h=o.start;h<u;){if(!i[h]){let a=this.original[h];a===`
10
+ `?r=!0:a!=="\r"&&r&&(r=!1,h===o.start||(this._splitChunk(o,h),o=o.next),o.prependRight(t))}h+=1}h=o.end,o=o.next}return this.outro=this.outro.replace(n,s),this}insert(){throw new Error("magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)")}insertLeft(t,e){return f.insertLeft||(console.warn("magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead"),f.insertLeft=!0),this.appendLeft(t,e)}insertRight(t,e){return f.insertRight||(console.warn("magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead"),f.insertRight=!0),this.prependRight(t,e)}move(t,e,n){if(t=t+this.offset,e=e+this.offset,n=n+this.offset,n>=t&&n<=e)throw new Error("Cannot move a selection inside itself");this._split(t),this._split(e),this._split(n);let i=this.byStart[t],r=this.byEnd[e],s=i.previous,h=r.next,o=this.byStart[n];if(!o&&r===this.lastChunk)return this;let u=o?o.previous:this.lastChunk;return s&&(s.next=h),h&&(h.previous=s),u&&(u.next=i),o&&(o.previous=r),i.previous||(this.firstChunk=r.next),r.next||(this.lastChunk=i.previous,this.lastChunk.next=null),i.previous=u,r.next=o||null,u||(this.firstChunk=i),o||(this.lastChunk=r),this}overwrite(t,e,n,i){return i=i||{},this.update(t,e,n,{...i,overwrite:!i.contentOnly})}update(t,e,n,i){if(t=t+this.offset,e=e+this.offset,typeof n!="string")throw new TypeError("replacement content must be a string");if(this.original.length!==0){for(;t<0;)t+=this.original.length;for(;e<0;)e+=this.original.length}if(e>this.original.length)throw new Error("end is out of bounds");if(t===e)throw new Error("Cannot overwrite a zero-length range – use appendLeft or prependRight instead");this._split(t),this._split(e),i===!0&&(f.storeName||(console.warn("The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string"),f.storeName=!0),i={storeName:!0});let r=i!==void 0?i.storeName:!1,s=i!==void 0?i.overwrite:!1;if(r){let u=this.original.slice(t,e);Object.defineProperty(this.storedNames,u,{writable:!0,value:!0,enumerable:!0})}let h=this.byStart[t],o=this.byEnd[e];if(h){let u=h;for(;u!==o;){if(u.next!==this.byStart[u.end])throw new Error("Cannot overwrite across a split point");u=u.next,u.edit("",!1)}h.edit(n,r,!s)}else{let u=new p(t,e,"").edit(n,r);o.next=u,u.previous=o}return this}prepend(t){if(typeof t!="string")throw new TypeError("outro content must be a string");return this.intro=t+this.intro,this}prependLeft(t,e){if(t=t+this.offset,typeof e!="string")throw new TypeError("inserted content must be a string");this._split(t);let n=this.byEnd[t];return n?n.prependLeft(e):this.intro=e+this.intro,this}prependRight(t,e){if(t=t+this.offset,typeof e!="string")throw new TypeError("inserted content must be a string");this._split(t);let n=this.byStart[t];return n?n.prependRight(e):this.outro=e+this.outro,this}remove(t,e){if(t=t+this.offset,e=e+this.offset,this.original.length!==0){for(;t<0;)t+=this.original.length;for(;e<0;)e+=this.original.length}if(t===e)return this;if(t<0||e>this.original.length)throw new Error("Character is out of bounds");if(t>e)throw new Error("end must be greater than start");this._split(t),this._split(e);let n=this.byStart[t];for(;n;)n.intro="",n.outro="",n.edit(""),n=e>n.end?this.byStart[n.end]:null;return this}reset(t,e){if(t=t+this.offset,e=e+this.offset,this.original.length!==0){for(;t<0;)t+=this.original.length;for(;e<0;)e+=this.original.length}if(t===e)return this;if(t<0||e>this.original.length)throw new Error("Character is out of bounds");if(t>e)throw new Error("end must be greater than start");this._split(t),this._split(e);let n=this.byStart[t];for(;n;)n.reset(),n=e>n.end?this.byStart[n.end]:null;return this}lastChar(){if(this.outro.length)return this.outro[this.outro.length-1];let t=this.lastChunk;do{if(t.outro.length)return t.outro[t.outro.length-1];if(t.content.length)return t.content[t.content.length-1];if(t.intro.length)return t.intro[t.intro.length-1]}while(t=t.previous);return this.intro.length?this.intro[this.intro.length-1]:""}lastLine(){let t=this.outro.lastIndexOf(d);if(t!==-1)return this.outro.substr(t+1);let e=this.outro,n=this.lastChunk;do{if(n.outro.length>0){if(t=n.outro.lastIndexOf(d),t!==-1)return n.outro.substr(t+1)+e;e=n.outro+e}if(n.content.length>0){if(t=n.content.lastIndexOf(d),t!==-1)return n.content.substr(t+1)+e;e=n.content+e}if(n.intro.length>0){if(t=n.intro.lastIndexOf(d),t!==-1)return n.intro.substr(t+1)+e;e=n.intro+e}}while(n=n.previous);return t=this.intro.lastIndexOf(d),t!==-1?this.intro.substr(t+1)+e:this.intro+e}slice(t=0,e=this.original.length-this.offset){if(t=t+this.offset,e=e+this.offset,this.original.length!==0){for(;t<0;)t+=this.original.length;for(;e<0;)e+=this.original.length}let n="",i=this.firstChunk;for(;i&&(i.start>t||i.end<=t);){if(i.start<e&&i.end>=e)return n;i=i.next}if(i&&i.edited&&i.start!==t)throw new Error(`Cannot use replaced character ${t} as slice start anchor.`);let r=i;for(;i;){i.intro&&(r!==i||i.start===t)&&(n+=i.intro);let s=i.start<e&&i.end>=e;if(s&&i.edited&&i.end!==e)throw new Error(`Cannot use replaced character ${e} as slice end anchor.`);let h=r===i?t-i.start:0,o=s?i.content.length+e-i.end:i.content.length;if(n+=i.content.slice(h,o),i.outro&&(!s||i.end===e)&&(n+=i.outro),s)break;i=i.next}return n}snip(t,e){let n=this.clone();return n.remove(0,t),n.remove(e,n.original.length),n}_split(t){if(this.byStart[t]||this.byEnd[t])return;let e=this.lastSearchedChunk,n=e,i=t>e.end;for(;e;){if(e.contains(t))return this._splitChunk(e,t);if(e=i?this.byStart[e.end]:this.byEnd[e.start],e===n)return;n=e}}_splitChunk(t,e){if(t.edited&&t.content.length){let i=E(this.original)(e);throw new Error(`Cannot split a chunk that has already been edited (${i.line}:${i.column} – "${t.original}")`)}let n=t.split(e);return this.byEnd[e]=t,this.byStart[e]=n,this.byEnd[n.end]=n,t===this.lastChunk&&(this.lastChunk=n),this.lastSearchedChunk=t,!0}toString(){let t=this.intro,e=this.firstChunk;for(;e;)t+=e.toString(),e=e.next;return t+this.outro}isEmpty(){let t=this.firstChunk;do if(t.intro.length&&t.intro.trim()||t.content.length&&t.content.trim()||t.outro.length&&t.outro.trim())return!1;while(t=t.next);return!0}length(){let t=this.firstChunk,e=0;do e+=t.intro.length+t.content.length+t.outro.length;while(t=t.next);return e}trimLines(){return this.trim("[\\r\\n]")}trim(t){return this.trimStart(t).trimEnd(t)}trimEndAborted(t){let e=new RegExp((t||"\\s")+"+$");if(this.outro=this.outro.replace(e,""),this.outro.length)return!0;let n=this.lastChunk;do{let i=n.end,r=n.trimEnd(e);if(n.end!==i&&(this.lastChunk===n&&(this.lastChunk=n.next),this.byEnd[n.end]=n,this.byStart[n.next.start]=n.next,this.byEnd[n.next.end]=n.next),r)return!0;n=n.previous}while(n);return!1}trimEnd(t){return this.trimEndAborted(t),this}trimStartAborted(t){let e=new RegExp("^"+(t||"\\s")+"+");if(this.intro=this.intro.replace(e,""),this.intro.length)return!0;let n=this.firstChunk;do{let i=n.end,r=n.trimStart(e);if(n.end!==i&&(n===this.lastChunk&&(this.lastChunk=n.next),this.byEnd[n.end]=n,this.byStart[n.next.start]=n.next,this.byEnd[n.next.end]=n.next),r)return!0;n=n.next}while(n);return!1}trimStart(t){return this.trimStartAborted(t),this}hasChanged(){return this.original!==this.toString()}_replaceRegexp(t,e){function n(r,s){return typeof e=="string"?e.replace(/\$(\$|&|\d+)/g,(h,o)=>o==="$"?"$":o==="&"?r[0]:+o<r.length?r[+o]:`$${o}`):e(...r,r.index,s,r.groups)}function i(r,s){let h,o=[];for(;h=r.exec(s);)o.push(h);return o}if(t.global)i(t,this.original).forEach(s=>{if(s.index!=null){let h=n(s,this.original);h!==s[0]&&this.overwrite(s.index,s.index+s[0].length,h)}});else{let r=this.original.match(t);if(r&&r.index!=null){let s=n(r,this.original);s!==r[0]&&this.overwrite(r.index,r.index+r[0].length,s)}}return this}_replaceString(t,e){let{original:n}=this,i=n.indexOf(t);return i!==-1&&(typeof e=="function"&&(e=e(t,i,n)),t!==e&&this.overwrite(i,i+t.length,e)),this}replace(t,e){return typeof t=="string"?this._replaceString(t,e):this._replaceRegexp(t,e)}_replaceAllString(t,e){let{original:n}=this,i=t.length;for(let r=n.indexOf(t);r!==-1;r=n.indexOf(t,r+i)){let s=n.slice(r,r+i),h=e;typeof e=="function"&&(h=e(s,r,n)),s!==h&&this.overwrite(r,r+i,h)}return this}replaceAll(t,e){if(typeof t=="string")return this._replaceAllString(t,e);if(!t.global)throw new TypeError("MagicString.prototype.replaceAll called with a non-global RegExp argument");return this._replaceRegexp(t,e)}};export{L as a};
@@ -0,0 +1 @@
1
+ function i(t){let n=5381;for(let r=0;r<t.length;r++)n=n*33^t.charCodeAt(r);return(n>>>0).toString(16)}function g(t,n,r){let e=(t||"unknown").replace(n?n+"/":"","");return`${i(e)}:${r}`}export{g as a};
@@ -0,0 +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,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function ke(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}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",s=`(${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
- "use strict";var ce=Object.create;var b=Object.defineProperty;var pe=Object.getOwnPropertyDescriptor;var ue=Object.getOwnPropertyNames;var de=Object.getPrototypeOf,me=Object.prototype.hasOwnProperty;var fe=(t,e)=>{for(var n in e)b(t,n,{get:e[n],enumerable:!0})},H=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of ue(e))!me.call(t,i)&&i!==n&&b(t,i,{get:()=>e[i],enumerable:!(r=pe(e,i))||r.enumerable});return t};var F=(t,e,n)=>(n=t!=null?ce(de(t)):{},H(e||!t||!t.__esModule?b(n,"default",{value:t,enumerable:!0}):n,t)),he=t=>H(b({},"__esModule",{value:!0}),t);var Ye={};fe(Ye,{buildIRFromLit:()=>j});module.exports=he(Ye);var N=require("@babel/core"),O=F(require("@babel/generator"),1),ae=require("@fluixi/template-parser");var ge={kind:"eager"},ve=["pointerdown","focusin","keydown"],z=new Set(["eager","idle","visible","interaction","media","never"]),f=class extends Error{};function C(t){return t.startsWith("load:")}function y(t,e){let n=t.slice(5);if(!z.has(n))throw new f(`Unknown load strategy 'load:${n}'. Expected one of ${[...z].join(", ")}.`);switch(n){case"eager":return ge;case"idle":return{kind:"idle"};case"never":return{kind:"never"};case"visible":return e?{kind:"visible",rootMargin:e}:{kind:"visible"};case"interaction":return{kind:"interaction",events:e?xe(e):[...ve]};case"media":if(!e)throw new f(`'load:media' needs a query, e.g. load:media="(min-width: 1024px)".`);return{kind:"media",query:e};default:throw new f(`Unhandled load strategy '${n}'.`)}}function xe(t){let e=t.split(/[\s,]+/).map(n=>n.trim()).filter(Boolean);if(e.length===0)throw new f("'load:interaction' was given no event names.");return e}var ke=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),V={className:"class",htmlFor:"for"},Ee=new Set(["innerHTML","outerHTML","innerText","textContent","value","checked","selected","muted","defaultValue","defaultChecked","children","ref"]),Re=new Set(["script","style","textarea","title"]);function A(t){return Re.has(t)}function W(t){return V[t]??t}function v(t){return t.kind!=="attr"||t.expr!==void 0||t.name.includes(":")?!1:!Ee.has(t.name)}function P(t){if(!t.static||A(t.tag))return!1;for(let e of t.props)if(!v(e))return!1;for(let e of t.children)if(e.kind!=="text"&&!(e.kind==="element"&&P(e)))return!1;return!0}function x(t){let e=t.props.map(Se).filter(Boolean).join(""),n=`<${t.tag}${e}>`;return ke.has(t.tag)?n:`${n}${t.children.map(Ne).join("")}</${t.tag}>`}function Ne(t){if(t.kind==="text")return ye(t.value);if(t.kind!=="element")throw new Error(`serializeStatic: unexpected ${t.kind}`);return x(t)}function Se(t){let e=V[t.name]??t.name,n=t.literal;return n===!0||n===void 0?` ${e}`:n===!1||n===null?"":` ${e}="${be(String(n))}"`}function be(t){return t.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function ye(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}var Ie="<!--fx-->",$e="<!--fx/-->";function $(t){return t.kind==="expr"||t.kind==="component"||t.kind==="control"}function we(t){return t.kind==="text"||t.kind==="element"&&U(t)}function U(t){return t.svg||A(t.tag)||!t.props.every(e=>v(e))?!1:t.children.every(e=>we(e)||$(e))}function I(t){if($(t))return!0;let e=t.children;return e?e.some(I):!1}function G(t){for(let e=0;e<t.children.length;e++){let n=t.children[e];if(n.kind==="text"&&(n.value===""||t.children[e+1]?.kind==="text"))return!1}return t.children.every(e=>e.kind!=="element"||G(e))}function K(t){if(!U(t)||!G(t)||!t.children.some(I))return null;let e=[],n=[],r=0,i=a=>{let s=`_n$${r++}`;return e.push({ref:s,expr:a}),s};return o(t,"_el$"),{html:Te(t),tag:t.tag,steps:e,holes:n};function o(a,s){let l=-1;a.children.forEach((u,d)=>{I(u)&&(l=d)});let c=null;for(let u=0;u<=l;u++){let d=a.children[u],g=c?`${c}.nextSibling`:`${s}.firstChild`;if($(d)){let M=i(g),B=i(`holeEnd(${M})`);n.push({parentRef:s,startRef:M,endRef:B,node:d}),c=B;continue}let S=i(g);d.kind==="element"&&I(d)&&o(d,S),c=S}}}function Te(t){return x(q(t)).split(Z).join(Ie+$e)}function q(t){return{...t,children:t.children.map(e=>$(e)?{kind:"text",value:Z}:e.kind==="element"?q(e):e)}}var Z="\0fx-hole\0";var J={version:1,module:"@fluixi/dom",symbols:["createNativeElement","insert","spread","setAttribute","delegateEvents","createComponent","createMemo","untrack","Show","For","Index","Switch","Match","Dynamic","ErrorBoundary"]},it={version:2,module:"@fluixi/dom",symbols:[...J.symbols,"template","cloneTemplate","walk"]};var Ce={show:"Show",for:"For",index:"Index",switch:"Switch",match:"Match",dynamic:"Dynamic",errorBoundary:"ErrorBoundary",suspense:"Suspense"};function Ae(t){return/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(t)}function Q(t){return Ae(t)?t:JSON.stringify(t)}function Pe(t){return t.expr!==void 0?t.reactive?`() => (${t.expr})`:`(${t.expr})`:JSON.stringify(t.literal??!0)}function Je(t){return t.expr!==void 0?`(${t.expr})`:JSON.stringify(t.literal??!0)}function Le(t,e,n){let r=t.filter(s=>s.kind==="spread"),o=t.filter(s=>s.kind!=="spread").map(s=>`${Q(s.name)}: ${Pe(s)}`);e!=null&&o.push(`children: ${e}`);let a=`{ ${o.join(", ")} }`;return r.length>0?(n.add("mergeProps"),`mergeProps(${r.map(s=>s.expr).join(", ")}, ${a})`):a}function ee(t,e,n){return t.length===1?k(t[0],e,n):`[${t.map(r=>k(r,e,n)).join(", ")}]`}function Y(t,e,n,r,i){r.add("createMemo"),r.add("createComponent");let o=e.filter(c=>c.kind==="spread"),s=e.filter(c=>c.kind!=="spread").map(c=>`get ${Q(c.name)}() { return ${Je(c)}; }`);n.length>0&&s.push(`get children() { return ${ee(n,r,i)}; }`);let l=`{ ${s.join(", ")} }`;return o.length>0&&(r.add("mergeProps"),l=`mergeProps(${o.map(c=>c.expr).join(", ")}, ${l})`),`createMemo(() => createComponent(${t}, ${l}))`}function Xe(t,e){let n=W(e.name),r=e.literal;return r===!0||r===void 0?`${t}.setAttribute(${JSON.stringify(n)}, "");`:r===!1||r===null?"":`${t}.setAttribute(${JSON.stringify(n)}, ${JSON.stringify(String(r))});`}var te=!1;function k(t,e,n){switch(t.kind){case"text":return JSON.stringify(t.value);case"expr":return t.reactive?`() => (${t.code})`:`(${t.code})`;case"fragment":return t.children.length===0?"null":ee(t.children,e,n);case"component":return Y(t.name,t.props,t.children,e,n);case"control":{let r=Ce[t.control]??t.control;return e.add(r),Y(r,t.props,t.children,e,n)}case"element":{if(n&&t.static&&!t.svg&&P(t)){e.add("templateNode");let s=`_tmpl$${n.length}`;return n.push({id:s,html:x(t),tag:t.tag,svg:!1}),`templateNode(${s}, ${JSON.stringify(t.tag)})`}if(n&&te){let s=K(t);if(s){e.add("templateNode"),e.add("insert"),e.add("holeEnd"),e.add("holeContent"),e.add("holeScope");let l=`_tmpl$${n.length}`;n.push({id:l,html:s.html,tag:s.tag,svg:!1});let c=[`const _el$ = templateNode(${l}, ${JSON.stringify(s.tag)}, true);`];for(let u of s.steps)c.push(`const ${u.ref} = ${u.expr};`);for(let u of s.holes)c.push(`insert(${u.parentRef}, holeScope(${u.startRef}, () => (${k(u.node,e,n)})), ${u.endRef}, holeContent(${u.startRef}, ${u.endRef}));`);return c.push("return _el$;"),`(() => { ${c.join(" ")} })()`}}e.add("createNativeElement");let r=JSON.stringify(t.tag),i="_el$",o=[],a=t.svg?`${r}, true`:r;if(o.push(`const ${i} = createNativeElement(${a});`),t.props.length>0)if(!t.svg&&t.props.every(v))for(let s of t.props)o.push(Xe(i,s));else{e.add("spread");let s=t.svg?", isSVG: true":"";o.push(`spread({ element: ${i}, props: ${Le(t.props,null,e)}${s} });`)}for(let s of t.children){e.add("insert");let l=k(s,e,n),c=s.kind==="expr"&&s.reactive||s.kind==="component"||s.kind==="control";o.push(c?`insert(${i}, ${l}, null);`:`insert(${i}, ${l});`)}return o.push(`return ${i};`),`(() => { ${o.join(" ")} })()`}}}function E(t,e){if(!e||e.length===0)return t;let n=new Map(e.map(r=>[r.id,JSON.stringify(r.html)]));return t.replace(/_tmpl\$\d+/g,r=>n.get(r)??r)}var R={name:"imperative",contract:J,emit(t,e){let n=new Set,r=e?.templateClone!==!1?[]:void 0;return te=e?.partialTemplates===!0,{code:k(t,n,r),imports:Array.from(n),templates:r}}};var p=require("@babel/core"),L=F(require("@babel/generator"),1);function De(t){switch(t.kind){case"event":return"event";case"ref":return"ref";case"spread":return"spread";case"class":case"style":return"class-or-style-directive";case"attr":case"prop":return t.reactive?"reactive-prop":t.expr!==void 0?"expression-prop":void 0;default:return"expression-prop"}}function w(t){let e=[],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 s of i.children)r(s)||(o=!1);let a;for(let s of i.props)if(a=De(s),a)break;return!a&&!o&&(a=je(i)),i.static=!a,a?n.set(i,a):e.push(i),i.static}default:return!1}};for(let i of Array.isArray(t)?t:[t])r(i);return{staticElements:e,reasons:n}}function je(t){for(let e of t.children){if(e.kind==="expr")return"expression-child";if(e.kind==="component")return"component-child";if(e.kind==="control")return"control-child";if(e.kind==="element"&&!e.static||e.kind==="fragment")return"expression-child"}return"expression-child"}var Oe=L.default.default??L.default;function ie(t){return Oe(t,{concise:!0}).code}function _e(t,e){let n=p.types.cloneNode(t,!0),r=p.types.file(p.types.program([p.types.expressionStatement(n)])),i=!1,o=(a,s,l)=>{for(let c of l)e.add(c);a.replaceWith(p.template.expression(s,{placeholderPattern:!1,plugins:["typescript"]})()),a.skip(),i=!0};return(0,p.traverse)(r,{"JSXElement|JSXFragment"(a){let s=a.node,{code:l,imports:c,templates:u}=R.emit(We(s,e),{});o(a,E(l,u),c)},TaggedTemplateExpression(a){let s=a.node.tag;if(!p.types.isIdentifier(s)||s.name!=="html"&&s.name!=="svg")return;let l=j(a.node,e,{svg:s.name==="svg"}),{code:c,imports:u,templates:d}=R.emit(l,{});o(a,E(c,d),u)}}),i?r.program.body[0].expression:t}function h(t,e){return ie(_e(t,e))}var Me=new Set(["svg","path","circle","rect","line","polygon","polyline","ellipse","g","defs","clipPath","text"]),Be=/^on[A-Z]/,He=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]);function Fe(t){if(p.types.isJSXIdentifier(t)){let e=t.name[0]!==t.name[0].toLowerCase();return{tag:t.name,component:e}}return p.types.isJSXMemberExpression(t)?{tag:ie(t),component:!0}:p.types.isJSXNamespacedName(t)?{tag:`${t.namespace.name}:${t.name.name}`,component:!1}:{tag:"div",component:!1}}function D(t){return p.types.isJSXIdentifier(t)?t.name==="class"?"className":t.name:p.types.isJSXNamespacedName(t)?`${t.namespace.name}:${t.name.name}`:"unknown"}function m(t){return p.types.isCallExpression(t)||p.types.isOptionalCallExpression(t)?!0:p.types.isMemberExpression(t)||p.types.isOptionalMemberExpression(t)?!(!t.computed&&p.types.isIdentifier(t.property,{name:"children"})):p.types.isConditionalExpression(t)?m(t.test)||m(t.consequent)||m(t.alternate):p.types.isLogicalExpression(t)||p.types.isBinaryExpression(t)?m(t.left)||m(t.right):p.types.isTemplateLiteral(t)?t.expressions.some(e=>m(e)):p.types.isObjectExpression(t)?t.properties.some(e=>p.types.isObjectProperty(e)&&!e.computed&&m(e.value)):p.types.isArrayExpression(t)?t.elements.some(e=>e!=null&&!p.types.isSpreadElement(e)&&m(e)):!1}function ze(t,e){let n=D(t.name),r=Be.test(n),i=r||n.startsWith("on:")||n==="ref",a={name:n,kind:r?"event":"attr"};r&&(a.event={name:n.slice(2).toLowerCase(),delegated:He.has(n.slice(2).toLowerCase())});let s=t.value;if(s==null)return a.literal=!0,a;if(p.types.isStringLiteral(s))return a.literal=s.value,a;if(p.types.isJSXExpressionContainer(s)&&!p.types.isJSXEmptyExpression(s.expression)){let l=s.expression;return p.types.isStringLiteral(l)||p.types.isNumericLiteral(l)||p.types.isBooleanLiteral(l)?(a.literal=l.value,a):(a.expr=h(l,e),a.reactive=i?!1:m(l),(p.types.isJSXElement(l)||p.types.isJSXFragment(l))&&(a.jsxElement=!0),a)}return a.literal=!0,a}function ne(t,e){let n=t.value;return n==null?null:p.types.isStringLiteral(n)?JSON.stringify(n.value):p.types.isJSXExpressionContainer(n)&&!p.types.isJSXEmptyExpression(n.expression)?h(n.expression,e):null}function Ve(t,e){let n=[],r=[];for(let i of t){if(p.types.isJSXSpreadAttribute(i)){n.push({name:"",kind:"spread",expr:h(i.argument,e)});continue}if(!p.types.isJSXAttribute(i)||C(D(i.name)))continue;let o=p.types.isJSXNamespacedName(i.name)?i.name.namespace.name:null;if(o==="use"){let a=i.name.name.name;e.add(a);let s=ne(i,e);r.push(s!=null?`[${a}, () => (${s})]`:`[${a}]`);continue}if(o==="oncapture"){let a=i.name.name.name.toLowerCase(),s=ne(i,e)??"undefined";n.push({name:"on:"+a,kind:"attr",expr:`[${s}, { capture: true }]`});continue}n.push(ze(i,e))}return r.length>0&&n.push({name:"use",kind:"attr",expr:`[${r.join(", ")}]`}),n}function T(t){let e=t.split(/\r\n|\n|\r/),n=0;for(let i=0;i<e.length;i++)/[^ \t]/.test(e[i])&&(n=i);let r="";for(let i=0;i<e.length;i++){let o=e[i].replace(/\t/g," ");i!==0&&(o=o.replace(/^ +/,"")),i!==e.length-1&&(o=o.replace(/ +$/,"")),o&&(i!==n&&(o+=" "),r+=o)}return r}function re(t,e){let n=[];for(let r of t)if(p.types.isJSXText(r)){let i=T(r.value);i&&n.push({kind:"text",value:i})}else if(p.types.isJSXExpressionContainer(r)){if(!p.types.isJSXEmptyExpression(r.expression)){let i=r.expression;n.push({kind:"expr",code:h(i,e),reactive:m(i)})}}else p.types.isJSXElement(r)||p.types.isJSXFragment(r)?n.push(X(r,e)):p.types.isJSXSpreadChild(r)&&n.push({kind:"expr",code:h(r.expression,e),reactive:!1});return n}function We(t,e=new Set){let n=X(t,e);return w(n),n}function X(t,e){if(p.types.isJSXFragment(t))return{kind:"fragment",children:re(t.children,e)};let{tag:n,component:r}=Fe(t.openingElement.name),i=Ve(t.openingElement.attributes,e),o=re(t.children,e);if(r){let a=Ue(t.openingElement.attributes);return{kind:"component",name:n,props:i,children:o,...a?{load:a}:{}}}return{kind:"element",tag:n,svg:Me.has(n),props:i,children:o,static:!1}}function Ue(t){for(let e of t){if(!p.types.isJSXAttribute(e))continue;let n=D(e.name);if(C(n)){if(e.value&&!p.types.isStringLiteral(e.value))throw new f(`'${n}' needs a literal value, not an expression — the strategy is compile-time.`);return y(n,e.value?e.value.value:null)}}}var Ge=O.default.default??O.default;function Ke(t){return Ge(t,{concise:!0}).code}var se=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]);function qe(t){return t.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}function oe(t){return t.charAt(0).toUpperCase()+t.slice(1)}var _=class{constructor(e,n){this.holes=e;this.used=n}hole(e){return this.holes[e]??{node:N.types.identifier("undefined"),code:"undefined",reactive:!1}}emit(e){let{code:n,imports:r,templates:i}=R.emit(e,{});for(let o of r)this.used.add(o);return E(n,i)}lowerRoot(e){let n=this.lowerChildren(e);return n.length===1?n[0]:{kind:"fragment",children:n}}lowerChildren(e){let n=[];for(let r=0;r<e.length;r++){let i=e[r];if(i.kind==="Element"||i.kind==="Component"){let a=i.attributes.find(s=>s.kind==="IfDirective");if(a&&a.kind==="IfDirective"){let s=r+1;s<e.length&&this.isBlankText(e[s])&&s++;let l=e[s],c=l&&(l.kind==="Element"||l.kind==="Component")&&l.attributes.some(u=>u.kind==="ElseDirective");n.push(this.lowerIf(i,a.hole,c?l:null)),c&&(r=s);continue}if(i.attributes.some(s=>s.kind==="EachDirective")){n.push(this.lowerEach(i));continue}}let o=this.lowerNode(i);o&&n.push(o)}return n}isBlankText(e){return e.kind==="Text"&&!e.raw&&T(e.value)===""}lowerNode(e){switch(e.kind){case"Text":{if(e.raw)return{kind:"text",value:e.value};let n=T(e.value);return n?{kind:"text",value:n}:null}case"Comment":return null;case"Expression":{let n=this.hole(e.hole);return{kind:"expr",code:n.code,reactive:n.reactive}}case"Fragment":return{kind:"fragment",children:this.lowerChildren(e.children)};case"Element":return this.lowerElement(e);case"Component":return this.lowerComponent(e);default:return null}}lowerElement(e){let n=e.attributes.find(r=>r.kind==="Attribute"&&r.name==="is");if(e.tag==="component"&&n&&n.value&&n.value.kind==="hole"){let r=e.attributes.filter(o=>o!==n),i=this.lowerComponent({...e,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:e.tag,svg:e.namespace==="svg",props:this.lowerAttributes(e.attributes),children:this.lowerChildren(e.children),static:!1}}lowerComponent(e){let n=e.tagHole!=null?this.hole(e.tagHole).code:e.tag,r=this.lowerAttributes(e.attributes),{slots:i,rest:o}=this.partitionSlots(e.children);for(let[l,c]of i){let u=c.length===1?c[0]:{kind:"fragment",children:c},d={name:l,kind:"attr",expr:this.emit(u),jsxElement:!0},g=r.findIndex(S=>S.name===l);g>=0?r[g]=d:r.push(d)}let a=e.attributes.find(l=>l.kind==="LoadDirective"),s=a?y(`load:${a.strategy}`,a.modifier):void 0;return{kind:"component",name:n,props:r,children:this.lowerChildren(o),...s?{load:s}:{}}}partitionSlots(e){let n=new Map,r=[];for(let i of e){if(i.kind==="Element"||i.kind==="Component"){let o=i.attributes.find(a=>a.kind==="Attribute"&&a.name==="slot");if(o&&o.value&&o.value.kind==="static"){let a={...i,attributes:i.attributes.filter(c=>c!==o)},s=a.kind==="Element"?this.lowerElement(a):this.lowerComponent(a),l=n.get(o.value.value)??[];l.push(s),n.set(o.value.value,l);continue}}r.push(i)}return{slots:n,rest:r}}lowerIf(e,n,r){let i=this.hole(n),o=[{name:"when",kind:"attr",expr:i.code,reactive:i.reactive}];if(r){let s=this.stripAndLower(r,l=>l.kind==="ElseDirective");o.push({name:"fallback",kind:"attr",expr:this.emit(s),jsxElement:!0})}let a=this.stripAndLower(e,s=>s.kind==="IfDirective");return{kind:"component",name:"Show",props:o,children:[a]}}lowerEach(e){let n=e.attributes.find(l=>l.kind==="EachDirective");if(!n||n.kind!=="EachDirective")return this.lowerNode(e);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(e),a;if(o){let l=o.body,c={kind:"expr",code:h(l,this.used),reactive:m(l)},u=this.rebuildWithChildren(e,[c]);a=`(${o.params.map(d=>Ke(d)).join(", ")}) => (${this.emit(u)})`}else{let l=this.stripAndLower(e,c=>c.kind==="EachDirective");a=`() => (${this.emit(l)})`}return{kind:"component",name:"For",props:i,children:[{kind:"expr",code:a,reactive:!1}]}}itemArrow(e){let n=e.children.filter(i=>!this.isBlankText(i));if(n.length!==1||n[0].kind!=="Expression")return null;let r=this.hole(n[0].hole).node;return N.types.isArrowFunctionExpression(r)&&!N.types.isBlockStatement(r.body)?r:null}stripAndLower(e,n){let r={...e,attributes:e.attributes.filter(i=>!n(i))};return r.kind==="Element"?this.lowerElement(r):this.lowerComponent(r)}rebuildWithChildren(e,n){let r=this.lowerAttributes(e.attributes.filter(i=>i.kind!=="EachDirective"));return e.kind==="Element"?{kind:"element",tag:e.tag,svg:e.namespace==="svg",props:r,children:n,static:!1}:{kind:"component",name:e.tag,props:r,children:n}}lowerAttributes(e){let n=[],r=[],i=!1,o=[],a=!1,s=[];for(let l of e)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}`),a=a||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;s.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:a}),s.length>0&&n.push({name:"use",kind:"attr",expr:`[${s.join(", ")}]`}),n}eventProp(e){let n=e.name.toLowerCase(),r=this.hole(e.hole).code;if(!(e.syntax==="colon"||e.modifiers.length>0))return{name:"on"+oe(e.name),kind:"event",event:{name:n,delegated:se.has(n)},expr:r};let o=this.wrapHandler(r,e.modifiers),a=this.eventOptions(e.modifiers),s=a?`[${o}, ${a}]`:o;return{name:"on:"+n,kind:"attr",expr:s}}wrapHandler(e,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?e:`(e) => { ${r}${i.join(" ")} return (${e})(e); }`}eventOptions(e){let n=[];return e.includes("capture")&&n.push("capture: true"),e.includes("once")&&n.push("once: true"),e.includes("passive")&&n.push("passive: true"),n.length?`{ ${n.join(", ")} }`:null}bindProps(e,n){let r=e==="checked",i=r?"change":"input",o=r?"checked":"value",a=`(${n})`;return[{name:e,kind:"attr",expr:`${a}[0]()`,reactive:!0},{name:"on"+oe(i),kind:"event",event:{name:i,delegated:se.has(i)},expr:`(e) => ${a}[1](e.target.${o})`}]}plainAttr(e){let n=e.value,r=e.name;e.name==="class"?r=n&&n.kind==="hole"&&N.types.isObjectExpression(this.hole(n.hole).node)?"classList":"className":e.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 a=!1,s=n.parts.map(l=>{if("text"in l)return qe(l.text);let c=this.hole(l.hole);return a=a||c.reactive,"${"+c.code+"}"}).join("");return o.expr="`"+s+"`",o.reactive=a,o}};function le(t,e,n={}){let r=t.quasi,i=r.expressions.map(s=>{let l=s;return{node:l,code:h(l,e),reactive:m(l)}}),o=Ze(r),{root:a}=(0,ae.parseTemplate)(o,{svg:n.svg});return new _(i,e).lowerRoot(a.children)}function Ze(t){let e=[];return t.quasis.forEach((n,r)=>{let i=n.value.cooked??n.value.raw;if(e.push({kind:"static",text:i,start:n.start??0}),r<t.expressions.length){let o=t.expressions[r];e.push({kind:"hole",index:r,start:o.start??0,end:o.end??0})}}),e}function j(t,e=new Set,n={}){let r=le(t,e,n);return w(r),r}
1
+ "use strict";var ve=Object.create;var I=Object.defineProperty;var ke=Object.getOwnPropertyDescriptor;var xe=Object.getOwnPropertyNames;var ye=Object.getPrototypeOf,Ne=Object.prototype.hasOwnProperty;var Ee=(e,t)=>{for(var n in t)I(e,n,{get:t[n],enumerable:!0})},G=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of xe(t))!Ne.call(e,i)&&i!==n&&I(e,i,{get:()=>t[i],enumerable:!(r=ke(t,i))||r.enumerable});return e};var W=(e,t,n)=>(n=e!=null?ve(ye(e)):{},G(t||!e||!e.__esModule?I(n,"default",{value:e,enumerable:!0}):n,e)),Re=e=>G(I({},"__esModule",{value:!0}),e);var pt={};Ee(pt,{buildIRFromLit:()=>B});module.exports=Re(pt);var A=require("@babel/core"),F=W(require("@babel/generator"),1);var le=require("@fluixi/template-parser");var be={kind:"eager"},Se=["pointerdown","focusin","keydown"],q=new Set(["eager","idle","visible","interaction","media","never"]),f=class extends Error{};function J(e){return e.startsWith("load:")}function $(e,t){let n=e.slice(5);if(!q.has(n))throw new f(`Unknown load strategy 'load:${n}'. Expected one of ${[...q].join(", ")}.`);switch(n){case"eager":return be;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?Ie(t):[...Se]};case"media":if(!t)throw new f(`'load:media' needs a query, e.g. load:media="(min-width: 1024px)".`);return{kind:"media",query:t};default:throw new f(`Unhandled load strategy '${n}'.`)}}function Ie(e){let t=e.split(/[\s,]+/).map(n=>n.trim()).filter(Boolean);if(t.length===0)throw new f("'load:interaction' was given no event names.");return t}var $e=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),U={className:"class",htmlFor:"for"},we=new Set(["innerHTML","outerHTML","innerText","textContent","value","checked","selected","muted","defaultValue","defaultChecked","children","ref"]),Te=new Set(["script","style","textarea","title"]);function L(e){return Te.has(e)}function K(e){return U[e]??e}function h(e){return e.kind!=="attr"||e.expr!==void 0||e.name.includes(":")?!1:!we.has(e.name)}function D(e){if(!e.static||L(e.tag))return!1;for(let t of e.props)if(!h(t))return!1;for(let t of e.children)if(t.kind!=="text"&&!(t.kind==="element"&&D(t)))return!1;return!0}function g(e){let t=e.props.map(Pe).filter(Boolean).join(""),n=`<${e.tag}${t}>`;return $e.has(e.tag)?n:`${n}${e.children.map(Ce).join("")}</${e.tag}>`}function Ce(e){if(e.kind==="text")return Je(e.value);if(e.kind!=="element")throw new Error(`serializeStatic: unexpected ${e.kind}`);return g(e)}function Pe(e){let t=U[e.name]??e.name,n=e.literal;return n===!0||n===void 0?` ${t}`:n===!1||n===null?"":` ${t}="${Ae(String(n))}"`}function Ae(e){return e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Je(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}var Le="<!--fx-->",De="<!--fx/-->";function T(e){return e.kind==="expr"||e.kind==="component"||e.kind==="control"}function je(e){return e.kind==="text"||e.kind==="element"&&Z(e)}function Z(e){return e.svg||L(e.tag)||!e.props.every(t=>h(t))?!1:e.children.every(t=>je(t)||T(t))}function w(e){if(T(e))return!0;let t=e.children;return t?t.some(w):!1}function Y(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"||Y(t))}function Q(e){if(!Z(e)||!Y(e)||!e.children.some(w))return null;let t=[],n=[],r=0,i=l=>{let s=`_n$${r++}`;return t.push({ref:s,expr:l}),s};return o(e,"_el$"),{html:Oe(e),tag:e.tag,steps:t,holes:n};function o(l,s){let a=-1;l.children.forEach((p,d)=>{w(p)&&(a=d)});let c=null;for(let p=0;p<=a;p++){let d=l.children[p],m=c?`${c}.nextSibling`:`${s}.firstChild`;if(T(d)){let z=i(m),V=i(`holeEnd(${z})`);n.push({parentRef:s,startRef:z,endRef:V,node:d}),c=V;continue}let S=i(m);d.kind==="element"&&w(d)&&o(d,S),c=S}}}function Oe(e){return g(ee(e)).split(te).join(Le+De)}function ee(e){return{...e,children:e.children.map(t=>T(t)?{kind:"text",value:te}:t.kind==="element"?ee(t):t)}}var te="\0fx-hole\0";var j={version:1,module:"@fluixi/dom",symbols:["createNativeElement","insert","spread","setAttribute","delegateEvents","createComponent","createMemo","untrack","Show","For","Index","Switch","Match","Dynamic","ErrorBoundary"]},gt={version:2,module:"@fluixi/dom",symbols:[...j.symbols,"template","cloneTemplate","walk"]};var Xe={show:"Show",for:"For",index:"Index",switch:"Switch",match:"Match",dynamic:"Dynamic",errorBoundary:"ErrorBoundary",suspense:"Suspense"};function Me(e){return/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(e)}function re(e){return Me(e)?e:JSON.stringify(e)}function He(e){return e.expr!==void 0?e.reactive?`() => (${e.expr})`:`(${e.expr})`:JSON.stringify(e.literal??!0)}function _e(e){return e.expr!==void 0?`(${e.expr})`:JSON.stringify(e.literal??!0)}function Be(e,t,n){let r=e.filter(s=>s.kind==="spread"),o=e.filter(s=>s.kind!=="spread").map(s=>`${re(s.name)}: ${He(s)}`);t!=null&&o.push(`children: ${t}`);let l=`{ ${o.join(", ")} }`;return r.length>0?(n.add("mergeProps"),`mergeProps(${r.map(s=>s.expr).join(", ")}, ${l})`):l}function ie(e,t,n){return e.length===1?v(e[0],t,n):`[${e.map(r=>v(r,t,n)).join(", ")}]`}function ne(e,t,n,r,i){r.add("createMemo"),r.add("createComponent");let o=t.filter(c=>c.kind==="spread"),s=t.filter(c=>c.kind!=="spread").map(c=>`get ${re(c.name)}() { return ${_e(c)}; }`);n.length>0&&s.push(`get children() { return ${ie(n,r,i)}; }`);let a=`{ ${s.join(", ")} }`;return o.length>0&&(r.add("mergeProps"),a=`mergeProps(${o.map(c=>c.expr).join(", ")}, ${a})`),`createMemo(() => createComponent(${e}, ${a}))`}function Fe(e,t){let n=K(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 oe=!1;function v(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":ie(e.children,t,n);case"component":return ne(e.name,e.props,e.children,t,n);case"control":{let r=Xe[e.control]??e.control;return t.add(r),ne(r,e.props,e.children,t,n)}case"element":{if(n&&e.static&&!e.svg&&D(e)){t.add("templateNode");let s=`_tmpl$${n.length}`;return n.push({id:s,html:g(e),tag:e.tag,svg:!1}),`templateNode(${s}, ${JSON.stringify(e.tag)})`}if(n&&oe){let s=Q(e);if(s){t.add("templateNode"),t.add("insert"),t.add("holeEnd"),t.add("holeContent"),t.add("holeScope");let a=`_tmpl$${n.length}`;n.push({id:a,html:s.html,tag:s.tag,svg:!1});let c=[`const _el$ = templateNode(${a}, ${JSON.stringify(s.tag)}, true);`];for(let p of s.steps)c.push(`const ${p.ref} = ${p.expr};`);for(let p of s.holes)c.push(`insert(${p.parentRef}, holeScope(${p.startRef}, () => (${v(p.node,t,n)})), ${p.endRef}, holeContent(${p.startRef}, ${p.endRef}));`);return c.push("return _el$;"),`(() => { ${c.join(" ")} })()`}}t.add("createNativeElement");let r=JSON.stringify(e.tag),i="_el$",o=[],l=e.svg?`${r}, true`:r;if(o.push(`const ${i} = createNativeElement(${l});`),e.props.length>0)if(!e.svg&&e.props.every(h))for(let s of e.props)o.push(Fe(i,s));else{t.add("spread");let s=e.svg?", isSVG: true":"";o.push(`spread({ element: ${i}, props: ${Be(e.props,null,t)}${s} });`)}for(let s of e.children){t.add("insert");let a=v(s,t,n),c=s.kind==="expr"&&s.reactive||s.kind==="component"||s.kind==="control";o.push(c?`insert(${i}, ${a}, null);`:`insert(${i}, ${a});`)}return o.push(`return ${i};`),`(() => { ${o.join(" ")} })()`}}}function k(e,t){if(!t||t.length===0)return e;let n=new Map(t.map(r=>[r.id,JSON.stringify(r.html)]));return e.replace(/_tmpl\$\d+/g,r=>n.get(r)??r)}var x={name:"imperative",contract:j,emit(e,t){let n=new Set,r=t?.templateClone!==!1?[]:void 0;return oe=t?.partialTemplates===!0,{code:v(e,n,r),imports:Array.from(n),templates:r}}};function y(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 se=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]);function ze(e){return e.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}function ae(e){return e.charAt(0).toUpperCase()+e.slice(1)}var O=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}=x.emit(t,{});for(let o of r)this.used.add(o);return k(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 l=i.attributes.find(s=>s.kind==="IfDirective");if(l&&l.kind==="IfDirective"){let s=r+1;s<t.length&&this.isBlankText(t[s])&&s++;let a=t[s],c=a&&(a.kind==="Element"||a.kind==="Component")&&a.attributes.some(p=>p.kind==="ElseDirective");n.push(this.lowerIf(i,l.hole,c?a:null)),c&&(r=s);continue}if(i.attributes.some(s=>s.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&&y(t.value)===""}lowerNode(t){switch(t.kind){case"Text":{if(t.raw)return{kind:"text",value:t.value};let n=y(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[a,c]of i){let p=c.length===1?c[0]:{kind:"fragment",children:c},d={name:a,kind:"attr",expr:this.emit(p),jsxElement:!0},m=r.findIndex(S=>S.name===a);m>=0?r[m]=d:r.push(d)}let l=t.attributes.find(a=>a.kind==="LoadDirective"),s=l?$(`load:${l.strategy}`,l.modifier):void 0;return{kind:"component",name:n,props:r,children:this.lowerChildren(o),...s?{load:s}:{}}}partitionSlots(t){let n=new Map,r=[];for(let i of t){if(i.kind==="Element"||i.kind==="Component"){let o=i.attributes.find(l=>l.kind==="Attribute"&&l.name==="slot");if(o&&o.value&&o.value.kind==="static"){let l={...i,attributes:i.attributes.filter(c=>c!==o)},s=l.kind==="Element"?this.lowerElement(l):this.lowerComponent(l),a=n.get(o.value.value)??[];a.push(s),n.set(o.value.value,a);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 s=this.stripAndLower(r,a=>a.kind==="ElseDirective");o.push({name:"fallback",kind:"attr",expr:this.emit(s),jsxElement:!0})}let l=this.stripAndLower(t,s=>s.kind==="IfDirective");return{kind:"component",name:"Show",props:o,children:[l]}}lowerEach(t){let n=t.attributes.find(a=>a.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 a="static"in n.key?`(item) => item[${JSON.stringify(n.key.static)}]`:this.hole(n.key.hole).code;i.push({name:"by",kind:"attr",expr:a})}let o=this.itemArrow(t),l;if(o){let a={kind:"expr",code:o.body,reactive:o.bodyReactive},c=this.rebuildWithChildren(t,[a]);l=`(${o.params.join(", ")}) => (${this.emit(c)})`}else{let a=this.stripAndLower(t,c=>c.kind==="EachDirective");l=`() => (${this.emit(a)})`}return{kind:"component",name:"For",props:i,children:[{kind:"expr",code:l,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=[],l=!1,s=[];for(let a of t)switch(a.kind){case"IfDirective":case"EachDirective":case"ElseDirective":break;case"Attribute":n.push(this.plainAttr(a));break;case"PropertyBinding":n.push({name:a.name,kind:"prop",expr:this.hole(a.hole).code,reactive:this.hole(a.hole).reactive});break;case"EventBinding":n.push(this.eventProp(a));break;case"RefBinding":n.push({name:"ref",kind:"ref",expr:this.hole(a.hole).code,reactive:this.hole(a.hole).reactive});break;case"Spread":n.push({name:"",kind:"spread",expr:this.hole(a.hole).code});break;case"ClassDirective":{let c=this.hole(a.hole);r.push(`${JSON.stringify(a.name)}: ${c.code}`),i=i||c.reactive;break}case"StyleDirective":{let c=this.hole(a.hole);o.push(`${JSON.stringify(a.name)}: ${c.code}`),l=l||c.reactive;break}case"BindDirective":n.push(...this.bindProps(a.name,this.hole(a.hole).code));break;case"UseDirective":{let c=a.name??(a.hole!=null?this.hole(a.hole).code:null);if(!c)break;s.push(a.name!=null&&a.hole!=null?`[${c}, () => (${this.hole(a.hole).code})]`:`[${c}]`);break}}return 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:l}),s.length>0&&n.push({name:"use",kind:"attr",expr:`[${s.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),l=this.eventOptions(t.modifiers),s=l?`[${o}, ${l}]`:o;return{name:"on:"+n,kind:"attr",expr:s}}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",l=`(${n})`;return[{name:t,kind:"attr",expr:`${l}[0]()`,reactive:!0},{name:"on"+ae(i),kind:"event",event:{name:i,delegated:se.has(i)},expr:`(e) => ${l}[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 a=this.hole(n.hole);return o.expr=a.code,o.reactive=a.reactive,o}let l=!1,s=n.parts.map(a=>{if("text"in a)return ze(a.text);let c=this.hole(a.hole);return l=l||c.reactive,"${"+c.code+"}"}).join("");return o.expr="`"+s+"`",o.reactive=l,o}};function ce(e,t,n,r={}){let{root:i}=(0,le.parseTemplate)(e,{svg:r.svg});return new O(t,n).lowerRoot(i.children)}var u=require("@babel/core"),H=W(require("@babel/generator"),1);var Ve="children";function N(e){switch(e.kind){case"call":return!0;case"member":return e.property!==Ve;case"compound":return e.parts.some(N);case"opaque":return!1}}var Ge=new Set(["CallExpression","OptionalCallExpression"]),We=new Set(["MemberExpression","OptionalMemberExpression"]);function R(e){if(!e)return{kind:"opaque"};if(Ge.has(e.type))return{kind:"call"};if(We.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(E)}:e.type==="LogicalExpression"||e.type==="BinaryExpression"?{kind:"compound",parts:[e.left,e.right].map(E)}:e.type==="TemplateLiteral"?{kind:"compound",parts:e.expressions.map(E)}:e.type==="ObjectExpression"?{kind:"compound",parts:e.properties.filter(n=>(n.type==="ObjectProperty"||n.type==="Property")&&n.computed!==!0).map(n=>E(n.value))}:e.type==="ArrayExpression"?{kind:"compound",parts:e.elements.filter(n=>n!=null&&n.type!=="SpreadElement").map(E)}:{kind:"opaque"}}var E=e=>R(e);function qe(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 C(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 s of i.children)r(s)||(o=!1);let l;for(let s of i.props)if(l=qe(s),l)break;return!l&&!o&&(l=Ue(i)),i.static=!l,l?n.set(i,l):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 Ue(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 Ke=new Set(["svg","path","circle","rect","line","polygon","polyline","ellipse","g","defs","clipPath","text"]),Ze=/^on[A-Z]/,Ye=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]),ue=e=>N(R(e));function b(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 X=e=>!!e&&typeof b(e)=="string";function Qe(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 M(e){return e.type==="JSXIdentifier"?e.name==="class"?"className":e.name:e.type==="JSXNamespacedName"?`${e.namespace.name}:${e.name.name}`:"unknown"}function et(e,t){let n=M(e.name),r=Ze.test(n),i=r||n.startsWith("on:")||n==="ref",l={name:n,kind:r?"event":"attr"};if(r){let a=n.slice(2).toLowerCase();l.event={name:a,delegated:Ye.has(a)}}let s=e.value;if(s==null)return l.literal=!0,l;if(X(s))return l.literal=b(s),l;if(s.type==="JSXExpressionContainer"&&s.expression?.type!=="JSXEmptyExpression"){let a=s.expression,c=b(a);return c!==void 0?(l.literal=c,l):(l.expr=t.code(a),l.reactive=i?!1:ue(a),(a.type==="JSXElement"||a.type==="JSXFragment")&&(l.jsxElement=!0),l)}return l.literal=!0,l}function pe(e,t){let n=e.value;return n==null?null:X(n)?JSON.stringify(b(n)):n.type==="JSXExpressionContainer"&&n.expression?.type!=="JSXEmptyExpression"?t.code(n.expression):null}function tt(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"||J(M(i.name)))continue;let o=i.name.type==="JSXNamespacedName"?i.name.namespace.name:null;if(o==="use"){let l=i.name.name.name;t.used.add(l);let s=pe(i,t);r.push(s!=null?`[${l}, () => (${s})]`:`[${l}]`);continue}if(o==="oncapture"){let l=i.name.name.name.toLowerCase(),s=pe(i,t)??"undefined";n.push({name:"on:"+l,kind:"attr",expr:`[${s}, { capture: true }]`});continue}n.push(et(i,t))}return r.length>0&&n.push({name:"use",kind:"attr",expr:`[${r.join(", ")}]`}),n}function de(e,t){let n=[];for(let r of e)if(r.type==="JSXText"){let i=y(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:ue(i)})}}else r.type==="JSXElement"||r.type==="JSXFragment"?n.push(me(r,t)):r.type==="JSXSpreadChild"&&n.push({kind:"expr",code:t.code(r.expression),reactive:!1});return n}function nt(e){for(let t of e){if(t.type!=="JSXAttribute")continue;let n=M(t.name);if(J(n)){if(t.value&&!X(t.value))throw new f(`'${n}' needs a literal value, not an expression — the strategy is compile-time.`);return $(n,t.value?b(t.value):null)}}}function me(e,t){if(e.type==="JSXFragment")return{kind:"fragment",children:de(e.children,t)};let{tag:n,component:r}=Qe(e.openingElement.name,t),i=tt(e.openingElement.attributes,t),o=de(e.children,t);if(r){let l=nt(e.openingElement.attributes);return{kind:"component",name:n,props:i,children:o,...l?{load:l}:{}}}return{kind:"element",tag:n,svg:Ke.has(n),props:i,children:o,static:!1}}function fe(e,t){let n=me(e,t);return C(n),n}var rt=H.default.default??H.default;function he(e){return rt(e,{concise:!0}).code}function it(e,t,n){let r=u.types.cloneNode(e,!0),i=u.types.file(u.types.program([u.types.expressionStatement(r)])),o=!1,l=(s,a,c)=>{for(let p of c)t.add(p);s.replaceWith(u.template.expression(a,{placeholderPattern:!1,plugins:["typescript"]})()),s.skip(),o=!0};return(0,u.traverse)(i,{"JSXElement|JSXFragment"(s){let a=s.node,c=ot(a,t,n);n?.(c);let{code:p,imports:d,templates:m}=x.emit(c,{});l(s,k(p,m),d)},TaggedTemplateExpression(s){let a=s.node.tag;if(!u.types.isIdentifier(a)||a.name!=="html"&&a.name!=="svg")return;let c=B(s.node,t,{svg:a.name==="svg",onNested:n});n?.(c);let{code:p,imports:d,templates:m}=x.emit(c,{});l(s,k(p,m),d)}}),o?i.program.body[0].expression:e}function P(e,t,n){return he(it(e,t,n))}function _(e){return N(R(e))}function ot(e,t=new Set,n){return fe(e,{code:i=>i.type==="JSXMemberExpression"?he(i):P(i,t,n),used:t})}var st=F.default.default??F.default;function at(e){return st(e,{concise:!0}).code}function lt(e,t,n){let r={code:P(e,t,n),reactive:_(e)};if(A.types.isArrowFunctionExpression(e)&&!A.types.isBlockStatement(e.body)){let i=e.body;r.arrow={params:e.params.map(o=>at(o)),body:P(i,t,n),bodyReactive:_(i)}}return A.types.isObjectExpression(e)&&(r.object=!0),r}function ge(e,t,n={}){let r=e.quasi,i=r.expressions.map(o=>lt(o,t,n.onNested));return ce(ct(r),i,t,n)}function ct(e){let t=[];return e.quasis.forEach((n,r)=>{let i=n.value.cooked??n.value.raw;if(t.push({kind:"static",text:i,start:n.start??0}),r<e.expressions.length){let o=e.expressions[r];t.push({kind:"hole",index:r,start:o.start??0,end:o.end??0})}}),t}function B(e,t=new Set,n={}){let r=ge(e,t,n);return C(r),r}
@@ -22,5 +22,6 @@ import type { IRNode } from '../../ir/nodes.js';
22
22
  */
23
23
  export declare function buildIRFromLit(node: t.TaggedTemplateExpression, used?: Set<string>, opts?: {
24
24
  svg?: boolean;
25
+ onNested?: (ir: IRNode) => void;
25
26
  }): IRNode;
26
27
  //# sourceMappingURL=build-ir-lit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-ir-lit.d.ts","sourceRoot":"","sources":["../../../src/frontend/babel/build-ir-lit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAIhD;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,CAAC,CAAC,wBAAwB,EAChC,IAAI,GAAE,GAAG,CAAC,MAAM,CAAa,EAC7B,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAO,GAC3B,MAAM,CAKR"}
1
+ {"version":3,"file":"build-ir-lit.d.ts","sourceRoot":"","sources":["../../../src/frontend/babel/build-ir-lit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAIhD;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,CAAC,CAAC,wBAAwB,EAChC,IAAI,GAAE,GAAG,CAAC,MAAM,CAAa,EAC7B,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;CAAO,GAC5D,MAAM,CAKR"}