@libxai/board 0.18.26 → 1.1.0
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/dist/index.cjs +56 -56
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +318 -8
- package/dist/index.d.ts +318 -8
- package/dist/index.js +56 -56
- package/dist/index.js.map +1 -1
- package/dist/styles.css +428 -21
- package/package.json +141 -141
package/dist/index.d.ts
CHANGED
|
@@ -584,8 +584,12 @@ interface Card$1 {
|
|
|
584
584
|
endDate?: Date | string;
|
|
585
585
|
/** Task dependencies - supports both legacy format (string[]) and new format (Dependency[]) */
|
|
586
586
|
dependencies?: string[] | Dependency[];
|
|
587
|
-
/** Estimated time (in hours) */
|
|
587
|
+
/** Estimated time (in hours) - legacy field */
|
|
588
588
|
estimatedTime?: number;
|
|
589
|
+
/** v1.1.0: Estimated effort in minutes (for time tracking) */
|
|
590
|
+
effortMinutes?: number | null;
|
|
591
|
+
/** v1.1.0: Total logged time in minutes (aggregated) */
|
|
592
|
+
timeLoggedMinutes?: number;
|
|
589
593
|
/** Manual progress override (0-100%) */
|
|
590
594
|
progress?: number;
|
|
591
595
|
/** Cover image URL */
|
|
@@ -872,6 +876,24 @@ interface KanbanBoardProps {
|
|
|
872
876
|
type: string;
|
|
873
877
|
size: number;
|
|
874
878
|
}>>;
|
|
879
|
+
/** Enable time tracking features in TaskDetailModal */
|
|
880
|
+
enableTimeTracking?: boolean;
|
|
881
|
+
/** Time tracking summary for the currently open task */
|
|
882
|
+
timeTrackingSummary?: TimeTrackingSummary;
|
|
883
|
+
/** Time entries for the currently open task */
|
|
884
|
+
timeEntries?: TimeEntry[];
|
|
885
|
+
/** Current timer state */
|
|
886
|
+
timerState?: TimerState;
|
|
887
|
+
/** Callback to log time manually */
|
|
888
|
+
onLogTime?: (taskId: string, input: TimeLogInput) => Promise<void>;
|
|
889
|
+
/** Callback to update task estimate */
|
|
890
|
+
onUpdateEstimate?: (taskId: string, minutes: number | null) => Promise<void>;
|
|
891
|
+
/** Callback to start timer */
|
|
892
|
+
onStartTimer?: (taskId: string) => void;
|
|
893
|
+
/** Callback to stop timer and save time */
|
|
894
|
+
onStopTimer?: (taskId: string) => void;
|
|
895
|
+
/** Callback to discard timer without saving */
|
|
896
|
+
onDiscardTimer?: (taskId: string) => void;
|
|
875
897
|
}
|
|
876
898
|
/**
|
|
877
899
|
* Drag event data
|
|
@@ -945,7 +967,7 @@ interface Comment {
|
|
|
945
967
|
/**
|
|
946
968
|
* Activity log entry types
|
|
947
969
|
*/
|
|
948
|
-
type ActivityType = 'CARD_CREATED' | 'CARD_UPDATED' | 'CARD_MOVED' | 'CARD_DELETED' | 'COMMENT_ADDED' | 'USER_ASSIGNED' | 'USER_UNASSIGNED' | 'PRIORITY_CHANGED' | 'DUE_DATE_CHANGED' | 'LABEL_ADDED' | 'LABEL_REMOVED' | 'DEPENDENCY_ADDED' | 'DEPENDENCY_REMOVED' | 'ATTACHMENT_ADDED' | 'ATTACHMENT_REMOVED';
|
|
970
|
+
type ActivityType = 'CARD_CREATED' | 'CARD_UPDATED' | 'CARD_MOVED' | 'CARD_DELETED' | 'COMMENT_ADDED' | 'USER_ASSIGNED' | 'USER_UNASSIGNED' | 'PRIORITY_CHANGED' | 'DUE_DATE_CHANGED' | 'LABEL_ADDED' | 'LABEL_REMOVED' | 'DEPENDENCY_ADDED' | 'DEPENDENCY_REMOVED' | 'ATTACHMENT_ADDED' | 'ATTACHMENT_REMOVED' | 'TIME_LOGGED' | 'TIME_UPDATED' | 'TIME_DELETED' | 'ESTIMATE_SET' | 'ESTIMATE_UPDATED';
|
|
949
971
|
/**
|
|
950
972
|
* Activity log entry
|
|
951
973
|
*/
|
|
@@ -1095,6 +1117,179 @@ interface ImportResult {
|
|
|
1095
1117
|
/** Warnings */
|
|
1096
1118
|
warnings?: string[];
|
|
1097
1119
|
}
|
|
1120
|
+
/**
|
|
1121
|
+
* Source of time entry - how the time was logged
|
|
1122
|
+
*/
|
|
1123
|
+
type TimeLogSource = 'manual' | 'timer' | 'import';
|
|
1124
|
+
/**
|
|
1125
|
+
* Time entry for a task
|
|
1126
|
+
* Represents a single time log (e.g., "2 hours worked on Jan 10")
|
|
1127
|
+
*/
|
|
1128
|
+
interface TimeEntry {
|
|
1129
|
+
/** Unique identifier */
|
|
1130
|
+
id: string;
|
|
1131
|
+
/** Task/Card ID */
|
|
1132
|
+
taskId: string;
|
|
1133
|
+
/** User who logged the time */
|
|
1134
|
+
userId: string;
|
|
1135
|
+
/** Duration in minutes */
|
|
1136
|
+
durationMinutes: number;
|
|
1137
|
+
/** When the work was done (date of the work, not when it was logged) */
|
|
1138
|
+
loggedAt: Date | string;
|
|
1139
|
+
/** Optional note/description */
|
|
1140
|
+
note?: string;
|
|
1141
|
+
/** Source of the entry */
|
|
1142
|
+
source: TimeLogSource;
|
|
1143
|
+
/** Created timestamp */
|
|
1144
|
+
createdAt: Date | string;
|
|
1145
|
+
/** Updated timestamp */
|
|
1146
|
+
updatedAt?: Date | string;
|
|
1147
|
+
}
|
|
1148
|
+
/**
|
|
1149
|
+
* Input for creating a new time log
|
|
1150
|
+
* Used by UI components to send data to callbacks
|
|
1151
|
+
*/
|
|
1152
|
+
interface TimeLogInput {
|
|
1153
|
+
/** Duration in minutes */
|
|
1154
|
+
durationMinutes: number;
|
|
1155
|
+
/** When the work was done */
|
|
1156
|
+
loggedAt?: Date | string;
|
|
1157
|
+
/** Optional note */
|
|
1158
|
+
note?: string;
|
|
1159
|
+
/** Source (defaults to 'manual') */
|
|
1160
|
+
source?: TimeLogSource;
|
|
1161
|
+
}
|
|
1162
|
+
/**
|
|
1163
|
+
* Time tracking summary for a task
|
|
1164
|
+
* Aggregated view of time data
|
|
1165
|
+
*/
|
|
1166
|
+
interface TimeTrackingSummary {
|
|
1167
|
+
/** Estimated effort in minutes (null if not set) */
|
|
1168
|
+
estimateMinutes: number | null;
|
|
1169
|
+
/** Total logged time in minutes */
|
|
1170
|
+
loggedMinutes: number;
|
|
1171
|
+
/** Remaining time in minutes (estimate - logged, can be negative) */
|
|
1172
|
+
remainingMinutes: number | null;
|
|
1173
|
+
/** Progress percentage (0-100+, can exceed 100 if over estimate) */
|
|
1174
|
+
progressPercent: number | null;
|
|
1175
|
+
/** Health status based on progress */
|
|
1176
|
+
health: 'on-track' | 'at-risk' | 'over-budget' | 'no-estimate';
|
|
1177
|
+
}
|
|
1178
|
+
/**
|
|
1179
|
+
* Timer state for real-time tracking
|
|
1180
|
+
*/
|
|
1181
|
+
interface TimerState {
|
|
1182
|
+
/** Is timer currently running */
|
|
1183
|
+
isRunning: boolean;
|
|
1184
|
+
/** Task ID being tracked (null if no timer active) */
|
|
1185
|
+
taskId: string | null;
|
|
1186
|
+
/** When timer was started */
|
|
1187
|
+
startedAt: Date | string | null;
|
|
1188
|
+
/** Elapsed seconds since start */
|
|
1189
|
+
elapsedSeconds: number;
|
|
1190
|
+
}
|
|
1191
|
+
/**
|
|
1192
|
+
* Callbacks for time tracking operations
|
|
1193
|
+
* These allow the library consumer to persist time data
|
|
1194
|
+
*/
|
|
1195
|
+
interface TimeTrackingCallbacks {
|
|
1196
|
+
/** Called when user logs time manually */
|
|
1197
|
+
onTimeLog?: (taskId: string, input: TimeLogInput) => Promise<void>;
|
|
1198
|
+
/** Called when user updates a time entry */
|
|
1199
|
+
onTimeUpdate?: (entryId: string, updates: Partial<TimeLogInput>) => Promise<void>;
|
|
1200
|
+
/** Called when user deletes a time entry */
|
|
1201
|
+
onTimeDelete?: (entryId: string) => Promise<void>;
|
|
1202
|
+
/** Called when user sets/updates time estimate */
|
|
1203
|
+
onEstimateUpdate?: (taskId: string, estimateMinutes: number | null) => Promise<void>;
|
|
1204
|
+
/** Called when timer is started */
|
|
1205
|
+
onTimerStart?: (taskId: string) => void;
|
|
1206
|
+
/** Called when timer is stopped (returns logged entry) */
|
|
1207
|
+
onTimerStop?: (taskId: string, durationMinutes: number) => Promise<void>;
|
|
1208
|
+
/** Called when timer is discarded without saving */
|
|
1209
|
+
onTimerDiscard?: (taskId: string) => void;
|
|
1210
|
+
}
|
|
1211
|
+
/**
|
|
1212
|
+
* Props extension for time tracking in Card
|
|
1213
|
+
* Add these to Card interface for time-enabled cards
|
|
1214
|
+
*/
|
|
1215
|
+
interface CardTimeProps {
|
|
1216
|
+
/** Estimated effort in minutes */
|
|
1217
|
+
effortMinutes?: number | null;
|
|
1218
|
+
/** Total logged time in minutes (aggregated from entries) */
|
|
1219
|
+
timeLoggedMinutes?: number;
|
|
1220
|
+
/** Time entries for this card */
|
|
1221
|
+
timeEntries?: TimeEntry[];
|
|
1222
|
+
}
|
|
1223
|
+
/**
|
|
1224
|
+
* Props extension for KanbanBoard with time tracking
|
|
1225
|
+
*/
|
|
1226
|
+
interface TimeTrackingBoardProps {
|
|
1227
|
+
/** Enable time tracking features */
|
|
1228
|
+
enableTimeTracking?: boolean;
|
|
1229
|
+
/** Time tracking callbacks */
|
|
1230
|
+
timeTrackingCallbacks?: TimeTrackingCallbacks;
|
|
1231
|
+
/** Current timer state (for global timer indicator) */
|
|
1232
|
+
timerState?: TimerState;
|
|
1233
|
+
/** Time entries by task ID (for modal display) */
|
|
1234
|
+
timeEntriesByTask?: Map<string, TimeEntry[]>;
|
|
1235
|
+
}
|
|
1236
|
+
|
|
1237
|
+
/**
|
|
1238
|
+
* Profitability metrics for a single task
|
|
1239
|
+
* Compares sold effort vs actual time logged
|
|
1240
|
+
*/
|
|
1241
|
+
interface TaskProfitability {
|
|
1242
|
+
/** Task ID */
|
|
1243
|
+
taskId: string;
|
|
1244
|
+
/** Task name */
|
|
1245
|
+
taskName: string;
|
|
1246
|
+
/** Project ID (optional) */
|
|
1247
|
+
projectId?: string | null;
|
|
1248
|
+
/** Project name (optional) */
|
|
1249
|
+
projectName?: string | null;
|
|
1250
|
+
/** Sold effort in minutes (tiempo ofertado al cliente) */
|
|
1251
|
+
soldEffortMinutes: number | null;
|
|
1252
|
+
/** Actual time logged in minutes */
|
|
1253
|
+
loggedMinutes: number;
|
|
1254
|
+
/** Variance in minutes (sold - logged, positive = profit, negative = loss) */
|
|
1255
|
+
varianceMinutes: number | null;
|
|
1256
|
+
/** Variance percentage (variance / sold * 100) */
|
|
1257
|
+
variancePercent: number | null;
|
|
1258
|
+
/** Profitability status */
|
|
1259
|
+
status: 'profitable' | 'at-cost' | 'loss' | 'no-estimate';
|
|
1260
|
+
}
|
|
1261
|
+
/**
|
|
1262
|
+
* Aggregated profitability metrics for a project or workspace
|
|
1263
|
+
*/
|
|
1264
|
+
interface ProfitabilitySummary {
|
|
1265
|
+
/** Total sold effort in minutes */
|
|
1266
|
+
totalSoldMinutes: number;
|
|
1267
|
+
/** Total logged time in minutes */
|
|
1268
|
+
totalLoggedMinutes: number;
|
|
1269
|
+
/** Total variance in minutes */
|
|
1270
|
+
totalVarianceMinutes: number;
|
|
1271
|
+
/** Average variance percentage */
|
|
1272
|
+
avgVariancePercent: number;
|
|
1273
|
+
/** Number of profitable tasks */
|
|
1274
|
+
profitableTasksCount: number;
|
|
1275
|
+
/** Number of loss-making tasks */
|
|
1276
|
+
lossTasksCount: number;
|
|
1277
|
+
/** Number of tasks at cost (±5% margin) */
|
|
1278
|
+
atCostTasksCount: number;
|
|
1279
|
+
/** Total number of tasks with sold effort set */
|
|
1280
|
+
totalTasksWithEstimate: number;
|
|
1281
|
+
}
|
|
1282
|
+
/**
|
|
1283
|
+
* Profitability report data
|
|
1284
|
+
*/
|
|
1285
|
+
interface ProfitabilityReport$1 {
|
|
1286
|
+
/** Summary metrics */
|
|
1287
|
+
summary: ProfitabilitySummary;
|
|
1288
|
+
/** Task-level profitability data */
|
|
1289
|
+
tasks: TaskProfitability[];
|
|
1290
|
+
/** Report generation timestamp */
|
|
1291
|
+
generatedAt: Date | string;
|
|
1292
|
+
}
|
|
1098
1293
|
|
|
1099
1294
|
/**
|
|
1100
1295
|
* KanbanViewAdapter - ViewAdapter implementation for Kanban board
|
|
@@ -1242,7 +1437,7 @@ declare class KanbanViewAdapter extends BaseViewAdapter<ViewBoardData> {
|
|
|
1242
1437
|
*/
|
|
1243
1438
|
declare function createKanbanView(config?: KanbanViewConfig): KanbanViewAdapter;
|
|
1244
1439
|
|
|
1245
|
-
declare function KanbanBoard({ board, callbacks, onCardClick, renderProps, config, availableUsers, className, style, isLoading, error, children, availableTags, onCreateTag, attachmentsByCard, onUploadAttachments, onDeleteAttachment, comments, onAddComment, currentUser, mentionableUsers, onTaskOpen, onUploadCommentAttachments, }: KanbanBoardProps & {
|
|
1440
|
+
declare function KanbanBoard({ board, callbacks, onCardClick, renderProps, config, availableUsers, className, style, isLoading, error, children, availableTags, onCreateTag, attachmentsByCard, onUploadAttachments, onDeleteAttachment, comments, onAddComment, currentUser, mentionableUsers, onTaskOpen, onUploadCommentAttachments, enableTimeTracking, timeTrackingSummary, timeEntries, timerState, onLogTime, onUpdateEstimate, onStartTimer, onStopTimer, onDiscardTimer, }: KanbanBoardProps & {
|
|
1246
1441
|
children?: React.ReactNode;
|
|
1247
1442
|
}): react_jsx_runtime.JSX.Element;
|
|
1248
1443
|
|
|
@@ -2066,11 +2261,105 @@ interface TaskDetailModalProps {
|
|
|
2066
2261
|
mentionableUsers?: MentionUser[];
|
|
2067
2262
|
/** v0.17.422: Upload comment attachments callback */
|
|
2068
2263
|
onUploadCommentAttachments?: (files: File[]) => Promise<CommentAttachment[]>;
|
|
2264
|
+
/** Enable time tracking section */
|
|
2265
|
+
enableTimeTracking?: boolean;
|
|
2266
|
+
/** Time tracking summary for current task */
|
|
2267
|
+
timeTrackingSummary?: TimeTrackingSummary;
|
|
2268
|
+
/** Time entries for current task */
|
|
2269
|
+
timeEntries?: TimeEntry[];
|
|
2270
|
+
/** Whether timer is running for this task */
|
|
2271
|
+
isTimerRunning?: boolean;
|
|
2272
|
+
/** Timer elapsed seconds */
|
|
2273
|
+
timerElapsedSeconds?: number;
|
|
2274
|
+
/** Log time callback */
|
|
2275
|
+
onTimeLog?: (taskId: string, input: TimeLogInput) => Promise<void>;
|
|
2276
|
+
/** Update estimate callback */
|
|
2277
|
+
onEstimateUpdate?: (taskId: string, minutes: number | null) => Promise<void>;
|
|
2278
|
+
/** Update sold effort callback (v1.2.0: Commercial time tracking) */
|
|
2279
|
+
onSoldEffortUpdate?: (taskId: string, minutes: number | null) => Promise<void>;
|
|
2280
|
+
/** Start timer callback */
|
|
2281
|
+
onTimerStart?: (taskId: string) => void;
|
|
2282
|
+
/** Stop timer callback */
|
|
2283
|
+
onTimerStop?: (taskId: string) => void;
|
|
2284
|
+
/** Discard timer callback */
|
|
2285
|
+
onTimerDiscard?: (taskId: string) => void;
|
|
2069
2286
|
}
|
|
2070
2287
|
/**
|
|
2071
2288
|
* TaskDetailModal - ClickUp style full-screen task detail
|
|
2072
2289
|
*/
|
|
2073
|
-
declare function TaskDetailModal({ task, isOpen, onClose, onTaskUpdate, onCardUpdate, theme, locale, availableUsers, availableTags, onCreateTag, attachments, onUploadAttachments, onDeleteAttachment, availableTasks, comments, onAddComment, currentUser, mentionableUsers, onUploadCommentAttachments, }: TaskDetailModalProps): react_jsx_runtime.JSX.Element | null;
|
|
2290
|
+
declare function TaskDetailModal({ task, isOpen, onClose, onTaskUpdate, onCardUpdate, theme, locale, availableUsers, availableTags, onCreateTag, attachments, onUploadAttachments, onDeleteAttachment, availableTasks, comments, onAddComment, currentUser, mentionableUsers, onUploadCommentAttachments, enableTimeTracking, timeTrackingSummary, timeEntries: _timeEntries, isTimerRunning, timerElapsedSeconds, onTimeLog, onEstimateUpdate, onSoldEffortUpdate, onTimerStart, onTimerStop, onTimerDiscard: _onTimerDiscard, }: TaskDetailModalProps): react_jsx_runtime.JSX.Element | null;
|
|
2291
|
+
|
|
2292
|
+
interface TimePillProps {
|
|
2293
|
+
/** Time tracking summary data */
|
|
2294
|
+
summary: TimeTrackingSummary;
|
|
2295
|
+
/** Size variant */
|
|
2296
|
+
size?: 'sm' | 'md' | 'lg';
|
|
2297
|
+
/** Show estimate in pill */
|
|
2298
|
+
showEstimate?: boolean;
|
|
2299
|
+
/** Click handler (e.g., to open time popover) */
|
|
2300
|
+
onClick?: () => void;
|
|
2301
|
+
/** Additional class names */
|
|
2302
|
+
className?: string;
|
|
2303
|
+
}
|
|
2304
|
+
declare function TimePill({ summary, size, showEstimate, onClick, className, }: TimePillProps): react_jsx_runtime.JSX.Element | null;
|
|
2305
|
+
|
|
2306
|
+
interface TimePopoverProps {
|
|
2307
|
+
/** Task ID */
|
|
2308
|
+
taskId: string;
|
|
2309
|
+
/** Time tracking summary */
|
|
2310
|
+
summary: TimeTrackingSummary;
|
|
2311
|
+
/** Recent time entries */
|
|
2312
|
+
entries?: TimeEntry[];
|
|
2313
|
+
/** Whether timer is running for this task */
|
|
2314
|
+
isTimerRunning?: boolean;
|
|
2315
|
+
/** Timer elapsed seconds (when running) */
|
|
2316
|
+
timerElapsedSeconds?: number;
|
|
2317
|
+
/** Callback to log time */
|
|
2318
|
+
onLogTime?: (input: TimeLogInput) => Promise<void>;
|
|
2319
|
+
/** Callback to update estimate */
|
|
2320
|
+
onUpdateEstimate?: (minutes: number | null) => Promise<void>;
|
|
2321
|
+
/** Callback to start timer */
|
|
2322
|
+
onStartTimer?: () => void;
|
|
2323
|
+
/** Callback to stop timer */
|
|
2324
|
+
onStopTimer?: () => void;
|
|
2325
|
+
/** Callback to discard timer */
|
|
2326
|
+
onDiscardTimer?: () => void;
|
|
2327
|
+
/** Close popover callback */
|
|
2328
|
+
onClose?: () => void;
|
|
2329
|
+
/** Position anchor element */
|
|
2330
|
+
anchorEl?: HTMLElement | null;
|
|
2331
|
+
/** Additional class names */
|
|
2332
|
+
className?: string;
|
|
2333
|
+
}
|
|
2334
|
+
declare function TimePopover({ taskId: _taskId, summary, entries, isTimerRunning, timerElapsedSeconds, onLogTime, onUpdateEstimate, onStartTimer, onStopTimer, onDiscardTimer, onClose, className, }: TimePopoverProps): react_jsx_runtime.JSX.Element;
|
|
2335
|
+
|
|
2336
|
+
interface HealthBarProps {
|
|
2337
|
+
/** Time tracking summary data */
|
|
2338
|
+
summary: TimeTrackingSummary;
|
|
2339
|
+
/** Show percentage label */
|
|
2340
|
+
showLabel?: boolean;
|
|
2341
|
+
/** Size variant */
|
|
2342
|
+
size?: 'sm' | 'md' | 'lg';
|
|
2343
|
+
/** Additional class names */
|
|
2344
|
+
className?: string;
|
|
2345
|
+
}
|
|
2346
|
+
declare function HealthBar({ summary, showLabel, size, className, }: HealthBarProps): react_jsx_runtime.JSX.Element;
|
|
2347
|
+
|
|
2348
|
+
interface ProfitabilityReportProps {
|
|
2349
|
+
/** Report data */
|
|
2350
|
+
report: ProfitabilityReport$1 | null;
|
|
2351
|
+
/** Loading state */
|
|
2352
|
+
isLoading?: boolean;
|
|
2353
|
+
/** Locale for i18n */
|
|
2354
|
+
locale?: 'en' | 'es';
|
|
2355
|
+
/** Theme: 'dark' | 'light' */
|
|
2356
|
+
theme?: 'dark' | 'light';
|
|
2357
|
+
/** Additional class names */
|
|
2358
|
+
className?: string;
|
|
2359
|
+
/** Callback when task is clicked */
|
|
2360
|
+
onTaskClick?: (taskId: string) => void;
|
|
2361
|
+
}
|
|
2362
|
+
declare function ProfitabilityReport({ report, isLoading, locale, theme, className, onTaskClick, }: ProfitabilityReportProps): react_jsx_runtime.JSX.Element;
|
|
2074
2363
|
|
|
2075
2364
|
/**
|
|
2076
2365
|
* GanttBoardRef - Imperative API for GanttBoard component
|
|
@@ -2500,6 +2789,7 @@ interface TaskFormData {
|
|
|
2500
2789
|
dependencies?: string[];
|
|
2501
2790
|
tags?: TaskTag[];
|
|
2502
2791
|
pendingFiles?: File[];
|
|
2792
|
+
effortMinutes?: number | null;
|
|
2503
2793
|
}
|
|
2504
2794
|
interface TaskFormModalProps {
|
|
2505
2795
|
isOpen: boolean;
|
|
@@ -3157,10 +3447,11 @@ declare function useGanttI18n(): GanttTranslations;
|
|
|
3157
3447
|
type SortDirection = 'asc' | 'desc';
|
|
3158
3448
|
/**
|
|
3159
3449
|
* Column types supported in ListView
|
|
3160
|
-
* - Standard: name, status, priority, assignees, startDate, endDate, progress, tags, estimatedTime, elapsedTime
|
|
3450
|
+
* - Standard: name, status, priority, assignees, startDate, endDate, progress, tags, estimatedTime, quotedTime, elapsedTime
|
|
3451
|
+
* - v1.2.0: effortMinutes, timeLoggedMinutes, soldEffortMinutes
|
|
3161
3452
|
* - Custom: text, number, date, dropdown, checkbox
|
|
3162
3453
|
*/
|
|
3163
|
-
type ColumnType = 'name' | 'status' | 'priority' | 'assignees' | 'startDate' | 'endDate' | 'progress' | 'tags' | 'estimatedTime' | 'elapsedTime' | 'text' | 'number' | 'date' | 'dropdown' | 'checkbox';
|
|
3454
|
+
type ColumnType = 'name' | 'status' | 'priority' | 'assignees' | 'startDate' | 'endDate' | 'progress' | 'tags' | 'estimatedTime' | 'quotedTime' | 'elapsedTime' | 'effortMinutes' | 'timeLoggedMinutes' | 'soldEffortMinutes' | 'text' | 'number' | 'date' | 'dropdown' | 'checkbox';
|
|
3164
3455
|
/**
|
|
3165
3456
|
* Table column configuration for dynamic columns
|
|
3166
3457
|
*/
|
|
@@ -3363,6 +3654,7 @@ interface ListViewTranslations {
|
|
|
3363
3654
|
priority: string;
|
|
3364
3655
|
actions: string;
|
|
3365
3656
|
estimatedTime?: string;
|
|
3657
|
+
quotedTime?: string;
|
|
3366
3658
|
elapsedTime?: string;
|
|
3367
3659
|
tags?: string;
|
|
3368
3660
|
};
|
|
@@ -3840,12 +4132,30 @@ interface CalendarBoardProps {
|
|
|
3840
4132
|
color?: string;
|
|
3841
4133
|
}>;
|
|
3842
4134
|
onTaskOpen?: (taskId: string) => void;
|
|
4135
|
+
/** Enable time tracking features in TaskDetailModal */
|
|
4136
|
+
enableTimeTracking?: boolean;
|
|
4137
|
+
/** Time tracking summary for the currently open task */
|
|
4138
|
+
timeTrackingSummary?: TimeTrackingSummary;
|
|
4139
|
+
/** Time entries for the currently open task */
|
|
4140
|
+
timeEntries?: TimeEntry[];
|
|
4141
|
+
/** Current timer state */
|
|
4142
|
+
timerState?: TimerState;
|
|
4143
|
+
/** Callback to log time manually */
|
|
4144
|
+
onLogTime?: (taskId: string, input: TimeLogInput) => Promise<void>;
|
|
4145
|
+
/** Callback to update task estimate */
|
|
4146
|
+
onUpdateEstimate?: (taskId: string, minutes: number | null) => Promise<void>;
|
|
4147
|
+
/** Callback to start timer */
|
|
4148
|
+
onStartTimer?: (taskId: string) => void;
|
|
4149
|
+
/** Callback to stop timer and save time */
|
|
4150
|
+
onStopTimer?: (taskId: string) => void;
|
|
4151
|
+
/** Callback to discard timer without saving */
|
|
4152
|
+
onDiscardTimer?: (taskId: string) => void;
|
|
3843
4153
|
}
|
|
3844
4154
|
|
|
3845
4155
|
/**
|
|
3846
4156
|
* Main CalendarBoard Component
|
|
3847
4157
|
*/
|
|
3848
|
-
declare function CalendarBoard({ tasks, config, callbacks, initialDate, isLoading, error, className, style, availableTags, onCreateTag, attachmentsByTask, comments, onAddComment, currentUser, mentionableUsers, onUploadCommentAttachments, onTaskOpen, }: CalendarBoardProps): react_jsx_runtime.JSX.Element;
|
|
4158
|
+
declare function CalendarBoard({ tasks, config, callbacks, initialDate, isLoading, error, className, style, availableTags, onCreateTag, attachmentsByTask, comments, onAddComment, currentUser, mentionableUsers, onUploadCommentAttachments, onTaskOpen, enableTimeTracking, timeTrackingSummary, timeEntries, timerState, onLogTime, onUpdateEstimate, onStartTimer, onStopTimer, onDiscardTimer, }: CalendarBoardProps): react_jsx_runtime.JSX.Element;
|
|
3849
4159
|
|
|
3850
4160
|
/**
|
|
3851
4161
|
* CalendarBoard Themes
|
|
@@ -6027,4 +6337,4 @@ declare const themes: Record<ThemeName, Theme>;
|
|
|
6027
6337
|
*/
|
|
6028
6338
|
declare const defaultTheme: ThemeName;
|
|
6029
6339
|
|
|
6030
|
-
export { type AICallbacks, type AICommandResult, type GanttTask as AIGanttTask, type AIMessage, type AIModelKey, type AIOperation, AIUsageDashboard, type AIUsageDashboardProps, AI_FEATURES, AI_MODELS, type Activity, type ActivityType, AddCardButton, type AddCardButtonProps, type AddCardData, AddColumnButton, type AddColumnButtonProps, type AssigneeSuggestion, type Attachment, AttachmentUploader, type AttachmentUploaderProps, type AvailableUser, type Board, type BoardCallbacks, type BoardConfig, BoardProvider, type BoardProviderProps, type BorderRadiusToken, BulkOperationsToolbar, type BulkOperationsToolbarProps, BurnDownChart, type BurnDownChartProps, type BurnDownDataPoint, CUSTOM_FIELD_TYPES, CalendarBoard, type CalendarBoardProps, type CalendarCallbacks, type CalendarConfig, type CalendarDay, type CalendarEvent, type CalendarPermissions, type CalendarSupportedLocale, type CalendarTheme, type CalendarThemeName, type CalendarTranslations, type CalendarViewMode, Card, CardDetailModal, type CardDetailModalProps, CardDetailModalV2, type CardDetailModalV2Props, type CardFilter, type CardFilters, CardHistoryReplay, type CardHistoryReplayProps, CardHistoryTimeline, type CardHistoryTimelineProps, type CardProps, CardRelationshipsGraph, type CardRelationshipsGraphProps, type CardSort, type CardSortKey, CardStack, type CardStackProps, type CardStack$1 as CardStackType, type CardStatus, type CardTemplate, CardTemplateSelector, type CardTemplateSelectorProps, type Card$1 as CardType, CircuitBreaker, Column, ColumnManager, type ColumnProps, type Column$1 as ColumnType, CommandPalette, type CommandPaletteProps, type Comment, type CommentAttachment, ConfigMenu, type ConfigMenuProps, ContextMenu, type ContextMenuAction, type ContextMenuState, type CustomFieldDefinition, type CustomFieldValue, DEFAULT_SHORTCUTS, DEFAULT_TABLE_COLUMNS, DEFAULT_TEMPLATES, type DateFilter, DateRangePicker, type DateRangePickerProps, DependenciesSelector, type DependenciesSelectorProps, DependencyLine, type DesignTokens, DistributionCharts, type DistributionChartsProps, type DistributionDataPoint, type DragData, type DropData, type DurationToken, type EasingToken, EditableColumnTitle, type EditableColumnTitleProps, ErrorBoundary, type ErrorBoundaryProps, type ExportFormat, ExportImportModal, type ExportImportModalProps, type ExportOptions, FilterBar, type FilterBarProps, type FilterState, type FlattenedTask, type FontSizeToken, type FontWeightToken, GANTT_AI_SYSTEM_PROMPT, GanttAIAssistant, type GanttAIAssistantConfig, type Assignee as GanttAssignee, GanttBoard, type GanttConfig as GanttBoardConfig, type GanttBoardRef, type GanttColumn, type ColumnType$1 as GanttColumnType, GanttI18nContext, Milestone as GanttMilestone, type GanttPermissions, type Task as GanttTask, type GanttTemplates, type Theme$1 as GanttTheme, type GanttTheme as GanttThemeConfig, GanttToolbar, type GanttTranslations, GenerateGanttTasksDialog, type GenerateGanttTasksDialogProps, GeneratePlanModal, type GeneratePlanModalProps, type GeneratedPlan, type GeneratedTasksResponse, type GroupByOption, GroupBySelector, type GroupBySelectorProps, type IPluginManager, type ImportResult, type Insight, type InsightSeverity, type InsightType, KanbanBoard, type KanbanBoardProps, KanbanToolbar, type KanbanToolbarProps, KanbanViewAdapter, type KanbanViewConfig, type KeyboardAction, type KeyboardShortcut, KeyboardShortcutsHelp, type KeyboardShortcutsHelpProps, type LineHeightToken, type ListColumn, type ColumnType as ListColumnType, type ListFilter, type ListSort, type ListSortColumn, ListView, type ListViewCallbacks, type ListViewConfig, type ListViewPermissions, type ListViewProps, type ListViewSupportedLocale, type ListViewTheme, type ListViewThemeName, type ListViewTranslations, MenuIcons, type OpacityToken, type PendingFile, type PersistHistoryConfig, type Plugin, type PluginContext, type PluginHooks, PluginManager, type Priority, PrioritySelector, type PrioritySelectorProps, RATE_LIMITS, type RenderProps, type RetryOptions, type RetryResult, STANDARD_FIELDS, type ShadowToken, type SortBy, type SortDirection, type SortOrder, type SortState, type SpacingToken, type StackSuggestion, type StackingConfig, type StackingStrategy, type Subtask, type SupportedLocale, type Swimlane, SwimlaneBoardView, type SwimlaneBoardViewProps, type SwimlaneConfig, type TableColumn, TagBadge, TagList, TagPicker, TaskBar, type TaskComment, TaskDetailModal, type TaskDetailModalProps, type TaskFilterType, type TaskFormData, TaskFormModal, type TaskFormModalProps, TaskGrid, type TaskPriority, type TaskTag, type Theme, type ThemeColors, type ThemeContextValue, ThemeModal, type ThemeModalProps, type ThemeName, ThemeProvider, ThemeSwitcher, type TimeScale, Timeline, type ThemeColors$1 as TokenThemeColors, type TokenValue, type UsageStats, type UseAIOptions, type UseAIReturn, type UseBoardReturn as UseBoardCoreReturn, type UseBoardOptions, type UseBoardReturn$1 as UseBoardReturn, type UseCardStackingOptions, type UseCardStackingResult, type UseDragStateReturn, type UseFiltersOptions, type UseFiltersReturn, type UseKanbanStateOptions, type UseKanbanStateReturn, type UseKeyboardShortcutsOptions, type UseKeyboardShortcutsReturn, type UseMultiSelectReturn, type UseSelectionStateReturn, type User$1 as User, UserAssignmentSelector, type UserAssignmentSelectorProps, VelocityChart, type VelocityChartProps, type VelocityDataPoint, VirtualGrid, type VirtualGridProps, VirtualList, type VirtualListProps, type WeekDay, type ZIndexToken, aiUsageTracker, borderRadius, calculatePosition, darkTheme$2 as calendarDarkTheme, en as calendarEnTranslations, es as calendarEsTranslations, lightTheme$2 as calendarLightTheme, neutralTheme$2 as calendarNeutralTheme, calendarThemes, calendarTranslations, cardToGanttTask, cardsToGanttTasks, cn, createKanbanView, createRetryWrapper, darkTheme, darkTheme$1 as darkTokenTheme, defaultTheme, designTokens, duration, easing, exportTokensToCSS, findTaskByName, fontSize, fontWeight, formatCost, en$2 as ganttEnTranslations, es$2 as ganttEsTranslations, ganttTaskToCardUpdate, themes$1 as ganttThemes, gantt as ganttTokens, translations as ganttTranslations, ganttUtils, generateCSSVariables, generateCompleteCSS, generateInitialPositions, generateTasksContext, generateThemeVariables, getCalendarTheme, getCalendarTranslations, getListViewTheme, getListViewTranslations, getMonthNames, getToken, getTranslations, getWeekdayNames, kanban as kanbanTokens, lightTheme, lightTheme$1 as lightTokenTheme, lineHeight, darkTheme$3 as listViewDarkTheme, en$1 as listViewEnTranslations, es$1 as listViewEsTranslations, lightTheme$3 as listViewLightTheme, neutralTheme$3 as listViewNeutralTheme, listViewThemes, listViewTranslations, mergeCalendarTranslations, mergeListViewTranslations, mergeTranslations, neutralTheme, neutralTheme$1 as neutralTokenTheme, opacity, parseLocalCommand, parseNaturalDate, parseNaturalDuration, parseProgress, parseStatus, pluginManager, retrySyncOperation, retryWithBackoff, shadows, shouldVirtualizeGrid, spacing, themes, useAI, useBoard$1 as useBoard, useBoard as useBoardCore, useBoardStore, useCardStacking, useDragState, useFilteredCards, useFilters, useGanttI18n, useKanbanState, useKeyboardShortcuts, useMultiSelect, useSelectionState, useSortedCards, useTheme, useVirtualGrid, useVirtualList, validateAIResponse, withErrorBoundary, wouldCreateCircularDependency, zIndex };
|
|
6340
|
+
export { type AICallbacks, type AICommandResult, type GanttTask as AIGanttTask, type AIMessage, type AIModelKey, type AIOperation, AIUsageDashboard, type AIUsageDashboardProps, AI_FEATURES, AI_MODELS, type Activity, type ActivityType, AddCardButton, type AddCardButtonProps, type AddCardData, AddColumnButton, type AddColumnButtonProps, type AssigneeSuggestion, type Attachment, AttachmentUploader, type AttachmentUploaderProps, type AvailableUser, type Board, type BoardCallbacks, type BoardConfig, BoardProvider, type BoardProviderProps, type BorderRadiusToken, BulkOperationsToolbar, type BulkOperationsToolbarProps, BurnDownChart, type BurnDownChartProps, type BurnDownDataPoint, CUSTOM_FIELD_TYPES, CalendarBoard, type CalendarBoardProps, type CalendarCallbacks, type CalendarConfig, type CalendarDay, type CalendarEvent, type CalendarPermissions, type CalendarSupportedLocale, type CalendarTheme, type CalendarThemeName, type CalendarTranslations, type CalendarViewMode, Card, CardDetailModal, type CardDetailModalProps, CardDetailModalV2, type CardDetailModalV2Props, type CardFilter, type CardFilters, CardHistoryReplay, type CardHistoryReplayProps, CardHistoryTimeline, type CardHistoryTimelineProps, type CardProps, CardRelationshipsGraph, type CardRelationshipsGraphProps, type CardSort, type CardSortKey, CardStack, type CardStackProps, type CardStack$1 as CardStackType, type CardStatus, type CardTemplate, CardTemplateSelector, type CardTemplateSelectorProps, type CardTimeProps, type Card$1 as CardType, CircuitBreaker, Column, ColumnManager, type ColumnProps, type Column$1 as ColumnType, CommandPalette, type CommandPaletteProps, type Comment, type CommentAttachment, ConfigMenu, type ConfigMenuProps, ContextMenu, type ContextMenuAction, type ContextMenuState, type CustomFieldDefinition, type CustomFieldValue, DEFAULT_SHORTCUTS, DEFAULT_TABLE_COLUMNS, DEFAULT_TEMPLATES, type DateFilter, DateRangePicker, type DateRangePickerProps, DependenciesSelector, type DependenciesSelectorProps, DependencyLine, type DesignTokens, DistributionCharts, type DistributionChartsProps, type DistributionDataPoint, type DragData, type DropData, type DurationToken, type EasingToken, EditableColumnTitle, type EditableColumnTitleProps, ErrorBoundary, type ErrorBoundaryProps, type ExportFormat, ExportImportModal, type ExportImportModalProps, type ExportOptions, FilterBar, type FilterBarProps, type FilterState, type FlattenedTask, type FontSizeToken, type FontWeightToken, GANTT_AI_SYSTEM_PROMPT, GanttAIAssistant, type GanttAIAssistantConfig, type Assignee as GanttAssignee, GanttBoard, type GanttConfig as GanttBoardConfig, type GanttBoardRef, type GanttColumn, type ColumnType$1 as GanttColumnType, GanttI18nContext, Milestone as GanttMilestone, type GanttPermissions, type Task as GanttTask, type GanttTemplates, type Theme$1 as GanttTheme, type GanttTheme as GanttThemeConfig, GanttToolbar, type GanttTranslations, GenerateGanttTasksDialog, type GenerateGanttTasksDialogProps, GeneratePlanModal, type GeneratePlanModalProps, type GeneratedPlan, type GeneratedTasksResponse, type GroupByOption, GroupBySelector, type GroupBySelectorProps, HealthBar, type HealthBarProps, type IPluginManager, type ImportResult, type Insight, type InsightSeverity, type InsightType, KanbanBoard, type KanbanBoardProps, KanbanToolbar, type KanbanToolbarProps, KanbanViewAdapter, type KanbanViewConfig, type KeyboardAction, type KeyboardShortcut, KeyboardShortcutsHelp, type KeyboardShortcutsHelpProps, type LineHeightToken, type ListColumn, type ColumnType as ListColumnType, type ListFilter, type ListSort, type ListSortColumn, ListView, type ListViewCallbacks, type ListViewConfig, type ListViewPermissions, type ListViewProps, type ListViewSupportedLocale, type ListViewTheme, type ListViewThemeName, type ListViewTranslations, MenuIcons, type OpacityToken, type PendingFile, type PersistHistoryConfig, type Plugin, type PluginContext, type PluginHooks, PluginManager, type Priority, PrioritySelector, type PrioritySelectorProps, ProfitabilityReport, type ProfitabilityReportProps, RATE_LIMITS, type RenderProps, type RetryOptions, type RetryResult, STANDARD_FIELDS, type ShadowToken, type SortBy, type SortDirection, type SortOrder, type SortState, type SpacingToken, type StackSuggestion, type StackingConfig, type StackingStrategy, type Subtask, type SupportedLocale, type Swimlane, SwimlaneBoardView, type SwimlaneBoardViewProps, type SwimlaneConfig, type TableColumn, TagBadge, TagList, TagPicker, TaskBar, type TaskComment, TaskDetailModal, type TaskDetailModalProps, type TaskFilterType, type TaskFormData, TaskFormModal, type TaskFormModalProps, TaskGrid, type TaskPriority, type TaskTag, type Theme, type ThemeColors, type ThemeContextValue, ThemeModal, type ThemeModalProps, type ThemeName, ThemeProvider, ThemeSwitcher, type TimeEntry, type TimeLogInput, type TimeLogSource, TimePill, type TimePillProps, TimePopover, type TimePopoverProps, type TimeScale, type TimeTrackingBoardProps, type TimeTrackingCallbacks, type TimeTrackingSummary, Timeline, type TimerState, type ThemeColors$1 as TokenThemeColors, type TokenValue, type UsageStats, type UseAIOptions, type UseAIReturn, type UseBoardReturn as UseBoardCoreReturn, type UseBoardOptions, type UseBoardReturn$1 as UseBoardReturn, type UseCardStackingOptions, type UseCardStackingResult, type UseDragStateReturn, type UseFiltersOptions, type UseFiltersReturn, type UseKanbanStateOptions, type UseKanbanStateReturn, type UseKeyboardShortcutsOptions, type UseKeyboardShortcutsReturn, type UseMultiSelectReturn, type UseSelectionStateReturn, type User$1 as User, UserAssignmentSelector, type UserAssignmentSelectorProps, VelocityChart, type VelocityChartProps, type VelocityDataPoint, VirtualGrid, type VirtualGridProps, VirtualList, type VirtualListProps, type WeekDay, type ZIndexToken, aiUsageTracker, borderRadius, calculatePosition, darkTheme$2 as calendarDarkTheme, en as calendarEnTranslations, es as calendarEsTranslations, lightTheme$2 as calendarLightTheme, neutralTheme$2 as calendarNeutralTheme, calendarThemes, calendarTranslations, cardToGanttTask, cardsToGanttTasks, cn, createKanbanView, createRetryWrapper, darkTheme, darkTheme$1 as darkTokenTheme, defaultTheme, designTokens, duration, easing, exportTokensToCSS, findTaskByName, fontSize, fontWeight, formatCost, en$2 as ganttEnTranslations, es$2 as ganttEsTranslations, ganttTaskToCardUpdate, themes$1 as ganttThemes, gantt as ganttTokens, translations as ganttTranslations, ganttUtils, generateCSSVariables, generateCompleteCSS, generateInitialPositions, generateTasksContext, generateThemeVariables, getCalendarTheme, getCalendarTranslations, getListViewTheme, getListViewTranslations, getMonthNames, getToken, getTranslations, getWeekdayNames, kanban as kanbanTokens, lightTheme, lightTheme$1 as lightTokenTheme, lineHeight, darkTheme$3 as listViewDarkTheme, en$1 as listViewEnTranslations, es$1 as listViewEsTranslations, lightTheme$3 as listViewLightTheme, neutralTheme$3 as listViewNeutralTheme, listViewThemes, listViewTranslations, mergeCalendarTranslations, mergeListViewTranslations, mergeTranslations, neutralTheme, neutralTheme$1 as neutralTokenTheme, opacity, parseLocalCommand, parseNaturalDate, parseNaturalDuration, parseProgress, parseStatus, pluginManager, retrySyncOperation, retryWithBackoff, shadows, shouldVirtualizeGrid, spacing, themes, useAI, useBoard$1 as useBoard, useBoard as useBoardCore, useBoardStore, useCardStacking, useDragState, useFilteredCards, useFilters, useGanttI18n, useKanbanState, useKeyboardShortcuts, useMultiSelect, useSelectionState, useSortedCards, useTheme, useVirtualGrid, useVirtualList, validateAIResponse, withErrorBoundary, wouldCreateCircularDependency, zIndex };
|