@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,71 +0,0 @@
1
- import {Box, Button, Inline, ToastProvider, useToast} from '@sanity/ui'
2
-
3
- export default function HookStory(): React.JSX.Element {
4
- const toast = useToast()
5
-
6
- return (
7
- <ToastProvider>
8
- <Box padding={[4, 5, 6]}>
9
- <Inline gap={2}>
10
- <Button
11
- text="Push info"
12
- tone="neutral"
13
- onClick={() =>
14
- toast.push({
15
- id: 'status',
16
- closable: true,
17
- title: 'Information',
18
- status: 'info',
19
- description: (
20
- <>
21
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis faucibus
22
- pellentesque luctus. Curabitur sed tortor a elit tempus malesuada. Quisque sed
23
- dapibus ligula, id pulvinar nisl.
24
- </>
25
- ),
26
- })
27
- }
28
- />
29
-
30
- <Button
31
- text="Push warning"
32
- tone="caution"
33
- onClick={() =>
34
- toast.push({
35
- id: 'status',
36
- closable: true,
37
- title: 'Warning',
38
- status: 'warning',
39
- })
40
- }
41
- />
42
-
43
- <Button
44
- text="Push error"
45
- tone="critical"
46
- onClick={() =>
47
- toast.push({
48
- id: 'status',
49
- closable: true,
50
- title: 'Error',
51
- status: 'error',
52
- })
53
- }
54
- />
55
-
56
- <Button
57
- text="Push some message"
58
- onClick={() =>
59
- toast.push({
60
- // id: 'status',
61
- closable: true,
62
- title: 'Some message',
63
- // status: 'error',
64
- })
65
- }
66
- />
67
- </Inline>
68
- </Box>
69
- </ToastProvider>
70
- )
71
- }
@@ -1,26 +0,0 @@
1
- import {Box, Container, Toast} from '@sanity/ui'
2
- import {useAction, useBoolean, useSelect, useString, useText} from '@sanity/ui-workshop'
3
-
4
- import {WORKSHOP_TOAST_STATUS_OPTIONS} from '$workshop'
5
-
6
- export default function ToastStory(): React.JSX.Element {
7
- const closable = useBoolean('Closable', false)
8
- const title = useString('Title', 'Toast title')
9
- const status = useSelect('Status', WORKSHOP_TOAST_STATUS_OPTIONS)
10
- const description = useText('Description')
11
- const handleClose = useAction('onClose')
12
-
13
- return (
14
- <Box padding={[4, 5, 6]}>
15
- <Container width={0}>
16
- <Toast
17
- closable={closable}
18
- description={description}
19
- status={status}
20
- title={title}
21
- onClose={handleClose}
22
- />
23
- </Container>
24
- </Box>
25
- )
26
- }
@@ -1,21 +0,0 @@
1
- import type {WorkshopScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- const scope: WorkshopScope = {
5
- name: 'components/toast',
6
- title: 'Toast',
7
- stories: [
8
- {
9
- name: 'toast',
10
- title: 'Toast',
11
- component: lazy(() => import('./Toast')),
12
- },
13
- {
14
- name: 'hook',
15
- title: 'Hook',
16
- component: lazy(() => import('./Hook')),
17
- },
18
- ],
19
- }
20
-
21
- export default scope
@@ -1,6 +0,0 @@
1
- let toastId = 0
2
-
3
- /** @internal */
4
- export function generateToastId(): string {
5
- return String(toastId++)
6
- }
@@ -1,24 +0,0 @@
1
- import type {ReactNode} from 'react'
2
-
3
- /** @public */
4
- export interface ToastParams {
5
- closable?: boolean
6
- description?: ReactNode
7
- duration?: number
8
- id?: string
9
- onClose?: () => void
10
- title?: ReactNode
11
- status?: 'error' | 'warning' | 'success' | 'info'
12
- }
13
-
14
- /** @public */
15
- export interface ToastContextValue {
16
- version: 0.0
17
- /**
18
- * Creates or updates a toast notification.
19
- * If a toast with the same ID already exists, it will be updated.
20
- * If an ID is not provided, a random one will be generated.
21
- * The returned ID can be used to programatically update a toast.
22
- */
23
- push: (params: ToastParams) => string
24
- }
@@ -1,23 +0,0 @@
1
- import {use} from 'react'
2
-
3
- import {isRecord} from '../../core/lib/isRecord'
4
- import {ToastContext} from './ToastContext'
5
- import type {ToastContextValue} from './types'
6
-
7
- /** @public */
8
- export function useToast(): ToastContextValue {
9
- const value = use(ToastContext)
10
-
11
- if (!value) {
12
- throw new Error('useToast(): missing context value')
13
- }
14
-
15
- // NOTE: This check is for future-compatiblity
16
- // - If the value is not an object, it’s not compatible with the current version
17
- // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version
18
- if (!isRecord(value) || value.version !== 0.0) {
19
- throw new Error('useToast(): the context value is not compatible')
20
- }
21
-
22
- return value
23
- }
@@ -1,248 +0,0 @@
1
- import {tree} from '@sanity/ui-css'
2
- import {
3
- type FocusEvent,
4
- type KeyboardEvent,
5
- useCallback,
6
- useEffect,
7
- useImperativeHandle,
8
- useMemo,
9
- useRef,
10
- useState,
11
- } from 'react'
12
-
13
- import type {ComponentType, Props} from '../../core/types'
14
- import {Stack, type StackOwnProps} from '../../primitives/stack/Stack'
15
- import {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'
16
- import {TreeContext} from './TreeContext'
17
- import type {TreeContextValue, TreeState} from './types'
18
-
19
- /** @beta */
20
- export const DEFAULT_TREE_ELEMENT = 'div'
21
-
22
- /**
23
- * This API might change. DO NOT USE IN PRODUCTION.
24
- * @beta
25
- */
26
- export type TreeOwnProps = Omit<StackOwnProps, 'position'>
27
-
28
- /** @beta */
29
- export type TreeElementType = 'div' | ComponentType
30
-
31
- /** @beta */
32
- export type TreeProps<E extends TreeElementType = TreeElementType> = Props<TreeOwnProps, E>
33
-
34
- /**
35
- * This API might change. DO NOT USE IN PRODUCTION.
36
- * @beta
37
- */
38
- export function Tree<E extends TreeElementType = typeof DEFAULT_TREE_ELEMENT>(
39
- props: TreeProps<E>,
40
- ): React.JSX.Element {
41
- const {
42
- children,
43
- className,
44
- gap = 1,
45
- onFocus,
46
- ref: forwardedRef,
47
- ...rest
48
- } = props as TreeProps<typeof DEFAULT_TREE_ELEMENT>
49
-
50
- const ref = useRef<HTMLDivElement | null>(null)
51
- const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)
52
- const focusedElementRef = useRef(focusedElement)
53
- const path: string[] = useMemo(() => [], [])
54
- const [itemElements, setItemElements] = useState<HTMLElement[]>([])
55
- const [state, setState] = useState<TreeState>({})
56
- const stateRef = useRef(state)
57
-
58
- useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)
59
-
60
- useEffect(() => {
61
- focusedElementRef.current = focusedElement
62
- }, [focusedElement])
63
-
64
- useEffect(() => {
65
- stateRef.current = state
66
- }, [state])
67
-
68
- const registerItem = useCallback(
69
- (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {
70
- setState((s) => ({...s, [path]: {element, expanded}}))
71
-
72
- if (selected) {
73
- setFocusedElement(element)
74
- }
75
-
76
- return () => {
77
- setState((s) => {
78
- const newState = {...s}
79
-
80
- delete newState[path]
81
-
82
- return newState
83
- })
84
- }
85
- },
86
- [],
87
- )
88
-
89
- const setExpanded = useCallback((path: string, expanded: boolean) => {
90
- setState((s) => {
91
- const itemState = s[path]
92
-
93
- if (!itemState) return s
94
-
95
- return {...s, [path]: {...itemState, expanded}}
96
- })
97
- }, [])
98
-
99
- const context: TreeContextValue = useMemo(
100
- () => ({
101
- version: 0.0,
102
- focusedElement: focusedElement || itemElements[0] || null,
103
- gap,
104
- level: 0,
105
- path,
106
- registerItem,
107
- setExpanded,
108
- setFocusedElement,
109
- state,
110
- }),
111
- [focusedElement, gap, itemElements, path, registerItem, setExpanded, state],
112
- )
113
-
114
- const handleKeyDown = useCallback(
115
- (event: KeyboardEvent<HTMLDivElement>) => {
116
- if (!focusedElementRef.current) return
117
-
118
- if (event.key === 'ArrowDown') {
119
- event.preventDefault()
120
-
121
- const nextEl = _findNextItemElement(
122
- stateRef.current,
123
- itemElements,
124
- focusedElementRef.current,
125
- )
126
-
127
- if (nextEl) {
128
- _focusItemElement(nextEl)
129
- setFocusedElement(nextEl)
130
- }
131
-
132
- return
133
- }
134
-
135
- if (event.key === 'ArrowUp') {
136
- event.preventDefault()
137
-
138
- const prevEl = _findPrevItemElement(
139
- stateRef.current,
140
- itemElements,
141
- focusedElementRef.current,
142
- )
143
-
144
- if (prevEl) {
145
- _focusItemElement(prevEl)
146
- setFocusedElement(prevEl)
147
- }
148
-
149
- return
150
- }
151
-
152
- if (event.key === 'ArrowLeft') {
153
- event.preventDefault()
154
-
155
- const itemKey = focusedElementRef.current.getAttribute('data-tree-key')
156
-
157
- if (!itemKey) return
158
-
159
- const itemState = stateRef.current[itemKey]
160
-
161
- if (!itemState) return
162
-
163
- if (itemState.expanded) {
164
- setState((s) => {
165
- const itemState = s[itemKey]
166
-
167
- if (!itemState) return s
168
-
169
- return {...s, [itemKey]: {...itemState, expanded: false}}
170
- })
171
- } else {
172
- const itemPath = itemKey.split('/')
173
-
174
- itemPath.pop()
175
-
176
- const parentKey = itemPath.join('/')
177
- const parentState = parentKey && stateRef.current[parentKey]
178
-
179
- if (parentState) {
180
- parentState.element.focus()
181
- setFocusedElement(parentState.element)
182
- }
183
- }
184
-
185
- return
186
- }
187
-
188
- if (event.key === 'ArrowRight') {
189
- event.preventDefault()
190
-
191
- const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')
192
-
193
- if (!focusedKey) return
194
-
195
- if (!stateRef.current[focusedKey]?.expanded) {
196
- setState((s) => {
197
- const itemState = s[focusedKey]
198
-
199
- if (!itemState) return s
200
-
201
- return {...s, [focusedKey]: {...itemState, expanded: true}}
202
- })
203
- }
204
-
205
- return
206
- }
207
- },
208
- [itemElements],
209
- )
210
-
211
- const handleFocus = useCallback(
212
- (event: FocusEvent<HTMLDivElement>) => {
213
- setFocusedElement(event.target)
214
-
215
- // Call the element's `focus` handler
216
- onFocus?.(event)
217
- },
218
- [onFocus],
219
- )
220
-
221
- useEffect(() => {
222
- if (!ref.current) return
223
- const _itemElements = Array.from(
224
- ref.current.querySelectorAll('[data-ui="TreeItem"]'),
225
- ) as HTMLElement[]
226
-
227
- setItemElements(_itemElements)
228
- }, [children])
229
-
230
- return (
231
- <TreeContext value={context}>
232
- <Stack
233
- as="ul"
234
- data-ui="Tree"
235
- {...rest}
236
- ref={ref}
237
- className={tree({className})}
238
- gap={gap}
239
- position="relative"
240
- role="tree"
241
- onFocus={handleFocus}
242
- onKeyDown={handleKeyDown}
243
- >
244
- {children}
245
- </Stack>
246
- </TreeContext>
247
- )
248
- }
@@ -1,10 +0,0 @@
1
- import type {Context} from 'react'
2
-
3
- import {createGlobalScopedContext} from '../../core/lib/createGlobalScopedContext'
4
- import type {TreeContextValue} from './types'
5
-
6
- /**
7
- * @internal
8
- */
9
- export const TreeContext: Context<TreeContextValue | null> =
10
- createGlobalScopedContext<TreeContextValue | null>('@sanity/ui/v4/tree', null)
@@ -1,46 +0,0 @@
1
- import type {ComponentType, Props} from '../../core/types'
2
- import {Stack} from '../../primitives/stack/Stack'
3
- import {useTree} from './useTree'
4
-
5
- /** @public */
6
- export const DEFAULT_TREE_GROUP_ELEMENT = 'div'
7
-
8
- /** @public */
9
- export type TreeGroupElementType = 'div' | ComponentType
10
-
11
- /** @public */
12
- export type TreeGroupOwnProps = {
13
- expanded?: boolean
14
- }
15
-
16
- /** @public */
17
- export type TreeGroupProps<E extends TreeGroupElementType = TreeGroupElementType> = Props<
18
- TreeGroupOwnProps,
19
- E
20
- >
21
-
22
- export const TreeGroup = function TreeGroup(
23
- props: Props<TreeGroupProps, 'div'>,
24
- ): React.JSX.Element {
25
- const {
26
- children,
27
- expanded = false,
28
- ...rest
29
- } = props as TreeGroupProps<typeof DEFAULT_TREE_GROUP_ELEMENT>
30
-
31
- const tree = useTree()
32
-
33
- return (
34
- <Stack
35
- as="ul"
36
- data-ui="TreeGroup"
37
- {...rest}
38
- gap={tree.gap}
39
- hidden={!expanded}
40
- marginTop={tree.gap}
41
- role="group"
42
- >
43
- {children}
44
- </Stack>
45
- )
46
- }