baseui
Version:
A React Component library implementing the Base design language
80 lines (79 loc) • 2.44 kB
TypeScript
import type * as React from 'react';
import type { Override } from '../helpers/overrides';
import type { IconProps } from '../icon';
import type { ARTWORK_SIZES, SHAPE } from './constants';
export type ArtworkSizes = typeof ARTWORK_SIZES.SMALL | typeof ARTWORK_SIZES.MEDIUM | typeof ARTWORK_SIZES.LARGE;
export type Shape = typeof SHAPE.DEFAULT | typeof SHAPE.ROUND;
export type StyledRootProps = {
$shape: Shape;
$isTapTarget?: boolean;
};
export type StyledArtworkContainerProps = {
$artworkSize: ArtworkSizes | number;
$sublist?: boolean;
};
export type StyledContentProps = {
$mLeft: boolean;
$sublist: boolean;
};
export type ListOverrides = {
Root?: Override;
ArtworkContainer?: Override;
Content?: Override;
EndEnhancerContainer?: Override;
};
export type ListProps = {
artwork?: React.ComponentType<{
size: IconProps['size'];
} & IconProps>;
artworkSize?: ArtworkSizes | number;
shape?: Shape;
children: React.ReactNode;
endEnhancer?: React.ComponentType<{}>;
'aria-label'?: string;
'aria-selected'?: boolean;
id?: String;
onClick?: (a: React.SyntheticEvent<HTMLButtonElement>) => unknown;
overrides?: ListOverrides;
role?: string;
sublist?: boolean;
};
export type LabelOverrides = {
LabelRoot?: Override;
LabelContent?: Override;
LabelDescription?: Override;
LabelSublistContent?: Override;
};
export type LabelProps = {
children: React.ReactNode;
description?: React.ReactNode;
sublist?: boolean;
overrides?: LabelOverrides;
};
export type HeadingOverrides = {
Root?: Override;
Content?: Override;
HeadingContainer?: Override;
SubHeadingContainer?: Override;
EndEnhancerContainer?: Override;
EndEnhancerDescriptionContainer?: Override;
};
export type HeadingProps = {
heading: React.ReactNode | React.ComponentType<{}>;
subHeading?: React.ReactNode | React.ComponentType<{}>;
endEnhancer?: React.ReactNode | React.ComponentType<{}>;
endEnhancerDescription?: React.ReactNode | React.ComponentType<{}>;
overrides?: HeadingOverrides;
maxLines?: 1 | 2;
};
export type StyledHeadingHeadingProps = {
$maxLines: number;
};
export type MenuAdapterProps = {
item?: any;
onMouseEnter?: (a: MouseEvent) => unknown;
onClick?: (a: MouseEvent) => unknown;
$size?: string;
$isHighlighted?: boolean;
$disabled?: boolean;
} & ListProps;