@sanity/ui 3.3.2 → 3.3.3

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 (423) hide show
  1. package/package.json +6 -11
  2. package/exports/_visual-editing.ts +0 -32
  3. package/exports/index.ts +0 -1
  4. package/exports/theme.ts +0 -1
  5. package/src/core/_compat.ts +0 -294
  6. package/src/core/components/autocomplete/autocomplete.styles.tsx +0 -39
  7. package/src/core/components/autocomplete/autocomplete.tsx +0 -775
  8. package/src/core/components/autocomplete/autocompleteOption.tsx +0 -46
  9. package/src/core/components/autocomplete/autocompleteReducer.ts +0 -47
  10. package/src/core/components/autocomplete/constants.ts +0 -28
  11. package/src/core/components/autocomplete/index.ts +0 -2
  12. package/src/core/components/autocomplete/types.ts +0 -108
  13. package/src/core/components/breadcrumbs/breadcrumbs.styles.ts +0 -18
  14. package/src/core/components/breadcrumbs/breadcrumbs.test.tsx +0 -54
  15. package/src/core/components/breadcrumbs/breadcrumbs.tsx +0 -136
  16. package/src/core/components/breadcrumbs/index.ts +0 -1
  17. package/src/core/components/dialog/dialog.tsx +0 -433
  18. package/src/core/components/dialog/dialogContext.ts +0 -20
  19. package/src/core/components/dialog/dialogProvider.tsx +0 -35
  20. package/src/core/components/dialog/index.ts +0 -4
  21. package/src/core/components/dialog/styles.ts +0 -77
  22. package/src/core/components/dialog/useDialog.ts +0 -11
  23. package/src/core/components/hotkeys/hotkeys.test.tsx +0 -47
  24. package/src/core/components/hotkeys/hotkeys.tsx +0 -68
  25. package/src/core/components/hotkeys/index.ts +0 -1
  26. package/src/core/components/index.ts +0 -9
  27. package/src/core/components/menu/helpers.ts +0 -82
  28. package/src/core/components/menu/index.ts +0 -5
  29. package/src/core/components/menu/menu.spacing.test.tsx +0 -68
  30. package/src/core/components/menu/menu.test.tsx +0 -128
  31. package/src/core/components/menu/menu.tsx +0 -180
  32. package/src/core/components/menu/menuButton.tsx +0 -276
  33. package/src/core/components/menu/menuContext.ts +0 -18
  34. package/src/core/components/menu/menuDivider.ts +0 -24
  35. package/src/core/components/menu/menuGroup.spacing.test.tsx +0 -66
  36. package/src/core/components/menu/menuGroup.tsx +0 -237
  37. package/src/core/components/menu/menuItem.spacing.test.tsx +0 -62
  38. package/src/core/components/menu/menuItem.tsx +0 -201
  39. package/src/core/components/menu/useMenu.ts +0 -21
  40. package/src/core/components/menu/useMenuController.ts +0 -233
  41. package/src/core/components/skeleton/index.ts +0 -2
  42. package/src/core/components/skeleton/skeleton.tsx +0 -58
  43. package/src/core/components/skeleton/styles.ts +0 -50
  44. package/src/core/components/skeleton/textSkeleton.tsx +0 -122
  45. package/src/core/components/tab/index.ts +0 -3
  46. package/src/core/components/tab/tab.tsx +0 -102
  47. package/src/core/components/tab/tabList.test.tsx +0 -50
  48. package/src/core/components/tab/tabList.tsx +0 -71
  49. package/src/core/components/tab/tabPanel.tsx +0 -39
  50. package/src/core/components/toast/index.ts +0 -4
  51. package/src/core/components/toast/styles.ts +0 -77
  52. package/src/core/components/toast/toast.test.tsx +0 -106
  53. package/src/core/components/toast/toast.tsx +0 -199
  54. package/src/core/components/toast/toastContext.ts +0 -7
  55. package/src/core/components/toast/toastLayer.tsx +0 -52
  56. package/src/core/components/toast/toastProvider.tsx +0 -113
  57. package/src/core/components/toast/toastState.ts +0 -6
  58. package/src/core/components/toast/types.ts +0 -26
  59. package/src/core/components/toast/useToast.ts +0 -25
  60. package/src/core/components/tree/helpers.ts +0 -105
  61. package/src/core/components/tree/index.ts +0 -4
  62. package/src/core/components/tree/style.ts +0 -105
  63. package/src/core/components/tree/tree.test.tsx +0 -60
  64. package/src/core/components/tree/tree.tsx +0 -242
  65. package/src/core/components/tree/treeContext.ts +0 -10
  66. package/src/core/components/tree/treeGroup.tsx +0 -29
  67. package/src/core/components/tree/treeItem.test.tsx +0 -70
  68. package/src/core/components/tree/treeItem.tsx +0 -225
  69. package/src/core/components/tree/types.ts +0 -25
  70. package/src/core/components/tree/useTree.ts +0 -17
  71. package/src/core/constants.ts +0 -79
  72. package/src/core/helpers/animation.ts +0 -27
  73. package/src/core/helpers/element.ts +0 -55
  74. package/src/core/helpers/focus.ts +0 -100
  75. package/src/core/helpers/index.ts +0 -4
  76. package/src/core/helpers/scroll.ts +0 -15
  77. package/src/core/hooks/index.ts +0 -13
  78. package/src/core/hooks/useArrayProp.ts +0 -17
  79. package/src/core/hooks/useClickOutside.test.tsx +0 -510
  80. package/src/core/hooks/useClickOutside.ts +0 -118
  81. package/src/core/hooks/useClickOutsideEvent.test.tsx +0 -119
  82. package/src/core/hooks/useClickOutsideEvent.ts +0 -73
  83. package/src/core/hooks/useCustomValidity.ts +0 -13
  84. package/src/core/hooks/useDelayed.test.ts +0 -89
  85. package/src/core/hooks/useDelayedState.ts +0 -36
  86. package/src/core/hooks/useElementRect/index.ts +0 -1
  87. package/src/core/hooks/useElementRect/useElementRect.ts +0 -14
  88. package/src/core/hooks/useElementSize.ts +0 -19
  89. package/src/core/hooks/useForwardedRef.ts +0 -20
  90. package/src/core/hooks/useGlobalKeyDown.ts +0 -24
  91. package/src/core/hooks/useIsomorphicEffect.ts +0 -7
  92. package/src/core/hooks/useMatchMedia.ts +0 -28
  93. package/src/core/hooks/useMediaIndex/index.ts +0 -1
  94. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -37
  95. package/src/core/hooks/useMediaIndex/useMediaIndex.ts +0 -102
  96. package/src/core/hooks/useMounted.ts +0 -15
  97. package/src/core/hooks/usePrefersDark.hydration.test.tsx +0 -58
  98. package/src/core/hooks/usePrefersDark.test.tsx +0 -21
  99. package/src/core/hooks/usePrefersDark.ts +0 -16
  100. package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -58
  101. package/src/core/hooks/usePrefersReducedMotion.test.tsx +0 -21
  102. package/src/core/hooks/usePrefersReducedMotion.ts +0 -16
  103. package/src/core/index.ts +0 -10
  104. package/src/core/lib/createGlobalScopedContext.ts +0 -37
  105. package/src/core/lib/globalScope.ts +0 -20
  106. package/src/core/lib/isRecord.ts +0 -3
  107. package/src/core/middleware/origin.ts +0 -47
  108. package/src/core/observers/elementSizeObserver.ts +0 -117
  109. package/src/core/observers/index.ts +0 -2
  110. package/src/core/observers/resizeObserver.ts +0 -9
  111. package/src/core/primitives/_selectable/index.ts +0 -1
  112. package/src/core/primitives/_selectable/selectable.tsx +0 -15
  113. package/src/core/primitives/_selectable/style.ts +0 -115
  114. package/src/core/primitives/avatar/avatar.tsx +0 -200
  115. package/src/core/primitives/avatar/avatarCounter.tsx +0 -91
  116. package/src/core/primitives/avatar/avatarStack.tsx +0 -101
  117. package/src/core/primitives/avatar/index.ts +0 -4
  118. package/src/core/primitives/avatar/styles.ts +0 -167
  119. package/src/core/primitives/avatar/types.ts +0 -17
  120. package/src/core/primitives/badge/badge.test.tsx +0 -17
  121. package/src/core/primitives/badge/badge.tsx +0 -72
  122. package/src/core/primitives/badge/index.ts +0 -1
  123. package/src/core/primitives/badge/styles.ts +0 -20
  124. package/src/core/primitives/badge/types.ts +0 -8
  125. package/src/core/primitives/box/box.test.tsx +0 -155
  126. package/src/core/primitives/box/box.tsx +0 -162
  127. package/src/core/primitives/box/index.ts +0 -1
  128. package/src/core/primitives/button/button.test.tsx +0 -86
  129. package/src/core/primitives/button/button.tsx +0 -214
  130. package/src/core/primitives/button/index.ts +0 -1
  131. package/src/core/primitives/button/styles.ts +0 -118
  132. package/src/core/primitives/card/card.tsx +0 -125
  133. package/src/core/primitives/card/index.ts +0 -2
  134. package/src/core/primitives/card/styles.ts +0 -147
  135. package/src/core/primitives/card/types.ts +0 -12
  136. package/src/core/primitives/checkbox/checkbox.tsx +0 -73
  137. package/src/core/primitives/checkbox/index.ts +0 -1
  138. package/src/core/primitives/checkbox/styles.ts +0 -128
  139. package/src/core/primitives/code/code.tsx +0 -56
  140. package/src/core/primitives/code/index.ts +0 -1
  141. package/src/core/primitives/code/refractor.tsx +0 -22
  142. package/src/core/primitives/code/styles.ts +0 -77
  143. package/src/core/primitives/container/container.tsx +0 -55
  144. package/src/core/primitives/container/index.ts +0 -2
  145. package/src/core/primitives/container/styles.ts +0 -23
  146. package/src/core/primitives/container/types.ts +0 -6
  147. package/src/core/primitives/flex/flex.tsx +0 -63
  148. package/src/core/primitives/flex/index.ts +0 -1
  149. package/src/core/primitives/grid/grid.test.tsx +0 -86
  150. package/src/core/primitives/grid/grid.tsx +0 -77
  151. package/src/core/primitives/grid/index.ts +0 -1
  152. package/src/core/primitives/heading/heading.tsx +0 -89
  153. package/src/core/primitives/heading/index.ts +0 -1
  154. package/src/core/primitives/heading/styles.ts +0 -64
  155. package/src/core/primitives/heading/types.ts +0 -7
  156. package/src/core/primitives/index.ts +0 -27
  157. package/src/core/primitives/inline/index.ts +0 -1
  158. package/src/core/primitives/inline/inline.test.tsx +0 -55
  159. package/src/core/primitives/inline/inline.tsx +0 -66
  160. package/src/core/primitives/inline/styles.ts +0 -32
  161. package/src/core/primitives/inline/types.ts +0 -6
  162. package/src/core/primitives/kbd/index.ts +0 -1
  163. package/src/core/primitives/kbd/kbd.tsx +0 -73
  164. package/src/core/primitives/label/index.ts +0 -1
  165. package/src/core/primitives/label/label.tsx +0 -88
  166. package/src/core/primitives/label/styles.ts +0 -45
  167. package/src/core/primitives/popover/constants.ts +0 -22
  168. package/src/core/primitives/popover/floating-ui/size.ts +0 -99
  169. package/src/core/primitives/popover/helpers.ts +0 -31
  170. package/src/core/primitives/popover/index.ts +0 -2
  171. package/src/core/primitives/popover/popover.tsx +0 -512
  172. package/src/core/primitives/popover/popoverCard.tsx +0 -167
  173. package/src/core/primitives/popover/types.ts +0 -6
  174. package/src/core/primitives/radio/index.ts +0 -1
  175. package/src/core/primitives/radio/radio.tsx +0 -51
  176. package/src/core/primitives/radio/styles.ts +0 -117
  177. package/src/core/primitives/select/index.ts +0 -1
  178. package/src/core/primitives/select/select.test.tsx +0 -56
  179. package/src/core/primitives/select/select.tsx +0 -95
  180. package/src/core/primitives/select/styles.ts +0 -166
  181. package/src/core/primitives/spinner/index.ts +0 -1
  182. package/src/core/primitives/spinner/spinner.tsx +0 -46
  183. package/src/core/primitives/stack/index.ts +0 -1
  184. package/src/core/primitives/stack/stack.test.tsx +0 -61
  185. package/src/core/primitives/stack/stack.tsx +0 -59
  186. package/src/core/primitives/stack/styles.ts +0 -33
  187. package/src/core/primitives/switch/index.ts +0 -1
  188. package/src/core/primitives/switch/styles.ts +0 -173
  189. package/src/core/primitives/switch/switch.tsx +0 -68
  190. package/src/core/primitives/text/index.ts +0 -1
  191. package/src/core/primitives/text/styles.ts +0 -74
  192. package/src/core/primitives/text/text.tsx +0 -90
  193. package/src/core/primitives/textArea/index.ts +0 -1
  194. package/src/core/primitives/textArea/textArea.tsx +0 -120
  195. package/src/core/primitives/textInput/index.ts +0 -1
  196. package/src/core/primitives/textInput/textInput.test.tsx +0 -52
  197. package/src/core/primitives/textInput/textInput.tsx +0 -398
  198. package/src/core/primitives/tooltip/constants.ts +0 -23
  199. package/src/core/primitives/tooltip/index.ts +0 -2
  200. package/src/core/primitives/tooltip/tooltip.test.tsx +0 -485
  201. package/src/core/primitives/tooltip/tooltip.tsx +0 -497
  202. package/src/core/primitives/tooltip/tooltipCard.tsx +0 -110
  203. package/src/core/primitives/tooltip/tooltipDelayGroup/index.ts +0 -4
  204. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +0 -11
  205. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -57
  206. package/src/core/primitives/tooltip/tooltipDelayGroup/types.ts +0 -12
  207. package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -13
  208. package/src/core/primitives/types.ts +0 -179
  209. package/src/core/styles/border/borderStyle.ts +0 -56
  210. package/src/core/styles/border/index.ts +0 -2
  211. package/src/core/styles/border/types.ts +0 -10
  212. package/src/core/styles/box/boxStyle.ts +0 -69
  213. package/src/core/styles/box/index.ts +0 -2
  214. package/src/core/styles/box/types.ts +0 -11
  215. package/src/core/styles/card/_cardColorStyle.ts +0 -108
  216. package/src/core/styles/card/index.ts +0 -1
  217. package/src/core/styles/flex/flexItemStyle.ts +0 -27
  218. package/src/core/styles/flex/flexStyle.ts +0 -70
  219. package/src/core/styles/flex/index.ts +0 -3
  220. package/src/core/styles/flex/types.ts +0 -24
  221. package/src/core/styles/focusRing/index.ts +0 -25
  222. package/src/core/styles/font/codeFontStyle.ts +0 -13
  223. package/src/core/styles/font/headingFontStyle.ts +0 -13
  224. package/src/core/styles/font/index.ts +0 -6
  225. package/src/core/styles/font/labelFontStyle.ts +0 -13
  226. package/src/core/styles/font/responsiveFont.ts +0 -100
  227. package/src/core/styles/font/textAlignStyle.ts +0 -19
  228. package/src/core/styles/font/textFontStyle.ts +0 -13
  229. package/src/core/styles/font/types.ts +0 -33
  230. package/src/core/styles/grid/gridItemStyle.ts +0 -82
  231. package/src/core/styles/grid/gridStyle.ts +0 -109
  232. package/src/core/styles/grid/index.ts +0 -3
  233. package/src/core/styles/grid/types.ts +0 -37
  234. package/src/core/styles/helpers.ts +0 -72
  235. package/src/core/styles/index.ts +0 -5
  236. package/src/core/styles/input/index.ts +0 -2
  237. package/src/core/styles/input/responsiveInputPaddingStyle.ts +0 -78
  238. package/src/core/styles/input/textInputStyle.ts +0 -263
  239. package/src/core/styles/internal.ts +0 -12
  240. package/src/core/styles/margin/index.ts +0 -2
  241. package/src/core/styles/margin/marginStyle.ts +0 -22
  242. package/src/core/styles/margin/marginsStyle.test.ts +0 -34
  243. package/src/core/styles/margin/types.ts +0 -9
  244. package/src/core/styles/padding/index.ts +0 -2
  245. package/src/core/styles/padding/paddingStyle.test.ts +0 -34
  246. package/src/core/styles/padding/paddingStyle.ts +0 -22
  247. package/src/core/styles/padding/types.ts +0 -12
  248. package/src/core/styles/radius/index.ts +0 -2
  249. package/src/core/styles/radius/radiusStyle.ts +0 -23
  250. package/src/core/styles/radius/types.ts +0 -8
  251. package/src/core/styles/shadow/index.ts +0 -2
  252. package/src/core/styles/shadow/shadowStyle.ts +0 -29
  253. package/src/core/styles/shadow/types.ts +0 -6
  254. package/src/core/styles/types.ts +0 -8
  255. package/src/core/theme/index.ts +0 -5
  256. package/src/core/theme/theme.test.tsx +0 -77
  257. package/src/core/theme/themeColorProvider.tsx +0 -29
  258. package/src/core/theme/themeContext.ts +0 -10
  259. package/src/core/theme/themeProvider.tsx +0 -62
  260. package/src/core/theme/types.ts +0 -12
  261. package/src/core/theme/useRootTheme.ts +0 -18
  262. package/src/core/theme/useTheme.ts +0 -18
  263. package/src/core/types/avatar.ts +0 -14
  264. package/src/core/types/badge.ts +0 -12
  265. package/src/core/types/box.ts +0 -19
  266. package/src/core/types/button.ts +0 -21
  267. package/src/core/types/card.ts +0 -6
  268. package/src/core/types/component.ts +0 -32
  269. package/src/core/types/dialog.ts +0 -4
  270. package/src/core/types/flex.ts +0 -30
  271. package/src/core/types/grid.ts +0 -14
  272. package/src/core/types/gridItem.ts +0 -29
  273. package/src/core/types/index.ts +0 -15
  274. package/src/core/types/placement.ts +0 -18
  275. package/src/core/types/popover.ts +0 -4
  276. package/src/core/types/radius.ts +0 -4
  277. package/src/core/types/selectable.ts +0 -6
  278. package/src/core/types/text.ts +0 -4
  279. package/src/core/utils/arrow/arrow.tsx +0 -124
  280. package/src/core/utils/arrow/cmds.ts +0 -91
  281. package/src/core/utils/arrow/index.ts +0 -1
  282. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +0 -105
  283. package/src/core/utils/boundaryElement/boundaryElementContext.ts +0 -7
  284. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +0 -24
  285. package/src/core/utils/boundaryElement/index.ts +0 -3
  286. package/src/core/utils/boundaryElement/types.ts +0 -7
  287. package/src/core/utils/boundaryElement/useBoundaryElement.ts +0 -26
  288. package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +0 -22
  289. package/src/core/utils/conditionalWrapper/index.ts +0 -1
  290. package/src/core/utils/elementQuery/elementQuery.tsx +0 -53
  291. package/src/core/utils/elementQuery/helpers.ts +0 -27
  292. package/src/core/utils/elementQuery/index.ts +0 -1
  293. package/src/core/utils/errorBoundary.tsx +0 -48
  294. package/src/core/utils/getElementRef.ts +0 -31
  295. package/src/core/utils/index.ts +0 -9
  296. package/src/core/utils/layer/getLayerContext.test.ts +0 -32
  297. package/src/core/utils/layer/getLayerContext.ts +0 -21
  298. package/src/core/utils/layer/index.ts +0 -4
  299. package/src/core/utils/layer/layer.test.tsx +0 -113
  300. package/src/core/utils/layer/layer.tsx +0 -99
  301. package/src/core/utils/layer/layerContext.ts +0 -7
  302. package/src/core/utils/layer/layerProvider.tsx +0 -111
  303. package/src/core/utils/layer/types.ts +0 -9
  304. package/src/core/utils/layer/useLayer.ts +0 -28
  305. package/src/core/utils/portal/index.ts +0 -4
  306. package/src/core/utils/portal/portal.test.tsx +0 -108
  307. package/src/core/utils/portal/portal.ts +0 -32
  308. package/src/core/utils/portal/portalContext.ts +0 -31
  309. package/src/core/utils/portal/portalProvider.tsx +0 -48
  310. package/src/core/utils/portal/types.ts +0 -9
  311. package/src/core/utils/portal/usePortal.ts +0 -25
  312. package/src/core/utils/spanWithTextOverflow.tsx +0 -10
  313. package/src/core/utils/srOnly/index.ts +0 -1
  314. package/src/core/utils/srOnly/srOnly.tsx +0 -36
  315. package/src/core/utils/virtualList/index.ts +0 -1
  316. package/src/core/utils/virtualList/virtualList.tsx +0 -201
  317. package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +0 -86
  318. package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +0 -58
  319. package/src/theme/build/_deprecated/color/button/createButtonModes.ts +0 -27
  320. package/src/theme/build/_deprecated/color/button/createButtonTones.ts +0 -60
  321. package/src/theme/build/_deprecated/color/card/createCardStates.ts +0 -66
  322. package/src/theme/build/_deprecated/color/color.test.ts +0 -67
  323. package/src/theme/build/_deprecated/color/defaults.ts +0 -391
  324. package/src/theme/build/_deprecated/color/factory.ts +0 -178
  325. package/src/theme/build/_deprecated/color/index.ts +0 -1
  326. package/src/theme/build/_deprecated/color/input/createInputModes.ts +0 -86
  327. package/src/theme/build/_deprecated/color/muted/createMuted.ts +0 -58
  328. package/src/theme/build/_deprecated/color/spot/createSpot.ts +0 -23
  329. package/src/theme/build/buildColorTheme.test.ts +0 -185
  330. package/src/theme/build/buildColorTheme.ts +0 -507
  331. package/src/theme/build/buildTheme.test.ts +0 -89
  332. package/src/theme/build/buildTheme.ts +0 -36
  333. package/src/theme/build/colorToken/colorToken.ts +0 -19
  334. package/src/theme/build/colorToken/compileColorToken.ts +0 -21
  335. package/src/theme/build/colorToken/index.ts +0 -2
  336. package/src/theme/build/colorToken/types.ts +0 -6
  337. package/src/theme/build/index.ts +0 -3
  338. package/src/theme/build/lib/color-fns/blend/index.ts +0 -3
  339. package/src/theme/build/lib/color-fns/blend/mix.ts +0 -21
  340. package/src/theme/build/lib/color-fns/blend/multiply.ts +0 -18
  341. package/src/theme/build/lib/color-fns/blend/screen.ts +0 -18
  342. package/src/theme/build/lib/color-fns/color-fns.test.ts +0 -70
  343. package/src/theme/build/lib/color-fns/contrastRatio.ts +0 -31
  344. package/src/theme/build/lib/color-fns/convert.ts +0 -150
  345. package/src/theme/build/lib/color-fns/index.ts +0 -6
  346. package/src/theme/build/lib/color-fns/parse.ts +0 -60
  347. package/src/theme/build/lib/color-fns/rgba.ts +0 -10
  348. package/src/theme/build/lib/color-fns/types.ts +0 -28
  349. package/src/theme/build/lib/isRecord.ts +0 -3
  350. package/src/theme/build/lib/lazy.ts +0 -30
  351. package/src/theme/build/lib/utils.ts +0 -19
  352. package/src/theme/build/merge.ts +0 -31
  353. package/src/theme/build/mixThemeColor.test.ts +0 -23
  354. package/src/theme/build/mixThemeColor.ts +0 -53
  355. package/src/theme/build/renderColorTheme.ts +0 -538
  356. package/src/theme/build/renderColorValue.ts +0 -83
  357. package/src/theme/build/resolveColorTokens.ts +0 -274
  358. package/src/theme/build/theme.test.ts +0 -29
  359. package/src/theme/config/helpers.ts +0 -60
  360. package/src/theme/config/index.ts +0 -4
  361. package/src/theme/config/system.ts +0 -117
  362. package/src/theme/config/tokens/color/index.ts +0 -1
  363. package/src/theme/config/tokens/color/types.ts +0 -135
  364. package/src/theme/config/tokens/index.ts +0 -4
  365. package/src/theme/config/tokens/parseTokenKey.test.ts +0 -66
  366. package/src/theme/config/tokens/parseTokenKey.ts +0 -67
  367. package/src/theme/config/tokens/parseTokenValue.test.ts +0 -44
  368. package/src/theme/config/tokens/parseTokenValue.ts +0 -134
  369. package/src/theme/config/tokens/types.ts +0 -53
  370. package/src/theme/config/types.ts +0 -46
  371. package/src/theme/defaults/colorPalette.ts +0 -5
  372. package/src/theme/defaults/colorTokens.ts +0 -648
  373. package/src/theme/defaults/config.ts +0 -84
  374. package/src/theme/defaults/fonts.ts +0 -227
  375. package/src/theme/getScopedTheme.ts +0 -103
  376. package/src/theme/index.ts +0 -5
  377. package/src/theme/system/avatar.ts +0 -14
  378. package/src/theme/system/color/_constants.ts +0 -45
  379. package/src/theme/system/color/_helpers.ts +0 -28
  380. package/src/theme/system/color/_system.ts +0 -40
  381. package/src/theme/system/color/avatar.ts +0 -15
  382. package/src/theme/system/color/badge.ts +0 -16
  383. package/src/theme/system/color/button.ts +0 -17
  384. package/src/theme/system/color/color.ts +0 -34
  385. package/src/theme/system/color/index.ts +0 -13
  386. package/src/theme/system/color/input.ts +0 -25
  387. package/src/theme/system/color/kbd.ts +0 -8
  388. package/src/theme/system/color/selectable.ts +0 -12
  389. package/src/theme/system/color/shadow.ts +0 -7
  390. package/src/theme/system/color/state.ts +0 -43
  391. package/src/theme/system/color/syntax.ts +0 -41
  392. package/src/theme/system/css.ts +0 -14
  393. package/src/theme/system/focusRing.ts +0 -7
  394. package/src/theme/system/font.ts +0 -52
  395. package/src/theme/system/index.ts +0 -11
  396. package/src/theme/system/input.ts +0 -33
  397. package/src/theme/system/layer.ts +0 -8
  398. package/src/theme/system/shadow.ts +0 -19
  399. package/src/theme/system/styles.ts +0 -13
  400. package/src/theme/system/theme.ts +0 -142
  401. package/src/theme/system/v0/avatar.ts +0 -10
  402. package/src/theme/system/v0/color/_generic.ts +0 -35
  403. package/src/theme/system/v0/color/_system.ts +0 -18
  404. package/src/theme/system/v0/color/base.ts +0 -21
  405. package/src/theme/system/v0/color/button.ts +0 -56
  406. package/src/theme/system/v0/color/card.ts +0 -25
  407. package/src/theme/system/v0/color/color.ts +0 -51
  408. package/src/theme/system/v0/color/index.ts +0 -11
  409. package/src/theme/system/v0/color/input.ts +0 -40
  410. package/src/theme/system/v0/color/muted.ts +0 -37
  411. package/src/theme/system/v0/color/selectable.ts +0 -42
  412. package/src/theme/system/v0/color/solid.ts +0 -37
  413. package/src/theme/system/v0/color/spot.ts +0 -14
  414. package/src/theme/system/v0/index.ts +0 -3
  415. package/src/theme/system/v0/input.ts +0 -23
  416. package/src/theme/versioning/getTheme_v2.ts +0 -72
  417. package/src/theme/versioning/index.ts +0 -5
  418. package/src/theme/versioning/is_v0.ts +0 -6
  419. package/src/theme/versioning/is_v2.ts +0 -6
  420. package/src/theme/versioning/themeColor_v0_v2.ts +0 -250
  421. package/src/theme/versioning/themeColor_v2_v2_9.ts +0 -50
  422. package/src/theme/versioning/v0_v2.ts +0 -106
  423. 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
- }