@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,86 +0,0 @@
1
- import {BoundaryElementProvider, Button, Card, Code, Flex, Text, Tooltip} from '@sanity/ui'
2
- import {useBoolean, useSelect, useText} from '@sanity/ui-workshop'
3
- import {useState} from 'react'
4
-
5
- import {WORKSHOP_PLACEMENT_OPTIONS} from '../../../__workshop__/constants'
6
-
7
- export default function ResizableBoundaryStory() {
8
- const content = useText(
9
- 'Content',
10
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut mollis consectetur malesuada. Sed lobortis est dolor, eget imperdiet velit placerat et. Aenean posuere mi non aliquet iaculis. Donec fermentum pulvinar purus at sagittis. Ut tincidunt massa odio, sed finibus justo ullamcorper id. Nam venenatis justo non ligula elementum cursus. Pellentesque laoreet justo in mollis sagittis. In lacinia ornare ultrices. Suspendisse potenti.',
11
- )
12
- const placement = useSelect('Placement', WORKSHOP_PLACEMENT_OPTIONS, 'right')
13
- const portal = useBoolean('Portal', true)
14
- const useBoundaryElement = useBoolean('Use boundary element', true)
15
-
16
- const [boundaryElement, setBoundaryElement] = useState<HTMLDivElement | null>(null)
17
-
18
- return (
19
- <Flex align="center" height="fill" justify="center">
20
- <BoundaryElementProvider element={useBoundaryElement ? boundaryElement : null}>
21
- <Card
22
- border
23
- ref={setBoundaryElement}
24
- style={{
25
- height: 'calc(100vh - 100px)',
26
- overflow: 'hidden',
27
- position: 'relative',
28
- resize: 'both',
29
- width: '500px',
30
- }}
31
- >
32
- <Flex align="center" height="fill" justify="center">
33
- <Flex justify="center">
34
- <Code size={1}>Placement: {placement}</Code>
35
- </Flex>
36
- </Flex>
37
-
38
- <Tooltip
39
- content={<Text size={1}>{content}</Text>}
40
- padding={2}
41
- placement={placement}
42
- portal={portal}
43
- >
44
- <Button mode="bleed" style={{position: 'absolute', top: 10, left: 10}} text="Tooltip" />
45
- </Tooltip>
46
- <Tooltip
47
- content={<Text size={1}>{content}</Text>}
48
- padding={2}
49
- placement={placement}
50
- portal={portal}
51
- >
52
- <Button
53
- mode="bleed"
54
- style={{position: 'absolute', top: 10, right: 10}}
55
- text="Tooltip"
56
- />
57
- </Tooltip>
58
- <Tooltip
59
- content={<Text size={1}>{content}</Text>}
60
- padding={2}
61
- placement={placement}
62
- portal={portal}
63
- >
64
- <Button
65
- mode="bleed"
66
- style={{position: 'absolute', bottom: 10, left: 10}}
67
- text="Tooltip"
68
- />
69
- </Tooltip>
70
- <Tooltip
71
- content={<Text size={1}>{content}</Text>}
72
- padding={2}
73
- placement={placement}
74
- portal={portal}
75
- >
76
- <Button
77
- mode="bleed"
78
- style={{position: 'absolute', bottom: 10, right: 10}}
79
- text="Tooltip"
80
- />
81
- </Tooltip>
82
- </Card>
83
- </BoundaryElementProvider>
84
- </Flex>
85
- )
86
- }
@@ -1,23 +0,0 @@
1
- import {Placement} from '@floating-ui/react-dom'
2
-
3
- export const DEFAULT_TOOLTIP_ARROW_WIDTH = 15
4
- export const DEFAULT_TOOLTIP_ARROW_HEIGHT = 6
5
- export const DEFAULT_TOOLTIP_ARROW_RADIUS = 2
6
-
7
- export const DEFAULT_TOOLTIP_DISTANCE = 4
8
- export const DEFAULT_TOOLTIP_PADDING = 4
9
-
10
- export const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {
11
- 'top': ['top-end', 'top-start', 'bottom', 'left', 'right'],
12
- 'top-start': ['top', 'top-end', 'bottom-start', 'left-start', 'right-start'],
13
- 'top-end': ['top', 'top-start', 'bottom-end', 'left-end', 'right-end'],
14
- 'bottom': ['bottom-end', 'bottom-start', 'top', 'left', 'right'],
15
- 'bottom-start': ['bottom', 'bottom-end', 'top-start', 'left-start', 'right-start'],
16
- 'bottom-end': ['bottom', 'bottom-start', 'top-end', 'left-end', 'right-end'],
17
- 'left': ['left-end', 'left-start', 'right', 'top', 'bottom'],
18
- 'left-start': ['left', 'left-end', 'right-start', 'top-start', 'bottom-start'],
19
- 'left-end': ['left', 'left-start', 'right-end', 'top-end', 'bottom-end'],
20
- 'right': ['right-end', 'right-start', 'left', 'top', 'bottom'],
21
- 'right-start': ['right', 'right-end', 'left-start', 'top-start', 'bottom-start'],
22
- 'right-end': ['right', 'right-start', 'left-end', 'top-end', 'bottom-end'],
23
- }
@@ -1,2 +0,0 @@
1
- export * from './tooltip'
2
- export * from './tooltipDelayGroup'
@@ -1,452 +0,0 @@
1
- /** @jest-environment jsdom */
2
- import '../../../../test/mocks/resizeObserver.mock'
3
- import '../../../../test/mocks/matchMedia.mock'
4
-
5
- import {act, fireEvent, screen} from '@testing-library/react'
6
-
7
- import {render} from '../../../../test'
8
- import {Button, Text} from '../../primitives'
9
- import {Tooltip, TooltipDelayGroupProvider} from '../tooltip'
10
-
11
- // Fake timers using Jest
12
- beforeEach(() => {
13
- jest.useFakeTimers()
14
- })
15
-
16
- // Running all pending timers and switching to real timers using Jest
17
- afterEach(() => {
18
- jest.runOnlyPendingTimers()
19
- jest.useRealTimers()
20
- })
21
-
22
- describe('Tooltip', () => {
23
- describe('Using same delay for open and close', () => {
24
- it('should hide and show the tooltip content when hovered, with no delay', () => {
25
- render(
26
- <Tooltip content={<Text size={1}>{'Tooltip content'}</Text>} placement={'top'}>
27
- <Button mode="bleed" text="Hover me" />
28
- </Tooltip>,
29
- )
30
-
31
- const button = screen.getByText('Hover me')
32
-
33
- // Validate tooltip content is not rendered
34
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
35
-
36
- fireEvent.mouseEnter(button)
37
-
38
- // Validate tooltip content is rendered
39
- screen.getByText('Tooltip content')
40
-
41
- fireEvent.mouseOut(button)
42
- // Validate tooltip content is not rendered anymore
43
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
44
- })
45
- it('should support delays to show and hide the tooltip.', () => {
46
- jest.useFakeTimers()
47
- const delay = 200
48
-
49
- render(
50
- <Tooltip
51
- content={<Text size={1}>{'Tooltip content'}</Text>}
52
- placement={'top'}
53
- delay={delay}
54
- >
55
- <Button mode="bleed" text="Hover me" />
56
- </Tooltip>,
57
- )
58
-
59
- const button = screen.getByText('Hover me')
60
-
61
- // Validate tooltip content is not rendered
62
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
63
-
64
- fireEvent.mouseEnter(button)
65
-
66
- act(() => jest.advanceTimersByTime(delay / 2))
67
- // Content should not be rendered yet
68
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
69
- act(() => jest.advanceTimersByTime(delay / 2))
70
-
71
- // Validate tooltip content is rendered
72
- screen.getByText('Tooltip content')
73
-
74
- fireEvent.mouseOut(button)
75
- // Validate tooltip content is still showing.
76
- screen.getByText('Tooltip content')
77
- act(() => jest.advanceTimersByTime(delay))
78
- // Validate tooltip content is not rendered anymore
79
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
80
- })
81
- it('should support different open and close delays to show and hide the tooltip.', () => {
82
- jest.useFakeTimers()
83
- const openDelay = 200
84
- const closeDelay = 150
85
-
86
- render(
87
- <Tooltip
88
- content={<Text size={1}>{'Tooltip content'}</Text>}
89
- placement={'top'}
90
- delay={{
91
- open: openDelay,
92
- close: closeDelay,
93
- }}
94
- >
95
- <Button mode="bleed" text="Hover me" />
96
- </Tooltip>,
97
- )
98
-
99
- const button = screen.getByText('Hover me')
100
-
101
- // Validate tooltip content is not rendered
102
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
103
-
104
- fireEvent.mouseEnter(button)
105
-
106
- act(() => jest.advanceTimersByTime(openDelay / 2))
107
- // Content should not be rendered yet
108
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
109
- act(() => jest.advanceTimersByTime(openDelay / 2))
110
-
111
- // Validate tooltip content is rendered
112
- screen.getByText('Tooltip content')
113
-
114
- fireEvent.mouseOut(button)
115
- // Validate tooltip content is still showing.
116
- screen.getByText('Tooltip content')
117
- act(() => jest.advanceTimersByTime(closeDelay))
118
- // Validate tooltip content is not rendered anymore
119
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
120
- })
121
- })
122
-
123
- describe('Using the <TooltipDelayGroupProvider />', () => {
124
- it('should support groups with the same delay to open and close.', () => {
125
- const delay = 150
126
-
127
- jest.useFakeTimers()
128
- render(
129
- <TooltipDelayGroupProvider delay={delay}>
130
- <Tooltip content={<Text size={1}>{'Tooltip 1'}</Text>} placement={'top'} delay={400}>
131
- <Button mode="bleed" text="Button 1" />
132
- </Tooltip>
133
- <Tooltip
134
- content={<Text size={1}>{'Tooltip 2'}</Text>}
135
- placement={'top'}
136
- delay={400} // This should be overridden by the group delay
137
- >
138
- <Button mode="bleed" text="Button 2" />
139
- </Tooltip>
140
- </TooltipDelayGroupProvider>,
141
- )
142
-
143
- const button1 = screen.getByText('Button 1')
144
- const button2 = screen.getByText('Button 2')
145
-
146
- // Validate tooltip content is not rendered
147
- expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
148
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
149
-
150
- // Hovers on first button, it should show first tooltip only
151
- fireEvent.mouseEnter(button1)
152
- act(() => jest.advanceTimersByTime(delay / 2))
153
- // Content should not be rendered yet, we have a delay of 150ms
154
- expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
155
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
156
- act(() => jest.advanceTimersByTime(delay / 2))
157
-
158
- // Validate Tooltip 1 is rendered
159
- screen.getByText('Tooltip 1')
160
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
161
-
162
- // Hovers on second button.
163
- fireEvent.mouseOut(button1)
164
- fireEvent.mouseEnter(button2)
165
-
166
- // Validate Tooltip 1 is not rendered, now tooltip 2 is open.
167
- act(() => jest.advanceTimersByTime(1))
168
- expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
169
- screen.getByText('Tooltip 2')
170
-
171
- // Validate tooltip content is not rendered anymore
172
- fireEvent.mouseOut(button2)
173
- act(() => jest.advanceTimersByTime(delay + 1))
174
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
175
-
176
- // Hovering again, should trigger the tooltip to show immediately, as the group is not deactivated yet
177
- fireEvent.mouseEnter(button2)
178
- act(() => jest.advanceTimersByTime(1))
179
- screen.getByText('Tooltip 2')
180
-
181
- // Validate tooltip content is not rendered anymore
182
- fireEvent.mouseOut(button2)
183
- act(() => jest.advanceTimersByTime(delay + 1))
184
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
185
-
186
- // Wait 200ms, the group is deactivated, hovering again should trigger the delay
187
- act(() => jest.advanceTimersByTime(200))
188
- fireEvent.mouseEnter(button2)
189
- act(() => jest.advanceTimersByTime(delay / 2))
190
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
191
- act(() => jest.advanceTimersByTime(delay / 2))
192
- screen.getByText('Tooltip 2')
193
- })
194
- it('should support groups with different open and close delay.', () => {
195
- const openDelay = 250
196
- const closeDelay = 150
197
-
198
- jest.useFakeTimers()
199
- render(
200
- <TooltipDelayGroupProvider
201
- delay={{
202
- open: openDelay,
203
- close: closeDelay,
204
- }}
205
- >
206
- <Tooltip content={<Text size={1}>{'Tooltip 1'}</Text>} placement={'top'} delay={400}>
207
- <Button mode="bleed" text="Button 1" />
208
- </Tooltip>
209
- <Tooltip
210
- content={<Text size={1}>{'Tooltip 2'}</Text>}
211
- placement={'top'}
212
- delay={400} // This should be overridden by the group delay
213
- >
214
- <Button mode="bleed" text="Button 2" />
215
- </Tooltip>
216
- </TooltipDelayGroupProvider>,
217
- )
218
-
219
- const button1 = screen.getByText('Button 1')
220
- const button2 = screen.getByText('Button 2')
221
-
222
- // Validate tooltip content is not rendered
223
- expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
224
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
225
-
226
- // Hovers on first button, it should show first tooltip only
227
- fireEvent.mouseEnter(button1)
228
- act(() => jest.advanceTimersByTime(openDelay / 2))
229
- // Content should not be rendered yet, we have a delay of2150ms
230
- expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
231
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
232
- act(() => jest.advanceTimersByTime(openDelay / 2))
233
-
234
- // Validate Tooltip 1 is rendered
235
- screen.getByText('Tooltip 1')
236
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
237
-
238
- // Hovers on second button.
239
- fireEvent.mouseOut(button1)
240
- fireEvent.mouseEnter(button2)
241
-
242
- // Validate Tooltip 1 is not rendered, now tooltip 2 is open.
243
- act(() => jest.advanceTimersByTime(1))
244
- expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
245
- screen.getByText('Tooltip 2')
246
-
247
- // Validate tooltip content is not rendered anymore
248
- fireEvent.mouseOut(button2)
249
- act(() => jest.advanceTimersByTime(closeDelay + 1))
250
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
251
-
252
- // Hovering again, should trigger the tooltip to show immediately, as the group is not deactivated yet
253
- fireEvent.mouseEnter(button2)
254
- act(() => jest.advanceTimersByTime(1))
255
- screen.getByText('Tooltip 2')
256
-
257
- // Validate tooltip content is not rendered anymore
258
- fireEvent.mouseOut(button2)
259
- act(() => jest.advanceTimersByTime(closeDelay + 1))
260
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
261
-
262
- // Wait 200ms, the group is deactivated, hovering again should trigger the delay
263
- act(() => jest.advanceTimersByTime(200))
264
- fireEvent.mouseEnter(button2)
265
- act(() => jest.advanceTimersByTime(openDelay / 2))
266
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
267
- act(() => jest.advanceTimersByTime(openDelay / 2))
268
- screen.getByText('Tooltip 2')
269
- })
270
- })
271
-
272
- describe('Closing the <Tooltip /> with the Escape key', () => {
273
- it('Standalone tooltip closes immediately with Escape key', () => {
274
- const delay = 150
275
-
276
- jest.useFakeTimers()
277
-
278
- render(
279
- <Tooltip
280
- content={<Text size={1}>{'Tooltip content'}</Text>}
281
- placement={'top'}
282
- delay={delay}
283
- >
284
- <Button mode="bleed" text="Hover me" />
285
- </Tooltip>,
286
- )
287
-
288
- const button = screen.getByText('Hover me')
289
-
290
- // Validate tooltip content is not rendered
291
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
292
- fireEvent.focus(button)
293
- act(() => jest.advanceTimersByTime(delay))
294
-
295
- // Validate tooltip content is rendered
296
- screen.getByText('Tooltip content')
297
-
298
- act(() => {
299
- fireEvent.keyDown(button, {key: 'Escape', code: 'Escape'})
300
- })
301
- // Validate tooltip content is not rendered anymore
302
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
303
- })
304
- it('With <TooltipDelayGroupProvider /> closes immediately with Escape key', () => {
305
- const delay = 150
306
-
307
- jest.useFakeTimers()
308
-
309
- render(
310
- <TooltipDelayGroupProvider delay={{close: delay}}>
311
- <Tooltip
312
- content={<Text size={1}>{'Tooltip content'}</Text>}
313
- placement={'top'}
314
- delay={{close: delay}}
315
- >
316
- <Button mode="bleed" text="Hover me" />
317
- </Tooltip>
318
- </TooltipDelayGroupProvider>,
319
- )
320
-
321
- const button = screen.getByText('Hover me')
322
-
323
- // Validate tooltip content is not rendered
324
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
325
- fireEvent.focus(button)
326
-
327
- act(() => jest.advanceTimersByTime(delay))
328
-
329
- // Validate tooltip content is rendered
330
- screen.getByText('Tooltip content')
331
-
332
- act(() => {
333
- fireEvent.keyDown(button, {key: 'Escape', code: 'Escape'})
334
- })
335
- // Validate tooltip content is not rendered anymore
336
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
337
- })
338
- })
339
-
340
- describe('Clicking the <Tooltip /> child should close the tooltip', () => {
341
- it('Should close the tooltip when clicked', () => {
342
- const delay = 150
343
-
344
- render(
345
- <Tooltip content={<Text size={1}>{'Tooltip content'}</Text>} delay={delay}>
346
- <Button mode="bleed" text="Hover me" />
347
- </Tooltip>,
348
- )
349
-
350
- const button = screen.getByText('Hover me')
351
-
352
- // Assertion: tooltip does not exist in the document
353
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
354
- fireEvent.focus(button)
355
-
356
- act(() => jest.advanceTimersByTime(delay))
357
-
358
- // Assertion: the tooltip is not visible
359
- expect(screen.queryByText('Tooltip content')).toBeVisible()
360
-
361
- act(() => fireEvent.click(button))
362
-
363
- // Assertion: tooltip does not exist in the document
364
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
365
- })
366
-
367
- it('Should close the tooltip when the context menu is opened (right click)', () => {
368
- const delay = 150
369
-
370
- render(
371
- <Tooltip content={<Text size={1}>{'Tooltip content'}</Text>} delay={delay}>
372
- <Button mode="bleed" text="Hover me" />
373
- </Tooltip>,
374
- )
375
-
376
- const button = screen.getByText('Hover me')
377
-
378
- // Assertion: tooltip does not exist in the document
379
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
380
- fireEvent.focus(button)
381
-
382
- act(() => jest.advanceTimersByTime(delay))
383
-
384
- // Assertion: the tooltip is not visible
385
- expect(screen.queryByText('Tooltip content')).toBeVisible()
386
-
387
- act(() => fireEvent.contextMenu(button))
388
-
389
- // Assertion: tooltip does not exist in the document
390
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
391
- })
392
- })
393
-
394
- describe('Used defined events on <Tooltip /> child should fire correctly', () => {
395
- const handleBlur = jest.fn()
396
- const handleClick = jest.fn()
397
- const handleContextMenu = jest.fn()
398
- const handleFocus = jest.fn()
399
- const handleMouseEnter = jest.fn()
400
- const handleMouseLeave = jest.fn()
401
-
402
- beforeEach(() => {
403
- render(
404
- <Tooltip content={<Text size={1}>{'Tooltip content'}</Text>}>
405
- <Button
406
- data-testid="btn"
407
- mode="bleed"
408
- onBlur={handleBlur}
409
- onClick={handleClick}
410
- onContextMenu={handleContextMenu}
411
- onFocus={handleFocus}
412
- onMouseEnter={handleMouseEnter}
413
- onMouseLeave={handleMouseLeave}
414
- text="Hover me"
415
- />
416
- </Tooltip>,
417
- )
418
- })
419
-
420
- afterEach(() => jest.clearAllMocks())
421
-
422
- it('should fire the onBlur event', () => {
423
- fireEvent.blur(screen.getByTestId('btn'))
424
- expect(handleBlur).toHaveBeenCalledTimes(1)
425
- })
426
-
427
- it('should fire the onClick event', () => {
428
- fireEvent.click(screen.getByTestId('btn'))
429
- expect(handleClick).toHaveBeenCalledTimes(1)
430
- })
431
-
432
- it('should fire the onContextMenu event', () => {
433
- fireEvent.contextMenu(screen.getByTestId('btn'))
434
- expect(handleContextMenu).toHaveBeenCalledTimes(1)
435
- })
436
-
437
- it('should fire the onFocus event', () => {
438
- fireEvent.focus(screen.getByTestId('btn'))
439
- expect(handleFocus).toHaveBeenCalledTimes(1)
440
- })
441
-
442
- it('should fire the onMouseEnter event', () => {
443
- fireEvent.mouseEnter(screen.getByTestId('btn'))
444
- expect(handleMouseEnter).toHaveBeenCalledTimes(1)
445
- })
446
-
447
- it('should fire the onMouseLeave event', () => {
448
- fireEvent.mouseLeave(screen.getByTestId('btn'))
449
- expect(handleMouseLeave).toHaveBeenCalledTimes(1)
450
- })
451
- })
452
- })