@framingui/mcp-server 0.6.25 → 0.6.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/README.md +2 -1
  2. package/dist/cli/agent-md-templates.d.ts.map +1 -1
  3. package/dist/cli/agent-md-templates.js +22 -2
  4. package/dist/cli/agent-md-templates.js.map +1 -1
  5. package/dist/cli/guide-template.d.ts.map +1 -1
  6. package/dist/cli/guide-template.js +29 -0
  7. package/dist/cli/guide-template.js.map +1 -1
  8. package/dist/cli/init.d.ts +3 -1
  9. package/dist/cli/init.d.ts.map +1 -1
  10. package/dist/cli/init.js +41 -21
  11. package/dist/cli/init.js.map +1 -1
  12. package/dist/index.js +4 -4
  13. package/dist/index.js.map +1 -1
  14. package/dist/schemas/mcp-schemas.d.ts +410 -410
  15. package/dist/schemas/mcp-schemas.d.ts.map +1 -1
  16. package/dist/tools/validate-environment.d.ts.map +1 -1
  17. package/dist/tools/validate-environment.js +7 -3
  18. package/dist/tools/validate-environment.js.map +1 -1
  19. package/package.json +2 -2
  20. package/dist/cli/commands.d.ts +0 -2
  21. package/dist/cli/commands.d.ts.map +0 -1
  22. package/dist/cli/commands.js +0 -20
  23. package/dist/cli/commands.js.map +0 -1
  24. package/dist/cli/help.d.ts +0 -5
  25. package/dist/cli/help.d.ts.map +0 -1
  26. package/dist/cli/help.js +0 -59
  27. package/dist/cli/help.js.map +0 -1
  28. package/dist/cli/package-manager.d.ts +0 -5
  29. package/dist/cli/package-manager.d.ts.map +0 -1
  30. package/dist/cli/package-manager.js +0 -34
  31. package/dist/cli/package-manager.js.map +0 -1
  32. package/dist/cli/update.d.ts +0 -8
  33. package/dist/cli/update.d.ts.map +0 -1
  34. package/dist/cli/update.js +0 -53
  35. package/dist/cli/update.js.map +0 -1
  36. package/dist/commands/slash-command-adapters.d.ts +0 -9
  37. package/dist/commands/slash-command-adapters.d.ts.map +0 -1
  38. package/dist/commands/slash-command-adapters.js +0 -116
  39. package/dist/commands/slash-command-adapters.js.map +0 -1
  40. package/dist/data/component-props.d.ts +0 -30
  41. package/dist/data/component-props.d.ts.map +0 -1
  42. package/dist/data/component-props.js +0 -537
  43. package/dist/data/component-props.js.map +0 -1
  44. package/dist/data/component-registry.d.ts +0 -30
  45. package/dist/data/component-registry.d.ts.map +0 -1
  46. package/dist/data/component-registry.js +0 -320
  47. package/dist/data/component-registry.js.map +0 -1
  48. package/dist/data/examples/screen-examples.d.ts +0 -38
  49. package/dist/data/examples/screen-examples.d.ts.map +0 -1
  50. package/dist/data/examples/screen-examples.js +0 -500
  51. package/dist/data/examples/screen-examples.js.map +0 -1
  52. package/dist/utils/style-contract-reader.d.ts +0 -10
  53. package/dist/utils/style-contract-reader.d.ts.map +0 -1
  54. package/dist/utils/style-contract-reader.js +0 -67
  55. package/dist/utils/style-contract-reader.js.map +0 -1
@@ -1,500 +0,0 @@
1
- /**
2
- * Example Screen Definitions for SPEC-MCP-004 Phase 3.5
3
- * Provides reference examples for coding agents to generate screen definitions
4
- */
5
- /**
6
- * Team Grid Example
7
- * A dashboard-style screen displaying team members in a grid layout
8
- */
9
- export const teamGridExample = {
10
- name: 'Team Grid',
11
- description: 'Dashboard screen showing team members in a responsive grid with avatars and role information',
12
- definition: {
13
- id: 'team-grid',
14
- name: 'Team Grid Dashboard',
15
- description: 'Display team members in a grid layout with profile cards',
16
- shell: 'shell.web.dashboard',
17
- page: 'page.dashboard',
18
- themeId: 'square-minimalism',
19
- sections: [
20
- {
21
- id: 'header',
22
- pattern: 'section.container',
23
- slot: 'header',
24
- components: [
25
- {
26
- type: 'Heading',
27
- props: {
28
- level: 1,
29
- children: 'Our Team',
30
- },
31
- },
32
- {
33
- type: 'Text',
34
- props: {
35
- variant: 'muted',
36
- children: 'Meet the people behind our success',
37
- },
38
- },
39
- ],
40
- },
41
- {
42
- id: 'team-members',
43
- pattern: 'section.grid-4',
44
- slot: 'main',
45
- components: [
46
- {
47
- type: 'Card',
48
- props: {
49
- variant: 'elevated',
50
- },
51
- children: [
52
- {
53
- type: 'Avatar',
54
- props: {
55
- src: '/avatars/user-1.jpg',
56
- alt: 'Team Member',
57
- size: 'lg',
58
- },
59
- },
60
- {
61
- type: 'Heading',
62
- props: {
63
- level: 3,
64
- children: 'Jane Smith',
65
- },
66
- },
67
- {
68
- type: 'Badge',
69
- props: {
70
- variant: 'secondary',
71
- children: 'Engineering',
72
- },
73
- },
74
- {
75
- type: 'Text',
76
- props: {
77
- variant: 'small',
78
- children: 'Senior Software Engineer',
79
- },
80
- },
81
- ],
82
- },
83
- {
84
- type: 'Card',
85
- props: {
86
- variant: 'elevated',
87
- },
88
- children: [
89
- {
90
- type: 'Avatar',
91
- props: {
92
- src: '/avatars/user-2.jpg',
93
- alt: 'Team Member',
94
- size: 'lg',
95
- },
96
- },
97
- {
98
- type: 'Heading',
99
- props: {
100
- level: 3,
101
- children: 'John Doe',
102
- },
103
- },
104
- {
105
- type: 'Badge',
106
- props: {
107
- variant: 'secondary',
108
- children: 'Design',
109
- },
110
- },
111
- {
112
- type: 'Text',
113
- props: {
114
- variant: 'small',
115
- children: 'UX Lead',
116
- },
117
- },
118
- ],
119
- },
120
- ],
121
- },
122
- ],
123
- metadata: {
124
- version: '1.0.0',
125
- author: 'framingui',
126
- created: '2025-01-01T00:00:00Z',
127
- },
128
- },
129
- };
130
- /**
131
- * Data Table Example
132
- * A screen displaying data in a tabular format with filtering and sorting
133
- */
134
- export const dataTableExample = {
135
- name: 'Data Table',
136
- description: 'Screen with a data table showing records with search, filter, and pagination controls',
137
- definition: {
138
- id: 'data-table-view',
139
- name: 'Data Table View',
140
- description: 'Tabular data display with interactive controls',
141
- shell: 'shell.web.app',
142
- page: 'page.resource',
143
- themeId: 'square-minimalism',
144
- sections: [
145
- {
146
- id: 'toolbar',
147
- pattern: 'section.split-50-50',
148
- slot: 'header',
149
- components: [
150
- {
151
- type: 'Input',
152
- props: {
153
- type: 'search',
154
- placeholder: 'Search records...',
155
- icon: 'search',
156
- },
157
- },
158
- {
159
- type: 'Dropdown',
160
- props: {
161
- placeholder: 'Filter by status',
162
- options: [
163
- { value: 'all', label: 'All' },
164
- { value: 'active', label: 'Active' },
165
- { value: 'inactive', label: 'Inactive' },
166
- ],
167
- },
168
- },
169
- ],
170
- },
171
- {
172
- id: 'table-content',
173
- pattern: 'section.container',
174
- slot: 'main',
175
- components: [
176
- {
177
- type: 'Table',
178
- props: {
179
- columns: [
180
- { key: 'id', header: 'ID', sortable: true },
181
- { key: 'name', header: 'Name', sortable: true },
182
- { key: 'status', header: 'Status' },
183
- { key: 'date', header: 'Created', sortable: true },
184
- { key: 'actions', header: 'Actions' },
185
- ],
186
- data: [],
187
- pagination: {
188
- pageSize: 10,
189
- showPageSizeSelector: true,
190
- },
191
- },
192
- },
193
- ],
194
- },
195
- {
196
- id: 'pagination',
197
- pattern: 'section.container',
198
- slot: 'footer',
199
- components: [
200
- {
201
- type: 'Text',
202
- props: {
203
- variant: 'muted',
204
- children: 'Showing 1-10 of 100 results',
205
- },
206
- },
207
- ],
208
- },
209
- ],
210
- metadata: {
211
- version: '1.0.0',
212
- author: 'framingui',
213
- created: '2025-01-01T00:00:00Z',
214
- },
215
- },
216
- };
217
- /**
218
- * Login Form Example
219
- * Authentication screen with email/password login
220
- */
221
- export const loginFormExample = {
222
- name: 'Login Form',
223
- description: 'Authentication screen with email and password fields, social login options, and forgot password link',
224
- definition: {
225
- id: 'login-screen',
226
- name: 'Login',
227
- description: 'User authentication screen',
228
- shell: 'shell.web.auth',
229
- page: 'page.wizard',
230
- sections: [
231
- {
232
- id: 'login-form',
233
- pattern: 'section.centered',
234
- slot: 'main',
235
- components: [
236
- {
237
- type: 'Card',
238
- props: {
239
- variant: 'elevated',
240
- className: 'max-w-md w-full',
241
- },
242
- children: [
243
- {
244
- type: 'Heading',
245
- props: {
246
- level: 2,
247
- children: 'Welcome back',
248
- },
249
- },
250
- {
251
- type: 'Text',
252
- props: {
253
- variant: 'muted',
254
- children: 'Enter your credentials to access your account',
255
- },
256
- },
257
- {
258
- type: 'Form',
259
- props: {
260
- onSubmit: 'handleLogin',
261
- },
262
- children: [
263
- {
264
- type: 'Input',
265
- props: {
266
- type: 'email',
267
- label: 'Email',
268
- placeholder: 'Enter your email',
269
- required: true,
270
- },
271
- },
272
- {
273
- type: 'Input',
274
- props: {
275
- type: 'password',
276
- label: 'Password',
277
- placeholder: 'Enter your password',
278
- required: true,
279
- },
280
- },
281
- {
282
- type: 'Button',
283
- props: {
284
- type: 'submit',
285
- variant: 'primary',
286
- fullWidth: true,
287
- children: 'Sign In',
288
- },
289
- },
290
- ],
291
- },
292
- {
293
- type: 'Link',
294
- props: {
295
- href: '/forgot-password',
296
- variant: 'subtle',
297
- children: 'Forgot password?',
298
- },
299
- },
300
- ],
301
- },
302
- ],
303
- },
304
- ],
305
- metadata: {
306
- version: '1.0.0',
307
- author: 'framingui',
308
- created: '2025-01-01T00:00:00Z',
309
- },
310
- },
311
- };
312
- /**
313
- * Dashboard Overview Example
314
- * Analytics dashboard with metrics cards and charts
315
- */
316
- export const dashboardOverviewExample = {
317
- name: 'Dashboard Overview',
318
- description: 'Analytics dashboard with KPI cards, charts, and recent activity feed',
319
- definition: {
320
- id: 'dashboard-overview',
321
- name: 'Dashboard Overview',
322
- description: 'Main analytics dashboard with key metrics',
323
- shell: 'shell.web.dashboard',
324
- page: 'page.dashboard',
325
- sections: [
326
- {
327
- id: 'metrics',
328
- pattern: 'section.grid-4',
329
- slot: 'header',
330
- components: [
331
- {
332
- type: 'Card',
333
- props: {
334
- variant: 'outline',
335
- },
336
- children: [
337
- {
338
- type: 'Text',
339
- props: {
340
- variant: 'label',
341
- children: 'Total Revenue',
342
- },
343
- },
344
- {
345
- type: 'Heading',
346
- props: {
347
- level: 2,
348
- children: '$45,231.89',
349
- },
350
- },
351
- {
352
- type: 'Badge',
353
- props: {
354
- variant: 'success',
355
- children: '+20.1% from last month',
356
- },
357
- },
358
- ],
359
- },
360
- {
361
- type: 'Card',
362
- props: {
363
- variant: 'outline',
364
- },
365
- children: [
366
- {
367
- type: 'Text',
368
- props: {
369
- variant: 'label',
370
- children: 'Active Users',
371
- },
372
- },
373
- {
374
- type: 'Heading',
375
- props: {
376
- level: 2,
377
- children: '2,350',
378
- },
379
- },
380
- {
381
- type: 'Badge',
382
- props: {
383
- variant: 'success',
384
- children: '+180.1% from last month',
385
- },
386
- },
387
- ],
388
- },
389
- ],
390
- },
391
- {
392
- id: 'charts',
393
- pattern: 'section.split-60-40',
394
- slot: 'main',
395
- components: [
396
- {
397
- type: 'Card',
398
- props: {
399
- title: 'Revenue Over Time',
400
- },
401
- children: [
402
- {
403
- type: 'Text',
404
- props: {
405
- variant: 'muted',
406
- children: 'Chart placeholder - integrate with your charting library',
407
- },
408
- },
409
- ],
410
- },
411
- {
412
- type: 'Card',
413
- props: {
414
- title: 'Recent Activity',
415
- },
416
- children: [
417
- {
418
- type: 'List',
419
- props: {
420
- items: [
421
- 'New user registration',
422
- 'Order #1234 completed',
423
- 'Support ticket resolved',
424
- ],
425
- },
426
- },
427
- ],
428
- },
429
- ],
430
- },
431
- ],
432
- metadata: {
433
- version: '1.0.0',
434
- author: 'framingui',
435
- created: '2025-01-01T00:00:00Z',
436
- },
437
- },
438
- };
439
- /**
440
- * Get all example screen definitions
441
- */
442
- export function getAllExamples() {
443
- return [teamGridExample, dataTableExample, loginFormExample, dashboardOverviewExample];
444
- }
445
- /**
446
- * Get examples matching a description
447
- */
448
- export function getMatchingExamples(description, limit = 2) {
449
- const lowerDesc = description.toLowerCase();
450
- const examples = getAllExamples();
451
- // Score each example based on keyword matching
452
- const scored = examples.map(example => {
453
- let score = 0;
454
- const keywords = [
455
- ...example.name.toLowerCase().split(' '),
456
- ...example.description.toLowerCase().split(' '),
457
- ];
458
- for (const keyword of keywords) {
459
- if (keyword.length > 3 && lowerDesc.includes(keyword)) {
460
- score += 1;
461
- }
462
- }
463
- // Boost score for category matches
464
- if (lowerDesc.includes('team') && example.name.toLowerCase().includes('team')) {
465
- score += 5;
466
- }
467
- if (lowerDesc.includes('table') && example.name.toLowerCase().includes('table')) {
468
- score += 5;
469
- }
470
- if (lowerDesc.includes('login') && example.name.toLowerCase().includes('login')) {
471
- score += 5;
472
- }
473
- if (lowerDesc.includes('dashboard') && example.name.toLowerCase().includes('dashboard')) {
474
- score += 5;
475
- }
476
- if (lowerDesc.includes('grid') && example.name.toLowerCase().includes('grid')) {
477
- score += 3;
478
- }
479
- if (lowerDesc.includes('form') && example.name.toLowerCase().includes('form')) {
480
- score += 3;
481
- }
482
- if (lowerDesc.includes('auth') && example.name.toLowerCase().includes('login')) {
483
- score += 3;
484
- }
485
- return { example, score };
486
- });
487
- // Sort by score and return top matches
488
- return scored
489
- .filter(s => s.score > 0)
490
- .sort((a, b) => b.score - a.score)
491
- .slice(0, limit)
492
- .map(s => s.example);
493
- }
494
- /**
495
- * Get example by ID
496
- */
497
- export function getExampleById(id) {
498
- return getAllExamples().find(e => e.definition.id === id);
499
- }
500
- //# sourceMappingURL=screen-examples.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"screen-examples.js","sourceRoot":"","sources":["../../../src/data/examples/screen-examples.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- export type StyleContract = 'framingui-native' | 'host-utility' | 'mixed' | 'unknown';
2
- export interface StyleContractResult {
3
- styleContract: StyleContract;
4
- cssFilesChecked: string[];
5
- uiStylesImportFound: boolean;
6
- definedVariables: string[];
7
- missingVariables: string[];
8
- }
9
- export declare function readStyleContract(projectPath: string): StyleContractResult;
10
- //# sourceMappingURL=style-contract-reader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"style-contract-reader.d.ts","sourceRoot":"","sources":["../../src/utils/style-contract-reader.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG,cAAc,GAAG,OAAO,GAAG,SAAS,CAAC;AAEtF,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAaD,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,CAgD1E"}
@@ -1,67 +0,0 @@
1
- import fs from 'node:fs';
2
- import path from 'node:path';
3
- const COMMON_CSS_ENTRY_CANDIDATES = [
4
- 'app/globals.css',
5
- 'src/app/globals.css',
6
- 'styles/globals.css',
7
- 'src/index.css',
8
- 'src/main.css',
9
- 'index.css',
10
- ];
11
- const REQUIRED_FRAMINGUI_VARIABLES = ['--bg-background', '--border-default', '--text-tertiary'];
12
- export function readStyleContract(projectPath) {
13
- const root = resolveProjectRoot(projectPath);
14
- const cssFilesChecked = COMMON_CSS_ENTRY_CANDIDATES.map(candidate => path.join(root, candidate)).filter(candidate => fs.existsSync(candidate));
15
- if (cssFilesChecked.length === 0) {
16
- return {
17
- styleContract: 'unknown',
18
- cssFilesChecked: [],
19
- uiStylesImportFound: false,
20
- definedVariables: [],
21
- missingVariables: [...REQUIRED_FRAMINGUI_VARIABLES],
22
- };
23
- }
24
- const contents = cssFilesChecked
25
- .map(filePath => {
26
- try {
27
- return fs.readFileSync(filePath, 'utf-8');
28
- }
29
- catch {
30
- return '';
31
- }
32
- })
33
- .join('\n');
34
- const uiStylesImportFound = /@import\s+['"]@framingui\/ui\/styles['"]/.test(contents);
35
- const definedVariables = REQUIRED_FRAMINGUI_VARIABLES.filter(variable => new RegExp(`${escapeRegExp(variable)}\\s*:`).test(contents));
36
- const missingVariables = REQUIRED_FRAMINGUI_VARIABLES.filter(variable => !definedVariables.includes(variable));
37
- let styleContract = 'host-utility';
38
- if (uiStylesImportFound || missingVariables.length === 0) {
39
- styleContract = 'framingui-native';
40
- }
41
- else if (definedVariables.length > 0) {
42
- styleContract = 'mixed';
43
- }
44
- return {
45
- styleContract,
46
- cssFilesChecked,
47
- uiStylesImportFound,
48
- definedVariables,
49
- missingVariables,
50
- };
51
- }
52
- function resolveProjectRoot(projectPath) {
53
- const normalizedPath = path.resolve(projectPath);
54
- try {
55
- if (fs.statSync(normalizedPath).isDirectory()) {
56
- return normalizedPath;
57
- }
58
- }
59
- catch {
60
- // Fall through and derive root from the provided path.
61
- }
62
- return path.dirname(normalizedPath);
63
- }
64
- function escapeRegExp(value) {
65
- return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
66
- }
67
- //# sourceMappingURL=style-contract-reader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"style-contract-reader.js","sourceRoot":"","sources":["../../src/utils/style-contract-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAY7B,MAAM,2BAA2B,GAAG;IAClC,iBAAiB;IACjB,qBAAqB;IACrB,oBAAoB;IACpB,eAAe;IACf,cAAc;IACd,WAAW;CACZ,CAAC;AAEF,MAAM,4BAA4B,GAAG,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;AAEhG,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,MAAM,IAAI,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC7C,MAAM,eAAe,GAAG,2BAA2B,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAClE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAC3B,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO;YACL,aAAa,EAAE,SAAS;YACxB,eAAe,EAAE,EAAE;YACnB,mBAAmB,EAAE,KAAK;YAC1B,gBAAgB,EAAE,EAAE;YACpB,gBAAgB,EAAE,CAAC,GAAG,4BAA4B,CAAC;SACpD,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe;SAC7B,GAAG,CAAC,QAAQ,CAAC,EAAE;QACd,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,mBAAmB,GAAG,0CAA0C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtF,MAAM,gBAAgB,GAAG,4BAA4B,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CACtE,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC5D,CAAC;IACF,MAAM,gBAAgB,GAAG,4BAA4B,CAAC,MAAM,CAC1D,QAAQ,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACjD,CAAC;IAEF,IAAI,aAAa,GAAkB,cAAc,CAAC;IAClD,IAAI,mBAAmB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzD,aAAa,GAAG,kBAAkB,CAAC;IACrC,CAAC;SAAM,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,aAAa,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,OAAO;QACL,aAAa;QACb,eAAe;QACf,mBAAmB;QACnB,gBAAgB;QAChB,gBAAgB;KACjB,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,WAAmB;IAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAEjD,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9C,OAAO,cAAc,CAAC;QACxB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,uDAAuD;IACzD,CAAC;IAED,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC"}