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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (582) hide show
  1. package/README.md +1 -1
  2. package/dist/_chunks-cjs/_visual-editing.cjs +269 -378
  3. package/dist/_chunks-cjs/_visual-editing.cjs.map +1 -1
  4. package/dist/_chunks-cjs/refractor.cjs.map +1 -1
  5. package/dist/_chunks-es/_visual-editing.js +270 -381
  6. package/dist/_chunks-es/_visual-editing.js.map +1 -1
  7. package/dist/_chunks-es/refractor.js.map +1 -1
  8. package/dist/_visual-editing.cjs +0 -2
  9. package/dist/_visual-editing.cjs.map +1 -1
  10. package/dist/_visual-editing.d.cts +2 -894
  11. package/dist/_visual-editing.d.ts +2 -894
  12. package/dist/_visual-editing.js +2 -4
  13. package/dist/css/index.cjs +13 -13
  14. package/dist/css/index.cjs.map +1 -1
  15. package/dist/css/index.css +1 -1
  16. package/dist/css/index.d.cts +805 -14697
  17. package/dist/css/index.d.ts +805 -14697
  18. package/dist/css/index.js +13 -13
  19. package/dist/css/index.js.map +1 -1
  20. package/dist/index.cjs +242 -367
  21. package/dist/index.cjs.map +1 -1
  22. package/dist/index.d.cts +990 -3085
  23. package/dist/index.d.ts +990 -3085
  24. package/dist/index.js +244 -361
  25. package/dist/index.js.map +1 -1
  26. package/dist/portalProvider-DgNIVviV.d.ts +575 -0
  27. package/dist/theme.cjs +367 -4288
  28. package/dist/theme.cjs.map +1 -1
  29. package/dist/theme.d.cts +272 -1806
  30. package/dist/theme.d.ts +272 -1806
  31. package/dist/theme.js +371 -4292
  32. package/dist/theme.js.map +1 -1
  33. package/exports/_visual-editing.ts +0 -2
  34. package/package.json +8 -9
  35. package/src/core/Root.tsx +6 -4
  36. package/src/core/RootProvider.tsx +4 -4
  37. package/src/core/__workshop__/boundary.tsx +1 -1
  38. package/src/core/__workshop__/index.ts +5 -3
  39. package/src/core/components/autocomplete/__workshop__/async.tsx +1 -1
  40. package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +2 -2
  41. package/src/core/components/autocomplete/__workshop__/custom.tsx +2 -2
  42. package/src/core/components/autocomplete/__workshop__/example.tsx +2 -2
  43. package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +1 -1
  44. package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +1 -1
  45. package/src/core/components/autocomplete/__workshop__/index.ts +5 -3
  46. package/src/core/components/autocomplete/__workshop__/mock/apiStore.ts +1 -1
  47. package/src/core/components/autocomplete/__workshop__/mock/countries.ts +1 -1
  48. package/src/core/components/autocomplete/autocomplete.tsx +2 -2
  49. package/src/core/components/autocomplete/autocompleteOption.tsx +2 -2
  50. package/src/core/components/autocomplete/constants.ts +2 -2
  51. package/src/core/components/breadcrumbs/__workshop__/example.tsx +1 -1
  52. package/src/core/components/breadcrumbs/__workshop__/index.ts +5 -3
  53. package/src/core/components/breadcrumbs/breadcrumbs.tsx +6 -11
  54. package/src/core/components/dialog/__workshop__/activate.tsx +1 -1
  55. package/src/core/components/dialog/__workshop__/autoFocus.tsx +1 -1
  56. package/src/core/components/dialog/__workshop__/index.ts +5 -3
  57. package/src/core/components/dialog/__workshop__/layering.tsx +1 -1
  58. package/src/core/components/dialog/__workshop__/nested.tsx +2 -3
  59. package/src/core/components/dialog/__workshop__/onScroll.tsx +1 -1
  60. package/src/core/components/dialog/__workshop__/panes.tsx +1 -1
  61. package/src/core/components/dialog/__workshop__/position.tsx +1 -1
  62. package/src/core/components/dialog/__workshop__/props.tsx +1 -1
  63. package/src/core/components/dialog/__workshop__/provider.tsx +1 -1
  64. package/src/core/components/dialog/__workshop__/wrapped.tsx +1 -1
  65. package/src/core/components/dialog/dialog.tsx +5 -6
  66. package/src/core/components/dialog/dialogCard.tsx +2 -2
  67. package/src/core/components/dialog/dialogContext.ts +3 -4
  68. package/src/core/components/dialog/dialogProvider.tsx +2 -2
  69. package/src/core/components/hotkeys/__workshop__/index.ts +5 -3
  70. package/src/core/components/hotkeys/__workshop__/plain.tsx +1 -1
  71. package/src/core/components/hotkeys/hotkeys.tsx +4 -15
  72. package/src/core/components/menu/__workshop__/asComponent.tsx +1 -1
  73. package/src/core/components/menu/__workshop__/avatarMenu.tsx +1 -1
  74. package/src/core/components/menu/__workshop__/closableMenuButton.tsx +1 -1
  75. package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +3 -3
  76. package/src/core/components/menu/__workshop__/customMenuItem.tsx +1 -1
  77. package/src/core/components/menu/__workshop__/customSelectedState.tsx +1 -1
  78. package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +1 -1
  79. package/src/core/components/menu/__workshop__/groups.tsx +1 -1
  80. package/src/core/components/menu/__workshop__/index.ts +5 -3
  81. package/src/core/components/menu/__workshop__/menuButton.tsx +2 -2
  82. package/src/core/components/menu/__workshop__/menuGroupRight.tsx +1 -1
  83. package/src/core/components/menu/__workshop__/nestedMenu.tsx +1 -1
  84. package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +1 -1
  85. package/src/core/components/menu/__workshop__/selectedItem.tsx +1 -1
  86. package/src/core/components/menu/__workshop__/shouldFocus.tsx +1 -1
  87. package/src/core/components/menu/__workshop__/tones.tsx +3 -3
  88. package/src/core/components/menu/__workshop__/withoutArrow.tsx +1 -1
  89. package/src/core/components/menu/menu.test.tsx +2 -1
  90. package/src/core/components/menu/menu.tsx +7 -22
  91. package/src/core/components/menu/menuButton.tsx +4 -50
  92. package/src/core/components/menu/menuContext.ts +3 -15
  93. package/src/core/components/menu/menuDivider.tsx +2 -2
  94. package/src/core/components/menu/menuGroup.tsx +10 -15
  95. package/src/core/components/menu/menuItem.tsx +7 -18
  96. package/src/core/components/tab/__workshop__/example.tsx +1 -1
  97. package/src/core/components/tab/__workshop__/index.ts +5 -3
  98. package/src/core/components/tab/tab.tsx +6 -4
  99. package/src/core/components/tab/tabList.tsx +3 -8
  100. package/src/core/components/tab/tabPanel.tsx +2 -2
  101. package/src/core/components/toast/__workshop__/hook.tsx +1 -1
  102. package/src/core/components/toast/__workshop__/index.ts +5 -3
  103. package/src/core/components/toast/__workshop__/toast.tsx +1 -1
  104. package/src/core/components/toast/toast.test.tsx +2 -1
  105. package/src/core/components/toast/toast.tsx +2 -2
  106. package/src/core/components/toast/toastContext.ts +4 -4
  107. package/src/core/components/toast/toastLayer.tsx +3 -3
  108. package/src/core/components/tree/__workshop__/basic.perf.ts +1 -1
  109. package/src/core/components/tree/__workshop__/basic.tsx +1 -1
  110. package/src/core/components/tree/__workshop__/index.ts +5 -3
  111. package/src/core/components/tree/__workshop__/tabFromElement.tsx +1 -1
  112. package/src/core/components/tree/tree.tsx +8 -9
  113. package/src/core/components/tree/treeContext.ts +4 -4
  114. package/src/core/components/tree/treeGroup.tsx +6 -8
  115. package/src/core/components/tree/treeItem.tsx +4 -4
  116. package/src/core/components/tree/types.ts +1 -1
  117. package/src/core/components/virtualList/__workshop__/changingProps.tsx +1 -1
  118. package/src/core/components/virtualList/__workshop__/elementScroll.tsx +1 -1
  119. package/src/core/components/virtualList/__workshop__/index.ts +5 -3
  120. package/src/core/components/virtualList/__workshop__/infiniteList.tsx +1 -1
  121. package/src/core/components/virtualList/__workshop__/windowScrolll.tsx +1 -1
  122. package/src/core/components/virtualList/virtualList.tsx +2 -2
  123. package/src/core/constants.ts +0 -18
  124. package/src/core/hooks/useMediaIndex/__workshop__/index.ts +5 -3
  125. package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +1 -1
  126. package/src/core/hooks/useMediaIndex/useMediaIndex.ts +6 -1
  127. package/src/core/index.ts +1 -24
  128. package/src/core/lib/createGlobalScopedContext.ts +1 -1
  129. package/src/core/lib/globalScope.ts +1 -1
  130. package/src/core/observers/elementSize.ts +1 -1
  131. package/src/core/primitives/arrow/arrow.tsx +2 -2
  132. package/src/core/primitives/avatar/__workshop__/asButton.tsx +1 -1
  133. package/src/core/primitives/avatar/__workshop__/index.ts +5 -3
  134. package/src/core/primitives/avatar/__workshop__/stack.tsx +1 -1
  135. package/src/core/primitives/avatar/__workshop__/withinButton.tsx +1 -1
  136. package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +1 -1
  137. package/src/core/primitives/avatar/avatar.tsx +3 -10
  138. package/src/core/primitives/avatar/avatarCounter.tsx +2 -2
  139. package/src/core/primitives/avatar/avatarStack.tsx +2 -4
  140. package/src/core/primitives/avatar/types.ts +0 -32
  141. package/src/core/primitives/badge/__workshop__/index.ts +5 -3
  142. package/src/core/primitives/badge/__workshop__/props.tsx +1 -1
  143. package/src/core/primitives/badge/__workshop__/tones.tsx +3 -3
  144. package/src/core/primitives/badge/badge.test.tsx +2 -1
  145. package/src/core/primitives/badge/badge.tsx +12 -11
  146. package/src/core/primitives/box/__workshop__/index.ts +5 -3
  147. package/src/core/primitives/box/__workshop__/props.tsx +1 -1
  148. package/src/core/primitives/box/__workshop__/responsive.tsx +1 -1
  149. package/src/core/primitives/box/box.tsx +28 -32
  150. package/src/core/primitives/button/__workshop__/custom.tsx +5 -5
  151. package/src/core/primitives/button/__workshop__/customIcons.tsx +1 -1
  152. package/src/core/primitives/button/__workshop__/disabled.tsx +3 -3
  153. package/src/core/primitives/button/__workshop__/index.ts +5 -3
  154. package/src/core/primitives/button/__workshop__/mixedChildren.tsx +1 -1
  155. package/src/core/primitives/button/__workshop__/props.tsx +1 -1
  156. package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +1 -1
  157. package/src/core/primitives/button/__workshop__/stacked.tsx +1 -1
  158. package/src/core/primitives/button/__workshop__/styled1.tsx +1 -1
  159. package/src/core/primitives/button/__workshop__/styled2.tsx +1 -1
  160. package/src/core/primitives/button/__workshop__/textOverflow.tsx +1 -1
  161. package/src/core/primitives/button/__workshop__/uploadButton.tsx +1 -1
  162. package/src/core/primitives/button/button.test.tsx +2 -1
  163. package/src/core/primitives/button/button.tsx +4 -7
  164. package/src/core/primitives/button/types.ts +0 -20
  165. package/src/core/primitives/card/__workshop__/asButton.tsx +2 -2
  166. package/src/core/primitives/card/__workshop__/asComponent.tsx +1 -1
  167. package/src/core/primitives/card/__workshop__/checkered.tsx +3 -3
  168. package/src/core/primitives/card/__workshop__/index.ts +5 -3
  169. package/src/core/primitives/card/__workshop__/interactive.tsx +1 -1
  170. package/src/core/primitives/card/__workshop__/listNavigation.tsx +1 -1
  171. package/src/core/primitives/card/__workshop__/props.tsx +1 -1
  172. package/src/core/primitives/card/__workshop__/selected.tsx +1 -1
  173. package/src/core/primitives/card/__workshop__/styled.tsx +1 -1
  174. package/src/core/primitives/card/__workshop__/tones.tsx +3 -3
  175. package/src/core/primitives/card/card.tsx +4 -2
  176. package/src/core/primitives/card/cardContext.ts +1 -1
  177. package/src/core/primitives/card/cardProvider.tsx +4 -4
  178. package/src/core/primitives/card/types.ts +5 -19
  179. package/src/core/primitives/checkbox/__workshop__/example.tsx +1 -1
  180. package/src/core/primitives/checkbox/__workshop__/index.ts +5 -3
  181. package/src/core/primitives/checkbox/__workshop__/props.tsx +1 -1
  182. package/src/core/primitives/checkbox/__workshop__/readOnly.tsx +1 -1
  183. package/src/core/primitives/checkbox/__workshop__/tones.tsx +3 -3
  184. package/src/core/primitives/checkbox/checkbox.tsx +2 -2
  185. package/src/core/primitives/code/__workshop__/index.ts +5 -3
  186. package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +1 -1
  187. package/src/core/primitives/code/__workshop__/props.tsx +1 -1
  188. package/src/core/primitives/code/code.tsx +4 -2
  189. package/src/core/primitives/code/refractor.tsx +1 -1
  190. package/src/core/primitives/container/__workshop__/example.tsx +1 -1
  191. package/src/core/primitives/container/__workshop__/index.ts +5 -3
  192. package/src/core/primitives/container/container.tsx +2 -2
  193. package/src/core/primitives/flex/__workshop__/example.tsx +1 -1
  194. package/src/core/primitives/flex/__workshop__/gap.tsx +1 -1
  195. package/src/core/primitives/flex/__workshop__/index.ts +5 -3
  196. package/src/core/primitives/flex/flex.tsx +4 -2
  197. package/src/core/primitives/grid/__workshop__/index.ts +5 -3
  198. package/src/core/primitives/grid/__workshop__/responsive.tsx +3 -3
  199. package/src/core/primitives/grid/grid.tsx +4 -2
  200. package/src/core/primitives/heading/__workshop__/index.ts +5 -3
  201. package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +1 -1
  202. package/src/core/primitives/heading/__workshop__/plain.tsx +1 -1
  203. package/src/core/primitives/heading/heading.tsx +2 -4
  204. package/src/core/primitives/inline/__workshop__/index.ts +5 -3
  205. package/src/core/primitives/inline/__workshop__/plain.tsx +1 -1
  206. package/src/core/primitives/inline/inline.tsx +4 -11
  207. package/src/core/primitives/kbd/__workshop__/index.ts +5 -3
  208. package/src/core/primitives/kbd/__workshop__/plain.tsx +1 -1
  209. package/src/core/primitives/kbd/kbd.tsx +4 -2
  210. package/src/core/primitives/label/__workshop__/index.ts +5 -3
  211. package/src/core/primitives/label/__workshop__/opticalAlignment.tsx +1 -1
  212. package/src/core/primitives/label/__workshop__/plain.tsx +1 -1
  213. package/src/core/primitives/label/label.tsx +2 -4
  214. package/src/core/primitives/layer/__workshop__/_debug.tsx +1 -1
  215. package/src/core/primitives/layer/__workshop__/index.ts +5 -3
  216. package/src/core/primitives/layer/__workshop__/multipleRoots.tsx +1 -1
  217. package/src/core/primitives/layer/__workshop__/nested.tsx +1 -1
  218. package/src/core/primitives/layer/__workshop__/responsiveZOffset.tsx +1 -1
  219. package/src/core/primitives/layer/layer.test.tsx +2 -1
  220. package/src/core/primitives/layer/layer.tsx +2 -2
  221. package/src/core/primitives/layer/layerCard.tsx +2 -2
  222. package/src/core/primitives/layer/layerContext.ts +4 -4
  223. package/src/core/primitives/layer/layerProvider.tsx +2 -10
  224. package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +2 -2
  225. package/src/core/primitives/popover/__workshop__/MarginsStory.tsx +1 -1
  226. package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +1 -1
  227. package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +1 -1
  228. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +2 -2
  229. package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +3 -3
  230. package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +3 -3
  231. package/src/core/primitives/popover/__workshop__/index.ts +5 -3
  232. package/src/core/primitives/popover/popover.tsx +34 -17
  233. package/src/core/primitives/popover/popoverLayer.tsx +2 -2
  234. package/src/core/primitives/radio/__workshop__/example.tsx +1 -1
  235. package/src/core/primitives/radio/__workshop__/index.ts +5 -3
  236. package/src/core/primitives/radio/__workshop__/plain.tsx +1 -1
  237. package/src/core/primitives/radio/radio.tsx +2 -2
  238. package/src/core/primitives/select/__workshop__/index.ts +5 -3
  239. package/src/core/primitives/select/__workshop__/plain.tsx +1 -1
  240. package/src/core/primitives/select/__workshop__/readOnly.tsx +1 -1
  241. package/src/core/primitives/select/select.tsx +5 -15
  242. package/src/core/primitives/selectable/selectable.tsx +4 -4
  243. package/src/core/primitives/skeleton/__workshop__/delay.tsx +1 -1
  244. package/src/core/primitives/skeleton/__workshop__/index.ts +5 -3
  245. package/src/core/primitives/skeleton/__workshop__/skeleton.tsx +2 -2
  246. package/src/core/primitives/skeleton/codeSkeleton.tsx +2 -2
  247. package/src/core/primitives/skeleton/headingSkeleton.tsx +2 -2
  248. package/src/core/primitives/skeleton/labelSkeleton.tsx +2 -2
  249. package/src/core/primitives/skeleton/skeleton.tsx +2 -2
  250. package/src/core/primitives/skeleton/textSkeleton.tsx +2 -2
  251. package/src/core/primitives/spinner/__workshop__/Props.tsx +1 -1
  252. package/src/core/primitives/spinner/__workshop__/index.ts +5 -3
  253. package/src/core/primitives/spinner/animatedSpinnerIcon.tsx +2 -2
  254. package/src/core/primitives/spinner/spinner.tsx +2 -2
  255. package/src/core/primitives/srOnly/srOnly.tsx +2 -2
  256. package/src/core/primitives/stack/__workshop__/index.ts +5 -3
  257. package/src/core/primitives/stack/__workshop__/plain.tsx +1 -1
  258. package/src/core/primitives/stack/stack.tsx +5 -10
  259. package/src/core/primitives/switch/__workshop__/example.tsx +1 -1
  260. package/src/core/primitives/switch/__workshop__/index.ts +5 -3
  261. package/src/core/primitives/switch/__workshop__/props.tsx +1 -1
  262. package/src/core/primitives/switch/switch.tsx +2 -2
  263. package/src/core/primitives/text/__workshop__/colored.tsx +1 -1
  264. package/src/core/primitives/text/__workshop__/example.tsx +1 -1
  265. package/src/core/primitives/text/__workshop__/index.ts +5 -3
  266. package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +1 -1
  267. package/src/core/primitives/text/text.tsx +4 -4
  268. package/src/core/primitives/textArea/__workshop__/index.ts +5 -3
  269. package/src/core/primitives/textArea/__workshop__/plain.tsx +1 -1
  270. package/src/core/primitives/textArea/textArea.tsx +5 -15
  271. package/src/core/primitives/textInput/__workshop__/clearButton.tsx +1 -1
  272. package/src/core/primitives/textInput/__workshop__/customValidity.tsx +1 -1
  273. package/src/core/primitives/textInput/__workshop__/index.ts +5 -3
  274. package/src/core/primitives/textInput/__workshop__/plain.tsx +1 -1
  275. package/src/core/primitives/textInput/__workshop__/readOnly.tsx +1 -1
  276. package/src/core/primitives/textInput/__workshop__/states.tsx +1 -1
  277. package/src/core/primitives/textInput/__workshop__/tones.tsx +1 -1
  278. package/src/core/primitives/textInput/__workshop__/typed.tsx +1 -1
  279. package/src/core/primitives/textInput/textInput.tsx +6 -9
  280. package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +1 -1
  281. package/src/core/primitives/tooltip/__workshop__/index.ts +5 -3
  282. package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +1 -1
  283. package/src/core/primitives/tooltip/__workshop__/props.tsx +1 -1
  284. package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +1 -1
  285. package/src/core/primitives/tooltip/constants.ts +1 -1
  286. package/src/core/primitives/tooltip/tooltip.test.tsx +2 -4
  287. package/src/core/primitives/tooltip/tooltip.tsx +5 -9
  288. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +4 -2
  289. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +5 -3
  290. package/src/core/primitives/tooltip/tooltipLayer.tsx +2 -2
  291. package/src/core/{types/props.ts → types.ts} +27 -0
  292. package/src/core/utils/boundaryElement/__workshop__/index.ts +5 -3
  293. package/src/core/utils/boundaryElement/__workshop__/plain.tsx +1 -1
  294. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +2 -1
  295. package/src/core/utils/boundaryElement/boundaryElementContext.ts +7 -4
  296. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +2 -2
  297. package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +1 -1
  298. package/src/core/utils/elementQuery/__workshop__/index.ts +5 -3
  299. package/src/core/utils/elementQuery/elementQuery.tsx +2 -2
  300. package/src/core/utils/getElementRef.ts +1 -1
  301. package/src/core/utils/portal/__workshop__/index.ts +5 -3
  302. package/src/core/utils/portal/__workshop__/named.tsx +1 -1
  303. package/src/core/utils/portal/portal.test.tsx +2 -1
  304. package/src/core/utils/portal/portalContext.ts +5 -2
  305. package/src/core/utils/portal/portalProvider.tsx +5 -9
  306. package/src/css/_responsiveClassName.ts +2 -2
  307. package/src/css/_style.css.ts +1 -1
  308. package/src/css/components/breadcrumbs/breadcrumbs.css.ts +1 -1
  309. package/src/css/components/dialog/dialog.css.ts +9 -17
  310. package/src/css/components/menu/menu.css.ts +2 -2
  311. package/src/css/components/menu/menu.ts +2 -2
  312. package/src/css/components/skeleton/skeleton.css.ts +2 -6
  313. package/src/css/components/toast/toast.css.ts +2 -2
  314. package/src/css/components/toast/toast.ts +2 -2
  315. package/src/css/components/tree/tree.css.ts +1 -1
  316. package/src/css/components/tree/tree.ts +1 -1
  317. package/src/css/defaultTheme.css.ts +59 -60
  318. package/src/css/layers.css.ts +4 -1
  319. package/src/css/primitives/_arrow/_arrow.css.ts +5 -5
  320. package/src/css/primitives/_input/_input.css.ts +4 -4
  321. package/src/css/primitives/_selectable/_selectable.css.ts +4 -4
  322. package/src/css/primitives/_selectable/types.ts +2 -2
  323. package/src/css/primitives/avatar/avatar.css.ts +10 -10
  324. package/src/css/primitives/badge/badge.css.ts +4 -4
  325. package/src/css/primitives/badge/types.ts +8 -2
  326. package/src/css/primitives/box/box.css.ts +2 -2
  327. package/src/css/primitives/button/button.css.ts +6 -6
  328. package/src/css/primitives/button/button.ts +2 -2
  329. package/src/css/primitives/button/types.ts +3 -3
  330. package/src/css/primitives/card/__workshop__/color.tsx +9 -9
  331. package/src/css/primitives/card/__workshop__/index.ts +5 -3
  332. package/src/css/primitives/card/card.css.ts +12 -18
  333. package/src/css/primitives/card/types.ts +3 -3
  334. package/src/css/primitives/checkbox/checkbox.css.ts +3 -3
  335. package/src/css/primitives/checkbox/checkbox.ts +3 -3
  336. package/src/css/primitives/code/code.css.ts +4 -3
  337. package/src/css/primitives/code/types.ts +3 -4
  338. package/src/css/primitives/container/container.css.ts +1 -1
  339. package/src/css/primitives/heading/heading.css.ts +5 -4
  340. package/src/css/primitives/heading/types.ts +3 -6
  341. package/src/css/primitives/kbd/kbd.css.ts +1 -1
  342. package/src/css/primitives/label/label.css.ts +5 -4
  343. package/src/css/primitives/label/types.ts +0 -8
  344. package/src/css/primitives/popover/popover.css.ts +2 -2
  345. package/src/css/primitives/popover/popover.ts +2 -2
  346. package/src/css/primitives/radio/radio.css.ts +3 -3
  347. package/src/css/primitives/radio/radio.ts +3 -3
  348. package/src/css/primitives/root/root.css.ts +2 -2
  349. package/src/css/primitives/root/root.ts +2 -2
  350. package/src/css/primitives/root/types.ts +3 -3
  351. package/src/css/primitives/select/select.css.ts +3 -3
  352. package/src/css/primitives/spinner/spinner.css.ts +2 -6
  353. package/src/css/primitives/spinner/spinner.ts +2 -2
  354. package/src/css/primitives/srOnly/srOnly.css.ts +1 -1
  355. package/src/css/primitives/srOnly/srOnly.ts +1 -1
  356. package/src/css/primitives/stack/stack.css.ts +1 -1
  357. package/src/css/primitives/stack/stack.ts +1 -1
  358. package/src/css/primitives/switch/switch.css.ts +5 -5
  359. package/src/css/primitives/text/text.css.ts +5 -4
  360. package/src/css/primitives/text/types.ts +3 -5
  361. package/src/css/primitives/textArea/textArea.css.ts +1 -1
  362. package/src/css/primitives/textInput/textInput.css.ts +4 -4
  363. package/src/css/primitives/tooltip/tooltip.css.ts +1 -1
  364. package/src/css/props/alignItems/alignItems.ts +1 -1
  365. package/src/css/props/border/border.ts +1 -16
  366. package/src/css/props/boxSizing/boxSizing.css.ts +2 -1
  367. package/src/css/props/boxSizing/boxSizing.ts +0 -3
  368. package/src/css/props/display/display.ts +1 -10
  369. package/src/css/props/flex/flex.ts +1 -1
  370. package/src/css/props/flexDirection/flexDirection.ts +1 -1
  371. package/src/css/props/flexWrap/flexWrap.ts +1 -1
  372. package/src/css/props/font/font.css.ts +3 -2
  373. package/src/css/props/font/font.ts +1 -1
  374. package/src/css/props/gap/gap.ts +1 -1
  375. package/src/css/props/gridAutoColumns/gridAutoColumns.css.ts +2 -2
  376. package/src/css/props/gridAutoColumns/gridAutoColumns.ts +2 -2
  377. package/src/css/props/gridAutoColumns/types.ts +0 -10
  378. package/src/css/props/gridAutoFlow/gridAutoFlow.ts +2 -2
  379. package/src/css/props/gridAutoFlow/types.ts +0 -4
  380. package/src/css/props/gridAutoRows/gridAutoRows.ts +2 -2
  381. package/src/css/props/gridAutoRows/types.ts +0 -4
  382. package/src/css/props/gridColumn/gridColumn.ts +3 -3
  383. package/src/css/props/gridColumn/types.ts +0 -10
  384. package/src/css/props/gridColumnEnd/gridColumnEnd.ts +3 -3
  385. package/src/css/props/gridColumnEnd/types.ts +0 -10
  386. package/src/css/props/gridColumnStart/gridColumnStart.ts +3 -6
  387. package/src/css/props/gridColumnStart/types.ts +0 -10
  388. package/src/css/props/gridRow/gridRow.ts +3 -3
  389. package/src/css/props/gridRow/types.ts +0 -10
  390. package/src/css/props/gridRowEnd/gridRowEnd.ts +3 -3
  391. package/src/css/props/gridRowEnd/types.ts +0 -10
  392. package/src/css/props/gridRowStart/gridRowStart.ts +3 -3
  393. package/src/css/props/gridRowStart/types.ts +0 -10
  394. package/src/css/props/gridTemplateColumns/gridTemplateColumns.ts +2 -2
  395. package/src/css/props/gridTemplateColumns/types.ts +0 -10
  396. package/src/css/props/gridTemplateRows/gridTemplateRows.ts +2 -2
  397. package/src/css/props/gridTemplateRows/types.ts +0 -10
  398. package/src/css/props/height/height.ts +1 -1
  399. package/src/css/props/height/types.ts +0 -6
  400. package/src/css/props/inset/inset.ts +1 -1
  401. package/src/css/props/justifyContent/justifyContent.ts +1 -1
  402. package/src/css/props/margin/margin.ts +1 -1
  403. package/src/css/props/maxWidth/maxWidth.ts +1 -1
  404. package/src/css/props/minHeight/minHeight.ts +1 -1
  405. package/src/css/props/minWidth/minWidth.ts +1 -1
  406. package/src/css/props/outline/outline.ts +1 -1
  407. package/src/css/props/overflow/overflow.ts +1 -1
  408. package/src/css/props/overflow/types.ts +0 -6
  409. package/src/css/props/padding/padding.ts +1 -1
  410. package/src/css/props/pointerEvents/pointerEvents.ts +1 -1
  411. package/src/css/props/position/position.ts +1 -1
  412. package/src/css/props/radius/radius.ts +1 -1
  413. package/src/css/props/shadow/shadow.ts +1 -1
  414. package/src/css/props/textAlign/textAlign.ts +1 -1
  415. package/src/css/props/textOverflow/textOverflow.ts +1 -1
  416. package/src/css/props/width/width.ts +1 -1
  417. package/src/css/types.ts +225 -53
  418. package/src/css/util.ts +2 -2
  419. package/src/css/vars.css.ts +33 -36
  420. package/src/theme/{v3/_parseColorToken.ts → _parseColorToken.ts} +2 -2
  421. package/src/theme/buildTheme.ts +33 -0
  422. package/src/theme/constants.ts +90 -0
  423. package/src/theme/defaults/color.ts +197 -0
  424. package/src/theme/{v2/defaults/config.ts → defaults/common.ts} +3 -16
  425. package/src/theme/{v3/defaultFonts.ts → defaults/fonts.ts} +2 -2
  426. package/src/theme/index.ts +4 -5
  427. package/src/theme/{v3/resolveTokens.ts → resolveTokens.ts} +15 -15
  428. package/src/theme/types.ts +355 -15
  429. package/dist/css/layers.css +0 -4
  430. package/dist/css/primitives/popover/popover.css +0 -4
  431. package/src/core/__DEV__.ts +0 -5
  432. package/src/core/_compat/helpers.ts +0 -72
  433. package/src/core/_compat/styles/_responsive.ts +0 -19
  434. package/src/core/_compat/theme/theme.test.tsx +0 -73
  435. package/src/core/_compat/theme/themeColorProvider.tsx +0 -24
  436. package/src/core/_compat/theme/themeContext.ts +0 -10
  437. package/src/core/_compat/theme/themeProvider.tsx +0 -68
  438. package/src/core/_compat/theme/types.ts +0 -10
  439. package/src/core/_compat/theme/useRootTheme.ts +0 -15
  440. package/src/core/_compat/theme/useTheme.ts +0 -12
  441. package/src/core/_compat/types.ts +0 -191
  442. package/src/core/hooks/useArrayProp.ts +0 -26
  443. package/src/core/hooks/useClickOutside.test.tsx +0 -481
  444. package/src/core/hooks/useClickOutside.ts +0 -113
  445. package/src/core/hooks/useElementRect/__workshop__/example.tsx +0 -30
  446. package/src/core/hooks/useElementRect/__workshop__/index.ts +0 -14
  447. package/src/core/hooks/useElementRect/useElementRect.ts +0 -13
  448. package/src/core/hooks/useForwardedRef.ts +0 -19
  449. package/src/core/hooks/useIsomorphicEffect.ts +0 -7
  450. package/src/core/primitives/badge/types.ts +0 -18
  451. package/src/core/primitives/box/types.ts +0 -22
  452. package/src/core/primitives/flex/types.ts +0 -27
  453. package/src/core/primitives/grid/types.ts +0 -17
  454. package/src/core/primitives/selectable/types.ts +0 -7
  455. package/src/core/primitives/types.ts +0 -153
  456. package/src/core/types/gridItem.ts +0 -32
  457. package/src/core/types/placement.ts +0 -18
  458. package/src/core/types/radius.ts +0 -7
  459. package/src/core/types/textAlign.ts +0 -7
  460. package/src/core/utils/spanWithTextOverflow.tsx +0 -10
  461. package/src/theme/getScopedTheme.ts +0 -88
  462. package/src/theme/v0/avatar.ts +0 -10
  463. package/src/theme/v0/color/_generic.ts +0 -35
  464. package/src/theme/v0/color/_system.ts +0 -17
  465. package/src/theme/v0/color/base.ts +0 -21
  466. package/src/theme/v0/color/button.ts +0 -42
  467. package/src/theme/v0/color/card.ts +0 -19
  468. package/src/theme/v0/color/color.ts +0 -40
  469. package/src/theme/v0/color/index.ts +0 -11
  470. package/src/theme/v0/color/input.ts +0 -34
  471. package/src/theme/v0/color/muted.ts +0 -26
  472. package/src/theme/v0/color/selectable.ts +0 -31
  473. package/src/theme/v0/color/solid.ts +0 -26
  474. package/src/theme/v0/color/spot.ts +0 -13
  475. package/src/theme/v0/css.ts +0 -10
  476. package/src/theme/v0/focusRing.ts +0 -5
  477. package/src/theme/v0/font.ts +0 -40
  478. package/src/theme/v0/index.ts +0 -10
  479. package/src/theme/v0/input.ts +0 -23
  480. package/src/theme/v0/layer.ts +0 -6
  481. package/src/theme/v0/shadow.ts +0 -15
  482. package/src/theme/v0/styles.ts +0 -13
  483. package/src/theme/v0/theme.ts +0 -72
  484. package/src/theme/v2/avatar.ts +0 -12
  485. package/src/theme/v2/build/_deprecated/color/_selectable/createSelectableTones.ts +0 -76
  486. package/src/theme/v2/build/_deprecated/color/_solid/createSolidTones.ts +0 -54
  487. package/src/theme/v2/build/_deprecated/color/button/createButtonModes.ts +0 -22
  488. package/src/theme/v2/build/_deprecated/color/button/createButtonTones.ts +0 -55
  489. package/src/theme/v2/build/_deprecated/color/card/createCardStates.ts +0 -60
  490. package/src/theme/v2/build/_deprecated/color/color.test.ts +0 -63
  491. package/src/theme/v2/build/_deprecated/color/defaults.ts +0 -390
  492. package/src/theme/v2/build/_deprecated/color/factory.ts +0 -141
  493. package/src/theme/v2/build/_deprecated/color/index.ts +0 -1
  494. package/src/theme/v2/build/_deprecated/color/input/createInputModes.ts +0 -86
  495. package/src/theme/v2/build/_deprecated/color/muted/createMuted.ts +0 -54
  496. package/src/theme/v2/build/_deprecated/color/spot/createSpot.ts +0 -20
  497. package/src/theme/v2/build/buildColorTheme.test.ts +0 -185
  498. package/src/theme/v2/build/buildColorTheme.ts +0 -494
  499. package/src/theme/v2/build/buildTheme.test.ts +0 -89
  500. package/src/theme/v2/build/buildTheme.ts +0 -37
  501. package/src/theme/v2/build/colorToken/colorToken.ts +0 -19
  502. package/src/theme/v2/build/colorToken/compileColorToken.ts +0 -21
  503. package/src/theme/v2/build/colorToken/index.ts +0 -2
  504. package/src/theme/v2/build/colorToken/types.ts +0 -6
  505. package/src/theme/v2/build/index.ts +0 -3
  506. package/src/theme/v2/build/lib/color-fns/blend/index.ts +0 -3
  507. package/src/theme/v2/build/lib/color-fns/blend/mix.ts +0 -21
  508. package/src/theme/v2/build/lib/color-fns/blend/multiply.ts +0 -18
  509. package/src/theme/v2/build/lib/color-fns/blend/screen.ts +0 -18
  510. package/src/theme/v2/build/lib/color-fns/color-fns.test.ts +0 -68
  511. package/src/theme/v2/build/lib/color-fns/contrastRatio.ts +0 -34
  512. package/src/theme/v2/build/lib/color-fns/convert.ts +0 -150
  513. package/src/theme/v2/build/lib/color-fns/index.ts +0 -6
  514. package/src/theme/v2/build/lib/color-fns/parse.ts +0 -60
  515. package/src/theme/v2/build/lib/color-fns/rgba.ts +0 -14
  516. package/src/theme/v2/build/lib/color-fns/types.ts +0 -28
  517. package/src/theme/v2/build/lib/isRecord.ts +0 -3
  518. package/src/theme/v2/build/lib/utils.ts +0 -19
  519. package/src/theme/v2/build/merge.ts +0 -28
  520. package/src/theme/v2/build/mixThemeColor.test.ts +0 -23
  521. package/src/theme/v2/build/mixThemeColor.ts +0 -53
  522. package/src/theme/v2/build/renderColorTheme.ts +0 -532
  523. package/src/theme/v2/build/renderColorValue.ts +0 -85
  524. package/src/theme/v2/build/resolveColorTokens.ts +0 -268
  525. package/src/theme/v2/color/_constants.ts +0 -45
  526. package/src/theme/v2/color/_helpers.ts +0 -24
  527. package/src/theme/v2/color/_system.ts +0 -38
  528. package/src/theme/v2/color/avatar.ts +0 -11
  529. package/src/theme/v2/color/badge.ts +0 -12
  530. package/src/theme/v2/color/button.ts +0 -11
  531. package/src/theme/v2/color/color.ts +0 -28
  532. package/src/theme/v2/color/index.ts +0 -13
  533. package/src/theme/v2/color/input.ts +0 -23
  534. package/src/theme/v2/color/kbd.ts +0 -6
  535. package/src/theme/v2/color/selectable.ts +0 -8
  536. package/src/theme/v2/color/shadow.ts +0 -7
  537. package/src/theme/v2/color/state.ts +0 -41
  538. package/src/theme/v2/color/syntax.ts +0 -39
  539. package/src/theme/v2/config/helpers.ts +0 -48
  540. package/src/theme/v2/config/index.ts +0 -4
  541. package/src/theme/v2/config/system.ts +0 -114
  542. package/src/theme/v2/config/tokens/color/index.ts +0 -1
  543. package/src/theme/v2/config/tokens/color/types.ts +0 -137
  544. package/src/theme/v2/config/tokens/index.ts +0 -3
  545. package/src/theme/v2/config/tokens/parseTokenValue.test.ts +0 -44
  546. package/src/theme/v2/config/tokens/parseTokenValue.ts +0 -133
  547. package/src/theme/v2/config/tokens/types.ts +0 -53
  548. package/src/theme/v2/config/types.ts +0 -47
  549. package/src/theme/v2/defaults/colorPalette.ts +0 -5
  550. package/src/theme/v2/defaults/colorTokens.ts +0 -648
  551. package/src/theme/v2/defaults/fonts.ts +0 -227
  552. package/src/theme/v2/index.ts +0 -6
  553. package/src/theme/v2/input.ts +0 -31
  554. package/src/theme/v2/theme.ts +0 -45
  555. package/src/theme/v3/_constants.ts +0 -29
  556. package/src/theme/v3/buildTheme_v3.ts +0 -39
  557. package/src/theme/v3/color/_constants.ts +0 -15
  558. package/src/theme/v3/color/avatar.ts +0 -14
  559. package/src/theme/v3/color/card.ts +0 -79
  560. package/src/theme/v3/color/color.ts +0 -98
  561. package/src/theme/v3/color/element.ts +0 -19
  562. package/src/theme/v3/color/index.ts +0 -7
  563. package/src/theme/v3/color/token.ts +0 -32
  564. package/src/theme/v3/color/tokens.ts +0 -5
  565. package/src/theme/v3/defaultTokens.ts +0 -199
  566. package/src/theme/v3/index.ts +0 -9
  567. package/src/theme/v3/palette/constants.ts +0 -15
  568. package/src/theme/v3/palette/index.ts +0 -2
  569. package/src/theme/v3/palette/types.ts +0 -7
  570. package/src/theme/v3/tokens.ts +0 -16
  571. package/src/theme/v3/types.ts +0 -133
  572. package/src/theme/versioning/getTheme_v2.ts +0 -58
  573. package/src/theme/versioning/index.ts +0 -1
  574. package/src/theme/versioning/is_v0.ts +0 -7
  575. package/src/theme/versioning/is_v2.ts +0 -7
  576. package/src/theme/versioning/themeColor_v0_v2.ts +0 -245
  577. package/src/theme/versioning/themeColor_v2_v2_9.ts +0 -49
  578. package/src/theme/versioning/themeColor_v3_v2.ts +0 -383
  579. package/src/theme/versioning/v0_v2.ts +0 -95
  580. package/src/theme/versioning/v2_v0.ts +0 -127
  581. package/src/theme/versioning/v3_v2.ts +0 -130
  582. /package/src/theme/{v3/merge.ts → merge.ts} +0 -0
package/src/css/types.ts CHANGED
@@ -1,7 +1,11 @@
1
1
  import type {
2
2
  AvatarColor,
3
3
  AvatarSize,
4
+ CardTone,
5
+ ColorScheme,
6
+ ColorVariant,
4
7
  ContainerScale,
8
+ ElementTone,
5
9
  FontCodeSize,
6
10
  FontHeadingSize,
7
11
  FontLabelSize,
@@ -10,12 +14,9 @@ import type {
10
14
  Radius,
11
15
  Shadow,
12
16
  Space,
13
- ThemeColorCardToneKey,
14
- ThemeColorSchemeKey,
15
- ThemeColorStateToneKey,
16
- ThemeColorVariantKey,
17
17
  Tint,
18
18
  } from '@sanity/ui/theme'
19
+ import type {createThemeContract} from '@vanilla-extract/css'
19
20
 
20
21
  import type {BREAKPOINTS} from './constants'
21
22
 
@@ -32,13 +33,29 @@ export type ResponsiveRules = Record<Breakpoint, string>
32
33
  export type ResponsiveRuleOptions<K extends string | number> = Record<K, ResponsiveRules>
33
34
 
34
35
  /** @public */
35
- export type CSSThemeColorPalette = {
36
- black: string
37
- white: string
38
- } & Record<Hue, Record<Tint, string>>
36
+ export type CSSVarFunction = `var(--${string})`
37
+
38
+ /** @public */
39
+ export type ElementColorTokens = {
40
+ bg: {
41
+ 0: string
42
+ 4: string
43
+ }
44
+ border: {
45
+ 0: string
46
+ 4: string
47
+ }
48
+ fg: {
49
+ 0: string
50
+ 4: string
51
+ }
52
+ }
39
53
 
40
54
  /** @public */
41
- export type CSSThemeColorCard = {
55
+ export type VariantColorTokens = Record<ElementTone, ElementColorTokens>
56
+
57
+ /** @public */
58
+ export type CSSCardColorTokens = {
42
59
  avatar: Record<AvatarColor, {bg: string; fg: string}>
43
60
  backdrop: string
44
61
  code: {
@@ -97,37 +114,22 @@ export type CSSThemeColorCard = {
97
114
  from: string
98
115
  to: string
99
116
  }
100
- } & Record<
101
- ThemeColorVariantKey,
102
- Record<
103
- ThemeColorStateToneKey,
104
- {
105
- bg: {
106
- 0: string
107
- 4: string
108
- }
109
- border: {
110
- 0: string
111
- 4: string
112
- }
113
- fg: {
114
- 0: string
115
- 4: string
116
- }
117
- }
118
- >
119
- >
117
+ } & Record<ColorVariant, VariantColorTokens>
118
+
119
+ /** @public */
120
+ export type SchemeColorTokens = Record<CardTone, CSSCardColorTokens>
120
121
 
121
122
  /** @public */
122
- export type CSSThemeColorScheme = Record<ThemeColorCardToneKey, CSSThemeColorCard>
123
+ export type ColorPaletteTokens = {
124
+ black: string
125
+ white: string
126
+ } & Record<Hue, Record<Tint, string>>
123
127
 
124
128
  /** @public */
125
- export type CSSThemeColor = {
126
- palette: CSSThemeColorPalette
127
- } & Record<ThemeColorSchemeKey, CSSThemeColorScheme>
129
+ export type ColorTokens = Record<ColorScheme, SchemeColorTokens>
128
130
 
129
131
  /** @public */
130
- export type CSSThemeFont<FontScaleIndex extends number> = {
132
+ export type FontTokens<FontScaleIndex extends number> = {
131
133
  family: string
132
134
  featureSettings: string
133
135
  weight: {
@@ -151,9 +153,8 @@ export type CSSThemeFont<FontScaleIndex extends number> = {
151
153
  }
152
154
 
153
155
  /** @public */
154
- export type CSSTheme = {
155
- '@layer'?: string
156
- 'avatar': {
156
+ export type ThemeTokens = {
157
+ avatar: {
157
158
  focusRing: {
158
159
  offset: string
159
160
  width: string
@@ -166,7 +167,7 @@ export type CSSTheme = {
166
167
  }
167
168
  >
168
169
  }
169
- 'button': {
170
+ button: {
170
171
  border: {
171
172
  width: string
172
173
  }
@@ -175,20 +176,20 @@ export type CSSTheme = {
175
176
  width: string
176
177
  }
177
178
  }
178
- 'card': {
179
+ card: {
179
180
  shadow: {
180
181
  outline: string
181
182
  }
182
183
  }
183
- 'color': CSSThemeColor
184
- 'container': Record<ContainerScale, string>
185
- 'font': {
186
- code: CSSThemeFont<FontCodeSize>
187
- heading: CSSThemeFont<FontHeadingSize>
188
- label: CSSThemeFont<FontLabelSize>
189
- text: CSSThemeFont<FontTextSize>
184
+ color: ColorTokens
185
+ container: Record<ContainerScale, string>
186
+ font: {
187
+ code: FontTokens<FontCodeSize>
188
+ heading: FontTokens<FontHeadingSize>
189
+ label: FontTokens<FontLabelSize>
190
+ text: FontTokens<FontTextSize>
190
191
  }
191
- 'input': {
192
+ input: {
192
193
  border: {
193
194
  width: string
194
195
  }
@@ -231,8 +232,8 @@ export type CSSTheme = {
231
232
  }
232
233
  }
233
234
  }
234
- 'radius': Record<Radius, string>
235
- 'shadow': Record<
235
+ radius: Record<Radius, string>
236
+ shadow: Record<
236
237
  Shadow,
237
238
  {
238
239
  umbra: string
@@ -240,10 +241,181 @@ export type CSSTheme = {
240
241
  ambient: string
241
242
  }
242
243
  >
243
- 'space': Record<Space, string>
244
+ space: Record<Space, string>
245
+ }
246
+
247
+ /** @public */
248
+ export type RootThemeTokens = ThemeTokens & {
249
+ color: {palette: ColorPaletteTokens}
250
+ }
251
+
252
+ /** @public */
253
+ export type ScopedTokens = {
254
+ arrow: {
255
+ size: string
256
+ }
257
+ avatar: {
258
+ distance: string
259
+ size: string
260
+ }
261
+ button: {
262
+ boxShadow: string
263
+ }
264
+ card: {
265
+ test: string
266
+ }
267
+ color: {
268
+ avatar: {
269
+ bg: string
270
+ fg: string
271
+ }
272
+ bg: string
273
+ border: string
274
+ fg: string
275
+ muted: {
276
+ bg: string
277
+ border: string
278
+ fg: string
279
+ }
280
+ input: {
281
+ checkbox: {
282
+ bg: string
283
+ border: string
284
+ fg: string
285
+ }
286
+ text: {
287
+ bg: string
288
+ border: string
289
+ fg: string
290
+ placeholder: string
291
+ }
292
+ radio: {
293
+ bg: string
294
+ border: string
295
+ fg: string
296
+ }
297
+ switch: {
298
+ bg: string
299
+ fg: string
300
+ }
301
+ }
302
+ } & CSSCardColorTokens &
303
+ Record<
304
+ ColorVariant,
305
+ Record<
306
+ ElementTone,
307
+ {
308
+ bg: {
309
+ 0: string
310
+ 1: string
311
+ 2: string
312
+ 3: string
313
+ 4: string
314
+ }
315
+ border: {
316
+ 0: string
317
+ 1: string
318
+ 2: string
319
+ 3: string
320
+ 4: string
321
+ }
322
+ fg: {
323
+ 0: string
324
+ 1: string
325
+ 2: string
326
+ 3: string
327
+ 4: string
328
+ }
329
+ }
330
+ >
331
+ > &
332
+ Record<
333
+ CardTone,
334
+ CSSCardColorTokens &
335
+ Record<
336
+ ColorVariant,
337
+ Record<
338
+ ElementTone,
339
+ {
340
+ bg: {
341
+ 0: string
342
+ 4: string
343
+ }
344
+ border: {
345
+ 0: string
346
+ 4: string
347
+ }
348
+ fg: {
349
+ 0: string
350
+ 4: string
351
+ }
352
+ }
353
+ >
354
+ >
355
+ >
356
+
357
+ font: {
358
+ family: string
359
+ featureSettings: string
360
+ fontSize: string
361
+ lineHeight: string
362
+ letterSpacing: string
363
+ fontWeight: string
364
+
365
+ ascenderHeight: string
366
+ descenderHeight: string
367
+ iconSize: string
368
+ customIconSize: string
369
+ capHeight: string
370
+ iconOffset: string
371
+ customIconOffset: string
372
+
373
+ skeleton: {
374
+ ascenderHeight: string
375
+ descenderHeight: string
376
+ lineHeight: string
377
+ }
378
+
379
+ weight: {
380
+ regular: string
381
+ medium: string
382
+ semibold: string
383
+ bold: string
384
+ }
385
+ }
386
+
387
+ input: {
388
+ switch: {
389
+ thumb: {
390
+ offset: string
391
+ size: string
392
+ }
393
+ }
394
+ text: {
395
+ fontSize: string
396
+ lineHeight: string
397
+ letterSpacing: string
398
+ ascenderHeight: string
399
+ descenderHeight: string
400
+ padding: string
401
+ gap: string
402
+ }
403
+ }
244
404
  }
245
405
 
246
- /** @internal */
247
- export type _CSSThemeWithoutPalette = Omit<CSSTheme, '@layer' | 'color'> & {
248
- color: Omit<CSSThemeColor, 'palette'>
406
+ /** @public */
407
+ export type NullableTokens = {
408
+ [key: string]: string | NullableTokens
249
409
  }
410
+
411
+ /** @public */
412
+ export type ThemeContract<T extends NullableTokens> = ReturnType<typeof createThemeContract<T>>
413
+
414
+ /** @public */
415
+ export type ColorPaletteVars = ThemeContract<ColorPaletteTokens>
416
+
417
+ /** @public */
418
+ export type ScopedVars = ThemeContract<ScopedTokens>
419
+
420
+ /** @public */
421
+ export type ThemeVars = ThemeContract<RootThemeTokens & ScopedTokens> // _CSSThemeWithoutPaletteTokens & ScopedVars
package/src/css/util.ts CHANGED
@@ -1,4 +1,4 @@
1
- import {type ThemeBoxShadow} from '@sanity/ui/theme'
1
+ import type {BoxShadow} from '@sanity/ui/theme'
2
2
 
3
3
  /** @internal */
4
4
  export function rem(value: number): string {
@@ -15,7 +15,7 @@ export function px(value: number): string {
15
15
  }
16
16
 
17
17
  /** @internal */
18
- export function toBoxShadow(value: ThemeBoxShadow | undefined): string {
18
+ export function toBoxShadow(value: BoxShadow | undefined): string {
19
19
  if (!value) return 'none'
20
20
 
21
21
  return value.map((n) => px(n)).join(' ')
@@ -2,8 +2,11 @@ import {COLOR_HUES, COLOR_TINTS} from '@sanity/color'
2
2
  import {
3
3
  AVATAR_COLORS,
4
4
  AVATAR_SIZE,
5
+ CARD_TONES,
6
+ COLOR_SCHEMES,
5
7
  COLOR_VARIANTS,
6
8
  CONTAINER_SCALE,
9
+ ELEMENT_TONES,
7
10
  FONT_CODE_SIZE,
8
11
  FONT_HEADING_SIZE,
9
12
  FONT_LABEL_SIZE,
@@ -11,21 +14,22 @@ import {
11
14
  RADIUS,
12
15
  SHADOW,
13
16
  SPACE,
14
- THEME_COLOR_CARD_TONES,
15
- THEME_COLOR_SCHEMES,
16
- THEME_COLOR_STATE_TONES,
17
17
  } from '@sanity/ui/theme'
18
18
  import {createThemeContract, createVar} from '@vanilla-extract/css'
19
19
 
20
20
  import {_fromEntries} from './_fromEntries'
21
- import type {_CSSThemeWithoutPalette, CSSThemeColorPalette} from './types'
21
+ import type {
22
+ ColorPaletteTokens,
23
+ ColorPaletteVars,
24
+ RootThemeTokens,
25
+ ThemeContract,
26
+ ThemeTokens,
27
+ ThemeVars,
28
+ } from './types'
22
29
 
23
- /** @public */
24
- export const paletteVars = createThemeContract({
30
+ const paletteTokens: ColorPaletteTokens = {
25
31
  black: '',
26
32
  white: '',
27
-
28
- // hues
29
33
  ..._fromEntries(
30
34
  COLOR_HUES.map((h) => [
31
35
  h,
@@ -34,9 +38,12 @@ export const paletteVars = createThemeContract({
34
38
  },
35
39
  ]),
36
40
  ),
37
- }) satisfies CSSThemeColorPalette
41
+ }
42
+
43
+ /** @public */
44
+ export const paletteVars: ColorPaletteVars = createThemeContract(paletteTokens)
38
45
 
39
- const _themeVars = createThemeContract({
46
+ const themeTokens: ThemeTokens = {
40
47
  avatar: {
41
48
  focusRing: {
42
49
  offset: '',
@@ -71,29 +78,20 @@ const _themeVars = createThemeContract({
71
78
  color: {
72
79
  // schemes
73
80
  ..._fromEntries(
74
- THEME_COLOR_SCHEMES.map((s) => [
81
+ COLOR_SCHEMES.map((s) => [
75
82
  s,
76
83
  {
77
84
  ..._fromEntries(
78
- THEME_COLOR_CARD_TONES.map((t) => [
85
+ CARD_TONES.map((t) => [
79
86
  t,
80
87
  {
81
88
  avatar: {
82
89
  ..._fromEntries(AVATAR_COLORS.map((c) => [c, {bg: '', fg: ''}])),
83
90
  },
84
91
  backdrop: '',
85
- // bg: {
86
- // '0': '',
87
- // '4': '',
88
- // },
89
- // border: {
90
- // '0': '',
91
- // '4': '',
92
- // },
93
92
  code: {
94
93
  bg: '',
95
94
  fg: '',
96
-
97
95
  token: {
98
96
  atrule: '',
99
97
  attrName: '',
@@ -133,34 +131,26 @@ const _themeVars = createThemeContract({
133
131
  variable: '',
134
132
  },
135
133
  },
136
- // fg: {
137
- // '0': '',
138
- // '4': '',
139
- // },
140
-
141
134
  focusRing: '',
142
135
  link: {
143
136
  fg: '',
144
137
  },
145
-
146
138
  shadow: {
147
139
  outline: '',
148
140
  umbra: '',
149
141
  penumbra: '',
150
142
  ambient: '',
151
143
  },
152
-
153
144
  skeleton: {
154
145
  from: '',
155
146
  to: '',
156
147
  },
157
-
158
148
  ..._fromEntries(
159
149
  COLOR_VARIANTS.map((v) => [
160
150
  v,
161
151
  {
162
152
  ..._fromEntries(
163
- THEME_COLOR_STATE_TONES.map((t) => [
153
+ ELEMENT_TONES.map((t) => [
164
154
  t,
165
155
  {
166
156
  bg: {
@@ -358,13 +348,15 @@ const _themeVars = createThemeContract({
358
348
  space: {
359
349
  ..._fromEntries(SPACE.map((s) => [s, ''])),
360
350
  },
361
- }) satisfies _CSSThemeWithoutPalette
351
+ }
352
+
353
+ const _themeVars: ThemeContract<ThemeTokens> = createThemeContract(themeTokens)
362
354
 
363
355
  /**
364
356
  * Variables to be defined in a theme.
365
357
  *
366
358
  * @public */
367
- export const themeVars = {
359
+ export const themeVars: ThemeContract<RootThemeTokens> = {
368
360
  ..._themeVars,
369
361
  color: {
370
362
  ..._themeVars.color,
@@ -377,7 +369,7 @@ export const themeVars = {
377
369
  *
378
370
  * @public
379
371
  */
380
- export const vars = {
372
+ export const vars: ThemeVars = {
381
373
  ...themeVars,
382
374
  avatar: {
383
375
  ...themeVars.avatar,
@@ -391,6 +383,10 @@ export const vars = {
391
383
  ...themeVars.button,
392
384
  boxShadow: createVar(),
393
385
  },
386
+ card: {
387
+ ...themeVars.card,
388
+ test: createVar(),
389
+ },
394
390
  color: {
395
391
  ...themeVars.color,
396
392
  avatar: {
@@ -486,13 +482,14 @@ export const vars = {
486
482
  from: createVar(),
487
483
  to: createVar(),
488
484
  },
485
+
489
486
  // variants
490
487
  ..._fromEntries(
491
488
  COLOR_VARIANTS.map((v) => [
492
489
  v,
493
490
  {
494
491
  ..._fromEntries(
495
- THEME_COLOR_STATE_TONES.map((t) => [
492
+ ELEMENT_TONES.map((t) => [
496
493
  t,
497
494
  {
498
495
  bg: {
@@ -525,7 +522,7 @@ export const vars = {
525
522
 
526
523
  // tones
527
524
  ..._fromEntries(
528
- THEME_COLOR_CARD_TONES.map((t) => [
525
+ CARD_TONES.map((t) => [
529
526
  t,
530
527
  {
531
528
  avatar: {
@@ -601,7 +598,7 @@ export const vars = {
601
598
  v,
602
599
  {
603
600
  ..._fromEntries(
604
- THEME_COLOR_STATE_TONES.map((t) => [
601
+ ELEMENT_TONES.map((t) => [
605
602
  t,
606
603
  {
607
604
  bg: {
@@ -1,5 +1,5 @@
1
- import type {ColorToken} from './color'
2
- import {type Hue, HUES, type Tint, TINTS} from './palette'
1
+ import {HUES, TINTS} from './constants'
2
+ import type {ColorToken, Hue, Tint} from './types'
3
3
 
4
4
  const RE_PERCENTAGE = /^([0-9]+)%/
5
5
  const RE_OPACITY = /^(1|0\.[0-9]+)?/
@@ -0,0 +1,33 @@
1
+ import {black, hues, white} from '@sanity/color'
2
+
3
+ import {defaultColor} from './defaults/color'
4
+ import {defaultTheme} from './defaults/common'
5
+ import {defaultFonts} from './defaults/fonts'
6
+ import {resolveTokens} from './resolveTokens'
7
+ import type {Options, Theme} from './types'
8
+
9
+ /** @public */
10
+ export function buildTheme(options?: Options): Theme {
11
+ const tokens = resolveTokens({
12
+ ...options?.tokens,
13
+ color: options?.tokens?.color ?? defaultColor,
14
+ })
15
+
16
+ return {
17
+ _version: 3,
18
+ _tokens: tokens,
19
+ avatar: defaultTheme.avatar,
20
+ button: defaultTheme.button,
21
+ card: defaultTheme.card,
22
+ color: tokens.color,
23
+ container: defaultTheme.container,
24
+ font: defaultFonts,
25
+ input: defaultTheme.input,
26
+ layer: defaultTheme.layer,
27
+ media: defaultTheme.media,
28
+ palette: {black, white, hues},
29
+ radius: defaultTheme.radius,
30
+ shadow: defaultTheme.shadow,
31
+ space: defaultTheme.space,
32
+ }
33
+ }
@@ -0,0 +1,90 @@
1
+ /** @public */
2
+ export const HUES = [
3
+ 'gray',
4
+ 'blue',
5
+ 'purple',
6
+ 'magenta',
7
+ 'red',
8
+ 'orange',
9
+ 'yellow',
10
+ 'green',
11
+ 'cyan',
12
+ ] as const
13
+
14
+ /** @public */
15
+ export const TINTS = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950] as const
16
+
17
+ /** @public */
18
+ export const AVATAR_SIZE = [0, 1, 2, 3] as const
19
+
20
+ /** @public */
21
+ export const CONTAINER_SCALE = [0, 1, 2, 3, 4, 5] as const
22
+
23
+ /** @public */
24
+ export const CONTAINER: [...typeof CONTAINER_SCALE, 'auto'] = [...CONTAINER_SCALE, 'auto']
25
+
26
+ /** @public */
27
+ export const RADIUS = [0, 1, 2, 3, 4, 5, 6] as const
28
+
29
+ /** @public */
30
+ export const SPACE = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] as const
31
+
32
+ /** @public */
33
+ export const FONT_CODE_SIZE = [0, 1, 2, 3, 4] as const
34
+
35
+ /** @public */
36
+ export const FONT_HEADING_SIZE = [0, 1, 2, 3, 4, 5] as const
37
+
38
+ /** @public */
39
+ export const FONT_LABEL_SIZE = [0, 1, 2, 3, 4, 5] as const
40
+
41
+ /** @public */
42
+ export const FONT_TEXT_SIZE = [0, 1, 2, 3, 4] as const
43
+
44
+ /** @public */
45
+ export const SHADOW = [0, 1, 2, 3, 4, 5] as const
46
+
47
+ /** @public */
48
+ export const COLOR_SCHEMES = ['light', 'dark'] as const
49
+
50
+ /** @public */
51
+ export const COLOR_VARIANTS = ['tinted', 'solid'] as const
52
+
53
+ /** @public */
54
+ export const AVATAR_COLORS = [
55
+ 'gray',
56
+ 'blue',
57
+ 'purple',
58
+ 'magenta',
59
+ 'red',
60
+ 'orange',
61
+ 'yellow',
62
+ 'green',
63
+ 'cyan',
64
+ ] as const
65
+
66
+ /** @public */
67
+ export const CARD_TONES = [
68
+ 'transparent',
69
+ 'default',
70
+ 'neutral',
71
+ 'primary', // selections
72
+ 'suggest',
73
+ 'positive',
74
+ 'caution',
75
+ 'critical',
76
+ ] as const
77
+
78
+ /** @public */
79
+ export const ELEMENT_TONES = [
80
+ 'default',
81
+ 'neutral',
82
+ 'primary', // selections
83
+ 'suggest',
84
+ 'positive',
85
+ 'caution',
86
+ 'critical',
87
+ ] as const
88
+
89
+ /** @public */
90
+ export const BUTTON_MODES = ['default', 'ghost', 'bleed'] as const