@sanity/ui 3.0.0-static.10 → 3.0.0-static.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 (106) hide show
  1. package/dist/_chunks-cjs/_visual-editing.js +105 -143
  2. package/dist/_chunks-cjs/_visual-editing.js.map +1 -1
  3. package/dist/_chunks-cjs/buildCommand.js +1 -1
  4. package/dist/_chunks-cjs/buildCommand.js.map +1 -1
  5. package/dist/_chunks-cjs/v3_v2.js +251 -0
  6. package/dist/_chunks-cjs/v3_v2.js.map +1 -0
  7. package/dist/_chunks-es/_visual-editing.mjs +106 -144
  8. package/dist/_chunks-es/_visual-editing.mjs.map +1 -1
  9. package/dist/_chunks-es/v3_v2.mjs +252 -0
  10. package/dist/_chunks-es/v3_v2.mjs.map +1 -0
  11. package/dist/_visual-editing.d.mts +11 -14
  12. package/dist/_visual-editing.d.ts +11 -14
  13. package/dist/cli.js +1 -1
  14. package/dist/css.d.mts +1006 -282
  15. package/dist/css.d.ts +1006 -282
  16. package/dist/css.js +743 -852
  17. package/dist/css.js.map +1 -1
  18. package/dist/css.mjs +743 -852
  19. package/dist/css.mjs.map +1 -1
  20. package/dist/index.d.mts +11 -14
  21. package/dist/index.d.ts +11 -14
  22. package/dist/index.js +31 -17
  23. package/dist/index.js.map +1 -1
  24. package/dist/index.mjs +33 -19
  25. package/dist/index.mjs.map +1 -1
  26. package/dist/sanity-palette.css +9 -1
  27. package/dist/sanity-theme.css +1 -1
  28. package/dist/system.css +1023 -1448
  29. package/dist/theme.d.mts +119 -85
  30. package/dist/theme.d.ts +119 -85
  31. package/dist/theme.js +219 -432
  32. package/dist/theme.js.map +1 -1
  33. package/dist/theme.mjs +202 -413
  34. package/dist/theme.mjs.map +1 -1
  35. package/package.json +2 -2
  36. package/src/cli/buildCommand.ts +2 -2
  37. package/src/css/_comp.ts +0 -1
  38. package/src/css/aspects/flex/flexJustify.style.ts +3 -3
  39. package/src/css/aspects/grid/types.ts +2 -2
  40. package/src/css/aspects/index.ts +0 -1
  41. package/src/css/aspects/textOverflow/textOverflow.ts +2 -2
  42. package/src/css/compile/compilePalette.ts +41 -8
  43. package/src/css/compile/compileRule.ts +0 -1
  44. package/src/css/compile/compileStyle.ts +1 -1
  45. package/src/css/compile/compileTheme_v3.ts +55 -46
  46. package/src/css/index.ts +2 -2
  47. package/src/css/primitives/_input/__workshop__/index.ts +1 -1
  48. package/src/css/primitives/_selectable/_contants.ts +1 -1
  49. package/src/css/primitives/badge/badge.style.ts +1 -1
  50. package/src/css/primitives/box/box.style.ts +1 -1
  51. package/src/css/primitives/box/box.ts +0 -2
  52. package/src/css/primitives/box/types.ts +0 -2
  53. package/src/css/primitives/button/_constants.ts +1 -1
  54. package/src/css/primitives/button/button.style.ts +13 -32
  55. package/src/css/primitives/card/_constants.ts +2 -2
  56. package/src/css/primitives/card/card.style.ts +44 -116
  57. package/src/css/primitives/card/card.ts +1 -1
  58. package/src/css/primitives/card/rules.ts +473 -0
  59. package/src/css/primitives/card/types.ts +1 -0
  60. package/src/css/primitives/kbd/kbd.style.ts +1 -1
  61. package/src/css/primitives/popover/popover.ts +0 -4
  62. package/src/css/primitives/switch/switch.style.ts +83 -8
  63. package/src/css/primitives/text/text.style.ts +3 -11
  64. package/src/css/system.style.ts +0 -4
  65. package/src/css/types.ts +188 -202
  66. package/src/css/varNames.ts +76 -110
  67. package/src/css/vars.ts +76 -109
  68. package/src/theme/defaults/config.ts +2 -2
  69. package/src/theme/defaults/fonts.ts +4 -4
  70. package/src/theme/palette/constants.ts +3 -1
  71. package/src/theme/palette/types.ts +12 -0
  72. package/src/theme/v3/buildTheme_v3.ts +2 -1
  73. package/src/theme/v3/color/buildColor_v3.ts +38 -43
  74. package/src/theme/v3/color/card.ts +38 -43
  75. package/src/theme/v3/color/color.ts +38 -42
  76. package/src/theme/v3/defaults.ts +72 -69
  77. package/src/theme/v3/resolveTokens.ts +38 -43
  78. package/src/theme/v3/types.ts +3 -0
  79. package/src/theme/versioning/themeColor_v3_v2.ts +1 -1
  80. package/src/ui/StyleTags.tsx +1 -1
  81. package/src/ui/components/autocomplete/__workshop__/async.tsx +1 -0
  82. package/src/ui/components/autocomplete/__workshop__/index.ts +1 -1
  83. package/src/ui/components/autocomplete/autocomplete.tsx +11 -2
  84. package/src/ui/components/dialog/dialog.tsx +4 -3
  85. package/src/ui/constants.ts +0 -6
  86. package/src/ui/hooks/useMediaIndex/useMediaIndex.ts +2 -0
  87. package/src/ui/primitives/box/box.tsx +2 -9
  88. package/src/ui/primitives/button/button.tsx +11 -12
  89. package/src/ui/primitives/card/card.tsx +5 -4
  90. package/src/ui/primitives/code/code.tsx +1 -1
  91. package/src/ui/primitives/heading/heading.tsx +1 -1
  92. package/src/ui/primitives/kbd/kbd.tsx +2 -2
  93. package/src/ui/primitives/popover/popover.tsx +75 -5
  94. package/src/ui/primitives/popover/popoverCard.tsx +39 -45
  95. package/src/ui/primitives/select/select.tsx +3 -3
  96. package/src/ui/primitives/stack/stack.tsx +5 -10
  97. package/src/ui/primitives/text/text.tsx +1 -1
  98. package/src/ui/primitives/textInput/textInput.tsx +1 -1
  99. package/src/ui/primitives/tooltip/tooltip.tsx +3 -2
  100. package/src/css/aspects/minWidth/index.ts +0 -2
  101. package/src/css/aspects/minWidth/minWidth.style.ts +0 -13
  102. package/src/css/aspects/minWidth/minWidth.ts +0 -6
  103. package/src/css/aspects/minWidth/types.ts +0 -7
  104. package/src/css/primitives/stack/index.ts +0 -1
  105. package/src/css/primitives/stack/stack.style.ts +0 -9
  106. package/src/css/primitives/stack/stack.ts +0 -6
@@ -0,0 +1,473 @@
1
+ import {HUES, THEME_COLOR_CARD_TONES, THEME_COLOR_STATE_TONES} from '@sanity/ui/theme'
2
+
3
+ import {
4
+ ColorCardVarNames,
5
+ ColorCardVars,
6
+ ColorVariantVarNames,
7
+ ColorVariantVars,
8
+ Properties,
9
+ type Rules,
10
+ } from '../../types'
11
+ import {varNames} from '../../varNames'
12
+ import {vars} from '../../vars'
13
+ import {toneMap} from './_constants'
14
+
15
+ export const cardRules: Rules = {
16
+ card: {
17
+ 'backgroundColor': vars.color.bg,
18
+ 'color': vars.color.fg,
19
+
20
+ [varNames.color.bg]: vars.color.tinted.default.bg[0],
21
+ [varNames.color.border]: vars.color.tinted.default.border[1],
22
+ [varNames.color.fg]: vars.color.tinted.default.fg[0],
23
+ [varNames.color.muted.bg]: vars.color.tinted.default.bg[1],
24
+ [varNames.color.muted.fg]: vars.color.tinted.default.fg[4],
25
+
26
+ '@nest': {
27
+ ...buildCardTonesRules(),
28
+
29
+ '&[data-checkered]': {
30
+ '--card-bg-image': `repeating-conic-gradient(var(--color-tinted-default-bg-0) 0% 25%, var(--color-tinted-default-bg-1) 0% 50%)`,
31
+ 'backgroundSize': `var(--space-3) var(--space-3)`,
32
+ 'backgroundPosition': '50% 50%',
33
+ 'backgroundImage': 'var(--card-bg-image)',
34
+ },
35
+
36
+ '&:is(a)': {
37
+ 'outline': 'none',
38
+ 'textDecoration': 'none',
39
+
40
+ // @ts-expect-error - TODO: fix this
41
+ '@nest': {
42
+ '&:not(:disabled)': {
43
+ '@nest': {
44
+ '&:hover': {
45
+ '--color-bg': 'var(--color-tinted-default-bg-1)',
46
+ '--color-fg': 'var(--color-tinted-default-fg-0)',
47
+ '--color-muted-bg': 'var(--color-tinted-default-bg-2)',
48
+ '--color-muted-fg': 'var(--color-tinted-default-fg-3)',
49
+ // '--color-icon': 'var(--color-tinted-default-fg-1)',
50
+ },
51
+
52
+ '&:active, &[data-pressed]': {
53
+ '--color-bg': 'var(--color-tinted-default-bg-2)',
54
+ '--color-fg': 'var(--color-tinted-default-fg-1)',
55
+ '--color-muted-bg': 'var(--color-tinted-default-bg-3)',
56
+ '--color-muted-fg': 'var(--color-tinted-default-fg-4)',
57
+ // '--color-icon': 'var(--color-tinted-default-fg-1)',
58
+ },
59
+
60
+ //
61
+ '&[data-selectable]:focus, &[data-selected]': {
62
+ '--color-bg': 'var(--color-solid-default-bg-1)',
63
+ '--color-fg': 'var(--color-solid-default-fg-1)',
64
+ '--color-muted-bg': 'var(--color-solid-default-bg-0)',
65
+ '--color-muted-fg': 'var(--color-solid-default-fg-3)',
66
+ // '--color-icon': 'var(--color-solid-default-fg-1)',
67
+ },
68
+ },
69
+ },
70
+ },
71
+ },
72
+
73
+ '&:is(button)': {
74
+ 'WebkitFontSmoothing': 'inherit',
75
+ 'appearance': 'none',
76
+ 'outline': 'none',
77
+ 'font': 'inherit',
78
+ 'textAlign': 'inherit',
79
+ 'border': 0,
80
+ // @ts-expect-error - TODO: fix this
81
+ 'width': ['-moz-available', '-webkit-fill-available', 'stretch'],
82
+ 'cursor': 'default',
83
+
84
+ // todo
85
+ // --card-focus-ring-box-shadow: none;
86
+ // box-shadow: var(--card-focus-ring-box-shadow);
87
+
88
+ '@nest': {
89
+ '&:not(:disabled)': {
90
+ '@nest': {
91
+ '&:hover': {
92
+ '--color-bg': 'var(--color-tinted-default-bg-1)',
93
+ '--color-fg': 'var(--color-tinted-default-fg-1)',
94
+ '--color-muted-bg': 'var(--color-tinted-default-bg-2)',
95
+ '--color-muted-fg': 'var(--color-tinted-default-fg-3)',
96
+ // '--color-icon': 'var(--color-tinted-default-fg-1)',
97
+ },
98
+
99
+ '&:active': {
100
+ '--color-bg': 'var(--color-tinted-default-bg-2)',
101
+ '--color-fg': 'var(--color-tinted-default-fg-1)',
102
+ '--color-muted-bg': 'var(--color-tinted-default-bg-3)',
103
+ '--color-muted-fg': 'var(--color-tinted-default-fg-4)',
104
+ // '--color-icon': 'var(--color-tinted-default-fg-1)',
105
+ },
106
+
107
+ '&[data-pressed]': {
108
+ '--color-bg': 'var(--color-tinted-default-bg-2)',
109
+ '--color-fg': 'var(--color-tinted-default-fg-1)',
110
+ '--color-muted-bg': 'var(--color-tinted-default-bg-3)',
111
+ '--color-muted-fg': 'var(--color-tinted-default-fg-4)',
112
+ // '--color-icon': 'var(--color-tinted-default-fg-1)',
113
+ },
114
+
115
+ // &:focus,
116
+ '&[data-selectable]:focus, &[data-selected]': {
117
+ '--color-bg': 'var(--color-solid-default-bg-2)',
118
+ '--color-border': 'var(--color-solid-default-border-0)',
119
+ '--color-fg': 'var(--color-solid-default-fg-1)',
120
+ '--color-muted-bg': 'var(--color-solid-default-bg-3)',
121
+ '--color-muted-fg': 'var(--color-solid-default-fg-4)',
122
+ // '--color-icon': 'var(--color-solid-default-fg-1)',
123
+ },
124
+ },
125
+ },
126
+
127
+ '&:disabled': {
128
+ '--color-bg': 'var(--color-tinted-default-bg-0)',
129
+ '--color-fg': 'var(--color-tinted-default-border-2)',
130
+ '--color-muted-bg': 'var(--color-tinted-default-bg-1)',
131
+ '--color-muted-fg': 'var(--color-tinted-default-border-1)',
132
+ },
133
+ },
134
+ },
135
+
136
+ '&:is(pre)': {
137
+ font: 'inherit',
138
+ },
139
+ },
140
+
141
+ ////////////////////////////////////////////////////////////////////////////////////////////////
142
+ // Legacy `--card` variables
143
+ ////////////////////////////////////////////////////////////////////////////////////////////////
144
+ //
145
+ // '--card-accent-fg-color': 'var(--color-accent-fg)',
146
+ // ...THEME_COLOR_AVATAR_COLORS.reduce((acc, color) => {
147
+ // return {
148
+ // ...acc,
149
+ // [`--card-avatar-${color}-bg-color`]: `var(--color-avatar-${color}-bg)`,
150
+ // [`--card-avatar-${color}-fg-color`]: `var(--color-avatar-${color}-fg)`,
151
+ // }
152
+ // }, {} as Properties),
153
+ // '--card-backdrop-color': 'var(--color-backdrop)',
154
+ // ...THEME_COLOR_STATE_TONES.reduce((acc, tone) => {
155
+ // return {
156
+ // ...acc,
157
+ // [`--card-badge-${tone}-bg-color`]: `var(--color-badge-${tone}-bg)`,
158
+ // [`--card-badge-${tone}-dot-color`]: `var(--color-badge-${tone}-dot)`,
159
+ // [`--card-badge-${tone}-fg-color`]: `var(--color-badge-${tone}-fg)`,
160
+ // [`--card-badge-${tone}-icon-color`]: `var(--color-badge-${tone}-icon)`,
161
+ // }
162
+ // }, {} as Properties),
163
+ '--card-bg-color': vars.color.bg,
164
+ '--card-bg2-color': vars.color.muted.bg,
165
+ '--card-border-color': vars.color.border,
166
+ '--card-code-bg-color': vars.color.muted.bg,
167
+ '--card-code-fg-color': vars.color.tinted.default.fg[4],
168
+ '--card-fg-color': vars.color.fg,
169
+ '--card-focus-ring-color': vars.color.focusRing,
170
+ '--card-icon-color': vars.color.fg,
171
+ '--card-kbd-bg-color': vars.color.muted.bg,
172
+ '--card-kbd-border-color': vars.color.tinted.default.border[1],
173
+ '--card-kbd-fg-color': vars.color.muted.fg,
174
+ '--card-link-color': vars.color.link.fg,
175
+ '--card-link-fg-color': vars.color.link.fg,
176
+ '--card-muted-bg-color': vars.color.muted.bg, // 'var(--color-muted-bg)', // vars.color.tinted.default.bg[1],
177
+ '--card-muted-fg-color': vars.color.muted.fg, // vars.color.tinted.default.fg[4],
178
+ '--card-shadow-outline-color': vars.color.shadow.outline,
179
+ '--card-shadow-umbra-color': vars.color.shadow.umbra,
180
+ '--card-shadow-penumbra-color': vars.color.shadow.penumbra,
181
+ '--card-shadow-ambient-color': vars.color.shadow.ambient,
182
+ // '--card-skeleton-from-color': 'var(--color-skeleton-from)',
183
+ // '--card-skeleton-to-color': 'var(--color-skeleton-to)',
184
+ '--card-hairline-soft-color': vars.color.tinted.default.border[1],
185
+ '--card-hairline-hard-color': vars.color.tinted.default.border[2],
186
+ },
187
+ }
188
+
189
+ function buildCardTonesRules() {
190
+ const rules: Record<string, Properties> = {}
191
+
192
+ for (const scheme of ['light', 'dark'] as const) {
193
+ const props: Properties = {colorScheme: scheme}
194
+
195
+ for (const cardTone of THEME_COLOR_CARD_TONES) {
196
+ const source = vars.color[scheme][cardTone]
197
+ const target = varNames.color[cardTone]
198
+
199
+ Object.assign(props, {
200
+ ...buildCardAvatarColorProperties({source, target}),
201
+
202
+ [target.backdrop]: source.backdrop,
203
+ [target.focusRing]: source.focusRing,
204
+ [target.link.fg]: source.link.fg,
205
+
206
+ [target.shadow.outline]: source.shadow.outline,
207
+ [target.shadow.umbra]: source.shadow.umbra,
208
+ [target.shadow.penumbra]: source.shadow.penumbra,
209
+ [target.shadow.ambient]: source.shadow.ambient,
210
+
211
+ [target.token.atrule]: source.token.atrule,
212
+ [target.token.attrName]: source.token.attrName,
213
+ [target.token.attrValue]: source.token.attrValue,
214
+ [target.token.attribute]: source.token.attribute,
215
+ [target.token.boolean]: source.token.boolean,
216
+ [target.token.builtin]: source.token.builtin,
217
+ [target.token.cdata]: source.token.cdata,
218
+ [target.token.char]: source.token.char,
219
+ [target.token.class]: source.token.class,
220
+ [target.token.className]: source.token.className,
221
+ [target.token.comment]: source.token.comment,
222
+ [target.token.constant]: source.token.constant,
223
+ [target.token.deleted]: source.token.deleted,
224
+ [target.token.doctype]: source.token.doctype,
225
+ [target.token.entity]: source.token.entity,
226
+ [target.token.function]: source.token.function,
227
+ [target.token.hexcode]: source.token.hexcode,
228
+ [target.token.id]: source.token.id,
229
+ [target.token.important]: source.token.important,
230
+ [target.token.inserted]: source.token.inserted,
231
+ [target.token.keyword]: source.token.keyword,
232
+ [target.token.number]: source.token.number,
233
+ [target.token.operator]: source.token.operator,
234
+ [target.token.prolog]: source.token.prolog,
235
+ [target.token.property]: source.token.property,
236
+ [target.token.pseudoClass]: source.token.pseudoClass,
237
+ [target.token.pseudoElement]: source.token.pseudoElement,
238
+ [target.token.punctuation]: source.token.punctuation,
239
+ [target.token.regex]: source.token.regex,
240
+ [target.token.selector]: source.token.selector,
241
+ [target.token.string]: source.token.string,
242
+ [target.token.symbol]: source.token.symbol,
243
+ [target.token.tag]: source.token.tag,
244
+ [target.token.unit]: source.token.unit,
245
+ [target.token.url]: source.token.url,
246
+ [target.token.variable]: source.token.variable,
247
+
248
+ ...buildCardColorVariantProperties({
249
+ source: source.solid,
250
+ target: target.solid,
251
+ }),
252
+
253
+ ...buildCardColorVariantProperties({
254
+ source: source.tinted,
255
+ target: target.tinted,
256
+ }),
257
+ })
258
+ }
259
+
260
+ rules[`&.${scheme}`] = props
261
+ }
262
+
263
+ for (const cardTone of THEME_COLOR_CARD_TONES) {
264
+ const source = vars.color[cardTone]
265
+ const target = varNames.color
266
+
267
+ rules[`&.${toneMap[cardTone]}`] = {
268
+ ...buildCardAvatarColorProperties({source, target}),
269
+
270
+ [target.backdrop]: source.backdrop,
271
+ [target.focusRing]: source.focusRing,
272
+ [target.link.fg]: source.link.fg,
273
+
274
+ [target.shadow.outline]: source.shadow.outline,
275
+ [target.shadow.umbra]: source.shadow.umbra,
276
+ [target.shadow.penumbra]: source.shadow.penumbra,
277
+ [target.shadow.ambient]: source.shadow.ambient,
278
+
279
+ [target.token.atrule]: source.token.atrule,
280
+ [target.token.attrName]: source.token.attrName,
281
+ [target.token.attrValue]: source.token.attrValue,
282
+ [target.token.attribute]: source.token.attribute,
283
+ [target.token.boolean]: source.token.boolean,
284
+ [target.token.builtin]: source.token.builtin,
285
+ [target.token.cdata]: source.token.cdata,
286
+ [target.token.char]: source.token.char,
287
+ [target.token.class]: source.token.class,
288
+ [target.token.className]: source.token.className,
289
+ [target.token.comment]: source.token.comment,
290
+ [target.token.constant]: source.token.constant,
291
+ [target.token.deleted]: source.token.deleted,
292
+ [target.token.doctype]: source.token.doctype,
293
+ [target.token.entity]: source.token.entity,
294
+ [target.token.function]: source.token.function,
295
+ [target.token.hexcode]: source.token.hexcode,
296
+ [target.token.id]: source.token.id,
297
+ [target.token.important]: source.token.important,
298
+ [target.token.inserted]: source.token.inserted,
299
+ [target.token.keyword]: source.token.keyword,
300
+ [target.token.number]: source.token.number,
301
+ [target.token.operator]: source.token.operator,
302
+ [target.token.prolog]: source.token.prolog,
303
+ [target.token.property]: source.token.property,
304
+ [target.token.pseudoClass]: source.token.pseudoClass,
305
+ [target.token.pseudoElement]: source.token.pseudoElement,
306
+ [target.token.punctuation]: source.token.punctuation,
307
+ [target.token.regex]: source.token.regex,
308
+ [target.token.selector]: source.token.selector,
309
+ [target.token.string]: source.token.string,
310
+ [target.token.symbol]: source.token.symbol,
311
+ [target.token.tag]: source.token.tag,
312
+ [target.token.unit]: source.token.unit,
313
+ [target.token.url]: source.token.url,
314
+ [target.token.variable]: source.token.variable,
315
+
316
+ ...buildCardColorVariantProperties({
317
+ source: source.solid,
318
+ target: target.solid,
319
+ }),
320
+
321
+ ...buildCardColorVariantProperties({
322
+ source: source.tinted,
323
+ target: target.tinted,
324
+ }),
325
+ }
326
+ }
327
+
328
+ return rules
329
+ }
330
+
331
+ function buildCardAvatarColorProperties(options: {
332
+ source: ColorCardVars
333
+ target: ColorCardVarNames
334
+ }): Properties {
335
+ const {source, target} = options
336
+
337
+ const props: Properties = {}
338
+
339
+ for (const hue of HUES) {
340
+ Object.assign(props, {
341
+ [target.avatar[hue].bg]: source.avatar[hue].bg,
342
+ [target.avatar[hue].fg]: source.avatar[hue].fg,
343
+ } satisfies Properties)
344
+ }
345
+
346
+ return props
347
+ }
348
+
349
+ function buildCardColorVariantProperties(options: {
350
+ source: ColorVariantVars
351
+ target: ColorVariantVarNames
352
+ }): Properties {
353
+ const {source, target} = options
354
+
355
+ const props: Properties = {}
356
+
357
+ for (const elementTone of THEME_COLOR_STATE_TONES) {
358
+ Object.assign(props, {
359
+ [target[elementTone].bg[0]]: source[elementTone].bg[0],
360
+ [target[elementTone].bg[1]]: source[elementTone].bg[1],
361
+ [target[elementTone].bg[2]]: source[elementTone].bg[2],
362
+ [target[elementTone].bg[3]]: source[elementTone].bg[3],
363
+ [target[elementTone].bg[4]]: source[elementTone].bg[4],
364
+
365
+ [target[elementTone].border[0]]: source[elementTone].border[0],
366
+ [target[elementTone].border[1]]: source[elementTone].border[1],
367
+ [target[elementTone].border[2]]: source[elementTone].border[2],
368
+ [target[elementTone].border[3]]: source[elementTone].border[3],
369
+ [target[elementTone].border[4]]: source[elementTone].border[4],
370
+
371
+ [target[elementTone].fg[0]]: source[elementTone].fg[0],
372
+ [target[elementTone].fg[1]]: source[elementTone].fg[1],
373
+ [target[elementTone].fg[2]]: source[elementTone].fg[2],
374
+ [target[elementTone].fg[3]]: source[elementTone].fg[3],
375
+ [target[elementTone].fg[4]]: source[elementTone].fg[4],
376
+ } satisfies Properties)
377
+ }
378
+
379
+ return props
380
+ }
381
+
382
+ // export function cardColorStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {
383
+ // const {$checkered, $focusRing, $muted} = props
384
+ // const {card, color, style} = getTheme_v2(props.theme)
385
+ // const border = {width: card.border.width, color: 'var(--card-border-color)'}
386
+
387
+ // return css`
388
+ //
389
+
390
+ // ${_cardColorStyle(color, color, $checkered)}
391
+
392
+ // background-color: ${$muted ? 'var(--card-muted-bg-color)' : 'var(--card-bg-color)'};
393
+ // color: var(--card-fg-color);
394
+
395
+ // /* &:is(button) */
396
+ // &[data-as='button'] {
397
+
398
+ // &:disabled {
399
+ // ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}
400
+ // }
401
+
402
+ // &:not(:disabled) {
403
+ // &[data-pressed] {
404
+ // ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}
405
+ // }
406
+
407
+ // &[data-selected] {
408
+ // ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}
409
+ // }
410
+
411
+ // @media (hover: hover) {
412
+ // &:not([data-pressed]):not([data-selected]) {
413
+ // &[data-hovered],
414
+ // &:hover {
415
+ // ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}
416
+ // }
417
+
418
+ // &:active {
419
+ // ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}
420
+ // }
421
+ // }
422
+ // }
423
+
424
+ // &:focus-visible {
425
+ // --card-focus-ring-box-shadow: ${$focusRing
426
+ // ? focusRingStyle({base: color, border, focusRing: card.focusRing})
427
+ // : undefined};
428
+ // }
429
+ // }
430
+ // }
431
+
432
+ // /* &:is(a) */
433
+ // &[data-as='a'] {
434
+ // cursor: pointer;
435
+ // box-shadow: var(--card-focus-ring-box-shadow);
436
+
437
+ // &[data-disabled] {
438
+ // ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}
439
+ // }
440
+
441
+ // &:not([data-disabled]) {
442
+ // &[data-pressed] {
443
+ // ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}
444
+ // }
445
+
446
+ // &[data-selected] {
447
+ // ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}
448
+ // }
449
+
450
+ // @media (hover: hover) {
451
+ // &:not([data-pressed]):not([data-selected]) {
452
+ // &[data-hovered],
453
+ // &:hover {
454
+ // ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}
455
+ // }
456
+
457
+ // &:active {
458
+ // ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}
459
+ // }
460
+ // }
461
+ // }
462
+
463
+ // &:focus-visible {
464
+ // --card-focus-ring-box-shadow: ${$focusRing
465
+ // ? focusRingStyle({base: color, border, focusRing: card.focusRing})
466
+ // : undefined};
467
+ // }
468
+ // }
469
+ // }
470
+
471
+ // ${style?.card?.root}
472
+ // `
473
+ // }
@@ -5,6 +5,7 @@ import {BoxStyleProps} from '../box'
5
5
 
6
6
  export interface CardStyleProps extends BoxStyleProps, ShadowStyleProps {
7
7
  checkered?: boolean
8
+ selectable?: boolean
8
9
  scheme?: ThemeColorSchemeKey
9
10
  tone?: ThemeColorCardToneKey | 'inherit'
10
11
  }
@@ -6,7 +6,7 @@ const primitive: StyleRules = {
6
6
  // '--color-border': 'var(--color-tinted-default-border-2)',
7
7
  // '--color-fg': 'var(--color-tinted-default-fg-3)',
8
8
 
9
- 'boxShadow': 'inset 0 0 0 0.5px var(--color-tinted-default-border-3)',
9
+ 'boxShadow': 'inset 0 0 0 0.5px var(--color-border)',
10
10
  'background': 'var(--color-muted-bg)',
11
11
  'font': 'inherit',
12
12
  'verticalAlign': 'top',
@@ -3,7 +3,3 @@ import {_comp} from '../../_comp'
3
3
  export function popover(): string | undefined {
4
4
  return _comp('popover')
5
5
  }
6
-
7
- export function popoverCard(): string | undefined {
8
- return _comp('popover-card')
9
- }
@@ -16,16 +16,22 @@ const primitive: StyleRules = {
16
16
  padding: 0,
17
17
  margin: 0,
18
18
 
19
- // place the input element on top of the representation element
19
+ /* Place the input element above the representation element */
20
20
  zIndex: 1,
21
21
  },
22
22
 
23
23
  '.switch-presentation': {
24
24
  '--switch-bg-color': 'var(--color-tinted-default-border-2)',
25
+ // '--switch-border-color': 'var(--color-tinted-default-border-1)',
25
26
  '--switch-fg-color': 'var(--color-tinted-default-bg-0)',
27
+ // --switch-bg-color: ${color.input.default.enabled.border};
28
+ // --switch-fg-color: ${color.input.default.enabled.bg};
26
29
  '--switch-thumb-offset': '0',
27
30
  '--switch-thumb-size': 'calc(var(--input-switch-height) - var(--input-switch-padding) * 2)',
28
31
  'display': 'block',
32
+ // &:not([hidden]) {
33
+ // display: block;
34
+ // }
29
35
  'position': 'relative',
30
36
  'width': 'var(--input-switch-width)',
31
37
  'height': 'var(--input-switch-height)',
@@ -36,29 +42,59 @@ const primitive: StyleRules = {
36
42
  'pointerEvents': 'none',
37
43
 
38
44
  '@nest': {
45
+ // '&::after': {
46
+ // content: '""',
47
+ // display: 'block',
48
+ // position: 'absolute',
49
+ // top: 0,
50
+ // left: 0,
51
+ // right: 0,
52
+ // bottom: 0,
53
+ // zIndex: 1,
54
+ // // boxShadow: 'var(--switch-box-shadow)',
55
+ // borderRadius: 'inherit',
56
+ // },
39
57
  '.switch-element:focus + &': {
58
+ // --switch-box-shadow: ${focusRingStyle({focusRing: input.switch.focusRing})};
40
59
  outline: 'var(--input-switch-focus-ring-width) solid var(--color-focus-ring)',
41
60
  },
42
-
43
61
  'input:focus:not(:focus-visible) + &': {
44
62
  outline: 'none',
45
63
  },
46
-
47
64
  'input:checked + &': {
48
65
  '--switch-bg-color': 'var(--color-solid-default-bg-0)',
66
+ // '--switch-border-color': 'var(--color-solid-default-bg-0)',
49
67
  '--switch-fg-color': 'var(--color-solid-default-fg-0)',
50
68
  },
69
+ // input:not([data-read-only]):disabled + && {
70
+ // --switch-bg-color: ${color.input.default.disabled.border};
71
+ // --switch-fg-color: ${color.input.default.disabled.bg};
72
+ // }
73
+ // input[data-read-only]:disabled + && {
74
+ // --switch-bg-color: ${color.input.default.readOnly.border};
75
+ // --switch-fg-color: ${color.input.default.readOnly.bg};
76
+ // }
77
+ // input:checked[data-read-only]:disabled + && {
78
+ // --switch-bg-color: ${color.input.default.readOnly.fg};
79
+ // --switch-fg-color: ${color.input.default.readOnly.bg};
80
+ // }
51
81
 
52
82
  '.switch-element:checked + &': {
53
83
  '--switch-thumb-offset':
54
84
  'calc(var(--input-switch-width) - (var(--input-switch-padding) * 2) - var(--switch-thumb-size))',
55
85
  },
56
-
57
- '[data-indeterminate] > .switch-element + &': {
58
- '--switch-thumb-offset':
59
- 'calc(var(--input-switch-width) / 2 - var(--switch-thumb-size) / 2 - var(--input-switch-padding))',
60
- },
61
86
  },
87
+
88
+ // @media (hover: hover) {
89
+ // input:not(:disabled):hover + && {
90
+ // --switch-bg-color: ${color.input.default.hovered.border};
91
+ // --switch-fg-color: ${color.input.default.hovered.bg};
92
+ // }
93
+ // input:not(:disabled):checked:hover + && {
94
+ // --switch-bg-color: ${color.input.default.enabled.fg};
95
+ // --switch-fg-color: ${color.input.default.enabled.bg};
96
+ // }
97
+ // }
62
98
  },
63
99
 
64
100
  '.switch-track': {
@@ -70,12 +106,15 @@ const primitive: StyleRules = {
70
106
  right: 0,
71
107
  bottom: 0,
72
108
  borderRadius: 'inherit',
109
+ // boxShadow: 'inset 0 0 0 1px var(--switch-border-color)',
73
110
 
74
111
  transition:
75
112
  'box-shadow, background-color var(--input-switch-transition-duration-ms) var(--input-switch-transition-timing-function)',
76
113
  },
77
114
 
78
115
  '.switch-thumb': {
116
+ // '--switch-thumb-offset': '0',
117
+
79
118
  display: 'block',
80
119
  position: 'absolute',
81
120
  left: 'var(--input-switch-padding)',
@@ -88,6 +127,42 @@ const primitive: StyleRules = {
88
127
  transform: 'translate3d(var(--switch-thumb-offset), 0, 0)',
89
128
  transition:
90
129
  'transform var(--input-switch-transition-duration-ms) var(--input-switch-transition-timing-function)',
130
+ // transition-property: transform;
131
+ // transition-duration: ${input.switch.transitionDurationMs}ms;
132
+ // transition-timing-function: ${input.switch.transitionTimingFunction};
133
+
134
+ // const {$indeterminate} = props
135
+ // const {input} = getTheme_v2(props.theme)
136
+ // const trackWidth = input.switch.width
137
+ // const trackHeight = input.switch.height
138
+ // const trackPadding = input.switch.padding
139
+ // const size = trackHeight - input.switch.padding * 2
140
+ // const checkedOffset = trackWidth - trackPadding * 2 - size
141
+ // const indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding
142
+ // const checked = $indeterminate !== true && props.$checked === true
143
+ // return css`
144
+
145
+ // position: absolute;
146
+ // left: ${rem(trackPadding)};
147
+ // top: ${rem(trackPadding)};
148
+ // height: ${rem(size)};
149
+ // width: ${rem(size)};
150
+ // border-radius: ${rem(size / 2)};
151
+ // transition-property: transform;
152
+ // transition-duration: ${input.switch.transitionDurationMs}ms;
153
+ // transition-timing-function: ${input.switch.transitionTimingFunction};
154
+ // background: var(--switch-fg-color);
155
+ // transform: translate3d(0, 0, 0);
156
+ // box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05);
157
+ // ${checked &&
158
+ // css`
159
+ // transform: translate3d(${checkedOffset}px, 0, 0);
160
+ // `}
161
+ // ${$indeterminate &&
162
+ // css`
163
+ // transform: translate3d(${indeterminateOffset}px, 0, 0);
164
+ // `}
165
+ // `
91
166
  },
92
167
  }
93
168
 
@@ -2,7 +2,6 @@ import {FONT_TEXT_SIZE} from '@sanity/ui/theme'
2
2
 
3
3
  import {_responsiveRule} from '../../_responsiveRule'
4
4
  import {Style, StyleRules} from '../../types'
5
- import {vars} from '../../vars'
6
5
 
7
6
  const primitive: StyleRules = {
8
7
  '.text': {
@@ -26,16 +25,9 @@ const primitive: StyleRules = {
26
25
  color: 'var(--color-fg)',
27
26
  },
28
27
 
29
- '& code': {
30
- fontFamily: vars.font.code.family,
31
- color: 'var(--color-code-fg)',
32
- backgroundColor: 'var(--color-muted-bg)',
33
- borderRadius: vars.radius[2],
34
- },
35
-
36
- '& svg': {
37
- color: 'var(--color-muted-fg)',
38
- },
28
+ // '& svg': {
29
+ // color: 'var(--color-icon)',
30
+ // },
39
31
  },
40
32
  },
41
33