@sanity/ui 2.0.0-alpha.34 → 2.0.0-alpha.35
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.
- package/dist/index.cjs.mjs +4 -3
- package/dist/index.d.ts +29 -22
- package/dist/index.esm.js +397 -518
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +413 -534
- package/dist/index.js.map +1 -1
- package/dist/theme.cjs.mjs +10 -4
- package/dist/theme.d.ts +450 -187
- package/dist/theme.esm.js +2933 -2750
- package/dist/theme.esm.js.map +1 -1
- package/dist/theme.js +2942 -2753
- package/dist/theme.js.map +1 -1
- package/package.json +3 -3
- package/src/core/_compat.ts +7 -7
- package/src/core/components/dialog/dialog.tsx +5 -5
- package/src/core/components/dialog/styles.ts +4 -5
- package/src/core/components/hotkeys/hotkeys.tsx +4 -2
- package/src/core/components/menu/__workshop__/avatarMenu.tsx +50 -0
- package/src/core/components/menu/__workshop__/index.ts +5 -0
- package/src/core/components/menu/menuItem.tsx +7 -1
- package/src/core/components/skeleton/textSkeleton.tsx +12 -14
- package/src/core/components/tree/style.ts +14 -17
- package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +3 -3
- package/src/core/hooks/useMediaIndex/useMediaIndex.ts +2 -3
- package/src/core/primitives/_selectable/style.ts +18 -18
- package/src/core/primitives/avatar/avatar.tsx +3 -3
- package/src/core/primitives/avatar/avatarCounter.tsx +4 -4
- package/src/core/primitives/avatar/avatarStack.tsx +2 -2
- package/src/core/primitives/avatar/styles.ts +7 -8
- package/src/core/primitives/avatar/types.ts +2 -2
- package/src/core/primitives/badge/__workshop__/props.tsx +1 -1
- package/src/core/primitives/badge/__workshop__/tones.tsx +1 -1
- package/src/core/primitives/badge/badge.tsx +1 -1
- package/src/core/primitives/badge/styles.ts +5 -6
- package/src/core/primitives/button/button.tsx +3 -4
- package/src/core/primitives/button/styles.ts +22 -23
- package/src/core/primitives/card/__workshop__/selected.tsx +15 -15
- package/src/core/primitives/card/card.tsx +1 -1
- package/src/core/primitives/card/styles.ts +22 -22
- package/src/core/primitives/checkbox/styles.ts +21 -22
- package/src/core/primitives/code/styles.ts +4 -1
- package/src/core/primitives/container/styles.ts +2 -3
- package/src/core/primitives/heading/styles.ts +4 -2
- package/src/core/primitives/inline/styles.ts +6 -6
- package/src/core/primitives/kbd/kbd.tsx +7 -11
- package/src/core/primitives/label/styles.ts +4 -3
- package/src/core/primitives/popover/helpers.ts +3 -4
- package/src/core/primitives/popover/popover.tsx +8 -4
- package/src/core/primitives/popover/types.ts +1 -1
- package/src/core/primitives/radio/styles.ts +17 -19
- package/src/core/primitives/select/styles.ts +27 -32
- package/src/core/primitives/stack/styles.ts +2 -3
- package/src/core/primitives/switch/__workshop__/props.tsx +11 -31
- package/src/core/primitives/switch/styles.ts +18 -21
- package/src/core/primitives/text/__workshop__/colored.tsx +10 -10
- package/src/core/primitives/text/styles.ts +9 -4
- package/src/core/primitives/tooltip/tooltip.tsx +3 -3
- package/src/core/styles/border/borderStyle.ts +6 -11
- package/src/core/styles/box/boxStyle.ts +5 -9
- package/src/core/styles/card/_cardColorStyle.ts +99 -0
- package/src/core/styles/card/index.ts +1 -0
- package/src/core/styles/flex/flexItemStyle.ts +2 -3
- package/src/core/styles/flex/flexStyle.ts +6 -11
- package/src/core/styles/font/responsiveFont.ts +4 -4
- package/src/core/styles/font/textAlignStyle.ts +3 -3
- package/src/core/styles/grid/gridItemStyle.ts +7 -13
- package/src/core/styles/grid/gridStyle.ts +9 -17
- package/src/core/styles/helpers.ts +5 -3
- package/src/core/styles/input/responsiveInputPaddingStyle.ts +6 -6
- package/src/core/styles/input/textInputStyle.ts +36 -40
- package/src/core/styles/margin/marginsStyle.test.ts +2 -3
- package/src/core/styles/padding/paddingStyle.test.ts +2 -3
- package/src/core/styles/radius/radiusStyle.ts +2 -3
- package/src/core/styles/shadow/shadowStyle.ts +4 -5
- package/src/core/theme/__workshop__/build/Root.tsx +24 -20
- package/src/core/theme/__workshop__/build/story.tsx +22 -26
- package/src/core/theme/__workshop__/canvas.tsx +21 -40
- package/src/core/theme/theme.test.tsx +2 -35
- package/src/core/theme/themeColorProvider.tsx +2 -2
- package/src/core/theme/themeContext.ts +2 -2
- package/src/core/theme/themeProvider.tsx +25 -25
- package/src/core/theme/types.ts +3 -2
- package/src/core/theme/useRootTheme.ts +1 -9
- package/src/core/theme/useTheme.ts +8 -1
- package/src/core/types/card.ts +2 -2
- package/src/core/utils/arrow/arrow.tsx +3 -3
- package/src/core/utils/elementQuery/elementQuery.tsx +3 -3
- package/src/core/utils/virtualList/virtualList.tsx +2 -2
- package/src/theme/build/_deprecated/color/muted/createMuted.ts +2 -2
- package/src/theme/build/buildColorTheme.test.ts +14 -15
- package/src/theme/build/buildColorTheme.ts +239 -292
- package/src/theme/build/buildTheme.test.ts +9 -7
- package/src/theme/build/buildTheme.ts +12 -9
- package/src/theme/build/colorToken.ts +3 -1
- package/src/theme/build/lib/color-fns/contrastRatio.ts +1 -0
- package/src/theme/build/lib/isRecord.ts +3 -0
- package/src/theme/build/merge.ts +18 -13
- package/src/theme/build/renderColorTheme.ts +205 -213
- package/src/theme/build/renderColorValue.ts +15 -8
- package/src/theme/build/resolveColorTokens.ts +177 -198
- package/src/theme/build/theme.test.ts +27 -0
- package/src/theme/config/helpers.ts +16 -8
- package/src/theme/config/system.ts +46 -17
- package/src/theme/config/tokens/color/types.ts +55 -32
- package/src/theme/config/tokens/types.ts +11 -4
- package/src/theme/config/types.ts +5 -11
- package/src/theme/{build/defaults → defaults}/colorPalette.ts +1 -1
- package/src/theme/{build/defaults → defaults}/colorTokens.ts +189 -136
- package/src/theme/{build/defaults → defaults}/config.ts +14 -12
- package/src/theme/{build/defaults → defaults}/fonts.ts +6 -6
- package/src/theme/getScopedTheme.ts +81 -0
- package/src/theme/index.ts +9 -1
- package/src/theme/system/avatar.ts +1 -1
- package/src/theme/system/color/_constants.ts +11 -11
- package/src/theme/system/color/_system.ts +10 -71
- package/src/theme/system/color/avatar.ts +22 -10
- package/src/theme/system/color/badge.ts +18 -7
- package/src/theme/system/color/button.ts +17 -23
- package/src/theme/system/color/color.ts +34 -0
- package/src/theme/system/color/index.ts +3 -10
- package/src/theme/system/color/input.ts +13 -11
- package/src/theme/system/color/kbd.ts +3 -3
- package/src/theme/system/color/selectable.ts +13 -19
- package/src/theme/system/color/shadow.ts +7 -0
- package/src/theme/system/color/state.ts +37 -0
- package/src/theme/system/css.ts +9 -0
- package/src/theme/system/focusRing.ts +7 -0
- package/src/theme/system/index.ts +5 -1
- package/src/theme/system/input.ts +1 -1
- package/src/theme/system/layer.ts +1 -2
- package/src/theme/system/shadow.ts +1 -0
- package/src/theme/system/styles.ts +19 -0
- package/src/theme/system/theme.ts +97 -0
- package/src/theme/system/{color → v0/color}/_generic.ts +2 -1
- package/src/theme/system/v0/color/_system.ts +13 -0
- package/src/theme/system/{color → v0/color}/base.ts +2 -0
- package/src/theme/system/v0/color/button.ts +42 -0
- package/src/theme/system/{color → v0/color}/card.ts +2 -1
- package/src/theme/system/v0/color/color.ts +40 -0
- package/src/theme/system/v0/color/index.ts +11 -0
- package/src/theme/system/v0/color/input.ts +34 -0
- package/src/theme/system/{color/_deprecated → v0/color}/muted.ts +1 -1
- package/src/theme/system/v0/color/selectable.ts +31 -0
- package/src/theme/system/{color/_deprecated → v0/color}/solid.ts +1 -1
- package/src/theme/system/v0/color/spot.ts +13 -0
- package/src/theme/system/v0/index.ts +1 -0
- package/src/theme/versioning/getTheme_v2.ts +35 -0
- package/src/theme/versioning/index.ts +5 -0
- package/src/theme/versioning/is_v0.ts +6 -0
- package/src/theme/versioning/is_v2.ts +6 -0
- package/src/theme/versioning/themeColor_v0_v2.ts +217 -0
- package/src/theme/versioning/v0_v2.ts +70 -0
- package/src/theme/versioning/v2_v0.ts +128 -0
- package/src/core/styles/colorVars/colorVarsStyle.ts +0 -43
- package/src/core/styles/colorVars/index.ts +0 -1
- package/src/core/theme/defaults.ts +0 -7
- package/src/theme/system/_system.ts +0 -95
- package/src/theme/system/color/_deprecated/spot.ts +0 -13
- package/src/theme/themes/studio/config.ts +0 -69
- package/src/theme/themes/studio/fonts.ts +0 -219
- package/src/theme/themes/studio/index.ts +0 -1
- package/src/theme/themes/studio/studioTheme.test.ts +0 -27
- package/src/theme/themes/studio/studioTheme.ts +0 -8
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
import {ThemeColorPalette, ThemeConfig} from '../config'
|
|
2
|
+
import {defaultColorPalette} from '../defaults/colorPalette'
|
|
2
3
|
import {
|
|
4
|
+
ThemeColorAvatar_v2,
|
|
5
|
+
ThemeColorBadgeTone_v2,
|
|
6
|
+
ThemeColorBadge_v2,
|
|
3
7
|
ThemeColorBlendModeKey,
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
ThemeColorInput,
|
|
13
|
-
ThemeColorInputState,
|
|
14
|
-
ThemeColorInputStates,
|
|
8
|
+
ThemeColorButtonStates_v2,
|
|
9
|
+
ThemeColorButtonTones_v2,
|
|
10
|
+
ThemeColorButton_v2,
|
|
11
|
+
ThemeColorCardToneKey,
|
|
12
|
+
ThemeColorCard_v2,
|
|
13
|
+
ThemeColorInputState_v2,
|
|
14
|
+
ThemeColorInputStates_v2,
|
|
15
|
+
ThemeColorInput_v2,
|
|
15
16
|
ThemeColorKBD,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
ThemeColorScheme_v2,
|
|
18
|
+
ThemeColorSchemes_v2,
|
|
19
|
+
ThemeColorSelectableStates_v2,
|
|
20
|
+
ThemeColorSelectable_v2,
|
|
21
|
+
ThemeColorShadow,
|
|
22
|
+
ThemeColorState_v2,
|
|
21
23
|
ThemeColorSyntax,
|
|
22
|
-
ThemeColorToneKey,
|
|
23
24
|
} from '../system'
|
|
24
|
-
import {defaultColorPalette} from './defaults/colorPalette'
|
|
25
25
|
import {RenderColorValueOptions, renderColorValue} from './renderColorValue'
|
|
26
26
|
|
|
27
27
|
export function renderThemeColorSchemes(
|
|
28
|
-
value:
|
|
28
|
+
value: ThemeColorSchemes_v2,
|
|
29
29
|
config?: ThemeConfig,
|
|
30
|
-
):
|
|
30
|
+
): ThemeColorSchemes_v2 {
|
|
31
31
|
const colorPalette = config?.palette ?? defaultColorPalette
|
|
32
32
|
|
|
33
33
|
return {
|
|
@@ -38,9 +38,9 @@ export function renderThemeColorSchemes(
|
|
|
38
38
|
|
|
39
39
|
function renderThemeColorScheme(
|
|
40
40
|
colorPalette: ThemeColorPalette,
|
|
41
|
-
value:
|
|
42
|
-
):
|
|
43
|
-
const toneEntries = Object.entries(value) as [
|
|
41
|
+
value: ThemeColorScheme_v2,
|
|
42
|
+
): ThemeColorScheme_v2 {
|
|
43
|
+
const toneEntries = Object.entries(value) as [ThemeColorCardToneKey, ThemeColorCard_v2][]
|
|
44
44
|
|
|
45
45
|
const [, transparentTone] = toneEntries.find(([k]) => k === 'transparent')!
|
|
46
46
|
const [, defaultTone] = toneEntries.find(([k]) => k === 'default')!
|
|
@@ -52,7 +52,11 @@ function renderThemeColorScheme(
|
|
|
52
52
|
const renderedDefaultTone = renderThemeColor(defaultTone, {colorPalette})
|
|
53
53
|
|
|
54
54
|
// Get the `default` tone's `bg` property
|
|
55
|
-
const bg = renderedDefaultTone.
|
|
55
|
+
const bg = renderedDefaultTone.bg
|
|
56
|
+
|
|
57
|
+
if (bg === 'white') {
|
|
58
|
+
throw new Error('Cannot blend with white background')
|
|
59
|
+
}
|
|
56
60
|
|
|
57
61
|
return Object.fromEntries([
|
|
58
62
|
['transparent', renderedTransparentTone],
|
|
@@ -60,103 +64,107 @@ function renderThemeColorScheme(
|
|
|
60
64
|
...toneEntries
|
|
61
65
|
.filter(([k]) => k !== 'default' && k !== 'transparent')
|
|
62
66
|
.map(([k, v]) => [k, renderThemeColor(v, {bg, colorPalette})]),
|
|
63
|
-
]) as
|
|
67
|
+
]) as ThemeColorScheme_v2
|
|
64
68
|
}
|
|
65
69
|
|
|
66
70
|
function renderThemeColor(
|
|
67
|
-
value:
|
|
71
|
+
value: ThemeColorCard_v2,
|
|
68
72
|
options: {
|
|
69
73
|
bg?: string
|
|
70
74
|
colorPalette: ThemeColorPalette
|
|
71
75
|
},
|
|
72
|
-
):
|
|
76
|
+
): ThemeColorCard_v2 {
|
|
73
77
|
const {colorPalette, bg} = options
|
|
74
|
-
|
|
75
78
|
const blendMode = value._blend || 'multiply'
|
|
76
|
-
|
|
77
|
-
const baseBg = renderColorValue(value.base.bg, {colorPalette, bg, blendMode})
|
|
78
|
-
|
|
79
|
+
const baseBg = renderColorValue(value.bg, {colorPalette, bg, blendMode})
|
|
79
80
|
const colorOptions: RenderColorValueOptions = {colorPalette, bg: baseBg, blendMode}
|
|
80
81
|
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
shadow: {
|
|
87
|
-
outline: renderColorValue(value.base.shadow.outline, colorOptions),
|
|
88
|
-
umbra: renderColorValue(value.base.shadow.umbra, {
|
|
89
|
-
...colorOptions,
|
|
90
|
-
bg: undefined,
|
|
91
|
-
colorPalette: {...colorPalette, black: '#000000'},
|
|
92
|
-
}),
|
|
93
|
-
penumbra: renderColorValue(value.base.shadow.penumbra, {
|
|
94
|
-
...colorOptions,
|
|
95
|
-
bg: undefined,
|
|
96
|
-
colorPalette: {...colorPalette, black: '#000000'},
|
|
97
|
-
}),
|
|
98
|
-
ambient: renderColorValue(value.base.shadow.ambient, {
|
|
99
|
-
...colorOptions,
|
|
100
|
-
bg: undefined,
|
|
101
|
-
colorPalette: {...colorPalette, black: '#000000'},
|
|
102
|
-
}),
|
|
103
|
-
},
|
|
104
|
-
skeleton: value.base.skeleton && {
|
|
105
|
-
from: renderColorValue(value.base.skeleton?.from, colorOptions),
|
|
106
|
-
to: renderColorValue(value.base.skeleton?.to, colorOptions),
|
|
107
|
-
},
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
const button = renderThemeColorButton(value.button, {colorPalette, base, blendMode})
|
|
82
|
+
const button = renderThemeColorButton(value.button, {
|
|
83
|
+
baseBg,
|
|
84
|
+
blendMode,
|
|
85
|
+
colorPalette,
|
|
86
|
+
})
|
|
111
87
|
|
|
112
|
-
const selectable = renderThemeColorSelectable(value.selectable
|
|
88
|
+
const selectable = renderThemeColorSelectable(value.selectable, {
|
|
113
89
|
colorPalette,
|
|
114
|
-
|
|
90
|
+
baseBg,
|
|
115
91
|
blendMode,
|
|
116
92
|
})
|
|
117
93
|
|
|
94
|
+
const shadow: ThemeColorShadow = {
|
|
95
|
+
outline: renderColorValue(value.shadow.outline, colorOptions),
|
|
96
|
+
umbra: renderColorValue(value.shadow.umbra, {
|
|
97
|
+
...colorOptions,
|
|
98
|
+
bg: undefined,
|
|
99
|
+
colorPalette: {...colorPalette, black: '#000000'},
|
|
100
|
+
}),
|
|
101
|
+
penumbra: renderColorValue(value.shadow.penumbra, {
|
|
102
|
+
...colorOptions,
|
|
103
|
+
bg: undefined,
|
|
104
|
+
colorPalette: {...colorPalette, black: '#000000'},
|
|
105
|
+
}),
|
|
106
|
+
ambient: renderColorValue(value.shadow.ambient, {
|
|
107
|
+
...colorOptions,
|
|
108
|
+
bg: undefined,
|
|
109
|
+
colorPalette: {...colorPalette, black: '#000000'},
|
|
110
|
+
}),
|
|
111
|
+
}
|
|
112
|
+
|
|
118
113
|
return {
|
|
119
|
-
...value,
|
|
120
114
|
_blend: blendMode,
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
115
|
+
_dark: value._dark,
|
|
116
|
+
accent: {
|
|
117
|
+
fg: renderColorValue(value.accent.fg, colorOptions),
|
|
118
|
+
},
|
|
119
|
+
avatar: renderThemeColorAvatar(value.avatar, {baseBg, colorPalette, blendMode}),
|
|
120
|
+
backdrop: renderColorValue(value.backdrop, colorOptions),
|
|
121
|
+
badge: renderThemeColorBadge(value.badge, {baseBg, colorPalette, blendMode}),
|
|
122
|
+
bg: baseBg,
|
|
123
|
+
border: renderColorValue(value.border, colorOptions),
|
|
124
124
|
button,
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
125
|
+
code: {
|
|
126
|
+
bg: renderColorValue(value.code.bg, colorOptions),
|
|
127
|
+
fg: renderColorValue(value.code.fg, colorOptions),
|
|
128
|
+
},
|
|
129
|
+
fg: renderColorValue(value.fg, colorOptions),
|
|
130
|
+
focusRing: renderColorValue(value.focusRing, colorOptions),
|
|
131
|
+
icon: renderColorValue(value.icon, colorOptions),
|
|
132
|
+
input: renderThemeColorInput(value.input, {baseBg, colorPalette, blendMode}),
|
|
133
|
+
kbd: renderThemeColorKBD(value.kbd, {baseBg, colorPalette, blendMode}),
|
|
134
|
+
link: {
|
|
135
|
+
fg: renderColorValue(value.link.fg, colorOptions),
|
|
133
136
|
},
|
|
134
137
|
muted: {
|
|
135
|
-
|
|
136
|
-
|
|
138
|
+
bg: renderColorValue(value.muted.bg, colorOptions),
|
|
139
|
+
fg: renderColorValue(value.muted.fg, colorOptions),
|
|
137
140
|
},
|
|
141
|
+
shadow,
|
|
142
|
+
skeleton: {
|
|
143
|
+
from: renderColorValue(value.skeleton.from, colorOptions),
|
|
144
|
+
to: renderColorValue(value.skeleton.to, colorOptions),
|
|
145
|
+
},
|
|
146
|
+
syntax: renderSyntaxColorTheme(value.syntax, {baseBg, colorPalette, blendMode}),
|
|
138
147
|
selectable,
|
|
139
148
|
}
|
|
140
149
|
}
|
|
141
150
|
|
|
142
151
|
function renderThemeColorKBD(
|
|
143
|
-
value: ThemeColorKBD
|
|
152
|
+
value: ThemeColorKBD,
|
|
144
153
|
options: {
|
|
145
|
-
|
|
154
|
+
baseBg: string
|
|
146
155
|
blendMode: ThemeColorBlendModeKey
|
|
147
156
|
colorPalette: ThemeColorPalette
|
|
148
157
|
},
|
|
149
|
-
) {
|
|
150
|
-
const {
|
|
151
|
-
const blendMode = value?._blend || 'multiply'
|
|
158
|
+
): ThemeColorKBD {
|
|
159
|
+
const {baseBg, blendMode, colorPalette} = options
|
|
152
160
|
|
|
153
161
|
const rootOptions: RenderColorValueOptions = {
|
|
154
|
-
bg:
|
|
155
|
-
blendMode
|
|
162
|
+
bg: baseBg,
|
|
163
|
+
blendMode,
|
|
156
164
|
colorPalette,
|
|
157
165
|
}
|
|
158
166
|
|
|
159
|
-
const bg = renderColorValue(value
|
|
167
|
+
const bg = renderColorValue(value.bg, rootOptions)
|
|
160
168
|
|
|
161
169
|
const colorOptions: RenderColorValueOptions = {
|
|
162
170
|
bg,
|
|
@@ -165,52 +173,51 @@ function renderThemeColorKBD(
|
|
|
165
173
|
}
|
|
166
174
|
|
|
167
175
|
return {
|
|
168
|
-
_blend: blendMode,
|
|
169
176
|
bg,
|
|
170
|
-
fg: renderColorValue(value
|
|
171
|
-
border: renderColorValue(value
|
|
177
|
+
fg: renderColorValue(value.fg, colorOptions),
|
|
178
|
+
border: renderColorValue(value.border, colorOptions),
|
|
172
179
|
}
|
|
173
180
|
}
|
|
174
181
|
|
|
175
182
|
function renderThemeColorAvatar(
|
|
176
|
-
value:
|
|
183
|
+
value: ThemeColorAvatar_v2,
|
|
177
184
|
options: {
|
|
178
|
-
|
|
185
|
+
baseBg: string
|
|
179
186
|
blendMode: ThemeColorBlendModeKey
|
|
180
187
|
colorPalette: ThemeColorPalette
|
|
181
188
|
},
|
|
182
|
-
):
|
|
189
|
+
): ThemeColorAvatar_v2 {
|
|
183
190
|
return {
|
|
184
|
-
gray: renderThemeColorAvatarColor(value
|
|
185
|
-
blue: renderThemeColorAvatarColor(value
|
|
186
|
-
purple: renderThemeColorAvatarColor(value
|
|
187
|
-
magenta: renderThemeColorAvatarColor(value
|
|
188
|
-
red: renderThemeColorAvatarColor(value
|
|
189
|
-
orange: renderThemeColorAvatarColor(value
|
|
190
|
-
yellow: renderThemeColorAvatarColor(value
|
|
191
|
-
green: renderThemeColorAvatarColor(value
|
|
192
|
-
cyan: renderThemeColorAvatarColor(value
|
|
191
|
+
gray: renderThemeColorAvatarColor(value.gray, options),
|
|
192
|
+
blue: renderThemeColorAvatarColor(value.blue, options),
|
|
193
|
+
purple: renderThemeColorAvatarColor(value.purple, options),
|
|
194
|
+
magenta: renderThemeColorAvatarColor(value.magenta, options),
|
|
195
|
+
red: renderThemeColorAvatarColor(value.red, options),
|
|
196
|
+
orange: renderThemeColorAvatarColor(value.orange, options),
|
|
197
|
+
yellow: renderThemeColorAvatarColor(value.yellow, options),
|
|
198
|
+
green: renderThemeColorAvatarColor(value.green, options),
|
|
199
|
+
cyan: renderThemeColorAvatarColor(value.cyan, options),
|
|
193
200
|
}
|
|
194
201
|
}
|
|
195
202
|
|
|
196
203
|
function renderThemeColorAvatarColor(
|
|
197
|
-
value:
|
|
204
|
+
value: ThemeColorAvatar_v2['gray'],
|
|
198
205
|
options: {
|
|
199
|
-
|
|
206
|
+
baseBg: string
|
|
200
207
|
blendMode: ThemeColorBlendModeKey
|
|
201
208
|
colorPalette: ThemeColorPalette
|
|
202
209
|
},
|
|
203
|
-
):
|
|
204
|
-
const {
|
|
205
|
-
const blendMode = value
|
|
210
|
+
): ThemeColorAvatar_v2['gray'] {
|
|
211
|
+
const {baseBg, blendMode: rootBlendMode, colorPalette} = options
|
|
212
|
+
const blendMode = value._blend || 'multiply'
|
|
206
213
|
|
|
207
214
|
const rootOptions: RenderColorValueOptions = {
|
|
208
|
-
bg:
|
|
215
|
+
bg: baseBg,
|
|
209
216
|
blendMode: rootBlendMode,
|
|
210
217
|
colorPalette,
|
|
211
218
|
}
|
|
212
219
|
|
|
213
|
-
const bg = renderColorValue(value
|
|
220
|
+
const bg = renderColorValue(value.bg, rootOptions)
|
|
214
221
|
|
|
215
222
|
const colorOptions: RenderColorValueOptions = {
|
|
216
223
|
bg,
|
|
@@ -221,45 +228,48 @@ function renderThemeColorAvatarColor(
|
|
|
221
228
|
return {
|
|
222
229
|
_blend: blendMode,
|
|
223
230
|
bg,
|
|
224
|
-
fg: renderColorValue(value
|
|
231
|
+
fg: renderColorValue(value.fg, colorOptions),
|
|
225
232
|
}
|
|
226
233
|
}
|
|
227
234
|
|
|
228
235
|
function renderThemeColorBadge(
|
|
229
|
-
value:
|
|
236
|
+
value: ThemeColorBadge_v2,
|
|
230
237
|
options: {
|
|
231
|
-
|
|
238
|
+
baseBg: string
|
|
232
239
|
blendMode: ThemeColorBlendModeKey
|
|
233
240
|
colorPalette: ThemeColorPalette
|
|
234
241
|
},
|
|
235
|
-
):
|
|
242
|
+
): ThemeColorBadge_v2 {
|
|
236
243
|
return {
|
|
237
|
-
default: renderThemeColorBadgeColor(value
|
|
238
|
-
primary: renderThemeColorBadgeColor(value
|
|
239
|
-
positive: renderThemeColorBadgeColor(value
|
|
240
|
-
caution: renderThemeColorBadgeColor(value
|
|
241
|
-
critical: renderThemeColorBadgeColor(value
|
|
244
|
+
default: renderThemeColorBadgeColor(value.default, options),
|
|
245
|
+
primary: renderThemeColorBadgeColor(value.primary, options),
|
|
246
|
+
positive: renderThemeColorBadgeColor(value.positive, options),
|
|
247
|
+
caution: renderThemeColorBadgeColor(value.caution, options),
|
|
248
|
+
critical: renderThemeColorBadgeColor(value.critical, options),
|
|
242
249
|
}
|
|
243
250
|
}
|
|
244
251
|
|
|
245
252
|
function renderThemeColorBadgeColor(
|
|
246
|
-
value:
|
|
253
|
+
value: ThemeColorBadgeTone_v2,
|
|
247
254
|
options: {
|
|
248
|
-
|
|
255
|
+
baseBg: string
|
|
249
256
|
blendMode: ThemeColorBlendModeKey
|
|
250
257
|
colorPalette: ThemeColorPalette
|
|
251
258
|
},
|
|
252
|
-
):
|
|
253
|
-
const {
|
|
254
|
-
|
|
259
|
+
): ThemeColorBadgeTone_v2 {
|
|
260
|
+
const {baseBg, blendMode: rootBlendMode, colorPalette} = options
|
|
261
|
+
|
|
262
|
+
// const blendMode = value._blend || 'multiply'
|
|
263
|
+
|
|
264
|
+
const blendMode = rootBlendMode
|
|
255
265
|
|
|
256
266
|
const rootOptions: RenderColorValueOptions = {
|
|
257
|
-
bg:
|
|
267
|
+
bg: baseBg,
|
|
258
268
|
blendMode: rootBlendMode,
|
|
259
269
|
colorPalette,
|
|
260
270
|
}
|
|
261
271
|
|
|
262
|
-
const bg = renderColorValue(value
|
|
272
|
+
const bg = renderColorValue(value.bg, rootOptions)
|
|
263
273
|
|
|
264
274
|
const colorOptions: RenderColorValueOptions = {
|
|
265
275
|
bg,
|
|
@@ -268,19 +278,22 @@ function renderThemeColorBadgeColor(
|
|
|
268
278
|
}
|
|
269
279
|
|
|
270
280
|
return {
|
|
281
|
+
// _blend: blendMode,
|
|
271
282
|
bg,
|
|
272
|
-
fg: renderColorValue(value
|
|
283
|
+
fg: renderColorValue(value.fg, colorOptions),
|
|
284
|
+
dot: renderColorValue(value.dot, colorOptions),
|
|
285
|
+
icon: renderColorValue(value.icon, colorOptions),
|
|
273
286
|
}
|
|
274
287
|
}
|
|
275
288
|
|
|
276
289
|
function renderThemeColorButton(
|
|
277
|
-
value:
|
|
290
|
+
value: ThemeColorButton_v2,
|
|
278
291
|
options: {
|
|
279
|
-
|
|
292
|
+
baseBg: string
|
|
280
293
|
blendMode: ThemeColorBlendModeKey
|
|
281
294
|
colorPalette: ThemeColorPalette
|
|
282
295
|
},
|
|
283
|
-
):
|
|
296
|
+
): ThemeColorButton_v2 {
|
|
284
297
|
return {
|
|
285
298
|
default: renderThemeColorButtonTones(value.default, options),
|
|
286
299
|
ghost: renderThemeColorButtonTones(value.ghost, options),
|
|
@@ -289,13 +302,13 @@ function renderThemeColorButton(
|
|
|
289
302
|
}
|
|
290
303
|
|
|
291
304
|
function renderThemeColorButtonTones(
|
|
292
|
-
value:
|
|
305
|
+
value: ThemeColorButtonTones_v2,
|
|
293
306
|
options: {
|
|
294
|
-
|
|
307
|
+
baseBg: string
|
|
295
308
|
blendMode: ThemeColorBlendModeKey
|
|
296
309
|
colorPalette: ThemeColorPalette
|
|
297
310
|
},
|
|
298
|
-
):
|
|
311
|
+
): ThemeColorButtonTones_v2 {
|
|
299
312
|
return {
|
|
300
313
|
default: renderThemeColorButtonStates(value.default, options),
|
|
301
314
|
primary: renderThemeColorButtonStates(value.primary, options),
|
|
@@ -306,35 +319,35 @@ function renderThemeColorButtonTones(
|
|
|
306
319
|
}
|
|
307
320
|
|
|
308
321
|
function renderThemeColorButtonStates(
|
|
309
|
-
value:
|
|
322
|
+
value: ThemeColorButtonStates_v2,
|
|
310
323
|
options: {
|
|
311
|
-
|
|
324
|
+
baseBg: string
|
|
312
325
|
blendMode: ThemeColorBlendModeKey
|
|
313
326
|
colorPalette: ThemeColorPalette
|
|
314
327
|
},
|
|
315
|
-
):
|
|
328
|
+
): ThemeColorButtonStates_v2 {
|
|
316
329
|
return {
|
|
317
|
-
enabled:
|
|
318
|
-
hovered:
|
|
319
|
-
pressed:
|
|
320
|
-
selected:
|
|
321
|
-
disabled:
|
|
330
|
+
enabled: renderThemeColorState(value.enabled, options),
|
|
331
|
+
hovered: renderThemeColorState(value.hovered, options),
|
|
332
|
+
pressed: renderThemeColorState(value.pressed, options),
|
|
333
|
+
selected: renderThemeColorState(value.selected, options),
|
|
334
|
+
disabled: renderThemeColorState(value.disabled, options),
|
|
322
335
|
}
|
|
323
336
|
}
|
|
324
337
|
|
|
325
|
-
function
|
|
326
|
-
value:
|
|
338
|
+
function renderThemeColorState(
|
|
339
|
+
value: ThemeColorState_v2,
|
|
327
340
|
options: {
|
|
328
|
-
|
|
341
|
+
baseBg: string
|
|
329
342
|
blendMode: ThemeColorBlendModeKey
|
|
330
343
|
colorPalette: ThemeColorPalette
|
|
331
344
|
},
|
|
332
|
-
):
|
|
333
|
-
const {
|
|
345
|
+
): ThemeColorState_v2 {
|
|
346
|
+
const {baseBg, blendMode: rootBlendMode, colorPalette} = options
|
|
334
347
|
const blendMode = value._blend || 'multiply'
|
|
335
348
|
|
|
336
349
|
const rootOptions: RenderColorValueOptions = {
|
|
337
|
-
bg:
|
|
350
|
+
bg: baseBg,
|
|
338
351
|
blendMode: rootBlendMode,
|
|
339
352
|
colorPalette,
|
|
340
353
|
}
|
|
@@ -349,25 +362,32 @@ function renderThemeColorGenericState(
|
|
|
349
362
|
|
|
350
363
|
return {
|
|
351
364
|
_blend: blendMode,
|
|
352
|
-
bg,
|
|
353
|
-
bg2: renderColorValue(value.bg2 || value.bg, colorOptions),
|
|
354
|
-
fg: renderColorValue(value.fg, colorOptions),
|
|
355
|
-
border: renderColorValue(value.border, colorOptions),
|
|
356
|
-
icon: renderColorValue(value.icon, colorOptions),
|
|
357
|
-
muted: {
|
|
358
|
-
fg: renderColorValue(value.muted.fg, colorOptions),
|
|
359
|
-
},
|
|
360
365
|
accent: {
|
|
361
366
|
fg: renderColorValue(value.accent.fg, colorOptions),
|
|
362
367
|
},
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
368
|
+
avatar: renderThemeColorAvatar(value.avatar, {baseBg, colorPalette, blendMode}),
|
|
369
|
+
badge: renderThemeColorBadge(value.badge, {baseBg, colorPalette, blendMode}),
|
|
370
|
+
bg,
|
|
371
|
+
border: renderColorValue(value.border, colorOptions),
|
|
366
372
|
code: {
|
|
367
373
|
bg: renderColorValue(value.code.bg, colorOptions),
|
|
368
374
|
fg: renderColorValue(value.code.fg, colorOptions),
|
|
369
375
|
},
|
|
370
|
-
|
|
376
|
+
fg: renderColorValue(value.fg, colorOptions),
|
|
377
|
+
icon: renderColorValue(value.icon, colorOptions),
|
|
378
|
+
link: {
|
|
379
|
+
fg: renderColorValue(value.link.fg, colorOptions),
|
|
380
|
+
},
|
|
381
|
+
muted: {
|
|
382
|
+
bg: renderColorValue(value.muted.bg, colorOptions),
|
|
383
|
+
fg: renderColorValue(value.muted.fg, colorOptions),
|
|
384
|
+
},
|
|
385
|
+
kbd: {
|
|
386
|
+
bg: renderColorValue(value.kbd.bg, colorOptions),
|
|
387
|
+
fg: renderColorValue(value.kbd.fg, colorOptions),
|
|
388
|
+
border: renderColorValue(value.kbd.border, colorOptions),
|
|
389
|
+
},
|
|
390
|
+
skeleton: {
|
|
371
391
|
from: renderColorValue(value.skeleton?.from, colorOptions),
|
|
372
392
|
to: renderColorValue(value.skeleton?.to, colorOptions),
|
|
373
393
|
},
|
|
@@ -375,13 +395,13 @@ function renderThemeColorGenericState(
|
|
|
375
395
|
}
|
|
376
396
|
|
|
377
397
|
function renderThemeColorInput(
|
|
378
|
-
value:
|
|
398
|
+
value: ThemeColorInput_v2,
|
|
379
399
|
options: {
|
|
380
|
-
|
|
400
|
+
baseBg: string
|
|
381
401
|
blendMode: ThemeColorBlendModeKey
|
|
382
402
|
colorPalette: ThemeColorPalette
|
|
383
403
|
},
|
|
384
|
-
):
|
|
404
|
+
): ThemeColorInput_v2 {
|
|
385
405
|
return {
|
|
386
406
|
default: renderInputStatesColorTheme(value.default, options),
|
|
387
407
|
invalid: renderInputStatesColorTheme(value.invalid, options),
|
|
@@ -389,13 +409,13 @@ function renderThemeColorInput(
|
|
|
389
409
|
}
|
|
390
410
|
|
|
391
411
|
function renderInputStatesColorTheme(
|
|
392
|
-
value:
|
|
412
|
+
value: ThemeColorInputStates_v2,
|
|
393
413
|
options: {
|
|
394
|
-
|
|
414
|
+
baseBg: string
|
|
395
415
|
blendMode: ThemeColorBlendModeKey
|
|
396
416
|
colorPalette: ThemeColorPalette
|
|
397
417
|
},
|
|
398
|
-
):
|
|
418
|
+
): ThemeColorInputStates_v2 {
|
|
399
419
|
return {
|
|
400
420
|
enabled: renderInputStateColorTheme(value.enabled, options),
|
|
401
421
|
hovered: renderInputStateColorTheme(value.hovered, options),
|
|
@@ -405,41 +425,39 @@ function renderInputStatesColorTheme(
|
|
|
405
425
|
}
|
|
406
426
|
|
|
407
427
|
function renderInputStateColorTheme(
|
|
408
|
-
value:
|
|
428
|
+
value: ThemeColorInputState_v2,
|
|
409
429
|
options: {
|
|
410
|
-
|
|
430
|
+
baseBg: string
|
|
411
431
|
blendMode: ThemeColorBlendModeKey
|
|
412
432
|
colorPalette: ThemeColorPalette
|
|
413
433
|
},
|
|
414
|
-
):
|
|
415
|
-
const {
|
|
416
|
-
|
|
434
|
+
): ThemeColorInputState_v2 {
|
|
435
|
+
const {baseBg, blendMode: rootBlendMode, colorPalette} = options
|
|
417
436
|
const blendMode = value._blend || 'multiply'
|
|
418
|
-
|
|
419
|
-
const rootOptions: RenderColorValueOptions = {colorPalette, bg: base.bg, blendMode: rootBlendMode}
|
|
420
|
-
|
|
437
|
+
const rootOptions: RenderColorValueOptions = {colorPalette, bg: baseBg, blendMode: rootBlendMode}
|
|
421
438
|
const bg = renderColorValue(value.bg, rootOptions)
|
|
422
|
-
|
|
423
439
|
const colorOptions: RenderColorValueOptions = {colorPalette, bg, blendMode}
|
|
424
440
|
|
|
425
441
|
return {
|
|
426
442
|
_blend: blendMode,
|
|
427
443
|
bg,
|
|
428
|
-
bg2: renderColorValue(value.bg2, colorOptions),
|
|
429
|
-
fg: renderColorValue(value.fg, colorOptions),
|
|
430
444
|
border: renderColorValue(value.border, colorOptions),
|
|
445
|
+
fg: renderColorValue(value.fg, colorOptions),
|
|
446
|
+
muted: {
|
|
447
|
+
bg: renderColorValue(value.muted.bg, colorOptions),
|
|
448
|
+
},
|
|
431
449
|
placeholder: renderColorValue(value.placeholder, colorOptions),
|
|
432
450
|
}
|
|
433
451
|
}
|
|
434
452
|
|
|
435
453
|
function renderThemeColorSelectable(
|
|
436
|
-
value:
|
|
454
|
+
value: ThemeColorSelectable_v2,
|
|
437
455
|
options: {
|
|
438
|
-
|
|
456
|
+
baseBg: string
|
|
439
457
|
blendMode: ThemeColorBlendModeKey
|
|
440
458
|
colorPalette: ThemeColorPalette
|
|
441
459
|
},
|
|
442
|
-
):
|
|
460
|
+
): ThemeColorSelectable_v2 {
|
|
443
461
|
return {
|
|
444
462
|
default: renderThemeColorSelectableStates(value.default, options),
|
|
445
463
|
primary: renderThemeColorSelectableStates(value.primary, options),
|
|
@@ -450,58 +468,32 @@ function renderThemeColorSelectable(
|
|
|
450
468
|
}
|
|
451
469
|
|
|
452
470
|
function renderThemeColorSelectableStates(
|
|
453
|
-
value:
|
|
454
|
-
options: {
|
|
455
|
-
base: ThemeColorBase
|
|
456
|
-
blendMode: ThemeColorBlendModeKey
|
|
457
|
-
colorPalette: ThemeColorPalette
|
|
458
|
-
},
|
|
459
|
-
): ThemeColorSelectableStates {
|
|
460
|
-
return {
|
|
461
|
-
enabled: renderThemeColorGenericState(value.enabled, options),
|
|
462
|
-
hovered: renderThemeColorGenericState(value.hovered, options),
|
|
463
|
-
pressed: renderThemeColorGenericState(value.pressed, options),
|
|
464
|
-
selected: renderThemeColorGenericState(value.selected, options),
|
|
465
|
-
disabled: renderThemeColorGenericState(value.disabled, options),
|
|
466
|
-
}
|
|
467
|
-
}
|
|
468
|
-
|
|
469
|
-
function renderSpotColorTheme(
|
|
470
|
-
value: ThemeColorSpot,
|
|
471
|
+
value: ThemeColorSelectableStates_v2,
|
|
471
472
|
options: {
|
|
472
|
-
|
|
473
|
+
baseBg: string
|
|
473
474
|
blendMode: ThemeColorBlendModeKey
|
|
474
475
|
colorPalette: ThemeColorPalette
|
|
475
476
|
},
|
|
476
|
-
):
|
|
477
|
-
const {colorPalette, base, blendMode} = options
|
|
478
|
-
|
|
479
|
-
const colorOptions: RenderColorValueOptions = {colorPalette, bg: base.bg, blendMode}
|
|
480
|
-
|
|
477
|
+
): ThemeColorSelectableStates_v2 {
|
|
481
478
|
return {
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
red: renderColorValue(value.red, colorOptions),
|
|
488
|
-
orange: renderColorValue(value.orange, colorOptions),
|
|
489
|
-
yellow: renderColorValue(value.yellow, colorOptions),
|
|
490
|
-
green: renderColorValue(value.green, colorOptions),
|
|
479
|
+
enabled: renderThemeColorState(value.enabled, options),
|
|
480
|
+
hovered: renderThemeColorState(value.hovered, options),
|
|
481
|
+
pressed: renderThemeColorState(value.pressed, options),
|
|
482
|
+
selected: renderThemeColorState(value.selected, options),
|
|
483
|
+
disabled: renderThemeColorState(value.disabled, options),
|
|
491
484
|
}
|
|
492
485
|
}
|
|
493
486
|
|
|
494
487
|
function renderSyntaxColorTheme(
|
|
495
488
|
value: ThemeColorSyntax,
|
|
496
489
|
options: {
|
|
497
|
-
|
|
490
|
+
baseBg: string
|
|
498
491
|
blendMode: ThemeColorBlendModeKey
|
|
499
492
|
colorPalette: ThemeColorPalette
|
|
500
493
|
},
|
|
501
494
|
): ThemeColorSyntax {
|
|
502
|
-
const {colorPalette,
|
|
503
|
-
|
|
504
|
-
const colorOptions: RenderColorValueOptions = {colorPalette, bg: base.bg, blendMode}
|
|
495
|
+
const {colorPalette, baseBg, blendMode} = options
|
|
496
|
+
const colorOptions: RenderColorValueOptions = {colorPalette, bg: baseBg, blendMode}
|
|
505
497
|
|
|
506
498
|
return {
|
|
507
499
|
atrule: renderColorValue(value.atrule, colorOptions),
|