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.
Files changed (128) hide show
  1. package/dist/index.d.ts +75 -0
  2. package/dist/index.js +12 -0
  3. package/dist/json/components/bootstrap.json +1 -0
  4. package/dist/json/components/fluent.json +1 -0
  5. package/dist/json/components/indigo.json +1 -0
  6. package/dist/json/components/material.json +1 -0
  7. package/{json → dist/json}/components/themes.json +31 -1
  8. package/dist/mcp/generators/css.d.ts +7 -4
  9. package/dist/mcp/generators/css.js +129 -104
  10. package/dist/mcp/generators/sass.js +227 -254
  11. package/dist/mcp/index.js +259 -323
  12. package/dist/mcp/knowledge/color-usage.js +524 -502
  13. package/dist/mcp/knowledge/colors.js +61 -50
  14. package/dist/mcp/knowledge/component-metadata.js +697 -598
  15. package/dist/mcp/knowledge/component-themes.js +70 -57
  16. package/dist/mcp/knowledge/custom-palettes.js +4 -9
  17. package/dist/mcp/knowledge/docs/colors/guidance.js +4 -0
  18. package/dist/mcp/knowledge/docs/colors/usage.js +4 -0
  19. package/dist/mcp/knowledge/docs/layout/functions/border-radius.js +4 -0
  20. package/dist/mcp/knowledge/docs/layout/functions/pad.js +4 -0
  21. package/dist/mcp/knowledge/docs/layout/functions/sizable.js +4 -0
  22. package/dist/mcp/knowledge/docs/layout/mixins/sizable.js +4 -0
  23. package/dist/mcp/knowledge/docs/layout/mixins/sizing.js +4 -0
  24. package/dist/mcp/knowledge/docs/layout/mixins/spacing.js +4 -0
  25. package/dist/mcp/knowledge/docs/layout/overview.js +4 -0
  26. package/dist/mcp/knowledge/docs/setup/platform.js +4 -0
  27. package/dist/mcp/knowledge/elevations.d.ts +1 -1
  28. package/dist/mcp/knowledge/elevations.js +26 -12
  29. package/dist/mcp/knowledge/index.js +23 -87
  30. package/dist/mcp/knowledge/layout-docs.d.ts +1 -1
  31. package/dist/mcp/knowledge/multipliers.js +5 -0
  32. package/dist/mcp/knowledge/palettes.js +29 -17
  33. package/dist/mcp/knowledge/platforms/angular.js +98 -120
  34. package/dist/mcp/knowledge/platforms/blazor.js +39 -34
  35. package/dist/mcp/knowledge/platforms/common.js +83 -68
  36. package/dist/mcp/knowledge/platforms/index.js +265 -242
  37. package/dist/mcp/knowledge/platforms/react.js +43 -35
  38. package/dist/mcp/knowledge/platforms/webcomponents.js +266 -292
  39. package/dist/mcp/knowledge/sass-api.js +1 -0
  40. package/dist/mcp/knowledge/typography.js +13 -5
  41. package/dist/mcp/resources/index.js +1 -0
  42. package/dist/mcp/resources/presets.js +409 -508
  43. package/dist/mcp/theming/dist/json/colors/meta/multipliers.js +50 -0
  44. package/dist/mcp/theming/dist/json/colors/presets/palettes.js +85 -0
  45. package/dist/mcp/theming/dist/json/components/themes.js +5792 -0
  46. package/dist/mcp/theming/dist/json/elevations/indigo.js +29 -0
  47. package/dist/mcp/theming/dist/json/elevations/material.js +3 -0
  48. package/dist/mcp/theming/dist/json/typography/presets/typescales.js +621 -0
  49. package/dist/mcp/tools/descriptions.js +98 -154
  50. package/dist/mcp/tools/handlers/color.js +58 -56
  51. package/dist/mcp/tools/handlers/component-theme.js +163 -225
  52. package/dist/mcp/tools/handlers/component-tokens.js +159 -219
  53. package/dist/mcp/tools/handlers/custom-palette.js +138 -179
  54. package/dist/mcp/tools/handlers/elevations.js +27 -28
  55. package/dist/mcp/tools/handlers/index.js +11 -0
  56. package/dist/mcp/tools/handlers/layout.js +125 -176
  57. package/dist/mcp/tools/handlers/palette.js +105 -120
  58. package/dist/mcp/tools/handlers/platform.js +289 -311
  59. package/dist/mcp/tools/handlers/resource.js +22 -31
  60. package/dist/mcp/tools/handlers/theme.js +86 -103
  61. package/dist/mcp/tools/handlers/typography.js +29 -30
  62. package/dist/mcp/tools/index.js +13 -0
  63. package/dist/mcp/tools/schemas.js +239 -218
  64. package/dist/mcp/utils/color.js +277 -239
  65. package/dist/mcp/utils/preprocessing.js +57 -30
  66. package/dist/mcp/utils/result.js +43 -45
  67. package/dist/mcp/utils/sass.js +271 -191
  68. package/dist/mcp/utils/theming-resolve.d.ts +19 -0
  69. package/dist/mcp/utils/theming-resolve.js +57 -0
  70. package/dist/mcp/utils/types.js +96 -53
  71. package/dist/mcp/validators/custom-palette.js +218 -243
  72. package/dist/mcp/validators/index.js +3 -0
  73. package/dist/mcp/validators/palette.js +231 -229
  74. package/dist/tailwind/utilities/bootstrap.css +1 -0
  75. package/dist/tailwind/utilities/fluent.css +1 -0
  76. package/dist/tailwind/utilities/indigo.css +1 -0
  77. package/dist/tailwind/utilities/material.css +1 -0
  78. package/package.json +45 -64
  79. package/sass/json/README.md +12 -7
  80. package/sass/themes/_mixins.scss +1 -0
  81. package/sass/themes/components/button-group/_button-group-theme.scss +42 -0
  82. package/sass/themes/components/grid/_grid-theme.scss +1 -1
  83. package/sass/themes/schemas/components/dark/_button-group.scss +173 -50
  84. package/sass/themes/schemas/components/dark/_grid.scss +0 -16
  85. package/sass/themes/schemas/components/light/_button-group.scss +221 -99
  86. package/sass/themes/schemas/components/light/_grid.scss +14 -20
  87. package/LICENSE +0 -21
  88. package/README.md +0 -391
  89. package/dist/mcp/json/colors/presets/palettes.json.js +0 -13
  90. package/dist/mcp/json/components/themes.json.js +0 -143
  91. package/dist/mcp/json/elevations/indigo.json.js +0 -8
  92. package/dist/mcp/json/elevations/material.json.js +0 -8
  93. package/dist/mcp/json/typography/presets/typescales.json.js +0 -17
  94. package/dist/mcp/knowledge/docs/colors/guidance.md.js +0 -4
  95. package/dist/mcp/knowledge/docs/colors/usage.md.js +0 -4
  96. package/dist/mcp/knowledge/docs/layout/functions/border-radius.md.js +0 -4
  97. package/dist/mcp/knowledge/docs/layout/functions/pad.md.js +0 -4
  98. package/dist/mcp/knowledge/docs/layout/functions/sizable.md.js +0 -4
  99. package/dist/mcp/knowledge/docs/layout/mixins/sizable.md.js +0 -4
  100. package/dist/mcp/knowledge/docs/layout/mixins/sizing.md.js +0 -4
  101. package/dist/mcp/knowledge/docs/layout/mixins/spacing.md.js +0 -4
  102. package/dist/mcp/knowledge/docs/layout/overview.md.js +0 -4
  103. package/dist/mcp/knowledge/docs/setup/platform.md.js +0 -4
  104. package/dist/mcp/vite-env.d.ts +0 -18
  105. package/index.js +0 -5
  106. package/json/components/bootstrap.json +0 -1
  107. package/json/components/fluent.json +0 -1
  108. package/json/components/indigo.json +0 -1
  109. package/json/components/material.json +0 -1
  110. package/tailwind/utilities/bootstrap.css +0 -1
  111. package/tailwind/utilities/fluent.css +0 -1
  112. package/tailwind/utilities/indigo.css +0 -1
  113. package/tailwind/utilities/material.css +0 -1
  114. /package/{json → dist/json}/colors/meta/multipliers.json +0 -0
  115. /package/{json → dist/json}/colors/meta/palette.json +0 -0
  116. /package/{json → dist/json}/colors/presets/palettes.json +0 -0
  117. /package/{json → dist/json}/elevations/indigo.json +0 -0
  118. /package/{json → dist/json}/elevations/material.json +0 -0
  119. /package/{json → dist/json}/typography/presets/typescales.json +0 -0
  120. /package/{tailwind → dist/tailwind}/themes/base.css +0 -0
  121. /package/{tailwind → dist/tailwind}/themes/dark/bootstrap.css +0 -0
  122. /package/{tailwind → dist/tailwind}/themes/dark/fluent.css +0 -0
  123. /package/{tailwind → dist/tailwind}/themes/dark/indigo.css +0 -0
  124. /package/{tailwind → dist/tailwind}/themes/dark/material.css +0 -0
  125. /package/{tailwind → dist/tailwind}/themes/light/bootstrap.css +0 -0
  126. /package/{tailwind → dist/tailwind}/themes/light/fluent.css +0 -0
  127. /package/{tailwind → dist/tailwind}/themes/light/indigo.css +0 -0
  128. /package/{tailwind → dist/tailwind}/themes/light/material.css +0 -0
@@ -1,221 +1,242 @@
1
- import { z } from "zod";
2
- import "../knowledge/colors.js";
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
- const colorRegex = /^(#[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;
11
- const colorSchema = z.string().regex(
12
- colorRegex,
13
- "Must be a valid CSS color (hex, rgb, hsl, hwb, lab, lch, oklab, oklch, color(), or named color)"
14
- );
15
- const variantSchema = z.enum(VARIANTS).optional();
16
- const designSystemSchema = z.enum(DESIGN_SYSTEMS).optional();
17
- const elevationPresetSchema = z.enum(ELEVATION_PRESETS).optional();
18
- const outputFormatSchema = z.enum(OUTPUT_FORMATS).optional();
19
- const sizeKeywordSchema = z.enum(["small", "medium", "large"]);
20
- const platformSchema = z.enum(PLATFORMS).optional().describe(PARAM_DESCRIPTIONS.platform);
21
- const licensedSchema = z.boolean().optional().describe(PARAM_DESCRIPTIONS.licensed);
22
- const detectPlatformSchema = z.object({
23
- packageJsonPath: z.string().optional().describe(PARAM_DESCRIPTIONS.packageJsonPath)
24
- });
25
- const createPaletteSchema = z.object({
26
- platform: platformSchema,
27
- licensed: licensedSchema,
28
- primary: colorSchema.describe(PARAM_DESCRIPTIONS.primary),
29
- secondary: colorSchema.describe(PARAM_DESCRIPTIONS.secondary),
30
- surface: colorSchema.describe(PARAM_DESCRIPTIONS.surface),
31
- gray: colorSchema.optional().describe(PARAM_DESCRIPTIONS.gray),
32
- info: colorSchema.optional().describe(PARAM_DESCRIPTIONS.info),
33
- success: colorSchema.optional().describe(PARAM_DESCRIPTIONS.success),
34
- warn: colorSchema.optional().describe(PARAM_DESCRIPTIONS.warn),
35
- error: colorSchema.optional().describe(PARAM_DESCRIPTIONS.error),
36
- variant: variantSchema.describe(PARAM_DESCRIPTIONS.variant),
37
- name: z.string().optional().describe(PARAM_DESCRIPTIONS.name),
38
- output: outputFormatSchema.describe(PARAM_DESCRIPTIONS.output)
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
- const grayDefinitionSchema = z.union([
111
- shadesBasedColorSchema,
112
- explicitGrayShadesSchema
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
- const createCustomPaletteSchema = z.object({
115
- platform: platformSchema,
116
- licensed: licensedSchema,
117
- variant: variantSchema.describe(PARAM_DESCRIPTIONS.variant),
118
- designSystem: designSystemSchema.describe(PARAM_DESCRIPTIONS.designSystem),
119
- name: z.string().optional().describe(PARAM_DESCRIPTIONS.name),
120
- output: outputFormatSchema.describe(PARAM_DESCRIPTIONS.output),
121
- // Required colors - use colorDefinition description for detailed guidance
122
- primary: colorDefinitionSchema.describe(PARAM_DESCRIPTIONS.colorDefinition),
123
- secondary: colorDefinitionSchema.describe(PARAM_DESCRIPTIONS.colorDefinition),
124
- surface: colorDefinitionSchema.describe(PARAM_DESCRIPTIONS.colorDefinition),
125
- // Optional colors - defaults from design system preset if not provided
126
- gray: grayDefinitionSchema.optional().describe(PARAM_DESCRIPTIONS.grayDefinition),
127
- info: colorDefinitionSchema.optional().describe(PARAM_DESCRIPTIONS.colorDefinition),
128
- success: colorDefinitionSchema.optional().describe(PARAM_DESCRIPTIONS.colorDefinition),
129
- warn: colorDefinitionSchema.optional().describe(PARAM_DESCRIPTIONS.colorDefinition),
130
- error: colorDefinitionSchema.optional().describe(PARAM_DESCRIPTIONS.colorDefinition)
131
- });
132
- const getComponentDesignTokensSchema = z.object({
133
- component: z.string().describe(PARAM_DESCRIPTIONS.component)
134
- });
135
- const tokenValueSchema = z.union([
136
- colorSchema,
137
- z.string().describe('CSS value (e.g., "8px", "1rem", "0 2px 4px rgba(0,0,0,0.1)")'),
138
- z.number().describe("Numeric value")
139
- ]);
140
- const createComponentThemeSchema = z.object({
141
- platform: z.enum(PLATFORMS).describe(PARAM_DESCRIPTIONS.platform),
142
- licensed: licensedSchema,
143
- designSystem: designSystemSchema.describe(PARAM_DESCRIPTIONS.designSystem),
144
- variant: variantSchema.describe(PARAM_DESCRIPTIONS.variant),
145
- component: z.string().describe(PARAM_DESCRIPTIONS.componentTheme),
146
- tokens: z.record(z.string(), tokenValueSchema).describe(PARAM_DESCRIPTIONS.tokens),
147
- selector: z.string().optional().describe(PARAM_DESCRIPTIONS.selector),
148
- name: z.string().optional().describe(PARAM_DESCRIPTIONS.themeName),
149
- output: outputFormatSchema.describe(PARAM_DESCRIPTIONS.output)
150
- });
151
- const getColorBaseSchema = z.object({
152
- color: z.enum(PALETTE_COLOR_GROUPS).describe(PARAM_DESCRIPTIONS.colorName),
153
- variant: z.enum([...SHADE_LEVELS, ...ACCENT_SHADE_LEVELS]).optional().describe(PARAM_DESCRIPTIONS.shadeVariant),
154
- contrast: z.boolean().optional().describe(PARAM_DESCRIPTIONS.contrastFlag),
155
- opacity: z.number().min(0).max(1).optional().describe(PARAM_DESCRIPTIONS.opacity)
156
- });
157
- const getColorSchema = getColorBaseSchema.refine(
158
- (data) => {
159
- if (data.color === "gray" && data.variant) {
160
- return !ACCENT_SHADE_LEVELS.includes(data.variant);
161
- }
162
- return true;
163
- },
164
- {
165
- message: "Gray color does not support accent shades (A100, A200, A400, A700). Use standard shades: 50-900.",
166
- path: ["variant"]
167
- }
168
- );
169
- const sizeValueSchema = z.union([sizeKeywordSchema, z.number().int().min(1).max(3)]).describe(PARAM_DESCRIPTIONS.sizeValue);
170
- const setSizeSchema = z.object({
171
- platform: platformSchema,
172
- component: z.string().optional().describe(PARAM_DESCRIPTIONS.layoutComponent),
173
- scope: z.string().optional().describe(PARAM_DESCRIPTIONS.scope),
174
- size: sizeValueSchema,
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 };