@sanity/ui 4.0.0-static.4 → 4.0.0-static.41

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 (341) hide show
  1. package/dist/_chunks-es/{refractor.js → Refractor.js} +1 -1
  2. package/dist/_chunks-es/{refractor.js.map → Refractor.js.map} +1 -1
  3. package/dist/css/index.css +2 -1
  4. package/dist/css/index.css.map +1 -0
  5. package/dist/css/index.d.ts +51 -7
  6. package/dist/css/index.js +17979 -55
  7. package/dist/css/index.js.map +1 -1
  8. package/dist/index.d.ts +26 -38
  9. package/dist/index.js +1752 -1132
  10. package/dist/index.js.map +1 -1
  11. package/exports/css/index.css +1 -0
  12. package/package.json +39 -51
  13. package/src/core/Root.tsx +1 -1
  14. package/src/core/RootProvider.tsx +5 -5
  15. package/src/core/__workshop__/index.ts +1 -1
  16. package/src/core/components/autocomplete/{autocomplete.tsx → Autocomplete.tsx} +90 -58
  17. package/src/core/components/autocomplete/__workshop__/{custom.tsx → Custom.tsx} +14 -1
  18. package/src/core/components/autocomplete/__workshop__/{example.tsx → Example.tsx} +12 -1
  19. package/src/core/components/autocomplete/__workshop__/index.ts +6 -6
  20. package/src/core/components/autocomplete/types.ts +1 -1
  21. package/src/core/components/breadcrumbs/{breadcrumbs.tsx → Breadcrumbs.tsx} +80 -47
  22. package/src/core/components/breadcrumbs/__workshop__/index.ts +1 -1
  23. package/src/core/components/dialog/{dialog.tsx → Dialog.tsx} +20 -11
  24. package/src/core/components/dialog/{dialogCard.tsx → DialogCard.tsx} +9 -9
  25. package/src/core/components/dialog/{dialogContext.ts → DialogContext.ts} +1 -1
  26. package/src/core/components/dialog/{dialogProvider.tsx → DialogProvider.tsx} +2 -2
  27. package/src/core/components/dialog/__workshop__/{panes.tsx → Panes.tsx} +9 -21
  28. package/src/core/components/dialog/__workshop__/{position.tsx → Position.tsx} +9 -1
  29. package/src/core/components/dialog/__workshop__/{props.tsx → Props.tsx} +2 -0
  30. package/src/core/components/dialog/__workshop__/index.ts +10 -10
  31. package/src/core/components/dialog/__workshop__/styles.css.ts +18 -0
  32. package/src/core/components/dialog/useDialog.ts +3 -3
  33. package/src/core/components/hotkeys/{hotkeys.tsx → Hotkeys.tsx} +2 -2
  34. package/src/core/components/hotkeys/__workshop__/index.ts +1 -1
  35. package/src/core/components/menu/{menu.test.tsx → Menu.test.tsx} +9 -13
  36. package/src/core/components/menu/{menu.tsx → Menu.tsx} +19 -24
  37. package/src/core/components/menu/{menuButton.tsx → MenuButton.tsx} +14 -9
  38. package/src/core/components/menu/{menuContext.ts → MenuContext.ts} +3 -4
  39. package/src/core/components/menu/{menuGroup.tsx → MenuGroup.tsx} +16 -11
  40. package/src/core/components/menu/{menuItem.tsx → MenuItem.tsx} +7 -9
  41. package/src/core/components/menu/__workshop__/DataProps.tsx +27 -0
  42. package/src/core/components/menu/__workshop__/{menuButton.tsx → MenuButton.tsx} +6 -1
  43. package/src/core/components/menu/__workshop__/{tones.tsx → Tones.tsx} +7 -1
  44. package/src/core/components/menu/__workshop__/index.ts +22 -17
  45. package/src/core/components/menu/useMenu.ts +5 -5
  46. package/src/core/components/menu/useMenuController.ts +5 -5
  47. package/src/core/components/tab/{tab.tsx → Tab.tsx} +1 -1
  48. package/src/core/components/tab/{tabList.tsx → TabList.tsx} +2 -2
  49. package/src/core/components/tab/{tabPanel.tsx → TabPanel.tsx} +1 -1
  50. package/src/core/components/tab/__workshop__/index.ts +1 -1
  51. package/src/core/components/toast/{toast.test.tsx → Toast.test.tsx} +7 -7
  52. package/src/core/components/toast/{toast.tsx → Toast.tsx} +6 -6
  53. package/src/core/components/toast/{toastContext.ts → ToastContext.ts} +1 -1
  54. package/src/core/components/toast/{toastLayer.tsx → ToastLayer.tsx} +1 -1
  55. package/src/core/components/toast/{toastProvider.tsx → ToastProvider.tsx} +24 -9
  56. package/src/core/components/toast/__workshop__/{toast.tsx → Toast.tsx} +2 -0
  57. package/src/core/components/toast/__workshop__/index.ts +2 -2
  58. package/src/core/components/toast/useToast.ts +3 -3
  59. package/src/core/components/tree/{tree.tsx → Tree.tsx} +4 -4
  60. package/src/core/components/tree/{treeContext.ts → TreeContext.ts} +1 -1
  61. package/src/core/components/tree/{treeGroup.tsx → TreeGroup.tsx} +1 -1
  62. package/src/core/components/tree/{treeItem.tsx → TreeItem.tsx} +28 -25
  63. package/src/core/components/tree/__workshop__/index.ts +4 -4
  64. package/src/core/components/tree/useTree.ts +3 -3
  65. package/src/core/components/virtualList/{virtualList.tsx → VirtualList.tsx} +87 -45
  66. package/src/core/components/virtualList/__workshop__/index.ts +4 -4
  67. package/src/core/helpers/props.ts +0 -9
  68. package/src/core/hooks/useGlobalKeyDown.ts +11 -4
  69. package/src/core/hooks/useMediaIndex/__workshop__/index.ts +1 -1
  70. package/src/core/hooks/useResponsiveProp.ts +4 -17
  71. package/src/core/index.ts +68 -66
  72. package/src/core/lib/createGlobalScopedContext.ts +5 -3
  73. package/src/core/primitives/avatar/{avatar.tsx → Avatar.tsx} +7 -6
  74. package/src/core/primitives/avatar/{avatarCounter.tsx → AvatarCounter.tsx} +2 -2
  75. package/src/core/primitives/avatar/{avatarStack.tsx → AvatarStack.tsx} +3 -3
  76. package/src/core/primitives/avatar/__workshop__/{asButton.tsx → AsButton.tsx} +8 -1
  77. package/src/core/primitives/avatar/__workshop__/PropsStory.tsx +22 -0
  78. package/src/core/primitives/avatar/__workshop__/{stack.tsx → Stack.tsx} +5 -1
  79. package/src/core/primitives/avatar/__workshop__/index.ts +9 -4
  80. package/src/core/primitives/badge/{badge.test.tsx → Badge.test.tsx} +1 -1
  81. package/src/core/primitives/badge/{badge.tsx → Badge.tsx} +2 -2
  82. package/src/core/primitives/badge/__workshop__/{props.tsx → Props.tsx} +12 -1
  83. package/src/core/primitives/badge/__workshop__/index.ts +2 -2
  84. package/src/core/primitives/box/__workshop__/{props.tsx → Props.tsx} +6 -1
  85. package/src/core/primitives/box/__workshop__/index.ts +2 -2
  86. package/src/core/primitives/button/{button.test.tsx → Button.test.tsx} +1 -1
  87. package/src/core/primitives/button/{button.tsx → Button.tsx} +12 -11
  88. package/src/core/primitives/button/__workshop__/DataProps.tsx +22 -0
  89. package/src/core/primitives/button/__workshop__/{props.tsx → Props.tsx} +22 -0
  90. package/src/core/primitives/button/__workshop__/SanityUploadButton.tsx +21 -0
  91. package/src/core/primitives/button/__workshop__/{stacked.tsx → Stacked.tsx} +16 -0
  92. package/src/core/primitives/button/__workshop__/Styled1.tsx +11 -0
  93. package/src/core/primitives/button/__workshop__/index.ts +15 -15
  94. package/src/core/primitives/button/__workshop__/styles.css.ts +30 -0
  95. package/src/core/primitives/card/{card.tsx → Card.tsx} +10 -10
  96. package/src/core/primitives/card/{cardContext.ts → CardContext.ts} +1 -1
  97. package/src/core/primitives/card/{cardProvider.tsx → CardProvider.tsx} +3 -12
  98. package/src/core/primitives/card/__workshop__/DataProps.tsx +30 -0
  99. package/src/core/primitives/card/__workshop__/{props.tsx → Props.tsx} +10 -0
  100. package/src/core/primitives/card/__workshop__/{selected.tsx → Selected.tsx} +1 -1
  101. package/src/core/primitives/card/__workshop__/{styled.tsx → Styled.tsx} +2 -5
  102. package/src/core/primitives/card/__workshop__/index.ts +10 -9
  103. package/src/core/primitives/card/useCard.ts +11 -6
  104. package/src/core/primitives/checkbox/__workshop__/index.ts +4 -4
  105. package/src/core/primitives/code/{code.tsx → Code.tsx} +26 -2
  106. package/src/core/primitives/code/__workshop__/{props.tsx → Props.tsx} +6 -1
  107. package/src/core/primitives/code/__workshop__/index.ts +2 -2
  108. package/src/core/primitives/container/{container.tsx → Container.tsx} +1 -1
  109. package/src/core/primitives/container/__workshop__/{example.tsx → Example.tsx} +6 -1
  110. package/src/core/primitives/container/__workshop__/index.ts +1 -1
  111. package/src/core/primitives/flex/{flex.tsx → Flex.tsx} +1 -1
  112. package/src/core/primitives/flex/__workshop__/{example.tsx → Example.tsx} +14 -16
  113. package/src/core/primitives/flex/__workshop__/index.ts +2 -2
  114. package/src/core/primitives/flex/__workshop__/styles.css.ts +12 -0
  115. package/src/core/primitives/grid/{grid.tsx → Grid.tsx} +1 -1
  116. package/src/core/primitives/grid/__workshop__/index.ts +1 -1
  117. package/src/core/primitives/heading/{heading.tsx → Heading.tsx} +16 -0
  118. package/src/core/primitives/heading/__workshop__/{plain.tsx → Plain.tsx} +12 -1
  119. package/src/core/primitives/heading/__workshop__/index.ts +2 -2
  120. package/src/core/primitives/inline/{inline.tsx → Inline.tsx} +2 -1
  121. package/src/core/primitives/inline/__workshop__/{plain.tsx → Plain.tsx} +5 -1
  122. package/src/core/primitives/inline/__workshop__/index.ts +1 -1
  123. package/src/core/primitives/kbd/{kbd.tsx → Kbd.tsx} +2 -2
  124. package/src/core/primitives/kbd/__workshop__/index.ts +1 -1
  125. package/src/core/primitives/label/{label.tsx → Label.tsx} +16 -0
  126. package/src/core/primitives/label/__workshop__/{plain.tsx → Plain.tsx} +15 -1
  127. package/src/core/primitives/label/__workshop__/index.ts +2 -2
  128. package/src/core/primitives/layer/{layer.test.tsx → Layer.test.tsx} +7 -7
  129. package/src/core/primitives/layer/{layer.tsx → Layer.tsx} +3 -3
  130. package/src/core/primitives/layer/{layerCard.tsx → LayerCard.tsx} +2 -2
  131. package/src/core/primitives/layer/{layerContext.ts → LayerContext.ts} +1 -1
  132. package/src/core/primitives/layer/{layerProvider.tsx → LayerProvider.tsx} +6 -6
  133. package/src/core/primitives/layer/__workshop__/index.ts +3 -3
  134. package/src/core/primitives/layer/useLayer.ts +3 -3
  135. package/src/core/primitives/popover/{popover.tsx → Popover.tsx} +170 -150
  136. package/src/core/primitives/popover/{popoverLayer.tsx → PopoverLayer.tsx} +3 -3
  137. package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +13 -1
  138. package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +2 -0
  139. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +8 -0
  140. package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +7 -1
  141. package/src/core/primitives/popover/__workshop__/TestStory.tsx +6 -0
  142. package/src/core/primitives/popover/floating-ui/size.ts +17 -16
  143. package/src/core/primitives/radio/{radio.tsx → Radio.tsx} +2 -2
  144. package/src/core/primitives/radio/__workshop__/index.ts +2 -2
  145. package/src/core/primitives/select/{select.tsx → Select.tsx} +7 -5
  146. package/src/core/primitives/select/__workshop__/{plain.tsx → Plain.tsx} +4 -0
  147. package/src/core/primitives/select/__workshop__/index.ts +2 -2
  148. package/src/core/primitives/selectable/{selectable.tsx → Selectable.tsx} +2 -2
  149. package/src/core/primitives/selectable/__workshop__/DataProps.tsx +27 -0
  150. package/src/core/primitives/selectable/__workshop__/index.ts +14 -0
  151. package/src/core/primitives/skeleton/{codeSkeleton.tsx → CodeSkeleton.tsx} +1 -1
  152. package/src/core/primitives/skeleton/{headingSkeleton.tsx → HeadingSkeleton.tsx} +1 -1
  153. package/src/core/primitives/skeleton/{labelSkeleton.tsx → LabelSkeleton.tsx} +1 -1
  154. package/src/core/primitives/skeleton/{skeleton.tsx → Skeleton.tsx} +2 -2
  155. package/src/core/primitives/skeleton/{textSkeleton.tsx → TextSkeleton.tsx} +1 -1
  156. package/src/core/primitives/skeleton/__workshop__/{delay.tsx → Delay.tsx} +9 -1
  157. package/src/core/primitives/skeleton/__workshop__/{skeleton.tsx → Skeleton.tsx} +9 -1
  158. package/src/core/primitives/skeleton/__workshop__/index.ts +2 -2
  159. package/src/core/primitives/spinner/{spinner.tsx → Spinner.tsx} +2 -2
  160. package/src/core/primitives/spinner/__workshop__/Props.tsx +6 -1
  161. package/src/core/primitives/stack/{stack.tsx → Stack.tsx} +1 -1
  162. package/src/core/primitives/stack/__workshop__/{plain.tsx → Plain.tsx} +4 -1
  163. package/src/core/primitives/stack/__workshop__/index.ts +1 -1
  164. package/src/core/primitives/switch/{switch.tsx → Switch.tsx} +2 -10
  165. package/src/core/primitives/switch/__workshop__/index.ts +2 -2
  166. package/src/core/primitives/text/{text.tsx → Text.tsx} +14 -0
  167. package/src/core/primitives/text/__workshop__/{colored.tsx → Colored.tsx} +10 -8
  168. package/src/core/primitives/text/__workshop__/{example.tsx → Example.tsx} +15 -1
  169. package/src/core/primitives/text/__workshop__/index.ts +3 -3
  170. package/src/core/primitives/textArea/{textArea.tsx → TextArea.tsx} +7 -1
  171. package/src/core/primitives/textArea/__workshop__/{plain.tsx → Plain.tsx} +8 -0
  172. package/src/core/primitives/textArea/__workshop__/index.ts +1 -1
  173. package/src/core/primitives/textInput/{textInput.tsx → TextInput.tsx} +93 -72
  174. package/src/core/primitives/textInput/__workshop__/{plain.tsx → Plain.tsx} +34 -4
  175. package/src/core/primitives/textInput/__workshop__/{typed.tsx → Typed.tsx} +7 -1
  176. package/src/core/primitives/textInput/__workshop__/index.ts +7 -7
  177. package/src/core/primitives/tooltip/{tooltip.test.tsx → Tooltip.test.tsx} +4 -4
  178. package/src/core/primitives/tooltip/{tooltip.tsx → Tooltip.tsx} +102 -63
  179. package/src/core/primitives/tooltip/{tooltipLayer.tsx → TooltipLayer.tsx} +2 -2
  180. package/src/core/primitives/tooltip/__workshop__/{customPortal.tsx → CustomPortal.tsx} +2 -0
  181. package/src/core/primitives/tooltip/__workshop__/{overflowingBoundary.tsx → OverflowingBoundary.tsx} +2 -0
  182. package/src/core/primitives/tooltip/__workshop__/{props.tsx → Props.tsx} +12 -0
  183. package/src/core/primitives/tooltip/__workshop__/{resizableBoundary.tsx → ResizableBoundary.tsx} +5 -0
  184. package/src/core/primitives/tooltip/__workshop__/index.ts +4 -4
  185. package/src/core/primitives/tooltip/tooltipDelayGroup/{tooltipDelayGroupContext.tsx → TooltipDelayGroupContext.tsx} +1 -1
  186. package/src/core/primitives/tooltip/tooltipDelayGroup/{tooltipDelayGroupProvider.tsx → TooltipDelayGroupProvider.tsx} +2 -4
  187. package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +3 -3
  188. package/src/core/types.ts +6 -5
  189. package/src/core/utils/{errorBoundary.tsx → ErrorBoundary.tsx} +1 -1
  190. package/src/core/utils/boundaryElement/{boundaryElementContext.ts → BoundaryElementContext.ts} +2 -5
  191. package/src/core/utils/boundaryElement/BoundaryElementProvider.tsx +16 -0
  192. package/src/core/utils/boundaryElement/__workshop__/index.ts +1 -1
  193. package/src/core/utils/boundaryElement/types.ts +1 -4
  194. package/src/core/utils/boundaryElement/useBoundaryElement.ts +7 -19
  195. package/src/core/utils/elementQuery/__workshop__/CustomMedia.tsx +19 -0
  196. package/src/core/utils/elementQuery/__workshop__/index.ts +1 -1
  197. package/src/core/utils/elementQuery/__workshop__/styles.css.ts +31 -0
  198. package/src/core/utils/portal/{portal.test.tsx → Portal.test.tsx} +7 -7
  199. package/src/core/utils/portal/{portal.tsx → Portal.tsx} +7 -4
  200. package/src/core/utils/portal/{portalContext.ts → PortalContext.ts} +1 -1
  201. package/src/core/utils/portal/PortalProvider.tsx +38 -0
  202. package/src/core/utils/portal/__workshop__/index.ts +1 -1
  203. package/src/core/utils/portal/usePortal.ts +12 -5
  204. package/src/css/_responsiveStyle.css.ts +2 -2
  205. package/src/css/primitives/_input/_input.css.ts +13 -12
  206. package/src/css/primitives/_input/input.ts +2 -0
  207. package/src/css/primitives/_input/types.ts +2 -1
  208. package/src/css/primitives/avatar/avatar.css.ts +17 -5
  209. package/src/css/primitives/box/box.css.ts +19 -1
  210. package/src/css/primitives/button/button.css.ts +252 -183
  211. package/src/css/primitives/card/__workshop__/{color.tsx → Color.tsx} +9 -1
  212. package/src/css/primitives/card/__workshop__/index.ts +1 -1
  213. package/src/css/primitives/card/card.css.ts +133 -130
  214. package/src/css/primitives/checkbox/checkbox.css.ts +1 -0
  215. package/src/css/primitives/code/code.ts +4 -0
  216. package/src/css/primitives/code/types.ts +7 -1
  217. package/src/css/primitives/heading/heading.ts +4 -0
  218. package/src/css/primitives/heading/types.ts +7 -1
  219. package/src/css/primitives/label/label.ts +4 -0
  220. package/src/css/primitives/label/types.ts +7 -1
  221. package/src/css/primitives/radio/radio.css.ts +1 -1
  222. package/src/css/primitives/root/root.css.ts +1 -1
  223. package/src/css/primitives/select/select.css.ts +7 -1
  224. package/src/css/primitives/selectable/selectable.css.ts +79 -70
  225. package/src/css/primitives/switch/switch.css.ts +10 -1
  226. package/src/css/primitives/text/text.ts +2 -0
  227. package/src/css/primitives/text/types.ts +6 -1
  228. package/src/css/primitives/textInput/textInput.css.ts +15 -3
  229. package/src/css/props/width/types.ts +1 -1
  230. package/src/css/props/width/width.css.ts +5 -2
  231. package/src/css/theme/buildCSSTheme.ts +4 -0
  232. package/src/css/types.ts +4 -0
  233. package/src/css/vars.css.ts +4 -0
  234. package/dist/_chunks-cjs/refractor.cjs +0 -22
  235. package/dist/_chunks-cjs/refractor.cjs.map +0 -1
  236. package/dist/css/index.cjs +0 -966
  237. package/dist/css/index.cjs.map +0 -1
  238. package/dist/css/index.d.cts +0 -1370
  239. package/dist/index.cjs +0 -4515
  240. package/dist/index.cjs.map +0 -1
  241. package/dist/index.d.cts +0 -2521
  242. package/dist/theme.cjs +0 -870
  243. package/dist/theme.cjs.map +0 -1
  244. package/dist/theme.d.cts +0 -499
  245. package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +0 -36
  246. package/src/core/primitives/button/__workshop__/styled1.tsx +0 -17
  247. package/src/core/primitives/button/__workshop__/styled2.tsx +0 -19
  248. package/src/core/primitives/popover/helpers.ts +0 -32
  249. package/src/core/primitives/tooltip/tooltipDelayGroup/index.ts +0 -4
  250. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +0 -102
  251. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +0 -18
  252. package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +0 -41
  253. package/src/core/utils/portal/portalProvider.tsx +0 -70
  254. /package/src/core/__workshop__/{boundary.tsx → Boundary.tsx} +0 -0
  255. /package/src/core/components/autocomplete/{autocompleteOption.tsx → AutocompleteOption.tsx} +0 -0
  256. /package/src/core/components/autocomplete/__workshop__/{async.tsx → Async.tsx} +0 -0
  257. /package/src/core/components/autocomplete/__workshop__/{constrainedHeight.tsx → ConstrainedHeight.tsx} +0 -0
  258. /package/src/core/components/autocomplete/__workshop__/{focusAndBlur.tsx → FocusAndBlur.tsx} +0 -0
  259. /package/src/core/components/autocomplete/__workshop__/{fullscreen.tsx → Fullscreen.tsx} +0 -0
  260. /package/src/core/components/breadcrumbs/__workshop__/{example.tsx → Example.tsx} +0 -0
  261. /package/src/core/components/dialog/__workshop__/{activate.tsx → Activate.tsx} +0 -0
  262. /package/src/core/components/dialog/__workshop__/{autoFocus.tsx → AutoFocus.tsx} +0 -0
  263. /package/src/core/components/dialog/__workshop__/{layering.tsx → Layering.tsx} +0 -0
  264. /package/src/core/components/dialog/__workshop__/{nested.tsx → Nested.tsx} +0 -0
  265. /package/src/core/components/dialog/__workshop__/{onScroll.tsx → OnScroll.tsx} +0 -0
  266. /package/src/core/components/dialog/__workshop__/{provider.tsx → Provider.tsx} +0 -0
  267. /package/src/core/components/dialog/__workshop__/{wrapped.tsx → Wrapped.tsx} +0 -0
  268. /package/src/core/components/hotkeys/__workshop__/{plain.tsx → Plain.tsx} +0 -0
  269. /package/src/core/components/menu/{menuDivider.tsx → MenuDivider.tsx} +0 -0
  270. /package/src/core/components/menu/__workshop__/{asComponent.tsx → AsComponent.tsx} +0 -0
  271. /package/src/core/components/menu/__workshop__/{avatarMenu.tsx → AvatarMenu.tsx} +0 -0
  272. /package/src/core/components/menu/__workshop__/{closableMenuButton.tsx → ClosableMenuButton.tsx} +0 -0
  273. /package/src/core/components/menu/__workshop__/{constrainedInBoundary.tsx → ConstrainedInBoundary.tsx} +0 -0
  274. /package/src/core/components/menu/__workshop__/{customMenuItem.tsx → CustomMenuItem.tsx} +0 -0
  275. /package/src/core/components/menu/__workshop__/{customSelectedState.tsx → CustomSelectedState.tsx} +0 -0
  276. /package/src/core/components/menu/__workshop__/{disableFocusOnClose.tsx → DisableFocusOnClose.tsx} +0 -0
  277. /package/src/core/components/menu/__workshop__/{groups.tsx → Groups.tsx} +0 -0
  278. /package/src/core/components/menu/__workshop__/{menuGroupRight.tsx → MenuGroupRight.tsx} +0 -0
  279. /package/src/core/components/menu/__workshop__/{nestedMenu.tsx → NestedMenu.tsx} +0 -0
  280. /package/src/core/components/menu/__workshop__/{onCloseMenuButton.tsx → OnCloseMenuButton.tsx} +0 -0
  281. /package/src/core/components/menu/__workshop__/{selectedItem.tsx → SelectedItem.tsx} +0 -0
  282. /package/src/core/components/menu/__workshop__/{shouldFocus.tsx → ShouldFocus.tsx} +0 -0
  283. /package/src/core/components/menu/__workshop__/{withoutArrow.tsx → WithoutArrow.tsx} +0 -0
  284. /package/src/core/components/tab/__workshop__/{example.tsx → Example.tsx} +0 -0
  285. /package/src/core/components/toast/__workshop__/{hook.tsx → Hook.tsx} +0 -0
  286. /package/src/core/components/tree/__workshop__/{basic.tsx → Basic.tsx} +0 -0
  287. /package/src/core/components/tree/__workshop__/{tabFromElement.tsx → TabFromElement.tsx} +0 -0
  288. /package/src/core/components/virtualList/__workshop__/{changingProps.tsx → ChangingProps.tsx} +0 -0
  289. /package/src/core/components/virtualList/__workshop__/{elementScroll.tsx → ElementScroll.tsx} +0 -0
  290. /package/src/core/components/virtualList/__workshop__/{infiniteList.tsx → InfiniteList.tsx} +0 -0
  291. /package/src/core/components/virtualList/__workshop__/{windowScrolll.tsx → WindowScrolll.tsx} +0 -0
  292. /package/src/core/hooks/useMediaIndex/__workshop__/{test.tsx → Test.tsx} +0 -0
  293. /package/src/core/primitives/arrow/{arrow.tsx → Arrow.tsx} +0 -0
  294. /package/src/core/primitives/avatar/__workshop__/{withinButton.tsx → WithinButton.tsx} +0 -0
  295. /package/src/core/primitives/avatar/__workshop__/{withinMenuItem.tsx → WithinMenuItem.tsx} +0 -0
  296. /package/src/core/primitives/badge/__workshop__/{tones.tsx → Tones.tsx} +0 -0
  297. /package/src/core/primitives/box/{box.tsx → Box.tsx} +0 -0
  298. /package/src/core/primitives/box/__workshop__/{responsive.tsx → Responsive.tsx} +0 -0
  299. /package/src/core/primitives/button/__workshop__/{custom.tsx → Custom.tsx} +0 -0
  300. /package/src/core/primitives/button/__workshop__/{customIcons.tsx → CustomIcons.tsx} +0 -0
  301. /package/src/core/primitives/button/__workshop__/{disabled.tsx → Disabled.tsx} +0 -0
  302. /package/src/core/primitives/button/__workshop__/{mixedChildren.tsx → MixedChildren.tsx} +0 -0
  303. /package/src/core/primitives/button/__workshop__/{textOverflow.tsx → TextOverflow.tsx} +0 -0
  304. /package/src/core/primitives/button/__workshop__/{uploadButton.tsx → UploadButton.tsx} +0 -0
  305. /package/src/core/primitives/card/__workshop__/{asButton.tsx → AsButton.tsx} +0 -0
  306. /package/src/core/primitives/card/__workshop__/{asComponent.tsx → AsComponent.tsx} +0 -0
  307. /package/src/core/primitives/card/__workshop__/{checkered.tsx → Checkered.tsx} +0 -0
  308. /package/src/core/primitives/card/__workshop__/{interactive.tsx → Interactive.tsx} +0 -0
  309. /package/src/core/primitives/card/__workshop__/{listNavigation.tsx → ListNavigation.tsx} +0 -0
  310. /package/src/core/primitives/card/__workshop__/{tones.tsx → Tones.tsx} +0 -0
  311. /package/src/core/primitives/checkbox/{checkbox.tsx → Checkbox.tsx} +0 -0
  312. /package/src/core/primitives/checkbox/__workshop__/{example.tsx → Example.tsx} +0 -0
  313. /package/src/core/primitives/checkbox/__workshop__/{props.tsx → Props.tsx} +0 -0
  314. /package/src/core/primitives/checkbox/__workshop__/{readOnly.tsx → ReadOnly.tsx} +0 -0
  315. /package/src/core/primitives/checkbox/__workshop__/{tones.tsx → Tones.tsx} +0 -0
  316. /package/src/core/primitives/code/{refractor.tsx → Refractor.tsx} +0 -0
  317. /package/src/core/primitives/code/__workshop__/{opticalAlignment.tsx → OpticalAlignment.tsx} +0 -0
  318. /package/src/core/primitives/flex/__workshop__/{gap.tsx → Gap.tsx} +0 -0
  319. /package/src/core/primitives/grid/__workshop__/{responsive.tsx → Responsive.tsx} +0 -0
  320. /package/src/core/primitives/heading/__workshop__/{opticalAlignment.tsx → OpticalAlignment.tsx} +0 -0
  321. /package/src/core/primitives/kbd/__workshop__/{plain.tsx → Plain.tsx} +0 -0
  322. /package/src/core/primitives/label/__workshop__/{opticalAlignment.tsx → OpticalAlignment.tsx} +0 -0
  323. /package/src/core/primitives/layer/__workshop__/{multipleRoots.tsx → MultipleRoots.tsx} +0 -0
  324. /package/src/core/primitives/layer/__workshop__/{nested.tsx → Nested.tsx} +0 -0
  325. /package/src/core/primitives/layer/__workshop__/{responsiveZOffset.tsx → ResponsiveZOffset.tsx} +0 -0
  326. /package/src/core/primitives/radio/__workshop__/{example.tsx → Example.tsx} +0 -0
  327. /package/src/core/primitives/radio/__workshop__/{plain.tsx → Plain.tsx} +0 -0
  328. /package/src/core/primitives/select/__workshop__/{readOnly.tsx → ReadOnly.tsx} +0 -0
  329. /package/src/core/primitives/spinner/{animatedSpinnerIcon.tsx → AnimatedSpinnerIcon.tsx} +0 -0
  330. /package/src/core/primitives/srOnly/{srOnly.tsx → SrOnly.tsx} +0 -0
  331. /package/src/core/primitives/switch/__workshop__/{example.tsx → Example.tsx} +0 -0
  332. /package/src/core/primitives/switch/__workshop__/{props.tsx → Props.tsx} +0 -0
  333. /package/src/core/primitives/text/__workshop__/{opticalAlignment.tsx → OpticalAlignment.tsx} +0 -0
  334. /package/src/core/primitives/textInput/__workshop__/{clearButton.tsx → ClearButton.tsx} +0 -0
  335. /package/src/core/primitives/textInput/__workshop__/{customValidity.tsx → CustomValidity.tsx} +0 -0
  336. /package/src/core/primitives/textInput/__workshop__/{readOnly.tsx → ReadOnly.tsx} +0 -0
  337. /package/src/core/primitives/textInput/__workshop__/{states.tsx → States.tsx} +0 -0
  338. /package/src/core/primitives/textInput/__workshop__/{tones.tsx → Tones.tsx} +0 -0
  339. /package/src/core/utils/boundaryElement/__workshop__/{plain.tsx → Plain.tsx} +0 -0
  340. /package/src/core/utils/elementQuery/{elementQuery.tsx → ElementQuery.tsx} +0 -0
  341. /package/src/core/utils/portal/__workshop__/{named.tsx → Named.tsx} +0 -0
@@ -0,0 +1,21 @@
1
+ import {UploadIcon} from '@sanity/icons'
2
+ import {Button, Flex} from '@sanity/ui'
3
+
4
+ import {sanityUploadButton} from './styles.css'
5
+
6
+ export default function SanityUploadButtonWorkaroundStory(): React.JSX.Element {
7
+ return (
8
+ <Flex align="center" height="fill" justify="center">
9
+ <Button
10
+ className={sanityUploadButton}
11
+ as="label"
12
+ htmlFor="file"
13
+ icon={UploadIcon}
14
+ tabIndex={0}
15
+ text="Upload"
16
+ >
17
+ <input type="file" />
18
+ </Button>
19
+ </Flex>
20
+ )
21
+ }
@@ -14,14 +14,22 @@ import {
14
14
  export default function StackedStory(): React.JSX.Element {
15
15
  const tones = Object.entries(WORKSHOP_BUTTON_TONE_OPTIONS)
16
16
  const disabled = useBoolean('Disabled', false)
17
+ // @ts-expect-error - TODO: fix this
17
18
  const fontSize = useSelect('Font size', WORKSHOP_TEXT_FONT_SIZE_OPTIONS, 2)
19
+ // @ts-expect-error - TODO: fix this
18
20
  const gap = useSelect('Gap', WORKSHOP_SPACE_OPTIONS, 3)
21
+ // @ts-expect-error - TODO: fix this
19
22
  const icon = useSelect('Icon', WORKSHOP_ICON_SYMBOL_OPTIONS, 'add-circle')
23
+ // @ts-expect-error - TODO: fix this
20
24
  const iconRight = useSelect('Icon (right)', WORKSHOP_ICON_SYMBOL_OPTIONS)
25
+ // @ts-expect-error - TODO: fix this
21
26
  const justify = useSelect('Justify', WORKSHOP_FLEX_JUSTIFY_OPTIONS, 'center')
27
+ // @ts-expect-error - TODO: fix this
22
28
  const mode = useSelect('Mode', WORKSHOP_BUTTON_MODE_OPTIONS, 'default')
23
29
  const onClick = useAction('onClick')
30
+ // @ts-expect-error - TODO: fix this
24
31
  const paddingX = useSelect('Padding X', WORKSHOP_SPACE_OPTIONS, 3)
32
+ // @ts-expect-error - TODO: fix this
25
33
  const paddingY = useSelect('Padding Y', WORKSHOP_SPACE_OPTIONS, 3)
26
34
  const selected = useBoolean('Selected', false)
27
35
 
@@ -34,15 +42,23 @@ export default function StackedStory(): React.JSX.Element {
34
42
  {tones.map(([title, tone]) => (
35
43
  <Button
36
44
  disabled={disabled}
45
+ // @ts-expect-error - TODO: fix this
37
46
  fontSize={fontSize}
47
+ // @ts-expect-error - TODO: fix this
38
48
  gap={gap}
49
+ // @ts-expect-error - TODO: fix this
39
50
  icon={icon && icons[icon]}
51
+ // @ts-expect-error - TODO: fix this
40
52
  iconRight={iconRight && icons[iconRight]}
53
+ // @ts-expect-error - TODO: fix this
41
54
  justify={justify}
42
55
  key={tone}
56
+ // @ts-expect-error - TODO: fix this
43
57
  mode={mode}
44
58
  onClick={onClick}
59
+ // @ts-expect-error - TODO: fix this
45
60
  paddingX={paddingX}
61
+ // @ts-expect-error - TODO: fix this
46
62
  paddingY={paddingY}
47
63
  selected={selected}
48
64
  text={title}
@@ -0,0 +1,11 @@
1
+ import {Button, Flex} from '@sanity/ui'
2
+
3
+ import {styledButton1} from './styles.css'
4
+
5
+ export default function StyledButton1Story(): React.JSX.Element {
6
+ return (
7
+ <Flex align="center" height="fill" justify="center">
8
+ <Button className={styledButton1} as="a" href="#" text="Test" />
9
+ </Flex>
10
+ )
11
+ }
@@ -8,57 +8,57 @@ const scope: WorkshopScope = {
8
8
  {
9
9
  name: 'props',
10
10
  title: 'Props',
11
- component: lazy(() => import('./props')),
11
+ component: lazy(() => import('./Props')),
12
12
  },
13
13
  {
14
14
  name: 'styled-1',
15
15
  title: 'Styled #1',
16
- component: lazy(() => import('./styled1')),
17
- },
18
- {
19
- name: 'styled-2',
20
- title: 'Styled #2',
21
- component: lazy(() => import('./styled2')),
16
+ component: lazy(() => import('./Styled1')),
22
17
  },
23
18
  {
24
19
  name: 'stacked',
25
20
  title: 'Stacked',
26
- component: lazy(() => import('./stacked')),
21
+ component: lazy(() => import('./Stacked')),
27
22
  },
28
23
  {
29
24
  name: 'custom',
30
25
  title: 'Custom',
31
- component: lazy(() => import('./custom')),
26
+ component: lazy(() => import('./Custom')),
32
27
  },
33
28
  {
34
29
  name: 'mixed-children',
35
30
  title: 'Mixed children',
36
- component: lazy(() => import('./mixedChildren')),
31
+ component: lazy(() => import('./MixedChildren')),
37
32
  },
38
33
  {
39
34
  name: 'upload-button',
40
35
  title: 'Upload button',
41
- component: lazy(() => import('./uploadButton')),
36
+ component: lazy(() => import('./UploadButton')),
42
37
  },
43
38
  {
44
39
  name: 'sanity-upload-button-workaround',
45
40
  title: 'SanityUploadButtonWorkaroundStory',
46
- component: lazy(() => import('./sanityUploadButton')),
41
+ component: lazy(() => import('./SanityUploadButton')),
47
42
  },
48
43
  {
49
44
  name: 'custom-icons',
50
45
  title: 'Custom icons',
51
- component: lazy(() => import('./customIcons')),
46
+ component: lazy(() => import('./CustomIcons')),
52
47
  },
53
48
  {
54
49
  name: 'disabled',
55
50
  title: 'Disabled',
56
- component: lazy(() => import('./disabled')),
51
+ component: lazy(() => import('./Disabled')),
57
52
  },
58
53
  {
59
54
  name: 'text-overflow',
60
55
  title: 'Text overflow',
61
- component: lazy(() => import('./textOverflow')),
56
+ component: lazy(() => import('./TextOverflow')),
57
+ },
58
+ {
59
+ name: 'data-props',
60
+ title: 'Data props',
61
+ component: lazy(() => import('./DataProps')),
62
62
  },
63
63
  ],
64
64
  }
@@ -0,0 +1,30 @@
1
+ import {globalStyle, style} from '@vanilla-extract/css'
2
+
3
+ export const sanityUploadButton: string = style({})
4
+
5
+ globalStyle(`${sanityUploadButton} input`, {
6
+ appearance: 'none',
7
+ overflow: ['hidden', 'clip'],
8
+ top: 0,
9
+ left: 0,
10
+ height: '100%',
11
+ opacity: 0,
12
+ position: 'absolute',
13
+ maxWidth: 0,
14
+ width: ['100%', '-moz-available', '-webkit-fill-available', 'stretch'],
15
+ })
16
+
17
+ globalStyle(`${sanityUploadButton} > span:nth-child(2)`, {
18
+ width: 0,
19
+ flex: 'none',
20
+ padding: 0,
21
+ })
22
+
23
+ export const styledButton1: string = style({
24
+ selectors: {
25
+ '&:hover': {
26
+ backgroundColor: 'red',
27
+ boxShadow: 'none',
28
+ },
29
+ },
30
+ })
@@ -1,10 +1,10 @@
1
1
  import {card, type CardStyleProps} from '@sanity/ui/css'
2
- import {useContext} from 'react'
2
+ import {use} from 'react'
3
3
 
4
4
  import type {Props} from '../../types'
5
- import {Box, type BoxElementType, type BoxOwnProps} from '../box/box'
6
- import {CardContext} from './cardContext'
7
- import {CardProvider} from './cardProvider'
5
+ import {Box, type BoxElementType, type BoxOwnProps} from '../box/Box'
6
+ import {CardContext} from './CardContext'
7
+ import {CardProvider} from './CardProvider'
8
8
 
9
9
  /** @public */
10
10
  export const DEFAULT_CARD_ELEMENT = 'div'
@@ -47,7 +47,6 @@ export function Card<E extends CardElementType = typeof DEFAULT_CARD_ELEMENT>(
47
47
  __unstable_focusRing: focusRing = false,
48
48
  as = DEFAULT_CARD_ELEMENT,
49
49
  className,
50
- disabled,
51
50
  pressed,
52
51
  radius = 0,
53
52
  scheme: schemeProp,
@@ -57,7 +56,7 @@ export function Card<E extends CardElementType = typeof DEFAULT_CARD_ELEMENT>(
57
56
  ...rest
58
57
  } = props as CardProps<typeof DEFAULT_CARD_ELEMENT>
59
58
 
60
- const parent = useContext(CardContext)
59
+ const parent = use(CardContext)
61
60
  const tone = toneProp === 'inherit' ? parent?.tone : toneProp
62
61
  const scheme = schemeProp === undefined ? parent?.scheme : schemeProp
63
62
 
@@ -72,10 +71,11 @@ export function Card<E extends CardElementType = typeof DEFAULT_CARD_ELEMENT>(
72
71
  tone,
73
72
  })}
74
73
  data-checkered={checkered ? '' : undefined}
75
- data-disabled={disabled ? '' : undefined}
76
- data-focus-ring={focusRing ? '' : undefined}
77
- data-pressed={pressed ? '' : undefined}
78
- data-selected={selected ? '' : undefined}
74
+ // Extract the disabled prop without removing it from `...rest` so that the underlying <button> or <a> has `[disabled]` when needed
75
+ data-disabled={props.disabled ? '' : props['data-disabled']}
76
+ data-focus-ring={focusRing ? '' : props['data-focus-ring']}
77
+ data-pressed={pressed ? '' : props['data-pressed']}
78
+ data-selected={selected ? '' : props['data-selected']}
79
79
  radius={radius}
80
80
  style={style}
81
81
  />
@@ -7,4 +7,4 @@ import type {CardContextValue} from './types'
7
7
  * @internal
8
8
  */
9
9
  export const CardContext: Context<CardContextValue | null> =
10
- createGlobalScopedContext<CardContextValue | null>('@sanity/ui/v3/card', null)
10
+ createGlobalScopedContext<CardContextValue | null>('@sanity/ui/v4/card', null)
@@ -1,7 +1,7 @@
1
1
  import type {CardTone, ColorScheme} from '@sanity/ui/theme'
2
- import {type ReactNode, useMemo} from 'react'
2
+ import {type ReactNode} from 'react'
3
3
 
4
- import {CardContext} from './cardContext'
4
+ import {CardContext} from './CardContext'
5
5
  import type {_CardCompatProviderComponent} from './types'
6
6
 
7
7
  /** @public */
@@ -14,14 +14,5 @@ export function CardProvider(props: {
14
14
  }): React.JSX.Element {
15
15
  const {children, tone, scheme, unstable_CompatProvider} = props
16
16
 
17
- return (
18
- <CardContext.Provider
19
- value={useMemo(
20
- () => ({tone, scheme, unstable_CompatProvider}),
21
- [tone, scheme, unstable_CompatProvider],
22
- )}
23
- >
24
- {children}
25
- </CardContext.Provider>
26
- )
17
+ return <CardContext value={{tone, scheme, unstable_CompatProvider}}>{children}</CardContext>
27
18
  }
@@ -0,0 +1,30 @@
1
+ import {Card, Stack, Text} from '@sanity/ui'
2
+ import type {CardTone} from '@sanity/ui/theme'
3
+ import {useSelect} from '@sanity/ui-workshop'
4
+
5
+ import {WORKSHOP_CARD_TONE_OPTIONS} from '$workshop'
6
+
7
+ export default function DataPropsStory(): React.JSX.Element {
8
+ // @ts-expect-error - TODO: fix this
9
+ const tone = useSelect('Tone', WORKSHOP_CARD_TONE_OPTIONS, 'default') as CardTone | undefined
10
+
11
+ return (
12
+ <Stack gap={1} padding={4}>
13
+ <Card as="button" data-enabled="" padding={3} tone={tone}>
14
+ <Text>Card</Text>
15
+ </Card>
16
+ <Card as="button" data-hovered="" padding={3} tone={tone}>
17
+ <Text>Card</Text>
18
+ </Card>
19
+ <Card as="button" data-pressed="" padding={3} tone={tone}>
20
+ <Text>Card</Text>
21
+ </Card>
22
+ <Card as="button" data-selected="" padding={3} tone={tone}>
23
+ <Text>Card</Text>
24
+ </Card>
25
+ <Card as="button" data-disabled="" padding={3} tone={tone}>
26
+ <Text>Card</Text>
27
+ </Card>
28
+ </Stack>
29
+ )
30
+ }
@@ -10,30 +10,40 @@ import {
10
10
  } from '$workshop'
11
11
 
12
12
  export default function PropsStory(): React.JSX.Element {
13
+ // @ts-expect-error - TODO: fix this
13
14
  const as = useSelect('As', WORKSHOP_CARD_AS_OPTIONS, 'div')
14
15
  const border = useBoolean('Border', false)
15
16
  const checkered = useBoolean('Checkered', false)
16
17
  const muted = useBoolean('Muted', false)
18
+ // @ts-expect-error - TODO: fix this
17
19
  const padding = useSelect('Padding', WORKSHOP_SPACE_OPTIONS, 3)
18
20
  const pressed = useBoolean('Pressed', false)
21
+ // @ts-expect-error - TODO: fix this
19
22
  const radius = useSelect('Radius', WORKSHOP_RADIUS_OPTIONS, 0)
20
23
  const selected = useBoolean('Selected', false)
24
+ // @ts-expect-error - TODO: fix this
21
25
  const shadow = useSelect('Shadow', WORKSHOP_SHADOW_OPTIONS, 0)
26
+ // @ts-expect-error - TODO: fix this
22
27
  const tone = useSelect('Tone', WORKSHOP_CARD_TONE_OPTIONS, 'default')
23
28
 
24
29
  return (
25
30
  <Flex align="center" height="fill" justify="center" padding={4} sizing="border">
26
31
  <Card
27
32
  __unstable_checkered={checkered}
33
+ // @ts-expect-error - TODO: fix this
28
34
  as={as}
29
35
  border={border}
30
36
  muted={muted}
31
37
  onClick={useAction('onClick')}
38
+ // @ts-expect-error - TODO: fix this
32
39
  padding={padding}
33
40
  pressed={pressed}
41
+ // @ts-expect-error - TODO: fix this
34
42
  radius={radius}
35
43
  selected={selected}
44
+ // @ts-expect-error - TODO: fix this
36
45
  shadow={shadow}
46
+ // @ts-expect-error - TODO: fix this
37
47
  tone={tone}
38
48
  >
39
49
  <Stack gap={3}>
@@ -38,7 +38,7 @@ export default function SelectedStory(): React.JSX.Element {
38
38
  )
39
39
  }
40
40
 
41
- function Preview({selected}: {selected: boolean}) {
41
+ function Preview({selected}: {selected: boolean | undefined}) {
42
42
  return (
43
43
  <Flex>
44
44
  <Box flex={1}>
@@ -1,14 +1,11 @@
1
1
  import {Card, Flex, Text} from '@sanity/ui'
2
- import {styled} from 'styled-components'
3
-
4
- const StyledCard = styled(Card).attrs({forwardedAs: 'ol'})``
5
2
 
6
3
  export default function StyledCardStory(): React.JSX.Element {
7
4
  return (
8
5
  <Flex align="center" height="fill" justify="center">
9
- <StyledCard>
6
+ <Card as="ol">
10
7
  <Text as="li">Styled</Text>
11
- </StyledCard>
8
+ </Card>
12
9
  </Flex>
13
10
  )
14
11
  }
@@ -5,15 +5,16 @@ const scope: WorkshopScope = {
5
5
  name: 'primitives/card',
6
6
  title: 'Card',
7
7
  stories: [
8
- {name: 'props', title: 'Props', component: lazy(() => import('./props'))},
9
- {name: 'styled', title: 'Styled', component: lazy(() => import('./styled'))},
10
- {name: 'interactive', title: 'Interactive', component: lazy(() => import('./interactive'))},
11
- {name: 'tones', title: 'Tones', component: lazy(() => import('./tones'))},
12
- {name: 'as-button', title: 'As button', component: lazy(() => import('./asButton'))},
13
- {name: 'list-nav', title: 'List navigation', component: lazy(() => import('./listNavigation'))},
14
- {name: 'checkered', title: 'Checkered', component: lazy(() => import('./checkered'))},
15
- {name: 'as-component', title: 'As component', component: lazy(() => import('./asComponent'))},
16
- {name: 'selected', title: 'Selected', component: lazy(() => import('./selected'))},
8
+ {name: 'props', title: 'Props', component: lazy(() => import('./Props'))},
9
+ {name: 'styled', title: 'Styled', component: lazy(() => import('./Styled'))},
10
+ {name: 'interactive', title: 'Interactive', component: lazy(() => import('./Interactive'))},
11
+ {name: 'tones', title: 'Tones', component: lazy(() => import('./Tones'))},
12
+ {name: 'as-button', title: 'As button', component: lazy(() => import('./AsButton'))},
13
+ {name: 'list-nav', title: 'List navigation', component: lazy(() => import('./ListNavigation'))},
14
+ {name: 'checkered', title: 'Checkered', component: lazy(() => import('./Checkered'))},
15
+ {name: 'as-component', title: 'As component', component: lazy(() => import('./AsComponent'))},
16
+ {name: 'selected', title: 'Selected', component: lazy(() => import('./Selected'))},
17
+ {name: 'data-props', title: 'Data props', component: lazy(() => import('./DataProps'))},
17
18
  ],
18
19
  }
19
20
 
@@ -1,15 +1,20 @@
1
- import {useContext} from 'react'
1
+ import {use} from 'react'
2
2
 
3
- import {CardContext} from './cardContext'
3
+ import {CardContext} from './CardContext'
4
4
  import type {CardContextValue} from './types'
5
5
 
6
6
  /** @public */
7
7
  export function useCard(): CardContextValue {
8
- const card = useContext(CardContext)
8
+ const card = use(CardContext)
9
9
 
10
- if (!card) {
11
- throw new Error('useCard(): missing context value')
12
- }
10
+ assertCardContext(card)
13
11
 
14
12
  return card
15
13
  }
14
+
15
+ /** @internal */
16
+ export function assertCardContext(card: CardContextValue | null): asserts card is CardContextValue {
17
+ if (!card) {
18
+ throw new Error('useCard(): missing context value', {cause: card})
19
+ }
20
+ }
@@ -5,10 +5,10 @@ const scope: WorkshopScope = {
5
5
  name: 'primitives/checkbox',
6
6
  title: 'Checkbox',
7
7
  stories: [
8
- {name: 'props', title: 'Props', component: lazy(() => import('./props'))},
9
- {name: 'example', title: 'Example', component: lazy(() => import('./example'))},
10
- {name: 'read-only', title: 'Read-only', component: lazy(() => import('./readOnly'))},
11
- {name: 'multiple-tones', title: 'Multiple tones', component: lazy(() => import('./tones'))},
8
+ {name: 'props', title: 'Props', component: lazy(() => import('./Props'))},
9
+ {name: 'example', title: 'Example', component: lazy(() => import('./Example'))},
10
+ {name: 'read-only', title: 'Read-only', component: lazy(() => import('./ReadOnly'))},
11
+ {name: 'multiple-tones', title: 'Multiple tones', component: lazy(() => import('./Tones'))},
12
12
  ],
13
13
  }
14
14
 
@@ -4,7 +4,7 @@ import {lazy, Suspense} from 'react'
4
4
 
5
5
  import type {ComponentType, Props} from '../../types'
6
6
 
7
- const LazyRefractor = lazy(() => import('./refractor'))
7
+ const LazyRefractor = lazy(() => import('./Refractor'))
8
8
 
9
9
  /** @public */
10
10
  export const DEFAULT_CODE_ELEMENT = 'pre'
@@ -31,6 +31,14 @@ export function Code<E extends CodeElementType = typeof DEFAULT_CODE_ELEMENT>(
31
31
  children,
32
32
  className,
33
33
  language: languageProp,
34
+ margin,
35
+ marginX,
36
+ marginY,
37
+ marginTop,
38
+ marginRight,
39
+ marginBottom,
40
+ marginLeft,
41
+ maxWidth,
34
42
  size = 2,
35
43
  weight = 'regular',
36
44
  ...rest
@@ -39,7 +47,23 @@ export function Code<E extends CodeElementType = typeof DEFAULT_CODE_ELEMENT>(
39
47
  const language = typeof languageProp === 'string' ? languageProp : undefined
40
48
 
41
49
  return (
42
- <Element data-ui="Code" {...rest} className={code({className, size, weight})}>
50
+ <Element
51
+ data-ui="Code"
52
+ {...rest}
53
+ className={code({
54
+ className,
55
+ margin,
56
+ marginX,
57
+ marginY,
58
+ marginTop,
59
+ marginRight,
60
+ marginBottom,
61
+ marginLeft,
62
+ maxWidth,
63
+ size,
64
+ weight,
65
+ })}
66
+ >
43
67
  <Suspense fallback={<code>{children}</code>}>
44
68
  <LazyRefractor language={language} value={children} />
45
69
  </Suspense>
@@ -6,11 +6,16 @@ import {WORKSHOP_CODE_LANGUAGE_OPTIONS, WORKSHOP_TEXT_FONT_SIZE_OPTIONS} from '$
6
6
  export default function PropsStory(): React.JSX.Element {
7
7
  const code = useText('Code', `console.log('Hello, world')`)
8
8
  const language = useSelect('Language', WORKSHOP_CODE_LANGUAGE_OPTIONS, 'typescript')
9
+ // @ts-expect-error - TODO: fix this
9
10
  const size = useSelect('Size', WORKSHOP_TEXT_FONT_SIZE_OPTIONS, 1)
10
11
 
11
12
  return (
12
13
  <Box padding={[4, 5, 6]}>
13
- <Code language={language} size={size}>
14
+ <Code
15
+ language={language}
16
+ // @ts-expect-error - TODO: fix this
17
+ size={size}
18
+ >
14
19
  {code}
15
20
  </Code>
16
21
  </Box>
@@ -8,12 +8,12 @@ const scope: WorkshopScope = {
8
8
  {
9
9
  name: 'props',
10
10
  title: 'Props',
11
- component: lazy(() => import('./props')),
11
+ component: lazy(() => import('./Props')),
12
12
  },
13
13
  {
14
14
  name: 'optical-alignment',
15
15
  title: 'Optical alignment',
16
- component: lazy(() => import('./opticalAlignment')),
16
+ component: lazy(() => import('./OpticalAlignment')),
17
17
  },
18
18
  ],
19
19
  }
@@ -1,7 +1,7 @@
1
1
  import {container, type ContainerStyleProps} from '@sanity/ui/css'
2
2
 
3
3
  import type {Props} from '../../types'
4
- import {Box, type BoxElementType, type BoxOwnProps} from '../box/box'
4
+ import {Box, type BoxElementType, type BoxOwnProps} from '../box/Box'
5
5
 
6
6
  /** @public */
7
7
  export const DEFAULT_CONTAINER_ELEMENT = 'div'
@@ -4,11 +4,16 @@ import {useAction, useSelect} from '@sanity/ui-workshop'
4
4
  import {WORKSHOP_CONTAINER_WIDTH_OPTIONS} from '$workshop'
5
5
 
6
6
  export default function PlainStory(): React.JSX.Element {
7
+ // @ts-expect-error - TODO: fix this
7
8
  const width = useSelect('Width', WORKSHOP_CONTAINER_WIDTH_OPTIONS, 0)
8
9
 
9
10
  return (
10
11
  <Flex align="center" height="fill" justify="center" padding={[4, 5, 6]} sizing="border">
11
- <Container onClick={useAction('onClick')} width={width}>
12
+ <Container
13
+ onClick={useAction('onClick')}
14
+ // @ts-expect-error - TODO: fix this
15
+ width={width}
16
+ >
12
17
  <Card padding={4} shadow={1}>
13
18
  <Text size={1}>
14
19
  Container with <code>max-width={width}</code>
@@ -4,7 +4,7 @@ import {lazy} from 'react'
4
4
  const scope: WorkshopScope = {
5
5
  name: 'primitives/container',
6
6
  title: 'Container',
7
- stories: [{name: 'plain', title: 'Plain', component: lazy(() => import('./example'))}],
7
+ stories: [{name: 'plain', title: 'Plain', component: lazy(() => import('./Example'))}],
8
8
  }
9
9
 
10
10
  export default scope
@@ -7,7 +7,7 @@ import type {
7
7
  } from '@sanity/ui/css'
8
8
 
9
9
  import type {Props} from '../../types'
10
- import {Box, type BoxElementType, type BoxOwnProps} from '../box/box'
10
+ import {Box, type BoxElementType, type BoxOwnProps} from '../box/Box'
11
11
 
12
12
  /** @public */
13
13
  export const DEFAULT_FLEX_ELEMENT = 'div'
@@ -1,34 +1,32 @@
1
1
  import {Card, Code, Flex} from '@sanity/ui'
2
2
  import {useSelect} from '@sanity/ui-workshop'
3
- import {styled} from 'styled-components'
4
3
 
5
4
  import {WORKSHOP_FLEX_DIRECTION_OPTIONS} from '$workshop'
6
5
 
7
- const DebugCard = styled(Card)`
8
- outline: 1px solid red;
9
- &:not([hidden]) {
10
- display: flex;
11
- }
12
- align-items: center;
13
- justify-content: center;
14
- `
6
+ import {debugCard} from './styles.css'
15
7
 
16
8
  export default function ExampleStory(): React.JSX.Element {
9
+ // @ts-expect-error - TODO: fix this
17
10
  const direction = useSelect('Direction', WORKSHOP_FLEX_DIRECTION_OPTIONS, 'row')
18
11
 
19
12
  return (
20
- <Flex direction={direction} height="fill" style={{width: '100%'}}>
21
- <DebugCard flex={1}>
13
+ <Flex
14
+ // @ts-expect-error - TODO: fix this
15
+ direction={direction}
16
+ height="fill"
17
+ style={{width: '100%'}}
18
+ >
19
+ <Card className={debugCard} flex={1}>
22
20
  <Code size={1}>1</Code>
23
- </DebugCard>
21
+ </Card>
24
22
 
25
- <DebugCard flex={[1, 2, 3]}>
23
+ <Card className={debugCard} flex={[1, 2, 3]}>
26
24
  <Code size={1}>[1,2,3]</Code>
27
- </DebugCard>
25
+ </Card>
28
26
 
29
- <DebugCard flex={['none', 'none', 1]}>
27
+ <Card className={debugCard} flex={['none', 'none', 1]}>
30
28
  <Code size={1}>['none', 'none', 1]</Code>
31
- </DebugCard>
29
+ </Card>
32
30
  </Flex>
33
31
  )
34
32
  }
@@ -5,8 +5,8 @@ const scope: WorkshopScope = {
5
5
  name: 'primitives/flex',
6
6
  title: 'Flex',
7
7
  stories: [
8
- {name: 'plain', title: 'Plain', component: lazy(() => import('./example'))},
9
- {name: 'gap', title: 'Gap', component: lazy(() => import('./gap'))},
8
+ {name: 'plain', title: 'Plain', component: lazy(() => import('./Example'))},
9
+ {name: 'gap', title: 'Gap', component: lazy(() => import('./Gap'))},
10
10
  ],
11
11
  }
12
12
 
@@ -0,0 +1,12 @@
1
+ import {style} from '@vanilla-extract/css'
2
+
3
+ export const debugCard: string = style({
4
+ outline: '1px solid red',
5
+ alignItems: 'center',
6
+ justifyContent: 'center',
7
+ selectors: {
8
+ '&:not([hidden])': {
9
+ display: 'flex',
10
+ },
11
+ },
12
+ })