UNPKG

grommet

Version:

focus on the essential experience

2,345 lines (2,330 loc) 47.6 kB
import { FlattenInterpolation, FlattenSimpleInterpolation, ThemedStyledProps, } from 'styled-components'; import { ReactComponentElement } from 'react'; import { Icon } from 'grommet-icons'; import { BackgroundType, BorderType, BreakpointBorderSize, BreakpointEdgeSize, BreakpointSize, ColorType, DeepReadonly, DirectionType, EdgeSizeType, ElevationType, GapType, GraphColorsType, MarginType, OpacityType, RoundType, PadType, PropsOf, AlignContentType, SkeletonColorsType, AlignSelfType, AlignType, WidthType, HeightType, } from '../utils'; import { AnchorProps } from '../components/Anchor/index'; import { BoxProps } from '../components/Box/index'; import { Anchor } from '../components/Anchor'; import { Box } from '../components/Box'; import { Text, TextProps } from '../components/Text'; import { LayerPositionType, LayerProps } from '../components/Layer'; import { DropProps, DropType } from '../components/Drop'; import { AreasType, GridColumnsType, GridGapType, GridSizeType, } from '../components/Grid'; import { HeadingProps } from '../components/Heading'; import { ParagraphProps } from '../components/Paragraph'; import { SkeletonProps } from '../components/Skeleton/index'; export declare const base: DeepReadonly<ThemeType>; export declare const generate: ( baseSpacing?: number, scale?: number, ) => DeepReadonly<ThemeType>; /** * ExtendProps represents the props that will be provided to an ExtendType. */ type ExtendProps<TProps> = ThemedStyledProps<TProps, ThemeType>; /** * ExtendValue represents a valid `extend` value, which can be a CSS string or a * styled-components interpolation. In the theme an ExtendValue can be provided * directly to `extend` or it can be computed as the result of an ExtendFn. */ type ExtendValue<TProps> = | string | FlattenSimpleInterpolation | FlattenInterpolation<ExtendProps<TProps>>; /** * ExtendFn represents a function passed to `extend`. These functions receive * props and produce an ExtendValue. */ type ExtendFn<TProps> = (props: ExtendProps<TProps>) => ExtendValue<TProps>; /** * ExtendType represents the type for `extend` values in the theme. * * Acceptable values for `extend` are one of: * * * A string containing css * * An array of styled-components interpolations (usually returned by the styled-components `css` helper function) * * A function taking props and returning one of the above values */ type ExtendType<TProps = Record<string, any>> = | ExtendValue<TProps> | ExtendFn<TProps>; declare const colors: { active?: ColorType; black?: ColorType; border?: ColorType; brand?: ColorType; control?: ColorType; focus?: ColorType; placeholder?: ColorType; selected?: ColorType; text?: ColorType; icon?: ColorType; white?: ColorType; }; type Colors = typeof colors & { 'accent-1'?: ColorType; 'accent-2'?: ColorType; 'accent-3'?: ColorType; 'accent-4'?: ColorType; 'background-back'?: ColorType; 'background-contrast'?: ColorType; 'background-front'?: ColorType; 'neutral-1'?: ColorType; 'neutral-2'?: ColorType; 'neutral-3'?: ColorType; 'neutral-4'?: ColorType; 'dark-1'?: ColorType; 'dark-2'?: ColorType; 'dark-3'?: ColorType; 'dark-4'?: ColorType; 'dark-5'?: ColorType; 'dark-6'?: ColorType; 'light-1'?: ColorType; 'light-2'?: ColorType; 'light-3'?: ColorType; 'light-4'?: ColorType; 'light-5'?: ColorType; 'light-6'?: ColorType; 'status-critical'?: ColorType; 'status-error'?: ColorType; 'status-warning'?: ColorType; 'status-ok'?: ColorType; 'status-unknown'?: ColorType; 'status-disabled'?: ColorType; 'graph-0'?: ColorType; 'graph-1'?: ColorType; 'graph-2'?: ColorType; 'graph-3'?: ColorType; 'graph-4'?: ColorType; 'graph-5'?: ColorType; [x: string]: ColorType; }; interface ButtonKindType { background?: BackgroundType; border?: | { color?: ColorType; width?: string; radius?: string; } | boolean; color?: ColorType; direction?: DirectionType; elevation?: ElevationType; font?: { size?: string; weight?: number | string; }; icon?: React.ReactNode | Icon; padding?: { vertical?: string; horizontal?: string; }; reverse?: boolean; extend?: ExtendType; } interface ButtonType { intelligentPad?: boolean; badge?: { align?: 'container'; container?: { background?: BackgroundType; pad?: PadType; extend?: ExtendType; }; size?: { medium?: string; }; text?: { size?: { medium?: string; }; }; }; busy?: { gap?: GapType; icons?: { success?: React.ReactNode | Icon; }; }; gap?: GapType; background?: BackgroundType; border?: { color?: ColorType; width?: string; radius?: string; }; color?: ColorType; elevation?: ElevationType; extend?: ExtendType; minWidth?: string; maxWidth?: string; padding?: { vertical?: string; horizontal?: string; }; default?: ButtonKindType; primary?: ButtonKindType; secondary?: ButtonKindType; option?: ButtonKindType; active?: | (ButtonKindType & { default?: ButtonKindType; primary?: ButtonKindType; secondary?: ButtonKindType; }) | { [key: string]: ButtonKindType }; disabled?: | (ButtonKindType & { default?: ButtonKindType; primary?: ButtonKindType; secondary?: ButtonKindType; }) | ({ [key: string]: ButtonKindType } & { opacity?: OpacityType }); hover?: | (ButtonKindType & { default?: ButtonKindType; primary?: ButtonKindType; secondary?: ButtonKindType; }) | { [key: string]: ButtonKindType }; size?: { small?: { border?: { radius?: string; }; pad?: { vertical?: string; horizontal?: string; }; iconOnly?: { pad?: string | { horizontal?: string; vertical?: string }; }; }; medium?: { border?: { radius?: string; }; pad?: { vertical?: string; horizontal?: string; }; iconOnly?: { pad?: string | { horizontal?: string; vertical?: string }; }; }; large?: { border?: { radius?: string; }; pad?: { vertical?: string; horizontal?: string; }; iconOnly?: { pad?: string | { horizontal?: string; vertical?: string }; }; }; }; skeleton?: SkeletonProps; style?: Partial<CSSStyleDeclaration>; transition?: { timing?: string; duration?: number; properties?: string[]; }; } interface FormFieldLabelType extends TextProps { requiredIndicator?: boolean | JSX.Element | string; } type DigitalTexts = | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge' | string; type ContainerExtend = { container?: { extend?: ExtendType; }; }; export interface ThemeType { global?: { active?: { background?: | ColorType | { color?: ColorType; opacity?: OpacityType; }; color?: ColorType; }; animation?: { duration?: string; jiggle?: { duration?: string; }; }; backgrounds?: { [x: string]: BackgroundType | { dark?: string; light?: string }; }; borderSize?: { xsmall?: string; small?: string; medium?: string; large?: string; xlarge?: string; }; breakpoints?: { small?: { value?: number; borderSize?: BreakpointBorderSize; edgeSize?: BreakpointEdgeSize; radius?: BreakpointEdgeSize; size?: BreakpointSize; }; medium?: { value?: number; borderSize?: BreakpointBorderSize; edgeSize?: BreakpointEdgeSize; radius?: BreakpointEdgeSize; size?: BreakpointSize; }; large?: { value?: number; borderSize?: BreakpointBorderSize; edgeSize?: BreakpointEdgeSize; radius?: BreakpointEdgeSize; size?: BreakpointSize; }; [x: string]: | { value?: number; borderSize?: BreakpointBorderSize; edgeSize?: BreakpointEdgeSize; radius?: BreakpointEdgeSize; size?: BreakpointSize; } | undefined; }; deprecated?: { backgrounds?: { name: string; message?: string }[]; colors?: { name: string; message?: string }[]; button?: { kind?: { name: string; message?: string }[]; }; }; deviceBreakpoints?: { phone?: string; tablet?: string; computer?: string; }; colors?: Colors; control?: { border?: { width?: string; radius?: string; color?: ColorType; }; disabled?: { opacity: OpacityType; }; }; debounceDelay?: number; drop?: { background?: BackgroundType; border?: { width?: string; radius?: string; }; intelligentMargin?: boolean; margin?: MarginType; shadowSize?: string; zIndex?: number | string; }; edgeSize?: { none?: string; hair?: string; xxsmall?: string; xsmall?: string; small?: string; medium?: string; large?: string; xlarge?: string; responsiveBreakpoint?: string; }; elevation?: { light?: { none?: string; xsmall?: string; small?: string; medium?: string; large?: string; xlarge?: string; [x: string]: string; }; dark?: { none?: string; xsmall?: string; small?: string; medium?: string; large?: string; xlarge?: string; [x: string]: string; }; }; focus?: { border?: { color?: ColorType; }; outline?: { color?: ColorType; size?: string; offset?: string; }; shadow?: | string | { color?: ColorType; size?: string; blur?: string; }; twoColor?: boolean; inset?: { border?: { color?: ColorType; }; outline?: { color?: ColorType; size?: string; offset?: string; }; shadow?: | string | { color?: ColorType; size?: string; blur?: string; }; twoColor?: boolean; }; }; font?: { face?: string; family?: string; height?: string; maxWidth?: string; size?: string; weight?: number | string; variant?: string; }; graph?: { // remove in v3. Should have been removed in // https://github.com/grommet/grommet/pull/3608/ colors?: GraphColorsType; }; hover?: { background?: BackgroundType; color?: ColorType; }; input?: { extend?: ExtendType; padding?: | string | { top?: string; bottom?: string; left?: string; right?: string; horizontal?: string; vertical?: string; }; font?: { height?: string; size?: string; weight?: number | string; }; readOnly?: { background?: BackgroundType; border?: { color?: ColorType; }; }; weight?: number | string; }; opacity?: { strong?: number; medium?: number; weak?: number; }; radius?: BreakpointEdgeSize; selected?: { background?: BackgroundType; color?: ColorType; }; spacing?: string; size?: { xxsmall?: string; xsmall?: string; small?: string; medium?: string; large?: string; xlarge?: string; xxlarge?: string; full?: string; [x: string]: string | undefined; }; }; accordion?: { icon?: { container?: { pad?: { horizontal?: string; }; }; }; label?: { container?: { pad?: { horizontal?: string; }; }; }; panel?: { border?: BorderType; }; border?: BorderType; heading?: { level?: string; margin?: MarginType; }; hover?: { background?: BackgroundType; color?: ColorType; // deprecated heading?: { color?: ColorType; }; }; icons?: { collapse?: any; expand?: any; color?: ColorType; }; }; anchor?: { color?: ColorType; extend?: ExtendType<PropsOf<typeof Anchor>>; fontWeight?: number; gap?: GapType; hover?: { extend?: ExtendType<PropsOf<typeof Anchor>>; textDecoration?: string; }; icon?: { color?: ColorType; }; iconOnly?: { pad?: PadType; }; textDecoration?: string; size?: { medium?: { color?: ColorType; fontWeight?: number; textDecoration?: string; gap?: GapType; }; [x: string]: | { color?: ColorType; fontWeight?: number; textDecoration?: string; gap?: GapType; } | undefined; }; }; avatar?: { size?: { xsmall?: string; small?: string; medium?: string; large?: string; xlarge?: string; [x: string]: string | undefined; }; text?: { size?: { xsmall?: string; small?: string; medium?: string; large?: string; xlarge?: string; [x: string]: string | undefined; }; fontWeight?: number; extend?: ExtendType; }; extend?: ExtendType; }; box?: { border?: { offset?: string; }; extend?: ExtendType; responsiveBreakpoint?: string; }; button?: ButtonType; calendar?: { day?: { adjacent?: { color?: ColorType; }; hover?: { background?: BackgroundType; color?: ColorType; }; selected?: { background?: BackgroundType; color?: ColorType; font?: { weight?: string | number; }; hover?: { background?: BackgroundType; color?: ColorType; }; }; inRange?: { color?: ColorType; font?: { weight?: string | number; }; hover?: { background?: BackgroundType; color?: ColorType; }; }; extend?: ExtendType; }; range?: { background?: BackgroundType; }; extend?: ExtendType; small?: { day?: { round?: RoundType; }; range?: { round?: RoundType; start?: { round?: RoundType; }; end?: { round?: RoundType; }; }; title?: TextProps & { container?: { pad?: { horizontal?: string; }; }; }; fontSize?: string; lineHeight?: number; daySize?: string; slideDuration?: string; }; medium?: { day?: { round?: RoundType; }; range?: { round?: RoundType; start?: { round?: RoundType; }; end?: { round?: RoundType; }; }; title?: TextProps & { container?: { pad?: { horizontal?: string; }; }; }; fontSize?: string; lineHeight?: number; daySize?: string; slideDuration?: string; }; large?: { day?: { round?: RoundType; }; range?: { round?: RoundType; start?: { round?: RoundType; }; end?: { round?: RoundType; }; }; title?: TextProps & { container?: { pad?: { horizontal?: string; }; }; }; fontSize?: string; lineHeight?: number; daySize?: string; slideDuration?: string; }; heading?: { level?: string; }; icons?: { previous?: any; next?: any; small?: { previous?: any; next?: any; }; }; }; card?: { container?: BoxProps | { extend?: ExtendType }; hover?: { container?: { elevation?: ElevationType; }; }; header?: BoxProps; body?: BoxProps; footer?: BoxProps; }; cards?: { container?: BoxProps; grid?: { columns?: GridColumnsType; gap?: GridGapType; }; }; carousel?: { animation?: { duration?: number; }; disabled?: { icons?: { color?: ColorType; }; }; icons?: { color?: ColorType; current?: any; next?: any; previous?: any; }; }; chart?: { color?: ColorType; extend?: ExtendType; height?: string; thickness?: PadType; width?: string; }; checkBox?: { border?: { color?: ColorType; width?: string; }; label?: { align?: AlignContentType; }; check?: { extend?: ExtendType; radius?: string; thickness?: string; }; color?: ColorType; extend?: ExtendType; gap?: GapType; hover?: { border?: { color?: ColorType; }; background?: { color?: ColorType; }; extend?: ExtendType; }; icon?: { size?: string; extend?: ExtendType; }; icons?: { checked?: React.ReactNode | Icon; indeterminate?: any; }; pad?: PadType; size?: string; toggle?: { background?: BackgroundType; color?: ColorType; extend?: ExtendType; radius?: string; size?: string; knob?: { extend?: ExtendType; }; }; }; checkBoxGroup?: { container?: BoxProps; }; clock?: { analog?: { extend?: ExtendType; hour?: { color?: ColorType; width?: string; size?: string; shape?: string; }; minute?: { color?: ColorType; width?: string; size?: string; shape?: string; }; second?: { color?: ColorType; width?: string; size?: string; shape?: string; }; size?: { small?: string; medium?: string; large?: string; xlarge?: string; huge?: string; }; }; digital?: { text?: { [key in DigitalTexts]: { size?: string; height?: number; }; }; }; }; collapsible?: { minSpeed?: number; baseline?: number; }; data?: { button?: { kind?: string; }; drop?: { pad?: PadType; }; }; dataChart?: { colors?: string[]; gap?: GapType; granularity?: { y?: { [key: string]: { fine: number; medium: number; }; }; }; detail?: { gap?: GridGapType; pad?: PadType; }; halfPad?: { [key: string]: string; }; legend?: { margin?: MarginType; gap?: GapType; item?: { gap?: GapType; pad?: PadType; }; }; orderedSizes?: string[]; size?: { height?: string; }; thickness?: { veryDense?: string; dense?: string; heavy?: string; moderate?: string; light?: string; sparse?: string; }; thicknessPad?: { xlarge?: PadType; large?: PadType; medium?: PadType; small?: PadType; xsmall?: PadType; }; }; dataFilter?: { rangeSelector?: { size?: string; round?: string; }; selectMultiple?: { dropHeight?: string; }; }; dataFilters?: { icons?: { close?: React.ReactNode | Icon; filter?: React.ReactNode | Icon; }; footer?: { actions?: { margin?: MarginType; gap?: GapType; }; }; clearControl?: { margin?: MarginType; }; pad?: PadType; width?: WidthType; }; dataSearch?: { icons?: { search?: React.ReactNode | Icon; }; }; dataSort?: { icons?: { control?: React.ReactNode | Icon; }; }; dataSummary?: { margin?: MarginType; separator?: { margin?: MarginType; }; }; dateInput?: { button?: { margin?: string; }; container?: { round?: RoundType; }; icon?: { calendar?: React.ReactNode | Icon; size?: string; }; }; dataTable?: { body?: { extend?: ExtendType; row?: { extend?: ExtendType; }; selected?: { background?: BackgroundType; }; }; container?: BoxProps; expand?: { size?: string; }; header?: { background?: BackgroundType; border?: BorderType; color?: ColorType; extend?: ExtendType; font?: { weight?: string; size?: string; }; gap?: GapType; hover?: { background?: BackgroundType; }; pad?: PadType; units?: TextProps; }; groupHeader?: { border?: { side?: string; size?: string; }; fill?: string; pad?: PadType; background?: BackgroundType; }; groupEnd?: { border?: { side?: string; size?: string; }; }; icons?: { ascending?: any; contract?: any; descending?: any; expand?: any; resizeDecrease?: React.ReactNode | Icon; resizeIncrease?: React.ReactNode | Icon; search?: React.ReactNode | Icon; sortable?: any; }; pinned?: { body?: { background?: BackgroundType; extend?: ExtendType; }; header?: { background?: BackgroundType; extend?: ExtendType; }; footer?: { background?: BackgroundType; extend?: ExtendType; }; }; resize?: { border?: { side?: string; color?: ColorType; }; hover?: { border?: { color?: ColorType; side: string; size: string; }; }; padding?: { vertical?: string; }; }; primary?: { weight?: string; }; search?: { pad?: PadType; text?: { pad?: PadType; }; }; sort?: { gap?: GapType; }; }; dataTableColumns?: { icons?: { control?: React.ReactNode | Icon; pinned?: React.ReactNode | Icon; search?: React.ReactNode | Icon; }; tabs?: { pad?: PadType; }; selectColumns?: { pad?: PadType; gap?: GapType; }; orderColumns?: { pad?: PadType; }; }; diagram?: { extend?: ExtendType; line?: { color?: ColorType; }; }; distribution?: { gap?: GapType; }; drop?: { extend?: ExtendType; maxHeight?: string; }; fileInput?: { anchor?: { margin?: MarginType; }; background?: BackgroundType; border?: BorderType; dragOver?: { background?: BackgroundType; border?: BorderType; extend?: ExtendType; pad?: PadType; }; extend?: ExtendType; hover?: { background?: BackgroundType; border?: BorderType; extend?: ExtendType; pad?: PadType; }; icons?: { error?: React.ReactNode | Icon; remove?: any; }; label?: TextProps & { extend?: ExtendType }; margin?: MarginType; message?: TextProps & { extend?: ExtendType }; pad?: PadType; round?: RoundType; }; footer?: { gap?: GapType; }; formField?: { border?: BorderType & { error?: { color?: ColorType; }; }; content?: { margin?: MarginType; pad?: PadType; }; disabled?: { background?: BackgroundType; border?: { color?: ColorType; }; label?: { color?: ColorType; }; help?: { color?: ColorType; }; info?: { color?: ColorType; }; }; focus?: { background?: BackgroundType; border?: { color?: ColorType; }; containerFocus?: boolean; }; error?: { background?: BackgroundType; border?: BorderType & { error?: { color?: ColorType; }; }; color?: ColorType; margin?: MarginType; container?: BoxProps; icon?: any; }; help?: { color?: ColorType; margin?: MarginType; }; info?: { color?: ColorType; margin?: MarginType; container?: BoxProps; icon?: any; }; label?: FormFieldLabelType; margin?: MarginType; round?: RoundType; extend?: ExtendType; survey?: { label?: { margin?: MarginType; size?: string; color?: ColorType; }; }; checkBox?: ContainerExtend & { pad?: PadType }; checkBoxGroup?: ContainerExtend; textArea?: ContainerExtend; textInput?: ContainerExtend; select?: ContainerExtend; maskedInput?: ContainerExtend; selectMultiple?: ContainerExtend; dateInput?: ContainerExtend; fileInput?: ContainerExtend; radioButton?: ContainerExtend; radioButtonGroup?: ContainerExtend; rangeSelector?: ContainerExtend; starRating?: ContainerExtend; thumbsRating?: ContainerExtend; }; grommet?: { extend?: ExtendType; }; header?: { sticky?: { zIndex?: string; }; gap?: GapType; }; heading?: { color?: ColorType; extend?: ExtendType; font?: {}; level?: { 1?: { font?: {}; small?: { size?: string; height?: string; maxWidth?: string; }; medium?: { size?: string; height?: string; maxWidth?: string; }; large?: { size?: string; height?: string; maxWidth?: string; }; xlarge?: { size?: string; height?: string; maxWidth?: string; }; }; 2?: { font?: {}; small?: { size?: string; height?: string; maxWidth?: string; }; medium?: { size?: string; height?: string; maxWidth?: string; }; large?: { size?: string; height?: string; maxWidth?: string; }; xlarge?: { size?: string; height?: string; maxWidth?: string; }; }; 3?: { font?: {}; small?: { size?: string; height?: string; maxWidth?: string; }; medium?: { size?: string; height?: string; maxWidth?: string; }; large?: { size?: string; height?: string; maxWidth?: string; }; xlarge?: { size?: string; height?: string; maxWidth?: string; }; }; 4?: { font?: {}; small?: { size?: string; height?: string; maxWidth?: string; }; medium?: { size?: string; height?: string; maxWidth?: string; }; large?: { size?: string; height?: string; maxWidth?: string; }; xlarge?: { size?: string; height?: string; maxWidth?: string; }; }; 5?: { font?: {}; small?: { size?: string; height?: string; maxWidth?: string; }; medium?: { size?: string; height?: string; maxWidth?: string; }; large?: { size?: string; height?: string; maxWidth?: string; }; xlarge?: { size?: string; height?: string; maxWidth?: string; }; }; 6?: { font?: {}; small?: { size?: string; height?: string; maxWidth?: string; }; medium?: { size?: string; height?: string; maxWidth?: string; }; large?: { size?: string; height?: string; maxWidth?: string; }; xlarge?: { size?: string; height?: string; maxWidth?: string; }; }; }; responsiveBreakpoint?: string; skeleton?: SkeletonProps; weight?: number; }; icon?: { extend?: ExtendType; disableScaleDown?: boolean; matchSize?: boolean; size?: { small?: string; medium?: string; large?: string; xlarge?: string; [x: string]: string | undefined; }; }; layer?: { background?: BackgroundType; border?: { radius?: string; intelligentRounding?: boolean; }; container?: { height?: HeightType; elevation?: ElevationType; extend?: ExtendType; zIndex?: string; }; extend?: ExtendType; overlay?: { background?: BackgroundType; backdropFilter?: string; }; responsiveBreakpoint?: string; zIndex?: string; }; list?: { container?: BoxProps; item?: { background?: BackgroundType; border?: BorderType; disabled?: { color?: ColorType; cursor?: string; }; gap?: GapType; pinned?: { background?: BackgroundType; icon?: { size?: string; pad?: PadType; }; }; pad?: PadType; extend?: ExtendType; }; primaryKey?: TextProps; icons?: { down?: React.ReactNode | Icon; up?: React.ReactNode | Icon; }; extend?: ExtendType; }; maskedInput?: { container?: { extend?: ExtendType; }; extend?: ExtendType; disabled?: { opacity?: OpacityType; }; }; menu?: { background?: BackgroundType; item?: | ButtonType & { align?: AlignType; }; drop?: DropType; extend?: ExtendType; container?: BoxProps; group?: { container?: BoxProps; separator?: { color?: ColorType; size?: string; pad?: PadType; }; }; icons?: { down?: any; up?: any; color?: ColorType; }; disabled?: { icons?: { color?: ColorType; }; }; }; meter?: { background?: BackgroundType; color?: ColorType; colors?: GraphColorsType; extend?: ExtendType; gap?: GapType; }; nav?: { gap?: GapType; }; notification?: { actions?: AnchorProps; container?: BoxProps; direction?: 'column' | 'row'; gap?: GapType; global?: { direction?: 'column' | 'row'; container?: BoxProps; }; toast?: { container?: BoxProps; direction?: 'column' | 'row'; layer?: LayerProps; time?: number; }; iconContainer?: BoxProps; textContainer?: BoxProps; title?: TextProps; message?: TextProps & { fill?: boolean; text?: { margin?: MarginType } }; close?: { icon?: React.ReactNode | Icon; color?: ColorType; }; critical?: { icon?: React.ReactNode | Icon; background?: BackgroundType; color?: ColorType; message?: { color?: ColorType; }; title?: { color?: ColorType; }; global?: { background?: BackgroundType; message?: { color?: ColorType; }; title?: { color?: ColorType; }; }; toast?: { background?: BackgroundType; message?: { color?: ColorType; }; title?: { color?: ColorType; }; }; }; warning?: { icon?: React.ReactNode | Icon; background?: BackgroundType; color?: ColorType; message?: { color?: ColorType; }; title?: { color?: ColorType; }; global?: { background?: BackgroundType; message?: { color?: ColorType; }; title?: { color?: ColorType; }; }; toast?: { background?: BackgroundType; message?: { color?: ColorType; }; title?: { color?: ColorType; }; }; }; normal?: { icon?: React.ReactNode | Icon; background?: BackgroundType; color?: ColorType; message?: { color?: ColorType; }; title?: { color?: ColorType; }; global?: { background?: BackgroundType; message?: { color?: ColorType; }; title?: { color?: ColorType; }; }; toast?: { background?: BackgroundType; message?: { color?: ColorType; }; title?: { color?: ColorType; }; }; }; info?: { icon?: React.ReactNode | Icon; background?: BackgroundType; color?: ColorType; message?: { color?: ColorType; }; title?: { color?: ColorType; }; global?: { background?: BackgroundType; message?: { color?: ColorType; }; title?: { color?: ColorType; }; }; toast?: { background?: BackgroundType; message?: { color?: ColorType; }; title?: { color?: ColorType; }; }; }; unknown?: { icon?: React.ReactNode | Icon; background?: BackgroundType; color?: ColorType; message?: { color?: ColorType; }; title?: { color?: ColorType; }; global?: { background?: BackgroundType; message?: { color?: ColorType; }; title?: { color?: ColorType; }; }; toast?: { background?: BackgroundType; message?: { color?: ColorType; }; title?: { color?: ColorType; }; }; }; undefined?: { icon?: React.ReactNode | Icon; background?: BackgroundType; color?: ColorType; message?: { color?: ColorType; }; title?: { color?: ColorType; }; global?: { background?: BackgroundType; message?: { color?: ColorType; }; title?: { color?: ColorType; }; }; toast?: { background?: BackgroundType; message?: { color?: ColorType; }; title?: { color?: ColorType; }; }; }; }; page?: { [key: string]: { alignSelf?: AlignContentType; width?: | string | { min: string; max: string; }; small?: BoxProps; medium?: BoxProps; large?: BoxProps; }; }; pageHeader?: { actions?: BoxProps; pad?: PadType; parent?: BoxProps; responsive?: { actions?: BoxProps; areas?: AreasType; breakpoints?: string[]; columns?: GridColumnsType; rows?: GridSizeType; gap?: GridGapType; }; subtitle?: ParagraphProps; title?: HeadingProps; size?: { small?: { pad?: PadType; subtitle?: ParagraphProps; title?: ParagraphProps; }; medium?: { pad?: PadType; subtitle?: ParagraphProps; title?: ParagraphProps; }; large?: { pad?: PadType; subtitle?: ParagraphProps; title?: ParagraphProps; }; }; small?: { areas?: AreasType; columns?: GridColumnsType; rows?: GridSizeType; gap?: GridGapType; }; medium?: { areas?: AreasType; columns?: GridColumnsType; rows?: GridSizeType; gap?: GridGapType; }; large?: { areas?: AreasType; columns?: GridColumnsType; rows?: GridSizeType; gap?: GridGapType; }; }; pagination?: { button?: ButtonType | string; container?: BoxProps | { extend?: ExtendType }; controls?: { align?: AlignContentType; direction?: DirectionType; gap?: GapType; pad?: PadType; margin?: MarginType; }; icons?: { color?: ColorType; next?: React.ReactNode | Icon; previous?: React.ReactNode | Icon; }; step?: { container?: { gap?: GapType; }; }; }; paragraph?: { extend?: ExtendType; small?: { size?: string; height?: string; maxWidth?: string; }; medium?: { size?: string; height?: string; maxWidth?: string; }; large?: { size?: string; height?: string; maxWidth?: string; }; xlarge?: { size?: string; height?: string; maxWidth?: string; }; xxlarge?: { size?: string; height?: string; maxWidth?: string; }; skeleton?: { gap?: GapType; }; }; radioButton?: { extend?: ExtendType; container?: { extend?: ExtendType; }; background?: { color?: ColorType; }; border?: { color?: ColorType; width?: string; }; check?: { color?: ColorType; extend?: ExtendType; radius?: string; background?: { color?: ColorType; }; }; color?: ColorType; hover?: { border?: { color?: ColorType; }; background?: { color?: ColorType; }; }; icon?: { extend?: ExtendType; size?: string; }; icons?: { circle?: React.ReactNode | Icon; }; gap?: string; size?: string; font?: { weight?: number | string; }; }; nameValueList?: { gap?: { column?: GapType; row?: GapType; }; pair?: { column?: { gap?: { column?: GapType; row?: GapType; }; }; }; name?: { width: string; }; value?: { width: string; }; }; nameValuePair?: { column?: { gap?: GapType; }; name?: TextProps; value?: TextProps; }; radioButtonGroup?: { container?: BoxProps; }; rangeInput?: { disabled?: { opacity?: OpacityType; track?: { color?: ColorType; }; thumb?: { color?: ColorType; }; }; track?: { height?: string; color?: any; extend?: ExtendType; opacity?: OpacityType; lower?: { color?: ColorType; opacity?: OpacityType; }; upper?: { color?: ColorType; opacity?: OpacityType; }; }; thumb?: { color?: ColorType; extend?: ExtendType; }; wheel?: boolean; extend?: ExtendType; }; rangeSelector?: { background?: { invert?: { color?: ColorType; }; }; edge?: { type?: string; size?: EdgeSizeType | string; }; label?: { margin?: MarginType; }; }; select?: { background?: BackgroundType; clear?: { container?: BoxProps & { hover?: BoxProps }; text?: TextProps; }; container?: { extend?: ExtendType; }; control?: { extend?: ExtendType; open?: string | object; }; extend?: ExtendType; emptySearchMessage?: { container?: BoxProps; text?: TextProps; }; icons?: { color?: ColorType; down?: React.ReactNode | Icon; up?: React.ReactNode | Icon; margin?: MarginType; search?: React.ReactNode | Icon; }; listbox?: { extend?: ExtendType; }; options?: { container?: PropsOf<typeof Box>; text?: PropsOf<typeof Text>; }; search?: { pad?: PadType; }; // https://github.com/DefinitelyTyped/DefinitelyTyped/issues/37506 searchInput?: ReactComponentElement<any>; step?: number; }; selectMultiple?: { help?: { container?: { pad: PadType; }; }; maxInline?: number; listbox?: { extend?: ExtendType; }; option?: { pad?: PadType; }; search?: { pad?: PadType; }; showMore?: { pad?: PadType; }; summary?: { pad?: PadType; showSelectedInline?: { pad: PadType; }; }; }; sidebar?: { gap?: GapType; pad?: PadType; }; skeleton?: BoxProps & { colors?: SkeletonColorsType; extend?: ExtendType }; skipLinks?: { position?: LayerPositionType; container?: BoxProps; label?: TextProps; }; spinner?: { container?: | BoxProps | { color?: ColorType } | { size?: 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | string }; icon?: React.ReactNode | Icon; responsive?: boolean; size?: { xsmall?: string; small?: string; medium?: string; large?: string; xlarge?: string; }; }; starRating?: { color?: ColorType; icons?: { selected?: React.ReactNode | Icon; unselected?: React.ReactNode | Icon; }; }; thumbsRating?: { dislike?: { color?: ColorType; }; icons?: { dislike?: React.ReactNode | Icon; dislikeSelected?: React.ReactNode | Icon; like?: React.ReactNode | Icon; likeSelected?: React.ReactNode | Icon; }; like?: { color?: ColorType; }; }; tab?: { active?: { background?: BackgroundType; color?: ColorType; }; background?: BackgroundType; border?: { side?: string; size?: string; color?: ColorType; active?: { color?: ColorType; }; disabled?: { color?: ColorType; }; hover?: { color?: ColorType; extend?: ExtendType; }; }; color?: ColorType; disabled?: { color?: ColorType; }; extend?: ExtendType; gap?: GapType; hover?: { background?: BackgroundType; color?: ColorType; extend?: ExtendType; }; margin?: MarginType; pad?: PadType; }; tabs?: { background?: BackgroundType; extend?: ExtendType; gap?: GapType; header?: { alignSelf?: AlignSelfType; background?: BackgroundType; border?: { side?: string; size?: string; style?: string; color?: ColorType; }; extend?: ExtendType; nextButton?: { icon?: React.ReactNode | Icon; pad?: PadType; }; previousButton?: { icon?: React.ReactNode | Icon; pad?: PadType; }; }; panel?: { extend?: ExtendType; }; step?: { small?: number; medium?: number; large?: number; }; }; table?: { caption?: { margin?: MarginType; }; header?: { background?: BackgroundType; extend?: ExtendType; align?: string; pad?: PadType; border?: string; verticalAlign?: string; fill?: string; }; body?: { align?: string; background?: BackgroundType; border?: string; extend?: ExtendType; pad?: PadType; }; footer?: { align?: string; background?: BackgroundType; extend?: ExtendType; pad?: PadType; border?: string; verticalAlign?: string; fill?: string; }; row?: { hover?: { background?: BackgroundType; extend?: ExtendType; }; }; }; tag?: { background?: BackgroundType; border?: BorderType; hover?: { background?: BackgroundType; border?: BorderType; }; round?: RoundType; name?: TextProps; pad?: PadType; remove?: ButtonType | { kind?: string }; separator?: string; size?: { xsmall?: { pad?: PadType; icon?: { size?: string; }; remove?: { size?: string; margin?: MarginType }; }; small?: { pad?: PadType; icon?: { size?: string; }; remove?: { size?: string; margin?: MarginType }; }; medium?: { pad?: PadType; icon?: { size?: string; }; remove?: { size?: string; margin?: MarginType }; }; large?: { pad?: PadType; icon?: { size?: string; }; remove?: { size?: string; margin?: MarginType }; }; xlarge?: { pad?: PadType; icon?: { size?: string; }; remove?: { size?: string; margin?: MarginType }; }; }; value?: TextProps; icons?: { remove?: React.ReactNode | Icon; }; }; text?: { extend?: ExtendType; xsmall?: { size?: string; height?: string; maxWidth?: string; }; small?: { size?: string; height?: string; maxWidth?: string; }; medium?: { size?: string; height?: string; maxWidth?: string; }; large?: { size?: string; height?: string; maxWidth?: string; }; xlarge?: { size?: string; height?: string; maxWidth?: string; }; xxlarge?: { size?: string; height?: string; maxWidth?: string; }; '2xl'?: { size?: string; height?: string; maxWidth?: string; }; '3xl'?: { size?: string; height?: string; maxWidth?: string; }; '4xl'?: { size?: string; height?: string; maxWidth?: string; }; '5xl'?: { size?: string; height?: string; maxWidth?: string; }; '6xl'?: { size?: string; height?: string; maxWidth?: string; }; skeleton?: BoxProps & { colors?: SkeletonColorsType }; }; textArea?: { extend?: ExtendType; disabled?: OpacityType; }; textInput?: { extend?: ExtendType; disabled?: OpacityType | { opacity: OpacityType }; container?: { extend?: ExtendType; }; icons?: { copy?: React.ReactNode | Icon; }; placeholder?: { extend?: ExtendType; }; suggestions?: { extend?: ExtendType; }; }; tip?: { content?: BoxProps; drop?: DropProps; }; toggleGroup?: { button?: { kind?: string; border?: { radius?: string; }; iconOnly?: { pad?: PadType; }; pad?: PadType; }; container?: BoxProps & { extend?: ExtendType }; divider?: | { color?: ColorType; } | boolean; }; toolbar?: { small: { gap?: GapType; }; gap?: GapType; }; video?: { captions?: { background?: BackgroundType; }; controls?: { background?: BackgroundType; }; icons?: { closedCaption?: any; color?: ColorType; configure?: any; fullScreen?: any; pause?: any; play?: any; reduceVolume?: any; volume?: any; }; scrubber?: { color?: ColorType; interval?: number; track?: { color?: ColorType; }; thickness?: string; }; time?: { container?: { pad?: PadType; }; }; }; worldMap?: { color?: ColorType; continent?: { active?: string; base?: string; }; hover?: { color?: ColorType; }; place?: { active?: string; base?: string; }; }; }