@sanity/ui 3.3.2 → 3.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (423) hide show
  1. package/package.json +6 -11
  2. package/exports/_visual-editing.ts +0 -32
  3. package/exports/index.ts +0 -1
  4. package/exports/theme.ts +0 -1
  5. package/src/core/_compat.ts +0 -294
  6. package/src/core/components/autocomplete/autocomplete.styles.tsx +0 -39
  7. package/src/core/components/autocomplete/autocomplete.tsx +0 -775
  8. package/src/core/components/autocomplete/autocompleteOption.tsx +0 -46
  9. package/src/core/components/autocomplete/autocompleteReducer.ts +0 -47
  10. package/src/core/components/autocomplete/constants.ts +0 -28
  11. package/src/core/components/autocomplete/index.ts +0 -2
  12. package/src/core/components/autocomplete/types.ts +0 -108
  13. package/src/core/components/breadcrumbs/breadcrumbs.styles.ts +0 -18
  14. package/src/core/components/breadcrumbs/breadcrumbs.test.tsx +0 -54
  15. package/src/core/components/breadcrumbs/breadcrumbs.tsx +0 -136
  16. package/src/core/components/breadcrumbs/index.ts +0 -1
  17. package/src/core/components/dialog/dialog.tsx +0 -433
  18. package/src/core/components/dialog/dialogContext.ts +0 -20
  19. package/src/core/components/dialog/dialogProvider.tsx +0 -35
  20. package/src/core/components/dialog/index.ts +0 -4
  21. package/src/core/components/dialog/styles.ts +0 -77
  22. package/src/core/components/dialog/useDialog.ts +0 -11
  23. package/src/core/components/hotkeys/hotkeys.test.tsx +0 -47
  24. package/src/core/components/hotkeys/hotkeys.tsx +0 -68
  25. package/src/core/components/hotkeys/index.ts +0 -1
  26. package/src/core/components/index.ts +0 -9
  27. package/src/core/components/menu/helpers.ts +0 -82
  28. package/src/core/components/menu/index.ts +0 -5
  29. package/src/core/components/menu/menu.spacing.test.tsx +0 -68
  30. package/src/core/components/menu/menu.test.tsx +0 -128
  31. package/src/core/components/menu/menu.tsx +0 -180
  32. package/src/core/components/menu/menuButton.tsx +0 -276
  33. package/src/core/components/menu/menuContext.ts +0 -18
  34. package/src/core/components/menu/menuDivider.ts +0 -24
  35. package/src/core/components/menu/menuGroup.spacing.test.tsx +0 -66
  36. package/src/core/components/menu/menuGroup.tsx +0 -237
  37. package/src/core/components/menu/menuItem.spacing.test.tsx +0 -62
  38. package/src/core/components/menu/menuItem.tsx +0 -201
  39. package/src/core/components/menu/useMenu.ts +0 -21
  40. package/src/core/components/menu/useMenuController.ts +0 -233
  41. package/src/core/components/skeleton/index.ts +0 -2
  42. package/src/core/components/skeleton/skeleton.tsx +0 -58
  43. package/src/core/components/skeleton/styles.ts +0 -50
  44. package/src/core/components/skeleton/textSkeleton.tsx +0 -122
  45. package/src/core/components/tab/index.ts +0 -3
  46. package/src/core/components/tab/tab.tsx +0 -102
  47. package/src/core/components/tab/tabList.test.tsx +0 -50
  48. package/src/core/components/tab/tabList.tsx +0 -71
  49. package/src/core/components/tab/tabPanel.tsx +0 -39
  50. package/src/core/components/toast/index.ts +0 -4
  51. package/src/core/components/toast/styles.ts +0 -77
  52. package/src/core/components/toast/toast.test.tsx +0 -106
  53. package/src/core/components/toast/toast.tsx +0 -199
  54. package/src/core/components/toast/toastContext.ts +0 -7
  55. package/src/core/components/toast/toastLayer.tsx +0 -52
  56. package/src/core/components/toast/toastProvider.tsx +0 -113
  57. package/src/core/components/toast/toastState.ts +0 -6
  58. package/src/core/components/toast/types.ts +0 -26
  59. package/src/core/components/toast/useToast.ts +0 -25
  60. package/src/core/components/tree/helpers.ts +0 -105
  61. package/src/core/components/tree/index.ts +0 -4
  62. package/src/core/components/tree/style.ts +0 -105
  63. package/src/core/components/tree/tree.test.tsx +0 -60
  64. package/src/core/components/tree/tree.tsx +0 -242
  65. package/src/core/components/tree/treeContext.ts +0 -10
  66. package/src/core/components/tree/treeGroup.tsx +0 -29
  67. package/src/core/components/tree/treeItem.test.tsx +0 -70
  68. package/src/core/components/tree/treeItem.tsx +0 -225
  69. package/src/core/components/tree/types.ts +0 -25
  70. package/src/core/components/tree/useTree.ts +0 -17
  71. package/src/core/constants.ts +0 -79
  72. package/src/core/helpers/animation.ts +0 -27
  73. package/src/core/helpers/element.ts +0 -55
  74. package/src/core/helpers/focus.ts +0 -100
  75. package/src/core/helpers/index.ts +0 -4
  76. package/src/core/helpers/scroll.ts +0 -15
  77. package/src/core/hooks/index.ts +0 -13
  78. package/src/core/hooks/useArrayProp.ts +0 -17
  79. package/src/core/hooks/useClickOutside.test.tsx +0 -510
  80. package/src/core/hooks/useClickOutside.ts +0 -118
  81. package/src/core/hooks/useClickOutsideEvent.test.tsx +0 -119
  82. package/src/core/hooks/useClickOutsideEvent.ts +0 -73
  83. package/src/core/hooks/useCustomValidity.ts +0 -13
  84. package/src/core/hooks/useDelayed.test.ts +0 -89
  85. package/src/core/hooks/useDelayedState.ts +0 -36
  86. package/src/core/hooks/useElementRect/index.ts +0 -1
  87. package/src/core/hooks/useElementRect/useElementRect.ts +0 -14
  88. package/src/core/hooks/useElementSize.ts +0 -19
  89. package/src/core/hooks/useForwardedRef.ts +0 -20
  90. package/src/core/hooks/useGlobalKeyDown.ts +0 -24
  91. package/src/core/hooks/useIsomorphicEffect.ts +0 -7
  92. package/src/core/hooks/useMatchMedia.ts +0 -28
  93. package/src/core/hooks/useMediaIndex/index.ts +0 -1
  94. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -37
  95. package/src/core/hooks/useMediaIndex/useMediaIndex.ts +0 -102
  96. package/src/core/hooks/useMounted.ts +0 -15
  97. package/src/core/hooks/usePrefersDark.hydration.test.tsx +0 -58
  98. package/src/core/hooks/usePrefersDark.test.tsx +0 -21
  99. package/src/core/hooks/usePrefersDark.ts +0 -16
  100. package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -58
  101. package/src/core/hooks/usePrefersReducedMotion.test.tsx +0 -21
  102. package/src/core/hooks/usePrefersReducedMotion.ts +0 -16
  103. package/src/core/index.ts +0 -10
  104. package/src/core/lib/createGlobalScopedContext.ts +0 -37
  105. package/src/core/lib/globalScope.ts +0 -20
  106. package/src/core/lib/isRecord.ts +0 -3
  107. package/src/core/middleware/origin.ts +0 -47
  108. package/src/core/observers/elementSizeObserver.ts +0 -117
  109. package/src/core/observers/index.ts +0 -2
  110. package/src/core/observers/resizeObserver.ts +0 -9
  111. package/src/core/primitives/_selectable/index.ts +0 -1
  112. package/src/core/primitives/_selectable/selectable.tsx +0 -15
  113. package/src/core/primitives/_selectable/style.ts +0 -115
  114. package/src/core/primitives/avatar/avatar.tsx +0 -200
  115. package/src/core/primitives/avatar/avatarCounter.tsx +0 -91
  116. package/src/core/primitives/avatar/avatarStack.tsx +0 -101
  117. package/src/core/primitives/avatar/index.ts +0 -4
  118. package/src/core/primitives/avatar/styles.ts +0 -167
  119. package/src/core/primitives/avatar/types.ts +0 -17
  120. package/src/core/primitives/badge/badge.test.tsx +0 -17
  121. package/src/core/primitives/badge/badge.tsx +0 -72
  122. package/src/core/primitives/badge/index.ts +0 -1
  123. package/src/core/primitives/badge/styles.ts +0 -20
  124. package/src/core/primitives/badge/types.ts +0 -8
  125. package/src/core/primitives/box/box.test.tsx +0 -155
  126. package/src/core/primitives/box/box.tsx +0 -162
  127. package/src/core/primitives/box/index.ts +0 -1
  128. package/src/core/primitives/button/button.test.tsx +0 -86
  129. package/src/core/primitives/button/button.tsx +0 -214
  130. package/src/core/primitives/button/index.ts +0 -1
  131. package/src/core/primitives/button/styles.ts +0 -118
  132. package/src/core/primitives/card/card.tsx +0 -125
  133. package/src/core/primitives/card/index.ts +0 -2
  134. package/src/core/primitives/card/styles.ts +0 -147
  135. package/src/core/primitives/card/types.ts +0 -12
  136. package/src/core/primitives/checkbox/checkbox.tsx +0 -73
  137. package/src/core/primitives/checkbox/index.ts +0 -1
  138. package/src/core/primitives/checkbox/styles.ts +0 -128
  139. package/src/core/primitives/code/code.tsx +0 -56
  140. package/src/core/primitives/code/index.ts +0 -1
  141. package/src/core/primitives/code/refractor.tsx +0 -22
  142. package/src/core/primitives/code/styles.ts +0 -77
  143. package/src/core/primitives/container/container.tsx +0 -55
  144. package/src/core/primitives/container/index.ts +0 -2
  145. package/src/core/primitives/container/styles.ts +0 -23
  146. package/src/core/primitives/container/types.ts +0 -6
  147. package/src/core/primitives/flex/flex.tsx +0 -63
  148. package/src/core/primitives/flex/index.ts +0 -1
  149. package/src/core/primitives/grid/grid.test.tsx +0 -86
  150. package/src/core/primitives/grid/grid.tsx +0 -77
  151. package/src/core/primitives/grid/index.ts +0 -1
  152. package/src/core/primitives/heading/heading.tsx +0 -89
  153. package/src/core/primitives/heading/index.ts +0 -1
  154. package/src/core/primitives/heading/styles.ts +0 -64
  155. package/src/core/primitives/heading/types.ts +0 -7
  156. package/src/core/primitives/index.ts +0 -27
  157. package/src/core/primitives/inline/index.ts +0 -1
  158. package/src/core/primitives/inline/inline.test.tsx +0 -55
  159. package/src/core/primitives/inline/inline.tsx +0 -66
  160. package/src/core/primitives/inline/styles.ts +0 -32
  161. package/src/core/primitives/inline/types.ts +0 -6
  162. package/src/core/primitives/kbd/index.ts +0 -1
  163. package/src/core/primitives/kbd/kbd.tsx +0 -73
  164. package/src/core/primitives/label/index.ts +0 -1
  165. package/src/core/primitives/label/label.tsx +0 -88
  166. package/src/core/primitives/label/styles.ts +0 -45
  167. package/src/core/primitives/popover/constants.ts +0 -22
  168. package/src/core/primitives/popover/floating-ui/size.ts +0 -99
  169. package/src/core/primitives/popover/helpers.ts +0 -31
  170. package/src/core/primitives/popover/index.ts +0 -2
  171. package/src/core/primitives/popover/popover.tsx +0 -512
  172. package/src/core/primitives/popover/popoverCard.tsx +0 -167
  173. package/src/core/primitives/popover/types.ts +0 -6
  174. package/src/core/primitives/radio/index.ts +0 -1
  175. package/src/core/primitives/radio/radio.tsx +0 -51
  176. package/src/core/primitives/radio/styles.ts +0 -117
  177. package/src/core/primitives/select/index.ts +0 -1
  178. package/src/core/primitives/select/select.test.tsx +0 -56
  179. package/src/core/primitives/select/select.tsx +0 -95
  180. package/src/core/primitives/select/styles.ts +0 -166
  181. package/src/core/primitives/spinner/index.ts +0 -1
  182. package/src/core/primitives/spinner/spinner.tsx +0 -46
  183. package/src/core/primitives/stack/index.ts +0 -1
  184. package/src/core/primitives/stack/stack.test.tsx +0 -61
  185. package/src/core/primitives/stack/stack.tsx +0 -59
  186. package/src/core/primitives/stack/styles.ts +0 -33
  187. package/src/core/primitives/switch/index.ts +0 -1
  188. package/src/core/primitives/switch/styles.ts +0 -173
  189. package/src/core/primitives/switch/switch.tsx +0 -68
  190. package/src/core/primitives/text/index.ts +0 -1
  191. package/src/core/primitives/text/styles.ts +0 -74
  192. package/src/core/primitives/text/text.tsx +0 -90
  193. package/src/core/primitives/textArea/index.ts +0 -1
  194. package/src/core/primitives/textArea/textArea.tsx +0 -120
  195. package/src/core/primitives/textInput/index.ts +0 -1
  196. package/src/core/primitives/textInput/textInput.test.tsx +0 -52
  197. package/src/core/primitives/textInput/textInput.tsx +0 -398
  198. package/src/core/primitives/tooltip/constants.ts +0 -23
  199. package/src/core/primitives/tooltip/index.ts +0 -2
  200. package/src/core/primitives/tooltip/tooltip.test.tsx +0 -485
  201. package/src/core/primitives/tooltip/tooltip.tsx +0 -497
  202. package/src/core/primitives/tooltip/tooltipCard.tsx +0 -110
  203. package/src/core/primitives/tooltip/tooltipDelayGroup/index.ts +0 -4
  204. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +0 -11
  205. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -57
  206. package/src/core/primitives/tooltip/tooltipDelayGroup/types.ts +0 -12
  207. package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -13
  208. package/src/core/primitives/types.ts +0 -179
  209. package/src/core/styles/border/borderStyle.ts +0 -56
  210. package/src/core/styles/border/index.ts +0 -2
  211. package/src/core/styles/border/types.ts +0 -10
  212. package/src/core/styles/box/boxStyle.ts +0 -69
  213. package/src/core/styles/box/index.ts +0 -2
  214. package/src/core/styles/box/types.ts +0 -11
  215. package/src/core/styles/card/_cardColorStyle.ts +0 -108
  216. package/src/core/styles/card/index.ts +0 -1
  217. package/src/core/styles/flex/flexItemStyle.ts +0 -27
  218. package/src/core/styles/flex/flexStyle.ts +0 -70
  219. package/src/core/styles/flex/index.ts +0 -3
  220. package/src/core/styles/flex/types.ts +0 -24
  221. package/src/core/styles/focusRing/index.ts +0 -25
  222. package/src/core/styles/font/codeFontStyle.ts +0 -13
  223. package/src/core/styles/font/headingFontStyle.ts +0 -13
  224. package/src/core/styles/font/index.ts +0 -6
  225. package/src/core/styles/font/labelFontStyle.ts +0 -13
  226. package/src/core/styles/font/responsiveFont.ts +0 -100
  227. package/src/core/styles/font/textAlignStyle.ts +0 -19
  228. package/src/core/styles/font/textFontStyle.ts +0 -13
  229. package/src/core/styles/font/types.ts +0 -33
  230. package/src/core/styles/grid/gridItemStyle.ts +0 -82
  231. package/src/core/styles/grid/gridStyle.ts +0 -109
  232. package/src/core/styles/grid/index.ts +0 -3
  233. package/src/core/styles/grid/types.ts +0 -37
  234. package/src/core/styles/helpers.ts +0 -72
  235. package/src/core/styles/index.ts +0 -5
  236. package/src/core/styles/input/index.ts +0 -2
  237. package/src/core/styles/input/responsiveInputPaddingStyle.ts +0 -78
  238. package/src/core/styles/input/textInputStyle.ts +0 -263
  239. package/src/core/styles/internal.ts +0 -12
  240. package/src/core/styles/margin/index.ts +0 -2
  241. package/src/core/styles/margin/marginStyle.ts +0 -22
  242. package/src/core/styles/margin/marginsStyle.test.ts +0 -34
  243. package/src/core/styles/margin/types.ts +0 -9
  244. package/src/core/styles/padding/index.ts +0 -2
  245. package/src/core/styles/padding/paddingStyle.test.ts +0 -34
  246. package/src/core/styles/padding/paddingStyle.ts +0 -22
  247. package/src/core/styles/padding/types.ts +0 -12
  248. package/src/core/styles/radius/index.ts +0 -2
  249. package/src/core/styles/radius/radiusStyle.ts +0 -23
  250. package/src/core/styles/radius/types.ts +0 -8
  251. package/src/core/styles/shadow/index.ts +0 -2
  252. package/src/core/styles/shadow/shadowStyle.ts +0 -29
  253. package/src/core/styles/shadow/types.ts +0 -6
  254. package/src/core/styles/types.ts +0 -8
  255. package/src/core/theme/index.ts +0 -5
  256. package/src/core/theme/theme.test.tsx +0 -77
  257. package/src/core/theme/themeColorProvider.tsx +0 -29
  258. package/src/core/theme/themeContext.ts +0 -10
  259. package/src/core/theme/themeProvider.tsx +0 -62
  260. package/src/core/theme/types.ts +0 -12
  261. package/src/core/theme/useRootTheme.ts +0 -18
  262. package/src/core/theme/useTheme.ts +0 -18
  263. package/src/core/types/avatar.ts +0 -14
  264. package/src/core/types/badge.ts +0 -12
  265. package/src/core/types/box.ts +0 -19
  266. package/src/core/types/button.ts +0 -21
  267. package/src/core/types/card.ts +0 -6
  268. package/src/core/types/component.ts +0 -32
  269. package/src/core/types/dialog.ts +0 -4
  270. package/src/core/types/flex.ts +0 -30
  271. package/src/core/types/grid.ts +0 -14
  272. package/src/core/types/gridItem.ts +0 -29
  273. package/src/core/types/index.ts +0 -15
  274. package/src/core/types/placement.ts +0 -18
  275. package/src/core/types/popover.ts +0 -4
  276. package/src/core/types/radius.ts +0 -4
  277. package/src/core/types/selectable.ts +0 -6
  278. package/src/core/types/text.ts +0 -4
  279. package/src/core/utils/arrow/arrow.tsx +0 -124
  280. package/src/core/utils/arrow/cmds.ts +0 -91
  281. package/src/core/utils/arrow/index.ts +0 -1
  282. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +0 -105
  283. package/src/core/utils/boundaryElement/boundaryElementContext.ts +0 -7
  284. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +0 -24
  285. package/src/core/utils/boundaryElement/index.ts +0 -3
  286. package/src/core/utils/boundaryElement/types.ts +0 -7
  287. package/src/core/utils/boundaryElement/useBoundaryElement.ts +0 -26
  288. package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +0 -22
  289. package/src/core/utils/conditionalWrapper/index.ts +0 -1
  290. package/src/core/utils/elementQuery/elementQuery.tsx +0 -53
  291. package/src/core/utils/elementQuery/helpers.ts +0 -27
  292. package/src/core/utils/elementQuery/index.ts +0 -1
  293. package/src/core/utils/errorBoundary.tsx +0 -48
  294. package/src/core/utils/getElementRef.ts +0 -31
  295. package/src/core/utils/index.ts +0 -9
  296. package/src/core/utils/layer/getLayerContext.test.ts +0 -32
  297. package/src/core/utils/layer/getLayerContext.ts +0 -21
  298. package/src/core/utils/layer/index.ts +0 -4
  299. package/src/core/utils/layer/layer.test.tsx +0 -113
  300. package/src/core/utils/layer/layer.tsx +0 -99
  301. package/src/core/utils/layer/layerContext.ts +0 -7
  302. package/src/core/utils/layer/layerProvider.tsx +0 -111
  303. package/src/core/utils/layer/types.ts +0 -9
  304. package/src/core/utils/layer/useLayer.ts +0 -28
  305. package/src/core/utils/portal/index.ts +0 -4
  306. package/src/core/utils/portal/portal.test.tsx +0 -108
  307. package/src/core/utils/portal/portal.ts +0 -32
  308. package/src/core/utils/portal/portalContext.ts +0 -31
  309. package/src/core/utils/portal/portalProvider.tsx +0 -48
  310. package/src/core/utils/portal/types.ts +0 -9
  311. package/src/core/utils/portal/usePortal.ts +0 -25
  312. package/src/core/utils/spanWithTextOverflow.tsx +0 -10
  313. package/src/core/utils/srOnly/index.ts +0 -1
  314. package/src/core/utils/srOnly/srOnly.tsx +0 -36
  315. package/src/core/utils/virtualList/index.ts +0 -1
  316. package/src/core/utils/virtualList/virtualList.tsx +0 -201
  317. package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +0 -86
  318. package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +0 -58
  319. package/src/theme/build/_deprecated/color/button/createButtonModes.ts +0 -27
  320. package/src/theme/build/_deprecated/color/button/createButtonTones.ts +0 -60
  321. package/src/theme/build/_deprecated/color/card/createCardStates.ts +0 -66
  322. package/src/theme/build/_deprecated/color/color.test.ts +0 -67
  323. package/src/theme/build/_deprecated/color/defaults.ts +0 -391
  324. package/src/theme/build/_deprecated/color/factory.ts +0 -178
  325. package/src/theme/build/_deprecated/color/index.ts +0 -1
  326. package/src/theme/build/_deprecated/color/input/createInputModes.ts +0 -86
  327. package/src/theme/build/_deprecated/color/muted/createMuted.ts +0 -58
  328. package/src/theme/build/_deprecated/color/spot/createSpot.ts +0 -23
  329. package/src/theme/build/buildColorTheme.test.ts +0 -185
  330. package/src/theme/build/buildColorTheme.ts +0 -507
  331. package/src/theme/build/buildTheme.test.ts +0 -89
  332. package/src/theme/build/buildTheme.ts +0 -36
  333. package/src/theme/build/colorToken/colorToken.ts +0 -19
  334. package/src/theme/build/colorToken/compileColorToken.ts +0 -21
  335. package/src/theme/build/colorToken/index.ts +0 -2
  336. package/src/theme/build/colorToken/types.ts +0 -6
  337. package/src/theme/build/index.ts +0 -3
  338. package/src/theme/build/lib/color-fns/blend/index.ts +0 -3
  339. package/src/theme/build/lib/color-fns/blend/mix.ts +0 -21
  340. package/src/theme/build/lib/color-fns/blend/multiply.ts +0 -18
  341. package/src/theme/build/lib/color-fns/blend/screen.ts +0 -18
  342. package/src/theme/build/lib/color-fns/color-fns.test.ts +0 -70
  343. package/src/theme/build/lib/color-fns/contrastRatio.ts +0 -31
  344. package/src/theme/build/lib/color-fns/convert.ts +0 -150
  345. package/src/theme/build/lib/color-fns/index.ts +0 -6
  346. package/src/theme/build/lib/color-fns/parse.ts +0 -60
  347. package/src/theme/build/lib/color-fns/rgba.ts +0 -10
  348. package/src/theme/build/lib/color-fns/types.ts +0 -28
  349. package/src/theme/build/lib/isRecord.ts +0 -3
  350. package/src/theme/build/lib/lazy.ts +0 -30
  351. package/src/theme/build/lib/utils.ts +0 -19
  352. package/src/theme/build/merge.ts +0 -31
  353. package/src/theme/build/mixThemeColor.test.ts +0 -23
  354. package/src/theme/build/mixThemeColor.ts +0 -53
  355. package/src/theme/build/renderColorTheme.ts +0 -538
  356. package/src/theme/build/renderColorValue.ts +0 -83
  357. package/src/theme/build/resolveColorTokens.ts +0 -274
  358. package/src/theme/build/theme.test.ts +0 -29
  359. package/src/theme/config/helpers.ts +0 -60
  360. package/src/theme/config/index.ts +0 -4
  361. package/src/theme/config/system.ts +0 -117
  362. package/src/theme/config/tokens/color/index.ts +0 -1
  363. package/src/theme/config/tokens/color/types.ts +0 -135
  364. package/src/theme/config/tokens/index.ts +0 -4
  365. package/src/theme/config/tokens/parseTokenKey.test.ts +0 -66
  366. package/src/theme/config/tokens/parseTokenKey.ts +0 -67
  367. package/src/theme/config/tokens/parseTokenValue.test.ts +0 -44
  368. package/src/theme/config/tokens/parseTokenValue.ts +0 -134
  369. package/src/theme/config/tokens/types.ts +0 -53
  370. package/src/theme/config/types.ts +0 -46
  371. package/src/theme/defaults/colorPalette.ts +0 -5
  372. package/src/theme/defaults/colorTokens.ts +0 -648
  373. package/src/theme/defaults/config.ts +0 -84
  374. package/src/theme/defaults/fonts.ts +0 -227
  375. package/src/theme/getScopedTheme.ts +0 -103
  376. package/src/theme/index.ts +0 -5
  377. package/src/theme/system/avatar.ts +0 -14
  378. package/src/theme/system/color/_constants.ts +0 -45
  379. package/src/theme/system/color/_helpers.ts +0 -28
  380. package/src/theme/system/color/_system.ts +0 -40
  381. package/src/theme/system/color/avatar.ts +0 -15
  382. package/src/theme/system/color/badge.ts +0 -16
  383. package/src/theme/system/color/button.ts +0 -17
  384. package/src/theme/system/color/color.ts +0 -34
  385. package/src/theme/system/color/index.ts +0 -13
  386. package/src/theme/system/color/input.ts +0 -25
  387. package/src/theme/system/color/kbd.ts +0 -8
  388. package/src/theme/system/color/selectable.ts +0 -12
  389. package/src/theme/system/color/shadow.ts +0 -7
  390. package/src/theme/system/color/state.ts +0 -43
  391. package/src/theme/system/color/syntax.ts +0 -41
  392. package/src/theme/system/css.ts +0 -14
  393. package/src/theme/system/focusRing.ts +0 -7
  394. package/src/theme/system/font.ts +0 -52
  395. package/src/theme/system/index.ts +0 -11
  396. package/src/theme/system/input.ts +0 -33
  397. package/src/theme/system/layer.ts +0 -8
  398. package/src/theme/system/shadow.ts +0 -19
  399. package/src/theme/system/styles.ts +0 -13
  400. package/src/theme/system/theme.ts +0 -142
  401. package/src/theme/system/v0/avatar.ts +0 -10
  402. package/src/theme/system/v0/color/_generic.ts +0 -35
  403. package/src/theme/system/v0/color/_system.ts +0 -18
  404. package/src/theme/system/v0/color/base.ts +0 -21
  405. package/src/theme/system/v0/color/button.ts +0 -56
  406. package/src/theme/system/v0/color/card.ts +0 -25
  407. package/src/theme/system/v0/color/color.ts +0 -51
  408. package/src/theme/system/v0/color/index.ts +0 -11
  409. package/src/theme/system/v0/color/input.ts +0 -40
  410. package/src/theme/system/v0/color/muted.ts +0 -37
  411. package/src/theme/system/v0/color/selectable.ts +0 -42
  412. package/src/theme/system/v0/color/solid.ts +0 -37
  413. package/src/theme/system/v0/color/spot.ts +0 -14
  414. package/src/theme/system/v0/index.ts +0 -3
  415. package/src/theme/system/v0/input.ts +0 -23
  416. package/src/theme/versioning/getTheme_v2.ts +0 -72
  417. package/src/theme/versioning/index.ts +0 -5
  418. package/src/theme/versioning/is_v0.ts +0 -6
  419. package/src/theme/versioning/is_v2.ts +0 -6
  420. package/src/theme/versioning/themeColor_v0_v2.ts +0 -250
  421. package/src/theme/versioning/themeColor_v2_v2_9.ts +0 -50
  422. package/src/theme/versioning/v0_v2.ts +0 -106
  423. package/src/theme/versioning/v2_v0.ts +0 -153
@@ -1,155 +0,0 @@
1
- /** @vitest-environment jsdom */
2
-
3
- import {type ComponentProps} from 'react'
4
- import {beforeEach, describe, expect, it, vi} from 'vitest'
5
-
6
- import {render} from '../../../../test'
7
- import {responsiveGridItemStyle} from '../../styles/internal'
8
- import {Box} from './box'
9
-
10
- vi.mock('../../styles/internal', async (importOriginal) => {
11
- const actual = await importOriginal<typeof import('../../styles/internal')>()
12
-
13
- return {
14
- ...actual,
15
- responsiveGridItemStyle: vi.fn(actual.responsiveGridItemStyle),
16
- }
17
- })
18
-
19
- describe('<Box />', () => {
20
- const mockedResponsiveGridItemStyle = vi.mocked(responsiveGridItemStyle)
21
-
22
- beforeEach(() => {
23
- mockedResponsiveGridItemStyle.mockClear()
24
- })
25
-
26
- it('uses column when gridColumn is not provided', () => {
27
- // oxlint-disable-next-line no-deprecated
28
- render(<Box column={3} />)
29
-
30
- expect(mockedResponsiveGridItemStyle).toHaveBeenCalledWith(
31
- expect.objectContaining({$column: [3]}),
32
- )
33
- })
34
-
35
- it('uses gridColumn when provided', () => {
36
- render(<Box gridColumn={4} />)
37
-
38
- expect(mockedResponsiveGridItemStyle).toHaveBeenCalledWith(
39
- expect.objectContaining({$column: [4]}),
40
- )
41
- })
42
-
43
- it('prefers gridColumn over column when both are provided', () => {
44
- // oxlint-disable-next-line no-deprecated
45
- render(<Box column={3} gridColumn={5} />)
46
-
47
- expect(mockedResponsiveGridItemStyle).toHaveBeenCalledWith(
48
- expect.objectContaining({$column: [5]}),
49
- )
50
- expect(mockedResponsiveGridItemStyle).not.toHaveBeenCalledWith(
51
- expect.objectContaining({$column: [3]}),
52
- )
53
- })
54
-
55
- it('supports responsive arrays with gridColumn', () => {
56
- const gridColumn: ComponentProps<typeof Box>['gridColumn'] = [2, 'full']
57
-
58
- render(<Box gridColumn={gridColumn} />)
59
-
60
- expect(mockedResponsiveGridItemStyle).toHaveBeenCalledWith(
61
- expect.objectContaining({$column: [2, 'full']}),
62
- )
63
- })
64
-
65
- it('uses columnStart when gridColumnStart is not provided', () => {
66
- // oxlint-disable-next-line no-deprecated
67
- render(<Box columnStart={2} />)
68
- expect(mockedResponsiveGridItemStyle).toHaveBeenCalledWith(
69
- expect.objectContaining({$columnStart: [2]}),
70
- )
71
- })
72
-
73
- it('prefers gridColumnStart over columnStart when both are provided', () => {
74
- // oxlint-disable-next-line no-deprecated
75
- render(<Box columnStart={2} gridColumnStart={4} />)
76
- expect(mockedResponsiveGridItemStyle).toHaveBeenCalledWith(
77
- expect.objectContaining({$columnStart: [4]}),
78
- )
79
- expect(mockedResponsiveGridItemStyle).not.toHaveBeenCalledWith(
80
- expect.objectContaining({$columnStart: [2]}),
81
- )
82
- })
83
-
84
- it('uses columnEnd when gridColumnEnd is not provided', () => {
85
- // oxlint-disable-next-line no-deprecated
86
- render(<Box columnEnd={3} />)
87
- expect(mockedResponsiveGridItemStyle).toHaveBeenCalledWith(
88
- expect.objectContaining({$columnEnd: [3]}),
89
- )
90
- })
91
-
92
- it('prefers gridColumnEnd over columnEnd when both are provided', () => {
93
- // oxlint-disable-next-line no-deprecated
94
- render(<Box columnEnd={3} gridColumnEnd={5} />)
95
- expect(mockedResponsiveGridItemStyle).toHaveBeenCalledWith(
96
- expect.objectContaining({$columnEnd: [5]}),
97
- )
98
- expect(mockedResponsiveGridItemStyle).not.toHaveBeenCalledWith(
99
- expect.objectContaining({$columnEnd: [3]}),
100
- )
101
- })
102
-
103
- it('uses row when gridRow is not provided', () => {
104
- // oxlint-disable-next-line no-deprecated
105
- render(<Box row={1} />)
106
- expect(mockedResponsiveGridItemStyle).toHaveBeenCalledWith(expect.objectContaining({$row: [1]}))
107
- })
108
-
109
- it('prefers gridRow over row when both are provided', () => {
110
- // oxlint-disable-next-line no-deprecated
111
- render(<Box row={1} gridRow={2} />)
112
- expect(mockedResponsiveGridItemStyle).toHaveBeenCalledWith(expect.objectContaining({$row: [2]}))
113
- expect(mockedResponsiveGridItemStyle).not.toHaveBeenCalledWith(
114
- expect.objectContaining({$row: [1]}),
115
- )
116
- })
117
-
118
- it('uses rowStart when gridRowStart is not provided', () => {
119
- // oxlint-disable-next-line no-deprecated
120
- render(<Box rowStart={2} />)
121
- expect(mockedResponsiveGridItemStyle).toHaveBeenCalledWith(
122
- expect.objectContaining({$rowStart: [2]}),
123
- )
124
- })
125
-
126
- it('prefers gridRowStart over rowStart when both are provided', () => {
127
- // oxlint-disable-next-line no-deprecated
128
- render(<Box rowStart={2} gridRowStart={4} />)
129
- expect(mockedResponsiveGridItemStyle).toHaveBeenCalledWith(
130
- expect.objectContaining({$rowStart: [4]}),
131
- )
132
- expect(mockedResponsiveGridItemStyle).not.toHaveBeenCalledWith(
133
- expect.objectContaining({$rowStart: [2]}),
134
- )
135
- })
136
-
137
- it('uses rowEnd when gridRowEnd is not provided', () => {
138
- // oxlint-disable-next-line no-deprecated
139
- render(<Box rowEnd={3} />)
140
- expect(mockedResponsiveGridItemStyle).toHaveBeenCalledWith(
141
- expect.objectContaining({$rowEnd: [3]}),
142
- )
143
- })
144
-
145
- it('prefers gridRowEnd over rowEnd when both are provided', () => {
146
- // oxlint-disable-next-line no-deprecated
147
- render(<Box rowEnd={3} gridRowEnd={5} />)
148
- expect(mockedResponsiveGridItemStyle).toHaveBeenCalledWith(
149
- expect.objectContaining({$rowEnd: [5]}),
150
- )
151
- expect(mockedResponsiveGridItemStyle).not.toHaveBeenCalledWith(
152
- expect.objectContaining({$rowEnd: [3]}),
153
- )
154
- })
155
- })
@@ -1,162 +0,0 @@
1
- import {forwardRef} from 'react'
2
- import {styled} from 'styled-components'
3
-
4
- import {_getArrayProp} from '../../styles'
5
- import {
6
- boxStyle,
7
- flexItemStyle,
8
- FlexItemStyleProps,
9
- responsiveBoxStyle,
10
- ResponsiveBoxStyleProps,
11
- responsiveGridItemStyle,
12
- ResponsiveGridItemStyleProps,
13
- responsiveMarginStyle,
14
- ResponsiveMarginStyleProps,
15
- responsivePaddingStyle,
16
- ResponsivePaddingStyleProps,
17
- } from '../../styles/internal'
18
- import {ElementType, Props} from '../../types'
19
- import {
20
- ResponsiveBoxProps,
21
- ResponsiveFlexItemProps,
22
- ResponsiveGridItemProps,
23
- ResponsiveMarginProps,
24
- ResponsivePaddingProps,
25
- } from '../types'
26
-
27
- /**
28
- * The props that `Box` adds on top of the element it renders as.
29
- *
30
- * @public
31
- */
32
- export interface BoxOwnProps
33
- extends
34
- ResponsiveFlexItemProps,
35
- ResponsiveBoxProps,
36
- ResponsiveGridItemProps,
37
- ResponsiveMarginProps,
38
- ResponsivePaddingProps {
39
- forwardedAs?: ElementType
40
- }
41
-
42
- /**
43
- * @public
44
- */
45
- export type BoxProps<E extends ElementType = 'div'> = Props<BoxOwnProps, E>
46
-
47
- const StyledBox = styled.div<
48
- FlexItemStyleProps &
49
- ResponsiveBoxStyleProps &
50
- ResponsiveGridItemStyleProps &
51
- ResponsiveMarginStyleProps &
52
- ResponsivePaddingStyleProps
53
- >(
54
- boxStyle,
55
- flexItemStyle,
56
- responsiveBoxStyle,
57
- responsiveGridItemStyle,
58
- responsiveMarginStyle,
59
- responsivePaddingStyle,
60
- )
61
-
62
- const BoxComponent = forwardRef(function Box(
63
- props: BoxOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,
64
- ref: React.ForwardedRef<HTMLDivElement>,
65
- ) {
66
- const {
67
- as: asProp = 'div',
68
- gridColumn,
69
- // oxlint-disable-next-line no-deprecated
70
- column: deprecated_column,
71
- gridColumnStart,
72
- // oxlint-disable-next-line no-deprecated
73
- columnStart: deprecated_columnStart,
74
- gridColumnEnd,
75
- // oxlint-disable-next-line no-deprecated
76
- columnEnd: deprecated_columnEnd,
77
- display = 'block',
78
- flex,
79
- height,
80
- margin = 0,
81
- marginX,
82
- marginY,
83
- marginTop,
84
- marginRight,
85
- marginBottom,
86
- marginLeft,
87
- overflow,
88
- padding = 0,
89
- paddingX,
90
- paddingY,
91
- paddingTop,
92
- paddingRight,
93
- paddingBottom,
94
- paddingLeft,
95
- gridRow,
96
- // oxlint-disable-next-line no-deprecated
97
- row: deprecated_row,
98
- gridRowStart,
99
- // oxlint-disable-next-line no-deprecated
100
- rowStart: deprecated_rowStart,
101
- gridRowEnd,
102
- // oxlint-disable-next-line no-deprecated
103
- rowEnd: deprecated_rowEnd,
104
- sizing,
105
- ...restProps
106
- } = props
107
- const column = gridColumn === undefined ? deprecated_column : gridColumn
108
- const columnStart = gridColumnStart === undefined ? deprecated_columnStart : gridColumnStart
109
- const columnEnd = gridColumnEnd === undefined ? deprecated_columnEnd : gridColumnEnd
110
- const row = gridRow === undefined ? deprecated_row : gridRow
111
- const rowStart = gridRowStart === undefined ? deprecated_rowStart : gridRowStart
112
- const rowEnd = gridRowEnd === undefined ? deprecated_rowEnd : gridRowEnd
113
-
114
- return (
115
- <StyledBox
116
- data-as={typeof asProp === 'string' ? asProp : undefined}
117
- data-ui="Box"
118
- {...restProps}
119
- $column={_getArrayProp(column)}
120
- $columnStart={_getArrayProp(columnStart)}
121
- $columnEnd={_getArrayProp(columnEnd)}
122
- $display={_getArrayProp(display)}
123
- $flex={_getArrayProp(flex)}
124
- $height={_getArrayProp(height)}
125
- $margin={_getArrayProp(margin)}
126
- $marginX={_getArrayProp(marginX)}
127
- $marginY={_getArrayProp(marginY)}
128
- $marginTop={_getArrayProp(marginTop)}
129
- $marginRight={_getArrayProp(marginRight)}
130
- $marginBottom={_getArrayProp(marginBottom)}
131
- $marginLeft={_getArrayProp(marginLeft)}
132
- $overflow={_getArrayProp(overflow)}
133
- $padding={_getArrayProp(padding)}
134
- $paddingX={_getArrayProp(paddingX)}
135
- $paddingY={_getArrayProp(paddingY)}
136
- $paddingTop={_getArrayProp(paddingTop)}
137
- $paddingRight={_getArrayProp(paddingRight)}
138
- $paddingBottom={_getArrayProp(paddingBottom)}
139
- $paddingLeft={_getArrayProp(paddingLeft)}
140
- $row={_getArrayProp(row)}
141
- $rowStart={_getArrayProp(rowStart)}
142
- $rowEnd={_getArrayProp(rowEnd)}
143
- $sizing={_getArrayProp(sizing)}
144
- as={asProp}
145
- ref={ref}
146
- >
147
- {props.children}
148
- </StyledBox>
149
- )
150
- })
151
- BoxComponent.displayName = 'ForwardRef(Box)'
152
-
153
- /**
154
- * The `Box` component is a basic layout wrapper component which provides utility properties
155
- * for flex, margins and padding.
156
- *
157
- * @public
158
- */
159
- // oxlint-disable-next-line no-unsafe-type-assertion
160
- export const Box = BoxComponent as unknown as <E extends ElementType = 'div'>(
161
- props: BoxProps<E>,
162
- ) => React.JSX.Element
@@ -1 +0,0 @@
1
- export * from './box'
@@ -1,86 +0,0 @@
1
- /** @vitest-environment jsdom */
2
-
3
- import {AddIcon} from '@sanity/icons'
4
- import {screen} from '@testing-library/react'
5
- import {beforeEach, describe, expect, it, vi} from 'vitest'
6
- import {axe} from 'vitest-axe'
7
-
8
- import {render} from '../../../../test'
9
- import {Flex} from '../flex'
10
- import {Button, ButtonOwnProps} from './button'
11
-
12
- vi.mock('../flex', async (importOriginal) => {
13
- const actual = await importOriginal<typeof import('../flex')>()
14
-
15
- return {
16
- ...actual,
17
- // oxlint-disable-next-line no-unsafe-type-assertion
18
- Flex: vi.fn((props: Record<string, unknown>) => (actual.Flex as any).render(props, null)),
19
- }
20
- })
21
-
22
- describe('atoms/button', () => {
23
- const mockedFlex = vi.mocked(Flex)
24
-
25
- beforeEach(() => {
26
- mockedFlex.mockClear()
27
- })
28
-
29
- it('Axe: should have no violations', async () => {
30
- const lightResult = render(<Button icon={AddIcon} text="Label" tone="positive" />, {
31
- scheme: 'light',
32
- })
33
-
34
- expect(await axe(lightResult.container.outerHTML)).toHaveNoViolations()
35
-
36
- const darkResult = render(<Button icon={AddIcon} text="Label" tone="positive" />, {
37
- scheme: 'dark',
38
- })
39
-
40
- expect(await axe(darkResult.container.outerHTML)).toHaveNoViolations()
41
- })
42
-
43
- it('should render text', () => {
44
- render(<Button text="Button text" />)
45
-
46
- expect(screen.getByText('Button text')).toBeInTheDocument()
47
- })
48
-
49
- it('should wrap button', () => {
50
- function WrappedButton({button: buttonProps}: {button: ButtonOwnProps}) {
51
- return <Button {...buttonProps} />
52
- }
53
-
54
- const buttonProps: ButtonOwnProps = {
55
- text: 'Button text',
56
- }
57
-
58
- render(<WrappedButton button={buttonProps} />)
59
-
60
- expect(screen.getByText('Button text')).toBeInTheDocument()
61
- })
62
-
63
- it('should support `space`', () => {
64
- // oxlint-disable-next-line no-deprecated
65
- render(<Button icon={AddIcon} space={17} text="Button text" />)
66
-
67
- const propsList = mockedFlex.mock.calls.map(([props]) => props)
68
- expect(propsList).toContainEqual(expect.objectContaining({gap: [17]}))
69
- })
70
-
71
- it('should support `gap`', () => {
72
- render(<Button gap={18} icon={AddIcon} text="Button text" />)
73
-
74
- const propsList = mockedFlex.mock.calls.map(([props]) => props)
75
- expect(propsList).toContainEqual(expect.objectContaining({gap: [18]}))
76
- })
77
-
78
- it('should prefer `gap` over `space` when both are provided', () => {
79
- // oxlint-disable-next-line no-deprecated
80
- render(<Button gap={19} icon={AddIcon} space={20} text="Button text" />)
81
-
82
- const propsList = mockedFlex.mock.calls.map(([props]) => props)
83
- expect(propsList).toContainEqual(expect.objectContaining({gap: [19]}))
84
- expect(propsList).not.toContainEqual(expect.objectContaining({gap: [20]}))
85
- })
86
- })
@@ -1,214 +0,0 @@
1
- import {ThemeFontWeightKey} from '@sanity/ui/theme'
2
- import {forwardRef, isValidElement, useMemo} from 'react'
3
- import {isValidElementType} from 'react-is'
4
- import {styled} from 'styled-components'
5
-
6
- import {_getArrayProp, ThemeProps} from '../../styles'
7
- import {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'
8
- import {useTheme_v2} from '../../theme'
9
- import {
10
- ButtonMode,
11
- ButtonTextAlign,
12
- ButtonTone,
13
- ButtonWidth,
14
- ElementType,
15
- FlexJustify,
16
- Props,
17
- } from '../../types'
18
- import {Box} from '../box'
19
- import {Flex} from '../flex'
20
- import {Spinner} from '../spinner'
21
- import {Text} from '../text'
22
- import {ResponsivePaddingProps, ResponsiveRadiusProps} from '../types'
23
- import {buttonBaseStyles, buttonColorStyles} from './styles'
24
-
25
- /**
26
- * @public
27
- */
28
- export interface ButtonOwnProps extends ResponsivePaddingProps, ResponsiveRadiusProps {
29
- fontSize?: number | number[]
30
- mode?: ButtonMode
31
- // oxlint-disable-next-line no-redundant-type-constituents
32
- icon?: React.ElementType | React.ReactNode
33
- // oxlint-disable-next-line no-redundant-type-constituents
34
- iconRight?: React.ElementType | React.ReactNode
35
- justify?: FlexJustify | FlexJustify[]
36
- /**
37
- * @beta Do not use in production, as this might change.
38
- */
39
- loading?: boolean
40
- selected?: boolean
41
- /**
42
- * @deprecated Use `gap` instead. `space` will be removed in v4.
43
- */
44
- space?: number | number[]
45
- gap?: number | number[]
46
- muted?: boolean
47
- text?: React.ReactNode
48
- textAlign?: ButtonTextAlign
49
- textWeight?: ThemeFontWeightKey
50
- tone?: ButtonTone
51
- type?: 'button' | 'reset' | 'submit'
52
- width?: ButtonWidth
53
- }
54
-
55
- /**
56
- * @public
57
- */
58
- export type ButtonProps<E extends ElementType = 'button'> = Props<ButtonOwnProps, E>
59
-
60
- const StyledButton = styled.button<
61
- {$mode: ButtonMode; $tone: ButtonTone; $width?: ButtonWidth} & ResponsiveRadiusStyleProps &
62
- ThemeProps
63
- >(responsiveRadiusStyle, buttonBaseStyles, buttonColorStyles)
64
-
65
- const LoadingBox = styled.div`
66
- position: absolute;
67
- top: 0;
68
- left: 0;
69
- right: 0;
70
- bottom: 0;
71
- display: flex;
72
- align-items: center;
73
- justify-content: center;
74
- background-color: var(--card-bg-color);
75
- border-radius: inherit;
76
- z-index: 1;
77
- box-shadow: inherit;
78
- `
79
-
80
- const ButtonComponent = forwardRef(function Button(
81
- props: ButtonOwnProps & {as?: ElementType} & Omit<
82
- React.HTMLProps<HTMLButtonElement>,
83
- 'as' | 'width'
84
- >,
85
- ref: React.ForwardedRef<HTMLButtonElement>,
86
- ) {
87
- const {
88
- children,
89
- disabled,
90
- fontSize = 1,
91
- icon: IconComponent,
92
- iconRight: IconRightComponent,
93
- justify: justifyProp = 'center',
94
- loading,
95
- mode = 'default',
96
- padding: paddingProp = 3,
97
- paddingX: paddingXProp,
98
- paddingY: paddingYProp,
99
- paddingTop: paddingTopProp,
100
- paddingBottom: paddingBottomProp,
101
- paddingLeft: paddingLeftProp,
102
- paddingRight: paddingRightProp,
103
- radius: radiusProp = 2,
104
- selected,
105
- gap,
106
- // oxlint-disable-next-line no-deprecated
107
- space: deprecated_space = 3,
108
- text,
109
- textAlign,
110
- textWeight,
111
- tone = 'default',
112
- type = 'button',
113
- muted = false,
114
- width,
115
- ...restProps
116
- } = props
117
- const {button} = useTheme_v2()
118
-
119
- const justify = _getArrayProp(justifyProp)
120
- const padding = _getArrayProp(paddingProp)
121
- const paddingX = _getArrayProp(paddingXProp)
122
- const paddingY = _getArrayProp(paddingYProp)
123
- const paddingTop = _getArrayProp(paddingTopProp)
124
- const paddingBottom = _getArrayProp(paddingBottomProp)
125
- const paddingLeft = _getArrayProp(paddingLeftProp)
126
- const paddingRight = _getArrayProp(paddingRightProp)
127
- const radius = _getArrayProp(radiusProp)
128
- const spacing = _getArrayProp(gap === undefined ? deprecated_space : gap)
129
-
130
- const boxProps = useMemo(
131
- () => ({
132
- // flex: 1,
133
- padding,
134
- paddingX,
135
- paddingY,
136
- paddingTop,
137
- paddingBottom,
138
- paddingLeft,
139
- paddingRight,
140
- }),
141
- [padding, paddingX, paddingY, paddingTop, paddingBottom, paddingLeft, paddingRight],
142
- )
143
-
144
- return (
145
- <StyledButton
146
- data-ui="Button"
147
- {...restProps}
148
- $mode={mode}
149
- $radius={radius}
150
- $tone={tone}
151
- data-disabled={Boolean(loading || disabled)}
152
- data-selected={selected ? '' : undefined}
153
- disabled={Boolean(loading || disabled)}
154
- ref={ref}
155
- type={type}
156
- $width={width}
157
- >
158
- {Boolean(loading) && (
159
- <LoadingBox>
160
- <Spinner />
161
- </LoadingBox>
162
- )}
163
-
164
- {(IconComponent || text || IconRightComponent) && (
165
- <Box as="span" {...boxProps}>
166
- <Flex as="span" justify={justify} gap={spacing}>
167
- {IconComponent && (
168
- <Text size={fontSize}>
169
- {isValidElement(IconComponent) && IconComponent}
170
- {isValidElementType(IconComponent) && <IconComponent />}
171
- </Text>
172
- )}
173
-
174
- {text && (
175
- <Box>
176
- <Text
177
- muted={muted}
178
- align={textAlign}
179
- size={fontSize}
180
- textOverflow="ellipsis"
181
- weight={textWeight ?? button.textWeight}
182
- >
183
- {text}
184
- </Text>
185
- </Box>
186
- )}
187
-
188
- {IconRightComponent && (
189
- <Text size={fontSize}>
190
- {isValidElement(IconRightComponent) && IconRightComponent}
191
- {isValidElementType(IconRightComponent) && <IconRightComponent />}
192
- </Text>
193
- )}
194
- </Flex>
195
- </Box>
196
- )}
197
-
198
- {children && (
199
- <Box as="span" {...boxProps}>
200
- {children}
201
- </Box>
202
- )}
203
- </StyledButton>
204
- )
205
- })
206
- ButtonComponent.displayName = 'ForwardRef(Button)'
207
-
208
- /**
209
- * @public
210
- */
211
- // oxlint-disable-next-line no-unsafe-type-assertion
212
- export const Button = ButtonComponent as unknown as <E extends ElementType = 'button'>(
213
- props: ButtonProps<E>,
214
- ) => React.JSX.Element
@@ -1 +0,0 @@
1
- export * from './button'