@sanity/ui 3.0.0-static.30 → 3.0.0-static.32

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 (62) hide show
  1. package/dist/_chunks-cjs/_visual-editing.cjs +62 -61
  2. package/dist/_chunks-cjs/_visual-editing.cjs.map +1 -1
  3. package/dist/_chunks-cjs/refractor.cjs.map +1 -1
  4. package/dist/_chunks-es/_visual-editing.js +62 -61
  5. package/dist/_chunks-es/_visual-editing.js.map +1 -1
  6. package/dist/_chunks-es/refractor.js.map +1 -1
  7. package/dist/css/index.cjs +1 -3
  8. package/dist/css/index.cjs.map +1 -1
  9. package/dist/css/index.css +1 -1
  10. package/dist/css/index.d.cts +7228 -7228
  11. package/dist/css/index.d.ts +7228 -7228
  12. package/dist/css/index.js +1 -3
  13. package/dist/css/index.js.map +1 -1
  14. package/dist/index.cjs +91 -88
  15. package/dist/index.cjs.map +1 -1
  16. package/dist/index.d.cts +12 -12
  17. package/dist/index.d.ts +12 -12
  18. package/dist/index.js +93 -90
  19. package/dist/index.js.map +1 -1
  20. package/dist/theme.cjs.map +1 -1
  21. package/dist/theme.js.map +1 -1
  22. package/package.json +25 -25
  23. package/src/core/{primitives/root/Root.tsx → Root.tsx} +5 -3
  24. package/src/core/{primitives/root/RootProvider.tsx → RootProvider.tsx} +5 -5
  25. package/src/core/__DEV__.ts +0 -1
  26. package/src/core/__workshop__/boundary.tsx +28 -0
  27. package/src/core/__workshop__/index.ts +14 -0
  28. package/src/core/_compat/theme/theme.test.tsx +4 -3
  29. package/src/core/components/dialog/dialogCard.tsx +9 -2
  30. package/src/core/components/menu/menu.test.tsx +8 -7
  31. package/src/core/components/toast/toast.test.tsx +8 -7
  32. package/src/core/hooks/usePrefersDark.hydration.test.tsx +1 -1
  33. package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +1 -1
  34. package/src/core/index.ts +4 -2
  35. package/src/core/lib/createGlobalScopedContext.ts +5 -2
  36. package/src/core/lib/globalScope.ts +1 -1
  37. package/src/core/primitives/card/card.tsx +4 -3
  38. package/src/core/primitives/card/useCard.ts +8 -2
  39. package/src/core/primitives/code/refractor.tsx +1 -1
  40. package/src/core/primitives/grid/types.ts +1 -1
  41. package/src/core/primitives/layer/layer.test.tsx +8 -7
  42. package/src/core/primitives/popover/popover.tsx +5 -33
  43. package/src/core/primitives/textArea/textArea.tsx +0 -2
  44. package/src/core/primitives/tooltip/tooltip.tsx +1 -4
  45. package/src/core/primitives/types.ts +11 -11
  46. package/src/core/types/props.ts +1 -0
  47. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +8 -7
  48. package/src/core/utils/getElementRef.ts +2 -0
  49. package/src/core/utils/portal/portal.test.tsx +8 -7
  50. package/src/core/utils/portal/portal.tsx +1 -5
  51. package/src/core/utils/portal/portalContext.ts +10 -7
  52. package/src/css/components/dialog/dialog.css.ts +2 -2
  53. package/src/css/components/toast/toast.css.ts +2 -2
  54. package/src/css/primitives/button/button.css.ts +0 -2
  55. package/src/css/primitives/root/root.css.ts +5 -1
  56. package/src/css/primitives/root/root.ts +1 -1
  57. package/src/css/props/gridColumnStart/types.ts +1 -1
  58. package/src/theme/v0/css.ts +2 -0
  59. package/src/theme/v2/build/merge.ts +2 -0
  60. package/src/theme/v3/merge.ts +2 -0
  61. package/src/core/primitives/root/__workshop__/boundary.tsx +0 -5
  62. package/src/core/primitives/root/__workshop__/index.ts +0 -8
@@ -23,7 +23,7 @@ import type {BoxDisplay} from './box/types'
23
23
 
24
24
  /**
25
25
  * @public
26
- * @deprecated
26
+ * @deprecated No longer used.
27
27
  */
28
28
  export interface ResponsiveBorderProps {
29
29
  border?: boolean | boolean[]
@@ -35,7 +35,7 @@ export interface ResponsiveBorderProps {
35
35
 
36
36
  /**
37
37
  * @public
38
- * @deprecated
38
+ * @deprecated No longer used.
39
39
  */
40
40
  export interface ResponsiveBoxProps {
41
41
  display?: BoxDisplay | BoxDisplay[]
@@ -46,7 +46,7 @@ export interface ResponsiveBoxProps {
46
46
 
47
47
  /**
48
48
  * @public
49
- * @deprecated
49
+ * @deprecated No longer used.
50
50
  */
51
51
  export interface ResponsiveFlexProps {
52
52
  align?: AlignItems | AlignItems[]
@@ -57,7 +57,7 @@ export interface ResponsiveFlexProps {
57
57
 
58
58
  /**
59
59
  * @public
60
- * @deprecated
60
+ * @deprecated No longer used.
61
61
  */
62
62
  export interface ResponsiveFlexItemProps {
63
63
  /** Sets the flex CSS attribute. The property is responsive. */
@@ -66,7 +66,7 @@ export interface ResponsiveFlexItemProps {
66
66
 
67
67
  /**
68
68
  * @public
69
- * @deprecated
69
+ * @deprecated No longer used.
70
70
  */
71
71
  export interface ResponsiveGridProps {
72
72
  autoRows?: GridAutoRows | GridAutoRows[]
@@ -78,7 +78,7 @@ export interface ResponsiveGridProps {
78
78
 
79
79
  /**
80
80
  * @public
81
- * @deprecated
81
+ * @deprecated No longer used.
82
82
  */
83
83
  export interface ResponsiveGridItemProps {
84
84
  column?: GridItemColumn | GridItemColumn[]
@@ -91,7 +91,7 @@ export interface ResponsiveGridItemProps {
91
91
 
92
92
  /**
93
93
  * @public
94
- * @deprecated
94
+ * @deprecated No longer used.
95
95
  */
96
96
  export interface ResponsiveMarginProps {
97
97
  /** Applies margins to all sides. The property is responsive. */
@@ -108,7 +108,7 @@ export interface ResponsiveMarginProps {
108
108
 
109
109
  /**
110
110
  * @public
111
- * @deprecated
111
+ * @deprecated No longer used.
112
112
  */
113
113
  export interface ResponsivePaddingProps {
114
114
  padding?: number | number[]
@@ -122,7 +122,7 @@ export interface ResponsivePaddingProps {
122
122
 
123
123
  /**
124
124
  * @public
125
- * @deprecated
125
+ * @deprecated No longer used.
126
126
  */
127
127
  export interface ResponsiveRadiusProps {
128
128
  radius?: Radius | Radius[]
@@ -130,7 +130,7 @@ export interface ResponsiveRadiusProps {
130
130
 
131
131
  /**
132
132
  * @public
133
- * @deprecated
133
+ * @deprecated No longer used.
134
134
  */
135
135
  export interface ResponsiveShadowProps {
136
136
  shadow?: number | number[]
@@ -138,7 +138,7 @@ export interface ResponsiveShadowProps {
138
138
 
139
139
  /**
140
140
  * @public
141
- * @deprecated
141
+ * @deprecated No longer used.
142
142
  */
143
143
  export interface ResponsiveWidthProps {
144
144
  width?: number | 'auto' | (number | 'auto')[]
@@ -1,4 +1,5 @@
1
1
  /* eslint-disable @typescript-eslint/no-empty-object-type */
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
3
 
3
4
  import type {ComponentClass, ComponentProps, ExoticComponent, FunctionComponent, JSX} from 'react'
4
5
 
@@ -49,10 +49,11 @@ describe('utils/boundaryElement', () => {
49
49
  }
50
50
 
51
51
  function Root() {
52
- const value = undefined
53
-
54
52
  return (
55
- <BoundaryElementContext.Provider value={value as any}>
53
+ <BoundaryElementContext.Provider
54
+ // @ts-expect-error - we want to test the error case
55
+ value={undefined}
56
+ >
56
57
  <Debug />
57
58
  </BoundaryElementContext.Provider>
58
59
  )
@@ -79,12 +80,12 @@ describe('utils/boundaryElement', () => {
79
80
 
80
81
  function Root() {
81
82
  // NOTE: we’re testing this because the context value may be a function in the future
82
- const value = () => {
83
- return {version: 1}
84
- }
85
83
 
86
84
  return (
87
- <BoundaryElementContext.Provider value={value as any}>
85
+ <BoundaryElementContext.Provider
86
+ // @ts-expect-error - we want to test the error case
87
+ value={() => ({version: 1})}
88
+ >
88
89
  <Debug />
89
90
  </BoundaryElementContext.Provider>
90
91
  )
@@ -1,3 +1,5 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+
1
3
  /** @internal */
2
4
  // Based on https://github.com/radix-ui/primitives/blob/0bade6a704e5821b90a6da0f3d8cfa8a7711127d/packages/react/slot/src/Slot.tsx#L128-L150
3
5
  // Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`
@@ -53,10 +53,11 @@ describe('utils/portal', () => {
53
53
  }
54
54
 
55
55
  function Root() {
56
- const value = undefined
57
-
58
56
  return (
59
- <PortalContext.Provider value={value as any}>
57
+ <PortalContext.Provider
58
+ // @ts-expect-error - we want to test the error case
59
+ value={undefined}
60
+ >
60
61
  <Debug />
61
62
  </PortalContext.Provider>
62
63
  )
@@ -82,12 +83,12 @@ describe('utils/portal', () => {
82
83
 
83
84
  function Root() {
84
85
  // NOTE: we’re testing this because the context value may be a function in the future
85
- const value = () => {
86
- return {version: 1}
87
- }
88
86
 
89
87
  return (
90
- <PortalContext.Provider value={value as any}>
88
+ <PortalContext.Provider
89
+ // @ts-expect-error - we want to test the error case
90
+ value={() => ({version: 1})}
91
+ >
91
92
  <Debug />
92
93
  </PortalContext.Provider>
93
94
  )
@@ -28,11 +28,7 @@ export function Portal(props: PortalProps): ReactPortal | null {
28
28
  }
29
29
 
30
30
  return createPortal(
31
- <CardProvider
32
- // rendered={true}
33
- tone="transparent" // card?.tone || 'default',
34
- scheme={card?.scheme || 'light'}
35
- >
31
+ <CardProvider tone="transparent" scheme={card.scheme}>
36
32
  {children}
37
33
  </CardProvider>,
38
34
  portalElement,
@@ -5,7 +5,10 @@ import type {PortalContextValue} from './types'
5
5
  const key = '@sanity/ui/context/portal'
6
6
  const elementKey = Symbol.for(`${key}/element`)
7
7
 
8
- globalScope[elementKey] = null
8
+ // Use the global scope as a map of symbols to elements
9
+ const elementMap = globalScope as Record<symbol, HTMLDivElement | null>
10
+
11
+ elementMap[elementKey] = null
9
12
 
10
13
  export const defaultContextValue: PortalContextValue = {
11
14
  version: 0.0,
@@ -15,16 +18,16 @@ export const defaultContextValue: PortalContextValue = {
15
18
  return null
16
19
  }
17
20
 
18
- if (globalScope[elementKey]) {
19
- return globalScope[elementKey]
21
+ if (elementMap[elementKey]) {
22
+ return elementMap[elementKey]
20
23
  }
21
24
 
22
- globalScope[elementKey] = document.createElement('div')
23
- globalScope[elementKey].setAttribute('data-portal', '')
25
+ elementMap[elementKey] = document.createElement('div')
26
+ elementMap[elementKey].setAttribute('data-portal', '')
24
27
 
25
- document.body.appendChild(globalScope[elementKey])
28
+ document.body.appendChild(elementMap[elementKey])
26
29
 
27
- return globalScope[elementKey]
30
+ return elementMap[elementKey]
28
31
  },
29
32
  }
30
33
 
@@ -75,7 +75,7 @@ export const scrollerShadowTop = _style(layers.components, {
75
75
  top: 0,
76
76
  left: 0,
77
77
  right: 0,
78
- height: 8,
78
+ height: 4,
79
79
  background: `linear-gradient(to top, color-mix(in srgb,transparent, ${vars.color.shadow.penumbra} 0%) 0%, color-mix(in srgb, ${vars.color.shadow.umbra} 100%, transparent 100%) 100%)`,
80
80
  boxShadow: `inset 0 0.5px 0 color-mix(in srgb, transparent, ${vars.color.shadow.outline} 50%)`,
81
81
  pointerEvents: 'none',
@@ -86,7 +86,7 @@ export const scrollerShadowBottom = _style(layers.components, {
86
86
  bottom: 0,
87
87
  left: 0,
88
88
  right: 0,
89
- height: 8,
89
+ height: 4,
90
90
  background: `linear-gradient(to bottom, color-mix(in srgb,transparent, ${vars.color.shadow.penumbra} 0%) 0%, color-mix(in srgb, ${vars.color.shadow.umbra} 100%, transparent 100%) 100%)`,
91
91
  boxShadow: `inset 0 -0.5px 0 color-mix(in srgb, transparent, ${vars.color.shadow.outline} 50%)`,
92
92
  pointerEvents: 'none',
@@ -2,11 +2,11 @@ import {_style} from '../../_style.css'
2
2
  import {layers} from '../../layers.css'
3
3
 
4
4
  export const layer = _style(layers.components, {
5
- position: 'fixed',
5
+ position: 'absolute',
6
6
  right: 0,
7
7
  bottom: 0,
8
8
  pointerEvents: 'none',
9
- minWidth: `${320 / 16}rem`, // 320px
9
+ // minWidth: `${320 / 16}rem`, // 320px
10
10
  maxWidth: `${420 / 16}rem`, // 420px
11
11
  width: '100%',
12
12
  })
@@ -63,8 +63,6 @@ export const loadingBox = _style(layers.primitives, {
63
63
  opacity: 0.8,
64
64
  })
65
65
 
66
- // todo
67
-
68
66
  export const tones = {
69
67
  ..._fromEntries(
70
68
  THEME_COLOR_STATE_TONES.map((t) => {
@@ -2,7 +2,7 @@ import {_style} from '../../_style.css'
2
2
  import {layers} from '../../layers.css'
3
3
 
4
4
  export const _root = _style(layers.primitives, {
5
- minWidth: `${320 / 16}rem`, // 320px
5
+ // minWidth: `${320 / 16}rem`, // 320px
6
6
 
7
7
  selectors: {
8
8
  'html.&': {
@@ -11,5 +11,9 @@ export const _root = _style(layers.primitives, {
11
11
  textSizeAdjust: 'none',
12
12
  WebkitFontSmoothing: 'antialiased',
13
13
  },
14
+
15
+ 'div.&': {
16
+ position: 'relative',
17
+ },
14
18
  },
15
19
  })
@@ -12,6 +12,6 @@ export function root(props: RootStyleProps) {
12
12
  themeClassName,
13
13
  _root,
14
14
  card({scheme: props.scheme ?? 'light', tone: props.tone ?? 'transparent'}),
15
- height({height: props.height ?? 'fill'}),
15
+ height(props),
16
16
  )
17
17
  }
@@ -12,7 +12,7 @@ export type GridItemColumnStart = 'auto' | number
12
12
  /** @public */
13
13
  export interface GridColumnStartStyleProps {
14
14
  /**
15
- * @deprecated Use `gridColumn` instead
15
+ * @deprecated Use `gridColumnStart` instead
16
16
  */
17
17
  columnStart?: ResponsiveProp<GridItemColumnStart>
18
18
  gridColumnStart?: ResponsiveProp<GridColumnStart>
@@ -1,3 +1,5 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+
1
3
  import type {StyledObject} from 'styled-components'
2
4
 
3
5
  /**
@@ -1,3 +1,5 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+
1
3
  import {isRecord} from './lib/isRecord'
2
4
 
3
5
  export function merge<T extends Record<string, any>>(...records: (T | undefined)[]): T {
@@ -1,3 +1,5 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+
1
3
  export function merge<T extends Record<string, any>>(...records: (T | undefined)[]): T {
2
4
  return (records.filter(Boolean) as T[]).reduce(_merge, {} as T)
3
5
  }
@@ -1,5 +0,0 @@
1
- import {Root} from '@sanity/ui'
2
-
3
- export default function BoundaryStory() {
4
- return <Root>Hello!</Root>
5
- }
@@ -1,8 +0,0 @@
1
- import {defineScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- export default defineScope({
5
- name: 'primitives/radio',
6
- title: 'Radio',
7
- stories: [{name: 'boundary', title: 'Boundary', component: lazy(() => import('./boundary'))}],
8
- })