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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (393) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +21 -7
  3. package/dist/_chunks/getScopedTheme.cjs +4043 -0
  4. package/dist/_chunks/getScopedTheme.cjs.map +1 -0
  5. package/dist/_chunks/getScopedTheme.js +3803 -0
  6. package/dist/_chunks/getScopedTheme.js.map +1 -0
  7. package/dist/_chunks/portalProvider.cjs +3750 -0
  8. package/dist/_chunks/portalProvider.cjs.map +1 -0
  9. package/dist/_chunks/portalProvider.d.cts +1067 -0
  10. package/dist/_chunks/portalProvider.d.cts.map +1 -0
  11. package/dist/_chunks/portalProvider.d.ts +1067 -0
  12. package/dist/_chunks/portalProvider.d.ts.map +1 -0
  13. package/dist/_chunks/portalProvider.js +3300 -0
  14. package/dist/_chunks/portalProvider.js.map +1 -0
  15. package/dist/_chunks/refractor.cjs +18 -0
  16. package/dist/_chunks/refractor.cjs.map +1 -0
  17. package/dist/_chunks/refractor.js +20 -0
  18. package/dist/_chunks/refractor.js.map +1 -0
  19. package/dist/_chunks/rgba.d.cts +929 -0
  20. package/dist/_chunks/rgba.d.cts.map +1 -0
  21. package/dist/_chunks/rgba.d.ts +929 -0
  22. package/dist/_chunks/rgba.d.ts.map +1 -0
  23. package/dist/_visual-editing.cjs +4 -0
  24. package/dist/_visual-editing.d.cts +2 -0
  25. package/dist/_visual-editing.d.ts +2 -0
  26. package/dist/_visual-editing.js +3 -0
  27. package/dist/index.cjs +3007 -0
  28. package/dist/index.cjs.map +1 -0
  29. package/dist/index.d.cts +1275 -0
  30. package/dist/index.d.cts.map +1 -0
  31. package/dist/index.d.ts +708 -1188
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +2964 -4783
  34. package/dist/index.js.map +1 -1
  35. package/dist/theme.cjs +54 -0
  36. package/dist/theme.cjs.map +1 -0
  37. package/dist/theme.d.cts +278 -0
  38. package/dist/theme.d.cts.map +1 -0
  39. package/dist/theme.d.ts +278 -0
  40. package/dist/theme.d.ts.map +1 -0
  41. package/dist/theme.js +53 -0
  42. package/dist/theme.js.map +1 -0
  43. package/package.json +65 -88
  44. package/dist/_chunks-es/Syntax.js +0 -23
  45. package/dist/_chunks-es/Syntax.js.map +0 -1
  46. package/dist/index.css +0 -1
  47. package/exports/index.css +0 -1
  48. package/exports/index.ts +0 -125
  49. package/src/components/autocomplete/Autocomplete.tsx +0 -665
  50. package/src/components/autocomplete/AutocompleteOption.tsx +0 -42
  51. package/src/components/autocomplete/__workshop__/Async.tsx +0 -162
  52. package/src/components/autocomplete/__workshop__/ConstrainedHeight.tsx +0 -121
  53. package/src/components/autocomplete/__workshop__/Custom.tsx +0 -91
  54. package/src/components/autocomplete/__workshop__/Example.tsx +0 -70
  55. package/src/components/autocomplete/__workshop__/FocusAndBlur.tsx +0 -39
  56. package/src/components/autocomplete/__workshop__/Fullscreen.tsx +0 -307
  57. package/src/components/autocomplete/__workshop__/index.ts +0 -41
  58. package/src/components/autocomplete/__workshop__/mock/apiStore.ts +0 -49
  59. package/src/components/autocomplete/__workshop__/mock/countries.ts +0 -245
  60. package/src/components/autocomplete/__workshop__/types.ts +0 -4
  61. package/src/components/autocomplete/autocompleteReducer.ts +0 -47
  62. package/src/components/autocomplete/constants.ts +0 -28
  63. package/src/components/autocomplete/types.ts +0 -103
  64. package/src/components/breadcrumbs/Breadcrumbs.tsx +0 -163
  65. package/src/components/breadcrumbs/__workshop__/Example.tsx +0 -48
  66. package/src/components/breadcrumbs/__workshop__/index.ts +0 -16
  67. package/src/components/dialog/Dialog.tsx +0 -230
  68. package/src/components/dialog/DialogCard.tsx +0 -233
  69. package/src/components/dialog/DialogContext.ts +0 -21
  70. package/src/components/dialog/DialogProvider.tsx +0 -34
  71. package/src/components/dialog/__workshop__/Activate.tsx +0 -141
  72. package/src/components/dialog/__workshop__/AutoFocus.tsx +0 -29
  73. package/src/components/dialog/__workshop__/Layering.tsx +0 -41
  74. package/src/components/dialog/__workshop__/Nested.tsx +0 -71
  75. package/src/components/dialog/__workshop__/OnScroll.tsx +0 -51
  76. package/src/components/dialog/__workshop__/Panes.tsx +0 -75
  77. package/src/components/dialog/__workshop__/Position.tsx +0 -30
  78. package/src/components/dialog/__workshop__/Props.tsx +0 -93
  79. package/src/components/dialog/__workshop__/Provider.tsx +0 -11
  80. package/src/components/dialog/__workshop__/Wrapped.tsx +0 -76
  81. package/src/components/dialog/__workshop__/index.ts +0 -21
  82. package/src/components/dialog/isTargetWithinScope.ts +0 -14
  83. package/src/components/dialog/types.ts +0 -2
  84. package/src/components/dialog/useDialog.ts +0 -11
  85. package/src/components/hotkeys/Hotkeys.tsx +0 -70
  86. package/src/components/hotkeys/__workshop__/Plain.tsx +0 -9
  87. package/src/components/hotkeys/__workshop__/index.ts +0 -16
  88. package/src/components/menu/Menu.test.tsx +0 -125
  89. package/src/components/menu/Menu.tsx +0 -174
  90. package/src/components/menu/MenuButton.tsx +0 -231
  91. package/src/components/menu/MenuContext.ts +0 -19
  92. package/src/components/menu/MenuDivider.tsx +0 -32
  93. package/src/components/menu/MenuGroup.tsx +0 -240
  94. package/src/components/menu/MenuItem.tsx +0 -153
  95. package/src/components/menu/__workshop__/AsComponent.tsx +0 -45
  96. package/src/components/menu/__workshop__/AvatarMenu.tsx +0 -36
  97. package/src/components/menu/__workshop__/ClosableMenuButton.tsx +0 -47
  98. package/src/components/menu/__workshop__/ConstrainedInBoundary.tsx +0 -133
  99. package/src/components/menu/__workshop__/CustomMenuItem.tsx +0 -47
  100. package/src/components/menu/__workshop__/CustomSelectedState.tsx +0 -35
  101. package/src/components/menu/__workshop__/DataProps.tsx +0 -27
  102. package/src/components/menu/__workshop__/DisableFocusOnClose.tsx +0 -40
  103. package/src/components/menu/__workshop__/Groups.tsx +0 -164
  104. package/src/components/menu/__workshop__/MenuButton.tsx +0 -79
  105. package/src/components/menu/__workshop__/MenuGroupRight.tsx +0 -73
  106. package/src/components/menu/__workshop__/NestedMenu.tsx +0 -22
  107. package/src/components/menu/__workshop__/OnCloseMenuButton.tsx +0 -50
  108. package/src/components/menu/__workshop__/SelectedItem.tsx +0 -69
  109. package/src/components/menu/__workshop__/ShouldFocus.tsx +0 -42
  110. package/src/components/menu/__workshop__/Tones.tsx +0 -19
  111. package/src/components/menu/__workshop__/index.ts +0 -91
  112. package/src/components/menu/helpers.ts +0 -82
  113. package/src/components/menu/useMenu.ts +0 -21
  114. package/src/components/menu/useMenuController.ts +0 -245
  115. package/src/components/tab/Tab.tsx +0 -135
  116. package/src/components/tab/TabList.tsx +0 -157
  117. package/src/components/tab/TabListContext.ts +0 -10
  118. package/src/components/tab/TabPanel.tsx +0 -94
  119. package/src/components/tab/__workshop__/Example.tsx +0 -135
  120. package/src/components/tab/__workshop__/index.ts +0 -16
  121. package/src/components/tab/types.ts +0 -11
  122. package/src/components/toast/Toast.test.tsx +0 -103
  123. package/src/components/toast/Toast.tsx +0 -191
  124. package/src/components/toast/ToastContext.ts +0 -7
  125. package/src/components/toast/ToastLayer.tsx +0 -54
  126. package/src/components/toast/ToastProvider.tsx +0 -127
  127. package/src/components/toast/__workshop__/Hook.tsx +0 -71
  128. package/src/components/toast/__workshop__/Toast.tsx +0 -26
  129. package/src/components/toast/__workshop__/index.ts +0 -21
  130. package/src/components/toast/toastState.ts +0 -6
  131. package/src/components/toast/types.ts +0 -24
  132. package/src/components/toast/useToast.ts +0 -23
  133. package/src/components/tree/Tree.tsx +0 -248
  134. package/src/components/tree/TreeContext.ts +0 -10
  135. package/src/components/tree/TreeGroup.tsx +0 -46
  136. package/src/components/tree/TreeItem.tsx +0 -236
  137. package/src/components/tree/__workshop__/Basic.tsx +0 -108
  138. package/src/components/tree/__workshop__/TabFromElement.tsx +0 -84
  139. package/src/components/tree/__workshop__/basic.perf.ts +0 -19
  140. package/src/components/tree/__workshop__/index.ts +0 -23
  141. package/src/components/tree/helpers.ts +0 -105
  142. package/src/components/tree/types.ts +0 -24
  143. package/src/components/tree/useTree.ts +0 -17
  144. package/src/components/virtualList/VirtualList.tsx +0 -254
  145. package/src/components/virtualList/__workshop__/ChangingProps.tsx +0 -41
  146. package/src/components/virtualList/__workshop__/ElementScroll.tsx +0 -43
  147. package/src/components/virtualList/__workshop__/InfiniteList.tsx +0 -40
  148. package/src/components/virtualList/__workshop__/WindowScrolll.tsx +0 -23
  149. package/src/components/virtualList/__workshop__/index.ts +0 -31
  150. package/src/core/_keys.ts +0 -26
  151. package/src/core/constants.ts +0 -67
  152. package/src/core/getElementRef.ts +0 -29
  153. package/src/core/helpers/animation.ts +0 -26
  154. package/src/core/helpers/element.ts +0 -55
  155. package/src/core/helpers/focus.ts +0 -92
  156. package/src/core/helpers/props.ts +0 -51
  157. package/src/core/helpers/scroll.ts +0 -15
  158. package/src/core/lib/createGlobalScopedContext.ts +0 -39
  159. package/src/core/lib/globalScope.ts +0 -19
  160. package/src/core/lib/isArray.ts +0 -3
  161. package/src/core/lib/isRecord.ts +0 -3
  162. package/src/core/types.ts +0 -57
  163. package/src/hooks/useClickOutsideEvent.test.tsx +0 -114
  164. package/src/hooks/useClickOutsideEvent.ts +0 -66
  165. package/src/hooks/useCustomValidity.ts +0 -13
  166. package/src/hooks/useElementSize.ts +0 -19
  167. package/src/hooks/useGlobalKeyDown.ts +0 -23
  168. package/src/hooks/useMatchMedia.ts +0 -28
  169. package/src/hooks/useMediaIndex/__workshop__/Test.tsx +0 -14
  170. package/src/hooks/useMediaIndex/__workshop__/index.ts +0 -16
  171. package/src/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -21
  172. package/src/hooks/useMediaIndex/useMediaIndex.ts +0 -111
  173. package/src/hooks/useMounted.ts +0 -15
  174. package/src/hooks/usePrefersDark.hydration.test.tsx +0 -56
  175. package/src/hooks/usePrefersDark.test.tsx +0 -20
  176. package/src/hooks/usePrefersDark.ts +0 -16
  177. package/src/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -56
  178. package/src/hooks/usePrefersReducedMotion.test.tsx +0 -20
  179. package/src/hooks/usePrefersReducedMotion.ts +0 -16
  180. package/src/hooks/useResponsiveProp.ts +0 -14
  181. package/src/hooks/useUnique.ts +0 -54
  182. package/src/middleware/origin.ts +0 -47
  183. package/src/observers/elementSize.ts +0 -114
  184. package/src/primitives/_syntax/LazySyntax.tsx +0 -4
  185. package/src/primitives/_syntax/Syntax.tsx +0 -26
  186. package/src/primitives/avatar/Avatar.tsx +0 -145
  187. package/src/primitives/avatar/AvatarCounter.tsx +0 -69
  188. package/src/primitives/avatar/AvatarStack.tsx +0 -77
  189. package/src/primitives/avatar/__workshop__/AsButton.tsx +0 -12
  190. package/src/primitives/avatar/__workshop__/PropsStory.tsx +0 -24
  191. package/src/primitives/avatar/__workshop__/Stack.tsx +0 -27
  192. package/src/primitives/avatar/__workshop__/WithinButton.tsx +0 -51
  193. package/src/primitives/avatar/__workshop__/WithinMenuItem.tsx +0 -52
  194. package/src/primitives/avatar/__workshop__/index.ts +0 -36
  195. package/src/primitives/avatar/types.ts +0 -2
  196. package/src/primitives/badge/Badge.test.tsx +0 -16
  197. package/src/primitives/badge/Badge.tsx +0 -53
  198. package/src/primitives/badge/__workshop__/Props.tsx +0 -27
  199. package/src/primitives/badge/__workshop__/Tones.tsx +0 -15
  200. package/src/primitives/badge/__workshop__/index.ts +0 -26
  201. package/src/primitives/badge/__workshop__/within-button.tsx +0 -36
  202. package/src/primitives/box/Box.tsx +0 -73
  203. package/src/primitives/box/__workshop__/Props.tsx +0 -26
  204. package/src/primitives/box/__workshop__/Responsive.tsx +0 -19
  205. package/src/primitives/box/__workshop__/index.ts +0 -21
  206. package/src/primitives/button/Button.test.tsx +0 -30
  207. package/src/primitives/button/Button.tsx +0 -148
  208. package/src/primitives/button/__workshop__/Custom.tsx +0 -39
  209. package/src/primitives/button/__workshop__/CustomIcons.tsx +0 -37
  210. package/src/primitives/button/__workshop__/DataProps.tsx +0 -18
  211. package/src/primitives/button/__workshop__/Disabled.tsx +0 -43
  212. package/src/primitives/button/__workshop__/MixedChildren.tsx +0 -12
  213. package/src/primitives/button/__workshop__/Props.tsx +0 -60
  214. package/src/primitives/button/__workshop__/Stacked.tsx +0 -60
  215. package/src/primitives/button/__workshop__/Styled1.css.ts +0 -7
  216. package/src/primitives/button/__workshop__/Styled1.tsx +0 -11
  217. package/src/primitives/button/__workshop__/TextOverflow.tsx +0 -17
  218. package/src/primitives/button/__workshop__/UploadButton.tsx +0 -28
  219. package/src/primitives/button/__workshop__/index.ts +0 -61
  220. package/src/primitives/button/types.ts +0 -2
  221. package/src/primitives/card/Card.tsx +0 -124
  222. package/src/primitives/card/CardContext.ts +0 -10
  223. package/src/primitives/card/CardInternalContext.ts +0 -10
  224. package/src/primitives/card/CardInternalProvider.tsx +0 -15
  225. package/src/primitives/card/CardProvider.tsx +0 -16
  226. package/src/primitives/card/__workshop__/AsButton.tsx +0 -103
  227. package/src/primitives/card/__workshop__/AsComponent.tsx +0 -25
  228. package/src/primitives/card/__workshop__/Checkered.tsx +0 -25
  229. package/src/primitives/card/__workshop__/DataProps.tsx +0 -25
  230. package/src/primitives/card/__workshop__/Interactive.tsx +0 -29
  231. package/src/primitives/card/__workshop__/ListNavigation.tsx +0 -78
  232. package/src/primitives/card/__workshop__/Props.tsx +0 -59
  233. package/src/primitives/card/__workshop__/Selected.tsx +0 -62
  234. package/src/primitives/card/__workshop__/Styled.tsx +0 -11
  235. package/src/primitives/card/__workshop__/Tones.tsx +0 -26
  236. package/src/primitives/card/__workshop__/index.ts +0 -21
  237. package/src/primitives/card/types.ts +0 -21
  238. package/src/primitives/card/useCard.ts +0 -20
  239. package/src/primitives/checkbox/Checkbox.tsx +0 -80
  240. package/src/primitives/checkbox/__workshop__/Example.tsx +0 -25
  241. package/src/primitives/checkbox/__workshop__/Props.tsx +0 -35
  242. package/src/primitives/checkbox/__workshop__/ReadOnly.tsx +0 -16
  243. package/src/primitives/checkbox/__workshop__/Tones.tsx +0 -26
  244. package/src/primitives/checkbox/__workshop__/index.ts +0 -15
  245. package/src/primitives/code/Code.tsx +0 -47
  246. package/src/primitives/code/__workshop__/OpticalAlignment.tsx +0 -25
  247. package/src/primitives/code/__workshop__/Props.tsx +0 -20
  248. package/src/primitives/code/__workshop__/index.ts +0 -21
  249. package/src/primitives/container/Container.tsx +0 -43
  250. package/src/primitives/container/__workshop__/Example.tsx +0 -16
  251. package/src/primitives/container/__workshop__/index.ts +0 -16
  252. package/src/primitives/container/types.ts +0 -6
  253. package/src/primitives/flex/Flex.tsx +0 -38
  254. package/src/primitives/flex/__workshop__/Example.tsx +0 -26
  255. package/src/primitives/flex/__workshop__/Gap.tsx +0 -25
  256. package/src/primitives/flex/__workshop__/index.ts +0 -13
  257. package/src/primitives/flex/__workshop__/styles.css.ts +0 -12
  258. package/src/primitives/grid/Grid.tsx +0 -38
  259. package/src/primitives/grid/__workshop__/Responsive.tsx +0 -54
  260. package/src/primitives/grid/__workshop__/index.ts +0 -12
  261. package/src/primitives/heading/Heading.tsx +0 -68
  262. package/src/primitives/heading/__workshop__/OpticalAlignment.tsx +0 -27
  263. package/src/primitives/heading/__workshop__/Plain.tsx +0 -25
  264. package/src/primitives/heading/__workshop__/index.ts +0 -21
  265. package/src/primitives/inline/Inline.tsx +0 -37
  266. package/src/primitives/inline/__workshop__/Plain.tsx +0 -22
  267. package/src/primitives/inline/__workshop__/index.ts +0 -10
  268. package/src/primitives/kbd/Kbd.tsx +0 -36
  269. package/src/primitives/kbd/__workshop__/Plain.tsx +0 -9
  270. package/src/primitives/kbd/__workshop__/index.ts +0 -10
  271. package/src/primitives/label/Label.tsx +0 -67
  272. package/src/primitives/label/__workshop__/OpticalAlignment.tsx +0 -27
  273. package/src/primitives/label/__workshop__/Plain.tsx +0 -27
  274. package/src/primitives/label/__workshop__/index.ts +0 -21
  275. package/src/primitives/layer/Layer.test.tsx +0 -110
  276. package/src/primitives/layer/Layer.tsx +0 -35
  277. package/src/primitives/layer/LayerCard.tsx +0 -90
  278. package/src/primitives/layer/LayerContext.ts +0 -7
  279. package/src/primitives/layer/LayerProvider.tsx +0 -106
  280. package/src/primitives/layer/__workshop__/MultipleRoots.tsx +0 -49
  281. package/src/primitives/layer/__workshop__/Nested.tsx +0 -107
  282. package/src/primitives/layer/__workshop__/ResponsiveZOffset.tsx +0 -17
  283. package/src/primitives/layer/__workshop__/_debug.tsx +0 -17
  284. package/src/primitives/layer/__workshop__/index.ts +0 -26
  285. package/src/primitives/layer/getLayerContext.test.ts +0 -32
  286. package/src/primitives/layer/getLayerContext.ts +0 -21
  287. package/src/primitives/layer/types.ts +0 -9
  288. package/src/primitives/layer/useLayer.ts +0 -24
  289. package/src/primitives/popover/Popover.tsx +0 -291
  290. package/src/primitives/popover/PopoverLayer.tsx +0 -101
  291. package/src/primitives/popover/__workshop__/AlignedStory.tsx +0 -75
  292. package/src/primitives/popover/__workshop__/MarginsStory.tsx +0 -31
  293. package/src/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
  294. package/src/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -11
  295. package/src/primitives/popover/__workshop__/PlainStory.tsx +0 -67
  296. package/src/primitives/popover/__workshop__/RecursiveStory.tsx +0 -71
  297. package/src/primitives/popover/__workshop__/SidePanelStory.tsx +0 -95
  298. package/src/primitives/popover/__workshop__/TestStory.tsx +0 -97
  299. package/src/primitives/popover/__workshop__/index.ts +0 -56
  300. package/src/primitives/popover/__workshop__/portal-inheritance.tsx +0 -15
  301. package/src/primitives/popover/constants.ts +0 -20
  302. package/src/primitives/popover/floating-ui/size.ts +0 -75
  303. package/src/primitives/popover/types.ts +0 -12
  304. package/src/primitives/popover/useMiddleware.ts +0 -126
  305. package/src/primitives/radio/Radio.tsx +0 -64
  306. package/src/primitives/radio/__workshop__/Example.tsx +0 -63
  307. package/src/primitives/radio/__workshop__/Plain.tsx +0 -28
  308. package/src/primitives/radio/__workshop__/index.ts +0 -13
  309. package/src/primitives/select/Select.tsx +0 -76
  310. package/src/primitives/select/__workshop__/Plain.tsx +0 -37
  311. package/src/primitives/select/__workshop__/ReadOnly.tsx +0 -23
  312. package/src/primitives/select/__workshop__/index.ts +0 -13
  313. package/src/primitives/selectable/Selectable.tsx +0 -48
  314. package/src/primitives/selectable/__workshop__/DataProps.tsx +0 -24
  315. package/src/primitives/selectable/__workshop__/as-link.tsx +0 -13
  316. package/src/primitives/selectable/__workshop__/index.ts +0 -19
  317. package/src/primitives/skeleton/CodeSkeleton.tsx +0 -49
  318. package/src/primitives/skeleton/HeadingSkeleton.tsx +0 -48
  319. package/src/primitives/skeleton/LabelSkeleton.tsx +0 -47
  320. package/src/primitives/skeleton/Skeleton.tsx +0 -70
  321. package/src/primitives/skeleton/TextSkeleton.tsx +0 -49
  322. package/src/primitives/skeleton/__workshop__/Delay.tsx +0 -69
  323. package/src/primitives/skeleton/__workshop__/Skeleton.tsx +0 -63
  324. package/src/primitives/skeleton/__workshop__/index.ts +0 -13
  325. package/src/primitives/spinner/Spinner.tsx +0 -45
  326. package/src/primitives/spinner/SpinnerAnimatedIcon.tsx +0 -14
  327. package/src/primitives/spinner/__workshop__/Props.tsx +0 -13
  328. package/src/primitives/spinner/__workshop__/index.ts +0 -16
  329. package/src/primitives/srOnly/SrOnly.tsx +0 -33
  330. package/src/primitives/stack/Stack.tsx +0 -38
  331. package/src/primitives/stack/__workshop__/Plain.tsx +0 -30
  332. package/src/primitives/stack/__workshop__/index.ts +0 -16
  333. package/src/primitives/switch/Switch.tsx +0 -76
  334. package/src/primitives/switch/__workshop__/Example.tsx +0 -25
  335. package/src/primitives/switch/__workshop__/Props.tsx +0 -23
  336. package/src/primitives/switch/__workshop__/index.ts +0 -13
  337. package/src/primitives/text/InlineCode.tsx +0 -25
  338. package/src/primitives/text/Text.tsx +0 -68
  339. package/src/primitives/text/__workshop__/Example.tsx +0 -26
  340. package/src/primitives/text/__workshop__/OpticalAlignment.tsx +0 -27
  341. package/src/primitives/text/__workshop__/index.ts +0 -26
  342. package/src/primitives/text/__workshop__/inline-code.tsx +0 -13
  343. package/src/primitives/textArea/TextArea.tsx +0 -97
  344. package/src/primitives/textArea/__workshop__/Plain.tsx +0 -46
  345. package/src/primitives/textArea/__workshop__/index.ts +0 -16
  346. package/src/primitives/textInput/TextInput.tsx +0 -279
  347. package/src/primitives/textInput/__workshop__/ClearButton.tsx +0 -32
  348. package/src/primitives/textInput/__workshop__/CustomValidity.tsx +0 -17
  349. package/src/primitives/textInput/__workshop__/Plain.tsx +0 -102
  350. package/src/primitives/textInput/__workshop__/ReadOnly.tsx +0 -14
  351. package/src/primitives/textInput/__workshop__/States.tsx +0 -53
  352. package/src/primitives/textInput/__workshop__/Tones.tsx +0 -40
  353. package/src/primitives/textInput/__workshop__/Typed.tsx +0 -23
  354. package/src/primitives/textInput/__workshop__/index.ts +0 -46
  355. package/src/primitives/tooltip/Tooltip.test.tsx +0 -496
  356. package/src/primitives/tooltip/Tooltip.tsx +0 -546
  357. package/src/primitives/tooltip/TooltipLayer.tsx +0 -72
  358. package/src/primitives/tooltip/__workshop__/CustomPortal.tsx +0 -102
  359. package/src/primitives/tooltip/__workshop__/OverflowingBoundary.tsx +0 -74
  360. package/src/primitives/tooltip/__workshop__/Props.tsx +0 -107
  361. package/src/primitives/tooltip/__workshop__/ResizableBoundary.tsx +0 -91
  362. package/src/primitives/tooltip/__workshop__/index.ts +0 -31
  363. package/src/primitives/tooltip/constants.ts +0 -24
  364. package/src/primitives/tooltip/tooltipDelayGroup/TooltipDelayGroupContext.tsx +0 -13
  365. package/src/primitives/tooltip/tooltipDelayGroup/TooltipDelayGroupProvider.tsx +0 -96
  366. package/src/primitives/tooltip/tooltipDelayGroup/types.ts +0 -7
  367. package/src/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -13
  368. package/src/root/Root.tsx +0 -93
  369. package/src/root/RootProvider.tsx +0 -37
  370. package/src/root/__workshop__/Boundary.tsx +0 -43
  371. package/src/root/__workshop__/index.ts +0 -24
  372. package/src/root/__workshop__/primitives.tsx +0 -49
  373. package/src/root/__workshop__/tone-inheritance.tsx +0 -65
  374. package/src/utils/ErrorBoundary.tsx +0 -50
  375. package/src/utils/boundaryElement/BoundaryElementContext.ts +0 -7
  376. package/src/utils/boundaryElement/BoundaryElementProvider.tsx +0 -16
  377. package/src/utils/boundaryElement/__workshop__/Plain.tsx +0 -49
  378. package/src/utils/boundaryElement/__workshop__/index.ts +0 -16
  379. package/src/utils/boundaryElement/types.ts +0 -2
  380. package/src/utils/boundaryElement/useBoundaryElement.ts +0 -12
  381. package/src/utils/elementQuery/ElementQuery.tsx +0 -75
  382. package/src/utils/elementQuery/__workshop__/CustomMedia.tsx +0 -19
  383. package/src/utils/elementQuery/__workshop__/index.ts +0 -16
  384. package/src/utils/elementQuery/__workshop__/styles.css.ts +0 -31
  385. package/src/utils/elementQuery/helpers.ts +0 -27
  386. package/src/utils/portal/Portal.test.tsx +0 -105
  387. package/src/utils/portal/Portal.tsx +0 -42
  388. package/src/utils/portal/PortalContext.ts +0 -37
  389. package/src/utils/portal/PortalProvider.tsx +0 -38
  390. package/src/utils/portal/__workshop__/Named.tsx +0 -69
  391. package/src/utils/portal/__workshop__/index.ts +0 -16
  392. package/src/utils/portal/types.ts +0 -7
  393. package/src/utils/portal/usePortal.ts +0 -30
@@ -1,28 +0,0 @@
1
- import type {Placement} from '../../core/types'
2
-
3
- /**
4
- * @internal
5
- */
6
- export const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS: string[] = [
7
- 'Control',
8
- 'Shift',
9
- 'Alt',
10
- 'Enter',
11
- 'Home',
12
- 'End',
13
- 'PageUp',
14
- 'PageDown',
15
- 'Meta',
16
- 'Tab',
17
- 'CapsLock',
18
- ]
19
-
20
- /**
21
- * @internal
22
- */
23
- export const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'
24
-
25
- /**
26
- * @internal
27
- */
28
- export const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']
@@ -1,103 +0,0 @@
1
- import type {ButtonProps} from '../../primitives/button/Button'
2
-
3
- /** @public */
4
- export type AutocompleteOpenButtonProps = Omit<ButtonProps<'button'>, 'as'>
5
-
6
- /** @public */
7
- export interface BaseAutocompleteOption {
8
- value: string
9
- }
10
-
11
- /**
12
- * @internal
13
- */
14
- export interface AutocompleteState {
15
- activeValue: string | null
16
- focused: boolean
17
- listFocused: boolean
18
- query: string | null
19
- value: string | null
20
- }
21
-
22
- /**
23
- * @internal
24
- */
25
- export interface AutocompleteRootBlurMsg {
26
- type: 'root/blur'
27
- }
28
-
29
- /**
30
- * @internal
31
- */
32
- export interface AutocompleteRootClearMsg {
33
- type: 'root/clear'
34
- }
35
-
36
- /**
37
- * @internal
38
- */
39
- export interface AutocompleteRootEscapeMsg {
40
- type: 'root/escape'
41
- }
42
-
43
- /**
44
- * @internal
45
- */
46
- export interface AutocompleteRootOpenMsg {
47
- type: 'root/open'
48
- query: string | null
49
- }
50
-
51
- /**
52
- * @internal
53
- */
54
- export interface AutocompleteRootSetActiveValueMsg {
55
- type: 'root/setActiveValue'
56
- value: string
57
- listFocused?: boolean
58
- }
59
-
60
- /**
61
- * @internal
62
- */
63
- export interface AutocompleteRootSetListFocusedMsg {
64
- type: 'root/setListFocused'
65
- listFocused: boolean
66
- }
67
-
68
- /**
69
- * @internal
70
- */
71
- export interface AutocompleteInputChangeMsg {
72
- type: 'input/change'
73
- query: string | null
74
- }
75
-
76
- /**
77
- * @internal
78
- */
79
- export interface AutocompleteInputFoocusMsg {
80
- type: 'input/focus'
81
- }
82
-
83
- /**
84
- * @internal
85
- */
86
- export interface AutocompleteValueChangeMsg {
87
- type: 'value/change'
88
- value: string | null
89
- }
90
-
91
- /**
92
- * @internal
93
- */
94
- export type AutocompleteMsg =
95
- | AutocompleteRootBlurMsg
96
- | AutocompleteRootClearMsg
97
- | AutocompleteRootEscapeMsg
98
- | AutocompleteRootOpenMsg
99
- | AutocompleteRootSetActiveValueMsg
100
- | AutocompleteRootSetListFocusedMsg
101
- | AutocompleteInputChangeMsg
102
- | AutocompleteInputFoocusMsg
103
- | AutocompleteValueChangeMsg
@@ -1,163 +0,0 @@
1
- import {type GapStyleProps} from '@sanity/ui-css'
2
- import {
3
- Children,
4
- Fragment,
5
- isValidElement,
6
- type ReactNode,
7
- useCallback,
8
- useMemo,
9
- useRef,
10
- useState,
11
- } from 'react'
12
-
13
- import type {ComponentType, Props} from '../../core/types'
14
- import {useClickOutsideEvent} from '../../hooks/useClickOutsideEvent'
15
- import {Box} from '../../primitives/box/Box'
16
- import {Button, type ButtonProps} from '../../primitives/button/Button'
17
- import {Flex} from '../../primitives/flex/Flex'
18
- import {Popover, type PopoverProps} from '../../primitives/popover/Popover'
19
- import {Stack} from '../../primitives/stack/Stack'
20
- import {Text} from '../../primitives/text/Text'
21
-
22
- /** @beta */
23
- export const DEFAULT_BREADCRUMBS_ELEMENT = 'nav'
24
-
25
- /** @beta */
26
- export type BreadcrumbsOwnProps = GapStyleProps & {
27
- expandButton?: Omit<ButtonProps, 'as' | 'onClick' | 'selected'>
28
- maxLength?: number
29
- popover?: PopoverProps
30
- separator?: ReactNode
31
- }
32
-
33
- /** @beta */
34
- export type BreadcrumbsElementType = 'div' | 'nav' | ComponentType
35
-
36
- /** @beta */
37
- export type BreadcrumbsProps<E extends BreadcrumbsElementType = BreadcrumbsElementType> = Props<
38
- BreadcrumbsOwnProps,
39
- E
40
- >
41
-
42
- /** @beta */
43
- export function Breadcrumbs<E extends BreadcrumbsElementType = typeof DEFAULT_BREADCRUMBS_ELEMENT>(
44
- props: BreadcrumbsProps<E>,
45
- ): React.JSX.Element {
46
- const {
47
- as = DEFAULT_BREADCRUMBS_ELEMENT,
48
- children,
49
- expandButton: expandButtonProps,
50
- gap = 2,
51
- gapX = gap,
52
- gapY = gap,
53
- maxLength,
54
- popover: popoverProps,
55
- separator,
56
- ...rest
57
- } = props as BreadcrumbsProps<typeof DEFAULT_BREADCRUMBS_ELEMENT>
58
-
59
- const [open, setOpen] = useState(false)
60
- const expandElementRef = useRef<HTMLButtonElement | null>(null)
61
- const popoverElementRef = useRef<HTMLDivElement | null>(null)
62
-
63
- const collapse = useCallback(() => setOpen(false), [])
64
- const expand = useCallback(() => setOpen(true), [])
65
-
66
- useClickOutsideEvent(collapse, () => [expandElementRef.current, popoverElementRef.current])
67
-
68
- const rawItems = useMemo(() => Children.toArray(children).filter(isValidElement), [children])
69
-
70
- const items = useItems({
71
- collapse,
72
- expand,
73
- expandElementRef,
74
- maxLength,
75
- open,
76
- popoverElementRef,
77
- popoverProps,
78
- rawItems,
79
- gapY,
80
- expandButtonProps,
81
- })
82
-
83
- return (
84
- <Flex as={as} data-ui="Breadcrumbs" {...rest} gap={gap} gapX={gapX} gapY={gapY} wrap="wrap">
85
- {items.map((item, itemIndex) => (
86
- <Fragment key={itemIndex}>
87
- {itemIndex > 0 && (
88
- <Box aria-hidden as="li" flex="none">
89
- {separator || <Text muted>/</Text>}
90
- </Box>
91
- )}
92
- <Box as="li" flex="none">
93
- {item}
94
- </Box>
95
- </Fragment>
96
- ))}
97
- </Flex>
98
- )
99
- }
100
-
101
- function useItems({
102
- collapse,
103
- expand,
104
- expandElementRef,
105
- maxLength,
106
- open,
107
- popoverElementRef,
108
- popoverProps,
109
- rawItems,
110
- gapY,
111
- expandButtonProps,
112
- }: {
113
- collapse: () => void
114
- expand: () => void
115
- expandElementRef: React.RefObject<HTMLButtonElement | null>
116
- maxLength: number | undefined
117
- open: boolean
118
- popoverElementRef: React.RefObject<HTMLDivElement | null>
119
- popoverProps?: PopoverProps
120
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
121
- rawItems: React.ReactElement<unknown, string | React.JSXElementConstructor<any>>[]
122
- gapY: NonNullable<GapStyleProps['gapY']>
123
- expandButtonProps: BreadcrumbsOwnProps['expandButton']
124
- }): React.JSX.Element[] {
125
- const len = rawItems.length
126
-
127
- if (maxLength && len > maxLength) {
128
- const beforeLength = Math.ceil(maxLength / 2)
129
- const afterLength = Math.floor(maxLength / 2)
130
-
131
- return [
132
- ...rawItems.slice(0, beforeLength - 1),
133
- <Popover
134
- key="button"
135
- constrainSize
136
- open={open}
137
- padding={2}
138
- placement="top"
139
- portal
140
- {...popoverProps}
141
- ref={popoverElementRef}
142
- content={
143
- <Stack as="ol" gap={gapY} overflow="auto">
144
- {rawItems.slice(beforeLength - 1, len - afterLength)}
145
- </Stack>
146
- }
147
- >
148
- <Button
149
- mode="bleed"
150
- padding={0}
151
- text="…"
152
- {...expandButtonProps}
153
- ref={expandElementRef}
154
- selected={open}
155
- onClick={open ? collapse : expand}
156
- />
157
- </Popover>,
158
- ...rawItems.slice(len - afterLength),
159
- ]
160
- }
161
-
162
- return rawItems
163
- }
@@ -1,48 +0,0 @@
1
- import {EllipsisHorizontalIcon} from '@sanity/icons'
2
- import {Box, Breadcrumbs, Button, Flex, SPACE, Text} from '@sanity/ui'
3
- import {useSelect} from '@sanity/ui-workshop'
4
-
5
- import {CardWrapper} from '$workshop'
6
-
7
- const items = ['List 1', 'List 2', 'List 3', 'List 4', 'List 5', 'List 6', 'List 7']
8
-
9
- const MAX_LENGTH_OPTIONS = [undefined, ...items.map((_, index) => index + 1)]
10
-
11
- export default function ExampleStory(): React.JSX.Element {
12
- const maxLength = useSelect('Max. length', MAX_LENGTH_OPTIONS)
13
- const gap = useSelect('Gap', [undefined, ...SPACE])
14
-
15
- return (
16
- <CardWrapper>
17
- <Flex align="center" height="fill" justify="center">
18
- <Breadcrumbs
19
- expandButton={{
20
- icon: EllipsisHorizontalIcon,
21
- padding: 2,
22
- text: undefined,
23
- }}
24
- gap={gap}
25
- maxLength={maxLength}
26
- popover={{
27
- display: 'flex',
28
- flexDirection: 'column',
29
- gap: 1,
30
- padding: 1,
31
- placement: 'bottom',
32
- }}
33
- separator={
34
- <Box paddingY={2}>
35
- <Text muted size={1} style={{opacity: 0.5}}>
36
- /
37
- </Text>
38
- </Box>
39
- }
40
- >
41
- {items.map((item) => (
42
- <Button key={item} mode="bleed" padding={2} text={item} />
43
- ))}
44
- </Breadcrumbs>
45
- </Flex>
46
- </CardWrapper>
47
- )
48
- }
@@ -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/breadcrumbs',
6
- title: 'Breadcrumbs',
7
- stories: [
8
- {
9
- name: 'example',
10
- title: 'Example',
11
- component: lazy(() => import('./Example')),
12
- },
13
- ],
14
- }
15
-
16
- export default scope
@@ -1,230 +0,0 @@
1
- import {
2
- type ContainerStyleProps,
3
- dialog,
4
- dialog_container,
5
- type ResponsiveProp,
6
- } from '@sanity/ui-css'
7
- import type {Radius, Shadow} from '@sanity/ui-tokens'
8
- import {type FocusEvent, type ForwardedRef, type ReactNode, use, useCallback, useRef} from 'react'
9
-
10
- import {Z_OFFSETS} from '../../core/constants'
11
- import {isHTMLElement} from '../../core/helpers/element'
12
- import {focusFirstDescendant, focusLastDescendant} from '../../core/helpers/focus'
13
- import type {ComponentType, Props} from '../../core/types'
14
- import {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'
15
- import {Container} from '../../primitives/container/Container'
16
- import {Layer, type LayerOwnProps, type LayerProps} from '../../primitives/layer/Layer'
17
- import {BoundaryElementContext} from '../../utils/boundaryElement/BoundaryElementContext'
18
- import {Portal} from '../../utils/portal/Portal'
19
- import {usePortal} from '../../utils/portal/usePortal'
20
- import {DialogCard} from './DialogCard'
21
- import {isTargetWithinScope} from './isTargetWithinScope'
22
- import type {DialogPosition} from './types'
23
- import {useDialog} from './useDialog'
24
-
25
- /** @public */
26
- export const DEFAULT_DIALOG_ELEMENT = 'div'
27
-
28
- /** @public */
29
- export interface DialogOwnProps
30
- extends
31
- Omit<ContainerStyleProps, 'id' | 'position' | 'radius' | 'shadow'>,
32
- Omit<LayerOwnProps, 'id' | 'position' | 'radius' | 'shadow' | 'width'> {
33
- /**
34
- * @beta
35
- */
36
- __unstable_autoFocus?: boolean
37
- /**
38
- * @beta
39
- */
40
- __unstable_hideCloseButton?: boolean
41
- /**
42
- * Whether the dialog should animate in on mount.
43
- *
44
- * @beta
45
- * @defaultValue false
46
- */
47
- animate?: boolean
48
- cardRadius?: ResponsiveProp<Radius>
49
- contentRef?: ForwardedRef<HTMLDivElement>
50
- footer?: ReactNode
51
- header?: ReactNode
52
- id: string
53
- /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */
54
- onActivate?: LayerProps['onActivate']
55
- onClickOutside?: () => void
56
- onClose?: () => void
57
- open?: boolean
58
- portal?: string
59
- position?: ResponsiveProp<DialogPosition>
60
- /**
61
- * @deprecated Not in use – will be removed in the next major version.
62
- */
63
- shadow?: ResponsiveProp<Shadow>
64
- }
65
-
66
- /** @public */
67
- export type DialogElementType = 'div' | 'span' | ComponentType
68
-
69
- /** @public */
70
- export type DialogProps<E extends DialogElementType = DialogElementType> = Props<DialogOwnProps, E>
71
-
72
- /**
73
- * The Dialog component.
74
- *
75
- * @public
76
- */
77
- export function Dialog<E extends DialogElementType = typeof DEFAULT_DIALOG_ELEMENT>(
78
- props: DialogProps<E>,
79
- ): React.JSX.Element {
80
- const context = useDialog()
81
- const {
82
- __unstable_autoFocus: autoFocus = true,
83
- __unstable_hideCloseButton: hideCloseButton = false,
84
- animate: _animate = true,
85
- cardRadius = 5,
86
- children,
87
- className,
88
- contentRef,
89
- footer,
90
- header,
91
- id,
92
- onActivate,
93
- onClickOutside,
94
- onClose,
95
- onFocus,
96
- padding = 3,
97
- portal: portalProp,
98
- position: _positionProp,
99
- // Remove `shadow` prop in next major version
100
- shadow: _shadow,
101
- width = 0,
102
- zOffset: _zOffsetProp,
103
- ...rest
104
- } = props as DialogProps<typeof DEFAULT_DIALOG_ELEMENT>
105
-
106
- const position = _positionProp ?? context.position ?? 'fixed'
107
- const zOffset = _zOffsetProp ?? context.zOffset ?? Z_OFFSETS.dialog
108
- const prefersReducedMotion = usePrefersReducedMotion()
109
- const animate = prefersReducedMotion ? false : _animate
110
- const portal = usePortal()
111
- const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element
112
- const boundaryElement = use(BoundaryElementContext)
113
-
114
- const preDivRef = useRef<HTMLDivElement | null>(null)
115
- const postDivRef = useRef<HTMLDivElement | null>(null)
116
- const cardRef = useRef<HTMLDivElement | null>(null)
117
- const focusedElementRef = useRef<HTMLElement | null>(null)
118
-
119
- const handleFocus = useCallback(
120
- (event: FocusEvent<HTMLDivElement>) => {
121
- onFocus?.(event)
122
-
123
- const target = event.target
124
- const cardElement = cardRef.current
125
-
126
- if (cardElement && target === preDivRef.current) {
127
- focusLastDescendant(cardElement)
128
-
129
- return
130
- }
131
-
132
- if (cardElement && target === postDivRef.current) {
133
- focusFirstDescendant(cardElement)
134
-
135
- return
136
- }
137
-
138
- if (isHTMLElement(event.target)) {
139
- focusedElementRef.current = event.target
140
- }
141
- },
142
- [onFocus],
143
- )
144
-
145
- const labelId = `${id}_label`
146
-
147
- const rootClickTimeoutRef = useRef<NodeJS.Timeout>(undefined)
148
-
149
- // If the resulting active element (a.k.a. focused element) is not withing scope when clicking
150
- // within the dialog, then we want to focus the previously interactive element in the dialog instead.
151
- // This is to allow the user to tab or close the dialog by pressing escape.
152
- const handleRootClick = useCallback(() => {
153
- if (rootClickTimeoutRef.current) {
154
- clearTimeout(rootClickTimeoutRef.current)
155
- }
156
-
157
- rootClickTimeoutRef.current = setTimeout(() => {
158
- const activeElement = document.activeElement
159
-
160
- if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {
161
- const target = focusedElementRef.current
162
-
163
- if (!target || !document.body.contains(target)) {
164
- // No previously focused element, or it's not in the document anymore
165
- const cardElement = cardRef.current
166
- if (cardElement) focusFirstDescendant(cardElement)
167
-
168
- return
169
- }
170
-
171
- target.focus()
172
- }
173
- }, 0)
174
- }, [boundaryElement, portalElement])
175
-
176
- return (
177
- <Portal __unstable_name={portalProp}>
178
- <Layer
179
- data-ui="Dialog"
180
- {...rest}
181
- aria-labelledby={labelId}
182
- aria-modal
183
- className={dialog({className})}
184
- data-animate={animate ? '' : undefined}
185
- display="flex"
186
- id={id}
187
- inset={0}
188
- padding={padding}
189
- position={position}
190
- role="dialog"
191
- zOffset={zOffset}
192
- onActivate={onActivate}
193
- onClick={handleRootClick}
194
- onFocus={handleFocus}
195
- >
196
- {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}
197
- <div ref={preDivRef} tabIndex={0} />
198
- <Container
199
- alignItems="center"
200
- className={dialog_container()}
201
- data-ui="DialogCard"
202
- display="flex"
203
- flexDirection="column"
204
- justifyContent="center"
205
- width={width}
206
- >
207
- <DialogCard
208
- ref={cardRef}
209
- __unstable_autoFocus={autoFocus}
210
- __unstable_hideCloseButton={hideCloseButton}
211
- contentRef={contentRef}
212
- footer={footer}
213
- header={header}
214
- id={id}
215
- portal={portalProp}
216
- radius={cardRadius}
217
- shadow={4}
218
- width={width}
219
- onClickOutside={onClickOutside}
220
- onClose={onClose}
221
- >
222
- {children}
223
- </DialogCard>
224
- </Container>
225
- {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}
226
- <div ref={postDivRef} tabIndex={0} />
227
- </Layer>
228
- </Portal>
229
- )
230
- }