@sanity/ui 3.0.0-static.18 → 3.0.0-static.19

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 (542) hide show
  1. package/dist/_chunks-cjs/_visual-editing.cjs +137 -136
  2. package/dist/_chunks-cjs/_visual-editing.cjs.map +1 -1
  3. package/dist/_chunks-cjs/buildCommand.cjs +21 -22
  4. package/dist/_chunks-cjs/buildCommand.cjs.map +1 -1
  5. package/dist/_chunks-es/_visual-editing.js +138 -137
  6. package/dist/_chunks-es/_visual-editing.js.map +1 -1
  7. package/dist/_visual-editing.d.cts +12 -22
  8. package/dist/_visual-editing.d.ts +12 -22
  9. package/dist/cli.cjs +1 -1
  10. package/dist/css.cjs +1589 -2017
  11. package/dist/css.cjs.map +1 -1
  12. package/dist/css.d.cts +9423 -874
  13. package/dist/css.d.ts +9423 -874
  14. package/dist/css.js +1591 -2019
  15. package/dist/css.js.map +1 -1
  16. package/dist/index.cjs +28 -40
  17. package/dist/index.cjs.map +1 -1
  18. package/dist/index.d.cts +23 -21
  19. package/dist/index.d.ts +23 -21
  20. package/dist/index.js +30 -42
  21. package/dist/index.js.map +1 -1
  22. package/dist/theme.cjs +2749 -2756
  23. package/dist/theme.cjs.map +1 -1
  24. package/dist/theme.d.cts +242 -161
  25. package/dist/theme.d.ts +242 -161
  26. package/dist/theme.js +2750 -2757
  27. package/dist/theme.js.map +1 -1
  28. package/dist/ui-system.css +15719 -16097
  29. package/dist/ui-system.min.css +1 -1
  30. package/dist/ui-theme.css +850 -4568
  31. package/dist/ui-theme.min.css +1 -1
  32. package/dist/ui.css +16569 -20772
  33. package/dist/ui.min.css +1 -1
  34. package/package.json +10 -15
  35. package/src/cli/buildCommand.ts +13 -30
  36. package/src/core/StyleTags.tsx +4 -12
  37. package/src/core/_compat/styles/_responsive.ts +1 -1
  38. package/src/core/_compat/theme/theme.test.tsx +4 -5
  39. package/src/core/_compat/theme/themeColorProvider.tsx +2 -2
  40. package/src/core/_compat/theme/themeContext.ts +2 -2
  41. package/src/core/_compat/theme/themeProvider.tsx +2 -2
  42. package/src/core/_compat/theme/types.ts +1 -1
  43. package/src/core/_compat/theme/useRootTheme.ts +1 -1
  44. package/src/core/_compat/theme/useTheme.ts +1 -1
  45. package/src/core/components/autocomplete/__workshop__/async.tsx +2 -2
  46. package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +2 -2
  47. package/src/core/components/autocomplete/__workshop__/custom.tsx +11 -11
  48. package/src/core/components/autocomplete/__workshop__/example.tsx +6 -7
  49. package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +2 -2
  50. package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +1 -1
  51. package/src/core/components/autocomplete/autocomplete.tsx +5 -5
  52. package/src/core/components/autocomplete/autocompleteOption.tsx +1 -1
  53. package/src/core/components/autocomplete/autocompleteReducer.ts +1 -1
  54. package/src/core/components/autocomplete/constants.ts +1 -1
  55. package/src/core/components/autocomplete/types.ts +1 -1
  56. package/src/core/components/breadcrumbs/__workshop__/example.tsx +1 -1
  57. package/src/core/components/breadcrumbs/breadcrumbs.tsx +7 -7
  58. package/src/core/components/dialog/__workshop__/activate.tsx +4 -4
  59. package/src/core/components/dialog/__workshop__/position.tsx +1 -1
  60. package/src/core/components/dialog/__workshop__/props.tsx +1 -1
  61. package/src/core/components/dialog/__workshop__/wrapped.tsx +2 -2
  62. package/src/core/components/dialog/dialog.tsx +15 -8
  63. package/src/core/components/dialog/dialogCard.tsx +18 -3
  64. package/src/core/components/dialog/dialogContext.ts +1 -1
  65. package/src/core/components/dialog/dialogProvider.tsx +3 -3
  66. package/src/core/components/dialog/useDialog.ts +1 -1
  67. package/src/core/components/hotkeys/hotkeys.tsx +4 -4
  68. package/src/core/components/menu/__workshop__/closableMenuButton.tsx +5 -4
  69. package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +2 -2
  70. package/src/core/components/menu/__workshop__/customMenuItem.tsx +3 -3
  71. package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +1 -1
  72. package/src/core/components/menu/__workshop__/groups.tsx +2 -2
  73. package/src/core/components/menu/__workshop__/menuButton.tsx +1 -1
  74. package/src/core/components/menu/__workshop__/menuGroupRight.tsx +1 -1
  75. package/src/core/components/menu/__workshop__/nestedMenu.tsx +1 -1
  76. package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +13 -4
  77. package/src/core/components/menu/__workshop__/selectedItem.tsx +2 -2
  78. package/src/core/components/menu/__workshop__/withoutArrow.tsx +1 -1
  79. package/src/core/components/menu/menu.test.tsx +6 -7
  80. package/src/core/components/menu/menu.tsx +2 -2
  81. package/src/core/components/menu/menuButton.tsx +9 -9
  82. package/src/core/components/menu/menuContext.ts +1 -1
  83. package/src/core/components/menu/menuDivider.tsx +3 -3
  84. package/src/core/components/menu/menuGroup.tsx +9 -9
  85. package/src/core/components/menu/menuItem.tsx +9 -6
  86. package/src/core/components/menu/useMenu.ts +1 -1
  87. package/src/core/components/menu/useMenuController.ts +4 -4
  88. package/src/core/components/skeleton/__workshop__/delay.tsx +1 -1
  89. package/src/core/components/skeleton/__workshop__/skeleton.tsx +2 -2
  90. package/src/core/components/skeleton/codeSkeleton.tsx +5 -5
  91. package/src/core/components/skeleton/headingSkeleton.tsx +5 -5
  92. package/src/core/components/skeleton/labelSkeleton.tsx +5 -5
  93. package/src/core/components/skeleton/skeleton.tsx +4 -4
  94. package/src/core/components/skeleton/textSkeleton.tsx +5 -5
  95. package/src/core/components/tab/__workshop__/example.tsx +1 -1
  96. package/src/core/components/tab/tab.tsx +7 -7
  97. package/src/core/components/tab/tabList.tsx +14 -7
  98. package/src/core/components/tab/tabPanel.tsx +10 -7
  99. package/src/core/components/toast/__workshop__/hook.tsx +1 -1
  100. package/src/core/components/toast/toast.test.tsx +5 -5
  101. package/src/core/components/toast/toast.tsx +6 -7
  102. package/src/core/components/toast/toastContext.ts +1 -1
  103. package/src/core/components/toast/toastLayer.tsx +2 -2
  104. package/src/core/components/toast/toastProvider.tsx +1 -1
  105. package/src/core/components/toast/types.ts +1 -1
  106. package/src/core/components/toast/useToast.ts +1 -1
  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__/tabFromElement.tsx +1 -1
  110. package/src/core/components/tree/helpers.ts +1 -1
  111. package/src/core/components/tree/tree.tsx +6 -6
  112. package/src/core/components/tree/treeContext.ts +1 -1
  113. package/src/core/components/tree/treeGroup.tsx +2 -2
  114. package/src/core/components/tree/treeItem.tsx +15 -15
  115. package/src/core/components/tree/types.ts +2 -2
  116. package/src/core/components/tree/useTree.ts +1 -1
  117. package/src/core/hooks/useClickOutside.test.tsx +15 -16
  118. package/src/core/hooks/useClickOutsideEvent.test.tsx +4 -5
  119. package/src/core/hooks/useDelayed.test.ts +6 -7
  120. package/src/core/hooks/useDelayedState.ts +1 -1
  121. package/src/core/hooks/useElementRect/__workshop__/example.tsx +1 -1
  122. package/src/core/hooks/useElementSize.ts +1 -1
  123. package/src/core/hooks/useForwardedRef.ts +1 -1
  124. package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +1 -1
  125. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +1 -0
  126. package/src/core/hooks/useMediaIndex/useMediaIndex.ts +2 -2
  127. package/src/core/hooks/usePrefersDark.hydration.test.tsx +4 -4
  128. package/src/core/hooks/usePrefersDark.test.tsx +1 -0
  129. package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +4 -4
  130. package/src/core/hooks/usePrefersReducedMotion.test.tsx +1 -0
  131. package/src/core/middleware/origin.ts +1 -1
  132. package/src/core/primitives/_selectable/selectable.tsx +3 -3
  133. package/src/core/primitives/avatar/__workshop__/withinButton.tsx +1 -1
  134. package/src/core/primitives/avatar/avatar.tsx +6 -6
  135. package/src/core/primitives/avatar/avatarCounter.tsx +3 -3
  136. package/src/core/primitives/avatar/avatarStack.tsx +7 -7
  137. package/src/core/primitives/avatar/types.ts +1 -3
  138. package/src/core/primitives/badge/badge.test.tsx +2 -3
  139. package/src/core/primitives/badge/badge.tsx +3 -3
  140. package/src/core/primitives/box/__workshop__/responsive.tsx +2 -1
  141. package/src/core/primitives/box/box.tsx +4 -2
  142. package/src/core/primitives/button/__workshop__/custom.tsx +2 -2
  143. package/src/core/primitives/button/__workshop__/customIcons.tsx +3 -3
  144. package/src/core/primitives/button/__workshop__/disabled.tsx +9 -9
  145. package/src/core/primitives/button/__workshop__/props.tsx +3 -4
  146. package/src/core/primitives/button/__workshop__/stacked.tsx +4 -5
  147. package/src/core/primitives/button/button.test.tsx +2 -3
  148. package/src/core/primitives/button/button.tsx +11 -6
  149. package/src/core/primitives/card/__workshop__/asButton.tsx +16 -7
  150. package/src/core/primitives/card/__workshop__/checkered.tsx +1 -1
  151. package/src/core/primitives/card/__workshop__/index.ts +1 -1
  152. package/src/core/primitives/card/__workshop__/interactive.tsx +1 -1
  153. package/src/core/primitives/card/__workshop__/listNavigation.tsx +3 -3
  154. package/src/core/primitives/card/__workshop__/props.tsx +3 -3
  155. package/src/core/primitives/card/__workshop__/selected.tsx +2 -2
  156. package/src/core/primitives/card/__workshop__/{allTones.tsx → tones.tsx} +3 -3
  157. package/src/core/primitives/card/card.tsx +4 -4
  158. package/src/core/primitives/card/cardContext.ts +2 -2
  159. package/src/core/primitives/card/cardProvider.tsx +3 -3
  160. package/src/core/primitives/card/types.ts +2 -2
  161. package/src/core/primitives/card/useCard.ts +2 -1
  162. package/src/core/primitives/checkbox/__workshop__/props.tsx +2 -0
  163. package/src/core/primitives/checkbox/__workshop__/tones.tsx +11 -20
  164. package/src/core/primitives/checkbox/checkbox.tsx +5 -7
  165. package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +1 -1
  166. package/src/core/primitives/code/code.tsx +3 -3
  167. package/src/core/primitives/container/container.tsx +4 -4
  168. package/src/core/primitives/flex/flex.tsx +2 -2
  169. package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +1 -1
  170. package/src/core/primitives/heading/heading.tsx +2 -2
  171. package/src/core/primitives/inline/__workshop__/plain.tsx +1 -1
  172. package/src/core/primitives/inline/inline.tsx +2 -2
  173. package/src/core/primitives/inline/types.ts +1 -0
  174. package/src/core/primitives/kbd/kbd.tsx +5 -5
  175. package/src/core/primitives/label/label.tsx +5 -5
  176. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +2 -2
  177. package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +3 -4
  178. package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +4 -4
  179. package/src/core/primitives/popover/__workshop__/TestStory.tsx +2 -3
  180. package/src/core/primitives/popover/constants.ts +1 -1
  181. package/src/core/primitives/popover/floating-ui/size.ts +2 -2
  182. package/src/core/primitives/popover/helpers.ts +1 -1
  183. package/src/core/primitives/popover/popover.tsx +1 -1
  184. package/src/core/primitives/popover/popoverLayer.tsx +4 -4
  185. package/src/core/primitives/popover/types.ts +3 -2
  186. package/src/core/primitives/radio/__workshop__/example.tsx +1 -1
  187. package/src/core/primitives/radio/radio.tsx +5 -5
  188. package/src/core/primitives/select/__workshop__/plain.tsx +15 -3
  189. package/src/core/primitives/select/__workshop__/readOnly.tsx +1 -1
  190. package/src/core/primitives/select/select.tsx +4 -10
  191. package/src/core/primitives/spinner/__workshop__/Props.tsx +1 -2
  192. package/src/core/primitives/spinner/animatedSpinnerIcon.tsx +3 -3
  193. package/src/core/primitives/spinner/spinner.tsx +3 -3
  194. package/src/core/primitives/stack/__workshop__/plain.tsx +1 -1
  195. package/src/core/primitives/stack/stack.tsx +5 -5
  196. package/src/core/primitives/switch/switch.tsx +3 -3
  197. package/src/core/primitives/text/__workshop__/colored.tsx +5 -5
  198. package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +1 -1
  199. package/src/core/primitives/text/text.tsx +6 -6
  200. package/src/core/primitives/textArea/__workshop__/plain.tsx +35 -23
  201. package/src/core/primitives/textArea/textArea.tsx +14 -5
  202. package/src/core/primitives/textInput/__workshop__/customValidity.tsx +1 -1
  203. package/src/core/primitives/textInput/__workshop__/plain.tsx +9 -15
  204. package/src/core/primitives/textInput/__workshop__/states.tsx +4 -4
  205. package/src/core/primitives/textInput/__workshop__/tones.tsx +2 -2
  206. package/src/core/primitives/textInput/textInput.tsx +13 -11
  207. package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +2 -2
  208. package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +1 -1
  209. package/src/core/primitives/tooltip/__workshop__/props.tsx +5 -4
  210. package/src/core/primitives/tooltip/constants.ts +1 -1
  211. package/src/core/primitives/tooltip/tooltip.test.tsx +61 -60
  212. package/src/core/primitives/tooltip/tooltip.tsx +11 -6
  213. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +1 -1
  214. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +3 -3
  215. package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +1 -1
  216. package/src/core/primitives/tooltip/tooltipLayer.tsx +4 -4
  217. package/src/core/primitives/types.ts +15 -24
  218. package/src/core/types/badge.ts +1 -1
  219. package/src/core/types/button.ts +1 -1
  220. package/src/core/types/card.ts +1 -1
  221. package/src/core/types/selectable.ts +1 -1
  222. package/src/core/utils/arrow/arrow.tsx +5 -14
  223. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +5 -5
  224. package/src/core/utils/boundaryElement/boundaryElementContext.ts +1 -1
  225. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +2 -2
  226. package/src/core/utils/boundaryElement/useBoundaryElement.ts +1 -1
  227. package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +15 -8
  228. package/src/core/utils/elementQuery/elementQuery.tsx +1 -1
  229. package/src/core/utils/errorBoundary.tsx +4 -4
  230. package/src/core/utils/layer/__workshop__/multipleRoots.tsx +5 -5
  231. package/src/core/utils/layer/__workshop__/nested.tsx +3 -3
  232. package/src/core/utils/layer/__workshop__/responsiveZOffset.tsx +9 -5
  233. package/src/core/utils/layer/getLayerContext.test.ts +3 -1
  234. package/src/core/utils/layer/getLayerContext.ts +1 -1
  235. package/src/core/utils/layer/layer.test.tsx +5 -5
  236. package/src/core/utils/layer/layer.tsx +2 -2
  237. package/src/core/utils/layer/layerCard.tsx +3 -3
  238. package/src/core/utils/layer/layerContext.ts +1 -1
  239. package/src/core/utils/layer/layerProvider.tsx +10 -2
  240. package/src/core/utils/layer/useLayer.ts +1 -1
  241. package/src/core/utils/portal/__workshop__/named.tsx +3 -3
  242. package/src/core/utils/portal/portal.test.tsx +5 -5
  243. package/src/core/utils/portal/portal.tsx +3 -2
  244. package/src/core/utils/portal/portalContext.ts +1 -1
  245. package/src/core/utils/portal/portalProvider.tsx +2 -2
  246. package/src/core/utils/portal/usePortal.ts +1 -1
  247. package/src/core/utils/srOnly/srOnly.tsx +3 -3
  248. package/src/core/utils/virtualList/__workshop__/infiniteList.tsx +1 -1
  249. package/src/core/utils/virtualList/virtualList.tsx +3 -3
  250. package/src/css/_assign.ts +3 -0
  251. package/src/css/_compileStyle.ts +12 -4
  252. package/src/css/_compileTheme.ts +10 -13
  253. package/src/css/_composeClassNames.ts +12 -0
  254. package/src/css/_fromEntries.ts +3 -0
  255. package/src/css/_getClassNames.ts +9 -0
  256. package/src/css/_hash.ts +9 -0
  257. package/src/css/_mergeStyles.ts +1 -1
  258. package/src/css/_resp.ts +6 -12
  259. package/src/css/_scopeClassName.ts +9 -0
  260. package/src/css/_scopeClassNames.ts +12 -0
  261. package/src/css/_system.style.ts +2 -0
  262. package/src/css/aspects/border/border.style.ts +2 -2
  263. package/src/css/aspects/border/border.ts +3 -3
  264. package/src/css/aspects/border/types.ts +1 -1
  265. package/src/css/aspects/boxSizing/boxSizing.style.ts +10 -0
  266. package/src/css/aspects/boxSizing/boxSizing.ts +8 -0
  267. package/src/css/aspects/boxSizing/index.ts +2 -0
  268. package/src/css/aspects/boxSizing/types.ts +9 -0
  269. package/src/css/aspects/display/display.style.ts +8 -8
  270. package/src/css/aspects/display/display.ts +3 -3
  271. package/src/css/aspects/display/types.ts +1 -1
  272. package/src/css/aspects/flex/flex.ts +3 -3
  273. package/src/css/aspects/flex/types.ts +1 -1
  274. package/src/css/aspects/flexItem/flex.style.ts +1 -1
  275. package/src/css/aspects/flexItem/flexItem.ts +3 -3
  276. package/src/css/aspects/flexItem/types.ts +1 -1
  277. package/src/css/aspects/font/font.style.ts +33 -22
  278. package/src/css/aspects/font/font.ts +3 -3
  279. package/src/css/aspects/font/types.ts +1 -1
  280. package/src/css/aspects/gap/gap.style.ts +2 -2
  281. package/src/css/aspects/gap/gap.ts +3 -3
  282. package/src/css/aspects/gap/types.ts +2 -2
  283. package/src/css/aspects/grid/grid.ts +3 -3
  284. package/src/css/aspects/grid/types.ts +1 -1
  285. package/src/css/aspects/gridItem/gridItem.ts +3 -3
  286. package/src/css/aspects/gridItem/types.ts +1 -1
  287. package/src/css/aspects/height/height.ts +3 -3
  288. package/src/css/aspects/index.ts +1 -0
  289. package/src/css/aspects/inset/inset.ts +3 -3
  290. package/src/css/aspects/inset/types.ts +1 -1
  291. package/src/css/aspects/margin/margin.style.ts +10 -10
  292. package/src/css/aspects/margin/margin.ts +3 -3
  293. package/src/css/aspects/margin/types.ts +1 -1
  294. package/src/css/aspects/maxWidth/maxWidth.style.ts +1 -1
  295. package/src/css/aspects/maxWidth/maxWidth.ts +4 -3
  296. package/src/css/aspects/maxWidth/types.ts +2 -2
  297. package/src/css/aspects/minWidth/minWidth.ts +4 -3
  298. package/src/css/aspects/minWidth/types.ts +1 -1
  299. package/src/css/aspects/overflow/overflow.ts +3 -3
  300. package/src/css/aspects/overflow/types.ts +1 -1
  301. package/src/css/aspects/padding/padding.style.ts +2 -5
  302. package/src/css/aspects/padding/padding.ts +3 -3
  303. package/src/css/aspects/padding/types.ts +2 -2
  304. package/src/css/aspects/pointerEvents/pointerEvents.ts +3 -3
  305. package/src/css/aspects/position/position.ts +3 -3
  306. package/src/css/aspects/position/types.ts +1 -1
  307. package/src/css/aspects/radius/radius.style.ts +1 -1
  308. package/src/css/aspects/radius/radius.ts +3 -3
  309. package/src/css/aspects/radius/types.ts +2 -2
  310. package/src/css/aspects/shadow/shadow.style.ts +7 -7
  311. package/src/css/aspects/shadow/shadow.ts +3 -3
  312. package/src/css/aspects/shadow/types.ts +2 -2
  313. package/src/css/aspects/textAlign/textAlign.style.ts +1 -1
  314. package/src/css/aspects/textAlign/textAlign.ts +3 -3
  315. package/src/css/aspects/textOverflow/textOverflow.ts +3 -3
  316. package/src/css/aspects/width/types.ts +2 -2
  317. package/src/css/aspects/width/width.style.ts +1 -1
  318. package/src/css/aspects/width/width.ts +4 -3
  319. package/src/css/components/breadcrumbs/breadcrumbs.style.ts +1 -1
  320. package/src/css/components/breadcrumbs/breadcrumbs.ts +2 -2
  321. package/src/css/components/dialog/dialog.style.ts +14 -16
  322. package/src/css/components/dialog/dialog.ts +9 -8
  323. package/src/css/components/menu/menu.style.ts +2 -2
  324. package/src/css/components/menu/menu.ts +3 -3
  325. package/src/css/components/skeleton/skeleton.style.ts +24 -17
  326. package/src/css/components/skeleton/skeleton.ts +8 -7
  327. package/src/css/components/skeleton/types.ts +4 -6
  328. package/src/css/components/toast/toast.style.ts +1 -1
  329. package/src/css/components/toast/toast.ts +6 -6
  330. package/src/css/components/tree/tree.style.ts +7 -23
  331. package/src/css/components/tree/tree.ts +2 -2
  332. package/src/css/constants.ts +0 -3
  333. package/src/css/index.ts +3 -5
  334. package/src/css/prefix/constants.ts +6 -0
  335. package/src/css/prefix/types.ts +1 -0
  336. package/src/css/primitives/_arrow/_arrow.style.ts +11 -13
  337. package/src/css/primitives/_arrow/_arrow.ts +5 -5
  338. package/src/css/primitives/_input/_input.style.ts +171 -75
  339. package/src/css/primitives/_input/input.ts +13 -10
  340. package/src/css/primitives/_input/types.ts +3 -3
  341. package/src/css/primitives/_selectable/_selectable.style.ts +5 -6
  342. package/src/css/primitives/_selectable/selectable.ts +4 -3
  343. package/src/css/primitives/_selectable/types.ts +2 -2
  344. package/src/css/primitives/avatar/avatar.style.ts +38 -39
  345. package/src/css/primitives/avatar/avatar.ts +8 -8
  346. package/src/css/primitives/avatar/types.ts +3 -3
  347. package/src/css/primitives/badge/badge.style.ts +2 -3
  348. package/src/css/primitives/badge/badge.ts +7 -3
  349. package/src/css/primitives/badge/types.ts +2 -2
  350. package/src/css/primitives/box/box.style.ts +5 -15
  351. package/src/css/primitives/box/box.ts +7 -9
  352. package/src/css/primitives/box/types.ts +3 -6
  353. package/src/css/primitives/button/button.style.ts +189 -162
  354. package/src/css/primitives/button/button.ts +11 -4
  355. package/src/css/primitives/button/types.ts +1 -1
  356. package/src/css/primitives/card/card.style.ts +102 -68
  357. package/src/css/primitives/card/card.ts +5 -7
  358. package/src/css/primitives/card/types.ts +2 -2
  359. package/src/css/primitives/checkbox/checkbox.style.ts +125 -101
  360. package/src/css/primitives/checkbox/checkbox.ts +3 -3
  361. package/src/css/primitives/code/code.style.ts +24 -26
  362. package/src/css/primitives/code/code.ts +7 -3
  363. package/src/css/primitives/code/types.ts +2 -2
  364. package/src/css/primitives/container/container.style.ts +1 -1
  365. package/src/css/primitives/container/container.ts +4 -3
  366. package/src/css/primitives/container/types.ts +2 -2
  367. package/src/css/primitives/heading/heading.style.ts +31 -23
  368. package/src/css/primitives/heading/heading.ts +10 -8
  369. package/src/css/primitives/heading/types.ts +3 -2
  370. package/src/css/primitives/kbd/kbd.style.ts +7 -7
  371. package/src/css/primitives/kbd/kbd.ts +4 -3
  372. package/src/css/primitives/kbd/types.ts +1 -1
  373. package/src/css/primitives/label/label.style.ts +27 -24
  374. package/src/css/primitives/label/label.ts +5 -8
  375. package/src/css/primitives/label/types.ts +4 -3
  376. package/src/css/primitives/popover/popover.style.ts +6 -2
  377. package/src/css/primitives/popover/popover.ts +3 -3
  378. package/src/css/primitives/radio/radio.style.ts +37 -76
  379. package/src/css/primitives/radio/radio.ts +2 -2
  380. package/src/css/primitives/select/select.style.ts +3 -3
  381. package/src/css/primitives/select/select.ts +5 -5
  382. package/src/css/primitives/select/types.ts +1 -1
  383. package/src/css/primitives/spinner/spinner.style.ts +1 -1
  384. package/src/css/primitives/spinner/spinner.ts +3 -3
  385. package/src/css/primitives/stack/stack.style.ts +6 -2
  386. package/src/css/primitives/stack/stack.ts +2 -2
  387. package/src/css/primitives/switch/switch.style.ts +47 -39
  388. package/src/css/primitives/switch/switch.ts +6 -6
  389. package/src/css/primitives/text/text.style.ts +28 -23
  390. package/src/css/primitives/text/text.ts +5 -8
  391. package/src/css/primitives/text/types.ts +2 -2
  392. package/src/css/primitives/textArea/textArea.style.ts +6 -2
  393. package/src/css/primitives/textArea/textArea.ts +4 -4
  394. package/src/css/primitives/textArea/types.ts +1 -1
  395. package/src/css/primitives/textInput/textInput.style.ts +23 -17
  396. package/src/css/primitives/textInput/textInput.ts +4 -4
  397. package/src/css/primitives/textInput/types.ts +2 -8
  398. package/src/css/primitives/token/token.style.ts +4 -4
  399. package/src/css/primitives/tooltip/tooltip.style.ts +5 -4
  400. package/src/css/primitives/tooltip/tooltip.ts +3 -3
  401. package/src/css/renderColor.ts +31 -0
  402. package/src/css/theme/index.ts +14 -0
  403. package/src/css/theme/lib/contract/buildVarContract.ts +76 -0
  404. package/src/css/theme/lib/contract/index.ts +2 -0
  405. package/src/css/theme/lib/contract/types.ts +15 -0
  406. package/src/css/theme/resolveTheme.ts +852 -0
  407. package/src/css/types.ts +25 -914
  408. package/src/css/utils/srOnly/srOnly.style.ts +1 -1
  409. package/src/css/utils/srOnly/srOnly.ts +3 -3
  410. package/src/theme/getScopedTheme.ts +4 -4
  411. package/src/theme/index.ts +0 -5
  412. package/src/theme/types.ts +4 -4
  413. package/src/theme/v0/color/_generic.ts +1 -1
  414. package/src/theme/v0/color/button.ts +1 -1
  415. package/src/theme/v0/color/card.ts +1 -1
  416. package/src/theme/v0/color/color.ts +11 -11
  417. package/src/theme/v0/color/input.ts +1 -1
  418. package/src/theme/v0/color/muted.ts +1 -1
  419. package/src/theme/v0/color/selectable.ts +1 -1
  420. package/src/theme/v0/color/solid.ts +1 -1
  421. package/src/theme/v0/color/spot.ts +1 -1
  422. package/src/theme/v0/styles.ts +1 -1
  423. package/src/theme/v0/theme.ts +7 -7
  424. package/src/theme/v2/avatar.ts +1 -1
  425. package/src/theme/{build → v2/build}/_deprecated/color/_selectable/createSelectableTones.ts +3 -3
  426. package/src/theme/{build → v2/build}/_deprecated/color/_solid/createSolidTones.ts +2 -2
  427. package/src/theme/{build → v2/build}/_deprecated/color/button/createButtonModes.ts +7 -2
  428. package/src/theme/{build → v2/build}/_deprecated/color/button/createButtonTones.ts +4 -4
  429. package/src/theme/{build → v2/build}/_deprecated/color/card/createCardStates.ts +3 -3
  430. package/src/theme/{build → v2/build}/_deprecated/color/color.test.ts +1 -1
  431. package/src/theme/{build → v2/build}/_deprecated/color/defaults.ts +1 -1
  432. package/src/theme/{build → v2/build}/_deprecated/color/factory.ts +3 -3
  433. package/src/theme/{build → v2/build}/_deprecated/color/input/createInputModes.ts +7 -2
  434. package/src/theme/{build → v2/build}/_deprecated/color/muted/createMuted.ts +2 -2
  435. package/src/theme/{build → v2/build}/_deprecated/color/spot/createSpot.ts +2 -2
  436. package/src/theme/{build → v2/build}/buildColorTheme.test.ts +3 -1
  437. package/src/theme/{build → v2/build}/buildColorTheme.ts +24 -24
  438. package/src/theme/{build → v2/build}/buildTheme.test.ts +10 -8
  439. package/src/theme/{build → v2/build}/buildTheme.ts +4 -4
  440. package/src/theme/{build → v2/build}/colorToken/colorToken.ts +2 -2
  441. package/src/theme/{build → v2/build}/colorToken/compileColorToken.ts +1 -1
  442. package/src/theme/{build → v2/build}/colorToken/types.ts +2 -2
  443. package/src/theme/{build → v2/build}/lib/color-fns/blend/mix.ts +1 -1
  444. package/src/theme/{build → v2/build}/lib/color-fns/blend/multiply.ts +1 -1
  445. package/src/theme/{build → v2/build}/lib/color-fns/blend/screen.ts +1 -1
  446. package/src/theme/{build → v2/build}/lib/color-fns/color-fns.test.ts +1 -1
  447. package/src/theme/{build → v2/build}/lib/color-fns/contrastRatio.ts +5 -2
  448. package/src/theme/{build → v2/build}/lib/color-fns/convert.ts +1 -1
  449. package/src/theme/{build → v2/build}/lib/color-fns/parse.ts +1 -1
  450. package/src/theme/{build → v2/build}/mixThemeColor.test.ts +2 -0
  451. package/src/theme/{build → v2/build}/mixThemeColor.ts +1 -1
  452. package/src/theme/{build → v2/build}/renderColorTheme.ts +27 -27
  453. package/src/theme/{build → v2/build}/renderColorValue.ts +3 -3
  454. package/src/theme/{build → v2/build}/resolveColorTokens.ts +13 -13
  455. package/src/theme/v2/color/_helpers.ts +2 -2
  456. package/src/theme/v2/color/_system.ts +1 -1
  457. package/src/theme/v2/color/avatar.ts +1 -1
  458. package/src/theme/v2/color/badge.ts +1 -1
  459. package/src/theme/v2/color/button.ts +2 -2
  460. package/src/theme/v2/color/color.ts +7 -7
  461. package/src/theme/v2/color/input.ts +5 -1
  462. package/src/theme/v2/color/selectable.ts +2 -2
  463. package/src/theme/v2/color/state.ts +4 -4
  464. package/src/theme/{config → v2/config}/helpers.ts +6 -13
  465. package/src/theme/{config → v2/config}/system.ts +11 -12
  466. package/src/theme/{config → v2/config}/tokens/color/types.ts +14 -10
  467. package/src/theme/{config → v2/config}/tokens/index.ts +0 -1
  468. package/src/theme/{config → v2/config}/tokens/parseTokenValue.test.ts +2 -0
  469. package/src/theme/{config → v2/config}/tokens/parseTokenValue.ts +2 -2
  470. package/src/theme/{config → v2/config}/tokens/types.ts +3 -3
  471. package/src/theme/{config → v2/config}/types.ts +8 -6
  472. package/src/theme/{defaults → v2/defaults}/colorPalette.ts +1 -1
  473. package/src/theme/{defaults → v2/defaults}/colorTokens.ts +1 -1
  474. package/src/theme/{defaults → v2/defaults}/config.ts +1 -1
  475. package/src/theme/{defaults → v2/defaults}/fonts.ts +1 -1
  476. package/src/theme/v2/index.ts +2 -0
  477. package/src/theme/v2/input.ts +1 -1
  478. package/src/theme/v2/theme.ts +8 -8
  479. package/src/theme/{_constants.ts → v3/_constants.ts} +6 -3
  480. package/src/theme/v3/_parseColorToken.ts +185 -0
  481. package/src/theme/v3/buildTheme_v3.ts +11 -7
  482. package/src/theme/v3/color/_constants.ts +15 -0
  483. package/src/theme/v3/color/avatar.ts +14 -0
  484. package/src/theme/v3/color/card.ts +53 -53
  485. package/src/theme/v3/color/color.ts +66 -68
  486. package/src/theme/v3/color/element.ts +8 -8
  487. package/src/theme/v3/color/index.ts +2 -2
  488. package/src/theme/v3/color/token.ts +18 -4
  489. package/src/theme/v3/color/tokens.ts +2 -2
  490. package/src/theme/v3/defaultTokens.ts +73 -85
  491. package/src/theme/v3/index.ts +3 -0
  492. package/src/theme/v3/palette/index.ts +2 -0
  493. package/src/theme/v3/resolveTokens.ts +65 -65
  494. package/src/theme/v3/tokens.ts +2 -2
  495. package/src/theme/v3/types.ts +61 -7
  496. package/src/theme/versioning/getTheme_v2.ts +3 -3
  497. package/src/theme/versioning/is_v0.ts +2 -2
  498. package/src/theme/versioning/is_v2.ts +2 -2
  499. package/src/theme/versioning/themeColor_v0_v2.ts +2 -2
  500. package/src/theme/versioning/themeColor_v2_v2_9.ts +1 -1
  501. package/src/theme/versioning/themeColor_v3_v2.ts +229 -52
  502. package/src/theme/versioning/v0_v2.ts +3 -3
  503. package/src/theme/versioning/v2_v0.ts +4 -4
  504. package/src/theme/versioning/v3_v2.ts +38 -38
  505. package/dist/ui-palette.css +0 -105
  506. package/dist/ui-palette.min.css +0 -1
  507. package/src/css/_comp.test.ts +0 -7
  508. package/src/css/_comp.ts +0 -11
  509. package/src/css/_compilePalette.ts +0 -32
  510. package/src/css/_compileTheme_v3.ts +0 -440
  511. package/src/css/aspects/flex/flex.style.ts +0 -30
  512. package/src/css/composeClassNames.ts +0 -19
  513. package/src/css/primitives/_selectable/__style.ts +0 -117
  514. package/src/css/primitives/checkbox/__styles.ts +0 -129
  515. package/src/css/scopeClassName.ts +0 -7
  516. package/src/css/varNames.ts +0 -607
  517. package/src/css/vars.ts +0 -520
  518. package/src/theme/_types.ts +0 -41
  519. package/src/theme/build/theme.test.ts +0 -27
  520. package/src/theme/config/tokens/parseTokenKey.test.ts +0 -64
  521. package/src/theme/config/tokens/parseTokenKey.ts +0 -67
  522. package/src/theme/v3/buildTheme_v3.test.ts +0 -40
  523. package/src/theme/v3/color/buildColor_v3.ts +0 -226
  524. package/src/theme/v3/color/parseColor.test.ts +0 -79
  525. package/src/theme/v3/color/parseColor.ts +0 -167
  526. package/src/theme/v3/color/renderColor.test.ts +0 -20
  527. package/src/theme/v3/color/renderColor.ts +0 -43
  528. /package/src/{theme/palette → css/prefix}/index.ts +0 -0
  529. /package/src/theme/{build → v2/build}/_deprecated/color/index.ts +0 -0
  530. /package/src/theme/{build → v2/build}/colorToken/index.ts +0 -0
  531. /package/src/theme/{build → v2/build}/index.ts +0 -0
  532. /package/src/theme/{build → v2/build}/lib/color-fns/blend/index.ts +0 -0
  533. /package/src/theme/{build → v2/build}/lib/color-fns/index.ts +0 -0
  534. /package/src/theme/{build → v2/build}/lib/color-fns/rgba.ts +0 -0
  535. /package/src/theme/{build → v2/build}/lib/color-fns/types.ts +0 -0
  536. /package/src/theme/{build → v2/build}/lib/isRecord.ts +0 -0
  537. /package/src/theme/{build → v2/build}/lib/utils.ts +0 -0
  538. /package/src/theme/{build → v2/build}/merge.ts +0 -0
  539. /package/src/theme/{config → v2/config}/index.ts +0 -0
  540. /package/src/theme/{config → v2/config}/tokens/color/index.ts +0 -0
  541. /package/src/theme/{palette → v3/palette}/constants.ts +0 -0
  542. /package/src/theme/{palette → v3/palette}/types.ts +0 -0
package/src/css/vars.ts DELETED
@@ -1,520 +0,0 @@
1
- import {COLOR_HUES, COLOR_TINTS, ColorHueKey, ColorTintKey} from '@sanity/color'
2
- import {
3
- AVATAR_SIZE,
4
- AvatarSize,
5
- FONT_CODE_SIZE,
6
- FONT_HEADING_SIZE,
7
- FONT_LABEL_SIZE,
8
- FONT_TEXT_SIZE,
9
- type FontCodeSize,
10
- type FontHeadingSize,
11
- type FontLabelSize,
12
- type FontTextSize,
13
- RADIUS,
14
- Radius,
15
- SHADOW,
16
- Shadow,
17
- SPACE,
18
- type Space,
19
- THEME_COLOR_AVATAR_COLORS,
20
- THEME_COLOR_CARD_TONES,
21
- THEME_COLOR_STATE_TONES,
22
- type ThemeColorCardToneKey as CardTone,
23
- type ThemeColorSchemeKey as Scheme,
24
- } from '@sanity/ui/theme'
25
-
26
- import {
27
- type ColorAvatarVars,
28
- type ColorCardVars,
29
- type ColorSchemeVars,
30
- type ColorVariantVars,
31
- type CSSVar,
32
- type FontSizeVars,
33
- type Vars,
34
- } from './types'
35
- import {varNames} from './varNames'
36
-
37
- const darkColorVars = {} as ColorSchemeVars
38
-
39
- for (const tone of THEME_COLOR_CARD_TONES) {
40
- darkColorVars[tone] = buildColorCardVars({scheme: 'dark', tone})
41
- }
42
-
43
- const lightColorVars = {} as ColorSchemeVars
44
-
45
- for (const tone of THEME_COLOR_CARD_TONES) {
46
- lightColorVars[tone] = buildColorCardVars({scheme: 'light', tone})
47
- }
48
-
49
- const colorVars: Vars['color'] = {
50
- avatar: {
51
- bg: `var(${varNames.color.avatar.bg})`,
52
- fg: `var(${varNames.color.avatar.fg})`,
53
- gray: {
54
- bg: `var(${varNames.color.avatar.gray.bg})`,
55
- fg: `var(${varNames.color.avatar.gray.fg})`,
56
- },
57
- blue: {
58
- bg: `var(${varNames.color.avatar.blue.bg})`,
59
- fg: `var(${varNames.color.avatar.blue.fg})`,
60
- },
61
- purple: {
62
- bg: `var(${varNames.color.avatar.purple.bg})`,
63
- fg: `var(${varNames.color.avatar.purple.fg})`,
64
- },
65
- magenta: {
66
- bg: `var(${varNames.color.avatar.magenta.bg})`,
67
- fg: `var(${varNames.color.avatar.magenta.fg})`,
68
- },
69
- red: {
70
- bg: `var(${varNames.color.avatar.red.bg})`,
71
- fg: `var(${varNames.color.avatar.red.fg})`,
72
- },
73
- orange: {
74
- bg: `var(${varNames.color.avatar.orange.bg})`,
75
- fg: `var(${varNames.color.avatar.orange.fg})`,
76
- },
77
- yellow: {
78
- bg: `var(${varNames.color.avatar.yellow.bg})`,
79
- fg: `var(${varNames.color.avatar.yellow.fg})`,
80
- },
81
- green: {
82
- bg: `var(${varNames.color.avatar.green.bg})`,
83
- fg: `var(${varNames.color.avatar.green.fg})`,
84
- },
85
- cyan: {
86
- bg: `var(${varNames.color.avatar.cyan.bg})`,
87
- fg: `var(${varNames.color.avatar.cyan.fg})`,
88
- },
89
- },
90
- backdrop: `var(${varNames.color.backdrop})`,
91
- bg: `var(${varNames.color.bg})`,
92
- border: `var(${varNames.color.border})`,
93
- code: {
94
- bg: `var(${varNames.color.code.bg})`,
95
- fg: `var(${varNames.color.code.fg})`,
96
-
97
- token: {
98
- atrule: `var(${varNames.color.code.token.atrule})`,
99
- attrName: `var(${varNames.color.code.token.attrName})`,
100
- attrValue: `var(${varNames.color.code.token.attrValue})`,
101
- attribute: `var(${varNames.color.code.token.attribute})`,
102
- boolean: `var(${varNames.color.code.token.boolean})`,
103
- builtin: `var(${varNames.color.code.token.builtin})`,
104
- cdata: `var(${varNames.color.code.token.cdata})`,
105
- char: `var(${varNames.color.code.token.char})`,
106
- class: `var(${varNames.color.code.token.class})`,
107
- className: `var(${varNames.color.code.token.className})`,
108
- comment: `var(${varNames.color.code.token.comment})`,
109
- constant: `var(${varNames.color.code.token.constant})`,
110
- deleted: `var(${varNames.color.code.token.deleted})`,
111
- doctype: `var(${varNames.color.code.token.doctype})`,
112
- entity: `var(${varNames.color.code.token.entity})`,
113
- function: `var(${varNames.color.code.token.function})`,
114
- hexcode: `var(${varNames.color.code.token.hexcode})`,
115
- id: `var(${varNames.color.code.token.id})`,
116
- important: `var(${varNames.color.code.token.important})`,
117
- inserted: `var(${varNames.color.code.token.inserted})`,
118
- keyword: `var(${varNames.color.code.token.keyword})`,
119
- number: `var(${varNames.color.code.token.number})`,
120
- operator: `var(${varNames.color.code.token.operator})`,
121
- prolog: `var(${varNames.color.code.token.prolog})`,
122
- property: `var(${varNames.color.code.token.property})`,
123
- pseudoClass: `var(${varNames.color.code.token.pseudoClass})`,
124
- pseudoElement: `var(${varNames.color.code.token.pseudoElement})`,
125
- punctuation: `var(${varNames.color.code.token.punctuation})`,
126
- regex: `var(${varNames.color.code.token.regex})`,
127
- selector: `var(${varNames.color.code.token.selector})`,
128
- string: `var(${varNames.color.code.token.string})`,
129
- symbol: `var(${varNames.color.code.token.symbol})`,
130
- tag: `var(${varNames.color.code.token.tag})`,
131
- unit: `var(${varNames.color.code.token.unit})`,
132
- url: `var(${varNames.color.code.token.url})`,
133
- variable: `var(${varNames.color.code.token.variable})`,
134
- },
135
- },
136
- fg: `var(${varNames.color.fg})`,
137
- focusRing: `var(${varNames.color.focusRing})`,
138
- input: {
139
- bg: `var(${varNames.color.input.bg})`,
140
- border: `var(${varNames.color.input.border})`,
141
- fg: `var(${varNames.color.input.fg})`,
142
- placeholder: `var(${varNames.color.input.placeholder})`,
143
- },
144
- link: {
145
- fg: `var(${varNames.color.link.fg})`,
146
- },
147
- muted: {
148
- bg: `var(${varNames.color.muted.bg})`,
149
- fg: `var(${varNames.color.muted.fg})`,
150
- },
151
- shadow: {
152
- outline: `var(${varNames.color.shadow.outline})`,
153
- umbra: `var(${varNames.color.shadow.umbra})`,
154
- penumbra: `var(${varNames.color.shadow.penumbra})`,
155
- ambient: `var(${varNames.color.shadow.ambient})`,
156
- },
157
- skeleton: {
158
- from: `var(${varNames.color.skeleton.from})`,
159
- to: `var(${varNames.color.skeleton.to})`,
160
- },
161
-
162
- solid: buildColorVariantVars({variant: 'solid'}),
163
- tinted: buildColorVariantVars({variant: 'tinted'}),
164
-
165
- ...THEME_COLOR_CARD_TONES.reduce((acc, tone) => {
166
- return {
167
- ...acc,
168
- [tone]: buildColorCardVars({tone}),
169
- }
170
- }, {} as ColorSchemeVars),
171
-
172
- dark: darkColorVars,
173
- light: lightColorVars,
174
- }
175
-
176
- /** @public */
177
- export const vars: Vars = {
178
- avatar: {
179
- distance: `var(${varNames.avatar.distance})`,
180
- size: `var(${varNames.avatar.size})`,
181
- sizes: AVATAR_SIZE.reduce(
182
- (acc, size) => {
183
- return {
184
- ...acc,
185
- [size]: {
186
- size: `var(${varNames.avatar.sizes[size].size})`,
187
- distance: `var(${varNames.avatar.sizes[size].distance})`,
188
- },
189
- }
190
- },
191
- {} as Record<AvatarSize, {distance: CSSVar; size: CSSVar}>,
192
- ),
193
- },
194
- card: {
195
- shadow: {
196
- outline: `var(${varNames.card.shadow.outline})`,
197
- },
198
- },
199
- color: colorVars,
200
- container: {
201
- 0: `var(${varNames.container[0]})`,
202
- 1: `var(${varNames.container[1]})`,
203
- 2: `var(${varNames.container[2]})`,
204
- 3: `var(${varNames.container[3]})`,
205
- 4: `var(${varNames.container[4]})`,
206
- 5: `var(${varNames.container[5]})`,
207
- },
208
- font: {
209
- code: {
210
- family: `var(${varNames.font.code.family})`,
211
- sizes: FONT_CODE_SIZE.reduce(
212
- (acc, size) => {
213
- return {
214
- ...acc,
215
- [size]: {
216
- fontSize: `var(${varNames.font.code.sizes[size].fontSize})`,
217
- ascenderHeight: `var(${varNames.font.code.sizes[size].ascenderHeight})`,
218
- descenderHeight: `var(${varNames.font.code.sizes[size].descenderHeight})`,
219
- lineHeight: `var(${varNames.font.code.sizes[size].lineHeight})`,
220
- letterSpacing: `var(${varNames.font.code.sizes[size].letterSpacing})`,
221
- iconSize: `var(${varNames.font.code.sizes[size].iconSize})`,
222
- },
223
- }
224
- },
225
- {} as Record<FontCodeSize, FontSizeVars>,
226
- ),
227
- weight: {
228
- regular: `var(${varNames.font.code.weights.regular})`,
229
- medium: `var(${varNames.font.code.weights.medium})`,
230
- semibold: `var(${varNames.font.code.weights.semibold})`,
231
- bold: `var(${varNames.font.code.weights.bold})`,
232
- },
233
- },
234
- heading: {
235
- family: `var(${varNames.font.heading.family})`,
236
- sizes: FONT_HEADING_SIZE.reduce(
237
- (acc, size) => {
238
- return {
239
- ...acc,
240
- [size]: {
241
- fontSize: `var(${varNames.font.heading.sizes[size].fontSize})`,
242
- ascenderHeight: `var(${varNames.font.heading.sizes[size].ascenderHeight})`,
243
- descenderHeight: `var(${varNames.font.heading.sizes[size].descenderHeight})`,
244
- lineHeight: `var(${varNames.font.heading.sizes[size].lineHeight})`,
245
- letterSpacing: `var(${varNames.font.heading.sizes[size].letterSpacing})`,
246
- iconSize: `var(${varNames.font.heading.sizes[size].iconSize})`,
247
- },
248
- }
249
- },
250
- {} as Record<FontHeadingSize, FontSizeVars>,
251
- ),
252
- weight: {
253
- regular: `var(${varNames.font.heading.weights.regular})`,
254
- medium: `var(${varNames.font.heading.weights.medium})`,
255
- semibold: `var(${varNames.font.heading.weights.semibold})`,
256
- bold: `var(${varNames.font.heading.weights.bold})`,
257
- },
258
- },
259
- label: {
260
- family: `var(${varNames.font.label.family})`,
261
- sizes: FONT_LABEL_SIZE.reduce(
262
- (acc, size) => {
263
- return {
264
- ...acc,
265
- [size]: {
266
- fontSize: `var(${varNames.font.label.sizes[size].fontSize})`,
267
- ascenderHeight: `var(${varNames.font.label.sizes[size].ascenderHeight})`,
268
- descenderHeight: `var(${varNames.font.label.sizes[size].descenderHeight})`,
269
- lineHeight: `var(${varNames.font.label.sizes[size].lineHeight})`,
270
- letterSpacing: `var(${varNames.font.label.sizes[size].letterSpacing})`,
271
- iconSize: `var(${varNames.font.label.sizes[size].iconSize})`,
272
- },
273
- }
274
- },
275
- {} as Record<FontLabelSize, FontSizeVars>,
276
- ),
277
- weight: {
278
- regular: `var(${varNames.font.label.weights.regular})`,
279
- medium: `var(${varNames.font.label.weights.medium})`,
280
- semibold: `var(${varNames.font.label.weights.semibold})`,
281
- bold: `var(${varNames.font.label.weights.bold})`,
282
- },
283
- },
284
- text: {
285
- family: `var(${varNames.font.text.family})`,
286
- sizes: FONT_TEXT_SIZE.reduce(
287
- (acc, size) => {
288
- return {
289
- ...acc,
290
- [size]: {
291
- fontSize: `var(${varNames.font.text.sizes[size].fontSize})`,
292
- ascenderHeight: `var(${varNames.font.text.sizes[size].ascenderHeight})`,
293
- descenderHeight: `var(${varNames.font.text.sizes[size].descenderHeight})`,
294
- lineHeight: `var(${varNames.font.text.sizes[size].lineHeight})`,
295
- letterSpacing: `var(${varNames.font.text.sizes[size].letterSpacing})`,
296
- iconSize: `var(${varNames.font.text.sizes[size].iconSize})`,
297
- },
298
- }
299
- },
300
- {} as Record<FontTextSize, FontSizeVars>,
301
- ),
302
- weight: {
303
- regular: `var(${varNames.font.text.weights.regular})`,
304
- medium: `var(${varNames.font.text.weights.medium})`,
305
- semibold: `var(${varNames.font.text.weights.semibold})`,
306
- bold: `var(${varNames.font.text.weights.bold})`,
307
- },
308
- },
309
- },
310
- input: {
311
- fontSize: `var(--input-font-size)`,
312
- lineHeight: `var(--input-line-height)`,
313
- letterSpacing: `var(--input-letter-spacing)`,
314
- ascenderHeight: `var(--input-ascender-height)`,
315
- descenderHeight: `var(--input-descender-height)`,
316
- // capHeight: `var(--input-cap-height)`,
317
-
318
- gap: `var(--input-gap)`,
319
- padding: `var(--input-padding)`,
320
-
321
- text: {
322
- focusRing: {
323
- width: `var(--input-text-focus-ring-width)`,
324
- offset: `var(--input-text-focus-ring-offset)`,
325
- },
326
- },
327
- },
328
- radius: Object.fromEntries(
329
- RADIUS.map((radius) => [radius, `var(${varNames.radius[radius]})` as const]),
330
- ) as Record<Radius, CSSVar>,
331
- shadow: Object.fromEntries(
332
- SHADOW.map((shadow) => [
333
- shadow,
334
- {
335
- umbra: `var(${varNames.shadow[shadow].umbra})`,
336
- penumbra: `var(${varNames.shadow[shadow].penumbra})`,
337
- ambient: `var(${varNames.shadow[shadow].ambient})`,
338
- },
339
- ]),
340
- ) as Record<Shadow, {umbra: CSSVar; penumbra: CSSVar; ambient: CSSVar}>,
341
- space: Object.fromEntries(
342
- SPACE.map((space) => [space, `var(${varNames.space[space]})` as const]),
343
- ) as Record<Space, CSSVar>,
344
-
345
- // color
346
- black: `var(${varNames.black})`,
347
- white: `var(${varNames.white})`,
348
- ...COLOR_HUES.reduce(
349
- (acc, hue) => {
350
- const tints = {} as Record<ColorTintKey, CSSVar>
351
-
352
- for (const tint of COLOR_TINTS) {
353
- tints[tint] = `var(--${hue}-${tint})`
354
- }
355
-
356
- acc[hue] = tints
357
-
358
- return acc
359
- },
360
- {} as Record<ColorHueKey, Record<ColorTintKey, CSSVar>>,
361
- ),
362
- } as const
363
-
364
- function buildColorCardVars(props: {scheme?: Scheme; tone: CardTone}): ColorCardVars {
365
- const {scheme, tone} = props
366
-
367
- const prefix = scheme ? varNames.color[scheme][tone] : varNames.color[tone]
368
-
369
- return {
370
- avatar: {
371
- ...THEME_COLOR_AVATAR_COLORS.reduce((acc, color) => {
372
- return {
373
- ...acc,
374
- [color]: {
375
- bg: `var(${prefix.avatar[color].bg})`,
376
- fg: `var(${prefix.avatar[color].fg})`,
377
- },
378
- }
379
- }, {} as ColorAvatarVars),
380
- },
381
- backdrop: `var(${prefix.backdrop})`,
382
- code: {
383
- bg: `var(${prefix.code.bg})`,
384
- fg: `var(${prefix.code.fg})`,
385
- token: {
386
- atrule: `var(${prefix.code.token.atrule})`,
387
- attrName: `var(${prefix.code.token.attrName})`,
388
- attrValue: `var(${prefix.code.token.attrValue})`,
389
- attribute: `var(${prefix.code.token.attribute})`,
390
- boolean: `var(${prefix.code.token.boolean})`,
391
- builtin: `var(${prefix.code.token.builtin})`,
392
- cdata: `var(${prefix.code.token.cdata})`,
393
- char: `var(${prefix.code.token.char})`,
394
- class: `var(${prefix.code.token.class})`,
395
- className: `var(${prefix.code.token.className})`,
396
- comment: `var(${prefix.code.token.comment})`,
397
- constant: `var(${prefix.code.token.constant})`,
398
- deleted: `var(${prefix.code.token.deleted})`,
399
- doctype: `var(${prefix.code.token.doctype})`,
400
- entity: `var(${prefix.code.token.entity})`,
401
- function: `var(${prefix.code.token.function})`,
402
- hexcode: `var(${prefix.code.token.hexcode})`,
403
- id: `var(${prefix.code.token.id})`,
404
- important: `var(${prefix.code.token.important})`,
405
- inserted: `var(${prefix.code.token.inserted})`,
406
- keyword: `var(${prefix.code.token.keyword})`,
407
- number: `var(${prefix.code.token.number})`,
408
- operator: `var(${prefix.code.token.operator})`,
409
- prolog: `var(${prefix.code.token.prolog})`,
410
- property: `var(${prefix.code.token.property})`,
411
- pseudoClass: `var(${prefix.code.token.pseudoClass})`,
412
- pseudoElement: `var(${prefix.code.token.pseudoElement})`,
413
- punctuation: `var(${prefix.code.token.punctuation})`,
414
- regex: `var(${prefix.code.token.regex})`,
415
- selector: `var(${prefix.code.token.selector})`,
416
- string: `var(${prefix.code.token.string})`,
417
- symbol: `var(${prefix.code.token.symbol})`,
418
- tag: `var(${prefix.code.token.tag})`,
419
- unit: `var(${prefix.code.token.unit})`,
420
- url: `var(${prefix.code.token.url})`,
421
- variable: `var(${prefix.code.token.variable})`,
422
- },
423
- },
424
- focusRing: `var(${prefix.focusRing})`,
425
- link: {
426
- fg: `var(${prefix.link.fg})`,
427
- },
428
- muted: {
429
- bg: `var(${prefix.muted.bg})`,
430
- fg: `var(${prefix.muted.fg})`,
431
- },
432
- shadow: {
433
- outline: `var(${prefix.shadow.outline})`,
434
- umbra: `var(${prefix.shadow.umbra})`,
435
- penumbra: `var(${prefix.shadow.penumbra})`,
436
- ambient: `var(${prefix.shadow.ambient})`,
437
- },
438
- skeleton: {
439
- from: `var(${prefix.skeleton.from})`,
440
- to: `var(${prefix.skeleton.to})`,
441
- },
442
-
443
- solid: buildColorVariantVars({scheme, tone, variant: 'solid'}),
444
- tinted: buildColorVariantVars({scheme, tone, variant: 'tinted'}),
445
- }
446
- }
447
-
448
- function buildColorVariantVars(options: {
449
- scheme?: Scheme
450
- tone?: CardTone
451
- variant: 'solid' | 'tinted'
452
- }): ColorVariantVars {
453
- const {scheme, tone, variant} = options
454
-
455
- const _prefix =
456
- scheme && tone
457
- ? (`--color-${scheme}-${tone}-${variant}` as const)
458
- : tone
459
- ? (`--color-${tone}-${variant}` as const)
460
- : (`--color-${variant}` as const)
461
-
462
- const vars = {
463
- bg: {
464
- 0: `var(${_prefix}-bg-0)`,
465
- 1: `var(${_prefix}-bg-1)`,
466
- 2: `var(${_prefix}-bg-2)`,
467
- 3: `var(${_prefix}-bg-3)`,
468
- 4: `var(${_prefix}-bg-4)`,
469
- },
470
- border: {
471
- 0: `var(${_prefix}-border-0)`,
472
- 1: `var(${_prefix}-border-1)`,
473
- 2: `var(${_prefix}-border-2)`,
474
- 3: `var(${_prefix}-border-3)`,
475
- 4: `var(${_prefix}-border-4)`,
476
- },
477
- fg: {
478
- 0: `var(${_prefix}-fg-0)`,
479
- 1: `var(${_prefix}-fg-1)`,
480
- 2: `var(${_prefix}-fg-2)`,
481
- 3: `var(${_prefix}-fg-3)`,
482
- 4: `var(${_prefix}-fg-4)`,
483
- },
484
- } as ColorVariantVars
485
-
486
- for (const elementTone of THEME_COLOR_STATE_TONES) {
487
- const prefix =
488
- scheme && tone
489
- ? (`--color-${scheme}-${tone}-${variant}-${elementTone}` as const)
490
- : tone
491
- ? (`--color-${tone}-${variant}-${elementTone}` as const)
492
- : (`--color-${variant}-${elementTone}` as const)
493
-
494
- vars[elementTone] = {
495
- bg: {
496
- 0: `var(${prefix}-bg-0)`,
497
- 1: `var(${prefix}-bg-1)`,
498
- 2: `var(${prefix}-bg-2)`,
499
- 3: `var(${prefix}-bg-3)`,
500
- 4: `var(${prefix}-bg-4)`,
501
- },
502
- border: {
503
- 0: `var(${prefix}-border-0)`,
504
- 1: `var(${prefix}-border-1)`,
505
- 2: `var(${prefix}-border-2)`,
506
- 3: `var(${prefix}-border-3)`,
507
- 4: `var(${prefix}-border-4)`,
508
- },
509
- fg: {
510
- 0: `var(${prefix}-fg-0)`,
511
- 1: `var(${prefix}-fg-1)`,
512
- 2: `var(${prefix}-fg-2)`,
513
- 3: `var(${prefix}-fg-3)`,
514
- 4: `var(${prefix}-fg-4)`,
515
- },
516
- }
517
- }
518
-
519
- return vars
520
- }
@@ -1,41 +0,0 @@
1
- import {
2
- AVATAR_SIZE,
3
- CONTAINER,
4
- FONT_CODE_SIZE,
5
- FONT_HEADING_SIZE,
6
- FONT_LABEL_SIZE,
7
- FONT_TEXT_SIZE,
8
- RADIUS,
9
- SHADOW,
10
- SPACE,
11
- } from './_constants'
12
-
13
- /** @public */
14
- export type AvatarSize = (typeof AVATAR_SIZE)[number]
15
-
16
- /** @public */
17
- export type ContainerWidth = (typeof CONTAINER)[number]
18
-
19
- /** @public */
20
- export type Radius = (typeof RADIUS)[number] // | 'full'
21
-
22
- /** @public */
23
- export type Space = (typeof SPACE)[number]
24
-
25
- /** @public */
26
- export type FontWeight = 'regular' | 'medium' | 'semibold' | 'bold'
27
-
28
- /** @public */
29
- export type FontCodeSize = (typeof FONT_CODE_SIZE)[number]
30
-
31
- /** @public */
32
- export type FontHeadingSize = (typeof FONT_HEADING_SIZE)[number]
33
-
34
- /** @public */
35
- export type FontLabelSize = (typeof FONT_LABEL_SIZE)[number]
36
-
37
- /** @public */
38
- export type FontTextSize = (typeof FONT_TEXT_SIZE)[number]
39
-
40
- /** @public */
41
- export type Shadow = (typeof SHADOW)[number]
@@ -1,27 +0,0 @@
1
- import {buildTheme} from './buildTheme'
2
- import {getContrastRatio} from './lib/color-fns'
3
-
4
- const AA_MIN = 4.5
5
-
6
- it('should have sufficient contrast', () => {
7
- const base = buildTheme().v2!.color.light.default
8
- const selectable = base.selectable.default
9
-
10
- const contrasts = {
11
- base: {
12
- fg: getContrastRatio(base.bg, base.fg),
13
- },
14
- selectable: {
15
- enabled: {
16
- fg: getContrastRatio(selectable.enabled.bg, selectable.enabled.fg),
17
- muted: {
18
- fg: getContrastRatio(selectable.enabled.bg, selectable.enabled.muted.fg),
19
- },
20
- },
21
- },
22
- }
23
-
24
- expect(contrasts.base.fg).toBeGreaterThan(AA_MIN)
25
- expect(contrasts.selectable.enabled.fg).toBeGreaterThan(AA_MIN)
26
- expect(contrasts.selectable.enabled.muted.fg).toBeGreaterThan(AA_MIN)
27
- })
@@ -1,64 +0,0 @@
1
- import {parseTokenKey} from './parseTokenKey'
2
-
3
- test('parse token key', () => {
4
- expect(parseTokenKey('*/_blend')).toEqual({
5
- type: 'base',
6
- tone: '*',
7
- key: '_blend',
8
- })
9
-
10
- expect(parseTokenKey('*/_hue')).toEqual({
11
- type: 'base',
12
- tone: '*',
13
- key: '_hue',
14
- })
15
-
16
- expect(parseTokenKey('primary/_hue')).toEqual({
17
- type: 'base',
18
- tone: 'primary',
19
- key: '_hue',
20
- })
21
-
22
- expect(parseTokenKey('*/bg')).toEqual({
23
- type: 'base',
24
- tone: '*',
25
- key: 'bg',
26
- })
27
-
28
- expect(parseTokenKey('*/focusRing')).toEqual({
29
- type: 'base',
30
- tone: '*',
31
- key: 'focusRing',
32
- })
33
-
34
- expect(parseTokenKey('*/muted/fg')).toEqual({
35
- type: 'base',
36
- tone: '*',
37
- key: 'muted/fg',
38
- })
39
-
40
- expect(parseTokenKey('*/link/fg')).toEqual({
41
- type: 'base',
42
- tone: '*',
43
- key: 'link/fg',
44
- })
45
-
46
- expect(parseTokenKey('*/code/fg')).toEqual({
47
- type: 'base',
48
- tone: '*',
49
- key: 'code/fg',
50
- })
51
-
52
- expect(parseTokenKey('default/_blend')).toEqual({
53
- type: 'base',
54
- tone: 'default',
55
- key: '_blend',
56
- })
57
-
58
- expect(parseTokenKey('button/*/default/_blend')).toEqual({
59
- type: 'button',
60
- tone: '*',
61
- mode: 'default',
62
- key: '_blend',
63
- })
64
- })