@sanity/ui 2.12.3 → 2.13.0
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.
- package/dist/_chunks-cjs/_visual-editing.js +27 -22
- package/dist/_chunks-cjs/_visual-editing.js.map +1 -1
- package/dist/_chunks-cjs/getTheme_v2.js +0 -1
- package/dist/_chunks-cjs/getTheme_v2.js.map +1 -1
- package/dist/_chunks-es/_visual-editing.mjs +27 -22
- package/dist/_chunks-es/_visual-editing.mjs.map +1 -1
- package/dist/_chunks-es/getTheme_v2.mjs +0 -1
- package/dist/_chunks-es/getTheme_v2.mjs.map +1 -1
- package/dist/_chunks-es/refractor.mjs +1 -1
- package/dist/_legacy/_visual-editing.esm.js +27 -22
- package/dist/_legacy/_visual-editing.esm.js.map +1 -1
- package/dist/_legacy/getTheme_v2.esm.js +0 -1
- package/dist/_legacy/getTheme_v2.esm.js.map +1 -1
- package/dist/_legacy/refractor.esm.js +1 -1
- package/dist/_visual-editing.d.mts +2 -1
- package/dist/_visual-editing.d.ts +2 -1
- package/dist/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/theme.esm.js +0 -3
- package/dist/theme.esm.js.map +1 -1
- package/dist/theme.js +0 -3
- package/dist/theme.js.map +1 -1
- package/dist/theme.mjs +0 -3
- package/dist/theme.mjs.map +1 -1
- package/package.json +23 -23
- package/src/core/__workshop__/constants.ts +5 -4
- package/src/core/hooks/useClickOutsideEvent.ts +1 -1
- package/src/core/hooks/useGlobalKeyDown.ts +1 -1
- package/src/core/primitives/button/__workshop__/props.tsx +4 -0
- package/src/core/primitives/button/button.tsx +5 -2
- package/src/core/primitives/tooltip/tooltip.tsx +1 -1
package/dist/theme.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.mjs","sources":["../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/defaults/fonts.ts","../src/theme/versioning/is_v0.ts","../src/theme/versioning/is_v2.ts","../src/theme/versioning/v0_v2.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/tokens/parseTokenKey.ts","../src/theme/config/tokens/parseTokenValue.ts","../src/theme/config/helpers.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/color-fns/blend/multiply.ts","../src/theme/build/lib/color-fns/blend/screen.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/contrastRatio.ts","../src/theme/build/lib/color-fns/rgba.ts","../src/theme/build/mixThemeColor.ts","../src/theme/build/renderColorValue.ts","../src/theme/build/renderColorTheme.ts","../src/theme/build/buildTheme.ts","../src/theme/versioning/themeColor_v2_v2_9.ts","../src/theme/getScopedTheme.ts"],"sourcesContent":["import {\n ThemeColorBase,\n ThemeColorMuted,\n ThemeColorSelectable,\n ThemeColorSelectableStates,\n ThemeColorSolid,\n} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSelectableTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\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 opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical',\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 {ThemeColorBase, ThemeColorSolid, ThemeColorName} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSolidTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\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 {\n ThemeColorBase,\n ThemeColorButtonModeKey,\n ThemeColorButtonTones,\n ThemeColorMuted,\n ThemeColorSolid,\n} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createButtonTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n mode: ThemeColorButtonModeKey,\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 {\n ThemeColorBase,\n ThemeColorButton,\n ThemeColorMuted,\n ThemeColorSolid,\n} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {createButtonTones} from './createButtonTones'\n\nexport function createButtonModes(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\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 {\n ThemeColorBase,\n ThemeColorCard,\n ThemeColorMuted,\n ThemeColorSolid,\n ThemeColorName,\n} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createCardStates(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\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\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, ThemeColorInput, ThemeColorMuted, ThemeColorSolid} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createInputModes(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\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 {ThemeColorBase, ThemeColorMuted, ThemeColorName} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createMutedTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\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, ThemeColorSpot} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSpot(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\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 {\n ThemeColorGenericState,\n ThemeColorBase,\n ThemeColorButtonModeKey,\n ThemeColorButtonStates,\n ThemeColorInputState,\n ThemeColorMuted,\n ThemeColorMutedTone,\n ThemeColorSolid,\n ThemeColorSolidTone,\n ThemeColorSyntax,\n ThemeColorName,\n ThemeColorScheme,\n ThemeColorSchemes,\n ThemeColor,\n ThemeColorToneKey,\n ThemeColorSpotKey,\n} from '../../../system'\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 base: (opts: {dark: boolean; name: ThemeColorName}) => ThemeColorBase\n solid: (opts: {\n base: ThemeColorBase\n dark: boolean\n tone: ThemeColorName\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n muted: (opts: {\n base: ThemeColorBase\n dark: boolean\n tone: ThemeColorToneKey\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n card: (opts: {\n base: ThemeColorBase\n dark: boolean\n muted: ThemeColorMuted\n name: ThemeColorName\n solid: ThemeColorSolid\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n button: (opts: {\n dark: boolean\n mode: ThemeColorButtonModeKey\n base: ThemeColorBase\n solid: ThemeColorSolidTone\n muted: ThemeColorMutedTone\n }) => ThemeColorButtonStates\n input: (opts: {\n base: ThemeColorBase\n solid: ThemeColorSolidTone\n muted: ThemeColorMutedTone\n dark: boolean\n mode: 'default' | 'invalid'\n state: 'enabled' | 'disabled' | 'hovered' | 'readOnly'\n }) => ThemeColorInputState\n selectable: (opts: {\n dark: boolean\n base: ThemeColorBase\n solid: ThemeColorSolid\n muted: ThemeColorMuted\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical'\n }) => ThemeColorGenericState\n syntax: (opts: {base: ThemeColorBase; dark: boolean}) => ThemeColorSyntax\n spot: (opts: {base: ThemeColorBase; dark: boolean; key: ThemeColorSpotKey}) => string\n}\n\n/**\n * @public\n * @deprecated Use `ThemeConfig` instead.\n */\nexport type PartialThemeColorBuilderOpts = Partial<ThemeColorBuilderOpts>\n\n/**\n * @public\n * @deprecated Use `buildColorTheme` instead.\n */\nexport function createColorTheme(\n partialOpts: PartialThemeColorBuilderOpts = {},\n): ThemeColorSchemes {\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 */\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 opts: ThemeColorBuilderOpts,\n dark: boolean,\n name: ThemeColorName,\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 {ThemeFonts} from '../system'\n\nexport const defaultThemeFonts: ThemeFonts = {\n code: {\n family: 'ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace',\n weights: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 15,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 19,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 22,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\n },\n ],\n },\n heading: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n weights: {\n regular: 700,\n medium: 800,\n semibold: 900,\n bold: 900,\n },\n sizes: [\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 17,\n lineHeight: 19,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 29,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 27,\n iconSize: 41,\n lineHeight: 35,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 9.5,\n descenderHeight: 8.5,\n fontSize: 33,\n iconSize: 49,\n lineHeight: 41,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 10.5,\n descenderHeight: 9.5,\n fontSize: 38,\n iconSize: 53,\n lineHeight: 47,\n letterSpacing: 0,\n },\n ],\n },\n label: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", system-ui, sans-serif',\n weights: {\n regular: 600,\n medium: 700,\n semibold: 800,\n bold: 900,\n },\n sizes: [\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 8.1,\n iconSize: 13,\n lineHeight: 10,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 9.5,\n iconSize: 15,\n lineHeight: 11,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 10.8,\n iconSize: 17,\n lineHeight: 12,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 12.25,\n iconSize: 19,\n lineHeight: 13,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 13.6,\n iconSize: 21,\n lineHeight: 14,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 15,\n iconSize: 23,\n lineHeight: 15,\n letterSpacing: 0.5,\n },\n ],\n },\n text: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n weights: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 15,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 15,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 18,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\n },\n ],\n },\n}\n","import {RootTheme, RootTheme_v2} from '../system'\n\n/** @internal */\nexport function is_v0(themeProp: RootTheme | RootTheme_v2): themeProp is RootTheme {\n return themeProp._version === 0\n}\n","import {RootTheme, RootTheme_v2} from '../system'\n\n/** @internal */\nexport function is_v2(themeProp: RootTheme | RootTheme_v2): themeProp is RootTheme_v2 {\n return themeProp._version === 2\n}\n","import {defaultThemeConfig} from '../defaults/config'\nimport {RootTheme, RootTheme_v2} from '../system'\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 avatar,\n button,\n color,\n container,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusRing: _unused_focusRing,\n fonts: font,\n input,\n layer,\n media,\n radius,\n shadows: shadow,\n space,\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 {\n RootTheme,\n RootTheme_v2,\n ThemeColor,\n ThemeColorCard_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState,\n ThemeColorInputState_v2,\n ThemeColorInputStates,\n} from '../system'\n\nconst cache = new WeakMap<RootTheme_v2, RootTheme>()\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 return {\n _version: 0,\n avatar,\n button,\n container,\n color: {\n light: {\n transparent: themeColor_v2_v0(color.light.transparent),\n default: themeColor_v2_v0(color.light.default),\n primary: themeColor_v2_v0(color.light.primary),\n positive: themeColor_v2_v0(color.light.positive),\n caution: themeColor_v2_v0(color.light.caution),\n critical: themeColor_v2_v0(color.light.critical),\n },\n dark: {\n transparent: themeColor_v2_v0(color.dark.transparent),\n default: themeColor_v2_v0(color.dark.default),\n primary: themeColor_v2_v0(color.dark.primary),\n positive: themeColor_v2_v0(color.dark.positive),\n caution: themeColor_v2_v0(color.dark.caution),\n critical: themeColor_v2_v0(color.dark.critical),\n },\n },\n focusRing: input.text.focusRing,\n fonts,\n input,\n media,\n radius,\n shadows,\n space,\n styles,\n\n v2,\n }\n}\n\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\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\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'\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 return THEME_COLOR_BLEND_MODES.includes(str as ThemeColorBlendModeKey)\n}\n\n/** @internal */\nexport function isColorHueKey(str: string): str is ColorHueKey {\n return COLOR_HUES.includes(str as ColorHueKey)\n}\n\n/** @internal */\nexport function isColorTintKey(str: string): str is ColorTintKey {\n return COLOR_TINTS.includes(str as ColorTintKey)\n}\n\n/** @internal */\nexport function isColorButtonMode(str: string): str is ThemeColorButtonModeKey {\n return THEME_COLOR_BUTTON_MODES.includes(str as ThemeColorButtonModeKey)\n}\n","import {ColorHueKey, ColorTintKey} from '@sanity/color'\nimport {\n THEME_COLOR_AVATAR_COLORS,\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_INPUT_MODES,\n THEME_COLOR_INPUT_STATES,\n THEME_COLOR_STATES,\n THEME_COLOR_STATE_TONES,\n ThemeColorBlendModeKey,\n} from '../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 | `${ColorHueKey}`\n | `${ColorHueKey} ${number}%`\n | `${ColorHueKey}/${ColorTintKey}`\n | `${ColorHueKey}/${ColorTintKey} ${number}%`\n | `${ColorHueKey}/${ColorTintKey}/${ColorConfigOpacityValue}`\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 {isColorButtonMode} from '../../system'\nimport {\n isColorConfigBaseKey,\n isColorConfigBaseTone,\n isColorConfigBlendKey,\n isColorConfigStateKey,\n isColorConfigStateTone,\n} from '../helpers'\nimport {TokenKeyNode} from './types'\n\n/** @internal */\nexport function parseTokenKey(str: string): TokenKeyNode | undefined {\n const segments = str.split('/')\n const segment0 = segments.shift() || ''\n\n if (isColorConfigBaseTone(segment0)) {\n const key = segments.join('/')\n\n if (isColorConfigBaseKey(key)) {\n return {\n type: 'base',\n tone: segment0,\n key,\n }\n }\n\n if (isColorConfigBlendKey(key)) {\n return {\n type: 'base',\n tone: segment0,\n key,\n }\n }\n }\n\n if (segment0 === 'button') {\n const segment1 = segments.shift() || ''\n\n if (isColorConfigStateTone(segment1)) {\n const segment2 = segments.shift() || ''\n\n if (isColorButtonMode(segment2)) {\n const key = segments.join('/')\n\n if (isColorConfigStateKey(key)) {\n return {\n type: 'button',\n tone: segment1,\n mode: segment2,\n key,\n }\n }\n\n if (isColorConfigBlendKey(key)) {\n return {\n type: 'button',\n tone: segment1,\n mode: segment2,\n key,\n }\n }\n }\n }\n }\n\n return undefined\n}\n","import {isColorBlendModeValue, isColorHueKey, isColorTintKey} from '../../system'\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 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 {\n COLOR_CONFIG_CARD_KEYS,\n COLOR_CONFIG_CARD_TONES,\n COLOR_CONFIG_BLEND_KEYS,\n COLOR_CONFIG_STATE_KEYS,\n COLOR_CONFIG_STATE_TONES,\n ColorConfigCardKey,\n ColorConfigCardTone,\n ColorConfigBlendKey,\n ColorConfigOpacityValue,\n ColorConfigStateKey,\n ColorConfigStateTone,\n ColorConfigValue,\n} from './system'\nimport {parseTokenValue} from './tokens'\n\n/** @internal */\nexport function isColorConfigBaseTone(str: string): str is ColorConfigCardTone {\n return COLOR_CONFIG_CARD_TONES.includes(str as ColorConfigCardTone)\n}\n\n/** @internal */\nexport function isColorConfigBaseKey(str: string): str is ColorConfigCardKey {\n return COLOR_CONFIG_CARD_KEYS.includes(str as ColorConfigCardKey)\n}\n\n/** @internal */\nexport function isColorConfigStateKey(str: string): str is ColorConfigStateKey {\n return COLOR_CONFIG_STATE_KEYS.includes(str as ColorConfigStateKey)\n}\n\n/** @internal */\nexport function isColorConfigStateTone(str: string): str is ColorConfigStateTone {\n return COLOR_CONFIG_STATE_TONES.includes(str as ColorConfigStateTone)\n}\n\n/** @internal */\nexport function isColorConfigBlendKey(str: string): str is ColorConfigBlendKey {\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 {TokenColorValueNode} from '../../config'\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, parseTokenValue} from '../../config'\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'\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', '950'],\n fg: ['800', '200'],\n icon: ['800 70%', '300 70%'],\n },\n 'pressed': {\n bg: ['100', '900'],\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 const _records = records.filter(Boolean) as T[]\n\n if (_records.length === 0) {\n return {} as T\n }\n\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 ;(acc as any)[key] = merge(prevValue, nextValue)\n } else {\n ;(acc as any)[key] = nextValue\n }\n }\n\n return acc\n}\n","import {COLOR_HUES, ColorHueKey} from '@sanity/color'\nimport {\n ColorConfigCardTone,\n ColorConfigInputMode,\n ColorConfigInputState,\n ColorConfigStateTone,\n ThemeColorAvatarTokens,\n ThemeColorBadgeTokens,\n ThemeColorBaseTokens,\n ThemeColorButtonTokens,\n ThemeColorInputStateTokens,\n ThemeColorInputTokens,\n ThemeColorStateTokens,\n ThemeColorStatesTokens,\n ThemeColorTokens,\n} from '../config'\nimport {defaultColorTokens} from '../defaults/colorTokens'\nimport {\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_BUTTON_MODES,\n THEME_COLOR_INPUT_MODES,\n THEME_COLOR_INPUT_STATES,\n THEME_COLOR_STATES,\n THEME_COLOR_STATE_TONES,\n ThemeColorCardToneKey,\n ThemeColorButtonModeKey,\n ThemeColorStateKey,\n ThemeColorStateToneKey,\n} from '../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 ...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 ...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 ...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 ...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 ...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 ...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, ThemeConfig} from '../config'\nimport {\n THEME_COLOR_BUTTON_MODES,\n THEME_COLOR_STATES,\n THEME_COLOR_STATE_TONES,\n ThemeColorAvatarColorKey,\n ThemeColorCardToneKey,\n ThemeColorButtonModeKey,\n ThemeColorStateKey,\n ThemeColorStateToneKey,\n ThemeColorAvatar_v2,\n ThemeColorBadge_v2,\n ThemeColorSyntax,\n ThemeColorSchemes_v2,\n ThemeColorScheme_v2,\n ThemeColorCard_v2,\n ThemeColorSchemeKey,\n ThemeColorShadow,\n ThemeColorState_v2,\n ThemeColorButton_v2,\n ThemeColorButtonMode_v2,\n ThemeColorButtonTone_v2,\n ThemeColorAvatarHue_v2,\n ThemeColorInput_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n THEME_COLOR_CARD_TONES,\n} from '../system'\nimport {ColorTokenContext, resolveColorTokenValue as _color} from './colorToken'\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 return {\n light: buildColorScheme({scheme: 'light'}, resolvedConfig),\n dark: buildColorScheme({scheme: 'dark'}, resolvedConfig),\n }\n}\n\nfunction buildColorScheme(\n options: {scheme: ThemeColorSchemeKey},\n config: ThemeConfig,\n): ThemeColorScheme_v2 {\n const {scheme} = options\n\n const colorScheme = {} as ThemeColorScheme_v2\n\n for (const tone of THEME_COLOR_CARD_TONES) {\n 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 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 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 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 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 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 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'\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","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","export function lerp(x: number, y: number, a: number): number {\n return x * (1 - a) + y * a\n}\n\nexport function 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'\nimport {RGB, RGBA} from './types'\n\n/** @internal */\nexport function getContrastRatio(bg: string, fg: string): number {\n const rgb1 = parseColor(bg) // bg: RGB | RGBA, fg: RGB | RGBA\n const rgb2 = parseColor(fg)\n\n // convert the two colors from sRGB to linear-light RGB\n const c1 = rgb_lrgb(rgb1)\n const c2 = rgb_lrgb(rgb2)\n\n // compute the relative luminances\n const l1 = lrgb_luminance(c1)\n const l2 = lrgb_luminance(c2)\n\n // compute the contrast ratio\n return (Math.max(l1, l2) + 0.05) / (Math.min(l1, l2) + 0.05)\n}\n\nfunction rgb_lrgb({r, g, b}: RGB | RGBA): [number, number, number] {\n return [rgb_lrgb1(r / 255), rgb_lrgb1(g / 255), rgb_lrgb1(b / 255)]\n}\n\nfunction rgb_lrgb1(v: number) {\n return v <= 0.04045 ? v / 12.92 : ((v + 0.055) / 1.055) ** 2.4\n}\n\nfunction lrgb_luminance([r, g, b]: [number, number, number]) {\n return 0.2126 * r + 0.7152 * g + 0.0722 * b\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, multiply, parseColor, rgbToHex, screen} from './lib/color-fns'\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'\nimport {ThemeColorPalette, parseTokenValue} from '../config'\nimport {ThemeColorBlendModeKey} from '../system'\nimport {hexToRgb, mix, rgbToHex, rgba} from './lib/color-fns'\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 // eslint-disable-next-line no-console\n console.warn('could not blend', hex, mixOptions)\n throw err\n }\n\n if (hex === '#aN') {\n // eslint-disable-next-line no-console\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'\nimport {ThemeColorPalette, ThemeConfig} from '../config'\nimport {defaultColorPalette} from '../defaults/colorPalette'\nimport {\n THEME_COLOR_STATE_TONES,\n ThemeColorAvatar_v2,\n ThemeColorBadgeTone_v2,\n ThemeColorBadge_v2,\n ThemeColorBlendModeKey,\n ThemeColorButtonMode_v2,\n ThemeColorButtonTone_v2,\n ThemeColorButton_v2,\n ThemeColorCardToneKey,\n ThemeColorCard_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n ThemeColorInput_v2,\n ThemeColorKBD,\n ThemeColorScheme_v2,\n ThemeColorSchemes_v2,\n ThemeColorSelectableTone_v2,\n ThemeColorSelectable_v2,\n ThemeColorShadow,\n ThemeColorState_v2,\n ThemeColorSyntax,\n} from '../system'\nimport {RenderColorValueOptions, renderColorValue} from './renderColorValue'\n\nexport function renderThemeColorSchemes(\n value: ThemeColorSchemes_v2,\n config?: ThemeConfig,\n): ThemeColorSchemes_v2 {\n const colorPalette = config?.palette ?? defaultColorPalette\n\n return {\n light: renderThemeColorScheme(colorPalette, value.light),\n dark: renderThemeColorScheme(colorPalette, value.dark),\n }\n}\n\nfunction renderThemeColorScheme(\n colorPalette: ThemeColorPalette,\n value: ThemeColorScheme_v2,\n): ThemeColorScheme_v2 {\n const toneEntries = Object.entries(value) as [ThemeColorCardToneKey, ThemeColorCard_v2][]\n\n const [, transparentTone] = toneEntries.find(([k]) => k === 'transparent')!\n const [, defaultTone] = toneEntries.find(([k]) => k === 'default')!\n\n // The `transparent` and `default` tones are special cases, so we render them first\n // (rendered without a `bg` option).\n // But the rest of the tones are rendered on top of the `default` tone's `bg`.\n const renderedTransparentTone = renderThemeColor(transparentTone, {colorPalette})\n const renderedDefaultTone = renderThemeColor(defaultTone, {colorPalette})\n\n // Get the `default` tone's `bg` property\n const bg = renderedDefaultTone.bg\n\n if (bg === 'white') {\n throw new Error('Cannot blend with white background')\n }\n\n return Object.fromEntries([\n ['transparent', renderedTransparentTone],\n ['default', renderedDefaultTone],\n ...toneEntries\n .filter(([k]) => k !== 'default' && k !== 'transparent')\n .map(([k, v]) => [k, renderThemeColor(v, {bg, colorPalette})]),\n ]) as ThemeColorScheme_v2\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 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 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 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 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'\nimport {defaultThemeConfig} from '../defaults/config'\nimport {defaultThemeFonts} from '../defaults/fonts'\nimport {RootTheme, RootTheme_v2} from '../system'\nimport {v2_v0} from '../versioning'\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 type {ThemeColorCard_v2} from '../system'\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 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 {\n RootTheme,\n RootTheme_v2,\n Theme,\n ThemeColor,\n ThemeColorCardToneKey,\n ThemeColorSchemeKey,\n} from './system'\nimport {is_v2, v0_v2, v2_v0} from './versioning'\nimport {themeColor_v0_v2_9} from './versioning/themeColor_v2_v2_9'\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 const colorScheme_v0 = v0.color[scheme] || v0.color.light\n const color_v0 = (colorScheme_v0 as Record<string, ThemeColor>)[tone] || colorScheme_v0.default\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 const theme: Theme = {\n sanity: {\n ...v0,\n color: color_v0,\n layer: layer_v0,\n v2: {\n ...v2,\n _resolved: true,\n color: color_v2_9,\n layer: layer_v2,\n },\n },\n }\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"],"names":["createSelectableTones","opts","base","dark","solid","muted","default","_createSelectableStates","primary","positive","caution","critical","tone","enabled","selectable","state","hovered","pressed","selected","disabled","createSolidTones","name","transparent","createButtonTones","mode","button","createButtonModes","ghost","bleed","createCardStates","card","black","white","colors","lightest","lighter","light","darker","darkest","spots","gray","red","orange","yellow","green","cyan","blue","purple","magenta","tones","bg","fg","border","focusRing","defaultOpts","shadow","outline","umbra","penumbra","ambient","skeleton","from","to","color","bg2","icon","accent","link","code","input","placeholder","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","createInputModes","readOnly","invalid","createMutedTones","createSpot","createColorTheme","partialOpts","builders","_createColorScheme","_createColor","defaultThemeFonts","family","weights","regular","medium","semibold","bold","sizes","ascenderHeight","descenderHeight","fontSize","iconSize","lineHeight","letterSpacing","heading","label","text","is_v0","themeProp","_version","is_v2","cache","WeakMap","v0_v2","v0","v2","cached_v2","get","avatar","container","_unused_focusRing","fonts","font","layer","media","radius","shadows","space","styles","style","defaultThemeConfig","themeColor_v0_v2","neutral","suggest","checkbox","radio","switch","set","v2_v0","cachedTheme","themeColor_v2_v0","color_v2","_dark","inputStatesThemeColor_v2_v0","t","inputStateThemeColor_v2_v0","THEME_COLOR_SCHEMES","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","isColorBlendModeValue","str","includes","isColorHueKey","isColorTintKey","COLOR_TINTS","isColorButtonMode","COLOR_CONFIG_STATE_KEYS","COLOR_CONFIG_CARD_KEYS","COLOR_CONFIG_BLEND_KEYS","COLOR_CONFIG_AVATAR_COLORS","COLOR_CONFIG_CARD_TONES","COLOR_CONFIG_STATE_TONES","COLOR_CONFIG_STATES","COLOR_CONFIG_INPUT_MODES","COLOR_CONFIG_INPUT_STATES","parseTokenKey","segments","split","segment0","shift","isColorConfigBaseTone","join","isColorConfigBaseKey","type","isColorConfigBlendKey","segment1","isColorConfigStateTone","segment2","isColorConfigStateKey","isColorMixPercentValue","test","parseTokenValue","nextSegment","segment0mix","tint","mix","Number","slice","isColorOpacityValue","opacity","isColorValue","hue","segment1mix","value","isColorTokenValue","compileColorTokenValue","node","undefined","DEFAULT_COLOR_TOKEN_VALUE","resolveColorTokenValue","context","scheme","Error","defaultColorTokens","_blend","backdrop","badge","dot","kbd","_hue","isRecord","Boolean","Array","isArray","merge","records","_records","filter","length","reduce","_merge","acc","source","Object","keys","prevValue","nextValue","resolveColorTokens","inputTokens","tokens","resolveBaseColorTokens","resolveButtonColorTokens","resolveInputColorTokens","resolveSelectableColorTokens","sparseTokens","resolveBaseColorTones","spec","resolveButtonToneColorTokens","resolveButtonModeColorTokens","resolveButtonStateColorTokens","resolveInputModeColorTokens","states","resolveInputStateColorTokens","resolveSelectableToneColorTokens","resolveSelectableStateColorTokens","buildColorTheme","config","resolvedConfig","buildColorScheme","options","colorScheme","buildCardColorTheme","_color","buildAvatarColorTheme","buildBadgeColorTheme","buildButtonColorTheme","buildInputColorTheme","buildSelectableColorTheme","buildShadowColorTheme","buildSyntaxColorTheme","stateTokens","_buildAvatarColorTheme","colorBadge","_buildBadgeColorTheme","parentTokens","cardTone","modes","buildButtonTonesColorTheme","buildButtonStatesColorTheme","buildButtonStateColorTheme","cardTokens","blendMode","buildInputStatesColorTheme","buildInputStateColorTheme","buildSelectableStatesColorTheme","buildSelectableStateColorTheme","defaultColorPalette","mixChannel","b","s","weight","delta","r","g","multiplyChannel","multiply","screenChannel","screen","lerp","x","y","a","invlerp","clamp","min","max","Math","range","x1","y1","x2","y2","round","hexToRgb","hex","hexR","hexG","hexB","parseInt","rgbaToRGBA","rgba","values","replace","parseFloat","rgbToHex","toString","rgbToHsl","cmin","cmax","h","l","abs","toFixed","hslToRgb","hsl","c","m","HEX_CHARS","HSL_RE","isHexChars","indexOf","isHex","parseHsl","res","exec","parseColor","startsWith","getContrastRatio","rgb1","rgb2","c1","rgb_lrgb","c2","l1","lrgb_luminance","l2","rgb_lrgb1","v","rgb","RGB_RANGE","mixThemeColor","paletteRange","convertedBgColor","convertedColor","resultColor","renderColorValue","colorPalette","renderColorHex","hexBeforeMix","mixOptions","err","console","warn","renderThemeColorSchemes","palette","renderThemeColorScheme","toneEntries","entries","transparentTone","find","k","defaultTone","renderedTransparentTone","renderThemeColor","renderedDefaultTone","fromEntries","map","baseBg","colorOptions","renderThemeColorButton","renderThemeColorSelectable","renderThemeColorAvatar","renderThemeColorBadge","renderThemeColorInput","renderThemeColorKBD","renderSyntaxColorTheme","rootOptions","colorAvatar","renderThemeColorAvatarColor","rootBlendMode","renderThemeColorBadgeColor","renderThemeColorButtonTones","colorButtonMode","renderThemeColorButtonStates","renderThemeColorState","renderInputStatesColorTheme","renderInputStateColorTheme","colorSelectable","renderThemeColorSelectableStates","buildTheme","colorTheme","themeColor_v0_v2_9","Map","getScopedTheme","_getCachedTheme","colorScheme_v0","color_v0","layer_v0","colorScheme_v2","color_v2_9","layer_v2","theme","sanity","_resolved","_setCachedTheme","rootTheme","schemeCache","toneCache","has"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theme.mjs","sources":["../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/defaults/fonts.ts","../src/theme/versioning/is_v0.ts","../src/theme/versioning/is_v2.ts","../src/theme/versioning/v0_v2.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/tokens/parseTokenKey.ts","../src/theme/config/tokens/parseTokenValue.ts","../src/theme/config/helpers.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/color-fns/blend/multiply.ts","../src/theme/build/lib/color-fns/blend/screen.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/contrastRatio.ts","../src/theme/build/lib/color-fns/rgba.ts","../src/theme/build/mixThemeColor.ts","../src/theme/build/renderColorValue.ts","../src/theme/build/renderColorTheme.ts","../src/theme/build/buildTheme.ts","../src/theme/versioning/themeColor_v2_v2_9.ts","../src/theme/getScopedTheme.ts"],"sourcesContent":["import {\n ThemeColorBase,\n ThemeColorMuted,\n ThemeColorSelectable,\n ThemeColorSelectableStates,\n ThemeColorSolid,\n} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSelectableTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\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 opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical',\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 {ThemeColorBase, ThemeColorSolid, ThemeColorName} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSolidTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\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 {\n ThemeColorBase,\n ThemeColorButtonModeKey,\n ThemeColorButtonTones,\n ThemeColorMuted,\n ThemeColorSolid,\n} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createButtonTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n mode: ThemeColorButtonModeKey,\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 {\n ThemeColorBase,\n ThemeColorButton,\n ThemeColorMuted,\n ThemeColorSolid,\n} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {createButtonTones} from './createButtonTones'\n\nexport function createButtonModes(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\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 {\n ThemeColorBase,\n ThemeColorCard,\n ThemeColorMuted,\n ThemeColorSolid,\n ThemeColorName,\n} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createCardStates(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\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\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, ThemeColorInput, ThemeColorMuted, ThemeColorSolid} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createInputModes(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\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 {ThemeColorBase, ThemeColorMuted, ThemeColorName} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createMutedTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\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, ThemeColorSpot} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSpot(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\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 {\n ThemeColorGenericState,\n ThemeColorBase,\n ThemeColorButtonModeKey,\n ThemeColorButtonStates,\n ThemeColorInputState,\n ThemeColorMuted,\n ThemeColorMutedTone,\n ThemeColorSolid,\n ThemeColorSolidTone,\n ThemeColorSyntax,\n ThemeColorName,\n ThemeColorScheme,\n ThemeColorSchemes,\n ThemeColor,\n ThemeColorToneKey,\n ThemeColorSpotKey,\n} from '../../../system'\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 base: (opts: {dark: boolean; name: ThemeColorName}) => ThemeColorBase\n solid: (opts: {\n base: ThemeColorBase\n dark: boolean\n tone: ThemeColorName\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n muted: (opts: {\n base: ThemeColorBase\n dark: boolean\n tone: ThemeColorToneKey\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n card: (opts: {\n base: ThemeColorBase\n dark: boolean\n muted: ThemeColorMuted\n name: ThemeColorName\n solid: ThemeColorSolid\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n button: (opts: {\n dark: boolean\n mode: ThemeColorButtonModeKey\n base: ThemeColorBase\n solid: ThemeColorSolidTone\n muted: ThemeColorMutedTone\n }) => ThemeColorButtonStates\n input: (opts: {\n base: ThemeColorBase\n solid: ThemeColorSolidTone\n muted: ThemeColorMutedTone\n dark: boolean\n mode: 'default' | 'invalid'\n state: 'enabled' | 'disabled' | 'hovered' | 'readOnly'\n }) => ThemeColorInputState\n selectable: (opts: {\n dark: boolean\n base: ThemeColorBase\n solid: ThemeColorSolid\n muted: ThemeColorMuted\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical'\n }) => ThemeColorGenericState\n syntax: (opts: {base: ThemeColorBase; dark: boolean}) => ThemeColorSyntax\n spot: (opts: {base: ThemeColorBase; dark: boolean; key: ThemeColorSpotKey}) => string\n}\n\n/**\n * @public\n * @deprecated Use `ThemeConfig` instead.\n */\nexport type PartialThemeColorBuilderOpts = Partial<ThemeColorBuilderOpts>\n\n/**\n * @public\n * @deprecated Use `buildColorTheme` instead.\n */\nexport function createColorTheme(\n partialOpts: PartialThemeColorBuilderOpts = {},\n): ThemeColorSchemes {\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 */\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 opts: ThemeColorBuilderOpts,\n dark: boolean,\n name: ThemeColorName,\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 {ThemeFonts} from '../system'\n\nexport const defaultThemeFonts: ThemeFonts = {\n code: {\n family: 'ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace',\n weights: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 15,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 19,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 22,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\n },\n ],\n },\n heading: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n weights: {\n regular: 700,\n medium: 800,\n semibold: 900,\n bold: 900,\n },\n sizes: [\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 17,\n lineHeight: 19,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 29,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 27,\n iconSize: 41,\n lineHeight: 35,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 9.5,\n descenderHeight: 8.5,\n fontSize: 33,\n iconSize: 49,\n lineHeight: 41,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 10.5,\n descenderHeight: 9.5,\n fontSize: 38,\n iconSize: 53,\n lineHeight: 47,\n letterSpacing: 0,\n },\n ],\n },\n label: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", system-ui, sans-serif',\n weights: {\n regular: 600,\n medium: 700,\n semibold: 800,\n bold: 900,\n },\n sizes: [\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 8.1,\n iconSize: 13,\n lineHeight: 10,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 9.5,\n iconSize: 15,\n lineHeight: 11,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 10.8,\n iconSize: 17,\n lineHeight: 12,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 12.25,\n iconSize: 19,\n lineHeight: 13,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 13.6,\n iconSize: 21,\n lineHeight: 14,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 15,\n iconSize: 23,\n lineHeight: 15,\n letterSpacing: 0.5,\n },\n ],\n },\n text: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n weights: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 15,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 15,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 18,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\n },\n ],\n },\n}\n","import {RootTheme, RootTheme_v2} from '../system'\n\n/** @internal */\nexport function is_v0(themeProp: RootTheme | RootTheme_v2): themeProp is RootTheme {\n return themeProp._version === 0\n}\n","import {RootTheme, RootTheme_v2} from '../system'\n\n/** @internal */\nexport function is_v2(themeProp: RootTheme | RootTheme_v2): themeProp is RootTheme_v2 {\n return themeProp._version === 2\n}\n","import {defaultThemeConfig} from '../defaults/config'\nimport {RootTheme, RootTheme_v2} from '../system'\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 avatar,\n button,\n color,\n container,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusRing: _unused_focusRing,\n fonts: font,\n input,\n layer,\n media,\n radius,\n shadows: shadow,\n space,\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 {\n RootTheme,\n RootTheme_v2,\n ThemeColor,\n ThemeColorCard_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState,\n ThemeColorInputState_v2,\n ThemeColorInputStates,\n} from '../system'\n\nconst cache = new WeakMap<RootTheme_v2, RootTheme>()\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 return {\n _version: 0,\n avatar,\n button,\n container,\n color: {\n light: {\n transparent: themeColor_v2_v0(color.light.transparent),\n default: themeColor_v2_v0(color.light.default),\n primary: themeColor_v2_v0(color.light.primary),\n positive: themeColor_v2_v0(color.light.positive),\n caution: themeColor_v2_v0(color.light.caution),\n critical: themeColor_v2_v0(color.light.critical),\n },\n dark: {\n transparent: themeColor_v2_v0(color.dark.transparent),\n default: themeColor_v2_v0(color.dark.default),\n primary: themeColor_v2_v0(color.dark.primary),\n positive: themeColor_v2_v0(color.dark.positive),\n caution: themeColor_v2_v0(color.dark.caution),\n critical: themeColor_v2_v0(color.dark.critical),\n },\n },\n focusRing: input.text.focusRing,\n fonts,\n input,\n media,\n radius,\n shadows,\n space,\n styles,\n\n v2,\n }\n}\n\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\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\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'\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 return THEME_COLOR_BLEND_MODES.includes(str as ThemeColorBlendModeKey)\n}\n\n/** @internal */\nexport function isColorHueKey(str: string): str is ColorHueKey {\n return COLOR_HUES.includes(str as ColorHueKey)\n}\n\n/** @internal */\nexport function isColorTintKey(str: string): str is ColorTintKey {\n return COLOR_TINTS.includes(str as ColorTintKey)\n}\n\n/** @internal */\nexport function isColorButtonMode(str: string): str is ThemeColorButtonModeKey {\n return THEME_COLOR_BUTTON_MODES.includes(str as ThemeColorButtonModeKey)\n}\n","import {ColorHueKey, ColorTintKey} from '@sanity/color'\nimport {\n THEME_COLOR_AVATAR_COLORS,\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_INPUT_MODES,\n THEME_COLOR_INPUT_STATES,\n THEME_COLOR_STATES,\n THEME_COLOR_STATE_TONES,\n ThemeColorBlendModeKey,\n} from '../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 | `${ColorHueKey}`\n | `${ColorHueKey} ${number}%`\n | `${ColorHueKey}/${ColorTintKey}`\n | `${ColorHueKey}/${ColorTintKey} ${number}%`\n | `${ColorHueKey}/${ColorTintKey}/${ColorConfigOpacityValue}`\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 {isColorButtonMode} from '../../system'\nimport {\n isColorConfigBaseKey,\n isColorConfigBaseTone,\n isColorConfigBlendKey,\n isColorConfigStateKey,\n isColorConfigStateTone,\n} from '../helpers'\nimport {TokenKeyNode} from './types'\n\n/** @internal */\nexport function parseTokenKey(str: string): TokenKeyNode | undefined {\n const segments = str.split('/')\n const segment0 = segments.shift() || ''\n\n if (isColorConfigBaseTone(segment0)) {\n const key = segments.join('/')\n\n if (isColorConfigBaseKey(key)) {\n return {\n type: 'base',\n tone: segment0,\n key,\n }\n }\n\n if (isColorConfigBlendKey(key)) {\n return {\n type: 'base',\n tone: segment0,\n key,\n }\n }\n }\n\n if (segment0 === 'button') {\n const segment1 = segments.shift() || ''\n\n if (isColorConfigStateTone(segment1)) {\n const segment2 = segments.shift() || ''\n\n if (isColorButtonMode(segment2)) {\n const key = segments.join('/')\n\n if (isColorConfigStateKey(key)) {\n return {\n type: 'button',\n tone: segment1,\n mode: segment2,\n key,\n }\n }\n\n if (isColorConfigBlendKey(key)) {\n return {\n type: 'button',\n tone: segment1,\n mode: segment2,\n key,\n }\n }\n }\n }\n }\n\n return undefined\n}\n","import {isColorBlendModeValue, isColorHueKey, isColorTintKey} from '../../system'\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 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 {\n COLOR_CONFIG_CARD_KEYS,\n COLOR_CONFIG_CARD_TONES,\n COLOR_CONFIG_BLEND_KEYS,\n COLOR_CONFIG_STATE_KEYS,\n COLOR_CONFIG_STATE_TONES,\n ColorConfigCardKey,\n ColorConfigCardTone,\n ColorConfigBlendKey,\n ColorConfigOpacityValue,\n ColorConfigStateKey,\n ColorConfigStateTone,\n ColorConfigValue,\n} from './system'\nimport {parseTokenValue} from './tokens'\n\n/** @internal */\nexport function isColorConfigBaseTone(str: string): str is ColorConfigCardTone {\n return COLOR_CONFIG_CARD_TONES.includes(str as ColorConfigCardTone)\n}\n\n/** @internal */\nexport function isColorConfigBaseKey(str: string): str is ColorConfigCardKey {\n return COLOR_CONFIG_CARD_KEYS.includes(str as ColorConfigCardKey)\n}\n\n/** @internal */\nexport function isColorConfigStateKey(str: string): str is ColorConfigStateKey {\n return COLOR_CONFIG_STATE_KEYS.includes(str as ColorConfigStateKey)\n}\n\n/** @internal */\nexport function isColorConfigStateTone(str: string): str is ColorConfigStateTone {\n return COLOR_CONFIG_STATE_TONES.includes(str as ColorConfigStateTone)\n}\n\n/** @internal */\nexport function isColorConfigBlendKey(str: string): str is ColorConfigBlendKey {\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 {TokenColorValueNode} from '../../config'\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, parseTokenValue} from '../../config'\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'\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', '950'],\n fg: ['800', '200'],\n icon: ['800 70%', '300 70%'],\n },\n 'pressed': {\n bg: ['100', '900'],\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 const _records = records.filter(Boolean) as T[]\n\n if (_records.length === 0) {\n return {} as T\n }\n\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 ;(acc as any)[key] = merge(prevValue, nextValue)\n } else {\n ;(acc as any)[key] = nextValue\n }\n }\n\n return acc\n}\n","import {COLOR_HUES, ColorHueKey} from '@sanity/color'\nimport {\n ColorConfigCardTone,\n ColorConfigInputMode,\n ColorConfigInputState,\n ColorConfigStateTone,\n ThemeColorAvatarTokens,\n ThemeColorBadgeTokens,\n ThemeColorBaseTokens,\n ThemeColorButtonTokens,\n ThemeColorInputStateTokens,\n ThemeColorInputTokens,\n ThemeColorStateTokens,\n ThemeColorStatesTokens,\n ThemeColorTokens,\n} from '../config'\nimport {defaultColorTokens} from '../defaults/colorTokens'\nimport {\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_BUTTON_MODES,\n THEME_COLOR_INPUT_MODES,\n THEME_COLOR_INPUT_STATES,\n THEME_COLOR_STATES,\n THEME_COLOR_STATE_TONES,\n ThemeColorCardToneKey,\n ThemeColorButtonModeKey,\n ThemeColorStateKey,\n ThemeColorStateToneKey,\n} from '../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 ...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 ...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 ...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 ...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 ...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 ...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, ThemeConfig} from '../config'\nimport {\n THEME_COLOR_BUTTON_MODES,\n THEME_COLOR_STATES,\n THEME_COLOR_STATE_TONES,\n ThemeColorAvatarColorKey,\n ThemeColorCardToneKey,\n ThemeColorButtonModeKey,\n ThemeColorStateKey,\n ThemeColorStateToneKey,\n ThemeColorAvatar_v2,\n ThemeColorBadge_v2,\n ThemeColorSyntax,\n ThemeColorSchemes_v2,\n ThemeColorScheme_v2,\n ThemeColorCard_v2,\n ThemeColorSchemeKey,\n ThemeColorShadow,\n ThemeColorState_v2,\n ThemeColorButton_v2,\n ThemeColorButtonMode_v2,\n ThemeColorButtonTone_v2,\n ThemeColorAvatarHue_v2,\n ThemeColorInput_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n THEME_COLOR_CARD_TONES,\n} from '../system'\nimport {ColorTokenContext, resolveColorTokenValue as _color} from './colorToken'\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 return {\n light: buildColorScheme({scheme: 'light'}, resolvedConfig),\n dark: buildColorScheme({scheme: 'dark'}, resolvedConfig),\n }\n}\n\nfunction buildColorScheme(\n options: {scheme: ThemeColorSchemeKey},\n config: ThemeConfig,\n): ThemeColorScheme_v2 {\n const {scheme} = options\n\n const colorScheme = {} as ThemeColorScheme_v2\n\n for (const tone of THEME_COLOR_CARD_TONES) {\n 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 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 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 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 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 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 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'\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","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","export function lerp(x: number, y: number, a: number): number {\n return x * (1 - a) + y * a\n}\n\nexport function 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'\nimport {RGB, RGBA} from './types'\n\n/** @internal */\nexport function getContrastRatio(bg: string, fg: string): number {\n const rgb1 = parseColor(bg) // bg: RGB | RGBA, fg: RGB | RGBA\n const rgb2 = parseColor(fg)\n\n // convert the two colors from sRGB to linear-light RGB\n const c1 = rgb_lrgb(rgb1)\n const c2 = rgb_lrgb(rgb2)\n\n // compute the relative luminances\n const l1 = lrgb_luminance(c1)\n const l2 = lrgb_luminance(c2)\n\n // compute the contrast ratio\n return (Math.max(l1, l2) + 0.05) / (Math.min(l1, l2) + 0.05)\n}\n\nfunction rgb_lrgb({r, g, b}: RGB | RGBA): [number, number, number] {\n return [rgb_lrgb1(r / 255), rgb_lrgb1(g / 255), rgb_lrgb1(b / 255)]\n}\n\nfunction rgb_lrgb1(v: number) {\n return v <= 0.04045 ? v / 12.92 : ((v + 0.055) / 1.055) ** 2.4\n}\n\nfunction lrgb_luminance([r, g, b]: [number, number, number]) {\n return 0.2126 * r + 0.7152 * g + 0.0722 * b\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, multiply, parseColor, rgbToHex, screen} from './lib/color-fns'\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'\nimport {ThemeColorPalette, parseTokenValue} from '../config'\nimport {ThemeColorBlendModeKey} from '../system'\nimport {hexToRgb, mix, rgbToHex, rgba} from './lib/color-fns'\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 // eslint-disable-next-line no-console\n console.warn('could not blend', hex, mixOptions)\n throw err\n }\n\n if (hex === '#aN') {\n // eslint-disable-next-line no-console\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'\nimport {ThemeColorPalette, ThemeConfig} from '../config'\nimport {defaultColorPalette} from '../defaults/colorPalette'\nimport {\n THEME_COLOR_STATE_TONES,\n ThemeColorAvatar_v2,\n ThemeColorBadgeTone_v2,\n ThemeColorBadge_v2,\n ThemeColorBlendModeKey,\n ThemeColorButtonMode_v2,\n ThemeColorButtonTone_v2,\n ThemeColorButton_v2,\n ThemeColorCardToneKey,\n ThemeColorCard_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n ThemeColorInput_v2,\n ThemeColorKBD,\n ThemeColorScheme_v2,\n ThemeColorSchemes_v2,\n ThemeColorSelectableTone_v2,\n ThemeColorSelectable_v2,\n ThemeColorShadow,\n ThemeColorState_v2,\n ThemeColorSyntax,\n} from '../system'\nimport {RenderColorValueOptions, renderColorValue} from './renderColorValue'\n\nexport function renderThemeColorSchemes(\n value: ThemeColorSchemes_v2,\n config?: ThemeConfig,\n): ThemeColorSchemes_v2 {\n const colorPalette = config?.palette ?? defaultColorPalette\n\n return {\n light: renderThemeColorScheme(colorPalette, value.light),\n dark: renderThemeColorScheme(colorPalette, value.dark),\n }\n}\n\nfunction renderThemeColorScheme(\n colorPalette: ThemeColorPalette,\n value: ThemeColorScheme_v2,\n): ThemeColorScheme_v2 {\n const toneEntries = Object.entries(value) as [ThemeColorCardToneKey, ThemeColorCard_v2][]\n\n const [, transparentTone] = toneEntries.find(([k]) => k === 'transparent')!\n const [, defaultTone] = toneEntries.find(([k]) => k === 'default')!\n\n // The `transparent` and `default` tones are special cases, so we render them first\n // (rendered without a `bg` option).\n // But the rest of the tones are rendered on top of the `default` tone's `bg`.\n const renderedTransparentTone = renderThemeColor(transparentTone, {colorPalette})\n const renderedDefaultTone = renderThemeColor(defaultTone, {colorPalette})\n\n // Get the `default` tone's `bg` property\n const bg = renderedDefaultTone.bg\n\n if (bg === 'white') {\n throw new Error('Cannot blend with white background')\n }\n\n return Object.fromEntries([\n ['transparent', renderedTransparentTone],\n ['default', renderedDefaultTone],\n ...toneEntries\n .filter(([k]) => k !== 'default' && k !== 'transparent')\n .map(([k, v]) => [k, renderThemeColor(v, {bg, colorPalette})]),\n ]) as ThemeColorScheme_v2\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 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 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 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 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'\nimport {defaultThemeConfig} from '../defaults/config'\nimport {defaultThemeFonts} from '../defaults/fonts'\nimport {RootTheme, RootTheme_v2} from '../system'\nimport {v2_v0} from '../versioning'\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 type {ThemeColorCard_v2} from '../system'\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 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 {\n RootTheme,\n RootTheme_v2,\n Theme,\n ThemeColor,\n ThemeColorCardToneKey,\n ThemeColorSchemeKey,\n} from './system'\nimport {is_v2, v0_v2, v2_v0} from './versioning'\nimport {themeColor_v0_v2_9} from './versioning/themeColor_v2_v2_9'\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 const colorScheme_v0 = v0.color[scheme] || v0.color.light\n const color_v0 = (colorScheme_v0 as Record<string, ThemeColor>)[tone] || colorScheme_v0.default\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 const theme: Theme = {\n sanity: {\n ...v0,\n color: color_v0,\n layer: layer_v0,\n v2: {\n ...v2,\n _resolved: true,\n color: color_v2_9,\n layer: layer_v2,\n },\n },\n }\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"],"names":["createSelectableTones","opts","base","dark","solid","muted","default","_createSelectableStates","primary","positive","caution","critical","tone","enabled","selectable","state","hovered","pressed","selected","disabled","createSolidTones","name","transparent","createButtonTones","mode","button","createButtonModes","ghost","bleed","createCardStates","card","black","white","colors","lightest","lighter","light","darker","darkest","spots","gray","red","orange","yellow","green","cyan","blue","purple","magenta","tones","bg","fg","border","focusRing","defaultOpts","shadow","outline","umbra","penumbra","ambient","skeleton","from","to","color","bg2","icon","accent","link","code","input","placeholder","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","createInputModes","readOnly","invalid","createMutedTones","createSpot","createColorTheme","partialOpts","builders","_createColorScheme","_createColor","defaultThemeFonts","family","weights","regular","medium","semibold","bold","sizes","ascenderHeight","descenderHeight","fontSize","iconSize","lineHeight","letterSpacing","heading","label","text","is_v0","themeProp","_version","is_v2","cache","WeakMap","v0_v2","v0","v2","cached_v2","get","avatar","container","fonts","font","layer","media","radius","shadows","space","styles","style","defaultThemeConfig","themeColor_v0_v2","neutral","suggest","checkbox","radio","switch","set","v2_v0","cachedTheme","themeColor_v2_v0","color_v2","_dark","inputStatesThemeColor_v2_v0","t","inputStateThemeColor_v2_v0","THEME_COLOR_SCHEMES","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","isColorBlendModeValue","str","includes","isColorHueKey","isColorTintKey","COLOR_TINTS","isColorButtonMode","COLOR_CONFIG_STATE_KEYS","COLOR_CONFIG_CARD_KEYS","COLOR_CONFIG_BLEND_KEYS","COLOR_CONFIG_AVATAR_COLORS","COLOR_CONFIG_CARD_TONES","COLOR_CONFIG_STATE_TONES","COLOR_CONFIG_STATES","COLOR_CONFIG_INPUT_MODES","COLOR_CONFIG_INPUT_STATES","parseTokenKey","segments","split","segment0","shift","isColorConfigBaseTone","join","isColorConfigBaseKey","type","isColorConfigBlendKey","segment1","isColorConfigStateTone","segment2","isColorConfigStateKey","isColorMixPercentValue","test","parseTokenValue","nextSegment","segment0mix","tint","mix","Number","slice","isColorOpacityValue","opacity","isColorValue","hue","segment1mix","value","isColorTokenValue","compileColorTokenValue","node","undefined","DEFAULT_COLOR_TOKEN_VALUE","resolveColorTokenValue","context","scheme","Error","defaultColorTokens","_blend","backdrop","badge","dot","kbd","_hue","isRecord","Boolean","Array","isArray","merge","records","_records","filter","length","reduce","_merge","acc","source","Object","keys","prevValue","nextValue","resolveColorTokens","inputTokens","tokens","resolveBaseColorTokens","resolveButtonColorTokens","resolveInputColorTokens","resolveSelectableColorTokens","sparseTokens","resolveBaseColorTones","spec","resolveButtonToneColorTokens","resolveButtonModeColorTokens","resolveButtonStateColorTokens","resolveInputModeColorTokens","states","resolveInputStateColorTokens","resolveSelectableToneColorTokens","resolveSelectableStateColorTokens","buildColorTheme","config","resolvedConfig","buildColorScheme","options","colorScheme","buildCardColorTheme","_color","buildAvatarColorTheme","buildBadgeColorTheme","buildButtonColorTheme","buildInputColorTheme","buildSelectableColorTheme","buildShadowColorTheme","buildSyntaxColorTheme","stateTokens","_buildAvatarColorTheme","colorBadge","_buildBadgeColorTheme","parentTokens","cardTone","modes","buildButtonTonesColorTheme","buildButtonStatesColorTheme","buildButtonStateColorTheme","cardTokens","blendMode","buildInputStatesColorTheme","buildInputStateColorTheme","buildSelectableStatesColorTheme","buildSelectableStateColorTheme","defaultColorPalette","mixChannel","b","s","weight","delta","r","g","multiplyChannel","multiply","screenChannel","screen","lerp","x","y","a","invlerp","clamp","min","max","Math","range","x1","y1","x2","y2","round","hexToRgb","hex","hexR","hexG","hexB","parseInt","rgbaToRGBA","rgba","values","replace","parseFloat","rgbToHex","toString","rgbToHsl","cmin","cmax","h","l","abs","toFixed","hslToRgb","hsl","c","m","HEX_CHARS","HSL_RE","isHexChars","indexOf","isHex","parseHsl","res","exec","parseColor","startsWith","getContrastRatio","rgb1","rgb2","c1","rgb_lrgb","c2","l1","lrgb_luminance","l2","rgb_lrgb1","v","rgb","RGB_RANGE","mixThemeColor","paletteRange","convertedBgColor","convertedColor","resultColor","renderColorValue","colorPalette","renderColorHex","hexBeforeMix","mixOptions","err","console","warn","renderThemeColorSchemes","palette","renderThemeColorScheme","toneEntries","entries","transparentTone","find","k","defaultTone","renderedTransparentTone","renderThemeColor","renderedDefaultTone","fromEntries","map","baseBg","colorOptions","renderThemeColorButton","renderThemeColorSelectable","renderThemeColorAvatar","renderThemeColorBadge","renderThemeColorInput","renderThemeColorKBD","renderSyntaxColorTheme","rootOptions","colorAvatar","renderThemeColorAvatarColor","rootBlendMode","renderThemeColorBadgeColor","renderThemeColorButtonTones","colorButtonMode","renderThemeColorButtonStates","renderThemeColorState","renderInputStatesColorTheme","renderInputStateColorTheme","colorSelectable","renderThemeColorSelectableStates","buildTheme","colorTheme","themeColor_v0_v2_9","Map","getScopedTheme","_getCachedTheme","colorScheme_v0","color_v0","layer_v0","colorScheme_v2","color_v2_9","layer_v2","theme","sanity","_resolved","_setCachedTheme","rootTheme","schemeCache","toneCache","has"],"mappings":"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"}
|