@sanity/ui 2.0.0-alpha.10 → 2.0.0-alpha.12

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 (107) hide show
  1. package/dist/index.cjs.mjs +0 -2
  2. package/dist/index.d.ts +404 -281
  3. package/dist/index.esm.js +2305 -5015
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/index.js +2332 -5044
  6. package/dist/index.js.map +1 -1
  7. package/package.json +1 -1
  8. package/src/components/dialog/dialog.tsx +3 -3
  9. package/src/components/dialog/styles.ts +4 -3
  10. package/src/components/menu/__workshop__/closableMenuButton.tsx +2 -2
  11. package/src/components/menu/menuDivider.ts +1 -2
  12. package/src/components/menu/menuGroup.tsx +2 -2
  13. package/src/components/menu/menuItem.tsx +4 -4
  14. package/src/components/skeleton/styles.ts +7 -8
  15. package/src/components/tree/style.ts +20 -19
  16. package/src/primitives/_selectable/style.ts +21 -25
  17. package/src/primitives/avatar/avatar.tsx +3 -8
  18. package/src/primitives/avatar/avatarCounter.tsx +4 -5
  19. package/src/primitives/avatar/styles.ts +7 -5
  20. package/src/primitives/avatar/types.ts +0 -14
  21. package/src/primitives/badge/styles.ts +8 -7
  22. package/src/primitives/box/__workshop__/responsive.tsx +2 -2
  23. package/src/primitives/button/button.tsx +2 -2
  24. package/src/primitives/button/styles.ts +16 -82
  25. package/src/primitives/card/__workshop__/selected.tsx +9 -8
  26. package/src/primitives/card/card.tsx +8 -43
  27. package/src/primitives/card/styles.ts +22 -30
  28. package/src/primitives/card/types.ts +1 -3
  29. package/src/primitives/checkbox/styles.ts +20 -20
  30. package/src/primitives/code/code.tsx +3 -15
  31. package/src/primitives/code/styles.ts +42 -51
  32. package/src/primitives/heading/styles.ts +5 -6
  33. package/src/primitives/kbd/kbd.tsx +1 -2
  34. package/src/primitives/label/styles.ts +2 -3
  35. package/src/primitives/popover/popoverArrow.tsx +2 -3
  36. package/src/primitives/popover/popoverCard.tsx +2 -6
  37. package/src/primitives/radio/styles.ts +15 -15
  38. package/src/primitives/select/styles.ts +22 -20
  39. package/src/primitives/switch/styles.ts +13 -13
  40. package/src/primitives/text/__workshop__/colored.tsx +11 -10
  41. package/src/primitives/text/styles.ts +9 -10
  42. package/src/primitives/textArea/textArea.tsx +11 -7
  43. package/src/primitives/textInput/textInput.tsx +12 -12
  44. package/src/primitives/tooltip/__workshop__/props.tsx +3 -20
  45. package/src/primitives/tooltip/tooltipArrow.tsx +2 -3
  46. package/src/styles/border/borderStyle.ts +1 -2
  47. package/src/styles/colorVars/colorVarsStyle.ts +32 -73
  48. package/src/styles/focusRing/index.ts +4 -6
  49. package/src/styles/input/textInputStyle.ts +93 -76
  50. package/src/styles/margin/marginsStyle.test.ts +2 -1
  51. package/src/styles/padding/paddingStyle.test.ts +2 -1
  52. package/src/styles/shadow/shadowStyle.ts +5 -5
  53. package/src/theme/__workshop__/canvas.tsx +395 -0
  54. package/src/theme/__workshop__/color.tsx +2 -2
  55. package/src/theme/__workshop__/index.ts +5 -0
  56. package/src/theme/lib/theme/color/_generic/index.ts +1 -0
  57. package/src/theme/lib/theme/color/_generic/types.ts +30 -0
  58. package/src/theme/lib/theme/color/base/index.ts +1 -0
  59. package/src/theme/lib/theme/color/base/types.ts +19 -0
  60. package/src/theme/lib/theme/color/button/createButtonModes.ts +20 -0
  61. package/src/theme/lib/theme/color/button/createButtonTones.ts +52 -0
  62. package/src/theme/lib/theme/color/button/index.ts +1 -0
  63. package/src/theme/lib/theme/color/button/types.ts +44 -0
  64. package/src/theme/lib/theme/color/card/createCardStates.ts +58 -0
  65. package/src/theme/lib/theme/color/card/index.ts +1 -0
  66. package/src/theme/lib/theme/color/card/types.ts +18 -0
  67. package/src/theme/lib/theme/color/color.test.ts +63 -0
  68. package/src/theme/lib/theme/color/defaults.ts +390 -0
  69. package/src/theme/lib/theme/color/factory.ts +138 -0
  70. package/src/theme/lib/theme/color/index.ts +12 -3
  71. package/src/theme/lib/theme/color/input/createInputModes.ts +84 -0
  72. package/src/theme/lib/theme/color/input/index.ts +1 -0
  73. package/src/theme/lib/theme/color/input/types.ts +28 -0
  74. package/src/theme/lib/theme/color/muted/createMuted.ts +56 -0
  75. package/src/theme/lib/theme/color/muted/index.ts +1 -0
  76. package/src/theme/lib/theme/color/muted/types.ts +24 -0
  77. package/src/theme/lib/theme/color/selectable/createSelectableTones.ts +73 -0
  78. package/src/theme/lib/theme/color/selectable/index.ts +1 -0
  79. package/src/theme/lib/theme/color/selectable/types.ts +29 -0
  80. package/src/theme/lib/theme/color/solid/createSolidTones.ts +56 -0
  81. package/src/theme/lib/theme/color/solid/index.ts +1 -0
  82. package/src/theme/lib/theme/color/solid/types.ts +24 -0
  83. package/src/theme/lib/theme/color/spot/createSpot.ts +21 -0
  84. package/src/theme/lib/theme/color/spot/index.ts +1 -0
  85. package/src/theme/lib/theme/color/spot/types.ts +28 -0
  86. package/src/theme/lib/theme/color/syntax/index.ts +1 -0
  87. package/src/theme/lib/theme/color/syntax/types.ts +41 -0
  88. package/src/theme/lib/theme/color/types.ts +37 -6
  89. package/src/theme/studioTheme/color.ts +661 -6
  90. package/src/theme/studioTheme/theme.ts +2 -8
  91. package/src/theme/{lib/theme/color/cssVariables → studioTheme}/tints.ts +2 -2
  92. package/src/theme/themeColorProvider.tsx +0 -2
  93. package/src/theme/themeProvider.tsx +8 -28
  94. package/src/theme/types.ts +4 -2
  95. package/src/utils/elementQuery/__workshop__/customMedia.tsx +3 -4
  96. package/src/primitives/avatar/spotColors.ts +0 -53
  97. package/src/theme/lib/theme/color/cssVariables/cardVariables.ts +0 -88
  98. package/src/theme/lib/theme/color/cssVariables/createCssVars.ts +0 -31
  99. package/src/theme/lib/theme/color/cssVariables/cssVars.test.ts +0 -262
  100. package/src/theme/lib/theme/color/cssVariables/index.ts +0 -1
  101. package/src/theme/lib/theme/color/cssVariables/tones.ts +0 -67
  102. package/src/theme/lib/theme/color/cssVariables/utils.test.ts +0 -15
  103. package/src/theme/lib/theme/color/cssVariables/utils.ts +0 -9
  104. package/src/theme/toneContext/toneContext.ts +0 -12
  105. package/src/theme/toneContext/toneProvider.tsx +0 -31
  106. package/src/theme/toneContext/types.ts +0 -10
  107. package/src/theme/toneContext/useToneContext.tsx +0 -26
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @public
3
+ */
4
+ export interface ThemeColorInputState {
5
+ bg: string
6
+ bg2: string
7
+ fg: string
8
+ border: string
9
+ placeholder: string
10
+ }
11
+
12
+ /**
13
+ * @public
14
+ */
15
+ export interface ThemeColorInputStates {
16
+ enabled: ThemeColorInputState
17
+ disabled: ThemeColorInputState
18
+ hovered: ThemeColorInputState
19
+ readOnly: ThemeColorInputState
20
+ }
21
+
22
+ /**
23
+ * @public
24
+ */
25
+ export interface ThemeColorInput {
26
+ default: ThemeColorInputStates
27
+ invalid: ThemeColorInputStates
28
+ }
@@ -0,0 +1,56 @@
1
+ import {ThemeColorBase} from '../base'
2
+ import {ThemeColorBuilderOpts} from '../factory'
3
+ import {ThemeColorName} from '../types'
4
+ import {ThemeColorMuted} from './types'
5
+
6
+ export function createMutedTones(
7
+ opts: ThemeColorBuilderOpts,
8
+ base: ThemeColorBase,
9
+ dark: boolean,
10
+ name: ThemeColorName,
11
+ ): ThemeColorMuted {
12
+ return {
13
+ default: {
14
+ enabled: opts.muted({base, dark, tone: 'default', name, state: 'enabled'}),
15
+ disabled: opts.muted({base, dark, tone: 'default', name, state: 'disabled'}),
16
+ hovered: opts.muted({base, dark, tone: 'default', name, state: 'hovered'}),
17
+ pressed: opts.muted({base, dark, tone: 'default', name, state: 'pressed'}),
18
+ selected: opts.muted({base, dark, tone: 'default', name, state: 'selected'}),
19
+ },
20
+ transparent: {
21
+ enabled: opts.muted({base, dark, tone: 'transparent', name, state: 'enabled'}),
22
+ disabled: opts.muted({base, dark, tone: 'transparent', name, state: 'disabled'}),
23
+ hovered: opts.muted({base, dark, tone: 'transparent', name, state: 'hovered'}),
24
+ pressed: opts.muted({base, dark, tone: 'transparent', name, state: 'pressed'}),
25
+ selected: opts.muted({base, dark, tone: 'transparent', name, state: 'selected'}),
26
+ },
27
+ primary: {
28
+ enabled: opts.muted({base, dark, tone: 'primary', name, state: 'enabled'}),
29
+ disabled: opts.muted({base, dark, tone: 'primary', name, state: 'disabled'}),
30
+ hovered: opts.muted({base, dark, tone: 'primary', name, state: 'hovered'}),
31
+ pressed: opts.muted({base, dark, tone: 'primary', name, state: 'pressed'}),
32
+ selected: opts.muted({base, dark, tone: 'primary', name, state: 'selected'}),
33
+ },
34
+ positive: {
35
+ enabled: opts.muted({base, dark, tone: 'positive', name, state: 'enabled'}),
36
+ disabled: opts.muted({base, dark, tone: 'positive', name, state: 'disabled'}),
37
+ hovered: opts.muted({base, dark, tone: 'positive', name, state: 'hovered'}),
38
+ pressed: opts.muted({base, dark, tone: 'positive', name, state: 'pressed'}),
39
+ selected: opts.muted({base, dark, tone: 'positive', name, state: 'selected'}),
40
+ },
41
+ caution: {
42
+ enabled: opts.muted({base, dark, tone: 'caution', name, state: 'enabled'}),
43
+ disabled: opts.muted({base, dark, tone: 'caution', name, state: 'disabled'}),
44
+ hovered: opts.muted({base, dark, tone: 'caution', name, state: 'hovered'}),
45
+ pressed: opts.muted({base, dark, tone: 'caution', name, state: 'pressed'}),
46
+ selected: opts.muted({base, dark, tone: 'caution', name, state: 'selected'}),
47
+ },
48
+ critical: {
49
+ enabled: opts.muted({base, dark, tone: 'critical', name, state: 'enabled'}),
50
+ disabled: opts.muted({base, dark, tone: 'critical', name, state: 'disabled'}),
51
+ hovered: opts.muted({base, dark, tone: 'critical', name, state: 'hovered'}),
52
+ pressed: opts.muted({base, dark, tone: 'critical', name, state: 'pressed'}),
53
+ selected: opts.muted({base, dark, tone: 'critical', name, state: 'selected'}),
54
+ },
55
+ }
56
+ }
@@ -0,0 +1 @@
1
+ export * from './types'
@@ -0,0 +1,24 @@
1
+ import {ThemeColorGenericState} from '../_generic/types'
2
+
3
+ /**
4
+ * @public
5
+ */
6
+ export interface ThemeColorMutedTone {
7
+ enabled: ThemeColorGenericState
8
+ disabled: ThemeColorGenericState
9
+ hovered: ThemeColorGenericState
10
+ pressed: ThemeColorGenericState
11
+ selected: ThemeColorGenericState
12
+ }
13
+
14
+ /**
15
+ * @public
16
+ */
17
+ export interface ThemeColorMuted {
18
+ default: ThemeColorMutedTone
19
+ transparent: ThemeColorMutedTone
20
+ primary: ThemeColorMutedTone
21
+ positive: ThemeColorMutedTone
22
+ caution: ThemeColorMutedTone
23
+ critical: ThemeColorMutedTone
24
+ }
@@ -0,0 +1,73 @@
1
+ import {ThemeColorBase} from '../base'
2
+ import {ThemeColorBuilderOpts} from '../factory'
3
+ import {ThemeColorMuted} from '../muted'
4
+ import {ThemeColorSolid} from '../solid'
5
+ import {ThemeColorSelectable, ThemeColorSelectableStates} from './types'
6
+
7
+ export function createSelectableTones(
8
+ opts: ThemeColorBuilderOpts,
9
+ base: ThemeColorBase,
10
+ dark: boolean,
11
+ solid: ThemeColorSolid,
12
+ muted: ThemeColorMuted,
13
+ ): ThemeColorSelectable {
14
+ return {
15
+ default: _createSelectableStates(opts, base, dark, solid, muted, 'default'),
16
+ primary: _createSelectableStates(opts, base, dark, solid, muted, 'primary'),
17
+ positive: _createSelectableStates(opts, base, dark, solid, muted, 'positive'),
18
+ caution: _createSelectableStates(opts, base, dark, solid, muted, 'caution'),
19
+ critical: _createSelectableStates(opts, base, dark, solid, muted, 'critical'),
20
+ }
21
+ }
22
+
23
+ function _createSelectableStates(
24
+ opts: ThemeColorBuilderOpts,
25
+ base: ThemeColorBase,
26
+ dark: boolean,
27
+ solid: ThemeColorSolid,
28
+ muted: ThemeColorMuted,
29
+ tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical',
30
+ ): ThemeColorSelectableStates {
31
+ return {
32
+ enabled: opts.selectable({
33
+ base,
34
+ dark,
35
+ solid,
36
+ muted,
37
+ state: 'enabled',
38
+ tone,
39
+ }),
40
+ hovered: opts.selectable({
41
+ base,
42
+ dark,
43
+ solid,
44
+ muted,
45
+ state: 'hovered',
46
+ tone,
47
+ }),
48
+ pressed: opts.selectable({
49
+ base,
50
+ dark,
51
+ solid,
52
+ muted,
53
+ state: 'pressed',
54
+ tone,
55
+ }),
56
+ selected: opts.selectable({
57
+ base,
58
+ dark,
59
+ solid,
60
+ muted,
61
+ state: 'selected',
62
+ tone,
63
+ }),
64
+ disabled: opts.selectable({
65
+ base,
66
+ dark,
67
+ solid,
68
+ muted,
69
+ state: 'disabled',
70
+ tone,
71
+ }),
72
+ }
73
+ }
@@ -0,0 +1 @@
1
+ export * from './types'
@@ -0,0 +1,29 @@
1
+ import {ThemeColorGenericState} from '../_generic'
2
+
3
+ /**
4
+ * @deprecated Use `ThemeColorGenericState` instead.
5
+ * @public
6
+ */
7
+ export type ThemeColorSelectableState = ThemeColorGenericState
8
+
9
+ /**
10
+ * @public
11
+ */
12
+ export interface ThemeColorSelectableStates {
13
+ enabled: ThemeColorSelectableState
14
+ hovered: ThemeColorSelectableState
15
+ pressed: ThemeColorSelectableState
16
+ selected: ThemeColorSelectableState
17
+ disabled: ThemeColorSelectableState
18
+ }
19
+
20
+ /**
21
+ * @public
22
+ */
23
+ export interface ThemeColorSelectable {
24
+ default: ThemeColorSelectableStates
25
+ primary: ThemeColorSelectableStates
26
+ positive: ThemeColorSelectableStates
27
+ caution: ThemeColorSelectableStates
28
+ critical: ThemeColorSelectableStates
29
+ }
@@ -0,0 +1,56 @@
1
+ import {ThemeColorBase} from '../base'
2
+ import {ThemeColorBuilderOpts} from '../factory'
3
+ import {ThemeColorName} from '../types'
4
+ import {ThemeColorSolid} from './types'
5
+
6
+ export function createSolidTones(
7
+ opts: ThemeColorBuilderOpts,
8
+ base: ThemeColorBase,
9
+ dark: boolean,
10
+ name: ThemeColorName,
11
+ ): ThemeColorSolid {
12
+ return {
13
+ default: {
14
+ enabled: opts.solid({base, dark, tone: 'default', name, state: 'enabled'}),
15
+ disabled: opts.solid({base, dark, tone: 'default', name, state: 'disabled'}),
16
+ hovered: opts.solid({base, dark, tone: 'default', name, state: 'hovered'}),
17
+ pressed: opts.solid({base, dark, tone: 'default', name, state: 'pressed'}),
18
+ selected: opts.solid({base, dark, tone: 'default', name, state: 'selected'}),
19
+ },
20
+ transparent: {
21
+ enabled: opts.solid({base, dark, tone: 'transparent', name, state: 'enabled'}),
22
+ disabled: opts.solid({base, dark, tone: 'transparent', name, state: 'disabled'}),
23
+ hovered: opts.solid({base, dark, tone: 'transparent', name, state: 'hovered'}),
24
+ pressed: opts.solid({base, dark, tone: 'transparent', name, state: 'pressed'}),
25
+ selected: opts.solid({base, dark, tone: 'transparent', name, state: 'selected'}),
26
+ },
27
+ primary: {
28
+ enabled: opts.solid({base, dark, tone: 'primary', name, state: 'enabled'}),
29
+ disabled: opts.solid({base, dark, tone: 'primary', name, state: 'disabled'}),
30
+ hovered: opts.solid({base, dark, tone: 'primary', name, state: 'hovered'}),
31
+ pressed: opts.solid({base, dark, tone: 'primary', name, state: 'pressed'}),
32
+ selected: opts.solid({base, dark, tone: 'primary', name, state: 'selected'}),
33
+ },
34
+ positive: {
35
+ enabled: opts.solid({base, dark, tone: 'positive', name, state: 'enabled'}),
36
+ disabled: opts.solid({base, dark, tone: 'positive', name, state: 'disabled'}),
37
+ hovered: opts.solid({base, dark, tone: 'positive', name, state: 'hovered'}),
38
+ pressed: opts.solid({base, dark, tone: 'positive', name, state: 'pressed'}),
39
+ selected: opts.solid({base, dark, tone: 'positive', name, state: 'selected'}),
40
+ },
41
+ caution: {
42
+ enabled: opts.solid({base, dark, tone: 'caution', name, state: 'enabled'}),
43
+ disabled: opts.solid({base, dark, tone: 'caution', name, state: 'disabled'}),
44
+ hovered: opts.solid({base, dark, tone: 'caution', name, state: 'hovered'}),
45
+ pressed: opts.solid({base, dark, tone: 'caution', name, state: 'pressed'}),
46
+ selected: opts.solid({base, dark, tone: 'caution', name, state: 'selected'}),
47
+ },
48
+ critical: {
49
+ enabled: opts.solid({base, dark, tone: 'critical', name, state: 'enabled'}),
50
+ disabled: opts.solid({base, dark, tone: 'critical', name, state: 'disabled'}),
51
+ hovered: opts.solid({base, dark, tone: 'critical', name, state: 'hovered'}),
52
+ pressed: opts.solid({base, dark, tone: 'critical', name, state: 'pressed'}),
53
+ selected: opts.solid({base, dark, tone: 'critical', name, state: 'selected'}),
54
+ },
55
+ }
56
+ }
@@ -0,0 +1 @@
1
+ export * from './types'
@@ -0,0 +1,24 @@
1
+ import {ThemeColorGenericState} from '../_generic/types'
2
+
3
+ /**
4
+ * @public
5
+ */
6
+ export interface ThemeColorSolidTone {
7
+ enabled: ThemeColorGenericState
8
+ disabled: ThemeColorGenericState
9
+ hovered: ThemeColorGenericState
10
+ pressed: ThemeColorGenericState
11
+ selected: ThemeColorGenericState
12
+ }
13
+
14
+ /**
15
+ * @public
16
+ */
17
+ export interface ThemeColorSolid {
18
+ default: ThemeColorSolidTone
19
+ transparent: ThemeColorSolidTone
20
+ primary: ThemeColorSolidTone
21
+ positive: ThemeColorSolidTone
22
+ caution: ThemeColorSolidTone
23
+ critical: ThemeColorSolidTone
24
+ }
@@ -0,0 +1,21 @@
1
+ import {ThemeColorBase} from '../base'
2
+ import {ThemeColorBuilderOpts} from '../factory'
3
+ import {ThemeColorSpot} from './types'
4
+
5
+ export function createSpot(
6
+ opts: ThemeColorBuilderOpts,
7
+ base: ThemeColorBase,
8
+ dark: boolean,
9
+ ): ThemeColorSpot {
10
+ return {
11
+ gray: opts.spot({base, dark, key: 'gray'}),
12
+ blue: opts.spot({base, dark, key: 'blue'}),
13
+ purple: opts.spot({base, dark, key: 'purple'}),
14
+ magenta: opts.spot({base, dark, key: 'magenta'}),
15
+ red: opts.spot({base, dark, key: 'red'}),
16
+ orange: opts.spot({base, dark, key: 'orange'}),
17
+ yellow: opts.spot({base, dark, key: 'yellow'}),
18
+ green: opts.spot({base, dark, key: 'green'}),
19
+ cyan: opts.spot({base, dark, key: 'cyan'}),
20
+ }
21
+ }
@@ -0,0 +1 @@
1
+ export * from './types'
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @public
3
+ */
4
+ export type ThemeColorSpotKey =
5
+ | 'gray'
6
+ | 'blue'
7
+ | 'purple'
8
+ | 'magenta'
9
+ | 'red'
10
+ | 'orange'
11
+ | 'yellow'
12
+ | 'green'
13
+ | 'cyan'
14
+
15
+ /**
16
+ * @public
17
+ */
18
+ export interface ThemeColorSpot {
19
+ gray: string
20
+ blue: string
21
+ purple: string
22
+ magenta: string
23
+ red: string
24
+ orange: string
25
+ yellow: string
26
+ green: string
27
+ cyan: string
28
+ }
@@ -0,0 +1 @@
1
+ export * from './types'
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @public
3
+ */
4
+ export interface ThemeColorSyntax {
5
+ atrule: string
6
+ attrName: string
7
+ attrValue: string
8
+ attribute: string
9
+ boolean: string
10
+ builtin: string
11
+ cdata: string
12
+ char: string
13
+ class: string
14
+ className: string
15
+ comment: string
16
+ constant: string
17
+ deleted: string
18
+ doctype: string
19
+ entity: string
20
+ function: string
21
+ hexcode: string
22
+ id: string
23
+ important: string
24
+ inserted: string
25
+ keyword: string
26
+ number: string
27
+ operator: string
28
+ prolog: string
29
+ property: string
30
+ pseudoClass: string
31
+ pseudoElement: string
32
+ punctuation: string
33
+ regex: string
34
+ selector: string
35
+ string: string
36
+ symbol: string
37
+ tag: string
38
+ unit: string
39
+ url: string
40
+ variable: string
41
+ }
@@ -1,4 +1,12 @@
1
- import {ColorTints} from '@sanity/color'
1
+ import {ThemeColorBase} from './base'
2
+ import {ThemeColorButton} from './button'
3
+ import {ThemeColorCard} from './card'
4
+ import {ThemeColorInput} from './input'
5
+ import {ThemeColorMuted} from './muted'
6
+ import {ThemeColorSelectable} from './selectable'
7
+ import {ThemeColorSolid} from './solid'
8
+ import {ThemeColorSpot} from './spot'
9
+ import {ThemeColorSyntax} from './syntax'
2
10
 
3
11
  /**
4
12
  * @public
@@ -30,12 +38,35 @@ export type ThemeColorToneKey =
30
38
  /**
31
39
  * @public
32
40
  */
33
- export interface ThemeColorSchemes {
34
- // Could we update this to only return Record<ThemeColorName , keyof typeof hues> ? Then the function that assigns the color would search the ColorTint
35
- tones: Record<ThemeColorName, ColorTints>
41
+ export interface ThemeColor {
42
+ dark: boolean
43
+ base: ThemeColorBase
44
+ button: ThemeColorButton
45
+ card: ThemeColorCard
46
+ input: ThemeColorInput
47
+ selectable?: ThemeColorSelectable
48
+ spot: ThemeColorSpot
49
+ syntax: ThemeColorSyntax
50
+ solid: ThemeColorSolid
51
+ muted: ThemeColorMuted
36
52
  }
37
53
 
38
54
  /**
39
- * @beta
55
+ * @public
40
56
  */
41
- export type CSSVariableKey = ThemeColorName & ('spot' | 'syntax' | 'mutable')
57
+ export interface ThemeColorScheme {
58
+ default: ThemeColor
59
+ transparent: ThemeColor
60
+ primary: ThemeColor
61
+ positive: ThemeColor
62
+ caution: ThemeColor
63
+ critical: ThemeColor
64
+ }
65
+
66
+ /**
67
+ * @public
68
+ */
69
+ export interface ThemeColorSchemes {
70
+ dark: ThemeColorScheme
71
+ light: ThemeColorScheme
72
+ }