@framingui/mcp-server 0.6.9 → 0.6.11
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 +55 -12
- package/dist/cli/commands.d.ts +2 -0
- package/dist/cli/commands.d.ts.map +1 -0
- package/dist/cli/commands.js +20 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/help.d.ts +5 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +59 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.js +47 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +3 -13
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/package-manager.d.ts +5 -0
- package/dist/cli/package-manager.d.ts.map +1 -0
- package/dist/cli/package-manager.js +34 -0
- package/dist/cli/package-manager.js.map +1 -0
- package/dist/cli/update.d.ts +8 -0
- package/dist/cli/update.d.ts.map +1 -0
- package/dist/cli/update.js +53 -0
- package/dist/cli/update.js.map +1 -0
- package/dist/commands/slash-command-adapters.d.ts +9 -0
- package/dist/commands/slash-command-adapters.d.ts.map +1 -0
- package/dist/commands/slash-command-adapters.js +116 -0
- package/dist/commands/slash-command-adapters.js.map +1 -0
- package/dist/commands/slash-command-registry.d.ts +31 -0
- package/dist/commands/slash-command-registry.d.ts.map +1 -0
- package/dist/commands/slash-command-registry.js +358 -0
- package/dist/commands/slash-command-registry.js.map +1 -0
- package/dist/data/component-props.d.ts +30 -0
- package/dist/data/component-props.d.ts.map +1 -0
- package/dist/data/component-props.js +537 -0
- package/dist/data/component-props.js.map +1 -0
- package/dist/data/component-registry.d.ts +30 -0
- package/dist/data/component-registry.d.ts.map +1 -0
- package/dist/data/component-registry.js +320 -0
- package/dist/data/component-registry.js.map +1 -0
- package/dist/data/examples/screen-examples.d.ts +38 -0
- package/dist/data/examples/screen-examples.d.ts.map +1 -0
- package/dist/data/examples/screen-examples.js +500 -0
- package/dist/data/examples/screen-examples.js.map +1 -0
- package/dist/index.js +7 -22
- package/dist/index.js.map +1 -1
- package/dist/prompts/a11y-workflow.d.ts +10 -0
- package/dist/prompts/a11y-workflow.d.ts.map +1 -0
- package/dist/prompts/a11y-workflow.js +46 -0
- package/dist/prompts/a11y-workflow.js.map +1 -0
- package/dist/prompts/command-help.d.ts +10 -0
- package/dist/prompts/command-help.d.ts.map +1 -0
- package/dist/prompts/command-help.js +101 -0
- package/dist/prompts/command-help.js.map +1 -0
- package/dist/prompts/doctor-workflow.d.ts +10 -0
- package/dist/prompts/doctor-workflow.d.ts.map +1 -0
- package/dist/prompts/doctor-workflow.js +39 -0
- package/dist/prompts/doctor-workflow.js.map +1 -0
- package/dist/prompts/getting-started.d.ts.map +1 -1
- package/dist/prompts/getting-started.js +18 -1
- package/dist/prompts/getting-started.js.map +1 -1
- package/dist/prompts/prompt-catalog.d.ts +26 -0
- package/dist/prompts/prompt-catalog.d.ts.map +1 -0
- package/dist/prompts/prompt-catalog.js +82 -0
- package/dist/prompts/prompt-catalog.js.map +1 -0
- package/dist/prompts/responsive-workflow.d.ts +10 -0
- package/dist/prompts/responsive-workflow.d.ts.map +1 -0
- package/dist/prompts/responsive-workflow.js +52 -0
- package/dist/prompts/responsive-workflow.js.map +1 -0
- package/dist/prompts/screen-workflow.d.ts +1 -1
- package/dist/prompts/screen-workflow.d.ts.map +1 -1
- package/dist/prompts/screen-workflow.js +42 -4
- package/dist/prompts/screen-workflow.js.map +1 -1
- package/dist/prompts/slash-commands.d.ts +10 -0
- package/dist/prompts/slash-commands.d.ts.map +1 -0
- package/dist/prompts/slash-commands.js +32 -0
- package/dist/prompts/slash-commands.js.map +1 -0
- package/dist/prompts/theme-swap-workflow.d.ts +10 -0
- package/dist/prompts/theme-swap-workflow.d.ts.map +1 -0
- package/dist/prompts/theme-swap-workflow.js +35 -0
- package/dist/prompts/theme-swap-workflow.js.map +1 -0
- package/dist/prompts/update-workflow.d.ts +10 -0
- package/dist/prompts/update-workflow.d.ts.map +1 -0
- package/dist/prompts/update-workflow.js +36 -0
- package/dist/prompts/update-workflow.js.map +1 -0
- package/dist/schemas/mcp-schemas.d.ts +204 -158
- package/dist/schemas/mcp-schemas.d.ts.map +1 -1
- package/dist/schemas/mcp-schemas.js +17 -0
- package/dist/schemas/mcp-schemas.js.map +1 -1
- package/dist/tools/generate-screen.d.ts.map +1 -1
- package/dist/tools/generate-screen.js +36 -28
- package/dist/tools/generate-screen.js.map +1 -1
- package/dist/tools/validate-environment.d.ts.map +1 -1
- package/dist/tools/validate-environment.js +30 -1
- package/dist/tools/validate-environment.js.map +1 -1
- package/dist/tools/validate-screen-definition.d.ts.map +1 -1
- package/dist/tools/validate-screen-definition.js +38 -95
- package/dist/tools/validate-screen-definition.js.map +1 -1
- package/dist/utils/style-contract-reader.d.ts +10 -0
- package/dist/utils/style-contract-reader.d.ts.map +1 -0
- package/dist/utils/style-contract-reader.js +67 -0
- package/dist/utils/style-contract-reader.js.map +1 -0
- package/package.json +19 -18
- package/LICENSE +0 -21
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a11y-workflow.d.ts","sourceRoot":"","sources":["../../src/prompts/a11y-workflow.ts"],"names":[],"mappings":"AAAA,wBAAgB,qBAAqB;;;;;;;;EA4CpC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export function getA11yWorkflowPrompt() {
|
|
2
|
+
return {
|
|
3
|
+
messages: [
|
|
4
|
+
{
|
|
5
|
+
role: 'user',
|
|
6
|
+
content: {
|
|
7
|
+
type: 'text',
|
|
8
|
+
text: `# FramingUI Accessibility Workflow
|
|
9
|
+
|
|
10
|
+
Use this workflow when the user asks for accessibility review or fixes.
|
|
11
|
+
|
|
12
|
+
## Primary command
|
|
13
|
+
|
|
14
|
+
\`/a11y <target> [--fix] [--scope full|form|dialog|nav]\`
|
|
15
|
+
|
|
16
|
+
## What to inspect
|
|
17
|
+
|
|
18
|
+
- heading hierarchy
|
|
19
|
+
- landmark structure
|
|
20
|
+
- form labels and descriptions
|
|
21
|
+
- dialog semantics
|
|
22
|
+
- focus order and keyboard traps
|
|
23
|
+
- tap target size
|
|
24
|
+
- contrast risks based on current theme and token usage
|
|
25
|
+
|
|
26
|
+
## Workflow
|
|
27
|
+
|
|
28
|
+
1. Inspect the target definition or rendered structure.
|
|
29
|
+
2. Use \`validate-screen-definition\` as the contract baseline.
|
|
30
|
+
3. Use \`preview-component\` when component semantics or variants are relevant.
|
|
31
|
+
4. Report issues grouped by severity.
|
|
32
|
+
5. If \`--fix\` or an equivalent request is present, return a patch or regenerated output only when the fix is safe and contract-preserving.
|
|
33
|
+
|
|
34
|
+
## Expected output
|
|
35
|
+
|
|
36
|
+
- findings
|
|
37
|
+
- severity
|
|
38
|
+
- likely impact
|
|
39
|
+
- recommended fix
|
|
40
|
+
- optional patch or regenerated output`,
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=a11y-workflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a11y-workflow.js","sourceRoot":"","sources":["../../src/prompts/a11y-workflow.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCAgCuB;iBAC9B;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-help.d.ts","sourceRoot":"","sources":["../../src/prompts/command-help.ts"],"names":[],"mappings":"AAUA,wBAAgB,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM;;;;;;;;EAqGxD"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { getSlashCommand } from '../commands/slash-command-registry.js';
|
|
2
|
+
function formatValues(values) {
|
|
3
|
+
if (!values || values.length === 0) {
|
|
4
|
+
return '';
|
|
5
|
+
}
|
|
6
|
+
return ` Values: ${values.join(', ')}`;
|
|
7
|
+
}
|
|
8
|
+
export function getCommandHelpPrompt(commandName) {
|
|
9
|
+
const command = commandName ? getSlashCommand(commandName) : undefined;
|
|
10
|
+
if (!command) {
|
|
11
|
+
return {
|
|
12
|
+
messages: [
|
|
13
|
+
{
|
|
14
|
+
role: 'user',
|
|
15
|
+
content: {
|
|
16
|
+
type: 'text',
|
|
17
|
+
text: `# FramingUI Command Help
|
|
18
|
+
|
|
19
|
+
No slash command matched \`${commandName ?? ''}\`.
|
|
20
|
+
|
|
21
|
+
Use the \`slash-commands\` prompt to inspect the full catalog, then call \`command-help\` again with one of:
|
|
22
|
+
- /screen
|
|
23
|
+
- /section
|
|
24
|
+
- /draft
|
|
25
|
+
- /responsive
|
|
26
|
+
- /a11y
|
|
27
|
+
- /theme-swap
|
|
28
|
+
- /doctor
|
|
29
|
+
- /install-check
|
|
30
|
+
- /export
|
|
31
|
+
- /update`,
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
const argLines = command.args.length > 0
|
|
38
|
+
? command.args
|
|
39
|
+
.map(arg => `- \`${arg.name}\`${arg.required ? ' (required)' : ''} - ${arg.description}`)
|
|
40
|
+
.join('\n')
|
|
41
|
+
: '- None';
|
|
42
|
+
const optionLines = command.options.length > 0
|
|
43
|
+
? command.options
|
|
44
|
+
.map(option => `- \`${option.name}\` - ${option.description}${formatValues(option.values)}`)
|
|
45
|
+
.join('\n')
|
|
46
|
+
: '- None';
|
|
47
|
+
const exampleLines = command.examples.map(example => `- \`${example}\``).join('\n');
|
|
48
|
+
const workflowLines = command.workflow.map(step => `- \`${step}\``).join('\n');
|
|
49
|
+
const preflightLines = command.preflight
|
|
50
|
+
? [
|
|
51
|
+
`Required: \`${command.preflight.required ? 'yes' : 'no'}\``,
|
|
52
|
+
`When: ${command.preflight.when}`,
|
|
53
|
+
`Steps:`,
|
|
54
|
+
...command.preflight.steps.map(step => `- \`${step}\``),
|
|
55
|
+
`Blocking conditions:`,
|
|
56
|
+
...command.preflight.blockingConditions.map(condition => `- ${condition}`),
|
|
57
|
+
].join('\n')
|
|
58
|
+
: 'None';
|
|
59
|
+
return {
|
|
60
|
+
messages: [
|
|
61
|
+
{
|
|
62
|
+
role: 'user',
|
|
63
|
+
content: {
|
|
64
|
+
type: 'text',
|
|
65
|
+
text: `# ${command.name}
|
|
66
|
+
|
|
67
|
+
${command.summary}
|
|
68
|
+
|
|
69
|
+
## Usage
|
|
70
|
+
|
|
71
|
+
\`${command.usage}\`
|
|
72
|
+
|
|
73
|
+
## Arguments
|
|
74
|
+
|
|
75
|
+
${argLines}
|
|
76
|
+
|
|
77
|
+
## Options
|
|
78
|
+
|
|
79
|
+
${optionLines}
|
|
80
|
+
|
|
81
|
+
## Examples
|
|
82
|
+
|
|
83
|
+
${exampleLines}
|
|
84
|
+
|
|
85
|
+
## MCP workflow
|
|
86
|
+
|
|
87
|
+
${workflowLines}
|
|
88
|
+
|
|
89
|
+
## Required preflight
|
|
90
|
+
|
|
91
|
+
${preflightLines}
|
|
92
|
+
|
|
93
|
+
## Prompt fallback
|
|
94
|
+
|
|
95
|
+
\`${command.promptRecipe}\``,
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
],
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=command-help.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-help.js","sourceRoot":"","sources":["../../src/prompts/command-help.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor-workflow.d.ts","sourceRoot":"","sources":["../../src/prompts/doctor-workflow.ts"],"names":[],"mappings":"AAAA,wBAAgB,uBAAuB;;;;;;;;EAqCtC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export function getDoctorWorkflowPrompt() {
|
|
2
|
+
return {
|
|
3
|
+
messages: [
|
|
4
|
+
{
|
|
5
|
+
role: 'user',
|
|
6
|
+
content: {
|
|
7
|
+
type: 'text',
|
|
8
|
+
text: `# FramingUI Doctor Workflow
|
|
9
|
+
|
|
10
|
+
Use this workflow when the user asks why FramingUI generation or styling is not working in their project.
|
|
11
|
+
|
|
12
|
+
## Primary commands
|
|
13
|
+
|
|
14
|
+
- \`/doctor [<project-path>] [--auth] [--tailwind] [--themes] [--fix-hints]\`
|
|
15
|
+
- \`/install-check [<project-path>] [--for <screen|section|file>] [--packages-only]\`
|
|
16
|
+
|
|
17
|
+
## Workflow
|
|
18
|
+
|
|
19
|
+
1. Inspect session status with \`whoami\` when auth or entitlement issues are suspected.
|
|
20
|
+
2. Confirm theme access with \`list-themes\`.
|
|
21
|
+
3. Run \`validate-environment\` for package presence, Tailwind compatibility, and style contract detection.
|
|
22
|
+
4. Inspect the style contract result and decide whether the project should stay utility-first or migrate to FramingUI-native variables.
|
|
23
|
+
5. Return the smallest set of fixes needed to restore a working FramingUI setup.
|
|
24
|
+
|
|
25
|
+
## Expected output
|
|
26
|
+
|
|
27
|
+
- auth status when relevant
|
|
28
|
+
- theme availability when relevant
|
|
29
|
+
- missing packages
|
|
30
|
+
- install commands
|
|
31
|
+
- Tailwind or style-import issues
|
|
32
|
+
- style contract classification and migration recommendation when relevant
|
|
33
|
+
- prioritized next actions`,
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=doctor-workflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor-workflow.js","sourceRoot":"","sources":["../../src/prompts/doctor-workflow.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;2BAyBW;iBAClB;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getting-started.d.ts","sourceRoot":"","sources":["../../src/prompts/getting-started.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,wBAAgB,uBAAuB;;;;;;;;
|
|
1
|
+
{"version":3,"file":"getting-started.d.ts","sourceRoot":"","sources":["../../src/prompts/getting-started.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,wBAAgB,uBAAuB;;;;;;;;EAyHtC"}
|
|
@@ -77,7 +77,24 @@ Before creating screen definitions:
|
|
|
77
77
|
3. Identify components needed for your screen
|
|
78
78
|
\`\`\`
|
|
79
79
|
|
|
80
|
-
## Step 5:
|
|
80
|
+
## Step 5: Discover Slash Commands (Optional but Recommended)
|
|
81
|
+
|
|
82
|
+
If your MCP client supports slash menus, tab completion, or command palettes, expose the FramingUI command registry:
|
|
83
|
+
|
|
84
|
+
- \`/screen\` - full screen generation
|
|
85
|
+
- \`/section\` - section generation or replacement
|
|
86
|
+
- \`/draft\` - structural screen draft before codegen
|
|
87
|
+
- \`/responsive\` - responsive optimization with density controls
|
|
88
|
+
- \`/a11y\` - accessibility review
|
|
89
|
+
- \`/theme-swap\` - reapply a screen under a different theme
|
|
90
|
+
- \`/doctor\` - setup diagnosis
|
|
91
|
+
- \`/install-check\` - dependency and environment checks
|
|
92
|
+
- \`/export\` - artifact export
|
|
93
|
+
- \`/update\` - refresh installed FramingUI packages in a project
|
|
94
|
+
|
|
95
|
+
If your client does not support native slash commands, use the \`slash-commands\` and \`command-help\` prompts as a fallback help surface.
|
|
96
|
+
|
|
97
|
+
## Step 6: Generate Your First Screen
|
|
81
98
|
|
|
82
99
|
Follow the 3-step workflow:
|
|
83
100
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getting-started.js","sourceRoot":"","sources":["../../src/prompts/getting-started.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE
|
|
1
|
+
{"version":3,"file":"getting-started.js","sourceRoot":"","sources":["../../src/prompts/getting-started.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kEA6GkD;iBACzD;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface PromptArgumentDefinition {
|
|
2
|
+
name: string;
|
|
3
|
+
required?: boolean;
|
|
4
|
+
description: string;
|
|
5
|
+
}
|
|
6
|
+
export interface PromptDefinition {
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
arguments: PromptArgumentDefinition[];
|
|
10
|
+
getPrompt: (args?: Record<string, string>) => {
|
|
11
|
+
messages: Array<{
|
|
12
|
+
role: string;
|
|
13
|
+
content: {
|
|
14
|
+
type: string;
|
|
15
|
+
text: string;
|
|
16
|
+
};
|
|
17
|
+
}>;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export declare function listPromptDefinitions(): Array<{
|
|
21
|
+
name: string;
|
|
22
|
+
description: string;
|
|
23
|
+
arguments: PromptArgumentDefinition[];
|
|
24
|
+
}>;
|
|
25
|
+
export declare function getPromptDefinition(name: string): PromptDefinition | undefined;
|
|
26
|
+
//# sourceMappingURL=prompt-catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-catalog.d.ts","sourceRoot":"","sources":["../../src/prompts/prompt-catalog.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,wBAAwB,EAAE,CAAC;IACtC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK;QAC5C,QAAQ,EAAE,KAAK,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM,CAAC;gBACb,IAAI,EAAE,MAAM,CAAC;aACd,CAAC;SACH,CAAC,CAAC;KACJ,CAAC;CACH;AAkED,wBAAgB,qBAAqB,IAAI,KAAK,CAAC;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,wBAAwB,EAAE,CAAC;CACvC,CAAC,CAMD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAE9E"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { getA11yWorkflowPrompt } from './a11y-workflow.js';
|
|
2
|
+
import { getCommandHelpPrompt } from './command-help.js';
|
|
3
|
+
import { getDoctorWorkflowPrompt } from './doctor-workflow.js';
|
|
4
|
+
import { getGettingStartedPrompt } from './getting-started.js';
|
|
5
|
+
import { getResponsiveWorkflowPrompt } from './responsive-workflow.js';
|
|
6
|
+
import { getScreenWorkflowPrompt } from './screen-workflow.js';
|
|
7
|
+
import { getSlashCommandsPrompt } from './slash-commands.js';
|
|
8
|
+
import { getThemeSwapWorkflowPrompt } from './theme-swap-workflow.js';
|
|
9
|
+
import { getUpdateWorkflowPrompt } from './update-workflow.js';
|
|
10
|
+
const promptCatalog = [
|
|
11
|
+
{
|
|
12
|
+
name: 'getting-started',
|
|
13
|
+
description: 'Complete getting started guide for FramingUI including authentication, theme exploration, slash command discovery, and screen generation workflow',
|
|
14
|
+
arguments: [],
|
|
15
|
+
getPrompt: () => getGettingStartedPrompt(),
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'screen-workflow',
|
|
19
|
+
description: 'Detailed screen generation workflow for /screen, /section, and /draft flows',
|
|
20
|
+
arguments: [],
|
|
21
|
+
getPrompt: () => getScreenWorkflowPrompt(),
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: 'responsive-workflow',
|
|
25
|
+
description: 'Responsive optimization workflow backing the /responsive command',
|
|
26
|
+
arguments: [],
|
|
27
|
+
getPrompt: () => getResponsiveWorkflowPrompt(),
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: 'a11y-workflow',
|
|
31
|
+
description: 'Accessibility audit workflow backing the /a11y command',
|
|
32
|
+
arguments: [],
|
|
33
|
+
getPrompt: () => getA11yWorkflowPrompt(),
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
name: 'theme-swap-workflow',
|
|
37
|
+
description: 'Theme application workflow backing the /theme-swap command',
|
|
38
|
+
arguments: [],
|
|
39
|
+
getPrompt: () => getThemeSwapWorkflowPrompt(),
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'doctor-workflow',
|
|
43
|
+
description: 'Environment and setup diagnosis workflow backing /doctor and /install-check',
|
|
44
|
+
arguments: [],
|
|
45
|
+
getPrompt: () => getDoctorWorkflowPrompt(),
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: 'update-workflow',
|
|
49
|
+
description: 'Package update workflow backing the /update command',
|
|
50
|
+
arguments: [],
|
|
51
|
+
getPrompt: () => getUpdateWorkflowPrompt(),
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: 'slash-commands',
|
|
55
|
+
description: 'Slash command catalog for FramingUI design workflows',
|
|
56
|
+
arguments: [],
|
|
57
|
+
getPrompt: () => getSlashCommandsPrompt(),
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'command-help',
|
|
61
|
+
description: 'Detailed help metadata for one slash command',
|
|
62
|
+
arguments: [
|
|
63
|
+
{
|
|
64
|
+
name: 'command',
|
|
65
|
+
required: true,
|
|
66
|
+
description: 'Slash command name such as /screen, /responsive, or /update',
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
getPrompt: args => getCommandHelpPrompt(args?.command),
|
|
70
|
+
},
|
|
71
|
+
];
|
|
72
|
+
export function listPromptDefinitions() {
|
|
73
|
+
return promptCatalog.map(({ name, description, arguments: args }) => ({
|
|
74
|
+
name,
|
|
75
|
+
description,
|
|
76
|
+
arguments: args,
|
|
77
|
+
}));
|
|
78
|
+
}
|
|
79
|
+
export function getPromptDefinition(name) {
|
|
80
|
+
return promptCatalog.find(prompt => prompt.name === name);
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=prompt-catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-catalog.js","sourceRoot":"","sources":["../../src/prompts/prompt-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAuB/D,MAAM,aAAa,GAAuB;IACxC;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,mJAAmJ;QACrJ,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,GAAG,EAAE,CAAC,uBAAuB,EAAE;KAC3C;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,6EAA6E;QAC1F,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,GAAG,EAAE,CAAC,uBAAuB,EAAE;KAC3C;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,kEAAkE;QAC/E,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,GAAG,EAAE,CAAC,2BAA2B,EAAE;KAC/C;IACD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,wDAAwD;QACrE,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,GAAG,EAAE,CAAC,qBAAqB,EAAE;KACzC;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,4DAA4D;QACzE,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,GAAG,EAAE,CAAC,0BAA0B,EAAE;KAC9C;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,6EAA6E;QAC1F,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,GAAG,EAAE,CAAC,uBAAuB,EAAE;KAC3C;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,qDAAqD;QAClE,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,GAAG,EAAE,CAAC,uBAAuB,EAAE;KAC3C;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,sDAAsD;QACnE,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,GAAG,EAAE,CAAC,sBAAsB,EAAE;KAC1C;IACD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,8CAA8C;QAC3D,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,6DAA6D;aAC3E;SACF;QACD,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC;KACvD;CACF,CAAC;AAEF,MAAM,UAAU,qBAAqB;IAKnC,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACpE,IAAI;QACJ,WAAW;QACX,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responsive-workflow.d.ts","sourceRoot":"","sources":["../../src/prompts/responsive-workflow.ts"],"names":[],"mappings":"AAAA,wBAAgB,2BAA2B;;;;;;;;EAkD1C"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export function getResponsiveWorkflowPrompt() {
|
|
2
|
+
return {
|
|
3
|
+
messages: [
|
|
4
|
+
{
|
|
5
|
+
role: 'user',
|
|
6
|
+
content: {
|
|
7
|
+
type: 'text',
|
|
8
|
+
text: `# FramingUI Responsive Optimization Workflow
|
|
9
|
+
|
|
10
|
+
Use this workflow when the user asks to adapt an existing screen for smaller viewports, touch ergonomics, or density changes.
|
|
11
|
+
|
|
12
|
+
## Primary command
|
|
13
|
+
|
|
14
|
+
\`/responsive <target> [--mode mobile-first|tablet-safe|touch-optimized] [--density preserve|denser|lighter] [--breakpoint sm|md|lg]\`
|
|
15
|
+
|
|
16
|
+
## Workflow
|
|
17
|
+
|
|
18
|
+
1. Inspect the target screen or screen definition.
|
|
19
|
+
2. Call \`list_tokens\` to confirm breakpoint and layout token options when layout changes are needed.
|
|
20
|
+
3. Preserve the existing information architecture unless the current layout is clearly broken on smaller screens.
|
|
21
|
+
4. Apply one primary responsive strategy:
|
|
22
|
+
- \`mobile-first\`: prioritize stacked layouts, simplified nav, compressed controls
|
|
23
|
+
- \`tablet-safe\`: preserve layout intent while preventing breakage around medium widths
|
|
24
|
+
- \`touch-optimized\`: increase hit targets, action spacing, and gesture-safe layouts
|
|
25
|
+
5. Apply density refinement inside this command, not as a separate command:
|
|
26
|
+
- \`preserve\`: keep current information density, mainly reflow layout
|
|
27
|
+
- \`denser\`: preserve more information in constrained layouts
|
|
28
|
+
- \`lighter\`: reduce clutter and collapse secondary content
|
|
29
|
+
6. Validate the updated definition with \`validate-screen-definition\`.
|
|
30
|
+
7. If code output is requested, re-run \`generate_screen\`.
|
|
31
|
+
|
|
32
|
+
## Expected output
|
|
33
|
+
|
|
34
|
+
- Breakpoint-specific recommendations
|
|
35
|
+
- Layout changes by section
|
|
36
|
+
- Mobile/tablet nav strategy
|
|
37
|
+
- Table/card/list transformations where relevant
|
|
38
|
+
- Any overflow or cramped-interaction risks
|
|
39
|
+
- Updated definition or regenerated code when requested
|
|
40
|
+
|
|
41
|
+
## Important constraints
|
|
42
|
+
|
|
43
|
+
- Do not invent unsupported layout tokens.
|
|
44
|
+
- Do not split density into a standalone workflow; keep it under responsive optimization.
|
|
45
|
+
- Prefer safe reflow over aesthetic-only changes.
|
|
46
|
+
- If the current screen is already responsive, report that explicitly instead of forcing unnecessary edits.`,
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=responsive-workflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responsive-workflow.js","sourceRoot":"","sources":["../../src/prompts/responsive-workflow.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,2BAA2B;IACzC,OAAO;QACL,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4GAsC4F;iBACnG;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen-workflow.d.ts","sourceRoot":"","sources":["../../src/prompts/screen-workflow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,wBAAgB,uBAAuB;;;;;;;;
|
|
1
|
+
{"version":3,"file":"screen-workflow.d.ts","sourceRoot":"","sources":["../../src/prompts/screen-workflow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,wBAAgB,uBAAuB;;;;;;;;EAsRtC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MCP Prompts: Screen Generation Workflow
|
|
3
|
-
* Step-by-step guide for the
|
|
3
|
+
* Step-by-step guide for the production screen generation process
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
6
|
* Screen Workflow prompt with detailed 4-step process
|
|
@@ -21,12 +21,39 @@ Optional: call \`whoami\` if you want to inspect the current session and license
|
|
|
21
21
|
|
|
22
22
|
## Overview
|
|
23
23
|
|
|
24
|
-
The
|
|
24
|
+
The workflow ensures:
|
|
25
25
|
- ✅ Correct component usage with inline props/variants
|
|
26
26
|
- ✅ Validated screen structure with auto-fix patches
|
|
27
27
|
- ✅ Theme recipes applied via the theme engine (generate_screen)
|
|
28
28
|
- ✅ All dependencies installed
|
|
29
29
|
- ✅ Tailwind CSS properly configured
|
|
30
|
+
- ✅ Style contract compatibility checked before relying on FramingUI component defaults
|
|
31
|
+
|
|
32
|
+
## Step 0: Detect Style Contract
|
|
33
|
+
|
|
34
|
+
Before generating or integrating a screen, determine which styling contract the target project already uses.
|
|
35
|
+
|
|
36
|
+
- \`framingui-native\`: project imports FramingUI styles or defines the full FramingUI variable contract
|
|
37
|
+
- \`host-utility\`: project styles screens with direct Tailwind utilities and does not expose FramingUI variables
|
|
38
|
+
- \`mixed\`: project defines only some FramingUI variables, which is the highest-risk state for broken component styling
|
|
39
|
+
|
|
40
|
+
**Rule:** do not silently mix a utility-first host page with FramingUI component default variants in the same screen. Either:
|
|
41
|
+
- stay utility-first and use explicit classes, or
|
|
42
|
+
- migrate the page to the FramingUI variable contract after confirming with the user
|
|
43
|
+
|
|
44
|
+
**Enforcement:** if \`projectPath\` is known, Step 0 preflight is required before \`/screen\` or \`/section\` generation.
|
|
45
|
+
Use:
|
|
46
|
+
\`\`\`json
|
|
47
|
+
{
|
|
48
|
+
"projectPath": "/path/to/project",
|
|
49
|
+
"requiredPackages": [],
|
|
50
|
+
"checkTailwind": true,
|
|
51
|
+
"checkStyles": true
|
|
52
|
+
}
|
|
53
|
+
\`\`\`
|
|
54
|
+
Block generation when:
|
|
55
|
+
- \`styles.styleContract === "mixed"\`
|
|
56
|
+
- \`styles.styleContract === "host-utility"\` and the user did not explicitly choose \`--style-contract host-utility\`
|
|
30
57
|
|
|
31
58
|
## Step 1/4: Get Screen Generation Context
|
|
32
59
|
|
|
@@ -152,7 +179,8 @@ The 4-step workflow ensures:
|
|
|
152
179
|
{
|
|
153
180
|
"projectPath": "/path/to/package.json",
|
|
154
181
|
"requiredPackages": ["@radix-ui/react-slot", "@radix-ui/react-avatar"],
|
|
155
|
-
"checkTailwind": true
|
|
182
|
+
"checkTailwind": true,
|
|
183
|
+
"checkStyles": true
|
|
156
184
|
}
|
|
157
185
|
\`\`\`
|
|
158
186
|
|
|
@@ -163,6 +191,10 @@ The 4-step workflow ensures:
|
|
|
163
191
|
- \`tailwind\`: Tailwind config validation results
|
|
164
192
|
- \`issues\`: Problems found
|
|
165
193
|
- \`fixes\`: How to fix each issue
|
|
194
|
+
- \`styles\`: Style contract validation results
|
|
195
|
+
- \`styleContract\`: framingui-native, host-utility, mixed, or unknown
|
|
196
|
+
- \`issues\`: CSS contract mismatch risks
|
|
197
|
+
- \`fixes\`: Recommended next actions before integration
|
|
166
198
|
|
|
167
199
|
**Tailwind Validation Checks:**
|
|
168
200
|
- ✅ tailwind.config.{ts,js,mjs,cjs} exists
|
|
@@ -181,6 +213,9 @@ The 4-step workflow ensures:
|
|
|
181
213
|
\`\`\`
|
|
182
214
|
User: "Create a login page with email/password fields"
|
|
183
215
|
|
|
216
|
+
0. Call validate-environment({ projectPath: "...", requiredPackages: [], checkStyles: true })
|
|
217
|
+
-> Classify style contract and decide host-utility vs framingui-native before generation
|
|
218
|
+
|
|
184
219
|
1. Call get-screen-generation-context({ description: "login page..." })
|
|
185
220
|
→ Receive template matches, components with inline props, schema
|
|
186
221
|
|
|
@@ -220,19 +255,22 @@ User: "Create a login page with email/password fields"
|
|
|
220
255
|
**Components render without styles:**
|
|
221
256
|
- Verify Tailwind content paths include @framingui/ui
|
|
222
257
|
- Check tailwindcss-animate plugin is configured
|
|
258
|
+
- Check whether the target project is \`host-utility\`, \`mixed\`, or \`framingui-native\`
|
|
259
|
+
- If the project is utility-first, prefer explicit classes instead of relying on FramingUI component defaults
|
|
223
260
|
- Run validate-environment to diagnose
|
|
224
261
|
|
|
225
262
|
---
|
|
226
263
|
|
|
227
264
|
## Best Practices
|
|
228
265
|
|
|
229
|
-
1. ✅ Always
|
|
266
|
+
1. ✅ Always run Step 0 preflight before generation when projectPath is known
|
|
230
267
|
2. ✅ Validate before generating code (Step 2)
|
|
231
268
|
3. ✅ Use generate_screen for theme application (Step 3) - do NOT write code manually
|
|
232
269
|
4. ✅ Check environment before delivering code (Step 4)
|
|
233
270
|
5. ✅ Use strict validation mode for production
|
|
234
271
|
6. ✅ Include theme recipes for visual consistency
|
|
235
272
|
7. ✅ Use inline props from context instead of guessing
|
|
273
|
+
8. ✅ Confirm the target style contract before relying on CSS variables or component defaults
|
|
236
274
|
|
|
237
275
|
## Alternative Workflows
|
|
238
276
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen-workflow.js","sourceRoot":"","sources":["../../src/prompts/screen-workflow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE
|
|
1
|
+
{"version":3,"file":"screen-workflow.js","sourceRoot":"","sources":["../../src/prompts/screen-workflow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCA0QwB;iBAC/B;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slash-commands.d.ts","sourceRoot":"","sources":["../../src/prompts/slash-commands.ts"],"names":[],"mappings":"AAEA,wBAAgB,sBAAsB;;;;;;;;EA8BrC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { listSlashCommands } from '../commands/slash-command-registry.js';
|
|
2
|
+
export function getSlashCommandsPrompt() {
|
|
3
|
+
const commandLines = listSlashCommands()
|
|
4
|
+
.map(command => `- \`${command.name}\` - ${command.summary}\n Usage: \`${command.usage}\``)
|
|
5
|
+
.join('\n');
|
|
6
|
+
return {
|
|
7
|
+
messages: [
|
|
8
|
+
{
|
|
9
|
+
role: 'user',
|
|
10
|
+
content: {
|
|
11
|
+
type: 'text',
|
|
12
|
+
text: `# FramingUI Slash Commands
|
|
13
|
+
|
|
14
|
+
FramingUI exposes an intent-level command registry on top of MCP tools. Clients with slash menus or tab completion can render these commands directly. Clients without native command UX can use this registry for \`--help\` style guidance.
|
|
15
|
+
|
|
16
|
+
## Command catalog
|
|
17
|
+
|
|
18
|
+
${commandLines}
|
|
19
|
+
|
|
20
|
+
## Notes
|
|
21
|
+
|
|
22
|
+
- \`/responsive\` includes density control via \`--density preserve|denser|lighter\`
|
|
23
|
+
- \`/screen\` and \`/section\` require a style-contract preflight (\`validate-environment\` with \`checkStyles: true\`) when project path is known
|
|
24
|
+
- \`/update\` refreshes installed FramingUI packages in a target project
|
|
25
|
+
- There is no standalone \`/density\`, \`/hierarchy\`, \`/palette\`, or \`/tone\` command in this phase
|
|
26
|
+
- Use the \`command-help\` prompt with a command name to get detailed help for one command`,
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=slash-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../../src/prompts/slash-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE1E,MAAM,UAAU,sBAAsB;IACpC,MAAM,YAAY,GAAG,iBAAiB,EAAE;SACrC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,OAAO,CAAC,IAAI,QAAQ,OAAO,CAAC,OAAO,gBAAgB,OAAO,CAAC,KAAK,IAAI,CAAC;SAC3F,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;QACL,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;;;;;;EAMd,YAAY;;;;;;;;2FAQ6E;iBAClF;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
|