@sanity/ui 3.5.1 → 3.5.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"getScopedTheme.js","names":["RootTheme_v2","BORDER_WIDTH","OUTLINE_WIDTH","defaultThemeConfig","Omit","_version","avatar","sizes","distance","size","focusRing","offset","width","button","textWeight","border","card","shadow","outline","container","media","layer","dialog","zOffset","popover","tooltip","radius","umbra","penumbra","ambient","space","input","checkbox","radio","markSize","switch","height","padding","transitionDurationMs","transitionTimingFunction","select","text","style","root","transition","defineLazyProperty","T","obj","key","K","factory","Object","defineProperty","get","value","enumerable","writable","configurable","defineLazyProperty","ThemeColorCard_v2","ThemeColorInputMode_v2","ThemeColorInputState_v2","RootTheme","RootTheme_v2","ThemeColor","ThemeColorScheme","ThemeColorInputState","ThemeColorInputStates","cache","WeakMap","V0_TONES","const","lazyV0Scheme","schemeKey","color","scheme","tone","themeColor_v2_v0","v2_v0","v2","cachedTheme","get","avatar","button","container","font","fonts","input","media","radius","shadow","shadows","space","style","styles","v0Color","theme","_version","focusRing","text","set","color_v2","base","bg","fg","border","card","selectable","default","dark","_dark","inputStatesThemeColor_v2_v0","invalid","muted","ghost","transparent","solid","spot","gray","blue","purple","magenta","red","orange","yellow","green","cyan","syntax","t","enabled","inputStateThemeColor_v2_v0","disabled","readOnly","hovered","bg2","placeholder","COLOR_HUES","THEME_COLOR_SCHEMES","const","THEME_COLOR_BLEND_MODES","THEME_COLOR_CARD_TONES","THEME_COLOR_STATE_TONES","THEME_COLOR_STATES","THEME_COLOR_BUTTON_MODES","THEME_COLOR_INPUT_MODES","THEME_COLOR_INPUT_STATES","THEME_COLOR_AVATAR_COLORS","COLOR_HUES","COLOR_TINTS","ColorHueKey","ColorTintKey","THEME_COLOR_BLEND_MODES","THEME_COLOR_BUTTON_MODES","ThemeColorBlendModeKey","ThemeColorButtonModeKey","isColorBlendModeValue","str","includes","isColorHueKey","isColorTintKey","isColorButtonMode","ColorHueKey","ColorTintKey","THEME_COLOR_AVATAR_COLORS","THEME_COLOR_CARD_TONES","THEME_COLOR_INPUT_MODES","THEME_COLOR_INPUT_STATES","THEME_COLOR_STATE_TONES","THEME_COLOR_STATES","ThemeColorBlendModeKey","COLOR_CONFIG_STATE_KEYS","const","ColorConfigStateKey","COLOR_CONFIG_CARD_KEYS","ColorConfigCardKey","COLOR_CONFIG_BLEND_KEYS","ColorConfigBlendKey","ColorConfigOpacityValue","ColorConfigValue","ThemeColorTokenValue","ColorBlendModeTokenValue","COLOR_CONFIG_AVATAR_COLORS","ColorConfigAvatarColor","COLOR_CONFIG_CARD_TONES","ColorConfigCardTone","COLOR_CONFIG_STATE_TONES","ColorConfigStateTone","COLOR_CONFIG_STATES","ColorConfigState","COLOR_CONFIG_INPUT_MODES","ColorConfigInputMode","COLOR_CONFIG_INPUT_STATES","ColorConfigInputState","COLOR_CONFIG_BLEND_KEYS","COLOR_CONFIG_CARD_KEYS","COLOR_CONFIG_CARD_TONES","COLOR_CONFIG_STATE_KEYS","COLOR_CONFIG_STATE_TONES","ColorConfigBlendKey","ColorConfigCardKey","ColorConfigCardTone","ColorConfigOpacityValue","ColorConfigStateKey","ColorConfigStateTone","ColorConfigValue","parseTokenValue","isColorConfigBaseTone","str","includes","isColorConfigBaseKey","isColorConfigStateKey","isColorConfigStateTone","isColorConfigBlendKey","isColorTokenValue","type","isColorValue","isColorOpacityValue","test","isColorBlendModeValue","isColorHueKey","isColorTintKey","isColorOpacityValue","isColorValue","TokenValueNode","isColorMixPercentValue","str","test","parseTokenValue","segments","split","nextSegment","shift","segment0","segment0mix","tint","segment1","mix","Number","slice","type","opacity","key","hue","segment1mix","segment2","value","undefined","TokenColorValueNode","compileColorTokenValue","node","key","hue","tint","mix","undefined","opacity","ThemeColorTokenValue","parseTokenValue","compileColorTokenValue","ColorTokenContext","DEFAULT_COLOR_TOKEN_VALUE","resolveColorTokenValue","context","value","hue","scheme","node","type","Error","isRecord","value","Record","Boolean","Array","isArray","isRecord","merge","Record","records","T","_records","filter","Boolean","length","reduce","_merge","acc","source","key","Object","keys","prevValue","nextValue","COLOR_HUES","ColorHueKey","ColorConfigCardTone","ColorConfigInputMode","ColorConfigInputState","ColorConfigStateTone","ThemeColorAvatarTokens","ThemeColorBadgeTokens","ThemeColorBaseTokens","ThemeColorButtonTokens","ThemeColorInputStateTokens","ThemeColorInputTokens","ThemeColorStatesTokens","ThemeColorStateTokens","ThemeColorTokens","defaultColorTokens","THEME_COLOR_BUTTON_MODES","THEME_COLOR_CARD_TONES","THEME_COLOR_INPUT_MODES","THEME_COLOR_INPUT_STATES","THEME_COLOR_STATE_TONES","THEME_COLOR_STATES","ThemeColorButtonModeKey","ThemeColorCardToneKey","ThemeColorStateKey","ThemeColorStateToneKey","merge","resolveColorTokens","inputTokens","tokens","base","resolveBaseColorTokens","button","resolveButtonColorTokens","input","resolveInputColorTokens","selectable","resolveSelectableColorTokens","syntax","sparseTokens","Partial","Record","tone","resolveBaseColorTones","spec","hue","_hue","avatar","reduce","acc","badge","mode","resolveButtonToneColorTokens","resolveButtonModeColorTokens","state","resolveButtonStateColorTokens","resolveInputModeColorTokens","states","resolveInputStateColorTokens","resolveSelectableToneColorTokens","resolveSelectableStateColorTokens","ThemeColorBadgeTokens","ThemeColorStateTokens","ThemeConfig","THEME_COLOR_BUTTON_MODES","THEME_COLOR_CARD_TONES","THEME_COLOR_STATE_TONES","THEME_COLOR_STATES","ThemeColorAvatarColorKey","ThemeColorButtonModeKey","ThemeColorCardToneKey","ThemeColorSchemeKey","ThemeColorStateKey","ThemeColorStateToneKey","ThemeColorAvatar_v2","ThemeColorAvatarHue_v2","ThemeColorBadge_v2","ThemeColorButton_v2","ThemeColorButtonMode_v2","ThemeColorButtonTone_v2","ThemeColorCard_v2","ThemeColorScheme_v2","ThemeColorSchemes_v2","ThemeColorInput_v2","ThemeColorInputMode_v2","ThemeColorInputState_v2","ThemeColorShadow","ThemeColorState_v2","ThemeColorSyntax","resolveColorTokenValue","_color","ColorTokenContext","defineLazyProperty","resolveColorTokens","buildColorTheme","config","resolvedConfig","color","schemes","buildColorScheme","scheme","options","colorScheme","tone","buildCardColorTheme","tokens","base","hue","_hue","context","blendMode","_blend","_dark","accent","fg","avatar","buildAvatarColorTheme","backdrop","badge","buildBadgeColorTheme","bg","border","button","buildButtonColorTheme","code","focusRing","icon","input","buildInputColorTheme","kbd","link","muted","selectable","buildSelectableColorTheme","shadow","buildShadowColorTheme","skeleton","from","to","syntax","buildSyntaxColorTheme","outline","umbra","penumbra","ambient","stateTokens","gray","_buildAvatarColorTheme","blue","purple","magenta","red","orange","yellow","green","cyan","colorBadge","_buildBadgeColorTheme","parentTokens","dot","cardTone","modes","Partial","mode","buildButtonTonesColorTheme","tones","buildButtonStatesColorTheme","states","state","buildButtonStateColorTheme","cardTokens","default","buildInputStatesColorTheme","invalid","enabled","buildInputStateColorTheme","hovered","readOnly","disabled","placeholder","buildSelectableStatesColorTheme","buildSelectableStateColorTheme","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","className","comment","constant","deleted","doctype","entity","function","hexcode","id","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","symbol","tag","unit","url","variable","RGB","RGBA","mixChannel","b","s","weight","diff","delta","mix","r","g","lerp","x","y","a","invlerp","clamp","min","max","Math","range","x1","y1","x2","y2","round","value","clamp","round","HSL","RGB","RGBA","hexToRgb","hex","length","hexR","slice","hexG","hexB","r","parseInt","g","b","rgbaToRGBA","rgba","values","replace","split","a","parseFloat","rgbToHex","color","Math","toString","rgbToHsl","cmin","min","cmax","max","delta","h","s","l","abs","toFixed","hslToRgb","hsl","c","x","m","hexToRgb","hslToRgb","rgbaToRGBA","HSL","RGB","RGBA","HEX_CHARS","HSL_RE","isHexChars","str","c","indexOf","isHex","length","slice","parseHsl","res","exec","Error","h","parseInt","s","parseFloat","l","parseColor","color","r","g","b","startsWith","parseColor","rgba","color","a","rgb","r","g","b","RGB","RGBA","multiplyChannel","b","s","multiply","r","g","RGB","RGBA","screenChannel","b","s","screen","r","g","multiply","screen","rgbToHex","parseColor","RGB","clamp","range","RGB_RANGE","mixThemeColor","value","options","bg","blendMode","black","white","color","paletteRange","r","g","b","convertedBgColor","convertedColor","resultColor","v","ColorTint","ColorPaletteValue","parseTokenValue","ThemeColorPalette","ThemeColorBlendModeKey","mix","hexToRgb","rgbToHex","rgba","mixThemeColor","RenderColorValueOptions","bg","blendMode","colorPalette","renderColorValue","str","options","Error","node","type","hex","key","renderColorHex","black","white","hue","tint","hexBeforeMix","mixOptions","undefined","from","to","err","console","warn","opacity","color","COLOR_HUES","ThemeColorPalette","ThemeConfig","defaultColorPalette","THEME_COLOR_CARD_TONES","THEME_COLOR_STATE_TONES","ThemeColorBlendModeKey","ThemeColorAvatar_v2","ThemeColorBadge_v2","ThemeColorBadgeTone_v2","ThemeColorButton_v2","ThemeColorButtonMode_v2","ThemeColorButtonTone_v2","ThemeColorCard_v2","ThemeColorScheme_v2","ThemeColorSchemes_v2","ThemeColorInput_v2","ThemeColorInputMode_v2","ThemeColorInputState_v2","ThemeColorKBD","ThemeColorSelectable_v2","ThemeColorSelectableTone_v2","ThemeColorShadow","ThemeColorState_v2","ThemeColorSyntax","defineLazyProperty","renderColorValue","RenderColorValueOptions","renderThemeColorSchemes","value","config","colorPalette","palette","schemes","renderThemeColorScheme","light","dark","renderedDefaultTone","renderThemeColor","default","bg","Error","scheme","tone","opts","options","blendMode","_blend","baseBg","colorOptions","button","renderThemeColorButton","selectable","renderThemeColorSelectable","shadow","outline","umbra","undefined","black","penumbra","ambient","_dark","accent","fg","avatar","renderThemeColorAvatar","backdrop","badge","renderThemeColorBadge","border","code","focusRing","icon","input","renderThemeColorInput","kbd","renderThemeColorKBD","link","muted","skeleton","from","to","syntax","renderSyntaxColorTheme","rootOptions","colorAvatar","hue","renderThemeColorAvatarColor","rootBlendMode","colorBadge","renderThemeColorBadgeColor","dot","renderThemeColorButtonTones","ghost","bleed","colorButtonMode","renderThemeColorButtonStates","enabled","renderThemeColorState","hovered","pressed","selected","disabled","renderInputStatesColorTheme","invalid","renderInputStateColorTheme","readOnly","placeholder","colorSelectable","renderThemeColorSelectableStates","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","className","comment","constant","deleted","doctype","entity","function","hexcode","id","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","symbol","tag","unit","url","variable","ThemeConfig","defaultThemeConfig","defaultThemeFonts","RootTheme","RootTheme_v2","v2_v0","buildColorTheme","renderThemeColorSchemes","buildTheme","config","colorTheme","v2","_version","avatar","button","card","color","container","font","input","layer","media","radius","shadow","space","style","ThemeColorBase","ThemeColorMuted","ThemeColorSelectable","ThemeColorSelectableStates","ThemeColorSolid","ThemeColorBuilderOpts","createSelectableTones","opts","base","dark","solid","muted","default","_createSelectableStates","primary","positive","caution","critical","tone","enabled","selectable","state","hovered","pressed","selected","disabled","ThemeColorName","ThemeColorBase","ThemeColorSolid","ThemeColorBuilderOpts","createSolidTones","opts","base","dark","name","default","enabled","solid","tone","state","disabled","hovered","pressed","selected","transparent","primary","positive","caution","critical","ThemeColorButtonModeKey","ThemeColorBase","ThemeColorButtonTones","ThemeColorMuted","ThemeColorSolid","ThemeColorBuilderOpts","createButtonTones","opts","base","dark","solid","muted","mode","default","button","primary","positive","caution","critical","ThemeColorBase","ThemeColorButton","ThemeColorMuted","ThemeColorSolid","ThemeColorBuilderOpts","createButtonTones","createButtonModes","opts","base","dark","solid","muted","default","ghost","bleed","ThemeColorName","ThemeColorBase","ThemeColorCard","ThemeColorMuted","ThemeColorSolid","ThemeColorBuilderOpts","createCardStates","opts","base","dark","name","solid","muted","enabled","card","state","disabled","hovered","pressed","selected","ThemeColorBase","ThemeColorInput","ThemeColorMuted","ThemeColorSolid","ThemeColorBuilderOpts","createInputModes","opts","base","dark","solid","muted","default","enabled","input","mode","state","disabled","hovered","readOnly","invalid","ThemeColorName","ThemeColorBase","ThemeColorMuted","ThemeColorBuilderOpts","createMutedTones","opts","base","dark","name","default","enabled","muted","tone","state","disabled","hovered","pressed","selected","transparent","primary","positive","caution","critical","ThemeColorBase","ThemeColorSpot","ThemeColorBuilderOpts","createSpot","opts","base","dark","gray","spot","key","blue","purple","magenta","red","orange","yellow","green","cyan","ThemeColorButtonModeKey","ThemeColorSyntax","ThemeColorGenericState","ThemeColorName","ThemeColorToneKey","ThemeColorBase","ThemeColorButtonStates","ThemeColor","ThemeColorScheme","ThemeColorSchemes","ThemeColorInputState","ThemeColorMuted","ThemeColorMutedTone","ThemeColorSolid","ThemeColorSolidTone","ThemeColorSpotKey","createSelectableTones","createSolidTones","createButtonModes","createCardStates","defaultOpts","createInputModes","createMutedTones","createSpot","ThemeColorBuilderOpts","base","opts","dark","name","solid","tone","state","muted","card","button","mode","input","selectable","syntax","spot","key","PartialThemeColorBuilderOpts","Partial","createColorTheme","partialOpts","builders","light","_createColorScheme","default","_createColor","transparent","primary","positive","caution","critical","ThemeColorCard_v2","ThemeColorInputMode_v2","ThemeColorInputState_v2","ThemeColorSelectable_v2","ThemeColorState_v2","ThemeColorGenericState","ThemeColor","ThemeColorInputState","ThemeColorInputStates","ThemeColorMuted","cache","WeakMap","themeColor_v0_v2","color_v0","cached_v2","get","base","stateThemeColor_v0_v2","card","enabled","color_v2","_blend","dark","_dark","accent","avatar","backdrop","shadow","ambient","badge","bg","border","button","default","stateTonesThemeColor_v0_v2","ghost","bleed","code","fg","focusRing","icon","muted","input","inputStatesThemeColor_v0_v2","invalid","kbd","link","selectable","bg2","skeleton","from","to","syntax","set","v0","t","Omit","hovered","pressed","selected","disabled","neutral","primary","suggest","positive","caution","critical","state","gray","spot","blue","purple","magenta","red","orange","yellow","green","cyan","dot","transparent","states","inputStateThemeColor_v0_v2","readOnly","placeholder","defaultThemeConfig","Theme","Theme_v2","themeColor_v0_v2","cache","WeakMap","getTheme_v2","theme","sanity","v2","_resolved","cached_v2","get","_version","avatar","button","card","color","container","font","fonts","input","checkbox","radio","switch","layer","media","radius","shadow","shadows","space","style","styles","set","ThemeColorCard_v2","themeColor_v0_v2_9","color","badge","colors","neutral","default","suggest","primary","button","bleed","ghost","selectable","defaultThemeConfig","RootTheme","RootTheme_v2","themeColor_v0_v2","cache","WeakMap","v0_v2","v0","v2","cached_v2","get","avatar","button","color","container","focusRing","_unused_focusRing","fonts","font","input","layer","media","radius","shadows","shadow","space","styles","style","_version","card","light","transparent","default","neutral","primary","suggest","positive","caution","critical","dark","checkbox","radio","switch","set","defineLazyProperty","defaultThemeConfig","ThemeColorCardToneKey","ThemeColorSchemeKey","RootTheme","RootTheme_v2","Theme","ThemeColor","is_v2","themeColor_v0_v2_9","v0_v2","v2_v0","cache","Map","WeakMap","getScopedTheme","themeProp","scheme","tone","cachedTheme","_getCachedTheme","v0","v2","layer_v0","layer","colorScheme_v2","color","light","color_v2","default","color_v2_9","layer_v2","_v0Color","v0Rest","sanity","_resolved","colorScheme_v0","Record","theme","_setCachedTheme","rootTheme","schemeCache","get","undefined","toneCache","has","set"],"sources":["../../src/theme/defaults/config.ts","../../src/theme/defaults/fonts.ts","../../src/theme/build/lib/lazy.ts","../../src/theme/versioning/v2_v0.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","../../src/theme/versioning/themeColor_v0_v2.ts","../../src/theme/versioning/getTheme_v2.ts","../../src/theme/versioning/is_v2.ts","../../src/theme/versioning/themeColor_v2_v2_9.ts","../../src/theme/versioning/v0_v2.ts","../../src/theme/getScopedTheme.ts"],"sourcesContent":["import {RootTheme_v2} from '../system/theme'\n\nconst BORDER_WIDTH = 1\nconst OUTLINE_WIDTH = 0.5\n\nexport const defaultThemeConfig: Omit<RootTheme_v2, 'color' | 'font'> = {\n _version: 2,\n avatar: {\n sizes: [\n {distance: -4, size: 19},\n {distance: -4, size: 25},\n {distance: -8, size: 33},\n {distance: -12, size: 49},\n ],\n focusRing: {offset: 1, width: 1},\n },\n button: {\n textWeight: 'medium',\n border: {width: BORDER_WIDTH},\n focusRing: {offset: -1, width: 1},\n },\n card: {\n border: {width: BORDER_WIDTH},\n focusRing: {offset: -1, width: 1},\n shadow: {outline: OUTLINE_WIDTH},\n },\n container: [320, 640, 960, 1280, 1600, 1920],\n media: [360, 600, 900, 1200, 1800, 2400],\n layer: {\n dialog: {zOffset: 600},\n popover: {zOffset: 400},\n tooltip: {zOffset: 200},\n },\n radius: [0, 1, 3, 6, 9, 12, 21],\n shadow: [\n null,\n {umbra: [0, 0, 0, 0], penumbra: [0, 0, 0, 0], ambient: [0, 0, 0, 0]},\n {umbra: [0, 3, 5, -2], penumbra: [0, 6, 10, 0], ambient: [0, 1, 18, 1]},\n {umbra: [0, 7, 8, -4], penumbra: [0, 12, 17, 2], ambient: [0, 5, 22, 4]},\n {umbra: [0, 9, 11, -5], penumbra: [0, 18, 28, 2], ambient: [0, 7, 34, 6]},\n {umbra: [0, 11, 15, -7], penumbra: [0, 24, 38, 3], ambient: [0, 9, 46, 8]},\n ],\n space: [0, 4, 8, 12, 20, 32, 52, 84, 136, 220],\n input: {\n border: {\n width: BORDER_WIDTH,\n },\n checkbox: {\n size: 17,\n focusRing: {offset: -1, width: 1},\n },\n radio: {\n size: 17,\n markSize: 9,\n focusRing: {offset: -1, width: 1},\n },\n switch: {\n width: 25,\n height: 17,\n padding: 5,\n transitionDurationMs: 150,\n transitionTimingFunction: 'ease-out',\n focusRing: {offset: 1, width: 1},\n },\n select: {\n focusRing: {offset: -1, width: 1},\n },\n text: {\n focusRing: {offset: -1, width: 1},\n },\n },\n style: {\n button: {\n root: {\n transition: 'background-color 100ms,border-color 100ms,color 100ms',\n },\n },\n // card: {\n // root: {\n // transition: 'background-color 100ms,border-color 100ms,color 100ms',\n // },\n // },\n },\n}\n","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","/**\n * Defines a lazy, self-replacing property on `obj`.\n *\n * On first access the `factory` is called and the getter is replaced with the\n * computed plain value — subsequent reads have zero overhead.\n *\n * The property is enumerable (visible in `Object.keys` / spread) in both states.\n *\n * @internal\n */\nexport function defineLazyProperty<T extends object, K extends keyof T>(\n obj: T,\n key: K,\n factory: () => T[K],\n): void {\n Object.defineProperty(obj, key, {\n get() {\n const value = factory()\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n writable: false,\n configurable: false,\n })\n return value\n },\n enumerable: true,\n configurable: true,\n })\n}\n","import {defineLazyProperty} from '../build/lib/lazy'\nimport {ThemeColorCard_v2} from '../system/color/color'\nimport {ThemeColorInputMode_v2, ThemeColorInputState_v2} from '../system/color/input'\nimport {RootTheme, RootTheme_v2} from '../system/theme'\nimport {ThemeColor, ThemeColorScheme} from '../system/v0/color/color'\nimport {ThemeColorInputState, ThemeColorInputStates} from '../system/v0/color/input'\n\nconst cache = new WeakMap<RootTheme_v2, RootTheme>()\n\nconst V0_TONES = ['transparent', 'default', 'primary', 'positive', 'caution', 'critical'] as const\n\n// oxlint-disable-next-line no-deprecated\nfunction lazyV0Scheme(schemeKey: 'light' | 'dark', color: RootTheme_v2['color']): ThemeColorScheme {\n // oxlint-disable-next-line no-deprecated, no-unsafe-type-assertion\n const scheme = {} as ThemeColorScheme\n\n for (const tone of V0_TONES) {\n defineLazyProperty(scheme, tone, () => themeColor_v2_v0(color[schemeKey][tone]))\n }\n\n return scheme\n}\n\n/** @internal */\nexport function v2_v0(v2: RootTheme_v2): RootTheme {\n const cachedTheme = cache.get(v2)\n\n if (cachedTheme) return cachedTheme\n\n const {\n avatar,\n button,\n color,\n container,\n font: fonts,\n input,\n media,\n radius,\n shadow: shadows,\n space,\n style: styles,\n } = v2\n\n // Lazy v0 color — two-level lazy structure so we don't force-evaluate\n // the v2 lazy getters until a v0 tone is actually accessed.\n // oxlint-disable-next-line no-unsafe-type-assertion\n const v0Color = {} as RootTheme['color']\n\n defineLazyProperty(v0Color, 'light', () => lazyV0Scheme('light', color))\n defineLazyProperty(v0Color, 'dark', () => lazyV0Scheme('dark', color))\n\n const theme: RootTheme = {\n _version: 0,\n // oxlint-disable-next-line no-deprecated\n avatar,\n // oxlint-disable-next-line no-deprecated\n button,\n // oxlint-disable-next-line no-deprecated\n container,\n // oxlint-disable-next-line no-deprecated\n color: v0Color,\n // oxlint-disable-next-line no-deprecated\n focusRing: input.text.focusRing,\n // oxlint-disable-next-line no-deprecated\n fonts,\n // oxlint-disable-next-line no-deprecated\n input,\n // oxlint-disable-next-line no-deprecated\n media,\n // oxlint-disable-next-line no-deprecated\n radius,\n // oxlint-disable-next-line no-deprecated\n shadows,\n // oxlint-disable-next-line no-deprecated\n space,\n // oxlint-disable-next-line no-deprecated\n styles,\n\n v2,\n }\n\n cache.set(v2, theme)\n\n return theme\n}\n\n// oxlint-disable-next-line no-deprecated\nfunction themeColor_v2_v0(color_v2: ThemeColorCard_v2): ThemeColor {\n return {\n base: {\n bg: color_v2.bg,\n fg: color_v2.fg,\n border: color_v2.border,\n focusRing: color_v2.focusRing,\n shadow: color_v2.shadow,\n },\n button: color_v2.button,\n card: color_v2.selectable.default,\n dark: color_v2._dark,\n input: {\n default: inputStatesThemeColor_v2_v0(color_v2.input.default),\n invalid: inputStatesThemeColor_v2_v0(color_v2.input.invalid),\n },\n muted: {\n ...color_v2.button.ghost,\n transparent: color_v2.button.ghost.default,\n },\n solid: {\n ...color_v2.button.default,\n transparent: color_v2.button.default.default,\n },\n selectable: color_v2.selectable,\n spot: {\n gray: color_v2.avatar.gray.bg,\n blue: color_v2.avatar.blue.bg,\n purple: color_v2.avatar.purple.bg,\n magenta: color_v2.avatar.magenta.bg,\n red: color_v2.avatar.red.bg,\n orange: color_v2.avatar.orange.bg,\n yellow: color_v2.avatar.yellow.bg,\n green: color_v2.avatar.green.bg,\n cyan: color_v2.avatar.cyan.bg,\n },\n syntax: color_v2.syntax,\n }\n}\n\n// oxlint-disable-next-line no-deprecated\nfunction inputStatesThemeColor_v2_v0(t: ThemeColorInputMode_v2): ThemeColorInputStates {\n return {\n enabled: inputStateThemeColor_v2_v0(t.enabled),\n disabled: inputStateThemeColor_v2_v0(t.disabled),\n readOnly: inputStateThemeColor_v2_v0(t.readOnly),\n hovered: inputStateThemeColor_v2_v0(t.hovered),\n }\n}\n\n// oxlint-disable-next-line no-deprecated\nfunction inputStateThemeColor_v2_v0(t: ThemeColorInputState_v2): ThemeColorInputState {\n return {\n bg: t.bg,\n bg2: t.muted.bg,\n border: t.border,\n fg: t.fg,\n placeholder: t.placeholder,\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","import {ThemeColorCard_v2} from '../system/color/color'\nimport {ThemeColorInputMode_v2, ThemeColorInputState_v2} from '../system/color/input'\nimport {ThemeColorSelectable_v2} from '../system/color/selectable'\nimport {ThemeColorState_v2} from '../system/color/state'\nimport {ThemeColorGenericState} from '../system/v0/color/_generic'\nimport {ThemeColor} from '../system/v0/color/color'\nimport {ThemeColorInputState, ThemeColorInputStates} from '../system/v0/color/input'\nimport {ThemeColorMuted} from '../system/v0/color/muted'\n\n// oxlint-disable-next-line no-deprecated\nconst cache = new WeakMap<ThemeColor, ThemeColorCard_v2>()\n\n/** @internal */\n// oxlint-disable-next-line no-deprecated\nexport function themeColor_v0_v2(color_v0: ThemeColor): ThemeColorCard_v2 {\n const cached_v2 = cache.get(color_v0)\n\n if (cached_v2) return cached_v2\n\n const base = stateThemeColor_v0_v2(color_v0, color_v0.card.enabled)\n\n const color_v2: ThemeColorCard_v2 = {\n _blend: color_v0._blend || (color_v0.dark ? 'screen' : 'multiply'),\n _dark: color_v0.dark,\n accent: base.accent,\n avatar: base.avatar,\n backdrop: color_v0.base.shadow.ambient,\n badge: base.badge,\n bg: color_v0.base.bg,\n border: color_v0.base.border,\n button: {\n default: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.default),\n ghost: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.ghost),\n bleed: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.bleed),\n },\n code: base.code,\n fg: color_v0.base.fg,\n focusRing: color_v0.base.focusRing,\n icon: base.muted.fg,\n input: {\n default: inputStatesThemeColor_v0_v2(color_v0.input.default),\n invalid: inputStatesThemeColor_v0_v2(color_v0.input.invalid),\n },\n kbd: base.kbd,\n link: base.link,\n muted: {\n ...base.muted,\n bg: color_v0.selectable?.default.enabled.bg2 || color_v0.base.bg,\n },\n selectable: stateTonesThemeColor_v0_v2(color_v0, color_v0.selectable || color_v0.muted),\n shadow: color_v0.base.shadow,\n skeleton: {\n from: color_v0.skeleton?.from || color_v0.base.border,\n to: color_v0.skeleton?.to || color_v0.base.border,\n },\n syntax: color_v0.syntax,\n }\n\n cache.set(color_v0, color_v2)\n\n return color_v2\n}\n\nfunction stateTonesThemeColor_v0_v2(\n // oxlint-disable-next-line no-deprecated\n v0: ThemeColor,\n // oxlint-disable-next-line no-deprecated\n t: Omit<ThemeColorMuted, 'transparent'>,\n): ThemeColorSelectable_v2 {\n return {\n default: {\n enabled: stateThemeColor_v0_v2(v0, t.default.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.default.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.default.pressed),\n selected: stateThemeColor_v0_v2(v0, t.default.selected),\n disabled: stateThemeColor_v0_v2(v0, t.default.disabled),\n },\n neutral: {\n enabled: stateThemeColor_v0_v2(v0, t.default.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.default.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.default.pressed),\n selected: stateThemeColor_v0_v2(v0, t.default.selected),\n disabled: stateThemeColor_v0_v2(v0, t.default.disabled),\n },\n primary: {\n enabled: stateThemeColor_v0_v2(v0, t.primary.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.primary.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.primary.pressed),\n selected: stateThemeColor_v0_v2(v0, t.primary.selected),\n disabled: stateThemeColor_v0_v2(v0, t.primary.disabled),\n },\n suggest: {\n enabled: stateThemeColor_v0_v2(v0, t.primary.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.primary.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.primary.pressed),\n selected: stateThemeColor_v0_v2(v0, t.primary.selected),\n disabled: stateThemeColor_v0_v2(v0, t.primary.disabled),\n },\n positive: {\n enabled: stateThemeColor_v0_v2(v0, t.positive.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.positive.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.positive.pressed),\n selected: stateThemeColor_v0_v2(v0, t.positive.selected),\n disabled: stateThemeColor_v0_v2(v0, t.positive.disabled),\n },\n caution: {\n enabled: stateThemeColor_v0_v2(v0, t.caution.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.caution.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.caution.pressed),\n selected: stateThemeColor_v0_v2(v0, t.caution.selected),\n disabled: stateThemeColor_v0_v2(v0, t.caution.disabled),\n },\n critical: {\n enabled: stateThemeColor_v0_v2(v0, t.critical.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.critical.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.critical.pressed),\n selected: stateThemeColor_v0_v2(v0, t.critical.selected),\n disabled: stateThemeColor_v0_v2(v0, t.critical.disabled),\n },\n }\n}\n\n// oxlint-disable-next-line no-deprecated\nfunction stateThemeColor_v0_v2(v0: ThemeColor, state: ThemeColorGenericState): ThemeColorState_v2 {\n return {\n ...state,\n avatar: {\n gray: {\n bg: v0.spot.gray,\n fg: v0.base.bg,\n },\n blue: {\n bg: v0.spot.blue,\n fg: v0.base.bg,\n },\n purple: {\n bg: v0.spot.purple,\n fg: v0.base.bg,\n },\n magenta: {\n bg: v0.spot.magenta,\n fg: v0.base.bg,\n },\n red: {\n bg: v0.spot.red,\n fg: v0.base.bg,\n },\n orange: {\n bg: v0.spot.orange,\n fg: v0.base.bg,\n },\n yellow: {\n bg: v0.spot.yellow,\n fg: v0.base.bg,\n },\n green: {\n bg: v0.spot.green,\n fg: v0.base.bg,\n },\n cyan: {\n bg: v0.spot.cyan,\n fg: v0.base.bg,\n },\n },\n badge: {\n default: {\n bg: v0.muted.default.enabled.bg,\n fg: v0.muted.default.enabled.fg,\n dot: v0.muted.default.enabled.muted.fg,\n icon: v0.muted.default.enabled.muted.fg,\n },\n neutral: {\n bg: v0.muted.transparent.enabled.bg,\n fg: v0.muted.transparent.enabled.fg,\n dot: v0.muted.transparent.enabled.muted.fg,\n icon: v0.muted.transparent.enabled.muted.fg,\n },\n primary: {\n bg: v0.muted.primary.enabled.bg,\n fg: v0.muted.primary.enabled.fg,\n dot: v0.muted.primary.enabled.muted.fg,\n icon: v0.muted.primary.enabled.muted.fg,\n },\n suggest: {\n bg: v0.muted.primary.enabled.bg,\n fg: v0.muted.primary.enabled.fg,\n dot: v0.muted.primary.enabled.muted.fg,\n icon: v0.muted.primary.enabled.muted.fg,\n },\n positive: {\n bg: v0.muted.positive.enabled.bg,\n fg: v0.muted.positive.enabled.fg,\n dot: v0.muted.positive.enabled.muted.fg,\n icon: v0.muted.positive.enabled.muted.fg,\n },\n caution: {\n bg: v0.muted.caution.enabled.bg,\n fg: v0.muted.caution.enabled.fg,\n dot: v0.muted.caution.enabled.muted.fg,\n icon: v0.muted.caution.enabled.muted.fg,\n },\n critical: {\n bg: v0.muted.critical.enabled.bg,\n fg: v0.muted.critical.enabled.fg,\n dot: v0.muted.critical.enabled.muted.fg,\n icon: v0.muted.critical.enabled.muted.fg,\n },\n },\n kbd: {\n bg: v0.muted.default.enabled.bg,\n fg: v0.muted.default.enabled.fg,\n border: v0.muted.default.enabled.border,\n },\n muted: {\n ...v0.muted.default.enabled.muted,\n bg: state.bg2 || state.bg,\n },\n skeleton: {\n from: state.skeleton?.from || state.border,\n to: state.skeleton?.to || state.border,\n },\n }\n}\n\n// oxlint-disable-next-line no-deprecated\nfunction inputStatesThemeColor_v0_v2(states: ThemeColorInputStates): ThemeColorInputMode_v2 {\n return {\n enabled: inputStateThemeColor_v0_v2(states.enabled),\n disabled: inputStateThemeColor_v0_v2(states.disabled),\n readOnly: inputStateThemeColor_v0_v2(states.readOnly),\n hovered: inputStateThemeColor_v0_v2(states.hovered),\n }\n}\n\n// oxlint-disable-next-line no-deprecated\nfunction inputStateThemeColor_v0_v2(state: ThemeColorInputState): ThemeColorInputState_v2 {\n return {\n bg: state.bg,\n border: state.border,\n fg: state.fg,\n muted: {\n bg: state.bg2,\n },\n placeholder: state.placeholder,\n }\n}\n","import {defaultThemeConfig} from '../defaults/config'\nimport {Theme, Theme_v2} from '../system/theme'\nimport {themeColor_v0_v2} from './themeColor_v0_v2'\n\nconst cache = new WeakMap<Theme, Theme_v2>()\n\n/** @public */\nexport function getTheme_v2(theme: Theme): Theme_v2 {\n if (theme.sanity.v2?._resolved) return theme.sanity.v2\n\n const cached_v2 = cache.get(theme)\n\n if (cached_v2) return cached_v2\n\n const v2: Theme_v2 = {\n _version: 2,\n _resolved: true,\n avatar: {\n ...defaultThemeConfig.avatar,\n // oxlint-disable-next-line no-deprecated\n ...theme.sanity.avatar,\n },\n button: {\n ...defaultThemeConfig.button,\n // oxlint-disable-next-line no-deprecated\n ...theme.sanity.button,\n },\n card: defaultThemeConfig.card,\n // oxlint-disable-next-line no-deprecated\n color: themeColor_v0_v2(theme.sanity.color),\n // oxlint-disable-next-line no-deprecated\n container: theme.sanity.container,\n // oxlint-disable-next-line no-deprecated\n font: theme.sanity.fonts,\n input: {\n ...defaultThemeConfig.input,\n // oxlint-disable-next-line no-deprecated\n ...theme.sanity.input,\n checkbox: {\n ...defaultThemeConfig.input.checkbox,\n // oxlint-disable-next-line no-deprecated\n ...theme.sanity.input.checkbox,\n },\n radio: {\n ...defaultThemeConfig.input.radio,\n // oxlint-disable-next-line no-deprecated\n ...theme.sanity.input.radio,\n },\n switch: {\n ...defaultThemeConfig.input.switch,\n // oxlint-disable-next-line no-deprecated\n ...theme.sanity.input.switch,\n },\n },\n // oxlint-disable-next-line no-deprecated\n layer: theme.sanity.layer ?? defaultThemeConfig.layer,\n // oxlint-disable-next-line no-deprecated\n media: theme.sanity.media,\n // oxlint-disable-next-line no-deprecated\n radius: theme.sanity.radius,\n // oxlint-disable-next-line no-deprecated\n shadow: theme.sanity.shadows,\n // oxlint-disable-next-line no-deprecated\n space: theme.sanity.space,\n // oxlint-disable-next-line no-deprecated\n style: theme.sanity.styles,\n }\n\n cache.set(theme, v2)\n\n return v2\n}\n","import {RootTheme, RootTheme_v2} from '../system/theme'\n\n/** @internal */\nexport function is_v2(themeProp: RootTheme | RootTheme_v2): themeProp is RootTheme_v2 {\n return themeProp._version === 2\n}\n","import type {ThemeColorCard_v2} from '../system/color/color'\n\n/**\n * Apply `neutral` and `suggest` if they're not already part of the color object,\n * as this was introduced in v2.9, but is not compatible with v2.0.\n *\n * @param color - The color object to upgrade\n * @returns The upgraded color object. Returns as-is if already upgraded.\n * @internal\n */\nexport function themeColor_v0_v2_9(color: ThemeColorCard_v2): ThemeColorCard_v2 {\n if ('neutral' in color.badge) {\n return color // Already at >= v2.9\n }\n\n // TypeScript narrows to `never` because the above should always be true\n // oxlint-disable-next-line no-unnecessary-type-assertion\n const colors = color as ThemeColorCard_v2\n\n return {\n ...colors,\n badge: {\n ...colors.badge,\n neutral: colors.badge.default,\n suggest: colors.badge.primary,\n },\n button: {\n bleed: {\n ...colors.button.bleed,\n neutral: colors.button.bleed.default,\n suggest: colors.button.bleed.primary,\n },\n default: {\n ...colors.button.default,\n neutral: colors.button.default.default,\n suggest: colors.button.default.primary,\n },\n ghost: {\n ...colors.button.ghost,\n neutral: colors.button.ghost.default,\n suggest: colors.button.ghost.primary,\n },\n },\n selectable: {\n ...colors.selectable,\n neutral: colors.selectable.default,\n suggest: colors.selectable.primary,\n },\n }\n}\n","import {defaultThemeConfig} from '../defaults/config'\nimport {RootTheme, RootTheme_v2} from '../system/theme'\nimport {themeColor_v0_v2} from './themeColor_v0_v2'\n\nconst cache = new WeakMap<RootTheme, RootTheme_v2>()\n\n/** @internal */\nexport function v0_v2(v0: RootTheme): RootTheme_v2 {\n if (v0.v2) return v0.v2\n\n const cached_v2 = cache.get(v0)\n\n if (cached_v2) return cached_v2\n\n const {\n // oxlint-disable-next-line no-deprecated\n avatar,\n // oxlint-disable-next-line no-deprecated\n button,\n // oxlint-disable-next-line no-deprecated\n color,\n // oxlint-disable-next-line no-deprecated\n container,\n // oxlint-disable-next-line no-deprecated\n focusRing: _unused_focusRing,\n // oxlint-disable-next-line no-deprecated\n fonts: font,\n // oxlint-disable-next-line no-deprecated\n input,\n // oxlint-disable-next-line no-deprecated\n layer,\n // oxlint-disable-next-line no-deprecated\n media,\n // oxlint-disable-next-line no-deprecated\n radius,\n // oxlint-disable-next-line no-deprecated\n shadows: shadow,\n // oxlint-disable-next-line no-deprecated\n space,\n // oxlint-disable-next-line no-deprecated\n styles: style,\n } = v0\n\n const v2: RootTheme_v2 = {\n _version: 2,\n avatar: {\n ...defaultThemeConfig.avatar,\n ...avatar,\n },\n button: {\n ...defaultThemeConfig.button,\n ...button,\n },\n card: defaultThemeConfig.card,\n color: {\n light: {\n transparent: themeColor_v0_v2(color.light.transparent),\n default: themeColor_v0_v2(color.light.default),\n neutral: themeColor_v0_v2(color.light.transparent),\n primary: themeColor_v0_v2(color.light.primary),\n suggest: themeColor_v0_v2(color.light.primary),\n positive: themeColor_v0_v2(color.light.positive),\n caution: themeColor_v0_v2(color.light.caution),\n critical: themeColor_v0_v2(color.light.critical),\n },\n dark: {\n transparent: themeColor_v0_v2(color.dark.transparent),\n default: themeColor_v0_v2(color.dark.default),\n neutral: themeColor_v0_v2(color.dark.transparent),\n primary: themeColor_v0_v2(color.dark.primary),\n suggest: themeColor_v0_v2(color.dark.primary),\n positive: themeColor_v0_v2(color.dark.positive),\n caution: themeColor_v0_v2(color.dark.caution),\n critical: themeColor_v0_v2(color.dark.critical),\n },\n },\n container,\n font,\n input: {\n ...defaultThemeConfig.input,\n ...input,\n checkbox: {\n ...defaultThemeConfig.input.checkbox,\n ...input.checkbox,\n },\n radio: {\n ...defaultThemeConfig.input.radio,\n ...input.radio,\n },\n switch: {\n ...defaultThemeConfig.input.switch,\n ...input.switch,\n },\n },\n layer: layer ?? defaultThemeConfig.layer,\n media,\n radius,\n shadow,\n space,\n style,\n }\n\n cache.set(v0, v2)\n\n return v2\n}\n","import {defineLazyProperty} from './build/lib/lazy'\nimport {defaultThemeConfig} from './defaults/config'\nimport {ThemeColorCardToneKey, ThemeColorSchemeKey} from './system/color/_system'\nimport {RootTheme, RootTheme_v2, Theme} from './system/theme'\nimport {ThemeColor} from './system/v0/color/color'\nimport {is_v2} from './versioning/is_v2'\nimport {themeColor_v0_v2_9} from './versioning/themeColor_v2_v2_9'\nimport {v0_v2} from './versioning/v0_v2'\nimport {v2_v0} from './versioning/v2_v0'\n\n// cache[scheme][tone][rootTheme] = theme\nconst cache = new Map<\n ThemeColorSchemeKey,\n Map<ThemeColorCardToneKey, WeakMap<RootTheme | RootTheme_v2, Theme>>\n>()\n\n/** @internal */\nexport function getScopedTheme(\n themeProp: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n): Theme {\n const cachedTheme = _getCachedTheme(themeProp, scheme, tone)\n\n if (cachedTheme) return cachedTheme\n\n const v0 = is_v2(themeProp) ? v2_v0(themeProp) : themeProp\n const v2 = is_v2(themeProp) ? themeProp : v0_v2(themeProp)\n\n // oxlint-disable-next-line no-deprecated\n const layer_v0 = v0.layer || defaultThemeConfig.layer\n\n const colorScheme_v2 = v2.color[scheme] || v2.color.light\n const color_v2 = colorScheme_v2[tone] || colorScheme_v2.default\n const color_v2_9 = themeColor_v0_v2_9(color_v2)\n const layer_v2 = v2.layer || defaultThemeConfig.layer\n\n // oxlint-disable-next-line no-deprecated\n const {color: _v0Color, ...v0Rest} = v0\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n const sanity = {\n ...v0Rest,\n // oxlint-disable-next-line no-deprecated\n layer: layer_v0,\n v2: {\n ...v2,\n _resolved: true,\n color: color_v2_9,\n layer: layer_v2,\n },\n } as Theme['sanity']\n\n // Defer v0 color computation — only resolved if legacy code reads theme.sanity.color\n defineLazyProperty(sanity, 'color', () => {\n // oxlint-disable-next-line no-deprecated\n const colorScheme_v0 = v0.color[scheme] || v0.color.light\n // oxlint-disable-next-line no-deprecated\n return (colorScheme_v0 as Record<string, ThemeColor>)[tone] || colorScheme_v0.default\n })\n\n const theme: Theme = {sanity}\n\n _setCachedTheme(themeProp, scheme, tone, theme)\n\n return theme\n}\n\nfunction _getCachedTheme(\n rootTheme: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n) {\n const schemeCache = cache.get(scheme)\n\n if (!schemeCache) return undefined\n\n const toneCache = schemeCache.get(tone)\n\n if (!toneCache) return undefined\n\n return toneCache.get(rootTheme)\n}\n\nfunction _setCachedTheme(\n rootTheme: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n theme: Theme,\n) {\n if (!cache.has(scheme)) cache.set(scheme, new Map())\n\n const schemeCache = cache.get(scheme)!\n\n if (!schemeCache.has(tone)) schemeCache.set(tone, new WeakMap())\n\n const toneCache = schemeCache.get(tone)!\n\n toneCache.set(rootTheme, theme)\n}\n"],"mappings":"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AS;GACT,QAAQ;GACR,UAAU;GACV,MAAM;EACR;EACA,OAAO;GACL;IACE,gBAAgB;IAChB,iBAAiB;IACjB,UAAU;IACV,UAAU;IACV,YAAY;IACZ,eAAe;GACjB;GACA;IACE,gBAAgB;IAChB,iBAAiB;IACjB,UAAU;IACV,UAAU;IACV,YAAY;IACZ,eAAe;GACjB;GACA;IACE,gBAAgB;IAChB,iBAAiB;IACjB,UAAU;IACV,UAAU;IACV,YAAY;IACZ,eAAe;GACjB;GACA;IACE,gBAAgB;IAChB,iBAAiB;IACjB,UAAU;IACV,UAAU;IACV,YAAY;IACZ,eAAe;GACjB;GACA;IACE,gBAAgB;IAChB,iBAAiB;IACjB,UAAU;IACV,UAAU;IACV,YAAY;IACZ,eAAe;GACjB;GACA;IACE,gBAAgB;IAChB,iBAAiB;IACjB,UAAU;IACV,UAAU;IACV,YAAY;IACZ,eAAe;GACjB;EACF;CACF;CACA,OAAO;EACL,QACE;EACF,SAAS;GACP,SAAS;GACT,QAAQ;GACR,UAAU;GACV,MAAM;EACR;EACA,OAAO;GACL;IACE,gBAAgB;IAChB,iBAAiB;IACjB,UAAU;IACV,UAAU;IACV,YAAY;IACZ,eAAe;GACjB;GACA;IACE,gBAAgB;IAChB,iBAAiB;IACjB,UAAU;IACV,UAAU;IACV,YAAY;IACZ,eAAe;GACjB;GACA;IACE,gBAAgB;IAChB,iBAAiB;IACjB,UAAU;IACV,UAAU;IACV,YAAY;IACZ,eAAe;GACjB;GACA;IACE,gBAAgB;IAChB,iBAAiB;IACjB,UAAU;IACV,UAAU;IACV,YAAY;IACZ,eAAe;GACjB;GACA;IACE,gBAAgB;IAChB,iBAAiB;IACjB,UAAU;IACV,UAAU;IACV,YAAY;IACZ,eAAe;GACjB;GACA;IACE,gBAAgB;IAChB,iBAAiB;IACjB,UAAU;IACV,UAAU;IACV,YAAY;IACZ,eAAe;GACjB;EACF;CACF;CACA,MAAM;EACJ,QACE;EACF,SAAS;GACP,SAAS;GACT,QAAQ;GACR,UAAU;GACV,MAAM;EACR;EACA,OAAO;GACL;IACE,gBAAgB;IAChB,iBAAiB;IACjB,UA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"}
1
+ {"version":3,"file":"getScopedTheme.js","names":["RootTheme_v2","BORDER_WIDTH","OUTLINE_WIDTH","defaultThemeConfig","Omit","_version","avatar","sizes","distance","size","focusRing","offset","width","button","textWeight","border","card","shadow","outline","container","media","layer","dialog","zOffset","popover","tooltip","radius","umbra","penumbra","ambient","space","input","checkbox","radio","markSize","switch","height","padding","transitionDurationMs","transitionTimingFunction","select","text","style","root","transition","ThemeFonts","defaultThemeFonts","code","family","weights","regular","medium","semibold","bold","sizes","ascenderHeight","descenderHeight","fontSize","iconSize","lineHeight","letterSpacing","heading","label","text","defineLazyProperty","T","obj","key","K","factory","Object","defineProperty","get","value","enumerable","writable","configurable","defineLazyProperty","ThemeColorCard_v2","ThemeColorInputMode_v2","ThemeColorInputState_v2","RootTheme","RootTheme_v2","ThemeColor","ThemeColorScheme","ThemeColorInputState","ThemeColorInputStates","cache","WeakMap","V0_TONES","const","lazyV0Scheme","schemeKey","color","scheme","tone","themeColor_v2_v0","v2_v0","v2","cachedTheme","get","avatar","button","container","font","fonts","input","media","radius","shadow","shadows","space","style","styles","v0Color","theme","_version","focusRing","text","set","color_v2","base","bg","fg","border","card","selectable","default","dark","_dark","inputStatesThemeColor_v2_v0","invalid","muted","ghost","transparent","solid","spot","gray","blue","purple","magenta","red","orange","yellow","green","cyan","syntax","t","enabled","inputStateThemeColor_v2_v0","disabled","readOnly","hovered","bg2","placeholder","COLOR_HUES","THEME_COLOR_SCHEMES","const","THEME_COLOR_BLEND_MODES","THEME_COLOR_CARD_TONES","THEME_COLOR_STATE_TONES","THEME_COLOR_STATES","THEME_COLOR_BUTTON_MODES","THEME_COLOR_INPUT_MODES","THEME_COLOR_INPUT_STATES","THEME_COLOR_AVATAR_COLORS","COLOR_HUES","COLOR_TINTS","ColorHueKey","ColorTintKey","THEME_COLOR_BLEND_MODES","THEME_COLOR_BUTTON_MODES","ThemeColorBlendModeKey","ThemeColorButtonModeKey","isColorBlendModeValue","str","includes","isColorHueKey","isColorTintKey","isColorButtonMode","ColorHueKey","ColorTintKey","THEME_COLOR_AVATAR_COLORS","THEME_COLOR_CARD_TONES","THEME_COLOR_INPUT_MODES","THEME_COLOR_INPUT_STATES","THEME_COLOR_STATE_TONES","THEME_COLOR_STATES","ThemeColorBlendModeKey","COLOR_CONFIG_STATE_KEYS","const","ColorConfigStateKey","COLOR_CONFIG_CARD_KEYS","ColorConfigCardKey","COLOR_CONFIG_BLEND_KEYS","ColorConfigBlendKey","ColorConfigOpacityValue","ColorConfigValue","ThemeColorTokenValue","ColorBlendModeTokenValue","COLOR_CONFIG_AVATAR_COLORS","ColorConfigAvatarColor","COLOR_CONFIG_CARD_TONES","ColorConfigCardTone","COLOR_CONFIG_STATE_TONES","ColorConfigStateTone","COLOR_CONFIG_STATES","ColorConfigState","COLOR_CONFIG_INPUT_MODES","ColorConfigInputMode","COLOR_CONFIG_INPUT_STATES","ColorConfigInputState","COLOR_CONFIG_BLEND_KEYS","COLOR_CONFIG_CARD_KEYS","COLOR_CONFIG_CARD_TONES","COLOR_CONFIG_STATE_KEYS","COLOR_CONFIG_STATE_TONES","ColorConfigBlendKey","ColorConfigCardKey","ColorConfigCardTone","ColorConfigOpacityValue","ColorConfigStateKey","ColorConfigStateTone","ColorConfigValue","parseTokenValue","isColorConfigBaseTone","str","includes","isColorConfigBaseKey","isColorConfigStateKey","isColorConfigStateTone","isColorConfigBlendKey","isColorTokenValue","type","isColorValue","isColorOpacityValue","test","isColorBlendModeValue","isColorHueKey","isColorTintKey","isColorOpacityValue","isColorValue","TokenValueNode","isColorMixPercentValue","str","test","parseTokenValue","segments","split","nextSegment","shift","segment0","segment0mix","tint","segment1","mix","Number","slice","type","opacity","key","hue","segment1mix","segment2","value","undefined","TokenColorValueNode","compileColorTokenValue","node","key","hue","tint","mix","undefined","opacity","ThemeColorTokenValue","parseTokenValue","compileColorTokenValue","ColorTokenContext","DEFAULT_COLOR_TOKEN_VALUE","resolveColorTokenValue","context","value","hue","scheme","node","type","Error","ThemeColorTokens","defaultColorTokens","base","_blend","accent","fg","avatar","bg","backdrop","badge","icon","dot","border","code","focusRing","kbd","link","muted","shadow","outline","umbra","penumbra","ambient","skeleton","from","to","_hue","button","default","ghost","bleed","input","placeholder","selectable","selected","disabled","syntax","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","className","comment","constant","deleted","entity","function","hexcode","id","important","inserted","keyword","number","operator","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","symbol","tag","unit","url","variable","isRecord","value","Record","Boolean","Array","isArray","isRecord","merge","Record","records","T","_records","filter","Boolean","length","reduce","_merge","acc","source","key","Object","keys","prevValue","nextValue","COLOR_HUES","ColorHueKey","ColorConfigCardTone","ColorConfigInputMode","ColorConfigInputState","ColorConfigStateTone","ThemeColorAvatarTokens","ThemeColorBadgeTokens","ThemeColorBaseTokens","ThemeColorButtonTokens","ThemeColorInputStateTokens","ThemeColorInputTokens","ThemeColorStatesTokens","ThemeColorStateTokens","ThemeColorTokens","defaultColorTokens","THEME_COLOR_BUTTON_MODES","THEME_COLOR_CARD_TONES","THEME_COLOR_INPUT_MODES","THEME_COLOR_INPUT_STATES","THEME_COLOR_STATE_TONES","THEME_COLOR_STATES","ThemeColorButtonModeKey","ThemeColorCardToneKey","ThemeColorStateKey","ThemeColorStateToneKey","merge","resolveColorTokens","inputTokens","tokens","base","resolveBaseColorTokens","button","resolveButtonColorTokens","input","resolveInputColorTokens","selectable","resolveSelectableColorTokens","syntax","sparseTokens","Partial","Record","tone","resolveBaseColorTones","spec","hue","_hue","avatar","reduce","acc","badge","mode","resolveButtonToneColorTokens","resolveButtonModeColorTokens","state","resolveButtonStateColorTokens","resolveInputModeColorTokens","states","resolveInputStateColorTokens","resolveSelectableToneColorTokens","resolveSelectableStateColorTokens","ThemeColorBadgeTokens","ThemeColorStateTokens","ThemeConfig","THEME_COLOR_BUTTON_MODES","THEME_COLOR_CARD_TONES","THEME_COLOR_STATE_TONES","THEME_COLOR_STATES","ThemeColorAvatarColorKey","ThemeColorButtonModeKey","ThemeColorCardToneKey","ThemeColorSchemeKey","ThemeColorStateKey","ThemeColorStateToneKey","ThemeColorAvatar_v2","ThemeColorAvatarHue_v2","ThemeColorBadge_v2","ThemeColorButton_v2","ThemeColorButtonMode_v2","ThemeColorButtonTone_v2","ThemeColorCard_v2","ThemeColorScheme_v2","ThemeColorSchemes_v2","ThemeColorInput_v2","ThemeColorInputMode_v2","ThemeColorInputState_v2","ThemeColorShadow","ThemeColorState_v2","ThemeColorSyntax","resolveColorTokenValue","_color","ColorTokenContext","defineLazyProperty","resolveColorTokens","buildColorTheme","config","resolvedConfig","color","schemes","buildColorScheme","scheme","options","colorScheme","tone","buildCardColorTheme","tokens","base","hue","_hue","context","blendMode","_blend","_dark","accent","fg","avatar","buildAvatarColorTheme","backdrop","badge","buildBadgeColorTheme","bg","border","button","buildButtonColorTheme","code","focusRing","icon","input","buildInputColorTheme","kbd","link","muted","selectable","buildSelectableColorTheme","shadow","buildShadowColorTheme","skeleton","from","to","syntax","buildSyntaxColorTheme","outline","umbra","penumbra","ambient","stateTokens","gray","_buildAvatarColorTheme","blue","purple","magenta","red","orange","yellow","green","cyan","colorBadge","_buildBadgeColorTheme","parentTokens","dot","cardTone","modes","Partial","mode","buildButtonTonesColorTheme","tones","buildButtonStatesColorTheme","states","state","buildButtonStateColorTheme","cardTokens","default","buildInputStatesColorTheme","invalid","enabled","buildInputStateColorTheme","hovered","readOnly","disabled","placeholder","buildSelectableStatesColorTheme","buildSelectableStateColorTheme","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","className","comment","constant","deleted","doctype","entity","function","hexcode","id","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","symbol","tag","unit","url","variable","color","ThemeColorPalette","defaultColorPalette","RGB","RGBA","mixChannel","b","s","weight","diff","delta","mix","r","g","lerp","x","y","a","invlerp","clamp","min","max","Math","range","x1","y1","x2","y2","round","value","clamp","round","HSL","RGB","RGBA","hexToRgb","hex","length","hexR","slice","hexG","hexB","r","parseInt","g","b","rgbaToRGBA","rgba","values","replace","split","a","parseFloat","rgbToHex","color","Math","toString","rgbToHsl","cmin","min","cmax","max","delta","h","s","l","abs","toFixed","hslToRgb","hsl","c","x","m","hexToRgb","hslToRgb","rgbaToRGBA","HSL","RGB","RGBA","HEX_CHARS","HSL_RE","isHexChars","str","c","indexOf","isHex","length","slice","parseHsl","res","exec","Error","h","parseInt","s","parseFloat","l","parseColor","color","r","g","b","startsWith","RGB","RGBA","multiplyChannel","b","s","multiply","r","g","RGB","RGBA","screenChannel","b","s","screen","r","g","multiply","screen","rgbToHex","parseColor","RGB","clamp","range","RGB_RANGE","mixThemeColor","value","options","bg","blendMode","black","white","color","paletteRange","r","g","b","convertedBgColor","convertedColor","resultColor","v","ColorTint","ColorPaletteValue","parseTokenValue","ThemeColorPalette","ThemeColorBlendModeKey","mix","hexToRgb","rgbToHex","rgba","mixThemeColor","RenderColorValueOptions","bg","blendMode","colorPalette","renderColorValue","str","options","Error","node","type","hex","key","renderColorHex","black","white","hue","tint","hexBeforeMix","mixOptions","undefined","from","to","err","console","warn","opacity","color","COLOR_HUES","ThemeColorPalette","ThemeConfig","defaultColorPalette","THEME_COLOR_CARD_TONES","THEME_COLOR_STATE_TONES","ThemeColorBlendModeKey","ThemeColorAvatar_v2","ThemeColorBadge_v2","ThemeColorBadgeTone_v2","ThemeColorButton_v2","ThemeColorButtonMode_v2","ThemeColorButtonTone_v2","ThemeColorCard_v2","ThemeColorScheme_v2","ThemeColorSchemes_v2","ThemeColorInput_v2","ThemeColorInputMode_v2","ThemeColorInputState_v2","ThemeColorKBD","ThemeColorSelectable_v2","ThemeColorSelectableTone_v2","ThemeColorShadow","ThemeColorState_v2","ThemeColorSyntax","defineLazyProperty","renderColorValue","RenderColorValueOptions","renderThemeColorSchemes","value","config","colorPalette","palette","schemes","renderThemeColorScheme","light","dark","renderedDefaultTone","renderThemeColor","default","bg","Error","scheme","tone","opts","options","blendMode","_blend","baseBg","colorOptions","button","renderThemeColorButton","selectable","renderThemeColorSelectable","shadow","outline","umbra","undefined","black","penumbra","ambient","_dark","accent","fg","avatar","renderThemeColorAvatar","backdrop","badge","renderThemeColorBadge","border","code","focusRing","icon","input","renderThemeColorInput","kbd","renderThemeColorKBD","link","muted","skeleton","from","to","syntax","renderSyntaxColorTheme","rootOptions","colorAvatar","hue","renderThemeColorAvatarColor","rootBlendMode","colorBadge","renderThemeColorBadgeColor","dot","renderThemeColorButtonTones","ghost","bleed","colorButtonMode","renderThemeColorButtonStates","enabled","renderThemeColorState","hovered","pressed","selected","disabled","renderInputStatesColorTheme","invalid","renderInputStateColorTheme","readOnly","placeholder","colorSelectable","renderThemeColorSelectableStates","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","className","comment","constant","deleted","doctype","entity","function","hexcode","id","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","symbol","tag","unit","url","variable","ThemeConfig","defaultThemeConfig","defaultThemeFonts","RootTheme","RootTheme_v2","v2_v0","buildColorTheme","renderThemeColorSchemes","buildTheme","config","colorTheme","v2","_version","avatar","button","card","color","container","font","input","layer","media","radius","shadow","space","style","ThemeColorBase","ThemeColorMuted","ThemeColorSelectable","ThemeColorSelectableStates","ThemeColorSolid","ThemeColorBuilderOpts","createSelectableTones","opts","base","dark","solid","muted","default","_createSelectableStates","primary","positive","caution","critical","tone","enabled","selectable","state","hovered","pressed","selected","disabled","ThemeColorName","ThemeColorBase","ThemeColorSolid","ThemeColorBuilderOpts","createSolidTones","opts","base","dark","name","default","enabled","solid","tone","state","disabled","hovered","pressed","selected","transparent","primary","positive","caution","critical","ThemeColorButtonModeKey","ThemeColorBase","ThemeColorButtonTones","ThemeColorMuted","ThemeColorSolid","ThemeColorBuilderOpts","createButtonTones","opts","base","dark","solid","muted","mode","default","button","primary","positive","caution","critical","ThemeColorBase","ThemeColorButton","ThemeColorMuted","ThemeColorSolid","ThemeColorBuilderOpts","createButtonTones","createButtonModes","opts","base","dark","solid","muted","default","ghost","bleed","ThemeColorName","ThemeColorBase","ThemeColorCard","ThemeColorMuted","ThemeColorSolid","ThemeColorBuilderOpts","createCardStates","opts","base","dark","name","solid","muted","enabled","card","state","disabled","hovered","pressed","selected","ThemeColorBuilderOpts","black","white","colors","default","lightest","lighter","light","base","dark","darker","darkest","transparent","primary","positive","caution","critical","spots","gray","red","orange","yellow","green","cyan","blue","purple","magenta","tones","bg","fg","border","focusRing","defaultOpts","name","shadow","outline","umbra","penumbra","ambient","skeleton","from","to","solid","state","tone","color","bg2","icon","muted","accent","link","code","button","mode","enabled","hovered","card","input","placeholder","selectable","spot","key","syntax","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","className","comment","constant","deleted","doctype","entity","function","hexcode","id","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","symbol","tag","unit","url","variable","ThemeColorBase","ThemeColorInput","ThemeColorMuted","ThemeColorSolid","ThemeColorBuilderOpts","createInputModes","opts","base","dark","solid","muted","default","enabled","input","mode","state","disabled","hovered","readOnly","invalid","ThemeColorName","ThemeColorBase","ThemeColorMuted","ThemeColorBuilderOpts","createMutedTones","opts","base","dark","name","default","enabled","muted","tone","state","disabled","hovered","pressed","selected","transparent","primary","positive","caution","critical","ThemeColorBase","ThemeColorSpot","ThemeColorBuilderOpts","createSpot","opts","base","dark","gray","spot","key","blue","purple","magenta","red","orange","yellow","green","cyan","ThemeColorButtonModeKey","ThemeColorSyntax","ThemeColorGenericState","ThemeColorName","ThemeColorToneKey","ThemeColorBase","ThemeColorButtonStates","ThemeColor","ThemeColorScheme","ThemeColorSchemes","ThemeColorInputState","ThemeColorMuted","ThemeColorMutedTone","ThemeColorSolid","ThemeColorSolidTone","ThemeColorSpotKey","createSelectableTones","createSolidTones","createButtonModes","createCardStates","defaultOpts","createInputModes","createMutedTones","createSpot","ThemeColorBuilderOpts","base","opts","dark","name","solid","tone","state","muted","card","button","mode","input","selectable","syntax","spot","key","PartialThemeColorBuilderOpts","Partial","createColorTheme","partialOpts","builders","light","_createColorScheme","default","_createColor","transparent","primary","positive","caution","critical","ThemeColorCard_v2","ThemeColorInputMode_v2","ThemeColorInputState_v2","ThemeColorSelectable_v2","ThemeColorState_v2","ThemeColorGenericState","ThemeColor","ThemeColorInputState","ThemeColorInputStates","ThemeColorMuted","cache","WeakMap","themeColor_v0_v2","color_v0","cached_v2","get","base","stateThemeColor_v0_v2","card","enabled","color_v2","_blend","dark","_dark","accent","avatar","backdrop","shadow","ambient","badge","bg","border","button","default","stateTonesThemeColor_v0_v2","ghost","bleed","code","fg","focusRing","icon","muted","input","inputStatesThemeColor_v0_v2","invalid","kbd","link","selectable","bg2","skeleton","from","to","syntax","set","v0","t","Omit","hovered","pressed","selected","disabled","neutral","primary","suggest","positive","caution","critical","state","gray","spot","blue","purple","magenta","red","orange","yellow","green","cyan","dot","transparent","states","inputStateThemeColor_v0_v2","readOnly","placeholder","defaultThemeConfig","Theme","Theme_v2","themeColor_v0_v2","cache","WeakMap","getTheme_v2","theme","sanity","v2","_resolved","cached_v2","get","_version","avatar","button","card","color","container","font","fonts","input","checkbox","radio","switch","layer","media","radius","shadow","shadows","space","style","styles","set","RootTheme","RootTheme_v2","is_v2","themeProp","_version","ThemeColorCard_v2","themeColor_v0_v2_9","color","badge","colors","neutral","default","suggest","primary","button","bleed","ghost","selectable","defaultThemeConfig","RootTheme","RootTheme_v2","themeColor_v0_v2","cache","WeakMap","v0_v2","v0","v2","cached_v2","get","avatar","button","color","container","focusRing","_unused_focusRing","fonts","font","input","layer","media","radius","shadows","shadow","space","styles","style","_version","card","light","transparent","default","neutral","primary","suggest","positive","caution","critical","dark","checkbox","radio","switch","set","defineLazyProperty","defaultThemeConfig","ThemeColorCardToneKey","ThemeColorSchemeKey","RootTheme","RootTheme_v2","Theme","ThemeColor","is_v2","themeColor_v0_v2_9","v0_v2","v2_v0","cache","Map","WeakMap","getScopedTheme","themeProp","scheme","tone","cachedTheme","_getCachedTheme","v0","v2","layer_v0","layer","colorScheme_v2","color","light","color_v2","default","color_v2_9","layer_v2","_v0Color","v0Rest","sanity","_resolved","colorScheme_v0","Record","theme","_setCachedTheme","rootTheme","schemeCache","get","undefined","toneCache","has","set"],"sources":["../../src/theme/defaults/config.ts","../../src/theme/defaults/fonts.ts","../../src/theme/build/lib/lazy.ts","../../src/theme/versioning/v2_v0.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","../../src/theme/versioning/themeColor_v0_v2.ts","../../src/theme/versioning/getTheme_v2.ts","../../src/theme/versioning/is_v2.ts","../../src/theme/versioning/themeColor_v2_v2_9.ts","../../src/theme/versioning/v0_v2.ts","../../src/theme/getScopedTheme.ts"],"sourcesContent":["import {RootTheme_v2} from '../system/theme'\n\nconst BORDER_WIDTH = 1\nconst OUTLINE_WIDTH = 0.5\n\nexport const defaultThemeConfig: Omit<RootTheme_v2, 'color' | 'font'> = {\n _version: 2,\n avatar: {\n sizes: [\n {distance: -4, size: 19},\n {distance: -4, size: 25},\n {distance: -8, size: 33},\n {distance: -12, size: 49},\n ],\n focusRing: {offset: 1, width: 1},\n },\n button: {\n textWeight: 'medium',\n border: {width: BORDER_WIDTH},\n focusRing: {offset: -1, width: 1},\n },\n card: {\n border: {width: BORDER_WIDTH},\n focusRing: {offset: -1, width: 1},\n shadow: {outline: OUTLINE_WIDTH},\n },\n container: [320, 640, 960, 1280, 1600, 1920],\n media: [360, 600, 900, 1200, 1800, 2400],\n layer: {\n dialog: {zOffset: 600},\n popover: {zOffset: 400},\n tooltip: {zOffset: 200},\n },\n radius: [0, 1, 3, 6, 9, 12, 21],\n shadow: [\n null,\n {umbra: [0, 0, 0, 0], penumbra: [0, 0, 0, 0], ambient: [0, 0, 0, 0]},\n {umbra: [0, 3, 5, -2], penumbra: [0, 6, 10, 0], ambient: [0, 1, 18, 1]},\n {umbra: [0, 7, 8, -4], penumbra: [0, 12, 17, 2], ambient: [0, 5, 22, 4]},\n {umbra: [0, 9, 11, -5], penumbra: [0, 18, 28, 2], ambient: [0, 7, 34, 6]},\n {umbra: [0, 11, 15, -7], penumbra: [0, 24, 38, 3], ambient: [0, 9, 46, 8]},\n ],\n space: [0, 4, 8, 12, 20, 32, 52, 84, 136, 220],\n input: {\n border: {\n width: BORDER_WIDTH,\n },\n checkbox: {\n size: 17,\n focusRing: {offset: -1, width: 1},\n },\n radio: {\n size: 17,\n markSize: 9,\n focusRing: {offset: -1, width: 1},\n },\n switch: {\n width: 25,\n height: 17,\n padding: 5,\n transitionDurationMs: 150,\n transitionTimingFunction: 'ease-out',\n focusRing: {offset: 1, width: 1},\n },\n select: {\n focusRing: {offset: -1, width: 1},\n },\n text: {\n focusRing: {offset: -1, width: 1},\n },\n },\n style: {\n button: {\n root: {\n transition: 'background-color 100ms,border-color 100ms,color 100ms',\n },\n },\n // card: {\n // root: {\n // transition: 'background-color 100ms,border-color 100ms,color 100ms',\n // },\n // },\n },\n}\n","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","/**\n * Defines a lazy, self-replacing property on `obj`.\n *\n * On first access the `factory` is called and the getter is replaced with the\n * computed plain value — subsequent reads have zero overhead.\n *\n * The property is enumerable (visible in `Object.keys` / spread) in both states.\n *\n * @internal\n */\nexport function defineLazyProperty<T extends object, K extends keyof T>(\n obj: T,\n key: K,\n factory: () => T[K],\n): void {\n Object.defineProperty(obj, key, {\n get() {\n const value = factory()\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n writable: false,\n configurable: false,\n })\n return value\n },\n enumerable: true,\n configurable: true,\n })\n}\n","import {defineLazyProperty} from '../build/lib/lazy'\nimport {ThemeColorCard_v2} from '../system/color/color'\nimport {ThemeColorInputMode_v2, ThemeColorInputState_v2} from '../system/color/input'\nimport {RootTheme, RootTheme_v2} from '../system/theme'\nimport {ThemeColor, ThemeColorScheme} from '../system/v0/color/color'\nimport {ThemeColorInputState, ThemeColorInputStates} from '../system/v0/color/input'\n\nconst cache = new WeakMap<RootTheme_v2, RootTheme>()\n\nconst V0_TONES = ['transparent', 'default', 'primary', 'positive', 'caution', 'critical'] as const\n\n// oxlint-disable-next-line no-deprecated\nfunction lazyV0Scheme(schemeKey: 'light' | 'dark', color: RootTheme_v2['color']): ThemeColorScheme {\n // oxlint-disable-next-line no-deprecated, no-unsafe-type-assertion\n const scheme = {} as ThemeColorScheme\n\n for (const tone of V0_TONES) {\n defineLazyProperty(scheme, tone, () => themeColor_v2_v0(color[schemeKey][tone]))\n }\n\n return scheme\n}\n\n/** @internal */\nexport function v2_v0(v2: RootTheme_v2): RootTheme {\n const cachedTheme = cache.get(v2)\n\n if (cachedTheme) return cachedTheme\n\n const {\n avatar,\n button,\n color,\n container,\n font: fonts,\n input,\n media,\n radius,\n shadow: shadows,\n space,\n style: styles,\n } = v2\n\n // Lazy v0 color — two-level lazy structure so we don't force-evaluate\n // the v2 lazy getters until a v0 tone is actually accessed.\n // oxlint-disable-next-line no-unsafe-type-assertion\n const v0Color = {} as RootTheme['color']\n\n defineLazyProperty(v0Color, 'light', () => lazyV0Scheme('light', color))\n defineLazyProperty(v0Color, 'dark', () => lazyV0Scheme('dark', color))\n\n const theme: RootTheme = {\n _version: 0,\n // oxlint-disable-next-line no-deprecated\n avatar,\n // oxlint-disable-next-line no-deprecated\n button,\n // oxlint-disable-next-line no-deprecated\n container,\n // oxlint-disable-next-line no-deprecated\n color: v0Color,\n // oxlint-disable-next-line no-deprecated\n focusRing: input.text.focusRing,\n // oxlint-disable-next-line no-deprecated\n fonts,\n // oxlint-disable-next-line no-deprecated\n input,\n // oxlint-disable-next-line no-deprecated\n media,\n // oxlint-disable-next-line no-deprecated\n radius,\n // oxlint-disable-next-line no-deprecated\n shadows,\n // oxlint-disable-next-line no-deprecated\n space,\n // oxlint-disable-next-line no-deprecated\n styles,\n\n v2,\n }\n\n cache.set(v2, theme)\n\n return theme\n}\n\n// oxlint-disable-next-line no-deprecated\nfunction themeColor_v2_v0(color_v2: ThemeColorCard_v2): ThemeColor {\n return {\n base: {\n bg: color_v2.bg,\n fg: color_v2.fg,\n border: color_v2.border,\n focusRing: color_v2.focusRing,\n shadow: color_v2.shadow,\n },\n button: color_v2.button,\n card: color_v2.selectable.default,\n dark: color_v2._dark,\n input: {\n default: inputStatesThemeColor_v2_v0(color_v2.input.default),\n invalid: inputStatesThemeColor_v2_v0(color_v2.input.invalid),\n },\n muted: {\n ...color_v2.button.ghost,\n transparent: color_v2.button.ghost.default,\n },\n solid: {\n ...color_v2.button.default,\n transparent: color_v2.button.default.default,\n },\n selectable: color_v2.selectable,\n spot: {\n gray: color_v2.avatar.gray.bg,\n blue: color_v2.avatar.blue.bg,\n purple: color_v2.avatar.purple.bg,\n magenta: color_v2.avatar.magenta.bg,\n red: color_v2.avatar.red.bg,\n orange: color_v2.avatar.orange.bg,\n yellow: color_v2.avatar.yellow.bg,\n green: color_v2.avatar.green.bg,\n cyan: color_v2.avatar.cyan.bg,\n },\n syntax: color_v2.syntax,\n }\n}\n\n// oxlint-disable-next-line no-deprecated\nfunction inputStatesThemeColor_v2_v0(t: ThemeColorInputMode_v2): ThemeColorInputStates {\n return {\n enabled: inputStateThemeColor_v2_v0(t.enabled),\n disabled: inputStateThemeColor_v2_v0(t.disabled),\n readOnly: inputStateThemeColor_v2_v0(t.readOnly),\n hovered: inputStateThemeColor_v2_v0(t.hovered),\n }\n}\n\n// oxlint-disable-next-line no-deprecated\nfunction inputStateThemeColor_v2_v0(t: ThemeColorInputState_v2): ThemeColorInputState {\n return {\n bg: t.bg,\n bg2: t.muted.bg,\n border: t.border,\n fg: t.fg,\n placeholder: t.placeholder,\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","import {ThemeColorCard_v2} from '../system/color/color'\nimport {ThemeColorInputMode_v2, ThemeColorInputState_v2} from '../system/color/input'\nimport {ThemeColorSelectable_v2} from '../system/color/selectable'\nimport {ThemeColorState_v2} from '../system/color/state'\nimport {ThemeColorGenericState} from '../system/v0/color/_generic'\nimport {ThemeColor} from '../system/v0/color/color'\nimport {ThemeColorInputState, ThemeColorInputStates} from '../system/v0/color/input'\nimport {ThemeColorMuted} from '../system/v0/color/muted'\n\n// oxlint-disable-next-line no-deprecated\nconst cache = new WeakMap<ThemeColor, ThemeColorCard_v2>()\n\n/** @internal */\n// oxlint-disable-next-line no-deprecated\nexport function themeColor_v0_v2(color_v0: ThemeColor): ThemeColorCard_v2 {\n const cached_v2 = cache.get(color_v0)\n\n if (cached_v2) return cached_v2\n\n const base = stateThemeColor_v0_v2(color_v0, color_v0.card.enabled)\n\n const color_v2: ThemeColorCard_v2 = {\n _blend: color_v0._blend || (color_v0.dark ? 'screen' : 'multiply'),\n _dark: color_v0.dark,\n accent: base.accent,\n avatar: base.avatar,\n backdrop: color_v0.base.shadow.ambient,\n badge: base.badge,\n bg: color_v0.base.bg,\n border: color_v0.base.border,\n button: {\n default: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.default),\n ghost: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.ghost),\n bleed: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.bleed),\n },\n code: base.code,\n fg: color_v0.base.fg,\n focusRing: color_v0.base.focusRing,\n icon: base.muted.fg,\n input: {\n default: inputStatesThemeColor_v0_v2(color_v0.input.default),\n invalid: inputStatesThemeColor_v0_v2(color_v0.input.invalid),\n },\n kbd: base.kbd,\n link: base.link,\n muted: {\n ...base.muted,\n bg: color_v0.selectable?.default.enabled.bg2 || color_v0.base.bg,\n },\n selectable: stateTonesThemeColor_v0_v2(color_v0, color_v0.selectable || color_v0.muted),\n shadow: color_v0.base.shadow,\n skeleton: {\n from: color_v0.skeleton?.from || color_v0.base.border,\n to: color_v0.skeleton?.to || color_v0.base.border,\n },\n syntax: color_v0.syntax,\n }\n\n cache.set(color_v0, color_v2)\n\n return color_v2\n}\n\nfunction stateTonesThemeColor_v0_v2(\n // oxlint-disable-next-line no-deprecated\n v0: ThemeColor,\n // oxlint-disable-next-line no-deprecated\n t: Omit<ThemeColorMuted, 'transparent'>,\n): ThemeColorSelectable_v2 {\n return {\n default: {\n enabled: stateThemeColor_v0_v2(v0, t.default.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.default.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.default.pressed),\n selected: stateThemeColor_v0_v2(v0, t.default.selected),\n disabled: stateThemeColor_v0_v2(v0, t.default.disabled),\n },\n neutral: {\n enabled: stateThemeColor_v0_v2(v0, t.default.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.default.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.default.pressed),\n selected: stateThemeColor_v0_v2(v0, t.default.selected),\n disabled: stateThemeColor_v0_v2(v0, t.default.disabled),\n },\n primary: {\n enabled: stateThemeColor_v0_v2(v0, t.primary.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.primary.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.primary.pressed),\n selected: stateThemeColor_v0_v2(v0, t.primary.selected),\n disabled: stateThemeColor_v0_v2(v0, t.primary.disabled),\n },\n suggest: {\n enabled: stateThemeColor_v0_v2(v0, t.primary.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.primary.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.primary.pressed),\n selected: stateThemeColor_v0_v2(v0, t.primary.selected),\n disabled: stateThemeColor_v0_v2(v0, t.primary.disabled),\n },\n positive: {\n enabled: stateThemeColor_v0_v2(v0, t.positive.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.positive.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.positive.pressed),\n selected: stateThemeColor_v0_v2(v0, t.positive.selected),\n disabled: stateThemeColor_v0_v2(v0, t.positive.disabled),\n },\n caution: {\n enabled: stateThemeColor_v0_v2(v0, t.caution.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.caution.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.caution.pressed),\n selected: stateThemeColor_v0_v2(v0, t.caution.selected),\n disabled: stateThemeColor_v0_v2(v0, t.caution.disabled),\n },\n critical: {\n enabled: stateThemeColor_v0_v2(v0, t.critical.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.critical.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.critical.pressed),\n selected: stateThemeColor_v0_v2(v0, t.critical.selected),\n disabled: stateThemeColor_v0_v2(v0, t.critical.disabled),\n },\n }\n}\n\n// oxlint-disable-next-line no-deprecated\nfunction stateThemeColor_v0_v2(v0: ThemeColor, state: ThemeColorGenericState): ThemeColorState_v2 {\n return {\n ...state,\n avatar: {\n gray: {\n bg: v0.spot.gray,\n fg: v0.base.bg,\n },\n blue: {\n bg: v0.spot.blue,\n fg: v0.base.bg,\n },\n purple: {\n bg: v0.spot.purple,\n fg: v0.base.bg,\n },\n magenta: {\n bg: v0.spot.magenta,\n fg: v0.base.bg,\n },\n red: {\n bg: v0.spot.red,\n fg: v0.base.bg,\n },\n orange: {\n bg: v0.spot.orange,\n fg: v0.base.bg,\n },\n yellow: {\n bg: v0.spot.yellow,\n fg: v0.base.bg,\n },\n green: {\n bg: v0.spot.green,\n fg: v0.base.bg,\n },\n cyan: {\n bg: v0.spot.cyan,\n fg: v0.base.bg,\n },\n },\n badge: {\n default: {\n bg: v0.muted.default.enabled.bg,\n fg: v0.muted.default.enabled.fg,\n dot: v0.muted.default.enabled.muted.fg,\n icon: v0.muted.default.enabled.muted.fg,\n },\n neutral: {\n bg: v0.muted.transparent.enabled.bg,\n fg: v0.muted.transparent.enabled.fg,\n dot: v0.muted.transparent.enabled.muted.fg,\n icon: v0.muted.transparent.enabled.muted.fg,\n },\n primary: {\n bg: v0.muted.primary.enabled.bg,\n fg: v0.muted.primary.enabled.fg,\n dot: v0.muted.primary.enabled.muted.fg,\n icon: v0.muted.primary.enabled.muted.fg,\n },\n suggest: {\n bg: v0.muted.primary.enabled.bg,\n fg: v0.muted.primary.enabled.fg,\n dot: v0.muted.primary.enabled.muted.fg,\n icon: v0.muted.primary.enabled.muted.fg,\n },\n positive: {\n bg: v0.muted.positive.enabled.bg,\n fg: v0.muted.positive.enabled.fg,\n dot: v0.muted.positive.enabled.muted.fg,\n icon: v0.muted.positive.enabled.muted.fg,\n },\n caution: {\n bg: v0.muted.caution.enabled.bg,\n fg: v0.muted.caution.enabled.fg,\n dot: v0.muted.caution.enabled.muted.fg,\n icon: v0.muted.caution.enabled.muted.fg,\n },\n critical: {\n bg: v0.muted.critical.enabled.bg,\n fg: v0.muted.critical.enabled.fg,\n dot: v0.muted.critical.enabled.muted.fg,\n icon: v0.muted.critical.enabled.muted.fg,\n },\n },\n kbd: {\n bg: v0.muted.default.enabled.bg,\n fg: v0.muted.default.enabled.fg,\n border: v0.muted.default.enabled.border,\n },\n muted: {\n ...v0.muted.default.enabled.muted,\n bg: state.bg2 || state.bg,\n },\n skeleton: {\n from: state.skeleton?.from || state.border,\n to: state.skeleton?.to || state.border,\n },\n }\n}\n\n// oxlint-disable-next-line no-deprecated\nfunction inputStatesThemeColor_v0_v2(states: ThemeColorInputStates): ThemeColorInputMode_v2 {\n return {\n enabled: inputStateThemeColor_v0_v2(states.enabled),\n disabled: inputStateThemeColor_v0_v2(states.disabled),\n readOnly: inputStateThemeColor_v0_v2(states.readOnly),\n hovered: inputStateThemeColor_v0_v2(states.hovered),\n }\n}\n\n// oxlint-disable-next-line no-deprecated\nfunction inputStateThemeColor_v0_v2(state: ThemeColorInputState): ThemeColorInputState_v2 {\n return {\n bg: state.bg,\n border: state.border,\n fg: state.fg,\n muted: {\n bg: state.bg2,\n },\n placeholder: state.placeholder,\n }\n}\n","import {defaultThemeConfig} from '../defaults/config'\nimport {Theme, Theme_v2} from '../system/theme'\nimport {themeColor_v0_v2} from './themeColor_v0_v2'\n\nconst cache = new WeakMap<Theme, Theme_v2>()\n\n/** @public */\nexport function getTheme_v2(theme: Theme): Theme_v2 {\n if (theme.sanity.v2?._resolved) return theme.sanity.v2\n\n const cached_v2 = cache.get(theme)\n\n if (cached_v2) return cached_v2\n\n const v2: Theme_v2 = {\n _version: 2,\n _resolved: true,\n avatar: {\n ...defaultThemeConfig.avatar,\n // oxlint-disable-next-line no-deprecated\n ...theme.sanity.avatar,\n },\n button: {\n ...defaultThemeConfig.button,\n // oxlint-disable-next-line no-deprecated\n ...theme.sanity.button,\n },\n card: defaultThemeConfig.card,\n // oxlint-disable-next-line no-deprecated\n color: themeColor_v0_v2(theme.sanity.color),\n // oxlint-disable-next-line no-deprecated\n container: theme.sanity.container,\n // oxlint-disable-next-line no-deprecated\n font: theme.sanity.fonts,\n input: {\n ...defaultThemeConfig.input,\n // oxlint-disable-next-line no-deprecated\n ...theme.sanity.input,\n checkbox: {\n ...defaultThemeConfig.input.checkbox,\n // oxlint-disable-next-line no-deprecated\n ...theme.sanity.input.checkbox,\n },\n radio: {\n ...defaultThemeConfig.input.radio,\n // oxlint-disable-next-line no-deprecated\n ...theme.sanity.input.radio,\n },\n switch: {\n ...defaultThemeConfig.input.switch,\n // oxlint-disable-next-line no-deprecated\n ...theme.sanity.input.switch,\n },\n },\n // oxlint-disable-next-line no-deprecated\n layer: theme.sanity.layer ?? defaultThemeConfig.layer,\n // oxlint-disable-next-line no-deprecated\n media: theme.sanity.media,\n // oxlint-disable-next-line no-deprecated\n radius: theme.sanity.radius,\n // oxlint-disable-next-line no-deprecated\n shadow: theme.sanity.shadows,\n // oxlint-disable-next-line no-deprecated\n space: theme.sanity.space,\n // oxlint-disable-next-line no-deprecated\n style: theme.sanity.styles,\n }\n\n cache.set(theme, v2)\n\n return v2\n}\n","import {RootTheme, RootTheme_v2} from '../system/theme'\n\n/** @internal */\nexport function is_v2(themeProp: RootTheme | RootTheme_v2): themeProp is RootTheme_v2 {\n return themeProp._version === 2\n}\n","import type {ThemeColorCard_v2} from '../system/color/color'\n\n/**\n * Apply `neutral` and `suggest` if they're not already part of the color object,\n * as this was introduced in v2.9, but is not compatible with v2.0.\n *\n * @param color - The color object to upgrade\n * @returns The upgraded color object. Returns as-is if already upgraded.\n * @internal\n */\nexport function themeColor_v0_v2_9(color: ThemeColorCard_v2): ThemeColorCard_v2 {\n if ('neutral' in color.badge) {\n return color // Already at >= v2.9\n }\n\n // TypeScript narrows to `never` because the above should always be true\n // oxlint-disable-next-line no-unnecessary-type-assertion\n const colors = color as ThemeColorCard_v2\n\n return {\n ...colors,\n badge: {\n ...colors.badge,\n neutral: colors.badge.default,\n suggest: colors.badge.primary,\n },\n button: {\n bleed: {\n ...colors.button.bleed,\n neutral: colors.button.bleed.default,\n suggest: colors.button.bleed.primary,\n },\n default: {\n ...colors.button.default,\n neutral: colors.button.default.default,\n suggest: colors.button.default.primary,\n },\n ghost: {\n ...colors.button.ghost,\n neutral: colors.button.ghost.default,\n suggest: colors.button.ghost.primary,\n },\n },\n selectable: {\n ...colors.selectable,\n neutral: colors.selectable.default,\n suggest: colors.selectable.primary,\n },\n }\n}\n","import {defaultThemeConfig} from '../defaults/config'\nimport {RootTheme, RootTheme_v2} from '../system/theme'\nimport {themeColor_v0_v2} from './themeColor_v0_v2'\n\nconst cache = new WeakMap<RootTheme, RootTheme_v2>()\n\n/** @internal */\nexport function v0_v2(v0: RootTheme): RootTheme_v2 {\n if (v0.v2) return v0.v2\n\n const cached_v2 = cache.get(v0)\n\n if (cached_v2) return cached_v2\n\n const {\n // oxlint-disable-next-line no-deprecated\n avatar,\n // oxlint-disable-next-line no-deprecated\n button,\n // oxlint-disable-next-line no-deprecated\n color,\n // oxlint-disable-next-line no-deprecated\n container,\n // oxlint-disable-next-line no-deprecated\n focusRing: _unused_focusRing,\n // oxlint-disable-next-line no-deprecated\n fonts: font,\n // oxlint-disable-next-line no-deprecated\n input,\n // oxlint-disable-next-line no-deprecated\n layer,\n // oxlint-disable-next-line no-deprecated\n media,\n // oxlint-disable-next-line no-deprecated\n radius,\n // oxlint-disable-next-line no-deprecated\n shadows: shadow,\n // oxlint-disable-next-line no-deprecated\n space,\n // oxlint-disable-next-line no-deprecated\n styles: style,\n } = v0\n\n const v2: RootTheme_v2 = {\n _version: 2,\n avatar: {\n ...defaultThemeConfig.avatar,\n ...avatar,\n },\n button: {\n ...defaultThemeConfig.button,\n ...button,\n },\n card: defaultThemeConfig.card,\n color: {\n light: {\n transparent: themeColor_v0_v2(color.light.transparent),\n default: themeColor_v0_v2(color.light.default),\n neutral: themeColor_v0_v2(color.light.transparent),\n primary: themeColor_v0_v2(color.light.primary),\n suggest: themeColor_v0_v2(color.light.primary),\n positive: themeColor_v0_v2(color.light.positive),\n caution: themeColor_v0_v2(color.light.caution),\n critical: themeColor_v0_v2(color.light.critical),\n },\n dark: {\n transparent: themeColor_v0_v2(color.dark.transparent),\n default: themeColor_v0_v2(color.dark.default),\n neutral: themeColor_v0_v2(color.dark.transparent),\n primary: themeColor_v0_v2(color.dark.primary),\n suggest: themeColor_v0_v2(color.dark.primary),\n positive: themeColor_v0_v2(color.dark.positive),\n caution: themeColor_v0_v2(color.dark.caution),\n critical: themeColor_v0_v2(color.dark.critical),\n },\n },\n container,\n font,\n input: {\n ...defaultThemeConfig.input,\n ...input,\n checkbox: {\n ...defaultThemeConfig.input.checkbox,\n ...input.checkbox,\n },\n radio: {\n ...defaultThemeConfig.input.radio,\n ...input.radio,\n },\n switch: {\n ...defaultThemeConfig.input.switch,\n ...input.switch,\n },\n },\n layer: layer ?? defaultThemeConfig.layer,\n media,\n radius,\n shadow,\n space,\n style,\n }\n\n cache.set(v0, v2)\n\n return v2\n}\n","import {defineLazyProperty} from './build/lib/lazy'\nimport {defaultThemeConfig} from './defaults/config'\nimport {ThemeColorCardToneKey, ThemeColorSchemeKey} from './system/color/_system'\nimport {RootTheme, RootTheme_v2, Theme} from './system/theme'\nimport {ThemeColor} from './system/v0/color/color'\nimport {is_v2} from './versioning/is_v2'\nimport {themeColor_v0_v2_9} from './versioning/themeColor_v2_v2_9'\nimport {v0_v2} from './versioning/v0_v2'\nimport {v2_v0} from './versioning/v2_v0'\n\n// cache[scheme][tone][rootTheme] = theme\nconst cache = new Map<\n ThemeColorSchemeKey,\n Map<ThemeColorCardToneKey, WeakMap<RootTheme | RootTheme_v2, Theme>>\n>()\n\n/** @internal */\nexport function getScopedTheme(\n themeProp: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n): Theme {\n const cachedTheme = _getCachedTheme(themeProp, scheme, tone)\n\n if (cachedTheme) return cachedTheme\n\n const v0 = is_v2(themeProp) ? v2_v0(themeProp) : themeProp\n const v2 = is_v2(themeProp) ? themeProp : v0_v2(themeProp)\n\n // oxlint-disable-next-line no-deprecated\n const layer_v0 = v0.layer || defaultThemeConfig.layer\n\n const colorScheme_v2 = v2.color[scheme] || v2.color.light\n const color_v2 = colorScheme_v2[tone] || colorScheme_v2.default\n const color_v2_9 = themeColor_v0_v2_9(color_v2)\n const layer_v2 = v2.layer || defaultThemeConfig.layer\n\n // oxlint-disable-next-line no-deprecated\n const {color: _v0Color, ...v0Rest} = v0\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n const sanity = {\n ...v0Rest,\n // oxlint-disable-next-line no-deprecated\n layer: layer_v0,\n v2: {\n ...v2,\n _resolved: true,\n color: color_v2_9,\n layer: layer_v2,\n },\n } as Theme['sanity']\n\n // Defer v0 color computation — only resolved if legacy code reads theme.sanity.color\n defineLazyProperty(sanity, 'color', () => {\n // oxlint-disable-next-line no-deprecated\n const colorScheme_v0 = v0.color[scheme] || v0.color.light\n // oxlint-disable-next-line no-deprecated\n return (colorScheme_v0 as Record<string, ThemeColor>)[tone] || colorScheme_v0.default\n })\n\n const theme: Theme = {sanity}\n\n _setCachedTheme(themeProp, scheme, tone, theme)\n\n return theme\n}\n\nfunction _getCachedTheme(\n rootTheme: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n) {\n const schemeCache = cache.get(scheme)\n\n if (!schemeCache) return undefined\n\n const toneCache = schemeCache.get(tone)\n\n if (!toneCache) return undefined\n\n return toneCache.get(rootTheme)\n}\n\nfunction _setCachedTheme(\n rootTheme: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n theme: Theme,\n) {\n if (!cache.has(scheme)) cache.set(scheme, new Map())\n\n const schemeCache = cache.get(scheme)!\n\n if (!schemeCache.has(tone)) schemeCache.set(tone, new WeakMap())\n\n const toneCache = schemeCache.get(tone)!\n\n toneCache.set(rootTheme, theme)\n}\n"],"mappings":"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L;CACAC,SAAS;EACPb,QACE;EACFC,SAAS;GACPC,SAAS;GACTC,QAAQ;GACRC,UAAU;GACVC,MAAM;EACR;EACAC,OAAO;GACL;IACEC,gBAAgB;IAChBC,iBAAiB;IACjBC,UAAU;IACVC,UAAU;IACVC,YAAY;IACZC,eAAe;GACjB;GACA;IACEL,gBAAgB;IAChBC,iBAAiB;IACjBC,UAAU;IACVC,UAAU;IACVC,YAAY;IACZC,eAAe;GACjB;GACA;IACEL,gBAAgB;IAChBC,iBAAiB;IACjBC,UAAU;IACVC,UAAU;IACVC,YAAY;IACZC,eAAe;GACjB;GACA;IACEL,gBAAgB;IAChBC,iBAAiB;IACjBC,UAAU;IACVC,UAAU;IACVC,YAAY;IACZC,eAAe;GACjB;GACA;IACEL,gBAAgB;IAChBC,iBAAiB;IACjBC,UAAU;IACVC,UAAU;IACVC,YAAY;IACZC,eAAe;GACjB;GACA;IACEL,gBAAgB;IAChBC,iBAAiB;IACjBC,UAAU;IACVC,UAAU;IACVC,YAAY;IACZC,eAAe;GACjB;EAAC;CAEL;CACAE,OAAO;EACLd,QACE;EACFC,SAAS;GACPC,SAAS;GACTC,QAAQ;GACRC,UAAU;GACVC,MAAM;EACR;EACAC,OAAO;GACL;IACEC,gBAAgB;IAChBC,iBAAiB;IACjBC,UAAU;IACVC,UAAU;IACVC,YAAY;IACZC,eAAe;GACjB;GACA;IACEL,gBAAgB;IAChBC,iBAAiB;IACjBC,UAAU;IACVC,UAAU;IACVC,YAAY;IACZC,eAAe;GACjB;GACA;IACEL,gBAAgB;IAChBC,iBAAiB;IACjBC,UAAU;IACVC,UAAU;IACVC,YAAY;IACZC,eAAe;GACjB;GACA;IACEL,gBAAgB;IAChBC,iBAAiB;IACjBC,UAAU;IACVC,UAAU;IACVC,YAAY;IACZC,eAAe;GACjB;GACA;IACEL,gBAAgB;IAChBC,iBAAiB;IACjBC,UAAU;IACVC,UAAU;IACVC,YAAY;IACZC,eAAe;GACjB;GACA;IACEL,gBAAgB;IAChBC,iBAAiB;IACjBC,UAAU;IACVC,UAAU;IACVC,YAAY;IACZC,eAAe;GACjB;EAAC;C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"}