@sanity/ui 3.0.0-static.10 → 3.0.0-static.11

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 (71) hide show
  1. package/dist/_chunks-cjs/_visual-editing.js +160 -207
  2. package/dist/_chunks-cjs/_visual-editing.js.map +1 -1
  3. package/dist/_chunks-es/_visual-editing.mjs +161 -208
  4. package/dist/_chunks-es/_visual-editing.mjs.map +1 -1
  5. package/dist/_visual-editing.d.mts +1 -3
  6. package/dist/_visual-editing.d.ts +1 -3
  7. package/dist/cli.js +1 -1
  8. package/dist/css.d.mts +115 -2
  9. package/dist/css.d.ts +115 -2
  10. package/dist/css.js +539 -402
  11. package/dist/css.js.map +1 -1
  12. package/dist/css.mjs +541 -404
  13. package/dist/css.mjs.map +1 -1
  14. package/dist/index.d.mts +4 -4
  15. package/dist/index.d.ts +4 -4
  16. package/dist/index.js +50 -17
  17. package/dist/index.js.map +1 -1
  18. package/dist/index.mjs +45 -12
  19. package/dist/index.mjs.map +1 -1
  20. package/dist/sanity-theme.css +1 -1
  21. package/dist/system.css +418 -182
  22. package/dist/theme.js +10 -11
  23. package/dist/theme.js.map +1 -1
  24. package/dist/theme.mjs +10 -11
  25. package/dist/theme.mjs.map +1 -1
  26. package/package.json +1 -1
  27. package/src/css/_resp.ts +0 -1
  28. package/src/css/aspects/font/font.style.ts +7 -66
  29. package/src/css/aspects/shadow/shadow.style.ts +16 -41
  30. package/src/css/compile/compilePalette.ts +4 -3
  31. package/src/css/compile/compileSystem.ts +0 -3
  32. package/src/css/compile/compileTheme_v3.ts +233 -219
  33. package/src/css/components/skeleton/skeleton.style.ts +8 -4
  34. package/src/css/constants.ts +9 -0
  35. package/src/css/index.ts +1 -0
  36. package/src/css/primitives/_arrow/_arrow.style.ts +6 -8
  37. package/src/css/primitives/_arrow/_arrow.ts +4 -0
  38. package/src/css/primitives/_selectable/_selectable.style.ts +23 -23
  39. package/src/css/primitives/button/button.style.ts +48 -15
  40. package/src/css/primitives/card/card.style.ts +1 -1
  41. package/src/css/primitives/token/token.style.ts +37 -36
  42. package/src/css/responsiveRules.ts +12 -19
  43. package/src/css/types.ts +106 -3
  44. package/src/css/varNames.ts +101 -4
  45. package/src/css/vars.ts +52 -16
  46. package/src/theme/v3/buildTheme_v3.ts +1 -1
  47. package/src/theme/v3/{defaults.ts → defaultTokens.ts} +1 -2
  48. package/src/theme/v3/index.ts +1 -1
  49. package/src/theme/v3/resolveTokens.ts +9 -9
  50. package/src/ui/RootClassNames.tsx +41 -0
  51. package/src/ui/_compat/helpers.ts +72 -0
  52. package/src/ui/_compat/index.ts +2 -6
  53. package/src/ui/_compat/studioTheme.ts +7 -0
  54. package/src/ui/_compat/types.ts +0 -83
  55. package/src/ui/index.ts +1 -0
  56. package/src/ui/primitives/button/button.tsx +5 -6
  57. package/src/ui/primitives/popover/popover.tsx +25 -7
  58. package/src/ui/primitives/popover/popoverCard.tsx +46 -45
  59. package/src/ui/primitives/tooltip/tooltip.tsx +9 -2
  60. package/src/ui/primitives/tooltip/tooltipCard.tsx +1 -1
  61. package/src/ui/utils/arrow/arrow.tsx +3 -11
  62. package/src/ui/utils/elementQuery/elementQuery.tsx +10 -8
  63. package/src/ui/utils/virtualList/virtualList.tsx +37 -32
  64. package/src/css/components/breadcrumbs/rules.ts +0 -25
  65. package/src/css/components/dialog/rules.ts +0 -78
  66. package/src/css/components/skeleton/rules.ts +0 -113
  67. package/src/css/components/toast/rules.ts +0 -18
  68. package/src/css/components/tree/rules.ts +0 -168
  69. package/src/css/primitives/popover/rules.ts +0 -5
  70. package/src/css/primitives/spinner/rules.ts +0 -21
  71. package/src/css/primitives/token/rules.ts +0 -45
@@ -31,7 +31,7 @@ import {useArrayProp, usePrefersReducedMotion} from '../../hooks'
31
31
  import {origin} from '../../middleware/origin'
32
32
  import {Placement, PopoverMargins, Props} from '../../types'
33
33
  import {LayerProps, LayerProvider, Portal, useBoundaryElement, useLayer} from '../../utils'
34
- import {CardProps} from '../card'
34
+ import {CardProps, CardProvider, useCard} from '../card'
35
35
  import {
36
36
  DEFAULT_FALLBACK_PLACEMENTS,
37
37
  DEFAULT_POPOVER_DISTANCE,
@@ -109,7 +109,17 @@ export interface PopoverProps extends CardProps, LayerProps {
109
109
  const ViewportOverlay = () => {
110
110
  const {zIndex} = useLayer()
111
111
 
112
- return <div style={{height: '100vh', inset: 0, position: 'fixed', width: '100vw', zIndex}} />
112
+ return (
113
+ <div
114
+ style={{
115
+ position: 'fixed',
116
+ inset: 0,
117
+ width: '100vw',
118
+ height: '100vh',
119
+ zIndex,
120
+ }}
121
+ />
122
+ )
113
123
  }
114
124
 
115
125
  /**
@@ -154,11 +164,13 @@ export const Popover = memo(
154
164
  shadow = 3,
155
165
  tone = 'inherit',
156
166
  width: widthProp = 'auto',
157
- // zOffset: zOffsetProp = layer.popover.zOffset,
158
167
  zOffset: zOffsetProp = Z_OFFSETS.popover,
159
168
  updateRef,
160
169
  ...restProps
161
170
  } = props
171
+
172
+ const card = useCard()
173
+
162
174
  const prefersReducedMotion = usePrefersReducedMotion()
163
175
  const animate = prefersReducedMotion ? false : _animate
164
176
  const zOffset = useArrayProp(zOffsetProp)
@@ -338,7 +350,8 @@ export const Popover = memo(
338
350
 
339
351
  const popover = (
340
352
  <LayerProvider zOffset={zOffset}>
341
- {/* Optional transparent blocking overlay at the top-most z-index layer. Must be positioned before the below popover card. */}
353
+ {/* Optional transparent blocking overlay at the top-most z-index layer. Must be positioned
354
+ before the below popover card. */}
342
355
  {modal && <ViewportOverlay />}
343
356
 
344
357
  <PopoverCard
@@ -356,13 +369,11 @@ export const Popover = memo(
356
369
  placement={placement}
357
370
  radius={radius}
358
371
  ref={setFloating}
359
- // referenceWidth={matchReferenceWidth ? referenceWidthRef.current : width}
360
372
  scheme={scheme}
361
373
  shadow={shadow}
362
374
  originX={originX}
363
375
  originY={originY}
364
376
  strategy={strategy}
365
- tone={tone}
366
377
  x={x}
367
378
  y={y}
368
379
  >
@@ -374,7 +385,14 @@ export const Popover = memo(
374
385
  const children =
375
386
  open &&
376
387
  (portal ? (
377
- <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>{popover}</Portal>
388
+ <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>
389
+ <CardProvider
390
+ tone={tone === 'inherit' ? (card?.tone ?? 'default') : tone}
391
+ scheme={scheme ?? 'light'}
392
+ >
393
+ {popover}
394
+ </CardProvider>
395
+ </Portal>
378
396
  ) : (
379
397
  popover
380
398
  ))
@@ -6,7 +6,7 @@ import {CSSProperties, ForwardedRef, forwardRef, memo, useMemo} from 'react'
6
6
  import {POPOVER_MOTION_PROPS} from '../../constants'
7
7
  import {Placement, PopoverMargins, Props} from '../../types'
8
8
  import {Arrow, useLayer} from '../../utils'
9
- import {Card, CardProps, CardProvider, useCard} from '../card'
9
+ import {Card, CardProps} from '../card'
10
10
  import {Flex} from '../flex'
11
11
  import {
12
12
  DEFAULT_POPOVER_ARROW_HEIGHT,
@@ -59,18 +59,21 @@ export const PopoverCard = memo(
59
59
  overflow,
60
60
  radius,
61
61
  referenceWidth,
62
- scheme,
62
+ // scheme: schemeProp,
63
63
  shadow,
64
64
  strategy,
65
65
  style,
66
- tone,
66
+ tone = 'inherit',
67
67
  // width,
68
68
  x: xProp,
69
69
  y: yProp,
70
70
  ...restProps
71
71
  } = props
72
72
 
73
- const card = useCard()
73
+ // const card = useCard()
74
+
75
+ // const tone = toneProp ?? card?.tone ?? 'inherit'
76
+ // const scheme = schemeProp ?? card?.scheme ?? 'light'
74
77
 
75
78
  const layer = useLayer()
76
79
 
@@ -110,51 +113,49 @@ export const PopoverCard = memo(
110
113
  )
111
114
 
112
115
  return (
113
- <CardProvider tone={card?.tone ?? 'transparent'} scheme={card?.scheme ?? 'light'}>
114
- <MotionCard
115
- className={popoverCard()}
116
- data-ui="Popover"
117
- {...(restProps as CardProps & MotionProps)}
118
- data-context-tone={card?.tone ?? 'transparent'}
119
- data-placement={placement}
116
+ <MotionCard
117
+ className={popoverCard()}
118
+ data-ui="Popover"
119
+ {...(restProps as CardProps & MotionProps)}
120
+ data-context-tone={tone}
121
+ data-placement={placement}
122
+ direction="column"
123
+ display="flex"
124
+ radius={radius}
125
+ ref={ref}
126
+ // scheme={scheme}
127
+ shadow={shadow}
128
+ sizing="border"
129
+ style={rootStyle}
130
+ tone={tone}
131
+ variants={POPOVER_MOTION_PROPS.card}
132
+ transition={POPOVER_MOTION_PROPS.transition}
133
+ initial={animate ? ['hidden', 'initial'] : undefined}
134
+ animate={animate ? ['visible', 'scaleIn'] : undefined}
135
+ exit={animate ? ['hidden', 'scaleOut'] : undefined}
136
+ >
137
+ <Flex
138
+ data-ui="Popover__wrapper"
120
139
  direction="column"
121
- display="flex"
122
- radius={radius}
123
- ref={ref}
124
- scheme={scheme}
125
- shadow={shadow}
126
- sizing="border"
127
- style={rootStyle}
128
- tone={tone}
129
- variants={POPOVER_MOTION_PROPS.card}
130
- transition={POPOVER_MOTION_PROPS.transition}
131
- initial={animate ? ['hidden', 'initial'] : undefined}
132
- animate={animate ? ['visible', 'scaleIn'] : undefined}
133
- exit={animate ? ['hidden', 'scaleOut'] : undefined}
140
+ flex={1}
141
+ maxWidth={maxWidth}
142
+ overflow={overflow}
134
143
  >
135
- <Flex
136
- data-ui="Popover__wrapper"
137
- direction="column"
138
- flex={1}
139
- maxWidth={maxWidth}
140
- overflow={overflow}
141
- >
142
- <Flex direction="column" flex={1} padding={padding}>
143
- {children}
144
- </Flex>
144
+ <Flex direction="column" flex={1} padding={padding}>
145
+ {children}
145
146
  </Flex>
147
+ </Flex>
146
148
 
147
- {arrow && (
148
- <Arrow
149
- ref={arrowRef}
150
- style={arrowStyle}
151
- width={DEFAULT_POPOVER_ARROW_WIDTH}
152
- height={DEFAULT_POPOVER_ARROW_HEIGHT}
153
- radius={DEFAULT_POPOVER_ARROW_RADIUS}
154
- />
155
- )}
156
- </MotionCard>
157
- </CardProvider>
149
+ {arrow && (
150
+ <Arrow
151
+ ref={arrowRef}
152
+ style={arrowStyle}
153
+ width={DEFAULT_POPOVER_ARROW_WIDTH}
154
+ height={DEFAULT_POPOVER_ARROW_HEIGHT}
155
+ radius={DEFAULT_POPOVER_ARROW_RADIUS}
156
+ />
157
+ )}
158
+ </MotionCard>
158
159
  )
159
160
  }),
160
161
  )
@@ -35,6 +35,7 @@ import {origin} from '../../middleware/origin'
35
35
  import type {Placement, Props} from '../../types'
36
36
  import {Layer, type LayerProps, Portal, useBoundaryElement, usePortal} from '../../utils'
37
37
  import {getElementRef} from '../../utils/getElementRef'
38
+ import {CardProvider, useCard} from '../card'
38
39
  import type {Delay} from '../types'
39
40
  import {
40
41
  DEFAULT_FALLBACK_PLACEMENTS,
@@ -109,9 +110,10 @@ export const Tooltip = forwardRef(function Tooltip(
109
110
  scheme,
110
111
  shadow = 2,
111
112
  zOffset = Z_OFFSETS.tooltip,
112
- tone,
113
+ tone = 'inherit',
113
114
  ...restProps
114
115
  } = props
116
+ const card = useCard()
115
117
  const prefersReducedMotion = usePrefersReducedMotion()
116
118
  const animate = prefersReducedMotion ? false : _animate
117
119
  const fallbackPlacements = useArrayProp(fallbackPlacementsProp)
@@ -399,7 +401,12 @@ export const Tooltip = forwardRef(function Tooltip(
399
401
  showTooltip &&
400
402
  (portalProp ? (
401
403
  <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>
402
- {node}
404
+ <CardProvider
405
+ tone={tone === 'inherit' ? (card?.tone ?? 'default') : tone}
406
+ scheme={scheme ?? 'light'}
407
+ >
408
+ {node}
409
+ </CardProvider>
403
410
  </Portal>
404
411
  ) : (
405
412
  node
@@ -52,7 +52,7 @@ export const TooltipCard = memo(
52
52
  scheme,
53
53
  shadow,
54
54
  style,
55
- tone,
55
+ tone = 'inherit',
56
56
  ...restProps
57
57
  } = props
58
58
 
@@ -1,7 +1,6 @@
1
- import {_arrow, _arrowShape, _arrowStroke} from '@sanity/ui/css'
1
+ import {_arrow, _arrowShape, _arrowStroke, _arrowStrokeMask} from '@sanity/ui/css'
2
2
  import {CSSProperties, ForwardedRef, forwardRef, ReactElement, useMemo} from 'react'
3
3
 
4
- import {useTheme_v2} from '../../_compat'
5
4
  import {Props} from '../../types'
6
5
  import {compileCommands, getRoundedCommands, Point} from './cmds'
7
6
 
@@ -11,8 +10,6 @@ export const Arrow = forwardRef(function Arrow(
11
10
  ref: ForwardedRef<HTMLDivElement>,
12
11
  ): ReactElement {
13
12
  const {width: w, height: h, radius = 0, style, ...restProps} = props
14
- const {card} = useTheme_v2()
15
- const strokeWidth = card.shadow.outline
16
13
 
17
14
  const center = w / 2
18
15
 
@@ -42,14 +39,9 @@ export const Arrow = forwardRef(function Arrow(
42
39
  >
43
40
  <svg width={w} height={w} viewBox={`0 0 ${w} ${w}`}>
44
41
  <mask id="stroke-mask">
45
- <rect x={0} y={strokeWidth} width={w} height={w} fill="white" />
42
+ <rect className={_arrowStrokeMask()} x={0} width={w} height={w} fill="white" />
46
43
  </mask>
47
- <path
48
- className={_arrowStroke()}
49
- d={strokePath}
50
- mask="url(#stroke-mask)"
51
- strokeWidth={strokeWidth * 2}
52
- />
44
+ <path className={_arrowStroke()} d={strokePath} mask="url(#stroke-mask)" />
53
45
  <path className={_arrowShape()} d={fillPath} />
54
46
  </svg>
55
47
  </div>
@@ -1,6 +1,6 @@
1
+ import {BREAKPOINTS} from '@sanity/ui/css'
1
2
  import {ForwardedRef, forwardRef, useImperativeHandle, useMemo, useState} from 'react'
2
3
 
3
- import {useTheme_v2} from '../../_compat'
4
4
  import {useElementSize} from '../../hooks'
5
5
  import {Props} from '../../types'
6
6
  import {findMaxBreakpoints, findMinBreakpoints} from './helpers'
@@ -13,6 +13,8 @@ export interface MediaQueryProps {
13
13
  media?: number[]
14
14
  }
15
15
 
16
+ const defaultBreakpoints = Object.values(BREAKPOINTS)
17
+
16
18
  /**
17
19
  * DO NOT USE IN PRODUCTION.
18
20
  * @beta
@@ -21,24 +23,24 @@ export const ElementQuery = forwardRef(function ElementQuery(
21
23
  props: Props<MediaQueryProps, 'div'>,
22
24
  forwardedRef: ForwardedRef<HTMLDivElement>,
23
25
  ) {
24
- const theme = useTheme_v2()
25
- const {children, media: _media, ...restProps} = props
26
- const media = _media ?? theme.media
26
+ const {children, media: mediaProp, ...restProps} = props
27
+ const breakpoints = mediaProp ?? defaultBreakpoints
27
28
 
28
29
  const [element, setElement] = useState<HTMLDivElement | null>(null)
29
30
  const elementSize = useElementSize(element)
30
31
  const width = useMemo(() => elementSize?.border.width ?? window.innerWidth, [elementSize])
31
32
 
32
33
  const max = useMemo(() => {
33
- const eq = findMaxBreakpoints(media, width)
34
+ const eq = findMaxBreakpoints(breakpoints, width)
34
35
 
35
36
  return eq.length ? eq.join(' ') : undefined
36
- }, [media, width])
37
+ }, [breakpoints, width])
38
+
37
39
  const min = useMemo(() => {
38
- const eq = findMinBreakpoints(media, width)
40
+ const eq = findMinBreakpoints(breakpoints, width)
39
41
 
40
42
  return eq.length ? eq.join(' ') : undefined
41
- }, [media, width])
43
+ }, [breakpoints, width])
42
44
 
43
45
  useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => element, [
44
46
  element,
@@ -1,4 +1,7 @@
1
+ import {vars} from '@sanity/ui/css'
2
+ import {Space} from '@sanity/ui/theme'
1
3
  import {
4
+ CSSProperties,
2
5
  ForwardedRef,
3
6
  forwardRef,
4
7
  ReactElement,
@@ -10,7 +13,6 @@ import {
10
13
  useState,
11
14
  } from 'react'
12
15
 
13
- import {useTheme_v2} from '../../_compat'
14
16
  import {_isScrollable} from '../../helpers'
15
17
  import {_ResizeObserver} from '../../observers'
16
18
  import {Box, StackProps} from '../../primitives'
@@ -32,7 +34,7 @@ export interface VirtualListChangeOpts {
32
34
  * @beta
33
35
  */
34
36
  export interface VirtualListProps<Item = any> extends Omit<StackProps, 'gap'> {
35
- gap?: number
37
+ gap?: Space
36
38
  getItemKey?: (item: Item, itemIndex: number) => string
37
39
  items?: Item[]
38
40
  onChange?: (opts: VirtualListChangeOpts) => void
@@ -46,27 +48,18 @@ export const VirtualList = forwardRef(function VirtualList(
46
48
  props: Props<VirtualListProps, 'div'>,
47
49
  forwardedRef: ForwardedRef<HTMLDivElement>,
48
50
  ): ReactElement {
49
- const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props
50
- const {space} = useTheme_v2()
51
+ const {gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props
51
52
  const ref = useRef<HTMLDivElement | null>(null)
52
53
  const wrapperRef = useRef<HTMLDivElement | null>(null)
53
54
  const [scrollTop, setScrollTop] = useState(0)
54
55
  const [scrollHeight, setScrollHeight] = useState(0)
55
56
  const [itemHeight, setItemHeight] = useState(-1)
56
57
 
58
+ const [gapValue, setGapValue] = useState(0)
59
+
57
60
  // Sync ref to parent
58
61
  useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)
59
62
 
60
- useEffect(() => {
61
- if (!wrapperRef.current) return
62
-
63
- const firstElement = wrapperRef.current.firstChild
64
-
65
- if (firstElement instanceof HTMLElement) {
66
- setItemHeight(firstElement.offsetHeight)
67
- }
68
- }, [renderItem])
69
-
70
63
  useEffect((): (() => void) | undefined => {
71
64
  if (!ref.current) return
72
65
 
@@ -119,23 +112,42 @@ export const VirtualList = forwardRef(function VirtualList(
119
112
  }, [])
120
113
 
121
114
  const len = items.length
122
- const height = itemHeight ? len * (itemHeight + space[gap]) - space[gap] : 0
115
+ const height = itemHeight ? len * (itemHeight + gapValue) - gapValue : 0
123
116
  const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0
124
117
  const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0
125
118
 
126
119
  useEffect(() => {
127
- if (!onChange) return
128
- onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})
129
- }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])
120
+ onChange?.({
121
+ fromIndex,
122
+ gap: gapValue,
123
+ itemHeight,
124
+ scrollHeight,
125
+ scrollTop,
126
+ toIndex,
127
+ })
128
+ }, [fromIndex, gapValue, itemHeight, onChange, scrollHeight, scrollTop, toIndex])
130
129
 
131
130
  const children = useMemo(() => {
132
131
  if (!renderItem || items.length === 0) return null
133
132
 
134
133
  if (itemHeight === -1) {
135
134
  return [
136
- <Box insetTop={0} insetLeft={0} insetRight={0} key={0} position="absolute">
137
- {renderItem(items[0])}
138
- </Box>,
135
+ <>
136
+ <Box
137
+ ref={(el) => (el ? setItemHeight(el.offsetHeight) : undefined)}
138
+ insetTop={0}
139
+ insetLeft={0}
140
+ insetRight={0}
141
+ key={0}
142
+ position="absolute"
143
+ >
144
+ {renderItem(items[0])}
145
+ </Box>
146
+ <div
147
+ ref={(el) => (el ? setGapValue(el.offsetHeight) : undefined)}
148
+ style={{height: vars.space[gap]}}
149
+ />
150
+ </>,
139
151
  ]
140
152
  }
141
153
 
@@ -150,25 +162,18 @@ export const VirtualList = forwardRef(function VirtualList(
150
162
  insetRight={0}
151
163
  key={key}
152
164
  position="absolute"
153
- style={{top: itemIndex * (itemHeight + space[gap])}}
165
+ style={{top: itemIndex * (itemHeight + gapValue) - gapValue}}
154
166
  >
155
167
  {node}
156
168
  </Box>
157
169
  )
158
170
  })
159
- }, [fromIndex, gap, getItemKey, itemHeight, items, renderItem, space, toIndex])
171
+ }, [fromIndex, gap, gapValue, getItemKey, itemHeight, items, renderItem, toIndex])
160
172
 
161
- const wrapperStyle = useMemo(() => ({height}), [height])
173
+ const wrapperStyle: CSSProperties = useMemo(() => ({height}), [height])
162
174
 
163
175
  return (
164
- <Box
165
- // Root
166
- as={as}
167
- data-ui="VirtualList"
168
- {...restProps}
169
- position="relative"
170
- ref={ref}
171
- >
176
+ <Box data-ui="VirtualList" {...restProps} position="relative" ref={ref}>
172
177
  <div ref={wrapperRef} style={wrapperStyle}>
173
178
  {children}
174
179
  </div>
@@ -1,25 +0,0 @@
1
- import {Rules} from '../../types'
2
-
3
- export const breadcrumbsRules: Rules = {
4
- breadcrumbs: {
5
- lineHeight: 0,
6
- },
7
- }
8
-
9
- // import {styled} from '../../lib/styled'
10
- // import {Button} from '../../primitives'
11
-
12
- // export const Root = styled.ol`
13
- // margin: 0;
14
- // padding: 0;
15
- // display: flex;
16
- // list-style: none;
17
- // align-items: center;
18
- // white-space: nowrap;
19
- // line-height: 0;
20
- // `
21
-
22
- // export const ExpandButton = styled(Button)`
23
- // appearance: none;
24
- // margin: -4px;
25
- // `
@@ -1,78 +0,0 @@
1
- import {Rules} from '../../types'
2
- import {vars} from '../../vars'
3
-
4
- export const dialogRules: Rules = {
5
- 'dialog': {
6
- 'top': 0,
7
- 'left': 0,
8
- 'right': 0,
9
- 'bottom': 0,
10
- 'alignItems': 'center',
11
- 'justifyContent': 'center',
12
- 'outline': 'none',
13
-
14
- 'background': vars.color.backdrop,
15
-
16
- // @ts-expect-error - TODO: fix this
17
- '@keyframes': {
18
- 'dialog-zoom-in': {
19
- from: {
20
- opacity: 0,
21
- transform: 'scale(0.95)',
22
- },
23
- to: {
24
- opacity: 1,
25
- transform: 'scale(1)',
26
- },
27
- },
28
- 'dialog-fade-in': {
29
- from: {
30
- opacity: 0,
31
- },
32
- to: {
33
- opacity: 1,
34
- },
35
- },
36
- },
37
-
38
- '@nest': {
39
- '&[data-animate]': {
40
- animation: 'dialog-fade-in 200ms ease-out',
41
- },
42
-
43
- // Animates the dialog card.
44
- '&[data-animate] > [data-ui="DialogCard"]': {
45
- animation: 'dialog-zoom-in 200ms ease-out',
46
- },
47
- },
48
- },
49
-
50
- 'dialog-container': {
51
- width: '100%',
52
- height: '100%',
53
- },
54
-
55
- 'dialog-card-root': {
56
- width: '100%',
57
- maxHeight: '100%',
58
- // @ts-expect-error - TODO: fix this
59
- overflow: ['hidden', 'clip'],
60
- },
61
-
62
- 'dialog-layout': {
63
- width: '100%',
64
- },
65
-
66
- 'dialog-header': {
67
- zIndex: 2,
68
- },
69
-
70
- 'dialog-content': {
71
- zIndex: 1,
72
- outline: 'none',
73
- },
74
-
75
- 'dialog-footer': {
76
- zIndex: 3,
77
- },
78
- }
@@ -1,113 +0,0 @@
1
- import {FONT_CODE_SIZE, FONT_HEADING_SIZE, FONT_LABEL_SIZE, FONT_TEXT_SIZE} from '@sanity/ui/theme'
2
-
3
- import {responsiveRules} from '../../responsiveRules'
4
- import {Rules} from '../../types'
5
- import {vars} from '../../vars'
6
-
7
- export const skeletonRules: Rules = {
8
- 'skeleton': {
9
- '--color-skeleton-from': `color-mix(in srgb, transparent, ${vars.color.muted.fg} 5%)`,
10
- '--color-skeleton-to': `color-mix(in srgb, transparent, ${vars.color.muted.fg} 10%)`,
11
-
12
- 'backgroundColor': vars.color.skeleton.from,
13
- 'backgroundPosition': '100%',
14
- 'backgroundSize': '200% 100%',
15
- 'backgroundAttachment': 'fixed',
16
- 'opacity': 0,
17
- 'transition': 'opacity 200ms ease-in',
18
-
19
- // @ts-expect-error - TODO: fix this
20
- '@keyframes': {
21
- 'skeleton-pulse': {
22
- '0%': {
23
- backgroundPosition: '100%',
24
- },
25
- '100%': {
26
- backgroundPosition: '-100%',
27
- },
28
- },
29
- },
30
-
31
- '@nest': {
32
- '&[data-animated]': {
33
- backgroundImage: [
34
- `linear-gradient(to right`,
35
- vars.color.skeleton.from,
36
- vars.color.skeleton.to,
37
- vars.color.skeleton.from,
38
- vars.color.skeleton.from,
39
- vars.color.skeleton.from,
40
- `)`,
41
- ].join(', '),
42
- animationName: 'skeleton-pulse',
43
- animationTimingFunction: 'ease-in-out',
44
- animationIterationCount: 'infinite',
45
- animationDuration: '2000ms',
46
- },
47
-
48
- '&[data-visible]': {
49
- opacity: 1,
50
- },
51
- },
52
-
53
- '@media': {
54
- 'screen and (prefers-reduced-motion: no-preference)': {
55
- backgroundColor: vars.color.skeleton.from,
56
- },
57
- },
58
- },
59
-
60
- 'font-skeleton': {
61
- height: `calc(var(--font-skeleton-line-height) - var(--font-skeleton-ascender-height) - var(--font-skeleton-descender-height))`,
62
- },
63
-
64
- // ...responsiveRules('text-skeleton-0', {
65
- // '--font-skeleton-line-height': 'var(--font-text-0-line-height)',
66
- // '--font-skeleton-ascender-height': 'var(--font-text-0-ascender-height)',
67
- // '--font-skeleton-descender-height': 'var(--font-text-0-descender-height)',
68
- // }),
69
-
70
- ...FONT_CODE_SIZE.reduce((acc, size) => {
71
- return {
72
- ...acc,
73
- ...responsiveRules(`code-skeleton-${size}`, {
74
- '--font-skeleton-line-height': vars.font.code.sizes[size].lineHeight,
75
- '--font-skeleton-ascender-height': vars.font.code.sizes[size].ascenderHeight,
76
- '--font-skeleton-descender-height': vars.font.code.sizes[size].descenderHeight,
77
- }),
78
- }
79
- }, {}),
80
-
81
- ...FONT_HEADING_SIZE.reduce((acc, size) => {
82
- return {
83
- ...acc,
84
- ...responsiveRules(`heading-skeleton-${size}`, {
85
- '--font-skeleton-line-height': vars.font.heading.sizes[size].lineHeight,
86
- '--font-skeleton-ascender-height': vars.font.heading.sizes[size].ascenderHeight,
87
- '--font-skeleton-descender-height': vars.font.heading.sizes[size].descenderHeight,
88
- }),
89
- }
90
- }, {}),
91
-
92
- ...FONT_LABEL_SIZE.reduce((acc, size) => {
93
- return {
94
- ...acc,
95
- ...responsiveRules(`label-skeleton-${size}`, {
96
- '--font-skeleton-line-height': vars.font.label.sizes[size].lineHeight,
97
- '--font-skeleton-ascender-height': vars.font.label.sizes[size].ascenderHeight,
98
- '--font-skeleton-descender-height': vars.font.label.sizes[size].descenderHeight,
99
- }),
100
- }
101
- }, {}),
102
-
103
- ...FONT_TEXT_SIZE.reduce((acc, size) => {
104
- return {
105
- ...acc,
106
- ...responsiveRules(`text-skeleton-${size}`, {
107
- '--font-skeleton-line-height': vars.font.text.sizes[size].lineHeight,
108
- '--font-skeleton-ascender-height': vars.font.text.sizes[size].ascenderHeight,
109
- '--font-skeleton-descender-height': vars.font.text.sizes[size].descenderHeight,
110
- }),
111
- }
112
- }, {}),
113
- }