@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,242 +0,0 @@
1
- import {
2
- forwardRef,
3
- useCallback,
4
- useEffect,
5
- useImperativeHandle,
6
- useMemo,
7
- useRef,
8
- useState,
9
- } from 'react'
10
-
11
- import {Stack} from '../../primitives'
12
- import {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'
13
- import {TreeContext} from './treeContext'
14
- import {TreeContextValue, TreeState} from './types'
15
-
16
- /**
17
- * This API might change. DO NOT USE IN PRODUCTION.
18
- * @beta
19
- */
20
- export interface TreeProps {
21
- gap?: number | number[]
22
- /**
23
- * @deprecated Use `gap` instead. `space` will be removed in v4.
24
- */
25
- space?: number | number[]
26
- }
27
-
28
- /**
29
- * This API might change. DO NOT USE IN PRODUCTION.
30
- * @beta
31
- */
32
- export const Tree = forwardRef(function Tree(
33
- props: TreeProps &
34
- Omit<React.HTMLProps<HTMLUListElement>, 'align' | 'as' | 'height' | 'ref' | 'role' | 'wrap'>,
35
- forwardedRef: React.ForwardedRef<HTMLUListElement>,
36
- ): React.JSX.Element {
37
- // oxlint-disable-next-line no-deprecated
38
- const {children, gap, space: deprecated_space = 1, onFocus, ...restProps} = props
39
- const spacing = gap === undefined ? deprecated_space : gap
40
- const ref = useRef<HTMLUListElement | null>(null)
41
- const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)
42
- const focusedElementRef = useRef(focusedElement)
43
- const path: string[] = useMemo(() => [], [])
44
- const [itemElements, setItemElements] = useState<HTMLElement[]>([])
45
- const [state, setState] = useState<TreeState>({})
46
- const stateRef = useRef(state)
47
-
48
- useImperativeHandle<HTMLUListElement | null, HTMLUListElement | null>(
49
- forwardedRef,
50
- () => ref.current,
51
- )
52
-
53
- useEffect(() => {
54
- focusedElementRef.current = focusedElement
55
- }, [focusedElement])
56
-
57
- useEffect(() => {
58
- stateRef.current = state
59
- }, [state])
60
-
61
- const registerItem = useCallback(
62
- (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {
63
- setState((s) => ({...s, [path]: {element, expanded}}))
64
-
65
- if (selected) {
66
- setFocusedElement(element)
67
- }
68
-
69
- return () => {
70
- setState((s) => {
71
- const newState = {...s}
72
-
73
- delete newState[path]
74
-
75
- return newState
76
- })
77
- }
78
- },
79
- [],
80
- )
81
-
82
- const setExpanded = useCallback((path: string, expanded: boolean) => {
83
- setState((s) => {
84
- const itemState = s[path]
85
-
86
- if (!itemState) return s
87
-
88
- return {...s, [path]: {...itemState, expanded}}
89
- })
90
- }, [])
91
-
92
- const contextValue: TreeContextValue = useMemo(
93
- () => ({
94
- version: 0.0,
95
- focusedElement: focusedElement || itemElements[0] || null,
96
- level: 0,
97
- path,
98
- registerItem,
99
- setExpanded,
100
- setFocusedElement,
101
- gap: spacing,
102
- space: spacing,
103
- state,
104
- }),
105
- [focusedElement, itemElements, path, registerItem, setExpanded, spacing, state],
106
- )
107
-
108
- const handleKeyDown = useCallback(
109
- (event: React.KeyboardEvent<HTMLUListElement>) => {
110
- if (!focusedElementRef.current) return
111
-
112
- if (event.key === 'ArrowDown') {
113
- event.preventDefault()
114
-
115
- const nextEl = _findNextItemElement(
116
- stateRef.current,
117
- itemElements,
118
- focusedElementRef.current,
119
- )
120
-
121
- if (nextEl) {
122
- _focusItemElement(nextEl)
123
- setFocusedElement(nextEl)
124
- }
125
-
126
- return
127
- }
128
-
129
- if (event.key === 'ArrowUp') {
130
- event.preventDefault()
131
-
132
- const prevEl = _findPrevItemElement(
133
- stateRef.current,
134
- itemElements,
135
- focusedElementRef.current,
136
- )
137
-
138
- if (prevEl) {
139
- _focusItemElement(prevEl)
140
- setFocusedElement(prevEl)
141
- }
142
-
143
- return
144
- }
145
-
146
- if (event.key === 'ArrowLeft') {
147
- event.preventDefault()
148
-
149
- const itemKey = focusedElementRef.current.getAttribute('data-tree-key')
150
-
151
- if (!itemKey) return
152
-
153
- const itemState = stateRef.current[itemKey]
154
-
155
- if (!itemState) return
156
-
157
- if (itemState.expanded) {
158
- setState((s) => {
159
- const itemState = s[itemKey]
160
-
161
- if (!itemState) return s
162
-
163
- return {...s, [itemKey]: {...itemState, expanded: false}}
164
- })
165
- } else {
166
- const itemPath = itemKey.split('/')
167
-
168
- itemPath.pop()
169
-
170
- const parentKey = itemPath.join('/')
171
- const parentState = parentKey && stateRef.current[parentKey]
172
-
173
- if (parentState) {
174
- parentState.element.focus()
175
- setFocusedElement(parentState.element)
176
- }
177
- }
178
-
179
- return
180
- }
181
-
182
- if (event.key === 'ArrowRight') {
183
- event.preventDefault()
184
-
185
- const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')
186
-
187
- if (!focusedKey) return
188
-
189
- if (!stateRef.current[focusedKey]?.expanded) {
190
- setState((s) => {
191
- const itemState = s[focusedKey]
192
-
193
- if (!itemState) return s
194
-
195
- return {...s, [focusedKey]: {...itemState, expanded: true}}
196
- })
197
- }
198
-
199
- return
200
- }
201
- },
202
- [itemElements],
203
- )
204
-
205
- const handleFocus = useCallback(
206
- (event: React.FocusEvent<HTMLUListElement>) => {
207
- setFocusedElement(event.target)
208
-
209
- // Call the element's `focus` handler
210
- onFocus?.(event)
211
- },
212
- [onFocus],
213
- )
214
-
215
- useEffect(() => {
216
- if (!ref.current) return
217
- const _itemElements = Array.from(
218
- ref.current.querySelectorAll('[data-ui="TreeItem"]'),
219
- ) as HTMLElement[]
220
-
221
- setItemElements(_itemElements)
222
- }, [children])
223
-
224
- return (
225
- <TreeContext.Provider value={contextValue}>
226
- {/* oxlint-disable-next-line interactive-supports-focus */}
227
- <Stack
228
- as="ul"
229
- data-ui="Tree"
230
- {...restProps}
231
- onFocus={handleFocus}
232
- onKeyDown={handleKeyDown}
233
- ref={ref}
234
- role="tree"
235
- gap={spacing}
236
- >
237
- {children}
238
- </Stack>
239
- </TreeContext.Provider>
240
- )
241
- })
242
- Tree.displayName = 'ForwardRef(Tree)'
@@ -1,10 +0,0 @@
1
- import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'
2
- import {TreeContextValue} from './types'
3
-
4
- /**
5
- * @internal
6
- */
7
- export const TreeContext = createGlobalScopedContext<TreeContextValue | null>(
8
- '@sanity/ui/context/tree',
9
- null,
10
- )
@@ -1,29 +0,0 @@
1
- import {Stack} from '../../primitives'
2
- import {useTree} from './useTree'
3
-
4
- export interface TreeGroupProps {
5
- expanded?: boolean
6
- }
7
-
8
- export function TreeGroup(
9
- props: TreeGroupProps &
10
- Omit<React.HTMLProps<HTMLUListElement>, 'as' | 'height' | 'ref' | 'role' | 'wrap'>,
11
- ): React.JSX.Element {
12
- const {children, expanded = false, ...restProps} = props
13
- const tree = useTree()
14
-
15
- return (
16
- <Stack
17
- as="ul"
18
- data-ui="TreeGroup"
19
- {...restProps}
20
- hidden={!expanded}
21
- marginTop={tree.gap}
22
- // oxlint-disable-next-line prefer-tag-over-role
23
- role="group"
24
- gap={tree.gap}
25
- >
26
- {children}
27
- </Stack>
28
- )
29
- }
@@ -1,70 +0,0 @@
1
- /** @vitest-environment jsdom */
2
-
3
- import {beforeEach, describe, expect, it, vi} from 'vitest'
4
-
5
- import {render} from '../../../../test'
6
- import {Box} from '../../primitives'
7
- import {TreeContext} from './treeContext'
8
- import {TreeItem} from './treeItem'
9
- import {TreeContextValue, TreeState} from './types'
10
-
11
- vi.mock('../../primitives', async (importOriginal) => {
12
- const actual = await importOriginal<typeof import('../../primitives')>()
13
-
14
- return {
15
- ...actual,
16
- // oxlint-disable-next-line no-unsafe-type-assertion
17
- Box: vi.fn((props: Record<string, unknown>) => (actual.Box as any).render(props, null)),
18
- }
19
- })
20
-
21
- const treeContextValue: TreeContextValue = {
22
- version: 0.0,
23
- focusedElement: null,
24
- gap: 1,
25
- level: 0,
26
- path: [],
27
- registerItem: () => () => undefined,
28
- setExpanded: () => undefined,
29
- setFocusedElement: () => undefined,
30
- // oxlint-disable-next-line no-deprecated
31
- space: 1,
32
- // oxlint-disable-next-line no-unnecessary-type-assertion
33
- state: {} as TreeState,
34
- }
35
-
36
- function renderTreeItem(props: Partial<React.ComponentProps<typeof TreeItem>> = {}) {
37
- return render(
38
- <TreeContext.Provider value={treeContextValue}>
39
- <TreeItem text="Item" {...props} />
40
- </TreeContext.Provider>,
41
- )
42
- }
43
-
44
- describe('components/treeItem spacing', () => {
45
- const mockedBox = vi.mocked(Box)
46
-
47
- beforeEach(() => {
48
- mockedBox.mockClear()
49
- })
50
-
51
- it('should support `space` and `gap` with the same behavior', () => {
52
- renderTreeItem({space: 2})
53
- expect(mockedBox.mock.calls.map(([props]) => props)).toContainEqual(
54
- expect.objectContaining({marginRight: 2}),
55
- )
56
-
57
- mockedBox.mockClear()
58
- renderTreeItem({gap: 2})
59
- expect(mockedBox.mock.calls.map(([props]) => props)).toContainEqual(
60
- expect.objectContaining({marginRight: 2}),
61
- )
62
- })
63
-
64
- it('should prefer `gap` over `space` when both are provided', () => {
65
- renderTreeItem({gap: 3, space: 1})
66
- const propsList = mockedBox.mock.calls.map(([props]) => props)
67
- expect(propsList).toContainEqual(expect.objectContaining({marginRight: 3}))
68
- expect(propsList).not.toContainEqual(expect.objectContaining({marginRight: 1}))
69
- })
70
- })
@@ -1,225 +0,0 @@
1
- import {ToggleArrowRightIcon} from '@sanity/icons'
2
- import {ThemeFontWeightKey} from '@sanity/ui/theme'
3
- import {startTransition, useCallback, useEffect, useId, useMemo, useRef, useState} from 'react'
4
- import {styled} from 'styled-components'
5
-
6
- import {Box, Flex, Text} from '../../primitives'
7
- import {ElementType} from '../../types'
8
- import {
9
- treeItemBoxStyle,
10
- TreeItemBoxStyleProps,
11
- treeItemRootColorStyle,
12
- treeItemRootStyle,
13
- } from './style'
14
- import {TreeContext} from './treeContext'
15
- import {TreeGroup} from './treeGroup'
16
- import {useTree} from './useTree'
17
-
18
- /**
19
- * @beta
20
- */
21
- export interface TreeItemProps {
22
- expanded?: boolean
23
- fontSize?: number | number[]
24
- icon?: React.ElementType
25
- /**
26
- * Allows passing a custom element type to the link component
27
- */
28
- linkAs?: ElementType
29
- padding?: number | number[]
30
- gap?: number | number[]
31
- /**
32
- * @deprecated Use `gap` instead. `space` will be removed in v4.
33
- */
34
- space?: number | number[]
35
- text?: React.ReactNode
36
- weight?: ThemeFontWeightKey
37
- }
38
-
39
- const StyledTreeItem = styled.li(treeItemRootStyle, treeItemRootColorStyle)
40
-
41
- const TreeItemBox = styled(Box).attrs({forwardedAs: 'a'})<TreeItemBoxStyleProps>(treeItemBoxStyle)
42
-
43
- const ToggleArrowText = styled(Text)`
44
- & > svg {
45
- transition: transform 100ms;
46
- }
47
- `
48
-
49
- /**
50
- * This API might change. DO NOT USE IN PRODUCTION.
51
- * @beta
52
- */
53
- export function TreeItem(
54
- props: TreeItemProps & Omit<React.HTMLProps<HTMLLIElement>, 'as' | 'ref' | 'role'>,
55
- ): React.JSX.Element {
56
- const {
57
- children,
58
- expanded: expandedProp = false,
59
- fontSize = 1,
60
- href,
61
- icon: IconComponent,
62
- id: idProp,
63
- linkAs,
64
- muted,
65
- onClick,
66
- padding = 2,
67
- selected = false,
68
- gap,
69
- // oxlint-disable-next-line no-deprecated
70
- space: deprecated_space = 2,
71
- text,
72
- weight,
73
- ...restProps
74
- } = props
75
- const spacing = gap === undefined ? deprecated_space : gap
76
- const [rootElement, _setRootElement] = useState<HTMLLIElement | null>(null)
77
- /**
78
- * The startTransition wrapper here is to avoid an issue when on React 18 where this error can happen:
79
- * >Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.
80
- * This doesn't happen on React 19 due to automatic batching of all state updates, the startTransition wrapper here gives a type of batching for 18 users in a way that still works with 19.
81
- * NOTE: The startTransition wrapper is not needed in UI v4, since the baseline there is React 19.
82
- */
83
- const setRootElement = useCallback((node: HTMLLIElement | null) => {
84
- startTransition(() => _setRootElement(node))
85
- }, [])
86
-
87
- const treeitemRef = useRef<HTMLDivElement | null>(null)
88
- const tree = useTree()
89
- const {path, registerItem, setExpanded, setFocusedElement} = tree
90
- const _id = useId()
91
- const id = idProp || _id
92
- const [itemPath, itemKey] = useMemo(() => {
93
- const itemPath = path.concat([id || ''])
94
- return [itemPath, itemPath.join('/')]
95
- }, [id, path])
96
- const itemState = tree.state[itemKey]
97
- const focused = tree.focusedElement === rootElement
98
- const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false
99
- const tabIndex = tree.focusedElement && tree.focusedElement === rootElement ? 0 : -1
100
- const contextValue = useMemo(
101
- () => ({...tree, level: tree.level + 1, path: itemPath}),
102
- [itemPath, tree],
103
- )
104
-
105
- const handleClick = useCallback(
106
- (event: React.MouseEvent<HTMLLIElement>) => {
107
- if (onClick) onClick(event)
108
-
109
- const target = event.target
110
-
111
- if (
112
- target instanceof HTMLElement &&
113
- (target.getAttribute('data-ui') === 'TreeItem' ||
114
- target.closest('[data-ui="TreeItem__box"]'))
115
- ) {
116
- event.stopPropagation()
117
- setExpanded(itemKey, !expanded)
118
- setFocusedElement(rootElement)
119
- }
120
- },
121
- [expanded, itemKey, onClick, rootElement, setExpanded, setFocusedElement],
122
- )
123
-
124
- const handleKeyDown = useCallback(
125
- (event: React.KeyboardEvent<HTMLElement>) => {
126
- if (focused && event.key === 'Enter') {
127
- const el = treeitemRef.current || rootElement
128
-
129
- el?.click()
130
- }
131
- },
132
- [focused, rootElement],
133
- )
134
-
135
- useEffect(() => {
136
- if (!rootElement) return
137
-
138
- return registerItem(rootElement, itemKey, expanded, selected)
139
- }, [expanded, itemKey, registerItem, rootElement, selected])
140
-
141
- const content = (
142
- <Flex padding={padding}>
143
- <Box
144
- marginRight={spacing}
145
- style={{
146
- visibility: IconComponent || children ? 'visible' : 'hidden',
147
- pointerEvents: 'none',
148
- }}
149
- >
150
- {IconComponent && (
151
- <Text muted={muted} size={fontSize} weight={weight}>
152
- <IconComponent />
153
- </Text>
154
- )}
155
- {!IconComponent && (
156
- <ToggleArrowText muted={muted} size={fontSize} weight={weight}>
157
- <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />
158
- </ToggleArrowText>
159
- )}
160
- </Box>
161
- <Box flex={1}>
162
- <Text muted={muted} size={fontSize} textOverflow="ellipsis" weight={weight}>
163
- {text}
164
- </Text>
165
- </Box>
166
- </Flex>
167
- )
168
-
169
- if (href) {
170
- return (
171
- <StyledTreeItem
172
- data-selected={selected ? '' : undefined}
173
- data-tree-id={id}
174
- data-tree-key={itemKey}
175
- data-ui="TreeItem"
176
- {...restProps}
177
- onClick={handleClick}
178
- ref={setRootElement}
179
- role="none"
180
- >
181
- <TreeItemBox
182
- $level={tree.level}
183
- aria-expanded={expanded}
184
- as={linkAs}
185
- data-ui="TreeItem__box"
186
- href={href}
187
- ref={treeitemRef}
188
- role="treeitem"
189
- tabIndex={tabIndex}
190
- >
191
- {content}
192
- </TreeItemBox>
193
-
194
- <TreeContext.Provider value={contextValue}>
195
- {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}
196
- </TreeContext.Provider>
197
- </StyledTreeItem>
198
- )
199
- }
200
-
201
- return (
202
- <StyledTreeItem
203
- data-selected={selected ? '' : undefined}
204
- data-ui="TreeItem"
205
- data-tree-id={id}
206
- data-tree-key={itemKey}
207
- {...restProps}
208
- aria-expanded={expanded}
209
- onClick={handleClick}
210
- onKeyDown={handleKeyDown}
211
- ref={setRootElement}
212
- role="treeitem"
213
- tabIndex={tabIndex}
214
- >
215
- <TreeItemBox $level={tree.level} as="div" data-ui="TreeItem__box">
216
- {content}
217
- </TreeItemBox>
218
-
219
- <TreeContext.Provider value={contextValue}>
220
- {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}
221
- </TreeContext.Provider>
222
- </StyledTreeItem>
223
- )
224
- }
225
- TreeItem.displayName = 'TreeItem'
@@ -1,25 +0,0 @@
1
- /**
2
- * @beta
3
- */
4
- export interface TreeState {
5
- [key: string]: {element: HTMLElement; expanded: boolean} | undefined
6
- }
7
-
8
- /**
9
- * @beta
10
- */
11
- export interface TreeContextValue {
12
- version: 0.0
13
- focusedElement: HTMLElement | null
14
- level: number
15
- path: string[]
16
- registerItem: (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => void
17
- setExpanded: (path: string, expanded: boolean) => void
18
- setFocusedElement: (focusedElement: HTMLElement | null) => void
19
- gap: number | number[]
20
- /**
21
- * @deprecated Use `gap` instead. `space` will be removed in v4.
22
- */
23
- space: number | number[]
24
- state: TreeState
25
- }
@@ -1,17 +0,0 @@
1
- import {useContext} from 'react'
2
-
3
- import {TreeContext} from './treeContext'
4
- import {TreeContextValue} from './types'
5
-
6
- /**
7
- * @beta
8
- */
9
- export function useTree(): TreeContextValue {
10
- const tree = useContext(TreeContext)
11
-
12
- if (!tree) {
13
- throw new Error('Tree: missing context value')
14
- }
15
-
16
- return tree
17
- }
@@ -1,79 +0,0 @@
1
- import type {Transition, Variant} from 'motion/react'
2
-
3
- /**
4
- * @internal
5
- */
6
- export const EMPTY_ARRAY: never[] = []
7
-
8
- /**
9
- * @internal
10
- */
11
- export const EMPTY_RECORD: Record<string, never> = {}
12
-
13
- const POPOVER_MOTION_DURATION = 0.2
14
-
15
- /**
16
- * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.
17
- * @internal
18
- */
19
- export const POPOVER_MOTION_PROPS: {
20
- card: {
21
- initial: Variant
22
- hidden: Variant
23
- visible: Variant
24
- scaleIn: Variant
25
- scaleOut: Variant
26
- }
27
- children: {
28
- hidden: Variant
29
- visible: Variant
30
- }
31
- transition: Transition
32
- } = {
33
- card: {
34
- initial: {
35
- scale: 0.97,
36
- willChange: 'transform',
37
- },
38
- hidden: {
39
- opacity: 0,
40
- },
41
- visible: {
42
- opacity: 1,
43
- transition: {
44
- when: 'beforeChildren',
45
- duration: POPOVER_MOTION_DURATION / 2,
46
- },
47
- },
48
- scaleIn: {
49
- scale: 1,
50
- },
51
- scaleOut: {
52
- scale: 0.97,
53
- },
54
- },
55
- children: {
56
- hidden: {
57
- opacity: 0,
58
- },
59
- visible: {
60
- opacity: 1,
61
- },
62
- },
63
- transition: {
64
- type: 'spring',
65
- visualDuration: POPOVER_MOTION_DURATION,
66
- bounce: 0.25,
67
- },
68
- }
69
-
70
- /**
71
- * @internal
72
- * @deprecated No longer used.
73
- */
74
- export const FLOATING_STATIC_SIDES: Record<string, 'bottom' | 'left' | 'top' | 'right'> = {
75
- top: 'bottom',
76
- right: 'left',
77
- bottom: 'top',
78
- left: 'right',
79
- }