gantt-lib 0.91.0 → 0.101.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,53 @@ 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
+ bodyMinHeight?: number | string;
366
+ selectedTaskId?: string | null;
367
+ onTaskSelect?: (taskId: string | null) => void;
368
+ onCellClick?: (context: TableMatrixCellClickContext<TTask>) => void;
369
+ highlightedTaskIds?: Set<string>;
370
+ filterMode?: 'highlight' | 'hide';
371
+ }
372
+ declare function TableMatrix<TTask extends Task = Task>({ tasks, allTasks, columns, columnGroups, rowHeight, headerHeight, bodyMinHeight, selectedTaskId, onTaskSelect, onCellClick, highlightedTaskIds, filterMode, }: TableMatrixProps<TTask>): react_jsx_runtime.JSX.Element;
373
+
332
374
  /**
333
375
  * Task data structure for Gantt chart
334
376
  */
@@ -420,13 +462,9 @@ interface TaskListMenuCommand<TTask extends Task = Task> {
420
462
  /** Close the menu after click (default: true) */
421
463
  closeOnSelect?: boolean;
422
464
  }
423
- interface GanttModeProps<TTask extends Task = Task> {
424
- /** Omitted mode keeps the historical task-based gantt behavior. */
425
- mode?: 'gantt';
465
+ interface TaskChartSharedProps<TTask extends Task = Task> {
426
466
  /** Array of tasks to display */
427
467
  tasks: TTask[];
428
- /** Width of each day column in pixels (default: 40) */
429
- dayWidth?: number;
430
468
  /** Height of each task row in pixels (default: 40) */
431
469
  rowHeight?: number;
432
470
  /** Height of the header row in pixels (default: 40) */
@@ -511,12 +549,39 @@ interface GanttModeProps<TTask extends Task = Task> {
511
549
  hiddenTaskListColumns?: readonly TaskListColumnId[];
512
550
  /** Additional commands rendered in the TaskList row three-dots menu */
513
551
  taskListMenuCommands?: TaskListMenuCommand<TTask>[];
552
+ /** Hide row action controls in the TaskList for table-like read/edit presentations. */
553
+ hideTaskListRowActions?: boolean;
554
+ /** Global number of text lines the row height should accommodate in table-like presentations. */
555
+ rowContentLines?: number;
514
556
  /** How task-list date pickers apply start/end edits (default: preserve-duration) */
515
557
  taskDateChangeMode?: TaskDateChangeMode;
516
558
  /** Controlled callback for task-list date picker mode changes */
517
559
  onTaskDateChangeModeChange?: (mode: TaskDateChangeMode) => void;
518
560
  }
519
- type GanttChartProps<TTask extends Task = Task, TItem extends ResourceTimelineItem = ResourceTimelineItem> = GanttModeProps<TTask> | ResourcePlannerChartProps<TItem>;
561
+ interface GanttModeProps<TTask extends Task = Task> extends TaskChartSharedProps<TTask> {
562
+ /** Omitted mode keeps the historical task-based gantt behavior. */
563
+ mode?: 'gantt';
564
+ /** Width of each day column in pixels (default: 40) */
565
+ dayWidth?: number;
566
+ /** View mode: 'day' renders one column per day, 'week' renders one column per 7 days, 'month' renders one column per month (default: 'day') */
567
+ viewMode?: 'day' | 'week' | 'month';
568
+ /** Custom day configurations with explicit type (weekend or workday) */
569
+ customDays?: CustomDayConfig[];
570
+ /** Optional base weekend predicate (checked before customDays overrides) */
571
+ isWeekend?: (date: Date) => boolean;
572
+ /** Считать duration в рабочих днях, исключая выходные (default: true) */
573
+ businessDays?: boolean;
574
+ }
575
+ interface TableMatrixModeProps<TTask extends Task = Task> extends TaskChartSharedProps<TTask> {
576
+ mode: 'table-matrix';
577
+ /** Width of the arbitrary right-side matrix columns. */
578
+ matrixColumns: Array<TableMatrixColumn<TTask>>;
579
+ /** Optional grouped header row above matrix columns (e.g. months over weekly columns). */
580
+ matrixColumnGroups?: Array<TableMatrixColumnGroup>;
581
+ /** Called when any data cell in the right-side matrix is clicked. */
582
+ onMatrixCellClick?: (context: TableMatrixCellClickContext<TTask>) => void;
583
+ }
584
+ type GanttChartProps<TTask extends Task = Task, TItem extends ResourceTimelineItem = ResourceTimelineItem> = GanttModeProps<TTask> | TableMatrixModeProps<TTask> | ResourcePlannerChartProps<TItem>;
520
585
  interface ExportToPdfOptions {
521
586
  /** Structured header displayed above the exported chart */
522
587
  header?: ExportToPdfHeaderOptions;
@@ -762,6 +827,8 @@ interface TaskListProps {
762
827
  onInsertAfter?: (taskId: string, newTask: Task) => void;
763
828
  /** Callback when tasks are reordered via drag in the task list */
764
829
  onReorder?: (tasks: Task[], movedTaskId?: string, inferredParentId?: string) => void;
830
+ /** Disable task row drag/reorder in the task list (default: false) */
831
+ disableTaskDrag?: boolean;
765
832
  /** ID of task that should enter edit mode on mount (for auto-edit after insert) */
766
833
  editingTaskId?: string | null;
767
834
  /** Enable add task button at bottom of task list (default: true) */
@@ -804,6 +871,12 @@ interface TaskListProps {
804
871
  hiddenTaskListColumns?: readonly TaskListColumnId[];
805
872
  /** Additional commands rendered in each row three-dots menu */
806
873
  taskListMenuCommands?: TaskListMenuCommand<Task>[];
874
+ /** Hide row action controls such as insert, hierarchy action buttons, and the context menu trigger. */
875
+ hideTaskListRowActions?: boolean;
876
+ /** Global number of visible content lines used to size every row consistently. */
877
+ rowContentLines?: number;
878
+ /** Optional minimum height for the data body area below the sticky header. */
879
+ bodyMinHeight?: number | string;
807
880
  /** How task-list date pickers apply start/end edits */
808
881
  taskDateChangeMode?: TaskDateChangeMode;
809
882
  /** Controlled callback for task-list date picker mode changes */
@@ -1305,4 +1378,4 @@ interface VisibleReorderPosition {
1305
1378
  */
1306
1379
  declare function getVisibleReorderPosition(orderedTasks: TaskLike[], visibleTasks: TaskLike[], movedTaskId: string, originVisibleIndex: number, dropVisibleIndex: number): VisibleReorderPosition | null;
1307
1380
 
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 };
1381
+ 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,53 @@ 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
+ bodyMinHeight?: number | string;
366
+ selectedTaskId?: string | null;
367
+ onTaskSelect?: (taskId: string | null) => void;
368
+ onCellClick?: (context: TableMatrixCellClickContext<TTask>) => void;
369
+ highlightedTaskIds?: Set<string>;
370
+ filterMode?: 'highlight' | 'hide';
371
+ }
372
+ declare function TableMatrix<TTask extends Task = Task>({ tasks, allTasks, columns, columnGroups, rowHeight, headerHeight, bodyMinHeight, selectedTaskId, onTaskSelect, onCellClick, highlightedTaskIds, filterMode, }: TableMatrixProps<TTask>): react_jsx_runtime.JSX.Element;
373
+
332
374
  /**
333
375
  * Task data structure for Gantt chart
334
376
  */
@@ -420,13 +462,9 @@ interface TaskListMenuCommand<TTask extends Task = Task> {
420
462
  /** Close the menu after click (default: true) */
421
463
  closeOnSelect?: boolean;
422
464
  }
423
- interface GanttModeProps<TTask extends Task = Task> {
424
- /** Omitted mode keeps the historical task-based gantt behavior. */
425
- mode?: 'gantt';
465
+ interface TaskChartSharedProps<TTask extends Task = Task> {
426
466
  /** Array of tasks to display */
427
467
  tasks: TTask[];
428
- /** Width of each day column in pixels (default: 40) */
429
- dayWidth?: number;
430
468
  /** Height of each task row in pixels (default: 40) */
431
469
  rowHeight?: number;
432
470
  /** Height of the header row in pixels (default: 40) */
@@ -511,12 +549,39 @@ interface GanttModeProps<TTask extends Task = Task> {
511
549
  hiddenTaskListColumns?: readonly TaskListColumnId[];
512
550
  /** Additional commands rendered in the TaskList row three-dots menu */
513
551
  taskListMenuCommands?: TaskListMenuCommand<TTask>[];
552
+ /** Hide row action controls in the TaskList for table-like read/edit presentations. */
553
+ hideTaskListRowActions?: boolean;
554
+ /** Global number of text lines the row height should accommodate in table-like presentations. */
555
+ rowContentLines?: number;
514
556
  /** How task-list date pickers apply start/end edits (default: preserve-duration) */
515
557
  taskDateChangeMode?: TaskDateChangeMode;
516
558
  /** Controlled callback for task-list date picker mode changes */
517
559
  onTaskDateChangeModeChange?: (mode: TaskDateChangeMode) => void;
518
560
  }
519
- type GanttChartProps<TTask extends Task = Task, TItem extends ResourceTimelineItem = ResourceTimelineItem> = GanttModeProps<TTask> | ResourcePlannerChartProps<TItem>;
561
+ interface GanttModeProps<TTask extends Task = Task> extends TaskChartSharedProps<TTask> {
562
+ /** Omitted mode keeps the historical task-based gantt behavior. */
563
+ mode?: 'gantt';
564
+ /** Width of each day column in pixels (default: 40) */
565
+ dayWidth?: number;
566
+ /** View mode: 'day' renders one column per day, 'week' renders one column per 7 days, 'month' renders one column per month (default: 'day') */
567
+ viewMode?: 'day' | 'week' | 'month';
568
+ /** Custom day configurations with explicit type (weekend or workday) */
569
+ customDays?: CustomDayConfig[];
570
+ /** Optional base weekend predicate (checked before customDays overrides) */
571
+ isWeekend?: (date: Date) => boolean;
572
+ /** Считать duration в рабочих днях, исключая выходные (default: true) */
573
+ businessDays?: boolean;
574
+ }
575
+ interface TableMatrixModeProps<TTask extends Task = Task> extends TaskChartSharedProps<TTask> {
576
+ mode: 'table-matrix';
577
+ /** Width of the arbitrary right-side matrix columns. */
578
+ matrixColumns: Array<TableMatrixColumn<TTask>>;
579
+ /** Optional grouped header row above matrix columns (e.g. months over weekly columns). */
580
+ matrixColumnGroups?: Array<TableMatrixColumnGroup>;
581
+ /** Called when any data cell in the right-side matrix is clicked. */
582
+ onMatrixCellClick?: (context: TableMatrixCellClickContext<TTask>) => void;
583
+ }
584
+ type GanttChartProps<TTask extends Task = Task, TItem extends ResourceTimelineItem = ResourceTimelineItem> = GanttModeProps<TTask> | TableMatrixModeProps<TTask> | ResourcePlannerChartProps<TItem>;
520
585
  interface ExportToPdfOptions {
521
586
  /** Structured header displayed above the exported chart */
522
587
  header?: ExportToPdfHeaderOptions;
@@ -762,6 +827,8 @@ interface TaskListProps {
762
827
  onInsertAfter?: (taskId: string, newTask: Task) => void;
763
828
  /** Callback when tasks are reordered via drag in the task list */
764
829
  onReorder?: (tasks: Task[], movedTaskId?: string, inferredParentId?: string) => void;
830
+ /** Disable task row drag/reorder in the task list (default: false) */
831
+ disableTaskDrag?: boolean;
765
832
  /** ID of task that should enter edit mode on mount (for auto-edit after insert) */
766
833
  editingTaskId?: string | null;
767
834
  /** Enable add task button at bottom of task list (default: true) */
@@ -804,6 +871,12 @@ interface TaskListProps {
804
871
  hiddenTaskListColumns?: readonly TaskListColumnId[];
805
872
  /** Additional commands rendered in each row three-dots menu */
806
873
  taskListMenuCommands?: TaskListMenuCommand<Task>[];
874
+ /** Hide row action controls such as insert, hierarchy action buttons, and the context menu trigger. */
875
+ hideTaskListRowActions?: boolean;
876
+ /** Global number of visible content lines used to size every row consistently. */
877
+ rowContentLines?: number;
878
+ /** Optional minimum height for the data body area below the sticky header. */
879
+ bodyMinHeight?: number | string;
807
880
  /** How task-list date pickers apply start/end edits */
808
881
  taskDateChangeMode?: TaskDateChangeMode;
809
882
  /** Controlled callback for task-list date picker mode changes */
@@ -1305,4 +1378,4 @@ interface VisibleReorderPosition {
1305
1378
  */
1306
1379
  declare function getVisibleReorderPosition(orderedTasks: TaskLike[], visibleTasks: TaskLike[], movedTaskId: string, originVisibleIndex: number, dropVisibleIndex: number): VisibleReorderPosition | null;
1307
1380
 
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 };
1381
+ 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 };