@yahoo/uds 0.5.6 → 0.5.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. package/cli/utils/purgeCSS.test.ts +1 -0
  2. package/cli/utils/setupConfigWorker.ts +12 -1
  3. package/dist/{Image.native-t6JVy3qi.d.cts → Image.native-No-SNzS_.d.cts} +1 -1
  4. package/dist/{Image.native-B7g_JqfQ.d.ts → Image.native-taa2jsQc.d.ts} +1 -1
  5. package/dist/{VStack-DoQaz7yf.d.cts → VStack-B4TMNdfk.d.cts} +1 -1
  6. package/dist/{VStack-BA1lcm0p.d.ts → VStack-pgMJmuKn.d.ts} +1 -1
  7. package/dist/experimental/index.cjs +4 -4
  8. package/dist/experimental/index.d.cts +2 -2
  9. package/dist/experimental/index.d.ts +2 -2
  10. package/dist/experimental/index.js +3 -3
  11. package/dist/experimental/index.native.cjs +1 -1
  12. package/dist/experimental/index.native.d.cts +4 -4
  13. package/dist/experimental/index.native.d.ts +4 -4
  14. package/dist/experimental/index.native.js +1 -1
  15. package/dist/fixtures.cjs +8 -7
  16. package/dist/fixtures.d.ts +18 -18
  17. package/dist/fixtures.js +8 -7
  18. package/dist/index.cjs +2 -2
  19. package/dist/index.d.cts +18 -15
  20. package/dist/index.d.ts +18 -15
  21. package/dist/index.js +3 -3
  22. package/dist/index.native-BzvT-a_y.d.ts +317 -0
  23. package/dist/index.native-WZqIALTD.d.cts +317 -0
  24. package/dist/index.native.cjs +1 -1
  25. package/dist/index.native.d.cts +38 -8
  26. package/dist/index.native.d.ts +38 -8
  27. package/dist/index.native.js +1 -1
  28. package/dist/metafile-cjs.json +1 -1
  29. package/dist/metafile-esm.json +1 -1
  30. package/dist/tailwind/plugin.cjs +1 -1
  31. package/dist/tailwind/plugin.d.cts +3 -3
  32. package/dist/tailwind/plugin.d.ts +3 -3
  33. package/dist/tailwind/plugin.js +3 -3
  34. package/dist/tailwind/purger.cjs +2 -2
  35. package/dist/tailwind/purger.js +2 -2
  36. package/dist/tailwind/tsMorph.cjs +1 -1
  37. package/dist/tailwind/tsMorph.js +2 -2
  38. package/dist/tokens/index.cjs +1 -1
  39. package/dist/tokens/index.d.cts +336 -7
  40. package/dist/tokens/index.d.ts +336 -7
  41. package/dist/tokens/index.js +2 -2
  42. package/dist/tokens/index.native.cjs +1 -1
  43. package/dist/tokens/index.native.d.cts +2 -2
  44. package/dist/tokens/index.native.d.ts +2 -2
  45. package/dist/tokens/index.native.js +1 -1
  46. package/dist/tokens/parseTokens.cjs +1 -1
  47. package/dist/tokens/parseTokens.d.cts +4 -4
  48. package/dist/tokens/parseTokens.d.ts +4 -4
  49. package/dist/tokens/parseTokens.js +1 -1
  50. package/dist/{types-yd5VT3UG.d.cts → types-CHw8YXrX.d.cts} +67 -7
  51. package/dist/{types-yd5VT3UG.d.ts → types-CHw8YXrX.d.ts} +67 -7
  52. package/dist/{types-Dg9w4-q2.d.cts → types-FhFpiSwO.d.cts} +67 -7
  53. package/dist/{types-Dg9w4-q2.d.ts → types-FhFpiSwO.d.ts} +67 -7
  54. package/package.json +1 -1
  55. package/dist/index.native-Cl1NmAGq.d.ts +0 -15
  56. package/dist/index.native-axhnucpt.d.cts +0 -15
@@ -1,4 +1,4 @@
1
- import { U as UniversalTokensConfig, C as ColorMode, S as ScaleMode, a as ColorsConfig, H as Hue, b as HueStep, c as CorePaletteAlias, B as BackgroundPaletteAlias, F as ForegroundPaletteAlias, L as LinePaletteAlias, d as FontWeightConfig, e as FontWeightNumeric, f as FontFamilyGlobalConfig } from '../types-Dg9w4-q2.cjs';
1
+ import { U as UniversalTokensConfig, C as ColorMode, S as ScaleMode, a as ColorsConfig, H as Hue, b as HueStep, B as BackgroundPaletteAlias, c as CorePaletteAlias, F as ForegroundPaletteAlias, L as LinePaletteAlias, d as FontWeightConfig, e as FontWeightNumeric, f as FontFamilyGlobalConfig } from '../types-FhFpiSwO.cjs';
2
2
  import 'react';
3
3
 
4
4
  declare function transformColors(colors: ColorsConfig): {
@@ -7,8 +7,8 @@ declare function transformColors(colors: ColorsConfig): {
7
7
  tailwindConfig: {
8
8
  spectrum: Record<Hue, Record<HueStep, string>>;
9
9
  palette: {
10
- core: Record<CorePaletteAlias, string>;
11
10
  background: Record<BackgroundPaletteAlias, string>;
11
+ core: Record<CorePaletteAlias, string>;
12
12
  foreground: Record<ForegroundPaletteAlias, string>;
13
13
  line: Record<LinePaletteAlias, string>;
14
14
  };
@@ -18,15 +18,15 @@ declare function transformFontWeight(config: FontWeightConfig): {
18
18
  _vars: Record<string, string>;
19
19
  _raw: FontWeightConfig;
20
20
  tailwindConfig: {
21
- medium: FontWeightNumeric;
22
21
  thin: FontWeightNumeric;
22
+ medium: FontWeightNumeric;
23
23
  black: FontWeightNumeric;
24
24
  light: FontWeightNumeric;
25
25
  extralight: FontWeightNumeric;
26
+ regular: FontWeightNumeric;
26
27
  semibold: FontWeightNumeric;
27
28
  bold: FontWeightNumeric;
28
29
  extrabold: FontWeightNumeric;
29
- regular: FontWeightNumeric;
30
30
  };
31
31
  };
32
32
  declare function transformString<T extends Record<string, string>>(prefix: string, config: T, transformValue?: (value: string) => string): {
@@ -1,4 +1,4 @@
1
- import { U as UniversalTokensConfig, C as ColorMode, S as ScaleMode, a as ColorsConfig, H as Hue, b as HueStep, c as CorePaletteAlias, B as BackgroundPaletteAlias, F as ForegroundPaletteAlias, L as LinePaletteAlias, d as FontWeightConfig, e as FontWeightNumeric, f as FontFamilyGlobalConfig } from '../types-Dg9w4-q2.js';
1
+ import { U as UniversalTokensConfig, C as ColorMode, S as ScaleMode, a as ColorsConfig, H as Hue, b as HueStep, B as BackgroundPaletteAlias, c as CorePaletteAlias, F as ForegroundPaletteAlias, L as LinePaletteAlias, d as FontWeightConfig, e as FontWeightNumeric, f as FontFamilyGlobalConfig } from '../types-FhFpiSwO.js';
2
2
  import 'react';
3
3
 
4
4
  declare function transformColors(colors: ColorsConfig): {
@@ -7,8 +7,8 @@ declare function transformColors(colors: ColorsConfig): {
7
7
  tailwindConfig: {
8
8
  spectrum: Record<Hue, Record<HueStep, string>>;
9
9
  palette: {
10
- core: Record<CorePaletteAlias, string>;
11
10
  background: Record<BackgroundPaletteAlias, string>;
11
+ core: Record<CorePaletteAlias, string>;
12
12
  foreground: Record<ForegroundPaletteAlias, string>;
13
13
  line: Record<LinePaletteAlias, string>;
14
14
  };
@@ -18,15 +18,15 @@ declare function transformFontWeight(config: FontWeightConfig): {
18
18
  _vars: Record<string, string>;
19
19
  _raw: FontWeightConfig;
20
20
  tailwindConfig: {
21
- medium: FontWeightNumeric;
22
21
  thin: FontWeightNumeric;
22
+ medium: FontWeightNumeric;
23
23
  black: FontWeightNumeric;
24
24
  light: FontWeightNumeric;
25
25
  extralight: FontWeightNumeric;
26
+ regular: FontWeightNumeric;
26
27
  semibold: FontWeightNumeric;
27
28
  bold: FontWeightNumeric;
28
29
  extrabold: FontWeightNumeric;
29
- regular: FontWeightNumeric;
30
30
  };
31
31
  };
32
32
  declare function transformString<T extends Record<string, string>>(prefix: string, config: T, transformValue?: (value: string) => string): {
@@ -1,2 +1,2 @@
1
- /*! © 2024 Yahoo, Inc. UDS v0.5.6 */
1
+ /*! © 2024 Yahoo, Inc. UDS v0.5.8 */
2
2
  var t={thin:"100",extralight:"200",light:"300",regular:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},r="uds",o=`${r}-spectrum-color`,e=`${r}-font`,n=`${r}-icon-size`,i=`${r}-avatar-size`,a=`${r}-border-radius`,s=`${r}-border-width`,c=`${r}-font-size`,f=`${r}-line-height`,$=`${r}-font-weight`,l=`${r}-text-transform`;function u(t){return Object.entries(t)}function d(t,r){return Object.keys(t).reduce(((o,e,n)=>(o[e]=r(t[e],e,n),o)),{})}function g(t){const{palette:e,spectrum:n}=t,i={},a={spectrum:{},palette:{}};for(const[t,r]of u(n))for(const[e,n]of u(r)){const r=`--${o}-${`${t}-${e}`}`;a.spectrum[t]||(a.spectrum[t]={}),a.spectrum[t][e]=`rgb(var(${r}))`,i[r]=n}return u(e).forEach((([t,e])=>{for(const[n,{hue:s,step:c,opacity:f}]of Object.entries(e)){t in a.palette||(a.palette[t]={});const e=`--${r}-${t}-color-${n}`;i[e]=`var(--${o}-${s}-${c})`,a.palette[t][n]=f?`rgb(var(${e}) / ${f})`:`rgb(var(${e}))`}})),{_vars:i,_raw:t,tailwindConfig:a}}function v(r){const o={},e={};for(const[n,i="regular"]of u(r)){const r=`--${$}-${n}`,a=t[i];o[r]=a,e[n]=`var(${r})`}return{_vars:o,_raw:r,tailwindConfig:{...t,...e}}}function b(t,r,o){const e={},n={};for(const[i,a]of u(r)){const r=`--${t}-${i}`,s=o?o(a):a;e[r]=s,n[i]=`var(${r})`}return{_vars:e,_raw:r,tailwindConfig:n}}function h(t,r){if(!r)return{_vars:{},_raw:{},tailwindConfig:{}};const o={},e={};for(const[n,i]of u(r)){const r=`--${t}-${n}`,a=`${i}px`;o[r]=a,e[n]=`var(${r})`}return{_vars:o,_raw:r,tailwindConfig:e}}function m(t){return d(t,((t,r)=>{const{fallbacks:o=[]}=t??{};return[`var(--${e}-${r})`,...o]}))}function p(t){const{colorMode:r,scaleMode:o,fontFamily:$}=t;return{...t,colorMode:{light:g(r.light),dark:g(r.dark)},scaleMode:d(o,(({borderRadius:t,borderWidth:r,fontSize:o,lineHeight:$,fontFamily:u,fontWeight:d,textTransform:g,avatarSizes:m,iconSizes:p})=>({fontFamily:b(e,u,(t=>`var(--${e}-${t})`)),fontSize:h(c,o),fontWeight:v(d),lineHeight:h(f,$),textTransform:b(l,g),borderRadius:h(a,t),borderWidth:h(s,r),avatarSizes:h(i,m),iconSizes:h(n,p)}))),fontFamily:m($)}}export{p as parseTokens};
@@ -8,6 +8,7 @@ declare const alwaysPalette: {
8
8
  white: string;
9
9
  black: string;
10
10
  transparent: string;
11
+ current: string;
11
12
  };
12
13
 
13
14
  type PaletteType = keyof PaletteConfig;
@@ -54,14 +55,16 @@ type FontFamilyConfig = Record<TextVariant, FontFamilyGlobalAlias>;
54
55
  type FontWeightConfig = Record<TextVariant, FontWeightDescriptive>;
55
56
  type LineHeightConfig = Record<TextVariant, LineHeight>;
56
57
  type ConfigurableTextProperty = 'fontFamily' | 'fontSize' | 'fontWeight' | 'lineHeight' | 'textTransform';
57
- type AvatarSize = 's' | 'm' | 'l';
58
+ type TShirtSize = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
59
+ type TShirtSizeCommon = Extract<TShirtSize, 'sm' | 'md' | 'lg'>;
60
+ type AvatarSize = TShirtSizeCommon;
58
61
  type AvatarSizeConfig = Record<AvatarSize, number>;
59
62
  type AvatarShape = BorderRadius;
60
- type IconSize = 'sm' | 'md' | 'lg';
63
+ type IconSize = TShirtSizeCommon;
61
64
  type IconSizeConfig = Record<IconSize, number>;
62
65
  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';
63
66
  type SpacingConfig = Record<SpacingAlias, number>;
64
- type BorderRadius = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
67
+ type BorderRadius = TShirtSize;
65
68
  type BorderRadiusConfig = Record<BorderRadius, number>;
66
69
  type BorderWidth = 'none' | 'thin' | 'medium' | 'thick';
67
70
  type BorderWidthConfig = Record<BorderWidth, number>;
@@ -97,10 +100,68 @@ type ScaleConfig = {
97
100
  textTransform: TextTransformConfig;
98
101
  };
99
102
  type ScaleModeConfig = Record<ScaleMode, ScaleConfig>;
103
+ type ButtonSpectrumColor = {
104
+ type: 'spectrum';
105
+ value: SpectrumColor;
106
+ };
107
+ type ButtonSize = TShirtSizeCommon;
108
+ type ButtonCategory = CorePaletteAlias;
109
+ type ButtonVariant2 = 'primary' | 'secondary' | 'tertiary';
110
+ type ButtonState = 'rest' | 'hover' | 'pressed';
111
+ type ButtonKind = 'fill' | 'outline' | 'ghost';
112
+ type ButtonBackgroundColor = {
113
+ type: 'palette';
114
+ value: BackgroundColor;
115
+ } | ButtonSpectrumColor;
116
+ type ButtonForegroundColor = {
117
+ type: 'palette';
118
+ value: ForegroundColor;
119
+ } | ButtonSpectrumColor;
120
+ type ButtonBorderColor = {
121
+ type: 'palette';
122
+ value: LineColor;
123
+ } | ButtonSpectrumColor;
124
+ interface ButtonConfig {
125
+ defaults: {
126
+ category: ButtonCategory;
127
+ variant: ButtonVariant2;
128
+ size: ButtonSize;
129
+ };
130
+ size: {
131
+ [size in ButtonSize]: {
132
+ spacingHorizontal: SpacingAlias;
133
+ spacingVertical: SpacingAlias;
134
+ gap: SpacingAlias;
135
+ iconSize: IconSize;
136
+ textVariant: TextVariant;
137
+ };
138
+ };
139
+ category: {
140
+ [category in ButtonCategory]: {
141
+ [variant in ButtonVariant2]: {
142
+ kind: ButtonKind;
143
+ state: {
144
+ [state in ButtonState]: state extends 'rest' ? {
145
+ borderWidth: BorderWidth;
146
+ borderRadius: BorderRadius;
147
+ backgroundColor: ButtonBackgroundColor;
148
+ color: ButtonForegroundColor;
149
+ borderColor: ButtonBorderColor;
150
+ } : {
151
+ backgroundColor: ButtonBackgroundColor;
152
+ color: ButtonForegroundColor;
153
+ borderColor: ButtonBorderColor;
154
+ };
155
+ };
156
+ };
157
+ };
158
+ };
159
+ }
100
160
  type UniversalTokensConfig = {
101
161
  colorMode: ColorModeConfig;
102
162
  scaleMode: ScaleModeConfig;
103
163
  fontFamily: FontFamilyGlobalConfig;
164
+ button?: ButtonConfig;
104
165
  };
105
166
  type PlatformMode = 'web' | 'ios' | 'android';
106
167
  type ColorMode = 'light' | 'dark';
@@ -303,12 +364,11 @@ interface UniversalPressableProps extends UniversalBoxProps {
303
364
  onPress?: () => void;
304
365
  }
305
366
  type ButtonVariant = CorePaletteAlias | `${CorePaletteAlias}-outline` | `${CorePaletteAlias}-ghost` | 'primary-ghost' | 'primary-outline' | 'secondary';
306
- type ButtonSize = 's' | 'm' | 'l';
307
367
  interface UniversalIconButtonProps {
308
368
  /** The variant of the button. */
309
369
  variant?: ButtonVariant;
310
370
  /** The size of the button. */
311
- size?: ButtonSize;
371
+ size?: UniversalIconProps['size'];
312
372
  /** Icon to render from the icons package. */
313
373
  name: SvgIcon;
314
374
  /** Color for the icon. */
@@ -322,7 +382,7 @@ interface UniversalButtonProps {
322
382
  variant?: ButtonVariant;
323
383
  /**
324
384
  * The size of the button
325
- * @default 'm'
385
+ * @default 'md'
326
386
  */
327
387
  size?: ButtonSize;
328
388
  /** The name of the icon to be displayed at the start of the button. */
@@ -362,4 +422,4 @@ interface UniversalTextInputProps {
362
422
  spacingHorizontal?: SpacingAlias;
363
423
  }
364
424
 
365
- export { type FlexAlignItems as $, type AvatarSizeConfig as A, type BorderRadiusConfig as B, type ColorModeForApp as C, type BackgroundStyleProps as D, type BorderRadius as E, type FontFamilyConfig as F, type BorderStyleProps as G, type BorderWidth as H, type IconSizeConfig as I, type BoxShadowConfig as J, type ButtonSize as K, type LineHeightConfig as L, type Modes as M, type ButtonVariant as N, type ColorModeConfig as O, type ColorsConfig as P, type ConfigurableTextProperty as Q, type CorePalette as R, type ScaleModeForApp as S, type TextTransformConfig as T, type UniversalAvatarProps as U, type CorePaletteAlias as V, type CustomSizingStyleProps as W, type DataAttribute as X, type Display as Y, type Flex as Z, type FlexAlignContent as _, type UniversalButtonProps as a, type FlexAlignSelf as a0, type FlexBasis as a1, type FlexDirection as a2, type FlexGrow as a3, type FlexJustifyContent as a4, type FlexShrink as a5, type FlexStyleProps as a6, type FlexWrap as a7, type FontFamilyGlobalAlias as a8, type FontSize as a9, type ScaleModeConfig as aA, type SpacingAlias as aB, type SpacingConfig as aC, type SpacingStyleProps as aD, type SpectrumColor as aE, type SpectrumConfig as aF, type StateStyleProps as aG, type TextStyleProps as aH, type TextTransform as aI, type TextVariant as aJ, type TransitionDelay as aK, type TransitionDuration as aL, type TransitionTiming as aM, type UniversalTextInputProps as aN, type FontWeightDescriptive as aa, type FontWeightNumeric as ab, type ForegroundColor as ac, type ForegroundPalette as ad, type ForegroundPaletteAlias as ae, type HighContrastMode as af, type Hue as ag, type HueStep as ah, type IconSize as ai, type ImageStyleProps as aj, type LayoutStyleProps as ak, type LetterSpacing as al, type LineClampAlias as am, type LineColor as an, type LineHeight as ao, type LinePalette as ap, type LinePaletteAlias as aq, type Overflow as ar, type Palette as as, type PaletteConfig as at, type PaletteType as au, type PaletteValue as av, type PlatformMode as aw, type Position as ax, type RegionMode as ay, type ScaleConfig as az, type UniversalPressableProps as b, type UniversalIconButtonProps as c, type UniversalImageProps as d, type UniversalBoxProps as e, type UniversalStackProps as f, type UniversalTextProps as g, type UniversalIconProps as h, type ColorMode as i, type ScaleMode as j, type UniversalTokensConfig as k, type StyleProps as l, type BorderWidthConfig as m, type FontSizeConfig as n, type FontWeightConfig as o, type FontFamilyGlobalConfig as p, alwaysPalette as q, type AlwaysPalette as r, type AlwaysPaletteAlias as s, type Animation as t, type AriaAttribute as u, type AvatarShape as v, type AvatarSize as w, type BackgroundColor as x, type BackgroundPalette as y, type BackgroundPaletteAlias as z };
425
+ export { type Display as $, type AvatarSizeConfig as A, type ButtonConfig as B, type ColorModeForApp as C, type BackgroundPaletteAlias as D, type BackgroundStyleProps as E, type FontFamilyConfig as F, type BorderRadius as G, type BorderStyleProps as H, type IconSizeConfig as I, type BorderWidth as J, type BoxShadowConfig as K, type LineHeightConfig as L, type Modes as M, type ButtonCategory as N, type ButtonSize as O, type ButtonVariant as P, type ButtonVariant2 as Q, type ColorModeConfig as R, type ScaleModeForApp as S, type TextTransformConfig as T, type UniversalAvatarProps as U, type ColorsConfig as V, type ConfigurableTextProperty as W, type CorePalette as X, type CorePaletteAlias as Y, type CustomSizingStyleProps as Z, type DataAttribute as _, type UniversalButtonProps as a, type Flex as a0, type FlexAlignContent as a1, type FlexAlignItems as a2, type FlexAlignSelf as a3, type FlexBasis as a4, type FlexDirection as a5, type FlexGrow as a6, type FlexJustifyContent as a7, type FlexShrink as a8, type FlexStyleProps as a9, type Position as aA, type RegionMode as aB, type ScaleConfig as aC, type ScaleModeConfig as aD, type SpacingAlias as aE, type SpacingConfig as aF, type SpacingStyleProps as aG, type SpectrumColor as aH, type SpectrumConfig as aI, type StateStyleProps as aJ, type TextStyleProps as aK, type TextTransform as aL, type TextVariant as aM, type TransitionDelay as aN, type TransitionDuration as aO, type TransitionTiming as aP, type TShirtSize as aQ, type TShirtSizeCommon as aR, type UniversalTextInputProps as aS, type FlexWrap as aa, type FontFamilyGlobalAlias as ab, type FontSize as ac, type FontWeightDescriptive as ad, type FontWeightNumeric as ae, type ForegroundColor as af, type ForegroundPalette as ag, type ForegroundPaletteAlias as ah, type HighContrastMode as ai, type Hue as aj, type HueStep as ak, type IconSize as al, type ImageStyleProps as am, type LayoutStyleProps as an, type LetterSpacing as ao, type LineClampAlias as ap, type LineColor as aq, type LineHeight as ar, type LinePalette as as, type LinePaletteAlias as at, type Overflow as au, type Palette as av, type PaletteConfig as aw, type PaletteType as ax, type PaletteValue as ay, type PlatformMode as az, type UniversalPressableProps as b, type UniversalIconButtonProps as c, type UniversalImageProps as d, type UniversalBoxProps as e, type UniversalStackProps as f, type UniversalTextProps as g, type UniversalIconProps as h, type ColorMode as i, type ScaleMode as j, type UniversalTokensConfig as k, type StyleProps as l, type BorderRadiusConfig as m, type BorderWidthConfig as n, type FontSizeConfig as o, type FontWeightConfig as p, type FontFamilyGlobalConfig as q, alwaysPalette as r, type AlwaysPalette as s, type AlwaysPaletteAlias as t, type Animation as u, type AriaAttribute as v, type AvatarShape as w, type AvatarSize as x, type BackgroundColor as y, type BackgroundPalette as z };
@@ -8,6 +8,7 @@ declare const alwaysPalette: {
8
8
  white: string;
9
9
  black: string;
10
10
  transparent: string;
11
+ current: string;
11
12
  };
12
13
 
13
14
  type PaletteType = keyof PaletteConfig;
@@ -54,14 +55,16 @@ type FontFamilyConfig = Record<TextVariant, FontFamilyGlobalAlias>;
54
55
  type FontWeightConfig = Record<TextVariant, FontWeightDescriptive>;
55
56
  type LineHeightConfig = Record<TextVariant, LineHeight>;
56
57
  type ConfigurableTextProperty = 'fontFamily' | 'fontSize' | 'fontWeight' | 'lineHeight' | 'textTransform';
57
- type AvatarSize = 's' | 'm' | 'l';
58
+ type TShirtSize = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
59
+ type TShirtSizeCommon = Extract<TShirtSize, 'sm' | 'md' | 'lg'>;
60
+ type AvatarSize = TShirtSizeCommon;
58
61
  type AvatarSizeConfig = Record<AvatarSize, number>;
59
62
  type AvatarShape = BorderRadius;
60
- type IconSize = 'sm' | 'md' | 'lg';
63
+ type IconSize = TShirtSizeCommon;
61
64
  type IconSizeConfig = Record<IconSize, number>;
62
65
  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';
63
66
  type SpacingConfig = Record<SpacingAlias, number>;
64
- type BorderRadius = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
67
+ type BorderRadius = TShirtSize;
65
68
  type BorderRadiusConfig = Record<BorderRadius, number>;
66
69
  type BorderWidth = 'none' | 'thin' | 'medium' | 'thick';
67
70
  type BorderWidthConfig = Record<BorderWidth, number>;
@@ -97,10 +100,68 @@ type ScaleConfig = {
97
100
  textTransform: TextTransformConfig;
98
101
  };
99
102
  type ScaleModeConfig = Record<ScaleMode, ScaleConfig>;
103
+ type ButtonSpectrumColor = {
104
+ type: 'spectrum';
105
+ value: SpectrumColor;
106
+ };
107
+ type ButtonSize = TShirtSizeCommon;
108
+ type ButtonCategory = CorePaletteAlias;
109
+ type ButtonVariant2 = 'primary' | 'secondary' | 'tertiary';
110
+ type ButtonState = 'rest' | 'hover' | 'pressed';
111
+ type ButtonKind = 'fill' | 'outline' | 'ghost';
112
+ type ButtonBackgroundColor = {
113
+ type: 'palette';
114
+ value: BackgroundColor;
115
+ } | ButtonSpectrumColor;
116
+ type ButtonForegroundColor = {
117
+ type: 'palette';
118
+ value: ForegroundColor;
119
+ } | ButtonSpectrumColor;
120
+ type ButtonBorderColor = {
121
+ type: 'palette';
122
+ value: LineColor;
123
+ } | ButtonSpectrumColor;
124
+ interface ButtonConfig {
125
+ defaults: {
126
+ category: ButtonCategory;
127
+ variant: ButtonVariant2;
128
+ size: ButtonSize;
129
+ };
130
+ size: {
131
+ [size in ButtonSize]: {
132
+ spacingHorizontal: SpacingAlias;
133
+ spacingVertical: SpacingAlias;
134
+ gap: SpacingAlias;
135
+ iconSize: IconSize;
136
+ textVariant: TextVariant;
137
+ };
138
+ };
139
+ category: {
140
+ [category in ButtonCategory]: {
141
+ [variant in ButtonVariant2]: {
142
+ kind: ButtonKind;
143
+ state: {
144
+ [state in ButtonState]: state extends 'rest' ? {
145
+ borderWidth: BorderWidth;
146
+ borderRadius: BorderRadius;
147
+ backgroundColor: ButtonBackgroundColor;
148
+ color: ButtonForegroundColor;
149
+ borderColor: ButtonBorderColor;
150
+ } : {
151
+ backgroundColor: ButtonBackgroundColor;
152
+ color: ButtonForegroundColor;
153
+ borderColor: ButtonBorderColor;
154
+ };
155
+ };
156
+ };
157
+ };
158
+ };
159
+ }
100
160
  type UniversalTokensConfig = {
101
161
  colorMode: ColorModeConfig;
102
162
  scaleMode: ScaleModeConfig;
103
163
  fontFamily: FontFamilyGlobalConfig;
164
+ button?: ButtonConfig;
104
165
  };
105
166
  type PlatformMode = 'web' | 'ios' | 'android';
106
167
  type ColorMode = 'light' | 'dark';
@@ -303,12 +364,11 @@ interface UniversalPressableProps extends UniversalBoxProps {
303
364
  onPress?: () => void;
304
365
  }
305
366
  type ButtonVariant = CorePaletteAlias | `${CorePaletteAlias}-outline` | `${CorePaletteAlias}-ghost` | 'primary-ghost' | 'primary-outline' | 'secondary';
306
- type ButtonSize = 's' | 'm' | 'l';
307
367
  interface UniversalIconButtonProps {
308
368
  /** The variant of the button. */
309
369
  variant?: ButtonVariant;
310
370
  /** The size of the button. */
311
- size?: ButtonSize;
371
+ size?: UniversalIconProps['size'];
312
372
  /** Icon to render from the icons package. */
313
373
  name: SvgIcon;
314
374
  /** Color for the icon. */
@@ -322,7 +382,7 @@ interface UniversalButtonProps {
322
382
  variant?: ButtonVariant;
323
383
  /**
324
384
  * The size of the button
325
- * @default 'm'
385
+ * @default 'md'
326
386
  */
327
387
  size?: ButtonSize;
328
388
  /** The name of the icon to be displayed at the start of the button. */
@@ -362,4 +422,4 @@ interface UniversalTextInputProps {
362
422
  spacingHorizontal?: SpacingAlias;
363
423
  }
364
424
 
365
- export { type FlexAlignItems as $, type AvatarSizeConfig as A, type BorderRadiusConfig as B, type ColorModeForApp as C, type BackgroundStyleProps as D, type BorderRadius as E, type FontFamilyConfig as F, type BorderStyleProps as G, type BorderWidth as H, type IconSizeConfig as I, type BoxShadowConfig as J, type ButtonSize as K, type LineHeightConfig as L, type Modes as M, type ButtonVariant as N, type ColorModeConfig as O, type ColorsConfig as P, type ConfigurableTextProperty as Q, type CorePalette as R, type ScaleModeForApp as S, type TextTransformConfig as T, type UniversalAvatarProps as U, type CorePaletteAlias as V, type CustomSizingStyleProps as W, type DataAttribute as X, type Display as Y, type Flex as Z, type FlexAlignContent as _, type UniversalButtonProps as a, type FlexAlignSelf as a0, type FlexBasis as a1, type FlexDirection as a2, type FlexGrow as a3, type FlexJustifyContent as a4, type FlexShrink as a5, type FlexStyleProps as a6, type FlexWrap as a7, type FontFamilyGlobalAlias as a8, type FontSize as a9, type ScaleModeConfig as aA, type SpacingAlias as aB, type SpacingConfig as aC, type SpacingStyleProps as aD, type SpectrumColor as aE, type SpectrumConfig as aF, type StateStyleProps as aG, type TextStyleProps as aH, type TextTransform as aI, type TextVariant as aJ, type TransitionDelay as aK, type TransitionDuration as aL, type TransitionTiming as aM, type UniversalTextInputProps as aN, type FontWeightDescriptive as aa, type FontWeightNumeric as ab, type ForegroundColor as ac, type ForegroundPalette as ad, type ForegroundPaletteAlias as ae, type HighContrastMode as af, type Hue as ag, type HueStep as ah, type IconSize as ai, type ImageStyleProps as aj, type LayoutStyleProps as ak, type LetterSpacing as al, type LineClampAlias as am, type LineColor as an, type LineHeight as ao, type LinePalette as ap, type LinePaletteAlias as aq, type Overflow as ar, type Palette as as, type PaletteConfig as at, type PaletteType as au, type PaletteValue as av, type PlatformMode as aw, type Position as ax, type RegionMode as ay, type ScaleConfig as az, type UniversalPressableProps as b, type UniversalIconButtonProps as c, type UniversalImageProps as d, type UniversalBoxProps as e, type UniversalStackProps as f, type UniversalTextProps as g, type UniversalIconProps as h, type ColorMode as i, type ScaleMode as j, type UniversalTokensConfig as k, type StyleProps as l, type BorderWidthConfig as m, type FontSizeConfig as n, type FontWeightConfig as o, type FontFamilyGlobalConfig as p, alwaysPalette as q, type AlwaysPalette as r, type AlwaysPaletteAlias as s, type Animation as t, type AriaAttribute as u, type AvatarShape as v, type AvatarSize as w, type BackgroundColor as x, type BackgroundPalette as y, type BackgroundPaletteAlias as z };
425
+ export { type Display as $, type AvatarSizeConfig as A, type ButtonConfig as B, type ColorModeForApp as C, type BackgroundPaletteAlias as D, type BackgroundStyleProps as E, type FontFamilyConfig as F, type BorderRadius as G, type BorderStyleProps as H, type IconSizeConfig as I, type BorderWidth as J, type BoxShadowConfig as K, type LineHeightConfig as L, type Modes as M, type ButtonCategory as N, type ButtonSize as O, type ButtonVariant as P, type ButtonVariant2 as Q, type ColorModeConfig as R, type ScaleModeForApp as S, type TextTransformConfig as T, type UniversalAvatarProps as U, type ColorsConfig as V, type ConfigurableTextProperty as W, type CorePalette as X, type CorePaletteAlias as Y, type CustomSizingStyleProps as Z, type DataAttribute as _, type UniversalButtonProps as a, type Flex as a0, type FlexAlignContent as a1, type FlexAlignItems as a2, type FlexAlignSelf as a3, type FlexBasis as a4, type FlexDirection as a5, type FlexGrow as a6, type FlexJustifyContent as a7, type FlexShrink as a8, type FlexStyleProps as a9, type Position as aA, type RegionMode as aB, type ScaleConfig as aC, type ScaleModeConfig as aD, type SpacingAlias as aE, type SpacingConfig as aF, type SpacingStyleProps as aG, type SpectrumColor as aH, type SpectrumConfig as aI, type StateStyleProps as aJ, type TextStyleProps as aK, type TextTransform as aL, type TextVariant as aM, type TransitionDelay as aN, type TransitionDuration as aO, type TransitionTiming as aP, type TShirtSize as aQ, type TShirtSizeCommon as aR, type UniversalTextInputProps as aS, type FlexWrap as aa, type FontFamilyGlobalAlias as ab, type FontSize as ac, type FontWeightDescriptive as ad, type FontWeightNumeric as ae, type ForegroundColor as af, type ForegroundPalette as ag, type ForegroundPaletteAlias as ah, type HighContrastMode as ai, type Hue as aj, type HueStep as ak, type IconSize as al, type ImageStyleProps as am, type LayoutStyleProps as an, type LetterSpacing as ao, type LineClampAlias as ap, type LineColor as aq, type LineHeight as ar, type LinePalette as as, type LinePaletteAlias as at, type Overflow as au, type Palette as av, type PaletteConfig as aw, type PaletteType as ax, type PaletteValue as ay, type PlatformMode as az, type UniversalPressableProps as b, type UniversalIconButtonProps as c, type UniversalImageProps as d, type UniversalBoxProps as e, type UniversalStackProps as f, type UniversalTextProps as g, type UniversalIconProps as h, type ColorMode as i, type ScaleMode as j, type UniversalTokensConfig as k, type StyleProps as l, type BorderRadiusConfig as m, type BorderWidthConfig as n, type FontSizeConfig as o, type FontWeightConfig as p, type FontFamilyGlobalConfig as q, alwaysPalette as r, type AlwaysPalette as s, type AlwaysPaletteAlias as t, type Animation as u, type AriaAttribute as v, type AvatarShape as w, type AvatarSize as x, type BackgroundColor as y, type BackgroundPalette as z };
@@ -8,6 +8,7 @@ declare const alwaysPalette: {
8
8
  white: string;
9
9
  black: string;
10
10
  transparent: string;
11
+ current: string;
11
12
  };
12
13
 
13
14
  type PaletteType = keyof PaletteConfig;
@@ -54,14 +55,16 @@ type FontFamilyConfig = Record<TextVariant, FontFamilyGlobalAlias>;
54
55
  type FontWeightConfig = Record<TextVariant, FontWeightDescriptive>;
55
56
  type LineHeightConfig = Record<TextVariant, LineHeight>;
56
57
  type ConfigurableTextProperty = 'fontFamily' | 'fontSize' | 'fontWeight' | 'lineHeight' | 'textTransform';
57
- type AvatarSize = 's' | 'm' | 'l';
58
+ type TShirtSize = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
59
+ type TShirtSizeCommon = Extract<TShirtSize, 'sm' | 'md' | 'lg'>;
60
+ type AvatarSize = TShirtSizeCommon;
58
61
  type AvatarSizeConfig = Record<AvatarSize, number>;
59
62
  type AvatarShape = BorderRadius;
60
- type IconSize = 'sm' | 'md' | 'lg';
63
+ type IconSize = TShirtSizeCommon;
61
64
  type IconSizeConfig = Record<IconSize, number>;
62
65
  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';
63
66
  type SpacingConfig = Record<SpacingAlias, number>;
64
- type BorderRadius = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
67
+ type BorderRadius = TShirtSize;
65
68
  type BorderRadiusConfig = Record<BorderRadius, number>;
66
69
  type BorderWidth = 'none' | 'thin' | 'medium' | 'thick';
67
70
  type BorderWidthConfig = Record<BorderWidth, number>;
@@ -97,10 +100,68 @@ type ScaleConfig = {
97
100
  textTransform: TextTransformConfig;
98
101
  };
99
102
  type ScaleModeConfig = Record<ScaleMode, ScaleConfig>;
103
+ type ButtonSpectrumColor = {
104
+ type: 'spectrum';
105
+ value: SpectrumColor;
106
+ };
107
+ type ButtonSize = TShirtSizeCommon;
108
+ type ButtonCategory = CorePaletteAlias;
109
+ type ButtonVariant2 = 'primary' | 'secondary' | 'tertiary';
110
+ type ButtonState = 'rest' | 'hover' | 'pressed';
111
+ type ButtonKind = 'fill' | 'outline' | 'ghost';
112
+ type ButtonBackgroundColor = {
113
+ type: 'palette';
114
+ value: BackgroundColor;
115
+ } | ButtonSpectrumColor;
116
+ type ButtonForegroundColor = {
117
+ type: 'palette';
118
+ value: ForegroundColor;
119
+ } | ButtonSpectrumColor;
120
+ type ButtonBorderColor = {
121
+ type: 'palette';
122
+ value: LineColor;
123
+ } | ButtonSpectrumColor;
124
+ interface ButtonConfig {
125
+ defaults: {
126
+ category: ButtonCategory;
127
+ variant: ButtonVariant2;
128
+ size: ButtonSize;
129
+ };
130
+ size: {
131
+ [size in ButtonSize]: {
132
+ spacingHorizontal: SpacingAlias;
133
+ spacingVertical: SpacingAlias;
134
+ gap: SpacingAlias;
135
+ iconSize: IconSize;
136
+ textVariant: TextVariant;
137
+ };
138
+ };
139
+ category: {
140
+ [category in ButtonCategory]: {
141
+ [variant in ButtonVariant2]: {
142
+ kind: ButtonKind;
143
+ state: {
144
+ [state in ButtonState]: state extends 'rest' ? {
145
+ borderWidth: BorderWidth;
146
+ borderRadius: BorderRadius;
147
+ backgroundColor: ButtonBackgroundColor;
148
+ color: ButtonForegroundColor;
149
+ borderColor: ButtonBorderColor;
150
+ } : {
151
+ backgroundColor: ButtonBackgroundColor;
152
+ color: ButtonForegroundColor;
153
+ borderColor: ButtonBorderColor;
154
+ };
155
+ };
156
+ };
157
+ };
158
+ };
159
+ }
100
160
  type UniversalTokensConfig = {
101
161
  colorMode: ColorModeConfig;
102
162
  scaleMode: ScaleModeConfig;
103
163
  fontFamily: FontFamilyGlobalConfig;
164
+ button?: ButtonConfig;
104
165
  };
105
166
  type PlatformMode = 'web' | 'ios' | 'android';
106
167
  type ColorMode = 'light' | 'dark';
@@ -303,12 +364,11 @@ interface UniversalPressableProps extends UniversalBoxProps {
303
364
  onPress?: () => void;
304
365
  }
305
366
  type ButtonVariant = CorePaletteAlias | `${CorePaletteAlias}-outline` | `${CorePaletteAlias}-ghost` | 'primary-ghost' | 'primary-outline' | 'secondary';
306
- type ButtonSize = 's' | 'm' | 'l';
307
367
  interface UniversalIconButtonProps {
308
368
  /** The variant of the button. */
309
369
  variant?: ButtonVariant;
310
370
  /** The size of the button. */
311
- size?: ButtonSize;
371
+ size?: UniversalIconProps['size'];
312
372
  /** Icon to render from the icons package. */
313
373
  name: SvgIcon;
314
374
  /** Color for the icon. */
@@ -322,7 +382,7 @@ interface UniversalButtonProps {
322
382
  variant?: ButtonVariant;
323
383
  /**
324
384
  * The size of the button
325
- * @default 'm'
385
+ * @default 'md'
326
386
  */
327
387
  size?: ButtonSize;
328
388
  /** The name of the icon to be displayed at the start of the button. */
@@ -362,4 +422,4 @@ interface UniversalTextInputProps {
362
422
  spacingHorizontal?: SpacingAlias;
363
423
  }
364
424
 
365
- export { type FontFamilyGlobalAlias as $, type AlwaysPalette as A, type BackgroundPaletteAlias as B, type ColorMode as C, type ColorModeConfig as D, type ColorModeForApp as E, type ForegroundPaletteAlias as F, type ConfigurableTextProperty as G, type Hue as H, type CorePalette as I, type CustomSizingStyleProps as J, type DataAttribute as K, type LinePaletteAlias as L, type Display as M, type Flex as N, type FlexAlignContent as O, type FlexAlignItems as P, type FlexAlignSelf as Q, type FlexBasis as R, type ScaleMode as S, type FlexDirection as T, type UniversalTokensConfig as U, type FlexGrow as V, type FlexJustifyContent as W, type FlexShrink as X, type FlexStyleProps as Y, type FlexWrap as Z, type FontFamilyConfig as _, type ColorsConfig as a, type FontSize as a0, type FontSizeConfig as a1, type FontWeightDescriptive as a2, type ForegroundColor as a3, type ForegroundPalette as a4, type HighContrastMode as a5, type IconSize as a6, type IconSizeConfig as a7, type ImageStyleProps as a8, type LayoutStyleProps as a9, type TextTransform as aA, type TextTransformConfig as aB, type TextVariant as aC, type TransitionDelay as aD, type TransitionDuration as aE, type TransitionTiming as aF, type UniversalAvatarProps as aG, type UniversalBoxProps as aH, type UniversalButtonProps as aI, type UniversalIconButtonProps as aJ, type UniversalIconProps as aK, type UniversalPressableProps as aL, type UniversalTextInputProps as aM, type UniversalTextProps as aN, type LetterSpacing as aa, type LineClampAlias as ab, type LineColor as ac, type LineHeight as ad, type LineHeightConfig as ae, type LinePalette as af, type Modes as ag, type Overflow as ah, type Palette as ai, type PaletteConfig as aj, type PaletteType as ak, type PaletteValue as al, type PlatformMode as am, type Position as an, type RegionMode as ao, type ScaleConfig as ap, type ScaleModeConfig as aq, type ScaleModeForApp as ar, type SpacingAlias as as, type SpacingConfig as at, type SpacingStyleProps as au, type SpectrumColor as av, type SpectrumConfig as aw, type StateStyleProps as ax, type StyleProps as ay, type TextStyleProps as az, type HueStep as b, type CorePaletteAlias as c, type FontWeightConfig as d, type FontWeightNumeric as e, type FontFamilyGlobalConfig as f, type UniversalStackProps as g, type UniversalImageProps as h, alwaysPalette as i, type AlwaysPaletteAlias as j, type Animation as k, type AriaAttribute as l, type AvatarShape as m, type AvatarSize as n, type AvatarSizeConfig as o, type BackgroundColor as p, type BackgroundPalette as q, type BackgroundStyleProps as r, type BorderRadius as s, type BorderRadiusConfig as t, type BorderStyleProps as u, type BorderWidth as v, type BorderWidthConfig as w, type BoxShadowConfig as x, type ButtonSize as y, type ButtonVariant as z };
425
+ export { type FlexStyleProps as $, type AlwaysPalette as A, type BackgroundPaletteAlias as B, type ColorMode as C, type ButtonSize as D, type ButtonVariant as E, type ForegroundPaletteAlias as F, type ButtonVariant2 as G, type Hue as H, type ColorModeConfig as I, type ColorModeForApp as J, type ConfigurableTextProperty as K, type LinePaletteAlias as L, type CorePalette as M, type CustomSizingStyleProps as N, type DataAttribute as O, type Display as P, type Flex as Q, type FlexAlignContent as R, type ScaleMode as S, type FlexAlignItems as T, type UniversalTokensConfig as U, type FlexAlignSelf as V, type FlexBasis as W, type FlexDirection as X, type FlexGrow as Y, type FlexJustifyContent as Z, type FlexShrink as _, type ColorsConfig as a, type FlexWrap as a0, type FontFamilyConfig as a1, type FontFamilyGlobalAlias as a2, type FontSize as a3, type FontSizeConfig as a4, type FontWeightDescriptive as a5, type ForegroundColor as a6, type ForegroundPalette as a7, type HighContrastMode as a8, type IconSize as a9, type StateStyleProps as aA, type StyleProps as aB, type TextStyleProps as aC, type TextTransform as aD, type TextTransformConfig as aE, type TextVariant as aF, type TransitionDelay as aG, type TransitionDuration as aH, type TransitionTiming as aI, type TShirtSize as aJ, type TShirtSizeCommon as aK, type UniversalAvatarProps as aL, type UniversalBoxProps as aM, type UniversalButtonProps as aN, type UniversalIconButtonProps as aO, type UniversalIconProps as aP, type UniversalPressableProps as aQ, type UniversalTextInputProps as aR, type UniversalTextProps as aS, type IconSizeConfig as aa, type ImageStyleProps as ab, type LayoutStyleProps as ac, type LetterSpacing as ad, type LineClampAlias as ae, type LineColor as af, type LineHeight as ag, type LineHeightConfig as ah, type LinePalette as ai, type Modes as aj, type Overflow as ak, type Palette as al, type PaletteConfig as am, type PaletteType as an, type PaletteValue as ao, type PlatformMode as ap, type Position as aq, type RegionMode as ar, type ScaleConfig as as, type ScaleModeConfig as at, type ScaleModeForApp as au, type SpacingAlias as av, type SpacingConfig as aw, type SpacingStyleProps as ax, type SpectrumColor as ay, type SpectrumConfig as az, type HueStep as b, type CorePaletteAlias as c, type FontWeightConfig as d, type FontWeightNumeric as e, type FontFamilyGlobalConfig as f, type UniversalStackProps as g, type UniversalImageProps as h, alwaysPalette as i, type AlwaysPaletteAlias as j, type Animation as k, type AriaAttribute as l, type AvatarShape as m, type AvatarSize as n, type AvatarSizeConfig as o, type BackgroundColor as p, type BackgroundPalette as q, type BackgroundStyleProps as r, type BorderRadius as s, type BorderRadiusConfig as t, type BorderStyleProps as u, type BorderWidth as v, type BorderWidthConfig as w, type BoxShadowConfig as x, type ButtonCategory as y, type ButtonConfig as z };
@@ -8,6 +8,7 @@ declare const alwaysPalette: {
8
8
  white: string;
9
9
  black: string;
10
10
  transparent: string;
11
+ current: string;
11
12
  };
12
13
 
13
14
  type PaletteType = keyof PaletteConfig;
@@ -54,14 +55,16 @@ type FontFamilyConfig = Record<TextVariant, FontFamilyGlobalAlias>;
54
55
  type FontWeightConfig = Record<TextVariant, FontWeightDescriptive>;
55
56
  type LineHeightConfig = Record<TextVariant, LineHeight>;
56
57
  type ConfigurableTextProperty = 'fontFamily' | 'fontSize' | 'fontWeight' | 'lineHeight' | 'textTransform';
57
- type AvatarSize = 's' | 'm' | 'l';
58
+ type TShirtSize = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
59
+ type TShirtSizeCommon = Extract<TShirtSize, 'sm' | 'md' | 'lg'>;
60
+ type AvatarSize = TShirtSizeCommon;
58
61
  type AvatarSizeConfig = Record<AvatarSize, number>;
59
62
  type AvatarShape = BorderRadius;
60
- type IconSize = 'sm' | 'md' | 'lg';
63
+ type IconSize = TShirtSizeCommon;
61
64
  type IconSizeConfig = Record<IconSize, number>;
62
65
  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';
63
66
  type SpacingConfig = Record<SpacingAlias, number>;
64
- type BorderRadius = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
67
+ type BorderRadius = TShirtSize;
65
68
  type BorderRadiusConfig = Record<BorderRadius, number>;
66
69
  type BorderWidth = 'none' | 'thin' | 'medium' | 'thick';
67
70
  type BorderWidthConfig = Record<BorderWidth, number>;
@@ -97,10 +100,68 @@ type ScaleConfig = {
97
100
  textTransform: TextTransformConfig;
98
101
  };
99
102
  type ScaleModeConfig = Record<ScaleMode, ScaleConfig>;
103
+ type ButtonSpectrumColor = {
104
+ type: 'spectrum';
105
+ value: SpectrumColor;
106
+ };
107
+ type ButtonSize = TShirtSizeCommon;
108
+ type ButtonCategory = CorePaletteAlias;
109
+ type ButtonVariant2 = 'primary' | 'secondary' | 'tertiary';
110
+ type ButtonState = 'rest' | 'hover' | 'pressed';
111
+ type ButtonKind = 'fill' | 'outline' | 'ghost';
112
+ type ButtonBackgroundColor = {
113
+ type: 'palette';
114
+ value: BackgroundColor;
115
+ } | ButtonSpectrumColor;
116
+ type ButtonForegroundColor = {
117
+ type: 'palette';
118
+ value: ForegroundColor;
119
+ } | ButtonSpectrumColor;
120
+ type ButtonBorderColor = {
121
+ type: 'palette';
122
+ value: LineColor;
123
+ } | ButtonSpectrumColor;
124
+ interface ButtonConfig {
125
+ defaults: {
126
+ category: ButtonCategory;
127
+ variant: ButtonVariant2;
128
+ size: ButtonSize;
129
+ };
130
+ size: {
131
+ [size in ButtonSize]: {
132
+ spacingHorizontal: SpacingAlias;
133
+ spacingVertical: SpacingAlias;
134
+ gap: SpacingAlias;
135
+ iconSize: IconSize;
136
+ textVariant: TextVariant;
137
+ };
138
+ };
139
+ category: {
140
+ [category in ButtonCategory]: {
141
+ [variant in ButtonVariant2]: {
142
+ kind: ButtonKind;
143
+ state: {
144
+ [state in ButtonState]: state extends 'rest' ? {
145
+ borderWidth: BorderWidth;
146
+ borderRadius: BorderRadius;
147
+ backgroundColor: ButtonBackgroundColor;
148
+ color: ButtonForegroundColor;
149
+ borderColor: ButtonBorderColor;
150
+ } : {
151
+ backgroundColor: ButtonBackgroundColor;
152
+ color: ButtonForegroundColor;
153
+ borderColor: ButtonBorderColor;
154
+ };
155
+ };
156
+ };
157
+ };
158
+ };
159
+ }
100
160
  type UniversalTokensConfig = {
101
161
  colorMode: ColorModeConfig;
102
162
  scaleMode: ScaleModeConfig;
103
163
  fontFamily: FontFamilyGlobalConfig;
164
+ button?: ButtonConfig;
104
165
  };
105
166
  type PlatformMode = 'web' | 'ios' | 'android';
106
167
  type ColorMode = 'light' | 'dark';
@@ -303,12 +364,11 @@ interface UniversalPressableProps extends UniversalBoxProps {
303
364
  onPress?: () => void;
304
365
  }
305
366
  type ButtonVariant = CorePaletteAlias | `${CorePaletteAlias}-outline` | `${CorePaletteAlias}-ghost` | 'primary-ghost' | 'primary-outline' | 'secondary';
306
- type ButtonSize = 's' | 'm' | 'l';
307
367
  interface UniversalIconButtonProps {
308
368
  /** The variant of the button. */
309
369
  variant?: ButtonVariant;
310
370
  /** The size of the button. */
311
- size?: ButtonSize;
371
+ size?: UniversalIconProps['size'];
312
372
  /** Icon to render from the icons package. */
313
373
  name: SvgIcon;
314
374
  /** Color for the icon. */
@@ -322,7 +382,7 @@ interface UniversalButtonProps {
322
382
  variant?: ButtonVariant;
323
383
  /**
324
384
  * The size of the button
325
- * @default 'm'
385
+ * @default 'md'
326
386
  */
327
387
  size?: ButtonSize;
328
388
  /** The name of the icon to be displayed at the start of the button. */
@@ -362,4 +422,4 @@ interface UniversalTextInputProps {
362
422
  spacingHorizontal?: SpacingAlias;
363
423
  }
364
424
 
365
- export { type FontFamilyGlobalAlias as $, type AlwaysPalette as A, type BackgroundPaletteAlias as B, type ColorMode as C, type ColorModeConfig as D, type ColorModeForApp as E, type ForegroundPaletteAlias as F, type ConfigurableTextProperty as G, type Hue as H, type CorePalette as I, type CustomSizingStyleProps as J, type DataAttribute as K, type LinePaletteAlias as L, type Display as M, type Flex as N, type FlexAlignContent as O, type FlexAlignItems as P, type FlexAlignSelf as Q, type FlexBasis as R, type ScaleMode as S, type FlexDirection as T, type UniversalTokensConfig as U, type FlexGrow as V, type FlexJustifyContent as W, type FlexShrink as X, type FlexStyleProps as Y, type FlexWrap as Z, type FontFamilyConfig as _, type ColorsConfig as a, type FontSize as a0, type FontSizeConfig as a1, type FontWeightDescriptive as a2, type ForegroundColor as a3, type ForegroundPalette as a4, type HighContrastMode as a5, type IconSize as a6, type IconSizeConfig as a7, type ImageStyleProps as a8, type LayoutStyleProps as a9, type TextTransform as aA, type TextTransformConfig as aB, type TextVariant as aC, type TransitionDelay as aD, type TransitionDuration as aE, type TransitionTiming as aF, type UniversalAvatarProps as aG, type UniversalBoxProps as aH, type UniversalButtonProps as aI, type UniversalIconButtonProps as aJ, type UniversalIconProps as aK, type UniversalPressableProps as aL, type UniversalTextInputProps as aM, type UniversalTextProps as aN, type LetterSpacing as aa, type LineClampAlias as ab, type LineColor as ac, type LineHeight as ad, type LineHeightConfig as ae, type LinePalette as af, type Modes as ag, type Overflow as ah, type Palette as ai, type PaletteConfig as aj, type PaletteType as ak, type PaletteValue as al, type PlatformMode as am, type Position as an, type RegionMode as ao, type ScaleConfig as ap, type ScaleModeConfig as aq, type ScaleModeForApp as ar, type SpacingAlias as as, type SpacingConfig as at, type SpacingStyleProps as au, type SpectrumColor as av, type SpectrumConfig as aw, type StateStyleProps as ax, type StyleProps as ay, type TextStyleProps as az, type HueStep as b, type CorePaletteAlias as c, type FontWeightConfig as d, type FontWeightNumeric as e, type FontFamilyGlobalConfig as f, type UniversalStackProps as g, type UniversalImageProps as h, alwaysPalette as i, type AlwaysPaletteAlias as j, type Animation as k, type AriaAttribute as l, type AvatarShape as m, type AvatarSize as n, type AvatarSizeConfig as o, type BackgroundColor as p, type BackgroundPalette as q, type BackgroundStyleProps as r, type BorderRadius as s, type BorderRadiusConfig as t, type BorderStyleProps as u, type BorderWidth as v, type BorderWidthConfig as w, type BoxShadowConfig as x, type ButtonSize as y, type ButtonVariant as z };
425
+ export { type FlexStyleProps as $, type AlwaysPalette as A, type BackgroundPaletteAlias as B, type ColorMode as C, type ButtonSize as D, type ButtonVariant as E, type ForegroundPaletteAlias as F, type ButtonVariant2 as G, type Hue as H, type ColorModeConfig as I, type ColorModeForApp as J, type ConfigurableTextProperty as K, type LinePaletteAlias as L, type CorePalette as M, type CustomSizingStyleProps as N, type DataAttribute as O, type Display as P, type Flex as Q, type FlexAlignContent as R, type ScaleMode as S, type FlexAlignItems as T, type UniversalTokensConfig as U, type FlexAlignSelf as V, type FlexBasis as W, type FlexDirection as X, type FlexGrow as Y, type FlexJustifyContent as Z, type FlexShrink as _, type ColorsConfig as a, type FlexWrap as a0, type FontFamilyConfig as a1, type FontFamilyGlobalAlias as a2, type FontSize as a3, type FontSizeConfig as a4, type FontWeightDescriptive as a5, type ForegroundColor as a6, type ForegroundPalette as a7, type HighContrastMode as a8, type IconSize as a9, type StateStyleProps as aA, type StyleProps as aB, type TextStyleProps as aC, type TextTransform as aD, type TextTransformConfig as aE, type TextVariant as aF, type TransitionDelay as aG, type TransitionDuration as aH, type TransitionTiming as aI, type TShirtSize as aJ, type TShirtSizeCommon as aK, type UniversalAvatarProps as aL, type UniversalBoxProps as aM, type UniversalButtonProps as aN, type UniversalIconButtonProps as aO, type UniversalIconProps as aP, type UniversalPressableProps as aQ, type UniversalTextInputProps as aR, type UniversalTextProps as aS, type IconSizeConfig as aa, type ImageStyleProps as ab, type LayoutStyleProps as ac, type LetterSpacing as ad, type LineClampAlias as ae, type LineColor as af, type LineHeight as ag, type LineHeightConfig as ah, type LinePalette as ai, type Modes as aj, type Overflow as ak, type Palette as al, type PaletteConfig as am, type PaletteType as an, type PaletteValue as ao, type PlatformMode as ap, type Position as aq, type RegionMode as ar, type ScaleConfig as as, type ScaleModeConfig as at, type ScaleModeForApp as au, type SpacingAlias as av, type SpacingConfig as aw, type SpacingStyleProps as ax, type SpectrumColor as ay, type SpectrumConfig as az, type HueStep as b, type CorePaletteAlias as c, type FontWeightConfig as d, type FontWeightNumeric as e, type FontFamilyGlobalConfig as f, type UniversalStackProps as g, type UniversalImageProps as h, alwaysPalette as i, type AlwaysPaletteAlias as j, type Animation as k, type AriaAttribute as l, type AvatarShape as m, type AvatarSize as n, type AvatarSizeConfig as o, type BackgroundColor as p, type BackgroundPalette as q, type BackgroundStyleProps as r, type BorderRadius as s, type BorderRadiusConfig as t, type BorderStyleProps as u, type BorderWidth as v, type BorderWidthConfig as w, type BoxShadowConfig as x, type ButtonCategory as y, type ButtonConfig as z };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@yahoo/uds",
3
3
  "description": "Yahoo Universal System",
4
- "version": "0.5.6",
4
+ "version": "0.5.8",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "uds": "./cli/uds-cli"