claritykit-svelte
Version:
A comprehensive Svelte component library focused on accessibility, ADHD-optimized design, developer experience, and full SSR compatibility
89 lines • 2.78 kB
TypeScript
/**
* TypeScript interfaces for the SuggestionCard component
*
* These types define the structure for project suggestions and their related data,
* standardized for use within ClarityKit's agent components ecosystem.
*/
export interface TaskItem {
id: string;
name: string;
description?: string;
status: 'pending' | 'in_progress' | 'completed' | 'blocked';
estimatedHours?: number;
created_at: string;
updated_at: string;
}
export interface TaskGrouping {
name: string;
tasks: TaskItem[];
reasoning: string;
estimatedEffort: number;
}
export interface EstimatedDuration {
value: number;
unit: 'hours' | 'days' | 'weeks' | 'months';
}
export type Priority = 'low' | 'medium' | 'high' | 'critical';
export type Complexity = 'simple' | 'moderate' | 'complex';
export type SuggestionStatus = 'pending' | 'approved' | 'modified' | 'rejected' | 'deferred';
export interface ProjectSuggestion {
id: string;
projectName: string;
description: string;
reasoning: string;
architectReasoning?: string;
priority: Priority;
complexity: Complexity;
status: SuggestionStatus;
taskGroupings: TaskGrouping[];
affectedTasks: string[];
estimatedDuration: EstimatedDuration;
dependencies: string[];
createdAt: Date;
}
export interface SuggestionCardProps {
/** The project suggestion data to display */
suggestion: ProjectSuggestion;
/** Whether the card is expanded to show details */
isExpanded?: boolean;
/** Loading state for actions */
isLoading?: boolean;
/** Error message to display */
error?: string | null;
/** Optional CSS class name */
class?: string;
/** Card size variant */
size?: 'sm' | 'md' | 'lg';
/** Card variant for different contexts */
variant?: 'default' | 'compact' | 'detailed';
/** Whether to show action buttons */
showActions?: boolean;
/** Custom action configuration */
actions?: {
approve?: boolean;
modify?: boolean;
reject?: boolean;
defer?: boolean;
};
/** Event handlers for Svelte 5 */
ontoggle?: (event: SuggestionActionEvent) => void;
onapprove?: (event: SuggestionActionEvent) => void;
onmodify?: (event: SuggestionActionEvent) => void;
onreject?: (event: SuggestionActionEvent) => void;
ondefer?: (event: SuggestionActionEvent) => void;
}
export interface SuggestionActionEvent {
suggestionId: string;
suggestion?: ProjectSuggestion;
reason?: string;
until?: Date;
}
export interface ConfirmationDialogConfig {
isOpen: boolean;
title: string;
message: string;
confirmText: string;
cancelText: string;
variant: 'danger' | 'warning' | 'info';
}
//# sourceMappingURL=types.d.ts.map