@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,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