@primer/primitives 11.4.0 → 11.4.1-rc.0499d5a6

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 (165) hide show
  1. package/DESIGN_TOKENS_GUIDE.md +185 -0
  2. package/DESIGN_TOKENS_SPEC.md +565 -0
  3. package/dist/build/formats/jsonFigma.js +8 -1
  4. package/dist/build/formats/markdownLlmGuidelines.d.ts +7 -6
  5. package/dist/build/formats/markdownLlmGuidelines.js +1034 -60
  6. package/dist/build/schemas/borderToken.d.ts +61 -5
  7. package/dist/build/schemas/borderToken.js +2 -1
  8. package/dist/build/schemas/colorToken.d.ts +639 -30
  9. package/dist/build/schemas/colorToken.js +3 -2
  10. package/dist/build/schemas/colorW3cValue.d.ts +28 -0
  11. package/dist/build/schemas/colorW3cValue.js +42 -0
  12. package/dist/build/schemas/cubicBezierToken.d.ts +1 -1
  13. package/dist/build/schemas/dimensionToken.d.ts +9 -2
  14. package/dist/build/schemas/dimensionValue.d.ts +12 -1
  15. package/dist/build/schemas/dimensionValue.js +10 -13
  16. package/dist/build/schemas/durationToken.d.ts +8 -2
  17. package/dist/build/schemas/durationValue.d.ts +11 -1
  18. package/dist/build/schemas/durationValue.js +13 -3
  19. package/dist/build/schemas/fontFamilyToken.d.ts +1 -1
  20. package/dist/build/schemas/fontWeightToken.d.ts +1 -1
  21. package/dist/build/schemas/gradientToken.d.ts +23 -2
  22. package/dist/build/schemas/gradientToken.js +2 -1
  23. package/dist/build/schemas/numberToken.d.ts +1 -1
  24. package/dist/build/schemas/shadowToken.d.ts +1751 -127
  25. package/dist/build/schemas/shadowToken.js +8 -2
  26. package/dist/build/schemas/stringToken.d.ts +1 -1
  27. package/dist/build/schemas/stringToken.js +1 -1
  28. package/dist/build/schemas/tokenType.d.ts +1 -1
  29. package/dist/build/schemas/transitionToken.d.ts +15 -3
  30. package/dist/build/schemas/typographyToken.d.ts +19 -5
  31. package/dist/build/schemas/typographyToken.js +1 -1
  32. package/dist/build/schemas/validTokenType.d.ts +1 -1
  33. package/dist/build/schemas/validTokenType.js +1 -1
  34. package/dist/build/schemas/viewportRangeToken.d.ts +1 -1
  35. package/dist/build/transformers/borderToCss.js +19 -1
  36. package/dist/build/transformers/colorAlphaToCss.js +6 -3
  37. package/dist/build/transformers/colorToHex.js +5 -2
  38. package/dist/build/transformers/colorToRgbAlpha.js +5 -2
  39. package/dist/build/transformers/colorToRgbaFloat.js +5 -0
  40. package/dist/build/transformers/dimensionToPixelUnitless.d.ts +3 -2
  41. package/dist/build/transformers/dimensionToPixelUnitless.js +22 -26
  42. package/dist/build/transformers/dimensionToRem.d.ts +2 -1
  43. package/dist/build/transformers/dimensionToRem.js +21 -22
  44. package/dist/build/transformers/dimensionToRemPxArray.d.ts +2 -1
  45. package/dist/build/transformers/dimensionToRemPxArray.js +21 -22
  46. package/dist/build/transformers/durationToCss.d.ts +2 -1
  47. package/dist/build/transformers/durationToCss.js +18 -11
  48. package/dist/build/transformers/gradientToCss.js +2 -1
  49. package/dist/build/transformers/shadowToCss.js +15 -1
  50. package/dist/build/transformers/utilities/normalizeColorValue.d.ts +23 -0
  51. package/dist/build/transformers/utilities/normalizeColorValue.js +74 -0
  52. package/dist/build/transformers/utilities/parseDimension.d.ts +12 -0
  53. package/dist/build/transformers/utilities/parseDimension.js +31 -0
  54. package/dist/build/types/borderTokenValue.d.ts +5 -2
  55. package/dist/build/types/dimensionTokenValue.d.ts +9 -0
  56. package/dist/build/types/shadowTokenValue.d.ts +8 -5
  57. package/dist/css/functional/themes/dark-colorblind-high-contrast.css +32 -28
  58. package/dist/css/functional/themes/dark-colorblind.css +32 -28
  59. package/dist/css/functional/themes/dark-dimmed-high-contrast.css +32 -28
  60. package/dist/css/functional/themes/dark-dimmed.css +32 -28
  61. package/dist/css/functional/themes/dark-high-contrast.css +32 -28
  62. package/dist/css/functional/themes/dark-tritanopia-high-contrast.css +32 -28
  63. package/dist/css/functional/themes/dark-tritanopia.css +32 -28
  64. package/dist/css/functional/themes/dark.css +32 -28
  65. package/dist/css/functional/themes/light-colorblind-high-contrast.css +32 -28
  66. package/dist/css/functional/themes/light-colorblind.css +32 -28
  67. package/dist/css/functional/themes/light-high-contrast.css +32 -28
  68. package/dist/css/functional/themes/light-tritanopia-high-contrast.css +32 -28
  69. package/dist/css/functional/themes/light-tritanopia.css +32 -28
  70. package/dist/css/functional/themes/light.css +32 -28
  71. package/dist/css/primitives.css +4 -0
  72. package/dist/docs/base/motion/motion.json +96 -24
  73. package/dist/docs/base/size/size.json +76 -19
  74. package/dist/docs/base/typography/typography.json +24 -6
  75. package/dist/docs/functional/size/border.json +26 -11
  76. package/dist/docs/functional/size/breakpoints.json +24 -6
  77. package/dist/docs/functional/size/radius.json +16 -4
  78. package/dist/docs/functional/size/size.json +60 -15
  79. package/dist/docs/functional/themes/dark-colorblind-high-contrast.json +2629 -346
  80. package/dist/docs/functional/themes/dark-colorblind.json +2629 -346
  81. package/dist/docs/functional/themes/dark-dimmed-high-contrast.json +2629 -346
  82. package/dist/docs/functional/themes/dark-dimmed.json +2629 -346
  83. package/dist/docs/functional/themes/dark-high-contrast.json +2629 -346
  84. package/dist/docs/functional/themes/dark-tritanopia-high-contrast.json +2629 -346
  85. package/dist/docs/functional/themes/dark-tritanopia.json +2629 -346
  86. package/dist/docs/functional/themes/dark.json +2629 -346
  87. package/dist/docs/functional/themes/light-colorblind-high-contrast.json +2635 -352
  88. package/dist/docs/functional/themes/light-colorblind.json +2632 -349
  89. package/dist/docs/functional/themes/light-high-contrast.json +2635 -352
  90. package/dist/docs/functional/themes/light-tritanopia-high-contrast.json +2635 -352
  91. package/dist/docs/functional/themes/light-tritanopia.json +2632 -349
  92. package/dist/docs/functional/themes/light.json +2632 -349
  93. package/dist/docs/functional/typography/typography.json +8 -2
  94. package/dist/fallbacks/base/motion/motion.json +48 -12
  95. package/dist/figma/themes/light-colorblind.json +4 -4
  96. package/dist/figma/themes/light-high-contrast.json +4 -4
  97. package/dist/figma/themes/light-tritanopia.json +4 -4
  98. package/dist/figma/themes/light.json +4 -4
  99. package/dist/internalCss/dark-colorblind-high-contrast.css +28 -28
  100. package/dist/internalCss/dark-colorblind.css +28 -28
  101. package/dist/internalCss/dark-dimmed-high-contrast.css +28 -28
  102. package/dist/internalCss/dark-dimmed.css +28 -28
  103. package/dist/internalCss/dark-high-contrast.css +28 -28
  104. package/dist/internalCss/dark-tritanopia-high-contrast.css +28 -28
  105. package/dist/internalCss/dark-tritanopia.css +28 -28
  106. package/dist/internalCss/dark.css +28 -28
  107. package/dist/internalCss/light-colorblind-high-contrast.css +28 -28
  108. package/dist/internalCss/light-colorblind.css +28 -28
  109. package/dist/internalCss/light-high-contrast.css +28 -28
  110. package/dist/internalCss/light-tritanopia-high-contrast.css +28 -28
  111. package/dist/internalCss/light-tritanopia.css +28 -28
  112. package/dist/internalCss/light.css +28 -28
  113. package/dist/styleLint/base/motion/motion.json +96 -24
  114. package/dist/styleLint/base/size/size.json +76 -19
  115. package/dist/styleLint/base/typography/typography.json +30 -12
  116. package/dist/styleLint/functional/size/border.json +27 -12
  117. package/dist/styleLint/functional/size/breakpoints.json +24 -6
  118. package/dist/styleLint/functional/size/radius.json +17 -5
  119. package/dist/styleLint/functional/size/size-coarse.json +3 -3
  120. package/dist/styleLint/functional/size/size-fine.json +3 -3
  121. package/dist/styleLint/functional/size/size.json +111 -66
  122. package/dist/styleLint/functional/themes/dark-colorblind-high-contrast.json +2757 -366
  123. package/dist/styleLint/functional/themes/dark-colorblind.json +2757 -366
  124. package/dist/styleLint/functional/themes/dark-dimmed-high-contrast.json +2757 -366
  125. package/dist/styleLint/functional/themes/dark-dimmed.json +2757 -366
  126. package/dist/styleLint/functional/themes/dark-high-contrast.json +2757 -366
  127. package/dist/styleLint/functional/themes/dark-tritanopia-high-contrast.json +2757 -366
  128. package/dist/styleLint/functional/themes/dark-tritanopia.json +2757 -366
  129. package/dist/styleLint/functional/themes/dark.json +2757 -366
  130. package/dist/styleLint/functional/themes/light-colorblind-high-contrast.json +2763 -372
  131. package/dist/styleLint/functional/themes/light-colorblind.json +2760 -369
  132. package/dist/styleLint/functional/themes/light-high-contrast.json +2763 -372
  133. package/dist/styleLint/functional/themes/light-tritanopia-high-contrast.json +2763 -372
  134. package/dist/styleLint/functional/themes/light-tritanopia.json +2760 -369
  135. package/dist/styleLint/functional/themes/light.json +2760 -369
  136. package/dist/styleLint/functional/typography/typography.json +28 -22
  137. package/package.json +9 -7
  138. package/src/tokens/base/motion/timing.json5 +12 -12
  139. package/src/tokens/base/size/size.json5 +194 -194
  140. package/src/tokens/base/typography/typography.json5 +6 -6
  141. package/src/tokens/component/avatar.json5 +72 -44
  142. package/src/tokens/component/button.json5 +1545 -1193
  143. package/src/tokens/functional/border/border.json5 +4 -1
  144. package/src/tokens/functional/color/bgColor.json5 +8 -0
  145. package/src/tokens/functional/color/display.json5 +7 -0
  146. package/src/tokens/functional/color/fgColor.json5 +8 -0
  147. package/src/tokens/functional/color/syntax.json5 +14 -0
  148. package/src/tokens/functional/shadow/shadow.json5 +1254 -163
  149. package/src/tokens/functional/size/border.json5 +8 -8
  150. package/src/tokens/functional/size/breakpoints.json5 +6 -6
  151. package/src/tokens/functional/size/radius.json5 +4 -4
  152. package/src/tokens/functional/size/size.json5 +15 -15
  153. package/src/tokens/functional/typography/typography.json5 +8 -4
  154. package/dist/build/parsers/index.d.ts +0 -1
  155. package/dist/build/parsers/index.js +0 -1
  156. package/dist/build/parsers/w3cJsonParser.d.ts +0 -6
  157. package/dist/build/parsers/w3cJsonParser.js +0 -25
  158. package/dist/removed/testing.json5 +0 -4
  159. package/guidelines/color.llm.md +0 -16
  160. package/guidelines/guidelines.llm.md +0 -34
  161. package/guidelines/motion.llm.md +0 -41
  162. package/guidelines/spacing.llm.md +0 -20
  163. package/guidelines/typography.llm.md +0 -14
  164. package/src/tokens/removed/testing.json5 +0 -4
  165. package/token-guidelines.llm.md +0 -695
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { colorHexValue } from './colorHexValue.js';
3
+ import { colorW3cValue } from './colorW3cValue.js';
3
4
  import { referenceValue } from './referenceValue.js';
4
5
  import { alphaValue } from './alphaValue.js';
5
6
  import { baseToken } from './baseToken.js';
@@ -8,10 +9,10 @@ import { scopes } from './scopes.js';
8
9
  import { tokenType } from './tokenType.js';
9
10
  import { llmExtension } from './llmExtension.js';
10
11
  const baseColorToken = baseToken.extend({
11
- $value: z.union([colorHexValue, referenceValue]),
12
+ $value: z.union([colorHexValue, colorW3cValue, referenceValue]),
12
13
  alpha: alphaValue.optional().nullable(),
13
14
  });
14
- const override = z.union([colorHexValue, referenceValue, baseColorToken.partial()]).optional();
15
+ const override = z.union([colorHexValue, colorW3cValue, referenceValue, baseColorToken.partial()]).optional();
15
16
  export const colorToken = baseColorToken
16
17
  .extend({
17
18
  $type: tokenType('color'),
@@ -0,0 +1,28 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * W3C DTCG color value schema
4
+ * @see https://www.designtokens.org/tr/drafts/color/#color-type
5
+ */
6
+ export declare const colorW3cValue: z.ZodObject<{
7
+ colorSpace: z.ZodEnum<{
8
+ "display-p3": "display-p3";
9
+ srgb: "srgb";
10
+ rec2020: "rec2020";
11
+ "srgb-linear": "srgb-linear";
12
+ hsl: "hsl";
13
+ hwb: "hwb";
14
+ lab: "lab";
15
+ lch: "lch";
16
+ oklab: "oklab";
17
+ oklch: "oklch";
18
+ "a98-rgb": "a98-rgb";
19
+ "prophoto-rgb": "prophoto-rgb";
20
+ xyz: "xyz";
21
+ "xyz-d50": "xyz-d50";
22
+ "xyz-d65": "xyz-d65";
23
+ }>;
24
+ components: z.ZodTuple<[z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"none">]>, z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"none">]>, z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"none">]>], null>;
25
+ alpha: z.ZodOptional<z.ZodNumber>;
26
+ hex: z.ZodOptional<z.ZodString>;
27
+ }, z.core.$strict>;
28
+ export type ColorW3cValue = z.infer<typeof colorW3cValue>;
@@ -0,0 +1,42 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * W3C DTCG color spaces
4
+ * @see https://www.designtokens.org/tr/drafts/color/#supported-color-spaces
5
+ */
6
+ const colorSpace = z.enum([
7
+ 'srgb',
8
+ 'srgb-linear',
9
+ 'hsl',
10
+ 'hwb',
11
+ 'lab',
12
+ 'lch',
13
+ 'oklab',
14
+ 'oklch',
15
+ 'display-p3',
16
+ 'a98-rgb',
17
+ 'prophoto-rgb',
18
+ 'rec2020',
19
+ 'xyz',
20
+ 'xyz-d50',
21
+ 'xyz-d65',
22
+ ]);
23
+ /**
24
+ * A color component: a number, or the 'none' keyword for missing components.
25
+ * @see https://www.designtokens.org/tr/drafts/color/#the-none-keyword
26
+ */
27
+ const colorComponent = z.union([z.number(), z.literal('none')]);
28
+ /**
29
+ * W3C DTCG color value schema
30
+ * @see https://www.designtokens.org/tr/drafts/color/#color-type
31
+ */
32
+ export const colorW3cValue = z
33
+ .object({
34
+ colorSpace: colorSpace,
35
+ components: z.tuple([colorComponent, colorComponent, colorComponent]),
36
+ alpha: z.number().min(0).max(1).optional(),
37
+ hex: z
38
+ .string()
39
+ .regex(/^#[0-9a-fA-F]{6}$/)
40
+ .optional(),
41
+ })
42
+ .strict();
@@ -3,7 +3,7 @@ export declare const cubicBezierToken: z.ZodObject<{
3
3
  $description: z.ZodOptional<z.ZodString>;
4
4
  $deprecated: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodBoolean]>>;
5
5
  $value: z.ZodUnion<readonly [z.ZodArray<z.ZodNumber>, z.ZodString]>;
6
- $type: z.ZodLiteral<"string" | "number" | "border" | "color" | "fontFamily" | "fontWeight" | "transition" | "dimension" | "duration" | "gradient" | "shadow" | "typography" | "cubicBezier" | "custom-viewportRange">;
6
+ $type: z.ZodLiteral<"number" | "border" | "color" | "fontFamily" | "fontWeight" | "transition" | "duration" | "dimension" | "gradient" | "shadow" | "typography" | "cubicBezier" | "custom-viewportRange" | "custom-string">;
7
7
  $extensions: z.ZodOptional<z.ZodObject<{
8
8
  'org.primer.llm': z.ZodOptional<z.ZodObject<{
9
9
  usage: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -2,8 +2,15 @@ import { z } from 'zod';
2
2
  export declare const dimensionToken: z.ZodObject<{
3
3
  $description: z.ZodOptional<z.ZodString>;
4
4
  $deprecated: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodBoolean]>>;
5
- $value: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"0">, z.ZodLiteral<0>]>, z.ZodString]>;
6
- $type: z.ZodLiteral<"string" | "number" | "border" | "color" | "fontFamily" | "fontWeight" | "transition" | "dimension" | "duration" | "gradient" | "shadow" | "typography" | "cubicBezier" | "custom-viewportRange">;
5
+ $value: z.ZodUnion<readonly [z.ZodObject<{
6
+ value: z.ZodNumber;
7
+ unit: z.ZodEnum<{
8
+ em: "em";
9
+ px: "px";
10
+ rem: "rem";
11
+ }>;
12
+ }, z.core.$strict>, z.ZodString]>;
13
+ $type: z.ZodLiteral<"number" | "border" | "color" | "fontFamily" | "fontWeight" | "transition" | "duration" | "dimension" | "gradient" | "shadow" | "typography" | "cubicBezier" | "custom-viewportRange" | "custom-string">;
7
14
  $extensions: z.ZodOptional<z.ZodObject<{
8
15
  'org.primer.figma': z.ZodOptional<z.ZodObject<{
9
16
  collection: z.ZodString;
@@ -1,2 +1,13 @@
1
1
  import { z } from 'zod';
2
- export declare const dimensionValue: z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"0">, z.ZodLiteral<0>]>;
2
+ /**
3
+ * W3C DTCG dimension value format
4
+ * @link https://www.designtokens.org/tr/drafts/format/#dimension
5
+ */
6
+ export declare const dimensionValue: z.ZodObject<{
7
+ value: z.ZodNumber;
8
+ unit: z.ZodEnum<{
9
+ em: "em";
10
+ px: "px";
11
+ rem: "rem";
12
+ }>;
13
+ }, z.core.$strict>;
@@ -1,14 +1,11 @@
1
1
  import { z } from 'zod';
2
- import { schemaErrorMessage } from '../utilities/index.js';
3
- export const dimensionValue = z.union([
4
- z.string().superRefine((dim, ctx) => {
5
- if (!/(^-?[0-9]+\.?[0-9]*(px|rem)$|^-?[0-9]+\.?[0-9]*em$)/.test(dim)) {
6
- ctx.addIssue({
7
- code: 'custom',
8
- message: schemaErrorMessage(`Invalid dimension: "${dim}"`, `Dimension must be a string with a unit (px, rem or em) or 0`),
9
- });
10
- }
11
- }),
12
- z.literal('0'),
13
- z.literal(0),
14
- ]);
2
+ /**
3
+ * W3C DTCG dimension value format
4
+ * @link https://www.designtokens.org/tr/drafts/format/#dimension
5
+ */
6
+ export const dimensionValue = z
7
+ .object({
8
+ value: z.number(),
9
+ unit: z.enum(['px', 'rem', 'em']),
10
+ })
11
+ .strict();
@@ -2,8 +2,14 @@ import { z } from 'zod';
2
2
  export declare const durationToken: z.ZodObject<{
3
3
  $description: z.ZodOptional<z.ZodString>;
4
4
  $deprecated: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodBoolean]>>;
5
- $value: z.ZodUnion<readonly [z.ZodString, z.ZodString]>;
6
- $type: z.ZodLiteral<"string" | "number" | "border" | "color" | "fontFamily" | "fontWeight" | "transition" | "dimension" | "duration" | "gradient" | "shadow" | "typography" | "cubicBezier" | "custom-viewportRange">;
5
+ $value: z.ZodUnion<readonly [z.ZodObject<{
6
+ value: z.ZodNumber;
7
+ unit: z.ZodEnum<{
8
+ s: "s";
9
+ ms: "ms";
10
+ }>;
11
+ }, z.core.$strict>, z.ZodString]>;
12
+ $type: z.ZodLiteral<"number" | "border" | "color" | "fontFamily" | "fontWeight" | "transition" | "duration" | "dimension" | "gradient" | "shadow" | "typography" | "cubicBezier" | "custom-viewportRange" | "custom-string">;
7
13
  $extensions: z.ZodOptional<z.ZodObject<{
8
14
  'org.primer.llm': z.ZodOptional<z.ZodObject<{
9
15
  usage: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -1,2 +1,12 @@
1
1
  import { z } from 'zod';
2
- export declare const durationValue: z.ZodString;
2
+ /**
3
+ * W3C DTCG duration value format
4
+ * @see https://www.designtokens.org/tr/2025.10/format/#duration
5
+ */
6
+ export declare const durationValue: z.ZodObject<{
7
+ value: z.ZodNumber;
8
+ unit: z.ZodEnum<{
9
+ s: "s";
10
+ ms: "ms";
11
+ }>;
12
+ }, z.core.$strict>;
@@ -1,10 +1,20 @@
1
1
  import { z } from 'zod';
2
2
  import { schemaErrorMessage } from '../utilities/index.js';
3
- export const durationValue = z.string().superRefine((duration, ctx) => {
4
- if (!/^[0-9]+ms$/.test(duration)) {
3
+ /**
4
+ * W3C DTCG duration value format
5
+ * @see https://www.designtokens.org/tr/2025.10/format/#duration
6
+ */
7
+ export const durationValue = z
8
+ .object({
9
+ value: z.number(),
10
+ unit: z.enum(['ms', 's']),
11
+ })
12
+ .strict()
13
+ .superRefine((duration, ctx) => {
14
+ if (typeof duration.value !== 'number') {
5
15
  ctx.addIssue({
6
16
  code: 'custom',
7
- message: schemaErrorMessage(`Invalid duration: "${duration}"`, `A duration must be a string with an "ms"`),
17
+ message: schemaErrorMessage(`Invalid duration value: "${duration.value}"`, `Duration value must be a number`),
8
18
  });
9
19
  }
10
20
  });
@@ -3,7 +3,7 @@ export declare const fontFamilyToken: z.ZodObject<{
3
3
  $description: z.ZodOptional<z.ZodString>;
4
4
  $deprecated: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodBoolean]>>;
5
5
  $value: z.ZodUnion<readonly [z.ZodString, z.ZodString]>;
6
- $type: z.ZodLiteral<"string" | "number" | "border" | "color" | "fontFamily" | "fontWeight" | "transition" | "dimension" | "duration" | "gradient" | "shadow" | "typography" | "cubicBezier" | "custom-viewportRange">;
6
+ $type: z.ZodLiteral<"number" | "border" | "color" | "fontFamily" | "fontWeight" | "transition" | "duration" | "dimension" | "gradient" | "shadow" | "typography" | "cubicBezier" | "custom-viewportRange" | "custom-string">;
7
7
  $extensions: z.ZodOptional<z.ZodObject<{
8
8
  'org.primer.figma': z.ZodObject<{
9
9
  collection: z.ZodOptional<z.ZodString>;
@@ -2,7 +2,7 @@ import { z } from 'zod';
2
2
  export declare const fontWeightToken: z.ZodObject<{
3
3
  $description: z.ZodOptional<z.ZodString>;
4
4
  $deprecated: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodBoolean]>>;
5
- $type: z.ZodLiteral<"string" | "number" | "border" | "color" | "fontFamily" | "fontWeight" | "transition" | "dimension" | "duration" | "gradient" | "shadow" | "typography" | "cubicBezier" | "custom-viewportRange">;
5
+ $type: z.ZodLiteral<"number" | "border" | "color" | "fontFamily" | "fontWeight" | "transition" | "duration" | "dimension" | "gradient" | "shadow" | "typography" | "cubicBezier" | "custom-viewportRange" | "custom-string">;
6
6
  $value: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
7
7
  $extensions: z.ZodOptional<z.ZodObject<{
8
8
  'org.primer.figma': z.ZodObject<{
@@ -3,10 +3,31 @@ export declare const gradientToken: z.ZodObject<{
3
3
  $description: z.ZodOptional<z.ZodString>;
4
4
  $deprecated: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodBoolean]>>;
5
5
  $value: z.ZodUnion<readonly [z.ZodArray<z.ZodObject<{
6
- color: z.ZodUnion<readonly [z.ZodString, z.ZodString]>;
6
+ color: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
7
+ colorSpace: z.ZodEnum<{
8
+ "display-p3": "display-p3";
9
+ srgb: "srgb";
10
+ rec2020: "rec2020";
11
+ "srgb-linear": "srgb-linear";
12
+ hsl: "hsl";
13
+ hwb: "hwb";
14
+ lab: "lab";
15
+ lch: "lch";
16
+ oklab: "oklab";
17
+ oklch: "oklch";
18
+ "a98-rgb": "a98-rgb";
19
+ "prophoto-rgb": "prophoto-rgb";
20
+ xyz: "xyz";
21
+ "xyz-d50": "xyz-d50";
22
+ "xyz-d65": "xyz-d65";
23
+ }>;
24
+ components: z.ZodTuple<[z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"none">]>, z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"none">]>, z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"none">]>], null>;
25
+ alpha: z.ZodOptional<z.ZodNumber>;
26
+ hex: z.ZodOptional<z.ZodString>;
27
+ }, z.core.$strict>, z.ZodString]>;
7
28
  position: z.ZodNumber;
8
29
  }, z.core.$strip>>, z.ZodString]>;
9
- $type: z.ZodLiteral<"string" | "number" | "border" | "color" | "fontFamily" | "fontWeight" | "transition" | "dimension" | "duration" | "gradient" | "shadow" | "typography" | "cubicBezier" | "custom-viewportRange">;
30
+ $type: z.ZodLiteral<"number" | "border" | "color" | "fontFamily" | "fontWeight" | "transition" | "duration" | "dimension" | "gradient" | "shadow" | "typography" | "cubicBezier" | "custom-viewportRange" | "custom-string">;
10
31
  $extensions: z.ZodOptional<z.ZodObject<{
11
32
  'org.primer.gradient': z.ZodObject<{
12
33
  angle: z.ZodOptional<z.ZodNumber>;
@@ -3,13 +3,14 @@ import { baseToken } from './baseToken.js';
3
3
  import { referenceValue } from './referenceValue.js';
4
4
  import { tokenType } from './tokenType.js';
5
5
  import { colorHexValue } from './colorHexValue.js';
6
+ import { colorW3cValue } from './colorW3cValue.js';
6
7
  import { llmExtension } from './llmExtension.js';
7
8
  export const gradientToken = baseToken
8
9
  .extend({
9
10
  $value: z.union([
10
11
  z
11
12
  .array(z.object({
12
- color: z.union([colorHexValue, referenceValue]),
13
+ color: z.union([colorHexValue, colorW3cValue, referenceValue]),
13
14
  position: z.number().min(0).max(1),
14
15
  }))
15
16
  .min(2),
@@ -3,7 +3,7 @@ export declare const numberToken: z.ZodObject<{
3
3
  $description: z.ZodOptional<z.ZodString>;
4
4
  $deprecated: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodBoolean]>>;
5
5
  $value: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
6
- $type: z.ZodLiteral<"string" | "number" | "border" | "color" | "fontFamily" | "fontWeight" | "transition" | "dimension" | "duration" | "gradient" | "shadow" | "typography" | "cubicBezier" | "custom-viewportRange">;
6
+ $type: z.ZodLiteral<"number" | "border" | "color" | "fontFamily" | "fontWeight" | "transition" | "duration" | "dimension" | "gradient" | "shadow" | "typography" | "cubicBezier" | "custom-viewportRange" | "custom-string">;
7
7
  $extensions: z.ZodOptional<z.ZodObject<{
8
8
  'org.primer.data': z.ZodOptional<z.ZodObject<{
9
9
  fontSize: z.ZodOptional<z.ZodNumber>;