@sanity/ui 3.3.1 → 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 (651) hide show
  1. package/dist/_visual-editing.d.mts +2 -1126
  2. package/dist/_visual-editing.d.ts +2 -1126
  3. package/dist/_visual-editing.js +3 -31
  4. package/dist/_visual-editing.mjs +2 -31
  5. package/dist/index.d.mts +555 -2769
  6. package/dist/index.d.mts.map +1 -0
  7. package/dist/index.d.ts +555 -2769
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +2982 -1934
  10. package/dist/index.mjs +2950 -1903
  11. package/dist/index.mjs.map +1 -1
  12. package/dist/refractor.js +16 -0
  13. package/dist/refractor.mjs +21 -0
  14. package/dist/refractor.mjs.map +1 -0
  15. package/dist/tabList.js +3804 -0
  16. package/dist/tabList.mjs +3355 -0
  17. package/dist/tabList.mjs.map +1 -0
  18. package/dist/theme.d.mts +927 -1227
  19. package/dist/theme.d.mts.map +1 -0
  20. package/dist/theme.d.ts +927 -1227
  21. package/dist/theme.d.ts.map +1 -0
  22. package/dist/theme.js +3 -4127
  23. package/dist/theme.mjs +2 -4127
  24. package/dist/theme2.d.mts +2 -0
  25. package/dist/theme2.d.ts +2 -0
  26. package/dist/theme2.js +4104 -0
  27. package/dist/theme2.mjs +3851 -0
  28. package/dist/theme2.mjs.map +1 -0
  29. package/dist/useTheme.d.mts +1451 -0
  30. package/dist/useTheme.d.mts.map +1 -0
  31. package/dist/useTheme.d.ts +1451 -0
  32. package/dist/useTheme.d.ts.map +1 -0
  33. package/package.json +48 -106
  34. package/dist/_chunks-cjs/_visual-editing.js +0 -5899
  35. package/dist/_chunks-cjs/_visual-editing.js.map +0 -1
  36. package/dist/_chunks-cjs/refractor.js +0 -23
  37. package/dist/_chunks-cjs/refractor.js.map +0 -1
  38. package/dist/_chunks-es/_visual-editing.mjs +0 -5905
  39. package/dist/_chunks-es/_visual-editing.mjs.map +0 -1
  40. package/dist/_chunks-es/refractor.mjs +0 -26
  41. package/dist/_chunks-es/refractor.mjs.map +0 -1
  42. package/dist/_visual-editing.js.map +0 -1
  43. package/dist/_visual-editing.mjs.map +0 -1
  44. package/dist/index.js.map +0 -1
  45. package/dist/theme.js.map +0 -1
  46. package/dist/theme.mjs.map +0 -1
  47. package/exports/_visual-editing.ts +0 -31
  48. package/exports/index.ts +0 -1
  49. package/exports/theme.ts +0 -1
  50. package/src/core/__workshop__/constants.ts +0 -293
  51. package/src/core/_compat.ts +0 -264
  52. package/src/core/components/autocomplete/__mocks__/apiStore.ts +0 -49
  53. package/src/core/components/autocomplete/__mocks__/countries.ts +0 -245
  54. package/src/core/components/autocomplete/__workshop__/async.tsx +0 -156
  55. package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +0 -137
  56. package/src/core/components/autocomplete/__workshop__/custom.tsx +0 -89
  57. package/src/core/components/autocomplete/__workshop__/example.tsx +0 -79
  58. package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +0 -36
  59. package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +0 -294
  60. package/src/core/components/autocomplete/__workshop__/index.ts +0 -39
  61. package/src/core/components/autocomplete/__workshop__/types.ts +0 -4
  62. package/src/core/components/autocomplete/autocomplete.styles.tsx +0 -39
  63. package/src/core/components/autocomplete/autocomplete.tsx +0 -767
  64. package/src/core/components/autocomplete/autocompleteOption.tsx +0 -45
  65. package/src/core/components/autocomplete/autocompleteReducer.ts +0 -47
  66. package/src/core/components/autocomplete/constants.ts +0 -28
  67. package/src/core/components/autocomplete/index.ts +0 -2
  68. package/src/core/components/autocomplete/types.ts +0 -108
  69. package/src/core/components/breadcrumbs/__workshop__/example.tsx +0 -62
  70. package/src/core/components/breadcrumbs/__workshop__/index.ts +0 -14
  71. package/src/core/components/breadcrumbs/breadcrumbs.styles.ts +0 -18
  72. package/src/core/components/breadcrumbs/breadcrumbs.test.tsx +0 -51
  73. package/src/core/components/breadcrumbs/breadcrumbs.tsx +0 -133
  74. package/src/core/components/breadcrumbs/index.ts +0 -1
  75. package/src/core/components/dialog/__workshop__/activate.tsx +0 -134
  76. package/src/core/components/dialog/__workshop__/autoFocus.tsx +0 -29
  77. package/src/core/components/dialog/__workshop__/index.ts +0 -19
  78. package/src/core/components/dialog/__workshop__/layering.tsx +0 -41
  79. package/src/core/components/dialog/__workshop__/nested.tsx +0 -72
  80. package/src/core/components/dialog/__workshop__/onScroll.tsx +0 -39
  81. package/src/core/components/dialog/__workshop__/panes.tsx +0 -82
  82. package/src/core/components/dialog/__workshop__/position.tsx +0 -30
  83. package/src/core/components/dialog/__workshop__/props.tsx +0 -75
  84. package/src/core/components/dialog/__workshop__/provider.tsx +0 -11
  85. package/src/core/components/dialog/__workshop__/wrapped.tsx +0 -76
  86. package/src/core/components/dialog/dialog.tsx +0 -430
  87. package/src/core/components/dialog/dialogContext.ts +0 -20
  88. package/src/core/components/dialog/dialogProvider.tsx +0 -35
  89. package/src/core/components/dialog/index.ts +0 -4
  90. package/src/core/components/dialog/styles.ts +0 -77
  91. package/src/core/components/dialog/useDialog.ts +0 -11
  92. package/src/core/components/hotkeys/__workshop__/index.ts +0 -14
  93. package/src/core/components/hotkeys/__workshop__/plain.tsx +0 -9
  94. package/src/core/components/hotkeys/hotkeys.test.tsx +0 -42
  95. package/src/core/components/hotkeys/hotkeys.tsx +0 -66
  96. package/src/core/components/hotkeys/index.ts +0 -1
  97. package/src/core/components/index.ts +0 -9
  98. package/src/core/components/menu/__workshop__/asComponent.tsx +0 -45
  99. package/src/core/components/menu/__workshop__/avatarMenu.tsx +0 -51
  100. package/src/core/components/menu/__workshop__/closableMenuButton.tsx +0 -46
  101. package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +0 -134
  102. package/src/core/components/menu/__workshop__/customMenuItem.tsx +0 -45
  103. package/src/core/components/menu/__workshop__/customSelectedState.tsx +0 -39
  104. package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +0 -40
  105. package/src/core/components/menu/__workshop__/groups.tsx +0 -156
  106. package/src/core/components/menu/__workshop__/index.ts +0 -89
  107. package/src/core/components/menu/__workshop__/menuButton.tsx +0 -80
  108. package/src/core/components/menu/__workshop__/menuGroupRight.tsx +0 -65
  109. package/src/core/components/menu/__workshop__/nestedMenu.tsx +0 -22
  110. package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +0 -41
  111. package/src/core/components/menu/__workshop__/selectedItem.tsx +0 -69
  112. package/src/core/components/menu/__workshop__/shouldFocus.tsx +0 -47
  113. package/src/core/components/menu/__workshop__/tones.tsx +0 -25
  114. package/src/core/components/menu/__workshop__/withoutArrow.tsx +0 -32
  115. package/src/core/components/menu/helpers.ts +0 -82
  116. package/src/core/components/menu/index.ts +0 -5
  117. package/src/core/components/menu/menu.spacing.test.tsx +0 -63
  118. package/src/core/components/menu/menu.test.tsx +0 -125
  119. package/src/core/components/menu/menu.tsx +0 -178
  120. package/src/core/components/menu/menuButton.tsx +0 -268
  121. package/src/core/components/menu/menuContext.ts +0 -18
  122. package/src/core/components/menu/menuDivider.ts +0 -23
  123. package/src/core/components/menu/menuGroup.spacing.test.tsx +0 -63
  124. package/src/core/components/menu/menuGroup.tsx +0 -233
  125. package/src/core/components/menu/menuItem.spacing.test.tsx +0 -59
  126. package/src/core/components/menu/menuItem.tsx +0 -197
  127. package/src/core/components/menu/useMenu.ts +0 -21
  128. package/src/core/components/menu/useMenuController.ts +0 -231
  129. package/src/core/components/skeleton/__workshop__/delay.tsx +0 -70
  130. package/src/core/components/skeleton/__workshop__/index.ts +0 -11
  131. package/src/core/components/skeleton/__workshop__/skeleton.tsx +0 -64
  132. package/src/core/components/skeleton/index.ts +0 -2
  133. package/src/core/components/skeleton/skeleton.tsx +0 -57
  134. package/src/core/components/skeleton/styles.ts +0 -50
  135. package/src/core/components/skeleton/textSkeleton.tsx +0 -122
  136. package/src/core/components/tab/__workshop__/example.tsx +0 -79
  137. package/src/core/components/tab/__workshop__/index.ts +0 -14
  138. package/src/core/components/tab/index.ts +0 -3
  139. package/src/core/components/tab/tab.tsx +0 -101
  140. package/src/core/components/tab/tabList.test.tsx +0 -48
  141. package/src/core/components/tab/tabList.tsx +0 -70
  142. package/src/core/components/tab/tabPanel.tsx +0 -39
  143. package/src/core/components/toast/__workshop__/hook.tsx +0 -71
  144. package/src/core/components/toast/__workshop__/index.ts +0 -19
  145. package/src/core/components/toast/__workshop__/toast.tsx +0 -26
  146. package/src/core/components/toast/index.ts +0 -4
  147. package/src/core/components/toast/styles.ts +0 -77
  148. package/src/core/components/toast/toast.test.tsx +0 -101
  149. package/src/core/components/toast/toast.tsx +0 -198
  150. package/src/core/components/toast/toastContext.ts +0 -7
  151. package/src/core/components/toast/toastLayer.tsx +0 -51
  152. package/src/core/components/toast/toastProvider.tsx +0 -113
  153. package/src/core/components/toast/toastState.ts +0 -6
  154. package/src/core/components/toast/types.ts +0 -26
  155. package/src/core/components/toast/useToast.ts +0 -25
  156. package/src/core/components/tree/__workshop__/basic.perf.ts +0 -19
  157. package/src/core/components/tree/__workshop__/basic.tsx +0 -105
  158. package/src/core/components/tree/__workshop__/index.ts +0 -21
  159. package/src/core/components/tree/__workshop__/tabFromElement.tsx +0 -84
  160. package/src/core/components/tree/helpers.ts +0 -105
  161. package/src/core/components/tree/index.ts +0 -4
  162. package/src/core/components/tree/style.ts +0 -105
  163. package/src/core/components/tree/tree.test.tsx +0 -55
  164. package/src/core/components/tree/tree.tsx +0 -240
  165. package/src/core/components/tree/treeContext.ts +0 -10
  166. package/src/core/components/tree/treeGroup.tsx +0 -28
  167. package/src/core/components/tree/treeItem.test.tsx +0 -65
  168. package/src/core/components/tree/treeItem.tsx +0 -224
  169. package/src/core/components/tree/types.ts +0 -25
  170. package/src/core/components/tree/useTree.ts +0 -17
  171. package/src/core/constants.ts +0 -79
  172. package/src/core/helpers/animation.ts +0 -27
  173. package/src/core/helpers/element.ts +0 -55
  174. package/src/core/helpers/focus.ts +0 -100
  175. package/src/core/helpers/index.ts +0 -4
  176. package/src/core/helpers/scroll.ts +0 -15
  177. package/src/core/hooks/index.ts +0 -12
  178. package/src/core/hooks/useArrayProp.ts +0 -17
  179. package/src/core/hooks/useClickOutside.test.tsx +0 -482
  180. package/src/core/hooks/useClickOutside.ts +0 -118
  181. package/src/core/hooks/useClickOutsideEvent.test.tsx +0 -115
  182. package/src/core/hooks/useClickOutsideEvent.ts +0 -73
  183. package/src/core/hooks/useCustomValidity.ts +0 -13
  184. package/src/core/hooks/useDelayed.test.ts +0 -88
  185. package/src/core/hooks/useDelayedState.ts +0 -36
  186. package/src/core/hooks/useElementRect/__workshop__/example.tsx +0 -32
  187. package/src/core/hooks/useElementRect/__workshop__/index.ts +0 -14
  188. package/src/core/hooks/useElementRect/index.ts +0 -1
  189. package/src/core/hooks/useElementRect/useElementRect.ts +0 -13
  190. package/src/core/hooks/useElementSize.ts +0 -19
  191. package/src/core/hooks/useForwardedRef.ts +0 -19
  192. package/src/core/hooks/useGlobalKeyDown.ts +0 -24
  193. package/src/core/hooks/useIsomorphicEffect.ts +0 -7
  194. package/src/core/hooks/useMatchMedia.ts +0 -28
  195. package/src/core/hooks/useMediaIndex/__workshop__/index.ts +0 -14
  196. package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +0 -14
  197. package/src/core/hooks/useMediaIndex/index.ts +0 -1
  198. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -36
  199. package/src/core/hooks/useMediaIndex/useMediaIndex.ts +0 -102
  200. package/src/core/hooks/useMounted.ts +0 -15
  201. package/src/core/hooks/usePrefersDark.hydration.test.tsx +0 -56
  202. package/src/core/hooks/usePrefersDark.test.tsx +0 -19
  203. package/src/core/hooks/usePrefersDark.ts +0 -16
  204. package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -56
  205. package/src/core/hooks/usePrefersReducedMotion.test.tsx +0 -19
  206. package/src/core/hooks/usePrefersReducedMotion.ts +0 -16
  207. package/src/core/index.ts +0 -10
  208. package/src/core/lib/createGlobalScopedContext.ts +0 -36
  209. package/src/core/lib/globalScope.ts +0 -19
  210. package/src/core/lib/isRecord.ts +0 -3
  211. package/src/core/middleware/origin.ts +0 -47
  212. package/src/core/observers/elementSizeObserver.ts +0 -116
  213. package/src/core/observers/index.ts +0 -2
  214. package/src/core/observers/resizeObserver.ts +0 -9
  215. package/src/core/primitives/_selectable/index.ts +0 -1
  216. package/src/core/primitives/_selectable/selectable.tsx +0 -15
  217. package/src/core/primitives/_selectable/style.ts +0 -115
  218. package/src/core/primitives/avatar/__workshop__/asButton.tsx +0 -14
  219. package/src/core/primitives/avatar/__workshop__/index.ts +0 -29
  220. package/src/core/primitives/avatar/__workshop__/stack.tsx +0 -25
  221. package/src/core/primitives/avatar/__workshop__/withinButton.tsx +0 -63
  222. package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +0 -70
  223. package/src/core/primitives/avatar/avatar.tsx +0 -200
  224. package/src/core/primitives/avatar/avatarCounter.tsx +0 -91
  225. package/src/core/primitives/avatar/avatarStack.tsx +0 -100
  226. package/src/core/primitives/avatar/index.ts +0 -4
  227. package/src/core/primitives/avatar/styles.ts +0 -167
  228. package/src/core/primitives/avatar/types.ts +0 -17
  229. package/src/core/primitives/badge/__workshop__/index.ts +0 -19
  230. package/src/core/primitives/badge/__workshop__/props.tsx +0 -30
  231. package/src/core/primitives/badge/__workshop__/tones.tsx +0 -21
  232. package/src/core/primitives/badge/badge.test.tsx +0 -16
  233. package/src/core/primitives/badge/badge.tsx +0 -70
  234. package/src/core/primitives/badge/index.ts +0 -1
  235. package/src/core/primitives/badge/styles.ts +0 -20
  236. package/src/core/primitives/badge/types.ts +0 -8
  237. package/src/core/primitives/box/__workshop__/asComponent.tsx +0 -31
  238. package/src/core/primitives/box/__workshop__/index.ts +0 -24
  239. package/src/core/primitives/box/__workshop__/props.tsx +0 -20
  240. package/src/core/primitives/box/__workshop__/responsive.tsx +0 -20
  241. package/src/core/primitives/box/box.test.tsx +0 -142
  242. package/src/core/primitives/box/box.tsx +0 -154
  243. package/src/core/primitives/box/index.ts +0 -1
  244. package/src/core/primitives/button/__workshop__/custom.tsx +0 -51
  245. package/src/core/primitives/button/__workshop__/customIcons.tsx +0 -30
  246. package/src/core/primitives/button/__workshop__/disabled.tsx +0 -74
  247. package/src/core/primitives/button/__workshop__/index.ts +0 -59
  248. package/src/core/primitives/button/__workshop__/mixedChildren.tsx +0 -12
  249. package/src/core/primitives/button/__workshop__/props.tsx +0 -55
  250. package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +0 -36
  251. package/src/core/primitives/button/__workshop__/stacked.tsx +0 -58
  252. package/src/core/primitives/button/__workshop__/styled1.tsx +0 -17
  253. package/src/core/primitives/button/__workshop__/styled2.tsx +0 -19
  254. package/src/core/primitives/button/__workshop__/uploadButton.tsx +0 -28
  255. package/src/core/primitives/button/button.test.tsx +0 -82
  256. package/src/core/primitives/button/button.tsx +0 -210
  257. package/src/core/primitives/button/index.ts +0 -1
  258. package/src/core/primitives/button/styles.ts +0 -117
  259. package/src/core/primitives/card/__workshop__/allTones.tsx +0 -25
  260. package/src/core/primitives/card/__workshop__/asButton.tsx +0 -107
  261. package/src/core/primitives/card/__workshop__/asComponent.tsx +0 -27
  262. package/src/core/primitives/card/__workshop__/checkered.tsx +0 -26
  263. package/src/core/primitives/card/__workshop__/index.ts +0 -18
  264. package/src/core/primitives/card/__workshop__/interactive.tsx +0 -30
  265. package/src/core/primitives/card/__workshop__/listNavigation.tsx +0 -80
  266. package/src/core/primitives/card/__workshop__/props.tsx +0 -53
  267. package/src/core/primitives/card/__workshop__/selected.tsx +0 -94
  268. package/src/core/primitives/card/__workshop__/styled.tsx +0 -14
  269. package/src/core/primitives/card/card.tsx +0 -128
  270. package/src/core/primitives/card/index.ts +0 -2
  271. package/src/core/primitives/card/styles.ts +0 -147
  272. package/src/core/primitives/card/types.ts +0 -11
  273. package/src/core/primitives/checkbox/__workshop__/example.tsx +0 -25
  274. package/src/core/primitives/checkbox/__workshop__/index.ts +0 -13
  275. package/src/core/primitives/checkbox/__workshop__/props.tsx +0 -33
  276. package/src/core/primitives/checkbox/__workshop__/readOnly.tsx +0 -16
  277. package/src/core/primitives/checkbox/__workshop__/tones.tsx +0 -28
  278. package/src/core/primitives/checkbox/checkbox.tsx +0 -73
  279. package/src/core/primitives/checkbox/index.ts +0 -1
  280. package/src/core/primitives/checkbox/styles.ts +0 -128
  281. package/src/core/primitives/code/__workshop__/index.ts +0 -19
  282. package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +0 -48
  283. package/src/core/primitives/code/__workshop__/props.tsx +0 -21
  284. package/src/core/primitives/code/code.tsx +0 -55
  285. package/src/core/primitives/code/index.ts +0 -1
  286. package/src/core/primitives/code/refractor.tsx +0 -20
  287. package/src/core/primitives/code/styles.ts +0 -77
  288. package/src/core/primitives/container/__workshop__/example.tsx +0 -20
  289. package/src/core/primitives/container/__workshop__/index.ts +0 -8
  290. package/src/core/primitives/container/container.tsx +0 -54
  291. package/src/core/primitives/container/index.ts +0 -2
  292. package/src/core/primitives/container/styles.ts +0 -23
  293. package/src/core/primitives/container/types.ts +0 -6
  294. package/src/core/primitives/flex/__workshop__/example.tsx +0 -34
  295. package/src/core/primitives/flex/__workshop__/gap.tsx +0 -25
  296. package/src/core/primitives/flex/__workshop__/index.ts +0 -11
  297. package/src/core/primitives/flex/flex.tsx +0 -64
  298. package/src/core/primitives/flex/index.ts +0 -1
  299. package/src/core/primitives/grid/__workshop__/index.ts +0 -10
  300. package/src/core/primitives/grid/__workshop__/responsive.tsx +0 -54
  301. package/src/core/primitives/grid/grid.test.tsx +0 -80
  302. package/src/core/primitives/grid/grid.tsx +0 -74
  303. package/src/core/primitives/grid/index.ts +0 -1
  304. package/src/core/primitives/heading/__workshop__/index.ts +0 -19
  305. package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +0 -54
  306. package/src/core/primitives/heading/__workshop__/plain.tsx +0 -32
  307. package/src/core/primitives/heading/heading.tsx +0 -88
  308. package/src/core/primitives/heading/index.ts +0 -1
  309. package/src/core/primitives/heading/styles.ts +0 -64
  310. package/src/core/primitives/heading/types.ts +0 -7
  311. package/src/core/primitives/index.ts +0 -27
  312. package/src/core/primitives/inline/__workshop__/index.ts +0 -8
  313. package/src/core/primitives/inline/__workshop__/plain.tsx +0 -27
  314. package/src/core/primitives/inline/index.ts +0 -1
  315. package/src/core/primitives/inline/inline.test.tsx +0 -51
  316. package/src/core/primitives/inline/inline.tsx +0 -63
  317. package/src/core/primitives/inline/styles.ts +0 -32
  318. package/src/core/primitives/inline/types.ts +0 -6
  319. package/src/core/primitives/kbd/__workshop__/index.ts +0 -8
  320. package/src/core/primitives/kbd/__workshop__/plain.tsx +0 -9
  321. package/src/core/primitives/kbd/index.ts +0 -1
  322. package/src/core/primitives/kbd/kbd.tsx +0 -69
  323. package/src/core/primitives/label/__workshop__/index.ts +0 -19
  324. package/src/core/primitives/label/__workshop__/opticalAlignment.tsx +0 -48
  325. package/src/core/primitives/label/__workshop__/plain.tsx +0 -24
  326. package/src/core/primitives/label/index.ts +0 -1
  327. package/src/core/primitives/label/label.tsx +0 -87
  328. package/src/core/primitives/label/styles.ts +0 -45
  329. package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +0 -77
  330. package/src/core/primitives/popover/__workshop__/MarginsStory.tsx +0 -31
  331. package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
  332. package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -11
  333. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +0 -71
  334. package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +0 -71
  335. package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +0 -89
  336. package/src/core/primitives/popover/__workshop__/TestStory.tsx +0 -97
  337. package/src/core/primitives/popover/__workshop__/index.ts +0 -49
  338. package/src/core/primitives/popover/constants.ts +0 -22
  339. package/src/core/primitives/popover/floating-ui/size.ts +0 -99
  340. package/src/core/primitives/popover/helpers.ts +0 -31
  341. package/src/core/primitives/popover/index.ts +0 -2
  342. package/src/core/primitives/popover/popover.tsx +0 -511
  343. package/src/core/primitives/popover/popoverCard.tsx +0 -166
  344. package/src/core/primitives/popover/types.ts +0 -7
  345. package/src/core/primitives/radio/__workshop__/example.tsx +0 -63
  346. package/src/core/primitives/radio/__workshop__/index.ts +0 -11
  347. package/src/core/primitives/radio/__workshop__/plain.tsx +0 -28
  348. package/src/core/primitives/radio/index.ts +0 -1
  349. package/src/core/primitives/radio/radio.tsx +0 -51
  350. package/src/core/primitives/radio/styles.ts +0 -117
  351. package/src/core/primitives/select/__workshop__/index.ts +0 -11
  352. package/src/core/primitives/select/__workshop__/plain.tsx +0 -27
  353. package/src/core/primitives/select/__workshop__/readOnly.tsx +0 -23
  354. package/src/core/primitives/select/index.ts +0 -1
  355. package/src/core/primitives/select/select.test.tsx +0 -52
  356. package/src/core/primitives/select/select.tsx +0 -94
  357. package/src/core/primitives/select/styles.ts +0 -166
  358. package/src/core/primitives/spinner/__workshop__/Props.tsx +0 -15
  359. package/src/core/primitives/spinner/__workshop__/index.ts +0 -14
  360. package/src/core/primitives/spinner/index.ts +0 -1
  361. package/src/core/primitives/spinner/spinner.tsx +0 -46
  362. package/src/core/primitives/stack/__workshop__/index.ts +0 -14
  363. package/src/core/primitives/stack/__workshop__/plain.tsx +0 -32
  364. package/src/core/primitives/stack/index.ts +0 -1
  365. package/src/core/primitives/stack/stack.test.tsx +0 -57
  366. package/src/core/primitives/stack/stack.tsx +0 -57
  367. package/src/core/primitives/stack/styles.ts +0 -32
  368. package/src/core/primitives/switch/__workshop__/example.tsx +0 -23
  369. package/src/core/primitives/switch/__workshop__/index.ts +0 -11
  370. package/src/core/primitives/switch/__workshop__/props.tsx +0 -21
  371. package/src/core/primitives/switch/index.ts +0 -1
  372. package/src/core/primitives/switch/styles.ts +0 -173
  373. package/src/core/primitives/switch/switch.tsx +0 -68
  374. package/src/core/primitives/text/__workshop__/colored.tsx +0 -30
  375. package/src/core/primitives/text/__workshop__/example.tsx +0 -39
  376. package/src/core/primitives/text/__workshop__/index.ts +0 -24
  377. package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +0 -48
  378. package/src/core/primitives/text/index.ts +0 -1
  379. package/src/core/primitives/text/styles.ts +0 -74
  380. package/src/core/primitives/text/text.tsx +0 -89
  381. package/src/core/primitives/textArea/__workshop__/index.ts +0 -14
  382. package/src/core/primitives/textArea/__workshop__/plain.tsx +0 -50
  383. package/src/core/primitives/textArea/index.ts +0 -1
  384. package/src/core/primitives/textArea/textArea.tsx +0 -120
  385. package/src/core/primitives/textInput/__workshop__/clearButton.tsx +0 -30
  386. package/src/core/primitives/textInput/__workshop__/customValidity.tsx +0 -17
  387. package/src/core/primitives/textInput/__workshop__/index.ts +0 -44
  388. package/src/core/primitives/textInput/__workshop__/plain.tsx +0 -98
  389. package/src/core/primitives/textInput/__workshop__/readOnly.tsx +0 -9
  390. package/src/core/primitives/textInput/__workshop__/states.tsx +0 -53
  391. package/src/core/primitives/textInput/__workshop__/tones.tsx +0 -277
  392. package/src/core/primitives/textInput/__workshop__/typed.tsx +0 -23
  393. package/src/core/primitives/textInput/index.ts +0 -1
  394. package/src/core/primitives/textInput/textInput.test.tsx +0 -48
  395. package/src/core/primitives/textInput/textInput.tsx +0 -395
  396. package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +0 -102
  397. package/src/core/primitives/tooltip/__workshop__/index.ts +0 -29
  398. package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +0 -74
  399. package/src/core/primitives/tooltip/__workshop__/props.tsx +0 -107
  400. package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +0 -86
  401. package/src/core/primitives/tooltip/constants.ts +0 -23
  402. package/src/core/primitives/tooltip/index.ts +0 -2
  403. package/src/core/primitives/tooltip/tooltip.test.tsx +0 -452
  404. package/src/core/primitives/tooltip/tooltip.tsx +0 -495
  405. package/src/core/primitives/tooltip/tooltipCard.tsx +0 -109
  406. package/src/core/primitives/tooltip/tooltipDelayGroup/index.ts +0 -4
  407. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +0 -11
  408. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -57
  409. package/src/core/primitives/tooltip/tooltipDelayGroup/types.ts +0 -10
  410. package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -13
  411. package/src/core/primitives/types.ts +0 -179
  412. package/src/core/styles/border/borderStyle.ts +0 -56
  413. package/src/core/styles/border/index.ts +0 -2
  414. package/src/core/styles/border/types.ts +0 -10
  415. package/src/core/styles/box/boxStyle.ts +0 -69
  416. package/src/core/styles/box/index.ts +0 -2
  417. package/src/core/styles/box/types.ts +0 -11
  418. package/src/core/styles/card/_cardColorStyle.ts +0 -108
  419. package/src/core/styles/card/index.ts +0 -1
  420. package/src/core/styles/flex/flexItemStyle.ts +0 -27
  421. package/src/core/styles/flex/flexStyle.ts +0 -70
  422. package/src/core/styles/flex/index.ts +0 -3
  423. package/src/core/styles/flex/types.ts +0 -25
  424. package/src/core/styles/focusRing/index.ts +0 -25
  425. package/src/core/styles/font/codeFontStyle.ts +0 -13
  426. package/src/core/styles/font/headingFontStyle.ts +0 -13
  427. package/src/core/styles/font/index.ts +0 -6
  428. package/src/core/styles/font/labelFontStyle.ts +0 -13
  429. package/src/core/styles/font/responsiveFont.ts +0 -103
  430. package/src/core/styles/font/textAlignStyle.ts +0 -19
  431. package/src/core/styles/font/textFontStyle.ts +0 -13
  432. package/src/core/styles/font/types.ts +0 -35
  433. package/src/core/styles/grid/gridItemStyle.ts +0 -82
  434. package/src/core/styles/grid/gridStyle.ts +0 -108
  435. package/src/core/styles/grid/index.ts +0 -3
  436. package/src/core/styles/grid/types.ts +0 -37
  437. package/src/core/styles/helpers.ts +0 -72
  438. package/src/core/styles/index.ts +0 -5
  439. package/src/core/styles/input/index.ts +0 -2
  440. package/src/core/styles/input/responsiveInputPaddingStyle.ts +0 -78
  441. package/src/core/styles/input/textInputStyle.ts +0 -263
  442. package/src/core/styles/internal.ts +0 -12
  443. package/src/core/styles/margin/index.ts +0 -2
  444. package/src/core/styles/margin/marginStyle.ts +0 -21
  445. package/src/core/styles/margin/marginsStyle.test.ts +0 -33
  446. package/src/core/styles/margin/types.ts +0 -9
  447. package/src/core/styles/padding/index.ts +0 -2
  448. package/src/core/styles/padding/paddingStyle.test.ts +0 -33
  449. package/src/core/styles/padding/paddingStyle.ts +0 -21
  450. package/src/core/styles/padding/types.ts +0 -12
  451. package/src/core/styles/radius/index.ts +0 -2
  452. package/src/core/styles/radius/radiusStyle.ts +0 -23
  453. package/src/core/styles/radius/types.ts +0 -8
  454. package/src/core/styles/shadow/index.ts +0 -2
  455. package/src/core/styles/shadow/shadowStyle.ts +0 -29
  456. package/src/core/styles/shadow/types.ts +0 -6
  457. package/src/core/styles/types.ts +0 -8
  458. package/src/core/theme/__workshop__/build/Root.tsx +0 -367
  459. package/src/core/theme/__workshop__/build/helpers.ts +0 -46
  460. package/src/core/theme/__workshop__/build/story.tsx +0 -465
  461. package/src/core/theme/__workshop__/canvas.tsx +0 -352
  462. package/src/core/theme/__workshop__/color.tsx +0 -62
  463. package/src/core/theme/__workshop__/debug/story.tsx +0 -408
  464. package/src/core/theme/__workshop__/index.ts +0 -39
  465. package/src/core/theme/__workshop__/layer.tsx +0 -78
  466. package/src/core/theme/__workshop__/nestedProvider.tsx +0 -15
  467. package/src/core/theme/index.ts +0 -5
  468. package/src/core/theme/theme.test.tsx +0 -73
  469. package/src/core/theme/themeColorProvider.tsx +0 -29
  470. package/src/core/theme/themeContext.ts +0 -10
  471. package/src/core/theme/themeProvider.tsx +0 -62
  472. package/src/core/theme/types.ts +0 -12
  473. package/src/core/theme/useRootTheme.ts +0 -17
  474. package/src/core/theme/useTheme.ts +0 -16
  475. package/src/core/types/avatar.ts +0 -14
  476. package/src/core/types/badge.ts +0 -12
  477. package/src/core/types/box.ts +0 -19
  478. package/src/core/types/button.ts +0 -21
  479. package/src/core/types/card.ts +0 -6
  480. package/src/core/types/component.ts +0 -32
  481. package/src/core/types/dialog.ts +0 -4
  482. package/src/core/types/flex.ts +0 -30
  483. package/src/core/types/grid.ts +0 -14
  484. package/src/core/types/gridItem.ts +0 -29
  485. package/src/core/types/index.ts +0 -15
  486. package/src/core/types/placement.ts +0 -18
  487. package/src/core/types/popover.ts +0 -4
  488. package/src/core/types/radius.ts +0 -4
  489. package/src/core/types/selectable.ts +0 -6
  490. package/src/core/types/text.ts +0 -4
  491. package/src/core/utils/arrow/arrow.tsx +0 -123
  492. package/src/core/utils/arrow/cmds.ts +0 -91
  493. package/src/core/utils/arrow/index.ts +0 -1
  494. package/src/core/utils/boundaryElement/__workshop__/index.ts +0 -14
  495. package/src/core/utils/boundaryElement/__workshop__/plain.tsx +0 -19
  496. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +0 -100
  497. package/src/core/utils/boundaryElement/boundaryElementContext.ts +0 -7
  498. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +0 -24
  499. package/src/core/utils/boundaryElement/index.ts +0 -3
  500. package/src/core/utils/boundaryElement/types.ts +0 -7
  501. package/src/core/utils/boundaryElement/useBoundaryElement.ts +0 -26
  502. package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +0 -21
  503. package/src/core/utils/conditionalWrapper/index.ts +0 -1
  504. package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +0 -30
  505. package/src/core/utils/elementQuery/__workshop__/index.ts +0 -14
  506. package/src/core/utils/elementQuery/elementQuery.tsx +0 -53
  507. package/src/core/utils/elementQuery/helpers.ts +0 -27
  508. package/src/core/utils/elementQuery/index.ts +0 -1
  509. package/src/core/utils/errorBoundary.tsx +0 -48
  510. package/src/core/utils/getElementRef.ts +0 -26
  511. package/src/core/utils/index.ts +0 -9
  512. package/src/core/utils/layer/__workshop__/_debug.tsx +0 -17
  513. package/src/core/utils/layer/__workshop__/index.ts +0 -24
  514. package/src/core/utils/layer/__workshop__/multipleRoots.tsx +0 -49
  515. package/src/core/utils/layer/__workshop__/nested.tsx +0 -98
  516. package/src/core/utils/layer/__workshop__/responsiveZOffset.tsx +0 -13
  517. package/src/core/utils/layer/getLayerContext.test.ts +0 -30
  518. package/src/core/utils/layer/getLayerContext.ts +0 -21
  519. package/src/core/utils/layer/index.ts +0 -4
  520. package/src/core/utils/layer/layer.test.tsx +0 -108
  521. package/src/core/utils/layer/layer.tsx +0 -98
  522. package/src/core/utils/layer/layerContext.ts +0 -7
  523. package/src/core/utils/layer/layerProvider.tsx +0 -111
  524. package/src/core/utils/layer/types.ts +0 -9
  525. package/src/core/utils/layer/useLayer.ts +0 -26
  526. package/src/core/utils/portal/__workshop__/index.ts +0 -14
  527. package/src/core/utils/portal/__workshop__/named.tsx +0 -63
  528. package/src/core/utils/portal/index.ts +0 -4
  529. package/src/core/utils/portal/portal.test.tsx +0 -103
  530. package/src/core/utils/portal/portal.ts +0 -32
  531. package/src/core/utils/portal/portalContext.ts +0 -31
  532. package/src/core/utils/portal/portalProvider.tsx +0 -47
  533. package/src/core/utils/portal/types.ts +0 -9
  534. package/src/core/utils/portal/usePortal.ts +0 -25
  535. package/src/core/utils/spanWithTextOverflow.tsx +0 -10
  536. package/src/core/utils/srOnly/index.ts +0 -1
  537. package/src/core/utils/srOnly/srOnly.tsx +0 -36
  538. package/src/core/utils/virtualList/__workshop__/changingProps.tsx +0 -36
  539. package/src/core/utils/virtualList/__workshop__/elementScroll.tsx +0 -24
  540. package/src/core/utils/virtualList/__workshop__/index.ts +0 -29
  541. package/src/core/utils/virtualList/__workshop__/infiniteList.tsx +0 -48
  542. package/src/core/utils/virtualList/__workshop__/windowScrolll.tsx +0 -22
  543. package/src/core/utils/virtualList/index.ts +0 -1
  544. package/src/core/utils/virtualList/virtualList.tsx +0 -200
  545. package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +0 -76
  546. package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +0 -54
  547. package/src/theme/build/_deprecated/color/button/createButtonModes.ts +0 -22
  548. package/src/theme/build/_deprecated/color/button/createButtonTones.ts +0 -55
  549. package/src/theme/build/_deprecated/color/card/createCardStates.ts +0 -60
  550. package/src/theme/build/_deprecated/color/color.test.ts +0 -63
  551. package/src/theme/build/_deprecated/color/defaults.ts +0 -390
  552. package/src/theme/build/_deprecated/color/factory.ts +0 -142
  553. package/src/theme/build/_deprecated/color/index.ts +0 -1
  554. package/src/theme/build/_deprecated/color/input/createInputModes.ts +0 -81
  555. package/src/theme/build/_deprecated/color/muted/createMuted.ts +0 -54
  556. package/src/theme/build/_deprecated/color/spot/createSpot.ts +0 -20
  557. package/src/theme/build/buildColorTheme.test.ts +0 -183
  558. package/src/theme/build/buildColorTheme.ts +0 -499
  559. package/src/theme/build/buildTheme.test.ts +0 -87
  560. package/src/theme/build/buildTheme.ts +0 -36
  561. package/src/theme/build/colorToken/colorToken.ts +0 -19
  562. package/src/theme/build/colorToken/compileColorToken.ts +0 -21
  563. package/src/theme/build/colorToken/index.ts +0 -2
  564. package/src/theme/build/colorToken/types.ts +0 -6
  565. package/src/theme/build/index.ts +0 -3
  566. package/src/theme/build/lib/color-fns/blend/index.ts +0 -3
  567. package/src/theme/build/lib/color-fns/blend/mix.ts +0 -21
  568. package/src/theme/build/lib/color-fns/blend/multiply.ts +0 -18
  569. package/src/theme/build/lib/color-fns/blend/screen.ts +0 -18
  570. package/src/theme/build/lib/color-fns/color-fns.test.ts +0 -68
  571. package/src/theme/build/lib/color-fns/contrastRatio.ts +0 -31
  572. package/src/theme/build/lib/color-fns/convert.ts +0 -150
  573. package/src/theme/build/lib/color-fns/index.ts +0 -6
  574. package/src/theme/build/lib/color-fns/parse.ts +0 -60
  575. package/src/theme/build/lib/color-fns/rgba.ts +0 -10
  576. package/src/theme/build/lib/color-fns/types.ts +0 -28
  577. package/src/theme/build/lib/isRecord.ts +0 -3
  578. package/src/theme/build/lib/lazy.ts +0 -30
  579. package/src/theme/build/lib/utils.ts +0 -19
  580. package/src/theme/build/merge.ts +0 -26
  581. package/src/theme/build/mixThemeColor.test.ts +0 -21
  582. package/src/theme/build/mixThemeColor.ts +0 -53
  583. package/src/theme/build/renderColorTheme.ts +0 -532
  584. package/src/theme/build/renderColorValue.ts +0 -85
  585. package/src/theme/build/resolveColorTokens.ts +0 -268
  586. package/src/theme/build/theme.test.ts +0 -27
  587. package/src/theme/config/helpers.ts +0 -55
  588. package/src/theme/config/index.ts +0 -4
  589. package/src/theme/config/system.ts +0 -115
  590. package/src/theme/config/tokens/color/index.ts +0 -1
  591. package/src/theme/config/tokens/color/types.ts +0 -133
  592. package/src/theme/config/tokens/index.ts +0 -4
  593. package/src/theme/config/tokens/parseTokenKey.test.ts +0 -64
  594. package/src/theme/config/tokens/parseTokenKey.ts +0 -67
  595. package/src/theme/config/tokens/parseTokenValue.test.ts +0 -42
  596. package/src/theme/config/tokens/parseTokenValue.ts +0 -133
  597. package/src/theme/config/tokens/types.ts +0 -53
  598. package/src/theme/config/types.ts +0 -46
  599. package/src/theme/defaults/colorPalette.ts +0 -5
  600. package/src/theme/defaults/colorTokens.ts +0 -648
  601. package/src/theme/defaults/config.ts +0 -84
  602. package/src/theme/defaults/fonts.ts +0 -227
  603. package/src/theme/getScopedTheme.ts +0 -98
  604. package/src/theme/index.ts +0 -5
  605. package/src/theme/system/avatar.ts +0 -14
  606. package/src/theme/system/color/_constants.ts +0 -45
  607. package/src/theme/system/color/_helpers.ts +0 -24
  608. package/src/theme/system/color/_system.ts +0 -40
  609. package/src/theme/system/color/avatar.ts +0 -15
  610. package/src/theme/system/color/badge.ts +0 -16
  611. package/src/theme/system/color/button.ts +0 -17
  612. package/src/theme/system/color/color.ts +0 -34
  613. package/src/theme/system/color/index.ts +0 -13
  614. package/src/theme/system/color/input.ts +0 -25
  615. package/src/theme/system/color/kbd.ts +0 -8
  616. package/src/theme/system/color/selectable.ts +0 -12
  617. package/src/theme/system/color/shadow.ts +0 -7
  618. package/src/theme/system/color/state.ts +0 -43
  619. package/src/theme/system/color/syntax.ts +0 -41
  620. package/src/theme/system/css.ts +0 -14
  621. package/src/theme/system/focusRing.ts +0 -7
  622. package/src/theme/system/font.ts +0 -52
  623. package/src/theme/system/index.ts +0 -11
  624. package/src/theme/system/input.ts +0 -33
  625. package/src/theme/system/layer.ts +0 -8
  626. package/src/theme/system/shadow.ts +0 -19
  627. package/src/theme/system/styles.ts +0 -13
  628. package/src/theme/system/theme.ts +0 -138
  629. package/src/theme/system/v0/avatar.ts +0 -10
  630. package/src/theme/system/v0/color/_generic.ts +0 -35
  631. package/src/theme/system/v0/color/_system.ts +0 -17
  632. package/src/theme/system/v0/color/base.ts +0 -21
  633. package/src/theme/system/v0/color/button.ts +0 -42
  634. package/src/theme/system/v0/color/card.ts +0 -19
  635. package/src/theme/system/v0/color/color.ts +0 -40
  636. package/src/theme/system/v0/color/index.ts +0 -11
  637. package/src/theme/system/v0/color/input.ts +0 -34
  638. package/src/theme/system/v0/color/muted.ts +0 -26
  639. package/src/theme/system/v0/color/selectable.ts +0 -31
  640. package/src/theme/system/v0/color/solid.ts +0 -26
  641. package/src/theme/system/v0/color/spot.ts +0 -13
  642. package/src/theme/system/v0/index.ts +0 -3
  643. package/src/theme/system/v0/input.ts +0 -23
  644. package/src/theme/versioning/getTheme_v2.ts +0 -57
  645. package/src/theme/versioning/index.ts +0 -5
  646. package/src/theme/versioning/is_v0.ts +0 -6
  647. package/src/theme/versioning/is_v2.ts +0 -6
  648. package/src/theme/versioning/themeColor_v0_v2.ts +0 -243
  649. package/src/theme/versioning/themeColor_v2_v2_9.ts +0 -49
  650. package/src/theme/versioning/v0_v2.ts +0 -94
  651. package/src/theme/versioning/v2_v0.ts +0 -135
@@ -1,495 +0,0 @@
1
- import {
2
- arrow,
3
- autoUpdate,
4
- flip,
5
- type Middleware,
6
- offset,
7
- type RootBoundary,
8
- shift,
9
- useFloating,
10
- } from '@floating-ui/react-dom'
11
- import type {ThemeColorSchemeKey} from '@sanity/ui/theme'
12
- import {AnimatePresence} from 'motion/react'
13
- import {
14
- cloneElement,
15
- forwardRef,
16
- useCallback,
17
- useEffect,
18
- useId,
19
- useImperativeHandle,
20
- useLayoutEffect,
21
- useMemo,
22
- useRef,
23
- useState,
24
- } from 'react'
25
- import {styled} from 'styled-components'
26
- import {useEffectEvent} from 'use-effect-event'
27
-
28
- import {usePrefersReducedMotion} from '../../hooks'
29
- import {useDelayedState} from '../../hooks/useDelayedState'
30
- import {origin} from '../../middleware/origin'
31
- import {_getArrayProp} from '../../styles'
32
- import {useTheme_v2} from '../../theme'
33
- import type {Placement} from '../../types'
34
- import {Layer, type LayerProps, Portal, useBoundaryElement, usePortal} from '../../utils'
35
- import {getElementRef} from '../../utils/getElementRef'
36
- import type {Delay} from '../types'
37
- import {
38
- DEFAULT_FALLBACK_PLACEMENTS,
39
- DEFAULT_TOOLTIP_DISTANCE,
40
- DEFAULT_TOOLTIP_PADDING,
41
- } from './constants'
42
- import {TooltipCard} from './tooltipCard'
43
- import {useTooltipDelayGroup} from './tooltipDelayGroup'
44
-
45
- /**
46
- * @public
47
- */
48
- export interface TooltipProps extends Omit<LayerProps, 'as'> {
49
- /** @deprecated Use `fallbackPlacements` instead. */
50
- allowedAutoPlacements?: Placement[]
51
- arrow?: boolean
52
- boundaryElement?: HTMLElement | null
53
- children?: React.JSX.Element
54
- content?: React.ReactNode
55
- disabled?: boolean
56
- fallbackPlacements?: Placement[]
57
- padding?: number | number[]
58
- placement?: Placement
59
- /** Whether or not to render the tooltip in a portal element. */
60
- portal?: boolean | string
61
- radius?: number | number[]
62
- scheme?: ThemeColorSchemeKey
63
- shadow?: number | number[]
64
- /**
65
- * Adds a delay to open or close the tooltip.
66
- *
67
- * If only a `number` is passed, it will be used for both opening and closing.
68
- *
69
- * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.
70
- *
71
- * @public
72
- * @defaultValue 0
73
- */
74
- delay?: Delay
75
- /**
76
- * Whether the tooltip should animate in and out.
77
- *
78
- * @beta
79
- * @defaultValue false
80
- */
81
- animate?: boolean
82
- }
83
-
84
- const StyledTooltip = styled(Layer)`
85
- pointer-events: none;
86
- `
87
-
88
- /**
89
- * Tooltips display information when hovering, focusing or tapping.
90
- *
91
- * @public
92
- */
93
- export const Tooltip = forwardRef(function Tooltip(
94
- props: TooltipProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content'>,
95
- forwardedRef: React.ForwardedRef<HTMLDivElement>,
96
- ) {
97
- const boundaryElementContext = useBoundaryElement()
98
- const {layer} = useTheme_v2()
99
- const {
100
- animate: _animate = false,
101
- arrow: arrowProp = false,
102
- boundaryElement: _boundaryElement,
103
- children: childProp,
104
- content,
105
- disabled,
106
- fallbackPlacements: _fallbackPlacementsProp,
107
- padding = 2,
108
- placement: placementProp = 'bottom',
109
- portal: portalProp,
110
- radius = 2,
111
- scheme,
112
- shadow = 2,
113
- zOffset: _zOffset,
114
- delay,
115
- ...restProps
116
- } = props
117
- const boundaryElement = _boundaryElement ?? boundaryElementContext?.element
118
- const fallbackPlacementsProp =
119
- _fallbackPlacementsProp ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']
120
- const zOffset = _zOffset ?? layer.tooltip.zOffset
121
- const prefersReducedMotion = usePrefersReducedMotion()
122
- const animate = prefersReducedMotion ? false : _animate
123
- const fallbackPlacements = _getArrayProp(fallbackPlacementsProp)
124
- const ref = useRef<HTMLDivElement | null>(null)
125
- const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)
126
- const arrowRef = useRef<HTMLDivElement | null>(null)
127
- const rootBoundary: RootBoundary = 'viewport'
128
- const [tooltipMaxWidth, setTooltipMaxWidth] = useState(0)
129
-
130
- useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)
131
-
132
- const portal = usePortal()
133
- const portalElement =
134
- typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element
135
-
136
- const middleware = useMiddleware({
137
- animate,
138
- arrowProp,
139
- arrowRef,
140
- boundaryElement,
141
- fallbackPlacements,
142
- rootBoundary,
143
- })
144
-
145
- const {floatingStyles, placement, middlewareData, refs, update} = useFloating({
146
- middleware,
147
- placement: placementProp,
148
- whileElementsMounted: autoUpdate,
149
- elements: {reference: referenceElement},
150
- })
151
-
152
- const arrowX = middlewareData.arrow?.x
153
- const arrowY = middlewareData.arrow?.y
154
-
155
- const originX = middlewareData['@sanity/ui/origin']?.originX
156
- const originY = middlewareData['@sanity/ui/origin']?.originY
157
-
158
- const tooltipId = useId()
159
- const [isOpen, setIsOpen] = useDelayedState(false)
160
- const delayGroupContext = useTooltipDelayGroup()
161
- const {setIsGroupActive, setOpenTooltipId} = delayGroupContext || {}
162
- const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId
163
-
164
- const isInsideGroup = delayGroupContext !== null
165
- const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0
166
- const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0
167
-
168
- const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp
169
- const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp
170
-
171
- const handleIsOpenChange = useCallback(
172
- (open: boolean, immediate?: boolean) => {
173
- if (isInsideGroup) {
174
- // When it's inside a group, the open or close status will be handled by the group.
175
- if (open) {
176
- const groupedOpenDelay = immediate ? 0 : openDelay
177
-
178
- setIsGroupActive?.(open, groupedOpenDelay)
179
- setOpenTooltipId?.(tooltipId, groupedOpenDelay)
180
- } else {
181
- const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.
182
- const groupDeactivateDelay =
183
- closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay
184
-
185
- setIsGroupActive?.(open, groupDeactivateDelay)
186
- setOpenTooltipId?.(null, immediate ? 0 : closeDelay)
187
- }
188
- } else {
189
- const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay
190
-
191
- // When it's not inside a group, the open or close status will be handled by the tooltip itself.
192
- setIsOpen(open, standaloneDelay)
193
- }
194
- },
195
- [
196
- isInsideGroup,
197
- openDelay,
198
- setIsGroupActive,
199
- setOpenTooltipId,
200
- tooltipId,
201
- closeDelay,
202
- setIsOpen,
203
- ],
204
- )
205
-
206
- const handleBlur = useCallback(
207
- (e: FocusEvent) => {
208
- handleIsOpenChange(false)
209
- childProp?.props?.onBlur?.(e)
210
- },
211
- [childProp?.props, handleIsOpenChange],
212
- )
213
- const handleClick = useCallback(
214
- (e: MouseEvent) => {
215
- handleIsOpenChange(false, true)
216
- childProp?.props.onClick?.(e)
217
- },
218
- [childProp?.props, handleIsOpenChange],
219
- )
220
- const handleContextMenu = useCallback(
221
- (e: MouseEvent) => {
222
- handleIsOpenChange(false, true)
223
- childProp?.props.onContextMenu?.(e)
224
- },
225
- [childProp?.props, handleIsOpenChange],
226
- )
227
- const handleFocus = useCallback(
228
- (e: FocusEvent) => {
229
- handleIsOpenChange(true)
230
- childProp?.props?.onFocus?.(e)
231
- },
232
- [childProp?.props, handleIsOpenChange],
233
- )
234
- const handleMouseEnter = useCallback(
235
- (e: MouseEvent) => {
236
- handleIsOpenChange(true)
237
- childProp?.props?.onMouseEnter?.(e)
238
- },
239
- [childProp?.props, handleIsOpenChange],
240
- )
241
- const handleMouseLeave = useCallback(
242
- (e: MouseEvent) => {
243
- handleIsOpenChange(false)
244
- childProp?.props?.onMouseLeave?.(e)
245
- },
246
- [childProp?.props, handleIsOpenChange],
247
- )
248
-
249
- // Handle closing the tooltip when the mouse leaves the referenceElement
250
- useCloseOnMouseLeave({handleIsOpenChange, referenceElement, showTooltip, isInsideGroup})
251
-
252
- // Close when `disabled` changes to `true`
253
- useEffect(() => {
254
- if (disabled && showTooltip) handleIsOpenChange(false)
255
- }, [disabled, handleIsOpenChange, showTooltip])
256
-
257
- // Close when `content` changes to falsy
258
- useEffect(() => {
259
- if (!content && showTooltip) handleIsOpenChange(false)
260
- }, [content, handleIsOpenChange, showTooltip])
261
-
262
- useEffect(() => {
263
- // If the user clicks on escape key, close the tooltip.
264
- if (!showTooltip) return
265
-
266
- function handleWindowKeyDown(event: KeyboardEvent) {
267
- if (event.key === 'Escape') {
268
- handleIsOpenChange(false, true)
269
- }
270
- }
271
-
272
- window.addEventListener('keydown', handleWindowKeyDown)
273
-
274
- return () => {
275
- window.removeEventListener('keydown', handleWindowKeyDown)
276
- }
277
- }, [handleIsOpenChange, showTooltip])
278
-
279
- // // Set the max width of the tooltip based on boundaries and portals
280
- useLayoutEffect(() => {
281
- // Get the maximum tooltip width (sans tooltip padding)
282
- // Tooltip width should never exceed the width of either any supplied boundary or portal element.
283
- // If both portal and boundary elements are provided, use the smaller width of the two.
284
- const availableWidths = [
285
- ...(boundaryElement ? [boundaryElement.offsetWidth] : []),
286
- portalElement?.offsetWidth || document.body.offsetWidth,
287
- ]
288
-
289
- // eslint-disable-next-line react-hooks/set-state-in-effect
290
- setTooltipMaxWidth(Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2)
291
- }, [boundaryElement, portalElement])
292
-
293
- const setArrow = useCallback(
294
- (arrowEl: HTMLDivElement | null) => {
295
- arrowRef.current = arrowEl
296
- update()
297
- },
298
- [update],
299
- )
300
-
301
- const setFloating = useCallback(
302
- (node: HTMLDivElement | null) => {
303
- ref.current = node
304
- refs.setFloating(node)
305
- },
306
- [refs],
307
- )
308
-
309
- const child = useMemo(() => {
310
- if (!childProp) return null
311
-
312
- return cloneElement(childProp, {
313
- onBlur: handleBlur,
314
- onFocus: handleFocus,
315
- onMouseEnter: handleMouseEnter,
316
- onMouseLeave: handleMouseLeave,
317
- onClick: handleClick,
318
- onContextMenu: handleContextMenu,
319
- ref: setReferenceElement,
320
- })
321
- }, [
322
- childProp,
323
- handleBlur,
324
- handleClick,
325
- handleContextMenu,
326
- handleFocus,
327
- handleMouseEnter,
328
- handleMouseLeave,
329
- ])
330
-
331
- // If there's a child then we need to set the reference element to the cloned child ref
332
- // and if child changes we make sure to update or remove the reference element.
333
- useImperativeHandle(childProp ? getElementRef(childProp) : null, () => referenceElement, [
334
- referenceElement,
335
- ])
336
-
337
- if (!child) return <></>
338
-
339
- if (disabled) return child
340
-
341
- const tooltip = (
342
- <StyledTooltip
343
- data-ui="Tooltip"
344
- {...restProps}
345
- ref={setFloating}
346
- style={{
347
- ...floatingStyles,
348
- maxWidth: tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : undefined,
349
- }}
350
- zOffset={zOffset}
351
- >
352
- <TooltipCard
353
- {...restProps}
354
- animate={animate}
355
- arrow={arrowProp}
356
- arrowRef={setArrow}
357
- arrowX={arrowX}
358
- arrowY={arrowY}
359
- originX={originX}
360
- originY={originY}
361
- padding={padding}
362
- placement={placement}
363
- radius={radius}
364
- ref={setFloating}
365
- scheme={scheme}
366
- shadow={shadow}
367
- >
368
- {content}
369
- </TooltipCard>
370
- </StyledTooltip>
371
- )
372
-
373
- const children =
374
- showTooltip &&
375
- (portalProp ? (
376
- <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>
377
- {tooltip}
378
- </Portal>
379
- ) : (
380
- tooltip
381
- ))
382
-
383
- return (
384
- <>
385
- {/* the tooltip */}
386
- {animate ? <AnimatePresence>{children}</AnimatePresence> : children}
387
-
388
- {/* the referred element */}
389
- {child}
390
- </>
391
- )
392
- })
393
- Tooltip.displayName = 'ForwardRef(Tooltip)'
394
-
395
- function useMiddleware({
396
- animate,
397
- arrowProp,
398
- arrowRef,
399
- boundaryElement,
400
- fallbackPlacements,
401
- rootBoundary,
402
- }: {
403
- animate: boolean
404
- arrowProp: boolean
405
- arrowRef: React.RefObject<HTMLDivElement | null>
406
- boundaryElement: HTMLElement | null
407
- fallbackPlacements: Placement[]
408
- rootBoundary: RootBoundary
409
- }) {
410
- return useMemo(() => {
411
- const ret: Middleware[] = []
412
-
413
- // Flip the floating element when leaving the boundary box
414
- ret.push(
415
- flip({
416
- boundary: boundaryElement || undefined,
417
- fallbackPlacements,
418
- padding: DEFAULT_TOOLTIP_PADDING,
419
- rootBoundary,
420
- }),
421
- )
422
-
423
- // Define distance between reference and floating element
424
- ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))
425
-
426
- // Shift the tooltip so its sits with the boundary element
427
- ret.push(
428
- shift({
429
- boundary: boundaryElement || undefined,
430
- rootBoundary,
431
- padding: DEFAULT_TOOLTIP_PADDING,
432
- }),
433
- )
434
-
435
- // Place arrow
436
- if (arrowProp) {
437
- ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))
438
- }
439
-
440
- // Determine the origin to scale from.
441
- // Must be placed after `@sanity/ui/size` and `shift` middleware.
442
- if (animate) {
443
- ret.push(origin)
444
- }
445
-
446
- return ret
447
- }, [animate, arrowProp, arrowRef, boundaryElement, fallbackPlacements, rootBoundary])
448
- }
449
-
450
- /**
451
- * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.
452
- * @see https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events:~:text=Never%20pass%20them%20to%20other%20components%20or%20Hooks
453
- */
454
- function useCloseOnMouseLeave({
455
- handleIsOpenChange,
456
- referenceElement,
457
- showTooltip,
458
- isInsideGroup,
459
- }: {
460
- handleIsOpenChange: (open: boolean, immediate?: boolean) => void
461
- referenceElement: HTMLElement | null
462
- showTooltip: boolean
463
- isInsideGroup: boolean
464
- }) {
465
- // Since we don't want the `mouseevent` events to be attached and removed if the `referenceElement` is changed
466
- // we use a "effect event" (https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events)
467
- // in order to always see the latest `referenceElement` value inside the event handler itself.
468
- const onMouseMove = useEffectEvent((target: EventTarget | null, teardown: () => void) => {
469
- if (!referenceElement) return
470
-
471
- const isHoveringReference =
472
- referenceElement === target || (target instanceof Node && referenceElement.contains(target))
473
-
474
- if (!isHoveringReference) {
475
- handleIsOpenChange(false)
476
- // Allow removing the event listener eagerly, to avoid race conditions
477
- teardown()
478
- }
479
- })
480
-
481
- // Detect whether the mouse is moving outside of the reference element. This is sometimes
482
- // necessary, because the tooltip might not always close as it should (e.g. when clicking
483
- // the reference element triggers a CPU-heavy operation.)
484
- useEffect(() => {
485
- if (!showTooltip || isInsideGroup) return
486
-
487
- const handleMouseMove = (event: MouseEvent) => {
488
- onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))
489
- }
490
-
491
- window.addEventListener('mousemove', handleMouseMove)
492
-
493
- return () => window.removeEventListener('mousemove', handleMouseMove)
494
- }, [isInsideGroup, showTooltip])
495
- }
@@ -1,109 +0,0 @@
1
- import {ThemeColorSchemeKey} from '@sanity/ui/theme'
2
- import {motion, type MotionProps} from 'motion/react'
3
- import React, {CSSProperties, forwardRef, useMemo} from 'react'
4
- import {styled} from 'styled-components'
5
-
6
- import {POPOVER_MOTION_PROPS} from '../../constants'
7
- import {Placement, Radius} from '../../types'
8
- import {Arrow} from '../../utils'
9
- import {Card, CardProps} from '../card'
10
- import {
11
- DEFAULT_TOOLTIP_ARROW_HEIGHT,
12
- DEFAULT_TOOLTIP_ARROW_RADIUS,
13
- DEFAULT_TOOLTIP_ARROW_WIDTH,
14
- } from './constants'
15
-
16
- const MotionCard = styled(motion.create(Card))`
17
- will-change: transform;
18
- `
19
-
20
- /**
21
- * @internal
22
- */
23
- export const TooltipCard = forwardRef(function TooltipCard(
24
- props: {
25
- animate?: boolean
26
- arrow: boolean
27
- arrowRef: React.Ref<HTMLDivElement>
28
- arrowX?: number
29
- arrowY?: number
30
- originX?: number
31
- originY?: number
32
- padding?: number | number[]
33
- placement?: Placement
34
- radius?: Radius | Radius[]
35
- scheme?: ThemeColorSchemeKey
36
- shadow?: number | number[]
37
- } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,
38
- ref: React.ForwardedRef<HTMLDivElement>,
39
- ) {
40
- const {
41
- animate,
42
- arrow,
43
- arrowRef,
44
- arrowX,
45
- arrowY,
46
- children,
47
- originX,
48
- originY,
49
- padding,
50
- placement,
51
- radius,
52
- scheme,
53
- shadow,
54
- style,
55
- ...restProps
56
- } = props
57
-
58
- const rootStyle: CSSProperties = useMemo(
59
- () => ({
60
- originX,
61
- originY,
62
- willChange: animate ? 'transform' : undefined,
63
- ...style,
64
- }),
65
- [animate, originX, originY, style],
66
- )
67
-
68
- const arrowStyle: CSSProperties = useMemo(
69
- () => ({
70
- left: arrowX !== null ? arrowX : undefined,
71
- top: arrowY !== null ? arrowY : undefined,
72
- right: undefined,
73
- bottom: undefined,
74
- }),
75
- [arrowX, arrowY],
76
- )
77
-
78
- return (
79
- <MotionCard
80
- data-ui="Tooltip__card"
81
- {...(restProps as CardProps & MotionProps)}
82
- data-placement={placement}
83
- padding={padding}
84
- radius={radius}
85
- ref={ref}
86
- scheme={scheme}
87
- shadow={shadow}
88
- style={rootStyle}
89
- variants={POPOVER_MOTION_PROPS.card}
90
- transition={POPOVER_MOTION_PROPS.transition}
91
- initial={animate ? ['hidden', 'initial'] : undefined}
92
- animate={animate ? ['visible', 'scaleIn'] : undefined}
93
- exit={animate ? ['hidden', 'scaleOut'] : undefined}
94
- >
95
- {children}
96
-
97
- {arrow && (
98
- <Arrow
99
- ref={arrowRef}
100
- style={arrowStyle}
101
- width={DEFAULT_TOOLTIP_ARROW_WIDTH}
102
- height={DEFAULT_TOOLTIP_ARROW_HEIGHT}
103
- radius={DEFAULT_TOOLTIP_ARROW_RADIUS}
104
- />
105
- )}
106
- </MotionCard>
107
- )
108
- })
109
- TooltipCard.displayName = 'ForwardRef(TooltipCard)'
@@ -1,4 +0,0 @@
1
- export * from './tooltipDelayGroupContext'
2
- export * from './tooltipDelayGroupProvider'
3
- export * from './types'
4
- export * from './useTooltipDelayGroup'
@@ -1,11 +0,0 @@
1
- import {createGlobalScopedContext} from '../../../lib/createGlobalScopedContext'
2
- import {TooltipDelayGroupContextValue} from './types'
3
-
4
- /**
5
- * @beta
6
- */
7
- export const TooltipDelayGroupContext =
8
- createGlobalScopedContext<TooltipDelayGroupContextValue | null>(
9
- '@sanity/ui/context/tooltipDelayGroup',
10
- null,
11
- )
@@ -1,57 +0,0 @@
1
- import {useMemo} from 'react'
2
-
3
- import {useDelayedState} from '../../../hooks/useDelayedState'
4
- import {Delay} from '../../types'
5
- import {TooltipDelayGroupContext} from './tooltipDelayGroupContext'
6
- import {TooltipDelayGroupContextValue} from './types'
7
-
8
- /**
9
- * @public
10
- * */
11
- export interface TooltipDelayGroupProviderProps {
12
- children?: React.ReactNode
13
- /**
14
- * Handles the delays to open or close a tooltip inside a group
15
- *
16
- * If only a `number` is passed, it will be used for both opening and closing.
17
- *
18
- * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.
19
- *
20
- * @public
21
- */
22
- delay: Delay
23
- }
24
-
25
- /**
26
- * @public
27
- * Provides context for a group of tooltip elements that should share a delay
28
- * which temporarily becomes 1 ms after the first floating element of the group opens.
29
- */
30
- export function TooltipDelayGroupProvider(
31
- props: TooltipDelayGroupProviderProps,
32
- ): React.JSX.Element {
33
- const {children, delay} = props
34
- const [isGroupActive, setIsGroupActive] = useDelayedState(false)
35
- const [openTooltipId, setOpenTooltipId] = useDelayedState<string | null>(null)
36
-
37
- const openDelay = typeof delay === 'number' ? delay : delay?.open || 0
38
- const closeDelay = typeof delay === 'number' ? delay : delay?.close || 0
39
-
40
- const value: TooltipDelayGroupContextValue = useMemo(
41
- () => ({
42
- setIsGroupActive: setIsGroupActive,
43
- openTooltipId: openTooltipId,
44
- setOpenTooltipId: setOpenTooltipId,
45
- // When the group is active, we want the next tooltip to open immediately.
46
- openDelay: isGroupActive ? 1 : openDelay,
47
- closeDelay: closeDelay,
48
- }),
49
- [closeDelay, isGroupActive, openDelay, openTooltipId, setIsGroupActive, setOpenTooltipId],
50
- )
51
-
52
- return (
53
- <TooltipDelayGroupContext.Provider value={value}>{children}</TooltipDelayGroupContext.Provider>
54
- )
55
- }
56
-
57
- TooltipDelayGroupProvider.displayName = 'TooltipDelayGroupProvider'
@@ -1,10 +0,0 @@
1
- /**
2
- * @beta
3
- */
4
- export interface TooltipDelayGroupContextValue {
5
- setIsGroupActive: (nextState: React.SetStateAction<boolean>, delay?: number | undefined) => void
6
- setOpenTooltipId: (nextId: string | null, delay?: number | undefined) => void
7
- openDelay: number
8
- closeDelay: number
9
- openTooltipId: string | null
10
- }
@@ -1,13 +0,0 @@
1
- import {useContext} from 'react'
2
-
3
- import {TooltipDelayGroupContext} from './tooltipDelayGroupContext'
4
- import {TooltipDelayGroupContextValue} from './types'
5
-
6
- /**
7
- * @beta
8
- */
9
- export function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {
10
- const value = useContext(TooltipDelayGroupContext)
11
-
12
- return value
13
- }