export type ActivityType = 'info' | 'success' | 'warning' | 'error'; export interface ActivityAction { /** * Text to display for the action */ text: string; /** * Optional action type to determine styling */ type?: string; /** * Any additional data to pass with the action */ [key: string]: any; } export interface ActivityItem { /** * Title of the activity item */ title?: string; /** * Content/description of the activity */ content?: string; /** * Timestamp of the activity */ time?: Date | string; /** * User who performed the activity */ user?: string; /** * Action verb describing what happened */ action?: string; /** * URL to user avatar image */ avatar?: string; /** * Element Plus icon component name */ icon?: string; /** * Activity type to determine coloring */ type?: ActivityType; /** * Whether to highlight this activity item */ highlight?: boolean; /** * Extra text to display in the header */ extra?: string; /** * List of actions available for this activity */ actions?: ActivityAction[]; /** * Any additional data */ [key: string]: any; } export interface ActivityFeedProps { /** * List of activity items to display */ activities: ActivityItem[]; /** * Optional title for the activity feed */ title?: string; /** * Text to display when there are no activities * @default "No activity found" */ emptyText?: string; /** * Whether the feed is in loading state * @default false */ loading?: boolean; /** * Whether more items are being loaded * @default false */ loadingMore?: boolean; /** * Whether to show load more button * @default false */ showLoadMore?: boolean; /** * Text for the load more button * @default "Load more" */ loadMoreText?: string; /** * Text shown while loading more items * @default "Loading..." */ loadingText?: string; /** * Type of the load more button * @default "primary" */ loadMoreType?: 'primary' | 'success' | 'warning' | 'danger' | 'info'; /** * Size of avatar icons * @default 32 */ avatarSize?: number; }