@digdir/designsystemet 1.0.0-next.45 → 1.0.0-next.46

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 (77) hide show
  1. package/dist/bin/config.d.ts +156 -0
  2. package/dist/bin/config.d.ts.map +1 -0
  3. package/dist/bin/designsystemet.js +124 -20
  4. package/dist/bin/options.d.ts +16 -0
  5. package/dist/bin/options.d.ts.map +1 -0
  6. package/dist/config.schema.json +78 -0
  7. package/dist/src/build-scripts/createJsonSchema.d.ts +2 -0
  8. package/dist/src/build-scripts/createJsonSchema.d.ts.map +1 -0
  9. package/dist/src/build-scripts/createJsonSchema.js +15 -0
  10. package/dist/src/tokens/build/configs.d.ts.map +1 -1
  11. package/dist/src/tokens/build/configs.js +23 -12
  12. package/dist/src/tokens/build/formats/css.d.ts +4 -2
  13. package/dist/src/tokens/build/formats/css.d.ts.map +1 -1
  14. package/dist/src/tokens/build/formats/css.js +20 -12
  15. package/dist/src/tokens/build/formats/js-tokens.d.ts.map +1 -1
  16. package/dist/src/tokens/build/formats/js-tokens.js +7 -4
  17. package/dist/src/tokens/build/transformers.d.ts +0 -1
  18. package/dist/src/tokens/build/transformers.d.ts.map +1 -1
  19. package/dist/src/tokens/build/transformers.js +1 -13
  20. package/dist/src/tokens/create.d.ts +15 -11
  21. package/dist/src/tokens/create.d.ts.map +1 -1
  22. package/dist/src/tokens/create.js +14 -5
  23. package/dist/src/tokens/design-tokens/default/Figma/components.json +3 -3
  24. package/dist/src/tokens/design-tokens/default/primitives/globals.json +1 -1
  25. package/dist/src/tokens/design-tokens/default/primitives/modes/size/global.json +21 -21
  26. package/dist/src/tokens/design-tokens/default/semantic/style.json +109 -27
  27. package/dist/src/tokens/design-tokens/template/$themes.json +63 -63
  28. package/dist/src/tokens/design-tokens/template/semantic/color-base-file.json +1 -1
  29. package/dist/src/tokens/design-tokens/template/themes/theme-base-file.json +8 -8
  30. package/dist/src/tokens/index.d.ts +2 -1
  31. package/dist/src/tokens/index.d.ts.map +1 -1
  32. package/dist/src/tokens/index.js +2 -2
  33. package/dist/src/tokens/types.d.ts +2 -8
  34. package/dist/src/tokens/types.d.ts.map +1 -1
  35. package/dist/src/tokens/utils.d.ts +1 -0
  36. package/dist/src/tokens/utils.d.ts.map +1 -1
  37. package/dist/src/tokens/utils.js +2 -0
  38. package/package.json +17 -7
  39. package/dist/src/init/createTokensPackage.d.ts +0 -5
  40. package/dist/src/init/createTokensPackage.d.ts.map +0 -1
  41. package/dist/src/init/createTokensPackage.js +0 -273
  42. package/dist/src/init/generateMetadataJson.d.ts +0 -6
  43. package/dist/src/init/generateMetadataJson.d.ts.map +0 -1
  44. package/dist/src/init/generateMetadataJson.js +0 -24
  45. package/dist/src/init/generateThemesJson.d.ts +0 -3
  46. package/dist/src/init/generateThemesJson.d.ts.map +0 -1
  47. package/dist/src/init/generateThemesJson.js +0 -103
  48. package/dist/src/init/index.d.ts +0 -3
  49. package/dist/src/init/index.d.ts.map +0 -1
  50. package/dist/src/init/index.js +0 -10
  51. package/dist/src/init/nextStepsMarkdown.d.ts +0 -3
  52. package/dist/src/init/nextStepsMarkdown.d.ts.map +0 -1
  53. package/dist/src/init/nextStepsMarkdown.js +0 -92
  54. package/dist/src/init/template/default-files/README.md +0 -10
  55. package/dist/src/init/template/default-files/design-tokens/Figma/components.json +0 -22
  56. package/dist/src/init/template/default-files/design-tokens/README.md +0 -3
  57. package/dist/src/init/template/default-files/design-tokens/primitives/globals.json +0 -161
  58. package/dist/src/init/template/default-files/design-tokens/primitives/size/default.json +0 -175
  59. package/dist/src/init/template/default-files/design-tokens/semantic/color.json +0 -572
  60. package/dist/src/init/template/default-files/design-tokens/semantic/style.json +0 -564
  61. package/dist/src/init/template/default-files/design-tokens/themes/theme.json +0 -334
  62. package/dist/src/init/template/template-files/design-tokens/primitives/modes/colors/contrast/global.json +0 -376
  63. package/dist/src/init/template/template-files/design-tokens/primitives/modes/colors/contrast/theme-template.json +0 -314
  64. package/dist/src/init/template/template-files/design-tokens/primitives/modes/colors/dark/global.json +0 -376
  65. package/dist/src/init/template/template-files/design-tokens/primitives/modes/colors/dark/theme-template.json +0 -314
  66. package/dist/src/init/template/template-files/design-tokens/primitives/modes/colors/light/global.json +0 -376
  67. package/dist/src/init/template/template-files/design-tokens/primitives/modes/colors/light/theme-template.json +0 -314
  68. package/dist/src/init/template/template-files/design-tokens/primitives/modes/typography/primary/theme-template.json +0 -30
  69. package/dist/src/init/template/template-files/design-tokens/primitives/modes/typography/secondary/theme-template.json +0 -30
  70. package/dist/src/init/template/template-files/design-tokens/themes/theme-template.json +0 -334
  71. package/dist/src/init/template/template-files/package.json +0 -24
  72. package/dist/src/init/utils.d.ts +0 -4
  73. package/dist/src/init/utils.d.ts.map +0 -1
  74. package/dist/src/init/utils.js +0 -15
  75. package/dist/src/tokens/build/utils/noCase.d.ts +0 -11
  76. package/dist/src/tokens/build/utils/noCase.d.ts.map +0 -1
  77. package/dist/src/tokens/build/utils/noCase.js +0 -24
@@ -0,0 +1,156 @@
1
+ import { z } from 'zod';
2
+ export declare function mapPathToOptionName(path: (string | number)[]): string | undefined;
3
+ export declare const colorRegex: RegExp;
4
+ /**
5
+ * This defines the structure of the JSON config file
6
+ */
7
+ export declare const configFileSchema: z.ZodObject<{
8
+ outDir: z.ZodOptional<z.ZodString>;
9
+ themes: z.ZodRecord<z.ZodString, z.ZodObject<{
10
+ colors: z.ZodObject<{
11
+ main: z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodString, `#${string}` | `rgb(${number} ${number} ${number})` | `hsl(${number}deg ${number}% ${number}%)` | `hsv(${number}deg ${number}% ${number}%)` | `hsluv(${number} ${number} ${number})` | `lab(${number}% ${number} ${number})` | `lch(${number}% ${number} ${number}deg)` | `oklab(${number}% ${number} ${number})` | `oklch(${number}% ${number} ${number}deg)` | `jab(${number}% ${number} ${number})` | `jch(${number}% ${number} ${number}deg)`, string>>;
12
+ support: z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodString, `#${string}` | `rgb(${number} ${number} ${number})` | `hsl(${number}deg ${number}% ${number}%)` | `hsv(${number}deg ${number}% ${number}%)` | `hsluv(${number} ${number} ${number})` | `lab(${number}% ${number} ${number})` | `lch(${number}% ${number} ${number}deg)` | `oklab(${number}% ${number} ${number})` | `oklch(${number}% ${number} ${number}deg)` | `jab(${number}% ${number} ${number})` | `jch(${number}% ${number} ${number}deg)`, string>>;
13
+ neutral: z.ZodEffects<z.ZodString, `#${string}` | `rgb(${number} ${number} ${number})` | `hsl(${number}deg ${number}% ${number}%)` | `hsv(${number}deg ${number}% ${number}%)` | `hsluv(${number} ${number} ${number})` | `lab(${number}% ${number} ${number})` | `lch(${number}% ${number} ${number}deg)` | `oklab(${number}% ${number} ${number})` | `oklch(${number}% ${number} ${number}deg)` | `jab(${number}% ${number} ${number})` | `jch(${number}% ${number} ${number}deg)`, string>;
14
+ }, "strip", z.ZodTypeAny, {
15
+ main: Record<string, `#${string}` | `rgb(${number} ${number} ${number})` | `hsl(${number}deg ${number}% ${number}%)` | `hsv(${number}deg ${number}% ${number}%)` | `hsluv(${number} ${number} ${number})` | `lab(${number}% ${number} ${number})` | `lch(${number}% ${number} ${number}deg)` | `oklab(${number}% ${number} ${number})` | `oklch(${number}% ${number} ${number}deg)` | `jab(${number}% ${number} ${number})` | `jch(${number}% ${number} ${number}deg)`>;
16
+ neutral: `#${string}` | `rgb(${number} ${number} ${number})` | `hsl(${number}deg ${number}% ${number}%)` | `hsv(${number}deg ${number}% ${number}%)` | `hsluv(${number} ${number} ${number})` | `lab(${number}% ${number} ${number})` | `lch(${number}% ${number} ${number}deg)` | `oklab(${number}% ${number} ${number})` | `oklch(${number}% ${number} ${number}deg)` | `jab(${number}% ${number} ${number})` | `jch(${number}% ${number} ${number}deg)`;
17
+ support: Record<string, `#${string}` | `rgb(${number} ${number} ${number})` | `hsl(${number}deg ${number}% ${number}%)` | `hsv(${number}deg ${number}% ${number}%)` | `hsluv(${number} ${number} ${number})` | `lab(${number}% ${number} ${number})` | `lch(${number}% ${number} ${number}deg)` | `oklab(${number}% ${number} ${number})` | `oklch(${number}% ${number} ${number}deg)` | `jab(${number}% ${number} ${number})` | `jch(${number}% ${number} ${number}deg)`>;
18
+ }, {
19
+ main: Record<string, string>;
20
+ neutral: string;
21
+ support: Record<string, string>;
22
+ }>;
23
+ typography: z.ZodObject<{
24
+ fontFamily: z.ZodString;
25
+ }, "strip", z.ZodTypeAny, {
26
+ fontFamily: string;
27
+ }, {
28
+ fontFamily: string;
29
+ }>;
30
+ borderRadius: z.ZodNumber;
31
+ }, "strip", z.ZodTypeAny, {
32
+ colors: {
33
+ main: Record<string, `#${string}` | `rgb(${number} ${number} ${number})` | `hsl(${number}deg ${number}% ${number}%)` | `hsv(${number}deg ${number}% ${number}%)` | `hsluv(${number} ${number} ${number})` | `lab(${number}% ${number} ${number})` | `lch(${number}% ${number} ${number}deg)` | `oklab(${number}% ${number} ${number})` | `oklch(${number}% ${number} ${number}deg)` | `jab(${number}% ${number} ${number})` | `jch(${number}% ${number} ${number}deg)`>;
34
+ neutral: `#${string}` | `rgb(${number} ${number} ${number})` | `hsl(${number}deg ${number}% ${number}%)` | `hsv(${number}deg ${number}% ${number}%)` | `hsluv(${number} ${number} ${number})` | `lab(${number}% ${number} ${number})` | `lch(${number}% ${number} ${number}deg)` | `oklab(${number}% ${number} ${number})` | `oklch(${number}% ${number} ${number}deg)` | `jab(${number}% ${number} ${number})` | `jch(${number}% ${number} ${number}deg)`;
35
+ support: Record<string, `#${string}` | `rgb(${number} ${number} ${number})` | `hsl(${number}deg ${number}% ${number}%)` | `hsv(${number}deg ${number}% ${number}%)` | `hsluv(${number} ${number} ${number})` | `lab(${number}% ${number} ${number})` | `lch(${number}% ${number} ${number}deg)` | `oklab(${number}% ${number} ${number})` | `oklch(${number}% ${number} ${number}deg)` | `jab(${number}% ${number} ${number})` | `jch(${number}% ${number} ${number}deg)`>;
36
+ };
37
+ typography: {
38
+ fontFamily: string;
39
+ };
40
+ borderRadius: number;
41
+ }, {
42
+ colors: {
43
+ main: Record<string, string>;
44
+ neutral: string;
45
+ support: Record<string, string>;
46
+ };
47
+ typography: {
48
+ fontFamily: string;
49
+ };
50
+ borderRadius: number;
51
+ }>>;
52
+ }, "strip", z.ZodTypeAny, {
53
+ themes: Record<string, {
54
+ colors: {
55
+ main: Record<string, `#${string}` | `rgb(${number} ${number} ${number})` | `hsl(${number}deg ${number}% ${number}%)` | `hsv(${number}deg ${number}% ${number}%)` | `hsluv(${number} ${number} ${number})` | `lab(${number}% ${number} ${number})` | `lch(${number}% ${number} ${number}deg)` | `oklab(${number}% ${number} ${number})` | `oklch(${number}% ${number} ${number}deg)` | `jab(${number}% ${number} ${number})` | `jch(${number}% ${number} ${number}deg)`>;
56
+ neutral: `#${string}` | `rgb(${number} ${number} ${number})` | `hsl(${number}deg ${number}% ${number}%)` | `hsv(${number}deg ${number}% ${number}%)` | `hsluv(${number} ${number} ${number})` | `lab(${number}% ${number} ${number})` | `lch(${number}% ${number} ${number}deg)` | `oklab(${number}% ${number} ${number})` | `oklch(${number}% ${number} ${number}deg)` | `jab(${number}% ${number} ${number})` | `jch(${number}% ${number} ${number}deg)`;
57
+ support: Record<string, `#${string}` | `rgb(${number} ${number} ${number})` | `hsl(${number}deg ${number}% ${number}%)` | `hsv(${number}deg ${number}% ${number}%)` | `hsluv(${number} ${number} ${number})` | `lab(${number}% ${number} ${number})` | `lch(${number}% ${number} ${number}deg)` | `oklab(${number}% ${number} ${number})` | `oklch(${number}% ${number} ${number}deg)` | `jab(${number}% ${number} ${number})` | `jch(${number}% ${number} ${number}deg)`>;
58
+ };
59
+ typography: {
60
+ fontFamily: string;
61
+ };
62
+ borderRadius: number;
63
+ }>;
64
+ outDir?: string | undefined;
65
+ }, {
66
+ themes: Record<string, {
67
+ colors: {
68
+ main: Record<string, string>;
69
+ neutral: string;
70
+ support: Record<string, string>;
71
+ };
72
+ typography: {
73
+ fontFamily: string;
74
+ };
75
+ borderRadius: number;
76
+ }>;
77
+ outDir?: string | undefined;
78
+ }>;
79
+ /**
80
+ * This defines the structure of the final configuration after combining the config file,
81
+ * command-line options and default values.
82
+ */
83
+ export declare const combinedConfigSchema: z.ZodObject<{
84
+ outDir: z.ZodString;
85
+ themes: z.ZodRecord<z.ZodString, z.ZodObject<{
86
+ colors: z.ZodObject<{
87
+ main: z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodString, `#${string}` | `rgb(${number} ${number} ${number})` | `hsl(${number}deg ${number}% ${number}%)` | `hsv(${number}deg ${number}% ${number}%)` | `hsluv(${number} ${number} ${number})` | `lab(${number}% ${number} ${number})` | `lch(${number}% ${number} ${number}deg)` | `oklab(${number}% ${number} ${number})` | `oklch(${number}% ${number} ${number}deg)` | `jab(${number}% ${number} ${number})` | `jch(${number}% ${number} ${number}deg)`, string>>;
88
+ support: z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodString, `#${string}` | `rgb(${number} ${number} ${number})` | `hsl(${number}deg ${number}% ${number}%)` | `hsv(${number}deg ${number}% ${number}%)` | `hsluv(${number} ${number} ${number})` | `lab(${number}% ${number} ${number})` | `lch(${number}% ${number} ${number}deg)` | `oklab(${number}% ${number} ${number})` | `oklch(${number}% ${number} ${number}deg)` | `jab(${number}% ${number} ${number})` | `jch(${number}% ${number} ${number}deg)`, string>>;
89
+ neutral: z.ZodEffects<z.ZodString, `#${string}` | `rgb(${number} ${number} ${number})` | `hsl(${number}deg ${number}% ${number}%)` | `hsv(${number}deg ${number}% ${number}%)` | `hsluv(${number} ${number} ${number})` | `lab(${number}% ${number} ${number})` | `lch(${number}% ${number} ${number}deg)` | `oklab(${number}% ${number} ${number})` | `oklch(${number}% ${number} ${number}deg)` | `jab(${number}% ${number} ${number})` | `jch(${number}% ${number} ${number}deg)`, string>;
90
+ }, "strip", z.ZodTypeAny, {
91
+ main: Record<string, `#${string}` | `rgb(${number} ${number} ${number})` | `hsl(${number}deg ${number}% ${number}%)` | `hsv(${number}deg ${number}% ${number}%)` | `hsluv(${number} ${number} ${number})` | `lab(${number}% ${number} ${number})` | `lch(${number}% ${number} ${number}deg)` | `oklab(${number}% ${number} ${number})` | `oklch(${number}% ${number} ${number}deg)` | `jab(${number}% ${number} ${number})` | `jch(${number}% ${number} ${number}deg)`>;
92
+ neutral: `#${string}` | `rgb(${number} ${number} ${number})` | `hsl(${number}deg ${number}% ${number}%)` | `hsv(${number}deg ${number}% ${number}%)` | `hsluv(${number} ${number} ${number})` | `lab(${number}% ${number} ${number})` | `lch(${number}% ${number} ${number}deg)` | `oklab(${number}% ${number} ${number})` | `oklch(${number}% ${number} ${number}deg)` | `jab(${number}% ${number} ${number})` | `jch(${number}% ${number} ${number}deg)`;
93
+ support: Record<string, `#${string}` | `rgb(${number} ${number} ${number})` | `hsl(${number}deg ${number}% ${number}%)` | `hsv(${number}deg ${number}% ${number}%)` | `hsluv(${number} ${number} ${number})` | `lab(${number}% ${number} ${number})` | `lch(${number}% ${number} ${number}deg)` | `oklab(${number}% ${number} ${number})` | `oklch(${number}% ${number} ${number}deg)` | `jab(${number}% ${number} ${number})` | `jch(${number}% ${number} ${number}deg)`>;
94
+ }, {
95
+ main: Record<string, string>;
96
+ neutral: string;
97
+ support: Record<string, string>;
98
+ }>;
99
+ typography: z.ZodObject<{
100
+ fontFamily: z.ZodString;
101
+ }, "strip", z.ZodTypeAny, {
102
+ fontFamily: string;
103
+ }, {
104
+ fontFamily: string;
105
+ }>;
106
+ borderRadius: z.ZodNumber;
107
+ }, "strip", z.ZodTypeAny, {
108
+ colors: {
109
+ main: Record<string, `#${string}` | `rgb(${number} ${number} ${number})` | `hsl(${number}deg ${number}% ${number}%)` | `hsv(${number}deg ${number}% ${number}%)` | `hsluv(${number} ${number} ${number})` | `lab(${number}% ${number} ${number})` | `lch(${number}% ${number} ${number}deg)` | `oklab(${number}% ${number} ${number})` | `oklch(${number}% ${number} ${number}deg)` | `jab(${number}% ${number} ${number})` | `jch(${number}% ${number} ${number}deg)`>;
110
+ neutral: `#${string}` | `rgb(${number} ${number} ${number})` | `hsl(${number}deg ${number}% ${number}%)` | `hsv(${number}deg ${number}% ${number}%)` | `hsluv(${number} ${number} ${number})` | `lab(${number}% ${number} ${number})` | `lch(${number}% ${number} ${number}deg)` | `oklab(${number}% ${number} ${number})` | `oklch(${number}% ${number} ${number}deg)` | `jab(${number}% ${number} ${number})` | `jch(${number}% ${number} ${number}deg)`;
111
+ support: Record<string, `#${string}` | `rgb(${number} ${number} ${number})` | `hsl(${number}deg ${number}% ${number}%)` | `hsv(${number}deg ${number}% ${number}%)` | `hsluv(${number} ${number} ${number})` | `lab(${number}% ${number} ${number})` | `lch(${number}% ${number} ${number}deg)` | `oklab(${number}% ${number} ${number})` | `oklch(${number}% ${number} ${number}deg)` | `jab(${number}% ${number} ${number})` | `jch(${number}% ${number} ${number}deg)`>;
112
+ };
113
+ typography: {
114
+ fontFamily: string;
115
+ };
116
+ borderRadius: number;
117
+ }, {
118
+ colors: {
119
+ main: Record<string, string>;
120
+ neutral: string;
121
+ support: Record<string, string>;
122
+ };
123
+ typography: {
124
+ fontFamily: string;
125
+ };
126
+ borderRadius: number;
127
+ }>>;
128
+ }, "strip", z.ZodTypeAny, {
129
+ themes: Record<string, {
130
+ colors: {
131
+ main: Record<string, `#${string}` | `rgb(${number} ${number} ${number})` | `hsl(${number}deg ${number}% ${number}%)` | `hsv(${number}deg ${number}% ${number}%)` | `hsluv(${number} ${number} ${number})` | `lab(${number}% ${number} ${number})` | `lch(${number}% ${number} ${number}deg)` | `oklab(${number}% ${number} ${number})` | `oklch(${number}% ${number} ${number}deg)` | `jab(${number}% ${number} ${number})` | `jch(${number}% ${number} ${number}deg)`>;
132
+ neutral: `#${string}` | `rgb(${number} ${number} ${number})` | `hsl(${number}deg ${number}% ${number}%)` | `hsv(${number}deg ${number}% ${number}%)` | `hsluv(${number} ${number} ${number})` | `lab(${number}% ${number} ${number})` | `lch(${number}% ${number} ${number}deg)` | `oklab(${number}% ${number} ${number})` | `oklch(${number}% ${number} ${number}deg)` | `jab(${number}% ${number} ${number})` | `jch(${number}% ${number} ${number}deg)`;
133
+ support: Record<string, `#${string}` | `rgb(${number} ${number} ${number})` | `hsl(${number}deg ${number}% ${number}%)` | `hsv(${number}deg ${number}% ${number}%)` | `hsluv(${number} ${number} ${number})` | `lab(${number}% ${number} ${number})` | `lch(${number}% ${number} ${number}deg)` | `oklab(${number}% ${number} ${number})` | `oklch(${number}% ${number} ${number}deg)` | `jab(${number}% ${number} ${number})` | `jch(${number}% ${number} ${number}deg)`>;
134
+ };
135
+ typography: {
136
+ fontFamily: string;
137
+ };
138
+ borderRadius: number;
139
+ }>;
140
+ outDir: string;
141
+ }, {
142
+ themes: Record<string, {
143
+ colors: {
144
+ main: Record<string, string>;
145
+ neutral: string;
146
+ support: Record<string, string>;
147
+ };
148
+ typography: {
149
+ fontFamily: string;
150
+ };
151
+ borderRadius: number;
152
+ }>;
153
+ outDir: string;
154
+ }>;
155
+ export type CombinedConfigSchema = z.infer<typeof combinedConfigSchema>;
156
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../bin/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,sBAQ5D;AAUD,eAAO,MAAM,UAAU,QAA2C,CAAC;AA6BnE;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM3B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA8B,CAAC;AAChE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -1,16 +1,25 @@
1
1
  #!/usr/bin/env node
2
+ import fs from "node:fs/promises";
3
+ import path from "node:path";
2
4
  import { Argument, createCommand, program } from "@commander-js/extra-typings";
3
5
  import chalk from "chalk";
6
+ import * as R from "ramda";
7
+ import { fromError } from "zod-validation-error";
4
8
  import { convertToHex } from "../src/colors/index.js";
5
9
  import migrations from "../src/migrations/index.js";
6
10
  import { buildTokens } from "../src/tokens/build.js";
7
- import { colorCliOptions, createTokens } from "../src/tokens/create.js";
11
+ import { cliOptions, createTokens } from "../src/tokens/create.js";
8
12
  import { writeTokens } from "../src/tokens/write.js";
13
+ import { combinedConfigSchema, configFileSchema, mapPathToOptionName } from "./config.js";
14
+ import { getDefaultOrExplicitOption, getExplicitOptionOnly } from "./options.js";
9
15
  program.name("designsystemet").description("CLI for working with Designsystemet").showHelpAfterError();
10
16
  function makeTokenCommands() {
11
17
  const tokenCmd = createCommand("tokens");
12
18
  const DEFAULT_TOKENS_DIR = "./design-tokens";
13
19
  const DEFAULT_BUILD_DIR = "./design-tokens-build";
20
+ const DEFAULT_FONT = "Inter";
21
+ const DEFAULT_THEME_NAME = "theme";
22
+ const DEFAULT_CONFIG_FILE = "designsystemet.config.json";
14
23
  tokenCmd.command("build").description("Build Designsystemet tokens").option("-t, --tokens <string>", `Path to ${chalk.blue("design-tokens")}`, DEFAULT_TOKENS_DIR).option("-o, --out-dir <string>", `Output directory for built ${chalk.blue("design-tokens")}`, DEFAULT_BUILD_DIR).option("--dry [boolean]", `Dry run for built ${chalk.blue("design-tokens")}`, false).option("-p, --preview", "Generate preview token.ts files", false).option("--verbose", "Enable verbose output", false).action((opts) => {
15
24
  const { preview, verbose } = opts;
16
25
  const tokens = typeof opts.tokens === "string" ? opts.tokens : DEFAULT_TOKENS_DIR;
@@ -22,29 +31,86 @@ function makeTokenCommands() {
22
31
  }
23
32
  return buildTokens({ tokens, outDir, preview, verbose, dry });
24
33
  });
25
- tokenCmd.command("create").description("Create Designsystemet tokens").requiredOption(`-m, --${colorCliOptions.main} <name:hex...>`, `Main colors`, parseColorValues).requiredOption(`-s, --${colorCliOptions.support} <name:hex...>`, `Support colors`, parseColorValues).requiredOption(`-n, --${colorCliOptions.neutral} <hex>`, `Neutral hex color`, convertToHex).option("-o, --out-dir <string>", `Output directory for created ${chalk.blue("design-tokens")}`, DEFAULT_TOKENS_DIR).option("--dry [boolean]", `Dry run for created ${chalk.blue("design-tokens")}`, false).option("-f, --font-family <string>", `Font family`, "Inter").option("-b, --border-radius <number>", `Unitless base border-radius in px`, "4").option("--theme <string>", `Theme name`, "theme").action(async (opts) => {
26
- const { theme, fontFamily, outDir } = opts;
34
+ tokenCmd.command("create").description("Create Designsystemet tokens").option(`-m, --${cliOptions.theme.colors.main} <name:hex...>`, `Main colors`, parseColorValues).option(`-s, --${cliOptions.theme.colors.support} <name:hex...>`, `Support colors`, parseColorValues).option(`-n, --${cliOptions.theme.colors.neutral} <hex>`, `Neutral hex color`, convertToHex).option(
35
+ `-o, --${cliOptions.outDir} <string>`,
36
+ `Output directory for created ${chalk.blue("design-tokens")}`,
37
+ DEFAULT_TOKENS_DIR
38
+ ).option("--dry [boolean]", `Dry run for created ${chalk.blue("design-tokens")}`, false).option(`-f, --${cliOptions.theme.typography.fontFamily} <string>`, `Font family`, DEFAULT_FONT).option(
39
+ `-b, --${cliOptions.theme.borderRadius} <number>`,
40
+ `Unitless base border-radius in px`,
41
+ (radiusAsString) => Number(radiusAsString),
42
+ 4
43
+ ).option("--theme <string>", "Theme name (ignored when using JSON config file)", DEFAULT_THEME_NAME).option(
44
+ "--json <string>",
45
+ `Path to JSON config file (default: "${DEFAULT_CONFIG_FILE}")`,
46
+ (value) => parseJsonConfig(value, { allowFileNotFound: false })
47
+ ).action(async (opts, cmd) => {
27
48
  const dry = Boolean(opts.dry);
28
- const borderRadius = Number(opts.borderRadius);
29
- console.log(`Creating tokens with options ${chalk.green(JSON.stringify(opts, null, 2))}`);
30
- const themeOptions = {
31
- name: theme,
32
- colors: {
33
- main: opts.mainColors,
34
- support: opts.supportColors,
35
- neutral: opts.neutralColor
36
- },
37
- typography: {
38
- fontFamily
39
- },
40
- borderRadius
41
- };
42
49
  if (dry) {
43
50
  console.log(`Performing dry run, no files will be written`);
44
51
  }
45
- const tokens = createTokens(themeOptions);
46
- await writeTokens({ outDir, tokens, theme: themeOptions, dry });
47
- return Promise.resolve();
52
+ const configFile = await (opts.json ? opts.json : parseJsonConfig(DEFAULT_CONFIG_FILE, { allowFileNotFound: true }));
53
+ const propsFromJson = configFile?.config;
54
+ if (propsFromJson) {
55
+ const themeColors = Object.values(propsFromJson?.themes ?? {}).map(
56
+ (x) => /* @__PURE__ */ new Set([...R.keys(x.colors.main), ...R.keys(x.colors.support)])
57
+ );
58
+ if (!R.all(R.equals(R.__, themeColors[0]), themeColors)) {
59
+ console.error(
60
+ chalk.redBright(
61
+ `In JSON config ${configFile.path}, all themes must have the same custom color names, but we found:`
62
+ )
63
+ );
64
+ const themeNames = R.keys(propsFromJson.themes ?? {});
65
+ themeColors.forEach((colors, index) => {
66
+ const colorNames = Array.from(colors);
67
+ console.log(` - ${themeNames[index]}: ${colorNames.join(", ")}`);
68
+ });
69
+ console.log();
70
+ process.exit(1);
71
+ }
72
+ }
73
+ const noUndefined = R.reject(R.isNil);
74
+ const getThemeOptions = (optionGetter) => noUndefined({
75
+ colors: noUndefined({
76
+ main: optionGetter(cmd, "mainColors"),
77
+ support: optionGetter(cmd, "supportColors"),
78
+ neutral: optionGetter(cmd, "neutralColor")
79
+ }),
80
+ typography: noUndefined({
81
+ fontFamily: optionGetter(cmd, "fontFamily")
82
+ }),
83
+ borderRadius: optionGetter(cmd, "borderRadius")
84
+ });
85
+ const unvalidatedConfig = noUndefined({
86
+ outDir: propsFromJson?.outDir ?? getDefaultOrExplicitOption(cmd, "outDir"),
87
+ themes: propsFromJson?.themes ? (
88
+ // For each theme specified in the JSON config, we override the config values
89
+ // with the explicitly set options from the CLI.
90
+ R.map((theme) => R.mergeDeepRight(theme, getThemeOptions(getExplicitOptionOnly)), propsFromJson.themes)
91
+ ) : (
92
+ // If there are no themes specified in the JSON config, we use both explicit
93
+ // and default theme options from the CLI.
94
+ {
95
+ [opts.theme]: getThemeOptions(getDefaultOrExplicitOption)
96
+ }
97
+ )
98
+ });
99
+ let config;
100
+ try {
101
+ config = combinedConfigSchema.parse(unvalidatedConfig);
102
+ } catch (err) {
103
+ console.error(chalk.redBright("Invalid config after combining JSON file and CLI options"));
104
+ const validationError = makeFriendlyError(err);
105
+ console.error(validationError.toString());
106
+ process.exit(1);
107
+ }
108
+ console.log(`Creating tokens with configuration ${chalk.green(JSON.stringify(config, null, 2))}`);
109
+ for (const [name, themeWithoutName] of Object.entries(config.themes)) {
110
+ const theme = { name, ...themeWithoutName };
111
+ const tokens = createTokens(theme);
112
+ await writeTokens({ outDir: config.outDir, tokens, theme, dry });
113
+ }
48
114
  });
49
115
  return tokenCmd;
50
116
  }
@@ -68,6 +134,44 @@ program.command("migrate").description("run a Designsystemet migration").addArgu
68
134
  }
69
135
  });
70
136
  await program.parseAsync(process.argv);
137
+ async function parseJsonConfig(jsonPath, options) {
138
+ const resolvedPath = path.resolve(process.cwd(), jsonPath);
139
+ let jsonFile;
140
+ try {
141
+ jsonFile = await fs.readFile(resolvedPath, { encoding: "utf-8" });
142
+ } catch (err) {
143
+ if (err instanceof Error) {
144
+ const nodeErr = err;
145
+ if (nodeErr.code === "ENOENT" && options.allowFileNotFound) {
146
+ return;
147
+ }
148
+ }
149
+ throw err;
150
+ }
151
+ try {
152
+ return {
153
+ path: jsonPath,
154
+ config: await configFileSchema.parseAsync(JSON.parse(jsonFile))
155
+ };
156
+ } catch (err) {
157
+ console.error(chalk.redBright(`Invalid JSON config in ${jsonPath}`));
158
+ const validationError = makeFriendlyError(err);
159
+ console.error(validationError.toString());
160
+ process.exit(1);
161
+ }
162
+ }
163
+ function makeFriendlyError(err) {
164
+ return fromError(err, {
165
+ messageBuilder: (issues) => issues.map((issue) => {
166
+ const issuePath = issue.path.join(".");
167
+ const optionName = mapPathToOptionName(issue.path);
168
+ const errorCode = `(error code: ${issue.code})`;
169
+ const optionMessage = optionName ? ` or CLI option --${optionName}` : "";
170
+ return ` - Error in JSON value ${chalk.red(issuePath)}${optionMessage}:
171
+ ${issue.message} ${chalk.dim(errorCode)}`;
172
+ }).join("\n")
173
+ });
174
+ }
71
175
  function parseColorValues(value, previous = {}) {
72
176
  const [name, hex] = value.split(":");
73
177
  previous[name] = convertToHex(hex);
@@ -0,0 +1,16 @@
1
+ import type { Command, OptionValueSource, OptionValues } from '@commander-js/extra-typings';
2
+ declare const getOptionIfMatchingSource: (...sources: OptionValueSource[]) => <Args extends unknown[], Opts extends OptionValues, K extends keyof Opts>(command: Command<Args, Opts>, option: K) => Opts[K] | undefined;
3
+ export type OptionGetter = ReturnType<typeof getOptionIfMatchingSource>;
4
+ /**
5
+ * Get an option value if it is explicitly supplied to the CLI command.
6
+ * The difference between this and using the option directly is that we return undefined
7
+ * instead of the default value if the option was not explicitly set.
8
+ */
9
+ export declare const getExplicitOptionOnly: <Args extends unknown[], Opts extends OptionValues, K extends keyof Opts>(command: Command<Args, Opts>, option: K) => Opts[K] | undefined;
10
+ /**
11
+ * This function is basically the default behaviour, unlike {@link getExplicitOptionOnly}.
12
+ * It is provided so that the program can choose its behaviour as needed.
13
+ */
14
+ export declare const getDefaultOrExplicitOption: <Args extends unknown[], Opts extends OptionValues, K extends keyof Opts>(command: Command<Args, Opts>, option: K) => Opts[K] | undefined;
15
+ export {};
16
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../bin/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE5F,QAAA,MAAM,yBAAyB,eAChB,iBAAiB,EAAE,MAC/B,IAAI,SAAS,OAAO,EAAE,EAAE,IAAI,SAAS,YAAY,EAAE,CAAC,SAAS,MAAM,IAAI,WAC7D,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,UACpB,CAAC,wBAMV,CAAC;AAEJ,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAExE;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAjB/B,IAAI,SAAS,OAAO,EAAE,EAAE,IAAI,SAAS,YAAY,EAAE,CAAC,SAAS,MAAM,IAAI,WAC7D,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,UACpB,CAAC,wBAewD,CAAC;AAEtE;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GAvBpC,IAAI,SAAS,OAAO,EAAE,EAAE,IAAI,SAAS,YAAY,EAAE,CAAC,SAAS,MAAM,IAAI,WAC7D,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,UACpB,CAAC,wBAqBwE,CAAC"}
@@ -0,0 +1,78 @@
1
+ {
2
+ "type": "object",
3
+ "properties": {
4
+ "$schema": {
5
+ "type": "string"
6
+ },
7
+ "outDir": {
8
+ "type": "string",
9
+ "description": "Path to the output directory for the created design tokens"
10
+ },
11
+ "themes": {
12
+ "type": "object",
13
+ "additionalProperties": {
14
+ "type": "object",
15
+ "properties": {
16
+ "colors": {
17
+ "type": "object",
18
+ "properties": {
19
+ "main": {
20
+ "type": "object",
21
+ "additionalProperties": {
22
+ "type": "string",
23
+ "pattern": "^#[0-9a-fA-F]{3}|#[0-9a-fA-F]{4}|#[0-9a-fA-F]{6}|#[0-9a-fA-F]{8}$",
24
+ "description": "A hex color, which is used for creating a color scale"
25
+ },
26
+ "description": "One or more color definitions"
27
+ },
28
+ "support": {
29
+ "$ref": "#/properties/themes/additionalProperties/properties/colors/properties/main"
30
+ },
31
+ "neutral": {
32
+ "$ref": "#/properties/themes/additionalProperties/properties/colors/properties/main/additionalProperties"
33
+ }
34
+ },
35
+ "required": [
36
+ "main",
37
+ "support",
38
+ "neutral"
39
+ ],
40
+ "additionalProperties": false,
41
+ "description": "Defines the colors for this theme"
42
+ },
43
+ "typography": {
44
+ "type": "object",
45
+ "properties": {
46
+ "fontFamily": {
47
+ "type": "string",
48
+ "description": "Sets the font-family for this theme"
49
+ }
50
+ },
51
+ "required": [
52
+ "fontFamily"
53
+ ],
54
+ "additionalProperties": false,
55
+ "description": "Defines the typography for a given theme"
56
+ },
57
+ "borderRadius": {
58
+ "type": "number",
59
+ "description": "Defines the border-radius for this theme"
60
+ }
61
+ },
62
+ "required": [
63
+ "colors",
64
+ "typography",
65
+ "borderRadius"
66
+ ],
67
+ "additionalProperties": false,
68
+ "description": "An object defining a theme. The property name holding the object becomes the theme name."
69
+ },
70
+ "description": "An object with one or more themes. Each property defines a theme, and the property name is used as the theme name."
71
+ }
72
+ },
73
+ "required": [
74
+ "themes"
75
+ ],
76
+ "additionalProperties": false,
77
+ "$schema": "http://json-schema.org/draft-07/schema#"
78
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=createJsonSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createJsonSchema.d.ts","sourceRoot":"","sources":["../../../src/build-scripts/createJsonSchema.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import { writeFile } from "node:fs/promises";
2
+ import { resolve } from "node:path";
3
+ import { z } from "zod";
4
+ import { zodToJsonSchema } from "zod-to-json-schema";
5
+ import { configFileSchema } from "../../bin/config.js";
6
+ const schema = z.object({
7
+ $schema: z.string().optional()
8
+ }).extend(configFileSchema.shape);
9
+ writeFile(
10
+ resolve(import.meta.dirname, "../../dist/config.schema.json"),
11
+ JSON.stringify(zodToJsonSchema(schema), void 0, 2),
12
+ {
13
+ encoding: "utf-8"
14
+ }
15
+ );
@@ -1 +1 @@
1
- {"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["../../../../src/tokens/build/configs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,IAAI,qBAAqB,EAAoB,MAAM,wBAAwB,CAAC;AAQhG,OAAO,KAAK,EAEV,kBAAkB,EAClB,2BAA2B,EAC3B,cAAc,EACd,gBAAgB,EACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,oBAAoB,EAA6B,MAAM,sCAAsC,CAAC;AAO5G,eAAO,MAAM,MAAM,OAAO,CAAC;AAC3B,eAAO,MAAM,cAAc,KAAK,CAAC;AA+BjC,MAAM,MAAM,wBAAwB,GAAG,CACrC,WAAW,EAAE,gBAAgB,EAC7B,OAAO,EAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,KACE,qBAAqB,GAAG;IAAE,MAAM,EAAE,qBAAqB,CAAC;IAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAAE,EAAE,CAAC;AAoPnH,eAAO,MAAM,OAAO;;;;;;;CAOnB,CAAC;AAEF,eAAO,MAAM,4BAA4B,cAC5B,wBAAwB,UAC3B,oBAAoB,EAAE,cAClB,cAAc,EAAE,WACnB,kBAAkB,KAC1B,2BAA2B,EA8B7B,CAAC"}
1
+ {"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["../../../../src/tokens/build/configs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,IAAI,qBAAqB,EAAoB,MAAM,wBAAwB,CAAC;AAQhG,OAAO,KAAK,EAEV,kBAAkB,EAClB,2BAA2B,EAC3B,cAAc,EACd,gBAAgB,EACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,oBAAoB,EAA6B,MAAM,sCAAsC,CAAC;AAO5G,eAAO,MAAM,MAAM,OAAO,CAAC;AAC3B,eAAO,MAAM,cAAc,KAAK,CAAC;AA8BjC,MAAM,MAAM,wBAAwB,GAAG,CACrC,WAAW,EAAE,gBAAgB,EAC7B,OAAO,EAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,KACE,qBAAqB,GAAG;IAAE,MAAM,EAAE,qBAAqB,CAAC;IAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAAE,EAAE,CAAC;AA+PnH,eAAO,MAAM,OAAO;;;;;;;CAOnB,CAAC;AAEF,eAAO,MAAM,4BAA4B,cAC5B,wBAAwB,UAC3B,oBAAoB,EAAE,cAClB,cAAc,EAAE,WACnB,kBAAkB,KAC1B,2BAA2B,EA8B7B,CAAC"}
@@ -3,10 +3,10 @@ import * as R from "ramda";
3
3
  import StyleDictionary from "style-dictionary";
4
4
  import { outputReferencesFilter } from "style-dictionary/utils";
5
5
  import { DEFAULT_COLOR, buildOptions } from "../build.js";
6
- import { isColorCategoryToken, pathStartsWithOneOf, typeEquals } from "../utils.js";
6
+ import { isColorCategoryToken, isDigit, pathStartsWithOneOf, typeEquals } from "../utils.js";
7
7
  import { formats } from "./formats/css.js";
8
8
  import { jsTokens } from "./formats/js-tokens.js";
9
- import { nameKebab, resolveMath, sizeRem, typographyName, unitless } from "./transformers.js";
9
+ import { resolveMath, sizeRem, typographyName, unitless } from "./transformers.js";
10
10
  import { getMultidimensionalThemes } from "./utils/getMultidimensionalThemes.js";
11
11
  void register(StyleDictionary, { withSDBuiltins: false });
12
12
  const usesDtcg = true;
@@ -14,7 +14,6 @@ const prefix = "ds";
14
14
  const basePxFontSize = 16;
15
15
  const fileHeader = () => [`These files are generated from design tokens defind using Token Studio`];
16
16
  StyleDictionary.registerTransform(sizeRem);
17
- StyleDictionary.registerTransform(nameKebab);
18
17
  StyleDictionary.registerTransform(typographyName);
19
18
  StyleDictionary.registerTransform(resolveMath);
20
19
  StyleDictionary.registerTransform(unitless);
@@ -23,7 +22,7 @@ for (const format of Object.values(formats)) {
23
22
  StyleDictionary.registerFormat(format);
24
23
  }
25
24
  const dsTransformers = [
26
- nameKebab.name,
25
+ "name/kebab",
27
26
  resolveMath.name,
28
27
  "ts/size/px",
29
28
  sizeRem.name,
@@ -160,8 +159,9 @@ const semanticVariables = ({ theme }, { outPath }) => {
160
159
  options: {
161
160
  fileHeader,
162
161
  outputReferences: (token, options) => {
163
- const include = pathStartsWithOneOf(["border-radius", "size"], token);
164
- return include && outputReferencesFilter(token, options);
162
+ const include = pathStartsWithOneOf(["border-radius"], token);
163
+ const isWantedSize = pathStartsWithOneOf(["size", "_size"], token) && isDigit(token.path[1]);
164
+ return (include || isWantedSize) && outputReferencesFilter(token, options);
165
165
  }
166
166
  }
167
167
  }
@@ -187,16 +187,16 @@ const typescriptTokens = ({ "color-scheme": colorScheme, theme }, { outPath }) =
187
187
  return false;
188
188
  const isSemanticColor = R.includes("semantic", token.filePath) && typeEquals(["color"], token);
189
189
  const wantedTypes = typeEquals(["shadow", "dimension", "typography", "opacity"], token);
190
- const isNotPrivate = R.not(R.any((path) => path.startsWith("_"))(token.path));
191
- return (isSemanticColor || wantedTypes) && isNotPrivate;
190
+ return isSemanticColor || wantedTypes;
192
191
  }
193
192
  }
194
193
  ],
195
194
  options: {
196
195
  fileHeader,
197
196
  outputReferences: (token, options) => {
198
- const include = pathStartsWithOneOf(["border-radius", "size"], token);
199
- return include && outputReferencesFilter(token, options);
197
+ const include = pathStartsWithOneOf(["border-radius"], token);
198
+ const isWantedSize = pathStartsWithOneOf(["size", "_size"], token) && isDigit(token.path[1]);
199
+ return (include || isWantedSize) && outputReferencesFilter(token, options);
200
200
  }
201
201
  }
202
202
  }
@@ -222,7 +222,7 @@ const typographyVariables = ({ theme, typography }, { outPath }) => {
222
222
  buildPath: `${outPath}/${theme}/`,
223
223
  basePxFontSize,
224
224
  transforms: [
225
- nameKebab.name,
225
+ "name/kebab",
226
226
  "ts/size/px",
227
227
  sizeRem.name,
228
228
  "ts/size/lineheight",
@@ -239,7 +239,18 @@ const typographyVariables = ({ theme, typography }, { outPath }) => {
239
239
  token
240
240
  );
241
241
  return included && !pathStartsWithOneOf(
242
- ["spacing", "sizing", "size", "border-width", "border-radius", "theme", "theme2", "theme3", "theme4"],
242
+ [
243
+ "spacing",
244
+ "sizing",
245
+ "size",
246
+ "_size",
247
+ "border-width",
248
+ "border-radius",
249
+ "theme",
250
+ "theme2",
251
+ "theme3",
252
+ "theme4"
253
+ ],
243
254
  token
244
255
  );
245
256
  }
@@ -19,17 +19,19 @@ import type { Format } from 'style-dictionary/types';
19
19
  * ]
20
20
  * ```
21
21
  *
22
- * @param shouldInline - predicate to determine if token should be inlined
22
+ * @param shouldSquash - predicate to determine if token should be inlined
23
23
  * @param tokens - array of tokens to transform
24
24
  * @returns copy of `tokens` without those that matched the predicate,
25
25
  * where references to the matching tokens have been inlined
26
26
  */
27
- export declare function inlineTokens(shouldInline: (t: TransformedToken) => boolean, tokens: TransformedToken[]): import("style-dictionary/types").TransformedToken[];
27
+ export declare function squashTokens(shouldSquash: (t: TransformedToken) => boolean, tokens: TransformedToken[]): import("style-dictionary/types").TransformedToken[];
28
28
  declare module 'style-dictionary/types' {
29
29
  interface LocalOptions {
30
30
  replaceCategoryWith?: string;
31
31
  }
32
32
  }
33
+ export declare const isNumericSizeToken: (t: TransformedToken) => boolean;
34
+ export declare const isSquashTokens: (t: TransformedToken) => boolean;
33
35
  /**
34
36
  * Overrides the default sizing formula with a custom one that supports [round()](https://developer.mozilla.org/en-US/docs/Web/CSS/round) if supported.
35
37
  *
@@ -1 +1 @@
1
- {"version":3,"file":"css.d.ts","sourceRoot":"","sources":["../../../../../src/tokens/build/formats/css.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAYrD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,uDAYtG;AAsDD,OAAO,QAAQ,wBAAwB,CAAC;IACtC,UAAiB,YAAY;QAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B;CACF;AAuCD;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,WAAY,CAAC,CAAC,EAAE,gBAAgB,KAAK,MAAM,SAAS,gBAAgB;;;;CAYrG,CAAC;AAyFF,eAAO,MAAM,OAAO;;;;;CAKc,CAAC"}
1
+ {"version":3,"file":"css.d.ts","sourceRoot":"","sources":["../../../../../src/tokens/build/formats/css.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAarD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,uDAetG;AAsDD,OAAO,QAAQ,wBAAwB,CAAC;IACtC,UAAiB,YAAY;QAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B;CACF;AAmCD,eAAO,MAAM,kBAAkB,MAAO,gBAAgB,YAA4D,CAAC;AAEnH,eAAO,MAAM,cAAc,MAHY,gBAAgB,YAGkC,CAAC;AAE1F;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,WAAY,CAAC,CAAC,EAAE,gBAAgB,KAAK,MAAM,SAAS,gBAAgB;;;;CAYrG,CAAC;AA4FF,eAAO,MAAM,OAAO;;;;;CAKc,CAAC"}