@kernlang/vue 3.1.5 → 3.1.7

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.
@@ -0,0 +1,574 @@
1
+ /**
2
+ * KERN Structure Planner for Vue
3
+ *
4
+ * Adapts React's structure planner for Vue conventions:
5
+ * - .vue files instead of .tsx
6
+ * - composables/ instead of hooks/
7
+ * - ref() / computed() instead of useState / useMemo
8
+ * - Barrel exports use .ts (plain TS, not SFC)
9
+ *
10
+ * Supports: bulletproof, atomic, kern, flat patterns.
11
+ */
12
+ // ── Node Classification ──────────────────────────────────────────────────
13
+ const SURFACE_TYPES = new Set(['screen', 'page', 'modal']);
14
+ const BLOCK_TYPES = new Set(['card', 'section', 'form', 'list', 'grid', 'tabs']);
15
+ const CONTAINER_TYPES = new Set(['row', 'col']);
16
+ const ELEMENT_TYPES = new Set([
17
+ 'text',
18
+ 'button',
19
+ 'input',
20
+ 'textarea',
21
+ 'progress',
22
+ 'separator',
23
+ 'divider',
24
+ 'image',
25
+ 'icon',
26
+ 'svg',
27
+ 'link',
28
+ 'slider',
29
+ 'toggle',
30
+ 'tab',
31
+ 'item',
32
+ 'component',
33
+ ]);
34
+ const GROUND_LAYER_TYPES = new Set([
35
+ 'derive',
36
+ 'transform',
37
+ 'action',
38
+ 'guard',
39
+ 'assume',
40
+ 'invariant',
41
+ 'each',
42
+ 'collect',
43
+ 'branch',
44
+ 'resolve',
45
+ 'expect',
46
+ 'recover',
47
+ 'pattern',
48
+ 'apply',
49
+ ]);
50
+ export function classifyNode(node) {
51
+ if (node.type === 'state')
52
+ return 'state';
53
+ if (node.type === 'logic' || node.type === 'handler')
54
+ return 'logic';
55
+ if (node.type === 'theme')
56
+ return 'theme';
57
+ if (node.type === 'metadata')
58
+ return 'meta';
59
+ if (GROUND_LAYER_TYPES.has(node.type))
60
+ return 'logic';
61
+ if (SURFACE_TYPES.has(node.type))
62
+ return 'surface';
63
+ if (BLOCK_TYPES.has(node.type))
64
+ return 'block';
65
+ if (CONTAINER_TYPES.has(node.type))
66
+ return 'container';
67
+ if (ELEMENT_TYPES.has(node.type))
68
+ return 'element';
69
+ return 'element';
70
+ }
71
+ // ── Component Name Helpers ───────────────────────────────────────────────
72
+ function getNodeName(node) {
73
+ const name = node.props?.name;
74
+ if (name)
75
+ return name;
76
+ return node.type.charAt(0).toUpperCase() + node.type.slice(1);
77
+ }
78
+ function getFeatureName(root) {
79
+ return root.props?.name || 'Component';
80
+ }
81
+ function toComponentName(base, featureName, hasExplicitName) {
82
+ if (hasExplicitName)
83
+ return base;
84
+ const generic = ['Card', 'Section', 'Form', 'List', 'Grid', 'Tabs', 'Modal'];
85
+ if (generic.includes(base)) {
86
+ return `${featureName}${base}`;
87
+ }
88
+ return base;
89
+ }
90
+ function toCamelCase(name) {
91
+ return name.charAt(0).toLowerCase() + name.slice(1);
92
+ }
93
+ // ── Deduplication ────────────────────────────────────────────────────────
94
+ function deduplicateName(name, usedNames) {
95
+ if (!usedNames.has(name)) {
96
+ usedNames.add(name);
97
+ return name;
98
+ }
99
+ let idx = 2;
100
+ while (usedNames.has(`${name}${idx}`))
101
+ idx++;
102
+ const deduped = `${name}${idx}`;
103
+ usedNames.add(deduped);
104
+ return deduped;
105
+ }
106
+ function collectExtractableNodes(root) {
107
+ const result = {
108
+ stateNodes: [],
109
+ logicNodes: [],
110
+ blockNodes: [],
111
+ themeNodes: [],
112
+ remainingChildren: [],
113
+ };
114
+ for (const child of root.children || []) {
115
+ const role = classifyNode(child);
116
+ switch (role) {
117
+ case 'state':
118
+ result.stateNodes.push(child);
119
+ break;
120
+ case 'logic':
121
+ result.logicNodes.push(child);
122
+ break;
123
+ case 'block':
124
+ result.blockNodes.push(child);
125
+ break;
126
+ case 'theme':
127
+ result.themeNodes.push(child);
128
+ break;
129
+ default:
130
+ result.remainingChildren.push(child);
131
+ break;
132
+ }
133
+ }
134
+ return result;
135
+ }
136
+ // ── Composable Extraction ────────────────────────────────────────────────
137
+ export function extractComposables(featureName, stateNodes, logicNodes, composablesDir) {
138
+ const composables = [];
139
+ if (stateNodes.length > 0) {
140
+ const stateDecls = stateNodes.map((n) => ({
141
+ name: n.props?.name || 'value',
142
+ initial: String(n.props?.initial ?? ''),
143
+ }));
144
+ const returnedValues = [];
145
+ for (const s of stateDecls) {
146
+ returnedValues.push(s.name);
147
+ }
148
+ composables.push({
149
+ composableName: `use${featureName}State`,
150
+ path: `${composablesDir}/use${featureName}State.ts`,
151
+ stateDecls,
152
+ logicBlocks: [],
153
+ returnedValues,
154
+ importedBy: [],
155
+ });
156
+ }
157
+ if (logicNodes.length > 0) {
158
+ const logicBlocks = logicNodes.map((n) => n.props?.code || '');
159
+ const returnedValues = [];
160
+ const allCode = logicBlocks.join('\n');
161
+ const fnMatches = allCode.match(/(?:const|function)\s+(\w+)/g);
162
+ if (fnMatches) {
163
+ for (const m of fnMatches) {
164
+ const name = m.replace(/^(?:const|function)\s+/, '');
165
+ returnedValues.push(name);
166
+ }
167
+ }
168
+ composables.push({
169
+ composableName: `use${featureName}Logic`,
170
+ path: `${composablesDir}/use${featureName}Logic.ts`,
171
+ stateDecls: [],
172
+ logicBlocks,
173
+ returnedValues,
174
+ importedBy: [],
175
+ });
176
+ }
177
+ return composables;
178
+ }
179
+ // ── Generate Composable File Content ─────────────────────────────────────
180
+ export function generateStateComposableCode(composable) {
181
+ const lines = [];
182
+ lines.push(`import { ref } from 'vue';`);
183
+ lines.push('');
184
+ lines.push(`export function ${composable.composableName}() {`);
185
+ for (const s of composable.stateDecls) {
186
+ const init = s.initial === 'true'
187
+ ? 'true'
188
+ : s.initial === 'false'
189
+ ? 'false'
190
+ : s.initial === ''
191
+ ? "''"
192
+ : Number.isNaN(Number(s.initial))
193
+ ? `'${s.initial}'`
194
+ : s.initial;
195
+ lines.push(` const ${s.name} = ref(${init});`);
196
+ }
197
+ lines.push('');
198
+ lines.push(` return { ${composable.returnedValues.join(', ')} };`);
199
+ lines.push('}');
200
+ return lines.join('\n');
201
+ }
202
+ export function generateLogicComposableCode(composable, stateComposableName) {
203
+ const lines = [];
204
+ // Detect needed Vue imports
205
+ const allCode = composable.logicBlocks.join('\n');
206
+ const vueImports = [];
207
+ if (allCode.includes('watch'))
208
+ vueImports.push('watch');
209
+ if (allCode.includes('computed'))
210
+ vueImports.push('computed');
211
+ if (allCode.includes('onMounted'))
212
+ vueImports.push('onMounted');
213
+ if (allCode.includes('ref'))
214
+ vueImports.push('ref');
215
+ if (vueImports.length > 0) {
216
+ lines.push(`import { ${vueImports.sort().join(', ')} } from 'vue';`);
217
+ }
218
+ if (stateComposableName) {
219
+ lines.push(`import { ${stateComposableName} } from './${stateComposableName}';`);
220
+ }
221
+ if (vueImports.length > 0 || stateComposableName) {
222
+ lines.push('');
223
+ }
224
+ lines.push(`export function ${composable.composableName}() {`);
225
+ if (stateComposableName) {
226
+ lines.push(` const state = ${stateComposableName}();`);
227
+ }
228
+ for (const block of composable.logicBlocks) {
229
+ for (const line of block.split('\n')) {
230
+ lines.push(` ${line}`);
231
+ }
232
+ lines.push('');
233
+ }
234
+ if (composable.returnedValues.length > 0) {
235
+ lines.push(` return { ${composable.returnedValues.join(', ')} };`);
236
+ }
237
+ lines.push('}');
238
+ return lines.join('\n');
239
+ }
240
+ // ── Generate Types File Content ──────────────────────────────────────────
241
+ export function generateTypesCode(featureName, stateDecls) {
242
+ const lines = [];
243
+ lines.push(`import type { Ref } from 'vue';`);
244
+ lines.push('');
245
+ lines.push(`export interface ${featureName}State {`);
246
+ for (const s of stateDecls) {
247
+ const tsType = s.initial === 'true' || s.initial === 'false'
248
+ ? 'boolean'
249
+ : !Number.isNaN(Number(s.initial)) && s.initial !== ''
250
+ ? 'number'
251
+ : 'string';
252
+ lines.push(` ${s.name}: Ref<${tsType}>;`);
253
+ }
254
+ lines.push('}');
255
+ return lines.join('\n');
256
+ }
257
+ // ── Generate Barrel Export Content ────────────────────────────────────────
258
+ export function generateBarrelCode(barrel) {
259
+ return barrel.exports.map((e) => `export { ${e.name} } from '${e.from}';`).join('\n');
260
+ }
261
+ // ── Pattern Planners ─────────────────────────────────────────────────────
262
+ function planBulletproof(root) {
263
+ const featureName = getFeatureName(root);
264
+ const featureDir = `features/${toCamelCase(featureName)}`;
265
+ const { stateNodes, logicNodes, blockNodes, themeNodes } = collectExtractableNodes(root);
266
+ const usedNames = new Set();
267
+ const files = [];
268
+ // Entry component
269
+ files.push({
270
+ path: `${featureDir}/index.vue`,
271
+ artifactType: 'entry',
272
+ nodes: [root],
273
+ rootNode: root,
274
+ dependsOn: [],
275
+ isEntry: true,
276
+ });
277
+ // Block components → components/
278
+ for (const block of blockNodes) {
279
+ const rawName = getNodeName(block);
280
+ const hasExplicitName = !!block.props?.name;
281
+ const compName = deduplicateName(toComponentName(rawName, featureName, hasExplicitName), usedNames);
282
+ files.push({
283
+ path: `${featureDir}/components/${compName}.vue`,
284
+ artifactType: 'component',
285
+ nodes: [block],
286
+ rootNode: block,
287
+ dependsOn: [`${featureDir}/index.vue`],
288
+ isEntry: false,
289
+ componentName: compName,
290
+ });
291
+ }
292
+ // Composables (Vue equivalent of hooks)
293
+ const composables = extractComposables(featureName, stateNodes, logicNodes, `${featureDir}/composables`);
294
+ for (const composable of composables) {
295
+ files.push({
296
+ path: composable.path,
297
+ artifactType: 'hook',
298
+ nodes: composable.stateDecls.length > 0 ? stateNodes : logicNodes,
299
+ rootNode: root,
300
+ dependsOn: [],
301
+ isEntry: false,
302
+ });
303
+ }
304
+ // Types
305
+ if (stateNodes.length > 0) {
306
+ files.push({
307
+ path: `${featureDir}/types/${toCamelCase(featureName)}.types.ts`,
308
+ artifactType: 'types',
309
+ nodes: stateNodes,
310
+ rootNode: root,
311
+ dependsOn: [],
312
+ isEntry: false,
313
+ });
314
+ }
315
+ // Theme
316
+ if (themeNodes.length > 0) {
317
+ files.push({
318
+ path: `${featureDir}/theme.ts`,
319
+ artifactType: 'theme',
320
+ nodes: themeNodes,
321
+ rootNode: root,
322
+ dependsOn: [],
323
+ isEntry: false,
324
+ });
325
+ }
326
+ // Barrel
327
+ const barrels = [
328
+ {
329
+ path: `${featureDir}/barrel.ts`,
330
+ exports: [{ name: featureName, from: './index' }],
331
+ },
332
+ ];
333
+ // Wire up dependencies
334
+ const entryFile = files[0];
335
+ const componentPaths = files.filter((f) => f.artifactType === 'component').map((f) => f.path);
336
+ const composablePaths = files.filter((f) => f.artifactType === 'hook').map((f) => f.path);
337
+ entryFile.dependsOn = [...componentPaths, ...composablePaths];
338
+ return { files, barrels };
339
+ }
340
+ function planAtomic(root) {
341
+ const featureName = getFeatureName(root);
342
+ const { stateNodes, logicNodes, blockNodes, themeNodes, remainingChildren } = collectExtractableNodes(root);
343
+ const usedNames = new Set();
344
+ const files = [];
345
+ // Page → pages/
346
+ files.push({
347
+ path: `pages/${featureName}Page.vue`,
348
+ artifactType: 'page',
349
+ nodes: [root],
350
+ rootNode: root,
351
+ dependsOn: [],
352
+ isEntry: true,
353
+ });
354
+ // Template → templates/
355
+ files.push({
356
+ path: `templates/${featureName}Template.vue`,
357
+ artifactType: 'template',
358
+ nodes: [root],
359
+ rootNode: root,
360
+ dependsOn: [],
361
+ isEntry: false,
362
+ });
363
+ // Blocks → organisms/
364
+ for (const block of blockNodes) {
365
+ const rawName = getNodeName(block);
366
+ const hasExplicitName = !!block.props?.name;
367
+ const compName = deduplicateName(toComponentName(rawName, featureName, hasExplicitName), usedNames);
368
+ files.push({
369
+ path: `organisms/${compName}.vue`,
370
+ artifactType: 'component',
371
+ nodes: [block],
372
+ rootNode: block,
373
+ dependsOn: [],
374
+ isEntry: false,
375
+ componentName: compName,
376
+ });
377
+ }
378
+ // Containers → molecules, elements → atoms
379
+ const molecules = [];
380
+ const atoms = [];
381
+ for (const child of remainingChildren) {
382
+ const role = classifyNode(child);
383
+ if (role === 'container' && child.children && child.children.length > 0) {
384
+ molecules.push(child);
385
+ }
386
+ else if (role === 'element') {
387
+ atoms.push(child);
388
+ }
389
+ }
390
+ for (const block of blockNodes) {
391
+ if (block.children) {
392
+ for (const child of block.children) {
393
+ const role = classifyNode(child);
394
+ if (role === 'element' && child.props?.name) {
395
+ atoms.push(child);
396
+ }
397
+ }
398
+ }
399
+ }
400
+ for (const mol of molecules) {
401
+ const rawName = getNodeName(mol);
402
+ const compName = deduplicateName(rawName, usedNames);
403
+ files.push({
404
+ path: `molecules/${compName}.vue`,
405
+ artifactType: 'component',
406
+ nodes: [mol],
407
+ rootNode: mol,
408
+ dependsOn: [],
409
+ isEntry: false,
410
+ componentName: compName,
411
+ });
412
+ }
413
+ for (const atom of atoms) {
414
+ if (!atom.props?.name)
415
+ continue;
416
+ const rawName = getNodeName(atom);
417
+ const compName = deduplicateName(rawName, usedNames);
418
+ files.push({
419
+ path: `atoms/${compName}.vue`,
420
+ artifactType: 'component',
421
+ nodes: [atom],
422
+ rootNode: atom,
423
+ dependsOn: [],
424
+ isEntry: false,
425
+ componentName: compName,
426
+ });
427
+ }
428
+ // Composables
429
+ const composables = extractComposables(featureName, stateNodes, logicNodes, 'composables');
430
+ for (const composable of composables) {
431
+ files.push({
432
+ path: composable.path,
433
+ artifactType: 'hook',
434
+ nodes: composable.stateDecls.length > 0 ? stateNodes : logicNodes,
435
+ rootNode: root,
436
+ dependsOn: [],
437
+ isEntry: false,
438
+ });
439
+ }
440
+ // Types
441
+ if (stateNodes.length > 0) {
442
+ files.push({
443
+ path: `types/${toCamelCase(featureName)}.types.ts`,
444
+ artifactType: 'types',
445
+ nodes: stateNodes,
446
+ rootNode: root,
447
+ dependsOn: [],
448
+ isEntry: false,
449
+ });
450
+ }
451
+ // Theme
452
+ if (themeNodes.length > 0) {
453
+ files.push({
454
+ path: `theme/${toCamelCase(featureName)}.theme.ts`,
455
+ artifactType: 'theme',
456
+ nodes: themeNodes,
457
+ rootNode: root,
458
+ dependsOn: [],
459
+ isEntry: false,
460
+ });
461
+ }
462
+ return { files, barrels: [] };
463
+ }
464
+ function planKern(root) {
465
+ const featureName = getFeatureName(root);
466
+ const { stateNodes, logicNodes, blockNodes, themeNodes } = collectExtractableNodes(root);
467
+ const usedNames = new Set();
468
+ const files = [];
469
+ // Surface
470
+ files.push({
471
+ path: `surfaces/${featureName}.surface.vue`,
472
+ artifactType: 'entry',
473
+ nodes: [root],
474
+ rootNode: root,
475
+ dependsOn: [],
476
+ isEntry: true,
477
+ });
478
+ // Blocks
479
+ for (const block of blockNodes) {
480
+ const rawName = getNodeName(block);
481
+ const hasExplicitName = !!block.props?.name;
482
+ const compName = deduplicateName(toComponentName(rawName, featureName, hasExplicitName), usedNames);
483
+ files.push({
484
+ path: `blocks/${compName}.block.vue`,
485
+ artifactType: 'component',
486
+ nodes: [block],
487
+ rootNode: block,
488
+ dependsOn: [],
489
+ isEntry: false,
490
+ componentName: compName,
491
+ });
492
+ }
493
+ // Signals (composables for state + logic)
494
+ if (stateNodes.length > 0 || logicNodes.length > 0) {
495
+ const composables = extractComposables(featureName, stateNodes, logicNodes, 'signals');
496
+ for (const composable of composables) {
497
+ files.push({
498
+ path: composable.path,
499
+ artifactType: 'hook',
500
+ nodes: composable.stateDecls.length > 0 ? stateNodes : logicNodes,
501
+ rootNode: root,
502
+ dependsOn: [],
503
+ isEntry: false,
504
+ });
505
+ }
506
+ }
507
+ // Tokens (theme)
508
+ if (themeNodes.length > 0) {
509
+ files.push({
510
+ path: `tokens/${toCamelCase(featureName)}.tokens.ts`,
511
+ artifactType: 'theme',
512
+ nodes: themeNodes,
513
+ rootNode: root,
514
+ dependsOn: [],
515
+ isEntry: false,
516
+ });
517
+ }
518
+ // Models (types)
519
+ if (stateNodes.length > 0) {
520
+ files.push({
521
+ path: `models/${toCamelCase(featureName)}.model.ts`,
522
+ artifactType: 'types',
523
+ nodes: stateNodes,
524
+ rootNode: root,
525
+ dependsOn: [],
526
+ isEntry: false,
527
+ });
528
+ }
529
+ return { files, barrels: [] };
530
+ }
531
+ // ── Nuxt Adapter ─────────────────────────────────────────────────────────
532
+ export function adaptPlanForNuxt(plan, root) {
533
+ const isLayout = root.type === 'layout';
534
+ const isError = root.type === 'error';
535
+ for (const file of plan.files) {
536
+ if (file.isEntry) {
537
+ if (isLayout)
538
+ file.path = file.path.replace(/index\.vue$|[^/]+\.surface\.vue$|[^/]+Page\.vue$/, 'layout.vue');
539
+ else if (isError)
540
+ file.path = file.path.replace(/index\.vue$|[^/]+\.surface\.vue$|[^/]+Page\.vue$/, 'error.vue');
541
+ else {
542
+ if (!file.path.includes('index.vue')) {
543
+ file.path = file.path.replace(/[^/]+\.surface\.vue$|[^/]+Page\.vue$/, 'page.vue');
544
+ }
545
+ }
546
+ }
547
+ }
548
+ return plan;
549
+ }
550
+ // ── Main Planner ─────────────────────────────────────────────────────────
551
+ export function planVueStructure(root, config) {
552
+ const structure = config.structure;
553
+ if (structure === 'flat')
554
+ return null;
555
+ let plan;
556
+ switch (structure) {
557
+ case 'bulletproof':
558
+ plan = planBulletproof(root);
559
+ break;
560
+ case 'atomic':
561
+ plan = planAtomic(root);
562
+ break;
563
+ case 'kern':
564
+ plan = planKern(root);
565
+ break;
566
+ default:
567
+ return null;
568
+ }
569
+ if (config.target === 'nuxt') {
570
+ plan = adaptPlanForNuxt(plan, root);
571
+ }
572
+ return plan;
573
+ }
574
+ //# sourceMappingURL=structure-vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structure-vue.js","sourceRoot":"","sources":["../src/structure-vue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAqCH,4EAA4E;AAE5E,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC3D,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AACjF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAChD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,MAAM;IACN,QAAQ;IACR,OAAO;IACP,UAAU;IACV,UAAU;IACV,WAAW;IACX,SAAS;IACT,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,MAAM;IACN,WAAW;CACZ,CAAC,CAAC;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACjC,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,WAAW;IACX,MAAM;IACN,SAAS;IACT,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,SAAS;IACT,SAAS;IACT,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IACrE,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,MAAM,CAAC;IAC5C,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IACtD,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IAC/C,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC;IACvD,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,4EAA4E;AAE5E,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,IAA0B,CAAC;IACpD,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACtB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,OAAQ,IAAI,CAAC,KAAK,EAAE,IAAe,IAAI,WAAW,CAAC;AACrD,CAAC;AAED,SAAS,eAAe,CAAC,IAAY,EAAE,WAAmB,EAAE,eAAwB;IAClF,IAAI,eAAe;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7E,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,GAAG,WAAW,GAAG,IAAI,EAAE,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,4EAA4E;AAE5E,SAAS,eAAe,CAAC,IAAY,EAAE,SAAsB;IAC3D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,OAAO,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC;QAAE,GAAG,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAG,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC;IAChC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,OAAO,OAAO,CAAC;AACjB,CAAC;AAYD,SAAS,uBAAuB,CAAC,IAAY;IAC3C,MAAM,MAAM,GAAqB;QAC/B,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,EAAE;QACd,iBAAiB,EAAE,EAAE;KACtB,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,OAAO;gBACV,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC9B,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC9B,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC9B,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC9B,MAAM;YACR;gBACE,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrC,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,4EAA4E;AAE5E,MAAM,UAAU,kBAAkB,CAChC,WAAmB,EACnB,UAAoB,EACpB,UAAoB,EACpB,cAAsB;IAEtB,MAAM,WAAW,GAA0B,EAAE,CAAC;IAE9C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxC,IAAI,EAAG,CAAC,CAAC,KAAK,EAAE,IAAe,IAAI,OAAO;YAC1C,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;SACxC,CAAC,CAAC,CAAC;QAEJ,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAED,WAAW,CAAC,IAAI,CAAC;YACf,cAAc,EAAE,MAAM,WAAW,OAAO;YACxC,IAAI,EAAE,GAAG,cAAc,OAAO,WAAW,UAAU;YACnD,UAAU;YACV,WAAW,EAAE,EAAE;YACf,cAAc;YACd,UAAU,EAAE,EAAE;SACf,CAAC,CAAC;IACL,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,KAAK,EAAE,IAAe,IAAI,EAAE,CAAC,CAAC;QAE3E,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC/D,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;gBAC1B,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;gBACrD,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,WAAW,CAAC,IAAI,CAAC;YACf,cAAc,EAAE,MAAM,WAAW,OAAO;YACxC,IAAI,EAAE,GAAG,cAAc,OAAO,WAAW,UAAU;YACnD,UAAU,EAAE,EAAE;YACd,WAAW;YACX,cAAc;YACd,UAAU,EAAE,EAAE;SACf,CAAC,CAAC;IACL,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,4EAA4E;AAE5E,MAAM,UAAU,2BAA2B,CAAC,UAA+B;IACzE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,mBAAmB,UAAU,CAAC,cAAc,MAAM,CAAC,CAAC;IAE/D,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;QACtC,MAAM,IAAI,GACR,CAAC,CAAC,OAAO,KAAK,MAAM;YAClB,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO;gBACrB,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE;oBAChB,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBAC/B,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG;wBAClB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,UAAU,IAAI,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEhB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,UAA+B,EAAE,mBAA4B;IACvG,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,4BAA4B;IAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxD,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9D,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChE,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEpD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,YAAY,UAAU,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,mBAAmB,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,YAAY,mBAAmB,cAAc,mBAAmB,IAAI,CAAC,CAAC;IACnF,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,mBAAmB,EAAE,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,mBAAmB,UAAU,CAAC,cAAc,MAAM,CAAC,CAAC;IAE/D,IAAI,mBAAmB,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,mBAAmB,mBAAmB,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;QAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,UAAU,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEhB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,4EAA4E;AAE5E,MAAM,UAAU,iBAAiB,CAAC,WAAmB,EAAE,UAA+C;IACpG,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC9C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,oBAAoB,WAAW,SAAS,CAAC,CAAC;IAErD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,MAAM,GACV,CAAC,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO;YAC3C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE;gBACpD,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,QAAQ,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,SAAS,MAAM,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,6EAA6E;AAE7E,MAAM,UAAU,kBAAkB,CAAC,MAAoB;IACrD,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxF,CAAC;AAED,4EAA4E;AAE5E,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,YAAY,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;IAC1D,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACzF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,KAAK,GAAkB,EAAE,CAAC;IAEhC,kBAAkB;IAClB,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,GAAG,UAAU,YAAY;QAC/B,YAAY,EAAE,OAAO;QACrB,KAAK,EAAE,CAAC,IAAI,CAAC;QACb,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAEH,iCAAiC;IACjC,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;QAC5C,MAAM,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,eAAe,CAAC,EAAE,SAAS,CAAC,CAAC;QAEpG,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,GAAG,UAAU,eAAe,QAAQ,MAAM;YAChD,YAAY,EAAE,WAAW;YACzB,KAAK,EAAE,CAAC,KAAK,CAAC;YACd,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,GAAG,UAAU,YAAY,CAAC;YACtC,OAAO,EAAE,KAAK;YACd,aAAa,EAAE,QAAQ;SACxB,CAAC,CAAC;IACL,CAAC;IAED,wCAAwC;IACxC,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,UAAU,cAAc,CAAC,CAAC;IACzG,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,YAAY,EAAE,MAAM;YACpB,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;YACjE,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;IACR,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,GAAG,UAAU,UAAU,WAAW,CAAC,WAAW,CAAC,WAAW;YAChE,YAAY,EAAE,OAAO;YACrB,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;IACR,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,GAAG,UAAU,WAAW;YAC9B,YAAY,EAAE,OAAO;YACrB,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACL,CAAC;IAED,SAAS;IACT,MAAM,OAAO,GAAmB;QAC9B;YACE,IAAI,EAAE,GAAG,UAAU,YAAY;YAC/B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;SAClD;KACF,CAAC;IAEF,uBAAuB;IACvB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9F,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1F,SAAS,CAAC,SAAS,GAAG,CAAC,GAAG,cAAc,EAAE,GAAG,eAAe,CAAC,CAAC;IAE9D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC5G,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,KAAK,GAAkB,EAAE,CAAC;IAEhC,gBAAgB;IAChB,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,SAAS,WAAW,UAAU;QACpC,YAAY,EAAE,MAAM;QACpB,KAAK,EAAE,CAAC,IAAI,CAAC;QACb,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAEH,wBAAwB;IACxB,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,aAAa,WAAW,cAAc;QAC5C,YAAY,EAAE,UAAU;QACxB,KAAK,EAAE,CAAC,IAAI,CAAC;QACb,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IAEH,sBAAsB;IACtB,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;QAC5C,MAAM,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,eAAe,CAAC,EAAE,SAAS,CAAC,CAAC;QAEpG,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,aAAa,QAAQ,MAAM;YACjC,YAAY,EAAE,WAAW;YACzB,KAAK,EAAE,CAAC,KAAK,CAAC;YACd,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,KAAK;YACd,aAAa,EAAE,QAAQ;SACxB,CAAC,CAAC;IACL,CAAC;IAED,2CAA2C;IAC3C,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnC,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;gBACjC,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;oBAC5C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACrD,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,aAAa,QAAQ,MAAM;YACjC,YAAY,EAAE,WAAW;YACzB,KAAK,EAAE,CAAC,GAAG,CAAC;YACZ,QAAQ,EAAE,GAAG;YACb,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,KAAK;YACd,aAAa,EAAE,QAAQ;SACxB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI;YAAE,SAAS;QAChC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACrD,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,SAAS,QAAQ,MAAM;YAC7B,YAAY,EAAE,WAAW;YACzB,KAAK,EAAE,CAAC,IAAI,CAAC;YACb,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,KAAK;YACd,aAAa,EAAE,QAAQ;SACxB,CAAC,CAAC;IACL,CAAC;IAED,cAAc;IACd,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IAC3F,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,YAAY,EAAE,MAAM;YACpB,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;YACjE,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;IACR,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,SAAS,WAAW,CAAC,WAAW,CAAC,WAAW;YAClD,YAAY,EAAE,OAAO;YACrB,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;IACR,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,SAAS,WAAW,CAAC,WAAW,CAAC,WAAW;YAClD,YAAY,EAAE,OAAO;YACrB,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACzF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,KAAK,GAAkB,EAAE,CAAC;IAEhC,UAAU;IACV,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,YAAY,WAAW,cAAc;QAC3C,YAAY,EAAE,OAAO;QACrB,KAAK,EAAE,CAAC,IAAI,CAAC;QACb,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAEH,SAAS;IACT,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;QAC5C,MAAM,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,eAAe,CAAC,EAAE,SAAS,CAAC,CAAC;QAEpG,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,UAAU,QAAQ,YAAY;YACpC,YAAY,EAAE,WAAW;YACzB,KAAK,EAAE,CAAC,KAAK,CAAC;YACd,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,KAAK;YACd,aAAa,EAAE,QAAQ;SACxB,CAAC,CAAC;IACL,CAAC;IAED,0CAA0C;IAC1C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACvF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,YAAY,EAAE,MAAM;gBACpB,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;gBACjE,QAAQ,EAAE,IAAI;gBACd,SAAS,EAAE,EAAE;gBACb,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,UAAU,WAAW,CAAC,WAAW,CAAC,YAAY;YACpD,YAAY,EAAE,OAAO;YACrB,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB;IACjB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,UAAU,WAAW,CAAC,WAAW,CAAC,WAAW;YACnD,YAAY,EAAE,OAAO;YACrB,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAChC,CAAC;AAED,4EAA4E;AAE5E,MAAM,UAAU,gBAAgB,CAAC,IAAmB,EAAE,IAAY;IAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;IAEtC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,QAAQ;gBAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kDAAkD,EAAE,YAAY,CAAC,CAAC;iBACzG,IAAI,OAAO;gBAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kDAAkD,EAAE,WAAW,CAAC,CAAC;iBAC5G,CAAC;gBACJ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,sCAAsC,EAAE,UAAU,CAAC,CAAC;gBACpF,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4EAA4E;AAE5E,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,MAA0B;IACvE,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IAEnC,IAAI,SAAS,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAEtC,IAAI,IAAmB,CAAC;IACxB,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,aAAa;YAChB,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM;QACR,KAAK,QAAQ;YACX,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM;QACR,KAAK,MAAM;YACT,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM;QACR;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC7B,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -9,5 +9,5 @@
9
9
  * - Auto-imports assumed (no explicit 'import { ref } from "vue"')
10
10
  * - Uses Nuxt composables: useHead, useRoute, navigateTo
11
11
  */
12
- import type { IRNode, TranspileResult, ResolvedKernConfig } from '@kernlang/core';
12
+ import type { IRNode, ResolvedKernConfig, TranspileResult } from '@kernlang/core';
13
13
  export declare function transpileNuxt(root: IRNode, config?: ResolvedKernConfig): TranspileResult;