import type { ReactNode, CSSProperties } from 'react'; /** * 滚动配置:为 true 时使用默认滚动;为对象时传入样式或 scroll 相关配置。 */ export declare type PisellShellFrameScrollConfig = boolean | { style?: CSSProperties; className?: string; }; /** * PisellShellFrame 配置:控制各区域的展示与行为。 * 不同展示类型(表格/看板/日历等)复用同一壳层,通过配置控制显隐。 */ export interface PisellShellFrameConfig { /** 是否展示顶部标题区(标题/副标题/辅助信息) */ showTitle?: boolean; /** 是否展示顶部工具区(Toolbar) */ showToolbar?: boolean; /** 是否展示顶部统计区(Statistic List) */ showStatistic?: boolean; /** 统计区是否支持折叠,仅 showStatistic 为 true 时有效 */ statisticCollapsible?: boolean; /** 中间内容区是否使用滚动承载包裹;为 true 时默认 overflow auto */ scroll?: PisellShellFrameScrollConfig; /** 是否展示底部批量操作条(按选中状态出现由调用方控制,此处仅控制是否渲染该槽位) */ showBatchActionBar?: boolean; /** 是否展示底部状态提示区(加载/错误/同步提示等) */ showStatusArea?: boolean; } /** * PisellShellFrame 组件 Props。 * 通过 config 控制各区域显隐,通过 slot props 传入各区域内容。 */ export interface PisellShellFrameProps { /** 类名 */ className?: string; /** 内联样式 */ style?: CSSProperties; /** 区域显隐与行为配置,未传则默认不展示可选区域 */ config?: PisellShellFrameConfig; /** 标题 */ title?: ReactNode; /** 副标题 */ subtitle?: ReactNode; /** 标题区右侧辅助信息 */ titleExtra?: ReactNode; /** 工具栏内容 */ toolbar?: ReactNode; /** * 工具栏正下方、统计/正文之上的"附加条"插槽,渲染于 header 内部。 * 适用于「统计摘要 / 当前所选筛选标签」等需要紧贴 toolbar 的轻量条目。 * 当为空时不占位、不渲染外壳。 */ belowToolbar?: ReactNode; /** 统计列表内容(如 PisellStatisticList 或自定义) */ statisticList?: ReactNode; /** 主内容(表格/看板/日历/楼层图等),当 config.scroll 为 true 时会被滚动容器包裹 */ children?: ReactNode; /** 批量操作条,通常按选中状态显隐由调用方控制 */ batchActionBar?: ReactNode; /** 状态提示(加载/错误/同步提示等) */ statusArea?: ReactNode; }