@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,145 +0,0 @@
1
- import {
2
- avatar,
3
- avatar_arrow,
4
- avatar_arrowSvg,
5
- avatar_image,
6
- avatar_imageOutline,
7
- avatar_initials,
8
- type ResponsiveProp,
9
- } from '@sanity/ui-css'
10
- import type {AvatarColor, AvatarSize, FontLabelSize} from '@sanity/ui-tokens'
11
- import {startTransition, useEffect, useState} from 'react'
12
-
13
- import {_raf} from '../../core/helpers/animation'
14
- import {_getResponsiveProp} from '../../core/helpers/props'
15
- import type {ComponentType, Props} from '../../core/types'
16
- import {Box} from '../box/Box'
17
- import {Label} from '../label/Label'
18
- import type {AvatarPosition} from './types'
19
-
20
- /** @public */
21
- export const DEFAULT_AVATAR_ELEMENT = 'span'
22
-
23
- /** @public */
24
- export interface AvatarOwnProps {
25
- /** @beta */
26
- __unstable_hideInnerStroke?: boolean
27
- animateArrowFrom?: AvatarPosition
28
- arrowPosition?: AvatarPosition
29
- color?: AvatarColor
30
- initials?: string
31
- onImageLoadError?: (event: Error) => void
32
- size?: ResponsiveProp<AvatarSize>
33
- src?: string
34
- title?: string
35
- }
36
-
37
- /** @public */
38
- export type AvatarElementType = 'a' | 'button' | 'div' | 'span' | ComponentType
39
-
40
- /** @public */
41
- export type AvatarProps<E extends AvatarElementType = AvatarElementType> = Props<AvatarOwnProps, E>
42
-
43
- /**
44
- * Avatars are used to represent people and other agents (e.g. bots).
45
- *
46
- * @public
47
- */
48
- export function Avatar<E extends AvatarElementType = typeof DEFAULT_AVATAR_ELEMENT>(
49
- props: AvatarProps<E>,
50
- ): React.JSX.Element {
51
- const {
52
- __unstable_hideInnerStroke: hideInnerStroke,
53
- as: Element = DEFAULT_AVATAR_ELEMENT,
54
- className,
55
- color = 'magenta',
56
- src,
57
- title,
58
- initials: initialsProp,
59
- onImageLoadError,
60
- arrowPosition: arrowPositionProp,
61
- animateArrowFrom,
62
- size: sizeProp = 1,
63
- ...rest
64
- } = props as AvatarProps<typeof DEFAULT_AVATAR_ELEMENT>
65
-
66
- const initials = typeof initialsProp === 'string' ? initialsProp.slice(0, 2) : undefined
67
- const size = _getResponsiveProp(sizeProp)
68
-
69
- const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(
70
- animateArrowFrom || arrowPositionProp || 'inside',
71
- )
72
-
73
- const [imageError, setImageError] = useState<boolean>(false)
74
-
75
- const handleImageError = () => {
76
- setImageError(true)
77
-
78
- if (onImageLoadError) {
79
- onImageLoadError(new Error('Avatar: the image failed to load'))
80
- }
81
- }
82
-
83
- const initialsSize = size.map((s): FontLabelSize => {
84
- if (s === 1) return 1
85
- if (s === 2) return 3
86
- if (s === 3) return 5
87
-
88
- return 0
89
- }) as ResponsiveProp<FontLabelSize>
90
-
91
- useEffect(() => {
92
- if (arrowPosition === arrowPositionProp) return undefined
93
-
94
- // Start animation in the next frame
95
- return _raf(() => setArrowPosition(arrowPositionProp))
96
- }, [arrowPosition, arrowPositionProp])
97
-
98
- useEffect(() => {
99
- if (src) {
100
- startTransition(() => setImageError(false))
101
- }
102
- }, [src])
103
-
104
- return (
105
- <Element
106
- data-hide-inner-stroke={hideInnerStroke ? '' : undefined}
107
- data-ui="Avatar"
108
- {...rest}
109
- aria-label={title}
110
- className={avatar({className, color, size: sizeProp})}
111
- data-arrow-position={arrowPosition}
112
- data-image-error={imageError ? '' : undefined}
113
- title={title}
114
- >
115
- <span className={avatar_arrow()}>
116
- <svg className={avatar_arrowSvg()} fill="none" height="7" viewBox="0 0 11 7" width="11">
117
- <path d="M6.67948 1.50115L11 7L0 7L4.32052 1.50115C4.92109 0.736796 6.07891 0.736795 6.67948 1.50115Z" />
118
- </svg>
119
- </span>
120
-
121
- <Box
122
- alignItems="center"
123
- as="span"
124
- className={avatar_initials()}
125
- display="flex"
126
- inset={0}
127
- justifyContent="center"
128
- overflow="hidden"
129
- position="absolute"
130
- radius="full"
131
- >
132
- <Label align="center" as="span" size={initialsSize} weight="semibold">
133
- {initials}
134
- </Label>
135
- </Box>
136
-
137
- {src && (
138
- <Box className={avatar_image()} inset={0} position="absolute">
139
- <img alt={initials} src={src} onError={handleImageError} />
140
- <span className={avatar_imageOutline()} />
141
- </Box>
142
- )}
143
- </Element>
144
- )
145
- }
@@ -1,69 +0,0 @@
1
- import {avatar_counter, type ResponsiveProp} from '@sanity/ui-css'
2
- import type {AvatarSize, FontLabelSize} from '@sanity/ui-tokens'
3
- import {useMemo} from 'react'
4
-
5
- import {_getResponsiveProp} from '../../core/helpers/props'
6
- import type {ComponentType, Props} from '../../core/types'
7
- import {Box} from '../box/Box'
8
- import {Label} from '../label/Label'
9
-
10
- /** @public */
11
- export const DEFAULT_AVATAR_COUNTER_ELEMENT = 'span'
12
-
13
- /** @public */
14
- export interface AvatarCounterOwnProps {
15
- count: number
16
- size?: ResponsiveProp<AvatarSize>
17
- }
18
-
19
- /** @public */
20
- export type AvatarCounterElementType = 'button' | 'div' | 'span' | ComponentType
21
-
22
- /** @public */
23
- export type AvatarCounterProps<E extends AvatarCounterElementType = AvatarCounterElementType> =
24
- Props<AvatarCounterOwnProps, E>
25
-
26
- /** @public */
27
- export function AvatarCounter<
28
- E extends AvatarCounterElementType = typeof DEFAULT_AVATAR_COUNTER_ELEMENT,
29
- >(props: AvatarCounterProps<E>): React.JSX.Element {
30
- const {
31
- as = DEFAULT_AVATAR_COUNTER_ELEMENT,
32
- className,
33
- count,
34
- size: sizeProp = 1,
35
- ...rest
36
- } = props as AvatarCounterProps<typeof DEFAULT_AVATAR_COUNTER_ELEMENT>
37
- const size = _getResponsiveProp(sizeProp)
38
-
39
- const labelSize = useMemo(
40
- () =>
41
- size.map((s): FontLabelSize => {
42
- if (s === 1) return 1
43
- if (s === 2) return 3
44
- if (s === 3) return 5
45
-
46
- return 0
47
- }) as ResponsiveProp<FontLabelSize>,
48
- [size],
49
- )
50
-
51
- return (
52
- <Box
53
- data-ui="AvatarCounter"
54
- {...rest}
55
- alignItems="center"
56
- as={as}
57
- className={avatar_counter({className, size})}
58
- display="flex"
59
- flex="none"
60
- justifyContent="center"
61
- paddingX={2}
62
- sizing="border"
63
- >
64
- <Label align="center" as="span" size={labelSize} weight="medium">
65
- {count}
66
- </Label>
67
- </Box>
68
- )
69
- }
@@ -1,77 +0,0 @@
1
- import {avatar_stack, type ResponsiveProp} from '@sanity/ui-css'
2
- import type {AvatarSize} from '@sanity/ui-tokens'
3
- import {Children, cloneElement, Fragment, isValidElement, type ReactElement} from 'react'
4
-
5
- import type {ComponentType, Props} from '../../core/types'
6
- import {Box, type BoxOwnProps} from '../box/Box'
7
- import type {AvatarProps} from './Avatar'
8
- import {AvatarCounter} from './AvatarCounter'
9
-
10
- /** @public */
11
- export const DEFAULT_AVATAR_STACK_ELEMENT = 'span'
12
-
13
- /** @public */
14
- export type AvatarStackChild = ReactElement<AvatarProps<'div'>> | null | undefined | false
15
-
16
- /** @public */
17
- export type AvatarStackOwnProps = Omit<
18
- BoxOwnProps,
19
- 'align' | 'alignItems' | 'display' | 'justify' | 'justifyContent'
20
- > & {
21
- children: AvatarStackChild | AvatarStackChild[]
22
- maxLength?: number
23
- size?: ResponsiveProp<AvatarSize>
24
- }
25
-
26
- /** @public */
27
- export type AvatarStackElementType = 'div' | 'span' | ComponentType
28
-
29
- /** @public */
30
- export type AvatarStackProps<E extends AvatarStackElementType = AvatarStackElementType> = Props<
31
- AvatarStackOwnProps,
32
- E
33
- >
34
-
35
- /** @public */
36
- export function AvatarStack<E extends AvatarStackElementType = typeof DEFAULT_AVATAR_STACK_ELEMENT>(
37
- props: AvatarStackProps<E>,
38
- ): React.JSX.Element {
39
- const {
40
- as = DEFAULT_AVATAR_STACK_ELEMENT,
41
- children: childrenProp,
42
- className,
43
- maxLength: maxLengthProp = 4,
44
- size = 1,
45
- ...rest
46
- } = props as AvatarStackProps<typeof DEFAULT_AVATAR_STACK_ELEMENT>
47
-
48
- const children = Children.toArray(childrenProp).filter(isValidElement) as ReactElement<
49
- AvatarProps<'span'>
50
- >[]
51
- const maxLength = Math.max(maxLengthProp, 0)
52
-
53
- const len = children.length
54
- const visibleCount = maxLength - 1
55
- const extraCount = len - visibleCount
56
- const visibleChildren = extraCount > 1 ? children.slice(extraCount, len) : children
57
-
58
- return (
59
- <Box
60
- data-ui="AvatarStack"
61
- {...rest}
62
- alignItems="center"
63
- as={as}
64
- className={avatar_stack({className, size})}
65
- display="flex"
66
- justifyContent="flex-start"
67
- >
68
- {len === 0 && <AvatarCounter count={len} size={size} />}
69
-
70
- {len !== 0 && extraCount > 1 && <AvatarCounter count={extraCount} size={size} />}
71
-
72
- {visibleChildren.map((child, childIndex) => (
73
- <Fragment key={String(childIndex)}>{cloneElement(child, {size})}</Fragment>
74
- ))}
75
- </Box>
76
- )
77
- }
@@ -1,12 +0,0 @@
1
- import {Avatar, AVATAR_SIZE, Flex} from '@sanity/ui'
2
- import {useSelect} from '@sanity/ui-workshop'
3
-
4
- export default function AsButtonStory(): React.JSX.Element {
5
- const size = useSelect('Size', AVATAR_SIZE, 2)
6
-
7
- return (
8
- <Flex align="center" height="fill" justify="center">
9
- <Avatar as="button" color="magenta" initials="ab" size={size} />
10
- </Flex>
11
- )
12
- }
@@ -1,24 +0,0 @@
1
- import {Avatar, AVATAR_SIZE, Box} from '@sanity/ui'
2
- import {useBoolean, useSelect, useString} from '@sanity/ui-workshop'
3
-
4
- import {WORKSHOP_AVATAR_SRC} from '$workshop'
5
-
6
- export default function PropsStory() {
7
- const hideInnerStroke = useBoolean('Hide inner stroke', false)
8
- const src = useBoolean('With image source (src)', false)
9
- const size = useSelect('Size', [undefined, ...AVATAR_SIZE])
10
- const arrowPosition = useSelect('Arrow position', [undefined, 'top', 'bottom', 'inside'])
11
- const initials = useString('Initials', 'AB')
12
-
13
- return (
14
- <Box alignItems="center" display="flex" height="fill" justifyContent="center">
15
- <Avatar
16
- __unstable_hideInnerStroke={hideInnerStroke}
17
- arrowPosition={arrowPosition}
18
- initials={initials}
19
- size={size}
20
- src={src ? WORKSHOP_AVATAR_SRC : undefined}
21
- />
22
- </Box>
23
- )
24
- }
@@ -1,27 +0,0 @@
1
- import {Avatar, AVATAR_SIZE, AvatarCounter, AvatarStack, Box} from '@sanity/ui'
2
- import {useSelect} from '@sanity/ui-workshop'
3
-
4
- import {CardWrapper} from '$workshop'
5
-
6
- export default function StackStory(): React.JSX.Element {
7
- const size = useSelect('Size', [undefined, ...AVATAR_SIZE])
8
-
9
- return (
10
- <CardWrapper gap={4}>
11
- <Box display="flex" justifyContent="center">
12
- <AvatarStack size={size}>
13
- <AvatarCounter count={2} />
14
- <Avatar color="magenta" initials="uq" />
15
- <Avatar
16
- color="purple"
17
- src="https://avatars3.githubusercontent.com/u/406933?s=400&u=af898b0a50ef2ef1248be32dfa1410ccb55f6f65&v=4"
18
- />
19
- <Avatar
20
- color="blue"
21
- src="https://avatars3.githubusercontent.com/u/406933?s=400&u=af898b0a50ef2ef1248be32dfa1410ccb55f6f65&v=4"
22
- />
23
- </AvatarStack>
24
- </Box>
25
- </CardWrapper>
26
- )
27
- }
@@ -1,51 +0,0 @@
1
- import {Avatar, AvatarStack, Box, Button, Text} from '@sanity/ui'
2
- import {useBoolean} from '@sanity/ui-workshop'
3
-
4
- import {CardWrapper} from '$workshop'
5
-
6
- export default function WithinButtonStory(): React.JSX.Element {
7
- const disabled = useBoolean('Disabled', false)
8
-
9
- return (
10
- <CardWrapper gap={3}>
11
- <Button disabled={disabled} padding={0}>
12
- <Box flex={1} padding={3}>
13
- <Text size={1}>Default button</Text>
14
- </Box>
15
- <Box flex="none" padding={2}>
16
- <AvatarStack size={0}>
17
- <Avatar color="blue" initials="AB" />
18
- <Avatar color="magenta" initials="CD" />
19
- <Avatar color="purple" initials="EF" />
20
- </AvatarStack>
21
- </Box>
22
- </Button>
23
-
24
- <Button disabled={disabled} mode="ghost" padding={0}>
25
- <Box flex={1} padding={3}>
26
- <Text size={1}>Ghost button</Text>
27
- </Box>
28
- <Box flex="none" padding={2}>
29
- <AvatarStack size={0} style={{margin: -1}}>
30
- <Avatar color="blue" initials="AB" />
31
- <Avatar color="magenta" initials="CD" />
32
- <Avatar color="purple" initials="EF" />
33
- </AvatarStack>
34
- </Box>
35
- </Button>
36
-
37
- <Button disabled={disabled} mode="bleed" padding={0}>
38
- <Box flex={1} padding={3}>
39
- <Text size={1}>Bleed button</Text>
40
- </Box>
41
- <Box flex="none" padding={2}>
42
- <AvatarStack size={0} style={{margin: -1}}>
43
- <Avatar color="blue" initials="AB" />
44
- <Avatar color="magenta" initials="CD" />
45
- <Avatar color="purple" initials="EF" />
46
- </AvatarStack>
47
- </Box>
48
- </Button>
49
- </CardWrapper>
50
- )
51
- }
@@ -1,52 +0,0 @@
1
- import {Avatar, AvatarStack, Box, Card, Menu, MenuItem, Text} from '@sanity/ui'
2
- import {useBoolean} from '@sanity/ui-workshop'
3
-
4
- import {CardWrapper} from '$workshop'
5
-
6
- export default function WithinMenuItemStory(): React.JSX.Element {
7
- const disabled = useBoolean('Disabled', false)
8
-
9
- return (
10
- <CardWrapper>
11
- <Card radius={4} shadow={3}>
12
- <Menu gap={1}>
13
- <MenuItem disabled={disabled} padding={0}>
14
- <Box flex={1} padding={3}>
15
- <Text size={1}>Menu item 1</Text>
16
- </Box>
17
- <Box flex="none" padding={2}>
18
- <AvatarStack size={0} style={{margin: -1}}>
19
- <Avatar color="purple" initials="AB" />
20
- <Avatar color="magenta" initials="CD" />
21
- <Avatar color="orange" initials="EF" />
22
- </AvatarStack>
23
- </Box>
24
- </MenuItem>
25
-
26
- <MenuItem disabled={disabled} padding={0}>
27
- <Box flex={1} padding={3}>
28
- <Text size={1}>Menu item 1</Text>
29
- </Box>
30
- <Box flex="none" padding={2}>
31
- <AvatarStack size={0} style={{margin: -1}}>
32
- <Avatar color="magenta" initials="CD" />
33
- <Avatar color="orange" initials="EF" />
34
- </AvatarStack>
35
- </Box>
36
- </MenuItem>
37
-
38
- <MenuItem disabled={disabled} padding={0}>
39
- <Box flex={1} padding={3}>
40
- <Text size={1}>Menu item 1</Text>
41
- </Box>
42
- <Box flex="none" padding={2}>
43
- <AvatarStack size={0} style={{margin: -1}}>
44
- <Avatar color="purple" initials="AB" />
45
- </AvatarStack>
46
- </Box>
47
- </MenuItem>
48
- </Menu>
49
- </Card>
50
- </CardWrapper>
51
- )
52
- }
@@ -1,36 +0,0 @@
1
- import {type WorkshopScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- const scope: WorkshopScope = {
5
- name: 'primitives/avatar',
6
- title: 'Avatar',
7
- stories: [
8
- {
9
- name: 'props',
10
- title: 'Props',
11
- component: lazy(() => import('./PropsStory')),
12
- },
13
- {
14
- name: 'as-button',
15
- title: 'As button',
16
- component: lazy(() => import('./AsButton')),
17
- },
18
- {
19
- name: 'avatar-stack',
20
- title: 'Avatar stack',
21
- component: lazy(() => import('./Stack')),
22
- },
23
- {
24
- name: 'within-button',
25
- title: 'Within button',
26
- component: lazy(() => import('./WithinButton')),
27
- },
28
- {
29
- name: 'within-menu-item',
30
- title: 'Within menu item',
31
- component: lazy(() => import('./WithinMenuItem')),
32
- },
33
- ],
34
- }
35
-
36
- export default scope
@@ -1,2 +0,0 @@
1
- /** @public */
2
- export type AvatarPosition = 'top' | 'bottom' | 'inside'
@@ -1,16 +0,0 @@
1
- import {describe, expect, it} from 'vitest'
2
- import {axe} from 'vitest-axe'
3
-
4
- import {render} from '$test/utils'
5
-
6
- import {Badge} from './Badge'
7
-
8
- describe('atoms/badge', () => {
9
- it('should have no violations (axe)', async () => {
10
- const lightResult = render(<Badge tone="positive">Label</Badge>, {scheme: 'light'})
11
- const darkResult = render(<Badge tone="positive">Label</Badge>, {scheme: 'dark'})
12
-
13
- expect(await axe(lightResult.container.outerHTML)).toHaveNoViolations()
14
- expect(await axe(darkResult.container.outerHTML)).toHaveNoViolations()
15
- })
16
- })
@@ -1,53 +0,0 @@
1
- import {
2
- badge,
3
- BADGE_STYLE_PROP_KEYS,
4
- type BadgeStyleProps,
5
- type ResponsiveProp,
6
- } from '@sanity/ui-css'
7
- import type {FontTextSize} from '@sanity/ui-tokens'
8
-
9
- import {_splitKeys} from '../../core/_keys'
10
- import type {ComponentType, Props} from '../../core/types'
11
- import {Text} from '../text/Text'
12
-
13
- /** @public */
14
- export const DEFAULT_BADGE_ELEMENT = 'span'
15
-
16
- /** @public */
17
- export interface BadgeOwnProps extends BadgeStyleProps {
18
- fontSize?: ResponsiveProp<FontTextSize>
19
- }
20
-
21
- /** @public */
22
- export type BadgeElementType = 'div' | 'span' | ComponentType
23
-
24
- /** @public */
25
- export type BadgeProps<E extends BadgeElementType = BadgeElementType> = Props<BadgeOwnProps, E>
26
-
27
- /**
28
- * Badges are used to tag resources.
29
- *
30
- * @public
31
- */
32
- export function Badge<E extends BadgeElementType = typeof DEFAULT_BADGE_ELEMENT>(
33
- props: BadgeProps<E>,
34
- ): React.JSX.Element {
35
- const [
36
- styleProps,
37
- {
38
- as: Element = DEFAULT_BADGE_ELEMENT,
39
- children,
40
- fontSize = 1,
41
- // split DOM props
42
- ...domProps
43
- },
44
- ] = _splitKeys(props as BadgeProps<typeof DEFAULT_BADGE_ELEMENT>, BADGE_STYLE_PROP_KEYS)
45
-
46
- return (
47
- <Element data-ui="Badge" {...domProps} className={badge(styleProps)}>
48
- <Text as="span" size={fontSize}>
49
- {children}
50
- </Text>
51
- </Element>
52
- )
53
- }
@@ -1,27 +0,0 @@
1
- import {Badge, ELEMENT_TONES, Flex, RADIUS, SPACE} from '@sanity/ui'
2
- import {useAction, useSelect, useText} from '@sanity/ui-workshop'
3
-
4
- export default function PropsStory() {
5
- const padding = useSelect('Padding', SPACE)
6
- const paddingX = useSelect('Padding X', SPACE)
7
- const paddingY = useSelect('Padding Y', SPACE)
8
- const radius = useSelect('Radius', [undefined, ...RADIUS])
9
- const tone = useSelect('Tone', ELEMENT_TONES, 'default')
10
-
11
- const text = useText('Text', 'Label')
12
-
13
- return (
14
- <Flex align="center" height="fill" justify="center">
15
- <Badge
16
- padding={padding}
17
- paddingX={paddingX}
18
- paddingY={paddingY}
19
- radius={radius}
20
- tone={tone}
21
- onClick={useAction('onClick')}
22
- >
23
- {text}
24
- </Badge>
25
- </Flex>
26
- )
27
- }
@@ -1,15 +0,0 @@
1
- import {Badge, ELEMENT_TONES, Flex} from '@sanity/ui'
2
-
3
- export default function Tones(): React.JSX.Element {
4
- return (
5
- <Flex align="center" height="fill" justify="center" padding={4} sizing="border">
6
- <Flex align="center" direction="column" gap={2}>
7
- {ELEMENT_TONES.map((tone) => (
8
- <Badge key={tone} tone={tone}>
9
- {tone}
10
- </Badge>
11
- ))}
12
- </Flex>
13
- </Flex>
14
- )
15
- }
@@ -1,26 +0,0 @@
1
- import type {WorkshopScope} from '@sanity/ui-workshop'
2
- import {lazy} from 'react'
3
-
4
- const scope: WorkshopScope = {
5
- name: 'primitives/badge',
6
- title: 'Badge',
7
- stories: [
8
- {
9
- name: 'props',
10
- title: 'Props',
11
- component: lazy(() => import('./Props')),
12
- },
13
- {
14
- name: 'tones',
15
- title: 'Tones',
16
- component: lazy(() => import('./Tones')),
17
- },
18
- {
19
- name: 'within-button',
20
- title: 'Within button',
21
- component: lazy(() => import('./within-button')),
22
- },
23
- ],
24
- }
25
-
26
- export default scope
@@ -1,36 +0,0 @@
1
- import {Badge, Box, Button, Text} from '@sanity/ui'
2
-
3
- import {CardWrapper} from '$workshop'
4
-
5
- export default function WithinButtonStory(): React.JSX.Element {
6
- return (
7
- <CardWrapper gap={4} width={0}>
8
- <Box display="flex" justifyContent="center">
9
- <Button mode="default" padding={2}>
10
- <Box flex={1} padding={1}>
11
- <Text size={1}>Button</Text>
12
- </Box>
13
- <Badge tone="suggest">Badge</Badge>
14
- </Button>
15
- </Box>
16
-
17
- <Box display="flex" justifyContent="center">
18
- <Button mode="ghost" padding={2}>
19
- <Box flex={1} padding={1}>
20
- <Text size={1}>Button</Text>
21
- </Box>
22
- <Badge tone="suggest">Badge</Badge>
23
- </Button>
24
- </Box>
25
-
26
- <Box display="flex" justifyContent="center">
27
- <Button mode="bleed" padding={2}>
28
- <Box flex={1} padding={1}>
29
- <Text size={1}>Button</Text>
30
- </Box>
31
- <Badge tone="suggest">Badge</Badge>
32
- </Button>
33
- </Box>
34
- </CardWrapper>
35
- )
36
- }