@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,90 +0,0 @@
1
- import {type FocusEvent, useCallback, useEffect, useImperativeHandle, useRef} from 'react'
2
-
3
- import {EMPTY_RECORD} from '../../core/constants'
4
- import {containsOrEqualsElement, isHTMLElement} from '../../core/helpers/element'
5
- import type {Props} from '../../core/types'
6
- import {Card, type CardElementType} from '../../primitives/card/Card'
7
- import type {LayerElementType, LayerOwnProps} from './Layer'
8
- import {useLayer} from './useLayer'
9
-
10
- /** @internal */
11
- export const DEFAULT_LAYER_CARD_ELEMENT = 'div'
12
-
13
- /** @internal */
14
- export type LayerCardOwnProps = Omit<LayerOwnProps, 'zOffset'>
15
-
16
- /** @internal */
17
- export type LayerCardElementType = LayerElementType
18
-
19
- /** @internal */
20
- export type LayerCardProps<E extends LayerCardElementType = LayerCardElementType> = Props<
21
- LayerCardOwnProps,
22
- E
23
- >
24
-
25
- /** @internal */
26
- export function LayerCard<E extends LayerCardElementType = typeof DEFAULT_LAYER_CARD_ELEMENT>(
27
- props: LayerCardProps<E>,
28
- ): React.JSX.Element {
29
- const {
30
- as = DEFAULT_LAYER_CARD_ELEMENT,
31
- children,
32
- onActivate,
33
- onFocus,
34
- position = 'relative',
35
- ref: forwardedRef,
36
- style = EMPTY_RECORD,
37
- ...rest
38
- } = props as LayerCardProps<typeof DEFAULT_LAYER_CARD_ELEMENT>
39
-
40
- const {zIndex, isTopLayer} = useLayer()
41
- const lastFocusedRef = useRef<HTMLElement | null>(null)
42
- const ref = useRef<HTMLDivElement | null>(null)
43
- const isTopLayerRef = useRef<boolean>(isTopLayer)
44
-
45
- useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)
46
-
47
- // When the layer very first mounts, it will be the top layer, but we don't want to fire
48
- // the callback in that case. We use a ref to track the previous value of isTopLayer to
49
- // determine if the layer has become the top layer since the last render.
50
- useEffect(() => {
51
- const becameTopLayer = isTopLayerRef.current !== isTopLayer && isTopLayer
52
-
53
- if (becameTopLayer) {
54
- onActivate?.({activeElement: lastFocusedRef.current})
55
- }
56
-
57
- isTopLayerRef.current = isTopLayer
58
- }, [isTopLayer, onActivate])
59
-
60
- const handleFocus = useCallback(
61
- (event: FocusEvent<HTMLDivElement, Element>) => {
62
- // Call the user-provided onFocus handler if any
63
- onFocus?.(event)
64
-
65
- const rootElement = ref.current
66
- const target = document.activeElement
67
-
68
- if (!isTopLayer || !rootElement || !target) return
69
-
70
- if (isHTMLElement(target) && containsOrEqualsElement(rootElement, target)) {
71
- lastFocusedRef.current = target
72
- }
73
- },
74
- [isTopLayer, onFocus],
75
- )
76
-
77
- return (
78
- <Card
79
- data-ui="Layer"
80
- {...rest}
81
- ref={ref}
82
- as={as as CardElementType}
83
- position={position}
84
- style={{...style, zIndex}}
85
- onFocus={handleFocus}
86
- >
87
- {children}
88
- </Card>
89
- )
90
- }
@@ -1,7 +0,0 @@
1
- import type {Context} from 'react'
2
-
3
- import {createGlobalScopedContext} from '../../core/lib/createGlobalScopedContext'
4
- import type {LayerContextValue} from './types'
5
-
6
- export const LayerContext: Context<LayerContextValue | null> =
7
- createGlobalScopedContext<LayerContextValue | null>('@sanity/ui/v4/layer', null)
@@ -1,106 +0,0 @@
1
- import type {Breakpoint, ResponsiveProp} from '@sanity/ui-css'
2
- import {type ReactNode, use, useCallback, useEffect, useMemo, useState} from 'react'
3
-
4
- import {_getResponsiveProp} from '../../core/helpers/props'
5
- import {useMediaIndex} from '../../hooks/useMediaIndex/useMediaIndex'
6
- import {getLayerContext} from './getLayerContext'
7
- import {LayerContext} from './LayerContext'
8
- import type {LayerContextValue} from './types'
9
-
10
- /** @public */
11
- export interface LayerProviderProps {
12
- children?: ReactNode
13
- zOffset?: ResponsiveProp<number>
14
- }
15
-
16
- /** @public */
17
- export function LayerProvider(props: LayerProviderProps): React.JSX.Element {
18
- const {children, zOffset: zOffsetProp = 0} = props
19
-
20
- // Get parent context values
21
- const parentContextValue = use(LayerContext)
22
- const parent = parentContextValue && getLayerContext(parentContextValue)
23
- const parentRegisterChild = parent?.registerChild
24
- const parentLevel = parent?.level ?? 0
25
-
26
- // Get level
27
- const level = parentLevel + 1
28
-
29
- // Get z-index offset
30
- const zOffset = _getResponsiveProp(zOffsetProp)
31
-
32
- // Get responsive z-index value
33
- const maxMediaIndex = zOffset.length - 1
34
- const mediaIndex = Math.min(useMediaIndex(), maxMediaIndex) as Breakpoint
35
- const zIndex = parent ? parent.zIndex + (zOffset[mediaIndex] ?? 0) : (zOffset[mediaIndex] ?? 0)
36
-
37
- // A state value that is used to keep track of the number of child layers on each level
38
- const [, setChildLayers] = useState<Record<number, number>>({})
39
-
40
- // A state value that is used to keep track of the number of child levels
41
- const [size, setSize] = useState(0)
42
-
43
- const isTopLayer = size === 0
44
-
45
- const registerChild = useCallback(
46
- (childLevel?: number) => {
47
- // Register child layers to the parent layer
48
- const parentDispose = parentRegisterChild?.(childLevel)
49
-
50
- if (childLevel !== undefined) {
51
- setChildLayers((state) => {
52
- const prevLen = state[childLevel] ?? 0
53
- const nextState = {...state, [childLevel]: prevLen + 1}
54
-
55
- setSize(Object.keys(nextState).length)
56
-
57
- return nextState
58
- })
59
- } else {
60
- // Legacy behavior: if no child level is provided, increment the size by 1
61
- setSize((v) => v + 1)
62
- }
63
-
64
- return () => {
65
- if (childLevel !== undefined) {
66
- setChildLayers((state) => {
67
- const nextState = {...state}
68
-
69
- if (nextState[childLevel] === 1) {
70
- delete nextState[childLevel]
71
-
72
- setSize(Object.keys(nextState).length)
73
- } else {
74
- nextState[childLevel] -= 1
75
- }
76
-
77
- return nextState
78
- })
79
- } else {
80
- // Legacy behavior: if no child level is provided, decrement the size by 1
81
- setSize((v) => v - 1)
82
- }
83
-
84
- parentDispose?.()
85
- }
86
- },
87
- [parentRegisterChild, setSize, setChildLayers],
88
- )
89
-
90
- // Register this layer on mount
91
- useEffect(() => parentRegisterChild?.(level), [level, parentRegisterChild])
92
-
93
- const value: LayerContextValue = useMemo(
94
- () => ({
95
- version: 0.0,
96
- isTopLayer,
97
- level,
98
- registerChild,
99
- size,
100
- zIndex,
101
- }),
102
- [isTopLayer, level, registerChild, size, zIndex],
103
- )
104
-
105
- return <LayerContext value={value}>{children}</LayerContext>
106
- }
@@ -1,49 +0,0 @@
1
- import {Card, Layer, LayerProvider, Stack} from '@sanity/ui'
2
-
3
- import {LayerDebugInfo} from './_debug'
4
-
5
- export default function MultipleRootsStory(): React.JSX.Element {
6
- return (
7
- <Stack gap={4}>
8
- <LayerProvider zOffset={100}>
9
- <Card padding={3} shadow={1}>
10
- <Stack gap={3}>
11
- <LayerDebugInfo />
12
- <Layer>
13
- <Card padding={3} shadow={1}>
14
- <Stack gap={3}>
15
- <LayerDebugInfo />
16
- <Layer>
17
- <Card padding={3} shadow={1}>
18
- <LayerDebugInfo />
19
- </Card>
20
- </Layer>
21
- </Stack>
22
- </Card>
23
- </Layer>
24
- </Stack>
25
- </Card>
26
- </LayerProvider>
27
-
28
- <LayerProvider zOffset={200}>
29
- <Card as={Layer} padding={3} shadow={5} style={{top: -50, left: 30}}>
30
- <Stack gap={3}>
31
- <LayerDebugInfo />
32
- <Layer>
33
- <Card padding={3} shadow={1}>
34
- <Stack gap={3}>
35
- <LayerDebugInfo />
36
- <Layer>
37
- <Card padding={3} shadow={1}>
38
- <LayerDebugInfo />
39
- </Card>
40
- </Layer>
41
- </Stack>
42
- </Card>
43
- </Layer>
44
- </Stack>
45
- </Card>
46
- </LayerProvider>
47
- </Stack>
48
- )
49
- }
@@ -1,107 +0,0 @@
1
- import {CloseIcon} from '@sanity/icons'
2
- import {Box, Button, Card, Flex, Layer, LayerProvider, Stack, Text} from '@sanity/ui'
3
- import {useCallback, useState} from 'react'
4
-
5
- import {CardWrapper} from '$workshop'
6
-
7
- import {LayerDebugInfo} from './_debug'
8
-
9
- export default function PlainStory(): React.JSX.Element {
10
- return (
11
- <CardWrapper gap={4} pattern="halftone" tone="transparent">
12
- <Root />
13
- <Root />
14
- <Root />
15
- </CardWrapper>
16
- )
17
- }
18
-
19
- function Root() {
20
- const [open, setOpen] = useState(false)
21
- const handleOpen = useCallback(() => setOpen(true), [])
22
- const handleClose = useCallback(() => setOpen(false), [])
23
-
24
- return (
25
- <LayerProvider>
26
- <Card radius={4} shadow={1} tone="default">
27
- <Box padding={4}>
28
- <Text size={1} weight="medium">
29
- Root layer
30
- </Text>
31
- </Box>
32
- <Stack gap={4} padding={4}>
33
- <LayerDebugInfo id="layer-debug-info-1" />
34
- <Button
35
- id="open-layer-1"
36
- mode="ghost"
37
- selected={open}
38
- text="Open layer 1"
39
- onClick={handleOpen}
40
- />
41
- {open && (
42
- <Layer radius={3} shadow={2}>
43
- <Layer1Content onClose={handleClose} />
44
- </Layer>
45
- )}
46
- </Stack>
47
- </Card>
48
- </LayerProvider>
49
- )
50
- }
51
-
52
- function Layer1Content({onClose}: {onClose: () => void}) {
53
- const [open, setOpen] = useState(false)
54
- const handleOpen = useCallback(() => setOpen(true), [])
55
- const handleClose = useCallback(() => setOpen(false), [])
56
-
57
- return (
58
- <>
59
- <Flex>
60
- <Box flex={1} padding={4}>
61
- <Text size={1} weight="medium">
62
- Layer 1
63
- </Text>
64
- </Box>
65
- <Box padding={3}>
66
- <Button icon={CloseIcon} mode="bleed" padding={2} onClick={onClose} />
67
- </Box>
68
- </Flex>
69
-
70
- <Stack gap={4} padding={4}>
71
- <LayerDebugInfo />
72
- <Button
73
- id="open-layer-2"
74
- mode="ghost"
75
- selected={open}
76
- text="Open layer 2"
77
- onClick={handleOpen}
78
- />
79
- {open && (
80
- <Layer radius={3} shadow={3}>
81
- <Layer2Content onClose={handleClose} />
82
- </Layer>
83
- )}
84
- </Stack>
85
- </>
86
- )
87
- }
88
-
89
- function Layer2Content({onClose}: {onClose: () => void}) {
90
- return (
91
- <>
92
- <Flex>
93
- <Box flex={1} padding={4}>
94
- <Text size={1} weight="medium">
95
- Layer 2
96
- </Text>
97
- </Box>
98
- <Box padding={3}>
99
- <Button icon={CloseIcon} mode="bleed" padding={2} onClick={onClose} />
100
- </Box>
101
- </Flex>
102
- <Stack gap={4} padding={4}>
103
- <LayerDebugInfo />
104
- </Stack>
105
- </>
106
- )
107
- }
@@ -1,17 +0,0 @@
1
- import {Layer} from '@sanity/ui'
2
-
3
- import {LayerDebugInfo} from './_debug'
4
-
5
- export default function ResponsiveZOffsetStory(): React.JSX.Element {
6
- return (
7
- <Layer
8
- id="responsive-layer"
9
- padding={[1, 2, 3, 4, 5, 6, 7]}
10
- shadow={1}
11
- sizing="border"
12
- zOffset={[1, 2, 3, 4, 5, 6, 7]}
13
- >
14
- <LayerDebugInfo />
15
- </Layer>
16
- )
17
- }
@@ -1,17 +0,0 @@
1
- import {Code, useLayer} from '@sanity/ui'
2
-
3
- export function LayerDebugInfo(props: {id?: string}): React.JSX.Element {
4
- const {id} = props
5
- const layer = useLayer()
6
-
7
- return (
8
- <Code id={id} size={1}>
9
- {[
10
- //
11
- `isTopLayer=${layer.isTopLayer}`,
12
- `size=${layer.size}`,
13
- `zIndex=${layer.zIndex}`,
14
- ].join('\n')}
15
- </Code>
16
- )
17
- }
@@ -1,26 +0,0 @@
1
- import type {WorkshopScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- const scope: WorkshopScope = {
5
- name: 'primitives/layer',
6
- title: 'Layer',
7
- stories: [
8
- {
9
- name: 'nested',
10
- title: 'Nested',
11
- component: lazy(() => import('./Nested')),
12
- },
13
- {
14
- name: 'multiple-roots',
15
- title: 'Multiple roots',
16
- component: lazy(() => import('./MultipleRoots')),
17
- },
18
- {
19
- name: 'responsive-z-offset',
20
- title: 'Responsive z-offset',
21
- component: lazy(() => import('./ResponsiveZOffset')),
22
- },
23
- ],
24
- }
25
-
26
- export default scope
@@ -1,32 +0,0 @@
1
- import {describe, expect, it} from 'vitest'
2
-
3
- import {getLayerContext} from './getLayerContext'
4
- import type {LayerContextValue} from './types'
5
-
6
- describe('getLayerContext', () => {
7
- describe('0.0', () => {
8
- it('should convert 0.0 to 0.0', () => {
9
- const contextValue: LayerContextValue = {
10
- version: 0.0,
11
- isTopLayer: true,
12
- level: 0,
13
- registerChild: () => () => {
14
- //
15
- },
16
- size: 0,
17
- zIndex: 0,
18
- }
19
-
20
- const result = getLayerContext(contextValue)
21
-
22
- expect(result).toEqual({
23
- version: 0.0,
24
- isTopLayer: true,
25
- level: 0,
26
- registerChild: expect.any(Function),
27
- size: 0,
28
- zIndex: 0,
29
- })
30
- })
31
- })
32
- })
@@ -1,21 +0,0 @@
1
- import {isRecord} from '../../core/lib/isRecord'
2
- import type {LayerContextValue} from './types'
3
-
4
- export function getLayerContext(contextValue: LayerContextValue): LayerContextValue {
5
- // NOTE: This check is for future-compatiblity
6
- // - If the value is not an object, it’s not compatible with the current version
7
- // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version
8
- if (!isRecord(contextValue) || contextValue.version !== 0.0) {
9
- throw new Error('the context value is not compatible')
10
- }
11
-
12
- if (!contextValue) {
13
- throw new Error('components using `useLayer()` should be wrapped in a <LayerProvider>.')
14
- }
15
-
16
- if (contextValue.version === 0.0) {
17
- return contextValue
18
- }
19
-
20
- throw new Error('could not get layer context')
21
- }
@@ -1,9 +0,0 @@
1
- /** @public */
2
- export interface LayerContextValue {
3
- version: 0.0
4
- isTopLayer: boolean
5
- level?: number
6
- registerChild: (childLevel?: number) => () => void
7
- size: number
8
- zIndex: number
9
- }
@@ -1,24 +0,0 @@
1
- import {use} from 'react'
2
-
3
- import {getLayerContext} from './getLayerContext'
4
- import {LayerContext} from './LayerContext'
5
- import type {LayerContextValue} from './types'
6
-
7
- /** @public */
8
- export function useLayer(): LayerContextValue {
9
- const value = use(LayerContext)
10
-
11
- if (!value) {
12
- throw new Error('useLayer(): missing context value')
13
- }
14
-
15
- try {
16
- return getLayerContext(value)
17
- } catch (err) {
18
- if (err instanceof Error) {
19
- throw new Error(`useLayer(): ${err.message}`)
20
- } else {
21
- throw new Error(`useLayer(): ${err}`)
22
- }
23
- }
24
- }