UNPKG

@sanity/ui

Version:

The Sanity UI components.

1,501 lines (1,336 loc) 31.6 kB
import {ColorHueKey} from '@sanity/color' import {ColorTint} from '@sanity/color' import {ColorTintKey} from '@sanity/color' import type {StyledObject} from 'styled-components' /** * @public */ export declare interface BaseTheme { _version?: 0 /** * @deprecated Use `v2.avatar` instead */ avatar: ThemeAvatar /** * @deprecated Use `v2.button` instead */ button: { textWeight: ThemeFontWeightKey } /** * @deprecated Use `v2.color` instead */ color: ThemeColorSchemes /** * @deprecated Use `v2.container` instead */ container: number[] /** * @deprecated Use component-specific `v2.{button | card | input}.focusRing` values instead */ focusRing: { offset: number width: number } /** * @deprecated Use `v2.font` instead */ fonts: ThemeFonts /** * @deprecated Use `v2.input` instead */ input: ThemeInput /** * THIS API MAY BE UNSTABLE. DO NOT USE IN PRODUCTION. * @beta * @deprecated Use `v2.layer` instead */ layer?: ThemeLayer /** * @deprecated Use `v2.media` instead */ media: number[] /** * @deprecated Use `v2.radius` instead */ radius: number[] /** * @deprecated Use `v2.shadow` instead */ shadows: Array<ThemeShadow | null> /** * @deprecated Use `v2.space` instead */ space: number[] /** * @internal * @deprecated Use `v2.style` instead */ styles?: ThemeStyles v2?: RootTheme_v2 } /** @internal */ export declare function buildTheme(config?: ThemeConfig): RootTheme /** @public */ export declare const COLOR_CONFIG_AVATAR_COLORS: readonly ['*', ...ColorHueKey[]] /** @public */ export declare const COLOR_CONFIG_BLEND_KEYS: readonly ['_blend'] /** @public */ export declare const COLOR_CONFIG_CARD_KEYS: readonly [ '_hue', 'bg', 'fg', 'border', 'focusRing', 'muted/fg', 'accent/fg', 'link/fg', 'code/bg', 'code/fg', 'skeleton/from', 'skeleton/to', 'status/dot', 'status/icon', '_hue', 'bg', 'fg', 'border', 'focusRing', 'shadow/outline', 'shadow/umbra', 'shadow/penumbra', 'shadow/ambient', ] /** @public */ export declare const COLOR_CONFIG_CARD_TONES: readonly [ '*', 'transparent', 'default', 'neutral', 'primary', 'suggest', 'positive', 'caution', 'critical', ] /** @public */ export declare const COLOR_CONFIG_INPUT_MODES: readonly ['*', 'default', 'invalid'] /** @public */ export declare const COLOR_CONFIG_INPUT_STATES: readonly [ '*', 'enabled', 'hovered', 'readOnly', 'disabled', ] /** @public */ export declare const COLOR_CONFIG_STATE_KEYS: readonly [ '_hue', 'bg', 'fg', 'border', 'focusRing', 'muted/fg', 'accent/fg', 'link/fg', 'code/bg', 'code/fg', 'skeleton/from', 'skeleton/to', 'status/dot', 'status/icon', ] /** @public */ export declare const COLOR_CONFIG_STATE_TONES: readonly [ '*', 'default', 'neutral', 'primary', 'suggest', 'positive', 'caution', 'critical', ] /** @public */ export declare const COLOR_CONFIG_STATES: readonly [ '*', 'enabled', 'hovered', 'pressed', 'selected', 'disabled', ] /** @public */ export declare type ColorBlendModeTokenValue = [ThemeColorBlendModeKey, ThemeColorBlendModeKey] /** @public */ export declare type ColorConfigAvatarColor = (typeof COLOR_CONFIG_AVATAR_COLORS)[number] /** @public */ export declare type ColorConfigBlendKey = (typeof COLOR_CONFIG_BLEND_KEYS)[number] /** @public */ export declare type ColorConfigCardKey = (typeof COLOR_CONFIG_CARD_KEYS)[number] /** @public */ export declare type ColorConfigCardTone = (typeof COLOR_CONFIG_CARD_TONES)[number] /** @public */ export declare type ColorConfigInputMode = (typeof COLOR_CONFIG_INPUT_MODES)[number] /** @public */ export declare type ColorConfigInputState = (typeof COLOR_CONFIG_INPUT_STATES)[number] /** @public */ export declare type ColorConfigOpacityValue = `0` | `0.${number}` | `1` /** @public */ export declare type ColorConfigState = (typeof COLOR_CONFIG_STATES)[number] /** @public */ export declare type ColorConfigStateKey = (typeof COLOR_CONFIG_STATE_KEYS)[number] /** @public */ export declare type ColorConfigStateTone = (typeof COLOR_CONFIG_STATE_TONES)[number] /** @public */ export declare type ColorConfigValue = | `black` | `white` | `black/${ColorConfigOpacityValue}` | `white/${ColorConfigOpacityValue}` | `${ColorHueKey}` | `${ColorHueKey} ${number}%` | `${ColorHueKey}/${ColorTintKey}` | `${ColorHueKey}/${ColorTintKey} ${number}%` | `${ColorHueKey}/${ColorTintKey}/${ColorConfigOpacityValue}` | `${ColorTintKey}` | `${ColorTintKey} ${number}%` | `${ColorTintKey}/${ColorConfigOpacityValue}` /** * @public * @deprecated Use `buildColorTheme` instead. */ export declare function createColorTheme( partialOpts?: PartialThemeColorBuilderOpts, ): ThemeColorSchemes /** * Work around types that are missing in `styled-components@6` * https://github.com/styled-components/styled-components/issues/4062 * @internal */ export declare type CSSObject = StyledObject<any> /** @internal */ export declare function getContrastRatio(bg: string, fg: string): number /** @internal */ export declare function getScopedTheme( themeProp: RootTheme | RootTheme_v2, scheme: ThemeColorSchemeKey, tone: ThemeColorCardToneKey, ): Theme /** @public */ export declare function getTheme_v2(theme: Theme): Theme_v2 /** * @internal */ export declare function hexToRgb(hex: string): RGB /** * @internal */ export declare interface HSL { h: number s: number l: number } /** * @internal */ export declare function hslToRgb(hsl: HSL): RGB /** @internal */ export declare function is_v0(themeProp: RootTheme | RootTheme_v2): themeProp is RootTheme /** @internal */ export declare function is_v2(themeProp: RootTheme | RootTheme_v2): themeProp is RootTheme_v2 /** @internal */ export declare function isColorBlendModeValue(str: string): str is ThemeColorBlendModeKey /** @internal */ export declare function isColorButtonMode(str: string): str is ThemeColorButtonModeKey /** @internal */ export declare function isColorConfigBaseKey(str: string): str is ColorConfigCardKey /** @internal */ export declare function isColorConfigBaseTone(str: string): str is ColorConfigCardTone /** @internal */ export declare function isColorConfigBlendKey(str: string): str is ColorConfigBlendKey /** @internal */ export declare function isColorConfigStateKey(str: string): str is ColorConfigStateKey /** @internal */ export declare function isColorConfigStateTone(str: string): str is ColorConfigStateTone /** @internal */ export declare function isColorHueKey(str: string): str is ColorHueKey /** @internal */ export declare function isColorOpacityValue(str: string): str is ColorConfigOpacityValue /** @internal */ export declare function isColorTintKey(str: string): str is ColorTintKey /** @internal */ export declare function isColorTokenValue(str: string): str is ColorConfigValue /** @internal */ export declare function isColorValue(str: string): str is 'black' | 'white' /** * Apply the \`mix\` blend mode * @internal */ export declare function mix(b: RGB | RGBA, s: RGB | RGBA, weight: number): RGB /** * Apply the \`multiply\` blend mode * Source: https://www.w3.org/TR/compositing-1/#blendingmultiply * @internal */ export declare function multiply(b: RGB | RGBA, s: RGB | RGBA): RGB /** * @internal */ export declare function parseColor(color: unknown): RGB | RGBA /** @internal */ export declare function parseTokenKey(str: string): TokenKeyNode | undefined /** @internal */ export declare function parseTokenValue(str: string): TokenValueNode | undefined /** * @public * @deprecated Use `ThemeConfig` instead. */ export declare type PartialThemeColorBuilderOpts = Partial<ThemeColorBuilderOpts> /** * @internal */ export declare interface RGB { r: number g: number b: number a?: undefined } /** * @internal */ export declare interface RGBA { r: number g: number b: number a: number } /** * @internal */ export declare function rgba(color: unknown, a: number): string /** * @internal */ export declare function rgbaToRGBA(rgba: string): RGBA /** * @internal */ export declare function rgbToHex(color: RGB | RGBA): string /** * @internal * @see https://css-tricks.com/converting-color-spaces-in-javascript/ */ export declare function rgbToHsl({r, g, b}: RGB): HSL /** * @public */ export declare type RootTheme = BaseTheme /** * @public */ export declare interface RootTheme_v2 { _version: 2 avatar: ThemeAvatar_v2 button: { border: { width: number } focusRing: ThemeFocusRing textWeight: ThemeFontWeightKey } card: { border: { width: number } focusRing: ThemeFocusRing shadow: { outline: number } } color: ThemeColorSchemes_v2 container: number[] font: ThemeFonts input: ThemeInput_v2 layer: ThemeLayer media: number[] radius: number[] shadow: Array<ThemeShadow | null> space: number[] /** @internal */ style?: ThemeStyles } /** * Apply the \`screen\` blend mode * Source: https://www.w3.org/TR/compositing-1/#blendingscreen * @internal */ declare function screen_2(b: RGB | RGBA, s: RGB | RGBA): RGB export {screen_2 as screen} /** * @public */ export declare interface Theme { sanity: Omit<RootTheme, 'color' | 'v2'> & { /** * @deprecated Use `v2.color` instead */ color: ThemeColor v2?: Theme_v2 } } /** @public */ export declare const THEME_COLOR_AVATAR_COLORS: ColorHueKey[] /** @public */ export declare const THEME_COLOR_BLEND_MODES: readonly ['multiply', 'screen'] /** @public */ export declare const THEME_COLOR_BUTTON_MODES: readonly ['default', 'ghost', 'bleed'] /** @public */ export declare const THEME_COLOR_CARD_TONES: readonly [ 'transparent', 'default', 'neutral', 'primary', 'suggest', 'positive', 'caution', 'critical', ] /** @public */ export declare const THEME_COLOR_INPUT_MODES: readonly ['default', 'invalid'] /** @public */ export declare const THEME_COLOR_INPUT_STATES: readonly [ 'enabled', 'hovered', 'readOnly', 'disabled', ] /** @public */ export declare const THEME_COLOR_SCHEMES: readonly ['light', 'dark'] /** @public */ export declare const THEME_COLOR_STATE_TONES: readonly [ 'default', 'neutral', 'primary', 'suggest', 'positive', 'caution', 'critical', ] /** @public */ export declare const THEME_COLOR_STATES: readonly [ 'enabled', 'hovered', 'pressed', 'selected', 'disabled', ] /** * @public */ export declare type Theme_v2 = Omit<RootTheme_v2, 'color'> & { color: ThemeColorCard_v2 /** * Indicates whether the theme is resolved or raw, it's necessary to avoid issues * with sanity V2 components accessing a v1 <ThemeProvider>. * See https://github.com/sanity-io/ui/pull/1203 for more info. */ _resolved: boolean } /** * @public * @deprecated Use `ThemeAvatar_v2` from `@sanity/ui/theme` instead. */ export declare interface ThemeAvatar { sizes: { distance: number size: number }[] } /** * @public */ export declare interface ThemeAvatar_v2 { sizes: { /** Spacing between avatars in an <AvatarStack> component (px) */ distance: number /** Diameter of the avatar (px) */ size: number }[] focusRing: ThemeFocusRing } /** * @public */ export declare type ThemeBoxShadow = [number, number, number, number] /** * @public * @deprecated Use `ThemeColor_v2` instead. */ export declare interface ThemeColor extends Partial<Omit<ThemeColorGenericState, 'muted'>> { base: ThemeColorBase button: ThemeColorButton card: ThemeColorCard dark: boolean input: ThemeColorInput muted: ThemeColorMuted selectable?: ThemeColorSelectable solid: ThemeColorSolid spot: ThemeColorSpot syntax: ThemeColorSyntax } /** * @public */ export declare type ThemeColorAvatar_v2 = Record<ThemeColorAvatarColorKey, ThemeColorAvatarHue_v2> /** @public */ export declare type ThemeColorAvatarColorKey = (typeof THEME_COLOR_AVATAR_COLORS)[number] /** * @public */ export declare interface ThemeColorAvatarHue_v2 { _blend?: ThemeColorBlendModeKey bg: string fg: string } /** @public */ export declare interface ThemeColorAvatarHueTokens { _blend?: ColorBlendModeTokenValue _hue?: ColorHueKey bg?: ThemeColorTokenValue fg?: ThemeColorTokenValue } /** @public */ export declare interface ThemeColorAvatarTokens { '*'?: ThemeColorAvatarHueTokens 'gray'?: ThemeColorAvatarHueTokens 'blue'?: ThemeColorAvatarHueTokens 'purple'?: ThemeColorAvatarHueTokens 'magenta'?: ThemeColorAvatarHueTokens 'red'?: ThemeColorAvatarHueTokens 'orange'?: ThemeColorAvatarHueTokens 'yellow'?: ThemeColorAvatarHueTokens 'green'?: ThemeColorAvatarHueTokens 'cyan'?: ThemeColorAvatarHueTokens } /** * @public */ export declare type ThemeColorBadge_v2 = Record<ThemeColorStateToneKey, ThemeColorBadgeTone_v2> /** @public */ export declare type ThemeColorBadgeTokens = Partial< Record<'*' | ThemeColorStateToneKey, ThemeColorBadgeToneTokens> > /** * @public */ export declare interface ThemeColorBadgeTone_v2 { bg: string fg: string dot: string icon: string } /** @public */ export declare interface ThemeColorBadgeToneTokens { _blend?: ColorBlendModeTokenValue _hue?: ColorHueKey bg?: ThemeColorTokenValue dot?: ThemeColorTokenValue fg?: ThemeColorTokenValue icon?: ThemeColorTokenValue } /** * @public * @deprecated Use `ThemeColorCard_v2` instead. */ export declare interface ThemeColorBase { bg: string fg: string border: string focusRing: string backdrop?: string shadow: { outline: string umbra: string penumbra: string ambient: string } skeleton?: { from: string to: string } } /** @public */ export declare interface ThemeColorBaseTokens extends ThemeColorStateTokens { focusRing?: ThemeColorTokenValue backdrop?: ThemeColorTokenValue shadow?: { outline?: ThemeColorTokenValue umbra?: ThemeColorTokenValue penumbra?: ThemeColorTokenValue ambient?: ThemeColorTokenValue } } /** @public */ export declare type ThemeColorBlendModeKey = (typeof THEME_COLOR_BLEND_MODES)[number] /** * @public * @deprecated Use `buildColorTheme` instead. */ export declare interface ThemeColorBuilderOpts { base: (opts: {dark: boolean; name: ThemeColorName}) => ThemeColorBase solid: (opts: { base: ThemeColorBase dark: boolean tone: ThemeColorName name: ThemeColorName state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected' }) => ThemeColorGenericState muted: (opts: { base: ThemeColorBase dark: boolean tone: ThemeColorToneKey name: ThemeColorName state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected' }) => ThemeColorGenericState card: (opts: { base: ThemeColorBase dark: boolean muted: ThemeColorMuted name: ThemeColorName solid: ThemeColorSolid state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected' }) => ThemeColorGenericState button: (opts: { dark: boolean mode: ThemeColorButtonModeKey base: ThemeColorBase solid: ThemeColorSolidTone muted: ThemeColorMutedTone }) => ThemeColorButtonStates input: (opts: { base: ThemeColorBase solid: ThemeColorSolidTone muted: ThemeColorMutedTone dark: boolean mode: 'default' | 'invalid' state: 'enabled' | 'disabled' | 'hovered' | 'readOnly' }) => ThemeColorInputState selectable: (opts: { dark: boolean base: ThemeColorBase solid: ThemeColorSolid muted: ThemeColorMuted state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected' tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical' }) => ThemeColorGenericState syntax: (opts: {base: ThemeColorBase; dark: boolean}) => ThemeColorSyntax spot: (opts: {base: ThemeColorBase; dark: boolean; key: ThemeColorSpotKey}) => string } /** * @public * @deprecated Use `ThemeColorButton_v2` instead. */ export declare interface ThemeColorButton { default: ThemeColorButtonTones ghost: ThemeColorButtonTones bleed: ThemeColorButtonTones } /** * @public */ export declare type ThemeColorButton_v2 = Record<ThemeColorButtonModeKey, ThemeColorButtonMode_v2> /** * @public */ export declare type ThemeColorButtonMode_v2 = Record< ThemeColorStateToneKey, ThemeColorButtonTone_v2 > /** @public */ export declare type ThemeColorButtonModeKey = (typeof THEME_COLOR_BUTTON_MODES)[number] /** * @public * @deprecated Use `ThemeColorState_v2` instead. */ export declare type ThemeColorButtonState = ThemeColorGenericState /** * @public * @deprecated Use `ThemeColorButtonStates_v2` instead. */ export declare interface ThemeColorButtonStates { enabled: ThemeColorGenericState hovered: ThemeColorGenericState pressed: ThemeColorGenericState selected: ThemeColorGenericState disabled: ThemeColorGenericState } /** @public */ export declare interface ThemeColorButtonTokens extends Partial<Record<ColorConfigStateTone, ThemeColorStatesTokens>> { _hue?: ColorHueKey } /** * @public */ export declare type ThemeColorButtonTone_v2 = Record<ThemeColorStateKey, ThemeColorState_v2> /** * TODO: Rename to `ThemeColorButtonMode`. * @public * @deprecated Use `ThemeColorButtonTones_v2` instead. */ export declare interface ThemeColorButtonTones { default: ThemeColorButtonStates primary: ThemeColorButtonStates positive: ThemeColorButtonStates caution: ThemeColorButtonStates critical: ThemeColorButtonStates } /** * @public * @deprecated Use `ThemeColorSelectable_v2` instead. */ export declare interface ThemeColorCard { enabled: ThemeColorGenericState hovered: ThemeColorGenericState pressed: ThemeColorGenericState selected: ThemeColorGenericState disabled: ThemeColorGenericState } /** * @public */ export declare interface ThemeColorCard_v2 extends ThemeColorState_v2 { /** @internal */ _blend: ThemeColorBlendModeKey _dark: boolean backdrop: string button: ThemeColorButton_v2 focusRing: string input: ThemeColorInput_v2 selectable: ThemeColorSelectable_v2 shadow: ThemeColorShadow syntax: ThemeColorSyntax } /** * @public * @deprecated Use `ThemeColorState_v2` instead. */ export declare type ThemeColorCardState = ThemeColorGenericState /** @public */ export declare type ThemeColorCardToneKey = (typeof THEME_COLOR_CARD_TONES)[number] /** * @public * @deprecated Use `ThemeColorState_v2` instead. */ export declare interface ThemeColorGenericState { /** @internal */ _blend?: ThemeColorBlendModeKey bg: string /** * @beta */ bg2?: string border: string fg: string icon: string muted: { fg: string } accent: { fg: string } link: { fg: string } code: { bg: string fg: string } skeleton?: { from: string to: string } } /** * @public * @deprecated Use `ThemeColorInput_v2` instead. */ export declare interface ThemeColorInput { default: ThemeColorInputStates invalid: ThemeColorInputStates } /** * @public */ export declare type ThemeColorInput_v2 = Record<ThemeColorInputModeKey, ThemeColorInputMode_v2> /** * @public */ export declare type ThemeColorInputMode_v2 = Record< ThemeColorInputStateKey, ThemeColorInputState_v2 > /** @public */ export declare type ThemeColorInputModeKey = (typeof THEME_COLOR_INPUT_MODES)[number] /** * @public * @deprecated Use `ThemeColorInputState_v2` instead. */ export declare interface ThemeColorInputState { _blend?: ThemeColorBlendModeKey bg: string bg2: string border: string fg: string placeholder: string } /** * @public */ export declare interface ThemeColorInputState_v2 { _blend?: ThemeColorBlendModeKey bg: string border: string fg: string muted: { bg: string } placeholder: string } /** @public */ export declare type ThemeColorInputStateKey = (typeof THEME_COLOR_INPUT_STATES)[number] /** * @public * @deprecated Use `ThemeColorInputMode_v2` instead. */ export declare interface ThemeColorInputStates { enabled: ThemeColorInputState disabled: ThemeColorInputState hovered: ThemeColorInputState readOnly: ThemeColorInputState } /** @public */ export declare interface ThemeColorInputStateTokens { _blend?: ColorBlendModeTokenValue _hue?: ColorHueKey bg?: ThemeColorTokenValue border?: ThemeColorTokenValue fg?: ThemeColorTokenValue muted?: { bg?: ThemeColorTokenValue } placeholder?: ThemeColorTokenValue } /** @public */ export declare interface ThemeColorInputTokens extends Partial<Record<ColorConfigInputState, ThemeColorInputStateTokens>> { _hue?: ColorHueKey } /** * @public */ export declare interface ThemeColorKBD { bg: string fg: string border: string } /** * @public * @deprecated Use `ThemeColorSelectable_v2` instead. */ export declare interface ThemeColorMuted { default: ThemeColorMutedTone transparent: ThemeColorMutedTone primary: ThemeColorMutedTone positive: ThemeColorMutedTone caution: ThemeColorMutedTone critical: ThemeColorMutedTone } /** * @public * @deprecated Use `ThemeColorSelectableTone_v2` instead. */ export declare interface ThemeColorMutedTone { enabled: ThemeColorGenericState disabled: ThemeColorGenericState hovered: ThemeColorGenericState pressed: ThemeColorGenericState selected: ThemeColorGenericState } /** * @public * @deprecated Use `ThemeColorCardToneKey` instead. */ export declare type ThemeColorName = | 'transparent' | 'default' | 'primary' | 'positive' | 'caution' | 'critical' /** @public */ export declare type ThemeColorPalette = { black: string | ColorTint white: string | ColorTint } & Record<ColorHueKey, Record<ColorTintKey, string | ColorTint>> /** * @public * @deprecated Use `ThemeColorScheme_v2` instead. */ export declare type ThemeColorScheme = Record<ThemeColorName, ThemeColor> /** * @public */ export declare type ThemeColorScheme_v2 = Record<ThemeColorCardToneKey, ThemeColorCard_v2> /** * @public */ export declare type ThemeColorSchemeKey = (typeof THEME_COLOR_SCHEMES)[number] /** * @public * @deprecated Use `ThemeColorSchemes_v2` instead. */ export declare type ThemeColorSchemes = Record<ThemeColorSchemeKey, ThemeColorScheme> /** * @public */ export declare type ThemeColorSchemes_v2 = Record<ThemeColorSchemeKey, ThemeColorScheme_v2> /** * @public * @deprecated Use `ThemeColorSelectable_v2` instead. */ export declare interface ThemeColorSelectable { default: ThemeColorSelectableStates primary: ThemeColorSelectableStates positive: ThemeColorSelectableStates caution: ThemeColorSelectableStates critical: ThemeColorSelectableStates } /** * @public */ export declare type ThemeColorSelectable_v2 = Record< ThemeColorStateToneKey, ThemeColorSelectableTone_v2 > /** * @public * @deprecated Use `ThemeColorState_v2` instead. */ export declare type ThemeColorSelectableState = ThemeColorGenericState /** * @public * @deprecated Use `ThemeColorSelectableStates_v2` instead. */ export declare interface ThemeColorSelectableStates { enabled: ThemeColorSelectableState hovered: ThemeColorSelectableState pressed: ThemeColorSelectableState selected: ThemeColorSelectableState disabled: ThemeColorSelectableState } /** * @public */ export declare type ThemeColorSelectableTone_v2 = Record<ThemeColorStateKey, ThemeColorState_v2> /** @public */ export declare interface ThemeColorShadow { outline: string umbra: string penumbra: string ambient: string } /** * @public * @deprecated Use `ThemeColorSelectable_v2` instead. */ export declare interface ThemeColorSolid { default: ThemeColorSolidTone transparent: ThemeColorSolidTone primary: ThemeColorSolidTone positive: ThemeColorSolidTone caution: ThemeColorSolidTone critical: ThemeColorSolidTone } /** * @public * @deprecated Use `ThemeColorSelectableTone_v2` instead. */ export declare interface ThemeColorSolidTone { enabled: ThemeColorGenericState disabled: ThemeColorGenericState hovered: ThemeColorGenericState pressed: ThemeColorGenericState selected: ThemeColorGenericState } /** * @public * @deprecated Use `ThemeColorAvatar_v2` instead */ export declare type ThemeColorSpot = Record<ThemeColorSpotKey, string> /** * @public * @deprecated Use `ThemeColorAvatarColorKey` instead */ export declare type ThemeColorSpotKey = ThemeColorAvatarColorKey /** * @public */ export declare interface ThemeColorState_v2 { /** @internal */ _blend?: ThemeColorBlendModeKey accent: { fg: string } /** * @internal This may be removed in a future release * */ avatar: ThemeColorAvatar_v2 /** * @internal This may be removed in a future release * */ badge: ThemeColorBadge_v2 bg: string border: string code: { bg: string fg: string } fg: string icon: string kbd: ThemeColorKBD link: { fg: string } muted: { bg: string fg: string } skeleton: { from: string to: string } } /** @public */ export declare type ThemeColorStateKey = (typeof THEME_COLOR_STATES)[number] /** @public */ export declare type ThemeColorStatesTokens = Partial< Record<ColorConfigState, ThemeColorStateTokens> > /** @public */ export declare interface ThemeColorStateTokens { _blend?: ColorBlendModeTokenValue _hue?: ColorHueKey accent?: { fg?: ThemeColorTokenValue } avatar?: ThemeColorAvatarTokens badge?: ThemeColorBadgeTokens bg?: ThemeColorTokenValue border?: ThemeColorTokenValue code?: { bg?: ThemeColorTokenValue fg?: ThemeColorTokenValue } fg?: ThemeColorTokenValue icon?: ThemeColorTokenValue kbd?: { bg?: ThemeColorTokenValue fg?: ThemeColorTokenValue border?: ThemeColorTokenValue } link?: { fg?: ThemeColorTokenValue } muted?: { bg?: ThemeColorTokenValue fg?: ThemeColorTokenValue } skeleton?: { from?: ThemeColorTokenValue to?: ThemeColorTokenValue } } /** @public */ export declare type ThemeColorStateToneKey = (typeof THEME_COLOR_STATE_TONES)[number] /** * @public */ export declare interface ThemeColorSyntax { atrule: string attrName: string attrValue: string attribute: string boolean: string builtin: string cdata: string char: string class: string className: string comment: string constant: string deleted: string doctype: string entity: string function: string hexcode: string id: string important: string inserted: string keyword: string number: string operator: string prolog: string property: string pseudoClass: string pseudoElement: string punctuation: string regex: string selector: string string: string symbol: string tag: string unit: string url: string variable: string } /** @public */ export declare interface ThemeColorTokens { base?: Partial<Record<ColorConfigCardTone, ThemeColorBaseTokens>> button?: Partial<Record<ThemeColorButtonModeKey, ThemeColorButtonTokens>> input?: Partial<Record<ColorConfigInputMode, ThemeColorInputTokens>> selectable?: Partial< Record< ColorConfigStateTone, { _hue?: ColorHueKey } & ThemeColorStatesTokens > > syntax?: Partial<Record<keyof ThemeColorSyntax, ThemeColorTokenValue>> } /** @public */ export declare type ThemeColorTokenValue = [ColorConfigValue, ColorConfigValue] /** * @public * @deprecated Use `ThemeColorCardToneKey` instead. */ export declare type ThemeColorToneKey = ThemeColorName /** @public */ export declare interface ThemeConfig { avatar?: ThemeAvatar_v2 button?: { border: { width: number } focusRing: ThemeFocusRing textWeight: ThemeFontWeightKey } card?: { border: { width: number } focusRing: ThemeFocusRing shadow: { outline: number } } color?: ThemeColorTokens container?: number[] font?: ThemeFonts input?: ThemeInput_v2 layer?: ThemeLayer media?: number[] palette?: ThemeColorPalette radius?: number[] shadow?: Array<ThemeShadow | null> space?: number[] /** @internal */ style?: ThemeStyles } /** * @public */ export declare interface ThemeFocusRing { offset: number width: number } /** * @public */ export declare interface ThemeFont { family: string weights: ThemeFontWeight sizes: ThemeFontSize[] /** @deprecated No longer supported. */ horizontalOffset?: number } /** * @public */ export declare type ThemeFontKey = 'code' | 'heading' | 'label' | 'text' /** * @public */ export declare interface ThemeFonts { code: ThemeFont heading: ThemeFont label: ThemeFont text: ThemeFont } /** * @public */ export declare interface ThemeFontSize { ascenderHeight: number descenderHeight: number fontSize: number iconSize: number letterSpacing: number lineHeight: number } /** * @public */ export declare interface ThemeFontWeight { regular: number medium: number semibold: number bold: number } /** * @public */ export declare type ThemeFontWeightKey = 'regular' | 'medium' | 'semibold' | 'bold' /** * @public * @deprecated Use `ThemeInput_v2` instead */ export declare interface ThemeInput { checkbox: { size: number } radio: { size: number markSize: number } switch: { width: number height: number padding: number transitionDurationMs: number transitionTimingFunction: string } border: { width: number } } /** * @public */ export declare interface ThemeInput_v2 { checkbox: { size: number focusRing: ThemeFocusRing } radio: { size: number markSize: number focusRing: ThemeFocusRing } switch: { width: number height: number padding: number transitionDurationMs: number transitionTimingFunction: string focusRing: ThemeFocusRing } border: { width: number } select: { focusRing: ThemeFocusRing } text: { focusRing: ThemeFocusRing } } /** * @public */ export declare interface ThemeLayer { dialog: { zOffset: number } popover: { zOffset: number } tooltip: { zOffset: number } } /** * @public */ export declare interface ThemeShadow { umbra: ThemeBoxShadow penumbra: ThemeBoxShadow ambient: ThemeBoxShadow } /** * @internal */ export declare interface ThemeStyles { button?: { root?: CSSObject } card?: { root?: CSSObject } } /** @internal */ export declare interface TokenBaseKeyNode { type: 'base' tone: ColorConfigCardTone key: ColorConfigCardKey | ColorConfigBlendKey } /** @internal */ export declare interface TokenBlendModeValueNode { type: 'blendMode' value?: ThemeColorBlendModeKey } /** @internal */ export declare interface TokenButtonKeyNode { type: 'button' tone: ColorConfigStateTone mode: ThemeColorButtonModeKey key: ColorConfigStateKey | ColorConfigBlendKey } /** @internal */ export declare interface TokenColorValueNode { type: 'color' key?: 'black' | 'white' hue?: ColorHueKey mix?: number opacity?: number tint?: ColorTintKey } /** @internal */ export declare interface TokenHueValueNode { type: 'hue' value?: ColorHueKey } /** @internal */ export declare type TokenKeyNode = TokenBaseKeyNode | TokenButtonKeyNode /** @internal */ export declare type TokenValueNode = | TokenColorValueNode | TokenHueValueNode | TokenBlendModeValueNode /** @internal */ export declare function v0_v2(v0: RootTheme): RootTheme_v2 /** @internal */ export declare function v2_v0(v2: RootTheme_v2): RootTheme export {}