@gemini-designer/mcp-server 0.1.32 → 0.1.35
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/dist/config/index.d.ts +10 -10
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +50 -5
- package/dist/config/index.js.map +1 -1
- package/dist/context/styling-utils.d.ts +4 -0
- package/dist/context/styling-utils.d.ts.map +1 -0
- package/dist/context/styling-utils.js +40 -0
- package/dist/context/styling-utils.js.map +1 -0
- package/dist/design/diversity.d.ts +12 -0
- package/dist/design/diversity.d.ts.map +1 -0
- package/dist/design/diversity.js +52 -0
- package/dist/design/diversity.js.map +1 -0
- package/dist/guides/prompting.d.ts.map +1 -1
- package/dist/guides/prompting.js +4 -1
- package/dist/guides/prompting.js.map +1 -1
- package/dist/tools/analyze-screenshot-ui.d.ts.map +1 -1
- package/dist/tools/analyze-screenshot-ui.js +19 -3
- package/dist/tools/analyze-screenshot-ui.js.map +1 -1
- package/dist/tools/analyze-tokens.d.ts.map +1 -1
- package/dist/tools/analyze-tokens.js +10 -1
- package/dist/tools/analyze-tokens.js.map +1 -1
- package/dist/tools/create-ui.d.ts.map +1 -1
- package/dist/tools/create-ui.js +127 -93
- package/dist/tools/create-ui.js.map +1 -1
- package/dist/tools/generate-vibes.d.ts.map +1 -1
- package/dist/tools/generate-vibes.js +91 -39
- package/dist/tools/generate-vibes.js.map +1 -1
- package/dist/tools/prompting-guide.d.ts.map +1 -1
- package/dist/tools/prompting-guide.js +14 -1
- package/dist/tools/prompting-guide.js.map +1 -1
- package/dist/tools/scaffold-project.d.ts.map +1 -1
- package/dist/tools/scaffold-project.js +5 -6
- package/dist/tools/scaffold-project.js.map +1 -1
- package/dist/tools/snippet-ui.d.ts.map +1 -1
- package/dist/tools/snippet-ui.js +97 -91
- package/dist/tools/snippet-ui.js.map +1 -1
- package/dist/tools/sync-design-tokens.d.ts.map +1 -1
- package/dist/tools/sync-design-tokens.js +35 -2
- package/dist/tools/sync-design-tokens.js.map +1 -1
- package/gemini-designer-mcp-server-0.1.33.tgz +0 -0
- package/package.json +1 -1
- package/src/__tests__/config.test.ts +17 -0
- package/src/config/index.ts +41 -5
- package/src/context/styling-utils.ts +36 -0
- package/src/design/diversity.ts +62 -0
- package/src/guides/prompting.ts +4 -1
- package/src/tools/analyze-screenshot-ui.ts +17 -4
- package/src/tools/analyze-tokens.ts +7 -1
- package/src/tools/create-ui.ts +133 -89
- package/src/tools/generate-vibes.ts +116 -72
- package/src/tools/prompting-guide.ts +9 -1
- package/src/tools/scaffold-project.ts +7 -7
- package/src/tools/snippet-ui.ts +102 -86
- package/src/tools/sync-design-tokens.ts +24 -2
package/dist/config/index.d.ts
CHANGED
|
@@ -6,20 +6,20 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { z } from 'zod';
|
|
8
8
|
declare const ConfigSchema: z.ZodObject<{
|
|
9
|
-
mode: z.ZodDefault<z.ZodEnum<["local", "remote"]>>;
|
|
10
|
-
localProvider: z.ZodDefault<z.ZodEnum<["gemini", "litellm"]>>;
|
|
9
|
+
mode: z.ZodDefault<z.ZodEffects<z.ZodEnum<["local", "remote"]>, "local" | "remote", unknown>>;
|
|
10
|
+
localProvider: z.ZodDefault<z.ZodEffects<z.ZodEnum<["gemini", "litellm"]>, "gemini" | "litellm", unknown>>;
|
|
11
11
|
apiKey: z.ZodOptional<z.ZodString>;
|
|
12
12
|
remoteEndpoint: z.ZodOptional<z.ZodString>;
|
|
13
13
|
remoteApiKey: z.ZodOptional<z.ZodString>;
|
|
14
14
|
allowedPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
15
|
-
defaultFramework: z.ZodDefault<z.ZodEnum<["vanilla", "react", "vue", "svelte", "nextjs"]>>;
|
|
15
|
+
defaultFramework: z.ZodDefault<z.ZodEffects<z.ZodEnum<["vanilla", "react", "vue", "svelte", "nextjs"]>, "vanilla" | "react" | "vue" | "svelte" | "nextjs", unknown>>;
|
|
16
16
|
model: z.ZodDefault<z.ZodString>;
|
|
17
17
|
litellmEndpoint: z.ZodOptional<z.ZodString>;
|
|
18
18
|
litellmApiKey: z.ZodOptional<z.ZodString>;
|
|
19
19
|
litellmModel: z.ZodOptional<z.ZodString>;
|
|
20
|
-
accessibility: z.ZodDefault<z.ZodEnum<["none", "wcag-a", "wcag-aa", "wcag-aaa"]>>;
|
|
20
|
+
accessibility: z.ZodDefault<z.ZodEffects<z.ZodEnum<["none", "wcag-a", "wcag-aa", "wcag-aaa"]>, "none" | "wcag-a" | "wcag-aa" | "wcag-aaa", unknown>>;
|
|
21
21
|
breakpoints: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
22
|
-
designPrinciples: z.ZodDefault<z.ZodEnum<["full", "compact", "off"]>>;
|
|
22
|
+
designPrinciples: z.ZodDefault<z.ZodEffects<z.ZodEnum<["full", "compact", "off"]>, "full" | "compact" | "off", unknown>>;
|
|
23
23
|
debug: z.ZodDefault<z.ZodBoolean>;
|
|
24
24
|
}, "strip", z.ZodTypeAny, {
|
|
25
25
|
mode: "local" | "remote";
|
|
@@ -38,20 +38,20 @@ declare const ConfigSchema: z.ZodObject<{
|
|
|
38
38
|
litellmApiKey?: string | undefined;
|
|
39
39
|
litellmModel?: string | undefined;
|
|
40
40
|
}, {
|
|
41
|
-
mode?:
|
|
42
|
-
localProvider?:
|
|
41
|
+
mode?: unknown;
|
|
42
|
+
localProvider?: unknown;
|
|
43
43
|
apiKey?: string | undefined;
|
|
44
44
|
remoteEndpoint?: string | undefined;
|
|
45
45
|
remoteApiKey?: string | undefined;
|
|
46
46
|
allowedPaths?: string[] | undefined;
|
|
47
|
-
defaultFramework?:
|
|
47
|
+
defaultFramework?: unknown;
|
|
48
48
|
model?: string | undefined;
|
|
49
49
|
litellmEndpoint?: string | undefined;
|
|
50
50
|
litellmApiKey?: string | undefined;
|
|
51
51
|
litellmModel?: string | undefined;
|
|
52
|
-
accessibility?:
|
|
52
|
+
accessibility?: unknown;
|
|
53
53
|
breakpoints?: Record<string, number> | undefined;
|
|
54
|
-
designPrinciples?:
|
|
54
|
+
designPrinciples?: unknown;
|
|
55
55
|
debug?: boolean | undefined;
|
|
56
56
|
}>;
|
|
57
57
|
export type Config = z.infer<typeof ConfigSchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoFhB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CA4EnC"}
|
package/dist/config/index.js
CHANGED
|
@@ -9,11 +9,22 @@ import * as fs from 'node:fs';
|
|
|
9
9
|
import * as path from 'node:path';
|
|
10
10
|
const ConfigSchema = z.object({
|
|
11
11
|
// Mode: 'local' uses direct Gemini API, 'remote' uses gateway
|
|
12
|
-
mode: z
|
|
12
|
+
mode: z
|
|
13
|
+
.preprocess((v) => (typeof v === 'string' ? v.trim().toLowerCase() : v), z.enum(['local', 'remote']))
|
|
14
|
+
.default('local'),
|
|
13
15
|
// Local provider: direct Gemini SDK, or OpenAI-compatible proxy (e.g. LiteLLM)
|
|
14
16
|
// Default to LiteLLM because it unlocks routing, retries, caching, and load balancing.
|
|
15
17
|
// If LiteLLM is not configured, we will automatically fall back to direct Gemini.
|
|
16
|
-
localProvider: z
|
|
18
|
+
localProvider: z
|
|
19
|
+
.preprocess((v) => {
|
|
20
|
+
if (typeof v !== 'string')
|
|
21
|
+
return v;
|
|
22
|
+
const s = v.trim().toLowerCase();
|
|
23
|
+
if (s === 'openai' || s === 'proxy')
|
|
24
|
+
return 'litellm';
|
|
25
|
+
return s;
|
|
26
|
+
}, z.enum(['gemini', 'litellm']))
|
|
27
|
+
.default('litellm'),
|
|
17
28
|
// API key for local mode (required if mode is 'local')
|
|
18
29
|
apiKey: z.string().optional(),
|
|
19
30
|
// Remote gateway endpoint (required if mode is 'remote')
|
|
@@ -23,7 +34,16 @@ const ConfigSchema = z.object({
|
|
|
23
34
|
// Workspace paths that can be accessed
|
|
24
35
|
allowedPaths: z.array(z.string()).default([process.cwd()]),
|
|
25
36
|
// Default framework for generated code
|
|
26
|
-
defaultFramework: z
|
|
37
|
+
defaultFramework: z
|
|
38
|
+
.preprocess((v) => {
|
|
39
|
+
if (typeof v !== 'string')
|
|
40
|
+
return v;
|
|
41
|
+
const s = v.trim().toLowerCase();
|
|
42
|
+
if (s === 'next')
|
|
43
|
+
return 'nextjs';
|
|
44
|
+
return s;
|
|
45
|
+
}, z.enum(['vanilla', 'react', 'vue', 'svelte', 'nextjs']))
|
|
46
|
+
.default('react'),
|
|
27
47
|
// Gemini model to use (for local mode)
|
|
28
48
|
model: z.string().default('gemini-2.5-flash'),
|
|
29
49
|
// LiteLLM (or other OpenAI-compatible proxy) configuration for local mode
|
|
@@ -31,7 +51,20 @@ const ConfigSchema = z.object({
|
|
|
31
51
|
litellmApiKey: z.string().optional(),
|
|
32
52
|
litellmModel: z.string().optional(),
|
|
33
53
|
// Default accessibility level
|
|
34
|
-
accessibility: z
|
|
54
|
+
accessibility: z
|
|
55
|
+
.preprocess((v) => {
|
|
56
|
+
if (typeof v !== 'string')
|
|
57
|
+
return v;
|
|
58
|
+
const s = v.trim().toLowerCase();
|
|
59
|
+
if (s === 'a')
|
|
60
|
+
return 'wcag-a';
|
|
61
|
+
if (s === 'aa')
|
|
62
|
+
return 'wcag-aa';
|
|
63
|
+
if (s === 'aaa')
|
|
64
|
+
return 'wcag-aaa';
|
|
65
|
+
return s;
|
|
66
|
+
}, z.enum(['none', 'wcag-a', 'wcag-aa', 'wcag-aaa']))
|
|
67
|
+
.default('wcag-aa'),
|
|
35
68
|
// Responsive breakpoints
|
|
36
69
|
breakpoints: z.record(z.number()).default({
|
|
37
70
|
sm: 640,
|
|
@@ -44,7 +77,16 @@ const ConfigSchema = z.object({
|
|
|
44
77
|
// - full: use full guidelines where available, compact for edit tools
|
|
45
78
|
// - compact: always use compact guidelines (token-efficient)
|
|
46
79
|
// - off: do not inject design guidelines
|
|
47
|
-
designPrinciples: z
|
|
80
|
+
designPrinciples: z
|
|
81
|
+
.preprocess((v) => {
|
|
82
|
+
if (typeof v !== 'string')
|
|
83
|
+
return v;
|
|
84
|
+
const s = v.trim().toLowerCase();
|
|
85
|
+
if (s === 'none' || s === 'disabled')
|
|
86
|
+
return 'off';
|
|
87
|
+
return s;
|
|
88
|
+
}, z.enum(['full', 'compact', 'off']))
|
|
89
|
+
.default('full'),
|
|
48
90
|
// Debug mode
|
|
49
91
|
debug: z.boolean().default(false),
|
|
50
92
|
});
|
|
@@ -160,6 +202,9 @@ function loadConfigFromEnv() {
|
|
|
160
202
|
if (process.env.GEMINI_DESIGNER_FRAMEWORK) {
|
|
161
203
|
config.defaultFramework = process.env.GEMINI_DESIGNER_FRAMEWORK;
|
|
162
204
|
}
|
|
205
|
+
if (process.env.GEMINI_DESIGNER_ACCESSIBILITY) {
|
|
206
|
+
config.accessibility = process.env.GEMINI_DESIGNER_ACCESSIBILITY;
|
|
207
|
+
}
|
|
163
208
|
if (process.env.GEMINI_MODEL) {
|
|
164
209
|
config.model = process.env.GEMINI_MODEL;
|
|
165
210
|
}
|
package/dist/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,8DAA8D;IAC9D,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styling-utils.d.ts","sourceRoot":"","sources":["../../src/context/styling-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAelE;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAe1E"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export function getFileExtension(approach) {
|
|
2
|
+
const extensions = {
|
|
3
|
+
tailwind: '',
|
|
4
|
+
'css-modules': '.module.css',
|
|
5
|
+
'styled-components': '.tsx',
|
|
6
|
+
emotion: '.tsx',
|
|
7
|
+
scss: '.module.scss',
|
|
8
|
+
'vanilla-extract': '.css.ts',
|
|
9
|
+
'panda-css': '',
|
|
10
|
+
'uno-css': '',
|
|
11
|
+
stylex: '.stylex.ts',
|
|
12
|
+
'css-in-js': '.tsx',
|
|
13
|
+
'vanilla-css': '.css',
|
|
14
|
+
};
|
|
15
|
+
return extensions[approach] || '.css';
|
|
16
|
+
}
|
|
17
|
+
export function inferStylingApproachFromHint(hint) {
|
|
18
|
+
const h = hint.trim().toLowerCase();
|
|
19
|
+
if (h.includes('tailwind'))
|
|
20
|
+
return 'tailwind';
|
|
21
|
+
if (h.includes('css modules') || h.includes('css-modules') || h.includes('.module'))
|
|
22
|
+
return 'css-modules';
|
|
23
|
+
if (h.includes('styled-components') || h.includes('styled components'))
|
|
24
|
+
return 'styled-components';
|
|
25
|
+
if (h.includes('emotion'))
|
|
26
|
+
return 'emotion';
|
|
27
|
+
if (h.includes('scss') || h.includes('sass'))
|
|
28
|
+
return 'scss';
|
|
29
|
+
if (h.includes('vanilla-extract') || h.includes('vanilla extract'))
|
|
30
|
+
return 'vanilla-extract';
|
|
31
|
+
if (h.includes('panda') || h.includes('@pandacss'))
|
|
32
|
+
return 'panda-css';
|
|
33
|
+
if (h.includes('uno') || h.includes('unocss'))
|
|
34
|
+
return 'uno-css';
|
|
35
|
+
if (h.includes('stylex'))
|
|
36
|
+
return 'stylex';
|
|
37
|
+
// Many UI libraries imply CSS-in-JS-ish authoring patterns; this is our best-effort default.
|
|
38
|
+
return 'css-in-js';
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=styling-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styling-utils.js","sourceRoot":"","sources":["../../src/context/styling-utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAAC,QAAyB;IACxD,MAAM,UAAU,GAAoC;QAClD,QAAQ,EAAE,EAAE;QACZ,aAAa,EAAE,aAAa;QAC5B,mBAAmB,EAAE,MAAM;QAC3B,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,cAAc;QACpB,iBAAiB,EAAE,SAAS;QAC5B,WAAW,EAAE,EAAE;QACf,SAAS,EAAE,EAAE;QACb,MAAM,EAAE,YAAY;QACpB,WAAW,EAAE,MAAM;QACnB,aAAa,EAAE,MAAM;KACtB,CAAC;IACF,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,IAAY;IACvD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAEpC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IAC9C,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,aAAa,CAAC;IAC1G,IAAI,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAAE,OAAO,mBAAmB,CAAC;IACnG,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC5D,IAAI,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAAE,OAAO,iBAAiB,CAAC;IAC7F,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,WAAW,CAAC;IACvE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IAChE,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAE1C,6FAA6F;IAC7F,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const LAYOUT_ARCHETYPES: readonly string[];
|
|
2
|
+
export declare const GENERIC_LAYOUT_CLICHES: readonly string[];
|
|
3
|
+
export declare function buildDiversityGuidance(options: {
|
|
4
|
+
vibeCount: number;
|
|
5
|
+
variation?: string;
|
|
6
|
+
layoutArchetype?: string;
|
|
7
|
+
signatureElement?: string;
|
|
8
|
+
seed?: string;
|
|
9
|
+
avoid?: string[];
|
|
10
|
+
includeArchetypePool?: boolean;
|
|
11
|
+
}): string;
|
|
12
|
+
//# sourceMappingURL=diversity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diversity.d.ts","sourceRoot":"","sources":["../../src/design/diversity.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAqB9C,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAKnD,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,GAAG,MAAM,CAuBT"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export const LAYOUT_ARCHETYPES = [
|
|
2
|
+
'Museum label layout (artifact-first, generous margins, typographic hierarchy)',
|
|
3
|
+
'Field guide layout (numbered specimens, captions, taxonomy)',
|
|
4
|
+
'Blueprint layout (grid lines, callouts, measurements, technical notes)',
|
|
5
|
+
'Zine collage layout (cutouts, stamps, asymmetry, playful type)',
|
|
6
|
+
'Editorial split layout (two-column story + side rail)',
|
|
7
|
+
'Terminal dossier layout (monospace blocks + status chips + log stream)',
|
|
8
|
+
'Ticket-stub layout (perforation, punch marks, event metadata)',
|
|
9
|
+
'Catalog spread (image plates + annotations + small caps)',
|
|
10
|
+
'Poster layout (big type + bold shapes + minimal copy)',
|
|
11
|
+
'Timeline layout (milestones + connectors + progress)',
|
|
12
|
+
'Workshop bench layout (tools row + parts list + instructions)',
|
|
13
|
+
'Index-card layout (stacked cards, tabs, labels)',
|
|
14
|
+
'Control room layout (panels, meters, dials, readouts)',
|
|
15
|
+
'Notebook layout (ruled paper, marginalia, highlights)',
|
|
16
|
+
'Map legend layout (key, markers, layers, coordinates)',
|
|
17
|
+
'Spec sheet layout (tables, ratings, compliance badges)',
|
|
18
|
+
'Gallery wall layout (frames, captions, grid-breaking hero)',
|
|
19
|
+
'Receipt layout (narrow column, totals, line items)',
|
|
20
|
+
'Study syllabus layout (modules, readings, checkpoints)',
|
|
21
|
+
'Case file layout (folders, redactions, stamps, evidence tags)',
|
|
22
|
+
];
|
|
23
|
+
export const GENERIC_LAYOUT_CLICHES = [
|
|
24
|
+
'hero + 3 feature cards + testimonials + pricing (default SaaS template)',
|
|
25
|
+
'purple gradient blobs on white background',
|
|
26
|
+
'centered “clean SaaS” with identical rounded cards everywhere',
|
|
27
|
+
'generic glassmorphism card grid without narrative purpose',
|
|
28
|
+
];
|
|
29
|
+
export function buildDiversityGuidance(options) {
|
|
30
|
+
const avoidList = [...(options.avoid || []), ...GENERIC_LAYOUT_CLICHES].filter(Boolean);
|
|
31
|
+
const includePool = options.includeArchetypePool !== false;
|
|
32
|
+
const compactPool = LAYOUT_ARCHETYPES.slice(0, 8);
|
|
33
|
+
return [
|
|
34
|
+
'## Diversity / Anti-Sameness Requirements',
|
|
35
|
+
'- Avoid generic templates and repeated patterns; each output should feel intentionally designed.',
|
|
36
|
+
`- If generating multiple vibes (count=${options.vibeCount}), make them DISTINCT from each other: different layout archetype, typography pairing, and background treatment.`,
|
|
37
|
+
options.seed ? `- Treat this seed as a creative constraint: "${options.seed}".` : '- If no seed is provided, invent a unique creative constraint per vibe.',
|
|
38
|
+
options.variation ? `- Variation guidance: ${options.variation}` : '- Choose a clear, opinionated aesthetic direction (not “modern SaaS”).',
|
|
39
|
+
options.layoutArchetype
|
|
40
|
+
? `- Use this layout archetype: ${options.layoutArchetype}`
|
|
41
|
+
: includePool
|
|
42
|
+
? `- Choose ONE layout archetype per vibe from this pool:\n${LAYOUT_ARCHETYPES.map((a) => ` - ${a}`).join('\n')}`
|
|
43
|
+
: `- Choose ONE layout archetype (example pool): ${compactPool.join(' | ')}`,
|
|
44
|
+
options.signatureElement
|
|
45
|
+
? `- Use this signature element: ${options.signatureElement}`
|
|
46
|
+
: '- Include ONE signature element per vibe that is memorable and specific (e.g. a plotter-grid, ticket perforation, blueprint callouts).',
|
|
47
|
+
avoidList.length > 0 ? `- Do NOT use: ${avoidList.join('; ')}` : '',
|
|
48
|
+
]
|
|
49
|
+
.filter(Boolean)
|
|
50
|
+
.join('\n');
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=diversity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diversity.js","sourceRoot":"","sources":["../../src/design/diversity.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,+EAA+E;IAC/E,6DAA6D;IAC7D,wEAAwE;IACxE,gEAAgE;IAChE,uDAAuD;IACvD,wEAAwE;IACxE,+DAA+D;IAC/D,0DAA0D;IAC1D,uDAAuD;IACvD,sDAAsD;IACtD,+DAA+D;IAC/D,iDAAiD;IACjD,uDAAuD;IACvD,uDAAuD;IACvD,uDAAuD;IACvD,wDAAwD;IACxD,4DAA4D;IAC5D,oDAAoD;IACpD,wDAAwD;IACxD,+DAA+D;CAChE,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAsB;IACvD,yEAAyE;IACzE,2CAA2C;IAC3C,+DAA+D;IAC/D,2DAA2D;CAC5D,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,OAQtC;IACC,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,GAAG,sBAAsB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxF,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,KAAK,KAAK,CAAC;IAC3D,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAElD,OAAO;QACL,2CAA2C;QAC3C,kGAAkG;QAClG,yCAAyC,OAAO,CAAC,SAAS,kHAAkH;QAC5K,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,gDAAgD,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,yEAAyE;QAC3J,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,yBAAyB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,wEAAwE;QAC3I,OAAO,CAAC,eAAe;YACrB,CAAC,CAAC,gCAAgC,OAAO,CAAC,eAAe,EAAE;YAC3D,CAAC,CAAC,WAAW;gBACX,CAAC,CAAC,2DAA2D,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAClH,CAAC,CAAC,iDAAiD,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAChF,OAAO,CAAC,gBAAgB;YACtB,CAAC,CAAC,iCAAiC,OAAO,CAAC,gBAAgB,EAAE;YAC7D,CAAC,CAAC,wIAAwI;QAC5I,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;KACpE;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompting.d.ts","sourceRoot":"","sources":["../../src/guides/prompting.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAC3B,SAAS,GACT,WAAW,GACX,YAAY,GACZ,cAAc,GACd,WAAW,CAAC;AAEhB,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"prompting.d.ts","sourceRoot":"","sources":["../../src/guides/prompting.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAC3B,SAAS,GACT,WAAW,GACX,YAAY,GACZ,cAAc,GACd,WAAW,CAAC;AAEhB,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CA+GpE"}
|
package/dist/guides/prompting.js
CHANGED
|
@@ -23,6 +23,9 @@ export function getPromptingGuide(focus) {
|
|
|
23
23
|
'Design direction: <ONE clear aesthetic, e.g. editorial | brutalist | art-deco | luxury | playful>',
|
|
24
24
|
'',
|
|
25
25
|
'If you called `generate_vibes`, pass the selected vibe JSON into `create_ui/snippet_ui` as `vibe`.',
|
|
26
|
+
'',
|
|
27
|
+
'Optional anti-sameness controls (all free-form strings):',
|
|
28
|
+
'- generate_vibes/create_ui/snippet_ui: seed, variation, layoutArchetype, signatureElement, avoid',
|
|
26
29
|
].join('\n');
|
|
27
30
|
const landingTemplate = [
|
|
28
31
|
'## Landing page template (HTML/CSS)',
|
|
@@ -102,7 +105,7 @@ export function getPromptingGuide(focus) {
|
|
|
102
105
|
if (focus === 'create_ui')
|
|
103
106
|
return `${header}## create_ui tips\n- Be explicit about required elements and file path.\n- Include constraints and one aesthetic direction.\n\n${generalTemplate}\n`;
|
|
104
107
|
if (focus === 'snippet_ui')
|
|
105
|
-
return `${header}## snippet_ui tips\n- Choose the closest
|
|
108
|
+
return `${header}## snippet_ui tips\n- Choose the closest "type" and list interaction rules (focus trap, keyboard, loading, etc.).\n\n${generalTemplate}\n`;
|
|
106
109
|
return `${header}${generalTemplate}\n`;
|
|
107
110
|
}
|
|
108
111
|
//# sourceMappingURL=prompting.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompting.js","sourceRoot":"","sources":["../../src/guides/prompting.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,iBAAiB,CAAC,KAA0B;IAC1D,MAAM,MAAM,GAAG;QACb,qCAAqC;QACrC,EAAE;QACF,sEAAsE;QACtE,EAAE;QACF,qBAAqB;QACrB,8CAA8C;QAC9C,mEAAmE;QACnE,wFAAwF;QACxF,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,eAAe,GAAG;QACtB,+BAA+B;QAC/B,gCAAgC;QAChC,yBAAyB;QACzB,+DAA+D;QAC/D,cAAc;QACd,WAAW;QACX,2BAA2B;QAC3B,gCAAgC;QAChC,uDAAuD;QACvD,mGAAmG;QACnG,EAAE;QACF,oGAAoG;
|
|
1
|
+
{"version":3,"file":"prompting.js","sourceRoot":"","sources":["../../src/guides/prompting.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,iBAAiB,CAAC,KAA0B;IAC1D,MAAM,MAAM,GAAG;QACb,qCAAqC;QACrC,EAAE;QACF,sEAAsE;QACtE,EAAE;QACF,qBAAqB;QACrB,8CAA8C;QAC9C,mEAAmE;QACnE,wFAAwF;QACxF,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,eAAe,GAAG;QACtB,+BAA+B;QAC/B,gCAAgC;QAChC,yBAAyB;QACzB,+DAA+D;QAC/D,cAAc;QACd,WAAW;QACX,2BAA2B;QAC3B,gCAAgC;QAChC,uDAAuD;QACvD,mGAAmG;QACnG,EAAE;QACF,oGAAoG;QACpG,EAAE;QACF,0DAA0D;QAC1D,kGAAkG;KACnG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,eAAe,GAAG;QACtB,qCAAqC;QACrC,8DAA8D;QAC9D,EAAE;QACF,+CAA+C;QAC/C,iDAAiD;QACjD,oBAAoB;QACpB,+BAA+B;QAC/B,8DAA8D;QAC9D,0BAA0B;QAC1B,+BAA+B;QAC/B,yCAAyC;QACzC,iCAAiC;QACjC,qBAAqB;QACrB,0CAA0C;QAC1C,UAAU;QACV,cAAc;QACd,yBAAyB;QACzB,8BAA8B;QAC9B,4EAA4E;KAC7E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,QAAQ,GAAG;QACf,8CAA8C;QAC9C,EAAE;QACF,gFAAgF;QAChF,EAAE;QACF,iBAAiB;QACjB,gHAAgH;QAChH,6FAA6F;QAC7F,mFAAmF;QACnF,2EAA2E;QAC3E,EAAE;QACF,0BAA0B;QAC1B,EAAE;QACF,0EAA0E;QAC1E,oFAAoF;QACpF,sDAAsD;QACtD,sGAAsG;QACtG,8DAA8D;QAC9D,EAAE;QACF,0DAA0D;QAC1D,6EAA6E;QAC7E,2DAA2D;QAC3D,EAAE;QACF,uDAAuD;QACvD,yDAAyD;QACzD,+DAA+D;QAC/D,yDAAyD;QACzD,EAAE;QACF,oCAAoC;QACpC,6DAA6D;QAC7D,mDAAmD;QACnD,gHAAgH;QAChH,EAAE;QACF,sDAAsD;QACtD,sEAAsE;QACtE,yDAAyD;QACzD,EAAE;QACF,8CAA8C;QAC9C,gCAAgC;QAChC,yBAAyB;QACzB,+DAA+D;QAC/D,cAAc;QACd,WAAW;QACX,2BAA2B;QAC3B,gCAAgC;QAChC,uDAAuD;QACvD,+FAA+F;QAC/F,EAAE;QACF,yHAAyH;KAC1H,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,IAAI,KAAK,KAAK,WAAW;QAAE,OAAO,GAAG,QAAQ,IAAI,CAAC;IAClD,IAAI,KAAK,KAAK,cAAc;QAAE,OAAO,GAAG,MAAM,GAAG,eAAe,OAAO,eAAe,IAAI,CAAC;IAC3F,IAAI,KAAK,KAAK,WAAW;QACvB,OAAO,GAAG,MAAM,kIAAkI,eAAe,IAAI,CAAC;IACxK,IAAI,KAAK,KAAK,YAAY;QACxB,OAAO,GAAG,MAAM,wHAAwH,eAAe,IAAI,CAAC;IAC9J,OAAO,GAAG,MAAM,GAAG,eAAe,IAAI,CAAC;AACzC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-screenshot-ui.d.ts","sourceRoot":"","sources":["../../src/tools/analyze-screenshot-ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"analyze-screenshot-ui.d.ts","sourceRoot":"","sources":["../../src/tools/analyze-screenshot-ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AA6D5C,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAmFnF"}
|
|
@@ -30,9 +30,19 @@ const inputSchema = {
|
|
|
30
30
|
.string()
|
|
31
31
|
.optional()
|
|
32
32
|
.describe('What to extract from the screenshot. Defaults to a full UI breakdown.'),
|
|
33
|
-
outputFormat: z
|
|
33
|
+
outputFormat: z
|
|
34
|
+
.preprocess((v) => {
|
|
35
|
+
if (typeof v !== 'string')
|
|
36
|
+
return v;
|
|
37
|
+
const s = v.trim().toLowerCase();
|
|
38
|
+
if (s === 'md')
|
|
39
|
+
return 'markdown';
|
|
40
|
+
return s;
|
|
41
|
+
}, z.enum(['json', 'markdown']))
|
|
42
|
+
.default('json')
|
|
43
|
+
.describe('Response format.'),
|
|
34
44
|
framework: z
|
|
35
|
-
.
|
|
45
|
+
.string()
|
|
36
46
|
.optional()
|
|
37
47
|
.describe('Target framework hint.'),
|
|
38
48
|
context: z.array(z.string()).optional().describe('Related design/token files for grounding.'),
|
|
@@ -77,7 +87,13 @@ export function registerAnalyzeScreenshotUI(server, config) {
|
|
|
77
87
|
const mimeType = args.mimeType;
|
|
78
88
|
const instruction = args.instruction || '';
|
|
79
89
|
const outputFormat = args.outputFormat || 'json';
|
|
80
|
-
const
|
|
90
|
+
const frameworkRaw = args.framework?.trim().toLowerCase();
|
|
91
|
+
const framework = (() => {
|
|
92
|
+
if (frameworkRaw && ['react', 'nextjs', 'vue', 'svelte', 'vanilla'].includes(frameworkRaw)) {
|
|
93
|
+
return frameworkRaw;
|
|
94
|
+
}
|
|
95
|
+
return config.defaultFramework;
|
|
96
|
+
})();
|
|
81
97
|
const contextPaths = args.context;
|
|
82
98
|
if (!imagePath && !imageBase64) {
|
|
83
99
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-screenshot-ui.js","sourceRoot":"","sources":["../../src/tools/analyze-screenshot-ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,MAAM,WAAW,GAAG;IAClB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IAClF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IAC1F,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mEAAmE,CAAC;IAChF,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uEAAuE,CAAC;IACpF,YAAY,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"analyze-screenshot-ui.js","sourceRoot":"","sources":["../../src/tools/analyze-screenshot-ui.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-tokens.d.ts","sourceRoot":"","sources":["../../src/tools/analyze-tokens.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"analyze-tokens.d.ts","sourceRoot":"","sources":["../../src/tools/analyze-tokens.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAuC5C,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAiF7E"}
|
|
@@ -12,7 +12,16 @@ import { generateWithGemini } from '../generation/gemini-client.js';
|
|
|
12
12
|
const inputSchema = {
|
|
13
13
|
paths: z.array(z.string()).describe('Paths to CSS, SCSS, or design token files to analyze'),
|
|
14
14
|
format: z
|
|
15
|
-
.
|
|
15
|
+
.preprocess((v) => {
|
|
16
|
+
if (typeof v !== 'string')
|
|
17
|
+
return v;
|
|
18
|
+
const s = v.trim().toLowerCase();
|
|
19
|
+
if (s === 'css' || s === 'cssvars' || s === 'css_vars')
|
|
20
|
+
return 'css-vars';
|
|
21
|
+
if (s === 'tw' || s === 'tailwindcss')
|
|
22
|
+
return 'tailwind';
|
|
23
|
+
return s;
|
|
24
|
+
}, z.enum(['json', 'css-vars', 'tailwind', 'summary']))
|
|
16
25
|
.default('json')
|
|
17
26
|
.describe('Output format for the extracted tokens'),
|
|
18
27
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-tokens.js","sourceRoot":"","sources":["../../src/tools/analyze-tokens.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,sDAAsD,CAAC;IAC3F,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"analyze-tokens.js","sourceRoot":"","sources":["../../src/tools/analyze-tokens.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-ui.d.ts","sourceRoot":"","sources":["../../src/tools/create-ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"create-ui.d.ts","sourceRoot":"","sources":["../../src/tools/create-ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAmS5C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,QAkTjE"}
|