igniteui-theming 25.1.0 → 25.2.0
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/index.d.ts +75 -0
- package/dist/index.js +12 -0
- package/dist/json/components/bootstrap.json +1 -0
- package/dist/json/components/fluent.json +1 -0
- package/dist/json/components/indigo.json +1 -0
- package/dist/json/components/material.json +1 -0
- package/{json → dist/json}/components/themes.json +31 -1
- package/dist/mcp/generators/css.d.ts +7 -4
- package/dist/mcp/generators/css.js +129 -104
- package/dist/mcp/generators/sass.js +227 -254
- package/dist/mcp/index.js +259 -323
- package/dist/mcp/knowledge/color-usage.js +524 -502
- package/dist/mcp/knowledge/colors.js +61 -50
- package/dist/mcp/knowledge/component-metadata.js +697 -598
- package/dist/mcp/knowledge/component-themes.js +70 -57
- package/dist/mcp/knowledge/custom-palettes.js +4 -9
- package/dist/mcp/knowledge/docs/colors/guidance.js +4 -0
- package/dist/mcp/knowledge/docs/colors/usage.js +4 -0
- package/dist/mcp/knowledge/docs/layout/functions/border-radius.js +4 -0
- package/dist/mcp/knowledge/docs/layout/functions/pad.js +4 -0
- package/dist/mcp/knowledge/docs/layout/functions/sizable.js +4 -0
- package/dist/mcp/knowledge/docs/layout/mixins/sizable.js +4 -0
- package/dist/mcp/knowledge/docs/layout/mixins/sizing.js +4 -0
- package/dist/mcp/knowledge/docs/layout/mixins/spacing.js +4 -0
- package/dist/mcp/knowledge/docs/layout/overview.js +4 -0
- package/dist/mcp/knowledge/docs/setup/platform.js +4 -0
- package/dist/mcp/knowledge/elevations.d.ts +1 -1
- package/dist/mcp/knowledge/elevations.js +26 -12
- package/dist/mcp/knowledge/index.js +23 -87
- package/dist/mcp/knowledge/layout-docs.d.ts +1 -1
- package/dist/mcp/knowledge/multipliers.js +5 -0
- package/dist/mcp/knowledge/palettes.js +29 -17
- package/dist/mcp/knowledge/platforms/angular.js +98 -120
- package/dist/mcp/knowledge/platforms/blazor.js +39 -34
- package/dist/mcp/knowledge/platforms/common.js +83 -68
- package/dist/mcp/knowledge/platforms/index.js +265 -242
- package/dist/mcp/knowledge/platforms/react.js +43 -35
- package/dist/mcp/knowledge/platforms/webcomponents.js +266 -292
- package/dist/mcp/knowledge/sass-api.js +1 -0
- package/dist/mcp/knowledge/typography.js +13 -5
- package/dist/mcp/resources/index.js +1 -0
- package/dist/mcp/resources/presets.js +409 -508
- package/dist/mcp/theming/dist/json/colors/meta/multipliers.js +50 -0
- package/dist/mcp/theming/dist/json/colors/presets/palettes.js +85 -0
- package/dist/mcp/theming/dist/json/components/themes.js +5792 -0
- package/dist/mcp/theming/dist/json/elevations/indigo.js +29 -0
- package/dist/mcp/theming/dist/json/elevations/material.js +3 -0
- package/dist/mcp/theming/dist/json/typography/presets/typescales.js +621 -0
- package/dist/mcp/tools/descriptions.js +98 -154
- package/dist/mcp/tools/handlers/color.js +58 -56
- package/dist/mcp/tools/handlers/component-theme.js +163 -225
- package/dist/mcp/tools/handlers/component-tokens.js +159 -219
- package/dist/mcp/tools/handlers/custom-palette.js +138 -179
- package/dist/mcp/tools/handlers/elevations.js +27 -28
- package/dist/mcp/tools/handlers/index.js +11 -0
- package/dist/mcp/tools/handlers/layout.js +125 -176
- package/dist/mcp/tools/handlers/palette.js +105 -120
- package/dist/mcp/tools/handlers/platform.js +289 -311
- package/dist/mcp/tools/handlers/resource.js +22 -31
- package/dist/mcp/tools/handlers/theme.js +86 -103
- package/dist/mcp/tools/handlers/typography.js +29 -30
- package/dist/mcp/tools/index.js +13 -0
- package/dist/mcp/tools/schemas.js +239 -218
- package/dist/mcp/utils/color.js +277 -239
- package/dist/mcp/utils/preprocessing.js +57 -30
- package/dist/mcp/utils/result.js +43 -45
- package/dist/mcp/utils/sass.js +271 -191
- package/dist/mcp/utils/theming-resolve.d.ts +19 -0
- package/dist/mcp/utils/theming-resolve.js +57 -0
- package/dist/mcp/utils/types.js +96 -53
- package/dist/mcp/validators/custom-palette.js +218 -243
- package/dist/mcp/validators/index.js +3 -0
- package/dist/mcp/validators/palette.js +231 -229
- package/dist/tailwind/utilities/bootstrap.css +1 -0
- package/dist/tailwind/utilities/fluent.css +1 -0
- package/dist/tailwind/utilities/indigo.css +1 -0
- package/dist/tailwind/utilities/material.css +1 -0
- package/package.json +45 -64
- package/sass/json/README.md +12 -7
- package/sass/themes/_mixins.scss +1 -0
- package/sass/themes/components/button-group/_button-group-theme.scss +42 -0
- package/sass/themes/components/grid/_grid-theme.scss +1 -1
- package/sass/themes/schemas/components/dark/_button-group.scss +173 -50
- package/sass/themes/schemas/components/dark/_grid.scss +0 -16
- package/sass/themes/schemas/components/light/_button-group.scss +221 -99
- package/sass/themes/schemas/components/light/_grid.scss +14 -20
- package/LICENSE +0 -21
- package/README.md +0 -391
- package/dist/mcp/json/colors/presets/palettes.json.js +0 -13
- package/dist/mcp/json/components/themes.json.js +0 -143
- package/dist/mcp/json/elevations/indigo.json.js +0 -8
- package/dist/mcp/json/elevations/material.json.js +0 -8
- package/dist/mcp/json/typography/presets/typescales.json.js +0 -17
- package/dist/mcp/knowledge/docs/colors/guidance.md.js +0 -4
- package/dist/mcp/knowledge/docs/colors/usage.md.js +0 -4
- package/dist/mcp/knowledge/docs/layout/functions/border-radius.md.js +0 -4
- package/dist/mcp/knowledge/docs/layout/functions/pad.md.js +0 -4
- package/dist/mcp/knowledge/docs/layout/functions/sizable.md.js +0 -4
- package/dist/mcp/knowledge/docs/layout/mixins/sizable.md.js +0 -4
- package/dist/mcp/knowledge/docs/layout/mixins/sizing.md.js +0 -4
- package/dist/mcp/knowledge/docs/layout/mixins/spacing.md.js +0 -4
- package/dist/mcp/knowledge/docs/layout/overview.md.js +0 -4
- package/dist/mcp/knowledge/docs/setup/platform.md.js +0 -4
- package/dist/mcp/vite-env.d.ts +0 -18
- package/index.js +0 -5
- package/json/components/bootstrap.json +0 -1
- package/json/components/fluent.json +0 -1
- package/json/components/indigo.json +0 -1
- package/json/components/material.json +0 -1
- package/tailwind/utilities/bootstrap.css +0 -1
- package/tailwind/utilities/fluent.css +0 -1
- package/tailwind/utilities/indigo.css +0 -1
- package/tailwind/utilities/material.css +0 -1
- /package/{json → dist/json}/colors/meta/multipliers.json +0 -0
- /package/{json → dist/json}/colors/meta/palette.json +0 -0
- /package/{json → dist/json}/colors/presets/palettes.json +0 -0
- /package/{json → dist/json}/elevations/indigo.json +0 -0
- /package/{json → dist/json}/elevations/material.json +0 -0
- /package/{json → dist/json}/typography/presets/typescales.json +0 -0
- /package/{tailwind → dist/tailwind}/themes/base.css +0 -0
- /package/{tailwind → dist/tailwind}/themes/dark/bootstrap.css +0 -0
- /package/{tailwind → dist/tailwind}/themes/dark/fluent.css +0 -0
- /package/{tailwind → dist/tailwind}/themes/dark/indigo.css +0 -0
- /package/{tailwind → dist/tailwind}/themes/dark/material.css +0 -0
- /package/{tailwind → dist/tailwind}/themes/light/bootstrap.css +0 -0
- /package/{tailwind → dist/tailwind}/themes/light/fluent.css +0 -0
- /package/{tailwind → dist/tailwind}/themes/light/indigo.css +0 -0
- /package/{tailwind → dist/tailwind}/themes/light/material.css +0 -0
|
@@ -1,221 +1,242 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "../knowledge/
|
|
3
|
-
import "../knowledge/component-metadata.js";
|
|
4
|
-
import "../knowledge/custom-palettes.js";
|
|
5
|
-
import { VARIANTS, DESIGN_SYSTEMS, ELEVATION_PRESETS, OUTPUT_FORMATS, PLATFORMS, ALL_COLOR_SHADES, SHADE_LEVELS, ACCENT_SHADE_LEVELS, PALETTE_COLOR_GROUPS } from "../utils/types.js";
|
|
6
|
-
import "../knowledge/palettes.js";
|
|
7
|
-
import "node:fs";
|
|
8
|
-
import "node:path";
|
|
1
|
+
import { ACCENT_SHADE_LEVELS, ALL_COLOR_SHADES, DESIGN_SYSTEMS, ELEVATION_PRESETS, OUTPUT_FORMATS, PALETTE_COLOR_GROUPS, PLATFORMS, SHADE_LEVELS, VARIANTS } from "../utils/types.js";
|
|
2
|
+
import "../knowledge/index.js";
|
|
9
3
|
import { PARAM_DESCRIPTIONS } from "./descriptions.js";
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
});
|
|
40
|
-
const typeStyleSchema = z.object({
|
|
41
|
-
fontSize: z.string().optional(),
|
|
42
|
-
fontWeight: z.union([z.string(), z.number()]).optional(),
|
|
43
|
-
fontStyle: z.string().optional(),
|
|
44
|
-
lineHeight: z.string().optional(),
|
|
45
|
-
letterSpacing: z.string().optional(),
|
|
46
|
-
textTransform: z.string().optional(),
|
|
47
|
-
marginTop: z.string().optional(),
|
|
48
|
-
marginBottom: z.string().optional()
|
|
49
|
-
});
|
|
50
|
-
const createTypographySchema = z.object({
|
|
51
|
-
platform: platformSchema,
|
|
52
|
-
licensed: licensedSchema,
|
|
53
|
-
fontFamily: z.string().describe(PARAM_DESCRIPTIONS.fontFamily),
|
|
54
|
-
designSystem: designSystemSchema.describe(PARAM_DESCRIPTIONS.designSystem),
|
|
55
|
-
customScale: z.record(typeStyleSchema).optional().describe(PARAM_DESCRIPTIONS.customScale),
|
|
56
|
-
name: z.string().optional().describe(PARAM_DESCRIPTIONS.name)
|
|
57
|
-
});
|
|
58
|
-
const createElevationsSchema = z.object({
|
|
59
|
-
platform: platformSchema,
|
|
60
|
-
licensed: licensedSchema,
|
|
61
|
-
designSystem: elevationPresetSchema.describe(
|
|
62
|
-
PARAM_DESCRIPTIONS.elevationPreset
|
|
63
|
-
),
|
|
64
|
-
name: z.string().optional().describe(PARAM_DESCRIPTIONS.name)
|
|
65
|
-
});
|
|
66
|
-
const createThemeSchema = z.object({
|
|
67
|
-
platform: platformSchema,
|
|
68
|
-
licensed: licensedSchema,
|
|
69
|
-
designSystem: designSystemSchema.describe(PARAM_DESCRIPTIONS.designSystem),
|
|
70
|
-
primaryColor: colorSchema.describe(PARAM_DESCRIPTIONS.primaryColor),
|
|
71
|
-
secondaryColor: colorSchema.describe(PARAM_DESCRIPTIONS.secondaryColor),
|
|
72
|
-
surfaceColor: colorSchema.describe(PARAM_DESCRIPTIONS.surfaceColor),
|
|
73
|
-
variant: variantSchema.describe(PARAM_DESCRIPTIONS.variant),
|
|
74
|
-
name: z.string().optional().describe(PARAM_DESCRIPTIONS.name),
|
|
75
|
-
fontFamily: z.string().optional().describe(PARAM_DESCRIPTIONS.fontFamily),
|
|
76
|
-
includeTypography: z.boolean().optional().default(true).describe(PARAM_DESCRIPTIONS.includeTypography),
|
|
77
|
-
includeElevations: z.boolean().optional().default(true).describe(PARAM_DESCRIPTIONS.includeElevations),
|
|
78
|
-
includeSpacing: z.boolean().optional().default(true).describe(PARAM_DESCRIPTIONS.includeSpacing)
|
|
79
|
-
});
|
|
80
|
-
const shadesBasedColorSchema = z.object({
|
|
81
|
-
mode: z.literal("shades"),
|
|
82
|
-
baseColor: colorSchema.describe(PARAM_DESCRIPTIONS.baseColor)
|
|
83
|
-
});
|
|
84
|
-
const explicitColorShadesSchema = z.object({
|
|
85
|
-
mode: z.literal("explicit"),
|
|
86
|
-
shades: z.object(
|
|
87
|
-
Object.fromEntries(
|
|
88
|
-
ALL_COLOR_SHADES.map((s) => [s, colorSchema])
|
|
89
|
-
)
|
|
90
|
-
).describe(PARAM_DESCRIPTIONS.shades),
|
|
91
|
-
contrastOverrides: z.record(
|
|
92
|
-
z.enum(ALL_COLOR_SHADES),
|
|
93
|
-
colorSchema
|
|
94
|
-
).optional().describe(PARAM_DESCRIPTIONS.contrastOverrides)
|
|
95
|
-
});
|
|
96
|
-
const explicitGrayShadesSchema = z.object({
|
|
97
|
-
mode: z.literal("explicit"),
|
|
98
|
-
shades: z.object(
|
|
99
|
-
Object.fromEntries(SHADE_LEVELS.map((s) => [s, colorSchema]))
|
|
100
|
-
).describe(PARAM_DESCRIPTIONS.grayShades),
|
|
101
|
-
contrastOverrides: z.record(
|
|
102
|
-
z.enum(SHADE_LEVELS),
|
|
103
|
-
colorSchema
|
|
104
|
-
).optional().describe(PARAM_DESCRIPTIONS.contrastOverrides)
|
|
105
|
-
});
|
|
106
|
-
const colorDefinitionSchema = z.union([
|
|
107
|
-
shadesBasedColorSchema,
|
|
108
|
-
explicitColorShadesSchema
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
/**
|
|
6
|
+
* Schema for CSS color values.
|
|
7
|
+
* Supports CSS Color Level 4 formats including hex, rgb, hsl, hwb, lab, lch, oklab, oklch, color(), and named colors.
|
|
8
|
+
*/
|
|
9
|
+
var colorSchema = z.string().regex(/^(#[0-9a-fA-F]{3,4}|#[0-9a-fA-F]{6}|#[0-9a-fA-F]{8}|rgba?\(.+\)|hsla?\(.+\)|hwb\(.+\)|lab\(.+\)|lch\(.+\)|oklab\(.+\)|oklch\(.+\)|color\(.+\)|[a-z]+)$/i, "Must be a valid CSS color (hex, rgb, hsl, hwb, lab, lch, oklab, oklch, color(), or named color)");
|
|
10
|
+
/**
|
|
11
|
+
* Theme variant schema - derived from VARIANTS constant.
|
|
12
|
+
*/
|
|
13
|
+
var variantSchema = z.enum(VARIANTS).optional();
|
|
14
|
+
/**
|
|
15
|
+
* Design system schema - derived from DESIGN_SYSTEMS constant.
|
|
16
|
+
*/
|
|
17
|
+
var designSystemSchema = z.enum(DESIGN_SYSTEMS).optional();
|
|
18
|
+
/**
|
|
19
|
+
* Elevation preset schema - derived from ELEVATION_PRESETS constant.
|
|
20
|
+
*/
|
|
21
|
+
var elevationPresetSchema = z.enum(ELEVATION_PRESETS).optional();
|
|
22
|
+
/**
|
|
23
|
+
* Output format schema - derived from OUTPUT_FORMATS constant.
|
|
24
|
+
*/
|
|
25
|
+
var outputFormatSchema = z.enum(OUTPUT_FORMATS).optional();
|
|
26
|
+
/**
|
|
27
|
+
* Size keyword schema for layout tools.
|
|
28
|
+
*/
|
|
29
|
+
var sizeKeywordSchema = z.enum([
|
|
30
|
+
"small",
|
|
31
|
+
"medium",
|
|
32
|
+
"large"
|
|
109
33
|
]);
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
34
|
+
/**
|
|
35
|
+
* Platform schema - derived from PLATFORMS constant.
|
|
36
|
+
*/
|
|
37
|
+
var platformSchema = z.enum(PLATFORMS).optional().describe(PARAM_DESCRIPTIONS.platform);
|
|
38
|
+
/**
|
|
39
|
+
* Licensed package schema - for @infragistics prefixed packages.
|
|
40
|
+
*/
|
|
41
|
+
var licensedSchema = z.boolean().optional().describe(PARAM_DESCRIPTIONS.licensed);
|
|
42
|
+
/**
|
|
43
|
+
* Schema for detect_platform tool.
|
|
44
|
+
*/
|
|
45
|
+
var detectPlatformSchema = z.object({ packageJsonPath: z.string().optional().describe(PARAM_DESCRIPTIONS.packageJsonPath) });
|
|
46
|
+
/**
|
|
47
|
+
* Schema for create_palette tool.
|
|
48
|
+
*/
|
|
49
|
+
var createPaletteSchema = z.object({
|
|
50
|
+
platform: platformSchema,
|
|
51
|
+
licensed: licensedSchema,
|
|
52
|
+
primary: colorSchema.describe(PARAM_DESCRIPTIONS.primary),
|
|
53
|
+
secondary: colorSchema.describe(PARAM_DESCRIPTIONS.secondary),
|
|
54
|
+
surface: colorSchema.describe(PARAM_DESCRIPTIONS.surface),
|
|
55
|
+
gray: colorSchema.optional().describe(PARAM_DESCRIPTIONS.gray),
|
|
56
|
+
info: colorSchema.optional().describe(PARAM_DESCRIPTIONS.info),
|
|
57
|
+
success: colorSchema.optional().describe(PARAM_DESCRIPTIONS.success),
|
|
58
|
+
warn: colorSchema.optional().describe(PARAM_DESCRIPTIONS.warn),
|
|
59
|
+
error: colorSchema.optional().describe(PARAM_DESCRIPTIONS.error),
|
|
60
|
+
variant: variantSchema.describe(PARAM_DESCRIPTIONS.variant),
|
|
61
|
+
name: z.string().optional().describe(PARAM_DESCRIPTIONS.name),
|
|
62
|
+
output: outputFormatSchema.describe(PARAM_DESCRIPTIONS.output)
|
|
63
|
+
});
|
|
64
|
+
/**
|
|
65
|
+
* Schema for type style customization.
|
|
66
|
+
*/
|
|
67
|
+
var typeStyleSchema = z.object({
|
|
68
|
+
fontSize: z.string().optional(),
|
|
69
|
+
fontWeight: z.union([z.string(), z.number()]).optional(),
|
|
70
|
+
fontStyle: z.string().optional(),
|
|
71
|
+
lineHeight: z.string().optional(),
|
|
72
|
+
letterSpacing: z.string().optional(),
|
|
73
|
+
textTransform: z.string().optional(),
|
|
74
|
+
marginTop: z.string().optional(),
|
|
75
|
+
marginBottom: z.string().optional()
|
|
76
|
+
});
|
|
77
|
+
/**
|
|
78
|
+
* Schema for create_typography tool.
|
|
79
|
+
*/
|
|
80
|
+
var createTypographySchema = z.object({
|
|
81
|
+
platform: platformSchema,
|
|
82
|
+
licensed: licensedSchema,
|
|
83
|
+
fontFamily: z.string().describe(PARAM_DESCRIPTIONS.fontFamily),
|
|
84
|
+
designSystem: designSystemSchema.describe(PARAM_DESCRIPTIONS.designSystem),
|
|
85
|
+
customScale: z.record(typeStyleSchema).optional().describe(PARAM_DESCRIPTIONS.customScale),
|
|
86
|
+
name: z.string().optional().describe(PARAM_DESCRIPTIONS.name)
|
|
87
|
+
});
|
|
88
|
+
/**
|
|
89
|
+
* Schema for create_elevations tool.
|
|
90
|
+
*/
|
|
91
|
+
var createElevationsSchema = z.object({
|
|
92
|
+
platform: platformSchema,
|
|
93
|
+
licensed: licensedSchema,
|
|
94
|
+
designSystem: elevationPresetSchema.describe(PARAM_DESCRIPTIONS.elevationPreset),
|
|
95
|
+
name: z.string().optional().describe(PARAM_DESCRIPTIONS.name)
|
|
96
|
+
});
|
|
97
|
+
/**
|
|
98
|
+
* Schema for create_theme tool.
|
|
99
|
+
*/
|
|
100
|
+
var createThemeSchema = z.object({
|
|
101
|
+
platform: platformSchema,
|
|
102
|
+
licensed: licensedSchema,
|
|
103
|
+
designSystem: designSystemSchema.describe(PARAM_DESCRIPTIONS.designSystem),
|
|
104
|
+
primaryColor: colorSchema.describe(PARAM_DESCRIPTIONS.primaryColor),
|
|
105
|
+
secondaryColor: colorSchema.describe(PARAM_DESCRIPTIONS.secondaryColor),
|
|
106
|
+
surfaceColor: colorSchema.describe(PARAM_DESCRIPTIONS.surfaceColor),
|
|
107
|
+
variant: variantSchema.describe(PARAM_DESCRIPTIONS.variant),
|
|
108
|
+
name: z.string().optional().describe(PARAM_DESCRIPTIONS.name),
|
|
109
|
+
fontFamily: z.string().optional().describe(PARAM_DESCRIPTIONS.fontFamily),
|
|
110
|
+
includeTypography: z.boolean().optional().default(true).describe(PARAM_DESCRIPTIONS.includeTypography),
|
|
111
|
+
includeElevations: z.boolean().optional().default(true).describe(PARAM_DESCRIPTIONS.includeElevations),
|
|
112
|
+
includeSpacing: z.boolean().optional().default(true).describe(PARAM_DESCRIPTIONS.includeSpacing)
|
|
113
|
+
});
|
|
114
|
+
/**
|
|
115
|
+
* All chromatic shade levels combined for schema validation.
|
|
116
|
+
* Imported from types.ts - the single source of truth.
|
|
117
|
+
*/
|
|
118
|
+
/**
|
|
119
|
+
* Schema for shades-based color generation (uses Sass shades() function).
|
|
120
|
+
*/
|
|
121
|
+
var shadesBasedColorSchema = z.object({
|
|
122
|
+
mode: z.literal("shades"),
|
|
123
|
+
baseColor: colorSchema.describe(PARAM_DESCRIPTIONS.baseColor)
|
|
124
|
+
});
|
|
125
|
+
/**
|
|
126
|
+
* Schema for explicit chromatic shades (14 shades required).
|
|
127
|
+
* Dynamically builds the shades object from SHADE_LEVELS and ACCENT_SHADE_LEVELS.
|
|
128
|
+
*/
|
|
129
|
+
var explicitColorShadesSchema = z.object({
|
|
130
|
+
mode: z.literal("explicit"),
|
|
131
|
+
shades: z.object(Object.fromEntries(ALL_COLOR_SHADES.map((s) => [s, colorSchema]))).describe(PARAM_DESCRIPTIONS.shades),
|
|
132
|
+
contrastOverrides: z.record(z.enum(ALL_COLOR_SHADES), colorSchema).optional().describe(PARAM_DESCRIPTIONS.contrastOverrides)
|
|
133
|
+
});
|
|
134
|
+
/**
|
|
135
|
+
* Schema for explicit gray shades (10 shades required).
|
|
136
|
+
*/
|
|
137
|
+
var explicitGrayShadesSchema = z.object({
|
|
138
|
+
mode: z.literal("explicit"),
|
|
139
|
+
shades: z.object(Object.fromEntries(SHADE_LEVELS.map((s) => [s, colorSchema]))).describe(PARAM_DESCRIPTIONS.grayShades),
|
|
140
|
+
contrastOverrides: z.record(z.enum(SHADE_LEVELS), colorSchema).optional().describe(PARAM_DESCRIPTIONS.contrastOverrides)
|
|
141
|
+
});
|
|
142
|
+
/**
|
|
143
|
+
* Schema for color definition - either shades-based or explicit.
|
|
144
|
+
*/
|
|
145
|
+
var colorDefinitionSchema = z.union([shadesBasedColorSchema, explicitColorShadesSchema]);
|
|
146
|
+
/**
|
|
147
|
+
* Schema for gray definition - either shades-based or explicit.
|
|
148
|
+
*/
|
|
149
|
+
var grayDefinitionSchema = z.union([shadesBasedColorSchema, explicitGrayShadesSchema]);
|
|
150
|
+
/**
|
|
151
|
+
* Schema for create_custom_palette tool.
|
|
152
|
+
*/
|
|
153
|
+
var createCustomPaletteSchema = z.object({
|
|
154
|
+
platform: platformSchema,
|
|
155
|
+
licensed: licensedSchema,
|
|
156
|
+
variant: variantSchema.describe(PARAM_DESCRIPTIONS.variant),
|
|
157
|
+
designSystem: designSystemSchema.describe(PARAM_DESCRIPTIONS.designSystem),
|
|
158
|
+
name: z.string().optional().describe(PARAM_DESCRIPTIONS.name),
|
|
159
|
+
output: outputFormatSchema.describe(PARAM_DESCRIPTIONS.output),
|
|
160
|
+
primary: colorDefinitionSchema.describe(PARAM_DESCRIPTIONS.colorDefinition),
|
|
161
|
+
secondary: colorDefinitionSchema.describe(PARAM_DESCRIPTIONS.colorDefinition),
|
|
162
|
+
surface: colorDefinitionSchema.describe(PARAM_DESCRIPTIONS.colorDefinition),
|
|
163
|
+
gray: grayDefinitionSchema.optional().describe(PARAM_DESCRIPTIONS.grayDefinition),
|
|
164
|
+
info: colorDefinitionSchema.optional().describe(PARAM_DESCRIPTIONS.colorDefinition),
|
|
165
|
+
success: colorDefinitionSchema.optional().describe(PARAM_DESCRIPTIONS.colorDefinition),
|
|
166
|
+
warn: colorDefinitionSchema.optional().describe(PARAM_DESCRIPTIONS.colorDefinition),
|
|
167
|
+
error: colorDefinitionSchema.optional().describe(PARAM_DESCRIPTIONS.colorDefinition)
|
|
168
|
+
});
|
|
169
|
+
/**
|
|
170
|
+
* Schema for get_component_design_tokens tool.
|
|
171
|
+
*/
|
|
172
|
+
var getComponentDesignTokensSchema = z.object({ component: z.string().describe(PARAM_DESCRIPTIONS.component) });
|
|
173
|
+
/**
|
|
174
|
+
* Schema for token value in create_component_theme.
|
|
175
|
+
* Supports colors, numbers with units, and other Sass-compatible values.
|
|
176
|
+
*/
|
|
177
|
+
var tokenValueSchema = z.union([
|
|
178
|
+
colorSchema,
|
|
179
|
+
z.string().describe("CSS value (e.g., \"8px\", \"1rem\", \"0 2px 4px rgba(0,0,0,0.1)\")"),
|
|
180
|
+
z.number().describe("Numeric value")
|
|
113
181
|
]);
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
);
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
output: outputFormatSchema.describe(PARAM_DESCRIPTIONS.output)
|
|
176
|
-
});
|
|
177
|
-
const setSpacingInputSchema = z.object({
|
|
178
|
-
platform: platformSchema,
|
|
179
|
-
component: z.string().optional().describe(PARAM_DESCRIPTIONS.layoutComponent),
|
|
180
|
-
scope: z.string().optional().describe(PARAM_DESCRIPTIONS.scope),
|
|
181
|
-
spacing: z.number().min(0).describe(PARAM_DESCRIPTIONS.spacing),
|
|
182
|
-
inline: z.number().min(0).optional().describe(PARAM_DESCRIPTIONS.spacingInline),
|
|
183
|
-
block: z.number().min(0).optional().describe(PARAM_DESCRIPTIONS.spacingBlock),
|
|
184
|
-
output: outputFormatSchema.describe(PARAM_DESCRIPTIONS.output)
|
|
185
|
-
});
|
|
186
|
-
const setSpacingSchema = setSpacingInputSchema;
|
|
187
|
-
const setRoundnessSchema = z.object({
|
|
188
|
-
platform: platformSchema,
|
|
189
|
-
component: z.string().optional().describe(PARAM_DESCRIPTIONS.layoutComponent),
|
|
190
|
-
scope: z.string().optional().describe(PARAM_DESCRIPTIONS.scope),
|
|
191
|
-
radiusFactor: z.number().min(0).max(1).describe(PARAM_DESCRIPTIONS.radiusFactor),
|
|
192
|
-
output: outputFormatSchema.describe(PARAM_DESCRIPTIONS.output)
|
|
193
|
-
});
|
|
194
|
-
const readResourceSchema = z.object({
|
|
195
|
-
uri: z.string().describe(PARAM_DESCRIPTIONS.resourceUri)
|
|
196
|
-
});
|
|
197
|
-
export {
|
|
198
|
-
colorSchema,
|
|
199
|
-
createComponentThemeSchema,
|
|
200
|
-
createCustomPaletteSchema,
|
|
201
|
-
createElevationsSchema,
|
|
202
|
-
createPaletteSchema,
|
|
203
|
-
createThemeSchema,
|
|
204
|
-
createTypographySchema,
|
|
205
|
-
designSystemSchema,
|
|
206
|
-
detectPlatformSchema,
|
|
207
|
-
elevationPresetSchema,
|
|
208
|
-
getColorSchema,
|
|
209
|
-
getComponentDesignTokensSchema,
|
|
210
|
-
licensedSchema,
|
|
211
|
-
outputFormatSchema,
|
|
212
|
-
platformSchema,
|
|
213
|
-
readResourceSchema,
|
|
214
|
-
setRoundnessSchema,
|
|
215
|
-
setSizeSchema,
|
|
216
|
-
setSpacingInputSchema,
|
|
217
|
-
setSpacingSchema,
|
|
218
|
-
sizeKeywordSchema,
|
|
219
|
-
typeStyleSchema,
|
|
220
|
-
variantSchema
|
|
221
|
-
};
|
|
182
|
+
/**
|
|
183
|
+
* Schema for create_component_theme tool.
|
|
184
|
+
*/
|
|
185
|
+
var createComponentThemeSchema = z.object({
|
|
186
|
+
platform: z.enum(PLATFORMS).describe(PARAM_DESCRIPTIONS.platform),
|
|
187
|
+
licensed: licensedSchema,
|
|
188
|
+
designSystem: designSystemSchema.describe(PARAM_DESCRIPTIONS.designSystem),
|
|
189
|
+
variant: variantSchema.describe(PARAM_DESCRIPTIONS.variant),
|
|
190
|
+
component: z.string().describe(PARAM_DESCRIPTIONS.componentTheme),
|
|
191
|
+
tokens: z.record(z.string(), tokenValueSchema).describe(PARAM_DESCRIPTIONS.tokens),
|
|
192
|
+
selector: z.string().optional().describe(PARAM_DESCRIPTIONS.selector),
|
|
193
|
+
name: z.string().optional().describe(PARAM_DESCRIPTIONS.themeName),
|
|
194
|
+
output: outputFormatSchema.describe(PARAM_DESCRIPTIONS.output)
|
|
195
|
+
});
|
|
196
|
+
/**
|
|
197
|
+
* Schema for get_color tool with validation.
|
|
198
|
+
* Retrieves palette colors as CSS variable references.
|
|
199
|
+
*/
|
|
200
|
+
var getColorSchema = z.object({
|
|
201
|
+
color: z.enum(PALETTE_COLOR_GROUPS).describe(PARAM_DESCRIPTIONS.colorName),
|
|
202
|
+
variant: z.enum([...SHADE_LEVELS, ...ACCENT_SHADE_LEVELS]).optional().describe(PARAM_DESCRIPTIONS.shadeVariant),
|
|
203
|
+
contrast: z.boolean().optional().describe(PARAM_DESCRIPTIONS.contrastFlag),
|
|
204
|
+
opacity: z.number().min(0).max(1).optional().describe(PARAM_DESCRIPTIONS.opacity)
|
|
205
|
+
}).refine((data) => {
|
|
206
|
+
if (data.color === "gray" && data.variant) return !ACCENT_SHADE_LEVELS.includes(data.variant);
|
|
207
|
+
return true;
|
|
208
|
+
}, {
|
|
209
|
+
message: "Gray color does not support accent shades (A100, A200, A400, A700). Use standard shades: 50-900.",
|
|
210
|
+
path: ["variant"]
|
|
211
|
+
});
|
|
212
|
+
var sizeValueSchema = z.union([sizeKeywordSchema, z.number().int().min(1).max(3)]).describe(PARAM_DESCRIPTIONS.sizeValue);
|
|
213
|
+
var setSizeSchema = z.object({
|
|
214
|
+
platform: platformSchema,
|
|
215
|
+
component: z.string().optional().describe(PARAM_DESCRIPTIONS.layoutComponent),
|
|
216
|
+
scope: z.string().optional().describe(PARAM_DESCRIPTIONS.scope),
|
|
217
|
+
size: sizeValueSchema,
|
|
218
|
+
output: outputFormatSchema.describe(PARAM_DESCRIPTIONS.output)
|
|
219
|
+
});
|
|
220
|
+
var setSpacingInputSchema = z.object({
|
|
221
|
+
platform: platformSchema,
|
|
222
|
+
component: z.string().optional().describe(PARAM_DESCRIPTIONS.layoutComponent),
|
|
223
|
+
scope: z.string().optional().describe(PARAM_DESCRIPTIONS.scope),
|
|
224
|
+
spacing: z.number().min(0).describe(PARAM_DESCRIPTIONS.spacing),
|
|
225
|
+
inline: z.number().min(0).optional().describe(PARAM_DESCRIPTIONS.spacingInline),
|
|
226
|
+
block: z.number().min(0).optional().describe(PARAM_DESCRIPTIONS.spacingBlock),
|
|
227
|
+
output: outputFormatSchema.describe(PARAM_DESCRIPTIONS.output)
|
|
228
|
+
});
|
|
229
|
+
var setSpacingSchema = setSpacingInputSchema;
|
|
230
|
+
var setRoundnessSchema = z.object({
|
|
231
|
+
platform: platformSchema,
|
|
232
|
+
component: z.string().optional().describe(PARAM_DESCRIPTIONS.layoutComponent),
|
|
233
|
+
scope: z.string().optional().describe(PARAM_DESCRIPTIONS.scope),
|
|
234
|
+
radiusFactor: z.number().min(0).max(1).describe(PARAM_DESCRIPTIONS.radiusFactor),
|
|
235
|
+
output: outputFormatSchema.describe(PARAM_DESCRIPTIONS.output)
|
|
236
|
+
});
|
|
237
|
+
/**
|
|
238
|
+
* Schema for read_resource tool.
|
|
239
|
+
*/
|
|
240
|
+
var readResourceSchema = z.object({ uri: z.string().describe(PARAM_DESCRIPTIONS.resourceUri) });
|
|
241
|
+
//#endregion
|
|
242
|
+
export { createComponentThemeSchema, createCustomPaletteSchema, createElevationsSchema, createPaletteSchema, createThemeSchema, createTypographySchema, detectPlatformSchema, getColorSchema, getComponentDesignTokensSchema, platformSchema, readResourceSchema, setRoundnessSchema, setSizeSchema, setSpacingInputSchema, setSpacingSchema };
|