@sanity/ui 4.0.0-beta.7 → 4.0.0-next.0

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 (393) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +21 -7
  3. package/dist/_chunks/getScopedTheme.cjs +4043 -0
  4. package/dist/_chunks/getScopedTheme.cjs.map +1 -0
  5. package/dist/_chunks/getScopedTheme.js +3803 -0
  6. package/dist/_chunks/getScopedTheme.js.map +1 -0
  7. package/dist/_chunks/portalProvider.cjs +3750 -0
  8. package/dist/_chunks/portalProvider.cjs.map +1 -0
  9. package/dist/_chunks/portalProvider.d.cts +1067 -0
  10. package/dist/_chunks/portalProvider.d.cts.map +1 -0
  11. package/dist/_chunks/portalProvider.d.ts +1067 -0
  12. package/dist/_chunks/portalProvider.d.ts.map +1 -0
  13. package/dist/_chunks/portalProvider.js +3300 -0
  14. package/dist/_chunks/portalProvider.js.map +1 -0
  15. package/dist/_chunks/refractor.cjs +18 -0
  16. package/dist/_chunks/refractor.cjs.map +1 -0
  17. package/dist/_chunks/refractor.js +20 -0
  18. package/dist/_chunks/refractor.js.map +1 -0
  19. package/dist/_chunks/rgba.d.cts +929 -0
  20. package/dist/_chunks/rgba.d.cts.map +1 -0
  21. package/dist/_chunks/rgba.d.ts +929 -0
  22. package/dist/_chunks/rgba.d.ts.map +1 -0
  23. package/dist/_visual-editing.cjs +4 -0
  24. package/dist/_visual-editing.d.cts +2 -0
  25. package/dist/_visual-editing.d.ts +2 -0
  26. package/dist/_visual-editing.js +3 -0
  27. package/dist/index.cjs +3007 -0
  28. package/dist/index.cjs.map +1 -0
  29. package/dist/index.d.cts +1275 -0
  30. package/dist/index.d.cts.map +1 -0
  31. package/dist/index.d.ts +708 -1188
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +2964 -4783
  34. package/dist/index.js.map +1 -1
  35. package/dist/theme.cjs +54 -0
  36. package/dist/theme.cjs.map +1 -0
  37. package/dist/theme.d.cts +278 -0
  38. package/dist/theme.d.cts.map +1 -0
  39. package/dist/theme.d.ts +278 -0
  40. package/dist/theme.d.ts.map +1 -0
  41. package/dist/theme.js +53 -0
  42. package/dist/theme.js.map +1 -0
  43. package/package.json +65 -88
  44. package/dist/_chunks-es/Syntax.js +0 -23
  45. package/dist/_chunks-es/Syntax.js.map +0 -1
  46. package/dist/index.css +0 -1
  47. package/exports/index.css +0 -1
  48. package/exports/index.ts +0 -125
  49. package/src/components/autocomplete/Autocomplete.tsx +0 -665
  50. package/src/components/autocomplete/AutocompleteOption.tsx +0 -42
  51. package/src/components/autocomplete/__workshop__/Async.tsx +0 -162
  52. package/src/components/autocomplete/__workshop__/ConstrainedHeight.tsx +0 -121
  53. package/src/components/autocomplete/__workshop__/Custom.tsx +0 -91
  54. package/src/components/autocomplete/__workshop__/Example.tsx +0 -70
  55. package/src/components/autocomplete/__workshop__/FocusAndBlur.tsx +0 -39
  56. package/src/components/autocomplete/__workshop__/Fullscreen.tsx +0 -307
  57. package/src/components/autocomplete/__workshop__/index.ts +0 -41
  58. package/src/components/autocomplete/__workshop__/mock/apiStore.ts +0 -49
  59. package/src/components/autocomplete/__workshop__/mock/countries.ts +0 -245
  60. package/src/components/autocomplete/__workshop__/types.ts +0 -4
  61. package/src/components/autocomplete/autocompleteReducer.ts +0 -47
  62. package/src/components/autocomplete/constants.ts +0 -28
  63. package/src/components/autocomplete/types.ts +0 -103
  64. package/src/components/breadcrumbs/Breadcrumbs.tsx +0 -163
  65. package/src/components/breadcrumbs/__workshop__/Example.tsx +0 -48
  66. package/src/components/breadcrumbs/__workshop__/index.ts +0 -16
  67. package/src/components/dialog/Dialog.tsx +0 -230
  68. package/src/components/dialog/DialogCard.tsx +0 -233
  69. package/src/components/dialog/DialogContext.ts +0 -21
  70. package/src/components/dialog/DialogProvider.tsx +0 -34
  71. package/src/components/dialog/__workshop__/Activate.tsx +0 -141
  72. package/src/components/dialog/__workshop__/AutoFocus.tsx +0 -29
  73. package/src/components/dialog/__workshop__/Layering.tsx +0 -41
  74. package/src/components/dialog/__workshop__/Nested.tsx +0 -71
  75. package/src/components/dialog/__workshop__/OnScroll.tsx +0 -51
  76. package/src/components/dialog/__workshop__/Panes.tsx +0 -75
  77. package/src/components/dialog/__workshop__/Position.tsx +0 -30
  78. package/src/components/dialog/__workshop__/Props.tsx +0 -93
  79. package/src/components/dialog/__workshop__/Provider.tsx +0 -11
  80. package/src/components/dialog/__workshop__/Wrapped.tsx +0 -76
  81. package/src/components/dialog/__workshop__/index.ts +0 -21
  82. package/src/components/dialog/isTargetWithinScope.ts +0 -14
  83. package/src/components/dialog/types.ts +0 -2
  84. package/src/components/dialog/useDialog.ts +0 -11
  85. package/src/components/hotkeys/Hotkeys.tsx +0 -70
  86. package/src/components/hotkeys/__workshop__/Plain.tsx +0 -9
  87. package/src/components/hotkeys/__workshop__/index.ts +0 -16
  88. package/src/components/menu/Menu.test.tsx +0 -125
  89. package/src/components/menu/Menu.tsx +0 -174
  90. package/src/components/menu/MenuButton.tsx +0 -231
  91. package/src/components/menu/MenuContext.ts +0 -19
  92. package/src/components/menu/MenuDivider.tsx +0 -32
  93. package/src/components/menu/MenuGroup.tsx +0 -240
  94. package/src/components/menu/MenuItem.tsx +0 -153
  95. package/src/components/menu/__workshop__/AsComponent.tsx +0 -45
  96. package/src/components/menu/__workshop__/AvatarMenu.tsx +0 -36
  97. package/src/components/menu/__workshop__/ClosableMenuButton.tsx +0 -47
  98. package/src/components/menu/__workshop__/ConstrainedInBoundary.tsx +0 -133
  99. package/src/components/menu/__workshop__/CustomMenuItem.tsx +0 -47
  100. package/src/components/menu/__workshop__/CustomSelectedState.tsx +0 -35
  101. package/src/components/menu/__workshop__/DataProps.tsx +0 -27
  102. package/src/components/menu/__workshop__/DisableFocusOnClose.tsx +0 -40
  103. package/src/components/menu/__workshop__/Groups.tsx +0 -164
  104. package/src/components/menu/__workshop__/MenuButton.tsx +0 -79
  105. package/src/components/menu/__workshop__/MenuGroupRight.tsx +0 -73
  106. package/src/components/menu/__workshop__/NestedMenu.tsx +0 -22
  107. package/src/components/menu/__workshop__/OnCloseMenuButton.tsx +0 -50
  108. package/src/components/menu/__workshop__/SelectedItem.tsx +0 -69
  109. package/src/components/menu/__workshop__/ShouldFocus.tsx +0 -42
  110. package/src/components/menu/__workshop__/Tones.tsx +0 -19
  111. package/src/components/menu/__workshop__/index.ts +0 -91
  112. package/src/components/menu/helpers.ts +0 -82
  113. package/src/components/menu/useMenu.ts +0 -21
  114. package/src/components/menu/useMenuController.ts +0 -245
  115. package/src/components/tab/Tab.tsx +0 -135
  116. package/src/components/tab/TabList.tsx +0 -157
  117. package/src/components/tab/TabListContext.ts +0 -10
  118. package/src/components/tab/TabPanel.tsx +0 -94
  119. package/src/components/tab/__workshop__/Example.tsx +0 -135
  120. package/src/components/tab/__workshop__/index.ts +0 -16
  121. package/src/components/tab/types.ts +0 -11
  122. package/src/components/toast/Toast.test.tsx +0 -103
  123. package/src/components/toast/Toast.tsx +0 -191
  124. package/src/components/toast/ToastContext.ts +0 -7
  125. package/src/components/toast/ToastLayer.tsx +0 -54
  126. package/src/components/toast/ToastProvider.tsx +0 -127
  127. package/src/components/toast/__workshop__/Hook.tsx +0 -71
  128. package/src/components/toast/__workshop__/Toast.tsx +0 -26
  129. package/src/components/toast/__workshop__/index.ts +0 -21
  130. package/src/components/toast/toastState.ts +0 -6
  131. package/src/components/toast/types.ts +0 -24
  132. package/src/components/toast/useToast.ts +0 -23
  133. package/src/components/tree/Tree.tsx +0 -248
  134. package/src/components/tree/TreeContext.ts +0 -10
  135. package/src/components/tree/TreeGroup.tsx +0 -46
  136. package/src/components/tree/TreeItem.tsx +0 -236
  137. package/src/components/tree/__workshop__/Basic.tsx +0 -108
  138. package/src/components/tree/__workshop__/TabFromElement.tsx +0 -84
  139. package/src/components/tree/__workshop__/basic.perf.ts +0 -19
  140. package/src/components/tree/__workshop__/index.ts +0 -23
  141. package/src/components/tree/helpers.ts +0 -105
  142. package/src/components/tree/types.ts +0 -24
  143. package/src/components/tree/useTree.ts +0 -17
  144. package/src/components/virtualList/VirtualList.tsx +0 -254
  145. package/src/components/virtualList/__workshop__/ChangingProps.tsx +0 -41
  146. package/src/components/virtualList/__workshop__/ElementScroll.tsx +0 -43
  147. package/src/components/virtualList/__workshop__/InfiniteList.tsx +0 -40
  148. package/src/components/virtualList/__workshop__/WindowScrolll.tsx +0 -23
  149. package/src/components/virtualList/__workshop__/index.ts +0 -31
  150. package/src/core/_keys.ts +0 -26
  151. package/src/core/constants.ts +0 -67
  152. package/src/core/getElementRef.ts +0 -29
  153. package/src/core/helpers/animation.ts +0 -26
  154. package/src/core/helpers/element.ts +0 -55
  155. package/src/core/helpers/focus.ts +0 -92
  156. package/src/core/helpers/props.ts +0 -51
  157. package/src/core/helpers/scroll.ts +0 -15
  158. package/src/core/lib/createGlobalScopedContext.ts +0 -39
  159. package/src/core/lib/globalScope.ts +0 -19
  160. package/src/core/lib/isArray.ts +0 -3
  161. package/src/core/lib/isRecord.ts +0 -3
  162. package/src/core/types.ts +0 -57
  163. package/src/hooks/useClickOutsideEvent.test.tsx +0 -114
  164. package/src/hooks/useClickOutsideEvent.ts +0 -66
  165. package/src/hooks/useCustomValidity.ts +0 -13
  166. package/src/hooks/useElementSize.ts +0 -19
  167. package/src/hooks/useGlobalKeyDown.ts +0 -23
  168. package/src/hooks/useMatchMedia.ts +0 -28
  169. package/src/hooks/useMediaIndex/__workshop__/Test.tsx +0 -14
  170. package/src/hooks/useMediaIndex/__workshop__/index.ts +0 -16
  171. package/src/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -21
  172. package/src/hooks/useMediaIndex/useMediaIndex.ts +0 -111
  173. package/src/hooks/useMounted.ts +0 -15
  174. package/src/hooks/usePrefersDark.hydration.test.tsx +0 -56
  175. package/src/hooks/usePrefersDark.test.tsx +0 -20
  176. package/src/hooks/usePrefersDark.ts +0 -16
  177. package/src/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -56
  178. package/src/hooks/usePrefersReducedMotion.test.tsx +0 -20
  179. package/src/hooks/usePrefersReducedMotion.ts +0 -16
  180. package/src/hooks/useResponsiveProp.ts +0 -14
  181. package/src/hooks/useUnique.ts +0 -54
  182. package/src/middleware/origin.ts +0 -47
  183. package/src/observers/elementSize.ts +0 -114
  184. package/src/primitives/_syntax/LazySyntax.tsx +0 -4
  185. package/src/primitives/_syntax/Syntax.tsx +0 -26
  186. package/src/primitives/avatar/Avatar.tsx +0 -145
  187. package/src/primitives/avatar/AvatarCounter.tsx +0 -69
  188. package/src/primitives/avatar/AvatarStack.tsx +0 -77
  189. package/src/primitives/avatar/__workshop__/AsButton.tsx +0 -12
  190. package/src/primitives/avatar/__workshop__/PropsStory.tsx +0 -24
  191. package/src/primitives/avatar/__workshop__/Stack.tsx +0 -27
  192. package/src/primitives/avatar/__workshop__/WithinButton.tsx +0 -51
  193. package/src/primitives/avatar/__workshop__/WithinMenuItem.tsx +0 -52
  194. package/src/primitives/avatar/__workshop__/index.ts +0 -36
  195. package/src/primitives/avatar/types.ts +0 -2
  196. package/src/primitives/badge/Badge.test.tsx +0 -16
  197. package/src/primitives/badge/Badge.tsx +0 -53
  198. package/src/primitives/badge/__workshop__/Props.tsx +0 -27
  199. package/src/primitives/badge/__workshop__/Tones.tsx +0 -15
  200. package/src/primitives/badge/__workshop__/index.ts +0 -26
  201. package/src/primitives/badge/__workshop__/within-button.tsx +0 -36
  202. package/src/primitives/box/Box.tsx +0 -73
  203. package/src/primitives/box/__workshop__/Props.tsx +0 -26
  204. package/src/primitives/box/__workshop__/Responsive.tsx +0 -19
  205. package/src/primitives/box/__workshop__/index.ts +0 -21
  206. package/src/primitives/button/Button.test.tsx +0 -30
  207. package/src/primitives/button/Button.tsx +0 -148
  208. package/src/primitives/button/__workshop__/Custom.tsx +0 -39
  209. package/src/primitives/button/__workshop__/CustomIcons.tsx +0 -37
  210. package/src/primitives/button/__workshop__/DataProps.tsx +0 -18
  211. package/src/primitives/button/__workshop__/Disabled.tsx +0 -43
  212. package/src/primitives/button/__workshop__/MixedChildren.tsx +0 -12
  213. package/src/primitives/button/__workshop__/Props.tsx +0 -60
  214. package/src/primitives/button/__workshop__/Stacked.tsx +0 -60
  215. package/src/primitives/button/__workshop__/Styled1.css.ts +0 -7
  216. package/src/primitives/button/__workshop__/Styled1.tsx +0 -11
  217. package/src/primitives/button/__workshop__/TextOverflow.tsx +0 -17
  218. package/src/primitives/button/__workshop__/UploadButton.tsx +0 -28
  219. package/src/primitives/button/__workshop__/index.ts +0 -61
  220. package/src/primitives/button/types.ts +0 -2
  221. package/src/primitives/card/Card.tsx +0 -124
  222. package/src/primitives/card/CardContext.ts +0 -10
  223. package/src/primitives/card/CardInternalContext.ts +0 -10
  224. package/src/primitives/card/CardInternalProvider.tsx +0 -15
  225. package/src/primitives/card/CardProvider.tsx +0 -16
  226. package/src/primitives/card/__workshop__/AsButton.tsx +0 -103
  227. package/src/primitives/card/__workshop__/AsComponent.tsx +0 -25
  228. package/src/primitives/card/__workshop__/Checkered.tsx +0 -25
  229. package/src/primitives/card/__workshop__/DataProps.tsx +0 -25
  230. package/src/primitives/card/__workshop__/Interactive.tsx +0 -29
  231. package/src/primitives/card/__workshop__/ListNavigation.tsx +0 -78
  232. package/src/primitives/card/__workshop__/Props.tsx +0 -59
  233. package/src/primitives/card/__workshop__/Selected.tsx +0 -62
  234. package/src/primitives/card/__workshop__/Styled.tsx +0 -11
  235. package/src/primitives/card/__workshop__/Tones.tsx +0 -26
  236. package/src/primitives/card/__workshop__/index.ts +0 -21
  237. package/src/primitives/card/types.ts +0 -21
  238. package/src/primitives/card/useCard.ts +0 -20
  239. package/src/primitives/checkbox/Checkbox.tsx +0 -80
  240. package/src/primitives/checkbox/__workshop__/Example.tsx +0 -25
  241. package/src/primitives/checkbox/__workshop__/Props.tsx +0 -35
  242. package/src/primitives/checkbox/__workshop__/ReadOnly.tsx +0 -16
  243. package/src/primitives/checkbox/__workshop__/Tones.tsx +0 -26
  244. package/src/primitives/checkbox/__workshop__/index.ts +0 -15
  245. package/src/primitives/code/Code.tsx +0 -47
  246. package/src/primitives/code/__workshop__/OpticalAlignment.tsx +0 -25
  247. package/src/primitives/code/__workshop__/Props.tsx +0 -20
  248. package/src/primitives/code/__workshop__/index.ts +0 -21
  249. package/src/primitives/container/Container.tsx +0 -43
  250. package/src/primitives/container/__workshop__/Example.tsx +0 -16
  251. package/src/primitives/container/__workshop__/index.ts +0 -16
  252. package/src/primitives/container/types.ts +0 -6
  253. package/src/primitives/flex/Flex.tsx +0 -38
  254. package/src/primitives/flex/__workshop__/Example.tsx +0 -26
  255. package/src/primitives/flex/__workshop__/Gap.tsx +0 -25
  256. package/src/primitives/flex/__workshop__/index.ts +0 -13
  257. package/src/primitives/flex/__workshop__/styles.css.ts +0 -12
  258. package/src/primitives/grid/Grid.tsx +0 -38
  259. package/src/primitives/grid/__workshop__/Responsive.tsx +0 -54
  260. package/src/primitives/grid/__workshop__/index.ts +0 -12
  261. package/src/primitives/heading/Heading.tsx +0 -68
  262. package/src/primitives/heading/__workshop__/OpticalAlignment.tsx +0 -27
  263. package/src/primitives/heading/__workshop__/Plain.tsx +0 -25
  264. package/src/primitives/heading/__workshop__/index.ts +0 -21
  265. package/src/primitives/inline/Inline.tsx +0 -37
  266. package/src/primitives/inline/__workshop__/Plain.tsx +0 -22
  267. package/src/primitives/inline/__workshop__/index.ts +0 -10
  268. package/src/primitives/kbd/Kbd.tsx +0 -36
  269. package/src/primitives/kbd/__workshop__/Plain.tsx +0 -9
  270. package/src/primitives/kbd/__workshop__/index.ts +0 -10
  271. package/src/primitives/label/Label.tsx +0 -67
  272. package/src/primitives/label/__workshop__/OpticalAlignment.tsx +0 -27
  273. package/src/primitives/label/__workshop__/Plain.tsx +0 -27
  274. package/src/primitives/label/__workshop__/index.ts +0 -21
  275. package/src/primitives/layer/Layer.test.tsx +0 -110
  276. package/src/primitives/layer/Layer.tsx +0 -35
  277. package/src/primitives/layer/LayerCard.tsx +0 -90
  278. package/src/primitives/layer/LayerContext.ts +0 -7
  279. package/src/primitives/layer/LayerProvider.tsx +0 -106
  280. package/src/primitives/layer/__workshop__/MultipleRoots.tsx +0 -49
  281. package/src/primitives/layer/__workshop__/Nested.tsx +0 -107
  282. package/src/primitives/layer/__workshop__/ResponsiveZOffset.tsx +0 -17
  283. package/src/primitives/layer/__workshop__/_debug.tsx +0 -17
  284. package/src/primitives/layer/__workshop__/index.ts +0 -26
  285. package/src/primitives/layer/getLayerContext.test.ts +0 -32
  286. package/src/primitives/layer/getLayerContext.ts +0 -21
  287. package/src/primitives/layer/types.ts +0 -9
  288. package/src/primitives/layer/useLayer.ts +0 -24
  289. package/src/primitives/popover/Popover.tsx +0 -291
  290. package/src/primitives/popover/PopoverLayer.tsx +0 -101
  291. package/src/primitives/popover/__workshop__/AlignedStory.tsx +0 -75
  292. package/src/primitives/popover/__workshop__/MarginsStory.tsx +0 -31
  293. package/src/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
  294. package/src/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -11
  295. package/src/primitives/popover/__workshop__/PlainStory.tsx +0 -67
  296. package/src/primitives/popover/__workshop__/RecursiveStory.tsx +0 -71
  297. package/src/primitives/popover/__workshop__/SidePanelStory.tsx +0 -95
  298. package/src/primitives/popover/__workshop__/TestStory.tsx +0 -97
  299. package/src/primitives/popover/__workshop__/index.ts +0 -56
  300. package/src/primitives/popover/__workshop__/portal-inheritance.tsx +0 -15
  301. package/src/primitives/popover/constants.ts +0 -20
  302. package/src/primitives/popover/floating-ui/size.ts +0 -75
  303. package/src/primitives/popover/types.ts +0 -12
  304. package/src/primitives/popover/useMiddleware.ts +0 -126
  305. package/src/primitives/radio/Radio.tsx +0 -64
  306. package/src/primitives/radio/__workshop__/Example.tsx +0 -63
  307. package/src/primitives/radio/__workshop__/Plain.tsx +0 -28
  308. package/src/primitives/radio/__workshop__/index.ts +0 -13
  309. package/src/primitives/select/Select.tsx +0 -76
  310. package/src/primitives/select/__workshop__/Plain.tsx +0 -37
  311. package/src/primitives/select/__workshop__/ReadOnly.tsx +0 -23
  312. package/src/primitives/select/__workshop__/index.ts +0 -13
  313. package/src/primitives/selectable/Selectable.tsx +0 -48
  314. package/src/primitives/selectable/__workshop__/DataProps.tsx +0 -24
  315. package/src/primitives/selectable/__workshop__/as-link.tsx +0 -13
  316. package/src/primitives/selectable/__workshop__/index.ts +0 -19
  317. package/src/primitives/skeleton/CodeSkeleton.tsx +0 -49
  318. package/src/primitives/skeleton/HeadingSkeleton.tsx +0 -48
  319. package/src/primitives/skeleton/LabelSkeleton.tsx +0 -47
  320. package/src/primitives/skeleton/Skeleton.tsx +0 -70
  321. package/src/primitives/skeleton/TextSkeleton.tsx +0 -49
  322. package/src/primitives/skeleton/__workshop__/Delay.tsx +0 -69
  323. package/src/primitives/skeleton/__workshop__/Skeleton.tsx +0 -63
  324. package/src/primitives/skeleton/__workshop__/index.ts +0 -13
  325. package/src/primitives/spinner/Spinner.tsx +0 -45
  326. package/src/primitives/spinner/SpinnerAnimatedIcon.tsx +0 -14
  327. package/src/primitives/spinner/__workshop__/Props.tsx +0 -13
  328. package/src/primitives/spinner/__workshop__/index.ts +0 -16
  329. package/src/primitives/srOnly/SrOnly.tsx +0 -33
  330. package/src/primitives/stack/Stack.tsx +0 -38
  331. package/src/primitives/stack/__workshop__/Plain.tsx +0 -30
  332. package/src/primitives/stack/__workshop__/index.ts +0 -16
  333. package/src/primitives/switch/Switch.tsx +0 -76
  334. package/src/primitives/switch/__workshop__/Example.tsx +0 -25
  335. package/src/primitives/switch/__workshop__/Props.tsx +0 -23
  336. package/src/primitives/switch/__workshop__/index.ts +0 -13
  337. package/src/primitives/text/InlineCode.tsx +0 -25
  338. package/src/primitives/text/Text.tsx +0 -68
  339. package/src/primitives/text/__workshop__/Example.tsx +0 -26
  340. package/src/primitives/text/__workshop__/OpticalAlignment.tsx +0 -27
  341. package/src/primitives/text/__workshop__/index.ts +0 -26
  342. package/src/primitives/text/__workshop__/inline-code.tsx +0 -13
  343. package/src/primitives/textArea/TextArea.tsx +0 -97
  344. package/src/primitives/textArea/__workshop__/Plain.tsx +0 -46
  345. package/src/primitives/textArea/__workshop__/index.ts +0 -16
  346. package/src/primitives/textInput/TextInput.tsx +0 -279
  347. package/src/primitives/textInput/__workshop__/ClearButton.tsx +0 -32
  348. package/src/primitives/textInput/__workshop__/CustomValidity.tsx +0 -17
  349. package/src/primitives/textInput/__workshop__/Plain.tsx +0 -102
  350. package/src/primitives/textInput/__workshop__/ReadOnly.tsx +0 -14
  351. package/src/primitives/textInput/__workshop__/States.tsx +0 -53
  352. package/src/primitives/textInput/__workshop__/Tones.tsx +0 -40
  353. package/src/primitives/textInput/__workshop__/Typed.tsx +0 -23
  354. package/src/primitives/textInput/__workshop__/index.ts +0 -46
  355. package/src/primitives/tooltip/Tooltip.test.tsx +0 -496
  356. package/src/primitives/tooltip/Tooltip.tsx +0 -546
  357. package/src/primitives/tooltip/TooltipLayer.tsx +0 -72
  358. package/src/primitives/tooltip/__workshop__/CustomPortal.tsx +0 -102
  359. package/src/primitives/tooltip/__workshop__/OverflowingBoundary.tsx +0 -74
  360. package/src/primitives/tooltip/__workshop__/Props.tsx +0 -107
  361. package/src/primitives/tooltip/__workshop__/ResizableBoundary.tsx +0 -91
  362. package/src/primitives/tooltip/__workshop__/index.ts +0 -31
  363. package/src/primitives/tooltip/constants.ts +0 -24
  364. package/src/primitives/tooltip/tooltipDelayGroup/TooltipDelayGroupContext.tsx +0 -13
  365. package/src/primitives/tooltip/tooltipDelayGroup/TooltipDelayGroupProvider.tsx +0 -96
  366. package/src/primitives/tooltip/tooltipDelayGroup/types.ts +0 -7
  367. package/src/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -13
  368. package/src/root/Root.tsx +0 -93
  369. package/src/root/RootProvider.tsx +0 -37
  370. package/src/root/__workshop__/Boundary.tsx +0 -43
  371. package/src/root/__workshop__/index.ts +0 -24
  372. package/src/root/__workshop__/primitives.tsx +0 -49
  373. package/src/root/__workshop__/tone-inheritance.tsx +0 -65
  374. package/src/utils/ErrorBoundary.tsx +0 -50
  375. package/src/utils/boundaryElement/BoundaryElementContext.ts +0 -7
  376. package/src/utils/boundaryElement/BoundaryElementProvider.tsx +0 -16
  377. package/src/utils/boundaryElement/__workshop__/Plain.tsx +0 -49
  378. package/src/utils/boundaryElement/__workshop__/index.ts +0 -16
  379. package/src/utils/boundaryElement/types.ts +0 -2
  380. package/src/utils/boundaryElement/useBoundaryElement.ts +0 -12
  381. package/src/utils/elementQuery/ElementQuery.tsx +0 -75
  382. package/src/utils/elementQuery/__workshop__/CustomMedia.tsx +0 -19
  383. package/src/utils/elementQuery/__workshop__/index.ts +0 -16
  384. package/src/utils/elementQuery/__workshop__/styles.css.ts +0 -31
  385. package/src/utils/elementQuery/helpers.ts +0 -27
  386. package/src/utils/portal/Portal.test.tsx +0 -105
  387. package/src/utils/portal/Portal.tsx +0 -42
  388. package/src/utils/portal/PortalContext.ts +0 -37
  389. package/src/utils/portal/PortalProvider.tsx +0 -38
  390. package/src/utils/portal/__workshop__/Named.tsx +0 -69
  391. package/src/utils/portal/__workshop__/index.ts +0 -16
  392. package/src/utils/portal/types.ts +0 -7
  393. package/src/utils/portal/usePortal.ts +0 -30
@@ -1,546 +0,0 @@
1
- import {
2
- autoUpdate,
3
- flip,
4
- type Middleware,
5
- offset,
6
- type RootBoundary,
7
- shift,
8
- useFloating,
9
- } from '@floating-ui/react-dom'
10
- import {
11
- type RadiusStyleProps,
12
- type ResponsiveProp,
13
- type ShadowStyleProps,
14
- tooltip,
15
- } from '@sanity/ui-css'
16
- import type {CardTone, ColorScheme, FontTextSize} from '@sanity/ui-tokens'
17
- import {AnimatePresence} from 'motion/react'
18
- import {
19
- cloneElement,
20
- startTransition,
21
- use,
22
- useCallback,
23
- useEffect,
24
- useEffectEvent,
25
- useId,
26
- useImperativeHandle,
27
- useLayoutEffect,
28
- useMemo,
29
- useRef,
30
- useState,
31
- } from 'react'
32
-
33
- import {Hotkeys} from '../../components/hotkeys/Hotkeys'
34
- import {Z_OFFSETS} from '../../core/constants'
35
- import {getElementRef} from '../../core/getElementRef'
36
- import type {ComponentType, Delay, Placement, Props} from '../../core/types'
37
- import {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'
38
- import {useUnique} from '../../hooks/useUnique'
39
- import {origin} from '../../middleware/origin'
40
- import {BoundaryElementContext} from '../../utils/boundaryElement/BoundaryElementContext'
41
- import {Portal} from '../../utils/portal/Portal'
42
- import {PortalContext} from '../../utils/portal/PortalContext'
43
- import {assertPortalContext} from '../../utils/portal/usePortal'
44
- import type {LayerOwnProps} from '../layer/Layer'
45
- import {Text} from '../text/Text'
46
- import {
47
- DEFAULT_FALLBACK_PLACEMENTS,
48
- DEFAULT_TOOLTIP_DELAY,
49
- DEFAULT_TOOLTIP_DISTANCE,
50
- DEFAULT_TOOLTIP_PADDING,
51
- } from './constants'
52
- import {TooltipDelayGroupContext} from './tooltipDelayGroup/TooltipDelayGroupContext'
53
- import {TooltipLayer} from './TooltipLayer'
54
-
55
- /** @public */
56
- export const DEFAULT_TOOLTIP_ELEMENT = 'div'
57
-
58
- /** @public */
59
- export type TooltipOwnProps = LayerOwnProps &
60
- RadiusStyleProps &
61
- ShadowStyleProps & {
62
- /**
63
- * Whether the tooltip should animate in and out.
64
- *
65
- * @beta
66
- * @defaultValue false
67
- */
68
- animate?: boolean
69
- /** @deprecated Will be removed in the next major version */
70
- arrow?: boolean
71
- boundaryElement?: HTMLElement | null
72
- children?: React.ReactElement<
73
- React.HTMLAttributes<HTMLElement> & React.RefAttributes<HTMLElement>
74
- >
75
- content?: React.ReactNode
76
- /**
77
- * Adds a delay to open or close the tooltip.
78
- *
79
- * If only a `number` is passed, it will be used for both opening and closing.
80
- *
81
- * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.
82
- *
83
- * @public
84
- * @defaultValue 0
85
- */
86
- delay?: Delay
87
- disabled?: boolean
88
- fallbackPlacements?: Placement[]
89
- hotkeys?: string[]
90
- placement?: Placement
91
- /** Whether or not to render the tooltip in a portal element. */
92
- portal?: boolean | string
93
- scheme?: ColorScheme
94
- text?: React.ReactNode
95
- textSize?: ResponsiveProp<FontTextSize>
96
- tone?: CardTone
97
- }
98
-
99
- /** @public */
100
- export type TooltipElementType = 'div' | 'span' | ComponentType
101
-
102
- /** @public */
103
- export type TooltipProps<E extends TooltipElementType = TooltipElementType> = Props<
104
- TooltipOwnProps,
105
- E
106
- >
107
-
108
- /**
109
- * Tooltips display information when hovering, focusing or tapping.
110
- *
111
- * @public
112
- */
113
- export function Tooltip<E extends TooltipElementType = typeof DEFAULT_TOOLTIP_ELEMENT>(
114
- props: TooltipProps<E>,
115
- ): React.JSX.Element {
116
- const {
117
- animate: animateProp = true,
118
- arrow: _arrow,
119
- as = DEFAULT_TOOLTIP_ELEMENT,
120
- boundaryElement: _boundaryElement,
121
- children: childProp,
122
- className,
123
- content: contentProp,
124
- delay = DEFAULT_TOOLTIP_DELAY,
125
- disabled,
126
- id: idProp,
127
- fallbackPlacements: _fallbackPlacements,
128
- hotkeys: hotkeysProp,
129
- padding = 2,
130
- placement: placementProp = 'bottom',
131
- portal = true,
132
- radius = 3,
133
- ref: forwardedRef,
134
- shadow = 2,
135
- text,
136
- textSize = 1,
137
- zOffset = Z_OFFSETS.tooltip,
138
- ...rest
139
- } = props as TooltipProps<typeof DEFAULT_TOOLTIP_ELEMENT>
140
-
141
- const _randomId = useId()
142
- const id = idProp ?? _randomId
143
-
144
- const boundaryElement = _boundaryElement ?? use(BoundaryElementContext)
145
- const fallbackPlacements =
146
- _fallbackPlacements ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']
147
-
148
- const prefersReducedMotion = usePrefersReducedMotion()
149
- const animate = prefersReducedMotion ? false : animateProp
150
- const ref = useRef<HTMLDivElement | null>(null)
151
- const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)
152
- const rootBoundary: RootBoundary = 'viewport'
153
- const [tooltipMaxWidth, setTooltipMaxWidth] = useState(0)
154
-
155
- useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)
156
-
157
- let portalElement: HTMLElement | null = null
158
- if (portal) {
159
- const portalContext = use(PortalContext)
160
- assertPortalContext(portalContext)
161
- portalElement =
162
- typeof portal === 'string' ? portalContext.elements?.[portal] || null : portalContext.element
163
- }
164
-
165
- const middleware = useMiddleware({
166
- animate,
167
- boundaryElement,
168
- fallbackPlacements,
169
- rootBoundary,
170
- })
171
-
172
- const {floatingStyles, placement, middlewareData, refs} = useFloating({
173
- middleware,
174
- placement: placementProp,
175
- whileElementsMounted: autoUpdate,
176
- elements: {reference: referenceElement},
177
- transform: false,
178
- })
179
-
180
- const originX = middlewareData['@sanity/ui/origin']?.originX
181
- const originY = middlewareData['@sanity/ui/origin']?.originY
182
-
183
- const delayGroupContext = use(TooltipDelayGroupContext)
184
- const handleGroupOpenChange = delayGroupContext?.handleOpenChange
185
-
186
- const groupVisible = delayGroupContext?.visibleTooltipId === id
187
-
188
- const openDelay = typeof delay === 'number' ? delay : (delay.open ?? DEFAULT_TOOLTIP_DELAY.open)
189
- const closeDelay =
190
- typeof delay === 'number' ? delay : (delay.close ?? DEFAULT_TOOLTIP_DELAY.close)
191
-
192
- const openDelayRef = useRef(openDelay)
193
- useEffect(() => {
194
- // update `openDelayRef` when `openDelay` changes
195
- openDelayRef.current = openDelay
196
- }, [openDelay])
197
-
198
- const closeDelayRef = useRef(closeDelay)
199
- useEffect(() => {
200
- // update `closeDelayRef` when `closeDelay` changes
201
- closeDelayRef.current = closeDelay
202
- }, [closeDelay])
203
-
204
- const [referenceHovered, setReferenceHovered] = useState(false)
205
- const [referenceFocused, setReferenceFocused] = useState(false)
206
-
207
- const isOpen = referenceHovered || referenceFocused
208
-
209
- const [localVisible, setVisible] = useState(false)
210
-
211
- const visible = groupVisible || localVisible
212
-
213
- const timerRef = useRef<ReturnType<typeof setTimeout> | undefined>(undefined)
214
-
215
- useEffect(() => {
216
- if (handleGroupOpenChange) {
217
- handleGroupOpenChange({open: isOpen, id})
218
- return
219
- }
220
-
221
- if (timerRef.current) clearTimeout(timerRef.current)
222
- timerRef.current = undefined
223
-
224
- if (isOpen) {
225
- // start open timer
226
- timerRef.current = setTimeout(() => {
227
- setVisible(true)
228
- timerRef.current = undefined
229
- }, openDelayRef.current)
230
- return
231
- }
232
-
233
- // start close timer
234
- timerRef.current = setTimeout(() => {
235
- setVisible(false)
236
- timerRef.current = undefined
237
- }, closeDelayRef.current)
238
-
239
- return () => {
240
- if (timerRef.current) clearTimeout(timerRef.current)
241
- timerRef.current = undefined
242
- }
243
- }, [isOpen, handleGroupOpenChange, id])
244
-
245
- const hotkeys = useUnique(hotkeysProp)
246
-
247
- const content = useMemo(() => {
248
- if (contentProp || text || hotkeys) {
249
- return (
250
- <>
251
- {text && <Text size={textSize}>{text}</Text>}
252
- {contentProp}
253
- {hotkeys && <Hotkeys aria-hidden={true} keys={hotkeys} />}
254
- </>
255
- )
256
- }
257
-
258
- return undefined
259
- }, [contentProp, hotkeys, text, textSize])
260
-
261
- // Hide immediately
262
- const hide = useCallback(() => {
263
- handleGroupOpenChange?.({open: false, id, immediate: true})
264
- setVisible(false)
265
- setReferenceHovered(false)
266
- setReferenceFocused(false)
267
- }, [handleGroupOpenChange, id])
268
-
269
- const childOnBlur = childProp?.props?.onBlur
270
- const childOnFocus = childProp?.props?.onFocus
271
- const childOnMouseEnter = childProp?.props?.onMouseEnter
272
- const childOnMouseLeave = childProp?.props?.onMouseLeave
273
- const childOnContextMenu = childProp?.props?.onContextMenu
274
-
275
- const handleBlur = useCallback(
276
- (e: React.FocusEvent<HTMLElement>) => {
277
- childOnBlur?.(e)
278
- setReferenceFocused(false)
279
- },
280
- [childOnBlur],
281
- )
282
- const handleContextMenu = useCallback(
283
- (e: React.MouseEvent<HTMLElement>) => {
284
- childOnContextMenu?.(e)
285
- setReferenceHovered(false)
286
- setReferenceFocused(false)
287
- hide()
288
- },
289
- [childOnContextMenu, hide],
290
- )
291
- const handleFocus = useCallback(
292
- (e: React.FocusEvent<HTMLElement>) => {
293
- childOnFocus?.(e)
294
- setReferenceFocused(true)
295
- },
296
- [childOnFocus],
297
- )
298
- const handleMouseEnter = useCallback(
299
- (e: React.MouseEvent<HTMLElement>) => {
300
- childOnMouseEnter?.(e)
301
- setReferenceHovered(true)
302
- },
303
- [childOnMouseEnter],
304
- )
305
- const handleMouseLeave = useCallback(
306
- (e: React.MouseEvent<HTMLElement>) => {
307
- childOnMouseLeave?.(e)
308
- setReferenceHovered(false)
309
- },
310
- [childOnMouseLeave],
311
- )
312
-
313
- // Handle closing the tooltip when the mouse leaves the referenceElement
314
- useCloseOnMouseLeave({
315
- referenceElement,
316
- visible,
317
- onClose: useCallback(() => {
318
- setReferenceHovered(false)
319
- }, []),
320
- })
321
-
322
- // Close when `disabled` changes to `true`
323
- useEffect(() => {
324
- if (disabled) {
325
- startTransition(() => hide())
326
- }
327
- }, [disabled, hide])
328
-
329
- // Close when `content` changes to falsy
330
- useEffect(() => {
331
- if (!content) {
332
- startTransition(() => hide())
333
- }
334
- }, [content, hide])
335
-
336
- useEffect(() => {
337
- if (!visible) return
338
-
339
- function handleWindowKeyDown(event: KeyboardEvent) {
340
- // If the user clicks on escape key, close the tooltip.
341
- if (event.key === 'Escape') {
342
- startTransition(() => hide())
343
- return
344
- }
345
- }
346
-
347
- window.addEventListener('keydown', handleWindowKeyDown)
348
-
349
- return () => {
350
- window.removeEventListener('keydown', handleWindowKeyDown)
351
- }
352
- }, [hide, visible])
353
-
354
- // Set the max width of the tooltip based on boundaries and portals
355
- useLayoutEffect(() => {
356
- // Get the maximum tooltip width (sans tooltip padding)
357
- // Tooltip width should never exceed the width of either any supplied boundary or portal element.
358
- // If both portal and boundary elements are provided, use the smaller width of the two.
359
- const availableWidths = [
360
- ...(boundaryElement ? [boundaryElement.offsetWidth] : []),
361
- portalElement?.offsetWidth || document.body.offsetWidth,
362
- ]
363
-
364
- startTransition(() => {
365
- setTooltipMaxWidth(Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2)
366
- })
367
- }, [boundaryElement, portalElement])
368
-
369
- const setFloating = useCallback(
370
- (node: HTMLDivElement | null) => {
371
- ref.current = node
372
- refs.setFloating(node)
373
- },
374
- [refs],
375
- )
376
-
377
- const child = useMemo(() => {
378
- if (!childProp) return null
379
-
380
- return cloneElement(childProp, {
381
- 'aria-describedby': visible ? id : undefined,
382
- 'onBlur': handleBlur,
383
- 'onFocus': handleFocus,
384
- 'onMouseEnter': handleMouseEnter,
385
- 'onMouseLeave': handleMouseLeave,
386
- 'onContextMenu': handleContextMenu,
387
- 'ref': setReferenceElement,
388
- })
389
- }, [
390
- childProp,
391
- handleBlur,
392
- handleContextMenu,
393
- handleFocus,
394
- handleMouseEnter,
395
- handleMouseLeave,
396
- id,
397
- visible,
398
- ])
399
-
400
- // If there's a child then we need to set the reference element to the cloned child ref
401
- // and if child changes we make sure to update or remove the reference element.
402
- useImperativeHandle(childProp ? getElementRef(childProp) : null, () => referenceElement, [
403
- referenceElement,
404
- ])
405
-
406
- if (!child) return <></>
407
-
408
- if (disabled) return child
409
-
410
- const node = (
411
- <TooltipLayer
412
- data-ui="Tooltip"
413
- {...rest}
414
- ref={setFloating}
415
- animate={animate}
416
- as={as}
417
- className={tooltip({className})}
418
- display="flex"
419
- gap={padding}
420
- id={id}
421
- originX={originX}
422
- originY={originY}
423
- padding={padding}
424
- placement={placement}
425
- radius={radius}
426
- role="tooltip"
427
- shadow={shadow}
428
- style={{
429
- ...floatingStyles,
430
- maxWidth: tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : undefined,
431
- }}
432
- zOffset={zOffset}
433
- >
434
- {content}
435
- </TooltipLayer>
436
- )
437
-
438
- let children = visible ? node : null
439
-
440
- if (visible && portal) {
441
- children = (
442
- <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>{node}</Portal>
443
- )
444
- }
445
-
446
- return (
447
- <>
448
- {/* the tooltip */}
449
- {animate ? <AnimatePresence>{children}</AnimatePresence> : children}
450
-
451
- {/* the referred element */}
452
- {child}
453
- </>
454
- )
455
- }
456
-
457
- function useMiddleware({
458
- animate,
459
- boundaryElement,
460
- fallbackPlacements,
461
- rootBoundary,
462
- }: {
463
- animate: boolean
464
- boundaryElement: HTMLElement | null
465
- fallbackPlacements: Placement[]
466
- rootBoundary: RootBoundary
467
- }) {
468
- return useMemo(() => {
469
- const ret: Middleware[] = []
470
-
471
- // Flip the floating element when leaving the boundary box
472
- ret.push(
473
- flip({
474
- boundary: boundaryElement || undefined,
475
- fallbackPlacements,
476
- padding: DEFAULT_TOOLTIP_PADDING,
477
- rootBoundary,
478
- }),
479
- )
480
-
481
- // Define distance between reference and floating element
482
- ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))
483
-
484
- // Shift the tooltip so its sits with the boundary element
485
- ret.push(
486
- shift({
487
- boundary: boundaryElement || undefined,
488
- rootBoundary,
489
- padding: DEFAULT_TOOLTIP_PADDING,
490
- }),
491
- )
492
-
493
- // Determine the origin to scale from.
494
- // Must be placed after `@sanity/ui/size` and `shift` middleware.
495
- if (animate) {
496
- ret.push(origin)
497
- }
498
-
499
- return ret
500
- }, [animate, boundaryElement, fallbackPlacements, rootBoundary])
501
- }
502
-
503
- /**
504
- * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.
505
- * @see https://react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events:~:text=Never%20pass%20them%20to%20other%20components%20or%20Hooks
506
- */
507
- function useCloseOnMouseLeave({
508
- onClose,
509
- referenceElement,
510
- visible,
511
- }: {
512
- onClose: () => void
513
- referenceElement: HTMLElement | null
514
- visible: boolean
515
- }) {
516
- // Since we don't want the `mouseevent` events to be attached and removed if the `referenceElement` is changed
517
- // we use a "effect event" (https://react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events)
518
- // in order to always see the latest `referenceElement` value inside the event handler itself.
519
- const onMouseMove = useEffectEvent((target: EventTarget | null, teardown: () => void) => {
520
- if (!referenceElement) return
521
-
522
- const isHoveringReference =
523
- referenceElement === target || (target instanceof Node && referenceElement.contains(target))
524
-
525
- if (!isHoveringReference) {
526
- onClose()
527
- // Allow removing the event listener eagerly, to avoid race conditions
528
- teardown()
529
- }
530
- })
531
-
532
- // Detect whether the mouse is moving outside of the reference element. This is sometimes
533
- // necessary, because the tooltip might not always close as it should (e.g. when clicking
534
- // the reference element triggers a CPU-heavy operation.)
535
- useEffect(() => {
536
- if (!visible) return
537
-
538
- const handleMouseMove = (event: MouseEvent) => {
539
- onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))
540
- }
541
-
542
- window.addEventListener('mousemove', handleMouseMove)
543
-
544
- return () => window.removeEventListener('mousemove', handleMouseMove)
545
- }, [visible])
546
- }
@@ -1,72 +0,0 @@
1
- import {motion, type MotionStyle} from 'motion/react'
2
- import {useMemo} from 'react'
3
-
4
- import {POPOVER_MOTION_PROPS} from '../../core/constants'
5
- import type {Placement} from '../../core/types'
6
- import {Layer, type LayerOwnProps, type LayerProps} from '../layer/Layer'
7
-
8
- /** @internal */
9
- export const DEFAULT_TOOLTIP_LAYER_ELEMENT = 'div'
10
-
11
- /** @internal */
12
- export interface TooltipLayerOwnProps extends LayerOwnProps {
13
- animate?: boolean
14
- originX?: number
15
- originY?: number
16
- placement?: Placement
17
- }
18
-
19
- /** @internal */
20
- export type TooltipLayerProps = TooltipLayerOwnProps & LayerProps<'div'>
21
-
22
- /** @internal */
23
- export function TooltipLayer(props: TooltipLayerProps): React.JSX.Element {
24
- const {
25
- animate,
26
- children,
27
- originX,
28
- originY,
29
- padding,
30
- placement,
31
- radius,
32
- scheme,
33
- shadow,
34
- style,
35
- tone,
36
- ...rest
37
- } = props
38
-
39
- const rootStyle: MotionStyle = useMemo(
40
- () => ({
41
- originX,
42
- originY,
43
- willChange: animate ? 'transform' : undefined,
44
- ...style,
45
- }),
46
- [animate, originX, originY, style],
47
- )
48
-
49
- return (
50
- // @ts-expect-error - TODO: fix this
51
- <Layer
52
- data-ui="Tooltip__layer"
53
- {...rest}
54
- animate={animate ? ['visible', 'scaleIn'] : undefined}
55
- as={motion.div}
56
- data-animate={animate ? '' : undefined}
57
- data-placement={placement}
58
- exit={animate ? ['hidden', 'scaleOut'] : undefined}
59
- initial={animate ? ['hidden', 'initial'] : undefined}
60
- padding={padding}
61
- radius={radius}
62
- scheme={scheme}
63
- shadow={shadow}
64
- style={rootStyle}
65
- tone={tone}
66
- transition={POPOVER_MOTION_PROPS.transition}
67
- variants={POPOVER_MOTION_PROPS.card}
68
- >
69
- {children}
70
- </Layer>
71
- )
72
- }