import type { SpaceProps, AlertProps } from 'antd'; import type { SizeType } from 'antd/es/config-provider/SizeContext'; import type { HTMLAttributes, ReactNode, CSSProperties } from 'react'; export interface CardPrivateProps { /** * 卡片标题 */ title?: ReactNode; /** * 卡片右上角的操作区域 */ extra?: ReactNode; /** * 自定义标题区域样式 */ headerStyle?: CSSProperties; /** * 内容区域自定义样式 */ bodyStyle?: CSSProperties; /** * 当卡片内容还在加载中时,可以用 loading 展示一个占位 * @default false */ loading?: boolean; /** * body 是否有内边距 * @default true */ bodyPadding?: boolean | number | { left?: boolean | number; right?: boolean | number; top?: boolean | number; bottom?: boolean | number; }; /** * body 区域没有任何包裹 * @default false */ bodyNoWrapper?: boolean; /** * 样子 * @default 'default' */ type?: 'default' | 'subtype'; /** * 简洁模式,左右边距没有 * @default false */ concise?: boolean; /** * 灰色背景色的卡片 * @default false */ gray?: boolean; /** * 作为 Form.List 的包裹的时候,添加下边距,保持相对一致的风格 * @default false */ formList?: boolean; /** * 默认边距尺寸,实际只有`small`、`middle` */ size?: SizeType; } export interface CardProps extends Omit, 'title'>, CardPrivateProps { } export interface CardBodyProps extends HTMLAttributes { /** * 是否有内边距 * @default true */ padding?: CardProps['bodyPadding']; size?: CardProps['size']; } export interface CardGroupProps { /** * 间距大小 * @default 16 */ size?: SpaceProps['size']; } export interface CardTableProps extends CardProps { /** * 工具栏 */ toolBar?: ReactNode; /** * 警告、提示内容 */ alertExtra?: ReactNode; /** * 警告框样式 * @default 'info' */ alertType?: AlertProps['type']; } export interface CardCollapseProps extends Omit { /** * 是否展开 */ collapse?: boolean; /** * 默认状态是否展开 */ defaultCollapse?: boolean; /** * 状态改变的回调 */ onCollapse?: (collapse: boolean) => void; } export interface CardSearchProps extends CardProps { }