@sanity/ui 2.0.0-beta.1 → 2.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/index.cjs.mjs +10 -36
  2. package/dist/index.d.ts +180 -239
  3. package/dist/index.esm.js +105 -84
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/index.js +113 -297
  6. package/dist/index.js.map +1 -1
  7. package/dist/theme.cjs.mjs +1 -1
  8. package/dist/theme.d.ts +75 -111
  9. package/dist/theme.esm.js +169 -97
  10. package/dist/theme.esm.js.map +1 -1
  11. package/dist/theme.js +169 -97
  12. package/dist/theme.js.map +1 -1
  13. package/package.json +1 -1
  14. package/src/core/__workshop__/constants.ts +3 -2
  15. package/src/core/_compat.ts +236 -87
  16. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +6 -3
  17. package/src/core/primitives/avatar/__workshop__/asButton.tsx +1 -1
  18. package/src/core/primitives/avatar/__workshop__/stack.tsx +1 -1
  19. package/src/core/primitives/avatar/avatar.tsx +14 -4
  20. package/src/core/primitives/avatar/avatarCounter.tsx +16 -5
  21. package/src/core/primitives/avatar/avatarStack.tsx +2 -2
  22. package/src/core/primitives/kbd/kbd.tsx +2 -0
  23. package/src/core/primitives/tooltip/tooltip.tsx +1 -1
  24. package/src/core/styles/margin/marginsStyle.test.ts +2 -2
  25. package/src/core/styles/padding/paddingStyle.test.ts +2 -2
  26. package/src/core/theme/__workshop__/build/Root.tsx +20 -3
  27. package/src/core/theme/__workshop__/build/story.tsx +16 -10
  28. package/src/core/theme/__workshop__/canvas.tsx +7 -7
  29. package/src/core/theme/__workshop__/debug/story.tsx +159 -0
  30. package/src/core/theme/__workshop__/index.ts +5 -0
  31. package/src/core/theme/theme.test.tsx +2 -2
  32. package/src/core/types/avatar.ts +1 -1
  33. package/src/core/types/button.ts +1 -2
  34. package/src/theme/build/_deprecated/color/factory.ts +3 -3
  35. package/src/theme/build/buildColorTheme.ts +16 -16
  36. package/src/theme/build/colorToken/colorToken.ts +19 -0
  37. package/src/theme/build/colorToken/compileColorToken.ts +17 -0
  38. package/src/theme/build/colorToken/index.ts +2 -0
  39. package/src/theme/build/colorToken/types.ts +6 -0
  40. package/src/theme/build/renderColorTheme.ts +14 -15
  41. package/src/theme/build/renderColorValue.ts +1 -1
  42. package/src/theme/config/system.ts +9 -9
  43. package/src/theme/config/tokens/color/types.ts +12 -1
  44. package/src/theme/config/tokens/parseTokenKey.ts +1 -0
  45. package/src/theme/config/tokens/parseTokenValue.ts +1 -0
  46. package/src/theme/defaults/colorTokens.ts +127 -66
  47. package/src/theme/defaults/config.ts +1 -0
  48. package/src/theme/defaults/fonts.ts +13 -5
  49. package/src/theme/index.ts +0 -7
  50. package/src/theme/system/color/_constants.ts +5 -2
  51. package/src/theme/system/color/_system.ts +2 -1
  52. package/src/theme/system/color/avatar.ts +2 -12
  53. package/src/theme/system/color/button.ts +4 -20
  54. package/src/theme/system/color/input.ts +3 -11
  55. package/src/theme/system/color/selectable.ts +3 -14
  56. package/src/theme/system/shadow.ts +0 -6
  57. package/src/theme/system/styles.ts +0 -6
  58. package/src/theme/system/theme.ts +2 -0
  59. package/src/theme/system/v0/avatar.ts +1 -1
  60. package/src/theme/system/v0/color/button.ts +4 -4
  61. package/src/theme/system/v0/color/card.ts +2 -2
  62. package/src/theme/system/v0/color/input.ts +3 -3
  63. package/src/theme/system/v0/color/muted.ts +2 -2
  64. package/src/theme/system/v0/color/solid.ts +2 -2
  65. package/src/theme/versioning/themeColor_v0_v2.ts +2 -2
  66. package/src/theme/versioning/v2_v0.ts +2 -2
  67. package/src/theme/build/colorToken.ts +0 -39
@@ -1,4 +1,4 @@
1
- import {ThemeColorBlendModeKey} from './_system'
1
+ import {ThemeColorBlendModeKey, ThemeColorInputModeKey, ThemeColorInputStateKey} from './_system'
2
2
 
3
3
  /**
4
4
  * @public
@@ -17,17 +17,9 @@ export interface ThemeColorInputState_v2 {
17
17
  /**
18
18
  * @public
19
19
  */
20
- export interface ThemeColorInputStates_v2 {
21
- enabled: ThemeColorInputState_v2
22
- disabled: ThemeColorInputState_v2
23
- hovered: ThemeColorInputState_v2
24
- readOnly: ThemeColorInputState_v2
25
- }
20
+ export type ThemeColorInputMode_v2 = Record<ThemeColorInputStateKey, ThemeColorInputState_v2>
26
21
 
27
22
  /**
28
23
  * @public
29
24
  */
30
- export interface ThemeColorInput_v2 {
31
- default: ThemeColorInputStates_v2
32
- invalid: ThemeColorInputStates_v2
33
- }
25
+ export type ThemeColorInput_v2 = Record<ThemeColorInputModeKey, ThemeColorInputMode_v2>
@@ -1,23 +1,12 @@
1
+ import {ThemeColorStateKey, ThemeColorStateToneKey} from './_system'
1
2
  import {ThemeColorState_v2} from './state'
2
3
 
3
4
  /**
4
5
  * @public
5
6
  */
6
- export interface ThemeColorSelectableStates_v2 {
7
- enabled: ThemeColorState_v2
8
- hovered: ThemeColorState_v2
9
- pressed: ThemeColorState_v2
10
- selected: ThemeColorState_v2
11
- disabled: ThemeColorState_v2
12
- }
7
+ export type ThemeColorSelectableTone_v2 = Record<ThemeColorStateKey, ThemeColorState_v2>
13
8
 
14
9
  /**
15
10
  * @public
16
11
  */
17
- export interface ThemeColorSelectable_v2 {
18
- default: ThemeColorSelectableStates_v2
19
- primary: ThemeColorSelectableStates_v2
20
- positive: ThemeColorSelectableStates_v2
21
- caution: ThemeColorSelectableStates_v2
22
- critical: ThemeColorSelectableStates_v2
23
- }
12
+ export type ThemeColorSelectable_v2 = Record<ThemeColorStateToneKey, ThemeColorSelectableTone_v2>
@@ -9,12 +9,6 @@ export type ThemeBoxShadow = [
9
9
  number,
10
10
  ]
11
11
 
12
- /**
13
- * @public
14
- * @deprecated Use `ThemeBoxShadow` instead
15
- */
16
- export type BoxShadow = ThemeBoxShadow
17
-
18
12
  /**
19
13
  * @public
20
14
  */
@@ -11,9 +11,3 @@ export interface ThemeStyles {
11
11
  root?: CSSObject
12
12
  }
13
13
  }
14
-
15
- /**
16
- * @deprecated Use `ThemeStyles` instead
17
- * @internal
18
- */
19
- export type Styles = ThemeStyles
@@ -33,6 +33,7 @@ export interface RootTheme_v2 {
33
33
  radius: number[]
34
34
  shadow: Array<ThemeShadow | null>
35
35
  space: number[]
36
+ /** @internal */
36
37
  style?: ThemeStyles
37
38
  }
38
39
 
@@ -97,6 +98,7 @@ export interface BaseTheme {
97
98
  */
98
99
  space: number[]
99
100
  /**
101
+ * @internal
100
102
  * @deprecated Use `v2.style` instead
101
103
  */
102
104
  styles?: ThemeStyles
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @public
3
- * @deprecated Use `ThemeAvatar_v2` instead
3
+ * @deprecated Use `ThemeAvatar_v2` from `@sanity/ui/theme` instead.
4
4
  */
5
5
  export interface ThemeAvatar {
6
6
  sizes: {
@@ -2,13 +2,13 @@ import {ThemeColorGenericState} from './_generic'
2
2
 
3
3
  /**
4
4
  * @public
5
- * @deprecated Use `ThemeColorGenericState` instead.
5
+ * @deprecated Use `ThemeColorState_v2` instead.
6
6
  */
7
7
  export type ThemeColorButtonState = ThemeColorGenericState
8
8
 
9
9
  /**
10
10
  * @public
11
- * @deprecated
11
+ * @deprecated Use `ThemeColorButtonStates_v2` instead.
12
12
  */
13
13
  export interface ThemeColorButtonStates {
14
14
  enabled: ThemeColorGenericState
@@ -21,7 +21,7 @@ export interface ThemeColorButtonStates {
21
21
  /**
22
22
  * TODO: Rename to `ThemeColorButtonMode`.
23
23
  * @public
24
- * @deprecated
24
+ * @deprecated Use `ThemeColorButtonTones_v2` instead.
25
25
  */
26
26
  export interface ThemeColorButtonTones {
27
27
  default: ThemeColorButtonStates
@@ -33,7 +33,7 @@ export interface ThemeColorButtonTones {
33
33
 
34
34
  /**
35
35
  * @public
36
- * @deprecated
36
+ * @deprecated Use `ThemeColorButton_v2` instead.
37
37
  */
38
38
  export interface ThemeColorButton {
39
39
  default: ThemeColorButtonTones
@@ -2,13 +2,13 @@ import {ThemeColorGenericState} from './_generic'
2
2
 
3
3
  /**
4
4
  * @public
5
- * @deprecated Use `ThemeColorGenericState` instead.
5
+ * @deprecated Use `ThemeColorState_v2` instead.
6
6
  */
7
7
  export type ThemeColorCardState = ThemeColorGenericState
8
8
 
9
9
  /**
10
10
  * @public
11
- * @deprecated
11
+ * @deprecated Use `ThemeColorSelectable_v2` instead.
12
12
  */
13
13
  export interface ThemeColorCard {
14
14
  enabled: ThemeColorGenericState
@@ -2,7 +2,7 @@ import {ThemeColorBlendModeKey} from '../../color/_system'
2
2
 
3
3
  /**
4
4
  * @public
5
- * @deprecated
5
+ * @deprecated Use `ThemeColorInputState_v2` instead.
6
6
  */
7
7
  export interface ThemeColorInputState {
8
8
  _blend?: ThemeColorBlendModeKey
@@ -15,7 +15,7 @@ export interface ThemeColorInputState {
15
15
 
16
16
  /**
17
17
  * @public
18
- * @deprecated
18
+ * @deprecated Use `ThemeColorInputMode_v2` instead.
19
19
  */
20
20
  export interface ThemeColorInputStates {
21
21
  enabled: ThemeColorInputState
@@ -26,7 +26,7 @@ export interface ThemeColorInputStates {
26
26
 
27
27
  /**
28
28
  * @public
29
- * @deprecated
29
+ * @deprecated Use `ThemeColorInput_v2` instead.
30
30
  */
31
31
  export interface ThemeColorInput {
32
32
  default: ThemeColorInputStates
@@ -2,7 +2,7 @@ import {ThemeColorGenericState} from './_generic'
2
2
 
3
3
  /**
4
4
  * @public
5
- * @deprecated
5
+ * @deprecated Use `ThemeColorSelectableTone_v2` instead.
6
6
  */
7
7
  export interface ThemeColorMutedTone {
8
8
  enabled: ThemeColorGenericState
@@ -14,7 +14,7 @@ export interface ThemeColorMutedTone {
14
14
 
15
15
  /**
16
16
  * @public
17
- * @deprecated
17
+ * @deprecated Use `ThemeColorSelectable_v2` instead.
18
18
  */
19
19
  export interface ThemeColorMuted {
20
20
  default: ThemeColorMutedTone
@@ -2,7 +2,7 @@ import {ThemeColorGenericState} from './_generic'
2
2
 
3
3
  /**
4
4
  * @public
5
- * @deprecated
5
+ * @deprecated Use `ThemeColorSelectableTone_v2` instead.
6
6
  */
7
7
  export interface ThemeColorSolidTone {
8
8
  enabled: ThemeColorGenericState
@@ -14,7 +14,7 @@ export interface ThemeColorSolidTone {
14
14
 
15
15
  /**
16
16
  * @public
17
- * @deprecated
17
+ * @deprecated Use `ThemeColorSelectable_v2` instead.
18
18
  */
19
19
  export interface ThemeColorSolid {
20
20
  default: ThemeColorSolidTone
@@ -6,7 +6,7 @@ import {
6
6
  ThemeColorState_v2,
7
7
  ThemeColorCard_v2,
8
8
  ThemeColorInputStates,
9
- ThemeColorInputStates_v2,
9
+ ThemeColorInputMode_v2,
10
10
  ThemeColorInputState,
11
11
  ThemeColorInputState_v2,
12
12
  } from '../system'
@@ -195,7 +195,7 @@ function stateThemeColor_v0_v2(v0: ThemeColor, state: ThemeColorGenericState): T
195
195
  }
196
196
  }
197
197
 
198
- function inputStatesThemeColor_v0_v2(states: ThemeColorInputStates): ThemeColorInputStates_v2 {
198
+ function inputStatesThemeColor_v0_v2(states: ThemeColorInputStates): ThemeColorInputMode_v2 {
199
199
  return {
200
200
  enabled: inputStateThemeColor_v0_v2(states.enabled),
201
201
  disabled: inputStateThemeColor_v0_v2(states.disabled),
@@ -3,10 +3,10 @@ import {
3
3
  RootTheme_v2,
4
4
  ThemeColor,
5
5
  ThemeColorCard_v2,
6
+ ThemeColorInputMode_v2,
6
7
  ThemeColorInputState,
7
8
  ThemeColorInputState_v2,
8
9
  ThemeColorInputStates,
9
- ThemeColorInputStates_v2,
10
10
  } from '../system'
11
11
 
12
12
  const cache = new WeakMap<RootTheme_v2, RootTheme>()
@@ -106,7 +106,7 @@ function themeColor_v2_v0(color_v2: ThemeColorCard_v2): ThemeColor {
106
106
  }
107
107
  }
108
108
 
109
- function inputStatesThemeColor_v2_v0(t: ThemeColorInputStates_v2): ThemeColorInputStates {
109
+ function inputStatesThemeColor_v2_v0(t: ThemeColorInputMode_v2): ThemeColorInputStates {
110
110
  return {
111
111
  enabled: inputStateThemeColor_v2_v0(t.enabled),
112
112
  disabled: inputStateThemeColor_v2_v0(t.disabled),
@@ -1,39 +0,0 @@
1
- import {ColorHueKey} from '@sanity/color'
2
- import {ThemeColorTokenValue, parseTokenValue, TokenColorValueNode} from '../config'
3
-
4
- export interface ColorTokenContext {
5
- hue: ColorHueKey
6
- scheme: 'light' | 'dark'
7
- }
8
-
9
- const DEFAULT_COLOR_TOKEN_VALUE: ThemeColorTokenValue = ['500', '500']
10
-
11
- export function resolveColorTokenValue(
12
- context: ColorTokenContext,
13
- value: ThemeColorTokenValue = DEFAULT_COLOR_TOKEN_VALUE,
14
- ): string {
15
- const {hue, scheme} = context
16
- const node = parseTokenValue(value[scheme === 'light' ? 0 : 1])
17
-
18
- if (!node || node.type !== 'color') {
19
- throw new Error(`Invalid color token: ${value[0]}`)
20
- }
21
-
22
- return compileColorTokenValue({...node, hue: node.hue || hue})
23
- }
24
-
25
- export function compileColorTokenValue(node: TokenColorValueNode): string {
26
- let key = ''
27
-
28
- if (node.key === 'black' || node.key === 'white') {
29
- key = node.key
30
- } else {
31
- key = `${node.hue}/${node.tint}`
32
- }
33
-
34
- if (node.opacity !== undefined) {
35
- key += `/${node.opacity}`
36
- }
37
-
38
- return key
39
- }