@sanity/ui 3.0.0-static.27 → 3.0.0-static.28
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/README.md +1 -1
- package/dist/_chunks-cjs/_visual-editing.cjs +710 -840
- package/dist/_chunks-cjs/_visual-editing.cjs.map +1 -1
- package/dist/_chunks-cjs/refractor.cjs +2 -2
- package/dist/_chunks-cjs/refractor.cjs.map +1 -1
- package/dist/_chunks-es/_visual-editing.js +705 -834
- package/dist/_chunks-es/_visual-editing.js.map +1 -1
- package/dist/_chunks-es/refractor.js +1 -1
- package/dist/css/layers.css +4 -0
- package/dist/css/primitives/popover/popover.css +4 -0
- package/dist/css.cjs +58 -49
- package/dist/css.cjs.map +1 -1
- package/dist/css.d.cts +13 -5
- package/dist/css.d.ts +13 -5
- package/dist/css.js +58 -49
- package/dist/css.js.map +1 -1
- package/dist/index.cjs +2006 -1824
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +1 -0
- package/dist/index.d.cts +34 -17
- package/dist/index.d.ts +34 -17
- package/dist/index.js +2002 -1821
- package/dist/index.js.map +1 -1
- package/dist/theme.cjs +7 -7
- package/dist/theme.cjs.map +1 -1
- package/dist/theme.js +7 -7
- package/dist/theme.js.map +1 -1
- package/exports/_visual-editing.ts +1 -1
- package/package.json +10 -15
- package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +2 -2
- package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +1 -1
- package/src/core/components/autocomplete/autocomplete.tsx +13 -17
- package/src/core/components/autocomplete/autocompleteOption.tsx +1 -1
- package/src/core/components/autocomplete/constants.ts +3 -1
- package/src/core/components/autocomplete/types.ts +1 -1
- package/src/core/components/breadcrumbs/breadcrumbs.tsx +8 -3
- package/src/core/components/dialog/__workshop__/activate.tsx +11 -3
- package/src/core/components/dialog/__workshop__/panes.tsx +12 -5
- package/src/core/components/dialog/dialog.tsx +12 -6
- package/src/core/components/dialog/dialogCard.tsx +89 -54
- package/src/core/components/dialog/dialogContext.ts +1 -1
- package/src/core/components/dialog/dialogProvider.tsx +1 -1
- package/src/core/components/dialog/index.ts +1 -0
- package/src/core/components/dialog/isTargetWithinScope.ts +1 -1
- package/src/core/components/hotkeys/hotkeys.tsx +3 -2
- package/src/core/components/menu/__workshop__/avatarMenu.tsx +12 -6
- package/src/core/components/menu/__workshop__/customSelectedState.tsx +1 -5
- package/src/core/components/menu/__workshop__/shouldFocus.tsx +1 -2
- package/src/core/components/menu/helpers.ts +1 -1
- package/src/core/components/menu/menu.tsx +6 -3
- package/src/core/components/menu/menuButton.tsx +5 -3
- package/src/core/components/menu/menuDivider.tsx +1 -1
- package/src/core/components/menu/menuGroup.tsx +8 -4
- package/src/core/components/menu/menuItem.tsx +4 -2
- package/src/core/components/tab/tab.tsx +2 -2
- package/src/core/components/tab/tabList.tsx +2 -2
- package/src/core/components/tab/tabPanel.tsx +2 -2
- package/src/core/components/toast/toast.tsx +7 -2
- package/src/core/components/toast/toastLayer.tsx +3 -2
- package/src/core/components/toast/toastProvider.tsx +1 -1
- package/src/core/components/tree/tree.tsx +2 -2
- package/src/core/components/tree/treeGroup.tsx +2 -2
- package/src/core/components/tree/treeItem.tsx +13 -6
- package/src/core/components/tree/types.ts +0 -1
- package/src/core/components/virtualList/virtualList.tsx +10 -5
- package/src/core/helpers/focus.ts +0 -8
- package/src/core/hooks/useArrayProp.ts +1 -1
- package/src/core/hooks/useElementRect/__workshop__/example.tsx +1 -3
- package/src/core/hooks/useElementSize.ts +1 -1
- package/src/core/hooks/useResponsiveProp.ts +1 -1
- package/src/core/index.ts +83 -7
- package/src/core/observers/{elementSizeObserver.ts → elementSize.ts} +1 -1
- package/src/core/primitives/_selectable/index.ts +1 -0
- package/src/core/primitives/_selectable/selectable.tsx +13 -3
- package/src/core/{types/selectable.ts → primitives/_selectable/types.ts} +1 -1
- package/src/core/primitives/arrow/arrow.tsx +1 -1
- package/src/core/primitives/avatar/avatar.tsx +4 -3
- package/src/core/primitives/avatar/avatarCounter.tsx +3 -3
- package/src/core/primitives/avatar/avatarStack.tsx +4 -4
- package/src/core/primitives/avatar/types.ts +17 -0
- package/src/core/primitives/badge/badge.tsx +2 -1
- package/src/core/primitives/badge/types.ts +11 -2
- package/src/core/primitives/box/__workshop__/responsive.tsx +0 -1
- package/src/core/primitives/box/box.tsx +1 -1
- package/src/core/primitives/box/index.ts +1 -0
- package/src/core/primitives/button/__workshop__/disabled.tsx +37 -51
- package/src/core/primitives/button/__workshop__/index.ts +5 -0
- package/src/core/primitives/button/__workshop__/textOverflow.tsx +13 -0
- package/src/core/primitives/button/button.tsx +15 -14
- package/src/core/primitives/button/index.ts +1 -0
- package/src/core/primitives/card/__workshop__/listNavigation.tsx +2 -2
- package/src/core/primitives/card/card.tsx +1 -1
- package/src/core/primitives/card/types.ts +3 -0
- package/src/core/primitives/checkbox/__workshop__/tones.tsx +9 -1
- package/src/core/primitives/checkbox/checkbox.tsx +3 -4
- package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +17 -42
- package/src/core/primitives/code/code.tsx +1 -1
- package/src/core/primitives/container/container.tsx +1 -1
- package/src/core/primitives/flex/flex.tsx +1 -1
- package/src/core/primitives/flex/index.ts +1 -0
- package/src/core/primitives/grid/grid.tsx +1 -1
- package/src/core/primitives/grid/index.ts +1 -0
- package/src/core/primitives/heading/heading.tsx +1 -1
- package/src/core/primitives/inline/inline.tsx +1 -1
- package/src/core/primitives/kbd/kbd.tsx +1 -1
- package/src/core/primitives/label/label.tsx +1 -1
- package/src/core/primitives/layer/layer.test.tsx +1 -1
- package/src/core/primitives/layer/layer.tsx +2 -2
- package/src/core/primitives/layer/layerCard.tsx +3 -3
- package/src/core/primitives/layer/layerProvider.tsx +2 -1
- package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +12 -10
- package/src/core/primitives/popover/__workshop__/TestStory.tsx +9 -8
- package/src/core/primitives/popover/constants.ts +1 -1
- package/src/core/primitives/popover/floating-ui/size.ts +1 -1
- package/src/core/primitives/popover/popover.tsx +7 -4
- package/src/core/primitives/popover/popoverLayer.tsx +2 -1
- package/src/core/primitives/popover/types.ts +5 -0
- package/src/core/primitives/radio/radio.tsx +2 -2
- package/src/core/primitives/select/select.tsx +2 -2
- package/src/core/{components → primitives}/skeleton/__workshop__/index.ts +1 -1
- package/src/core/{components → primitives}/skeleton/codeSkeleton.tsx +1 -1
- package/src/core/{components → primitives}/skeleton/headingSkeleton.tsx +1 -1
- package/src/core/{components → primitives}/skeleton/labelSkeleton.tsx +1 -1
- package/src/core/{components → primitives}/skeleton/skeleton.tsx +7 -8
- package/src/core/{components → primitives}/skeleton/textSkeleton.tsx +1 -1
- package/src/core/primitives/spinner/spinner.tsx +1 -1
- package/src/core/primitives/srOnly/srOnly.tsx +1 -1
- package/src/core/primitives/stack/stack.tsx +1 -1
- package/src/core/primitives/switch/switch.tsx +1 -6
- package/src/core/primitives/text/__workshop__/colored.tsx +2 -2
- package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +17 -42
- package/src/core/primitives/text/text.tsx +3 -1
- package/src/core/primitives/textArea/__workshop__/plain.tsx +2 -2
- package/src/core/primitives/textArea/textArea.tsx +2 -2
- package/src/core/primitives/textInput/textInput.tsx +3 -2
- package/src/core/primitives/tooltip/constants.ts +1 -1
- package/src/core/primitives/tooltip/tooltip.tsx +5 -3
- package/src/core/primitives/tooltip/tooltipLayer.tsx +1 -1
- package/src/core/primitives/types.ts +8 -10
- package/src/core/types/radius.ts +1 -1
- package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +9 -5
- package/src/core/utils/elementQuery/elementQuery.tsx +2 -2
- package/src/core/utils/portal/portal.tsx +1 -1
- package/src/css/components/dialog/dialog.css.ts +26 -1
- package/src/css/components/dialog/dialog.ts +27 -7
- package/src/css/components/skeleton/skeleton.ts +3 -1
- package/src/css/components/skeleton/types.ts +3 -1
- package/src/css/index.ts +75 -5
- package/src/css/primitives/_input/input.ts +2 -1
- package/src/css/primitives/_input/types.ts +2 -1
- package/src/css/primitives/_selectable/_selectable.css.ts +32 -24
- package/src/css/primitives/_selectable/selectable.ts +1 -1
- package/src/css/primitives/_selectable/types.ts +1 -1
- package/src/css/primitives/avatar/avatar.css.ts +8 -4
- package/src/css/primitives/avatar/avatar.ts +1 -1
- package/src/css/primitives/badge/types.ts +0 -2
- package/src/css/primitives/box/box.ts +35 -37
- package/src/css/primitives/box/types.ts +34 -36
- package/src/css/primitives/button/button.css.ts +4 -0
- package/src/css/primitives/button/button.ts +5 -2
- package/src/css/primitives/button/types.ts +4 -11
- package/src/css/primitives/card/__workshop__/color.tsx +70 -0
- package/src/css/primitives/card/__workshop__/index.ts +14 -0
- package/src/css/primitives/card/card.css.ts +4 -0
- package/src/css/primitives/code/code.ts +3 -1
- package/src/css/primitives/code/types.ts +2 -1
- package/src/css/primitives/container/container.ts +3 -1
- package/src/css/primitives/heading/heading.ts +4 -1
- package/src/css/primitives/heading/types.ts +3 -1
- package/src/css/primitives/kbd/kbd.ts +1 -1
- package/src/css/primitives/kbd/types.ts +1 -1
- package/src/css/primitives/label/label.ts +4 -1
- package/src/css/primitives/label/types.ts +3 -1
- package/src/css/primitives/switch/switch.css.ts +1 -1
- package/src/css/primitives/text/text.ts +6 -1
- package/src/css/primitives/text/types.ts +5 -2
- package/src/theme/v3/defaultFonts.ts +6 -6
- package/src/theme/v3/defaultTokens.ts +1 -1
- package/bin/sanity-ui.cjs +0 -5
- package/dist/ui.css +0 -1
- package/src/cli/buildCommand.ts +0 -10
- package/src/cli/index.ts +0 -26
- package/src/core/components/autocomplete/index.ts +0 -2
- package/src/core/components/index.ts +0 -10
- package/src/core/helpers/index.ts +0 -5
- package/src/core/hooks/index.ts +0 -13
- package/src/core/observers/index.ts +0 -2
- package/src/core/primitives/index.ts +0 -30
- package/src/core/types/avatar.ts +0 -16
- package/src/core/types/card.ts +0 -4
- package/src/core/types/index.ts +0 -15
- package/src/core/types/popover.ts +0 -4
- package/src/core/utils/index.ts +0 -4
- package/src/css/__theme/index.ts +0 -16
- package/src/css/__theme/lib/contract/buildVarContract.ts +0 -78
- package/src/css/__theme/lib/contract/index.ts +0 -4
- package/src/css/__theme/lib/contract/types.ts +0 -17
- package/src/css/__theme/resolveTheme.ts +0 -865
- package/src/css/components/index.ts +0 -6
- package/src/css/primitives/index.ts +0 -24
- package/src/css/props/index.ts +0 -37
- package/src/css/utils/srOnly/index.ts +0 -1
- /package/src/core/{global.ts → __DEV__.ts} +0 -0
- /package/src/core/{types/dialog.ts → components/dialog/types.ts} +0 -0
- /package/src/core/observers/{resizeObserver.ts → resize.ts} +0 -0
- /package/src/core/{types/badge.ts → primitives/badge/types2.ts} +0 -0
- /package/src/core/{types/box.ts → primitives/box/types.ts} +0 -0
- /package/src/core/{types/button.ts → primitives/button/types.ts} +0 -0
- /package/src/core/{types/flex.ts → primitives/flex/types.ts} +0 -0
- /package/src/core/{types/grid.ts → primitives/grid/types.ts} +0 -0
- /package/src/core/{components → primitives}/skeleton/__workshop__/delay.tsx +0 -0
- /package/src/core/{components → primitives}/skeleton/__workshop__/skeleton.tsx +0 -0
- /package/src/core/{components → primitives}/skeleton/index.ts +0 -0
- /package/src/core/types/{text.ts → textAlign.ts} +0 -0
- /package/src/css/{utils → primitives/srOnly}/index.ts +0 -0
- /package/src/css/{utils → primitives}/srOnly/srOnly.css.ts +0 -0
- /package/src/css/{utils → primitives}/srOnly/srOnly.ts +0 -0
package/dist/theme.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.cjs","sources":["../src/theme/v2/defaults/config.ts","../src/theme/versioning/is_v2.ts","../src/theme/versioning/themeColor_v2_v2_9.ts","../src/theme/versioning/themeColor_v0_v2.ts","../src/theme/versioning/v0_v2.ts","../src/theme/versioning/v2_v0.ts","../src/theme/getScopedTheme.ts","../src/theme/v2/build/_deprecated/color/_selectable/createSelectableTones.ts","../src/theme/v2/build/_deprecated/color/_solid/createSolidTones.ts","../src/theme/v2/build/_deprecated/color/button/createButtonTones.ts","../src/theme/v2/build/_deprecated/color/button/createButtonModes.ts","../src/theme/v2/build/_deprecated/color/card/createCardStates.ts","../src/theme/v2/build/_deprecated/color/defaults.ts","../src/theme/v2/build/_deprecated/color/input/createInputModes.ts","../src/theme/v2/build/_deprecated/color/muted/createMuted.ts","../src/theme/v2/build/_deprecated/color/spot/createSpot.ts","../src/theme/v2/build/_deprecated/color/factory.ts","../src/theme/v2/defaults/fonts.ts","../src/theme/v2/color/_constants.ts","../src/theme/v2/color/_helpers.ts","../src/theme/v2/config/system.ts","../src/theme/v2/config/helpers.ts","../src/theme/v2/config/tokens/parseTokenValue.ts","../src/theme/v2/build/colorToken/compileColorToken.ts","../src/theme/v2/build/colorToken/colorToken.ts","../src/theme/v2/defaults/colorTokens.ts","../src/theme/v2/build/lib/isRecord.ts","../src/theme/v2/build/merge.ts","../src/theme/v2/build/resolveColorTokens.ts","../src/theme/v2/build/buildColorTheme.ts","../src/theme/v2/defaults/colorPalette.ts","../src/theme/v2/build/lib/color-fns/blend/mix.ts","../src/theme/v2/build/lib/color-fns/blend/multiply.ts","../src/theme/v2/build/lib/color-fns/blend/screen.ts","../src/theme/v2/build/lib/utils.ts","../src/theme/v2/build/lib/color-fns/convert.ts","../src/theme/v2/build/lib/color-fns/parse.ts","../src/theme/v2/build/lib/color-fns/contrastRatio.ts","../src/theme/v2/build/lib/color-fns/rgba.ts","../src/theme/v2/build/mixThemeColor.ts","../src/theme/v2/build/renderColorValue.ts","../src/theme/v2/build/renderColorTheme.ts","../src/theme/v2/build/buildTheme.ts","../src/theme/v3/_constants.ts","../src/theme/v3/palette/constants.ts","../src/theme/v3/_parseColorToken.ts","../src/theme/v3/defaultFonts.ts","../src/theme/v3/defaultTokens.ts","../src/theme/v3/merge.ts","../src/theme/v3/resolveTokens.ts","../src/theme/v3/buildTheme_v3.ts","../src/theme/v3/color/_constants.ts","../src/theme/versioning/getTheme_v2.ts"],"sourcesContent":["import type {RootTheme_v2} from '../theme'\n\nconst BORDER_WIDTH = 1\nconst OUTLINE_WIDTH = 0.5\n\nexport const defaultThemeConfig: Omit<RootTheme_v2, 'color' | 'font'> = {\n _version: 2,\n avatar: {\n sizes: [\n {distance: -4, size: 19},\n {distance: -4, size: 25},\n {distance: -8, size: 33},\n {distance: -12, size: 49},\n ],\n focusRing: {offset: 1, width: 1},\n },\n button: {\n textWeight: 'medium',\n border: {width: BORDER_WIDTH},\n focusRing: {offset: -1, width: 1},\n },\n card: {\n border: {width: BORDER_WIDTH},\n focusRing: {offset: -1, width: 1},\n shadow: {outline: OUTLINE_WIDTH},\n },\n container: [320, 640, 960, 1280, 1600, 1920],\n media: [360, 600, 900, 1200, 1800, 2400],\n layer: {\n dialog: {zOffset: 600},\n popover: {zOffset: 400},\n tooltip: {zOffset: 200},\n },\n radius: [0, 1, 3, 7, 11, 15, 23, 43, 75, 127],\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 type {RootTheme} from '../types'\nimport type {RootTheme_v2} from '../v2'\n\n/** @internal */\nexport function is_v2(themeProp: RootTheme | RootTheme_v2): themeProp is RootTheme_v2 {\n return themeProp._version === 2\n}\n","import type {ThemeColorCard_v2} from '../v2'\n\n/**\n * Apply `neutral` and `suggest` if they're not already part of the color object,\n * as this was introduced in v2.9, but is not compatible with v2.0.\n *\n * @param color - The color object to upgrade\n * @returns The upgraded color object. Returns as-is if already upgraded.\n * @internal\n */\nexport function themeColor_v0_v2_9(color: ThemeColorCard_v2): ThemeColorCard_v2 {\n if ('neutral' in color.badge) {\n return color // Already at >= v2.9\n }\n\n // TypeScript narrows to `never` because the above should always be true\n const colors = color as ThemeColorCard_v2\n\n return {\n ...colors,\n badge: {\n ...colors.badge,\n neutral: colors.badge.default,\n suggest: colors.badge.primary,\n },\n button: {\n bleed: {\n ...colors.button.bleed,\n neutral: colors.button.bleed.default,\n suggest: colors.button.bleed.primary,\n },\n default: {\n ...colors.button.default,\n neutral: colors.button.default.default,\n suggest: colors.button.default.primary,\n },\n ghost: {\n ...colors.button.ghost,\n neutral: colors.button.ghost.default,\n suggest: colors.button.ghost.primary,\n },\n },\n selectable: {\n ...colors.selectable,\n neutral: colors.selectable.default,\n suggest: colors.selectable.primary,\n },\n }\n}\n","import type {\n ThemeColor,\n ThemeColorGenericState,\n ThemeColorInputState,\n ThemeColorInputStates,\n ThemeColorMuted,\n} from '../v0'\nimport type {\n ThemeColorCard_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n ThemeColorSelectable_v2,\n ThemeColorState_v2,\n} from '../v2'\n\nconst cache = new WeakMap<ThemeColor, ThemeColorCard_v2>()\n\n/** @internal */\nexport function themeColor_v0_v2(color_v0: ThemeColor): ThemeColorCard_v2 {\n const cached_v2 = cache.get(color_v0)\n\n if (cached_v2) return cached_v2\n\n const base = stateThemeColor_v0_v2(color_v0, color_v0.card.enabled)\n\n const color_v2: ThemeColorCard_v2 = {\n _blend: color_v0._blend || (color_v0.dark ? 'screen' : 'multiply'),\n _dark: color_v0.dark,\n accent: base.accent,\n avatar: base.avatar,\n backdrop: color_v0.base.shadow.ambient,\n badge: base.badge,\n bg: color_v0.base.bg,\n border: color_v0.base.border,\n button: {\n default: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.default),\n ghost: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.ghost),\n bleed: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.bleed),\n },\n code: base.code,\n fg: color_v0.base.fg,\n focusRing: color_v0.base.focusRing,\n icon: base.muted.fg,\n input: {\n default: inputStatesThemeColor_v0_v2(color_v0.input.default),\n invalid: inputStatesThemeColor_v0_v2(color_v0.input.invalid),\n },\n kbd: base.kbd,\n link: base.link,\n muted: {\n ...base.muted,\n bg: color_v0.selectable?.default.enabled.bg2 || color_v0.base.bg,\n },\n selectable: stateTonesThemeColor_v0_v2(color_v0, color_v0.selectable || color_v0.muted),\n shadow: color_v0.base.shadow,\n skeleton: {\n from: color_v0.skeleton?.from || color_v0.base.border,\n to: color_v0.skeleton?.to || color_v0.base.border,\n },\n syntax: color_v0.syntax,\n }\n\n cache.set(color_v0, color_v2)\n\n return color_v2\n}\n\nfunction stateTonesThemeColor_v0_v2(\n v0: ThemeColor,\n t: Omit<ThemeColorMuted, 'transparent'>,\n): ThemeColorSelectable_v2 {\n return {\n default: {\n enabled: stateThemeColor_v0_v2(v0, t.default.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.default.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.default.pressed),\n selected: stateThemeColor_v0_v2(v0, t.default.selected),\n disabled: stateThemeColor_v0_v2(v0, t.default.disabled),\n },\n neutral: {\n enabled: stateThemeColor_v0_v2(v0, t.default.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.default.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.default.pressed),\n selected: stateThemeColor_v0_v2(v0, t.default.selected),\n disabled: stateThemeColor_v0_v2(v0, t.default.disabled),\n },\n primary: {\n enabled: stateThemeColor_v0_v2(v0, t.primary.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.primary.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.primary.pressed),\n selected: stateThemeColor_v0_v2(v0, t.primary.selected),\n disabled: stateThemeColor_v0_v2(v0, t.primary.disabled),\n },\n suggest: {\n enabled: stateThemeColor_v0_v2(v0, t.primary.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.primary.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.primary.pressed),\n selected: stateThemeColor_v0_v2(v0, t.primary.selected),\n disabled: stateThemeColor_v0_v2(v0, t.primary.disabled),\n },\n positive: {\n enabled: stateThemeColor_v0_v2(v0, t.positive.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.positive.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.positive.pressed),\n selected: stateThemeColor_v0_v2(v0, t.positive.selected),\n disabled: stateThemeColor_v0_v2(v0, t.positive.disabled),\n },\n caution: {\n enabled: stateThemeColor_v0_v2(v0, t.caution.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.caution.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.caution.pressed),\n selected: stateThemeColor_v0_v2(v0, t.caution.selected),\n disabled: stateThemeColor_v0_v2(v0, t.caution.disabled),\n },\n critical: {\n enabled: stateThemeColor_v0_v2(v0, t.critical.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.critical.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.critical.pressed),\n selected: stateThemeColor_v0_v2(v0, t.critical.selected),\n disabled: stateThemeColor_v0_v2(v0, t.critical.disabled),\n },\n }\n}\n\nfunction stateThemeColor_v0_v2(v0: ThemeColor, state: ThemeColorGenericState): ThemeColorState_v2 {\n return {\n ...state,\n avatar: {\n gray: {\n bg: v0.spot.gray,\n fg: v0.base.bg,\n },\n blue: {\n bg: v0.spot.blue,\n fg: v0.base.bg,\n },\n purple: {\n bg: v0.spot.purple,\n fg: v0.base.bg,\n },\n magenta: {\n bg: v0.spot.magenta,\n fg: v0.base.bg,\n },\n red: {\n bg: v0.spot.red,\n fg: v0.base.bg,\n },\n orange: {\n bg: v0.spot.orange,\n fg: v0.base.bg,\n },\n yellow: {\n bg: v0.spot.yellow,\n fg: v0.base.bg,\n },\n green: {\n bg: v0.spot.green,\n fg: v0.base.bg,\n },\n cyan: {\n bg: v0.spot.cyan,\n fg: v0.base.bg,\n },\n },\n badge: {\n default: {\n bg: v0.muted.default.enabled.bg,\n fg: v0.muted.default.enabled.fg,\n dot: v0.muted.default.enabled.muted.fg,\n icon: v0.muted.default.enabled.muted.fg,\n },\n neutral: {\n bg: v0.muted.transparent.enabled.bg,\n fg: v0.muted.transparent.enabled.fg,\n dot: v0.muted.transparent.enabled.muted.fg,\n icon: v0.muted.transparent.enabled.muted.fg,\n },\n primary: {\n bg: v0.muted.primary.enabled.bg,\n fg: v0.muted.primary.enabled.fg,\n dot: v0.muted.primary.enabled.muted.fg,\n icon: v0.muted.primary.enabled.muted.fg,\n },\n suggest: {\n bg: v0.muted.primary.enabled.bg,\n fg: v0.muted.primary.enabled.fg,\n dot: v0.muted.primary.enabled.muted.fg,\n icon: v0.muted.primary.enabled.muted.fg,\n },\n positive: {\n bg: v0.muted.positive.enabled.bg,\n fg: v0.muted.positive.enabled.fg,\n dot: v0.muted.positive.enabled.muted.fg,\n icon: v0.muted.positive.enabled.muted.fg,\n },\n caution: {\n bg: v0.muted.caution.enabled.bg,\n fg: v0.muted.caution.enabled.fg,\n dot: v0.muted.caution.enabled.muted.fg,\n icon: v0.muted.caution.enabled.muted.fg,\n },\n critical: {\n bg: v0.muted.critical.enabled.bg,\n fg: v0.muted.critical.enabled.fg,\n dot: v0.muted.critical.enabled.muted.fg,\n icon: v0.muted.critical.enabled.muted.fg,\n },\n },\n kbd: {\n bg: v0.muted.default.enabled.bg,\n fg: v0.muted.default.enabled.fg,\n border: v0.muted.default.enabled.border,\n },\n muted: {\n ...v0.muted.default.enabled.muted,\n bg: state.bg2 || state.bg,\n },\n skeleton: {\n from: state.skeleton?.from || state.border,\n to: state.skeleton?.to || state.border,\n },\n }\n}\n\nfunction inputStatesThemeColor_v0_v2(states: ThemeColorInputStates): ThemeColorInputMode_v2 {\n return {\n enabled: inputStateThemeColor_v0_v2(states.enabled),\n disabled: inputStateThemeColor_v0_v2(states.disabled),\n readOnly: inputStateThemeColor_v0_v2(states.readOnly),\n hovered: inputStateThemeColor_v0_v2(states.hovered),\n }\n}\n\nfunction inputStateThemeColor_v0_v2(state: ThemeColorInputState): ThemeColorInputState_v2 {\n return {\n bg: state.bg,\n border: state.border,\n fg: state.fg,\n muted: {\n bg: state.bg2,\n },\n placeholder: state.placeholder,\n }\n}\n","import type {RootTheme} from '../types'\nimport type {RootTheme_v2} from '../v2'\nimport {defaultThemeConfig} from '../v2/defaults/config'\nimport {themeColor_v0_v2} from './themeColor_v0_v2'\n\nconst cache = new WeakMap<RootTheme, RootTheme_v2>()\n\n/** @internal */\nexport function v0_v2(v0: RootTheme): RootTheme_v2 {\n if (v0.v2) return v0.v2\n\n const cached_v2 = cache.get(v0)\n\n if (cached_v2) return cached_v2\n\n const {\n avatar,\n button,\n color,\n container,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusRing: _unused_focusRing,\n fonts: font,\n input,\n layer,\n media,\n radius,\n shadows: shadow,\n space,\n styles: style,\n } = v0\n\n const v2: RootTheme_v2 = {\n _version: 2,\n avatar: {\n ...defaultThemeConfig.avatar,\n ...avatar,\n },\n button: {\n ...defaultThemeConfig.button,\n ...button,\n },\n card: defaultThemeConfig.card,\n color: {\n light: {\n transparent: themeColor_v0_v2(color.light.transparent),\n default: themeColor_v0_v2(color.light.default),\n neutral: themeColor_v0_v2(color.light.transparent),\n primary: themeColor_v0_v2(color.light.primary),\n suggest: themeColor_v0_v2(color.light.primary),\n positive: themeColor_v0_v2(color.light.positive),\n caution: themeColor_v0_v2(color.light.caution),\n critical: themeColor_v0_v2(color.light.critical),\n },\n dark: {\n transparent: themeColor_v0_v2(color.dark.transparent),\n default: themeColor_v0_v2(color.dark.default),\n neutral: themeColor_v0_v2(color.dark.transparent),\n primary: themeColor_v0_v2(color.dark.primary),\n suggest: themeColor_v0_v2(color.dark.primary),\n positive: themeColor_v0_v2(color.dark.positive),\n caution: themeColor_v0_v2(color.dark.caution),\n critical: themeColor_v0_v2(color.dark.critical),\n },\n },\n container,\n font,\n input: {\n ...defaultThemeConfig.input,\n ...input,\n checkbox: {\n ...defaultThemeConfig.input.checkbox,\n ...input.checkbox,\n },\n radio: {\n ...defaultThemeConfig.input.radio,\n ...input.radio,\n },\n switch: {\n ...defaultThemeConfig.input.switch,\n ...input.switch,\n },\n },\n layer: layer ?? defaultThemeConfig.layer,\n media,\n radius,\n shadow,\n space,\n style,\n }\n\n cache.set(v0, v2)\n\n return v2\n}\n","import type {RootTheme} from '../types'\nimport type {ThemeColor, ThemeColorInputState, ThemeColorInputStates} from '../v0'\nimport type {\n RootTheme_v2,\n ThemeColorCard_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n} from '../v2'\nimport type {Theme_v3} from '../v3'\n\nconst cache = new WeakMap<RootTheme_v2, RootTheme>()\n\n/** @internal */\nexport function v2_v0(v2: RootTheme_v2, v3?: Theme_v3): 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 v3,\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 type {RootTheme, Theme} from './types'\nimport type {ThemeColor} from './v0'\nimport type {RootTheme_v2, ThemeColorCardToneKey, ThemeColorSchemeKey} from './v2'\nimport {defaultThemeConfig} from './v2/defaults/config'\nimport {is_v2} from './versioning/is_v2'\nimport {themeColor_v0_v2_9} from './versioning/themeColor_v2_v2_9'\nimport {v0_v2} from './versioning/v0_v2'\nimport {v2_v0} from './versioning/v2_v0'\n\n// cache[scheme][tone][rootTheme] = theme\nconst cache = new Map<\n ThemeColorSchemeKey,\n Map<ThemeColorCardToneKey, WeakMap<RootTheme | RootTheme_v2, Theme>>\n>()\n\n/** @internal */\nexport function getScopedTheme(\n themeProp: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n): Theme {\n const cachedTheme = _getCachedTheme(themeProp, scheme, tone)\n\n if (cachedTheme) return cachedTheme\n\n const v0 = is_v2(themeProp) ? v2_v0(themeProp) : themeProp\n const v2 = is_v2(themeProp) ? themeProp : v0_v2(themeProp)\n\n const colorScheme_v0 = v0.color[scheme] || v0.color.light\n const color_v0 = (colorScheme_v0 as Record<string, ThemeColor>)[tone] || colorScheme_v0.default\n const layer_v0 = v0.layer || defaultThemeConfig.layer\n\n const colorScheme_v2 = v2.color[scheme] || v2.color.light\n const color_v2 = colorScheme_v2[tone] || colorScheme_v2.default\n const color_v2_9 = themeColor_v0_v2_9(color_v2)\n const layer_v2 = v2.layer || defaultThemeConfig.layer\n\n const theme: Theme = {\n sanity: {\n ...v0,\n color: color_v0,\n layer: layer_v0,\n v2: {\n ...v2,\n _resolved: true,\n color: color_v2_9,\n layer: layer_v2,\n },\n },\n }\n\n _setCachedTheme(themeProp, scheme, tone, theme)\n\n return theme\n}\n\nfunction _getCachedTheme(\n rootTheme: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n) {\n const schemeCache = cache.get(scheme)\n\n if (!schemeCache) return undefined\n\n const toneCache = schemeCache.get(tone)\n\n if (!toneCache) return undefined\n\n return toneCache.get(rootTheme)\n}\n\nfunction _setCachedTheme(\n rootTheme: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n theme: Theme,\n) {\n if (!cache.has(scheme)) cache.set(scheme, new Map())\n\n const schemeCache = cache.get(scheme)!\n\n if (!schemeCache.has(tone)) schemeCache.set(tone, new WeakMap())\n\n const toneCache = schemeCache.get(tone)!\n\n toneCache.set(rootTheme, theme)\n}\n","import type {\n ThemeColorBase,\n ThemeColorMuted,\n ThemeColorSelectable,\n ThemeColorSelectableStates,\n ThemeColorSolid,\n} from '../../../../../v0'\nimport type {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 type {ThemeColorBase, ThemeColorName, ThemeColorSolid} from '../../../../../v0'\nimport type {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 type {\n ThemeColorBase,\n ThemeColorButtonTones,\n ThemeColorMuted,\n ThemeColorSolid,\n} from '../../../../../v0'\nimport type {ThemeColorButtonModeKey} from '../../../../color'\nimport type {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 type {\n ThemeColorBase,\n ThemeColorButton,\n ThemeColorMuted,\n ThemeColorSolid,\n} from '../../../../../v0'\nimport type {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 type {\n ThemeColorBase,\n ThemeColorCard,\n ThemeColorMuted,\n ThemeColorName,\n ThemeColorSolid,\n} from '../../../../../v0'\nimport type {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 type {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 type {\n ThemeColorBase,\n ThemeColorInput,\n ThemeColorMuted,\n ThemeColorSolid,\n} from '../../../../../v0'\nimport type {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 type {ThemeColorBase, ThemeColorMuted, ThemeColorName} from '../../../../../v0'\nimport type {ThemeColorBuilderOpts} from '../factory'\n\nexport function createMutedTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n): ThemeColorMuted {\n return {\n default: {\n enabled: opts.muted({base, dark, tone: 'default', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'default', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'default', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'default', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'default', name, state: 'selected'}),\n },\n transparent: {\n enabled: opts.muted({base, dark, tone: 'transparent', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'transparent', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'transparent', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'transparent', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'transparent', name, state: 'selected'}),\n },\n primary: {\n enabled: opts.muted({base, dark, tone: 'primary', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'primary', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'primary', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'primary', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'primary', name, state: 'selected'}),\n },\n positive: {\n enabled: opts.muted({base, dark, tone: 'positive', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'positive', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'positive', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'positive', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'positive', name, state: 'selected'}),\n },\n caution: {\n enabled: opts.muted({base, dark, tone: 'caution', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'caution', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'caution', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'caution', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'caution', name, state: 'selected'}),\n },\n critical: {\n enabled: opts.muted({base, dark, tone: 'critical', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'critical', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'critical', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'critical', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'critical', name, state: 'selected'}),\n },\n }\n}\n","import type {ThemeColorBase, ThemeColorSpot} from '../../../../../v0'\nimport type {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 type {\n ThemeColor,\n ThemeColorBase,\n ThemeColorButtonStates,\n ThemeColorGenericState,\n ThemeColorInputState,\n ThemeColorMuted,\n ThemeColorMutedTone,\n ThemeColorName,\n ThemeColorScheme,\n ThemeColorSchemes,\n ThemeColorSolid,\n ThemeColorSolidTone,\n ThemeColorSpotKey,\n ThemeColorToneKey,\n} from '../../../../v0'\nimport type {ThemeColorButtonModeKey, ThemeColorSyntax} from '../../../color'\nimport {createSelectableTones} from './_selectable/createSelectableTones'\nimport {createSolidTones} from './_solid/createSolidTones'\nimport {createButtonModes} from './button/createButtonModes'\nimport {createCardStates} from './card/createCardStates'\nimport {defaultOpts} from './defaults'\nimport {createInputModes} from './input/createInputModes'\nimport {createMutedTones} from './muted/createMuted'\nimport {createSpot} from './spot/createSpot'\n\n/**\n * @public\n * @deprecated Use `buildColorTheme` instead.\n */\nexport interface ThemeColorBuilderOpts {\n base: (opts: {dark: boolean; name: ThemeColorName}) => ThemeColorBase\n solid: (opts: {\n base: ThemeColorBase\n dark: boolean\n tone: ThemeColorName\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n muted: (opts: {\n base: ThemeColorBase\n dark: boolean\n tone: ThemeColorToneKey\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n card: (opts: {\n base: ThemeColorBase\n dark: boolean\n muted: ThemeColorMuted\n name: ThemeColorName\n solid: ThemeColorSolid\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n button: (opts: {\n dark: boolean\n mode: ThemeColorButtonModeKey\n base: ThemeColorBase\n solid: ThemeColorSolidTone\n muted: ThemeColorMutedTone\n }) => ThemeColorButtonStates\n input: (opts: {\n base: ThemeColorBase\n solid: ThemeColorSolidTone\n muted: ThemeColorMutedTone\n dark: boolean\n mode: 'default' | 'invalid'\n state: 'enabled' | 'disabled' | 'hovered' | 'readOnly'\n }) => ThemeColorInputState\n selectable: (opts: {\n dark: boolean\n base: ThemeColorBase\n solid: ThemeColorSolid\n muted: ThemeColorMuted\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical'\n }) => ThemeColorGenericState\n syntax: (opts: {base: ThemeColorBase; dark: boolean}) => ThemeColorSyntax\n spot: (opts: {base: ThemeColorBase; dark: boolean; key: ThemeColorSpotKey}) => string\n}\n\n/**\n * @public\n * @deprecated Use `ThemeConfig` instead.\n */\nexport type PartialThemeColorBuilderOpts = Partial<ThemeColorBuilderOpts>\n\n/**\n * @public\n * @deprecated Use `buildColorTheme` instead.\n */\nexport function createColorTheme(\n partialOpts: PartialThemeColorBuilderOpts = {},\n): ThemeColorSchemes {\n const builders: ThemeColorBuilderOpts = {...defaultOpts, ...partialOpts}\n\n return {\n light: _createColorScheme(builders, false),\n dark: _createColorScheme(builders, true),\n }\n}\n\n/**\n * @internal\n */\nfunction _createColorScheme(opts: ThemeColorBuilderOpts, dark: boolean): ThemeColorScheme {\n return {\n default: _createColor(opts, dark, 'default'),\n transparent: _createColor(opts, dark, 'transparent'),\n primary: _createColor(opts, dark, 'primary'),\n positive: _createColor(opts, dark, 'positive'),\n caution: _createColor(opts, dark, 'caution'),\n critical: _createColor(opts, dark, 'critical'),\n }\n}\n\n/**\n * @internal\n */\nfunction _createColor(\n opts: ThemeColorBuilderOpts,\n dark: boolean,\n name: ThemeColorName,\n): ThemeColor {\n const base = opts.base({dark, name})\n const solid = createSolidTones(opts, base, dark, name)\n const muted = createMutedTones(opts, base, dark, name)\n\n return {\n base,\n button: createButtonModes(opts, base, dark, solid, muted),\n card: createCardStates(opts, base, dark, name, solid, muted),\n dark,\n input: createInputModes(opts, base, dark, solid, muted),\n selectable: createSelectableTones(opts, base, dark, solid, muted),\n spot: createSpot(opts, base, dark),\n syntax: opts.syntax({base, dark}),\n solid,\n muted,\n }\n}\n","import type {ThemeFonts} from '../../v0'\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: 600,\n medium: 700,\n semibold: 800,\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.25,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 27,\n iconSize: 41,\n lineHeight: 35,\n letterSpacing: -0.5,\n },\n {\n ascenderHeight: 9.5,\n descenderHeight: 8.5,\n fontSize: 33,\n iconSize: 49,\n lineHeight: 41,\n letterSpacing: -1,\n },\n {\n ascenderHeight: 10.5,\n descenderHeight: 9.5,\n fontSize: 38,\n iconSize: 53,\n lineHeight: 47,\n letterSpacing: -1,\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: 500,\n medium: 600,\n semibold: 700,\n bold: 800,\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: 1.5,\n descenderHeight: 2.5,\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: 1.5,\n descenderHeight: 2.5,\n fontSize: 13.6,\n iconSize: 21,\n lineHeight: 14,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 15,\n iconSize: 23,\n lineHeight: 15,\n letterSpacing: 0.5,\n },\n ],\n },\n text: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n weights: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 15,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 15,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 18,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\n },\n ],\n },\n}\n","import {COLOR_HUES} from '@sanity/color'\n\n/** @public */\nexport const THEME_COLOR_SCHEMES = ['light', 'dark'] as const\n\n/** @public */\nexport const THEME_COLOR_BLEND_MODES = ['multiply', 'screen'] as const\n\n/** @public */\nexport const THEME_COLOR_CARD_TONES = [\n 'transparent',\n 'default',\n 'neutral',\n 'primary', // deprecated\n 'suggest',\n 'positive',\n 'caution',\n 'critical',\n] as const\n\n/** @public */\nexport const THEME_COLOR_STATE_TONES = [\n 'default',\n 'neutral',\n 'primary', // deprecated\n 'suggest',\n 'positive',\n 'caution',\n 'critical',\n] as const\n\n/** @public */\nexport const THEME_COLOR_STATES = ['enabled', 'hovered', 'pressed', 'selected', 'disabled'] as const\n\n/** @public */\nexport const THEME_COLOR_BUTTON_MODES = ['default', 'ghost', 'bleed'] as const\n\n/** @public */\nexport const THEME_COLOR_INPUT_MODES = ['default', 'invalid'] as const\n\n/** @public */\nexport const THEME_COLOR_INPUT_STATES = ['enabled', 'hovered', 'readOnly', 'disabled'] as const\n\n/** @public */\nexport const THEME_COLOR_AVATAR_COLORS = COLOR_HUES\n","import {COLOR_HUES, COLOR_TINTS, type ColorHueKey, type ColorTintKey} from '@sanity/color'\n\nimport {THEME_COLOR_BLEND_MODES, THEME_COLOR_BUTTON_MODES} from './_constants'\nimport type {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 type {Hue, Tint} from '../../v3'\nimport {\n THEME_COLOR_AVATAR_COLORS,\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_INPUT_MODES,\n THEME_COLOR_INPUT_STATES,\n THEME_COLOR_STATE_TONES,\n THEME_COLOR_STATES,\n type ThemeColorBlendModeKey,\n} from '../color'\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 | `${Hue}`\n | `${Hue} ${number}%`\n | `${Hue}/${Tint}`\n | `${Hue}/${Tint} ${number}%`\n | `${Hue}/${Tint}/${ColorConfigOpacityValue}`\n | `${Tint}`\n | `${Tint} ${number}%`\n | `${Tint}/${ColorConfigOpacityValue}`\n\n/** @public */\nexport type ThemeColorTokenValue = [ColorConfigValue, ColorConfigValue]\n\n/** @public */\nexport type ColorBlendModeTokenValue = [ThemeColorBlendModeKey, ThemeColorBlendModeKey]\n\n/** @public */\nexport const COLOR_CONFIG_AVATAR_COLORS = ['*', ...THEME_COLOR_AVATAR_COLORS] as const\n\n/** @public */\nexport type ColorConfigAvatarColor = (typeof COLOR_CONFIG_AVATAR_COLORS)[number]\n\n/** @public */\nexport const COLOR_CONFIG_CARD_TONES = ['*', ...THEME_COLOR_CARD_TONES] as const\n\n/** @public */\nexport type ColorConfigCardTone = (typeof COLOR_CONFIG_CARD_TONES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_STATE_TONES = ['*', ...THEME_COLOR_STATE_TONES] as const\n\n/** @public */\nexport type ColorConfigStateTone = (typeof COLOR_CONFIG_STATE_TONES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_STATES = ['*', ...THEME_COLOR_STATES] as const\n\n/** @public */\nexport type ColorConfigState = (typeof COLOR_CONFIG_STATES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_INPUT_MODES = ['*', ...THEME_COLOR_INPUT_MODES] as const\n\n/** @public */\nexport type ColorConfigInputMode = (typeof COLOR_CONFIG_INPUT_MODES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_INPUT_STATES = ['*', ...THEME_COLOR_INPUT_STATES] as const\n\n/** @public */\nexport type ColorConfigInputState = (typeof COLOR_CONFIG_INPUT_STATES)[number]\n","import {\n COLOR_CONFIG_BLEND_KEYS,\n COLOR_CONFIG_CARD_KEYS,\n COLOR_CONFIG_CARD_TONES,\n COLOR_CONFIG_STATE_KEYS,\n COLOR_CONFIG_STATE_TONES,\n type ColorConfigBlendKey,\n type ColorConfigCardKey,\n type ColorConfigCardTone,\n type ColorConfigOpacityValue,\n type ColorConfigStateKey,\n type ColorConfigStateTone,\n} from './system'\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 isColorValue(str: string): str is 'black' | 'white' {\n return str === 'black' || str === 'white'\n}\n\n/** @internal */\nexport function isColorOpacityValue(str: string): str is ColorConfigOpacityValue {\n return str === '0' || /^0\\.[0-9]+$/.test(str) || str === '1'\n}\n","import {isColorBlendModeValue, isColorHueKey, isColorTintKey} from '../../color'\nimport {isColorOpacityValue, isColorValue} from '../helpers'\nimport type {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 type {TokenColorValueNode} from '../../config'\n\nexport function compileColorTokenValue(node: TokenColorValueNode): string {\n let key = ''\n\n if (node.key === 'black' || node.key === 'white') {\n key = node.key\n } else {\n key = `${node.hue}/${node.tint}`\n }\n\n if (node.mix !== undefined) {\n return `${key} ${node.mix * 100}%`\n }\n\n if (node.opacity !== undefined) {\n key += `/${node.opacity}`\n }\n\n return key\n}\n","import {parseTokenValue, type ThemeColorTokenValue} from '../../config'\nimport {compileColorTokenValue} from './compileColorToken'\nimport type {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 type {ThemeColorTokens} from '../config'\n\nexport const defaultColorTokens: ThemeColorTokens = {\n base: {\n '*': {\n _blend: ['multiply', 'screen'],\n accent: {\n fg: ['purple/600', 'purple/400'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n backdrop: ['gray/200/0.5', 'black/0.5'],\n badge: {\n '*': {\n bg: ['100', '900'],\n fg: ['600', '400'],\n icon: ['500', '500'],\n dot: ['500', '500'],\n },\n 'positive': {\n bg: ['200 50%', '900'],\n fg: ['600', '500'],\n },\n 'caution': {\n bg: ['200 50%', '900'],\n fg: ['600', '500'],\n },\n },\n bg: ['50', '950'],\n border: ['200', '800'],\n code: {\n bg: ['50', '950'],\n fg: ['600', '400'],\n },\n fg: ['800', '200'],\n focusRing: ['blue/500', 'blue/500'],\n icon: ['600', '400'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['600', '400'],\n border: ['200', '800'],\n },\n link: {\n fg: ['blue/600', 'blue/300'],\n },\n muted: {\n bg: ['50', '950'],\n fg: ['700 75%', '300 75%'],\n },\n shadow: {\n outline: ['500/0.3', '500/0.4'],\n umbra: ['gray/500/0.1', 'black/0.2'],\n penumbra: ['gray/500/0.07', 'black/0.14'],\n ambient: ['gray/500/0.06', 'black/0.12'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n 'transparent': {\n bg: ['50', 'black'],\n },\n 'default': {\n bg: ['white', '950'],\n fg: ['800', '200'],\n muted: {\n fg: ['600', '400'],\n },\n },\n 'primary': {_hue: 'blue'},\n 'suggest': {_hue: 'purple'},\n 'positive': {\n _hue: 'green',\n shadow: {outline: ['500/0.4', '500/0.4']},\n },\n 'caution': {\n _hue: 'yellow',\n shadow: {outline: ['600/0.3', '500/0.4']},\n },\n 'critical': {_hue: 'red'},\n },\n button: {\n default: {\n '*': {\n '*': {\n _blend: ['screen', 'multiply'],\n accent: {\n fg: ['purple/300', 'purple/700'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['900', '100'],\n fg: ['400', '600'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['500', '400'],\n border: ['500/0', '400/0'],\n code: {\n bg: ['500 20%', '400 20%'],\n fg: ['200', '600'],\n },\n fg: ['white', 'black'],\n icon: ['100 70%', '900 70%'],\n kbd: {\n bg: ['black', 'white'],\n fg: ['200', '600'],\n border: ['800', '200'],\n },\n link: {\n fg: ['blue/200', 'blue/600'],\n },\n muted: {\n bg: ['950', '50'],\n fg: ['100 70%', '900 70%'],\n },\n skeleton: {\n from: ['900', '100'],\n to: ['900 50%', '100 50%'],\n },\n },\n 'hovered': {\n bg: ['600', '300'],\n border: ['700/0', '300/0'],\n },\n 'pressed': {\n bg: ['700', '300'],\n },\n 'selected': {\n bg: ['700', '300'],\n },\n 'disabled': {\n _hue: 'gray',\n accent: {\n fg: ['100 70%', '900 70%'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['gray/500', 'gray/400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['gray/700', 'gray/300'],\n fg: ['white', 'black'],\n dot: ['white', 'black'],\n icon: ['white', 'black'],\n },\n },\n bg: ['300', '600'],\n code: {\n bg: ['950', '50'],\n fg: ['300', '600'],\n },\n fg: ['300', '600'],\n muted: {\n bg: ['950', '50'],\n fg: ['300', '600'],\n },\n kbd: {\n bg: ['black', 'white'],\n fg: ['white', 'black'],\n border: ['700', '300'],\n },\n link: {\n fg: ['100 70%', '900 70%'],\n },\n },\n },\n 'default': {\n '*': {\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n bg: ['800', '200'],\n muted: {\n bg: ['950', '50'],\n fg: ['400', '600'],\n },\n },\n 'hovered': {\n bg: ['900', '100'],\n },\n 'pressed': {\n bg: ['black', 'white'],\n },\n 'selected': {\n bg: ['black', 'white'],\n },\n },\n },\n ghost: {\n '*': {\n '*': {\n _blend: ['multiply', 'screen'],\n accent: {\n fg: ['purple/700 60%', 'purple/300 70%'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['100', '900'],\n fg: ['600', '400'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['50', '950'],\n border: ['100', '900'],\n code: {\n bg: ['500 10%', '400 10%'],\n fg: ['700 60%', '400 60%'],\n },\n fg: ['600', '400'],\n icon: ['700 60%', '300 60%'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['600', '400'],\n border: ['200', '800'],\n },\n link: {\n fg: ['blue/700 60%', 'blue/300 60%'],\n },\n muted: {\n bg: ['100', '950'],\n fg: ['700 60%', '300 60%'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n 'hovered': {\n bg: ['100', '900'],\n fg: ['700', '300'],\n },\n 'pressed': {\n bg: ['200', '800'],\n fg: ['800', '200'],\n },\n 'selected': {\n bg: ['200', '800'],\n fg: ['800', '200'],\n },\n 'disabled': {\n _hue: 'gray',\n accent: {\n fg: ['200', '800'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['gray/100', 'gray/900'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n _hue: 'gray',\n bg: ['50', '950'],\n fg: ['gray/200', 'gray/800'],\n dot: ['gray/200', 'gray/800'],\n icon: ['gray/200', 'gray/800'],\n },\n },\n border: ['100', '900'],\n code: {\n bg: ['50', '950'],\n fg: ['200', '800'],\n },\n fg: ['400', '600'],\n icon: ['300', '700'],\n muted: {\n fg: ['300', '700'],\n },\n kbd: {\n bg: ['white', 'black'],\n fg: ['200', '800'],\n border: ['100', '900'],\n },\n link: {\n fg: ['200', '800'],\n },\n },\n },\n 'positive': {\n '*': {\n border: ['600 20%', '800'],\n },\n },\n 'caution': {\n '*': {\n border: ['600 20%', '800'],\n },\n },\n },\n bleed: {\n '*': {\n '*': {\n _blend: ['multiply', 'screen'],\n accent: {\n fg: ['purple/700 70%', 'purple/300 70%'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['100', '900'],\n fg: ['600', '400'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['white', 'black'],\n border: ['white/0', 'black/0'],\n code: {\n bg: ['50', '950'],\n fg: ['700 75%', '300 75%'],\n },\n fg: ['700', '300'],\n icon: ['700 75%', '300 75%'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['700', '300'],\n border: ['200', '800'],\n },\n link: {\n fg: ['blue/700 70%', 'blue/300 70%'],\n },\n muted: {\n bg: ['100', '950'],\n fg: ['700 75%', '300 75%'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n 'hovered': {\n bg: ['50', '900'],\n fg: ['800', '200'],\n icon: ['800 70%', '300 70%'],\n },\n 'pressed': {\n bg: ['100', '800'],\n fg: ['800', '200'],\n icon: ['800 70%', '200 70%'],\n },\n 'selected': {\n bg: ['100', '900'],\n fg: ['800', '200'],\n icon: ['800 60%', '200 60%'],\n },\n 'disabled': {\n _hue: 'gray',\n accent: {\n fg: ['200', '800'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['gray/100', 'gray/900'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n _hue: 'gray',\n bg: ['50', '950'],\n fg: ['gray/200', 'gray/800'],\n dot: ['gray/200', 'gray/800'],\n icon: ['gray/200', 'gray/800'],\n },\n },\n code: {\n bg: ['50', '950'],\n fg: ['200', '800'],\n },\n fg: ['400', '600'],\n icon: ['300', '700'],\n muted: {\n fg: ['400', '600'],\n },\n kbd: {\n bg: ['white', 'black'],\n fg: ['200', '800'],\n border: ['100', '900'],\n },\n link: {\n fg: ['200', '800'],\n },\n },\n },\n },\n },\n input: {\n '*': {\n '*': {\n _blend: ['multiply', 'screen'],\n bg: ['white', 'black'],\n border: ['200', '700'],\n fg: ['black', '200'],\n muted: {\n bg: ['50', '950'],\n },\n placeholder: ['400', '600'],\n },\n 'hovered': {\n border: ['300', '700'],\n },\n 'readOnly': {\n bg: ['50', '950'],\n border: ['200', '800'],\n fg: ['800', '200'],\n },\n 'disabled': {\n bg: ['50', '950'],\n fg: ['400', '600'],\n border: ['100', '900'],\n placeholder: ['200', '800 50%'],\n },\n },\n 'invalid': {\n '*': {\n _hue: 'red',\n bg: ['100', '950'],\n },\n },\n },\n selectable: {\n '*': {\n '*': {\n _blend: ['multiply', 'screen'],\n accent: {\n fg: ['purple/700 70%', 'purple/300 70%'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['100', '900'],\n fg: ['600', '400'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['white', 'black'],\n border: ['200', '800'],\n code: {\n bg: ['50', '950'],\n fg: ['600', '400'],\n },\n fg: ['700', '300'],\n icon: ['700 75%', '300 75%'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['600', '400'],\n border: ['200', '800'],\n },\n link: {\n fg: ['blue/700 70%', 'blue/300 70%'],\n },\n muted: {\n bg: ['50', '950'],\n fg: ['700 75%', '300 75%'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n 'hovered': {\n bg: ['50', '950'],\n },\n 'pressed': {\n bg: ['100', '900'],\n },\n 'selected': {\n _blend: ['screen', 'multiply'],\n accent: {\n fg: ['purple/300', 'purple/700'],\n },\n avatar: {\n '*': {\n _blend: ['multiply', 'screen'],\n bg: ['white', 'black'],\n fg: ['black', 'white'],\n },\n },\n badge: {\n '*': {\n bg: ['900', '100'],\n fg: ['400', '600'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['500', '400'],\n border: ['500 20%', '400 20%'],\n code: {\n bg: ['500 20%', '400 20%'],\n fg: ['200', '600'],\n },\n fg: ['white', 'black'],\n icon: ['100 70%', '900 70%'],\n kbd: {\n bg: ['black', 'white'],\n fg: ['200', '600'],\n border: ['800', '200'],\n },\n link: {\n fg: ['blue/200', 'blue/600'],\n },\n muted: {\n bg: ['500 10%', '400 10%'],\n fg: ['100 70%', '900 70%'],\n },\n skeleton: {\n from: ['900', '100'],\n to: ['900 50%', '100 50%'],\n },\n },\n 'disabled': {\n _hue: 'gray',\n accent: {\n fg: ['200', '800'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['gray/100', 'gray/900'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n _hue: 'gray',\n bg: ['50', '950'],\n fg: ['gray/200', 'gray/800'],\n dot: ['gray/200', 'gray/800'],\n icon: ['gray/200', 'gray/800'],\n },\n },\n border: ['100', '900'],\n code: {\n bg: ['50', '950'],\n fg: ['200', '800'],\n },\n fg: ['200', '800'],\n icon: ['200', '800'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['200', '800'],\n border: ['100', '900'],\n },\n link: {\n fg: ['200', '800'],\n },\n muted: {\n bg: ['50 50%', '950 50%'],\n fg: ['200', '800'],\n },\n },\n },\n 'default': {\n selected: {\n _hue: 'blue',\n },\n },\n 'critical': {\n disabled: {\n bg: ['50 50%', '950 50%'],\n },\n },\n },\n syntax: {\n atrule: ['purple/600', 'purple/400'],\n attrName: ['green/600', 'green/400'],\n attrValue: ['yellow/600', 'yellow/400'],\n attribute: ['yellow/600', 'yellow/400'],\n boolean: ['purple/600', 'purple/400'],\n builtin: ['purple/600', 'purple/400'],\n cdata: ['yellow/600', 'yellow/400'],\n char: ['yellow/600', 'yellow/400'],\n class: ['orange/600', 'orange/400'],\n className: ['cyan/600', 'cyan/400'],\n comment: ['gray/400', 'gray/600'],\n constant: ['purple/600', 'purple/400'],\n deleted: ['red/600', 'red/400'],\n entity: ['red/600', 'red/400'],\n function: ['green/600', 'green/400'],\n hexcode: ['blue/600', 'blue/400'],\n id: ['purple/600', 'purple/400'],\n important: ['purple/600', 'purple/400'],\n inserted: ['yellow/600', 'yellow/400'],\n keyword: ['magenta/600', 'magenta/400'],\n number: ['purple/600', 'purple/400'],\n operator: ['magenta/600', 'magenta/400'],\n property: ['blue/600', 'blue/400'],\n pseudoClass: ['yellow/600', 'yellow/400'],\n pseudoElement: ['yellow/600', 'yellow/400'],\n punctuation: ['gray/600', 'gray/400'],\n regex: ['blue/600', 'blue/400'],\n selector: ['red/600', 'red/400'],\n string: ['yellow/600', 'yellow/400'],\n symbol: ['purple/600', 'purple/400'],\n tag: ['red/600', 'red/400'],\n unit: ['orange/600', 'orange/400'],\n url: ['red/600', 'red/400'],\n variable: ['red/600', 'red/400'],\n },\n}\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {isRecord} from './lib/isRecord'\n\nexport function merge<T extends Record<string, any>>(...records: (T | undefined)[]): T {\n const _records = records.filter(Boolean) as T[]\n\n if (_records.length === 0) {\n return {} as T\n }\n\n return _records.reduce(_merge, {} as T)\n}\n\nfunction _merge<T extends Record<string, any>>(acc: T, source: T): T {\n for (const key of Object.keys(source)) {\n const prevValue = acc[key]\n const nextValue = source[key]\n\n if (isRecord(prevValue) && isRecord(nextValue)) {\n ;(acc as any)[key] = merge(prevValue, nextValue)\n } else {\n ;(acc as any)[key] = nextValue\n }\n }\n\n return acc\n}\n","import {COLOR_HUES, type ColorHueKey} from '@sanity/color'\n\nimport {\n THEME_COLOR_BUTTON_MODES,\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_INPUT_MODES,\n THEME_COLOR_INPUT_STATES,\n THEME_COLOR_STATE_TONES,\n THEME_COLOR_STATES,\n type ThemeColorButtonModeKey,\n type ThemeColorCardToneKey,\n type ThemeColorStateKey,\n type ThemeColorStateToneKey,\n} from '../color'\nimport type {\n ColorConfigCardTone,\n ColorConfigInputMode,\n ColorConfigInputState,\n ColorConfigStateTone,\n ThemeColorAvatarTokens,\n ThemeColorBadgeTokens,\n ThemeColorBaseTokens,\n ThemeColorButtonTokens,\n ThemeColorInputStateTokens,\n ThemeColorInputTokens,\n ThemeColorStatesTokens,\n ThemeColorStateTokens,\n ThemeColorTokens,\n} from '../config'\nimport {defaultColorTokens} from '../defaults/colorTokens'\nimport {merge} from './merge'\n\n/**\n * Convert a tree of color tokens from a sparse format to a dense format.\n */\nexport function resolveColorTokens(inputTokens?: ThemeColorTokens): ThemeColorTokens {\n const tokens = merge(defaultColorTokens, inputTokens)\n\n return {\n base: resolveBaseColorTokens(tokens),\n button: resolveButtonColorTokens(tokens),\n input: resolveInputColorTokens(tokens),\n selectable: resolveSelectableColorTokens(tokens),\n syntax: tokens.syntax,\n }\n}\n\nfunction resolveBaseColorTokens(sparseTokens: ThemeColorTokens) {\n const tokens: Partial<Record<ColorConfigCardTone, ThemeColorBaseTokens>> = {}\n\n // base tones\n for (const tone of THEME_COLOR_CARD_TONES) {\n tokens[tone] = resolveBaseColorTones(sparseTokens, tone)\n }\n\n return tokens\n}\n\nfunction resolveBaseColorTones(\n inputTokens: ThemeColorTokens,\n tone: ThemeColorCardToneKey,\n): ThemeColorBaseTokens {\n const spec = merge(inputTokens?.base?.['*'], inputTokens?.base?.[tone])\n\n const hue = spec._hue || inputTokens?.base?.[tone]?._hue || 'gray'\n\n return {\n ...spec,\n _hue: hue,\n avatar: COLOR_HUES.reduce((acc, hue) => {\n return {\n ...acc,\n [hue]: merge({_hue: hue}, spec.avatar?.['*'], spec.avatar?.[hue]),\n }\n }, {} as ThemeColorAvatarTokens),\n badge: THEME_COLOR_STATE_TONES.reduce((acc, tone) => {\n return {\n ...acc,\n [tone]: {\n _hue: inputTokens?.base?.[tone]?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.[tone],\n },\n }\n }, {} as ThemeColorBadgeTokens),\n }\n}\n\nfunction resolveButtonColorTokens(\n inputTokens: ThemeColorTokens,\n): Partial<Record<ThemeColorButtonModeKey, ThemeColorButtonTokens>> {\n const tokens: Partial<Record<ThemeColorButtonModeKey, ThemeColorButtonTokens>> = {}\n\n for (const mode of THEME_COLOR_BUTTON_MODES) {\n tokens[mode] = resolveButtonToneColorTokens(inputTokens, mode)\n }\n\n return tokens\n}\n\nfunction resolveButtonToneColorTokens(\n inputTokens: ThemeColorTokens,\n mode: ThemeColorButtonModeKey,\n): ThemeColorButtonTokens {\n const tokens: ThemeColorButtonTokens = {}\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n tokens[tone] = resolveButtonModeColorTokens(inputTokens, mode, tone)\n }\n\n return tokens\n}\n\nfunction resolveButtonModeColorTokens(\n inputTokens: ThemeColorTokens,\n mode: ThemeColorButtonModeKey,\n tone: ThemeColorStateToneKey,\n): ThemeColorStatesTokens {\n const tokens: ThemeColorStatesTokens = {}\n\n for (const state of THEME_COLOR_STATES) {\n tokens[state] = resolveButtonStateColorTokens(inputTokens, tone, mode, state)\n }\n\n return tokens\n}\n\nfunction resolveButtonStateColorTokens(\n inputTokens: ThemeColorTokens,\n tone: ThemeColorStateToneKey,\n mode: ThemeColorButtonModeKey,\n state: ThemeColorStateKey,\n): ThemeColorStateTokens {\n const spec = merge(\n inputTokens?.button?.[mode]?.['*']?.['*'],\n inputTokens?.button?.[mode]?.[tone]?.['*'],\n inputTokens?.button?.[mode]?.['*']?.[state],\n inputTokens?.button?.[mode]?.[tone]?.[state],\n )\n\n const hue = spec._hue || inputTokens?.base?.[tone]?._hue\n\n return {\n ...spec,\n _hue: hue,\n avatar: COLOR_HUES.reduce((acc, hue) => {\n return {\n ...acc,\n [hue]: merge({_hue: hue}, spec.avatar?.['*'], spec.avatar?.[hue]),\n }\n }, {} as ThemeColorAvatarTokens),\n badge: THEME_COLOR_STATE_TONES.reduce((acc, tone) => {\n return {\n ...acc,\n [tone]: {\n _hue: inputTokens?.base?.[tone]?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.[tone],\n },\n }\n }, {} as ThemeColorBadgeTokens),\n }\n}\n\nfunction resolveInputColorTokens(\n inputTokens: ThemeColorTokens,\n): Partial<Record<ColorConfigInputMode, ThemeColorInputTokens>> {\n const tokens: Partial<Record<ColorConfigInputMode, ThemeColorInputTokens>> = {}\n\n for (const mode of THEME_COLOR_INPUT_MODES) {\n tokens[mode] = resolveInputModeColorTokens(inputTokens, mode)\n }\n\n return tokens\n}\n\nfunction resolveInputModeColorTokens(\n inputTokens: ThemeColorTokens,\n mode: ColorConfigInputMode,\n): ThemeColorInputTokens {\n const states: ThemeColorInputTokens = {}\n\n for (const state of THEME_COLOR_INPUT_STATES) {\n states[state] = resolveInputStateColorTokens(inputTokens, mode, state)\n }\n\n return states\n}\n\nfunction resolveInputStateColorTokens(\n inputTokens: ThemeColorTokens,\n mode: ColorConfigInputMode,\n state: ColorConfigInputState,\n): ThemeColorInputStateTokens {\n const spec = merge(\n inputTokens?.input?.['*']?.['*'],\n inputTokens?.input?.[mode]?.['*'],\n inputTokens?.input?.['*']?.[state],\n inputTokens?.input?.[mode]?.[state],\n )\n\n const hue = spec._hue || inputTokens?.input?.[mode]?._hue\n\n return {...spec, _hue: hue}\n}\n\nfunction resolveSelectableColorTokens(\n inputTokens: ThemeColorTokens,\n): Partial<Record<ColorConfigStateTone, {_hue?: ColorHueKey} & ThemeColorStatesTokens>> {\n const tokens: ThemeColorButtonTokens = {}\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n tokens[tone] = resolveSelectableToneColorTokens(inputTokens, tone)\n }\n\n return tokens\n}\n\nfunction resolveSelectableToneColorTokens(\n inputTokens: ThemeColorTokens,\n tone: ThemeColorStateToneKey,\n): {_hue?: ColorHueKey} & ThemeColorStatesTokens {\n const states: {_hue?: ColorHueKey} & ThemeColorStatesTokens = {\n _hue: inputTokens?.selectable?.[tone]?._hue || inputTokens?.base?.[tone]?._hue,\n }\n\n for (const state of THEME_COLOR_STATES) {\n states[state] = resolveSelectableStateColorTokens(inputTokens, tone, state)\n }\n\n return states\n}\n\nfunction resolveSelectableStateColorTokens(\n inputTokens: ThemeColorTokens,\n tone: ThemeColorStateToneKey,\n state: ThemeColorStateKey,\n) {\n const spec = merge(\n inputTokens?.selectable?.['*']?.['*'],\n inputTokens?.selectable?.[tone]?.['*'],\n inputTokens?.selectable?.['*']?.[state],\n inputTokens?.selectable?.[tone]?.[state],\n )\n\n const hue = spec._hue || inputTokens?.base?.[tone]?._hue\n\n return {\n ...spec,\n _hue: hue,\n avatar: COLOR_HUES.reduce((acc, hue) => {\n return {\n ...acc,\n [hue]: merge({_hue: hue}, spec.avatar?.['*'], spec.avatar?.[hue]),\n }\n }, {} as ThemeColorAvatarTokens),\n badge: THEME_COLOR_STATE_TONES.reduce((acc, tone) => {\n return {\n ...acc,\n [tone]: {\n _hue: inputTokens?.base?.[tone]?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.[tone],\n },\n }\n }, {} as ThemeColorBadgeTokens),\n }\n}\n","import {\n THEME_COLOR_BUTTON_MODES,\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_STATE_TONES,\n THEME_COLOR_STATES,\n type ThemeColorAvatar_v2,\n type ThemeColorAvatarColorKey,\n type ThemeColorAvatarHue_v2,\n type ThemeColorBadge_v2,\n type ThemeColorButton_v2,\n type ThemeColorButtonMode_v2,\n type ThemeColorButtonModeKey,\n type ThemeColorButtonTone_v2,\n type ThemeColorCard_v2,\n type ThemeColorCardToneKey,\n type ThemeColorInput_v2,\n type ThemeColorInputMode_v2,\n type ThemeColorInputState_v2,\n type ThemeColorScheme_v2,\n type ThemeColorSchemeKey,\n type ThemeColorSchemes_v2,\n type ThemeColorShadow,\n type ThemeColorState_v2,\n type ThemeColorStateKey,\n type ThemeColorStateToneKey,\n type ThemeColorSyntax,\n} from '../color'\nimport type {ThemeColorBadgeTokens, ThemeColorStateTokens, ThemeConfig} from '../config'\nimport {type ColorTokenContext, resolveColorTokenValue as _color} from './colorToken'\nimport {resolveColorTokens} from './resolveColorTokens'\n\nexport function buildColorTheme(config?: ThemeConfig): ThemeColorSchemes_v2 {\n const resolvedConfig: ThemeConfig = {\n ...config,\n color: resolveColorTokens(config?.color),\n }\n\n return {\n light: buildColorScheme({scheme: 'light'}, resolvedConfig),\n dark: buildColorScheme({scheme: 'dark'}, resolvedConfig),\n }\n}\n\nfunction buildColorScheme(\n options: {scheme: ThemeColorSchemeKey},\n config: ThemeConfig,\n): ThemeColorScheme_v2 {\n const {scheme} = options\n\n const colorScheme = {} as ThemeColorScheme_v2\n\n for (const tone of THEME_COLOR_CARD_TONES) {\n colorScheme[tone] = buildCardColorTheme({scheme, tone}, config)\n }\n\n return colorScheme\n}\n\nfunction buildCardColorTheme(\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorCardToneKey},\n config?: ThemeConfig,\n): ThemeColorCard_v2 {\n const {scheme, tone} = options\n const tokens = config?.color?.base?.[tone]\n const hue = tokens?._hue || 'gray'\n const context: ColorTokenContext = {hue, scheme}\n const blendMode = tokens?._blend || ['multiply', 'screen']\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n _dark: scheme === 'dark',\n accent: {\n fg: _color(context, tokens?.accent?.fg),\n },\n avatar: buildAvatarColorTheme({scheme}, tokens),\n backdrop: _color(context, tokens?.backdrop),\n badge: buildBadgeColorTheme(tokens?.badge, {scheme}, config),\n bg: _color(context, tokens?.bg),\n border: _color(context, tokens?.border),\n button: buildButtonColorTheme({scheme, tone}, config),\n code: {\n bg: _color(context, tokens?.code?.bg),\n fg: _color(context, tokens?.code?.fg),\n },\n fg: _color(context, tokens?.fg),\n focusRing: _color(context, tokens?.focusRing),\n icon: _color(context, tokens?.icon),\n input: buildInputColorTheme({scheme, tone}, config),\n kbd: {\n bg: _color(context, tokens?.kbd?.bg),\n fg: _color(context, tokens?.kbd?.fg),\n border: _color(context, tokens?.kbd?.border),\n },\n link: {\n fg: _color(context, tokens?.link?.fg),\n },\n muted: {\n bg: _color(context, tokens?.muted?.bg),\n fg: _color(context, tokens?.muted?.fg),\n },\n selectable: buildSelectableColorTheme({scheme, tone}, config),\n shadow: buildShadowColorTheme({scheme, tone}, config),\n skeleton: {\n from: _color(context, tokens?.skeleton?.from),\n to: _color(context, tokens?.skeleton?.to),\n },\n syntax: buildSyntaxColorTheme({scheme}, config),\n }\n}\n\nfunction buildShadowColorTheme(\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorCardToneKey},\n config?: ThemeConfig,\n): ThemeColorShadow {\n const {scheme, tone} = options\n const tokens = config?.color?.base?.[tone]\n const hue = tokens?._hue || 'gray'\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n outline: _color(context, tokens?.shadow?.outline),\n umbra: _color(context, tokens?.shadow?.umbra),\n penumbra: _color(context, tokens?.shadow?.penumbra),\n ambient: _color(context, tokens?.shadow?.ambient),\n }\n}\n\nfunction buildAvatarColorTheme(\n options: {scheme: ThemeColorSchemeKey},\n stateTokens?: ThemeColorStateTokens,\n): ThemeColorAvatar_v2 {\n const {scheme} = options\n\n return {\n gray: _buildAvatarColorTheme({color: 'gray', scheme}, stateTokens),\n blue: _buildAvatarColorTheme({color: 'blue', scheme}, stateTokens),\n purple: _buildAvatarColorTheme({color: 'purple', scheme}, stateTokens),\n magenta: _buildAvatarColorTheme({color: 'magenta', scheme}, stateTokens),\n red: _buildAvatarColorTheme({color: 'red', scheme}, stateTokens),\n orange: _buildAvatarColorTheme({color: 'orange', scheme}, stateTokens),\n yellow: _buildAvatarColorTheme({color: 'yellow', scheme}, stateTokens),\n green: _buildAvatarColorTheme({color: 'green', scheme}, stateTokens),\n cyan: _buildAvatarColorTheme({color: 'cyan', scheme}, stateTokens),\n }\n}\n\nfunction _buildAvatarColorTheme(\n options: {color: ThemeColorAvatarColorKey; scheme: ThemeColorSchemeKey},\n stateTokens?: ThemeColorStateTokens,\n): ThemeColorAvatarHue_v2 {\n const {color, scheme} = options\n const tokens = stateTokens?.avatar?.[color]\n const context: ColorTokenContext = {hue: tokens?._hue || 'gray', scheme}\n const blendMode = tokens?._blend || ['screen', 'multiply']\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n bg: _color(context, tokens?.bg),\n fg: _color(context, tokens?.fg),\n }\n}\n\nfunction buildBadgeColorTheme(\n tokens: ThemeColorBadgeTokens | undefined,\n options: {scheme: ThemeColorSchemeKey},\n config?: ThemeConfig,\n): ThemeColorBadge_v2 {\n const {scheme} = options\n\n const colorBadge = {} as ThemeColorBadge_v2\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n colorBadge[tone] = _buildBadgeColorTheme(tokens, {scheme, tone}, config)\n }\n\n return colorBadge\n}\n\nfunction _buildBadgeColorTheme(\n parentTokens: ThemeColorBadgeTokens | undefined,\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorStateToneKey},\n config?: ThemeConfig,\n): ThemeColorBadge_v2['default'] {\n const {scheme, tone} = options\n const tokens = parentTokens?.[tone]\n const hue = tokens?._hue || config?.color?.base?.[tone]?._hue || 'gray'\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n bg: _color(context, tokens?.bg),\n fg: _color(context, tokens?.fg),\n dot: _color(context, tokens?.dot),\n icon: _color(context, tokens?.icon),\n }\n}\n\nfunction buildButtonColorTheme(\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorCardToneKey},\n config?: ThemeConfig,\n): ThemeColorButton_v2 {\n const {scheme, tone: cardTone} = options\n\n const modes: Partial<ThemeColorButton_v2> = {}\n\n for (const mode of THEME_COLOR_BUTTON_MODES) {\n modes[mode] = buildButtonTonesColorTheme({cardTone, scheme, mode}, config)\n }\n\n return modes as ThemeColorButton_v2\n}\n\nfunction buildButtonTonesColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n scheme: ThemeColorSchemeKey\n mode: ThemeColorButtonModeKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonMode_v2 {\n const {cardTone, mode, scheme} = options\n\n const tones: Partial<ThemeColorButtonMode_v2> = {}\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n tones[tone] = buildButtonStatesColorTheme({cardTone, mode, scheme, tone}, config)\n }\n\n return tones as ThemeColorButtonMode_v2\n}\n\nfunction buildButtonStatesColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n mode: ThemeColorButtonModeKey\n scheme: ThemeColorSchemeKey\n tone: ThemeColorStateToneKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonTone_v2 {\n const {cardTone, mode, scheme, tone} = options\n\n const states: Partial<ThemeColorButtonTone_v2> = {}\n\n for (const state of THEME_COLOR_STATES) {\n states[state] = buildButtonStateColorTheme({cardTone, mode, tone, scheme, state}, config)\n }\n\n return states as ThemeColorButtonTone_v2\n}\n\nfunction buildButtonStateColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n mode: ThemeColorButtonModeKey\n tone: ThemeColorStateToneKey\n scheme: ThemeColorSchemeKey\n state: ThemeColorStateKey\n },\n config?: ThemeConfig,\n): ThemeColorState_v2 {\n const {cardTone, mode, tone, scheme, state} = options\n const cardTokens = config?.color?.base?.[cardTone]\n const tokens = config?.color?.button?.[mode]?.[tone]?.[state]\n const hue = tokens?._hue || cardTokens?._hue || 'gray'\n const blendMode = tokens?._blend || ['screen', 'multiply']\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n accent: {\n fg: _color(context, tokens?.accent?.fg),\n },\n avatar: buildAvatarColorTheme({scheme}, tokens),\n badge: buildBadgeColorTheme(tokens?.badge, {scheme}, config),\n bg: _color(context, tokens?.bg),\n border: _color(context, tokens?.border),\n code: {\n bg: _color(context, tokens?.code?.bg),\n fg: _color(context, tokens?.code?.fg),\n },\n fg: _color(context, tokens?.fg),\n icon: _color(context, tokens?.icon),\n muted: {\n bg: _color(context, tokens?.muted?.bg),\n fg: _color(context, tokens?.muted?.fg),\n },\n kbd: {\n bg: _color(context, tokens?.kbd?.bg),\n fg: _color(context, tokens?.kbd?.fg),\n border: _color(context, tokens?.kbd?.border),\n },\n link: {\n fg: _color(context, tokens?.link?.fg),\n },\n skeleton: {\n from: _color(context, tokens?.skeleton?.from),\n to: _color(context, tokens?.skeleton?.to),\n },\n }\n}\n\nfunction buildInputColorTheme(\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorCardToneKey},\n config?: ThemeConfig,\n): ThemeColorInput_v2 {\n const {scheme, tone} = options\n\n return {\n default: buildInputStatesColorTheme({mode: 'default', scheme, tone}, config),\n invalid: buildInputStatesColorTheme({mode: 'invalid', scheme, tone}, config),\n }\n}\n\nfunction buildInputStatesColorTheme(\n options: {\n mode: 'default' | 'invalid'\n scheme: ThemeColorSchemeKey\n tone: ThemeColorCardToneKey\n },\n config?: ThemeConfig,\n): ThemeColorInputMode_v2 {\n const {mode, scheme, tone} = options\n\n return {\n enabled: buildInputStateColorTheme({mode, scheme, state: 'enabled', cardTone: tone}, config),\n hovered: buildInputStateColorTheme({mode, scheme, state: 'hovered', cardTone: tone}, config),\n readOnly: buildInputStateColorTheme({mode, scheme, state: 'readOnly', cardTone: tone}, config),\n disabled: buildInputStateColorTheme({mode, scheme, state: 'disabled', cardTone: tone}, config),\n }\n}\n\nfunction buildInputStateColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n mode: 'default' | 'invalid'\n scheme: ThemeColorSchemeKey\n state: 'enabled' | 'hovered' | 'readOnly' | 'disabled'\n },\n config?: ThemeConfig,\n): ThemeColorInputState_v2 {\n const {cardTone, mode, scheme, state} = options\n const cardTokens = config?.color?.base?.[cardTone]\n const tokens = config?.color?.input?.[mode]?.[state]\n const hue = tokens?._hue || cardTokens?._hue || 'gray'\n const blendMode = tokens?._blend || ['screen', 'multiply']\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n bg: _color(context, tokens?.bg),\n border: _color(context, tokens?.border),\n fg: _color(context, tokens?.fg),\n muted: {\n bg: _color(context, tokens?.muted?.bg),\n },\n placeholder: _color(context, tokens?.placeholder),\n }\n}\n\nfunction buildSelectableColorTheme(\n options: {\n scheme: ThemeColorSchemeKey\n tone: ThemeColorCardToneKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonMode_v2 {\n const {scheme, tone: cardTone} = options\n\n const tones: Partial<ThemeColorButtonMode_v2> = {}\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n tones[tone] = buildSelectableStatesColorTheme({cardTone, scheme, tone}, config)\n }\n\n return tones as ThemeColorButtonMode_v2\n}\n\nfunction buildSelectableStatesColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n scheme: ThemeColorSchemeKey\n tone: ThemeColorStateToneKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonTone_v2 {\n const {cardTone, scheme, tone} = options\n\n const states: Partial<ThemeColorButtonTone_v2> = {}\n\n for (const state of THEME_COLOR_STATES) {\n states[state] = buildSelectableStateColorTheme({cardTone, tone, scheme, state}, config)\n }\n\n return states as ThemeColorButtonTone_v2\n}\n\nfunction buildSelectableStateColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n scheme: ThemeColorSchemeKey\n state: ThemeColorStateKey\n tone: ThemeColorStateToneKey\n },\n config?: ThemeConfig,\n): ThemeColorState_v2 {\n const {cardTone, scheme, state, tone} = options\n const cardTokens = config?.color?.base?.[cardTone]\n const tokens = config?.color?.selectable?.[tone]?.[state]\n\n const hue = tokens?._hue || cardTokens?._hue || 'gray'\n const blendMode = tokens?._blend || ['screen', 'multiply']\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n accent: {\n fg: _color(context, tokens?.accent?.fg),\n },\n avatar: buildAvatarColorTheme({scheme}, tokens),\n badge: buildBadgeColorTheme(tokens?.badge, {scheme}, config),\n bg: _color(context, tokens?.bg),\n border: _color(context, tokens?.border),\n code: {\n bg: _color(context, tokens?.code?.bg),\n fg: _color(context, tokens?.code?.fg),\n },\n fg: _color(context, tokens?.fg),\n icon: _color(context, tokens?.icon),\n muted: {\n bg: _color(context, tokens?.muted?.bg),\n fg: _color(context, tokens?.muted?.fg),\n },\n kbd: {\n bg: _color(context, tokens?.kbd?.bg),\n fg: _color(context, tokens?.kbd?.fg),\n border: _color(context, tokens?.kbd?.border),\n },\n link: {\n fg: _color(context, tokens?.link?.fg),\n },\n skeleton: {\n from: _color(context, tokens?.skeleton?.from),\n to: _color(context, tokens?.skeleton?.to),\n },\n }\n}\n\nfunction buildSyntaxColorTheme(\n options: {scheme: ThemeColorSchemeKey},\n config?: ThemeConfig,\n): ThemeColorSyntax {\n const {scheme} = options\n const tokens = config?.color?.syntax\n const context: ColorTokenContext = {hue: 'gray', scheme}\n\n return {\n atrule: _color(context, tokens?.atrule),\n attrName: _color(context, tokens?.attrName),\n attrValue: _color(context, tokens?.attrValue),\n attribute: _color(context, tokens?.attribute),\n boolean: _color(context, tokens?.boolean),\n builtin: _color(context, tokens?.builtin),\n cdata: _color(context, tokens?.cdata),\n char: _color(context, tokens?.char),\n class: _color(context, tokens?.class),\n className: _color(context, tokens?.className),\n comment: _color(context, tokens?.comment),\n constant: _color(context, tokens?.constant),\n deleted: _color(context, tokens?.deleted),\n doctype: _color(context, tokens?.doctype),\n entity: _color(context, tokens?.entity),\n function: _color(context, tokens?.function),\n hexcode: _color(context, tokens?.hexcode),\n id: _color(context, tokens?.id),\n important: _color(context, tokens?.important),\n inserted: _color(context, tokens?.inserted),\n keyword: _color(context, tokens?.keyword),\n number: _color(context, tokens?.number),\n operator: _color(context, tokens?.operator),\n prolog: _color(context, tokens?.prolog),\n property: _color(context, tokens?.property),\n pseudoClass: _color(context, tokens?.pseudoClass),\n pseudoElement: _color(context, tokens?.pseudoElement),\n punctuation: _color(context, tokens?.punctuation),\n regex: _color(context, tokens?.regex),\n selector: _color(context, tokens?.selector),\n string: _color(context, tokens?.string),\n symbol: _color(context, tokens?.symbol),\n tag: _color(context, tokens?.tag),\n unit: _color(context, tokens?.unit),\n url: _color(context, tokens?.url),\n variable: _color(context, tokens?.variable),\n }\n}\n","import {color} from '@sanity/color'\n\nimport type {ThemeColorPalette} from '../config'\n\nexport const defaultColorPalette: ThemeColorPalette = color\n","import type {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 type {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 type {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 type {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 type {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 type {RGB, RGBA} from './types'\n\n/**\n * @internal\n * @deprecated Will be removed in next major version\n */\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 if (typeof color === 'string' && color.startsWith('var(')) {\n return `color-mix(in srgb, transparent, ${color} ${a * 100}%)`\n }\n\n const rgb = parseColor(color)\n\n return `rgba(${rgb.r},${rgb.g},${rgb.b},${a})`\n}\n","import {multiply, parseColor, type RGB, rgbToHex, screen} from './lib/color-fns'\nimport {clamp, range} from './lib/utils'\n\nconst RGB_RANGE: [number, number] = [0, 255]\n\nexport function mixThemeColor(\n value: string,\n options: {\n bg?: string\n blendMode: 'multiply' | 'screen'\n black: string\n white: string\n },\n): string {\n const {blendMode} = options\n\n const color = parseColor(value)\n const black = parseColor(options.black)\n const white = parseColor(options.white)\n\n const bg = options.bg ? parseColor(options.bg) : blendMode === 'multiply' ? white : black\n\n const paletteRange: {r: [number, number]; g: [number, number]; b: [number, number]} = {\n r: [black.r, white.r],\n g: [black.g, white.g],\n b: [black.b, white.b],\n }\n\n const convertedBgColor: RGB = {\n r: clamp(range(...paletteRange.r, ...RGB_RANGE, bg.r), ...RGB_RANGE),\n g: clamp(range(...paletteRange.g, ...RGB_RANGE, bg.g), ...RGB_RANGE),\n b: clamp(range(...paletteRange.b, ...RGB_RANGE, bg.b), ...RGB_RANGE),\n }\n\n const convertedColor: RGB = {\n r: clamp(range(...paletteRange.r, ...RGB_RANGE, color.r), ...RGB_RANGE),\n g: clamp(range(...paletteRange.g, ...RGB_RANGE, color.g), ...RGB_RANGE),\n b: clamp(range(...paletteRange.b, ...RGB_RANGE, color.b), ...RGB_RANGE),\n }\n\n const resultColor =\n blendMode === 'multiply'\n ? multiply(convertedBgColor, convertedColor)\n : screen(convertedBgColor, convertedColor)\n\n const v: RGB = {\n r: clamp(range(...RGB_RANGE, ...paletteRange.r, resultColor.r), ...paletteRange.r),\n g: clamp(range(...RGB_RANGE, ...paletteRange.g, resultColor.g), ...paletteRange.g),\n b: clamp(range(...RGB_RANGE, ...paletteRange.b, resultColor.b), ...paletteRange.b),\n }\n\n return rgbToHex(v)\n}\n","import type {ColorTint as ColorPaletteValue} from '@sanity/color'\n\nimport type {ThemeColorBlendModeKey} from '../color'\nimport {parseTokenValue, type ThemeColorPalette} from '../config'\nimport {hexToRgb, mix, rgba, rgbToHex} from './lib/color-fns'\nimport {mixThemeColor} from './mixThemeColor'\n\nexport interface RenderColorValueOptions {\n bg?: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n}\n\nexport function renderColorValue(str: string, options: RenderColorValueOptions): string {\n const {bg, blendMode, colorPalette} = options\n\n if (bg === 'white') {\n throw new Error('Cannot blend with white background')\n }\n\n const node = parseTokenValue(str)\n\n if (!node || node.type !== 'color') {\n throw new Error(`Invalid color token value: ${str}`)\n }\n\n let hex = ''\n\n if (node.key === 'black') {\n hex = renderColorHex(colorPalette.black)\n }\n\n if (node.key === 'white') {\n hex = renderColorHex(colorPalette.white)\n }\n\n if (node.hue && node.tint) {\n hex = renderColorHex(colorPalette[node.hue][node.tint])\n }\n\n if (!hex) {\n throw new Error(`Invalid color token value: ${str}`)\n }\n\n const hexBeforeMix = hex\n\n const mixOptions = {\n blendMode,\n bg,\n black: renderColorHex(colorPalette.black),\n // opacity: node.opacity,\n white: renderColorHex(colorPalette.white),\n }\n\n try {\n hex = mixThemeColor(hex, mixOptions)\n\n if (bg && node.mix !== undefined) {\n const from = hexToRgb(bg)\n const to = hexToRgb(hex)\n\n hex = rgbToHex(mix(from, to, node.mix))\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.warn('could not blend', hex, mixOptions)\n throw err\n }\n\n if (hex === '#aN') {\n // eslint-disable-next-line no-console\n console.warn(`invalid color token value: ${str}`)\n hex = hexBeforeMix\n }\n\n if (node.opacity !== undefined) {\n hex = rgba(hex, node.opacity)\n }\n\n return hex\n}\n\nfunction renderColorHex(color: string | ColorPaletteValue) {\n return typeof color === 'string' ? color : color.hex\n}\n","import {COLOR_HUES} from '@sanity/color'\n\nimport {\n THEME_COLOR_STATE_TONES,\n type ThemeColorAvatar_v2,\n type ThemeColorBadge_v2,\n type ThemeColorBadgeTone_v2,\n type ThemeColorBlendModeKey,\n type ThemeColorButton_v2,\n type ThemeColorButtonMode_v2,\n type ThemeColorButtonTone_v2,\n type ThemeColorCard_v2,\n type ThemeColorCardToneKey,\n type ThemeColorInput_v2,\n type ThemeColorInputMode_v2,\n type ThemeColorInputState_v2,\n type ThemeColorKBD,\n type ThemeColorScheme_v2,\n type ThemeColorSchemes_v2,\n type ThemeColorSelectable_v2,\n type ThemeColorSelectableTone_v2,\n type ThemeColorShadow,\n type ThemeColorState_v2,\n type ThemeColorSyntax,\n} from '../color'\nimport type {ThemeColorPalette, ThemeConfig} from '../config'\nimport {defaultColorPalette} from '../defaults/colorPalette'\nimport {renderColorValue, type RenderColorValueOptions} from './renderColorValue'\n\nexport function renderThemeColorSchemes(\n value: ThemeColorSchemes_v2,\n config?: ThemeConfig,\n): ThemeColorSchemes_v2 {\n const colorPalette = config?.palette ?? defaultColorPalette\n\n return {\n light: renderThemeColorScheme(colorPalette, value.light),\n dark: renderThemeColorScheme(colorPalette, value.dark),\n }\n}\n\nfunction renderThemeColorScheme(\n colorPalette: ThemeColorPalette,\n value: ThemeColorScheme_v2,\n): ThemeColorScheme_v2 {\n const toneEntries = Object.entries(value) as [ThemeColorCardToneKey, ThemeColorCard_v2][]\n\n const [, transparentTone] = toneEntries.find(([k]) => k === 'transparent')!\n const [, defaultTone] = toneEntries.find(([k]) => k === 'default')!\n\n // The `transparent` and `default` tones are special cases, so we render them first\n // (rendered without a `bg` option).\n // But the rest of the tones are rendered on top of the `default` tone's `bg`.\n const renderedTransparentTone = renderThemeColor(transparentTone, {colorPalette})\n const renderedDefaultTone = renderThemeColor(defaultTone, {colorPalette})\n\n // Get the `default` tone's `bg` property\n const bg = renderedDefaultTone.bg\n\n if (bg === 'white') {\n throw new Error('Cannot blend with white background')\n }\n\n return Object.fromEntries([\n ['transparent', renderedTransparentTone],\n ['default', renderedDefaultTone],\n ...toneEntries\n .filter(([k]) => k !== 'default' && k !== 'transparent')\n .map(([k, v]) => [k, renderThemeColor(v, {bg, colorPalette})]),\n ]) as ThemeColorScheme_v2\n}\n\nfunction renderThemeColor(\n value: ThemeColorCard_v2,\n options: {\n bg?: string\n colorPalette: ThemeColorPalette\n },\n): ThemeColorCard_v2 {\n const {colorPalette, bg} = options\n const blendMode = value._blend || 'multiply'\n const baseBg = renderColorValue(value.bg, {colorPalette, bg, blendMode})\n const colorOptions: RenderColorValueOptions = {colorPalette, bg: baseBg, blendMode}\n\n const button = renderThemeColorButton(value.button, {\n baseBg,\n blendMode,\n colorPalette,\n })\n\n const selectable = renderThemeColorSelectable(value.selectable, {\n colorPalette,\n baseBg,\n blendMode,\n })\n\n const shadow: ThemeColorShadow = {\n outline: renderColorValue(value.shadow.outline, colorOptions),\n umbra: renderColorValue(value.shadow.umbra, {\n ...colorOptions,\n bg: undefined,\n colorPalette: {...colorPalette, black: '#000000'},\n }),\n penumbra: renderColorValue(value.shadow.penumbra, {\n ...colorOptions,\n bg: undefined,\n colorPalette: {...colorPalette, black: '#000000'},\n }),\n ambient: renderColorValue(value.shadow.ambient, {\n ...colorOptions,\n bg: undefined,\n colorPalette: {...colorPalette, black: '#000000'},\n }),\n }\n\n return {\n _blend: blendMode,\n _dark: value._dark,\n accent: {\n fg: renderColorValue(value.accent.fg, colorOptions),\n },\n avatar: renderThemeColorAvatar(value.avatar, {baseBg, colorPalette, blendMode}),\n backdrop: renderColorValue(value.backdrop, colorOptions),\n badge: renderThemeColorBadge(value.badge, {baseBg, colorPalette, blendMode}),\n bg: baseBg,\n border: renderColorValue(value.border, colorOptions),\n button,\n code: {\n bg: renderColorValue(value.code.bg, colorOptions),\n fg: renderColorValue(value.code.fg, colorOptions),\n },\n fg: renderColorValue(value.fg, colorOptions),\n focusRing: renderColorValue(value.focusRing, colorOptions),\n icon: renderColorValue(value.icon, colorOptions),\n input: renderThemeColorInput(value.input, {baseBg, colorPalette, blendMode}),\n kbd: renderThemeColorKBD(value.kbd, {baseBg, colorPalette, blendMode}),\n link: {\n fg: renderColorValue(value.link.fg, colorOptions),\n },\n muted: {\n bg: renderColorValue(value.muted.bg, colorOptions),\n fg: renderColorValue(value.muted.fg, colorOptions),\n },\n shadow,\n skeleton: {\n from: renderColorValue(value.skeleton.from, colorOptions),\n to: renderColorValue(value.skeleton.to, colorOptions),\n },\n syntax: renderSyntaxColorTheme(value.syntax, {baseBg, colorPalette, blendMode}),\n selectable,\n }\n}\n\nfunction renderThemeColorKBD(\n value: ThemeColorKBD,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorKBD {\n const {baseBg, blendMode, colorPalette} = options\n\n const rootOptions: RenderColorValueOptions = {\n bg: baseBg,\n blendMode,\n colorPalette,\n }\n\n const bg = renderColorValue(value.bg, rootOptions)\n\n const colorOptions: RenderColorValueOptions = {\n bg,\n blendMode,\n colorPalette,\n }\n\n return {\n bg,\n fg: renderColorValue(value.fg, colorOptions),\n border: renderColorValue(value.border, colorOptions),\n }\n}\n\nfunction renderThemeColorAvatar(\n value: ThemeColorAvatar_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorAvatar_v2 {\n const colorAvatar = {} as ThemeColorAvatar_v2\n\n for (const hue of COLOR_HUES) {\n colorAvatar[hue] = renderThemeColorAvatarColor(value[hue], options)\n }\n\n return colorAvatar\n}\n\nfunction renderThemeColorAvatarColor(\n value: ThemeColorAvatar_v2['gray'],\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorAvatar_v2['gray'] {\n const {baseBg, blendMode: rootBlendMode, colorPalette} = options\n const blendMode = value._blend || 'multiply'\n\n const rootOptions: RenderColorValueOptions = {\n bg: baseBg,\n blendMode: rootBlendMode,\n colorPalette,\n }\n\n const bg = renderColorValue(value.bg, rootOptions)\n\n const colorOptions: RenderColorValueOptions = {\n bg,\n blendMode,\n colorPalette,\n }\n\n return {\n _blend: blendMode,\n bg,\n fg: renderColorValue(value.fg, colorOptions),\n }\n}\n\nfunction renderThemeColorBadge(\n value: ThemeColorBadge_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorBadge_v2 {\n const colorBadge = {} as ThemeColorBadge_v2\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n colorBadge[tone] = renderThemeColorBadgeColor(value[tone], options)\n }\n\n return colorBadge\n}\n\nfunction renderThemeColorBadgeColor(\n value: ThemeColorBadgeTone_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorBadgeTone_v2 {\n const {baseBg, blendMode: rootBlendMode, colorPalette} = options\n\n const blendMode = rootBlendMode\n\n const rootOptions: RenderColorValueOptions = {\n bg: baseBg,\n blendMode: rootBlendMode,\n colorPalette,\n }\n\n const bg = renderColorValue(value.bg, rootOptions)\n\n const colorOptions: RenderColorValueOptions = {\n bg,\n blendMode,\n colorPalette,\n }\n\n return {\n bg,\n dot: renderColorValue(value.dot, colorOptions),\n fg: renderColorValue(value.fg, colorOptions),\n icon: renderColorValue(value.icon, colorOptions),\n }\n}\n\nfunction renderThemeColorButton(\n value: ThemeColorButton_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorButton_v2 {\n return {\n default: renderThemeColorButtonTones(value.default, options),\n ghost: renderThemeColorButtonTones(value.ghost, options),\n bleed: renderThemeColorButtonTones(value.bleed, options),\n }\n}\n\nfunction renderThemeColorButtonTones(\n value: ThemeColorButtonMode_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorButtonMode_v2 {\n const colorButtonMode = {} as ThemeColorButtonMode_v2\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n colorButtonMode[tone] = renderThemeColorButtonStates(value[tone], options)\n }\n\n return colorButtonMode\n}\n\nfunction renderThemeColorButtonStates(\n value: ThemeColorButtonTone_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorButtonTone_v2 {\n return {\n enabled: renderThemeColorState(value.enabled, options),\n hovered: renderThemeColorState(value.hovered, options),\n pressed: renderThemeColorState(value.pressed, options),\n selected: renderThemeColorState(value.selected, options),\n disabled: renderThemeColorState(value.disabled, options),\n }\n}\n\nfunction renderThemeColorState(\n value: ThemeColorState_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorState_v2 {\n const {baseBg, blendMode: rootBlendMode, colorPalette} = options\n const blendMode = value._blend || 'multiply'\n\n const rootOptions: RenderColorValueOptions = {\n bg: baseBg,\n blendMode: rootBlendMode,\n colorPalette,\n }\n\n const bg = renderColorValue(value.bg, rootOptions)\n\n const colorOptions: RenderColorValueOptions = {\n bg,\n blendMode,\n colorPalette,\n }\n\n return {\n _blend: blendMode,\n accent: {\n fg: renderColorValue(value.accent.fg, colorOptions),\n },\n avatar: renderThemeColorAvatar(value.avatar, {baseBg: bg, colorPalette, blendMode}),\n badge: renderThemeColorBadge(value.badge, {baseBg: bg, colorPalette, blendMode}),\n bg,\n border: renderColorValue(value.border, colorOptions),\n code: {\n bg: renderColorValue(value.code.bg, colorOptions),\n fg: renderColorValue(value.code.fg, colorOptions),\n },\n fg: renderColorValue(value.fg, colorOptions),\n icon: renderColorValue(value.icon, colorOptions),\n link: {\n fg: renderColorValue(value.link.fg, colorOptions),\n },\n muted: {\n bg: renderColorValue(value.muted.bg, colorOptions),\n fg: renderColorValue(value.muted.fg, colorOptions),\n },\n kbd: {\n bg: renderColorValue(value.kbd.bg, colorOptions),\n fg: renderColorValue(value.kbd.fg, colorOptions),\n border: renderColorValue(value.kbd.border, colorOptions),\n },\n skeleton: {\n from: renderColorValue(value.skeleton?.from, colorOptions),\n to: renderColorValue(value.skeleton?.to, colorOptions),\n },\n }\n}\n\nfunction renderThemeColorInput(\n value: ThemeColorInput_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorInput_v2 {\n return {\n default: renderInputStatesColorTheme(value.default, options),\n invalid: renderInputStatesColorTheme(value.invalid, options),\n }\n}\n\nfunction renderInputStatesColorTheme(\n value: ThemeColorInputMode_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorInputMode_v2 {\n return {\n enabled: renderInputStateColorTheme(value.enabled, options),\n hovered: renderInputStateColorTheme(value.hovered, options),\n readOnly: renderInputStateColorTheme(value.readOnly, options),\n disabled: renderInputStateColorTheme(value.disabled, options),\n }\n}\n\nfunction renderInputStateColorTheme(\n value: ThemeColorInputState_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorInputState_v2 {\n const {baseBg, blendMode: rootBlendMode, colorPalette} = options\n const blendMode = value._blend || 'multiply'\n const rootOptions: RenderColorValueOptions = {colorPalette, bg: baseBg, blendMode: rootBlendMode}\n const bg = renderColorValue(value.bg, rootOptions)\n const colorOptions: RenderColorValueOptions = {colorPalette, bg, blendMode}\n\n return {\n _blend: blendMode,\n bg,\n border: renderColorValue(value.border, colorOptions),\n fg: renderColorValue(value.fg, colorOptions),\n muted: {\n bg: renderColorValue(value.muted.bg, colorOptions),\n },\n placeholder: renderColorValue(value.placeholder, colorOptions),\n }\n}\n\nfunction renderThemeColorSelectable(\n value: ThemeColorSelectable_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorSelectable_v2 {\n const colorSelectable = {} as ThemeColorSelectable_v2\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n colorSelectable[tone] = renderThemeColorSelectableStates(value[tone], options)\n }\n\n return colorSelectable\n}\n\nfunction renderThemeColorSelectableStates(\n value: ThemeColorSelectableTone_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorSelectableTone_v2 {\n return {\n enabled: renderThemeColorState(value.enabled, options),\n hovered: renderThemeColorState(value.hovered, options),\n pressed: renderThemeColorState(value.pressed, options),\n selected: renderThemeColorState(value.selected, options),\n disabled: renderThemeColorState(value.disabled, options),\n }\n}\n\nfunction renderSyntaxColorTheme(\n value: ThemeColorSyntax,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorSyntax {\n const {colorPalette, baseBg, blendMode} = options\n const colorOptions: RenderColorValueOptions = {colorPalette, bg: baseBg, blendMode}\n\n return {\n atrule: renderColorValue(value.atrule, colorOptions),\n attrName: renderColorValue(value.attrName, colorOptions),\n attrValue: renderColorValue(value.attrValue, colorOptions),\n attribute: renderColorValue(value.attribute, colorOptions),\n boolean: renderColorValue(value.boolean, colorOptions),\n builtin: renderColorValue(value.builtin, colorOptions),\n cdata: renderColorValue(value.cdata, colorOptions),\n char: renderColorValue(value.char, colorOptions),\n class: renderColorValue(value.class, colorOptions),\n className: renderColorValue(value.className, colorOptions),\n comment: renderColorValue(value.comment, colorOptions),\n constant: renderColorValue(value.constant, colorOptions),\n deleted: renderColorValue(value.deleted, colorOptions),\n doctype: renderColorValue(value.doctype, colorOptions),\n entity: renderColorValue(value.entity, colorOptions),\n function: renderColorValue(value.function, colorOptions),\n hexcode: renderColorValue(value.hexcode, colorOptions),\n id: renderColorValue(value.id, colorOptions),\n important: renderColorValue(value.important, colorOptions),\n inserted: renderColorValue(value.inserted, colorOptions),\n keyword: renderColorValue(value.keyword, colorOptions),\n number: renderColorValue(value.number, colorOptions),\n operator: renderColorValue(value.operator, colorOptions),\n prolog: renderColorValue(value.prolog, colorOptions),\n property: renderColorValue(value.property, colorOptions),\n pseudoClass: renderColorValue(value.pseudoClass, colorOptions),\n pseudoElement: renderColorValue(value.pseudoElement, colorOptions),\n punctuation: renderColorValue(value.punctuation, colorOptions),\n regex: renderColorValue(value.regex, colorOptions),\n selector: renderColorValue(value.selector, colorOptions),\n string: renderColorValue(value.string, colorOptions),\n symbol: renderColorValue(value.symbol, colorOptions),\n tag: renderColorValue(value.tag, colorOptions),\n unit: renderColorValue(value.unit, colorOptions),\n url: renderColorValue(value.url, colorOptions),\n variable: renderColorValue(value.variable, colorOptions),\n }\n}\n","import type {RootTheme} from '../../types'\nimport {v2_v0} from '../../versioning/v2_v0'\nimport type {ThemeConfig} from '../config'\nimport {defaultThemeConfig} from '../defaults/config'\nimport {defaultThemeFonts} from '../defaults/fonts'\nimport type {RootTheme_v2} from '../theme'\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","/** @public */\nexport const AVATAR_SIZE = [0, 1, 2, 3] as const\n\n/** @public */\nexport const CONTAINER_SCALE = [0, 1, 2, 3, 4, 5] as const\n\n/** @public */\nexport const CONTAINER = [...CONTAINER_SCALE, 'auto'] as const\n\n/** @public */\nexport const RADIUS = [0, 1, 2, 3, 4, 5, 6] as const\n\n/** @public */\nexport const SPACE = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] as const\n\n/** @public */\nexport const FONT_CODE_SIZE = [0, 1, 2, 3, 4] as const\n\n/** @public */\nexport const FONT_HEADING_SIZE = [0, 1, 2, 3, 4, 5] as const\n\n/** @public */\nexport const FONT_LABEL_SIZE = [0, 1, 2, 3, 4, 5] as const\n\n/** @public */\nexport const FONT_TEXT_SIZE = [0, 1, 2, 3, 4] as const\n\n/** @public */\nexport const SHADOW = [0, 1, 2, 3, 4, 5] as const\n","/** @public */\nexport const HUES = [\n 'gray',\n 'blue',\n 'purple',\n 'magenta',\n 'red',\n 'orange',\n 'yellow',\n 'green',\n 'cyan',\n] as const\n\n/** @public */\nexport const TINTS = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950] as const\n","import type {ColorToken} from './color'\nimport {type Hue, HUES, type Tint, TINTS} from './palette'\n\nconst RE_PERCENTAGE = /^([0-9]+)%/\nconst RE_OPACITY = /^(1|0\\.[0-9]+)?/\n\n/** @internal */\nexport interface ColorNode {\n type: 'color'\n name: 'black' | 'white'\n /** Between 0 and 1 */\n opacity: number\n /** Between 0 and 1 */\n mix: number\n}\n\n/** @internal */\nexport interface ColorTintNode {\n type: 'tint'\n hue: Hue\n tint: Tint\n /** Between 0 and 1 */\n opacity: number\n /** Between 0 and 1 */\n mix: number\n}\n\n/** @internal */\nexport interface ColorInheritNode {\n type: 'inherit'\n}\n\n/** @internal */\nexport type TokenizeColorResult = ColorNode | ColorTintNode | ColorInheritNode\n\n/** @internal */\nexport function _parseColorToken(str: ColorToken, options: {defaultHue: Hue}): TokenizeColorResult {\n const {defaultHue} = options\n\n let cursor = 0\n\n return parseColorNode()\n\n function _consume(s: string) {\n if (str.startsWith(s, cursor)) {\n cursor += s.length\n\n return s\n }\n\n return undefined\n }\n\n function _peek() {\n return str[cursor]\n }\n\n function parseColorNode(): ColorNode | ColorTintNode | ColorInheritNode {\n ignoreWhitespace()\n\n let v = _consume('black') || _consume('white')\n\n if (v) {\n return {\n type: 'color',\n name: v as 'black' | 'white',\n opacity: parseOpacity() ?? 1,\n mix: parseMix() ?? 1,\n }\n }\n\n for (const hue of HUES) {\n v = _consume(String(hue))\n\n if (v) {\n if (_peek() !== '-') {\n throw new Error(`Expected \"-\" after hue key`)\n }\n\n cursor += 1\n\n const tint = parseTint()\n\n if (!tint) {\n throw new Error(`Expected tint after hue`)\n }\n\n return {\n type: 'tint',\n hue,\n tint,\n opacity: parseOpacity() ?? 1,\n mix: parseMix() ?? 1,\n }\n }\n }\n\n const tint = parseTint()\n\n if (tint) {\n return {\n type: 'tint',\n hue: defaultHue,\n tint,\n opacity: parseOpacity() ?? 1,\n mix: parseMix() ?? 1,\n }\n }\n\n if (str === 'inherit') {\n return {\n type: 'inherit',\n }\n }\n\n throw new Error(`Invalid color: ${str}`)\n }\n\n function parseTint() {\n ignoreWhitespace()\n\n let v = Number(str.slice(cursor, cursor + 3)) as Tint\n\n if (TINTS.includes(v)) {\n cursor += 3\n\n return v\n }\n\n v = Number(str.slice(cursor, cursor + 2)) as Tint\n\n if (TINTS.includes(v)) {\n cursor += 2\n\n return v\n }\n\n return undefined\n }\n\n function parseMix() {\n ignoreWhitespace()\n\n const match = RE_PERCENTAGE.exec(str.slice(cursor))\n\n if (match) {\n cursor += match[0].length\n\n return parseFloat(match[1]) / 100\n }\n\n return undefined\n }\n\n function parseOpacity() {\n ignoreWhitespace()\n\n if (_peek() === '/') {\n cursor += 1\n\n const match = RE_OPACITY.exec(str.slice(cursor))\n\n if (match) {\n cursor += match[0].length\n\n return parseFloat(match[1])\n }\n\n cursor -= 1\n }\n\n return undefined\n }\n\n function ignoreWhitespace() {\n while (_peek() === ' ') {\n cursor++\n }\n }\n}\n","import type {ThemeFonts_v3} from './types'\n\nexport const defaultThemeFonts: ThemeFonts_v3 = {\n code: {\n family: 'ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace',\n weight: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n scale: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 15,\n letterSpacing: 0,\n customIconSize: 12,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n customIconSize: 16,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n customIconSize: 20,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 19,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n customIconSize: 24,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 22,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\n customIconSize: 28,\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 featureSettings: `'liga' 1, 'calt' 1, 'ss01' 1, 'ss03' 1, 'zero' 1`,\n weight: {\n regular: 600,\n medium: 700,\n semibold: 800,\n bold: 900,\n },\n scale: [\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 17,\n lineHeight: 19,\n letterSpacing: 0,\n customIconSize: 12,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n customIconSize: 20,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 29,\n letterSpacing: -0.25,\n customIconSize: 28,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 27,\n iconSize: 41,\n lineHeight: 35,\n letterSpacing: -0.5,\n customIconSize: 36,\n },\n {\n ascenderHeight: 9.5,\n descenderHeight: 8.5,\n fontSize: 33,\n iconSize: 49,\n lineHeight: 41,\n letterSpacing: -1,\n customIconSize: 44,\n },\n {\n ascenderHeight: 10.5,\n descenderHeight: 9.5,\n fontSize: 38,\n iconSize: 53,\n lineHeight: 47,\n letterSpacing: -1,\n customIconSize: 48,\n },\n ],\n },\n label: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", system-ui, sans-serif',\n weight: {\n regular: 500,\n medium: 600,\n semibold: 700,\n bold: 800,\n },\n scale: [\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 8.1,\n iconSize: 13,\n lineHeight: 10,\n letterSpacing: 0.5,\n customIconSize: 8,\n },\n {\n ascenderHeight: 1.5,\n descenderHeight: 2.5,\n fontSize: 9.5,\n iconSize: 15,\n lineHeight: 11,\n letterSpacing: 0.5,\n customIconSize: 10,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 10.8,\n iconSize: 17,\n lineHeight: 12,\n letterSpacing: 0.5,\n customIconSize: 12,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 12.25,\n iconSize: 19,\n lineHeight: 13,\n letterSpacing: 0.5,\n customIconSize: 14,\n },\n {\n ascenderHeight: 1.5,\n descenderHeight: 2.5,\n fontSize: 13.6,\n iconSize: 21,\n lineHeight: 14,\n letterSpacing: 0.5,\n customIconSize: 16,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 15,\n iconSize: 23,\n lineHeight: 15,\n letterSpacing: 0.5,\n customIconSize: 18,\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 weight: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n scale: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 15,\n letterSpacing: 0,\n customIconSize: 12,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n customIconSize: 16,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 15,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n customIconSize: 20,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 18,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n customIconSize: 24,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\n customIconSize: 28,\n },\n ],\n },\n}\n","import type {PartialTokens, Tokens} from './tokens'\n\n/** @internal */\nexport const defaultTokens: PartialTokens<Tokens> = {\n color: {\n '*': {\n backdrop: ['gray-100/0.5', 'black/0.5'],\n code: {\n bg: ['50', '950'],\n fg: ['700', '300'],\n token: {\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: ['green-600', 'green-400'],\n keyword: ['magenta-600', 'magenta-400'],\n number: ['purple-600', 'purple-400'],\n operator: ['magenta-600', 'magenta-400'],\n prolog: ['gray-600', 'gray-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 focusRing: ['blue-500', 'blue-500'],\n link: {\n fg: ['blue-600', 'blue-400'],\n },\n shadow: {\n outline: ['600/0.3', '500/0.4'],\n umbra: ['600/0.1', 'black/0.2'],\n penumbra: ['600/0.07', 'black/0.14'],\n ambient: ['600/0.06', 'black/0.12'],\n },\n skeleton: {\n from: ['200 70%', '800 35%'],\n to: ['200 40%', '800 50%'],\n },\n variant: {\n tinted: {\n '*': {\n bg: {\n 0: ['100 75%', '900 75%'],\n 4: ['300', '700'],\n },\n border: {\n 0: ['200', '700 50%'],\n 4: ['300 75%', '500'],\n },\n fg: {\n 0: ['900', '100'],\n 4: ['700', '300'],\n },\n },\n 'primary': {\n _hue: 'blue',\n bg: {0: ['inherit', 'inherit']},\n },\n 'suggest': {\n _hue: 'purple',\n bg: {0: ['inherit', 'inherit']},\n },\n 'positive': {\n _hue: 'green',\n bg: {0: ['inherit', 'inherit']},\n },\n 'caution': {\n _hue: 'yellow',\n bg: {0: ['inherit', 'inherit']},\n },\n 'critical': {\n _hue: 'red',\n bg: {0: ['inherit', 'inherit']},\n },\n },\n solid: {\n '*': {\n bg: {\n 0: ['500', '400'],\n 4: ['600', '300'],\n },\n border: {\n 0: ['400', '200'],\n 4: ['500', '100'],\n },\n fg: {\n 0: ['white', 'black'],\n 4: ['200', '700'],\n },\n },\n 'default': {\n bg: {\n 0: ['800', '200'],\n 4: ['black', 'white'],\n },\n border: {\n 0: ['700', '300'],\n 4: ['800', '200'],\n },\n },\n 'primary': {\n _hue: 'blue',\n },\n 'suggest': {\n _hue: 'purple',\n },\n 'positive': {\n _hue: 'green',\n },\n 'caution': {\n _hue: 'yellow',\n },\n 'critical': {\n _hue: 'red',\n },\n },\n },\n },\n 'transparent': {\n variant: {\n tinted: {\n '*': {\n bg: {\n 0: ['gray-50', 'black'],\n 4: ['200', '800'],\n },\n border: {\n 0: ['200 50%', '800 50%'],\n 4: ['300', '600'],\n },\n fg: {\n 0: ['black', '100'],\n 4: ['700', '400'],\n },\n },\n },\n },\n },\n 'default': {\n variant: {\n tinted: {\n '*': {\n bg: {\n 0: ['white', '950'],\n 4: ['200', '800'],\n },\n border: {\n 0: ['200 50%', '800 50%'],\n 4: ['300 75%', '600'],\n },\n fg: {\n 0: ['black', 'white'],\n 4: ['600', '400'],\n },\n },\n },\n },\n },\n 'primary': {\n _hue: 'blue',\n },\n 'suggest': {\n _hue: 'purple',\n },\n 'positive': {\n _hue: 'green',\n },\n 'caution': {\n _hue: 'yellow',\n },\n 'critical': {\n _hue: 'red',\n },\n },\n}\n","export function merge<T extends Record<string, any>>(...records: (T | undefined)[]): T {\n return (records.filter(Boolean) as T[]).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\nfunction isRecord(value: unknown): value is Record<string, any> {\n return value !== null && typeof value === 'object' && !Array.isArray(value)\n}\n","import {\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_STATE_TONES,\n type ThemeColorCardToneKey,\n type ThemeColorStateToneKey,\n} from '../v2'\nimport type {CardColorTokens} from './color/card'\nimport type {ElementColorTokens} from './color/element'\nimport {merge} from './merge'\nimport type {PartialTokens, Tokens} from './tokens'\n\nconst defaultElementTokens: ElementColorTokens = {\n _hue: 'gray',\n bg: {\n 0: ['950', '50'],\n 4: ['700', '300'],\n },\n border: {\n 0: ['700', '300'],\n 4: ['400', '600'],\n },\n fg: {\n 0: ['100', '900'],\n 4: ['400', '600'],\n },\n}\n\n/** @internal */\nexport function resolveTokens(tokens: PartialTokens<Tokens> = {}): Tokens {\n return {\n color: {\n '*': resolveCardColorTokens(tokens.color?.['*']),\n\n ...THEME_COLOR_CARD_TONES.reduce(\n (acc, tone) => {\n return {\n ...acc,\n [tone]: resolveCardColorTokens(merge(tokens.color?.['*'], tokens.color?.[tone])),\n }\n },\n {} as Record<ThemeColorCardToneKey, CardColorTokens>,\n ),\n },\n }\n}\n\nfunction resolveCardColorTokens(\n tokens: PartialTokens<CardColorTokens> | undefined,\n): CardColorTokens {\n return {\n _hue: tokens?._hue ?? 'gray',\n avatar: {\n gray: {\n _hue: tokens?.avatar?.gray?._hue ?? 'gray',\n bg: tokens?.avatar?.gray?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.gray?.fg ?? ['white', '900'],\n },\n blue: {\n _hue: tokens?.avatar?.blue?._hue ?? 'blue',\n bg: tokens?.avatar?.blue?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.blue?.fg ?? ['white', '900'],\n },\n purple: {\n _hue: tokens?.avatar?.purple?._hue ?? 'purple',\n bg: tokens?.avatar?.purple?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.purple?.fg ?? ['white', '900'],\n },\n magenta: {\n _hue: tokens?.avatar?.magenta?._hue ?? 'magenta',\n bg: tokens?.avatar?.magenta?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.magenta?.fg ?? ['white', '900'],\n },\n red: {\n _hue: tokens?.avatar?.red?._hue ?? 'red',\n bg: tokens?.avatar?.red?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.red?.fg ?? ['white', '900'],\n },\n orange: {\n _hue: tokens?.avatar?.orange?._hue ?? 'orange',\n bg: tokens?.avatar?.orange?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.orange?.fg ?? ['white', '900'],\n },\n yellow: {\n _hue: tokens?.avatar?.yellow?._hue ?? 'yellow',\n bg: tokens?.avatar?.yellow?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.yellow?.fg ?? ['white', '900'],\n },\n green: {\n _hue: tokens?.avatar?.green?._hue ?? 'green',\n bg: tokens?.avatar?.green?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.green?.fg ?? ['white', '900'],\n },\n cyan: {\n _hue: tokens?.avatar?.cyan?._hue ?? 'cyan',\n bg: tokens?.avatar?.cyan?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.cyan?.fg ?? ['white', '900'],\n },\n },\n backdrop: tokens?.backdrop ?? ['100', '900'],\n code: {\n bg: tokens?.code?.bg ?? ['50', '950'],\n fg: tokens?.code?.fg ?? ['600', '400'],\n token: {\n atrule: tokens?.code?.token?.atrule ?? ['600', '400'],\n attribute: tokens?.code?.token?.attribute ?? ['600', '400'],\n attrName: tokens?.code?.token?.attrName ?? ['600', '400'],\n attrValue: tokens?.code?.token?.attrValue ?? ['600', '400'],\n boolean: tokens?.code?.token?.boolean ?? ['600', '400'],\n builtin: tokens?.code?.token?.builtin ?? ['600', '400'],\n cdata: tokens?.code?.token?.cdata ?? ['600', '400'],\n char: tokens?.code?.token?.char ?? ['600', '400'],\n class: tokens?.code?.token?.class ?? ['600', '400'],\n className: tokens?.code?.token?.className ?? ['600', '400'],\n comment: tokens?.code?.token?.comment ?? ['400', '600'],\n constant: tokens?.code?.token?.constant ?? ['600', '400'],\n deleted: tokens?.code?.token?.deleted ?? ['600', '400'],\n doctype: tokens?.code?.token?.doctype ?? ['600', '400'],\n entity: tokens?.code?.token?.entity ?? ['600', '400'],\n function: tokens?.code?.token?.function ?? ['600', '400'],\n hexcode: tokens?.code?.token?.hexcode ?? ['600', '400'],\n id: tokens?.code?.token?.id ?? ['600', '400'],\n important: tokens?.code?.token?.important ?? ['600', '400'],\n inserted: tokens?.code?.token?.inserted ?? ['600', '400'],\n keyword: tokens?.code?.token?.keyword ?? ['600', '400'],\n number: tokens?.code?.token?.number ?? ['600', '400'],\n operator: tokens?.code?.token?.operator ?? ['600', '400'],\n prolog: tokens?.code?.token?.prolog ?? ['600', '400'],\n property: tokens?.code?.token?.property ?? ['600', '400'],\n pseudoClass: tokens?.code?.token?.pseudoClass ?? ['600', '400'],\n pseudoElement: tokens?.code?.token?.pseudoElement ?? ['600', '400'],\n punctuation: tokens?.code?.token?.punctuation ?? ['600', '400'],\n regex: tokens?.code?.token?.regex ?? ['600', '400'],\n selector: tokens?.code?.token?.selector ?? ['600', '400'],\n string: tokens?.code?.token?.string ?? ['600', '400'],\n symbol: tokens?.code?.token?.symbol ?? ['600', '400'],\n tag: tokens?.code?.token?.tag ?? ['600', '400'],\n unit: tokens?.code?.token?.unit ?? ['600', '400'],\n url: tokens?.code?.token?.url ?? ['600', '400'],\n variable: tokens?.code?.token?.variable ?? ['600', '400'],\n },\n },\n focusRing: tokens?.focusRing ?? ['500', '500'],\n link: {\n fg: tokens?.link?.fg ?? ['600', '400'],\n },\n shadow: {\n outline: tokens?.shadow?.outline ?? ['500', '500'],\n umbra: tokens?.shadow?.umbra ?? ['500', '500'],\n penumbra: tokens?.shadow?.penumbra ?? ['500', '500'],\n ambient: tokens?.shadow?.ambient ?? ['500', '500'],\n },\n skeleton: {\n from: tokens?.skeleton?.from ?? ['100', '900'],\n to: tokens?.skeleton?.to ?? ['50', '950'],\n },\n\n variant: {\n solid: {\n '*': resolveElementTokens(tokens?.variant?.solid?.['*']),\n ...THEME_COLOR_STATE_TONES.reduce(\n (acc, tone) => {\n acc[tone] = resolveElementTokens(\n merge(tokens, tokens?.variant?.solid?.['*'], tokens?.variant?.solid?.[tone]),\n )\n\n return acc\n },\n {} as Record<ThemeColorStateToneKey, ElementColorTokens>,\n ),\n },\n tinted: {\n '*': resolveElementTokens(tokens?.variant?.tinted?.['*']),\n ...THEME_COLOR_STATE_TONES.reduce(\n (acc, tone) => {\n acc[tone] = resolveElementTokens(\n merge(tokens, tokens?.variant?.tinted?.['*'], tokens?.variant?.tinted?.[tone]),\n )\n\n return acc\n },\n {} as Record<ThemeColorStateToneKey, ElementColorTokens>,\n ),\n },\n },\n }\n}\n\nfunction resolveElementTokens(tokens?: PartialTokens<ElementColorTokens>): ElementColorTokens {\n return {\n _hue: tokens?._hue ?? 'gray',\n bg: {\n 0: tokens?.bg?.[0] ?? defaultElementTokens.bg[0],\n 4: tokens?.bg?.[4] ?? defaultElementTokens.bg[4],\n },\n border: {\n 0: tokens?.border?.[0] ?? defaultElementTokens.border[0],\n 4: tokens?.border?.[4] ?? defaultElementTokens.border[4],\n },\n fg: {\n 0: tokens?.fg?.[0] ?? defaultElementTokens.fg[0],\n 4: tokens?.fg?.[4] ?? defaultElementTokens.fg[4],\n },\n }\n}\n","import {black, hues, white} from '@sanity/color'\n\nimport type {ThemeShadow} from '../v0'\nimport {defaultThemeConfig} from '../v2/defaults/config'\nimport {defaultThemeFonts} from './defaultFonts'\nimport {defaultTokens} from './defaultTokens'\nimport {resolveTokens} from './resolveTokens'\nimport type {Radius, Shadow, Space, Theme_v3, ThemeOptions} from './types'\n\n/** @public */\nexport function buildTheme_v3(options?: ThemeOptions): Theme_v3 {\n const {v2} = options ?? {}\n\n const tokens = resolveTokens(options?.tokens ?? defaultTokens)\n\n return {\n _version: 3,\n _tokens: tokens,\n avatar: v2?.avatar ?? defaultThemeConfig.avatar,\n button: v2?.button ?? defaultThemeConfig.button,\n card: v2?.card ?? defaultThemeConfig.card,\n color: tokens.color,\n container: v2?.container ?? defaultThemeConfig.container,\n font: defaultThemeFonts,\n input: v2?.input ?? defaultThemeConfig.input,\n layer: v2?.layer ?? defaultThemeConfig.layer,\n media: v2?.media ?? defaultThemeConfig.media,\n palette: {black, white, hues},\n // TODO\n radius: (v2?.radius ?? defaultThemeConfig.radius) as unknown as Record<Radius, number>,\n // TODO\n shadow: (v2?.shadow ?? defaultThemeConfig.shadow) as unknown as Record<\n Shadow,\n ThemeShadow | undefined\n >,\n // TODO\n space: (v2?.space ?? defaultThemeConfig.space) as unknown as Record<Space, number>,\n }\n}\n","/** @public */\nexport const COLOR_VARIANTS = ['tinted', 'solid'] as const\n\n/** @public */\nexport const AVATAR_COLORS = [\n 'gray',\n 'blue',\n 'purple',\n 'magenta',\n 'red',\n 'orange',\n 'yellow',\n 'green',\n 'cyan',\n] as const\n","import type {Theme} from '../types'\nimport type {Theme_v2} from '../v2'\nimport {defaultThemeConfig} from '../v2/defaults/config'\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"],"names":["defaultThemeConfig","avatar","sizes","distance","size","focusRing","offset","width","button","textWeight","border","BORDER_WIDTH","card","shadow","outline","OUTLINE_WIDTH","container","media","layer","dialog","zOffset","popover","tooltip","radius","umbra","penumbra","ambient","space","input","checkbox","radio","markSize","switch","height","padding","transitionDurationMs","transitionTimingFunction","select","text","style","root","transition","is_v2","themeProp","_version","themeColor_v0_v2_9","color","badge","colors","neutral","default","suggest","primary","bleed","ghost","selectable","cache","WeakMap","themeColor_v0_v2","color_v0","cached_v2","get","base","stateThemeColor_v0_v2","enabled","color_v2","_blend","dark","_dark","accent","backdrop","bg","stateTonesThemeColor_v0_v2","code","fg","icon","muted","inputStatesThemeColor_v0_v2","invalid","kbd","link","bg2","skeleton","from","to","syntax","set","v0","t","hovered","pressed","selected","disabled","positive","caution","critical","state","gray","spot","blue","purple","magenta","red","orange","yellow","green","cyan","dot","transparent","states","inputStateThemeColor_v0_v2","readOnly","placeholder","v0_v2","v2","fonts","font","shadows","styles","light","v2_v0","v3","cachedTheme","themeColor_v2_v0","inputStatesThemeColor_v2_v0","solid","inputStateThemeColor_v2_v0","Map","getScopedTheme","scheme","tone","_getCachedTheme","colorScheme_v0","layer_v0","colorScheme_v2","color_v2_9","layer_v2","theme","sanity","_resolved","_setCachedTheme","rootTheme","schemeCache","toneCache","has","createSelectableTones","opts","_createSelectableStates","createSolidTones","name","createButtonTones","mode","createButtonModes","createCardStates","black","white","lightest","lighter","darker","darkest","spots","tones","defaultOpts","key","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","className","comment","constant","deleted","doctype","entity","function","hexcode","id","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","symbol","tag","unit","url","variable","createInputModes","createMutedTones","createSpot","createColorTheme","partialOpts","builders","_createColorScheme","_createColor","defaultThemeFonts","family","weights","regular","medium","semibold","bold","ascenderHeight","descenderHeight","fontSize","iconSize","lineHeight","letterSpacing","heading","label","THEME_COLOR_SCHEMES","THEME_COLOR_BLEND_MODES","THEME_COLOR_CARD_TONES","THEME_COLOR_STATE_TONES","THEME_COLOR_STATES","THEME_COLOR_BUTTON_MODES","THEME_COLOR_INPUT_MODES","THEME_COLOR_INPUT_STATES","THEME_COLOR_AVATAR_COLORS","COLOR_HUES","isColorBlendModeValue","str","includes","isColorHueKey","isColorTintKey","COLOR_TINTS","isColorButtonMode","COLOR_CONFIG_STATE_KEYS","COLOR_CONFIG_CARD_KEYS","COLOR_CONFIG_BLEND_KEYS","COLOR_CONFIG_AVATAR_COLORS","COLOR_CONFIG_CARD_TONES","COLOR_CONFIG_STATE_TONES","COLOR_CONFIG_STATES","COLOR_CONFIG_INPUT_MODES","COLOR_CONFIG_INPUT_STATES","isColorConfigBaseTone","isColorConfigBaseKey","isColorConfigStateKey","isColorConfigStateTone","isColorConfigBlendKey","isColorValue","isColorOpacityValue","test","isColorMixPercentValue","parseTokenValue","segments","split","nextSegment","shift","segment0","segment0mix","tint","segment1","mix","Number","slice","type","opacity","hue","segment1mix","segment2","value","compileColorTokenValue","node","undefined","DEFAULT_COLOR_TOKEN_VALUE","resolveColorTokenValue","context","Error","defaultColorTokens","_hue","isRecord","Boolean","Array","isArray","merge","records","_records","filter","length","reduce","_merge","acc","source","Object","keys","prevValue","nextValue","resolveColorTokens","inputTokens","tokens","resolveBaseColorTokens","resolveButtonColorTokens","resolveInputColorTokens","resolveSelectableColorTokens","sparseTokens","resolveBaseColorTones","spec","resolveButtonToneColorTokens","resolveButtonModeColorTokens","resolveButtonStateColorTokens","resolveInputModeColorTokens","resolveInputStateColorTokens","resolveSelectableToneColorTokens","resolveSelectableStateColorTokens","buildColorTheme","config","resolvedConfig","buildColorScheme","options","colorScheme","buildCardColorTheme","_color","buildAvatarColorTheme","buildBadgeColorTheme","buildButtonColorTheme","buildInputColorTheme","buildSelectableColorTheme","buildShadowColorTheme","buildSyntaxColorTheme","stateTokens","_buildAvatarColorTheme","colorBadge","_buildBadgeColorTheme","parentTokens","cardTone","modes","buildButtonTonesColorTheme","buildButtonStatesColorTheme","buildButtonStateColorTheme","cardTokens","blendMode","buildInputStatesColorTheme","buildInputStateColorTheme","buildSelectableStatesColorTheme","buildSelectableStateColorTheme","defaultColorPalette","mixChannel","b","s","weight","delta","r","g","multiplyChannel","multiply","screenChannel","screen","lerp","x","y","a","invlerp","clamp","min","max","Math","range","x1","y1","x2","y2","round","hexToRgb","hex","hexR","hexG","hexB","parseInt","rgbaToRGBA","rgba","values","replace","parseFloat","rgbToHex","toString","rgbToHsl","cmin","cmax","h","l","abs","toFixed","hslToRgb","hsl","c","m","HEX_CHARS","HSL_RE","isHexChars","indexOf","isHex","parseHsl","res","exec","parseColor","startsWith","getContrastRatio","rgb1","rgb2","c1","rgb_lrgb","c2","l1","lrgb_luminance","l2","rgb_lrgb1","v","rgb","RGB_RANGE","mixThemeColor","paletteRange","convertedBgColor","convertedColor","resultColor","renderColorValue","colorPalette","renderColorHex","hexBeforeMix","mixOptions","err","console","warn","renderThemeColorSchemes","palette","renderThemeColorScheme","toneEntries","entries","transparentTone","find","k","defaultTone","renderedTransparentTone","renderThemeColor","renderedDefaultTone","fromEntries","map","baseBg","colorOptions","renderThemeColorButton","renderThemeColorSelectable","renderThemeColorAvatar","renderThemeColorBadge","renderThemeColorInput","renderThemeColorKBD","renderSyntaxColorTheme","rootOptions","colorAvatar","renderThemeColorAvatarColor","rootBlendMode","renderThemeColorBadgeColor","renderThemeColorButtonTones","colorButtonMode","renderThemeColorButtonStates","renderThemeColorState","renderInputStatesColorTheme","renderInputStateColorTheme","colorSelectable","renderThemeColorSelectableStates","buildTheme","colorTheme","AVATAR_SIZE","CONTAINER_SCALE","CONTAINER","RADIUS","SPACE","FONT_CODE_SIZE","FONT_HEADING_SIZE","FONT_LABEL_SIZE","FONT_TEXT_SIZE","SHADOW","HUES","TINTS","RE_PERCENTAGE","RE_OPACITY","_parseColorToken","defaultHue","cursor","parseColorNode","_consume","_peek","parseOpacity","parseMix","String","parseTint","match","ignoreWhitespace","scale","customIconSize","featureSettings","defaultTokens","token","variant","tinted","defaultElementTokens","resolveTokens","resolveCardColorTokens","resolveElementTokens","buildTheme_v3","_tokens","hues","COLOR_VARIANTS","AVATAR_COLORS","getTheme_v2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theme.cjs","sources":["../src/theme/v2/defaults/config.ts","../src/theme/versioning/is_v2.ts","../src/theme/versioning/themeColor_v2_v2_9.ts","../src/theme/versioning/themeColor_v0_v2.ts","../src/theme/versioning/v0_v2.ts","../src/theme/versioning/v2_v0.ts","../src/theme/getScopedTheme.ts","../src/theme/v2/build/_deprecated/color/_selectable/createSelectableTones.ts","../src/theme/v2/build/_deprecated/color/_solid/createSolidTones.ts","../src/theme/v2/build/_deprecated/color/button/createButtonTones.ts","../src/theme/v2/build/_deprecated/color/button/createButtonModes.ts","../src/theme/v2/build/_deprecated/color/card/createCardStates.ts","../src/theme/v2/build/_deprecated/color/defaults.ts","../src/theme/v2/build/_deprecated/color/input/createInputModes.ts","../src/theme/v2/build/_deprecated/color/muted/createMuted.ts","../src/theme/v2/build/_deprecated/color/spot/createSpot.ts","../src/theme/v2/build/_deprecated/color/factory.ts","../src/theme/v2/defaults/fonts.ts","../src/theme/v2/color/_constants.ts","../src/theme/v2/color/_helpers.ts","../src/theme/v2/config/system.ts","../src/theme/v2/config/helpers.ts","../src/theme/v2/config/tokens/parseTokenValue.ts","../src/theme/v2/build/colorToken/compileColorToken.ts","../src/theme/v2/build/colorToken/colorToken.ts","../src/theme/v2/defaults/colorTokens.ts","../src/theme/v2/build/lib/isRecord.ts","../src/theme/v2/build/merge.ts","../src/theme/v2/build/resolveColorTokens.ts","../src/theme/v2/build/buildColorTheme.ts","../src/theme/v2/defaults/colorPalette.ts","../src/theme/v2/build/lib/color-fns/blend/mix.ts","../src/theme/v2/build/lib/color-fns/blend/multiply.ts","../src/theme/v2/build/lib/color-fns/blend/screen.ts","../src/theme/v2/build/lib/utils.ts","../src/theme/v2/build/lib/color-fns/convert.ts","../src/theme/v2/build/lib/color-fns/parse.ts","../src/theme/v2/build/lib/color-fns/contrastRatio.ts","../src/theme/v2/build/lib/color-fns/rgba.ts","../src/theme/v2/build/mixThemeColor.ts","../src/theme/v2/build/renderColorValue.ts","../src/theme/v2/build/renderColorTheme.ts","../src/theme/v2/build/buildTheme.ts","../src/theme/v3/_constants.ts","../src/theme/v3/palette/constants.ts","../src/theme/v3/_parseColorToken.ts","../src/theme/v3/defaultFonts.ts","../src/theme/v3/defaultTokens.ts","../src/theme/v3/merge.ts","../src/theme/v3/resolveTokens.ts","../src/theme/v3/buildTheme_v3.ts","../src/theme/v3/color/_constants.ts","../src/theme/versioning/getTheme_v2.ts"],"sourcesContent":["import type {RootTheme_v2} from '../theme'\n\nconst BORDER_WIDTH = 1\nconst OUTLINE_WIDTH = 0.5\n\nexport const defaultThemeConfig: Omit<RootTheme_v2, 'color' | 'font'> = {\n _version: 2,\n avatar: {\n sizes: [\n {distance: -4, size: 19},\n {distance: -4, size: 25},\n {distance: -8, size: 33},\n {distance: -12, size: 49},\n ],\n focusRing: {offset: 1, width: 1},\n },\n button: {\n textWeight: 'medium',\n border: {width: BORDER_WIDTH},\n focusRing: {offset: -1, width: 1},\n },\n card: {\n border: {width: BORDER_WIDTH},\n focusRing: {offset: -1, width: 1},\n shadow: {outline: OUTLINE_WIDTH},\n },\n container: [320, 640, 960, 1280, 1600, 1920],\n media: [360, 600, 900, 1200, 1800, 2400],\n layer: {\n dialog: {zOffset: 600},\n popover: {zOffset: 400},\n tooltip: {zOffset: 200},\n },\n radius: [0, 1, 3, 7, 11, 15, 23, 43, 75, 127],\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 type {RootTheme} from '../types'\nimport type {RootTheme_v2} from '../v2'\n\n/** @internal */\nexport function is_v2(themeProp: RootTheme | RootTheme_v2): themeProp is RootTheme_v2 {\n return themeProp._version === 2\n}\n","import type {ThemeColorCard_v2} from '../v2'\n\n/**\n * Apply `neutral` and `suggest` if they're not already part of the color object,\n * as this was introduced in v2.9, but is not compatible with v2.0.\n *\n * @param color - The color object to upgrade\n * @returns The upgraded color object. Returns as-is if already upgraded.\n * @internal\n */\nexport function themeColor_v0_v2_9(color: ThemeColorCard_v2): ThemeColorCard_v2 {\n if ('neutral' in color.badge) {\n return color // Already at >= v2.9\n }\n\n // TypeScript narrows to `never` because the above should always be true\n const colors = color as ThemeColorCard_v2\n\n return {\n ...colors,\n badge: {\n ...colors.badge,\n neutral: colors.badge.default,\n suggest: colors.badge.primary,\n },\n button: {\n bleed: {\n ...colors.button.bleed,\n neutral: colors.button.bleed.default,\n suggest: colors.button.bleed.primary,\n },\n default: {\n ...colors.button.default,\n neutral: colors.button.default.default,\n suggest: colors.button.default.primary,\n },\n ghost: {\n ...colors.button.ghost,\n neutral: colors.button.ghost.default,\n suggest: colors.button.ghost.primary,\n },\n },\n selectable: {\n ...colors.selectable,\n neutral: colors.selectable.default,\n suggest: colors.selectable.primary,\n },\n }\n}\n","import type {\n ThemeColor,\n ThemeColorGenericState,\n ThemeColorInputState,\n ThemeColorInputStates,\n ThemeColorMuted,\n} from '../v0'\nimport type {\n ThemeColorCard_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n ThemeColorSelectable_v2,\n ThemeColorState_v2,\n} from '../v2'\n\nconst cache = new WeakMap<ThemeColor, ThemeColorCard_v2>()\n\n/** @internal */\nexport function themeColor_v0_v2(color_v0: ThemeColor): ThemeColorCard_v2 {\n const cached_v2 = cache.get(color_v0)\n\n if (cached_v2) return cached_v2\n\n const base = stateThemeColor_v0_v2(color_v0, color_v0.card.enabled)\n\n const color_v2: ThemeColorCard_v2 = {\n _blend: color_v0._blend || (color_v0.dark ? 'screen' : 'multiply'),\n _dark: color_v0.dark,\n accent: base.accent,\n avatar: base.avatar,\n backdrop: color_v0.base.shadow.ambient,\n badge: base.badge,\n bg: color_v0.base.bg,\n border: color_v0.base.border,\n button: {\n default: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.default),\n ghost: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.ghost),\n bleed: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.bleed),\n },\n code: base.code,\n fg: color_v0.base.fg,\n focusRing: color_v0.base.focusRing,\n icon: base.muted.fg,\n input: {\n default: inputStatesThemeColor_v0_v2(color_v0.input.default),\n invalid: inputStatesThemeColor_v0_v2(color_v0.input.invalid),\n },\n kbd: base.kbd,\n link: base.link,\n muted: {\n ...base.muted,\n bg: color_v0.selectable?.default.enabled.bg2 || color_v0.base.bg,\n },\n selectable: stateTonesThemeColor_v0_v2(color_v0, color_v0.selectable || color_v0.muted),\n shadow: color_v0.base.shadow,\n skeleton: {\n from: color_v0.skeleton?.from || color_v0.base.border,\n to: color_v0.skeleton?.to || color_v0.base.border,\n },\n syntax: color_v0.syntax,\n }\n\n cache.set(color_v0, color_v2)\n\n return color_v2\n}\n\nfunction stateTonesThemeColor_v0_v2(\n v0: ThemeColor,\n t: Omit<ThemeColorMuted, 'transparent'>,\n): ThemeColorSelectable_v2 {\n return {\n default: {\n enabled: stateThemeColor_v0_v2(v0, t.default.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.default.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.default.pressed),\n selected: stateThemeColor_v0_v2(v0, t.default.selected),\n disabled: stateThemeColor_v0_v2(v0, t.default.disabled),\n },\n neutral: {\n enabled: stateThemeColor_v0_v2(v0, t.default.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.default.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.default.pressed),\n selected: stateThemeColor_v0_v2(v0, t.default.selected),\n disabled: stateThemeColor_v0_v2(v0, t.default.disabled),\n },\n primary: {\n enabled: stateThemeColor_v0_v2(v0, t.primary.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.primary.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.primary.pressed),\n selected: stateThemeColor_v0_v2(v0, t.primary.selected),\n disabled: stateThemeColor_v0_v2(v0, t.primary.disabled),\n },\n suggest: {\n enabled: stateThemeColor_v0_v2(v0, t.primary.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.primary.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.primary.pressed),\n selected: stateThemeColor_v0_v2(v0, t.primary.selected),\n disabled: stateThemeColor_v0_v2(v0, t.primary.disabled),\n },\n positive: {\n enabled: stateThemeColor_v0_v2(v0, t.positive.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.positive.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.positive.pressed),\n selected: stateThemeColor_v0_v2(v0, t.positive.selected),\n disabled: stateThemeColor_v0_v2(v0, t.positive.disabled),\n },\n caution: {\n enabled: stateThemeColor_v0_v2(v0, t.caution.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.caution.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.caution.pressed),\n selected: stateThemeColor_v0_v2(v0, t.caution.selected),\n disabled: stateThemeColor_v0_v2(v0, t.caution.disabled),\n },\n critical: {\n enabled: stateThemeColor_v0_v2(v0, t.critical.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.critical.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.critical.pressed),\n selected: stateThemeColor_v0_v2(v0, t.critical.selected),\n disabled: stateThemeColor_v0_v2(v0, t.critical.disabled),\n },\n }\n}\n\nfunction stateThemeColor_v0_v2(v0: ThemeColor, state: ThemeColorGenericState): ThemeColorState_v2 {\n return {\n ...state,\n avatar: {\n gray: {\n bg: v0.spot.gray,\n fg: v0.base.bg,\n },\n blue: {\n bg: v0.spot.blue,\n fg: v0.base.bg,\n },\n purple: {\n bg: v0.spot.purple,\n fg: v0.base.bg,\n },\n magenta: {\n bg: v0.spot.magenta,\n fg: v0.base.bg,\n },\n red: {\n bg: v0.spot.red,\n fg: v0.base.bg,\n },\n orange: {\n bg: v0.spot.orange,\n fg: v0.base.bg,\n },\n yellow: {\n bg: v0.spot.yellow,\n fg: v0.base.bg,\n },\n green: {\n bg: v0.spot.green,\n fg: v0.base.bg,\n },\n cyan: {\n bg: v0.spot.cyan,\n fg: v0.base.bg,\n },\n },\n badge: {\n default: {\n bg: v0.muted.default.enabled.bg,\n fg: v0.muted.default.enabled.fg,\n dot: v0.muted.default.enabled.muted.fg,\n icon: v0.muted.default.enabled.muted.fg,\n },\n neutral: {\n bg: v0.muted.transparent.enabled.bg,\n fg: v0.muted.transparent.enabled.fg,\n dot: v0.muted.transparent.enabled.muted.fg,\n icon: v0.muted.transparent.enabled.muted.fg,\n },\n primary: {\n bg: v0.muted.primary.enabled.bg,\n fg: v0.muted.primary.enabled.fg,\n dot: v0.muted.primary.enabled.muted.fg,\n icon: v0.muted.primary.enabled.muted.fg,\n },\n suggest: {\n bg: v0.muted.primary.enabled.bg,\n fg: v0.muted.primary.enabled.fg,\n dot: v0.muted.primary.enabled.muted.fg,\n icon: v0.muted.primary.enabled.muted.fg,\n },\n positive: {\n bg: v0.muted.positive.enabled.bg,\n fg: v0.muted.positive.enabled.fg,\n dot: v0.muted.positive.enabled.muted.fg,\n icon: v0.muted.positive.enabled.muted.fg,\n },\n caution: {\n bg: v0.muted.caution.enabled.bg,\n fg: v0.muted.caution.enabled.fg,\n dot: v0.muted.caution.enabled.muted.fg,\n icon: v0.muted.caution.enabled.muted.fg,\n },\n critical: {\n bg: v0.muted.critical.enabled.bg,\n fg: v0.muted.critical.enabled.fg,\n dot: v0.muted.critical.enabled.muted.fg,\n icon: v0.muted.critical.enabled.muted.fg,\n },\n },\n kbd: {\n bg: v0.muted.default.enabled.bg,\n fg: v0.muted.default.enabled.fg,\n border: v0.muted.default.enabled.border,\n },\n muted: {\n ...v0.muted.default.enabled.muted,\n bg: state.bg2 || state.bg,\n },\n skeleton: {\n from: state.skeleton?.from || state.border,\n to: state.skeleton?.to || state.border,\n },\n }\n}\n\nfunction inputStatesThemeColor_v0_v2(states: ThemeColorInputStates): ThemeColorInputMode_v2 {\n return {\n enabled: inputStateThemeColor_v0_v2(states.enabled),\n disabled: inputStateThemeColor_v0_v2(states.disabled),\n readOnly: inputStateThemeColor_v0_v2(states.readOnly),\n hovered: inputStateThemeColor_v0_v2(states.hovered),\n }\n}\n\nfunction inputStateThemeColor_v0_v2(state: ThemeColorInputState): ThemeColorInputState_v2 {\n return {\n bg: state.bg,\n border: state.border,\n fg: state.fg,\n muted: {\n bg: state.bg2,\n },\n placeholder: state.placeholder,\n }\n}\n","import type {RootTheme} from '../types'\nimport type {RootTheme_v2} from '../v2'\nimport {defaultThemeConfig} from '../v2/defaults/config'\nimport {themeColor_v0_v2} from './themeColor_v0_v2'\n\nconst cache = new WeakMap<RootTheme, RootTheme_v2>()\n\n/** @internal */\nexport function v0_v2(v0: RootTheme): RootTheme_v2 {\n if (v0.v2) return v0.v2\n\n const cached_v2 = cache.get(v0)\n\n if (cached_v2) return cached_v2\n\n const {\n avatar,\n button,\n color,\n container,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusRing: _unused_focusRing,\n fonts: font,\n input,\n layer,\n media,\n radius,\n shadows: shadow,\n space,\n styles: style,\n } = v0\n\n const v2: RootTheme_v2 = {\n _version: 2,\n avatar: {\n ...defaultThemeConfig.avatar,\n ...avatar,\n },\n button: {\n ...defaultThemeConfig.button,\n ...button,\n },\n card: defaultThemeConfig.card,\n color: {\n light: {\n transparent: themeColor_v0_v2(color.light.transparent),\n default: themeColor_v0_v2(color.light.default),\n neutral: themeColor_v0_v2(color.light.transparent),\n primary: themeColor_v0_v2(color.light.primary),\n suggest: themeColor_v0_v2(color.light.primary),\n positive: themeColor_v0_v2(color.light.positive),\n caution: themeColor_v0_v2(color.light.caution),\n critical: themeColor_v0_v2(color.light.critical),\n },\n dark: {\n transparent: themeColor_v0_v2(color.dark.transparent),\n default: themeColor_v0_v2(color.dark.default),\n neutral: themeColor_v0_v2(color.dark.transparent),\n primary: themeColor_v0_v2(color.dark.primary),\n suggest: themeColor_v0_v2(color.dark.primary),\n positive: themeColor_v0_v2(color.dark.positive),\n caution: themeColor_v0_v2(color.dark.caution),\n critical: themeColor_v0_v2(color.dark.critical),\n },\n },\n container,\n font,\n input: {\n ...defaultThemeConfig.input,\n ...input,\n checkbox: {\n ...defaultThemeConfig.input.checkbox,\n ...input.checkbox,\n },\n radio: {\n ...defaultThemeConfig.input.radio,\n ...input.radio,\n },\n switch: {\n ...defaultThemeConfig.input.switch,\n ...input.switch,\n },\n },\n layer: layer ?? defaultThemeConfig.layer,\n media,\n radius,\n shadow,\n space,\n style,\n }\n\n cache.set(v0, v2)\n\n return v2\n}\n","import type {RootTheme} from '../types'\nimport type {ThemeColor, ThemeColorInputState, ThemeColorInputStates} from '../v0'\nimport type {\n RootTheme_v2,\n ThemeColorCard_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n} from '../v2'\nimport type {Theme_v3} from '../v3'\n\nconst cache = new WeakMap<RootTheme_v2, RootTheme>()\n\n/** @internal */\nexport function v2_v0(v2: RootTheme_v2, v3?: Theme_v3): 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 v3,\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 type {RootTheme, Theme} from './types'\nimport type {ThemeColor} from './v0'\nimport type {RootTheme_v2, ThemeColorCardToneKey, ThemeColorSchemeKey} from './v2'\nimport {defaultThemeConfig} from './v2/defaults/config'\nimport {is_v2} from './versioning/is_v2'\nimport {themeColor_v0_v2_9} from './versioning/themeColor_v2_v2_9'\nimport {v0_v2} from './versioning/v0_v2'\nimport {v2_v0} from './versioning/v2_v0'\n\n// cache[scheme][tone][rootTheme] = theme\nconst cache = new Map<\n ThemeColorSchemeKey,\n Map<ThemeColorCardToneKey, WeakMap<RootTheme | RootTheme_v2, Theme>>\n>()\n\n/** @internal */\nexport function getScopedTheme(\n themeProp: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n): Theme {\n const cachedTheme = _getCachedTheme(themeProp, scheme, tone)\n\n if (cachedTheme) return cachedTheme\n\n const v0 = is_v2(themeProp) ? v2_v0(themeProp) : themeProp\n const v2 = is_v2(themeProp) ? themeProp : v0_v2(themeProp)\n\n const colorScheme_v0 = v0.color[scheme] || v0.color.light\n const color_v0 = (colorScheme_v0 as Record<string, ThemeColor>)[tone] || colorScheme_v0.default\n const layer_v0 = v0.layer || defaultThemeConfig.layer\n\n const colorScheme_v2 = v2.color[scheme] || v2.color.light\n const color_v2 = colorScheme_v2[tone] || colorScheme_v2.default\n const color_v2_9 = themeColor_v0_v2_9(color_v2)\n const layer_v2 = v2.layer || defaultThemeConfig.layer\n\n const theme: Theme = {\n sanity: {\n ...v0,\n color: color_v0,\n layer: layer_v0,\n v2: {\n ...v2,\n _resolved: true,\n color: color_v2_9,\n layer: layer_v2,\n },\n },\n }\n\n _setCachedTheme(themeProp, scheme, tone, theme)\n\n return theme\n}\n\nfunction _getCachedTheme(\n rootTheme: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n) {\n const schemeCache = cache.get(scheme)\n\n if (!schemeCache) return undefined\n\n const toneCache = schemeCache.get(tone)\n\n if (!toneCache) return undefined\n\n return toneCache.get(rootTheme)\n}\n\nfunction _setCachedTheme(\n rootTheme: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n theme: Theme,\n) {\n if (!cache.has(scheme)) cache.set(scheme, new Map())\n\n const schemeCache = cache.get(scheme)!\n\n if (!schemeCache.has(tone)) schemeCache.set(tone, new WeakMap())\n\n const toneCache = schemeCache.get(tone)!\n\n toneCache.set(rootTheme, theme)\n}\n","import type {\n ThemeColorBase,\n ThemeColorMuted,\n ThemeColorSelectable,\n ThemeColorSelectableStates,\n ThemeColorSolid,\n} from '../../../../../v0'\nimport type {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 type {ThemeColorBase, ThemeColorName, ThemeColorSolid} from '../../../../../v0'\nimport type {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 type {\n ThemeColorBase,\n ThemeColorButtonTones,\n ThemeColorMuted,\n ThemeColorSolid,\n} from '../../../../../v0'\nimport type {ThemeColorButtonModeKey} from '../../../../color'\nimport type {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 type {\n ThemeColorBase,\n ThemeColorButton,\n ThemeColorMuted,\n ThemeColorSolid,\n} from '../../../../../v0'\nimport type {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 type {\n ThemeColorBase,\n ThemeColorCard,\n ThemeColorMuted,\n ThemeColorName,\n ThemeColorSolid,\n} from '../../../../../v0'\nimport type {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 type {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 type {\n ThemeColorBase,\n ThemeColorInput,\n ThemeColorMuted,\n ThemeColorSolid,\n} from '../../../../../v0'\nimport type {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 type {ThemeColorBase, ThemeColorMuted, ThemeColorName} from '../../../../../v0'\nimport type {ThemeColorBuilderOpts} from '../factory'\n\nexport function createMutedTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n): ThemeColorMuted {\n return {\n default: {\n enabled: opts.muted({base, dark, tone: 'default', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'default', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'default', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'default', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'default', name, state: 'selected'}),\n },\n transparent: {\n enabled: opts.muted({base, dark, tone: 'transparent', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'transparent', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'transparent', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'transparent', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'transparent', name, state: 'selected'}),\n },\n primary: {\n enabled: opts.muted({base, dark, tone: 'primary', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'primary', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'primary', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'primary', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'primary', name, state: 'selected'}),\n },\n positive: {\n enabled: opts.muted({base, dark, tone: 'positive', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'positive', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'positive', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'positive', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'positive', name, state: 'selected'}),\n },\n caution: {\n enabled: opts.muted({base, dark, tone: 'caution', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'caution', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'caution', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'caution', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'caution', name, state: 'selected'}),\n },\n critical: {\n enabled: opts.muted({base, dark, tone: 'critical', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'critical', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'critical', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'critical', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'critical', name, state: 'selected'}),\n },\n }\n}\n","import type {ThemeColorBase, ThemeColorSpot} from '../../../../../v0'\nimport type {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 type {\n ThemeColor,\n ThemeColorBase,\n ThemeColorButtonStates,\n ThemeColorGenericState,\n ThemeColorInputState,\n ThemeColorMuted,\n ThemeColorMutedTone,\n ThemeColorName,\n ThemeColorScheme,\n ThemeColorSchemes,\n ThemeColorSolid,\n ThemeColorSolidTone,\n ThemeColorSpotKey,\n ThemeColorToneKey,\n} from '../../../../v0'\nimport type {ThemeColorButtonModeKey, ThemeColorSyntax} from '../../../color'\nimport {createSelectableTones} from './_selectable/createSelectableTones'\nimport {createSolidTones} from './_solid/createSolidTones'\nimport {createButtonModes} from './button/createButtonModes'\nimport {createCardStates} from './card/createCardStates'\nimport {defaultOpts} from './defaults'\nimport {createInputModes} from './input/createInputModes'\nimport {createMutedTones} from './muted/createMuted'\nimport {createSpot} from './spot/createSpot'\n\n/**\n * @public\n * @deprecated Use `buildColorTheme` instead.\n */\nexport interface ThemeColorBuilderOpts {\n base: (opts: {dark: boolean; name: ThemeColorName}) => ThemeColorBase\n solid: (opts: {\n base: ThemeColorBase\n dark: boolean\n tone: ThemeColorName\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n muted: (opts: {\n base: ThemeColorBase\n dark: boolean\n tone: ThemeColorToneKey\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n card: (opts: {\n base: ThemeColorBase\n dark: boolean\n muted: ThemeColorMuted\n name: ThemeColorName\n solid: ThemeColorSolid\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n button: (opts: {\n dark: boolean\n mode: ThemeColorButtonModeKey\n base: ThemeColorBase\n solid: ThemeColorSolidTone\n muted: ThemeColorMutedTone\n }) => ThemeColorButtonStates\n input: (opts: {\n base: ThemeColorBase\n solid: ThemeColorSolidTone\n muted: ThemeColorMutedTone\n dark: boolean\n mode: 'default' | 'invalid'\n state: 'enabled' | 'disabled' | 'hovered' | 'readOnly'\n }) => ThemeColorInputState\n selectable: (opts: {\n dark: boolean\n base: ThemeColorBase\n solid: ThemeColorSolid\n muted: ThemeColorMuted\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical'\n }) => ThemeColorGenericState\n syntax: (opts: {base: ThemeColorBase; dark: boolean}) => ThemeColorSyntax\n spot: (opts: {base: ThemeColorBase; dark: boolean; key: ThemeColorSpotKey}) => string\n}\n\n/**\n * @public\n * @deprecated Use `ThemeConfig` instead.\n */\nexport type PartialThemeColorBuilderOpts = Partial<ThemeColorBuilderOpts>\n\n/**\n * @public\n * @deprecated Use `buildColorTheme` instead.\n */\nexport function createColorTheme(\n partialOpts: PartialThemeColorBuilderOpts = {},\n): ThemeColorSchemes {\n const builders: ThemeColorBuilderOpts = {...defaultOpts, ...partialOpts}\n\n return {\n light: _createColorScheme(builders, false),\n dark: _createColorScheme(builders, true),\n }\n}\n\n/**\n * @internal\n */\nfunction _createColorScheme(opts: ThemeColorBuilderOpts, dark: boolean): ThemeColorScheme {\n return {\n default: _createColor(opts, dark, 'default'),\n transparent: _createColor(opts, dark, 'transparent'),\n primary: _createColor(opts, dark, 'primary'),\n positive: _createColor(opts, dark, 'positive'),\n caution: _createColor(opts, dark, 'caution'),\n critical: _createColor(opts, dark, 'critical'),\n }\n}\n\n/**\n * @internal\n */\nfunction _createColor(\n opts: ThemeColorBuilderOpts,\n dark: boolean,\n name: ThemeColorName,\n): ThemeColor {\n const base = opts.base({dark, name})\n const solid = createSolidTones(opts, base, dark, name)\n const muted = createMutedTones(opts, base, dark, name)\n\n return {\n base,\n button: createButtonModes(opts, base, dark, solid, muted),\n card: createCardStates(opts, base, dark, name, solid, muted),\n dark,\n input: createInputModes(opts, base, dark, solid, muted),\n selectable: createSelectableTones(opts, base, dark, solid, muted),\n spot: createSpot(opts, base, dark),\n syntax: opts.syntax({base, dark}),\n solid,\n muted,\n }\n}\n","import type {ThemeFonts} from '../../v0'\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: 600,\n medium: 700,\n semibold: 800,\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.25,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 27,\n iconSize: 41,\n lineHeight: 35,\n letterSpacing: -0.5,\n },\n {\n ascenderHeight: 9.5,\n descenderHeight: 8.5,\n fontSize: 33,\n iconSize: 49,\n lineHeight: 41,\n letterSpacing: -1,\n },\n {\n ascenderHeight: 10.5,\n descenderHeight: 9.5,\n fontSize: 38,\n iconSize: 53,\n lineHeight: 47,\n letterSpacing: -1,\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: 500,\n medium: 600,\n semibold: 700,\n bold: 800,\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: 1.5,\n descenderHeight: 2.5,\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: 1.5,\n descenderHeight: 2.5,\n fontSize: 13.6,\n iconSize: 21,\n lineHeight: 14,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 15,\n iconSize: 23,\n lineHeight: 15,\n letterSpacing: 0.5,\n },\n ],\n },\n text: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n weights: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 15,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 15,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 18,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\n },\n ],\n },\n}\n","import {COLOR_HUES} from '@sanity/color'\n\n/** @public */\nexport const THEME_COLOR_SCHEMES = ['light', 'dark'] as const\n\n/** @public */\nexport const THEME_COLOR_BLEND_MODES = ['multiply', 'screen'] as const\n\n/** @public */\nexport const THEME_COLOR_CARD_TONES = [\n 'transparent',\n 'default',\n 'neutral',\n 'primary', // deprecated\n 'suggest',\n 'positive',\n 'caution',\n 'critical',\n] as const\n\n/** @public */\nexport const THEME_COLOR_STATE_TONES = [\n 'default',\n 'neutral',\n 'primary', // deprecated\n 'suggest',\n 'positive',\n 'caution',\n 'critical',\n] as const\n\n/** @public */\nexport const THEME_COLOR_STATES = ['enabled', 'hovered', 'pressed', 'selected', 'disabled'] as const\n\n/** @public */\nexport const THEME_COLOR_BUTTON_MODES = ['default', 'ghost', 'bleed'] as const\n\n/** @public */\nexport const THEME_COLOR_INPUT_MODES = ['default', 'invalid'] as const\n\n/** @public */\nexport const THEME_COLOR_INPUT_STATES = ['enabled', 'hovered', 'readOnly', 'disabled'] as const\n\n/** @public */\nexport const THEME_COLOR_AVATAR_COLORS = COLOR_HUES\n","import {COLOR_HUES, COLOR_TINTS, type ColorHueKey, type ColorTintKey} from '@sanity/color'\n\nimport {THEME_COLOR_BLEND_MODES, THEME_COLOR_BUTTON_MODES} from './_constants'\nimport type {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 type {Hue, Tint} from '../../v3'\nimport {\n THEME_COLOR_AVATAR_COLORS,\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_INPUT_MODES,\n THEME_COLOR_INPUT_STATES,\n THEME_COLOR_STATE_TONES,\n THEME_COLOR_STATES,\n type ThemeColorBlendModeKey,\n} from '../color'\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 | `${Hue}`\n | `${Hue} ${number}%`\n | `${Hue}/${Tint}`\n | `${Hue}/${Tint} ${number}%`\n | `${Hue}/${Tint}/${ColorConfigOpacityValue}`\n | `${Tint}`\n | `${Tint} ${number}%`\n | `${Tint}/${ColorConfigOpacityValue}`\n\n/** @public */\nexport type ThemeColorTokenValue = [ColorConfigValue, ColorConfigValue]\n\n/** @public */\nexport type ColorBlendModeTokenValue = [ThemeColorBlendModeKey, ThemeColorBlendModeKey]\n\n/** @public */\nexport const COLOR_CONFIG_AVATAR_COLORS = ['*', ...THEME_COLOR_AVATAR_COLORS] as const\n\n/** @public */\nexport type ColorConfigAvatarColor = (typeof COLOR_CONFIG_AVATAR_COLORS)[number]\n\n/** @public */\nexport const COLOR_CONFIG_CARD_TONES = ['*', ...THEME_COLOR_CARD_TONES] as const\n\n/** @public */\nexport type ColorConfigCardTone = (typeof COLOR_CONFIG_CARD_TONES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_STATE_TONES = ['*', ...THEME_COLOR_STATE_TONES] as const\n\n/** @public */\nexport type ColorConfigStateTone = (typeof COLOR_CONFIG_STATE_TONES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_STATES = ['*', ...THEME_COLOR_STATES] as const\n\n/** @public */\nexport type ColorConfigState = (typeof COLOR_CONFIG_STATES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_INPUT_MODES = ['*', ...THEME_COLOR_INPUT_MODES] as const\n\n/** @public */\nexport type ColorConfigInputMode = (typeof COLOR_CONFIG_INPUT_MODES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_INPUT_STATES = ['*', ...THEME_COLOR_INPUT_STATES] as const\n\n/** @public */\nexport type ColorConfigInputState = (typeof COLOR_CONFIG_INPUT_STATES)[number]\n","import {\n COLOR_CONFIG_BLEND_KEYS,\n COLOR_CONFIG_CARD_KEYS,\n COLOR_CONFIG_CARD_TONES,\n COLOR_CONFIG_STATE_KEYS,\n COLOR_CONFIG_STATE_TONES,\n type ColorConfigBlendKey,\n type ColorConfigCardKey,\n type ColorConfigCardTone,\n type ColorConfigOpacityValue,\n type ColorConfigStateKey,\n type ColorConfigStateTone,\n} from './system'\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 isColorValue(str: string): str is 'black' | 'white' {\n return str === 'black' || str === 'white'\n}\n\n/** @internal */\nexport function isColorOpacityValue(str: string): str is ColorConfigOpacityValue {\n return str === '0' || /^0\\.[0-9]+$/.test(str) || str === '1'\n}\n","import {isColorBlendModeValue, isColorHueKey, isColorTintKey} from '../../color'\nimport {isColorOpacityValue, isColorValue} from '../helpers'\nimport type {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 type {TokenColorValueNode} from '../../config'\n\nexport function compileColorTokenValue(node: TokenColorValueNode): string {\n let key = ''\n\n if (node.key === 'black' || node.key === 'white') {\n key = node.key\n } else {\n key = `${node.hue}/${node.tint}`\n }\n\n if (node.mix !== undefined) {\n return `${key} ${node.mix * 100}%`\n }\n\n if (node.opacity !== undefined) {\n key += `/${node.opacity}`\n }\n\n return key\n}\n","import {parseTokenValue, type ThemeColorTokenValue} from '../../config'\nimport {compileColorTokenValue} from './compileColorToken'\nimport type {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 type {ThemeColorTokens} from '../config'\n\nexport const defaultColorTokens: ThemeColorTokens = {\n base: {\n '*': {\n _blend: ['multiply', 'screen'],\n accent: {\n fg: ['purple/600', 'purple/400'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n backdrop: ['gray/200/0.5', 'black/0.5'],\n badge: {\n '*': {\n bg: ['100', '900'],\n fg: ['600', '400'],\n icon: ['500', '500'],\n dot: ['500', '500'],\n },\n 'positive': {\n bg: ['200 50%', '900'],\n fg: ['600', '500'],\n },\n 'caution': {\n bg: ['200 50%', '900'],\n fg: ['600', '500'],\n },\n },\n bg: ['50', '950'],\n border: ['200', '800'],\n code: {\n bg: ['50', '950'],\n fg: ['600', '400'],\n },\n fg: ['800', '200'],\n focusRing: ['blue/500', 'blue/500'],\n icon: ['600', '400'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['600', '400'],\n border: ['200', '800'],\n },\n link: {\n fg: ['blue/600', 'blue/300'],\n },\n muted: {\n bg: ['50', '950'],\n fg: ['700 75%', '300 75%'],\n },\n shadow: {\n outline: ['500/0.3', '500/0.4'],\n umbra: ['gray/500/0.1', 'black/0.2'],\n penumbra: ['gray/500/0.07', 'black/0.14'],\n ambient: ['gray/500/0.06', 'black/0.12'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n 'transparent': {\n bg: ['50', 'black'],\n },\n 'default': {\n bg: ['white', '950'],\n fg: ['800', '200'],\n muted: {\n fg: ['600', '400'],\n },\n },\n 'primary': {_hue: 'blue'},\n 'suggest': {_hue: 'purple'},\n 'positive': {\n _hue: 'green',\n shadow: {outline: ['500/0.4', '500/0.4']},\n },\n 'caution': {\n _hue: 'yellow',\n shadow: {outline: ['600/0.3', '500/0.4']},\n },\n 'critical': {_hue: 'red'},\n },\n button: {\n default: {\n '*': {\n '*': {\n _blend: ['screen', 'multiply'],\n accent: {\n fg: ['purple/300', 'purple/700'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['900', '100'],\n fg: ['400', '600'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['500', '400'],\n border: ['500/0', '400/0'],\n code: {\n bg: ['500 20%', '400 20%'],\n fg: ['200', '600'],\n },\n fg: ['white', 'black'],\n icon: ['100 70%', '900 70%'],\n kbd: {\n bg: ['black', 'white'],\n fg: ['200', '600'],\n border: ['800', '200'],\n },\n link: {\n fg: ['blue/200', 'blue/600'],\n },\n muted: {\n bg: ['950', '50'],\n fg: ['100 70%', '900 70%'],\n },\n skeleton: {\n from: ['900', '100'],\n to: ['900 50%', '100 50%'],\n },\n },\n 'hovered': {\n bg: ['600', '300'],\n border: ['700/0', '300/0'],\n },\n 'pressed': {\n bg: ['700', '300'],\n },\n 'selected': {\n bg: ['700', '300'],\n },\n 'disabled': {\n _hue: 'gray',\n accent: {\n fg: ['100 70%', '900 70%'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['gray/500', 'gray/400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['gray/700', 'gray/300'],\n fg: ['white', 'black'],\n dot: ['white', 'black'],\n icon: ['white', 'black'],\n },\n },\n bg: ['300', '600'],\n code: {\n bg: ['950', '50'],\n fg: ['300', '600'],\n },\n fg: ['300', '600'],\n muted: {\n bg: ['950', '50'],\n fg: ['300', '600'],\n },\n kbd: {\n bg: ['black', 'white'],\n fg: ['white', 'black'],\n border: ['700', '300'],\n },\n link: {\n fg: ['100 70%', '900 70%'],\n },\n },\n },\n 'default': {\n '*': {\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n bg: ['800', '200'],\n muted: {\n bg: ['950', '50'],\n fg: ['400', '600'],\n },\n },\n 'hovered': {\n bg: ['900', '100'],\n },\n 'pressed': {\n bg: ['black', 'white'],\n },\n 'selected': {\n bg: ['black', 'white'],\n },\n },\n },\n ghost: {\n '*': {\n '*': {\n _blend: ['multiply', 'screen'],\n accent: {\n fg: ['purple/700 60%', 'purple/300 70%'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['100', '900'],\n fg: ['600', '400'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['50', '950'],\n border: ['100', '900'],\n code: {\n bg: ['500 10%', '400 10%'],\n fg: ['700 60%', '400 60%'],\n },\n fg: ['600', '400'],\n icon: ['700 60%', '300 60%'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['600', '400'],\n border: ['200', '800'],\n },\n link: {\n fg: ['blue/700 60%', 'blue/300 60%'],\n },\n muted: {\n bg: ['100', '950'],\n fg: ['700 60%', '300 60%'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n 'hovered': {\n bg: ['100', '900'],\n fg: ['700', '300'],\n },\n 'pressed': {\n bg: ['200', '800'],\n fg: ['800', '200'],\n },\n 'selected': {\n bg: ['200', '800'],\n fg: ['800', '200'],\n },\n 'disabled': {\n _hue: 'gray',\n accent: {\n fg: ['200', '800'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['gray/100', 'gray/900'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n _hue: 'gray',\n bg: ['50', '950'],\n fg: ['gray/200', 'gray/800'],\n dot: ['gray/200', 'gray/800'],\n icon: ['gray/200', 'gray/800'],\n },\n },\n border: ['100', '900'],\n code: {\n bg: ['50', '950'],\n fg: ['200', '800'],\n },\n fg: ['400', '600'],\n icon: ['300', '700'],\n muted: {\n fg: ['300', '700'],\n },\n kbd: {\n bg: ['white', 'black'],\n fg: ['200', '800'],\n border: ['100', '900'],\n },\n link: {\n fg: ['200', '800'],\n },\n },\n },\n 'positive': {\n '*': {\n border: ['600 20%', '800'],\n },\n },\n 'caution': {\n '*': {\n border: ['600 20%', '800'],\n },\n },\n },\n bleed: {\n '*': {\n '*': {\n _blend: ['multiply', 'screen'],\n accent: {\n fg: ['purple/700 70%', 'purple/300 70%'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['100', '900'],\n fg: ['600', '400'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['white', 'black'],\n border: ['white/0', 'black/0'],\n code: {\n bg: ['50', '950'],\n fg: ['700 75%', '300 75%'],\n },\n fg: ['700', '300'],\n icon: ['700 75%', '300 75%'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['700', '300'],\n border: ['200', '800'],\n },\n link: {\n fg: ['blue/700 70%', 'blue/300 70%'],\n },\n muted: {\n bg: ['100', '950'],\n fg: ['700 75%', '300 75%'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n 'hovered': {\n bg: ['50', '900'],\n fg: ['800', '200'],\n icon: ['800 70%', '300 70%'],\n },\n 'pressed': {\n bg: ['100', '800'],\n fg: ['800', '200'],\n icon: ['800 70%', '200 70%'],\n },\n 'selected': {\n bg: ['100', '900'],\n fg: ['800', '200'],\n icon: ['800 60%', '200 60%'],\n },\n 'disabled': {\n _hue: 'gray',\n accent: {\n fg: ['200', '800'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['gray/100', 'gray/900'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n _hue: 'gray',\n bg: ['50', '950'],\n fg: ['gray/200', 'gray/800'],\n dot: ['gray/200', 'gray/800'],\n icon: ['gray/200', 'gray/800'],\n },\n },\n code: {\n bg: ['50', '950'],\n fg: ['200', '800'],\n },\n fg: ['400', '600'],\n icon: ['300', '700'],\n muted: {\n fg: ['400', '600'],\n },\n kbd: {\n bg: ['white', 'black'],\n fg: ['200', '800'],\n border: ['100', '900'],\n },\n link: {\n fg: ['200', '800'],\n },\n },\n },\n },\n },\n input: {\n '*': {\n '*': {\n _blend: ['multiply', 'screen'],\n bg: ['white', 'black'],\n border: ['200', '700'],\n fg: ['black', '200'],\n muted: {\n bg: ['50', '950'],\n },\n placeholder: ['400', '600'],\n },\n 'hovered': {\n border: ['300', '700'],\n },\n 'readOnly': {\n bg: ['50', '950'],\n border: ['200', '800'],\n fg: ['800', '200'],\n },\n 'disabled': {\n bg: ['50', '950'],\n fg: ['400', '600'],\n border: ['100', '900'],\n placeholder: ['200', '800 50%'],\n },\n },\n 'invalid': {\n '*': {\n _hue: 'red',\n bg: ['100', '950'],\n },\n },\n },\n selectable: {\n '*': {\n '*': {\n _blend: ['multiply', 'screen'],\n accent: {\n fg: ['purple/700 70%', 'purple/300 70%'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n bg: ['100', '900'],\n fg: ['600', '400'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['white', 'black'],\n border: ['200', '800'],\n code: {\n bg: ['50', '950'],\n fg: ['600', '400'],\n },\n fg: ['700', '300'],\n icon: ['700 75%', '300 75%'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['600', '400'],\n border: ['200', '800'],\n },\n link: {\n fg: ['blue/700 70%', 'blue/300 70%'],\n },\n muted: {\n bg: ['50', '950'],\n fg: ['700 75%', '300 75%'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100 50%', '900 50%'],\n },\n },\n 'hovered': {\n bg: ['50', '950'],\n },\n 'pressed': {\n bg: ['100', '900'],\n },\n 'selected': {\n _blend: ['screen', 'multiply'],\n accent: {\n fg: ['purple/300', 'purple/700'],\n },\n avatar: {\n '*': {\n _blend: ['multiply', 'screen'],\n bg: ['white', 'black'],\n fg: ['black', 'white'],\n },\n },\n badge: {\n '*': {\n bg: ['900', '100'],\n fg: ['400', '600'],\n dot: ['500', '500'],\n icon: ['500', '500'],\n },\n },\n bg: ['500', '400'],\n border: ['500 20%', '400 20%'],\n code: {\n bg: ['500 20%', '400 20%'],\n fg: ['200', '600'],\n },\n fg: ['white', 'black'],\n icon: ['100 70%', '900 70%'],\n kbd: {\n bg: ['black', 'white'],\n fg: ['200', '600'],\n border: ['800', '200'],\n },\n link: {\n fg: ['blue/200', 'blue/600'],\n },\n muted: {\n bg: ['500 10%', '400 10%'],\n fg: ['100 70%', '900 70%'],\n },\n skeleton: {\n from: ['900', '100'],\n to: ['900 50%', '100 50%'],\n },\n },\n 'disabled': {\n _hue: 'gray',\n accent: {\n fg: ['200', '800'],\n },\n avatar: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['gray/100', 'gray/900'],\n fg: ['white', 'black'],\n },\n },\n badge: {\n '*': {\n _hue: 'gray',\n bg: ['50', '950'],\n fg: ['gray/200', 'gray/800'],\n dot: ['gray/200', 'gray/800'],\n icon: ['gray/200', 'gray/800'],\n },\n },\n border: ['100', '900'],\n code: {\n bg: ['50', '950'],\n fg: ['200', '800'],\n },\n fg: ['200', '800'],\n icon: ['200', '800'],\n kbd: {\n bg: ['white', 'black'],\n fg: ['200', '800'],\n border: ['100', '900'],\n },\n link: {\n fg: ['200', '800'],\n },\n muted: {\n bg: ['50 50%', '950 50%'],\n fg: ['200', '800'],\n },\n },\n },\n 'default': {\n selected: {\n _hue: 'blue',\n },\n },\n 'critical': {\n disabled: {\n bg: ['50 50%', '950 50%'],\n },\n },\n },\n syntax: {\n atrule: ['purple/600', 'purple/400'],\n attrName: ['green/600', 'green/400'],\n attrValue: ['yellow/600', 'yellow/400'],\n attribute: ['yellow/600', 'yellow/400'],\n boolean: ['purple/600', 'purple/400'],\n builtin: ['purple/600', 'purple/400'],\n cdata: ['yellow/600', 'yellow/400'],\n char: ['yellow/600', 'yellow/400'],\n class: ['orange/600', 'orange/400'],\n className: ['cyan/600', 'cyan/400'],\n comment: ['gray/400', 'gray/600'],\n constant: ['purple/600', 'purple/400'],\n deleted: ['red/600', 'red/400'],\n entity: ['red/600', 'red/400'],\n function: ['green/600', 'green/400'],\n hexcode: ['blue/600', 'blue/400'],\n id: ['purple/600', 'purple/400'],\n important: ['purple/600', 'purple/400'],\n inserted: ['yellow/600', 'yellow/400'],\n keyword: ['magenta/600', 'magenta/400'],\n number: ['purple/600', 'purple/400'],\n operator: ['magenta/600', 'magenta/400'],\n property: ['blue/600', 'blue/400'],\n pseudoClass: ['yellow/600', 'yellow/400'],\n pseudoElement: ['yellow/600', 'yellow/400'],\n punctuation: ['gray/600', 'gray/400'],\n regex: ['blue/600', 'blue/400'],\n selector: ['red/600', 'red/400'],\n string: ['yellow/600', 'yellow/400'],\n symbol: ['purple/600', 'purple/400'],\n tag: ['red/600', 'red/400'],\n unit: ['orange/600', 'orange/400'],\n url: ['red/600', 'red/400'],\n variable: ['red/600', 'red/400'],\n },\n}\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {isRecord} from './lib/isRecord'\n\nexport function merge<T extends Record<string, any>>(...records: (T | undefined)[]): T {\n const _records = records.filter(Boolean) as T[]\n\n if (_records.length === 0) {\n return {} as T\n }\n\n return _records.reduce(_merge, {} as T)\n}\n\nfunction _merge<T extends Record<string, any>>(acc: T, source: T): T {\n for (const key of Object.keys(source)) {\n const prevValue = acc[key]\n const nextValue = source[key]\n\n if (isRecord(prevValue) && isRecord(nextValue)) {\n ;(acc as any)[key] = merge(prevValue, nextValue)\n } else {\n ;(acc as any)[key] = nextValue\n }\n }\n\n return acc\n}\n","import {COLOR_HUES, type ColorHueKey} from '@sanity/color'\n\nimport {\n THEME_COLOR_BUTTON_MODES,\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_INPUT_MODES,\n THEME_COLOR_INPUT_STATES,\n THEME_COLOR_STATE_TONES,\n THEME_COLOR_STATES,\n type ThemeColorButtonModeKey,\n type ThemeColorCardToneKey,\n type ThemeColorStateKey,\n type ThemeColorStateToneKey,\n} from '../color'\nimport type {\n ColorConfigCardTone,\n ColorConfigInputMode,\n ColorConfigInputState,\n ColorConfigStateTone,\n ThemeColorAvatarTokens,\n ThemeColorBadgeTokens,\n ThemeColorBaseTokens,\n ThemeColorButtonTokens,\n ThemeColorInputStateTokens,\n ThemeColorInputTokens,\n ThemeColorStatesTokens,\n ThemeColorStateTokens,\n ThemeColorTokens,\n} from '../config'\nimport {defaultColorTokens} from '../defaults/colorTokens'\nimport {merge} from './merge'\n\n/**\n * Convert a tree of color tokens from a sparse format to a dense format.\n */\nexport function resolveColorTokens(inputTokens?: ThemeColorTokens): ThemeColorTokens {\n const tokens = merge(defaultColorTokens, inputTokens)\n\n return {\n base: resolveBaseColorTokens(tokens),\n button: resolveButtonColorTokens(tokens),\n input: resolveInputColorTokens(tokens),\n selectable: resolveSelectableColorTokens(tokens),\n syntax: tokens.syntax,\n }\n}\n\nfunction resolveBaseColorTokens(sparseTokens: ThemeColorTokens) {\n const tokens: Partial<Record<ColorConfigCardTone, ThemeColorBaseTokens>> = {}\n\n // base tones\n for (const tone of THEME_COLOR_CARD_TONES) {\n tokens[tone] = resolveBaseColorTones(sparseTokens, tone)\n }\n\n return tokens\n}\n\nfunction resolveBaseColorTones(\n inputTokens: ThemeColorTokens,\n tone: ThemeColorCardToneKey,\n): ThemeColorBaseTokens {\n const spec = merge(inputTokens?.base?.['*'], inputTokens?.base?.[tone])\n\n const hue = spec._hue || inputTokens?.base?.[tone]?._hue || 'gray'\n\n return {\n ...spec,\n _hue: hue,\n avatar: COLOR_HUES.reduce((acc, hue) => {\n return {\n ...acc,\n [hue]: merge({_hue: hue}, spec.avatar?.['*'], spec.avatar?.[hue]),\n }\n }, {} as ThemeColorAvatarTokens),\n badge: THEME_COLOR_STATE_TONES.reduce((acc, tone) => {\n return {\n ...acc,\n [tone]: {\n _hue: inputTokens?.base?.[tone]?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.[tone],\n },\n }\n }, {} as ThemeColorBadgeTokens),\n }\n}\n\nfunction resolveButtonColorTokens(\n inputTokens: ThemeColorTokens,\n): Partial<Record<ThemeColorButtonModeKey, ThemeColorButtonTokens>> {\n const tokens: Partial<Record<ThemeColorButtonModeKey, ThemeColorButtonTokens>> = {}\n\n for (const mode of THEME_COLOR_BUTTON_MODES) {\n tokens[mode] = resolveButtonToneColorTokens(inputTokens, mode)\n }\n\n return tokens\n}\n\nfunction resolveButtonToneColorTokens(\n inputTokens: ThemeColorTokens,\n mode: ThemeColorButtonModeKey,\n): ThemeColorButtonTokens {\n const tokens: ThemeColorButtonTokens = {}\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n tokens[tone] = resolveButtonModeColorTokens(inputTokens, mode, tone)\n }\n\n return tokens\n}\n\nfunction resolveButtonModeColorTokens(\n inputTokens: ThemeColorTokens,\n mode: ThemeColorButtonModeKey,\n tone: ThemeColorStateToneKey,\n): ThemeColorStatesTokens {\n const tokens: ThemeColorStatesTokens = {}\n\n for (const state of THEME_COLOR_STATES) {\n tokens[state] = resolveButtonStateColorTokens(inputTokens, tone, mode, state)\n }\n\n return tokens\n}\n\nfunction resolveButtonStateColorTokens(\n inputTokens: ThemeColorTokens,\n tone: ThemeColorStateToneKey,\n mode: ThemeColorButtonModeKey,\n state: ThemeColorStateKey,\n): ThemeColorStateTokens {\n const spec = merge(\n inputTokens?.button?.[mode]?.['*']?.['*'],\n inputTokens?.button?.[mode]?.[tone]?.['*'],\n inputTokens?.button?.[mode]?.['*']?.[state],\n inputTokens?.button?.[mode]?.[tone]?.[state],\n )\n\n const hue = spec._hue || inputTokens?.base?.[tone]?._hue\n\n return {\n ...spec,\n _hue: hue,\n avatar: COLOR_HUES.reduce((acc, hue) => {\n return {\n ...acc,\n [hue]: merge({_hue: hue}, spec.avatar?.['*'], spec.avatar?.[hue]),\n }\n }, {} as ThemeColorAvatarTokens),\n badge: THEME_COLOR_STATE_TONES.reduce((acc, tone) => {\n return {\n ...acc,\n [tone]: {\n _hue: inputTokens?.base?.[tone]?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.[tone],\n },\n }\n }, {} as ThemeColorBadgeTokens),\n }\n}\n\nfunction resolveInputColorTokens(\n inputTokens: ThemeColorTokens,\n): Partial<Record<ColorConfigInputMode, ThemeColorInputTokens>> {\n const tokens: Partial<Record<ColorConfigInputMode, ThemeColorInputTokens>> = {}\n\n for (const mode of THEME_COLOR_INPUT_MODES) {\n tokens[mode] = resolveInputModeColorTokens(inputTokens, mode)\n }\n\n return tokens\n}\n\nfunction resolveInputModeColorTokens(\n inputTokens: ThemeColorTokens,\n mode: ColorConfigInputMode,\n): ThemeColorInputTokens {\n const states: ThemeColorInputTokens = {}\n\n for (const state of THEME_COLOR_INPUT_STATES) {\n states[state] = resolveInputStateColorTokens(inputTokens, mode, state)\n }\n\n return states\n}\n\nfunction resolveInputStateColorTokens(\n inputTokens: ThemeColorTokens,\n mode: ColorConfigInputMode,\n state: ColorConfigInputState,\n): ThemeColorInputStateTokens {\n const spec = merge(\n inputTokens?.input?.['*']?.['*'],\n inputTokens?.input?.[mode]?.['*'],\n inputTokens?.input?.['*']?.[state],\n inputTokens?.input?.[mode]?.[state],\n )\n\n const hue = spec._hue || inputTokens?.input?.[mode]?._hue\n\n return {...spec, _hue: hue}\n}\n\nfunction resolveSelectableColorTokens(\n inputTokens: ThemeColorTokens,\n): Partial<Record<ColorConfigStateTone, {_hue?: ColorHueKey} & ThemeColorStatesTokens>> {\n const tokens: ThemeColorButtonTokens = {}\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n tokens[tone] = resolveSelectableToneColorTokens(inputTokens, tone)\n }\n\n return tokens\n}\n\nfunction resolveSelectableToneColorTokens(\n inputTokens: ThemeColorTokens,\n tone: ThemeColorStateToneKey,\n): {_hue?: ColorHueKey} & ThemeColorStatesTokens {\n const states: {_hue?: ColorHueKey} & ThemeColorStatesTokens = {\n _hue: inputTokens?.selectable?.[tone]?._hue || inputTokens?.base?.[tone]?._hue,\n }\n\n for (const state of THEME_COLOR_STATES) {\n states[state] = resolveSelectableStateColorTokens(inputTokens, tone, state)\n }\n\n return states\n}\n\nfunction resolveSelectableStateColorTokens(\n inputTokens: ThemeColorTokens,\n tone: ThemeColorStateToneKey,\n state: ThemeColorStateKey,\n) {\n const spec = merge(\n inputTokens?.selectable?.['*']?.['*'],\n inputTokens?.selectable?.[tone]?.['*'],\n inputTokens?.selectable?.['*']?.[state],\n inputTokens?.selectable?.[tone]?.[state],\n )\n\n const hue = spec._hue || inputTokens?.base?.[tone]?._hue\n\n return {\n ...spec,\n _hue: hue,\n avatar: COLOR_HUES.reduce((acc, hue) => {\n return {\n ...acc,\n [hue]: merge({_hue: hue}, spec.avatar?.['*'], spec.avatar?.[hue]),\n }\n }, {} as ThemeColorAvatarTokens),\n badge: THEME_COLOR_STATE_TONES.reduce((acc, tone) => {\n return {\n ...acc,\n [tone]: {\n _hue: inputTokens?.base?.[tone]?._hue || hue,\n ...spec.badge?.['*'],\n ...spec.badge?.[tone],\n },\n }\n }, {} as ThemeColorBadgeTokens),\n }\n}\n","import {\n THEME_COLOR_BUTTON_MODES,\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_STATE_TONES,\n THEME_COLOR_STATES,\n type ThemeColorAvatar_v2,\n type ThemeColorAvatarColorKey,\n type ThemeColorAvatarHue_v2,\n type ThemeColorBadge_v2,\n type ThemeColorButton_v2,\n type ThemeColorButtonMode_v2,\n type ThemeColorButtonModeKey,\n type ThemeColorButtonTone_v2,\n type ThemeColorCard_v2,\n type ThemeColorCardToneKey,\n type ThemeColorInput_v2,\n type ThemeColorInputMode_v2,\n type ThemeColorInputState_v2,\n type ThemeColorScheme_v2,\n type ThemeColorSchemeKey,\n type ThemeColorSchemes_v2,\n type ThemeColorShadow,\n type ThemeColorState_v2,\n type ThemeColorStateKey,\n type ThemeColorStateToneKey,\n type ThemeColorSyntax,\n} from '../color'\nimport type {ThemeColorBadgeTokens, ThemeColorStateTokens, ThemeConfig} from '../config'\nimport {type ColorTokenContext, resolveColorTokenValue as _color} from './colorToken'\nimport {resolveColorTokens} from './resolveColorTokens'\n\nexport function buildColorTheme(config?: ThemeConfig): ThemeColorSchemes_v2 {\n const resolvedConfig: ThemeConfig = {\n ...config,\n color: resolveColorTokens(config?.color),\n }\n\n return {\n light: buildColorScheme({scheme: 'light'}, resolvedConfig),\n dark: buildColorScheme({scheme: 'dark'}, resolvedConfig),\n }\n}\n\nfunction buildColorScheme(\n options: {scheme: ThemeColorSchemeKey},\n config: ThemeConfig,\n): ThemeColorScheme_v2 {\n const {scheme} = options\n\n const colorScheme = {} as ThemeColorScheme_v2\n\n for (const tone of THEME_COLOR_CARD_TONES) {\n colorScheme[tone] = buildCardColorTheme({scheme, tone}, config)\n }\n\n return colorScheme\n}\n\nfunction buildCardColorTheme(\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorCardToneKey},\n config?: ThemeConfig,\n): ThemeColorCard_v2 {\n const {scheme, tone} = options\n const tokens = config?.color?.base?.[tone]\n const hue = tokens?._hue || 'gray'\n const context: ColorTokenContext = {hue, scheme}\n const blendMode = tokens?._blend || ['multiply', 'screen']\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n _dark: scheme === 'dark',\n accent: {\n fg: _color(context, tokens?.accent?.fg),\n },\n avatar: buildAvatarColorTheme({scheme}, tokens),\n backdrop: _color(context, tokens?.backdrop),\n badge: buildBadgeColorTheme(tokens?.badge, {scheme}, config),\n bg: _color(context, tokens?.bg),\n border: _color(context, tokens?.border),\n button: buildButtonColorTheme({scheme, tone}, config),\n code: {\n bg: _color(context, tokens?.code?.bg),\n fg: _color(context, tokens?.code?.fg),\n },\n fg: _color(context, tokens?.fg),\n focusRing: _color(context, tokens?.focusRing),\n icon: _color(context, tokens?.icon),\n input: buildInputColorTheme({scheme, tone}, config),\n kbd: {\n bg: _color(context, tokens?.kbd?.bg),\n fg: _color(context, tokens?.kbd?.fg),\n border: _color(context, tokens?.kbd?.border),\n },\n link: {\n fg: _color(context, tokens?.link?.fg),\n },\n muted: {\n bg: _color(context, tokens?.muted?.bg),\n fg: _color(context, tokens?.muted?.fg),\n },\n selectable: buildSelectableColorTheme({scheme, tone}, config),\n shadow: buildShadowColorTheme({scheme, tone}, config),\n skeleton: {\n from: _color(context, tokens?.skeleton?.from),\n to: _color(context, tokens?.skeleton?.to),\n },\n syntax: buildSyntaxColorTheme({scheme}, config),\n }\n}\n\nfunction buildShadowColorTheme(\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorCardToneKey},\n config?: ThemeConfig,\n): ThemeColorShadow {\n const {scheme, tone} = options\n const tokens = config?.color?.base?.[tone]\n const hue = tokens?._hue || 'gray'\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n outline: _color(context, tokens?.shadow?.outline),\n umbra: _color(context, tokens?.shadow?.umbra),\n penumbra: _color(context, tokens?.shadow?.penumbra),\n ambient: _color(context, tokens?.shadow?.ambient),\n }\n}\n\nfunction buildAvatarColorTheme(\n options: {scheme: ThemeColorSchemeKey},\n stateTokens?: ThemeColorStateTokens,\n): ThemeColorAvatar_v2 {\n const {scheme} = options\n\n return {\n gray: _buildAvatarColorTheme({color: 'gray', scheme}, stateTokens),\n blue: _buildAvatarColorTheme({color: 'blue', scheme}, stateTokens),\n purple: _buildAvatarColorTheme({color: 'purple', scheme}, stateTokens),\n magenta: _buildAvatarColorTheme({color: 'magenta', scheme}, stateTokens),\n red: _buildAvatarColorTheme({color: 'red', scheme}, stateTokens),\n orange: _buildAvatarColorTheme({color: 'orange', scheme}, stateTokens),\n yellow: _buildAvatarColorTheme({color: 'yellow', scheme}, stateTokens),\n green: _buildAvatarColorTheme({color: 'green', scheme}, stateTokens),\n cyan: _buildAvatarColorTheme({color: 'cyan', scheme}, stateTokens),\n }\n}\n\nfunction _buildAvatarColorTheme(\n options: {color: ThemeColorAvatarColorKey; scheme: ThemeColorSchemeKey},\n stateTokens?: ThemeColorStateTokens,\n): ThemeColorAvatarHue_v2 {\n const {color, scheme} = options\n const tokens = stateTokens?.avatar?.[color]\n const context: ColorTokenContext = {hue: tokens?._hue || 'gray', scheme}\n const blendMode = tokens?._blend || ['screen', 'multiply']\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n bg: _color(context, tokens?.bg),\n fg: _color(context, tokens?.fg),\n }\n}\n\nfunction buildBadgeColorTheme(\n tokens: ThemeColorBadgeTokens | undefined,\n options: {scheme: ThemeColorSchemeKey},\n config?: ThemeConfig,\n): ThemeColorBadge_v2 {\n const {scheme} = options\n\n const colorBadge = {} as ThemeColorBadge_v2\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n colorBadge[tone] = _buildBadgeColorTheme(tokens, {scheme, tone}, config)\n }\n\n return colorBadge\n}\n\nfunction _buildBadgeColorTheme(\n parentTokens: ThemeColorBadgeTokens | undefined,\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorStateToneKey},\n config?: ThemeConfig,\n): ThemeColorBadge_v2['default'] {\n const {scheme, tone} = options\n const tokens = parentTokens?.[tone]\n const hue = tokens?._hue || config?.color?.base?.[tone]?._hue || 'gray'\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n bg: _color(context, tokens?.bg),\n fg: _color(context, tokens?.fg),\n dot: _color(context, tokens?.dot),\n icon: _color(context, tokens?.icon),\n }\n}\n\nfunction buildButtonColorTheme(\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorCardToneKey},\n config?: ThemeConfig,\n): ThemeColorButton_v2 {\n const {scheme, tone: cardTone} = options\n\n const modes: Partial<ThemeColorButton_v2> = {}\n\n for (const mode of THEME_COLOR_BUTTON_MODES) {\n modes[mode] = buildButtonTonesColorTheme({cardTone, scheme, mode}, config)\n }\n\n return modes as ThemeColorButton_v2\n}\n\nfunction buildButtonTonesColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n scheme: ThemeColorSchemeKey\n mode: ThemeColorButtonModeKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonMode_v2 {\n const {cardTone, mode, scheme} = options\n\n const tones: Partial<ThemeColorButtonMode_v2> = {}\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n tones[tone] = buildButtonStatesColorTheme({cardTone, mode, scheme, tone}, config)\n }\n\n return tones as ThemeColorButtonMode_v2\n}\n\nfunction buildButtonStatesColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n mode: ThemeColorButtonModeKey\n scheme: ThemeColorSchemeKey\n tone: ThemeColorStateToneKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonTone_v2 {\n const {cardTone, mode, scheme, tone} = options\n\n const states: Partial<ThemeColorButtonTone_v2> = {}\n\n for (const state of THEME_COLOR_STATES) {\n states[state] = buildButtonStateColorTheme({cardTone, mode, tone, scheme, state}, config)\n }\n\n return states as ThemeColorButtonTone_v2\n}\n\nfunction buildButtonStateColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n mode: ThemeColorButtonModeKey\n tone: ThemeColorStateToneKey\n scheme: ThemeColorSchemeKey\n state: ThemeColorStateKey\n },\n config?: ThemeConfig,\n): ThemeColorState_v2 {\n const {cardTone, mode, tone, scheme, state} = options\n const cardTokens = config?.color?.base?.[cardTone]\n const tokens = config?.color?.button?.[mode]?.[tone]?.[state]\n const hue = tokens?._hue || cardTokens?._hue || 'gray'\n const blendMode = tokens?._blend || ['screen', 'multiply']\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n accent: {\n fg: _color(context, tokens?.accent?.fg),\n },\n avatar: buildAvatarColorTheme({scheme}, tokens),\n badge: buildBadgeColorTheme(tokens?.badge, {scheme}, config),\n bg: _color(context, tokens?.bg),\n border: _color(context, tokens?.border),\n code: {\n bg: _color(context, tokens?.code?.bg),\n fg: _color(context, tokens?.code?.fg),\n },\n fg: _color(context, tokens?.fg),\n icon: _color(context, tokens?.icon),\n muted: {\n bg: _color(context, tokens?.muted?.bg),\n fg: _color(context, tokens?.muted?.fg),\n },\n kbd: {\n bg: _color(context, tokens?.kbd?.bg),\n fg: _color(context, tokens?.kbd?.fg),\n border: _color(context, tokens?.kbd?.border),\n },\n link: {\n fg: _color(context, tokens?.link?.fg),\n },\n skeleton: {\n from: _color(context, tokens?.skeleton?.from),\n to: _color(context, tokens?.skeleton?.to),\n },\n }\n}\n\nfunction buildInputColorTheme(\n options: {scheme: ThemeColorSchemeKey; tone: ThemeColorCardToneKey},\n config?: ThemeConfig,\n): ThemeColorInput_v2 {\n const {scheme, tone} = options\n\n return {\n default: buildInputStatesColorTheme({mode: 'default', scheme, tone}, config),\n invalid: buildInputStatesColorTheme({mode: 'invalid', scheme, tone}, config),\n }\n}\n\nfunction buildInputStatesColorTheme(\n options: {\n mode: 'default' | 'invalid'\n scheme: ThemeColorSchemeKey\n tone: ThemeColorCardToneKey\n },\n config?: ThemeConfig,\n): ThemeColorInputMode_v2 {\n const {mode, scheme, tone} = options\n\n return {\n enabled: buildInputStateColorTheme({mode, scheme, state: 'enabled', cardTone: tone}, config),\n hovered: buildInputStateColorTheme({mode, scheme, state: 'hovered', cardTone: tone}, config),\n readOnly: buildInputStateColorTheme({mode, scheme, state: 'readOnly', cardTone: tone}, config),\n disabled: buildInputStateColorTheme({mode, scheme, state: 'disabled', cardTone: tone}, config),\n }\n}\n\nfunction buildInputStateColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n mode: 'default' | 'invalid'\n scheme: ThemeColorSchemeKey\n state: 'enabled' | 'hovered' | 'readOnly' | 'disabled'\n },\n config?: ThemeConfig,\n): ThemeColorInputState_v2 {\n const {cardTone, mode, scheme, state} = options\n const cardTokens = config?.color?.base?.[cardTone]\n const tokens = config?.color?.input?.[mode]?.[state]\n const hue = tokens?._hue || cardTokens?._hue || 'gray'\n const blendMode = tokens?._blend || ['screen', 'multiply']\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n bg: _color(context, tokens?.bg),\n border: _color(context, tokens?.border),\n fg: _color(context, tokens?.fg),\n muted: {\n bg: _color(context, tokens?.muted?.bg),\n },\n placeholder: _color(context, tokens?.placeholder),\n }\n}\n\nfunction buildSelectableColorTheme(\n options: {\n scheme: ThemeColorSchemeKey\n tone: ThemeColorCardToneKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonMode_v2 {\n const {scheme, tone: cardTone} = options\n\n const tones: Partial<ThemeColorButtonMode_v2> = {}\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n tones[tone] = buildSelectableStatesColorTheme({cardTone, scheme, tone}, config)\n }\n\n return tones as ThemeColorButtonMode_v2\n}\n\nfunction buildSelectableStatesColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n scheme: ThemeColorSchemeKey\n tone: ThemeColorStateToneKey\n },\n config?: ThemeConfig,\n): ThemeColorButtonTone_v2 {\n const {cardTone, scheme, tone} = options\n\n const states: Partial<ThemeColorButtonTone_v2> = {}\n\n for (const state of THEME_COLOR_STATES) {\n states[state] = buildSelectableStateColorTheme({cardTone, tone, scheme, state}, config)\n }\n\n return states as ThemeColorButtonTone_v2\n}\n\nfunction buildSelectableStateColorTheme(\n options: {\n cardTone: ThemeColorCardToneKey\n scheme: ThemeColorSchemeKey\n state: ThemeColorStateKey\n tone: ThemeColorStateToneKey\n },\n config?: ThemeConfig,\n): ThemeColorState_v2 {\n const {cardTone, scheme, state, tone} = options\n const cardTokens = config?.color?.base?.[cardTone]\n const tokens = config?.color?.selectable?.[tone]?.[state]\n\n const hue = tokens?._hue || cardTokens?._hue || 'gray'\n const blendMode = tokens?._blend || ['screen', 'multiply']\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n accent: {\n fg: _color(context, tokens?.accent?.fg),\n },\n avatar: buildAvatarColorTheme({scheme}, tokens),\n badge: buildBadgeColorTheme(tokens?.badge, {scheme}, config),\n bg: _color(context, tokens?.bg),\n border: _color(context, tokens?.border),\n code: {\n bg: _color(context, tokens?.code?.bg),\n fg: _color(context, tokens?.code?.fg),\n },\n fg: _color(context, tokens?.fg),\n icon: _color(context, tokens?.icon),\n muted: {\n bg: _color(context, tokens?.muted?.bg),\n fg: _color(context, tokens?.muted?.fg),\n },\n kbd: {\n bg: _color(context, tokens?.kbd?.bg),\n fg: _color(context, tokens?.kbd?.fg),\n border: _color(context, tokens?.kbd?.border),\n },\n link: {\n fg: _color(context, tokens?.link?.fg),\n },\n skeleton: {\n from: _color(context, tokens?.skeleton?.from),\n to: _color(context, tokens?.skeleton?.to),\n },\n }\n}\n\nfunction buildSyntaxColorTheme(\n options: {scheme: ThemeColorSchemeKey},\n config?: ThemeConfig,\n): ThemeColorSyntax {\n const {scheme} = options\n const tokens = config?.color?.syntax\n const context: ColorTokenContext = {hue: 'gray', scheme}\n\n return {\n atrule: _color(context, tokens?.atrule),\n attrName: _color(context, tokens?.attrName),\n attrValue: _color(context, tokens?.attrValue),\n attribute: _color(context, tokens?.attribute),\n boolean: _color(context, tokens?.boolean),\n builtin: _color(context, tokens?.builtin),\n cdata: _color(context, tokens?.cdata),\n char: _color(context, tokens?.char),\n class: _color(context, tokens?.class),\n className: _color(context, tokens?.className),\n comment: _color(context, tokens?.comment),\n constant: _color(context, tokens?.constant),\n deleted: _color(context, tokens?.deleted),\n doctype: _color(context, tokens?.doctype),\n entity: _color(context, tokens?.entity),\n function: _color(context, tokens?.function),\n hexcode: _color(context, tokens?.hexcode),\n id: _color(context, tokens?.id),\n important: _color(context, tokens?.important),\n inserted: _color(context, tokens?.inserted),\n keyword: _color(context, tokens?.keyword),\n number: _color(context, tokens?.number),\n operator: _color(context, tokens?.operator),\n prolog: _color(context, tokens?.prolog),\n property: _color(context, tokens?.property),\n pseudoClass: _color(context, tokens?.pseudoClass),\n pseudoElement: _color(context, tokens?.pseudoElement),\n punctuation: _color(context, tokens?.punctuation),\n regex: _color(context, tokens?.regex),\n selector: _color(context, tokens?.selector),\n string: _color(context, tokens?.string),\n symbol: _color(context, tokens?.symbol),\n tag: _color(context, tokens?.tag),\n unit: _color(context, tokens?.unit),\n url: _color(context, tokens?.url),\n variable: _color(context, tokens?.variable),\n }\n}\n","import {color} from '@sanity/color'\n\nimport type {ThemeColorPalette} from '../config'\n\nexport const defaultColorPalette: ThemeColorPalette = color\n","import type {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 type {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 type {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 type {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 type {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 type {RGB, RGBA} from './types'\n\n/**\n * @internal\n * @deprecated Will be removed in next major version\n */\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 if (typeof color === 'string' && color.startsWith('var(')) {\n return `color-mix(in srgb, transparent, ${color} ${a * 100}%)`\n }\n\n const rgb = parseColor(color)\n\n return `rgba(${rgb.r},${rgb.g},${rgb.b},${a})`\n}\n","import {multiply, parseColor, type RGB, rgbToHex, screen} from './lib/color-fns'\nimport {clamp, range} from './lib/utils'\n\nconst RGB_RANGE: [number, number] = [0, 255]\n\nexport function mixThemeColor(\n value: string,\n options: {\n bg?: string\n blendMode: 'multiply' | 'screen'\n black: string\n white: string\n },\n): string {\n const {blendMode} = options\n\n const color = parseColor(value)\n const black = parseColor(options.black)\n const white = parseColor(options.white)\n\n const bg = options.bg ? parseColor(options.bg) : blendMode === 'multiply' ? white : black\n\n const paletteRange: {r: [number, number]; g: [number, number]; b: [number, number]} = {\n r: [black.r, white.r],\n g: [black.g, white.g],\n b: [black.b, white.b],\n }\n\n const convertedBgColor: RGB = {\n r: clamp(range(...paletteRange.r, ...RGB_RANGE, bg.r), ...RGB_RANGE),\n g: clamp(range(...paletteRange.g, ...RGB_RANGE, bg.g), ...RGB_RANGE),\n b: clamp(range(...paletteRange.b, ...RGB_RANGE, bg.b), ...RGB_RANGE),\n }\n\n const convertedColor: RGB = {\n r: clamp(range(...paletteRange.r, ...RGB_RANGE, color.r), ...RGB_RANGE),\n g: clamp(range(...paletteRange.g, ...RGB_RANGE, color.g), ...RGB_RANGE),\n b: clamp(range(...paletteRange.b, ...RGB_RANGE, color.b), ...RGB_RANGE),\n }\n\n const resultColor =\n blendMode === 'multiply'\n ? multiply(convertedBgColor, convertedColor)\n : screen(convertedBgColor, convertedColor)\n\n const v: RGB = {\n r: clamp(range(...RGB_RANGE, ...paletteRange.r, resultColor.r), ...paletteRange.r),\n g: clamp(range(...RGB_RANGE, ...paletteRange.g, resultColor.g), ...paletteRange.g),\n b: clamp(range(...RGB_RANGE, ...paletteRange.b, resultColor.b), ...paletteRange.b),\n }\n\n return rgbToHex(v)\n}\n","import type {ColorTint as ColorPaletteValue} from '@sanity/color'\n\nimport type {ThemeColorBlendModeKey} from '../color'\nimport {parseTokenValue, type ThemeColorPalette} from '../config'\nimport {hexToRgb, mix, rgba, rgbToHex} from './lib/color-fns'\nimport {mixThemeColor} from './mixThemeColor'\n\nexport interface RenderColorValueOptions {\n bg?: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n}\n\nexport function renderColorValue(str: string, options: RenderColorValueOptions): string {\n const {bg, blendMode, colorPalette} = options\n\n if (bg === 'white') {\n throw new Error('Cannot blend with white background')\n }\n\n const node = parseTokenValue(str)\n\n if (!node || node.type !== 'color') {\n throw new Error(`Invalid color token value: ${str}`)\n }\n\n let hex = ''\n\n if (node.key === 'black') {\n hex = renderColorHex(colorPalette.black)\n }\n\n if (node.key === 'white') {\n hex = renderColorHex(colorPalette.white)\n }\n\n if (node.hue && node.tint) {\n hex = renderColorHex(colorPalette[node.hue][node.tint])\n }\n\n if (!hex) {\n throw new Error(`Invalid color token value: ${str}`)\n }\n\n const hexBeforeMix = hex\n\n const mixOptions = {\n blendMode,\n bg,\n black: renderColorHex(colorPalette.black),\n // opacity: node.opacity,\n white: renderColorHex(colorPalette.white),\n }\n\n try {\n hex = mixThemeColor(hex, mixOptions)\n\n if (bg && node.mix !== undefined) {\n const from = hexToRgb(bg)\n const to = hexToRgb(hex)\n\n hex = rgbToHex(mix(from, to, node.mix))\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.warn('could not blend', hex, mixOptions)\n throw err\n }\n\n if (hex === '#aN') {\n // eslint-disable-next-line no-console\n console.warn(`invalid color token value: ${str}`)\n hex = hexBeforeMix\n }\n\n if (node.opacity !== undefined) {\n hex = rgba(hex, node.opacity)\n }\n\n return hex\n}\n\nfunction renderColorHex(color: string | ColorPaletteValue) {\n return typeof color === 'string' ? color : color.hex\n}\n","import {COLOR_HUES} from '@sanity/color'\n\nimport {\n THEME_COLOR_STATE_TONES,\n type ThemeColorAvatar_v2,\n type ThemeColorBadge_v2,\n type ThemeColorBadgeTone_v2,\n type ThemeColorBlendModeKey,\n type ThemeColorButton_v2,\n type ThemeColorButtonMode_v2,\n type ThemeColorButtonTone_v2,\n type ThemeColorCard_v2,\n type ThemeColorCardToneKey,\n type ThemeColorInput_v2,\n type ThemeColorInputMode_v2,\n type ThemeColorInputState_v2,\n type ThemeColorKBD,\n type ThemeColorScheme_v2,\n type ThemeColorSchemes_v2,\n type ThemeColorSelectable_v2,\n type ThemeColorSelectableTone_v2,\n type ThemeColorShadow,\n type ThemeColorState_v2,\n type ThemeColorSyntax,\n} from '../color'\nimport type {ThemeColorPalette, ThemeConfig} from '../config'\nimport {defaultColorPalette} from '../defaults/colorPalette'\nimport {renderColorValue, type RenderColorValueOptions} from './renderColorValue'\n\nexport function renderThemeColorSchemes(\n value: ThemeColorSchemes_v2,\n config?: ThemeConfig,\n): ThemeColorSchemes_v2 {\n const colorPalette = config?.palette ?? defaultColorPalette\n\n return {\n light: renderThemeColorScheme(colorPalette, value.light),\n dark: renderThemeColorScheme(colorPalette, value.dark),\n }\n}\n\nfunction renderThemeColorScheme(\n colorPalette: ThemeColorPalette,\n value: ThemeColorScheme_v2,\n): ThemeColorScheme_v2 {\n const toneEntries = Object.entries(value) as [ThemeColorCardToneKey, ThemeColorCard_v2][]\n\n const [, transparentTone] = toneEntries.find(([k]) => k === 'transparent')!\n const [, defaultTone] = toneEntries.find(([k]) => k === 'default')!\n\n // The `transparent` and `default` tones are special cases, so we render them first\n // (rendered without a `bg` option).\n // But the rest of the tones are rendered on top of the `default` tone's `bg`.\n const renderedTransparentTone = renderThemeColor(transparentTone, {colorPalette})\n const renderedDefaultTone = renderThemeColor(defaultTone, {colorPalette})\n\n // Get the `default` tone's `bg` property\n const bg = renderedDefaultTone.bg\n\n if (bg === 'white') {\n throw new Error('Cannot blend with white background')\n }\n\n return Object.fromEntries([\n ['transparent', renderedTransparentTone],\n ['default', renderedDefaultTone],\n ...toneEntries\n .filter(([k]) => k !== 'default' && k !== 'transparent')\n .map(([k, v]) => [k, renderThemeColor(v, {bg, colorPalette})]),\n ]) as ThemeColorScheme_v2\n}\n\nfunction renderThemeColor(\n value: ThemeColorCard_v2,\n options: {\n bg?: string\n colorPalette: ThemeColorPalette\n },\n): ThemeColorCard_v2 {\n const {colorPalette, bg} = options\n const blendMode = value._blend || 'multiply'\n const baseBg = renderColorValue(value.bg, {colorPalette, bg, blendMode})\n const colorOptions: RenderColorValueOptions = {colorPalette, bg: baseBg, blendMode}\n\n const button = renderThemeColorButton(value.button, {\n baseBg,\n blendMode,\n colorPalette,\n })\n\n const selectable = renderThemeColorSelectable(value.selectable, {\n colorPalette,\n baseBg,\n blendMode,\n })\n\n const shadow: ThemeColorShadow = {\n outline: renderColorValue(value.shadow.outline, colorOptions),\n umbra: renderColorValue(value.shadow.umbra, {\n ...colorOptions,\n bg: undefined,\n colorPalette: {...colorPalette, black: '#000000'},\n }),\n penumbra: renderColorValue(value.shadow.penumbra, {\n ...colorOptions,\n bg: undefined,\n colorPalette: {...colorPalette, black: '#000000'},\n }),\n ambient: renderColorValue(value.shadow.ambient, {\n ...colorOptions,\n bg: undefined,\n colorPalette: {...colorPalette, black: '#000000'},\n }),\n }\n\n return {\n _blend: blendMode,\n _dark: value._dark,\n accent: {\n fg: renderColorValue(value.accent.fg, colorOptions),\n },\n avatar: renderThemeColorAvatar(value.avatar, {baseBg, colorPalette, blendMode}),\n backdrop: renderColorValue(value.backdrop, colorOptions),\n badge: renderThemeColorBadge(value.badge, {baseBg, colorPalette, blendMode}),\n bg: baseBg,\n border: renderColorValue(value.border, colorOptions),\n button,\n code: {\n bg: renderColorValue(value.code.bg, colorOptions),\n fg: renderColorValue(value.code.fg, colorOptions),\n },\n fg: renderColorValue(value.fg, colorOptions),\n focusRing: renderColorValue(value.focusRing, colorOptions),\n icon: renderColorValue(value.icon, colorOptions),\n input: renderThemeColorInput(value.input, {baseBg, colorPalette, blendMode}),\n kbd: renderThemeColorKBD(value.kbd, {baseBg, colorPalette, blendMode}),\n link: {\n fg: renderColorValue(value.link.fg, colorOptions),\n },\n muted: {\n bg: renderColorValue(value.muted.bg, colorOptions),\n fg: renderColorValue(value.muted.fg, colorOptions),\n },\n shadow,\n skeleton: {\n from: renderColorValue(value.skeleton.from, colorOptions),\n to: renderColorValue(value.skeleton.to, colorOptions),\n },\n syntax: renderSyntaxColorTheme(value.syntax, {baseBg, colorPalette, blendMode}),\n selectable,\n }\n}\n\nfunction renderThemeColorKBD(\n value: ThemeColorKBD,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorKBD {\n const {baseBg, blendMode, colorPalette} = options\n\n const rootOptions: RenderColorValueOptions = {\n bg: baseBg,\n blendMode,\n colorPalette,\n }\n\n const bg = renderColorValue(value.bg, rootOptions)\n\n const colorOptions: RenderColorValueOptions = {\n bg,\n blendMode,\n colorPalette,\n }\n\n return {\n bg,\n fg: renderColorValue(value.fg, colorOptions),\n border: renderColorValue(value.border, colorOptions),\n }\n}\n\nfunction renderThemeColorAvatar(\n value: ThemeColorAvatar_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorAvatar_v2 {\n const colorAvatar = {} as ThemeColorAvatar_v2\n\n for (const hue of COLOR_HUES) {\n colorAvatar[hue] = renderThemeColorAvatarColor(value[hue], options)\n }\n\n return colorAvatar\n}\n\nfunction renderThemeColorAvatarColor(\n value: ThemeColorAvatar_v2['gray'],\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorAvatar_v2['gray'] {\n const {baseBg, blendMode: rootBlendMode, colorPalette} = options\n const blendMode = value._blend || 'multiply'\n\n const rootOptions: RenderColorValueOptions = {\n bg: baseBg,\n blendMode: rootBlendMode,\n colorPalette,\n }\n\n const bg = renderColorValue(value.bg, rootOptions)\n\n const colorOptions: RenderColorValueOptions = {\n bg,\n blendMode,\n colorPalette,\n }\n\n return {\n _blend: blendMode,\n bg,\n fg: renderColorValue(value.fg, colorOptions),\n }\n}\n\nfunction renderThemeColorBadge(\n value: ThemeColorBadge_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorBadge_v2 {\n const colorBadge = {} as ThemeColorBadge_v2\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n colorBadge[tone] = renderThemeColorBadgeColor(value[tone], options)\n }\n\n return colorBadge\n}\n\nfunction renderThemeColorBadgeColor(\n value: ThemeColorBadgeTone_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorBadgeTone_v2 {\n const {baseBg, blendMode: rootBlendMode, colorPalette} = options\n\n const blendMode = rootBlendMode\n\n const rootOptions: RenderColorValueOptions = {\n bg: baseBg,\n blendMode: rootBlendMode,\n colorPalette,\n }\n\n const bg = renderColorValue(value.bg, rootOptions)\n\n const colorOptions: RenderColorValueOptions = {\n bg,\n blendMode,\n colorPalette,\n }\n\n return {\n bg,\n dot: renderColorValue(value.dot, colorOptions),\n fg: renderColorValue(value.fg, colorOptions),\n icon: renderColorValue(value.icon, colorOptions),\n }\n}\n\nfunction renderThemeColorButton(\n value: ThemeColorButton_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorButton_v2 {\n return {\n default: renderThemeColorButtonTones(value.default, options),\n ghost: renderThemeColorButtonTones(value.ghost, options),\n bleed: renderThemeColorButtonTones(value.bleed, options),\n }\n}\n\nfunction renderThemeColorButtonTones(\n value: ThemeColorButtonMode_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorButtonMode_v2 {\n const colorButtonMode = {} as ThemeColorButtonMode_v2\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n colorButtonMode[tone] = renderThemeColorButtonStates(value[tone], options)\n }\n\n return colorButtonMode\n}\n\nfunction renderThemeColorButtonStates(\n value: ThemeColorButtonTone_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorButtonTone_v2 {\n return {\n enabled: renderThemeColorState(value.enabled, options),\n hovered: renderThemeColorState(value.hovered, options),\n pressed: renderThemeColorState(value.pressed, options),\n selected: renderThemeColorState(value.selected, options),\n disabled: renderThemeColorState(value.disabled, options),\n }\n}\n\nfunction renderThemeColorState(\n value: ThemeColorState_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorState_v2 {\n const {baseBg, blendMode: rootBlendMode, colorPalette} = options\n const blendMode = value._blend || 'multiply'\n\n const rootOptions: RenderColorValueOptions = {\n bg: baseBg,\n blendMode: rootBlendMode,\n colorPalette,\n }\n\n const bg = renderColorValue(value.bg, rootOptions)\n\n const colorOptions: RenderColorValueOptions = {\n bg,\n blendMode,\n colorPalette,\n }\n\n return {\n _blend: blendMode,\n accent: {\n fg: renderColorValue(value.accent.fg, colorOptions),\n },\n avatar: renderThemeColorAvatar(value.avatar, {baseBg: bg, colorPalette, blendMode}),\n badge: renderThemeColorBadge(value.badge, {baseBg: bg, colorPalette, blendMode}),\n bg,\n border: renderColorValue(value.border, colorOptions),\n code: {\n bg: renderColorValue(value.code.bg, colorOptions),\n fg: renderColorValue(value.code.fg, colorOptions),\n },\n fg: renderColorValue(value.fg, colorOptions),\n icon: renderColorValue(value.icon, colorOptions),\n link: {\n fg: renderColorValue(value.link.fg, colorOptions),\n },\n muted: {\n bg: renderColorValue(value.muted.bg, colorOptions),\n fg: renderColorValue(value.muted.fg, colorOptions),\n },\n kbd: {\n bg: renderColorValue(value.kbd.bg, colorOptions),\n fg: renderColorValue(value.kbd.fg, colorOptions),\n border: renderColorValue(value.kbd.border, colorOptions),\n },\n skeleton: {\n from: renderColorValue(value.skeleton?.from, colorOptions),\n to: renderColorValue(value.skeleton?.to, colorOptions),\n },\n }\n}\n\nfunction renderThemeColorInput(\n value: ThemeColorInput_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorInput_v2 {\n return {\n default: renderInputStatesColorTheme(value.default, options),\n invalid: renderInputStatesColorTheme(value.invalid, options),\n }\n}\n\nfunction renderInputStatesColorTheme(\n value: ThemeColorInputMode_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorInputMode_v2 {\n return {\n enabled: renderInputStateColorTheme(value.enabled, options),\n hovered: renderInputStateColorTheme(value.hovered, options),\n readOnly: renderInputStateColorTheme(value.readOnly, options),\n disabled: renderInputStateColorTheme(value.disabled, options),\n }\n}\n\nfunction renderInputStateColorTheme(\n value: ThemeColorInputState_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorInputState_v2 {\n const {baseBg, blendMode: rootBlendMode, colorPalette} = options\n const blendMode = value._blend || 'multiply'\n const rootOptions: RenderColorValueOptions = {colorPalette, bg: baseBg, blendMode: rootBlendMode}\n const bg = renderColorValue(value.bg, rootOptions)\n const colorOptions: RenderColorValueOptions = {colorPalette, bg, blendMode}\n\n return {\n _blend: blendMode,\n bg,\n border: renderColorValue(value.border, colorOptions),\n fg: renderColorValue(value.fg, colorOptions),\n muted: {\n bg: renderColorValue(value.muted.bg, colorOptions),\n },\n placeholder: renderColorValue(value.placeholder, colorOptions),\n }\n}\n\nfunction renderThemeColorSelectable(\n value: ThemeColorSelectable_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorSelectable_v2 {\n const colorSelectable = {} as ThemeColorSelectable_v2\n\n for (const tone of THEME_COLOR_STATE_TONES) {\n colorSelectable[tone] = renderThemeColorSelectableStates(value[tone], options)\n }\n\n return colorSelectable\n}\n\nfunction renderThemeColorSelectableStates(\n value: ThemeColorSelectableTone_v2,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorSelectableTone_v2 {\n return {\n enabled: renderThemeColorState(value.enabled, options),\n hovered: renderThemeColorState(value.hovered, options),\n pressed: renderThemeColorState(value.pressed, options),\n selected: renderThemeColorState(value.selected, options),\n disabled: renderThemeColorState(value.disabled, options),\n }\n}\n\nfunction renderSyntaxColorTheme(\n value: ThemeColorSyntax,\n options: {\n baseBg: string\n blendMode: ThemeColorBlendModeKey\n colorPalette: ThemeColorPalette\n },\n): ThemeColorSyntax {\n const {colorPalette, baseBg, blendMode} = options\n const colorOptions: RenderColorValueOptions = {colorPalette, bg: baseBg, blendMode}\n\n return {\n atrule: renderColorValue(value.atrule, colorOptions),\n attrName: renderColorValue(value.attrName, colorOptions),\n attrValue: renderColorValue(value.attrValue, colorOptions),\n attribute: renderColorValue(value.attribute, colorOptions),\n boolean: renderColorValue(value.boolean, colorOptions),\n builtin: renderColorValue(value.builtin, colorOptions),\n cdata: renderColorValue(value.cdata, colorOptions),\n char: renderColorValue(value.char, colorOptions),\n class: renderColorValue(value.class, colorOptions),\n className: renderColorValue(value.className, colorOptions),\n comment: renderColorValue(value.comment, colorOptions),\n constant: renderColorValue(value.constant, colorOptions),\n deleted: renderColorValue(value.deleted, colorOptions),\n doctype: renderColorValue(value.doctype, colorOptions),\n entity: renderColorValue(value.entity, colorOptions),\n function: renderColorValue(value.function, colorOptions),\n hexcode: renderColorValue(value.hexcode, colorOptions),\n id: renderColorValue(value.id, colorOptions),\n important: renderColorValue(value.important, colorOptions),\n inserted: renderColorValue(value.inserted, colorOptions),\n keyword: renderColorValue(value.keyword, colorOptions),\n number: renderColorValue(value.number, colorOptions),\n operator: renderColorValue(value.operator, colorOptions),\n prolog: renderColorValue(value.prolog, colorOptions),\n property: renderColorValue(value.property, colorOptions),\n pseudoClass: renderColorValue(value.pseudoClass, colorOptions),\n pseudoElement: renderColorValue(value.pseudoElement, colorOptions),\n punctuation: renderColorValue(value.punctuation, colorOptions),\n regex: renderColorValue(value.regex, colorOptions),\n selector: renderColorValue(value.selector, colorOptions),\n string: renderColorValue(value.string, colorOptions),\n symbol: renderColorValue(value.symbol, colorOptions),\n tag: renderColorValue(value.tag, colorOptions),\n unit: renderColorValue(value.unit, colorOptions),\n url: renderColorValue(value.url, colorOptions),\n variable: renderColorValue(value.variable, colorOptions),\n }\n}\n","import type {RootTheme} from '../../types'\nimport {v2_v0} from '../../versioning/v2_v0'\nimport type {ThemeConfig} from '../config'\nimport {defaultThemeConfig} from '../defaults/config'\nimport {defaultThemeFonts} from '../defaults/fonts'\nimport type {RootTheme_v2} from '../theme'\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","/** @public */\nexport const AVATAR_SIZE = [0, 1, 2, 3] as const\n\n/** @public */\nexport const CONTAINER_SCALE = [0, 1, 2, 3, 4, 5] as const\n\n/** @public */\nexport const CONTAINER = [...CONTAINER_SCALE, 'auto'] as const\n\n/** @public */\nexport const RADIUS = [0, 1, 2, 3, 4, 5, 6] as const\n\n/** @public */\nexport const SPACE = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] as const\n\n/** @public */\nexport const FONT_CODE_SIZE = [0, 1, 2, 3, 4] as const\n\n/** @public */\nexport const FONT_HEADING_SIZE = [0, 1, 2, 3, 4, 5] as const\n\n/** @public */\nexport const FONT_LABEL_SIZE = [0, 1, 2, 3, 4, 5] as const\n\n/** @public */\nexport const FONT_TEXT_SIZE = [0, 1, 2, 3, 4] as const\n\n/** @public */\nexport const SHADOW = [0, 1, 2, 3, 4, 5] as const\n","/** @public */\nexport const HUES = [\n 'gray',\n 'blue',\n 'purple',\n 'magenta',\n 'red',\n 'orange',\n 'yellow',\n 'green',\n 'cyan',\n] as const\n\n/** @public */\nexport const TINTS = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950] as const\n","import type {ColorToken} from './color'\nimport {type Hue, HUES, type Tint, TINTS} from './palette'\n\nconst RE_PERCENTAGE = /^([0-9]+)%/\nconst RE_OPACITY = /^(1|0\\.[0-9]+)?/\n\n/** @internal */\nexport interface ColorNode {\n type: 'color'\n name: 'black' | 'white'\n /** Between 0 and 1 */\n opacity: number\n /** Between 0 and 1 */\n mix: number\n}\n\n/** @internal */\nexport interface ColorTintNode {\n type: 'tint'\n hue: Hue\n tint: Tint\n /** Between 0 and 1 */\n opacity: number\n /** Between 0 and 1 */\n mix: number\n}\n\n/** @internal */\nexport interface ColorInheritNode {\n type: 'inherit'\n}\n\n/** @internal */\nexport type TokenizeColorResult = ColorNode | ColorTintNode | ColorInheritNode\n\n/** @internal */\nexport function _parseColorToken(str: ColorToken, options: {defaultHue: Hue}): TokenizeColorResult {\n const {defaultHue} = options\n\n let cursor = 0\n\n return parseColorNode()\n\n function _consume(s: string) {\n if (str.startsWith(s, cursor)) {\n cursor += s.length\n\n return s\n }\n\n return undefined\n }\n\n function _peek() {\n return str[cursor]\n }\n\n function parseColorNode(): ColorNode | ColorTintNode | ColorInheritNode {\n ignoreWhitespace()\n\n let v = _consume('black') || _consume('white')\n\n if (v) {\n return {\n type: 'color',\n name: v as 'black' | 'white',\n opacity: parseOpacity() ?? 1,\n mix: parseMix() ?? 1,\n }\n }\n\n for (const hue of HUES) {\n v = _consume(String(hue))\n\n if (v) {\n if (_peek() !== '-') {\n throw new Error(`Expected \"-\" after hue key`)\n }\n\n cursor += 1\n\n const tint = parseTint()\n\n if (!tint) {\n throw new Error(`Expected tint after hue`)\n }\n\n return {\n type: 'tint',\n hue,\n tint,\n opacity: parseOpacity() ?? 1,\n mix: parseMix() ?? 1,\n }\n }\n }\n\n const tint = parseTint()\n\n if (tint) {\n return {\n type: 'tint',\n hue: defaultHue,\n tint,\n opacity: parseOpacity() ?? 1,\n mix: parseMix() ?? 1,\n }\n }\n\n if (str === 'inherit') {\n return {\n type: 'inherit',\n }\n }\n\n throw new Error(`Invalid color: ${str}`)\n }\n\n function parseTint() {\n ignoreWhitespace()\n\n let v = Number(str.slice(cursor, cursor + 3)) as Tint\n\n if (TINTS.includes(v)) {\n cursor += 3\n\n return v\n }\n\n v = Number(str.slice(cursor, cursor + 2)) as Tint\n\n if (TINTS.includes(v)) {\n cursor += 2\n\n return v\n }\n\n return undefined\n }\n\n function parseMix() {\n ignoreWhitespace()\n\n const match = RE_PERCENTAGE.exec(str.slice(cursor))\n\n if (match) {\n cursor += match[0].length\n\n return parseFloat(match[1]) / 100\n }\n\n return undefined\n }\n\n function parseOpacity() {\n ignoreWhitespace()\n\n if (_peek() === '/') {\n cursor += 1\n\n const match = RE_OPACITY.exec(str.slice(cursor))\n\n if (match) {\n cursor += match[0].length\n\n return parseFloat(match[1])\n }\n\n cursor -= 1\n }\n\n return undefined\n }\n\n function ignoreWhitespace() {\n while (_peek() === ' ') {\n cursor++\n }\n }\n}\n","import type {ThemeFonts_v3} from './types'\n\nexport const defaultThemeFonts: ThemeFonts_v3 = {\n code: {\n family: 'ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace',\n weight: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n scale: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 15,\n letterSpacing: 0,\n customIconSize: 12,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n customIconSize: 16,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n customIconSize: 20,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 18.75,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n customIconSize: 24,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 21.5,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\n customIconSize: 28,\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 featureSettings: `'liga' 1, 'calt' 1, 'ss01' 1, 'ss03' 1, 'zero' 1`,\n weight: {\n regular: 600,\n medium: 700,\n semibold: 800,\n bold: 900,\n },\n scale: [\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 17,\n lineHeight: 19,\n letterSpacing: 0,\n customIconSize: 12,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n customIconSize: 20,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 29,\n letterSpacing: -0.25,\n customIconSize: 28,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 27,\n iconSize: 41,\n lineHeight: 35,\n letterSpacing: -0.5,\n customIconSize: 36,\n },\n {\n ascenderHeight: 9.5,\n descenderHeight: 8.5,\n fontSize: 33,\n iconSize: 49,\n lineHeight: 41,\n letterSpacing: -1,\n customIconSize: 44,\n },\n {\n ascenderHeight: 10.5,\n descenderHeight: 9.5,\n fontSize: 38,\n iconSize: 53,\n lineHeight: 47,\n letterSpacing: -1,\n customIconSize: 48,\n },\n ],\n },\n label: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", system-ui, sans-serif',\n weight: {\n regular: 500,\n medium: 600,\n semibold: 700,\n bold: 800,\n },\n scale: [\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 8.1,\n iconSize: 13,\n lineHeight: 10,\n letterSpacing: 0.5,\n customIconSize: 8,\n },\n {\n ascenderHeight: 1.5,\n descenderHeight: 2.5,\n fontSize: 9.5,\n iconSize: 15,\n lineHeight: 11,\n letterSpacing: 0.5,\n customIconSize: 10,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 10.8,\n iconSize: 17,\n lineHeight: 12,\n letterSpacing: 0.5,\n customIconSize: 12,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 12.25,\n iconSize: 19,\n lineHeight: 13,\n letterSpacing: 0.5,\n customIconSize: 14,\n },\n {\n ascenderHeight: 1.5,\n descenderHeight: 2.5,\n fontSize: 13.6,\n iconSize: 21,\n lineHeight: 14,\n letterSpacing: 0.5,\n customIconSize: 16,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 15,\n iconSize: 23,\n lineHeight: 15,\n letterSpacing: 0.5,\n customIconSize: 18,\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 weight: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n scale: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 9.75,\n iconSize: 17,\n lineHeight: 15,\n letterSpacing: 0,\n customIconSize: 12,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 12.5,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n customIconSize: 16,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 15.25,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n customIconSize: 20,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 18,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n customIconSize: 24,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 20.75,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\n customIconSize: 28,\n },\n ],\n },\n}\n","import type {PartialTokens, Tokens} from './tokens'\n\n/** @internal */\nexport const defaultTokens: PartialTokens<Tokens> = {\n color: {\n '*': {\n backdrop: ['gray-100/0.5', 'black/0.5'],\n code: {\n bg: ['50', '950'],\n fg: ['700', '300'],\n token: {\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: ['green-600', 'green-400'],\n keyword: ['magenta-600', 'magenta-400'],\n number: ['purple-600', 'purple-400'],\n operator: ['magenta-600', 'magenta-400'],\n prolog: ['gray-600', 'gray-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 focusRing: ['blue-500', 'blue-500'],\n link: {\n fg: ['blue-600', 'blue-400'],\n },\n shadow: {\n outline: ['600/0.3', '500/0.4'],\n umbra: ['600/0.1', 'black/0.2'],\n penumbra: ['600/0.07', 'black/0.14'],\n ambient: ['600/0.06', 'black/0.12'],\n },\n skeleton: {\n from: ['200 70%', '800 35%'],\n to: ['200 40%', '800 50%'],\n },\n variant: {\n tinted: {\n '*': {\n bg: {\n 0: ['100 75%', '900 75%'],\n 4: ['300', '700'],\n },\n border: {\n 0: ['200', '700 50%'],\n 4: ['300 75%', '500'],\n },\n fg: {\n 0: ['900', '100'],\n 4: ['700', '300'],\n },\n },\n 'primary': {\n _hue: 'blue',\n bg: {0: ['inherit', 'inherit']},\n },\n 'suggest': {\n _hue: 'purple',\n bg: {0: ['inherit', 'inherit']},\n },\n 'positive': {\n _hue: 'green',\n bg: {0: ['inherit', 'inherit']},\n },\n 'caution': {\n _hue: 'yellow',\n bg: {0: ['inherit', 'inherit']},\n },\n 'critical': {\n _hue: 'red',\n bg: {0: ['inherit', 'inherit']},\n },\n },\n solid: {\n '*': {\n bg: {\n 0: ['500', '400'],\n 4: ['600', '300'],\n },\n border: {\n 0: ['400', '200'],\n 4: ['500', '100'],\n },\n fg: {\n 0: ['white', 'black'],\n 4: ['200', '700'],\n },\n },\n 'default': {\n bg: {\n 0: ['800', '200'],\n 4: ['black', 'white'],\n },\n border: {\n 0: ['700', '300'],\n 4: ['800', '200'],\n },\n },\n 'primary': {\n _hue: 'blue',\n },\n 'suggest': {\n _hue: 'purple',\n },\n 'positive': {\n _hue: 'green',\n },\n 'caution': {\n _hue: 'yellow',\n },\n 'critical': {\n _hue: 'red',\n },\n },\n },\n },\n 'transparent': {\n variant: {\n tinted: {\n '*': {\n bg: {\n 0: ['gray-50', 'black'],\n 4: ['200', '800'],\n },\n border: {\n 0: ['200 50%', '800 50%'],\n 4: ['300', '600'],\n },\n fg: {\n 0: ['black', '100'],\n 4: ['700', '400'],\n },\n },\n },\n },\n },\n 'default': {\n variant: {\n tinted: {\n '*': {\n bg: {\n 0: ['white', '950'],\n 4: ['300 50%', '700'],\n },\n border: {\n 0: ['200 50%', '800 50%'],\n 4: ['300 75%', '600'],\n },\n fg: {\n 0: ['black', 'white'],\n 4: ['600', '400'],\n },\n },\n },\n },\n },\n 'primary': {\n _hue: 'blue',\n },\n 'suggest': {\n _hue: 'purple',\n },\n 'positive': {\n _hue: 'green',\n },\n 'caution': {\n _hue: 'yellow',\n },\n 'critical': {\n _hue: 'red',\n },\n },\n}\n","export function merge<T extends Record<string, any>>(...records: (T | undefined)[]): T {\n return (records.filter(Boolean) as T[]).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\nfunction isRecord(value: unknown): value is Record<string, any> {\n return value !== null && typeof value === 'object' && !Array.isArray(value)\n}\n","import {\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_STATE_TONES,\n type ThemeColorCardToneKey,\n type ThemeColorStateToneKey,\n} from '../v2'\nimport type {CardColorTokens} from './color/card'\nimport type {ElementColorTokens} from './color/element'\nimport {merge} from './merge'\nimport type {PartialTokens, Tokens} from './tokens'\n\nconst defaultElementTokens: ElementColorTokens = {\n _hue: 'gray',\n bg: {\n 0: ['950', '50'],\n 4: ['700', '300'],\n },\n border: {\n 0: ['700', '300'],\n 4: ['400', '600'],\n },\n fg: {\n 0: ['100', '900'],\n 4: ['400', '600'],\n },\n}\n\n/** @internal */\nexport function resolveTokens(tokens: PartialTokens<Tokens> = {}): Tokens {\n return {\n color: {\n '*': resolveCardColorTokens(tokens.color?.['*']),\n\n ...THEME_COLOR_CARD_TONES.reduce(\n (acc, tone) => {\n return {\n ...acc,\n [tone]: resolveCardColorTokens(merge(tokens.color?.['*'], tokens.color?.[tone])),\n }\n },\n {} as Record<ThemeColorCardToneKey, CardColorTokens>,\n ),\n },\n }\n}\n\nfunction resolveCardColorTokens(\n tokens: PartialTokens<CardColorTokens> | undefined,\n): CardColorTokens {\n return {\n _hue: tokens?._hue ?? 'gray',\n avatar: {\n gray: {\n _hue: tokens?.avatar?.gray?._hue ?? 'gray',\n bg: tokens?.avatar?.gray?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.gray?.fg ?? ['white', '900'],\n },\n blue: {\n _hue: tokens?.avatar?.blue?._hue ?? 'blue',\n bg: tokens?.avatar?.blue?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.blue?.fg ?? ['white', '900'],\n },\n purple: {\n _hue: tokens?.avatar?.purple?._hue ?? 'purple',\n bg: tokens?.avatar?.purple?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.purple?.fg ?? ['white', '900'],\n },\n magenta: {\n _hue: tokens?.avatar?.magenta?._hue ?? 'magenta',\n bg: tokens?.avatar?.magenta?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.magenta?.fg ?? ['white', '900'],\n },\n red: {\n _hue: tokens?.avatar?.red?._hue ?? 'red',\n bg: tokens?.avatar?.red?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.red?.fg ?? ['white', '900'],\n },\n orange: {\n _hue: tokens?.avatar?.orange?._hue ?? 'orange',\n bg: tokens?.avatar?.orange?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.orange?.fg ?? ['white', '900'],\n },\n yellow: {\n _hue: tokens?.avatar?.yellow?._hue ?? 'yellow',\n bg: tokens?.avatar?.yellow?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.yellow?.fg ?? ['white', '900'],\n },\n green: {\n _hue: tokens?.avatar?.green?._hue ?? 'green',\n bg: tokens?.avatar?.green?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.green?.fg ?? ['white', '900'],\n },\n cyan: {\n _hue: tokens?.avatar?.cyan?._hue ?? 'cyan',\n bg: tokens?.avatar?.cyan?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.cyan?.fg ?? ['white', '900'],\n },\n },\n backdrop: tokens?.backdrop ?? ['100', '900'],\n code: {\n bg: tokens?.code?.bg ?? ['50', '950'],\n fg: tokens?.code?.fg ?? ['600', '400'],\n token: {\n atrule: tokens?.code?.token?.atrule ?? ['600', '400'],\n attribute: tokens?.code?.token?.attribute ?? ['600', '400'],\n attrName: tokens?.code?.token?.attrName ?? ['600', '400'],\n attrValue: tokens?.code?.token?.attrValue ?? ['600', '400'],\n boolean: tokens?.code?.token?.boolean ?? ['600', '400'],\n builtin: tokens?.code?.token?.builtin ?? ['600', '400'],\n cdata: tokens?.code?.token?.cdata ?? ['600', '400'],\n char: tokens?.code?.token?.char ?? ['600', '400'],\n class: tokens?.code?.token?.class ?? ['600', '400'],\n className: tokens?.code?.token?.className ?? ['600', '400'],\n comment: tokens?.code?.token?.comment ?? ['400', '600'],\n constant: tokens?.code?.token?.constant ?? ['600', '400'],\n deleted: tokens?.code?.token?.deleted ?? ['600', '400'],\n doctype: tokens?.code?.token?.doctype ?? ['600', '400'],\n entity: tokens?.code?.token?.entity ?? ['600', '400'],\n function: tokens?.code?.token?.function ?? ['600', '400'],\n hexcode: tokens?.code?.token?.hexcode ?? ['600', '400'],\n id: tokens?.code?.token?.id ?? ['600', '400'],\n important: tokens?.code?.token?.important ?? ['600', '400'],\n inserted: tokens?.code?.token?.inserted ?? ['600', '400'],\n keyword: tokens?.code?.token?.keyword ?? ['600', '400'],\n number: tokens?.code?.token?.number ?? ['600', '400'],\n operator: tokens?.code?.token?.operator ?? ['600', '400'],\n prolog: tokens?.code?.token?.prolog ?? ['600', '400'],\n property: tokens?.code?.token?.property ?? ['600', '400'],\n pseudoClass: tokens?.code?.token?.pseudoClass ?? ['600', '400'],\n pseudoElement: tokens?.code?.token?.pseudoElement ?? ['600', '400'],\n punctuation: tokens?.code?.token?.punctuation ?? ['600', '400'],\n regex: tokens?.code?.token?.regex ?? ['600', '400'],\n selector: tokens?.code?.token?.selector ?? ['600', '400'],\n string: tokens?.code?.token?.string ?? ['600', '400'],\n symbol: tokens?.code?.token?.symbol ?? ['600', '400'],\n tag: tokens?.code?.token?.tag ?? ['600', '400'],\n unit: tokens?.code?.token?.unit ?? ['600', '400'],\n url: tokens?.code?.token?.url ?? ['600', '400'],\n variable: tokens?.code?.token?.variable ?? ['600', '400'],\n },\n },\n focusRing: tokens?.focusRing ?? ['500', '500'],\n link: {\n fg: tokens?.link?.fg ?? ['600', '400'],\n },\n shadow: {\n outline: tokens?.shadow?.outline ?? ['500', '500'],\n umbra: tokens?.shadow?.umbra ?? ['500', '500'],\n penumbra: tokens?.shadow?.penumbra ?? ['500', '500'],\n ambient: tokens?.shadow?.ambient ?? ['500', '500'],\n },\n skeleton: {\n from: tokens?.skeleton?.from ?? ['100', '900'],\n to: tokens?.skeleton?.to ?? ['50', '950'],\n },\n\n variant: {\n solid: {\n '*': resolveElementTokens(tokens?.variant?.solid?.['*']),\n ...THEME_COLOR_STATE_TONES.reduce(\n (acc, tone) => {\n acc[tone] = resolveElementTokens(\n merge(tokens, tokens?.variant?.solid?.['*'], tokens?.variant?.solid?.[tone]),\n )\n\n return acc\n },\n {} as Record<ThemeColorStateToneKey, ElementColorTokens>,\n ),\n },\n tinted: {\n '*': resolveElementTokens(tokens?.variant?.tinted?.['*']),\n ...THEME_COLOR_STATE_TONES.reduce(\n (acc, tone) => {\n acc[tone] = resolveElementTokens(\n merge(tokens, tokens?.variant?.tinted?.['*'], tokens?.variant?.tinted?.[tone]),\n )\n\n return acc\n },\n {} as Record<ThemeColorStateToneKey, ElementColorTokens>,\n ),\n },\n },\n }\n}\n\nfunction resolveElementTokens(tokens?: PartialTokens<ElementColorTokens>): ElementColorTokens {\n return {\n _hue: tokens?._hue ?? 'gray',\n bg: {\n 0: tokens?.bg?.[0] ?? defaultElementTokens.bg[0],\n 4: tokens?.bg?.[4] ?? defaultElementTokens.bg[4],\n },\n border: {\n 0: tokens?.border?.[0] ?? defaultElementTokens.border[0],\n 4: tokens?.border?.[4] ?? defaultElementTokens.border[4],\n },\n fg: {\n 0: tokens?.fg?.[0] ?? defaultElementTokens.fg[0],\n 4: tokens?.fg?.[4] ?? defaultElementTokens.fg[4],\n },\n }\n}\n","import {black, hues, white} from '@sanity/color'\n\nimport type {ThemeShadow} from '../v0'\nimport {defaultThemeConfig} from '../v2/defaults/config'\nimport {defaultThemeFonts} from './defaultFonts'\nimport {defaultTokens} from './defaultTokens'\nimport {resolveTokens} from './resolveTokens'\nimport type {Radius, Shadow, Space, Theme_v3, ThemeOptions} from './types'\n\n/** @public */\nexport function buildTheme_v3(options?: ThemeOptions): Theme_v3 {\n const {v2} = options ?? {}\n\n const tokens = resolveTokens(options?.tokens ?? defaultTokens)\n\n return {\n _version: 3,\n _tokens: tokens,\n avatar: v2?.avatar ?? defaultThemeConfig.avatar,\n button: v2?.button ?? defaultThemeConfig.button,\n card: v2?.card ?? defaultThemeConfig.card,\n color: tokens.color,\n container: v2?.container ?? defaultThemeConfig.container,\n font: defaultThemeFonts,\n input: v2?.input ?? defaultThemeConfig.input,\n layer: v2?.layer ?? defaultThemeConfig.layer,\n media: v2?.media ?? defaultThemeConfig.media,\n palette: {black, white, hues},\n // TODO\n radius: (v2?.radius ?? defaultThemeConfig.radius) as unknown as Record<Radius, number>,\n // TODO\n shadow: (v2?.shadow ?? defaultThemeConfig.shadow) as unknown as Record<\n Shadow,\n ThemeShadow | undefined\n >,\n // TODO\n space: (v2?.space ?? defaultThemeConfig.space) as unknown as Record<Space, number>,\n }\n}\n","/** @public */\nexport const COLOR_VARIANTS = ['tinted', 'solid'] as const\n\n/** @public */\nexport const AVATAR_COLORS = [\n 'gray',\n 'blue',\n 'purple',\n 'magenta',\n 'red',\n 'orange',\n 'yellow',\n 'green',\n 'cyan',\n] as const\n","import type {Theme} from '../types'\nimport type {Theme_v2} from '../v2'\nimport {defaultThemeConfig} from '../v2/defaults/config'\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"],"names":["defaultThemeConfig","avatar","sizes","distance","size","focusRing","offset","width","button","textWeight","border","BORDER_WIDTH","card","shadow","outline","OUTLINE_WIDTH","container","media","layer","dialog","zOffset","popover","tooltip","radius","umbra","penumbra","ambient","space","input","checkbox","radio","markSize","switch","height","padding","transitionDurationMs","transitionTimingFunction","select","text","style","root","transition","is_v2","themeProp","_version","themeColor_v0_v2_9","color","badge","colors","neutral","default","suggest","primary","bleed","ghost","selectable","cache","WeakMap","themeColor_v0_v2","color_v0","cached_v2","get","base","stateThemeColor_v0_v2","enabled","color_v2","_blend","dark","_dark","accent","backdrop","bg","stateTonesThemeColor_v0_v2","code","fg","icon","muted","inputStatesThemeColor_v0_v2","invalid","kbd","link","bg2","skeleton","from","to","syntax","set","v0","t","hovered","pressed","selected","disabled","positive","caution","critical","state","gray","spot","blue","purple","magenta","red","orange","yellow","green","cyan","dot","transparent","states","inputStateThemeColor_v0_v2","readOnly","placeholder","v0_v2","v2","fonts","font","shadows","styles","light","v2_v0","v3","cachedTheme","themeColor_v2_v0","inputStatesThemeColor_v2_v0","solid","inputStateThemeColor_v2_v0","Map","getScopedTheme","scheme","tone","_getCachedTheme","colorScheme_v0","layer_v0","colorScheme_v2","color_v2_9","layer_v2","theme","sanity","_resolved","_setCachedTheme","rootTheme","schemeCache","toneCache","has","createSelectableTones","opts","_createSelectableStates","createSolidTones","name","createButtonTones","mode","createButtonModes","createCardStates","black","white","lightest","lighter","darker","darkest","spots","tones","defaultOpts","key","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","className","comment","constant","deleted","doctype","entity","function","hexcode","id","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","symbol","tag","unit","url","variable","createInputModes","createMutedTones","createSpot","createColorTheme","partialOpts","builders","_createColorScheme","_createColor","defaultThemeFonts","family","weights","regular","medium","semibold","bold","ascenderHeight","descenderHeight","fontSize","iconSize","lineHeight","letterSpacing","heading","label","THEME_COLOR_SCHEMES","THEME_COLOR_BLEND_MODES","THEME_COLOR_CARD_TONES","THEME_COLOR_STATE_TONES","THEME_COLOR_STATES","THEME_COLOR_BUTTON_MODES","THEME_COLOR_INPUT_MODES","THEME_COLOR_INPUT_STATES","THEME_COLOR_AVATAR_COLORS","COLOR_HUES","isColorBlendModeValue","str","includes","isColorHueKey","isColorTintKey","COLOR_TINTS","isColorButtonMode","COLOR_CONFIG_STATE_KEYS","COLOR_CONFIG_CARD_KEYS","COLOR_CONFIG_BLEND_KEYS","COLOR_CONFIG_AVATAR_COLORS","COLOR_CONFIG_CARD_TONES","COLOR_CONFIG_STATE_TONES","COLOR_CONFIG_STATES","COLOR_CONFIG_INPUT_MODES","COLOR_CONFIG_INPUT_STATES","isColorConfigBaseTone","isColorConfigBaseKey","isColorConfigStateKey","isColorConfigStateTone","isColorConfigBlendKey","isColorValue","isColorOpacityValue","test","isColorMixPercentValue","parseTokenValue","segments","split","nextSegment","shift","segment0","segment0mix","tint","segment1","mix","Number","slice","type","opacity","hue","segment1mix","segment2","value","compileColorTokenValue","node","undefined","DEFAULT_COLOR_TOKEN_VALUE","resolveColorTokenValue","context","Error","defaultColorTokens","_hue","isRecord","Boolean","Array","isArray","merge","records","_records","filter","length","reduce","_merge","acc","source","Object","keys","prevValue","nextValue","resolveColorTokens","inputTokens","tokens","resolveBaseColorTokens","resolveButtonColorTokens","resolveInputColorTokens","resolveSelectableColorTokens","sparseTokens","resolveBaseColorTones","spec","resolveButtonToneColorTokens","resolveButtonModeColorTokens","resolveButtonStateColorTokens","resolveInputModeColorTokens","resolveInputStateColorTokens","resolveSelectableToneColorTokens","resolveSelectableStateColorTokens","buildColorTheme","config","resolvedConfig","buildColorScheme","options","colorScheme","buildCardColorTheme","_color","buildAvatarColorTheme","buildBadgeColorTheme","buildButtonColorTheme","buildInputColorTheme","buildSelectableColorTheme","buildShadowColorTheme","buildSyntaxColorTheme","stateTokens","_buildAvatarColorTheme","colorBadge","_buildBadgeColorTheme","parentTokens","cardTone","modes","buildButtonTonesColorTheme","buildButtonStatesColorTheme","buildButtonStateColorTheme","cardTokens","blendMode","buildInputStatesColorTheme","buildInputStateColorTheme","buildSelectableStatesColorTheme","buildSelectableStateColorTheme","defaultColorPalette","mixChannel","b","s","weight","delta","r","g","multiplyChannel","multiply","screenChannel","screen","lerp","x","y","a","invlerp","clamp","min","max","Math","range","x1","y1","x2","y2","round","hexToRgb","hex","hexR","hexG","hexB","parseInt","rgbaToRGBA","rgba","values","replace","parseFloat","rgbToHex","toString","rgbToHsl","cmin","cmax","h","l","abs","toFixed","hslToRgb","hsl","c","m","HEX_CHARS","HSL_RE","isHexChars","indexOf","isHex","parseHsl","res","exec","parseColor","startsWith","getContrastRatio","rgb1","rgb2","c1","rgb_lrgb","c2","l1","lrgb_luminance","l2","rgb_lrgb1","v","rgb","RGB_RANGE","mixThemeColor","paletteRange","convertedBgColor","convertedColor","resultColor","renderColorValue","colorPalette","renderColorHex","hexBeforeMix","mixOptions","err","console","warn","renderThemeColorSchemes","palette","renderThemeColorScheme","toneEntries","entries","transparentTone","find","k","defaultTone","renderedTransparentTone","renderThemeColor","renderedDefaultTone","fromEntries","map","baseBg","colorOptions","renderThemeColorButton","renderThemeColorSelectable","renderThemeColorAvatar","renderThemeColorBadge","renderThemeColorInput","renderThemeColorKBD","renderSyntaxColorTheme","rootOptions","colorAvatar","renderThemeColorAvatarColor","rootBlendMode","renderThemeColorBadgeColor","renderThemeColorButtonTones","colorButtonMode","renderThemeColorButtonStates","renderThemeColorState","renderInputStatesColorTheme","renderInputStateColorTheme","colorSelectable","renderThemeColorSelectableStates","buildTheme","colorTheme","AVATAR_SIZE","CONTAINER_SCALE","CONTAINER","RADIUS","SPACE","FONT_CODE_SIZE","FONT_HEADING_SIZE","FONT_LABEL_SIZE","FONT_TEXT_SIZE","SHADOW","HUES","TINTS","RE_PERCENTAGE","RE_OPACITY","_parseColorToken","defaultHue","cursor","parseColorNode","_consume","_peek","parseOpacity","parseMix","String","parseTint","match","ignoreWhitespace","scale","customIconSize","featureSettings","defaultTokens","token","variant","tinted","defaultElementTokens","resolveTokens","resolveCardColorTokens","resolveElementTokens","buildTheme_v3","_tokens","hues","COLOR_VARIANTS","AVATAR_COLORS","getTheme_v2"],"mappings":"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"}
|