claritykit-svelte
Version:
A comprehensive Svelte component library focused on accessibility, ADHD-optimized design, developer experience, and full SSR compatibility
106 lines • 2.84 kB
TypeScript
/**
* Gantt-o-matic Type Definitions
* ADHD-optimized Gantt chart types for therapeutic project management
*/
export interface GanttTask {
id: string;
name: string;
startDate: Date;
endDate: Date;
duration: number;
progress: number;
priority: 1 | 2 | 3 | 4 | 5;
energy: 1 | 2 | 3 | 4 | 5;
reward: 1 | 2 | 3 | 4 | 5;
assignee?: string;
description?: string;
color?: string;
parentId?: string;
dependencies: string[];
tags: string[];
status: 'not-started' | 'in-progress' | 'completed' | 'blocked';
estimatedHours?: number;
actualHours?: number;
}
export interface GanttDependency {
id: string;
fromTaskId: string;
toTaskId: string;
type: 'finish-to-start' | 'start-to-start' | 'finish-to-finish' | 'start-to-finish';
lag: number;
}
export interface TimelineConfig {
viewMode: 'days' | 'weeks' | 'months' | 'quarters';
startDate: Date;
endDate: Date;
workingDays: number[];
holidays: Date[];
scale: number;
}
export interface GanttConfig {
timeline: TimelineConfig;
rowHeight: number;
gridSize: number;
showCriticalPath: boolean;
showDependencies: boolean;
enableDragDrop: boolean;
enableResize: boolean;
adhdOptimized: boolean;
celebrateCompletions: boolean;
autoSchedule: boolean;
}
export interface BulkOperation {
type: 'reschedule-all' | 'optimize-timeline' | 'auto-balance' | 'compress-timeline';
parameters?: Record<string, any>;
}
export interface CognitiveLoadState {
totalTasks: number;
activeTasks: number;
overdueTasks: number;
cognitiveScore: number;
recommendation: 'optimal' | 'manageable' | 'warning' | 'overloaded';
}
export interface EnergyScheduling {
highEnergyPeriods: {
start: number;
end: number;
}[];
lowEnergyPeriods: {
start: number;
end: number;
}[];
energyAllocation: Record<string, number>;
}
export interface TherapeuticFeatures {
showProgressCelebrations: boolean;
enableFocusMode: boolean;
breakReminders: boolean;
overloadWarnings: boolean;
motivationalMessages: boolean;
accessibilityMode: boolean;
}
export type TaskUpdateEvent = {
taskId: string;
updates: Partial<GanttTask>;
};
export type DependencyUpdateEvent = {
dependencyId: string;
updates: Partial<GanttDependency>;
};
export type ViewChangeEvent = {
newViewMode: 'days' | 'weeks' | 'months';
};
export type CriticalPathResult = {
criticalTasks: string[];
criticalDependencies: string[];
totalDuration: number;
latestFinishDate: Date;
};
export type BulkOperationResult = {
success: boolean;
affectedTasks: string[];
newSchedule?: GanttTask[];
warnings?: string[];
recommendations?: string[];
};
//# sourceMappingURL=types.d.ts.map