@fluixi/compiler 1.0.0-alpha.75 → 1.0.0-alpha.77
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -2
- package/dist/analyze/intrinsics.cjs +1 -0
- package/dist/analyze/intrinsics.d.ts +67 -0
- package/dist/analyze/intrinsics.d.ts.map +1 -0
- package/dist/analyze/intrinsics.js +91 -0
- package/dist/analyze/intrinsics.mjs +1 -0
- package/dist/analyze/props-destructure.cjs +1 -0
- package/dist/analyze/props-destructure.d.ts +84 -0
- package/dist/analyze/props-destructure.d.ts.map +1 -0
- package/dist/analyze/props-destructure.js +272 -0
- package/dist/analyze/props-destructure.mjs +1 -0
- package/dist/analyze/reactive-bindings.cjs +1 -0
- package/dist/analyze/reactive-bindings.d.ts +43 -0
- package/dist/analyze/reactive-bindings.d.ts.map +1 -0
- package/dist/analyze/reactive-bindings.js +191 -0
- package/dist/analyze/reactive-bindings.mjs +1 -0
- package/dist/{babel-GXO3KAVI.mjs → babel-YQ42WUS3.mjs} +1 -1
- package/dist/chunk-545LMC5W.mjs +1 -0
- package/dist/{chunk-TIE4XNAM.mjs → chunk-L2QPV25P.mjs} +1 -1
- package/dist/frontend/babel/build-ir-lit.cjs +1 -1
- package/dist/frontend/babel/build-ir-lit.mjs +1 -1
- package/dist/frontend/babel/build-ir.cjs +1 -1
- package/dist/frontend/babel/build-ir.mjs +1 -1
- package/dist/frontend/babel/index.cjs +1 -1
- package/dist/frontend/babel/index.mjs +1 -1
- package/dist/frontend/babel/lower-template.cjs +1 -1
- package/dist/frontend/babel/lower-template.mjs +1 -1
- package/dist/frontend/babel/plugin.cjs +1 -1
- package/dist/frontend/babel/plugin.mjs +1 -1
- package/dist/index.cjs +8 -8
- package/dist/index.mjs +9 -9
- package/dist/integrations.cjs +19 -14
- package/dist/integrations.d.ts +13 -0
- package/dist/integrations.d.ts.map +1 -1
- package/dist/integrations.js +52 -2
- package/dist/integrations.mjs +11 -11
- package/dist/lower/compile-template.cjs +1 -1
- package/dist/lower/compile-template.mjs +1 -1
- package/dist/lower/template.cjs +1 -1
- package/dist/lower/template.d.ts.map +1 -1
- package/dist/lower/template.js +7 -5
- package/dist/lower/template.mjs +1 -1
- package/dist/resolve/component-globals.cjs +9 -9
- package/dist/resolve/component-globals.d.ts +8 -0
- package/dist/resolve/component-globals.d.ts.map +1 -1
- package/dist/resolve/component-globals.js +17 -3
- package/dist/resolve/component-globals.mjs +9 -9
- package/dist/resolve/write-globals.cjs +9 -9
- package/dist/resolve/write-globals.mjs +9 -9
- package/dist/transform/index.cjs +6 -1
- package/dist/transform/index.d.ts +4 -0
- package/dist/transform/index.d.ts.map +1 -1
- package/dist/transform/index.js +2 -0
- package/dist/transform/index.mjs +15 -10
- package/dist/transform/intrinsics.cjs +3 -0
- package/dist/transform/intrinsics.d.ts +22 -0
- package/dist/transform/intrinsics.d.ts.map +1 -0
- package/dist/transform/intrinsics.js +78 -0
- package/dist/transform/intrinsics.mjs +3 -0
- package/dist/transform/props.cjs +3 -0
- package/dist/transform/props.d.ts +46 -0
- package/dist/transform/props.d.ts.map +1 -0
- package/dist/transform/props.js +221 -0
- package/dist/transform/props.mjs +12 -0
- package/dist/transform/templates.cjs +5 -1
- package/dist/transform/templates.d.ts +36 -0
- package/dist/transform/templates.d.ts.map +1 -1
- package/dist/transform/templates.js +175 -7
- package/dist/transform/templates.mjs +14 -10
- package/dist/transform-ZGXUDFEZ.mjs +8 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/dist/transform-PJX2GNSV.mjs +0 -3
|
@@ -19,6 +19,10 @@ import { resolveComponentSources } from '../resolve/resolve-ir.js';
|
|
|
19
19
|
import { createComponentResolver } from '../resolve/component-resolver.js';
|
|
20
20
|
import { imperativeBackend } from '../codegen/backends/imperative.js';
|
|
21
21
|
import { moduleBindings } from './bindings.js';
|
|
22
|
+
import { collectPropsEdits } from './props.js';
|
|
23
|
+
import { collectIntrinsicEdits, intrinsicImports } from './intrinsics.js';
|
|
24
|
+
import { mayHaveIntrinsic } from '../analyze/intrinsics.js';
|
|
25
|
+
import { declaredNames } from '../analyze/reactive-bindings.js';
|
|
22
26
|
import { DOM_CONTROL_FLOW, CORE_CONTROL_FLOW, ROUTER_COMPONENTS } from '../resolve/builtins.js';
|
|
23
27
|
// Which builtin comes from which module is published by resolve/builtins.ts —
|
|
24
28
|
// the same lists the resolve pass and the TS plugin read. Restating them here is
|
|
@@ -134,6 +138,11 @@ function adoptTemplates(code, templates, hoisted) {
|
|
|
134
138
|
return code.replace(/_tmpl\$\d+/g, (id) => rename.get(id) ?? id);
|
|
135
139
|
}
|
|
136
140
|
function collectNeeds(node, out) {
|
|
141
|
+
if (node.kind === 'component' && node.load && !node.source && isDeferred(node.load)) {
|
|
142
|
+
// One report per name, not one per usage.
|
|
143
|
+
if (!out.ignoredLoad.has(node.name))
|
|
144
|
+
out.ignoredLoad.set(node.name, node.load);
|
|
145
|
+
}
|
|
137
146
|
if (node.kind === 'component' && node.source) {
|
|
138
147
|
const src = node.source;
|
|
139
148
|
if (src.origin === 'builtin')
|
|
@@ -155,6 +164,63 @@ function collectNeeds(node, out) {
|
|
|
155
164
|
for (const c of node.children)
|
|
156
165
|
collectNeeds(c, out);
|
|
157
166
|
}
|
|
167
|
+
/**
|
|
168
|
+
* An import this file wrote that we can turn into a deferred binding instead.
|
|
169
|
+
*
|
|
170
|
+
* `load:` on a component the author imported did nothing, because deferring means
|
|
171
|
+
* *creating* the reference as a dynamic import and there was already a static one. Here we
|
|
172
|
+
* take the static one away: remove the specifier, emit the `deferred()` binding, and the
|
|
173
|
+
* chunk splits like any other.
|
|
174
|
+
*
|
|
175
|
+
* Only when the name is used **exclusively as a tag**. JSX element names are
|
|
176
|
+
* `JSXIdentifier`, so a component used only in markup has zero `Identifier` references —
|
|
177
|
+
* which makes the check exact rather than a guess. Anything else (passed to a function,
|
|
178
|
+
* re-exported, `Chart.displayName`) keeps its import and its warning: replacing the real
|
|
179
|
+
* binding with a lazy wrapper would change what those sites see.
|
|
180
|
+
*/
|
|
181
|
+
function deferrableImport(program, name) {
|
|
182
|
+
for (const statement of program.body ?? []) {
|
|
183
|
+
if (statement.type !== 'ImportDeclaration')
|
|
184
|
+
continue;
|
|
185
|
+
for (const specifier of statement.specifiers ?? []) {
|
|
186
|
+
if (specifier.local?.name !== name)
|
|
187
|
+
continue;
|
|
188
|
+
// A namespace import is the whole module; there is no single export to defer.
|
|
189
|
+
if (specifier.type === 'ImportNamespaceSpecifier')
|
|
190
|
+
return undefined;
|
|
191
|
+
const exported = specifier.type === 'ImportDefaultSpecifier'
|
|
192
|
+
? 'default'
|
|
193
|
+
: (specifier.imported?.name ?? specifier.imported?.value);
|
|
194
|
+
return { module: statement.source.value, export: exported, declaration: statement, specifier };
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
return undefined;
|
|
198
|
+
}
|
|
199
|
+
/** Whether `name` came in through `import * as name`, which has no single export. */
|
|
200
|
+
function hasNamespaceImport(program, name) {
|
|
201
|
+
for (const statement of program.body ?? []) {
|
|
202
|
+
if (statement.type !== 'ImportDeclaration')
|
|
203
|
+
continue;
|
|
204
|
+
for (const specifier of statement.specifiers ?? []) {
|
|
205
|
+
if (specifier.type === 'ImportNamespaceSpecifier' && specifier.local?.name === name)
|
|
206
|
+
return true;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
211
|
+
/** Whether `name` is referenced as a value anywhere — a tag alone does not count. */
|
|
212
|
+
function usedAsValue(program, name, specifier) {
|
|
213
|
+
let seen = false;
|
|
214
|
+
walk(program, (node) => {
|
|
215
|
+
if (seen || node.type !== 'Identifier' || node.name !== name)
|
|
216
|
+
return;
|
|
217
|
+
// The import specifier's own local binding is the declaration, not a use.
|
|
218
|
+
if (node.start === specifier.local?.start && node.end === specifier.local?.end)
|
|
219
|
+
return;
|
|
220
|
+
seen = true;
|
|
221
|
+
});
|
|
222
|
+
return seen;
|
|
223
|
+
}
|
|
158
224
|
/** The strategy object a `deferred()` binding is given. */
|
|
159
225
|
function strategyLiteral(s) {
|
|
160
226
|
const parts = [`kind: ${JSON.stringify(s.kind)}`];
|
|
@@ -188,7 +254,10 @@ export function transformTemplates(code, id, options = {}) {
|
|
|
188
254
|
const wantsLit = format !== 'jsx';
|
|
189
255
|
const wantsJsx = format !== 'lit';
|
|
190
256
|
const mayHaveTemplate = wantsLit && (code.includes(`${litTag}\``) || code.includes('svg`'));
|
|
191
|
-
|
|
257
|
+
// A module can be nothing but `$signal` calls, so the skip check has to look for those
|
|
258
|
+
// too or the file is never parsed.
|
|
259
|
+
const wantsIntrinsics = options.intrinsics !== false && mayHaveIntrinsic(code);
|
|
260
|
+
if (!mayHaveTemplate && !(wantsJsx && code.includes('<')) && !wantsIntrinsics)
|
|
192
261
|
return null;
|
|
193
262
|
const ast = parse(code, {
|
|
194
263
|
sourceType: 'module',
|
|
@@ -202,17 +271,38 @@ export function transformTemplates(code, id, options = {}) {
|
|
|
202
271
|
else if (wantsJsx && isJsxRoot(n, parent, key))
|
|
203
272
|
found.push(n);
|
|
204
273
|
});
|
|
205
|
-
|
|
274
|
+
// Props first: holes are sliced out of the function body, so the rewrite has to be
|
|
275
|
+
// in the edit list before any template is compiled.
|
|
276
|
+
const props = options.propsDestructure === false
|
|
277
|
+
? { edits: [], diagnostics: [], used: new Set() }
|
|
278
|
+
: collectPropsEdits(ast.program, code, { runtimeModule: options.runtimeModule });
|
|
279
|
+
// `$signal(…)` → `createSignal(…)`. Same edit list, so the callee is already rewritten
|
|
280
|
+
// by the time a template slices a hole containing one.
|
|
281
|
+
const intrinsics = options.intrinsics === false
|
|
282
|
+
? { edits: [], diagnostics: [], imports: new Map() }
|
|
283
|
+
: collectIntrinsicEdits(ast.program);
|
|
284
|
+
// Nothing to emit still returns a result when there's something to say — a shadowed
|
|
285
|
+
// intrinsic is a diagnostic even though the code comes back untouched.
|
|
286
|
+
const silent = found.length === 0 &&
|
|
287
|
+
props.edits.length === 0 &&
|
|
288
|
+
intrinsics.edits.length === 0 &&
|
|
289
|
+
intrinsics.diagnostics.length === 0 &&
|
|
290
|
+
props.diagnostics.length === 0;
|
|
291
|
+
if (silent)
|
|
206
292
|
return null;
|
|
207
293
|
// Innermost first, so a nested template is already compiled by the time the
|
|
208
294
|
// hole containing it is sliced.
|
|
209
295
|
found.sort((a, b) => b.start - a.start || a.end - b.end);
|
|
210
|
-
|
|
296
|
+
// Seeded with whatever the props rewrite needs, so `splitProps` joins the prologue
|
|
297
|
+
// the templates build rather than getting an import of its own.
|
|
298
|
+
const used = new Set(props.used);
|
|
211
299
|
const needs = {
|
|
212
300
|
builtins: new Set(), resolved: new Map(), deferred: new Map(), delegatedEvents: new Set(),
|
|
301
|
+
ignoredLoad: new Map(), unresolved: new Set(),
|
|
302
|
+
declared: declaredNames(ast.program),
|
|
213
303
|
};
|
|
214
304
|
const hoisted = new Map();
|
|
215
|
-
const edits = [];
|
|
305
|
+
const edits = [...props.edits, ...intrinsics.edits];
|
|
216
306
|
for (const node of found) {
|
|
217
307
|
// A root inside another root's hole is emitted without partial templates,
|
|
218
308
|
// matching what the plugin does for nested emits. Marker layout has to agree
|
|
@@ -238,21 +328,94 @@ export function transformTemplates(code, id, options = {}) {
|
|
|
238
328
|
}
|
|
239
329
|
const out = new MagicString(code);
|
|
240
330
|
// Same reason as in `slice`: a nested edit is already inside its parent's code.
|
|
241
|
-
for (const e of outermost(edits))
|
|
242
|
-
|
|
331
|
+
for (const e of outermost(edits)) {
|
|
332
|
+
// A zero-width edit is an insertion (the splitProps call), not a replacement.
|
|
333
|
+
if (e.start === e.end)
|
|
334
|
+
out.appendLeft(e.start, e.code);
|
|
335
|
+
else
|
|
336
|
+
out.overwrite(e.start, e.end, e.code);
|
|
337
|
+
}
|
|
243
338
|
const bound = moduleBindings(ast.program);
|
|
339
|
+
// A `load:` on an import the author wrote: take the import away and let the prologue
|
|
340
|
+
// emit the deferred binding, so this spelling and a `resolve` rule produce the same
|
|
341
|
+
// output rather than merely equivalent output.
|
|
342
|
+
const why = new Map();
|
|
343
|
+
for (const [name] of needs.ignoredLoad) {
|
|
344
|
+
if (!bound.has(name))
|
|
345
|
+
why.set(name, 'unsupplied');
|
|
346
|
+
}
|
|
347
|
+
for (const [name, strategy] of [...needs.ignoredLoad]) {
|
|
348
|
+
if (!bound.has(name))
|
|
349
|
+
continue;
|
|
350
|
+
const found = deferrableImport(ast.program, name);
|
|
351
|
+
if (!found) {
|
|
352
|
+
// Bound, but not by an import we can turn into a dynamic one.
|
|
353
|
+
why.set(name, hasNamespaceImport(ast.program, name) ? 'namespace' : 'local');
|
|
354
|
+
continue;
|
|
355
|
+
}
|
|
356
|
+
if (usedAsValue(ast.program, name, found.specifier)) {
|
|
357
|
+
why.set(name, 'value');
|
|
358
|
+
continue;
|
|
359
|
+
}
|
|
360
|
+
const rest = found.declaration.specifiers.filter((sp) => sp !== found.specifier);
|
|
361
|
+
// Take the line's newline with it when the whole statement goes, or the output keeps
|
|
362
|
+
// a blank line exactly where the import used to be.
|
|
363
|
+
const end = rest.length === 0 && code[found.declaration.end] === '\n'
|
|
364
|
+
? found.declaration.end + 1
|
|
365
|
+
: found.declaration.end;
|
|
366
|
+
out.overwrite(found.declaration.start, end, rest.length === 0
|
|
367
|
+
? ''
|
|
368
|
+
: `import { ${rest.map((sp) => code.slice(sp.start, sp.end)).join(', ')} } from ` +
|
|
369
|
+
`${JSON.stringify(found.declaration.source.value)};`);
|
|
370
|
+
needs.deferred.set(name, { module: found.module, export: found.export, origin: 'rule', loading: strategy });
|
|
371
|
+
// The prologue skips names the file binds, and this one no longer does.
|
|
372
|
+
bound.delete(name);
|
|
373
|
+
needs.ignoredLoad.delete(name);
|
|
374
|
+
}
|
|
244
375
|
const prologue = buildPrologue(used, needs, hoisted, bound, options);
|
|
245
376
|
if (prologue)
|
|
246
377
|
out.prepend(prologue);
|
|
378
|
+
const runtimeImports = intrinsicImports(intrinsics, bound);
|
|
379
|
+
if (runtimeImports)
|
|
380
|
+
out.prepend(runtimeImports);
|
|
247
381
|
// `@fluixi/core/rx` is the client alias for the reactive primitives.
|
|
248
382
|
for (const node of ast.program.body) {
|
|
249
383
|
if (node.type === 'ImportDeclaration' && node.source?.value === '@fluixi/core/rx') {
|
|
250
384
|
out.overwrite(node.source.start, node.source.end, JSON.stringify('@fluixi/reactive'));
|
|
251
385
|
}
|
|
252
386
|
}
|
|
387
|
+
// Each of these has a different fix, so the message has to name the actual reason.
|
|
388
|
+
// Saying "drop the import" to someone whose component is used as a value sends them
|
|
389
|
+
// somewhere that does not work.
|
|
390
|
+
const reasons = {
|
|
391
|
+
value: (name) => `${name} is used as a value here, not only as a tag, so its import has to stay — ` +
|
|
392
|
+
`deferring would hand those references a lazy wrapper instead of the component. ` +
|
|
393
|
+
`Defer it at the point it is rendered, or keep it eager.`,
|
|
394
|
+
namespace: (name) => `${name} came in through a namespace import, which has no single export to defer. ` +
|
|
395
|
+
`Import ${name} by name.`,
|
|
396
|
+
local: (name) => `${name} is declared in this file, so there is no module to load separately. ` +
|
|
397
|
+
`Move it to its own file and import it.`,
|
|
398
|
+
unsupplied: (name) => `nothing supplies ${name}, so there is no import to defer. Import it, or add a ` +
|
|
399
|
+
`\`resolve\` rule for it.`,
|
|
400
|
+
};
|
|
401
|
+
const loadDiagnostics = [...needs.ignoredLoad].map(([name, strategy]) => ({
|
|
402
|
+
name,
|
|
403
|
+
strategy,
|
|
404
|
+
message: `load:${strategy.kind} has no effect on <${name}>: ${reasons[why.get(name) ?? 'unsupplied'](name)}`,
|
|
405
|
+
}));
|
|
406
|
+
const unresolvedDiagnostics = [...needs.unresolved].map((name) => ({
|
|
407
|
+
name,
|
|
408
|
+
message: `<${name}> is not defined: nothing imports it and no \`resolve\` rule supplies it. ` +
|
|
409
|
+
`This compiles to a reference to a name that does not exist, so the component renders ` +
|
|
410
|
+
`nothing. Import ${name}, or add a \`resolve\` rule for it.`,
|
|
411
|
+
}));
|
|
253
412
|
return {
|
|
254
413
|
code: out.toString(),
|
|
255
414
|
map: out.generateMap({ source: id, includeContent: true, hires: true }),
|
|
415
|
+
...(loadDiagnostics.length ? { loadDiagnostics } : {}),
|
|
416
|
+
...(unresolvedDiagnostics.length ? { unresolvedDiagnostics } : {}),
|
|
417
|
+
...(props.diagnostics.length ? { propsDiagnostics: props.diagnostics } : {}),
|
|
418
|
+
...(intrinsics.diagnostics.length ? { intrinsicDiagnostics: intrinsics.diagnostics } : {}),
|
|
256
419
|
};
|
|
257
420
|
}
|
|
258
421
|
/**
|
|
@@ -266,8 +429,11 @@ function compileJsx(code, node, edits, nested, used, needs, hoisted, options) {
|
|
|
266
429
|
used,
|
|
267
430
|
});
|
|
268
431
|
analyzeStatic(ir);
|
|
269
|
-
resolveComponentSources(ir, {
|
|
432
|
+
const report = resolveComponentSources(ir, {
|
|
270
433
|
resolver: createComponentResolver(options.resolve ?? []),
|
|
434
|
+
// Without this the pass calls every author-imported component unresolved, and the
|
|
435
|
+
// report is unusable for diagnostics.
|
|
436
|
+
isBound: (name) => needs.declared.has(name),
|
|
271
437
|
modules: {
|
|
272
438
|
controlFlowModule: options.controlFlowModule ?? options.runtimeModule ?? '@fluixi/dom',
|
|
273
439
|
coreModule: options.coreModule ?? '@fluixi/core',
|
|
@@ -275,6 +441,8 @@ function compileJsx(code, node, edits, nested, used, needs, hoisted, options) {
|
|
|
275
441
|
},
|
|
276
442
|
strategyFor: (n) => n.load,
|
|
277
443
|
});
|
|
444
|
+
for (const name of report.unresolved)
|
|
445
|
+
needs.unresolved.add(name);
|
|
278
446
|
collapseStrategies(ir);
|
|
279
447
|
const emitted = imperativeBackend.emit(ir, {
|
|
280
448
|
templateClone: options.templateClone ?? true,
|
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
import{parse as
|
|
2
|
-
`),t=e.filter(
|
|
3
|
-
`),t=[];for(let r=0,i=0;r<e.length;r++)t.push(i),i+=e[r].length+1;return function(i){let
|
|
4
|
-
`,0),a=-1;for(;
|
|
5
|
-
`,
|
|
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||
|
|
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
|
-
`,
|
|
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(`
|
|
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
|
+
`,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 p=u[0];p<u[1];p+=1)i[p]=!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
|
-
`?o=!0:u!=="\r"&&o&&(o=!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,s),this}insert(){throw new Error("magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)")}insertLeft(e,t){return b.insertLeft||(console.warn("magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead"),b.insertLeft=!0),this.appendLeft(e,t)}insertRight(e,t){return b.insertRight||(console.warn("magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead"),b.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],o=this.byEnd[t],s=i.previous,a=o.next,l=this.byStart[r];if(!l&&o===this.lastChunk)return this;let c=l?l.previous:this.lastChunk;return s&&(s.next=a),a&&(a.previous=s),c&&(c.next=i),l&&(l.previous=o),i.previous||(this.firstChunk=o.next),o.next||(this.lastChunk=i.previous,this.lastChunk.next=null),i.previous=c,o.next=l||null,c||(this.firstChunk=i),l||(this.lastChunk=o),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&&(b.storeName||(console.warn("The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string"),b.storeName=!0),i={storeName:!0});let o=i!==void 0?i.storeName:!1,s=i!==void 0?i.overwrite:!1;if(o){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,o,!s)}else{let c=new J(e,t,"").edit(r,o);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(E);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),e!==-1)return r.outro.substr(e+1)+t;t=r.outro+t}if(r.content.length>0){if(e=r.content.lastIndexOf(E),e!==-1)return r.content.substr(e+1)+t;t=r.content+t}if(r.intro.length>0){if(e=r.intro.lastIndexOf(E),e!==-1)return r.intro.substr(e+1)+t;t=r.intro+t}}while(r=r.previous);return e=this.intro.lastIndexOf(E),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 o=i;for(;i;){i.intro&&(o!==i||i.start===e)&&(r+=i.intro);let s=i.start<t&&i.end>=t;if(s&&i.edited&&i.end!==t)throw new Error(`Cannot use replaced character ${t} as slice end anchor.`);let a=o===i?e-i.start:0,l=s?i.content.length+t-i.end:i.content.length;if(r+=i.content.slice(a,l),i.outro&&(!s||i.end===t)&&(r+=i.outro),s)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=ye(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,o=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),o)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,o=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),o)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(o,s){return typeof t=="string"?t.replace(/\$(\$|&|\d+)/g,(a,l)=>l==="$"?"$":l==="&"?o[0]:+l<o.length?o[+l]:`$${l}`):t(...o,o.index,s,o.groups)}function i(o,s){let a,l=[];for(;a=o.exec(s);)l.push(a);return l}if(e.global)i(e,this.original).forEach(s=>{if(s.index!=null){let a=r(s,this.original);a!==s[0]&&this.overwrite(s.index,s.index+s[0].length,a)}});else{let o=this.original.match(e);if(o&&o.index!=null){let s=r(o,this.original);s!==o[0]&&this.overwrite(o.index,o.index+o[0].length,s)}}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 o=r.indexOf(e);o!==-1;o=r.indexOf(e,o+i)){let s=r.slice(o,o+i),a=t;typeof t=="function"&&(a=t(s,o,r)),s!==a&&this.overwrite(o,o+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 rt(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 R(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 o of i.children)r(o);return!1;case"fragment":for(let o of i.children)r(o);return!1;case"element":{let o=!0;for(let a of i.children)r(a)||(o=!1);let s;for(let a of i.props)if(s=rt(a),s)break;return!s&&!o&&(s=it(i)),i.static=!s,s?t.set(i,s):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 it(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 F={kind:"eager"},ot=["pointerdown","focusin","keydown"],xe=new Set(["eager","idle","visible","interaction","media","never"]),v=class extends Error{};function te(n){return n.startsWith("load:")}function H(n,e){let t=n.slice(5);if(!xe.has(t))throw new v(`Unknown load strategy 'load:${t}'. Expected one of ${[...xe].join(", ")}.`);switch(t){case"eager":return F;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?st(e):[...ot]};case"media":if(!e)throw new v(`'load:media' needs a query, e.g. load:media="(min-width: 1024px)".`);return{kind:"media",query:e};default:throw new v(`Unhandled load strategy '${t}'.`)}}function st(n){let e=n.split(/[\s,]+/).map(t=>t.trim()).filter(Boolean);if(e.length===0)throw new v("'load:interaction' was given no event names.");return e}function q(n){return n.kind!=="eager"&&n.kind!=="never"}var I=["Show","For","Index","Switch","Match","Portal","Dynamic","ErrorBoundary"],T=["Suspense","SuspenseList","Await"],w=["Router","Outlet","Redirect","Link"],nn=[...I,...T,...w],ne=new Set([...I,...T]);function be(n={}){let{controlFlowModule:e="@fluixi/dom",coreModule:t="@fluixi/core",routerModule:r="@fluixi/core/router-next"}=n,i={};for(let o of I)i[o]=e;for(let o of T)i[o]=t;for(let o of w)i[o]=r;return i}function U(n,e={}){let{resolver:t,isBound:r,modules:i,strategyFor:o}=e,s=be(i),a=new Map,l=new Set,c=p=>{let{name:d}=p;if(!d||d.includes(".")||r?.(d))return;let h=u(d);if(!h){l.add(d);return}let m=h.origin==="builtin"&&ne.has(d)?F:o?.(p)??F;p.source={...h,loading:m},a.set(d,p.source)},u=p=>{if(ne.has(p))return{module:s[p],export:p,origin:"builtin"};let d=t?.resolve(p);if(d)return{module:d.module,export:d.export,origin:"rule"};if(w.includes(p))return{module:s[p],export:p,origin:"builtin"}};return X(n,p=>{p.kind==="component"&&c(p)}),{resolved:a,unresolved:[...l]}}function X(n,e){let t=Array.isArray(n)?n:[n];for(let r of t){e(r);let i=r.children;i&&X(i,e)}}function z(n){let e=[];X(n,o=>{o.kind==="component"&&o.source&&e.push(o)});let t=new Set,r=new Set;for(let o of e){let{module:s,loading:a}=o.source;a.kind==="eager"&&t.add(s),a.kind==="never"&&r.add(s)}let i=new Map;for(let o of e){let s=o.source;q(s.loading)&&t.has(s.module)&&(s.loading={kind:"eager"},i.set(s.module,(i.get(s.module)??0)+1))}return{collapsed:i,conflicted:[...r].filter(o=>t.has(o))}}var at=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),Re={className:"class",htmlFor:"for"},lt=new Set(["innerHTML","outerHTML","innerText","textContent","value","checked","selected","muted","defaultValue","defaultChecked","children","ref"]),ct=new Set(["script","style","textarea","title"]);function re(n){return ct.has(n)}function we(n){return Re[n]??n}function $(n){return n.kind!=="attr"||n.expr!==void 0||n.name.includes(":")?!1:!lt.has(n.name)}function ie(n){if(!n.static||re(n.tag))return!1;for(let e of n.props)if(!$(e))return!1;for(let e of n.children)if(e.kind!=="text"&&!(e.kind==="element"&&ie(e)))return!1;return!0}function O(n){let e=n.props.map(dt).filter(Boolean).join(""),t=`<${n.tag}${e}>`;return at.has(n.tag)?t:`${t}${n.children.map(ut).join("")}</${n.tag}>`}function ut(n){if(n.kind==="text")return ft(n.value);if(n.kind!=="element")throw new Error(`serializeStatic: unexpected ${n.kind}`);return O(n)}function dt(n){let e=Re[n.name]??n.name,t=n.literal;return t===!0||t===void 0?` ${e}`:t===!1||t===null?"":` ${e}="${pt(String(t))}"`}function pt(n){return n.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function ft(n){return n.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}var ht="<!--fx-->",mt="<!--fx/-->";function G(n){return n.kind==="expr"||n.kind==="component"||n.kind==="control"}function gt(n){return n.kind==="text"||n.kind==="element"&&Se(n)}function Se(n){return n.svg||re(n.tag)||!n.props.every(e=>$(e))?!1:n.children.every(e=>gt(e)||G(e))}function W(n){if(G(n))return!0;let e=n.children;return e?e.some(W):!1}function Ce(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"||Ce(e))}function ke(n){if(!Se(n)||!Ce(n)||!n.children.some(W))return null;let e=[],t=[],r=0,i=s=>{let a=`_n$${r++}`;return e.push({ref:a,expr:s}),a};return o(n,"_el$"),{html:vt(n),tag:n.tag,steps:e,holes:t};function o(s,a){let l=-1;s.children.forEach((u,p)=>{W(u)&&(l=p)});let c=null;for(let u=0;u<=l;u++){let p=s.children[u],d=c?`${c}.nextSibling`:`${a}.firstChild`;if(G(p)){let m=i(d),_=i(`holeEnd(${m})`);t.push({parentRef:a,startRef:m,endRef:_,node:p}),c=_;continue}let h=i(d);p.kind==="element"&&W(p)&&o(p,h),c=h}}}function vt(n){return O(Ne(n)).split(Ee).join(ht+mt)}function Ne(n){return{...n,children:n.children.map(e=>G(e)?{kind:"text",value:Ee}:e.kind==="element"?Ne(e):e)}}var Ee="\0fx-hole\0";var oe={version:1,module:"@fluixi/dom",symbols:["createNativeElement","insert","spread","setAttribute","delegateEvents","createComponent","createMemo","untrack","Show","For","Index","Switch","Match","Dynamic","ErrorBoundary"]},hn={version:2,module:"@fluixi/dom",symbols:[...oe.symbols,"template","cloneTemplate","walk"]};var yt={show:"Show",for:"For",index:"Index",switch:"Switch",match:"Match",dynamic:"Dynamic",errorBoundary:"ErrorBoundary",suspense:"Suspense"};function xt(n){return/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(n)}function Te(n){return xt(n)?n:JSON.stringify(n)}function bt(n){return n.expr!==void 0?n.reactive?`() => (${n.expr})`:`(${n.expr})`:JSON.stringify(n.literal??!0)}function Rt(n){return n.expr!==void 0?`(${n.expr})`:JSON.stringify(n.literal??!0)}function wt(n,e,t){let r=n.filter(a=>a.kind==="spread"),o=n.filter(a=>a.kind!=="spread").map(a=>`${Te(a.name)}: ${bt(a)}`);e!=null&&o.push(`children: ${e}`);let s=`{ ${o.join(", ")} }`;return r.length>0?(t.add("mergeProps"),`mergeProps(${r.map(a=>a.expr).join(", ")}, ${s})`):s}function $e(n,e,t){return n.length===1?L(n[0],e,t):`[${n.map(r=>L(r,e,t)).join(", ")}]`}function Ie(n,e,t,r,i){r.add("createMemo"),r.add("createComponent");let o=e.filter(c=>c.kind==="spread"),a=e.filter(c=>c.kind!=="spread").map(c=>`get ${Te(c.name)}() { return ${Rt(c)}; }`);t.length>0&&a.push(`get children() { return ${$e(t,r,i)}; }`);let l=`{ ${a.join(", ")} }`;return o.length>0&&(r.add("mergeProps"),l=`mergeProps(${o.map(c=>c.expr).join(", ")}, ${l})`),`createMemo(() => createComponent(${n}, ${l}))`}function St(n,e){let t=we(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 Oe=!1;function L(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":$e(n.children,e,t);case"component":return Ie(n.name,n.props,n.children,e,t);case"control":{let r=yt[n.control]??n.control;return e.add(r),Ie(r,n.props,n.children,e,t)}case"element":{if(t&&n.static&&!n.svg&&ie(n)){e.add("templateNode");let a=`_tmpl$${t.length}`;return t.push({id:a,html:O(n),tag:n.tag,svg:!1}),`templateNode(${a}, ${JSON.stringify(n.tag)})`}if(t&&Oe){let a=ke(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}, () => (${L(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$",o=[],s=n.svg?`${r}, true`:r;if(o.push(`const ${i} = createNativeElement(${s});`),n.props.length>0)if(!n.svg&&n.props.every($))for(let a of n.props)o.push(St(i,a));else{e.add("spread");let a=n.svg?", isSVG: true":"";o.push(`spread({ element: ${i}, props: ${wt(n.props,null,e)}${a} });`)}for(let a of n.children){e.add("insert");let l=L(a,e,t),c=a.kind==="expr"&&a.reactive||a.kind==="component"||a.kind==="control";o.push(c?`insert(${i}, ${l}, null);`:`insert(${i}, ${l});`)}return o.push(`return ${i};`),`(() => { ${o.join(" ")} })()`}}}function V(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 S={name:"imperative",contract:oe,emit(n,e){let t=new Set,r=e?.templateClone!==!1?[]:void 0;return Oe=e?.partialTemplates===!0,{code:L(n,t,r),imports:Array.from(t),templates:r}}};var Ct=n=>"components"in n;function Le(n,e){return n.replace(/\$(\d+)/g,(t,r)=>e[Number(r)]??t)}function kt(n,e){return typeof e=="string"?{module:e,export:n}:e}function K(n=[]){let e=new Map,t=[],r=[];for(let s of n){if(!Ct(s)){r.push(s);continue}for(let[a,l]of Object.entries(s.components)){let c=kt(a,l),u=e.get(a);if(u&&u.module!==c.module){let p=t.find(d=>d.name===a);p?p.modules.push(c.module):t.push({name:a,modules:[u.module,c.module]});continue}e.set(a,c)}}let i=new Map;return{resolve:s=>{if(i.has(s))return i.get(s);let a=e.get(s);if(!a)for(let l of r){let c=s.match(new RegExp(l.match.source,l.match.flags.replace("g","")));if(c){a={module:Le(l.module,c),export:l.export?Le(l.export,c):s};break}}return i.set(s,a),a},names:()=>[...e.keys()],conflicts:()=>t}}import{parseTemplate as Nt}from"@fluixi/template-parser";function M(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 o=e[i].replace(/\t/g," ");i!==0&&(o=o.replace(/^ +/,"")),i!==e.length-1&&(o=o.replace(/ +$/,"")),o&&(i!==t&&(o+=" "),r+=o)}return r}var Me=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]);function Et(n){return n.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}function Pe(n){return n.charAt(0).toUpperCase()+n.slice(1)}var se=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}=S.emit(e,{});for(let o of r)this.used.add(o);return V(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 s=i.attributes.find(a=>a.kind==="IfDirective");if(s&&s.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,s.hole,c?l:null)),c&&(r=a);continue}if(i.attributes.some(a=>a.kind==="EachDirective")){t.push(this.lowerEach(i));continue}}let o=this.lowerNode(i);o&&t.push(o)}return t}isBlankText(e){return e.kind==="Text"&&!e.raw&&M(e.value)===""}lowerNode(e){switch(e.kind){case"Text":{if(e.raw)return{kind:"text",value:e.value};let t=M(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(o=>o!==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:o}=this.partitionSlots(e.children);for(let[l,c]of i){let u=c.length===1?c[0]:{kind:"fragment",children:c},p={name:l,kind:"attr",expr:this.emit(u),jsxElement:!0},d=r.findIndex(h=>h.name===l);d>=0?r[d]=p:r.push(p)}let s=e.attributes.find(l=>l.kind==="LoadDirective"),a=s?H(`load:${s.strategy}`,s.modifier):void 0;return{kind:"component",name:t,props:r,children:this.lowerChildren(o),...a?{load:a}:{}}}partitionSlots(e){let t=new Map,r=[];for(let i of e){if(i.kind==="Element"||i.kind==="Component"){let o=i.attributes.find(s=>s.kind==="Attribute"&&s.name==="slot");if(o&&o.value&&o.value.kind==="static"){let s={...i,attributes:i.attributes.filter(c=>c!==o)},a=s.kind==="Element"?this.lowerElement(s):this.lowerComponent(s),l=t.get(o.value.value)??[];l.push(a),t.set(o.value.value,l);continue}}r.push(i)}return{slots:t,rest:r}}lowerIf(e,t,r){let i=this.hole(t),o=[{name:"when",kind:"attr",expr:i.code,reactive:i.reactive}];if(r){let a=this.stripAndLower(r,l=>l.kind==="ElseDirective");o.push({name:"fallback",kind:"attr",expr:this.emit(a),jsxElement:!0})}let s=this.stripAndLower(e,a=>a.kind==="IfDirective");return{kind:"component",name:"Show",props:o,children:[s]}}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 o=this.itemArrow(e),s;if(o){let l={kind:"expr",code:o.body,reactive:o.bodyReactive},c=this.rebuildWithChildren(e,[l]);s=`(${o.params.join(", ")}) => (${this.emit(c)})`}else{let l=this.stripAndLower(e,c=>c.kind==="EachDirective");s=`() => (${this.emit(l)})`}return{kind:"component",name:"For",props:i,children:[{kind:"expr",code:s,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,o=[],s=!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);o.push(`${JSON.stringify(l.name)}: ${c.code}`),s=s||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}),o.length>0&&t.push({name:"style",kind:"attr",expr:`{ ${o.join(", ")} }`,reactive:s}),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"+Pe(e.name),kind:"event",event:{name:t,delegated:Me.has(t)},expr:r};let o=this.wrapHandler(r,e.modifiers),s=this.eventOptions(e.modifiers),a=s?`[${o}, ${s}]`:o;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",o=r?"checked":"value",s=`(${t})`;return[{name:e,kind:"attr",expr:`${s}[0]()`,reactive:!0},{name:"on"+Pe(i),kind:"event",event:{name:i,delegated:Me.has(i)},expr:`(e) => ${s}[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 o={name:r,kind:"attr"};if(t==null)return o.literal=!0,o;if(t.kind==="static")return o.literal=t.value,o;if(t.kind==="hole"){let l=this.hole(t.hole);return o.expr=l.code,o.reactive=l.reactive,o}let s=!1,a=t.parts.map(l=>{if("text"in l)return Et(l.text);let c=this.hole(l.hole);return s=s||c.reactive,"${"+c.code+"}"}).join("");return o.expr="`"+a+"`",o.reactive=s,o}};function Ae(n,e,t,r={}){let{root:i}=Nt(n,{svg:r.svg});return new se(e,t).lowerRoot(i.children)}function _e(n,e,t={}){let r=new Set,i=Ae(n,[...e],r,{svg:t.svg});R(i),U(i,{resolver:K(t.resolve??[]),modules:{controlFlowModule:t.controlFlowModule??"@fluixi/dom",coreModule:t.coreModule??"@fluixi/core",routerModule:t.routerModule??"@fluixi/core/router-next"},strategyFor:l=>l.load}),z(i);let{code:o,imports:s,templates:a}=S.emit(i,{templateClone:t.templateClone,partialTemplates:t.partialTemplates});for(let l of s)r.add(l);return t.hoistTemplates?{code:o,imports:[...r],ir:i,templates:a}:{code:V(o,a),imports:[...r],ir:i}}var It="children";function C(n){switch(n.kind){case"call":return!0;case"member":return n.property!==It;case"compound":return n.parts.some(C);case"opaque":return!1}}var Tt=new Set(["CallExpression","OptionalCallExpression"]),$t=new Set(["MemberExpression","OptionalMemberExpression"]);function k(n){if(!n)return{kind:"opaque"};if(Tt.has(n.type))return{kind:"call"};if($t.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(P)}:n.type==="LogicalExpression"||n.type==="BinaryExpression"?{kind:"compound",parts:[n.left,n.right].map(P)}:n.type==="TemplateLiteral"?{kind:"compound",parts:n.expressions.map(P)}:n.type==="ObjectExpression"?{kind:"compound",parts:n.properties.filter(t=>(t.type==="ObjectProperty"||t.type==="Property")&&t.computed!==!0).map(t=>P(t.value))}:n.type==="ArrayExpression"?{kind:"compound",parts:n.elements.filter(t=>t!=null&&t.type!=="SpreadElement").map(P)}:{kind:"opaque"}}var P=n=>k(n);var Ot=new Set(["svg","path","circle","rect","line","polygon","polyline","ellipse","g","defs","clipPath","text"]),Lt=/^on[A-Z]/,Mt=new Set(["click","dblclick","input","change","submit","focus","blur","keydown","keyup","keypress","mousedown","mouseup"]),Je=n=>C(k(n));function A(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 ae=n=>!!n&&typeof A(n)=="string";function Pt(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 le(n){return n.type==="JSXIdentifier"?n.name==="class"?"className":n.name:n.type==="JSXNamespacedName"?`${n.namespace.name}:${n.name.name}`:"unknown"}function At(n,e){let t=le(n.name),r=Lt.test(t),i=r||t.startsWith("on:")||t==="ref",s={name:t,kind:r?"event":"attr"};if(r){let l=t.slice(2).toLowerCase();s.event={name:l,delegated:Mt.has(l)}}let a=n.value;if(a==null)return s.literal=!0,s;if(ae(a))return s.literal=A(a),s;if(a.type==="JSXExpressionContainer"&&a.expression?.type!=="JSXEmptyExpression"){let l=a.expression,c=A(l);return c!==void 0?(s.literal=c,s):(s.expr=e.code(l),s.reactive=i?!1:Je(l),(l.type==="JSXElement"||l.type==="JSXFragment")&&(s.jsxElement=!0),s)}return s.literal=!0,s}function je(n,e){let t=n.value;return t==null?null:ae(t)?JSON.stringify(A(t)):t.type==="JSXExpressionContainer"&&t.expression?.type!=="JSXEmptyExpression"?e.code(t.expression):null}function _t(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"||te(le(i.name)))continue;let o=i.name.type==="JSXNamespacedName"?i.name.namespace.name:null;if(o==="use"){let s=i.name.name.name;e.used.add(s);let a=je(i,e);r.push(a!=null?`[${s}, () => (${a})]`:`[${s}]`);continue}if(o==="oncapture"){let s=i.name.name.name.toLowerCase(),a=je(i,e)??"undefined";t.push({name:"on:"+s,kind:"attr",expr:`[${a}, { capture: true }]`});continue}t.push(At(i,e))}return r.length>0&&t.push({name:"use",kind:"attr",expr:`[${r.join(", ")}]`}),t}function De(n,e){let t=[];for(let r of n)if(r.type==="JSXText"){let i=M(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:Je(i)})}}else r.type==="JSXElement"||r.type==="JSXFragment"?t.push(Be(r,e)):r.type==="JSXSpreadChild"&&t.push({kind:"expr",code:e.code(r.expression),reactive:!1});return t}function jt(n){for(let e of n){if(e.type!=="JSXAttribute")continue;let t=le(e.name);if(te(t)){if(e.value&&!ae(e.value))throw new v(`'${t}' needs a literal value, not an expression — the strategy is compile-time.`);return H(t,e.value?A(e.value):null)}}}function Be(n,e){if(n.type==="JSXFragment")return{kind:"fragment",children:De(n.children,e)};let{tag:t,component:r}=Pt(n.openingElement.name,e),i=_t(n.openingElement.attributes,e),o=De(n.children,e);if(r){let s=jt(n.openingElement.attributes);return{kind:"component",name:t,props:i,children:o,...s?{load:s}:{}}}return{kind:"element",tag:t,svg:Ot.has(t),props:i,children:o,static:!1}}function Fe(n,e){let t=Be(n,e);return R(t),t}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 He(n,e){switch(n.type){case"ImportDeclaration":for(let t of n.specifiers)y(t.local,e);return;case"VariableDeclaration":for(let t of n.declarations)y(t.id,e);return;case"FunctionDeclaration":case"ClassDeclaration":y(n.id,e);return;case"ExportNamedDeclaration":case"ExportDefaultDeclaration":n.declaration&&He(n.declaration,e);return}}function qe(n){let e=new Set;for(let t of n.body)He(t,e);return e}var Jt=new Set(I),Bt=new Set(T),Ft=new Set(w),Ht=new Set(["createMemo","createEffect","createRenderEffect","createRoot","createSignal","onCleanup","batch","untrack"]);function ce(n,e,t=null,r=""){if(!(!n||typeof n!="object")){if(Array.isArray(n)){for(let i of n)ce(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"||ce(n[i],e,typeof n.type=="string"?n:t,i)}}var ue=n=>n.type==="JSXElement"||n.type==="JSXFragment";function qt(n,e,t){return ue(n)?!(e&&ue(e)&&t==="children"):!1}function Ut(n,e){return n.type==="TaggedTemplateExpression"&&n.tag?.type==="Identifier"&&(n.tag.name===e||n.tag.name==="svg")}function Ue(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 Y(n,e,t,r){let i=Ue(r.filter(s=>s.start>=e&&s.end<=t)).sort((s,a)=>a.start-s.start),o=n.slice(e,t);for(let s of i)o=o.slice(0,s.start-e)+s.code+o.slice(s.end-e);return o}function Xt(n,e,t){let r={code:Y(n,e.start,e.end,t),reactive:C(k(e))};return e.type==="ArrowFunctionExpression"&&e.body?.type!=="BlockStatement"&&(r.arrow={params:e.params.map(i=>Y(n,i.start,i.end,t)),body:Y(n,e.body.start,e.body.end,t),bodyReactive:C(k(e.body))}),e.type==="ObjectExpression"&&(r.object=!0),r}function Xe(n,e,t){if(!e||e.length===0)return n;let r=new Map;for(let i of e){let o=`${i.svg?"svg:":""}${i.html}`,s=t.get(o);s||(s=`_fxTmpl$${t.size}`,t.set(o,s)),r.set(i.id,s)}return n.replace(/_tmpl\$\d+/g,i=>r.get(i)??i)}function de(n,e){if(n.kind==="component"&&n.source){let t=n.source;t.origin==="builtin"?e.builtins.add(n.name):q(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)de(t,e)}function zt(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 Wt(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 rr(n,e,t={}){let r=t.litTag??"html",i=t.format??"both",o=i!=="jsx",s=i!=="lit";if(!(o&&(n.includes(`${r}\``)||n.includes("svg`")))&&!(s&&n.includes("<")))return null;let l=Dt(n,{sourceType:"module",plugins:["jsx","typescript"],errorRecovery:!0}),c=[];if(ce(l.program,(f,x,Z)=>{(o&&Ut(f,r)||s&&qt(f,x,Z))&&c.push(f)}),c.length===0)return null;c.sort((f,x)=>x.start-f.start||f.end-x.end);let u=new Set,p={builtins:new Set,resolved:new Map,deferred:new Map,delegatedEvents:new Set},d=new Map,h=[];for(let f of c){let x=c.some(g=>g!==f&&g.start<=f.start&&g.end>=f.end&&g.end-g.start>f.end-f.start);if(ue(f)){h.push({start:f.start,end:f.end,code:Gt(n,f,h,x,u,p,d,t)});continue}let Z=f.quasi.expressions.map(g=>Xt(n,g,h)),j=_e(Wt(f),Z,{...t,hoistTemplates:!0,templateClone:t.templateClone??!0,partialTemplates:x?!1:t.partialTemplates??!0,svg:f.tag.name==="svg"});for(let g of j.imports)u.add(g);de(j.ir,p),h.push({start:f.start,end:f.end,code:Xe(j.code,j.templates,d)})}let m=new B(n);for(let f of Ue(h))m.overwrite(f.start,f.end,f.code);let _=qe(l.program),pe=Vt(u,p,d,_,t);pe&&m.prepend(pe);for(let f of l.program.body)f.type==="ImportDeclaration"&&f.source?.value==="@fluixi/core/rx"&&m.overwrite(f.source.start,f.source.end,JSON.stringify("@fluixi/reactive"));return{code:m.toString(),map:m.generateMap({source:e,includeContent:!0,hires:!0})}}function Gt(n,e,t,r,i,o,s,a){let l=Fe(e,{code:u=>Y(n,u.start,u.end,t),used:i});R(l),U(l,{resolver:K(a.resolve??[]),modules:{controlFlowModule:a.controlFlowModule??a.runtimeModule??"@fluixi/dom",coreModule:a.coreModule??"@fluixi/core",routerModule:a.routerModule??"@fluixi/core/router-next"},strategyFor:u=>u.load}),z(l);let c=S.emit(l,{templateClone:a.templateClone??!0,partialTemplates:r?!1:a.partialTemplates??!0});for(let u of c.imports)i.add(u);return de(l,o),Xe(c.code,c.templates,s)}function Vt(n,e,t,r,i){let o=i.runtimeModule??"@fluixi/dom",s=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)||(Ht.has(d)?l(i.reactiveModule??"@fluixi/reactive/signal",d):Ft.has(d)?l(i.routerModule??"@fluixi/core/router-next",d):Bt.has(d)?l(s,d):Jt.has(d)?l(i.controlFlowModule??o,d):l(o,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 p=[...e.deferred].filter(([d])=>!r.has(d));if(p.length>0){r.has("deferred")||u.push(`import { deferred } from ${JSON.stringify(s)};`);for(let[d,h]of p)u.push(`const ${d} = deferred(() => import(${JSON.stringify(h.module)}), { strategy: ${zt(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(`
|
|
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-next"}=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=p=>{let{name:f}=p;if(!f||f.includes(".")||r?.(f))return;let m=u(f);if(!m){l.add(f);return}let h=m.origin==="builtin"&&ge.has(f)?te:s?.(p)??te;p.source={...m,loading:h},a.set(f,p.source)},u=p=>{if(ge.has(p))return{module:o[p],export:p,origin:"builtin"};let f=t?.resolve(p);if(f)return{module:f.module,export:f.export,origin:"rule"};if(P.includes(p))return{module:o[p],export:p,origin:"builtin"}};return ie(n,p=>{p.kind==="component"&&c(p)}),{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 U(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(!U(e))return!1;for(let e of n.children)if(e.kind!=="text"&&!(e.kind==="element"&&ve(e)))return!1;return!0}function H(n){let e=n.props.map(Ht).filter(Boolean).join(""),t=`<${n.tag}${e}>`;return Jt.has(n.tag)?t:`${t}${n.children.map(Ut).join("")}</${n.tag}>`}function Ut(n){if(n.kind==="text")return Xt(n.value);if(n.kind!=="element")throw new Error(`serializeStatic: unexpected ${n.kind}`);return H(n)}function Ht(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,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function Xt(n){return n.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}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"&&Ue(n)}function Ue(n){return n.svg||ye(n.tag)||!n.props.every(e=>U(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 He(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"||He(e))}function qe(n){if(!Ue(n)||!He(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,p)=>{oe(u)&&(l=p)});let c=null;for(let u=0;u<=l;u++){let p=o.children[u],f=c?`${c}.nextSibling`:`${a}.firstChild`;if(ae(p)){let h=i(f),g=i(`holeEnd(${h})`);t.push({parentRef:a,startRef:h,endRef:g,node:p}),c=g;continue}let m=i(f);p.kind==="element"&&oe(p)&&s(p,m),c=m}}}function Kt(n){return H(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:H(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(U))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 p=t.find(f=>f.name===a);p?p.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},p={name:l,kind:"attr",expr:this.emit(u),jsxElement:!0},f=r.findIndex(m=>m.name===l);f>=0?r[f]=p:r.push(p)}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-next"},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 R(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"?R(t.argument,e):R(t.value,e);return;case"ArrayPattern":for(let t of n.elements)R(t,e);return;case"AssignmentPattern":R(n.left,e);return;case"RestElement":R(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")R(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;R(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 p=new Set;R(u,p);for(let f of p)t.bails.push({name:f,reason:"rest"});continue}t.rest={name:u.name,keys:[]};continue}if(r.computed){let u=new Set;R(r.value,u);for(let p of u)t.bails.push({name:p,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;R(o,u);for(let p of u)t.bails.push({name:p,reason:"unsafe-default"});continue}lt(o,l,t);continue}let c=new Set;R(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 p=new Map;for(let h of l.reads){let g=`${u}.${h.path.join(".")}`,x=h.fallback;p.set(h.name,x?`(${g} === undefined ? ${e.slice(x.start,x.end)} : ${g})`:g)}let f=a.typeAnnotation;if(r.push({start:a.start,end:f?.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=p.get(h.name);if(!x)return;let S=g?.type==="ObjectProperty"&&g.shorthand&&g.value===h;if(!S&&!bn(h,g))return;let b=l.reads.find(I=>I.name===h.name).path;m.push({node:h,parent:S?g:null,text:x,property:b[b.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/signal-next","@fluixi/reactive/store","@fluixi/core","@fluixi/core/rx"],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"&>(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(`
|
|
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,(d,N,v)=>{(s&&Pn(d,r)||o&&Ln(d,N,v))&&u.push(d)});let p=t.propsDestructure===!1?{edits:[],diagnostics:[],used:new Set}:pt(c.program,n,{runtimeModule:t.runtimeModule}),f=t.intrinsics===!1?{edits:[],diagnostics:[],imports:new Map}:xt(c.program);if(u.length===0&&p.edits.length===0&&f.edits.length===0&&f.diagnostics.length===0&&p.diagnostics.length===0)return null;u.sort((d,N)=>N.start-d.start||d.end-N.end);let h=new Set(p.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=[...p.edits,...f.edits];for(let d of u){let N=u.some(w=>w!==d&&w.start<=d.start&&w.end>=d.end&&w.end-w.start>d.end-d.start);if(Ee(d)){S.push({start:d.start,end:d.end,code:Bn(n,d,S,N,h,g,x,t)});continue}let v=d.quasi.expressions.map(w=>Mn(n,w,S)),k=tt(Jn(d),v,{...t,hoistTemplates:!0,templateClone:t.templateClone??!0,partialTemplates:N?!1:t.partialTemplates??!0,svg:d.tag.name==="svg"});for(let w of k.imports)h.add(w);Ce(k.ir,g),S.push({start:d.start,end:d.end,code:wt(k.code,k.templates,x)})}let b=new ee(n);for(let d of bt(S))d.start===d.end?b.appendLeft(d.start,d.code):b.overwrite(d.start,d.end,d.code);let I=Re(c.program),G=new Map;for(let[d]of g.ignoredLoad)I.has(d)||G.set(d,"unsupplied");for(let[d,N]of[...g.ignoredLoad]){if(!I.has(d))continue;let v=Dn(c.program,d);if(!v){G.set(d,An(c.program,d)?"namespace":"local");continue}if(jn(c.program,d,v.specifier)){G.set(d,"value");continue}let k=v.declaration.specifiers.filter(Y=>Y!==v.specifier),w=k.length===0&&n[v.declaration.end]===`
|
|
14
|
+
`?v.declaration.end+1:v.declaration.end;b.overwrite(v.declaration.start,w,k.length===0?"":`import { ${k.map(Y=>n.slice(Y.start,Y.end)).join(", ")} } from ${JSON.stringify(v.declaration.source.value)};`),g.deferred.set(d,{module:v.module,export:v.export,origin:"rule",loading:N}),I.delete(d),g.ignoredLoad.delete(d)}let Ie=Fn(h,g,x,I,t);Ie&&b.prepend(Ie);let $e=Nt(f,I);$e&&b.prepend($e);for(let d of c.program.body)d.type==="ImportDeclaration"&&d.source?.value==="@fluixi/core/rx"&&b.overwrite(d.source.start,d.source.end,JSON.stringify("@fluixi/reactive"));let Rt={value:d=>`${d} 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:d=>`${d} came in through a namespace import, which has no single export to defer. Import ${d} by name.`,local:d=>`${d} is declared in this file, so there is no module to load separately. Move it to its own file and import it.`,unsupplied:d=>`nothing supplies ${d}, so there is no import to defer. Import it, or add a \`resolve\` rule for it.`},Te=[...g.ignoredLoad].map(([d,N])=>({name:d,strategy:N,message:`load:${N.kind} has no effect on <${d}>: ${Rt[G.get(d)??"unsupplied"](d)}`})),Oe=[...g.unresolved].map(d=>({name:d,message:`<${d}> 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 ${d}, or add a \`resolve\` rule for it.`}));return{code:b.toString(),map:b.generateMap({source:e,includeContent:!0,hires:!0}),...Te.length?{loadDiagnostics:Te}:{},...Oe.length?{unresolvedDiagnostics:Oe}:{},...p.diagnostics.length?{propsDiagnostics:p.diagnostics}:{},...f.diagnostics.length?{intrinsicDiagnostics:f.diagnostics}:{}}}function Bn(n,e,t,r,i,s,o,a){let l=ot(e,{code:p=>de(n,p.start,p.end,t),used:i});L(l);let c=re(l,{resolver:ce(a.resolve??[]),isBound:p=>s.declared.has(p),modules:{controlFlowModule:a.controlFlowModule??a.runtimeModule??"@fluixi/dom",coreModule:a.coreModule??"@fluixi/core",routerModule:a.routerModule??"@fluixi/core/router-next"},strategyFor:p=>p.load});for(let p of c.unresolved)s.unresolved.add(p);se(l);let u=M.emit(l,{templateClone:a.templateClone??!0,partialTemplates:r?!1:a.partialTemplates??!0});for(let p of u.imports)i.add(p);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=(f,m)=>a.set(f,[...a.get(f)??[],m]),c=new Set(n);for(let f of e.builtins)c.add(f);e.delegatedEvents.size>0&&c.add("delegateEvents");for(let f of[...c].sort())r.has(f)||(On.has(f)?l(i.reactiveModule??"@fluixi/reactive/signal",f):Tn.has(f)?l(i.routerModule??"@fluixi/core/router-next",f):$n.has(f)?l(o,f):In.has(f)?l(i.controlFlowModule??s,f):l(s,f));for(let[f,m]of e.resolved)r.has(f)||l(m.module,m.export==="default"?`default as ${f}`:f===m.export?f:`${m.export} as ${f}`);let u=[];for(let[f,m]of a)u.push(`import { ${m.join(", ")} } from ${JSON.stringify(f)};`);let p=[...e.deferred].filter(([f])=>!r.has(f));if(p.length>0){r.has("deferred")||u.push(`import { deferred } from ${JSON.stringify(o)};`);for(let[f,m]of p)u.push(`const ${f} = deferred(() => import(${JSON.stringify(m.module)}), { strategy: ${_n(m.loading)}, export: ${JSON.stringify(m.export)} });`)}for(let[f,m]of t)u.push(`const ${m} = ${JSON.stringify(f.startsWith("svg:")?f.slice(4):f)};`);return e.delegatedEvents.size>0&&u.push(`delegateEvents(${JSON.stringify([...e.delegatedEvents])});`),u.length>0?u.join(`
|
|
11
15
|
`)+`
|
|
12
|
-
`:null}export{
|
|
16
|
+
`:null}export{ui as transformTemplates};
|