@sanity/ui 2.0.16 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/theme.esm.js +16 -11
- package/dist/theme.esm.js.map +1 -1
- package/dist/theme.js +16 -11
- package/dist/theme.js.map +1 -1
- package/dist/theme.mjs +16 -11
- package/dist/theme.mjs.map +1 -1
- package/package.json +15 -15
- package/src/core/primitives/button/__workshop__/disabled.tsx +73 -0
- package/src/core/primitives/button/__workshop__/index.ts +5 -0
- package/src/theme/defaults/colorTokens.ts +16 -11
package/dist/theme.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.mjs","sources":["../src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts","../src/theme/build/_deprecated/color/_solid/createSolidTones.ts","../src/theme/build/_deprecated/color/button/createButtonTones.ts","../src/theme/build/_deprecated/color/button/createButtonModes.ts","../src/theme/build/_deprecated/color/card/createCardStates.ts","../src/theme/build/_deprecated/color/defaults.ts","../src/theme/build/_deprecated/color/input/createInputModes.ts","../src/theme/build/_deprecated/color/muted/createMuted.ts","../src/theme/build/_deprecated/color/spot/createSpot.ts","../src/theme/build/_deprecated/color/factory.ts","../src/theme/defaults/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/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/getScopedTheme.ts"],"sourcesContent":["import {\n ThemeColorBase,\n ThemeColorMuted,\n ThemeColorSelectable,\n ThemeColorSelectableStates,\n ThemeColorSolid,\n} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSelectableTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorSelectable {\n return {\n default: _createSelectableStates(opts, base, dark, solid, muted, 'default'),\n primary: _createSelectableStates(opts, base, dark, solid, muted, 'primary'),\n positive: _createSelectableStates(opts, base, dark, solid, muted, 'positive'),\n caution: _createSelectableStates(opts, base, dark, solid, muted, 'caution'),\n critical: _createSelectableStates(opts, base, dark, solid, muted, 'critical'),\n }\n}\n\nfunction _createSelectableStates(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical',\n): ThemeColorSelectableStates {\n return {\n enabled: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'enabled',\n tone,\n }),\n hovered: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'hovered',\n tone,\n }),\n pressed: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'pressed',\n tone,\n }),\n selected: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'selected',\n tone,\n }),\n disabled: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'disabled',\n tone,\n }),\n }\n}\n","import {ThemeColorBase, ThemeColorSolid, ThemeColorName} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSolidTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n): ThemeColorSolid {\n return {\n default: {\n enabled: opts.solid({base, dark, tone: 'default', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'default', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'default', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'default', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'default', name, state: 'selected'}),\n },\n transparent: {\n enabled: opts.solid({base, dark, tone: 'transparent', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'transparent', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'transparent', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'transparent', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'transparent', name, state: 'selected'}),\n },\n primary: {\n enabled: opts.solid({base, dark, tone: 'primary', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'primary', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'primary', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'primary', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'primary', name, state: 'selected'}),\n },\n positive: {\n enabled: opts.solid({base, dark, tone: 'positive', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'positive', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'positive', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'positive', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'positive', name, state: 'selected'}),\n },\n caution: {\n enabled: opts.solid({base, dark, tone: 'caution', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'caution', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'caution', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'caution', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'caution', name, state: 'selected'}),\n },\n critical: {\n enabled: opts.solid({base, dark, tone: 'critical', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'critical', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'critical', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'critical', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'critical', name, state: 'selected'}),\n },\n }\n}\n","import {\n ThemeColorBase,\n ThemeColorButtonModeKey,\n ThemeColorButtonTones,\n ThemeColorMuted,\n ThemeColorSolid,\n} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createButtonTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n mode: ThemeColorButtonModeKey,\n): ThemeColorButtonTones {\n return {\n default: opts.button({\n base,\n dark,\n solid: solid.default,\n muted: muted.default,\n mode,\n }),\n primary: opts.button({\n base,\n dark,\n solid: solid.primary,\n muted: muted.primary,\n mode,\n }),\n positive: opts.button({\n base,\n dark,\n solid: solid.positive,\n muted: muted.positive,\n mode,\n }),\n caution: opts.button({\n base,\n dark,\n solid: solid.caution,\n muted: muted.caution,\n mode,\n }),\n critical: opts.button({\n base,\n dark,\n solid: solid.critical,\n muted: muted.critical,\n mode,\n }),\n }\n}\n","import {\n ThemeColorBase,\n ThemeColorButton,\n ThemeColorMuted,\n ThemeColorSolid,\n} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {createButtonTones} from './createButtonTones'\n\nexport function createButtonModes(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorButton {\n return {\n default: createButtonTones(opts, base, dark, solid, muted, 'default'),\n ghost: createButtonTones(opts, base, dark, solid, muted, 'ghost'),\n bleed: createButtonTones(opts, base, dark, solid, muted, 'bleed'),\n }\n}\n","import {\n ThemeColorBase,\n ThemeColorCard,\n ThemeColorMuted,\n ThemeColorSolid,\n ThemeColorName,\n} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createCardStates(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorCard {\n return {\n enabled: opts.card({\n base,\n dark,\n name,\n state: 'enabled',\n solid,\n muted,\n }),\n disabled: opts.card({\n base,\n dark,\n name,\n state: 'disabled',\n solid,\n muted,\n }),\n hovered: opts.card({\n base,\n dark,\n name,\n state: 'hovered',\n solid,\n muted,\n }),\n pressed: opts.card({\n base,\n dark,\n name,\n state: 'pressed',\n solid,\n muted,\n }),\n selected: opts.card({\n base,\n dark,\n name,\n state: 'selected',\n solid,\n muted,\n }),\n }\n}\n","import {ThemeColorBuilderOpts} from './factory'\n\nconst black = 'hsl(0, 0%, 0%)'\nconst white = 'hsl(0, 0%, 100%)'\n\nconst colors = {\n default: {\n lightest: 'hsl(0, 0%, 95%)',\n lighter: 'hsl(0, 0%, 70%)',\n light: 'hsl(0, 0%, 65%)',\n base: 'hsl(0, 0%, 50%)',\n dark: 'hsl(0, 0%, 35%)',\n darker: 'hsl(0, 0%, 20%)',\n darkest: 'hsl(0, 0%, 5%)',\n },\n transparent: {\n lightest: 'hsl(240, 100%, 95%)',\n lighter: 'hsl(240, 100%, 70%)',\n light: 'hsl(240, 100%, 65%)',\n base: 'hsl(240, 100%, 50%)',\n dark: 'hsl(240, 100%, 35%)',\n darker: 'hsl(240, 100%, 20%)',\n darkest: 'hsl(240, 100%, 5%)',\n },\n primary: {\n lightest: 'hsl(240, 100%, 95%)',\n lighter: 'hsl(240, 100%, 70%)',\n light: 'hsl(240, 100%, 65%)',\n base: 'hsl(240, 100%, 50%)',\n dark: 'hsl(240, 100%, 35%)',\n darker: 'hsl(240, 100%, 20%)',\n darkest: 'hsl(240, 100%, 5%)',\n },\n positive: {\n lightest: 'hsl(120, 100%, 95%)',\n lighter: 'hsl(120, 100%, 70%)',\n light: 'hsl(120, 100%, 65%)',\n base: 'hsl(120, 100%, 50%)',\n dark: 'hsl(120, 100%, 35%)',\n darker: 'hsl(120, 100%, 20%)',\n darkest: 'hsl(120, 100%, 5%)',\n },\n caution: {\n lightest: 'hsl(60, 100%, 95%)',\n lighter: 'hsl(60, 100%, 70%)',\n light: 'hsl(60, 100%, 65%)',\n base: 'hsl(60, 100%, 50%)',\n dark: 'hsl(60, 100%, 35%)',\n darker: 'hsl(60, 100%, 20%)',\n darkest: 'hsl(60, 100%, 5%)',\n },\n critical: {\n lightest: 'hsl(0, 100%, 95%)',\n lighter: 'hsl(0, 100%, 70%)',\n light: 'hsl(0, 100%, 65%)',\n base: 'hsl(0, 100%, 50%)',\n dark: 'hsl(0, 100%, 35%)',\n darker: 'hsl(0, 100%, 20%)',\n darkest: 'hsl(0, 100%, 5%)',\n },\n}\n\nconst spots = {\n gray: 'hsl(0, 0%, 50%)',\n red: 'hsl(0, 100%, 50%)',\n orange: 'hsl(30, 100%, 50%)',\n yellow: 'hsl(60, 100%, 50%)',\n green: 'hsl(120, 100%, 50%)',\n cyan: 'hsl(180, 100%, 50%)',\n blue: 'hsl(240, 100%, 50%)',\n purple: 'hsl(270, 100%, 50%)',\n magenta: 'hsl(300, 100%, 50%)',\n}\n\nconst tones = {\n transparent: {\n bg: [colors.transparent.darkest, colors.transparent.lightest],\n fg: [colors.transparent.lightest, colors.transparent.darkest],\n border: [colors.transparent.darker, colors.transparent.lighter],\n focusRing: [colors.transparent.base, colors.transparent.base],\n },\n primary: {\n bg: [colors.primary.darkest, colors.primary.lightest],\n fg: [colors.primary.lightest, colors.primary.darkest],\n border: [colors.primary.darker, colors.primary.lighter],\n focusRing: [colors.primary.base, colors.primary.base],\n },\n positive: {\n bg: [colors.positive.darkest, colors.positive.lightest],\n fg: [colors.positive.lightest, colors.positive.darkest],\n border: [colors.positive.darker, colors.positive.lighter],\n focusRing: [colors.positive.base, colors.positive.base],\n },\n caution: {\n bg: [colors.caution.darkest, colors.caution.lightest],\n fg: [colors.caution.lightest, colors.caution.darkest],\n border: [colors.caution.darker, colors.caution.lighter],\n focusRing: [colors.caution.base, colors.caution.base],\n },\n critical: {\n bg: [colors.critical.darkest, colors.critical.lightest],\n fg: [colors.critical.lightest, colors.critical.darkest],\n border: [colors.critical.darker, colors.critical.lighter],\n focusRing: [colors.critical.base, colors.critical.base],\n },\n}\n\nexport const defaultOpts: ThemeColorBuilderOpts = {\n base: ({dark, name}) => {\n if (name === 'default') {\n return {\n bg: dark ? black : white,\n fg: dark ? white : black,\n border: dark ? colors.default.darkest : colors.default.lightest,\n focusRing: colors.primary.base,\n shadow: {\n outline: black,\n umbra: black,\n penumbra: black,\n ambient: black,\n },\n skeleton: {\n from: dark ? white : black,\n to: dark ? white : black,\n },\n }\n }\n\n // Variants:\n // - primary\n // - positive\n // - caution\n // - critical\n return {\n bg: tones[name].bg[dark ? 0 : 1],\n fg: tones[name].fg[dark ? 0 : 1],\n border: tones[name].border[dark ? 0 : 1],\n focusRing: tones[name].focusRing[dark ? 0 : 1],\n shadow: {\n outline: black,\n umbra: black,\n penumbra: black,\n ambient: black,\n },\n skeleton: {\n from: dark ? white : black,\n to: dark ? white : black,\n },\n }\n },\n\n solid: ({base, dark, state, tone}) => {\n const color = colors[tone]\n\n if (state === 'hovered') {\n return {\n bg: dark ? color.light : color.dark,\n bg2: dark ? color.light : color.dark,\n border: dark ? color.lighter : color.darker,\n fg: dark ? color.darkest : color.lightest,\n icon: dark ? color.darkest : color.lightest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n }\n\n return {\n bg: color.base,\n bg2: color.base,\n border: dark ? color.light : color.dark,\n fg: dark ? color.darkest : color.lightest,\n icon: dark ? color.darkest : color.lightest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n muted: ({base, dark, state, tone}) => {\n const color = colors[tone]\n\n if (state === 'hovered') {\n return {\n bg: dark ? color.darker : color.lighter,\n bg2: dark ? color.darker : color.lighter,\n border: dark ? color.lighter : color.darker,\n fg: dark ? color.lightest : color.darkest,\n icon: dark ? color.lightest : color.darkest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n }\n\n return {\n bg: dark ? color.darkest : color.lightest,\n bg2: dark ? color.darkest : color.lightest,\n border: dark ? color.darker : color.lighter,\n fg: dark ? color.lighter : color.darker,\n icon: dark ? color.lighter : color.darker,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n button: ({base, mode, muted, solid}) => {\n if (mode === 'bleed') {\n return {\n ...muted,\n enabled: {\n bg: 'transparent',\n bg2: 'transparent',\n fg: muted.enabled.fg,\n icon: muted.enabled.fg,\n border: 'transparent',\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n },\n hovered: {\n bg: muted.enabled.bg,\n bg2: muted.enabled.bg,\n fg: muted.hovered.fg,\n icon: muted.hovered.fg,\n border: 'transparent',\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n },\n }\n }\n\n if (mode === 'ghost')\n return {\n ...solid,\n enabled: muted.enabled,\n }\n\n return solid\n },\n\n card: ({base}) => {\n return {\n bg: black,\n bg2: black,\n fg: black,\n icon: black,\n border: black,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n input: () => {\n return {\n bg: black,\n bg2: black,\n fg: black,\n border: black,\n placeholder: black,\n }\n },\n\n selectable: ({muted, state, tone}) => {\n return muted[tone][state]\n },\n\n spot: ({key}) => {\n return spots[key]\n },\n\n syntax: () => ({\n atrule: black,\n attrName: black,\n attrValue: black,\n attribute: black,\n boolean: black,\n builtin: black,\n cdata: black,\n char: black,\n class: black,\n className: black,\n comment: black,\n constant: black,\n deleted: black,\n doctype: black,\n entity: black,\n function: black,\n hexcode: black,\n id: black,\n important: black,\n inserted: black,\n keyword: black,\n number: black,\n operator: black,\n prolog: black,\n property: black,\n pseudoClass: black,\n pseudoElement: black,\n punctuation: black,\n regex: black,\n selector: black,\n string: black,\n symbol: black,\n tag: black,\n unit: black,\n url: black,\n variable: black,\n }),\n}\n","import {ThemeColorBase, ThemeColorInput, ThemeColorMuted, ThemeColorSolid} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createInputModes(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorInput {\n return {\n default: {\n enabled: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'enabled',\n solid: solid.default,\n muted: muted.default,\n }),\n disabled: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'disabled',\n solid: solid.default,\n muted: muted.default,\n }),\n hovered: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'hovered',\n solid: solid.default,\n muted: muted.default,\n }),\n readOnly: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'readOnly',\n solid: solid.default,\n muted: muted.default,\n }),\n },\n invalid: {\n enabled: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'enabled',\n solid: solid.default,\n muted: muted.default,\n }),\n disabled: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'disabled',\n solid: solid.default,\n muted: muted.default,\n }),\n hovered: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'hovered',\n solid: solid.default,\n muted: muted.default,\n }),\n readOnly: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'readOnly',\n solid: solid.default,\n muted: muted.default,\n }),\n },\n }\n}\n","import {ThemeColorBase, ThemeColorCardToneKey, ThemeColorMuted} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createMutedTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorCardToneKey,\n): ThemeColorMuted {\n return {\n default: {\n enabled: opts.muted({base, dark, tone: 'default', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'default', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'default', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'default', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'default', name, state: 'selected'}),\n },\n transparent: {\n enabled: opts.muted({base, dark, tone: 'transparent', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'transparent', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'transparent', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'transparent', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'transparent', name, state: 'selected'}),\n },\n primary: {\n enabled: opts.muted({base, dark, tone: 'primary', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'primary', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'primary', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'primary', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'primary', name, state: 'selected'}),\n },\n positive: {\n enabled: opts.muted({base, dark, tone: 'positive', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'positive', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'positive', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'positive', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'positive', name, state: 'selected'}),\n },\n caution: {\n enabled: opts.muted({base, dark, tone: 'caution', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'caution', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'caution', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'caution', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'caution', name, state: 'selected'}),\n },\n critical: {\n enabled: opts.muted({base, dark, tone: 'critical', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'critical', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'critical', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'critical', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'critical', name, state: 'selected'}),\n },\n }\n}\n","import {ThemeColorBase, ThemeColorSpot} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSpot(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n): ThemeColorSpot {\n return {\n gray: opts.spot({base, dark, key: 'gray'}),\n blue: opts.spot({base, dark, key: 'blue'}),\n purple: opts.spot({base, dark, key: 'purple'}),\n magenta: opts.spot({base, dark, key: 'magenta'}),\n red: opts.spot({base, dark, key: 'red'}),\n orange: opts.spot({base, dark, key: 'orange'}),\n yellow: opts.spot({base, dark, key: 'yellow'}),\n green: opts.spot({base, dark, key: 'green'}),\n cyan: opts.spot({base, dark, key: 'cyan'}),\n }\n}\n","import {\n ThemeColorGenericState,\n ThemeColorBase,\n ThemeColorButtonModeKey,\n ThemeColorButtonStates,\n ThemeColorInputState,\n ThemeColorMuted,\n ThemeColorMutedTone,\n ThemeColorSolid,\n ThemeColorSolidTone,\n ThemeColorSyntax,\n ThemeColorName,\n ThemeColorScheme,\n ThemeColorSchemes,\n ThemeColor,\n ThemeColorToneKey,\n ThemeColorSpotKey,\n} from '../../../system'\nimport {createSelectableTones} from './_selectable/createSelectableTones'\nimport {createSolidTones} from './_solid/createSolidTones'\nimport {createButtonModes} from './button/createButtonModes'\nimport {createCardStates} from './card/createCardStates'\nimport {defaultOpts} from './defaults'\nimport {createInputModes} from './input/createInputModes'\nimport {createMutedTones} from './muted/createMuted'\nimport {createSpot} from './spot/createSpot'\n\n/**\n * @public\n * @deprecated Use `buildColorTheme` instead.\n */\nexport interface ThemeColorBuilderOpts {\n base: (opts: {dark: boolean; name: ThemeColorName}) => ThemeColorBase\n solid: (opts: {\n base: ThemeColorBase\n dark: boolean\n tone: ThemeColorToneKey\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 ThemeColorGenericState,\n ThemeColorMuted,\n ThemeColorSelectable_v2,\n ThemeColorState_v2,\n ThemeColorCard_v2,\n ThemeColorInputStates,\n ThemeColorInputMode_v2,\n ThemeColorInputState,\n ThemeColorInputState_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 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 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 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 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 primary: 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 primary: themeColor_v0_v2(color.dark.primary),\n positive: themeColor_v0_v2(color.dark.positive),\n caution: themeColor_v0_v2(color.dark.caution),\n critical: themeColor_v0_v2(color.dark.critical),\n },\n },\n container,\n font,\n input: {\n ...defaultThemeConfig.input,\n ...input,\n checkbox: {\n ...defaultThemeConfig.input.checkbox,\n ...input.checkbox,\n },\n radio: {\n ...defaultThemeConfig.input.radio,\n ...input.radio,\n },\n switch: {\n ...defaultThemeConfig.input.switch,\n ...input.switch,\n },\n },\n layer: layer ?? defaultThemeConfig.layer,\n media,\n radius,\n shadow,\n space,\n style,\n }\n\n cache.set(v0, v2)\n\n return v2\n}\n","import {\n RootTheme,\n RootTheme_v2,\n ThemeColor,\n ThemeColorCard_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState,\n ThemeColorInputState_v2,\n ThemeColorInputStates,\n} from '../system'\n\nconst cache = new WeakMap<RootTheme_v2, RootTheme>()\n\n/** @internal */\nexport function v2_v0(v2: RootTheme_v2): RootTheme {\n const cachedTheme = cache.get(v2)\n\n if (cachedTheme) return cachedTheme\n\n const {\n avatar,\n button,\n color,\n container,\n font: fonts,\n input,\n media,\n radius,\n shadow: shadows,\n space,\n style: styles,\n } = v2\n\n return {\n _version: 0,\n avatar,\n button,\n container,\n color: {\n light: {\n transparent: themeColor_v2_v0(color.light.transparent),\n default: themeColor_v2_v0(color.light.default),\n primary: themeColor_v2_v0(color.light.primary),\n positive: themeColor_v2_v0(color.light.positive),\n caution: themeColor_v2_v0(color.light.caution),\n critical: themeColor_v2_v0(color.light.critical),\n },\n dark: {\n transparent: themeColor_v2_v0(color.dark.transparent),\n default: themeColor_v2_v0(color.dark.default),\n primary: themeColor_v2_v0(color.dark.primary),\n positive: themeColor_v2_v0(color.dark.positive),\n caution: themeColor_v2_v0(color.dark.caution),\n critical: themeColor_v2_v0(color.dark.critical),\n },\n },\n focusRing: input.text.focusRing,\n fonts,\n input,\n media,\n radius,\n shadows,\n space,\n styles,\n\n v2,\n }\n}\n\nfunction themeColor_v2_v0(color_v2: ThemeColorCard_v2): ThemeColor {\n return {\n base: {\n bg: color_v2.bg,\n fg: color_v2.fg,\n border: color_v2.border,\n focusRing: color_v2.focusRing,\n shadow: color_v2.shadow,\n },\n button: color_v2.button,\n card: color_v2.selectable.default,\n dark: color_v2._dark,\n input: {\n default: inputStatesThemeColor_v2_v0(color_v2.input.default),\n invalid: inputStatesThemeColor_v2_v0(color_v2.input.invalid),\n },\n muted: {\n ...color_v2.button.ghost,\n transparent: color_v2.button.ghost.default,\n },\n solid: {\n ...color_v2.button.default,\n transparent: color_v2.button.default.default,\n },\n selectable: color_v2.selectable,\n spot: {\n gray: color_v2.avatar.gray.bg,\n blue: color_v2.avatar.blue.bg,\n purple: color_v2.avatar.purple.bg,\n magenta: color_v2.avatar.magenta.bg,\n red: color_v2.avatar.red.bg,\n orange: color_v2.avatar.orange.bg,\n yellow: color_v2.avatar.yellow.bg,\n green: color_v2.avatar.green.bg,\n cyan: color_v2.avatar.cyan.bg,\n },\n syntax: color_v2.syntax,\n }\n}\n\nfunction inputStatesThemeColor_v2_v0(t: ThemeColorInputMode_v2): ThemeColorInputStates {\n return {\n enabled: inputStateThemeColor_v2_v0(t.enabled),\n disabled: inputStateThemeColor_v2_v0(t.disabled),\n readOnly: inputStateThemeColor_v2_v0(t.readOnly),\n hovered: inputStateThemeColor_v2_v0(t.hovered),\n }\n}\n\nfunction inputStateThemeColor_v2_v0(t: ThemeColorInputState_v2): ThemeColorInputState {\n return {\n bg: t.bg,\n bg2: t.muted.bg,\n border: t.border,\n fg: t.fg,\n placeholder: t.placeholder,\n }\n}\n","import {COLOR_HUES} from '@sanity/color'\n\n/** @public */\nexport const THEME_COLOR_SCHEMES = ['light', 'dark'] as const\n\n/** @public */\nexport const THEME_COLOR_BLEND_MODES = ['multiply', 'screen'] as const\n\n/** @public */\nexport const THEME_COLOR_CARD_TONES = [\n 'transparent',\n 'default',\n 'primary',\n 'positive',\n 'caution',\n 'critical',\n] as const\n\n/** @public */\nexport const THEME_COLOR_STATE_TONES = [\n 'default',\n 'primary',\n 'positive',\n 'caution',\n 'critical',\n] as const\n\n/** @public */\nexport const THEME_COLOR_STATES = ['enabled', 'hovered', 'pressed', 'selected', 'disabled'] as const\n\n/** @public */\nexport const THEME_COLOR_BUTTON_MODES = ['default', 'ghost', 'bleed'] as const\n\n/** @public */\nexport const THEME_COLOR_INPUT_MODES = ['default', 'invalid'] as const\n\n/** @public */\nexport const THEME_COLOR_INPUT_STATES = ['enabled', 'hovered', 'readOnly', 'disabled'] as const\n\n/** @public */\nexport const THEME_COLOR_AVATAR_COLORS = COLOR_HUES\n","import {COLOR_HUES, COLOR_TINTS, ColorHueKey, ColorTintKey} from '@sanity/color'\nimport {THEME_COLOR_BLEND_MODES, THEME_COLOR_BUTTON_MODES} from './_constants'\nimport {ThemeColorBlendModeKey, ThemeColorButtonModeKey} from './_system'\n\n/** @internal */\nexport function isColorBlendModeValue(str: string): str is ThemeColorBlendModeKey {\n return THEME_COLOR_BLEND_MODES.includes(str as ThemeColorBlendModeKey)\n}\n\n/** @internal */\nexport function isColorHueKey(str: string): str is ColorHueKey {\n return COLOR_HUES.includes(str as ColorHueKey)\n}\n\n/** @internal */\nexport function isColorTintKey(str: string): str is ColorTintKey {\n return COLOR_TINTS.includes(str as ColorTintKey)\n}\n\n/** @internal */\nexport function isColorButtonMode(str: string): str is ThemeColorButtonModeKey {\n return THEME_COLOR_BUTTON_MODES.includes(str as ThemeColorButtonModeKey)\n}\n","import {ColorHueKey, ColorTintKey} from '@sanity/color'\nimport {\n THEME_COLOR_AVATAR_COLORS,\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_INPUT_MODES,\n THEME_COLOR_INPUT_STATES,\n THEME_COLOR_STATES,\n THEME_COLOR_STATE_TONES,\n ThemeColorBlendModeKey,\n} from '../system'\n\n/** @public */\nexport const COLOR_CONFIG_STATE_KEYS = [\n '_hue',\n 'bg',\n 'fg',\n 'border',\n 'focusRing',\n 'muted/fg',\n 'accent/fg',\n 'link/fg',\n 'code/bg',\n 'code/fg',\n 'skeleton/from',\n 'skeleton/to',\n 'status/dot',\n 'status/icon',\n] as const\n\n/** @public */\nexport type ColorConfigStateKey = (typeof COLOR_CONFIG_STATE_KEYS)[number]\n\n/** @public */\nexport const COLOR_CONFIG_CARD_KEYS = [\n ...COLOR_CONFIG_STATE_KEYS,\n '_hue',\n 'bg',\n 'fg',\n 'border',\n 'focusRing',\n 'shadow/outline',\n 'shadow/umbra',\n 'shadow/penumbra',\n 'shadow/ambient',\n] as const\n\n/** @public */\nexport type ColorConfigCardKey = (typeof COLOR_CONFIG_CARD_KEYS)[number]\n\n/** @public */\nexport const COLOR_CONFIG_BLEND_KEYS = ['_blend'] as const\n\n/** @public */\nexport type ColorConfigBlendKey = (typeof COLOR_CONFIG_BLEND_KEYS)[number]\n\n/** @public */\nexport type ColorConfigOpacityValue = `0` | `0.${number}` | `1`\n\n/** @public */\nexport type ColorConfigValue =\n | `black`\n | `white`\n | `black/${ColorConfigOpacityValue}`\n | `white/${ColorConfigOpacityValue}`\n | `${ColorHueKey}`\n | `${ColorHueKey} ${number}%`\n | `${ColorHueKey}/${ColorTintKey}`\n | `${ColorHueKey}/${ColorTintKey} ${number}%`\n | `${ColorHueKey}/${ColorTintKey}/${ColorConfigOpacityValue}`\n | `${ColorTintKey}`\n | `${ColorTintKey} ${number}%`\n | `${ColorTintKey}/${ColorConfigOpacityValue}`\n\n/** @public */\nexport type ThemeColorTokenValue = [ColorConfigValue, ColorConfigValue]\n\n/** @public */\nexport type ColorBlendModeTokenValue = [ThemeColorBlendModeKey, ThemeColorBlendModeKey]\n\n/** @public */\nexport const COLOR_CONFIG_AVATAR_COLORS = ['*', ...THEME_COLOR_AVATAR_COLORS] as const\n\n/** @public */\nexport type ColorConfigAvatarColor = (typeof COLOR_CONFIG_AVATAR_COLORS)[number]\n\n/** @public */\nexport const COLOR_CONFIG_CARD_TONES = ['*', ...THEME_COLOR_CARD_TONES] as const\n\n/** @public */\nexport type ColorConfigCardTone = (typeof COLOR_CONFIG_CARD_TONES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_STATE_TONES = ['*', ...THEME_COLOR_STATE_TONES] as const\n\n/** @public */\nexport type ColorConfigStateTone = (typeof COLOR_CONFIG_STATE_TONES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_STATES = ['*', ...THEME_COLOR_STATES] as const\n\n/** @public */\nexport type ColorConfigState = (typeof COLOR_CONFIG_STATES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_INPUT_MODES = ['*', ...THEME_COLOR_INPUT_MODES] as const\n\n/** @public */\nexport type ColorConfigInputMode = (typeof COLOR_CONFIG_INPUT_MODES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_INPUT_STATES = ['*', ...THEME_COLOR_INPUT_STATES] as const\n\n/** @public */\nexport type ColorConfigInputState = (typeof COLOR_CONFIG_INPUT_STATES)[number]\n","import {isColorButtonMode} from '../../system'\nimport {\n isColorConfigBaseKey,\n isColorConfigBaseTone,\n isColorConfigBlendKey,\n isColorConfigStateKey,\n isColorConfigStateTone,\n} from '../helpers'\nimport {TokenKeyNode} from './types'\n\n/** @internal */\nexport function parseTokenKey(str: string): TokenKeyNode | undefined {\n const segments = str.split('/')\n const segment0 = segments.shift() || ''\n\n if (isColorConfigBaseTone(segment0)) {\n const key = segments.join('/')\n\n if (isColorConfigBaseKey(key)) {\n return {\n type: 'base',\n tone: segment0,\n key,\n }\n }\n\n if (isColorConfigBlendKey(key)) {\n return {\n type: 'base',\n tone: segment0,\n key,\n }\n }\n }\n\n if (segment0 === 'button') {\n const segment1 = segments.shift() || ''\n\n if (isColorConfigStateTone(segment1)) {\n const segment2 = segments.shift() || ''\n\n if (isColorButtonMode(segment2)) {\n const key = segments.join('/')\n\n if (isColorConfigStateKey(key)) {\n return {\n type: 'button',\n tone: segment1,\n mode: segment2,\n key,\n }\n }\n\n if (isColorConfigBlendKey(key)) {\n return {\n type: 'button',\n tone: segment1,\n mode: segment2,\n key,\n }\n }\n }\n }\n }\n\n return undefined\n}\n","import {isColorBlendModeValue, isColorHueKey, isColorTintKey} from '../../system'\nimport {isColorOpacityValue, isColorValue} from '../helpers'\nimport {TokenValueNode} from './types'\n\nfunction isColorMixPercentValue(str: string): str is `${number}%` {\n return /^\\d+%$/.test(str)\n}\n\n/** @internal */\nexport function parseTokenValue(str: string): TokenValueNode | undefined {\n const segments = str.split('/')\n\n let nextSegment = segments.shift() || ''\n\n const [segment0, segment0mix] = nextSegment.split(' ')\n\n if (isColorTintKey(segment0)) {\n const tint = segment0\n const segment1 = segments.shift() || ''\n\n if (isColorMixPercentValue(segment0mix)) {\n const mix = Number(segment0mix.slice(0, -1)) / 100\n\n return {\n type: 'color',\n tint,\n mix,\n }\n }\n\n if (isColorOpacityValue(segment1)) {\n const opacity = Number(segment1)\n\n return {\n type: 'color',\n tint,\n opacity,\n }\n }\n\n return {\n type: 'color',\n tint,\n }\n }\n\n if (isColorValue(segment0)) {\n const key = segment0 as 'black' | 'white'\n const segment1 = segments.shift() || ''\n\n if (isColorMixPercentValue(segment0mix)) {\n const mix = Number(segment0mix.slice(0, -1)) / 100\n\n return {\n type: 'color',\n key,\n mix,\n }\n }\n\n if (isColorOpacityValue(segment1)) {\n const opacity = Number(segment1)\n\n return {\n type: 'color',\n key,\n opacity,\n }\n }\n\n return {\n type: 'color',\n key,\n }\n }\n\n if (isColorHueKey(segment0)) {\n const hue = segment0\n\n nextSegment = segments.shift() || ''\n\n const [segment1, segment1mix] = nextSegment.split(' ')\n\n if (isColorTintKey(segment1)) {\n const tint = segment1\n const segment2 = segments.shift() || ''\n\n if (isColorMixPercentValue(segment1mix)) {\n const mix = Number(segment1mix.slice(0, -1)) / 100\n\n return {\n type: 'color',\n hue,\n tint,\n mix,\n }\n }\n\n if (isColorOpacityValue(segment2)) {\n const opacity = Number(segment2)\n\n return {\n type: 'color',\n hue,\n tint,\n opacity,\n }\n }\n\n return {\n type: 'color',\n hue,\n tint,\n }\n }\n\n return {\n type: 'hue',\n value: hue,\n }\n }\n\n if (isColorBlendModeValue(segment0)) {\n const value = segment0\n\n return {\n type: 'blendMode',\n value,\n }\n }\n\n return undefined\n}\n","import {\n COLOR_CONFIG_CARD_KEYS,\n COLOR_CONFIG_CARD_TONES,\n COLOR_CONFIG_BLEND_KEYS,\n COLOR_CONFIG_STATE_KEYS,\n COLOR_CONFIG_STATE_TONES,\n ColorConfigCardKey,\n ColorConfigCardTone,\n ColorConfigBlendKey,\n ColorConfigOpacityValue,\n ColorConfigStateKey,\n ColorConfigStateTone,\n ColorConfigValue,\n} from './system'\nimport {parseTokenValue} from './tokens'\n\n/** @internal */\nexport function isColorConfigBaseTone(str: string): str is ColorConfigCardTone {\n return COLOR_CONFIG_CARD_TONES.includes(str as ColorConfigCardTone)\n}\n\n/** @internal */\nexport function isColorConfigBaseKey(str: string): str is ColorConfigCardKey {\n return COLOR_CONFIG_CARD_KEYS.includes(str as ColorConfigCardKey)\n}\n\n/** @internal */\nexport function isColorConfigStateKey(str: string): str is ColorConfigStateKey {\n return COLOR_CONFIG_STATE_KEYS.includes(str as ColorConfigStateKey)\n}\n\n/** @internal */\nexport function isColorConfigStateTone(str: string): str is ColorConfigStateTone {\n return COLOR_CONFIG_STATE_TONES.includes(str as ColorConfigStateTone)\n}\n\n/** @internal */\nexport function isColorConfigBlendKey(str: string): str is ColorConfigBlendKey {\n return COLOR_CONFIG_BLEND_KEYS.includes(str as ColorConfigBlendKey)\n}\n\n/** @internal */\nexport function isColorTokenValue(str: string): str is ColorConfigValue {\n return parseTokenValue(str)?.type === 'color' || parseTokenValue(str)?.type === 'hue'\n}\n\n/** @internal */\nexport function isColorValue(str: string): str is 'black' | 'white' {\n return str === 'black' || str === 'white'\n}\n\n/** @internal */\nexport function isColorOpacityValue(str: string): str is ColorConfigOpacityValue {\n return str === '0' || /^0\\.[0-9]+$/.test(str) || str === '1'\n}\n","import {TokenColorValueNode} from '../../config'\n\nexport function compileColorTokenValue(node: TokenColorValueNode): string {\n let key = ''\n\n if (node.key === 'black' || node.key === 'white') {\n key = node.key\n } else {\n key = `${node.hue}/${node.tint}`\n }\n\n if (node.mix !== undefined) {\n return `${key} ${node.mix * 100}%`\n }\n\n if (node.opacity !== undefined) {\n key += `/${node.opacity}`\n }\n\n return key\n}\n","import {ThemeColorTokenValue, parseTokenValue} from '../../config'\nimport {compileColorTokenValue} from './compileColorToken'\nimport {ColorTokenContext} from './types'\n\nconst DEFAULT_COLOR_TOKEN_VALUE: ThemeColorTokenValue = ['500', '500']\n\nexport function resolveColorTokenValue(\n context: ColorTokenContext,\n value: ThemeColorTokenValue = DEFAULT_COLOR_TOKEN_VALUE,\n): string {\n const {hue, scheme} = context\n const node = parseTokenValue(value[scheme === 'light' ? 0 : 1])\n\n if (!node || node.type !== 'color') {\n throw new Error(`Invalid color token: ${value[0]}`)\n }\n\n return compileColorTokenValue({...node, hue: node.hue || hue})\n}\n","import {ThemeColorTokens} from '../config'\n\nexport const defaultColorTokens: ThemeColorTokens = {\n base: {\n '*': {\n _blend: ['multiply', 'screen'],\n accent: {\n fg: ['purple/600', 'purple/400'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n backdrop: ['gray/200/0.5', 'black/0.5'],\n badge: {\n '*': {\n bg: ['100', '900'],\n fg: ['600', '400'],\n icon: ['500', '500'],\n dot: ['500', '500'],\n },\n positive: {\n bg: ['200 50%', '900'],\n fg: ['600', '500'],\n },\n caution: {\n bg: ['200 50%', '900'],\n fg: ['600', '500'],\n },\n },\n bg: ['50', '950'],\n border: ['200', '800'],\n code: {\n bg: ['50', '950'],\n fg: ['600', '400'],\n },\n fg: ['800', '200'],\n focusRing: ['blue/500', 'blue/500'],\n icon: ['600', '400'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['600', '400'],\n border: ['200', '800'],\n },\n link: {\n fg: ['blue/600', 'blue/300'],\n },\n muted: {\n bg: ['50', '950'],\n fg: ['700 75%', '300 75%'],\n },\n shadow: {\n outline: ['500/0.3', '500/0.4'],\n umbra: ['gray/500/0.1', 'black/0.2'],\n penumbra: ['gray/500/0.07', 'black/0.14'],\n ambient: ['gray/500/0.06', 'black/0.12'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n transparent: {\n bg: ['50', 'black'],\n },\n default: {\n bg: ['white', '950'],\n fg: ['800', '200'],\n muted: {\n fg: ['600', '400'],\n },\n },\n primary: {_hue: 'blue'},\n 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: ['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/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: ['700', '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 badge: {\n '*': {\n bg: ['gray/700', 'gray/300'],\n fg: ['white', 'black'],\n dot: ['white', 'black'],\n icon: ['white', 'black'],\n },\n },\n bg: ['200', '800'],\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 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 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: ['100', '900'],\n fg: ['800', '200'],\n },\n selected: {\n bg: ['100', '900'],\n fg: ['800', '200'],\n },\n disabled: {\n _hue: 'gray',\n accent: {\n fg: ['200', '800'],\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 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 badge: {\n '*': {\n bg: ['100', '900'],\n fg: ['600', '400'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['white', 'black'],\n border: ['white/0', 'black/0'],\n code: {\n bg: ['50', '950'],\n fg: ['700 75%', '300 75%'],\n },\n fg: ['700', '300'],\n icon: ['700 75%', '300 75%'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['700', '300'],\n border: ['200', '800'],\n },\n link: {\n fg: ['blue/700 70%', 'blue/300 70%'],\n },\n muted: {\n bg: ['100', '950'],\n fg: ['700 75%', '300 75%'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n hovered: {\n bg: ['50', '950'],\n icon: ['700 70%', '400 70%'],\n },\n pressed: {\n bg: ['100', '900'],\n fg: ['800', '200'],\n icon: ['800 70%', '200 70%'],\n },\n selected: {\n bg: ['100', '900'],\n fg: ['800', '200'],\n icon: ['800 60%', '200 60%'],\n },\n disabled: {\n _hue: 'gray',\n accent: {\n fg: ['200', '800'],\n },\n 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: ['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 fg: ['200', '800'],\n },\n },\n },\n },\n },\n input: {\n '*': {\n '*': {\n _blend: ['multiply', 'screen'],\n bg: ['white', 'black'],\n border: ['200', '800'],\n fg: ['black', '200'],\n muted: {\n bg: ['50', '950'],\n },\n placeholder: ['400', '600 50%'],\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 fg: ['200', '800'],\n border: ['100', '900'],\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 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: ['100', '950'],\n fg: ['700 75%', '300 75%'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n hovered: {\n bg: ['50', '950'],\n },\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: ['950', '50'],\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 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 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","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport {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 {ColorHueKey} from '@sanity/color'\nimport {\n ColorConfigCardTone,\n ColorConfigInputMode,\n ColorConfigInputState,\n ColorConfigStateTone,\n ThemeColorBaseTokens,\n ThemeColorButtonTokens,\n ThemeColorInputStateTokens,\n ThemeColorInputTokens,\n ThemeColorStateTokens,\n ThemeColorStatesTokens,\n ThemeColorTokens,\n} from '../config'\nimport {defaultColorTokens} from '../defaults/colorTokens'\nimport {\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_BUTTON_MODES,\n THEME_COLOR_INPUT_MODES,\n THEME_COLOR_INPUT_STATES,\n THEME_COLOR_STATES,\n THEME_COLOR_STATE_TONES,\n ThemeColorCardToneKey,\n ThemeColorButtonModeKey,\n ThemeColorStateKey,\n ThemeColorStateToneKey,\n} from '../system'\nimport {merge} from './merge'\n\n/**\n * Convert a tree of color tokens from a sparse format to a dense format.\n */\nexport function resolveColorTokens(inputTokens?: ThemeColorTokens): ThemeColorTokens {\n const tokens = merge(defaultColorTokens, inputTokens)\n\n return {\n base: resolveBaseColorTokens(tokens),\n button: resolveButtonColorTokens(tokens),\n input: resolveInputColorTokens(tokens),\n selectable: resolveSelectableColorTokens(tokens),\n syntax: tokens.syntax,\n }\n}\n\nfunction resolveBaseColorTokens(sparseTokens: ThemeColorTokens) {\n const tokens: Partial<Record<ColorConfigCardTone, ThemeColorBaseTokens>> = {}\n\n // base tones\n for (const tone of THEME_COLOR_CARD_TONES) {\n tokens[tone] = resolveBaseColorTones(sparseTokens, tone)\n }\n\n return tokens\n}\n\nfunction resolveBaseColorTones(\n inputTokens: ThemeColorTokens,\n tone: ThemeColorCardToneKey,\n): ThemeColorBaseTokens {\n const spec = merge(inputTokens?.base?.['*'], inputTokens?.base?.[tone])\n\n const hue = spec._hue || inputTokens?.base?.[tone]?._hue || 'gray'\n\n return {\n ...spec,\n _hue: hue,\n avatar: {\n gray: merge({_hue: 'gray'}, spec.avatar?.['*'], spec.avatar?.gray),\n blue: merge({_hue: 'blue'}, spec.avatar?.['*'], spec.avatar?.blue),\n purple: merge({_hue: 'purple'}, spec.avatar?.['*'], spec.avatar?.purple),\n magenta: merge({_hue: 'magenta'}, spec.avatar?.['*'], spec.avatar?.magenta),\n red: merge({_hue: 'red'}, spec.avatar?.['*'], spec.avatar?.red),\n orange: merge({_hue: 'orange'}, spec.avatar?.['*'], spec.avatar?.orange),\n yellow: merge({_hue: 'yellow'}, spec.avatar?.['*'], spec.avatar?.yellow),\n green: merge({_hue: 'green'}, spec.avatar?.['*'], spec.avatar?.green),\n cyan: merge({_hue: 'cyan'}, spec.avatar?.['*'], spec.avatar?.cyan),\n },\n badge: {\n default: {\n _hue: inputTokens?.base?.default?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.default,\n },\n primary: {\n _hue: inputTokens?.base?.primary?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.primary,\n },\n positive: {\n _hue: inputTokens?.base?.positive?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.positive,\n },\n caution: {\n _hue: inputTokens?.base?.caution?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.caution,\n },\n critical: {\n _hue: inputTokens?.base?.critical?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.critical,\n },\n },\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: {\n gray: merge({_hue: 'gray'}, spec.avatar?.['*'], spec.avatar?.gray),\n blue: merge({_hue: 'blue'}, spec.avatar?.['*'], spec.avatar?.blue),\n purple: merge({_hue: 'purple'}, spec.avatar?.['*'], spec.avatar?.purple),\n magenta: merge({_hue: 'magenta'}, spec.avatar?.['*'], spec.avatar?.magenta),\n red: merge({_hue: 'red'}, spec.avatar?.['*'], spec.avatar?.red),\n orange: merge({_hue: 'orange'}, spec.avatar?.['*'], spec.avatar?.orange),\n yellow: merge({_hue: 'yellow'}, spec.avatar?.['*'], spec.avatar?.yellow),\n green: merge({_hue: 'green'}, spec.avatar?.['*'], spec.avatar?.green),\n cyan: merge({_hue: 'cyan'}, spec.avatar?.['*'], spec.avatar?.cyan),\n },\n badge: {\n default: {\n _hue: inputTokens?.base?.default?._hue,\n ...spec.badge?.['*'],\n ...spec.badge?.default,\n },\n primary: {\n _hue: inputTokens?.base?.primary?._hue,\n ...spec.badge?.['*'],\n ...spec.badge?.primary,\n },\n positive: {\n _hue: inputTokens?.base?.positive?._hue,\n ...spec.badge?.['*'],\n ...spec.badge?.positive,\n },\n caution: {\n _hue: inputTokens?.base?.caution?._hue,\n ...spec.badge?.['*'],\n ...spec.badge?.caution,\n },\n critical: {\n _hue: inputTokens?.base?.critical?._hue,\n ...spec.badge?.['*'],\n ...spec.badge?.critical,\n },\n },\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: {\n gray: merge({_hue: 'gray'}, spec.avatar?.['*'], spec.avatar?.gray),\n blue: merge({_hue: 'blue'}, spec.avatar?.['*'], spec.avatar?.blue),\n purple: merge({_hue: 'purple'}, spec.avatar?.['*'], spec.avatar?.purple),\n magenta: merge({_hue: 'magenta'}, spec.avatar?.['*'], spec.avatar?.magenta),\n red: merge({_hue: 'red'}, spec.avatar?.['*'], spec.avatar?.red),\n orange: merge({_hue: 'orange'}, spec.avatar?.['*'], spec.avatar?.orange),\n yellow: merge({_hue: 'yellow'}, spec.avatar?.['*'], spec.avatar?.yellow),\n green: merge({_hue: 'green'}, spec.avatar?.['*'], spec.avatar?.green),\n cyan: merge({_hue: 'cyan'}, spec.avatar?.['*'], spec.avatar?.cyan),\n },\n badge: {\n default: {\n _hue: inputTokens?.base?.default?._hue,\n ...spec.badge?.['*'],\n ...spec.badge?.default,\n },\n primary: {\n _hue: inputTokens?.base?.primary?._hue,\n ...spec.badge?.['*'],\n ...spec.badge?.primary,\n },\n positive: {\n _hue: inputTokens?.base?.positive?._hue,\n ...spec.badge?.['*'],\n ...spec.badge?.positive,\n },\n caution: {\n _hue: inputTokens?.base?.caution?._hue,\n ...spec.badge?.['*'],\n ...spec.badge?.caution,\n },\n critical: {\n _hue: inputTokens?.base?.critical?._hue,\n ...spec.badge?.['*'],\n ...spec.badge?.critical,\n },\n },\n }\n}\n","import {ThemeColorBadgeTokens, ThemeColorStateTokens, ThemeConfig} from '../config'\nimport {\n THEME_COLOR_BUTTON_MODES,\n THEME_COLOR_STATES,\n THEME_COLOR_STATE_TONES,\n ThemeColorAvatarColorKey,\n ThemeColorCardToneKey,\n ThemeColorButtonModeKey,\n ThemeColorStateKey,\n ThemeColorStateToneKey,\n ThemeColorAvatar_v2,\n ThemeColorBadge_v2,\n ThemeColorSyntax,\n ThemeColorSchemes_v2,\n ThemeColorScheme_v2,\n ThemeColorCard_v2,\n ThemeColorSchemeKey,\n ThemeColorShadow,\n ThemeColorState_v2,\n ThemeColorButton_v2,\n ThemeColorButtonMode_v2,\n ThemeColorButtonTone_v2,\n ThemeColorAvatarHue_v2,\n ThemeColorInput_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n} from '../system'\nimport {ColorTokenContext, resolveColorTokenValue as _color} from './colorToken'\nimport {resolveColorTokens} from './resolveColorTokens'\n\nexport function buildColorTheme(config?: ThemeConfig): ThemeColorSchemes_v2 {\n const resolvedConfig: ThemeConfig = {\n ...config,\n color: resolveColorTokens(config?.color),\n }\n\n return {\n light: buildColorScheme({scheme: 'light'}, resolvedConfig),\n dark: buildColorScheme({scheme: 'dark'}, resolvedConfig),\n }\n}\n\nfunction buildColorScheme(\n options: {scheme: ThemeColorSchemeKey},\n config: ThemeConfig,\n): ThemeColorScheme_v2 {\n const {scheme} = options\n\n return {\n transparent: buildCardColorTheme({scheme, tone: 'transparent'}, config),\n default: buildCardColorTheme({scheme, tone: 'default'}, config),\n primary: buildCardColorTheme({scheme, tone: 'primary'}, config),\n positive: buildCardColorTheme({scheme, tone: 'positive'}, config),\n caution: buildCardColorTheme({scheme, tone: 'caution'}, config),\n critical: buildCardColorTheme({scheme, tone: 'critical'}, config),\n }\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}, 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}, 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 return {\n default: _buildBadgeColorTheme(tokens, {scheme, tone: 'default'}, config),\n primary: _buildBadgeColorTheme(tokens, {scheme, tone: 'primary'}, config),\n positive: _buildBadgeColorTheme(tokens, {scheme, tone: 'positive'}, config),\n caution: _buildBadgeColorTheme(tokens, {scheme, tone: 'caution'}, config),\n critical: _buildBadgeColorTheme(tokens, {scheme, tone: 'critical'}, config),\n }\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},\n config?: ThemeConfig,\n): ThemeColorButton_v2 {\n const {scheme} = options\n\n const modes: Partial<ThemeColorButton_v2> = {}\n\n for (const mode of THEME_COLOR_BUTTON_MODES) {\n modes[mode] = buildButtonTonesColorTheme({scheme, mode}, config)\n }\n\n return modes as ThemeColorButton_v2\n}\n\nfunction buildButtonTonesColorTheme(\n options: {\n scheme: ThemeColorSchemeKey\n mode: ThemeColorButtonModeKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonMode_v2 {\n const {mode, scheme} = options\n\n const tones: Partial<ThemeColorButtonMode_v2> = {}\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n tones[tone] = buildButtonStatesColorTheme({mode, scheme, tone}, config)\n }\n\n return tones as ThemeColorButtonMode_v2\n}\n\nfunction buildButtonStatesColorTheme(\n options: {\n mode: ThemeColorButtonModeKey\n scheme: ThemeColorSchemeKey\n tone: ThemeColorStateToneKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonTone_v2 {\n const {mode, scheme, tone} = options\n\n const states: Partial<ThemeColorButtonTone_v2> = {}\n\n for (const state of THEME_COLOR_STATES) {\n states[state] = buildButtonStateColorTheme({mode, tone, scheme, state}, config)\n }\n\n return states as ThemeColorButtonTone_v2\n}\n\nfunction buildButtonStateColorTheme(\n options: {\n mode: ThemeColorButtonModeKey\n tone: ThemeColorStateToneKey\n scheme: ThemeColorSchemeKey\n state: ThemeColorStateKey\n },\n config?: ThemeConfig,\n): ThemeColorState_v2 {\n const {mode, tone, scheme, state} = options\n const tokens = config?.color?.button?.[mode]?.[tone]?.[state]\n const hue = tokens?._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', tone}, config),\n hovered: buildInputStateColorTheme({mode, scheme, state: 'hovered', tone}, config),\n readOnly: buildInputStateColorTheme({mode, scheme, state: 'readOnly', tone}, config),\n disabled: buildInputStateColorTheme({mode, scheme, state: 'disabled', tone}, config),\n }\n}\n\nfunction buildInputStateColorTheme(\n options: {\n mode: 'default' | 'invalid'\n scheme: ThemeColorSchemeKey\n state: 'enabled' | 'hovered' | 'readOnly' | 'disabled'\n tone: ThemeColorCardToneKey\n },\n config?: ThemeConfig,\n): ThemeColorInputState_v2 {\n const {mode, tone, scheme, state} = options\n const tokens = config?.color?.input?.[mode]?.[state]\n const hue = tokens?._hue || config?.color?.base?.[tone]?._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 },\n config?: ThemeConfig,\n): ThemeColorButtonMode_v2 {\n const {scheme} = options\n\n const tones: Partial<ThemeColorButtonMode_v2> = {}\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n tones[tone] = buildSelectableStatesColorTheme({scheme, tone}, config)\n }\n\n return tones as ThemeColorButtonMode_v2\n}\n\nfunction buildSelectableStatesColorTheme(\n options: {\n scheme: ThemeColorSchemeKey\n tone: ThemeColorStateToneKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonTone_v2 {\n const {scheme, tone} = options\n\n const states: Partial<ThemeColorButtonTone_v2> = {}\n\n for (const state of THEME_COLOR_STATES) {\n states[state] = buildSelectableStateColorTheme({tone, scheme, state}, config)\n }\n\n return states as ThemeColorButtonTone_v2\n}\n\nfunction buildSelectableStateColorTheme(\n options: {\n scheme: ThemeColorSchemeKey\n state: ThemeColorStateKey\n tone: ThemeColorStateToneKey\n },\n config?: ThemeConfig,\n): ThemeColorState_v2 {\n const {scheme, state, tone} = options\n const tokens = config?.color?.selectable?.[tone]?.[state]\n const hue = tokens?._hue || 'gray'\n const blendMode = tokens?._blend || ['screen', 'multiply']\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n accent: {\n fg: _color(context, tokens?.accent?.fg),\n },\n avatar: buildAvatarColorTheme({scheme}, tokens),\n badge: buildBadgeColorTheme(tokens?.badge, {scheme}, config),\n bg: _color(context, tokens?.bg),\n border: _color(context, tokens?.border),\n code: {\n bg: _color(context, tokens?.code?.bg),\n fg: _color(context, tokens?.code?.fg),\n },\n fg: _color(context, tokens?.fg),\n icon: _color(context, tokens?.icon),\n muted: {\n bg: _color(context, tokens?.muted?.bg),\n fg: _color(context, tokens?.muted?.fg),\n },\n kbd: {\n bg: _color(context, tokens?.kbd?.bg),\n fg: _color(context, tokens?.kbd?.fg),\n border: _color(context, tokens?.kbd?.border),\n },\n link: {\n fg: _color(context, tokens?.link?.fg),\n },\n skeleton: {\n from: _color(context, tokens?.skeleton?.from),\n to: _color(context, tokens?.skeleton?.to),\n },\n }\n}\n\nfunction buildSyntaxColorTheme(\n options: {scheme: ThemeColorSchemeKey},\n config?: ThemeConfig,\n): ThemeColorSyntax {\n const {scheme} = options\n const tokens = config?.color?.syntax\n const context: ColorTokenContext = {hue: 'gray', scheme}\n\n return {\n atrule: _color(context, tokens?.atrule),\n attrName: _color(context, tokens?.attrName),\n attrValue: _color(context, tokens?.attrValue),\n attribute: _color(context, tokens?.attribute),\n boolean: _color(context, tokens?.boolean),\n builtin: _color(context, tokens?.builtin),\n cdata: _color(context, tokens?.cdata),\n char: _color(context, tokens?.char),\n class: _color(context, tokens?.class),\n className: _color(context, tokens?.className),\n comment: _color(context, tokens?.comment),\n constant: _color(context, tokens?.constant),\n deleted: _color(context, tokens?.deleted),\n doctype: _color(context, tokens?.doctype),\n entity: _color(context, tokens?.entity),\n function: _color(context, tokens?.function),\n hexcode: _color(context, tokens?.hexcode),\n id: _color(context, tokens?.id),\n important: _color(context, tokens?.important),\n inserted: _color(context, tokens?.inserted),\n keyword: _color(context, tokens?.keyword),\n number: _color(context, tokens?.number),\n operator: _color(context, tokens?.operator),\n prolog: _color(context, tokens?.prolog),\n property: _color(context, tokens?.property),\n pseudoClass: _color(context, tokens?.pseudoClass),\n pseudoElement: _color(context, tokens?.pseudoElement),\n punctuation: _color(context, tokens?.punctuation),\n regex: _color(context, tokens?.regex),\n selector: _color(context, tokens?.selector),\n string: _color(context, tokens?.string),\n symbol: _color(context, tokens?.symbol),\n tag: _color(context, tokens?.tag),\n unit: _color(context, tokens?.unit),\n url: _color(context, tokens?.url),\n variable: _color(context, tokens?.variable),\n }\n}\n","import {color} from '@sanity/color'\n\nimport {ThemeColorPalette} from '../config'\n\nexport const defaultColorPalette: ThemeColorPalette = color\n","import {RGB, RGBA} from '../types'\n\nfunction mixChannel(b: number, s: number, weight: number) {\n const diff = s - b\n\n const delta = diff * weight\n\n return b + delta\n}\n\n/**\n * Apply the \\`mix\\` blend mode\n * @internal\n */\nexport function mix(b: RGB | RGBA, s: RGB | RGBA, weight: number): RGB {\n return {\n r: mixChannel(b.r, s.r, weight),\n g: mixChannel(b.g, s.g, weight),\n b: mixChannel(b.b, s.b, weight),\n }\n}\n","import {RGB, RGBA} from '../types'\n\nfunction multiplyChannel(b: number, s: number) {\n return b * s\n}\n\n/**\n * Apply the \\`multiply\\` blend mode\n * Source: https://www.w3.org/TR/compositing-1/#blendingmultiply\n * @internal\n */\nexport function multiply(b: RGB | RGBA, s: RGB | RGBA): RGB {\n return {\n r: multiplyChannel(b.r / 255, s.r / 255) * 255,\n g: multiplyChannel(b.g / 255, s.g / 255) * 255,\n b: multiplyChannel(b.b / 255, s.b / 255) * 255,\n }\n}\n","import {RGB, RGBA} from '../types'\n\nfunction screenChannel(b: number, s: number) {\n return b + s - b * s\n}\n\n/**\n * Apply the \\`screen\\` blend mode\n * Source: https://www.w3.org/TR/compositing-1/#blendingscreen\n * @internal\n */\nexport function screen(b: RGB | RGBA, s: RGB | RGBA): RGB {\n return {\n r: screenChannel(b.r / 255, s.r / 255) * 255,\n g: screenChannel(b.g / 255, s.g / 255) * 255,\n b: screenChannel(b.b / 255, s.b / 255) * 255,\n }\n}\n","export function lerp(x: number, y: number, a: number): number {\n return x * (1 - a) + y * a\n}\n\nexport function invlerp(x: number, y: number, a: number): number {\n return clamp((a - x) / (y - x))\n}\n\nexport function clamp(a: number, min = 0, max = 1): number {\n return Math.min(max, Math.max(min, a))\n}\n\nexport function range(x1: number, y1: number, x2: number, y2: number, a: number): number {\n return lerp(x2, y2, invlerp(x1, y1, a))\n}\n\nexport function round(value: number): number {\n return Math.round(value)\n}\n","import {clamp, round} from '../utils'\nimport {HSL, RGB, RGBA} from './types'\n\n/**\n * @internal\n */\nexport function hexToRgb(hex: string): RGB {\n if (hex.length === 4) {\n const hexR = hex.slice(1, 2)\n const hexG = hex.slice(2, 3)\n const hexB = hex.slice(3, 4)\n\n return {\n r: parseInt(hexR + hexR, 16),\n g: parseInt(hexG + hexG, 16),\n b: parseInt(hexB + hexB, 16),\n }\n }\n\n return {\n r: parseInt(hex.slice(1, 3), 16),\n g: parseInt(hex.slice(3, 5), 16),\n b: parseInt(hex.slice(5, 7), 16),\n }\n}\n\n/**\n * @internal\n */\nexport function rgbaToRGBA(rgba: string): RGBA {\n const values = rgba.replace(/rgba\\(|\\)/g, '').split(',')\n\n return {\n r: parseInt(values[0]),\n g: parseInt(values[1]),\n b: parseInt(values[2]),\n a: parseFloat(values[3]),\n }\n}\n\n/**\n * @internal\n */\nexport function rgbToHex(color: RGB | RGBA): string {\n const r = round(clamp(Math.round(color.r), 0, 255))\n const g = round(clamp(Math.round(color.g), 0, 255))\n const b = round(clamp(Math.round(color.b), 0, 255))\n\n if ('a' in color) {\n return `rgba(${r},${g},${b},${color.a})`\n }\n\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n}\n\n/**\n * @internal\n * @see https://css-tricks.com/converting-color-spaces-in-javascript/\n */\nexport function rgbToHsl({r, g, b}: RGB): HSL {\n // Make r, g, and b fractions of 1\n r /= 255\n g /= 255\n b /= 255\n\n // Find greatest and smallest channel values\n const cmin = Math.min(r, g, b)\n const cmax = Math.max(r, g, b)\n const delta = cmax - cmin\n\n let h = 0\n let s = 0\n let l = 0\n\n // Calculate hue\n // No difference\n if (delta == 0) h = 0\n // Red is max\n else if (cmax == r) h = ((g - b) / delta) % 6\n // Green is max\n else if (cmax == g) h = (b - r) / delta + 2\n // Blue is max\n else h = (r - g) / delta + 4\n\n h = Math.round(h * 60)\n\n // Make negative hues positive behind 360°\n if (h < 0) h += 360\n\n // Calculate lightness\n l = (cmax + cmin) / 2\n\n // Calculate saturation\n s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1))\n\n // Multiply l and s by 100\n s = +(s * 100).toFixed(1)\n l = +(l * 100).toFixed(1)\n\n return {h, s, l}\n}\n\n/**\n * @internal\n */\nexport function hslToRgb(hsl: HSL): RGB {\n // Must be fractions of 1\n const s = hsl.s / 100\n const l = hsl.l / 100\n\n const c = (1 - Math.abs(2 * l - 1)) * s\n const x = c * (1 - Math.abs(((hsl.h / 60) % 2) - 1))\n const m = l - c / 2\n\n let r = 0\n let g = 0\n let b = 0\n\n if (0 <= hsl.h && hsl.h < 60) {\n r = c\n g = x\n b = 0\n } else if (60 <= hsl.h && hsl.h < 120) {\n r = x\n g = c\n b = 0\n } else if (120 <= hsl.h && hsl.h < 180) {\n r = 0\n g = c\n b = x\n } else if (180 <= hsl.h && hsl.h < 240) {\n r = 0\n g = x\n b = c\n } else if (240 <= hsl.h && hsl.h < 300) {\n r = x\n g = 0\n b = c\n } else if (300 <= hsl.h && hsl.h < 360) {\n r = c\n g = 0\n b = x\n }\n\n return {\n r: Math.round((r + m) * 255),\n g: Math.round((g + m) * 255),\n b: Math.round((b + m) * 255),\n }\n}\n","import {hexToRgb, hslToRgb, rgbaToRGBA} from './convert'\nimport {HSL, RGB, RGBA} from './types'\n\nconst HEX_CHARS = '0123456789ABCDEFabcdef'\n\nconst HSL_RE = /hsl\\(\\s*(\\d+)\\s*,\\s*((\\d+(?:\\.\\d+)?)%)\\s*,\\s*((\\d+(?:\\.\\d+)?)%)\\s*\\)/i\n\nfunction isHexChars(str: string) {\n for (const c of str) {\n if (HEX_CHARS.indexOf(c) === -1) {\n return false\n }\n }\n\n return true\n}\n\nfunction isHex(str: string) {\n if (str[0] !== '#') return false\n\n // Accept both #000 and #000000\n if (!(str.length === 4 || str.length === 7)) return false\n\n return isHexChars(str.slice(1))\n}\n\nfunction parseHsl(str: string): HSL {\n const res = HSL_RE.exec(str)\n\n if (!res) {\n throw new Error(`parseHsl: string is not a HSL color: \"${str}\"`)\n }\n\n return {h: parseInt(res[1]), s: parseFloat(res[3]), l: parseFloat(res[5])}\n}\n\n/**\n * @internal\n */\nexport function parseColor(color: unknown): RGB | RGBA {\n if (!color) return {r: 0, g: 0, b: 0}\n\n if (typeof color !== 'string') {\n throw new Error('parseColor: expected a string')\n }\n\n if (isHex(color)) {\n return hexToRgb(color)\n }\n\n if (color.startsWith('hsl(')) {\n return hslToRgb(parseHsl(color))\n }\n\n if (color.startsWith('rgba(')) {\n return rgbaToRGBA(color)\n }\n\n throw new Error(`parseColor: unexpected color format: \"${color}\"`)\n}\n","import {parseColor} from './parse'\nimport {RGB, RGBA} from './types'\n\n/** @internal */\nexport function getContrastRatio(bg: string, fg: string): number {\n const rgb1 = parseColor(bg) // bg: RGB | RGBA, fg: RGB | RGBA\n const rgb2 = parseColor(fg)\n\n // convert the two colors from sRGB to linear-light RGB\n const c1 = rgb_lrgb(rgb1)\n const c2 = rgb_lrgb(rgb2)\n\n // compute the relative luminances\n const l1 = lrgb_luminance(c1)\n const l2 = lrgb_luminance(c2)\n\n // compute the contrast ratio\n return (Math.max(l1, l2) + 0.05) / (Math.min(l1, l2) + 0.05)\n}\n\nfunction rgb_lrgb({r, g, b}: RGB | RGBA): [number, number, number] {\n return [rgb_lrgb1(r / 255), rgb_lrgb1(g / 255), rgb_lrgb1(b / 255)]\n}\n\nfunction rgb_lrgb1(v: number) {\n return v <= 0.04045 ? v / 12.92 : ((v + 0.055) / 1.055) ** 2.4\n}\n\nfunction lrgb_luminance([r, g, b]: [number, number, number]) {\n return 0.2126 * r + 0.7152 * g + 0.0722 * b\n}\n","import {parseColor} from './parse'\n\n/**\n * @internal\n */\nexport function rgba(color: unknown, a: number): string {\n const rgb = parseColor(color)\n\n return `rgba(${rgb.r},${rgb.g},${rgb.b},${a})`\n}\n","import {RGB, multiply, parseColor, rgbToHex, screen} from './lib/color-fns'\nimport {clamp, range} from './lib/utils'\n\nconst RGB_RANGE: [number, number] = [0, 255]\n\nexport function mixThemeColor(\n value: string,\n options: {\n bg?: string\n blendMode: 'multiply' | 'screen'\n black: string\n white: string\n },\n): string {\n const {blendMode} = options\n\n const color = parseColor(value)\n const black = parseColor(options.black)\n const white = parseColor(options.white)\n\n const bg = options.bg ? parseColor(options.bg) : blendMode === 'multiply' ? white : black\n\n const paletteRange: {r: [number, number]; g: [number, number]; b: [number, number]} = {\n r: [black.r, white.r],\n g: [black.g, white.g],\n b: [black.b, white.b],\n }\n\n const convertedBgColor: RGB = {\n r: clamp(range(...paletteRange.r, ...RGB_RANGE, bg.r), ...RGB_RANGE),\n g: clamp(range(...paletteRange.g, ...RGB_RANGE, bg.g), ...RGB_RANGE),\n b: clamp(range(...paletteRange.b, ...RGB_RANGE, bg.b), ...RGB_RANGE),\n }\n\n const convertedColor: RGB = {\n r: clamp(range(...paletteRange.r, ...RGB_RANGE, color.r), ...RGB_RANGE),\n g: clamp(range(...paletteRange.g, ...RGB_RANGE, color.g), ...RGB_RANGE),\n b: clamp(range(...paletteRange.b, ...RGB_RANGE, color.b), ...RGB_RANGE),\n }\n\n const resultColor =\n blendMode === 'multiply'\n ? multiply(convertedBgColor, convertedColor)\n : screen(convertedBgColor, convertedColor)\n\n const v: RGB = {\n r: clamp(range(...RGB_RANGE, ...paletteRange.r, resultColor.r), ...paletteRange.r),\n g: clamp(range(...RGB_RANGE, ...paletteRange.g, resultColor.g), ...paletteRange.g),\n b: clamp(range(...RGB_RANGE, ...paletteRange.b, resultColor.b), ...paletteRange.b),\n }\n\n return rgbToHex(v)\n}\n","import {ColorTint as ColorPaletteValue} from '@sanity/color'\nimport {ThemeColorPalette, parseTokenValue} from '../config'\nimport {ThemeColorBlendModeKey} from '../system'\nimport {hexToRgb, mix, rgbToHex, rgba} from './lib/color-fns'\nimport {mixThemeColor} from './mixThemeColor'\n\nexport interface RenderColorValueOptions {\n bg?: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n}\n\nexport function renderColorValue(str: string, options: RenderColorValueOptions): string {\n const {bg, blendMode, colorPalette} = options\n\n if (bg === 'white') {\n throw new Error('Cannot blend with white background')\n }\n\n const node = parseTokenValue(str)\n\n if (!node || node.type !== 'color') {\n throw new Error(`Invalid color token value: ${str}`)\n }\n\n let hex = ''\n\n if (node.key === 'black') {\n hex = renderColorHex(colorPalette.black)\n }\n\n if (node.key === 'white') {\n hex = renderColorHex(colorPalette.white)\n }\n\n if (node.hue && node.tint) {\n hex = renderColorHex(colorPalette[node.hue][node.tint])\n }\n\n if (!hex) {\n throw new Error(`Invalid color token value: ${str}`)\n }\n\n const hexBeforeMix = hex\n\n const mixOptions = {\n blendMode,\n bg,\n black: renderColorHex(colorPalette.black),\n // opacity: node.opacity,\n white: renderColorHex(colorPalette.white),\n }\n\n try {\n hex = mixThemeColor(hex, mixOptions)\n\n if (bg && node.mix !== undefined) {\n const from = hexToRgb(bg)\n const to = hexToRgb(hex)\n\n hex = rgbToHex(mix(from, to, node.mix))\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.warn('could not blend', hex, mixOptions)\n throw err\n }\n\n if (hex === '#aN') {\n // eslint-disable-next-line no-console\n console.warn(`invalid color token value: ${str}`)\n hex = hexBeforeMix\n }\n\n if (node.opacity !== undefined) {\n hex = rgba(hex, node.opacity)\n }\n\n return hex\n}\n\nfunction renderColorHex(color: string | ColorPaletteValue) {\n return typeof color === 'string' ? color : color.hex\n}\n","import {ThemeColorPalette, ThemeConfig} from '../config'\nimport {defaultColorPalette} from '../defaults/colorPalette'\nimport {\n ThemeColorAvatar_v2,\n ThemeColorBadgeTone_v2,\n ThemeColorBadge_v2,\n ThemeColorBlendModeKey,\n ThemeColorButtonMode_v2,\n ThemeColorButtonTone_v2,\n ThemeColorButton_v2,\n ThemeColorCardToneKey,\n ThemeColorCard_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n ThemeColorInput_v2,\n ThemeColorKBD,\n ThemeColorScheme_v2,\n ThemeColorSchemes_v2,\n ThemeColorSelectableTone_v2,\n ThemeColorSelectable_v2,\n ThemeColorShadow,\n ThemeColorState_v2,\n ThemeColorSyntax,\n} from '../system'\nimport {RenderColorValueOptions, renderColorValue} from './renderColorValue'\n\nexport function renderThemeColorSchemes(\n value: ThemeColorSchemes_v2,\n config?: ThemeConfig,\n): ThemeColorSchemes_v2 {\n const colorPalette = config?.palette ?? defaultColorPalette\n\n return {\n light: renderThemeColorScheme(colorPalette, value.light),\n dark: renderThemeColorScheme(colorPalette, value.dark),\n }\n}\n\nfunction renderThemeColorScheme(\n colorPalette: ThemeColorPalette,\n value: ThemeColorScheme_v2,\n): ThemeColorScheme_v2 {\n const toneEntries = Object.entries(value) as [ThemeColorCardToneKey, ThemeColorCard_v2][]\n\n const [, transparentTone] = toneEntries.find(([k]) => k === 'transparent')!\n const [, defaultTone] = toneEntries.find(([k]) => k === 'default')!\n\n // The `transparent` and `default` tones are special cases, so we render them first\n // (rendered without a `bg` option).\n // But the rest of the tones are rendered on top of the `default` tone's `bg`.\n const renderedTransparentTone = renderThemeColor(transparentTone, {colorPalette})\n const renderedDefaultTone = renderThemeColor(defaultTone, {colorPalette})\n\n // Get the `default` tone's `bg` property\n const bg = renderedDefaultTone.bg\n\n if (bg === 'white') {\n throw new Error('Cannot blend with white background')\n }\n\n return Object.fromEntries([\n ['transparent', renderedTransparentTone],\n ['default', renderedDefaultTone],\n ...toneEntries\n .filter(([k]) => k !== 'default' && k !== 'transparent')\n .map(([k, v]) => [k, renderThemeColor(v, {bg, colorPalette})]),\n ]) as ThemeColorScheme_v2\n}\n\nfunction renderThemeColor(\n value: ThemeColorCard_v2,\n options: {\n bg?: string\n colorPalette: ThemeColorPalette\n },\n): ThemeColorCard_v2 {\n const {colorPalette, bg} = options\n const blendMode = value._blend || 'multiply'\n const baseBg = renderColorValue(value.bg, {colorPalette, bg, blendMode})\n const colorOptions: RenderColorValueOptions = {colorPalette, bg: baseBg, blendMode}\n\n const button = renderThemeColorButton(value.button, {\n baseBg,\n blendMode,\n colorPalette,\n })\n\n const selectable = renderThemeColorSelectable(value.selectable, {\n colorPalette,\n baseBg,\n blendMode,\n })\n\n const shadow: ThemeColorShadow = {\n outline: renderColorValue(value.shadow.outline, colorOptions),\n umbra: renderColorValue(value.shadow.umbra, {\n ...colorOptions,\n bg: undefined,\n colorPalette: {...colorPalette, black: '#000000'},\n }),\n penumbra: renderColorValue(value.shadow.penumbra, {\n ...colorOptions,\n bg: undefined,\n colorPalette: {...colorPalette, black: '#000000'},\n }),\n ambient: renderColorValue(value.shadow.ambient, {\n ...colorOptions,\n bg: undefined,\n colorPalette: {...colorPalette, black: '#000000'},\n }),\n }\n\n return {\n _blend: blendMode,\n _dark: value._dark,\n accent: {\n fg: renderColorValue(value.accent.fg, colorOptions),\n },\n avatar: renderThemeColorAvatar(value.avatar, {baseBg, colorPalette, blendMode}),\n backdrop: renderColorValue(value.backdrop, colorOptions),\n badge: renderThemeColorBadge(value.badge, {baseBg, colorPalette, blendMode}),\n bg: baseBg,\n border: renderColorValue(value.border, colorOptions),\n button,\n code: {\n bg: renderColorValue(value.code.bg, colorOptions),\n fg: renderColorValue(value.code.fg, colorOptions),\n },\n fg: renderColorValue(value.fg, colorOptions),\n focusRing: renderColorValue(value.focusRing, colorOptions),\n icon: renderColorValue(value.icon, colorOptions),\n input: renderThemeColorInput(value.input, {baseBg, colorPalette, blendMode}),\n kbd: renderThemeColorKBD(value.kbd, {baseBg, colorPalette, blendMode}),\n link: {\n fg: renderColorValue(value.link.fg, colorOptions),\n },\n muted: {\n bg: renderColorValue(value.muted.bg, colorOptions),\n fg: renderColorValue(value.muted.fg, colorOptions),\n },\n shadow,\n skeleton: {\n from: renderColorValue(value.skeleton.from, colorOptions),\n to: renderColorValue(value.skeleton.to, colorOptions),\n },\n syntax: renderSyntaxColorTheme(value.syntax, {baseBg, colorPalette, blendMode}),\n selectable,\n }\n}\n\nfunction renderThemeColorKBD(\n value: ThemeColorKBD,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorKBD {\n const {baseBg, blendMode, colorPalette} = options\n\n const rootOptions: RenderColorValueOptions = {\n bg: baseBg,\n blendMode,\n colorPalette,\n }\n\n const bg = renderColorValue(value.bg, rootOptions)\n\n const colorOptions: RenderColorValueOptions = {\n bg,\n blendMode,\n colorPalette,\n }\n\n return {\n bg,\n fg: renderColorValue(value.fg, colorOptions),\n border: renderColorValue(value.border, colorOptions),\n }\n}\n\nfunction renderThemeColorAvatar(\n value: ThemeColorAvatar_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorAvatar_v2 {\n return {\n gray: renderThemeColorAvatarColor(value.gray, options),\n blue: renderThemeColorAvatarColor(value.blue, options),\n purple: renderThemeColorAvatarColor(value.purple, options),\n magenta: renderThemeColorAvatarColor(value.magenta, options),\n red: renderThemeColorAvatarColor(value.red, options),\n orange: renderThemeColorAvatarColor(value.orange, options),\n yellow: renderThemeColorAvatarColor(value.yellow, options),\n green: renderThemeColorAvatarColor(value.green, options),\n cyan: renderThemeColorAvatarColor(value.cyan, options),\n }\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 return {\n default: renderThemeColorBadgeColor(value.default, options),\n primary: renderThemeColorBadgeColor(value.primary, options),\n positive: renderThemeColorBadgeColor(value.positive, options),\n caution: renderThemeColorBadgeColor(value.caution, options),\n critical: renderThemeColorBadgeColor(value.critical, options),\n }\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 = value._blend || 'multiply'\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 return {\n default: renderThemeColorButtonStates(value.default, options),\n primary: renderThemeColorButtonStates(value.primary, options),\n positive: renderThemeColorButtonStates(value.positive, options),\n caution: renderThemeColorButtonStates(value.caution, options),\n critical: renderThemeColorButtonStates(value.critical, options),\n }\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, 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 return {\n default: renderThemeColorSelectableStates(value.default, options),\n primary: renderThemeColorSelectableStates(value.primary, options),\n positive: renderThemeColorSelectableStates(value.positive, options),\n caution: renderThemeColorSelectableStates(value.caution, options),\n critical: renderThemeColorSelectableStates(value.critical, options),\n }\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 {defaultThemeConfig} from './defaults/config'\nimport {RootTheme, RootTheme_v2, Theme, ThemeColorCardToneKey, ThemeColorSchemeKey} from './system'\nimport {is_v2, v0_v2, v2_v0} from './versioning'\n\n// cache[scheme][tone][rootTheme] = theme\nconst cache = new Map<\n ThemeColorSchemeKey,\n Map<ThemeColorCardToneKey, WeakMap<RootTheme | RootTheme_v2, Theme>>\n>()\n\n/** @internal */\nexport function getScopedTheme(\n themeProp: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n): Theme {\n const cachedTheme = _getCachedTheme(themeProp, scheme, tone)\n\n if (cachedTheme) return cachedTheme\n\n const v0 = is_v2(themeProp) ? v2_v0(themeProp) : themeProp\n const v2 = is_v2(themeProp) ? themeProp : v0_v2(themeProp)\n\n const colorScheme_v0 = v0.color[scheme] || v0.color.light\n const color_v0 = colorScheme_v0[tone] || colorScheme_v0.default\n const layer_v0 = v0.layer || defaultThemeConfig.layer\n\n const colorScheme_v2 = v2.color[scheme] || v2.color.light\n const color_v2 = colorScheme_v2[tone] || colorScheme_v2.default\n const layer_v2 = v2.layer || defaultThemeConfig.layer\n\n const theme: Theme = {\n sanity: {\n ...v0,\n color: color_v0,\n layer: layer_v0,\n v2: {\n ...v2,\n _resolved: true,\n color: color_v2,\n layer: layer_v2,\n },\n },\n }\n\n _setCachedTheme(themeProp, scheme, tone, theme)\n\n return theme\n}\n\nfunction _getCachedTheme(\n rootTheme: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n) {\n const schemeCache = cache.get(scheme)\n\n if (!schemeCache) return undefined\n\n const toneCache = schemeCache.get(tone)\n\n if (!toneCache) return undefined\n\n return toneCache.get(rootTheme)\n}\n\nfunction _setCachedTheme(\n rootTheme: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n theme: Theme,\n) {\n if (!cache.has(scheme)) cache.set(scheme, new Map())\n\n const schemeCache = cache.get(scheme)!\n\n if (!schemeCache.has(tone)) schemeCache.set(tone, new WeakMap())\n\n const toneCache = schemeCache.get(tone)!\n\n toneCache.set(rootTheme, theme)\n}\n"],"names":["color","cache","mix","_color","tones","rgba","black","white"],"mappings":";AASO,SAAS,sBACd,MACA,MACA,MACA,OACA,OACsB;AACf,SAAA;AAAA,IACL,SAAS,wBAAwB,MAAM,MAAM,MAAM,OAAO,OAAO,SAAS;AAAA,IAC1E,SAAS,wBAAwB,MAAM,MAAM,MAAM,OAAO,OAAO,SAAS;AAAA,IAC1E,UAAU,wBAAwB,MAAM,MAAM,MAAM,OAAO,OAAO,UAAU;AAAA,IAC5E,SAAS,wBAAwB,MAAM,MAAM,MAAM,OAAO,OAAO,SAAS;AAAA,IAC1E,UAAU,wBAAwB,MAAM,MAAM,MAAM,OAAO,OAAO,UAAU;AAAA,EAAA;AAEhF;AAEA,SAAS,wBACP,MACA,MACA,MACA,OACA,OACA,MAC4B;AACrB,SAAA;AAAA,IACL,SAAS,KAAK,WAAW;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP;AAAA,IAAA,CACD;AAAA,IACD,SAAS,KAAK,WAAW;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP;AAAA,IAAA,CACD;AAAA,IACD,SAAS,KAAK,WAAW;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP;AAAA,IAAA,CACD;AAAA,IACD,UAAU,KAAK,WAAW;AAAA,MACxB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP;AAAA,IAAA,CACD;AAAA,IACD,UAAU,KAAK,WAAW;AAAA,MACxB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP;AAAA,IAAA,CACD;AAAA,EAAA;AAEL;ACxEO,SAAS,iBACd,MACA,MACA,MACA,MACiB;AACV,SAAA;AAAA,IACL,SAAS;AAAA,MACP,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,UAAA,CAAU;AAAA,MACzE,UAAU,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,WAAA,CAAW;AAAA,MAC3E,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,UAAA,CAAU;AAAA,MACzE,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,UAAA,CAAU;AAAA,MACzE,UAAU,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,WAAA,CAAW;AAAA,IAC7E;AAAA,IACA,aAAa;AAAA,MACX,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,eAAe,MAAM,OAAO,UAAA,CAAU;AAAA,MAC7E,UAAU,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,eAAe,MAAM,OAAO,WAAA,CAAW;AAAA,MAC/E,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,eAAe,MAAM,OAAO,UAAA,CAAU;AAAA,MAC7E,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,eAAe,MAAM,OAAO,UAAA,CAAU;AAAA,MAC7E,UAAU,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,eAAe,MAAM,OAAO,WAAA,CAAW;AAAA,IACjF;AAAA,IACA,SAAS;AAAA,MACP,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,UAAA,CAAU;AAAA,MACzE,UAAU,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,WAAA,CAAW;AAAA,MAC3E,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,UAAA,CAAU;AAAA,MACzE,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,UAAA,CAAU;AAAA,MACzE,UAAU,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,WAAA,CAAW;AAAA,IAC7E;AAAA,IACA,UAAU;AAAA,MACR,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,YAAY,MAAM,OAAO,UAAA,CAAU;AAAA,MAC1E,UAAU,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,YAAY,MAAM,OAAO,WAAA,CAAW;AAAA,MAC5E,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,YAAY,MAAM,OAAO,UAAA,CAAU;AAAA,MAC1E,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,YAAY,MAAM,OAAO,UAAA,CAAU;AAAA,MAC1E,UAAU,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,YAAY,MAAM,OAAO,WAAA,CAAW;AAAA,IAC9E;AAAA,IACA,SAAS;AAAA,MACP,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,UAAA,CAAU;AAAA,MACzE,UAAU,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,WAAA,CAAW;AAAA,MAC3E,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,UAAA,CAAU;AAAA,MACzE,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,UAAA,CAAU;AAAA,MACzE,UAAU,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,WAAA,CAAW;AAAA,IAC7E;AAAA,IACA,UAAU;AAAA,MACR,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,YAAY,MAAM,OAAO,UAAA,CAAU;AAAA,MAC1E,UAAU,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,YAAY,MAAM,OAAO,WAAA,CAAW;AAAA,MAC5E,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,YAAY,MAAM,OAAO,UAAA,CAAU;AAAA,MAC1E,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,YAAY,MAAM,OAAO,UAAA,CAAU;AAAA,MAC1E,UAAU,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,YAAY,MAAM,OAAO,WAAA,CAAW;AAAA,IAC9E;AAAA,EAAA;AAEJ;AC5CO,SAAS,kBACd,MACA,MACA,MACA,OACA,OACA,MACuB;AAChB,SAAA;AAAA,IACL,SAAS,KAAK,OAAO;AAAA,MACnB;AAAA,MACA;AAAA,MACA,OAAO,MAAM;AAAA,MACb,OAAO,MAAM;AAAA,MACb;AAAA,IAAA,CACD;AAAA,IACD,SAAS,KAAK,OAAO;AAAA,MACnB;AAAA,MACA;AAAA,MACA,OAAO,MAAM;AAAA,MACb,OAAO,MAAM;AAAA,MACb;AAAA,IAAA,CACD;AAAA,IACD,UAAU,KAAK,OAAO;AAAA,MACpB;AAAA,MACA;AAAA,MACA,OAAO,MAAM;AAAA,MACb,OAAO,MAAM;AAAA,MACb;AAAA,IAAA,CACD;AAAA,IACD,SAAS,KAAK,OAAO;AAAA,MACnB;AAAA,MACA;AAAA,MACA,OAAO,MAAM;AAAA,MACb,OAAO,MAAM;AAAA,MACb;AAAA,IAAA,CACD;AAAA,IACD,UAAU,KAAK,OAAO;AAAA,MACpB;AAAA,MACA;AAAA,MACA,OAAO,MAAM;AAAA,MACb,OAAO,MAAM;AAAA,MACb;AAAA,IAAA,CACD;AAAA,EAAA;AAEL;AC7CO,SAAS,kBACd,MACA,MACA,MACA,OACA,OACkB;AACX,SAAA;AAAA,IACL,SAAS,kBAAkB,MAAM,MAAM,MAAM,OAAO,OAAO,SAAS;AAAA,IACpE,OAAO,kBAAkB,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO;AAAA,IAChE,OAAO,kBAAkB,MAAM,MAAM,MAAM,OAAO,OAAO,OAAO;AAAA,EAAA;AAEpE;ACZO,SAAS,iBACd,MACA,MACA,MACA,MACA,OACA,OACgB;AACT,SAAA;AAAA,IACL,SAAS,KAAK,KAAK;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,IAAA,CACD;AAAA,IACD,UAAU,KAAK,KAAK;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,IAAA,CACD;AAAA,IACD,SAAS,KAAK,KAAK;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,IAAA,CACD;AAAA,IACD,SAAS,KAAK,KAAK;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,IAAA,CACD;AAAA,IACD,UAAU,KAAK,KAAK;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,IAAA,CACD;AAAA,EAAA;AAEL;ACzDA,MAAM,QAAQ,kBACR,QAAQ,oBAER,SAAS;AAAA,EACb,SAAS;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AAAA,EACA,aAAa;AAAA,IACX,UAAU;AAAA,IACV,SAAS;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AAAA,EACA,SAAS;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AAAA,EACA,UAAU;AAAA,IACR,UAAU;AAAA,IACV,SAAS;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AAAA,EACA,SAAS;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AAAA,EACA,UAAU;AAAA,IACR,UAAU;AAAA,IACV,SAAS;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AACF,GAEM,QAAQ;AAAA,EACZ,MAAM;AAAA,EACN,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,SAAS;AACX,GAEM,QAAQ;AAAA,EACZ,aAAa;AAAA,IACX,IAAI,CAAC,OAAO,YAAY,SAAS,OAAO,YAAY,QAAQ;AAAA,IAC5D,IAAI,CAAC,OAAO,YAAY,UAAU,OAAO,YAAY,OAAO;AAAA,IAC5D,QAAQ,CAAC,OAAO,YAAY,QAAQ,OAAO,YAAY,OAAO;AAAA,IAC9D,WAAW,CAAC,OAAO,YAAY,MAAM,OAAO,YAAY,IAAI;AAAA,EAC9D;AAAA,EACA,SAAS;AAAA,IACP,IAAI,CAAC,OAAO,QAAQ,SAAS,OAAO,QAAQ,QAAQ;AAAA,IACpD,IAAI,CAAC,OAAO,QAAQ,UAAU,OAAO,QAAQ,OAAO;AAAA,IACpD,QAAQ,CAAC,OAAO,QAAQ,QAAQ,OAAO,QAAQ,OAAO;AAAA,IACtD,WAAW,CAAC,OAAO,QAAQ,MAAM,OAAO,QAAQ,IAAI;AAAA,EACtD;AAAA,EACA,UAAU;AAAA,IACR,IAAI,CAAC,OAAO,SAAS,SAAS,OAAO,SAAS,QAAQ;AAAA,IACtD,IAAI,CAAC,OAAO,SAAS,UAAU,OAAO,SAAS,OAAO;AAAA,IACtD,QAAQ,CAAC,OAAO,SAAS,QAAQ,OAAO,SAAS,OAAO;AAAA,IACxD,WAAW,CAAC,OAAO,SAAS,MAAM,OAAO,SAAS,IAAI;AAAA,EACxD;AAAA,EACA,SAAS;AAAA,IACP,IAAI,CAAC,OAAO,QAAQ,SAAS,OAAO,QAAQ,QAAQ;AAAA,IACpD,IAAI,CAAC,OAAO,QAAQ,UAAU,OAAO,QAAQ,OAAO;AAAA,IACpD,QAAQ,CAAC,OAAO,QAAQ,QAAQ,OAAO,QAAQ,OAAO;AAAA,IACtD,WAAW,CAAC,OAAO,QAAQ,MAAM,OAAO,QAAQ,IAAI;AAAA,EACtD;AAAA,EACA,UAAU;AAAA,IACR,IAAI,CAAC,OAAO,SAAS,SAAS,OAAO,SAAS,QAAQ;AAAA,IACtD,IAAI,CAAC,OAAO,SAAS,UAAU,OAAO,SAAS,OAAO;AAAA,IACtD,QAAQ,CAAC,OAAO,SAAS,QAAQ,OAAO,SAAS,OAAO;AAAA,IACxD,WAAW,CAAC,OAAO,SAAS,MAAM,OAAO,SAAS,IAAI;AAAA,EACxD;AACF,GAEa,cAAqC;AAAA,EAChD,MAAM,CAAC,EAAC,MAAM,KAAI,MACZ,SAAS,YACJ;AAAA,IACL,IAAI,OAAO,QAAQ;AAAA,IACnB,IAAI,OAAO,QAAQ;AAAA,IACnB,QAAQ,OAAO,OAAO,QAAQ,UAAU,OAAO,QAAQ;AAAA,IACvD,WAAW,OAAO,QAAQ;AAAA,IAC1B,QAAQ;AAAA,MACN,SAAS;AAAA,MACT,OAAO;AAAA,MACP,UAAU;AAAA,MACV,SAAS;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,MAAM,OAAO,QAAQ;AAAA,MACrB,IAAI,OAAO,QAAQ;AAAA,IACrB;AAAA,EAAA,IASG;AAAA,IACL,IAAI,MAAM,IAAI,EAAE,GAAG,OAAO,IAAI,CAAC;AAAA,IAC/B,IAAI,MAAM,IAAI,EAAE,GAAG,OAAO,IAAI,CAAC;AAAA,IAC/B,QAAQ,MAAM,IAAI,EAAE,OAAO,OAAO,IAAI,CAAC;AAAA,IACvC,WAAW,MAAM,IAAI,EAAE,UAAU,OAAO,IAAI,CAAC;AAAA,IAC7C,QAAQ;AAAA,MACN,SAAS;AAAA,MACT,OAAO;AAAA,MACP,UAAU;AAAA,MACV,SAAS;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,MAAM,OAAO,QAAQ;AAAA,MACrB,IAAI,OAAO,QAAQ;AAAA,IACrB;AAAA,EACF;AAAA,EAGF,OAAO,CAAC,EAAC,MAAM,MAAM,OAAO,WAAU;AAC9B,UAAAA,SAAQ,OAAO,IAAI;AAEzB,WAAI,UAAU,YACL;AAAA,MACL,IAAI,OAAOA,OAAM,QAAQA,OAAM;AAAA,MAC/B,KAAK,OAAOA,OAAM,QAAQA,OAAM;AAAA,MAChC,QAAQ,OAAOA,OAAM,UAAUA,OAAM;AAAA,MACrC,IAAI,OAAOA,OAAM,UAAUA,OAAM;AAAA,MACjC,MAAM,OAAOA,OAAM,UAAUA,OAAM;AAAA,MACnC,OAAO;AAAA,QACL,IAAI;AAAA,MACN;AAAA,MACA,QAAQ;AAAA,QACN,IAAI;AAAA,MACN;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,MACA,UAAU,KAAK;AAAA,IAAA,IAIZ;AAAA,MACL,IAAIA,OAAM;AAAA,MACV,KAAKA,OAAM;AAAA,MACX,QAAQ,OAAOA,OAAM,QAAQA,OAAM;AAAA,MACnC,IAAI,OAAOA,OAAM,UAAUA,OAAM;AAAA,MACjC,MAAM,OAAOA,OAAM,UAAUA,OAAM;AAAA,MACnC,OAAO;AAAA,QACL,IAAI;AAAA,MACN;AAAA,MACA,QAAQ;AAAA,QACN,IAAI;AAAA,MACN;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,MACA,UAAU,KAAK;AAAA,IAAA;AAAA,EAEnB;AAAA,EAEA,OAAO,CAAC,EAAC,MAAM,MAAM,OAAO,WAAU;AAC9B,UAAAA,SAAQ,OAAO,IAAI;AAEzB,WAAI,UAAU,YACL;AAAA,MACL,IAAI,OAAOA,OAAM,SAASA,OAAM;AAAA,MAChC,KAAK,OAAOA,OAAM,SAASA,OAAM;AAAA,MACjC,QAAQ,OAAOA,OAAM,UAAUA,OAAM;AAAA,MACrC,IAAI,OAAOA,OAAM,WAAWA,OAAM;AAAA,MAClC,MAAM,OAAOA,OAAM,WAAWA,OAAM;AAAA,MACpC,OAAO;AAAA,QACL,IAAI;AAAA,MACN;AAAA,MACA,QAAQ;AAAA,QACN,IAAI;AAAA,MACN;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,MACA,UAAU,KAAK;AAAA,IAAA,IAIZ;AAAA,MACL,IAAI,OAAOA,OAAM,UAAUA,OAAM;AAAA,MACjC,KAAK,OAAOA,OAAM,UAAUA,OAAM;AAAA,MAClC,QAAQ,OAAOA,OAAM,SAASA,OAAM;AAAA,MACpC,IAAI,OAAOA,OAAM,UAAUA,OAAM;AAAA,MACjC,MAAM,OAAOA,OAAM,UAAUA,OAAM;AAAA,MACnC,OAAO;AAAA,QACL,IAAI;AAAA,MACN;AAAA,MACA,QAAQ;AAAA,QACN,IAAI;AAAA,MACN;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,MACA,UAAU,KAAK;AAAA,IAAA;AAAA,EAEnB;AAAA,EAEA,QAAQ,CAAC,EAAC,MAAM,MAAM,OAAO,MACvB,MAAA,SAAS,UACJ;AAAA,IACL,GAAG;AAAA,IACH,SAAS;AAAA,MACP,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,IAAI,MAAM,QAAQ;AAAA,MAClB,MAAM,MAAM,QAAQ;AAAA,MACpB,QAAQ;AAAA,MACR,OAAO;AAAA,QACL,IAAI;AAAA,MACN;AAAA,MACA,QAAQ;AAAA,QACN,IAAI;AAAA,MACN;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,MACA,UAAU,KAAK;AAAA,IACjB;AAAA,IACA,SAAS;AAAA,MACP,IAAI,MAAM,QAAQ;AAAA,MAClB,KAAK,MAAM,QAAQ;AAAA,MACnB,IAAI,MAAM,QAAQ;AAAA,MAClB,MAAM,MAAM,QAAQ;AAAA,MACpB,QAAQ;AAAA,MACR,OAAO;AAAA,QACL,IAAI;AAAA,MACN;AAAA,MACA,QAAQ;AAAA,QACN,IAAI;AAAA,MACN;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,MACA,UAAU,KAAK;AAAA,IACjB;AAAA,EAAA,IAIA,SAAS,UACJ;AAAA,IACL,GAAG;AAAA,IACH,SAAS,MAAM;AAAA,EAAA,IAGZ;AAAA,EAGT,MAAM,CAAC,EAAC,YACC;AAAA,IACL,IAAI;AAAA,IACJ,KAAK;AAAA,IACL,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,MACL,IAAI;AAAA,IACN;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,IACN;AAAA,IACA,MAAM;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,UAAU,KAAK;AAAA,EAAA;AAAA,EAInB,OAAO,OACE;AAAA,IACL,IAAI;AAAA,IACJ,KAAK;AAAA,IACL,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,aAAa;AAAA,EAAA;AAAA,EAIjB,YAAY,CAAC,EAAC,OAAO,OAAO,WACnB,MAAM,IAAI,EAAE,KAAK;AAAA,EAG1B,MAAM,CAAC,EAAC,UACC,MAAM,GAAG;AAAA,EAGlB,QAAQ,OAAO;AAAA,IACb,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,WAAW;AAAA,IACX,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS;AAAA,IACT,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,UAAU;AAAA,IACV,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,aAAa;AAAA,IACb,eAAe;AAAA,IACf,aAAa;AAAA,IACb,OAAO;AAAA,IACP,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,MAAM;AAAA,IACN,KAAK;AAAA,IACL,UAAU;AAAA,EAAA;AAEd;AClYO,SAAS,iBACd,MACA,MACA,MACA,OACA,OACiB;AACV,SAAA;AAAA,IACL,SAAS;AAAA,MACP,SAAS,KAAK,MAAM;AAAA,QAClB;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO,MAAM;AAAA,QACb,OAAO,MAAM;AAAA,MAAA,CACd;AAAA,MACD,UAAU,KAAK,MAAM;AAAA,QACnB;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO,MAAM;AAAA,QACb,OAAO,MAAM;AAAA,MAAA,CACd;AAAA,MACD,SAAS,KAAK,MAAM;AAAA,QAClB;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO,MAAM;AAAA,QACb,OAAO,MAAM;AAAA,MAAA,CACd;AAAA,MACD,UAAU,KAAK,MAAM;AAAA,QACnB;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO,MAAM;AAAA,QACb,OAAO,MAAM;AAAA,MAAA,CACd;AAAA,IACH;AAAA,IACA,SAAS;AAAA,MACP,SAAS,KAAK,MAAM;AAAA,QAClB;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO,MAAM;AAAA,QACb,OAAO,MAAM;AAAA,MAAA,CACd;AAAA,MACD,UAAU,KAAK,MAAM;AAAA,QACnB;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO,MAAM;AAAA,QACb,OAAO,MAAM;AAAA,MAAA,CACd;AAAA,MACD,SAAS,KAAK,MAAM;AAAA,QAClB;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO,MAAM;AAAA,QACb,OAAO,MAAM;AAAA,MAAA,CACd;AAAA,MACD,UAAU,KAAK,MAAM;AAAA,QACnB;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO,MAAM;AAAA,QACb,OAAO,MAAM;AAAA,MAAA,CACd;AAAA,IACH;AAAA,EAAA;AAEJ;AC7EO,SAAS,iBACd,MACA,MACA,MACA,MACiB;AACV,SAAA;AAAA,IACL,SAAS;AAAA,MACP,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,UAAA,CAAU;AAAA,MACzE,UAAU,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,WAAA,CAAW;AAAA,MAC3E,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,UAAA,CAAU;AAAA,MACzE,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,UAAA,CAAU;AAAA,MACzE,UAAU,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,WAAA,CAAW;AAAA,IAC7E;AAAA,IACA,aAAa;AAAA,MACX,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,eAAe,MAAM,OAAO,UAAA,CAAU;AAAA,MAC7E,UAAU,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,eAAe,MAAM,OAAO,WAAA,CAAW;AAAA,MAC/E,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,eAAe,MAAM,OAAO,UAAA,CAAU;AAAA,MAC7E,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,eAAe,MAAM,OAAO,UAAA,CAAU;AAAA,MAC7E,UAAU,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,eAAe,MAAM,OAAO,WAAA,CAAW;AAAA,IACjF;AAAA,IACA,SAAS;AAAA,MACP,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,UAAA,CAAU;AAAA,MACzE,UAAU,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,WAAA,CAAW;AAAA,MAC3E,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,UAAA,CAAU;AAAA,MACzE,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,UAAA,CAAU;AAAA,MACzE,UAAU,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,WAAA,CAAW;AAAA,IAC7E;AAAA,IACA,UAAU;AAAA,MACR,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,YAAY,MAAM,OAAO,UAAA,CAAU;AAAA,MAC1E,UAAU,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,YAAY,MAAM,OAAO,WAAA,CAAW;AAAA,MAC5E,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,YAAY,MAAM,OAAO,UAAA,CAAU;AAAA,MAC1E,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,YAAY,MAAM,OAAO,UAAA,CAAU;AAAA,MAC1E,UAAU,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,YAAY,MAAM,OAAO,WAAA,CAAW;AAAA,IAC9E;AAAA,IACA,SAAS;AAAA,MACP,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,UAAA,CAAU;AAAA,MACzE,UAAU,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,WAAA,CAAW;AAAA,MAC3E,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,UAAA,CAAU;AAAA,MACzE,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,UAAA,CAAU;AAAA,MACzE,UAAU,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,WAAW,MAAM,OAAO,WAAA,CAAW;AAAA,IAC7E;AAAA,IACA,UAAU;AAAA,MACR,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,YAAY,MAAM,OAAO,UAAA,CAAU;AAAA,MAC1E,UAAU,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,YAAY,MAAM,OAAO,WAAA,CAAW;AAAA,MAC5E,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,YAAY,MAAM,OAAO,UAAA,CAAU;AAAA,MAC1E,SAAS,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,YAAY,MAAM,OAAO,UAAA,CAAU;AAAA,MAC1E,UAAU,KAAK,MAAM,EAAC,MAAM,MAAM,MAAM,YAAY,MAAM,OAAO,WAAA,CAAW;AAAA,IAC9E;AAAA,EAAA;AAEJ;AClDgB,SAAA,WACd,MACA,MACA,MACgB;AACT,SAAA;AAAA,IACL,MAAM,KAAK,KAAK,EAAC,MAAM,MAAM,KAAK,QAAO;AAAA,IACzC,MAAM,KAAK,KAAK,EAAC,MAAM,MAAM,KAAK,QAAO;AAAA,IACzC,QAAQ,KAAK,KAAK,EAAC,MAAM,MAAM,KAAK,UAAS;AAAA,IAC7C,SAAS,KAAK,KAAK,EAAC,MAAM,MAAM,KAAK,WAAU;AAAA,IAC/C,KAAK,KAAK,KAAK,EAAC,MAAM,MAAM,KAAK,OAAM;AAAA,IACvC,QAAQ,KAAK,KAAK,EAAC,MAAM,MAAM,KAAK,UAAS;AAAA,IAC7C,QAAQ,KAAK,KAAK,EAAC,MAAM,MAAM,KAAK,UAAS;AAAA,IAC7C,OAAO,KAAK,KAAK,EAAC,MAAM,MAAM,KAAK,SAAQ;AAAA,IAC3C,MAAM,KAAK,KAAK,EAAC,MAAM,MAAM,KAAK,QAAO;AAAA,EAAA;AAE7C;ACyEgB,SAAA,iBACd,cAA4C,IACzB;AACnB,QAAM,WAAkC,EAAC,GAAG,aAAa,GAAG,YAAW;AAEhE,SAAA;AAAA,IACL,OAAO,mBAAmB,UAAU,EAAK;AAAA,IACzC,MAAM,mBAAmB,UAAU,EAAI;AAAA,EAAA;AAE3C;AAKA,SAAS,mBAAmB,MAA6B,MAAiC;AACjF,SAAA;AAAA,IACL,SAAS,aAAa,MAAM,MAAM,SAAS;AAAA,IAC3C,aAAa,aAAa,MAAM,MAAM,aAAa;AAAA,IACnD,SAAS,aAAa,MAAM,MAAM,SAAS;AAAA,IAC3C,UAAU,aAAa,MAAM,MAAM,UAAU;AAAA,IAC7C,SAAS,aAAa,MAAM,MAAM,SAAS;AAAA,IAC3C,UAAU,aAAa,MAAM,MAAM,UAAU;AAAA,EAAA;AAEjD;AAKA,SAAS,aACP,MACA,MACA,MACY;AACN,QAAA,OAAO,KAAK,KAAK,EAAC,MAAM,KAAK,CAAA,GAC7B,QAAQ,iBAAiB,MAAM,MAAM,MAAM,IAAI,GAC/C,QAAQ,iBAAiB,MAAM,MAAM,MAAM,IAAI;AAE9C,SAAA;AAAA,IACL;AAAA,IACA,QAAQ,kBAAkB,MAAM,MAAM,MAAM,OAAO,KAAK;AAAA,IACxD,MAAM,iBAAiB,MAAM,MAAM,MAAM,MAAM,OAAO,KAAK;AAAA,IAC3D;AAAA,IACA,OAAO,iBAAiB,MAAM,MAAM,MAAM,OAAO,KAAK;AAAA,IACtD,YAAY,sBAAsB,MAAM,MAAM,MAAM,OAAO,KAAK;AAAA,IAChE,MAAM,WAAW,MAAM,MAAM,IAAI;AAAA,IACjC,QAAQ,KAAK,OAAO,EAAC,MAAM,MAAK;AAAA,IAChC;AAAA,IACA;AAAA,EAAA;AAEJ;AC3IA,MAAM,eAAe,GACf,gBAAgB,KAET,qBAA2D;AAAA,EACtE,UAAU;AAAA,EACV,QAAQ;AAAA,IACN,OAAO;AAAA,MACL,EAAC,UAAU,IAAI,MAAM,GAAE;AAAA,MACvB,EAAC,UAAU,IAAI,MAAM,GAAE;AAAA,MACvB,EAAC,UAAU,IAAI,MAAM,GAAE;AAAA,MACvB,EAAC,UAAU,KAAK,MAAM,GAAE;AAAA,IAC1B;AAAA,IACA,WAAW,EAAC,QAAQ,GAAG,OAAO,EAAC;AAAA,EACjC;AAAA,EACA,QAAQ;AAAA,IACN,YAAY;AAAA,IACZ,QAAQ,EAAC,OAAO,aAAY;AAAA,IAC5B,WAAW,EAAC,QAAQ,IAAI,OAAO,EAAC;AAAA,EAClC;AAAA,EACA,MAAM;AAAA,IACJ,QAAQ,EAAC,OAAO,aAAY;AAAA,IAC5B,WAAW,EAAC,QAAQ,IAAI,OAAO,EAAC;AAAA,IAChC,QAAQ,EAAC,SAAS,cAAa;AAAA,EACjC;AAAA,EACA,WAAW,CAAC,KAAK,KAAK,KAAK,MAAM,MAAM,IAAI;AAAA,EAC3C,OAAO,CAAC,KAAK,KAAK,KAAK,MAAM,MAAM,IAAI;AAAA,EACvC,OAAO;AAAA,IACL,QAAQ,EAAC,SAAS,IAAG;AAAA,IACrB,SAAS,EAAC,SAAS,IAAG;AAAA,IACtB,SAAS,EAAC,SAAS,IAAG;AAAA,EACxB;AAAA,EACA,QAAQ,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE;AAAA,EAC9B,QAAQ;AAAA,IACN;AAAA,IACA,EAAC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,EAAC;AAAA,IACnE,EAAC,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC,EAAC;AAAA,IACtE,EAAC,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC,EAAC;AAAA,IACvE,EAAC,OAAO,CAAC,GAAG,GAAG,IAAI,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC,EAAC;AAAA,IACxE,EAAC,OAAO,CAAC,GAAG,IAAI,IAAI,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC,EAAC;AAAA,EAC3E;AAAA,EACA,OAAO,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG;AAAA,EAC7C,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,OAAO;AAAA,IACT;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW,EAAC,QAAQ,IAAI,OAAO,EAAC;AAAA,IAClC;AAAA,IACA,OAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,MACV,WAAW,EAAC,QAAQ,IAAI,OAAO,EAAC;AAAA,IAClC;AAAA,IACA,QAAQ;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,sBAAsB;AAAA,MACtB,0BAA0B;AAAA,MAC1B,WAAW,EAAC,QAAQ,GAAG,OAAO,EAAC;AAAA,IACjC;AAAA,IACA,QAAQ;AAAA,MACN,WAAW,EAAC,QAAQ,IAAI,OAAO,EAAC;AAAA,IAClC;AAAA,IACA,MAAM;AAAA,MACJ,WAAW,EAAC,QAAQ,IAAI,OAAO,EAAC;AAAA,IAClC;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,MAAM;AAAA,QACJ,YAAY;AAAA,MACd;AAAA,IACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMF;AACF,GCjFa,oBAAgC;AAAA,EAC3C,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM;AAAA,IACR;AAAA,IACA,OAAO;AAAA,MACL;AAAA,QACE,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB;AAAA,MACA;AAAA,QACE,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB;AAAA,MACA;AAAA,QACE,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB;AAAA,MACA;AAAA,QACE,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB;AAAA,MACA;AAAA,QACE,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AAAA,EACA,SAAS;AAAA,IACP,QACE;AAAA,IACF,SAAS;AAAA,MACP,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM;AAAA,IACR;AAAA,IACA,OAAO;AAAA,MACL;AAAA,QACE,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB;AAAA,MACA;AAAA,QACE,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB;AAAA,MACA;AAAA,QACE,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB;AAAA,MACA;AAAA,QACE,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB;AAAA,MACA;AAAA,QACE,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB;AAAA,MACA;AAAA,QACE,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,QACE;AAAA,IACF,SAAS;AAAA,MACP,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM;AAAA,IACR;AAAA,IACA,OAAO;AAAA,MACL;AAAA,QACE,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB;AAAA,MACA;AAAA,QACE,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB;AAAA,MACA;AAAA,QACE,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB;AAAA,MACA;AAAA,QACE,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB;AAAA,MACA;AAAA,QACE,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB;AAAA,MACA;AAAA,QACE,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AAAA,EACA,MAAM;AAAA,IACJ,QACE;AAAA,IACF,SAAS;AAAA,MACP,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM;AAAA,IACR;AAAA,IACA,OAAO;AAAA,MACL;AAAA,QACE,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB;AAAA,MACA;AAAA,QACE,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB;AAAA,MACA;AAAA,QACE,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB;AAAA,MACA;AAAA,QACE,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB;AAAA,MACA;AAAA,QACE,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AACF,GCrNMC,8BAAY;AAGX,SAAS,iBAAiB,UAAyC;AAhB1E,MAAA,IAAA,IAAA;AAiBQ,QAAA,YAAYA,QAAM,IAAI,QAAQ;AAEhC,MAAA;AAAkB,WAAA;AAEtB,QAAM,OAAO,sBAAsB,UAAU,SAAS,KAAK,OAAO,GAE5D,WAA8B;AAAA,IAClC,QAAQ,SAAS,WAAW,SAAS,OAAO,WAAW;AAAA,IACvD,OAAO,SAAS;AAAA,IAChB,QAAQ,KAAK;AAAA,IACb,QAAQ,KAAK;AAAA,IACb,UAAU,SAAS,KAAK,OAAO;AAAA,IAC/B,OAAO,KAAK;AAAA,IACZ,IAAI,SAAS,KAAK;AAAA,IAClB,QAAQ,SAAS,KAAK;AAAA,IACtB,QAAQ;AAAA,MACN,SAAS,2BAA2B,UAAU,SAAS,OAAO,OAAO;AAAA,MACrE,OAAO,2BAA2B,UAAU,SAAS,OAAO,KAAK;AAAA,MACjE,OAAO,2BAA2B,UAAU,SAAS,OAAO,KAAK;AAAA,IACnE;AAAA,IACA,MAAM,KAAK;AAAA,IACX,IAAI,SAAS,KAAK;AAAA,IAClB,WAAW,SAAS,KAAK;AAAA,IACzB,MAAM,KAAK,MAAM;AAAA,IACjB,OAAO;AAAA,MACL,SAAS,4BAA4B,SAAS,MAAM,OAAO;AAAA,MAC3D,SAAS,4BAA4B,SAAS,MAAM,OAAO;AAAA,IAC7D;AAAA,IACA,KAAK,KAAK;AAAA,IACV,MAAM,KAAK;AAAA,IACX,OAAO;AAAA,MACL,GAAG,KAAK;AAAA,MACR,MAAI,cAAS,eAAT,OAAA,SAAA,GAAqB,QAAQ,QAAQ,QAAO,SAAS,KAAK;AAAA,IAChE;AAAA,IACA,YAAY,2BAA2B,UAAU,SAAS,cAAc,SAAS,KAAK;AAAA,IACtF,QAAQ,SAAS,KAAK;AAAA,IACtB,UAAU;AAAA,MACR,QAAM,KAAS,SAAA,aAAT,OAAmB,SAAA,GAAA,SAAQ,SAAS,KAAK;AAAA,MAC/C,MAAI,KAAS,SAAA,aAAT,OAAmB,SAAA,GAAA,OAAM,SAAS,KAAK;AAAA,IAC7C;AAAA,IACA,QAAQ,SAAS;AAAA,EAAA;AAGb,SAAAA,QAAA,IAAI,UAAU,QAAQ,GAErB;AACT;AAEA,SAAS,2BACP,IACA,GACyB;AAClB,SAAA;AAAA,IACL,SAAS;AAAA,MACP,SAAS,sBAAsB,IAAI,EAAE,QAAQ,OAAO;AAAA,MACpD,SAAS,sBAAsB,IAAI,EAAE,QAAQ,OAAO;AAAA,MACpD,SAAS,sBAAsB,IAAI,EAAE,QAAQ,OAAO;AAAA,MACpD,UAAU,sBAAsB,IAAI,EAAE,QAAQ,QAAQ;AAAA,MACtD,UAAU,sBAAsB,IAAI,EAAE,QAAQ,QAAQ;AAAA,IACxD;AAAA,IACA,SAAS;AAAA,MACP,SAAS,sBAAsB,IAAI,EAAE,QAAQ,OAAO;AAAA,MACpD,SAAS,sBAAsB,IAAI,EAAE,QAAQ,OAAO;AAAA,MACpD,SAAS,sBAAsB,IAAI,EAAE,QAAQ,OAAO;AAAA,MACpD,UAAU,sBAAsB,IAAI,EAAE,QAAQ,QAAQ;AAAA,MACtD,UAAU,sBAAsB,IAAI,EAAE,QAAQ,QAAQ;AAAA,IACxD;AAAA,IACA,UAAU;AAAA,MACR,SAAS,sBAAsB,IAAI,EAAE,SAAS,OAAO;AAAA,MACrD,SAAS,sBAAsB,IAAI,EAAE,SAAS,OAAO;AAAA,MACrD,SAAS,sBAAsB,IAAI,EAAE,SAAS,OAAO;AAAA,MACrD,UAAU,sBAAsB,IAAI,EAAE,SAAS,QAAQ;AAAA,MACvD,UAAU,sBAAsB,IAAI,EAAE,SAAS,QAAQ;AAAA,IACzD;AAAA,IACA,SAAS;AAAA,MACP,SAAS,sBAAsB,IAAI,EAAE,QAAQ,OAAO;AAAA,MACpD,SAAS,sBAAsB,IAAI,EAAE,QAAQ,OAAO;AAAA,MACpD,SAAS,sBAAsB,IAAI,EAAE,QAAQ,OAAO;AAAA,MACpD,UAAU,sBAAsB,IAAI,EAAE,QAAQ,QAAQ;AAAA,MACtD,UAAU,sBAAsB,IAAI,EAAE,QAAQ,QAAQ;AAAA,IACxD;AAAA,IACA,UAAU;AAAA,MACR,SAAS,sBAAsB,IAAI,EAAE,SAAS,OAAO;AAAA,MACrD,SAAS,sBAAsB,IAAI,EAAE,SAAS,OAAO;AAAA,MACrD,SAAS,sBAAsB,IAAI,EAAE,SAAS,OAAO;AAAA,MACrD,UAAU,sBAAsB,IAAI,EAAE,SAAS,QAAQ;AAAA,MACvD,UAAU,sBAAsB,IAAI,EAAE,SAAS,QAAQ;AAAA,IACzD;AAAA,EAAA;AAEJ;AAEA,SAAS,sBAAsB,IAAgB,OAAmD;AA5GlG,MAAA,IAAA;AA6GS,SAAA;AAAA,IACL,GAAG;AAAA,IACH,QAAQ;AAAA,MACN,MAAM;AAAA,QACJ,IAAI,GAAG,KAAK;AAAA,QACZ,IAAI,GAAG,KAAK;AAAA,MACd;AAAA,MACA,MAAM;AAAA,QACJ,IAAI,GAAG,KAAK;AAAA,QACZ,IAAI,GAAG,KAAK;AAAA,MACd;AAAA,MACA,QAAQ;AAAA,QACN,IAAI,GAAG,KAAK;AAAA,QACZ,IAAI,GAAG,KAAK;AAAA,MACd;AAAA,MACA,SAAS;AAAA,QACP,IAAI,GAAG,KAAK;AAAA,QACZ,IAAI,GAAG,KAAK;AAAA,MACd;AAAA,MACA,KAAK;AAAA,QACH,IAAI,GAAG,KAAK;AAAA,QACZ,IAAI,GAAG,KAAK;AAAA,MACd;AAAA,MACA,QAAQ;AAAA,QACN,IAAI,GAAG,KAAK;AAAA,QACZ,IAAI,GAAG,KAAK;AAAA,MACd;AAAA,MACA,QAAQ;AAAA,QACN,IAAI,GAAG,KAAK;AAAA,QACZ,IAAI,GAAG,KAAK;AAAA,MACd;AAAA,MACA,OAAO;AAAA,QACL,IAAI,GAAG,KAAK;AAAA,QACZ,IAAI,GAAG,KAAK;AAAA,MACd;AAAA,MACA,MAAM;AAAA,QACJ,IAAI,GAAG,KAAK;AAAA,QACZ,IAAI,GAAG,KAAK;AAAA,MACd;AAAA,IACF;AAAA,IACA,OAAO;AAAA,MACL,SAAS;AAAA,QACP,IAAI,GAAG,MAAM,QAAQ,QAAQ;AAAA,QAC7B,IAAI,GAAG,MAAM,QAAQ,QAAQ;AAAA,QAC7B,KAAK,GAAG,MAAM,QAAQ,QAAQ,MAAM;AAAA,QACpC,MAAM,GAAG,MAAM,QAAQ,QAAQ,MAAM;AAAA,MACvC;AAAA,MACA,SAAS;AAAA,QACP,IAAI,GAAG,MAAM,QAAQ,QAAQ;AAAA,QAC7B,IAAI,GAAG,MAAM,QAAQ,QAAQ;AAAA,QAC7B,KAAK,GAAG,MAAM,QAAQ,QAAQ,MAAM;AAAA,QACpC,MAAM,GAAG,MAAM,QAAQ,QAAQ,MAAM;AAAA,MACvC;AAAA,MACA,UAAU;AAAA,QACR,IAAI,GAAG,MAAM,SAAS,QAAQ;AAAA,QAC9B,IAAI,GAAG,MAAM,SAAS,QAAQ;AAAA,QAC9B,KAAK,GAAG,MAAM,SAAS,QAAQ,MAAM;AAAA,QACrC,MAAM,GAAG,MAAM,SAAS,QAAQ,MAAM;AAAA,MACxC;AAAA,MACA,SAAS;AAAA,QACP,IAAI,GAAG,MAAM,QAAQ,QAAQ;AAAA,QAC7B,IAAI,GAAG,MAAM,QAAQ,QAAQ;AAAA,QAC7B,KAAK,GAAG,MAAM,QAAQ,QAAQ,MAAM;AAAA,QACpC,MAAM,GAAG,MAAM,QAAQ,QAAQ,MAAM;AAAA,MACvC;AAAA,MACA,UAAU;AAAA,QACR,IAAI,GAAG,MAAM,SAAS,QAAQ;AAAA,QAC9B,IAAI,GAAG,MAAM,SAAS,QAAQ;AAAA,QAC9B,KAAK,GAAG,MAAM,SAAS,QAAQ,MAAM;AAAA,QACrC,MAAM,GAAG,MAAM,SAAS,QAAQ,MAAM;AAAA,MACxC;AAAA,IACF;AAAA,IACA,KAAK;AAAA,MACH,IAAI,GAAG,MAAM,QAAQ,QAAQ;AAAA,MAC7B,IAAI,GAAG,MAAM,QAAQ,QAAQ;AAAA,MAC7B,QAAQ,GAAG,MAAM,QAAQ,QAAQ;AAAA,IACnC;AAAA,IACA,OAAO;AAAA,MACL,GAAG,GAAG,MAAM,QAAQ,QAAQ;AAAA,MAC5B,IAAI,MAAM,OAAO,MAAM;AAAA,IACzB;AAAA,IACA,UAAU;AAAA,MACR,QAAM,KAAA,MAAM,aAAN,OAAA,SAAA,GAAgB,SAAQ,MAAM;AAAA,MACpC,MAAI,KAAA,MAAM,aAAN,OAAA,SAAA,GAAgB,OAAM,MAAM;AAAA,IAClC;AAAA,EAAA;AAEJ;AAEA,SAAS,4BAA4B,QAAuD;AACnF,SAAA;AAAA,IACL,SAAS,2BAA2B,OAAO,OAAO;AAAA,IAClD,UAAU,2BAA2B,OAAO,QAAQ;AAAA,IACpD,UAAU,2BAA2B,OAAO,QAAQ;AAAA,IACpD,SAAS,2BAA2B,OAAO,OAAO;AAAA,EAAA;AAEtD;AAEA,SAAS,2BAA2B,OAAsD;AACjF,SAAA;AAAA,IACL,IAAI,MAAM;AAAA,IACV,QAAQ,MAAM;AAAA,IACd,IAAI,MAAM;AAAA,IACV,OAAO;AAAA,MACL,IAAI,MAAM;AAAA,IACZ;AAAA,IACA,aAAa,MAAM;AAAA,EAAA;AAEvB;ACpNA,MAAMA,8BAAY;AAGX,SAAS,YAAY,OAAwB;AAPpD,MAAA,IAAA;AAQM,OAAA,KAAA,MAAM,OAAO,OAAb,QAAiB,GAAA;AAAW,WAAO,MAAM,OAAO;AAE9C,QAAA,YAAYA,QAAM,IAAI,KAAK;AAE7B,MAAA;AAAkB,WAAA;AAEtB,QAAM,KAAe;AAAA,IACnB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,QAAQ;AAAA,MACN,GAAG,mBAAmB;AAAA,MACtB,GAAG,MAAM,OAAO;AAAA,IAClB;AAAA,IACA,QAAQ;AAAA,MACN,GAAG,mBAAmB;AAAA,MACtB,GAAG,MAAM,OAAO;AAAA,IAClB;AAAA,IACA,MAAM,mBAAmB;AAAA,IACzB,OAAO,iBAAiB,MAAM,OAAO,KAAK;AAAA,IAC1C,WAAW,MAAM,OAAO;AAAA,IACxB,MAAM,MAAM,OAAO;AAAA,IACnB,OAAO;AAAA,MACL,GAAG,mBAAmB;AAAA,MACtB,GAAG,MAAM,OAAO;AAAA,MAChB,UAAU;AAAA,QACR,GAAG,mBAAmB,MAAM;AAAA,QAC5B,GAAG,MAAM,OAAO,MAAM;AAAA,MACxB;AAAA,MACA,OAAO;AAAA,QACL,GAAG,mBAAmB,MAAM;AAAA,QAC5B,GAAG,MAAM,OAAO,MAAM;AAAA,MACxB;AAAA,MACA,QAAQ;AAAA,QACN,GAAG,mBAAmB,MAAM;AAAA,QAC5B,GAAG,MAAM,OAAO,MAAM;AAAA,MACxB;AAAA,IACF;AAAA,IACA,QAAO,KAAA,MAAM,OAAO,UAAb,YAAsB,mBAAmB;AAAA,IAChD,OAAO,MAAM,OAAO;AAAA,IACpB,QAAQ,MAAM,OAAO;AAAA,IACrB,QAAQ,MAAM,OAAO;AAAA,IACrB,OAAO,MAAM,OAAO;AAAA,IACpB,OAAO,MAAM,OAAO;AAAA,EAAA;AAGhB,SAAAA,QAAA,IAAI,OAAO,EAAE,GAEZ;AACT;ACrDO,SAAS,MAAM,WAA6D;AACjF,SAAO,UAAU,aAAa;AAChC;ACFO,SAAS,MAAM,WAAgE;AACpF,SAAO,UAAU,aAAa;AAChC;ACDA,MAAMA,8BAAY;AAGX,SAAS,MAAM,IAA6B;AACjD,MAAI,GAAG;AAAI,WAAO,GAAG;AAEf,QAAA,YAAYA,QAAM,IAAI,EAAE;AAE1B,MAAA;AAAkB,WAAA;AAEhB,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA,OAAAD;AAAA,IACA;AAAA;AAAA,IAEA,WAAW;AAAA,IACX,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,QAAQ;AAAA,EAAA,IACN,IAEE,KAAmB;AAAA,IACvB,UAAU;AAAA,IACV,QAAQ;AAAA,MACN,GAAG,mBAAmB;AAAA,MACtB,GAAG;AAAA,IACL;AAAA,IACA,QAAQ;AAAA,MACN,GAAG,mBAAmB;AAAA,MACtB,GAAG;AAAA,IACL;AAAA,IACA,MAAM,mBAAmB;AAAA,IACzB,OAAO;AAAA,MACL,OAAO;AAAA,QACL,aAAa,iBAAiBA,OAAM,MAAM,WAAW;AAAA,QACrD,SAAS,iBAAiBA,OAAM,MAAM,OAAO;AAAA,QAC7C,SAAS,iBAAiBA,OAAM,MAAM,OAAO;AAAA,QAC7C,UAAU,iBAAiBA,OAAM,MAAM,QAAQ;AAAA,QAC/C,SAAS,iBAAiBA,OAAM,MAAM,OAAO;AAAA,QAC7C,UAAU,iBAAiBA,OAAM,MAAM,QAAQ;AAAA,MACjD;AAAA,MACA,MAAM;AAAA,QACJ,aAAa,iBAAiBA,OAAM,KAAK,WAAW;AAAA,QACpD,SAAS,iBAAiBA,OAAM,KAAK,OAAO;AAAA,QAC5C,SAAS,iBAAiBA,OAAM,KAAK,OAAO;AAAA,QAC5C,UAAU,iBAAiBA,OAAM,KAAK,QAAQ;AAAA,QAC9C,SAAS,iBAAiBA,OAAM,KAAK,OAAO;AAAA,QAC5C,UAAU,iBAAiBA,OAAM,KAAK,QAAQ;AAAA,MAChD;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,MACL,GAAG,mBAAmB;AAAA,MACtB,GAAG;AAAA,MACH,UAAU;AAAA,QACR,GAAG,mBAAmB,MAAM;AAAA,QAC5B,GAAG,MAAM;AAAA,MACX;AAAA,MACA,OAAO;AAAA,QACL,GAAG,mBAAmB,MAAM;AAAA,QAC5B,GAAG,MAAM;AAAA,MACX;AAAA,MACA,QAAQ;AAAA,QACN,GAAG,mBAAmB,MAAM;AAAA,QAC5B,GAAG,MAAM;AAAA,MACX;AAAA,IACF;AAAA,IACA,OAAO,wBAAS,mBAAmB;AAAA,IACnC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGI,SAAAC,QAAA,IAAI,IAAI,EAAE,GAET;AACT;AC9EA,MAAMA,8BAAY;AAGX,SAAS,MAAM,IAA6B;AAC3C,QAAA,cAAcA,QAAM,IAAI,EAAE;AAE5B,MAAA;AAAoB,WAAA;AAElB,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA,OAAAD;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA,OAAO;AAAA,EACL,IAAA;AAEG,SAAA;AAAA,IACL,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,MACL,OAAO;AAAA,QACL,aAAa,iBAAiBA,OAAM,MAAM,WAAW;AAAA,QACrD,SAAS,iBAAiBA,OAAM,MAAM,OAAO;AAAA,QAC7C,SAAS,iBAAiBA,OAAM,MAAM,OAAO;AAAA,QAC7C,UAAU,iBAAiBA,OAAM,MAAM,QAAQ;AAAA,QAC/C,SAAS,iBAAiBA,OAAM,MAAM,OAAO;AAAA,QAC7C,UAAU,iBAAiBA,OAAM,MAAM,QAAQ;AAAA,MACjD;AAAA,MACA,MAAM;AAAA,QACJ,aAAa,iBAAiBA,OAAM,KAAK,WAAW;AAAA,QACpD,SAAS,iBAAiBA,OAAM,KAAK,OAAO;AAAA,QAC5C,SAAS,iBAAiBA,OAAM,KAAK,OAAO;AAAA,QAC5C,UAAU,iBAAiBA,OAAM,KAAK,QAAQ;AAAA,QAC9C,SAAS,iBAAiBA,OAAM,KAAK,OAAO;AAAA,QAC5C,UAAU,iBAAiBA,OAAM,KAAK,QAAQ;AAAA,MAChD;AAAA,IACF;AAAA,IACA,WAAW,MAAM,KAAK;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,EAAA;AAEJ;AAEA,SAAS,iBAAiB,UAAyC;AAC1D,SAAA;AAAA,IACL,MAAM;AAAA,MACJ,IAAI,SAAS;AAAA,MACb,IAAI,SAAS;AAAA,MACb,QAAQ,SAAS;AAAA,MACjB,WAAW,SAAS;AAAA,MACpB,QAAQ,SAAS;AAAA,IACnB;AAAA,IACA,QAAQ,SAAS;AAAA,IACjB,MAAM,SAAS,WAAW;AAAA,IAC1B,MAAM,SAAS;AAAA,IACf,OAAO;AAAA,MACL,SAAS,4BAA4B,SAAS,MAAM,OAAO;AAAA,MAC3D,SAAS,4BAA4B,SAAS,MAAM,OAAO;AAAA,IAC7D;AAAA,IACA,OAAO;AAAA,MACL,GAAG,SAAS,OAAO;AAAA,MACnB,aAAa,SAAS,OAAO,MAAM;AAAA,IACrC;AAAA,IACA,OAAO;AAAA,MACL,GAAG,SAAS,OAAO;AAAA,MACnB,aAAa,SAAS,OAAO,QAAQ;AAAA,IACvC;AAAA,IACA,YAAY,SAAS;AAAA,IACrB,MAAM;AAAA,MACJ,MAAM,SAAS,OAAO,KAAK;AAAA,MAC3B,MAAM,SAAS,OAAO,KAAK;AAAA,MAC3B,QAAQ,SAAS,OAAO,OAAO;AAAA,MAC/B,SAAS,SAAS,OAAO,QAAQ;AAAA,MACjC,KAAK,SAAS,OAAO,IAAI;AAAA,MACzB,QAAQ,SAAS,OAAO,OAAO;AAAA,MAC/B,QAAQ,SAAS,OAAO,OAAO;AAAA,MAC/B,OAAO,SAAS,OAAO,MAAM;AAAA,MAC7B,MAAM,SAAS,OAAO,KAAK;AAAA,IAC7B;AAAA,IACA,QAAQ,SAAS;AAAA,EAAA;AAErB;AAEA,SAAS,4BAA4B,GAAkD;AAC9E,SAAA;AAAA,IACL,SAAS,2BAA2B,EAAE,OAAO;AAAA,IAC7C,UAAU,2BAA2B,EAAE,QAAQ;AAAA,IAC/C,UAAU,2BAA2B,EAAE,QAAQ;AAAA,IAC/C,SAAS,2BAA2B,EAAE,OAAO;AAAA,EAAA;AAEjD;AAEA,SAAS,2BAA2B,GAAkD;AAC7E,SAAA;AAAA,IACL,IAAI,EAAE;AAAA,IACN,KAAK,EAAE,MAAM;AAAA,IACb,QAAQ,EAAE;AAAA,IACV,IAAI,EAAE;AAAA,IACN,aAAa,EAAE;AAAA,EAAA;AAEnB;AC3Ha,MAAA,sBAAsB,CAAC,SAAS,MAAM,GAGtC,0BAA0B,CAAC,YAAY,QAAQ,GAG/C,yBAAyB;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAGa,0BAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAGa,qBAAqB,CAAC,WAAW,WAAW,WAAW,YAAY,UAAU,GAG7E,2BAA2B,CAAC,WAAW,SAAS,OAAO,GAGvD,0BAA0B,CAAC,WAAW,SAAS,GAG/C,2BAA2B,CAAC,WAAW,WAAW,YAAY,UAAU,GAGxE,4BAA4B;ACnClC,SAAS,sBAAsB,KAA4C;AACzE,SAAA,wBAAwB,SAAS,GAA6B;AACvE;AAGO,SAAS,cAAc,KAAiC;AACtD,SAAA,WAAW,SAAS,GAAkB;AAC/C;AAGO,SAAS,eAAe,KAAkC;AACxD,SAAA,YAAY,SAAS,GAAmB;AACjD;AAGO,SAAS,kBAAkB,KAA6C;AACtE,SAAA,yBAAyB,SAAS,GAA8B;AACzE;ACVO,MAAM,0BAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMa,yBAAyB;AAAA,EACpC,GAAG;AAAA,EACH;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMa,0BAA0B,CAAC,QAAQ,GA8BnC,6BAA6B,CAAC,KAAK,GAAG,yBAAyB,GAM/D,0BAA0B,CAAC,KAAK,GAAG,sBAAsB,GAMzD,2BAA2B,CAAC,KAAK,GAAG,uBAAuB,GAM3D,sBAAsB,CAAC,KAAK,GAAG,kBAAkB,GAMjD,2BAA2B,CAAC,KAAK,GAAG,uBAAuB,GAM3D,4BAA4B,CAAC,KAAK,GAAG,wBAAwB;ACnGnE,SAAS,cAAc,KAAuC;AAC7D,QAAA,WAAW,IAAI,MAAM,GAAG,GACxB,WAAW,SAAS,MAAW,KAAA;AAEjC,MAAA,sBAAsB,QAAQ,GAAG;AAC7B,UAAA,MAAM,SAAS,KAAK,GAAG;AAE7B,QAAI,qBAAqB,GAAG;AACnB,aAAA;AAAA,QACL,MAAM;AAAA,QACN,MAAM;AAAA,QACN;AAAA,MAAA;AAIJ,QAAI,sBAAsB,GAAG;AACpB,aAAA;AAAA,QACL,MAAM;AAAA,QACN,MAAM;AAAA,QACN;AAAA,MAAA;AAAA,EAGN;AAEA,MAAI,aAAa,UAAU;AACnB,UAAA,WAAW,SAAS,MAAA,KAAW;AAEjC,QAAA,uBAAuB,QAAQ,GAAG;AAC9B,YAAA,WAAW,SAAS,MAAA,KAAW;AAEjC,UAAA,kBAAkB,QAAQ,GAAG;AACzB,cAAA,MAAM,SAAS,KAAK,GAAG;AAE7B,YAAI,sBAAsB,GAAG;AACpB,iBAAA;AAAA,YACL,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN;AAAA,UAAA;AAIJ,YAAI,sBAAsB,GAAG;AACpB,iBAAA;AAAA,YACL,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN;AAAA,UAAA;AAAA,MAGN;AAAA,IACF;AAAA,EACF;AAGF;AC9DA,SAAS,uBAAuB,KAAkC;AACzD,SAAA,SAAS,KAAK,GAAG;AAC1B;AAGO,SAAS,gBAAgB,KAAyC;AACjE,QAAA,WAAW,IAAI,MAAM,GAAG;AAE1B,MAAA,cAAc,SAAS,MAAA,KAAW;AAEtC,QAAM,CAAC,UAAU,WAAW,IAAI,YAAY,MAAM,GAAG;AAEjD,MAAA,eAAe,QAAQ,GAAG;AAC5B,UAAM,OAAO,UACP,WAAW,SAAS,MAAW,KAAA;AAEjC,QAAA,uBAAuB,WAAW,GAAG;AACvC,YAAME,OAAM,OAAO,YAAY,MAAM,GAAG,EAAE,CAAC,IAAI;AAExC,aAAA;AAAA,QACL,MAAM;AAAA,QACN;AAAA,QACA,KAAAA;AAAA,MAAA;AAAA,IAEJ;AAEI,QAAA,oBAAoB,QAAQ,GAAG;AAC3B,YAAA,UAAU,OAAO,QAAQ;AAExB,aAAA;AAAA,QACL,MAAM;AAAA,QACN;AAAA,QACA;AAAA,MAAA;AAAA,IAEJ;AAEO,WAAA;AAAA,MACL,MAAM;AAAA,MACN;AAAA,IAAA;AAAA,EAEJ;AAEI,MAAA,aAAa,QAAQ,GAAG;AAC1B,UAAM,MAAM,UACN,WAAW,SAAS,MAAW,KAAA;AAEjC,QAAA,uBAAuB,WAAW,GAAG;AACvC,YAAMA,OAAM,OAAO,YAAY,MAAM,GAAG,EAAE,CAAC,IAAI;AAExC,aAAA;AAAA,QACL,MAAM;AAAA,QACN;AAAA,QACA,KAAAA;AAAA,MAAA;AAAA,IAEJ;AAEI,QAAA,oBAAoB,QAAQ,GAAG;AAC3B,YAAA,UAAU,OAAO,QAAQ;AAExB,aAAA;AAAA,QACL,MAAM;AAAA,QACN;AAAA,QACA;AAAA,MAAA;AAAA,IAEJ;AAEO,WAAA;AAAA,MACL,MAAM;AAAA,MACN;AAAA,IAAA;AAAA,EAEJ;AAEI,MAAA,cAAc,QAAQ,GAAG;AAC3B,UAAM,MAAM;AAEE,kBAAA,SAAS,MAAW,KAAA;AAElC,UAAM,CAAC,UAAU,WAAW,IAAI,YAAY,MAAM,GAAG;AAEjD,QAAA,eAAe,QAAQ,GAAG;AAC5B,YAAM,OAAO,UACP,WAAW,SAAS,MAAW,KAAA;AAEjC,UAAA,uBAAuB,WAAW,GAAG;AACvC,cAAMA,OAAM,OAAO,YAAY,MAAM,GAAG,EAAE,CAAC,IAAI;AAExC,eAAA;AAAA,UACL,MAAM;AAAA,UACN;AAAA,UACA;AAAA,UACA,KAAAA;AAAA,QAAA;AAAA,MAEJ;AAEI,UAAA,oBAAoB,QAAQ,GAAG;AAC3B,cAAA,UAAU,OAAO,QAAQ;AAExB,eAAA;AAAA,UACL,MAAM;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MAEJ;AAEO,aAAA;AAAA,QACL,MAAM;AAAA,QACN;AAAA,QACA;AAAA,MAAA;AAAA,IAEJ;AAEO,WAAA;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAAA,EAEX;AAEA,MAAI,sBAAsB,QAAQ;AAGzB,WAAA;AAAA,MACL,MAAM;AAAA,MACN,OAJY;AAAA,IAAA;AASlB;ACnHO,SAAS,sBAAsB,KAAyC;AACtE,SAAA,wBAAwB,SAAS,GAA0B;AACpE;AAGO,SAAS,qBAAqB,KAAwC;AACpE,SAAA,uBAAuB,SAAS,GAAyB;AAClE;AAGO,SAAS,sBAAsB,KAAyC;AACtE,SAAA,wBAAwB,SAAS,GAA0B;AACpE;AAGO,SAAS,uBAAuB,KAA0C;AACxE,SAAA,yBAAyB,SAAS,GAA2B;AACtE;AAGO,SAAS,sBAAsB,KAAyC;AACtE,SAAA,wBAAwB,SAAS,GAA0B;AACpE;AAGO,SAAS,kBAAkB,KAAsC;AA1CxE,MAAA,IAAA;AA2CS,WAAA,KAAA,gBAAgB,GAAG,MAAnB,OAAsB,SAAA,GAAA,UAAS,aAAW,KAAgB,gBAAA,GAAG,MAAnB,OAAA,SAAA,GAAsB,UAAS;AAClF;AAGO,SAAS,aAAa,KAAuC;AAC3D,SAAA,QAAQ,WAAW,QAAQ;AACpC;AAGO,SAAS,oBAAoB,KAA6C;AAC/E,SAAO,QAAQ,OAAO,cAAc,KAAK,GAAG,KAAK,QAAQ;AAC3D;ACpDO,SAAS,uBAAuB,MAAmC;AACxE,MAAI,MAAM;AAQV,SANI,KAAK,QAAQ,WAAW,KAAK,QAAQ,UACvC,MAAM,KAAK,MAEX,MAAM,GAAG,KAAK,GAAG,IAAI,KAAK,IAAI,IAG5B,KAAK,QAAQ,SACR,GAAG,GAAG,IAAI,KAAK,MAAM,GAAG,OAG7B,KAAK,YAAY,WACnB,OAAO,IAAI,KAAK,OAAO,KAGlB;AACT;AChBA,MAAM,4BAAkD,CAAC,OAAO,KAAK;AAErD,SAAA,uBACd,SACA,QAA8B,2BACtB;AACR,QAAM,EAAC,KAAK,WAAU,SAChB,OAAO,gBAAgB,MAAM,WAAW,UAAU,IAAI,CAAC,CAAC;AAE1D,MAAA,CAAC,QAAQ,KAAK,SAAS;AACzB,UAAM,IAAI,MAAM,wBAAwB,MAAM,CAAC,CAAC,EAAE;AAG7C,SAAA,uBAAuB,EAAC,GAAG,MAAM,KAAK,KAAK,OAAO,KAAI;AAC/D;AChBO,MAAM,qBAAuC;AAAA,EAClD,MAAM;AAAA,IACJ,KAAK;AAAA,MACH,QAAQ,CAAC,YAAY,QAAQ;AAAA,MAC7B,QAAQ;AAAA,QACN,IAAI,CAAC,cAAc,YAAY;AAAA,MACjC;AAAA,MACA,QAAQ;AAAA,QACN,KAAK;AAAA,UACH,QAAQ,CAAC,UAAU,UAAU;AAAA,UAC7B,IAAI,CAAC,OAAO,KAAK;AAAA,UACjB,IAAI,CAAC,SAAS,OAAO;AAAA,QACvB;AAAA,MACF;AAAA,MACA,UAAU,CAAC,gBAAgB,WAAW;AAAA,MACtC,OAAO;AAAA,QACL,KAAK;AAAA,UACH,IAAI,CAAC,OAAO,KAAK;AAAA,UACjB,IAAI,CAAC,OAAO,KAAK;AAAA,UACjB,MAAM,CAAC,OAAO,KAAK;AAAA,UACnB,KAAK,CAAC,OAAO,KAAK;AAAA,QACpB;AAAA,QACA,UAAU;AAAA,UACR,IAAI,CAAC,WAAW,KAAK;AAAA,UACrB,IAAI,CAAC,OAAO,KAAK;AAAA,QACnB;AAAA,QACA,SAAS;AAAA,UACP,IAAI,CAAC,WAAW,KAAK;AAAA,UACrB,IAAI,CAAC,OAAO,KAAK;AAAA,QACnB;AAAA,MACF;AAAA,MACA,IAAI,CAAC,MAAM,KAAK;AAAA,MAChB,QAAQ,CAAC,OAAO,KAAK;AAAA,MACrB,MAAM;AAAA,QACJ,IAAI,CAAC,MAAM,KAAK;AAAA,QAChB,IAAI,CAAC,OAAO,KAAK;AAAA,MACnB;AAAA,MACA,IAAI,CAAC,OAAO,KAAK;AAAA,MACjB,WAAW,CAAC,YAAY,UAAU;AAAA,MAClC,MAAM,CAAC,OAAO,KAAK;AAAA,MACnB,KAAK;AAAA,QACH,IAAI,CAAC,SAAS,OAAO;AAAA,QACrB,IAAI,CAAC,OAAO,KAAK;AAAA,QACjB,QAAQ,CAAC,OAAO,KAAK;AAAA,MACvB;AAAA,MACA,MAAM;AAAA,QACJ,IAAI,CAAC,YAAY,UAAU;AAAA,MAC7B;AAAA,MACA,OAAO;AAAA,QACL,IAAI,CAAC,MAAM,KAAK;AAAA,QAChB,IAAI,CAAC,WAAW,SAAS;AAAA,MAC3B;AAAA,MACA,QAAQ;AAAA,QACN,SAAS,CAAC,WAAW,SAAS;AAAA,QAC9B,OAAO,CAAC,gBAAgB,WAAW;AAAA,QACnC,UAAU,CAAC,iBAAiB,YAAY;AAAA,QACxC,SAAS,CAAC,iBAAiB,YAAY;AAAA,MACzC;AAAA,MACA,UAAU;AAAA,QACR,MAAM,CAAC,OAAO,KAAK;AAAA,QACnB,IAAI,CAAC,WAAW,SAAS;AAAA,MAC3B;AAAA,IACF;AAAA,IACA,aAAa;AAAA,MACX,IAAI,CAAC,MAAM,OAAO;AAAA,IACpB;AAAA,IACA,SAAS;AAAA,MACP,IAAI,CAAC,SAAS,KAAK;AAAA,MACnB,IAAI,CAAC,OAAO,KAAK;AAAA,MACjB,OAAO;AAAA,QACL,IAAI,CAAC,OAAO,KAAK;AAAA,MACnB;AAAA,IACF;AAAA,IACA,SAAS,EAAC,MAAM,OAAM;AAAA,IACtB,UAAU;AAAA,MACR,MAAM;AAAA,MACN,QAAQ,EAAC,SAAS,CAAC,WAAW,SAAS,EAAC;AAAA,IAC1C;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,QAAQ,EAAC,SAAS,CAAC,WAAW,SAAS,EAAC;AAAA,IAC1C;AAAA,IACA,UAAU,EAAC,MAAM,MAAK;AAAA,EACxB;AAAA,EACA,QAAQ;AAAA,IACN,SAAS;AAAA,MACP,KAAK;AAAA,QACH,KAAK;AAAA,UACH,QAAQ,CAAC,UAAU,UAAU;AAAA,UAC7B,QAAQ;AAAA,YACN,IAAI,CAAC,cAAc,YAAY;AAAA,UACjC;AAAA,UACA,QAAQ;AAAA,YACN,KAAK;AAAA,cACH,QAAQ,CAAC,YAAY,QAAQ;AAAA,cAC7B,IAAI,CAAC,SAAS,OAAO;AAAA,cACrB,IAAI,CAAC,SAAS,OAAO;AAAA,YACvB;AAAA,UACF;AAAA,UACA,OAAO;AAAA,YACL,KAAK;AAAA,cACH,IAAI,CAAC,OAAO,KAAK;AAAA,cACjB,IAAI,CAAC,OAAO,KAAK;AAAA,cACjB,KAAK,CAAC,OAAO,KAAK;AAAA,cAClB,MAAM,CAAC,OAAO,KAAK;AAAA,YACrB;AAAA,UACF;AAAA,UACA,IAAI,CAAC,OAAO,KAAK;AAAA,UACjB,QAAQ,CAAC,SAAS,OAAO;AAAA,UACzB,MAAM;AAAA,YACJ,IAAI,CAAC,WAAW,SAAS;AAAA,YACzB,IAAI,CAAC,OAAO,KAAK;AAAA,UACnB;AAAA,UACA,IAAI,CAAC,SAAS,OAAO;AAAA,UACrB,MAAM,CAAC,WAAW,SAAS;AAAA,UAC3B,KAAK;AAAA,YACH,IAAI,CAAC,SAAS,OAAO;AAAA,YACrB,IAAI,CAAC,OAAO,KAAK;AAAA,YACjB,QAAQ,CAAC,OAAO,KAAK;AAAA,UACvB;AAAA,UACA,MAAM;AAAA,YACJ,IAAI,CAAC,YAAY,UAAU;AAAA,UAC7B;AAAA,UACA,OAAO;AAAA,YACL,IAAI,CAAC,OAAO,IAAI;AAAA,YAChB,IAAI,CAAC,WAAW,SAAS;AAAA,UAC3B;AAAA,UACA,UAAU;AAAA,YACR,MAAM,CAAC,OAAO,KAAK;AAAA,YACnB,IAAI,CAAC,WAAW,SAAS;AAAA,UAC3B;AAAA,QACF;AAAA,QACA,SAAS;AAAA,UACP,IAAI,CAAC,OAAO,KAAK;AAAA,UACjB,QAAQ,CAAC,SAAS,OAAO;AAAA,QAC3B;AAAA,QACA,SAAS;AAAA,UACP,IAAI,CAAC,OAAO,KAAK;AAAA,QACnB;AAAA,QACA,UAAU;AAAA,UACR,IAAI,CAAC,OAAO,KAAK;AAAA,QACnB;AAAA,QACA,UAAU;AAAA,UACR,MAAM;AAAA,UACN,QAAQ;AAAA,YACN,IAAI,CAAC,WAAW,SAAS;AAAA,UAC3B;AAAA,UACA,OAAO;AAAA,YACL,KAAK;AAAA,cACH,IAAI,CAAC,YAAY,UAAU;AAAA,cAC3B,IAAI,CAAC,SAAS,OAAO;AAAA,cACrB,KAAK,CAAC,SAAS,OAAO;AAAA,cACtB,MAAM,CAAC,SAAS,OAAO;AAAA,YACzB;AAAA,UACF;AAAA,UACA,IAAI,CAAC,OAAO,KAAK;AAAA,UACjB,KAAK;AAAA,YACH,IAAI,CAAC,SAAS,OAAO;AAAA,YACrB,IAAI,CAAC,SAAS,OAAO;AAAA,YACrB,QAAQ,CAAC,OAAO,KAAK;AAAA,UACvB;AAAA,UACA,MAAM;AAAA,YACJ,IAAI,CAAC,WAAW,SAAS;AAAA,UAC3B;AAAA,QACF;AAAA,MACF;AAAA,MACA,SAAS;AAAA,QACP,KAAK;AAAA,UACH,IAAI,CAAC,OAAO,KAAK;AAAA,UACjB,OAAO;AAAA,YACL,IAAI,CAAC,OAAO,IAAI;AAAA,YAChB,IAAI,CAAC,OAAO,KAAK;AAAA,UACnB;AAAA,QACF;AAAA,QACA,SAAS;AAAA,UACP,IAAI,CAAC,OAAO,KAAK;AAAA,QACnB;AAAA,QACA,SAAS;AAAA,UACP,IAAI,CAAC,SAAS,OAAO;AAAA,QACvB;AAAA,QACA,UAAU;AAAA,UACR,IAAI,CAAC,SAAS,OAAO;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAAA,IACA,OAAO;AAAA,MACL,KAAK;AAAA,QACH,KAAK;AAAA,UACH,QAAQ,CAAC,YAAY,QAAQ;AAAA,UAC7B,QAAQ;AAAA,YACN,IAAI,CAAC,kBAAkB,gBAAgB;AAAA,UACzC;AAAA,UACA,OAAO;AAAA,YACL,KAAK;AAAA,cACH,IAAI,CAAC,OAAO,KAAK;AAAA,cACjB,IAAI,CAAC,OAAO,KAAK;AAAA,cACjB,KAAK,CAAC,OAAO,KAAK;AAAA,cAClB,MAAM,CAAC,OAAO,KAAK;AAAA,YACrB;AAAA,UACF;AAAA,UACA,IAAI,CAAC,MAAM,KAAK;AAAA,UAChB,QAAQ,CAAC,OAAO,KAAK;AAAA,UACrB,MAAM;AAAA,YACJ,IAAI,CAAC,WAAW,SAAS;AAAA,YACzB,IAAI,CAAC,WAAW,SAAS;AAAA,UAC3B;AAAA,UACA,IAAI,CAAC,OAAO,KAAK;AAAA,UACjB,MAAM,CAAC,WAAW,SAAS;AAAA,UAC3B,KAAK;AAAA,YACH,IAAI,CAAC,SAAS,OAAO;AAAA,YACrB,IAAI,CAAC,OAAO,KAAK;AAAA,YACjB,QAAQ,CAAC,OAAO,KAAK;AAAA,UACvB;AAAA,UACA,MAAM;AAAA,YACJ,IAAI,CAAC,gBAAgB,cAAc;AAAA,UACrC;AAAA,UACA,OAAO;AAAA,YACL,IAAI,CAAC,OAAO,KAAK;AAAA,YACjB,IAAI,CAAC,WAAW,SAAS;AAAA,UAC3B;AAAA,UACA,UAAU;AAAA,YACR,MAAM,CAAC,OAAO,KAAK;AAAA,YACnB,IAAI,CAAC,WAAW,SAAS;AAAA,UAC3B;AAAA,QACF;AAAA,QACA,SAAS;AAAA,UACP,IAAI,CAAC,OAAO,KAAK;AAAA,UACjB,IAAI,CAAC,OAAO,KAAK;AAAA,QACnB;AAAA,QACA,SAAS;AAAA,UACP,IAAI,CAAC,OAAO,KAAK;AAAA,UACjB,IAAI,CAAC,OAAO,KAAK;AAAA,QACnB;AAAA,QACA,UAAU;AAAA,UACR,IAAI,CAAC,OAAO,KAAK;AAAA,UACjB,IAAI,CAAC,OAAO,KAAK;AAAA,QACnB;AAAA,QACA,UAAU;AAAA,UACR,MAAM;AAAA,UACN,QAAQ;AAAA,YACN,IAAI,CAAC,OAAO,KAAK;AAAA,UACnB;AAAA,UACA,OAAO;AAAA,YACL,KAAK;AAAA,cACH,MAAM;AAAA,cACN,IAAI,CAAC,MAAM,KAAK;AAAA,cAChB,IAAI,CAAC,YAAY,UAAU;AAAA,cAC3B,KAAK,CAAC,YAAY,UAAU;AAAA,cAC5B,MAAM,CAAC,YAAY,UAAU;AAAA,YAC/B;AAAA,UACF;AAAA,UACA,QAAQ,CAAC,OAAO,KAAK;AAAA,UACrB,MAAM;AAAA,YACJ,IAAI,CAAC,MAAM,KAAK;AAAA,YAChB,IAAI,CAAC,OAAO,KAAK;AAAA,UACnB;AAAA,UACA,IAAI,CAAC,OAAO,KAAK;AAAA,UACjB,MAAM,CAAC,OAAO,KAAK;AAAA,UACnB,KAAK;AAAA,YACH,IAAI,CAAC,SAAS,OAAO;AAAA,YACrB,IAAI,CAAC,OAAO,KAAK;AAAA,YACjB,QAAQ,CAAC,OAAO,KAAK;AAAA,UACvB;AAAA,UACA,MAAM;AAAA,YACJ,IAAI,CAAC,OAAO,KAAK;AAAA,UACnB;AAAA,UACA,OAAO;AAAA,YACL,IAAI,CAAC,OAAO,KAAK;AAAA,UACnB;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAU;AAAA,QACR,KAAK;AAAA,UACH,QAAQ,CAAC,WAAW,KAAK;AAAA,QAC3B;AAAA,MACF;AAAA,MACA,SAAS;AAAA,QACP,KAAK;AAAA,UACH,QAAQ,CAAC,WAAW,KAAK;AAAA,QAC3B;AAAA,MACF;AAAA,IACF;AAAA,IACA,OAAO;AAAA,MACL,KAAK;AAAA,QACH,KAAK;AAAA,UACH,QAAQ,CAAC,YAAY,QAAQ;AAAA,UAC7B,QAAQ;AAAA,YACN,IAAI,CAAC,kBAAkB,gBAAgB;AAAA,UACzC;AAAA,UACA,OAAO;AAAA,YACL,KAAK;AAAA,cACH,IAAI,CAAC,OAAO,KAAK;AAAA,cACjB,IAAI,CAAC,OAAO,KAAK;AAAA,cACjB,KAAK,CAAC,OAAO,KAAK;AAAA,cAClB,MAAM,CAAC,OAAO,KAAK;AAAA,YACrB;AAAA,UACF;AAAA,UACA,IAAI,CAAC,SAAS,OAAO;AAAA,UACrB,QAAQ,CAAC,WAAW,SAAS;AAAA,UAC7B,MAAM;AAAA,YACJ,IAAI,CAAC,MAAM,KAAK;AAAA,YAChB,IAAI,CAAC,WAAW,SAAS;AAAA,UAC3B;AAAA,UACA,IAAI,CAAC,OAAO,KAAK;AAAA,UACjB,MAAM,CAAC,WAAW,SAAS;AAAA,UAC3B,KAAK;AAAA,YACH,IAAI,CAAC,SAAS,OAAO;AAAA,YACrB,IAAI,CAAC,OAAO,KAAK;AAAA,YACjB,QAAQ,CAAC,OAAO,KAAK;AAAA,UACvB;AAAA,UACA,MAAM;AAAA,YACJ,IAAI,CAAC,gBAAgB,cAAc;AAAA,UACrC;AAAA,UACA,OAAO;AAAA,YACL,IAAI,CAAC,OAAO,KAAK;AAAA,YACjB,IAAI,CAAC,WAAW,SAAS;AAAA,UAC3B;AAAA,UACA,UAAU;AAAA,YACR,MAAM,CAAC,OAAO,KAAK;AAAA,YACnB,IAAI,CAAC,WAAW,SAAS;AAAA,UAC3B;AAAA,QACF;AAAA,QACA,SAAS;AAAA,UACP,IAAI,CAAC,MAAM,KAAK;AAAA,UAChB,MAAM,CAAC,WAAW,SAAS;AAAA,QAC7B;AAAA,QACA,SAAS;AAAA,UACP,IAAI,CAAC,OAAO,KAAK;AAAA,UACjB,IAAI,CAAC,OAAO,KAAK;AAAA,UACjB,MAAM,CAAC,WAAW,SAAS;AAAA,QAC7B;AAAA,QACA,UAAU;AAAA,UACR,IAAI,CAAC,OAAO,KAAK;AAAA,UACjB,IAAI,CAAC,OAAO,KAAK;AAAA,UACjB,MAAM,CAAC,WAAW,SAAS;AAAA,QAC7B;AAAA,QACA,UAAU;AAAA,UACR,MAAM;AAAA,UACN,QAAQ;AAAA,YACN,IAAI,CAAC,OAAO,KAAK;AAAA,UACnB;AAAA,UACA,OAAO;AAAA,YACL,KAAK;AAAA,cACH,MAAM;AAAA,cACN,IAAI,CAAC,MAAM,KAAK;AAAA,cAChB,IAAI,CAAC,YAAY,UAAU;AAAA,cAC3B,KAAK,CAAC,YAAY,UAAU;AAAA,cAC5B,MAAM,CAAC,YAAY,UAAU;AAAA,YAC/B;AAAA,UACF;AAAA,UACA,MAAM;AAAA,YACJ,IAAI,CAAC,MAAM,KAAK;AAAA,YAChB,IAAI,CAAC,OAAO,KAAK;AAAA,UACnB;AAAA,UACA,IAAI,CAAC,OAAO,KAAK;AAAA,UACjB,MAAM,CAAC,OAAO,KAAK;AAAA,UACnB,KAAK;AAAA,YACH,IAAI,CAAC,SAAS,OAAO;AAAA,YACrB,IAAI,CAAC,OAAO,KAAK;AAAA,YACjB,QAAQ,CAAC,OAAO,KAAK;AAAA,UACvB;AAAA,UACA,MAAM;AAAA,YACJ,IAAI,CAAC,OAAO,KAAK;AAAA,UACnB;AAAA,UACA,OAAO;AAAA,YACL,IAAI,CAAC,OAAO,KAAK;AAAA,UACnB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,KAAK;AAAA,MACH,KAAK;AAAA,QACH,QAAQ,CAAC,YAAY,QAAQ;AAAA,QAC7B,IAAI,CAAC,SAAS,OAAO;AAAA,QACrB,QAAQ,CAAC,OAAO,KAAK;AAAA,QACrB,IAAI,CAAC,SAAS,KAAK;AAAA,QACnB,OAAO;AAAA,UACL,IAAI,CAAC,MAAM,KAAK;AAAA,QAClB;AAAA,QACA,aAAa,CAAC,OAAO,SAAS;AAAA,MAChC;AAAA,MACA,SAAS;AAAA,QACP,QAAQ,CAAC,OAAO,KAAK;AAAA,MACvB;AAAA,MACA,UAAU;AAAA,QACR,IAAI,CAAC,MAAM,KAAK;AAAA,QAChB,QAAQ,CAAC,OAAO,KAAK;AAAA,QACrB,IAAI,CAAC,OAAO,KAAK;AAAA,MACnB;AAAA,MACA,UAAU;AAAA,QACR,IAAI,CAAC,OAAO,KAAK;AAAA,QACjB,QAAQ,CAAC,OAAO,KAAK;AAAA,MACvB;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,KAAK;AAAA,QACH,MAAM;AAAA,QACN,IAAI,CAAC,OAAO,KAAK;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV,KAAK;AAAA,MACH,KAAK;AAAA,QACH,QAAQ,CAAC,YAAY,QAAQ;AAAA,QAC7B,QAAQ;AAAA,UACN,IAAI,CAAC,kBAAkB,gBAAgB;AAAA,QACzC;AAAA,QACA,OAAO;AAAA,UACL,KAAK;AAAA,YACH,IAAI,CAAC,OAAO,KAAK;AAAA,YACjB,IAAI,CAAC,OAAO,KAAK;AAAA,YACjB,KAAK,CAAC,OAAO,KAAK;AAAA,YAClB,MAAM,CAAC,OAAO,KAAK;AAAA,UACrB;AAAA,QACF;AAAA,QACA,IAAI,CAAC,SAAS,OAAO;AAAA,QACrB,QAAQ,CAAC,OAAO,KAAK;AAAA,QACrB,MAAM;AAAA,UACJ,IAAI,CAAC,MAAM,KAAK;AAAA,UAChB,IAAI,CAAC,OAAO,KAAK;AAAA,QACnB;AAAA,QACA,IAAI,CAAC,OAAO,KAAK;AAAA,QACjB,MAAM,CAAC,WAAW,SAAS;AAAA,QAC3B,KAAK;AAAA,UACH,IAAI,CAAC,SAAS,OAAO;AAAA,UACrB,IAAI,CAAC,OAAO,KAAK;AAAA,UACjB,QAAQ,CAAC,OAAO,KAAK;AAAA,QACvB;AAAA,QACA,MAAM;AAAA,UACJ,IAAI,CAAC,gBAAgB,cAAc;AAAA,QACrC;AAAA,QACA,OAAO;AAAA,UACL,IAAI,CAAC,OAAO,KAAK;AAAA,UACjB,IAAI,CAAC,WAAW,SAAS;AAAA,QAC3B;AAAA,QACA,UAAU;AAAA,UACR,MAAM,CAAC,OAAO,KAAK;AAAA,UACnB,IAAI,CAAC,WAAW,SAAS;AAAA,QAC3B;AAAA,MACF;AAAA,MACA,SAAS;AAAA,QACP,IAAI,CAAC,MAAM,KAAK;AAAA,MAClB;AAAA,MACA,SAAS;AAAA,QACP,IAAI,CAAC,OAAO,KAAK;AAAA,MACnB;AAAA,MACA,UAAU;AAAA,QACR,QAAQ,CAAC,UAAU,UAAU;AAAA,QAC7B,QAAQ;AAAA,UACN,IAAI,CAAC,cAAc,YAAY;AAAA,QACjC;AAAA,QACA,QAAQ;AAAA,UACN,KAAK;AAAA,YACH,QAAQ,CAAC,YAAY,QAAQ;AAAA,YAC7B,IAAI,CAAC,SAAS,OAAO;AAAA,YACrB,IAAI,CAAC,SAAS,OAAO;AAAA,UACvB;AAAA,QACF;AAAA,QACA,OAAO;AAAA,UACL,KAAK;AAAA,YACH,IAAI,CAAC,OAAO,KAAK;AAAA,YACjB,IAAI,CAAC,OAAO,KAAK;AAAA,YACjB,KAAK,CAAC,OAAO,KAAK;AAAA,YAClB,MAAM,CAAC,OAAO,KAAK;AAAA,UACrB;AAAA,QACF;AAAA,QACA,IAAI,CAAC,OAAO,KAAK;AAAA,QACjB,QAAQ,CAAC,WAAW,SAAS;AAAA,QAC7B,MAAM;AAAA,UACJ,IAAI,CAAC,WAAW,SAAS;AAAA,UACzB,IAAI,CAAC,OAAO,KAAK;AAAA,QACnB;AAAA,QACA,IAAI,CAAC,SAAS,OAAO;AAAA,QACrB,MAAM,CAAC,WAAW,SAAS;AAAA,QAC3B,KAAK;AAAA,UACH,IAAI,CAAC,SAAS,OAAO;AAAA,UACrB,IAAI,CAAC,OAAO,KAAK;AAAA,UACjB,QAAQ,CAAC,OAAO,KAAK;AAAA,QACvB;AAAA,QACA,MAAM;AAAA,UACJ,IAAI,CAAC,YAAY,UAAU;AAAA,QAC7B;AAAA,QACA,OAAO;AAAA,UACL,IAAI,CAAC,OAAO,IAAI;AAAA,UAChB,IAAI,CAAC,WAAW,SAAS;AAAA,QAC3B;AAAA,QACA,UAAU;AAAA,UACR,MAAM,CAAC,OAAO,KAAK;AAAA,UACnB,IAAI,CAAC,WAAW,SAAS;AAAA,QAC3B;AAAA,MACF;AAAA,MACA,UAAU;AAAA,QACR,MAAM;AAAA,QACN,QAAQ;AAAA,UACN,IAAI,CAAC,OAAO,KAAK;AAAA,QACnB;AAAA,QACA,OAAO;AAAA,UACL,KAAK;AAAA,YACH,MAAM;AAAA,YACN,IAAI,CAAC,MAAM,KAAK;AAAA,YAChB,IAAI,CAAC,YAAY,UAAU;AAAA,YAC3B,KAAK,CAAC,YAAY,UAAU;AAAA,YAC5B,MAAM,CAAC,YAAY,UAAU;AAAA,UAC/B;AAAA,QACF;AAAA,QACA,QAAQ,CAAC,OAAO,KAAK;AAAA,QACrB,MAAM;AAAA,UACJ,IAAI,CAAC,MAAM,KAAK;AAAA,UAChB,IAAI,CAAC,OAAO,KAAK;AAAA,QACnB;AAAA,QACA,IAAI,CAAC,OAAO,KAAK;AAAA,QACjB,MAAM,CAAC,OAAO,KAAK;AAAA,QACnB,KAAK;AAAA,UACH,IAAI,CAAC,SAAS,OAAO;AAAA,UACrB,IAAI,CAAC,OAAO,KAAK;AAAA,UACjB,QAAQ,CAAC,OAAO,KAAK;AAAA,QACvB;AAAA,QACA,MAAM;AAAA,UACJ,IAAI,CAAC,OAAO,KAAK;AAAA,QACnB;AAAA,QACA,OAAO;AAAA,UACL,IAAI,CAAC,OAAO,KAAK;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,UAAU;AAAA,QACR,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,UAAU;AAAA,MACR,UAAU;AAAA,QACR,IAAI,CAAC,UAAU,SAAS;AAAA,MAC1B;AAAA,IACF;AAAA,EACF;AAAA,EACA,QAAQ;AAAA,IACN,QAAQ,CAAC,cAAc,YAAY;AAAA,IACnC,UAAU,CAAC,aAAa,WAAW;AAAA,IACnC,WAAW,CAAC,cAAc,YAAY;AAAA,IACtC,WAAW,CAAC,cAAc,YAAY;AAAA,IACtC,SAAS,CAAC,cAAc,YAAY;AAAA,IACpC,SAAS,CAAC,cAAc,YAAY;AAAA,IACpC,OAAO,CAAC,cAAc,YAAY;AAAA,IAClC,MAAM,CAAC,cAAc,YAAY;AAAA,IACjC,OAAO,CAAC,cAAc,YAAY;AAAA,IAClC,WAAW,CAAC,YAAY,UAAU;AAAA,IAClC,SAAS,CAAC,YAAY,UAAU;AAAA,IAChC,UAAU,CAAC,cAAc,YAAY;AAAA,IACrC,SAAS,CAAC,WAAW,SAAS;AAAA,IAC9B,QAAQ,CAAC,WAAW,SAAS;AAAA,IAC7B,UAAU,CAAC,aAAa,WAAW;AAAA,IACnC,SAAS,CAAC,YAAY,UAAU;AAAA,IAChC,IAAI,CAAC,cAAc,YAAY;AAAA,IAC/B,WAAW,CAAC,cAAc,YAAY;AAAA,IACtC,UAAU,CAAC,cAAc,YAAY;AAAA,IACrC,SAAS,CAAC,eAAe,aAAa;AAAA,IACtC,QAAQ,CAAC,cAAc,YAAY;AAAA,IACnC,UAAU,CAAC,eAAe,aAAa;AAAA,IACvC,UAAU,CAAC,YAAY,UAAU;AAAA,IACjC,aAAa,CAAC,cAAc,YAAY;AAAA,IACxC,eAAe,CAAC,cAAc,YAAY;AAAA,IAC1C,aAAa,CAAC,YAAY,UAAU;AAAA,IACpC,OAAO,CAAC,YAAY,UAAU;AAAA,IAC9B,UAAU,CAAC,WAAW,SAAS;AAAA,IAC/B,QAAQ,CAAC,cAAc,YAAY;AAAA,IACnC,QAAQ,CAAC,cAAc,YAAY;AAAA,IACnC,KAAK,CAAC,WAAW,SAAS;AAAA,IAC1B,MAAM,CAAC,cAAc,YAAY;AAAA,IACjC,KAAK,CAAC,WAAW,SAAS;AAAA,IAC1B,UAAU,CAAC,WAAW,SAAS;AAAA,EACjC;AACF;ACjkBO,SAAS,SAAS,OAAkD;AAClE,SAAA,CAAA,EAAQ,SAAS,OAAO,SAAU,YAAY,CAAC,MAAM,QAAQ,KAAK;AAC3E;ACEO,SAAS,SAAwC,SAA+B;AAC/E,QAAA,WAAW,QAAQ,OAAO,OAAO;AAEnC,SAAA,SAAS,WAAW,IACf,CAAA,IAGF,SAAS,OAAO,QAAQ,CAAA,CAAO;AACxC;AAEA,SAAS,OAAsC,KAAQ,QAAc;AACnE,aAAW,OAAO,OAAO,KAAK,MAAM,GAAG;AACrC,UAAM,YAAY,IAAI,GAAG,GACnB,YAAY,OAAO,GAAG;AAExB,aAAS,SAAS,KAAK,SAAS,SAAS,IACzC,IAAY,GAAG,IAAI,MAAM,WAAW,SAAS,IAE7C,IAAY,GAAG,IAAI;AAAA,EAEzB;AAEO,SAAA;AACT;ACKO,SAAS,mBAAmB,aAAkD;AAC7E,QAAA,SAAS,MAAM,oBAAoB,WAAW;AAE7C,SAAA;AAAA,IACL,MAAM,uBAAuB,MAAM;AAAA,IACnC,QAAQ,yBAAyB,MAAM;AAAA,IACvC,OAAO,wBAAwB,MAAM;AAAA,IACrC,YAAY,6BAA6B,MAAM;AAAA,IAC/C,QAAQ,OAAO;AAAA,EAAA;AAEnB;AAEA,SAAS,uBAAuB,cAAgC;AAC9D,QAAM,SAAqE,CAAA;AAG3E,aAAW,QAAQ;AACjB,WAAO,IAAI,IAAI,sBAAsB,cAAc,IAAI;AAGlD,SAAA;AACT;AAEA,SAAS,sBACP,aACA,MACsB;AA1DxB,MAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA;AA2DE,QAAM,OAAO,OAAM,KAAA,eAAA,OAAA,SAAA,YAAa,SAAb,OAAoB,SAAA,GAAA,GAAA,IAAM,gDAAa,SAAb,OAAA,SAAA,GAAoB,KAAK,GAEhE,MAAM,KAAK,UAAQ,MAAA,KAAA,eAAA,OAAA,SAAA,YAAa,SAAb,OAAoB,SAAA,GAAA,IAAA,MAApB,mBAA2B,SAAQ;AAErD,SAAA;AAAA,IACL,GAAG;AAAA,IACH,MAAM;AAAA,IACN,QAAQ;AAAA,MACN,MAAM,MAAM,EAAC,MAAM,OAAM,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,IAAI;AAAA,MACjE,MAAM,MAAM,EAAC,MAAM,OAAM,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,IAAI;AAAA,MACjE,QAAQ,MAAM,EAAC,MAAM,SAAQ,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,MAAM;AAAA,MACvE,SAAS,MAAM,EAAC,MAAM,UAAS,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,OAAO;AAAA,MAC1E,KAAK,MAAM,EAAC,MAAM,MAAK,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,GAAG;AAAA,MAC9D,QAAQ,MAAM,EAAC,MAAM,SAAQ,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,MAAM;AAAA,MACvE,QAAQ,MAAM,EAAC,MAAM,SAAQ,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,MAAM;AAAA,MACvE,OAAO,MAAM,EAAC,MAAM,QAAO,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,KAAK;AAAA,MACpE,MAAM,MAAM,EAAC,MAAM,OAAM,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,IAAI;AAAA,IACnE;AAAA,IACA,OAAO;AAAA,MACL,SAAS;AAAA,QACP,QAAM,MAAa,KAAA,eAAA,OAAA,SAAA,YAAA,SAAb,OAAmB,SAAA,GAAA,YAAnB,mBAA4B,SAAQ;AAAA,QAC1C,IAAG,KAAK,KAAA,UAAL,OAAa,SAAA,GAAA,GAAA;AAAA,QAChB,IAAG,KAAK,KAAA,UAAL,OAAY,SAAA,GAAA;AAAA,MACjB;AAAA,MACA,SAAS;AAAA,QACP,QAAM,MAAa,KAAA,eAAA,OAAA,SAAA,YAAA,SAAb,OAAmB,SAAA,GAAA,YAAnB,mBAA4B,SAAQ;AAAA,QAC1C,IAAG,KAAK,KAAA,UAAL,OAAa,SAAA,GAAA,GAAA;AAAA,QAChB,IAAG,KAAK,KAAA,UAAL,OAAY,SAAA,GAAA;AAAA,MACjB;AAAA,MACA,UAAU;AAAA,QACR,QAAM,MAAa,KAAA,eAAA,OAAA,SAAA,YAAA,SAAb,OAAmB,SAAA,GAAA,aAAnB,mBAA6B,SAAQ;AAAA,QAC3C,IAAG,KAAK,KAAA,UAAL,OAAa,SAAA,GAAA,GAAA;AAAA,QAChB,IAAG,KAAK,KAAA,UAAL,OAAY,SAAA,GAAA;AAAA,MACjB;AAAA,MACA,SAAS;AAAA,QACP,QAAM,MAAa,KAAA,eAAA,OAAA,SAAA,YAAA,SAAb,OAAmB,SAAA,GAAA,YAAnB,mBAA4B,SAAQ;AAAA,QAC1C,IAAG,KAAK,KAAA,UAAL,OAAa,SAAA,GAAA,GAAA;AAAA,QAChB,IAAG,KAAK,KAAA,UAAL,OAAY,SAAA,GAAA;AAAA,MACjB;AAAA,MACA,UAAU;AAAA,QACR,QAAM,MAAa,KAAA,eAAA,OAAA,SAAA,YAAA,SAAb,OAAmB,SAAA,GAAA,aAAnB,mBAA6B,SAAQ;AAAA,QAC3C,IAAG,KAAK,KAAA,UAAL,OAAa,SAAA,GAAA,GAAA;AAAA,QAChB,IAAG,KAAK,KAAA,UAAL,OAAY,SAAA,GAAA;AAAA,MACjB;AAAA,IACF;AAAA,EAAA;AAEJ;AAEA,SAAS,yBACP,aACkE;AAClE,QAAM,SAA2E,CAAA;AAEjF,aAAW,QAAQ;AACjB,WAAO,IAAI,IAAI,6BAA6B,aAAa,IAAI;AAGxD,SAAA;AACT;AAEA,SAAS,6BACP,aACA,MACwB;AACxB,QAAM,SAAiC,CAAA;AAEvC,aAAW,QAAQ;AACjB,WAAO,IAAI,IAAI,6BAA6B,aAAa,MAAM,IAAI;AAG9D,SAAA;AACT;AAEA,SAAS,6BACP,aACA,MACA,MACwB;AACxB,QAAM,SAAiC,CAAA;AAEvC,aAAW,SAAS;AAClB,WAAO,KAAK,IAAI,8BAA8B,aAAa,MAAM,MAAM,KAAK;AAGvE,SAAA;AACT;AAEA,SAAS,8BACP,aACA,MACA,MACA,OACuB;AAvJzB,MAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA;AAwJE,QAAM,OAAO;AAAA,KACX,4DAAa,WAAb,OAAA,SAAA,GAAsB,IAAtB,MAAA,OAAA,SAAA,GAA8B,SAA9B,OAAqC,SAAA,GAAA,GAAA;AAAA,KACrC,4DAAa,WAAb,OAAA,SAAA,GAAsB,IAAtB,MAAA,OAAA,SAAA,GAA8B,UAA9B,OAAsC,SAAA,GAAA,GAAA;AAAA,KACtC,4DAAa,WAAb,OAAA,SAAA,GAAsB,IAAtB,MAAA,OAAA,SAAA,GAA8B,SAA9B,OAAqC,SAAA,GAAA,KAAA;AAAA,KACrC,4DAAa,WAAb,OAAA,SAAA,GAAsB,IAAtB,MAAA,OAAA,SAAA,GAA8B,UAA9B,OAAsC,SAAA,GAAA,KAAA;AAAA,EAAA,GAGlC,MAAM,KAAK,UAAQ,sDAAa,SAAb,OAAA,SAAA,GAAoB,UAApB,OAA2B,SAAA,GAAA;AAE7C,SAAA;AAAA,IACL,GAAG;AAAA,IACH,MAAM;AAAA,IACN,QAAQ;AAAA,MACN,MAAM,MAAM,EAAC,MAAM,OAAM,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,IAAI;AAAA,MACjE,MAAM,MAAM,EAAC,MAAM,OAAM,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,IAAI;AAAA,MACjE,QAAQ,MAAM,EAAC,MAAM,SAAQ,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,MAAM;AAAA,MACvE,SAAS,MAAM,EAAC,MAAM,UAAS,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,OAAO;AAAA,MAC1E,KAAK,MAAM,EAAC,MAAM,MAAK,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,GAAG;AAAA,MAC9D,QAAQ,MAAM,EAAC,MAAM,SAAQ,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,MAAM;AAAA,MACvE,QAAQ,MAAM,EAAC,MAAM,SAAQ,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,MAAM;AAAA,MACvE,OAAO,MAAM,EAAC,MAAM,QAAO,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,KAAK;AAAA,MACpE,MAAM,MAAM,EAAC,MAAM,OAAM,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,IAAI;AAAA,IACnE;AAAA,IACA,OAAO;AAAA,MACL,SAAS;AAAA,QACP,OAAM,MAAA,KAAA,eAAA,OAAA,SAAA,YAAa,SAAb,OAAA,SAAA,GAAmB,YAAnB,OAA4B,SAAA,GAAA;AAAA,QAClC,IAAG,KAAK,KAAA,UAAL,OAAa,SAAA,GAAA,GAAA;AAAA,QAChB,IAAG,KAAK,KAAA,UAAL,OAAY,SAAA,GAAA;AAAA,MACjB;AAAA,MACA,SAAS;AAAA,QACP,OAAM,MAAA,KAAA,eAAA,OAAA,SAAA,YAAa,SAAb,OAAA,SAAA,GAAmB,YAAnB,OAA4B,SAAA,GAAA;AAAA,QAClC,IAAG,KAAK,KAAA,UAAL,OAAa,SAAA,GAAA,GAAA;AAAA,QAChB,IAAG,KAAK,KAAA,UAAL,OAAY,SAAA,GAAA;AAAA,MACjB;AAAA,MACA,UAAU;AAAA,QACR,OAAM,MAAA,KAAA,eAAA,OAAA,SAAA,YAAa,SAAb,OAAA,SAAA,GAAmB,aAAnB,OAA6B,SAAA,GAAA;AAAA,QACnC,IAAG,KAAK,KAAA,UAAL,OAAa,SAAA,GAAA,GAAA;AAAA,QAChB,IAAG,KAAK,KAAA,UAAL,OAAY,SAAA,GAAA;AAAA,MACjB;AAAA,MACA,SAAS;AAAA,QACP,OAAM,MAAA,KAAA,eAAA,OAAA,SAAA,YAAa,SAAb,OAAA,SAAA,GAAmB,YAAnB,OAA4B,SAAA,GAAA;AAAA,QAClC,IAAG,KAAK,KAAA,UAAL,OAAa,SAAA,GAAA,GAAA;AAAA,QAChB,IAAG,KAAK,KAAA,UAAL,OAAY,SAAA,GAAA;AAAA,MACjB;AAAA,MACA,UAAU;AAAA,QACR,OAAM,MAAA,KAAA,eAAA,OAAA,SAAA,YAAa,SAAb,OAAA,SAAA,GAAmB,aAAnB,OAA6B,SAAA,GAAA;AAAA,QACnC,IAAG,KAAK,KAAA,UAAL,OAAa,SAAA,GAAA,GAAA;AAAA,QAChB,IAAG,KAAK,KAAA,UAAL,OAAY,SAAA,GAAA;AAAA,MACjB;AAAA,IACF;AAAA,EAAA;AAEJ;AAEA,SAAS,wBACP,aAC8D;AAC9D,QAAM,SAAuE,CAAA;AAE7E,aAAW,QAAQ;AACjB,WAAO,IAAI,IAAI,4BAA4B,aAAa,IAAI;AAGvD,SAAA;AACT;AAEA,SAAS,4BACP,aACA,MACuB;AACvB,QAAM,SAAgC,CAAA;AAEtC,aAAW,SAAS;AAClB,WAAO,KAAK,IAAI,6BAA6B,aAAa,MAAM,KAAK;AAGhE,SAAA;AACT;AAEA,SAAS,6BACP,aACA,MACA,OAC4B;AA1O9B,MAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA;AA2OE,QAAM,OAAO;AAAA,KACX,MAAa,KAAA,eAAA,OAAA,SAAA,YAAA,UAAb,OAAqB,SAAA,GAAA,GAAA,MAArB,OAA4B,SAAA,GAAA,GAAA;AAAA,KAC5B,MAAa,KAAA,eAAA,OAAA,SAAA,YAAA,UAAb,OAAqB,SAAA,GAAA,IAAA,MAArB,OAA6B,SAAA,GAAA,GAAA;AAAA,KAC7B,MAAa,KAAA,eAAA,OAAA,SAAA,YAAA,UAAb,OAAqB,SAAA,GAAA,GAAA,MAArB,OAA4B,SAAA,GAAA,KAAA;AAAA,KAC5B,MAAa,KAAA,eAAA,OAAA,SAAA,YAAA,UAAb,OAAqB,SAAA,GAAA,IAAA,MAArB,OAA6B,SAAA,GAAA,KAAA;AAAA,EAAA,GAGzB,MAAM,KAAK,UAAQ,sDAAa,UAAb,OAAA,SAAA,GAAqB,UAArB,OAA4B,SAAA,GAAA;AAErD,SAAO,EAAC,GAAG,MAAM,MAAM,IAAG;AAC5B;AAEA,SAAS,6BACP,aACsF;AACtF,QAAM,SAAiC,CAAA;AAEvC,aAAW,QAAQ;AACjB,WAAO,IAAI,IAAI,iCAAiC,aAAa,IAAI;AAG5D,SAAA;AACT;AAEA,SAAS,iCACP,aACA,MAC+C;AAtQjD,MAAA,IAAA,IAAA,IAAA;AAuQE,QAAM,SAAwD;AAAA,IAC5D,QAAM,MAAa,KAAA,eAAA,OAAA,SAAA,YAAA,eAAb,OAA0B,SAAA,GAAA,IAAA,MAA1B,OAAiC,SAAA,GAAA,WAAQ,MAAa,KAAA,eAAA,OAAA,SAAA,YAAA,SAAb,OAAoB,SAAA,GAAA,IAAA,MAApB,OAA2B,SAAA,GAAA;AAAA,EAAA;AAG5E,aAAW,SAAS;AAClB,WAAO,KAAK,IAAI,kCAAkC,aAAa,MAAM,KAAK;AAGrE,SAAA;AACT;AAEA,SAAS,kCACP,aACA,MACA,OACA;AAtRF,MAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA;AAuRE,QAAM,OAAO;AAAA,KACX,MAAa,KAAA,eAAA,OAAA,SAAA,YAAA,eAAb,OAA0B,SAAA,GAAA,GAAA,MAA1B,OAAiC,SAAA,GAAA,GAAA;AAAA,KACjC,MAAa,KAAA,eAAA,OAAA,SAAA,YAAA,eAAb,OAA0B,SAAA,GAAA,IAAA,MAA1B,OAAkC,SAAA,GAAA,GAAA;AAAA,KAClC,MAAa,KAAA,eAAA,OAAA,SAAA,YAAA,eAAb,OAA0B,SAAA,GAAA,GAAA,MAA1B,OAAiC,SAAA,GAAA,KAAA;AAAA,KACjC,MAAa,KAAA,eAAA,OAAA,SAAA,YAAA,eAAb,OAA0B,SAAA,GAAA,IAAA,MAA1B,OAAkC,SAAA,GAAA,KAAA;AAAA,EAAA,GAG9B,MAAM,KAAK,UAAQ,sDAAa,SAAb,OAAA,SAAA,GAAoB,UAApB,OAA2B,SAAA,GAAA;AAE7C,SAAA;AAAA,IACL,GAAG;AAAA,IACH,MAAM;AAAA,IACN,QAAQ;AAAA,MACN,MAAM,MAAM,EAAC,MAAM,OAAM,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,IAAI;AAAA,MACjE,MAAM,MAAM,EAAC,MAAM,OAAM,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,IAAI;AAAA,MACjE,QAAQ,MAAM,EAAC,MAAM,SAAQ,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,MAAM;AAAA,MACvE,SAAS,MAAM,EAAC,MAAM,UAAS,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,OAAO;AAAA,MAC1E,KAAK,MAAM,EAAC,MAAM,MAAK,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,GAAG;AAAA,MAC9D,QAAQ,MAAM,EAAC,MAAM,SAAQ,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,MAAM;AAAA,MACvE,QAAQ,MAAM,EAAC,MAAM,SAAQ,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,MAAM;AAAA,MACvE,OAAO,MAAM,EAAC,MAAM,QAAO,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,KAAK;AAAA,MACpE,MAAM,MAAM,EAAC,MAAM,OAAM,IAAG,KAAK,KAAA,WAAL,OAAc,SAAA,GAAA,GAAA,IAAM,KAAK,KAAA,WAAL,mBAAa,IAAI;AAAA,IACnE;AAAA,IACA,OAAO;AAAA,MACL,SAAS;AAAA,QACP,OAAM,MAAA,KAAA,eAAA,OAAA,SAAA,YAAa,SAAb,OAAA,SAAA,GAAmB,YAAnB,OAA4B,SAAA,GAAA;AAAA,QAClC,IAAG,KAAK,KAAA,UAAL,OAAa,SAAA,GAAA,GAAA;AAAA,QAChB,IAAG,KAAK,KAAA,UAAL,OAAY,SAAA,GAAA;AAAA,MACjB;AAAA,MACA,SAAS;AAAA,QACP,OAAM,MAAA,KAAA,eAAA,OAAA,SAAA,YAAa,SAAb,OAAA,SAAA,GAAmB,YAAnB,OAA4B,SAAA,GAAA;AAAA,QAClC,IAAG,KAAK,KAAA,UAAL,OAAa,SAAA,GAAA,GAAA;AAAA,QAChB,IAAG,KAAK,KAAA,UAAL,OAAY,SAAA,GAAA;AAAA,MACjB;AAAA,MACA,UAAU;AAAA,QACR,OAAM,MAAA,KAAA,eAAA,OAAA,SAAA,YAAa,SAAb,OAAA,SAAA,GAAmB,aAAnB,OAA6B,SAAA,GAAA;AAAA,QACnC,IAAG,KAAK,KAAA,UAAL,OAAa,SAAA,GAAA,GAAA;AAAA,QAChB,IAAG,KAAK,KAAA,UAAL,OAAY,SAAA,GAAA;AAAA,MACjB;AAAA,MACA,SAAS;AAAA,QACP,OAAM,MAAA,KAAA,eAAA,OAAA,SAAA,YAAa,SAAb,OAAA,SAAA,GAAmB,YAAnB,OAA4B,SAAA,GAAA;AAAA,QAClC,IAAG,KAAK,KAAA,UAAL,OAAa,SAAA,GAAA,GAAA;AAAA,QAChB,IAAG,KAAK,KAAA,UAAL,OAAY,SAAA,GAAA;AAAA,MACjB;AAAA,MACA,UAAU;AAAA,QACR,OAAM,MAAA,KAAA,eAAA,OAAA,SAAA,YAAa,SAAb,OAAA,SAAA,GAAmB,aAAnB,OAA6B,SAAA,GAAA;AAAA,QACnC,IAAG,KAAK,KAAA,UAAL,OAAa,SAAA,GAAA,GAAA;AAAA,QAChB,IAAG,KAAK,KAAA,UAAL,OAAY,SAAA,GAAA;AAAA,MACjB;AAAA,IACF;AAAA,EAAA;AAEJ;AC5SO,SAAS,gBAAgB,QAA4C;AAC1E,QAAM,iBAA8B;AAAA,IAClC,GAAG;AAAA,IACH,OAAO,mBAAmB,UAAA,OAAA,SAAA,OAAQ,KAAK;AAAA,EAAA;AAGlC,SAAA;AAAA,IACL,OAAO,iBAAiB,EAAC,QAAQ,QAAA,GAAU,cAAc;AAAA,IACzD,MAAM,iBAAiB,EAAC,QAAQ,OAAA,GAAS,cAAc;AAAA,EAAA;AAE3D;AAEA,SAAS,iBACP,SACA,QACqB;AACf,QAAA,EAAC,OAAU,IAAA;AAEV,SAAA;AAAA,IACL,aAAa,oBAAoB,EAAC,QAAQ,MAAM,iBAAgB,MAAM;AAAA,IACtE,SAAS,oBAAoB,EAAC,QAAQ,MAAM,aAAY,MAAM;AAAA,IAC9D,SAAS,oBAAoB,EAAC,QAAQ,MAAM,aAAY,MAAM;AAAA,IAC9D,UAAU,oBAAoB,EAAC,QAAQ,MAAM,cAAa,MAAM;AAAA,IAChE,SAAS,oBAAoB,EAAC,QAAQ,MAAM,aAAY,MAAM;AAAA,IAC9D,UAAU,oBAAoB,EAAC,QAAQ,MAAM,cAAa,MAAM;AAAA,EAAA;AAEpE;AAEA,SAAS,oBACP,SACA,QACmB;AA7DrB,MAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA;AA8DE,QAAM,EAAC,QAAQ,SAAQ,SACjB,UAAS,4CAAQ,UAAR,OAAA,SAAA,GAAe,SAAf,OAAA,SAAA,GAAsB,OAE/B,UAA6B,EAAC,MADxB,UAAQ,OAAA,SAAA,OAAA,SAAQ,QACa;AAGlC,SAAA;AAAA,IACL,UAHgB,UAAQ,OAAA,SAAA,OAAA,WAAU,CAAC,YAAY,QAAQ,GAGrC,WAAW,UAAU,IAAI,CAAC;AAAA,IAC5C,OAAO,WAAW;AAAA,IAClB,QAAQ;AAAA,MACN,IAAIC,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,WAAR,mBAAgB,EAAE;AAAA,IACxC;AAAA,IACA,QAAQ,sBAAsB,EAAC,OAAA,GAAS,MAAM;AAAA,IAC9C,UAAUA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,QAAQ;AAAA,IAC1C,OAAO,qBAAqB,UAAA,OAAA,SAAA,OAAQ,OAAO,EAAC,UAAS,MAAM;AAAA,IAC3D,IAAIA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,EAAE;AAAA,IAC9B,QAAQA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,MAAM;AAAA,IACtC,QAAQ,sBAAsB,EAAC,OAAA,GAAS,MAAM;AAAA,IAC9C,MAAM;AAAA,MACJ,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,SAAR,mBAAc,EAAE;AAAA,MACpC,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,SAAR,mBAAc,EAAE;AAAA,IACtC;AAAA,IACA,IAAIA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,EAAE;AAAA,IAC9B,WAAWA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,SAAS;AAAA,IAC5C,MAAMA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,IAAI;AAAA,IAClC,OAAO,qBAAqB,EAAC,QAAQ,KAAA,GAAO,MAAM;AAAA,IAClD,KAAK;AAAA,MACH,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,QAAR,mBAAa,EAAE;AAAA,MACnC,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,QAAR,mBAAa,EAAE;AAAA,MACnC,QAAQA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,QAAR,mBAAa,MAAM;AAAA,IAC7C;AAAA,IACA,MAAM;AAAA,MACJ,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,SAAR,mBAAc,EAAE;AAAA,IACtC;AAAA,IACA,OAAO;AAAA,MACL,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,UAAR,mBAAe,EAAE;AAAA,MACrC,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,UAAR,mBAAe,EAAE;AAAA,IACvC;AAAA,IACA,YAAY,0BAA0B,EAAC,OAAA,GAAS,MAAM;AAAA,IACtD,QAAQ,sBAAsB,EAAC,QAAQ,KAAA,GAAO,MAAM;AAAA,IACpD,UAAU;AAAA,MACR,MAAMA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,aAAR,mBAAkB,IAAI;AAAA,MAC5C,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,aAAR,mBAAkB,EAAE;AAAA,IAC1C;AAAA,IACA,QAAQ,sBAAsB,EAAC,OAAA,GAAS,MAAM;AAAA,EAAA;AAElD;AAEA,SAAS,sBACP,SACA,QACkB;AAjHpB,MAAA,IAAA,IAAA,IAAA,IAAA,IAAA;AAkHE,QAAM,EAAC,QAAQ,SAAQ,SACjB,UAAS,4CAAQ,UAAR,OAAA,SAAA,GAAe,SAAf,OAAA,SAAA,GAAsB,OAE/B,UAA6B,EAAC,MADxB,UAAQ,OAAA,SAAA,OAAA,SAAQ,QACa;AAElC,SAAA;AAAA,IACL,SAASA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,WAAR,mBAAgB,OAAO;AAAA,IAChD,OAAOA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,WAAR,mBAAgB,KAAK;AAAA,IAC5C,UAAUA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,WAAR,mBAAgB,QAAQ;AAAA,IAClD,SAASA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,WAAR,mBAAgB,OAAO;AAAA,EAAA;AAEpD;AAEA,SAAS,sBACP,SACA,aACqB;AACf,QAAA,EAAC,OAAU,IAAA;AAEV,SAAA;AAAA,IACL,MAAM,uBAAuB,EAAC,OAAO,QAAQ,UAAS,WAAW;AAAA,IACjE,MAAM,uBAAuB,EAAC,OAAO,QAAQ,UAAS,WAAW;AAAA,IACjE,QAAQ,uBAAuB,EAAC,OAAO,UAAU,UAAS,WAAW;AAAA,IACrE,SAAS,uBAAuB,EAAC,OAAO,WAAW,UAAS,WAAW;AAAA,IACvE,KAAK,uBAAuB,EAAC,OAAO,OAAO,UAAS,WAAW;AAAA,IAC/D,QAAQ,uBAAuB,EAAC,OAAO,UAAU,UAAS,WAAW;AAAA,IACrE,QAAQ,uBAAuB,EAAC,OAAO,UAAU,UAAS,WAAW;AAAA,IACrE,OAAO,uBAAuB,EAAC,OAAO,SAAS,UAAS,WAAW;AAAA,IACnE,MAAM,uBAAuB,EAAC,OAAO,QAAQ,UAAS,WAAW;AAAA,EAAA;AAErE;AAEA,SAAS,uBACP,SACA,aACwB;AArJ1B,MAAA;AAsJE,QAAM,EAAC,OAAAH,QAAO,OAAU,IAAA,SAClB,UAAS,KAAa,eAAA,OAAA,SAAA,YAAA,WAAb,OAAsB,SAAA,GAAAA,MAAA,GAC/B,UAA6B,EAAC,MAAK,UAAQ,OAAA,SAAA,OAAA,SAAQ,QAAQ,OAAM;AAGhE,SAAA;AAAA,IACL,UAHgB,UAAQ,OAAA,SAAA,OAAA,WAAU,CAAC,UAAU,UAAU,GAGrC,WAAW,UAAU,IAAI,CAAC;AAAA,IAC5C,IAAIG,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,EAAE;AAAA,IAC9B,IAAIA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,EAAE;AAAA,EAAA;AAElC;AAEA,SAAS,qBACP,QACA,SACA,QACoB;AACd,QAAA,EAAC,OAAU,IAAA;AAEV,SAAA;AAAA,IACL,SAAS,sBAAsB,QAAQ,EAAC,QAAQ,MAAM,aAAY,MAAM;AAAA,IACxE,SAAS,sBAAsB,QAAQ,EAAC,QAAQ,MAAM,aAAY,MAAM;AAAA,IACxE,UAAU,sBAAsB,QAAQ,EAAC,QAAQ,MAAM,cAAa,MAAM;AAAA,IAC1E,SAAS,sBAAsB,QAAQ,EAAC,QAAQ,MAAM,aAAY,MAAM;AAAA,IACxE,UAAU,sBAAsB,QAAQ,EAAC,QAAQ,MAAM,cAAa,MAAM;AAAA,EAAA;AAE9E;AAEA,SAAS,sBACP,cACA,SACA,QAC+B;AAtLjC,MAAA,IAAA,IAAA;AAuLQ,QAAA,EAAC,QAAQ,KAAI,IAAI,SACjB,SAAS,gBAAA,OAAA,SAAA,aAAe,IAExB,GAAA,UAA6B,EAAC,MADxB,iCAAQ,WAAQ,MAAA,MAAA,KAAA,UAAA,OAAA,SAAA,OAAQ,UAAR,OAAe,SAAA,GAAA,SAAf,mBAAsB,IAAtB,MAAA,OAAA,SAAA,GAA6B,SAAQ,QACxB,OAAM;AAExC,SAAA;AAAA,IACL,IAAIA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,EAAE;AAAA,IAC9B,IAAIA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,EAAE;AAAA,IAC9B,KAAKA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,GAAG;AAAA,IAChC,MAAMA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,IAAI;AAAA,EAAA;AAEtC;AAEA,SAAS,sBACP,SACA,QACqB;AACrB,QAAM,EAAC,OAAU,IAAA,SAEX,QAAsC,CAAA;AAE5C,aAAW,QAAQ;AACjB,UAAM,IAAI,IAAI,2BAA2B,EAAC,QAAQ,KAAA,GAAO,MAAM;AAG1D,SAAA;AACT;AAEA,SAAS,2BACP,SAIA,QACyB;AACzB,QAAM,EAAC,MAAM,OAAA,IAAU,SAEjBC,SAA0C,CAAA;AAEhD,aAAW,QAAQ;AACX,IAAAA,OAAA,IAAI,IAAI,4BAA4B,EAAC,MAAM,QAAQ,QAAO,MAAM;AAGjE,SAAAA;AACT;AAEA,SAAS,4BACP,SAKA,QACyB;AACzB,QAAM,EAAC,MAAM,QAAQ,KAAQ,IAAA,SAEvB,SAA2C;AAEjD,aAAW,SAAS;AACX,WAAA,KAAK,IAAI,2BAA2B,EAAC,MAAM,MAAM,QAAQ,SAAQ,MAAM;AAGzE,SAAA;AACT;AAEA,SAAS,2BACP,SAMA,QACoB;AAhQtB,MAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA;AAiQE,QAAM,EAAC,MAAM,MAAM,QAAQ,MAAS,IAAA,SAC9B,UAAS,MAAA,MAAA,MAAA,KAAA,UAAA,OAAA,SAAA,OAAQ,UAAR,OAAA,SAAA,GAAe,WAAf,OAAA,SAAA,GAAwB,UAAxB,OAAgC,SAAA,GAAA,IAAA,MAAhC,OAAwC,SAAA,GAAA,KAAA,GACjD,OAAM,UAAA,OAAA,SAAA,OAAQ,SAAQ,QACtB,aAAY,UAAQ,OAAA,SAAA,OAAA,WAAU,CAAC,UAAU,UAAU,GACnD,UAA6B,EAAC,KAAK,OAAM;AAExC,SAAA;AAAA,IACL,QAAQ,UAAU,WAAW,UAAU,IAAI,CAAC;AAAA,IAC5C,QAAQ;AAAA,MACN,IAAID,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,WAAR,mBAAgB,EAAE;AAAA,IACxC;AAAA,IACA,QAAQ,sBAAsB,EAAC,OAAA,GAAS,MAAM;AAAA,IAC9C,OAAO,qBAAqB,UAAA,OAAA,SAAA,OAAQ,OAAO,EAAC,UAAS,MAAM;AAAA,IAC3D,IAAIA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,EAAE;AAAA,IAC9B,QAAQA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,MAAM;AAAA,IACtC,MAAM;AAAA,MACJ,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,SAAR,mBAAc,EAAE;AAAA,MACpC,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,SAAR,mBAAc,EAAE;AAAA,IACtC;AAAA,IACA,IAAIA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,EAAE;AAAA,IAC9B,MAAMA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,IAAI;AAAA,IAClC,OAAO;AAAA,MACL,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,UAAR,mBAAe,EAAE;AAAA,MACrC,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,UAAR,mBAAe,EAAE;AAAA,IACvC;AAAA,IACA,KAAK;AAAA,MACH,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,QAAR,mBAAa,EAAE;AAAA,MACnC,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,QAAR,mBAAa,EAAE;AAAA,MACnC,QAAQA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,QAAR,mBAAa,MAAM;AAAA,IAC7C;AAAA,IACA,MAAM;AAAA,MACJ,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,SAAR,mBAAc,EAAE;AAAA,IACtC;AAAA,IACA,UAAU;AAAA,MACR,MAAMA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,aAAR,mBAAkB,IAAI;AAAA,MAC5C,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,aAAR,mBAAkB,EAAE;AAAA,IAC1C;AAAA,EAAA;AAEJ;AAEA,SAAS,qBACP,SACA,QACoB;AACd,QAAA,EAAC,QAAQ,KAAQ,IAAA;AAEhB,SAAA;AAAA,IACL,SAAS,2BAA2B,EAAC,MAAM,WAAW,QAAQ,QAAO,MAAM;AAAA,IAC3E,SAAS,2BAA2B,EAAC,MAAM,WAAW,QAAQ,QAAO,MAAM;AAAA,EAAA;AAE/E;AAEA,SAAS,2BACP,SAKA,QACwB;AACxB,QAAM,EAAC,MAAM,QAAQ,KAAA,IAAQ;AAEtB,SAAA;AAAA,IACL,SAAS,0BAA0B,EAAC,MAAM,QAAQ,OAAO,WAAW,KAAI,GAAG,MAAM;AAAA,IACjF,SAAS,0BAA0B,EAAC,MAAM,QAAQ,OAAO,WAAW,KAAI,GAAG,MAAM;AAAA,IACjF,UAAU,0BAA0B,EAAC,MAAM,QAAQ,OAAO,YAAY,KAAI,GAAG,MAAM;AAAA,IACnF,UAAU,0BAA0B,EAAC,MAAM,QAAQ,OAAO,YAAY,KAAI,GAAG,MAAM;AAAA,EAAA;AAEvF;AAEA,SAAS,0BACP,SAMA,QACyB;AA/U3B,MAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA;AAgVE,QAAM,EAAC,MAAM,MAAM,QAAQ,MAAA,IAAS,SAC9B,UAAS,MAAQ,MAAA,KAAA,UAAA,OAAA,SAAA,OAAA,UAAR,mBAAe,UAAf,OAAA,SAAA,GAAuB,UAAvB,OAA+B,SAAA,GAAA,KAAA,GACxC,OAAM,UAAQ,OAAA,SAAA,OAAA,WAAQ,MAAQ,MAAA,KAAA,UAAA,OAAA,SAAA,OAAA,UAAR,mBAAe,SAAf,OAAA,SAAA,GAAsB,IAAtB,MAAA,OAAA,SAAA,GAA6B,SAAQ,QAC3D,aAAY,UAAQ,OAAA,SAAA,OAAA,WAAU,CAAC,UAAU,UAAU,GACnD,UAA6B,EAAC,KAAK;AAElC,SAAA;AAAA,IACL,QAAQ,UAAU,WAAW,UAAU,IAAI,CAAC;AAAA,IAC5C,IAAIA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,EAAE;AAAA,IAC9B,QAAQA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,MAAM;AAAA,IACtC,IAAIA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,EAAE;AAAA,IAC9B,OAAO;AAAA,MACL,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,UAAR,mBAAe,EAAE;AAAA,IACvC;AAAA,IACA,aAAaA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,WAAW;AAAA,EAAA;AAEpD;AAEA,SAAS,0BACP,SAGA,QACyB;AACzB,QAAM,EAAC,OAAU,IAAA,SAEXC,SAA0C,CAAA;AAEhD,aAAW,QAAQ;AACjB,IAAAA,OAAM,IAAI,IAAI,gCAAgC,EAAC,QAAQ,KAAA,GAAO,MAAM;AAG/D,SAAAA;AACT;AAEA,SAAS,gCACP,SAIA,QACyB;AACzB,QAAM,EAAC,QAAQ,KAAA,IAAQ,SAEjB,SAA2C,CAAA;AAEjD,aAAW,SAAS;AACX,WAAA,KAAK,IAAI,+BAA+B,EAAC,MAAM,QAAQ,SAAQ,MAAM;AAGvE,SAAA;AACT;AAEA,SAAS,+BACP,SAKA,QACoB;AA5YtB,MAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA;AA6YE,QAAM,EAAC,QAAQ,OAAO,KAAQ,IAAA,SACxB,UAAS,MAAA,MAAA,KAAA,UAAA,OAAA,SAAA,OAAQ,UAAR,OAAA,SAAA,GAAe,eAAf,OAAA,SAAA,GAA4B,IAA5B,MAAA,OAAA,SAAA,GAAoC,KAC7C,GAAA,OAAM,UAAQ,OAAA,SAAA,OAAA,SAAQ,QACtB,aAAY,UAAQ,OAAA,SAAA,OAAA,WAAU,CAAC,UAAU,UAAU,GACnD,UAA6B,EAAC,KAAK,OAAM;AAExC,SAAA;AAAA,IACL,QAAQ,UAAU,WAAW,UAAU,IAAI,CAAC;AAAA,IAC5C,QAAQ;AAAA,MACN,IAAID,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,WAAR,mBAAgB,EAAE;AAAA,IACxC;AAAA,IACA,QAAQ,sBAAsB,EAAC,OAAA,GAAS,MAAM;AAAA,IAC9C,OAAO,qBAAqB,UAAA,OAAA,SAAA,OAAQ,OAAO,EAAC,UAAS,MAAM;AAAA,IAC3D,IAAIA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,EAAE;AAAA,IAC9B,QAAQA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,MAAM;AAAA,IACtC,MAAM;AAAA,MACJ,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,SAAR,mBAAc,EAAE;AAAA,MACpC,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,SAAR,mBAAc,EAAE;AAAA,IACtC;AAAA,IACA,IAAIA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,EAAE;AAAA,IAC9B,MAAMA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,IAAI;AAAA,IAClC,OAAO;AAAA,MACL,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,UAAR,mBAAe,EAAE;AAAA,MACrC,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,UAAR,mBAAe,EAAE;AAAA,IACvC;AAAA,IACA,KAAK;AAAA,MACH,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,QAAR,mBAAa,EAAE;AAAA,MACnC,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,QAAR,mBAAa,EAAE;AAAA,MACnC,QAAQA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,QAAR,mBAAa,MAAM;AAAA,IAC7C;AAAA,IACA,MAAM;AAAA,MACJ,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,SAAR,mBAAc,EAAE;AAAA,IACtC;AAAA,IACA,UAAU;AAAA,MACR,MAAMA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,aAAR,mBAAkB,IAAI;AAAA,MAC5C,IAAIA,uBAAO,UAAS,KAAQ,UAAA,OAAA,SAAA,OAAA,aAAR,mBAAkB,EAAE;AAAA,IAC1C;AAAA,EAAA;AAEJ;AAEA,SAAS,sBACP,SACA,QACkB;AAxbpB,MAAA;AAybE,QAAM,EAAC,WAAU,SACX,UAAS,KAAA,UAAA,OAAA,SAAA,OAAQ,UAAR,OAAA,SAAA,GAAe,QACxB,UAA6B,EAAC,KAAK,QAAQ;AAE1C,SAAA;AAAA,IACL,QAAQA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,MAAM;AAAA,IACtC,UAAUA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,QAAQ;AAAA,IAC1C,WAAWA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,SAAS;AAAA,IAC5C,WAAWA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,SAAS;AAAA,IAC5C,SAASA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,OAAO;AAAA,IACxC,SAASA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,OAAO;AAAA,IACxC,OAAOA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,KAAK;AAAA,IACpC,MAAMA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,IAAI;AAAA,IAClC,OAAOA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,KAAK;AAAA,IACpC,WAAWA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,SAAS;AAAA,IAC5C,SAASA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,OAAO;AAAA,IACxC,UAAUA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,QAAQ;AAAA,IAC1C,SAASA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,OAAO;AAAA,IACxC,SAASA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,OAAO;AAAA,IACxC,QAAQA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,MAAM;AAAA,IACtC,UAAUA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,QAAQ;AAAA,IAC1C,SAASA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,OAAO;AAAA,IACxC,IAAIA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,EAAE;AAAA,IAC9B,WAAWA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,SAAS;AAAA,IAC5C,UAAUA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,QAAQ;AAAA,IAC1C,SAASA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,OAAO;AAAA,IACxC,QAAQA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,MAAM;AAAA,IACtC,UAAUA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,QAAQ;AAAA,IAC1C,QAAQA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,MAAM;AAAA,IACtC,UAAUA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,QAAQ;AAAA,IAC1C,aAAaA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,WAAW;AAAA,IAChD,eAAeA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,aAAa;AAAA,IACpD,aAAaA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,WAAW;AAAA,IAChD,OAAOA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,KAAK;AAAA,IACpC,UAAUA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,QAAQ;AAAA,IAC1C,QAAQA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,MAAM;AAAA,IACtC,QAAQA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,MAAM;AAAA,IACtC,KAAKA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,GAAG;AAAA,IAChC,MAAMA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,IAAI;AAAA,IAClC,KAAKA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,GAAG;AAAA,IAChC,UAAUA,uBAAO,SAAS,UAAA,OAAA,SAAA,OAAQ,QAAQ;AAAA,EAAA;AAE9C;AC/dO,MAAM,sBAAyC;ACFtD,SAAS,WAAW,GAAW,GAAW,QAAgB;AAGlD,QAAA,SAFO,IAAI,KAEI;AAErB,SAAO,IAAI;AACb;AAMgB,SAAA,IAAI,GAAe,GAAe,QAAqB;AAC9D,SAAA;AAAA,IACL,GAAG,WAAW,EAAE,GAAG,EAAE,GAAG,MAAM;AAAA,IAC9B,GAAG,WAAW,EAAE,GAAG,EAAE,GAAG,MAAM;AAAA,IAC9B,GAAG,WAAW,EAAE,GAAG,EAAE,GAAG,MAAM;AAAA,EAAA;AAElC;AClBA,SAAS,gBAAgB,GAAW,GAAW;AAC7C,SAAO,IAAI;AACb;AAOgB,SAAA,SAAS,GAAe,GAAoB;AACnD,SAAA;AAAA,IACL,GAAG,gBAAgB,EAAE,IAAI,KAAK,EAAE,IAAI,GAAG,IAAI;AAAA,IAC3C,GAAG,gBAAgB,EAAE,IAAI,KAAK,EAAE,IAAI,GAAG,IAAI;AAAA,IAC3C,GAAG,gBAAgB,EAAE,IAAI,KAAK,EAAE,IAAI,GAAG,IAAI;AAAA,EAAA;AAE/C;ACfA,SAAS,cAAc,GAAW,GAAW;AACpC,SAAA,IAAI,IAAI,IAAI;AACrB;AAOgB,SAAA,OAAO,GAAe,GAAoB;AACjD,SAAA;AAAA,IACL,GAAG,cAAc,EAAE,IAAI,KAAK,EAAE,IAAI,GAAG,IAAI;AAAA,IACzC,GAAG,cAAc,EAAE,IAAI,KAAK,EAAE,IAAI,GAAG,IAAI;AAAA,IACzC,GAAG,cAAc,EAAE,IAAI,KAAK,EAAE,IAAI,GAAG,IAAI;AAAA,EAAA;AAE7C;ACjBgB,SAAA,KAAK,GAAW,GAAW,GAAmB;AACrD,SAAA,KAAK,IAAI,KAAK,IAAI;AAC3B;AAEgB,SAAA,QAAQ,GAAW,GAAW,GAAmB;AAC/D,SAAO,OAAO,IAAI,MAAM,IAAI,EAAE;AAChC;AAEO,SAAS,MAAM,GAAW,MAAM,GAAG,MAAM,GAAW;AACzD,SAAO,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,CAAC;AACvC;AAEO,SAAS,MAAM,IAAY,IAAY,IAAY,IAAY,GAAmB;AACvF,SAAO,KAAK,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,CAAC;AACxC;AAEO,SAAS,MAAM,OAAuB;AACpC,SAAA,KAAK,MAAM,KAAK;AACzB;ACZO,SAAS,SAAS,KAAkB;AACrC,MAAA,IAAI,WAAW,GAAG;AACpB,UAAM,OAAO,IAAI,MAAM,GAAG,CAAC,GACrB,OAAO,IAAI,MAAM,GAAG,CAAC,GACrB,OAAO,IAAI,MAAM,GAAG,CAAC;AAEpB,WAAA;AAAA,MACL,GAAG,SAAS,OAAO,MAAM,EAAE;AAAA,MAC3B,GAAG,SAAS,OAAO,MAAM,EAAE;AAAA,MAC3B,GAAG,SAAS,OAAO,MAAM,EAAE;AAAA,IAAA;AAAA,EAE/B;AAEO,SAAA;AAAA,IACL,GAAG,SAAS,IAAI,MAAM,GAAG,CAAC,GAAG,EAAE;AAAA,IAC/B,GAAG,SAAS,IAAI,MAAM,GAAG,CAAC,GAAG,EAAE;AAAA,IAC/B,GAAG,SAAS,IAAI,MAAM,GAAG,CAAC,GAAG,EAAE;AAAA,EAAA;AAEnC;AAKO,SAAS,WAAWE,OAAoB;AAC7C,QAAM,SAASA,MAAK,QAAQ,cAAc,EAAE,EAAE,MAAM,GAAG;AAEhD,SAAA;AAAA,IACL,GAAG,SAAS,OAAO,CAAC,CAAC;AAAA,IACrB,GAAG,SAAS,OAAO,CAAC,CAAC;AAAA,IACrB,GAAG,SAAS,OAAO,CAAC,CAAC;AAAA,IACrB,GAAG,WAAW,OAAO,CAAC,CAAC;AAAA,EAAA;AAE3B;AAKO,SAAS,SAASL,QAA2B;AAClD,QAAM,IAAI,MAAM,MAAM,KAAK,MAAMA,OAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAC5C,IAAI,MAAM,MAAM,KAAK,MAAMA,OAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAC5C,IAAI,MAAM,MAAM,KAAK,MAAMA,OAAM,CAAC,GAAG,GAAG,GAAG,CAAC;AAE9C,SAAA,OAAOA,SACF,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAIA,OAAM,CAAC,MAGhC,QAAQ,KAAK,OAAO,KAAK,OAAO,KAAK,KAAK,GAAG,SAAS,EAAE,EAAE,MAAM,CAAC;AAC1E;AAMO,SAAS,SAAS,EAAC,GAAG,GAAG,KAAc;AAEvC,OAAA,KACL,KAAK,KACL,KAAK;AAGL,QAAM,OAAO,KAAK,IAAI,GAAG,GAAG,CAAC,GACvB,OAAO,KAAK,IAAI,GAAG,GAAG,CAAC,GACvB,QAAQ,OAAO;AAErB,MAAI,IAAI,GACJ,IAAI,GACJ,IAAI;AAIR,SAAI,SAAS,IAAG,IAAI,IAEX,QAAQ,IAAG,KAAM,IAAI,KAAK,QAAS,IAEnC,QAAQ,IAAG,KAAK,IAAI,KAAK,QAAQ,IAErC,KAAK,IAAI,KAAK,QAAQ,GAE3B,IAAI,KAAK,MAAM,IAAI,EAAE,GAGjB,IAAI,MAAG,KAAK,MAGhB,KAAK,OAAO,QAAQ,GAGpB,IAAI,SAAS,IAAI,IAAI,SAAS,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAGpD,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,GACxB,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,GAEjB,EAAC,GAAG,GAAG;AAChB;AAKO,SAAS,SAAS,KAAe;AAEtC,QAAM,IAAI,IAAI,IAAI,KACZ,IAAI,IAAI,IAAI,KAEZ,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAChC,IAAI,KAAK,IAAI,KAAK,IAAM,IAAI,IAAI,KAAM,IAAK,CAAC,IAC5C,IAAI,IAAI,IAAI;AAElB,MAAI,IAAI,GACJ,IAAI,GACJ,IAAI;AAER,SAAI,KAAK,IAAI,KAAK,IAAI,IAAI,MACxB,IAAI,GACJ,IAAI,GACJ,IAAI,KACK,MAAM,IAAI,KAAK,IAAI,IAAI,OAChC,IAAI,GACJ,IAAI,GACJ,IAAI,KACK,OAAO,IAAI,KAAK,IAAI,IAAI,OACjC,IAAI,GACJ,IAAI,GACJ,IAAI,KACK,OAAO,IAAI,KAAK,IAAI,IAAI,OACjC,IAAI,GACJ,IAAI,GACJ,IAAI,KACK,OAAO,IAAI,KAAK,IAAI,IAAI,OACjC,IAAI,GACJ,IAAI,GACJ,IAAI,KACK,OAAO,IAAI,KAAK,IAAI,IAAI,QACjC,IAAI,GACJ,IAAI,GACJ,IAAI,IAGC;AAAA,IACL,GAAG,KAAK,OAAO,IAAI,KAAK,GAAG;AAAA,IAC3B,GAAG,KAAK,OAAO,IAAI,KAAK,GAAG;AAAA,IAC3B,GAAG,KAAK,OAAO,IAAI,KAAK,GAAG;AAAA,EAAA;AAE/B;AClJA,MAAM,YAAY,0BAEZ,SAAS;AAEf,SAAS,WAAW,KAAa;AAC/B,aAAW,KAAK;AACV,QAAA,UAAU,QAAQ,CAAC,MAAM;AACpB,aAAA;AAIJ,SAAA;AACT;AAEA,SAAS,MAAM,KAAa;AAI1B,SAHI,IAAI,CAAC,MAAM,OAGX,EAAE,IAAI,WAAW,KAAK,IAAI,WAAW,KAAW,KAE7C,WAAW,IAAI,MAAM,CAAC,CAAC;AAChC;AAEA,SAAS,SAAS,KAAkB;AAC5B,QAAA,MAAM,OAAO,KAAK,GAAG;AAE3B,MAAI,CAAC;AACH,UAAM,IAAI,MAAM,yCAAyC,GAAG,GAAG;AAGjE,SAAO,EAAC,GAAG,SAAS,IAAI,CAAC,CAAC,GAAG,GAAG,WAAW,IAAI,CAAC,CAAC,GAAG,GAAG,WAAW,IAAI,CAAC,CAAC;AAC1E;AAKO,SAAS,WAAWA,QAA4B;AACrD,MAAI,CAACA;AAAO,WAAO,EAAC,GAAG,GAAG,GAAG,GAAG,GAAG;AAEnC,MAAI,OAAOA,UAAU;AACb,UAAA,IAAI,MAAM,+BAA+B;AAGjD,MAAI,MAAMA,MAAK;AACb,WAAO,SAASA,MAAK;AAGnB,MAAAA,OAAM,WAAW,MAAM;AAClB,WAAA,SAAS,SAASA,MAAK,CAAC;AAG7B,MAAAA,OAAM,WAAW,OAAO;AAC1B,WAAO,WAAWA,MAAK;AAGzB,QAAM,IAAI,MAAM,yCAAyCA,MAAK,GAAG;AACnE;ACvDgB,SAAA,iBAAiB,IAAY,IAAoB;AACzD,QAAA,OAAO,WAAW,EAAE,GACpB,OAAO,WAAW,EAAE,GAGpB,KAAK,SAAS,IAAI,GAClB,KAAK,SAAS,IAAI,GAGlB,KAAK,eAAe,EAAE,GACtB,KAAK,eAAe,EAAE;AAGpB,UAAA,KAAK,IAAI,IAAI,EAAE,IAAI,SAAS,KAAK,IAAI,IAAI,EAAE,IAAI;AACzD;AAEA,SAAS,SAAS,EAAC,GAAG,GAAG,KAA0C;AACjE,SAAO,CAAC,UAAU,IAAI,GAAG,GAAG,UAAU,IAAI,GAAG,GAAG,UAAU,IAAI,GAAG,CAAC;AACpE;AAEA,SAAS,UAAU,GAAW;AAC5B,SAAO,KAAK,UAAU,IAAI,UAAU,IAAI,SAAS,UAAU;AAC7D;AAEA,SAAS,eAAe,CAAC,GAAG,GAAG,CAAC,GAA6B;AAC3D,SAAO,SAAS,IAAI,SAAS,IAAI,SAAS;AAC5C;ACzBgB,SAAA,KAAKA,QAAgB,GAAmB;AAChD,QAAA,MAAM,WAAWA,MAAK;AAErB,SAAA,QAAQ,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;AAC7C;ACNA,MAAM,YAA8B,CAAC,GAAG,GAAG;AAE3B,SAAA,cACd,OACA,SAMQ;AACR,QAAM,EAAC,UAAa,IAAA,SAEdA,SAAQ,WAAW,KAAK,GACxBM,SAAQ,WAAW,QAAQ,KAAK,GAChCC,SAAQ,WAAW,QAAQ,KAAK,GAEhC,KAAK,QAAQ,KAAK,WAAW,QAAQ,EAAE,IAAI,cAAc,aAAaA,SAAQD,QAE9E,eAAgF;AAAA,IACpF,GAAG,CAACA,OAAM,GAAGC,OAAM,CAAC;AAAA,IACpB,GAAG,CAACD,OAAM,GAAGC,OAAM,CAAC;AAAA,IACpB,GAAG,CAACD,OAAM,GAAGC,OAAM,CAAC;AAAA,KAGhB,mBAAwB;AAAA,IAC5B,GAAG,MAAM,MAAM,GAAG,aAAa,GAAG,GAAG,WAAW,GAAG,CAAC,GAAG,GAAG,SAAS;AAAA,IACnE,GAAG,MAAM,MAAM,GAAG,aAAa,GAAG,GAAG,WAAW,GAAG,CAAC,GAAG,GAAG,SAAS;AAAA,IACnE,GAAG,MAAM,MAAM,GAAG,aAAa,GAAG,GAAG,WAAW,GAAG,CAAC,GAAG,GAAG,SAAS;AAAA,KAG/D,iBAAsB;AAAA,IAC1B,GAAG,MAAM,MAAM,GAAG,aAAa,GAAG,GAAG,WAAWP,OAAM,CAAC,GAAG,GAAG,SAAS;AAAA,IACtE,GAAG,MAAM,MAAM,GAAG,aAAa,GAAG,GAAG,WAAWA,OAAM,CAAC,GAAG,GAAG,SAAS;AAAA,IACtE,GAAG,MAAM,MAAM,GAAG,aAAa,GAAG,GAAG,WAAWA,OAAM,CAAC,GAAG,GAAG,SAAS;AAAA,EAGlE,GAAA,cACJ,cAAc,aACV,SAAS,kBAAkB,cAAc,IACzC,OAAO,kBAAkB,cAAc,GAEvC,IAAS;AAAA,IACb,GAAG,MAAM,MAAM,GAAG,WAAW,GAAG,aAAa,GAAG,YAAY,CAAC,GAAG,GAAG,aAAa,CAAC;AAAA,IACjF,GAAG,MAAM,MAAM,GAAG,WAAW,GAAG,aAAa,GAAG,YAAY,CAAC,GAAG,GAAG,aAAa,CAAC;AAAA,IACjF,GAAG,MAAM,MAAM,GAAG,WAAW,GAAG,aAAa,GAAG,YAAY,CAAC,GAAG,GAAG,aAAa,CAAC;AAAA,EAAA;AAGnF,SAAO,SAAS,CAAC;AACnB;ACxCgB,SAAA,iBAAiB,KAAa,SAA0C;AACtF,QAAM,EAAC,IAAI,WAAW,aAAA,IAAgB;AAEtC,MAAI,OAAO;AACH,UAAA,IAAI,MAAM,oCAAoC;AAGhD,QAAA,OAAO,gBAAgB,GAAG;AAE5B,MAAA,CAAC,QAAQ,KAAK,SAAS;AACzB,UAAM,IAAI,MAAM,8BAA8B,GAAG,EAAE;AAGrD,MAAI,MAAM;AAcV,MAZI,KAAK,QAAQ,YACf,MAAM,eAAe,aAAa,KAAK,IAGrC,KAAK,QAAQ,YACf,MAAM,eAAe,aAAa,KAAK,IAGrC,KAAK,OAAO,KAAK,SACnB,MAAM,eAAe,aAAa,KAAK,GAAG,EAAE,KAAK,IAAI,CAAC,IAGpD,CAAC;AACH,UAAM,IAAI,MAAM,8BAA8B,GAAG,EAAE;AAG/C,QAAA,eAAe,KAEf,aAAa;AAAA,IACjB;AAAA,IACA;AAAA,IACA,OAAO,eAAe,aAAa,KAAK;AAAA;AAAA,IAExC,OAAO,eAAe,aAAa,KAAK;AAAA,EAAA;AAGtC,MAAA;AACF,QAAA,MAAM,cAAc,KAAK,UAAU,GAE/B,MAAM,KAAK,QAAQ,QAAW;AAChC,YAAM,OAAO,SAAS,EAAE,GAClB,KAAK,SAAS,GAAG;AAEvB,YAAM,SAAS,IAAI,MAAM,IAAI,KAAK,GAAG,CAAC;AAAA,IACxC;AAAA,WACO,KAAK;AAEZ,UAAA,QAAQ,KAAK,mBAAmB,KAAK,UAAU,GACzC;AAAA,EACR;AAEA,SAAI,QAAQ,UAEV,QAAQ,KAAK,8BAA8B,GAAG,EAAE,GAChD,MAAM,eAGJ,KAAK,YAAY,WACnB,MAAM,KAAK,KAAK,KAAK,OAAO,IAGvB;AACT;AAEA,SAAS,eAAeA,QAAmC;AACzD,SAAO,OAAOA,UAAU,WAAWA,SAAQA,OAAM;AACnD;ACzDgB,SAAA,wBACd,OACA,QACsB;AA7BxB,MAAA;AA8BQ,QAAA,gBAAe,KAAQ,UAAA,OAAA,SAAA,OAAA,YAAR,OAAmB,KAAA;AAEjC,SAAA;AAAA,IACL,OAAO,uBAAuB,cAAc,MAAM,KAAK;AAAA,IACvD,MAAM,uBAAuB,cAAc,MAAM,IAAI;AAAA,EAAA;AAEzD;AAEA,SAAS,uBACP,cACA,OACqB;AACf,QAAA,cAAc,OAAO,QAAQ,KAAK,GAElC,CAAG,EAAA,eAAe,IAAI,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,MAAM,aAAa,GACnE,GAAG,WAAW,IAAI,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,MAAM,SAAS,GAK3D,0BAA0B,iBAAiB,iBAAiB,EAAC,cAAa,GAC1E,sBAAsB,iBAAiB,aAAa,EAAC,aAAa,CAAA,GAGlE,KAAK,oBAAoB;AAE/B,MAAI,OAAO;AACH,UAAA,IAAI,MAAM,oCAAoC;AAGtD,SAAO,OAAO,YAAY;AAAA,IACxB,CAAC,eAAe,uBAAuB;AAAA,IACvC,CAAC,WAAW,mBAAmB;AAAA,IAC/B,GAAG,YACA,OAAO,CAAC,CAAC,CAAC,MAAM,MAAM,aAAa,MAAM,aAAa,EACtD,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,iBAAiB,GAAG,EAAC,IAAI,aAAa,CAAA,CAAC,CAAC;AAAA,EAAA,CAChE;AACH;AAEA,SAAS,iBACP,OACA,SAImB;AACnB,QAAM,EAAC,cAAc,OAAM,SACrB,YAAY,MAAM,UAAU,YAC5B,SAAS,iBAAiB,MAAM,IAAI,EAAC,cAAc,IAAI,UAAU,CAAA,GACjE,eAAwC,EAAC,cAAc,IAAI,QAAQ,UAAS,GAE5E,SAAS,uBAAuB,MAAM,QAAQ;AAAA,IAClD;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAA,GAEK,aAAa,2BAA2B,MAAM,YAAY;AAAA,IAC9D;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAA,GAEK,SAA2B;AAAA,IAC/B,SAAS,iBAAiB,MAAM,OAAO,SAAS,YAAY;AAAA,IAC5D,OAAO,iBAAiB,MAAM,OAAO,OAAO;AAAA,MAC1C,GAAG;AAAA,MACH,IAAI;AAAA,MACJ,cAAc,EAAC,GAAG,cAAc,OAAO,UAAS;AAAA,IAAA,CACjD;AAAA,IACD,UAAU,iBAAiB,MAAM,OAAO,UAAU;AAAA,MAChD,GAAG;AAAA,MACH,IAAI;AAAA,MACJ,cAAc,EAAC,GAAG,cAAc,OAAO,UAAS;AAAA,IAAA,CACjD;AAAA,IACD,SAAS,iBAAiB,MAAM,OAAO,SAAS;AAAA,MAC9C,GAAG;AAAA,MACH,IAAI;AAAA,MACJ,cAAc,EAAC,GAAG,cAAc,OAAO,UAAS;AAAA,IAAA,CACjD;AAAA,EAAA;AAGI,SAAA;AAAA,IACL,QAAQ;AAAA,IACR,OAAO,MAAM;AAAA,IACb,QAAQ;AAAA,MACN,IAAI,iBAAiB,MAAM,OAAO,IAAI,YAAY;AAAA,IACpD;AAAA,IACA,QAAQ,uBAAuB,MAAM,QAAQ,EAAC,QAAQ,cAAc,WAAU;AAAA,IAC9E,UAAU,iBAAiB,MAAM,UAAU,YAAY;AAAA,IACvD,OAAO,sBAAsB,MAAM,OAAO,EAAC,QAAQ,cAAc,WAAU;AAAA,IAC3E,IAAI;AAAA,IACJ,QAAQ,iBAAiB,MAAM,QAAQ,YAAY;AAAA,IACnD;AAAA,IACA,MAAM;AAAA,MACJ,IAAI,iBAAiB,MAAM,KAAK,IAAI,YAAY;AAAA,MAChD,IAAI,iBAAiB,MAAM,KAAK,IAAI,YAAY;AAAA,IAClD;AAAA,IACA,IAAI,iBAAiB,MAAM,IAAI,YAAY;AAAA,IAC3C,WAAW,iBAAiB,MAAM,WAAW,YAAY;AAAA,IACzD,MAAM,iBAAiB,MAAM,MAAM,YAAY;AAAA,IAC/C,OAAO,sBAAsB,MAAM,OAAO,EAAC,QAAQ,cAAc,WAAU;AAAA,IAC3E,KAAK,oBAAoB,MAAM,KAAK,EAAC,QAAQ,cAAc,WAAU;AAAA,IACrE,MAAM;AAAA,MACJ,IAAI,iBAAiB,MAAM,KAAK,IAAI,YAAY;AAAA,IAClD;AAAA,IACA,OAAO;AAAA,MACL,IAAI,iBAAiB,MAAM,MAAM,IAAI,YAAY;AAAA,MACjD,IAAI,iBAAiB,MAAM,MAAM,IAAI,YAAY;AAAA,IACnD;AAAA,IACA;AAAA,IACA,UAAU;AAAA,MACR,MAAM,iBAAiB,MAAM,SAAS,MAAM,YAAY;AAAA,MACxD,IAAI,iBAAiB,MAAM,SAAS,IAAI,YAAY;AAAA,IACtD;AAAA,IACA,QAAQ,uBAAuB,MAAM,QAAQ,EAAC,QAAQ,cAAc,WAAU;AAAA,IAC9E;AAAA,EAAA;AAEJ;AAEA,SAAS,oBACP,OACA,SAKe;AACf,QAAM,EAAC,QAAQ,WAAW,aAAY,IAAI,SAEpC,cAAuC;AAAA,IAC3C,IAAI;AAAA,IACJ;AAAA,IACA;AAAA,EAAA,GAGI,KAAK,iBAAiB,MAAM,IAAI,WAAW,GAE3C,eAAwC;AAAA,IAC5C;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGK,SAAA;AAAA,IACL;AAAA,IACA,IAAI,iBAAiB,MAAM,IAAI,YAAY;AAAA,IAC3C,QAAQ,iBAAiB,MAAM,QAAQ,YAAY;AAAA,EAAA;AAEvD;AAEA,SAAS,uBACP,OACA,SAKqB;AACd,SAAA;AAAA,IACL,MAAM,4BAA4B,MAAM,MAAM,OAAO;AAAA,IACrD,MAAM,4BAA4B,MAAM,MAAM,OAAO;AAAA,IACrD,QAAQ,4BAA4B,MAAM,QAAQ,OAAO;AAAA,IACzD,SAAS,4BAA4B,MAAM,SAAS,OAAO;AAAA,IAC3D,KAAK,4BAA4B,MAAM,KAAK,OAAO;AAAA,IACnD,QAAQ,4BAA4B,MAAM,QAAQ,OAAO;AAAA,IACzD,QAAQ,4BAA4B,MAAM,QAAQ,OAAO;AAAA,IACzD,OAAO,4BAA4B,MAAM,OAAO,OAAO;AAAA,IACvD,MAAM,4BAA4B,MAAM,MAAM,OAAO;AAAA,EAAA;AAEzD;AAEA,SAAS,4BACP,OACA,SAK6B;AACvB,QAAA,EAAC,QAAQ,WAAW,eAAe,aAAgB,IAAA,SACnD,YAAY,MAAM,UAAU,YAE5B,cAAuC;AAAA,IAC3C,IAAI;AAAA,IACJ,WAAW;AAAA,IACX;AAAA,EAAA,GAGI,KAAK,iBAAiB,MAAM,IAAI,WAAW,GAE3C,eAAwC;AAAA,IAC5C;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGK,SAAA;AAAA,IACL,QAAQ;AAAA,IACR;AAAA,IACA,IAAI,iBAAiB,MAAM,IAAI,YAAY;AAAA,EAAA;AAE/C;AAEA,SAAS,sBACP,OACA,SAKoB;AACb,SAAA;AAAA,IACL,SAAS,2BAA2B,MAAM,SAAS,OAAO;AAAA,IAC1D,SAAS,2BAA2B,MAAM,SAAS,OAAO;AAAA,IAC1D,UAAU,2BAA2B,MAAM,UAAU,OAAO;AAAA,IAC5D,SAAS,2BAA2B,MAAM,SAAS,OAAO;AAAA,IAC1D,UAAU,2BAA2B,MAAM,UAAU,OAAO;AAAA,EAAA;AAEhE;AAEA,SAAS,2BACP,OACA,SAKwB;AAClB,QAAA,EAAC,QAAQ,WAAW,eAAe,aAAgB,IAAA,SAInD,YAAY,eAEZ,cAAuC;AAAA,IAC3C,IAAI;AAAA,IACJ,WAAW;AAAA,IACX;AAAA,EAAA,GAGI,KAAK,iBAAiB,MAAM,IAAI,WAAW,GAE3C,eAAwC;AAAA,IAC5C;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGK,SAAA;AAAA,IACL;AAAA,IACA,KAAK,iBAAiB,MAAM,KAAK,YAAY;AAAA,IAC7C,IAAI,iBAAiB,MAAM,IAAI,YAAY;AAAA,IAC3C,MAAM,iBAAiB,MAAM,MAAM,YAAY;AAAA,EAAA;AAEnD;AAEA,SAAS,uBACP,OACA,SAKqB;AACd,SAAA;AAAA,IACL,SAAS,4BAA4B,MAAM,SAAS,OAAO;AAAA,IAC3D,OAAO,4BAA4B,MAAM,OAAO,OAAO;AAAA,IACvD,OAAO,4BAA4B,MAAM,OAAO,OAAO;AAAA,EAAA;AAE3D;AAEA,SAAS,4BACP,OACA,SAKyB;AAClB,SAAA;AAAA,IACL,SAAS,6BAA6B,MAAM,SAAS,OAAO;AAAA,IAC5D,SAAS,6BAA6B,MAAM,SAAS,OAAO;AAAA,IAC5D,UAAU,6BAA6B,MAAM,UAAU,OAAO;AAAA,IAC9D,SAAS,6BAA6B,MAAM,SAAS,OAAO;AAAA,IAC5D,UAAU,6BAA6B,MAAM,UAAU,OAAO;AAAA,EAAA;AAElE;AAEA,SAAS,6BACP,OACA,SAKyB;AAClB,SAAA;AAAA,IACL,SAAS,sBAAsB,MAAM,SAAS,OAAO;AAAA,IACrD,SAAS,sBAAsB,MAAM,SAAS,OAAO;AAAA,IACrD,SAAS,sBAAsB,MAAM,SAAS,OAAO;AAAA,IACrD,UAAU,sBAAsB,MAAM,UAAU,OAAO;AAAA,IACvD,UAAU,sBAAsB,MAAM,UAAU,OAAO;AAAA,EAAA;AAE3D;AAEA,SAAS,sBACP,OACA,SAKoB;AAvVtB,MAAA,IAAA;AAwVQ,QAAA,EAAC,QAAQ,WAAW,eAAe,aAAgB,IAAA,SACnD,YAAY,MAAM,UAAU,YAE5B,cAAuC;AAAA,IAC3C,IAAI;AAAA,IACJ,WAAW;AAAA,IACX;AAAA,EAAA,GAGI,KAAK,iBAAiB,MAAM,IAAI,WAAW,GAE3C,eAAwC;AAAA,IAC5C;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGK,SAAA;AAAA,IACL,QAAQ;AAAA,IACR,QAAQ;AAAA,MACN,IAAI,iBAAiB,MAAM,OAAO,IAAI,YAAY;AAAA,IACpD;AAAA,IACA,QAAQ,uBAAuB,MAAM,QAAQ,EAAC,QAAQ,cAAc,WAAU;AAAA,IAC9E,OAAO,sBAAsB,MAAM,OAAO,EAAC,QAAQ,IAAI,cAAc,WAAU;AAAA,IAC/E;AAAA,IACA,QAAQ,iBAAiB,MAAM,QAAQ,YAAY;AAAA,IACnD,MAAM;AAAA,MACJ,IAAI,iBAAiB,MAAM,KAAK,IAAI,YAAY;AAAA,MAChD,IAAI,iBAAiB,MAAM,KAAK,IAAI,YAAY;AAAA,IAClD;AAAA,IACA,IAAI,iBAAiB,MAAM,IAAI,YAAY;AAAA,IAC3C,MAAM,iBAAiB,MAAM,MAAM,YAAY;AAAA,IAC/C,MAAM;AAAA,MACJ,IAAI,iBAAiB,MAAM,KAAK,IAAI,YAAY;AAAA,IAClD;AAAA,IACA,OAAO;AAAA,MACL,IAAI,iBAAiB,MAAM,MAAM,IAAI,YAAY;AAAA,MACjD,IAAI,iBAAiB,MAAM,MAAM,IAAI,YAAY;AAAA,IACnD;AAAA,IACA,KAAK;AAAA,MACH,IAAI,iBAAiB,MAAM,IAAI,IAAI,YAAY;AAAA,MAC/C,IAAI,iBAAiB,MAAM,IAAI,IAAI,YAAY;AAAA,MAC/C,QAAQ,iBAAiB,MAAM,IAAI,QAAQ,YAAY;AAAA,IACzD;AAAA,IACA,UAAU;AAAA,MACR,MAAM,kBAAiB,KAAA,MAAM,aAAN,OAAA,SAAA,GAAgB,MAAM,YAAY;AAAA,MACzD,IAAI,kBAAiB,KAAA,MAAM,aAAN,OAAA,SAAA,GAAgB,IAAI,YAAY;AAAA,IACvD;AAAA,EAAA;AAEJ;AAEA,SAAS,sBACP,OACA,SAKoB;AACb,SAAA;AAAA,IACL,SAAS,4BAA4B,MAAM,SAAS,OAAO;AAAA,IAC3D,SAAS,4BAA4B,MAAM,SAAS,OAAO;AAAA,EAAA;AAE/D;AAEA,SAAS,4BACP,OACA,SAKwB;AACjB,SAAA;AAAA,IACL,SAAS,2BAA2B,MAAM,SAAS,OAAO;AAAA,IAC1D,SAAS,2BAA2B,MAAM,SAAS,OAAO;AAAA,IAC1D,UAAU,2BAA2B,MAAM,UAAU,OAAO;AAAA,IAC5D,UAAU,2BAA2B,MAAM,UAAU,OAAO;AAAA,EAAA;AAEhE;AAEA,SAAS,2BACP,OACA,SAKyB;AACzB,QAAM,EAAC,QAAQ,WAAW,eAAe,aAAY,IAAI,SACnD,YAAY,MAAM,UAAU,YAC5B,cAAuC,EAAC,cAAc,IAAI,QAAQ,WAAW,cAAA,GAC7E,KAAK,iBAAiB,MAAM,IAAI,WAAW,GAC3C,eAAwC,EAAC,cAAc,IAAI,UAAS;AAEnE,SAAA;AAAA,IACL,QAAQ;AAAA,IACR;AAAA,IACA,QAAQ,iBAAiB,MAAM,QAAQ,YAAY;AAAA,IACnD,IAAI,iBAAiB,MAAM,IAAI,YAAY;AAAA,IAC3C,OAAO;AAAA,MACL,IAAI,iBAAiB,MAAM,MAAM,IAAI,YAAY;AAAA,IACnD;AAAA,IACA,aAAa,iBAAiB,MAAM,aAAa,YAAY;AAAA,EAAA;AAEjE;AAEA,SAAS,2BACP,OACA,SAKyB;AAClB,SAAA;AAAA,IACL,SAAS,iCAAiC,MAAM,SAAS,OAAO;AAAA,IAChE,SAAS,iCAAiC,MAAM,SAAS,OAAO;AAAA,IAChE,UAAU,iCAAiC,MAAM,UAAU,OAAO;AAAA,IAClE,SAAS,iCAAiC,MAAM,SAAS,OAAO;AAAA,IAChE,UAAU,iCAAiC,MAAM,UAAU,OAAO;AAAA,EAAA;AAEtE;AAEA,SAAS,iCACP,OACA,SAK6B;AACtB,SAAA;AAAA,IACL,SAAS,sBAAsB,MAAM,SAAS,OAAO;AAAA,IACrD,SAAS,sBAAsB,MAAM,SAAS,OAAO;AAAA,IACrD,SAAS,sBAAsB,MAAM,SAAS,OAAO;AAAA,IACrD,UAAU,sBAAsB,MAAM,UAAU,OAAO;AAAA,IACvD,UAAU,sBAAsB,MAAM,UAAU,OAAO;AAAA,EAAA;AAE3D;AAEA,SAAS,uBACP,OACA,SAKkB;AACZ,QAAA,EAAC,cAAc,QAAQ,UAAS,IAAI,SACpC,eAAwC,EAAC,cAAc,IAAI,QAAQ,UAAS;AAE3E,SAAA;AAAA,IACL,QAAQ,iBAAiB,MAAM,QAAQ,YAAY;AAAA,IACnD,UAAU,iBAAiB,MAAM,UAAU,YAAY;AAAA,IACvD,WAAW,iBAAiB,MAAM,WAAW,YAAY;AAAA,IACzD,WAAW,iBAAiB,MAAM,WAAW,YAAY;AAAA,IACzD,SAAS,iBAAiB,MAAM,SAAS,YAAY;AAAA,IACrD,SAAS,iBAAiB,MAAM,SAAS,YAAY;AAAA,IACrD,OAAO,iBAAiB,MAAM,OAAO,YAAY;AAAA,IACjD,MAAM,iBAAiB,MAAM,MAAM,YAAY;AAAA,IAC/C,OAAO,iBAAiB,MAAM,OAAO,YAAY;AAAA,IACjD,WAAW,iBAAiB,MAAM,WAAW,YAAY;AAAA,IACzD,SAAS,iBAAiB,MAAM,SAAS,YAAY;AAAA,IACrD,UAAU,iBAAiB,MAAM,UAAU,YAAY;AAAA,IACvD,SAAS,iBAAiB,MAAM,SAAS,YAAY;AAAA,IACrD,SAAS,iBAAiB,MAAM,SAAS,YAAY;AAAA,IACrD,QAAQ,iBAAiB,MAAM,QAAQ,YAAY;AAAA,IACnD,UAAU,iBAAiB,MAAM,UAAU,YAAY;AAAA,IACvD,SAAS,iBAAiB,MAAM,SAAS,YAAY;AAAA,IACrD,IAAI,iBAAiB,MAAM,IAAI,YAAY;AAAA,IAC3C,WAAW,iBAAiB,MAAM,WAAW,YAAY;AAAA,IACzD,UAAU,iBAAiB,MAAM,UAAU,YAAY;AAAA,IACvD,SAAS,iBAAiB,MAAM,SAAS,YAAY;AAAA,IACrD,QAAQ,iBAAiB,MAAM,QAAQ,YAAY;AAAA,IACnD,UAAU,iBAAiB,MAAM,UAAU,YAAY;AAAA,IACvD,QAAQ,iBAAiB,MAAM,QAAQ,YAAY;AAAA,IACnD,UAAU,iBAAiB,MAAM,UAAU,YAAY;AAAA,IACvD,aAAa,iBAAiB,MAAM,aAAa,YAAY;AAAA,IAC7D,eAAe,iBAAiB,MAAM,eAAe,YAAY;AAAA,IACjE,aAAa,iBAAiB,MAAM,aAAa,YAAY;AAAA,IAC7D,OAAO,iBAAiB,MAAM,OAAO,YAAY;AAAA,IACjD,UAAU,iBAAiB,MAAM,UAAU,YAAY;AAAA,IACvD,QAAQ,iBAAiB,MAAM,QAAQ,YAAY;AAAA,IACnD,QAAQ,iBAAiB,MAAM,QAAQ,YAAY;AAAA,IACnD,KAAK,iBAAiB,MAAM,KAAK,YAAY;AAAA,IAC7C,MAAM,iBAAiB,MAAM,MAAM,YAAY;AAAA,IAC/C,KAAK,iBAAiB,MAAM,KAAK,YAAY;AAAA,IAC7C,UAAU,iBAAiB,MAAM,UAAU,YAAY;AAAA,EAAA;AAE3D;AC7gBO,SAAS,WAAW,QAAiC;AAT5D,MAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA;AAUE,QAAM,aAAa,gBAAgB,MAAM,GAEnC,KAAmB;AAAA,IACvB,UAAU;AAAA,IACV,SAAQ,KAAA,UAAA,OAAA,SAAA,OAAQ,WAAR,OAAA,KAAkB,mBAAmB;AAAA,IAC7C,SAAQ,KAAA,UAAA,OAAA,SAAA,OAAQ,WAAR,OAAA,KAAkB,mBAAmB;AAAA,IAC7C,OAAM,KAAA,UAAA,OAAA,SAAA,OAAQ,SAAR,OAAA,KAAgB,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMzC,OAAO,wBAAwB,YAAY,MAAM;AAAA,IACjD,YAAW,KAAA,UAAA,OAAA,SAAA,OAAQ,cAAR,OAAA,KAAqB,mBAAmB;AAAA,IACnD,OAAM,KAAQ,UAAA,OAAA,SAAA,OAAA,SAAR,OAAgB,KAAA;AAAA,IACtB,QAAO,KAAA,UAAA,OAAA,SAAA,OAAQ,UAAR,OAAA,KAAiB,mBAAmB;AAAA,IAC3C,QAAO,KAAA,UAAA,OAAA,SAAA,OAAQ,UAAR,OAAA,KAAiB,mBAAmB;AAAA,IAC3C,QAAO,KAAA,UAAA,OAAA,SAAA,OAAQ,UAAR,OAAA,KAAiB,mBAAmB;AAAA,IAC3C,SAAQ,KAAA,UAAA,OAAA,SAAA,OAAQ,WAAR,OAAA,KAAkB,mBAAmB;AAAA,IAC7C,SAAQ,KAAA,UAAA,OAAA,SAAA,OAAQ,WAAR,OAAA,KAAkB,mBAAmB;AAAA,IAC7C,QAAO,KAAA,UAAA,OAAA,SAAA,OAAQ,UAAR,OAAA,KAAiB,mBAAmB;AAAA,IAC3C,QAAO,KAAA,UAAA,OAAA,SAAA,OAAQ,UAAR,OAAA,KAAiB,mBAAmB;AAAA,EAAA;AAG7C,SAAO,MAAM,EAAE;AACjB;AC9BA,MAAM,4BAAY;AAMF,SAAA,eACd,WACA,QACA,MACO;AACP,QAAM,cAAc,gBAAgB,WAAW,QAAQ,IAAI;AAEvD,MAAA;AAAoB,WAAA;AAElB,QAAA,KAAK,MAAM,SAAS,IAAI,MAAM,SAAS,IAAI,WAC3C,KAAK,MAAM,SAAS,IAAI,YAAY,MAAM,SAAS,GAEnD,iBAAiB,GAAG,MAAM,MAAM,KAAK,GAAG,MAAM,OAC9C,WAAW,eAAe,IAAI,KAAK,eAAe,SAClD,WAAW,GAAG,SAAS,mBAAmB,OAE1C,iBAAiB,GAAG,MAAM,MAAM,KAAK,GAAG,MAAM,OAC9C,WAAW,eAAe,IAAI,KAAK,eAAe,SAClD,WAAW,GAAG,SAAS,mBAAmB,OAE1C,QAAe;AAAA,IACnB,QAAQ;AAAA,MACN,GAAG;AAAA,MACH,OAAO;AAAA,MACP,OAAO;AAAA,MACP,IAAI;AAAA,QACF,GAAG;AAAA,QACH,WAAW;AAAA,QACX,OAAO;AAAA,QACP,OAAO;AAAA,MACT;AAAA,IACF;AAAA,EAAA;AAGF,SAAA,gBAAgB,WAAW,QAAQ,MAAM,KAAK,GAEvC;AACT;AAEA,SAAS,gBACP,WACA,QACA,MACA;AACM,QAAA,cAAc,MAAM,IAAI,MAAM;AAEpC,MAAI,CAAC;AAAa;AAEZ,QAAA,YAAY,YAAY,IAAI,IAAI;AAEjC,MAAA;AAEE,WAAA,UAAU,IAAI,SAAS;AAChC;AAEA,SAAS,gBACP,WACA,QACA,MACA,OACA;AACK,QAAM,IAAI,MAAM,KAAG,MAAM,IAAI,QAAY,oBAAA,IAAA,CAAK;AAE7C,QAAA,cAAc,MAAM,IAAI,MAAM;AAE/B,cAAY,IAAI,IAAI,KAAG,YAAY,IAAI,MAAM,oBAAI,QAAS,CAAA,GAE7C,YAAY,IAAI,IAAI,EAE5B,IAAI,WAAW,KAAK;AAChC;"}
|
|
1
|
+
{"version":3,"file":"theme.mjs","sources":["../src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts","../src/theme/build/_deprecated/color/_solid/createSolidTones.ts","../src/theme/build/_deprecated/color/button/createButtonTones.ts","../src/theme/build/_deprecated/color/button/createButtonModes.ts","../src/theme/build/_deprecated/color/card/createCardStates.ts","../src/theme/build/_deprecated/color/defaults.ts","../src/theme/build/_deprecated/color/input/createInputModes.ts","../src/theme/build/_deprecated/color/muted/createMuted.ts","../src/theme/build/_deprecated/color/spot/createSpot.ts","../src/theme/build/_deprecated/color/factory.ts","../src/theme/defaults/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/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/getScopedTheme.ts"],"sourcesContent":["import {\n ThemeColorBase,\n ThemeColorMuted,\n ThemeColorSelectable,\n ThemeColorSelectableStates,\n ThemeColorSolid,\n} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSelectableTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorSelectable {\n return {\n default: _createSelectableStates(opts, base, dark, solid, muted, 'default'),\n primary: _createSelectableStates(opts, base, dark, solid, muted, 'primary'),\n positive: _createSelectableStates(opts, base, dark, solid, muted, 'positive'),\n caution: _createSelectableStates(opts, base, dark, solid, muted, 'caution'),\n critical: _createSelectableStates(opts, base, dark, solid, muted, 'critical'),\n }\n}\n\nfunction _createSelectableStates(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical',\n): ThemeColorSelectableStates {\n return {\n enabled: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'enabled',\n tone,\n }),\n hovered: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'hovered',\n tone,\n }),\n pressed: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'pressed',\n tone,\n }),\n selected: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'selected',\n tone,\n }),\n disabled: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'disabled',\n tone,\n }),\n }\n}\n","import {ThemeColorBase, ThemeColorSolid, ThemeColorName} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSolidTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n): ThemeColorSolid {\n return {\n default: {\n enabled: opts.solid({base, dark, tone: 'default', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'default', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'default', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'default', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'default', name, state: 'selected'}),\n },\n transparent: {\n enabled: opts.solid({base, dark, tone: 'transparent', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'transparent', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'transparent', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'transparent', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'transparent', name, state: 'selected'}),\n },\n primary: {\n enabled: opts.solid({base, dark, tone: 'primary', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'primary', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'primary', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'primary', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'primary', name, state: 'selected'}),\n },\n positive: {\n enabled: opts.solid({base, dark, tone: 'positive', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'positive', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'positive', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'positive', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'positive', name, state: 'selected'}),\n },\n caution: {\n enabled: opts.solid({base, dark, tone: 'caution', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'caution', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'caution', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'caution', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'caution', name, state: 'selected'}),\n },\n critical: {\n enabled: opts.solid({base, dark, tone: 'critical', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'critical', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'critical', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'critical', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'critical', name, state: 'selected'}),\n },\n }\n}\n","import {\n ThemeColorBase,\n ThemeColorButtonModeKey,\n ThemeColorButtonTones,\n ThemeColorMuted,\n ThemeColorSolid,\n} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createButtonTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n mode: ThemeColorButtonModeKey,\n): ThemeColorButtonTones {\n return {\n default: opts.button({\n base,\n dark,\n solid: solid.default,\n muted: muted.default,\n mode,\n }),\n primary: opts.button({\n base,\n dark,\n solid: solid.primary,\n muted: muted.primary,\n mode,\n }),\n positive: opts.button({\n base,\n dark,\n solid: solid.positive,\n muted: muted.positive,\n mode,\n }),\n caution: opts.button({\n base,\n dark,\n solid: solid.caution,\n muted: muted.caution,\n mode,\n }),\n critical: opts.button({\n base,\n dark,\n solid: solid.critical,\n muted: muted.critical,\n mode,\n }),\n }\n}\n","import {\n ThemeColorBase,\n ThemeColorButton,\n ThemeColorMuted,\n ThemeColorSolid,\n} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {createButtonTones} from './createButtonTones'\n\nexport function createButtonModes(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorButton {\n return {\n default: createButtonTones(opts, base, dark, solid, muted, 'default'),\n ghost: createButtonTones(opts, base, dark, solid, muted, 'ghost'),\n bleed: createButtonTones(opts, base, dark, solid, muted, 'bleed'),\n }\n}\n","import {\n ThemeColorBase,\n ThemeColorCard,\n ThemeColorMuted,\n ThemeColorSolid,\n ThemeColorName,\n} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createCardStates(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorCard {\n return {\n enabled: opts.card({\n base,\n dark,\n name,\n state: 'enabled',\n solid,\n muted,\n }),\n disabled: opts.card({\n base,\n dark,\n name,\n state: 'disabled',\n solid,\n muted,\n }),\n hovered: opts.card({\n base,\n dark,\n name,\n state: 'hovered',\n solid,\n muted,\n }),\n pressed: opts.card({\n base,\n dark,\n name,\n state: 'pressed',\n solid,\n muted,\n }),\n selected: opts.card({\n base,\n dark,\n name,\n state: 'selected',\n solid,\n muted,\n }),\n }\n}\n","import {ThemeColorBuilderOpts} from './factory'\n\nconst black = 'hsl(0, 0%, 0%)'\nconst white = 'hsl(0, 0%, 100%)'\n\nconst colors = {\n default: {\n lightest: 'hsl(0, 0%, 95%)',\n lighter: 'hsl(0, 0%, 70%)',\n light: 'hsl(0, 0%, 65%)',\n base: 'hsl(0, 0%, 50%)',\n dark: 'hsl(0, 0%, 35%)',\n darker: 'hsl(0, 0%, 20%)',\n darkest: 'hsl(0, 0%, 5%)',\n },\n transparent: {\n lightest: 'hsl(240, 100%, 95%)',\n lighter: 'hsl(240, 100%, 70%)',\n light: 'hsl(240, 100%, 65%)',\n base: 'hsl(240, 100%, 50%)',\n dark: 'hsl(240, 100%, 35%)',\n darker: 'hsl(240, 100%, 20%)',\n darkest: 'hsl(240, 100%, 5%)',\n },\n primary: {\n lightest: 'hsl(240, 100%, 95%)',\n lighter: 'hsl(240, 100%, 70%)',\n light: 'hsl(240, 100%, 65%)',\n base: 'hsl(240, 100%, 50%)',\n dark: 'hsl(240, 100%, 35%)',\n darker: 'hsl(240, 100%, 20%)',\n darkest: 'hsl(240, 100%, 5%)',\n },\n positive: {\n lightest: 'hsl(120, 100%, 95%)',\n lighter: 'hsl(120, 100%, 70%)',\n light: 'hsl(120, 100%, 65%)',\n base: 'hsl(120, 100%, 50%)',\n dark: 'hsl(120, 100%, 35%)',\n darker: 'hsl(120, 100%, 20%)',\n darkest: 'hsl(120, 100%, 5%)',\n },\n caution: {\n lightest: 'hsl(60, 100%, 95%)',\n lighter: 'hsl(60, 100%, 70%)',\n light: 'hsl(60, 100%, 65%)',\n base: 'hsl(60, 100%, 50%)',\n dark: 'hsl(60, 100%, 35%)',\n darker: 'hsl(60, 100%, 20%)',\n darkest: 'hsl(60, 100%, 5%)',\n },\n critical: {\n lightest: 'hsl(0, 100%, 95%)',\n lighter: 'hsl(0, 100%, 70%)',\n light: 'hsl(0, 100%, 65%)',\n base: 'hsl(0, 100%, 50%)',\n dark: 'hsl(0, 100%, 35%)',\n darker: 'hsl(0, 100%, 20%)',\n darkest: 'hsl(0, 100%, 5%)',\n },\n}\n\nconst spots = {\n gray: 'hsl(0, 0%, 50%)',\n red: 'hsl(0, 100%, 50%)',\n orange: 'hsl(30, 100%, 50%)',\n yellow: 'hsl(60, 100%, 50%)',\n green: 'hsl(120, 100%, 50%)',\n cyan: 'hsl(180, 100%, 50%)',\n blue: 'hsl(240, 100%, 50%)',\n purple: 'hsl(270, 100%, 50%)',\n magenta: 'hsl(300, 100%, 50%)',\n}\n\nconst tones = {\n transparent: {\n bg: [colors.transparent.darkest, colors.transparent.lightest],\n fg: [colors.transparent.lightest, colors.transparent.darkest],\n border: [colors.transparent.darker, colors.transparent.lighter],\n focusRing: [colors.transparent.base, colors.transparent.base],\n },\n primary: {\n bg: [colors.primary.darkest, colors.primary.lightest],\n fg: [colors.primary.lightest, colors.primary.darkest],\n border: [colors.primary.darker, colors.primary.lighter],\n focusRing: [colors.primary.base, colors.primary.base],\n },\n positive: {\n bg: [colors.positive.darkest, colors.positive.lightest],\n fg: [colors.positive.lightest, colors.positive.darkest],\n border: [colors.positive.darker, colors.positive.lighter],\n focusRing: [colors.positive.base, colors.positive.base],\n },\n caution: {\n bg: [colors.caution.darkest, colors.caution.lightest],\n fg: [colors.caution.lightest, colors.caution.darkest],\n border: [colors.caution.darker, colors.caution.lighter],\n focusRing: [colors.caution.base, colors.caution.base],\n },\n critical: {\n bg: [colors.critical.darkest, colors.critical.lightest],\n fg: [colors.critical.lightest, colors.critical.darkest],\n border: [colors.critical.darker, colors.critical.lighter],\n focusRing: [colors.critical.base, colors.critical.base],\n },\n}\n\nexport const defaultOpts: ThemeColorBuilderOpts = {\n base: ({dark, name}) => {\n if (name === 'default') {\n return {\n bg: dark ? black : white,\n fg: dark ? white : black,\n border: dark ? colors.default.darkest : colors.default.lightest,\n focusRing: colors.primary.base,\n shadow: {\n outline: black,\n umbra: black,\n penumbra: black,\n ambient: black,\n },\n skeleton: {\n from: dark ? white : black,\n to: dark ? white : black,\n },\n }\n }\n\n // Variants:\n // - primary\n // - positive\n // - caution\n // - critical\n return {\n bg: tones[name].bg[dark ? 0 : 1],\n fg: tones[name].fg[dark ? 0 : 1],\n border: tones[name].border[dark ? 0 : 1],\n focusRing: tones[name].focusRing[dark ? 0 : 1],\n shadow: {\n outline: black,\n umbra: black,\n penumbra: black,\n ambient: black,\n },\n skeleton: {\n from: dark ? white : black,\n to: dark ? white : black,\n },\n }\n },\n\n solid: ({base, dark, state, tone}) => {\n const color = colors[tone]\n\n if (state === 'hovered') {\n return {\n bg: dark ? color.light : color.dark,\n bg2: dark ? color.light : color.dark,\n border: dark ? color.lighter : color.darker,\n fg: dark ? color.darkest : color.lightest,\n icon: dark ? color.darkest : color.lightest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n }\n\n return {\n bg: color.base,\n bg2: color.base,\n border: dark ? color.light : color.dark,\n fg: dark ? color.darkest : color.lightest,\n icon: dark ? color.darkest : color.lightest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n muted: ({base, dark, state, tone}) => {\n const color = colors[tone]\n\n if (state === 'hovered') {\n return {\n bg: dark ? color.darker : color.lighter,\n bg2: dark ? color.darker : color.lighter,\n border: dark ? color.lighter : color.darker,\n fg: dark ? color.lightest : color.darkest,\n icon: dark ? color.lightest : color.darkest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n }\n\n return {\n bg: dark ? color.darkest : color.lightest,\n bg2: dark ? color.darkest : color.lightest,\n border: dark ? color.darker : color.lighter,\n fg: dark ? color.lighter : color.darker,\n icon: dark ? color.lighter : color.darker,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n button: ({base, mode, muted, solid}) => {\n if (mode === 'bleed') {\n return {\n ...muted,\n enabled: {\n bg: 'transparent',\n bg2: 'transparent',\n fg: muted.enabled.fg,\n icon: muted.enabled.fg,\n border: 'transparent',\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n },\n hovered: {\n bg: muted.enabled.bg,\n bg2: muted.enabled.bg,\n fg: muted.hovered.fg,\n icon: muted.hovered.fg,\n border: 'transparent',\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n },\n }\n }\n\n if (mode === 'ghost')\n return {\n ...solid,\n enabled: muted.enabled,\n }\n\n return solid\n },\n\n card: ({base}) => {\n return {\n bg: black,\n bg2: black,\n fg: black,\n icon: black,\n border: black,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n input: () => {\n return {\n bg: black,\n bg2: black,\n fg: black,\n border: black,\n placeholder: black,\n }\n },\n\n selectable: ({muted, state, tone}) => {\n return muted[tone][state]\n },\n\n spot: ({key}) => {\n return spots[key]\n },\n\n syntax: () => ({\n atrule: black,\n attrName: black,\n attrValue: black,\n attribute: black,\n boolean: black,\n builtin: black,\n cdata: black,\n char: black,\n class: black,\n className: black,\n comment: black,\n constant: black,\n deleted: black,\n doctype: black,\n entity: black,\n function: black,\n hexcode: black,\n id: black,\n important: black,\n inserted: black,\n keyword: black,\n number: black,\n operator: black,\n prolog: black,\n property: black,\n pseudoClass: black,\n pseudoElement: black,\n punctuation: black,\n regex: black,\n selector: black,\n string: black,\n symbol: black,\n tag: black,\n unit: black,\n url: black,\n variable: black,\n }),\n}\n","import {ThemeColorBase, ThemeColorInput, ThemeColorMuted, ThemeColorSolid} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createInputModes(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorInput {\n return {\n default: {\n enabled: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'enabled',\n solid: solid.default,\n muted: muted.default,\n }),\n disabled: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'disabled',\n solid: solid.default,\n muted: muted.default,\n }),\n hovered: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'hovered',\n solid: solid.default,\n muted: muted.default,\n }),\n readOnly: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'readOnly',\n solid: solid.default,\n muted: muted.default,\n }),\n },\n invalid: {\n enabled: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'enabled',\n solid: solid.default,\n muted: muted.default,\n }),\n disabled: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'disabled',\n solid: solid.default,\n muted: muted.default,\n }),\n hovered: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'hovered',\n solid: solid.default,\n muted: muted.default,\n }),\n readOnly: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'readOnly',\n solid: solid.default,\n muted: muted.default,\n }),\n },\n }\n}\n","import {ThemeColorBase, ThemeColorCardToneKey, ThemeColorMuted} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createMutedTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorCardToneKey,\n): ThemeColorMuted {\n return {\n default: {\n enabled: opts.muted({base, dark, tone: 'default', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'default', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'default', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'default', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'default', name, state: 'selected'}),\n },\n transparent: {\n enabled: opts.muted({base, dark, tone: 'transparent', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'transparent', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'transparent', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'transparent', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'transparent', name, state: 'selected'}),\n },\n primary: {\n enabled: opts.muted({base, dark, tone: 'primary', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'primary', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'primary', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'primary', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'primary', name, state: 'selected'}),\n },\n positive: {\n enabled: opts.muted({base, dark, tone: 'positive', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'positive', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'positive', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'positive', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'positive', name, state: 'selected'}),\n },\n caution: {\n enabled: opts.muted({base, dark, tone: 'caution', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'caution', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'caution', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'caution', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'caution', name, state: 'selected'}),\n },\n critical: {\n enabled: opts.muted({base, dark, tone: 'critical', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'critical', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'critical', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'critical', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'critical', name, state: 'selected'}),\n },\n }\n}\n","import {ThemeColorBase, ThemeColorSpot} from '../../../../system'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSpot(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n): ThemeColorSpot {\n return {\n gray: opts.spot({base, dark, key: 'gray'}),\n blue: opts.spot({base, dark, key: 'blue'}),\n purple: opts.spot({base, dark, key: 'purple'}),\n magenta: opts.spot({base, dark, key: 'magenta'}),\n red: opts.spot({base, dark, key: 'red'}),\n orange: opts.spot({base, dark, key: 'orange'}),\n yellow: opts.spot({base, dark, key: 'yellow'}),\n green: opts.spot({base, dark, key: 'green'}),\n cyan: opts.spot({base, dark, key: 'cyan'}),\n }\n}\n","import {\n ThemeColorGenericState,\n ThemeColorBase,\n ThemeColorButtonModeKey,\n ThemeColorButtonStates,\n ThemeColorInputState,\n ThemeColorMuted,\n ThemeColorMutedTone,\n ThemeColorSolid,\n ThemeColorSolidTone,\n ThemeColorSyntax,\n ThemeColorName,\n ThemeColorScheme,\n ThemeColorSchemes,\n ThemeColor,\n ThemeColorToneKey,\n ThemeColorSpotKey,\n} from '../../../system'\nimport {createSelectableTones} from './_selectable/createSelectableTones'\nimport {createSolidTones} from './_solid/createSolidTones'\nimport {createButtonModes} from './button/createButtonModes'\nimport {createCardStates} from './card/createCardStates'\nimport {defaultOpts} from './defaults'\nimport {createInputModes} from './input/createInputModes'\nimport {createMutedTones} from './muted/createMuted'\nimport {createSpot} from './spot/createSpot'\n\n/**\n * @public\n * @deprecated Use `buildColorTheme` instead.\n */\nexport interface ThemeColorBuilderOpts {\n base: (opts: {dark: boolean; name: ThemeColorName}) => ThemeColorBase\n solid: (opts: {\n base: ThemeColorBase\n dark: boolean\n tone: ThemeColorToneKey\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 ThemeColorGenericState,\n ThemeColorMuted,\n ThemeColorSelectable_v2,\n ThemeColorState_v2,\n ThemeColorCard_v2,\n ThemeColorInputStates,\n ThemeColorInputMode_v2,\n ThemeColorInputState,\n ThemeColorInputState_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 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 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 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 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 primary: 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 primary: themeColor_v0_v2(color.dark.primary),\n positive: themeColor_v0_v2(color.dark.positive),\n caution: themeColor_v0_v2(color.dark.caution),\n critical: themeColor_v0_v2(color.dark.critical),\n },\n },\n container,\n font,\n input: {\n ...defaultThemeConfig.input,\n ...input,\n checkbox: {\n ...defaultThemeConfig.input.checkbox,\n ...input.checkbox,\n },\n radio: {\n ...defaultThemeConfig.input.radio,\n ...input.radio,\n },\n switch: {\n ...defaultThemeConfig.input.switch,\n ...input.switch,\n },\n },\n layer: layer ?? defaultThemeConfig.layer,\n media,\n radius,\n shadow,\n space,\n style,\n }\n\n cache.set(v0, v2)\n\n return v2\n}\n","import {\n RootTheme,\n RootTheme_v2,\n ThemeColor,\n ThemeColorCard_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState,\n ThemeColorInputState_v2,\n ThemeColorInputStates,\n} from '../system'\n\nconst cache = new WeakMap<RootTheme_v2, RootTheme>()\n\n/** @internal */\nexport function v2_v0(v2: RootTheme_v2): RootTheme {\n const cachedTheme = cache.get(v2)\n\n if (cachedTheme) return cachedTheme\n\n const {\n avatar,\n button,\n color,\n container,\n font: fonts,\n input,\n media,\n radius,\n shadow: shadows,\n space,\n style: styles,\n } = v2\n\n return {\n _version: 0,\n avatar,\n button,\n container,\n color: {\n light: {\n transparent: themeColor_v2_v0(color.light.transparent),\n default: themeColor_v2_v0(color.light.default),\n primary: themeColor_v2_v0(color.light.primary),\n positive: themeColor_v2_v0(color.light.positive),\n caution: themeColor_v2_v0(color.light.caution),\n critical: themeColor_v2_v0(color.light.critical),\n },\n dark: {\n transparent: themeColor_v2_v0(color.dark.transparent),\n default: themeColor_v2_v0(color.dark.default),\n primary: themeColor_v2_v0(color.dark.primary),\n positive: themeColor_v2_v0(color.dark.positive),\n caution: themeColor_v2_v0(color.dark.caution),\n critical: themeColor_v2_v0(color.dark.critical),\n },\n },\n focusRing: input.text.focusRing,\n fonts,\n input,\n media,\n radius,\n shadows,\n space,\n styles,\n\n v2,\n }\n}\n\nfunction themeColor_v2_v0(color_v2: ThemeColorCard_v2): ThemeColor {\n return {\n base: {\n bg: color_v2.bg,\n fg: color_v2.fg,\n border: color_v2.border,\n focusRing: color_v2.focusRing,\n shadow: color_v2.shadow,\n },\n button: color_v2.button,\n card: color_v2.selectable.default,\n dark: color_v2._dark,\n input: {\n default: inputStatesThemeColor_v2_v0(color_v2.input.default),\n invalid: inputStatesThemeColor_v2_v0(color_v2.input.invalid),\n },\n muted: {\n ...color_v2.button.ghost,\n transparent: color_v2.button.ghost.default,\n },\n solid: {\n ...color_v2.button.default,\n transparent: color_v2.button.default.default,\n },\n selectable: color_v2.selectable,\n spot: {\n gray: color_v2.avatar.gray.bg,\n blue: color_v2.avatar.blue.bg,\n purple: color_v2.avatar.purple.bg,\n magenta: color_v2.avatar.magenta.bg,\n red: color_v2.avatar.red.bg,\n orange: color_v2.avatar.orange.bg,\n yellow: color_v2.avatar.yellow.bg,\n green: color_v2.avatar.green.bg,\n cyan: color_v2.avatar.cyan.bg,\n },\n syntax: color_v2.syntax,\n }\n}\n\nfunction inputStatesThemeColor_v2_v0(t: ThemeColorInputMode_v2): ThemeColorInputStates {\n return {\n enabled: inputStateThemeColor_v2_v0(t.enabled),\n disabled: inputStateThemeColor_v2_v0(t.disabled),\n readOnly: inputStateThemeColor_v2_v0(t.readOnly),\n hovered: inputStateThemeColor_v2_v0(t.hovered),\n }\n}\n\nfunction inputStateThemeColor_v2_v0(t: ThemeColorInputState_v2): ThemeColorInputState {\n return {\n bg: t.bg,\n bg2: t.muted.bg,\n border: t.border,\n fg: t.fg,\n placeholder: t.placeholder,\n }\n}\n","import {COLOR_HUES} from '@sanity/color'\n\n/** @public */\nexport const THEME_COLOR_SCHEMES = ['light', 'dark'] as const\n\n/** @public */\nexport const THEME_COLOR_BLEND_MODES = ['multiply', 'screen'] as const\n\n/** @public */\nexport const THEME_COLOR_CARD_TONES = [\n 'transparent',\n 'default',\n 'primary',\n 'positive',\n 'caution',\n 'critical',\n] as const\n\n/** @public */\nexport const THEME_COLOR_STATE_TONES = [\n 'default',\n 'primary',\n 'positive',\n 'caution',\n 'critical',\n] as const\n\n/** @public */\nexport const THEME_COLOR_STATES = ['enabled', 'hovered', 'pressed', 'selected', 'disabled'] as const\n\n/** @public */\nexport const THEME_COLOR_BUTTON_MODES = ['default', 'ghost', 'bleed'] as const\n\n/** @public */\nexport const THEME_COLOR_INPUT_MODES = ['default', 'invalid'] as const\n\n/** @public */\nexport const THEME_COLOR_INPUT_STATES = ['enabled', 'hovered', 'readOnly', 'disabled'] as const\n\n/** @public */\nexport const THEME_COLOR_AVATAR_COLORS = COLOR_HUES\n","import {COLOR_HUES, COLOR_TINTS, ColorHueKey, ColorTintKey} from '@sanity/color'\nimport {THEME_COLOR_BLEND_MODES, THEME_COLOR_BUTTON_MODES} from './_constants'\nimport {ThemeColorBlendModeKey, ThemeColorButtonModeKey} from './_system'\n\n/** @internal */\nexport function isColorBlendModeValue(str: string): str is ThemeColorBlendModeKey {\n return THEME_COLOR_BLEND_MODES.includes(str as ThemeColorBlendModeKey)\n}\n\n/** @internal */\nexport function isColorHueKey(str: string): str is ColorHueKey {\n return COLOR_HUES.includes(str as ColorHueKey)\n}\n\n/** @internal */\nexport function isColorTintKey(str: string): str is ColorTintKey {\n return COLOR_TINTS.includes(str as ColorTintKey)\n}\n\n/** @internal */\nexport function isColorButtonMode(str: string): str is ThemeColorButtonModeKey {\n return THEME_COLOR_BUTTON_MODES.includes(str as ThemeColorButtonModeKey)\n}\n","import {ColorHueKey, ColorTintKey} from '@sanity/color'\nimport {\n THEME_COLOR_AVATAR_COLORS,\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_INPUT_MODES,\n THEME_COLOR_INPUT_STATES,\n THEME_COLOR_STATES,\n THEME_COLOR_STATE_TONES,\n ThemeColorBlendModeKey,\n} from '../system'\n\n/** @public */\nexport const COLOR_CONFIG_STATE_KEYS = [\n '_hue',\n 'bg',\n 'fg',\n 'border',\n 'focusRing',\n 'muted/fg',\n 'accent/fg',\n 'link/fg',\n 'code/bg',\n 'code/fg',\n 'skeleton/from',\n 'skeleton/to',\n 'status/dot',\n 'status/icon',\n] as const\n\n/** @public */\nexport type ColorConfigStateKey = (typeof COLOR_CONFIG_STATE_KEYS)[number]\n\n/** @public */\nexport const COLOR_CONFIG_CARD_KEYS = [\n ...COLOR_CONFIG_STATE_KEYS,\n '_hue',\n 'bg',\n 'fg',\n 'border',\n 'focusRing',\n 'shadow/outline',\n 'shadow/umbra',\n 'shadow/penumbra',\n 'shadow/ambient',\n] as const\n\n/** @public */\nexport type ColorConfigCardKey = (typeof COLOR_CONFIG_CARD_KEYS)[number]\n\n/** @public */\nexport const COLOR_CONFIG_BLEND_KEYS = ['_blend'] as const\n\n/** @public */\nexport type ColorConfigBlendKey = (typeof COLOR_CONFIG_BLEND_KEYS)[number]\n\n/** @public */\nexport type ColorConfigOpacityValue = `0` | `0.${number}` | `1`\n\n/** @public */\nexport type ColorConfigValue =\n | `black`\n | `white`\n | `black/${ColorConfigOpacityValue}`\n | `white/${ColorConfigOpacityValue}`\n | `${ColorHueKey}`\n | `${ColorHueKey} ${number}%`\n | `${ColorHueKey}/${ColorTintKey}`\n | `${ColorHueKey}/${ColorTintKey} ${number}%`\n | `${ColorHueKey}/${ColorTintKey}/${ColorConfigOpacityValue}`\n | `${ColorTintKey}`\n | `${ColorTintKey} ${number}%`\n | `${ColorTintKey}/${ColorConfigOpacityValue}`\n\n/** @public */\nexport type ThemeColorTokenValue = [ColorConfigValue, ColorConfigValue]\n\n/** @public */\nexport type ColorBlendModeTokenValue = [ThemeColorBlendModeKey, ThemeColorBlendModeKey]\n\n/** @public */\nexport const COLOR_CONFIG_AVATAR_COLORS = ['*', ...THEME_COLOR_AVATAR_COLORS] as const\n\n/** @public */\nexport type ColorConfigAvatarColor = (typeof COLOR_CONFIG_AVATAR_COLORS)[number]\n\n/** @public */\nexport const COLOR_CONFIG_CARD_TONES = ['*', ...THEME_COLOR_CARD_TONES] as const\n\n/** @public */\nexport type ColorConfigCardTone = (typeof COLOR_CONFIG_CARD_TONES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_STATE_TONES = ['*', ...THEME_COLOR_STATE_TONES] as const\n\n/** @public */\nexport type ColorConfigStateTone = (typeof COLOR_CONFIG_STATE_TONES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_STATES = ['*', ...THEME_COLOR_STATES] as const\n\n/** @public */\nexport type ColorConfigState = (typeof COLOR_CONFIG_STATES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_INPUT_MODES = ['*', ...THEME_COLOR_INPUT_MODES] as const\n\n/** @public */\nexport type ColorConfigInputMode = (typeof COLOR_CONFIG_INPUT_MODES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_INPUT_STATES = ['*', ...THEME_COLOR_INPUT_STATES] as const\n\n/** @public */\nexport type ColorConfigInputState = (typeof COLOR_CONFIG_INPUT_STATES)[number]\n","import {isColorButtonMode} from '../../system'\nimport {\n isColorConfigBaseKey,\n isColorConfigBaseTone,\n isColorConfigBlendKey,\n isColorConfigStateKey,\n isColorConfigStateTone,\n} from '../helpers'\nimport {TokenKeyNode} from './types'\n\n/** @internal */\nexport function parseTokenKey(str: string): TokenKeyNode | undefined {\n const segments = str.split('/')\n const segment0 = segments.shift() || ''\n\n if (isColorConfigBaseTone(segment0)) {\n const key = segments.join('/')\n\n if (isColorConfigBaseKey(key)) {\n return {\n type: 'base',\n tone: segment0,\n key,\n }\n }\n\n if (isColorConfigBlendKey(key)) {\n return {\n type: 'base',\n tone: segment0,\n key,\n }\n }\n }\n\n if (segment0 === 'button') {\n const segment1 = segments.shift() || ''\n\n if (isColorConfigStateTone(segment1)) {\n const segment2 = segments.shift() || ''\n\n if (isColorButtonMode(segment2)) {\n const key = segments.join('/')\n\n if (isColorConfigStateKey(key)) {\n return {\n type: 'button',\n tone: segment1,\n mode: segment2,\n key,\n }\n }\n\n if (isColorConfigBlendKey(key)) {\n return {\n type: 'button',\n tone: segment1,\n mode: segment2,\n key,\n }\n }\n }\n }\n }\n\n return undefined\n}\n","import {isColorBlendModeValue, isColorHueKey, isColorTintKey} from '../../system'\nimport {isColorOpacityValue, isColorValue} from '../helpers'\nimport {TokenValueNode} from './types'\n\nfunction isColorMixPercentValue(str: string): str is `${number}%` {\n return /^\\d+%$/.test(str)\n}\n\n/** @internal */\nexport function parseTokenValue(str: string): TokenValueNode | undefined {\n const segments = str.split('/')\n\n let nextSegment = segments.shift() || ''\n\n const [segment0, segment0mix] = nextSegment.split(' ')\n\n if (isColorTintKey(segment0)) {\n const tint = segment0\n const segment1 = segments.shift() || ''\n\n if (isColorMixPercentValue(segment0mix)) {\n const mix = Number(segment0mix.slice(0, -1)) / 100\n\n return {\n type: 'color',\n tint,\n mix,\n }\n }\n\n if (isColorOpacityValue(segment1)) {\n const opacity = Number(segment1)\n\n return {\n type: 'color',\n tint,\n opacity,\n }\n }\n\n return {\n type: 'color',\n tint,\n }\n }\n\n if (isColorValue(segment0)) {\n const key = segment0 as 'black' | 'white'\n const segment1 = segments.shift() || ''\n\n if (isColorMixPercentValue(segment0mix)) {\n const mix = Number(segment0mix.slice(0, -1)) / 100\n\n return {\n type: 'color',\n key,\n mix,\n }\n }\n\n if (isColorOpacityValue(segment1)) {\n const opacity = Number(segment1)\n\n return {\n type: 'color',\n key,\n opacity,\n }\n }\n\n return {\n type: 'color',\n key,\n }\n }\n\n if (isColorHueKey(segment0)) {\n const hue = segment0\n\n nextSegment = segments.shift() || ''\n\n const [segment1, segment1mix] = nextSegment.split(' ')\n\n if (isColorTintKey(segment1)) {\n const tint = segment1\n const segment2 = segments.shift() || ''\n\n if (isColorMixPercentValue(segment1mix)) {\n const mix = Number(segment1mix.slice(0, -1)) / 100\n\n return {\n type: 'color',\n hue,\n tint,\n mix,\n }\n }\n\n if (isColorOpacityValue(segment2)) {\n const opacity = Number(segment2)\n\n return {\n type: 'color',\n hue,\n tint,\n opacity,\n }\n }\n\n return {\n type: 'color',\n hue,\n tint,\n }\n }\n\n return {\n type: 'hue',\n value: hue,\n }\n }\n\n if (isColorBlendModeValue(segment0)) {\n const value = segment0\n\n return {\n type: 'blendMode',\n value,\n }\n }\n\n return undefined\n}\n","import {\n COLOR_CONFIG_CARD_KEYS,\n COLOR_CONFIG_CARD_TONES,\n COLOR_CONFIG_BLEND_KEYS,\n COLOR_CONFIG_STATE_KEYS,\n COLOR_CONFIG_STATE_TONES,\n ColorConfigCardKey,\n ColorConfigCardTone,\n ColorConfigBlendKey,\n ColorConfigOpacityValue,\n ColorConfigStateKey,\n ColorConfigStateTone,\n ColorConfigValue,\n} from './system'\nimport {parseTokenValue} from './tokens'\n\n/** @internal */\nexport function isColorConfigBaseTone(str: string): str is ColorConfigCardTone {\n return COLOR_CONFIG_CARD_TONES.includes(str as ColorConfigCardTone)\n}\n\n/** @internal */\nexport function isColorConfigBaseKey(str: string): str is ColorConfigCardKey {\n return COLOR_CONFIG_CARD_KEYS.includes(str as ColorConfigCardKey)\n}\n\n/** @internal */\nexport function isColorConfigStateKey(str: string): str is ColorConfigStateKey {\n return COLOR_CONFIG_STATE_KEYS.includes(str as ColorConfigStateKey)\n}\n\n/** @internal */\nexport function isColorConfigStateTone(str: string): str is ColorConfigStateTone {\n return COLOR_CONFIG_STATE_TONES.includes(str as ColorConfigStateTone)\n}\n\n/** @internal */\nexport function isColorConfigBlendKey(str: string): str is ColorConfigBlendKey {\n return COLOR_CONFIG_BLEND_KEYS.includes(str as ColorConfigBlendKey)\n}\n\n/** @internal */\nexport function isColorTokenValue(str: string): str is ColorConfigValue {\n return parseTokenValue(str)?.type === 'color' || parseTokenValue(str)?.type === 'hue'\n}\n\n/** @internal */\nexport function isColorValue(str: string): str is 'black' | 'white' {\n return str === 'black' || str === 'white'\n}\n\n/** @internal */\nexport function isColorOpacityValue(str: string): str is ColorConfigOpacityValue {\n return str === '0' || /^0\\.[0-9]+$/.test(str) || str === '1'\n}\n","import {TokenColorValueNode} from '../../config'\n\nexport function compileColorTokenValue(node: TokenColorValueNode): string {\n let key = ''\n\n if (node.key === 'black' || node.key === 'white') {\n key = node.key\n } else {\n key = `${node.hue}/${node.tint}`\n }\n\n if (node.mix !== undefined) {\n return `${key} ${node.mix * 100}%`\n }\n\n if (node.opacity !== undefined) {\n key += `/${node.opacity}`\n }\n\n return key\n}\n","import {ThemeColorTokenValue, parseTokenValue} from '../../config'\nimport {compileColorTokenValue} from './compileColorToken'\nimport {ColorTokenContext} from './types'\n\nconst DEFAULT_COLOR_TOKEN_VALUE: ThemeColorTokenValue = ['500', '500']\n\nexport function resolveColorTokenValue(\n context: ColorTokenContext,\n value: ThemeColorTokenValue = DEFAULT_COLOR_TOKEN_VALUE,\n): string {\n const {hue, scheme} = context\n const node = parseTokenValue(value[scheme === 'light' ? 0 : 1])\n\n if (!node || node.type !== 'color') {\n throw new Error(`Invalid color token: ${value[0]}`)\n }\n\n return compileColorTokenValue({...node, hue: node.hue || hue})\n}\n","import {ThemeColorTokens} from '../config'\n\nexport const defaultColorTokens: ThemeColorTokens = {\n base: {\n '*': {\n _blend: ['multiply', 'screen'],\n accent: {\n fg: ['purple/600', 'purple/400'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n backdrop: ['gray/200/0.5', 'black/0.5'],\n badge: {\n '*': {\n bg: ['100', '900'],\n fg: ['600', '400'],\n icon: ['500', '500'],\n dot: ['500', '500'],\n },\n positive: {\n bg: ['200 50%', '900'],\n fg: ['600', '500'],\n },\n caution: {\n bg: ['200 50%', '900'],\n fg: ['600', '500'],\n },\n },\n bg: ['50', '950'],\n border: ['200', '800'],\n code: {\n bg: ['50', '950'],\n fg: ['600', '400'],\n },\n fg: ['800', '200'],\n focusRing: ['blue/500', 'blue/500'],\n icon: ['600', '400'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['600', '400'],\n border: ['200', '800'],\n },\n link: {\n fg: ['blue/600', 'blue/300'],\n },\n muted: {\n bg: ['50', '950'],\n fg: ['700 75%', '300 75%'],\n },\n shadow: {\n outline: ['500/0.3', '500/0.4'],\n umbra: ['gray/500/0.1', 'black/0.2'],\n penumbra: ['gray/500/0.07', 'black/0.14'],\n ambient: ['gray/500/0.06', 'black/0.12'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n transparent: {\n bg: ['50', 'black'],\n },\n default: {\n bg: ['white', '950'],\n fg: ['800', '200'],\n muted: {\n fg: ['600', '400'],\n },\n },\n primary: {_hue: 'blue'},\n 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: ['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/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: ['700', '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 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 fg: ['300', '600'],\n muted: {\n bg: ['300', '600'],\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 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 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: ['100', '900'],\n fg: ['800', '200'],\n },\n selected: {\n bg: ['100', '900'],\n fg: ['800', '200'],\n },\n disabled: {\n _hue: 'gray',\n accent: {\n fg: ['200', '800'],\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: ['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 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 badge: {\n '*': {\n bg: ['100', '900'],\n fg: ['600', '400'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['white', 'black'],\n border: ['white/0', 'black/0'],\n code: {\n bg: ['50', '950'],\n fg: ['700 75%', '300 75%'],\n },\n fg: ['700', '300'],\n icon: ['700 75%', '300 75%'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['700', '300'],\n border: ['200', '800'],\n },\n link: {\n fg: ['blue/700 70%', 'blue/300 70%'],\n },\n muted: {\n bg: ['100', '950'],\n fg: ['700 75%', '300 75%'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n hovered: {\n bg: ['50', '950'],\n icon: ['700 70%', '400 70%'],\n },\n pressed: {\n bg: ['100', '900'],\n fg: ['800', '200'],\n icon: ['800 70%', '200 70%'],\n },\n selected: {\n bg: ['100', '900'],\n fg: ['800', '200'],\n icon: ['800 60%', '200 60%'],\n },\n disabled: {\n _hue: 'gray',\n accent: {\n fg: ['200', '800'],\n },\n 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', '800'],\n fg: ['black', '200'],\n muted: {\n bg: ['50', '950'],\n },\n placeholder: ['400', '600 50%'],\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 fg: ['200', '800'],\n border: ['100', '900'],\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 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: ['100', '950'],\n fg: ['700 75%', '300 75%'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n hovered: {\n bg: ['50', '950'],\n },\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: ['950', '50'],\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 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 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","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport {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 {ColorHueKey} from '@sanity/color'\nimport {\n ColorConfigCardTone,\n ColorConfigInputMode,\n ColorConfigInputState,\n ColorConfigStateTone,\n ThemeColorBaseTokens,\n ThemeColorButtonTokens,\n ThemeColorInputStateTokens,\n ThemeColorInputTokens,\n ThemeColorStateTokens,\n ThemeColorStatesTokens,\n ThemeColorTokens,\n} from '../config'\nimport {defaultColorTokens} from '../defaults/colorTokens'\nimport {\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_BUTTON_MODES,\n THEME_COLOR_INPUT_MODES,\n THEME_COLOR_INPUT_STATES,\n THEME_COLOR_STATES,\n THEME_COLOR_STATE_TONES,\n ThemeColorCardToneKey,\n ThemeColorButtonModeKey,\n ThemeColorStateKey,\n ThemeColorStateToneKey,\n} from '../system'\nimport {merge} from './merge'\n\n/**\n * Convert a tree of color tokens from a sparse format to a dense format.\n */\nexport function resolveColorTokens(inputTokens?: ThemeColorTokens): ThemeColorTokens {\n const tokens = merge(defaultColorTokens, inputTokens)\n\n return {\n base: resolveBaseColorTokens(tokens),\n button: resolveButtonColorTokens(tokens),\n input: resolveInputColorTokens(tokens),\n selectable: resolveSelectableColorTokens(tokens),\n syntax: tokens.syntax,\n }\n}\n\nfunction resolveBaseColorTokens(sparseTokens: ThemeColorTokens) {\n const tokens: Partial<Record<ColorConfigCardTone, ThemeColorBaseTokens>> = {}\n\n // base tones\n for (const tone of THEME_COLOR_CARD_TONES) {\n tokens[tone] = resolveBaseColorTones(sparseTokens, tone)\n }\n\n return tokens\n}\n\nfunction resolveBaseColorTones(\n inputTokens: ThemeColorTokens,\n tone: ThemeColorCardToneKey,\n): ThemeColorBaseTokens {\n const spec = merge(inputTokens?.base?.['*'], inputTokens?.base?.[tone])\n\n const hue = spec._hue || inputTokens?.base?.[tone]?._hue || 'gray'\n\n return {\n ...spec,\n _hue: hue,\n avatar: {\n gray: merge({_hue: 'gray'}, spec.avatar?.['*'], spec.avatar?.gray),\n blue: merge({_hue: 'blue'}, spec.avatar?.['*'], spec.avatar?.blue),\n purple: merge({_hue: 'purple'}, spec.avatar?.['*'], spec.avatar?.purple),\n magenta: merge({_hue: 'magenta'}, spec.avatar?.['*'], spec.avatar?.magenta),\n red: merge({_hue: 'red'}, spec.avatar?.['*'], spec.avatar?.red),\n orange: merge({_hue: 'orange'}, spec.avatar?.['*'], spec.avatar?.orange),\n yellow: merge({_hue: 'yellow'}, spec.avatar?.['*'], spec.avatar?.yellow),\n green: merge({_hue: 'green'}, spec.avatar?.['*'], spec.avatar?.green),\n cyan: merge({_hue: 'cyan'}, spec.avatar?.['*'], spec.avatar?.cyan),\n },\n badge: {\n default: {\n _hue: inputTokens?.base?.default?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.default,\n },\n primary: {\n _hue: inputTokens?.base?.primary?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.primary,\n },\n positive: {\n _hue: inputTokens?.base?.positive?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.positive,\n },\n caution: {\n _hue: inputTokens?.base?.caution?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.caution,\n },\n critical: {\n _hue: inputTokens?.base?.critical?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.critical,\n },\n },\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: {\n gray: merge({_hue: 'gray'}, spec.avatar?.['*'], spec.avatar?.gray),\n blue: merge({_hue: 'blue'}, spec.avatar?.['*'], spec.avatar?.blue),\n purple: merge({_hue: 'purple'}, spec.avatar?.['*'], spec.avatar?.purple),\n magenta: merge({_hue: 'magenta'}, spec.avatar?.['*'], spec.avatar?.magenta),\n red: merge({_hue: 'red'}, spec.avatar?.['*'], spec.avatar?.red),\n orange: merge({_hue: 'orange'}, spec.avatar?.['*'], spec.avatar?.orange),\n yellow: merge({_hue: 'yellow'}, spec.avatar?.['*'], spec.avatar?.yellow),\n green: merge({_hue: 'green'}, spec.avatar?.['*'], spec.avatar?.green),\n cyan: merge({_hue: 'cyan'}, spec.avatar?.['*'], spec.avatar?.cyan),\n },\n badge: {\n default: {\n _hue: inputTokens?.base?.default?._hue,\n ...spec.badge?.['*'],\n ...spec.badge?.default,\n },\n primary: {\n _hue: inputTokens?.base?.primary?._hue,\n ...spec.badge?.['*'],\n ...spec.badge?.primary,\n },\n positive: {\n _hue: inputTokens?.base?.positive?._hue,\n ...spec.badge?.['*'],\n ...spec.badge?.positive,\n },\n caution: {\n _hue: inputTokens?.base?.caution?._hue,\n ...spec.badge?.['*'],\n ...spec.badge?.caution,\n },\n critical: {\n _hue: inputTokens?.base?.critical?._hue,\n ...spec.badge?.['*'],\n ...spec.badge?.critical,\n },\n },\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: {\n gray: merge({_hue: 'gray'}, spec.avatar?.['*'], spec.avatar?.gray),\n blue: merge({_hue: 'blue'}, spec.avatar?.['*'], spec.avatar?.blue),\n purple: merge({_hue: 'purple'}, spec.avatar?.['*'], spec.avatar?.purple),\n magenta: merge({_hue: 'magenta'}, spec.avatar?.['*'], spec.avatar?.magenta),\n red: merge({_hue: 'red'}, spec.avatar?.['*'], spec.avatar?.red),\n orange: merge({_hue: 'orange'}, spec.avatar?.['*'], spec.avatar?.orange),\n yellow: merge({_hue: 'yellow'}, spec.avatar?.['*'], spec.avatar?.yellow),\n green: merge({_hue: 'green'}, spec.avatar?.['*'], spec.avatar?.green),\n cyan: merge({_hue: 'cyan'}, spec.avatar?.['*'], spec.avatar?.cyan),\n },\n badge: {\n default: {\n _hue: inputTokens?.base?.default?._hue,\n ...spec.badge?.['*'],\n ...spec.badge?.default,\n },\n primary: {\n _hue: inputTokens?.base?.primary?._hue,\n ...spec.badge?.['*'],\n ...spec.badge?.primary,\n },\n positive: {\n _hue: inputTokens?.base?.positive?._hue,\n ...spec.badge?.['*'],\n ...spec.badge?.positive,\n },\n caution: {\n _hue: inputTokens?.base?.caution?._hue,\n ...spec.badge?.['*'],\n ...spec.badge?.caution,\n },\n critical: {\n _hue: inputTokens?.base?.critical?._hue,\n ...spec.badge?.['*'],\n ...spec.badge?.critical,\n },\n },\n }\n}\n","import {ThemeColorBadgeTokens, ThemeColorStateTokens, ThemeConfig} from '../config'\nimport {\n THEME_COLOR_BUTTON_MODES,\n THEME_COLOR_STATES,\n THEME_COLOR_STATE_TONES,\n ThemeColorAvatarColorKey,\n ThemeColorCardToneKey,\n ThemeColorButtonModeKey,\n ThemeColorStateKey,\n ThemeColorStateToneKey,\n ThemeColorAvatar_v2,\n ThemeColorBadge_v2,\n ThemeColorSyntax,\n ThemeColorSchemes_v2,\n ThemeColorScheme_v2,\n ThemeColorCard_v2,\n ThemeColorSchemeKey,\n ThemeColorShadow,\n ThemeColorState_v2,\n ThemeColorButton_v2,\n ThemeColorButtonMode_v2,\n ThemeColorButtonTone_v2,\n ThemeColorAvatarHue_v2,\n ThemeColorInput_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n} from '../system'\nimport {ColorTokenContext, resolveColorTokenValue as _color} from './colorToken'\nimport {resolveColorTokens} from './resolveColorTokens'\n\nexport function buildColorTheme(config?: ThemeConfig): ThemeColorSchemes_v2 {\n const resolvedConfig: ThemeConfig = {\n ...config,\n color: resolveColorTokens(config?.color),\n }\n\n return {\n light: buildColorScheme({scheme: 'light'}, resolvedConfig),\n dark: buildColorScheme({scheme: 'dark'}, resolvedConfig),\n }\n}\n\nfunction buildColorScheme(\n options: {scheme: ThemeColorSchemeKey},\n config: ThemeConfig,\n): ThemeColorScheme_v2 {\n const {scheme} = options\n\n return {\n transparent: buildCardColorTheme({scheme, tone: 'transparent'}, config),\n default: buildCardColorTheme({scheme, tone: 'default'}, config),\n primary: buildCardColorTheme({scheme, tone: 'primary'}, config),\n positive: buildCardColorTheme({scheme, tone: 'positive'}, config),\n caution: buildCardColorTheme({scheme, tone: 'caution'}, config),\n critical: buildCardColorTheme({scheme, tone: 'critical'}, config),\n }\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}, 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}, 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 return {\n default: _buildBadgeColorTheme(tokens, {scheme, tone: 'default'}, config),\n primary: _buildBadgeColorTheme(tokens, {scheme, tone: 'primary'}, config),\n positive: _buildBadgeColorTheme(tokens, {scheme, tone: 'positive'}, config),\n caution: _buildBadgeColorTheme(tokens, {scheme, tone: 'caution'}, config),\n critical: _buildBadgeColorTheme(tokens, {scheme, tone: 'critical'}, config),\n }\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},\n config?: ThemeConfig,\n): ThemeColorButton_v2 {\n const {scheme} = options\n\n const modes: Partial<ThemeColorButton_v2> = {}\n\n for (const mode of THEME_COLOR_BUTTON_MODES) {\n modes[mode] = buildButtonTonesColorTheme({scheme, mode}, config)\n }\n\n return modes as ThemeColorButton_v2\n}\n\nfunction buildButtonTonesColorTheme(\n options: {\n scheme: ThemeColorSchemeKey\n mode: ThemeColorButtonModeKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonMode_v2 {\n const {mode, scheme} = options\n\n const tones: Partial<ThemeColorButtonMode_v2> = {}\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n tones[tone] = buildButtonStatesColorTheme({mode, scheme, tone}, config)\n }\n\n return tones as ThemeColorButtonMode_v2\n}\n\nfunction buildButtonStatesColorTheme(\n options: {\n mode: ThemeColorButtonModeKey\n scheme: ThemeColorSchemeKey\n tone: ThemeColorStateToneKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonTone_v2 {\n const {mode, scheme, tone} = options\n\n const states: Partial<ThemeColorButtonTone_v2> = {}\n\n for (const state of THEME_COLOR_STATES) {\n states[state] = buildButtonStateColorTheme({mode, tone, scheme, state}, config)\n }\n\n return states as ThemeColorButtonTone_v2\n}\n\nfunction buildButtonStateColorTheme(\n options: {\n mode: ThemeColorButtonModeKey\n tone: ThemeColorStateToneKey\n scheme: ThemeColorSchemeKey\n state: ThemeColorStateKey\n },\n config?: ThemeConfig,\n): ThemeColorState_v2 {\n const {mode, tone, scheme, state} = options\n const tokens = config?.color?.button?.[mode]?.[tone]?.[state]\n const hue = tokens?._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', tone}, config),\n hovered: buildInputStateColorTheme({mode, scheme, state: 'hovered', tone}, config),\n readOnly: buildInputStateColorTheme({mode, scheme, state: 'readOnly', tone}, config),\n disabled: buildInputStateColorTheme({mode, scheme, state: 'disabled', tone}, config),\n }\n}\n\nfunction buildInputStateColorTheme(\n options: {\n mode: 'default' | 'invalid'\n scheme: ThemeColorSchemeKey\n state: 'enabled' | 'hovered' | 'readOnly' | 'disabled'\n tone: ThemeColorCardToneKey\n },\n config?: ThemeConfig,\n): ThemeColorInputState_v2 {\n const {mode, tone, scheme, state} = options\n const tokens = config?.color?.input?.[mode]?.[state]\n const hue = tokens?._hue || config?.color?.base?.[tone]?._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 },\n config?: ThemeConfig,\n): ThemeColorButtonMode_v2 {\n const {scheme} = options\n\n const tones: Partial<ThemeColorButtonMode_v2> = {}\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n tones[tone] = buildSelectableStatesColorTheme({scheme, tone}, config)\n }\n\n return tones as ThemeColorButtonMode_v2\n}\n\nfunction buildSelectableStatesColorTheme(\n options: {\n scheme: ThemeColorSchemeKey\n tone: ThemeColorStateToneKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonTone_v2 {\n const {scheme, tone} = options\n\n const states: Partial<ThemeColorButtonTone_v2> = {}\n\n for (const state of THEME_COLOR_STATES) {\n states[state] = buildSelectableStateColorTheme({tone, scheme, state}, config)\n }\n\n return states as ThemeColorButtonTone_v2\n}\n\nfunction buildSelectableStateColorTheme(\n options: {\n scheme: ThemeColorSchemeKey\n state: ThemeColorStateKey\n tone: ThemeColorStateToneKey\n },\n config?: ThemeConfig,\n): ThemeColorState_v2 {\n const {scheme, state, tone} = options\n const tokens = config?.color?.selectable?.[tone]?.[state]\n const hue = tokens?._hue || 'gray'\n const blendMode = tokens?._blend || ['screen', 'multiply']\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n accent: {\n fg: _color(context, tokens?.accent?.fg),\n },\n avatar: buildAvatarColorTheme({scheme}, tokens),\n badge: buildBadgeColorTheme(tokens?.badge, {scheme}, config),\n bg: _color(context, tokens?.bg),\n border: _color(context, tokens?.border),\n code: {\n bg: _color(context, tokens?.code?.bg),\n fg: _color(context, tokens?.code?.fg),\n },\n fg: _color(context, tokens?.fg),\n icon: _color(context, tokens?.icon),\n muted: {\n bg: _color(context, tokens?.muted?.bg),\n fg: _color(context, tokens?.muted?.fg),\n },\n kbd: {\n bg: _color(context, tokens?.kbd?.bg),\n fg: _color(context, tokens?.kbd?.fg),\n border: _color(context, tokens?.kbd?.border),\n },\n link: {\n fg: _color(context, tokens?.link?.fg),\n },\n skeleton: {\n from: _color(context, tokens?.skeleton?.from),\n to: _color(context, tokens?.skeleton?.to),\n },\n }\n}\n\nfunction buildSyntaxColorTheme(\n options: {scheme: ThemeColorSchemeKey},\n config?: ThemeConfig,\n): ThemeColorSyntax {\n const {scheme} = options\n const tokens = config?.color?.syntax\n const context: ColorTokenContext = {hue: 'gray', scheme}\n\n return {\n atrule: _color(context, tokens?.atrule),\n attrName: _color(context, tokens?.attrName),\n attrValue: _color(context, tokens?.attrValue),\n attribute: _color(context, tokens?.attribute),\n boolean: _color(context, tokens?.boolean),\n builtin: _color(context, tokens?.builtin),\n cdata: _color(context, tokens?.cdata),\n char: _color(context, tokens?.char),\n class: _color(context, tokens?.class),\n className: _color(context, tokens?.className),\n comment: _color(context, tokens?.comment),\n constant: _color(context, tokens?.constant),\n deleted: _color(context, tokens?.deleted),\n doctype: _color(context, tokens?.doctype),\n entity: _color(context, tokens?.entity),\n function: _color(context, tokens?.function),\n hexcode: _color(context, tokens?.hexcode),\n id: _color(context, tokens?.id),\n important: _color(context, tokens?.important),\n inserted: _color(context, tokens?.inserted),\n keyword: _color(context, tokens?.keyword),\n number: _color(context, tokens?.number),\n operator: _color(context, tokens?.operator),\n prolog: _color(context, tokens?.prolog),\n property: _color(context, tokens?.property),\n pseudoClass: _color(context, tokens?.pseudoClass),\n pseudoElement: _color(context, tokens?.pseudoElement),\n punctuation: _color(context, tokens?.punctuation),\n regex: _color(context, tokens?.regex),\n selector: _color(context, tokens?.selector),\n string: _color(context, tokens?.string),\n symbol: _color(context, tokens?.symbol),\n tag: _color(context, tokens?.tag),\n unit: _color(context, tokens?.unit),\n url: _color(context, tokens?.url),\n variable: _color(context, tokens?.variable),\n }\n}\n","import {color} from '@sanity/color'\n\nimport {ThemeColorPalette} from '../config'\n\nexport const defaultColorPalette: ThemeColorPalette = color\n","import {RGB, RGBA} from '../types'\n\nfunction mixChannel(b: number, s: number, weight: number) {\n const diff = s - b\n\n const delta = diff * weight\n\n return b + delta\n}\n\n/**\n * Apply the \\`mix\\` blend mode\n * @internal\n */\nexport function mix(b: RGB | RGBA, s: RGB | RGBA, weight: number): RGB {\n return {\n r: mixChannel(b.r, s.r, weight),\n g: mixChannel(b.g, s.g, weight),\n b: mixChannel(b.b, s.b, weight),\n }\n}\n","import {RGB, RGBA} from '../types'\n\nfunction multiplyChannel(b: number, s: number) {\n return b * s\n}\n\n/**\n * Apply the \\`multiply\\` blend mode\n * Source: https://www.w3.org/TR/compositing-1/#blendingmultiply\n * @internal\n */\nexport function multiply(b: RGB | RGBA, s: RGB | RGBA): RGB {\n return {\n r: multiplyChannel(b.r / 255, s.r / 255) * 255,\n g: multiplyChannel(b.g / 255, s.g / 255) * 255,\n b: multiplyChannel(b.b / 255, s.b / 255) * 255,\n }\n}\n","import {RGB, RGBA} from '../types'\n\nfunction screenChannel(b: number, s: number) {\n return b + s - b * s\n}\n\n/**\n * Apply the \\`screen\\` blend mode\n * Source: https://www.w3.org/TR/compositing-1/#blendingscreen\n * @internal\n */\nexport function screen(b: RGB | RGBA, s: RGB | RGBA): RGB {\n return {\n r: screenChannel(b.r / 255, s.r / 255) * 255,\n g: screenChannel(b.g / 255, s.g / 255) * 255,\n b: screenChannel(b.b / 255, s.b / 255) * 255,\n }\n}\n","export function lerp(x: number, y: number, a: number): number {\n return x * (1 - a) + y * a\n}\n\nexport function invlerp(x: number, y: number, a: number): number {\n return clamp((a - x) / (y - x))\n}\n\nexport function clamp(a: number, min = 0, max = 1): number {\n return Math.min(max, Math.max(min, a))\n}\n\nexport function range(x1: number, y1: number, x2: number, y2: number, a: number): number {\n return lerp(x2, y2, invlerp(x1, y1, a))\n}\n\nexport function round(value: number): number {\n return Math.round(value)\n}\n","import {clamp, round} from '../utils'\nimport {HSL, RGB, RGBA} from './types'\n\n/**\n * @internal\n */\nexport function hexToRgb(hex: string): RGB {\n if (hex.length === 4) {\n const hexR = hex.slice(1, 2)\n const hexG = hex.slice(2, 3)\n const hexB = hex.slice(3, 4)\n\n return {\n r: parseInt(hexR + hexR, 16),\n g: parseInt(hexG + hexG, 16),\n b: parseInt(hexB + hexB, 16),\n }\n }\n\n return {\n r: parseInt(hex.slice(1, 3), 16),\n g: parseInt(hex.slice(3, 5), 16),\n b: parseInt(hex.slice(5, 7), 16),\n }\n}\n\n/**\n * @internal\n */\nexport function rgbaToRGBA(rgba: string): RGBA {\n const values = rgba.replace(/rgba\\(|\\)/g, '').split(',')\n\n return {\n r: parseInt(values[0]),\n g: parseInt(values[1]),\n b: parseInt(values[2]),\n a: parseFloat(values[3]),\n }\n}\n\n/**\n * @internal\n */\nexport function rgbToHex(color: RGB | RGBA): string {\n const r = round(clamp(Math.round(color.r), 0, 255))\n const g = round(clamp(Math.round(color.g), 0, 255))\n const b = round(clamp(Math.round(color.b), 0, 255))\n\n if ('a' in color) {\n return `rgba(${r},${g},${b},${color.a})`\n }\n\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n}\n\n/**\n * @internal\n * @see https://css-tricks.com/converting-color-spaces-in-javascript/\n */\nexport function rgbToHsl({r, g, b}: RGB): HSL {\n // Make r, g, and b fractions of 1\n r /= 255\n g /= 255\n b /= 255\n\n // Find greatest and smallest channel values\n const cmin = Math.min(r, g, b)\n const cmax = Math.max(r, g, b)\n const delta = cmax - cmin\n\n let h = 0\n let s = 0\n let l = 0\n\n // Calculate hue\n // No difference\n if (delta == 0) h = 0\n // Red is max\n else if (cmax == r) h = ((g - b) / delta) % 6\n // Green is max\n else if (cmax == g) h = (b - r) / delta + 2\n // Blue is max\n else h = (r - g) / delta + 4\n\n h = Math.round(h * 60)\n\n // Make negative hues positive behind 360°\n if (h < 0) h += 360\n\n // Calculate lightness\n l = (cmax + cmin) / 2\n\n // Calculate saturation\n s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1))\n\n // Multiply l and s by 100\n s = +(s * 100).toFixed(1)\n l = +(l * 100).toFixed(1)\n\n return {h, s, l}\n}\n\n/**\n * @internal\n */\nexport function hslToRgb(hsl: HSL): RGB {\n // Must be fractions of 1\n const s = hsl.s / 100\n const l = hsl.l / 100\n\n const c = (1 - Math.abs(2 * l - 1)) * s\n const x = c * (1 - Math.abs(((hsl.h / 60) % 2) - 1))\n const m = l - c / 2\n\n let r = 0\n let g = 0\n let b = 0\n\n if (0 <= hsl.h && hsl.h < 60) {\n r = c\n g = x\n b = 0\n } else if (60 <= hsl.h && hsl.h < 120) {\n r = x\n g = c\n b = 0\n } else if (120 <= hsl.h && hsl.h < 180) {\n r = 0\n g = c\n b = x\n } else if (180 <= hsl.h && hsl.h < 240) {\n r = 0\n g = x\n b = c\n } else if (240 <= hsl.h && hsl.h < 300) {\n r = x\n g = 0\n b = c\n } else if (300 <= hsl.h && hsl.h < 360) {\n r = c\n g = 0\n b = x\n }\n\n return {\n r: Math.round((r + m) * 255),\n g: Math.round((g + m) * 255),\n b: Math.round((b + m) * 255),\n }\n}\n","import {hexToRgb, hslToRgb, rgbaToRGBA} from './convert'\nimport {HSL, RGB, RGBA} from './types'\n\nconst HEX_CHARS = '0123456789ABCDEFabcdef'\n\nconst HSL_RE = /hsl\\(\\s*(\\d+)\\s*,\\s*((\\d+(?:\\.\\d+)?)%)\\s*,\\s*((\\d+(?:\\.\\d+)?)%)\\s*\\)/i\n\nfunction isHexChars(str: string) {\n for (const c of str) {\n if (HEX_CHARS.indexOf(c) === -1) {\n return false\n }\n }\n\n return true\n}\n\nfunction isHex(str: string) {\n if (str[0] !== '#') return false\n\n // Accept both #000 and #000000\n if (!(str.length === 4 || str.length === 7)) return false\n\n return isHexChars(str.slice(1))\n}\n\nfunction parseHsl(str: string): HSL {\n const res = HSL_RE.exec(str)\n\n if (!res) {\n throw new Error(`parseHsl: string is not a HSL color: \"${str}\"`)\n }\n\n return {h: parseInt(res[1]), s: parseFloat(res[3]), l: parseFloat(res[5])}\n}\n\n/**\n * @internal\n */\nexport function parseColor(color: unknown): RGB | RGBA {\n if (!color) return {r: 0, g: 0, b: 0}\n\n if (typeof color !== 'string') {\n throw new Error('parseColor: expected a string')\n }\n\n if (isHex(color)) {\n return hexToRgb(color)\n }\n\n if (color.startsWith('hsl(')) {\n return hslToRgb(parseHsl(color))\n }\n\n if (color.startsWith('rgba(')) {\n return rgbaToRGBA(color)\n }\n\n throw new Error(`parseColor: unexpected color format: \"${color}\"`)\n}\n","import {parseColor} from './parse'\nimport {RGB, RGBA} from './types'\n\n/** @internal */\nexport function getContrastRatio(bg: string, fg: string): number {\n const rgb1 = parseColor(bg) // bg: RGB | RGBA, fg: RGB | RGBA\n const rgb2 = parseColor(fg)\n\n // convert the two colors from sRGB to linear-light RGB\n const c1 = rgb_lrgb(rgb1)\n const c2 = rgb_lrgb(rgb2)\n\n // compute the relative luminances\n const l1 = lrgb_luminance(c1)\n const l2 = lrgb_luminance(c2)\n\n // compute the contrast ratio\n return (Math.max(l1, l2) + 0.05) / (Math.min(l1, l2) + 0.05)\n}\n\nfunction rgb_lrgb({r, g, b}: RGB | RGBA): [number, number, number] {\n return [rgb_lrgb1(r / 255), rgb_lrgb1(g / 255), rgb_lrgb1(b / 255)]\n}\n\nfunction rgb_lrgb1(v: number) {\n return v <= 0.04045 ? v / 12.92 : ((v + 0.055) / 1.055) ** 2.4\n}\n\nfunction lrgb_luminance([r, g, b]: [number, number, number]) {\n return 0.2126 * r + 0.7152 * g + 0.0722 * b\n}\n","import {parseColor} from './parse'\n\n/**\n * @internal\n */\nexport function rgba(color: unknown, a: number): string {\n const rgb = parseColor(color)\n\n return `rgba(${rgb.r},${rgb.g},${rgb.b},${a})`\n}\n","import {RGB, multiply, parseColor, rgbToHex, screen} from './lib/color-fns'\nimport {clamp, range} from './lib/utils'\n\nconst RGB_RANGE: [number, number] = [0, 255]\n\nexport function mixThemeColor(\n value: string,\n options: {\n bg?: string\n blendMode: 'multiply' | 'screen'\n black: string\n white: string\n },\n): string {\n const {blendMode} = options\n\n const color = parseColor(value)\n const black = parseColor(options.black)\n const white = parseColor(options.white)\n\n const bg = options.bg ? parseColor(options.bg) : blendMode === 'multiply' ? white : black\n\n const paletteRange: {r: [number, number]; g: [number, number]; b: [number, number]} = {\n r: [black.r, white.r],\n g: [black.g, white.g],\n b: [black.b, white.b],\n }\n\n const convertedBgColor: RGB = {\n r: clamp(range(...paletteRange.r, ...RGB_RANGE, bg.r), ...RGB_RANGE),\n g: clamp(range(...paletteRange.g, ...RGB_RANGE, bg.g), ...RGB_RANGE),\n b: clamp(range(...paletteRange.b, ...RGB_RANGE, bg.b), ...RGB_RANGE),\n }\n\n const convertedColor: RGB = {\n r: clamp(range(...paletteRange.r, ...RGB_RANGE, color.r), ...RGB_RANGE),\n g: clamp(range(...paletteRange.g, ...RGB_RANGE, color.g), ...RGB_RANGE),\n b: clamp(range(...paletteRange.b, ...RGB_RANGE, color.b), ...RGB_RANGE),\n }\n\n const resultColor =\n blendMode === 'multiply'\n ? multiply(convertedBgColor, convertedColor)\n : screen(convertedBgColor, convertedColor)\n\n const v: RGB = {\n r: clamp(range(...RGB_RANGE, ...paletteRange.r, resultColor.r), ...paletteRange.r),\n g: clamp(range(...RGB_RANGE, ...paletteRange.g, resultColor.g), ...paletteRange.g),\n b: clamp(range(...RGB_RANGE, ...paletteRange.b, resultColor.b), ...paletteRange.b),\n }\n\n return rgbToHex(v)\n}\n","import {ColorTint as ColorPaletteValue} from '@sanity/color'\nimport {ThemeColorPalette, parseTokenValue} from '../config'\nimport {ThemeColorBlendModeKey} from '../system'\nimport {hexToRgb, mix, rgbToHex, rgba} from './lib/color-fns'\nimport {mixThemeColor} from './mixThemeColor'\n\nexport interface RenderColorValueOptions {\n bg?: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n}\n\nexport function renderColorValue(str: string, options: RenderColorValueOptions): string {\n const {bg, blendMode, colorPalette} = options\n\n if (bg === 'white') {\n throw new Error('Cannot blend with white background')\n }\n\n const node = parseTokenValue(str)\n\n if (!node || node.type !== 'color') {\n throw new Error(`Invalid color token value: ${str}`)\n }\n\n let hex = ''\n\n if (node.key === 'black') {\n hex = renderColorHex(colorPalette.black)\n }\n\n if (node.key === 'white') {\n hex = renderColorHex(colorPalette.white)\n }\n\n if (node.hue && node.tint) {\n hex = renderColorHex(colorPalette[node.hue][node.tint])\n }\n\n if (!hex) {\n throw new Error(`Invalid color token value: ${str}`)\n }\n\n const hexBeforeMix = hex\n\n const mixOptions = {\n blendMode,\n bg,\n black: renderColorHex(colorPalette.black),\n // opacity: node.opacity,\n white: renderColorHex(colorPalette.white),\n }\n\n try {\n hex = mixThemeColor(hex, mixOptions)\n\n if (bg && node.mix !== undefined) {\n const from = hexToRgb(bg)\n const to = hexToRgb(hex)\n\n hex = rgbToHex(mix(from, to, node.mix))\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.warn('could not blend', hex, mixOptions)\n throw err\n }\n\n if (hex === '#aN') {\n // eslint-disable-next-line no-console\n console.warn(`invalid color token value: ${str}`)\n hex = hexBeforeMix\n }\n\n if (node.opacity !== undefined) {\n hex = rgba(hex, node.opacity)\n }\n\n return hex\n}\n\nfunction renderColorHex(color: string | ColorPaletteValue) {\n return typeof color === 'string' ? color : color.hex\n}\n","import {ThemeColorPalette, ThemeConfig} from '../config'\nimport {defaultColorPalette} from '../defaults/colorPalette'\nimport {\n ThemeColorAvatar_v2,\n ThemeColorBadgeTone_v2,\n ThemeColorBadge_v2,\n ThemeColorBlendModeKey,\n ThemeColorButtonMode_v2,\n ThemeColorButtonTone_v2,\n ThemeColorButton_v2,\n ThemeColorCardToneKey,\n ThemeColorCard_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n ThemeColorInput_v2,\n ThemeColorKBD,\n ThemeColorScheme_v2,\n ThemeColorSchemes_v2,\n ThemeColorSelectableTone_v2,\n ThemeColorSelectable_v2,\n ThemeColorShadow,\n ThemeColorState_v2,\n ThemeColorSyntax,\n} from '../system'\nimport {RenderColorValueOptions, renderColorValue} from './renderColorValue'\n\nexport function renderThemeColorSchemes(\n value: ThemeColorSchemes_v2,\n config?: ThemeConfig,\n): ThemeColorSchemes_v2 {\n const colorPalette = config?.palette ?? defaultColorPalette\n\n return {\n light: renderThemeColorScheme(colorPalette, value.light),\n dark: renderThemeColorScheme(colorPalette, value.dark),\n }\n}\n\nfunction renderThemeColorScheme(\n colorPalette: ThemeColorPalette,\n value: ThemeColorScheme_v2,\n): ThemeColorScheme_v2 {\n const toneEntries = Object.entries(value) as [ThemeColorCardToneKey, ThemeColorCard_v2][]\n\n const [, transparentTone] = toneEntries.find(([k]) => k === 'transparent')!\n const [, defaultTone] = toneEntries.find(([k]) => k === 'default')!\n\n // The `transparent` and `default` tones are special cases, so we render them first\n // (rendered without a `bg` option).\n // But the rest of the tones are rendered on top of the `default` tone's `bg`.\n const renderedTransparentTone = renderThemeColor(transparentTone, {colorPalette})\n const renderedDefaultTone = renderThemeColor(defaultTone, {colorPalette})\n\n // Get the `default` tone's `bg` property\n const bg = renderedDefaultTone.bg\n\n if (bg === 'white') {\n throw new Error('Cannot blend with white background')\n }\n\n return Object.fromEntries([\n ['transparent', renderedTransparentTone],\n ['default', renderedDefaultTone],\n ...toneEntries\n .filter(([k]) => k !== 'default' && k !== 'transparent')\n .map(([k, v]) => [k, renderThemeColor(v, {bg, colorPalette})]),\n ]) as ThemeColorScheme_v2\n}\n\nfunction renderThemeColor(\n value: ThemeColorCard_v2,\n options: {\n bg?: string\n colorPalette: ThemeColorPalette\n },\n): ThemeColorCard_v2 {\n const {colorPalette, bg} = options\n const blendMode = value._blend || 'multiply'\n const baseBg = renderColorValue(value.bg, {colorPalette, bg, blendMode})\n const colorOptions: RenderColorValueOptions = {colorPalette, bg: baseBg, blendMode}\n\n const button = renderThemeColorButton(value.button, {\n baseBg,\n blendMode,\n colorPalette,\n })\n\n const selectable = renderThemeColorSelectable(value.selectable, {\n colorPalette,\n baseBg,\n blendMode,\n })\n\n const shadow: ThemeColorShadow = {\n outline: renderColorValue(value.shadow.outline, colorOptions),\n umbra: renderColorValue(value.shadow.umbra, {\n ...colorOptions,\n bg: undefined,\n colorPalette: {...colorPalette, black: '#000000'},\n }),\n penumbra: renderColorValue(value.shadow.penumbra, {\n ...colorOptions,\n bg: undefined,\n colorPalette: {...colorPalette, black: '#000000'},\n }),\n ambient: renderColorValue(value.shadow.ambient, {\n ...colorOptions,\n bg: undefined,\n colorPalette: {...colorPalette, black: '#000000'},\n }),\n }\n\n return {\n _blend: blendMode,\n _dark: value._dark,\n accent: {\n fg: renderColorValue(value.accent.fg, colorOptions),\n },\n avatar: renderThemeColorAvatar(value.avatar, {baseBg, colorPalette, blendMode}),\n backdrop: renderColorValue(value.backdrop, colorOptions),\n badge: renderThemeColorBadge(value.badge, {baseBg, colorPalette, blendMode}),\n bg: baseBg,\n border: renderColorValue(value.border, colorOptions),\n button,\n code: {\n bg: renderColorValue(value.code.bg, colorOptions),\n fg: renderColorValue(value.code.fg, colorOptions),\n },\n fg: renderColorValue(value.fg, colorOptions),\n focusRing: renderColorValue(value.focusRing, colorOptions),\n icon: renderColorValue(value.icon, colorOptions),\n input: renderThemeColorInput(value.input, {baseBg, colorPalette, blendMode}),\n kbd: renderThemeColorKBD(value.kbd, {baseBg, colorPalette, blendMode}),\n link: {\n fg: renderColorValue(value.link.fg, colorOptions),\n },\n muted: {\n bg: renderColorValue(value.muted.bg, colorOptions),\n fg: renderColorValue(value.muted.fg, colorOptions),\n },\n shadow,\n skeleton: {\n from: renderColorValue(value.skeleton.from, colorOptions),\n to: renderColorValue(value.skeleton.to, colorOptions),\n },\n syntax: renderSyntaxColorTheme(value.syntax, {baseBg, colorPalette, blendMode}),\n selectable,\n }\n}\n\nfunction renderThemeColorKBD(\n value: ThemeColorKBD,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorKBD {\n const {baseBg, blendMode, colorPalette} = options\n\n const rootOptions: RenderColorValueOptions = {\n bg: baseBg,\n blendMode,\n colorPalette,\n }\n\n const bg = renderColorValue(value.bg, rootOptions)\n\n const colorOptions: RenderColorValueOptions = {\n bg,\n blendMode,\n colorPalette,\n }\n\n return {\n bg,\n fg: renderColorValue(value.fg, colorOptions),\n border: renderColorValue(value.border, colorOptions),\n }\n}\n\nfunction renderThemeColorAvatar(\n value: ThemeColorAvatar_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorAvatar_v2 {\n return {\n gray: renderThemeColorAvatarColor(value.gray, options),\n blue: renderThemeColorAvatarColor(value.blue, options),\n purple: renderThemeColorAvatarColor(value.purple, options),\n magenta: renderThemeColorAvatarColor(value.magenta, options),\n red: renderThemeColorAvatarColor(value.red, options),\n orange: renderThemeColorAvatarColor(value.orange, options),\n yellow: renderThemeColorAvatarColor(value.yellow, options),\n green: renderThemeColorAvatarColor(value.green, options),\n cyan: renderThemeColorAvatarColor(value.cyan, options),\n }\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 return {\n default: renderThemeColorBadgeColor(value.default, options),\n primary: renderThemeColorBadgeColor(value.primary, options),\n positive: renderThemeColorBadgeColor(value.positive, options),\n caution: renderThemeColorBadgeColor(value.caution, options),\n critical: renderThemeColorBadgeColor(value.critical, options),\n }\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 = value._blend || 'multiply'\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 return {\n default: renderThemeColorButtonStates(value.default, options),\n primary: renderThemeColorButtonStates(value.primary, options),\n positive: renderThemeColorButtonStates(value.positive, options),\n caution: renderThemeColorButtonStates(value.caution, options),\n critical: renderThemeColorButtonStates(value.critical, options),\n }\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, 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 return {\n default: renderThemeColorSelectableStates(value.default, options),\n primary: renderThemeColorSelectableStates(value.primary, options),\n positive: renderThemeColorSelectableStates(value.positive, options),\n caution: renderThemeColorSelectableStates(value.caution, options),\n critical: renderThemeColorSelectableStates(value.critical, options),\n }\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 {defaultThemeConfig} from './defaults/config'\nimport {RootTheme, RootTheme_v2, Theme, ThemeColorCardToneKey, ThemeColorSchemeKey} from './system'\nimport {is_v2, v0_v2, v2_v0} from './versioning'\n\n// cache[scheme][tone][rootTheme] = theme\nconst cache = new Map<\n ThemeColorSchemeKey,\n Map<ThemeColorCardToneKey, WeakMap<RootTheme | RootTheme_v2, Theme>>\n>()\n\n/** @internal */\nexport function getScopedTheme(\n themeProp: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n): Theme {\n const cachedTheme = _getCachedTheme(themeProp, scheme, tone)\n\n if (cachedTheme) return cachedTheme\n\n const v0 = is_v2(themeProp) ? v2_v0(themeProp) : themeProp\n const v2 = is_v2(themeProp) ? themeProp : v0_v2(themeProp)\n\n const colorScheme_v0 = v0.color[scheme] || v0.color.light\n const color_v0 = colorScheme_v0[tone] || colorScheme_v0.default\n const layer_v0 = v0.layer || defaultThemeConfig.layer\n\n const colorScheme_v2 = v2.color[scheme] || v2.color.light\n const color_v2 = colorScheme_v2[tone] || colorScheme_v2.default\n const layer_v2 = v2.layer || defaultThemeConfig.layer\n\n const theme: Theme = {\n sanity: {\n ...v0,\n color: color_v0,\n layer: layer_v0,\n v2: {\n ...v2,\n _resolved: true,\n color: color_v2,\n layer: layer_v2,\n },\n },\n }\n\n _setCachedTheme(themeProp, scheme, tone, theme)\n\n return theme\n}\n\nfunction _getCachedTheme(\n rootTheme: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n) {\n const schemeCache = cache.get(scheme)\n\n if (!schemeCache) return undefined\n\n const toneCache = schemeCache.get(tone)\n\n if (!toneCache) return undefined\n\n return toneCache.get(rootTheme)\n}\n\nfunction _setCachedTheme(\n rootTheme: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n theme: Theme,\n) {\n if (!cache.has(scheme)) cache.set(scheme, new Map())\n\n const schemeCache = cache.get(scheme)!\n\n if (!schemeCache.has(tone)) schemeCache.set(tone, new WeakMap())\n\n const toneCache = schemeCache.get(tone)!\n\n toneCache.set(rootTheme, theme)\n}\n"],"names":["color","cache","mix","_color","tones","rgba","black","white"],"mappings":"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"}
|