@sanity/ui 3.3.2 → 3.3.4

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 (437) hide show
  1. package/dist/index.d.mts +8 -8
  2. package/dist/index.d.mts.map +1 -1
  3. package/dist/index.d.ts +8 -8
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +16 -16
  6. package/dist/index.mjs +16 -16
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/tabList.js +2 -2
  9. package/dist/tabList.mjs +2 -2
  10. package/dist/tabList.mjs.map +1 -1
  11. package/dist/useTheme.d.mts +3 -3
  12. package/dist/useTheme.d.mts.map +1 -1
  13. package/dist/useTheme.d.ts +3 -3
  14. package/dist/useTheme.d.ts.map +1 -1
  15. package/package.json +8 -13
  16. package/exports/_visual-editing.ts +0 -32
  17. package/exports/index.ts +0 -1
  18. package/exports/theme.ts +0 -1
  19. package/src/core/_compat.ts +0 -294
  20. package/src/core/components/autocomplete/autocomplete.styles.tsx +0 -39
  21. package/src/core/components/autocomplete/autocomplete.tsx +0 -775
  22. package/src/core/components/autocomplete/autocompleteOption.tsx +0 -46
  23. package/src/core/components/autocomplete/autocompleteReducer.ts +0 -47
  24. package/src/core/components/autocomplete/constants.ts +0 -28
  25. package/src/core/components/autocomplete/index.ts +0 -2
  26. package/src/core/components/autocomplete/types.ts +0 -108
  27. package/src/core/components/breadcrumbs/breadcrumbs.styles.ts +0 -18
  28. package/src/core/components/breadcrumbs/breadcrumbs.test.tsx +0 -54
  29. package/src/core/components/breadcrumbs/breadcrumbs.tsx +0 -136
  30. package/src/core/components/breadcrumbs/index.ts +0 -1
  31. package/src/core/components/dialog/dialog.tsx +0 -433
  32. package/src/core/components/dialog/dialogContext.ts +0 -20
  33. package/src/core/components/dialog/dialogProvider.tsx +0 -35
  34. package/src/core/components/dialog/index.ts +0 -4
  35. package/src/core/components/dialog/styles.ts +0 -77
  36. package/src/core/components/dialog/useDialog.ts +0 -11
  37. package/src/core/components/hotkeys/hotkeys.test.tsx +0 -47
  38. package/src/core/components/hotkeys/hotkeys.tsx +0 -68
  39. package/src/core/components/hotkeys/index.ts +0 -1
  40. package/src/core/components/index.ts +0 -9
  41. package/src/core/components/menu/helpers.ts +0 -82
  42. package/src/core/components/menu/index.ts +0 -5
  43. package/src/core/components/menu/menu.spacing.test.tsx +0 -68
  44. package/src/core/components/menu/menu.test.tsx +0 -128
  45. package/src/core/components/menu/menu.tsx +0 -180
  46. package/src/core/components/menu/menuButton.tsx +0 -276
  47. package/src/core/components/menu/menuContext.ts +0 -18
  48. package/src/core/components/menu/menuDivider.ts +0 -24
  49. package/src/core/components/menu/menuGroup.spacing.test.tsx +0 -66
  50. package/src/core/components/menu/menuGroup.tsx +0 -237
  51. package/src/core/components/menu/menuItem.spacing.test.tsx +0 -62
  52. package/src/core/components/menu/menuItem.tsx +0 -201
  53. package/src/core/components/menu/useMenu.ts +0 -21
  54. package/src/core/components/menu/useMenuController.ts +0 -233
  55. package/src/core/components/skeleton/index.ts +0 -2
  56. package/src/core/components/skeleton/skeleton.tsx +0 -58
  57. package/src/core/components/skeleton/styles.ts +0 -50
  58. package/src/core/components/skeleton/textSkeleton.tsx +0 -122
  59. package/src/core/components/tab/index.ts +0 -3
  60. package/src/core/components/tab/tab.tsx +0 -102
  61. package/src/core/components/tab/tabList.test.tsx +0 -50
  62. package/src/core/components/tab/tabList.tsx +0 -71
  63. package/src/core/components/tab/tabPanel.tsx +0 -39
  64. package/src/core/components/toast/index.ts +0 -4
  65. package/src/core/components/toast/styles.ts +0 -77
  66. package/src/core/components/toast/toast.test.tsx +0 -106
  67. package/src/core/components/toast/toast.tsx +0 -199
  68. package/src/core/components/toast/toastContext.ts +0 -7
  69. package/src/core/components/toast/toastLayer.tsx +0 -52
  70. package/src/core/components/toast/toastProvider.tsx +0 -113
  71. package/src/core/components/toast/toastState.ts +0 -6
  72. package/src/core/components/toast/types.ts +0 -26
  73. package/src/core/components/toast/useToast.ts +0 -25
  74. package/src/core/components/tree/helpers.ts +0 -105
  75. package/src/core/components/tree/index.ts +0 -4
  76. package/src/core/components/tree/style.ts +0 -105
  77. package/src/core/components/tree/tree.test.tsx +0 -60
  78. package/src/core/components/tree/tree.tsx +0 -242
  79. package/src/core/components/tree/treeContext.ts +0 -10
  80. package/src/core/components/tree/treeGroup.tsx +0 -29
  81. package/src/core/components/tree/treeItem.test.tsx +0 -70
  82. package/src/core/components/tree/treeItem.tsx +0 -225
  83. package/src/core/components/tree/types.ts +0 -25
  84. package/src/core/components/tree/useTree.ts +0 -17
  85. package/src/core/constants.ts +0 -79
  86. package/src/core/helpers/animation.ts +0 -27
  87. package/src/core/helpers/element.ts +0 -55
  88. package/src/core/helpers/focus.ts +0 -100
  89. package/src/core/helpers/index.ts +0 -4
  90. package/src/core/helpers/scroll.ts +0 -15
  91. package/src/core/hooks/index.ts +0 -13
  92. package/src/core/hooks/useArrayProp.ts +0 -17
  93. package/src/core/hooks/useClickOutside.test.tsx +0 -510
  94. package/src/core/hooks/useClickOutside.ts +0 -118
  95. package/src/core/hooks/useClickOutsideEvent.test.tsx +0 -119
  96. package/src/core/hooks/useClickOutsideEvent.ts +0 -73
  97. package/src/core/hooks/useCustomValidity.ts +0 -13
  98. package/src/core/hooks/useDelayed.test.ts +0 -89
  99. package/src/core/hooks/useDelayedState.ts +0 -36
  100. package/src/core/hooks/useElementRect/index.ts +0 -1
  101. package/src/core/hooks/useElementRect/useElementRect.ts +0 -14
  102. package/src/core/hooks/useElementSize.ts +0 -19
  103. package/src/core/hooks/useForwardedRef.ts +0 -20
  104. package/src/core/hooks/useGlobalKeyDown.ts +0 -24
  105. package/src/core/hooks/useIsomorphicEffect.ts +0 -7
  106. package/src/core/hooks/useMatchMedia.ts +0 -28
  107. package/src/core/hooks/useMediaIndex/index.ts +0 -1
  108. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -37
  109. package/src/core/hooks/useMediaIndex/useMediaIndex.ts +0 -102
  110. package/src/core/hooks/useMounted.ts +0 -15
  111. package/src/core/hooks/usePrefersDark.hydration.test.tsx +0 -58
  112. package/src/core/hooks/usePrefersDark.test.tsx +0 -21
  113. package/src/core/hooks/usePrefersDark.ts +0 -16
  114. package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -58
  115. package/src/core/hooks/usePrefersReducedMotion.test.tsx +0 -21
  116. package/src/core/hooks/usePrefersReducedMotion.ts +0 -16
  117. package/src/core/index.ts +0 -10
  118. package/src/core/lib/createGlobalScopedContext.ts +0 -37
  119. package/src/core/lib/globalScope.ts +0 -20
  120. package/src/core/lib/isRecord.ts +0 -3
  121. package/src/core/middleware/origin.ts +0 -47
  122. package/src/core/observers/elementSizeObserver.ts +0 -117
  123. package/src/core/observers/index.ts +0 -2
  124. package/src/core/observers/resizeObserver.ts +0 -9
  125. package/src/core/primitives/_selectable/index.ts +0 -1
  126. package/src/core/primitives/_selectable/selectable.tsx +0 -15
  127. package/src/core/primitives/_selectable/style.ts +0 -115
  128. package/src/core/primitives/avatar/avatar.tsx +0 -200
  129. package/src/core/primitives/avatar/avatarCounter.tsx +0 -91
  130. package/src/core/primitives/avatar/avatarStack.tsx +0 -101
  131. package/src/core/primitives/avatar/index.ts +0 -4
  132. package/src/core/primitives/avatar/styles.ts +0 -167
  133. package/src/core/primitives/avatar/types.ts +0 -17
  134. package/src/core/primitives/badge/badge.test.tsx +0 -17
  135. package/src/core/primitives/badge/badge.tsx +0 -72
  136. package/src/core/primitives/badge/index.ts +0 -1
  137. package/src/core/primitives/badge/styles.ts +0 -20
  138. package/src/core/primitives/badge/types.ts +0 -8
  139. package/src/core/primitives/box/box.test.tsx +0 -155
  140. package/src/core/primitives/box/box.tsx +0 -162
  141. package/src/core/primitives/box/index.ts +0 -1
  142. package/src/core/primitives/button/button.test.tsx +0 -86
  143. package/src/core/primitives/button/button.tsx +0 -214
  144. package/src/core/primitives/button/index.ts +0 -1
  145. package/src/core/primitives/button/styles.ts +0 -118
  146. package/src/core/primitives/card/card.tsx +0 -125
  147. package/src/core/primitives/card/index.ts +0 -2
  148. package/src/core/primitives/card/styles.ts +0 -147
  149. package/src/core/primitives/card/types.ts +0 -12
  150. package/src/core/primitives/checkbox/checkbox.tsx +0 -73
  151. package/src/core/primitives/checkbox/index.ts +0 -1
  152. package/src/core/primitives/checkbox/styles.ts +0 -128
  153. package/src/core/primitives/code/code.tsx +0 -56
  154. package/src/core/primitives/code/index.ts +0 -1
  155. package/src/core/primitives/code/refractor.tsx +0 -22
  156. package/src/core/primitives/code/styles.ts +0 -77
  157. package/src/core/primitives/container/container.tsx +0 -55
  158. package/src/core/primitives/container/index.ts +0 -2
  159. package/src/core/primitives/container/styles.ts +0 -23
  160. package/src/core/primitives/container/types.ts +0 -6
  161. package/src/core/primitives/flex/flex.tsx +0 -63
  162. package/src/core/primitives/flex/index.ts +0 -1
  163. package/src/core/primitives/grid/grid.test.tsx +0 -86
  164. package/src/core/primitives/grid/grid.tsx +0 -77
  165. package/src/core/primitives/grid/index.ts +0 -1
  166. package/src/core/primitives/heading/heading.tsx +0 -89
  167. package/src/core/primitives/heading/index.ts +0 -1
  168. package/src/core/primitives/heading/styles.ts +0 -64
  169. package/src/core/primitives/heading/types.ts +0 -7
  170. package/src/core/primitives/index.ts +0 -27
  171. package/src/core/primitives/inline/index.ts +0 -1
  172. package/src/core/primitives/inline/inline.test.tsx +0 -55
  173. package/src/core/primitives/inline/inline.tsx +0 -66
  174. package/src/core/primitives/inline/styles.ts +0 -32
  175. package/src/core/primitives/inline/types.ts +0 -6
  176. package/src/core/primitives/kbd/index.ts +0 -1
  177. package/src/core/primitives/kbd/kbd.tsx +0 -73
  178. package/src/core/primitives/label/index.ts +0 -1
  179. package/src/core/primitives/label/label.tsx +0 -88
  180. package/src/core/primitives/label/styles.ts +0 -45
  181. package/src/core/primitives/popover/constants.ts +0 -22
  182. package/src/core/primitives/popover/floating-ui/size.ts +0 -99
  183. package/src/core/primitives/popover/helpers.ts +0 -31
  184. package/src/core/primitives/popover/index.ts +0 -2
  185. package/src/core/primitives/popover/popover.tsx +0 -512
  186. package/src/core/primitives/popover/popoverCard.tsx +0 -167
  187. package/src/core/primitives/popover/types.ts +0 -6
  188. package/src/core/primitives/radio/index.ts +0 -1
  189. package/src/core/primitives/radio/radio.tsx +0 -51
  190. package/src/core/primitives/radio/styles.ts +0 -117
  191. package/src/core/primitives/select/index.ts +0 -1
  192. package/src/core/primitives/select/select.test.tsx +0 -56
  193. package/src/core/primitives/select/select.tsx +0 -95
  194. package/src/core/primitives/select/styles.ts +0 -166
  195. package/src/core/primitives/spinner/index.ts +0 -1
  196. package/src/core/primitives/spinner/spinner.tsx +0 -46
  197. package/src/core/primitives/stack/index.ts +0 -1
  198. package/src/core/primitives/stack/stack.test.tsx +0 -61
  199. package/src/core/primitives/stack/stack.tsx +0 -59
  200. package/src/core/primitives/stack/styles.ts +0 -33
  201. package/src/core/primitives/switch/index.ts +0 -1
  202. package/src/core/primitives/switch/styles.ts +0 -173
  203. package/src/core/primitives/switch/switch.tsx +0 -68
  204. package/src/core/primitives/text/index.ts +0 -1
  205. package/src/core/primitives/text/styles.ts +0 -74
  206. package/src/core/primitives/text/text.tsx +0 -90
  207. package/src/core/primitives/textArea/index.ts +0 -1
  208. package/src/core/primitives/textArea/textArea.tsx +0 -120
  209. package/src/core/primitives/textInput/index.ts +0 -1
  210. package/src/core/primitives/textInput/textInput.test.tsx +0 -52
  211. package/src/core/primitives/textInput/textInput.tsx +0 -398
  212. package/src/core/primitives/tooltip/constants.ts +0 -23
  213. package/src/core/primitives/tooltip/index.ts +0 -2
  214. package/src/core/primitives/tooltip/tooltip.test.tsx +0 -485
  215. package/src/core/primitives/tooltip/tooltip.tsx +0 -497
  216. package/src/core/primitives/tooltip/tooltipCard.tsx +0 -110
  217. package/src/core/primitives/tooltip/tooltipDelayGroup/index.ts +0 -4
  218. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +0 -11
  219. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -57
  220. package/src/core/primitives/tooltip/tooltipDelayGroup/types.ts +0 -12
  221. package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -13
  222. package/src/core/primitives/types.ts +0 -179
  223. package/src/core/styles/border/borderStyle.ts +0 -56
  224. package/src/core/styles/border/index.ts +0 -2
  225. package/src/core/styles/border/types.ts +0 -10
  226. package/src/core/styles/box/boxStyle.ts +0 -69
  227. package/src/core/styles/box/index.ts +0 -2
  228. package/src/core/styles/box/types.ts +0 -11
  229. package/src/core/styles/card/_cardColorStyle.ts +0 -108
  230. package/src/core/styles/card/index.ts +0 -1
  231. package/src/core/styles/flex/flexItemStyle.ts +0 -27
  232. package/src/core/styles/flex/flexStyle.ts +0 -70
  233. package/src/core/styles/flex/index.ts +0 -3
  234. package/src/core/styles/flex/types.ts +0 -24
  235. package/src/core/styles/focusRing/index.ts +0 -25
  236. package/src/core/styles/font/codeFontStyle.ts +0 -13
  237. package/src/core/styles/font/headingFontStyle.ts +0 -13
  238. package/src/core/styles/font/index.ts +0 -6
  239. package/src/core/styles/font/labelFontStyle.ts +0 -13
  240. package/src/core/styles/font/responsiveFont.ts +0 -100
  241. package/src/core/styles/font/textAlignStyle.ts +0 -19
  242. package/src/core/styles/font/textFontStyle.ts +0 -13
  243. package/src/core/styles/font/types.ts +0 -33
  244. package/src/core/styles/grid/gridItemStyle.ts +0 -82
  245. package/src/core/styles/grid/gridStyle.ts +0 -109
  246. package/src/core/styles/grid/index.ts +0 -3
  247. package/src/core/styles/grid/types.ts +0 -37
  248. package/src/core/styles/helpers.ts +0 -72
  249. package/src/core/styles/index.ts +0 -5
  250. package/src/core/styles/input/index.ts +0 -2
  251. package/src/core/styles/input/responsiveInputPaddingStyle.ts +0 -78
  252. package/src/core/styles/input/textInputStyle.ts +0 -263
  253. package/src/core/styles/internal.ts +0 -12
  254. package/src/core/styles/margin/index.ts +0 -2
  255. package/src/core/styles/margin/marginStyle.ts +0 -22
  256. package/src/core/styles/margin/marginsStyle.test.ts +0 -34
  257. package/src/core/styles/margin/types.ts +0 -9
  258. package/src/core/styles/padding/index.ts +0 -2
  259. package/src/core/styles/padding/paddingStyle.test.ts +0 -34
  260. package/src/core/styles/padding/paddingStyle.ts +0 -22
  261. package/src/core/styles/padding/types.ts +0 -12
  262. package/src/core/styles/radius/index.ts +0 -2
  263. package/src/core/styles/radius/radiusStyle.ts +0 -23
  264. package/src/core/styles/radius/types.ts +0 -8
  265. package/src/core/styles/shadow/index.ts +0 -2
  266. package/src/core/styles/shadow/shadowStyle.ts +0 -29
  267. package/src/core/styles/shadow/types.ts +0 -6
  268. package/src/core/styles/types.ts +0 -8
  269. package/src/core/theme/index.ts +0 -5
  270. package/src/core/theme/theme.test.tsx +0 -77
  271. package/src/core/theme/themeColorProvider.tsx +0 -29
  272. package/src/core/theme/themeContext.ts +0 -10
  273. package/src/core/theme/themeProvider.tsx +0 -62
  274. package/src/core/theme/types.ts +0 -12
  275. package/src/core/theme/useRootTheme.ts +0 -18
  276. package/src/core/theme/useTheme.ts +0 -18
  277. package/src/core/types/avatar.ts +0 -14
  278. package/src/core/types/badge.ts +0 -12
  279. package/src/core/types/box.ts +0 -19
  280. package/src/core/types/button.ts +0 -21
  281. package/src/core/types/card.ts +0 -6
  282. package/src/core/types/component.ts +0 -32
  283. package/src/core/types/dialog.ts +0 -4
  284. package/src/core/types/flex.ts +0 -30
  285. package/src/core/types/grid.ts +0 -14
  286. package/src/core/types/gridItem.ts +0 -29
  287. package/src/core/types/index.ts +0 -15
  288. package/src/core/types/placement.ts +0 -18
  289. package/src/core/types/popover.ts +0 -4
  290. package/src/core/types/radius.ts +0 -4
  291. package/src/core/types/selectable.ts +0 -6
  292. package/src/core/types/text.ts +0 -4
  293. package/src/core/utils/arrow/arrow.tsx +0 -124
  294. package/src/core/utils/arrow/cmds.ts +0 -91
  295. package/src/core/utils/arrow/index.ts +0 -1
  296. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +0 -105
  297. package/src/core/utils/boundaryElement/boundaryElementContext.ts +0 -7
  298. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +0 -24
  299. package/src/core/utils/boundaryElement/index.ts +0 -3
  300. package/src/core/utils/boundaryElement/types.ts +0 -7
  301. package/src/core/utils/boundaryElement/useBoundaryElement.ts +0 -26
  302. package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +0 -22
  303. package/src/core/utils/conditionalWrapper/index.ts +0 -1
  304. package/src/core/utils/elementQuery/elementQuery.tsx +0 -53
  305. package/src/core/utils/elementQuery/helpers.ts +0 -27
  306. package/src/core/utils/elementQuery/index.ts +0 -1
  307. package/src/core/utils/errorBoundary.tsx +0 -48
  308. package/src/core/utils/getElementRef.ts +0 -31
  309. package/src/core/utils/index.ts +0 -9
  310. package/src/core/utils/layer/getLayerContext.test.ts +0 -32
  311. package/src/core/utils/layer/getLayerContext.ts +0 -21
  312. package/src/core/utils/layer/index.ts +0 -4
  313. package/src/core/utils/layer/layer.test.tsx +0 -113
  314. package/src/core/utils/layer/layer.tsx +0 -99
  315. package/src/core/utils/layer/layerContext.ts +0 -7
  316. package/src/core/utils/layer/layerProvider.tsx +0 -111
  317. package/src/core/utils/layer/types.ts +0 -9
  318. package/src/core/utils/layer/useLayer.ts +0 -28
  319. package/src/core/utils/portal/index.ts +0 -4
  320. package/src/core/utils/portal/portal.test.tsx +0 -108
  321. package/src/core/utils/portal/portal.ts +0 -32
  322. package/src/core/utils/portal/portalContext.ts +0 -31
  323. package/src/core/utils/portal/portalProvider.tsx +0 -48
  324. package/src/core/utils/portal/types.ts +0 -9
  325. package/src/core/utils/portal/usePortal.ts +0 -25
  326. package/src/core/utils/spanWithTextOverflow.tsx +0 -10
  327. package/src/core/utils/srOnly/index.ts +0 -1
  328. package/src/core/utils/srOnly/srOnly.tsx +0 -36
  329. package/src/core/utils/virtualList/index.ts +0 -1
  330. package/src/core/utils/virtualList/virtualList.tsx +0 -201
  331. package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +0 -86
  332. package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +0 -58
  333. package/src/theme/build/_deprecated/color/button/createButtonModes.ts +0 -27
  334. package/src/theme/build/_deprecated/color/button/createButtonTones.ts +0 -60
  335. package/src/theme/build/_deprecated/color/card/createCardStates.ts +0 -66
  336. package/src/theme/build/_deprecated/color/color.test.ts +0 -67
  337. package/src/theme/build/_deprecated/color/defaults.ts +0 -391
  338. package/src/theme/build/_deprecated/color/factory.ts +0 -178
  339. package/src/theme/build/_deprecated/color/index.ts +0 -1
  340. package/src/theme/build/_deprecated/color/input/createInputModes.ts +0 -86
  341. package/src/theme/build/_deprecated/color/muted/createMuted.ts +0 -58
  342. package/src/theme/build/_deprecated/color/spot/createSpot.ts +0 -23
  343. package/src/theme/build/buildColorTheme.test.ts +0 -185
  344. package/src/theme/build/buildColorTheme.ts +0 -507
  345. package/src/theme/build/buildTheme.test.ts +0 -89
  346. package/src/theme/build/buildTheme.ts +0 -36
  347. package/src/theme/build/colorToken/colorToken.ts +0 -19
  348. package/src/theme/build/colorToken/compileColorToken.ts +0 -21
  349. package/src/theme/build/colorToken/index.ts +0 -2
  350. package/src/theme/build/colorToken/types.ts +0 -6
  351. package/src/theme/build/index.ts +0 -3
  352. package/src/theme/build/lib/color-fns/blend/index.ts +0 -3
  353. package/src/theme/build/lib/color-fns/blend/mix.ts +0 -21
  354. package/src/theme/build/lib/color-fns/blend/multiply.ts +0 -18
  355. package/src/theme/build/lib/color-fns/blend/screen.ts +0 -18
  356. package/src/theme/build/lib/color-fns/color-fns.test.ts +0 -70
  357. package/src/theme/build/lib/color-fns/contrastRatio.ts +0 -31
  358. package/src/theme/build/lib/color-fns/convert.ts +0 -150
  359. package/src/theme/build/lib/color-fns/index.ts +0 -6
  360. package/src/theme/build/lib/color-fns/parse.ts +0 -60
  361. package/src/theme/build/lib/color-fns/rgba.ts +0 -10
  362. package/src/theme/build/lib/color-fns/types.ts +0 -28
  363. package/src/theme/build/lib/isRecord.ts +0 -3
  364. package/src/theme/build/lib/lazy.ts +0 -30
  365. package/src/theme/build/lib/utils.ts +0 -19
  366. package/src/theme/build/merge.ts +0 -31
  367. package/src/theme/build/mixThemeColor.test.ts +0 -23
  368. package/src/theme/build/mixThemeColor.ts +0 -53
  369. package/src/theme/build/renderColorTheme.ts +0 -538
  370. package/src/theme/build/renderColorValue.ts +0 -83
  371. package/src/theme/build/resolveColorTokens.ts +0 -274
  372. package/src/theme/build/theme.test.ts +0 -29
  373. package/src/theme/config/helpers.ts +0 -60
  374. package/src/theme/config/index.ts +0 -4
  375. package/src/theme/config/system.ts +0 -117
  376. package/src/theme/config/tokens/color/index.ts +0 -1
  377. package/src/theme/config/tokens/color/types.ts +0 -135
  378. package/src/theme/config/tokens/index.ts +0 -4
  379. package/src/theme/config/tokens/parseTokenKey.test.ts +0 -66
  380. package/src/theme/config/tokens/parseTokenKey.ts +0 -67
  381. package/src/theme/config/tokens/parseTokenValue.test.ts +0 -44
  382. package/src/theme/config/tokens/parseTokenValue.ts +0 -134
  383. package/src/theme/config/tokens/types.ts +0 -53
  384. package/src/theme/config/types.ts +0 -46
  385. package/src/theme/defaults/colorPalette.ts +0 -5
  386. package/src/theme/defaults/colorTokens.ts +0 -648
  387. package/src/theme/defaults/config.ts +0 -84
  388. package/src/theme/defaults/fonts.ts +0 -227
  389. package/src/theme/getScopedTheme.ts +0 -103
  390. package/src/theme/index.ts +0 -5
  391. package/src/theme/system/avatar.ts +0 -14
  392. package/src/theme/system/color/_constants.ts +0 -45
  393. package/src/theme/system/color/_helpers.ts +0 -28
  394. package/src/theme/system/color/_system.ts +0 -40
  395. package/src/theme/system/color/avatar.ts +0 -15
  396. package/src/theme/system/color/badge.ts +0 -16
  397. package/src/theme/system/color/button.ts +0 -17
  398. package/src/theme/system/color/color.ts +0 -34
  399. package/src/theme/system/color/index.ts +0 -13
  400. package/src/theme/system/color/input.ts +0 -25
  401. package/src/theme/system/color/kbd.ts +0 -8
  402. package/src/theme/system/color/selectable.ts +0 -12
  403. package/src/theme/system/color/shadow.ts +0 -7
  404. package/src/theme/system/color/state.ts +0 -43
  405. package/src/theme/system/color/syntax.ts +0 -41
  406. package/src/theme/system/css.ts +0 -14
  407. package/src/theme/system/focusRing.ts +0 -7
  408. package/src/theme/system/font.ts +0 -52
  409. package/src/theme/system/index.ts +0 -11
  410. package/src/theme/system/input.ts +0 -33
  411. package/src/theme/system/layer.ts +0 -8
  412. package/src/theme/system/shadow.ts +0 -19
  413. package/src/theme/system/styles.ts +0 -13
  414. package/src/theme/system/theme.ts +0 -142
  415. package/src/theme/system/v0/avatar.ts +0 -10
  416. package/src/theme/system/v0/color/_generic.ts +0 -35
  417. package/src/theme/system/v0/color/_system.ts +0 -18
  418. package/src/theme/system/v0/color/base.ts +0 -21
  419. package/src/theme/system/v0/color/button.ts +0 -56
  420. package/src/theme/system/v0/color/card.ts +0 -25
  421. package/src/theme/system/v0/color/color.ts +0 -51
  422. package/src/theme/system/v0/color/index.ts +0 -11
  423. package/src/theme/system/v0/color/input.ts +0 -40
  424. package/src/theme/system/v0/color/muted.ts +0 -37
  425. package/src/theme/system/v0/color/selectable.ts +0 -42
  426. package/src/theme/system/v0/color/solid.ts +0 -37
  427. package/src/theme/system/v0/color/spot.ts +0 -14
  428. package/src/theme/system/v0/index.ts +0 -3
  429. package/src/theme/system/v0/input.ts +0 -23
  430. package/src/theme/versioning/getTheme_v2.ts +0 -72
  431. package/src/theme/versioning/index.ts +0 -5
  432. package/src/theme/versioning/is_v0.ts +0 -6
  433. package/src/theme/versioning/is_v2.ts +0 -6
  434. package/src/theme/versioning/themeColor_v0_v2.ts +0 -250
  435. package/src/theme/versioning/themeColor_v2_v2_9.ts +0 -50
  436. package/src/theme/versioning/v0_v2.ts +0 -106
  437. package/src/theme/versioning/v2_v0.ts +0 -153
@@ -1,538 +0,0 @@
1
- import {COLOR_HUES} from '@sanity/color'
2
-
3
- import {ThemeColorPalette, ThemeConfig} from '../config'
4
- import {defaultColorPalette} from '../defaults/colorPalette'
5
- import {
6
- THEME_COLOR_CARD_TONES,
7
- THEME_COLOR_STATE_TONES,
8
- ThemeColorAvatar_v2,
9
- ThemeColorBadge_v2,
10
- ThemeColorBadgeTone_v2,
11
- ThemeColorBlendModeKey,
12
- ThemeColorButton_v2,
13
- ThemeColorButtonMode_v2,
14
- ThemeColorButtonTone_v2,
15
- ThemeColorCard_v2,
16
- ThemeColorInput_v2,
17
- ThemeColorInputMode_v2,
18
- ThemeColorInputState_v2,
19
- ThemeColorKBD,
20
- ThemeColorScheme_v2,
21
- ThemeColorSchemes_v2,
22
- ThemeColorSelectable_v2,
23
- ThemeColorSelectableTone_v2,
24
- ThemeColorShadow,
25
- ThemeColorState_v2,
26
- ThemeColorSyntax,
27
- } from '../system'
28
- import {defineLazyProperty} from './lib/lazy'
29
- import {renderColorValue, RenderColorValueOptions} from './renderColorValue'
30
-
31
- export function renderThemeColorSchemes(
32
- value: ThemeColorSchemes_v2,
33
- config?: ThemeConfig,
34
- ): ThemeColorSchemes_v2 {
35
- const colorPalette = config?.palette ?? defaultColorPalette
36
-
37
- // Lazy schemes — each scheme is only rendered when first accessed
38
- // oxlint-disable-next-line no-unsafe-type-assertion
39
- const schemes = {} as ThemeColorSchemes_v2
40
- defineLazyProperty(schemes, 'light', () => renderThemeColorScheme(colorPalette, value.light))
41
- defineLazyProperty(schemes, 'dark', () => renderThemeColorScheme(colorPalette, value.dark))
42
-
43
- return schemes
44
- }
45
-
46
- function renderThemeColorScheme(
47
- colorPalette: ThemeColorPalette,
48
- value: ThemeColorScheme_v2,
49
- ): ThemeColorScheme_v2 {
50
- // The `default` tone must be rendered eagerly — other tones depend on its `bg`.
51
- const renderedDefaultTone = renderThemeColor(value.default, {colorPalette})
52
-
53
- const bg = renderedDefaultTone.bg
54
-
55
- if (bg === 'white') {
56
- throw new Error('Cannot blend with white background')
57
- }
58
-
59
- // All other tones are lazy. `transparent` and `default` are rendered without
60
- // a `bg` option; the rest blend on top of `default`'s `bg`.
61
- // We iterate THEME_COLOR_CARD_TONES (not Object.entries) to avoid
62
- // force-evaluating lazy getters from the build phase.
63
- // oxlint-disable-next-line no-unsafe-type-assertion
64
- const scheme = {default: renderedDefaultTone} as ThemeColorScheme_v2
65
-
66
- for (const tone of THEME_COLOR_CARD_TONES) {
67
- if (tone === 'default') continue
68
- const opts = tone === 'transparent' ? {colorPalette} : {bg, colorPalette}
69
- defineLazyProperty(scheme, tone, () => renderThemeColor(value[tone], opts))
70
- }
71
-
72
- return scheme
73
- }
74
-
75
- function renderThemeColor(
76
- value: ThemeColorCard_v2,
77
- options: {
78
- bg?: string
79
- colorPalette: ThemeColorPalette
80
- },
81
- ): ThemeColorCard_v2 {
82
- const {colorPalette, bg} = options
83
- const blendMode = value._blend || 'multiply'
84
- const baseBg = renderColorValue(value.bg, {colorPalette, bg, blendMode})
85
- const colorOptions: RenderColorValueOptions = {colorPalette, bg: baseBg, blendMode}
86
-
87
- const button = renderThemeColorButton(value.button, {
88
- baseBg,
89
- blendMode,
90
- colorPalette,
91
- })
92
-
93
- const selectable = renderThemeColorSelectable(value.selectable, {
94
- colorPalette,
95
- baseBg,
96
- blendMode,
97
- })
98
-
99
- const shadow: ThemeColorShadow = {
100
- outline: renderColorValue(value.shadow.outline, colorOptions),
101
- umbra: renderColorValue(value.shadow.umbra, {
102
- ...colorOptions,
103
- bg: undefined,
104
- colorPalette: {...colorPalette, black: '#000000'},
105
- }),
106
- penumbra: renderColorValue(value.shadow.penumbra, {
107
- ...colorOptions,
108
- bg: undefined,
109
- colorPalette: {...colorPalette, black: '#000000'},
110
- }),
111
- ambient: renderColorValue(value.shadow.ambient, {
112
- ...colorOptions,
113
- bg: undefined,
114
- colorPalette: {...colorPalette, black: '#000000'},
115
- }),
116
- }
117
-
118
- return {
119
- _blend: blendMode,
120
- _dark: value._dark,
121
- accent: {
122
- fg: renderColorValue(value.accent.fg, colorOptions),
123
- },
124
- avatar: renderThemeColorAvatar(value.avatar, {baseBg, colorPalette, blendMode}),
125
- backdrop: renderColorValue(value.backdrop, colorOptions),
126
- badge: renderThemeColorBadge(value.badge, {baseBg, colorPalette, blendMode}),
127
- bg: baseBg,
128
- border: renderColorValue(value.border, colorOptions),
129
- button,
130
- code: {
131
- bg: renderColorValue(value.code.bg, colorOptions),
132
- fg: renderColorValue(value.code.fg, colorOptions),
133
- },
134
- fg: renderColorValue(value.fg, colorOptions),
135
- focusRing: renderColorValue(value.focusRing, colorOptions),
136
- icon: renderColorValue(value.icon, colorOptions),
137
- input: renderThemeColorInput(value.input, {baseBg, colorPalette, blendMode}),
138
- kbd: renderThemeColorKBD(value.kbd, {baseBg, colorPalette, blendMode}),
139
- link: {
140
- fg: renderColorValue(value.link.fg, colorOptions),
141
- },
142
- muted: {
143
- bg: renderColorValue(value.muted.bg, colorOptions),
144
- fg: renderColorValue(value.muted.fg, colorOptions),
145
- },
146
- shadow,
147
- skeleton: {
148
- from: renderColorValue(value.skeleton.from, colorOptions),
149
- to: renderColorValue(value.skeleton.to, colorOptions),
150
- },
151
- syntax: renderSyntaxColorTheme(value.syntax, {baseBg, colorPalette, blendMode}),
152
- selectable,
153
- }
154
- }
155
-
156
- function renderThemeColorKBD(
157
- value: ThemeColorKBD,
158
- options: {
159
- baseBg: string
160
- blendMode: ThemeColorBlendModeKey
161
- colorPalette: ThemeColorPalette
162
- },
163
- ): ThemeColorKBD {
164
- const {baseBg, blendMode, colorPalette} = options
165
-
166
- const rootOptions: RenderColorValueOptions = {
167
- bg: baseBg,
168
- blendMode,
169
- colorPalette,
170
- }
171
-
172
- const bg = renderColorValue(value.bg, rootOptions)
173
-
174
- const colorOptions: RenderColorValueOptions = {
175
- bg,
176
- blendMode,
177
- colorPalette,
178
- }
179
-
180
- return {
181
- bg,
182
- fg: renderColorValue(value.fg, colorOptions),
183
- border: renderColorValue(value.border, colorOptions),
184
- }
185
- }
186
-
187
- function renderThemeColorAvatar(
188
- value: ThemeColorAvatar_v2,
189
- options: {
190
- baseBg: string
191
- blendMode: ThemeColorBlendModeKey
192
- colorPalette: ThemeColorPalette
193
- },
194
- ): ThemeColorAvatar_v2 {
195
- // oxlint-disable-next-line no-unsafe-type-assertion
196
- const colorAvatar = {} as ThemeColorAvatar_v2
197
-
198
- for (const hue of COLOR_HUES) {
199
- colorAvatar[hue] = renderThemeColorAvatarColor(value[hue], options)
200
- }
201
-
202
- return colorAvatar
203
- }
204
-
205
- function renderThemeColorAvatarColor(
206
- value: ThemeColorAvatar_v2['gray'],
207
- options: {
208
- baseBg: string
209
- blendMode: ThemeColorBlendModeKey
210
- colorPalette: ThemeColorPalette
211
- },
212
- ): ThemeColorAvatar_v2['gray'] {
213
- const {baseBg, blendMode: rootBlendMode, colorPalette} = options
214
- const blendMode = value._blend || 'multiply'
215
-
216
- const rootOptions: RenderColorValueOptions = {
217
- bg: baseBg,
218
- blendMode: rootBlendMode,
219
- colorPalette,
220
- }
221
-
222
- const bg = renderColorValue(value.bg, rootOptions)
223
-
224
- const colorOptions: RenderColorValueOptions = {
225
- bg,
226
- blendMode,
227
- colorPalette,
228
- }
229
-
230
- return {
231
- _blend: blendMode,
232
- bg,
233
- fg: renderColorValue(value.fg, colorOptions),
234
- }
235
- }
236
-
237
- function renderThemeColorBadge(
238
- value: ThemeColorBadge_v2,
239
- options: {
240
- baseBg: string
241
- blendMode: ThemeColorBlendModeKey
242
- colorPalette: ThemeColorPalette
243
- },
244
- ): ThemeColorBadge_v2 {
245
- // oxlint-disable-next-line no-unsafe-type-assertion
246
- const colorBadge = {} as ThemeColorBadge_v2
247
-
248
- for (const tone of THEME_COLOR_STATE_TONES) {
249
- colorBadge[tone] = renderThemeColorBadgeColor(value[tone], options)
250
- }
251
-
252
- return colorBadge
253
- }
254
-
255
- function renderThemeColorBadgeColor(
256
- value: ThemeColorBadgeTone_v2,
257
- options: {
258
- baseBg: string
259
- blendMode: ThemeColorBlendModeKey
260
- colorPalette: ThemeColorPalette
261
- },
262
- ): ThemeColorBadgeTone_v2 {
263
- const {baseBg, blendMode: rootBlendMode, colorPalette} = options
264
-
265
- const blendMode = rootBlendMode
266
-
267
- const rootOptions: RenderColorValueOptions = {
268
- bg: baseBg,
269
- blendMode: rootBlendMode,
270
- colorPalette,
271
- }
272
-
273
- const bg = renderColorValue(value.bg, rootOptions)
274
-
275
- const colorOptions: RenderColorValueOptions = {
276
- bg,
277
- blendMode,
278
- colorPalette,
279
- }
280
-
281
- return {
282
- bg,
283
- dot: renderColorValue(value.dot, colorOptions),
284
- fg: renderColorValue(value.fg, colorOptions),
285
- icon: renderColorValue(value.icon, colorOptions),
286
- }
287
- }
288
-
289
- function renderThemeColorButton(
290
- value: ThemeColorButton_v2,
291
- options: {
292
- baseBg: string
293
- blendMode: ThemeColorBlendModeKey
294
- colorPalette: ThemeColorPalette
295
- },
296
- ): ThemeColorButton_v2 {
297
- return {
298
- default: renderThemeColorButtonTones(value.default, options),
299
- ghost: renderThemeColorButtonTones(value.ghost, options),
300
- bleed: renderThemeColorButtonTones(value.bleed, options),
301
- }
302
- }
303
-
304
- function renderThemeColorButtonTones(
305
- value: ThemeColorButtonMode_v2,
306
- options: {
307
- baseBg: string
308
- blendMode: ThemeColorBlendModeKey
309
- colorPalette: ThemeColorPalette
310
- },
311
- ): ThemeColorButtonMode_v2 {
312
- // oxlint-disable-next-line no-unsafe-type-assertion
313
- const colorButtonMode = {} as ThemeColorButtonMode_v2
314
-
315
- for (const tone of THEME_COLOR_STATE_TONES) {
316
- colorButtonMode[tone] = renderThemeColorButtonStates(value[tone], options)
317
- }
318
-
319
- return colorButtonMode
320
- }
321
-
322
- function renderThemeColorButtonStates(
323
- value: ThemeColorButtonTone_v2,
324
- options: {
325
- baseBg: string
326
- blendMode: ThemeColorBlendModeKey
327
- colorPalette: ThemeColorPalette
328
- },
329
- ): ThemeColorButtonTone_v2 {
330
- return {
331
- enabled: renderThemeColorState(value.enabled, options),
332
- hovered: renderThemeColorState(value.hovered, options),
333
- pressed: renderThemeColorState(value.pressed, options),
334
- selected: renderThemeColorState(value.selected, options),
335
- disabled: renderThemeColorState(value.disabled, options),
336
- }
337
- }
338
-
339
- function renderThemeColorState(
340
- value: ThemeColorState_v2,
341
- options: {
342
- baseBg: string
343
- blendMode: ThemeColorBlendModeKey
344
- colorPalette: ThemeColorPalette
345
- },
346
- ): ThemeColorState_v2 {
347
- const {baseBg, blendMode: rootBlendMode, colorPalette} = options
348
- const blendMode = value._blend || 'multiply'
349
-
350
- const rootOptions: RenderColorValueOptions = {
351
- bg: baseBg,
352
- blendMode: rootBlendMode,
353
- colorPalette,
354
- }
355
-
356
- const bg = renderColorValue(value.bg, rootOptions)
357
-
358
- const colorOptions: RenderColorValueOptions = {
359
- bg,
360
- blendMode,
361
- colorPalette,
362
- }
363
-
364
- return {
365
- _blend: blendMode,
366
- accent: {
367
- fg: renderColorValue(value.accent.fg, colorOptions),
368
- },
369
- avatar: renderThemeColorAvatar(value.avatar, {baseBg: bg, colorPalette, blendMode}),
370
- badge: renderThemeColorBadge(value.badge, {baseBg: bg, colorPalette, blendMode}),
371
- bg,
372
- border: renderColorValue(value.border, colorOptions),
373
- code: {
374
- bg: renderColorValue(value.code.bg, colorOptions),
375
- fg: renderColorValue(value.code.fg, colorOptions),
376
- },
377
- fg: renderColorValue(value.fg, colorOptions),
378
- icon: renderColorValue(value.icon, colorOptions),
379
- link: {
380
- fg: renderColorValue(value.link.fg, colorOptions),
381
- },
382
- muted: {
383
- bg: renderColorValue(value.muted.bg, colorOptions),
384
- fg: renderColorValue(value.muted.fg, colorOptions),
385
- },
386
- kbd: {
387
- bg: renderColorValue(value.kbd.bg, colorOptions),
388
- fg: renderColorValue(value.kbd.fg, colorOptions),
389
- border: renderColorValue(value.kbd.border, colorOptions),
390
- },
391
- skeleton: {
392
- from: renderColorValue(value.skeleton?.from, colorOptions),
393
- to: renderColorValue(value.skeleton?.to, colorOptions),
394
- },
395
- }
396
- }
397
-
398
- function renderThemeColorInput(
399
- value: ThemeColorInput_v2,
400
- options: {
401
- baseBg: string
402
- blendMode: ThemeColorBlendModeKey
403
- colorPalette: ThemeColorPalette
404
- },
405
- ): ThemeColorInput_v2 {
406
- return {
407
- default: renderInputStatesColorTheme(value.default, options),
408
- invalid: renderInputStatesColorTheme(value.invalid, options),
409
- }
410
- }
411
-
412
- function renderInputStatesColorTheme(
413
- value: ThemeColorInputMode_v2,
414
- options: {
415
- baseBg: string
416
- blendMode: ThemeColorBlendModeKey
417
- colorPalette: ThemeColorPalette
418
- },
419
- ): ThemeColorInputMode_v2 {
420
- return {
421
- enabled: renderInputStateColorTheme(value.enabled, options),
422
- hovered: renderInputStateColorTheme(value.hovered, options),
423
- readOnly: renderInputStateColorTheme(value.readOnly, options),
424
- disabled: renderInputStateColorTheme(value.disabled, options),
425
- }
426
- }
427
-
428
- function renderInputStateColorTheme(
429
- value: ThemeColorInputState_v2,
430
- options: {
431
- baseBg: string
432
- blendMode: ThemeColorBlendModeKey
433
- colorPalette: ThemeColorPalette
434
- },
435
- ): ThemeColorInputState_v2 {
436
- const {baseBg, blendMode: rootBlendMode, colorPalette} = options
437
- const blendMode = value._blend || 'multiply'
438
- const rootOptions: RenderColorValueOptions = {colorPalette, bg: baseBg, blendMode: rootBlendMode}
439
- const bg = renderColorValue(value.bg, rootOptions)
440
- const colorOptions: RenderColorValueOptions = {colorPalette, bg, blendMode}
441
-
442
- return {
443
- _blend: blendMode,
444
- bg,
445
- border: renderColorValue(value.border, colorOptions),
446
- fg: renderColorValue(value.fg, colorOptions),
447
- muted: {
448
- bg: renderColorValue(value.muted.bg, colorOptions),
449
- },
450
- placeholder: renderColorValue(value.placeholder, colorOptions),
451
- }
452
- }
453
-
454
- function renderThemeColorSelectable(
455
- value: ThemeColorSelectable_v2,
456
- options: {
457
- baseBg: string
458
- blendMode: ThemeColorBlendModeKey
459
- colorPalette: ThemeColorPalette
460
- },
461
- ): ThemeColorSelectable_v2 {
462
- // oxlint-disable-next-line no-unsafe-type-assertion
463
- const colorSelectable = {} as ThemeColorSelectable_v2
464
-
465
- for (const tone of THEME_COLOR_STATE_TONES) {
466
- colorSelectable[tone] = renderThemeColorSelectableStates(value[tone], options)
467
- }
468
-
469
- return colorSelectable
470
- }
471
-
472
- function renderThemeColorSelectableStates(
473
- value: ThemeColorSelectableTone_v2,
474
- options: {
475
- baseBg: string
476
- blendMode: ThemeColorBlendModeKey
477
- colorPalette: ThemeColorPalette
478
- },
479
- ): ThemeColorSelectableTone_v2 {
480
- return {
481
- enabled: renderThemeColorState(value.enabled, options),
482
- hovered: renderThemeColorState(value.hovered, options),
483
- pressed: renderThemeColorState(value.pressed, options),
484
- selected: renderThemeColorState(value.selected, options),
485
- disabled: renderThemeColorState(value.disabled, options),
486
- }
487
- }
488
-
489
- function renderSyntaxColorTheme(
490
- value: ThemeColorSyntax,
491
- options: {
492
- baseBg: string
493
- blendMode: ThemeColorBlendModeKey
494
- colorPalette: ThemeColorPalette
495
- },
496
- ): ThemeColorSyntax {
497
- const {colorPalette, baseBg, blendMode} = options
498
- const colorOptions: RenderColorValueOptions = {colorPalette, bg: baseBg, blendMode}
499
-
500
- return {
501
- atrule: renderColorValue(value.atrule, colorOptions),
502
- attrName: renderColorValue(value.attrName, colorOptions),
503
- attrValue: renderColorValue(value.attrValue, colorOptions),
504
- attribute: renderColorValue(value.attribute, colorOptions),
505
- boolean: renderColorValue(value.boolean, colorOptions),
506
- builtin: renderColorValue(value.builtin, colorOptions),
507
- cdata: renderColorValue(value.cdata, colorOptions),
508
- char: renderColorValue(value.char, colorOptions),
509
- class: renderColorValue(value.class, colorOptions),
510
- className: renderColorValue(value.className, colorOptions),
511
- comment: renderColorValue(value.comment, colorOptions),
512
- constant: renderColorValue(value.constant, colorOptions),
513
- deleted: renderColorValue(value.deleted, colorOptions),
514
- doctype: renderColorValue(value.doctype, colorOptions),
515
- entity: renderColorValue(value.entity, colorOptions),
516
- function: renderColorValue(value.function, colorOptions),
517
- hexcode: renderColorValue(value.hexcode, colorOptions),
518
- id: renderColorValue(value.id, colorOptions),
519
- important: renderColorValue(value.important, colorOptions),
520
- inserted: renderColorValue(value.inserted, colorOptions),
521
- keyword: renderColorValue(value.keyword, colorOptions),
522
- number: renderColorValue(value.number, colorOptions),
523
- operator: renderColorValue(value.operator, colorOptions),
524
- prolog: renderColorValue(value.prolog, colorOptions),
525
- property: renderColorValue(value.property, colorOptions),
526
- pseudoClass: renderColorValue(value.pseudoClass, colorOptions),
527
- pseudoElement: renderColorValue(value.pseudoElement, colorOptions),
528
- punctuation: renderColorValue(value.punctuation, colorOptions),
529
- regex: renderColorValue(value.regex, colorOptions),
530
- selector: renderColorValue(value.selector, colorOptions),
531
- string: renderColorValue(value.string, colorOptions),
532
- symbol: renderColorValue(value.symbol, colorOptions),
533
- tag: renderColorValue(value.tag, colorOptions),
534
- unit: renderColorValue(value.unit, colorOptions),
535
- url: renderColorValue(value.url, colorOptions),
536
- variable: renderColorValue(value.variable, colorOptions),
537
- }
538
- }
@@ -1,83 +0,0 @@
1
- import {ColorTint as ColorPaletteValue} from '@sanity/color'
2
-
3
- import {parseTokenValue, ThemeColorPalette} from '../config'
4
- import {ThemeColorBlendModeKey} from '../system'
5
- import {hexToRgb, mix, rgba, rgbToHex} from './lib/color-fns'
6
- import {mixThemeColor} from './mixThemeColor'
7
-
8
- export interface RenderColorValueOptions {
9
- bg?: string
10
- blendMode: ThemeColorBlendModeKey
11
- colorPalette: ThemeColorPalette
12
- }
13
-
14
- export function renderColorValue(str: string, options: RenderColorValueOptions): string {
15
- const {bg, blendMode, colorPalette} = options
16
-
17
- if (bg === 'white') {
18
- throw new Error('Cannot blend with white background')
19
- }
20
-
21
- const node = parseTokenValue(str)
22
-
23
- if (!node || node.type !== 'color') {
24
- throw new Error(`Invalid color token value: ${str}`)
25
- }
26
-
27
- let hex = ''
28
-
29
- if (node.key === 'black') {
30
- hex = renderColorHex(colorPalette.black)
31
- }
32
-
33
- if (node.key === 'white') {
34
- hex = renderColorHex(colorPalette.white)
35
- }
36
-
37
- if (node.hue && node.tint) {
38
- hex = renderColorHex(colorPalette[node.hue][node.tint])
39
- }
40
-
41
- if (!hex) {
42
- throw new Error(`Invalid color token value: ${str}`)
43
- }
44
-
45
- const hexBeforeMix = hex
46
-
47
- const mixOptions = {
48
- blendMode,
49
- bg,
50
- black: renderColorHex(colorPalette.black),
51
- // opacity: node.opacity,
52
- white: renderColorHex(colorPalette.white),
53
- }
54
-
55
- try {
56
- hex = mixThemeColor(hex, mixOptions)
57
-
58
- if (bg && node.mix !== undefined) {
59
- const from = hexToRgb(bg)
60
- const to = hexToRgb(hex)
61
-
62
- hex = rgbToHex(mix(from, to, node.mix))
63
- }
64
- } catch (err) {
65
- console.warn('could not blend', hex, mixOptions)
66
- throw err
67
- }
68
-
69
- if (hex === '#aN') {
70
- console.warn(`invalid color token value: ${str}`)
71
- hex = hexBeforeMix
72
- }
73
-
74
- if (node.opacity !== undefined) {
75
- hex = rgba(hex, node.opacity)
76
- }
77
-
78
- return hex
79
- }
80
-
81
- function renderColorHex(color: string | ColorPaletteValue) {
82
- return typeof color === 'string' ? color : color.hex
83
- }