@yahoo/uds 1.3.0 → 1.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. package/cli/bin/uds-darwin-arm64-baseline +0 -0
  2. package/cli/bin/uds-linux-x64-baseline +0 -0
  3. package/cli/utils/client_secrets.json +15 -0
  4. package/dist/chunk-2JIYRTEY.js +3 -0
  5. package/dist/chunk-3VTRSTDI.cjs +2 -0
  6. package/dist/chunk-4J7ZJHCN.js +2 -0
  7. package/dist/chunk-5X3JN6IH.cjs +3 -0
  8. package/dist/chunk-6K5IORZA.cjs +2 -0
  9. package/dist/chunk-AIRVDEVS.cjs +3 -0
  10. package/dist/chunk-BQTYVXIC.js +3 -0
  11. package/dist/chunk-CE5NDFHI.js +2 -0
  12. package/dist/chunk-E3Z3A4MR.cjs +2 -0
  13. package/dist/chunk-HZHPRYKD.js +3 -0
  14. package/dist/chunk-IZI7LZET.cjs +1 -0
  15. package/dist/chunk-PCSDVJE6.js +2 -0
  16. package/dist/chunk-SLCISFAV.cjs +3 -0
  17. package/dist/chunk-TWTUXY76.cjs +2 -0
  18. package/dist/chunk-W5AGPUNC.cjs +4 -0
  19. package/dist/chunk-XFTF7IHG.js +2 -0
  20. package/dist/chunk-Y2TGGXMH.js +3 -0
  21. package/dist/chunk-ZJE5XRN2.js +4 -0
  22. package/dist/client/index.cjs +4 -0
  23. package/dist/client/index.d.cts +97 -0
  24. package/dist/client/index.d.ts +97 -0
  25. package/dist/client/index.js +6 -0
  26. package/dist/experimental/index.cjs +3 -0
  27. package/dist/experimental/index.d.cts +451 -0
  28. package/dist/experimental/index.d.ts +451 -0
  29. package/dist/experimental/index.js +3 -0
  30. package/dist/fixtures.cjs +1506 -0
  31. package/dist/fixtures.d.cts +94 -0
  32. package/dist/fixtures.d.ts +94 -0
  33. package/dist/fixtures.js +1449 -0
  34. package/dist/index.cjs +1 -0
  35. package/dist/index.d.cts +305 -0
  36. package/dist/index.d.ts +305 -0
  37. package/dist/index.js +2 -0
  38. package/dist/metafile-cjs.json +1 -0
  39. package/dist/metafile-esm.json +1 -0
  40. package/dist/motionFeatures-M3DOZMRC.cjs +1 -0
  41. package/dist/motionFeatures-QDISAARM.js +1 -0
  42. package/dist/styles/toast.css +3 -0
  43. package/dist/styles/toast.d.cts +2 -0
  44. package/dist/styles/toast.d.ts +2 -0
  45. package/dist/tailwind/plugin.cjs +3 -0
  46. package/dist/tailwind/plugin.d.cts +60 -0
  47. package/dist/tailwind/plugin.d.ts +60 -0
  48. package/dist/tailwind/plugin.js +3 -0
  49. package/dist/tailwind/purger.cjs +6 -0
  50. package/dist/tailwind/purger.d.cts +17 -0
  51. package/dist/tailwind/purger.d.ts +17 -0
  52. package/dist/tailwind/purger.js +6 -0
  53. package/dist/tailwind/tsMorph.cjs +3 -0
  54. package/dist/tailwind/tsMorph.d.cts +31 -0
  55. package/dist/tailwind/tsMorph.d.ts +31 -0
  56. package/dist/tailwind/tsMorph.js +2 -0
  57. package/dist/tailwind/utils.cjs +1 -0
  58. package/dist/tailwind/utils.d.cts +99 -0
  59. package/dist/tailwind/utils.d.ts +99 -0
  60. package/dist/tailwind/utils.js +1 -0
  61. package/dist/tokens/index.cjs +1 -0
  62. package/dist/tokens/index.d.cts +1127 -0
  63. package/dist/tokens/index.d.ts +1127 -0
  64. package/dist/tokens/index.js +1 -0
  65. package/dist/tokens/parseTokens.cjs +1 -0
  66. package/dist/tokens/parseTokens.d.cts +59 -0
  67. package/dist/tokens/parseTokens.d.ts +59 -0
  68. package/dist/tokens/parseTokens.js +1 -0
  69. package/dist/types-CpZ2ERLZ.d.cts +949 -0
  70. package/dist/types-CpZ2ERLZ.d.ts +949 -0
  71. package/package.json +1 -1
@@ -0,0 +1,949 @@
1
+ import { IconSize, SvgIcon, IconVariant } from '@yahoo/uds-icons/types';
2
+ import { Spring } from 'framer-motion';
3
+ import { PropsWithChildren } from 'react';
4
+
5
+ declare const alwaysPalette: {
6
+ white: string;
7
+ black: string;
8
+ transparent: string;
9
+ current: string;
10
+ };
11
+
12
+ declare const UDS_PREFIX = "uds";
13
+ declare const AVATAR_SIZE_PREFIX = "uds-avatar-size";
14
+ declare const BORDER_RADIUS_PREFIX = "uds-border-radius";
15
+ declare const BORDER_WIDTH_PREFIX = "uds-border-width";
16
+ declare const FONT_FAMILY_PREFIX = "uds-font";
17
+ declare const FONT_SIZE_PREFIX = "uds-font-size";
18
+ declare const FONT_WEIGHT_PREFIX = "uds-font-weight";
19
+ declare const ICON_SIZE_PREFIX = "uds-icon-size";
20
+ declare const LINE_HEIGHT_PREFIX = "uds-line-height";
21
+ declare const MOTION_PREFIX = "uds-motion";
22
+ declare const SPECTRUM_COLOR_PREFIX = "uds-spectrum-color";
23
+ declare const TEXT_TRANSFORM_PREFIX = "uds-text-transform";
24
+ declare const DARK_COLOR_MODE_CLASSNAME = "uds-color-mode-dark";
25
+ declare const LIGHT_COLOR_MODE_CLASSNAME = "uds-color-mode-light";
26
+ declare const XSMALL_SCALE_MODE_CLASSNAME = "uds-scale-mode-xsmall";
27
+ declare const SMALL_SCALE_MODE_CLASSNAME = "uds-scale-mode-small";
28
+ declare const MEDIUM_SCALE_MODE_CLASSNAME = "uds-scale-mode-medium";
29
+ declare const LARGE_SCALE_MODE_CLASSNAME = "uds-scale-mode-large";
30
+ declare const XLARGE_SCALE_MODE_CLASSNAME = "uds-scale-mode-xlarge";
31
+ declare const XXLARGE_SCALE_MODE_CLASSNAME = "uds-scale-mode-xxlarge";
32
+ declare const XXXLARGE_SCALE_MODE_CLASSNAME = "uds-scale-mode-xxxlarge";
33
+ declare const DEFAULT_COLOR_MODE_CLASSNAME = "uds-color-mode-light";
34
+ declare const DEFAULT_SCALE_MODE_CLASSNAME = "uds-scale-mode-large";
35
+ declare const BUTTON_CSS_VAR_MAP: {
36
+ readonly borderRadius: "--uds-button-border-radius";
37
+ readonly borderWidth: "--uds-button-border-width";
38
+ readonly color: "--uds-button-color";
39
+ readonly backgroundColor: "--uds-button-background-color";
40
+ readonly borderColor: "--uds-button-border-color";
41
+ readonly padding: "--uds-button-padding";
42
+ readonly columnGap: "--uds-button-gap";
43
+ readonly fontFamily: "--uds-button-font";
44
+ readonly fontWeight: "--uds-button-font-weight";
45
+ readonly fontSize: "--uds-button-font-size";
46
+ readonly lineHeight: "--uds-button-line-height";
47
+ readonly textTransform: "--uds-button-text-transform";
48
+ readonly iconSize: "--uds-button-icon-size";
49
+ readonly effects: {
50
+ readonly scale: {
51
+ readonly rest: "--uds-button-effects-scale--rest";
52
+ readonly hover: "--uds-button-effects-scale--hover";
53
+ readonly pressed: "--uds-button-effects-scale--pressed";
54
+ };
55
+ };
56
+ };
57
+ declare const ICON_BUTTON_CSS_VAR_MAP: {
58
+ readonly padding: "--uds-icon-button-padding";
59
+ readonly iconSize: "--uds-icon-button-icon-size";
60
+ };
61
+ declare const PSEUDO_STYLE_SELECTOR_MAP: {
62
+ readonly hover: ":hover:not([disabled])";
63
+ readonly pressed: ":active:not([disabled])";
64
+ readonly disabled: ":disabled";
65
+ readonly focused: ":focus-visible";
66
+ readonly notDisabled: ":not(:disabled)";
67
+ };
68
+
69
+ declare const UDS_FONTS_CDN_PREFIX = "https://s.yimg.com/bw/fonts";
70
+ type FontDeclarationConfig = {
71
+ fontFamily: string;
72
+ fontDisplay: 'swap';
73
+ fontStyle?: 'normal' | 'italic';
74
+ fontWeight?: FontWeightNumeric | '1 1000';
75
+ src: `url('${typeof UDS_FONTS_CDN_PREFIX}/${string}.woff2') format('woff2')`;
76
+ };
77
+ declare const FONT_DECLARATIONS_MAP: {
78
+ readonly 'centra-no2': {
79
+ readonly fallback: string[];
80
+ readonly type: "sans";
81
+ readonly isVariableFont: false;
82
+ readonly declarations: [{
83
+ readonly fontFamily: "Centra No2";
84
+ readonly fontStyle: "normal";
85
+ readonly fontDisplay: "swap";
86
+ readonly fontWeight: "100";
87
+ readonly src: "url('https://s.yimg.com/bw/fonts/centra-no2-hairline.woff2') format('woff2')";
88
+ }, {
89
+ readonly fontFamily: "Centra No2";
90
+ readonly fontStyle: "italic";
91
+ readonly fontDisplay: "swap";
92
+ readonly fontWeight: "100";
93
+ readonly src: "url('https://s.yimg.com/bw/fonts/centra-no2-hairline-italic.woff2') format('woff2')";
94
+ }, {
95
+ readonly fontFamily: "Centra No2";
96
+ readonly fontStyle: "normal";
97
+ readonly fontDisplay: "swap";
98
+ readonly fontWeight: "200";
99
+ readonly src: "url('https://s.yimg.com/bw/fonts/centra-no2-thin.woff2') format('woff2')";
100
+ }, {
101
+ readonly fontFamily: "Centra No2";
102
+ readonly fontStyle: "italic";
103
+ readonly fontDisplay: "swap";
104
+ readonly fontWeight: "200";
105
+ readonly src: "url('https://s.yimg.com/bw/fonts/centra-no2-thin-italic.woff2') format('woff2')";
106
+ }, {
107
+ readonly fontFamily: "Centra No2";
108
+ readonly fontStyle: "normal";
109
+ readonly fontDisplay: "swap";
110
+ readonly fontWeight: "300";
111
+ readonly src: "url('https://s.yimg.com/bw/fonts/centra-no2-light.woff2') format('woff2')";
112
+ }, {
113
+ readonly fontFamily: "Centra No2";
114
+ readonly fontStyle: "italic";
115
+ readonly fontDisplay: "swap";
116
+ readonly fontWeight: "300";
117
+ readonly src: "url('https://s.yimg.com/bw/fonts/centra-no2-light-italic.woff2') format('woff2')";
118
+ }, {
119
+ readonly fontFamily: "Centra No2";
120
+ readonly fontStyle: "normal";
121
+ readonly fontDisplay: "swap";
122
+ readonly fontWeight: "400";
123
+ readonly src: "url('https://s.yimg.com/bw/fonts/centra-no2-book.woff2') format('woff2')";
124
+ }, {
125
+ readonly fontFamily: "Centra No2";
126
+ readonly fontStyle: "italic";
127
+ readonly fontDisplay: "swap";
128
+ readonly fontWeight: "400";
129
+ readonly src: "url('https://s.yimg.com/bw/fonts/centra-no2-book-italic.woff2') format('woff2')";
130
+ }, {
131
+ readonly fontFamily: "Centra No2";
132
+ readonly fontStyle: "normal";
133
+ readonly fontDisplay: "swap";
134
+ readonly fontWeight: "500";
135
+ readonly src: "url('https://s.yimg.com/bw/fonts/centra-no2-medium.woff2') format('woff2')";
136
+ }, {
137
+ readonly fontFamily: "Centra No2";
138
+ readonly fontStyle: "italic";
139
+ readonly fontDisplay: "swap";
140
+ readonly fontWeight: "500";
141
+ readonly src: "url('https://s.yimg.com/bw/fonts/centra-no2-medium-italic.woff2') format('woff2')";
142
+ }, {
143
+ readonly fontFamily: "Centra No2";
144
+ readonly fontStyle: "normal";
145
+ readonly fontDisplay: "swap";
146
+ readonly fontWeight: "700";
147
+ readonly src: "url('https://s.yimg.com/bw/fonts/centra-no2-bold.woff2') format('woff2')";
148
+ }, {
149
+ readonly fontFamily: "Centra No2";
150
+ readonly fontStyle: "italic";
151
+ readonly fontDisplay: "swap";
152
+ readonly fontWeight: "700";
153
+ readonly src: "url('https://s.yimg.com/bw/fonts/centra-no2-bold-italic.woff2') format('woff2')";
154
+ }, {
155
+ readonly fontFamily: "Centra No2";
156
+ readonly fontStyle: "normal";
157
+ readonly fontDisplay: "swap";
158
+ readonly fontWeight: "800";
159
+ readonly src: "url('https://s.yimg.com/bw/fonts/centra-no2-extrabold.woff2') format('woff2')";
160
+ }, {
161
+ readonly fontFamily: "Centra No2";
162
+ readonly fontStyle: "italic";
163
+ readonly fontDisplay: "swap";
164
+ readonly fontWeight: "800";
165
+ readonly src: "url('https://s.yimg.com/bw/fonts/centra-no2-extrabold-italic.woff2') format('woff2')";
166
+ }, {
167
+ readonly fontFamily: "Centra No2";
168
+ readonly fontStyle: "normal";
169
+ readonly fontDisplay: "swap";
170
+ readonly fontWeight: "900";
171
+ readonly src: "url('https://s.yimg.com/bw/fonts/centra-no2-black.woff2') format('woff2')";
172
+ }, {
173
+ readonly fontFamily: "Centra No2";
174
+ readonly fontStyle: "italic";
175
+ readonly fontDisplay: "swap";
176
+ readonly fontWeight: "900";
177
+ readonly src: "url('https://s.yimg.com/bw/fonts/centra-no2-black-italic.woff2') format('woff2')";
178
+ }];
179
+ };
180
+ readonly inter: {
181
+ readonly fallback: string[];
182
+ readonly type: "sans";
183
+ readonly isVariableFont: true;
184
+ readonly declarations: [{
185
+ readonly fontFamily: "Inter";
186
+ readonly fontDisplay: "swap";
187
+ /** TODO: We can make performant by only including font weights used for this font in config */
188
+ readonly fontWeight: "1 1000";
189
+ readonly src: "url('https://s.yimg.com/bw/fonts/inter-vf.woff2') format('woff2')";
190
+ }];
191
+ };
192
+ readonly 'roboto-mono': {
193
+ readonly fallback: string[];
194
+ readonly type: "mono";
195
+ readonly isVariableFont: false;
196
+ readonly declarations: [{
197
+ readonly fontFamily: "Roboto Mono";
198
+ readonly fontStyle: "normal";
199
+ readonly fontDisplay: "swap";
200
+ readonly fontWeight: "100";
201
+ readonly src: "url('https://s.yimg.com/bw/fonts/roboto-mono-100.woff2') format('woff2')";
202
+ }, {
203
+ readonly fontFamily: "Roboto Mono";
204
+ readonly fontStyle: "italic";
205
+ readonly fontDisplay: "swap";
206
+ readonly fontWeight: "100";
207
+ readonly src: "url('https://s.yimg.com/bw/fonts/roboto-mono-100-italic.woff2') format('woff2')";
208
+ }, {
209
+ readonly fontFamily: "Roboto Mono";
210
+ readonly fontStyle: "normal";
211
+ readonly fontDisplay: "swap";
212
+ readonly fontWeight: "200";
213
+ readonly src: "url('https://s.yimg.com/bw/fonts/roboto-mono-200.woff2') format('woff2')";
214
+ }, {
215
+ readonly fontFamily: "Roboto Mono";
216
+ readonly fontStyle: "italic";
217
+ readonly fontDisplay: "swap";
218
+ readonly fontWeight: "200";
219
+ readonly src: "url('https://s.yimg.com/bw/fonts/roboto-mono-200-italic.woff2') format('woff2')";
220
+ }, {
221
+ readonly fontFamily: "Roboto Mono";
222
+ readonly fontStyle: "normal";
223
+ readonly fontDisplay: "swap";
224
+ readonly fontWeight: "300";
225
+ readonly src: "url('https://s.yimg.com/bw/fonts/roboto-mono-300.woff2') format('woff2')";
226
+ }, {
227
+ readonly fontFamily: "Roboto Mono";
228
+ readonly fontStyle: "italic";
229
+ readonly fontDisplay: "swap";
230
+ readonly fontWeight: "300";
231
+ readonly src: "url('https://s.yimg.com/bw/fonts/roboto-mono-300-italic.woff2') format('woff2')";
232
+ }, {
233
+ readonly fontFamily: "Roboto Mono";
234
+ readonly fontStyle: "normal";
235
+ readonly fontDisplay: "swap";
236
+ readonly fontWeight: "400";
237
+ readonly src: "url('https://s.yimg.com/bw/fonts/roboto-mono-400.woff2') format('woff2')";
238
+ }, {
239
+ readonly fontFamily: "Roboto Mono";
240
+ readonly fontStyle: "italic";
241
+ readonly fontDisplay: "swap";
242
+ readonly fontWeight: "400";
243
+ readonly src: "url('https://s.yimg.com/bw/fonts/roboto-mono-400-italic.woff2') format('woff2')";
244
+ }, {
245
+ readonly fontFamily: "Roboto Mono";
246
+ readonly fontStyle: "normal";
247
+ readonly fontDisplay: "swap";
248
+ readonly fontWeight: "500";
249
+ readonly src: "url('https://s.yimg.com/bw/fonts/roboto-mono-500.woff2') format('woff2')";
250
+ }, {
251
+ readonly fontFamily: "Roboto Mono";
252
+ readonly fontStyle: "italic";
253
+ readonly fontDisplay: "swap";
254
+ readonly fontWeight: "500";
255
+ readonly src: "url('https://s.yimg.com/bw/fonts/roboto-mono-500-italic.woff2') format('woff2')";
256
+ }, {
257
+ readonly fontFamily: "Roboto Mono";
258
+ readonly fontStyle: "normal";
259
+ readonly fontDisplay: "swap";
260
+ readonly fontWeight: "600";
261
+ readonly src: "url('https://s.yimg.com/bw/fonts/roboto-mono-600.woff2') format('woff2')";
262
+ }, {
263
+ readonly fontFamily: "Roboto Mono";
264
+ readonly fontStyle: "italic";
265
+ readonly fontDisplay: "swap";
266
+ readonly fontWeight: "600";
267
+ readonly src: "url('https://s.yimg.com/bw/fonts/roboto-mono-600-italic.woff2') format('woff2')";
268
+ }, {
269
+ readonly fontFamily: "Roboto Mono";
270
+ readonly fontStyle: "normal";
271
+ readonly fontDisplay: "swap";
272
+ readonly fontWeight: "700";
273
+ readonly src: "url('https://s.yimg.com/bw/fonts/roboto-mono-700.woff2') format('woff2')";
274
+ }, {
275
+ readonly fontFamily: "Roboto Mono";
276
+ readonly fontStyle: "italic";
277
+ readonly fontDisplay: "swap";
278
+ readonly fontWeight: "700";
279
+ readonly src: "url('https://s.yimg.com/bw/fonts/roboto-mono-700-italic.woff2') format('woff2')";
280
+ }];
281
+ };
282
+ readonly 'yahoo-sans': {
283
+ readonly fallback: string[];
284
+ readonly type: "sans";
285
+ readonly isVariableFont: true;
286
+ readonly declarations: [{
287
+ readonly fontFamily: "Yahoo Sans";
288
+ readonly fontDisplay: "swap";
289
+ /** TODO: We can make performant by only including font weights used for this font in config */
290
+ readonly fontWeight: "1 1000";
291
+ readonly src: "url('https://s.yimg.com/bw/fonts/yahoo-sans-vf.woff2') format('woff2')";
292
+ }];
293
+ };
294
+ readonly 'yahoo-sans-cr4': {
295
+ readonly fallback: string[];
296
+ readonly type: "sans";
297
+ readonly isVariableFont: true;
298
+ readonly declarations: [{
299
+ readonly fontFamily: "Yahoo Sans CR4";
300
+ readonly fontDisplay: "swap";
301
+ /** TODO: We can make performant by only including font weights used for this font in config */
302
+ readonly fontWeight: "1 1000";
303
+ readonly src: "url('https://s.yimg.com/bw/fonts/yahoo-sans-cr4-vf.woff2') format('woff2')";
304
+ }];
305
+ };
306
+ readonly 'yahoo-sans-condensed': {
307
+ readonly fallback: string[];
308
+ readonly type: "sans";
309
+ readonly isVariableFont: true;
310
+ readonly declarations: [{
311
+ readonly fontFamily: "Yahoo Sans Condensed";
312
+ readonly fontDisplay: "swap";
313
+ /** TODO: We can make performant by only including font weights used for this font in config */
314
+ readonly fontWeight: "1 1000";
315
+ readonly src: "url('https://s.yimg.com/bw/fonts/yahoo-sans-condensed-vf.woff2') format('woff2')";
316
+ }];
317
+ };
318
+ readonly 'yahoo-serif-display': {
319
+ readonly fallback: string[];
320
+ readonly type: "serif";
321
+ readonly isVariableFont: false;
322
+ readonly declarations: [{
323
+ readonly fontFamily: "Yahoo Serif Display";
324
+ readonly fontStyle: "normal";
325
+ readonly fontDisplay: "swap";
326
+ readonly fontWeight: "300";
327
+ readonly src: "url('https://s.yimg.com/bw/fonts/yahoo-serif-display-light.woff2') format('woff2')";
328
+ }, {
329
+ readonly fontFamily: "Yahoo Serif Display";
330
+ readonly fontStyle: "normal";
331
+ readonly fontDisplay: "swap";
332
+ readonly fontWeight: "400";
333
+ readonly src: "url('https://s.yimg.com/bw/fonts/yahoo-serif-display-regular.woff2') format('woff2')";
334
+ }, {
335
+ readonly fontFamily: "Yahoo Serif Display";
336
+ readonly fontStyle: "normal";
337
+ readonly fontDisplay: "swap";
338
+ readonly fontWeight: "700";
339
+ readonly src: "url('https://s.yimg.com/bw/fonts/yahoo-serif-display-bold.woff2') format('woff2')";
340
+ }, {
341
+ readonly fontFamily: "Yahoo Serif Display";
342
+ readonly fontStyle: "normal";
343
+ readonly fontDisplay: "swap";
344
+ readonly fontWeight: "800";
345
+ readonly src: "url('https://s.yimg.com/bw/fonts/yahoo-serif-display-extrabold.woff2') format('woff2')";
346
+ }, {
347
+ readonly fontFamily: "Yahoo Serif Display";
348
+ readonly fontStyle: "normal";
349
+ readonly fontDisplay: "swap";
350
+ readonly fontWeight: "900";
351
+ readonly src: "url('https://s.yimg.com/bw/fonts/yahoo-serif-display-black.woff2') format('woff2')";
352
+ }];
353
+ };
354
+ readonly 'yahoo-serif-text': {
355
+ readonly fallback: string[];
356
+ readonly type: "serif";
357
+ readonly isVariableFont: false;
358
+ readonly declarations: [{
359
+ readonly fontFamily: "Yahoo Serif Text";
360
+ readonly fontStyle: "normal";
361
+ readonly fontDisplay: "swap";
362
+ readonly fontWeight: "400";
363
+ readonly src: "url('https://s.yimg.com/bw/fonts/yahoo-serif-text-regular.woff2') format('woff2')";
364
+ }, {
365
+ readonly fontFamily: "Yahoo Serif Text";
366
+ readonly fontStyle: "italic";
367
+ readonly fontDisplay: "swap";
368
+ readonly fontWeight: "400";
369
+ readonly src: "url('https://s.yimg.com/bw/fonts/yahoo-serif-text-italic.woff2') format('woff2')";
370
+ }, {
371
+ readonly fontFamily: "Yahoo Serif Text";
372
+ readonly fontStyle: "normal";
373
+ readonly fontDisplay: "swap";
374
+ readonly fontWeight: "700";
375
+ readonly src: "url('https://s.yimg.com/bw/fonts/yahoo-serif-text-bold.woff2') format('woff2')";
376
+ }, {
377
+ readonly fontFamily: "Yahoo Serif Text";
378
+ readonly fontStyle: "italic";
379
+ readonly fontDisplay: "swap";
380
+ readonly fontWeight: "700";
381
+ readonly src: "url('https://s.yimg.com/bw/fonts/yahoo-serif-text-bold-italic.woff2') format('woff2')";
382
+ }];
383
+ };
384
+ };
385
+
386
+ type ClassNameWithoutDot<T extends string> = T extends `.${infer U}` ? U : never;
387
+ type ExtractUrlFromFontFaceRule<T extends string> = T extends `url('${infer U}') format('woff2')` ? U : never;
388
+ type UnjoinClassNames<T extends string> = T extends `${infer U}.${infer V}` ? U | V : T;
389
+ type PaletteType = keyof PaletteConfig;
390
+ type PaletteValue = {
391
+ hue: Hue;
392
+ step: HueStep;
393
+ opacity?: string;
394
+ };
395
+ type Palette = {
396
+ [key in PaletteType]: keyof PaletteConfig[key];
397
+ };
398
+ type Hue = 'gray' | 'purple' | 'indigo' | 'blue' | 'cyan' | 'teal' | 'mint' | 'green' | 'lime' | 'citron' | 'yellow' | 'brown' | 'nude' | 'orange' | 'sunset' | 'red' | 'rose' | 'pink' | 'magenta' | 'carbon';
399
+ type HueStep = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | '13' | '14' | '15';
400
+ type SpectrumColor = `${Hue}-${HueStep}`;
401
+ type CorePalette = Record<CorePaletteAlias, PaletteValue>;
402
+ type CorePaletteAlias = 'brand' | 'accent' | 'alert' | 'positive' | 'warning';
403
+ type BackgroundPaletteAlias = 'primary' | 'secondary';
404
+ type BackgroundPalette = Record<BackgroundPaletteAlias, PaletteValue>;
405
+ type ForegroundPalette = Record<ForegroundPaletteAlias, PaletteValue>;
406
+ type ForegroundPaletteAlias = 'primary' | 'secondary' | 'tertiary' | 'muted' | 'on-color';
407
+ type LinePalette = Record<LinePaletteAlias, PaletteValue>;
408
+ type LinePaletteAlias = 'primary' | 'secondary' | 'tertiary' | 'muted';
409
+ type AlwaysPalette = typeof alwaysPalette;
410
+ type AlwaysPaletteAlias = keyof AlwaysPalette;
411
+ type ForegroundColor = CorePaletteAlias | ForegroundPaletteAlias | AlwaysPaletteAlias;
412
+ type LineColor = CorePaletteAlias | LinePaletteAlias | AlwaysPaletteAlias;
413
+ type BackgroundColor = CorePaletteAlias | BackgroundPaletteAlias | AlwaysPaletteAlias;
414
+ type PropertyToPaletteAliasMap = {
415
+ backgroundColor: BackgroundColor;
416
+ borderColor: LineColor;
417
+ color: ForegroundColor;
418
+ };
419
+ type TextVariant = 'display1' | 'display2' | 'display3' | 'title1' | 'title2' | 'title3' | 'title4' | 'headline1' | 'body1' | 'label1' | 'label2' | 'caption1' | 'caption2' | 'legal1';
420
+ type FontAlias = 'sans' | 'sans-alt' | 'serif' | 'serif-alt' | 'mono';
421
+ type FontType = 'sans' | 'serif' | 'mono';
422
+ type FontID = keyof typeof FONT_DECLARATIONS_MAP;
423
+ type FontDeclaration = (typeof FONT_DECLARATIONS_MAP)[FontID]['declarations'][number];
424
+ type FontFamilyCDNUrl = ExtractUrlFromFontFaceRule<FontDeclaration['src']>;
425
+ type FontConfig = Record<FontAlias, FontID>;
426
+ type FontCssVar = `--${typeof UDS_PREFIX}-font-${FontAlias}`;
427
+ type FontWeightNumeric = '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900';
428
+ type FontWeightDescriptive = 'thin' | 'extralight' | 'light' | 'regular' | 'medium' | 'semibold' | 'bold' | 'extrabold' | 'black';
429
+ type TextTransform = 'none' | 'uppercase' | 'lowercase' | 'capitalize';
430
+ type LetterSpacing = 'tighter' | 'tight' | 'normal' | 'wide' | 'wider' | 'widest';
431
+ type LineClampAlias = '1' | '2' | '3' | '4' | '5' | '6';
432
+ type LineHeight = number;
433
+ type FontSize = number;
434
+ type TextTransformConfig = Record<TextVariant, TextTransform>;
435
+ type FontSizeConfig = Record<TextVariant, FontSize>;
436
+ type FontFamilyConfig = Record<TextVariant, FontAlias>;
437
+ type FontWeightConfig = Record<TextVariant, FontWeightDescriptive | number>;
438
+ type LineHeightConfig = Record<TextVariant, LineHeight>;
439
+ type TextProperty = 'fontFamily' | 'fontSize' | 'fontWeight' | 'lineHeight' | 'textTransform';
440
+ type TShirtSize = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
441
+ type TShirtSizeCommon = Extract<TShirtSize, 'sm' | 'md' | 'lg'>;
442
+ type AvatarSize = TShirtSizeCommon;
443
+ type AvatarSizeConfig = Record<AvatarSize, number>;
444
+ type AvatarShape = BorderRadius;
445
+ type IconSizeConfig = Record<IconSize, number>;
446
+ type SpacingAlias = '0' | 'px' | '0.5' | '1' | '1.5' | '2' | '2.5' | '3' | '3.5' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | '14' | '16' | '20' | '24' | '28' | '32' | '36' | '40' | '44' | '48' | '52' | '56' | '60' | '64' | '72' | '80' | '96';
447
+ type SpacingConfig = Record<SpacingAlias, number>;
448
+ type BorderRadius = TShirtSize;
449
+ type BorderRadiusConfig = Record<BorderRadius, number>;
450
+ type BorderWidth = 'none' | 'thin' | 'medium' | 'thick';
451
+ type BorderWidthConfig = Record<BorderWidth, number>;
452
+ type BoxShadowConfig = {
453
+ color: string;
454
+ offsetX: number;
455
+ offsetY: number;
456
+ blurRadius: number;
457
+ spreadRadius: number;
458
+ }[];
459
+ type ColorModeConfig = Record<ColorMode, ColorsConfig>;
460
+ type ColorsConfig = {
461
+ palette: PaletteConfig;
462
+ spectrum: SpectrumConfig;
463
+ };
464
+ type SpectrumValue = Record<HueStep, string>;
465
+ type SpectrumConfig = Record<Hue, SpectrumValue>;
466
+ type PaletteConfig = {
467
+ core: CorePalette;
468
+ background: BackgroundPalette;
469
+ foreground: ForegroundPalette;
470
+ line: LinePalette;
471
+ };
472
+ type ScaleConfig = {
473
+ avatarSizes: AvatarSizeConfig;
474
+ iconSizes: IconSizeConfig;
475
+ borderRadius: BorderRadiusConfig;
476
+ borderWidth: BorderWidthConfig;
477
+ fontFamily: FontFamilyConfig;
478
+ fontSize: FontSizeConfig;
479
+ fontWeight: FontWeightConfig;
480
+ lineHeight: LineHeightConfig;
481
+ textTransform: TextTransformConfig;
482
+ };
483
+ type ScaleModeConfig = Record<ScaleMode, ScaleConfig>;
484
+ type ButtonSize = TShirtSizeCommon;
485
+ type ButtonPalette = CorePaletteAlias;
486
+ type ButtonVariant = 'primary' | 'secondary' | 'tertiary';
487
+ type ButtonState = 'hover' | 'pressed';
488
+ type ButtonKind = 'fill' | 'outline' | 'ghost';
489
+ type ButtonMotionProperty = 'scale';
490
+ type ButtonMotionEffect = 'up' | 'down' | 'none';
491
+ type ButtonColorEffect = 'lighten' | 'darken' | 'none' | 'custom';
492
+ type ButtonColorProperty = 'backgroundColor' | 'borderColor' | 'color';
493
+ type ButtonSizeProperty = keyof ButtonSizeConfig;
494
+ type ButtonColorEffectConfig = {
495
+ options: ButtonColorEffect[];
496
+ value: ButtonColorEffect;
497
+ };
498
+ type ButtonMotionEffectConfig = {
499
+ options: ButtonMotionEffect[];
500
+ value: ButtonMotionEffect;
501
+ };
502
+ type ButtonSpectrumColor = {
503
+ type: 'spectrum';
504
+ value: SpectrumColor;
505
+ };
506
+ type ButtonPaletteColor<T> = {
507
+ type: 'palette';
508
+ value: T;
509
+ };
510
+ type ButtonColorConfig<Property extends ButtonColorProperty> = ButtonPaletteColor<PropertyToPaletteAliasMap[Property]> | ButtonSpectrumColor;
511
+ type ButtonColorPropertyConfig = {
512
+ [key in ButtonColorProperty]: ButtonColorConfig<key>;
513
+ };
514
+ type ButtonMotionPropertyConfig = {
515
+ [key in ButtonMotionProperty]: ButtonMotionEffect;
516
+ };
517
+ type ButtonBaseConfig = {
518
+ borderWidth: BorderWidth;
519
+ borderRadius: BorderRadius;
520
+ } & ButtonColorPropertyConfig & ButtonMotionPropertyConfig;
521
+ type ButtonSizeConfig = {
522
+ spacingHorizontal: SpacingAlias;
523
+ spacingVertical: SpacingAlias;
524
+ gap: SpacingAlias;
525
+ iconSize: IconSize;
526
+ textVariant: TextVariant;
527
+ };
528
+ type ButtonVariantConfig = {
529
+ kind: ButtonKind;
530
+ base: ButtonBaseConfig;
531
+ effect: ButtonStateEffectConfig;
532
+ state: ButtonStateConfig;
533
+ };
534
+ type ButtonPaletteConfig = {
535
+ [variant in ButtonVariant]: ButtonVariantConfig;
536
+ };
537
+ type ButtonStateConfig = {
538
+ [state in ButtonState]: ButtonColorPropertyConfig & ButtonMotionPropertyConfig;
539
+ };
540
+ type ButtonColorEffectConfigMap = {
541
+ [property in ButtonColorProperty]: ButtonColorEffectConfig;
542
+ };
543
+ type ButtonMotionEffectConfigMap = {
544
+ [property in ButtonMotionProperty]: ButtonMotionEffectConfig;
545
+ };
546
+ type ButtonStateEffectConfig = {
547
+ [state in ButtonState]: ButtonColorEffectConfigMap & ButtonMotionEffectConfigMap;
548
+ };
549
+ type ButtonDefaultsConfig = {
550
+ palette: ButtonPalette;
551
+ variant: ButtonVariant;
552
+ size: ButtonSize;
553
+ };
554
+ interface ButtonConfig {
555
+ defaults: ButtonDefaultsConfig;
556
+ size: {
557
+ [size in ButtonSize]: ButtonSizeConfig;
558
+ };
559
+ palette: {
560
+ [palette in ButtonPalette]: ButtonPaletteConfig;
561
+ };
562
+ }
563
+ type ButtonCssVarMap = typeof BUTTON_CSS_VAR_MAP;
564
+ type ButtonCssVar = ButtonCssVarMap[keyof ButtonCssVarMap];
565
+ type ButtonStateCssProperty = keyof Omit<ButtonBaseConfig, 'scale'>;
566
+ type ButtonSizeCssProperty = keyof Pick<ButtonCssVarMap, 'padding' | 'columnGap' | 'fontWeight' | 'fontSize' | 'lineHeight' | 'textTransform' | 'iconSize'>;
567
+ type ButtonStateCssVar = Pick<ButtonCssVarMap, ButtonStateCssProperty>[ButtonStateCssProperty];
568
+ type ButtonSizeCssVar = Pick<ButtonCssVarMap, ButtonSizeCssProperty>[ButtonSizeCssProperty];
569
+ type ButtonStateVarsMap = Record<ButtonStateCssVar, string>;
570
+ type ButtonSizeVarsMap = Record<ButtonSizeCssVar, string>;
571
+ type ButtonPseudoStyles<ClassName extends string> = {
572
+ [key in `.${ButtonState}`]: Record<ClassName, ButtonStateVarsMap>;
573
+ };
574
+ type ButtonStateVarsWithPseudoStyles<T extends string> = Record<T, ButtonStateVarsMap> & ButtonPseudoStyles<T>;
575
+ type ButtonClassMap = {
576
+ '.uds-button': {
577
+ /** Hardcoded in tailwind plugin */
578
+ display: React.CSSProperties['display'];
579
+ alignItems: React.CSSProperties['alignItems'];
580
+ whiteSpace: React.CSSProperties['whiteSpace'];
581
+ /** Driven by css variables */
582
+ borderRadius: string;
583
+ color: string;
584
+ backgroundColor: string;
585
+ boxShadow: string;
586
+ padding: string;
587
+ columnGap: string;
588
+ fontFamily: string;
589
+ fontWeight: string;
590
+ fontSize: string;
591
+ lineHeight: string;
592
+ textTransform: string;
593
+ };
594
+ } & ButtonStateVarsWithPseudoStyles<`.uds-button-${ButtonPalette}` | `.uds-button-${ButtonVariant}` | `.uds-button-${ButtonPalette}.uds-button-${ButtonVariant}`> & Record<`.uds-button-${ButtonSize}`, ButtonSizeVarsMap> & ButtonPseudoStyles<'.uds-button'>;
595
+ type ButtonClassName = UnjoinClassNames<ClassNameWithoutDot<Exclude<keyof ButtonClassMap, `.${ButtonState}`>>>;
596
+ type IconButtonSize = Extract<TShirtSize, 'xs' | TShirtSizeCommon | 'xl'>;
597
+ interface IconButtonSizeConfig {
598
+ spacing: SpacingAlias;
599
+ iconSize: IconSize;
600
+ }
601
+ interface IconButtonDefaultsConfig extends Omit<ButtonDefaultsConfig, 'size'> {
602
+ size: IconButtonSize;
603
+ }
604
+ interface IconButtonConfig {
605
+ defaults: IconButtonDefaultsConfig;
606
+ size: {
607
+ [size in IconButtonSize]: IconButtonSizeConfig;
608
+ };
609
+ }
610
+ type IconButtonCssVarMap = typeof ICON_BUTTON_CSS_VAR_MAP;
611
+ type IconButtonCssVar = IconButtonCssVarMap[keyof IconButtonCssVarMap];
612
+ type IconButtonSizeCssVar = IconButtonCssVarMap[keyof IconButtonCssVarMap];
613
+ type IconButtonSizeVarsMap = Record<IconButtonSizeCssVar, string>;
614
+ type IconButtonClassMap = {
615
+ '.uds-icon-button': {
616
+ /** Hardcoded in tailwind plugin */
617
+ display: React.CSSProperties['display'];
618
+ alignItems: React.CSSProperties['alignItems'];
619
+ padding: string;
620
+ };
621
+ } & Record<`.uds-icon-button-${IconButtonSize}`, IconButtonSizeVarsMap>;
622
+ type IconButtonClassName = UnjoinClassNames<ClassNameWithoutDot<keyof IconButtonClassMap>>;
623
+ type UniversalTokensConfig = {
624
+ version: string;
625
+ colorMode: ColorModeConfig;
626
+ scaleMode: ScaleModeConfig;
627
+ font: FontConfig;
628
+ button: ButtonConfig;
629
+ iconButton: IconButtonConfig;
630
+ motion: MotionConfig;
631
+ };
632
+ type UdsCssVar = FontCssVar | ButtonCssVar | IconButtonCssVar;
633
+ type PlatformMode = 'web' | 'ios' | 'android';
634
+ type ColorMode = 'light' | 'dark';
635
+ type ColorModeForApp = ColorMode | 'system';
636
+ type ScaleMode = 'xSmall' | 'small' | 'medium' | 'large' | 'xLarge' | 'xxLarge' | 'xxxLarge';
637
+ type ScaleModeForApp = ScaleMode | 'system';
638
+ type HighContrastMode = boolean;
639
+ type RegionMode = '🇺🇸 US' | '🇩🇪 DE' | '🇫🇷 FR' | '🇨🇳 CN';
640
+ interface Modes {
641
+ colorMode: ColorMode;
642
+ scaleMode: ScaleMode;
643
+ }
644
+ type Animation = 'none' | 'spin' | 'ping' | 'pulse' | 'bounce' | 'accordion-down' | 'accordion-up';
645
+ type TransitionDelay = '0' | '75' | '100' | '150' | '200' | '300' | '500' | '700' | '1000';
646
+ type TransitionDuration = '0' | '75' | '100' | '150' | '200' | '300' | '500' | '700' | '1000';
647
+ type TransitionTiming = 'linear' | 'in' | 'out' | 'in-out';
648
+ type MotionVariant = 'damped' | 'smooth' | 'subtle' | 'bouncy' | 'veryBouncy';
649
+ type MotionVariantSpeed = '1' | '2' | '3' | '4';
650
+ type MotionSpringConfigOptions = 'damping' | 'stiffness';
651
+ type MotionSpringConfig = Required<Pick<Spring, MotionSpringConfigOptions>>;
652
+ type MotionCssVar = `--${typeof MOTION_PREFIX}-${MotionVariant}-${MotionVariantSpeed}-${keyof MotionSpringConfig}`;
653
+ type MotionVariantValues = {
654
+ [key in MotionVariantSpeed]: MotionSpringConfig;
655
+ };
656
+ type MotionConfig = Record<MotionVariant, MotionVariantValues>;
657
+ type AriaAttribute = 'busy' | 'checked' | 'disabled' | 'expanded' | 'hidden' | 'pressed' | 'readonly' | 'required' | 'selected' | 'invalid';
658
+ type DataAttribute = 'active' | 'active-item' | 'autofill' | 'backdrop' | 'enter' | 'leave' | 'focus-visible';
659
+ type Flex = '1' | 'auto' | 'initial' | 'none';
660
+ type FlexGrow = '0' | '1' | '2' | '3';
661
+ type FlexShrink = '0' | '1';
662
+ type FlexAlignContent = 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'space-between' | 'space-around';
663
+ type FlexAlignItems = 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline';
664
+ type FlexAlignSelf = 'auto' | 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline';
665
+ type FlexDirection = 'row' | 'column' | 'row-reverse' | 'column-reverse';
666
+ type FlexWrap = 'wrap' | 'nowrap' | 'wrap-reverse';
667
+ type FlexJustifyContent = 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly';
668
+ type FlexBasis = 'min-content';
669
+ type Display = 'block' | 'inline-block' | 'inline' | 'flex' | 'inline-flex' | 'table' | 'inline-table' | 'table-caption' | 'table-cell' | 'table-column' | 'table-column-group' | 'table-footer-group' | 'table-header-group' | 'table-row-group' | 'table-row' | 'flow-root' | 'grid' | 'contents';
670
+ type Overflow = 'auto' | 'hidden' | 'clip' | 'visible' | 'scroll';
671
+ type Position = 'static' | 'fixed' | 'absolute' | 'relative' | 'sticky';
672
+ type ScaleEffectMap = {
673
+ none: {
674
+ [key in Exclude<TShirtSize, 'none' | 'full'>]: '1';
675
+ };
676
+ down: {
677
+ xs: '0.9875';
678
+ sm: '0.97';
679
+ md: '0.875';
680
+ lg: '0.75';
681
+ xl: '0.5';
682
+ };
683
+ up: {
684
+ xs: '1.0125';
685
+ sm: '1.03';
686
+ md: '1.125';
687
+ lg: '1.25';
688
+ xl: '2';
689
+ };
690
+ };
691
+ type ImageStyleProps = {
692
+ /**
693
+ * Determines how the image should be resized to fit its container.
694
+ */
695
+ contentFit?: 'cover' | 'contain' | 'fill' | 'none' | 'scale-down';
696
+ };
697
+ interface BorderStyleProps {
698
+ /** Add a border radius to all corners of the box. */
699
+ borderRadius?: BorderRadius;
700
+ /** Add a border radius to top left corner of the box. */
701
+ borderTopStartRadius?: BorderRadius;
702
+ /** Add a border radius to top right corner of the box. */
703
+ borderTopEndRadius?: BorderRadius;
704
+ /** Add a border radius to bottom left corner of the box. */
705
+ borderBottomStartRadius?: BorderRadius;
706
+ /** Add a border radius to bottom right corner of the box. */
707
+ borderBottomEndRadius?: BorderRadius;
708
+ /** Adds a custom border color from the palette */
709
+ borderColor?: LineColor;
710
+ /** Start border color */
711
+ borderStartColor?: LineColor;
712
+ /** End border color */
713
+ borderEndColor?: LineColor;
714
+ /** Top border color */
715
+ borderTopColor?: LineColor;
716
+ /** Bottom border color */
717
+ borderBottomColor?: LineColor;
718
+ /** Shorthand property to the width of an element's border. */
719
+ borderWidth?: BorderWidth;
720
+ /** Sets the width of the top and bottom border of an element. */
721
+ borderVerticalWidth?: BorderWidth;
722
+ /** Sets the width of the start (left) and end (right) border of an element. */
723
+ borderHorizontalWidth?: BorderWidth;
724
+ /** Sets the width of the start (left) border of an element. */
725
+ borderStartWidth?: BorderWidth;
726
+ /** Sets the width of the end (right) border of an element. */
727
+ borderEndWidth?: BorderWidth;
728
+ /** Sets the width of the top border of an element. */
729
+ borderTopWidth?: BorderWidth;
730
+ /** Sets the width of the bottom border of an element. */
731
+ borderBottomWidth?: BorderWidth;
732
+ }
733
+ interface LayoutStyleProps {
734
+ /** Sets whether an element is treated as a block or inline box and the layout used for its children, such as flow layout, grid or flex. */
735
+ display?: Display;
736
+ /** Shorthand property which sets the desired behavior when content does not fit in the parent element box (overflows) in the horizontal and/or vertical direction. */
737
+ overflow?: Overflow;
738
+ /** Sets what shows when content overflows a block-level element's left and right edges. This may be nothing, a scroll bar, or the overflow content. This property may also be set by using the overflow shorthand property. */
739
+ overflowX?: Overflow;
740
+ /** sets what shows when content overflows a block-level element's top and bottom edges. This may be nothing, a scroll bar, or the overflow content. This property may also be set by using the overflow shorthand property. */
741
+ overflowY?: Overflow;
742
+ /** Sets how an element is positioned in a document. The top, right, bottom, and left properties determine the final location of positioned elements. */
743
+ position?: Position;
744
+ }
745
+ interface SpacingStyleProps {
746
+ /** Apply inner spacing on all sides. */
747
+ spacing?: SpacingAlias;
748
+ /** Apply inner spacing on the leading and trailing sides. */
749
+ spacingHorizontal?: SpacingAlias;
750
+ /** Apply inner spacing on the top and bottom sides. */
751
+ spacingVertical?: SpacingAlias;
752
+ /** Apply inner spacing on the bottom side. */
753
+ spacingBottom?: SpacingAlias;
754
+ /** Apply inner spacing on the trailing side. */
755
+ spacingEnd?: SpacingAlias;
756
+ /** Apply inner spacing on the leading side. */
757
+ spacingStart?: SpacingAlias;
758
+ /** Apply inner spacing on the top side. */
759
+ spacingTop?: SpacingAlias;
760
+ /** Apply negative outer spacing on all sides. */
761
+ offset?: SpacingAlias;
762
+ /** Apply negative outer spacing on the top and bottom sides. */
763
+ offsetVertical?: SpacingAlias;
764
+ /** Apply negative outer spacing on the leading and trailing sides. */
765
+ offsetHorizontal?: SpacingAlias;
766
+ /** Apply negative outer spacing on the bottom side. */
767
+ offsetBottom?: SpacingAlias;
768
+ /** Apply negative outer spacing on the trailing side. */
769
+ offsetEnd?: SpacingAlias;
770
+ /** Apply negative outer spacing on the leading side. */
771
+ offsetStart?: SpacingAlias;
772
+ /** Apply negative outer spacing on the top side. */
773
+ offsetTop?: SpacingAlias;
774
+ /** Control the horizontal gutters between grid and flexbox items. */
775
+ columnGap?: SpacingAlias;
776
+ /** Control the vertical gutters between grid and flexbox items. */
777
+ rowGap?: SpacingAlias;
778
+ }
779
+ interface FlexStyleProps {
780
+ /** Sets the distribution of space between and around content items along a flexbox's cross-axis or a grid's block axis. */
781
+ alignContent?: FlexAlignContent;
782
+ /** Sets the align-self value on all direct children as a group. In Flexbox, it controls the alignment of items on the Cross Axis. In Grid Layout, it controls the alignment of items on the Block Axis within their grid area. */
783
+ alignItems?: FlexAlignItems;
784
+ /** Overrides a grid or flex item's align-items value. In Grid, it aligns the item inside the grid area. In Flexbox, it aligns the item on the cross axis. */
785
+ alignSelf?: FlexAlignSelf;
786
+ /** Sets how a flex item will grow or shrink to fit the space available in its flex container. */
787
+ flex?: Flex;
788
+ /** Sets how flex items are placed in the flex container defining the main axis and the direction (normal or reversed). */
789
+ flexDirection?: FlexDirection;
790
+ /** Sets the flex grow factor, which specifies how much of the flex container's remaining space should be assigned to the flex item's main size. */
791
+ flexGrow?: FlexGrow;
792
+ /** Sets the flex shrink factor of a flex item. If the size of all flex items is larger than the flex container, items shrink to fit according to flex-shrink. */
793
+ flexShrink?: FlexShrink;
794
+ /** Sets whether flex items are forced onto one line or can wrap onto multiple lines. If wrapping is allowed, it sets the direction that lines are stacked. */
795
+ flexWrap?: FlexWrap;
796
+ /** Defines how the browser distributes space between and around content items along the main-axis of a flex container, and the inline axis of a grid container. */
797
+ justifyContent?: FlexJustifyContent;
798
+ /** Sets the initial main size of a flex item. It sets the size of the content box unless otherwise set with box-sizing. https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis */
799
+ flexBasis?: FlexBasis;
800
+ }
801
+ interface StateStyleProps {
802
+ interactable?: boolean;
803
+ focusable?: boolean;
804
+ }
805
+ interface TextStyleProps {
806
+ /** Color of a Text or Icon element */
807
+ color?: ForegroundColor;
808
+ /** Color of placeholder text */
809
+ placeholderColor?: ForegroundColor;
810
+ /** Font family for the text */
811
+ fontFamily?: TextVariant | FontAlias;
812
+ /** Font size of the text */
813
+ fontSize?: TextVariant;
814
+ /** Font weight of the text */
815
+ fontWeight?: TextVariant | FontWeightDescriptive;
816
+ /** Line height of the text */
817
+ lineHeight?: TextVariant;
818
+ /** Text alignment of the text */
819
+ textAlign?: 'center' | 'justify' | 'start' | 'end';
820
+ /** Sets the text transform for the text */
821
+ textTransform?: TextVariant | TextTransform;
822
+ }
823
+ interface BackgroundStyleProps {
824
+ /** Sets the background color. */
825
+ backgroundColor?: BackgroundColor;
826
+ }
827
+ type CustomSizingStyleProps = {
828
+ iconSize?: IconSize;
829
+ avatarSize?: AvatarSize;
830
+ };
831
+ type StyleProps = BackgroundStyleProps & BorderStyleProps & LayoutStyleProps & FlexStyleProps & SpacingStyleProps & TextStyleProps & ImageStyleProps & CustomSizingStyleProps;
832
+ interface UniversalBoxProps extends PropsWithChildren, BackgroundStyleProps, BorderStyleProps, FlexStyleProps, LayoutStyleProps, SpacingStyleProps {
833
+ /**
834
+ * When asChild is set to true, the component's child will be cloned and passed
835
+ * the props and behavior required to make it functional.
836
+ */
837
+ asChild?: boolean;
838
+ }
839
+ interface UniversalStackProps extends Omit<UniversalBoxProps, 'flexDirection'> {
840
+ gap?: SpacingAlias;
841
+ }
842
+ interface UniversalTextProps extends PropsWithChildren, TextStyleProps, UniversalBoxProps {
843
+ /** Style of text. */
844
+ variant?: TextVariant;
845
+ /** Color of the text. */
846
+ color?: ForegroundColor;
847
+ }
848
+ interface UniversalIconProps {
849
+ /** Icon to render from the icons package. */
850
+ name: SvgIcon;
851
+ /** Size of the icon. */
852
+ size?: IconSize;
853
+ /** Variant for icon. Either fill or outline. */
854
+ variant?: IconVariant;
855
+ /** Color of the icon. */
856
+ color?: ForegroundColor;
857
+ }
858
+ interface UniversalPressableProps extends UniversalBoxProps {
859
+ onPress?: () => void;
860
+ }
861
+ interface UniversalIconButtonProps {
862
+ /**
863
+ * The variant of the button
864
+ * @default is assigned in the configurator
865
+ */
866
+ variant?: ButtonVariant;
867
+ /**
868
+ * The color palette to use for the button
869
+ * @default is assigned in the configurator
870
+ */
871
+ palette?: ButtonPalette;
872
+ /** The size of the button. */
873
+ size?: IconButtonSize;
874
+ /** The icon variant
875
+ * @default 'outline'
876
+ */
877
+ iconVariant?: IconVariant;
878
+ /** Icon to render from the icons package. */
879
+ name: SvgIcon;
880
+ /** Render the button with a loading state. */
881
+ loading?: boolean;
882
+ /** Disable any motion effects configured in the configurator */
883
+ disableEffects?: boolean;
884
+ }
885
+ interface UniversalButtonProps {
886
+ /**
887
+ * The variant of the button
888
+ * @default is assigned in the configurator
889
+ */
890
+ variant?: ButtonVariant;
891
+ /**
892
+ * The color palette to use for the button
893
+ * @default is assigned in the configurator
894
+ */
895
+ palette?: ButtonPalette;
896
+ /**
897
+ * The size of the button
898
+ * @default is assigned in the configurator
899
+ */
900
+ size?: ButtonSize;
901
+ /** The icon variant for start and end icons
902
+ * @default 'outline'
903
+ */
904
+ iconVariant?: IconVariant;
905
+ /** The name of the icon to be displayed at the start of the button. */
906
+ startIcon?: SvgIcon;
907
+ /** The name of the icon to be displayed at the end of the button. */
908
+ endIcon?: SvgIcon;
909
+ /** Render the button with a loading state. */
910
+ loading?: boolean;
911
+ /** Disable any motion effects configured in the configurator */
912
+ disableEffects?: boolean;
913
+ /**
914
+ * When asChild is set to true, the component's child will be cloned and passed
915
+ * the props and behavior required to make it functional.
916
+ */
917
+ asChild?: boolean;
918
+ }
919
+ interface UniversalImageProps extends Omit<UniversalBoxProps, 'width' | 'height'>, ImageStyleProps {
920
+ /** The source URL of the image. */
921
+ src: string;
922
+ /** Provides fallback (alternate) text to display when the image specified by the Image element is not loaded. */
923
+ alt?: string;
924
+ /** Width of the image in px. */
925
+ width?: number;
926
+ /** Height of the image in pixel. */
927
+ height?: number;
928
+ }
929
+ interface UniversalAvatarProps extends UniversalImageProps {
930
+ /** The size of the Avatar. */
931
+ size?: AvatarSize;
932
+ /** The shape of the Avatar. */
933
+ shape?: BorderRadius;
934
+ }
935
+ interface UniversalTextInputProps {
936
+ disabled?: boolean;
937
+ required?: boolean;
938
+ backgroundColor?: BackgroundColor;
939
+ borderColor?: LineColor;
940
+ borderWidth?: BorderWidth;
941
+ borderRadius?: BorderRadius;
942
+ color?: ForegroundColor;
943
+ fontSize?: TextVariant;
944
+ placeholderColor?: ForegroundColor;
945
+ spacingVertical?: SpacingAlias;
946
+ spacingHorizontal?: SpacingAlias;
947
+ }
948
+
949
+ export { DEFAULT_SCALE_MODE_CLASSNAME as $, AVATAR_SIZE_PREFIX as A, type ButtonConfig as B, type ColorMode as C, FONT_SIZE_PREFIX as D, FONT_WEIGHT_PREFIX as E, type FontWeightConfig as F, ICON_SIZE_PREFIX as G, type Hue as H, type IconButtonClassMap as I, MOTION_PREFIX as J, SPECTRUM_COLOR_PREFIX as K, LINE_HEIGHT_PREFIX as L, type MotionVariant as M, DARK_COLOR_MODE_CLASSNAME as N, LIGHT_COLOR_MODE_CLASSNAME as O, type PaletteType as P, SMALL_SCALE_MODE_CLASSNAME as Q, MEDIUM_SCALE_MODE_CLASSNAME as R, type ScaleMode as S, TEXT_TRANSFORM_PREFIX as T, type UniversalTokensConfig as U, LARGE_SCALE_MODE_CLASSNAME as V, XLARGE_SCALE_MODE_CLASSNAME as W, XSMALL_SCALE_MODE_CLASSNAME as X, XXLARGE_SCALE_MODE_CLASSNAME as Y, XXXLARGE_SCALE_MODE_CLASSNAME as Z, DEFAULT_COLOR_MODE_CLASSNAME as _, type ColorsConfig as a, type FontFamilyConfig as a$, BUTTON_CSS_VAR_MAP as a0, ICON_BUTTON_CSS_VAR_MAP as a1, PSEUDO_STYLE_SELECTOR_MAP as a2, FONT_DECLARATIONS_MAP as a3, type AlwaysPalette as a4, type AlwaysPaletteAlias as a5, type Animation as a6, type AriaAttribute as a7, type AvatarShape as a8, type AvatarSize as a9, type ButtonSpectrumColor as aA, type ButtonState as aB, type ButtonStateConfig as aC, type ButtonStateEffectConfig as aD, type ButtonVariant as aE, type ButtonVariantConfig as aF, type ColorModeConfig as aG, type ColorModeForApp as aH, type CorePalette as aI, type CorePaletteAlias as aJ, type CustomSizingStyleProps as aK, type DataAttribute as aL, type Display as aM, type Flex as aN, type FlexAlignContent as aO, type FlexAlignItems as aP, type FlexAlignSelf as aQ, type FlexBasis as aR, type FlexDirection as aS, type FlexGrow as aT, type FlexJustifyContent as aU, type FlexShrink as aV, type FlexStyleProps as aW, type FlexWrap as aX, type FontAlias as aY, type FontCssVar as aZ, type FontFamilyCDNUrl as a_, type AvatarSizeConfig as aa, type BackgroundColor as ab, type BackgroundPalette as ac, type BackgroundPaletteAlias as ad, type BackgroundStyleProps as ae, type BorderRadius as af, type BorderRadiusConfig as ag, type BorderStyleProps as ah, type BorderWidth as ai, type BorderWidthConfig as aj, type BoxShadowConfig as ak, type ButtonBaseConfig as al, type ButtonClassName as am, type ButtonColorConfig as an, type ButtonColorEffect as ao, type ButtonColorEffectConfig as ap, type ButtonKind as aq, type ButtonMotionEffect as ar, type ButtonMotionProperty as as, type ButtonMotionPropertyConfig as at, type ButtonPalette as au, type ButtonPaletteColor as av, type ButtonPaletteConfig as aw, type ButtonSize as ax, type ButtonSizeConfig as ay, type ButtonSizeProperty as az, type HueStep as b, type FontSize as b0, type FontSizeConfig as b1, type FontType as b2, type FontWeightDescriptive as b3, type ForegroundColor as b4, type ForegroundPalette as b5, type ForegroundPaletteAlias as b6, type HighContrastMode as b7, type IconButtonClassName as b8, type IconButtonConfig as b9, type ScaleModeForApp as bA, type SpacingAlias as bB, type SpacingConfig as bC, type SpacingStyleProps as bD, type SpectrumColor as bE, type SpectrumConfig as bF, type StateStyleProps as bG, type StyleProps as bH, type TextProperty as bI, type TextStyleProps as bJ, type TextTransform as bK, type TextTransformConfig as bL, type TextVariant as bM, type TransitionDelay as bN, type TransitionDuration as bO, type TransitionTiming as bP, type TShirtSize as bQ, type TShirtSizeCommon as bR, type UdsCssVar as bS, type UniversalAvatarProps as bT, type UniversalTextInputProps as bU, type IconButtonDefaultsConfig as ba, type IconButtonSize as bb, type IconSizeConfig as bc, type ImageStyleProps as bd, type LayoutStyleProps as be, type LetterSpacing as bf, type LineClampAlias as bg, type LineColor as bh, type LineHeight as bi, type LineHeightConfig as bj, type LinePalette as bk, type LinePaletteAlias as bl, type Modes as bm, type MotionCssVar as bn, type MotionSpringConfig as bo, type MotionVariantValues as bp, type Overflow as bq, type Palette as br, type PaletteValue as bs, type PlatformMode as bt, type Position as bu, type PropertyToPaletteAliasMap as bv, type RegionMode as bw, type ScaleConfig as bx, type ScaleEffectMap as by, type ScaleModeConfig as bz, type PaletteConfig as c, type FontWeightNumeric as d, type UniversalButtonProps as e, type UniversalIconButtonProps as f, type MotionVariantSpeed as g, type ButtonClassMap as h, type ButtonColorProperty as i, type ButtonColorPropertyConfig as j, type MotionSpringConfigOptions as k, type MotionConfig as l, type FontID as m, type FontDeclarationConfig as n, type FontConfig as o, type UniversalBoxProps as p, type UniversalStackProps as q, type UniversalIconProps as r, type UniversalImageProps as s, type UniversalPressableProps as t, type UniversalTextProps as u, alwaysPalette as v, UDS_PREFIX as w, BORDER_RADIUS_PREFIX as x, BORDER_WIDTH_PREFIX as y, FONT_FAMILY_PREFIX as z };