@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,95 +0,0 @@
1
- import {
2
- BoundaryElementProvider,
3
- Box,
4
- Card,
5
- CARD_TONES,
6
- type CardTone,
7
- Flex,
8
- Popover,
9
- type PopoverProps,
10
- type PopoverUpdateCallback,
11
- Stack,
12
- Text,
13
- } from '@sanity/ui'
14
- import {useSelect} from '@sanity/ui-workshop'
15
- import {useCallback, useEffect, useRef, useState} from 'react'
16
-
17
- const SIDE_PANEL_WIDTH = {
18
- sm: 300,
19
- md: 400,
20
- lg: 500,
21
- xl: 600,
22
- }
23
-
24
- export default function SidePanelStory(): React.JSX.Element {
25
- const sidePanelWidth = useSelect('Side panel width', SIDE_PANEL_WIDTH, SIDE_PANEL_WIDTH.md)
26
- const [sidePanel, setSidePanel] = useState<HTMLDivElement | null>(null)
27
- const updateRef = useRef<PopoverUpdateCallback>(undefined)
28
- const tone = useSelect('Tone', CARD_TONES) ?? 'inherit'
29
-
30
- useEffect(() => updateRef.current?.(), [sidePanelWidth])
31
-
32
- return (
33
- <Flex height="fill">
34
- <Card flex={1}>
35
- <Box padding={4}>
36
- <Text>
37
- This story shows that popovers respect their boundary when used in a side panel.
38
- </Text>
39
- </Box>
40
- </Card>
41
- <BoundaryElementProvider element={sidePanel}>
42
- <Card ref={setSidePanel} borderLeft flex="none" style={{width: sidePanelWidth}} width={0}>
43
- <Stack gap={5} padding={4}>
44
- <Text muted size={1}>
45
- Click the <code>reference</code> text below to toggle the popover.
46
- </Text>
47
-
48
- <Card border padding={3}>
49
- <Text size={1}>
50
- Some editor <InlineObject tone={tone} updateRef={updateRef} />
51
- </Text>
52
- </Card>
53
- </Stack>
54
- </Card>
55
- </BoundaryElementProvider>
56
- </Flex>
57
- )
58
- }
59
-
60
- function InlineObject(props: {tone: CardTone | 'inherit'; updateRef?: PopoverProps['updateRef']}) {
61
- const {tone, updateRef} = props
62
- const [open, setOpen] = useState(false)
63
-
64
- const handleClick = useCallback(() => {
65
- setOpen((prev) => !prev)
66
- }, [])
67
-
68
- return (
69
- <Popover
70
- constrainSize
71
- content={
72
- <Box padding={3}>
73
- <Text size={1}>
74
- Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum
75
- has been the industry's standard dummy text ever since the 1500s, when an unknown
76
- printer took a galley of type and scrambled it to make a type specimen book. It has
77
- survived not only five centuries, but also the leap into electronic typesetting,
78
- remaining essentially unchanged. It was popularised in the 1960s with the release of
79
- Letraset sheets containing Lorem Ipsum passages, and more recently with desktop
80
- publishing software like Aldus PageMaker including versions of Lorem Ipsum.
81
- </Text>
82
- </Box>
83
- }
84
- open={open}
85
- overflow="auto"
86
- portal
87
- tone={tone}
88
- updateRef={updateRef}
89
- width={0}
90
- >
91
- {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions */}
92
- <code onClick={handleClick}>reference</code>
93
- </Popover>
94
- )
95
- }
@@ -1,97 +0,0 @@
1
- import {
2
- BoundaryElementProvider,
3
- Button,
4
- Card,
5
- Popover,
6
- type PopoverUpdateCallback,
7
- PortalProvider,
8
- Text,
9
- } from '@sanity/ui'
10
- import {CONTAINER, RADIUS} from '@sanity/ui'
11
- import {useBoolean, useSelect, useText} from '@sanity/ui-workshop'
12
- import {useRef, useState} from 'react'
13
-
14
- import {WORKSHOP_PLACEMENT_OPTIONS} from '$workshop'
15
-
16
- export default function TestStory(): React.JSX.Element {
17
- const [portalElement, setPortalElement] = useState<HTMLDivElement | null>(null)
18
- const [boundaryElement, setBoundaryElement] = useState<HTMLDivElement | null>(null)
19
-
20
- const mount = useBoolean('Mount', true)
21
- const arrow = useBoolean('Arrow', true)
22
- const constrainSize = useBoolean('Constrain size', true)
23
- const matchReferenceWidth = useBoolean('Match reference width', false)
24
- const open = useBoolean('Open', true)
25
- const placement = useSelect('Placement', WORKSHOP_PLACEMENT_OPTIONS, 'bottom')
26
- const portal = useBoolean('Render in portal', true)
27
- const preventOverflow = useBoolean('Prevent overflow', true)
28
- const radius = useSelect('Radius', RADIUS, 2)
29
- const referenceWide = useBoolean('Reference wide?', false)
30
- const width = useSelect('Width', CONTAINER, 'auto')
31
-
32
- const text = useText('Text', 'Test')
33
-
34
- const updateRef = useRef<PopoverUpdateCallback>(undefined)
35
-
36
- const button = (
37
- <Button selected style={{width: referenceWide ? 300 : undefined}} text="reference" />
38
- )
39
-
40
- return (
41
- <Card
42
- ref={setBoundaryElement}
43
- shadow={2}
44
- style={{
45
- position: 'absolute',
46
- top: 50,
47
- right: 50,
48
- bottom: 50,
49
- left: 50,
50
- }}
51
- >
52
- <div
53
- ref={setPortalElement}
54
- data-portal=""
55
- style={{
56
- position: 'absolute',
57
- top: 0,
58
- right: 0,
59
- bottom: 0,
60
- left: 0,
61
- overflow: 'hidden',
62
- pointerEvents: 'none',
63
- }}
64
- />
65
-
66
- <div style={{width: '100%', height: '100%', overflow: 'auto'}}>
67
- <div style={{padding: '150vh'}}>
68
- <PortalProvider element={portalElement}>
69
- <BoundaryElementProvider element={boundaryElement}>
70
- {!mount && button}
71
- {mount && (
72
- <Popover
73
- arrow={arrow}
74
- constrainSize={constrainSize}
75
- content={<Text size={1}>{text}</Text>}
76
- fallbackPlacements={['left', 'bottom', 'right', 'top']}
77
- matchReferenceWidth={matchReferenceWidth}
78
- open={open}
79
- overflow="hidden"
80
- padding={3}
81
- placement={placement}
82
- portal={portal}
83
- preventOverflow={preventOverflow}
84
- radius={radius}
85
- updateRef={updateRef}
86
- width={width}
87
- >
88
- {button}
89
- </Popover>
90
- )}
91
- </BoundaryElementProvider>
92
- </PortalProvider>
93
- </div>
94
- </div>
95
- </Card>
96
- )
97
- }
@@ -1,56 +0,0 @@
1
- import type {WorkshopScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- const scope: WorkshopScope = {
5
- name: 'primitives/popover',
6
- title: 'Popover',
7
- stories: [
8
- {
9
- name: 'test',
10
- title: 'Test',
11
- component: lazy(() => import('./TestStory')),
12
- },
13
- {
14
- name: 'plain',
15
- title: 'Plain',
16
- component: lazy(() => import('./PlainStory')),
17
- },
18
- {
19
- name: 'recursive',
20
- title: 'Recursive',
21
- component: lazy(() => import('./RecursiveStory')),
22
- },
23
- {
24
- name: 'match-ref-width',
25
- title: 'Match reference width',
26
- component: lazy(() => import('./MatchReferenceWidthStory')),
27
- },
28
- {
29
- name: 'margins',
30
- title: 'Margins',
31
- component: lazy(() => import('./MarginsStory')),
32
- },
33
- {
34
- name: 'aligned',
35
- title: 'Aligned',
36
- component: lazy(() => import('./AlignedStory')),
37
- },
38
- {
39
- name: 'openOnMountStory',
40
- title: 'Open on mount',
41
- component: lazy(() => import('./OpenOnMountStory')),
42
- },
43
- {
44
- name: 'side-panel',
45
- title: 'Side panel',
46
- component: lazy(() => import('./SidePanelStory')),
47
- },
48
- {
49
- name: 'portal-inheritance',
50
- title: 'Portal inheritance',
51
- component: lazy(() => import('./portal-inheritance')),
52
- },
53
- ],
54
- }
55
-
56
- export default scope
@@ -1,15 +0,0 @@
1
- import {Box, Card, Popover, Text, usePrefersDark} from '@sanity/ui'
2
-
3
- export default function PortalInheritanceStory() {
4
- const dark = usePrefersDark()
5
-
6
- return (
7
- <Card padding={5} scheme={dark ? 'light' : 'dark'}>
8
- <Box display="flex">
9
- <Popover content={<Text>Within portal</Text>} open padding={4} portal>
10
- <Text>Flipped scheme</Text>
11
- </Popover>
12
- </Box>
13
- </Card>
14
- )
15
- }
@@ -1,20 +0,0 @@
1
- import type {Placement} from '../../core/types'
2
- import type {PopoverMargins} from './types'
3
-
4
- export const DEFAULT_POPOVER_DISTANCE = 4
5
- export const DEFAULT_POPOVER_PADDING = 4
6
- export const DEFAULT_POPOVER_MARGINS: PopoverMargins = [0, 0, 0, 0]
7
- export const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {
8
- 'top': ['bottom', 'left', 'right'],
9
- 'top-start': ['bottom-start', 'left-start', 'right-start'],
10
- 'top-end': ['bottom-end', 'left-end', 'right-end'],
11
- 'bottom': ['top', 'left', 'right'],
12
- 'bottom-start': ['top-start', 'left-start', 'right-start'],
13
- 'bottom-end': ['top-end', 'left-end', 'right-end'],
14
- 'left': ['right', 'top', 'bottom'],
15
- 'left-start': ['right-start', 'top-start', 'bottom-start'],
16
- 'left-end': ['right-end', 'top-end', 'bottom-end'],
17
- 'right': ['left', 'top', 'bottom'],
18
- 'right-start': ['left-start', 'top-start', 'bottom-start'],
19
- 'right-end': ['left-end', 'top-end', 'bottom-end'],
20
- }
@@ -1,75 +0,0 @@
1
- import {detectOverflow, type Middleware} from '@floating-ui/react-dom'
2
-
3
- export function size(options: {
4
- boundaryElement?: HTMLElement | null
5
- constrainSize: boolean
6
- matchReferenceWidth?: boolean
7
- padding?: number
8
- referenceWidthRef: React.RefObject<number | undefined>
9
- }): Middleware {
10
- const {padding = 0, constrainSize, matchReferenceWidth, referenceWidthRef} = options
11
-
12
- return {
13
- name: '@sanity/ui/size',
14
- async fn(args) {
15
- const {elements, placement, platform, rects} = args
16
- const {floating, reference} = rects
17
-
18
- const overflow = await detectOverflow(args, {
19
- altBoundary: true,
20
- boundary: options.boundaryElement || undefined,
21
- elementContext: 'floating',
22
- padding,
23
- rootBoundary: 'viewport',
24
- })
25
-
26
- let maxWidth = Infinity
27
- let maxHeight = Infinity
28
-
29
- const floatingW = floating.width
30
- const floatingH = floating.height
31
-
32
- if (placement.includes('top')) {
33
- maxWidth = floatingW - (overflow.left + overflow.right)
34
- maxHeight = floatingH - overflow.top
35
- }
36
-
37
- if (placement.includes('right')) {
38
- maxWidth = floatingW - overflow.right
39
- maxHeight = floatingH - (overflow.top + overflow.bottom)
40
- }
41
-
42
- if (placement.includes('bottom')) {
43
- maxWidth = floatingW - (overflow.left + overflow.right)
44
- maxHeight = floatingH - overflow.bottom
45
- }
46
-
47
- if (placement.includes('left')) {
48
- maxWidth = floatingW - overflow.left
49
- maxHeight = floatingH - (overflow.top + overflow.bottom)
50
- }
51
-
52
- referenceWidthRef.current = reference.width
53
-
54
- // IMPORTANT – APPLY ELEMENT STYLES HERE
55
- if (matchReferenceWidth) {
56
- elements.floating.style.width = `${reference.width}px`
57
- }
58
- if (constrainSize) {
59
- elements.floating.style.maxWidth = `${maxWidth}px`
60
- elements.floating.style.maxHeight = `${maxHeight}px`
61
- }
62
-
63
- const nextDimensions = await platform.getDimensions(elements.floating)
64
-
65
- const targetH = nextDimensions.height
66
- const targetW = nextDimensions.width
67
-
68
- if (floatingW !== targetW || floatingH !== targetH) {
69
- return {reset: {rects: true}}
70
- }
71
-
72
- return {}
73
- },
74
- }
75
- }
@@ -1,12 +0,0 @@
1
- import type {ContainerWidth} from '@sanity/ui-tokens'
2
-
3
- /**
4
- * @beta
5
- */
6
- export type PopoverMargins = [number, number, number, number]
7
-
8
- /** @beta */
9
- export type PopoverUpdateCallback = () => void
10
-
11
- /** @public */
12
- export type PopoverWidth = Exclude<ContainerWidth, 'auto'>
@@ -1,126 +0,0 @@
1
- import {
2
- autoPlacement,
3
- flip,
4
- hide,
5
- type Middleware,
6
- offset,
7
- type RootBoundary,
8
- shift as shiftMiddleware,
9
- } from '@floating-ui/react-dom'
10
- import {useMemo} from 'react'
11
-
12
- import type {Placement} from '../../core/types'
13
- import {origin} from '../../middleware/origin'
14
- import {DEFAULT_POPOVER_PADDING} from './constants'
15
- import {size} from './floating-ui/size'
16
-
17
- export function useMiddleware({
18
- animate,
19
- constrainSize,
20
- distance,
21
- shift,
22
- fallbackPlacements,
23
- floatingBoundary,
24
- matchReferenceWidth,
25
- placement,
26
- placementStrategy,
27
- preventOverflow,
28
- referenceBoundary,
29
- referenceWidthRef,
30
- rootBoundary,
31
- }: {
32
- animate: boolean
33
- constrainSize: boolean
34
- distance: number
35
- shift: number
36
- fallbackPlacements: Placement[]
37
- floatingBoundary: HTMLElement | null
38
- matchReferenceWidth: boolean | undefined
39
- placement: Placement
40
- placementStrategy: 'flip' | 'autoPlacement'
41
- preventOverflow: boolean
42
- referenceBoundary: HTMLElement | null
43
- referenceWidthRef: React.RefObject<number | undefined>
44
- rootBoundary: RootBoundary
45
- }) {
46
- return useMemo(() => {
47
- const ret: Middleware[] = []
48
-
49
- // Flip the floating element when leaving the boundary box
50
- if (constrainSize || preventOverflow) {
51
- if (placementStrategy === 'autoPlacement') {
52
- ret.push(
53
- autoPlacement({
54
- allowedPlacements: [placement].concat(fallbackPlacements),
55
- }),
56
- )
57
- } else {
58
- ret.push(
59
- flip({
60
- boundary: floatingBoundary || undefined,
61
- fallbackPlacements,
62
- padding: DEFAULT_POPOVER_PADDING,
63
- rootBoundary,
64
- }),
65
- )
66
- }
67
- }
68
-
69
- // Define distance between reference and floating element
70
- ret.push(offset({mainAxis: distance, crossAxis: shift}))
71
-
72
- // Track sizes
73
- if (constrainSize || matchReferenceWidth) {
74
- ret.push(
75
- size({
76
- boundaryElement: floatingBoundary || undefined,
77
- constrainSize,
78
- matchReferenceWidth,
79
- padding: DEFAULT_POPOVER_PADDING,
80
- referenceWidthRef,
81
- }),
82
- )
83
- }
84
-
85
- // Shift the popover so its sits within the boundary element
86
- if (preventOverflow) {
87
- ret.push(
88
- shiftMiddleware({
89
- boundary: floatingBoundary || undefined,
90
- rootBoundary,
91
- padding: DEFAULT_POPOVER_PADDING,
92
- }),
93
- )
94
- }
95
-
96
- // Determine the origin to scale from.
97
- // Must be placed after `@sanity/ui/size` and `shift` middleware.
98
- if (animate) {
99
- ret.push(origin)
100
- }
101
-
102
- ret.push(
103
- hide({
104
- boundary: referenceBoundary || undefined,
105
- padding: DEFAULT_POPOVER_PADDING,
106
- strategy: 'referenceHidden',
107
- }),
108
- )
109
-
110
- return ret
111
- }, [
112
- animate,
113
- constrainSize,
114
- distance,
115
- fallbackPlacements,
116
- floatingBoundary,
117
- matchReferenceWidth,
118
- placement,
119
- placementStrategy,
120
- preventOverflow,
121
- referenceBoundary,
122
- referenceWidthRef,
123
- rootBoundary,
124
- shift,
125
- ])
126
- }
@@ -1,64 +0,0 @@
1
- import {radio, radio_input, radio_presentation} from '@sanity/ui-css'
2
- import {useImperativeHandle, useRef} from 'react'
3
-
4
- import type {ComponentType, Props} from '../../core/types'
5
- import {useCustomValidity} from '../../hooks/useCustomValidity'
6
-
7
- /** @public */
8
- export const DEFAULT_RADIO_ELEMENT = 'input'
9
-
10
- /** @public */
11
- export type RadioOwnProps = {
12
- customValidity?: string
13
- }
14
-
15
- /** @public */
16
- export type RadioElementType = 'input' | ComponentType
17
-
18
- /** @public */
19
- export type RadioProps<E extends RadioElementType = RadioElementType> = Props<RadioOwnProps, E>
20
-
21
- /**
22
- * The `Radio` component allows the user to select one option from a set.
23
- *
24
- * @public
25
- */
26
- export function Radio<E extends RadioElementType = typeof DEFAULT_RADIO_ELEMENT>(
27
- props: RadioProps<E>,
28
- ): React.JSX.Element {
29
- const {
30
- as: Element = DEFAULT_RADIO_ELEMENT,
31
- className,
32
- disabled,
33
- style,
34
- customValidity,
35
- readOnly,
36
- ref: forwardedRef,
37
- ...rest
38
- } = props as RadioProps<typeof DEFAULT_RADIO_ELEMENT>
39
-
40
- const ref = useRef<HTMLInputElement | null>(null)
41
-
42
- useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(
43
- forwardedRef,
44
- () => ref.current,
45
- )
46
-
47
- useCustomValidity(ref, customValidity)
48
-
49
- return (
50
- <span className={radio({className})} data-ui="Radio" style={style}>
51
- <Element
52
- {...rest}
53
- ref={ref}
54
- className={radio_input()}
55
- data-invalid={customValidity ? '' : undefined}
56
- data-read-only={!disabled && readOnly ? '' : undefined}
57
- disabled={disabled || readOnly}
58
- readOnly={readOnly}
59
- type="radio"
60
- />
61
- <span className={radio_presentation()} />
62
- </span>
63
- )
64
- }
@@ -1,63 +0,0 @@
1
- import {Box, Container, Flex, Radio, Stack, Text} from '@sanity/ui'
2
- import {useBoolean} from '@sanity/ui-workshop'
3
- import {useCallback, useState} from 'react'
4
-
5
- export default function ExampleStory(): React.JSX.Element {
6
- const [value, setValue] = useState('first-option')
7
- const disabled = useBoolean('Disabled', false)
8
- const readOnly = useBoolean('Read only', false)
9
-
10
- const handleChange = useCallback((event: React.ChangeEvent<HTMLInputElement>) => {
11
- setValue(event.target.value)
12
- }, [])
13
-
14
- return (
15
- <Flex align="center" height="fill" justify="center" padding={[3, 4, 5]} sizing="border">
16
- <Container width={0}>
17
- <Stack gap={3}>
18
- <Flex align="center" as="label">
19
- <Radio
20
- checked={value === 'first-option'}
21
- disabled={disabled}
22
- name="name"
23
- readOnly={readOnly}
24
- value="first-option"
25
- onChange={handleChange}
26
- />
27
- <Box marginLeft={2}>
28
- <Text>First option</Text>
29
- </Box>
30
- </Flex>
31
-
32
- <Flex align="center" as="label">
33
- <Radio
34
- checked={value === 'second-option'}
35
- disabled={disabled}
36
- name="name"
37
- readOnly={readOnly}
38
- value="second-option"
39
- onChange={handleChange}
40
- />
41
- <Box marginLeft={2}>
42
- <Text>Second option</Text>
43
- </Box>
44
- </Flex>
45
-
46
- <Flex align="center" as="label">
47
- <Radio
48
- checked={value === 'third-option'}
49
- disabled={disabled}
50
- name="name"
51
- readOnly={readOnly}
52
- value="third-option"
53
- onChange={handleChange}
54
- />
55
- <Box marginLeft={2}>
56
- <Text>Third option</Text>
57
- </Box>
58
- </Flex>
59
- </Stack>
60
- </Container>
61
- </Flex>
62
- )
63
- }
@@ -1,28 +0,0 @@
1
- import {Flex, Radio} from '@sanity/ui'
2
- import {useAction, useBoolean} from '@sanity/ui-workshop'
3
-
4
- export default function PlainStory(): React.JSX.Element {
5
- const checked = useBoolean('Checked', false)
6
- const disabled = useBoolean('Disabled', false)
7
- const id = 'radioStory'
8
- const name = 'radioStory'
9
- const onBlur = useAction('onBlur')
10
- const onChange = useAction('onChange')
11
- const onFocus = useAction('onFocus')
12
- const readOnly = useBoolean('Read only', false)
13
-
14
- return (
15
- <Flex align="center" height="fill" justify="center" padding={[3, 4, 5]} sizing="border">
16
- <Radio
17
- checked={checked}
18
- disabled={disabled}
19
- id={id}
20
- name={name}
21
- readOnly={readOnly}
22
- onBlur={onBlur}
23
- onChange={onChange}
24
- onFocus={onFocus}
25
- />
26
- </Flex>
27
- )
28
- }
@@ -1,13 +0,0 @@
1
- import type {WorkshopScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- const scope: WorkshopScope = {
5
- name: 'primitives/radio',
6
- title: 'Radio',
7
- stories: [
8
- {name: 'plain', title: 'Plain', component: lazy(() => import('./Plain'))},
9
- {name: 'example', title: 'Example', component: lazy(() => import('./Example'))},
10
- ],
11
- }
12
-
13
- export default scope