@sanity/ui 3.0.0-static.33 → 3.0.0-static.35

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 (579) hide show
  1. package/README.md +1 -1
  2. package/dist/_chunks-cjs/_visual-editing.cjs +263 -375
  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 +263 -377
  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 +34 -85
  11. package/dist/_visual-editing.d.ts +34 -85
  12. package/dist/_visual-editing.js +2 -4
  13. package/dist/css/index.cjs +12 -12
  14. package/dist/css/index.cjs.map +1 -1
  15. package/dist/css/index.css +1 -1
  16. package/dist/css/index.d.cts +383 -13934
  17. package/dist/css/index.d.ts +383 -13934
  18. package/dist/css/index.js +12 -12
  19. package/dist/css/index.js.map +1 -1
  20. package/dist/index.cjs +241 -366
  21. package/dist/index.cjs.map +1 -1
  22. package/dist/index.d.cts +107 -817
  23. package/dist/index.d.ts +107 -817
  24. package/dist/index.js +243 -360
  25. package/dist/index.js.map +1 -1
  26. package/dist/theme.cjs +367 -4288
  27. package/dist/theme.cjs.map +1 -1
  28. package/dist/theme.d.cts +180 -1582
  29. package/dist/theme.d.ts +180 -1582
  30. package/dist/theme.js +371 -4292
  31. package/dist/theme.js.map +1 -1
  32. package/exports/_visual-editing.ts +0 -2
  33. package/package.json +3 -4
  34. package/src/core/Root.tsx +4 -2
  35. package/src/core/RootProvider.tsx +4 -4
  36. package/src/core/__workshop__/boundary.tsx +1 -1
  37. package/src/core/__workshop__/index.ts +5 -3
  38. package/src/core/components/autocomplete/__workshop__/async.tsx +1 -1
  39. package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +2 -2
  40. package/src/core/components/autocomplete/__workshop__/custom.tsx +2 -2
  41. package/src/core/components/autocomplete/__workshop__/example.tsx +2 -2
  42. package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +1 -1
  43. package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +1 -1
  44. package/src/core/components/autocomplete/__workshop__/index.ts +5 -3
  45. package/src/core/components/autocomplete/__workshop__/mock/apiStore.ts +1 -1
  46. package/src/core/components/autocomplete/__workshop__/mock/countries.ts +1 -1
  47. package/src/core/components/autocomplete/autocomplete.tsx +2 -2
  48. package/src/core/components/autocomplete/autocompleteOption.tsx +2 -2
  49. package/src/core/components/autocomplete/constants.ts +2 -2
  50. package/src/core/components/breadcrumbs/__workshop__/example.tsx +1 -1
  51. package/src/core/components/breadcrumbs/__workshop__/index.ts +5 -3
  52. package/src/core/components/breadcrumbs/breadcrumbs.tsx +6 -11
  53. package/src/core/components/dialog/__workshop__/activate.tsx +1 -1
  54. package/src/core/components/dialog/__workshop__/autoFocus.tsx +1 -1
  55. package/src/core/components/dialog/__workshop__/index.ts +5 -3
  56. package/src/core/components/dialog/__workshop__/layering.tsx +1 -1
  57. package/src/core/components/dialog/__workshop__/nested.tsx +2 -3
  58. package/src/core/components/dialog/__workshop__/onScroll.tsx +1 -1
  59. package/src/core/components/dialog/__workshop__/panes.tsx +1 -1
  60. package/src/core/components/dialog/__workshop__/position.tsx +1 -1
  61. package/src/core/components/dialog/__workshop__/props.tsx +1 -1
  62. package/src/core/components/dialog/__workshop__/provider.tsx +1 -1
  63. package/src/core/components/dialog/__workshop__/wrapped.tsx +1 -1
  64. package/src/core/components/dialog/dialog.tsx +5 -6
  65. package/src/core/components/dialog/dialogCard.tsx +2 -2
  66. package/src/core/components/dialog/dialogContext.ts +3 -4
  67. package/src/core/components/dialog/dialogProvider.tsx +2 -2
  68. package/src/core/components/hotkeys/__workshop__/index.ts +5 -3
  69. package/src/core/components/hotkeys/__workshop__/plain.tsx +1 -1
  70. package/src/core/components/hotkeys/hotkeys.tsx +4 -15
  71. package/src/core/components/menu/__workshop__/asComponent.tsx +1 -1
  72. package/src/core/components/menu/__workshop__/avatarMenu.tsx +1 -1
  73. package/src/core/components/menu/__workshop__/closableMenuButton.tsx +1 -1
  74. package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +3 -3
  75. package/src/core/components/menu/__workshop__/customMenuItem.tsx +1 -1
  76. package/src/core/components/menu/__workshop__/customSelectedState.tsx +1 -1
  77. package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +1 -1
  78. package/src/core/components/menu/__workshop__/groups.tsx +1 -1
  79. package/src/core/components/menu/__workshop__/index.ts +5 -3
  80. package/src/core/components/menu/__workshop__/menuButton.tsx +2 -2
  81. package/src/core/components/menu/__workshop__/menuGroupRight.tsx +1 -1
  82. package/src/core/components/menu/__workshop__/nestedMenu.tsx +1 -1
  83. package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +1 -1
  84. package/src/core/components/menu/__workshop__/selectedItem.tsx +1 -1
  85. package/src/core/components/menu/__workshop__/shouldFocus.tsx +1 -1
  86. package/src/core/components/menu/__workshop__/tones.tsx +3 -3
  87. package/src/core/components/menu/__workshop__/withoutArrow.tsx +1 -1
  88. package/src/core/components/menu/menu.test.tsx +2 -1
  89. package/src/core/components/menu/menu.tsx +7 -22
  90. package/src/core/components/menu/menuButton.tsx +4 -50
  91. package/src/core/components/menu/menuContext.ts +3 -15
  92. package/src/core/components/menu/menuDivider.tsx +2 -2
  93. package/src/core/components/menu/menuGroup.tsx +10 -15
  94. package/src/core/components/menu/menuItem.tsx +7 -18
  95. package/src/core/components/tab/__workshop__/example.tsx +1 -1
  96. package/src/core/components/tab/__workshop__/index.ts +5 -3
  97. package/src/core/components/tab/tab.tsx +6 -4
  98. package/src/core/components/tab/tabList.tsx +3 -8
  99. package/src/core/components/tab/tabPanel.tsx +2 -2
  100. package/src/core/components/toast/__workshop__/hook.tsx +1 -1
  101. package/src/core/components/toast/__workshop__/index.ts +5 -3
  102. package/src/core/components/toast/__workshop__/toast.tsx +1 -1
  103. package/src/core/components/toast/toast.test.tsx +2 -1
  104. package/src/core/components/toast/toast.tsx +2 -2
  105. package/src/core/components/toast/toastContext.ts +4 -4
  106. package/src/core/components/toast/toastLayer.tsx +3 -3
  107. package/src/core/components/tree/__workshop__/basic.perf.ts +1 -1
  108. package/src/core/components/tree/__workshop__/basic.tsx +1 -1
  109. package/src/core/components/tree/__workshop__/index.ts +5 -3
  110. package/src/core/components/tree/__workshop__/tabFromElement.tsx +1 -1
  111. package/src/core/components/tree/tree.tsx +8 -9
  112. package/src/core/components/tree/treeContext.ts +4 -4
  113. package/src/core/components/tree/treeGroup.tsx +6 -8
  114. package/src/core/components/tree/treeItem.tsx +4 -4
  115. package/src/core/components/tree/types.ts +1 -1
  116. package/src/core/components/virtualList/__workshop__/changingProps.tsx +1 -1
  117. package/src/core/components/virtualList/__workshop__/elementScroll.tsx +1 -1
  118. package/src/core/components/virtualList/__workshop__/index.ts +5 -3
  119. package/src/core/components/virtualList/__workshop__/infiniteList.tsx +1 -1
  120. package/src/core/components/virtualList/__workshop__/windowScrolll.tsx +1 -1
  121. package/src/core/components/virtualList/virtualList.tsx +2 -2
  122. package/src/core/constants.ts +0 -18
  123. package/src/core/hooks/useMediaIndex/__workshop__/index.ts +5 -3
  124. package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +1 -1
  125. package/src/core/hooks/useMediaIndex/useMediaIndex.ts +6 -1
  126. package/src/core/index.ts +1 -24
  127. package/src/core/lib/createGlobalScopedContext.ts +1 -1
  128. package/src/core/lib/globalScope.ts +1 -1
  129. package/src/core/observers/elementSize.ts +1 -1
  130. package/src/core/primitives/arrow/arrow.tsx +2 -2
  131. package/src/core/primitives/avatar/__workshop__/asButton.tsx +1 -1
  132. package/src/core/primitives/avatar/__workshop__/index.ts +5 -3
  133. package/src/core/primitives/avatar/__workshop__/stack.tsx +1 -1
  134. package/src/core/primitives/avatar/__workshop__/withinButton.tsx +1 -1
  135. package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +1 -1
  136. package/src/core/primitives/avatar/avatar.tsx +3 -10
  137. package/src/core/primitives/avatar/avatarCounter.tsx +2 -2
  138. package/src/core/primitives/avatar/avatarStack.tsx +2 -4
  139. package/src/core/primitives/avatar/types.ts +0 -32
  140. package/src/core/primitives/badge/__workshop__/index.ts +5 -3
  141. package/src/core/primitives/badge/__workshop__/props.tsx +1 -1
  142. package/src/core/primitives/badge/__workshop__/tones.tsx +3 -3
  143. package/src/core/primitives/badge/badge.test.tsx +2 -1
  144. package/src/core/primitives/badge/badge.tsx +12 -11
  145. package/src/core/primitives/box/__workshop__/index.ts +5 -3
  146. package/src/core/primitives/box/__workshop__/props.tsx +1 -1
  147. package/src/core/primitives/box/__workshop__/responsive.tsx +1 -1
  148. package/src/core/primitives/box/box.tsx +28 -32
  149. package/src/core/primitives/button/__workshop__/custom.tsx +5 -5
  150. package/src/core/primitives/button/__workshop__/customIcons.tsx +1 -1
  151. package/src/core/primitives/button/__workshop__/disabled.tsx +3 -3
  152. package/src/core/primitives/button/__workshop__/index.ts +5 -3
  153. package/src/core/primitives/button/__workshop__/mixedChildren.tsx +1 -1
  154. package/src/core/primitives/button/__workshop__/props.tsx +1 -1
  155. package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +1 -1
  156. package/src/core/primitives/button/__workshop__/stacked.tsx +1 -1
  157. package/src/core/primitives/button/__workshop__/styled1.tsx +1 -1
  158. package/src/core/primitives/button/__workshop__/styled2.tsx +1 -1
  159. package/src/core/primitives/button/__workshop__/textOverflow.tsx +1 -1
  160. package/src/core/primitives/button/__workshop__/uploadButton.tsx +1 -1
  161. package/src/core/primitives/button/button.test.tsx +2 -1
  162. package/src/core/primitives/button/button.tsx +4 -7
  163. package/src/core/primitives/button/types.ts +0 -20
  164. package/src/core/primitives/card/__workshop__/asButton.tsx +2 -2
  165. package/src/core/primitives/card/__workshop__/asComponent.tsx +1 -1
  166. package/src/core/primitives/card/__workshop__/checkered.tsx +3 -3
  167. package/src/core/primitives/card/__workshop__/index.ts +5 -3
  168. package/src/core/primitives/card/__workshop__/interactive.tsx +1 -1
  169. package/src/core/primitives/card/__workshop__/listNavigation.tsx +1 -1
  170. package/src/core/primitives/card/__workshop__/props.tsx +1 -1
  171. package/src/core/primitives/card/__workshop__/selected.tsx +1 -1
  172. package/src/core/primitives/card/__workshop__/styled.tsx +1 -1
  173. package/src/core/primitives/card/__workshop__/tones.tsx +3 -3
  174. package/src/core/primitives/card/card.tsx +4 -2
  175. package/src/core/primitives/card/cardContext.ts +1 -1
  176. package/src/core/primitives/card/cardProvider.tsx +4 -4
  177. package/src/core/primitives/card/types.ts +5 -19
  178. package/src/core/primitives/checkbox/__workshop__/example.tsx +1 -1
  179. package/src/core/primitives/checkbox/__workshop__/index.ts +5 -3
  180. package/src/core/primitives/checkbox/__workshop__/props.tsx +1 -1
  181. package/src/core/primitives/checkbox/__workshop__/readOnly.tsx +1 -1
  182. package/src/core/primitives/checkbox/__workshop__/tones.tsx +3 -3
  183. package/src/core/primitives/checkbox/checkbox.tsx +2 -2
  184. package/src/core/primitives/code/__workshop__/index.ts +5 -3
  185. package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +1 -1
  186. package/src/core/primitives/code/__workshop__/props.tsx +1 -1
  187. package/src/core/primitives/code/code.tsx +4 -2
  188. package/src/core/primitives/code/refractor.tsx +1 -1
  189. package/src/core/primitives/container/__workshop__/example.tsx +1 -1
  190. package/src/core/primitives/container/__workshop__/index.ts +5 -3
  191. package/src/core/primitives/container/container.tsx +2 -2
  192. package/src/core/primitives/flex/__workshop__/example.tsx +1 -1
  193. package/src/core/primitives/flex/__workshop__/gap.tsx +1 -1
  194. package/src/core/primitives/flex/__workshop__/index.ts +5 -3
  195. package/src/core/primitives/flex/flex.tsx +4 -2
  196. package/src/core/primitives/grid/__workshop__/index.ts +5 -3
  197. package/src/core/primitives/grid/__workshop__/responsive.tsx +3 -3
  198. package/src/core/primitives/grid/grid.tsx +4 -2
  199. package/src/core/primitives/heading/__workshop__/index.ts +5 -3
  200. package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +1 -1
  201. package/src/core/primitives/heading/__workshop__/plain.tsx +1 -1
  202. package/src/core/primitives/heading/heading.tsx +2 -4
  203. package/src/core/primitives/inline/__workshop__/index.ts +5 -3
  204. package/src/core/primitives/inline/__workshop__/plain.tsx +1 -1
  205. package/src/core/primitives/inline/inline.tsx +4 -11
  206. package/src/core/primitives/kbd/__workshop__/index.ts +5 -3
  207. package/src/core/primitives/kbd/__workshop__/plain.tsx +1 -1
  208. package/src/core/primitives/kbd/kbd.tsx +4 -2
  209. package/src/core/primitives/label/__workshop__/index.ts +5 -3
  210. package/src/core/primitives/label/__workshop__/opticalAlignment.tsx +1 -1
  211. package/src/core/primitives/label/__workshop__/plain.tsx +1 -1
  212. package/src/core/primitives/label/label.tsx +2 -4
  213. package/src/core/primitives/layer/__workshop__/_debug.tsx +1 -1
  214. package/src/core/primitives/layer/__workshop__/index.ts +5 -3
  215. package/src/core/primitives/layer/__workshop__/multipleRoots.tsx +1 -1
  216. package/src/core/primitives/layer/__workshop__/nested.tsx +1 -1
  217. package/src/core/primitives/layer/__workshop__/responsiveZOffset.tsx +1 -1
  218. package/src/core/primitives/layer/layer.test.tsx +2 -1
  219. package/src/core/primitives/layer/layer.tsx +2 -2
  220. package/src/core/primitives/layer/layerCard.tsx +2 -2
  221. package/src/core/primitives/layer/layerContext.ts +4 -4
  222. package/src/core/primitives/layer/layerProvider.tsx +2 -10
  223. package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +2 -2
  224. package/src/core/primitives/popover/__workshop__/MarginsStory.tsx +1 -1
  225. package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +1 -1
  226. package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +1 -1
  227. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +2 -2
  228. package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +3 -3
  229. package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +3 -3
  230. package/src/core/primitives/popover/__workshop__/index.ts +5 -3
  231. package/src/core/primitives/popover/popover.tsx +4 -9
  232. package/src/core/primitives/popover/popoverLayer.tsx +2 -2
  233. package/src/core/primitives/radio/__workshop__/example.tsx +1 -1
  234. package/src/core/primitives/radio/__workshop__/index.ts +5 -3
  235. package/src/core/primitives/radio/__workshop__/plain.tsx +1 -1
  236. package/src/core/primitives/radio/radio.tsx +2 -2
  237. package/src/core/primitives/select/__workshop__/index.ts +5 -3
  238. package/src/core/primitives/select/__workshop__/plain.tsx +1 -1
  239. package/src/core/primitives/select/__workshop__/readOnly.tsx +1 -1
  240. package/src/core/primitives/select/select.tsx +5 -15
  241. package/src/core/primitives/selectable/selectable.tsx +4 -4
  242. package/src/core/primitives/skeleton/__workshop__/delay.tsx +1 -1
  243. package/src/core/primitives/skeleton/__workshop__/index.ts +5 -3
  244. package/src/core/primitives/skeleton/__workshop__/skeleton.tsx +2 -2
  245. package/src/core/primitives/skeleton/codeSkeleton.tsx +2 -2
  246. package/src/core/primitives/skeleton/headingSkeleton.tsx +2 -2
  247. package/src/core/primitives/skeleton/labelSkeleton.tsx +2 -2
  248. package/src/core/primitives/skeleton/skeleton.tsx +2 -2
  249. package/src/core/primitives/skeleton/textSkeleton.tsx +2 -2
  250. package/src/core/primitives/spinner/__workshop__/Props.tsx +1 -1
  251. package/src/core/primitives/spinner/__workshop__/index.ts +5 -3
  252. package/src/core/primitives/spinner/animatedSpinnerIcon.tsx +2 -2
  253. package/src/core/primitives/spinner/spinner.tsx +2 -2
  254. package/src/core/primitives/srOnly/srOnly.tsx +2 -2
  255. package/src/core/primitives/stack/__workshop__/index.ts +5 -3
  256. package/src/core/primitives/stack/__workshop__/plain.tsx +1 -1
  257. package/src/core/primitives/stack/stack.tsx +5 -10
  258. package/src/core/primitives/switch/__workshop__/example.tsx +1 -1
  259. package/src/core/primitives/switch/__workshop__/index.ts +5 -3
  260. package/src/core/primitives/switch/__workshop__/props.tsx +1 -1
  261. package/src/core/primitives/switch/switch.tsx +2 -2
  262. package/src/core/primitives/text/__workshop__/colored.tsx +1 -1
  263. package/src/core/primitives/text/__workshop__/example.tsx +1 -1
  264. package/src/core/primitives/text/__workshop__/index.ts +5 -3
  265. package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +1 -1
  266. package/src/core/primitives/text/text.tsx +4 -4
  267. package/src/core/primitives/textArea/__workshop__/index.ts +5 -3
  268. package/src/core/primitives/textArea/__workshop__/plain.tsx +1 -1
  269. package/src/core/primitives/textArea/textArea.tsx +5 -15
  270. package/src/core/primitives/textInput/__workshop__/clearButton.tsx +1 -1
  271. package/src/core/primitives/textInput/__workshop__/customValidity.tsx +1 -1
  272. package/src/core/primitives/textInput/__workshop__/index.ts +5 -3
  273. package/src/core/primitives/textInput/__workshop__/plain.tsx +1 -1
  274. package/src/core/primitives/textInput/__workshop__/readOnly.tsx +1 -1
  275. package/src/core/primitives/textInput/__workshop__/states.tsx +1 -1
  276. package/src/core/primitives/textInput/__workshop__/tones.tsx +1 -1
  277. package/src/core/primitives/textInput/__workshop__/typed.tsx +1 -1
  278. package/src/core/primitives/textInput/textInput.tsx +6 -9
  279. package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +1 -1
  280. package/src/core/primitives/tooltip/__workshop__/index.ts +5 -3
  281. package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +1 -1
  282. package/src/core/primitives/tooltip/__workshop__/props.tsx +1 -1
  283. package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +1 -1
  284. package/src/core/primitives/tooltip/constants.ts +1 -1
  285. package/src/core/primitives/tooltip/tooltip.test.tsx +2 -4
  286. package/src/core/primitives/tooltip/tooltip.tsx +5 -9
  287. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +4 -2
  288. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +5 -3
  289. package/src/core/primitives/tooltip/tooltipLayer.tsx +2 -2
  290. package/src/core/{types/props.ts → types.ts} +27 -0
  291. package/src/core/utils/boundaryElement/__workshop__/index.ts +5 -3
  292. package/src/core/utils/boundaryElement/__workshop__/plain.tsx +1 -1
  293. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +2 -1
  294. package/src/core/utils/boundaryElement/boundaryElementContext.ts +7 -4
  295. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +2 -2
  296. package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +1 -1
  297. package/src/core/utils/elementQuery/__workshop__/index.ts +5 -3
  298. package/src/core/utils/elementQuery/elementQuery.tsx +2 -2
  299. package/src/core/utils/getElementRef.ts +1 -1
  300. package/src/core/utils/portal/__workshop__/index.ts +5 -3
  301. package/src/core/utils/portal/__workshop__/named.tsx +1 -1
  302. package/src/core/utils/portal/portal.test.tsx +2 -1
  303. package/src/core/utils/portal/portalContext.ts +5 -2
  304. package/src/core/utils/portal/portalProvider.tsx +5 -9
  305. package/src/css/_responsiveClassName.ts +2 -2
  306. package/src/css/_style.css.ts +1 -1
  307. package/src/css/components/breadcrumbs/breadcrumbs.css.ts +1 -1
  308. package/src/css/components/dialog/dialog.css.ts +9 -17
  309. package/src/css/components/menu/menu.css.ts +2 -2
  310. package/src/css/components/menu/menu.ts +2 -2
  311. package/src/css/components/skeleton/skeleton.css.ts +2 -6
  312. package/src/css/components/toast/toast.css.ts +2 -2
  313. package/src/css/components/toast/toast.ts +2 -2
  314. package/src/css/components/tree/tree.css.ts +1 -1
  315. package/src/css/components/tree/tree.ts +1 -1
  316. package/src/css/defaultTheme.css.ts +59 -60
  317. package/src/css/layers.css.ts +4 -1
  318. package/src/css/primitives/_arrow/_arrow.css.ts +5 -5
  319. package/src/css/primitives/_input/_input.css.ts +4 -4
  320. package/src/css/primitives/_selectable/_selectable.css.ts +4 -4
  321. package/src/css/primitives/_selectable/types.ts +2 -2
  322. package/src/css/primitives/avatar/avatar.css.ts +10 -10
  323. package/src/css/primitives/badge/badge.css.ts +4 -4
  324. package/src/css/primitives/badge/types.ts +8 -2
  325. package/src/css/primitives/box/box.css.ts +2 -2
  326. package/src/css/primitives/button/button.css.ts +6 -6
  327. package/src/css/primitives/button/button.ts +2 -2
  328. package/src/css/primitives/button/types.ts +3 -3
  329. package/src/css/primitives/card/__workshop__/color.tsx +9 -9
  330. package/src/css/primitives/card/__workshop__/index.ts +5 -3
  331. package/src/css/primitives/card/card.css.ts +12 -18
  332. package/src/css/primitives/card/types.ts +3 -3
  333. package/src/css/primitives/checkbox/checkbox.css.ts +3 -3
  334. package/src/css/primitives/checkbox/checkbox.ts +3 -3
  335. package/src/css/primitives/code/code.css.ts +4 -3
  336. package/src/css/primitives/code/types.ts +3 -4
  337. package/src/css/primitives/container/container.css.ts +1 -1
  338. package/src/css/primitives/heading/heading.css.ts +5 -4
  339. package/src/css/primitives/heading/types.ts +3 -6
  340. package/src/css/primitives/kbd/kbd.css.ts +1 -1
  341. package/src/css/primitives/label/label.css.ts +5 -4
  342. package/src/css/primitives/label/types.ts +0 -8
  343. package/src/css/primitives/popover/popover.css.ts +2 -2
  344. package/src/css/primitives/popover/popover.ts +2 -2
  345. package/src/css/primitives/radio/radio.css.ts +3 -3
  346. package/src/css/primitives/radio/radio.ts +3 -3
  347. package/src/css/primitives/root/root.css.ts +1 -1
  348. package/src/css/primitives/root/root.ts +1 -1
  349. package/src/css/primitives/root/types.ts +3 -3
  350. package/src/css/primitives/select/select.css.ts +3 -3
  351. package/src/css/primitives/spinner/spinner.css.ts +2 -6
  352. package/src/css/primitives/spinner/spinner.ts +2 -2
  353. package/src/css/primitives/srOnly/srOnly.css.ts +1 -1
  354. package/src/css/primitives/srOnly/srOnly.ts +1 -1
  355. package/src/css/primitives/stack/stack.css.ts +1 -1
  356. package/src/css/primitives/stack/stack.ts +1 -1
  357. package/src/css/primitives/switch/switch.css.ts +5 -5
  358. package/src/css/primitives/text/text.css.ts +5 -4
  359. package/src/css/primitives/text/types.ts +3 -5
  360. package/src/css/primitives/textArea/textArea.css.ts +1 -1
  361. package/src/css/primitives/textInput/textInput.css.ts +4 -4
  362. package/src/css/primitives/tooltip/tooltip.css.ts +1 -1
  363. package/src/css/props/alignItems/alignItems.ts +1 -1
  364. package/src/css/props/border/border.ts +1 -16
  365. package/src/css/props/boxSizing/boxSizing.css.ts +2 -1
  366. package/src/css/props/boxSizing/boxSizing.ts +0 -3
  367. package/src/css/props/display/display.ts +1 -10
  368. package/src/css/props/flex/flex.ts +1 -1
  369. package/src/css/props/flexDirection/flexDirection.ts +1 -1
  370. package/src/css/props/flexWrap/flexWrap.ts +1 -1
  371. package/src/css/props/font/font.css.ts +3 -2
  372. package/src/css/props/font/font.ts +1 -1
  373. package/src/css/props/gap/gap.ts +1 -1
  374. package/src/css/props/gridAutoColumns/gridAutoColumns.css.ts +2 -2
  375. package/src/css/props/gridAutoColumns/gridAutoColumns.ts +2 -2
  376. package/src/css/props/gridAutoColumns/types.ts +0 -10
  377. package/src/css/props/gridAutoFlow/gridAutoFlow.ts +2 -2
  378. package/src/css/props/gridAutoFlow/types.ts +0 -4
  379. package/src/css/props/gridAutoRows/gridAutoRows.ts +2 -2
  380. package/src/css/props/gridAutoRows/types.ts +0 -4
  381. package/src/css/props/gridColumn/gridColumn.ts +3 -3
  382. package/src/css/props/gridColumn/types.ts +0 -10
  383. package/src/css/props/gridColumnEnd/gridColumnEnd.ts +3 -3
  384. package/src/css/props/gridColumnEnd/types.ts +0 -10
  385. package/src/css/props/gridColumnStart/gridColumnStart.ts +3 -6
  386. package/src/css/props/gridColumnStart/types.ts +0 -10
  387. package/src/css/props/gridRow/gridRow.ts +3 -3
  388. package/src/css/props/gridRow/types.ts +0 -10
  389. package/src/css/props/gridRowEnd/gridRowEnd.ts +3 -3
  390. package/src/css/props/gridRowEnd/types.ts +0 -10
  391. package/src/css/props/gridRowStart/gridRowStart.ts +3 -3
  392. package/src/css/props/gridRowStart/types.ts +0 -10
  393. package/src/css/props/gridTemplateColumns/gridTemplateColumns.ts +2 -2
  394. package/src/css/props/gridTemplateColumns/types.ts +0 -10
  395. package/src/css/props/gridTemplateRows/gridTemplateRows.ts +2 -2
  396. package/src/css/props/gridTemplateRows/types.ts +0 -10
  397. package/src/css/props/height/height.ts +1 -1
  398. package/src/css/props/height/types.ts +0 -6
  399. package/src/css/props/inset/inset.ts +1 -1
  400. package/src/css/props/justifyContent/justifyContent.ts +1 -1
  401. package/src/css/props/margin/margin.ts +1 -1
  402. package/src/css/props/maxWidth/maxWidth.ts +1 -1
  403. package/src/css/props/minHeight/minHeight.ts +1 -1
  404. package/src/css/props/minWidth/minWidth.ts +1 -1
  405. package/src/css/props/outline/outline.ts +1 -1
  406. package/src/css/props/overflow/overflow.ts +1 -1
  407. package/src/css/props/overflow/types.ts +0 -6
  408. package/src/css/props/padding/padding.ts +1 -1
  409. package/src/css/props/pointerEvents/pointerEvents.ts +1 -1
  410. package/src/css/props/position/position.ts +1 -1
  411. package/src/css/props/radius/radius.ts +1 -1
  412. package/src/css/props/shadow/shadow.ts +1 -1
  413. package/src/css/props/textAlign/textAlign.ts +1 -1
  414. package/src/css/props/textOverflow/textOverflow.ts +1 -1
  415. package/src/css/props/width/width.ts +1 -1
  416. package/src/css/types.ts +225 -53
  417. package/src/css/util.ts +2 -2
  418. package/src/css/vars.css.ts +33 -36
  419. package/src/theme/{v3/_parseColorToken.ts → _parseColorToken.ts} +2 -2
  420. package/src/theme/buildTheme.ts +33 -0
  421. package/src/theme/constants.ts +90 -0
  422. package/src/theme/defaults/color.ts +197 -0
  423. package/src/theme/{v2/defaults/config.ts → defaults/common.ts} +3 -16
  424. package/src/theme/{v3/defaultFonts.ts → defaults/fonts.ts} +2 -2
  425. package/src/theme/index.ts +4 -5
  426. package/src/theme/{v3/resolveTokens.ts → resolveTokens.ts} +15 -15
  427. package/src/theme/types.ts +355 -15
  428. package/src/core/__DEV__.ts +0 -5
  429. package/src/core/_compat/helpers.ts +0 -72
  430. package/src/core/_compat/styles/_responsive.ts +0 -19
  431. package/src/core/_compat/theme/theme.test.tsx +0 -73
  432. package/src/core/_compat/theme/themeColorProvider.tsx +0 -24
  433. package/src/core/_compat/theme/themeContext.ts +0 -10
  434. package/src/core/_compat/theme/themeProvider.tsx +0 -68
  435. package/src/core/_compat/theme/types.ts +0 -10
  436. package/src/core/_compat/theme/useRootTheme.ts +0 -15
  437. package/src/core/_compat/theme/useTheme.ts +0 -12
  438. package/src/core/_compat/types.ts +0 -191
  439. package/src/core/hooks/useArrayProp.ts +0 -26
  440. package/src/core/hooks/useClickOutside.test.tsx +0 -481
  441. package/src/core/hooks/useClickOutside.ts +0 -113
  442. package/src/core/hooks/useElementRect/__workshop__/example.tsx +0 -30
  443. package/src/core/hooks/useElementRect/__workshop__/index.ts +0 -14
  444. package/src/core/hooks/useElementRect/useElementRect.ts +0 -13
  445. package/src/core/hooks/useForwardedRef.ts +0 -19
  446. package/src/core/hooks/useIsomorphicEffect.ts +0 -7
  447. package/src/core/primitives/badge/types.ts +0 -18
  448. package/src/core/primitives/box/types.ts +0 -22
  449. package/src/core/primitives/flex/types.ts +0 -27
  450. package/src/core/primitives/grid/types.ts +0 -17
  451. package/src/core/primitives/selectable/types.ts +0 -7
  452. package/src/core/primitives/types.ts +0 -153
  453. package/src/core/types/gridItem.ts +0 -32
  454. package/src/core/types/placement.ts +0 -18
  455. package/src/core/types/radius.ts +0 -7
  456. package/src/core/types/textAlign.ts +0 -7
  457. package/src/core/utils/spanWithTextOverflow.tsx +0 -10
  458. package/src/theme/getScopedTheme.ts +0 -88
  459. package/src/theme/v0/avatar.ts +0 -10
  460. package/src/theme/v0/color/_generic.ts +0 -35
  461. package/src/theme/v0/color/_system.ts +0 -17
  462. package/src/theme/v0/color/base.ts +0 -21
  463. package/src/theme/v0/color/button.ts +0 -42
  464. package/src/theme/v0/color/card.ts +0 -19
  465. package/src/theme/v0/color/color.ts +0 -40
  466. package/src/theme/v0/color/index.ts +0 -11
  467. package/src/theme/v0/color/input.ts +0 -34
  468. package/src/theme/v0/color/muted.ts +0 -26
  469. package/src/theme/v0/color/selectable.ts +0 -31
  470. package/src/theme/v0/color/solid.ts +0 -26
  471. package/src/theme/v0/color/spot.ts +0 -13
  472. package/src/theme/v0/css.ts +0 -10
  473. package/src/theme/v0/focusRing.ts +0 -5
  474. package/src/theme/v0/font.ts +0 -40
  475. package/src/theme/v0/index.ts +0 -10
  476. package/src/theme/v0/input.ts +0 -23
  477. package/src/theme/v0/layer.ts +0 -6
  478. package/src/theme/v0/shadow.ts +0 -15
  479. package/src/theme/v0/styles.ts +0 -13
  480. package/src/theme/v0/theme.ts +0 -72
  481. package/src/theme/v2/avatar.ts +0 -12
  482. package/src/theme/v2/build/_deprecated/color/_selectable/createSelectableTones.ts +0 -76
  483. package/src/theme/v2/build/_deprecated/color/_solid/createSolidTones.ts +0 -54
  484. package/src/theme/v2/build/_deprecated/color/button/createButtonModes.ts +0 -22
  485. package/src/theme/v2/build/_deprecated/color/button/createButtonTones.ts +0 -55
  486. package/src/theme/v2/build/_deprecated/color/card/createCardStates.ts +0 -60
  487. package/src/theme/v2/build/_deprecated/color/color.test.ts +0 -63
  488. package/src/theme/v2/build/_deprecated/color/defaults.ts +0 -390
  489. package/src/theme/v2/build/_deprecated/color/factory.ts +0 -141
  490. package/src/theme/v2/build/_deprecated/color/index.ts +0 -1
  491. package/src/theme/v2/build/_deprecated/color/input/createInputModes.ts +0 -86
  492. package/src/theme/v2/build/_deprecated/color/muted/createMuted.ts +0 -54
  493. package/src/theme/v2/build/_deprecated/color/spot/createSpot.ts +0 -20
  494. package/src/theme/v2/build/buildColorTheme.test.ts +0 -185
  495. package/src/theme/v2/build/buildColorTheme.ts +0 -494
  496. package/src/theme/v2/build/buildTheme.test.ts +0 -89
  497. package/src/theme/v2/build/buildTheme.ts +0 -37
  498. package/src/theme/v2/build/colorToken/colorToken.ts +0 -19
  499. package/src/theme/v2/build/colorToken/compileColorToken.ts +0 -21
  500. package/src/theme/v2/build/colorToken/index.ts +0 -2
  501. package/src/theme/v2/build/colorToken/types.ts +0 -6
  502. package/src/theme/v2/build/index.ts +0 -3
  503. package/src/theme/v2/build/lib/color-fns/blend/index.ts +0 -3
  504. package/src/theme/v2/build/lib/color-fns/blend/mix.ts +0 -21
  505. package/src/theme/v2/build/lib/color-fns/blend/multiply.ts +0 -18
  506. package/src/theme/v2/build/lib/color-fns/blend/screen.ts +0 -18
  507. package/src/theme/v2/build/lib/color-fns/color-fns.test.ts +0 -68
  508. package/src/theme/v2/build/lib/color-fns/contrastRatio.ts +0 -34
  509. package/src/theme/v2/build/lib/color-fns/convert.ts +0 -150
  510. package/src/theme/v2/build/lib/color-fns/index.ts +0 -6
  511. package/src/theme/v2/build/lib/color-fns/parse.ts +0 -60
  512. package/src/theme/v2/build/lib/color-fns/rgba.ts +0 -14
  513. package/src/theme/v2/build/lib/color-fns/types.ts +0 -28
  514. package/src/theme/v2/build/lib/isRecord.ts +0 -3
  515. package/src/theme/v2/build/lib/utils.ts +0 -19
  516. package/src/theme/v2/build/merge.ts +0 -28
  517. package/src/theme/v2/build/mixThemeColor.test.ts +0 -23
  518. package/src/theme/v2/build/mixThemeColor.ts +0 -53
  519. package/src/theme/v2/build/renderColorTheme.ts +0 -532
  520. package/src/theme/v2/build/renderColorValue.ts +0 -85
  521. package/src/theme/v2/build/resolveColorTokens.ts +0 -268
  522. package/src/theme/v2/color/_constants.ts +0 -45
  523. package/src/theme/v2/color/_helpers.ts +0 -24
  524. package/src/theme/v2/color/_system.ts +0 -38
  525. package/src/theme/v2/color/avatar.ts +0 -11
  526. package/src/theme/v2/color/badge.ts +0 -12
  527. package/src/theme/v2/color/button.ts +0 -11
  528. package/src/theme/v2/color/color.ts +0 -28
  529. package/src/theme/v2/color/index.ts +0 -13
  530. package/src/theme/v2/color/input.ts +0 -23
  531. package/src/theme/v2/color/kbd.ts +0 -6
  532. package/src/theme/v2/color/selectable.ts +0 -8
  533. package/src/theme/v2/color/shadow.ts +0 -7
  534. package/src/theme/v2/color/state.ts +0 -41
  535. package/src/theme/v2/color/syntax.ts +0 -39
  536. package/src/theme/v2/config/helpers.ts +0 -48
  537. package/src/theme/v2/config/index.ts +0 -4
  538. package/src/theme/v2/config/system.ts +0 -114
  539. package/src/theme/v2/config/tokens/color/index.ts +0 -1
  540. package/src/theme/v2/config/tokens/color/types.ts +0 -137
  541. package/src/theme/v2/config/tokens/index.ts +0 -3
  542. package/src/theme/v2/config/tokens/parseTokenValue.test.ts +0 -44
  543. package/src/theme/v2/config/tokens/parseTokenValue.ts +0 -133
  544. package/src/theme/v2/config/tokens/types.ts +0 -53
  545. package/src/theme/v2/config/types.ts +0 -47
  546. package/src/theme/v2/defaults/colorPalette.ts +0 -5
  547. package/src/theme/v2/defaults/colorTokens.ts +0 -648
  548. package/src/theme/v2/defaults/fonts.ts +0 -227
  549. package/src/theme/v2/index.ts +0 -6
  550. package/src/theme/v2/input.ts +0 -31
  551. package/src/theme/v2/theme.ts +0 -45
  552. package/src/theme/v3/_constants.ts +0 -29
  553. package/src/theme/v3/buildTheme_v3.ts +0 -39
  554. package/src/theme/v3/color/_constants.ts +0 -15
  555. package/src/theme/v3/color/avatar.ts +0 -14
  556. package/src/theme/v3/color/card.ts +0 -79
  557. package/src/theme/v3/color/color.ts +0 -98
  558. package/src/theme/v3/color/element.ts +0 -19
  559. package/src/theme/v3/color/index.ts +0 -7
  560. package/src/theme/v3/color/token.ts +0 -32
  561. package/src/theme/v3/color/tokens.ts +0 -5
  562. package/src/theme/v3/defaultTokens.ts +0 -199
  563. package/src/theme/v3/index.ts +0 -9
  564. package/src/theme/v3/palette/constants.ts +0 -15
  565. package/src/theme/v3/palette/index.ts +0 -2
  566. package/src/theme/v3/palette/types.ts +0 -7
  567. package/src/theme/v3/tokens.ts +0 -16
  568. package/src/theme/v3/types.ts +0 -133
  569. package/src/theme/versioning/getTheme_v2.ts +0 -58
  570. package/src/theme/versioning/index.ts +0 -1
  571. package/src/theme/versioning/is_v0.ts +0 -7
  572. package/src/theme/versioning/is_v2.ts +0 -7
  573. package/src/theme/versioning/themeColor_v0_v2.ts +0 -245
  574. package/src/theme/versioning/themeColor_v2_v2_9.ts +0 -49
  575. package/src/theme/versioning/themeColor_v3_v2.ts +0 -383
  576. package/src/theme/versioning/v0_v2.ts +0 -95
  577. package/src/theme/versioning/v2_v0.ts +0 -127
  578. package/src/theme/versioning/v3_v2.ts +0 -130
  579. /package/src/theme/{v3/merge.ts → merge.ts} +0 -0
@@ -1,28 +1,368 @@
1
- import type {ThemeColor} from './v0'
2
- import type {RootTheme_v0} from './v0/theme'
3
- import type {RootTheme_v2, Theme_v2} from './v2/theme'
4
- import type {Theme_v3} from './v3'
1
+ import type {ColorHues, ColorTint} from '@sanity/color'
2
+
3
+ import type {
4
+ AVATAR_COLORS,
5
+ AVATAR_SIZE,
6
+ BUTTON_MODES,
7
+ CARD_TONES,
8
+ COLOR_SCHEMES,
9
+ COLOR_VARIANTS,
10
+ CONTAINER,
11
+ CONTAINER_SCALE,
12
+ ELEMENT_TONES,
13
+ FONT_CODE_SIZE,
14
+ FONT_HEADING_SIZE,
15
+ FONT_LABEL_SIZE,
16
+ FONT_TEXT_SIZE,
17
+ HUES,
18
+ RADIUS,
19
+ SHADOW,
20
+ SPACE,
21
+ TINTS,
22
+ } from './constants'
23
+
24
+ /** @public */
25
+ export type Hue = (typeof HUES)[number]
26
+
27
+ /** @public */
28
+ export type Tint = (typeof TINTS)[number]
29
+
30
+ /** @public */
31
+ export type AvatarColor = (typeof AVATAR_COLORS)[number]
5
32
 
6
33
  /** @public */
7
- export interface RootTheme extends RootTheme_v0 {
8
- v2?: RootTheme_v2
9
- v3?: Theme_v3
34
+ export type ColorTokenOpacityValue = `0` | `0.${number}` | `1`
35
+
36
+ /** @public */
37
+ export type ColorToken =
38
+ | `inherit`
39
+ | `black`
40
+ | `black/${ColorTokenOpacityValue}`
41
+ | `white`
42
+ | `white/${ColorTokenOpacityValue}`
43
+ | `${Hue}-${Tint}`
44
+ | `${Hue}-${Tint}/${ColorTokenOpacityValue}`
45
+ | `${Hue}-${Tint} ${number}%`
46
+ | `${Tint}`
47
+ | `${Tint}/${ColorTokenOpacityValue}`
48
+ | `${Tint} ${number}%`
49
+
50
+ /** @public */
51
+ export interface ResolvedColorToken {
52
+ color: {type: 'inherit'} | {type: 'black' | 'white'} | {type: 'hue'; hue: Hue; tint: Tint}
53
+ opacity: number
54
+ mix: number
10
55
  }
11
56
 
12
57
  /** @public */
13
- export type BaseTheme = RootTheme
58
+ export type ColorTokens = Record<'*' | CardTone, CardColorTokens>
59
+
60
+ /** @public */
61
+ export interface Tokens {
62
+ color: ColorTokens
63
+ }
64
+
65
+ /** @public */
66
+ export type PartialTokens<T> = T extends [ColorToken, ColorToken]
67
+ ? T
68
+ : T extends {} // eslint-disable-line @typescript-eslint/no-empty-object-type
69
+ ? {
70
+ [P in keyof T]?: PartialTokens<T[P]>
71
+ }
72
+ : T
14
73
 
15
74
  /**
16
- * Used for the `theme` prop in `styled-components`’s `ThemeProvider`.
75
+ * Theme color values are tuples of [light, dark] color tokens.
17
76
  *
18
77
  * @public
19
78
  */
79
+ export type ColorValue = [ColorToken, ColorToken]
80
+
81
+ /** @public */
82
+ export interface AvatarColorProperties {
83
+ _hue: Hue
84
+ bg: ColorValue
85
+ fg: ColorValue
86
+ }
87
+
88
+ /** @public */
89
+ export type AvatarsColor = Record<AvatarColor, AvatarColorProperties>
90
+
91
+ /** @public */
92
+ export interface ElementColorTokens {
93
+ _hue: Hue
94
+ bg: {
95
+ 0: ColorValue
96
+ 4: ColorValue
97
+ }
98
+ border: {
99
+ 0: ColorValue
100
+ 4: ColorValue
101
+ }
102
+ fg: {
103
+ 0: ColorValue
104
+ 4: ColorValue
105
+ }
106
+ }
107
+
108
+ /** @public */
109
+ export type ElementsColorTokens = Record<'*' | ElementTone, ElementColorTokens>
110
+
111
+ /** @public */
112
+ export type ColorVariant = (typeof COLOR_VARIANTS)[number]
113
+
114
+ /** @public */
115
+ export interface CardColorTokens {
116
+ _hue: Hue
117
+ avatar: AvatarsColor
118
+ backdrop: ColorValue
119
+ code: {
120
+ bg: ColorValue
121
+ fg: ColorValue
122
+ token: {
123
+ atrule: ColorValue
124
+ attrName: ColorValue
125
+ attrValue: ColorValue
126
+ attribute: ColorValue
127
+ boolean: ColorValue
128
+ builtin: ColorValue
129
+ cdata: ColorValue
130
+ char: ColorValue
131
+ class: ColorValue
132
+ className: ColorValue
133
+ comment: ColorValue
134
+ constant: ColorValue
135
+ deleted: ColorValue
136
+ doctype: ColorValue
137
+ entity: ColorValue
138
+ function: ColorValue
139
+ hexcode: ColorValue
140
+ id: ColorValue
141
+ important: ColorValue
142
+ inserted: ColorValue
143
+ keyword: ColorValue
144
+ number: ColorValue
145
+ operator: ColorValue
146
+ prolog: ColorValue
147
+ property: ColorValue
148
+ pseudoClass: ColorValue
149
+ pseudoElement: ColorValue
150
+ punctuation: ColorValue
151
+ regex: ColorValue
152
+ selector: ColorValue
153
+ string: ColorValue
154
+ symbol: ColorValue
155
+ tag: ColorValue
156
+ unit: ColorValue
157
+ url: ColorValue
158
+ variable: ColorValue
159
+ }
160
+ }
161
+ focusRing: ColorValue
162
+ link: {
163
+ fg: ColorValue
164
+ }
165
+ shadow: {
166
+ outline: ColorValue
167
+ umbra: ColorValue
168
+ penumbra: ColorValue
169
+ ambient: ColorValue
170
+ }
171
+ skeleton: {
172
+ from: ColorValue
173
+ to: ColorValue
174
+ }
175
+ variant: Record<ColorVariant, ElementsColorTokens>
176
+ }
177
+
178
+ /** @public */
179
+ export type Color = Record<CardTone, CardColorTokens>
180
+
181
+ /** @public */
182
+ export interface Input {
183
+ checkbox: {
184
+ size: number
185
+ focusRing: FocusRing
186
+ }
187
+ radio: {
188
+ size: number
189
+ markSize: number
190
+ focusRing: FocusRing
191
+ }
192
+ switch: {
193
+ width: number
194
+ height: number
195
+ padding: number
196
+ transitionDurationMs: number
197
+ transitionTimingFunction: string
198
+ focusRing: FocusRing
199
+ }
200
+ border: {
201
+ width: number
202
+ }
203
+ select: {
204
+ focusRing: FocusRing
205
+ }
206
+ text: {
207
+ focusRing: FocusRing
208
+ }
209
+ }
210
+
211
+ /** @public */
212
+ export type ColorScheme = (typeof COLOR_SCHEMES)[number]
213
+
214
+ /** @public */
215
+ export type CardTone = (typeof CARD_TONES)[number]
216
+
217
+ /** @public */
218
+ export type ElementTone = (typeof ELEMENT_TONES)[number]
219
+
220
+ /** @public */
221
+ export type ButtonMode = (typeof BUTTON_MODES)[number]
222
+
223
+ /** @public */
224
+ export interface ThemeAvatar {
225
+ sizes: {
226
+ /** Spacing between avatars in an <AvatarStack> component (px) */
227
+ distance: number
228
+ /** Diameter of the avatar (px) */
229
+ size: number
230
+ }[]
231
+ focusRing: FocusRing
232
+ }
233
+
234
+ /** @public */
235
+ export type BoxShadow = [
236
+ // offsetX, offsetY, blurRadius, spreadRadius
237
+ number,
238
+ number,
239
+ number,
240
+ number,
241
+ ]
242
+
243
+ /** @public */
244
+ export interface ShadowProperties {
245
+ umbra: BoxShadow
246
+ penumbra: BoxShadow
247
+ ambient: BoxShadow
248
+ }
249
+
250
+ /** @public */
251
+ export interface Layer {
252
+ dialog: {zOffset: number}
253
+ popover: {zOffset: number}
254
+ tooltip: {zOffset: number}
255
+ }
256
+
257
+ /** @public */
258
+ export interface FontWeights {
259
+ regular: number
260
+ medium: number
261
+ semibold: number
262
+ bold: number
263
+ }
264
+
265
+ /** @public */
266
+ export interface FocusRing {
267
+ offset: number
268
+ width: number
269
+ }
270
+
271
+ /** @public */
272
+ export type AvatarSize = (typeof AVATAR_SIZE)[number]
273
+
274
+ /** @public */
275
+ export type ContainerScale = (typeof CONTAINER_SCALE)[number]
276
+
277
+ /** @public */
278
+ export type ContainerWidth = (typeof CONTAINER)[number]
279
+
280
+ /** @public */
281
+ export type Radius = (typeof RADIUS)[number] // | 'full'
282
+
283
+ /** @public */
284
+ export type Space = (typeof SPACE)[number]
285
+
286
+ /** @public */
287
+ export type FontWeight = 'regular' | 'medium' | 'semibold' | 'bold'
288
+
289
+ /** @public */
290
+ export type FontCodeSize = (typeof FONT_CODE_SIZE)[number]
291
+
292
+ /** @public */
293
+ export type FontHeadingSize = (typeof FONT_HEADING_SIZE)[number]
294
+
295
+ /** @public */
296
+ export type FontLabelSize = (typeof FONT_LABEL_SIZE)[number]
297
+
298
+ /** @public */
299
+ export type FontTextSize = (typeof FONT_TEXT_SIZE)[number]
300
+
301
+ /** @public */
302
+ export type Shadow = (typeof SHADOW)[number]
303
+
304
+ /** @public */
305
+ export interface Options {
306
+ tokens?: PartialTokens<Tokens>
307
+ }
308
+
309
+ /** @public */
310
+ export interface Palette {
311
+ black: ColorTint
312
+ white: ColorTint
313
+ hues: ColorHues
314
+ }
315
+
316
+ /** @public */
317
+ export interface FontSize {
318
+ ascenderHeight: number
319
+ descenderHeight: number
320
+ fontSize: number
321
+ iconSize: number
322
+ letterSpacing: number
323
+ lineHeight: number
324
+ customIconSize: number
325
+ }
326
+
327
+ /** @public */
328
+ export interface Font {
329
+ family: string
330
+ featureSettings?: string
331
+ weight: FontWeights
332
+ scale: FontSize[]
333
+ }
334
+
335
+ /** @public */
336
+ export interface Fonts {
337
+ code: Font
338
+ heading: Font
339
+ label: Font
340
+ text: Font
341
+ }
342
+
343
+ /** @public */
20
344
  export interface Theme {
21
- sanity: Omit<RootTheme, 'color' | 'v2'> & {
22
- /**
23
- * @deprecated Use `v2.color` instead
24
- */
25
- color: ThemeColor
26
- v2?: Theme_v2
345
+ _version: 3
346
+ _tokens: Tokens
347
+ avatar: ThemeAvatar
348
+ button: {
349
+ border: {width: number}
350
+ focusRing: FocusRing
351
+ textWeight: FontWeight
352
+ }
353
+ card: {
354
+ border: {width: number}
355
+ focusRing: FocusRing
356
+ shadow: {outline: number}
27
357
  }
358
+ color: Color
359
+ container: number[]
360
+ font: Fonts
361
+ input: Input
362
+ layer: Layer
363
+ media: number[]
364
+ palette: Palette
365
+ radius: Record<Radius, number>
366
+ shadow: Record<Shadow, ShadowProperties | undefined>
367
+ space: Record<Space, number>
28
368
  }
@@ -1,5 +0,0 @@
1
- declare global {
2
- var __DEV__: boolean
3
- }
4
-
5
- export {}
@@ -1,72 +0,0 @@
1
- import {
2
- createColorTheme as _createColorTheme,
3
- hexToRgb as _hexToRgb,
4
- hslToRgb as _hslToRgb,
5
- multiply as _multiply,
6
- parseColor as _parseColor,
7
- rgba as _rgba,
8
- rgbToHex as _rgbToHex,
9
- rgbToHsl as _rgbToHsl,
10
- screen as _screen,
11
- } from '@sanity/ui/theme'
12
-
13
- export {
14
- /** @deprecated use `px` from `@sanity/ui/css` */
15
- px,
16
- /** @deprecated use `rem` from `@sanity/ui/css` */
17
- rem,
18
- } from '@sanity/ui/css'
19
-
20
- /**
21
- * @public
22
- * @deprecated Use `createColorTheme` from `@sanity/ui/theme` instead.
23
- */
24
- export const createColorTheme = _createColorTheme
25
-
26
- /**
27
- * @public
28
- * @deprecated Use `hexToRgb` from `@sanity/ui/theme` instead.
29
- */
30
- export const hexToRgb = _hexToRgb
31
-
32
- /**
33
- * @public
34
- * @deprecated Use `hslToRgb` from `@sanity/ui/theme` instead.
35
- */
36
- export const hslToRgb = _hslToRgb
37
-
38
- /**
39
- * @public
40
- * @deprecated Use `multiply` from `@sanity/ui/theme` instead.
41
- */
42
- export const multiply = _multiply
43
-
44
- /**
45
- * @public
46
- * @deprecated Use `parseColor` from `@sanity/ui/theme` instead.
47
- */
48
- export const parseColor = _parseColor
49
-
50
- /**
51
- * @public
52
- * @deprecated Use `rgbToHex` from `@sanity/ui/theme` instead.
53
- */
54
- export const rgbToHex = _rgbToHex
55
-
56
- /**
57
- * @public
58
- * @deprecated Use `rgbToHsl` from `@sanity/ui/theme` instead.
59
- */
60
- export const rgbToHsl = _rgbToHsl
61
-
62
- /**
63
- * @public
64
- * @deprecated Use `rgba` from `@sanity/ui/theme` instead.
65
- */
66
- export const rgba = _rgba
67
-
68
- /**
69
- * @public
70
- * @deprecated Use `screen` from `@sanity/ui/theme` instead.
71
- */
72
- export const screen = _screen
@@ -1,19 +0,0 @@
1
- import type {CSSObject} from '@sanity/ui/theme'
2
-
3
- /**
4
- * @internal
5
- * @deprecated do not use
6
- */
7
- export function _responsive<T>(
8
- media: number[],
9
- values: T[],
10
- callback: (value: T, index: number, array: T[]) => CSSObject,
11
- ): CSSObject[] {
12
- const statements = values?.map(callback) || []
13
-
14
- return statements.map((statement, mediaIndex) => {
15
- if (mediaIndex === 0) return statement
16
-
17
- return {[`@media screen and (min-width: ${media[mediaIndex - 1]}px)`]: statement}
18
- })
19
- }
@@ -1,73 +0,0 @@
1
- import {buildTheme} from '@sanity/ui/theme'
2
- import {describe, expect, it, vi} from 'vitest'
3
-
4
- import {render} from '../../../../test'
5
- import {ThemeContext} from './themeContext'
6
- import type {ThemeContextValue} from './types'
7
- import {useRootTheme} from './useRootTheme'
8
-
9
- describe('theme', () => {
10
- describe('useRootTheme', () => {
11
- it('should get context value', async () => {
12
- const log = vi.fn()
13
-
14
- function Debug() {
15
- const rootTheme = useRootTheme()
16
-
17
- log(rootTheme)
18
-
19
- return <>debug</>
20
- }
21
-
22
- function Root() {
23
- const value: ThemeContextValue = {
24
- version: 0.0,
25
- scheme: 'light',
26
- theme: buildTheme(),
27
- tone: 'default',
28
- }
29
-
30
- return (
31
- <ThemeContext.Provider value={value}>
32
- <Debug />
33
- </ThemeContext.Provider>
34
- )
35
- }
36
-
37
- render(<Root />)
38
-
39
- expect(log.mock.calls[0][0].version).toBe(0.0)
40
- expect(log.mock.calls[0][0].scheme).toBe('light')
41
- expect(log.mock.calls[0][0].tone).toBe('default')
42
- })
43
-
44
- it('should fail when no context value is provided', async () => {
45
- const log = vi.fn()
46
-
47
- function Debug() {
48
- try {
49
- useRootTheme()
50
- } catch (err) {
51
- log(err)
52
- }
53
-
54
- return null
55
- }
56
-
57
- function Root() {
58
- return (
59
- <ThemeContext.Provider
60
- // @ts-expect-error - we want to test the error case
61
- value={undefined}
62
- >
63
- <Debug />
64
- </ThemeContext.Provider>
65
- )
66
- }
67
-
68
- render(<Root />)
69
-
70
- expect(log.mock.calls[0][0].message).toEqual('useRootTheme(): missing context value')
71
- })
72
- })
73
- })
@@ -1,24 +0,0 @@
1
- import type {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'
2
- import type {ReactElement, ReactNode} from 'react'
3
-
4
- import {ThemeProvider} from './themeProvider'
5
- import {useRootTheme} from './useRootTheme'
6
-
7
- /** @public */
8
- export interface ThemeColorProviderProps {
9
- children?: ReactNode
10
- scheme?: ThemeColorSchemeKey
11
- tone?: ThemeColorCardToneKey
12
- }
13
-
14
- /** @public */
15
- export function ThemeColorProvider(props: ThemeColorProviderProps): ReactElement {
16
- const {children, scheme, tone} = props
17
- const root = useRootTheme()
18
-
19
- return (
20
- <ThemeProvider scheme={scheme || root.scheme} theme={root.theme} tone={tone}>
21
- {children}
22
- </ThemeProvider>
23
- )
24
- }
@@ -1,10 +0,0 @@
1
- import type {Context} from 'react'
2
-
3
- import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'
4
- import type {ThemeContextValue} from './types'
5
-
6
- /**
7
- * @internal
8
- */
9
- export const ThemeContext: Context<ThemeContextValue | null> =
10
- createGlobalScopedContext<ThemeContextValue | null>('@sanity/ui/context/theme', null)
@@ -1,68 +0,0 @@
1
- import {
2
- getScopedTheme,
3
- type RootTheme,
4
- type Theme,
5
- type ThemeColorCardToneKey,
6
- type ThemeColorSchemeKey,
7
- } from '@sanity/ui/theme'
8
- import {type ReactElement, type ReactNode, useContext, useMemo} from 'react'
9
- import {ThemeProvider as StyledThemeProvider} from 'styled-components'
10
-
11
- import {CardProvider} from '../../primitives/card/cardProvider'
12
- import {ThemeColorProvider} from './themeColorProvider'
13
- import {ThemeContext} from './themeContext'
14
- import type {ThemeContextValue} from './types'
15
-
16
- /** @public */
17
- export interface ThemeProviderProps {
18
- children?: ReactNode
19
- scheme?: ThemeColorSchemeKey
20
- theme?: RootTheme
21
- tone?: ThemeColorCardToneKey
22
- }
23
-
24
- /** @public */
25
- export function ThemeProvider(props: ThemeProviderProps): ReactElement {
26
- const parentTheme = useContext(ThemeContext)
27
- const {children} = props
28
- const scheme = props.scheme ?? (parentTheme?.scheme || 'light')
29
- const rootTheme = props.theme ?? (parentTheme?.theme || null)
30
- const tone = props.tone ?? (parentTheme?.tone || 'default')
31
-
32
- const themeContext: ThemeContextValue | null = useMemo(() => {
33
- if (!rootTheme) return null
34
-
35
- return {
36
- version: 0.0,
37
- theme: rootTheme,
38
- scheme,
39
- tone,
40
- }
41
- }, [rootTheme, scheme, tone])
42
-
43
- const theme: Theme | null = useMemo(() => {
44
- if (!rootTheme) return null
45
-
46
- return getScopedTheme(rootTheme, scheme, tone)
47
- }, [scheme, rootTheme, tone])
48
-
49
- if (!theme) {
50
- return <pre>ThemeProvider: no "theme" property provided</pre>
51
- }
52
-
53
- return (
54
- <CardProvider
55
- scheme={scheme}
56
- tone={tone}
57
- unstable_CompatProvider={
58
- // Render a theme provider around the card if the scheme or tone differs from the root theme.
59
- // This is needed for backwards compatibility with the legacy theme API.
60
- ThemeColorProvider
61
- }
62
- >
63
- <ThemeContext.Provider value={themeContext}>
64
- <StyledThemeProvider theme={theme}>{children}</StyledThemeProvider>
65
- </ThemeContext.Provider>
66
- </CardProvider>
67
- )
68
- }
@@ -1,10 +0,0 @@
1
- import type {RootTheme, ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'
2
-
3
- /** @public */
4
- export interface ThemeContextValue {
5
- /** @deprecated No longer used */
6
- version: 0.0
7
- scheme: ThemeColorSchemeKey
8
- theme: RootTheme
9
- tone: ThemeColorCardToneKey
10
- }
@@ -1,15 +0,0 @@
1
- import {useContext} from 'react'
2
-
3
- import {ThemeContext} from './themeContext'
4
- import type {ThemeContextValue} from './types'
5
-
6
- /** @public */
7
- export function useRootTheme(): ThemeContextValue {
8
- const value = useContext(ThemeContext)
9
-
10
- if (!value) {
11
- throw new Error('useRootTheme(): missing context value')
12
- }
13
-
14
- return value as unknown as ThemeContextValue
15
- }
@@ -1,12 +0,0 @@
1
- import {getTheme_v2, type Theme, type Theme_v2} from '@sanity/ui/theme'
2
- import {useTheme as useStyledTheme} from 'styled-components'
3
-
4
- /** @public */
5
- export function useTheme(): Theme {
6
- return useStyledTheme() as Theme
7
- }
8
-
9
- /** @public */
10
- export function useTheme_v2(): Theme_v2 {
11
- return getTheme_v2(useStyledTheme() as Theme)
12
- }