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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (393) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +21 -7
  3. package/dist/_chunks/getScopedTheme.cjs +4043 -0
  4. package/dist/_chunks/getScopedTheme.cjs.map +1 -0
  5. package/dist/_chunks/getScopedTheme.js +3803 -0
  6. package/dist/_chunks/getScopedTheme.js.map +1 -0
  7. package/dist/_chunks/portalProvider.cjs +3750 -0
  8. package/dist/_chunks/portalProvider.cjs.map +1 -0
  9. package/dist/_chunks/portalProvider.d.cts +1067 -0
  10. package/dist/_chunks/portalProvider.d.cts.map +1 -0
  11. package/dist/_chunks/portalProvider.d.ts +1067 -0
  12. package/dist/_chunks/portalProvider.d.ts.map +1 -0
  13. package/dist/_chunks/portalProvider.js +3300 -0
  14. package/dist/_chunks/portalProvider.js.map +1 -0
  15. package/dist/_chunks/refractor.cjs +18 -0
  16. package/dist/_chunks/refractor.cjs.map +1 -0
  17. package/dist/_chunks/refractor.js +20 -0
  18. package/dist/_chunks/refractor.js.map +1 -0
  19. package/dist/_chunks/rgba.d.cts +929 -0
  20. package/dist/_chunks/rgba.d.cts.map +1 -0
  21. package/dist/_chunks/rgba.d.ts +929 -0
  22. package/dist/_chunks/rgba.d.ts.map +1 -0
  23. package/dist/_visual-editing.cjs +4 -0
  24. package/dist/_visual-editing.d.cts +2 -0
  25. package/dist/_visual-editing.d.ts +2 -0
  26. package/dist/_visual-editing.js +3 -0
  27. package/dist/index.cjs +3007 -0
  28. package/dist/index.cjs.map +1 -0
  29. package/dist/index.d.cts +1275 -0
  30. package/dist/index.d.cts.map +1 -0
  31. package/dist/index.d.ts +708 -1188
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +2964 -4783
  34. package/dist/index.js.map +1 -1
  35. package/dist/theme.cjs +54 -0
  36. package/dist/theme.cjs.map +1 -0
  37. package/dist/theme.d.cts +278 -0
  38. package/dist/theme.d.cts.map +1 -0
  39. package/dist/theme.d.ts +278 -0
  40. package/dist/theme.d.ts.map +1 -0
  41. package/dist/theme.js +53 -0
  42. package/dist/theme.js.map +1 -0
  43. package/package.json +65 -88
  44. package/dist/_chunks-es/Syntax.js +0 -23
  45. package/dist/_chunks-es/Syntax.js.map +0 -1
  46. package/dist/index.css +0 -1
  47. package/exports/index.css +0 -1
  48. package/exports/index.ts +0 -125
  49. package/src/components/autocomplete/Autocomplete.tsx +0 -665
  50. package/src/components/autocomplete/AutocompleteOption.tsx +0 -42
  51. package/src/components/autocomplete/__workshop__/Async.tsx +0 -162
  52. package/src/components/autocomplete/__workshop__/ConstrainedHeight.tsx +0 -121
  53. package/src/components/autocomplete/__workshop__/Custom.tsx +0 -91
  54. package/src/components/autocomplete/__workshop__/Example.tsx +0 -70
  55. package/src/components/autocomplete/__workshop__/FocusAndBlur.tsx +0 -39
  56. package/src/components/autocomplete/__workshop__/Fullscreen.tsx +0 -307
  57. package/src/components/autocomplete/__workshop__/index.ts +0 -41
  58. package/src/components/autocomplete/__workshop__/mock/apiStore.ts +0 -49
  59. package/src/components/autocomplete/__workshop__/mock/countries.ts +0 -245
  60. package/src/components/autocomplete/__workshop__/types.ts +0 -4
  61. package/src/components/autocomplete/autocompleteReducer.ts +0 -47
  62. package/src/components/autocomplete/constants.ts +0 -28
  63. package/src/components/autocomplete/types.ts +0 -103
  64. package/src/components/breadcrumbs/Breadcrumbs.tsx +0 -163
  65. package/src/components/breadcrumbs/__workshop__/Example.tsx +0 -48
  66. package/src/components/breadcrumbs/__workshop__/index.ts +0 -16
  67. package/src/components/dialog/Dialog.tsx +0 -230
  68. package/src/components/dialog/DialogCard.tsx +0 -233
  69. package/src/components/dialog/DialogContext.ts +0 -21
  70. package/src/components/dialog/DialogProvider.tsx +0 -34
  71. package/src/components/dialog/__workshop__/Activate.tsx +0 -141
  72. package/src/components/dialog/__workshop__/AutoFocus.tsx +0 -29
  73. package/src/components/dialog/__workshop__/Layering.tsx +0 -41
  74. package/src/components/dialog/__workshop__/Nested.tsx +0 -71
  75. package/src/components/dialog/__workshop__/OnScroll.tsx +0 -51
  76. package/src/components/dialog/__workshop__/Panes.tsx +0 -75
  77. package/src/components/dialog/__workshop__/Position.tsx +0 -30
  78. package/src/components/dialog/__workshop__/Props.tsx +0 -93
  79. package/src/components/dialog/__workshop__/Provider.tsx +0 -11
  80. package/src/components/dialog/__workshop__/Wrapped.tsx +0 -76
  81. package/src/components/dialog/__workshop__/index.ts +0 -21
  82. package/src/components/dialog/isTargetWithinScope.ts +0 -14
  83. package/src/components/dialog/types.ts +0 -2
  84. package/src/components/dialog/useDialog.ts +0 -11
  85. package/src/components/hotkeys/Hotkeys.tsx +0 -70
  86. package/src/components/hotkeys/__workshop__/Plain.tsx +0 -9
  87. package/src/components/hotkeys/__workshop__/index.ts +0 -16
  88. package/src/components/menu/Menu.test.tsx +0 -125
  89. package/src/components/menu/Menu.tsx +0 -174
  90. package/src/components/menu/MenuButton.tsx +0 -231
  91. package/src/components/menu/MenuContext.ts +0 -19
  92. package/src/components/menu/MenuDivider.tsx +0 -32
  93. package/src/components/menu/MenuGroup.tsx +0 -240
  94. package/src/components/menu/MenuItem.tsx +0 -153
  95. package/src/components/menu/__workshop__/AsComponent.tsx +0 -45
  96. package/src/components/menu/__workshop__/AvatarMenu.tsx +0 -36
  97. package/src/components/menu/__workshop__/ClosableMenuButton.tsx +0 -47
  98. package/src/components/menu/__workshop__/ConstrainedInBoundary.tsx +0 -133
  99. package/src/components/menu/__workshop__/CustomMenuItem.tsx +0 -47
  100. package/src/components/menu/__workshop__/CustomSelectedState.tsx +0 -35
  101. package/src/components/menu/__workshop__/DataProps.tsx +0 -27
  102. package/src/components/menu/__workshop__/DisableFocusOnClose.tsx +0 -40
  103. package/src/components/menu/__workshop__/Groups.tsx +0 -164
  104. package/src/components/menu/__workshop__/MenuButton.tsx +0 -79
  105. package/src/components/menu/__workshop__/MenuGroupRight.tsx +0 -73
  106. package/src/components/menu/__workshop__/NestedMenu.tsx +0 -22
  107. package/src/components/menu/__workshop__/OnCloseMenuButton.tsx +0 -50
  108. package/src/components/menu/__workshop__/SelectedItem.tsx +0 -69
  109. package/src/components/menu/__workshop__/ShouldFocus.tsx +0 -42
  110. package/src/components/menu/__workshop__/Tones.tsx +0 -19
  111. package/src/components/menu/__workshop__/index.ts +0 -91
  112. package/src/components/menu/helpers.ts +0 -82
  113. package/src/components/menu/useMenu.ts +0 -21
  114. package/src/components/menu/useMenuController.ts +0 -245
  115. package/src/components/tab/Tab.tsx +0 -135
  116. package/src/components/tab/TabList.tsx +0 -157
  117. package/src/components/tab/TabListContext.ts +0 -10
  118. package/src/components/tab/TabPanel.tsx +0 -94
  119. package/src/components/tab/__workshop__/Example.tsx +0 -135
  120. package/src/components/tab/__workshop__/index.ts +0 -16
  121. package/src/components/tab/types.ts +0 -11
  122. package/src/components/toast/Toast.test.tsx +0 -103
  123. package/src/components/toast/Toast.tsx +0 -191
  124. package/src/components/toast/ToastContext.ts +0 -7
  125. package/src/components/toast/ToastLayer.tsx +0 -54
  126. package/src/components/toast/ToastProvider.tsx +0 -127
  127. package/src/components/toast/__workshop__/Hook.tsx +0 -71
  128. package/src/components/toast/__workshop__/Toast.tsx +0 -26
  129. package/src/components/toast/__workshop__/index.ts +0 -21
  130. package/src/components/toast/toastState.ts +0 -6
  131. package/src/components/toast/types.ts +0 -24
  132. package/src/components/toast/useToast.ts +0 -23
  133. package/src/components/tree/Tree.tsx +0 -248
  134. package/src/components/tree/TreeContext.ts +0 -10
  135. package/src/components/tree/TreeGroup.tsx +0 -46
  136. package/src/components/tree/TreeItem.tsx +0 -236
  137. package/src/components/tree/__workshop__/Basic.tsx +0 -108
  138. package/src/components/tree/__workshop__/TabFromElement.tsx +0 -84
  139. package/src/components/tree/__workshop__/basic.perf.ts +0 -19
  140. package/src/components/tree/__workshop__/index.ts +0 -23
  141. package/src/components/tree/helpers.ts +0 -105
  142. package/src/components/tree/types.ts +0 -24
  143. package/src/components/tree/useTree.ts +0 -17
  144. package/src/components/virtualList/VirtualList.tsx +0 -254
  145. package/src/components/virtualList/__workshop__/ChangingProps.tsx +0 -41
  146. package/src/components/virtualList/__workshop__/ElementScroll.tsx +0 -43
  147. package/src/components/virtualList/__workshop__/InfiniteList.tsx +0 -40
  148. package/src/components/virtualList/__workshop__/WindowScrolll.tsx +0 -23
  149. package/src/components/virtualList/__workshop__/index.ts +0 -31
  150. package/src/core/_keys.ts +0 -26
  151. package/src/core/constants.ts +0 -67
  152. package/src/core/getElementRef.ts +0 -29
  153. package/src/core/helpers/animation.ts +0 -26
  154. package/src/core/helpers/element.ts +0 -55
  155. package/src/core/helpers/focus.ts +0 -92
  156. package/src/core/helpers/props.ts +0 -51
  157. package/src/core/helpers/scroll.ts +0 -15
  158. package/src/core/lib/createGlobalScopedContext.ts +0 -39
  159. package/src/core/lib/globalScope.ts +0 -19
  160. package/src/core/lib/isArray.ts +0 -3
  161. package/src/core/lib/isRecord.ts +0 -3
  162. package/src/core/types.ts +0 -57
  163. package/src/hooks/useClickOutsideEvent.test.tsx +0 -114
  164. package/src/hooks/useClickOutsideEvent.ts +0 -66
  165. package/src/hooks/useCustomValidity.ts +0 -13
  166. package/src/hooks/useElementSize.ts +0 -19
  167. package/src/hooks/useGlobalKeyDown.ts +0 -23
  168. package/src/hooks/useMatchMedia.ts +0 -28
  169. package/src/hooks/useMediaIndex/__workshop__/Test.tsx +0 -14
  170. package/src/hooks/useMediaIndex/__workshop__/index.ts +0 -16
  171. package/src/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -21
  172. package/src/hooks/useMediaIndex/useMediaIndex.ts +0 -111
  173. package/src/hooks/useMounted.ts +0 -15
  174. package/src/hooks/usePrefersDark.hydration.test.tsx +0 -56
  175. package/src/hooks/usePrefersDark.test.tsx +0 -20
  176. package/src/hooks/usePrefersDark.ts +0 -16
  177. package/src/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -56
  178. package/src/hooks/usePrefersReducedMotion.test.tsx +0 -20
  179. package/src/hooks/usePrefersReducedMotion.ts +0 -16
  180. package/src/hooks/useResponsiveProp.ts +0 -14
  181. package/src/hooks/useUnique.ts +0 -54
  182. package/src/middleware/origin.ts +0 -47
  183. package/src/observers/elementSize.ts +0 -114
  184. package/src/primitives/_syntax/LazySyntax.tsx +0 -4
  185. package/src/primitives/_syntax/Syntax.tsx +0 -26
  186. package/src/primitives/avatar/Avatar.tsx +0 -145
  187. package/src/primitives/avatar/AvatarCounter.tsx +0 -69
  188. package/src/primitives/avatar/AvatarStack.tsx +0 -77
  189. package/src/primitives/avatar/__workshop__/AsButton.tsx +0 -12
  190. package/src/primitives/avatar/__workshop__/PropsStory.tsx +0 -24
  191. package/src/primitives/avatar/__workshop__/Stack.tsx +0 -27
  192. package/src/primitives/avatar/__workshop__/WithinButton.tsx +0 -51
  193. package/src/primitives/avatar/__workshop__/WithinMenuItem.tsx +0 -52
  194. package/src/primitives/avatar/__workshop__/index.ts +0 -36
  195. package/src/primitives/avatar/types.ts +0 -2
  196. package/src/primitives/badge/Badge.test.tsx +0 -16
  197. package/src/primitives/badge/Badge.tsx +0 -53
  198. package/src/primitives/badge/__workshop__/Props.tsx +0 -27
  199. package/src/primitives/badge/__workshop__/Tones.tsx +0 -15
  200. package/src/primitives/badge/__workshop__/index.ts +0 -26
  201. package/src/primitives/badge/__workshop__/within-button.tsx +0 -36
  202. package/src/primitives/box/Box.tsx +0 -73
  203. package/src/primitives/box/__workshop__/Props.tsx +0 -26
  204. package/src/primitives/box/__workshop__/Responsive.tsx +0 -19
  205. package/src/primitives/box/__workshop__/index.ts +0 -21
  206. package/src/primitives/button/Button.test.tsx +0 -30
  207. package/src/primitives/button/Button.tsx +0 -148
  208. package/src/primitives/button/__workshop__/Custom.tsx +0 -39
  209. package/src/primitives/button/__workshop__/CustomIcons.tsx +0 -37
  210. package/src/primitives/button/__workshop__/DataProps.tsx +0 -18
  211. package/src/primitives/button/__workshop__/Disabled.tsx +0 -43
  212. package/src/primitives/button/__workshop__/MixedChildren.tsx +0 -12
  213. package/src/primitives/button/__workshop__/Props.tsx +0 -60
  214. package/src/primitives/button/__workshop__/Stacked.tsx +0 -60
  215. package/src/primitives/button/__workshop__/Styled1.css.ts +0 -7
  216. package/src/primitives/button/__workshop__/Styled1.tsx +0 -11
  217. package/src/primitives/button/__workshop__/TextOverflow.tsx +0 -17
  218. package/src/primitives/button/__workshop__/UploadButton.tsx +0 -28
  219. package/src/primitives/button/__workshop__/index.ts +0 -61
  220. package/src/primitives/button/types.ts +0 -2
  221. package/src/primitives/card/Card.tsx +0 -124
  222. package/src/primitives/card/CardContext.ts +0 -10
  223. package/src/primitives/card/CardInternalContext.ts +0 -10
  224. package/src/primitives/card/CardInternalProvider.tsx +0 -15
  225. package/src/primitives/card/CardProvider.tsx +0 -16
  226. package/src/primitives/card/__workshop__/AsButton.tsx +0 -103
  227. package/src/primitives/card/__workshop__/AsComponent.tsx +0 -25
  228. package/src/primitives/card/__workshop__/Checkered.tsx +0 -25
  229. package/src/primitives/card/__workshop__/DataProps.tsx +0 -25
  230. package/src/primitives/card/__workshop__/Interactive.tsx +0 -29
  231. package/src/primitives/card/__workshop__/ListNavigation.tsx +0 -78
  232. package/src/primitives/card/__workshop__/Props.tsx +0 -59
  233. package/src/primitives/card/__workshop__/Selected.tsx +0 -62
  234. package/src/primitives/card/__workshop__/Styled.tsx +0 -11
  235. package/src/primitives/card/__workshop__/Tones.tsx +0 -26
  236. package/src/primitives/card/__workshop__/index.ts +0 -21
  237. package/src/primitives/card/types.ts +0 -21
  238. package/src/primitives/card/useCard.ts +0 -20
  239. package/src/primitives/checkbox/Checkbox.tsx +0 -80
  240. package/src/primitives/checkbox/__workshop__/Example.tsx +0 -25
  241. package/src/primitives/checkbox/__workshop__/Props.tsx +0 -35
  242. package/src/primitives/checkbox/__workshop__/ReadOnly.tsx +0 -16
  243. package/src/primitives/checkbox/__workshop__/Tones.tsx +0 -26
  244. package/src/primitives/checkbox/__workshop__/index.ts +0 -15
  245. package/src/primitives/code/Code.tsx +0 -47
  246. package/src/primitives/code/__workshop__/OpticalAlignment.tsx +0 -25
  247. package/src/primitives/code/__workshop__/Props.tsx +0 -20
  248. package/src/primitives/code/__workshop__/index.ts +0 -21
  249. package/src/primitives/container/Container.tsx +0 -43
  250. package/src/primitives/container/__workshop__/Example.tsx +0 -16
  251. package/src/primitives/container/__workshop__/index.ts +0 -16
  252. package/src/primitives/container/types.ts +0 -6
  253. package/src/primitives/flex/Flex.tsx +0 -38
  254. package/src/primitives/flex/__workshop__/Example.tsx +0 -26
  255. package/src/primitives/flex/__workshop__/Gap.tsx +0 -25
  256. package/src/primitives/flex/__workshop__/index.ts +0 -13
  257. package/src/primitives/flex/__workshop__/styles.css.ts +0 -12
  258. package/src/primitives/grid/Grid.tsx +0 -38
  259. package/src/primitives/grid/__workshop__/Responsive.tsx +0 -54
  260. package/src/primitives/grid/__workshop__/index.ts +0 -12
  261. package/src/primitives/heading/Heading.tsx +0 -68
  262. package/src/primitives/heading/__workshop__/OpticalAlignment.tsx +0 -27
  263. package/src/primitives/heading/__workshop__/Plain.tsx +0 -25
  264. package/src/primitives/heading/__workshop__/index.ts +0 -21
  265. package/src/primitives/inline/Inline.tsx +0 -37
  266. package/src/primitives/inline/__workshop__/Plain.tsx +0 -22
  267. package/src/primitives/inline/__workshop__/index.ts +0 -10
  268. package/src/primitives/kbd/Kbd.tsx +0 -36
  269. package/src/primitives/kbd/__workshop__/Plain.tsx +0 -9
  270. package/src/primitives/kbd/__workshop__/index.ts +0 -10
  271. package/src/primitives/label/Label.tsx +0 -67
  272. package/src/primitives/label/__workshop__/OpticalAlignment.tsx +0 -27
  273. package/src/primitives/label/__workshop__/Plain.tsx +0 -27
  274. package/src/primitives/label/__workshop__/index.ts +0 -21
  275. package/src/primitives/layer/Layer.test.tsx +0 -110
  276. package/src/primitives/layer/Layer.tsx +0 -35
  277. package/src/primitives/layer/LayerCard.tsx +0 -90
  278. package/src/primitives/layer/LayerContext.ts +0 -7
  279. package/src/primitives/layer/LayerProvider.tsx +0 -106
  280. package/src/primitives/layer/__workshop__/MultipleRoots.tsx +0 -49
  281. package/src/primitives/layer/__workshop__/Nested.tsx +0 -107
  282. package/src/primitives/layer/__workshop__/ResponsiveZOffset.tsx +0 -17
  283. package/src/primitives/layer/__workshop__/_debug.tsx +0 -17
  284. package/src/primitives/layer/__workshop__/index.ts +0 -26
  285. package/src/primitives/layer/getLayerContext.test.ts +0 -32
  286. package/src/primitives/layer/getLayerContext.ts +0 -21
  287. package/src/primitives/layer/types.ts +0 -9
  288. package/src/primitives/layer/useLayer.ts +0 -24
  289. package/src/primitives/popover/Popover.tsx +0 -291
  290. package/src/primitives/popover/PopoverLayer.tsx +0 -101
  291. package/src/primitives/popover/__workshop__/AlignedStory.tsx +0 -75
  292. package/src/primitives/popover/__workshop__/MarginsStory.tsx +0 -31
  293. package/src/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
  294. package/src/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -11
  295. package/src/primitives/popover/__workshop__/PlainStory.tsx +0 -67
  296. package/src/primitives/popover/__workshop__/RecursiveStory.tsx +0 -71
  297. package/src/primitives/popover/__workshop__/SidePanelStory.tsx +0 -95
  298. package/src/primitives/popover/__workshop__/TestStory.tsx +0 -97
  299. package/src/primitives/popover/__workshop__/index.ts +0 -56
  300. package/src/primitives/popover/__workshop__/portal-inheritance.tsx +0 -15
  301. package/src/primitives/popover/constants.ts +0 -20
  302. package/src/primitives/popover/floating-ui/size.ts +0 -75
  303. package/src/primitives/popover/types.ts +0 -12
  304. package/src/primitives/popover/useMiddleware.ts +0 -126
  305. package/src/primitives/radio/Radio.tsx +0 -64
  306. package/src/primitives/radio/__workshop__/Example.tsx +0 -63
  307. package/src/primitives/radio/__workshop__/Plain.tsx +0 -28
  308. package/src/primitives/radio/__workshop__/index.ts +0 -13
  309. package/src/primitives/select/Select.tsx +0 -76
  310. package/src/primitives/select/__workshop__/Plain.tsx +0 -37
  311. package/src/primitives/select/__workshop__/ReadOnly.tsx +0 -23
  312. package/src/primitives/select/__workshop__/index.ts +0 -13
  313. package/src/primitives/selectable/Selectable.tsx +0 -48
  314. package/src/primitives/selectable/__workshop__/DataProps.tsx +0 -24
  315. package/src/primitives/selectable/__workshop__/as-link.tsx +0 -13
  316. package/src/primitives/selectable/__workshop__/index.ts +0 -19
  317. package/src/primitives/skeleton/CodeSkeleton.tsx +0 -49
  318. package/src/primitives/skeleton/HeadingSkeleton.tsx +0 -48
  319. package/src/primitives/skeleton/LabelSkeleton.tsx +0 -47
  320. package/src/primitives/skeleton/Skeleton.tsx +0 -70
  321. package/src/primitives/skeleton/TextSkeleton.tsx +0 -49
  322. package/src/primitives/skeleton/__workshop__/Delay.tsx +0 -69
  323. package/src/primitives/skeleton/__workshop__/Skeleton.tsx +0 -63
  324. package/src/primitives/skeleton/__workshop__/index.ts +0 -13
  325. package/src/primitives/spinner/Spinner.tsx +0 -45
  326. package/src/primitives/spinner/SpinnerAnimatedIcon.tsx +0 -14
  327. package/src/primitives/spinner/__workshop__/Props.tsx +0 -13
  328. package/src/primitives/spinner/__workshop__/index.ts +0 -16
  329. package/src/primitives/srOnly/SrOnly.tsx +0 -33
  330. package/src/primitives/stack/Stack.tsx +0 -38
  331. package/src/primitives/stack/__workshop__/Plain.tsx +0 -30
  332. package/src/primitives/stack/__workshop__/index.ts +0 -16
  333. package/src/primitives/switch/Switch.tsx +0 -76
  334. package/src/primitives/switch/__workshop__/Example.tsx +0 -25
  335. package/src/primitives/switch/__workshop__/Props.tsx +0 -23
  336. package/src/primitives/switch/__workshop__/index.ts +0 -13
  337. package/src/primitives/text/InlineCode.tsx +0 -25
  338. package/src/primitives/text/Text.tsx +0 -68
  339. package/src/primitives/text/__workshop__/Example.tsx +0 -26
  340. package/src/primitives/text/__workshop__/OpticalAlignment.tsx +0 -27
  341. package/src/primitives/text/__workshop__/index.ts +0 -26
  342. package/src/primitives/text/__workshop__/inline-code.tsx +0 -13
  343. package/src/primitives/textArea/TextArea.tsx +0 -97
  344. package/src/primitives/textArea/__workshop__/Plain.tsx +0 -46
  345. package/src/primitives/textArea/__workshop__/index.ts +0 -16
  346. package/src/primitives/textInput/TextInput.tsx +0 -279
  347. package/src/primitives/textInput/__workshop__/ClearButton.tsx +0 -32
  348. package/src/primitives/textInput/__workshop__/CustomValidity.tsx +0 -17
  349. package/src/primitives/textInput/__workshop__/Plain.tsx +0 -102
  350. package/src/primitives/textInput/__workshop__/ReadOnly.tsx +0 -14
  351. package/src/primitives/textInput/__workshop__/States.tsx +0 -53
  352. package/src/primitives/textInput/__workshop__/Tones.tsx +0 -40
  353. package/src/primitives/textInput/__workshop__/Typed.tsx +0 -23
  354. package/src/primitives/textInput/__workshop__/index.ts +0 -46
  355. package/src/primitives/tooltip/Tooltip.test.tsx +0 -496
  356. package/src/primitives/tooltip/Tooltip.tsx +0 -546
  357. package/src/primitives/tooltip/TooltipLayer.tsx +0 -72
  358. package/src/primitives/tooltip/__workshop__/CustomPortal.tsx +0 -102
  359. package/src/primitives/tooltip/__workshop__/OverflowingBoundary.tsx +0 -74
  360. package/src/primitives/tooltip/__workshop__/Props.tsx +0 -107
  361. package/src/primitives/tooltip/__workshop__/ResizableBoundary.tsx +0 -91
  362. package/src/primitives/tooltip/__workshop__/index.ts +0 -31
  363. package/src/primitives/tooltip/constants.ts +0 -24
  364. package/src/primitives/tooltip/tooltipDelayGroup/TooltipDelayGroupContext.tsx +0 -13
  365. package/src/primitives/tooltip/tooltipDelayGroup/TooltipDelayGroupProvider.tsx +0 -96
  366. package/src/primitives/tooltip/tooltipDelayGroup/types.ts +0 -7
  367. package/src/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -13
  368. package/src/root/Root.tsx +0 -93
  369. package/src/root/RootProvider.tsx +0 -37
  370. package/src/root/__workshop__/Boundary.tsx +0 -43
  371. package/src/root/__workshop__/index.ts +0 -24
  372. package/src/root/__workshop__/primitives.tsx +0 -49
  373. package/src/root/__workshop__/tone-inheritance.tsx +0 -65
  374. package/src/utils/ErrorBoundary.tsx +0 -50
  375. package/src/utils/boundaryElement/BoundaryElementContext.ts +0 -7
  376. package/src/utils/boundaryElement/BoundaryElementProvider.tsx +0 -16
  377. package/src/utils/boundaryElement/__workshop__/Plain.tsx +0 -49
  378. package/src/utils/boundaryElement/__workshop__/index.ts +0 -16
  379. package/src/utils/boundaryElement/types.ts +0 -2
  380. package/src/utils/boundaryElement/useBoundaryElement.ts +0 -12
  381. package/src/utils/elementQuery/ElementQuery.tsx +0 -75
  382. package/src/utils/elementQuery/__workshop__/CustomMedia.tsx +0 -19
  383. package/src/utils/elementQuery/__workshop__/index.ts +0 -16
  384. package/src/utils/elementQuery/__workshop__/styles.css.ts +0 -31
  385. package/src/utils/elementQuery/helpers.ts +0 -27
  386. package/src/utils/portal/Portal.test.tsx +0 -105
  387. package/src/utils/portal/Portal.tsx +0 -42
  388. package/src/utils/portal/PortalContext.ts +0 -37
  389. package/src/utils/portal/PortalProvider.tsx +0 -38
  390. package/src/utils/portal/__workshop__/Named.tsx +0 -69
  391. package/src/utils/portal/__workshop__/index.ts +0 -16
  392. package/src/utils/portal/types.ts +0 -7
  393. package/src/utils/portal/usePortal.ts +0 -30
@@ -1,75 +0,0 @@
1
- import {
2
- BoundaryElementProvider,
3
- Box,
4
- Button,
5
- Card,
6
- Dialog,
7
- Flex,
8
- Menu,
9
- MenuButton,
10
- MenuItem,
11
- PortalProvider,
12
- } from '@sanity/ui'
13
- import {useCallback, useState} from 'react'
14
-
15
- export default function PanesStory(): React.JSX.Element {
16
- return (
17
- <Flex height="fill">
18
- <Pane id="A" />
19
- <Pane borderLeft id="B" />
20
- </Flex>
21
- )
22
- }
23
-
24
- function Pane(props: {borderLeft?: boolean; id: string}) {
25
- const {borderLeft, id} = props
26
- const [element, setElement] = useState<HTMLDivElement | null>(null)
27
- const [portalElement, setPortalElement] = useState<HTMLDivElement | null>(null)
28
- const [dialogOpen, setDialogOpen] = useState(false)
29
-
30
- const handleClose = useCallback(() => {
31
- setDialogOpen(false)
32
- }, [])
33
-
34
- return (
35
- <BoundaryElementProvider element={element}>
36
- <PortalProvider element={portalElement}>
37
- <Card ref={setElement} borderLeft={borderLeft} flex={1} position="relative">
38
- <Box padding={4}>
39
- <Button selected={dialogOpen} text="Open dialog" onClick={() => setDialogOpen(true)} />
40
- </Box>
41
-
42
- <div ref={setPortalElement} />
43
- </Card>
44
-
45
- {dialogOpen && (
46
- <Dialog
47
- header={`Dialog ${id}`}
48
- id={id}
49
- position="absolute"
50
- onClickOutside={handleClose}
51
- onClose={handleClose}
52
- >
53
- <Box padding={4}>
54
- <MenuButton
55
- button={<Button text="Open menu" />}
56
- id={`${id}-menu`}
57
- menu={
58
- <Menu>
59
- <MenuItem text="Item 1" />
60
- <MenuItem text="Item 2" />
61
- <MenuItem text="Item 3" />
62
- </Menu>
63
- }
64
- popover={{
65
- modal: true,
66
- portal: true,
67
- }}
68
- />
69
- </Box>
70
- </Dialog>
71
- )}
72
- </PortalProvider>
73
- </BoundaryElementProvider>
74
- )
75
- }
@@ -1,30 +0,0 @@
1
- import {ArrowDownIcon, ArrowUpIcon} from '@sanity/icons'
2
- import {Box, Dialog, LayerProvider, Stack, Text} from '@sanity/ui'
3
- import {useBoolean, useSelect} from '@sanity/ui-workshop'
4
-
5
- import {WORKSHOP_DIALOG_POSITION_OPTIONS} from '$workshop'
6
-
7
- export default function PositionStory(): React.JSX.Element {
8
- const open = useBoolean('Open', true)
9
- const position = useSelect('Position', WORKSHOP_DIALOG_POSITION_OPTIONS)
10
-
11
- return (
12
- <Box padding={4}>
13
- <Box style={{padding: 'calc(100vh - 100px) 0'}}>
14
- <Stack gap={3}>
15
- <Text align="center">
16
- <ArrowUpIcon />
17
- </Text>
18
- <Text align="center">Scrollable</Text>
19
- <Text align="center">
20
- <ArrowDownIcon />
21
- </Text>
22
- </Stack>
23
-
24
- <LayerProvider>
25
- {open && <Dialog header="Position example" id="position-example" position={position} />}
26
- </LayerProvider>
27
- </Box>
28
- </Box>
29
- )
30
- }
@@ -1,93 +0,0 @@
1
- import {
2
- Box,
3
- Button,
4
- CARD_TONES,
5
- COLOR_SCHEMES,
6
- CONTAINER,
7
- Dialog,
8
- LayerProvider,
9
- Stack,
10
- Text,
11
- } from '@sanity/ui'
12
- import {useBoolean, useSelect, useText} from '@sanity/ui-workshop'
13
- import {useCallback, useRef, useState} from 'react'
14
-
15
- export default function PropsStory(): React.JSX.Element {
16
- const animate = useBoolean('Animate', false)
17
- const header = useText('Header', 'Props example')
18
- const onClickOutside = useBoolean('Close when click outside', false)
19
- const hideCloseButton = useBoolean('Hide close button', false)
20
- const scheme = useSelect('Scheme', [undefined, ...COLOR_SCHEMES])
21
- const tone = useSelect('Tone', [undefined, ...CARD_TONES])
22
- const width = useSelect('Width', CONTAINER)
23
- const [open, setOpen] = useState(false)
24
- const buttonRef = useRef<HTMLButtonElement | null>(null)
25
-
26
- const handleClose = useCallback(() => {
27
- setOpen(false)
28
- buttonRef.current?.focus()
29
- }, [])
30
-
31
- return (
32
- <LayerProvider>
33
- <Box padding={[4, 5, 6]}>
34
- <Button
35
- ref={buttonRef}
36
- id="open-dialog-button"
37
- text="Open dialog"
38
- onClick={() => setOpen(true)}
39
- />
40
-
41
- {open && (
42
- <Dialog
43
- __unstable_hideCloseButton={hideCloseButton}
44
- animate={animate}
45
- header={header}
46
- id="dialog"
47
- open={open}
48
- scheme={scheme}
49
- tone={tone}
50
- width={width}
51
- onClickOutside={onClickOutside ? handleClose : undefined}
52
- onClose={handleClose}
53
- >
54
- <Box padding={4}>
55
- <Stack gap={4}>
56
- <Text muted size={1}>
57
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed et orci vitae diam
58
- aliquet imperdiet.
59
- </Text>
60
- <Button id="button-1" mode="ghost" text="Focus test" />
61
- <Text muted size={1}>
62
- Sed in hendrerit metus. Sed sapien neque, imperdiet eu justo sed, vestibulum
63
- mollis dolor.
64
- </Text>
65
- <Button id="button-2" mode="ghost" text="Focus test" />
66
- <Text muted size={1}>
67
- Nulla sit amet ipsum ligula. Duis sit amet velit tempor, ultricies mauris
68
- dignissim, mollis enim.
69
- </Text>
70
- <Button id="button-3" mode="ghost" text="Focus test" />
71
- <Text muted size={1}>
72
- Cras quis elit non mauris faucibus molestie non non augue.{' '}
73
- </Text>
74
- <Text muted size={1}>
75
- Proin suscipit gravida sodales. Morbi vel purus molestie, rhoncus augue sit amet,
76
- auctor justo.
77
- </Text>
78
- <Button id="button-4" mode="ghost" text="Focus test" />
79
- <Text muted size={1}>
80
- Proin lobortis nunc a tellus condimentum, a ultrices arcu egestas.
81
- </Text>
82
- <Button id="button-5" mode="ghost" text="Focus test" />
83
- <Text muted size={1}>
84
- Suspendisse augue nibh, euismod sit amet sapien nec, molestie dignissim magna.
85
- </Text>
86
- </Stack>
87
- </Box>
88
- </Dialog>
89
- )}
90
- </Box>
91
- </LayerProvider>
92
- )
93
- }
@@ -1,11 +0,0 @@
1
- import {Dialog, DialogProvider} from '@sanity/ui'
2
-
3
- export default function ProviderStory(): React.JSX.Element {
4
- return (
5
- <DialogProvider position="absolute" zOffset={1000}>
6
- <Dialog header="Outer" id="provider-example">
7
- <Dialog header="Inner" id="nested-provider-example" />
8
- </Dialog>
9
- </DialogProvider>
10
- )
11
- }
@@ -1,76 +0,0 @@
1
- import {Box, Button, Dialog, type DialogProps, LayerProvider, useLayer} from '@sanity/ui'
2
- import {type ReactNode, useCallback, useEffect, useRef, useState} from 'react'
3
-
4
- export default function WrappedStory(): React.JSX.Element {
5
- return (
6
- <LayerProvider zOffset={100}>
7
- <Box padding={4}>
8
- <DialogButton level={0} />
9
- </Box>
10
- </LayerProvider>
11
- )
12
- }
13
-
14
- function DialogButton(props: {level: number}) {
15
- const {level} = props
16
- const [open, setOpen] = useState(false)
17
-
18
- const openRef = useRef(open)
19
- const buttonRef = useRef<HTMLButtonElement>(null)
20
-
21
- useEffect(() => {
22
- if (openRef.current !== open) {
23
- openRef.current = open
24
-
25
- if (!open) {
26
- // focus the button that opened the dialog
27
- // buttonRef.current?.focus()
28
- }
29
- }
30
- }, [open])
31
-
32
- return (
33
- <>
34
- <Button ref={buttonRef} text={`Open dialog ${level + 1}`} onClick={() => setOpen(true)} />
35
-
36
- {open && (
37
- <WrappedDialog
38
- header={`WrappedDialog ${level + 1}`}
39
- id={`wrapped-${level + 1}`}
40
- onClickOutside={() => setOpen(false)}
41
- onClose={() => setOpen(false)}
42
- >
43
- <Box padding={4}>
44
- <DialogButton level={level + 1} />
45
- </Box>
46
- </WrappedDialog>
47
- )}
48
- </>
49
- )
50
- }
51
-
52
- function WrappedDialog(props: DialogProps & {children?: ReactNode}) {
53
- const layer = useLayer()
54
- const isTopLayer = layer.size === 1
55
-
56
- const dialogRef = useRef<HTMLDivElement>(null)
57
-
58
- const [lastFocusedElement, setLastFocusedElement] = useState<HTMLElement | null>(null)
59
-
60
- const handleContentFocus = useCallback(() => {
61
- const containsActiveElement = dialogRef.current?.contains(document.activeElement)
62
-
63
- if (containsActiveElement) {
64
- setLastFocusedElement(document.activeElement as HTMLElement)
65
- }
66
- }, [])
67
-
68
- // Set focus on the last focused element when the dialog becomes the top layer.
69
- useEffect(() => {
70
- if (isTopLayer && lastFocusedElement) {
71
- lastFocusedElement.focus()
72
- }
73
- }, [isTopLayer, lastFocusedElement])
74
-
75
- return <Dialog {...props} ref={dialogRef} data-size={layer.size} onFocus={handleContentFocus} />
76
- }
@@ -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/dialog',
6
- title: 'Dialog',
7
- stories: [
8
- {name: 'props', title: 'Props', component: lazy(() => import('./Props'))},
9
- {name: 'nested', title: 'Nested', component: lazy(() => import('./Nested'))},
10
- {name: 'on-scroll', title: 'On scroll', component: lazy(() => import('./OnScroll'))},
11
- {name: 'layering', title: 'Layering', component: lazy(() => import('./Layering'))},
12
- {name: 'position', title: 'Position', component: lazy(() => import('./Position'))},
13
- {name: 'provider', title: 'Provider', component: lazy(() => import('./Provider'))},
14
- {name: 'auto-focus', title: 'AutoFocus', component: lazy(() => import('./AutoFocus'))},
15
- {name: 'panes', title: 'Panes', component: lazy(() => import('./Panes'))},
16
- {name: 'activate', title: 'Activate', component: lazy(() => import('./Activate'))},
17
- {name: 'wrapped', title: 'Wrapped', component: lazy(() => import('./Wrapped'))},
18
- ],
19
- }
20
-
21
- export default scope
@@ -1,14 +0,0 @@
1
- import {containsOrEqualsElement} from '../../core/helpers/element'
2
-
3
- export function isTargetWithinScope(
4
- boundaryElement: HTMLElement | null,
5
- portalElement: HTMLElement | null,
6
- target: Node,
7
- ): boolean {
8
- if (!boundaryElement || !portalElement) return true
9
-
10
- return (
11
- containsOrEqualsElement(boundaryElement, target) ||
12
- containsOrEqualsElement(portalElement, target)
13
- )
14
- }
@@ -1,2 +0,0 @@
1
- /** @public */
2
- export type DialogPosition = 'absolute' | 'fixed'
@@ -1,11 +0,0 @@
1
- import {use} from 'react'
2
-
3
- import {DialogContext, type DialogContextValue} from './DialogContext'
4
-
5
- /**
6
- * This API might change. DO NOT USE IN PRODUCTION.
7
- * @beta
8
- */
9
- export function useDialog(): DialogContextValue {
10
- return use(DialogContext)
11
- }
@@ -1,70 +0,0 @@
1
- import {
2
- type GapStyleProps,
3
- hotkeys,
4
- HOTKEYS_STYLE_PROP_KEYS,
5
- type RadiusStyleProps,
6
- } from '@sanity/ui-css'
7
-
8
- import {_splitKeys} from '../../core/_keys'
9
- import type {ComponentType, Props} from '../../core/types'
10
- import {KBD} from '../../primitives/kbd/Kbd'
11
-
12
- /** @public */
13
- export const DEFAULT_HOTKEYS_ELEMENT = 'kbd'
14
-
15
- /** @public */
16
- export interface HotkeysOwnProps extends GapStyleProps, RadiusStyleProps {
17
- /** @deprecated No longer supported. */
18
- fontSize?: never
19
- /** @deprecated No longer supported. */
20
- padding?: never
21
- keys: string[]
22
- }
23
-
24
- /** @public */
25
- export type HotkeysElementType = 'kbd' | ComponentType
26
-
27
- /** @public */
28
- export type HotkeysProps<E extends HotkeysElementType = HotkeysElementType> = Props<
29
- HotkeysOwnProps,
30
- E
31
- >
32
-
33
- /**
34
- * Represent hotkeys (a keyboard combination) with semantic `<kbd>` elements.
35
- *
36
- * @example
37
- * ```tsx
38
- * import {Hotkeys} from '@sanity/ui'
39
- *
40
- * <Hotkeys keys={['⌘', 'K']} />
41
- * ```
42
- *
43
- * @public
44
- */
45
- export function Hotkeys<E extends HotkeysElementType = typeof DEFAULT_HOTKEYS_ELEMENT>(
46
- props: HotkeysProps<E>,
47
- ): React.JSX.Element | undefined {
48
- const [
49
- styleProps,
50
- {
51
- as: Element = DEFAULT_HOTKEYS_ELEMENT,
52
- fontSize: _fontSize,
53
- keys,
54
- // split DOM props
55
- ...domProps
56
- },
57
- ] = _splitKeys(props as HotkeysProps<typeof DEFAULT_HOTKEYS_ELEMENT>, HOTKEYS_STYLE_PROP_KEYS)
58
-
59
- if (!keys || keys.length === 0) {
60
- return undefined
61
- }
62
-
63
- return (
64
- <Element data-ui="Hotkeys" {...domProps} className={hotkeys(styleProps)}>
65
- {keys.map((key, i) => (
66
- <KBD key={i}>{key}</KBD>
67
- ))}
68
- </Element>
69
- )
70
- }
@@ -1,9 +0,0 @@
1
- import {Flex, Hotkeys} from '@sanity/ui'
2
-
3
- export default function PlainStory(): React.JSX.Element {
4
- return (
5
- <Flex align="center" height="fill" justify="center">
6
- <Hotkeys keys={['Ctrl', 'Shift', 'P']} />
7
- </Flex>
8
- )
9
- }
@@ -1,16 +0,0 @@
1
- import type {WorkshopScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- const scope: WorkshopScope = {
5
- name: 'components/hotkeys',
6
- title: 'Hotkeys',
7
- stories: [
8
- {
9
- name: 'plain',
10
- title: 'Plain',
11
- component: lazy(() => import('./Plain')),
12
- },
13
- ],
14
- }
15
-
16
- export default scope
@@ -1,125 +0,0 @@
1
- /* eslint-disable no-console */
2
-
3
- import {type MouseEvent, useCallback, useMemo} from 'react'
4
- import {describe, expect, it, vi} from 'vitest'
5
-
6
- import {render} from '$test/utils'
7
-
8
- import {MenuContext, type MenuContextValue} from './MenuContext'
9
- import {useMenu} from './useMenu'
10
-
11
- describe('components/menu', () => {
12
- describe('useMenu', () => {
13
- it('should get context value', async () => {
14
- const log = vi.fn()
15
-
16
- function Debug() {
17
- const rootMenu = useMenu()
18
-
19
- log(rootMenu)
20
-
21
- return <>debug</>
22
- }
23
-
24
- function Root() {
25
- const handleItemMouseEnter = useCallback(
26
- (event: MouseEvent<HTMLElement>) => console.log(event),
27
- [],
28
- )
29
-
30
- const handleItemMouseLeave = useCallback(
31
- (event: MouseEvent<HTMLElement>) => console.log(event),
32
- [],
33
- )
34
-
35
- const value: MenuContextValue = useMemo(
36
- () => ({
37
- version: 2,
38
- activeElement: null,
39
- mount: (element: HTMLElement | null) => () => console.log(element),
40
- onItemClick: () => undefined,
41
- onItemMouseEnter: handleItemMouseEnter,
42
- onItemMouseLeave: handleItemMouseLeave,
43
- }),
44
- [handleItemMouseEnter, handleItemMouseLeave],
45
- )
46
-
47
- return (
48
- <MenuContext value={value}>
49
- <Debug />
50
- </MenuContext>
51
- )
52
- }
53
-
54
- render(<Root />)
55
-
56
- const contextValue = log.mock.calls[0][0]
57
-
58
- expect(contextValue.version).toBe(2)
59
- expect(typeof contextValue.mount).toBe('function')
60
- expect(typeof contextValue.onItemClick).toBe('function')
61
- expect(typeof contextValue.onItemMouseEnter).toBe('function')
62
- expect(typeof contextValue.onItemMouseEnter).toBe('function')
63
- })
64
-
65
- it('should fail when no context value is provided', async () => {
66
- const log = vi.fn()
67
-
68
- function Debug() {
69
- try {
70
- useMenu()
71
- } catch (err) {
72
- log(err)
73
- }
74
-
75
- return null
76
- }
77
-
78
- function Root() {
79
- return (
80
- <MenuContext
81
- // @ts-expect-error - we want to test the error case
82
- value={undefined}
83
- >
84
- <Debug />
85
- </MenuContext>
86
- )
87
- }
88
-
89
- render(<Root />)
90
-
91
- expect(log.mock.calls[0][0].message).toEqual('useMenu(): missing context value')
92
- })
93
-
94
- it('should fail when context value is not compatible', async () => {
95
- const log = vi.fn()
96
-
97
- function Debug() {
98
- try {
99
- useMenu()
100
- } catch (err) {
101
- log(err)
102
- }
103
-
104
- return null
105
- }
106
-
107
- function Root() {
108
- // NOTE: we’re testing this because the context value may be a function in the future
109
-
110
- return (
111
- <MenuContext
112
- // @ts-expect-error - we want to test the error case
113
- value={() => ({version: 1})}
114
- >
115
- <Debug />
116
- </MenuContext>
117
- )
118
- }
119
-
120
- render(<Root />)
121
-
122
- expect(log.mock.calls[0][0].message).toEqual('useMenu(): the context value is not compatible')
123
- })
124
- })
125
- })