@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,111 +0,0 @@
1
- import {type Breakpoint, BREAKPOINTS} from '@sanity/ui-css'
2
- import {useMemo, useSyncExternalStore} from 'react'
3
-
4
- /**
5
- * @internal
6
- */
7
- export interface _MediaStore {
8
- subscribe: (onStoreChange: () => void) => () => void
9
- getSnapshot: () => Breakpoint
10
- }
11
-
12
- type MediaQueryMinWidth = `(min-width: ${number}px)`
13
- type MediaQueryMaxWidth = `(max-width: ${number}px)`
14
- type MediaQueryMinMaxWidth = `${MediaQueryMinWidth} and ${MediaQueryMaxWidth}`
15
- type MediaQuery = `screen and ${MediaQueryMinWidth | MediaQueryMaxWidth | MediaQueryMinMaxWidth}`
16
-
17
- function _getMediaQuery(index: number): MediaQuery {
18
- if (index === 0) {
19
- return `screen and (max-width: ${BREAKPOINTS[index + 1] - 1}px)`
20
- }
21
-
22
- if (index === BREAKPOINTS.length - 1) {
23
- return `screen and (min-width: ${BREAKPOINTS[index]}px)`
24
- }
25
-
26
- return `screen and (min-width: ${BREAKPOINTS[index]}px) and (max-width: ${BREAKPOINTS[index + 1] - 1}px)`
27
- }
28
-
29
- function _createMediaStore(): _MediaStore {
30
- const mediaLen = BREAKPOINTS.length
31
-
32
- let sizes:
33
- | {
34
- index: number
35
- mq: MediaQueryList
36
- }[]
37
- | undefined = undefined
38
-
39
- // The _createMediaStore function is called in both server and client environments.
40
- // However since subscribe and getSnapshot are only called on the client we lazy init what we need for them
41
- // so that we don't need to run checks for wether it's safe to call `window.matchMedia`
42
- const getSizes = () => {
43
- if (typeof window === 'undefined') {
44
- return sizes
45
- }
46
-
47
- if (!sizes) {
48
- sizes = []
49
-
50
- for (let index = mediaLen; index > -1; index -= 1) {
51
- sizes.push({
52
- index,
53
- mq: window.matchMedia(_getMediaQuery(index)),
54
- })
55
- }
56
- }
57
-
58
- return sizes
59
- }
60
-
61
- const getSnapshot = () => {
62
- for (const {index, mq} of getSizes() ?? []) {
63
- if (mq.matches) return index as Breakpoint
64
- }
65
-
66
- return 0
67
- }
68
-
69
- const subscribe = (onStoreChange: () => void) => {
70
- const disposeFns: (() => void)[] = []
71
-
72
- for (const {mq} of getSizes() ?? []) {
73
- const handleChange = () => {
74
- if (mq.matches) onStoreChange()
75
- }
76
-
77
- mq.addEventListener('change', handleChange)
78
-
79
- disposeFns.push(() => mq.removeEventListener('change', handleChange))
80
- }
81
-
82
- return () => {
83
- for (const disposeFn of disposeFns) {
84
- disposeFn()
85
- }
86
- }
87
- }
88
-
89
- return {getSnapshot, subscribe}
90
- }
91
-
92
- /**
93
- * Only called during server-side rendering, and hydration if using hydrateRoot
94
- * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query
95
- * and we assume `(prefers-color-scheme: light)` since it's the most common scheme
96
- *
97
- * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering
98
- */
99
- function getServerSnapshot(): Breakpoint {
100
- return 0
101
- }
102
-
103
- /**
104
- * This API might change. DO NOT USE IN PRODUCTION.
105
- * @beta
106
- */
107
- export function useMediaIndex(): Breakpoint {
108
- const store = useMemo(() => _createMediaStore(), [])
109
-
110
- return useSyncExternalStore(store.subscribe, store.getSnapshot, getServerSnapshot)
111
- }
@@ -1,15 +0,0 @@
1
- import {useSyncExternalStore} from 'react'
2
-
3
- /**
4
- * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.
5
- * @public
6
- */
7
- export function useMounted(): boolean {
8
- return useSyncExternalStore(
9
- subscribe,
10
- () => true,
11
- () => false,
12
- )
13
- }
14
-
15
- const subscribe = () => () => {}
@@ -1,56 +0,0 @@
1
- /**
2
- * As this hook is used for top-level theming it's likely to be called while server-rendering
3
- * and that's why it's worth it to have a testing suite for hydration
4
- */
5
- import {waitFor} from '@testing-library/dom'
6
- import {hydrateRoot} from 'react-dom/client'
7
- import {afterAll, beforeAll, describe, expect, it, vi} from 'vitest'
8
-
9
- import {usePrefersDark} from './usePrefersDark'
10
-
11
- function Log() {
12
- const dark = usePrefersDark()
13
-
14
- return <>dark: {JSON.stringify(dark)}</>
15
- }
16
-
17
- const originalMatchMedia = window.matchMedia
18
-
19
- describe('usePrefersDark SSR hydration', () => {
20
- beforeAll(() => {
21
- window.matchMedia = () =>
22
- ({
23
- addEventListener: vi.fn(),
24
- removeEventListener: vi.fn(),
25
- matches: true,
26
- }) as unknown as MediaQueryList
27
- })
28
-
29
- afterAll(() => {
30
- window.matchMedia = originalMatchMedia
31
- })
32
-
33
- it(`hydrates without any warnings`, async () => {
34
- const spy = vi.spyOn(console, 'error') // .mockImplementation()
35
-
36
- const node = document.createElement('div')
37
-
38
- document.body.appendChild(node)
39
-
40
- node.innerHTML = `dark: <!-- -->false`
41
-
42
- hydrateRoot(node, <Log />)
43
-
44
- // It's false initially
45
- await waitFor(() => expect(node.innerHTML).toBe('dark: <!-- -->false'))
46
-
47
- // After hydration it should switch to true
48
- await waitFor(() => expect(node.innerHTML).toBe('dark: <!-- -->true'))
49
-
50
- // eslint-disable-next-line no-console
51
- expect(console.error).not.toHaveBeenCalled()
52
-
53
- spy.mockReset()
54
- spy.mockRestore()
55
- })
56
- })
@@ -1,20 +0,0 @@
1
- /** @jest-environment node */
2
- import {renderToStaticMarkup, renderToString} from 'react-dom/server'
3
- import {describe, expect, it} from 'vitest'
4
-
5
- import {usePrefersDark} from './usePrefersDark'
6
-
7
- function Log() {
8
- const dark = usePrefersDark()
9
-
10
- return <>dark: {JSON.stringify(dark)}</>
11
- }
12
-
13
- describe('usePrefersDark', () => {
14
- it(`SSR to static markup returns false`, () => {
15
- expect(renderToStaticMarkup(<Log />)).toBe('dark: false')
16
- })
17
- it(`SSR to markup for hydration doesn't throw`, () => {
18
- expect(renderToString(<Log />)).toBe('dark: <!-- -->false')
19
- })
20
- })
@@ -1,16 +0,0 @@
1
- import {useMatchMedia} from './useMatchMedia'
2
-
3
- /**
4
- * Returns true if a dark color scheme is preferred, false if a light color scheme is preferred or the preference is not known.
5
- *
6
- * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-color-scheme: light)` since it's the most common scheme (https://dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)
7
- *
8
- * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.
9
- * Chrome supports reading the `prefers-color-scheme` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Color-Scheme
10
- * @example https://gist.github.com/stipsan/13c0cccf8dfc34f4b44bb1b984baf7df
11
- *
12
- * @public
13
- */
14
- export function usePrefersDark(getServerSnapshot = () => false): boolean {
15
- return useMatchMedia('(prefers-color-scheme: dark)', getServerSnapshot)
16
- }
@@ -1,56 +0,0 @@
1
- /**
2
- * As this hook is used for top-level theming it's likely to be called while server-rendering
3
- * and that's why it's worth it to have a testing suite for hydration
4
- */
5
- import {waitFor} from '@testing-library/dom'
6
- import {hydrateRoot} from 'react-dom/client'
7
- import {afterAll, beforeAll, describe, expect, it, vi} from 'vitest'
8
-
9
- import {usePrefersReducedMotion} from './usePrefersReducedMotion'
10
-
11
- function Log() {
12
- const reduceMotion = usePrefersReducedMotion()
13
-
14
- return <>prefers-motion: {JSON.stringify(reduceMotion)}</>
15
- }
16
-
17
- const originalMatchMedia = window.matchMedia
18
-
19
- describe('usePrefersReducedMotion SSR hydration', () => {
20
- beforeAll(() => {
21
- window.matchMedia = () =>
22
- ({
23
- addEventListener: vi.fn(),
24
- removeEventListener: vi.fn(),
25
- matches: true,
26
- }) as unknown as MediaQueryList
27
- })
28
-
29
- afterAll(() => {
30
- window.matchMedia = originalMatchMedia
31
- })
32
-
33
- it(`hydrates without any warnings`, async () => {
34
- const spy = vi.spyOn(console, 'error') // .mockImplementation()
35
-
36
- const node = document.createElement('div')
37
-
38
- document.body.appendChild(node)
39
-
40
- node.innerHTML = `prefers-motion: <!-- -->false`
41
-
42
- hydrateRoot(node, <Log />)
43
-
44
- // It's false initially
45
- await waitFor(() => expect(node.innerHTML).toBe('prefers-motion: <!-- -->false'))
46
-
47
- // After hydration it should switch to true
48
- await waitFor(() => expect(node.innerHTML).toBe('prefers-motion: <!-- -->true'))
49
-
50
- // eslint-disable-next-line no-console
51
- expect(console.error).not.toHaveBeenCalled()
52
-
53
- spy.mockReset()
54
- spy.mockRestore()
55
- })
56
- })
@@ -1,20 +0,0 @@
1
- /** @jest-environment node */
2
- import {renderToStaticMarkup, renderToString} from 'react-dom/server'
3
- import {describe, expect, it} from 'vitest'
4
-
5
- import {usePrefersReducedMotion} from './usePrefersReducedMotion'
6
-
7
- function Log() {
8
- const reduceMotion = usePrefersReducedMotion()
9
-
10
- return <>prefers-motion: {JSON.stringify(reduceMotion)}</>
11
- }
12
-
13
- describe('usePrefersReducedMotion', () => {
14
- it(`SSR to static markup returns false`, () => {
15
- expect(renderToStaticMarkup(<Log />)).toBe('prefers-motion: false')
16
- })
17
- it(`SSR to markup for hydration doesn't throw`, () => {
18
- expect(renderToString(<Log />)).toBe('prefers-motion: <!-- -->false')
19
- })
20
- })
@@ -1,16 +0,0 @@
1
- import {useMatchMedia} from './useMatchMedia'
2
-
3
- /**
4
- * Returns true if motion should be reduced
5
- *
6
- * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme (https://dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)
7
- *
8
- * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.
9
- * Chrome supports reading the `prefers-reduced-motion` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Reduced-Motion
10
- * @example https://gist.github.com/stipsan/0c0f839a27842249cada893e9fb7767b
11
- *
12
- * @public
13
- */
14
- export function usePrefersReducedMotion(getServerSnapshot = () => false): boolean {
15
- return useMatchMedia('(prefers-reduced-motion: reduce)', getServerSnapshot)
16
- }
@@ -1,14 +0,0 @@
1
- import type {ResponsiveProp, ResponsivePropArray} from '@sanity/ui-css'
2
-
3
- import {_getResponsiveProp} from '../core/helpers/props'
4
-
5
- /**
6
- * @internal
7
- * @deprecated use `_getResponsiveProp` directly instead
8
- */
9
- export function useResponsiveProp<T>(
10
- val: ResponsiveProp<T> | undefined,
11
- defaultVal?: ResponsivePropArray<T>,
12
- ): ResponsivePropArray<T> {
13
- return _getResponsiveProp(val, defaultVal)
14
- }
@@ -1,54 +0,0 @@
1
- import {useMemo, useRef} from 'react'
2
-
3
- /**
4
- * Shallow equality check for objects and arrays
5
- * @internal
6
- */
7
- function shallowEqual<T>(a: T, b: T): boolean {
8
- if (a === b) return true
9
- if (typeof a !== 'object' || typeof b !== 'object') return false
10
- if (a === null || b === null) return false
11
-
12
- if (Array.isArray(a) && Array.isArray(b)) {
13
- if (a.length !== b.length) return false
14
- return a.every((item, index) => item === b[index])
15
- }
16
-
17
- const keysA = Object.keys(a as object)
18
- const keysB = Object.keys(b as object)
19
-
20
- if (keysA.length !== keysB.length) return false
21
-
22
- return keysA.every(
23
- (key) =>
24
- Object.prototype.hasOwnProperty.call(b, key) &&
25
- (a as Record<string, unknown>)[key] === (b as Record<string, unknown>)[key],
26
- )
27
- }
28
-
29
- /**
30
- * Hook that returns a stable reference when the value is shallowly equal
31
- * Prevents unnecessary re-renders and re-registrations
32
- *
33
- * @deprecated prefer `useMemo` in the wrapping component instead
34
- *
35
- * @internal
36
- * @param value - The value to stabilize
37
- * @returns Stable reference to the value
38
- */
39
- export function useUnique<T>(value: T): T {
40
- const ref = useRef<T>(value)
41
-
42
- // Use useMemo to compute the stable value
43
- // Intentionally accessing and updating ref for memoization
44
- return useMemo(() => {
45
- // eslint-disable-next-line react-hooks/refs
46
- if (shallowEqual(ref.current, value)) {
47
- // eslint-disable-next-line react-hooks/refs
48
- return ref.current
49
- }
50
- // eslint-disable-next-line react-hooks/refs
51
- ref.current = value
52
- return value
53
- }, [value])
54
- }
@@ -1,47 +0,0 @@
1
- import type {Middleware} from '@floating-ui/react-dom'
2
-
3
- /**
4
- * Custom floating-ui middleware which calculates transform-origin X + Y offsets
5
- * based on the current floating rect's dimensions and shift offset.
6
- *
7
- * Scaling popovers with these transform-origin offsets will give the effect of
8
- * popvers slightly 'growing' from the origin/reference element.
9
- *
10
- * This middleware must be applied after both `@sanity/ui/size` and `shift` middlewares.
11
- */
12
- export const origin: Middleware = {
13
- name: '@sanity/ui/origin',
14
- fn({middlewareData, placement, rects}) {
15
- const [side] = placement.split('-')
16
-
17
- const floatingWidth = rects.floating.width
18
- const floatingHeight = rects.floating.height
19
-
20
- const shiftX = middlewareData.shift?.x || 0
21
- const shiftY = middlewareData.shift?.y || 0
22
-
23
- if (floatingWidth <= 0 || floatingHeight <= 0) {
24
- return {}
25
- }
26
-
27
- const isVerticalPlacement = ['bottom', 'top'].includes(side)
28
-
29
- const {originX, originY}: {originX: number; originY: number} = isVerticalPlacement
30
- ? {
31
- originX: clamp(0.5 - shiftX / floatingWidth, 0, 1),
32
- originY: side === 'bottom' ? 0 : 1,
33
- }
34
- : {
35
- originX: side === 'left' ? 1 : 0,
36
- originY: clamp(0.5 - shiftY / floatingHeight, 0, 1),
37
- }
38
-
39
- return {
40
- data: {originX, originY},
41
- }
42
- },
43
- }
44
-
45
- function clamp(num: number, min: number, max: number) {
46
- return Math.min(Math.max(num, min), max)
47
- }
@@ -1,114 +0,0 @@
1
- /**
2
- * @beta
3
- */
4
- export interface ElementRectValue {
5
- width: number
6
- height: number
7
- }
8
-
9
- /**
10
- * @beta
11
- */
12
- export interface ElementSize {
13
- content: ElementRectValue
14
- border: ElementRectValue
15
-
16
- /** @deprecated INTERNAL ONLY */
17
- _contentRect: DOMRectReadOnly
18
- }
19
-
20
- /**
21
- * @internal
22
- */
23
- export type _ElementSizeSubscriber = (elementRect: ElementSize) => void
24
-
25
- /**
26
- * @internal
27
- */
28
- export interface _ElementSizeObserver {
29
- subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void
30
- }
31
-
32
- /**
33
- * @internal
34
- */
35
- export interface _ElementSizeListener {
36
- subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void
37
- }
38
-
39
- // Initialize element size observer
40
- // NOTE: this should NOT have size effects
41
- /**
42
- * @internal
43
- */
44
- export const _elementSizeObserver: _ElementSizeObserver = _createElementSizeObserver()
45
-
46
- function _createElementRectValueListener(): _ElementSizeListener {
47
- return {
48
- subscribe(element, subscriber) {
49
- const resizeObserver = new ResizeObserver(([entry]) => {
50
- subscriber({
51
- _contentRect: entry.contentRect,
52
- border: {
53
- width: entry.borderBoxSize[0].inlineSize,
54
- height: entry.borderBoxSize[0].blockSize,
55
- },
56
- content: {
57
- width: entry.contentRect.width,
58
- height: entry.contentRect.height,
59
- },
60
- })
61
- })
62
-
63
- resizeObserver.observe(element)
64
-
65
- return () => {
66
- resizeObserver.unobserve(element)
67
- resizeObserver.disconnect()
68
- }
69
- },
70
- }
71
- }
72
-
73
- function _createElementSizeObserver(): _ElementSizeObserver {
74
- const disposeCache = new WeakMap<HTMLElement, () => void>()
75
- const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()
76
-
77
- return {
78
- subscribe(element, subscriber) {
79
- const subscribers = subscribersCache.get(element) || []
80
-
81
- let dispose = disposeCache.get(element)
82
-
83
- if (!subscribersCache.has(element)) {
84
- subscribersCache.set(element, subscribers)
85
-
86
- const listener = _createElementRectValueListener()
87
-
88
- // listen
89
- dispose = listener.subscribe(element, (elementRect) => {
90
- for (const sub of subscribers) {
91
- sub(elementRect)
92
- }
93
- })
94
- }
95
-
96
- subscribers.push(subscriber)
97
-
98
- return () => {
99
- // dispose
100
-
101
- const idx = subscribers.indexOf(subscriber)
102
-
103
- if (idx > -1) {
104
- subscribers.splice(idx, 1)
105
- }
106
-
107
- if (subscribers.length === 0) {
108
- // unlisten
109
- if (dispose) dispose()
110
- }
111
- }
112
- },
113
- }
114
- }
@@ -1,4 +0,0 @@
1
- import {lazy} from 'react'
2
-
3
- /** @internal */
4
- export const LazySyntax = lazy(() => import('./Syntax'))
@@ -1,26 +0,0 @@
1
- import {_syntax} from '@sanity/ui-css'
2
- import {hasLanguage, Refractor} from 'react-refractor'
3
-
4
- export interface SyntaxProps {
5
- language?: string
6
- value: React.ReactNode
7
- }
8
-
9
- export default function Syntax(props: SyntaxProps): React.JSX.Element {
10
- const {language: languageProp, value} = props
11
- const language = typeof languageProp === 'string' ? languageProp : undefined
12
- const registered = language ? hasLanguage(language) : false
13
-
14
- if (!language || !registered) {
15
- return <code>{value}</code>
16
- }
17
-
18
- return (
19
- <Refractor
20
- className={_syntax()}
21
- inline
22
- language={language}
23
- value={typeof value === 'string' ? value : ''}
24
- />
25
- )
26
- }