gantt-lib 0.91.0 → 0.100.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.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  import React$1, { ReactNode } from 'react';
2
- import { T as Task$1, R as ResourceTimelineItem, V as ValidationResult, a as TaskDateChangeMode, b as ResourcePlannerChartProps, c as ResourceTimelineResource } from './index-CKJZfeDv.mjs';
3
- export { D as DAY_MS, d as DependencyError, G as GanttChartMode, e as GanttDateRange, f as GridConfig, g as GridLine, L as LinkType, M as MonthSpan, h as ResourceTimelineMove, i as ResourceTimelineResourceMenuCommand, j as TaskBarGeometry, W as WeekendBlock, k as alignToWorkingDay, l as areTasksHierarchicallyRelated, m as buildAdjacencyList, n as buildTaskRangeFromEnd, o as buildTaskRangeFromStart, p as calculateSuccessorDate, q as cascadeByLinks, r as clampTaskRangeForIncomingFS, s as computeLagFromDates, t as computeParentDates, u as computeParentProgress, v as detectCycles, w as findParentId, x as getAllDependencyEdges, y as getAllDescendants, z as getBusinessDayOffset, A as getChildren, B as getDependencyLag, C as getSuccessorChain, E as getTaskDuration, F as getTransitiveCascadeChain, H as isAncestorTask, I as isTaskParent, J as moveTaskRange, K as moveTaskWithCascade, N as normalizeDependencyLag, O as normalizePredecessorDates, P as normalizeTaskDependencyLags, Q as normalizeUTCDate, S as parseDateOnly, U as recalculateIncomingLags, X as recalculateProjectSchedule, Y as recalculateTaskFromDependencies, Z as reflowTasksOnModeSwitch, _ as removeDependenciesBetweenTasks, $ as resizeTaskWithCascade, a0 as shiftBusinessDayOffset, a1 as universalCascade, a2 as validateDependencies } from './index-CKJZfeDv.mjs';
2
+ import { T as Task$1, R as ResourceTimelineItem, V as ValidationResult, a as TaskDateChangeMode, b as ResourcePlannerChartProps, c as ResourceTimelineResource } from './index-CCzxqxfE.mjs';
3
+ export { D as DAY_MS, d as DependencyError, G as GanttChartMode, e as GanttDateRange, f as GridConfig, g as GridLine, L as LinkType, M as MonthSpan, h as ResourceTimelineMove, i as ResourceTimelineResourceMenuCommand, j as TaskBarGeometry, W as WeekendBlock, k as alignToWorkingDay, l as areTasksHierarchicallyRelated, m as buildAdjacencyList, n as buildTaskRangeFromEnd, o as buildTaskRangeFromStart, p as calculateSuccessorDate, q as cascadeByLinks, r as clampTaskRangeForIncomingFS, s as computeLagFromDates, t as computeParentDates, u as computeParentProgress, v as detectCycles, w as findParentId, x as getAllDependencyEdges, y as getAllDescendants, z as getBusinessDayOffset, A as getChildren, B as getDependencyLag, C as getSuccessorChain, E as getTaskDuration, F as getTransitiveCascadeChain, H as isAncestorTask, I as isTaskParent, J as moveTaskRange, K as moveTaskWithCascade, N as normalizeDependencyLag, O as normalizePredecessorDates, P as normalizeTaskDependencyLags, Q as normalizeUTCDate, S as parseDateOnly, U as recalculateIncomingLags, X as recalculateProjectSchedule, Y as recalculateTaskFromDependencies, Z as reflowTasksOnModeSwitch, _ as removeDependenciesBetweenTasks, $ as resizeTaskWithCascade, a0 as shiftBusinessDayOffset, a1 as universalCascade, a2 as validateDependencies } from './index-CCzxqxfE.mjs';
4
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
5
5
  import * as RadixPopover from '@radix-ui/react-popover';
6
6
 
@@ -314,6 +314,7 @@ interface TaskListColumnContext<TTask extends Task> {
314
314
  task: TTask;
315
315
  rowIndex: number;
316
316
  isEditing: boolean;
317
+ editStartValue?: string;
317
318
  openEditor: () => void;
318
319
  closeEditor: () => void;
319
320
  updateTask: (patch: Partial<TTask>) => void;
@@ -323,12 +324,52 @@ type TaskListColumn<TTask extends Task> = TaskListColumnAnchor & {
323
324
  header: ReactNode;
324
325
  width?: number;
325
326
  minWidth?: number;
327
+ align?: 'left' | 'center' | 'right';
326
328
  editable?: boolean;
327
329
  renderCell: (ctx: TaskListColumnContext<TTask>) => ReactNode;
328
330
  renderEditor?: (ctx: TaskListColumnContext<TTask>) => ReactNode;
329
331
  meta?: Record<string, unknown>;
330
332
  };
331
333
 
334
+ interface TableMatrixColumnGroup {
335
+ id: string;
336
+ header: React$1.ReactNode;
337
+ width?: number;
338
+ className?: string;
339
+ }
340
+ interface TableMatrixColumn<TTask extends Task = Task> {
341
+ id: string;
342
+ header: React$1.ReactNode;
343
+ width: number;
344
+ groupId?: string;
345
+ align?: 'left' | 'center' | 'right';
346
+ className?: string;
347
+ headerClassName?: string;
348
+ cellClassName?: string | ((task: TTask) => string | undefined);
349
+ renderCell: (task: TTask) => React$1.ReactNode;
350
+ }
351
+ interface TableMatrixCellClickContext<TTask extends Task = Task> {
352
+ task: TTask;
353
+ column: TableMatrixColumn<TTask>;
354
+ rowIndex: number;
355
+ columnIndex: number;
356
+ event: React$1.MouseEvent<HTMLDivElement>;
357
+ }
358
+ interface TableMatrixProps<TTask extends Task = Task> {
359
+ tasks: TTask[];
360
+ allTasks?: TTask[];
361
+ columns: Array<TableMatrixColumn<TTask>>;
362
+ columnGroups?: Array<TableMatrixColumnGroup>;
363
+ rowHeight: number;
364
+ headerHeight: number;
365
+ selectedTaskId?: string | null;
366
+ onTaskSelect?: (taskId: string | null) => void;
367
+ onCellClick?: (context: TableMatrixCellClickContext<TTask>) => void;
368
+ highlightedTaskIds?: Set<string>;
369
+ filterMode?: 'highlight' | 'hide';
370
+ }
371
+ declare function TableMatrix<TTask extends Task = Task>({ tasks, allTasks, columns, columnGroups, rowHeight, headerHeight, selectedTaskId, onTaskSelect, onCellClick, highlightedTaskIds, filterMode, }: TableMatrixProps<TTask>): react_jsx_runtime.JSX.Element;
372
+
332
373
  /**
333
374
  * Task data structure for Gantt chart
334
375
  */
@@ -420,13 +461,9 @@ interface TaskListMenuCommand<TTask extends Task = Task> {
420
461
  /** Close the menu after click (default: true) */
421
462
  closeOnSelect?: boolean;
422
463
  }
423
- interface GanttModeProps<TTask extends Task = Task> {
424
- /** Omitted mode keeps the historical task-based gantt behavior. */
425
- mode?: 'gantt';
464
+ interface TaskChartSharedProps<TTask extends Task = Task> {
426
465
  /** Array of tasks to display */
427
466
  tasks: TTask[];
428
- /** Width of each day column in pixels (default: 40) */
429
- dayWidth?: number;
430
467
  /** Height of each task row in pixels (default: 40) */
431
468
  rowHeight?: number;
432
469
  /** Height of the header row in pixels (default: 40) */
@@ -511,12 +548,39 @@ interface GanttModeProps<TTask extends Task = Task> {
511
548
  hiddenTaskListColumns?: readonly TaskListColumnId[];
512
549
  /** Additional commands rendered in the TaskList row three-dots menu */
513
550
  taskListMenuCommands?: TaskListMenuCommand<TTask>[];
551
+ /** Hide row action controls in the TaskList for table-like read/edit presentations. */
552
+ hideTaskListRowActions?: boolean;
553
+ /** Global number of text lines the row height should accommodate in table-like presentations. */
554
+ rowContentLines?: number;
514
555
  /** How task-list date pickers apply start/end edits (default: preserve-duration) */
515
556
  taskDateChangeMode?: TaskDateChangeMode;
516
557
  /** Controlled callback for task-list date picker mode changes */
517
558
  onTaskDateChangeModeChange?: (mode: TaskDateChangeMode) => void;
518
559
  }
519
- type GanttChartProps<TTask extends Task = Task, TItem extends ResourceTimelineItem = ResourceTimelineItem> = GanttModeProps<TTask> | ResourcePlannerChartProps<TItem>;
560
+ interface GanttModeProps<TTask extends Task = Task> extends TaskChartSharedProps<TTask> {
561
+ /** Omitted mode keeps the historical task-based gantt behavior. */
562
+ mode?: 'gantt';
563
+ /** Width of each day column in pixels (default: 40) */
564
+ dayWidth?: number;
565
+ /** View mode: 'day' renders one column per day, 'week' renders one column per 7 days, 'month' renders one column per month (default: 'day') */
566
+ viewMode?: 'day' | 'week' | 'month';
567
+ /** Custom day configurations with explicit type (weekend or workday) */
568
+ customDays?: CustomDayConfig[];
569
+ /** Optional base weekend predicate (checked before customDays overrides) */
570
+ isWeekend?: (date: Date) => boolean;
571
+ /** Считать duration в рабочих днях, исключая выходные (default: true) */
572
+ businessDays?: boolean;
573
+ }
574
+ interface TableMatrixModeProps<TTask extends Task = Task> extends TaskChartSharedProps<TTask> {
575
+ mode: 'table-matrix';
576
+ /** Width of the arbitrary right-side matrix columns. */
577
+ matrixColumns: Array<TableMatrixColumn<TTask>>;
578
+ /** Optional grouped header row above matrix columns (e.g. months over weekly columns). */
579
+ matrixColumnGroups?: Array<TableMatrixColumnGroup>;
580
+ /** Called when any data cell in the right-side matrix is clicked. */
581
+ onMatrixCellClick?: (context: TableMatrixCellClickContext<TTask>) => void;
582
+ }
583
+ type GanttChartProps<TTask extends Task = Task, TItem extends ResourceTimelineItem = ResourceTimelineItem> = GanttModeProps<TTask> | TableMatrixModeProps<TTask> | ResourcePlannerChartProps<TItem>;
520
584
  interface ExportToPdfOptions {
521
585
  /** Structured header displayed above the exported chart */
522
586
  header?: ExportToPdfHeaderOptions;
@@ -762,6 +826,8 @@ interface TaskListProps {
762
826
  onInsertAfter?: (taskId: string, newTask: Task) => void;
763
827
  /** Callback when tasks are reordered via drag in the task list */
764
828
  onReorder?: (tasks: Task[], movedTaskId?: string, inferredParentId?: string) => void;
829
+ /** Disable task row drag/reorder in the task list (default: false) */
830
+ disableTaskDrag?: boolean;
765
831
  /** ID of task that should enter edit mode on mount (for auto-edit after insert) */
766
832
  editingTaskId?: string | null;
767
833
  /** Enable add task button at bottom of task list (default: true) */
@@ -804,6 +870,10 @@ interface TaskListProps {
804
870
  hiddenTaskListColumns?: readonly TaskListColumnId[];
805
871
  /** Additional commands rendered in each row three-dots menu */
806
872
  taskListMenuCommands?: TaskListMenuCommand<Task>[];
873
+ /** Hide row action controls such as insert, hierarchy action buttons, and the context menu trigger. */
874
+ hideTaskListRowActions?: boolean;
875
+ /** Global number of visible content lines used to size every row consistently. */
876
+ rowContentLines?: number;
807
877
  /** How task-list date pickers apply start/end edits */
808
878
  taskDateChangeMode?: TaskDateChangeMode;
809
879
  /** Controlled callback for task-list date picker mode changes */
@@ -1305,4 +1375,4 @@ interface VisibleReorderPosition {
1305
1375
  */
1306
1376
  declare function getVisibleReorderPosition(orderedTasks: TaskLike[], visibleTasks: TaskLike[], movedTaskId: string, originVisibleIndex: number, dropVisibleIndex: number): VisibleReorderPosition | null;
1307
1377
 
1308
- export { type BuiltInTaskListColumnId, Button, type ButtonProps, Calendar, type CalendarProps, type CustomDayConfig, type CustomDayPredicateConfig, DatePicker, type DatePickerProps, DragGuideLines, type ExportToPdfHeaderOptions, type ExportToPdfOptions, GanttChart, type GanttChartHandle, type GanttChartProps, type GanttModeProps, GridBackground, Input, type InputProps, type MonthBlock, Popover, PopoverContent, type PopoverContentProps, type PopoverProps, PopoverTrigger, ResourcePlannerChartProps, ResourceTimelineChart, type ResourceTimelineConflictRange, ResourceTimelineItem, type ResourceTimelineLayoutDiagnostic, type ResourceTimelineLayoutItem, type ResourceTimelineLayoutOptions, type ResourceTimelineLayoutResult, type ResourceTimelineLayoutRow, ResourceTimelineResource, type Task, TaskDateChangeMode, type TaskDependency, TaskList, type TaskListColumn, type TaskListColumnContext, type TaskListColumnId, type TaskListMenuCommand, type TaskListProps, type TaskPredicate, TaskRow, TimeScaleHeader, TodayIndicator, ValidationResult, type VisibleReorderPosition, type WeekBlock, type WeekSpan, type WithoutDepsOptions, type YearSpan, addBusinessDays, and, calculateBezierPath, calculateDependencyPath, calculateGridLines, calculateGridWidth, calculateMilestoneConnectionBounds, calculateMilestoneGeometry, calculateMonthGridLines, calculateOrthogonalPath, calculateTaskBar, calculateWeekGridLines, calculateWeekendBlocks, clampDateRangeForIncomingFS, createCustomDayPredicate, createDateKey, detectEdgeZone, expired, flattenHierarchy, formatDateLabel, formatDateRangeLabel, getBusinessDaysCount, getCursorForPosition, getDayOffset, getMonthBlocks, getMonthDays, getMonthSpans, getMultiMonthDays, getVisibleReorderPosition, getWeekBlocks, getWeekSpans, getYearSpans, inDateRange, isTaskExpired, isToday, isWeekend, layoutResourceTimelineItems, nameContains, normalizeHierarchyTasks, normalizeTaskDates, not, or, parseUTCDate, pixelsToDate, progressInRange, resolveDateRangeFromPixels, resolveTaskHorizontalGeometry, subtractBusinessDays, useTaskDrag, withoutDeps };
1378
+ export { type BuiltInTaskListColumnId, Button, type ButtonProps, Calendar, type CalendarProps, type CustomDayConfig, type CustomDayPredicateConfig, DatePicker, type DatePickerProps, DragGuideLines, type ExportToPdfHeaderOptions, type ExportToPdfOptions, GanttChart, type GanttChartHandle, type GanttChartProps, type GanttModeProps, GridBackground, Input, type InputProps, type MonthBlock, Popover, PopoverContent, type PopoverContentProps, type PopoverProps, PopoverTrigger, ResourcePlannerChartProps, ResourceTimelineChart, type ResourceTimelineConflictRange, ResourceTimelineItem, type ResourceTimelineLayoutDiagnostic, type ResourceTimelineLayoutItem, type ResourceTimelineLayoutOptions, type ResourceTimelineLayoutResult, type ResourceTimelineLayoutRow, ResourceTimelineResource, TableMatrix, type TableMatrixCellClickContext, type TableMatrixColumn, type TableMatrixColumnGroup, type TableMatrixModeProps, type Task, TaskDateChangeMode, type TaskDependency, TaskList, type TaskListColumn, type TaskListColumnContext, type TaskListColumnId, type TaskListMenuCommand, type TaskListProps, type TaskPredicate, TaskRow, TimeScaleHeader, TodayIndicator, ValidationResult, type VisibleReorderPosition, type WeekBlock, type WeekSpan, type WithoutDepsOptions, type YearSpan, addBusinessDays, and, calculateBezierPath, calculateDependencyPath, calculateGridLines, calculateGridWidth, calculateMilestoneConnectionBounds, calculateMilestoneGeometry, calculateMonthGridLines, calculateOrthogonalPath, calculateTaskBar, calculateWeekGridLines, calculateWeekendBlocks, clampDateRangeForIncomingFS, createCustomDayPredicate, createDateKey, detectEdgeZone, expired, flattenHierarchy, formatDateLabel, formatDateRangeLabel, getBusinessDaysCount, getCursorForPosition, getDayOffset, getMonthBlocks, getMonthDays, getMonthSpans, getMultiMonthDays, getVisibleReorderPosition, getWeekBlocks, getWeekSpans, getYearSpans, inDateRange, isTaskExpired, isToday, isWeekend, layoutResourceTimelineItems, nameContains, normalizeHierarchyTasks, normalizeTaskDates, not, or, parseUTCDate, pixelsToDate, progressInRange, resolveDateRangeFromPixels, resolveTaskHorizontalGeometry, subtractBusinessDays, useTaskDrag, withoutDeps };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import React$1, { ReactNode } from 'react';
2
- import { T as Task$1, R as ResourceTimelineItem, V as ValidationResult, a as TaskDateChangeMode, b as ResourcePlannerChartProps, c as ResourceTimelineResource } from './index-CKJZfeDv.js';
3
- export { D as DAY_MS, d as DependencyError, G as GanttChartMode, e as GanttDateRange, f as GridConfig, g as GridLine, L as LinkType, M as MonthSpan, h as ResourceTimelineMove, i as ResourceTimelineResourceMenuCommand, j as TaskBarGeometry, W as WeekendBlock, k as alignToWorkingDay, l as areTasksHierarchicallyRelated, m as buildAdjacencyList, n as buildTaskRangeFromEnd, o as buildTaskRangeFromStart, p as calculateSuccessorDate, q as cascadeByLinks, r as clampTaskRangeForIncomingFS, s as computeLagFromDates, t as computeParentDates, u as computeParentProgress, v as detectCycles, w as findParentId, x as getAllDependencyEdges, y as getAllDescendants, z as getBusinessDayOffset, A as getChildren, B as getDependencyLag, C as getSuccessorChain, E as getTaskDuration, F as getTransitiveCascadeChain, H as isAncestorTask, I as isTaskParent, J as moveTaskRange, K as moveTaskWithCascade, N as normalizeDependencyLag, O as normalizePredecessorDates, P as normalizeTaskDependencyLags, Q as normalizeUTCDate, S as parseDateOnly, U as recalculateIncomingLags, X as recalculateProjectSchedule, Y as recalculateTaskFromDependencies, Z as reflowTasksOnModeSwitch, _ as removeDependenciesBetweenTasks, $ as resizeTaskWithCascade, a0 as shiftBusinessDayOffset, a1 as universalCascade, a2 as validateDependencies } from './index-CKJZfeDv.js';
2
+ import { T as Task$1, R as ResourceTimelineItem, V as ValidationResult, a as TaskDateChangeMode, b as ResourcePlannerChartProps, c as ResourceTimelineResource } from './index-CCzxqxfE.js';
3
+ export { D as DAY_MS, d as DependencyError, G as GanttChartMode, e as GanttDateRange, f as GridConfig, g as GridLine, L as LinkType, M as MonthSpan, h as ResourceTimelineMove, i as ResourceTimelineResourceMenuCommand, j as TaskBarGeometry, W as WeekendBlock, k as alignToWorkingDay, l as areTasksHierarchicallyRelated, m as buildAdjacencyList, n as buildTaskRangeFromEnd, o as buildTaskRangeFromStart, p as calculateSuccessorDate, q as cascadeByLinks, r as clampTaskRangeForIncomingFS, s as computeLagFromDates, t as computeParentDates, u as computeParentProgress, v as detectCycles, w as findParentId, x as getAllDependencyEdges, y as getAllDescendants, z as getBusinessDayOffset, A as getChildren, B as getDependencyLag, C as getSuccessorChain, E as getTaskDuration, F as getTransitiveCascadeChain, H as isAncestorTask, I as isTaskParent, J as moveTaskRange, K as moveTaskWithCascade, N as normalizeDependencyLag, O as normalizePredecessorDates, P as normalizeTaskDependencyLags, Q as normalizeUTCDate, S as parseDateOnly, U as recalculateIncomingLags, X as recalculateProjectSchedule, Y as recalculateTaskFromDependencies, Z as reflowTasksOnModeSwitch, _ as removeDependenciesBetweenTasks, $ as resizeTaskWithCascade, a0 as shiftBusinessDayOffset, a1 as universalCascade, a2 as validateDependencies } from './index-CCzxqxfE.js';
4
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
5
5
  import * as RadixPopover from '@radix-ui/react-popover';
6
6
 
@@ -314,6 +314,7 @@ interface TaskListColumnContext<TTask extends Task> {
314
314
  task: TTask;
315
315
  rowIndex: number;
316
316
  isEditing: boolean;
317
+ editStartValue?: string;
317
318
  openEditor: () => void;
318
319
  closeEditor: () => void;
319
320
  updateTask: (patch: Partial<TTask>) => void;
@@ -323,12 +324,52 @@ type TaskListColumn<TTask extends Task> = TaskListColumnAnchor & {
323
324
  header: ReactNode;
324
325
  width?: number;
325
326
  minWidth?: number;
327
+ align?: 'left' | 'center' | 'right';
326
328
  editable?: boolean;
327
329
  renderCell: (ctx: TaskListColumnContext<TTask>) => ReactNode;
328
330
  renderEditor?: (ctx: TaskListColumnContext<TTask>) => ReactNode;
329
331
  meta?: Record<string, unknown>;
330
332
  };
331
333
 
334
+ interface TableMatrixColumnGroup {
335
+ id: string;
336
+ header: React$1.ReactNode;
337
+ width?: number;
338
+ className?: string;
339
+ }
340
+ interface TableMatrixColumn<TTask extends Task = Task> {
341
+ id: string;
342
+ header: React$1.ReactNode;
343
+ width: number;
344
+ groupId?: string;
345
+ align?: 'left' | 'center' | 'right';
346
+ className?: string;
347
+ headerClassName?: string;
348
+ cellClassName?: string | ((task: TTask) => string | undefined);
349
+ renderCell: (task: TTask) => React$1.ReactNode;
350
+ }
351
+ interface TableMatrixCellClickContext<TTask extends Task = Task> {
352
+ task: TTask;
353
+ column: TableMatrixColumn<TTask>;
354
+ rowIndex: number;
355
+ columnIndex: number;
356
+ event: React$1.MouseEvent<HTMLDivElement>;
357
+ }
358
+ interface TableMatrixProps<TTask extends Task = Task> {
359
+ tasks: TTask[];
360
+ allTasks?: TTask[];
361
+ columns: Array<TableMatrixColumn<TTask>>;
362
+ columnGroups?: Array<TableMatrixColumnGroup>;
363
+ rowHeight: number;
364
+ headerHeight: number;
365
+ selectedTaskId?: string | null;
366
+ onTaskSelect?: (taskId: string | null) => void;
367
+ onCellClick?: (context: TableMatrixCellClickContext<TTask>) => void;
368
+ highlightedTaskIds?: Set<string>;
369
+ filterMode?: 'highlight' | 'hide';
370
+ }
371
+ declare function TableMatrix<TTask extends Task = Task>({ tasks, allTasks, columns, columnGroups, rowHeight, headerHeight, selectedTaskId, onTaskSelect, onCellClick, highlightedTaskIds, filterMode, }: TableMatrixProps<TTask>): react_jsx_runtime.JSX.Element;
372
+
332
373
  /**
333
374
  * Task data structure for Gantt chart
334
375
  */
@@ -420,13 +461,9 @@ interface TaskListMenuCommand<TTask extends Task = Task> {
420
461
  /** Close the menu after click (default: true) */
421
462
  closeOnSelect?: boolean;
422
463
  }
423
- interface GanttModeProps<TTask extends Task = Task> {
424
- /** Omitted mode keeps the historical task-based gantt behavior. */
425
- mode?: 'gantt';
464
+ interface TaskChartSharedProps<TTask extends Task = Task> {
426
465
  /** Array of tasks to display */
427
466
  tasks: TTask[];
428
- /** Width of each day column in pixels (default: 40) */
429
- dayWidth?: number;
430
467
  /** Height of each task row in pixels (default: 40) */
431
468
  rowHeight?: number;
432
469
  /** Height of the header row in pixels (default: 40) */
@@ -511,12 +548,39 @@ interface GanttModeProps<TTask extends Task = Task> {
511
548
  hiddenTaskListColumns?: readonly TaskListColumnId[];
512
549
  /** Additional commands rendered in the TaskList row three-dots menu */
513
550
  taskListMenuCommands?: TaskListMenuCommand<TTask>[];
551
+ /** Hide row action controls in the TaskList for table-like read/edit presentations. */
552
+ hideTaskListRowActions?: boolean;
553
+ /** Global number of text lines the row height should accommodate in table-like presentations. */
554
+ rowContentLines?: number;
514
555
  /** How task-list date pickers apply start/end edits (default: preserve-duration) */
515
556
  taskDateChangeMode?: TaskDateChangeMode;
516
557
  /** Controlled callback for task-list date picker mode changes */
517
558
  onTaskDateChangeModeChange?: (mode: TaskDateChangeMode) => void;
518
559
  }
519
- type GanttChartProps<TTask extends Task = Task, TItem extends ResourceTimelineItem = ResourceTimelineItem> = GanttModeProps<TTask> | ResourcePlannerChartProps<TItem>;
560
+ interface GanttModeProps<TTask extends Task = Task> extends TaskChartSharedProps<TTask> {
561
+ /** Omitted mode keeps the historical task-based gantt behavior. */
562
+ mode?: 'gantt';
563
+ /** Width of each day column in pixels (default: 40) */
564
+ dayWidth?: number;
565
+ /** View mode: 'day' renders one column per day, 'week' renders one column per 7 days, 'month' renders one column per month (default: 'day') */
566
+ viewMode?: 'day' | 'week' | 'month';
567
+ /** Custom day configurations with explicit type (weekend or workday) */
568
+ customDays?: CustomDayConfig[];
569
+ /** Optional base weekend predicate (checked before customDays overrides) */
570
+ isWeekend?: (date: Date) => boolean;
571
+ /** Считать duration в рабочих днях, исключая выходные (default: true) */
572
+ businessDays?: boolean;
573
+ }
574
+ interface TableMatrixModeProps<TTask extends Task = Task> extends TaskChartSharedProps<TTask> {
575
+ mode: 'table-matrix';
576
+ /** Width of the arbitrary right-side matrix columns. */
577
+ matrixColumns: Array<TableMatrixColumn<TTask>>;
578
+ /** Optional grouped header row above matrix columns (e.g. months over weekly columns). */
579
+ matrixColumnGroups?: Array<TableMatrixColumnGroup>;
580
+ /** Called when any data cell in the right-side matrix is clicked. */
581
+ onMatrixCellClick?: (context: TableMatrixCellClickContext<TTask>) => void;
582
+ }
583
+ type GanttChartProps<TTask extends Task = Task, TItem extends ResourceTimelineItem = ResourceTimelineItem> = GanttModeProps<TTask> | TableMatrixModeProps<TTask> | ResourcePlannerChartProps<TItem>;
520
584
  interface ExportToPdfOptions {
521
585
  /** Structured header displayed above the exported chart */
522
586
  header?: ExportToPdfHeaderOptions;
@@ -762,6 +826,8 @@ interface TaskListProps {
762
826
  onInsertAfter?: (taskId: string, newTask: Task) => void;
763
827
  /** Callback when tasks are reordered via drag in the task list */
764
828
  onReorder?: (tasks: Task[], movedTaskId?: string, inferredParentId?: string) => void;
829
+ /** Disable task row drag/reorder in the task list (default: false) */
830
+ disableTaskDrag?: boolean;
765
831
  /** ID of task that should enter edit mode on mount (for auto-edit after insert) */
766
832
  editingTaskId?: string | null;
767
833
  /** Enable add task button at bottom of task list (default: true) */
@@ -804,6 +870,10 @@ interface TaskListProps {
804
870
  hiddenTaskListColumns?: readonly TaskListColumnId[];
805
871
  /** Additional commands rendered in each row three-dots menu */
806
872
  taskListMenuCommands?: TaskListMenuCommand<Task>[];
873
+ /** Hide row action controls such as insert, hierarchy action buttons, and the context menu trigger. */
874
+ hideTaskListRowActions?: boolean;
875
+ /** Global number of visible content lines used to size every row consistently. */
876
+ rowContentLines?: number;
807
877
  /** How task-list date pickers apply start/end edits */
808
878
  taskDateChangeMode?: TaskDateChangeMode;
809
879
  /** Controlled callback for task-list date picker mode changes */
@@ -1305,4 +1375,4 @@ interface VisibleReorderPosition {
1305
1375
  */
1306
1376
  declare function getVisibleReorderPosition(orderedTasks: TaskLike[], visibleTasks: TaskLike[], movedTaskId: string, originVisibleIndex: number, dropVisibleIndex: number): VisibleReorderPosition | null;
1307
1377
 
1308
- export { type BuiltInTaskListColumnId, Button, type ButtonProps, Calendar, type CalendarProps, type CustomDayConfig, type CustomDayPredicateConfig, DatePicker, type DatePickerProps, DragGuideLines, type ExportToPdfHeaderOptions, type ExportToPdfOptions, GanttChart, type GanttChartHandle, type GanttChartProps, type GanttModeProps, GridBackground, Input, type InputProps, type MonthBlock, Popover, PopoverContent, type PopoverContentProps, type PopoverProps, PopoverTrigger, ResourcePlannerChartProps, ResourceTimelineChart, type ResourceTimelineConflictRange, ResourceTimelineItem, type ResourceTimelineLayoutDiagnostic, type ResourceTimelineLayoutItem, type ResourceTimelineLayoutOptions, type ResourceTimelineLayoutResult, type ResourceTimelineLayoutRow, ResourceTimelineResource, type Task, TaskDateChangeMode, type TaskDependency, TaskList, type TaskListColumn, type TaskListColumnContext, type TaskListColumnId, type TaskListMenuCommand, type TaskListProps, type TaskPredicate, TaskRow, TimeScaleHeader, TodayIndicator, ValidationResult, type VisibleReorderPosition, type WeekBlock, type WeekSpan, type WithoutDepsOptions, type YearSpan, addBusinessDays, and, calculateBezierPath, calculateDependencyPath, calculateGridLines, calculateGridWidth, calculateMilestoneConnectionBounds, calculateMilestoneGeometry, calculateMonthGridLines, calculateOrthogonalPath, calculateTaskBar, calculateWeekGridLines, calculateWeekendBlocks, clampDateRangeForIncomingFS, createCustomDayPredicate, createDateKey, detectEdgeZone, expired, flattenHierarchy, formatDateLabel, formatDateRangeLabel, getBusinessDaysCount, getCursorForPosition, getDayOffset, getMonthBlocks, getMonthDays, getMonthSpans, getMultiMonthDays, getVisibleReorderPosition, getWeekBlocks, getWeekSpans, getYearSpans, inDateRange, isTaskExpired, isToday, isWeekend, layoutResourceTimelineItems, nameContains, normalizeHierarchyTasks, normalizeTaskDates, not, or, parseUTCDate, pixelsToDate, progressInRange, resolveDateRangeFromPixels, resolveTaskHorizontalGeometry, subtractBusinessDays, useTaskDrag, withoutDeps };
1378
+ export { type BuiltInTaskListColumnId, Button, type ButtonProps, Calendar, type CalendarProps, type CustomDayConfig, type CustomDayPredicateConfig, DatePicker, type DatePickerProps, DragGuideLines, type ExportToPdfHeaderOptions, type ExportToPdfOptions, GanttChart, type GanttChartHandle, type GanttChartProps, type GanttModeProps, GridBackground, Input, type InputProps, type MonthBlock, Popover, PopoverContent, type PopoverContentProps, type PopoverProps, PopoverTrigger, ResourcePlannerChartProps, ResourceTimelineChart, type ResourceTimelineConflictRange, ResourceTimelineItem, type ResourceTimelineLayoutDiagnostic, type ResourceTimelineLayoutItem, type ResourceTimelineLayoutOptions, type ResourceTimelineLayoutResult, type ResourceTimelineLayoutRow, ResourceTimelineResource, TableMatrix, type TableMatrixCellClickContext, type TableMatrixColumn, type TableMatrixColumnGroup, type TableMatrixModeProps, type Task, TaskDateChangeMode, type TaskDependency, TaskList, type TaskListColumn, type TaskListColumnContext, type TaskListColumnId, type TaskListMenuCommand, type TaskListProps, type TaskPredicate, TaskRow, TimeScaleHeader, TodayIndicator, ValidationResult, type VisibleReorderPosition, type WeekBlock, type WeekSpan, type WithoutDepsOptions, type YearSpan, addBusinessDays, and, calculateBezierPath, calculateDependencyPath, calculateGridLines, calculateGridWidth, calculateMilestoneConnectionBounds, calculateMilestoneGeometry, calculateMonthGridLines, calculateOrthogonalPath, calculateTaskBar, calculateWeekGridLines, calculateWeekendBlocks, clampDateRangeForIncomingFS, createCustomDayPredicate, createDateKey, detectEdgeZone, expired, flattenHierarchy, formatDateLabel, formatDateRangeLabel, getBusinessDaysCount, getCursorForPosition, getDayOffset, getMonthBlocks, getMonthDays, getMonthSpans, getMultiMonthDays, getVisibleReorderPosition, getWeekBlocks, getWeekSpans, getYearSpans, inDateRange, isTaskExpired, isToday, isWeekend, layoutResourceTimelineItems, nameContains, normalizeHierarchyTasks, normalizeTaskDates, not, or, parseUTCDate, pixelsToDate, progressInRange, resolveDateRangeFromPixels, resolveTaskHorizontalGeometry, subtractBusinessDays, useTaskDrag, withoutDeps };