{"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/config.ts","../src/theme/defaults/fonts.ts","../src/theme/versioning/themeColor_v0_v2.ts","../src/theme/versioning/getTheme_v2.ts","../src/theme/versioning/is_v0.ts","../src/theme/versioning/is_v2.ts","../src/theme/versioning/v0_v2.ts","../src/theme/build/lib/lazy.ts","../src/theme/versioning/v2_v0.ts","../src/theme/system/color/_constants.ts","../src/theme/system/color/_helpers.ts","../src/theme/config/system.ts","../src/theme/config/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, ThemeColorName, ThemeColorSolid} 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  ThemeColorName,\n  ThemeColorSolid,\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  ThemeColor,\n  ThemeColorBase,\n  ThemeColorButtonModeKey,\n  ThemeColorButtonStates,\n  ThemeColorGenericState,\n  ThemeColorInputState,\n  ThemeColorMuted,\n  ThemeColorMutedTone,\n  ThemeColorName,\n  ThemeColorScheme,\n  ThemeColorSchemes,\n  ThemeColorSolid,\n  ThemeColorSolidTone,\n  ThemeColorSpotKey,\n  ThemeColorSyntax,\n  ThemeColorToneKey,\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 {RootTheme_v2} from '../system'\n\nconst BORDER_WIDTH = 1\nconst OUTLINE_WIDTH = 0.5\n\nexport const defaultThemeConfig: Omit<RootTheme_v2, 'color' | 'font'> = {\n  _version: 2,\n  avatar: {\n    sizes: [\n      {distance: -4, size: 19},\n      {distance: -4, size: 25},\n      {distance: -8, size: 33},\n      {distance: -12, size: 49},\n    ],\n    focusRing: {offset: 1, width: 1},\n  },\n  button: {\n    textWeight: 'medium',\n    border: {width: BORDER_WIDTH},\n    focusRing: {offset: -1, width: 1},\n  },\n  card: {\n    border: {width: BORDER_WIDTH},\n    focusRing: {offset: -1, width: 1},\n    shadow: {outline: OUTLINE_WIDTH},\n  },\n  container: [320, 640, 960, 1280, 1600, 1920],\n  media: [360, 600, 900, 1200, 1800, 2400],\n  layer: {\n    dialog: {zOffset: 600},\n    popover: {zOffset: 400},\n    tooltip: {zOffset: 200},\n  },\n  radius: [0, 1, 3, 6, 9, 12, 21],\n  shadow: [\n    null,\n    {umbra: [0, 0, 0, 0], penumbra: [0, 0, 0, 0], ambient: [0, 0, 0, 0]},\n    {umbra: [0, 3, 5, -2], penumbra: [0, 6, 10, 0], ambient: [0, 1, 18, 1]},\n    {umbra: [0, 7, 8, -4], penumbra: [0, 12, 17, 2], ambient: [0, 5, 22, 4]},\n    {umbra: [0, 9, 11, -5], penumbra: [0, 18, 28, 2], ambient: [0, 7, 34, 6]},\n    {umbra: [0, 11, 15, -7], penumbra: [0, 24, 38, 3], ambient: [0, 9, 46, 8]},\n  ],\n  space: [0, 4, 8, 12, 20, 32, 52, 84, 136, 220],\n  input: {\n    border: {\n      width: BORDER_WIDTH,\n    },\n    checkbox: {\n      size: 17,\n      focusRing: {offset: -1, width: 1},\n    },\n    radio: {\n      size: 17,\n      markSize: 9,\n      focusRing: {offset: -1, width: 1},\n    },\n    switch: {\n      width: 25,\n      height: 17,\n      padding: 5,\n      transitionDurationMs: 150,\n      transitionTimingFunction: 'ease-out',\n      focusRing: {offset: 1, width: 1},\n    },\n    select: {\n      focusRing: {offset: -1, width: 1},\n    },\n    text: {\n      focusRing: {offset: -1, width: 1},\n    },\n  },\n  style: {\n    button: {\n      root: {\n        transition: 'background-color 100ms,border-color 100ms,color 100ms',\n      },\n    },\n    // card: {\n    //   root: {\n    //     transition: 'background-color 100ms,border-color 100ms,color 100ms',\n    //   },\n    // },\n  },\n}\n","import {ThemeFonts} from '../system'\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 {\n  ThemeColor,\n  ThemeColorCard_v2,\n  ThemeColorGenericState,\n  ThemeColorInputMode_v2,\n  ThemeColorInputState,\n  ThemeColorInputState_v2,\n  ThemeColorInputStates,\n  ThemeColorMuted,\n  ThemeColorSelectable_v2,\n  ThemeColorState_v2,\n} from '../system'\n\nconst cache = new WeakMap<ThemeColor, ThemeColorCard_v2>()\n\n/** @internal */\nexport function themeColor_v0_v2(color_v0: ThemeColor): ThemeColorCard_v2 {\n  const cached_v2 = cache.get(color_v0)\n\n  if (cached_v2) return cached_v2\n\n  const base = stateThemeColor_v0_v2(color_v0, color_v0.card.enabled)\n\n  const color_v2: ThemeColorCard_v2 = {\n    _blend: color_v0._blend || (color_v0.dark ? 'screen' : 'multiply'),\n    _dark: color_v0.dark,\n    accent: base.accent,\n    avatar: base.avatar,\n    backdrop: color_v0.base.shadow.ambient,\n    badge: base.badge,\n    bg: color_v0.base.bg,\n    border: color_v0.base.border,\n    button: {\n      default: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.default),\n      ghost: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.ghost),\n      bleed: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.bleed),\n    },\n    code: base.code,\n    fg: color_v0.base.fg,\n    focusRing: color_v0.base.focusRing,\n    icon: base.muted.fg,\n    input: {\n      default: inputStatesThemeColor_v0_v2(color_v0.input.default),\n      invalid: inputStatesThemeColor_v0_v2(color_v0.input.invalid),\n    },\n    kbd: base.kbd,\n    link: base.link,\n    muted: {\n      ...base.muted,\n      bg: color_v0.selectable?.default.enabled.bg2 || color_v0.base.bg,\n    },\n    selectable: stateTonesThemeColor_v0_v2(color_v0, color_v0.selectable || color_v0.muted),\n    shadow: color_v0.base.shadow,\n    skeleton: {\n      from: color_v0.skeleton?.from || color_v0.base.border,\n      to: color_v0.skeleton?.to || color_v0.base.border,\n    },\n    syntax: color_v0.syntax,\n  }\n\n  cache.set(color_v0, color_v2)\n\n  return color_v2\n}\n\nfunction stateTonesThemeColor_v0_v2(\n  v0: ThemeColor,\n  t: Omit<ThemeColorMuted, 'transparent'>,\n): ThemeColorSelectable_v2 {\n  return {\n    default: {\n      enabled: stateThemeColor_v0_v2(v0, t.default.enabled),\n      hovered: stateThemeColor_v0_v2(v0, t.default.hovered),\n      pressed: stateThemeColor_v0_v2(v0, t.default.pressed),\n      selected: stateThemeColor_v0_v2(v0, t.default.selected),\n      disabled: stateThemeColor_v0_v2(v0, t.default.disabled),\n    },\n    neutral: {\n      enabled: stateThemeColor_v0_v2(v0, t.default.enabled),\n      hovered: stateThemeColor_v0_v2(v0, t.default.hovered),\n      pressed: stateThemeColor_v0_v2(v0, t.default.pressed),\n      selected: stateThemeColor_v0_v2(v0, t.default.selected),\n      disabled: stateThemeColor_v0_v2(v0, t.default.disabled),\n    },\n    primary: {\n      enabled: stateThemeColor_v0_v2(v0, t.primary.enabled),\n      hovered: stateThemeColor_v0_v2(v0, t.primary.hovered),\n      pressed: stateThemeColor_v0_v2(v0, t.primary.pressed),\n      selected: stateThemeColor_v0_v2(v0, t.primary.selected),\n      disabled: stateThemeColor_v0_v2(v0, t.primary.disabled),\n    },\n    suggest: {\n      enabled: stateThemeColor_v0_v2(v0, t.primary.enabled),\n      hovered: stateThemeColor_v0_v2(v0, t.primary.hovered),\n      pressed: stateThemeColor_v0_v2(v0, t.primary.pressed),\n      selected: stateThemeColor_v0_v2(v0, t.primary.selected),\n      disabled: stateThemeColor_v0_v2(v0, t.primary.disabled),\n    },\n    positive: {\n      enabled: stateThemeColor_v0_v2(v0, t.positive.enabled),\n      hovered: stateThemeColor_v0_v2(v0, t.positive.hovered),\n      pressed: stateThemeColor_v0_v2(v0, t.positive.pressed),\n      selected: stateThemeColor_v0_v2(v0, t.positive.selected),\n      disabled: stateThemeColor_v0_v2(v0, t.positive.disabled),\n    },\n    caution: {\n      enabled: stateThemeColor_v0_v2(v0, t.caution.enabled),\n      hovered: stateThemeColor_v0_v2(v0, t.caution.hovered),\n      pressed: stateThemeColor_v0_v2(v0, t.caution.pressed),\n      selected: stateThemeColor_v0_v2(v0, t.caution.selected),\n      disabled: stateThemeColor_v0_v2(v0, t.caution.disabled),\n    },\n    critical: {\n      enabled: stateThemeColor_v0_v2(v0, t.critical.enabled),\n      hovered: stateThemeColor_v0_v2(v0, t.critical.hovered),\n      pressed: stateThemeColor_v0_v2(v0, t.critical.pressed),\n      selected: stateThemeColor_v0_v2(v0, t.critical.selected),\n      disabled: stateThemeColor_v0_v2(v0, t.critical.disabled),\n    },\n  }\n}\n\nfunction stateThemeColor_v0_v2(v0: ThemeColor, state: ThemeColorGenericState): ThemeColorState_v2 {\n  return {\n    ...state,\n    avatar: {\n      gray: {\n        bg: v0.spot.gray,\n        fg: v0.base.bg,\n      },\n      blue: {\n        bg: v0.spot.blue,\n        fg: v0.base.bg,\n      },\n      purple: {\n        bg: v0.spot.purple,\n        fg: v0.base.bg,\n      },\n      magenta: {\n        bg: v0.spot.magenta,\n        fg: v0.base.bg,\n      },\n      red: {\n        bg: v0.spot.red,\n        fg: v0.base.bg,\n      },\n      orange: {\n        bg: v0.spot.orange,\n        fg: v0.base.bg,\n      },\n      yellow: {\n        bg: v0.spot.yellow,\n        fg: v0.base.bg,\n      },\n      green: {\n        bg: v0.spot.green,\n        fg: v0.base.bg,\n      },\n      cyan: {\n        bg: v0.spot.cyan,\n        fg: v0.base.bg,\n      },\n    },\n    badge: {\n      default: {\n        bg: v0.muted.default.enabled.bg,\n        fg: v0.muted.default.enabled.fg,\n        dot: v0.muted.default.enabled.muted.fg,\n        icon: v0.muted.default.enabled.muted.fg,\n      },\n      neutral: {\n        bg: v0.muted.transparent.enabled.bg,\n        fg: v0.muted.transparent.enabled.fg,\n        dot: v0.muted.transparent.enabled.muted.fg,\n        icon: v0.muted.transparent.enabled.muted.fg,\n      },\n      primary: {\n        bg: v0.muted.primary.enabled.bg,\n        fg: v0.muted.primary.enabled.fg,\n        dot: v0.muted.primary.enabled.muted.fg,\n        icon: v0.muted.primary.enabled.muted.fg,\n      },\n      suggest: {\n        bg: v0.muted.primary.enabled.bg,\n        fg: v0.muted.primary.enabled.fg,\n        dot: v0.muted.primary.enabled.muted.fg,\n        icon: v0.muted.primary.enabled.muted.fg,\n      },\n      positive: {\n        bg: v0.muted.positive.enabled.bg,\n        fg: v0.muted.positive.enabled.fg,\n        dot: v0.muted.positive.enabled.muted.fg,\n        icon: v0.muted.positive.enabled.muted.fg,\n      },\n      caution: {\n        bg: v0.muted.caution.enabled.bg,\n        fg: v0.muted.caution.enabled.fg,\n        dot: v0.muted.caution.enabled.muted.fg,\n        icon: v0.muted.caution.enabled.muted.fg,\n      },\n      critical: {\n        bg: v0.muted.critical.enabled.bg,\n        fg: v0.muted.critical.enabled.fg,\n        dot: v0.muted.critical.enabled.muted.fg,\n        icon: v0.muted.critical.enabled.muted.fg,\n      },\n    },\n    kbd: {\n      bg: v0.muted.default.enabled.bg,\n      fg: v0.muted.default.enabled.fg,\n      border: v0.muted.default.enabled.border,\n    },\n    muted: {\n      ...v0.muted.default.enabled.muted,\n      bg: state.bg2 || state.bg,\n    },\n    skeleton: {\n      from: state.skeleton?.from || state.border,\n      to: state.skeleton?.to || state.border,\n    },\n  }\n}\n\nfunction inputStatesThemeColor_v0_v2(states: ThemeColorInputStates): ThemeColorInputMode_v2 {\n  return {\n    enabled: inputStateThemeColor_v0_v2(states.enabled),\n    disabled: inputStateThemeColor_v0_v2(states.disabled),\n    readOnly: inputStateThemeColor_v0_v2(states.readOnly),\n    hovered: inputStateThemeColor_v0_v2(states.hovered),\n  }\n}\n\nfunction inputStateThemeColor_v0_v2(state: ThemeColorInputState): ThemeColorInputState_v2 {\n  return {\n    bg: state.bg,\n    border: state.border,\n    fg: state.fg,\n    muted: {\n      bg: state.bg2,\n    },\n    placeholder: state.placeholder,\n  }\n}\n","import {defaultThemeConfig} from '../defaults/config'\nimport {Theme, Theme_v2} from '../system'\nimport {themeColor_v0_v2} from './themeColor_v0_v2'\n\nconst cache = new WeakMap<Theme, Theme_v2>()\n\n/** @public */\nexport function getTheme_v2(theme: Theme): Theme_v2 {\n  if (theme.sanity.v2?._resolved) return theme.sanity.v2\n\n  const cached_v2 = cache.get(theme)\n\n  if (cached_v2) return cached_v2\n\n  const v2: Theme_v2 = {\n    _version: 2,\n    _resolved: true,\n    avatar: {\n      ...defaultThemeConfig.avatar,\n      ...theme.sanity.avatar,\n    },\n    button: {\n      ...defaultThemeConfig.button,\n      ...theme.sanity.button,\n    },\n    card: defaultThemeConfig.card,\n    color: themeColor_v0_v2(theme.sanity.color),\n    container: theme.sanity.container,\n    font: theme.sanity.fonts,\n    input: {\n      ...defaultThemeConfig.input,\n      ...theme.sanity.input,\n      checkbox: {\n        ...defaultThemeConfig.input.checkbox,\n        ...theme.sanity.input.checkbox,\n      },\n      radio: {\n        ...defaultThemeConfig.input.radio,\n        ...theme.sanity.input.radio,\n      },\n      switch: {\n        ...defaultThemeConfig.input.switch,\n        ...theme.sanity.input.switch,\n      },\n    },\n    layer: theme.sanity.layer ?? defaultThemeConfig.layer,\n    media: theme.sanity.media,\n    radius: theme.sanity.radius,\n    shadow: theme.sanity.shadows,\n    space: theme.sanity.space,\n    style: theme.sanity.styles,\n  }\n\n  cache.set(theme, v2)\n\n  return v2\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","/**\n * Defines a lazy, self-replacing property on `obj`.\n *\n * On first access the `factory` is called and the getter is replaced with the\n * computed plain value — subsequent reads have zero overhead.\n *\n * The property is enumerable (visible in `Object.keys` / spread) in both states.\n *\n * @internal\n */\nexport function defineLazyProperty<T extends object, K extends keyof T>(\n  obj: T,\n  key: K,\n  factory: () => T[K],\n): void {\n  Object.defineProperty(obj, key, {\n    get() {\n      const value = factory()\n      Object.defineProperty(obj, key, {\n        value,\n        enumerable: true,\n        writable: false,\n        configurable: false,\n      })\n      return value\n    },\n    enumerable: true,\n    configurable: true,\n  })\n}\n","import {defineLazyProperty} from '../build/lib/lazy'\nimport {\n  RootTheme,\n  RootTheme_v2,\n  ThemeColor,\n  ThemeColorCard_v2,\n  ThemeColorInputMode_v2,\n  ThemeColorInputState,\n  ThemeColorInputState_v2,\n  ThemeColorInputStates,\n  ThemeColorScheme,\n} from '../system'\n\nconst cache = new WeakMap<RootTheme_v2, RootTheme>()\n\nconst V0_TONES = ['transparent', 'default', 'primary', 'positive', 'caution', 'critical'] as const\n\nfunction lazyV0Scheme(schemeKey: 'light' | 'dark', color: RootTheme_v2['color']): ThemeColorScheme {\n  const scheme = {} as ThemeColorScheme\n\n  for (const tone of V0_TONES) {\n    defineLazyProperty(scheme, tone, () => themeColor_v2_v0(color[schemeKey][tone]))\n  }\n\n  return scheme\n}\n\n/** @internal */\nexport function v2_v0(v2: RootTheme_v2): RootTheme {\n  const cachedTheme = cache.get(v2)\n\n  if (cachedTheme) return cachedTheme\n\n  const {\n    avatar,\n    button,\n    color,\n    container,\n    font: fonts,\n    input,\n    media,\n    radius,\n    shadow: shadows,\n    space,\n    style: styles,\n  } = v2\n\n  // Lazy v0 color — two-level lazy structure so we don't force-evaluate\n  // the v2 lazy getters until a v0 tone is actually accessed.\n  const v0Color = {} as RootTheme['color']\n\n  defineLazyProperty(v0Color, 'light', () => lazyV0Scheme('light', color))\n  defineLazyProperty(v0Color, 'dark', () => lazyV0Scheme('dark', color))\n\n  const theme: RootTheme = {\n    _version: 0,\n    avatar,\n    button,\n    container,\n    color: v0Color,\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  cache.set(v2, theme)\n\n  return theme\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'\n\nimport {THEME_COLOR_BLEND_MODES, THEME_COLOR_BUTTON_MODES} from './_constants'\nimport {ThemeColorBlendModeKey, ThemeColorButtonModeKey} from './_system'\n\n/** @internal */\nexport function isColorBlendModeValue(str: string): str is ThemeColorBlendModeKey {\n  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'\n\nimport {\n  THEME_COLOR_AVATAR_COLORS,\n  THEME_COLOR_CARD_TONES,\n  THEME_COLOR_INPUT_MODES,\n  THEME_COLOR_INPUT_STATES,\n  THEME_COLOR_STATE_TONES,\n  THEME_COLOR_STATES,\n  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_BLEND_KEYS,\n  COLOR_CONFIG_CARD_KEYS,\n  COLOR_CONFIG_CARD_TONES,\n  COLOR_CONFIG_STATE_KEYS,\n  COLOR_CONFIG_STATE_TONES,\n  ColorConfigBlendKey,\n  ColorConfigCardKey,\n  ColorConfigCardTone,\n  ColorConfigOpacityValue,\n  ColorConfigStateKey,\n  ColorConfigStateTone,\n  ColorConfigValue,\n} from './system'\nimport {parseTokenValue} from './tokens'\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 {parseTokenValue, ThemeColorTokenValue} 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', '900'],\n          fg: ['800', '200'],\n          icon: ['800 70%', '300 70%'],\n        },\n        'pressed': {\n          bg: ['100', '800'],\n          fg: ['800', '200'],\n          icon: ['800 70%', '200 70%'],\n        },\n        'selected': {\n          bg: ['100', '900'],\n          fg: ['800', '200'],\n          icon: ['800 60%', '200 60%'],\n        },\n        'disabled': {\n          _hue: 'gray',\n          accent: {\n            fg: ['200', '800'],\n          },\n          avatar: {\n            '*': {\n              _blend: ['screen', 'multiply'],\n              bg: ['gray/100', 'gray/900'],\n              fg: ['white', 'black'],\n            },\n          },\n          badge: {\n            '*': {\n              _hue: 'gray',\n              bg: ['50', '950'],\n              fg: ['gray/200', 'gray/800'],\n              dot: ['gray/200', 'gray/800'],\n              icon: ['gray/200', 'gray/800'],\n            },\n          },\n          code: {\n            bg: ['50', '950'],\n            fg: ['200', '800'],\n          },\n          fg: ['400', '600'],\n          icon: ['300', '700'],\n          muted: {\n            fg: ['400', '600'],\n          },\n          kbd: {\n            bg: ['white', 'black'],\n            fg: ['200', '800'],\n            border: ['100', '900'],\n          },\n          link: {\n            fg: ['200', '800'],\n          },\n        },\n      },\n    },\n  },\n  input: {\n    '*': {\n      '*': {\n        _blend: ['multiply', 'screen'],\n        bg: ['white', 'black'],\n        border: ['200', '700'],\n        fg: ['black', '200'],\n        muted: {\n          bg: ['50', '950'],\n        },\n        placeholder: ['400', '600'],\n      },\n      'hovered': {\n        border: ['300', '700'],\n      },\n      'readOnly': {\n        bg: ['50', '950'],\n        border: ['200', '800'],\n        fg: ['800', '200'],\n      },\n      'disabled': {\n        bg: ['50', '950'],\n        fg: ['400', '600'],\n        border: ['100', '900'],\n        placeholder: ['200', '800 50%'],\n      },\n    },\n    'invalid': {\n      '*': {\n        _hue: 'red',\n        bg: ['100', '950'],\n      },\n    },\n  },\n  selectable: {\n    '*': {\n      '*': {\n        _blend: ['multiply', 'screen'],\n        accent: {\n          fg: ['purple/700 70%', 'purple/300 70%'],\n        },\n        avatar: {\n          '*': {\n            _blend: ['screen', 'multiply'],\n            bg: ['500', '400'],\n            fg: ['white', 'black'],\n          },\n        },\n        badge: {\n          '*': {\n            bg: ['100', '900'],\n            fg: ['600', '400'],\n            dot: ['500', '500'],\n            icon: ['500', '500'],\n          },\n        },\n        bg: ['white', 'black'],\n        border: ['200', '800'],\n        code: {\n          bg: ['50', '950'],\n          fg: ['600', '400'],\n        },\n        fg: ['700', '300'],\n        icon: ['700 75%', '300 75%'],\n        kbd: {\n          bg: ['white', 'black'],\n          fg: ['600', '400'],\n          border: ['200', '800'],\n        },\n        link: {\n          fg: ['blue/700 70%', 'blue/300 70%'],\n        },\n        muted: {\n          bg: ['50', '950'],\n          fg: ['700 75%', '300 75%'],\n        },\n        skeleton: {\n          from: ['100', '900'],\n          to: ['100 50%', '900 50%'],\n        },\n      },\n      'hovered': {\n        bg: ['50', '950'],\n      },\n      'pressed': {\n        bg: ['100', '900'],\n      },\n      'selected': {\n        _blend: ['screen', 'multiply'],\n        accent: {\n          fg: ['purple/300', 'purple/700'],\n        },\n        avatar: {\n          '*': {\n            _blend: ['multiply', 'screen'],\n            bg: ['white', 'black'],\n            fg: ['black', 'white'],\n          },\n        },\n        badge: {\n          '*': {\n            bg: ['900', '100'],\n            fg: ['400', '600'],\n            dot: ['500', '500'],\n            icon: ['500', '500'],\n          },\n        },\n        bg: ['500', '400'],\n        border: ['500 20%', '400 20%'],\n        code: {\n          bg: ['500 20%', '400 20%'],\n          fg: ['200', '600'],\n        },\n        fg: ['white', 'black'],\n        icon: ['100 70%', '900 70%'],\n        kbd: {\n          bg: ['black', 'white'],\n          fg: ['200', '600'],\n          border: ['800', '200'],\n        },\n        link: {\n          fg: ['blue/200', 'blue/600'],\n        },\n        muted: {\n          bg: ['500 10%', '400 10%'],\n          fg: ['100 70%', '900 70%'],\n        },\n        skeleton: {\n          from: ['900', '100'],\n          to: ['900 50%', '100 50%'],\n        },\n      },\n      'disabled': {\n        _hue: 'gray',\n        accent: {\n          fg: ['200', '800'],\n        },\n        avatar: {\n          '*': {\n            _blend: ['screen', 'multiply'],\n            bg: ['gray/100', 'gray/900'],\n            fg: ['white', 'black'],\n          },\n        },\n        badge: {\n          '*': {\n            _hue: 'gray',\n            bg: ['50', '950'],\n            fg: ['gray/200', 'gray/800'],\n            dot: ['gray/200', 'gray/800'],\n            icon: ['gray/200', 'gray/800'],\n          },\n        },\n        border: ['100', '900'],\n        code: {\n          bg: ['50', '950'],\n          fg: ['200', '800'],\n        },\n        fg: ['200', '800'],\n        icon: ['200', '800'],\n        kbd: {\n          bg: ['white', 'black'],\n          fg: ['200', '800'],\n          border: ['100', '900'],\n        },\n        link: {\n          fg: ['200', '800'],\n        },\n        muted: {\n          bg: ['50 50%', '950 50%'],\n          fg: ['200', '800'],\n        },\n      },\n    },\n    'default': {\n      selected: {\n        _hue: 'blue',\n      },\n    },\n    'critical': {\n      disabled: {\n        bg: ['50 50%', '950 50%'],\n      },\n    },\n  },\n  syntax: {\n    atrule: ['purple/600', 'purple/400'],\n    attrName: ['green/600', 'green/400'],\n    attrValue: ['yellow/600', 'yellow/400'],\n    attribute: ['yellow/600', 'yellow/400'],\n    boolean: ['purple/600', 'purple/400'],\n    builtin: ['purple/600', 'purple/400'],\n    cdata: ['yellow/600', 'yellow/400'],\n    char: ['yellow/600', 'yellow/400'],\n    class: ['orange/600', 'orange/400'],\n    className: ['cyan/600', 'cyan/400'],\n    comment: ['gray/400', 'gray/600'],\n    constant: ['purple/600', 'purple/400'],\n    deleted: ['red/600', 'red/400'],\n    entity: ['red/600', 'red/400'],\n    function: ['green/600', 'green/400'],\n    hexcode: ['blue/600', 'blue/400'],\n    id: ['purple/600', 'purple/400'],\n    important: ['purple/600', 'purple/400'],\n    inserted: ['yellow/600', 'yellow/400'],\n    keyword: ['magenta/600', 'magenta/400'],\n    number: ['purple/600', 'purple/400'],\n    operator: ['magenta/600', 'magenta/400'],\n    property: ['blue/600', 'blue/400'],\n    pseudoClass: ['yellow/600', 'yellow/400'],\n    pseudoElement: ['yellow/600', 'yellow/400'],\n    punctuation: ['gray/600', 'gray/400'],\n    regex: ['blue/600', 'blue/400'],\n    selector: ['red/600', 'red/400'],\n    string: ['yellow/600', 'yellow/400'],\n    symbol: ['purple/600', 'purple/400'],\n    tag: ['red/600', 'red/400'],\n    unit: ['orange/600', 'orange/400'],\n    url: ['red/600', 'red/400'],\n    variable: ['red/600', 'red/400'],\n  },\n}\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n  return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {isRecord} from './lib/isRecord'\n\nexport function merge<T extends Record<string, any>>(...records: (T | undefined)[]): T {\n  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'\n\nimport {\n  ColorConfigCardTone,\n  ColorConfigInputMode,\n  ColorConfigInputState,\n  ColorConfigStateTone,\n  ThemeColorAvatarTokens,\n  ThemeColorBadgeTokens,\n  ThemeColorBaseTokens,\n  ThemeColorButtonTokens,\n  ThemeColorInputStateTokens,\n  ThemeColorInputTokens,\n  ThemeColorStatesTokens,\n  ThemeColorStateTokens,\n  ThemeColorTokens,\n} from '../config'\nimport {defaultColorTokens} from '../defaults/colorTokens'\nimport {\n  THEME_COLOR_BUTTON_MODES,\n  THEME_COLOR_CARD_TONES,\n  THEME_COLOR_INPUT_MODES,\n  THEME_COLOR_INPUT_STATES,\n  THEME_COLOR_STATE_TONES,\n  THEME_COLOR_STATES,\n  ThemeColorButtonModeKey,\n  ThemeColorCardToneKey,\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_CARD_TONES,\n  THEME_COLOR_STATE_TONES,\n  THEME_COLOR_STATES,\n  ThemeColorAvatar_v2,\n  ThemeColorAvatarColorKey,\n  ThemeColorAvatarHue_v2,\n  ThemeColorBadge_v2,\n  ThemeColorButton_v2,\n  ThemeColorButtonMode_v2,\n  ThemeColorButtonModeKey,\n  ThemeColorButtonTone_v2,\n  ThemeColorCard_v2,\n  ThemeColorCardToneKey,\n  ThemeColorInput_v2,\n  ThemeColorInputMode_v2,\n  ThemeColorInputState_v2,\n  ThemeColorScheme_v2,\n  ThemeColorSchemeKey,\n  ThemeColorSchemes_v2,\n  ThemeColorShadow,\n  ThemeColorState_v2,\n  ThemeColorStateKey,\n  ThemeColorStateToneKey,\n  ThemeColorSyntax,\n} from '../system'\nimport {ColorTokenContext, resolveColorTokenValue as _color} from './colorToken'\nimport {defineLazyProperty} from './lib/lazy'\nimport {resolveColorTokens} from './resolveColorTokens'\n\nexport function buildColorTheme(config?: ThemeConfig): ThemeColorSchemes_v2 {\n  const resolvedConfig: ThemeConfig = {\n    ...config,\n    color: resolveColorTokens(config?.color),\n  }\n\n  // Lazy schemes — each scheme's token tree is only built when first accessed\n  const schemes = {} as ThemeColorSchemes_v2\n\n  defineLazyProperty(schemes, 'light', () => buildColorScheme({scheme: 'light'}, resolvedConfig))\n  defineLazyProperty(schemes, 'dark', () => buildColorScheme({scheme: 'dark'}, resolvedConfig))\n\n  return schemes\n}\n\nfunction buildColorScheme(\n  options: {scheme: ThemeColorSchemeKey},\n  config: ThemeConfig,\n): ThemeColorScheme_v2 {\n  const {scheme} = options\n\n  // Lazy tones — each tone's token tree is only built when first accessed\n  const colorScheme = {} as ThemeColorScheme_v2\n\n  for (const tone of THEME_COLOR_CARD_TONES) {\n    defineLazyProperty(colorScheme, tone, () => buildCardColorTheme({scheme, tone}, config))\n  }\n\n  return colorScheme\n}\n\nfunction buildCardColorTheme(\n  options: {scheme: ThemeColorSchemeKey; tone: ThemeColorCardToneKey},\n  config?: ThemeConfig,\n): ThemeColorCard_v2 {\n  const {scheme, tone} = options\n  const tokens = config?.color?.base?.[tone]\n  const hue = tokens?._hue || 'gray'\n  const context: ColorTokenContext = {hue, scheme}\n  const blendMode = tokens?._blend || ['multiply', 'screen']\n\n  return {\n    _blend: blendMode[scheme === 'light' ? 0 : 1],\n    _dark: scheme === 'dark',\n    accent: {\n      fg: _color(context, tokens?.accent?.fg),\n    },\n    avatar: buildAvatarColorTheme({scheme}, tokens),\n    backdrop: _color(context, tokens?.backdrop),\n    badge: buildBadgeColorTheme(tokens?.badge, {scheme}, config),\n    bg: _color(context, tokens?.bg),\n    border: _color(context, tokens?.border),\n    button: buildButtonColorTheme({scheme, tone}, config),\n    code: {\n      bg: _color(context, tokens?.code?.bg),\n      fg: _color(context, tokens?.code?.fg),\n    },\n    fg: _color(context, tokens?.fg),\n    focusRing: _color(context, tokens?.focusRing),\n    icon: _color(context, tokens?.icon),\n    input: buildInputColorTheme({scheme, tone}, config),\n    kbd: {\n      bg: _color(context, tokens?.kbd?.bg),\n      fg: _color(context, tokens?.kbd?.fg),\n      border: _color(context, tokens?.kbd?.border),\n    },\n    link: {\n      fg: _color(context, tokens?.link?.fg),\n    },\n    muted: {\n      bg: _color(context, tokens?.muted?.bg),\n      fg: _color(context, tokens?.muted?.fg),\n    },\n    selectable: buildSelectableColorTheme({scheme, tone}, config),\n    shadow: buildShadowColorTheme({scheme, tone}, config),\n    skeleton: {\n      from: _color(context, tokens?.skeleton?.from),\n      to: _color(context, tokens?.skeleton?.to),\n    },\n    syntax: buildSyntaxColorTheme({scheme}, config),\n  }\n}\n\nfunction buildShadowColorTheme(\n  options: {scheme: ThemeColorSchemeKey; tone: ThemeColorCardToneKey},\n  config?: ThemeConfig,\n): ThemeColorShadow {\n  const {scheme, tone} = options\n  const tokens = config?.color?.base?.[tone]\n  const hue = tokens?._hue || 'gray'\n  const context: ColorTokenContext = {hue, scheme}\n\n  return {\n    outline: _color(context, tokens?.shadow?.outline),\n    umbra: _color(context, tokens?.shadow?.umbra),\n    penumbra: _color(context, tokens?.shadow?.penumbra),\n    ambient: _color(context, tokens?.shadow?.ambient),\n  }\n}\n\nfunction buildAvatarColorTheme(\n  options: {scheme: ThemeColorSchemeKey},\n  stateTokens?: ThemeColorStateTokens,\n): ThemeColorAvatar_v2 {\n  const {scheme} = options\n\n  return {\n    gray: _buildAvatarColorTheme({color: 'gray', scheme}, stateTokens),\n    blue: _buildAvatarColorTheme({color: 'blue', scheme}, stateTokens),\n    purple: _buildAvatarColorTheme({color: 'purple', scheme}, stateTokens),\n    magenta: _buildAvatarColorTheme({color: 'magenta', scheme}, stateTokens),\n    red: _buildAvatarColorTheme({color: 'red', scheme}, stateTokens),\n    orange: _buildAvatarColorTheme({color: 'orange', scheme}, stateTokens),\n    yellow: _buildAvatarColorTheme({color: 'yellow', scheme}, stateTokens),\n    green: _buildAvatarColorTheme({color: 'green', scheme}, stateTokens),\n    cyan: _buildAvatarColorTheme({color: 'cyan', scheme}, stateTokens),\n  }\n}\n\nfunction _buildAvatarColorTheme(\n  options: {color: ThemeColorAvatarColorKey; scheme: ThemeColorSchemeKey},\n  stateTokens?: ThemeColorStateTokens,\n): ThemeColorAvatarHue_v2 {\n  const {color, scheme} = options\n  const tokens = stateTokens?.avatar?.[color]\n  const context: ColorTokenContext = {hue: tokens?._hue || 'gray', scheme}\n  const blendMode = tokens?._blend || ['screen', 'multiply']\n\n  return {\n    _blend: blendMode[scheme === 'light' ? 0 : 1],\n    bg: _color(context, tokens?.bg),\n    fg: _color(context, tokens?.fg),\n  }\n}\n\nfunction buildBadgeColorTheme(\n  tokens: ThemeColorBadgeTokens | undefined,\n  options: {scheme: ThemeColorSchemeKey},\n  config?: ThemeConfig,\n): ThemeColorBadge_v2 {\n  const {scheme} = options\n\n  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 {multiply, parseColor, RGB, 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'\n\nimport {parseTokenValue, ThemeColorPalette} from '../config'\nimport {ThemeColorBlendModeKey} from '../system'\nimport {hexToRgb, mix, rgba, rgbToHex} 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'\n\nimport {ThemeColorPalette, ThemeConfig} from '../config'\nimport {defaultColorPalette} from '../defaults/colorPalette'\nimport {\n  THEME_COLOR_CARD_TONES,\n  THEME_COLOR_STATE_TONES,\n  ThemeColorAvatar_v2,\n  ThemeColorBadge_v2,\n  ThemeColorBadgeTone_v2,\n  ThemeColorBlendModeKey,\n  ThemeColorButton_v2,\n  ThemeColorButtonMode_v2,\n  ThemeColorButtonTone_v2,\n  ThemeColorCard_v2,\n  ThemeColorInput_v2,\n  ThemeColorInputMode_v2,\n  ThemeColorInputState_v2,\n  ThemeColorKBD,\n  ThemeColorScheme_v2,\n  ThemeColorSchemes_v2,\n  ThemeColorSelectable_v2,\n  ThemeColorSelectableTone_v2,\n  ThemeColorShadow,\n  ThemeColorState_v2,\n  ThemeColorSyntax,\n} from '../system'\nimport {defineLazyProperty} from './lib/lazy'\nimport {renderColorValue, RenderColorValueOptions} from './renderColorValue'\n\nexport function renderThemeColorSchemes(\n  value: ThemeColorSchemes_v2,\n  config?: ThemeConfig,\n): ThemeColorSchemes_v2 {\n  const colorPalette = config?.palette ?? defaultColorPalette\n\n  // Lazy schemes — each scheme is only rendered when first accessed\n  const schemes = {} as ThemeColorSchemes_v2\n  defineLazyProperty(schemes, 'light', () => renderThemeColorScheme(colorPalette, value.light))\n  defineLazyProperty(schemes, 'dark', () => renderThemeColorScheme(colorPalette, value.dark))\n\n  return schemes\n}\n\nfunction renderThemeColorScheme(\n  colorPalette: ThemeColorPalette,\n  value: ThemeColorScheme_v2,\n): ThemeColorScheme_v2 {\n  // The `default` tone must be rendered eagerly — other tones depend on its `bg`.\n  const renderedDefaultTone = renderThemeColor(value.default, {colorPalette})\n\n  const bg = renderedDefaultTone.bg\n\n  if (bg === 'white') {\n    throw new Error('Cannot blend with white background')\n  }\n\n  // All other tones are lazy. `transparent` and `default` are rendered without\n  // a `bg` option; the rest blend on top of `default`'s `bg`.\n  // We iterate THEME_COLOR_CARD_TONES (not Object.entries) to avoid\n  // force-evaluating lazy getters from the build phase.\n  const scheme = {default: renderedDefaultTone} as ThemeColorScheme_v2\n\n  for (const tone of THEME_COLOR_CARD_TONES) {\n    if (tone === 'default') continue\n    const opts = tone === 'transparent' ? {colorPalette} : {bg, colorPalette}\n    defineLazyProperty(scheme, tone, () => renderThemeColor(value[tone], opts))\n  }\n\n  return scheme\n}\n\nfunction renderThemeColor(\n  value: ThemeColorCard_v2,\n  options: {\n    bg?: string\n    colorPalette: ThemeColorPalette\n  },\n): ThemeColorCard_v2 {\n  const {colorPalette, bg} = options\n  const blendMode = value._blend || 'multiply'\n  const baseBg = renderColorValue(value.bg, {colorPalette, bg, blendMode})\n  const colorOptions: RenderColorValueOptions = {colorPalette, bg: baseBg, blendMode}\n\n  const button = renderThemeColorButton(value.button, {\n    baseBg,\n    blendMode,\n    colorPalette,\n  })\n\n  const selectable = renderThemeColorSelectable(value.selectable, {\n    colorPalette,\n    baseBg,\n    blendMode,\n  })\n\n  const shadow: ThemeColorShadow = {\n    outline: renderColorValue(value.shadow.outline, colorOptions),\n    umbra: renderColorValue(value.shadow.umbra, {\n      ...colorOptions,\n      bg: undefined,\n      colorPalette: {...colorPalette, black: '#000000'},\n    }),\n    penumbra: renderColorValue(value.shadow.penumbra, {\n      ...colorOptions,\n      bg: undefined,\n      colorPalette: {...colorPalette, black: '#000000'},\n    }),\n    ambient: renderColorValue(value.shadow.ambient, {\n      ...colorOptions,\n      bg: undefined,\n      colorPalette: {...colorPalette, black: '#000000'},\n    }),\n  }\n\n  return {\n    _blend: blendMode,\n    _dark: value._dark,\n    accent: {\n      fg: renderColorValue(value.accent.fg, colorOptions),\n    },\n    avatar: renderThemeColorAvatar(value.avatar, {baseBg, colorPalette, blendMode}),\n    backdrop: renderColorValue(value.backdrop, colorOptions),\n    badge: renderThemeColorBadge(value.badge, {baseBg, colorPalette, blendMode}),\n    bg: baseBg,\n    border: renderColorValue(value.border, colorOptions),\n    button,\n    code: {\n      bg: renderColorValue(value.code.bg, colorOptions),\n      fg: renderColorValue(value.code.fg, colorOptions),\n    },\n    fg: renderColorValue(value.fg, colorOptions),\n    focusRing: renderColorValue(value.focusRing, colorOptions),\n    icon: renderColorValue(value.icon, colorOptions),\n    input: renderThemeColorInput(value.input, {baseBg, colorPalette, blendMode}),\n    kbd: renderThemeColorKBD(value.kbd, {baseBg, colorPalette, blendMode}),\n    link: {\n      fg: renderColorValue(value.link.fg, colorOptions),\n    },\n    muted: {\n      bg: renderColorValue(value.muted.bg, colorOptions),\n      fg: renderColorValue(value.muted.fg, colorOptions),\n    },\n    shadow,\n    skeleton: {\n      from: renderColorValue(value.skeleton.from, colorOptions),\n      to: renderColorValue(value.skeleton.to, colorOptions),\n    },\n    syntax: renderSyntaxColorTheme(value.syntax, {baseBg, colorPalette, blendMode}),\n    selectable,\n  }\n}\n\nfunction renderThemeColorKBD(\n  value: ThemeColorKBD,\n  options: {\n    baseBg: string\n    blendMode: ThemeColorBlendModeKey\n    colorPalette: ThemeColorPalette\n  },\n): ThemeColorKBD {\n  const {baseBg, blendMode, colorPalette} = options\n\n  const rootOptions: RenderColorValueOptions = {\n    bg: baseBg,\n    blendMode,\n    colorPalette,\n  }\n\n  const bg = renderColorValue(value.bg, rootOptions)\n\n  const colorOptions: RenderColorValueOptions = {\n    bg,\n    blendMode,\n    colorPalette,\n  }\n\n  return {\n    bg,\n    fg: renderColorValue(value.fg, colorOptions),\n    border: renderColorValue(value.border, colorOptions),\n  }\n}\n\nfunction renderThemeColorAvatar(\n  value: ThemeColorAvatar_v2,\n  options: {\n    baseBg: string\n    blendMode: ThemeColorBlendModeKey\n    colorPalette: ThemeColorPalette\n  },\n): ThemeColorAvatar_v2 {\n  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 {defineLazyProperty} from './build/lib/lazy'\nimport {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 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  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  const {color: _v0Color, ...v0Rest} = v0\n\n  const sanity = {\n    ...v0Rest,\n    layer: layer_v0,\n    v2: {\n      ...v2,\n      _resolved: true,\n      color: color_v2_9,\n      layer: layer_v2,\n    },\n  } as Theme['sanity']\n\n  // Defer v0 color computation — only resolved if legacy code reads theme.sanity.color\n  defineLazyProperty(sanity, 'color', () => {\n    const colorScheme_v0 = v0.color[scheme] || v0.color.light\n    return (colorScheme_v0 as Record<string, ThemeColor>)[tone] || colorScheme_v0.default\n  })\n\n  const theme: Theme = {sanity}\n\n  _setCachedTheme(themeProp, scheme, tone, theme)\n\n  return theme\n}\n\nfunction _getCachedTheme(\n  rootTheme: RootTheme | RootTheme_v2,\n  scheme: ThemeColorSchemeKey,\n  tone: ThemeColorCardToneKey,\n) {\n  const schemeCache = cache.get(scheme)\n\n  if (!schemeCache) return undefined\n\n  const toneCache = schemeCache.get(tone)\n\n  if (!toneCache) return undefined\n\n  return toneCache.get(rootTheme)\n}\n\nfunction _setCachedTheme(\n  rootTheme: RootTheme | RootTheme_v2,\n  scheme: ThemeColorSchemeKey,\n  tone: ThemeColorCardToneKey,\n  theme: Theme,\n) {\n  if (!cache.has(scheme)) cache.set(scheme, new Map())\n\n  const schemeCache = cache.get(scheme)!\n\n  if (!schemeCache.has(tone)) schemeCache.set(tone, new WeakMap())\n\n  const toneCache = schemeCache.get(tone)!\n\n  toneCache.set(rootTheme, theme)\n}\n"],"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","defaultThemeConfig","avatar","sizes","distance","size","offset","width","textWeight","BORDER_WIDTH","OUTLINE_WIDTH","container","media","layer","dialog","zOffset","popover","tooltip","radius","space","checkbox","radio","markSize","switch","height","padding","transitionDurationMs","transitionTimingFunction","select","text","style","root","transition","defaultThemeFonts","family","weights","regular","medium","semibold","bold","ascenderHeight","descenderHeight","fontSize","iconSize","lineHeight","letterSpacing","heading","label","cache","WeakMap","themeColor_v0_v2","color_v0","cached_v2","get","stateThemeColor_v0_v2","color_v2","_blend","_dark","backdrop","badge","stateTonesThemeColor_v0_v2","inputStatesThemeColor_v0_v2","kbd","set","v0","t","neutral","suggest","dot","states","inputStateThemeColor_v0_v2","getTheme_v2","theme","sanity","v2","_resolved","_version","font","fonts","shadows","styles","is_v0","themeProp","is_v2","v0_v2","defineLazyProperty","obj","factory","Object","defineProperty","value","enumerable","writable","configurable","V0_TONES","lazyV0Scheme","schemeKey","scheme","themeColor_v2_v0","v2_v0","cachedTheme","v0Color","inputStatesThemeColor_v2_v0","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","isColorTokenValue","compileColorTokenValue","node","undefined","DEFAULT_COLOR_TOKEN_VALUE","resolveColorTokenValue","context","Error","defaultColorTokens","_hue","isRecord","Boolean","Array","isArray","merge","records","_records","filter","length","reduce","_merge","acc","source","keys","prevValue","nextValue","resolveColorTokens","inputTokens","tokens","resolveBaseColorTokens","resolveButtonColorTokens","resolveInputColorTokens","resolveSelectableColorTokens","sparseTokens","resolveBaseColorTones","spec","resolveButtonToneColorTokens","resolveButtonModeColorTokens","resolveButtonStateColorTokens","resolveInputModeColorTokens","resolveInputStateColorTokens","resolveSelectableToneColorTokens","resolveSelectableStateColorTokens","buildColorTheme","config","resolvedConfig","schemes","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","renderedDefaultTone","renderThemeColor","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","layer_v0","colorScheme_v2","color_v2_9","layer_v2","_v0Color","v0Rest","colorScheme_v0","_setCachedTheme","rootTheme","schemeCache","toneCache","has"],"mappings":"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"}