@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,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'