@kaizen/design-tokens 3.1.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 (129) hide show
  1. package/CHANGELOG.md +773 -0
  2. package/LICENSE +21 -0
  3. package/README.md +66 -0
  4. package/dist/index.d.ts +8 -0
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +23 -0
  7. package/dist/react/ThemeProvider.d.ts +13 -0
  8. package/dist/react/ThemeProvider.d.ts.map +1 -0
  9. package/dist/react/ThemeProvider.js +42 -0
  10. package/dist/react/index.d.ts +2 -0
  11. package/dist/react/index.d.ts.map +1 -0
  12. package/dist/react/index.js +13 -0
  13. package/dist/src/ThemeManager.d.ts +23 -0
  14. package/dist/src/ThemeManager.d.ts.map +1 -0
  15. package/dist/src/ThemeManager.js +70 -0
  16. package/dist/src/lib/addExtraThemeEntries.d.ts +25 -0
  17. package/dist/src/lib/addExtraThemeEntries.d.ts.map +1 -0
  18. package/dist/src/lib/addExtraThemeEntries.js +56 -0
  19. package/dist/src/lib/cssVariables.d.ts +23 -0
  20. package/dist/src/lib/cssVariables.d.ts.map +1 -0
  21. package/dist/src/lib/cssVariables.js +33 -0
  22. package/dist/src/lib/makeCssVariableDefinitionsMap.d.ts +30 -0
  23. package/dist/src/lib/makeCssVariableDefinitionsMap.d.ts.map +1 -0
  24. package/dist/src/lib/makeCssVariableDefinitionsMap.js +57 -0
  25. package/dist/src/lib/makeCssVariableTheme.d.ts +35 -0
  26. package/dist/src/lib/makeCssVariableTheme.d.ts.map +1 -0
  27. package/dist/src/lib/makeCssVariableTheme.js +54 -0
  28. package/dist/src/lib/mapLeafsOfObject.d.ts +23 -0
  29. package/dist/src/lib/mapLeafsOfObject.d.ts.map +1 -0
  30. package/dist/src/lib/mapLeafsOfObject.js +59 -0
  31. package/dist/src/themes/heart.d.ts +3 -0
  32. package/dist/src/themes/heart.d.ts.map +1 -0
  33. package/dist/src/themes/heart.js +286 -0
  34. package/dist/src/themes/index.d.ts +4 -0
  35. package/dist/src/themes/index.d.ts.map +1 -0
  36. package/dist/src/themes/index.js +9 -0
  37. package/dist/src/themes/zen.d.ts +3 -0
  38. package/dist/src/themes/zen.d.ts.map +1 -0
  39. package/dist/src/themes/zen.js +293 -0
  40. package/dist/src/types.d.ts +205 -0
  41. package/dist/src/types.d.ts.map +1 -0
  42. package/dist/src/types.js +2 -0
  43. package/elm/Kaizen/Theme.elm +29 -0
  44. package/index.ts +9 -0
  45. package/less/animation.less +49 -0
  46. package/less/border.less +47 -0
  47. package/less/color.less +210 -0
  48. package/less/layout.less +8 -0
  49. package/less/shadow.less +12 -0
  50. package/less/spacing.less +20 -0
  51. package/less/typography.less +526 -0
  52. package/package.json +63 -0
  53. package/react/ThemeProvider.d.ts +12 -0
  54. package/react/ThemeProvider.js +43 -0
  55. package/react/ThemeProvider.js.map +1 -0
  56. package/react/ThemeProvider.tsx +39 -0
  57. package/react/index.d.ts +1 -0
  58. package/react/index.js +14 -0
  59. package/react/index.js.map +1 -0
  60. package/react/index.tsx +1 -0
  61. package/sass/animation.scss +49 -0
  62. package/sass/border.scss +47 -0
  63. package/sass/color.scss +210 -0
  64. package/sass/layout.scss +8 -0
  65. package/sass/shadow.scss +12 -0
  66. package/sass/spacing.scss +20 -0
  67. package/sass/typography.scss +526 -0
  68. package/src/ThemeManager.d.ts +22 -0
  69. package/src/ThemeManager.js +71 -0
  70. package/src/ThemeManager.js.map +1 -0
  71. package/src/ThemeManager.ts +70 -0
  72. package/src/lib/__tests__/themeForTesting.d.ts +38 -0
  73. package/src/lib/__tests__/themeForTesting.js +21 -0
  74. package/src/lib/__tests__/themeForTesting.js.map +1 -0
  75. package/src/lib/__tests__/themeForTesting.ts +17 -0
  76. package/src/lib/addExtraThemeEntries.d.ts +24 -0
  77. package/src/lib/addExtraThemeEntries.js +57 -0
  78. package/src/lib/addExtraThemeEntries.js.map +1 -0
  79. package/src/lib/addExtraThemeEntries.ts +56 -0
  80. package/src/lib/cssVariables.d.ts +22 -0
  81. package/src/lib/cssVariables.js +34 -0
  82. package/src/lib/cssVariables.js.map +1 -0
  83. package/src/lib/cssVariables.ts +27 -0
  84. package/src/lib/makeCssVariableDefinitionsMap.d.ts +29 -0
  85. package/src/lib/makeCssVariableDefinitionsMap.js +58 -0
  86. package/src/lib/makeCssVariableDefinitionsMap.js.map +1 -0
  87. package/src/lib/makeCssVariableDefinitionsMap.ts +55 -0
  88. package/src/lib/makeCssVariableTheme.d.ts +34 -0
  89. package/src/lib/makeCssVariableTheme.js +55 -0
  90. package/src/lib/makeCssVariableTheme.js.map +1 -0
  91. package/src/lib/makeCssVariableTheme.ts +63 -0
  92. package/src/lib/mapLeafsOfObject.d.ts +22 -0
  93. package/src/lib/mapLeafsOfObject.js +60 -0
  94. package/src/lib/mapLeafsOfObject.js.map +1 -0
  95. package/src/lib/mapLeafsOfObject.ts +50 -0
  96. package/src/lib/patterns.d.ts +2 -0
  97. package/src/lib/patterns.js +6 -0
  98. package/src/lib/patterns.js.map +1 -0
  99. package/src/lib/patterns.ts +2 -0
  100. package/src/themes/heart.d.ts +2 -0
  101. package/src/themes/heart.js +287 -0
  102. package/src/themes/heart.js.map +1 -0
  103. package/src/themes/heart.ts +285 -0
  104. package/src/themes/index.d.ts +3 -0
  105. package/src/themes/index.js +17 -0
  106. package/src/themes/index.js.map +1 -0
  107. package/src/themes/index.ts +4 -0
  108. package/src/themes/zen.d.ts +2 -0
  109. package/src/themes/zen.js +294 -0
  110. package/src/themes/zen.js.map +1 -0
  111. package/src/themes/zen.ts +292 -0
  112. package/src/types.d.ts +204 -0
  113. package/src/types.js +3 -0
  114. package/src/types.js.map +1 -0
  115. package/src/types.ts +225 -0
  116. package/tokens/animation.json +34 -0
  117. package/tokens/animation.json.d.ts +12 -0
  118. package/tokens/border.json +44 -0
  119. package/tokens/border.json.d.ts +12 -0
  120. package/tokens/color.json +228 -0
  121. package/tokens/color.json.d.ts +12 -0
  122. package/tokens/layout.json +9 -0
  123. package/tokens/layout.json.d.ts +12 -0
  124. package/tokens/shadow.json +12 -0
  125. package/tokens/shadow.json.d.ts +12 -0
  126. package/tokens/spacing.json +22 -0
  127. package/tokens/spacing.json.d.ts +12 -0
  128. package/tokens/typography.json +236 -0
  129. package/tokens/typography.json.d.ts +12 -0
@@ -0,0 +1,292 @@
1
+ import { Theme } from "../types"
2
+
3
+ export const zenTheme: Theme = {
4
+ themeKey: "zen",
5
+ animation: {
6
+ easingFunction: {
7
+ easeInOut: "cubic-bezier(0.455, 0.03, 0.515, 0.955)",
8
+ easeIn: "cubic-bezier(0.55, 0.085, 0.68, 0.53)",
9
+ easeOut: "cubic-bezier(0.25, 0.46, 0.45, 0.94)",
10
+ linear: "linear",
11
+ bounceIn: "cubic-bezier(0.485, 0.155, 0.24, 1.245)",
12
+ bounceOut: "cubic-bezier(0.485, 0.155, 0.515, 0.845)",
13
+ bounceInOut: "cubic-bezier(0.76, -0.245, 0.24, 1.245)",
14
+ },
15
+ duration: {
16
+ instant: "0ms",
17
+ immediate: "100ms",
18
+ rapid: "200ms",
19
+ fast: "300ms",
20
+ slow: "400ms",
21
+ deliberate: "700ms",
22
+ },
23
+ },
24
+ border: {
25
+ solid: {
26
+ borderWidth: "2px",
27
+ borderRadius: "7px",
28
+ borderStyle: "solid",
29
+ borderColor: "#e1e2ea",
30
+ },
31
+ dashed: {
32
+ borderWidth: "2px",
33
+ borderRadius: "7px",
34
+ borderStyle: "dashed",
35
+ },
36
+ borderless: {
37
+ borderWidth: "2px",
38
+ borderRadius: "7px",
39
+ borderStyle: "solid",
40
+ borderColor: "transparent",
41
+ },
42
+ focusRing: {
43
+ borderWidth: "2px",
44
+ borderRadius: "10px",
45
+ borderStyle: "solid",
46
+ },
47
+ },
48
+ color: {
49
+ purple: {
50
+ 100: "#f0f1f4",
51
+ 200: "#e1e2ea",
52
+ 300: "#c4c5d4",
53
+ 400: "#a7a9c1",
54
+ 500: "#898ba9",
55
+ 600: "#6b6e94",
56
+ 700: "#4b4d68",
57
+ 800: "#35374a",
58
+ },
59
+ blue: {
60
+ 100: "#e6f0f7",
61
+ 200: "#cce1f0",
62
+ 300: "#99c3e1",
63
+ 400: "#4d95ca",
64
+ 500: "#0168b3",
65
+ 600: "#00518c",
66
+ // Duplicate from Heart because it's new
67
+ 700: "#003157",
68
+ },
69
+ green: {
70
+ 100: "#e9f6f3",
71
+ 200: "#bce3dc",
72
+ 300: "#90d1c5",
73
+ 400: "#64bfae",
74
+ 500: "#21a38b",
75
+ 600: "#177261",
76
+ // Duplicate from Heart because it's new
77
+ 700: "#22594a",
78
+ },
79
+ yellow: {
80
+ 100: "#fffae8",
81
+ 200: "#fff5d2",
82
+ 300: "#ffeba5",
83
+ 400: "#ffe278",
84
+ 500: "#ffce1e",
85
+ // Duplicate from Heart because it's new
86
+ 600: "#c68600",
87
+ // Duplicate from Heart because it's new
88
+ 700: "#876400",
89
+ },
90
+ red: {
91
+ 100: "#fcedef",
92
+ 200: "#fccfd4",
93
+ 300: "#fcaeb6",
94
+ 400: "#fc7c89",
95
+ 500: "#e22b3e",
96
+ 600: "#b02130",
97
+ // Duplicate from Heart because it's new
98
+ 700: "#6c1e20",
99
+ },
100
+ orange: {
101
+ 100: "#fff1ee",
102
+ 200: "#fdd6cd",
103
+ 300: "#fdbaab",
104
+ 400: "#fc9e8a",
105
+ 500: "#fa7558",
106
+ 600: "#b85d4a",
107
+ // Duplicate from Heart because it's new
108
+ 700: "#903c00",
109
+ },
110
+ // Should only exist in Heart but we need a consistent type.
111
+ gray: {
112
+ 100: "#f9f9f9",
113
+ 200: "#f4f4f5",
114
+ 300: "#eaeaec",
115
+ 400: "#cdcdd0",
116
+ 500: "#8c8c97",
117
+ 600: "#524e56",
118
+ },
119
+ white: "#ffffff",
120
+ },
121
+ dataViz: {
122
+ favorable: "#6b6e94",
123
+ unfavorable: "#fccfd4",
124
+ },
125
+ layout: {
126
+ contentMaxWidth: "1392px",
127
+ contentSideMargin: "72px",
128
+ mobileActionsDrawerHeight: "60px",
129
+ navigationBarHeight: "72px",
130
+ breakpoints: {
131
+ medium: "768px",
132
+ large: "1080px",
133
+ },
134
+ },
135
+ shadow: {
136
+ small: {
137
+ boxShadow: "0 0 4px rgba(0, 0, 0, 0.09)",
138
+ },
139
+ large: {
140
+ boxShadow: "0 0 12px rgba(0, 0, 0, 0.19)",
141
+ },
142
+ },
143
+ spacing: {
144
+ xs: "0.375rem",
145
+ sm: "0.75rem",
146
+ md: "1.5rem",
147
+ lg: "2.25rem",
148
+ xl: "3rem",
149
+ xxl: "3.75rem",
150
+ xxxl: "4.5rem",
151
+ xxxxl: "5.25rem",
152
+ xxxxxl: "6rem",
153
+ },
154
+ typography: {
155
+ dataLarge: {
156
+ fontFamily: '"Greycliff CF", "Noto Sans", Helvetica, Arial, sans-serif',
157
+ fontWeight: 700,
158
+ fontSize: "5.25rem",
159
+ lineHeight: "5.25rem",
160
+ letterSpacing: "normal",
161
+ },
162
+ dataLargeUnits: {
163
+ fontFamily: '"Greycliff CF", "Noto Sans", Helvetica, Arial, sans-serif',
164
+ fontWeight: 700,
165
+ fontSize: "2.625rem",
166
+ lineHeight: "5.25rem",
167
+ letterSpacing: "normal",
168
+ },
169
+ dataMedium: {
170
+ fontFamily: '"Greycliff CF", "Noto Sans", Helvetica, Arial, sans-serif',
171
+ fontWeight: 700,
172
+ fontSize: "3rem",
173
+ lineHeight: "5rem",
174
+ letterSpacing: "normal",
175
+ },
176
+ dataMediumUnits: {
177
+ fontFamily: '"Greycliff CF", "Noto Sans", Helvetica, Arial, sans-serif',
178
+ fontWeight: 700,
179
+ fontSize: "1.5rem",
180
+ lineHeight: "5rem",
181
+ letterSpacing: "normal",
182
+ },
183
+ dataSmall: {
184
+ fontFamily: '"Greycliff CF", "Noto Sans", Helvetica, Arial, sans-serif',
185
+ fontWeight: 700,
186
+ fontSize: "1.5rem",
187
+ lineHeight: "1.5rem",
188
+ letterSpacing: "normal",
189
+ },
190
+ dataSmallUnits: {
191
+ fontFamily: '"Greycliff CF", "Noto Sans", Helvetica, Arial, sans-serif',
192
+ fontWeight: 700,
193
+ fontSize: "1.125rem",
194
+ lineHeight: "1.5rem",
195
+ letterSpacing: "normal",
196
+ },
197
+ display0: {
198
+ fontFamily: '"Greycliff CF", "Noto Sans", Helvetica, Arial, sans-serif',
199
+ fontWeight: 700,
200
+ fontSize: "4.5rem",
201
+ lineHeight: "4.5rem",
202
+ letterSpacing: "-0.03em",
203
+ },
204
+ heading1: {
205
+ fontFamily: '"Greycliff CF", "Noto Sans", Helvetica, Arial, sans-serif',
206
+ fontWeight: 700,
207
+ fontSize: "2.25rem",
208
+ lineHeight: "2.25rem",
209
+ letterSpacing: "-0.03em",
210
+ },
211
+ heading2: {
212
+ fontFamily: '"Greycliff CF", "Noto Sans", Helvetica, Arial, sans-serif',
213
+ fontWeight: 700,
214
+ fontSize: "1.875rem",
215
+ lineHeight: "2.25rem",
216
+ letterSpacing: "-0.03em",
217
+ },
218
+ heading3: {
219
+ fontFamily: '"Greycliff CF", "Noto Sans", Helvetica, Arial, sans-serif',
220
+ fontWeight: 700,
221
+ fontSize: "1.375rem",
222
+ lineHeight: "1.5rem",
223
+ letterSpacing: "-0.03em",
224
+ },
225
+ heading4: {
226
+ fontFamily: '"Inter", "Noto Sans", Helvetica, Arial, sans-serif',
227
+ fontWeight: 600,
228
+ fontSize: "1.125rem",
229
+ lineHeight: "1.5rem",
230
+ letterSpacing: "normal",
231
+ },
232
+ heading5: {
233
+ fontFamily: '"Inter", "Noto Sans", Helvetica, Arial, sans-serif',
234
+ fontWeight: 600,
235
+ fontSize: "1rem",
236
+ lineHeight: "1.5rem",
237
+ letterSpacing: "normal",
238
+ },
239
+ heading6: {
240
+ fontFamily: '"Inter", "Noto Sans", Helvetica, Arial, sans-serif',
241
+ fontWeight: 700,
242
+ fontSize: "0.875rem",
243
+ lineHeight: "1.5rem",
244
+ letterSpacing: "normal",
245
+ },
246
+ paragraphIntroLede: {
247
+ fontFamily: '"Inter", "Noto Sans", Helvetica, Arial, sans-serif',
248
+ fontWeight: 400,
249
+ fontSize: "1.25rem",
250
+ lineHeight: "1.875rem",
251
+ letterSpacing: "-0.5px",
252
+ },
253
+ paragraphBody: {
254
+ fontFamily: '"Inter", "Noto Sans", Helvetica, Arial, sans-serif',
255
+ fontWeight: 400,
256
+ fontSize: "1rem",
257
+ lineHeight: "1.5rem",
258
+ letterSpacing: "normal",
259
+ },
260
+ paragraphSmall: {
261
+ fontFamily: '"Inter", "Noto Sans", Helvetica, Arial, sans-serif',
262
+ fontWeight: 400,
263
+ fontSize: "0.875rem",
264
+ lineHeight: "1.125rem",
265
+ letterSpacing: "normal",
266
+ },
267
+ paragraphExtraSmall: {
268
+ fontFamily: '"Inter", "Noto Sans", Helvetica, Arial, sans-serif',
269
+ fontWeight: 400,
270
+ fontSize: "0.75rem",
271
+ lineHeight: "1.125rem",
272
+ letterSpacing: "normal",
273
+ },
274
+ paragraphBold: {
275
+ fontWeight: 600,
276
+ },
277
+ buttonPrimary: {
278
+ fontFamily: '"Inter", "Noto Sans", Helvetica, Arial, sans-serif',
279
+ fontWeight: 700,
280
+ fontSize: "1.125rem",
281
+ lineHeight: "1.5rem",
282
+ letterSpacing: "normal",
283
+ },
284
+ buttonSecondary: {
285
+ fontFamily: '"Inter", "Noto Sans", Helvetica, Arial, sans-serif',
286
+ fontWeight: 500,
287
+ fontSize: "1rem",
288
+ lineHeight: "1.5rem",
289
+ letterSpacing: "normal",
290
+ },
291
+ },
292
+ }
package/src/types.d.ts ADDED
@@ -0,0 +1,204 @@
1
+ import type { CSSProperties as ReactCSSProperties } from "react";
2
+ /**
3
+ * Use a custom type for CSS properties becauase we should eventually write a more strongly typed version using template literal types.
4
+ * This could definitely be contributed back to the community too. An example starting point here https://github.com/ghoullier/awesome-template-literal-types#css-parser
5
+ * For example:
6
+ * ```ts
7
+ * type Font = {
8
+ * fontSize: `${number}rem`,
9
+ *
10
+ * }
11
+ * type HexDigit = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F ;
12
+ * type Color = `rgba(${number}, ${number}, ${number}, ${number}) | #${HexDigit}${HexDigit}${HexDigit}` // You get the point
13
+ *
14
+ * ```
15
+ * */
16
+ declare type KaizenCSSProperties = ReactCSSProperties;
17
+ declare type Hex = string;
18
+ export declare type TypographyFont = {
19
+ fontFamily: KaizenCSSProperties["fontFamily"];
20
+ fontWeight: KaizenCSSProperties["fontWeight"];
21
+ fontSize: KaizenCSSProperties["fontSize"];
22
+ lineHeight: KaizenCSSProperties["lineHeight"];
23
+ letterSpacing: KaizenCSSProperties["letterSpacing"];
24
+ };
25
+ export declare type ThemeKey = "zen" | "heart" | "custom";
26
+ export declare type Theme = {
27
+ themeKey: ThemeKey;
28
+ border: {
29
+ solid: {
30
+ borderWidth: KaizenCSSProperties["borderWidth"];
31
+ borderRadius: KaizenCSSProperties["borderRadius"];
32
+ borderStyle: KaizenCSSProperties["borderStyle"];
33
+ borderColor: KaizenCSSProperties["borderColor"];
34
+ };
35
+ dashed: {
36
+ borderWidth: KaizenCSSProperties["borderWidth"];
37
+ borderRadius: KaizenCSSProperties["borderRadius"];
38
+ borderStyle: KaizenCSSProperties["borderStyle"];
39
+ };
40
+ borderless: {
41
+ borderWidth: KaizenCSSProperties["borderWidth"];
42
+ borderRadius: KaizenCSSProperties["borderRadius"];
43
+ borderStyle: KaizenCSSProperties["borderStyle"];
44
+ borderColor: KaizenCSSProperties["borderColor"];
45
+ };
46
+ focusRing: {
47
+ borderWidth: KaizenCSSProperties["borderWidth"];
48
+ borderRadius: KaizenCSSProperties["borderRadius"];
49
+ borderStyle: KaizenCSSProperties["borderStyle"];
50
+ };
51
+ };
52
+ animation: {
53
+ easingFunction: {
54
+ easeInOut: string;
55
+ easeIn: string;
56
+ easeOut: string;
57
+ linear: string;
58
+ bounceIn: string;
59
+ bounceOut: string;
60
+ bounceInOut: string;
61
+ };
62
+ duration: {
63
+ instant: string;
64
+ immediate: string;
65
+ rapid: string;
66
+ fast: string;
67
+ slow: string;
68
+ deliberate: string;
69
+ };
70
+ };
71
+ color: {
72
+ purple: {
73
+ "100": Hex;
74
+ "200": Hex;
75
+ "300": Hex;
76
+ "400": Hex;
77
+ "500": Hex;
78
+ "600": Hex;
79
+ "700": Hex;
80
+ "800": Hex;
81
+ };
82
+ blue: {
83
+ "100": Hex;
84
+ "200": Hex;
85
+ "300": Hex;
86
+ "400": Hex;
87
+ "500": Hex;
88
+ "600": Hex;
89
+ "700": Hex;
90
+ };
91
+ green: {
92
+ "100": Hex;
93
+ "200": Hex;
94
+ "300": Hex;
95
+ "400": Hex;
96
+ "500": Hex;
97
+ "600": Hex;
98
+ "700": Hex;
99
+ };
100
+ yellow: {
101
+ "100": Hex;
102
+ "200": Hex;
103
+ "300": Hex;
104
+ "400": Hex;
105
+ "500": Hex;
106
+ "600": Hex;
107
+ "700": Hex;
108
+ };
109
+ red: {
110
+ "100": Hex;
111
+ "200": Hex;
112
+ "300": Hex;
113
+ "400": Hex;
114
+ "500": Hex;
115
+ "600": Hex;
116
+ "700": Hex;
117
+ };
118
+ orange: {
119
+ "100": Hex;
120
+ "200": Hex;
121
+ "300": Hex;
122
+ "400": Hex;
123
+ "500": Hex;
124
+ "600": Hex;
125
+ "700": Hex;
126
+ };
127
+ gray: {
128
+ "100": Hex;
129
+ "200": Hex;
130
+ "300": Hex;
131
+ "400": Hex;
132
+ "500": Hex;
133
+ "600": Hex;
134
+ };
135
+ white: Hex;
136
+ };
137
+ dataViz: {
138
+ favorable: Hex;
139
+ unfavorable: Hex;
140
+ };
141
+ layout: {
142
+ contentMaxWidth: string;
143
+ contentSideMargin: string;
144
+ mobileActionsDrawerHeight: string;
145
+ navigationBarHeight: string;
146
+ breakpoints: {
147
+ medium: string;
148
+ large: string;
149
+ };
150
+ };
151
+ shadow: {
152
+ small: {
153
+ boxShadow: string;
154
+ };
155
+ large: {
156
+ boxShadow: string;
157
+ };
158
+ };
159
+ spacing: {
160
+ xs: string;
161
+ sm: string;
162
+ md: string;
163
+ lg: string;
164
+ xl: string;
165
+ xxl: string;
166
+ xxxl: string;
167
+ xxxxl: string;
168
+ xxxxxl: string;
169
+ };
170
+ typography: {
171
+ dataLarge: TypographyFont;
172
+ dataLargeUnits: TypographyFont;
173
+ dataMedium: TypographyFont;
174
+ dataMediumUnits: TypographyFont;
175
+ dataSmall: TypographyFont;
176
+ dataSmallUnits: TypographyFont;
177
+ display0: TypographyFont;
178
+ heading1: TypographyFont;
179
+ heading2: TypographyFont;
180
+ heading3: TypographyFont;
181
+ heading4: TypographyFont;
182
+ heading5: TypographyFont;
183
+ heading6: TypographyFont;
184
+ paragraphIntroLede: TypographyFont;
185
+ paragraphBody: TypographyFont;
186
+ paragraphSmall: TypographyFont;
187
+ paragraphExtraSmall: TypographyFont;
188
+ paragraphBold: {
189
+ fontWeight: KaizenCSSProperties["fontWeight"];
190
+ };
191
+ buttonPrimary: TypographyFont;
192
+ buttonSecondary: TypographyFont;
193
+ };
194
+ };
195
+ export declare type DeepMapObjectLeafs<T, LeafType> = T extends string | number | bigint | boolean | symbol | null | undefined | ((...params: any[]) => any) ? LeafType : T extends Record<any, any> ? {
196
+ [Key in keyof T]: DeepMapObjectLeafs<T[Key], LeafType>;
197
+ } : T;
198
+ /**
199
+ * Apologies for the complex types.
200
+ * This type represents the Theme type but with every leaf value in the tree mapped strictly to a string, rather than a number or a more complex type such as a string union.
201
+ * The reason for this is to have a more accurate type for the generated hierarchy of design tokens which are represented as CSS custom properties, e.g. `var(--color-purple-800)`.
202
+ */
203
+ export declare type CSSVariableTheme = DeepMapObjectLeafs<Theme, string>;
204
+ export {};
package/src/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":""}