@tasks-timeline/components 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +524 -0
- package/dist/TasksTimelineApp.d.ts +17 -0
- package/dist/TasksTimelineApp.d.ts.map +1 -0
- package/dist/components/AppContext.d.ts +6 -0
- package/dist/components/AppContext.d.ts.map +1 -0
- package/dist/components/BacklogSection.d.ts +8 -0
- package/dist/components/BacklogSection.d.ts.map +1 -0
- package/dist/components/CategoryPopover.d.ts +9 -0
- package/dist/components/CategoryPopover.d.ts.map +1 -0
- package/dist/components/DateBadge.d.ts +15 -0
- package/dist/components/DateBadge.d.ts.map +1 -0
- package/dist/components/DaySection.d.ts +8 -0
- package/dist/components/DaySection.d.ts.map +1 -0
- package/dist/components/ErrorFallback.d.ts +10 -0
- package/dist/components/ErrorFallback.d.ts.map +1 -0
- package/dist/components/HelpModal.d.ts +8 -0
- package/dist/components/HelpModal.d.ts.map +1 -0
- package/dist/components/Icon.d.ts +8 -0
- package/dist/components/Icon.d.ts.map +1 -0
- package/dist/components/InputBar.d.ts +6 -0
- package/dist/components/InputBar.d.ts.map +1 -0
- package/dist/components/Motion.d.ts +7 -0
- package/dist/components/Motion.d.ts.map +1 -0
- package/dist/components/PriorityPopover.d.ts +8 -0
- package/dist/components/PriorityPopover.d.ts.map +1 -0
- package/dist/components/TagBadge.d.ts +12 -0
- package/dist/components/TagBadge.d.ts.map +1 -0
- package/dist/components/TaskEditModal.d.ts +12 -0
- package/dist/components/TaskEditModal.d.ts.map +1 -0
- package/dist/components/TaskItem.d.ts +10 -0
- package/dist/components/TaskItem.d.ts.map +1 -0
- package/dist/components/Toast.d.ts +15 -0
- package/dist/components/Toast.d.ts.map +1 -0
- package/dist/components/TodoList.d.ts +7 -0
- package/dist/components/TodoList.d.ts.map +1 -0
- package/dist/components/YearSection.d.ts +8 -0
- package/dist/components/YearSection.d.ts.map +1 -0
- package/dist/components/index.d.ts +19 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/settings/About.d.ts +2 -0
- package/dist/components/settings/About.d.ts.map +1 -0
- package/dist/components/settings/Documentation.d.ts +2 -0
- package/dist/components/settings/Documentation.d.ts.map +1 -0
- package/dist/components/settings/SettingsModal.d.ts +15 -0
- package/dist/components/settings/SettingsModal.d.ts.map +1 -0
- package/dist/components/settings/SettingsPage.d.ts +16 -0
- package/dist/components/settings/SettingsPage.d.ts.map +1 -0
- package/dist/components/settings/SettingsPageAdvanced.d.ts +9 -0
- package/dist/components/settings/SettingsPageAdvanced.d.ts.map +1 -0
- package/dist/components/settings/SettingsPageGeneral.d.ts +9 -0
- package/dist/components/settings/SettingsPageGeneral.d.ts.map +1 -0
- package/dist/components/settings/ThemeSection.d.ts +8 -0
- package/dist/components/settings/ThemeSection.d.ts.map +1 -0
- package/dist/components/settings/TypographySection.d.ts +8 -0
- package/dist/components/settings/TypographySection.d.ts.map +1 -0
- package/dist/components/settings/ViewSection.d.ts +23 -0
- package/dist/components/settings/ViewSection.d.ts.map +1 -0
- package/dist/components/settings/ViewSectionConstants.d.ts +10 -0
- package/dist/components/settings/ViewSectionConstants.d.ts.map +1 -0
- package/dist/components/settings/index.d.ts +8 -0
- package/dist/components/settings/index.d.ts.map +1 -0
- package/dist/components/ui/badge-variants.d.ts +4 -0
- package/dist/components/ui/badge-variants.d.ts.map +1 -0
- package/dist/components/ui/badge.d.ts +8 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/button-variants.d.ts +5 -0
- package/dist/components/ui/button-variants.d.ts.map +1 -0
- package/dist/components/ui/button.d.ts +9 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/calendar.d.ts +11 -0
- package/dist/components/ui/calendar.d.ts.map +1 -0
- package/dist/components/ui/collapsible.d.ts +4 -0
- package/dist/components/ui/collapsible.d.ts.map +1 -0
- package/dist/components/ui/date-picker.d.ts +11 -0
- package/dist/components/ui/date-picker.d.ts.map +1 -0
- package/dist/components/ui/dialog.d.ts +16 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +22 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/input.d.ts +4 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/popover.d.ts +5 -0
- package/dist/components/ui/popover.d.ts.map +1 -0
- package/dist/components/ui/sonner.d.ts +5 -0
- package/dist/components/ui/sonner.d.ts.map +1 -0
- package/dist/contexts/SettingsContext.d.ts +22 -0
- package/dist/contexts/SettingsContext.d.ts.map +1 -0
- package/dist/contexts/TasksContext.d.ts +19 -0
- package/dist/contexts/TasksContext.d.ts.map +1 -0
- package/dist/contexts/index.d.ts +3 -0
- package/dist/contexts/index.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +11 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/useAIAgent.d.ts +5 -0
- package/dist/hooks/useAIAgent.d.ts.map +1 -0
- package/dist/hooks/usePortalContainer.d.ts +6 -0
- package/dist/hooks/usePortalContainer.d.ts.map +1 -0
- package/dist/hooks/useTaskFiltering.d.ts +7 -0
- package/dist/hooks/useTaskFiltering.d.ts.map +1 -0
- package/dist/hooks/useTaskStats.d.ts +9 -0
- package/dist/hooks/useTaskStats.d.ts.map +1 -0
- package/dist/hooks/useVoiceInput.d.ts +5 -0
- package/dist/hooks/useVoiceInput.d.ts.map +1 -0
- package/dist/index.css +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +74888 -0
- package/dist/index.js.map +1 -0
- package/dist/index.umd.cjs +258 -0
- package/dist/index.umd.cjs.map +1 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/storage.d.ts +44 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types.d.ts +127 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/ai-tools.d.ts +3 -0
- package/dist/utils/ai-tools.d.ts.map +1 -0
- package/dist/utils/cn.d.ts +3 -0
- package/dist/utils/cn.d.ts.map +1 -0
- package/dist/utils/date.d.ts +6 -0
- package/dist/utils/date.d.ts.map +1 -0
- package/dist/utils/index.d.ts +11 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +10 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/parsing.d.ts +3 -0
- package/dist/utils/parsing.d.ts.map +1 -0
- package/dist/utils/task.d.ts +9 -0
- package/dist/utils/task.d.ts.map +1 -0
- package/dist/vite.svg +1 -0
- package/package.json +115 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { AppSettings, SettingsRepository, Task, TaskRepository } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* LocalStorage implementation of the TaskRepository.
|
|
4
|
+
* Includes a simple debounce to avoid excessive writes during rapid updates.
|
|
5
|
+
*/
|
|
6
|
+
export declare class BrowserTaskRepository implements TaskRepository {
|
|
7
|
+
readonly name = "Local Browser Storage (Tasks)";
|
|
8
|
+
private tasksKey;
|
|
9
|
+
private tasksSaveTimeout;
|
|
10
|
+
loadTasks(): Promise<Task[]>;
|
|
11
|
+
saveTasks(tasks: Task[]): Promise<void>;
|
|
12
|
+
updateTask(task: Task): Promise<void>;
|
|
13
|
+
deleteTask(id: string): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* LocalStorage implementation of the SettingsRepository.
|
|
17
|
+
*/
|
|
18
|
+
export declare class BrowserSettingsRepository implements SettingsRepository {
|
|
19
|
+
readonly name = "Local Browser Settings";
|
|
20
|
+
private settingsKey;
|
|
21
|
+
private settingsSaveTimeout;
|
|
22
|
+
loadSettings(): Promise<AppSettings | null>;
|
|
23
|
+
saveSettings(settings: AppSettings): Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Mock Remote Repositories
|
|
27
|
+
*/
|
|
28
|
+
export declare class RemoteTaskRepository implements TaskRepository {
|
|
29
|
+
readonly name = "Remote Cloud Sync (Tasks)";
|
|
30
|
+
private baseUrl;
|
|
31
|
+
constructor(baseUrl: string);
|
|
32
|
+
loadTasks(): Promise<Task[]>;
|
|
33
|
+
saveTasks(tasks: Task[]): Promise<void>;
|
|
34
|
+
updateTask(task: Task): Promise<void>;
|
|
35
|
+
deleteTask(id: string): Promise<void>;
|
|
36
|
+
}
|
|
37
|
+
export declare class RemoteSettingsRepository implements SettingsRepository {
|
|
38
|
+
readonly name = "Remote Cloud Sync (Settings)";
|
|
39
|
+
private _baseUrl;
|
|
40
|
+
constructor(baseUrl: string);
|
|
41
|
+
loadSettings(): Promise<AppSettings | null>;
|
|
42
|
+
saveSettings(settings: AppSettings): Promise<void>;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAClB,IAAI,EACJ,cAAc,EACf,MAAM,SAAS,CAAC;AAGjB;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,cAAc;IAC1D,QAAQ,CAAC,IAAI,mCAAmC;IAChD,OAAO,CAAC,QAAQ,CAA+B;IAE/C,OAAO,CAAC,gBAAgB,CAAuB;IAEzC,SAAS,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAoB5B,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBvC,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IASrC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAK5C;AAED;;GAEG;AACH,qBAAa,yBAA0B,YAAW,kBAAkB;IAClE,QAAQ,CAAC,IAAI,4BAA4B;IACzC,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,mBAAmB,CAAuB;IAE5C,YAAY,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAe3C,YAAY,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAmBzD;AAED;;GAEG;AACH,qBAAa,oBAAqB,YAAW,cAAc;IACzD,QAAQ,CAAC,IAAI,+BAA+B;IAC5C,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,MAAM;IAIrB,SAAS,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAK5B,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IASvC,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG5C;AAED,qBAAa,wBAAyB,YAAW,kBAAkB;IACjE,QAAQ,CAAC,IAAI,kCAAkC;IAC/C,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,EAAE,MAAM;IAKrB,YAAY,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAK3C,YAAY,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAGzD"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types Exports
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all TypeScript type definitions from the tasks-timeline component library.
|
|
5
|
+
*/
|
|
6
|
+
export type { Priority, TaskStatus, ISO8601String, Tag, Task, DayGroup, YearGroup, ThemeOption, FontSize, AIProvider, VoiceProvider, DateGroupBy, ProviderConfig, AIConfig, AppSettings, FilterState, SortField, SortDirection, SortState, } from "../types";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,YAAY,EACV,QAAQ,EACR,UAAU,EACV,aAAa,EACb,GAAG,EACH,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,WAAW,EACX,QAAQ,EACR,UAAU,EACV,aAAa,EACb,WAAW,EACX,cAAc,EACd,QAAQ,EACR,WAAW,EACX,WAAW,EACX,SAAS,EACT,aAAa,EACb,SAAS,GACV,MAAM,UAAU,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
export type Priority = "low" | "medium" | "high";
|
|
2
|
+
export type TaskStatus = "done" | "scheduled" | "todo" | "due" | "overdue" | "cancelled" | "unplanned" | "doing";
|
|
3
|
+
export type ISO8601String = string;
|
|
4
|
+
export interface Tag {
|
|
5
|
+
id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
color?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface Task {
|
|
10
|
+
id: string;
|
|
11
|
+
title: string;
|
|
12
|
+
description?: string;
|
|
13
|
+
status: TaskStatus;
|
|
14
|
+
createdAt?: ISO8601String;
|
|
15
|
+
startAt?: ISO8601String;
|
|
16
|
+
dueAt?: ISO8601String;
|
|
17
|
+
completedAt?: ISO8601String;
|
|
18
|
+
cancelledAt?: ISO8601String;
|
|
19
|
+
priority: Priority;
|
|
20
|
+
category?: string;
|
|
21
|
+
tags: Tag[];
|
|
22
|
+
isRecurring?: boolean;
|
|
23
|
+
recurringInterval?: string;
|
|
24
|
+
extra?: {
|
|
25
|
+
[key: string]: string | undefined;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export interface DayGroup {
|
|
29
|
+
date: ISO8601String;
|
|
30
|
+
tasks: Task[];
|
|
31
|
+
}
|
|
32
|
+
export interface YearGroup {
|
|
33
|
+
year: number;
|
|
34
|
+
dayGroups: DayGroup[];
|
|
35
|
+
totalTasks: number;
|
|
36
|
+
completedTasks: number;
|
|
37
|
+
}
|
|
38
|
+
export type ThemeOption = "light" | "dark" | "midnight" | "coffee" | "system";
|
|
39
|
+
export type FontSize = "sm" | "base" | "lg" | "xl";
|
|
40
|
+
export type AIProvider = "gemini" | "openai" | "anthropic";
|
|
41
|
+
export type VoiceProvider = "browser" | "gemini-whisper";
|
|
42
|
+
export type DateGroupBy = "dueAt" | "createdAt" | "startAt" | "completedAt";
|
|
43
|
+
export interface ProviderConfig {
|
|
44
|
+
apiKey: string;
|
|
45
|
+
baseUrl: string;
|
|
46
|
+
model: string;
|
|
47
|
+
}
|
|
48
|
+
export interface AIConfig {
|
|
49
|
+
enabled: boolean;
|
|
50
|
+
defaultMode: boolean;
|
|
51
|
+
activeProvider: AIProvider;
|
|
52
|
+
providers: Record<AIProvider, ProviderConfig>;
|
|
53
|
+
}
|
|
54
|
+
export interface AppSettings {
|
|
55
|
+
theme: ThemeOption;
|
|
56
|
+
dateFormat: string;
|
|
57
|
+
showCompleted: boolean;
|
|
58
|
+
showProgressBar: boolean;
|
|
59
|
+
soundEnabled: boolean;
|
|
60
|
+
fontSize: FontSize;
|
|
61
|
+
useRelativeDates: boolean;
|
|
62
|
+
groupingStrategy: DateGroupBy[];
|
|
63
|
+
aiConfig: AIConfig;
|
|
64
|
+
enableVoiceInput: boolean;
|
|
65
|
+
voiceProvider: VoiceProvider;
|
|
66
|
+
defaultFocusMode: boolean;
|
|
67
|
+
totalTokenUsage: number;
|
|
68
|
+
defaultCategory: string;
|
|
69
|
+
settingButtonOnInputBar?: false;
|
|
70
|
+
tagsFilterOnInputBar?: false;
|
|
71
|
+
categoriesFilterOnInputBar?: false;
|
|
72
|
+
priorityFilterOnInputBar?: false;
|
|
73
|
+
statusFilterOnInputBar?: false;
|
|
74
|
+
sortOnInputBar?: false;
|
|
75
|
+
filters: FilterState;
|
|
76
|
+
sort: SortState;
|
|
77
|
+
}
|
|
78
|
+
export interface FilterState {
|
|
79
|
+
tags: string[];
|
|
80
|
+
categories: string[];
|
|
81
|
+
priorities: Priority[];
|
|
82
|
+
statuses: TaskStatus[];
|
|
83
|
+
enableScript: boolean;
|
|
84
|
+
script: string;
|
|
85
|
+
}
|
|
86
|
+
export type SortField = "createdAt" | "dueAt" | "startAt" | "priority" | "title" | "custom";
|
|
87
|
+
export type SortDirection = "asc" | "desc";
|
|
88
|
+
export interface SortState {
|
|
89
|
+
field: SortField;
|
|
90
|
+
direction: SortDirection;
|
|
91
|
+
script: string;
|
|
92
|
+
}
|
|
93
|
+
/** Available icon names from lucide-react */
|
|
94
|
+
export type LucideIconName = keyof typeof import("lucide-react");
|
|
95
|
+
/**
|
|
96
|
+
* Custom Settings Tab
|
|
97
|
+
* Allows host applications to inject custom tabs into the Settings page
|
|
98
|
+
*/
|
|
99
|
+
export interface CustomSettingsTab {
|
|
100
|
+
/** Unique identifier for the tab. Avoid using reserved IDs: 'general', 'advanced', 'docs', 'about' */
|
|
101
|
+
id: string;
|
|
102
|
+
/** Display label shown in the tab bar */
|
|
103
|
+
label: string;
|
|
104
|
+
/**
|
|
105
|
+
* Optional icon name from lucide-react.
|
|
106
|
+
* @see https://lucide.dev/icons for available icon names
|
|
107
|
+
*/
|
|
108
|
+
icon?: LucideIconName;
|
|
109
|
+
/** The content to render when tab is active */
|
|
110
|
+
content: React.ReactNode;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Persistence Abstraction
|
|
114
|
+
*/
|
|
115
|
+
export interface TaskRepository {
|
|
116
|
+
name: string;
|
|
117
|
+
loadTasks(): Promise<Task[]>;
|
|
118
|
+
saveTasks(tasks: Task[]): Promise<void>;
|
|
119
|
+
updateTask(task: Task): Promise<void>;
|
|
120
|
+
deleteTask(id: string): Promise<void>;
|
|
121
|
+
}
|
|
122
|
+
export interface SettingsRepository {
|
|
123
|
+
name: string;
|
|
124
|
+
loadSettings(): Promise<AppSettings | null>;
|
|
125
|
+
saveSettings(settings: AppSettings): Promise<void>;
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-tools.d.ts","sourceRoot":"","sources":["../../src/utils/ai-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAQ,MAAM,eAAe,CAAC;AAG/D,eAAO,MAAM,kBAAkB,QAAO,mBAAmB,EAgHxD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cn.d.ts","sourceRoot":"","sources":["../../src/utils/cn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,MAAM,CAAC;AAG7C,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const formatDateDisplay: (dateStr: string, format?: string) => string;
|
|
2
|
+
export declare const formatTime: (dateStr: string) => string | null;
|
|
3
|
+
export declare const formatRelativeDate: (dateStr: string) => string;
|
|
4
|
+
export declare const formatSmartDate: (dateStr: string, useRelative: boolean, absoluteFormat: string) => string;
|
|
5
|
+
export declare const formatRecurrence: (ruleStr: string) => string;
|
|
6
|
+
//# sourceMappingURL=date.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/utils/date.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,iBAAiB,GAAI,SAAS,MAAM,EAAE,eAAqB,WAMvE,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,kBAMzC,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,SAAS,MAAM,WAkBjD,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,SAAS,MAAM,EACf,aAAa,OAAO,EACpB,gBAAgB,MAAM,WAyBvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,KAAG,MAUlD,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { cn } from "./cn";
|
|
2
|
+
export { formatDateDisplay, formatTime, formatRelativeDate, formatSmartDate, formatRecurrence, } from "./date";
|
|
3
|
+
export { deriveTaskStatus, groupTasksByYearAndDate, computeDateValidation, type DateValidationState, } from "./task";
|
|
4
|
+
export { parseTaskString } from "./parsing";
|
|
5
|
+
export { getToolDefinitions } from "./ai-tools";
|
|
6
|
+
/**
|
|
7
|
+
* Deep equality comparison for objects
|
|
8
|
+
* Used to detect if a task has actually changed before persisting
|
|
9
|
+
*/
|
|
10
|
+
export declare function deepEqual(obj1: unknown, obj2: unknown): boolean;
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GACjB,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,mBAAmB,GACzB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CA8B/D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
declare class Logger {
|
|
2
|
+
private log;
|
|
3
|
+
info(context: string, message: string, data?: unknown): void;
|
|
4
|
+
warn(context: string, message: string, data?: unknown): void;
|
|
5
|
+
error(context: string, message: string, data?: unknown): void;
|
|
6
|
+
debug(context: string, message: string, data?: unknown): void;
|
|
7
|
+
}
|
|
8
|
+
export declare const logger: Logger;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAUA,cAAM,MAAM;IACV,OAAO,CAAC,GAAG;IAyBX,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAIrD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAIrD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAItD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;CAGvD;AAED,eAAO,MAAM,MAAM,QAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsing.d.ts","sourceRoot":"","sources":["../../src/utils/parsing.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAY,IAAI,EAAE,MAAM,UAAU,CAAC;AAE/C,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,OAAO,CAAC,IAAI,CAgD3D,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DateGroupBy, Task, TaskStatus, YearGroup } from "../types";
|
|
2
|
+
export interface DateValidationState {
|
|
3
|
+
hasMissingDates: boolean;
|
|
4
|
+
hasInvalidDates: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare const computeDateValidation: (task: Task, strategies: DateGroupBy[]) => DateValidationState | undefined;
|
|
7
|
+
export declare const deriveTaskStatus: (task: Task) => TaskStatus;
|
|
8
|
+
export declare const groupTasksByYearAndDate: (tasks: Task[], strategies?: DateGroupBy[]) => YearGroup[];
|
|
9
|
+
//# sourceMappingURL=task.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/utils/task.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EAEX,IAAI,EACJ,UAAU,EACV,SAAS,EACV,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,qBAAqB,GAChC,MAAM,IAAI,EACV,YAAY,WAAW,EAAE,KACxB,mBAAmB,GAAG,SAwCxB,CAAC;AAUF,eAAO,MAAM,gBAAgB,GAAI,MAAM,IAAI,KAAG,UAwC7C,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,OAAO,IAAI,EAAE,EACb,aAAY,WAAW,EAAc,KACpC,SAAS,EA2EX,CAAC"}
|
package/dist/vite.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
|
package/package.json
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@tasks-timeline/components",
|
|
3
|
+
"description": "A comprehensive React component library for task management and timeline visualization",
|
|
4
|
+
"private": false,
|
|
5
|
+
"version": "0.0.6",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"author": "Leonezz <zhwuenqa@outlook.com>",
|
|
9
|
+
"repository": "",
|
|
10
|
+
"main": "./dist/index.umd.cjs",
|
|
11
|
+
"module": "./dist/index.js",
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"import": "./dist/index.js",
|
|
17
|
+
"require": "./dist/index.umd.cjs"
|
|
18
|
+
},
|
|
19
|
+
"./components": {
|
|
20
|
+
"types": "./dist/components/index.d.ts",
|
|
21
|
+
"import": "./dist/components/index.js",
|
|
22
|
+
"require": "./dist/components/index.umd.cjs"
|
|
23
|
+
},
|
|
24
|
+
"./hooks": {
|
|
25
|
+
"types": "./dist/hooks/index.d.ts",
|
|
26
|
+
"import": "./dist/hooks/index.js",
|
|
27
|
+
"require": "./dist/hooks/index.umd.cjs"
|
|
28
|
+
},
|
|
29
|
+
"./types": {
|
|
30
|
+
"types": "./dist/types/index.d.ts",
|
|
31
|
+
"import": "./dist/types/index.js",
|
|
32
|
+
"require": "./dist/types/index.umd.cjs"
|
|
33
|
+
},
|
|
34
|
+
"./index.css": "./dist/index.css"
|
|
35
|
+
},
|
|
36
|
+
"files": [
|
|
37
|
+
"dist"
|
|
38
|
+
],
|
|
39
|
+
"workspaces": [
|
|
40
|
+
"examples/app"
|
|
41
|
+
],
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"@google/genai": "^1.34.0",
|
|
44
|
+
"@radix-ui/react-collapsible": "^1.1.11",
|
|
45
|
+
"@radix-ui/react-dialog": "^1.1.15",
|
|
46
|
+
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
47
|
+
"@radix-ui/react-popover": "^1.1.14",
|
|
48
|
+
"@radix-ui/react-portal": "^1.1.8",
|
|
49
|
+
"@radix-ui/react-slot": "^1.2.4",
|
|
50
|
+
"class-variance-authority": "^0.7.1",
|
|
51
|
+
"clsx": "^2.1.1",
|
|
52
|
+
"date-fns": "^4.1.0",
|
|
53
|
+
"expr-eval": "^2.0.2",
|
|
54
|
+
"framer-motion": "12.23.26",
|
|
55
|
+
"lucide-react": "^0.330.0",
|
|
56
|
+
"luxon": "3.4.4",
|
|
57
|
+
"next-themes": "^0.4.6",
|
|
58
|
+
"react-error-boundary": "^6.0.3",
|
|
59
|
+
"react-shadow": "^20.6.0",
|
|
60
|
+
"rrule": "2.8.1",
|
|
61
|
+
"sonner": "^2.0.7",
|
|
62
|
+
"tailwind-merge": "^3.4.0"
|
|
63
|
+
},
|
|
64
|
+
"peerDependencies": {
|
|
65
|
+
"react": "^19.2.3",
|
|
66
|
+
"react-dom": "^19.2.3"
|
|
67
|
+
},
|
|
68
|
+
"devDependencies": {
|
|
69
|
+
"@chromatic-com/storybook": "^4.1.3",
|
|
70
|
+
"@eslint/js": "^9.39.1",
|
|
71
|
+
"@faker-js/faker": "^9.3.0",
|
|
72
|
+
"@storybook/addon-a11y": "^10.1.11",
|
|
73
|
+
"@storybook/addon-docs": "^10.1.11",
|
|
74
|
+
"@storybook/addon-onboarding": "^10.1.11",
|
|
75
|
+
"@storybook/addon-vitest": "^10.1.11",
|
|
76
|
+
"@storybook/react-vite": "^10.1.11",
|
|
77
|
+
"@tailwindcss/vite": "^4.1.18",
|
|
78
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
79
|
+
"@testing-library/react": "^16.1.0",
|
|
80
|
+
"@testing-library/user-event": "^14.5.2",
|
|
81
|
+
"@types/luxon": "^3.7.1",
|
|
82
|
+
"@types/node": "^24.10.1",
|
|
83
|
+
"@types/react": "^19.2.5",
|
|
84
|
+
"@types/react-dom": "^19.2.3",
|
|
85
|
+
"@vitejs/plugin-react": "^5.1.1",
|
|
86
|
+
"assert": "^2.1.0",
|
|
87
|
+
"eslint": "^9.39.1",
|
|
88
|
+
"eslint-plugin-react-hooks": "^7.0.1",
|
|
89
|
+
"eslint-plugin-react-refresh": "^0.4.24",
|
|
90
|
+
"eslint-plugin-storybook": "^10.1.11",
|
|
91
|
+
"globals": "^16.5.0",
|
|
92
|
+
"playwright": "^1.57.0",
|
|
93
|
+
"prettier": "^3.7.4",
|
|
94
|
+
"storybook": "^10.1.11",
|
|
95
|
+
"tailwindcss": "^4.1.18",
|
|
96
|
+
"typescript": "~5.9.3",
|
|
97
|
+
"typescript-eslint": "^8.46.4",
|
|
98
|
+
"vite": "^7.2.4",
|
|
99
|
+
"vitest": "^4.0.16"
|
|
100
|
+
},
|
|
101
|
+
"scripts": {
|
|
102
|
+
"build": "tsc -p tsconfig.build.json && vite build",
|
|
103
|
+
"build:lib": "vite build && tsc -p tsconfig.build.json",
|
|
104
|
+
"dev:lib": "tsc -p tsconfig.build.json --watch",
|
|
105
|
+
"preview": "vite preview",
|
|
106
|
+
"lint": "eslint src",
|
|
107
|
+
"type-check": "tsc --noEmit",
|
|
108
|
+
"storybook": "storybook dev -p 6006",
|
|
109
|
+
"test-storybook": "vitest --project=storybook",
|
|
110
|
+
"build-storybook": "storybook build",
|
|
111
|
+
"dev:example": "cd examples/app && pnpm dev",
|
|
112
|
+
"build:example": "cd examples/app && pnpm build",
|
|
113
|
+
"format": "prettier --write \"src/**/*.{js,jsx,ts,tsx,json,css,md}\""
|
|
114
|
+
}
|
|
115
|
+
}
|