import type { CSSProperties, ComponentProps } from 'react'; export type PropertyItemType = 'text' | 'link' | 'tag' | 'percent' | 'progress' | 'status' | 'badge' | 'money' | 'image' | 'color' | 'digit' | 'digitRange' | 'second' | 'percent' | 'rate' | 'dateTime' | 'fromNow' | 'second'; export interface PropertyContent { label?: string; content?: string; type?: PropertyItemType; props?: ComponentProps; children?: ComponentSchema[]; span: number; tooltip?: TooltipType; } export interface ComponentSchema { component: string; props?: ComponentProps; } export interface PropertyItemProps { label?: string; labelStyle?: CSSProperties; tooltip?: TooltipType; content?: string; type?: PropertyItemType; props?: ComponentProps; contentStyle?: CSSProperties; children?: ComponentSchema[]; titleWidth?: number; titleAlign?: 'left' | 'center' | 'right'; separator?: string; visible?: boolean; span?: number; } export interface TooltipType { title: string; placement?: 'top' | 'left' | 'right' | 'bottom' | 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight' | 'leftTop' | 'leftBottom' | 'rightTop' | 'rightBottom'; icon?: string; } export interface RenderValueType { value: string | number | boolean | undefined; type?: PropertyItemType; props?: ComponentProps; children?: ComponentSchema[]; }