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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/analyze/static-graph.cjs +1 -0
  2. package/dist/analyze/static-graph.d.ts +103 -0
  3. package/dist/analyze/static-graph.d.ts.map +1 -0
  4. package/dist/analyze/static-graph.js +869 -0
  5. package/dist/analyze/static-graph.mjs +1 -0
  6. package/dist/{babel-4JUDAR2G.mjs → babel-VXKH6MRQ.mjs} +1 -1
  7. package/dist/chunk-5KMMN5QP.mjs +1 -0
  8. package/dist/chunk-YKZ54NVE.mjs +1 -0
  9. package/dist/codegen/backends/imperative.cjs +1 -1
  10. package/dist/codegen/backends/imperative.d.ts.map +1 -1
  11. package/dist/codegen/backends/imperative.js +62 -11
  12. package/dist/codegen/backends/imperative.mjs +1 -1
  13. package/dist/codegen/partial-template.cjs +1 -1
  14. package/dist/codegen/partial-template.mjs +1 -1
  15. package/dist/codegen/serialize-static.cjs +1 -1
  16. package/dist/codegen/serialize-static.d.ts +16 -0
  17. package/dist/codegen/serialize-static.d.ts.map +1 -1
  18. package/dist/codegen/serialize-static.js +25 -0
  19. package/dist/codegen/serialize-static.mjs +1 -1
  20. package/dist/frontend/babel/build-ir-lit.cjs +1 -1
  21. package/dist/frontend/babel/build-ir-lit.mjs +1 -1
  22. package/dist/frontend/babel/build-ir.cjs +1 -1
  23. package/dist/frontend/babel/build-ir.mjs +1 -1
  24. package/dist/frontend/babel/index.cjs +1 -1
  25. package/dist/frontend/babel/index.mjs +1 -1
  26. package/dist/frontend/babel/lower-template.cjs +1 -1
  27. package/dist/frontend/babel/lower-template.mjs +1 -1
  28. package/dist/frontend/babel/plugin.cjs +1 -1
  29. package/dist/frontend/babel/plugin.mjs +1 -1
  30. package/dist/index.cjs +8 -8
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +3 -0
  33. package/dist/index.mjs +8 -8
  34. package/dist/integrations.cjs +18 -18
  35. package/dist/integrations.d.ts +16 -0
  36. package/dist/integrations.d.ts.map +1 -1
  37. package/dist/integrations.js +21 -2
  38. package/dist/integrations.mjs +5 -5
  39. package/dist/ir/nodes.cjs +1 -1
  40. package/dist/ir/nodes.d.ts +46 -0
  41. package/dist/ir/nodes.d.ts.map +1 -1
  42. package/dist/lower/compile-template.cjs +1 -1
  43. package/dist/lower/compile-template.d.ts +12 -0
  44. package/dist/lower/compile-template.d.ts.map +1 -1
  45. package/dist/lower/compile-template.js +5 -1
  46. package/dist/lower/compile-template.mjs +1 -1
  47. package/dist/lower/jsx.cjs +1 -1
  48. package/dist/lower/jsx.d.ts +2 -0
  49. package/dist/lower/jsx.d.ts.map +1 -1
  50. package/dist/lower/jsx.js +25 -3
  51. package/dist/lower/jsx.mjs +1 -1
  52. package/dist/lower/template.cjs +1 -1
  53. package/dist/lower/template.d.ts +14 -1
  54. package/dist/lower/template.d.ts.map +1 -1
  55. package/dist/lower/template.js +101 -15
  56. package/dist/lower/template.mjs +1 -1
  57. package/dist/transform/index.cjs +5 -5
  58. package/dist/transform/index.mjs +12 -12
  59. package/dist/transform/source-locations.cjs +1 -0
  60. package/dist/transform/source-locations.d.ts +44 -0
  61. package/dist/transform/source-locations.d.ts.map +1 -0
  62. package/dist/transform/source-locations.js +238 -0
  63. package/dist/transform/source-locations.mjs +1 -0
  64. package/dist/transform/templates.cjs +4 -4
  65. package/dist/transform/templates.d.ts +12 -4
  66. package/dist/transform/templates.d.ts.map +1 -1
  67. package/dist/transform/templates.js +72 -7
  68. package/dist/transform/templates.mjs +11 -11
  69. package/dist/transform-C4ZXRVGP.mjs +8 -0
  70. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  71. package/package.json +3 -3
  72. package/dist/chunk-PVR2SN3B.mjs +0 -1
  73. package/dist/chunk-QUIYULS2.mjs +0 -1
  74. package/dist/chunk-YR3SAEO7.mjs +0 -1
  75. package/dist/transform-5WC4FWJE.mjs +0 -8
@@ -21,6 +21,7 @@ import { imperativeBackend } from '../codegen/backends/imperative.js';
21
21
  import { moduleBindings } from './bindings.js';
22
22
  import { collectPropsEdits } from './props.js';
23
23
  import { collectIntrinsicEdits, intrinsicImports } from './intrinsics.js';
24
+ import { collectSourceEdits, mayHaveReactiveCall } from './source-locations.js';
24
25
  import { mayHaveIntrinsic } from '../analyze/intrinsics.js';
25
26
  import { declaredNames } from '../analyze/reactive-bindings.js';
26
27
  import { DOM_CONTROL_FLOW, CORE_CONTROL_FLOW, ROUTER_COMPONENTS } from '../resolve/builtins.js';
@@ -73,7 +74,15 @@ function isTemplateTag(node, litTag) {
73
74
  }
74
75
  /** The edits in `list` that no other edit in `list` contains. */
75
76
  function outermost(list) {
76
- return list.filter((e) => !list.some((o) => o !== e && o.start <= e.start && o.end >= e.end && o.end - o.start > e.end - e.start));
77
+ return list.filter((e) => !list.some((o) => o !== e &&
78
+ o.start <= e.start &&
79
+ o.end >= e.end &&
80
+ o.end - o.start > e.end - e.start &&
81
+ // An insertion at either edge of the container sits beside it, not inside it, so
82
+ // it is not something the container's code already folded in. A statement can
83
+ // start where its callee starts (`$effect(…)`) and a declarator can end where its
84
+ // JSX ends (`const Row = () => <b/>`).
85
+ !(e.start === e.end && (e.start === o.start || e.start === o.end))));
77
86
  }
78
87
  /**
79
88
  * Apply edits to a slice of the source.
@@ -91,10 +100,14 @@ function slice(code, start, end, edits) {
91
100
  return out;
92
101
  }
93
102
  /** Describe one `${…}` for the lowering, substituting any template already compiled inside it. */
94
- function bindHole(code, expr, edits) {
103
+ function bindHole(code, expr, edits, keepPosition = false) {
104
+ const at = keepPosition ? expr.loc?.start : undefined;
95
105
  const hole = {
96
106
  code: slice(code, expr.start, expr.end, edits),
97
107
  reactive: isReactiveShape(shapeOf(expr)),
108
+ // Where the `${…}` is, so a binding made from it can say so. The source map cannot:
109
+ // the whole template is one overwrite. Only when source locations were asked for.
110
+ ...(at ? { at: { line: at.line, column: at.column } } : {}),
98
111
  };
99
112
  if (expr.type === 'ArrowFunctionExpression' && expr.body?.type !== 'BlockStatement') {
100
113
  hole.arrow = {
@@ -232,6 +245,30 @@ function strategyLiteral(s) {
232
245
  parts.push(`query: ${JSON.stringify(s.query)}`);
233
246
  return `{ ${parts.join(', ')} }`;
234
247
  }
248
+ /**
249
+ * Offset → line and column, built once per module.
250
+ *
251
+ * The parser reports offsets into this file, since the pieces it is given carry the
252
+ * positions Babel recorded for the quasis.
253
+ */
254
+ function positionsIn(code) {
255
+ const starts = [0];
256
+ for (let i = 0; i < code.length; i++)
257
+ if (code.charCodeAt(i) === 10)
258
+ starts.push(i + 1);
259
+ return (offset) => {
260
+ let low = 0;
261
+ let high = starts.length - 1;
262
+ while (low < high) {
263
+ const mid = (low + high + 1) >> 1;
264
+ if (starts[mid] <= offset)
265
+ low = mid;
266
+ else
267
+ high = mid - 1;
268
+ }
269
+ return { line: low + 1, column: offset - starts[low] };
270
+ };
271
+ }
235
272
  /** Quasis and holes as position-carrying parser pieces. */
236
273
  function toPieces(node) {
237
274
  const pieces = [];
@@ -248,6 +285,13 @@ function toPieces(node) {
248
285
  * Compile every template in `code`. Returns null when the module has none, so a
249
286
  * bundler can skip the file untouched.
250
287
  */
288
+ /** No path module here: this runs in the browser as well as in a bundler. */
289
+ function relativeToRoot(id, root) {
290
+ if (!root)
291
+ return id;
292
+ const base = root.endsWith('/') ? root : `${root}/`;
293
+ return id.startsWith(base) ? id.slice(base.length) : id;
294
+ }
251
295
  export function transformTemplates(code, id, options = {}) {
252
296
  const litTag = options.litTag ?? 'html';
253
297
  const format = options.format ?? 'both';
@@ -257,7 +301,13 @@ export function transformTemplates(code, id, options = {}) {
257
301
  // A module can be nothing but `$signal` calls, so the skip check has to look for those
258
302
  // too or the file is never parsed.
259
303
  const wantsIntrinsics = options.intrinsics !== false && mayHaveIntrinsic(code);
260
- if (!mayHaveTemplate && !(wantsJsx && code.includes('<')) && !wantsIntrinsics)
304
+ // A module can be nothing but reactive calls and still need marking, so the skip check
305
+ // has to look for those too when source locations are wanted.
306
+ const wantsSources = options.sourceLocations === true && mayHaveReactiveCall(code);
307
+ // What a mark calls this file. The declaration marks and the usage marks are read back by
308
+ // name, so both passes have to spell it the same way.
309
+ const sourceName = relativeToRoot(id, options.sourceRoot);
310
+ if (!mayHaveTemplate && !(wantsJsx && code.includes('<')) && !wantsIntrinsics && !wantsSources)
261
311
  return null;
262
312
  const ast = parse(code, {
263
313
  sourceType: 'module',
@@ -281,10 +331,18 @@ export function transformTemplates(code, id, options = {}) {
281
331
  const intrinsics = options.intrinsics === false
282
332
  ? { edits: [], diagnostics: [], imports: new Map() }
283
333
  : collectIntrinsicEdits(ast.program);
334
+ // Where each reactive primitive was created, for the devtools graph. Off unless asked
335
+ // for: it is development tooling, and production should carry none of it.
336
+ // `wantsSources` only decides whether a module with nothing else in it is worth parsing.
337
+ // Past that point the ast exists, and a component declaration is worth marking too.
338
+ const sources = options.sourceLocations === true
339
+ ? collectSourceEdits(ast.program, sourceName)
340
+ : { edits: [], marked: 0 };
284
341
  // Nothing to emit still returns a result when there's something to say — a shadowed
285
342
  // intrinsic is a diagnostic even though the code comes back untouched.
286
343
  const silent = found.length === 0 &&
287
344
  props.edits.length === 0 &&
345
+ sources.edits.length === 0 &&
288
346
  intrinsics.edits.length === 0 &&
289
347
  intrinsics.diagnostics.length === 0 &&
290
348
  props.diagnostics.length === 0;
@@ -302,20 +360,26 @@ export function transformTemplates(code, id, options = {}) {
302
360
  declared: declaredNames(ast.program),
303
361
  };
304
362
  const hoisted = new Map();
305
- const edits = [...props.edits, ...intrinsics.edits];
363
+ const edits = [...props.edits, ...intrinsics.edits, ...sources.edits];
306
364
  for (const node of found) {
307
365
  // A root inside another root's hole is emitted without partial templates,
308
366
  // matching what the plugin does for nested emits. Marker layout has to agree
309
367
  // between server and client, so this is not the place to change it.
310
368
  const nested = found.some((o) => o !== node && o.start <= node.start && o.end >= node.end && o.end - o.start > node.end - node.start);
311
369
  if (isJsx(node)) {
312
- edits.push({ start: node.start, end: node.end, code: compileJsx(code, node, edits, nested, used, needs, hoisted, options) });
370
+ edits.push({ start: node.start, end: node.end, code: compileJsx(code, node, edits, nested, used, needs, hoisted, options, sourceName) });
313
371
  continue;
314
372
  }
315
- const holes = node.quasi.expressions.map((e) => bindHole(code, e, edits));
373
+ const holes = node.quasi.expressions.map((e) => bindHole(code, e, edits, options.sourceLocations === true));
316
374
  const result = compilePieces(toPieces(node), holes, {
317
375
  ...options,
318
376
  hoistTemplates: true,
377
+ // A tag inside a template gets the same mark a JSX tag does. Without one, the nodes it
378
+ // makes are the only ones in the module carrying no mark, and they take whichever was
379
+ // left behind by the last declaration that did.
380
+ ...(options.sourceLocations === true
381
+ ? { sourceFile: sourceName, positionAt: positionsIn(code) }
382
+ : {}),
319
383
  // Same defaults as the plugin, so moving a build over is not a rendering change.
320
384
  templateClone: options.templateClone ?? true,
321
385
  partialTemplates: nested ? false : options.partialTemplates ?? true,
@@ -417,10 +481,11 @@ export function transformTemplates(code, id, options = {}) {
417
481
  * with anything already compiled inside them folded in, so nested JSX and nested
418
482
  * `` html`` `` both come along for free.
419
483
  */
420
- function compileJsx(code, node, edits, nested, used, needs, hoisted, options) {
484
+ function compileJsx(code, node, edits, nested, used, needs, hoisted, options, sourceFile) {
421
485
  const ir = buildJsxIR(node, {
422
486
  code: (n) => slice(code, n.start, n.end, edits),
423
487
  used,
488
+ ...(options.sourceLocations === true && sourceFile ? { sourceFile } : {}),
424
489
  });
425
490
  analyzeStatic(ir);
426
491
  const report = resolveComponentSources(ir, {
@@ -1,16 +1,16 @@
1
- import{parse as Cn}from"@babel/parser";var St=44,kt=59,Le="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",De=new Uint8Array(64),Et=new Uint8Array(128);for(let n=0;n<Le.length;n++){let e=Le.charCodeAt(n);De[n]=e,Et[e]=n}function j(n,e,t){let r=e-t;r=r<0?-r<<1|1:r<<1;do{let i=r&31;r>>>=5,r>0&&(i|=32),n.write(De[i])}while(r>0);return e}var Pe=1024*16,Me=typeof TextDecoder<"u"?new TextDecoder:typeof Buffer<"u"?{decode(n){return Buffer.from(n.buffer,n.byteOffset,n.byteLength).toString()}}:{decode(n){let e="";for(let t=0;t<n.length;t++)e+=String.fromCharCode(n[t]);return e}},Ct=class{constructor(){this.pos=0,this.out="",this.buffer=new Uint8Array(Pe)}write(n){let{buffer:e}=this;e[this.pos++]=n,this.pos===Pe&&(this.out+=Me.decode(e),this.pos=0)}flush(){let{buffer:n,out:e,pos:t}=this;return t>0?e+Me.decode(n.subarray(0,t)):e}};function Ae(n){let e=new Ct,t=0,r=0,i=0,s=0;for(let o=0;o<n.length;o++){let a=n[o];if(o>0&&e.write(kt),a.length===0)continue;let l=0;for(let c=0;c<a.length;c++){let u=a[c];c>0&&e.write(St),l=j(e,u[0],l),u.length!==1&&(t=j(e,u[1],t),r=j(e,u[2],r),i=j(e,u[3],i),u.length!==4&&(s=j(e,u[4],s)))}}return e.flush()}var Z=class n{constructor(e){this.bits=e instanceof n?e.bits.slice():[]}add(e){this.bits[e>>5]|=1<<(e&31)}has(e){return!!(this.bits[e>>5]&1<<(e&31))}},Q=class n{constructor(e,t,r){this.start=e,this.end=t,this.original=r,this.intro="",this.outro="",this.content=r,this.storeName=!1,this.edited=!1,this.previous=null,this.next=null}appendLeft(e){this.outro+=e}appendRight(e){this.intro=this.intro+e}clone(){let e=new n(this.start,this.end,this.original);return e.intro=this.intro,e.outro=this.outro,e.content=this.content,e.storeName=this.storeName,e.edited=this.edited,e}contains(e){return this.start<e&&e<this.end}eachNext(e){let t=this;for(;t;)e(t),t=t.next}eachPrevious(e){let t=this;for(;t;)e(t),t=t.previous}edit(e,t,r){return this.content=e,r||(this.intro="",this.outro=""),this.storeName=t,this.edited=!0,this}prependLeft(e){this.outro=e+this.outro}prependRight(e){this.intro=e+this.intro}reset(){this.intro="",this.outro="",this.edited&&(this.content=this.original,this.storeName=!1,this.edited=!1)}split(e){let t=e-this.start,r=this.original.slice(0,t),i=this.original.slice(t);this.original=r;let s=new n(e,this.end,i);return s.outro=this.outro,this.outro="",this.end=e,this.edited?(s.edit("",!1),this.content=""):this.content=r,s.next=this.next,s.next&&(s.next.previous=s),s.previous=this,this.next=s,s}toString(){return this.intro+this.content+this.outro}trimEnd(e){if(this.outro=this.outro.replace(e,""),this.outro.length)return!0;let t=this.content.replace(e,"");if(t.length)return t!==this.content&&(this.split(this.start+t.length).edit("",void 0,!0),this.edited&&this.edit(t,this.storeName,!0)),!0;if(this.edit("",void 0,!0),this.intro=this.intro.replace(e,""),this.intro.length)return!0}trimStart(e){if(this.intro=this.intro.replace(e,""),this.intro.length)return!0;let t=this.content.replace(e,"");if(t.length){if(t!==this.content){let r=this.split(this.end-t.length);this.edited&&r.edit(t,this.storeName,!0),this.edit("",void 0,!0)}return!0}else if(this.edit("",void 0,!0),this.outro=this.outro.replace(e,""),this.outro.length)return!0}};function It(){return typeof globalThis<"u"&&typeof globalThis.btoa=="function"?n=>globalThis.btoa(unescape(encodeURIComponent(n))):typeof Buffer=="function"?n=>Buffer.from(n,"utf-8").toString("base64"):()=>{throw new Error("Unsupported environment: `window.btoa` or `Buffer` should be supported.")}}var $t=It(),fe=class{constructor(e){this.version=3,this.file=e.file,this.sources=e.sources,this.sourcesContent=e.sourcesContent,this.names=e.names,this.mappings=Ae(e.mappings),typeof e.x_google_ignoreList<"u"&&(this.x_google_ignoreList=e.x_google_ignoreList),typeof e.debugId<"u"&&(this.debugId=e.debugId)}toString(){return JSON.stringify(this)}toUrl(){return"data:application/json;charset=utf-8;base64,"+$t(this.toString())}};function Tt(n){let e=n.split(`
2
- `),t=e.filter(s=>/^\t+/.test(s)),r=e.filter(s=>/^ {2,}/.test(s));if(t.length===0&&r.length===0)return null;if(t.length>=r.length)return" ";let i=r.reduce((s,o)=>{let a=/^ +/.exec(o)[0].length;return Math.min(a,s)},1/0);return new Array(i+1).join(" ")}function Ot(n,e){let t=n.split(/[/\\]/),r=e.split(/[/\\]/);for(t.pop();t[0]===r[0];)t.shift(),r.shift();if(t.length){let i=t.length;for(;i--;)t[i]=".."}return t.concat(r).join("/")}var Lt=Object.prototype.toString;function Pt(n){return Lt.call(n)==="[object Object]"}function je(n){let e=n.split(`
3
- `),t=[];for(let r=0,i=0;r<e.length;r++)t.push(i),i+=e[r].length+1;return function(i){let s=0,o=t.length;for(;s<o;){let c=s+o>>1;i<t[c]?o=c:s=c+1}let a=s-1,l=i-t[a];return{line:a,column:l}}}var Mt=/\w/,he=class{constructor(e){this.hires=e,this.generatedCodeLine=0,this.generatedCodeColumn=0,this.raw=[],this.rawSegments=this.raw[this.generatedCodeLine]=[],this.pending=null}addEdit(e,t,r,i){if(t.length){let s=t.length-1,o=t.indexOf(`
1
+ import{parse as Kn}from"@babel/parser";var _t=44,Jt=59,He="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Xe=new Uint8Array(64),Ft=new Uint8Array(128);for(let n=0;n<He.length;n++){let e=He.charCodeAt(n);Xe[n]=e,Ft[e]=n}function U(n,e,t){let r=e-t;r=r<0?-r<<1|1:r<<1;do{let i=r&31;r>>>=5,r>0&&(i|=32),n.write(Xe[i])}while(r>0);return e}var Ue=1024*16,qe=typeof TextDecoder<"u"?new TextDecoder:typeof Buffer<"u"?{decode(n){return Buffer.from(n.buffer,n.byteOffset,n.byteLength).toString()}}:{decode(n){let e="";for(let t=0;t<n.length;t++)e+=String.fromCharCode(n[t]);return e}},Bt=class{constructor(){this.pos=0,this.out="",this.buffer=new Uint8Array(Ue)}write(n){let{buffer:e}=this;e[this.pos++]=n,this.pos===Ue&&(this.out+=qe.decode(e),this.pos=0)}flush(){let{buffer:n,out:e,pos:t}=this;return t>0?e+qe.decode(n.subarray(0,t)):e}};function Ve(n){let e=new Bt,t=0,r=0,i=0,s=0;for(let o=0;o<n.length;o++){let a=n[o];if(o>0&&e.write(Jt),a.length===0)continue;let l=0;for(let c=0;c<a.length;c++){let u=a[c];c>0&&e.write(_t),l=U(e,u[0],l),u.length!==1&&(t=U(e,u[1],t),r=U(e,u[2],r),i=U(e,u[3],i),u.length!==4&&(s=U(e,u[4],s)))}}return e.flush()}var se=class n{constructor(e){this.bits=e instanceof n?e.bits.slice():[]}add(e){this.bits[e>>5]|=1<<(e&31)}has(e){return!!(this.bits[e>>5]&1<<(e&31))}},oe=class n{constructor(e,t,r){this.start=e,this.end=t,this.original=r,this.intro="",this.outro="",this.content=r,this.storeName=!1,this.edited=!1,this.previous=null,this.next=null}appendLeft(e){this.outro+=e}appendRight(e){this.intro=this.intro+e}clone(){let e=new n(this.start,this.end,this.original);return e.intro=this.intro,e.outro=this.outro,e.content=this.content,e.storeName=this.storeName,e.edited=this.edited,e}contains(e){return this.start<e&&e<this.end}eachNext(e){let t=this;for(;t;)e(t),t=t.next}eachPrevious(e){let t=this;for(;t;)e(t),t=t.previous}edit(e,t,r){return this.content=e,r||(this.intro="",this.outro=""),this.storeName=t,this.edited=!0,this}prependLeft(e){this.outro=e+this.outro}prependRight(e){this.intro=e+this.intro}reset(){this.intro="",this.outro="",this.edited&&(this.content=this.original,this.storeName=!1,this.edited=!1)}split(e){let t=e-this.start,r=this.original.slice(0,t),i=this.original.slice(t);this.original=r;let s=new n(e,this.end,i);return s.outro=this.outro,this.outro="",this.end=e,this.edited?(s.edit("",!1),this.content=""):this.content=r,s.next=this.next,s.next&&(s.next.previous=s),s.previous=this,this.next=s,s}toString(){return this.intro+this.content+this.outro}trimEnd(e){if(this.outro=this.outro.replace(e,""),this.outro.length)return!0;let t=this.content.replace(e,"");if(t.length)return t!==this.content&&(this.split(this.start+t.length).edit("",void 0,!0),this.edited&&this.edit(t,this.storeName,!0)),!0;if(this.edit("",void 0,!0),this.intro=this.intro.replace(e,""),this.intro.length)return!0}trimStart(e){if(this.intro=this.intro.replace(e,""),this.intro.length)return!0;let t=this.content.replace(e,"");if(t.length){if(t!==this.content){let r=this.split(this.end-t.length);this.edited&&r.edit(t,this.storeName,!0),this.edit("",void 0,!0)}return!0}else if(this.edit("",void 0,!0),this.outro=this.outro.replace(e,""),this.outro.length)return!0}};function Ht(){return typeof globalThis<"u"&&typeof globalThis.btoa=="function"?n=>globalThis.btoa(unescape(encodeURIComponent(n))):typeof Buffer=="function"?n=>Buffer.from(n,"utf-8").toString("base64"):()=>{throw new Error("Unsupported environment: `window.btoa` or `Buffer` should be supported.")}}var Ut=Ht(),Se=class{constructor(e){this.version=3,this.file=e.file,this.sources=e.sources,this.sourcesContent=e.sourcesContent,this.names=e.names,this.mappings=Ve(e.mappings),typeof e.x_google_ignoreList<"u"&&(this.x_google_ignoreList=e.x_google_ignoreList),typeof e.debugId<"u"&&(this.debugId=e.debugId)}toString(){return JSON.stringify(this)}toUrl(){return"data:application/json;charset=utf-8;base64,"+Ut(this.toString())}};function qt(n){let e=n.split(`
2
+ `),t=e.filter(s=>/^\t+/.test(s)),r=e.filter(s=>/^ {2,}/.test(s));if(t.length===0&&r.length===0)return null;if(t.length>=r.length)return" ";let i=r.reduce((s,o)=>{let a=/^ +/.exec(o)[0].length;return Math.min(a,s)},1/0);return new Array(i+1).join(" ")}function Xt(n,e){let t=n.split(/[/\\]/),r=e.split(/[/\\]/);for(t.pop();t[0]===r[0];)t.shift(),r.shift();if(t.length){let i=t.length;for(;i--;)t[i]=".."}return t.concat(r).join("/")}var Vt=Object.prototype.toString;function Wt(n){return Vt.call(n)==="[object Object]"}function We(n){let e=n.split(`
3
+ `),t=[];for(let r=0,i=0;r<e.length;r++)t.push(i),i+=e[r].length+1;return function(i){let s=0,o=t.length;for(;s<o;){let c=s+o>>1;i<t[c]?o=c:s=c+1}let a=s-1,l=i-t[a];return{line:a,column:l}}}var zt=/\w/,we=class{constructor(e){this.hires=e,this.generatedCodeLine=0,this.generatedCodeColumn=0,this.raw=[],this.rawSegments=this.raw[this.generatedCodeLine]=[],this.pending=null}addEdit(e,t,r,i){if(t.length){let s=t.length-1,o=t.indexOf(`
4
4
  `,0),a=-1;for(;o>=0&&s>o;){let c=[this.generatedCodeColumn,e,r.line,r.column];i>=0&&c.push(i),this.rawSegments.push(c),this.generatedCodeLine+=1,this.raw[this.generatedCodeLine]=this.rawSegments=[],this.generatedCodeColumn=0,a=o,o=t.indexOf(`
5
5
  `,o+1)}let l=[this.generatedCodeColumn,e,r.line,r.column];i>=0&&l.push(i),this.rawSegments.push(l),this.advance(t.slice(a+1))}else this.pending&&(this.rawSegments.push(this.pending),this.advance(t));this.pending=null}addUneditedChunk(e,t,r,i,s){let o=t.start,a=!0,l=!1;for(;o<t.end;){if(r[o]===`
6
- `)i.line+=1,i.column=0,this.generatedCodeLine+=1,this.raw[this.generatedCodeLine]=this.rawSegments=[],this.generatedCodeColumn=0,a=!0,l=!1;else{if(this.hires||a||s.has(o)){let c=[this.generatedCodeColumn,e,i.line,i.column];this.hires==="boundary"?Mt.test(r[o])?l||(this.rawSegments.push(c),l=!0):(this.rawSegments.push(c),l=!1):this.rawSegments.push(c)}i.column+=1,this.generatedCodeColumn+=1,a=!1}o+=1}this.pending=null}advance(e){if(!e)return;let t=e.split(`
7
- `);if(t.length>1){for(let r=0;r<t.length-1;r++)this.generatedCodeLine++,this.raw[this.generatedCodeLine]=this.rawSegments=[];this.generatedCodeColumn=0}this.generatedCodeColumn+=t[t.length-1].length}},_=`
8
- `,O={insertLeft:!1,insertRight:!1,storeName:!1},ee=class n{constructor(e,t={}){let r=new Q(0,e.length,e);Object.defineProperties(this,{original:{writable:!0,value:e},outro:{writable:!0,value:""},intro:{writable:!0,value:""},firstChunk:{writable:!0,value:r},lastChunk:{writable:!0,value:r},lastSearchedChunk:{writable:!0,value:r},byStart:{writable:!0,value:{}},byEnd:{writable:!0,value:{}},filename:{writable:!0,value:t.filename},indentExclusionRanges:{writable:!0,value:t.indentExclusionRanges},sourcemapLocations:{writable:!0,value:new Z},storedNames:{writable:!0,value:{}},indentStr:{writable:!0,value:void 0},ignoreList:{writable:!0,value:t.ignoreList},offset:{writable:!0,value:t.offset||0}}),this.byStart[0]=r,this.byEnd[e.length]=r}addSourcemapLocation(e){this.sourcemapLocations.add(e)}append(e){if(typeof e!="string")throw new TypeError("outro content must be a string");return this.outro+=e,this}appendLeft(e,t){if(e=e+this.offset,typeof t!="string")throw new TypeError("inserted content must be a string");this._split(e);let r=this.byEnd[e];return r?r.appendLeft(t):this.intro+=t,this}appendRight(e,t){if(e=e+this.offset,typeof t!="string")throw new TypeError("inserted content must be a string");this._split(e);let r=this.byStart[e];return r?r.appendRight(t):this.outro+=t,this}clone(){let e=new n(this.original,{filename:this.filename,offset:this.offset}),t=this.firstChunk,r=e.firstChunk=e.lastSearchedChunk=t.clone();for(;t;){e.byStart[r.start]=r,e.byEnd[r.end]=r;let i=t.next,s=i&&i.clone();s&&(r.next=s,s.previous=r,r=s),t=i}return e.lastChunk=r,this.indentExclusionRanges&&(e.indentExclusionRanges=this.indentExclusionRanges.slice()),e.sourcemapLocations=new Z(this.sourcemapLocations),e.intro=this.intro,e.outro=this.outro,e}generateDecodedMap(e){e=e||{};let t=0,r=Object.keys(this.storedNames),i=new he(e.hires),s=je(this.original);return this.intro&&i.advance(this.intro),this.firstChunk.eachNext(o=>{let a=s(o.start);o.intro.length&&i.advance(o.intro),o.edited?i.addEdit(t,o.content,a,o.storeName?r.indexOf(o.original):-1):i.addUneditedChunk(t,o,this.original,a,this.sourcemapLocations),o.outro.length&&i.advance(o.outro)}),this.outro&&i.advance(this.outro),{file:e.file?e.file.split(/[/\\]/).pop():void 0,sources:[e.source?Ot(e.file||"",e.source):e.file||""],sourcesContent:e.includeContent?[this.original]:void 0,names:r,mappings:i.raw,x_google_ignoreList:this.ignoreList?[t]:void 0}}generateMap(e){return new fe(this.generateDecodedMap(e))}_ensureindentStr(){this.indentStr===void 0&&(this.indentStr=Tt(this.original))}_getRawIndentString(){return this._ensureindentStr(),this.indentStr}getIndentString(){return this._ensureindentStr(),this.indentStr===null?" ":this.indentStr}indent(e,t){let r=/^[^\r\n]/gm;if(Pt(e)&&(t=e,e=void 0),e===void 0&&(this._ensureindentStr(),e=this.indentStr||" "),e==="")return this;t=t||{};let i={};t.exclude&&(typeof t.exclude[0]=="number"?[t.exclude]:t.exclude).forEach(u=>{for(let d=u[0];d<u[1];d+=1)i[d]=!0});let s=t.indentStart!==!1,o=c=>s?`${e}${c}`:(s=!0,c);this.intro=this.intro.replace(r,o);let a=0,l=this.firstChunk;for(;l;){let c=l.end;if(l.edited)i[a]||(l.content=l.content.replace(r,o),l.content.length&&(s=l.content[l.content.length-1]===`
6
+ `)i.line+=1,i.column=0,this.generatedCodeLine+=1,this.raw[this.generatedCodeLine]=this.rawSegments=[],this.generatedCodeColumn=0,a=!0,l=!1;else{if(this.hires||a||s.has(o)){let c=[this.generatedCodeColumn,e,i.line,i.column];this.hires==="boundary"?zt.test(r[o])?l||(this.rawSegments.push(c),l=!0):(this.rawSegments.push(c),l=!1):this.rawSegments.push(c)}i.column+=1,this.generatedCodeColumn+=1,a=!1}o+=1}this.pending=null}advance(e){if(!e)return;let t=e.split(`
7
+ `);if(t.length>1){for(let r=0;r<t.length-1;r++)this.generatedCodeLine++,this.raw[this.generatedCodeLine]=this.rawSegments=[];this.generatedCodeColumn=0}this.generatedCodeColumn+=t[t.length-1].length}},q=`
8
+ `,j={insertLeft:!1,insertRight:!1,storeName:!1},ae=class n{constructor(e,t={}){let r=new oe(0,e.length,e);Object.defineProperties(this,{original:{writable:!0,value:e},outro:{writable:!0,value:""},intro:{writable:!0,value:""},firstChunk:{writable:!0,value:r},lastChunk:{writable:!0,value:r},lastSearchedChunk:{writable:!0,value:r},byStart:{writable:!0,value:{}},byEnd:{writable:!0,value:{}},filename:{writable:!0,value:t.filename},indentExclusionRanges:{writable:!0,value:t.indentExclusionRanges},sourcemapLocations:{writable:!0,value:new se},storedNames:{writable:!0,value:{}},indentStr:{writable:!0,value:void 0},ignoreList:{writable:!0,value:t.ignoreList},offset:{writable:!0,value:t.offset||0}}),this.byStart[0]=r,this.byEnd[e.length]=r}addSourcemapLocation(e){this.sourcemapLocations.add(e)}append(e){if(typeof e!="string")throw new TypeError("outro content must be a string");return this.outro+=e,this}appendLeft(e,t){if(e=e+this.offset,typeof t!="string")throw new TypeError("inserted content must be a string");this._split(e);let r=this.byEnd[e];return r?r.appendLeft(t):this.intro+=t,this}appendRight(e,t){if(e=e+this.offset,typeof t!="string")throw new TypeError("inserted content must be a string");this._split(e);let r=this.byStart[e];return r?r.appendRight(t):this.outro+=t,this}clone(){let e=new n(this.original,{filename:this.filename,offset:this.offset}),t=this.firstChunk,r=e.firstChunk=e.lastSearchedChunk=t.clone();for(;t;){e.byStart[r.start]=r,e.byEnd[r.end]=r;let i=t.next,s=i&&i.clone();s&&(r.next=s,s.previous=r,r=s),t=i}return e.lastChunk=r,this.indentExclusionRanges&&(e.indentExclusionRanges=this.indentExclusionRanges.slice()),e.sourcemapLocations=new se(this.sourcemapLocations),e.intro=this.intro,e.outro=this.outro,e}generateDecodedMap(e){e=e||{};let t=0,r=Object.keys(this.storedNames),i=new we(e.hires),s=We(this.original);return this.intro&&i.advance(this.intro),this.firstChunk.eachNext(o=>{let a=s(o.start);o.intro.length&&i.advance(o.intro),o.edited?i.addEdit(t,o.content,a,o.storeName?r.indexOf(o.original):-1):i.addUneditedChunk(t,o,this.original,a,this.sourcemapLocations),o.outro.length&&i.advance(o.outro)}),this.outro&&i.advance(this.outro),{file:e.file?e.file.split(/[/\\]/).pop():void 0,sources:[e.source?Xt(e.file||"",e.source):e.file||""],sourcesContent:e.includeContent?[this.original]:void 0,names:r,mappings:i.raw,x_google_ignoreList:this.ignoreList?[t]:void 0}}generateMap(e){return new Se(this.generateDecodedMap(e))}_ensureindentStr(){this.indentStr===void 0&&(this.indentStr=qt(this.original))}_getRawIndentString(){return this._ensureindentStr(),this.indentStr}getIndentString(){return this._ensureindentStr(),this.indentStr===null?" ":this.indentStr}indent(e,t){let r=/^[^\r\n]/gm;if(Wt(e)&&(t=e,e=void 0),e===void 0&&(this._ensureindentStr(),e=this.indentStr||" "),e==="")return this;t=t||{};let i={};t.exclude&&(typeof t.exclude[0]=="number"?[t.exclude]:t.exclude).forEach(u=>{for(let f=u[0];f<u[1];f+=1)i[f]=!0});let s=t.indentStart!==!1,o=c=>s?`${e}${c}`:(s=!0,c);this.intro=this.intro.replace(r,o);let a=0,l=this.firstChunk;for(;l;){let c=l.end;if(l.edited)i[a]||(l.content=l.content.replace(r,o),l.content.length&&(s=l.content[l.content.length-1]===`
9
9
  `));else for(a=l.start;a<c;){if(!i[a]){let u=this.original[a];u===`
10
- `?s=!0:u!=="\r"&&s&&(s=!1,a===l.start||(this._splitChunk(l,a),l=l.next),l.prependRight(e))}a+=1}a=l.end,l=l.next}return this.outro=this.outro.replace(r,o),this}insert(){throw new Error("magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)")}insertLeft(e,t){return O.insertLeft||(console.warn("magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead"),O.insertLeft=!0),this.appendLeft(e,t)}insertRight(e,t){return O.insertRight||(console.warn("magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead"),O.insertRight=!0),this.prependRight(e,t)}move(e,t,r){if(e=e+this.offset,t=t+this.offset,r=r+this.offset,r>=e&&r<=t)throw new Error("Cannot move a selection inside itself");this._split(e),this._split(t),this._split(r);let i=this.byStart[e],s=this.byEnd[t],o=i.previous,a=s.next,l=this.byStart[r];if(!l&&s===this.lastChunk)return this;let c=l?l.previous:this.lastChunk;return o&&(o.next=a),a&&(a.previous=o),c&&(c.next=i),l&&(l.previous=s),i.previous||(this.firstChunk=s.next),s.next||(this.lastChunk=i.previous,this.lastChunk.next=null),i.previous=c,s.next=l||null,c||(this.firstChunk=i),l||(this.lastChunk=s),this}overwrite(e,t,r,i){return i=i||{},this.update(e,t,r,{...i,overwrite:!i.contentOnly})}update(e,t,r,i){if(e=e+this.offset,t=t+this.offset,typeof r!="string")throw new TypeError("replacement content must be a string");if(this.original.length!==0){for(;e<0;)e+=this.original.length;for(;t<0;)t+=this.original.length}if(t>this.original.length)throw new Error("end is out of bounds");if(e===t)throw new Error("Cannot overwrite a zero-length range – use appendLeft or prependRight instead");this._split(e),this._split(t),i===!0&&(O.storeName||(console.warn("The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string"),O.storeName=!0),i={storeName:!0});let s=i!==void 0?i.storeName:!1,o=i!==void 0?i.overwrite:!1;if(s){let c=this.original.slice(e,t);Object.defineProperty(this.storedNames,c,{writable:!0,value:!0,enumerable:!0})}let a=this.byStart[e],l=this.byEnd[t];if(a){let c=a;for(;c!==l;){if(c.next!==this.byStart[c.end])throw new Error("Cannot overwrite across a split point");c=c.next,c.edit("",!1)}a.edit(r,s,!o)}else{let c=new Q(e,t,"").edit(r,s);l.next=c,c.previous=l}return this}prepend(e){if(typeof e!="string")throw new TypeError("outro content must be a string");return this.intro=e+this.intro,this}prependLeft(e,t){if(e=e+this.offset,typeof t!="string")throw new TypeError("inserted content must be a string");this._split(e);let r=this.byEnd[e];return r?r.prependLeft(t):this.intro=t+this.intro,this}prependRight(e,t){if(e=e+this.offset,typeof t!="string")throw new TypeError("inserted content must be a string");this._split(e);let r=this.byStart[e];return r?r.prependRight(t):this.outro=t+this.outro,this}remove(e,t){if(e=e+this.offset,t=t+this.offset,this.original.length!==0){for(;e<0;)e+=this.original.length;for(;t<0;)t+=this.original.length}if(e===t)return this;if(e<0||t>this.original.length)throw new Error("Character is out of bounds");if(e>t)throw new Error("end must be greater than start");this._split(e),this._split(t);let r=this.byStart[e];for(;r;)r.intro="",r.outro="",r.edit(""),r=t>r.end?this.byStart[r.end]:null;return this}reset(e,t){if(e=e+this.offset,t=t+this.offset,this.original.length!==0){for(;e<0;)e+=this.original.length;for(;t<0;)t+=this.original.length}if(e===t)return this;if(e<0||t>this.original.length)throw new Error("Character is out of bounds");if(e>t)throw new Error("end must be greater than start");this._split(e),this._split(t);let r=this.byStart[e];for(;r;)r.reset(),r=t>r.end?this.byStart[r.end]:null;return this}lastChar(){if(this.outro.length)return this.outro[this.outro.length-1];let e=this.lastChunk;do{if(e.outro.length)return e.outro[e.outro.length-1];if(e.content.length)return e.content[e.content.length-1];if(e.intro.length)return e.intro[e.intro.length-1]}while(e=e.previous);return this.intro.length?this.intro[this.intro.length-1]:""}lastLine(){let e=this.outro.lastIndexOf(_);if(e!==-1)return this.outro.substr(e+1);let t=this.outro,r=this.lastChunk;do{if(r.outro.length>0){if(e=r.outro.lastIndexOf(_),e!==-1)return r.outro.substr(e+1)+t;t=r.outro+t}if(r.content.length>0){if(e=r.content.lastIndexOf(_),e!==-1)return r.content.substr(e+1)+t;t=r.content+t}if(r.intro.length>0){if(e=r.intro.lastIndexOf(_),e!==-1)return r.intro.substr(e+1)+t;t=r.intro+t}}while(r=r.previous);return e=this.intro.lastIndexOf(_),e!==-1?this.intro.substr(e+1)+t:this.intro+t}slice(e=0,t=this.original.length-this.offset){if(e=e+this.offset,t=t+this.offset,this.original.length!==0){for(;e<0;)e+=this.original.length;for(;t<0;)t+=this.original.length}let r="",i=this.firstChunk;for(;i&&(i.start>e||i.end<=e);){if(i.start<t&&i.end>=t)return r;i=i.next}if(i&&i.edited&&i.start!==e)throw new Error(`Cannot use replaced character ${e} as slice start anchor.`);let s=i;for(;i;){i.intro&&(s!==i||i.start===e)&&(r+=i.intro);let o=i.start<t&&i.end>=t;if(o&&i.edited&&i.end!==t)throw new Error(`Cannot use replaced character ${t} as slice end anchor.`);let a=s===i?e-i.start:0,l=o?i.content.length+t-i.end:i.content.length;if(r+=i.content.slice(a,l),i.outro&&(!o||i.end===t)&&(r+=i.outro),o)break;i=i.next}return r}snip(e,t){let r=this.clone();return r.remove(0,e),r.remove(t,r.original.length),r}_split(e){if(this.byStart[e]||this.byEnd[e])return;let t=this.lastSearchedChunk,r=t,i=e>t.end;for(;t;){if(t.contains(e))return this._splitChunk(t,e);if(t=i?this.byStart[t.end]:this.byEnd[t.start],t===r)return;r=t}}_splitChunk(e,t){if(e.edited&&e.content.length){let i=je(this.original)(t);throw new Error(`Cannot split a chunk that has already been edited (${i.line}:${i.column} – "${e.original}")`)}let r=e.split(t);return this.byEnd[t]=e,this.byStart[t]=r,this.byEnd[r.end]=r,e===this.lastChunk&&(this.lastChunk=r),this.lastSearchedChunk=e,!0}toString(){let e=this.intro,t=this.firstChunk;for(;t;)e+=t.toString(),t=t.next;return e+this.outro}isEmpty(){let e=this.firstChunk;do if(e.intro.length&&e.intro.trim()||e.content.length&&e.content.trim()||e.outro.length&&e.outro.trim())return!1;while(e=e.next);return!0}length(){let e=this.firstChunk,t=0;do t+=e.intro.length+e.content.length+e.outro.length;while(e=e.next);return t}trimLines(){return this.trim("[\\r\\n]")}trim(e){return this.trimStart(e).trimEnd(e)}trimEndAborted(e){let t=new RegExp((e||"\\s")+"+$");if(this.outro=this.outro.replace(t,""),this.outro.length)return!0;let r=this.lastChunk;do{let i=r.end,s=r.trimEnd(t);if(r.end!==i&&(this.lastChunk===r&&(this.lastChunk=r.next),this.byEnd[r.end]=r,this.byStart[r.next.start]=r.next,this.byEnd[r.next.end]=r.next),s)return!0;r=r.previous}while(r);return!1}trimEnd(e){return this.trimEndAborted(e),this}trimStartAborted(e){let t=new RegExp("^"+(e||"\\s")+"+");if(this.intro=this.intro.replace(t,""),this.intro.length)return!0;let r=this.firstChunk;do{let i=r.end,s=r.trimStart(t);if(r.end!==i&&(r===this.lastChunk&&(this.lastChunk=r.next),this.byEnd[r.end]=r,this.byStart[r.next.start]=r.next,this.byEnd[r.next.end]=r.next),s)return!0;r=r.next}while(r);return!1}trimStart(e){return this.trimStartAborted(e),this}hasChanged(){return this.original!==this.toString()}_replaceRegexp(e,t){function r(s,o){return typeof t=="string"?t.replace(/\$(\$|&|\d+)/g,(a,l)=>l==="$"?"$":l==="&"?s[0]:+l<s.length?s[+l]:`$${l}`):t(...s,s.index,o,s.groups)}function i(s,o){let a,l=[];for(;a=s.exec(o);)l.push(a);return l}if(e.global)i(e,this.original).forEach(o=>{if(o.index!=null){let a=r(o,this.original);a!==o[0]&&this.overwrite(o.index,o.index+o[0].length,a)}});else{let s=this.original.match(e);if(s&&s.index!=null){let o=r(s,this.original);o!==s[0]&&this.overwrite(s.index,s.index+s[0].length,o)}}return this}_replaceString(e,t){let{original:r}=this,i=r.indexOf(e);return i!==-1&&(typeof t=="function"&&(t=t(e,i,r)),e!==t&&this.overwrite(i,i+e.length,t)),this}replace(e,t){return typeof e=="string"?this._replaceString(e,t):this._replaceRegexp(e,t)}_replaceAllString(e,t){let{original:r}=this,i=e.length;for(let s=r.indexOf(e);s!==-1;s=r.indexOf(e,s+i)){let o=r.slice(s,s+i),a=t;typeof t=="function"&&(a=t(o,s,r)),o!==a&&this.overwrite(s,s+i,a)}return this}replaceAll(e,t){if(typeof e=="string")return this._replaceAllString(e,t);if(!e.global)throw new TypeError("MagicString.prototype.replaceAll called with a non-global RegExp argument");return this._replaceRegexp(e,t)}};function Dt(n){switch(n.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 n.reactive?"reactive-prop":n.expr!==void 0?"expression-prop":void 0;default:return"expression-prop"}}function L(n){let e=[],t=new Map,r=i=>{switch(i.kind){case"text":return!0;case"expr":return!1;case"component":case"control":for(let s of i.children)r(s);return!1;case"fragment":for(let s of i.children)r(s);return!1;case"element":{let s=!0;for(let a of i.children)r(a)||(s=!1);let o;for(let a of i.props)if(o=Dt(a),o)break;return!o&&!s&&(o=At(i)),i.static=!o,o?t.set(i,o):e.push(i),i.static}default:return!1}};for(let i of Array.isArray(n)?n:[n])r(i);return{staticElements:e,reasons:t}}function At(n){for(let e of n.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 te={kind:"eager"},jt=["pointerdown","focusin","keydown"],_e=new Set(["eager","idle","visible","interaction","media","never"]),E=class extends Error{};function me(n){return n.startsWith("load:")}function ne(n,e){let t=n.slice(5);if(!_e.has(t))throw new E(`Unknown load strategy 'load:${t}'. Expected one of ${[..._e].join(", ")}.`);switch(t){case"eager":return te;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?_t(e):[...jt]};case"media":if(!e)throw new E(`'load:media' needs a query, e.g. load:media="(min-width: 1024px)".`);return{kind:"media",query:e};default:throw new E(`Unhandled load strategy '${t}'.`)}}function _t(n){let e=n.split(/[\s,]+/).map(t=>t.trim()).filter(Boolean);if(e.length===0)throw new E("'load:interaction' was given no event names.");return e}function J(n){return n.kind!=="eager"&&n.kind!=="never"}var B=["Show","For","Index","Switch","Match","Portal","Dynamic","ErrorBoundary"],F=["Suspense","SuspenseList","Await"],P=["Router","Outlet","Redirect","Link"],Wn=[...B,...F,...P],ge=new Set([...B,...F]);function Je(n={}){let{controlFlowModule:e="@fluixi/dom",coreModule:t="@fluixi/core",routerModule:r="@fluixi/core/router"}=n,i={};for(let s of B)i[s]=e;for(let s of F)i[s]=t;for(let s of P)i[s]=r;return i}function re(n,e={}){let{resolver:t,isBound:r,modules:i,strategyFor:s}=e,o=Je(i),a=new Map,l=new Set,c=d=>{let{name:p}=d;if(!p||p.includes(".")||r?.(p))return;let m=u(p);if(!m){l.add(p);return}let h=m.origin==="builtin"&&ge.has(p)?te:s?.(d)??te;d.source={...m,loading:h},a.set(p,d.source)},u=d=>{if(ge.has(d))return{module:o[d],export:d,origin:"builtin"};let p=t?.resolve(d);if(p)return{module:p.module,export:p.export,origin:"rule"};if(P.includes(d))return{module:o[d],export:d,origin:"builtin"}};return ie(n,d=>{d.kind==="component"&&c(d)}),{resolved:a,unresolved:[...l]}}function ie(n,e){let t=Array.isArray(n)?n:[n];for(let r of t){e(r);let i=r.children;i&&ie(i,e)}}function se(n){let e=[];ie(n,s=>{s.kind==="component"&&s.source&&e.push(s)});let t=new Set,r=new Set;for(let s of e){let{module:o,loading:a}=s.source;a.kind==="eager"&&t.add(o),a.kind==="never"&&r.add(o)}let i=new Map;for(let s of e){let o=s.source;J(o.loading)&&t.has(o.module)&&(o.loading={kind:"eager"},i.set(o.module,(i.get(o.module)??0)+1))}return{collapsed:i,conflicted:[...r].filter(s=>t.has(s))}}var Jt=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),Be={className:"class",htmlFor:"for"},Bt=new Set(["innerHTML","outerHTML","innerText","textContent","value","checked","selected","muted","defaultValue","defaultChecked","children","ref"]),Ft=new Set(["script","style","textarea","title"]);function ye(n){return Ft.has(n)}function Fe(n){return Be[n]??n}function H(n){return n.kind!=="attr"||n.expr!==void 0||n.name.includes(":")?!1:!Bt.has(n.name)}function ve(n){if(!n.static||ye(n.tag))return!1;for(let e of n.props)if(!H(e))return!1;for(let e of n.children)if(e.kind!=="text"&&!(e.kind==="element"&&ve(e)))return!1;return!0}function U(n){let e=n.props.map(Ut).filter(Boolean).join(""),t=`<${n.tag}${e}>`;return Jt.has(n.tag)?t:`${t}${n.children.map(Ht).join("")}</${n.tag}>`}function Ht(n){if(n.kind==="text")return Xt(n.value);if(n.kind!=="element")throw new Error(`serializeStatic: unexpected ${n.kind}`);return U(n)}function Ut(n){let e=Be[n.name]??n.name,t=n.literal;return t===!0||t===void 0?` ${e}`:t===!1||t===null?"":` ${e}="${qt(String(t))}"`}function qt(n){return n.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Xt(n){return n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}var zt="<!--fx-->",Vt="<!--fx/-->";function ae(n){return n.kind==="expr"||n.kind==="component"||n.kind==="control"}function Wt(n){return n.kind==="text"||n.kind==="element"&&He(n)}function He(n){return n.svg||ye(n.tag)||!n.props.every(e=>H(e))?!1:n.children.every(e=>Wt(e)||ae(e))}function oe(n){if(ae(n))return!0;let e=n.children;return e?e.some(oe):!1}function Ue(n){for(let e=0;e<n.children.length;e++){let t=n.children[e];if(t.kind==="text"&&(t.value===""||n.children[e+1]?.kind==="text"))return!1}return n.children.every(e=>e.kind!=="element"||Ue(e))}function qe(n){if(!He(n)||!Ue(n)||!n.children.some(oe))return null;let e=[],t=[],r=0,i=o=>{let a=`_n$${r++}`;return e.push({ref:a,expr:o}),a};return s(n,"_el$"),{html:Kt(n),tag:n.tag,steps:e,holes:t};function s(o,a){let l=-1;o.children.forEach((u,d)=>{oe(u)&&(l=d)});let c=null;for(let u=0;u<=l;u++){let d=o.children[u],p=c?`${c}.nextSibling`:`${a}.firstChild`;if(ae(d)){let h=i(p),g=i(`holeEnd(${h})`);t.push({parentRef:a,startRef:h,endRef:g,node:d}),c=g;continue}let m=i(p);d.kind==="element"&&oe(d)&&s(d,m),c=m}}}function Kt(n){return U(Xe(n)).split(ze).join(zt+Vt)}function Xe(n){return{...n,children:n.children.map(e=>ae(e)?{kind:"text",value:ze}:e.kind==="element"?Xe(e):e)}}var ze="\0fx-hole\0";var xe={version:1,module:"@fluixi/dom",symbols:["createNativeElement","insert","spread","setAttribute","delegateEvents","createComponent","createMemo","untrack","Show","For","Index","Switch","Match","Dynamic","ErrorBoundary"]},sr={version:2,module:"@fluixi/dom",symbols:[...xe.symbols,"template","cloneTemplate","walk"]};var Gt={show:"Show",for:"For",index:"Index",switch:"Switch",match:"Match",dynamic:"Dynamic",errorBoundary:"ErrorBoundary",suspense:"Suspense"};function Yt(n){return/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(n)}function We(n){return Yt(n)?n:JSON.stringify(n)}function Zt(n){return n.expr!==void 0?n.reactive?`() => (${n.expr})`:`(${n.expr})`:JSON.stringify(n.literal??!0)}function Qt(n){return n.expr!==void 0?`(${n.expr})`:JSON.stringify(n.literal??!0)}function en(n,e,t){let r=n.filter(a=>a.kind==="spread"),s=n.filter(a=>a.kind!=="spread").map(a=>`${We(a.name)}: ${Zt(a)}`);e!=null&&s.push(`children: ${e}`);let o=`{ ${s.join(", ")} }`;return r.length>0?(t.add("mergeProps"),`mergeProps(${r.map(a=>a.expr).join(", ")}, ${o})`):o}function Ke(n,e,t){return n.length===1?q(n[0],e,t):`[${n.map(r=>q(r,e,t)).join(", ")}]`}function Ve(n,e,t,r,i){r.add("createMemo"),r.add("createComponent");let s=e.filter(c=>c.kind==="spread"),a=e.filter(c=>c.kind!=="spread").map(c=>`get ${We(c.name)}() { return ${Qt(c)}; }`);t.length>0&&a.push(`get children() { return ${Ke(t,r,i)}; }`);let l=`{ ${a.join(", ")} }`;return s.length>0&&(r.add("mergeProps"),l=`mergeProps(${s.map(c=>c.expr).join(", ")}, ${l})`),`createMemo(() => createComponent(${n}, ${l}))`}function tn(n,e){let t=Fe(e.name),r=e.literal;return r===!0||r===void 0?`${n}.setAttribute(${JSON.stringify(t)}, "");`:r===!1||r===null?"":`${n}.setAttribute(${JSON.stringify(t)}, ${JSON.stringify(String(r))});`}var Ge=!1;function q(n,e,t){switch(n.kind){case"text":return JSON.stringify(n.value);case"expr":return n.reactive?`() => (${n.code})`:`(${n.code})`;case"fragment":return n.children.length===0?"null":Ke(n.children,e,t);case"component":return Ve(n.name,n.props,n.children,e,t);case"control":{let r=Gt[n.control]??n.control;return e.add(r),Ve(r,n.props,n.children,e,t)}case"element":{if(t&&n.static&&!n.svg&&ve(n)){e.add("templateNode");let a=`_tmpl$${t.length}`;return t.push({id:a,html:U(n),tag:n.tag,svg:!1}),`templateNode(${a}, ${JSON.stringify(n.tag)})`}if(t&&Ge){let a=qe(n);if(a){e.add("templateNode"),e.add("insert"),e.add("holeEnd"),e.add("holeContent"),e.add("holeScope");let l=`_tmpl$${t.length}`;t.push({id:l,html:a.html,tag:a.tag,svg:!1});let c=[`const _el$ = templateNode(${l}, ${JSON.stringify(a.tag)}, true);`];for(let u of a.steps)c.push(`const ${u.ref} = ${u.expr};`);for(let u of a.holes)c.push(`insert(${u.parentRef}, holeScope(${u.startRef}, () => (${q(u.node,e,t)})), ${u.endRef}, holeContent(${u.startRef}, ${u.endRef}));`);return c.push("return _el$;"),`(() => { ${c.join(" ")} })()`}}e.add("createNativeElement");let r=JSON.stringify(n.tag),i="_el$",s=[],o=n.svg?`${r}, true`:r;if(s.push(`const ${i} = createNativeElement(${o});`),n.props.length>0)if(!n.svg&&n.props.every(H))for(let a of n.props)s.push(tn(i,a));else{e.add("spread");let a=n.svg?", isSVG: true":"";s.push(`spread({ element: ${i}, props: ${en(n.props,null,e)}${a} });`)}for(let a of n.children){e.add("insert");let l=q(a,e,t),c=a.kind==="expr"&&a.reactive||a.kind==="component"||a.kind==="control";s.push(c?`insert(${i}, ${l}, null);`:`insert(${i}, ${l});`)}return s.push(`return ${i};`),`(() => { ${s.join(" ")} })()`}}}function le(n,e){if(!e||e.length===0)return n;let t=new Map(e.map(r=>[r.id,JSON.stringify(r.html)]));return n.replace(/_tmpl\$\d+/g,r=>t.get(r)??r)}var M={name:"imperative",contract:xe,emit(n,e){let t=new Set,r=e?.templateClone!==!1?[]:void 0;return Ge=e?.partialTemplates===!0,{code:q(n,t,r),imports:Array.from(t),templates:r}}};var nn=n=>"components"in n;function Ye(n,e){return n.replace(/\$(\d+)/g,(t,r)=>e[Number(r)]??t)}function rn(n,e){return typeof e=="string"?{module:e,export:n}:e}function ce(n=[]){let e=new Map,t=[],r=[];for(let o of n){if(!nn(o)){r.push(o);continue}for(let[a,l]of Object.entries(o.components)){let c=rn(a,l),u=e.get(a);if(u&&u.module!==c.module){let d=t.find(p=>p.name===a);d?d.modules.push(c.module):t.push({name:a,modules:[u.module,c.module]});continue}e.set(a,c)}}let i=new Map;return{resolve:o=>{if(i.has(o))return i.get(o);let a=e.get(o);if(!a)for(let l of r){let c=o.match(new RegExp(l.match.source,l.match.flags.replace("g","")));if(c){a={module:Ye(l.module,c),export:l.export?Ye(l.export,c):o};break}}return i.set(o,a),a},names:()=>[...e.keys()],conflicts:()=>t}}import{parseTemplate as sn}from"@fluixi/template-parser";function X(n){let e=n.split(/\r\n|\n|\r/),t=0;for(let i=0;i<e.length;i++)/[^ \t]/.test(e[i])&&(t=i);let r="";for(let i=0;i<e.length;i++){let s=e[i].replace(/\t/g," ");i!==0&&(s=s.replace(/^ +/,"")),i!==e.length-1&&(s=s.replace(/ +$/,"")),s&&(i!==t&&(s+=" "),r+=s)}return r}var Ze=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]);function on(n){return n.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}function Qe(n){return n.charAt(0).toUpperCase()+n.slice(1)}var Ne=class{constructor(e,t){this.holes=e;this.used=t}hole(e){return this.holes[e]??{code:"undefined",reactive:!1}}emit(e){let{code:t,imports:r,templates:i}=M.emit(e,{});for(let s of r)this.used.add(s);return le(t,i)}lowerRoot(e){let t=this.lowerChildren(e);return t.length===1?t[0]:{kind:"fragment",children:t}}lowerChildren(e){let t=[];for(let r=0;r<e.length;r++){let i=e[r];if(i.kind==="Element"||i.kind==="Component"){let o=i.attributes.find(a=>a.kind==="IfDirective");if(o&&o.kind==="IfDirective"){let a=r+1;a<e.length&&this.isBlankText(e[a])&&a++;let l=e[a],c=l&&(l.kind==="Element"||l.kind==="Component")&&l.attributes.some(u=>u.kind==="ElseDirective");t.push(this.lowerIf(i,o.hole,c?l:null)),c&&(r=a);continue}if(i.attributes.some(a=>a.kind==="EachDirective")){t.push(this.lowerEach(i));continue}}let s=this.lowerNode(i);s&&t.push(s)}return t}isBlankText(e){return e.kind==="Text"&&!e.raw&&X(e.value)===""}lowerNode(e){switch(e.kind){case"Text":{if(e.raw)return{kind:"text",value:e.value};let t=X(e.value);return t?{kind:"text",value:t}:null}case"Comment":return null;case"Expression":{let t=this.hole(e.hole);return{kind:"expr",code:t.code,reactive:t.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 t=e.attributes.find(r=>r.kind==="Attribute"&&r.name==="is");if(e.tag==="component"&&t&&t.value&&t.value.kind==="hole"){let r=e.attributes.filter(s=>s!==t),i=this.lowerComponent({...e,kind:"Component",tag:"Dynamic",tagHole:null,attributes:r});return i.props.unshift({name:"component",kind:"attr",expr:`() => (${this.hole(t.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 t=e.tagHole!=null?this.hole(e.tagHole).code:e.tag,r=this.lowerAttributes(e.attributes),{slots:i,rest:s}=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},p=r.findIndex(m=>m.name===l);p>=0?r[p]=d:r.push(d)}let o=e.attributes.find(l=>l.kind==="LoadDirective"),a=o?ne(`load:${o.strategy}`,o.modifier):void 0;return{kind:"component",name:t,props:r,children:this.lowerChildren(s),...a?{load:a}:{}}}partitionSlots(e){let t=new Map,r=[];for(let i of e){if(i.kind==="Element"||i.kind==="Component"){let s=i.attributes.find(o=>o.kind==="Attribute"&&o.name==="slot");if(s&&s.value&&s.value.kind==="static"){let o={...i,attributes:i.attributes.filter(c=>c!==s)},a=o.kind==="Element"?this.lowerElement(o):this.lowerComponent(o),l=t.get(s.value.value)??[];l.push(a),t.set(s.value.value,l);continue}}r.push(i)}return{slots:t,rest:r}}lowerIf(e,t,r){let i=this.hole(t),s=[{name:"when",kind:"attr",expr:i.code,reactive:i.reactive}];if(r){let a=this.stripAndLower(r,l=>l.kind==="ElseDirective");s.push({name:"fallback",kind:"attr",expr:this.emit(a),jsxElement:!0})}let o=this.stripAndLower(e,a=>a.kind==="IfDirective");return{kind:"component",name:"Show",props:s,children:[o]}}lowerEach(e){let t=e.attributes.find(l=>l.kind==="EachDirective");if(!t||t.kind!=="EachDirective")return this.lowerNode(e);let r=this.hole(t.hole),i=[{name:"each",kind:"attr",expr:r.code,reactive:r.reactive}];if(t.key){let l="static"in t.key?`(item) => item[${JSON.stringify(t.key.static)}]`:this.hole(t.key.hole).code;i.push({name:"by",kind:"attr",expr:l})}let s=this.itemArrow(e),o;if(s){let l={kind:"expr",code:s.body,reactive:s.bodyReactive},c=this.rebuildWithChildren(e,[l]);o=`(${s.params.join(", ")}) => (${this.emit(c)})`}else{let l=this.stripAndLower(e,c=>c.kind==="EachDirective");o=`() => (${this.emit(l)})`}return{kind:"component",name:"For",props:i,children:[{kind:"expr",code:o,reactive:!1}]}}itemArrow(e){let t=e.children.filter(r=>!this.isBlankText(r));return t.length!==1||t[0].kind!=="Expression"?null:this.hole(t[0].hole).arrow??null}stripAndLower(e,t){let r={...e,attributes:e.attributes.filter(i=>!t(i))};return r.kind==="Element"?this.lowerElement(r):this.lowerComponent(r)}rebuildWithChildren(e,t){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:t,static:!1}:{kind:"component",name:e.tag,props:r,children:t}}lowerAttributes(e){let t=[],r=[],i=!1,s=[],o=!1,a=[];for(let l of e)switch(l.kind){case"IfDirective":case"EachDirective":case"ElseDirective":break;case"Attribute":t.push(this.plainAttr(l));break;case"PropertyBinding":t.push({name:l.name,kind:"prop",expr:this.hole(l.hole).code,reactive:this.hole(l.hole).reactive});break;case"EventBinding":t.push(this.eventProp(l));break;case"RefBinding":t.push({name:"ref",kind:"ref",expr:this.hole(l.hole).code,reactive:this.hole(l.hole).reactive});break;case"Spread":t.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);s.push(`${JSON.stringify(l.name)}: ${c.code}`),o=o||c.reactive;break}case"BindDirective":t.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&&t.push({name:"classList",kind:"attr",expr:`{ ${r.join(", ")} }`,reactive:i}),s.length>0&&t.push({name:"style",kind:"attr",expr:`{ ${s.join(", ")} }`,reactive:o}),a.length>0&&t.push({name:"use",kind:"attr",expr:`[${a.join(", ")}]`}),t}eventProp(e){let t=e.name.toLowerCase(),r=this.hole(e.hole).code;if(!(e.syntax==="colon"||e.modifiers.length>0))return{name:"on"+Qe(e.name),kind:"event",event:{name:t,delegated:Ze.has(t)},expr:r};let s=this.wrapHandler(r,e.modifiers),o=this.eventOptions(e.modifiers),a=o?`[${s}, ${o}]`:s;return{name:"on:"+t,kind:"attr",expr:a}}wrapHandler(e,t){let r=t.includes("self")?"if (e.target !== e.currentTarget) return; ":"",i=[];return t.includes("prevent")&&i.push("e.preventDefault();"),t.includes("stop")&&i.push("e.stopPropagation();"),!r&&i.length===0?e:`(e) => { ${r}${i.join(" ")} return (${e})(e); }`}eventOptions(e){let t=[];return e.includes("capture")&&t.push("capture: true"),e.includes("once")&&t.push("once: true"),e.includes("passive")&&t.push("passive: true"),t.length?`{ ${t.join(", ")} }`:null}bindProps(e,t){let r=e==="checked",i=r?"change":"input",s=r?"checked":"value";this.used.add("bindPair");let o=`bindPair(${t})`;return[{name:e,kind:"attr",expr:`${o}[0]()`,reactive:!0},{name:"on"+Qe(i),kind:"event",event:{name:i,delegated:Ze.has(i)},expr:`(e) => ${o}[1](e.target.${s})`}]}plainAttr(e){let t=e.value,r=e.name;e.name==="class"?r=t&&t.kind==="hole"&&this.hole(t.hole).object?"classList":"className":e.name==="html"&&(r="innerHTML");let s={name:r,kind:"attr"};if(t==null)return s.literal=!0,s;if(t.kind==="static")return s.literal=t.value,s;if(t.kind==="hole"){let l=this.hole(t.hole);return s.expr=l.code,s.reactive=l.reactive,s}let o=!1,a=t.parts.map(l=>{if("text"in l)return on(l.text);let c=this.hole(l.hole);return o=o||c.reactive,"${"+c.code+"}"}).join("");return s.expr="`"+a+"`",s.reactive=o,s}};function et(n,e,t,r={}){let{root:i}=sn(n,{svg:r.svg});return new Ne(e,t).lowerRoot(i.children)}function tt(n,e,t={}){let r=new Set,i=et(n,[...e],r,{svg:t.svg});L(i),re(i,{resolver:ce(t.resolve??[]),modules:{controlFlowModule:t.controlFlowModule??"@fluixi/dom",coreModule:t.coreModule??"@fluixi/core",routerModule:t.routerModule??"@fluixi/core/router"},strategyFor:l=>l.load}),se(i);let{code:s,imports:o,templates:a}=M.emit(i,{templateClone:t.templateClone,partialTemplates:t.partialTemplates});for(let l of o)r.add(l);return t.hoistTemplates?{code:s,imports:[...r],ir:i,templates:a}:{code:le(s,a),imports:[...r],ir:i}}var an="children";function D(n){switch(n.kind){case"call":return!0;case"member":return n.property!==an;case"compound":return n.parts.some(D);case"opaque":return!1}}var ln=new Set(["CallExpression","OptionalCallExpression"]),cn=new Set(["MemberExpression","OptionalMemberExpression"]);function A(n){if(!n)return{kind:"opaque"};if(ln.has(n.type))return{kind:"call"};if(cn.has(n.type)){let e=n.property;return{kind:"member",property:!(n.computed===!0)&&e?.type==="Identifier"?e.name:null}}return n.type==="ConditionalExpression"?{kind:"compound",parts:[n.test,n.consequent,n.alternate].map(z)}:n.type==="LogicalExpression"||n.type==="BinaryExpression"?{kind:"compound",parts:[n.left,n.right].map(z)}:n.type==="TemplateLiteral"?{kind:"compound",parts:n.expressions.map(z)}:n.type==="ObjectExpression"?{kind:"compound",parts:n.properties.filter(t=>(t.type==="ObjectProperty"||t.type==="Property")&&t.computed!==!0).map(t=>z(t.value))}:n.type==="ArrayExpression"?{kind:"compound",parts:n.elements.filter(t=>t!=null&&t.type!=="SpreadElement").map(z)}:{kind:"opaque"}}var z=n=>A(n);var un=new Set(["svg","path","circle","rect","line","polygon","polyline","ellipse","g","defs","clipPath","text"]),dn=/^on[A-Z]/,pn=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]),it=n=>D(A(n));function V(n){if(n.type==="StringLiteral"||n.type==="NumericLiteral"||n.type==="BooleanLiteral"||n.type==="Literal"&&(typeof n.value=="string"||typeof n.value=="number"||typeof n.value=="boolean"))return n.value}var be=n=>!!n&&typeof V(n)=="string";function fn(n,e){return n.type==="JSXIdentifier"?{tag:n.name,component:n.name[0]!==n.name[0].toLowerCase()}:n.type==="JSXMemberExpression"?{tag:e.code(n),component:!0}:n.type==="JSXNamespacedName"?{tag:`${n.namespace.name}:${n.name.name}`,component:!1}:{tag:"div",component:!1}}function we(n){return n.type==="JSXIdentifier"?n.name==="class"?"className":n.name:n.type==="JSXNamespacedName"?`${n.namespace.name}:${n.name.name}`:"unknown"}function hn(n,e){let t=we(n.name),r=dn.test(t),i=r||t.startsWith("on:")||t==="ref",o={name:t,kind:r?"event":"attr"};if(r){let l=t.slice(2).toLowerCase();o.event={name:l,delegated:pn.has(l)}}let a=n.value;if(a==null)return o.literal=!0,o;if(be(a))return o.literal=V(a),o;if(a.type==="JSXExpressionContainer"&&a.expression?.type!=="JSXEmptyExpression"){let l=a.expression,c=V(l);return c!==void 0?(o.literal=c,o):(o.expr=e.code(l),o.reactive=i?!1:it(l),(l.type==="JSXElement"||l.type==="JSXFragment")&&(o.jsxElement=!0),o)}return o.literal=!0,o}function nt(n,e){let t=n.value;return t==null?null:be(t)?JSON.stringify(V(t)):t.type==="JSXExpressionContainer"&&t.expression?.type!=="JSXEmptyExpression"?e.code(t.expression):null}function mn(n,e){let t=[],r=[];for(let i of n){if(i.type==="JSXSpreadAttribute"){t.push({name:"",kind:"spread",expr:e.code(i.argument)});continue}if(i.type!=="JSXAttribute"||me(we(i.name)))continue;let s=i.name.type==="JSXNamespacedName"?i.name.namespace.name:null;if(s==="use"){let o=i.name.name.name;e.used.add(o);let a=nt(i,e);r.push(a!=null?`[${o}, () => (${a})]`:`[${o}]`);continue}if(s==="oncapture"){let o=i.name.name.name.toLowerCase(),a=nt(i,e)??"undefined";t.push({name:"on:"+o,kind:"attr",expr:`[${a}, { capture: true }]`});continue}t.push(hn(i,e))}return r.length>0&&t.push({name:"use",kind:"attr",expr:`[${r.join(", ")}]`}),t}function rt(n,e){let t=[];for(let r of n)if(r.type==="JSXText"){let i=X(r.value);i&&t.push({kind:"text",value:i})}else if(r.type==="JSXExpressionContainer"){if(r.expression?.type!=="JSXEmptyExpression"){let i=r.expression;t.push({kind:"expr",code:e.code(i),reactive:it(i)})}}else r.type==="JSXElement"||r.type==="JSXFragment"?t.push(st(r,e)):r.type==="JSXSpreadChild"&&t.push({kind:"expr",code:e.code(r.expression),reactive:!1});return t}function gn(n){for(let e of n){if(e.type!=="JSXAttribute")continue;let t=we(e.name);if(me(t)){if(e.value&&!be(e.value))throw new E(`'${t}' needs a literal value, not an expression — the strategy is compile-time.`);return ne(t,e.value?V(e.value):null)}}}function st(n,e){if(n.type==="JSXFragment")return{kind:"fragment",children:rt(n.children,e)};let{tag:t,component:r}=fn(n.openingElement.name,e),i=mn(n.openingElement.attributes,e),s=rt(n.children,e);if(r){let o=gn(n.openingElement.attributes);return{kind:"component",name:t,props:i,children:s,...o?{load:o}:{}}}return{kind:"element",tag:t,svg:un.has(t),props:i,children:s,static:!1}}function ot(n,e){let t=st(n,e);return L(t),t}function C(n,e){if(n)switch(n.type){case"Identifier":e.add(n.name);return;case"ObjectPattern":for(let t of n.properties)t.type==="RestElement"?C(t.argument,e):C(t.value,e);return;case"ArrayPattern":for(let t of n.elements)C(t,e);return;case"AssignmentPattern":C(n.left,e);return;case"RestElement":C(n.argument,e);return}}function at(n,e){switch(n.type){case"ImportDeclaration":for(let t of n.specifiers)C(t.local,e);return;case"VariableDeclaration":for(let t of n.declarations)C(t.id,e);return;case"FunctionDeclaration":case"ClassDeclaration":C(n.id,e);return;case"ExportNamedDeclaration":case"ExportDefaultDeclaration":n.declaration&&at(n.declaration,e);return}}function Re(n){let e=new Set;for(let t of n.body)at(t,e);return e}import{parse as Ar}from"@babel/parser";function w(n,e){if(n)switch(n.type){case"Identifier":e.add(n.name);return;case"ObjectPattern":for(let t of n.properties)t.type==="RestElement"?w(t.argument,e):w(t.value,e);return;case"ArrayPattern":for(let t of n.elements)w(t,e);return;case"AssignmentPattern":w(n.left,e);return;case"RestElement":w(n.argument,e);return}}function Se(n){switch(n.type){case"StringLiteral":case"NumericLiteral":case"BooleanLiteral":case"NullLiteral":case"BigIntLiteral":case"RegExpLiteral":case"Identifier":return!0;case"Literal":return!0;case"TemplateLiteral":return n.expressions.every(Se);case"UnaryExpression":return Se(n.argument);case"MemberExpression":return!1;default:return!1}}function ue(n,e){if(!(!n||typeof n!="object")){e(n);for(let t of Object.keys(n)){if(t==="loc"||t==="range"||t==="leadingComments"||t==="trailingComments")continue;let r=n[t];if(Array.isArray(r))for(let i of r)i&&typeof i=="object"&&ue(i,e);else r&&typeof r=="object"&&typeof r.type=="string"&&ue(r,e)}}}function yn(n){let e=new Set;return ue(n,t=>{if(t.type==="AssignmentExpression")w(t.left,e);else if(t.type==="UpdateExpression"){let r=t.argument;r?.type==="Identifier"&&e.add(r.name)}}),e}function vn(n,e){let t=new Set,r=i=>{let s=new Set;w(i,s);for(let o of s)e.has(o)&&t.add(o)};return ue(n,i=>{switch(i.type){case"VariableDeclarator":r(i.id);return;case"FunctionDeclaration":case"FunctionExpression":case"ArrowFunctionExpression":r(i.id);for(let s of i.params??[])r(s);return;case"CatchClause":r(i.param);return;case"ClassDeclaration":case"ClassExpression":r(i.id);return}}),t}function lt(n,e,t){for(let r of n.properties??[]){if(r.type==="RestElement"){let u=r.argument;if(u?.type!=="Identifier"||e.length>0){let d=new Set;w(u,d);for(let p of d)t.bails.push({name:p,reason:"rest"});continue}t.rest={name:u.name,keys:[]};continue}if(r.computed){let u=new Set;w(r.value,u);for(let d of u)t.bails.push({name:d,reason:"computed"});continue}let i=r.key,s=i.type==="Identifier"?i.name:i.value,o=r.value,a;o.type==="AssignmentPattern"&&(a=o.right,o=o.left);let l=[...e,s];if(o.type==="Identifier"){if(a&&!Se(a)){t.bails.push({name:o.name,reason:"unsafe-default"});continue}t.reads.push({name:o.name,path:l,...a?{fallback:a}:{}});continue}if(o.type==="ObjectPattern"){if(a){let u=new Set;w(o,u);for(let d of u)t.bails.push({name:d,reason:"unsafe-default"});continue}lt(o,l,t);continue}let c=new Set;w(o,c);for(let u of c)t.bails.push({name:u,reason:"computed"})}}function ct(n,e){let t={reads:[],bails:[]};if(n?.type!=="ObjectPattern"||(lt(n,[],t),t.rest&&(e?.type!=="BlockStatement"?(t.bails.push({name:t.rest.name,reason:"rest"}),delete t.rest):t.rest.keys=(n.properties??[]).filter(a=>a.type!=="RestElement"&&!a.computed).map(a=>{let l=a.key;return l.type==="Identifier"?l.name:l.value})),t.reads.length===0&&!t.rest))return t;let r=new Set(t.reads.map(a=>a.name));t.rest&&r.add(t.rest.name);let i=yn(e),s=vn(e,r),o=[];for(let a of t.reads)i.has(a.name)?t.bails.push({name:a.name,reason:"reassigned"}):s.has(a.name)?t.bails.push({name:a.name,reason:"shadowed"}):o.push(a);return t.reads=o,t.rest&&i.has(t.rest.name)?(t.bails.push({name:t.rest.name,reason:"reassigned"}),delete t.rest):t.rest&&s.has(t.rest.name)&&(t.bails.push({name:t.rest.name,reason:"shadowed"}),delete t.rest),t}function ut(n){switch(n){case"rest":return"this rest element cannot be served by splitProps, and copying the props into a plain object would lose the getters";case"computed":return"the property is not known until it runs";case"reassigned":return"the binding is assigned to, and props are read-only";case"shadowed":return"an inner scope binds the same name";case"unsafe-default":return"the default would have to run again on every read"}}function W(n,e,t=null){if(!(!n||typeof n!="object"||typeof n.type!="string")&&!n.type.startsWith("TS")&&e(n,t)!==!1)for(let r of Object.keys(n)){if(r==="loc"||r==="leadingComments"||r==="trailingComments")continue;let i=n[r];if(Array.isArray(i))for(let s of i)W(s,e,n);else i&&typeof i=="object"&&W(i,e,n)}}function dt(n){return!!n&&n[0]>="A"&&n[0]<="Z"}function xn(n){let e=[];return W(n,t=>{if(t.type==="FunctionDeclaration"&&dt(t.id?.name)){e.push(t);return}if(t.type==="VariableDeclarator"&&dt(t.id?.name)){let r=t.init;r&&(r.type==="ArrowFunctionExpression"||r.type==="FunctionExpression")&&e.push(r)}}),e}function Nn(n){let e=new Set;return W(n,t=>{t.type==="Identifier"&&e.add(t.name)}),e}function bn(n,e){if(!e)return!0;switch(e.type){case"MemberExpression":case"OptionalMemberExpression":return!(e.property===n&&!e.computed);case"ObjectProperty":case"ObjectMethod":case"ClassProperty":case"ClassMethod":return!(e.key===n&&!e.computed);case"LabeledStatement":case"BreakStatement":case"ContinueStatement":return e.label!==n;case"ImportSpecifier":case"ExportSpecifier":return!1;default:return!0}}function pt(n,e,t={}){let r=[],i=[],s=new Set;for(let o of xn(n)){let a=o.params?.[0];if(a?.type!=="ObjectPattern")continue;let l=ct(a,o.body);for(let h of l.bails)i.push({name:h.name,reason:h.reason,message:ut(h.reason),start:a.start});if(l.bails.length>0||l.reads.length===0&&!l.rest)continue;let c=Nn(o),u=t.parameterName??"props";for(;c.has(u);)u=`_${u}`;let d=new Map;for(let h of l.reads){let g=`${u}.${h.path.join(".")}`,x=h.fallback;d.set(h.name,x?`(${g} === undefined ? ${e.slice(x.start,x.end)} : ${g})`:g)}let p=a.typeAnnotation;if(r.push({start:a.start,end:p?.start??a.end,code:u}),l.rest){let h=l.rest.keys.map(x=>JSON.stringify(x)).join(", "),g=o.body;r.push({start:g.start+1,end:g.start+1,code:`
11
- const [, ${l.rest.name}] = splitProps(${u}, [${h}]);`}),s.add("splitProps")}let m=[];W(o.body,(h,g)=>{if(h.type!=="Identifier")return;let x=d.get(h.name);if(!x)return;let S=g?.type==="ObjectProperty"&&g.shorthand&&g.value===h;if(!S&&!bn(h,g))return;let R=l.reads.find(I=>I.name===h.name).path;m.push({node:h,parent:S?g:null,text:x,property:R[R.length-1]})});for(let h of m)h.parent?r.push({start:h.parent.start,end:h.parent.end,code:`${h.node.name}: ${h.text}`}):r.push({start:h.node.start,end:h.node.end,code:h.text}),wn(h.node,u,h.property)}return{edits:r,diagnostics:i,used:s}}function wn(n,e,t){n.type="MemberExpression",n.computed=!1,n.optional=!1,n.object={type:"Identifier",name:e,start:n.start,end:n.start},n.property={type:"Identifier",name:t,start:n.end,end:n.end},delete n.name}var $="@fluixi/reactive/signal",T={$signal:{export:"signal",module:$,returns:"signal-handle"},$memo:{export:"memo",module:$,returns:"memo-handle"},$effect:{export:"effect",module:$,returns:"effect"},$store:{export:"store",module:"@fluixi/reactive/store",returns:"store-handle"},$resource:{export:"resource",module:$,returns:"resource-handle"},$selector:{export:"createSelector",module:$,returns:"memo-accessor"},$deferred:{export:"createDeferred",module:$,returns:"memo-accessor"},$untrack:{export:"untrack",module:$,returns:"plain"},$untrackStore:{export:"untrackStore",module:"@fluixi/reactive/store",returns:"plain"}},ft={signal:"signal-handle",memo:"memo-handle",effect:"effect",store:"store-handle",createSignal:["signal-accessor","signal-setter"],createMemo:"memo-accessor",createEffect:"effect",createRenderEffect:"effect",createStore:"reactive-object",resource:"resource-handle",createResource:"reactive-object",createSelector:"memo-accessor",createDeferred:"memo-accessor"},Rn=["@fluixi/reactive","@fluixi/reactive/signal","@fluixi/reactive/store","@fluixi/core"],Sn=new RegExp(`\\$(?:${Object.keys(T).map(n=>n.slice(1)).join("|")})\\s*\\(`);function ht(n){return Sn.test(n)}function mt(n){return Object.prototype.hasOwnProperty.call(T,n)}function gt(n){return Rn.includes(n)}function y(n,e){if(n)switch(n.type){case"Identifier":e.add(n.name);return;case"ObjectPattern":for(let t of n.properties??[])t.type==="RestElement"?y(t.argument,e):y(t.value,e);return;case"ArrayPattern":for(let t of n.elements??[])y(t,e);return;case"AssignmentPattern":y(n.left,e);return;case"RestElement":y(n.argument,e);return}}function K(n,e){if(!(!n||typeof n!="object"||typeof n.type!="string")){e(n);for(let t of Object.keys(n)){if(t==="loc"||t==="leadingComments"||t==="trailingComments")continue;let r=n[t];if(Array.isArray(r))for(let i of r)K(i,e);else r&&typeof r=="object"&&K(r,e)}}}function kn(n,e){if(n.type!=="CallExpression")return;let t=n.callee;if(t?.type!=="Identifier")return;let r=t.name,i=e.primitives.get(r);if(i)return i;let s=T[r];if(s&&!e.shadowed.has(r))return s.returns}function En(n,e,t){if(Array.isArray(e)){n.type==="ArrayPattern"&&n.elements.forEach((r,i)=>{let s=e[i];r?.type==="Identifier"&&s&&t.set(r.name,s)});return}n.type==="Identifier"&&t.set(n.name,e)}function yt(n){let e=new Set;return K(n,t=>{switch(t.type){case"VariableDeclarator":y(t.id,e);return;case"FunctionDeclaration":case"FunctionExpression":case"ArrowFunctionExpression":y(t.id,e);for(let r of t.params??[])y(r,e);return;case"ClassDeclaration":case"ClassExpression":y(t.id,e);return;case"ImportSpecifier":case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":y(t.local,e);return;case"CatchClause":y(t.param,e);return}}),e}function vt(n){let e={kinds:new Map,primitives:new Map,shadowed:new Set},t=n;K(t,r=>{let i=new Set;if(r.type==="VariableDeclarator")y(r.id,i);else if(r.type==="FunctionDeclaration"||r.type==="ClassDeclaration")y(r.id,i);else if(r.type==="ImportDefaultSpecifier"||r.type==="ImportNamespaceSpecifier")y(r.local,i);else if(r.type==="ImportSpecifier")y(r.local,i);else if(r.type==="FunctionExpression"||r.type==="ArrowFunctionExpression"||r.type==="FunctionDeclaration")for(let s of r.params??[])y(s,i);for(let s of i)T[s]&&e.shadowed.add(s)});for(let r of t.body??[])if(r.type==="ImportDeclaration"&&gt(r.source?.value))for(let i of r.specifiers??[]){if(i.type!=="ImportSpecifier")continue;let s=i.imported,o=s.type==="Identifier"?s.name:s.value,a=ft[o];a&&e.primitives.set(i.local.name,a)}return K(t,r=>{if(r.type!=="VariableDeclarator"||!r.init)return;let i=kn(r.init,e);i&&En(r.id,i,e.kinds)}),e}function ke(n,e){if(!(!n||typeof n!="object"||typeof n.type!="string")){e(n);for(let t of Object.keys(n)){if(t==="loc"||t==="leadingComments"||t==="trailingComments")continue;let r=n[t];if(Array.isArray(r))for(let i of r)ke(i,e);else r&&typeof r=="object"&&ke(r,e)}}}function xt(n){let e=[],t=[],r=new Map,i=new Set,{shadowed:s}=vt(n);return ke(n,o=>{if(o.type!=="CallExpression")return;let a=o.callee;if(a?.type!=="Identifier")return;let l=a.name;if(!mt(l))return;if(s.has(l)){i.has(l)||(i.add(l),t.push({name:l,message:`${l} is reserved for the compiler, and this module binds it. The call keeps your binding's meaning; rename it to use the intrinsic.`,start:a.start}));return}let c=T[l];e.push({start:a.start,end:a.end,code:c.export});let u=r.get(c.module)??new Set;u.add(c.export),r.set(c.module,u)}),{edits:e,diagnostics:t,imports:r}}function Nt(n,e){let t=[];for(let[r,i]of[...n.imports].sort(([s],[o])=>s.localeCompare(o))){let s=[...i].filter(o=>!e.has(o)).sort();s.length&&t.push(`import { ${s.join(", ")} } from ${JSON.stringify(r)};`)}return t.length?`${t.join(`
10
+ `?s=!0:u!=="\r"&&s&&(s=!1,a===l.start||(this._splitChunk(l,a),l=l.next),l.prependRight(e))}a+=1}a=l.end,l=l.next}return this.outro=this.outro.replace(r,o),this}insert(){throw new Error("magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)")}insertLeft(e,t){return j.insertLeft||(console.warn("magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead"),j.insertLeft=!0),this.appendLeft(e,t)}insertRight(e,t){return j.insertRight||(console.warn("magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead"),j.insertRight=!0),this.prependRight(e,t)}move(e,t,r){if(e=e+this.offset,t=t+this.offset,r=r+this.offset,r>=e&&r<=t)throw new Error("Cannot move a selection inside itself");this._split(e),this._split(t),this._split(r);let i=this.byStart[e],s=this.byEnd[t],o=i.previous,a=s.next,l=this.byStart[r];if(!l&&s===this.lastChunk)return this;let c=l?l.previous:this.lastChunk;return o&&(o.next=a),a&&(a.previous=o),c&&(c.next=i),l&&(l.previous=s),i.previous||(this.firstChunk=s.next),s.next||(this.lastChunk=i.previous,this.lastChunk.next=null),i.previous=c,s.next=l||null,c||(this.firstChunk=i),l||(this.lastChunk=s),this}overwrite(e,t,r,i){return i=i||{},this.update(e,t,r,{...i,overwrite:!i.contentOnly})}update(e,t,r,i){if(e=e+this.offset,t=t+this.offset,typeof r!="string")throw new TypeError("replacement content must be a string");if(this.original.length!==0){for(;e<0;)e+=this.original.length;for(;t<0;)t+=this.original.length}if(t>this.original.length)throw new Error("end is out of bounds");if(e===t)throw new Error("Cannot overwrite a zero-length range – use appendLeft or prependRight instead");this._split(e),this._split(t),i===!0&&(j.storeName||(console.warn("The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string"),j.storeName=!0),i={storeName:!0});let s=i!==void 0?i.storeName:!1,o=i!==void 0?i.overwrite:!1;if(s){let c=this.original.slice(e,t);Object.defineProperty(this.storedNames,c,{writable:!0,value:!0,enumerable:!0})}let a=this.byStart[e],l=this.byEnd[t];if(a){let c=a;for(;c!==l;){if(c.next!==this.byStart[c.end])throw new Error("Cannot overwrite across a split point");c=c.next,c.edit("",!1)}a.edit(r,s,!o)}else{let c=new oe(e,t,"").edit(r,s);l.next=c,c.previous=l}return this}prepend(e){if(typeof e!="string")throw new TypeError("outro content must be a string");return this.intro=e+this.intro,this}prependLeft(e,t){if(e=e+this.offset,typeof t!="string")throw new TypeError("inserted content must be a string");this._split(e);let r=this.byEnd[e];return r?r.prependLeft(t):this.intro=t+this.intro,this}prependRight(e,t){if(e=e+this.offset,typeof t!="string")throw new TypeError("inserted content must be a string");this._split(e);let r=this.byStart[e];return r?r.prependRight(t):this.outro=t+this.outro,this}remove(e,t){if(e=e+this.offset,t=t+this.offset,this.original.length!==0){for(;e<0;)e+=this.original.length;for(;t<0;)t+=this.original.length}if(e===t)return this;if(e<0||t>this.original.length)throw new Error("Character is out of bounds");if(e>t)throw new Error("end must be greater than start");this._split(e),this._split(t);let r=this.byStart[e];for(;r;)r.intro="",r.outro="",r.edit(""),r=t>r.end?this.byStart[r.end]:null;return this}reset(e,t){if(e=e+this.offset,t=t+this.offset,this.original.length!==0){for(;e<0;)e+=this.original.length;for(;t<0;)t+=this.original.length}if(e===t)return this;if(e<0||t>this.original.length)throw new Error("Character is out of bounds");if(e>t)throw new Error("end must be greater than start");this._split(e),this._split(t);let r=this.byStart[e];for(;r;)r.reset(),r=t>r.end?this.byStart[r.end]:null;return this}lastChar(){if(this.outro.length)return this.outro[this.outro.length-1];let e=this.lastChunk;do{if(e.outro.length)return e.outro[e.outro.length-1];if(e.content.length)return e.content[e.content.length-1];if(e.intro.length)return e.intro[e.intro.length-1]}while(e=e.previous);return this.intro.length?this.intro[this.intro.length-1]:""}lastLine(){let e=this.outro.lastIndexOf(q);if(e!==-1)return this.outro.substr(e+1);let t=this.outro,r=this.lastChunk;do{if(r.outro.length>0){if(e=r.outro.lastIndexOf(q),e!==-1)return r.outro.substr(e+1)+t;t=r.outro+t}if(r.content.length>0){if(e=r.content.lastIndexOf(q),e!==-1)return r.content.substr(e+1)+t;t=r.content+t}if(r.intro.length>0){if(e=r.intro.lastIndexOf(q),e!==-1)return r.intro.substr(e+1)+t;t=r.intro+t}}while(r=r.previous);return e=this.intro.lastIndexOf(q),e!==-1?this.intro.substr(e+1)+t:this.intro+t}slice(e=0,t=this.original.length-this.offset){if(e=e+this.offset,t=t+this.offset,this.original.length!==0){for(;e<0;)e+=this.original.length;for(;t<0;)t+=this.original.length}let r="",i=this.firstChunk;for(;i&&(i.start>e||i.end<=e);){if(i.start<t&&i.end>=t)return r;i=i.next}if(i&&i.edited&&i.start!==e)throw new Error(`Cannot use replaced character ${e} as slice start anchor.`);let s=i;for(;i;){i.intro&&(s!==i||i.start===e)&&(r+=i.intro);let o=i.start<t&&i.end>=t;if(o&&i.edited&&i.end!==t)throw new Error(`Cannot use replaced character ${t} as slice end anchor.`);let a=s===i?e-i.start:0,l=o?i.content.length+t-i.end:i.content.length;if(r+=i.content.slice(a,l),i.outro&&(!o||i.end===t)&&(r+=i.outro),o)break;i=i.next}return r}snip(e,t){let r=this.clone();return r.remove(0,e),r.remove(t,r.original.length),r}_split(e){if(this.byStart[e]||this.byEnd[e])return;let t=this.lastSearchedChunk,r=t,i=e>t.end;for(;t;){if(t.contains(e))return this._splitChunk(t,e);if(t=i?this.byStart[t.end]:this.byEnd[t.start],t===r)return;r=t}}_splitChunk(e,t){if(e.edited&&e.content.length){let i=We(this.original)(t);throw new Error(`Cannot split a chunk that has already been edited (${i.line}:${i.column} – "${e.original}")`)}let r=e.split(t);return this.byEnd[t]=e,this.byStart[t]=r,this.byEnd[r.end]=r,e===this.lastChunk&&(this.lastChunk=r),this.lastSearchedChunk=e,!0}toString(){let e=this.intro,t=this.firstChunk;for(;t;)e+=t.toString(),t=t.next;return e+this.outro}isEmpty(){let e=this.firstChunk;do if(e.intro.length&&e.intro.trim()||e.content.length&&e.content.trim()||e.outro.length&&e.outro.trim())return!1;while(e=e.next);return!0}length(){let e=this.firstChunk,t=0;do t+=e.intro.length+e.content.length+e.outro.length;while(e=e.next);return t}trimLines(){return this.trim("[\\r\\n]")}trim(e){return this.trimStart(e).trimEnd(e)}trimEndAborted(e){let t=new RegExp((e||"\\s")+"+$");if(this.outro=this.outro.replace(t,""),this.outro.length)return!0;let r=this.lastChunk;do{let i=r.end,s=r.trimEnd(t);if(r.end!==i&&(this.lastChunk===r&&(this.lastChunk=r.next),this.byEnd[r.end]=r,this.byStart[r.next.start]=r.next,this.byEnd[r.next.end]=r.next),s)return!0;r=r.previous}while(r);return!1}trimEnd(e){return this.trimEndAborted(e),this}trimStartAborted(e){let t=new RegExp("^"+(e||"\\s")+"+");if(this.intro=this.intro.replace(t,""),this.intro.length)return!0;let r=this.firstChunk;do{let i=r.end,s=r.trimStart(t);if(r.end!==i&&(r===this.lastChunk&&(this.lastChunk=r.next),this.byEnd[r.end]=r,this.byStart[r.next.start]=r.next,this.byEnd[r.next.end]=r.next),s)return!0;r=r.next}while(r);return!1}trimStart(e){return this.trimStartAborted(e),this}hasChanged(){return this.original!==this.toString()}_replaceRegexp(e,t){function r(s,o){return typeof t=="string"?t.replace(/\$(\$|&|\d+)/g,(a,l)=>l==="$"?"$":l==="&"?s[0]:+l<s.length?s[+l]:`$${l}`):t(...s,s.index,o,s.groups)}function i(s,o){let a,l=[];for(;a=s.exec(o);)l.push(a);return l}if(e.global)i(e,this.original).forEach(o=>{if(o.index!=null){let a=r(o,this.original);a!==o[0]&&this.overwrite(o.index,o.index+o[0].length,a)}});else{let s=this.original.match(e);if(s&&s.index!=null){let o=r(s,this.original);o!==s[0]&&this.overwrite(s.index,s.index+s[0].length,o)}}return this}_replaceString(e,t){let{original:r}=this,i=r.indexOf(e);return i!==-1&&(typeof t=="function"&&(t=t(e,i,r)),e!==t&&this.overwrite(i,i+e.length,t)),this}replace(e,t){return typeof e=="string"?this._replaceString(e,t):this._replaceRegexp(e,t)}_replaceAllString(e,t){let{original:r}=this,i=e.length;for(let s=r.indexOf(e);s!==-1;s=r.indexOf(e,s+i)){let o=r.slice(s,s+i),a=t;typeof t=="function"&&(a=t(o,s,r)),o!==a&&this.overwrite(s,s+i,a)}return this}replaceAll(e,t){if(typeof e=="string")return this._replaceAllString(e,t);if(!e.global)throw new TypeError("MagicString.prototype.replaceAll called with a non-global RegExp argument");return this._replaceRegexp(e,t)}};function Kt(n){switch(n.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 n.reactive?"reactive-prop":n.expr!==void 0?"expression-prop":void 0;default:return"expression-prop"}}function _(n){let e=[],t=new Map,r=i=>{switch(i.kind){case"text":return!0;case"expr":return!1;case"component":case"control":for(let s of i.children)r(s);return!1;case"fragment":for(let s of i.children)r(s);return!1;case"element":{let s=!0;for(let a of i.children)r(a)||(s=!1);let o;for(let a of i.props)if(o=Kt(a),o)break;return!o&&!s&&(o=Gt(i)),i.static=!o,o?t.set(i,o):e.push(i),i.static}default:return!1}};for(let i of Array.isArray(n)?n:[n])r(i);return{staticElements:e,reasons:t}}function Gt(n){for(let e of n.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 le={kind:"eager"},Yt=["pointerdown","focusin","keydown"],ze=new Set(["eager","idle","visible","interaction","media","never"]),O=class extends Error{};function Re(n){return n.startsWith("load:")}function ce(n,e){let t=n.slice(5);if(!ze.has(t))throw new O(`Unknown load strategy 'load:${t}'. Expected one of ${[...ze].join(", ")}.`);switch(t){case"eager":return le;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?Zt(e):[...Yt]};case"media":if(!e)throw new O(`'load:media' needs a query, e.g. load:media="(min-width: 1024px)".`);return{kind:"media",query:e};default:throw new O(`Unhandled load strategy '${t}'.`)}}function Zt(n){let e=n.split(/[\s,]+/).map(t=>t.trim()).filter(Boolean);if(e.length===0)throw new O("'load:interaction' was given no event names.");return e}function X(n){return n.kind!=="eager"&&n.kind!=="never"}var V=["Show","For","Index","Switch","Match","Portal","Dynamic","ErrorBoundary"],W=["Suspense","SuspenseList","Await"],J=["Router","Outlet","Redirect","Link"],vr=[...V,...W,...J],Ee=new Set([...V,...W]);function Ke(n={}){let{controlFlowModule:e="@fluixi/dom",coreModule:t="@fluixi/core",routerModule:r="@fluixi/core/router"}=n,i={};for(let s of V)i[s]=e;for(let s of W)i[s]=t;for(let s of J)i[s]=r;return i}function ue(n,e={}){let{resolver:t,isBound:r,modules:i,strategyFor:s}=e,o=Ke(i),a=new Map,l=new Set,c=f=>{let{name:d}=f;if(!d||d.includes(".")||r?.(d))return;let h=u(d);if(!h){l.add(d);return}let m=h.origin==="builtin"&&Ee.has(d)?le:s?.(f)??le;f.source={...h,loading:m},a.set(d,f.source)},u=f=>{if(Ee.has(f))return{module:o[f],export:f,origin:"builtin"};let d=t?.resolve(f);if(d)return{module:d.module,export:d.export,origin:"rule"};if(J.includes(f))return{module:o[f],export:f,origin:"builtin"}};return de(n,f=>{f.kind==="component"&&c(f)}),{resolved:a,unresolved:[...l]}}function de(n,e){let t=Array.isArray(n)?n:[n];for(let r of t){e(r);let i=r.children;i&&de(i,e)}}function fe(n){let e=[];de(n,s=>{s.kind==="component"&&s.source&&e.push(s)});let t=new Set,r=new Set;for(let s of e){let{module:o,loading:a}=s.source;a.kind==="eager"&&t.add(o),a.kind==="never"&&r.add(o)}let i=new Map;for(let s of e){let o=s.source;X(o.loading)&&t.has(o.module)&&(o.loading={kind:"eager"},i.set(o.module,(i.get(o.module)??0)+1))}return{collapsed:i,conflicted:[...r].filter(s=>t.has(s))}}var Qt=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),Ge={className:"class",htmlFor:"for"},en=new Set(["innerHTML","outerHTML","innerText","textContent","value","checked","selected","muted","defaultValue","defaultChecked","children","ref"]),tn=new Set(["script","style","textarea","title"]);function ke(n){return tn.has(n)}function Ye(n){return Ge[n]??n}function z(n){return n.kind!=="attr"||n.expr!==void 0||n.name.includes(":")?!1:!en.has(n.name)}function Ce(n){if(!n.static||ke(n.tag))return!1;for(let e of n.props)if(!z(e))return!1;for(let e of n.children)if(e.kind!=="text"&&!(e.kind==="element"&&Ce(e)))return!1;return!0}function K(n){let e=n.props.map(rn).filter(Boolean).join(""),t=`<${n.tag}${e}>`;return Qt.has(n.tag)?t:`${t}${n.children.map(nn).join("")}</${n.tag}>`}function nn(n){if(n.kind==="text")return on(n.value);if(n.kind!=="element")throw new Error(`serializeStatic: unexpected ${n.kind}`);return K(n)}function rn(n){let e=Ge[n.name]??n.name,t=n.literal;return t===!0||t===void 0?` ${e}`:t===!1||t===null?"":` ${e}="${sn(String(t))}"`}function sn(n){return n.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function on(n){return n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Ie(n){let e=[],t,r=i=>{t??=i.at?.file,e.push(i.at?.line??0,i.at?.column??0);for(let s of i.children)s.kind==="element"&&r(s)};return r(n),t&&e.some(i=>i!==0)?{file:t,pos:e}:void 0}var an="<!--fx-->",ln="<!--fx/-->";function me(n){return n.kind==="expr"||n.kind==="component"||n.kind==="control"}function cn(n){return n.kind==="text"||n.kind==="element"&&Ze(n)}function Ze(n){return n.svg||ke(n.tag)||!n.props.every(e=>z(e))?!1:n.children.every(e=>cn(e)||me(e))}function pe(n){if(me(n))return!0;let e=n.children;return e?e.some(pe):!1}function Qe(n){for(let e=0;e<n.children.length;e++){let t=n.children[e];if(t.kind==="text"&&(t.value===""||n.children[e+1]?.kind==="text"))return!1}return n.children.every(e=>e.kind!=="element"||Qe(e))}function et(n){if(!Ze(n)||!Qe(n)||!n.children.some(pe))return null;let e=[],t=[],r=0,i=o=>{let a=`_n$${r++}`;return e.push({ref:a,expr:o}),a};return s(n,"_el$"),{html:un(n),tag:n.tag,steps:e,holes:t};function s(o,a){let l=-1;o.children.forEach((u,f)=>{pe(u)&&(l=f)});let c=null;for(let u=0;u<=l;u++){let f=o.children[u],d=c?`${c}.nextSibling`:`${a}.firstChild`;if(me(f)){let m=i(d),y=i(`holeEnd(${m})`);t.push({parentRef:a,startRef:m,endRef:y,node:f}),c=y;continue}let h=i(d);f.kind==="element"&&pe(f)&&s(f,h),c=h}}}function un(n){return K(tt(n)).split(nt).join(an+ln)}function tt(n){return{...n,children:n.children.map(e=>me(e)?{kind:"text",value:nt}:e.kind==="element"?tt(e):e)}}var nt="\0fx-hole\0";var $e={version:1,module:"@fluixi/dom",symbols:["createNativeElement","insert","spread","setAttribute","delegateEvents","createComponent","createMemo","untrack","Show","For","Index","Switch","Match","Dynamic","ErrorBoundary"]},$r={version:2,module:"@fluixi/dom",symbols:[...$e.symbols,"template","cloneTemplate","walk"]};var A="@fluixi/reactive/signal",C={$signal:{export:"signal",module:A,returns:"signal-handle"},$memo:{export:"memo",module:A,returns:"memo-handle"},$effect:{export:"effect",module:A,returns:"effect"},$store:{export:"store",module:"@fluixi/reactive/store",returns:"store-handle"},$resource:{export:"resource",module:A,returns:"resource-handle"},$selector:{export:"createSelector",module:A,returns:"memo-accessor"},$deferred:{export:"createDeferred",module:A,returns:"memo-accessor"},$untrack:{export:"untrack",module:A,returns:"plain"},$untrackStore:{export:"untrackStore",module:"@fluixi/reactive/store",returns:"plain"}},rt={signal:"signal-handle",memo:"memo-handle",effect:"effect",store:"store-handle",createSignal:["signal-accessor","signal-setter"],createMemo:"memo-accessor",createEffect:"effect",createRenderEffect:"effect",createStore:"reactive-object",resource:"resource-handle",createResource:"reactive-object",createSelector:"memo-accessor",createDeferred:"memo-accessor"},dn=["@fluixi/reactive","@fluixi/reactive/signal","@fluixi/reactive/store","@fluixi/core"],fn=new RegExp(`\\$(?:${Object.keys(C).map(n=>n.slice(1)).join("|")})\\s*\\(`);function it(n){return fn.test(n)}function he(n){return Object.prototype.hasOwnProperty.call(C,n)}function st(n){return dn.includes(n)}function b(n,e){if(n)switch(n.type){case"Identifier":e.add(n.name);return;case"ObjectPattern":for(let t of n.properties??[])t.type==="RestElement"?b(t.argument,e):b(t.value,e);return;case"ArrayPattern":for(let t of n.elements??[])b(t,e);return;case"AssignmentPattern":b(n.left,e);return;case"RestElement":b(n.argument,e);return}}function G(n,e){if(!(!n||typeof n!="object"||typeof n.type!="string")){e(n);for(let t of Object.keys(n)){if(t==="loc"||t==="leadingComments"||t==="trailingComments")continue;let r=n[t];if(Array.isArray(r))for(let i of r)G(i,e);else r&&typeof r=="object"&&G(r,e)}}}function pn(n,e){if(n.type!=="CallExpression")return;let t=n.callee;if(t?.type!=="Identifier")return;let r=t.name,i=e.primitives.get(r);if(i)return i;let s=C[r];if(s&&!e.shadowed.has(r))return s.returns}function mn(n,e,t){if(Array.isArray(e)){n.type==="ArrayPattern"&&n.elements.forEach((r,i)=>{let s=e[i];r?.type==="Identifier"&&s&&t.set(r.name,s)});return}n.type==="Identifier"&&t.set(n.name,e)}function ot(n){let e=new Set;return G(n,t=>{switch(t.type){case"VariableDeclarator":b(t.id,e);return;case"FunctionDeclaration":case"FunctionExpression":case"ArrowFunctionExpression":b(t.id,e);for(let r of t.params??[])b(r,e);return;case"ClassDeclaration":case"ClassExpression":b(t.id,e);return;case"ImportSpecifier":case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":b(t.local,e);return;case"CatchClause":b(t.param,e);return}}),e}function ge(n){let e={kinds:new Map,primitives:new Map,shadowed:new Set},t=n;G(t,r=>{let i=new Set;if(r.type==="VariableDeclarator")b(r.id,i);else if(r.type==="FunctionDeclaration"||r.type==="ClassDeclaration")b(r.id,i);else if(r.type==="ImportDefaultSpecifier"||r.type==="ImportNamespaceSpecifier")b(r.local,i);else if(r.type==="ImportSpecifier")b(r.local,i);else if(r.type==="FunctionExpression"||r.type==="ArrowFunctionExpression"||r.type==="FunctionDeclaration")for(let s of r.params??[])b(s,i);for(let s of i)C[s]&&e.shadowed.add(s)});for(let r of t.body??[])if(r.type==="ImportDeclaration"&&st(r.source?.value))for(let i of r.specifiers??[]){if(i.type!=="ImportSpecifier")continue;let s=i.imported,o=s.type==="Identifier"?s.name:s.value,a=rt[o];a&&e.primitives.set(i.local.name,a)}return G(t,r=>{if(r.type!=="VariableDeclarator"||!r.init)return;let i=pn(r.init,e);i&&mn(r.id,i,e.kinds)}),e}var Oe="__fx_source",hn="__fx_component",gn="__fx_hole",Y=(n,e,t,r)=>`(globalThis.${gn} ?? ((f) => f))(${n},${e},${t}${r===void 0?"":`,${JSON.stringify(r)}`})`,yn="__fx_props",lt=(n,e)=>`(globalThis.${yn} ?? ((p) => p))(${n},${JSON.stringify(e)})`,ct=new Set(["signal","memo","effect","store","resource","watch","createSignal","createMemo","createEffect","createStore","createResource"]);function ut(n){for(let e of ct)if(n.includes(e))return!0;return n.includes("$signal")||n.includes("$memo")||n.includes("$effect")||n.includes("$store")}var vn=new Set(["IfStatement","ForStatement","ForInStatement","ForOfStatement","WhileStatement","DoWhileStatement","LabeledStatement","WithStatement"]);function bn(n,e){return!e||n.type==="BlockStatement"?!1:vn.has(e.type)}function at(n){return n.type==="ExportNamedDeclaration"||n.type==="ExportDefaultDeclaration"}function Nn(n){return n.type.endsWith("Statement")||n.type==="VariableDeclaration"}function Te(n,e,t=[]){if(!(!n||typeof n.type!="string")){e(n,t),t.push(n);for(let r of Object.keys(n)){if(r==="loc"||r==="parent")continue;let i=n[r];if(Array.isArray(i))for(let s of i)Te(s,e,t);else i&&typeof i.type=="string"&&Te(i,e,t)}t.pop()}}function xn(n){let e=n[n.length-1];if(e?.type!=="VariableDeclarator")return;let t=e.id;if(t?.type==="Identifier")return t.name;if(t?.type==="ArrayPattern"){let r=t.elements?.[0];if(r?.type==="Identifier")return r.name}}function Sn(n){if(n.type==="FunctionDeclaration"){let e=n.id?.name;return e&&e[0]===e[0]?.toUpperCase()?e:void 0}if(n.type==="VariableDeclarator"){let e=n.id,t=n.init;if(e?.type!=="Identifier"||!t||t.type!=="ArrowFunctionExpression"&&t.type!=="FunctionExpression")return;let r=e.name;return r[0]===r[0]?.toUpperCase()?r:void 0}}function dt(n,e){let t=[],r=new Set,{primitives:i,shadowed:s}=ge(n);return Te(n,(o,a)=>{let l=Sn(o);if(l){let g=o.loc?.start,$=o.end;for(let D=a.length-1;D>=0;D--){let M=a[D];if(M.type!=="VariableDeclaration"&&M.type!=="ExportNamedDeclaration"&&M.type!=="ExportDefaultDeclaration")break;$=M.end}g&&t.push({start:$,end:$,code:`;globalThis.${hn}?.(${JSON.stringify(l)},${JSON.stringify(e)},${g.line},${g.column});`})}if(o.type!=="CallExpression")return;let c=o.callee;if(c?.type!=="Identifier")return;let u=c.name,f=he(u)&&!s.has(u)?C[u]:void 0,d=i.has(u)||ct.has(u);if(!f&&!d)return;let h=o.loc?.start;if(!h)return;let m,y,S=-1;for(let g=a.length-1;g>=0;g--)if(Nn(a[g])||at(a[g])){m=a[g],y=a[g-1],S=g;break}if(!m)return;let x=m.start,v=m.end;for(let g=S-1;g>=0&&at(a[g]);g--)x=a[g].start,v=a[g].end,y=a[g-1];if(r.has(x))return;r.add(x);let I=xn(a),P=[JSON.stringify(e),String(h.line),String(h.column),I?JSON.stringify(I):void 0].filter(g=>g!==void 0).join(","),k=`globalThis.${Oe}?.(${P});`;if(bn(m,y)){t.push({start:x,end:x,code:`{${k}`}),t.push({start:v,end:v,code:"}"});return}t.push({start:x,end:x,code:k})}),{edits:t,marked:t.length}}var wn={show:"Show",for:"For",index:"Index",switch:"Switch",match:"Match",dynamic:"Dynamic",errorBoundary:"ErrorBoundary",suspense:"Suspense"};function Rn(n){return/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(n)}function mt(n){return Rn(n)?n:JSON.stringify(n)}function En(n){if(n.expr!==void 0){if(n.name==="ref"&&n.at)return Y(`(${n.expr})`,n.at.line,n.at.column,n.expr);if(!n.reactive)return`(${n.expr})`;let e=`() => (${n.expr})`;return n.at?Y(e,n.at.line,n.at.column,n.directive):e}return JSON.stringify(n.literal??!0)}function kn(n){return n.expr!==void 0?`(${n.expr})`:JSON.stringify(n.literal??!0)}function Cn(n,e,t){let r=n.filter(a=>a.kind==="spread"),s=n.filter(a=>a.kind!=="spread").map(a=>`${mt(a.name)}: ${En(a)}`);e!=null&&s.push(`children: ${e}`);let o=`{ ${s.join(", ")} }`;return r.length>0?(t.add("mergeProps"),`mergeProps(${r.map(a=>a.expr).join(", ")}, ${o})`):o}function ft(n,e){return e?Y(n,e.line,e.column):n}function ht(n,e,t){return n.length===1?Z(n[0],e,t):`[${n.map(r=>Z(r,e,t)).join(", ")}]`}function pt(n,e,t,r,i,s){r.add("createMemo"),r.add("createComponent");let o=e.filter(d=>d.kind==="spread"),a=e.filter(d=>d.kind!=="spread"),l=a.map(d=>`get ${mt(d.name)}() { return ${kn(d)}; }`);t.length>0&&l.push(`get children() { return ${ht(t,r,i)}; }`);let c=`{ ${l.join(", ")} }`;o.length>0&&(r.add("mergeProps"),c=`mergeProps(${o.map(d=>d.expr).join(", ")}, ${c})`);let u={};for(let d of a)d.at&&(u[d.name]=[d.at.line,d.at.column]);return Object.keys(u).length&&(c=lt(c,u)),`createMemo((${s?`globalThis.${Oe}?.(${JSON.stringify(s.file)},${s.line},${s.column},${JSON.stringify(n)}), `:""}() => createComponent(${n}, ${c})))`}function In(n,e){let t=Ye(e.name),r=e.literal;return r===!0||r===void 0?`${n}.setAttribute(${JSON.stringify(t)}, "");`:r===!1||r===null?"":`${n}.setAttribute(${JSON.stringify(t)}, ${JSON.stringify(String(r))});`}var gt=!1;function Z(n,e,t){switch(n.kind){case"text":return JSON.stringify(n.value);case"expr":{if(!n.reactive)return`(${n.code})`;let r=`() => (${n.code})`;return n.at?Y(r,n.at.line,n.at.column):r}case"fragment":return n.children.length===0?"null":ht(n.children,e,t);case"component":return ft(pt(n.name,n.props,n.children,e,t,n.at),n.bindAt??n.at);case"control":{let r=wn[n.control]??n.control;return e.add(r),ft(pt(r,n.props,n.children,e,t),n.bindAt)}case"element":{if(t&&n.static&&!n.svg&&Ce(n)){e.add("templateNode");let a=`_tmpl$${t.length}`;t.push({id:a,html:K(n),tag:n.tag,svg:!1});let l=Ie(n);return l?`templateNode(${a}, ${JSON.stringify(n.tag)}, false, false, ${JSON.stringify(l)})`:`templateNode(${a}, ${JSON.stringify(n.tag)})`}if(t&&gt){let a=et(n);if(a){e.add("templateNode"),e.add("insert"),e.add("holeEnd"),e.add("holeContent"),e.add("holeScope");let l=`_tmpl$${t.length}`;t.push({id:l,html:a.html,tag:a.tag,svg:!1});let c=Ie(n),u=[`const _el$ = templateNode(${l}, ${JSON.stringify(a.tag)}, true${c?`, false, ${JSON.stringify(c)}`:""});`];for(let f of a.steps)u.push(`const ${f.ref} = ${f.expr};`);for(let f of a.holes)u.push(`insert(${f.parentRef}, holeScope(${f.startRef}, () => (${Z(f.node,e,t)})), ${f.endRef}, holeContent(${f.startRef}, ${f.endRef}));`);return u.push("return _el$;"),`(() => { ${u.join(" ")} })()`}}e.add("createNativeElement");let r=JSON.stringify(n.tag),i="_el$",s=[],o=n.at?`${r}, ${n.svg}, ${JSON.stringify(n.at)}`:n.svg?`${r}, true`:r;if(s.push(`const ${i} = createNativeElement(${o});`),n.props.length>0)if(!n.svg&&n.props.every(z))for(let a of n.props)s.push(In(i,a));else{e.add("spread");let a=n.svg?", isSVG: true":"";s.push(`spread({ element: ${i}, props: ${Cn(n.props,null,e)}${a} });`)}for(let a of n.children){e.add("insert");let l=Z(a,e,t),c=a.kind==="expr"&&a.reactive||a.kind==="component"||a.kind==="control";s.push(c?`insert(${i}, ${l}, null);`:`insert(${i}, ${l});`)}return s.push(`return ${i};`),`(() => { ${s.join(" ")} })()`}}}function ye(n,e){if(!e||e.length===0)return n;let t=new Map(e.map(r=>[r.id,JSON.stringify(r.html)]));return n.replace(/_tmpl\$\d+/g,r=>t.get(r)??r)}var F={name:"imperative",contract:$e,emit(n,e){let t=new Set,r=e?.templateClone!==!1?[]:void 0;return gt=e?.partialTemplates===!0,{code:Z(n,t,r),imports:Array.from(t),templates:r}}};var $n=n=>"components"in n;function yt(n,e){return n.replace(/\$(\d+)/g,(t,r)=>e[Number(r)]??t)}function Tn(n,e){return typeof e=="string"?{module:e,export:n}:e}function ve(n=[]){let e=new Map,t=[],r=[];for(let o of n){if(!$n(o)){r.push(o);continue}for(let[a,l]of Object.entries(o.components)){let c=Tn(a,l),u=e.get(a);if(u&&u.module!==c.module){let f=t.find(d=>d.name===a);f?f.modules.push(c.module):t.push({name:a,modules:[u.module,c.module]});continue}e.set(a,c)}}let i=new Map;return{resolve:o=>{if(i.has(o))return i.get(o);let a=e.get(o);if(!a)for(let l of r){let c=o.match(new RegExp(l.match.source,l.match.flags.replace("g","")));if(c){a={module:yt(l.module,c),export:l.export?yt(l.export,c):o};break}}return i.set(o,a),a},names:()=>[...e.keys()],conflicts:()=>t}}import{parseTemplate as On}from"@fluixi/template-parser";function Q(n){let e=n.split(/\r\n|\n|\r/),t=0;for(let i=0;i<e.length;i++)/[^ \t]/.test(e[i])&&(t=i);let r="";for(let i=0;i<e.length;i++){let s=e[i].replace(/\t/g," ");i!==0&&(s=s.replace(/^ +/,"")),i!==e.length-1&&(s=s.replace(/ +$/,"")),s&&(i!==t&&(s+=" "),r+=s)}return r}var vt=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]);function Ln(n){return n.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}function bt(n){return n.charAt(0).toUpperCase()+n.slice(1)}var Le=class{constructor(e,t,r,i){this.holes=e;this.used=t;this.sourceFile=r;this.positionAt=i}tagAt(e){let t=e.loc?.start;if(!this.sourceFile||!this.positionAt||t==null)return;let{line:r,column:i}=this.positionAt(t);return{file:this.sourceFile,line:r,column:i}}hole(e){return this.holes[e]??{code:"undefined",reactive:!1}}emit(e){let{code:t,imports:r,templates:i}=F.emit(e,{});for(let s of r)this.used.add(s);return ye(t,i)}lowerRoot(e){let t=this.lowerChildren(e);return t.length===1?t[0]:{kind:"fragment",children:t}}lowerChildren(e){let t=[];for(let r=0;r<e.length;r++){let i=e[r];if(i.kind==="Element"||i.kind==="Component"){let o=i.attributes.find(a=>a.kind==="IfDirective");if(o&&o.kind==="IfDirective"){let a=r+1;a<e.length&&this.isBlankText(e[a])&&a++;let l=e[a],c=l&&(l.kind==="Element"||l.kind==="Component")&&l.attributes.some(u=>u.kind==="ElseDirective");t.push(this.lowerIf(i,o.hole,c?l:null)),c&&(r=a);continue}if(i.attributes.some(a=>a.kind==="EachDirective")){t.push(this.lowerEach(i));continue}}let s=this.lowerNode(i);s&&t.push(s)}return t}isBlankText(e){return e.kind==="Text"&&!e.raw&&Q(e.value)===""}lowerNode(e){switch(e.kind){case"Text":{if(e.raw)return{kind:"text",value:e.value};let t=Q(e.value);return t?{kind:"text",value:t}:null}case"Comment":return null;case"Expression":{let t=this.hole(e.hole);return{kind:"expr",code:t.code,reactive:t.reactive,...t.at?{at:t.at}:{}}}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 t=e.attributes.find(i=>i.kind==="Attribute"&&i.name==="is");if(e.tag==="component"&&t&&t.value&&t.value.kind==="hole"){let i=e.attributes.filter(o=>o!==t),s=this.lowerComponent({...e,kind:"Component",tag:"Dynamic",tagHole:null,attributes:i});return s.props.unshift({name:"component",kind:"attr",expr:`() => (${this.hole(t.value.hole).code})`}),s}let r=this.tagAt(e);return{kind:"element",tag:e.tag,svg:e.namespace==="svg",props:this.lowerAttributes(e.attributes),children:this.lowerChildren(e.children),static:!1,...r?{at:r}:{}}}lowerComponent(e){let t=e.tagHole!=null?this.hole(e.tagHole).code:e.tag,r=this.lowerAttributes(e.attributes),{slots:i,rest:s}=this.partitionSlots(e.children);for(let[u,f]of i){let d=f.length===1?f[0]:{kind:"fragment",children:f},h={name:u,kind:"attr",expr:this.emit(d),jsxElement:!0},m=r.findIndex(y=>y.name===u);m>=0?r[m]=h:r.push(h)}let o=e.attributes.find(u=>u.kind==="LoadDirective"),a=o?ce(`load:${o.strategy}`,o.modifier):void 0,l=r.find(u=>u.at&&u.reactive)?.at,c=this.tagAt(e);return{kind:"component",name:t,props:r,children:this.lowerChildren(s),...c?{at:c}:{},...l?{bindAt:l}:{},...a?{load:a}:{}}}partitionSlots(e){let t=new Map,r=[];for(let i of e){if(i.kind==="Element"||i.kind==="Component"){let s=i.attributes.find(o=>o.kind==="Attribute"&&o.name==="slot");if(s&&s.value&&s.value.kind==="static"){let o={...i,attributes:i.attributes.filter(c=>c!==s)},a=o.kind==="Element"?this.lowerElement(o):this.lowerComponent(o),l=t.get(s.value.value)??[];l.push(a),t.set(s.value.value,l);continue}}r.push(i)}return{slots:t,rest:r}}lowerIf(e,t,r){let i=this.hole(t),s=[{name:"when",kind:"attr",expr:i.code,reactive:i.reactive,...i.at?{at:i.at}:{}}];if(r){let l=this.stripAndLower(r,c=>c.kind==="ElseDirective");s.push({name:"fallback",kind:"attr",expr:this.emit(l),jsxElement:!0})}let o=this.stripAndLower(e,l=>l.kind==="IfDirective"),a=this.tagAt(e);return{kind:"component",name:"Show",props:s,children:[o],...a?{at:a}:{},...i.at?{bindAt:i.at}:{}}}lowerEach(e){let t=e.attributes.find(c=>c.kind==="EachDirective");if(!t||t.kind!=="EachDirective")return this.lowerNode(e);let r=this.hole(t.hole),i=[{name:"each",kind:"attr",expr:r.code,reactive:r.reactive,...r.at?{at:r.at}:{}}];if(t.key){let c="static"in t.key?`(item) => item[${JSON.stringify(t.key.static)}]`:this.hole(t.key.hole).code;i.push({name:"by",kind:"attr",expr:c})}let s=this.itemArrow(e),o;if(s){let c={kind:"expr",code:s.body,reactive:s.bodyReactive},u=this.rebuildWithChildren(e,[c]);o=`(${s.params.join(", ")}) => (${this.emit(u)})`}else{let c=this.stripAndLower(e,u=>u.kind==="EachDirective");o=`() => (${this.emit(c)})`}let a=[{kind:"expr",code:o,reactive:!1}],l=this.tagAt(e);return{kind:"component",name:"For",props:i,children:a,...l?{at:l}:{},...r.at?{bindAt:r.at}:{}}}itemArrow(e){let t=e.children.filter(r=>!this.isBlankText(r));return t.length!==1||t[0].kind!=="Expression"?null:this.hole(t[0].hole).arrow??null}stripAndLower(e,t){let r={...e,attributes:e.attributes.filter(i=>!t(i))};return r.kind==="Element"?this.lowerElement(r):this.lowerComponent(r)}rebuildWithChildren(e,t){let r=this.lowerAttributes(e.attributes.filter(i=>i.kind!=="EachDirective"));if(e.kind==="Element"){let i=this.tagAt(e);return{kind:"element",tag:e.tag,svg:e.namespace==="svg",props:r,children:t,static:!1,...i?{at:i}:{}}}return{kind:"component",name:e.tag,props:r,children:t}}lowerAttributes(e){let t=[],r=[],i=!1,s,o=[],a=!1,l,c=[];for(let u of e)switch(u.kind){case"IfDirective":case"EachDirective":case"ElseDirective":break;case"Attribute":t.push(this.plainAttr(u));break;case"PropertyBinding":t.push({name:u.name,kind:"prop",expr:this.hole(u.hole).code,reactive:this.hole(u.hole).reactive,...this.hole(u.hole).at?{at:this.hole(u.hole).at}:{}});break;case"EventBinding":t.push(this.eventProp(u));break;case"RefBinding":t.push({name:"ref",kind:"ref",expr:this.hole(u.hole).code,reactive:this.hole(u.hole).reactive,...this.hole(u.hole).at?{at:this.hole(u.hole).at}:{}});break;case"Spread":t.push({name:"",kind:"spread",expr:this.hole(u.hole).code});break;case"ClassDirective":{let f=this.hole(u.hole);r.push(`${JSON.stringify(u.name)}: ${f.code}`),i=i||f.reactive,s??=f.at;break}case"StyleDirective":{let f=this.hole(u.hole);o.push(`${JSON.stringify(u.name)}: ${f.code}`),a=a||f.reactive,l??=f.at;break}case"BindDirective":t.push(...this.bindProps(u.name,this.hole(u.hole)));break;case"UseDirective":{let f=u.name??(u.hole!=null?this.hole(u.hole).code:null);if(!f)break;c.push(u.name!=null&&u.hole!=null?`[${f}, () => (${this.hole(u.hole).code})]`:`[${f}]`);break}}return r.length>0&&t.push({name:"classList",kind:"attr",expr:`{ ${r.join(", ")} }`,reactive:i,...s?{at:s}:{}}),o.length>0&&t.push({name:"style",kind:"attr",expr:`{ ${o.join(", ")} }`,reactive:a,...l?{at:l}:{}}),c.length>0&&t.push({name:"use",kind:"attr",expr:`[${c.join(", ")}]`}),t}eventProp(e){let t=e.name.toLowerCase(),r=this.hole(e.hole).code;if(!(e.syntax==="colon"||e.modifiers.length>0))return{name:"on"+bt(e.name),kind:"event",event:{name:t,delegated:vt.has(t)},expr:r};let s=this.wrapHandler(r,e.modifiers),o=this.eventOptions(e.modifiers),a=o?`[${s}, ${o}]`:s;return{name:"on:"+t,kind:"attr",expr:a}}wrapHandler(e,t){let r=t.includes("self")?"if (e.target !== e.currentTarget) return; ":"",i=[];return t.includes("prevent")&&i.push("e.preventDefault();"),t.includes("stop")&&i.push("e.stopPropagation();"),!r&&i.length===0?e:`(e) => { ${r}${i.join(" ")} return (${e})(e); }`}eventOptions(e){let t=[];return e.includes("capture")&&t.push("capture: true"),e.includes("once")&&t.push("once: true"),e.includes("passive")&&t.push("passive: true"),t.length?`{ ${t.join(", ")} }`:null}bindProps(e,t){let r=t.code,i=e==="checked",s=i?"change":"input",o=i?"checked":"value";this.used.add("bindPair");let a=`bindPair(${r})`;return[{name:e,kind:"attr",expr:`${a}[0]()`,reactive:!0,directive:`bind:${e}`,...t.at?{at:t.at}:{}},{name:"on"+bt(s),kind:"event",event:{name:s,delegated:vt.has(s)},expr:`(e) => ${a}[1](e.target.${o})`}]}plainAttr(e){let t=e.value,r=e.name;e.name==="class"?r=t&&t.kind==="hole"&&this.hole(t.hole).object?"classList":"className":e.name==="html"&&(r="innerHTML");let s={name:r,kind:"attr"};if(t==null)return s.literal=!0,s;if(t.kind==="static")return s.literal=t.value,s;if(t.kind==="hole"){let c=this.hole(t.hole);return s.expr=c.code,s.reactive=c.reactive,c.at&&(s.at=c.at),s}let o=!1,a,l=t.parts.map(c=>{if("text"in c)return Ln(c.text);let u=this.hole(c.hole);return o=o||u.reactive,a??=u.at,"${"+u.code+"}"}).join("");return s.expr="`"+l+"`",s.reactive=o,a&&(s.at=a),s}};function Nt(n,e,t,r={}){let{root:i}=On(n,{svg:r.svg});return new Le(e,t,r.sourceFile,r.positionAt).lowerRoot(i.children)}function xt(n,e,t={}){let r=new Set,i=Nt(n,[...e],r,{svg:t.svg,...t.sourceFile?{sourceFile:t.sourceFile}:{},...t.positionAt?{positionAt:t.positionAt}:{}});_(i),ue(i,{resolver:ve(t.resolve??[]),modules:{controlFlowModule:t.controlFlowModule??"@fluixi/dom",coreModule:t.coreModule??"@fluixi/core",routerModule:t.routerModule??"@fluixi/core/router"},strategyFor:l=>l.load}),fe(i);let{code:s,imports:o,templates:a}=F.emit(i,{templateClone:t.templateClone,partialTemplates:t.partialTemplates});for(let l of o)r.add(l);return t.hoistTemplates?{code:s,imports:[...r],ir:i,templates:a}:{code:ye(s,a),imports:[...r],ir:i}}var Pn="children";function B(n){switch(n.kind){case"call":return!0;case"member":return n.property!==Pn;case"compound":return n.parts.some(B);case"opaque":return!1}}var Mn=new Set(["CallExpression","OptionalCallExpression"]),An=new Set(["MemberExpression","OptionalMemberExpression"]);function H(n){if(!n)return{kind:"opaque"};if(Mn.has(n.type))return{kind:"call"};if(An.has(n.type)){let e=n.property;return{kind:"member",property:!(n.computed===!0)&&e?.type==="Identifier"?e.name:null}}return n.type==="ConditionalExpression"?{kind:"compound",parts:[n.test,n.consequent,n.alternate].map(ee)}:n.type==="LogicalExpression"||n.type==="BinaryExpression"?{kind:"compound",parts:[n.left,n.right].map(ee)}:n.type==="TemplateLiteral"?{kind:"compound",parts:n.expressions.map(ee)}:n.type==="ObjectExpression"?{kind:"compound",parts:n.properties.filter(t=>(t.type==="ObjectProperty"||t.type==="Property")&&t.computed!==!0).map(t=>ee(t.value))}:n.type==="ArrayExpression"?{kind:"compound",parts:n.elements.filter(t=>t!=null&&t.type!=="SpreadElement").map(ee)}:{kind:"opaque"}}var ee=n=>H(n);var Dn=new Set(["svg","path","circle","rect","line","polygon","polyline","ellipse","g","defs","clipPath","text"]),jn=/^on[A-Z]/,_n=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]),Rt=n=>B(H(n)),te=(n,e)=>{if(!e.sourceFile)return;let t=n.loc?.start;return t?{line:t.line,column:t.column}:void 0};function ne(n){if(n.type==="StringLiteral"||n.type==="NumericLiteral"||n.type==="BooleanLiteral"||n.type==="Literal"&&(typeof n.value=="string"||typeof n.value=="number"||typeof n.value=="boolean"))return n.value}var Pe=n=>!!n&&typeof ne(n)=="string";function Jn(n,e){return n.type==="JSXIdentifier"?{tag:n.name,component:n.name[0]!==n.name[0].toLowerCase()}:n.type==="JSXMemberExpression"?{tag:e.code(n),component:!0}:n.type==="JSXNamespacedName"?{tag:`${n.namespace.name}:${n.name.name}`,component:!1}:{tag:"div",component:!1}}function Me(n){return n.type==="JSXIdentifier"?n.name==="class"?"className":n.name:n.type==="JSXNamespacedName"?`${n.namespace.name}:${n.name.name}`:"unknown"}function Fn(n,e){let t=Me(n.name),r=jn.test(t),i=r||t.startsWith("on:")||t==="ref",o={name:t,kind:r?"event":"attr"};if(r){let l=t.slice(2).toLowerCase();o.event={name:l,delegated:_n.has(l)}}let a=n.value;if(a==null)return o.literal=!0,o.at=te(n,e),o;if(Pe(a))return o.literal=ne(a),o.at=te(a,e),o;if(a.type==="JSXExpressionContainer"&&a.expression?.type!=="JSXEmptyExpression"){let l=a.expression,c=ne(l);return c!==void 0?(o.literal=c,o.at=te(l,e),o):(o.expr=e.code(l),o.reactive=i?!1:Rt(l),o.at=te(l,e),(l.type==="JSXElement"||l.type==="JSXFragment")&&(o.jsxElement=!0),o)}return o.literal=!0,o}function St(n,e){let t=n.value;return t==null?null:Pe(t)?JSON.stringify(ne(t)):t.type==="JSXExpressionContainer"&&t.expression?.type!=="JSXEmptyExpression"?e.code(t.expression):null}function Bn(n,e){let t=[],r=[];for(let i of n){if(i.type==="JSXSpreadAttribute"){t.push({name:"",kind:"spread",expr:e.code(i.argument)});continue}if(i.type!=="JSXAttribute"||Re(Me(i.name)))continue;let s=i.name.type==="JSXNamespacedName"?i.name.namespace.name:null;if(s==="use"){let o=i.name.name.name;e.used.add(o);let a=St(i,e);r.push(a!=null?`[${o}, () => (${a})]`:`[${o}]`);continue}if(s==="oncapture"){let o=i.name.name.name.toLowerCase(),a=St(i,e)??"undefined";t.push({name:"on:"+o,kind:"attr",expr:`[${a}, { capture: true }]`});continue}t.push(Fn(i,e))}return r.length>0&&t.push({name:"use",kind:"attr",expr:`[${r.join(", ")}]`}),t}function wt(n,e){let t=[];for(let r of n)if(r.type==="JSXText"){let i=Q(r.value);i&&t.push({kind:"text",value:i})}else if(r.type==="JSXExpressionContainer"){if(r.expression?.type!=="JSXEmptyExpression"){let i=r.expression,s=Rt(i);t.push({kind:"expr",code:e.code(i),reactive:s,...s?{at:te(i,e)}:{}})}}else r.type==="JSXElement"||r.type==="JSXFragment"?t.push(Et(r,e)):r.type==="JSXSpreadChild"&&t.push({kind:"expr",code:e.code(r.expression),reactive:!1});return t}function Hn(n){for(let e of n){if(e.type!=="JSXAttribute")continue;let t=Me(e.name);if(Re(t)){if(e.value&&!Pe(e.value))throw new O(`'${t}' needs a literal value, not an expression — the strategy is compile-time.`);return ce(t,e.value?ne(e.value):null)}}}function Et(n,e){if(n.type==="JSXFragment")return{kind:"fragment",children:wt(n.children,e)};let{tag:t,component:r}=Jn(n.openingElement.name,e),i=Bn(n.openingElement.attributes,e),s=wt(n.children,e),o=e.sourceFile&&n.loc?.start?{file:e.sourceFile,line:n.loc.start.line,column:n.loc.start.column}:void 0;if(r){let a=Hn(n.openingElement.attributes);return{kind:"component",name:t,props:i,children:s,...a?{load:a}:{},...o?{at:o}:{}}}return{kind:"element",tag:t,svg:Dn.has(t),props:i,children:s,static:!1,...o?{at:o}:{}}}function kt(n,e){let t=Et(n,e);return _(t),t}function L(n,e){if(n)switch(n.type){case"Identifier":e.add(n.name);return;case"ObjectPattern":for(let t of n.properties)t.type==="RestElement"?L(t.argument,e):L(t.value,e);return;case"ArrayPattern":for(let t of n.elements)L(t,e);return;case"AssignmentPattern":L(n.left,e);return;case"RestElement":L(n.argument,e);return}}function Ct(n,e){switch(n.type){case"ImportDeclaration":for(let t of n.specifiers)L(t.local,e);return;case"VariableDeclaration":for(let t of n.declarations)L(t.id,e);return;case"FunctionDeclaration":case"ClassDeclaration":L(n.id,e);return;case"ExportNamedDeclaration":case"ExportDefaultDeclaration":n.declaration&&Ct(n.declaration,e);return}}function Ae(n){let e=new Set;for(let t of n.body)Ct(t,e);return e}import{parse as pi}from"@babel/parser";function E(n,e){if(n)switch(n.type){case"Identifier":e.add(n.name);return;case"ObjectPattern":for(let t of n.properties)t.type==="RestElement"?E(t.argument,e):E(t.value,e);return;case"ArrayPattern":for(let t of n.elements)E(t,e);return;case"AssignmentPattern":E(n.left,e);return;case"RestElement":E(n.argument,e);return}}function De(n){switch(n.type){case"StringLiteral":case"NumericLiteral":case"BooleanLiteral":case"NullLiteral":case"BigIntLiteral":case"RegExpLiteral":case"Identifier":return!0;case"Literal":return!0;case"TemplateLiteral":return n.expressions.every(De);case"UnaryExpression":return De(n.argument);case"MemberExpression":return!1;default:return!1}}function be(n,e){if(!(!n||typeof n!="object")){e(n);for(let t of Object.keys(n)){if(t==="loc"||t==="range"||t==="leadingComments"||t==="trailingComments")continue;let r=n[t];if(Array.isArray(r))for(let i of r)i&&typeof i=="object"&&be(i,e);else r&&typeof r=="object"&&typeof r.type=="string"&&be(r,e)}}}function Un(n){let e=new Set;return be(n,t=>{if(t.type==="AssignmentExpression")E(t.left,e);else if(t.type==="UpdateExpression"){let r=t.argument;r?.type==="Identifier"&&e.add(r.name)}}),e}function qn(n,e){let t=new Set,r=i=>{let s=new Set;E(i,s);for(let o of s)e.has(o)&&t.add(o)};return be(n,i=>{switch(i.type){case"VariableDeclarator":r(i.id);return;case"FunctionDeclaration":case"FunctionExpression":case"ArrowFunctionExpression":r(i.id);for(let s of i.params??[])r(s);return;case"CatchClause":r(i.param);return;case"ClassDeclaration":case"ClassExpression":r(i.id);return}}),t}function It(n,e,t){for(let r of n.properties??[]){if(r.type==="RestElement"){let u=r.argument;if(u?.type!=="Identifier"||e.length>0){let f=new Set;E(u,f);for(let d of f)t.bails.push({name:d,reason:"rest"});continue}t.rest={name:u.name,keys:[]};continue}if(r.computed){let u=new Set;E(r.value,u);for(let f of u)t.bails.push({name:f,reason:"computed"});continue}let i=r.key,s=i.type==="Identifier"?i.name:i.value,o=r.value,a;o.type==="AssignmentPattern"&&(a=o.right,o=o.left);let l=[...e,s];if(o.type==="Identifier"){if(a&&!De(a)){t.bails.push({name:o.name,reason:"unsafe-default"});continue}t.reads.push({name:o.name,path:l,...a?{fallback:a}:{}});continue}if(o.type==="ObjectPattern"){if(a){let u=new Set;E(o,u);for(let f of u)t.bails.push({name:f,reason:"unsafe-default"});continue}It(o,l,t);continue}let c=new Set;E(o,c);for(let u of c)t.bails.push({name:u,reason:"computed"})}}function $t(n,e){let t={reads:[],bails:[]};if(n?.type!=="ObjectPattern"||(It(n,[],t),t.rest&&(e?.type!=="BlockStatement"?(t.bails.push({name:t.rest.name,reason:"rest"}),delete t.rest):t.rest.keys=(n.properties??[]).filter(a=>a.type!=="RestElement"&&!a.computed).map(a=>{let l=a.key;return l.type==="Identifier"?l.name:l.value})),t.reads.length===0&&!t.rest))return t;let r=new Set(t.reads.map(a=>a.name));t.rest&&r.add(t.rest.name);let i=Un(e),s=qn(e,r),o=[];for(let a of t.reads)i.has(a.name)?t.bails.push({name:a.name,reason:"reassigned"}):s.has(a.name)?t.bails.push({name:a.name,reason:"shadowed"}):o.push(a);return t.reads=o,t.rest&&i.has(t.rest.name)?(t.bails.push({name:t.rest.name,reason:"reassigned"}),delete t.rest):t.rest&&s.has(t.rest.name)&&(t.bails.push({name:t.rest.name,reason:"shadowed"}),delete t.rest),t}function Tt(n){switch(n){case"rest":return"this rest element cannot be served by splitProps, and copying the props into a plain object would lose the getters";case"computed":return"the property is not known until it runs";case"reassigned":return"the binding is assigned to, and props are read-only";case"shadowed":return"an inner scope binds the same name";case"unsafe-default":return"the default would have to run again on every read"}}function re(n,e,t=null){if(!(!n||typeof n!="object"||typeof n.type!="string")&&!n.type.startsWith("TS")&&e(n,t)!==!1)for(let r of Object.keys(n)){if(r==="loc"||r==="leadingComments"||r==="trailingComments")continue;let i=n[r];if(Array.isArray(i))for(let s of i)re(s,e,n);else i&&typeof i=="object"&&re(i,e,n)}}function Ot(n){return!!n&&n[0]>="A"&&n[0]<="Z"}function Xn(n){let e=[];return re(n,t=>{if(t.type==="FunctionDeclaration"&&Ot(t.id?.name)){e.push(t);return}if(t.type==="VariableDeclarator"&&Ot(t.id?.name)){let r=t.init;r&&(r.type==="ArrowFunctionExpression"||r.type==="FunctionExpression")&&e.push(r)}}),e}function Vn(n){let e=new Set;return re(n,t=>{t.type==="Identifier"&&e.add(t.name)}),e}function Wn(n,e){if(!e)return!0;switch(e.type){case"MemberExpression":case"OptionalMemberExpression":return!(e.property===n&&!e.computed);case"ObjectProperty":case"ObjectMethod":case"ClassProperty":case"ClassMethod":return!(e.key===n&&!e.computed);case"LabeledStatement":case"BreakStatement":case"ContinueStatement":return e.label!==n;case"ImportSpecifier":case"ExportSpecifier":return!1;default:return!0}}function Lt(n,e,t={}){let r=[],i=[],s=new Set;for(let o of Xn(n)){let a=o.params?.[0];if(a?.type!=="ObjectPattern")continue;let l=$t(a,o.body);for(let m of l.bails)i.push({name:m.name,reason:m.reason,message:Tt(m.reason),start:a.start});if(l.bails.length>0||l.reads.length===0&&!l.rest)continue;let c=Vn(o),u=t.parameterName??"props";for(;c.has(u);)u=`_${u}`;let f=new Map;for(let m of l.reads){let y=`${u}.${m.path.join(".")}`,S=m.fallback;f.set(m.name,S?`(${y} === undefined ? ${e.slice(S.start,S.end)} : ${y})`:y)}let d=a.typeAnnotation;if(r.push({start:a.start,end:d?.start??a.end,code:u}),l.rest){let m=l.rest.keys.map(S=>JSON.stringify(S)).join(", "),y=o.body;r.push({start:y.start+1,end:y.start+1,code:`
11
+ const [, ${l.rest.name}] = splitProps(${u}, [${m}]);`}),s.add("splitProps")}let h=[];re(o.body,(m,y)=>{if(m.type!=="Identifier")return;let S=f.get(m.name);if(!S)return;let x=y?.type==="ObjectProperty"&&y.shorthand&&y.value===m;if(!x&&!Wn(m,y))return;let v=l.reads.find(I=>I.name===m.name).path;h.push({node:m,parent:x?y:null,text:S,property:v[v.length-1]})});for(let m of h)m.parent?r.push({start:m.parent.start,end:m.parent.end,code:`${m.node.name}: ${m.text}`}):r.push({start:m.node.start,end:m.node.end,code:m.text}),zn(m.node,u,m.property)}return{edits:r,diagnostics:i,used:s}}function zn(n,e,t){n.type="MemberExpression",n.computed=!1,n.optional=!1,n.object={type:"Identifier",name:e,start:n.start,end:n.start},n.property={type:"Identifier",name:t,start:n.end,end:n.end},delete n.name}function je(n,e){if(!(!n||typeof n!="object"||typeof n.type!="string")){e(n);for(let t of Object.keys(n)){if(t==="loc"||t==="leadingComments"||t==="trailingComments")continue;let r=n[t];if(Array.isArray(r))for(let i of r)je(i,e);else r&&typeof r=="object"&&je(r,e)}}}function Pt(n){let e=[],t=[],r=new Map,i=new Set,{shadowed:s}=ge(n);return je(n,o=>{if(o.type!=="CallExpression")return;let a=o.callee;if(a?.type!=="Identifier")return;let l=a.name;if(!he(l))return;if(s.has(l)){i.has(l)||(i.add(l),t.push({name:l,message:`${l} is reserved for the compiler, and this module binds it. The call keeps your binding's meaning; rename it to use the intrinsic.`,start:a.start}));return}let c=C[l];e.push({start:a.start,end:a.end,code:c.export});let u=r.get(c.module)??new Set;u.add(c.export),r.set(c.module,u)}),{edits:e,diagnostics:t,imports:r}}function Mt(n,e){let t=[];for(let[r,i]of[...n.imports].sort(([s],[o])=>s.localeCompare(o))){let s=[...i].filter(o=>!e.has(o)).sort();s.length&&t.push(`import { ${s.join(", ")} } from ${JSON.stringify(r)};`)}return t.length?`${t.join(`
12
12
  `)}
13
- `:""}var In=new Set(B),$n=new Set(F),Tn=new Set(P),On=new Set(["createMemo","createEffect","createRenderEffect","createRoot","createSignal","onCleanup","batch","untrack"]);function pe(n,e,t=null,r=""){if(!(!n||typeof n!="object")){if(Array.isArray(n)){for(let i of n)pe(i,e,t,r);return}typeof n.type=="string"&&e(n,t,r);for(let i of Object.keys(n))i==="loc"||i==="leadingComments"||i==="trailingComments"||pe(n[i],e,typeof n.type=="string"?n:t,i)}}var Ee=n=>n.type==="JSXElement"||n.type==="JSXFragment";function Ln(n,e,t){return Ee(n)?!(e&&Ee(e)&&t==="children"):!1}function Pn(n,e){return n.type==="TaggedTemplateExpression"&&n.tag?.type==="Identifier"&&(n.tag.name===e||n.tag.name==="svg")}function bt(n){return n.filter(e=>!n.some(t=>t!==e&&t.start<=e.start&&t.end>=e.end&&t.end-t.start>e.end-e.start))}function de(n,e,t,r){let i=bt(r.filter(o=>o.start>=e&&o.end<=t)).sort((o,a)=>a.start-o.start),s=n.slice(e,t);for(let o of i)s=s.slice(0,o.start-e)+o.code+s.slice(o.end-e);return s}function Mn(n,e,t){let r={code:de(n,e.start,e.end,t),reactive:D(A(e))};return e.type==="ArrowFunctionExpression"&&e.body?.type!=="BlockStatement"&&(r.arrow={params:e.params.map(i=>de(n,i.start,i.end,t)),body:de(n,e.body.start,e.body.end,t),bodyReactive:D(A(e.body))}),e.type==="ObjectExpression"&&(r.object=!0),r}function wt(n,e,t){if(!e||e.length===0)return n;let r=new Map;for(let i of e){let s=`${i.svg?"svg:":""}${i.html}`,o=t.get(s);o||(o=`_fxTmpl$${t.size}`,t.set(s,o)),r.set(i.id,o)}return n.replace(/_tmpl\$\d+/g,i=>r.get(i)??i)}function Ce(n,e){if(n.kind==="component"&&n.load&&!n.source&&J(n.load)&&(e.ignoredLoad.has(n.name)||e.ignoredLoad.set(n.name,n.load)),n.kind==="component"&&n.source){let t=n.source;t.origin==="builtin"?e.builtins.add(n.name):J(t.loading)&&!e.resolved.has(n.name)?e.deferred.set(n.name,t):(e.deferred.delete(n.name),e.resolved.set(n.name,t))}if("props"in n&&n.props)for(let t of n.props)t.kind==="event"&&t.event?.delegated&&e.delegatedEvents.add(t.event.name);if("children"in n&&n.children)for(let t of n.children)Ce(t,e)}function Dn(n,e){for(let t of n.body??[])if(t.type==="ImportDeclaration")for(let r of t.specifiers??[]){if(r.local?.name!==e)continue;if(r.type==="ImportNamespaceSpecifier")return;let i=r.type==="ImportDefaultSpecifier"?"default":r.imported?.name??r.imported?.value;return{module:t.source.value,export:i,declaration:t,specifier:r}}}function An(n,e){for(let t of n.body??[])if(t.type==="ImportDeclaration"){for(let r of t.specifiers??[])if(r.type==="ImportNamespaceSpecifier"&&r.local?.name===e)return!0}return!1}function jn(n,e,t){let r=!1;return pe(n,i=>{r||i.type!=="Identifier"||i.name!==e||i.start===t.local?.start&&i.end===t.local?.end||(r=!0)}),r}function _n(n){let e=[`kind: ${JSON.stringify(n.kind)}`];return n.kind==="visible"&&n.rootMargin&&e.push(`rootMargin: ${JSON.stringify(n.rootMargin)}`),n.kind==="interaction"&&e.push(`events: ${JSON.stringify(n.events)}`),n.kind==="media"&&e.push(`query: ${JSON.stringify(n.query)}`),`{ ${e.join(", ")} }`}function Jn(n){let e=[];return n.quasi.quasis.forEach((t,r)=>{if(e.push({kind:"static",text:t.value.cooked??t.value.raw,start:t.start}),r<n.quasi.expressions.length){let i=n.quasi.expressions[r];e.push({kind:"hole",index:r,start:i.start,end:i.end})}}),e}function ui(n,e,t={}){let r=t.litTag??"html",i=t.format??"both",s=i!=="jsx",o=i!=="lit",a=s&&(n.includes(`${r}\``)||n.includes("svg`")),l=t.intrinsics!==!1&&ht(n);if(!a&&!(o&&n.includes("<"))&&!l)return null;let c=Cn(n,{sourceType:"module",plugins:["jsx","typescript"],errorRecovery:!0}),u=[];pe(c.program,(f,N,v)=>{(s&&Pn(f,r)||o&&Ln(f,N,v))&&u.push(f)});let d=t.propsDestructure===!1?{edits:[],diagnostics:[],used:new Set}:pt(c.program,n,{runtimeModule:t.runtimeModule}),p=t.intrinsics===!1?{edits:[],diagnostics:[],imports:new Map}:xt(c.program);if(u.length===0&&d.edits.length===0&&p.edits.length===0&&p.diagnostics.length===0&&d.diagnostics.length===0)return null;u.sort((f,N)=>N.start-f.start||f.end-N.end);let h=new Set(d.used),g={builtins:new Set,resolved:new Map,deferred:new Map,delegatedEvents:new Set,ignoredLoad:new Map,unresolved:new Set,declared:yt(c.program)},x=new Map,S=[...d.edits,...p.edits];for(let f of u){let N=u.some(b=>b!==f&&b.start<=f.start&&b.end>=f.end&&b.end-b.start>f.end-f.start);if(Ee(f)){S.push({start:f.start,end:f.end,code:Bn(n,f,S,N,h,g,x,t)});continue}let v=f.quasi.expressions.map(b=>Mn(n,b,S)),k=tt(Jn(f),v,{...t,hoistTemplates:!0,templateClone:t.templateClone??!0,partialTemplates:N?!1:t.partialTemplates??!0,svg:f.tag.name==="svg"});for(let b of k.imports)h.add(b);Ce(k.ir,g),S.push({start:f.start,end:f.end,code:wt(k.code,k.templates,x)})}let R=new ee(n);for(let f of bt(S))f.start===f.end?R.appendLeft(f.start,f.code):R.overwrite(f.start,f.end,f.code);let I=Re(c.program),G=new Map;for(let[f]of g.ignoredLoad)I.has(f)||G.set(f,"unsupplied");for(let[f,N]of[...g.ignoredLoad]){if(!I.has(f))continue;let v=Dn(c.program,f);if(!v){G.set(f,An(c.program,f)?"namespace":"local");continue}if(jn(c.program,f,v.specifier)){G.set(f,"value");continue}let k=v.declaration.specifiers.filter(Y=>Y!==v.specifier),b=k.length===0&&n[v.declaration.end]===`
14
- `?v.declaration.end+1:v.declaration.end;R.overwrite(v.declaration.start,b,k.length===0?"":`import { ${k.map(Y=>n.slice(Y.start,Y.end)).join(", ")} } from ${JSON.stringify(v.declaration.source.value)};`),g.deferred.set(f,{module:v.module,export:v.export,origin:"rule",loading:N}),I.delete(f),g.ignoredLoad.delete(f)}let Ie=Fn(h,g,x,I,t);Ie&&R.prepend(Ie);let $e=Nt(p,I);$e&&R.prepend($e);let Rt={value:f=>`${f} is used as a value here, not only as a tag, so its import has to stay — deferring would hand those references a lazy wrapper instead of the component. Defer it at the point it is rendered, or keep it eager.`,namespace:f=>`${f} came in through a namespace import, which has no single export to defer. Import ${f} by name.`,local:f=>`${f} is declared in this file, so there is no module to load separately. Move it to its own file and import it.`,unsupplied:f=>`nothing supplies ${f}, so there is no import to defer. Import it, or add a \`resolve\` rule for it.`},Te=[...g.ignoredLoad].map(([f,N])=>({name:f,strategy:N,message:`load:${N.kind} has no effect on <${f}>: ${Rt[G.get(f)??"unsupplied"](f)}`})),Oe=[...g.unresolved].map(f=>({name:f,message:`<${f}> is not defined: nothing imports it and no \`resolve\` rule supplies it. This compiles to a reference to a name that does not exist, so the component renders nothing. Import ${f}, or add a \`resolve\` rule for it.`}));return{code:R.toString(),map:R.generateMap({source:e,includeContent:!0,hires:!0}),...Te.length?{loadDiagnostics:Te}:{},...Oe.length?{unresolvedDiagnostics:Oe}:{},...d.diagnostics.length?{propsDiagnostics:d.diagnostics}:{},...p.diagnostics.length?{intrinsicDiagnostics:p.diagnostics}:{}}}function Bn(n,e,t,r,i,s,o,a){let l=ot(e,{code:d=>de(n,d.start,d.end,t),used:i});L(l);let c=re(l,{resolver:ce(a.resolve??[]),isBound:d=>s.declared.has(d),modules:{controlFlowModule:a.controlFlowModule??a.runtimeModule??"@fluixi/dom",coreModule:a.coreModule??"@fluixi/core",routerModule:a.routerModule??"@fluixi/core/router"},strategyFor:d=>d.load});for(let d of c.unresolved)s.unresolved.add(d);se(l);let u=M.emit(l,{templateClone:a.templateClone??!0,partialTemplates:r?!1:a.partialTemplates??!0});for(let d of u.imports)i.add(d);return Ce(l,s),wt(u.code,u.templates,o)}function Fn(n,e,t,r,i){let s=i.runtimeModule??"@fluixi/dom",o=i.coreModule??"@fluixi/core",a=new Map,l=(p,m)=>a.set(p,[...a.get(p)??[],m]),c=new Set(n);for(let p of e.builtins)c.add(p);e.delegatedEvents.size>0&&c.add("delegateEvents");for(let p of[...c].sort())r.has(p)||(On.has(p)?l(i.reactiveModule??"@fluixi/reactive/signal",p):Tn.has(p)?l(i.routerModule??"@fluixi/core/router",p):$n.has(p)?l(o,p):In.has(p)?l(i.controlFlowModule??s,p):l(s,p));for(let[p,m]of e.resolved)r.has(p)||l(m.module,m.export==="default"?`default as ${p}`:p===m.export?p:`${m.export} as ${p}`);let u=[];for(let[p,m]of a)u.push(`import { ${m.join(", ")} } from ${JSON.stringify(p)};`);let d=[...e.deferred].filter(([p])=>!r.has(p));if(d.length>0){r.has("deferred")||u.push(`import { deferred } from ${JSON.stringify(o)};`);for(let[p,m]of d)u.push(`const ${p} = deferred(() => import(${JSON.stringify(m.module)}), { strategy: ${_n(m.loading)}, export: ${JSON.stringify(m.export)} });`)}for(let[p,m]of t)u.push(`const ${m} = ${JSON.stringify(p.startsWith("svg:")?p.slice(4):p)};`);return e.delegatedEvents.size>0&&u.push(`delegateEvents(${JSON.stringify([...e.delegatedEvents])});`),u.length>0?u.join(`
13
+ `:""}var Gn=new Set(V),Yn=new Set(W),Zn=new Set(J),Qn=new Set(["createMemo","createEffect","createRenderEffect","createRoot","createSignal","onCleanup","batch","untrack"]);function xe(n,e,t=null,r=""){if(!(!n||typeof n!="object")){if(Array.isArray(n)){for(let i of n)xe(i,e,t,r);return}typeof n.type=="string"&&e(n,t,r);for(let i of Object.keys(n))i==="loc"||i==="leadingComments"||i==="trailingComments"||xe(n[i],e,typeof n.type=="string"?n:t,i)}}var _e=n=>n.type==="JSXElement"||n.type==="JSXFragment";function er(n,e,t){return _e(n)?!(e&&_e(e)&&t==="children"):!1}function tr(n,e){return n.type==="TaggedTemplateExpression"&&n.tag?.type==="Identifier"&&(n.tag.name===e||n.tag.name==="svg")}function At(n){return n.filter(e=>!n.some(t=>t!==e&&t.start<=e.start&&t.end>=e.end&&t.end-t.start>e.end-e.start&&!(e.start===e.end&&(e.start===t.start||e.start===t.end))))}function Ne(n,e,t,r){let i=At(r.filter(o=>o.start>=e&&o.end<=t)).sort((o,a)=>a.start-o.start),s=n.slice(e,t);for(let o of i)s=s.slice(0,o.start-e)+o.code+s.slice(o.end-e);return s}function nr(n,e,t,r=!1){let i=r?e.loc?.start:void 0,s={code:Ne(n,e.start,e.end,t),reactive:B(H(e)),...i?{at:{line:i.line,column:i.column}}:{}};return e.type==="ArrowFunctionExpression"&&e.body?.type!=="BlockStatement"&&(s.arrow={params:e.params.map(o=>Ne(n,o.start,o.end,t)),body:Ne(n,e.body.start,e.body.end,t),bodyReactive:B(H(e.body))}),e.type==="ObjectExpression"&&(s.object=!0),s}function Dt(n,e,t){if(!e||e.length===0)return n;let r=new Map;for(let i of e){let s=`${i.svg?"svg:":""}${i.html}`,o=t.get(s);o||(o=`_fxTmpl$${t.size}`,t.set(s,o)),r.set(i.id,o)}return n.replace(/_tmpl\$\d+/g,i=>r.get(i)??i)}function Je(n,e){if(n.kind==="component"&&n.load&&!n.source&&X(n.load)&&(e.ignoredLoad.has(n.name)||e.ignoredLoad.set(n.name,n.load)),n.kind==="component"&&n.source){let t=n.source;t.origin==="builtin"?e.builtins.add(n.name):X(t.loading)&&!e.resolved.has(n.name)?e.deferred.set(n.name,t):(e.deferred.delete(n.name),e.resolved.set(n.name,t))}if("props"in n&&n.props)for(let t of n.props)t.kind==="event"&&t.event?.delegated&&e.delegatedEvents.add(t.event.name);if("children"in n&&n.children)for(let t of n.children)Je(t,e)}function rr(n,e){for(let t of n.body??[])if(t.type==="ImportDeclaration")for(let r of t.specifiers??[]){if(r.local?.name!==e)continue;if(r.type==="ImportNamespaceSpecifier")return;let i=r.type==="ImportDefaultSpecifier"?"default":r.imported?.name??r.imported?.value;return{module:t.source.value,export:i,declaration:t,specifier:r}}}function ir(n,e){for(let t of n.body??[])if(t.type==="ImportDeclaration"){for(let r of t.specifiers??[])if(r.type==="ImportNamespaceSpecifier"&&r.local?.name===e)return!0}return!1}function sr(n,e,t){let r=!1;return xe(n,i=>{r||i.type!=="Identifier"||i.name!==e||i.start===t.local?.start&&i.end===t.local?.end||(r=!0)}),r}function or(n){let e=[`kind: ${JSON.stringify(n.kind)}`];return n.kind==="visible"&&n.rootMargin&&e.push(`rootMargin: ${JSON.stringify(n.rootMargin)}`),n.kind==="interaction"&&e.push(`events: ${JSON.stringify(n.events)}`),n.kind==="media"&&e.push(`query: ${JSON.stringify(n.query)}`),`{ ${e.join(", ")} }`}function ar(n){let e=[0];for(let t=0;t<n.length;t++)n.charCodeAt(t)===10&&e.push(t+1);return t=>{let r=0,i=e.length-1;for(;r<i;){let s=r+i+1>>1;e[s]<=t?r=s:i=s-1}return{line:r+1,column:t-e[r]}}}function lr(n){let e=[];return n.quasi.quasis.forEach((t,r)=>{if(e.push({kind:"static",text:t.value.cooked??t.value.raw,start:t.start}),r<n.quasi.expressions.length){let i=n.quasi.expressions[r];e.push({kind:"hole",index:r,start:i.start,end:i.end})}}),e}function cr(n,e){if(!e)return n;let t=e.endsWith("/")?e:`${e}/`;return n.startsWith(t)?n.slice(t.length):n}function Ji(n,e,t={}){let r=t.litTag??"html",i=t.format??"both",s=i!=="jsx",o=i!=="lit",a=s&&(n.includes(`${r}\``)||n.includes("svg`")),l=t.intrinsics!==!1&&it(n),c=t.sourceLocations===!0&&ut(n),u=cr(e,t.sourceRoot);if(!a&&!(o&&n.includes("<"))&&!l&&!c)return null;let f=Kn(n,{sourceType:"module",plugins:["jsx","typescript"],errorRecovery:!0}),d=[];xe(f.program,(p,w,N)=>{(s&&tr(p,r)||o&&er(p,w,N))&&d.push(p)});let h=t.propsDestructure===!1?{edits:[],diagnostics:[],used:new Set}:Lt(f.program,n,{runtimeModule:t.runtimeModule}),m=t.intrinsics===!1?{edits:[],diagnostics:[],imports:new Map}:Pt(f.program),y=t.sourceLocations===!0?dt(f.program,u):{edits:[],marked:0};if(d.length===0&&h.edits.length===0&&y.edits.length===0&&m.edits.length===0&&m.diagnostics.length===0&&h.diagnostics.length===0)return null;d.sort((p,w)=>w.start-p.start||p.end-w.end);let x=new Set(h.used),v={builtins:new Set,resolved:new Map,deferred:new Map,delegatedEvents:new Set,ignoredLoad:new Map,unresolved:new Set,declared:ot(f.program)},I=new Map,P=[...h.edits,...m.edits,...y.edits];for(let p of d){let w=d.some(R=>R!==p&&R.start<=p.start&&R.end>=p.end&&R.end-R.start>p.end-p.start);if(_e(p)){P.push({start:p.start,end:p.end,code:ur(n,p,P,w,x,v,I,t,u)});continue}let N=p.quasi.expressions.map(R=>nr(n,R,P,t.sourceLocations===!0)),T=xt(lr(p),N,{...t,hoistTemplates:!0,...t.sourceLocations===!0?{sourceFile:u,positionAt:ar(n)}:{},templateClone:t.templateClone??!0,partialTemplates:w?!1:t.partialTemplates??!0,svg:p.tag.name==="svg"});for(let R of T.imports)x.add(R);Je(T.ir,v),P.push({start:p.start,end:p.end,code:Dt(T.code,T.templates,I)})}let k=new ae(n);for(let p of At(P))p.start===p.end?k.appendLeft(p.start,p.code):k.overwrite(p.start,p.end,p.code);let g=Ae(f.program),$=new Map;for(let[p]of v.ignoredLoad)g.has(p)||$.set(p,"unsupplied");for(let[p,w]of[...v.ignoredLoad]){if(!g.has(p))continue;let N=rr(f.program,p);if(!N){$.set(p,ir(f.program,p)?"namespace":"local");continue}if(sr(f.program,p,N.specifier)){$.set(p,"value");continue}let T=N.declaration.specifiers.filter(ie=>ie!==N.specifier),R=T.length===0&&n[N.declaration.end]===`
14
+ `?N.declaration.end+1:N.declaration.end;k.overwrite(N.declaration.start,R,T.length===0?"":`import { ${T.map(ie=>n.slice(ie.start,ie.end)).join(", ")} } from ${JSON.stringify(N.declaration.source.value)};`),v.deferred.set(p,{module:N.module,export:N.export,origin:"rule",loading:w}),g.delete(p),v.ignoredLoad.delete(p)}let D=dr(x,v,I,g,t);D&&k.prepend(D);let M=Mt(m,g);M&&k.prepend(M);let jt={value:p=>`${p} is used as a value here, not only as a tag, so its import has to stay — deferring would hand those references a lazy wrapper instead of the component. Defer it at the point it is rendered, or keep it eager.`,namespace:p=>`${p} came in through a namespace import, which has no single export to defer. Import ${p} by name.`,local:p=>`${p} is declared in this file, so there is no module to load separately. Move it to its own file and import it.`,unsupplied:p=>`nothing supplies ${p}, so there is no import to defer. Import it, or add a \`resolve\` rule for it.`},Fe=[...v.ignoredLoad].map(([p,w])=>({name:p,strategy:w,message:`load:${w.kind} has no effect on <${p}>: ${jt[$.get(p)??"unsupplied"](p)}`})),Be=[...v.unresolved].map(p=>({name:p,message:`<${p}> is not defined: nothing imports it and no \`resolve\` rule supplies it. This compiles to a reference to a name that does not exist, so the component renders nothing. Import ${p}, or add a \`resolve\` rule for it.`}));return{code:k.toString(),map:k.generateMap({source:e,includeContent:!0,hires:!0}),...Fe.length?{loadDiagnostics:Fe}:{},...Be.length?{unresolvedDiagnostics:Be}:{},...h.diagnostics.length?{propsDiagnostics:h.diagnostics}:{},...m.diagnostics.length?{intrinsicDiagnostics:m.diagnostics}:{}}}function ur(n,e,t,r,i,s,o,a,l){let c=kt(e,{code:d=>Ne(n,d.start,d.end,t),used:i,...a.sourceLocations===!0&&l?{sourceFile:l}:{}});_(c);let u=ue(c,{resolver:ve(a.resolve??[]),isBound:d=>s.declared.has(d),modules:{controlFlowModule:a.controlFlowModule??a.runtimeModule??"@fluixi/dom",coreModule:a.coreModule??"@fluixi/core",routerModule:a.routerModule??"@fluixi/core/router"},strategyFor:d=>d.load});for(let d of u.unresolved)s.unresolved.add(d);fe(c);let f=F.emit(c,{templateClone:a.templateClone??!0,partialTemplates:r?!1:a.partialTemplates??!0});for(let d of f.imports)i.add(d);return Je(c,s),Dt(f.code,f.templates,o)}function dr(n,e,t,r,i){let s=i.runtimeModule??"@fluixi/dom",o=i.coreModule??"@fluixi/core",a=new Map,l=(d,h)=>a.set(d,[...a.get(d)??[],h]),c=new Set(n);for(let d of e.builtins)c.add(d);e.delegatedEvents.size>0&&c.add("delegateEvents");for(let d of[...c].sort())r.has(d)||(Qn.has(d)?l(i.reactiveModule??"@fluixi/reactive/signal",d):Zn.has(d)?l(i.routerModule??"@fluixi/core/router",d):Yn.has(d)?l(o,d):Gn.has(d)?l(i.controlFlowModule??s,d):l(s,d));for(let[d,h]of e.resolved)r.has(d)||l(h.module,h.export==="default"?`default as ${d}`:d===h.export?d:`${h.export} as ${d}`);let u=[];for(let[d,h]of a)u.push(`import { ${h.join(", ")} } from ${JSON.stringify(d)};`);let f=[...e.deferred].filter(([d])=>!r.has(d));if(f.length>0){r.has("deferred")||u.push(`import { deferred } from ${JSON.stringify(o)};`);for(let[d,h]of f)u.push(`const ${d} = deferred(() => import(${JSON.stringify(h.module)}), { strategy: ${or(h.loading)}, export: ${JSON.stringify(h.export)} });`)}for(let[d,h]of t)u.push(`const ${h} = ${JSON.stringify(d.startsWith("svg:")?d.slice(4):d)};`);return e.delegatedEvents.size>0&&u.push(`delegateEvents(${JSON.stringify([...e.delegatedEvents])});`),u.length>0?u.join(`
15
15
  `)+`
16
- `:null}export{ui as transformTemplates};
16
+ `:null}export{Ji as transformTemplates};