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

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 (829) hide show
  1. package/README.md +7 -6
  2. package/bin/{ui.js → sanity-ui.cjs} +1 -1
  3. package/dist/_chunks-cjs/_visual-editing.cjs +2488 -0
  4. package/dist/_chunks-cjs/_visual-editing.cjs.map +1 -0
  5. package/dist/_chunks-cjs/{refractor.js → refractor.cjs} +1 -2
  6. package/dist/_chunks-cjs/refractor.cjs.map +1 -0
  7. package/dist/_chunks-es/_visual-editing.js +2500 -0
  8. package/dist/_chunks-es/_visual-editing.js.map +1 -0
  9. package/dist/_chunks-es/{refractor.mjs → refractor.js} +1 -2
  10. package/dist/_chunks-es/refractor.js.map +1 -0
  11. package/dist/_visual-editing.cjs +30 -0
  12. package/dist/_visual-editing.cjs.map +1 -0
  13. package/dist/_visual-editing.d.cts +893 -0
  14. package/dist/_visual-editing.d.ts +503 -416
  15. package/dist/_visual-editing.js +29 -30
  16. package/dist/_visual-editing.js.map +1 -1
  17. package/dist/css.cjs +598 -0
  18. package/dist/css.cjs.map +1 -0
  19. package/dist/css.d.cts +14884 -0
  20. package/dist/css.d.ts +14379 -1630
  21. package/dist/css.js +480 -4594
  22. package/dist/css.js.map +1 -1
  23. package/dist/index.cjs +2222 -0
  24. package/dist/index.cjs.map +1 -0
  25. package/dist/{index.d.mts → index.d.cts} +1284 -961
  26. package/dist/index.d.ts +1284 -961
  27. package/dist/index.js +1270 -592
  28. package/dist/index.js.map +1 -1
  29. package/dist/{theme.mjs → theme.cjs} +2843 -2571
  30. package/dist/theme.cjs.map +1 -0
  31. package/dist/{theme.d.mts → theme.d.cts} +331 -311
  32. package/dist/theme.d.ts +331 -311
  33. package/dist/theme.js +2843 -2569
  34. package/dist/theme.js.map +1 -1
  35. package/dist/ui.css +22564 -0
  36. package/exports/_visual-editing.ts +0 -1
  37. package/package.json +84 -79
  38. package/src/cli/buildCommand.ts +3 -41
  39. package/src/cli/index.ts +2 -14
  40. package/src/core/_compat/helpers.ts +72 -0
  41. package/src/core/_compat/index.ts +1 -6
  42. package/src/core/_compat/styles/_responsive.ts +1 -1
  43. package/src/core/_compat/theme/theme.test.tsx +4 -5
  44. package/src/core/_compat/theme/themeColorProvider.tsx +4 -10
  45. package/src/core/_compat/theme/themeContext.ts +5 -5
  46. package/src/core/_compat/theme/themeProvider.tsx +19 -13
  47. package/src/core/_compat/theme/types.ts +2 -4
  48. package/src/core/_compat/theme/useRootTheme.ts +2 -4
  49. package/src/core/_compat/theme/useTheme.ts +3 -7
  50. package/src/core/_compat/types.ts +0 -73
  51. package/src/core/components/autocomplete/__workshop__/async.tsx +6 -6
  52. package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +11 -18
  53. package/src/core/components/autocomplete/__workshop__/custom.tsx +21 -20
  54. package/src/core/components/autocomplete/__workshop__/example.tsx +17 -17
  55. package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +5 -5
  56. package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +57 -59
  57. package/src/core/components/autocomplete/autocomplete.tsx +106 -140
  58. package/src/core/components/autocomplete/autocompleteOption.tsx +1 -1
  59. package/src/core/components/autocomplete/autocompleteReducer.ts +1 -1
  60. package/src/core/components/autocomplete/constants.ts +1 -1
  61. package/src/core/components/autocomplete/types.ts +4 -9
  62. package/src/core/components/breadcrumbs/__workshop__/example.tsx +2 -3
  63. package/src/core/components/breadcrumbs/breadcrumbs.tsx +32 -28
  64. package/src/core/components/dialog/__workshop__/activate.tsx +4 -4
  65. package/src/core/components/dialog/__workshop__/autoFocus.tsx +2 -2
  66. package/src/core/components/dialog/__workshop__/onScroll.tsx +16 -4
  67. package/src/core/components/dialog/__workshop__/position.tsx +4 -4
  68. package/src/core/components/dialog/__workshop__/props.tsx +7 -7
  69. package/src/core/components/dialog/__workshop__/wrapped.tsx +2 -2
  70. package/src/core/components/dialog/dialog.tsx +104 -304
  71. package/src/core/components/dialog/dialogCard.tsx +190 -0
  72. package/src/core/components/dialog/dialogContext.ts +5 -3
  73. package/src/core/components/dialog/dialogProvider.tsx +6 -7
  74. package/src/core/components/dialog/isTargetWithinScope.ts +14 -0
  75. package/src/core/components/dialog/useDialog.ts +1 -1
  76. package/src/core/components/hotkeys/hotkeys.tsx +41 -27
  77. package/src/core/components/menu/__workshop__/asComponent.tsx +6 -6
  78. package/src/core/components/menu/__workshop__/closableMenuButton.tsx +5 -4
  79. package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +2 -2
  80. package/src/core/components/menu/__workshop__/customMenuItem.tsx +3 -3
  81. package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +1 -1
  82. package/src/core/components/menu/__workshop__/groups.tsx +2 -2
  83. package/src/core/components/menu/__workshop__/menuButton.tsx +4 -4
  84. package/src/core/components/menu/__workshop__/menuGroupRight.tsx +1 -1
  85. package/src/core/components/menu/__workshop__/nestedMenu.tsx +1 -1
  86. package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +13 -4
  87. package/src/core/components/menu/__workshop__/selectedItem.tsx +2 -2
  88. package/src/core/components/menu/__workshop__/tones.tsx +3 -3
  89. package/src/core/components/menu/__workshop__/withoutArrow.tsx +1 -1
  90. package/src/core/components/menu/menu.test.tsx +6 -7
  91. package/src/core/components/menu/menu.tsx +27 -35
  92. package/src/core/components/menu/menuButton.tsx +18 -24
  93. package/src/core/components/menu/menuContext.ts +1 -1
  94. package/src/core/components/menu/menuDivider.tsx +25 -15
  95. package/src/core/components/menu/menuGroup.tsx +39 -33
  96. package/src/core/components/menu/menuItem.tsx +58 -46
  97. package/src/core/components/menu/useMenu.ts +1 -1
  98. package/src/core/components/menu/useMenuController.ts +4 -4
  99. package/src/core/components/skeleton/__workshop__/delay.tsx +3 -3
  100. package/src/core/components/skeleton/__workshop__/skeleton.tsx +4 -4
  101. package/src/core/components/skeleton/codeSkeleton.tsx +49 -0
  102. package/src/core/components/skeleton/headingSkeleton.tsx +48 -0
  103. package/src/core/components/skeleton/index.ts +3 -0
  104. package/src/core/components/skeleton/labelSkeleton.tsx +47 -0
  105. package/src/core/components/skeleton/skeleton.tsx +37 -18
  106. package/src/core/components/skeleton/textSkeleton.tsx +29 -112
  107. package/src/core/components/tab/__workshop__/example.tsx +2 -2
  108. package/src/core/components/tab/tab.tsx +28 -26
  109. package/src/core/components/tab/tabList.tsx +49 -28
  110. package/src/core/components/tab/tabPanel.tsx +29 -22
  111. package/src/core/components/toast/__workshop__/hook.tsx +1 -1
  112. package/src/core/components/toast/__workshop__/toast.tsx +5 -5
  113. package/src/core/components/toast/toast.test.tsx +5 -5
  114. package/src/core/components/toast/toast.tsx +30 -57
  115. package/src/core/components/toast/toastContext.ts +1 -1
  116. package/src/core/components/toast/toastLayer.tsx +29 -13
  117. package/src/core/components/toast/toastProvider.tsx +5 -10
  118. package/src/core/components/toast/types.ts +3 -7
  119. package/src/core/components/toast/useToast.ts +2 -4
  120. package/src/core/components/tree/__workshop__/basic.perf.ts +1 -1
  121. package/src/core/components/tree/__workshop__/basic.tsx +1 -1
  122. package/src/core/components/tree/__workshop__/tabFromElement.tsx +1 -1
  123. package/src/core/components/tree/helpers.ts +1 -1
  124. package/src/core/components/tree/tree.tsx +196 -191
  125. package/src/core/components/tree/treeContext.ts +1 -1
  126. package/src/core/components/tree/treeGroup.tsx +24 -6
  127. package/src/core/components/tree/treeItem.tsx +44 -34
  128. package/src/core/components/tree/types.ts +2 -2
  129. package/src/core/components/tree/useTree.ts +1 -1
  130. package/src/core/constants.ts +6 -0
  131. package/src/core/helpers/props.ts +18 -0
  132. package/src/core/hooks/index.ts +1 -0
  133. package/src/core/hooks/useArrayProp.ts +1 -4
  134. package/src/core/hooks/useClickOutside.test.tsx +15 -16
  135. package/src/core/hooks/useClickOutside.ts +2 -6
  136. package/src/core/hooks/useClickOutsideEvent.test.tsx +4 -5
  137. package/src/core/hooks/useClickOutsideEvent.ts +3 -9
  138. package/src/core/hooks/useDelayed.test.ts +6 -7
  139. package/src/core/hooks/useDelayedState.ts +1 -1
  140. package/src/core/hooks/useElementRect/__workshop__/example.tsx +1 -1
  141. package/src/core/hooks/useElementSize.ts +1 -1
  142. package/src/core/hooks/useForwardedRef.ts +1 -1
  143. package/src/core/hooks/useMatchMedia.ts +13 -31
  144. package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +1 -1
  145. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +3 -18
  146. package/src/core/hooks/useMediaIndex/useMediaIndex.ts +12 -12
  147. package/src/core/hooks/usePrefersDark.hydration.test.tsx +4 -4
  148. package/src/core/hooks/usePrefersDark.test.tsx +1 -0
  149. package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +4 -4
  150. package/src/core/hooks/usePrefersReducedMotion.test.tsx +1 -0
  151. package/src/core/hooks/useResponsiveProp.ts +28 -0
  152. package/src/core/index.ts +0 -1
  153. package/src/core/lib/isArray.ts +3 -0
  154. package/src/core/middleware/origin.ts +1 -1
  155. package/src/core/primitives/_selectable/selectable.tsx +33 -24
  156. package/src/core/primitives/avatar/__workshop__/asButton.tsx +2 -2
  157. package/src/core/primitives/avatar/__workshop__/stack.tsx +2 -2
  158. package/src/core/primitives/avatar/__workshop__/withinButton.tsx +2 -2
  159. package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +1 -1
  160. package/src/core/primitives/avatar/avatar.tsx +43 -48
  161. package/src/core/primitives/avatar/avatarCounter.tsx +46 -39
  162. package/src/core/primitives/avatar/avatarStack.tsx +44 -45
  163. package/src/core/primitives/avatar/types.ts +3 -3
  164. package/src/core/primitives/badge/__workshop__/props.tsx +6 -17
  165. package/src/core/primitives/badge/__workshop__/tones.tsx +1 -6
  166. package/src/core/primitives/badge/badge.test.tsx +2 -3
  167. package/src/core/primitives/badge/badge.tsx +34 -40
  168. package/src/core/primitives/badge/types.ts +2 -1
  169. package/src/core/primitives/box/__workshop__/props.tsx +2 -2
  170. package/src/core/primitives/box/__workshop__/responsive.tsx +2 -1
  171. package/src/core/primitives/box/box.tsx +153 -88
  172. package/src/core/primitives/button/__workshop__/custom.tsx +19 -42
  173. package/src/core/primitives/button/__workshop__/customIcons.tsx +3 -3
  174. package/src/core/primitives/button/__workshop__/disabled.tsx +9 -9
  175. package/src/core/primitives/button/__workshop__/props.tsx +19 -22
  176. package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +3 -3
  177. package/src/core/primitives/button/__workshop__/stacked.tsx +15 -16
  178. package/src/core/primitives/button/__workshop__/uploadButton.tsx +2 -1
  179. package/src/core/primitives/button/button.test.tsx +3 -18
  180. package/src/core/primitives/button/button.tsx +67 -76
  181. package/src/core/primitives/card/__workshop__/asButton.tsx +14 -14
  182. package/src/core/primitives/card/__workshop__/asComponent.tsx +3 -3
  183. package/src/core/primitives/card/__workshop__/checkered.tsx +1 -1
  184. package/src/core/primitives/card/__workshop__/index.ts +1 -1
  185. package/src/core/primitives/card/__workshop__/interactive.tsx +3 -4
  186. package/src/core/primitives/card/__workshop__/listNavigation.tsx +3 -3
  187. package/src/core/primitives/card/__workshop__/props.tsx +14 -17
  188. package/src/core/primitives/card/__workshop__/selected.tsx +10 -41
  189. package/src/core/primitives/card/__workshop__/{allTones.tsx → tones.tsx} +3 -3
  190. package/src/core/primitives/card/card.tsx +52 -48
  191. package/src/core/primitives/card/cardContext.ts +10 -0
  192. package/src/core/primitives/card/cardProvider.tsx +27 -0
  193. package/src/core/primitives/card/index.ts +2 -0
  194. package/src/core/primitives/card/types.ts +19 -3
  195. package/src/core/primitives/card/useCard.ts +9 -0
  196. package/src/core/primitives/checkbox/__workshop__/props.tsx +6 -4
  197. package/src/core/primitives/checkbox/__workshop__/tones.tsx +11 -20
  198. package/src/core/primitives/checkbox/checkbox.tsx +30 -23
  199. package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +1 -1
  200. package/src/core/primitives/code/__workshop__/props.tsx +4 -7
  201. package/src/core/primitives/code/code.tsx +27 -30
  202. package/src/core/primitives/code/refractor.tsx +0 -2
  203. package/src/core/primitives/container/__workshop__/example.tsx +2 -2
  204. package/src/core/primitives/container/container.tsx +27 -25
  205. package/src/core/primitives/flex/__workshop__/example.tsx +2 -2
  206. package/src/core/primitives/flex/flex.tsx +44 -17
  207. package/src/core/primitives/grid/grid.tsx +20 -17
  208. package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +2 -2
  209. package/src/core/primitives/heading/__workshop__/plain.tsx +12 -15
  210. package/src/core/primitives/heading/heading.tsx +51 -33
  211. package/src/core/primitives/inline/__workshop__/plain.tsx +2 -5
  212. package/src/core/primitives/inline/inline.tsx +46 -27
  213. package/src/core/primitives/inline/types.ts +1 -0
  214. package/src/core/primitives/kbd/kbd.tsx +28 -28
  215. package/src/core/primitives/label/__workshop__/plain.tsx +8 -17
  216. package/src/core/primitives/label/label.tsx +49 -39
  217. package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +6 -6
  218. package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +3 -3
  219. package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +1 -1
  220. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +3 -3
  221. package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +3 -4
  222. package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +10 -6
  223. package/src/core/primitives/popover/__workshop__/TestStory.tsx +5 -4
  224. package/src/core/primitives/popover/constants.ts +1 -1
  225. package/src/core/primitives/popover/floating-ui/size.ts +2 -2
  226. package/src/core/primitives/popover/helpers.ts +1 -1
  227. package/src/core/primitives/popover/popover.tsx +299 -335
  228. package/src/core/primitives/popover/popoverLayer.tsx +147 -0
  229. package/src/core/primitives/popover/types.ts +3 -2
  230. package/src/core/primitives/radio/__workshop__/example.tsx +3 -3
  231. package/src/core/primitives/radio/__workshop__/plain.tsx +3 -3
  232. package/src/core/primitives/radio/radio.tsx +34 -19
  233. package/src/core/primitives/select/__workshop__/plain.tsx +15 -6
  234. package/src/core/primitives/select/__workshop__/readOnly.tsx +1 -1
  235. package/src/core/primitives/select/select.tsx +28 -28
  236. package/src/core/primitives/spinner/__workshop__/Props.tsx +4 -5
  237. package/src/core/primitives/spinner/animatedSpinnerIcon.tsx +7 -9
  238. package/src/core/primitives/spinner/spinner.tsx +27 -15
  239. package/src/core/primitives/stack/__workshop__/plain.tsx +2 -2
  240. package/src/core/primitives/stack/stack.tsx +44 -20
  241. package/src/core/primitives/switch/switch.tsx +31 -17
  242. package/src/core/primitives/text/__workshop__/colored.tsx +6 -6
  243. package/src/core/primitives/text/__workshop__/example.tsx +9 -20
  244. package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +1 -1
  245. package/src/core/primitives/text/text.tsx +52 -44
  246. package/src/core/primitives/textArea/__workshop__/plain.tsx +44 -33
  247. package/src/core/primitives/textArea/textArea.tsx +47 -22
  248. package/src/core/primitives/textInput/__workshop__/customValidity.tsx +2 -2
  249. package/src/core/primitives/textInput/__workshop__/plain.tsx +36 -30
  250. package/src/core/primitives/textInput/__workshop__/states.tsx +5 -5
  251. package/src/core/primitives/textInput/__workshop__/tones.tsx +2 -2
  252. package/src/core/primitives/textInput/__workshop__/typed.tsx +2 -2
  253. package/src/core/primitives/textInput/textInput.tsx +80 -106
  254. package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +5 -5
  255. package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +2 -2
  256. package/src/core/primitives/tooltip/__workshop__/props.tsx +9 -8
  257. package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +1 -1
  258. package/src/core/primitives/tooltip/constants.ts +1 -1
  259. package/src/core/primitives/tooltip/tooltip.test.tsx +61 -60
  260. package/src/core/primitives/tooltip/tooltip.tsx +107 -90
  261. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +1 -1
  262. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +3 -5
  263. package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +1 -1
  264. package/src/core/primitives/tooltip/tooltipLayer.tsx +105 -0
  265. package/src/core/primitives/types.ts +19 -30
  266. package/src/core/types/avatar.ts +3 -6
  267. package/src/core/types/badge.ts +2 -4
  268. package/src/core/types/button.ts +2 -4
  269. package/src/core/types/card.ts +2 -4
  270. package/src/core/types/dialog.ts +1 -3
  271. package/src/core/types/flex.ts +3 -3
  272. package/src/core/types/props.ts +20 -10
  273. package/src/core/types/selectable.ts +1 -1
  274. package/src/core/utils/arrow/arrow.tsx +43 -28
  275. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +5 -5
  276. package/src/core/utils/boundaryElement/boundaryElementContext.ts +1 -1
  277. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +4 -10
  278. package/src/core/utils/boundaryElement/types.ts +1 -3
  279. package/src/core/utils/boundaryElement/useBoundaryElement.ts +2 -4
  280. package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +15 -8
  281. package/src/core/utils/elementQuery/elementQuery.tsx +41 -19
  282. package/src/core/utils/errorBoundary.tsx +6 -4
  283. package/src/core/utils/index.ts +0 -1
  284. package/src/core/utils/layer/__workshop__/multipleRoots.tsx +5 -5
  285. package/src/core/utils/layer/__workshop__/nested.tsx +3 -3
  286. package/src/core/utils/layer/__workshop__/responsiveZOffset.tsx +9 -5
  287. package/src/core/utils/layer/getLayerContext.test.ts +3 -1
  288. package/src/core/utils/layer/getLayerContext.ts +1 -1
  289. package/src/core/utils/layer/layer.test.tsx +5 -5
  290. package/src/core/utils/layer/layer.tsx +25 -95
  291. package/src/core/utils/layer/layerCard.tsx +90 -0
  292. package/src/core/utils/layer/layerContext.ts +1 -1
  293. package/src/core/utils/layer/layerProvider.tsx +20 -17
  294. package/src/core/utils/layer/useLayer.ts +2 -4
  295. package/src/core/utils/portal/__workshop__/named.tsx +3 -3
  296. package/src/core/utils/portal/portal.test.tsx +5 -5
  297. package/src/core/utils/portal/{portal.ts → portal.tsx} +17 -11
  298. package/src/core/utils/portal/portalContext.ts +1 -1
  299. package/src/core/utils/portal/portalProvider.tsx +4 -10
  300. package/src/core/utils/portal/types.ts +1 -3
  301. package/src/core/utils/portal/usePortal.ts +2 -4
  302. package/src/core/utils/srOnly/srOnly.tsx +25 -27
  303. package/src/core/utils/virtualList/__workshop__/infiniteList.tsx +1 -1
  304. package/src/core/utils/virtualList/virtualList.tsx +71 -55
  305. package/src/css/__theme/index.ts +16 -0
  306. package/src/css/__theme/lib/contract/buildVarContract.ts +78 -0
  307. package/src/css/__theme/lib/contract/index.ts +4 -0
  308. package/src/css/__theme/lib/contract/types.ts +17 -0
  309. package/src/css/__theme/resolveTheme.ts +865 -0
  310. package/src/css/_assign.ts +3 -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/_responsiveClassName.ts +45 -0
  315. package/src/css/_responsiveStyle.css.ts +34 -0
  316. package/src/css/_style.css.ts +9 -0
  317. package/src/css/components/breadcrumbs/breadcrumbs.css.ts +6 -0
  318. package/src/css/components/breadcrumbs/breadcrumbs.ts +5 -3
  319. package/src/css/components/dialog/dialog.css.ts +81 -0
  320. package/src/css/components/dialog/dialog.ts +20 -11
  321. package/src/css/components/index.ts +6 -0
  322. package/src/css/components/menu/menu.css.ts +14 -0
  323. package/src/css/components/menu/menu.ts +8 -5
  324. package/src/css/components/skeleton/skeleton.css.ts +132 -0
  325. package/src/css/components/skeleton/skeleton.ts +14 -9
  326. package/src/css/components/skeleton/types.ts +13 -5
  327. package/src/css/components/toast/toast.css.ts +16 -0
  328. package/src/css/components/toast/toast.ts +5 -15
  329. package/src/css/components/tree/tree.css.ts +65 -0
  330. package/src/css/components/tree/tree.ts +5 -3
  331. package/src/css/constants.ts +10 -0
  332. package/src/css/defaultTheme.css.ts +468 -0
  333. package/src/css/index.ts +12 -38
  334. package/src/css/layers.css.ts +9 -0
  335. package/src/css/primitives/_arrow/_arrow.css.ts +68 -0
  336. package/src/css/primitives/_arrow/_arrow.ts +18 -6
  337. package/src/css/primitives/_input/_input.css.ts +258 -0
  338. package/src/css/primitives/_input/input.ts +17 -14
  339. package/src/css/primitives/_input/types.ts +3 -3
  340. package/src/css/primitives/_selectable/_selectable.css.ts +121 -0
  341. package/src/css/primitives/_selectable/selectable.ts +5 -5
  342. package/src/css/primitives/_selectable/types.ts +3 -2
  343. package/src/css/primitives/avatar/avatar.css.ts +175 -0
  344. package/src/css/primitives/avatar/avatar.ts +52 -11
  345. package/src/css/primitives/avatar/types.ts +5 -3
  346. package/src/css/primitives/badge/badge.css.ts +26 -0
  347. package/src/css/primitives/badge/badge.ts +4 -4
  348. package/src/css/primitives/badge/types.ts +5 -4
  349. package/src/css/primitives/box/box.css.ts +19 -0
  350. package/src/css/primitives/box/box.ts +52 -16
  351. package/src/css/primitives/box/types.ts +46 -22
  352. package/src/css/primitives/button/button.css.ts +285 -0
  353. package/src/css/primitives/button/button.ts +15 -33
  354. package/src/css/primitives/button/index.ts +1 -0
  355. package/src/css/primitives/button/types.ts +19 -0
  356. package/src/css/primitives/card/card.css.ts +365 -0
  357. package/src/css/primitives/card/card.ts +9 -12
  358. package/src/css/primitives/card/types.ts +4 -6
  359. package/src/css/primitives/checkbox/checkbox.css.ts +193 -0
  360. package/src/css/primitives/checkbox/checkbox.ts +13 -5
  361. package/src/css/primitives/code/code.css.ts +271 -0
  362. package/src/css/primitives/code/code.ts +13 -5
  363. package/src/css/primitives/code/types.ts +4 -3
  364. package/src/css/primitives/container/container.css.ts +4 -0
  365. package/src/css/primitives/container/container.ts +12 -4
  366. package/src/css/primitives/container/types.ts +4 -2
  367. package/src/css/primitives/heading/heading.css.ts +85 -0
  368. package/src/css/primitives/heading/heading.ts +13 -11
  369. package/src/css/primitives/heading/types.ts +6 -3
  370. package/src/css/primitives/index.ts +24 -0
  371. package/src/css/primitives/kbd/kbd.css.ts +16 -0
  372. package/src/css/primitives/kbd/kbd.ts +6 -4
  373. package/src/css/primitives/kbd/types.ts +2 -3
  374. package/src/css/primitives/label/label.css.ts +85 -0
  375. package/src/css/primitives/label/label.ts +13 -10
  376. package/src/css/primitives/label/types.ts +13 -5
  377. package/src/css/primitives/popover/popover.css.ts +6 -0
  378. package/src/css/primitives/popover/popover.ts +10 -3
  379. package/src/css/primitives/radio/radio.css.ts +78 -0
  380. package/src/css/primitives/radio/radio.ts +15 -3
  381. package/src/css/primitives/select/select.css.ts +24 -0
  382. package/src/css/primitives/select/select.ts +7 -4
  383. package/src/css/primitives/select/types.ts +1 -1
  384. package/src/css/primitives/spinner/index.ts +1 -0
  385. package/src/css/primitives/spinner/spinner.css.ts +23 -0
  386. package/src/css/primitives/spinner/spinner.ts +9 -5
  387. package/src/css/primitives/spinner/types.ts +4 -0
  388. package/src/css/primitives/stack/index.ts +1 -0
  389. package/src/css/primitives/stack/stack.css.ts +6 -0
  390. package/src/css/primitives/stack/stack.ts +7 -0
  391. package/src/css/primitives/switch/switch.css.ts +98 -0
  392. package/src/css/primitives/switch/switch.ts +13 -7
  393. package/src/css/primitives/text/text.css.ts +85 -0
  394. package/src/css/primitives/text/text.ts +13 -11
  395. package/src/css/primitives/text/types.ts +9 -3
  396. package/src/css/primitives/textArea/textArea.css.ts +4 -0
  397. package/src/css/primitives/textArea/textArea.ts +5 -3
  398. package/src/css/primitives/textArea/types.ts +5 -3
  399. package/src/css/primitives/textInput/textInput.css.ts +41 -0
  400. package/src/css/primitives/textInput/textInput.ts +20 -4
  401. package/src/css/primitives/textInput/types.ts +3 -7
  402. package/src/css/primitives/tooltip/index.ts +1 -0
  403. package/src/css/primitives/tooltip/tooltip.css.ts +6 -0
  404. package/src/css/primitives/tooltip/tooltip.ts +8 -7
  405. package/src/css/primitives/tooltip/types.ts +4 -0
  406. package/src/css/props/alignItems/alignItems.css.ts +22 -0
  407. package/src/css/props/alignItems/alignItems.ts +8 -0
  408. package/src/css/props/alignItems/index.ts +2 -0
  409. package/src/css/props/alignItems/types.ts +9 -0
  410. package/src/css/props/border/border.css.ts +65 -0
  411. package/src/css/props/border/border.ts +36 -0
  412. package/src/css/props/border/types.ts +13 -0
  413. package/src/css/props/boxSizing/boxSizing.css.ts +11 -0
  414. package/src/css/props/boxSizing/boxSizing.ts +10 -0
  415. package/src/css/props/boxSizing/index.ts +2 -0
  416. package/src/css/props/boxSizing/types.ts +7 -0
  417. package/src/css/props/display/display.css.ts +56 -0
  418. package/src/css/props/display/display.ts +17 -0
  419. package/src/css/{styles → props}/display/types.ts +3 -4
  420. package/src/css/props/flex/flex.css.ts +52 -0
  421. package/src/css/props/flex/flex.ts +8 -0
  422. package/src/css/props/flex/types.ts +9 -0
  423. package/src/css/props/flexDirection/flexDirection.css.ts +19 -0
  424. package/src/css/props/flexDirection/flexDirection.ts +8 -0
  425. package/src/css/props/flexDirection/index.ts +2 -0
  426. package/src/css/props/flexDirection/types.ts +9 -0
  427. package/src/css/props/flexWrap/flexWrap.css.ts +16 -0
  428. package/src/css/props/flexWrap/flexWrap.ts +8 -0
  429. package/src/css/props/flexWrap/index.ts +2 -0
  430. package/src/css/props/flexWrap/types.ts +9 -0
  431. package/src/css/props/font/font.css.ts +93 -0
  432. package/src/css/props/font/font.ts +8 -0
  433. package/src/css/props/font/types.ts +6 -0
  434. package/src/css/props/gap/gap.css.ts +40 -0
  435. package/src/css/props/gap/gap.ts +13 -0
  436. package/src/css/{styles → props}/gap/types.ts +2 -2
  437. package/src/css/props/gridAutoColumns/gridAutoColumns.css.ts +19 -0
  438. package/src/css/props/gridAutoColumns/gridAutoColumns.ts +8 -0
  439. package/src/css/props/gridAutoColumns/index.ts +2 -0
  440. package/src/css/props/gridAutoColumns/types.ts +19 -0
  441. package/src/css/props/gridAutoFlow/gridAutoFlow.css.ts +19 -0
  442. package/src/css/props/gridAutoFlow/gridAutoFlow.ts +8 -0
  443. package/src/css/props/gridAutoFlow/index.ts +2 -0
  444. package/src/css/props/gridAutoFlow/types.ts +13 -0
  445. package/src/css/props/gridAutoRows/gridAutoRows.css.ts +19 -0
  446. package/src/css/props/gridAutoRows/gridAutoRows.ts +8 -0
  447. package/src/css/props/gridAutoRows/index.ts +2 -0
  448. package/src/css/props/gridAutoRows/types.ts +13 -0
  449. package/src/css/props/gridColumn/gridColumn.css.ts +49 -0
  450. package/src/css/props/gridColumn/gridColumn.ts +8 -0
  451. package/src/css/props/gridColumn/index.ts +2 -0
  452. package/src/css/props/gridColumn/types.ts +19 -0
  453. package/src/css/props/gridColumnEnd/gridColumnEnd.css.ts +46 -0
  454. package/src/css/props/gridColumnEnd/gridColumnEnd.ts +8 -0
  455. package/src/css/props/gridColumnEnd/index.ts +2 -0
  456. package/src/css/props/gridColumnEnd/types.ts +19 -0
  457. package/src/css/props/gridColumnStart/gridColumnStart.css.ts +46 -0
  458. package/src/css/props/gridColumnStart/gridColumnStart.ts +11 -0
  459. package/src/css/props/gridColumnStart/index.ts +2 -0
  460. package/src/css/props/gridColumnStart/types.ts +19 -0
  461. package/src/css/props/gridRow/gridRow.css.ts +49 -0
  462. package/src/css/props/gridRow/gridRow.ts +8 -0
  463. package/src/css/props/gridRow/index.ts +2 -0
  464. package/src/css/props/gridRow/types.ts +19 -0
  465. package/src/css/props/gridRowEnd/gridRowEnd.css.ts +46 -0
  466. package/src/css/props/gridRowEnd/gridRowEnd.ts +8 -0
  467. package/src/css/props/gridRowEnd/index.ts +2 -0
  468. package/src/css/props/gridRowEnd/types.ts +19 -0
  469. package/src/css/props/gridRowStart/gridRowStart.css.ts +46 -0
  470. package/src/css/props/gridRowStart/gridRowStart.ts +8 -0
  471. package/src/css/props/gridRowStart/index.ts +2 -0
  472. package/src/css/props/gridRowStart/types.ts +19 -0
  473. package/src/css/props/gridTemplateColumns/gridTemplateColumns.css.ts +43 -0
  474. package/src/css/props/gridTemplateColumns/gridTemplateColumns.ts +8 -0
  475. package/src/css/props/gridTemplateColumns/index.ts +2 -0
  476. package/src/css/props/gridTemplateColumns/types.ts +19 -0
  477. package/src/css/props/gridTemplateRows/gridTemplateRows.css.ts +43 -0
  478. package/src/css/props/gridTemplateRows/gridTemplateRows.ts +8 -0
  479. package/src/css/props/gridTemplateRows/index.ts +2 -0
  480. package/src/css/props/gridTemplateRows/types.ts +19 -0
  481. package/src/css/props/height/height.css.ts +25 -0
  482. package/src/css/props/height/height.ts +8 -0
  483. package/src/css/props/height/index.ts +2 -0
  484. package/src/css/props/height/types.ts +15 -0
  485. package/src/css/props/index.ts +37 -0
  486. package/src/css/props/inset/inset.css.ts +37 -0
  487. package/src/css/props/inset/inset.ts +21 -0
  488. package/src/css/{styles → props}/inset/types.ts +1 -1
  489. package/src/css/props/justifyContent/index.ts +2 -0
  490. package/src/css/props/justifyContent/justifyContent.css.ts +25 -0
  491. package/src/css/props/justifyContent/justifyContent.ts +8 -0
  492. package/src/css/props/justifyContent/types.ts +15 -0
  493. package/src/css/props/margin/margin.css.ts +117 -0
  494. package/src/css/props/margin/margin.ts +25 -0
  495. package/src/css/props/margin/types.ts +17 -0
  496. package/src/css/props/maxWidth/maxWidth.css.ts +32 -0
  497. package/src/css/props/maxWidth/maxWidth.ts +8 -0
  498. package/src/css/props/maxWidth/types.ts +11 -0
  499. package/src/css/props/minHeight/index.ts +2 -0
  500. package/src/css/props/minHeight/minHeight.css.ts +13 -0
  501. package/src/css/props/minHeight/minHeight.ts +8 -0
  502. package/src/css/props/minHeight/types.ts +9 -0
  503. package/src/css/props/minWidth/index.ts +2 -0
  504. package/src/css/props/minWidth/minWidth.css.ts +25 -0
  505. package/src/css/props/minWidth/minWidth.ts +8 -0
  506. package/src/css/props/minWidth/types.ts +9 -0
  507. package/src/css/props/outline/index.ts +2 -0
  508. package/src/css/props/outline/outline.css.ts +10 -0
  509. package/src/css/props/outline/outline.ts +8 -0
  510. package/src/css/props/outline/types.ts +7 -0
  511. package/src/css/props/overflow/overflow.css.ts +16 -0
  512. package/src/css/props/overflow/overflow.ts +8 -0
  513. package/src/css/props/overflow/types.ts +17 -0
  514. package/src/css/props/padding/padding.css.ts +87 -0
  515. package/src/css/props/padding/padding.ts +25 -0
  516. package/src/css/props/padding/types.ts +17 -0
  517. package/src/css/props/pointerEvents/pointerEvents.css.ts +13 -0
  518. package/src/css/props/pointerEvents/pointerEvents.ts +8 -0
  519. package/src/css/props/position/position.css.ts +22 -0
  520. package/src/css/props/position/position.ts +8 -0
  521. package/src/css/{styles → props}/position/types.ts +1 -1
  522. package/src/css/props/radius/radius.css.ts +21 -0
  523. package/src/css/props/radius/radius.ts +8 -0
  524. package/src/css/props/radius/types.ts +8 -0
  525. package/src/css/props/shadow/shadow.css.ts +23 -0
  526. package/src/css/props/shadow/shadow.ts +8 -0
  527. package/src/css/props/shadow/types.ts +8 -0
  528. package/src/css/props/textAlign/index.ts +2 -0
  529. package/src/css/props/textAlign/textAlign.css.ts +22 -0
  530. package/src/css/props/textAlign/textAlign.ts +8 -0
  531. package/src/css/props/textAlign/types.ts +7 -0
  532. package/src/css/props/textOverflow/textOverflow.css.ts +13 -0
  533. package/src/css/props/textOverflow/textOverflow.ts +8 -0
  534. package/src/css/{styles → props}/textOverflow/types.ts +5 -1
  535. package/src/css/props/width/types.ts +11 -0
  536. package/src/css/props/width/width.css.ts +28 -0
  537. package/src/css/props/width/width.ts +8 -0
  538. package/src/css/types.ts +221 -766
  539. package/src/css/util.ts +3 -8
  540. package/src/css/utils/index.ts +1 -0
  541. package/src/css/utils/srOnly/srOnly.css.ts +10 -0
  542. package/src/css/utils/srOnly/srOnly.ts +5 -3
  543. package/src/css/vars.css.ts +676 -0
  544. package/src/theme/getScopedTheme.ts +4 -4
  545. package/src/theme/index.ts +0 -5
  546. package/src/theme/types.ts +6 -10
  547. package/src/theme/v0/color/_generic.ts +1 -1
  548. package/src/theme/v0/color/button.ts +1 -1
  549. package/src/theme/v0/color/card.ts +1 -1
  550. package/src/theme/v0/color/color.ts +11 -11
  551. package/src/theme/v0/color/input.ts +1 -1
  552. package/src/theme/v0/color/muted.ts +1 -1
  553. package/src/theme/v0/color/selectable.ts +1 -1
  554. package/src/theme/v0/color/solid.ts +1 -1
  555. package/src/theme/v0/color/spot.ts +1 -1
  556. package/src/theme/v0/focusRing.ts +1 -3
  557. package/src/theme/v0/font.ts +6 -19
  558. package/src/theme/v0/layer.ts +1 -3
  559. package/src/theme/v0/shadow.ts +2 -6
  560. package/src/theme/v0/styles.ts +1 -1
  561. package/src/theme/v0/theme.ts +7 -7
  562. package/src/theme/v2/avatar.ts +2 -4
  563. package/src/theme/{build → v2/build}/_deprecated/color/_selectable/createSelectableTones.ts +3 -3
  564. package/src/theme/{build → v2/build}/_deprecated/color/_solid/createSolidTones.ts +2 -2
  565. package/src/theme/{build → v2/build}/_deprecated/color/button/createButtonModes.ts +7 -2
  566. package/src/theme/{build → v2/build}/_deprecated/color/button/createButtonTones.ts +4 -4
  567. package/src/theme/{build → v2/build}/_deprecated/color/card/createCardStates.ts +3 -3
  568. package/src/theme/{build → v2/build}/_deprecated/color/color.test.ts +1 -1
  569. package/src/theme/{build → v2/build}/_deprecated/color/defaults.ts +1 -1
  570. package/src/theme/{build → v2/build}/_deprecated/color/factory.ts +3 -3
  571. package/src/theme/{build → v2/build}/_deprecated/color/input/createInputModes.ts +7 -2
  572. package/src/theme/{build → v2/build}/_deprecated/color/muted/createMuted.ts +2 -2
  573. package/src/theme/{build → v2/build}/_deprecated/color/spot/createSpot.ts +2 -2
  574. package/src/theme/{build → v2/build}/buildColorTheme.test.ts +3 -1
  575. package/src/theme/{build → v2/build}/buildColorTheme.ts +24 -24
  576. package/src/theme/{build → v2/build}/buildTheme.test.ts +10 -8
  577. package/src/theme/v2/build/buildTheme.ts +12 -0
  578. package/src/theme/{build → v2/build}/colorToken/colorToken.ts +2 -2
  579. package/src/theme/{build → v2/build}/colorToken/compileColorToken.ts +1 -1
  580. package/src/theme/{build → v2/build}/colorToken/types.ts +2 -2
  581. package/src/theme/{build → v2/build}/lib/color-fns/blend/mix.ts +1 -1
  582. package/src/theme/{build → v2/build}/lib/color-fns/blend/multiply.ts +1 -1
  583. package/src/theme/{build → v2/build}/lib/color-fns/blend/screen.ts +1 -1
  584. package/src/theme/{build → v2/build}/lib/color-fns/color-fns.test.ts +1 -1
  585. package/src/theme/{build → v2/build}/lib/color-fns/contrastRatio.ts +5 -2
  586. package/src/theme/{build → v2/build}/lib/color-fns/convert.ts +1 -1
  587. package/src/theme/{build → v2/build}/lib/color-fns/parse.ts +1 -1
  588. package/src/theme/{build → v2/build}/mixThemeColor.test.ts +2 -0
  589. package/src/theme/{build → v2/build}/mixThemeColor.ts +1 -1
  590. package/src/theme/{build → v2/build}/renderColorTheme.ts +27 -27
  591. package/src/theme/{build → v2/build}/renderColorValue.ts +3 -3
  592. package/src/theme/{build → v2/build}/resolveColorTokens.ts +13 -13
  593. package/src/theme/v2/color/_helpers.ts +2 -2
  594. package/src/theme/v2/color/_system.ts +2 -4
  595. package/src/theme/v2/color/avatar.ts +3 -7
  596. package/src/theme/v2/color/badge.ts +3 -7
  597. package/src/theme/v2/color/button.ts +5 -11
  598. package/src/theme/v2/color/color.ts +10 -16
  599. package/src/theme/v2/color/input.ts +8 -10
  600. package/src/theme/v2/color/kbd.ts +1 -3
  601. package/src/theme/v2/color/selectable.ts +4 -8
  602. package/src/theme/v2/color/state.ts +5 -7
  603. package/src/theme/v2/color/syntax.ts +1 -3
  604. package/src/theme/{config → v2/config}/helpers.ts +6 -13
  605. package/src/theme/{config → v2/config}/system.ts +11 -12
  606. package/src/theme/{config → v2/config}/tokens/color/types.ts +14 -10
  607. package/src/theme/{config → v2/config}/tokens/index.ts +0 -1
  608. package/src/theme/{config → v2/config}/tokens/parseTokenValue.test.ts +2 -0
  609. package/src/theme/{config → v2/config}/tokens/parseTokenValue.ts +2 -2
  610. package/src/theme/{config → v2/config}/tokens/types.ts +3 -3
  611. package/src/theme/{config → v2/config}/types.ts +8 -6
  612. package/src/theme/{defaults → v2/defaults}/colorPalette.ts +1 -1
  613. package/src/theme/{defaults → v2/defaults}/colorTokens.ts +3 -3
  614. package/src/theme/{defaults → v2/defaults}/config.ts +2 -2
  615. package/src/theme/{defaults → v2/defaults}/fonts.ts +5 -6
  616. package/src/theme/v2/index.ts +2 -0
  617. package/src/theme/v2/input.ts +2 -4
  618. package/src/theme/v2/theme.ts +10 -14
  619. package/src/theme/{_constants.ts → v3/_constants.ts} +6 -3
  620. package/src/theme/v3/{color/parseColor.ts → _parseColorToken.ts} +59 -46
  621. package/src/theme/v3/buildTheme_v3.ts +20 -11
  622. package/src/theme/v3/color/_constants.ts +15 -0
  623. package/src/theme/v3/color/avatar.ts +14 -0
  624. package/src/theme/v3/color/card.ts +58 -95
  625. package/src/theme/v3/color/color.ts +75 -71
  626. package/src/theme/v3/color/element.ts +8 -8
  627. package/src/theme/v3/color/index.ts +2 -2
  628. package/src/theme/v3/color/token.ts +19 -4
  629. package/src/theme/v3/color/tokens.ts +2 -2
  630. package/src/theme/v3/defaultFonts.ts +250 -0
  631. package/src/theme/v3/defaultTokens.ts +199 -0
  632. package/src/theme/v3/index.ts +4 -1
  633. package/src/theme/{palette → v3/palette}/constants.ts +3 -3
  634. package/src/theme/v3/palette/types.ts +7 -0
  635. package/src/theme/v3/resolveTokens.ts +70 -65
  636. package/src/theme/v3/tokens.ts +2 -2
  637. package/src/theme/v3/types.ts +97 -12
  638. package/src/theme/versioning/getTheme_v2.ts +3 -3
  639. package/src/theme/versioning/is_v0.ts +2 -2
  640. package/src/theme/versioning/is_v2.ts +2 -2
  641. package/src/theme/versioning/themeColor_v0_v2.ts +2 -2
  642. package/src/theme/versioning/themeColor_v2_v2_9.ts +1 -1
  643. package/src/theme/versioning/themeColor_v3_v2.ts +229 -52
  644. package/src/theme/versioning/v0_v2.ts +3 -3
  645. package/src/theme/versioning/v2_v0.ts +4 -4
  646. package/src/theme/versioning/v3_v2.ts +62 -40
  647. package/dist/_chunks-cjs/_visual-editing.js +0 -3059
  648. package/dist/_chunks-cjs/_visual-editing.js.map +0 -1
  649. package/dist/_chunks-cjs/buildCommand.js +0 -32
  650. package/dist/_chunks-cjs/buildCommand.js.map +0 -1
  651. package/dist/_chunks-cjs/refractor.js.map +0 -1
  652. package/dist/_chunks-cjs/v3_v2.js +0 -251
  653. package/dist/_chunks-cjs/v3_v2.js.map +0 -1
  654. package/dist/_chunks-es/_visual-editing.mjs +0 -3066
  655. package/dist/_chunks-es/_visual-editing.mjs.map +0 -1
  656. package/dist/_chunks-es/refractor.mjs.map +0 -1
  657. package/dist/_chunks-es/v3_v2.mjs +0 -252
  658. package/dist/_chunks-es/v3_v2.mjs.map +0 -1
  659. package/dist/_visual-editing.d.mts +0 -806
  660. package/dist/_visual-editing.mjs +0 -31
  661. package/dist/_visual-editing.mjs.map +0 -1
  662. package/dist/cli.d.ts +0 -1
  663. package/dist/cli.js +0 -357
  664. package/dist/cli.js.map +0 -1
  665. package/dist/css.d.mts +0 -2135
  666. package/dist/css.mjs +0 -4713
  667. package/dist/css.mjs.map +0 -1
  668. package/dist/index.mjs +0 -1542
  669. package/dist/index.mjs.map +0 -1
  670. package/dist/sanity-palette.css +0 -9
  671. package/dist/sanity-theme.css +0 -1
  672. package/dist/system.css +0 -3577
  673. package/dist/theme.mjs.map +0 -1
  674. package/src/core/StyleTags.tsx +0 -24
  675. package/src/core/primitives/popover/popoverCard.tsx +0 -148
  676. package/src/core/primitives/tooltip/tooltipCard.tsx +0 -115
  677. package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +0 -23
  678. package/src/core/utils/conditionalWrapper/index.ts +0 -1
  679. package/src/css/_resp.ts +0 -31
  680. package/src/css/compile/compilePalette.ts +0 -60
  681. package/src/css/compile/compileRule.ts +0 -90
  682. package/src/css/compile/compileRules.test.ts +0 -35
  683. package/src/css/compile/compileRules.ts +0 -40
  684. package/src/css/compile/compileSystem.ts +0 -7
  685. package/src/css/compile/compileTheme.ts +0 -15
  686. package/src/css/compile/compileTheme_v3.ts +0 -410
  687. package/src/css/compile/types.ts +0 -6
  688. package/src/css/components/breadcrumbs/rules.ts +0 -25
  689. package/src/css/components/dialog/rules.ts +0 -76
  690. package/src/css/components/menu/rules.ts +0 -15
  691. package/src/css/components/skeleton/rules.ts +0 -112
  692. package/src/css/components/toast/rules.ts +0 -17
  693. package/src/css/components/tree/rules.ts +0 -168
  694. package/src/css/composeClassNames.ts +0 -13
  695. package/src/css/primitives/_arrow/rules.ts +0 -71
  696. package/src/css/primitives/_input/rules.ts +0 -163
  697. package/src/css/primitives/_selectable/__style.ts +0 -117
  698. package/src/css/primitives/_selectable/_contants.ts +0 -11
  699. package/src/css/primitives/_selectable/rules.ts +0 -129
  700. package/src/css/primitives/avatar/rules.ts +0 -176
  701. package/src/css/primitives/badge/rules.ts +0 -22
  702. package/src/css/primitives/box/rules.ts +0 -28
  703. package/src/css/primitives/button/_constants.ts +0 -17
  704. package/src/css/primitives/button/rules.ts +0 -293
  705. package/src/css/primitives/card/_constants.ts +0 -13
  706. package/src/css/primitives/card/rules.ts +0 -471
  707. package/src/css/primitives/checkbox/__styles.ts +0 -129
  708. package/src/css/primitives/checkbox/rules.ts +0 -152
  709. package/src/css/primitives/code/rules.ts +0 -96
  710. package/src/css/primitives/container/rules.ts +0 -8
  711. package/src/css/primitives/heading/rules.ts +0 -155
  712. package/src/css/primitives/kbd/rules.ts +0 -20
  713. package/src/css/primitives/label/rules.ts +0 -137
  714. package/src/css/primitives/popover/rules.ts +0 -5
  715. package/src/css/primitives/radio/rules.ts +0 -121
  716. package/src/css/primitives/select/rules.ts +0 -22
  717. package/src/css/primitives/spinner/rules.ts +0 -20
  718. package/src/css/primitives/switch/rules.ts +0 -340
  719. package/src/css/primitives/text/rules.ts +0 -164
  720. package/src/css/primitives/textArea/rules.ts +0 -7
  721. package/src/css/primitives/textInput/rules.ts +0 -224
  722. package/src/css/primitives/token/rules.ts +0 -45
  723. package/src/css/primitives/tooltip/rules.ts +0 -19
  724. package/src/css/responsiveRules.ts +0 -25
  725. package/src/css/rules.ts +0 -113
  726. package/src/css/styles/border/border.ts +0 -22
  727. package/src/css/styles/border/rules.ts +0 -24
  728. package/src/css/styles/border/types.ts +0 -10
  729. package/src/css/styles/display/display.ts +0 -7
  730. package/src/css/styles/display/rules.ts +0 -62
  731. package/src/css/styles/flex/flex.ts +0 -20
  732. package/src/css/styles/flex/rules.ts +0 -28
  733. package/src/css/styles/flex/types.ts +0 -35
  734. package/src/css/styles/flexItem/flexItem.ts +0 -8
  735. package/src/css/styles/flexItem/index.ts +0 -2
  736. package/src/css/styles/flexItem/rules.ts +0 -12
  737. package/src/css/styles/flexItem/types.ts +0 -11
  738. package/src/css/styles/font/font.ts +0 -17
  739. package/src/css/styles/font/rules.ts +0 -148
  740. package/src/css/styles/font/types.ts +0 -12
  741. package/src/css/styles/gap/gap.ts +0 -8
  742. package/src/css/styles/gap/rules.ts +0 -34
  743. package/src/css/styles/grid/grid.ts +0 -13
  744. package/src/css/styles/grid/index.ts +0 -2
  745. package/src/css/styles/grid/rules.ts +0 -146
  746. package/src/css/styles/grid/types.ts +0 -29
  747. package/src/css/styles/gridItem/gridItem.ts +0 -15
  748. package/src/css/styles/gridItem/index.ts +0 -2
  749. package/src/css/styles/gridItem/rules.ts +0 -96
  750. package/src/css/styles/gridItem/types.ts +0 -41
  751. package/src/css/styles/height/rules.ts +0 -7
  752. package/src/css/styles/index.ts +0 -19
  753. package/src/css/styles/inset/inset.ts +0 -13
  754. package/src/css/styles/inset/rules.ts +0 -16
  755. package/src/css/styles/margin/margin.ts +0 -15
  756. package/src/css/styles/margin/rules.ts +0 -64
  757. package/src/css/styles/margin/types.ts +0 -11
  758. package/src/css/styles/maxWidth/maxWidth.ts +0 -6
  759. package/src/css/styles/maxWidth/rules.ts +0 -13
  760. package/src/css/styles/maxWidth/types.ts +0 -7
  761. package/src/css/styles/outline/rules.ts +0 -7
  762. package/src/css/styles/overflow/overflow.ts +0 -11
  763. package/src/css/styles/overflow/rules.ts +0 -9
  764. package/src/css/styles/overflow/types.ts +0 -11
  765. package/src/css/styles/padding/padding.ts +0 -15
  766. package/src/css/styles/padding/rules.ts +0 -62
  767. package/src/css/styles/padding/types.ts +0 -14
  768. package/src/css/styles/pointerEvents/pointerEvents.ts +0 -6
  769. package/src/css/styles/pointerEvents/rules.ts +0 -11
  770. package/src/css/styles/position/position.ts +0 -7
  771. package/src/css/styles/position/rules.ts +0 -24
  772. package/src/css/styles/radius/radius.ts +0 -8
  773. package/src/css/styles/radius/rules.ts +0 -13
  774. package/src/css/styles/radius/types.ts +0 -8
  775. package/src/css/styles/shadow/rules.ts +0 -53
  776. package/src/css/styles/shadow/shadow.ts +0 -7
  777. package/src/css/styles/shadow/types.ts +0 -8
  778. package/src/css/styles/textOverflow/rules.ts +0 -17
  779. package/src/css/styles/textOverflow/textOverflow.ts +0 -6
  780. package/src/css/styles/width/rules.ts +0 -7
  781. package/src/css/styles/width/types.ts +0 -9
  782. package/src/css/styles/width/width.ts +0 -6
  783. package/src/css/utils/srOnly/rules.ts +0 -11
  784. package/src/css/varNames.ts +0 -473
  785. package/src/css/vars.ts +0 -443
  786. package/src/theme/_types.ts +0 -41
  787. package/src/theme/build/buildTheme.ts +0 -12
  788. package/src/theme/build/theme.test.ts +0 -27
  789. package/src/theme/config/tokens/parseTokenKey.test.ts +0 -64
  790. package/src/theme/config/tokens/parseTokenKey.ts +0 -67
  791. package/src/theme/palette/types.ts +0 -16
  792. package/src/theme/v3/buildTheme_v3.test.ts +0 -40
  793. package/src/theme/v3/color/buildColor_v3.ts +0 -193
  794. package/src/theme/v3/color/parseColor.test.ts +0 -79
  795. package/src/theme/v3/color/renderColor.test.ts +0 -19
  796. package/src/theme/v3/color/renderColor.ts +0 -33
  797. package/src/theme/v3/defaults.ts +0 -205
  798. /package/src/core/components/autocomplete/{__mocks__ → __workshop__/mock}/apiStore.ts +0 -0
  799. /package/src/core/components/autocomplete/{__mocks__ → __workshop__/mock}/countries.ts +0 -0
  800. /package/src/css/{styles → props}/border/index.ts +0 -0
  801. /package/src/css/{styles → props}/display/index.ts +0 -0
  802. /package/src/css/{styles → props}/flex/index.ts +0 -0
  803. /package/src/css/{styles → props}/font/index.ts +0 -0
  804. /package/src/css/{styles → props}/gap/index.ts +0 -0
  805. /package/src/css/{styles → props}/inset/index.ts +0 -0
  806. /package/src/css/{styles → props}/margin/index.ts +0 -0
  807. /package/src/css/{styles → props}/maxWidth/index.ts +0 -0
  808. /package/src/css/{styles → props}/overflow/index.ts +0 -0
  809. /package/src/css/{styles → props}/padding/index.ts +0 -0
  810. /package/src/css/{styles → props}/pointerEvents/index.ts +0 -0
  811. /package/src/css/{styles → props}/pointerEvents/types.ts +0 -0
  812. /package/src/css/{styles → props}/position/index.ts +0 -0
  813. /package/src/css/{styles → props}/radius/index.ts +0 -0
  814. /package/src/css/{styles → props}/shadow/index.ts +0 -0
  815. /package/src/css/{styles → props}/textOverflow/index.ts +0 -0
  816. /package/src/css/{styles → props}/width/index.ts +0 -0
  817. /package/src/theme/{build → v2/build}/_deprecated/color/index.ts +0 -0
  818. /package/src/theme/{build → v2/build}/colorToken/index.ts +0 -0
  819. /package/src/theme/{build → v2/build}/index.ts +0 -0
  820. /package/src/theme/{build → v2/build}/lib/color-fns/blend/index.ts +0 -0
  821. /package/src/theme/{build → v2/build}/lib/color-fns/index.ts +0 -0
  822. /package/src/theme/{build → v2/build}/lib/color-fns/rgba.ts +0 -0
  823. /package/src/theme/{build → v2/build}/lib/color-fns/types.ts +0 -0
  824. /package/src/theme/{build → v2/build}/lib/isRecord.ts +0 -0
  825. /package/src/theme/{build → v2/build}/lib/utils.ts +0 -0
  826. /package/src/theme/{build → v2/build}/merge.ts +0 -0
  827. /package/src/theme/{config → v2/config}/index.ts +0 -0
  828. /package/src/theme/{config → v2/config}/tokens/color/index.ts +0 -0
  829. /package/src/theme/{palette → v3/palette}/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,
@@ -22,20 +20,21 @@ import {
22
20
 
23
21
  import {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'
24
22
  import {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'
25
- import {useArrayProp} from '../../hooks'
23
+ import {useResponsiveProp} 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)
@@ -207,7 +196,7 @@ const InnerAutocomplete = forwardRef(function InnerAutocomplete<
207
196
 
208
197
  const listBoxId = `${id}-listbox`
209
198
  const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY
210
- const padding = useArrayProp(paddingProp)
199
+ const padding = useResponsiveProp(paddingProp)
211
200
  const currentOption = useMemo(
212
201
  () => (value !== null ? options.find((o) => o.value === value) : undefined),
213
202
  [options, value],
@@ -463,20 +452,22 @@ const InnerAutocomplete = forwardRef(function InnerAutocomplete<
463
452
  return undefined
464
453
  }, [disabled, handleClearButtonFocus, loading, value])
465
454
 
466
- const openButtonBoxPadding = useMemo(
467
- () =>
468
- padding.map((v) => {
469
- if (v === 0) return 0
470
- if (v === 1) return 1
471
- if (v === 2) return 1
455
+ const openButtonBoxPadding = useMemo(() => {
456
+ const result = Object.fromEntries(
457
+ Object.entries(padding).map(([key, value]) => {
458
+ if (value === 0) return [key, 0]
459
+ if (value === 1) return [key, 1]
460
+ if (value === 2) return [key, 1]
472
461
 
473
- return (v as Space) - 2
474
- }) as Space[],
475
- [padding],
476
- )
462
+ return [key, (value as Space) - 2]
463
+ }),
464
+ ) as ResponsiveProp<Space>
465
+
466
+ return result
467
+ }, [padding])
477
468
 
478
469
  const openButtonPadding = useMemo(
479
- () => padding.map((v) => Math.max((v as Space) - 1, 0)) as Space[],
470
+ () => Object.values(padding).map((v) => Math.max((v as Space) - 1, 0)) as ResponsiveProp<Space>,
480
471
  [padding],
481
472
  )
482
473
 
@@ -540,7 +531,7 @@ const InnerAutocomplete = forwardRef(function InnerAutocomplete<
540
531
 
541
532
  const input = (
542
533
  <TextInput
543
- {...restProps}
534
+ {...rest}
544
535
  aria-activedescendant={activeItemId}
545
536
  aria-autocomplete="list"
546
537
  aria-expanded={expanded}
@@ -548,6 +539,7 @@ const InnerAutocomplete = forwardRef(function InnerAutocomplete<
548
539
  autoCapitalize="off"
549
540
  autoComplete="off"
550
541
  autoCorrect="off"
542
+ as={as}
551
543
  border={border}
552
544
  clearButton={clearButton}
553
545
  customValidity={customValidity}
@@ -597,10 +589,10 @@ const InnerAutocomplete = forwardRef(function InnerAutocomplete<
597
589
  as="ul"
598
590
  aria-multiselectable={false}
599
591
  data-ui="AutoComplete__resultsList"
592
+ gap={1}
600
593
  id={listBoxId}
601
594
  ref={listBoxElementRef}
602
595
  role="listbox"
603
- space={1}
604
596
  >
605
597
  {filteredOptions.map((option) => {
606
598
  const active =
@@ -670,7 +662,7 @@ const InnerAutocomplete = forwardRef(function InnerAutocomplete<
670
662
  overflow="auto"
671
663
  placement={AUTOCOMPLETE_POPOVER_PLACEMENT}
672
664
  portal
673
- radius={radius}
665
+ radius={3}
674
666
  ref={resultsPopoverElementRef}
675
667
  referenceElement={inputElementRef.current}
676
668
  {...popover}
@@ -683,7 +675,6 @@ const InnerAutocomplete = forwardRef(function InnerAutocomplete<
683
675
  handlePopoverMouseEnter,
684
676
  handlePopoverMouseLeave,
685
677
  popover,
686
- radius,
687
678
  renderPopover,
688
679
  ])
689
680
 
@@ -700,29 +691,4 @@ const InnerAutocomplete = forwardRef(function InnerAutocomplete<
700
691
  {results}
701
692
  </div>
702
693
  )
703
- })
704
-
705
- InnerAutocomplete.displayName = 'ForwardRef(Autocomplete)'
706
-
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
+ }
@@ -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
 
@@ -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 {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'
15
+ import {Box, Button, type ButtonProps, Flex, Popover, Stack, Text} from '../../primitives'
16
+ import type {ComponentType, Props} from '../../types'
19
17
 
20
- /**
21
- * @beta
22
- */
23
- export interface BreadcrumbsProps extends GapStyleProps {
24
- expandButton?: Omit<ButtonProps, 'onClick' | 'selected'>
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={breadcrumbs({className})}
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,4 @@ export const Breadcrumbs = forwardRef(function Breadcrumbs(
122
128
  ))}
123
129
  </Flex>
124
130
  )
125
- })
126
-
127
- Breadcrumbs.displayName = 'ForwardRef(Breadcrumbs)'
131
+ }
@@ -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>