@sanity/ui 3.0.0-static.2 → 3.0.0-static.20

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 (770) hide show
  1. package/README.md +6 -6
  2. package/bin/{ui.js → sanity-ui.cjs} +1 -1
  3. package/dist/_chunks-cjs/_visual-editing.cjs +3152 -0
  4. package/dist/_chunks-cjs/_visual-editing.cjs.map +1 -0
  5. package/dist/_chunks-cjs/buildCommand.cjs +71 -0
  6. package/dist/_chunks-cjs/buildCommand.cjs.map +1 -0
  7. package/dist/_chunks-cjs/{refractor.js → refractor.cjs} +1 -1
  8. package/dist/_chunks-cjs/refractor.cjs.map +1 -0
  9. package/dist/_chunks-es/_visual-editing.js +3163 -0
  10. package/dist/_chunks-es/_visual-editing.js.map +1 -0
  11. package/dist/_chunks-es/{refractor.mjs → refractor.js} +1 -1
  12. package/dist/_chunks-es/refractor.js.map +1 -0
  13. package/dist/_visual-editing.cjs +30 -0
  14. package/dist/_visual-editing.cjs.map +1 -0
  15. package/dist/_visual-editing.d.cts +959 -0
  16. package/dist/_visual-editing.d.ts +545 -392
  17. package/dist/_visual-editing.js +29 -30
  18. package/dist/_visual-editing.js.map +1 -1
  19. package/dist/{cli.js → cli.cjs} +4 -4
  20. package/dist/cli.cjs.map +1 -0
  21. package/dist/css.cjs +4353 -0
  22. package/dist/css.cjs.map +1 -0
  23. package/dist/css.d.cts +10251 -0
  24. package/dist/css.d.ts +9714 -1598
  25. package/dist/css.js +3460 -3818
  26. package/dist/css.js.map +1 -1
  27. package/dist/index.cjs +1594 -0
  28. package/dist/index.cjs.map +1 -0
  29. package/dist/{index.d.mts → index.d.cts} +1435 -918
  30. package/dist/index.d.ts +1435 -918
  31. package/dist/index.js +622 -572
  32. package/dist/index.js.map +1 -1
  33. package/dist/{theme.mjs → theme.cjs} +2821 -2570
  34. package/dist/theme.cjs.map +1 -0
  35. package/dist/{theme.d.mts → theme.d.cts} +330 -310
  36. package/dist/theme.d.ts +330 -310
  37. package/dist/theme.js +2822 -2569
  38. package/dist/theme.js.map +1 -1
  39. package/dist/ui-system.css +24528 -0
  40. package/dist/ui-system.min.css +1 -0
  41. package/dist/ui-theme.css +1184 -0
  42. package/dist/ui-theme.min.css +1 -0
  43. package/dist/ui.css +25715 -0
  44. package/dist/ui.min.css +1 -0
  45. package/exports/_visual-editing.ts +0 -1
  46. package/package.json +78 -78
  47. package/src/cli/buildCommand.ts +77 -25
  48. package/src/cli/index.ts +2 -14
  49. package/src/core/StyleTags.tsx +8 -14
  50. package/src/core/_compat/helpers.ts +72 -0
  51. package/src/core/_compat/index.ts +1 -6
  52. package/src/core/_compat/styles/_responsive.ts +1 -1
  53. package/src/core/_compat/theme/theme.test.tsx +4 -5
  54. package/src/core/_compat/theme/themeColorProvider.tsx +4 -8
  55. package/src/core/_compat/theme/themeContext.ts +5 -5
  56. package/src/core/_compat/theme/themeProvider.tsx +19 -11
  57. package/src/core/_compat/theme/types.ts +2 -4
  58. package/src/core/_compat/theme/useRootTheme.ts +2 -4
  59. package/src/core/_compat/theme/useTheme.ts +3 -7
  60. package/src/core/_compat/types.ts +0 -73
  61. package/src/core/components/autocomplete/__workshop__/async.tsx +6 -6
  62. package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +11 -18
  63. package/src/core/components/autocomplete/__workshop__/custom.tsx +21 -20
  64. package/src/core/components/autocomplete/__workshop__/example.tsx +17 -17
  65. package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +5 -5
  66. package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +57 -59
  67. package/src/core/components/autocomplete/autocomplete.tsx +92 -126
  68. package/src/core/components/autocomplete/autocompleteOption.tsx +3 -1
  69. package/src/core/components/autocomplete/autocompleteReducer.ts +1 -1
  70. package/src/core/components/autocomplete/constants.ts +1 -1
  71. package/src/core/components/autocomplete/types.ts +4 -9
  72. package/src/core/components/breadcrumbs/__workshop__/example.tsx +2 -3
  73. package/src/core/components/breadcrumbs/breadcrumbs.tsx +34 -28
  74. package/src/core/components/dialog/__workshop__/activate.tsx +4 -4
  75. package/src/core/components/dialog/__workshop__/autoFocus.tsx +2 -2
  76. package/src/core/components/dialog/__workshop__/onScroll.tsx +16 -4
  77. package/src/core/components/dialog/__workshop__/position.tsx +4 -4
  78. package/src/core/components/dialog/__workshop__/props.tsx +7 -7
  79. package/src/core/components/dialog/__workshop__/wrapped.tsx +2 -2
  80. package/src/core/components/dialog/dialog.tsx +104 -300
  81. package/src/core/components/dialog/dialogCard.tsx +198 -0
  82. package/src/core/components/dialog/dialogContext.ts +1 -1
  83. package/src/core/components/dialog/dialogProvider.tsx +3 -3
  84. package/src/core/components/dialog/isTargetWithinScope.ts +14 -0
  85. package/src/core/components/dialog/useDialog.ts +1 -1
  86. package/src/core/components/hotkeys/hotkeys.tsx +42 -26
  87. package/src/core/components/menu/__workshop__/asComponent.tsx +6 -6
  88. package/src/core/components/menu/__workshop__/closableMenuButton.tsx +5 -4
  89. package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +2 -2
  90. package/src/core/components/menu/__workshop__/customMenuItem.tsx +3 -3
  91. package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +1 -1
  92. package/src/core/components/menu/__workshop__/groups.tsx +2 -2
  93. package/src/core/components/menu/__workshop__/menuButton.tsx +4 -4
  94. package/src/core/components/menu/__workshop__/menuGroupRight.tsx +1 -1
  95. package/src/core/components/menu/__workshop__/nestedMenu.tsx +1 -1
  96. package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +13 -4
  97. package/src/core/components/menu/__workshop__/selectedItem.tsx +2 -2
  98. package/src/core/components/menu/__workshop__/tones.tsx +3 -3
  99. package/src/core/components/menu/__workshop__/withoutArrow.tsx +1 -1
  100. package/src/core/components/menu/menu.test.tsx +6 -7
  101. package/src/core/components/menu/menu.tsx +28 -34
  102. package/src/core/components/menu/menuButton.tsx +19 -23
  103. package/src/core/components/menu/menuContext.ts +1 -1
  104. package/src/core/components/menu/menuDivider.tsx +26 -14
  105. package/src/core/components/menu/menuGroup.tsx +39 -31
  106. package/src/core/components/menu/menuItem.tsx +59 -45
  107. package/src/core/components/menu/useMenu.ts +1 -1
  108. package/src/core/components/menu/useMenuController.ts +4 -4
  109. package/src/core/components/skeleton/__workshop__/delay.tsx +3 -3
  110. package/src/core/components/skeleton/__workshop__/skeleton.tsx +4 -4
  111. package/src/core/components/skeleton/codeSkeleton.tsx +53 -0
  112. package/src/core/components/skeleton/headingSkeleton.tsx +52 -0
  113. package/src/core/components/skeleton/index.ts +3 -0
  114. package/src/core/components/skeleton/labelSkeleton.tsx +51 -0
  115. package/src/core/components/skeleton/skeleton.tsx +40 -17
  116. package/src/core/components/skeleton/textSkeleton.tsx +32 -111
  117. package/src/core/components/tab/__workshop__/example.tsx +2 -2
  118. package/src/core/components/tab/tab.tsx +29 -25
  119. package/src/core/components/tab/tabList.tsx +51 -28
  120. package/src/core/components/tab/tabPanel.tsx +30 -21
  121. package/src/core/components/toast/__workshop__/hook.tsx +1 -1
  122. package/src/core/components/toast/__workshop__/toast.tsx +5 -5
  123. package/src/core/components/toast/toast.test.tsx +5 -5
  124. package/src/core/components/toast/toast.tsx +25 -22
  125. package/src/core/components/toast/toastContext.ts +1 -1
  126. package/src/core/components/toast/toastLayer.tsx +29 -11
  127. package/src/core/components/toast/toastProvider.tsx +3 -7
  128. package/src/core/components/toast/types.ts +3 -7
  129. package/src/core/components/toast/useToast.ts +2 -4
  130. package/src/core/components/tree/__workshop__/basic.perf.ts +1 -1
  131. package/src/core/components/tree/__workshop__/basic.tsx +1 -1
  132. package/src/core/components/tree/__workshop__/tabFromElement.tsx +1 -1
  133. package/src/core/components/tree/helpers.ts +1 -1
  134. package/src/core/components/tree/tree.tsx +198 -191
  135. package/src/core/components/tree/treeContext.ts +1 -1
  136. package/src/core/components/tree/treeGroup.tsx +26 -6
  137. package/src/core/components/tree/treeItem.tsx +45 -33
  138. package/src/core/components/tree/types.ts +2 -2
  139. package/src/core/components/tree/useTree.ts +1 -1
  140. package/src/core/constants.ts +6 -0
  141. package/src/core/hooks/useClickOutside.test.tsx +15 -16
  142. package/src/core/hooks/useClickOutside.ts +2 -6
  143. package/src/core/hooks/useClickOutsideEvent.test.tsx +4 -5
  144. package/src/core/hooks/useClickOutsideEvent.ts +3 -9
  145. package/src/core/hooks/useDelayed.test.ts +6 -7
  146. package/src/core/hooks/useDelayedState.ts +1 -1
  147. package/src/core/hooks/useElementRect/__workshop__/example.tsx +1 -1
  148. package/src/core/hooks/useElementSize.ts +1 -1
  149. package/src/core/hooks/useForwardedRef.ts +1 -1
  150. package/src/core/hooks/useMatchMedia.ts +13 -31
  151. package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +1 -1
  152. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +3 -18
  153. package/src/core/hooks/useMediaIndex/useMediaIndex.ts +12 -12
  154. package/src/core/hooks/usePrefersDark.hydration.test.tsx +4 -4
  155. package/src/core/hooks/usePrefersDark.test.tsx +1 -0
  156. package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +4 -4
  157. package/src/core/hooks/usePrefersReducedMotion.test.tsx +1 -0
  158. package/src/core/middleware/origin.ts +1 -1
  159. package/src/core/primitives/_selectable/selectable.tsx +34 -21
  160. package/src/core/primitives/avatar/__workshop__/asButton.tsx +2 -2
  161. package/src/core/primitives/avatar/__workshop__/stack.tsx +2 -2
  162. package/src/core/primitives/avatar/__workshop__/withinButton.tsx +2 -2
  163. package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +1 -1
  164. package/src/core/primitives/avatar/avatar.tsx +33 -36
  165. package/src/core/primitives/avatar/avatarCounter.tsx +35 -27
  166. package/src/core/primitives/avatar/avatarStack.tsx +35 -28
  167. package/src/core/primitives/avatar/types.ts +3 -3
  168. package/src/core/primitives/badge/__workshop__/props.tsx +6 -17
  169. package/src/core/primitives/badge/__workshop__/tones.tsx +1 -6
  170. package/src/core/primitives/badge/badge.test.tsx +2 -3
  171. package/src/core/primitives/badge/badge.tsx +34 -33
  172. package/src/core/primitives/badge/types.ts +2 -1
  173. package/src/core/primitives/box/__workshop__/props.tsx +2 -2
  174. package/src/core/primitives/box/__workshop__/responsive.tsx +2 -1
  175. package/src/core/primitives/box/box.tsx +76 -31
  176. package/src/core/primitives/button/__workshop__/custom.tsx +19 -42
  177. package/src/core/primitives/button/__workshop__/customIcons.tsx +3 -3
  178. package/src/core/primitives/button/__workshop__/disabled.tsx +9 -9
  179. package/src/core/primitives/button/__workshop__/props.tsx +19 -22
  180. package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +3 -3
  181. package/src/core/primitives/button/__workshop__/stacked.tsx +15 -16
  182. package/src/core/primitives/button/__workshop__/uploadButton.tsx +2 -1
  183. package/src/core/primitives/button/button.test.tsx +3 -18
  184. package/src/core/primitives/button/button.tsx +75 -73
  185. package/src/core/primitives/card/__workshop__/asButton.tsx +14 -14
  186. package/src/core/primitives/card/__workshop__/asComponent.tsx +3 -3
  187. package/src/core/primitives/card/__workshop__/checkered.tsx +1 -1
  188. package/src/core/primitives/card/__workshop__/index.ts +1 -1
  189. package/src/core/primitives/card/__workshop__/interactive.tsx +3 -4
  190. package/src/core/primitives/card/__workshop__/listNavigation.tsx +3 -3
  191. package/src/core/primitives/card/__workshop__/props.tsx +14 -17
  192. package/src/core/primitives/card/__workshop__/selected.tsx +10 -41
  193. package/src/core/primitives/card/__workshop__/{allTones.tsx → tones.tsx} +3 -3
  194. package/src/core/primitives/card/card.tsx +53 -43
  195. package/src/core/primitives/card/cardContext.ts +10 -0
  196. package/src/core/primitives/card/cardProvider.tsx +27 -0
  197. package/src/core/primitives/card/index.ts +2 -0
  198. package/src/core/primitives/card/types.ts +19 -3
  199. package/src/core/primitives/card/useCard.ts +8 -0
  200. package/src/core/primitives/checkbox/__workshop__/props.tsx +6 -4
  201. package/src/core/primitives/checkbox/__workshop__/tones.tsx +11 -20
  202. package/src/core/primitives/checkbox/checkbox.tsx +30 -21
  203. package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +1 -1
  204. package/src/core/primitives/code/__workshop__/props.tsx +4 -7
  205. package/src/core/primitives/code/code.tsx +28 -26
  206. package/src/core/primitives/container/__workshop__/example.tsx +2 -2
  207. package/src/core/primitives/container/container.tsx +29 -18
  208. package/src/core/primitives/flex/__workshop__/example.tsx +2 -2
  209. package/src/core/primitives/flex/flex.tsx +21 -19
  210. package/src/core/primitives/grid/grid.tsx +21 -16
  211. package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +2 -2
  212. package/src/core/primitives/heading/__workshop__/plain.tsx +12 -15
  213. package/src/core/primitives/heading/heading.tsx +46 -23
  214. package/src/core/primitives/inline/__workshop__/plain.tsx +2 -5
  215. package/src/core/primitives/inline/inline.tsx +27 -24
  216. package/src/core/primitives/inline/types.ts +1 -0
  217. package/src/core/primitives/kbd/kbd.tsx +29 -27
  218. package/src/core/primitives/label/__workshop__/plain.tsx +8 -17
  219. package/src/core/primitives/label/label.tsx +45 -30
  220. package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +6 -6
  221. package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +3 -3
  222. package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +1 -1
  223. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +3 -3
  224. package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +3 -4
  225. package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +10 -6
  226. package/src/core/primitives/popover/__workshop__/TestStory.tsx +5 -4
  227. package/src/core/primitives/popover/constants.ts +1 -1
  228. package/src/core/primitives/popover/floating-ui/size.ts +2 -2
  229. package/src/core/primitives/popover/helpers.ts +1 -1
  230. package/src/core/primitives/popover/popover.tsx +296 -334
  231. package/src/core/primitives/popover/popoverLayer.tsx +149 -0
  232. package/src/core/primitives/popover/types.ts +3 -2
  233. package/src/core/primitives/radio/__workshop__/example.tsx +3 -3
  234. package/src/core/primitives/radio/__workshop__/plain.tsx +3 -3
  235. package/src/core/primitives/radio/radio.tsx +33 -17
  236. package/src/core/primitives/select/__workshop__/plain.tsx +15 -6
  237. package/src/core/primitives/select/__workshop__/readOnly.tsx +1 -1
  238. package/src/core/primitives/select/select.tsx +29 -27
  239. package/src/core/primitives/spinner/__workshop__/Props.tsx +4 -5
  240. package/src/core/primitives/spinner/animatedSpinnerIcon.tsx +7 -5
  241. package/src/core/primitives/spinner/spinner.tsx +26 -14
  242. package/src/core/primitives/stack/__workshop__/plain.tsx +2 -2
  243. package/src/core/primitives/stack/stack.tsx +33 -19
  244. package/src/core/primitives/switch/switch.tsx +33 -16
  245. package/src/core/primitives/text/__workshop__/colored.tsx +6 -6
  246. package/src/core/primitives/text/__workshop__/example.tsx +9 -20
  247. package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +1 -1
  248. package/src/core/primitives/text/text.tsx +48 -30
  249. package/src/core/primitives/textArea/__workshop__/plain.tsx +44 -33
  250. package/src/core/primitives/textArea/textArea.tsx +48 -21
  251. package/src/core/primitives/textInput/__workshop__/customValidity.tsx +2 -2
  252. package/src/core/primitives/textInput/__workshop__/plain.tsx +36 -30
  253. package/src/core/primitives/textInput/__workshop__/states.tsx +5 -5
  254. package/src/core/primitives/textInput/__workshop__/tones.tsx +2 -2
  255. package/src/core/primitives/textInput/__workshop__/typed.tsx +2 -2
  256. package/src/core/primitives/textInput/textInput.tsx +52 -71
  257. package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +5 -5
  258. package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +2 -2
  259. package/src/core/primitives/tooltip/__workshop__/props.tsx +9 -8
  260. package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +1 -1
  261. package/src/core/primitives/tooltip/constants.ts +1 -1
  262. package/src/core/primitives/tooltip/tooltip.test.tsx +61 -60
  263. package/src/core/primitives/tooltip/tooltip.tsx +112 -87
  264. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +1 -1
  265. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +3 -3
  266. package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +1 -1
  267. package/src/core/primitives/tooltip/tooltipLayer.tsx +107 -0
  268. package/src/core/primitives/types.ts +16 -27
  269. package/src/core/types/avatar.ts +3 -6
  270. package/src/core/types/badge.ts +2 -4
  271. package/src/core/types/button.ts +2 -4
  272. package/src/core/types/card.ts +2 -4
  273. package/src/core/types/dialog.ts +1 -3
  274. package/src/core/types/props.ts +20 -10
  275. package/src/core/types/selectable.ts +1 -1
  276. package/src/core/utils/arrow/arrow.tsx +37 -28
  277. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +5 -5
  278. package/src/core/utils/boundaryElement/boundaryElementContext.ts +1 -1
  279. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +4 -8
  280. package/src/core/utils/boundaryElement/types.ts +1 -3
  281. package/src/core/utils/boundaryElement/useBoundaryElement.ts +2 -4
  282. package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +15 -8
  283. package/src/core/utils/elementQuery/elementQuery.tsx +43 -19
  284. package/src/core/utils/errorBoundary.tsx +6 -4
  285. package/src/core/utils/index.ts +0 -1
  286. package/src/core/utils/layer/__workshop__/multipleRoots.tsx +5 -5
  287. package/src/core/utils/layer/__workshop__/nested.tsx +3 -3
  288. package/src/core/utils/layer/__workshop__/responsiveZOffset.tsx +9 -5
  289. package/src/core/utils/layer/getLayerContext.test.ts +3 -1
  290. package/src/core/utils/layer/getLayerContext.ts +1 -1
  291. package/src/core/utils/layer/layer.test.tsx +5 -5
  292. package/src/core/utils/layer/layer.tsx +24 -94
  293. package/src/core/utils/layer/layerCard.tsx +92 -0
  294. package/src/core/utils/layer/layerContext.ts +1 -1
  295. package/src/core/utils/layer/layerProvider.tsx +13 -9
  296. package/src/core/utils/layer/useLayer.ts +2 -4
  297. package/src/core/utils/portal/__workshop__/named.tsx +3 -3
  298. package/src/core/utils/portal/portal.test.tsx +5 -5
  299. package/src/core/utils/portal/{portal.ts → portal.tsx} +17 -9
  300. package/src/core/utils/portal/portalContext.ts +1 -1
  301. package/src/core/utils/portal/portalProvider.tsx +4 -8
  302. package/src/core/utils/portal/types.ts +1 -3
  303. package/src/core/utils/portal/usePortal.ts +2 -4
  304. package/src/core/utils/srOnly/srOnly.tsx +27 -22
  305. package/src/core/utils/virtualList/__workshop__/infiniteList.tsx +1 -1
  306. package/src/core/utils/virtualList/virtualList.tsx +72 -54
  307. package/src/css/_assign.ts +3 -0
  308. package/src/css/_compileStyle.ts +156 -0
  309. package/src/css/_compileSystem.ts +7 -0
  310. package/src/css/_compileTheme.ts +13 -0
  311. package/src/css/_composeClassNames.ts +12 -0
  312. package/src/css/_fromEntries.ts +3 -0
  313. package/src/css/_getClassNames.ts +9 -0
  314. package/src/css/_hash.ts +9 -0
  315. package/src/css/_mergeStyles.ts +24 -0
  316. package/src/css/_resp.ts +2 -2
  317. package/src/css/_responsiveRule.ts +38 -0
  318. package/src/css/_scopeClassName.ts +9 -0
  319. package/src/css/_scopeClassNames.ts +12 -0
  320. package/src/css/_system.style.ts +166 -0
  321. package/src/css/aspects/border/border.style.ts +13 -0
  322. package/src/css/aspects/border/border.ts +14 -0
  323. package/src/css/{styles → aspects}/border/types.ts +1 -1
  324. package/src/css/aspects/boxSizing/boxSizing.style.ts +10 -0
  325. package/src/css/aspects/boxSizing/boxSizing.ts +8 -0
  326. package/src/css/aspects/boxSizing/index.ts +2 -0
  327. package/src/css/aspects/boxSizing/types.ts +9 -0
  328. package/src/css/aspects/display/display.style.ts +34 -0
  329. package/src/css/aspects/display/display.ts +8 -0
  330. package/src/css/{styles → aspects}/display/types.ts +3 -4
  331. package/src/css/aspects/flex/flex.ts +13 -0
  332. package/src/css/aspects/flex/flexAlign.style.ts +12 -0
  333. package/src/css/aspects/flex/flexDirection.style.ts +11 -0
  334. package/src/css/aspects/flex/flexJustify.style.ts +13 -0
  335. package/src/css/aspects/flex/flexWrap.style.ts +10 -0
  336. package/src/css/{styles → aspects}/flex/types.ts +5 -13
  337. package/src/css/aspects/flexItem/flex.style.ts +22 -0
  338. package/src/css/aspects/flexItem/flexItem.ts +8 -0
  339. package/src/css/aspects/flexItem/types.ts +25 -0
  340. package/src/css/aspects/font/font.style.ts +83 -0
  341. package/src/css/aspects/font/font.ts +7 -0
  342. package/src/css/aspects/font/types.ts +6 -0
  343. package/src/css/aspects/gap/gap.style.ts +21 -0
  344. package/src/css/aspects/gap/gap.ts +8 -0
  345. package/src/css/{styles → aspects}/gap/types.ts +2 -2
  346. package/src/css/{styles → aspects}/grid/grid.ts +6 -5
  347. package/src/css/aspects/grid/gridAutoColumns.style.ts +11 -0
  348. package/src/css/aspects/grid/gridAutoFlow.style.ts +11 -0
  349. package/src/css/aspects/grid/gridAutoRows.style.ts +11 -0
  350. package/src/css/aspects/grid/gridColumns.style.ts +18 -0
  351. package/src/css/aspects/grid/gridRows.style.ts +18 -0
  352. package/src/css/{styles → aspects}/grid/types.ts +8 -12
  353. package/src/css/aspects/gridItem/gridColumn.style.ts +20 -0
  354. package/src/css/aspects/gridItem/gridColumnEnd.style.ts +20 -0
  355. package/src/css/aspects/gridItem/gridColumnStart.style.ts +20 -0
  356. package/src/css/{styles → aspects}/gridItem/gridItem.ts +4 -4
  357. package/src/css/aspects/gridItem/gridRow.style.ts +20 -0
  358. package/src/css/aspects/gridItem/gridRowEnd.style.ts +20 -0
  359. package/src/css/aspects/gridItem/gridRowStart.style.ts +20 -0
  360. package/src/css/{styles → aspects}/gridItem/types.ts +8 -19
  361. package/src/css/aspects/height/height.style.ts +9 -0
  362. package/src/css/aspects/height/height.ts +16 -0
  363. package/src/css/aspects/height/index.ts +1 -0
  364. package/src/css/{styles → aspects}/index.ts +5 -0
  365. package/src/css/aspects/inset/inset.style.ts +12 -0
  366. package/src/css/{styles → aspects}/inset/inset.ts +4 -3
  367. package/src/css/{styles → aspects}/inset/types.ts +1 -1
  368. package/src/css/aspects/margin/margin.style.ts +56 -0
  369. package/src/css/{styles → aspects}/margin/margin.ts +4 -3
  370. package/src/css/aspects/margin/types.ts +17 -0
  371. package/src/css/aspects/maxWidth/maxWidth.style.ts +16 -0
  372. package/src/css/aspects/maxWidth/maxWidth.ts +8 -0
  373. package/src/css/aspects/maxWidth/types.ts +8 -0
  374. package/src/css/aspects/minHeight/index.ts +2 -0
  375. package/src/css/aspects/minHeight/minHeight.style.ts +9 -0
  376. package/src/css/aspects/minHeight/minHeight.ts +8 -0
  377. package/src/css/aspects/minHeight/types.ts +9 -0
  378. package/src/css/aspects/minWidth/index.ts +2 -0
  379. package/src/css/aspects/minWidth/minWidth.style.ts +13 -0
  380. package/src/css/aspects/minWidth/minWidth.ts +8 -0
  381. package/src/css/aspects/minWidth/types.ts +9 -0
  382. package/src/css/aspects/outline/outline.style.ts +9 -0
  383. package/src/css/aspects/overflow/overflow.style.ts +11 -0
  384. package/src/css/{styles → aspects}/overflow/overflow.ts +4 -3
  385. package/src/css/{styles → aspects}/overflow/types.ts +1 -1
  386. package/src/css/aspects/padding/padding.style.ts +43 -0
  387. package/src/css/{styles → aspects}/padding/padding.ts +4 -3
  388. package/src/css/{styles → aspects}/padding/types.ts +2 -2
  389. package/src/css/aspects/pointerEvents/pointerEvents.style.ts +13 -0
  390. package/src/css/aspects/pointerEvents/pointerEvents.ts +7 -0
  391. package/src/css/aspects/position/position.style.ts +12 -0
  392. package/src/css/aspects/position/position.ts +8 -0
  393. package/src/css/{styles → aspects}/position/types.ts +1 -1
  394. package/src/css/aspects/radius/radius.style.ts +16 -0
  395. package/src/css/aspects/radius/radius.ts +8 -0
  396. package/src/css/aspects/radius/types.ts +8 -0
  397. package/src/css/aspects/shadow/shadow.style.ts +24 -0
  398. package/src/css/aspects/shadow/shadow.ts +8 -0
  399. package/src/css/aspects/shadow/types.ts +8 -0
  400. package/src/css/aspects/textAlign/index.ts +2 -0
  401. package/src/css/aspects/textAlign/textAlign.style.ts +26 -0
  402. package/src/css/aspects/textAlign/textAlign.ts +8 -0
  403. package/src/css/aspects/textAlign/types.ts +7 -0
  404. package/src/css/aspects/textOverflow/textOverflow.style.ts +21 -0
  405. package/src/css/aspects/textOverflow/textOverflow.ts +7 -0
  406. package/src/css/{styles → aspects}/textOverflow/types.ts +1 -0
  407. package/src/css/aspects/width/types.ts +11 -0
  408. package/src/css/aspects/width/width.style.ts +11 -0
  409. package/src/css/aspects/width/width.ts +8 -0
  410. package/src/css/components/breadcrumbs/breadcrumbs.style.ts +9 -0
  411. package/src/css/components/breadcrumbs/breadcrumbs.ts +3 -2
  412. package/src/css/components/dialog/dialog.style.ts +77 -0
  413. package/src/css/components/dialog/dialog.ts +17 -8
  414. package/src/css/components/menu/menu.style.ts +17 -0
  415. package/src/css/components/menu/menu.ts +5 -3
  416. package/src/css/components/skeleton/skeleton.style.ts +104 -0
  417. package/src/css/components/skeleton/skeleton.ts +13 -8
  418. package/src/css/components/skeleton/types.ts +8 -6
  419. package/src/css/components/toast/toast.style.ts +20 -0
  420. package/src/css/components/toast/toast.ts +11 -6
  421. package/src/css/components/tree/tree.style.ts +39 -0
  422. package/src/css/components/tree/tree.ts +3 -2
  423. package/src/css/constants.ts +10 -0
  424. package/src/css/index.ts +8 -8
  425. package/src/css/prefix/constants.ts +6 -0
  426. package/src/css/prefix/types.ts +1 -0
  427. package/src/css/primitives/_arrow/{rules.ts → _arrow.style.ts} +23 -25
  428. package/src/css/primitives/_arrow/_arrow.ts +13 -6
  429. package/src/css/primitives/_input/_input.style.ts +235 -0
  430. package/src/css/primitives/_input/input.ts +18 -13
  431. package/src/css/primitives/_input/types.ts +3 -3
  432. package/src/css/primitives/_selectable/{rules.ts → _selectable.style.ts} +36 -36
  433. package/src/css/primitives/_selectable/selectable.ts +5 -5
  434. package/src/css/primitives/_selectable/types.ts +2 -2
  435. package/src/css/primitives/avatar/{rules.ts → avatar.style.ts} +62 -67
  436. package/src/css/primitives/avatar/avatar.ts +14 -8
  437. package/src/css/primitives/avatar/types.ts +4 -3
  438. package/src/css/primitives/badge/badge.style.ts +21 -0
  439. package/src/css/primitives/badge/badge.ts +8 -4
  440. package/src/css/primitives/badge/types.ts +2 -2
  441. package/src/css/primitives/box/box.style.ts +22 -0
  442. package/src/css/primitives/box/box.ts +16 -10
  443. package/src/css/primitives/box/types.ts +12 -15
  444. package/src/css/primitives/button/button.style.ts +275 -0
  445. package/src/css/primitives/button/button.ts +9 -30
  446. package/src/css/primitives/button/index.ts +1 -0
  447. package/src/css/primitives/button/types.ts +13 -0
  448. package/src/css/primitives/card/card.style.ts +295 -0
  449. package/src/css/primitives/card/card.ts +7 -11
  450. package/src/css/primitives/card/types.ts +4 -5
  451. package/src/css/primitives/checkbox/checkbox.style.ts +178 -0
  452. package/src/css/primitives/checkbox/checkbox.ts +5 -3
  453. package/src/css/primitives/code/code.style.ts +61 -0
  454. package/src/css/primitives/code/code.ts +8 -4
  455. package/src/css/primitives/code/types.ts +2 -2
  456. package/src/css/primitives/container/container.style.ts +10 -0
  457. package/src/css/primitives/container/container.ts +6 -4
  458. package/src/css/primitives/container/types.ts +3 -2
  459. package/src/css/primitives/heading/heading.style.ts +56 -0
  460. package/src/css/primitives/heading/heading.ts +13 -10
  461. package/src/css/primitives/heading/types.ts +4 -2
  462. package/src/css/primitives/kbd/kbd.style.ts +19 -0
  463. package/src/css/primitives/kbd/kbd.ts +6 -4
  464. package/src/css/primitives/kbd/types.ts +1 -1
  465. package/src/css/primitives/label/label.style.ts +52 -0
  466. package/src/css/primitives/label/label.ts +7 -9
  467. package/src/css/primitives/label/types.ts +11 -4
  468. package/src/css/primitives/popover/popover.style.ts +9 -0
  469. package/src/css/primitives/popover/popover.ts +8 -2
  470. package/src/css/primitives/radio/radio.style.ts +84 -0
  471. package/src/css/primitives/radio/radio.ts +3 -2
  472. package/src/css/primitives/select/{rules.ts → select.style.ts} +8 -6
  473. package/src/css/primitives/select/select.ts +7 -4
  474. package/src/css/primitives/select/types.ts +1 -1
  475. package/src/css/primitives/spinner/spinner.style.ts +22 -0
  476. package/src/css/primitives/spinner/spinner.ts +5 -3
  477. package/src/css/primitives/stack/index.ts +1 -0
  478. package/src/css/primitives/stack/stack.style.ts +13 -0
  479. package/src/css/primitives/stack/stack.ts +6 -0
  480. package/src/css/primitives/switch/switch.style.ts +102 -0
  481. package/src/css/primitives/switch/switch.ts +11 -6
  482. package/src/css/primitives/text/text.style.ts +65 -0
  483. package/src/css/primitives/text/text.ts +7 -9
  484. package/src/css/primitives/text/types.ts +7 -2
  485. package/src/css/primitives/textArea/textArea.style.ts +11 -0
  486. package/src/css/primitives/textArea/textArea.ts +5 -3
  487. package/src/css/primitives/textArea/types.ts +1 -1
  488. package/src/css/primitives/textInput/textInput.style.ts +46 -0
  489. package/src/css/primitives/textInput/textInput.ts +20 -4
  490. package/src/css/primitives/textInput/types.ts +2 -8
  491. package/src/css/primitives/token/token.style.ts +50 -0
  492. package/src/css/primitives/tooltip/tooltip.style.ts +9 -0
  493. package/src/css/primitives/tooltip/tooltip.ts +3 -6
  494. package/src/css/renderColor.ts +31 -0
  495. package/src/css/responsiveRules.ts +12 -19
  496. package/src/css/theme/index.ts +14 -0
  497. package/src/css/theme/lib/contract/buildVarContract.ts +76 -0
  498. package/src/css/theme/lib/contract/index.ts +2 -0
  499. package/src/css/theme/lib/contract/types.ts +15 -0
  500. package/src/css/theme/resolveTheme.ts +863 -0
  501. package/src/css/types.ts +29 -755
  502. package/src/css/util.ts +5 -0
  503. package/src/css/utils/srOnly/srOnly.style.ts +14 -0
  504. package/src/css/utils/srOnly/srOnly.ts +4 -2
  505. package/src/theme/getScopedTheme.ts +4 -4
  506. package/src/theme/index.ts +0 -5
  507. package/src/theme/types.ts +6 -10
  508. package/src/theme/v0/color/_generic.ts +1 -1
  509. package/src/theme/v0/color/button.ts +1 -1
  510. package/src/theme/v0/color/card.ts +1 -1
  511. package/src/theme/v0/color/color.ts +11 -11
  512. package/src/theme/v0/color/input.ts +1 -1
  513. package/src/theme/v0/color/muted.ts +1 -1
  514. package/src/theme/v0/color/selectable.ts +1 -1
  515. package/src/theme/v0/color/solid.ts +1 -1
  516. package/src/theme/v0/color/spot.ts +1 -1
  517. package/src/theme/v0/focusRing.ts +1 -3
  518. package/src/theme/v0/font.ts +6 -19
  519. package/src/theme/v0/layer.ts +1 -3
  520. package/src/theme/v0/shadow.ts +2 -6
  521. package/src/theme/v0/styles.ts +1 -1
  522. package/src/theme/v0/theme.ts +7 -7
  523. package/src/theme/v2/avatar.ts +2 -4
  524. package/src/theme/{build → v2/build}/_deprecated/color/_selectable/createSelectableTones.ts +3 -3
  525. package/src/theme/{build → v2/build}/_deprecated/color/_solid/createSolidTones.ts +2 -2
  526. package/src/theme/{build → v2/build}/_deprecated/color/button/createButtonModes.ts +7 -2
  527. package/src/theme/{build → v2/build}/_deprecated/color/button/createButtonTones.ts +4 -4
  528. package/src/theme/{build → v2/build}/_deprecated/color/card/createCardStates.ts +3 -3
  529. package/src/theme/{build → v2/build}/_deprecated/color/color.test.ts +1 -1
  530. package/src/theme/{build → v2/build}/_deprecated/color/defaults.ts +1 -1
  531. package/src/theme/{build → v2/build}/_deprecated/color/factory.ts +3 -3
  532. package/src/theme/{build → v2/build}/_deprecated/color/input/createInputModes.ts +7 -2
  533. package/src/theme/{build → v2/build}/_deprecated/color/muted/createMuted.ts +2 -2
  534. package/src/theme/{build → v2/build}/_deprecated/color/spot/createSpot.ts +2 -2
  535. package/src/theme/{build → v2/build}/buildColorTheme.test.ts +3 -1
  536. package/src/theme/{build → v2/build}/buildColorTheme.ts +24 -24
  537. package/src/theme/{build → v2/build}/buildTheme.test.ts +10 -8
  538. package/src/theme/v2/build/buildTheme.ts +12 -0
  539. package/src/theme/{build → v2/build}/colorToken/colorToken.ts +2 -2
  540. package/src/theme/{build → v2/build}/colorToken/compileColorToken.ts +1 -1
  541. package/src/theme/{build → v2/build}/colorToken/types.ts +2 -2
  542. package/src/theme/{build → v2/build}/lib/color-fns/blend/mix.ts +1 -1
  543. package/src/theme/{build → v2/build}/lib/color-fns/blend/multiply.ts +1 -1
  544. package/src/theme/{build → v2/build}/lib/color-fns/blend/screen.ts +1 -1
  545. package/src/theme/{build → v2/build}/lib/color-fns/color-fns.test.ts +1 -1
  546. package/src/theme/{build → v2/build}/lib/color-fns/contrastRatio.ts +5 -2
  547. package/src/theme/{build → v2/build}/lib/color-fns/convert.ts +1 -1
  548. package/src/theme/{build → v2/build}/lib/color-fns/parse.ts +1 -1
  549. package/src/theme/{build → v2/build}/mixThemeColor.test.ts +2 -0
  550. package/src/theme/{build → v2/build}/mixThemeColor.ts +1 -1
  551. package/src/theme/{build → v2/build}/renderColorTheme.ts +27 -27
  552. package/src/theme/{build → v2/build}/renderColorValue.ts +3 -3
  553. package/src/theme/{build → v2/build}/resolveColorTokens.ts +13 -13
  554. package/src/theme/v2/color/_helpers.ts +2 -2
  555. package/src/theme/v2/color/_system.ts +2 -4
  556. package/src/theme/v2/color/avatar.ts +3 -7
  557. package/src/theme/v2/color/badge.ts +3 -7
  558. package/src/theme/v2/color/button.ts +5 -11
  559. package/src/theme/v2/color/color.ts +10 -16
  560. package/src/theme/v2/color/input.ts +8 -10
  561. package/src/theme/v2/color/kbd.ts +1 -3
  562. package/src/theme/v2/color/selectable.ts +4 -8
  563. package/src/theme/v2/color/state.ts +5 -7
  564. package/src/theme/v2/color/syntax.ts +1 -3
  565. package/src/theme/{config → v2/config}/helpers.ts +6 -13
  566. package/src/theme/{config → v2/config}/system.ts +11 -12
  567. package/src/theme/{config → v2/config}/tokens/color/types.ts +14 -10
  568. package/src/theme/{config → v2/config}/tokens/index.ts +0 -1
  569. package/src/theme/{config → v2/config}/tokens/parseTokenValue.test.ts +2 -0
  570. package/src/theme/{config → v2/config}/tokens/parseTokenValue.ts +2 -2
  571. package/src/theme/{config → v2/config}/tokens/types.ts +3 -3
  572. package/src/theme/{config → v2/config}/types.ts +8 -6
  573. package/src/theme/{defaults → v2/defaults}/colorPalette.ts +1 -1
  574. package/src/theme/{defaults → v2/defaults}/colorTokens.ts +3 -3
  575. package/src/theme/{defaults → v2/defaults}/config.ts +2 -2
  576. package/src/theme/{defaults → v2/defaults}/fonts.ts +5 -6
  577. package/src/theme/v2/index.ts +2 -0
  578. package/src/theme/v2/input.ts +2 -4
  579. package/src/theme/v2/theme.ts +10 -14
  580. package/src/theme/{_constants.ts → v3/_constants.ts} +6 -3
  581. package/src/theme/v3/{color/parseColor.ts → _parseColorToken.ts} +59 -46
  582. package/src/theme/v3/buildTheme_v3.ts +14 -10
  583. package/src/theme/v3/color/_constants.ts +15 -0
  584. package/src/theme/v3/color/avatar.ts +14 -0
  585. package/src/theme/v3/color/card.ts +58 -95
  586. package/src/theme/v3/color/color.ts +75 -71
  587. package/src/theme/v3/color/element.ts +8 -8
  588. package/src/theme/v3/color/index.ts +2 -2
  589. package/src/theme/v3/color/token.ts +19 -4
  590. package/src/theme/v3/color/tokens.ts +2 -2
  591. package/src/theme/v3/defaultFonts.ts +250 -0
  592. package/src/theme/v3/defaultTokens.ts +199 -0
  593. package/src/theme/v3/index.ts +4 -1
  594. package/src/theme/{palette → v3/palette}/constants.ts +3 -3
  595. package/src/theme/v3/palette/index.ts +2 -0
  596. package/src/theme/v3/palette/types.ts +7 -0
  597. package/src/theme/v3/resolveTokens.ts +70 -65
  598. package/src/theme/v3/tokens.ts +2 -2
  599. package/src/theme/v3/types.ts +95 -11
  600. package/src/theme/versioning/getTheme_v2.ts +3 -3
  601. package/src/theme/versioning/is_v0.ts +2 -2
  602. package/src/theme/versioning/is_v2.ts +2 -2
  603. package/src/theme/versioning/themeColor_v0_v2.ts +2 -2
  604. package/src/theme/versioning/themeColor_v2_v2_9.ts +1 -1
  605. package/src/theme/versioning/themeColor_v3_v2.ts +229 -52
  606. package/src/theme/versioning/v0_v2.ts +3 -3
  607. package/src/theme/versioning/v2_v0.ts +4 -4
  608. package/src/theme/versioning/v3_v2.ts +39 -38
  609. package/dist/_chunks-cjs/_visual-editing.js +0 -3059
  610. package/dist/_chunks-cjs/_visual-editing.js.map +0 -1
  611. package/dist/_chunks-cjs/buildCommand.js +0 -32
  612. package/dist/_chunks-cjs/buildCommand.js.map +0 -1
  613. package/dist/_chunks-cjs/refractor.js.map +0 -1
  614. package/dist/_chunks-cjs/v3_v2.js +0 -251
  615. package/dist/_chunks-cjs/v3_v2.js.map +0 -1
  616. package/dist/_chunks-es/_visual-editing.mjs +0 -3066
  617. package/dist/_chunks-es/_visual-editing.mjs.map +0 -1
  618. package/dist/_chunks-es/refractor.mjs.map +0 -1
  619. package/dist/_chunks-es/v3_v2.mjs +0 -252
  620. package/dist/_chunks-es/v3_v2.mjs.map +0 -1
  621. package/dist/_visual-editing.d.mts +0 -806
  622. package/dist/_visual-editing.mjs +0 -31
  623. package/dist/_visual-editing.mjs.map +0 -1
  624. package/dist/cli.js.map +0 -1
  625. package/dist/css.d.mts +0 -2135
  626. package/dist/css.mjs +0 -4713
  627. package/dist/css.mjs.map +0 -1
  628. package/dist/index.mjs +0 -1542
  629. package/dist/index.mjs.map +0 -1
  630. package/dist/sanity-palette.css +0 -9
  631. package/dist/sanity-theme.css +0 -1
  632. package/dist/system.css +0 -3577
  633. package/dist/theme.mjs.map +0 -1
  634. package/src/core/primitives/popover/popoverCard.tsx +0 -148
  635. package/src/core/primitives/tooltip/tooltipCard.tsx +0 -115
  636. package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +0 -23
  637. package/src/core/utils/conditionalWrapper/index.ts +0 -1
  638. package/src/css/compile/compilePalette.ts +0 -60
  639. package/src/css/compile/compileRule.ts +0 -90
  640. package/src/css/compile/compileRules.test.ts +0 -35
  641. package/src/css/compile/compileRules.ts +0 -40
  642. package/src/css/compile/compileSystem.ts +0 -7
  643. package/src/css/compile/compileTheme.ts +0 -15
  644. package/src/css/compile/compileTheme_v3.ts +0 -410
  645. package/src/css/compile/types.ts +0 -6
  646. package/src/css/components/breadcrumbs/rules.ts +0 -25
  647. package/src/css/components/dialog/rules.ts +0 -76
  648. package/src/css/components/menu/rules.ts +0 -15
  649. package/src/css/components/skeleton/rules.ts +0 -112
  650. package/src/css/components/toast/rules.ts +0 -17
  651. package/src/css/components/tree/rules.ts +0 -168
  652. package/src/css/composeClassNames.ts +0 -13
  653. package/src/css/primitives/_input/rules.ts +0 -163
  654. package/src/css/primitives/_selectable/__style.ts +0 -117
  655. package/src/css/primitives/_selectable/_contants.ts +0 -11
  656. package/src/css/primitives/badge/rules.ts +0 -22
  657. package/src/css/primitives/box/rules.ts +0 -28
  658. package/src/css/primitives/button/_constants.ts +0 -17
  659. package/src/css/primitives/button/rules.ts +0 -293
  660. package/src/css/primitives/card/_constants.ts +0 -13
  661. package/src/css/primitives/card/rules.ts +0 -471
  662. package/src/css/primitives/checkbox/__styles.ts +0 -129
  663. package/src/css/primitives/checkbox/rules.ts +0 -152
  664. package/src/css/primitives/code/rules.ts +0 -96
  665. package/src/css/primitives/container/rules.ts +0 -8
  666. package/src/css/primitives/heading/rules.ts +0 -155
  667. package/src/css/primitives/kbd/rules.ts +0 -20
  668. package/src/css/primitives/label/rules.ts +0 -137
  669. package/src/css/primitives/popover/rules.ts +0 -5
  670. package/src/css/primitives/radio/rules.ts +0 -121
  671. package/src/css/primitives/spinner/rules.ts +0 -20
  672. package/src/css/primitives/switch/rules.ts +0 -340
  673. package/src/css/primitives/text/rules.ts +0 -164
  674. package/src/css/primitives/textArea/rules.ts +0 -7
  675. package/src/css/primitives/textInput/rules.ts +0 -224
  676. package/src/css/primitives/token/rules.ts +0 -45
  677. package/src/css/primitives/tooltip/rules.ts +0 -19
  678. package/src/css/rules.ts +0 -113
  679. package/src/css/styles/border/border.ts +0 -22
  680. package/src/css/styles/border/rules.ts +0 -24
  681. package/src/css/styles/display/display.ts +0 -7
  682. package/src/css/styles/display/rules.ts +0 -62
  683. package/src/css/styles/flex/flex.ts +0 -20
  684. package/src/css/styles/flex/rules.ts +0 -28
  685. package/src/css/styles/flexItem/flexItem.ts +0 -8
  686. package/src/css/styles/flexItem/rules.ts +0 -12
  687. package/src/css/styles/flexItem/types.ts +0 -11
  688. package/src/css/styles/font/font.ts +0 -17
  689. package/src/css/styles/font/rules.ts +0 -148
  690. package/src/css/styles/font/types.ts +0 -12
  691. package/src/css/styles/gap/gap.ts +0 -8
  692. package/src/css/styles/gap/rules.ts +0 -34
  693. package/src/css/styles/grid/rules.ts +0 -146
  694. package/src/css/styles/gridItem/rules.ts +0 -96
  695. package/src/css/styles/height/rules.ts +0 -7
  696. package/src/css/styles/inset/rules.ts +0 -16
  697. package/src/css/styles/margin/rules.ts +0 -64
  698. package/src/css/styles/margin/types.ts +0 -11
  699. package/src/css/styles/maxWidth/maxWidth.ts +0 -6
  700. package/src/css/styles/maxWidth/rules.ts +0 -13
  701. package/src/css/styles/maxWidth/types.ts +0 -7
  702. package/src/css/styles/outline/rules.ts +0 -7
  703. package/src/css/styles/overflow/rules.ts +0 -9
  704. package/src/css/styles/padding/rules.ts +0 -62
  705. package/src/css/styles/pointerEvents/pointerEvents.ts +0 -6
  706. package/src/css/styles/pointerEvents/rules.ts +0 -11
  707. package/src/css/styles/position/position.ts +0 -7
  708. package/src/css/styles/position/rules.ts +0 -24
  709. package/src/css/styles/radius/radius.ts +0 -8
  710. package/src/css/styles/radius/rules.ts +0 -13
  711. package/src/css/styles/radius/types.ts +0 -8
  712. package/src/css/styles/shadow/rules.ts +0 -53
  713. package/src/css/styles/shadow/shadow.ts +0 -7
  714. package/src/css/styles/shadow/types.ts +0 -8
  715. package/src/css/styles/textOverflow/rules.ts +0 -17
  716. package/src/css/styles/textOverflow/textOverflow.ts +0 -6
  717. package/src/css/styles/width/rules.ts +0 -7
  718. package/src/css/styles/width/types.ts +0 -9
  719. package/src/css/styles/width/width.ts +0 -6
  720. package/src/css/utils/srOnly/rules.ts +0 -11
  721. package/src/css/varNames.ts +0 -473
  722. package/src/css/vars.ts +0 -443
  723. package/src/theme/_types.ts +0 -41
  724. package/src/theme/build/buildTheme.ts +0 -12
  725. package/src/theme/build/theme.test.ts +0 -27
  726. package/src/theme/config/tokens/parseTokenKey.test.ts +0 -64
  727. package/src/theme/config/tokens/parseTokenKey.ts +0 -67
  728. package/src/theme/palette/types.ts +0 -16
  729. package/src/theme/v3/buildTheme_v3.test.ts +0 -40
  730. package/src/theme/v3/color/buildColor_v3.ts +0 -193
  731. package/src/theme/v3/color/parseColor.test.ts +0 -79
  732. package/src/theme/v3/color/renderColor.test.ts +0 -19
  733. package/src/theme/v3/color/renderColor.ts +0 -33
  734. package/src/theme/v3/defaults.ts +0 -205
  735. /package/dist/{cli.d.ts → cli.d.cts} +0 -0
  736. /package/src/core/components/autocomplete/{__mocks__ → __workshop__/mock}/apiStore.ts +0 -0
  737. /package/src/core/components/autocomplete/{__mocks__ → __workshop__/mock}/countries.ts +0 -0
  738. /package/src/css/{styles → aspects}/border/index.ts +0 -0
  739. /package/src/css/{styles → aspects}/display/index.ts +0 -0
  740. /package/src/css/{styles → aspects}/flex/index.ts +0 -0
  741. /package/src/css/{styles → aspects}/flexItem/index.ts +0 -0
  742. /package/src/css/{styles → aspects}/font/index.ts +0 -0
  743. /package/src/css/{styles → aspects}/gap/index.ts +0 -0
  744. /package/src/css/{styles → aspects}/grid/index.ts +0 -0
  745. /package/src/css/{styles → aspects}/gridItem/index.ts +0 -0
  746. /package/src/css/{styles → aspects}/inset/index.ts +0 -0
  747. /package/src/css/{styles → aspects}/margin/index.ts +0 -0
  748. /package/src/css/{styles → aspects}/maxWidth/index.ts +0 -0
  749. /package/src/css/{styles → aspects}/overflow/index.ts +0 -0
  750. /package/src/css/{styles → aspects}/padding/index.ts +0 -0
  751. /package/src/css/{styles → aspects}/pointerEvents/index.ts +0 -0
  752. /package/src/css/{styles → aspects}/pointerEvents/types.ts +0 -0
  753. /package/src/css/{styles → aspects}/position/index.ts +0 -0
  754. /package/src/css/{styles → aspects}/radius/index.ts +0 -0
  755. /package/src/css/{styles → aspects}/shadow/index.ts +0 -0
  756. /package/src/css/{styles → aspects}/textOverflow/index.ts +0 -0
  757. /package/src/css/{styles → aspects}/width/index.ts +0 -0
  758. /package/src/{theme/palette → css/prefix}/index.ts +0 -0
  759. /package/src/theme/{build → v2/build}/_deprecated/color/index.ts +0 -0
  760. /package/src/theme/{build → v2/build}/colorToken/index.ts +0 -0
  761. /package/src/theme/{build → v2/build}/index.ts +0 -0
  762. /package/src/theme/{build → v2/build}/lib/color-fns/blend/index.ts +0 -0
  763. /package/src/theme/{build → v2/build}/lib/color-fns/index.ts +0 -0
  764. /package/src/theme/{build → v2/build}/lib/color-fns/rgba.ts +0 -0
  765. /package/src/theme/{build → v2/build}/lib/color-fns/types.ts +0 -0
  766. /package/src/theme/{build → v2/build}/lib/isRecord.ts +0 -0
  767. /package/src/theme/{build → v2/build}/lib/utils.ts +0 -0
  768. /package/src/theme/{build → v2/build}/merge.ts +0 -0
  769. /package/src/theme/{config → v2/config}/index.ts +0 -0
  770. /package/src/theme/{config → v2/config}/tokens/color/index.ts +0 -0
@@ -1,17 +1,15 @@
1
1
  import {ChevronDownIcon} from '@sanity/icons'
2
- import {ResponsiveProp} from '@sanity/ui/css'
3
- import {FontTextSize, Space} from '@sanity/ui/theme'
2
+ import type {ResponsiveProp} from '@sanity/ui/css'
3
+ import type {Space} from '@sanity/ui/theme'
4
4
  import {
5
- ChangeEvent,
5
+ type ChangeEvent,
6
6
  cloneElement,
7
- ElementType,
8
- FocusEvent,
9
- ForwardedRef,
10
- forwardRef,
11
- KeyboardEvent,
12
- MouseEvent,
13
- ReactElement,
14
- ReactNode,
7
+ type ElementType,
8
+ type FocusEvent,
9
+ type ForwardedRef,
10
+ type KeyboardEvent,
11
+ type MouseEvent,
12
+ type ReactNode,
15
13
  useCallback,
16
14
  useEffect,
17
15
  useImperativeHandle,
@@ -25,17 +23,18 @@ import {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'
25
23
  import {useArrayProp} from '../../hooks'
26
24
  import {
27
25
  Box,
28
- BoxProps,
26
+ type BoxProps,
29
27
  Button,
30
28
  Card,
31
29
  Popover,
32
- PopoverProps,
30
+ type PopoverProps,
33
31
  Stack,
34
32
  Text,
35
33
  TextInput,
34
+ type TextInputOwnProps,
36
35
  } from '../../primitives'
37
36
  import {AnimatedSpinnerIcon} from '../../primitives/spinner/animatedSpinnerIcon'
38
- import {Props, Radius} from '../../types'
37
+ import type {ComponentType, Props, Radius} from '../../types'
39
38
  import {AutocompleteOption} from './autocompleteOption'
40
39
  import {autocompleteReducer} from './autocompleteReducer'
41
40
  import {
@@ -43,58 +42,62 @@ import {
43
42
  AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,
44
43
  AUTOCOMPLETE_POPOVER_PLACEMENT,
45
44
  } from './constants'
46
- import {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'
47
-
48
- /**
49
- * @public
50
- */
51
- export interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {
52
- border?: boolean
53
- customValidity?: string
54
- disabled?: boolean
55
- filterOption?: (query: string, option: Option) => boolean
56
- fontSize?: ResponsiveProp<FontTextSize>
57
- icon?: ElementType | ReactNode
58
- id: string
59
- /** @beta */
60
- listBox?: BoxProps
61
- loading?: boolean
62
- onChange?: (value: string) => void
63
- onQueryChange?: (query: string | null) => void
64
- onSelect?: (value: string) => void
65
- /** @beta */
66
- openButton?: boolean | AutocompleteOpenButtonProps
67
- /** @beta */
68
- openOnFocus?: boolean
69
- /** The options to render. */
70
- options?: Option[]
71
- padding?: ResponsiveProp<Space>
72
- // padding?: number | number[]
73
- popover?: Omit<Props<PopoverProps, 'div'>, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'>
74
- prefix?: ReactNode
75
- radius?: Radius | Radius[]
76
- readOnly?: boolean
77
- ref?: ForwardedRef<HTMLInputElement>
78
- /** @beta */
79
- relatedElements?: HTMLElement[]
80
- /** The callback function for rendering each option. */
81
- renderOption?: (option: Option) => React.JSX.Element
82
- /** @beta */
83
- renderPopover?: (
84
- props: {
85
- content: React.JSX.Element | null
86
- hidden: boolean
87
- inputElement: HTMLInputElement | null
88
- onMouseEnter: () => void
89
- onMouseLeave: () => void
90
- },
91
- ref: ForwardedRef<HTMLDivElement>,
92
- ) => ReactNode
93
- renderValue?: (value: string, option?: Option) => string
94
- suffix?: ReactNode
95
- /** The current value. */
96
- value?: string
97
- }
45
+ import type {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'
46
+
47
+ /** @public */
48
+ export const DEFAULT_AUTOCOMPLETE_ELEMENT = 'input'
49
+
50
+ /** @public */
51
+ export type AutocompleteOwnProps<O extends BaseAutocompleteOption = BaseAutocompleteOption> =
52
+ TextInputOwnProps & {
53
+ border?: boolean
54
+ customValidity?: string
55
+ filterOption?: (query: string, option: O) => boolean
56
+ icon?: ElementType | ReactNode
57
+ /** @beta */
58
+ listBox?: BoxProps
59
+ loading?: boolean
60
+ onChange?: (value: string) => void
61
+ onQueryChange?: (query: string | null) => void
62
+ onSelect?: (value: string) => void
63
+ /** @beta */
64
+ openButton?: boolean | AutocompleteOpenButtonProps
65
+ /** @beta */
66
+ openOnFocus?: boolean
67
+ /** The options to render. */
68
+ options?: O[]
69
+ padding?: ResponsiveProp<Space>
70
+ popover?: Omit<Props<PopoverProps, 'div'>, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'>
71
+ prefix?: ReactNode
72
+ radius?: Radius | Radius[]
73
+ /** @beta */
74
+ relatedElements?: HTMLElement[]
75
+ /** The callback function for rendering each option. */
76
+ renderOption?: (option: O) => React.JSX.Element
77
+ /** @beta */
78
+ renderPopover?: (
79
+ props: {
80
+ content: React.JSX.Element | null
81
+ hidden: boolean
82
+ inputElement: HTMLInputElement | null
83
+ onMouseEnter: () => void
84
+ onMouseLeave: () => void
85
+ },
86
+ ref: ForwardedRef<HTMLDivElement>,
87
+ ) => ReactNode
88
+ renderValue?: (value: string, option?: O) => string
89
+ suffix?: ReactNode
90
+ value?: string
91
+ }
92
+
93
+ /** @public */
94
+ export type AutocompleteElementType = 'input' | ComponentType
95
+
96
+ /** @public */
97
+ export type AutocompleteProps<
98
+ E extends AutocompleteElementType = AutocompleteElementType,
99
+ O extends BaseAutocompleteOption = BaseAutocompleteOption,
100
+ > = Props<AutocompleteOwnProps<O>, E>
98
101
 
99
102
  const DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>
100
103
  option ? option.value : value
@@ -102,32 +105,23 @@ const DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>
102
105
  const DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>
103
106
  option.value.toLowerCase().indexOf(query.toLowerCase()) > -1
104
107
 
105
- const InnerAutocomplete = forwardRef(function InnerAutocomplete<
106
- Option extends BaseAutocompleteOption,
107
- >(
108
- props: Omit<
109
- Props<AutocompleteProps<Option>, 'div'>,
110
- | 'aria-activedescendant'
111
- | 'aria-autocomplete'
112
- | 'aria-expanded'
113
- | 'aria-owns'
114
- | 'as'
115
- | 'autoCapitalize'
116
- | 'autoComplete'
117
- | 'autoCorrect'
118
- | 'inputMode'
119
- | 'role'
120
- | 'spellCheck'
121
- | 'type'
122
- >,
123
- forwardedRef: ForwardedRef<HTMLInputElement>,
124
- ) {
108
+ /**
109
+ * The Autocomplete component is typically used for search components.
110
+ * It consists of a text input for writing a query, and properties for rendering suggestions.
111
+ *
112
+ * @public
113
+ */
114
+ export function Autocomplete<
115
+ E extends AutocompleteElementType = typeof DEFAULT_AUTOCOMPLETE_ELEMENT,
116
+ O extends BaseAutocompleteOption = BaseAutocompleteOption,
117
+ >(props: AutocompleteProps<E, O>) {
125
118
  const {
119
+ as = DEFAULT_AUTOCOMPLETE_ELEMENT,
126
120
  border = true,
127
121
  customValidity,
128
122
  disabled,
129
123
  filterOption: filterOptionProp,
130
- fontSize = 1,
124
+ fontSize = 2,
131
125
  icon,
132
126
  id,
133
127
  listBox = EMPTY_RECORD,
@@ -145,14 +139,15 @@ const InnerAutocomplete = forwardRef(function InnerAutocomplete<
145
139
  prefix,
146
140
  radius = 2,
147
141
  readOnly,
142
+ ref: forwardedRef,
148
143
  relatedElements,
149
144
  renderOption: renderOptionProp,
150
145
  renderPopover,
151
146
  renderValue = DEFAULT_RENDER_VALUE,
152
147
  suffix,
153
148
  value: valueProp,
154
- ...restProps
155
- } = props
149
+ ...rest
150
+ } = props as AutocompleteProps<typeof DEFAULT_AUTOCOMPLETE_ELEMENT, O>
156
151
 
157
152
  const [state, dispatch] = useReducer(autocompleteReducer, {
158
153
  activeValue: valueProp || null,
@@ -166,13 +161,7 @@ const InnerAutocomplete = forwardRef(function InnerAutocomplete<
166
161
 
167
162
  const defaultRenderOption = useCallback(
168
163
  ({value}: BaseAutocompleteOption) => (
169
- <Card
170
- as="button"
171
- // data-as="button"
172
- padding={paddingProp}
173
- radius={2}
174
- tone="inherit"
175
- >
164
+ <Card as="button" padding={paddingProp} radius={2} tone="inherit">
176
165
  <Text size={fontSize} textOverflow="ellipsis">
177
166
  {value}
178
167
  </Text>
@@ -191,7 +180,7 @@ const InnerAutocomplete = forwardRef(function InnerAutocomplete<
191
180
  const rootElementRef = useRef<HTMLDivElement | null>(null)
192
181
  const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)
193
182
  const inputElementRef = useRef<HTMLInputElement | null>(null)
194
- const listBoxElementRef = useRef<HTMLDivElement | null>(null)
183
+ const listBoxElementRef = useRef<HTMLUListElement | null>(null)
195
184
 
196
185
  // Value refs
197
186
  const listFocusedRef = useRef(false)
@@ -540,7 +529,7 @@ const InnerAutocomplete = forwardRef(function InnerAutocomplete<
540
529
 
541
530
  const input = (
542
531
  <TextInput
543
- {...restProps}
532
+ {...rest}
544
533
  aria-activedescendant={activeItemId}
545
534
  aria-autocomplete="list"
546
535
  aria-expanded={expanded}
@@ -548,6 +537,7 @@ const InnerAutocomplete = forwardRef(function InnerAutocomplete<
548
537
  autoCapitalize="off"
549
538
  autoComplete="off"
550
539
  autoCorrect="off"
540
+ as={as}
551
541
  border={border}
552
542
  clearButton={clearButton}
553
543
  customValidity={customValidity}
@@ -597,10 +587,10 @@ const InnerAutocomplete = forwardRef(function InnerAutocomplete<
597
587
  as="ul"
598
588
  aria-multiselectable={false}
599
589
  data-ui="AutoComplete__resultsList"
590
+ gap={1}
600
591
  id={listBoxId}
601
592
  ref={listBoxElementRef}
602
593
  role="listbox"
603
- space={1}
604
594
  >
605
595
  {filteredOptions.map((option) => {
606
596
  const active =
@@ -670,7 +660,7 @@ const InnerAutocomplete = forwardRef(function InnerAutocomplete<
670
660
  overflow="auto"
671
661
  placement={AUTOCOMPLETE_POPOVER_PLACEMENT}
672
662
  portal
673
- radius={radius}
663
+ radius={3}
674
664
  ref={resultsPopoverElementRef}
675
665
  referenceElement={inputElementRef.current}
676
666
  {...popover}
@@ -683,7 +673,6 @@ const InnerAutocomplete = forwardRef(function InnerAutocomplete<
683
673
  handlePopoverMouseEnter,
684
674
  handlePopoverMouseLeave,
685
675
  popover,
686
- radius,
687
676
  renderPopover,
688
677
  ])
689
678
 
@@ -700,29 +689,6 @@ const InnerAutocomplete = forwardRef(function InnerAutocomplete<
700
689
  {results}
701
690
  </div>
702
691
  )
703
- })
704
-
705
- InnerAutocomplete.displayName = 'ForwardRef(Autocomplete)'
692
+ }
706
693
 
707
- /**
708
- * The Autocomplete component is typically used for search components.
709
- * It consists of a text input for writing a query, and properties for rendering suggestions.
710
- *
711
- * @public
712
- */
713
- export const Autocomplete = InnerAutocomplete as <Option extends BaseAutocompleteOption>(
714
- props: Omit<
715
- Props<AutocompleteProps<Option>, 'input'>,
716
- | 'aria-activedescendant'
717
- | 'aria-autocomplete'
718
- | 'aria-expanded'
719
- | 'aria-owns'
720
- | 'autoCapitalize'
721
- | 'autoComplete'
722
- | 'autoCorrect'
723
- | 'inputMode'
724
- | 'role'
725
- | 'spellCheck'
726
- | 'type'
727
- >,
728
- ) => ReactElement
694
+ Autocomplete.displayName = 'Autocomplete'
@@ -1,4 +1,4 @@
1
- import {KeyboardEvent, ReactElement, ReactNode, useCallback} from 'react'
1
+ import {type KeyboardEvent, type ReactElement, type ReactNode, useCallback} from 'react'
2
2
 
3
3
  import {_isEnterToClickElement} from '../../helpers'
4
4
 
@@ -43,3 +43,5 @@ export function AutocompleteOption(props: AutocompleteOptionProps): ReactElement
43
43
  </li>
44
44
  )
45
45
  }
46
+
47
+ AutocompleteOption.displayName = 'AutocompleteOption'
@@ -1,4 +1,4 @@
1
- import {AutocompleteMsg, AutocompleteState} from './types'
1
+ import type {AutocompleteMsg, AutocompleteState} from './types'
2
2
 
3
3
  /**
4
4
  * @internal
@@ -1,4 +1,4 @@
1
- import {Placement} from '../../types'
1
+ import type {Placement} from '../../types'
2
2
 
3
3
  /**
4
4
  * @internal
@@ -1,14 +1,9 @@
1
- import {ButtonProps} from '../../primitives'
2
- import {Props} from '../../types'
1
+ import type {ButtonProps} from '../../primitives'
3
2
 
4
- /**
5
- * @public
6
- */
7
- export type AutocompleteOpenButtonProps = Omit<Props<ButtonProps, 'button'>, 'as'>
3
+ /** @public */
4
+ export type AutocompleteOpenButtonProps = Omit<ButtonProps<'button'>, 'as'>
8
5
 
9
- /**
10
- * @public
11
- */
6
+ /** @public */
12
7
  export interface BaseAutocompleteOption {
13
8
  value: string
14
9
  }
@@ -13,19 +13,18 @@ const BREADCRUMBS_MAX_LENGTH_OPTIONS = {
13
13
  }
14
14
 
15
15
  export default function Example() {
16
- const maxLength =
17
- useSelect('Max. length', BREADCRUMBS_MAX_LENGTH_OPTIONS, 0, 'Props') || undefined
16
+ const maxLength = useSelect('Max. length', BREADCRUMBS_MAX_LENGTH_OPTIONS)
18
17
 
19
18
  return (
20
19
  <Flex align="center" height="fill" justify="center">
21
20
  <Breadcrumbs
21
+ gap={2}
22
22
  maxLength={maxLength}
23
23
  separator={
24
24
  <Text muted size={1}>
25
25
  /
26
26
  </Text>
27
27
  }
28
- space={2}
29
28
  >
30
29
  <Text size={1}>
31
30
  {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}
@@ -1,12 +1,10 @@
1
- import {breadcrumbs, composeClassNames, GapStyleProps} from '@sanity/ui/css'
2
- import {Space} from '@sanity/ui/theme'
1
+ import {_composeClassNames, breadcrumbs, type GapStyleProps} from '@sanity/ui/css'
2
+ import type {Space} from '@sanity/ui/theme'
3
3
  import {
4
4
  Children,
5
- ForwardedRef,
6
- forwardRef,
7
5
  Fragment,
8
6
  isValidElement,
9
- ReactNode,
7
+ type ReactNode,
10
8
  useCallback,
11
9
  useMemo,
12
10
  useRef,
@@ -14,28 +12,36 @@ import {
14
12
  } from 'react'
15
13
 
16
14
  import {useClickOutsideEvent} from '../../hooks'
17
- import {Box, Button, ButtonProps, Flex, Popover, Stack, Text} from '../../primitives'
18
- import {Props} from '../../types'
19
-
20
- /**
21
- * @beta
22
- */
23
- export interface BreadcrumbsProps extends GapStyleProps {
24
- expandButton?: Omit<ButtonProps, 'onClick' | 'selected'>
15
+ import {Box, Button, type ButtonProps, Flex, Popover, Stack, Text} from '../../primitives'
16
+ import type {ComponentType, Props} from '../../types'
17
+
18
+ /** @beta */
19
+ export const DEFAULT_BREADCRUMBS_ELEMENT = 'nav'
20
+
21
+ /** @beta */
22
+ export type BreadcrumbsOwnProps = GapStyleProps & {
23
+ expandButton?: Omit<ButtonProps<'button'>, 'as' | 'onClick' | 'selected'>
25
24
  maxLength?: number
26
25
  separator?: ReactNode
27
26
  /** @deprecated - Use `gap`, `gapX`, `gapY` instead */
28
27
  space?: number | number[]
29
28
  }
30
29
 
31
- /**
32
- * @beta
33
- */
34
- export const Breadcrumbs = forwardRef(function Breadcrumbs(
35
- props: Props<BreadcrumbsProps, 'div'>,
36
- ref: ForwardedRef<HTMLDivElement>,
30
+ /** @beta */
31
+ export type BreadcrumbsElementType = 'div' | 'nav' | ComponentType
32
+
33
+ /** @beta */
34
+ export type BreadcrumbsProps<E extends BreadcrumbsElementType = BreadcrumbsElementType> = Props<
35
+ BreadcrumbsOwnProps,
36
+ E
37
+ >
38
+
39
+ /** @beta */
40
+ export function Breadcrumbs<E extends BreadcrumbsElementType = typeof DEFAULT_BREADCRUMBS_ELEMENT>(
41
+ props: BreadcrumbsProps<E>,
37
42
  ) {
38
43
  const {
44
+ as = DEFAULT_BREADCRUMBS_ELEMENT,
39
45
  children,
40
46
  className,
41
47
  expandButton: expandButtonProps,
@@ -47,8 +53,9 @@ export const Breadcrumbs = forwardRef(function Breadcrumbs(
47
53
  separator,
48
54
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
49
55
  space: _spaceProp,
50
- ...restProps
51
- } = props
56
+ ...rest
57
+ } = props as BreadcrumbsProps<typeof DEFAULT_BREADCRUMBS_ELEMENT>
58
+
52
59
  const [open, setOpen] = useState(false)
53
60
  const expandElementRef = useRef<HTMLButtonElement | null>(null)
54
61
  const popoverElementRef = useRef<HTMLDivElement | null>(null)
@@ -72,7 +79,7 @@ export const Breadcrumbs = forwardRef(function Breadcrumbs(
72
79
  <Popover
73
80
  constrainSize
74
81
  content={
75
- <Stack as="ol" overflow="auto" space={gapY}>
82
+ <Stack as="ol" gap={gapY} overflow="auto">
76
83
  {rawItems.slice(beforeLength - 1, len - afterLength)}
77
84
  </Stack>
78
85
  }
@@ -102,13 +109,12 @@ export const Breadcrumbs = forwardRef(function Breadcrumbs(
102
109
 
103
110
  return (
104
111
  <Flex
105
- as="nav"
112
+ as={as}
106
113
  data-ui="Breadcrumbs"
107
- {...restProps}
108
- className={composeClassNames(className, breadcrumbs())}
114
+ {...rest}
115
+ className={_composeClassNames(className, breadcrumbs())}
109
116
  gapX={gapX}
110
117
  gapY={gapY}
111
- ref={ref}
112
118
  >
113
119
  {items.map((item, itemIndex) => (
114
120
  <Fragment key={itemIndex}>
@@ -122,6 +128,6 @@ export const Breadcrumbs = forwardRef(function Breadcrumbs(
122
128
  ))}
123
129
  </Flex>
124
130
  )
125
- })
131
+ }
126
132
 
127
- Breadcrumbs.displayName = 'ForwardRef(Breadcrumbs)'
133
+ Breadcrumbs.displayName = 'Breadcrumbs'
@@ -28,7 +28,7 @@ export default function LayeringFocusStory() {
28
28
  onActivate={({activeElement}) => activeElement?.focus()}
29
29
  onClose={() => setFirstDialogOpen(false)}
30
30
  >
31
- <Stack space={2} padding={3}>
31
+ <Stack gap={2} padding={3}>
32
32
  <Button
33
33
  mode="ghost"
34
34
  text="Open dialog 2"
@@ -56,7 +56,7 @@ export default function LayeringFocusStory() {
56
56
  onActivate={({activeElement}) => activeElement?.focus()}
57
57
  onClose={() => setSecondDialogOpen(false)}
58
58
  >
59
- <Stack space={2} padding={3}>
59
+ <Stack gap={2} padding={3}>
60
60
  <Button
61
61
  mode="ghost"
62
62
  text="Open dialog 3"
@@ -84,7 +84,7 @@ export default function LayeringFocusStory() {
84
84
  onActivate={({activeElement}) => activeElement?.focus()}
85
85
  onClose={() => setThirdDialogOpen(false)}
86
86
  >
87
- <Stack space={2} padding={3}>
87
+ <Stack gap={2} padding={3}>
88
88
  <MenuButton
89
89
  id="menu"
90
90
  button={
@@ -116,7 +116,7 @@ export default function LayeringFocusStory() {
116
116
  onActivate={({activeElement}) => activeElement?.focus()}
117
117
  onClose={() => setFourthDialogOpen(false)}
118
118
  >
119
- <Stack space={2} padding={3}>
119
+ <Stack gap={2} padding={3}>
120
120
  <Text>👋</Text>
121
121
  </Stack>
122
122
  </Dialog>
@@ -2,8 +2,8 @@ import {Box, Button, Dialog, Text} from '@sanity/ui'
2
2
  import {useAction, useBoolean} from '@sanity/ui-workshop'
3
3
 
4
4
  export default function AutoFocusStory() {
5
- const autoFocus = useBoolean('Auto-focus', true, 'Props')
6
- const open = useBoolean('Open', false, 'Props')
5
+ const autoFocus = useBoolean('Auto-focus', true)
6
+ const open = useBoolean('Open', false)
7
7
  const handleClose = useAction('onClose')
8
8
 
9
9
  if (!open) {
@@ -1,4 +1,4 @@
1
- import {Box, Dialog, LayerProvider, Text} from '@sanity/ui'
1
+ import {Dialog, LayerProvider, Stack, Text} from '@sanity/ui'
2
2
  import {useAction} from '@sanity/ui-workshop'
3
3
  import {useEffect, useRef} from 'react'
4
4
 
@@ -19,8 +19,8 @@ export default function OnScrollStory() {
19
19
  return (
20
20
  <LayerProvider>
21
21
  <Dialog contentRef={ref} header="On scroll example" id="on-scroll-example">
22
- <Box padding={4} paddingTop={1}>
23
- <Text muted>
22
+ <Stack gap={4} padding={4} paddingTop={1}>
23
+ <Text muted size={1}>
24
24
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque at nisl at sem tempor
25
25
  hendrerit scelerisque ut libero. Maecenas iaculis efficitur lorem, ac faucibus mi
26
26
  imperdiet quis. Cras a consectetur erat. Fusce imperdiet, dolor et pellentesque iaculis,
@@ -32,7 +32,19 @@ export default function OnScrollStory() {
32
32
  mattis tristique nunc ac lacinia. Vestibulum non pulvinar turpis, posuere consequat
33
33
  arcu. Fusce ut urna blandit, finibus nisi a, molestie elit. Nulla sed eleifend mi.
34
34
  </Text>
35
- </Box>
35
+
36
+ <Text muted size={1}>
37
+ Aliquam quis finibus ex. Fusce semper lorem sed orci tempor gravida. Cras dui urna,
38
+ congue quis ipsum in, viverra facilisis libero. Vivamus vehicula libero quam, at posuere
39
+ leo ornare imperdiet. Cras eu neque eu tellus scelerisque iaculis ac id ex. Vestibulum
40
+ quam enim, lacinia ac ultricies at, molestie ut nisi. Vivamus vitae elit vel ante
41
+ feugiat iaculis. Pellentesque vel diam volutpat, luctus magna at, laoreet tellus.
42
+ Aliquam congue id nisi at sollicitudin. In sed nisi libero. Nulla ornare, mauris et
43
+ pulvinar hendrerit, ligula leo auctor enim, vestibulum laoreet metus nisl a nulla. Sed
44
+ et interdum sapien. Mauris lacinia interdum nisi quis ultrices. Etiam lobortis, dui
45
+ semper ornare fringilla, felis lacus feugiat dui, vitae rhoncus tellus tortor ut ipsum.
46
+ </Text>
47
+ </Stack>
36
48
  </Dialog>
37
49
  </LayerProvider>
38
50
  )
@@ -2,16 +2,16 @@ import {ArrowDownIcon, ArrowUpIcon} from '@sanity/icons'
2
2
  import {Box, Dialog, LayerProvider, Stack, Text} from '@sanity/ui'
3
3
  import {useBoolean, useSelect} from '@sanity/ui-workshop'
4
4
 
5
- import {WORKSHOP_DIALOG_POSITION_OPTIONS} from '../../../../../workshop/constants'
5
+ import {WORKSHOP_DIALOG_POSITION_OPTIONS} from '$workshop'
6
6
 
7
7
  export default function PositionStory() {
8
- const open = useBoolean('Open', true, 'Props')
9
- const position = useSelect('Position', WORKSHOP_DIALOG_POSITION_OPTIONS, 'fixed', 'Props')
8
+ const open = useBoolean('Open', true)
9
+ const position = useSelect('Position', WORKSHOP_DIALOG_POSITION_OPTIONS)
10
10
 
11
11
  return (
12
12
  <Box padding={4}>
13
13
  <Box style={{padding: 'calc(100vh - 100px) 0'}}>
14
- <Stack space={3}>
14
+ <Stack gap={3}>
15
15
  <Text align="center">
16
16
  <ArrowUpIcon />
17
17
  </Text>
@@ -2,14 +2,14 @@ import {Box, Button, Dialog, LayerProvider, Stack, Text} from '@sanity/ui'
2
2
  import {useBoolean, useSelect, useText} from '@sanity/ui-workshop'
3
3
  import {useCallback, useRef, useState} from 'react'
4
4
 
5
- import {WORKSHOP_WIDTH_OPTIONS} from '../../../../../workshop/constants'
5
+ import {WORKSHOP_CONTAINER_WIDTH_OPTIONS} from '$workshop'
6
6
 
7
7
  export default function PropsStory() {
8
- const animate = useBoolean('Animate', false, 'Props')
9
- const header = useText('Header', 'Props example', 'Props')
10
- const onClickOutside = useBoolean('Close when click outside', false, 'Props') || false
11
- const hideCloseButton = useBoolean('Hide close button', false, 'Props') || false
12
- const width = useSelect('Width', WORKSHOP_WIDTH_OPTIONS, 0, 'Props')
8
+ const animate = useBoolean('Animate', false)
9
+ const header = useText('Header', 'Props example')
10
+ const onClickOutside = useBoolean('Close when click outside', false)
11
+ const hideCloseButton = useBoolean('Hide close button', false)
12
+ const width = useSelect('Width', WORKSHOP_CONTAINER_WIDTH_OPTIONS)
13
13
  const [open, setOpen] = useState(false)
14
14
  const buttonRef = useRef<HTMLButtonElement | null>(null)
15
15
 
@@ -40,7 +40,7 @@ export default function PropsStory() {
40
40
  width={width}
41
41
  >
42
42
  <Box padding={4}>
43
- <Stack space={4}>
43
+ <Stack gap={4}>
44
44
  <Text>
45
45
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed et orci vitae diam
46
46
  aliquet imperdiet.
@@ -1,5 +1,5 @@
1
- import {Box, Button, Dialog, DialogProps, LayerProvider, useLayer} from '@sanity/ui'
2
- import {ReactNode, useCallback, useEffect, useRef, useState} from 'react'
1
+ import {Box, Button, Dialog, type DialogProps, LayerProvider, useLayer} from '@sanity/ui'
2
+ import {type ReactNode, useCallback, useEffect, useRef, useState} from 'react'
3
3
 
4
4
  export default function WrappedStory() {
5
5
  return (