@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,496 +0,0 @@
1
- import {act, fireEvent, screen} from '@testing-library/react'
2
- import {afterEach, beforeEach, describe, expect, it, vi} from 'vitest'
3
-
4
- import {render} from '$test/utils'
5
-
6
- import {Button} from '../button/Button'
7
- import {Tooltip} from './Tooltip'
8
- import {TooltipDelayGroupProvider} from './tooltipDelayGroup/TooltipDelayGroupProvider'
9
-
10
- async function advance(ms: number) {
11
- await act(async () => {
12
- vi.advanceTimersByTime(ms)
13
- })
14
- }
15
-
16
- async function flushAll() {
17
- await act(async () => {
18
- await vi.runAllTimersAsync()
19
- })
20
- }
21
-
22
- // Fake timers
23
- beforeEach(() => {
24
- vi.useFakeTimers()
25
- })
26
-
27
- // Running all pending timers and switching to real timers
28
- afterEach(() => {
29
- vi.runOnlyPendingTimers()
30
- vi.useRealTimers()
31
- })
32
-
33
- describe('Tooltip', () => {
34
- describe('Using same delay for open and close', () => {
35
- it('should hide and show the tooltip content when hovered, with no delay', () => {
36
- render(
37
- <Tooltip animate={false} delay={0} placement={'top'} text="Tooltip content">
38
- <Button mode="bleed" text="Hover me" />
39
- </Tooltip>,
40
- )
41
-
42
- const button = screen.getByText('Hover me')
43
-
44
- // Validate tooltip content is not rendered
45
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
46
-
47
- fireEvent.mouseEnter(button)
48
-
49
- // With delay=0, advance timers to show tooltip
50
- act(() => vi.advanceTimersByTime(1))
51
- expect(screen.getByText('Tooltip content')).toBeInTheDocument()
52
-
53
- fireEvent.mouseLeave(button)
54
-
55
- // Advance timers to hide tooltip
56
- act(() => vi.advanceTimersByTime(1))
57
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
58
- })
59
- it('should support delays to show and hide the tooltip.', () => {
60
- vi.useFakeTimers()
61
- const delay = 200
62
-
63
- render(
64
- <Tooltip animate={false} delay={delay} placement={'top'} text="Tooltip content">
65
- <Button mode="bleed" text="Hover me" />
66
- </Tooltip>,
67
- )
68
-
69
- const button = screen.getByText('Hover me')
70
-
71
- // Validate tooltip content is not rendered
72
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
73
-
74
- fireEvent.mouseEnter(button)
75
-
76
- act(() => vi.advanceTimersByTime(delay / 2))
77
- // Content should not be rendered yet
78
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
79
- act(() => vi.advanceTimersByTime(delay / 2))
80
-
81
- // Validate tooltip content is rendered
82
- screen.getByText('Tooltip content')
83
-
84
- fireEvent.mouseLeave(button)
85
- // Validate tooltip content is still showing.
86
- screen.getByText('Tooltip content')
87
- act(() => vi.advanceTimersByTime(delay))
88
- // Validate tooltip content is not rendered anymore
89
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
90
- })
91
- it('should support different open and close delays to show and hide the tooltip.', () => {
92
- vi.useFakeTimers()
93
- const openDelay = 200
94
- const closeDelay = 150
95
-
96
- render(
97
- <Tooltip
98
- animate={false}
99
- delay={{
100
- open: openDelay,
101
- close: closeDelay,
102
- }}
103
- placement={'top'}
104
- text="Tooltip content"
105
- >
106
- <Button mode="bleed" text="Hover me" />
107
- </Tooltip>,
108
- )
109
-
110
- const button = screen.getByText('Hover me')
111
-
112
- // Validate tooltip content is not rendered
113
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
114
-
115
- fireEvent.mouseEnter(button)
116
-
117
- act(() => vi.advanceTimersByTime(openDelay / 2))
118
- // Content should not be rendered yet
119
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
120
- act(() => vi.advanceTimersByTime(openDelay / 2))
121
-
122
- // Validate tooltip content is rendered
123
- screen.getByText('Tooltip content')
124
-
125
- fireEvent.mouseLeave(button)
126
- // Validate tooltip content is still showing.
127
- screen.getByText('Tooltip content')
128
- act(() => vi.advanceTimersByTime(closeDelay))
129
- // Validate tooltip content is not rendered anymore
130
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
131
- })
132
- })
133
-
134
- describe('Using the <TooltipDelayGroupProvider />', () => {
135
- it('should support groups with the same delay to open and close.', async () => {
136
- const delay = 150
137
-
138
- vi.useFakeTimers()
139
- render(
140
- <TooltipDelayGroupProvider delay={delay}>
141
- <Tooltip animate={false} delay={400} placement={'top'} text="Tooltip 1">
142
- <Button mode="bleed" text="Button 1" />
143
- </Tooltip>
144
- <Tooltip
145
- animate={false}
146
- delay={400} // This should be overridden by the group delay
147
- placement={'top'}
148
- text="Tooltip 2"
149
- >
150
- <Button mode="bleed" text="Button 2" />
151
- </Tooltip>
152
- </TooltipDelayGroupProvider>,
153
- )
154
-
155
- const button1 = screen.getByText('Button 1')
156
- const button2 = screen.getByText('Button 2')
157
-
158
- // Validate tooltip content is not rendered
159
- expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
160
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
161
-
162
- // Hovers on first button, it should show first tooltip only
163
- fireEvent.mouseEnter(button1)
164
- act(() => vi.advanceTimersByTime(delay / 2))
165
- // Content should not be rendered yet, we have a delay of 150ms
166
- expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
167
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
168
- act(() => vi.advanceTimersByTime(delay / 2))
169
-
170
- // Validate Tooltip 1 is rendered
171
- screen.getByText('Tooltip 1')
172
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
173
-
174
- // Hovers on second button.
175
- fireEvent.mouseLeave(button1)
176
- fireEvent.mouseEnter(button2)
177
-
178
- // Validate Tooltip 1 is not rendered, now tooltip 2 is open.
179
- act(() => vi.advanceTimersByTime(1))
180
- expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
181
- screen.getByText('Tooltip 2')
182
-
183
- // Validate tooltip content is not rendered anymore
184
- fireEvent.mouseLeave(button2)
185
- act(() => vi.advanceTimersByTime(delay + 1))
186
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
187
-
188
- // Hovering again, should trigger the tooltip to show immediately, as the group is not deactivated yet
189
- fireEvent.mouseEnter(button2)
190
- act(() => vi.advanceTimersByTime(1))
191
- await act(async () => {
192
- await vi.runAllTimersAsync()
193
- })
194
- screen.getByText('Tooltip 2')
195
-
196
- // Validate tooltip content is not rendered anymore
197
- fireEvent.mouseLeave(button2)
198
- act(() => vi.advanceTimersByTime(delay + 1))
199
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
200
-
201
- // Wait 200ms, the group is deactivated, hovering again should trigger the delay
202
- act(() => vi.advanceTimersByTime(200))
203
- fireEvent.mouseEnter(button2)
204
- act(() => vi.advanceTimersByTime(delay / 2))
205
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
206
- act(() => vi.advanceTimersByTime(delay / 2))
207
- screen.getByText('Tooltip 2')
208
- })
209
-
210
- it('should support groups with different open and close delay.', async () => {
211
- const openDelay = 250
212
- const closeDelay = 150
213
-
214
- vi.useFakeTimers()
215
- render(
216
- <TooltipDelayGroupProvider
217
- delay={{
218
- open: openDelay,
219
- close: closeDelay,
220
- }}
221
- >
222
- <Tooltip animate={false} delay={400} placement={'top'} text="Tooltip 1">
223
- <Button mode="bleed" text="Button 1" />
224
- </Tooltip>
225
- <Tooltip
226
- animate={false}
227
- delay={400} // This should be overridden by the group delay
228
- placement={'top'}
229
- text="Tooltip 2"
230
- >
231
- <Button mode="bleed" text="Button 2" />
232
- </Tooltip>
233
- </TooltipDelayGroupProvider>,
234
- )
235
-
236
- const button1 = screen.getByText('Button 1')
237
- const button2 = screen.getByText('Button 2')
238
-
239
- // Validate tooltip content is not rendered
240
- expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
241
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
242
-
243
- // Hovers on first button, it should show first tooltip only
244
- fireEvent.mouseEnter(button1)
245
- act(() => vi.advanceTimersByTime(openDelay / 2))
246
- // Content should not be rendered yet, we have a delay of2150ms
247
- expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
248
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
249
- act(() => vi.advanceTimersByTime(openDelay / 2))
250
-
251
- // Validate Tooltip 1 is rendered
252
- screen.getByText('Tooltip 1')
253
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
254
-
255
- // Hovers on second button.
256
- fireEvent.mouseLeave(button1)
257
- fireEvent.mouseEnter(button2)
258
-
259
- // Validate Tooltip 1 is not rendered, now tooltip 2 is open.
260
- act(() => vi.advanceTimersByTime(1))
261
- expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
262
- screen.getByText('Tooltip 2')
263
-
264
- // Validate tooltip content is not rendered anymore
265
- fireEvent.mouseLeave(button2)
266
- act(() => vi.advanceTimersByTime(closeDelay + 1))
267
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
268
-
269
- // Hovering again, should trigger the tooltip to show immediately, as the group is not deactivated yet
270
- fireEvent.mouseEnter(button2)
271
- act(() => vi.advanceTimersByTime(1))
272
- await act(async () => {
273
- await vi.runAllTimersAsync()
274
- })
275
- screen.getByText('Tooltip 2')
276
-
277
- // Validate tooltip content is not rendered anymore
278
- fireEvent.mouseLeave(button2)
279
- act(() => vi.advanceTimersByTime(closeDelay + 1))
280
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
281
-
282
- // Wait 200ms, the group is deactivated, hovering again should trigger the delay
283
- act(() => vi.advanceTimersByTime(200))
284
- fireEvent.mouseEnter(button2)
285
- act(() => vi.advanceTimersByTime(openDelay / 2))
286
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
287
- act(() => vi.advanceTimersByTime(openDelay / 2))
288
- screen.getByText('Tooltip 2')
289
- })
290
- })
291
-
292
- describe('Closing the <Tooltip /> with the Escape key', () => {
293
- it('Standalone tooltip closes immediately with Escape key', async () => {
294
- const delay = 150
295
-
296
- vi.useFakeTimers()
297
-
298
- render(
299
- <Tooltip animate={false} delay={delay} placement={'top'} text="Tooltip content">
300
- <Button mode="bleed" text="Hover me" />
301
- </Tooltip>,
302
- )
303
-
304
- const button = screen.getByText('Hover me')
305
-
306
- // Validate tooltip content is not rendered
307
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
308
- act(() => {
309
- fireEvent.focus(button)
310
- })
311
- await advance(delay)
312
-
313
- // Validate tooltip content is rendered
314
- expect(screen.getByText('Tooltip content')).toBeInTheDocument()
315
-
316
- act(() => {
317
- fireEvent.keyDown(button, {key: 'Escape', code: 'Escape'})
318
- })
319
-
320
- await flushAll()
321
-
322
- // Validate tooltip content is not rendered anymore
323
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
324
- })
325
- it('With <TooltipDelayGroupProvider /> closes immediately with Escape key', () => {
326
- const delay = 150
327
-
328
- vi.useFakeTimers()
329
-
330
- render(
331
- <TooltipDelayGroupProvider delay={{close: delay}}>
332
- <Tooltip animate={false} delay={{close: delay}} placement={'top'} text="Tooltip content">
333
- <Button mode="bleed" text="Hover me" />
334
- </Tooltip>
335
- </TooltipDelayGroupProvider>,
336
- )
337
-
338
- const button = screen.getByText('Hover me')
339
-
340
- // Validate tooltip content is not rendered
341
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
342
- act(() => {
343
- fireEvent.focus(button)
344
- })
345
- act(() => vi.advanceTimersByTime(delay))
346
-
347
- // Validate tooltip content is rendered
348
- screen.getByText('Tooltip content')
349
-
350
- act(() => {
351
- fireEvent.keyDown(button, {key: 'Escape', code: 'Escape'})
352
- })
353
-
354
- // Wait for any pending state updates to complete
355
- act(() => {
356
- vi.runAllTimers()
357
- })
358
-
359
- // Validate tooltip content is not rendered anymore
360
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
361
- })
362
- })
363
-
364
- describe('Clicking the <Tooltip /> child should close the tooltip', () => {
365
- it('Should close the tooltip when the context menu is opened (right click)', async () => {
366
- const delay = 150
367
-
368
- render(
369
- <Tooltip animate={false} delay={delay} text="Tooltip content">
370
- <Button mode="bleed" text="Hover me" />
371
- </Tooltip>,
372
- )
373
-
374
- const button = screen.getByText('Hover me')
375
-
376
- // Assertion: tooltip does not exist in the document
377
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
378
- act(() => {
379
- fireEvent.focus(button)
380
- })
381
- await advance(delay)
382
-
383
- // Assertion: the tooltip is visible
384
- expect(screen.getByText('Tooltip content')).toBeVisible()
385
-
386
- act(() => {
387
- fireEvent.contextMenu(button)
388
- })
389
-
390
- await flushAll()
391
-
392
- // Assertion: tooltip does not exist in the document
393
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
394
- })
395
- })
396
-
397
- describe('Used defined events on <Tooltip /> child should fire correctly', () => {
398
- it('should fire the onBlur event', () => {
399
- const handleBlur = vi.fn()
400
-
401
- render(
402
- <Tooltip animate={false} text="Tooltip content">
403
- <Button data-testid="btn" mode="bleed" text="Hover me" onBlur={handleBlur} />
404
- </Tooltip>,
405
- )
406
-
407
- act(() => fireEvent.blur(screen.getByTestId('btn')))
408
- expect(handleBlur).toHaveBeenCalledTimes(1)
409
- })
410
-
411
- it('should fire the onClick event', async () => {
412
- const handleClick = vi.fn()
413
-
414
- render(
415
- <Tooltip animate={false} text="Tooltip content">
416
- <Button data-testid="btn" mode="bleed" text="Hover me" onClick={handleClick} />
417
- </Tooltip>,
418
- )
419
-
420
- act(() => {
421
- fireEvent.click(screen.getByTestId('btn'))
422
- })
423
-
424
- await flushAll()
425
-
426
- expect(handleClick).toHaveBeenCalledTimes(1)
427
- })
428
-
429
- it('should fire the onContextMenu event', () => {
430
- const handleContextMenu = vi.fn()
431
-
432
- render(
433
- <Tooltip animate={false} text="Tooltip content">
434
- <Button
435
- data-testid="btn"
436
- mode="bleed"
437
- text="Hover me"
438
- onContextMenu={handleContextMenu}
439
- />
440
- </Tooltip>,
441
- )
442
-
443
- act(() => fireEvent.contextMenu(screen.getByTestId('btn')))
444
- expect(handleContextMenu).toHaveBeenCalledTimes(1)
445
- })
446
-
447
- it('should fire the onFocus event', async () => {
448
- const handleFocus = vi.fn()
449
-
450
- render(
451
- <Tooltip animate={false} text="Tooltip content">
452
- <Button data-testid="btn" mode="bleed" text="Hover me" onFocus={handleFocus} />
453
- </Tooltip>,
454
- )
455
-
456
- act(() => {
457
- fireEvent.focus(screen.getByTestId('btn'))
458
- })
459
-
460
- await flushAll()
461
-
462
- expect(handleFocus).toHaveBeenCalledTimes(1)
463
- })
464
-
465
- it('should fire the onMouseEnter event', async () => {
466
- const handleMouseEnter = vi.fn()
467
-
468
- render(
469
- <Tooltip animate={false} text="Tooltip content">
470
- <Button data-testid="btn" mode="bleed" text="Hover me" onMouseEnter={handleMouseEnter} />
471
- </Tooltip>,
472
- )
473
-
474
- act(() => {
475
- fireEvent.mouseEnter(screen.getByTestId('btn'))
476
- })
477
-
478
- await flushAll()
479
-
480
- expect(handleMouseEnter).toHaveBeenCalledTimes(1)
481
- })
482
-
483
- it('should fire the onMouseLeave event', () => {
484
- const handleMouseLeave = vi.fn()
485
-
486
- render(
487
- <Tooltip animate={false} text="Tooltip content">
488
- <Button data-testid="btn" mode="bleed" text="Hover me" onMouseLeave={handleMouseLeave} />
489
- </Tooltip>,
490
- )
491
-
492
- act(() => fireEvent.mouseLeave(screen.getByTestId('btn')))
493
- expect(handleMouseLeave).toHaveBeenCalledTimes(1)
494
- })
495
- })
496
- })