@sanity/ui 4.0.0-beta.8 → 4.0.0-next.2

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 (381) 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/refractor.cjs +18 -0
  8. package/dist/_chunks/refractor.cjs.map +1 -0
  9. package/dist/_chunks/refractor.js +20 -0
  10. package/dist/_chunks/refractor.js.map +1 -0
  11. package/dist/_chunks/rgba.d.cts +929 -0
  12. package/dist/_chunks/rgba.d.cts.map +1 -0
  13. package/dist/_chunks/rgba.d.ts +929 -0
  14. package/dist/_chunks/rgba.d.ts.map +1 -0
  15. package/dist/index.cjs +6243 -0
  16. package/dist/index.cjs.map +1 -0
  17. package/dist/index.d.cts +2332 -0
  18. package/dist/index.d.cts.map +1 -0
  19. package/dist/index.d.ts +1767 -1190
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +6134 -4725
  22. package/dist/index.js.map +1 -1
  23. package/dist/theme.cjs +54 -0
  24. package/dist/theme.cjs.map +1 -0
  25. package/dist/theme.d.cts +278 -0
  26. package/dist/theme.d.cts.map +1 -0
  27. package/dist/theme.d.ts +278 -0
  28. package/dist/theme.d.ts.map +1 -0
  29. package/dist/theme.js +53 -0
  30. package/dist/theme.js.map +1 -0
  31. package/package.json +55 -86
  32. package/dist/_chunks-es/Syntax.js +0 -23
  33. package/dist/_chunks-es/Syntax.js.map +0 -1
  34. package/dist/index.css +0 -1
  35. package/exports/index.css +0 -1
  36. package/exports/index.ts +0 -125
  37. package/src/components/autocomplete/Autocomplete.tsx +0 -665
  38. package/src/components/autocomplete/AutocompleteOption.tsx +0 -42
  39. package/src/components/autocomplete/__workshop__/Async.tsx +0 -162
  40. package/src/components/autocomplete/__workshop__/ConstrainedHeight.tsx +0 -121
  41. package/src/components/autocomplete/__workshop__/Custom.tsx +0 -91
  42. package/src/components/autocomplete/__workshop__/Example.tsx +0 -70
  43. package/src/components/autocomplete/__workshop__/FocusAndBlur.tsx +0 -39
  44. package/src/components/autocomplete/__workshop__/Fullscreen.tsx +0 -307
  45. package/src/components/autocomplete/__workshop__/index.ts +0 -41
  46. package/src/components/autocomplete/__workshop__/mock/apiStore.ts +0 -49
  47. package/src/components/autocomplete/__workshop__/mock/countries.ts +0 -245
  48. package/src/components/autocomplete/__workshop__/types.ts +0 -4
  49. package/src/components/autocomplete/autocompleteReducer.ts +0 -47
  50. package/src/components/autocomplete/constants.ts +0 -28
  51. package/src/components/autocomplete/types.ts +0 -103
  52. package/src/components/breadcrumbs/Breadcrumbs.tsx +0 -163
  53. package/src/components/breadcrumbs/__workshop__/Example.tsx +0 -48
  54. package/src/components/breadcrumbs/__workshop__/index.ts +0 -16
  55. package/src/components/dialog/Dialog.tsx +0 -230
  56. package/src/components/dialog/DialogCard.tsx +0 -233
  57. package/src/components/dialog/DialogContext.ts +0 -21
  58. package/src/components/dialog/DialogProvider.tsx +0 -34
  59. package/src/components/dialog/__workshop__/Activate.tsx +0 -141
  60. package/src/components/dialog/__workshop__/AutoFocus.tsx +0 -29
  61. package/src/components/dialog/__workshop__/Layering.tsx +0 -41
  62. package/src/components/dialog/__workshop__/Nested.tsx +0 -71
  63. package/src/components/dialog/__workshop__/OnScroll.tsx +0 -51
  64. package/src/components/dialog/__workshop__/Panes.tsx +0 -75
  65. package/src/components/dialog/__workshop__/Position.tsx +0 -30
  66. package/src/components/dialog/__workshop__/Props.tsx +0 -93
  67. package/src/components/dialog/__workshop__/Provider.tsx +0 -11
  68. package/src/components/dialog/__workshop__/Wrapped.tsx +0 -76
  69. package/src/components/dialog/__workshop__/index.ts +0 -21
  70. package/src/components/dialog/isTargetWithinScope.ts +0 -14
  71. package/src/components/dialog/types.ts +0 -2
  72. package/src/components/dialog/useDialog.ts +0 -11
  73. package/src/components/hotkeys/Hotkeys.tsx +0 -70
  74. package/src/components/hotkeys/__workshop__/Plain.tsx +0 -9
  75. package/src/components/hotkeys/__workshop__/index.ts +0 -16
  76. package/src/components/menu/Menu.test.tsx +0 -125
  77. package/src/components/menu/Menu.tsx +0 -174
  78. package/src/components/menu/MenuButton.tsx +0 -231
  79. package/src/components/menu/MenuContext.ts +0 -19
  80. package/src/components/menu/MenuDivider.tsx +0 -32
  81. package/src/components/menu/MenuGroup.tsx +0 -240
  82. package/src/components/menu/MenuItem.tsx +0 -153
  83. package/src/components/menu/__workshop__/AsComponent.tsx +0 -45
  84. package/src/components/menu/__workshop__/AvatarMenu.tsx +0 -36
  85. package/src/components/menu/__workshop__/ClosableMenuButton.tsx +0 -47
  86. package/src/components/menu/__workshop__/ConstrainedInBoundary.tsx +0 -133
  87. package/src/components/menu/__workshop__/CustomMenuItem.tsx +0 -47
  88. package/src/components/menu/__workshop__/CustomSelectedState.tsx +0 -35
  89. package/src/components/menu/__workshop__/DataProps.tsx +0 -27
  90. package/src/components/menu/__workshop__/DisableFocusOnClose.tsx +0 -40
  91. package/src/components/menu/__workshop__/Groups.tsx +0 -164
  92. package/src/components/menu/__workshop__/MenuButton.tsx +0 -79
  93. package/src/components/menu/__workshop__/MenuGroupRight.tsx +0 -73
  94. package/src/components/menu/__workshop__/NestedMenu.tsx +0 -22
  95. package/src/components/menu/__workshop__/OnCloseMenuButton.tsx +0 -50
  96. package/src/components/menu/__workshop__/SelectedItem.tsx +0 -69
  97. package/src/components/menu/__workshop__/ShouldFocus.tsx +0 -42
  98. package/src/components/menu/__workshop__/Tones.tsx +0 -19
  99. package/src/components/menu/__workshop__/index.ts +0 -91
  100. package/src/components/menu/helpers.ts +0 -82
  101. package/src/components/menu/useMenu.ts +0 -21
  102. package/src/components/menu/useMenuController.ts +0 -245
  103. package/src/components/tab/Tab.tsx +0 -135
  104. package/src/components/tab/TabList.tsx +0 -157
  105. package/src/components/tab/TabListContext.ts +0 -10
  106. package/src/components/tab/TabPanel.tsx +0 -94
  107. package/src/components/tab/__workshop__/Example.tsx +0 -135
  108. package/src/components/tab/__workshop__/index.ts +0 -16
  109. package/src/components/tab/types.ts +0 -11
  110. package/src/components/toast/Toast.test.tsx +0 -103
  111. package/src/components/toast/Toast.tsx +0 -191
  112. package/src/components/toast/ToastContext.ts +0 -7
  113. package/src/components/toast/ToastLayer.tsx +0 -54
  114. package/src/components/toast/ToastProvider.tsx +0 -127
  115. package/src/components/toast/__workshop__/Hook.tsx +0 -71
  116. package/src/components/toast/__workshop__/Toast.tsx +0 -26
  117. package/src/components/toast/__workshop__/index.ts +0 -21
  118. package/src/components/toast/toastState.ts +0 -6
  119. package/src/components/toast/types.ts +0 -24
  120. package/src/components/toast/useToast.ts +0 -23
  121. package/src/components/tree/Tree.tsx +0 -248
  122. package/src/components/tree/TreeContext.ts +0 -10
  123. package/src/components/tree/TreeGroup.tsx +0 -46
  124. package/src/components/tree/TreeItem.tsx +0 -236
  125. package/src/components/tree/__workshop__/Basic.tsx +0 -108
  126. package/src/components/tree/__workshop__/TabFromElement.tsx +0 -84
  127. package/src/components/tree/__workshop__/basic.perf.ts +0 -19
  128. package/src/components/tree/__workshop__/index.ts +0 -23
  129. package/src/components/tree/helpers.ts +0 -105
  130. package/src/components/tree/types.ts +0 -24
  131. package/src/components/tree/useTree.ts +0 -17
  132. package/src/components/virtualList/VirtualList.tsx +0 -254
  133. package/src/components/virtualList/__workshop__/ChangingProps.tsx +0 -41
  134. package/src/components/virtualList/__workshop__/ElementScroll.tsx +0 -43
  135. package/src/components/virtualList/__workshop__/InfiniteList.tsx +0 -40
  136. package/src/components/virtualList/__workshop__/WindowScrolll.tsx +0 -23
  137. package/src/components/virtualList/__workshop__/index.ts +0 -31
  138. package/src/core/_keys.ts +0 -26
  139. package/src/core/constants.ts +0 -67
  140. package/src/core/getElementRef.ts +0 -29
  141. package/src/core/helpers/animation.ts +0 -26
  142. package/src/core/helpers/element.ts +0 -55
  143. package/src/core/helpers/focus.ts +0 -92
  144. package/src/core/helpers/props.ts +0 -51
  145. package/src/core/helpers/scroll.ts +0 -15
  146. package/src/core/lib/createGlobalScopedContext.ts +0 -39
  147. package/src/core/lib/globalScope.ts +0 -19
  148. package/src/core/lib/isArray.ts +0 -3
  149. package/src/core/lib/isRecord.ts +0 -3
  150. package/src/core/types.ts +0 -57
  151. package/src/hooks/useClickOutsideEvent.test.tsx +0 -114
  152. package/src/hooks/useClickOutsideEvent.ts +0 -66
  153. package/src/hooks/useCustomValidity.ts +0 -13
  154. package/src/hooks/useElementSize.ts +0 -19
  155. package/src/hooks/useGlobalKeyDown.ts +0 -23
  156. package/src/hooks/useMatchMedia.ts +0 -28
  157. package/src/hooks/useMediaIndex/__workshop__/Test.tsx +0 -14
  158. package/src/hooks/useMediaIndex/__workshop__/index.ts +0 -16
  159. package/src/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -21
  160. package/src/hooks/useMediaIndex/useMediaIndex.ts +0 -111
  161. package/src/hooks/useMounted.ts +0 -15
  162. package/src/hooks/usePrefersDark.hydration.test.tsx +0 -56
  163. package/src/hooks/usePrefersDark.test.tsx +0 -20
  164. package/src/hooks/usePrefersDark.ts +0 -16
  165. package/src/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -56
  166. package/src/hooks/usePrefersReducedMotion.test.tsx +0 -20
  167. package/src/hooks/usePrefersReducedMotion.ts +0 -16
  168. package/src/hooks/useResponsiveProp.ts +0 -14
  169. package/src/hooks/useUnique.ts +0 -54
  170. package/src/middleware/origin.ts +0 -47
  171. package/src/observers/elementSize.ts +0 -114
  172. package/src/primitives/_syntax/LazySyntax.tsx +0 -4
  173. package/src/primitives/_syntax/Syntax.tsx +0 -26
  174. package/src/primitives/avatar/Avatar.tsx +0 -145
  175. package/src/primitives/avatar/AvatarCounter.tsx +0 -69
  176. package/src/primitives/avatar/AvatarStack.tsx +0 -77
  177. package/src/primitives/avatar/__workshop__/AsButton.tsx +0 -12
  178. package/src/primitives/avatar/__workshop__/PropsStory.tsx +0 -24
  179. package/src/primitives/avatar/__workshop__/Stack.tsx +0 -27
  180. package/src/primitives/avatar/__workshop__/WithinButton.tsx +0 -51
  181. package/src/primitives/avatar/__workshop__/WithinMenuItem.tsx +0 -52
  182. package/src/primitives/avatar/__workshop__/index.ts +0 -36
  183. package/src/primitives/avatar/types.ts +0 -2
  184. package/src/primitives/badge/Badge.test.tsx +0 -16
  185. package/src/primitives/badge/Badge.tsx +0 -53
  186. package/src/primitives/badge/__workshop__/Props.tsx +0 -27
  187. package/src/primitives/badge/__workshop__/Tones.tsx +0 -15
  188. package/src/primitives/badge/__workshop__/index.ts +0 -26
  189. package/src/primitives/badge/__workshop__/within-button.tsx +0 -36
  190. package/src/primitives/box/Box.tsx +0 -73
  191. package/src/primitives/box/__workshop__/Props.tsx +0 -26
  192. package/src/primitives/box/__workshop__/Responsive.tsx +0 -19
  193. package/src/primitives/box/__workshop__/index.ts +0 -21
  194. package/src/primitives/button/Button.test.tsx +0 -30
  195. package/src/primitives/button/Button.tsx +0 -148
  196. package/src/primitives/button/__workshop__/Custom.tsx +0 -39
  197. package/src/primitives/button/__workshop__/CustomIcons.tsx +0 -37
  198. package/src/primitives/button/__workshop__/DataProps.tsx +0 -18
  199. package/src/primitives/button/__workshop__/Disabled.tsx +0 -43
  200. package/src/primitives/button/__workshop__/MixedChildren.tsx +0 -12
  201. package/src/primitives/button/__workshop__/Props.tsx +0 -60
  202. package/src/primitives/button/__workshop__/Stacked.tsx +0 -60
  203. package/src/primitives/button/__workshop__/Styled1.css.ts +0 -7
  204. package/src/primitives/button/__workshop__/Styled1.tsx +0 -11
  205. package/src/primitives/button/__workshop__/TextOverflow.tsx +0 -17
  206. package/src/primitives/button/__workshop__/UploadButton.tsx +0 -28
  207. package/src/primitives/button/__workshop__/index.ts +0 -61
  208. package/src/primitives/button/types.ts +0 -2
  209. package/src/primitives/card/Card.tsx +0 -124
  210. package/src/primitives/card/CardContext.ts +0 -10
  211. package/src/primitives/card/CardInternalContext.ts +0 -10
  212. package/src/primitives/card/CardInternalProvider.tsx +0 -15
  213. package/src/primitives/card/CardProvider.tsx +0 -16
  214. package/src/primitives/card/__workshop__/AsButton.tsx +0 -103
  215. package/src/primitives/card/__workshop__/AsComponent.tsx +0 -25
  216. package/src/primitives/card/__workshop__/Checkered.tsx +0 -25
  217. package/src/primitives/card/__workshop__/DataProps.tsx +0 -25
  218. package/src/primitives/card/__workshop__/Interactive.tsx +0 -29
  219. package/src/primitives/card/__workshop__/ListNavigation.tsx +0 -78
  220. package/src/primitives/card/__workshop__/Props.tsx +0 -59
  221. package/src/primitives/card/__workshop__/Selected.tsx +0 -62
  222. package/src/primitives/card/__workshop__/Styled.tsx +0 -11
  223. package/src/primitives/card/__workshop__/Tones.tsx +0 -26
  224. package/src/primitives/card/__workshop__/index.ts +0 -21
  225. package/src/primitives/card/types.ts +0 -21
  226. package/src/primitives/card/useCard.ts +0 -20
  227. package/src/primitives/checkbox/Checkbox.tsx +0 -80
  228. package/src/primitives/checkbox/__workshop__/Example.tsx +0 -25
  229. package/src/primitives/checkbox/__workshop__/Props.tsx +0 -35
  230. package/src/primitives/checkbox/__workshop__/ReadOnly.tsx +0 -16
  231. package/src/primitives/checkbox/__workshop__/Tones.tsx +0 -26
  232. package/src/primitives/checkbox/__workshop__/index.ts +0 -15
  233. package/src/primitives/code/Code.tsx +0 -47
  234. package/src/primitives/code/__workshop__/OpticalAlignment.tsx +0 -25
  235. package/src/primitives/code/__workshop__/Props.tsx +0 -20
  236. package/src/primitives/code/__workshop__/index.ts +0 -21
  237. package/src/primitives/container/Container.tsx +0 -43
  238. package/src/primitives/container/__workshop__/Example.tsx +0 -16
  239. package/src/primitives/container/__workshop__/index.ts +0 -16
  240. package/src/primitives/container/types.ts +0 -6
  241. package/src/primitives/flex/Flex.tsx +0 -38
  242. package/src/primitives/flex/__workshop__/Example.tsx +0 -26
  243. package/src/primitives/flex/__workshop__/Gap.tsx +0 -25
  244. package/src/primitives/flex/__workshop__/index.ts +0 -13
  245. package/src/primitives/flex/__workshop__/styles.css.ts +0 -12
  246. package/src/primitives/grid/Grid.tsx +0 -38
  247. package/src/primitives/grid/__workshop__/Responsive.tsx +0 -54
  248. package/src/primitives/grid/__workshop__/index.ts +0 -12
  249. package/src/primitives/heading/Heading.tsx +0 -68
  250. package/src/primitives/heading/__workshop__/OpticalAlignment.tsx +0 -27
  251. package/src/primitives/heading/__workshop__/Plain.tsx +0 -25
  252. package/src/primitives/heading/__workshop__/index.ts +0 -21
  253. package/src/primitives/inline/Inline.tsx +0 -37
  254. package/src/primitives/inline/__workshop__/Plain.tsx +0 -22
  255. package/src/primitives/inline/__workshop__/index.ts +0 -10
  256. package/src/primitives/kbd/Kbd.tsx +0 -36
  257. package/src/primitives/kbd/__workshop__/Plain.tsx +0 -9
  258. package/src/primitives/kbd/__workshop__/index.ts +0 -10
  259. package/src/primitives/label/Label.tsx +0 -67
  260. package/src/primitives/label/__workshop__/OpticalAlignment.tsx +0 -27
  261. package/src/primitives/label/__workshop__/Plain.tsx +0 -27
  262. package/src/primitives/label/__workshop__/index.ts +0 -21
  263. package/src/primitives/layer/Layer.test.tsx +0 -110
  264. package/src/primitives/layer/Layer.tsx +0 -35
  265. package/src/primitives/layer/LayerCard.tsx +0 -90
  266. package/src/primitives/layer/LayerContext.ts +0 -7
  267. package/src/primitives/layer/LayerProvider.tsx +0 -106
  268. package/src/primitives/layer/__workshop__/MultipleRoots.tsx +0 -49
  269. package/src/primitives/layer/__workshop__/Nested.tsx +0 -107
  270. package/src/primitives/layer/__workshop__/ResponsiveZOffset.tsx +0 -17
  271. package/src/primitives/layer/__workshop__/_debug.tsx +0 -17
  272. package/src/primitives/layer/__workshop__/index.ts +0 -26
  273. package/src/primitives/layer/getLayerContext.test.ts +0 -32
  274. package/src/primitives/layer/getLayerContext.ts +0 -21
  275. package/src/primitives/layer/types.ts +0 -9
  276. package/src/primitives/layer/useLayer.ts +0 -24
  277. package/src/primitives/popover/Popover.tsx +0 -291
  278. package/src/primitives/popover/PopoverLayer.tsx +0 -101
  279. package/src/primitives/popover/__workshop__/AlignedStory.tsx +0 -75
  280. package/src/primitives/popover/__workshop__/MarginsStory.tsx +0 -31
  281. package/src/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
  282. package/src/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -11
  283. package/src/primitives/popover/__workshop__/PlainStory.tsx +0 -67
  284. package/src/primitives/popover/__workshop__/RecursiveStory.tsx +0 -71
  285. package/src/primitives/popover/__workshop__/SidePanelStory.tsx +0 -95
  286. package/src/primitives/popover/__workshop__/TestStory.tsx +0 -97
  287. package/src/primitives/popover/__workshop__/index.ts +0 -56
  288. package/src/primitives/popover/__workshop__/portal-inheritance.tsx +0 -15
  289. package/src/primitives/popover/constants.ts +0 -20
  290. package/src/primitives/popover/floating-ui/size.ts +0 -75
  291. package/src/primitives/popover/types.ts +0 -12
  292. package/src/primitives/popover/useMiddleware.ts +0 -126
  293. package/src/primitives/radio/Radio.tsx +0 -64
  294. package/src/primitives/radio/__workshop__/Example.tsx +0 -63
  295. package/src/primitives/radio/__workshop__/Plain.tsx +0 -28
  296. package/src/primitives/radio/__workshop__/index.ts +0 -13
  297. package/src/primitives/select/Select.tsx +0 -76
  298. package/src/primitives/select/__workshop__/Plain.tsx +0 -37
  299. package/src/primitives/select/__workshop__/ReadOnly.tsx +0 -23
  300. package/src/primitives/select/__workshop__/index.ts +0 -13
  301. package/src/primitives/selectable/Selectable.tsx +0 -48
  302. package/src/primitives/selectable/__workshop__/DataProps.tsx +0 -24
  303. package/src/primitives/selectable/__workshop__/as-link.tsx +0 -13
  304. package/src/primitives/selectable/__workshop__/index.ts +0 -19
  305. package/src/primitives/skeleton/CodeSkeleton.tsx +0 -49
  306. package/src/primitives/skeleton/HeadingSkeleton.tsx +0 -48
  307. package/src/primitives/skeleton/LabelSkeleton.tsx +0 -47
  308. package/src/primitives/skeleton/Skeleton.tsx +0 -70
  309. package/src/primitives/skeleton/TextSkeleton.tsx +0 -49
  310. package/src/primitives/skeleton/__workshop__/Delay.tsx +0 -69
  311. package/src/primitives/skeleton/__workshop__/Skeleton.tsx +0 -63
  312. package/src/primitives/skeleton/__workshop__/index.ts +0 -13
  313. package/src/primitives/spinner/Spinner.tsx +0 -45
  314. package/src/primitives/spinner/SpinnerAnimatedIcon.tsx +0 -14
  315. package/src/primitives/spinner/__workshop__/Props.tsx +0 -13
  316. package/src/primitives/spinner/__workshop__/index.ts +0 -16
  317. package/src/primitives/srOnly/SrOnly.tsx +0 -33
  318. package/src/primitives/stack/Stack.tsx +0 -38
  319. package/src/primitives/stack/__workshop__/Plain.tsx +0 -30
  320. package/src/primitives/stack/__workshop__/index.ts +0 -16
  321. package/src/primitives/switch/Switch.tsx +0 -76
  322. package/src/primitives/switch/__workshop__/Example.tsx +0 -25
  323. package/src/primitives/switch/__workshop__/Props.tsx +0 -23
  324. package/src/primitives/switch/__workshop__/index.ts +0 -13
  325. package/src/primitives/text/InlineCode.tsx +0 -25
  326. package/src/primitives/text/Text.tsx +0 -68
  327. package/src/primitives/text/__workshop__/Example.tsx +0 -26
  328. package/src/primitives/text/__workshop__/OpticalAlignment.tsx +0 -27
  329. package/src/primitives/text/__workshop__/index.ts +0 -26
  330. package/src/primitives/text/__workshop__/inline-code.tsx +0 -13
  331. package/src/primitives/textArea/TextArea.tsx +0 -97
  332. package/src/primitives/textArea/__workshop__/Plain.tsx +0 -46
  333. package/src/primitives/textArea/__workshop__/index.ts +0 -16
  334. package/src/primitives/textInput/TextInput.tsx +0 -279
  335. package/src/primitives/textInput/__workshop__/ClearButton.tsx +0 -32
  336. package/src/primitives/textInput/__workshop__/CustomValidity.tsx +0 -17
  337. package/src/primitives/textInput/__workshop__/Plain.tsx +0 -102
  338. package/src/primitives/textInput/__workshop__/ReadOnly.tsx +0 -14
  339. package/src/primitives/textInput/__workshop__/States.tsx +0 -53
  340. package/src/primitives/textInput/__workshop__/Tones.tsx +0 -40
  341. package/src/primitives/textInput/__workshop__/Typed.tsx +0 -23
  342. package/src/primitives/textInput/__workshop__/index.ts +0 -46
  343. package/src/primitives/tooltip/Tooltip.test.tsx +0 -496
  344. package/src/primitives/tooltip/Tooltip.tsx +0 -546
  345. package/src/primitives/tooltip/TooltipLayer.tsx +0 -72
  346. package/src/primitives/tooltip/__workshop__/CustomPortal.tsx +0 -102
  347. package/src/primitives/tooltip/__workshop__/OverflowingBoundary.tsx +0 -74
  348. package/src/primitives/tooltip/__workshop__/Props.tsx +0 -107
  349. package/src/primitives/tooltip/__workshop__/ResizableBoundary.tsx +0 -91
  350. package/src/primitives/tooltip/__workshop__/index.ts +0 -31
  351. package/src/primitives/tooltip/constants.ts +0 -24
  352. package/src/primitives/tooltip/tooltipDelayGroup/TooltipDelayGroupContext.tsx +0 -13
  353. package/src/primitives/tooltip/tooltipDelayGroup/TooltipDelayGroupProvider.tsx +0 -96
  354. package/src/primitives/tooltip/tooltipDelayGroup/types.ts +0 -7
  355. package/src/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -13
  356. package/src/root/Root.tsx +0 -93
  357. package/src/root/RootProvider.tsx +0 -37
  358. package/src/root/__workshop__/Boundary.tsx +0 -43
  359. package/src/root/__workshop__/index.ts +0 -24
  360. package/src/root/__workshop__/primitives.tsx +0 -49
  361. package/src/root/__workshop__/tone-inheritance.tsx +0 -65
  362. package/src/utils/ErrorBoundary.tsx +0 -50
  363. package/src/utils/boundaryElement/BoundaryElementContext.ts +0 -7
  364. package/src/utils/boundaryElement/BoundaryElementProvider.tsx +0 -16
  365. package/src/utils/boundaryElement/__workshop__/Plain.tsx +0 -49
  366. package/src/utils/boundaryElement/__workshop__/index.ts +0 -16
  367. package/src/utils/boundaryElement/types.ts +0 -2
  368. package/src/utils/boundaryElement/useBoundaryElement.ts +0 -12
  369. package/src/utils/elementQuery/ElementQuery.tsx +0 -75
  370. package/src/utils/elementQuery/__workshop__/CustomMedia.tsx +0 -19
  371. package/src/utils/elementQuery/__workshop__/index.ts +0 -16
  372. package/src/utils/elementQuery/__workshop__/styles.css.ts +0 -31
  373. package/src/utils/elementQuery/helpers.ts +0 -27
  374. package/src/utils/portal/Portal.test.tsx +0 -105
  375. package/src/utils/portal/Portal.tsx +0 -42
  376. package/src/utils/portal/PortalContext.ts +0 -37
  377. package/src/utils/portal/PortalProvider.tsx +0 -38
  378. package/src/utils/portal/__workshop__/Named.tsx +0 -69
  379. package/src/utils/portal/__workshop__/index.ts +0 -16
  380. package/src/utils/portal/types.ts +0 -7
  381. package/src/utils/portal/usePortal.ts +0 -30
@@ -1,37 +0,0 @@
1
- import type {CardTone, ColorScheme} from '@sanity/ui-tokens'
2
- import type {ReactNode} from 'react'
3
-
4
- import {ToastProvider} from '../components/toast/ToastProvider'
5
- import {CardInternalProvider} from '../primitives/card/CardInternalProvider'
6
- import {CardProvider} from '../primitives/card/CardProvider'
7
- import {LayerProvider} from '../primitives/layer/LayerProvider'
8
- import {BoundaryElementProvider} from '../utils/boundaryElement/BoundaryElementProvider'
9
- import {PortalProvider} from '../utils/portal/PortalProvider'
10
-
11
- /** @public */
12
- export interface RootProviderProps {
13
- boundaryElement: HTMLElement | null
14
- children?: ReactNode
15
- portalElement: HTMLElement | null
16
- scheme: ColorScheme
17
- tone: CardTone
18
- }
19
-
20
- /** @public */
21
- export function RootProvider(props: RootProviderProps): React.JSX.Element {
22
- const {boundaryElement, children, portalElement, scheme, tone} = props
23
-
24
- return (
25
- <LayerProvider>
26
- <CardInternalProvider root>
27
- <CardProvider scheme={scheme} tone={tone}>
28
- <ToastProvider>
29
- <BoundaryElementProvider element={boundaryElement}>
30
- <PortalProvider element={portalElement}>{children}</PortalProvider>
31
- </BoundaryElementProvider>
32
- </ToastProvider>
33
- </CardProvider>
34
- </CardInternalProvider>
35
- </LayerProvider>
36
- )
37
- }
@@ -1,43 +0,0 @@
1
- import {Button, Root, Stack, Text, useCard, useToast} from '@sanity/ui'
2
-
3
- import {CardWrapper} from '$workshop'
4
-
5
- export default function BoundaryStory(): React.JSX.Element {
6
- const {scheme} = useCard()
7
-
8
- return (
9
- <CardWrapper pattern="halftone">
10
- <Root
11
- as="div"
12
- padding={4}
13
- radius={5}
14
- scheme={scheme}
15
- shadow={3}
16
- sizing="border"
17
- style={{minHeight: 300}}
18
- >
19
- <Layout />
20
- </Root>
21
- </CardWrapper>
22
- )
23
- }
24
-
25
- function Layout() {
26
- const toast = useToast()
27
-
28
- return (
29
- <Stack gap={4}>
30
- <Text size={1}>
31
- Testing the root component. Toast messages will be rendered here, and should be contained
32
- within the root element.
33
- </Text>
34
-
35
- <Button
36
- mode="ghost"
37
- text="Push toast message"
38
- width="min"
39
- onClick={() => toast.push({title: 'Hello!'})}
40
- />
41
- </Stack>
42
- )
43
- }
@@ -1,24 +0,0 @@
1
- import {defineScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- export default defineScope({
5
- name: 'root',
6
- title: 'Root',
7
- stories: [
8
- {
9
- name: 'boundary',
10
- title: 'Boundary',
11
- component: lazy(() => import('./Boundary')),
12
- },
13
- {
14
- name: 'primitives',
15
- title: 'Primitives',
16
- component: lazy(() => import('./primitives')),
17
- },
18
- {
19
- name: 'tone-inheritance',
20
- title: 'Tone inheritance',
21
- component: lazy(() => import('./tone-inheritance')),
22
- },
23
- ],
24
- })
@@ -1,49 +0,0 @@
1
- import {SearchIcon} from '@sanity/icons'
2
- import {Badge, Card, Checkbox, Radio, Select, Switch, TextInput} from '@sanity/ui'
3
- import {useBoolean} from '@sanity/ui-workshop'
4
-
5
- import {CardWrapper} from '$workshop'
6
-
7
- export default function PrimitivesStory() {
8
- const disabled = useBoolean('Disabled', false)
9
-
10
- return (
11
- <CardWrapper pattern="halftone">
12
- <Card
13
- display="flex"
14
- flexDirection="column"
15
- gap={4}
16
- padding={4}
17
- radius={5}
18
- shadow={3}
19
- sizing="border"
20
- >
21
- <Badge>Badge</Badge>
22
- <TextInput
23
- disabled={disabled}
24
- fontSize={1}
25
- icon={SearchIcon}
26
- placeholder="Search"
27
- radius="full"
28
- />
29
- <div>
30
- <Checkbox disabled={disabled} />
31
- </div>
32
- <div>
33
- <Radio disabled={disabled} />
34
- </div>
35
- <div>
36
- <Switch disabled={disabled} />
37
- </div>
38
- <Select disabled={disabled} fontSize={1}>
39
- <option disabled selected>
40
- Choose an option
41
- </option>
42
- <option value="1">1</option>
43
- <option value="2">2</option>
44
- <option value="3">3</option>
45
- </Select>
46
- </Card>
47
- </CardWrapper>
48
- )
49
- }
@@ -1,65 +0,0 @@
1
- import {Box, Card, Code, Portal, PortalProvider, Root, Text, usePrefersDark} from '@sanity/ui'
2
- import {useState} from 'react'
3
-
4
- import {CardWrapper} from '$workshop'
5
-
6
- export default function ToneInheritanceStory() {
7
- const dark = usePrefersDark()
8
- const [cardPortal, setCardPortal] = useState<HTMLDivElement | null>(null)
9
-
10
- return (
11
- <CardWrapper pattern="halftone" tone="transparent">
12
- <Root as="div" radius={4} scheme={dark ? 'dark' : 'light'} shadow={4}>
13
- <Box padding={4}>
14
- <Code language="jsx" size={1}>{`<Root
15
- scheme=${JSON.stringify(dark ? 'dark' : 'light')}
16
- tone="transparent"
17
- />`}</Code>
18
-
19
- <PortalProvider element={cardPortal}>
20
- <Card
21
- marginTop={4}
22
- radius={4}
23
- scheme={dark ? 'light' : 'dark'}
24
- shadow={1}
25
- tone="suggest"
26
- >
27
- <Box padding={4}>
28
- <Code language="jsx" size={1}>{`<Card
29
- scheme=${JSON.stringify(dark ? 'light' : 'dark')}
30
- tone="suggest"
31
- />`}</Code>
32
- </Box>
33
- <Portal>
34
- <Card
35
- padding={4}
36
- radius={4}
37
- shadow={1}
38
- // tone="critical"
39
- >
40
- <Text muted size={1}>
41
- Card in portal (card)
42
- </Text>
43
- </Card>
44
- </Portal>
45
- <div ref={setCardPortal} />
46
- </Card>
47
- </PortalProvider>
48
- </Box>
49
-
50
- <Portal>
51
- <Card
52
- padding={4}
53
- radius={4}
54
- shadow={1}
55
- // tone="critical"
56
- >
57
- <Text muted size={1}>
58
- Card in portal (root)
59
- </Text>
60
- </Card>
61
- </Portal>
62
- </Root>
63
- </CardWrapper>
64
- )
65
- }
@@ -1,50 +0,0 @@
1
- import {Component, type ErrorInfo, type PropsWithChildren, type ReactNode} from 'react'
2
-
3
- import {Code} from '../primitives/code/Code'
4
-
5
- /**
6
- * DO NOT USE IN PRODUCTION
7
- * @beta
8
- */
9
- export type ErrorBoundaryProps = PropsWithChildren<{
10
- onCatch: (params: {error: Error; info: ErrorInfo}) => void
11
- }>
12
-
13
- /**
14
- * DO NOT USE IN PRODUCTION
15
- * @beta
16
- */
17
- export interface ErrorBoundaryState {
18
- error: Error | null
19
- }
20
-
21
- /**
22
- * DO NOT USE IN PRODUCTION
23
- * @beta
24
- */
25
- export class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {
26
- override state: ErrorBoundaryState = {error: null}
27
-
28
- static displayName = 'ErrorBoundary'
29
-
30
- static getDerivedStateFromError(error: Error): ErrorBoundaryState {
31
- // Update state so the next render will show the fallback UI.
32
- return {error}
33
- }
34
-
35
- override componentDidCatch(error: Error, info: ErrorInfo): void {
36
- this.props.onCatch({error, info})
37
- }
38
-
39
- override render(): ReactNode {
40
- const {error} = this.state
41
-
42
- if (error) {
43
- const message = typeof error?.message === 'string' ? error.message : 'Error'
44
-
45
- return <Code>{message}</Code>
46
- }
47
-
48
- return this.props.children
49
- }
50
- }
@@ -1,7 +0,0 @@
1
- import type {Context} from 'react'
2
-
3
- import {createGlobalScopedContext} from '../../core/lib/createGlobalScopedContext'
4
- import type {BoundaryElementContextValue} from './types'
5
-
6
- export const BoundaryElementContext: Context<BoundaryElementContextValue> =
7
- createGlobalScopedContext<BoundaryElementContextValue>('@sanity/ui/v4/boundaryElement', null)
@@ -1,16 +0,0 @@
1
- import {type ReactNode} from 'react'
2
-
3
- import {BoundaryElementContext} from './BoundaryElementContext'
4
-
5
- /** @public */
6
- export interface BoundaryElementProviderProps {
7
- children: ReactNode
8
- element: HTMLElement | null
9
- }
10
-
11
- /** @public */
12
- export function BoundaryElementProvider(props: BoundaryElementProviderProps): React.JSX.Element {
13
- const {children, element} = props
14
-
15
- return <BoundaryElementContext value={element}>{children}</BoundaryElementContext>
16
- }
@@ -1,49 +0,0 @@
1
- import {BoundaryElementProvider, Button, Card, Text, TooltipDelayGroupProvider} from '@sanity/ui'
2
- import {useState} from 'react'
3
-
4
- import {CardWrapper} from '$workshop'
5
-
6
- export default function PlainStory(): React.JSX.Element {
7
- const [boundaryElement, setBoundaryElement] = useState<HTMLDivElement | null>(null)
8
-
9
- return (
10
- <CardWrapper pattern="halftone" tone="transparent" width={0}>
11
- <Text marginBottom={4} muted size={1}>
12
- Hover the button. The tooltip should render within the bounds of the box, despite of{' '}
13
- <code>placement="bottom"</code>.
14
- </Text>
15
-
16
- <TooltipDelayGroupProvider>
17
- <Card
18
- ref={setBoundaryElement}
19
- display="flex"
20
- justifyContent="space-between"
21
- padding={3}
22
- radius={5}
23
- shadow={1}
24
- tone="default"
25
- >
26
- <BoundaryElementProvider element={boundaryElement}>
27
- <Button
28
- mode="ghost"
29
- text="Button"
30
- tooltip={{
31
- placement: 'bottom',
32
- text: 'Tooltip',
33
- }}
34
- />
35
-
36
- <Button
37
- mode="ghost"
38
- text="Button"
39
- tooltip={{
40
- placement: 'bottom',
41
- text: 'Tooltip',
42
- }}
43
- />
44
- </BoundaryElementProvider>
45
- </Card>
46
- </TooltipDelayGroupProvider>
47
- </CardWrapper>
48
- )
49
- }
@@ -1,16 +0,0 @@
1
- import type {WorkshopScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- const scope: WorkshopScope = {
5
- name: 'utils/boundaryElement',
6
- title: 'BoundaryElement',
7
- stories: [
8
- {
9
- name: 'plain',
10
- title: 'Plain',
11
- component: lazy(() => import('./Plain')),
12
- },
13
- ],
14
- }
15
-
16
- export default scope
@@ -1,2 +0,0 @@
1
- /** @public */
2
- export type BoundaryElementContextValue = HTMLElement | null
@@ -1,12 +0,0 @@
1
- import {use, useMemo} from 'react'
2
-
3
- import {BoundaryElementContext} from './BoundaryElementContext'
4
- import type {BoundaryElementContextValue} from './types'
5
-
6
- /** @public */
7
- export function useBoundaryElement(): {version: 0.0; element: BoundaryElementContextValue} {
8
- // eslint-disable-next-line no-warning-comments
9
- // @TODO this wrapping is for BC and should be removed
10
- const element = use(BoundaryElementContext)
11
- return useMemo(() => ({version: 0.0, element}), [element])
12
- }
@@ -1,75 +0,0 @@
1
- import {BREAKPOINTS} from '@sanity/ui-css'
2
- import {useImperativeHandle, useMemo, useState} from 'react'
3
-
4
- import type {ComponentType, Props} from '../../core/types'
5
- import {useElementSize} from '../../hooks/useElementSize'
6
- import {findMaxBreakpoints, findMinBreakpoints} from './helpers'
7
-
8
- /** @beta */
9
- export const DEFAULT_ELEMENT_QUERY_ELEMENT = 'div'
10
-
11
- /**
12
- * DO NOT USE IN PRODUCTION.
13
- * @beta
14
- */
15
- export type ElementQueryOwnProps = {
16
- media?: number[]
17
- }
18
-
19
- /** @beta */
20
- export type ElementQueryElementType = 'div' | ComponentType
21
-
22
- /**
23
- * DO NOT USE IN PRODUCTION.
24
- * @beta
25
- */
26
- export type ElementQueryProps<E extends ElementQueryElementType = ElementQueryElementType> = Props<
27
- ElementQueryOwnProps,
28
- E
29
- >
30
-
31
- const DEFAULT_BREAKPOINTS = Object.values(BREAKPOINTS)
32
-
33
- /**
34
- * DO NOT USE IN PRODUCTION.
35
- * @beta
36
- */
37
- export function ElementQuery<
38
- E extends ElementQueryElementType = typeof DEFAULT_ELEMENT_QUERY_ELEMENT,
39
- >(props: ElementQueryProps<E>): React.JSX.Element {
40
- const {
41
- as: Element = DEFAULT_ELEMENT_QUERY_ELEMENT,
42
- children,
43
- media: mediaProp,
44
- ref: forwardedRef,
45
- ...rest
46
- } = props as ElementQueryProps<typeof DEFAULT_ELEMENT_QUERY_ELEMENT>
47
-
48
- const breakpoints = mediaProp ?? DEFAULT_BREAKPOINTS
49
-
50
- const [element, setElement] = useState<HTMLDivElement | null>(null)
51
- const elementSize = useElementSize(element)
52
- const width = useMemo(() => elementSize?.border.width ?? window.innerWidth, [elementSize])
53
-
54
- const max = useMemo(() => {
55
- const eq = findMaxBreakpoints(breakpoints, width)
56
-
57
- return eq.length ? eq.join(' ') : undefined
58
- }, [breakpoints, width])
59
-
60
- const min = useMemo(() => {
61
- const eq = findMinBreakpoints(breakpoints, width)
62
-
63
- return eq.length ? eq.join(' ') : undefined
64
- }, [breakpoints, width])
65
-
66
- useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => element, [
67
- element,
68
- ])
69
-
70
- return (
71
- <Element data-ui="ElementQuery" {...rest} ref={setElement} data-eq-max={max} data-eq-min={min}>
72
- {children}
73
- </Element>
74
- )
75
- }
@@ -1,19 +0,0 @@
1
- import {Box, Card, ElementQuery, Text} from '@sanity/ui'
2
-
3
- import {testCard} from './styles.css'
4
-
5
- export default function CustomMediaQuery(): React.JSX.Element {
6
- return (
7
- <Box padding={4}>
8
- <Box marginBottom={4}>
9
- <Text>Resize this frame to see the text color change:</Text>
10
- </Box>
11
-
12
- <ElementQuery media={[0, 100, 200, 300]}>
13
- <Card className={testCard} padding={3} shadow={1}>
14
- <Text>This card sits inside an element query.</Text>
15
- </Card>
16
- </ElementQuery>
17
- </Box>
18
- )
19
- }
@@ -1,16 +0,0 @@
1
- import type {WorkshopScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- const scope: WorkshopScope = {
5
- name: 'utils/elementQuery',
6
- title: 'ElementQuery',
7
- stories: [
8
- {
9
- name: 'custom-media',
10
- title: 'Custom media',
11
- component: lazy(() => import('./CustomMedia')),
12
- },
13
- ],
14
- }
15
-
16
- export default scope
@@ -1,31 +0,0 @@
1
- import {vars} from '@sanity/ui'
2
- import {style} from '@vanilla-extract/css'
3
-
4
- export const testCard: string = style({
5
- selectors: {
6
- '[data-eq-min~="0"] > &': {
7
- vars: {
8
- [vars.color.fg]:
9
- `light-dark(${vars.color.palette.orange[600]}, ${vars.color.palette.orange[400]})`,
10
- },
11
- },
12
- '[data-eq-min~="1"] > &': {
13
- vars: {
14
- [vars.color.fg]:
15
- `light-dark(${vars.color.palette.red[600]}, ${vars.color.palette.red[400]})`,
16
- },
17
- },
18
- '[data-eq-min~="2"] > &': {
19
- vars: {
20
- [vars.color.fg]:
21
- `light-dark(${vars.color.palette.magenta[600]}, ${vars.color.palette.magenta[400]})`,
22
- },
23
- },
24
- '[data-eq-min~="3"] > &': {
25
- vars: {
26
- [vars.color.fg]:
27
- `light-dark(${vars.color.palette.purple[600]}, ${vars.color.palette.purple[400]})`,
28
- },
29
- },
30
- },
31
- })
@@ -1,27 +0,0 @@
1
- export function findMaxBreakpoints(media: number[], width: number): number[] {
2
- const ret: number[] = []
3
-
4
- for (let i = 0; i < media.length; i += 1) {
5
- const bp = media[i]
6
-
7
- if (bp > width) {
8
- ret.push(i)
9
- }
10
- }
11
-
12
- return ret
13
- }
14
-
15
- export function findMinBreakpoints(media: number[], width: number): number[] {
16
- const ret: number[] = []
17
-
18
- for (let i = 0; i < media.length; i += 1) {
19
- const bp = media[i]
20
-
21
- if (bp <= width) {
22
- ret.push(i)
23
- }
24
- }
25
-
26
- return ret
27
- }
@@ -1,105 +0,0 @@
1
- import {describe, expect, it, vi} from 'vitest'
2
-
3
- import {render} from '$test/utils'
4
-
5
- import {PortalContext} from './PortalContext'
6
- import type {PortalContextValue} from './types'
7
- import {usePortal} from './usePortal'
8
-
9
- describe('utils/portal', () => {
10
- describe('usePortal', () => {
11
- it('should get context value', async () => {
12
- const log = vi.fn()
13
-
14
- function Debug() {
15
- const rootPortal = usePortal()
16
-
17
- log(rootPortal)
18
-
19
- return <>debug</>
20
- }
21
-
22
- function Root() {
23
- const value: PortalContextValue = {
24
- version: 0.0,
25
- boundaryElement: null,
26
- element: null,
27
- }
28
-
29
- return (
30
- <PortalContext value={value}>
31
- <Debug />
32
- </PortalContext>
33
- )
34
- }
35
-
36
- render(<Root />)
37
-
38
- expect(log.mock.calls[0][0].version).toBe(0.0)
39
- expect(log.mock.calls[0][0].boundaryElement).toBe(null)
40
- expect(log.mock.calls[0][0].element).toBe(null)
41
- })
42
-
43
- it('should fail when no context value is provided', async () => {
44
- const log = vi.fn()
45
-
46
- function Debug() {
47
- try {
48
- usePortal()
49
- } catch (err) {
50
- log(err)
51
- }
52
-
53
- return null
54
- }
55
-
56
- function Root() {
57
- return (
58
- <PortalContext
59
- // @ts-expect-error - we want to test the error case
60
- value={undefined}
61
- >
62
- <Debug />
63
- </PortalContext>
64
- )
65
- }
66
-
67
- render(<Root />)
68
-
69
- expect(log.mock.calls[0][0].message).toEqual('usePortal(): missing context value')
70
- })
71
-
72
- it('should fail when context value is not compatible', async () => {
73
- const log = vi.fn()
74
-
75
- function Debug() {
76
- try {
77
- usePortal()
78
- } catch (err) {
79
- log(err)
80
- }
81
-
82
- return null
83
- }
84
-
85
- function Root() {
86
- // NOTE: we’re testing this because the context value may be a function in the future
87
-
88
- return (
89
- <PortalContext
90
- // @ts-expect-error - we want to test the error case
91
- value={() => ({version: 1})}
92
- >
93
- <Debug />
94
- </PortalContext>
95
- )
96
- }
97
-
98
- render(<Root />)
99
-
100
- expect(log.mock.calls[0][0].message).toEqual(
101
- 'usePortal(): the context value is not compatible',
102
- )
103
- })
104
- })
105
- })