@sanity/ui 3.3.2 → 3.3.4

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 (437) hide show
  1. package/dist/index.d.mts +8 -8
  2. package/dist/index.d.mts.map +1 -1
  3. package/dist/index.d.ts +8 -8
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +16 -16
  6. package/dist/index.mjs +16 -16
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/tabList.js +2 -2
  9. package/dist/tabList.mjs +2 -2
  10. package/dist/tabList.mjs.map +1 -1
  11. package/dist/useTheme.d.mts +3 -3
  12. package/dist/useTheme.d.mts.map +1 -1
  13. package/dist/useTheme.d.ts +3 -3
  14. package/dist/useTheme.d.ts.map +1 -1
  15. package/package.json +8 -13
  16. package/exports/_visual-editing.ts +0 -32
  17. package/exports/index.ts +0 -1
  18. package/exports/theme.ts +0 -1
  19. package/src/core/_compat.ts +0 -294
  20. package/src/core/components/autocomplete/autocomplete.styles.tsx +0 -39
  21. package/src/core/components/autocomplete/autocomplete.tsx +0 -775
  22. package/src/core/components/autocomplete/autocompleteOption.tsx +0 -46
  23. package/src/core/components/autocomplete/autocompleteReducer.ts +0 -47
  24. package/src/core/components/autocomplete/constants.ts +0 -28
  25. package/src/core/components/autocomplete/index.ts +0 -2
  26. package/src/core/components/autocomplete/types.ts +0 -108
  27. package/src/core/components/breadcrumbs/breadcrumbs.styles.ts +0 -18
  28. package/src/core/components/breadcrumbs/breadcrumbs.test.tsx +0 -54
  29. package/src/core/components/breadcrumbs/breadcrumbs.tsx +0 -136
  30. package/src/core/components/breadcrumbs/index.ts +0 -1
  31. package/src/core/components/dialog/dialog.tsx +0 -433
  32. package/src/core/components/dialog/dialogContext.ts +0 -20
  33. package/src/core/components/dialog/dialogProvider.tsx +0 -35
  34. package/src/core/components/dialog/index.ts +0 -4
  35. package/src/core/components/dialog/styles.ts +0 -77
  36. package/src/core/components/dialog/useDialog.ts +0 -11
  37. package/src/core/components/hotkeys/hotkeys.test.tsx +0 -47
  38. package/src/core/components/hotkeys/hotkeys.tsx +0 -68
  39. package/src/core/components/hotkeys/index.ts +0 -1
  40. package/src/core/components/index.ts +0 -9
  41. package/src/core/components/menu/helpers.ts +0 -82
  42. package/src/core/components/menu/index.ts +0 -5
  43. package/src/core/components/menu/menu.spacing.test.tsx +0 -68
  44. package/src/core/components/menu/menu.test.tsx +0 -128
  45. package/src/core/components/menu/menu.tsx +0 -180
  46. package/src/core/components/menu/menuButton.tsx +0 -276
  47. package/src/core/components/menu/menuContext.ts +0 -18
  48. package/src/core/components/menu/menuDivider.ts +0 -24
  49. package/src/core/components/menu/menuGroup.spacing.test.tsx +0 -66
  50. package/src/core/components/menu/menuGroup.tsx +0 -237
  51. package/src/core/components/menu/menuItem.spacing.test.tsx +0 -62
  52. package/src/core/components/menu/menuItem.tsx +0 -201
  53. package/src/core/components/menu/useMenu.ts +0 -21
  54. package/src/core/components/menu/useMenuController.ts +0 -233
  55. package/src/core/components/skeleton/index.ts +0 -2
  56. package/src/core/components/skeleton/skeleton.tsx +0 -58
  57. package/src/core/components/skeleton/styles.ts +0 -50
  58. package/src/core/components/skeleton/textSkeleton.tsx +0 -122
  59. package/src/core/components/tab/index.ts +0 -3
  60. package/src/core/components/tab/tab.tsx +0 -102
  61. package/src/core/components/tab/tabList.test.tsx +0 -50
  62. package/src/core/components/tab/tabList.tsx +0 -71
  63. package/src/core/components/tab/tabPanel.tsx +0 -39
  64. package/src/core/components/toast/index.ts +0 -4
  65. package/src/core/components/toast/styles.ts +0 -77
  66. package/src/core/components/toast/toast.test.tsx +0 -106
  67. package/src/core/components/toast/toast.tsx +0 -199
  68. package/src/core/components/toast/toastContext.ts +0 -7
  69. package/src/core/components/toast/toastLayer.tsx +0 -52
  70. package/src/core/components/toast/toastProvider.tsx +0 -113
  71. package/src/core/components/toast/toastState.ts +0 -6
  72. package/src/core/components/toast/types.ts +0 -26
  73. package/src/core/components/toast/useToast.ts +0 -25
  74. package/src/core/components/tree/helpers.ts +0 -105
  75. package/src/core/components/tree/index.ts +0 -4
  76. package/src/core/components/tree/style.ts +0 -105
  77. package/src/core/components/tree/tree.test.tsx +0 -60
  78. package/src/core/components/tree/tree.tsx +0 -242
  79. package/src/core/components/tree/treeContext.ts +0 -10
  80. package/src/core/components/tree/treeGroup.tsx +0 -29
  81. package/src/core/components/tree/treeItem.test.tsx +0 -70
  82. package/src/core/components/tree/treeItem.tsx +0 -225
  83. package/src/core/components/tree/types.ts +0 -25
  84. package/src/core/components/tree/useTree.ts +0 -17
  85. package/src/core/constants.ts +0 -79
  86. package/src/core/helpers/animation.ts +0 -27
  87. package/src/core/helpers/element.ts +0 -55
  88. package/src/core/helpers/focus.ts +0 -100
  89. package/src/core/helpers/index.ts +0 -4
  90. package/src/core/helpers/scroll.ts +0 -15
  91. package/src/core/hooks/index.ts +0 -13
  92. package/src/core/hooks/useArrayProp.ts +0 -17
  93. package/src/core/hooks/useClickOutside.test.tsx +0 -510
  94. package/src/core/hooks/useClickOutside.ts +0 -118
  95. package/src/core/hooks/useClickOutsideEvent.test.tsx +0 -119
  96. package/src/core/hooks/useClickOutsideEvent.ts +0 -73
  97. package/src/core/hooks/useCustomValidity.ts +0 -13
  98. package/src/core/hooks/useDelayed.test.ts +0 -89
  99. package/src/core/hooks/useDelayedState.ts +0 -36
  100. package/src/core/hooks/useElementRect/index.ts +0 -1
  101. package/src/core/hooks/useElementRect/useElementRect.ts +0 -14
  102. package/src/core/hooks/useElementSize.ts +0 -19
  103. package/src/core/hooks/useForwardedRef.ts +0 -20
  104. package/src/core/hooks/useGlobalKeyDown.ts +0 -24
  105. package/src/core/hooks/useIsomorphicEffect.ts +0 -7
  106. package/src/core/hooks/useMatchMedia.ts +0 -28
  107. package/src/core/hooks/useMediaIndex/index.ts +0 -1
  108. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -37
  109. package/src/core/hooks/useMediaIndex/useMediaIndex.ts +0 -102
  110. package/src/core/hooks/useMounted.ts +0 -15
  111. package/src/core/hooks/usePrefersDark.hydration.test.tsx +0 -58
  112. package/src/core/hooks/usePrefersDark.test.tsx +0 -21
  113. package/src/core/hooks/usePrefersDark.ts +0 -16
  114. package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -58
  115. package/src/core/hooks/usePrefersReducedMotion.test.tsx +0 -21
  116. package/src/core/hooks/usePrefersReducedMotion.ts +0 -16
  117. package/src/core/index.ts +0 -10
  118. package/src/core/lib/createGlobalScopedContext.ts +0 -37
  119. package/src/core/lib/globalScope.ts +0 -20
  120. package/src/core/lib/isRecord.ts +0 -3
  121. package/src/core/middleware/origin.ts +0 -47
  122. package/src/core/observers/elementSizeObserver.ts +0 -117
  123. package/src/core/observers/index.ts +0 -2
  124. package/src/core/observers/resizeObserver.ts +0 -9
  125. package/src/core/primitives/_selectable/index.ts +0 -1
  126. package/src/core/primitives/_selectable/selectable.tsx +0 -15
  127. package/src/core/primitives/_selectable/style.ts +0 -115
  128. package/src/core/primitives/avatar/avatar.tsx +0 -200
  129. package/src/core/primitives/avatar/avatarCounter.tsx +0 -91
  130. package/src/core/primitives/avatar/avatarStack.tsx +0 -101
  131. package/src/core/primitives/avatar/index.ts +0 -4
  132. package/src/core/primitives/avatar/styles.ts +0 -167
  133. package/src/core/primitives/avatar/types.ts +0 -17
  134. package/src/core/primitives/badge/badge.test.tsx +0 -17
  135. package/src/core/primitives/badge/badge.tsx +0 -72
  136. package/src/core/primitives/badge/index.ts +0 -1
  137. package/src/core/primitives/badge/styles.ts +0 -20
  138. package/src/core/primitives/badge/types.ts +0 -8
  139. package/src/core/primitives/box/box.test.tsx +0 -155
  140. package/src/core/primitives/box/box.tsx +0 -162
  141. package/src/core/primitives/box/index.ts +0 -1
  142. package/src/core/primitives/button/button.test.tsx +0 -86
  143. package/src/core/primitives/button/button.tsx +0 -214
  144. package/src/core/primitives/button/index.ts +0 -1
  145. package/src/core/primitives/button/styles.ts +0 -118
  146. package/src/core/primitives/card/card.tsx +0 -125
  147. package/src/core/primitives/card/index.ts +0 -2
  148. package/src/core/primitives/card/styles.ts +0 -147
  149. package/src/core/primitives/card/types.ts +0 -12
  150. package/src/core/primitives/checkbox/checkbox.tsx +0 -73
  151. package/src/core/primitives/checkbox/index.ts +0 -1
  152. package/src/core/primitives/checkbox/styles.ts +0 -128
  153. package/src/core/primitives/code/code.tsx +0 -56
  154. package/src/core/primitives/code/index.ts +0 -1
  155. package/src/core/primitives/code/refractor.tsx +0 -22
  156. package/src/core/primitives/code/styles.ts +0 -77
  157. package/src/core/primitives/container/container.tsx +0 -55
  158. package/src/core/primitives/container/index.ts +0 -2
  159. package/src/core/primitives/container/styles.ts +0 -23
  160. package/src/core/primitives/container/types.ts +0 -6
  161. package/src/core/primitives/flex/flex.tsx +0 -63
  162. package/src/core/primitives/flex/index.ts +0 -1
  163. package/src/core/primitives/grid/grid.test.tsx +0 -86
  164. package/src/core/primitives/grid/grid.tsx +0 -77
  165. package/src/core/primitives/grid/index.ts +0 -1
  166. package/src/core/primitives/heading/heading.tsx +0 -89
  167. package/src/core/primitives/heading/index.ts +0 -1
  168. package/src/core/primitives/heading/styles.ts +0 -64
  169. package/src/core/primitives/heading/types.ts +0 -7
  170. package/src/core/primitives/index.ts +0 -27
  171. package/src/core/primitives/inline/index.ts +0 -1
  172. package/src/core/primitives/inline/inline.test.tsx +0 -55
  173. package/src/core/primitives/inline/inline.tsx +0 -66
  174. package/src/core/primitives/inline/styles.ts +0 -32
  175. package/src/core/primitives/inline/types.ts +0 -6
  176. package/src/core/primitives/kbd/index.ts +0 -1
  177. package/src/core/primitives/kbd/kbd.tsx +0 -73
  178. package/src/core/primitives/label/index.ts +0 -1
  179. package/src/core/primitives/label/label.tsx +0 -88
  180. package/src/core/primitives/label/styles.ts +0 -45
  181. package/src/core/primitives/popover/constants.ts +0 -22
  182. package/src/core/primitives/popover/floating-ui/size.ts +0 -99
  183. package/src/core/primitives/popover/helpers.ts +0 -31
  184. package/src/core/primitives/popover/index.ts +0 -2
  185. package/src/core/primitives/popover/popover.tsx +0 -512
  186. package/src/core/primitives/popover/popoverCard.tsx +0 -167
  187. package/src/core/primitives/popover/types.ts +0 -6
  188. package/src/core/primitives/radio/index.ts +0 -1
  189. package/src/core/primitives/radio/radio.tsx +0 -51
  190. package/src/core/primitives/radio/styles.ts +0 -117
  191. package/src/core/primitives/select/index.ts +0 -1
  192. package/src/core/primitives/select/select.test.tsx +0 -56
  193. package/src/core/primitives/select/select.tsx +0 -95
  194. package/src/core/primitives/select/styles.ts +0 -166
  195. package/src/core/primitives/spinner/index.ts +0 -1
  196. package/src/core/primitives/spinner/spinner.tsx +0 -46
  197. package/src/core/primitives/stack/index.ts +0 -1
  198. package/src/core/primitives/stack/stack.test.tsx +0 -61
  199. package/src/core/primitives/stack/stack.tsx +0 -59
  200. package/src/core/primitives/stack/styles.ts +0 -33
  201. package/src/core/primitives/switch/index.ts +0 -1
  202. package/src/core/primitives/switch/styles.ts +0 -173
  203. package/src/core/primitives/switch/switch.tsx +0 -68
  204. package/src/core/primitives/text/index.ts +0 -1
  205. package/src/core/primitives/text/styles.ts +0 -74
  206. package/src/core/primitives/text/text.tsx +0 -90
  207. package/src/core/primitives/textArea/index.ts +0 -1
  208. package/src/core/primitives/textArea/textArea.tsx +0 -120
  209. package/src/core/primitives/textInput/index.ts +0 -1
  210. package/src/core/primitives/textInput/textInput.test.tsx +0 -52
  211. package/src/core/primitives/textInput/textInput.tsx +0 -398
  212. package/src/core/primitives/tooltip/constants.ts +0 -23
  213. package/src/core/primitives/tooltip/index.ts +0 -2
  214. package/src/core/primitives/tooltip/tooltip.test.tsx +0 -485
  215. package/src/core/primitives/tooltip/tooltip.tsx +0 -497
  216. package/src/core/primitives/tooltip/tooltipCard.tsx +0 -110
  217. package/src/core/primitives/tooltip/tooltipDelayGroup/index.ts +0 -4
  218. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +0 -11
  219. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -57
  220. package/src/core/primitives/tooltip/tooltipDelayGroup/types.ts +0 -12
  221. package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -13
  222. package/src/core/primitives/types.ts +0 -179
  223. package/src/core/styles/border/borderStyle.ts +0 -56
  224. package/src/core/styles/border/index.ts +0 -2
  225. package/src/core/styles/border/types.ts +0 -10
  226. package/src/core/styles/box/boxStyle.ts +0 -69
  227. package/src/core/styles/box/index.ts +0 -2
  228. package/src/core/styles/box/types.ts +0 -11
  229. package/src/core/styles/card/_cardColorStyle.ts +0 -108
  230. package/src/core/styles/card/index.ts +0 -1
  231. package/src/core/styles/flex/flexItemStyle.ts +0 -27
  232. package/src/core/styles/flex/flexStyle.ts +0 -70
  233. package/src/core/styles/flex/index.ts +0 -3
  234. package/src/core/styles/flex/types.ts +0 -24
  235. package/src/core/styles/focusRing/index.ts +0 -25
  236. package/src/core/styles/font/codeFontStyle.ts +0 -13
  237. package/src/core/styles/font/headingFontStyle.ts +0 -13
  238. package/src/core/styles/font/index.ts +0 -6
  239. package/src/core/styles/font/labelFontStyle.ts +0 -13
  240. package/src/core/styles/font/responsiveFont.ts +0 -100
  241. package/src/core/styles/font/textAlignStyle.ts +0 -19
  242. package/src/core/styles/font/textFontStyle.ts +0 -13
  243. package/src/core/styles/font/types.ts +0 -33
  244. package/src/core/styles/grid/gridItemStyle.ts +0 -82
  245. package/src/core/styles/grid/gridStyle.ts +0 -109
  246. package/src/core/styles/grid/index.ts +0 -3
  247. package/src/core/styles/grid/types.ts +0 -37
  248. package/src/core/styles/helpers.ts +0 -72
  249. package/src/core/styles/index.ts +0 -5
  250. package/src/core/styles/input/index.ts +0 -2
  251. package/src/core/styles/input/responsiveInputPaddingStyle.ts +0 -78
  252. package/src/core/styles/input/textInputStyle.ts +0 -263
  253. package/src/core/styles/internal.ts +0 -12
  254. package/src/core/styles/margin/index.ts +0 -2
  255. package/src/core/styles/margin/marginStyle.ts +0 -22
  256. package/src/core/styles/margin/marginsStyle.test.ts +0 -34
  257. package/src/core/styles/margin/types.ts +0 -9
  258. package/src/core/styles/padding/index.ts +0 -2
  259. package/src/core/styles/padding/paddingStyle.test.ts +0 -34
  260. package/src/core/styles/padding/paddingStyle.ts +0 -22
  261. package/src/core/styles/padding/types.ts +0 -12
  262. package/src/core/styles/radius/index.ts +0 -2
  263. package/src/core/styles/radius/radiusStyle.ts +0 -23
  264. package/src/core/styles/radius/types.ts +0 -8
  265. package/src/core/styles/shadow/index.ts +0 -2
  266. package/src/core/styles/shadow/shadowStyle.ts +0 -29
  267. package/src/core/styles/shadow/types.ts +0 -6
  268. package/src/core/styles/types.ts +0 -8
  269. package/src/core/theme/index.ts +0 -5
  270. package/src/core/theme/theme.test.tsx +0 -77
  271. package/src/core/theme/themeColorProvider.tsx +0 -29
  272. package/src/core/theme/themeContext.ts +0 -10
  273. package/src/core/theme/themeProvider.tsx +0 -62
  274. package/src/core/theme/types.ts +0 -12
  275. package/src/core/theme/useRootTheme.ts +0 -18
  276. package/src/core/theme/useTheme.ts +0 -18
  277. package/src/core/types/avatar.ts +0 -14
  278. package/src/core/types/badge.ts +0 -12
  279. package/src/core/types/box.ts +0 -19
  280. package/src/core/types/button.ts +0 -21
  281. package/src/core/types/card.ts +0 -6
  282. package/src/core/types/component.ts +0 -32
  283. package/src/core/types/dialog.ts +0 -4
  284. package/src/core/types/flex.ts +0 -30
  285. package/src/core/types/grid.ts +0 -14
  286. package/src/core/types/gridItem.ts +0 -29
  287. package/src/core/types/index.ts +0 -15
  288. package/src/core/types/placement.ts +0 -18
  289. package/src/core/types/popover.ts +0 -4
  290. package/src/core/types/radius.ts +0 -4
  291. package/src/core/types/selectable.ts +0 -6
  292. package/src/core/types/text.ts +0 -4
  293. package/src/core/utils/arrow/arrow.tsx +0 -124
  294. package/src/core/utils/arrow/cmds.ts +0 -91
  295. package/src/core/utils/arrow/index.ts +0 -1
  296. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +0 -105
  297. package/src/core/utils/boundaryElement/boundaryElementContext.ts +0 -7
  298. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +0 -24
  299. package/src/core/utils/boundaryElement/index.ts +0 -3
  300. package/src/core/utils/boundaryElement/types.ts +0 -7
  301. package/src/core/utils/boundaryElement/useBoundaryElement.ts +0 -26
  302. package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +0 -22
  303. package/src/core/utils/conditionalWrapper/index.ts +0 -1
  304. package/src/core/utils/elementQuery/elementQuery.tsx +0 -53
  305. package/src/core/utils/elementQuery/helpers.ts +0 -27
  306. package/src/core/utils/elementQuery/index.ts +0 -1
  307. package/src/core/utils/errorBoundary.tsx +0 -48
  308. package/src/core/utils/getElementRef.ts +0 -31
  309. package/src/core/utils/index.ts +0 -9
  310. package/src/core/utils/layer/getLayerContext.test.ts +0 -32
  311. package/src/core/utils/layer/getLayerContext.ts +0 -21
  312. package/src/core/utils/layer/index.ts +0 -4
  313. package/src/core/utils/layer/layer.test.tsx +0 -113
  314. package/src/core/utils/layer/layer.tsx +0 -99
  315. package/src/core/utils/layer/layerContext.ts +0 -7
  316. package/src/core/utils/layer/layerProvider.tsx +0 -111
  317. package/src/core/utils/layer/types.ts +0 -9
  318. package/src/core/utils/layer/useLayer.ts +0 -28
  319. package/src/core/utils/portal/index.ts +0 -4
  320. package/src/core/utils/portal/portal.test.tsx +0 -108
  321. package/src/core/utils/portal/portal.ts +0 -32
  322. package/src/core/utils/portal/portalContext.ts +0 -31
  323. package/src/core/utils/portal/portalProvider.tsx +0 -48
  324. package/src/core/utils/portal/types.ts +0 -9
  325. package/src/core/utils/portal/usePortal.ts +0 -25
  326. package/src/core/utils/spanWithTextOverflow.tsx +0 -10
  327. package/src/core/utils/srOnly/index.ts +0 -1
  328. package/src/core/utils/srOnly/srOnly.tsx +0 -36
  329. package/src/core/utils/virtualList/index.ts +0 -1
  330. package/src/core/utils/virtualList/virtualList.tsx +0 -201
  331. package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +0 -86
  332. package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +0 -58
  333. package/src/theme/build/_deprecated/color/button/createButtonModes.ts +0 -27
  334. package/src/theme/build/_deprecated/color/button/createButtonTones.ts +0 -60
  335. package/src/theme/build/_deprecated/color/card/createCardStates.ts +0 -66
  336. package/src/theme/build/_deprecated/color/color.test.ts +0 -67
  337. package/src/theme/build/_deprecated/color/defaults.ts +0 -391
  338. package/src/theme/build/_deprecated/color/factory.ts +0 -178
  339. package/src/theme/build/_deprecated/color/index.ts +0 -1
  340. package/src/theme/build/_deprecated/color/input/createInputModes.ts +0 -86
  341. package/src/theme/build/_deprecated/color/muted/createMuted.ts +0 -58
  342. package/src/theme/build/_deprecated/color/spot/createSpot.ts +0 -23
  343. package/src/theme/build/buildColorTheme.test.ts +0 -185
  344. package/src/theme/build/buildColorTheme.ts +0 -507
  345. package/src/theme/build/buildTheme.test.ts +0 -89
  346. package/src/theme/build/buildTheme.ts +0 -36
  347. package/src/theme/build/colorToken/colorToken.ts +0 -19
  348. package/src/theme/build/colorToken/compileColorToken.ts +0 -21
  349. package/src/theme/build/colorToken/index.ts +0 -2
  350. package/src/theme/build/colorToken/types.ts +0 -6
  351. package/src/theme/build/index.ts +0 -3
  352. package/src/theme/build/lib/color-fns/blend/index.ts +0 -3
  353. package/src/theme/build/lib/color-fns/blend/mix.ts +0 -21
  354. package/src/theme/build/lib/color-fns/blend/multiply.ts +0 -18
  355. package/src/theme/build/lib/color-fns/blend/screen.ts +0 -18
  356. package/src/theme/build/lib/color-fns/color-fns.test.ts +0 -70
  357. package/src/theme/build/lib/color-fns/contrastRatio.ts +0 -31
  358. package/src/theme/build/lib/color-fns/convert.ts +0 -150
  359. package/src/theme/build/lib/color-fns/index.ts +0 -6
  360. package/src/theme/build/lib/color-fns/parse.ts +0 -60
  361. package/src/theme/build/lib/color-fns/rgba.ts +0 -10
  362. package/src/theme/build/lib/color-fns/types.ts +0 -28
  363. package/src/theme/build/lib/isRecord.ts +0 -3
  364. package/src/theme/build/lib/lazy.ts +0 -30
  365. package/src/theme/build/lib/utils.ts +0 -19
  366. package/src/theme/build/merge.ts +0 -31
  367. package/src/theme/build/mixThemeColor.test.ts +0 -23
  368. package/src/theme/build/mixThemeColor.ts +0 -53
  369. package/src/theme/build/renderColorTheme.ts +0 -538
  370. package/src/theme/build/renderColorValue.ts +0 -83
  371. package/src/theme/build/resolveColorTokens.ts +0 -274
  372. package/src/theme/build/theme.test.ts +0 -29
  373. package/src/theme/config/helpers.ts +0 -60
  374. package/src/theme/config/index.ts +0 -4
  375. package/src/theme/config/system.ts +0 -117
  376. package/src/theme/config/tokens/color/index.ts +0 -1
  377. package/src/theme/config/tokens/color/types.ts +0 -135
  378. package/src/theme/config/tokens/index.ts +0 -4
  379. package/src/theme/config/tokens/parseTokenKey.test.ts +0 -66
  380. package/src/theme/config/tokens/parseTokenKey.ts +0 -67
  381. package/src/theme/config/tokens/parseTokenValue.test.ts +0 -44
  382. package/src/theme/config/tokens/parseTokenValue.ts +0 -134
  383. package/src/theme/config/tokens/types.ts +0 -53
  384. package/src/theme/config/types.ts +0 -46
  385. package/src/theme/defaults/colorPalette.ts +0 -5
  386. package/src/theme/defaults/colorTokens.ts +0 -648
  387. package/src/theme/defaults/config.ts +0 -84
  388. package/src/theme/defaults/fonts.ts +0 -227
  389. package/src/theme/getScopedTheme.ts +0 -103
  390. package/src/theme/index.ts +0 -5
  391. package/src/theme/system/avatar.ts +0 -14
  392. package/src/theme/system/color/_constants.ts +0 -45
  393. package/src/theme/system/color/_helpers.ts +0 -28
  394. package/src/theme/system/color/_system.ts +0 -40
  395. package/src/theme/system/color/avatar.ts +0 -15
  396. package/src/theme/system/color/badge.ts +0 -16
  397. package/src/theme/system/color/button.ts +0 -17
  398. package/src/theme/system/color/color.ts +0 -34
  399. package/src/theme/system/color/index.ts +0 -13
  400. package/src/theme/system/color/input.ts +0 -25
  401. package/src/theme/system/color/kbd.ts +0 -8
  402. package/src/theme/system/color/selectable.ts +0 -12
  403. package/src/theme/system/color/shadow.ts +0 -7
  404. package/src/theme/system/color/state.ts +0 -43
  405. package/src/theme/system/color/syntax.ts +0 -41
  406. package/src/theme/system/css.ts +0 -14
  407. package/src/theme/system/focusRing.ts +0 -7
  408. package/src/theme/system/font.ts +0 -52
  409. package/src/theme/system/index.ts +0 -11
  410. package/src/theme/system/input.ts +0 -33
  411. package/src/theme/system/layer.ts +0 -8
  412. package/src/theme/system/shadow.ts +0 -19
  413. package/src/theme/system/styles.ts +0 -13
  414. package/src/theme/system/theme.ts +0 -142
  415. package/src/theme/system/v0/avatar.ts +0 -10
  416. package/src/theme/system/v0/color/_generic.ts +0 -35
  417. package/src/theme/system/v0/color/_system.ts +0 -18
  418. package/src/theme/system/v0/color/base.ts +0 -21
  419. package/src/theme/system/v0/color/button.ts +0 -56
  420. package/src/theme/system/v0/color/card.ts +0 -25
  421. package/src/theme/system/v0/color/color.ts +0 -51
  422. package/src/theme/system/v0/color/index.ts +0 -11
  423. package/src/theme/system/v0/color/input.ts +0 -40
  424. package/src/theme/system/v0/color/muted.ts +0 -37
  425. package/src/theme/system/v0/color/selectable.ts +0 -42
  426. package/src/theme/system/v0/color/solid.ts +0 -37
  427. package/src/theme/system/v0/color/spot.ts +0 -14
  428. package/src/theme/system/v0/index.ts +0 -3
  429. package/src/theme/system/v0/input.ts +0 -23
  430. package/src/theme/versioning/getTheme_v2.ts +0 -72
  431. package/src/theme/versioning/index.ts +0 -5
  432. package/src/theme/versioning/is_v0.ts +0 -6
  433. package/src/theme/versioning/is_v2.ts +0 -6
  434. package/src/theme/versioning/themeColor_v0_v2.ts +0 -250
  435. package/src/theme/versioning/themeColor_v2_v2_9.ts +0 -50
  436. package/src/theme/versioning/v0_v2.ts +0 -106
  437. package/src/theme/versioning/v2_v0.ts +0 -153
@@ -1,51 +0,0 @@
1
- import {forwardRef, useImperativeHandle, useRef} from 'react'
2
- import {styled} from 'styled-components'
3
-
4
- import {useCustomValidity} from '../../hooks'
5
- import {inputElementStyle, radioBaseStyle} from './styles'
6
-
7
- /**
8
- * @public
9
- */
10
- export interface RadioProps {
11
- customValidity?: string
12
- }
13
-
14
- const StyledRadio = styled.div(radioBaseStyle)
15
- const Input = styled.input(inputElementStyle)
16
-
17
- /**
18
- * The `Radio` component allows the user to select one option from a set.
19
- *
20
- * @public
21
- */
22
- export const Radio = forwardRef(function Radio(
23
- props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & RadioProps,
24
- forwardedRef: React.ForwardedRef<HTMLInputElement>,
25
- ) {
26
- const {className, disabled, style, customValidity, readOnly, ...restProps} = props
27
- const ref = useRef<HTMLInputElement | null>(null)
28
-
29
- useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(
30
- forwardedRef,
31
- () => ref.current,
32
- )
33
-
34
- useCustomValidity(ref, customValidity)
35
-
36
- return (
37
- <StyledRadio className={className} data-ui="Radio" style={style}>
38
- <Input
39
- data-read-only={!disabled && readOnly ? '' : undefined}
40
- data-error={customValidity ? '' : undefined}
41
- {...restProps}
42
- disabled={disabled || readOnly}
43
- readOnly={readOnly}
44
- ref={ref}
45
- type="radio"
46
- />
47
- <span />
48
- </StyledRadio>
49
- )
50
- })
51
- Radio.displayName = 'ForwardRef(Radio)'
@@ -1,117 +0,0 @@
1
- import {getTheme_v2} from '@sanity/ui/theme'
2
- import {css} from 'styled-components'
3
-
4
- import {rem, ThemeProps} from '../../styles'
5
- import {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'
6
-
7
- export function radioBaseStyle(): ReturnType<typeof css> {
8
- return css`
9
- position: relative;
10
-
11
- &:not([hidden]) {
12
- display: inline-block;
13
- }
14
-
15
- &[data-read-only] {
16
- outline: 1px solid red;
17
- }
18
- `
19
- }
20
-
21
- export function inputElementStyle(props: ThemeProps): ReturnType<typeof css> {
22
- const {color, input} = getTheme_v2(props.theme)
23
- const dist = (input.radio.size - input.radio.markSize) / 2
24
-
25
- return css`
26
- appearance: none;
27
- position: absolute;
28
- top: 0;
29
- left: 0;
30
- opacity: 0;
31
- height: 100%;
32
- width: 100%;
33
- outline: none;
34
- z-index: 1;
35
- padding: 0;
36
- margin: 0;
37
- border-radius: ${rem(input.radio.size / 2)};
38
- border: none;
39
-
40
- /* enabled */
41
- & + span {
42
- display: block;
43
- position: relative;
44
- height: ${rem(input.radio.size)};
45
- width: ${rem(input.radio.size)};
46
- border-radius: ${rem(input.radio.size / 2)};
47
- background: ${color.input.default.enabled.bg};
48
- box-shadow: ${focusRingBorderStyle({
49
- color: color.input.default.enabled.border,
50
- width: input.border.width,
51
- })};
52
-
53
- &::after {
54
- content: '';
55
- position: absolute;
56
- top: ${rem(dist)};
57
- left: ${rem(dist)};
58
- height: ${rem(input.radio.markSize)};
59
- width: ${rem(input.radio.markSize)};
60
- border-radius: ${rem(input.radio.markSize / 2)};
61
- background: ${color.input.default.enabled.fg};
62
- opacity: 0;
63
- }
64
- }
65
-
66
- /* focused */
67
- &:not(:disabled):focus + span {
68
- box-shadow: ${focusRingStyle({
69
- border: {width: input.border.width, color: color.input.default.enabled.border},
70
- focusRing: input.radio.focusRing,
71
- })};
72
- }
73
-
74
- &:not(:disabled):focus:not(:focus-visible) + span {
75
- box-shadow: ${focusRingBorderStyle({
76
- color: color.input.default.enabled.border,
77
- width: input.border.width,
78
- })};
79
- }
80
-
81
- &:checked + span::after {
82
- opacity: 1;
83
- }
84
-
85
- /* customValidity */
86
- &[data-error] + span {
87
- background-color: ${color.input.invalid.enabled.border};
88
- box-shadow: ${focusRingBorderStyle({
89
- width: input.border.width,
90
- color: color.input.invalid.enabled.muted.bg,
91
- })};
92
- &::after {
93
- background: ${color.input.invalid.enabled.muted.bg};
94
- }
95
- }
96
-
97
- /* read only */
98
- &[data-read-only] + span {
99
- box-shadow: 0 0 0 1px ${color.input.default.readOnly.border};
100
- background: ${color.input.default.readOnly.bg};
101
-
102
- &::after {
103
- background: ${color.input.default.readOnly.border};
104
- }
105
- }
106
-
107
- /* disabled */
108
- &:not([data-read-only]):disabled + span {
109
- box-shadow: 0 0 0 1px ${color.input.default.disabled.border};
110
- background: ${color.input.default.disabled.bg};
111
-
112
- &::after {
113
- background: ${color.input.default.disabled.border};
114
- }
115
- }
116
- `
117
- }
@@ -1 +0,0 @@
1
- export * from './select'
@@ -1,56 +0,0 @@
1
- /** @vitest-environment jsdom */
2
-
3
- import {beforeEach, describe, expect, it, vi} from 'vitest'
4
-
5
- import {render} from '../../../../test'
6
- import {Select} from './select'
7
- import {selectStyle} from './styles'
8
-
9
- vi.mock('./styles', async (importOriginal) => {
10
- const actual = await importOriginal<typeof import('./styles')>()
11
-
12
- return {
13
- ...actual,
14
- selectStyle: {
15
- ...actual.selectStyle,
16
- input: vi.fn(actual.selectStyle.input),
17
- },
18
- }
19
- })
20
-
21
- describe('primitives/select spacing', () => {
22
- const mockedSelectInputStyle = vi.mocked(selectStyle.input)
23
-
24
- beforeEach(() => {
25
- mockedSelectInputStyle.mockClear()
26
- })
27
-
28
- it('should support `space` and `gap` with the same behavior', () => {
29
- render(
30
- // oxlint-disable-next-line no-deprecated
31
- <Select space={2}>
32
- <option>Option A</option>
33
- </Select>,
34
- )
35
- expect(mockedSelectInputStyle).toHaveBeenCalledWith(expect.objectContaining({$space: [2]}))
36
-
37
- mockedSelectInputStyle.mockClear()
38
- render(
39
- <Select gap={2}>
40
- <option>Option A</option>
41
- </Select>,
42
- )
43
- expect(mockedSelectInputStyle).toHaveBeenCalledWith(expect.objectContaining({$space: [2]}))
44
- })
45
-
46
- it('should prefer `gap` over `space` when both are provided', () => {
47
- render(
48
- // oxlint-disable-next-line no-deprecated
49
- <Select gap={3} space={1}>
50
- <option>Option A</option>
51
- </Select>,
52
- )
53
- expect(mockedSelectInputStyle).toHaveBeenCalledWith(expect.objectContaining({$space: [3]}))
54
- expect(mockedSelectInputStyle).not.toHaveBeenCalledWith(expect.objectContaining({$space: [1]}))
55
- })
56
- })
@@ -1,95 +0,0 @@
1
- import {ChevronDownIcon} from '@sanity/icons'
2
- import {forwardRef, useImperativeHandle, useRef} from 'react'
3
- import {styled} from 'styled-components'
4
-
5
- import {useCustomValidity} from '../../hooks'
6
- import {_getArrayProp} from '../../styles'
7
- import {Radius} from '../../types'
8
- import {Box} from '../box'
9
- import {Text} from '../text'
10
- import {selectStyle} from './styles'
11
-
12
- /**
13
- * @public
14
- */
15
- export interface SelectProps {
16
- fontSize?: number | number[]
17
- gap?: number | number[]
18
- padding?: number | number[]
19
- radius?: Radius | Radius[]
20
- /**
21
- * @deprecated Use `gap` instead. `space` will be removed in v4.
22
- */
23
- space?: number | number[]
24
- customValidity?: string
25
- }
26
-
27
- const StyledSelect = styled.div(selectStyle.root)
28
-
29
- const Input = styled.select<{
30
- $fontSize: number[]
31
- $padding: number[]
32
- $radius: Radius[]
33
- $space: number[]
34
- }>(selectStyle.input)
35
-
36
- const IconBox = styled(Box)(selectStyle.iconBox)
37
-
38
- /**
39
- * The `Select` component provides control of options.
40
- *
41
- * @public
42
- */
43
- export const Select = forwardRef(function Select(
44
- props: SelectProps & Omit<React.HTMLProps<HTMLSelectElement>, 'as'>,
45
- forwardedRef: React.ForwardedRef<HTMLSelectElement>,
46
- ) {
47
- const {
48
- children,
49
- customValidity,
50
- disabled,
51
- fontSize = 2,
52
- gap,
53
- padding = 3,
54
- radius = 2,
55
- readOnly,
56
- // oxlint-disable-next-line no-deprecated
57
- space: deprecated_space = 3,
58
- ...restProps
59
- } = props
60
- const spacing = gap === undefined ? deprecated_space : gap
61
-
62
- const ref = useRef<HTMLSelectElement | null>(null)
63
-
64
- useImperativeHandle<HTMLSelectElement | null, HTMLSelectElement | null>(
65
- forwardedRef,
66
- () => ref.current,
67
- )
68
-
69
- useCustomValidity(ref, customValidity)
70
-
71
- return (
72
- <StyledSelect data-ui="Select">
73
- <Input
74
- data-read-only={!disabled && readOnly ? '' : undefined}
75
- data-ui="Select"
76
- {...restProps}
77
- $fontSize={_getArrayProp(fontSize)}
78
- $padding={_getArrayProp(padding)}
79
- $radius={_getArrayProp(radius)}
80
- $space={_getArrayProp(spacing)}
81
- disabled={disabled || readOnly}
82
- ref={ref}
83
- >
84
- {children}
85
- </Input>
86
-
87
- <IconBox padding={padding}>
88
- <Text size={fontSize}>
89
- <ChevronDownIcon />
90
- </Text>
91
- </IconBox>
92
- </StyledSelect>
93
- )
94
- })
95
- Select.displayName = 'ForwardRef(Select)'
@@ -1,166 +0,0 @@
1
- import {CSSObject, getTheme_v2, ThemeFontSize} from '@sanity/ui/theme'
2
- import {css} from 'styled-components'
3
-
4
- import {_responsive, rem, ThemeProps} from '../../styles'
5
- import {
6
- focusRingBorderStyle,
7
- focusRingStyle,
8
- responsiveInputPaddingIconRightStyle,
9
- responsiveRadiusStyle,
10
- ResponsiveRadiusStyleProps,
11
- } from '../../styles/internal'
12
-
13
- function rootStyle(): ReturnType<typeof css> {
14
- return css`
15
- position: relative;
16
- width: -moz-available;
17
- width: -webkit-fill-available;
18
- width: stretch;
19
-
20
- &:not([hidden]) {
21
- display: inline-block;
22
- }
23
- `
24
- }
25
-
26
- function inputBaseStyle(props: ThemeProps): ReturnType<typeof css> {
27
- const {font} = getTheme_v2(props.theme)
28
-
29
- return css`
30
- -webkit-font-smoothing: antialiased;
31
- appearance: none;
32
- border: 0;
33
- font-family: ${font.text.family};
34
- color: inherit;
35
- width: 100%;
36
- outline: none;
37
- margin: 0;
38
-
39
- &:disabled {
40
- opacity: 1;
41
- }
42
- `
43
- }
44
-
45
- function inputColorStyle(props: ThemeProps) {
46
- const {color, input} = getTheme_v2(props.theme)
47
-
48
- return css`
49
- /* enabled */
50
- background-color: ${color.input.default.enabled.bg};
51
- color: ${color.input.default.enabled.fg};
52
- box-shadow: ${focusRingBorderStyle({
53
- color: color.input.default.enabled.border,
54
- width: input.border.width,
55
- })};
56
-
57
- /* hovered */
58
- @media (hover: hover) {
59
- &:not(:disabled):hover {
60
- background-color: ${color.input.default.hovered.bg};
61
- color: ${color.input.default.hovered.fg};
62
- box-shadow: ${focusRingBorderStyle({
63
- color: color.input.default.hovered.border,
64
- width: input.border.width,
65
- })};
66
- }
67
- }
68
-
69
- /* focused */
70
- &:not(:disabled):focus {
71
- box-shadow: ${focusRingStyle({
72
- border: {width: input.border.width, color: color.input.default.enabled.border},
73
- focusRing: input.select.focusRing,
74
- })};
75
- }
76
-
77
- /* read-only */
78
- &[data-read-only] {
79
- background-color: ${color.input.default.readOnly.bg};
80
- color: ${color.input.default.readOnly.fg};
81
- box-shadow: ${focusRingBorderStyle({
82
- color: color.input.default.readOnly.border,
83
- width: input.border.width,
84
- })};
85
- }
86
-
87
- /* disabled */
88
- &:not([data-read-only]):disabled {
89
- background-color: ${color.input.default.disabled.bg};
90
- color: ${color.input.default.disabled.fg};
91
- box-shadow: ${focusRingBorderStyle({
92
- color: color.input.default.disabled.border,
93
- width: input.border.width,
94
- })};
95
- }
96
- `
97
- }
98
-
99
- function textSize(size: ThemeFontSize) {
100
- return {fontSize: rem(size.fontSize), lineHeight: `${rem(size.lineHeight)}`}
101
- }
102
-
103
- function inputTextSizeStyle(props: {$fontSize: number[]} & ThemeProps) {
104
- const {$fontSize} = props
105
- const {font, media} = getTheme_v2(props.theme)
106
-
107
- return _responsive(media, $fontSize, (sizeIndex) =>
108
- textSize(font.text.sizes[sizeIndex] || font.text.sizes[2]),
109
- )
110
- }
111
-
112
- function inputStyle(): Array<
113
- | ((
114
- props: ResponsiveRadiusStyleProps & {
115
- $fontSize: number[]
116
- $padding: number[]
117
- $space: number[]
118
- } & ThemeProps,
119
- ) => CSSObject[])
120
- | ((props: ThemeProps) => ReturnType<typeof css>)
121
- > {
122
- return [
123
- responsiveRadiusStyle,
124
- inputBaseStyle,
125
- inputColorStyle,
126
- inputTextSizeStyle,
127
- responsiveInputPaddingIconRightStyle,
128
- ]
129
- }
130
-
131
- function iconBoxStyle(props: ThemeProps): ReturnType<typeof css> {
132
- const {color} = getTheme_v2(props.theme)
133
-
134
- return css`
135
- pointer-events: none;
136
- position: absolute;
137
- top: 0;
138
- right: 0;
139
-
140
- /* enabled */
141
- --card-fg-color: ${color.input.default.enabled.fg};
142
-
143
- /* hover */
144
- @media (hover: hover) {
145
- select:not(disabled):not(:read-only):hover + && {
146
- --card-fg-color: ${color.input.default.hovered.fg};
147
- }
148
- }
149
-
150
- /* disabled */
151
- select:disabled + && {
152
- --card-fg-color: ${color.input.default.disabled.fg};
153
- }
154
-
155
- /* read-only */
156
- select[data-read-only] + && {
157
- --card-fg-color: ${color.input.default.readOnly.fg};
158
- }
159
- `
160
- }
161
-
162
- export const selectStyle = {
163
- root: rootStyle,
164
- input: inputStyle,
165
- iconBox: iconBoxStyle,
166
- }
@@ -1 +0,0 @@
1
- export * from './spinner'
@@ -1,46 +0,0 @@
1
- import {SpinnerIcon} from '@sanity/icons'
2
- import {forwardRef} from 'react'
3
- import {keyframes, styled} from 'styled-components'
4
-
5
- import {Text} from '../text'
6
-
7
- /**
8
- * @public
9
- */
10
- export interface SpinnerProps {
11
- muted?: boolean
12
- size?: number | number[]
13
- }
14
-
15
- const rotate = keyframes`
16
- from {
17
- transform: rotate(0deg);
18
- }
19
-
20
- to {
21
- transform: rotate(360deg);
22
- }
23
- `
24
-
25
- const StyledSpinner = styled(Text)`
26
- & > span > svg {
27
- animation: ${rotate} 500ms linear infinite;
28
- }
29
- `
30
-
31
- /**
32
- * Indicate that something is loading for an indeterminate amount of time.
33
- *
34
- * @public
35
- */
36
- export const Spinner = forwardRef(function Spinner(
37
- props: SpinnerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,
38
- ref: React.ForwardedRef<HTMLDivElement>,
39
- ) {
40
- return (
41
- <StyledSpinner data-ui="Spinner" {...props} ref={ref}>
42
- <SpinnerIcon />
43
- </StyledSpinner>
44
- )
45
- })
46
- Spinner.displayName = 'ForwardRef(Spinner)'
@@ -1 +0,0 @@
1
- export * from './stack'
@@ -1,61 +0,0 @@
1
- /** @vitest-environment jsdom */
2
-
3
- import {beforeEach, describe, expect, it, vi} from 'vitest'
4
-
5
- import {render} from '../../../../test'
6
- import {Stack} from './stack'
7
- import {responsiveStackSpaceStyle} from './styles'
8
-
9
- vi.mock('./styles', async (importOriginal) => {
10
- const actual = await importOriginal<typeof import('./styles')>()
11
-
12
- return {
13
- ...actual,
14
- responsiveStackSpaceStyle: vi.fn(actual.responsiveStackSpaceStyle),
15
- }
16
- })
17
-
18
- describe('primitives/stack', () => {
19
- const mockedResponsiveStackSpaceStyle = vi.mocked(responsiveStackSpaceStyle)
20
- beforeEach(() => {
21
- mockedResponsiveStackSpaceStyle.mockClear()
22
- })
23
-
24
- it('should support `space` and `gap` with the same behavior', () => {
25
- render(
26
- // oxlint-disable-next-line no-deprecated
27
- <Stack space={2}>
28
- <span>One</span>
29
- <span>Two</span>
30
- </Stack>,
31
- )
32
-
33
- expect(mockedResponsiveStackSpaceStyle).toHaveBeenCalledWith(
34
- expect.objectContaining({$space: [2]}),
35
- )
36
- mockedResponsiveStackSpaceStyle.mockClear()
37
- render(
38
- <Stack gap={2}>
39
- <span>One</span>
40
- <span>Two</span>
41
- </Stack>,
42
- )
43
-
44
- expect(mockedResponsiveStackSpaceStyle).toHaveBeenCalledWith(
45
- expect.objectContaining({$space: [2]}),
46
- )
47
- })
48
-
49
- it('should prefer `gap` over `space` when both are provided', () => {
50
- render(
51
- // oxlint-disable-next-line no-deprecated
52
- <Stack gap={3} space={1}>
53
- <span>One</span>
54
- <span>Two</span>
55
- </Stack>,
56
- )
57
- expect(mockedResponsiveStackSpaceStyle).toHaveBeenCalledWith(
58
- expect.objectContaining({$space: [3]}),
59
- )
60
- })
61
- })
@@ -1,59 +0,0 @@
1
- import {forwardRef} from 'react'
2
- import {styled} from 'styled-components'
3
-
4
- import {_getArrayProp} from '../../styles'
5
- import {ElementType, Props} from '../../types'
6
- import {Box, BoxOwnProps} from '../box'
7
- import {responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps, stackBaseStyle} from './styles'
8
-
9
- /**
10
- * @public
11
- */
12
- export interface StackOwnProps extends BoxOwnProps {
13
- gap?: number | number[]
14
- /**
15
- * @deprecated Use `gap` instead. `space` will be removed in v4.
16
- */
17
- space?: number | number[]
18
- }
19
-
20
- /**
21
- * @public
22
- */
23
- export type StackProps<E extends ElementType = 'div'> = Props<StackOwnProps, E>
24
-
25
- const StyledStack = styled(Box)<ResponsiveStackSpaceStyleProps>(
26
- stackBaseStyle,
27
- responsiveStackSpaceStyle,
28
- )
29
-
30
- const StackComponent = forwardRef(function Stack(
31
- props: StackOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,
32
- ref: React.ForwardedRef<HTMLDivElement>,
33
- ) {
34
- // oxlint-disable-next-line no-deprecated
35
- const {as, gap, space: deprecated_space, ...restProps} = props
36
- const spacing = gap === undefined ? deprecated_space : gap
37
-
38
- return (
39
- <StyledStack
40
- data-as={typeof as === 'string' ? as : undefined}
41
- data-ui="Stack"
42
- {...restProps}
43
- $space={_getArrayProp(spacing)}
44
- forwardedAs={as}
45
- ref={ref}
46
- />
47
- )
48
- })
49
- StackComponent.displayName = 'ForwardRef(Stack)'
50
-
51
- /**
52
- * The `Stack` component is used to place elements on top of each other.
53
- *
54
- * @public
55
- */
56
- // oxlint-disable-next-line no-unsafe-type-assertion
57
- export const Stack = StackComponent as unknown as <E extends ElementType = 'div'>(
58
- props: StackProps<E>,
59
- ) => React.JSX.Element
@@ -1,33 +0,0 @@
1
- import {CSSObject, getTheme_v2} from '@sanity/ui/theme'
2
-
3
- import {_responsive, rem, ThemeProps} from '../../styles'
4
-
5
- export interface ResponsiveStackSpaceStyleProps {
6
- $space: number[]
7
- }
8
-
9
- const BASE_STYLE: CSSObject = {
10
- '&&:not([hidden])': {
11
- display: 'grid',
12
- },
13
- '&[data-as="ul"],&[data-as="ol"]': {
14
- listStyle: 'none',
15
- },
16
- 'gridTemplateColumns': 'minmax(0, 1fr)',
17
- 'gridAutoRows': 'min-content',
18
- }
19
-
20
- export function stackBaseStyle(): CSSObject {
21
- return BASE_STYLE
22
- }
23
-
24
- export function responsiveStackSpaceStyle(
25
- props: ResponsiveStackSpaceStyleProps & ThemeProps,
26
- ): CSSObject[] {
27
- const {media, space} = getTheme_v2(props.theme)
28
-
29
- return _responsive(media, props.$space, (spaceIndex) => ({
30
- // oxlint-disable-next-line no-deprecated
31
- gridGap: rem(space[spaceIndex]),
32
- }))
33
- }
@@ -1 +0,0 @@
1
- export * from './switch'