import type { CSSProperties } from 'react'; import type { ASComponentSize, ASTheme } from '../apptypes/ASUI.types'; export type ASThemePreset = 'classic' | 'neutral'; export type ASThemePartial = { [Key in keyof T]?: T[Key] extends readonly unknown[] ? T[Key] : T[Key] extends object ? ASThemePartial : T[Key]; }; export interface ASThemeTokens { color: { surface: string; text: string; mutedText: string; accent: string; onAccent: string; accentHover: string; accentPressed: string; border: string; focus: string; disabledSurface: string; disabledText: string; invalid: string; }; typography: { fontFamily: string; fontWeight: CSSProperties['fontWeight']; }; radius: { control: string; }; motion: { duration: string; easing: string; }; size: Record; } export interface ASControlStateStyle { background: string; color: string; borderColor: string; shadow: string; textShadow: string; } export interface ASControlStyles { fontFamily: string; fontWeight: CSSProperties['fontWeight']; textTransform: CSSProperties['textTransform']; radius: string; minWidth: string; borderWidth: string; outlineOffset: string; transition: string; interactionScale: number; focusRing: string; focusRingOffset: string; labelHoverShadow: string; iconColor: string; iconStrokeColor: string; sizes: Record; rest: ASControlStateStyle; hover: ASControlStateStyle; pressed: ASControlStateStyle; selected: ASControlStateStyle; disabled: ASControlStateStyle; hoverShadows: Record; pressedShadows: Record; } export interface ASIconButtonStyles extends ASControlStyles { iconSizes: Record; } export interface ASDropdownStyles { fontFamily: string; fontWeight: CSSProperties['fontWeight']; radius: string; borderWidth: string; focusRing: string; focusRingOffset: string; iconInset: string; caretColor: string; caretHoverColor: string; rest: ASControlStateStyle; hover: ASControlStateStyle; disabled: ASControlStateStyle; sizes: Record; } export interface ASTextFieldStyles { fontFamily: string; containerBackground: string; containerHoverShadow: string; containerFocusShadow: string; counterColor: string; counterFontSize: string; counterFontWeight: string; containerColor: string; containerBorderColor: string; containerBorderRadius: string; containerPadding: string; containerPaddingWithoutIcons: string; inputMarginInlineWithoutIcons: string; inputMarginInline: string; trailingIconMarginRight: string; inputPaddingInline: string; minWidth: string; inputBackground: string; inputColor: string; inputBorderColor: string; inputBorderRadius: string; multilineContainerBorderRadius: string; multilineContainerPadding: string; multilineSmallInputFocusShadow: string; inputPlaceholderColor: string; inputFocusBackground: string; inputFocusBorderColor: string; inputFocusColor: string; inputFocusShadow: string; iconColor: string; iconHoverColor: string; iconCircleColor: string; autofillBackground: string; autofillColor: string; autofillBorderColor: string; disabledBackground: string; disabledColor: string; invalidBorderColor: string; invalidContainerBackground: string; invalidColor: string; invalidFocusOutlineWidth: string; focusRing: string; focusRingOffset: string; transition: string; sizes: Record; } export interface ASLoaderStyles { backdropFilter: string; fontFamily: string; textColor: string; textShadow: string; growColor: string; growBorderColor: string; growBackground: string; growTrackBackground: string; growRadius: string; spinBorderColor: string; spinBeforeColor: string; spinAfterColor: string; dotsPrimaryBackground: string; dotsSecondaryBackground: string; sizes: Record; } export interface ASSwitchStyles { fontFamily: string; labelColor: string; disabledLabelColor: string; trackColor: string; checkedTrackColor: string; trackOutlineWidth: string; trackOutlineColor: string; thumbColor: string; checkedThumbColor: string; disabledTrackColor: string; disabledThumbColor: string; focusRing: string; gap: string; transition: string; sizes: Record; } export interface ASSnackbarStyles { motionDuration: string; motionEasing: string; fontFamily: string; radius: string; sizes: Record; maxWidth: string; gutter: string; shadow: string; zIndex: number; info: { background: string; color: string; }; success: { background: string; color: string; }; error: { background: string; color: string; }; } export interface ASModalStyles { background: string; outline: string; shadow: string; backdropBackground: string; radius: string; padding: string; backdropFilter: string; innerBorderShadow: string; innerBorderRadius: string; innerBorderMargin: string; backdropTransition: string; surfaceTransition: string; zIndex: string | number; } export interface ASChoiceBarStyles { fontFamily: string; background: string; shadow: string; itemColor: string; itemHoverColor: string; selectedColor: string; selectedBackground: string; radius: string; itemRadius: string; itemPadding: string; itemGap: string; pickerWidth: string; pickerMaxHeight: string; pickerPadding: string; pickerGap: string; pickerItemPadding: string; pickerItemBackground: string; pickerItemShadow: string; pickerSelectedShadow: string; scrollbarColor: string; focusRing: string; motionDuration: string; motionEasing: string; transition: string; sizes: Record; } export interface ASChartDonutSizeStyles { labelFontSize: string; labelFontWeight: CSSProperties['fontWeight']; labelShadow: string; subLabelFontSize: string; subLabelFontWeight: CSSProperties['fontWeight']; subLabelShadow: string; subLabelOffset: string; } export interface ASChartDonutStyles { diameter: string; fontFamily: string; subLabelFontFamily: string; labelColor: string; subLabelColor: string; primaryColor: string; secondaryColor: string; tertiaryColor: string; quaternaryColor: string; innerTrackColor: string; outerTrackColor: string; primaryTrackColor: string; secondaryTrackColor: string; tertiaryTrackColor: string; quaternaryTrackColor: string; quaternaryTrackOpacity: number; motionDuration: string; secondaryMotionDuration: string; motionEasing: string; motionDelay: string; sizes: Record; } export interface ASChartBarStyles { barKind: import('../aschart/bar/ASChartBar.types').ASBarKind; primaryColor: string; secondaryColor: string; radius: string; shadow: string; fontFamily: string; labelColor: string; labelFontSize: string; labelFontWeight: CSSProperties['fontWeight']; labelGap: string; length: string; crossSize: string; motionDuration: string; motionEasing: string; sizes: Record; } export interface ASIconStyles { color: string; fillColor: string; circleStrokeColor: string; circleFillColor: string; circleStrokeWidth: number; } export interface ASThemeComponents { icon: ASIconStyles; chartbar: ASChartBarStyles; chartdonut: ASChartDonutStyles; choicebar: ASChoiceBarStyles; modal: ASModalStyles; switch: ASSwitchStyles; snackbar: ASSnackbarStyles; button: ASControlStyles; iconbutton: ASIconButtonStyles; dropdown: ASDropdownStyles; textfield: ASTextFieldStyles; loader: ASLoaderStyles; } export interface ASThemeOverrides { tokens?: ASThemePartial; components?: ASThemePartial; } export interface ASThemeProps { theme?: ASTheme; themeOverrides?: ASThemeOverrides; } export type ASThemeProviderInput = { theme?: ASTheme; themeOverrides?: never; } | { theme?: never; themeOverrides?: ASThemeOverrides; }; export interface ASThemeInput extends ASThemeOverrides { preset?: ASThemePreset; } export interface ASResolvedTheme extends ASTheme { readonly themeVersion: 2; readonly preset: ASThemePreset; readonly tokens: ASThemeTokens; readonly components: ASThemeComponents; } //# sourceMappingURL=ASTheme.types.d.ts.map