@sanity/ui 3.0.0-static.6 → 3.0.0-static.7

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 (44) hide show
  1. package/dist/_chunks-cjs/_visual-editing.js +50 -50
  2. package/dist/_chunks-cjs/_visual-editing.js.map +1 -1
  3. package/dist/_chunks-es/_visual-editing.mjs +51 -51
  4. package/dist/_chunks-es/_visual-editing.mjs.map +1 -1
  5. package/dist/cli.js +1 -1
  6. package/dist/css.d.mts +11 -1
  7. package/dist/css.d.ts +11 -1
  8. package/dist/css.js +324 -309
  9. package/dist/css.js.map +1 -1
  10. package/dist/css.mjs +324 -309
  11. package/dist/css.mjs.map +1 -1
  12. package/dist/index.js +3 -13
  13. package/dist/index.js.map +1 -1
  14. package/dist/index.mjs +3 -13
  15. package/dist/index.mjs.map +1 -1
  16. package/dist/sanity-theme.css +1 -1
  17. package/dist/system.css +229 -10
  18. package/dist/theme.js +1 -1
  19. package/dist/theme.js.map +1 -1
  20. package/dist/theme.mjs +1 -1
  21. package/dist/theme.mjs.map +1 -1
  22. package/package.json +1 -1
  23. package/src/css/aspects/index.ts +1 -0
  24. package/src/css/aspects/minWidth/index.ts +2 -0
  25. package/src/css/aspects/minWidth/minWidth.style.ts +13 -0
  26. package/src/css/aspects/minWidth/minWidth.ts +6 -0
  27. package/src/css/aspects/minWidth/types.ts +7 -0
  28. package/src/css/compile/compileRule.ts +1 -0
  29. package/src/css/compile/compileStyle.ts +1 -1
  30. package/src/css/primitives/box/box.style.ts +1 -1
  31. package/src/css/primitives/box/box.ts +2 -3
  32. package/src/css/primitives/box/types.ts +2 -0
  33. package/src/css/primitives/card/card.style.ts +69 -3
  34. package/src/css/primitives/card/types.ts +0 -1
  35. package/src/css/primitives/popover/popover.ts +4 -0
  36. package/src/css/primitives/switch/switch.style.ts +8 -83
  37. package/src/css/system.style.ts +2 -0
  38. package/src/theme/v3/defaults.ts +1 -1
  39. package/src/ui/components/autocomplete/autocomplete.tsx +2 -11
  40. package/src/ui/primitives/box/box.tsx +3 -2
  41. package/src/ui/primitives/card/card.tsx +2 -6
  42. package/src/ui/primitives/kbd/kbd.tsx +2 -2
  43. package/src/ui/primitives/popover/popoverCard.tsx +45 -39
  44. package/src/css/primitives/card/rules.ts +0 -473
@@ -1,473 +0,0 @@
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
- // }