@sanity/ui 3.0.0-static.32 → 3.0.0-static.34

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 (582) hide show
  1. package/README.md +1 -1
  2. package/dist/_chunks-cjs/_visual-editing.cjs +269 -378
  3. package/dist/_chunks-cjs/_visual-editing.cjs.map +1 -1
  4. package/dist/_chunks-cjs/refractor.cjs.map +1 -1
  5. package/dist/_chunks-es/_visual-editing.js +270 -381
  6. package/dist/_chunks-es/_visual-editing.js.map +1 -1
  7. package/dist/_chunks-es/refractor.js.map +1 -1
  8. package/dist/_visual-editing.cjs +0 -2
  9. package/dist/_visual-editing.cjs.map +1 -1
  10. package/dist/_visual-editing.d.cts +2 -894
  11. package/dist/_visual-editing.d.ts +2 -894
  12. package/dist/_visual-editing.js +2 -4
  13. package/dist/css/index.cjs +13 -13
  14. package/dist/css/index.cjs.map +1 -1
  15. package/dist/css/index.css +1 -1
  16. package/dist/css/index.d.cts +805 -14697
  17. package/dist/css/index.d.ts +805 -14697
  18. package/dist/css/index.js +13 -13
  19. package/dist/css/index.js.map +1 -1
  20. package/dist/index.cjs +242 -367
  21. package/dist/index.cjs.map +1 -1
  22. package/dist/index.d.cts +990 -3085
  23. package/dist/index.d.ts +990 -3085
  24. package/dist/index.js +244 -361
  25. package/dist/index.js.map +1 -1
  26. package/dist/portalProvider-DgNIVviV.d.ts +575 -0
  27. package/dist/theme.cjs +367 -4288
  28. package/dist/theme.cjs.map +1 -1
  29. package/dist/theme.d.cts +272 -1806
  30. package/dist/theme.d.ts +272 -1806
  31. package/dist/theme.js +371 -4292
  32. package/dist/theme.js.map +1 -1
  33. package/exports/_visual-editing.ts +0 -2
  34. package/package.json +8 -9
  35. package/src/core/Root.tsx +6 -4
  36. package/src/core/RootProvider.tsx +4 -4
  37. package/src/core/__workshop__/boundary.tsx +1 -1
  38. package/src/core/__workshop__/index.ts +5 -3
  39. package/src/core/components/autocomplete/__workshop__/async.tsx +1 -1
  40. package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +2 -2
  41. package/src/core/components/autocomplete/__workshop__/custom.tsx +2 -2
  42. package/src/core/components/autocomplete/__workshop__/example.tsx +2 -2
  43. package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +1 -1
  44. package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +1 -1
  45. package/src/core/components/autocomplete/__workshop__/index.ts +5 -3
  46. package/src/core/components/autocomplete/__workshop__/mock/apiStore.ts +1 -1
  47. package/src/core/components/autocomplete/__workshop__/mock/countries.ts +1 -1
  48. package/src/core/components/autocomplete/autocomplete.tsx +2 -2
  49. package/src/core/components/autocomplete/autocompleteOption.tsx +2 -2
  50. package/src/core/components/autocomplete/constants.ts +2 -2
  51. package/src/core/components/breadcrumbs/__workshop__/example.tsx +1 -1
  52. package/src/core/components/breadcrumbs/__workshop__/index.ts +5 -3
  53. package/src/core/components/breadcrumbs/breadcrumbs.tsx +6 -11
  54. package/src/core/components/dialog/__workshop__/activate.tsx +1 -1
  55. package/src/core/components/dialog/__workshop__/autoFocus.tsx +1 -1
  56. package/src/core/components/dialog/__workshop__/index.ts +5 -3
  57. package/src/core/components/dialog/__workshop__/layering.tsx +1 -1
  58. package/src/core/components/dialog/__workshop__/nested.tsx +2 -3
  59. package/src/core/components/dialog/__workshop__/onScroll.tsx +1 -1
  60. package/src/core/components/dialog/__workshop__/panes.tsx +1 -1
  61. package/src/core/components/dialog/__workshop__/position.tsx +1 -1
  62. package/src/core/components/dialog/__workshop__/props.tsx +1 -1
  63. package/src/core/components/dialog/__workshop__/provider.tsx +1 -1
  64. package/src/core/components/dialog/__workshop__/wrapped.tsx +1 -1
  65. package/src/core/components/dialog/dialog.tsx +5 -6
  66. package/src/core/components/dialog/dialogCard.tsx +2 -2
  67. package/src/core/components/dialog/dialogContext.ts +3 -4
  68. package/src/core/components/dialog/dialogProvider.tsx +2 -2
  69. package/src/core/components/hotkeys/__workshop__/index.ts +5 -3
  70. package/src/core/components/hotkeys/__workshop__/plain.tsx +1 -1
  71. package/src/core/components/hotkeys/hotkeys.tsx +4 -15
  72. package/src/core/components/menu/__workshop__/asComponent.tsx +1 -1
  73. package/src/core/components/menu/__workshop__/avatarMenu.tsx +1 -1
  74. package/src/core/components/menu/__workshop__/closableMenuButton.tsx +1 -1
  75. package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +3 -3
  76. package/src/core/components/menu/__workshop__/customMenuItem.tsx +1 -1
  77. package/src/core/components/menu/__workshop__/customSelectedState.tsx +1 -1
  78. package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +1 -1
  79. package/src/core/components/menu/__workshop__/groups.tsx +1 -1
  80. package/src/core/components/menu/__workshop__/index.ts +5 -3
  81. package/src/core/components/menu/__workshop__/menuButton.tsx +2 -2
  82. package/src/core/components/menu/__workshop__/menuGroupRight.tsx +1 -1
  83. package/src/core/components/menu/__workshop__/nestedMenu.tsx +1 -1
  84. package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +1 -1
  85. package/src/core/components/menu/__workshop__/selectedItem.tsx +1 -1
  86. package/src/core/components/menu/__workshop__/shouldFocus.tsx +1 -1
  87. package/src/core/components/menu/__workshop__/tones.tsx +3 -3
  88. package/src/core/components/menu/__workshop__/withoutArrow.tsx +1 -1
  89. package/src/core/components/menu/menu.test.tsx +2 -1
  90. package/src/core/components/menu/menu.tsx +7 -22
  91. package/src/core/components/menu/menuButton.tsx +4 -50
  92. package/src/core/components/menu/menuContext.ts +3 -15
  93. package/src/core/components/menu/menuDivider.tsx +2 -2
  94. package/src/core/components/menu/menuGroup.tsx +10 -15
  95. package/src/core/components/menu/menuItem.tsx +7 -18
  96. package/src/core/components/tab/__workshop__/example.tsx +1 -1
  97. package/src/core/components/tab/__workshop__/index.ts +5 -3
  98. package/src/core/components/tab/tab.tsx +6 -4
  99. package/src/core/components/tab/tabList.tsx +3 -8
  100. package/src/core/components/tab/tabPanel.tsx +2 -2
  101. package/src/core/components/toast/__workshop__/hook.tsx +1 -1
  102. package/src/core/components/toast/__workshop__/index.ts +5 -3
  103. package/src/core/components/toast/__workshop__/toast.tsx +1 -1
  104. package/src/core/components/toast/toast.test.tsx +2 -1
  105. package/src/core/components/toast/toast.tsx +2 -2
  106. package/src/core/components/toast/toastContext.ts +4 -4
  107. package/src/core/components/toast/toastLayer.tsx +3 -3
  108. package/src/core/components/tree/__workshop__/basic.perf.ts +1 -1
  109. package/src/core/components/tree/__workshop__/basic.tsx +1 -1
  110. package/src/core/components/tree/__workshop__/index.ts +5 -3
  111. package/src/core/components/tree/__workshop__/tabFromElement.tsx +1 -1
  112. package/src/core/components/tree/tree.tsx +8 -9
  113. package/src/core/components/tree/treeContext.ts +4 -4
  114. package/src/core/components/tree/treeGroup.tsx +6 -8
  115. package/src/core/components/tree/treeItem.tsx +4 -4
  116. package/src/core/components/tree/types.ts +1 -1
  117. package/src/core/components/virtualList/__workshop__/changingProps.tsx +1 -1
  118. package/src/core/components/virtualList/__workshop__/elementScroll.tsx +1 -1
  119. package/src/core/components/virtualList/__workshop__/index.ts +5 -3
  120. package/src/core/components/virtualList/__workshop__/infiniteList.tsx +1 -1
  121. package/src/core/components/virtualList/__workshop__/windowScrolll.tsx +1 -1
  122. package/src/core/components/virtualList/virtualList.tsx +2 -2
  123. package/src/core/constants.ts +0 -18
  124. package/src/core/hooks/useMediaIndex/__workshop__/index.ts +5 -3
  125. package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +1 -1
  126. package/src/core/hooks/useMediaIndex/useMediaIndex.ts +6 -1
  127. package/src/core/index.ts +1 -24
  128. package/src/core/lib/createGlobalScopedContext.ts +1 -1
  129. package/src/core/lib/globalScope.ts +1 -1
  130. package/src/core/observers/elementSize.ts +1 -1
  131. package/src/core/primitives/arrow/arrow.tsx +2 -2
  132. package/src/core/primitives/avatar/__workshop__/asButton.tsx +1 -1
  133. package/src/core/primitives/avatar/__workshop__/index.ts +5 -3
  134. package/src/core/primitives/avatar/__workshop__/stack.tsx +1 -1
  135. package/src/core/primitives/avatar/__workshop__/withinButton.tsx +1 -1
  136. package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +1 -1
  137. package/src/core/primitives/avatar/avatar.tsx +3 -10
  138. package/src/core/primitives/avatar/avatarCounter.tsx +2 -2
  139. package/src/core/primitives/avatar/avatarStack.tsx +2 -4
  140. package/src/core/primitives/avatar/types.ts +0 -32
  141. package/src/core/primitives/badge/__workshop__/index.ts +5 -3
  142. package/src/core/primitives/badge/__workshop__/props.tsx +1 -1
  143. package/src/core/primitives/badge/__workshop__/tones.tsx +3 -3
  144. package/src/core/primitives/badge/badge.test.tsx +2 -1
  145. package/src/core/primitives/badge/badge.tsx +12 -11
  146. package/src/core/primitives/box/__workshop__/index.ts +5 -3
  147. package/src/core/primitives/box/__workshop__/props.tsx +1 -1
  148. package/src/core/primitives/box/__workshop__/responsive.tsx +1 -1
  149. package/src/core/primitives/box/box.tsx +28 -32
  150. package/src/core/primitives/button/__workshop__/custom.tsx +5 -5
  151. package/src/core/primitives/button/__workshop__/customIcons.tsx +1 -1
  152. package/src/core/primitives/button/__workshop__/disabled.tsx +3 -3
  153. package/src/core/primitives/button/__workshop__/index.ts +5 -3
  154. package/src/core/primitives/button/__workshop__/mixedChildren.tsx +1 -1
  155. package/src/core/primitives/button/__workshop__/props.tsx +1 -1
  156. package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +1 -1
  157. package/src/core/primitives/button/__workshop__/stacked.tsx +1 -1
  158. package/src/core/primitives/button/__workshop__/styled1.tsx +1 -1
  159. package/src/core/primitives/button/__workshop__/styled2.tsx +1 -1
  160. package/src/core/primitives/button/__workshop__/textOverflow.tsx +1 -1
  161. package/src/core/primitives/button/__workshop__/uploadButton.tsx +1 -1
  162. package/src/core/primitives/button/button.test.tsx +2 -1
  163. package/src/core/primitives/button/button.tsx +4 -7
  164. package/src/core/primitives/button/types.ts +0 -20
  165. package/src/core/primitives/card/__workshop__/asButton.tsx +2 -2
  166. package/src/core/primitives/card/__workshop__/asComponent.tsx +1 -1
  167. package/src/core/primitives/card/__workshop__/checkered.tsx +3 -3
  168. package/src/core/primitives/card/__workshop__/index.ts +5 -3
  169. package/src/core/primitives/card/__workshop__/interactive.tsx +1 -1
  170. package/src/core/primitives/card/__workshop__/listNavigation.tsx +1 -1
  171. package/src/core/primitives/card/__workshop__/props.tsx +1 -1
  172. package/src/core/primitives/card/__workshop__/selected.tsx +1 -1
  173. package/src/core/primitives/card/__workshop__/styled.tsx +1 -1
  174. package/src/core/primitives/card/__workshop__/tones.tsx +3 -3
  175. package/src/core/primitives/card/card.tsx +4 -2
  176. package/src/core/primitives/card/cardContext.ts +1 -1
  177. package/src/core/primitives/card/cardProvider.tsx +4 -4
  178. package/src/core/primitives/card/types.ts +5 -19
  179. package/src/core/primitives/checkbox/__workshop__/example.tsx +1 -1
  180. package/src/core/primitives/checkbox/__workshop__/index.ts +5 -3
  181. package/src/core/primitives/checkbox/__workshop__/props.tsx +1 -1
  182. package/src/core/primitives/checkbox/__workshop__/readOnly.tsx +1 -1
  183. package/src/core/primitives/checkbox/__workshop__/tones.tsx +3 -3
  184. package/src/core/primitives/checkbox/checkbox.tsx +2 -2
  185. package/src/core/primitives/code/__workshop__/index.ts +5 -3
  186. package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +1 -1
  187. package/src/core/primitives/code/__workshop__/props.tsx +1 -1
  188. package/src/core/primitives/code/code.tsx +4 -2
  189. package/src/core/primitives/code/refractor.tsx +1 -1
  190. package/src/core/primitives/container/__workshop__/example.tsx +1 -1
  191. package/src/core/primitives/container/__workshop__/index.ts +5 -3
  192. package/src/core/primitives/container/container.tsx +2 -2
  193. package/src/core/primitives/flex/__workshop__/example.tsx +1 -1
  194. package/src/core/primitives/flex/__workshop__/gap.tsx +1 -1
  195. package/src/core/primitives/flex/__workshop__/index.ts +5 -3
  196. package/src/core/primitives/flex/flex.tsx +4 -2
  197. package/src/core/primitives/grid/__workshop__/index.ts +5 -3
  198. package/src/core/primitives/grid/__workshop__/responsive.tsx +3 -3
  199. package/src/core/primitives/grid/grid.tsx +4 -2
  200. package/src/core/primitives/heading/__workshop__/index.ts +5 -3
  201. package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +1 -1
  202. package/src/core/primitives/heading/__workshop__/plain.tsx +1 -1
  203. package/src/core/primitives/heading/heading.tsx +2 -4
  204. package/src/core/primitives/inline/__workshop__/index.ts +5 -3
  205. package/src/core/primitives/inline/__workshop__/plain.tsx +1 -1
  206. package/src/core/primitives/inline/inline.tsx +4 -11
  207. package/src/core/primitives/kbd/__workshop__/index.ts +5 -3
  208. package/src/core/primitives/kbd/__workshop__/plain.tsx +1 -1
  209. package/src/core/primitives/kbd/kbd.tsx +4 -2
  210. package/src/core/primitives/label/__workshop__/index.ts +5 -3
  211. package/src/core/primitives/label/__workshop__/opticalAlignment.tsx +1 -1
  212. package/src/core/primitives/label/__workshop__/plain.tsx +1 -1
  213. package/src/core/primitives/label/label.tsx +2 -4
  214. package/src/core/primitives/layer/__workshop__/_debug.tsx +1 -1
  215. package/src/core/primitives/layer/__workshop__/index.ts +5 -3
  216. package/src/core/primitives/layer/__workshop__/multipleRoots.tsx +1 -1
  217. package/src/core/primitives/layer/__workshop__/nested.tsx +1 -1
  218. package/src/core/primitives/layer/__workshop__/responsiveZOffset.tsx +1 -1
  219. package/src/core/primitives/layer/layer.test.tsx +2 -1
  220. package/src/core/primitives/layer/layer.tsx +2 -2
  221. package/src/core/primitives/layer/layerCard.tsx +2 -2
  222. package/src/core/primitives/layer/layerContext.ts +4 -4
  223. package/src/core/primitives/layer/layerProvider.tsx +2 -10
  224. package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +2 -2
  225. package/src/core/primitives/popover/__workshop__/MarginsStory.tsx +1 -1
  226. package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +1 -1
  227. package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +1 -1
  228. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +2 -2
  229. package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +3 -3
  230. package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +3 -3
  231. package/src/core/primitives/popover/__workshop__/index.ts +5 -3
  232. package/src/core/primitives/popover/popover.tsx +34 -17
  233. package/src/core/primitives/popover/popoverLayer.tsx +2 -2
  234. package/src/core/primitives/radio/__workshop__/example.tsx +1 -1
  235. package/src/core/primitives/radio/__workshop__/index.ts +5 -3
  236. package/src/core/primitives/radio/__workshop__/plain.tsx +1 -1
  237. package/src/core/primitives/radio/radio.tsx +2 -2
  238. package/src/core/primitives/select/__workshop__/index.ts +5 -3
  239. package/src/core/primitives/select/__workshop__/plain.tsx +1 -1
  240. package/src/core/primitives/select/__workshop__/readOnly.tsx +1 -1
  241. package/src/core/primitives/select/select.tsx +5 -15
  242. package/src/core/primitives/selectable/selectable.tsx +4 -4
  243. package/src/core/primitives/skeleton/__workshop__/delay.tsx +1 -1
  244. package/src/core/primitives/skeleton/__workshop__/index.ts +5 -3
  245. package/src/core/primitives/skeleton/__workshop__/skeleton.tsx +2 -2
  246. package/src/core/primitives/skeleton/codeSkeleton.tsx +2 -2
  247. package/src/core/primitives/skeleton/headingSkeleton.tsx +2 -2
  248. package/src/core/primitives/skeleton/labelSkeleton.tsx +2 -2
  249. package/src/core/primitives/skeleton/skeleton.tsx +2 -2
  250. package/src/core/primitives/skeleton/textSkeleton.tsx +2 -2
  251. package/src/core/primitives/spinner/__workshop__/Props.tsx +1 -1
  252. package/src/core/primitives/spinner/__workshop__/index.ts +5 -3
  253. package/src/core/primitives/spinner/animatedSpinnerIcon.tsx +2 -2
  254. package/src/core/primitives/spinner/spinner.tsx +2 -2
  255. package/src/core/primitives/srOnly/srOnly.tsx +2 -2
  256. package/src/core/primitives/stack/__workshop__/index.ts +5 -3
  257. package/src/core/primitives/stack/__workshop__/plain.tsx +1 -1
  258. package/src/core/primitives/stack/stack.tsx +5 -10
  259. package/src/core/primitives/switch/__workshop__/example.tsx +1 -1
  260. package/src/core/primitives/switch/__workshop__/index.ts +5 -3
  261. package/src/core/primitives/switch/__workshop__/props.tsx +1 -1
  262. package/src/core/primitives/switch/switch.tsx +2 -2
  263. package/src/core/primitives/text/__workshop__/colored.tsx +1 -1
  264. package/src/core/primitives/text/__workshop__/example.tsx +1 -1
  265. package/src/core/primitives/text/__workshop__/index.ts +5 -3
  266. package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +1 -1
  267. package/src/core/primitives/text/text.tsx +4 -4
  268. package/src/core/primitives/textArea/__workshop__/index.ts +5 -3
  269. package/src/core/primitives/textArea/__workshop__/plain.tsx +1 -1
  270. package/src/core/primitives/textArea/textArea.tsx +5 -15
  271. package/src/core/primitives/textInput/__workshop__/clearButton.tsx +1 -1
  272. package/src/core/primitives/textInput/__workshop__/customValidity.tsx +1 -1
  273. package/src/core/primitives/textInput/__workshop__/index.ts +5 -3
  274. package/src/core/primitives/textInput/__workshop__/plain.tsx +1 -1
  275. package/src/core/primitives/textInput/__workshop__/readOnly.tsx +1 -1
  276. package/src/core/primitives/textInput/__workshop__/states.tsx +1 -1
  277. package/src/core/primitives/textInput/__workshop__/tones.tsx +1 -1
  278. package/src/core/primitives/textInput/__workshop__/typed.tsx +1 -1
  279. package/src/core/primitives/textInput/textInput.tsx +6 -9
  280. package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +1 -1
  281. package/src/core/primitives/tooltip/__workshop__/index.ts +5 -3
  282. package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +1 -1
  283. package/src/core/primitives/tooltip/__workshop__/props.tsx +1 -1
  284. package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +1 -1
  285. package/src/core/primitives/tooltip/constants.ts +1 -1
  286. package/src/core/primitives/tooltip/tooltip.test.tsx +2 -4
  287. package/src/core/primitives/tooltip/tooltip.tsx +5 -9
  288. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +4 -2
  289. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +5 -3
  290. package/src/core/primitives/tooltip/tooltipLayer.tsx +2 -2
  291. package/src/core/{types/props.ts → types.ts} +27 -0
  292. package/src/core/utils/boundaryElement/__workshop__/index.ts +5 -3
  293. package/src/core/utils/boundaryElement/__workshop__/plain.tsx +1 -1
  294. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +2 -1
  295. package/src/core/utils/boundaryElement/boundaryElementContext.ts +7 -4
  296. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +2 -2
  297. package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +1 -1
  298. package/src/core/utils/elementQuery/__workshop__/index.ts +5 -3
  299. package/src/core/utils/elementQuery/elementQuery.tsx +2 -2
  300. package/src/core/utils/getElementRef.ts +1 -1
  301. package/src/core/utils/portal/__workshop__/index.ts +5 -3
  302. package/src/core/utils/portal/__workshop__/named.tsx +1 -1
  303. package/src/core/utils/portal/portal.test.tsx +2 -1
  304. package/src/core/utils/portal/portalContext.ts +5 -2
  305. package/src/core/utils/portal/portalProvider.tsx +5 -9
  306. package/src/css/_responsiveClassName.ts +2 -2
  307. package/src/css/_style.css.ts +1 -1
  308. package/src/css/components/breadcrumbs/breadcrumbs.css.ts +1 -1
  309. package/src/css/components/dialog/dialog.css.ts +9 -17
  310. package/src/css/components/menu/menu.css.ts +2 -2
  311. package/src/css/components/menu/menu.ts +2 -2
  312. package/src/css/components/skeleton/skeleton.css.ts +2 -6
  313. package/src/css/components/toast/toast.css.ts +2 -2
  314. package/src/css/components/toast/toast.ts +2 -2
  315. package/src/css/components/tree/tree.css.ts +1 -1
  316. package/src/css/components/tree/tree.ts +1 -1
  317. package/src/css/defaultTheme.css.ts +59 -60
  318. package/src/css/layers.css.ts +4 -1
  319. package/src/css/primitives/_arrow/_arrow.css.ts +5 -5
  320. package/src/css/primitives/_input/_input.css.ts +4 -4
  321. package/src/css/primitives/_selectable/_selectable.css.ts +4 -4
  322. package/src/css/primitives/_selectable/types.ts +2 -2
  323. package/src/css/primitives/avatar/avatar.css.ts +10 -10
  324. package/src/css/primitives/badge/badge.css.ts +4 -4
  325. package/src/css/primitives/badge/types.ts +8 -2
  326. package/src/css/primitives/box/box.css.ts +2 -2
  327. package/src/css/primitives/button/button.css.ts +6 -6
  328. package/src/css/primitives/button/button.ts +2 -2
  329. package/src/css/primitives/button/types.ts +3 -3
  330. package/src/css/primitives/card/__workshop__/color.tsx +9 -9
  331. package/src/css/primitives/card/__workshop__/index.ts +5 -3
  332. package/src/css/primitives/card/card.css.ts +12 -18
  333. package/src/css/primitives/card/types.ts +3 -3
  334. package/src/css/primitives/checkbox/checkbox.css.ts +3 -3
  335. package/src/css/primitives/checkbox/checkbox.ts +3 -3
  336. package/src/css/primitives/code/code.css.ts +4 -3
  337. package/src/css/primitives/code/types.ts +3 -4
  338. package/src/css/primitives/container/container.css.ts +1 -1
  339. package/src/css/primitives/heading/heading.css.ts +5 -4
  340. package/src/css/primitives/heading/types.ts +3 -6
  341. package/src/css/primitives/kbd/kbd.css.ts +1 -1
  342. package/src/css/primitives/label/label.css.ts +5 -4
  343. package/src/css/primitives/label/types.ts +0 -8
  344. package/src/css/primitives/popover/popover.css.ts +2 -2
  345. package/src/css/primitives/popover/popover.ts +2 -2
  346. package/src/css/primitives/radio/radio.css.ts +3 -3
  347. package/src/css/primitives/radio/radio.ts +3 -3
  348. package/src/css/primitives/root/root.css.ts +2 -2
  349. package/src/css/primitives/root/root.ts +2 -2
  350. package/src/css/primitives/root/types.ts +3 -3
  351. package/src/css/primitives/select/select.css.ts +3 -3
  352. package/src/css/primitives/spinner/spinner.css.ts +2 -6
  353. package/src/css/primitives/spinner/spinner.ts +2 -2
  354. package/src/css/primitives/srOnly/srOnly.css.ts +1 -1
  355. package/src/css/primitives/srOnly/srOnly.ts +1 -1
  356. package/src/css/primitives/stack/stack.css.ts +1 -1
  357. package/src/css/primitives/stack/stack.ts +1 -1
  358. package/src/css/primitives/switch/switch.css.ts +5 -5
  359. package/src/css/primitives/text/text.css.ts +5 -4
  360. package/src/css/primitives/text/types.ts +3 -5
  361. package/src/css/primitives/textArea/textArea.css.ts +1 -1
  362. package/src/css/primitives/textInput/textInput.css.ts +4 -4
  363. package/src/css/primitives/tooltip/tooltip.css.ts +1 -1
  364. package/src/css/props/alignItems/alignItems.ts +1 -1
  365. package/src/css/props/border/border.ts +1 -16
  366. package/src/css/props/boxSizing/boxSizing.css.ts +2 -1
  367. package/src/css/props/boxSizing/boxSizing.ts +0 -3
  368. package/src/css/props/display/display.ts +1 -10
  369. package/src/css/props/flex/flex.ts +1 -1
  370. package/src/css/props/flexDirection/flexDirection.ts +1 -1
  371. package/src/css/props/flexWrap/flexWrap.ts +1 -1
  372. package/src/css/props/font/font.css.ts +3 -2
  373. package/src/css/props/font/font.ts +1 -1
  374. package/src/css/props/gap/gap.ts +1 -1
  375. package/src/css/props/gridAutoColumns/gridAutoColumns.css.ts +2 -2
  376. package/src/css/props/gridAutoColumns/gridAutoColumns.ts +2 -2
  377. package/src/css/props/gridAutoColumns/types.ts +0 -10
  378. package/src/css/props/gridAutoFlow/gridAutoFlow.ts +2 -2
  379. package/src/css/props/gridAutoFlow/types.ts +0 -4
  380. package/src/css/props/gridAutoRows/gridAutoRows.ts +2 -2
  381. package/src/css/props/gridAutoRows/types.ts +0 -4
  382. package/src/css/props/gridColumn/gridColumn.ts +3 -3
  383. package/src/css/props/gridColumn/types.ts +0 -10
  384. package/src/css/props/gridColumnEnd/gridColumnEnd.ts +3 -3
  385. package/src/css/props/gridColumnEnd/types.ts +0 -10
  386. package/src/css/props/gridColumnStart/gridColumnStart.ts +3 -6
  387. package/src/css/props/gridColumnStart/types.ts +0 -10
  388. package/src/css/props/gridRow/gridRow.ts +3 -3
  389. package/src/css/props/gridRow/types.ts +0 -10
  390. package/src/css/props/gridRowEnd/gridRowEnd.ts +3 -3
  391. package/src/css/props/gridRowEnd/types.ts +0 -10
  392. package/src/css/props/gridRowStart/gridRowStart.ts +3 -3
  393. package/src/css/props/gridRowStart/types.ts +0 -10
  394. package/src/css/props/gridTemplateColumns/gridTemplateColumns.ts +2 -2
  395. package/src/css/props/gridTemplateColumns/types.ts +0 -10
  396. package/src/css/props/gridTemplateRows/gridTemplateRows.ts +2 -2
  397. package/src/css/props/gridTemplateRows/types.ts +0 -10
  398. package/src/css/props/height/height.ts +1 -1
  399. package/src/css/props/height/types.ts +0 -6
  400. package/src/css/props/inset/inset.ts +1 -1
  401. package/src/css/props/justifyContent/justifyContent.ts +1 -1
  402. package/src/css/props/margin/margin.ts +1 -1
  403. package/src/css/props/maxWidth/maxWidth.ts +1 -1
  404. package/src/css/props/minHeight/minHeight.ts +1 -1
  405. package/src/css/props/minWidth/minWidth.ts +1 -1
  406. package/src/css/props/outline/outline.ts +1 -1
  407. package/src/css/props/overflow/overflow.ts +1 -1
  408. package/src/css/props/overflow/types.ts +0 -6
  409. package/src/css/props/padding/padding.ts +1 -1
  410. package/src/css/props/pointerEvents/pointerEvents.ts +1 -1
  411. package/src/css/props/position/position.ts +1 -1
  412. package/src/css/props/radius/radius.ts +1 -1
  413. package/src/css/props/shadow/shadow.ts +1 -1
  414. package/src/css/props/textAlign/textAlign.ts +1 -1
  415. package/src/css/props/textOverflow/textOverflow.ts +1 -1
  416. package/src/css/props/width/width.ts +1 -1
  417. package/src/css/types.ts +225 -53
  418. package/src/css/util.ts +2 -2
  419. package/src/css/vars.css.ts +33 -36
  420. package/src/theme/{v3/_parseColorToken.ts → _parseColorToken.ts} +2 -2
  421. package/src/theme/buildTheme.ts +33 -0
  422. package/src/theme/constants.ts +90 -0
  423. package/src/theme/defaults/color.ts +197 -0
  424. package/src/theme/{v2/defaults/config.ts → defaults/common.ts} +3 -16
  425. package/src/theme/{v3/defaultFonts.ts → defaults/fonts.ts} +2 -2
  426. package/src/theme/index.ts +4 -5
  427. package/src/theme/{v3/resolveTokens.ts → resolveTokens.ts} +15 -15
  428. package/src/theme/types.ts +355 -15
  429. package/dist/css/layers.css +0 -4
  430. package/dist/css/primitives/popover/popover.css +0 -4
  431. package/src/core/__DEV__.ts +0 -5
  432. package/src/core/_compat/helpers.ts +0 -72
  433. package/src/core/_compat/styles/_responsive.ts +0 -19
  434. package/src/core/_compat/theme/theme.test.tsx +0 -73
  435. package/src/core/_compat/theme/themeColorProvider.tsx +0 -24
  436. package/src/core/_compat/theme/themeContext.ts +0 -10
  437. package/src/core/_compat/theme/themeProvider.tsx +0 -68
  438. package/src/core/_compat/theme/types.ts +0 -10
  439. package/src/core/_compat/theme/useRootTheme.ts +0 -15
  440. package/src/core/_compat/theme/useTheme.ts +0 -12
  441. package/src/core/_compat/types.ts +0 -191
  442. package/src/core/hooks/useArrayProp.ts +0 -26
  443. package/src/core/hooks/useClickOutside.test.tsx +0 -481
  444. package/src/core/hooks/useClickOutside.ts +0 -113
  445. package/src/core/hooks/useElementRect/__workshop__/example.tsx +0 -30
  446. package/src/core/hooks/useElementRect/__workshop__/index.ts +0 -14
  447. package/src/core/hooks/useElementRect/useElementRect.ts +0 -13
  448. package/src/core/hooks/useForwardedRef.ts +0 -19
  449. package/src/core/hooks/useIsomorphicEffect.ts +0 -7
  450. package/src/core/primitives/badge/types.ts +0 -18
  451. package/src/core/primitives/box/types.ts +0 -22
  452. package/src/core/primitives/flex/types.ts +0 -27
  453. package/src/core/primitives/grid/types.ts +0 -17
  454. package/src/core/primitives/selectable/types.ts +0 -7
  455. package/src/core/primitives/types.ts +0 -153
  456. package/src/core/types/gridItem.ts +0 -32
  457. package/src/core/types/placement.ts +0 -18
  458. package/src/core/types/radius.ts +0 -7
  459. package/src/core/types/textAlign.ts +0 -7
  460. package/src/core/utils/spanWithTextOverflow.tsx +0 -10
  461. package/src/theme/getScopedTheme.ts +0 -88
  462. package/src/theme/v0/avatar.ts +0 -10
  463. package/src/theme/v0/color/_generic.ts +0 -35
  464. package/src/theme/v0/color/_system.ts +0 -17
  465. package/src/theme/v0/color/base.ts +0 -21
  466. package/src/theme/v0/color/button.ts +0 -42
  467. package/src/theme/v0/color/card.ts +0 -19
  468. package/src/theme/v0/color/color.ts +0 -40
  469. package/src/theme/v0/color/index.ts +0 -11
  470. package/src/theme/v0/color/input.ts +0 -34
  471. package/src/theme/v0/color/muted.ts +0 -26
  472. package/src/theme/v0/color/selectable.ts +0 -31
  473. package/src/theme/v0/color/solid.ts +0 -26
  474. package/src/theme/v0/color/spot.ts +0 -13
  475. package/src/theme/v0/css.ts +0 -10
  476. package/src/theme/v0/focusRing.ts +0 -5
  477. package/src/theme/v0/font.ts +0 -40
  478. package/src/theme/v0/index.ts +0 -10
  479. package/src/theme/v0/input.ts +0 -23
  480. package/src/theme/v0/layer.ts +0 -6
  481. package/src/theme/v0/shadow.ts +0 -15
  482. package/src/theme/v0/styles.ts +0 -13
  483. package/src/theme/v0/theme.ts +0 -72
  484. package/src/theme/v2/avatar.ts +0 -12
  485. package/src/theme/v2/build/_deprecated/color/_selectable/createSelectableTones.ts +0 -76
  486. package/src/theme/v2/build/_deprecated/color/_solid/createSolidTones.ts +0 -54
  487. package/src/theme/v2/build/_deprecated/color/button/createButtonModes.ts +0 -22
  488. package/src/theme/v2/build/_deprecated/color/button/createButtonTones.ts +0 -55
  489. package/src/theme/v2/build/_deprecated/color/card/createCardStates.ts +0 -60
  490. package/src/theme/v2/build/_deprecated/color/color.test.ts +0 -63
  491. package/src/theme/v2/build/_deprecated/color/defaults.ts +0 -390
  492. package/src/theme/v2/build/_deprecated/color/factory.ts +0 -141
  493. package/src/theme/v2/build/_deprecated/color/index.ts +0 -1
  494. package/src/theme/v2/build/_deprecated/color/input/createInputModes.ts +0 -86
  495. package/src/theme/v2/build/_deprecated/color/muted/createMuted.ts +0 -54
  496. package/src/theme/v2/build/_deprecated/color/spot/createSpot.ts +0 -20
  497. package/src/theme/v2/build/buildColorTheme.test.ts +0 -185
  498. package/src/theme/v2/build/buildColorTheme.ts +0 -494
  499. package/src/theme/v2/build/buildTheme.test.ts +0 -89
  500. package/src/theme/v2/build/buildTheme.ts +0 -37
  501. package/src/theme/v2/build/colorToken/colorToken.ts +0 -19
  502. package/src/theme/v2/build/colorToken/compileColorToken.ts +0 -21
  503. package/src/theme/v2/build/colorToken/index.ts +0 -2
  504. package/src/theme/v2/build/colorToken/types.ts +0 -6
  505. package/src/theme/v2/build/index.ts +0 -3
  506. package/src/theme/v2/build/lib/color-fns/blend/index.ts +0 -3
  507. package/src/theme/v2/build/lib/color-fns/blend/mix.ts +0 -21
  508. package/src/theme/v2/build/lib/color-fns/blend/multiply.ts +0 -18
  509. package/src/theme/v2/build/lib/color-fns/blend/screen.ts +0 -18
  510. package/src/theme/v2/build/lib/color-fns/color-fns.test.ts +0 -68
  511. package/src/theme/v2/build/lib/color-fns/contrastRatio.ts +0 -34
  512. package/src/theme/v2/build/lib/color-fns/convert.ts +0 -150
  513. package/src/theme/v2/build/lib/color-fns/index.ts +0 -6
  514. package/src/theme/v2/build/lib/color-fns/parse.ts +0 -60
  515. package/src/theme/v2/build/lib/color-fns/rgba.ts +0 -14
  516. package/src/theme/v2/build/lib/color-fns/types.ts +0 -28
  517. package/src/theme/v2/build/lib/isRecord.ts +0 -3
  518. package/src/theme/v2/build/lib/utils.ts +0 -19
  519. package/src/theme/v2/build/merge.ts +0 -28
  520. package/src/theme/v2/build/mixThemeColor.test.ts +0 -23
  521. package/src/theme/v2/build/mixThemeColor.ts +0 -53
  522. package/src/theme/v2/build/renderColorTheme.ts +0 -532
  523. package/src/theme/v2/build/renderColorValue.ts +0 -85
  524. package/src/theme/v2/build/resolveColorTokens.ts +0 -268
  525. package/src/theme/v2/color/_constants.ts +0 -45
  526. package/src/theme/v2/color/_helpers.ts +0 -24
  527. package/src/theme/v2/color/_system.ts +0 -38
  528. package/src/theme/v2/color/avatar.ts +0 -11
  529. package/src/theme/v2/color/badge.ts +0 -12
  530. package/src/theme/v2/color/button.ts +0 -11
  531. package/src/theme/v2/color/color.ts +0 -28
  532. package/src/theme/v2/color/index.ts +0 -13
  533. package/src/theme/v2/color/input.ts +0 -23
  534. package/src/theme/v2/color/kbd.ts +0 -6
  535. package/src/theme/v2/color/selectable.ts +0 -8
  536. package/src/theme/v2/color/shadow.ts +0 -7
  537. package/src/theme/v2/color/state.ts +0 -41
  538. package/src/theme/v2/color/syntax.ts +0 -39
  539. package/src/theme/v2/config/helpers.ts +0 -48
  540. package/src/theme/v2/config/index.ts +0 -4
  541. package/src/theme/v2/config/system.ts +0 -114
  542. package/src/theme/v2/config/tokens/color/index.ts +0 -1
  543. package/src/theme/v2/config/tokens/color/types.ts +0 -137
  544. package/src/theme/v2/config/tokens/index.ts +0 -3
  545. package/src/theme/v2/config/tokens/parseTokenValue.test.ts +0 -44
  546. package/src/theme/v2/config/tokens/parseTokenValue.ts +0 -133
  547. package/src/theme/v2/config/tokens/types.ts +0 -53
  548. package/src/theme/v2/config/types.ts +0 -47
  549. package/src/theme/v2/defaults/colorPalette.ts +0 -5
  550. package/src/theme/v2/defaults/colorTokens.ts +0 -648
  551. package/src/theme/v2/defaults/fonts.ts +0 -227
  552. package/src/theme/v2/index.ts +0 -6
  553. package/src/theme/v2/input.ts +0 -31
  554. package/src/theme/v2/theme.ts +0 -45
  555. package/src/theme/v3/_constants.ts +0 -29
  556. package/src/theme/v3/buildTheme_v3.ts +0 -39
  557. package/src/theme/v3/color/_constants.ts +0 -15
  558. package/src/theme/v3/color/avatar.ts +0 -14
  559. package/src/theme/v3/color/card.ts +0 -79
  560. package/src/theme/v3/color/color.ts +0 -98
  561. package/src/theme/v3/color/element.ts +0 -19
  562. package/src/theme/v3/color/index.ts +0 -7
  563. package/src/theme/v3/color/token.ts +0 -32
  564. package/src/theme/v3/color/tokens.ts +0 -5
  565. package/src/theme/v3/defaultTokens.ts +0 -199
  566. package/src/theme/v3/index.ts +0 -9
  567. package/src/theme/v3/palette/constants.ts +0 -15
  568. package/src/theme/v3/palette/index.ts +0 -2
  569. package/src/theme/v3/palette/types.ts +0 -7
  570. package/src/theme/v3/tokens.ts +0 -16
  571. package/src/theme/v3/types.ts +0 -133
  572. package/src/theme/versioning/getTheme_v2.ts +0 -58
  573. package/src/theme/versioning/index.ts +0 -1
  574. package/src/theme/versioning/is_v0.ts +0 -7
  575. package/src/theme/versioning/is_v2.ts +0 -7
  576. package/src/theme/versioning/themeColor_v0_v2.ts +0 -245
  577. package/src/theme/versioning/themeColor_v2_v2_9.ts +0 -49
  578. package/src/theme/versioning/themeColor_v3_v2.ts +0 -383
  579. package/src/theme/versioning/v0_v2.ts +0 -95
  580. package/src/theme/versioning/v2_v0.ts +0 -127
  581. package/src/theme/versioning/v3_v2.ts +0 -130
  582. /package/src/theme/{v3/merge.ts → merge.ts} +0 -0
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  arrow,
3
+ autoPlacement,
3
4
  autoUpdate,
4
5
  flip,
5
6
  hide,
@@ -28,8 +29,7 @@ import {Z_OFFSETS} from '../../constants'
28
29
  import {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'
29
30
  import {useResponsiveProp} from '../../hooks/useResponsiveProp'
30
31
  import {origin} from '../../middleware/origin'
31
- import type {Placement} from '../../types/placement'
32
- import type {ComponentType, Props} from '../../types/props'
32
+ import type {ComponentType, Placement, Props} from '../../types'
33
33
  import {useBoundaryElement} from '../../utils/boundaryElement/useBoundaryElement'
34
34
  import {getElementRef} from '../../utils/getElementRef'
35
35
  import {Portal} from '../../utils/portal/portal'
@@ -62,8 +62,6 @@ export type PopoverOwnProps = Omit<LayerOwnProps, 'maxWidth'> & {
62
62
  */
63
63
  animate?: boolean
64
64
  arrow?: boolean
65
- /** @deprecated Use `floatingBoundary` and/or `referenceBoundary` instead */
66
- boundaryElement?: HTMLElement | null
67
65
  children?: ReactElement<{ref: ForwardedRef<HTMLElement>}>
68
66
  /**
69
67
  * When `true`, prevent overflow within the current boundary:
@@ -99,6 +97,16 @@ export type PopoverOwnProps = Omit<LayerOwnProps, 'maxWidth'> & {
99
97
  modal?: boolean
100
98
  open?: boolean
101
99
  placement?: Placement
100
+ /**
101
+ * When 'flip' (default), the placement is determined from the initial placement and the
102
+ * fallback placements in order. Whichever fits in the viewport first.
103
+ *
104
+ * When 'autoPlacement', the initial placement and all fallback placements are evaluated
105
+ * and the placement with the most viewport space available.
106
+ *
107
+ * Option is only relevant if either `constrainSize` or `preventOverflow` is `true`
108
+ */
109
+ placementStrategy?: 'flip' | 'autoPlacement'
102
110
  /** Whether or not to render the popover in a portal element. */
103
111
  portal?: boolean | string
104
112
  preventOverflow?: boolean
@@ -145,7 +153,7 @@ function ViewportOverlay() {
145
153
  */
146
154
  export function Popover<E extends PopoverElementType = typeof DEFAULT_POPOVER_ELEMENT>(
147
155
  props: PopoverProps<E>,
148
- ) {
156
+ ): React.JSX.Element {
149
157
  const boundaryElementContext = useBoundaryElement()
150
158
 
151
159
  const {
@@ -153,8 +161,6 @@ export function Popover<E extends PopoverElementType = typeof DEFAULT_POPOVER_EL
153
161
  animate: _animate = false,
154
162
  arrow: arrowProp = false,
155
163
  as: as = DEFAULT_POPOVER_ELEMENT,
156
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
157
- boundaryElement = boundaryElementContext.element,
158
164
  children: childProp,
159
165
  className,
160
166
  constrainSize = false,
@@ -163,7 +169,7 @@ export function Popover<E extends PopoverElementType = typeof DEFAULT_POPOVER_EL
163
169
  fallbackPlacements = props.fallbackPlacements ??
164
170
  DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],
165
171
  matchReferenceWidth,
166
- floatingBoundary = props.boundaryElement ?? boundaryElementContext.element,
172
+ floatingBoundary = boundaryElementContext.element,
167
173
  modal,
168
174
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
169
175
  onActivate,
@@ -171,11 +177,12 @@ export function Popover<E extends PopoverElementType = typeof DEFAULT_POPOVER_EL
171
177
  overflow = 'hidden',
172
178
  padding,
173
179
  placement: placementProp = 'bottom',
180
+ placementStrategy = 'flip',
174
181
  portal,
175
182
  preventOverflow = true,
176
183
  radius = 3,
177
184
  ref: forwardedRef,
178
- referenceBoundary = props.boundaryElement ?? boundaryElementContext.element,
185
+ referenceBoundary = boundaryElementContext.element,
179
186
  referenceElement,
180
187
  scheme,
181
188
  shadow = 3,
@@ -205,14 +212,22 @@ export function Popover<E extends PopoverElementType = typeof DEFAULT_POPOVER_EL
205
212
 
206
213
  // Flip the floating element when leaving the boundary box
207
214
  if (constrainSize || preventOverflow) {
208
- ret.push(
209
- flip({
210
- boundary: floatingBoundary || undefined,
211
- fallbackPlacements,
212
- padding: DEFAULT_POPOVER_PADDING,
213
- rootBoundary,
214
- }),
215
- )
215
+ if (placementStrategy === 'autoPlacement') {
216
+ ret.push(
217
+ autoPlacement({
218
+ allowedPlacements: [placementProp].concat(fallbackPlacements),
219
+ }),
220
+ )
221
+ } else {
222
+ ret.push(
223
+ flip({
224
+ boundary: floatingBoundary || undefined,
225
+ fallbackPlacements,
226
+ padding: DEFAULT_POPOVER_PADDING,
227
+ rootBoundary,
228
+ }),
229
+ )
230
+ }
216
231
  }
217
232
 
218
233
  // Define distance between reference and floating element
@@ -287,6 +302,8 @@ export function Popover<E extends PopoverElementType = typeof DEFAULT_POPOVER_EL
287
302
  constrainSize,
288
303
  fallbackPlacements,
289
304
  floatingBoundary,
305
+ placementProp,
306
+ placementStrategy,
290
307
  margins,
291
308
  matchReferenceWidth,
292
309
  preventOverflow,
@@ -4,7 +4,7 @@ import {motion} from 'framer-motion'
4
4
  import {type CSSProperties, type ForwardedRef, useMemo} from 'react'
5
5
 
6
6
  import {POPOVER_MOTION_PROPS} from '../../constants'
7
- import type {Placement} from '../../types/placement'
7
+ import type {Placement} from '../../types'
8
8
  import {Arrow} from '../arrow/arrow'
9
9
  import {Flex} from '../flex/flex'
10
10
  import {Layer, type LayerOwnProps, type LayerProps} from '../layer/layer'
@@ -41,7 +41,7 @@ export type PopoverLayerOwnProps = LayerOwnProps & {
41
41
  export type PopoverLayerProps = PopoverLayerOwnProps & LayerProps<'div'>
42
42
 
43
43
  /** @internal */
44
- export function PopoverLayer(props: PopoverLayerProps) {
44
+ export function PopoverLayer(props: PopoverLayerProps): React.JSX.Element {
45
45
  const {
46
46
  __unstable_margins: marginsProp,
47
47
  animate,
@@ -2,7 +2,7 @@ import {Box, Container, Flex, Radio, Stack, Text} from '@sanity/ui'
2
2
  import {useBoolean} from '@sanity/ui-workshop'
3
3
  import {useCallback, useState} from 'react'
4
4
 
5
- export default function ExampleStory() {
5
+ export default function ExampleStory(): React.JSX.Element {
6
6
  const [value, setValue] = useState('first-option')
7
7
  const disabled = useBoolean('Disabled', false)
8
8
  const readOnly = useBoolean('Read only', false)
@@ -1,11 +1,13 @@
1
- import {defineScope} from '@sanity/ui-workshop'
1
+ import type {WorkshopScope} from '@sanity/ui-workshop'
2
2
  import {lazy} from 'react'
3
3
 
4
- export default defineScope({
4
+ const scope: WorkshopScope = {
5
5
  name: 'primitives/radio',
6
6
  title: 'Radio',
7
7
  stories: [
8
8
  {name: 'plain', title: 'Plain', component: lazy(() => import('./plain'))},
9
9
  {name: 'example', title: 'Example', component: lazy(() => import('./example'))},
10
10
  ],
11
- })
11
+ }
12
+
13
+ export default scope
@@ -1,7 +1,7 @@
1
1
  import {Flex, Radio} from '@sanity/ui'
2
2
  import {useAction, useBoolean} from '@sanity/ui-workshop'
3
3
 
4
- export default function PlainStory() {
4
+ export default function PlainStory(): React.JSX.Element {
5
5
  const checked = useBoolean('Checked', false)
6
6
  const disabled = useBoolean('Disabled', false)
7
7
  const id = 'radioStory'
@@ -2,7 +2,7 @@ import {radio, radioInput, radioPresentation} from '@sanity/ui/css'
2
2
  import {useImperativeHandle, useRef} from 'react'
3
3
 
4
4
  import {useCustomValidity} from '../../hooks/useCustomValidity'
5
- import type {ComponentType, Props} from '../../types/props'
5
+ import type {ComponentType, Props} from '../../types'
6
6
 
7
7
  /** @public */
8
8
  export const DEFAULT_RADIO_ELEMENT = 'input'
@@ -25,7 +25,7 @@ export type RadioProps<E extends RadioElementType = RadioElementType> = Props<Ra
25
25
  */
26
26
  export function Radio<E extends RadioElementType = typeof DEFAULT_RADIO_ELEMENT>(
27
27
  props: RadioProps<E>,
28
- ) {
28
+ ): React.JSX.Element {
29
29
  const {
30
30
  as: Element = DEFAULT_RADIO_ELEMENT,
31
31
  className,
@@ -1,11 +1,13 @@
1
- import {defineScope} from '@sanity/ui-workshop'
1
+ import type {WorkshopScope} from '@sanity/ui-workshop'
2
2
  import {lazy} from 'react'
3
3
 
4
- export default defineScope({
4
+ const scope: WorkshopScope = {
5
5
  name: 'primitives/select',
6
6
  title: 'Select',
7
7
  stories: [
8
8
  {name: 'plain', title: 'Plain', component: lazy(() => import('./plain'))},
9
9
  {name: 'read-only', title: 'Read-only', component: lazy(() => import('./readOnly'))},
10
10
  ],
11
- })
11
+ }
12
+
13
+ export default scope
@@ -3,7 +3,7 @@ import {useBoolean, useSelect} from '@sanity/ui-workshop'
3
3
 
4
4
  import {WORKSHOP_RADIUS_OPTIONS, WORKSHOP_TEXT_FONT_SIZE_OPTIONS} from '$workshop'
5
5
 
6
- export default function PlainStory() {
6
+ export default function PlainStory(): React.JSX.Element {
7
7
  const border = useBoolean('Border', true)
8
8
  const disabled = useBoolean('Disabled', false)
9
9
  const fontSize = useSelect('Font size', WORKSHOP_TEXT_FONT_SIZE_OPTIONS)
@@ -1,6 +1,6 @@
1
1
  import {Card, Container, Label, Select, Stack} from '@sanity/ui'
2
2
 
3
- export default function ReadOnlyStory() {
3
+ export default function ReadOnlyStory(): React.JSX.Element {
4
4
  return (
5
5
  <Container width={0}>
6
6
  <Card padding={4}>
@@ -1,16 +1,9 @@
1
1
  import {ChevronDownIcon} from '@sanity/icons'
2
- import {
3
- _inputElement,
4
- type ResponsiveProp,
5
- select,
6
- selectPresentation,
7
- type SelectStyleProps,
8
- } from '@sanity/ui/css'
9
- import type {Space} from '@sanity/ui/theme'
2
+ import {_inputElement, select, selectPresentation, type SelectStyleProps} from '@sanity/ui/css'
10
3
  import {useImperativeHandle, useRef} from 'react'
11
4
 
12
5
  import {useCustomValidity} from '../../hooks/useCustomValidity'
13
- import type {ComponentType, Props} from '../../types/props'
6
+ import type {ComponentType, Props} from '../../types'
14
7
  import {Box} from '../box/box'
15
8
  import {Text} from '../text/text'
16
9
 
@@ -21,8 +14,6 @@ export const DEFAULT_SELECT_ELEMENT = 'select'
21
14
  export type SelectOwnProps = SelectStyleProps & {
22
15
  customValidity?: string
23
16
  readOnly?: boolean
24
- /** @deprecated Use `gap` instead. */
25
- space?: ResponsiveProp<Space>
26
17
  }
27
18
 
28
19
  /** @public */
@@ -38,7 +29,7 @@ export type SelectProps<E extends SelectElementType = SelectElementType> = Props
38
29
  */
39
30
  export function Select<E extends SelectElementType = typeof DEFAULT_SELECT_ELEMENT>(
40
31
  props: SelectProps<E>,
41
- ) {
32
+ ): React.JSX.Element {
42
33
  const {
43
34
  as: Element = DEFAULT_SELECT_ELEMENT,
44
35
  border = true,
@@ -46,12 +37,11 @@ export function Select<E extends SelectElementType = typeof DEFAULT_SELECT_ELEME
46
37
  customValidity,
47
38
  disabled,
48
39
  fontSize = 2,
49
- gap,
40
+ gap = 2,
50
41
  padding = 3,
51
42
  radius = 1,
52
43
  readOnly,
53
44
  ref: forwardedRef,
54
- space = 2,
55
45
  ...rest
56
46
  } = props as SelectProps<typeof DEFAULT_SELECT_ELEMENT>
57
47
 
@@ -67,7 +57,7 @@ export function Select<E extends SelectElementType = typeof DEFAULT_SELECT_ELEME
67
57
  return (
68
58
  <div
69
59
  data-ui="Select"
70
- className={select({border, fontSize, padding, radius, gap: gap ?? space})}
60
+ className={select({border, fontSize, gap, padding, radius})}
71
61
  data-icon-right=""
72
62
  >
73
63
  <Element {...rest} className={_inputElement()} disabled={disabled || readOnly} ref={ref}>
@@ -1,7 +1,7 @@
1
1
  import {_selectable, type SelectableStyleProps} from '@sanity/ui/css'
2
- import type {ThemeColorStateToneKey} from '@sanity/ui/theme'
2
+ import type {ElementTone} from '@sanity/ui/theme'
3
3
 
4
- import type {ComponentType, Props} from '../../types/props'
4
+ import type {ComponentType, Props} from '../../types'
5
5
  import {Box, type BoxOwnProps} from '../box/box'
6
6
 
7
7
  /** @internal */
@@ -13,7 +13,7 @@ export type SelectableOwnProps = BoxOwnProps &
13
13
  disabled?: boolean
14
14
  href?: string
15
15
  selected?: boolean
16
- tone?: ThemeColorStateToneKey
16
+ tone?: ElementTone
17
17
  type?: 'button'
18
18
  }
19
19
 
@@ -29,7 +29,7 @@ export type SelectableProps<E extends SelectableElementType = SelectableElementT
29
29
  /** @internal */
30
30
  export function Selectable<E extends SelectableElementType = typeof DEFAULT_SELECTABLE_ELEMENT>(
31
31
  props: SelectableProps<E>,
32
- ) {
32
+ ): React.JSX.Element {
33
33
  const {
34
34
  as = DEFAULT_SELECTABLE_ELEMENT,
35
35
  className,
@@ -15,7 +15,7 @@ import {useBoolean, useSelect} from '@sanity/ui-workshop'
15
15
 
16
16
  import {WORKSHOP_CARD_TONE_OPTIONS} from '$workshop'
17
17
 
18
- export default function SkeletonDelayStory() {
18
+ export default function SkeletonDelayStory(): React.JSX.Element {
19
19
  const tone = useSelect('Tone', WORKSHOP_CARD_TONE_OPTIONS)
20
20
  const animated = useBoolean('Animated', true)
21
21
 
@@ -1,11 +1,13 @@
1
- import {defineScope} from '@sanity/ui-workshop'
1
+ import type {WorkshopScope} from '@sanity/ui-workshop'
2
2
  import {lazy} from 'react'
3
3
 
4
- export default defineScope({
4
+ const scope: WorkshopScope = {
5
5
  name: 'primitives/skeleton',
6
6
  title: 'Skeleton',
7
7
  stories: [
8
8
  {name: 'skeleton', title: 'Skeleton', component: lazy(() => import('./skeleton'))},
9
9
  {name: 'skeleton-delay', title: 'Skeleton delay', component: lazy(() => import('./delay'))},
10
10
  ],
11
- })
11
+ }
12
+
13
+ export default scope
@@ -15,7 +15,7 @@ import {useBoolean, useSelect} from '@sanity/ui-workshop'
15
15
 
16
16
  import {WORKSHOP_CARD_TONE_OPTIONS} from '$workshop'
17
17
 
18
- export default function SkeletonStory() {
18
+ export default function SkeletonStory(): React.JSX.Element {
19
19
  const tone = useSelect('Tone', WORKSHOP_CARD_TONE_OPTIONS)
20
20
  const animated = useBoolean('Animated', true)
21
21
 
@@ -26,7 +26,7 @@ export default function SkeletonStory() {
26
26
  {[1, 2, 3].map((item) => (
27
27
  <Card key={item} tone={tone} padding={2} radius={2} border>
28
28
  <Flex align="center">
29
- <Grid gap={2} columns={2} marginRight={3}>
29
+ <Grid gap={2} gridTemplateColumns={2} marginRight={3}>
30
30
  <Skeleton style={{width: 40, height: 40}} radius={2} animated={animated} />
31
31
  <Skeleton style={{width: 40, height: 40}} radius={2} animated={animated} />
32
32
  <Skeleton style={{width: 40, height: 40}} radius={2} animated={animated} />
@@ -1,7 +1,7 @@
1
1
  import {codeSkeleton, type ResponsiveProp} from '@sanity/ui/css'
2
2
  import type {FontCodeSize} from '@sanity/ui/theme'
3
3
 
4
- import type {Props} from '../../types/props'
4
+ import type {Props} from '../../types'
5
5
  import {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './skeleton'
6
6
 
7
7
  /** @beta */
@@ -30,7 +30,7 @@ export type CodeSkeletonProps<E extends CodeSkeletonElementType = CodeSkeletonEl
30
30
  */
31
31
  export function CodeSkeleton<
32
32
  E extends CodeSkeletonElementType = typeof DEFAULT_CODE_SKELETON_ELEMENT,
33
- >(props: CodeSkeletonProps<E>) {
33
+ >(props: CodeSkeletonProps<E>): React.JSX.Element {
34
34
  const {
35
35
  className,
36
36
  size = 2,
@@ -1,7 +1,7 @@
1
1
  import {headingSkeleton, type ResponsiveProp} from '@sanity/ui/css'
2
2
  import type {FontHeadingSize} from '@sanity/ui/theme'
3
3
 
4
- import type {Props} from '../../types/props'
4
+ import type {Props} from '../../types'
5
5
  import {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './skeleton'
6
6
 
7
7
  /** @beta */
@@ -29,7 +29,7 @@ export type HeadingSkeletonProps<
29
29
  */
30
30
  export function HeadingSkeleton<
31
31
  E extends HeadingSkeletonElementType = typeof DEFAULT_HEADING_SKELETON_ELEMENT,
32
- >(props: HeadingSkeletonProps<E>) {
32
+ >(props: HeadingSkeletonProps<E>): React.JSX.Element {
33
33
  const {
34
34
  className,
35
35
  size = 2,
@@ -1,7 +1,7 @@
1
1
  import {labelSkeleton, type ResponsiveProp} from '@sanity/ui/css'
2
2
  import type {FontLabelSize} from '@sanity/ui/theme'
3
3
 
4
- import type {Props} from '../../types/props'
4
+ import type {Props} from '../../types'
5
5
  import {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './skeleton'
6
6
 
7
7
  /** @beta */
@@ -28,7 +28,7 @@ export type LabelSkeletonProps<E extends LabelSkeletonElementType = LabelSkeleto
28
28
  */
29
29
  export function LabelSkeleton<
30
30
  E extends LabelSkeletonElementType = typeof DEFAULT_LABEL_SKELETON_ELEMENT,
31
- >(props: LabelSkeletonProps<E>) {
31
+ >(props: LabelSkeletonProps<E>): React.JSX.Element {
32
32
  const {
33
33
  className,
34
34
  size = 2,
@@ -1,7 +1,7 @@
1
1
  import {skeleton, type SkeletonStyleProps} from '@sanity/ui/css'
2
2
  import {useEffect, useState} from 'react'
3
3
 
4
- import type {ComponentType, Props} from '../../types/props'
4
+ import type {ComponentType, Props} from '../../types'
5
5
 
6
6
  /** @beta */
7
7
  export const DEFAULT_SKELETON_ELEMENT = 'div'
@@ -30,7 +30,7 @@ export type SkeletonProps<E extends SkeletonElementType = SkeletonElementType> =
30
30
  */
31
31
  export function Skeleton<E extends SkeletonElementType = typeof DEFAULT_SKELETON_ELEMENT>(
32
32
  props: SkeletonProps<E>,
33
- ) {
33
+ ): React.JSX.Element {
34
34
  const {
35
35
  as: As = DEFAULT_SKELETON_ELEMENT,
36
36
  animated = false,
@@ -1,7 +1,7 @@
1
1
  import {type ResponsiveProp, textSkeleton} from '@sanity/ui/css'
2
2
  import type {FontTextSize} from '@sanity/ui/theme'
3
3
 
4
- import type {Props} from '../../types/props'
4
+ import type {Props} from '../../types'
5
5
  import {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './skeleton'
6
6
 
7
7
  /** @beta */
@@ -30,7 +30,7 @@ export type TextSkeletonProps<E extends TextSkeletonElementType = TextSkeletonEl
30
30
  */
31
31
  export function TextSkeleton<
32
32
  E extends TextSkeletonElementType = typeof DEFAULT_TEXT_SKELETON_ELEMENT,
33
- >(props: TextSkeletonProps<E>) {
33
+ >(props: TextSkeletonProps<E>): React.JSX.Element {
34
34
  const {
35
35
  className,
36
36
  size = 2,
@@ -3,7 +3,7 @@ import {useBoolean, useSelect} from '@sanity/ui-workshop'
3
3
 
4
4
  import {WORKSHOP_TEXT_FONT_SIZE_OPTIONS} from '$workshop'
5
5
 
6
- export default function Props() {
6
+ export default function Props(): React.JSX.Element {
7
7
  const muted = useBoolean('Muted', false)
8
8
  const size = useSelect('Size', WORKSHOP_TEXT_FONT_SIZE_OPTIONS, 2)
9
9
 
@@ -1,7 +1,7 @@
1
- import {defineScope} from '@sanity/ui-workshop'
1
+ import type {WorkshopScope} from '@sanity/ui-workshop'
2
2
  import {lazy} from 'react'
3
3
 
4
- export default defineScope({
4
+ const scope: WorkshopScope = {
5
5
  name: 'primitives/spinner',
6
6
  title: 'Spinner',
7
7
  stories: [
@@ -11,4 +11,6 @@ export default defineScope({
11
11
  component: lazy(() => import('./Props')),
12
12
  },
13
13
  ],
14
- })
14
+ }
15
+
16
+ export default scope
@@ -1,11 +1,11 @@
1
1
  import {SpinnerIcon} from '@sanity/icons'
2
2
  import {animatedSpinnerIcon} from '@sanity/ui/css'
3
- import type {ReactElement, SVGProps} from 'react'
3
+ import type {SVGProps} from 'react'
4
4
 
5
5
  /** @internal */
6
6
  export function AnimatedSpinnerIcon(
7
7
  props: Omit<SVGProps<SVGSVGElement>, 'className'>,
8
- ): ReactElement {
8
+ ): React.JSX.Element {
9
9
  const {...rest} = props
10
10
 
11
11
  return (
@@ -1,7 +1,7 @@
1
1
  import {type ResponsiveProp, spinner} from '@sanity/ui/css'
2
2
  import type {FontTextSize} from '@sanity/ui/theme'
3
3
 
4
- import type {ComponentType, Props} from '../../types/props'
4
+ import type {ComponentType, Props} from '../../types'
5
5
  import {Text} from '../text/text'
6
6
  import {AnimatedSpinnerIcon} from './animatedSpinnerIcon'
7
7
 
@@ -30,7 +30,7 @@ export type SpinnerProps<E extends SpinnerElementType = SpinnerElementType> = Pr
30
30
  */
31
31
  export function Spinner<E extends SpinnerElementType = typeof DEFAULT_SPINNER_ELEMENT>(
32
32
  props: SpinnerProps<E>,
33
- ) {
33
+ ): React.JSX.Element {
34
34
  const {
35
35
  as = DEFAULT_SPINNER_ELEMENT,
36
36
  className,
@@ -1,6 +1,6 @@
1
1
  import {srOnly} from '@sanity/ui/css'
2
2
 
3
- import type {ComponentType, Props} from '../../types/props'
3
+ import type {ComponentType, Props} from '../../types'
4
4
 
5
5
  /** @public */
6
6
  export const DEFAULT_SR_ONLY_ELEMENT = 'span'
@@ -17,7 +17,7 @@ export type SrOnlyProps<E extends SrOnlyElementType = SrOnlyElementType> = Props
17
17
  /** @public */
18
18
  export function SrOnly<E extends SrOnlyElementType = typeof DEFAULT_SR_ONLY_ELEMENT>(
19
19
  props: SrOnlyProps<E>,
20
- ) {
20
+ ): React.JSX.Element {
21
21
  const {
22
22
  as: Element = DEFAULT_SR_ONLY_ELEMENT,
23
23
  children,
@@ -1,7 +1,7 @@
1
- import {defineScope} from '@sanity/ui-workshop'
1
+ import type {WorkshopScope} from '@sanity/ui-workshop'
2
2
  import {lazy} from 'react'
3
3
 
4
- export default defineScope({
4
+ const scope: WorkshopScope = {
5
5
  name: 'primitives/stack',
6
6
  title: 'Stack',
7
7
  stories: [
@@ -11,4 +11,6 @@ export default defineScope({
11
11
  component: lazy(() => import('./plain')),
12
12
  },
13
13
  ],
14
- })
14
+ }
15
+
16
+ export default scope
@@ -3,7 +3,7 @@ import {useSelect} from '@sanity/ui-workshop'
3
3
 
4
4
  import {WORKSHOP_SPACE_OPTIONS} from '$workshop'
5
5
 
6
- export default function PlainStory() {
6
+ export default function PlainStory(): React.JSX.Element {
7
7
  return (
8
8
  <Flex align="center" height="fill" justify="center" padding={[4, 5, 6]} sizing="border">
9
9
  <Container width={0}>
@@ -1,7 +1,6 @@
1
- import {type ResponsiveProp, stack} from '@sanity/ui/css'
2
- import type {Space} from '@sanity/ui/theme'
1
+ import {stack} from '@sanity/ui/css'
3
2
 
4
- import type {Props} from '../../types/props'
3
+ import type {Props} from '../../types'
5
4
  import {Box, type BoxElementType, type BoxOwnProps} from '../box/box'
6
5
 
7
6
  /** @public */
@@ -24,10 +23,7 @@ export type StackOwnProps = Omit<
24
23
  | 'justifyContent'
25
24
  | 'rows'
26
25
  | 'gridTemplateRows'
27
- > & {
28
- /** @deprecated Use `gap` instead. */
29
- space?: ResponsiveProp<Space>
30
- }
26
+ >
31
27
 
32
28
  /** @public */
33
29
  export type StackElementType = BoxElementType
@@ -42,12 +38,11 @@ export type StackProps<E extends StackElementType = StackElementType> = Props<St
42
38
  */
43
39
  export function Stack<E extends StackElementType = typeof DEFAULT_STACK_ELEMENT>(
44
40
  props: StackProps<E>,
45
- ) {
41
+ ): React.JSX.Element {
46
42
  const {
47
43
  as = DEFAULT_STACK_ELEMENT,
48
44
  className,
49
45
  gap,
50
- space,
51
46
  ...rest
52
47
  } = props as StackProps<typeof DEFAULT_STACK_ELEMENT>
53
48
 
@@ -59,7 +54,7 @@ export function Stack<E extends StackElementType = typeof DEFAULT_STACK_ELEMENT>
59
54
  gridAutoRows="min"
60
55
  className={stack({className})}
61
56
  display="grid"
62
- gap={gap ?? space}
57
+ gap={gap}
63
58
  />
64
59
  )
65
60
  }
@@ -1,7 +1,7 @@
1
1
  import {Box, Flex, Switch, Text} from '@sanity/ui'
2
2
  import {useCallback, useState} from 'react'
3
3
 
4
- export default function ExampleStory() {
4
+ export default function ExampleStory(): React.JSX.Element {
5
5
  const [checked, setChecked] = useState<boolean | undefined>(undefined)
6
6
  const indeterminate = checked === undefined
7
7
  const handleChange = useCallback((event: React.FormEvent<HTMLInputElement>) => {
@@ -1,11 +1,13 @@
1
- import {defineScope} from '@sanity/ui-workshop'
1
+ import type {WorkshopScope} from '@sanity/ui-workshop'
2
2
  import {lazy} from 'react'
3
3
 
4
- export default defineScope({
4
+ const scope: WorkshopScope = {
5
5
  name: 'primitives/switch',
6
6
  title: 'Switch',
7
7
  stories: [
8
8
  {name: 'props', title: 'Props', component: lazy(() => import('./props'))},
9
9
  {name: 'example', title: 'Example', component: lazy(() => import('./example'))},
10
10
  ],
11
- })
11
+ }
12
+
13
+ export default scope
@@ -2,7 +2,7 @@ import {Flex, Switch} from '@sanity/ui'
2
2
  import {useBoolean} from '@sanity/ui-workshop'
3
3
  import {useCallback} from 'react'
4
4
 
5
- export default function PropsStory() {
5
+ export default function PropsStory(): React.JSX.Element {
6
6
  const checked = useBoolean('Checked', false)
7
7
  const indeterminate = useBoolean('Indeterminate', false)
8
8
  const readOnly = useBoolean('Read only', false)