@sanity/ui 1.8.3 → 2.0.0-alpha.10

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 (137) hide show
  1. package/dist/index.cjs.mjs +3 -0
  2. package/dist/index.d.ts +339 -415
  3. package/dist/index.esm.js +5374 -2489
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/index.js +5375 -2487
  6. package/dist/index.js.map +1 -1
  7. package/package.json +21 -3
  8. package/src/components/autocomplete/autocomplete.tsx +2 -1
  9. package/src/components/dialog/constants.ts +4 -0
  10. package/src/components/dialog/dialog.tsx +89 -27
  11. package/src/components/dialog/styles.ts +3 -4
  12. package/src/components/hotkeys/hotkeys.tsx +2 -1
  13. package/src/components/menu/__workshop__/closableMenuButton.tsx +2 -2
  14. package/src/components/menu/menuButton.tsx +2 -2
  15. package/src/components/menu/menuDivider.ts +2 -1
  16. package/src/components/menu/menuGroup.tsx +24 -25
  17. package/src/components/menu/menuItem.tsx +31 -37
  18. package/src/components/skeleton/styles.ts +8 -7
  19. package/src/components/tab/tab.tsx +2 -1
  20. package/src/components/tree/style.ts +19 -20
  21. package/src/primitives/_selectable/style.ts +25 -23
  22. package/src/primitives/avatar/avatar.tsx +8 -3
  23. package/src/primitives/avatar/avatarCounter.tsx +5 -4
  24. package/src/primitives/avatar/spotColors.ts +53 -0
  25. package/src/primitives/avatar/styles.ts +6 -8
  26. package/src/primitives/avatar/types.ts +14 -0
  27. package/src/primitives/badge/badge.tsx +5 -3
  28. package/src/primitives/badge/styles.ts +7 -8
  29. package/src/primitives/box/__workshop__/responsive.tsx +2 -2
  30. package/src/primitives/button/__workshop__/sanityUploadButton.tsx +1 -2
  31. package/src/primitives/button/button.tsx +8 -9
  32. package/src/primitives/button/styles.ts +100 -17
  33. package/src/primitives/card/__workshop__/selected.tsx +8 -9
  34. package/src/primitives/card/card.tsx +43 -7
  35. package/src/primitives/card/styles.ts +31 -24
  36. package/src/primitives/card/types.ts +3 -1
  37. package/src/primitives/checkbox/checkbox.tsx +1 -0
  38. package/src/primitives/checkbox/styles.ts +53 -23
  39. package/src/primitives/code/code.tsx +15 -3
  40. package/src/primitives/code/styles.ts +51 -42
  41. package/src/primitives/heading/styles.ts +6 -5
  42. package/src/primitives/kbd/kbd.tsx +7 -6
  43. package/src/primitives/label/styles.ts +3 -2
  44. package/src/primitives/popover/popoverArrow.tsx +3 -2
  45. package/src/primitives/popover/popoverCard.tsx +8 -4
  46. package/src/primitives/radio/radio.tsx +1 -0
  47. package/src/primitives/radio/styles.ts +26 -13
  48. package/src/primitives/select/select.tsx +3 -2
  49. package/src/primitives/select/styles.ts +22 -24
  50. package/src/primitives/switch/__workshop__/props.tsx +4 -4
  51. package/src/primitives/switch/styles.ts +19 -12
  52. package/src/primitives/text/__workshop__/colored.tsx +10 -11
  53. package/src/primitives/text/styles.ts +10 -8
  54. package/src/primitives/textArea/textArea.tsx +8 -12
  55. package/src/primitives/textInput/textInput.tsx +15 -14
  56. package/src/primitives/tooltip/__workshop__/props.tsx +20 -3
  57. package/src/primitives/tooltip/tooltip.tsx +2 -2
  58. package/src/primitives/tooltip/tooltipArrow.tsx +3 -2
  59. package/src/primitives/types.ts +3 -2
  60. package/src/styles/border/borderStyle.ts +2 -1
  61. package/src/styles/colorVars/colorVarsStyle.ts +73 -30
  62. package/src/styles/focusRing/index.ts +8 -4
  63. package/src/styles/input/textInputStyle.ts +78 -94
  64. package/src/styles/margin/marginsStyle.test.ts +1 -2
  65. package/src/styles/padding/paddingStyle.test.ts +1 -2
  66. package/src/styles/radius/radiusStyle.ts +14 -4
  67. package/src/styles/radius/types.ts +3 -1
  68. package/src/styles/shadow/shadowStyle.ts +5 -5
  69. package/src/theme/__workshop__/color.tsx +2 -2
  70. package/src/theme/__workshop__/index.ts +0 -5
  71. package/src/theme/lib/color-fns/blend/multiply.ts +2 -2
  72. package/src/theme/lib/color-fns/blend/screen.ts +2 -2
  73. package/src/theme/lib/color-fns/convert.ts +15 -1
  74. package/src/theme/lib/color-fns/parse.ts +7 -3
  75. package/src/theme/lib/color-fns/types.ts +11 -0
  76. package/src/theme/lib/theme/avatar.ts +3 -0
  77. package/src/theme/lib/theme/color/_legacy/createColorTheme.ts +7 -0
  78. package/src/theme/lib/theme/color/_legacy/index.ts +1 -0
  79. package/src/theme/lib/theme/color/_legacy/legacyColor.ts +3997 -0
  80. package/src/theme/lib/theme/color/cssVariables/cardVariables.ts +88 -0
  81. package/src/theme/lib/theme/color/cssVariables/createCssVars.ts +31 -0
  82. package/src/theme/lib/theme/color/cssVariables/cssVars.test.ts +262 -0
  83. package/src/theme/lib/theme/color/cssVariables/index.ts +1 -0
  84. package/src/theme/lib/theme/color/cssVariables/tints.ts +312 -0
  85. package/src/theme/lib/theme/color/cssVariables/tones.ts +67 -0
  86. package/src/theme/lib/theme/color/cssVariables/utils.test.ts +15 -0
  87. package/src/theme/lib/theme/color/cssVariables/utils.ts +9 -0
  88. package/src/theme/lib/theme/color/index.ts +3 -12
  89. package/src/theme/lib/theme/color/types.ts +6 -37
  90. package/src/theme/lib/theme/input.ts +11 -0
  91. package/src/theme/lib/theme/theme.ts +7 -1
  92. package/src/theme/studioTheme/color.ts +6 -633
  93. package/src/theme/studioTheme/fonts.ts +3 -3
  94. package/src/theme/studioTheme/helpers.ts +15 -1
  95. package/src/theme/studioTheme/theme.ts +26 -6
  96. package/src/theme/themeColorProvider.tsx +2 -0
  97. package/src/theme/themeProvider.tsx +28 -8
  98. package/src/theme/toneContext/toneContext.ts +12 -0
  99. package/src/theme/toneContext/toneProvider.tsx +31 -0
  100. package/src/theme/toneContext/types.ts +10 -0
  101. package/src/theme/toneContext/useToneContext.tsx +26 -0
  102. package/src/theme/types.ts +10 -4
  103. package/src/types/index.ts +1 -0
  104. package/src/types/radius.ts +4 -0
  105. package/src/utils/elementQuery/__workshop__/customMedia.tsx +4 -3
  106. package/src/theme/__workshop__/canvas.tsx +0 -395
  107. package/src/theme/lib/theme/color/_generic/index.ts +0 -1
  108. package/src/theme/lib/theme/color/_generic/types.ts +0 -29
  109. package/src/theme/lib/theme/color/base/index.ts +0 -1
  110. package/src/theme/lib/theme/color/base/types.ts +0 -19
  111. package/src/theme/lib/theme/color/button/createButtonModes.ts +0 -20
  112. package/src/theme/lib/theme/color/button/createButtonTones.ts +0 -52
  113. package/src/theme/lib/theme/color/button/index.ts +0 -1
  114. package/src/theme/lib/theme/color/button/types.ts +0 -44
  115. package/src/theme/lib/theme/color/card/createCardStates.ts +0 -58
  116. package/src/theme/lib/theme/color/card/index.ts +0 -1
  117. package/src/theme/lib/theme/color/card/types.ts +0 -18
  118. package/src/theme/lib/theme/color/color.test.ts +0 -62
  119. package/src/theme/lib/theme/color/defaults.ts +0 -382
  120. package/src/theme/lib/theme/color/factory.ts +0 -138
  121. package/src/theme/lib/theme/color/input/createInputModes.ts +0 -84
  122. package/src/theme/lib/theme/color/input/index.ts +0 -1
  123. package/src/theme/lib/theme/color/input/types.ts +0 -27
  124. package/src/theme/lib/theme/color/muted/createMuted.ts +0 -56
  125. package/src/theme/lib/theme/color/muted/index.ts +0 -1
  126. package/src/theme/lib/theme/color/muted/types.ts +0 -24
  127. package/src/theme/lib/theme/color/selectable/createSelectableTones.ts +0 -73
  128. package/src/theme/lib/theme/color/selectable/index.ts +0 -1
  129. package/src/theme/lib/theme/color/selectable/types.ts +0 -29
  130. package/src/theme/lib/theme/color/solid/createSolidTones.ts +0 -56
  131. package/src/theme/lib/theme/color/solid/index.ts +0 -1
  132. package/src/theme/lib/theme/color/solid/types.ts +0 -24
  133. package/src/theme/lib/theme/color/spot/createSpot.ts +0 -21
  134. package/src/theme/lib/theme/color/spot/index.ts +0 -1
  135. package/src/theme/lib/theme/color/spot/types.ts +0 -28
  136. package/src/theme/lib/theme/color/syntax/index.ts +0 -1
  137. package/src/theme/lib/theme/color/syntax/types.ts +0 -41
@@ -0,0 +1,88 @@
1
+ import {tonesCssVariables} from './tones'
2
+
3
+ /**
4
+ * @internal
5
+ * This variables can be changed by other components besides the `Card` component itself.
6
+ */
7
+ export const mutableCardVariables = {
8
+ 'bg-color': '--card-bg-color',
9
+ 'muted-fg-color': '--card-muted-fg-color',
10
+ 'icon-color': '--card-icon-color',
11
+ 'fg-color': '--card-fg-color',
12
+ 'bg-image': '--card-bg-image',
13
+ 'accent-color': '--card-accent-fg-color',
14
+ } as const
15
+
16
+ /**
17
+ * @internal
18
+ * This are the only variables that are exposed, as they can be updated and used by other components.
19
+ */
20
+ export const mutableVariables: Record<keyof typeof mutableCardVariables, string> = Object.keys(
21
+ mutableCardVariables,
22
+ ).reduce(
23
+ (acc, key) => {
24
+ const item = key as keyof typeof mutableCardVariables
25
+
26
+ acc[item] = `var(${mutableCardVariables[item]})`
27
+
28
+ return acc
29
+ },
30
+ {} as Record<keyof typeof mutableCardVariables, string>,
31
+ )
32
+
33
+ /**
34
+ * @internal
35
+ * This variables can not be changed by other components, they are here for backwards compatibility.
36
+ * Shouldn't be used inside any component in @sanity/ui
37
+ */
38
+ const legacyFixedVariables = [
39
+ '--card-shadow-outline-color',
40
+ '--card-shadow-umbra-color',
41
+ '--card-shadow-penumbra-color',
42
+ '--card-shadow-ambient-color',
43
+ '--card-focus-ring-color',
44
+ '--card-link-fg-color',
45
+ '--card-code-bg-color',
46
+ '--card-code-fg-color',
47
+ '--card-skeleton-color-from',
48
+ '--card-skeleton-color-to',
49
+ '--card-link-color',
50
+ '--card-hairline-soft-color',
51
+ '--card-hairline-hard-color',
52
+ '--card-border-color',
53
+ ] as const
54
+
55
+ const allVariables = [...Object.values(mutableCardVariables), ...legacyFixedVariables] as const
56
+
57
+ type CardCssVariable = (typeof allVariables)[number]
58
+
59
+ /**
60
+ * @internal
61
+ */
62
+ export const cardVariables: Record<CardCssVariable, string> = {
63
+ '--card-shadow-outline-color': tonesCssVariables.default['base-shadow-outline-color'],
64
+ '--card-shadow-umbra-color': tonesCssVariables.default['base-shadow-umbra-color'],
65
+ '--card-shadow-penumbra-color': tonesCssVariables.default['base-shadow-penumbra-color'],
66
+ '--card-shadow-ambient-color': tonesCssVariables.default['base-shadow-ambient-color'],
67
+ '--card-focus-ring-color': tonesCssVariables.positive['bg-accent'],
68
+
69
+ '--card-icon-color': tonesCssVariables.default['icon-default'],
70
+
71
+ // Card
72
+ '--card-bg-color': tonesCssVariables.default['bg-base'],
73
+ '--card-bg-image': 'inherit',
74
+ '--card-fg-color': tonesCssVariables.default['text-primary'],
75
+ '--card-border-color': tonesCssVariables.default['border-base'],
76
+ '--card-muted-fg-color': tonesCssVariables.default['text-secondary'],
77
+ '--card-accent-fg-color': tonesCssVariables.default['text-accent'],
78
+ '--card-link-fg-color': tonesCssVariables.default['text-link'],
79
+ '--card-code-bg-color': tonesCssVariables.default['bg-tint-code'],
80
+ '--card-code-fg-color': tonesCssVariables.default['text-code'],
81
+ '--card-skeleton-color-from': tonesCssVariables.default['skeleton-from'],
82
+ '--card-skeleton-color-to': tonesCssVariables.default['skeleton-to'],
83
+
84
+ // @todo: deprecate
85
+ '--card-link-color': tonesCssVariables.default['text-link'],
86
+ '--card-hairline-soft-color': tonesCssVariables.default['border-base'],
87
+ '--card-hairline-hard-color': tonesCssVariables.default['border-base'],
88
+ }
@@ -0,0 +1,31 @@
1
+ import {ColorTints} from '@sanity/color'
2
+ import {ThemeColorName, ThemeColorSchemeKey} from '../types'
3
+ import {cardVariables, mutableVariables} from './cardVariables'
4
+ import {getColorHex} from './tints'
5
+ import {createTonesVariables, tonesCssVariables} from './tones'
6
+
7
+ /**
8
+ * @beta
9
+ */
10
+ export const createCssVars = (
11
+ scheme: ThemeColorSchemeKey,
12
+ tones: Record<ThemeColorName, ColorTints>,
13
+ defaultTone: ThemeColorName = 'default',
14
+ ): Record<string, string> => {
15
+ const baseBg = getColorHex(tones[defaultTone], scheme, defaultTone, 'base-bg-card')
16
+ const tonesVars = createTonesVariables(scheme, tones, defaultTone, baseBg)
17
+
18
+ return {...tonesVars, ...cardVariables}
19
+ }
20
+
21
+ /**
22
+ * @beta
23
+ */
24
+ export const cssVars = {
25
+ ...tonesCssVariables,
26
+ /**
27
+ * This variables are mutable, they can be updated by other components.
28
+ * The main component that updates them is the card, these are the only ones that should be exposed for use from the cards.
29
+ */
30
+ mutable: mutableVariables,
31
+ }
@@ -0,0 +1,262 @@
1
+ import {ColorTints, hues} from '@sanity/color'
2
+ import {ThemeColorName} from '../types'
3
+ import {createCssVars} from './createCssVars'
4
+
5
+ export const tones: Record<ThemeColorName, ColorTints> = {
6
+ default: hues.gray,
7
+ transparent: hues.gray,
8
+ primary: hues.gray,
9
+ positive: hues.cyan,
10
+ caution: hues.yellow,
11
+ critical: hues.red,
12
+ } as const
13
+
14
+ describe('css variables', () => {
15
+ it('Should create the variables when no default tone is provided', () => {
16
+ const result = createCssVars('light', tones)
17
+
18
+ const expected = {
19
+ '--default-text-primary': '#1f2228',
20
+ '--default-text-secondary': '#5e6573',
21
+ '--default-text-inactive': '#788191',
22
+ '--default-text-code': '#5e6573',
23
+ '--default-text-muted': '#5e6573',
24
+ '--default-text-link': '#0661fe',
25
+ '--default-text-accent': '#ec4636',
26
+ '--default-bg-base': '#ffffff',
27
+ '--default-bg-base-hover': '#f9f9fa',
28
+ '--default-bg-base-active': '#f3f4f6',
29
+ '--default-bg-accent': '#1f2228',
30
+ '--default-bg-accent-hover': '#17191c',
31
+ '--default-bg-accent-active': '#111213',
32
+ '--default-bg-tint': '#f9f9fa',
33
+ '--default-bg-tint-code': '#f9f9fa',
34
+ '--default-icon-default': '#788191',
35
+ '--default-icon-inverted': '#ffffff',
36
+ '--default-border-base': '#f3f4f6',
37
+ '--default-border-base-hover': '#e2e6e9',
38
+ '--default-border-accent': '#5e6573',
39
+ '--default-border-accent-inverted': '#ffffff',
40
+ '--default-base-bg-card': '#ffffff',
41
+ '--default-base-bg-raw': '#ffffff',
42
+ '--default-base-shadow-outline-color': 'rgba(120,129,145,0.2)',
43
+ '--default-base-shadow-umbra-color': 'rgba(120,129,145,0.1)',
44
+ '--default-base-shadow-penumbra-color': 'rgba(120,129,145,0.07)',
45
+ '--default-base-shadow-ambient-color': 'rgba(120,129,145,0.06)',
46
+ '--default-base-text-color': '#ffffff',
47
+ '--default-skeleton-from': '#f3f4f6',
48
+ '--default-skeleton-to': 'rgba(249,249,250,0.5)',
49
+ '--transparent-text-primary': '#1f2228',
50
+ '--transparent-text-secondary': '#5e6573',
51
+ '--transparent-text-inactive': '#788191',
52
+ '--transparent-text-code': '#5e6573',
53
+ '--transparent-text-muted': '#5e6573',
54
+ '--transparent-text-link': '#0661fe',
55
+ '--transparent-text-accent': '#ec4636',
56
+ '--transparent-bg-base': '#ffffff',
57
+ '--transparent-bg-base-hover': '#f9f9fa',
58
+ '--transparent-bg-base-active': '#f3f4f6',
59
+ '--transparent-bg-accent': '#788191',
60
+ '--transparent-bg-accent-hover': '#5e6573',
61
+ '--transparent-bg-accent-active': '#464c58',
62
+ '--transparent-bg-tint': '#f9f9fa',
63
+ '--transparent-bg-tint-code': '#f9f9fa',
64
+ '--transparent-icon-default': '#788191',
65
+ '--transparent-icon-inverted': '#ffffff',
66
+ '--transparent-border-base': '#f3f4f6',
67
+ '--transparent-border-base-hover': '#e2e6e9',
68
+ '--transparent-border-accent': '#788191',
69
+ '--transparent-border-accent-inverted': '#ffffff',
70
+ '--transparent-base-bg-card': '#f9f9fa',
71
+ '--transparent-base-bg-raw': '#ffffff',
72
+ '--transparent-base-shadow-outline-color': 'rgba(120,129,145,0.2)',
73
+ '--transparent-base-shadow-umbra-color': 'rgba(120,129,145,0.1)',
74
+ '--transparent-base-shadow-penumbra-color': 'rgba(120,129,145,0.07)',
75
+ '--transparent-base-shadow-ambient-color': 'rgba(120,129,145,0.06)',
76
+ '--transparent-base-text-color': '#ffffff',
77
+ '--transparent-skeleton-from': '#f3f4f6',
78
+ '--transparent-skeleton-to': 'rgba(249,249,250,0.5)',
79
+ '--primary-text-primary': '#1f2228',
80
+ '--primary-text-secondary': '#5e6573',
81
+ '--primary-text-inactive': '#788191',
82
+ '--primary-text-code': '#5e6573',
83
+ '--primary-text-muted': '#5e6573',
84
+ '--primary-text-link': '#0661fe',
85
+ '--primary-text-accent': '#ec4636',
86
+ '--primary-bg-base': '#ffffff',
87
+ '--primary-bg-base-hover': '#f9f9fa',
88
+ '--primary-bg-base-active': '#f3f4f6',
89
+ '--primary-bg-accent': '#1f2228',
90
+ '--primary-bg-accent-hover': '#17191c',
91
+ '--primary-bg-accent-active': '#111213',
92
+ '--primary-bg-tint': '#f9f9fa',
93
+ '--primary-bg-tint-code': '#f9f9fa',
94
+ '--primary-icon-default': '#788191',
95
+ '--primary-icon-inverted': '#ffffff',
96
+ '--primary-border-base': '#f3f4f6',
97
+ '--primary-border-base-hover': '#e2e6e9',
98
+ '--primary-border-accent': '#5e6573',
99
+ '--primary-border-accent-inverted': '#ffffff',
100
+ '--primary-base-bg-card': '#f9f9fa',
101
+ '--primary-base-bg-raw': '#ffffff',
102
+ '--primary-base-shadow-outline-color': 'rgba(120,129,145,0.2)',
103
+ '--primary-base-shadow-umbra-color': 'rgba(120,129,145,0.1)',
104
+ '--primary-base-shadow-penumbra-color': 'rgba(120,129,145,0.07)',
105
+ '--primary-base-shadow-ambient-color': 'rgba(120,129,145,0.06)',
106
+ '--primary-base-text-color': '#ffffff',
107
+ '--primary-skeleton-from': '#f3f4f6',
108
+ '--primary-skeleton-to': 'rgba(249,249,250,0.5)',
109
+ '--positive-text-primary': '#0b2a32',
110
+ '--positive-text-secondary': '#0e9ebe',
111
+ '--positive-text-inactive': '#0ecff1',
112
+ '--positive-text-code': '#0e9ebe',
113
+ '--positive-text-muted': '#0e9ebe',
114
+ '--positive-text-link': '#0661fe',
115
+ '--positive-text-accent': '#ec4636',
116
+ '--positive-bg-base': '#ffffff',
117
+ '--positive-bg-base-hover': '#f9f9fa',
118
+ '--positive-bg-base-active': '#ebfdff',
119
+ '--positive-bg-accent': '#41e1f6',
120
+ '--positive-bg-accent-hover': '#0ecff1',
121
+ '--positive-bg-accent-active': '#0e9ebe',
122
+ '--positive-bg-tint': '#ebfdff',
123
+ '--positive-bg-tint-code': '#ebfdff',
124
+ '--positive-icon-default': '#0ecff1',
125
+ '--positive-icon-inverted': '#ffffff',
126
+ '--positive-border-base': '#d2fcfe',
127
+ '--positive-border-base-hover': '#aaf8fd',
128
+ '--positive-border-accent': '#41e1f6',
129
+ '--positive-border-accent-inverted': '#ffffff',
130
+ '--positive-base-bg-card': '#ebfdff',
131
+ '--positive-base-bg-raw': '#ffffff',
132
+ '--positive-base-shadow-outline-color': 'rgba(14,207,241,0.2)',
133
+ '--positive-base-shadow-umbra-color': 'rgba(14,207,241,0.1)',
134
+ '--positive-base-shadow-penumbra-color': 'rgba(14,207,241,0.07)',
135
+ '--positive-base-shadow-ambient-color': 'rgba(14,207,241,0.06)',
136
+ '--positive-base-text-color': '#ffffff',
137
+ '--positive-skeleton-from': '#d2fcfe',
138
+ '--positive-skeleton-to': 'rgba(235,253,255,0.5)',
139
+ '--caution-text-primary': '#331f0a',
140
+ '--caution-text-secondary': '#cb920b',
141
+ '--caution-text-inactive': '#f3bc16',
142
+ '--caution-text-code': '#cb920b',
143
+ '--caution-text-muted': '#cb920b',
144
+ '--caution-text-link': '#0661fe',
145
+ '--caution-text-accent': '#ec4636',
146
+ '--caution-bg-base': '#ffffff',
147
+ '--caution-bg-base-hover': '#fffdf0',
148
+ '--caution-bg-base-active': '#fef7cd',
149
+ '--caution-bg-accent': '#f3bc16',
150
+ '--caution-bg-accent-hover': '#cb920b',
151
+ '--caution-bg-accent-active': '#98670b',
152
+ '--caution-bg-tint': '#fffdf0',
153
+ '--caution-bg-tint-code': '#fffdf0',
154
+ '--caution-icon-default': '#f3bc16',
155
+ '--caution-icon-inverted': '#ffffff',
156
+ '--caution-border-base': '#fef7cd',
157
+ '--caution-border-base-hover': '#fbf1a7',
158
+ '--caution-border-accent': '#f3bc16',
159
+ '--caution-border-accent-inverted': '#ffffff',
160
+ '--caution-base-bg-card': '#fffdf0',
161
+ '--caution-base-bg-raw': '#ffffff',
162
+ '--caution-base-shadow-outline-color': 'rgba(243,188,22,0.2)',
163
+ '--caution-base-shadow-umbra-color': 'rgba(243,188,22,0.1)',
164
+ '--caution-base-shadow-penumbra-color': 'rgba(243,188,22,0.07)',
165
+ '--caution-base-shadow-ambient-color': 'rgba(243,188,22,0.06)',
166
+ '--caution-base-text-color': '#ffffff',
167
+ '--caution-skeleton-from': '#fef7cd',
168
+ '--caution-skeleton-to': 'rgba(255,253,240,0.5)',
169
+ '--critical-text-primary': '#421410',
170
+ '--critical-text-secondary': '#d72414',
171
+ '--critical-text-inactive': '#f6a098',
172
+ '--critical-text-code': '#d72414',
173
+ '--critical-text-muted': '#d72414',
174
+ '--critical-text-link': '#0661fe',
175
+ '--critical-text-accent': '#ec4636',
176
+ '--critical-bg-base': '#ffffff',
177
+ '--critical-bg-base-hover': '#fff5f5',
178
+ '--critical-bg-base-active': '#fee8e7',
179
+ '--critical-bg-accent': '#ec4636',
180
+ '--critical-bg-accent-hover': '#d72414',
181
+ '--critical-bg-accent-active': '#a52112',
182
+ '--critical-bg-tint': '#fff5f5',
183
+ '--critical-bg-tint-code': '#fff5f5',
184
+ '--critical-icon-default': '#ec4636',
185
+ '--critical-icon-inverted': '#ffffff',
186
+ '--critical-border-base': '#fee8e7',
187
+ '--critical-border-base-hover': '#fbccc6',
188
+ '--critical-border-accent': '#ec4636',
189
+ '--critical-border-accent-inverted': '#ffffff',
190
+ '--critical-base-bg-card': '#fff5f5',
191
+ '--critical-base-bg-raw': '#ffffff',
192
+ '--critical-base-shadow-outline-color': 'rgba(236,70,54,0.2)',
193
+ '--critical-base-shadow-umbra-color': 'rgba(236,70,54,0.1)',
194
+ '--critical-base-shadow-penumbra-color': 'rgba(236,70,54,0.07)',
195
+ '--critical-base-shadow-ambient-color': 'rgba(236,70,54,0.06)',
196
+ '--critical-base-text-color': '#ffffff',
197
+ '--critical-skeleton-from': '#fee8e7',
198
+ '--critical-skeleton-to': 'rgba(255,245,245,0.5)',
199
+ '--card-shadow-outline-color': 'var(--default-base-shadow-outline-color)',
200
+ '--card-shadow-umbra-color': 'var(--default-base-shadow-umbra-color)',
201
+ '--card-shadow-penumbra-color': 'var(--default-base-shadow-penumbra-color)',
202
+ '--card-shadow-ambient-color': 'var(--default-base-shadow-ambient-color)',
203
+ '--card-focus-ring-color': 'var(--positive-bg-accent)',
204
+ '--card-icon-color': 'var(--default-icon-default)',
205
+ '--card-bg-image': 'inherit',
206
+ '--card-bg-color': 'var(--default-bg-base)',
207
+ '--card-fg-color': 'var(--default-text-primary)',
208
+ '--card-muted-fg-color': 'var(--default-text-secondary)',
209
+ '--card-accent-fg-color': 'var(--default-text-accent)',
210
+ '--card-link-fg-color': 'var(--default-text-link)',
211
+ '--card-code-bg-color': 'var(--default-bg-tint-code)',
212
+ '--card-code-fg-color': 'var(--default-text-code)',
213
+ '--card-skeleton-color-from': 'var(--default-skeleton-from)',
214
+ '--card-skeleton-color-to': 'var(--default-skeleton-to)',
215
+ '--card-link-color': 'var(--default-text-link)',
216
+ '--card-hairline-soft-color': 'var(--default-border-base)',
217
+ '--card-hairline-hard-color': 'var(--default-border-base)',
218
+ '--card-border-color': 'var(--default-border-base)',
219
+ }
220
+
221
+ expect(result).toEqual(expected)
222
+ })
223
+ it('Should create the variables when a default tone is provided in light mode', () => {
224
+ const defaultVariables = createCssVars('light', tones)
225
+ const result = createCssVars('light', tones, 'caution')
226
+
227
+ expect(result['--default-text-primary']).toEqual(result['--caution-text-primary'])
228
+ // It's not equal because it has been mixed with the default bg
229
+ expect(result['--default-text-primary']).not.toEqual(defaultVariables['--caution-text-primary'])
230
+
231
+ expect(result['--default-text-secondary']).toEqual(result['--caution-text-secondary'])
232
+ // It's not equal because it has been mixed with the default bg
233
+ expect(result['--default-text-secondary']).not.toEqual(
234
+ defaultVariables['--caution-text-secondary'],
235
+ )
236
+ // The default base bg should not be mixed
237
+ expect(result['--default-bg_base']).toEqual(defaultVariables['--caution-card_base_bg'])
238
+
239
+ expect(result['--default-base-shadow-ambient-color']).toEqual(
240
+ defaultVariables['--caution-base-shadow-ambient-color'],
241
+ )
242
+ expect(result['--default-base-shadow-ambient-color']).not.toEqual(
243
+ defaultVariables['--positive-base-shadow-ambient-color'],
244
+ )
245
+ })
246
+ it('Should create the variables when a default tone is provided in dark mode', () => {
247
+ const defaultVariables = createCssVars('dark', tones)
248
+ const result = createCssVars('dark', tones, 'caution')
249
+
250
+ expect(result['--default-text-primary']).toEqual(result['--caution-text-primary'])
251
+ // It's not equal because it has been mixed with the default bg
252
+ expect(result['--default-text-primary']).not.toEqual(defaultVariables['--caution-text-primary'])
253
+
254
+ expect(result['--default-text-secondary']).toEqual(result['--caution-text-secondary'])
255
+ // It's not equal because it has been mixed with the default bg
256
+ expect(result['--default-text-secondary']).not.toEqual(
257
+ defaultVariables['--caution-text-secondary'],
258
+ )
259
+ // The base bg should not be mixed
260
+ expect(result['--default-bg_base']).toEqual(defaultVariables['--caution-card_base_bg'])
261
+ })
262
+ })
@@ -0,0 +1 @@
1
+ export * from './createCssVars'