@sanity/ui 4.1.0 → 4.1.1

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 (54) hide show
  1. package/dist/{arrow-C6TlkggA.js → arrow-DKn5YKdy.js} +2 -2
  2. package/dist/{arrow-C6TlkggA.js.map → arrow-DKn5YKdy.js.map} +1 -1
  3. package/dist/autocomplete.d.ts +2 -2
  4. package/dist/autocomplete.d.ts.map +1 -1
  5. package/dist/autocomplete.js +5 -5
  6. package/dist/breadcrumbs.d.ts +2 -2
  7. package/dist/breadcrumbs.d.ts.map +1 -1
  8. package/dist/breadcrumbs.js +4 -4
  9. package/dist/{button-D3iEd7Je.js → button-Dh_M2fYx.js} +4 -4
  10. package/dist/{button-D3iEd7Je.js.map → button-Dh_M2fYx.js.map} +1 -1
  11. package/dist/code.d.ts +2 -2
  12. package/dist/code.d.ts.map +1 -1
  13. package/dist/{factory-BA3gEfyI.js → factory-BzXTX8_Q.js} +2 -2
  14. package/dist/{factory-BA3gEfyI.js.map → factory-BzXTX8_Q.js.map} +1 -1
  15. package/dist/{flex-CySCBzQm.js → flex-DmbDG2ks.js} +2 -2
  16. package/dist/{flex-CySCBzQm.js.map → flex-DmbDG2ks.js.map} +1 -1
  17. package/dist/{getElementRef-5HZQ-Owu.js → getElementRef-Jw7gY0eV.js} +13 -2
  18. package/dist/getElementRef-Jw7gY0eV.js.map +1 -0
  19. package/dist/{grid-I2TNptX-.js → grid-6JSgMj1O.js} +2 -2
  20. package/dist/{grid-I2TNptX-.js.map → grid-6JSgMj1O.js.map} +1 -1
  21. package/dist/{hotkeys-Bi6Q5963.js → hotkeys-uSArGPzR.js} +3 -3
  22. package/dist/{hotkeys-Bi6Q5963.js.map → hotkeys-uSArGPzR.js.map} +1 -1
  23. package/dist/index.d.ts +156 -156
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +12 -12
  26. package/dist/index.js.map +1 -1
  27. package/dist/{layer-BK7xWHcE.js → layer-BfwisMR6.js} +3 -3
  28. package/dist/{layer-BK7xWHcE.js.map → layer-BfwisMR6.js.map} +1 -1
  29. package/dist/menu.d.ts +6 -6
  30. package/dist/menu.d.ts.map +1 -1
  31. package/dist/menu.js +6 -6
  32. package/dist/menu.js.map +1 -1
  33. package/dist/{popover-CdBTZDvj.js → popover-myCXZV_F.js} +34 -33
  34. package/dist/popover-myCXZV_F.js.map +1 -0
  35. package/dist/popover.js +1 -1
  36. package/dist/{stack-BGFEokua.js → stack-rsNFPq2-.js} +2 -2
  37. package/dist/{stack-BGFEokua.js.map → stack-rsNFPq2-.js.map} +1 -1
  38. package/dist/{textInput-Bu3QuADZ.js → textInput-DAaORuky.js} +4 -4
  39. package/dist/{textInput-Bu3QuADZ.js.map → textInput-DAaORuky.js.map} +1 -1
  40. package/dist/theme.d.ts +33 -33
  41. package/dist/theme.d.ts.map +1 -1
  42. package/dist/theme.js +1 -1
  43. package/dist/toast.d.ts +4 -4
  44. package/dist/toast.d.ts.map +1 -1
  45. package/dist/toast.js +5 -5
  46. package/dist/tooltip.d.ts +5 -5
  47. package/dist/tooltip.d.ts.map +1 -1
  48. package/dist/tooltip.js +28 -27
  49. package/dist/tooltip.js.map +1 -1
  50. package/dist/{useLayer-jUJIz8mh.js → useLayer-D1usxIE0.js} +2 -2
  51. package/dist/{useLayer-jUJIz8mh.js.map → useLayer-D1usxIE0.js.map} +1 -1
  52. package/package.json +7 -7
  53. package/dist/getElementRef-5HZQ-Owu.js.map +0 -1
  54. package/dist/popover-CdBTZDvj.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"factory-BA3gEfyI.js","names":[],"sources":["../src/theme/defaults/fonts.ts","../src/theme/system/color/_constants.ts","../src/theme/system/color/_helpers.ts","../src/theme/config/system.ts","../src/theme/config/helpers.ts","../src/theme/config/tokens/parseTokenValue.ts","../src/theme/build/colorToken/compileColorToken.ts","../src/theme/build/colorToken/colorToken.ts","../src/theme/defaults/colorTokens.ts","../src/theme/build/lib/isRecord.ts","../src/theme/build/merge.ts","../src/theme/build/resolveColorTokens.ts","../src/theme/build/buildColorTheme.ts","../src/theme/defaults/colorPalette.ts","../src/theme/build/lib/color-fns/blend/mix.ts","../src/theme/build/lib/utils.ts","../src/theme/build/lib/color-fns/convert.ts","../src/theme/build/lib/color-fns/parse.ts","../src/theme/build/lib/color-fns/rgba.ts","../src/theme/build/lib/color-fns/blend/multiply.ts","../src/theme/build/lib/color-fns/blend/screen.ts","../src/theme/build/mixThemeColor.ts","../src/theme/build/renderColorValue.ts","../src/theme/build/renderColorTheme.ts","../src/theme/build/buildTheme.ts","../src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts","../src/theme/build/_deprecated/color/_solid/createSolidTones.ts","../src/theme/build/_deprecated/color/button/createButtonTones.ts","../src/theme/build/_deprecated/color/button/createButtonModes.ts","../src/theme/build/_deprecated/color/card/createCardStates.ts","../src/theme/build/_deprecated/color/defaults.ts","../src/theme/build/_deprecated/color/input/createInputModes.ts","../src/theme/build/_deprecated/color/muted/createMuted.ts","../src/theme/build/_deprecated/color/spot/createSpot.ts","../src/theme/build/_deprecated/color/factory.ts"],"sourcesContent":["import {ThemeFonts} from '../system/font'\n\nexport const defaultThemeFonts: ThemeFonts = {\n code: {\n family: 'ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace',\n weights: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 15,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 19,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 22,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\n },\n ],\n },\n heading: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n weights: {\n regular: 700,\n medium: 800,\n semibold: 900,\n bold: 900,\n },\n sizes: [\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 17,\n lineHeight: 19,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 29,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 27,\n iconSize: 41,\n lineHeight: 35,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 9.5,\n descenderHeight: 8.5,\n fontSize: 33,\n iconSize: 49,\n lineHeight: 41,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 10.5,\n descenderHeight: 9.5,\n fontSize: 38,\n iconSize: 53,\n lineHeight: 47,\n letterSpacing: 0,\n },\n ],\n },\n label: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", system-ui, sans-serif',\n weights: {\n regular: 600,\n medium: 700,\n semibold: 800,\n bold: 900,\n },\n sizes: [\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 8.1,\n iconSize: 13,\n lineHeight: 10,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 9.5,\n iconSize: 15,\n lineHeight: 11,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 10.8,\n iconSize: 17,\n lineHeight: 12,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 12.25,\n iconSize: 19,\n lineHeight: 13,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 13.6,\n iconSize: 21,\n lineHeight: 14,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 15,\n iconSize: 23,\n lineHeight: 15,\n letterSpacing: 0.5,\n },\n ],\n },\n text: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n weights: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 15,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 15,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 18,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\n },\n ],\n },\n}\n","import {COLOR_HUES} from '@sanity/color'\n\n/** @public */\nexport const THEME_COLOR_SCHEMES = ['light', 'dark'] as const\n\n/** @public */\nexport const THEME_COLOR_BLEND_MODES = ['multiply', 'screen'] as const\n\n/** @public */\nexport const THEME_COLOR_CARD_TONES = [\n 'transparent',\n 'default',\n 'neutral',\n 'primary', // deprecated\n 'suggest',\n 'positive',\n 'caution',\n 'critical',\n] as const\n\n/** @public */\nexport const THEME_COLOR_STATE_TONES = [\n 'default',\n 'neutral',\n 'primary', // deprecated\n 'suggest',\n 'positive',\n 'caution',\n 'critical',\n] as const\n\n/** @public */\nexport const THEME_COLOR_STATES = ['enabled', 'hovered', 'pressed', 'selected', 'disabled'] as const\n\n/** @public */\nexport const THEME_COLOR_BUTTON_MODES = ['default', 'ghost', 'bleed'] as const\n\n/** @public */\nexport const THEME_COLOR_INPUT_MODES = ['default', 'invalid'] as const\n\n/** @public */\nexport const THEME_COLOR_INPUT_STATES = ['enabled', 'hovered', 'readOnly', 'disabled'] as const\n\n/** @public */\nexport const THEME_COLOR_AVATAR_COLORS = COLOR_HUES\n","import {COLOR_HUES, COLOR_TINTS, ColorHueKey, ColorTintKey} from '@sanity/color'\n\nimport {THEME_COLOR_BLEND_MODES, THEME_COLOR_BUTTON_MODES} from './_constants'\nimport {ThemeColorBlendModeKey, ThemeColorButtonModeKey} from './_system'\n\n/** @internal */\nexport function isColorBlendModeValue(str: string): str is ThemeColorBlendModeKey {\n // oxlint-disable-next-line no-unsafe-type-assertion\n return THEME_COLOR_BLEND_MODES.includes(str as ThemeColorBlendModeKey)\n}\n\n/** @internal */\nexport function isColorHueKey(str: string): str is ColorHueKey {\n // oxlint-disable-next-line no-unsafe-type-assertion\n return COLOR_HUES.includes(str as ColorHueKey)\n}\n\n/** @internal */\nexport function isColorTintKey(str: string): str is ColorTintKey {\n // oxlint-disable-next-line no-unsafe-type-assertion\n return COLOR_TINTS.includes(str as ColorTintKey)\n}\n\n/** @internal */\nexport function isColorButtonMode(str: string): str is ThemeColorButtonModeKey {\n // oxlint-disable-next-line no-unsafe-type-assertion\n return THEME_COLOR_BUTTON_MODES.includes(str as ThemeColorButtonModeKey)\n}\n","import {ColorHueKey, ColorTintKey} from '@sanity/color'\n\nimport {\n THEME_COLOR_AVATAR_COLORS,\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_INPUT_MODES,\n THEME_COLOR_INPUT_STATES,\n THEME_COLOR_STATE_TONES,\n THEME_COLOR_STATES,\n} from '../system/color/_constants'\nimport {ThemeColorBlendModeKey} from '../system/color/_system'\n\n/** @public */\nexport const COLOR_CONFIG_STATE_KEYS = [\n '_hue',\n 'bg',\n 'fg',\n 'border',\n 'focusRing',\n 'muted/fg',\n 'accent/fg',\n 'link/fg',\n 'code/bg',\n 'code/fg',\n 'skeleton/from',\n 'skeleton/to',\n 'status/dot',\n 'status/icon',\n] as const\n\n/** @public */\nexport type ColorConfigStateKey = (typeof COLOR_CONFIG_STATE_KEYS)[number]\n\n/** @public */\nexport const COLOR_CONFIG_CARD_KEYS = [\n ...COLOR_CONFIG_STATE_KEYS,\n '_hue',\n 'bg',\n 'fg',\n 'border',\n 'focusRing',\n 'shadow/outline',\n 'shadow/umbra',\n 'shadow/penumbra',\n 'shadow/ambient',\n] as const\n\n/** @public */\nexport type ColorConfigCardKey = (typeof COLOR_CONFIG_CARD_KEYS)[number]\n\n/** @public */\nexport const COLOR_CONFIG_BLEND_KEYS = ['_blend'] as const\n\n/** @public */\nexport type ColorConfigBlendKey = (typeof COLOR_CONFIG_BLEND_KEYS)[number]\n\n/** @public */\nexport type ColorConfigOpacityValue = `0` | `0.${number}` | `1`\n\n/** @public */\nexport type ColorConfigValue =\n | `black`\n | `white`\n | `black/${ColorConfigOpacityValue}`\n | `white/${ColorConfigOpacityValue}`\n // oxlint-disable-next-line no-unnecessary-template-expression\n | `${ColorHueKey}`\n | `${ColorHueKey} ${number}%`\n | `${ColorHueKey}/${ColorTintKey}`\n | `${ColorHueKey}/${ColorTintKey} ${number}%`\n | `${ColorHueKey}/${ColorTintKey}/${ColorConfigOpacityValue}`\n // oxlint-disable-next-line no-unnecessary-template-expression\n | `${ColorTintKey}`\n | `${ColorTintKey} ${number}%`\n | `${ColorTintKey}/${ColorConfigOpacityValue}`\n\n/** @public */\nexport type ThemeColorTokenValue = [ColorConfigValue, ColorConfigValue]\n\n/** @public */\nexport type ColorBlendModeTokenValue = [ThemeColorBlendModeKey, ThemeColorBlendModeKey]\n\n/** @public */\nexport const COLOR_CONFIG_AVATAR_COLORS = ['*', ...THEME_COLOR_AVATAR_COLORS] as const\n\n/** @public */\nexport type ColorConfigAvatarColor = (typeof COLOR_CONFIG_AVATAR_COLORS)[number]\n\n/** @public */\nexport const COLOR_CONFIG_CARD_TONES = ['*', ...THEME_COLOR_CARD_TONES] as const\n\n/** @public */\nexport type ColorConfigCardTone = (typeof COLOR_CONFIG_CARD_TONES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_STATE_TONES = ['*', ...THEME_COLOR_STATE_TONES] as const\n\n/** @public */\nexport type ColorConfigStateTone = (typeof COLOR_CONFIG_STATE_TONES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_STATES = ['*', ...THEME_COLOR_STATES] as const\n\n/** @public */\nexport type ColorConfigState = (typeof COLOR_CONFIG_STATES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_INPUT_MODES = ['*', ...THEME_COLOR_INPUT_MODES] as const\n\n/** @public */\nexport type ColorConfigInputMode = (typeof COLOR_CONFIG_INPUT_MODES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_INPUT_STATES = ['*', ...THEME_COLOR_INPUT_STATES] as const\n\n/** @public */\nexport type ColorConfigInputState = (typeof COLOR_CONFIG_INPUT_STATES)[number]\n","import {\n COLOR_CONFIG_BLEND_KEYS,\n COLOR_CONFIG_CARD_KEYS,\n COLOR_CONFIG_CARD_TONES,\n COLOR_CONFIG_STATE_KEYS,\n COLOR_CONFIG_STATE_TONES,\n ColorConfigBlendKey,\n ColorConfigCardKey,\n ColorConfigCardTone,\n ColorConfigOpacityValue,\n ColorConfigStateKey,\n ColorConfigStateTone,\n ColorConfigValue,\n} from './system'\nimport {parseTokenValue} from './tokens/parseTokenValue'\n\n/** @internal */\nexport function isColorConfigBaseTone(str: string): str is ColorConfigCardTone {\n // oxlint-disable-next-line no-unsafe-type-assertion\n return COLOR_CONFIG_CARD_TONES.includes(str as ColorConfigCardTone)\n}\n\n/** @internal */\nexport function isColorConfigBaseKey(str: string): str is ColorConfigCardKey {\n // oxlint-disable-next-line no-unsafe-type-assertion\n return COLOR_CONFIG_CARD_KEYS.includes(str as ColorConfigCardKey)\n}\n\n/** @internal */\nexport function isColorConfigStateKey(str: string): str is ColorConfigStateKey {\n // oxlint-disable-next-line no-unsafe-type-assertion\n return COLOR_CONFIG_STATE_KEYS.includes(str as ColorConfigStateKey)\n}\n\n/** @internal */\nexport function isColorConfigStateTone(str: string): str is ColorConfigStateTone {\n // oxlint-disable-next-line no-unsafe-type-assertion\n return COLOR_CONFIG_STATE_TONES.includes(str as ColorConfigStateTone)\n}\n\n/** @internal */\nexport function isColorConfigBlendKey(str: string): str is ColorConfigBlendKey {\n // oxlint-disable-next-line no-unsafe-type-assertion\n return COLOR_CONFIG_BLEND_KEYS.includes(str as ColorConfigBlendKey)\n}\n\n/** @internal */\nexport function isColorTokenValue(str: string): str is ColorConfigValue {\n return parseTokenValue(str)?.type === 'color' || parseTokenValue(str)?.type === 'hue'\n}\n\n/** @internal */\nexport function isColorValue(str: string): str is 'black' | 'white' {\n return str === 'black' || str === 'white'\n}\n\n/** @internal */\nexport function isColorOpacityValue(str: string): str is ColorConfigOpacityValue {\n return str === '0' || /^0\\.[0-9]+$/.test(str) || str === '1'\n}\n","import {isColorBlendModeValue, isColorHueKey, isColorTintKey} from '../../system/color/_helpers'\nimport {isColorOpacityValue, isColorValue} from '../helpers'\nimport {TokenValueNode} from './types'\n\nfunction isColorMixPercentValue(str: string): str is `${number}%` {\n return /^\\d+%$/.test(str)\n}\n\n/** @internal */\nexport function parseTokenValue(str: string): TokenValueNode | undefined {\n const segments = str.split('/')\n\n let nextSegment = segments.shift() || ''\n\n const [segment0, segment0mix] = nextSegment.split(' ')\n\n if (isColorTintKey(segment0)) {\n const tint = segment0\n const segment1 = segments.shift() || ''\n\n if (isColorMixPercentValue(segment0mix)) {\n const mix = Number(segment0mix.slice(0, -1)) / 100\n\n return {\n type: 'color',\n tint,\n mix,\n }\n }\n\n if (isColorOpacityValue(segment1)) {\n const opacity = Number(segment1)\n\n return {\n type: 'color',\n tint,\n opacity,\n }\n }\n\n return {\n type: 'color',\n tint,\n }\n }\n\n if (isColorValue(segment0)) {\n // oxlint-disable-next-line no-unnecessary-type-assertion\n const key = segment0 as 'black' | 'white'\n const segment1 = segments.shift() || ''\n\n if (isColorMixPercentValue(segment0mix)) {\n const mix = Number(segment0mix.slice(0, -1)) / 100\n\n return {\n type: 'color',\n key,\n mix,\n }\n }\n\n if (isColorOpacityValue(segment1)) {\n const opacity = Number(segment1)\n\n return {\n type: 'color',\n key,\n opacity,\n }\n }\n\n return {\n type: 'color',\n key,\n }\n }\n\n if (isColorHueKey(segment0)) {\n const hue = segment0\n\n nextSegment = segments.shift() || ''\n\n const [segment1, segment1mix] = nextSegment.split(' ')\n\n if (isColorTintKey(segment1)) {\n const tint = segment1\n const segment2 = segments.shift() || ''\n\n if (isColorMixPercentValue(segment1mix)) {\n const mix = Number(segment1mix.slice(0, -1)) / 100\n\n return {\n type: 'color',\n hue,\n tint,\n mix,\n }\n }\n\n if (isColorOpacityValue(segment2)) {\n const opacity = Number(segment2)\n\n return {\n type: 'color',\n hue,\n tint,\n opacity,\n }\n }\n\n return {\n type: 'color',\n hue,\n tint,\n }\n }\n\n return {\n type: 'hue',\n value: hue,\n }\n }\n\n if (isColorBlendModeValue(segment0)) {\n const value = segment0\n\n return {\n type: 'blendMode',\n value,\n }\n }\n\n return undefined\n}\n","import {TokenColorValueNode} from '../../config/tokens/types'\n\nexport function compileColorTokenValue(node: TokenColorValueNode): string {\n let key = ''\n\n if (node.key === 'black' || node.key === 'white') {\n key = node.key\n } else {\n key = `${node.hue}/${node.tint}`\n }\n\n if (node.mix !== undefined) {\n return `${key} ${node.mix * 100}%`\n }\n\n if (node.opacity !== undefined) {\n key += `/${node.opacity}`\n }\n\n return key\n}\n","import {ThemeColorTokenValue} from '../../config/system'\nimport {parseTokenValue} from '../../config/tokens/parseTokenValue'\nimport {compileColorTokenValue} from './compileColorToken'\nimport {ColorTokenContext} from './types'\n\nconst DEFAULT_COLOR_TOKEN_VALUE: ThemeColorTokenValue = ['500', '500']\n\nexport function resolveColorTokenValue(\n context: ColorTokenContext,\n value: ThemeColorTokenValue = DEFAULT_COLOR_TOKEN_VALUE,\n): string {\n const {hue, scheme} = context\n const node = parseTokenValue(value[scheme === 'light' ? 0 : 1])\n\n if (!node || node.type !== 'color') {\n throw new Error(`Invalid color token: ${value[0]}`)\n }\n\n return compileColorTokenValue({...node, hue: node.hue || hue})\n}\n","import {ThemeColorTokens} from '../config/tokens/color/types'\n\nexport const defaultColorTokens: ThemeColorTokens = {\n base: {\n '*': {\n _blend: ['multiply', 'screen'],\n accent: {\n fg: ['purple/600', 'purple/400'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n backdrop: ['gray/200/0.5', 'black/0.5'],\n badge: {\n '*': {\n bg: ['100', '900'],\n fg: ['600', '400'],\n icon: ['500', '500'],\n dot: ['500', '500'],\n },\n 'positive': {\n bg: ['200 50%', '900'],\n fg: ['600', '500'],\n },\n 'caution': {\n bg: ['200 50%', '900'],\n fg: ['600', '500'],\n },\n },\n bg: ['50', '950'],\n border: ['200', '800'],\n code: {\n bg: ['50', '950'],\n fg: ['600', '400'],\n },\n fg: ['800', '200'],\n focusRing: ['blue/500', 'blue/500'],\n icon: ['600', '400'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['600', '400'],\n border: ['200', '800'],\n },\n link: {\n fg: ['blue/600', 'blue/300'],\n },\n muted: {\n bg: ['50', '950'],\n fg: ['700 75%', '300 75%'],\n },\n shadow: {\n outline: ['500/0.3', '500/0.4'],\n umbra: ['gray/500/0.1', 'black/0.2'],\n penumbra: ['gray/500/0.07', 'black/0.14'],\n ambient: ['gray/500/0.06', 'black/0.12'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n 'transparent': {\n bg: ['50', 'black'],\n },\n 'default': {\n bg: ['white', '950'],\n fg: ['800', '200'],\n muted: {\n fg: ['600', '400'],\n },\n },\n 'primary': {_hue: 'blue'},\n 'suggest': {_hue: 'purple'},\n 'positive': {\n _hue: 'green',\n shadow: {outline: ['500/0.4', '500/0.4']},\n },\n 'caution': {\n _hue: 'yellow',\n shadow: {outline: ['600/0.3', '500/0.4']},\n },\n 'critical': {_hue: 'red'},\n },\n button: {\n default: {\n '*': {\n '*': {\n _blend: ['screen', 'multiply'],\n accent: {\n fg: ['purple/300', 'purple/700'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['900', '100'],\n fg: ['400', '600'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['500', '400'],\n border: ['500/0', '400/0'],\n code: {\n bg: ['500 20%', '400 20%'],\n fg: ['200', '600'],\n },\n fg: ['white', 'black'],\n icon: ['100 70%', '900 70%'],\n kbd: {\n bg: ['black', 'white'],\n fg: ['200', '600'],\n border: ['800', '200'],\n },\n link: {\n fg: ['blue/200', 'blue/600'],\n },\n muted: {\n bg: ['950', '50'],\n fg: ['100 70%', '900 70%'],\n },\n skeleton: {\n from: ['900', '100'],\n to: ['900 50%', '100 50%'],\n },\n },\n 'hovered': {\n bg: ['600', '300'],\n border: ['700/0', '300/0'],\n },\n 'pressed': {\n bg: ['700', '300'],\n },\n 'selected': {\n bg: ['700', '300'],\n },\n 'disabled': {\n _hue: 'gray',\n accent: {\n fg: ['100 70%', '900 70%'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['gray/500', 'gray/400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['gray/700', 'gray/300'],\n fg: ['white', 'black'],\n dot: ['white', 'black'],\n icon: ['white', 'black'],\n },\n },\n bg: ['300', '600'],\n code: {\n bg: ['950', '50'],\n fg: ['300', '600'],\n },\n fg: ['300', '600'],\n muted: {\n bg: ['950', '50'],\n fg: ['300', '600'],\n },\n kbd: {\n bg: ['black', 'white'],\n fg: ['white', 'black'],\n border: ['700', '300'],\n },\n link: {\n fg: ['100 70%', '900 70%'],\n },\n },\n },\n 'default': {\n '*': {\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n bg: ['800', '200'],\n muted: {\n bg: ['950', '50'],\n fg: ['400', '600'],\n },\n },\n 'hovered': {\n bg: ['900', '100'],\n },\n 'pressed': {\n bg: ['black', 'white'],\n },\n 'selected': {\n bg: ['black', 'white'],\n },\n },\n },\n ghost: {\n '*': {\n '*': {\n _blend: ['multiply', 'screen'],\n accent: {\n fg: ['purple/700 60%', 'purple/300 70%'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['100', '900'],\n fg: ['600', '400'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['50', '950'],\n border: ['100', '900'],\n code: {\n bg: ['500 10%', '400 10%'],\n fg: ['700 60%', '400 60%'],\n },\n fg: ['600', '400'],\n icon: ['700 60%', '300 60%'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['600', '400'],\n border: ['200', '800'],\n },\n link: {\n fg: ['blue/700 60%', 'blue/300 60%'],\n },\n muted: {\n bg: ['100', '950'],\n fg: ['700 60%', '300 60%'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n 'hovered': {\n bg: ['100', '900'],\n fg: ['700', '300'],\n },\n 'pressed': {\n bg: ['200', '800'],\n fg: ['800', '200'],\n },\n 'selected': {\n bg: ['200', '800'],\n fg: ['800', '200'],\n },\n 'disabled': {\n _hue: 'gray',\n accent: {\n fg: ['200', '800'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['gray/100', 'gray/900'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n _hue: 'gray',\n bg: ['50', '950'],\n fg: ['gray/200', 'gray/800'],\n dot: ['gray/200', 'gray/800'],\n icon: ['gray/200', 'gray/800'],\n },\n },\n border: ['100', '900'],\n code: {\n bg: ['50', '950'],\n fg: ['200', '800'],\n },\n fg: ['400', '600'],\n icon: ['300', '700'],\n muted: {\n fg: ['300', '700'],\n },\n kbd: {\n bg: ['white', 'black'],\n fg: ['200', '800'],\n border: ['100', '900'],\n },\n link: {\n fg: ['200', '800'],\n },\n },\n },\n 'positive': {\n '*': {\n border: ['600 20%', '800'],\n },\n },\n 'caution': {\n '*': {\n border: ['600 20%', '800'],\n },\n },\n },\n bleed: {\n '*': {\n '*': {\n _blend: ['multiply', 'screen'],\n accent: {\n fg: ['purple/700 70%', 'purple/300 70%'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['100', '900'],\n fg: ['600', '400'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['white', 'black'],\n border: ['white/0', 'black/0'],\n code: {\n bg: ['50', '950'],\n fg: ['700 75%', '300 75%'],\n },\n fg: ['700', '300'],\n icon: ['700 75%', '300 75%'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['700', '300'],\n border: ['200', '800'],\n },\n link: {\n fg: ['blue/700 70%', 'blue/300 70%'],\n },\n muted: {\n bg: ['100', '950'],\n fg: ['700 75%', '300 75%'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n 'hovered': {\n bg: ['50', '900'],\n fg: ['800', '200'],\n icon: ['800 70%', '300 70%'],\n },\n 'pressed': {\n bg: ['100', '800'],\n fg: ['800', '200'],\n icon: ['800 70%', '200 70%'],\n },\n 'selected': {\n bg: ['100', '900'],\n fg: ['800', '200'],\n icon: ['800 60%', '200 60%'],\n },\n 'disabled': {\n _hue: 'gray',\n accent: {\n fg: ['200', '800'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['gray/100', 'gray/900'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n _hue: 'gray',\n bg: ['50', '950'],\n fg: ['gray/200', 'gray/800'],\n dot: ['gray/200', 'gray/800'],\n icon: ['gray/200', 'gray/800'],\n },\n },\n code: {\n bg: ['50', '950'],\n fg: ['200', '800'],\n },\n fg: ['400', '600'],\n icon: ['300', '700'],\n muted: {\n fg: ['400', '600'],\n },\n kbd: {\n bg: ['white', 'black'],\n fg: ['200', '800'],\n border: ['100', '900'],\n },\n link: {\n fg: ['200', '800'],\n },\n },\n },\n },\n },\n input: {\n '*': {\n '*': {\n _blend: ['multiply', 'screen'],\n bg: ['white', 'black'],\n border: ['200', '700'],\n fg: ['black', '200'],\n muted: {\n bg: ['50', '950'],\n },\n placeholder: ['400', '600'],\n },\n 'hovered': {\n border: ['300', '700'],\n },\n 'readOnly': {\n bg: ['50', '950'],\n border: ['200', '800'],\n fg: ['800', '200'],\n },\n 'disabled': {\n bg: ['50', '950'],\n fg: ['400', '600'],\n border: ['100', '900'],\n placeholder: ['200', '800 50%'],\n },\n },\n 'invalid': {\n '*': {\n _hue: 'red',\n bg: ['100', '950'],\n },\n },\n },\n selectable: {\n '*': {\n '*': {\n _blend: ['multiply', 'screen'],\n accent: {\n fg: ['purple/700 70%', 'purple/300 70%'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['100', '900'],\n fg: ['600', '400'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['white', 'black'],\n border: ['200', '800'],\n code: {\n bg: ['50', '950'],\n fg: ['600', '400'],\n },\n fg: ['700', '300'],\n icon: ['700 75%', '300 75%'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['600', '400'],\n border: ['200', '800'],\n },\n link: {\n fg: ['blue/700 70%', 'blue/300 70%'],\n },\n muted: {\n bg: ['50', '950'],\n fg: ['700 75%', '300 75%'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n 'hovered': {\n bg: ['50', '950'],\n },\n 'pressed': {\n bg: ['100', '900'],\n },\n 'selected': {\n _blend: ['screen', 'multiply'],\n accent: {\n fg: ['purple/300', 'purple/700'],\n },\n avatar: {\n '*': {\n _blend: ['multiply', 'screen'],\n bg: ['white', 'black'],\n fg: ['black', 'white'],\n },\n },\n badge: {\n '*': {\n bg: ['900', '100'],\n fg: ['400', '600'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['500', '400'],\n border: ['500 20%', '400 20%'],\n code: {\n bg: ['500 20%', '400 20%'],\n fg: ['200', '600'],\n },\n fg: ['white', 'black'],\n icon: ['100 70%', '900 70%'],\n kbd: {\n bg: ['black', 'white'],\n fg: ['200', '600'],\n border: ['800', '200'],\n },\n link: {\n fg: ['blue/200', 'blue/600'],\n },\n muted: {\n bg: ['500 10%', '400 10%'],\n fg: ['100 70%', '900 70%'],\n },\n skeleton: {\n from: ['900', '100'],\n to: ['900 50%', '100 50%'],\n },\n },\n 'disabled': {\n _hue: 'gray',\n accent: {\n fg: ['200', '800'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['gray/100', 'gray/900'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n _hue: 'gray',\n bg: ['50', '950'],\n fg: ['gray/200', 'gray/800'],\n dot: ['gray/200', 'gray/800'],\n icon: ['gray/200', 'gray/800'],\n },\n },\n border: ['100', '900'],\n code: {\n bg: ['50', '950'],\n fg: ['200', '800'],\n },\n fg: ['200', '800'],\n icon: ['200', '800'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['200', '800'],\n border: ['100', '900'],\n },\n link: {\n fg: ['200', '800'],\n },\n muted: {\n bg: ['50 50%', '950 50%'],\n fg: ['200', '800'],\n },\n },\n },\n 'default': {\n selected: {\n _hue: 'blue',\n },\n },\n 'critical': {\n disabled: {\n bg: ['50 50%', '950 50%'],\n },\n },\n },\n syntax: {\n atrule: ['purple/600', 'purple/400'],\n attrName: ['green/600', 'green/400'],\n attrValue: ['yellow/600', 'yellow/400'],\n attribute: ['yellow/600', 'yellow/400'],\n boolean: ['purple/600', 'purple/400'],\n builtin: ['purple/600', 'purple/400'],\n cdata: ['yellow/600', 'yellow/400'],\n char: ['yellow/600', 'yellow/400'],\n class: ['orange/600', 'orange/400'],\n className: ['cyan/600', 'cyan/400'],\n comment: ['gray/400', 'gray/600'],\n constant: ['purple/600', 'purple/400'],\n deleted: ['red/600', 'red/400'],\n entity: ['red/600', 'red/400'],\n function: ['green/600', 'green/400'],\n hexcode: ['blue/600', 'blue/400'],\n id: ['purple/600', 'purple/400'],\n important: ['purple/600', 'purple/400'],\n inserted: ['yellow/600', 'yellow/400'],\n keyword: ['magenta/600', 'magenta/400'],\n number: ['purple/600', 'purple/400'],\n operator: ['magenta/600', 'magenta/400'],\n property: ['blue/600', 'blue/400'],\n pseudoClass: ['yellow/600', 'yellow/400'],\n pseudoElement: ['yellow/600', 'yellow/400'],\n punctuation: ['gray/600', 'gray/400'],\n regex: ['blue/600', 'blue/400'],\n selector: ['red/600', 'red/400'],\n string: ['yellow/600', 'yellow/400'],\n symbol: ['purple/600', 'purple/400'],\n tag: ['red/600', 'red/400'],\n unit: ['orange/600', 'orange/400'],\n url: ['red/600', 'red/400'],\n variable: ['red/600', 'red/400'],\n },\n}\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {isRecord} from './lib/isRecord'\n\nexport function merge<T extends Record<string, any>>(...records: (T | undefined)[]): T {\n // oxlint-disable-next-line no-unsafe-type-assertion\n const _records = records.filter(Boolean) as T[]\n\n if (_records.length === 0) {\n // oxlint-disable-next-line no-unsafe-type-assertion\n return {} as T\n }\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n return _records.reduce(_merge, {} as T)\n}\n\nfunction _merge<T extends Record<string, any>>(acc: T, source: T): T {\n for (const key of Object.keys(source)) {\n const prevValue = acc[key]\n const nextValue = source[key]\n\n if (isRecord(prevValue) && isRecord(nextValue)) {\n // oxlint-disable-next-line no-unsafe-type-assertion\n ;(acc as any)[key] = merge(prevValue, nextValue)\n } else {\n // oxlint-disable-next-line no-unsafe-type-assertion\n ;(acc as any)[key] = nextValue\n }\n }\n\n return acc\n}\n","import {COLOR_HUES, ColorHueKey} from '@sanity/color'\n\nimport {\n ColorConfigCardTone,\n ColorConfigInputMode,\n ColorConfigInputState,\n ColorConfigStateTone,\n} from '../config/system'\nimport {\n ThemeColorAvatarTokens,\n ThemeColorBadgeTokens,\n ThemeColorBaseTokens,\n ThemeColorButtonTokens,\n ThemeColorInputStateTokens,\n ThemeColorInputTokens,\n ThemeColorStatesTokens,\n ThemeColorStateTokens,\n ThemeColorTokens,\n} from '../config/tokens/color/types'\nimport {defaultColorTokens} from '../defaults/colorTokens'\nimport {\n THEME_COLOR_BUTTON_MODES,\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_INPUT_MODES,\n THEME_COLOR_INPUT_STATES,\n THEME_COLOR_STATE_TONES,\n THEME_COLOR_STATES,\n} from '../system/color/_constants'\nimport {\n ThemeColorButtonModeKey,\n ThemeColorCardToneKey,\n ThemeColorStateKey,\n ThemeColorStateToneKey,\n} from '../system/color/_system'\nimport {merge} from './merge'\n\n/**\n * Convert a tree of color tokens from a sparse format to a dense format.\n */\nexport function resolveColorTokens(inputTokens?: ThemeColorTokens): ThemeColorTokens {\n const tokens = merge(defaultColorTokens, inputTokens)\n\n return {\n base: resolveBaseColorTokens(tokens),\n button: resolveButtonColorTokens(tokens),\n input: resolveInputColorTokens(tokens),\n selectable: resolveSelectableColorTokens(tokens),\n syntax: tokens.syntax,\n }\n}\n\nfunction resolveBaseColorTokens(sparseTokens: ThemeColorTokens) {\n const tokens: Partial<Record<ColorConfigCardTone, ThemeColorBaseTokens>> = {}\n\n // base tones\n for (const tone of THEME_COLOR_CARD_TONES) {\n tokens[tone] = resolveBaseColorTones(sparseTokens, tone)\n }\n\n return tokens\n}\n\nfunction resolveBaseColorTones(\n inputTokens: ThemeColorTokens,\n tone: ThemeColorCardToneKey,\n): ThemeColorBaseTokens {\n const spec = merge(inputTokens?.base?.['*'], inputTokens?.base?.[tone])\n\n const hue = spec._hue || inputTokens?.base?.[tone]?._hue || 'gray'\n\n return {\n ...spec,\n _hue: hue,\n avatar: COLOR_HUES.reduce((acc, hue) => {\n return {\n // oxlint-disable-next-line no-accumulating-spread\n ...acc,\n [hue]: merge({_hue: hue}, spec.avatar?.['*'], spec.avatar?.[hue]),\n }\n }, {} as ThemeColorAvatarTokens),\n badge: THEME_COLOR_STATE_TONES.reduce((acc, tone) => {\n return {\n // oxlint-disable-next-line no-accumulating-spread\n ...acc,\n [tone]: {\n _hue: inputTokens?.base?.[tone]?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.[tone],\n },\n }\n }, {} as ThemeColorBadgeTokens),\n }\n}\n\nfunction resolveButtonColorTokens(\n inputTokens: ThemeColorTokens,\n): Partial<Record<ThemeColorButtonModeKey, ThemeColorButtonTokens>> {\n const tokens: Partial<Record<ThemeColorButtonModeKey, ThemeColorButtonTokens>> = {}\n\n for (const mode of THEME_COLOR_BUTTON_MODES) {\n tokens[mode] = resolveButtonToneColorTokens(inputTokens, mode)\n }\n\n return tokens\n}\n\nfunction resolveButtonToneColorTokens(\n inputTokens: ThemeColorTokens,\n mode: ThemeColorButtonModeKey,\n): ThemeColorButtonTokens {\n const tokens: ThemeColorButtonTokens = {}\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n tokens[tone] = resolveButtonModeColorTokens(inputTokens, mode, tone)\n }\n\n return tokens\n}\n\nfunction resolveButtonModeColorTokens(\n inputTokens: ThemeColorTokens,\n mode: ThemeColorButtonModeKey,\n tone: ThemeColorStateToneKey,\n): ThemeColorStatesTokens {\n const tokens: ThemeColorStatesTokens = {}\n\n for (const state of THEME_COLOR_STATES) {\n tokens[state] = resolveButtonStateColorTokens(inputTokens, tone, mode, state)\n }\n\n return tokens\n}\n\nfunction resolveButtonStateColorTokens(\n inputTokens: ThemeColorTokens,\n tone: ThemeColorStateToneKey,\n mode: ThemeColorButtonModeKey,\n state: ThemeColorStateKey,\n): ThemeColorStateTokens {\n const spec = merge(\n inputTokens?.button?.[mode]?.['*']?.['*'],\n inputTokens?.button?.[mode]?.[tone]?.['*'],\n inputTokens?.button?.[mode]?.['*']?.[state],\n inputTokens?.button?.[mode]?.[tone]?.[state],\n )\n\n const hue = spec._hue || inputTokens?.base?.[tone]?._hue\n\n return {\n ...spec,\n _hue: hue,\n avatar: COLOR_HUES.reduce((acc, hue) => {\n return {\n // oxlint-disable-next-line no-accumulating-spread\n ...acc,\n [hue]: merge({_hue: hue}, spec.avatar?.['*'], spec.avatar?.[hue]),\n }\n }, {} as ThemeColorAvatarTokens),\n badge: THEME_COLOR_STATE_TONES.reduce((acc, tone) => {\n return {\n // oxlint-disable-next-line no-accumulating-spread\n ...acc,\n [tone]: {\n _hue: inputTokens?.base?.[tone]?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.[tone],\n },\n }\n }, {} as ThemeColorBadgeTokens),\n }\n}\n\nfunction resolveInputColorTokens(\n inputTokens: ThemeColorTokens,\n): Partial<Record<ColorConfigInputMode, ThemeColorInputTokens>> {\n const tokens: Partial<Record<ColorConfigInputMode, ThemeColorInputTokens>> = {}\n\n for (const mode of THEME_COLOR_INPUT_MODES) {\n tokens[mode] = resolveInputModeColorTokens(inputTokens, mode)\n }\n\n return tokens\n}\n\nfunction resolveInputModeColorTokens(\n inputTokens: ThemeColorTokens,\n mode: ColorConfigInputMode,\n): ThemeColorInputTokens {\n const states: ThemeColorInputTokens = {}\n\n for (const state of THEME_COLOR_INPUT_STATES) {\n states[state] = resolveInputStateColorTokens(inputTokens, mode, state)\n }\n\n return states\n}\n\nfunction resolveInputStateColorTokens(\n inputTokens: ThemeColorTokens,\n mode: ColorConfigInputMode,\n state: ColorConfigInputState,\n): ThemeColorInputStateTokens {\n const spec = merge(\n inputTokens?.input?.['*']?.['*'],\n inputTokens?.input?.[mode]?.['*'],\n inputTokens?.input?.['*']?.[state],\n inputTokens?.input?.[mode]?.[state],\n )\n\n const hue = spec._hue || inputTokens?.input?.[mode]?._hue\n\n return {...spec, _hue: hue}\n}\n\nfunction resolveSelectableColorTokens(\n inputTokens: ThemeColorTokens,\n): Partial<Record<ColorConfigStateTone, {_hue?: ColorHueKey} & ThemeColorStatesTokens>> {\n const tokens: ThemeColorButtonTokens = {}\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n tokens[tone] = resolveSelectableToneColorTokens(inputTokens, tone)\n }\n\n return tokens\n}\n\nfunction resolveSelectableToneColorTokens(\n inputTokens: ThemeColorTokens,\n tone: ThemeColorStateToneKey,\n): {_hue?: ColorHueKey} & ThemeColorStatesTokens {\n const states: {_hue?: ColorHueKey} & ThemeColorStatesTokens = {\n _hue: inputTokens?.selectable?.[tone]?._hue || inputTokens?.base?.[tone]?._hue,\n }\n\n for (const state of THEME_COLOR_STATES) {\n states[state] = resolveSelectableStateColorTokens(inputTokens, tone, state)\n }\n\n return states\n}\n\nfunction resolveSelectableStateColorTokens(\n inputTokens: ThemeColorTokens,\n tone: ThemeColorStateToneKey,\n state: ThemeColorStateKey,\n) {\n const spec = merge(\n inputTokens?.selectable?.['*']?.['*'],\n inputTokens?.selectable?.[tone]?.['*'],\n inputTokens?.selectable?.['*']?.[state],\n inputTokens?.selectable?.[tone]?.[state],\n )\n\n const hue = spec._hue || inputTokens?.base?.[tone]?._hue\n\n return {\n ...spec,\n _hue: hue,\n avatar: COLOR_HUES.reduce((acc, hue) => {\n return {\n // oxlint-disable-next-line no-accumulating-spread\n ...acc,\n [hue]: merge({_hue: hue}, spec.avatar?.['*'], spec.avatar?.[hue]),\n }\n }, {} as ThemeColorAvatarTokens),\n badge: THEME_COLOR_STATE_TONES.reduce((acc, tone) => {\n return {\n // oxlint-disable-next-line no-accumulating-spread\n ...acc,\n [tone]: {\n _hue: inputTokens?.base?.[tone]?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.[tone],\n },\n }\n }, {} as ThemeColorBadgeTokens),\n }\n}\n","import {ThemeColorBadgeTokens, ThemeColorStateTokens} from '../config/tokens/color/types'\nimport {ThemeConfig} from '../config/types'\nimport {\n THEME_COLOR_BUTTON_MODES,\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_STATE_TONES,\n THEME_COLOR_STATES,\n} from '../system/color/_constants'\nimport {\n ThemeColorAvatarColorKey,\n ThemeColorButtonModeKey,\n ThemeColorCardToneKey,\n ThemeColorSchemeKey,\n ThemeColorStateKey,\n ThemeColorStateToneKey,\n} from '../system/color/_system'\nimport {ThemeColorAvatar_v2, ThemeColorAvatarHue_v2} from '../system/color/avatar'\nimport {ThemeColorBadge_v2} from '../system/color/badge'\nimport {\n ThemeColorButton_v2,\n ThemeColorButtonMode_v2,\n ThemeColorButtonTone_v2,\n} from '../system/color/button'\nimport {ThemeColorCard_v2, ThemeColorScheme_v2, ThemeColorSchemes_v2} from '../system/color/color'\nimport {\n ThemeColorInput_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n} from '../system/color/input'\nimport {ThemeColorShadow} from '../system/color/shadow'\nimport {ThemeColorState_v2} from '../system/color/state'\nimport {ThemeColorSyntax} from '../system/color/syntax'\nimport {resolveColorTokenValue as _color} from './colorToken/colorToken'\nimport {ColorTokenContext} from './colorToken/types'\nimport {defineLazyProperty} from './lib/lazy'\nimport {resolveColorTokens} from './resolveColorTokens'\n\nexport function buildColorTheme(config?: ThemeConfig): ThemeColorSchemes_v2 {\n const resolvedConfig: ThemeConfig = {\n ...config,\n color: resolveColorTokens(config?.color),\n }\n\n // Lazy schemes — each scheme's token tree is only built when first accessed\n // oxlint-disable-next-line no-unsafe-type-assertion\n const schemes = {} as ThemeColorSchemes_v2\n\n defineLazyProperty(schemes, 'light', () => buildColorScheme({scheme: 'light'}, resolvedConfig))\n defineLazyProperty(schemes, 'dark', () => buildColorScheme({scheme: 'dark'}, resolvedConfig))\n\n return schemes\n}\n\nfunction buildColorScheme(\n options: {scheme: ThemeColorSchemeKey},\n config: ThemeConfig,\n): ThemeColorScheme_v2 {\n const {scheme} = options\n\n // Lazy tones — each tone's token tree is only built when first accessed\n // oxlint-disable-next-line no-unsafe-type-assertion\n const colorScheme = {} as ThemeColorScheme_v2\n\n for (const tone of THEME_COLOR_CARD_TONES) {\n defineLazyProperty(colorScheme, tone, () => buildCardColorTheme({scheme, tone}, config))\n }\n\n return colorScheme\n}\n\nfunction buildCardColorTheme(\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorCardToneKey},\n config?: ThemeConfig,\n): ThemeColorCard_v2 {\n const {scheme, tone} = options\n const tokens = config?.color?.base?.[tone]\n const hue = tokens?._hue || 'gray'\n const context: ColorTokenContext = {hue, scheme}\n const blendMode = tokens?._blend || ['multiply', 'screen']\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n _dark: scheme === 'dark',\n accent: {\n fg: _color(context, tokens?.accent?.fg),\n },\n avatar: buildAvatarColorTheme({scheme}, tokens),\n backdrop: _color(context, tokens?.backdrop),\n badge: buildBadgeColorTheme(tokens?.badge, {scheme}, config),\n bg: _color(context, tokens?.bg),\n border: _color(context, tokens?.border),\n button: buildButtonColorTheme({scheme, tone}, config),\n code: {\n bg: _color(context, tokens?.code?.bg),\n fg: _color(context, tokens?.code?.fg),\n },\n fg: _color(context, tokens?.fg),\n focusRing: _color(context, tokens?.focusRing),\n icon: _color(context, tokens?.icon),\n input: buildInputColorTheme({scheme, tone}, config),\n kbd: {\n bg: _color(context, tokens?.kbd?.bg),\n fg: _color(context, tokens?.kbd?.fg),\n border: _color(context, tokens?.kbd?.border),\n },\n link: {\n fg: _color(context, tokens?.link?.fg),\n },\n muted: {\n bg: _color(context, tokens?.muted?.bg),\n fg: _color(context, tokens?.muted?.fg),\n },\n selectable: buildSelectableColorTheme({scheme, tone}, config),\n shadow: buildShadowColorTheme({scheme, tone}, config),\n skeleton: {\n from: _color(context, tokens?.skeleton?.from),\n to: _color(context, tokens?.skeleton?.to),\n },\n syntax: buildSyntaxColorTheme({scheme}, config),\n }\n}\n\nfunction buildShadowColorTheme(\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorCardToneKey},\n config?: ThemeConfig,\n): ThemeColorShadow {\n const {scheme, tone} = options\n const tokens = config?.color?.base?.[tone]\n const hue = tokens?._hue || 'gray'\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n outline: _color(context, tokens?.shadow?.outline),\n umbra: _color(context, tokens?.shadow?.umbra),\n penumbra: _color(context, tokens?.shadow?.penumbra),\n ambient: _color(context, tokens?.shadow?.ambient),\n }\n}\n\nfunction buildAvatarColorTheme(\n options: {scheme: ThemeColorSchemeKey},\n stateTokens?: ThemeColorStateTokens,\n): ThemeColorAvatar_v2 {\n const {scheme} = options\n\n return {\n gray: _buildAvatarColorTheme({color: 'gray', scheme}, stateTokens),\n blue: _buildAvatarColorTheme({color: 'blue', scheme}, stateTokens),\n purple: _buildAvatarColorTheme({color: 'purple', scheme}, stateTokens),\n magenta: _buildAvatarColorTheme({color: 'magenta', scheme}, stateTokens),\n red: _buildAvatarColorTheme({color: 'red', scheme}, stateTokens),\n orange: _buildAvatarColorTheme({color: 'orange', scheme}, stateTokens),\n yellow: _buildAvatarColorTheme({color: 'yellow', scheme}, stateTokens),\n green: _buildAvatarColorTheme({color: 'green', scheme}, stateTokens),\n cyan: _buildAvatarColorTheme({color: 'cyan', scheme}, stateTokens),\n }\n}\n\nfunction _buildAvatarColorTheme(\n options: {color: ThemeColorAvatarColorKey; scheme: ThemeColorSchemeKey},\n stateTokens?: ThemeColorStateTokens,\n): ThemeColorAvatarHue_v2 {\n const {color, scheme} = options\n const tokens = stateTokens?.avatar?.[color]\n const context: ColorTokenContext = {hue: tokens?._hue || 'gray', scheme}\n const blendMode = tokens?._blend || ['screen', 'multiply']\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n bg: _color(context, tokens?.bg),\n fg: _color(context, tokens?.fg),\n }\n}\n\nfunction buildBadgeColorTheme(\n tokens: ThemeColorBadgeTokens | undefined,\n options: {scheme: ThemeColorSchemeKey},\n config?: ThemeConfig,\n): ThemeColorBadge_v2 {\n const {scheme} = options\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n const colorBadge = {} as ThemeColorBadge_v2\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n colorBadge[tone] = _buildBadgeColorTheme(tokens, {scheme, tone}, config)\n }\n\n return colorBadge\n}\n\nfunction _buildBadgeColorTheme(\n parentTokens: ThemeColorBadgeTokens | undefined,\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorStateToneKey},\n config?: ThemeConfig,\n): ThemeColorBadge_v2['default'] {\n const {scheme, tone} = options\n const tokens = parentTokens?.[tone]\n const hue = tokens?._hue || config?.color?.base?.[tone]?._hue || 'gray'\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n bg: _color(context, tokens?.bg),\n fg: _color(context, tokens?.fg),\n dot: _color(context, tokens?.dot),\n icon: _color(context, tokens?.icon),\n }\n}\n\nfunction buildButtonColorTheme(\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorCardToneKey},\n config?: ThemeConfig,\n): ThemeColorButton_v2 {\n const {scheme, tone: cardTone} = options\n\n const modes: Partial<ThemeColorButton_v2> = {}\n\n for (const mode of THEME_COLOR_BUTTON_MODES) {\n modes[mode] = buildButtonTonesColorTheme({cardTone, scheme, mode}, config)\n }\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n return modes as ThemeColorButton_v2\n}\n\nfunction buildButtonTonesColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n scheme: ThemeColorSchemeKey\n mode: ThemeColorButtonModeKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonMode_v2 {\n const {cardTone, mode, scheme} = options\n\n const tones: Partial<ThemeColorButtonMode_v2> = {}\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n tones[tone] = buildButtonStatesColorTheme({cardTone, mode, scheme, tone}, config)\n }\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n return tones as ThemeColorButtonMode_v2\n}\n\nfunction buildButtonStatesColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n mode: ThemeColorButtonModeKey\n scheme: ThemeColorSchemeKey\n tone: ThemeColorStateToneKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonTone_v2 {\n const {cardTone, mode, scheme, tone} = options\n\n const states: Partial<ThemeColorButtonTone_v2> = {}\n\n for (const state of THEME_COLOR_STATES) {\n states[state] = buildButtonStateColorTheme({cardTone, mode, tone, scheme, state}, config)\n }\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n return states as ThemeColorButtonTone_v2\n}\n\nfunction buildButtonStateColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n mode: ThemeColorButtonModeKey\n tone: ThemeColorStateToneKey\n scheme: ThemeColorSchemeKey\n state: ThemeColorStateKey\n },\n config?: ThemeConfig,\n): ThemeColorState_v2 {\n const {cardTone, mode, tone, scheme, state} = options\n const cardTokens = config?.color?.base?.[cardTone]\n const tokens = config?.color?.button?.[mode]?.[tone]?.[state]\n const hue = tokens?._hue || cardTokens?._hue || 'gray'\n const blendMode = tokens?._blend || ['screen', 'multiply']\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n accent: {\n fg: _color(context, tokens?.accent?.fg),\n },\n avatar: buildAvatarColorTheme({scheme}, tokens),\n badge: buildBadgeColorTheme(tokens?.badge, {scheme}, config),\n bg: _color(context, tokens?.bg),\n border: _color(context, tokens?.border),\n code: {\n bg: _color(context, tokens?.code?.bg),\n fg: _color(context, tokens?.code?.fg),\n },\n fg: _color(context, tokens?.fg),\n icon: _color(context, tokens?.icon),\n muted: {\n bg: _color(context, tokens?.muted?.bg),\n fg: _color(context, tokens?.muted?.fg),\n },\n kbd: {\n bg: _color(context, tokens?.kbd?.bg),\n fg: _color(context, tokens?.kbd?.fg),\n border: _color(context, tokens?.kbd?.border),\n },\n link: {\n fg: _color(context, tokens?.link?.fg),\n },\n skeleton: {\n from: _color(context, tokens?.skeleton?.from),\n to: _color(context, tokens?.skeleton?.to),\n },\n }\n}\n\nfunction buildInputColorTheme(\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorCardToneKey},\n config?: ThemeConfig,\n): ThemeColorInput_v2 {\n const {scheme, tone} = options\n\n return {\n default: buildInputStatesColorTheme({mode: 'default', scheme, tone}, config),\n invalid: buildInputStatesColorTheme({mode: 'invalid', scheme, tone}, config),\n }\n}\n\nfunction buildInputStatesColorTheme(\n options: {\n mode: 'default' | 'invalid'\n scheme: ThemeColorSchemeKey\n tone: ThemeColorCardToneKey\n },\n config?: ThemeConfig,\n): ThemeColorInputMode_v2 {\n const {mode, scheme, tone} = options\n\n return {\n enabled: buildInputStateColorTheme({mode, scheme, state: 'enabled', cardTone: tone}, config),\n hovered: buildInputStateColorTheme({mode, scheme, state: 'hovered', cardTone: tone}, config),\n readOnly: buildInputStateColorTheme({mode, scheme, state: 'readOnly', cardTone: tone}, config),\n disabled: buildInputStateColorTheme({mode, scheme, state: 'disabled', cardTone: tone}, config),\n }\n}\n\nfunction buildInputStateColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n mode: 'default' | 'invalid'\n scheme: ThemeColorSchemeKey\n state: 'enabled' | 'hovered' | 'readOnly' | 'disabled'\n },\n config?: ThemeConfig,\n): ThemeColorInputState_v2 {\n const {cardTone, mode, scheme, state} = options\n const cardTokens = config?.color?.base?.[cardTone]\n const tokens = config?.color?.input?.[mode]?.[state]\n const hue = tokens?._hue || cardTokens?._hue || 'gray'\n const blendMode = tokens?._blend || ['screen', 'multiply']\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n bg: _color(context, tokens?.bg),\n border: _color(context, tokens?.border),\n fg: _color(context, tokens?.fg),\n muted: {\n bg: _color(context, tokens?.muted?.bg),\n },\n placeholder: _color(context, tokens?.placeholder),\n }\n}\n\nfunction buildSelectableColorTheme(\n options: {\n scheme: ThemeColorSchemeKey\n tone: ThemeColorCardToneKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonMode_v2 {\n const {scheme, tone: cardTone} = options\n\n const tones: Partial<ThemeColorButtonMode_v2> = {}\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n tones[tone] = buildSelectableStatesColorTheme({cardTone, scheme, tone}, config)\n }\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n return tones as ThemeColorButtonMode_v2\n}\n\nfunction buildSelectableStatesColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n scheme: ThemeColorSchemeKey\n tone: ThemeColorStateToneKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonTone_v2 {\n const {cardTone, scheme, tone} = options\n\n const states: Partial<ThemeColorButtonTone_v2> = {}\n\n for (const state of THEME_COLOR_STATES) {\n states[state] = buildSelectableStateColorTheme({cardTone, tone, scheme, state}, config)\n }\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n return states as ThemeColorButtonTone_v2\n}\n\nfunction buildSelectableStateColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n scheme: ThemeColorSchemeKey\n state: ThemeColorStateKey\n tone: ThemeColorStateToneKey\n },\n config?: ThemeConfig,\n): ThemeColorState_v2 {\n const {cardTone, scheme, state, tone} = options\n const cardTokens = config?.color?.base?.[cardTone]\n const tokens = config?.color?.selectable?.[tone]?.[state]\n\n const hue = tokens?._hue || cardTokens?._hue || 'gray'\n const blendMode = tokens?._blend || ['screen', 'multiply']\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n accent: {\n fg: _color(context, tokens?.accent?.fg),\n },\n avatar: buildAvatarColorTheme({scheme}, tokens),\n badge: buildBadgeColorTheme(tokens?.badge, {scheme}, config),\n bg: _color(context, tokens?.bg),\n border: _color(context, tokens?.border),\n code: {\n bg: _color(context, tokens?.code?.bg),\n fg: _color(context, tokens?.code?.fg),\n },\n fg: _color(context, tokens?.fg),\n icon: _color(context, tokens?.icon),\n muted: {\n bg: _color(context, tokens?.muted?.bg),\n fg: _color(context, tokens?.muted?.fg),\n },\n kbd: {\n bg: _color(context, tokens?.kbd?.bg),\n fg: _color(context, tokens?.kbd?.fg),\n border: _color(context, tokens?.kbd?.border),\n },\n link: {\n fg: _color(context, tokens?.link?.fg),\n },\n skeleton: {\n from: _color(context, tokens?.skeleton?.from),\n to: _color(context, tokens?.skeleton?.to),\n },\n }\n}\n\nfunction buildSyntaxColorTheme(\n options: {scheme: ThemeColorSchemeKey},\n config?: ThemeConfig,\n): ThemeColorSyntax {\n const {scheme} = options\n const tokens = config?.color?.syntax\n const context: ColorTokenContext = {hue: 'gray', scheme}\n\n return {\n atrule: _color(context, tokens?.atrule),\n attrName: _color(context, tokens?.attrName),\n attrValue: _color(context, tokens?.attrValue),\n attribute: _color(context, tokens?.attribute),\n boolean: _color(context, tokens?.boolean),\n builtin: _color(context, tokens?.builtin),\n cdata: _color(context, tokens?.cdata),\n char: _color(context, tokens?.char),\n class: _color(context, tokens?.class),\n className: _color(context, tokens?.className),\n comment: _color(context, tokens?.comment),\n constant: _color(context, tokens?.constant),\n deleted: _color(context, tokens?.deleted),\n doctype: _color(context, tokens?.doctype),\n entity: _color(context, tokens?.entity),\n function: _color(context, tokens?.function),\n hexcode: _color(context, tokens?.hexcode),\n id: _color(context, tokens?.id),\n important: _color(context, tokens?.important),\n inserted: _color(context, tokens?.inserted),\n keyword: _color(context, tokens?.keyword),\n number: _color(context, tokens?.number),\n operator: _color(context, tokens?.operator),\n prolog: _color(context, tokens?.prolog),\n property: _color(context, tokens?.property),\n pseudoClass: _color(context, tokens?.pseudoClass),\n pseudoElement: _color(context, tokens?.pseudoElement),\n punctuation: _color(context, tokens?.punctuation),\n regex: _color(context, tokens?.regex),\n selector: _color(context, tokens?.selector),\n string: _color(context, tokens?.string),\n symbol: _color(context, tokens?.symbol),\n tag: _color(context, tokens?.tag),\n unit: _color(context, tokens?.unit),\n url: _color(context, tokens?.url),\n variable: _color(context, tokens?.variable),\n }\n}\n","import {color} from '@sanity/color'\n\nimport {ThemeColorPalette} from '../config/types'\n\nexport const defaultColorPalette: ThemeColorPalette = color\n","import {RGB, RGBA} from '../types'\n\nfunction mixChannel(b: number, s: number, weight: number) {\n const diff = s - b\n\n const delta = diff * weight\n\n return b + delta\n}\n\n/**\n * Apply the \\`mix\\` blend mode\n * @internal\n */\nexport function mix(b: RGB | RGBA, s: RGB | RGBA, weight: number): RGB {\n return {\n r: mixChannel(b.r, s.r, weight),\n g: mixChannel(b.g, s.g, weight),\n b: mixChannel(b.b, s.b, weight),\n }\n}\n","function lerp(x: number, y: number, a: number): number {\n return x * (1 - a) + y * a\n}\n\nfunction invlerp(x: number, y: number, a: number): number {\n return clamp((a - x) / (y - x))\n}\n\nexport function clamp(a: number, min = 0, max = 1): number {\n return Math.min(max, Math.max(min, a))\n}\n\nexport function range(x1: number, y1: number, x2: number, y2: number, a: number): number {\n return lerp(x2, y2, invlerp(x1, y1, a))\n}\n\nexport function round(value: number): number {\n return Math.round(value)\n}\n","import {clamp, round} from '../utils'\nimport {HSL, RGB, RGBA} from './types'\n\n/**\n * @internal\n */\nexport function hexToRgb(hex: string): RGB {\n if (hex.length === 4) {\n const hexR = hex.slice(1, 2)\n const hexG = hex.slice(2, 3)\n const hexB = hex.slice(3, 4)\n\n return {\n r: parseInt(hexR + hexR, 16),\n g: parseInt(hexG + hexG, 16),\n b: parseInt(hexB + hexB, 16),\n }\n }\n\n return {\n r: parseInt(hex.slice(1, 3), 16),\n g: parseInt(hex.slice(3, 5), 16),\n b: parseInt(hex.slice(5, 7), 16),\n }\n}\n\n/**\n * @internal\n */\nexport function rgbaToRGBA(rgba: string): RGBA {\n const values = rgba.replace(/rgba\\(|\\)/g, '').split(',')\n\n return {\n r: parseInt(values[0]),\n g: parseInt(values[1]),\n b: parseInt(values[2]),\n a: parseFloat(values[3]),\n }\n}\n\n/**\n * @internal\n */\nexport function rgbToHex(color: RGB | RGBA): string {\n const r = round(clamp(Math.round(color.r), 0, 255))\n const g = round(clamp(Math.round(color.g), 0, 255))\n const b = round(clamp(Math.round(color.b), 0, 255))\n\n if ('a' in color) {\n return `rgba(${r},${g},${b},${color.a})`\n }\n\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n}\n\n/**\n * @internal\n * @see https://css-tricks.com/converting-color-spaces-in-javascript/\n */\nexport function rgbToHsl({r, g, b}: RGB): HSL {\n // Make r, g, and b fractions of 1\n r /= 255\n g /= 255\n b /= 255\n\n // Find greatest and smallest channel values\n const cmin = Math.min(r, g, b)\n const cmax = Math.max(r, g, b)\n const delta = cmax - cmin\n\n let h = 0\n let s = 0\n let l = 0\n\n // Calculate hue\n // No difference\n if (delta == 0) h = 0\n // Red is max\n else if (cmax == r) h = ((g - b) / delta) % 6\n // Green is max\n else if (cmax == g) h = (b - r) / delta + 2\n // Blue is max\n else h = (r - g) / delta + 4\n\n h = Math.round(h * 60)\n\n // Make negative hues positive behind 360°\n if (h < 0) h += 360\n\n // Calculate lightness\n l = (cmax + cmin) / 2\n\n // Calculate saturation\n s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1))\n\n // Multiply l and s by 100\n s = +(s * 100).toFixed(1)\n l = +(l * 100).toFixed(1)\n\n return {h, s, l}\n}\n\n/**\n * @internal\n */\nexport function hslToRgb(hsl: HSL): RGB {\n // Must be fractions of 1\n const s = hsl.s / 100\n const l = hsl.l / 100\n\n const c = (1 - Math.abs(2 * l - 1)) * s\n const x = c * (1 - Math.abs(((hsl.h / 60) % 2) - 1))\n const m = l - c / 2\n\n let r = 0\n let g = 0\n let b = 0\n\n if (0 <= hsl.h && hsl.h < 60) {\n r = c\n g = x\n b = 0\n } else if (60 <= hsl.h && hsl.h < 120) {\n r = x\n g = c\n b = 0\n } else if (120 <= hsl.h && hsl.h < 180) {\n r = 0\n g = c\n b = x\n } else if (180 <= hsl.h && hsl.h < 240) {\n r = 0\n g = x\n b = c\n } else if (240 <= hsl.h && hsl.h < 300) {\n r = x\n g = 0\n b = c\n } else if (300 <= hsl.h && hsl.h < 360) {\n r = c\n g = 0\n b = x\n }\n\n return {\n r: Math.round((r + m) * 255),\n g: Math.round((g + m) * 255),\n b: Math.round((b + m) * 255),\n }\n}\n","import {hexToRgb, hslToRgb, rgbaToRGBA} from './convert'\nimport {HSL, RGB, RGBA} from './types'\n\nconst HEX_CHARS = '0123456789ABCDEFabcdef'\n\nconst HSL_RE = /hsl\\(\\s*(\\d+)\\s*,\\s*((\\d+(?:\\.\\d+)?)%)\\s*,\\s*((\\d+(?:\\.\\d+)?)%)\\s*\\)/i\n\nfunction isHexChars(str: string) {\n for (const c of str) {\n if (HEX_CHARS.indexOf(c) === -1) {\n return false\n }\n }\n\n return true\n}\n\nfunction isHex(str: string) {\n if (str[0] !== '#') return false\n\n // Accept both #000 and #000000\n if (!(str.length === 4 || str.length === 7)) return false\n\n return isHexChars(str.slice(1))\n}\n\nfunction parseHsl(str: string): HSL {\n const res = HSL_RE.exec(str)\n\n if (!res) {\n throw new Error(`parseHsl: string is not a HSL color: \"${str}\"`)\n }\n\n return {h: parseInt(res[1]), s: parseFloat(res[3]), l: parseFloat(res[5])}\n}\n\n/**\n * @internal\n */\nexport function parseColor(color: unknown): RGB | RGBA {\n if (!color) return {r: 0, g: 0, b: 0}\n\n if (typeof color !== 'string') {\n throw new Error('parseColor: expected a string')\n }\n\n if (isHex(color)) {\n return hexToRgb(color)\n }\n\n if (color.startsWith('hsl(')) {\n return hslToRgb(parseHsl(color))\n }\n\n if (color.startsWith('rgba(')) {\n return rgbaToRGBA(color)\n }\n\n throw new Error(`parseColor: unexpected color format: \"${color}\"`)\n}\n","import {parseColor} from './parse'\n\n/**\n * @internal\n */\nexport function rgba(color: unknown, a: number): string {\n const rgb = parseColor(color)\n\n return `rgba(${rgb.r},${rgb.g},${rgb.b},${a})`\n}\n","import {RGB, RGBA} from '../types'\n\nfunction multiplyChannel(b: number, s: number) {\n return b * s\n}\n\n/**\n * Apply the \\`multiply\\` blend mode\n * Source: https://www.w3.org/TR/compositing-1/#blendingmultiply\n * @internal\n */\nexport function multiply(b: RGB | RGBA, s: RGB | RGBA): RGB {\n return {\n r: multiplyChannel(b.r / 255, s.r / 255) * 255,\n g: multiplyChannel(b.g / 255, s.g / 255) * 255,\n b: multiplyChannel(b.b / 255, s.b / 255) * 255,\n }\n}\n","import {RGB, RGBA} from '../types'\n\nfunction screenChannel(b: number, s: number) {\n return b + s - b * s\n}\n\n/**\n * Apply the \\`screen\\` blend mode\n * Source: https://www.w3.org/TR/compositing-1/#blendingscreen\n * @internal\n */\nexport function screen(b: RGB | RGBA, s: RGB | RGBA): RGB {\n return {\n r: screenChannel(b.r / 255, s.r / 255) * 255,\n g: screenChannel(b.g / 255, s.g / 255) * 255,\n b: screenChannel(b.b / 255, s.b / 255) * 255,\n }\n}\n","import {multiply} from './lib/color-fns/blend/multiply'\nimport {screen} from './lib/color-fns/blend/screen'\nimport {rgbToHex} from './lib/color-fns/convert'\nimport {parseColor} from './lib/color-fns/parse'\nimport {RGB} from './lib/color-fns/types'\nimport {clamp, range} from './lib/utils'\n\nconst RGB_RANGE: [number, number] = [0, 255]\n\nexport function mixThemeColor(\n value: string,\n options: {\n bg?: string\n blendMode: 'multiply' | 'screen'\n black: string\n white: string\n },\n): string {\n const {blendMode} = options\n\n const color = parseColor(value)\n const black = parseColor(options.black)\n const white = parseColor(options.white)\n\n const bg = options.bg ? parseColor(options.bg) : blendMode === 'multiply' ? white : black\n\n const paletteRange: {r: [number, number]; g: [number, number]; b: [number, number]} = {\n r: [black.r, white.r],\n g: [black.g, white.g],\n b: [black.b, white.b],\n }\n\n const convertedBgColor: RGB = {\n r: clamp(range(...paletteRange.r, ...RGB_RANGE, bg.r), ...RGB_RANGE),\n g: clamp(range(...paletteRange.g, ...RGB_RANGE, bg.g), ...RGB_RANGE),\n b: clamp(range(...paletteRange.b, ...RGB_RANGE, bg.b), ...RGB_RANGE),\n }\n\n const convertedColor: RGB = {\n r: clamp(range(...paletteRange.r, ...RGB_RANGE, color.r), ...RGB_RANGE),\n g: clamp(range(...paletteRange.g, ...RGB_RANGE, color.g), ...RGB_RANGE),\n b: clamp(range(...paletteRange.b, ...RGB_RANGE, color.b), ...RGB_RANGE),\n }\n\n const resultColor =\n blendMode === 'multiply'\n ? multiply(convertedBgColor, convertedColor)\n : screen(convertedBgColor, convertedColor)\n\n const v: RGB = {\n r: clamp(range(...RGB_RANGE, ...paletteRange.r, resultColor.r), ...paletteRange.r),\n g: clamp(range(...RGB_RANGE, ...paletteRange.g, resultColor.g), ...paletteRange.g),\n b: clamp(range(...RGB_RANGE, ...paletteRange.b, resultColor.b), ...paletteRange.b),\n }\n\n return rgbToHex(v)\n}\n","import {ColorTint as ColorPaletteValue} from '@sanity/color'\n\nimport {parseTokenValue} from '../config/tokens/parseTokenValue'\nimport {ThemeColorPalette} from '../config/types'\nimport {ThemeColorBlendModeKey} from '../system/color/_system'\nimport {mix} from './lib/color-fns/blend/mix'\nimport {hexToRgb, rgbToHex} from './lib/color-fns/convert'\nimport {rgba} from './lib/color-fns/rgba'\nimport {mixThemeColor} from './mixThemeColor'\n\nexport interface RenderColorValueOptions {\n bg?: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n}\n\nexport function renderColorValue(str: string, options: RenderColorValueOptions): string {\n const {bg, blendMode, colorPalette} = options\n\n if (bg === 'white') {\n throw new Error('Cannot blend with white background')\n }\n\n const node = parseTokenValue(str)\n\n if (!node || node.type !== 'color') {\n throw new Error(`Invalid color token value: ${str}`)\n }\n\n let hex = ''\n\n if (node.key === 'black') {\n hex = renderColorHex(colorPalette.black)\n }\n\n if (node.key === 'white') {\n hex = renderColorHex(colorPalette.white)\n }\n\n if (node.hue && node.tint) {\n hex = renderColorHex(colorPalette[node.hue][node.tint])\n }\n\n if (!hex) {\n throw new Error(`Invalid color token value: ${str}`)\n }\n\n const hexBeforeMix = hex\n\n const mixOptions = {\n blendMode,\n bg,\n black: renderColorHex(colorPalette.black),\n // opacity: node.opacity,\n white: renderColorHex(colorPalette.white),\n }\n\n try {\n hex = mixThemeColor(hex, mixOptions)\n\n if (bg && node.mix !== undefined) {\n const from = hexToRgb(bg)\n const to = hexToRgb(hex)\n\n hex = rgbToHex(mix(from, to, node.mix))\n }\n } catch (err) {\n console.warn('could not blend', hex, mixOptions)\n throw err\n }\n\n if (hex === '#aN') {\n console.warn(`invalid color token value: ${str}`)\n hex = hexBeforeMix\n }\n\n if (node.opacity !== undefined) {\n hex = rgba(hex, node.opacity)\n }\n\n return hex\n}\n\nfunction renderColorHex(color: string | ColorPaletteValue) {\n return typeof color === 'string' ? color : color.hex\n}\n","import {COLOR_HUES} from '@sanity/color'\n\nimport {ThemeColorPalette, ThemeConfig} from '../config/types'\nimport {defaultColorPalette} from '../defaults/colorPalette'\nimport {THEME_COLOR_CARD_TONES, THEME_COLOR_STATE_TONES} from '../system/color/_constants'\nimport {ThemeColorBlendModeKey} from '../system/color/_system'\nimport {ThemeColorAvatar_v2} from '../system/color/avatar'\nimport {ThemeColorBadge_v2, ThemeColorBadgeTone_v2} from '../system/color/badge'\nimport {\n ThemeColorButton_v2,\n ThemeColorButtonMode_v2,\n ThemeColorButtonTone_v2,\n} from '../system/color/button'\nimport {ThemeColorCard_v2, ThemeColorScheme_v2, ThemeColorSchemes_v2} from '../system/color/color'\nimport {\n ThemeColorInput_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n} from '../system/color/input'\nimport {ThemeColorKBD} from '../system/color/kbd'\nimport {ThemeColorSelectable_v2, ThemeColorSelectableTone_v2} from '../system/color/selectable'\nimport {ThemeColorShadow} from '../system/color/shadow'\nimport {ThemeColorState_v2} from '../system/color/state'\nimport {ThemeColorSyntax} from '../system/color/syntax'\nimport {defineLazyProperty} from './lib/lazy'\nimport {renderColorValue, RenderColorValueOptions} from './renderColorValue'\n\nexport function renderThemeColorSchemes(\n value: ThemeColorSchemes_v2,\n config?: ThemeConfig,\n): ThemeColorSchemes_v2 {\n const colorPalette = config?.palette ?? defaultColorPalette\n\n // Lazy schemes — each scheme is only rendered when first accessed\n // oxlint-disable-next-line no-unsafe-type-assertion\n const schemes = {} as ThemeColorSchemes_v2\n defineLazyProperty(schemes, 'light', () => renderThemeColorScheme(colorPalette, value.light))\n defineLazyProperty(schemes, 'dark', () => renderThemeColorScheme(colorPalette, value.dark))\n\n return schemes\n}\n\nfunction renderThemeColorScheme(\n colorPalette: ThemeColorPalette,\n value: ThemeColorScheme_v2,\n): ThemeColorScheme_v2 {\n // The `default` tone must be rendered eagerly — other tones depend on its `bg`.\n const renderedDefaultTone = renderThemeColor(value.default, {colorPalette})\n\n const bg = renderedDefaultTone.bg\n\n if (bg === 'white') {\n throw new Error('Cannot blend with white background')\n }\n\n // All other tones are lazy. `transparent` and `default` are rendered without\n // a `bg` option; the rest blend on top of `default`'s `bg`.\n // We iterate THEME_COLOR_CARD_TONES (not Object.entries) to avoid\n // force-evaluating lazy getters from the build phase.\n // oxlint-disable-next-line no-unsafe-type-assertion\n const scheme = {default: renderedDefaultTone} as ThemeColorScheme_v2\n\n for (const tone of THEME_COLOR_CARD_TONES) {\n if (tone === 'default') continue\n const opts = tone === 'transparent' ? {colorPalette} : {bg, colorPalette}\n defineLazyProperty(scheme, tone, () => renderThemeColor(value[tone], opts))\n }\n\n return scheme\n}\n\nfunction renderThemeColor(\n value: ThemeColorCard_v2,\n options: {\n bg?: string\n colorPalette: ThemeColorPalette\n },\n): ThemeColorCard_v2 {\n const {colorPalette, bg} = options\n const blendMode = value._blend || 'multiply'\n const baseBg = renderColorValue(value.bg, {colorPalette, bg, blendMode})\n const colorOptions: RenderColorValueOptions = {colorPalette, bg: baseBg, blendMode}\n\n const button = renderThemeColorButton(value.button, {\n baseBg,\n blendMode,\n colorPalette,\n })\n\n const selectable = renderThemeColorSelectable(value.selectable, {\n colorPalette,\n baseBg,\n blendMode,\n })\n\n const shadow: ThemeColorShadow = {\n outline: renderColorValue(value.shadow.outline, colorOptions),\n umbra: renderColorValue(value.shadow.umbra, {\n ...colorOptions,\n bg: undefined,\n colorPalette: {...colorPalette, black: '#000000'},\n }),\n penumbra: renderColorValue(value.shadow.penumbra, {\n ...colorOptions,\n bg: undefined,\n colorPalette: {...colorPalette, black: '#000000'},\n }),\n ambient: renderColorValue(value.shadow.ambient, {\n ...colorOptions,\n bg: undefined,\n colorPalette: {...colorPalette, black: '#000000'},\n }),\n }\n\n return {\n _blend: blendMode,\n _dark: value._dark,\n accent: {\n fg: renderColorValue(value.accent.fg, colorOptions),\n },\n avatar: renderThemeColorAvatar(value.avatar, {baseBg, colorPalette, blendMode}),\n backdrop: renderColorValue(value.backdrop, colorOptions),\n badge: renderThemeColorBadge(value.badge, {baseBg, colorPalette, blendMode}),\n bg: baseBg,\n border: renderColorValue(value.border, colorOptions),\n button,\n code: {\n bg: renderColorValue(value.code.bg, colorOptions),\n fg: renderColorValue(value.code.fg, colorOptions),\n },\n fg: renderColorValue(value.fg, colorOptions),\n focusRing: renderColorValue(value.focusRing, colorOptions),\n icon: renderColorValue(value.icon, colorOptions),\n input: renderThemeColorInput(value.input, {baseBg, colorPalette, blendMode}),\n kbd: renderThemeColorKBD(value.kbd, {baseBg, colorPalette, blendMode}),\n link: {\n fg: renderColorValue(value.link.fg, colorOptions),\n },\n muted: {\n bg: renderColorValue(value.muted.bg, colorOptions),\n fg: renderColorValue(value.muted.fg, colorOptions),\n },\n shadow,\n skeleton: {\n from: renderColorValue(value.skeleton.from, colorOptions),\n to: renderColorValue(value.skeleton.to, colorOptions),\n },\n syntax: renderSyntaxColorTheme(value.syntax, {baseBg, colorPalette, blendMode}),\n selectable,\n }\n}\n\nfunction renderThemeColorKBD(\n value: ThemeColorKBD,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorKBD {\n const {baseBg, blendMode, colorPalette} = options\n\n const rootOptions: RenderColorValueOptions = {\n bg: baseBg,\n blendMode,\n colorPalette,\n }\n\n const bg = renderColorValue(value.bg, rootOptions)\n\n const colorOptions: RenderColorValueOptions = {\n bg,\n blendMode,\n colorPalette,\n }\n\n return {\n bg,\n fg: renderColorValue(value.fg, colorOptions),\n border: renderColorValue(value.border, colorOptions),\n }\n}\n\nfunction renderThemeColorAvatar(\n value: ThemeColorAvatar_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorAvatar_v2 {\n // oxlint-disable-next-line no-unsafe-type-assertion\n const colorAvatar = {} as ThemeColorAvatar_v2\n\n for (const hue of COLOR_HUES) {\n colorAvatar[hue] = renderThemeColorAvatarColor(value[hue], options)\n }\n\n return colorAvatar\n}\n\nfunction renderThemeColorAvatarColor(\n value: ThemeColorAvatar_v2['gray'],\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorAvatar_v2['gray'] {\n const {baseBg, blendMode: rootBlendMode, colorPalette} = options\n const blendMode = value._blend || 'multiply'\n\n const rootOptions: RenderColorValueOptions = {\n bg: baseBg,\n blendMode: rootBlendMode,\n colorPalette,\n }\n\n const bg = renderColorValue(value.bg, rootOptions)\n\n const colorOptions: RenderColorValueOptions = {\n bg,\n blendMode,\n colorPalette,\n }\n\n return {\n _blend: blendMode,\n bg,\n fg: renderColorValue(value.fg, colorOptions),\n }\n}\n\nfunction renderThemeColorBadge(\n value: ThemeColorBadge_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorBadge_v2 {\n // oxlint-disable-next-line no-unsafe-type-assertion\n const colorBadge = {} as ThemeColorBadge_v2\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n colorBadge[tone] = renderThemeColorBadgeColor(value[tone], options)\n }\n\n return colorBadge\n}\n\nfunction renderThemeColorBadgeColor(\n value: ThemeColorBadgeTone_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorBadgeTone_v2 {\n const {baseBg, blendMode: rootBlendMode, colorPalette} = options\n\n const blendMode = rootBlendMode\n\n const rootOptions: RenderColorValueOptions = {\n bg: baseBg,\n blendMode: rootBlendMode,\n colorPalette,\n }\n\n const bg = renderColorValue(value.bg, rootOptions)\n\n const colorOptions: RenderColorValueOptions = {\n bg,\n blendMode,\n colorPalette,\n }\n\n return {\n bg,\n dot: renderColorValue(value.dot, colorOptions),\n fg: renderColorValue(value.fg, colorOptions),\n icon: renderColorValue(value.icon, colorOptions),\n }\n}\n\nfunction renderThemeColorButton(\n value: ThemeColorButton_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorButton_v2 {\n return {\n default: renderThemeColorButtonTones(value.default, options),\n ghost: renderThemeColorButtonTones(value.ghost, options),\n bleed: renderThemeColorButtonTones(value.bleed, options),\n }\n}\n\nfunction renderThemeColorButtonTones(\n value: ThemeColorButtonMode_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorButtonMode_v2 {\n // oxlint-disable-next-line no-unsafe-type-assertion\n const colorButtonMode = {} as ThemeColorButtonMode_v2\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n colorButtonMode[tone] = renderThemeColorButtonStates(value[tone], options)\n }\n\n return colorButtonMode\n}\n\nfunction renderThemeColorButtonStates(\n value: ThemeColorButtonTone_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorButtonTone_v2 {\n return {\n enabled: renderThemeColorState(value.enabled, options),\n hovered: renderThemeColorState(value.hovered, options),\n pressed: renderThemeColorState(value.pressed, options),\n selected: renderThemeColorState(value.selected, options),\n disabled: renderThemeColorState(value.disabled, options),\n }\n}\n\nfunction renderThemeColorState(\n value: ThemeColorState_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorState_v2 {\n const {baseBg, blendMode: rootBlendMode, colorPalette} = options\n const blendMode = value._blend || 'multiply'\n\n const rootOptions: RenderColorValueOptions = {\n bg: baseBg,\n blendMode: rootBlendMode,\n colorPalette,\n }\n\n const bg = renderColorValue(value.bg, rootOptions)\n\n const colorOptions: RenderColorValueOptions = {\n bg,\n blendMode,\n colorPalette,\n }\n\n return {\n _blend: blendMode,\n accent: {\n fg: renderColorValue(value.accent.fg, colorOptions),\n },\n avatar: renderThemeColorAvatar(value.avatar, {baseBg: bg, colorPalette, blendMode}),\n badge: renderThemeColorBadge(value.badge, {baseBg: bg, colorPalette, blendMode}),\n bg,\n border: renderColorValue(value.border, colorOptions),\n code: {\n bg: renderColorValue(value.code.bg, colorOptions),\n fg: renderColorValue(value.code.fg, colorOptions),\n },\n fg: renderColorValue(value.fg, colorOptions),\n icon: renderColorValue(value.icon, colorOptions),\n link: {\n fg: renderColorValue(value.link.fg, colorOptions),\n },\n muted: {\n bg: renderColorValue(value.muted.bg, colorOptions),\n fg: renderColorValue(value.muted.fg, colorOptions),\n },\n kbd: {\n bg: renderColorValue(value.kbd.bg, colorOptions),\n fg: renderColorValue(value.kbd.fg, colorOptions),\n border: renderColorValue(value.kbd.border, colorOptions),\n },\n skeleton: {\n from: renderColorValue(value.skeleton?.from, colorOptions),\n to: renderColorValue(value.skeleton?.to, colorOptions),\n },\n }\n}\n\nfunction renderThemeColorInput(\n value: ThemeColorInput_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorInput_v2 {\n return {\n default: renderInputStatesColorTheme(value.default, options),\n invalid: renderInputStatesColorTheme(value.invalid, options),\n }\n}\n\nfunction renderInputStatesColorTheme(\n value: ThemeColorInputMode_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorInputMode_v2 {\n return {\n enabled: renderInputStateColorTheme(value.enabled, options),\n hovered: renderInputStateColorTheme(value.hovered, options),\n readOnly: renderInputStateColorTheme(value.readOnly, options),\n disabled: renderInputStateColorTheme(value.disabled, options),\n }\n}\n\nfunction renderInputStateColorTheme(\n value: ThemeColorInputState_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorInputState_v2 {\n const {baseBg, blendMode: rootBlendMode, colorPalette} = options\n const blendMode = value._blend || 'multiply'\n const rootOptions: RenderColorValueOptions = {colorPalette, bg: baseBg, blendMode: rootBlendMode}\n const bg = renderColorValue(value.bg, rootOptions)\n const colorOptions: RenderColorValueOptions = {colorPalette, bg, blendMode}\n\n return {\n _blend: blendMode,\n bg,\n border: renderColorValue(value.border, colorOptions),\n fg: renderColorValue(value.fg, colorOptions),\n muted: {\n bg: renderColorValue(value.muted.bg, colorOptions),\n },\n placeholder: renderColorValue(value.placeholder, colorOptions),\n }\n}\n\nfunction renderThemeColorSelectable(\n value: ThemeColorSelectable_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorSelectable_v2 {\n // oxlint-disable-next-line no-unsafe-type-assertion\n const colorSelectable = {} as ThemeColorSelectable_v2\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n colorSelectable[tone] = renderThemeColorSelectableStates(value[tone], options)\n }\n\n return colorSelectable\n}\n\nfunction renderThemeColorSelectableStates(\n value: ThemeColorSelectableTone_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorSelectableTone_v2 {\n return {\n enabled: renderThemeColorState(value.enabled, options),\n hovered: renderThemeColorState(value.hovered, options),\n pressed: renderThemeColorState(value.pressed, options),\n selected: renderThemeColorState(value.selected, options),\n disabled: renderThemeColorState(value.disabled, options),\n }\n}\n\nfunction renderSyntaxColorTheme(\n value: ThemeColorSyntax,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorSyntax {\n const {colorPalette, baseBg, blendMode} = options\n const colorOptions: RenderColorValueOptions = {colorPalette, bg: baseBg, blendMode}\n\n return {\n atrule: renderColorValue(value.atrule, colorOptions),\n attrName: renderColorValue(value.attrName, colorOptions),\n attrValue: renderColorValue(value.attrValue, colorOptions),\n attribute: renderColorValue(value.attribute, colorOptions),\n boolean: renderColorValue(value.boolean, colorOptions),\n builtin: renderColorValue(value.builtin, colorOptions),\n cdata: renderColorValue(value.cdata, colorOptions),\n char: renderColorValue(value.char, colorOptions),\n class: renderColorValue(value.class, colorOptions),\n className: renderColorValue(value.className, colorOptions),\n comment: renderColorValue(value.comment, colorOptions),\n constant: renderColorValue(value.constant, colorOptions),\n deleted: renderColorValue(value.deleted, colorOptions),\n doctype: renderColorValue(value.doctype, colorOptions),\n entity: renderColorValue(value.entity, colorOptions),\n function: renderColorValue(value.function, colorOptions),\n hexcode: renderColorValue(value.hexcode, colorOptions),\n id: renderColorValue(value.id, colorOptions),\n important: renderColorValue(value.important, colorOptions),\n inserted: renderColorValue(value.inserted, colorOptions),\n keyword: renderColorValue(value.keyword, colorOptions),\n number: renderColorValue(value.number, colorOptions),\n operator: renderColorValue(value.operator, colorOptions),\n prolog: renderColorValue(value.prolog, colorOptions),\n property: renderColorValue(value.property, colorOptions),\n pseudoClass: renderColorValue(value.pseudoClass, colorOptions),\n pseudoElement: renderColorValue(value.pseudoElement, colorOptions),\n punctuation: renderColorValue(value.punctuation, colorOptions),\n regex: renderColorValue(value.regex, colorOptions),\n selector: renderColorValue(value.selector, colorOptions),\n string: renderColorValue(value.string, colorOptions),\n symbol: renderColorValue(value.symbol, colorOptions),\n tag: renderColorValue(value.tag, colorOptions),\n unit: renderColorValue(value.unit, colorOptions),\n url: renderColorValue(value.url, colorOptions),\n variable: renderColorValue(value.variable, colorOptions),\n }\n}\n","import {ThemeConfig} from '../config/types'\nimport {defaultThemeConfig} from '../defaults/config'\nimport {defaultThemeFonts} from '../defaults/fonts'\nimport {RootTheme, RootTheme_v2} from '../system/theme'\nimport {v2_v0} from '../versioning/v2_v0'\nimport {buildColorTheme} from './buildColorTheme'\nimport {renderThemeColorSchemes} from './renderColorTheme'\n\n/** @internal */\nexport function buildTheme(config?: ThemeConfig): RootTheme {\n const colorTheme = buildColorTheme(config)\n\n const v2: RootTheme_v2 = {\n _version: 2,\n avatar: config?.avatar ?? defaultThemeConfig.avatar,\n button: config?.button ?? defaultThemeConfig.button,\n card: config?.card ?? defaultThemeConfig.card,\n // How colors are generated:\n // 1. Merge custom tokens with default tokens\n // 2. Generate tree of color keys (gray/500, black, white, etc.)\n // 3. Apply mixing and render to hex values\n // render(build(mergeWithDefaults()))\n color: renderThemeColorSchemes(colorTheme, config),\n container: config?.container ?? defaultThemeConfig.container,\n font: config?.font ?? defaultThemeFonts,\n input: config?.input ?? defaultThemeConfig.input,\n layer: config?.layer ?? defaultThemeConfig.layer,\n media: config?.media ?? defaultThemeConfig.media,\n radius: config?.radius ?? defaultThemeConfig.radius,\n shadow: config?.shadow ?? defaultThemeConfig.shadow,\n space: config?.space ?? defaultThemeConfig.space,\n style: config?.style ?? defaultThemeConfig.style,\n }\n\n return v2_v0(v2)\n}\n","import {ThemeColorBase} from '../../../../system/v0/color/base'\nimport {ThemeColorMuted} from '../../../../system/v0/color/muted'\nimport {\n ThemeColorSelectable,\n ThemeColorSelectableStates,\n} from '../../../../system/v0/color/selectable'\nimport {ThemeColorSolid} from '../../../../system/v0/color/solid'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSelectableTones(\n // oxlint-disable-next-line no-deprecated\n opts: ThemeColorBuilderOpts,\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase,\n dark: boolean,\n // oxlint-disable-next-line no-deprecated\n solid: ThemeColorSolid,\n // oxlint-disable-next-line no-deprecated\n muted: ThemeColorMuted,\n // oxlint-disable-next-line no-deprecated\n): ThemeColorSelectable {\n return {\n default: _createSelectableStates(opts, base, dark, solid, muted, 'default'),\n primary: _createSelectableStates(opts, base, dark, solid, muted, 'primary'),\n positive: _createSelectableStates(opts, base, dark, solid, muted, 'positive'),\n caution: _createSelectableStates(opts, base, dark, solid, muted, 'caution'),\n critical: _createSelectableStates(opts, base, dark, solid, muted, 'critical'),\n }\n}\n\nfunction _createSelectableStates(\n // oxlint-disable-next-line no-deprecated\n opts: ThemeColorBuilderOpts,\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase,\n dark: boolean,\n // oxlint-disable-next-line no-deprecated\n solid: ThemeColorSolid,\n // oxlint-disable-next-line no-deprecated\n muted: ThemeColorMuted,\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical',\n // oxlint-disable-next-line no-deprecated\n): ThemeColorSelectableStates {\n return {\n enabled: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'enabled',\n tone,\n }),\n hovered: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'hovered',\n tone,\n }),\n pressed: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'pressed',\n tone,\n }),\n selected: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'selected',\n tone,\n }),\n disabled: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'disabled',\n tone,\n }),\n }\n}\n","import {ThemeColorName} from '../../../../system/v0/color/_system'\nimport {ThemeColorBase} from '../../../../system/v0/color/base'\nimport {ThemeColorSolid} from '../../../../system/v0/color/solid'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSolidTones(\n // oxlint-disable-next-line no-deprecated\n opts: ThemeColorBuilderOpts,\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase,\n dark: boolean,\n // oxlint-disable-next-line no-deprecated\n name: ThemeColorName,\n // oxlint-disable-next-line no-deprecated\n): ThemeColorSolid {\n return {\n default: {\n enabled: opts.solid({base, dark, tone: 'default', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'default', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'default', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'default', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'default', name, state: 'selected'}),\n },\n transparent: {\n enabled: opts.solid({base, dark, tone: 'transparent', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'transparent', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'transparent', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'transparent', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'transparent', name, state: 'selected'}),\n },\n primary: {\n enabled: opts.solid({base, dark, tone: 'primary', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'primary', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'primary', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'primary', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'primary', name, state: 'selected'}),\n },\n positive: {\n enabled: opts.solid({base, dark, tone: 'positive', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'positive', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'positive', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'positive', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'positive', name, state: 'selected'}),\n },\n caution: {\n enabled: opts.solid({base, dark, tone: 'caution', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'caution', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'caution', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'caution', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'caution', name, state: 'selected'}),\n },\n critical: {\n enabled: opts.solid({base, dark, tone: 'critical', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'critical', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'critical', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'critical', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'critical', name, state: 'selected'}),\n },\n }\n}\n","import {ThemeColorButtonModeKey} from '../../../../system/color/_system'\nimport {ThemeColorBase} from '../../../../system/v0/color/base'\nimport {ThemeColorButtonTones} from '../../../../system/v0/color/button'\nimport {ThemeColorMuted} from '../../../../system/v0/color/muted'\nimport {ThemeColorSolid} from '../../../../system/v0/color/solid'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createButtonTones(\n // oxlint-disable-next-line no-deprecated\n opts: ThemeColorBuilderOpts,\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase,\n dark: boolean,\n // oxlint-disable-next-line no-deprecated\n solid: ThemeColorSolid,\n // oxlint-disable-next-line no-deprecated\n muted: ThemeColorMuted,\n mode: ThemeColorButtonModeKey,\n // oxlint-disable-next-line no-deprecated\n): ThemeColorButtonTones {\n return {\n default: opts.button({\n base,\n dark,\n solid: solid.default,\n muted: muted.default,\n mode,\n }),\n primary: opts.button({\n base,\n dark,\n solid: solid.primary,\n muted: muted.primary,\n mode,\n }),\n positive: opts.button({\n base,\n dark,\n solid: solid.positive,\n muted: muted.positive,\n mode,\n }),\n caution: opts.button({\n base,\n dark,\n solid: solid.caution,\n muted: muted.caution,\n mode,\n }),\n critical: opts.button({\n base,\n dark,\n solid: solid.critical,\n muted: muted.critical,\n mode,\n }),\n }\n}\n","import {ThemeColorBase} from '../../../../system/v0/color/base'\nimport {ThemeColorButton} from '../../../../system/v0/color/button'\nimport {ThemeColorMuted} from '../../../../system/v0/color/muted'\nimport {ThemeColorSolid} from '../../../../system/v0/color/solid'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {createButtonTones} from './createButtonTones'\n\nexport function createButtonModes(\n // oxlint-disable-next-line no-deprecated\n opts: ThemeColorBuilderOpts,\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase,\n dark: boolean,\n // oxlint-disable-next-line no-deprecated\n solid: ThemeColorSolid,\n // oxlint-disable-next-line no-deprecated\n muted: ThemeColorMuted,\n // oxlint-disable-next-line no-deprecated\n): ThemeColorButton {\n return {\n default: createButtonTones(opts, base, dark, solid, muted, 'default'),\n ghost: createButtonTones(opts, base, dark, solid, muted, 'ghost'),\n bleed: createButtonTones(opts, base, dark, solid, muted, 'bleed'),\n }\n}\n","import {ThemeColorName} from '../../../../system/v0/color/_system'\nimport {ThemeColorBase} from '../../../../system/v0/color/base'\nimport {ThemeColorCard} from '../../../../system/v0/color/card'\nimport {ThemeColorMuted} from '../../../../system/v0/color/muted'\nimport {ThemeColorSolid} from '../../../../system/v0/color/solid'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createCardStates(\n // oxlint-disable-next-line no-deprecated\n opts: ThemeColorBuilderOpts,\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase,\n dark: boolean,\n // oxlint-disable-next-line no-deprecated\n name: ThemeColorName,\n // oxlint-disable-next-line no-deprecated\n solid: ThemeColorSolid,\n // oxlint-disable-next-line no-deprecated\n muted: ThemeColorMuted,\n // oxlint-disable-next-line no-deprecated\n): ThemeColorCard {\n return {\n enabled: opts.card({\n base,\n dark,\n name,\n state: 'enabled',\n solid,\n muted,\n }),\n disabled: opts.card({\n base,\n dark,\n name,\n state: 'disabled',\n solid,\n muted,\n }),\n hovered: opts.card({\n base,\n dark,\n name,\n state: 'hovered',\n solid,\n muted,\n }),\n pressed: opts.card({\n base,\n dark,\n name,\n state: 'pressed',\n solid,\n muted,\n }),\n selected: opts.card({\n base,\n dark,\n name,\n state: 'selected',\n solid,\n muted,\n }),\n }\n}\n","import {ThemeColorBuilderOpts} from './factory'\n\nconst black = 'hsl(0, 0%, 0%)'\nconst white = 'hsl(0, 0%, 100%)'\n\nconst colors = {\n default: {\n lightest: 'hsl(0, 0%, 95%)',\n lighter: 'hsl(0, 0%, 70%)',\n light: 'hsl(0, 0%, 65%)',\n base: 'hsl(0, 0%, 50%)',\n dark: 'hsl(0, 0%, 35%)',\n darker: 'hsl(0, 0%, 20%)',\n darkest: 'hsl(0, 0%, 5%)',\n },\n transparent: {\n lightest: 'hsl(240, 100%, 95%)',\n lighter: 'hsl(240, 100%, 70%)',\n light: 'hsl(240, 100%, 65%)',\n base: 'hsl(240, 100%, 50%)',\n dark: 'hsl(240, 100%, 35%)',\n darker: 'hsl(240, 100%, 20%)',\n darkest: 'hsl(240, 100%, 5%)',\n },\n primary: {\n lightest: 'hsl(240, 100%, 95%)',\n lighter: 'hsl(240, 100%, 70%)',\n light: 'hsl(240, 100%, 65%)',\n base: 'hsl(240, 100%, 50%)',\n dark: 'hsl(240, 100%, 35%)',\n darker: 'hsl(240, 100%, 20%)',\n darkest: 'hsl(240, 100%, 5%)',\n },\n positive: {\n lightest: 'hsl(120, 100%, 95%)',\n lighter: 'hsl(120, 100%, 70%)',\n light: 'hsl(120, 100%, 65%)',\n base: 'hsl(120, 100%, 50%)',\n dark: 'hsl(120, 100%, 35%)',\n darker: 'hsl(120, 100%, 20%)',\n darkest: 'hsl(120, 100%, 5%)',\n },\n caution: {\n lightest: 'hsl(60, 100%, 95%)',\n lighter: 'hsl(60, 100%, 70%)',\n light: 'hsl(60, 100%, 65%)',\n base: 'hsl(60, 100%, 50%)',\n dark: 'hsl(60, 100%, 35%)',\n darker: 'hsl(60, 100%, 20%)',\n darkest: 'hsl(60, 100%, 5%)',\n },\n critical: {\n lightest: 'hsl(0, 100%, 95%)',\n lighter: 'hsl(0, 100%, 70%)',\n light: 'hsl(0, 100%, 65%)',\n base: 'hsl(0, 100%, 50%)',\n dark: 'hsl(0, 100%, 35%)',\n darker: 'hsl(0, 100%, 20%)',\n darkest: 'hsl(0, 100%, 5%)',\n },\n}\n\nconst spots = {\n gray: 'hsl(0, 0%, 50%)',\n red: 'hsl(0, 100%, 50%)',\n orange: 'hsl(30, 100%, 50%)',\n yellow: 'hsl(60, 100%, 50%)',\n green: 'hsl(120, 100%, 50%)',\n cyan: 'hsl(180, 100%, 50%)',\n blue: 'hsl(240, 100%, 50%)',\n purple: 'hsl(270, 100%, 50%)',\n magenta: 'hsl(300, 100%, 50%)',\n}\n\nconst tones = {\n transparent: {\n bg: [colors.transparent.darkest, colors.transparent.lightest],\n fg: [colors.transparent.lightest, colors.transparent.darkest],\n border: [colors.transparent.darker, colors.transparent.lighter],\n focusRing: [colors.transparent.base, colors.transparent.base],\n },\n primary: {\n bg: [colors.primary.darkest, colors.primary.lightest],\n fg: [colors.primary.lightest, colors.primary.darkest],\n border: [colors.primary.darker, colors.primary.lighter],\n focusRing: [colors.primary.base, colors.primary.base],\n },\n positive: {\n bg: [colors.positive.darkest, colors.positive.lightest],\n fg: [colors.positive.lightest, colors.positive.darkest],\n border: [colors.positive.darker, colors.positive.lighter],\n focusRing: [colors.positive.base, colors.positive.base],\n },\n caution: {\n bg: [colors.caution.darkest, colors.caution.lightest],\n fg: [colors.caution.lightest, colors.caution.darkest],\n border: [colors.caution.darker, colors.caution.lighter],\n focusRing: [colors.caution.base, colors.caution.base],\n },\n critical: {\n bg: [colors.critical.darkest, colors.critical.lightest],\n fg: [colors.critical.lightest, colors.critical.darkest],\n border: [colors.critical.darker, colors.critical.lighter],\n focusRing: [colors.critical.base, colors.critical.base],\n },\n}\n\n// oxlint-disable-next-line no-deprecated\nexport const defaultOpts: ThemeColorBuilderOpts = {\n base: ({dark, name}) => {\n if (name === 'default') {\n return {\n bg: dark ? black : white,\n fg: dark ? white : black,\n border: dark ? colors.default.darkest : colors.default.lightest,\n focusRing: colors.primary.base,\n shadow: {\n outline: black,\n umbra: black,\n penumbra: black,\n ambient: black,\n },\n skeleton: {\n from: dark ? white : black,\n to: dark ? white : black,\n },\n }\n }\n\n // Variants:\n // - primary\n // - positive\n // - caution\n // - critical\n return {\n bg: tones[name].bg[dark ? 0 : 1],\n fg: tones[name].fg[dark ? 0 : 1],\n border: tones[name].border[dark ? 0 : 1],\n focusRing: tones[name].focusRing[dark ? 0 : 1],\n shadow: {\n outline: black,\n umbra: black,\n penumbra: black,\n ambient: black,\n },\n skeleton: {\n from: dark ? white : black,\n to: dark ? white : black,\n },\n }\n },\n\n solid: ({base, dark, state, tone}) => {\n const color = colors[tone]\n\n if (state === 'hovered') {\n return {\n bg: dark ? color.light : color.dark,\n bg2: dark ? color.light : color.dark,\n border: dark ? color.lighter : color.darker,\n fg: dark ? color.darkest : color.lightest,\n icon: dark ? color.darkest : color.lightest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n }\n\n return {\n bg: color.base,\n bg2: color.base,\n border: dark ? color.light : color.dark,\n fg: dark ? color.darkest : color.lightest,\n icon: dark ? color.darkest : color.lightest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n muted: ({base, dark, state, tone}) => {\n const color = colors[tone]\n\n if (state === 'hovered') {\n return {\n bg: dark ? color.darker : color.lighter,\n bg2: dark ? color.darker : color.lighter,\n border: dark ? color.lighter : color.darker,\n fg: dark ? color.lightest : color.darkest,\n icon: dark ? color.lightest : color.darkest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n }\n\n return {\n bg: dark ? color.darkest : color.lightest,\n bg2: dark ? color.darkest : color.lightest,\n border: dark ? color.darker : color.lighter,\n fg: dark ? color.lighter : color.darker,\n icon: dark ? color.lighter : color.darker,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n button: ({base, mode, muted, solid}) => {\n if (mode === 'bleed') {\n return {\n ...muted,\n enabled: {\n bg: 'transparent',\n bg2: 'transparent',\n fg: muted.enabled.fg,\n icon: muted.enabled.fg,\n border: 'transparent',\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n },\n hovered: {\n bg: muted.enabled.bg,\n bg2: muted.enabled.bg,\n fg: muted.hovered.fg,\n icon: muted.hovered.fg,\n border: 'transparent',\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n },\n }\n }\n\n if (mode === 'ghost')\n return {\n ...solid,\n enabled: muted.enabled,\n }\n\n return solid\n },\n\n card: ({base}) => {\n return {\n bg: black,\n bg2: black,\n fg: black,\n icon: black,\n border: black,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n input: () => {\n return {\n bg: black,\n bg2: black,\n fg: black,\n border: black,\n placeholder: black,\n }\n },\n\n selectable: ({muted, state, tone}) => {\n return muted[tone][state]\n },\n\n spot: ({key}) => {\n return spots[key]\n },\n\n syntax: () => ({\n atrule: black,\n attrName: black,\n attrValue: black,\n attribute: black,\n boolean: black,\n builtin: black,\n cdata: black,\n char: black,\n class: black,\n className: black,\n comment: black,\n constant: black,\n deleted: black,\n doctype: black,\n entity: black,\n function: black,\n hexcode: black,\n id: black,\n important: black,\n inserted: black,\n keyword: black,\n number: black,\n operator: black,\n prolog: black,\n property: black,\n pseudoClass: black,\n pseudoElement: black,\n punctuation: black,\n regex: black,\n selector: black,\n string: black,\n symbol: black,\n tag: black,\n unit: black,\n url: black,\n variable: black,\n }),\n}\n","import {ThemeColorBase} from '../../../../system/v0/color/base'\nimport {ThemeColorInput} from '../../../../system/v0/color/input'\nimport {ThemeColorMuted} from '../../../../system/v0/color/muted'\nimport {ThemeColorSolid} from '../../../../system/v0/color/solid'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createInputModes(\n // oxlint-disable-next-line no-deprecated\n opts: ThemeColorBuilderOpts,\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase,\n dark: boolean,\n // oxlint-disable-next-line no-deprecated\n solid: ThemeColorSolid,\n // oxlint-disable-next-line no-deprecated\n muted: ThemeColorMuted,\n // oxlint-disable-next-line no-deprecated\n): ThemeColorInput {\n return {\n default: {\n enabled: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'enabled',\n solid: solid.default,\n muted: muted.default,\n }),\n disabled: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'disabled',\n solid: solid.default,\n muted: muted.default,\n }),\n hovered: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'hovered',\n solid: solid.default,\n muted: muted.default,\n }),\n readOnly: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'readOnly',\n solid: solid.default,\n muted: muted.default,\n }),\n },\n invalid: {\n enabled: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'enabled',\n solid: solid.default,\n muted: muted.default,\n }),\n disabled: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'disabled',\n solid: solid.default,\n muted: muted.default,\n }),\n hovered: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'hovered',\n solid: solid.default,\n muted: muted.default,\n }),\n readOnly: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'readOnly',\n solid: solid.default,\n muted: muted.default,\n }),\n },\n }\n}\n","import {ThemeColorName} from '../../../../system/v0/color/_system'\nimport {ThemeColorBase} from '../../../../system/v0/color/base'\nimport {ThemeColorMuted} from '../../../../system/v0/color/muted'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createMutedTones(\n // oxlint-disable-next-line no-deprecated\n opts: ThemeColorBuilderOpts,\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase,\n dark: boolean,\n // oxlint-disable-next-line no-deprecated\n name: ThemeColorName,\n // oxlint-disable-next-line no-deprecated\n): ThemeColorMuted {\n return {\n default: {\n enabled: opts.muted({base, dark, tone: 'default', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'default', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'default', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'default', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'default', name, state: 'selected'}),\n },\n transparent: {\n enabled: opts.muted({base, dark, tone: 'transparent', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'transparent', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'transparent', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'transparent', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'transparent', name, state: 'selected'}),\n },\n primary: {\n enabled: opts.muted({base, dark, tone: 'primary', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'primary', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'primary', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'primary', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'primary', name, state: 'selected'}),\n },\n positive: {\n enabled: opts.muted({base, dark, tone: 'positive', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'positive', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'positive', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'positive', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'positive', name, state: 'selected'}),\n },\n caution: {\n enabled: opts.muted({base, dark, tone: 'caution', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'caution', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'caution', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'caution', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'caution', name, state: 'selected'}),\n },\n critical: {\n enabled: opts.muted({base, dark, tone: 'critical', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'critical', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'critical', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'critical', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'critical', name, state: 'selected'}),\n },\n }\n}\n","import {ThemeColorBase} from '../../../../system/v0/color/base'\nimport {ThemeColorSpot} from '../../../../system/v0/color/spot'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSpot(\n // oxlint-disable-next-line no-deprecated\n opts: ThemeColorBuilderOpts,\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase,\n dark: boolean,\n // oxlint-disable-next-line no-deprecated\n): ThemeColorSpot {\n return {\n gray: opts.spot({base, dark, key: 'gray'}),\n blue: opts.spot({base, dark, key: 'blue'}),\n purple: opts.spot({base, dark, key: 'purple'}),\n magenta: opts.spot({base, dark, key: 'magenta'}),\n red: opts.spot({base, dark, key: 'red'}),\n orange: opts.spot({base, dark, key: 'orange'}),\n yellow: opts.spot({base, dark, key: 'yellow'}),\n green: opts.spot({base, dark, key: 'green'}),\n cyan: opts.spot({base, dark, key: 'cyan'}),\n }\n}\n","import {ThemeColorButtonModeKey} from '../../../system/color/_system'\nimport {ThemeColorSyntax} from '../../../system/color/syntax'\nimport {ThemeColorGenericState} from '../../../system/v0/color/_generic'\nimport {ThemeColorName, ThemeColorToneKey} from '../../../system/v0/color/_system'\nimport {ThemeColorBase} from '../../../system/v0/color/base'\nimport {ThemeColorButtonStates} from '../../../system/v0/color/button'\nimport {ThemeColor, ThemeColorScheme, ThemeColorSchemes} from '../../../system/v0/color/color'\nimport {ThemeColorInputState} from '../../../system/v0/color/input'\nimport {ThemeColorMuted, ThemeColorMutedTone} from '../../../system/v0/color/muted'\nimport {ThemeColorSolid, ThemeColorSolidTone} from '../../../system/v0/color/solid'\nimport {ThemeColorSpotKey} from '../../../system/v0/color/spot'\nimport {createSelectableTones} from './_selectable/createSelectableTones'\nimport {createSolidTones} from './_solid/createSolidTones'\nimport {createButtonModes} from './button/createButtonModes'\nimport {createCardStates} from './card/createCardStates'\nimport {defaultOpts} from './defaults'\nimport {createInputModes} from './input/createInputModes'\nimport {createMutedTones} from './muted/createMuted'\nimport {createSpot} from './spot/createSpot'\n\n/**\n * @public\n * @deprecated Use `buildColorTheme` instead.\n */\nexport interface ThemeColorBuilderOpts {\n // oxlint-disable-next-line no-deprecated\n base: (opts: {dark: boolean; name: ThemeColorName}) => ThemeColorBase\n solid: (opts: {\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase\n dark: boolean\n // oxlint-disable-next-line no-deprecated\n tone: ThemeColorName\n // oxlint-disable-next-line no-deprecated\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n // oxlint-disable-next-line no-deprecated\n }) => ThemeColorGenericState\n muted: (opts: {\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase\n dark: boolean\n // oxlint-disable-next-line no-deprecated\n tone: ThemeColorToneKey\n // oxlint-disable-next-line no-deprecated\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n // oxlint-disable-next-line no-deprecated\n }) => ThemeColorGenericState\n card: (opts: {\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase\n dark: boolean\n // oxlint-disable-next-line no-deprecated\n muted: ThemeColorMuted\n // oxlint-disable-next-line no-deprecated\n name: ThemeColorName\n // oxlint-disable-next-line no-deprecated\n solid: ThemeColorSolid\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n // oxlint-disable-next-line no-deprecated\n }) => ThemeColorGenericState\n button: (opts: {\n dark: boolean\n mode: ThemeColorButtonModeKey\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase\n // oxlint-disable-next-line no-deprecated\n solid: ThemeColorSolidTone\n // oxlint-disable-next-line no-deprecated\n muted: ThemeColorMutedTone\n // oxlint-disable-next-line no-deprecated\n }) => ThemeColorButtonStates\n input: (opts: {\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase\n // oxlint-disable-next-line no-deprecated\n solid: ThemeColorSolidTone\n // oxlint-disable-next-line no-deprecated\n muted: ThemeColorMutedTone\n dark: boolean\n mode: 'default' | 'invalid'\n state: 'enabled' | 'disabled' | 'hovered' | 'readOnly'\n // oxlint-disable-next-line no-deprecated\n }) => ThemeColorInputState\n selectable: (opts: {\n dark: boolean\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase\n // oxlint-disable-next-line no-deprecated\n solid: ThemeColorSolid\n // oxlint-disable-next-line no-deprecated\n muted: ThemeColorMuted\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical'\n // oxlint-disable-next-line no-deprecated\n }) => ThemeColorGenericState\n // oxlint-disable-next-line no-deprecated\n syntax: (opts: {base: ThemeColorBase; dark: boolean}) => ThemeColorSyntax\n // oxlint-disable-next-line no-deprecated\n spot: (opts: {base: ThemeColorBase; dark: boolean; key: ThemeColorSpotKey}) => string\n}\n\n/**\n * @public\n * @deprecated Use `ThemeConfig` instead.\n */\n// oxlint-disable-next-line no-deprecated\nexport type PartialThemeColorBuilderOpts = Partial<ThemeColorBuilderOpts>\n\n/**\n * @public\n * @deprecated Use `buildColorTheme` instead.\n */\nexport function createColorTheme(\n // oxlint-disable-next-line no-deprecated\n partialOpts: PartialThemeColorBuilderOpts = {},\n // oxlint-disable-next-line no-deprecated\n): ThemeColorSchemes {\n // oxlint-disable-next-line no-deprecated\n const builders: ThemeColorBuilderOpts = {...defaultOpts, ...partialOpts}\n\n return {\n light: _createColorScheme(builders, false),\n dark: _createColorScheme(builders, true),\n }\n}\n\n/**\n * @internal\n */\n// oxlint-disable-next-line no-deprecated\nfunction _createColorScheme(opts: ThemeColorBuilderOpts, dark: boolean): ThemeColorScheme {\n return {\n default: _createColor(opts, dark, 'default'),\n transparent: _createColor(opts, dark, 'transparent'),\n primary: _createColor(opts, dark, 'primary'),\n positive: _createColor(opts, dark, 'positive'),\n caution: _createColor(opts, dark, 'caution'),\n critical: _createColor(opts, dark, 'critical'),\n }\n}\n\n/**\n * @internal\n */\nfunction _createColor(\n // oxlint-disable-next-line no-deprecated\n opts: ThemeColorBuilderOpts,\n dark: boolean,\n // oxlint-disable-next-line no-deprecated\n name: ThemeColorName,\n // oxlint-disable-next-line no-deprecated\n): ThemeColor {\n const base = opts.base({dark, name})\n const solid = createSolidTones(opts, base, dark, name)\n const muted = createMutedTones(opts, base, dark, name)\n\n return {\n base,\n button: createButtonModes(opts, base, dark, solid, muted),\n card: createCardStates(opts, base, dark, name, solid, muted),\n dark,\n input: createInputModes(opts, base, dark, solid, muted),\n selectable: createSelectableTones(opts, base, dark, solid, muted),\n spot: createSpot(opts, base, dark),\n syntax: opts.syntax({base, dark}),\n solid,\n muted,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"factory-BzXTX8_Q.js","names":[],"sources":["../src/theme/defaults/fonts.ts","../src/theme/system/color/_constants.ts","../src/theme/system/color/_helpers.ts","../src/theme/config/system.ts","../src/theme/config/helpers.ts","../src/theme/config/tokens/parseTokenValue.ts","../src/theme/build/colorToken/compileColorToken.ts","../src/theme/build/colorToken/colorToken.ts","../src/theme/defaults/colorTokens.ts","../src/theme/build/lib/isRecord.ts","../src/theme/build/merge.ts","../src/theme/build/resolveColorTokens.ts","../src/theme/build/buildColorTheme.ts","../src/theme/defaults/colorPalette.ts","../src/theme/build/lib/color-fns/blend/mix.ts","../src/theme/build/lib/utils.ts","../src/theme/build/lib/color-fns/convert.ts","../src/theme/build/lib/color-fns/parse.ts","../src/theme/build/lib/color-fns/rgba.ts","../src/theme/build/lib/color-fns/blend/multiply.ts","../src/theme/build/lib/color-fns/blend/screen.ts","../src/theme/build/mixThemeColor.ts","../src/theme/build/renderColorValue.ts","../src/theme/build/renderColorTheme.ts","../src/theme/build/buildTheme.ts","../src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts","../src/theme/build/_deprecated/color/_solid/createSolidTones.ts","../src/theme/build/_deprecated/color/button/createButtonTones.ts","../src/theme/build/_deprecated/color/button/createButtonModes.ts","../src/theme/build/_deprecated/color/card/createCardStates.ts","../src/theme/build/_deprecated/color/defaults.ts","../src/theme/build/_deprecated/color/input/createInputModes.ts","../src/theme/build/_deprecated/color/muted/createMuted.ts","../src/theme/build/_deprecated/color/spot/createSpot.ts","../src/theme/build/_deprecated/color/factory.ts"],"sourcesContent":["import {ThemeFonts} from '../system/font'\n\nexport const defaultThemeFonts: ThemeFonts = {\n code: {\n family: 'ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace',\n weights: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 15,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 19,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 22,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\n },\n ],\n },\n heading: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n weights: {\n regular: 700,\n medium: 800,\n semibold: 900,\n bold: 900,\n },\n sizes: [\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 17,\n lineHeight: 19,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 29,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 27,\n iconSize: 41,\n lineHeight: 35,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 9.5,\n descenderHeight: 8.5,\n fontSize: 33,\n iconSize: 49,\n lineHeight: 41,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 10.5,\n descenderHeight: 9.5,\n fontSize: 38,\n iconSize: 53,\n lineHeight: 47,\n letterSpacing: 0,\n },\n ],\n },\n label: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", system-ui, sans-serif',\n weights: {\n regular: 600,\n medium: 700,\n semibold: 800,\n bold: 900,\n },\n sizes: [\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 8.1,\n iconSize: 13,\n lineHeight: 10,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 9.5,\n iconSize: 15,\n lineHeight: 11,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 10.8,\n iconSize: 17,\n lineHeight: 12,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 12.25,\n iconSize: 19,\n lineHeight: 13,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 13.6,\n iconSize: 21,\n lineHeight: 14,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 15,\n iconSize: 23,\n lineHeight: 15,\n letterSpacing: 0.5,\n },\n ],\n },\n text: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n weights: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 15,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 15,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 18,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\n },\n ],\n },\n}\n","import {COLOR_HUES} from '@sanity/color'\n\n/** @public */\nexport const THEME_COLOR_SCHEMES = ['light', 'dark'] as const\n\n/** @public */\nexport const THEME_COLOR_BLEND_MODES = ['multiply', 'screen'] as const\n\n/** @public */\nexport const THEME_COLOR_CARD_TONES = [\n 'transparent',\n 'default',\n 'neutral',\n 'primary', // deprecated\n 'suggest',\n 'positive',\n 'caution',\n 'critical',\n] as const\n\n/** @public */\nexport const THEME_COLOR_STATE_TONES = [\n 'default',\n 'neutral',\n 'primary', // deprecated\n 'suggest',\n 'positive',\n 'caution',\n 'critical',\n] as const\n\n/** @public */\nexport const THEME_COLOR_STATES = ['enabled', 'hovered', 'pressed', 'selected', 'disabled'] as const\n\n/** @public */\nexport const THEME_COLOR_BUTTON_MODES = ['default', 'ghost', 'bleed'] as const\n\n/** @public */\nexport const THEME_COLOR_INPUT_MODES = ['default', 'invalid'] as const\n\n/** @public */\nexport const THEME_COLOR_INPUT_STATES = ['enabled', 'hovered', 'readOnly', 'disabled'] as const\n\n/** @public */\nexport const THEME_COLOR_AVATAR_COLORS = COLOR_HUES\n","import {COLOR_HUES, COLOR_TINTS, ColorHueKey, ColorTintKey} from '@sanity/color'\n\nimport {THEME_COLOR_BLEND_MODES, THEME_COLOR_BUTTON_MODES} from './_constants'\nimport {ThemeColorBlendModeKey, ThemeColorButtonModeKey} from './_system'\n\n/** @internal */\nexport function isColorBlendModeValue(str: string): str is ThemeColorBlendModeKey {\n // oxlint-disable-next-line no-unsafe-type-assertion\n return THEME_COLOR_BLEND_MODES.includes(str as ThemeColorBlendModeKey)\n}\n\n/** @internal */\nexport function isColorHueKey(str: string): str is ColorHueKey {\n // oxlint-disable-next-line no-unsafe-type-assertion\n return COLOR_HUES.includes(str as ColorHueKey)\n}\n\n/** @internal */\nexport function isColorTintKey(str: string): str is ColorTintKey {\n // oxlint-disable-next-line no-unsafe-type-assertion\n return COLOR_TINTS.includes(str as ColorTintKey)\n}\n\n/** @internal */\nexport function isColorButtonMode(str: string): str is ThemeColorButtonModeKey {\n // oxlint-disable-next-line no-unsafe-type-assertion\n return THEME_COLOR_BUTTON_MODES.includes(str as ThemeColorButtonModeKey)\n}\n","import {ColorHueKey, ColorTintKey} from '@sanity/color'\n\nimport {\n THEME_COLOR_AVATAR_COLORS,\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_INPUT_MODES,\n THEME_COLOR_INPUT_STATES,\n THEME_COLOR_STATE_TONES,\n THEME_COLOR_STATES,\n} from '../system/color/_constants'\nimport {ThemeColorBlendModeKey} from '../system/color/_system'\n\n/** @public */\nexport const COLOR_CONFIG_STATE_KEYS = [\n '_hue',\n 'bg',\n 'fg',\n 'border',\n 'focusRing',\n 'muted/fg',\n 'accent/fg',\n 'link/fg',\n 'code/bg',\n 'code/fg',\n 'skeleton/from',\n 'skeleton/to',\n 'status/dot',\n 'status/icon',\n] as const\n\n/** @public */\nexport type ColorConfigStateKey = (typeof COLOR_CONFIG_STATE_KEYS)[number]\n\n/** @public */\nexport const COLOR_CONFIG_CARD_KEYS = [\n ...COLOR_CONFIG_STATE_KEYS,\n '_hue',\n 'bg',\n 'fg',\n 'border',\n 'focusRing',\n 'shadow/outline',\n 'shadow/umbra',\n 'shadow/penumbra',\n 'shadow/ambient',\n] as const\n\n/** @public */\nexport type ColorConfigCardKey = (typeof COLOR_CONFIG_CARD_KEYS)[number]\n\n/** @public */\nexport const COLOR_CONFIG_BLEND_KEYS = ['_blend'] as const\n\n/** @public */\nexport type ColorConfigBlendKey = (typeof COLOR_CONFIG_BLEND_KEYS)[number]\n\n/** @public */\nexport type ColorConfigOpacityValue = `0` | `0.${number}` | `1`\n\n/** @public */\nexport type ColorConfigValue =\n | `black`\n | `white`\n | `black/${ColorConfigOpacityValue}`\n | `white/${ColorConfigOpacityValue}`\n // oxlint-disable-next-line no-unnecessary-template-expression\n | `${ColorHueKey}`\n | `${ColorHueKey} ${number}%`\n | `${ColorHueKey}/${ColorTintKey}`\n | `${ColorHueKey}/${ColorTintKey} ${number}%`\n | `${ColorHueKey}/${ColorTintKey}/${ColorConfigOpacityValue}`\n // oxlint-disable-next-line no-unnecessary-template-expression\n | `${ColorTintKey}`\n | `${ColorTintKey} ${number}%`\n | `${ColorTintKey}/${ColorConfigOpacityValue}`\n\n/** @public */\nexport type ThemeColorTokenValue = [ColorConfigValue, ColorConfigValue]\n\n/** @public */\nexport type ColorBlendModeTokenValue = [ThemeColorBlendModeKey, ThemeColorBlendModeKey]\n\n/** @public */\nexport const COLOR_CONFIG_AVATAR_COLORS = ['*', ...THEME_COLOR_AVATAR_COLORS] as const\n\n/** @public */\nexport type ColorConfigAvatarColor = (typeof COLOR_CONFIG_AVATAR_COLORS)[number]\n\n/** @public */\nexport const COLOR_CONFIG_CARD_TONES = ['*', ...THEME_COLOR_CARD_TONES] as const\n\n/** @public */\nexport type ColorConfigCardTone = (typeof COLOR_CONFIG_CARD_TONES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_STATE_TONES = ['*', ...THEME_COLOR_STATE_TONES] as const\n\n/** @public */\nexport type ColorConfigStateTone = (typeof COLOR_CONFIG_STATE_TONES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_STATES = ['*', ...THEME_COLOR_STATES] as const\n\n/** @public */\nexport type ColorConfigState = (typeof COLOR_CONFIG_STATES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_INPUT_MODES = ['*', ...THEME_COLOR_INPUT_MODES] as const\n\n/** @public */\nexport type ColorConfigInputMode = (typeof COLOR_CONFIG_INPUT_MODES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_INPUT_STATES = ['*', ...THEME_COLOR_INPUT_STATES] as const\n\n/** @public */\nexport type ColorConfigInputState = (typeof COLOR_CONFIG_INPUT_STATES)[number]\n","import {\n COLOR_CONFIG_BLEND_KEYS,\n COLOR_CONFIG_CARD_KEYS,\n COLOR_CONFIG_CARD_TONES,\n COLOR_CONFIG_STATE_KEYS,\n COLOR_CONFIG_STATE_TONES,\n ColorConfigBlendKey,\n ColorConfigCardKey,\n ColorConfigCardTone,\n ColorConfigOpacityValue,\n ColorConfigStateKey,\n ColorConfigStateTone,\n ColorConfigValue,\n} from './system'\nimport {parseTokenValue} from './tokens/parseTokenValue'\n\n/** @internal */\nexport function isColorConfigBaseTone(str: string): str is ColorConfigCardTone {\n // oxlint-disable-next-line no-unsafe-type-assertion\n return COLOR_CONFIG_CARD_TONES.includes(str as ColorConfigCardTone)\n}\n\n/** @internal */\nexport function isColorConfigBaseKey(str: string): str is ColorConfigCardKey {\n // oxlint-disable-next-line no-unsafe-type-assertion\n return COLOR_CONFIG_CARD_KEYS.includes(str as ColorConfigCardKey)\n}\n\n/** @internal */\nexport function isColorConfigStateKey(str: string): str is ColorConfigStateKey {\n // oxlint-disable-next-line no-unsafe-type-assertion\n return COLOR_CONFIG_STATE_KEYS.includes(str as ColorConfigStateKey)\n}\n\n/** @internal */\nexport function isColorConfigStateTone(str: string): str is ColorConfigStateTone {\n // oxlint-disable-next-line no-unsafe-type-assertion\n return COLOR_CONFIG_STATE_TONES.includes(str as ColorConfigStateTone)\n}\n\n/** @internal */\nexport function isColorConfigBlendKey(str: string): str is ColorConfigBlendKey {\n // oxlint-disable-next-line no-unsafe-type-assertion\n return COLOR_CONFIG_BLEND_KEYS.includes(str as ColorConfigBlendKey)\n}\n\n/** @internal */\nexport function isColorTokenValue(str: string): str is ColorConfigValue {\n return parseTokenValue(str)?.type === 'color' || parseTokenValue(str)?.type === 'hue'\n}\n\n/** @internal */\nexport function isColorValue(str: string): str is 'black' | 'white' {\n return str === 'black' || str === 'white'\n}\n\n/** @internal */\nexport function isColorOpacityValue(str: string): str is ColorConfigOpacityValue {\n return str === '0' || /^0\\.[0-9]+$/.test(str) || str === '1'\n}\n","import {isColorBlendModeValue, isColorHueKey, isColorTintKey} from '../../system/color/_helpers'\nimport {isColorOpacityValue, isColorValue} from '../helpers'\nimport {TokenValueNode} from './types'\n\nfunction isColorMixPercentValue(str: string): str is `${number}%` {\n return /^\\d+%$/.test(str)\n}\n\n/** @internal */\nexport function parseTokenValue(str: string): TokenValueNode | undefined {\n const segments = str.split('/')\n\n let nextSegment = segments.shift() || ''\n\n const [segment0, segment0mix] = nextSegment.split(' ')\n\n if (isColorTintKey(segment0)) {\n const tint = segment0\n const segment1 = segments.shift() || ''\n\n if (isColorMixPercentValue(segment0mix)) {\n const mix = Number(segment0mix.slice(0, -1)) / 100\n\n return {\n type: 'color',\n tint,\n mix,\n }\n }\n\n if (isColorOpacityValue(segment1)) {\n const opacity = Number(segment1)\n\n return {\n type: 'color',\n tint,\n opacity,\n }\n }\n\n return {\n type: 'color',\n tint,\n }\n }\n\n if (isColorValue(segment0)) {\n // oxlint-disable-next-line no-unnecessary-type-assertion\n const key = segment0 as 'black' | 'white'\n const segment1 = segments.shift() || ''\n\n if (isColorMixPercentValue(segment0mix)) {\n const mix = Number(segment0mix.slice(0, -1)) / 100\n\n return {\n type: 'color',\n key,\n mix,\n }\n }\n\n if (isColorOpacityValue(segment1)) {\n const opacity = Number(segment1)\n\n return {\n type: 'color',\n key,\n opacity,\n }\n }\n\n return {\n type: 'color',\n key,\n }\n }\n\n if (isColorHueKey(segment0)) {\n const hue = segment0\n\n nextSegment = segments.shift() || ''\n\n const [segment1, segment1mix] = nextSegment.split(' ')\n\n if (isColorTintKey(segment1)) {\n const tint = segment1\n const segment2 = segments.shift() || ''\n\n if (isColorMixPercentValue(segment1mix)) {\n const mix = Number(segment1mix.slice(0, -1)) / 100\n\n return {\n type: 'color',\n hue,\n tint,\n mix,\n }\n }\n\n if (isColorOpacityValue(segment2)) {\n const opacity = Number(segment2)\n\n return {\n type: 'color',\n hue,\n tint,\n opacity,\n }\n }\n\n return {\n type: 'color',\n hue,\n tint,\n }\n }\n\n return {\n type: 'hue',\n value: hue,\n }\n }\n\n if (isColorBlendModeValue(segment0)) {\n const value = segment0\n\n return {\n type: 'blendMode',\n value,\n }\n }\n\n return undefined\n}\n","import {TokenColorValueNode} from '../../config/tokens/types'\n\nexport function compileColorTokenValue(node: TokenColorValueNode): string {\n let key = ''\n\n if (node.key === 'black' || node.key === 'white') {\n key = node.key\n } else {\n key = `${node.hue}/${node.tint}`\n }\n\n if (node.mix !== undefined) {\n return `${key} ${node.mix * 100}%`\n }\n\n if (node.opacity !== undefined) {\n key += `/${node.opacity}`\n }\n\n return key\n}\n","import {ThemeColorTokenValue} from '../../config/system'\nimport {parseTokenValue} from '../../config/tokens/parseTokenValue'\nimport {compileColorTokenValue} from './compileColorToken'\nimport {ColorTokenContext} from './types'\n\nconst DEFAULT_COLOR_TOKEN_VALUE: ThemeColorTokenValue = ['500', '500']\n\nexport function resolveColorTokenValue(\n context: ColorTokenContext,\n value: ThemeColorTokenValue = DEFAULT_COLOR_TOKEN_VALUE,\n): string {\n const {hue, scheme} = context\n const node = parseTokenValue(value[scheme === 'light' ? 0 : 1])\n\n if (!node || node.type !== 'color') {\n throw new Error(`Invalid color token: ${value[0]}`)\n }\n\n return compileColorTokenValue({...node, hue: node.hue || hue})\n}\n","import {ThemeColorTokens} from '../config/tokens/color/types'\n\nexport const defaultColorTokens: ThemeColorTokens = {\n base: {\n '*': {\n _blend: ['multiply', 'screen'],\n accent: {\n fg: ['purple/600', 'purple/400'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n backdrop: ['gray/200/0.5', 'black/0.5'],\n badge: {\n '*': {\n bg: ['100', '900'],\n fg: ['600', '400'],\n icon: ['500', '500'],\n dot: ['500', '500'],\n },\n 'positive': {\n bg: ['200 50%', '900'],\n fg: ['600', '500'],\n },\n 'caution': {\n bg: ['200 50%', '900'],\n fg: ['600', '500'],\n },\n },\n bg: ['50', '950'],\n border: ['200', '800'],\n code: {\n bg: ['50', '950'],\n fg: ['600', '400'],\n },\n fg: ['800', '200'],\n focusRing: ['blue/500', 'blue/500'],\n icon: ['600', '400'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['600', '400'],\n border: ['200', '800'],\n },\n link: {\n fg: ['blue/600', 'blue/300'],\n },\n muted: {\n bg: ['50', '950'],\n fg: ['700 75%', '300 75%'],\n },\n shadow: {\n outline: ['500/0.3', '500/0.4'],\n umbra: ['gray/500/0.1', 'black/0.2'],\n penumbra: ['gray/500/0.07', 'black/0.14'],\n ambient: ['gray/500/0.06', 'black/0.12'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n 'transparent': {\n bg: ['50', 'black'],\n },\n 'default': {\n bg: ['white', '950'],\n fg: ['800', '200'],\n muted: {\n fg: ['600', '400'],\n },\n },\n 'primary': {_hue: 'blue'},\n 'suggest': {_hue: 'purple'},\n 'positive': {\n _hue: 'green',\n shadow: {outline: ['500/0.4', '500/0.4']},\n },\n 'caution': {\n _hue: 'yellow',\n shadow: {outline: ['600/0.3', '500/0.4']},\n },\n 'critical': {_hue: 'red'},\n },\n button: {\n default: {\n '*': {\n '*': {\n _blend: ['screen', 'multiply'],\n accent: {\n fg: ['purple/300', 'purple/700'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['900', '100'],\n fg: ['400', '600'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['500', '400'],\n border: ['500/0', '400/0'],\n code: {\n bg: ['500 20%', '400 20%'],\n fg: ['200', '600'],\n },\n fg: ['white', 'black'],\n icon: ['100 70%', '900 70%'],\n kbd: {\n bg: ['black', 'white'],\n fg: ['200', '600'],\n border: ['800', '200'],\n },\n link: {\n fg: ['blue/200', 'blue/600'],\n },\n muted: {\n bg: ['950', '50'],\n fg: ['100 70%', '900 70%'],\n },\n skeleton: {\n from: ['900', '100'],\n to: ['900 50%', '100 50%'],\n },\n },\n 'hovered': {\n bg: ['600', '300'],\n border: ['700/0', '300/0'],\n },\n 'pressed': {\n bg: ['700', '300'],\n },\n 'selected': {\n bg: ['700', '300'],\n },\n 'disabled': {\n _hue: 'gray',\n accent: {\n fg: ['100 70%', '900 70%'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['gray/500', 'gray/400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['gray/700', 'gray/300'],\n fg: ['white', 'black'],\n dot: ['white', 'black'],\n icon: ['white', 'black'],\n },\n },\n bg: ['300', '600'],\n code: {\n bg: ['950', '50'],\n fg: ['300', '600'],\n },\n fg: ['300', '600'],\n muted: {\n bg: ['950', '50'],\n fg: ['300', '600'],\n },\n kbd: {\n bg: ['black', 'white'],\n fg: ['white', 'black'],\n border: ['700', '300'],\n },\n link: {\n fg: ['100 70%', '900 70%'],\n },\n },\n },\n 'default': {\n '*': {\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n bg: ['800', '200'],\n muted: {\n bg: ['950', '50'],\n fg: ['400', '600'],\n },\n },\n 'hovered': {\n bg: ['900', '100'],\n },\n 'pressed': {\n bg: ['black', 'white'],\n },\n 'selected': {\n bg: ['black', 'white'],\n },\n },\n },\n ghost: {\n '*': {\n '*': {\n _blend: ['multiply', 'screen'],\n accent: {\n fg: ['purple/700 60%', 'purple/300 70%'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['100', '900'],\n fg: ['600', '400'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['50', '950'],\n border: ['100', '900'],\n code: {\n bg: ['500 10%', '400 10%'],\n fg: ['700 60%', '400 60%'],\n },\n fg: ['600', '400'],\n icon: ['700 60%', '300 60%'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['600', '400'],\n border: ['200', '800'],\n },\n link: {\n fg: ['blue/700 60%', 'blue/300 60%'],\n },\n muted: {\n bg: ['100', '950'],\n fg: ['700 60%', '300 60%'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n 'hovered': {\n bg: ['100', '900'],\n fg: ['700', '300'],\n },\n 'pressed': {\n bg: ['200', '800'],\n fg: ['800', '200'],\n },\n 'selected': {\n bg: ['200', '800'],\n fg: ['800', '200'],\n },\n 'disabled': {\n _hue: 'gray',\n accent: {\n fg: ['200', '800'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['gray/100', 'gray/900'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n _hue: 'gray',\n bg: ['50', '950'],\n fg: ['gray/200', 'gray/800'],\n dot: ['gray/200', 'gray/800'],\n icon: ['gray/200', 'gray/800'],\n },\n },\n border: ['100', '900'],\n code: {\n bg: ['50', '950'],\n fg: ['200', '800'],\n },\n fg: ['400', '600'],\n icon: ['300', '700'],\n muted: {\n fg: ['300', '700'],\n },\n kbd: {\n bg: ['white', 'black'],\n fg: ['200', '800'],\n border: ['100', '900'],\n },\n link: {\n fg: ['200', '800'],\n },\n },\n },\n 'positive': {\n '*': {\n border: ['600 20%', '800'],\n },\n },\n 'caution': {\n '*': {\n border: ['600 20%', '800'],\n },\n },\n },\n bleed: {\n '*': {\n '*': {\n _blend: ['multiply', 'screen'],\n accent: {\n fg: ['purple/700 70%', 'purple/300 70%'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['100', '900'],\n fg: ['600', '400'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['white', 'black'],\n border: ['white/0', 'black/0'],\n code: {\n bg: ['50', '950'],\n fg: ['700 75%', '300 75%'],\n },\n fg: ['700', '300'],\n icon: ['700 75%', '300 75%'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['700', '300'],\n border: ['200', '800'],\n },\n link: {\n fg: ['blue/700 70%', 'blue/300 70%'],\n },\n muted: {\n bg: ['100', '950'],\n fg: ['700 75%', '300 75%'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n 'hovered': {\n bg: ['50', '900'],\n fg: ['800', '200'],\n icon: ['800 70%', '300 70%'],\n },\n 'pressed': {\n bg: ['100', '800'],\n fg: ['800', '200'],\n icon: ['800 70%', '200 70%'],\n },\n 'selected': {\n bg: ['100', '900'],\n fg: ['800', '200'],\n icon: ['800 60%', '200 60%'],\n },\n 'disabled': {\n _hue: 'gray',\n accent: {\n fg: ['200', '800'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['gray/100', 'gray/900'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n _hue: 'gray',\n bg: ['50', '950'],\n fg: ['gray/200', 'gray/800'],\n dot: ['gray/200', 'gray/800'],\n icon: ['gray/200', 'gray/800'],\n },\n },\n code: {\n bg: ['50', '950'],\n fg: ['200', '800'],\n },\n fg: ['400', '600'],\n icon: ['300', '700'],\n muted: {\n fg: ['400', '600'],\n },\n kbd: {\n bg: ['white', 'black'],\n fg: ['200', '800'],\n border: ['100', '900'],\n },\n link: {\n fg: ['200', '800'],\n },\n },\n },\n },\n },\n input: {\n '*': {\n '*': {\n _blend: ['multiply', 'screen'],\n bg: ['white', 'black'],\n border: ['200', '700'],\n fg: ['black', '200'],\n muted: {\n bg: ['50', '950'],\n },\n placeholder: ['400', '600'],\n },\n 'hovered': {\n border: ['300', '700'],\n },\n 'readOnly': {\n bg: ['50', '950'],\n border: ['200', '800'],\n fg: ['800', '200'],\n },\n 'disabled': {\n bg: ['50', '950'],\n fg: ['400', '600'],\n border: ['100', '900'],\n placeholder: ['200', '800 50%'],\n },\n },\n 'invalid': {\n '*': {\n _hue: 'red',\n bg: ['100', '950'],\n },\n },\n },\n selectable: {\n '*': {\n '*': {\n _blend: ['multiply', 'screen'],\n accent: {\n fg: ['purple/700 70%', 'purple/300 70%'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['100', '900'],\n fg: ['600', '400'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['white', 'black'],\n border: ['200', '800'],\n code: {\n bg: ['50', '950'],\n fg: ['600', '400'],\n },\n fg: ['700', '300'],\n icon: ['700 75%', '300 75%'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['600', '400'],\n border: ['200', '800'],\n },\n link: {\n fg: ['blue/700 70%', 'blue/300 70%'],\n },\n muted: {\n bg: ['50', '950'],\n fg: ['700 75%', '300 75%'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n 'hovered': {\n bg: ['50', '950'],\n },\n 'pressed': {\n bg: ['100', '900'],\n },\n 'selected': {\n _blend: ['screen', 'multiply'],\n accent: {\n fg: ['purple/300', 'purple/700'],\n },\n avatar: {\n '*': {\n _blend: ['multiply', 'screen'],\n bg: ['white', 'black'],\n fg: ['black', 'white'],\n },\n },\n badge: {\n '*': {\n bg: ['900', '100'],\n fg: ['400', '600'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['500', '400'],\n border: ['500 20%', '400 20%'],\n code: {\n bg: ['500 20%', '400 20%'],\n fg: ['200', '600'],\n },\n fg: ['white', 'black'],\n icon: ['100 70%', '900 70%'],\n kbd: {\n bg: ['black', 'white'],\n fg: ['200', '600'],\n border: ['800', '200'],\n },\n link: {\n fg: ['blue/200', 'blue/600'],\n },\n muted: {\n bg: ['500 10%', '400 10%'],\n fg: ['100 70%', '900 70%'],\n },\n skeleton: {\n from: ['900', '100'],\n to: ['900 50%', '100 50%'],\n },\n },\n 'disabled': {\n _hue: 'gray',\n accent: {\n fg: ['200', '800'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['gray/100', 'gray/900'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n _hue: 'gray',\n bg: ['50', '950'],\n fg: ['gray/200', 'gray/800'],\n dot: ['gray/200', 'gray/800'],\n icon: ['gray/200', 'gray/800'],\n },\n },\n border: ['100', '900'],\n code: {\n bg: ['50', '950'],\n fg: ['200', '800'],\n },\n fg: ['200', '800'],\n icon: ['200', '800'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['200', '800'],\n border: ['100', '900'],\n },\n link: {\n fg: ['200', '800'],\n },\n muted: {\n bg: ['50 50%', '950 50%'],\n fg: ['200', '800'],\n },\n },\n },\n 'default': {\n selected: {\n _hue: 'blue',\n },\n },\n 'critical': {\n disabled: {\n bg: ['50 50%', '950 50%'],\n },\n },\n },\n syntax: {\n atrule: ['purple/600', 'purple/400'],\n attrName: ['green/600', 'green/400'],\n attrValue: ['yellow/600', 'yellow/400'],\n attribute: ['yellow/600', 'yellow/400'],\n boolean: ['purple/600', 'purple/400'],\n builtin: ['purple/600', 'purple/400'],\n cdata: ['yellow/600', 'yellow/400'],\n char: ['yellow/600', 'yellow/400'],\n class: ['orange/600', 'orange/400'],\n className: ['cyan/600', 'cyan/400'],\n comment: ['gray/400', 'gray/600'],\n constant: ['purple/600', 'purple/400'],\n deleted: ['red/600', 'red/400'],\n entity: ['red/600', 'red/400'],\n function: ['green/600', 'green/400'],\n hexcode: ['blue/600', 'blue/400'],\n id: ['purple/600', 'purple/400'],\n important: ['purple/600', 'purple/400'],\n inserted: ['yellow/600', 'yellow/400'],\n keyword: ['magenta/600', 'magenta/400'],\n number: ['purple/600', 'purple/400'],\n operator: ['magenta/600', 'magenta/400'],\n property: ['blue/600', 'blue/400'],\n pseudoClass: ['yellow/600', 'yellow/400'],\n pseudoElement: ['yellow/600', 'yellow/400'],\n punctuation: ['gray/600', 'gray/400'],\n regex: ['blue/600', 'blue/400'],\n selector: ['red/600', 'red/400'],\n string: ['yellow/600', 'yellow/400'],\n symbol: ['purple/600', 'purple/400'],\n tag: ['red/600', 'red/400'],\n unit: ['orange/600', 'orange/400'],\n url: ['red/600', 'red/400'],\n variable: ['red/600', 'red/400'],\n },\n}\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {isRecord} from './lib/isRecord'\n\nexport function merge<T extends Record<string, any>>(...records: (T | undefined)[]): T {\n // oxlint-disable-next-line no-unsafe-type-assertion\n const _records = records.filter(Boolean) as T[]\n\n if (_records.length === 0) {\n // oxlint-disable-next-line no-unsafe-type-assertion\n return {} as T\n }\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n return _records.reduce(_merge, {} as T)\n}\n\nfunction _merge<T extends Record<string, any>>(acc: T, source: T): T {\n for (const key of Object.keys(source)) {\n const prevValue = acc[key]\n const nextValue = source[key]\n\n if (isRecord(prevValue) && isRecord(nextValue)) {\n // oxlint-disable-next-line no-unsafe-type-assertion\n ;(acc as any)[key] = merge(prevValue, nextValue)\n } else {\n // oxlint-disable-next-line no-unsafe-type-assertion\n ;(acc as any)[key] = nextValue\n }\n }\n\n return acc\n}\n","import {COLOR_HUES, ColorHueKey} from '@sanity/color'\n\nimport {\n ColorConfigCardTone,\n ColorConfigInputMode,\n ColorConfigInputState,\n ColorConfigStateTone,\n} from '../config/system'\nimport {\n ThemeColorAvatarTokens,\n ThemeColorBadgeTokens,\n ThemeColorBaseTokens,\n ThemeColorButtonTokens,\n ThemeColorInputStateTokens,\n ThemeColorInputTokens,\n ThemeColorStatesTokens,\n ThemeColorStateTokens,\n ThemeColorTokens,\n} from '../config/tokens/color/types'\nimport {defaultColorTokens} from '../defaults/colorTokens'\nimport {\n THEME_COLOR_BUTTON_MODES,\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_INPUT_MODES,\n THEME_COLOR_INPUT_STATES,\n THEME_COLOR_STATE_TONES,\n THEME_COLOR_STATES,\n} from '../system/color/_constants'\nimport {\n ThemeColorButtonModeKey,\n ThemeColorCardToneKey,\n ThemeColorStateKey,\n ThemeColorStateToneKey,\n} from '../system/color/_system'\nimport {merge} from './merge'\n\n/**\n * Convert a tree of color tokens from a sparse format to a dense format.\n */\nexport function resolveColorTokens(inputTokens?: ThemeColorTokens): ThemeColorTokens {\n const tokens = merge(defaultColorTokens, inputTokens)\n\n return {\n base: resolveBaseColorTokens(tokens),\n button: resolveButtonColorTokens(tokens),\n input: resolveInputColorTokens(tokens),\n selectable: resolveSelectableColorTokens(tokens),\n syntax: tokens.syntax,\n }\n}\n\nfunction resolveBaseColorTokens(sparseTokens: ThemeColorTokens) {\n const tokens: Partial<Record<ColorConfigCardTone, ThemeColorBaseTokens>> = {}\n\n // base tones\n for (const tone of THEME_COLOR_CARD_TONES) {\n tokens[tone] = resolveBaseColorTones(sparseTokens, tone)\n }\n\n return tokens\n}\n\nfunction resolveBaseColorTones(\n inputTokens: ThemeColorTokens,\n tone: ThemeColorCardToneKey,\n): ThemeColorBaseTokens {\n const spec = merge(inputTokens?.base?.['*'], inputTokens?.base?.[tone])\n\n const hue = spec._hue || inputTokens?.base?.[tone]?._hue || 'gray'\n\n return {\n ...spec,\n _hue: hue,\n avatar: COLOR_HUES.reduce((acc, hue) => {\n return {\n // oxlint-disable-next-line no-accumulating-spread\n ...acc,\n [hue]: merge({_hue: hue}, spec.avatar?.['*'], spec.avatar?.[hue]),\n }\n }, {} as ThemeColorAvatarTokens),\n badge: THEME_COLOR_STATE_TONES.reduce((acc, tone) => {\n return {\n // oxlint-disable-next-line no-accumulating-spread\n ...acc,\n [tone]: {\n _hue: inputTokens?.base?.[tone]?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.[tone],\n },\n }\n }, {} as ThemeColorBadgeTokens),\n }\n}\n\nfunction resolveButtonColorTokens(\n inputTokens: ThemeColorTokens,\n): Partial<Record<ThemeColorButtonModeKey, ThemeColorButtonTokens>> {\n const tokens: Partial<Record<ThemeColorButtonModeKey, ThemeColorButtonTokens>> = {}\n\n for (const mode of THEME_COLOR_BUTTON_MODES) {\n tokens[mode] = resolveButtonToneColorTokens(inputTokens, mode)\n }\n\n return tokens\n}\n\nfunction resolveButtonToneColorTokens(\n inputTokens: ThemeColorTokens,\n mode: ThemeColorButtonModeKey,\n): ThemeColorButtonTokens {\n const tokens: ThemeColorButtonTokens = {}\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n tokens[tone] = resolveButtonModeColorTokens(inputTokens, mode, tone)\n }\n\n return tokens\n}\n\nfunction resolveButtonModeColorTokens(\n inputTokens: ThemeColorTokens,\n mode: ThemeColorButtonModeKey,\n tone: ThemeColorStateToneKey,\n): ThemeColorStatesTokens {\n const tokens: ThemeColorStatesTokens = {}\n\n for (const state of THEME_COLOR_STATES) {\n tokens[state] = resolveButtonStateColorTokens(inputTokens, tone, mode, state)\n }\n\n return tokens\n}\n\nfunction resolveButtonStateColorTokens(\n inputTokens: ThemeColorTokens,\n tone: ThemeColorStateToneKey,\n mode: ThemeColorButtonModeKey,\n state: ThemeColorStateKey,\n): ThemeColorStateTokens {\n const spec = merge(\n inputTokens?.button?.[mode]?.['*']?.['*'],\n inputTokens?.button?.[mode]?.[tone]?.['*'],\n inputTokens?.button?.[mode]?.['*']?.[state],\n inputTokens?.button?.[mode]?.[tone]?.[state],\n )\n\n const hue = spec._hue || inputTokens?.base?.[tone]?._hue\n\n return {\n ...spec,\n _hue: hue,\n avatar: COLOR_HUES.reduce((acc, hue) => {\n return {\n // oxlint-disable-next-line no-accumulating-spread\n ...acc,\n [hue]: merge({_hue: hue}, spec.avatar?.['*'], spec.avatar?.[hue]),\n }\n }, {} as ThemeColorAvatarTokens),\n badge: THEME_COLOR_STATE_TONES.reduce((acc, tone) => {\n return {\n // oxlint-disable-next-line no-accumulating-spread\n ...acc,\n [tone]: {\n _hue: inputTokens?.base?.[tone]?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.[tone],\n },\n }\n }, {} as ThemeColorBadgeTokens),\n }\n}\n\nfunction resolveInputColorTokens(\n inputTokens: ThemeColorTokens,\n): Partial<Record<ColorConfigInputMode, ThemeColorInputTokens>> {\n const tokens: Partial<Record<ColorConfigInputMode, ThemeColorInputTokens>> = {}\n\n for (const mode of THEME_COLOR_INPUT_MODES) {\n tokens[mode] = resolveInputModeColorTokens(inputTokens, mode)\n }\n\n return tokens\n}\n\nfunction resolveInputModeColorTokens(\n inputTokens: ThemeColorTokens,\n mode: ColorConfigInputMode,\n): ThemeColorInputTokens {\n const states: ThemeColorInputTokens = {}\n\n for (const state of THEME_COLOR_INPUT_STATES) {\n states[state] = resolveInputStateColorTokens(inputTokens, mode, state)\n }\n\n return states\n}\n\nfunction resolveInputStateColorTokens(\n inputTokens: ThemeColorTokens,\n mode: ColorConfigInputMode,\n state: ColorConfigInputState,\n): ThemeColorInputStateTokens {\n const spec = merge(\n inputTokens?.input?.['*']?.['*'],\n inputTokens?.input?.[mode]?.['*'],\n inputTokens?.input?.['*']?.[state],\n inputTokens?.input?.[mode]?.[state],\n )\n\n const hue = spec._hue || inputTokens?.input?.[mode]?._hue\n\n return {...spec, _hue: hue}\n}\n\nfunction resolveSelectableColorTokens(\n inputTokens: ThemeColorTokens,\n): Partial<Record<ColorConfigStateTone, {_hue?: ColorHueKey} & ThemeColorStatesTokens>> {\n const tokens: ThemeColorButtonTokens = {}\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n tokens[tone] = resolveSelectableToneColorTokens(inputTokens, tone)\n }\n\n return tokens\n}\n\nfunction resolveSelectableToneColorTokens(\n inputTokens: ThemeColorTokens,\n tone: ThemeColorStateToneKey,\n): {_hue?: ColorHueKey} & ThemeColorStatesTokens {\n const states: {_hue?: ColorHueKey} & ThemeColorStatesTokens = {\n _hue: inputTokens?.selectable?.[tone]?._hue || inputTokens?.base?.[tone]?._hue,\n }\n\n for (const state of THEME_COLOR_STATES) {\n states[state] = resolveSelectableStateColorTokens(inputTokens, tone, state)\n }\n\n return states\n}\n\nfunction resolveSelectableStateColorTokens(\n inputTokens: ThemeColorTokens,\n tone: ThemeColorStateToneKey,\n state: ThemeColorStateKey,\n) {\n const spec = merge(\n inputTokens?.selectable?.['*']?.['*'],\n inputTokens?.selectable?.[tone]?.['*'],\n inputTokens?.selectable?.['*']?.[state],\n inputTokens?.selectable?.[tone]?.[state],\n )\n\n const hue = spec._hue || inputTokens?.base?.[tone]?._hue\n\n return {\n ...spec,\n _hue: hue,\n avatar: COLOR_HUES.reduce((acc, hue) => {\n return {\n // oxlint-disable-next-line no-accumulating-spread\n ...acc,\n [hue]: merge({_hue: hue}, spec.avatar?.['*'], spec.avatar?.[hue]),\n }\n }, {} as ThemeColorAvatarTokens),\n badge: THEME_COLOR_STATE_TONES.reduce((acc, tone) => {\n return {\n // oxlint-disable-next-line no-accumulating-spread\n ...acc,\n [tone]: {\n _hue: inputTokens?.base?.[tone]?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.[tone],\n },\n }\n }, {} as ThemeColorBadgeTokens),\n }\n}\n","import {ThemeColorBadgeTokens, ThemeColorStateTokens} from '../config/tokens/color/types'\nimport {ThemeConfig} from '../config/types'\nimport {\n THEME_COLOR_BUTTON_MODES,\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_STATE_TONES,\n THEME_COLOR_STATES,\n} from '../system/color/_constants'\nimport {\n ThemeColorAvatarColorKey,\n ThemeColorButtonModeKey,\n ThemeColorCardToneKey,\n ThemeColorSchemeKey,\n ThemeColorStateKey,\n ThemeColorStateToneKey,\n} from '../system/color/_system'\nimport {ThemeColorAvatar_v2, ThemeColorAvatarHue_v2} from '../system/color/avatar'\nimport {ThemeColorBadge_v2} from '../system/color/badge'\nimport {\n ThemeColorButton_v2,\n ThemeColorButtonMode_v2,\n ThemeColorButtonTone_v2,\n} from '../system/color/button'\nimport {ThemeColorCard_v2, ThemeColorScheme_v2, ThemeColorSchemes_v2} from '../system/color/color'\nimport {\n ThemeColorInput_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n} from '../system/color/input'\nimport {ThemeColorShadow} from '../system/color/shadow'\nimport {ThemeColorState_v2} from '../system/color/state'\nimport {ThemeColorSyntax} from '../system/color/syntax'\nimport {resolveColorTokenValue as _color} from './colorToken/colorToken'\nimport {ColorTokenContext} from './colorToken/types'\nimport {defineLazyProperty} from './lib/lazy'\nimport {resolveColorTokens} from './resolveColorTokens'\n\nexport function buildColorTheme(config?: ThemeConfig): ThemeColorSchemes_v2 {\n const resolvedConfig: ThemeConfig = {\n ...config,\n color: resolveColorTokens(config?.color),\n }\n\n // Lazy schemes — each scheme's token tree is only built when first accessed\n // oxlint-disable-next-line no-unsafe-type-assertion\n const schemes = {} as ThemeColorSchemes_v2\n\n defineLazyProperty(schemes, 'light', () => buildColorScheme({scheme: 'light'}, resolvedConfig))\n defineLazyProperty(schemes, 'dark', () => buildColorScheme({scheme: 'dark'}, resolvedConfig))\n\n return schemes\n}\n\nfunction buildColorScheme(\n options: {scheme: ThemeColorSchemeKey},\n config: ThemeConfig,\n): ThemeColorScheme_v2 {\n const {scheme} = options\n\n // Lazy tones — each tone's token tree is only built when first accessed\n // oxlint-disable-next-line no-unsafe-type-assertion\n const colorScheme = {} as ThemeColorScheme_v2\n\n for (const tone of THEME_COLOR_CARD_TONES) {\n defineLazyProperty(colorScheme, tone, () => buildCardColorTheme({scheme, tone}, config))\n }\n\n return colorScheme\n}\n\nfunction buildCardColorTheme(\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorCardToneKey},\n config?: ThemeConfig,\n): ThemeColorCard_v2 {\n const {scheme, tone} = options\n const tokens = config?.color?.base?.[tone]\n const hue = tokens?._hue || 'gray'\n const context: ColorTokenContext = {hue, scheme}\n const blendMode = tokens?._blend || ['multiply', 'screen']\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n _dark: scheme === 'dark',\n accent: {\n fg: _color(context, tokens?.accent?.fg),\n },\n avatar: buildAvatarColorTheme({scheme}, tokens),\n backdrop: _color(context, tokens?.backdrop),\n badge: buildBadgeColorTheme(tokens?.badge, {scheme}, config),\n bg: _color(context, tokens?.bg),\n border: _color(context, tokens?.border),\n button: buildButtonColorTheme({scheme, tone}, config),\n code: {\n bg: _color(context, tokens?.code?.bg),\n fg: _color(context, tokens?.code?.fg),\n },\n fg: _color(context, tokens?.fg),\n focusRing: _color(context, tokens?.focusRing),\n icon: _color(context, tokens?.icon),\n input: buildInputColorTheme({scheme, tone}, config),\n kbd: {\n bg: _color(context, tokens?.kbd?.bg),\n fg: _color(context, tokens?.kbd?.fg),\n border: _color(context, tokens?.kbd?.border),\n },\n link: {\n fg: _color(context, tokens?.link?.fg),\n },\n muted: {\n bg: _color(context, tokens?.muted?.bg),\n fg: _color(context, tokens?.muted?.fg),\n },\n selectable: buildSelectableColorTheme({scheme, tone}, config),\n shadow: buildShadowColorTheme({scheme, tone}, config),\n skeleton: {\n from: _color(context, tokens?.skeleton?.from),\n to: _color(context, tokens?.skeleton?.to),\n },\n syntax: buildSyntaxColorTheme({scheme}, config),\n }\n}\n\nfunction buildShadowColorTheme(\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorCardToneKey},\n config?: ThemeConfig,\n): ThemeColorShadow {\n const {scheme, tone} = options\n const tokens = config?.color?.base?.[tone]\n const hue = tokens?._hue || 'gray'\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n outline: _color(context, tokens?.shadow?.outline),\n umbra: _color(context, tokens?.shadow?.umbra),\n penumbra: _color(context, tokens?.shadow?.penumbra),\n ambient: _color(context, tokens?.shadow?.ambient),\n }\n}\n\nfunction buildAvatarColorTheme(\n options: {scheme: ThemeColorSchemeKey},\n stateTokens?: ThemeColorStateTokens,\n): ThemeColorAvatar_v2 {\n const {scheme} = options\n\n return {\n gray: _buildAvatarColorTheme({color: 'gray', scheme}, stateTokens),\n blue: _buildAvatarColorTheme({color: 'blue', scheme}, stateTokens),\n purple: _buildAvatarColorTheme({color: 'purple', scheme}, stateTokens),\n magenta: _buildAvatarColorTheme({color: 'magenta', scheme}, stateTokens),\n red: _buildAvatarColorTheme({color: 'red', scheme}, stateTokens),\n orange: _buildAvatarColorTheme({color: 'orange', scheme}, stateTokens),\n yellow: _buildAvatarColorTheme({color: 'yellow', scheme}, stateTokens),\n green: _buildAvatarColorTheme({color: 'green', scheme}, stateTokens),\n cyan: _buildAvatarColorTheme({color: 'cyan', scheme}, stateTokens),\n }\n}\n\nfunction _buildAvatarColorTheme(\n options: {color: ThemeColorAvatarColorKey; scheme: ThemeColorSchemeKey},\n stateTokens?: ThemeColorStateTokens,\n): ThemeColorAvatarHue_v2 {\n const {color, scheme} = options\n const tokens = stateTokens?.avatar?.[color]\n const context: ColorTokenContext = {hue: tokens?._hue || 'gray', scheme}\n const blendMode = tokens?._blend || ['screen', 'multiply']\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n bg: _color(context, tokens?.bg),\n fg: _color(context, tokens?.fg),\n }\n}\n\nfunction buildBadgeColorTheme(\n tokens: ThemeColorBadgeTokens | undefined,\n options: {scheme: ThemeColorSchemeKey},\n config?: ThemeConfig,\n): ThemeColorBadge_v2 {\n const {scheme} = options\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n const colorBadge = {} as ThemeColorBadge_v2\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n colorBadge[tone] = _buildBadgeColorTheme(tokens, {scheme, tone}, config)\n }\n\n return colorBadge\n}\n\nfunction _buildBadgeColorTheme(\n parentTokens: ThemeColorBadgeTokens | undefined,\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorStateToneKey},\n config?: ThemeConfig,\n): ThemeColorBadge_v2['default'] {\n const {scheme, tone} = options\n const tokens = parentTokens?.[tone]\n const hue = tokens?._hue || config?.color?.base?.[tone]?._hue || 'gray'\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n bg: _color(context, tokens?.bg),\n fg: _color(context, tokens?.fg),\n dot: _color(context, tokens?.dot),\n icon: _color(context, tokens?.icon),\n }\n}\n\nfunction buildButtonColorTheme(\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorCardToneKey},\n config?: ThemeConfig,\n): ThemeColorButton_v2 {\n const {scheme, tone: cardTone} = options\n\n const modes: Partial<ThemeColorButton_v2> = {}\n\n for (const mode of THEME_COLOR_BUTTON_MODES) {\n modes[mode] = buildButtonTonesColorTheme({cardTone, scheme, mode}, config)\n }\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n return modes as ThemeColorButton_v2\n}\n\nfunction buildButtonTonesColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n scheme: ThemeColorSchemeKey\n mode: ThemeColorButtonModeKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonMode_v2 {\n const {cardTone, mode, scheme} = options\n\n const tones: Partial<ThemeColorButtonMode_v2> = {}\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n tones[tone] = buildButtonStatesColorTheme({cardTone, mode, scheme, tone}, config)\n }\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n return tones as ThemeColorButtonMode_v2\n}\n\nfunction buildButtonStatesColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n mode: ThemeColorButtonModeKey\n scheme: ThemeColorSchemeKey\n tone: ThemeColorStateToneKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonTone_v2 {\n const {cardTone, mode, scheme, tone} = options\n\n const states: Partial<ThemeColorButtonTone_v2> = {}\n\n for (const state of THEME_COLOR_STATES) {\n states[state] = buildButtonStateColorTheme({cardTone, mode, tone, scheme, state}, config)\n }\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n return states as ThemeColorButtonTone_v2\n}\n\nfunction buildButtonStateColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n mode: ThemeColorButtonModeKey\n tone: ThemeColorStateToneKey\n scheme: ThemeColorSchemeKey\n state: ThemeColorStateKey\n },\n config?: ThemeConfig,\n): ThemeColorState_v2 {\n const {cardTone, mode, tone, scheme, state} = options\n const cardTokens = config?.color?.base?.[cardTone]\n const tokens = config?.color?.button?.[mode]?.[tone]?.[state]\n const hue = tokens?._hue || cardTokens?._hue || 'gray'\n const blendMode = tokens?._blend || ['screen', 'multiply']\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n accent: {\n fg: _color(context, tokens?.accent?.fg),\n },\n avatar: buildAvatarColorTheme({scheme}, tokens),\n badge: buildBadgeColorTheme(tokens?.badge, {scheme}, config),\n bg: _color(context, tokens?.bg),\n border: _color(context, tokens?.border),\n code: {\n bg: _color(context, tokens?.code?.bg),\n fg: _color(context, tokens?.code?.fg),\n },\n fg: _color(context, tokens?.fg),\n icon: _color(context, tokens?.icon),\n muted: {\n bg: _color(context, tokens?.muted?.bg),\n fg: _color(context, tokens?.muted?.fg),\n },\n kbd: {\n bg: _color(context, tokens?.kbd?.bg),\n fg: _color(context, tokens?.kbd?.fg),\n border: _color(context, tokens?.kbd?.border),\n },\n link: {\n fg: _color(context, tokens?.link?.fg),\n },\n skeleton: {\n from: _color(context, tokens?.skeleton?.from),\n to: _color(context, tokens?.skeleton?.to),\n },\n }\n}\n\nfunction buildInputColorTheme(\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorCardToneKey},\n config?: ThemeConfig,\n): ThemeColorInput_v2 {\n const {scheme, tone} = options\n\n return {\n default: buildInputStatesColorTheme({mode: 'default', scheme, tone}, config),\n invalid: buildInputStatesColorTheme({mode: 'invalid', scheme, tone}, config),\n }\n}\n\nfunction buildInputStatesColorTheme(\n options: {\n mode: 'default' | 'invalid'\n scheme: ThemeColorSchemeKey\n tone: ThemeColorCardToneKey\n },\n config?: ThemeConfig,\n): ThemeColorInputMode_v2 {\n const {mode, scheme, tone} = options\n\n return {\n enabled: buildInputStateColorTheme({mode, scheme, state: 'enabled', cardTone: tone}, config),\n hovered: buildInputStateColorTheme({mode, scheme, state: 'hovered', cardTone: tone}, config),\n readOnly: buildInputStateColorTheme({mode, scheme, state: 'readOnly', cardTone: tone}, config),\n disabled: buildInputStateColorTheme({mode, scheme, state: 'disabled', cardTone: tone}, config),\n }\n}\n\nfunction buildInputStateColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n mode: 'default' | 'invalid'\n scheme: ThemeColorSchemeKey\n state: 'enabled' | 'hovered' | 'readOnly' | 'disabled'\n },\n config?: ThemeConfig,\n): ThemeColorInputState_v2 {\n const {cardTone, mode, scheme, state} = options\n const cardTokens = config?.color?.base?.[cardTone]\n const tokens = config?.color?.input?.[mode]?.[state]\n const hue = tokens?._hue || cardTokens?._hue || 'gray'\n const blendMode = tokens?._blend || ['screen', 'multiply']\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n bg: _color(context, tokens?.bg),\n border: _color(context, tokens?.border),\n fg: _color(context, tokens?.fg),\n muted: {\n bg: _color(context, tokens?.muted?.bg),\n },\n placeholder: _color(context, tokens?.placeholder),\n }\n}\n\nfunction buildSelectableColorTheme(\n options: {\n scheme: ThemeColorSchemeKey\n tone: ThemeColorCardToneKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonMode_v2 {\n const {scheme, tone: cardTone} = options\n\n const tones: Partial<ThemeColorButtonMode_v2> = {}\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n tones[tone] = buildSelectableStatesColorTheme({cardTone, scheme, tone}, config)\n }\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n return tones as ThemeColorButtonMode_v2\n}\n\nfunction buildSelectableStatesColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n scheme: ThemeColorSchemeKey\n tone: ThemeColorStateToneKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonTone_v2 {\n const {cardTone, scheme, tone} = options\n\n const states: Partial<ThemeColorButtonTone_v2> = {}\n\n for (const state of THEME_COLOR_STATES) {\n states[state] = buildSelectableStateColorTheme({cardTone, tone, scheme, state}, config)\n }\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n return states as ThemeColorButtonTone_v2\n}\n\nfunction buildSelectableStateColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n scheme: ThemeColorSchemeKey\n state: ThemeColorStateKey\n tone: ThemeColorStateToneKey\n },\n config?: ThemeConfig,\n): ThemeColorState_v2 {\n const {cardTone, scheme, state, tone} = options\n const cardTokens = config?.color?.base?.[cardTone]\n const tokens = config?.color?.selectable?.[tone]?.[state]\n\n const hue = tokens?._hue || cardTokens?._hue || 'gray'\n const blendMode = tokens?._blend || ['screen', 'multiply']\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n accent: {\n fg: _color(context, tokens?.accent?.fg),\n },\n avatar: buildAvatarColorTheme({scheme}, tokens),\n badge: buildBadgeColorTheme(tokens?.badge, {scheme}, config),\n bg: _color(context, tokens?.bg),\n border: _color(context, tokens?.border),\n code: {\n bg: _color(context, tokens?.code?.bg),\n fg: _color(context, tokens?.code?.fg),\n },\n fg: _color(context, tokens?.fg),\n icon: _color(context, tokens?.icon),\n muted: {\n bg: _color(context, tokens?.muted?.bg),\n fg: _color(context, tokens?.muted?.fg),\n },\n kbd: {\n bg: _color(context, tokens?.kbd?.bg),\n fg: _color(context, tokens?.kbd?.fg),\n border: _color(context, tokens?.kbd?.border),\n },\n link: {\n fg: _color(context, tokens?.link?.fg),\n },\n skeleton: {\n from: _color(context, tokens?.skeleton?.from),\n to: _color(context, tokens?.skeleton?.to),\n },\n }\n}\n\nfunction buildSyntaxColorTheme(\n options: {scheme: ThemeColorSchemeKey},\n config?: ThemeConfig,\n): ThemeColorSyntax {\n const {scheme} = options\n const tokens = config?.color?.syntax\n const context: ColorTokenContext = {hue: 'gray', scheme}\n\n return {\n atrule: _color(context, tokens?.atrule),\n attrName: _color(context, tokens?.attrName),\n attrValue: _color(context, tokens?.attrValue),\n attribute: _color(context, tokens?.attribute),\n boolean: _color(context, tokens?.boolean),\n builtin: _color(context, tokens?.builtin),\n cdata: _color(context, tokens?.cdata),\n char: _color(context, tokens?.char),\n class: _color(context, tokens?.class),\n className: _color(context, tokens?.className),\n comment: _color(context, tokens?.comment),\n constant: _color(context, tokens?.constant),\n deleted: _color(context, tokens?.deleted),\n doctype: _color(context, tokens?.doctype),\n entity: _color(context, tokens?.entity),\n function: _color(context, tokens?.function),\n hexcode: _color(context, tokens?.hexcode),\n id: _color(context, tokens?.id),\n important: _color(context, tokens?.important),\n inserted: _color(context, tokens?.inserted),\n keyword: _color(context, tokens?.keyword),\n number: _color(context, tokens?.number),\n operator: _color(context, tokens?.operator),\n prolog: _color(context, tokens?.prolog),\n property: _color(context, tokens?.property),\n pseudoClass: _color(context, tokens?.pseudoClass),\n pseudoElement: _color(context, tokens?.pseudoElement),\n punctuation: _color(context, tokens?.punctuation),\n regex: _color(context, tokens?.regex),\n selector: _color(context, tokens?.selector),\n string: _color(context, tokens?.string),\n symbol: _color(context, tokens?.symbol),\n tag: _color(context, tokens?.tag),\n unit: _color(context, tokens?.unit),\n url: _color(context, tokens?.url),\n variable: _color(context, tokens?.variable),\n }\n}\n","import {color} from '@sanity/color'\n\nimport {ThemeColorPalette} from '../config/types'\n\nexport const defaultColorPalette: ThemeColorPalette = color\n","import {RGB, RGBA} from '../types'\n\nfunction mixChannel(b: number, s: number, weight: number) {\n const diff = s - b\n\n const delta = diff * weight\n\n return b + delta\n}\n\n/**\n * Apply the \\`mix\\` blend mode\n * @internal\n */\nexport function mix(b: RGB | RGBA, s: RGB | RGBA, weight: number): RGB {\n return {\n r: mixChannel(b.r, s.r, weight),\n g: mixChannel(b.g, s.g, weight),\n b: mixChannel(b.b, s.b, weight),\n }\n}\n","function lerp(x: number, y: number, a: number): number {\n return x * (1 - a) + y * a\n}\n\nfunction invlerp(x: number, y: number, a: number): number {\n return clamp((a - x) / (y - x))\n}\n\nexport function clamp(a: number, min = 0, max = 1): number {\n return Math.min(max, Math.max(min, a))\n}\n\nexport function range(x1: number, y1: number, x2: number, y2: number, a: number): number {\n return lerp(x2, y2, invlerp(x1, y1, a))\n}\n\nexport function round(value: number): number {\n return Math.round(value)\n}\n","import {clamp, round} from '../utils'\nimport {HSL, RGB, RGBA} from './types'\n\n/**\n * @internal\n */\nexport function hexToRgb(hex: string): RGB {\n if (hex.length === 4) {\n const hexR = hex.slice(1, 2)\n const hexG = hex.slice(2, 3)\n const hexB = hex.slice(3, 4)\n\n return {\n r: parseInt(hexR + hexR, 16),\n g: parseInt(hexG + hexG, 16),\n b: parseInt(hexB + hexB, 16),\n }\n }\n\n return {\n r: parseInt(hex.slice(1, 3), 16),\n g: parseInt(hex.slice(3, 5), 16),\n b: parseInt(hex.slice(5, 7), 16),\n }\n}\n\n/**\n * @internal\n */\nexport function rgbaToRGBA(rgba: string): RGBA {\n const values = rgba.replace(/rgba\\(|\\)/g, '').split(',')\n\n return {\n r: parseInt(values[0]),\n g: parseInt(values[1]),\n b: parseInt(values[2]),\n a: parseFloat(values[3]),\n }\n}\n\n/**\n * @internal\n */\nexport function rgbToHex(color: RGB | RGBA): string {\n const r = round(clamp(Math.round(color.r), 0, 255))\n const g = round(clamp(Math.round(color.g), 0, 255))\n const b = round(clamp(Math.round(color.b), 0, 255))\n\n if ('a' in color) {\n return `rgba(${r},${g},${b},${color.a})`\n }\n\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n}\n\n/**\n * @internal\n * @see https://css-tricks.com/converting-color-spaces-in-javascript/\n */\nexport function rgbToHsl({r, g, b}: RGB): HSL {\n // Make r, g, and b fractions of 1\n r /= 255\n g /= 255\n b /= 255\n\n // Find greatest and smallest channel values\n const cmin = Math.min(r, g, b)\n const cmax = Math.max(r, g, b)\n const delta = cmax - cmin\n\n let h = 0\n let s = 0\n let l = 0\n\n // Calculate hue\n // No difference\n if (delta == 0) h = 0\n // Red is max\n else if (cmax == r) h = ((g - b) / delta) % 6\n // Green is max\n else if (cmax == g) h = (b - r) / delta + 2\n // Blue is max\n else h = (r - g) / delta + 4\n\n h = Math.round(h * 60)\n\n // Make negative hues positive behind 360°\n if (h < 0) h += 360\n\n // Calculate lightness\n l = (cmax + cmin) / 2\n\n // Calculate saturation\n s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1))\n\n // Multiply l and s by 100\n s = +(s * 100).toFixed(1)\n l = +(l * 100).toFixed(1)\n\n return {h, s, l}\n}\n\n/**\n * @internal\n */\nexport function hslToRgb(hsl: HSL): RGB {\n // Must be fractions of 1\n const s = hsl.s / 100\n const l = hsl.l / 100\n\n const c = (1 - Math.abs(2 * l - 1)) * s\n const x = c * (1 - Math.abs(((hsl.h / 60) % 2) - 1))\n const m = l - c / 2\n\n let r = 0\n let g = 0\n let b = 0\n\n if (0 <= hsl.h && hsl.h < 60) {\n r = c\n g = x\n b = 0\n } else if (60 <= hsl.h && hsl.h < 120) {\n r = x\n g = c\n b = 0\n } else if (120 <= hsl.h && hsl.h < 180) {\n r = 0\n g = c\n b = x\n } else if (180 <= hsl.h && hsl.h < 240) {\n r = 0\n g = x\n b = c\n } else if (240 <= hsl.h && hsl.h < 300) {\n r = x\n g = 0\n b = c\n } else if (300 <= hsl.h && hsl.h < 360) {\n r = c\n g = 0\n b = x\n }\n\n return {\n r: Math.round((r + m) * 255),\n g: Math.round((g + m) * 255),\n b: Math.round((b + m) * 255),\n }\n}\n","import {hexToRgb, hslToRgb, rgbaToRGBA} from './convert'\nimport {HSL, RGB, RGBA} from './types'\n\nconst HEX_CHARS = '0123456789ABCDEFabcdef'\n\nconst HSL_RE = /hsl\\(\\s*(\\d+)\\s*,\\s*((\\d+(?:\\.\\d+)?)%)\\s*,\\s*((\\d+(?:\\.\\d+)?)%)\\s*\\)/i\n\nfunction isHexChars(str: string) {\n for (const c of str) {\n if (HEX_CHARS.indexOf(c) === -1) {\n return false\n }\n }\n\n return true\n}\n\nfunction isHex(str: string) {\n if (str[0] !== '#') return false\n\n // Accept both #000 and #000000\n if (!(str.length === 4 || str.length === 7)) return false\n\n return isHexChars(str.slice(1))\n}\n\nfunction parseHsl(str: string): HSL {\n const res = HSL_RE.exec(str)\n\n if (!res) {\n throw new Error(`parseHsl: string is not a HSL color: \"${str}\"`)\n }\n\n return {h: parseInt(res[1]), s: parseFloat(res[3]), l: parseFloat(res[5])}\n}\n\n/**\n * @internal\n */\nexport function parseColor(color: unknown): RGB | RGBA {\n if (!color) return {r: 0, g: 0, b: 0}\n\n if (typeof color !== 'string') {\n throw new Error('parseColor: expected a string')\n }\n\n if (isHex(color)) {\n return hexToRgb(color)\n }\n\n if (color.startsWith('hsl(')) {\n return hslToRgb(parseHsl(color))\n }\n\n if (color.startsWith('rgba(')) {\n return rgbaToRGBA(color)\n }\n\n throw new Error(`parseColor: unexpected color format: \"${color}\"`)\n}\n","import {parseColor} from './parse'\n\n/**\n * @internal\n */\nexport function rgba(color: unknown, a: number): string {\n const rgb = parseColor(color)\n\n return `rgba(${rgb.r},${rgb.g},${rgb.b},${a})`\n}\n","import {RGB, RGBA} from '../types'\n\nfunction multiplyChannel(b: number, s: number) {\n return b * s\n}\n\n/**\n * Apply the \\`multiply\\` blend mode\n * Source: https://www.w3.org/TR/compositing-1/#blendingmultiply\n * @internal\n */\nexport function multiply(b: RGB | RGBA, s: RGB | RGBA): RGB {\n return {\n r: multiplyChannel(b.r / 255, s.r / 255) * 255,\n g: multiplyChannel(b.g / 255, s.g / 255) * 255,\n b: multiplyChannel(b.b / 255, s.b / 255) * 255,\n }\n}\n","import {RGB, RGBA} from '../types'\n\nfunction screenChannel(b: number, s: number) {\n return b + s - b * s\n}\n\n/**\n * Apply the \\`screen\\` blend mode\n * Source: https://www.w3.org/TR/compositing-1/#blendingscreen\n * @internal\n */\nexport function screen(b: RGB | RGBA, s: RGB | RGBA): RGB {\n return {\n r: screenChannel(b.r / 255, s.r / 255) * 255,\n g: screenChannel(b.g / 255, s.g / 255) * 255,\n b: screenChannel(b.b / 255, s.b / 255) * 255,\n }\n}\n","import {multiply} from './lib/color-fns/blend/multiply'\nimport {screen} from './lib/color-fns/blend/screen'\nimport {rgbToHex} from './lib/color-fns/convert'\nimport {parseColor} from './lib/color-fns/parse'\nimport {RGB} from './lib/color-fns/types'\nimport {clamp, range} from './lib/utils'\n\nconst RGB_RANGE: [number, number] = [0, 255]\n\nexport function mixThemeColor(\n value: string,\n options: {\n bg?: string\n blendMode: 'multiply' | 'screen'\n black: string\n white: string\n },\n): string {\n const {blendMode} = options\n\n const color = parseColor(value)\n const black = parseColor(options.black)\n const white = parseColor(options.white)\n\n const bg = options.bg ? parseColor(options.bg) : blendMode === 'multiply' ? white : black\n\n const paletteRange: {r: [number, number]; g: [number, number]; b: [number, number]} = {\n r: [black.r, white.r],\n g: [black.g, white.g],\n b: [black.b, white.b],\n }\n\n const convertedBgColor: RGB = {\n r: clamp(range(...paletteRange.r, ...RGB_RANGE, bg.r), ...RGB_RANGE),\n g: clamp(range(...paletteRange.g, ...RGB_RANGE, bg.g), ...RGB_RANGE),\n b: clamp(range(...paletteRange.b, ...RGB_RANGE, bg.b), ...RGB_RANGE),\n }\n\n const convertedColor: RGB = {\n r: clamp(range(...paletteRange.r, ...RGB_RANGE, color.r), ...RGB_RANGE),\n g: clamp(range(...paletteRange.g, ...RGB_RANGE, color.g), ...RGB_RANGE),\n b: clamp(range(...paletteRange.b, ...RGB_RANGE, color.b), ...RGB_RANGE),\n }\n\n const resultColor =\n blendMode === 'multiply'\n ? multiply(convertedBgColor, convertedColor)\n : screen(convertedBgColor, convertedColor)\n\n const v: RGB = {\n r: clamp(range(...RGB_RANGE, ...paletteRange.r, resultColor.r), ...paletteRange.r),\n g: clamp(range(...RGB_RANGE, ...paletteRange.g, resultColor.g), ...paletteRange.g),\n b: clamp(range(...RGB_RANGE, ...paletteRange.b, resultColor.b), ...paletteRange.b),\n }\n\n return rgbToHex(v)\n}\n","import {ColorTint as ColorPaletteValue} from '@sanity/color'\n\nimport {parseTokenValue} from '../config/tokens/parseTokenValue'\nimport {ThemeColorPalette} from '../config/types'\nimport {ThemeColorBlendModeKey} from '../system/color/_system'\nimport {mix} from './lib/color-fns/blend/mix'\nimport {hexToRgb, rgbToHex} from './lib/color-fns/convert'\nimport {rgba} from './lib/color-fns/rgba'\nimport {mixThemeColor} from './mixThemeColor'\n\nexport interface RenderColorValueOptions {\n bg?: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n}\n\nexport function renderColorValue(str: string, options: RenderColorValueOptions): string {\n const {bg, blendMode, colorPalette} = options\n\n if (bg === 'white') {\n throw new Error('Cannot blend with white background')\n }\n\n const node = parseTokenValue(str)\n\n if (!node || node.type !== 'color') {\n throw new Error(`Invalid color token value: ${str}`)\n }\n\n let hex = ''\n\n if (node.key === 'black') {\n hex = renderColorHex(colorPalette.black)\n }\n\n if (node.key === 'white') {\n hex = renderColorHex(colorPalette.white)\n }\n\n if (node.hue && node.tint) {\n hex = renderColorHex(colorPalette[node.hue][node.tint])\n }\n\n if (!hex) {\n throw new Error(`Invalid color token value: ${str}`)\n }\n\n const hexBeforeMix = hex\n\n const mixOptions = {\n blendMode,\n bg,\n black: renderColorHex(colorPalette.black),\n // opacity: node.opacity,\n white: renderColorHex(colorPalette.white),\n }\n\n try {\n hex = mixThemeColor(hex, mixOptions)\n\n if (bg && node.mix !== undefined) {\n const from = hexToRgb(bg)\n const to = hexToRgb(hex)\n\n hex = rgbToHex(mix(from, to, node.mix))\n }\n } catch (err) {\n console.warn('could not blend', hex, mixOptions)\n throw err\n }\n\n if (hex === '#aN') {\n console.warn(`invalid color token value: ${str}`)\n hex = hexBeforeMix\n }\n\n if (node.opacity !== undefined) {\n hex = rgba(hex, node.opacity)\n }\n\n return hex\n}\n\nfunction renderColorHex(color: string | ColorPaletteValue) {\n return typeof color === 'string' ? color : color.hex\n}\n","import {COLOR_HUES} from '@sanity/color'\n\nimport {ThemeColorPalette, ThemeConfig} from '../config/types'\nimport {defaultColorPalette} from '../defaults/colorPalette'\nimport {THEME_COLOR_CARD_TONES, THEME_COLOR_STATE_TONES} from '../system/color/_constants'\nimport {ThemeColorBlendModeKey} from '../system/color/_system'\nimport {ThemeColorAvatar_v2} from '../system/color/avatar'\nimport {ThemeColorBadge_v2, ThemeColorBadgeTone_v2} from '../system/color/badge'\nimport {\n ThemeColorButton_v2,\n ThemeColorButtonMode_v2,\n ThemeColorButtonTone_v2,\n} from '../system/color/button'\nimport {ThemeColorCard_v2, ThemeColorScheme_v2, ThemeColorSchemes_v2} from '../system/color/color'\nimport {\n ThemeColorInput_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n} from '../system/color/input'\nimport {ThemeColorKBD} from '../system/color/kbd'\nimport {ThemeColorSelectable_v2, ThemeColorSelectableTone_v2} from '../system/color/selectable'\nimport {ThemeColorShadow} from '../system/color/shadow'\nimport {ThemeColorState_v2} from '../system/color/state'\nimport {ThemeColorSyntax} from '../system/color/syntax'\nimport {defineLazyProperty} from './lib/lazy'\nimport {renderColorValue, RenderColorValueOptions} from './renderColorValue'\n\nexport function renderThemeColorSchemes(\n value: ThemeColorSchemes_v2,\n config?: ThemeConfig,\n): ThemeColorSchemes_v2 {\n const colorPalette = config?.palette ?? defaultColorPalette\n\n // Lazy schemes — each scheme is only rendered when first accessed\n // oxlint-disable-next-line no-unsafe-type-assertion\n const schemes = {} as ThemeColorSchemes_v2\n defineLazyProperty(schemes, 'light', () => renderThemeColorScheme(colorPalette, value.light))\n defineLazyProperty(schemes, 'dark', () => renderThemeColorScheme(colorPalette, value.dark))\n\n return schemes\n}\n\nfunction renderThemeColorScheme(\n colorPalette: ThemeColorPalette,\n value: ThemeColorScheme_v2,\n): ThemeColorScheme_v2 {\n // The `default` tone must be rendered eagerly — other tones depend on its `bg`.\n const renderedDefaultTone = renderThemeColor(value.default, {colorPalette})\n\n const bg = renderedDefaultTone.bg\n\n if (bg === 'white') {\n throw new Error('Cannot blend with white background')\n }\n\n // All other tones are lazy. `transparent` and `default` are rendered without\n // a `bg` option; the rest blend on top of `default`'s `bg`.\n // We iterate THEME_COLOR_CARD_TONES (not Object.entries) to avoid\n // force-evaluating lazy getters from the build phase.\n // oxlint-disable-next-line no-unsafe-type-assertion\n const scheme = {default: renderedDefaultTone} as ThemeColorScheme_v2\n\n for (const tone of THEME_COLOR_CARD_TONES) {\n if (tone === 'default') continue\n const opts = tone === 'transparent' ? {colorPalette} : {bg, colorPalette}\n defineLazyProperty(scheme, tone, () => renderThemeColor(value[tone], opts))\n }\n\n return scheme\n}\n\nfunction renderThemeColor(\n value: ThemeColorCard_v2,\n options: {\n bg?: string\n colorPalette: ThemeColorPalette\n },\n): ThemeColorCard_v2 {\n const {colorPalette, bg} = options\n const blendMode = value._blend || 'multiply'\n const baseBg = renderColorValue(value.bg, {colorPalette, bg, blendMode})\n const colorOptions: RenderColorValueOptions = {colorPalette, bg: baseBg, blendMode}\n\n const button = renderThemeColorButton(value.button, {\n baseBg,\n blendMode,\n colorPalette,\n })\n\n const selectable = renderThemeColorSelectable(value.selectable, {\n colorPalette,\n baseBg,\n blendMode,\n })\n\n const shadow: ThemeColorShadow = {\n outline: renderColorValue(value.shadow.outline, colorOptions),\n umbra: renderColorValue(value.shadow.umbra, {\n ...colorOptions,\n bg: undefined,\n colorPalette: {...colorPalette, black: '#000000'},\n }),\n penumbra: renderColorValue(value.shadow.penumbra, {\n ...colorOptions,\n bg: undefined,\n colorPalette: {...colorPalette, black: '#000000'},\n }),\n ambient: renderColorValue(value.shadow.ambient, {\n ...colorOptions,\n bg: undefined,\n colorPalette: {...colorPalette, black: '#000000'},\n }),\n }\n\n return {\n _blend: blendMode,\n _dark: value._dark,\n accent: {\n fg: renderColorValue(value.accent.fg, colorOptions),\n },\n avatar: renderThemeColorAvatar(value.avatar, {baseBg, colorPalette, blendMode}),\n backdrop: renderColorValue(value.backdrop, colorOptions),\n badge: renderThemeColorBadge(value.badge, {baseBg, colorPalette, blendMode}),\n bg: baseBg,\n border: renderColorValue(value.border, colorOptions),\n button,\n code: {\n bg: renderColorValue(value.code.bg, colorOptions),\n fg: renderColorValue(value.code.fg, colorOptions),\n },\n fg: renderColorValue(value.fg, colorOptions),\n focusRing: renderColorValue(value.focusRing, colorOptions),\n icon: renderColorValue(value.icon, colorOptions),\n input: renderThemeColorInput(value.input, {baseBg, colorPalette, blendMode}),\n kbd: renderThemeColorKBD(value.kbd, {baseBg, colorPalette, blendMode}),\n link: {\n fg: renderColorValue(value.link.fg, colorOptions),\n },\n muted: {\n bg: renderColorValue(value.muted.bg, colorOptions),\n fg: renderColorValue(value.muted.fg, colorOptions),\n },\n shadow,\n skeleton: {\n from: renderColorValue(value.skeleton.from, colorOptions),\n to: renderColorValue(value.skeleton.to, colorOptions),\n },\n syntax: renderSyntaxColorTheme(value.syntax, {baseBg, colorPalette, blendMode}),\n selectable,\n }\n}\n\nfunction renderThemeColorKBD(\n value: ThemeColorKBD,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorKBD {\n const {baseBg, blendMode, colorPalette} = options\n\n const rootOptions: RenderColorValueOptions = {\n bg: baseBg,\n blendMode,\n colorPalette,\n }\n\n const bg = renderColorValue(value.bg, rootOptions)\n\n const colorOptions: RenderColorValueOptions = {\n bg,\n blendMode,\n colorPalette,\n }\n\n return {\n bg,\n fg: renderColorValue(value.fg, colorOptions),\n border: renderColorValue(value.border, colorOptions),\n }\n}\n\nfunction renderThemeColorAvatar(\n value: ThemeColorAvatar_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorAvatar_v2 {\n // oxlint-disable-next-line no-unsafe-type-assertion\n const colorAvatar = {} as ThemeColorAvatar_v2\n\n for (const hue of COLOR_HUES) {\n colorAvatar[hue] = renderThemeColorAvatarColor(value[hue], options)\n }\n\n return colorAvatar\n}\n\nfunction renderThemeColorAvatarColor(\n value: ThemeColorAvatar_v2['gray'],\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorAvatar_v2['gray'] {\n const {baseBg, blendMode: rootBlendMode, colorPalette} = options\n const blendMode = value._blend || 'multiply'\n\n const rootOptions: RenderColorValueOptions = {\n bg: baseBg,\n blendMode: rootBlendMode,\n colorPalette,\n }\n\n const bg = renderColorValue(value.bg, rootOptions)\n\n const colorOptions: RenderColorValueOptions = {\n bg,\n blendMode,\n colorPalette,\n }\n\n return {\n _blend: blendMode,\n bg,\n fg: renderColorValue(value.fg, colorOptions),\n }\n}\n\nfunction renderThemeColorBadge(\n value: ThemeColorBadge_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorBadge_v2 {\n // oxlint-disable-next-line no-unsafe-type-assertion\n const colorBadge = {} as ThemeColorBadge_v2\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n colorBadge[tone] = renderThemeColorBadgeColor(value[tone], options)\n }\n\n return colorBadge\n}\n\nfunction renderThemeColorBadgeColor(\n value: ThemeColorBadgeTone_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorBadgeTone_v2 {\n const {baseBg, blendMode: rootBlendMode, colorPalette} = options\n\n const blendMode = rootBlendMode\n\n const rootOptions: RenderColorValueOptions = {\n bg: baseBg,\n blendMode: rootBlendMode,\n colorPalette,\n }\n\n const bg = renderColorValue(value.bg, rootOptions)\n\n const colorOptions: RenderColorValueOptions = {\n bg,\n blendMode,\n colorPalette,\n }\n\n return {\n bg,\n dot: renderColorValue(value.dot, colorOptions),\n fg: renderColorValue(value.fg, colorOptions),\n icon: renderColorValue(value.icon, colorOptions),\n }\n}\n\nfunction renderThemeColorButton(\n value: ThemeColorButton_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorButton_v2 {\n return {\n default: renderThemeColorButtonTones(value.default, options),\n ghost: renderThemeColorButtonTones(value.ghost, options),\n bleed: renderThemeColorButtonTones(value.bleed, options),\n }\n}\n\nfunction renderThemeColorButtonTones(\n value: ThemeColorButtonMode_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorButtonMode_v2 {\n // oxlint-disable-next-line no-unsafe-type-assertion\n const colorButtonMode = {} as ThemeColorButtonMode_v2\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n colorButtonMode[tone] = renderThemeColorButtonStates(value[tone], options)\n }\n\n return colorButtonMode\n}\n\nfunction renderThemeColorButtonStates(\n value: ThemeColorButtonTone_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorButtonTone_v2 {\n return {\n enabled: renderThemeColorState(value.enabled, options),\n hovered: renderThemeColorState(value.hovered, options),\n pressed: renderThemeColorState(value.pressed, options),\n selected: renderThemeColorState(value.selected, options),\n disabled: renderThemeColorState(value.disabled, options),\n }\n}\n\nfunction renderThemeColorState(\n value: ThemeColorState_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorState_v2 {\n const {baseBg, blendMode: rootBlendMode, colorPalette} = options\n const blendMode = value._blend || 'multiply'\n\n const rootOptions: RenderColorValueOptions = {\n bg: baseBg,\n blendMode: rootBlendMode,\n colorPalette,\n }\n\n const bg = renderColorValue(value.bg, rootOptions)\n\n const colorOptions: RenderColorValueOptions = {\n bg,\n blendMode,\n colorPalette,\n }\n\n return {\n _blend: blendMode,\n accent: {\n fg: renderColorValue(value.accent.fg, colorOptions),\n },\n avatar: renderThemeColorAvatar(value.avatar, {baseBg: bg, colorPalette, blendMode}),\n badge: renderThemeColorBadge(value.badge, {baseBg: bg, colorPalette, blendMode}),\n bg,\n border: renderColorValue(value.border, colorOptions),\n code: {\n bg: renderColorValue(value.code.bg, colorOptions),\n fg: renderColorValue(value.code.fg, colorOptions),\n },\n fg: renderColorValue(value.fg, colorOptions),\n icon: renderColorValue(value.icon, colorOptions),\n link: {\n fg: renderColorValue(value.link.fg, colorOptions),\n },\n muted: {\n bg: renderColorValue(value.muted.bg, colorOptions),\n fg: renderColorValue(value.muted.fg, colorOptions),\n },\n kbd: {\n bg: renderColorValue(value.kbd.bg, colorOptions),\n fg: renderColorValue(value.kbd.fg, colorOptions),\n border: renderColorValue(value.kbd.border, colorOptions),\n },\n skeleton: {\n from: renderColorValue(value.skeleton?.from, colorOptions),\n to: renderColorValue(value.skeleton?.to, colorOptions),\n },\n }\n}\n\nfunction renderThemeColorInput(\n value: ThemeColorInput_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorInput_v2 {\n return {\n default: renderInputStatesColorTheme(value.default, options),\n invalid: renderInputStatesColorTheme(value.invalid, options),\n }\n}\n\nfunction renderInputStatesColorTheme(\n value: ThemeColorInputMode_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorInputMode_v2 {\n return {\n enabled: renderInputStateColorTheme(value.enabled, options),\n hovered: renderInputStateColorTheme(value.hovered, options),\n readOnly: renderInputStateColorTheme(value.readOnly, options),\n disabled: renderInputStateColorTheme(value.disabled, options),\n }\n}\n\nfunction renderInputStateColorTheme(\n value: ThemeColorInputState_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorInputState_v2 {\n const {baseBg, blendMode: rootBlendMode, colorPalette} = options\n const blendMode = value._blend || 'multiply'\n const rootOptions: RenderColorValueOptions = {colorPalette, bg: baseBg, blendMode: rootBlendMode}\n const bg = renderColorValue(value.bg, rootOptions)\n const colorOptions: RenderColorValueOptions = {colorPalette, bg, blendMode}\n\n return {\n _blend: blendMode,\n bg,\n border: renderColorValue(value.border, colorOptions),\n fg: renderColorValue(value.fg, colorOptions),\n muted: {\n bg: renderColorValue(value.muted.bg, colorOptions),\n },\n placeholder: renderColorValue(value.placeholder, colorOptions),\n }\n}\n\nfunction renderThemeColorSelectable(\n value: ThemeColorSelectable_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorSelectable_v2 {\n // oxlint-disable-next-line no-unsafe-type-assertion\n const colorSelectable = {} as ThemeColorSelectable_v2\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n colorSelectable[tone] = renderThemeColorSelectableStates(value[tone], options)\n }\n\n return colorSelectable\n}\n\nfunction renderThemeColorSelectableStates(\n value: ThemeColorSelectableTone_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorSelectableTone_v2 {\n return {\n enabled: renderThemeColorState(value.enabled, options),\n hovered: renderThemeColorState(value.hovered, options),\n pressed: renderThemeColorState(value.pressed, options),\n selected: renderThemeColorState(value.selected, options),\n disabled: renderThemeColorState(value.disabled, options),\n }\n}\n\nfunction renderSyntaxColorTheme(\n value: ThemeColorSyntax,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorSyntax {\n const {colorPalette, baseBg, blendMode} = options\n const colorOptions: RenderColorValueOptions = {colorPalette, bg: baseBg, blendMode}\n\n return {\n atrule: renderColorValue(value.atrule, colorOptions),\n attrName: renderColorValue(value.attrName, colorOptions),\n attrValue: renderColorValue(value.attrValue, colorOptions),\n attribute: renderColorValue(value.attribute, colorOptions),\n boolean: renderColorValue(value.boolean, colorOptions),\n builtin: renderColorValue(value.builtin, colorOptions),\n cdata: renderColorValue(value.cdata, colorOptions),\n char: renderColorValue(value.char, colorOptions),\n class: renderColorValue(value.class, colorOptions),\n className: renderColorValue(value.className, colorOptions),\n comment: renderColorValue(value.comment, colorOptions),\n constant: renderColorValue(value.constant, colorOptions),\n deleted: renderColorValue(value.deleted, colorOptions),\n doctype: renderColorValue(value.doctype, colorOptions),\n entity: renderColorValue(value.entity, colorOptions),\n function: renderColorValue(value.function, colorOptions),\n hexcode: renderColorValue(value.hexcode, colorOptions),\n id: renderColorValue(value.id, colorOptions),\n important: renderColorValue(value.important, colorOptions),\n inserted: renderColorValue(value.inserted, colorOptions),\n keyword: renderColorValue(value.keyword, colorOptions),\n number: renderColorValue(value.number, colorOptions),\n operator: renderColorValue(value.operator, colorOptions),\n prolog: renderColorValue(value.prolog, colorOptions),\n property: renderColorValue(value.property, colorOptions),\n pseudoClass: renderColorValue(value.pseudoClass, colorOptions),\n pseudoElement: renderColorValue(value.pseudoElement, colorOptions),\n punctuation: renderColorValue(value.punctuation, colorOptions),\n regex: renderColorValue(value.regex, colorOptions),\n selector: renderColorValue(value.selector, colorOptions),\n string: renderColorValue(value.string, colorOptions),\n symbol: renderColorValue(value.symbol, colorOptions),\n tag: renderColorValue(value.tag, colorOptions),\n unit: renderColorValue(value.unit, colorOptions),\n url: renderColorValue(value.url, colorOptions),\n variable: renderColorValue(value.variable, colorOptions),\n }\n}\n","import {ThemeConfig} from '../config/types'\nimport {defaultThemeConfig} from '../defaults/config'\nimport {defaultThemeFonts} from '../defaults/fonts'\nimport {RootTheme, RootTheme_v2} from '../system/theme'\nimport {v2_v0} from '../versioning/v2_v0'\nimport {buildColorTheme} from './buildColorTheme'\nimport {renderThemeColorSchemes} from './renderColorTheme'\n\n/** @internal */\nexport function buildTheme(config?: ThemeConfig): RootTheme {\n const colorTheme = buildColorTheme(config)\n\n const v2: RootTheme_v2 = {\n _version: 2,\n avatar: config?.avatar ?? defaultThemeConfig.avatar,\n button: config?.button ?? defaultThemeConfig.button,\n card: config?.card ?? defaultThemeConfig.card,\n // How colors are generated:\n // 1. Merge custom tokens with default tokens\n // 2. Generate tree of color keys (gray/500, black, white, etc.)\n // 3. Apply mixing and render to hex values\n // render(build(mergeWithDefaults()))\n color: renderThemeColorSchemes(colorTheme, config),\n container: config?.container ?? defaultThemeConfig.container,\n font: config?.font ?? defaultThemeFonts,\n input: config?.input ?? defaultThemeConfig.input,\n layer: config?.layer ?? defaultThemeConfig.layer,\n media: config?.media ?? defaultThemeConfig.media,\n radius: config?.radius ?? defaultThemeConfig.radius,\n shadow: config?.shadow ?? defaultThemeConfig.shadow,\n space: config?.space ?? defaultThemeConfig.space,\n style: config?.style ?? defaultThemeConfig.style,\n }\n\n return v2_v0(v2)\n}\n","import {ThemeColorBase} from '../../../../system/v0/color/base'\nimport {ThemeColorMuted} from '../../../../system/v0/color/muted'\nimport {\n ThemeColorSelectable,\n ThemeColorSelectableStates,\n} from '../../../../system/v0/color/selectable'\nimport {ThemeColorSolid} from '../../../../system/v0/color/solid'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSelectableTones(\n // oxlint-disable-next-line no-deprecated\n opts: ThemeColorBuilderOpts,\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase,\n dark: boolean,\n // oxlint-disable-next-line no-deprecated\n solid: ThemeColorSolid,\n // oxlint-disable-next-line no-deprecated\n muted: ThemeColorMuted,\n // oxlint-disable-next-line no-deprecated\n): ThemeColorSelectable {\n return {\n default: _createSelectableStates(opts, base, dark, solid, muted, 'default'),\n primary: _createSelectableStates(opts, base, dark, solid, muted, 'primary'),\n positive: _createSelectableStates(opts, base, dark, solid, muted, 'positive'),\n caution: _createSelectableStates(opts, base, dark, solid, muted, 'caution'),\n critical: _createSelectableStates(opts, base, dark, solid, muted, 'critical'),\n }\n}\n\nfunction _createSelectableStates(\n // oxlint-disable-next-line no-deprecated\n opts: ThemeColorBuilderOpts,\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase,\n dark: boolean,\n // oxlint-disable-next-line no-deprecated\n solid: ThemeColorSolid,\n // oxlint-disable-next-line no-deprecated\n muted: ThemeColorMuted,\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical',\n // oxlint-disable-next-line no-deprecated\n): ThemeColorSelectableStates {\n return {\n enabled: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'enabled',\n tone,\n }),\n hovered: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'hovered',\n tone,\n }),\n pressed: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'pressed',\n tone,\n }),\n selected: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'selected',\n tone,\n }),\n disabled: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'disabled',\n tone,\n }),\n }\n}\n","import {ThemeColorName} from '../../../../system/v0/color/_system'\nimport {ThemeColorBase} from '../../../../system/v0/color/base'\nimport {ThemeColorSolid} from '../../../../system/v0/color/solid'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSolidTones(\n // oxlint-disable-next-line no-deprecated\n opts: ThemeColorBuilderOpts,\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase,\n dark: boolean,\n // oxlint-disable-next-line no-deprecated\n name: ThemeColorName,\n // oxlint-disable-next-line no-deprecated\n): ThemeColorSolid {\n return {\n default: {\n enabled: opts.solid({base, dark, tone: 'default', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'default', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'default', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'default', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'default', name, state: 'selected'}),\n },\n transparent: {\n enabled: opts.solid({base, dark, tone: 'transparent', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'transparent', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'transparent', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'transparent', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'transparent', name, state: 'selected'}),\n },\n primary: {\n enabled: opts.solid({base, dark, tone: 'primary', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'primary', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'primary', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'primary', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'primary', name, state: 'selected'}),\n },\n positive: {\n enabled: opts.solid({base, dark, tone: 'positive', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'positive', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'positive', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'positive', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'positive', name, state: 'selected'}),\n },\n caution: {\n enabled: opts.solid({base, dark, tone: 'caution', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'caution', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'caution', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'caution', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'caution', name, state: 'selected'}),\n },\n critical: {\n enabled: opts.solid({base, dark, tone: 'critical', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'critical', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'critical', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'critical', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'critical', name, state: 'selected'}),\n },\n }\n}\n","import {ThemeColorButtonModeKey} from '../../../../system/color/_system'\nimport {ThemeColorBase} from '../../../../system/v0/color/base'\nimport {ThemeColorButtonTones} from '../../../../system/v0/color/button'\nimport {ThemeColorMuted} from '../../../../system/v0/color/muted'\nimport {ThemeColorSolid} from '../../../../system/v0/color/solid'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createButtonTones(\n // oxlint-disable-next-line no-deprecated\n opts: ThemeColorBuilderOpts,\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase,\n dark: boolean,\n // oxlint-disable-next-line no-deprecated\n solid: ThemeColorSolid,\n // oxlint-disable-next-line no-deprecated\n muted: ThemeColorMuted,\n mode: ThemeColorButtonModeKey,\n // oxlint-disable-next-line no-deprecated\n): ThemeColorButtonTones {\n return {\n default: opts.button({\n base,\n dark,\n solid: solid.default,\n muted: muted.default,\n mode,\n }),\n primary: opts.button({\n base,\n dark,\n solid: solid.primary,\n muted: muted.primary,\n mode,\n }),\n positive: opts.button({\n base,\n dark,\n solid: solid.positive,\n muted: muted.positive,\n mode,\n }),\n caution: opts.button({\n base,\n dark,\n solid: solid.caution,\n muted: muted.caution,\n mode,\n }),\n critical: opts.button({\n base,\n dark,\n solid: solid.critical,\n muted: muted.critical,\n mode,\n }),\n }\n}\n","import {ThemeColorBase} from '../../../../system/v0/color/base'\nimport {ThemeColorButton} from '../../../../system/v0/color/button'\nimport {ThemeColorMuted} from '../../../../system/v0/color/muted'\nimport {ThemeColorSolid} from '../../../../system/v0/color/solid'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {createButtonTones} from './createButtonTones'\n\nexport function createButtonModes(\n // oxlint-disable-next-line no-deprecated\n opts: ThemeColorBuilderOpts,\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase,\n dark: boolean,\n // oxlint-disable-next-line no-deprecated\n solid: ThemeColorSolid,\n // oxlint-disable-next-line no-deprecated\n muted: ThemeColorMuted,\n // oxlint-disable-next-line no-deprecated\n): ThemeColorButton {\n return {\n default: createButtonTones(opts, base, dark, solid, muted, 'default'),\n ghost: createButtonTones(opts, base, dark, solid, muted, 'ghost'),\n bleed: createButtonTones(opts, base, dark, solid, muted, 'bleed'),\n }\n}\n","import {ThemeColorName} from '../../../../system/v0/color/_system'\nimport {ThemeColorBase} from '../../../../system/v0/color/base'\nimport {ThemeColorCard} from '../../../../system/v0/color/card'\nimport {ThemeColorMuted} from '../../../../system/v0/color/muted'\nimport {ThemeColorSolid} from '../../../../system/v0/color/solid'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createCardStates(\n // oxlint-disable-next-line no-deprecated\n opts: ThemeColorBuilderOpts,\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase,\n dark: boolean,\n // oxlint-disable-next-line no-deprecated\n name: ThemeColorName,\n // oxlint-disable-next-line no-deprecated\n solid: ThemeColorSolid,\n // oxlint-disable-next-line no-deprecated\n muted: ThemeColorMuted,\n // oxlint-disable-next-line no-deprecated\n): ThemeColorCard {\n return {\n enabled: opts.card({\n base,\n dark,\n name,\n state: 'enabled',\n solid,\n muted,\n }),\n disabled: opts.card({\n base,\n dark,\n name,\n state: 'disabled',\n solid,\n muted,\n }),\n hovered: opts.card({\n base,\n dark,\n name,\n state: 'hovered',\n solid,\n muted,\n }),\n pressed: opts.card({\n base,\n dark,\n name,\n state: 'pressed',\n solid,\n muted,\n }),\n selected: opts.card({\n base,\n dark,\n name,\n state: 'selected',\n solid,\n muted,\n }),\n }\n}\n","import {ThemeColorBuilderOpts} from './factory'\n\nconst black = 'hsl(0, 0%, 0%)'\nconst white = 'hsl(0, 0%, 100%)'\n\nconst colors = {\n default: {\n lightest: 'hsl(0, 0%, 95%)',\n lighter: 'hsl(0, 0%, 70%)',\n light: 'hsl(0, 0%, 65%)',\n base: 'hsl(0, 0%, 50%)',\n dark: 'hsl(0, 0%, 35%)',\n darker: 'hsl(0, 0%, 20%)',\n darkest: 'hsl(0, 0%, 5%)',\n },\n transparent: {\n lightest: 'hsl(240, 100%, 95%)',\n lighter: 'hsl(240, 100%, 70%)',\n light: 'hsl(240, 100%, 65%)',\n base: 'hsl(240, 100%, 50%)',\n dark: 'hsl(240, 100%, 35%)',\n darker: 'hsl(240, 100%, 20%)',\n darkest: 'hsl(240, 100%, 5%)',\n },\n primary: {\n lightest: 'hsl(240, 100%, 95%)',\n lighter: 'hsl(240, 100%, 70%)',\n light: 'hsl(240, 100%, 65%)',\n base: 'hsl(240, 100%, 50%)',\n dark: 'hsl(240, 100%, 35%)',\n darker: 'hsl(240, 100%, 20%)',\n darkest: 'hsl(240, 100%, 5%)',\n },\n positive: {\n lightest: 'hsl(120, 100%, 95%)',\n lighter: 'hsl(120, 100%, 70%)',\n light: 'hsl(120, 100%, 65%)',\n base: 'hsl(120, 100%, 50%)',\n dark: 'hsl(120, 100%, 35%)',\n darker: 'hsl(120, 100%, 20%)',\n darkest: 'hsl(120, 100%, 5%)',\n },\n caution: {\n lightest: 'hsl(60, 100%, 95%)',\n lighter: 'hsl(60, 100%, 70%)',\n light: 'hsl(60, 100%, 65%)',\n base: 'hsl(60, 100%, 50%)',\n dark: 'hsl(60, 100%, 35%)',\n darker: 'hsl(60, 100%, 20%)',\n darkest: 'hsl(60, 100%, 5%)',\n },\n critical: {\n lightest: 'hsl(0, 100%, 95%)',\n lighter: 'hsl(0, 100%, 70%)',\n light: 'hsl(0, 100%, 65%)',\n base: 'hsl(0, 100%, 50%)',\n dark: 'hsl(0, 100%, 35%)',\n darker: 'hsl(0, 100%, 20%)',\n darkest: 'hsl(0, 100%, 5%)',\n },\n}\n\nconst spots = {\n gray: 'hsl(0, 0%, 50%)',\n red: 'hsl(0, 100%, 50%)',\n orange: 'hsl(30, 100%, 50%)',\n yellow: 'hsl(60, 100%, 50%)',\n green: 'hsl(120, 100%, 50%)',\n cyan: 'hsl(180, 100%, 50%)',\n blue: 'hsl(240, 100%, 50%)',\n purple: 'hsl(270, 100%, 50%)',\n magenta: 'hsl(300, 100%, 50%)',\n}\n\nconst tones = {\n transparent: {\n bg: [colors.transparent.darkest, colors.transparent.lightest],\n fg: [colors.transparent.lightest, colors.transparent.darkest],\n border: [colors.transparent.darker, colors.transparent.lighter],\n focusRing: [colors.transparent.base, colors.transparent.base],\n },\n primary: {\n bg: [colors.primary.darkest, colors.primary.lightest],\n fg: [colors.primary.lightest, colors.primary.darkest],\n border: [colors.primary.darker, colors.primary.lighter],\n focusRing: [colors.primary.base, colors.primary.base],\n },\n positive: {\n bg: [colors.positive.darkest, colors.positive.lightest],\n fg: [colors.positive.lightest, colors.positive.darkest],\n border: [colors.positive.darker, colors.positive.lighter],\n focusRing: [colors.positive.base, colors.positive.base],\n },\n caution: {\n bg: [colors.caution.darkest, colors.caution.lightest],\n fg: [colors.caution.lightest, colors.caution.darkest],\n border: [colors.caution.darker, colors.caution.lighter],\n focusRing: [colors.caution.base, colors.caution.base],\n },\n critical: {\n bg: [colors.critical.darkest, colors.critical.lightest],\n fg: [colors.critical.lightest, colors.critical.darkest],\n border: [colors.critical.darker, colors.critical.lighter],\n focusRing: [colors.critical.base, colors.critical.base],\n },\n}\n\n// oxlint-disable-next-line no-deprecated\nexport const defaultOpts: ThemeColorBuilderOpts = {\n base: ({dark, name}) => {\n if (name === 'default') {\n return {\n bg: dark ? black : white,\n fg: dark ? white : black,\n border: dark ? colors.default.darkest : colors.default.lightest,\n focusRing: colors.primary.base,\n shadow: {\n outline: black,\n umbra: black,\n penumbra: black,\n ambient: black,\n },\n skeleton: {\n from: dark ? white : black,\n to: dark ? white : black,\n },\n }\n }\n\n // Variants:\n // - primary\n // - positive\n // - caution\n // - critical\n return {\n bg: tones[name].bg[dark ? 0 : 1],\n fg: tones[name].fg[dark ? 0 : 1],\n border: tones[name].border[dark ? 0 : 1],\n focusRing: tones[name].focusRing[dark ? 0 : 1],\n shadow: {\n outline: black,\n umbra: black,\n penumbra: black,\n ambient: black,\n },\n skeleton: {\n from: dark ? white : black,\n to: dark ? white : black,\n },\n }\n },\n\n solid: ({base, dark, state, tone}) => {\n const color = colors[tone]\n\n if (state === 'hovered') {\n return {\n bg: dark ? color.light : color.dark,\n bg2: dark ? color.light : color.dark,\n border: dark ? color.lighter : color.darker,\n fg: dark ? color.darkest : color.lightest,\n icon: dark ? color.darkest : color.lightest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n }\n\n return {\n bg: color.base,\n bg2: color.base,\n border: dark ? color.light : color.dark,\n fg: dark ? color.darkest : color.lightest,\n icon: dark ? color.darkest : color.lightest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n muted: ({base, dark, state, tone}) => {\n const color = colors[tone]\n\n if (state === 'hovered') {\n return {\n bg: dark ? color.darker : color.lighter,\n bg2: dark ? color.darker : color.lighter,\n border: dark ? color.lighter : color.darker,\n fg: dark ? color.lightest : color.darkest,\n icon: dark ? color.lightest : color.darkest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n }\n\n return {\n bg: dark ? color.darkest : color.lightest,\n bg2: dark ? color.darkest : color.lightest,\n border: dark ? color.darker : color.lighter,\n fg: dark ? color.lighter : color.darker,\n icon: dark ? color.lighter : color.darker,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n button: ({base, mode, muted, solid}) => {\n if (mode === 'bleed') {\n return {\n ...muted,\n enabled: {\n bg: 'transparent',\n bg2: 'transparent',\n fg: muted.enabled.fg,\n icon: muted.enabled.fg,\n border: 'transparent',\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n },\n hovered: {\n bg: muted.enabled.bg,\n bg2: muted.enabled.bg,\n fg: muted.hovered.fg,\n icon: muted.hovered.fg,\n border: 'transparent',\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n },\n }\n }\n\n if (mode === 'ghost')\n return {\n ...solid,\n enabled: muted.enabled,\n }\n\n return solid\n },\n\n card: ({base}) => {\n return {\n bg: black,\n bg2: black,\n fg: black,\n icon: black,\n border: black,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n input: () => {\n return {\n bg: black,\n bg2: black,\n fg: black,\n border: black,\n placeholder: black,\n }\n },\n\n selectable: ({muted, state, tone}) => {\n return muted[tone][state]\n },\n\n spot: ({key}) => {\n return spots[key]\n },\n\n syntax: () => ({\n atrule: black,\n attrName: black,\n attrValue: black,\n attribute: black,\n boolean: black,\n builtin: black,\n cdata: black,\n char: black,\n class: black,\n className: black,\n comment: black,\n constant: black,\n deleted: black,\n doctype: black,\n entity: black,\n function: black,\n hexcode: black,\n id: black,\n important: black,\n inserted: black,\n keyword: black,\n number: black,\n operator: black,\n prolog: black,\n property: black,\n pseudoClass: black,\n pseudoElement: black,\n punctuation: black,\n regex: black,\n selector: black,\n string: black,\n symbol: black,\n tag: black,\n unit: black,\n url: black,\n variable: black,\n }),\n}\n","import {ThemeColorBase} from '../../../../system/v0/color/base'\nimport {ThemeColorInput} from '../../../../system/v0/color/input'\nimport {ThemeColorMuted} from '../../../../system/v0/color/muted'\nimport {ThemeColorSolid} from '../../../../system/v0/color/solid'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createInputModes(\n // oxlint-disable-next-line no-deprecated\n opts: ThemeColorBuilderOpts,\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase,\n dark: boolean,\n // oxlint-disable-next-line no-deprecated\n solid: ThemeColorSolid,\n // oxlint-disable-next-line no-deprecated\n muted: ThemeColorMuted,\n // oxlint-disable-next-line no-deprecated\n): ThemeColorInput {\n return {\n default: {\n enabled: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'enabled',\n solid: solid.default,\n muted: muted.default,\n }),\n disabled: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'disabled',\n solid: solid.default,\n muted: muted.default,\n }),\n hovered: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'hovered',\n solid: solid.default,\n muted: muted.default,\n }),\n readOnly: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'readOnly',\n solid: solid.default,\n muted: muted.default,\n }),\n },\n invalid: {\n enabled: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'enabled',\n solid: solid.default,\n muted: muted.default,\n }),\n disabled: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'disabled',\n solid: solid.default,\n muted: muted.default,\n }),\n hovered: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'hovered',\n solid: solid.default,\n muted: muted.default,\n }),\n readOnly: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'readOnly',\n solid: solid.default,\n muted: muted.default,\n }),\n },\n }\n}\n","import {ThemeColorName} from '../../../../system/v0/color/_system'\nimport {ThemeColorBase} from '../../../../system/v0/color/base'\nimport {ThemeColorMuted} from '../../../../system/v0/color/muted'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createMutedTones(\n // oxlint-disable-next-line no-deprecated\n opts: ThemeColorBuilderOpts,\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase,\n dark: boolean,\n // oxlint-disable-next-line no-deprecated\n name: ThemeColorName,\n // oxlint-disable-next-line no-deprecated\n): ThemeColorMuted {\n return {\n default: {\n enabled: opts.muted({base, dark, tone: 'default', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'default', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'default', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'default', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'default', name, state: 'selected'}),\n },\n transparent: {\n enabled: opts.muted({base, dark, tone: 'transparent', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'transparent', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'transparent', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'transparent', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'transparent', name, state: 'selected'}),\n },\n primary: {\n enabled: opts.muted({base, dark, tone: 'primary', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'primary', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'primary', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'primary', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'primary', name, state: 'selected'}),\n },\n positive: {\n enabled: opts.muted({base, dark, tone: 'positive', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'positive', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'positive', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'positive', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'positive', name, state: 'selected'}),\n },\n caution: {\n enabled: opts.muted({base, dark, tone: 'caution', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'caution', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'caution', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'caution', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'caution', name, state: 'selected'}),\n },\n critical: {\n enabled: opts.muted({base, dark, tone: 'critical', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'critical', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'critical', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'critical', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'critical', name, state: 'selected'}),\n },\n }\n}\n","import {ThemeColorBase} from '../../../../system/v0/color/base'\nimport {ThemeColorSpot} from '../../../../system/v0/color/spot'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSpot(\n // oxlint-disable-next-line no-deprecated\n opts: ThemeColorBuilderOpts,\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase,\n dark: boolean,\n // oxlint-disable-next-line no-deprecated\n): ThemeColorSpot {\n return {\n gray: opts.spot({base, dark, key: 'gray'}),\n blue: opts.spot({base, dark, key: 'blue'}),\n purple: opts.spot({base, dark, key: 'purple'}),\n magenta: opts.spot({base, dark, key: 'magenta'}),\n red: opts.spot({base, dark, key: 'red'}),\n orange: opts.spot({base, dark, key: 'orange'}),\n yellow: opts.spot({base, dark, key: 'yellow'}),\n green: opts.spot({base, dark, key: 'green'}),\n cyan: opts.spot({base, dark, key: 'cyan'}),\n }\n}\n","import {ThemeColorButtonModeKey} from '../../../system/color/_system'\nimport {ThemeColorSyntax} from '../../../system/color/syntax'\nimport {ThemeColorGenericState} from '../../../system/v0/color/_generic'\nimport {ThemeColorName, ThemeColorToneKey} from '../../../system/v0/color/_system'\nimport {ThemeColorBase} from '../../../system/v0/color/base'\nimport {ThemeColorButtonStates} from '../../../system/v0/color/button'\nimport {ThemeColor, ThemeColorScheme, ThemeColorSchemes} from '../../../system/v0/color/color'\nimport {ThemeColorInputState} from '../../../system/v0/color/input'\nimport {ThemeColorMuted, ThemeColorMutedTone} from '../../../system/v0/color/muted'\nimport {ThemeColorSolid, ThemeColorSolidTone} from '../../../system/v0/color/solid'\nimport {ThemeColorSpotKey} from '../../../system/v0/color/spot'\nimport {createSelectableTones} from './_selectable/createSelectableTones'\nimport {createSolidTones} from './_solid/createSolidTones'\nimport {createButtonModes} from './button/createButtonModes'\nimport {createCardStates} from './card/createCardStates'\nimport {defaultOpts} from './defaults'\nimport {createInputModes} from './input/createInputModes'\nimport {createMutedTones} from './muted/createMuted'\nimport {createSpot} from './spot/createSpot'\n\n/**\n * @public\n * @deprecated Use `buildColorTheme` instead.\n */\nexport interface ThemeColorBuilderOpts {\n // oxlint-disable-next-line no-deprecated\n base: (opts: {dark: boolean; name: ThemeColorName}) => ThemeColorBase\n solid: (opts: {\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase\n dark: boolean\n // oxlint-disable-next-line no-deprecated\n tone: ThemeColorName\n // oxlint-disable-next-line no-deprecated\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n // oxlint-disable-next-line no-deprecated\n }) => ThemeColorGenericState\n muted: (opts: {\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase\n dark: boolean\n // oxlint-disable-next-line no-deprecated\n tone: ThemeColorToneKey\n // oxlint-disable-next-line no-deprecated\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n // oxlint-disable-next-line no-deprecated\n }) => ThemeColorGenericState\n card: (opts: {\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase\n dark: boolean\n // oxlint-disable-next-line no-deprecated\n muted: ThemeColorMuted\n // oxlint-disable-next-line no-deprecated\n name: ThemeColorName\n // oxlint-disable-next-line no-deprecated\n solid: ThemeColorSolid\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n // oxlint-disable-next-line no-deprecated\n }) => ThemeColorGenericState\n button: (opts: {\n dark: boolean\n mode: ThemeColorButtonModeKey\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase\n // oxlint-disable-next-line no-deprecated\n solid: ThemeColorSolidTone\n // oxlint-disable-next-line no-deprecated\n muted: ThemeColorMutedTone\n // oxlint-disable-next-line no-deprecated\n }) => ThemeColorButtonStates\n input: (opts: {\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase\n // oxlint-disable-next-line no-deprecated\n solid: ThemeColorSolidTone\n // oxlint-disable-next-line no-deprecated\n muted: ThemeColorMutedTone\n dark: boolean\n mode: 'default' | 'invalid'\n state: 'enabled' | 'disabled' | 'hovered' | 'readOnly'\n // oxlint-disable-next-line no-deprecated\n }) => ThemeColorInputState\n selectable: (opts: {\n dark: boolean\n // oxlint-disable-next-line no-deprecated\n base: ThemeColorBase\n // oxlint-disable-next-line no-deprecated\n solid: ThemeColorSolid\n // oxlint-disable-next-line no-deprecated\n muted: ThemeColorMuted\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical'\n // oxlint-disable-next-line no-deprecated\n }) => ThemeColorGenericState\n // oxlint-disable-next-line no-deprecated\n syntax: (opts: {base: ThemeColorBase; dark: boolean}) => ThemeColorSyntax\n // oxlint-disable-next-line no-deprecated\n spot: (opts: {base: ThemeColorBase; dark: boolean; key: ThemeColorSpotKey}) => string\n}\n\n/**\n * @public\n * @deprecated Use `ThemeConfig` instead.\n */\n// oxlint-disable-next-line no-deprecated\nexport type PartialThemeColorBuilderOpts = Partial<ThemeColorBuilderOpts>\n\n/**\n * @public\n * @deprecated Use `buildColorTheme` instead.\n */\nexport function createColorTheme(\n // oxlint-disable-next-line no-deprecated\n partialOpts: PartialThemeColorBuilderOpts = {},\n // oxlint-disable-next-line no-deprecated\n): ThemeColorSchemes {\n // oxlint-disable-next-line no-deprecated\n const builders: ThemeColorBuilderOpts = {...defaultOpts, ...partialOpts}\n\n return {\n light: _createColorScheme(builders, false),\n dark: _createColorScheme(builders, true),\n }\n}\n\n/**\n * @internal\n */\n// oxlint-disable-next-line no-deprecated\nfunction _createColorScheme(opts: ThemeColorBuilderOpts, dark: boolean): ThemeColorScheme {\n return {\n default: _createColor(opts, dark, 'default'),\n transparent: _createColor(opts, dark, 'transparent'),\n primary: _createColor(opts, dark, 'primary'),\n positive: _createColor(opts, dark, 'positive'),\n caution: _createColor(opts, dark, 'caution'),\n critical: _createColor(opts, dark, 'critical'),\n }\n}\n\n/**\n * @internal\n */\nfunction _createColor(\n // oxlint-disable-next-line no-deprecated\n opts: ThemeColorBuilderOpts,\n dark: boolean,\n // oxlint-disable-next-line no-deprecated\n name: ThemeColorName,\n // oxlint-disable-next-line no-deprecated\n): ThemeColor {\n const base = opts.base({dark, name})\n const solid = createSolidTones(opts, base, dark, name)\n const muted = createMutedTones(opts, base, dark, name)\n\n return {\n base,\n button: createButtonModes(opts, base, dark, solid, muted),\n card: createCardStates(opts, base, dark, name, solid, muted),\n dark,\n input: createInputModes(opts, base, dark, solid, muted),\n selectable: createSelectableTones(opts, base, dark, solid, muted),\n spot: createSpot(opts, base, dark),\n syntax: opts.syntax({base, dark}),\n solid,\n muted,\n }\n}\n"],"mappings":"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"}