gantt-lib 0.73.1 → 0.74.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/core/scheduling/index.d.mts +1 -1
- package/dist/core/scheduling/index.d.ts +1 -1
- package/dist/{index-D8XWS1Ku.d.mts → index-BLFB_fez.d.mts} +4 -0
- package/dist/{index-D8XWS1Ku.d.ts → index-BLFB_fez.d.ts} +4 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +10 -2
- package/dist/index.d.ts +10 -2
- package/dist/index.js +30 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +30 -2
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +20 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
export { D as DAY_MS, a as DependencyError, L as LinkType, X as ScheduleCommandOptions, Y as ScheduleCommandResult, Z as ScheduleDependency, _ as ScheduleTask, $ as ScheduleTaskUpdate, T as Task, a0 as TaskDependency, V as ValidationResult, a1 as addBusinessDays, e as alignToWorkingDay, f as areTasksHierarchicallyRelated, g as buildAdjacencyList, h as buildTaskRangeFromEnd, i as buildTaskRangeFromStart, j as calculateSuccessorDate, k as cascadeByLinks, l as clampTaskRangeForIncomingFS, m as computeLagFromDates, n as computeParentDates, o as computeParentProgress, p as detectCycles, q as findParentId, r as getAllDependencyEdges, s as getAllDescendants, t as getBusinessDayOffset, a2 as getBusinessDaysCount, u as getChildren, v as getDependencyLag, w as getSuccessorChain, x as getTaskDuration, y as getTransitiveCascadeChain, z as isAncestorTask, A as isTaskParent, B as moveTaskRange, C as moveTaskWithCascade, E as normalizeDependencyLag, F as normalizePredecessorDates, H as normalizeUTCDate, I as parseDateOnly, J as recalculateIncomingLags, K as recalculateProjectSchedule, N as recalculateTaskFromDependencies, O as reflowTasksOnModeSwitch, P as removeDependenciesBetweenTasks, Q as resizeTaskWithCascade, R as shiftBusinessDayOffset, a3 as subtractBusinessDays, S as universalCascade, U as validateDependencies } from '../../index-
|
|
1
|
+
export { D as DAY_MS, a as DependencyError, L as LinkType, X as ScheduleCommandOptions, Y as ScheduleCommandResult, Z as ScheduleDependency, _ as ScheduleTask, $ as ScheduleTaskUpdate, T as Task, a0 as TaskDependency, V as ValidationResult, a1 as addBusinessDays, e as alignToWorkingDay, f as areTasksHierarchicallyRelated, g as buildAdjacencyList, h as buildTaskRangeFromEnd, i as buildTaskRangeFromStart, j as calculateSuccessorDate, k as cascadeByLinks, l as clampTaskRangeForIncomingFS, m as computeLagFromDates, n as computeParentDates, o as computeParentProgress, p as detectCycles, q as findParentId, r as getAllDependencyEdges, s as getAllDescendants, t as getBusinessDayOffset, a2 as getBusinessDaysCount, u as getChildren, v as getDependencyLag, w as getSuccessorChain, x as getTaskDuration, y as getTransitiveCascadeChain, z as isAncestorTask, A as isTaskParent, B as moveTaskRange, C as moveTaskWithCascade, E as normalizeDependencyLag, F as normalizePredecessorDates, H as normalizeUTCDate, I as parseDateOnly, J as recalculateIncomingLags, K as recalculateProjectSchedule, N as recalculateTaskFromDependencies, O as reflowTasksOnModeSwitch, P as removeDependenciesBetweenTasks, Q as resizeTaskWithCascade, R as shiftBusinessDayOffset, a3 as subtractBusinessDays, S as universalCascade, U as validateDependencies } from '../../index-BLFB_fez.mjs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { D as DAY_MS, a as DependencyError, L as LinkType, X as ScheduleCommandOptions, Y as ScheduleCommandResult, Z as ScheduleDependency, _ as ScheduleTask, $ as ScheduleTaskUpdate, T as Task, a0 as TaskDependency, V as ValidationResult, a1 as addBusinessDays, e as alignToWorkingDay, f as areTasksHierarchicallyRelated, g as buildAdjacencyList, h as buildTaskRangeFromEnd, i as buildTaskRangeFromStart, j as calculateSuccessorDate, k as cascadeByLinks, l as clampTaskRangeForIncomingFS, m as computeLagFromDates, n as computeParentDates, o as computeParentProgress, p as detectCycles, q as findParentId, r as getAllDependencyEdges, s as getAllDescendants, t as getBusinessDayOffset, a2 as getBusinessDaysCount, u as getChildren, v as getDependencyLag, w as getSuccessorChain, x as getTaskDuration, y as getTransitiveCascadeChain, z as isAncestorTask, A as isTaskParent, B as moveTaskRange, C as moveTaskWithCascade, E as normalizeDependencyLag, F as normalizePredecessorDates, H as normalizeUTCDate, I as parseDateOnly, J as recalculateIncomingLags, K as recalculateProjectSchedule, N as recalculateTaskFromDependencies, O as reflowTasksOnModeSwitch, P as removeDependenciesBetweenTasks, Q as resizeTaskWithCascade, R as shiftBusinessDayOffset, a3 as subtractBusinessDays, S as universalCascade, U as validateDependencies } from '../../index-
|
|
1
|
+
export { D as DAY_MS, a as DependencyError, L as LinkType, X as ScheduleCommandOptions, Y as ScheduleCommandResult, Z as ScheduleDependency, _ as ScheduleTask, $ as ScheduleTaskUpdate, T as Task, a0 as TaskDependency, V as ValidationResult, a1 as addBusinessDays, e as alignToWorkingDay, f as areTasksHierarchicallyRelated, g as buildAdjacencyList, h as buildTaskRangeFromEnd, i as buildTaskRangeFromStart, j as calculateSuccessorDate, k as cascadeByLinks, l as clampTaskRangeForIncomingFS, m as computeLagFromDates, n as computeParentDates, o as computeParentProgress, p as detectCycles, q as findParentId, r as getAllDependencyEdges, s as getAllDescendants, t as getBusinessDayOffset, a2 as getBusinessDaysCount, u as getChildren, v as getDependencyLag, w as getSuccessorChain, x as getTaskDuration, y as getTransitiveCascadeChain, z as isAncestorTask, A as isTaskParent, B as moveTaskRange, C as moveTaskWithCascade, E as normalizeDependencyLag, F as normalizePredecessorDates, H as normalizeUTCDate, I as parseDateOnly, J as recalculateIncomingLags, K as recalculateProjectSchedule, N as recalculateTaskFromDependencies, O as reflowTasksOnModeSwitch, P as removeDependenciesBetweenTasks, Q as resizeTaskWithCascade, R as shiftBusinessDayOffset, a3 as subtractBusinessDays, S as universalCascade, U as validateDependencies } from '../../index-BLFB_fez.js';
|
|
@@ -51,6 +51,10 @@ interface Task {
|
|
|
51
51
|
startDate: string | Date;
|
|
52
52
|
/** Task end date (ISO string or Date object) */
|
|
53
53
|
endDate: string | Date;
|
|
54
|
+
/** Optional baseline start date for planned schedule visualization */
|
|
55
|
+
baselineStartDate?: string | Date;
|
|
56
|
+
/** Optional baseline end date for planned schedule visualization */
|
|
57
|
+
baselineEndDate?: string | Date;
|
|
54
58
|
/** Optional color for task bar visualization */
|
|
55
59
|
color?: string;
|
|
56
60
|
/**
|
|
@@ -51,6 +51,10 @@ interface Task {
|
|
|
51
51
|
startDate: string | Date;
|
|
52
52
|
/** Task end date (ISO string or Date object) */
|
|
53
53
|
endDate: string | Date;
|
|
54
|
+
/** Optional baseline start date for planned schedule visualization */
|
|
55
|
+
baselineStartDate?: string | Date;
|
|
56
|
+
/** Optional baseline end date for planned schedule visualization */
|
|
57
|
+
baselineEndDate?: string | Date;
|
|
54
58
|
/** Optional color for task bar visualization */
|
|
55
59
|
color?: string;
|
|
56
60
|
/**
|
package/dist/index.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/ui.css","../src/styles.css","../src/components/TimeScaleHeader/TimeScaleHeader.css","../src/components/TaskRow/TaskRow.css","../src/components/TodayIndicator/TodayIndicator.css","../src/components/GridBackground/GridBackground.css","../src/components/DragGuideLines/DragGuideLines.css","../src/components/DependencyLines/DependencyLines.css","../src/components/TaskList/TaskList.css","../src/components/GanttChart/GanttChart.css"],"sourcesContent":["/* =========================================================\n * UI Components CSS — gantt-lib theming\n * All classes use gantt- prefix to avoid collisions\n * ========================================================= */\n\n/* CSS Variables for UI components */\n:root {\n --gantt-input-bg: #ffffff;\n --gantt-input-border: #d1d5db;\n --gantt-input-focus-ring: rgba(59, 130, 246, 0.5);\n --gantt-input-text: #1f2937;\n --gantt-input-placeholder: #9ca3af;\n --gantt-input-radius: 6px;\n\n --gantt-popover-bg: #ffffff;\n --gantt-popover-border: #e5e7eb;\n --gantt-popover-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n\n --gantt-calendar-day-hover: #f3f4f6;\n --gantt-calendar-day-selected: #3b82f6;\n --gantt-calendar-day-selected-text: #ffffff;\n --gantt-calendar-day-today-bg: #eff6ff;\n --gantt-calendar-day-today-color: #1d4ed8;\n --gantt-calendar-day-outside-color: #d1d5db;\n --gantt-calendar-day-disabled-color: #d1d5db;\n\n --gantt-calendar-bg: #ffffff;\n --gantt-calendar-text: #1f2937;\n --gantt-calendar-text-weekend: #ef4444;\n --gantt-calendar-text-muted: #9ca3af;\n --gantt-calendar-day-today-border: #3b82f6;\n --gantt-calendar-day-range: #dbeafe;\n --gantt-calendar-day-disabled-text: #d1d5db;\n}\n\n/* =========================================================\n * Input\n * ========================================================= */\n\n.gantt-input {\n display: flex;\n height: 32px;\n width: 100%;\n border-radius: var(--gantt-input-radius);\n border: 1px solid var(--gantt-input-border);\n background-color: var(--gantt-input-bg);\n padding: 0 8px;\n font-size: 0.85rem;\n font-family: inherit;\n color: var(--gantt-input-text);\n transition: border-color 150ms, box-shadow 150ms;\n box-sizing: border-box;\n}\n\n.gantt-input:focus {\n outline: none;\n border-color: #3b82f6;\n box-shadow: 0 0 0 2px var(--gantt-input-focus-ring);\n}\n\n.gantt-input::placeholder {\n color: var(--gantt-input-placeholder);\n}\n\n.gantt-input:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* =========================================================\n * Button\n * ========================================================= */\n\n.gantt-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n font-size: 0.875rem;\n font-family: inherit;\n font-weight: 500;\n padding: 0 12px;\n height: 32px;\n cursor: pointer;\n border: 1px solid var(--gantt-input-border);\n background-color: var(--gantt-input-bg);\n color: var(--gantt-input-text);\n transition: background-color 100ms, box-shadow 100ms;\n user-select: none;\n}\n\n.gantt-btn:hover {\n background-color: var(--gantt-calendar-day-hover);\n}\n\n.gantt-btn:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--gantt-input-focus-ring);\n}\n\n.gantt-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Ghost variant */\n.gantt-btn-ghost {\n background-color: transparent;\n border-color: transparent;\n}\n\n.gantt-btn-ghost:hover {\n background-color: var(--gantt-calendar-day-hover);\n}\n\n/* Outline variant */\n.gantt-btn-outline {\n background-color: transparent;\n}\n\n/* Icon size */\n.gantt-btn-icon {\n width: 28px;\n height: 28px;\n padding: 0;\n}\n\n/* Small size */\n.gantt-btn-sm {\n height: 26px;\n padding: 0 8px;\n font-size: 0.8rem;\n}\n\n/* =========================================================\n * Popover\n * ========================================================= */\n\n.gantt-popover {\n font-family: var(--gantt-font-family);\n background: var(--gantt-popover-bg);\n border: 1px solid var(--gantt-popover-border);\n border-radius: 8px;\n box-shadow: var(--gantt-popover-shadow);\n padding: 4px;\n z-index: 1000;\n outline: none;\n animation: gantt-popover-in 120ms ease-out;\n}\n\n@keyframes gantt-popover-in {\n from {\n opacity: 0;\n transform: scale(0.97) translateY(-4px);\n }\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n}\n\n/* =========================================================\n * DatePicker trigger button\n * ========================================================= */\n\n.gantt-datepicker-trigger {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n padding: 0 8px;\n font-size: 0.85rem;\n font-family: inherit;\n color: var(--gantt-input-text);\n background: transparent;\n border: none;\n cursor: pointer;\n text-align: center;\n user-select: none;\n}\n\n.gantt-datepicker-trigger:hover {\n background-color: transparent;\n border-radius: 0;\n}\n\n.gantt-datepicker-trigger:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--gantt-input-focus-ring);\n border-radius: 2px;\n}\n\n.gantt-datepicker-trigger:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* =========================================================\n * Calendar — custom scrollable (gantt-cal-* / gantt-day-btn)\n * ========================================================= */\n\n.gantt-cal-container {\n max-height: 280px;\n overflow-y: auto;\n user-select: none;\n padding: 8px;\n font-family: inherit;\n background: var(--gantt-calendar-bg);\n color: var(--gantt-calendar-text);\n}\n\n.gantt-cal-month {\n margin-bottom: 16px;\n}\n\n.gantt-cal-month-header {\n font-family: inherit;\n font-size: 0.875rem;\n font-weight: 600;\n padding: 4px 0 8px;\n color: var(--gantt-calendar-text);\n}\n\n.gantt-cal-month-days {\n display: grid;\n grid-template-columns: repeat(7, 32px);\n gap: 2px;\n}\n\n.gantt-cal-empty-day {\n width: 32px;\n height: 32px;\n}\n\n.gantt-cal-weekday {\n width: 32px;\n height: 24px;\n font-size: 0.75rem;\n font-family: inherit;\n font-weight: 500;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--gantt-calendar-text-muted);\n}\n\n.gantt-day-btn {\n width: 32px;\n height: 32px;\n font-size: 0.875rem;\n font-family: inherit;\n border: 1px solid transparent;\n border-radius: 6px;\n background: transparent;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n color: var(--gantt-calendar-text);\n transition: background-color 100ms;\n}\n\n.gantt-day-btn:hover {\n background-color: var(--gantt-calendar-day-hover);\n}\n\n.gantt-day-btn:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--gantt-input-focus-ring);\n}\n\n.gantt-day-btn.today {\n border-color: var(--gantt-calendar-day-today-border);\n font-weight: 600;\n}\n\n.gantt-day-btn.selected {\n background-color: var(--gantt-calendar-day-selected);\n color: var(--gantt-calendar-day-selected-text);\n font-weight: 600;\n}\n\n.gantt-day-btn.selected:hover {\n background-color: var(--gantt-calendar-day-selected);\n opacity: 0.9;\n}\n\n.gantt-day-btn.weekend:not(.selected) {\n color: var(--gantt-calendar-text-weekend);\n}\n\n.gantt-day-btn.past:not(.selected) {\n color: var(--gantt-calendar-text-muted);\n}\n\n.gantt-day-btn.past.weekend:not(.selected) {\n color: #fca5a5;\n}\n\n.gantt-day-btn.disabled {\n color: var(--gantt-calendar-day-disabled-text);\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.gantt-day-btn.disabled:hover {\n background: transparent;\n}\n\n/* =========================================================\n * DatePicker inline date input\n * ========================================================= */\n\n.gantt-datepicker-input-row {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 6px 8px;\n border-bottom: 1px solid var(--gantt-input-border);\n}\n\n.gantt-datepicker-date-input {\n width: 90px;\n flex-shrink: 0;\n font-family: inherit;\n font-size: 0.875rem;\n font-variant-numeric: tabular-nums;\n background: transparent;\n border: 1px solid var(--gantt-input-border);\n border-radius: 4px;\n outline: none;\n color: var(--gantt-input-text);\n cursor: default;\n letter-spacing: 0.05em;\n text-align: center;\n height: 28px;\n padding: 0 4px;\n}\n\n.gantt-datepicker-date-input:focus {\n border-color: #3b82f6;\n box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);\n}\n\n.gantt-datepicker-date-input::selection {\n background: rgba(59, 130, 246, 0.25);\n}\n\n.gantt-datepicker-shift-btn {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: inherit;\n font-size: 0.75rem;\n font-weight: 500;\n padding: 0 7px;\n height: 28px;\n border: none;\n border-radius: 4px;\n background: var(--gantt-calendar-day-hover, rgba(0,0,0,0.07));\n color: var(--gantt-calendar-text);\n cursor: pointer;\n}\n\n.gantt-datepicker-shift-btn:hover {\n background: var(--gantt-input-border, rgba(0,0,0,0.15));\n}\n\n","/* Gantt Chart CSS Variables - User customizable theming */\n@import './components/ui/ui.css';\n\n:root {\n /* Font */\n --gantt-font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n\n /* Grid Colors */\n --gantt-grid-line-color: #e0e0e0;\n --gantt-cell-background: #ffffff;\n --gantt-row-hover-background: #f6f6f7;\n\n /* Dimensions */\n --gantt-row-height: 30px;\n --gantt-header-height: 40px;\n --gantt-day-width: 30px;\n --gantt-container-border-radius: 10px;\n\n /* Task Bar Styling */\n --gantt-task-bar-default-color: #3b82f6;\n --gantt-task-bar-text-color: #ffffff;\n --gantt-task-bar-border-radius: 4px;\n --gantt-task-bar-height: 24px;\n\n /* Today Indicator */\n --gantt-today-indicator-color: rgba(255, 0, 0, 0.6);\n --gantt-today-indicator-width: 2px;\n\n /* Calendar Grid - Weekend */\n --gantt-weekend-background: #fff9f8;\n --gantt-weekend-border: #fca5a5;\n\n /* Calendar Grid - Separators */\n --gantt-month-separator-width: 1px;\n --gantt-month-separator-color: #a1a1a1;\n --gantt-week-separator-width: 1px;\n --gantt-week-separator-color: #f3f4f6;\n --gantt-day-line-width: 1px;\n --gantt-day-line-color: #f3f4f6;\n\n /* Task List - Vertical Separators (hidden by default) */\n --gantt-tl-vertical-separators: none;\n --gantt-tl-vertical-separators-width: 1px solid var(--gantt-grid-line-color, #e0e0e0);\n /* To enable separators, set: --gantt-tl-vertical-separators: var(--gantt-tl-vertical-separators-width); */\n\n /* Progress Bar Colors */\n --gantt-progress-color: rgba(0, 0, 0, 0.4);\n --gantt-progress-completed: #ffb800;\n --gantt-progress-accepted: #17c964;\n\n /* Dependency line colors */\n --gantt-dependency-line-color: rgba(0, 0, 55, 0.8);\n --gantt-dependency-cycle-color: #ef4444;\n\n /* Expired task color */\n --gantt-expired-color: #ef4444;\n\n /* Parent Task Styling (Phase 19) - MS Project bracket style */\n --gantt-parent-bar-color: #782fc4;\n --gantt-parent-bar-height: 20px;\n --gantt-parent-bar-radius: 8px;\n --gantt-parent-ear-depth: 6px;\n --gantt-parent-ear-width: 8px;\n --gantt-parent-row-bg: #eeedfb;\n --gantt-divider-grid-color: #d4bceb;\n --gantt-hierarchy-line-color: #bebcbf;\n /* --gantt-parent-row-bg: #f2ebf9; */\n}\n\n/* Remove browser default focus outlines for all gantt elements */\n.gantt-container *:focus,\n.gantt-container *:focus-visible {\n outline: none;\n}\n\n/* Prevent text selection by cursor inside the gantt chart */\n.gantt-container * {\n user-select: none;\n}","/**\n * TimeScaleHeader Component Styles - Two-row header layout\n */\n\n.gantt-tsh-header {\n display: flex;\n flex-direction: column;\n background-color: var(--gantt-cell-background);\n /* border-bottom: var(--gantt-week-separator-width, 1px) solid var(--gantt-week-separator-color, #374151); */\n border-bottom: none;\n box-sizing: border-box;\n}\n\n/* Month row (top row) */\n.gantt-tsh-monthRow {\n display: flex;\n border-bottom: var(--gantt-day-line-width, 1px) solid var(--gantt-day-line-color, #f3f4f6);\n align-items: center;\n}\n\n.gantt-tsh-monthCell {\n box-sizing: border-box;\n padding: 0.1rem 0.5rem;\n font-size: 0.75rem;\n font-weight: 600;\n color: #1f2937;\n text-align: left;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n}\n\n/* Day row (bottom row) */\n.gantt-tsh-dayRow {\n display: grid;\n box-sizing: border-box;\n}\n\n.gantt-tsh-dayCell {\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n\n/* Separator divs — absolutely positioned, pixel-aligned with GridBackground.\n top/bottom/height set via inline style per separator (fullHeight vs row-2-only). */\n.gantt-tsh-separator {\n position: absolute;\n width: 1px;\n background-color: var(--gantt-week-separator-color, #e5e7eb);\n pointer-events: none;\n z-index: 1;\n}\n\n.gantt-tsh-separator--thick {\n background-color: var(--gantt-month-separator-color, #a1a1a1);\n}\n\n.gantt-tsh-dayLabel {\n font-size: 0.75rem;\n font-weight: 500;\n color: #374151;\n}\n\n.gantt-tsh-weekendDay {\n background-color: var(--gantt-weekend-background, #fef3f2);\n}\n\n.gantt-tsh-weekendDay .gantt-tsh-dayLabel {\n color: #ef4444;\n}\n\n.gantt-tsh-today {\n background-color: #dc2626;\n border-radius: 4px 4px 4px 0;\n}\n\n.gantt-tsh-today .gantt-tsh-dayLabel {\n color: #ffffff;\n}\n\n/* Week-view cell in day row (wider 7-day column) */\n.gantt-tsh-weekCell {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding-left: 0.5rem;\n box-sizing: border-box;\n}","/**\n * TaskRow Component Styles\n */\n\n:root {\n --gantt-task-bar-border-radius: 6px;\n}\n\n.gantt-tr-row {\n position: relative;\n width: 100%;\n border-bottom: 1px solid var(--gantt-grid-line-color);\n box-sizing: border-box;\n}\n\n.gantt-tr-row.gantt-tr-row-filter-match {\n background-color: rgba(250, 204, 21, 0.24);\n}\n\n.gantt-tr-row:hover {\n background-color: rgba(59, 130, 246, 0.04);\n}\n\n.gantt-tr-row.gantt-tr-row-filter-match:hover {\n background-color: rgba(250, 204, 21, 0.3);\n}\n\n.gantt-tr-taskBar {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n border-radius: var(--gantt-task-bar-border-radius);\n display: flex;\n align-items: center;\n padding: 0 0.5rem;\n box-sizing: border-box;\n white-space: nowrap;\n overflow: hidden;\n transition: box-shadow 0.15s ease;\n cursor: grab;\n}\n\n.gantt-tr-milestone {\n border-radius: 2px;\n overflow: visible;\n transform: translateY(-50%) rotate(45deg);\n transform-origin: center;\n box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 15%, transparent);\n}\n\n.gantt-tr-milestone:hover {\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.18);\n}\n\n/**\n * Hover state - provides smooth visual feedback\n * Transition disabled during drag (see .gantt-tr-taskBar.gantt-tr-dragging)\n */\n.gantt-tr-taskBar:hover {\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);\n}\n\n/**\n * Dragging state - disables all transitions for performance\n *\n * CRITICAL: transition: none !important is required to override the\n * default box-shadow transition on .gantt-tr-taskBar. Without this, CSS transitions\n * during drag cause lag/ghosting and break the 60fps performance target.\n *\n * Per research anti-pattern: \"Using CSS transitions during drag causes lag/ghosting.\"\n */\n.gantt-tr-taskBar.gantt-tr-dragging {\n cursor: grabbing;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);\n opacity: 1;\n transition: none !important;\n}\n\n.gantt-tr-taskDuration {\n color: var(--gantt-task-bar-text-color);\n font-size: 0.875rem;\n font-weight: 500;\n white-space: nowrap;\n margin-right: 4px;\n}\n\n.gantt-tr-rightLabels {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n gap: 4px;\n pointer-events: none;\n padding-left: 4px;\n}\n\n.gantt-tr-dateLabelRight {\n position: static;\n margin-right: 0;\n}\n\n.gantt-tr-externalTaskName {\n font-size: 0.9rem;\n font-weight: 500;\n color: inherit;\n white-space: nowrap;\n user-select: none;\n}\n\n.gantt-tr-resizeHandle {\n position: absolute;\n top: 0;\n width: 20px;\n height: 100%;\n cursor: ew-resize;\n pointer-events: auto;\n z-index: 10;\n}\n\n.gantt-tr-resizeHandleLeft {\n left: 0;\n}\n\n.gantt-tr-resizeHandleRight {\n right: 0;\n}\n\n.gantt-tr-resizeZoneLeft {\n cursor: ew-resize;\n}\n\n.gantt-tr-resizeZoneRight {\n cursor: ew-resize;\n}\n\n.gantt-tr-taskContainer {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n}\n\n.gantt-tr-leftLabels {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n pointer-events: none;\n}\n\n.gantt-tr-dateLabel {\n font-size: 0.85rem;\n color: #6b7280;\n white-space: nowrap;\n pointer-events: none;\n user-select: none;\n}\n\n.gantt-tr-dateLabelLeft {\n position: absolute;\n right: 100%;\n margin-right: 6px;\n top: 50%;\n transform: translateY(-50%);\n}\n\n/* Extra margin when lock icon is present */\n.gantt-tr-leftLabels-locked .gantt-tr-dateLabelLeft {\n margin-right: 22px;\n}\n\n/* Progress bar overlay */\n.gantt-tr-progressBar {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n z-index: 1;\n pointer-events: none;\n border-radius: var(--gantt-task-bar-border-radius) 0 0 var(--gantt-task-bar-border-radius);\n transition: width 0.3s ease;\n}\n\n/* Ensure text stays above progress bar.\n NOTE: .gantt-tr-resizeHandle is intentionally excluded here because it already\n uses position: absolute with z-index: 10, which places it above the progress bar.\n Adding position: relative here would override position: absolute and break the\n absolute positioning that anchors handles to the bar edges. */\n.gantt-tr-taskDuration {\n position: relative;\n z-index: 2;\n}\n\n/* Disable transition during drag */\n.gantt-tr-taskBar.gantt-tr-dragging .gantt-tr-progressBar {\n transition: none !important;\n}\n\n/* Progress text inside task bar */\n.gantt-tr-progressText {\n color: var(--gantt-task-bar-text-color);\n font-size: 0.875rem;\n font-weight: 500;\n white-space: nowrap;\n margin-left: 4px;\n position: relative;\n z-index: 2;\n}\n\n/* Progress text outside task bar (before task name) */\n.gantt-tr-externalProgress {\n font-size: 0.85rem;\n font-weight: 500;\n color: inherit;\n white-space: nowrap;\n}\n\n/* Duration text outside task bar (before progress and task name) */\n.gantt-tr-externalDuration {\n font-size: 0.875rem;\n font-weight: 600;\n color: inherit;\n white-space: nowrap;\n}\n\n/* Locked task bar state — consumer CSS override point */\n.gantt-tr-taskBar.gantt-tr-locked {\n cursor: not-allowed;\n}\n\n/* Divider line for visual grouping of task sets */\n.gantt-tr-divider {\n position: absolute;\n left: 0;\n width: 100%;\n height: 0;\n border-top: 1px solid var(--gantt-divider-grid-color, #d4bceb);\n pointer-events: none;\n z-index: 0;\n}\n\n.gantt-tr-divider-top {\n top: 0;\n}\n\n.gantt-tr-divider-bottom {\n bottom: 0;\n}\n\n/* ============================================================================\n Parent Task Bar Styles (Phase 19)\n ============================================================================ */\n\n/* Parent task bar - MS Project bracket style */\n.gantt-tr-parentBar {\n background-color: var(--gantt-parent-bar-color, #333333);\n height: var(--gantt-parent-bar-height, 14px) !important;\n border-radius: var(--gantt-parent-bar-radius, 8px) var(--gantt-parent-bar-radius, 8px) 0 0;\n position: relative;\n overflow: visible;\n /* Allow trapezoid ears to extend below the bar */\n /* Center the entire shape (bar + ears) vertically */\n /* Total height = 14px (bar) + 8px (ears) = 22px, midpoint at 11px from top */\n top: calc(50% - 20px);\n transform: none;\n}\n\n/* Trapezoid ears for bracket appearance */\n.gantt-tr-parentBar::before,\n.gantt-tr-parentBar::after {\n content: \"\";\n position: absolute;\n top: calc(var(--gantt-parent-bar-height, 14px) - 1px);\n height: var(--gantt-parent-ear-depth, 8px);\n width: var(--gantt-parent-ear-width, 10px);\n background-color: var(--gantt-parent-bar-color, #333333);\n}\n\n.gantt-tr-parentBar::before {\n left: 0;\n clip-path: polygon(0 0, 100% 0, 60% 100%, 0 100%);\n}\n\n.gantt-tr-parentBar::after {\n right: 0;\n clip-path: polygon(0 0, 100% 0, 100% 100%, 40% 100%);\n}\n","/**\n * TodayIndicator Component Styles\n */\n\n.gantt-ti-indicator {\n position: absolute;\n top: -1px;\n bottom: 0;\n z-index: 0;\n pointer-events: none;\n}",".gantt-gb-gridBackground {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n pointer-events: none;\n}\n\n.gantt-gb-weekendBlock {\n position: absolute;\n top: 0;\n height: 100%;\n background-color: var(--gantt-weekend-background, #fee2e2);\n}\n\n.gantt-gb-gridLine {\n position: absolute;\n top: 0;\n height: 100%;\n background-color: var(--gantt-day-line-color, #f3f4f6);\n}\n\n.gantt-gb-monthSeparator {\n width: var(--gantt-month-separator-width, 2px);\n background-color: var(--gantt-month-separator-color, #374151);\n}\n\n.gantt-gb-weekSeparator {\n width: var(--gantt-week-separator-width, 1px);\n background-color: var(--gantt-week-separator-color, #d1d5db);\n}\n\n.gantt-gb-dayLine {\n width: var(--gantt-day-line-width, 1px);\n background-color: var(--gantt-day-line-color, #f3f4f6);\n}\n",".gantt-dgl-guideLine {\n position: absolute;\n top: 0;\n width: 2px;\n background-color: var(--gantt-drag-guide-line-color, #3b82f6);\n z-index: 20;\n pointer-events: none;\n opacity: 0.6;\n}\n","/* SVG overlay for dependency lines */\n.gantt-dependencies-svg {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n /* Allow clicks to pass through to task bars */\n overflow: visible;\n}\n\n/* Dependency line path */\n.gantt-dependency-path {\n fill: none;\n stroke: var(--gantt-dependency-line-color, #666666);\n stroke-width: 1;\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n\n/* Virtual dependency lines (for hidden tasks inside collapsed parents) */\n.gantt-dependency-virtual {\n stroke-dasharray: 4 2;\n opacity: 0.6;\n}\n\n/* Circular dependency highlighting */\n.gantt-dependency-cycle {\n stroke: var(--gantt-dependency-cycle-color, #ef4444);\n}\n\n/* Selected dependency highlighting */\n.gantt-dependency-selected {\n stroke: #ef4444;\n stroke-width: 2;\n}\n\n/* Arrow markers */\n.gantt-dependency-arrow polygon {\n fill: var(--gantt-dependency-line-color, #666666);\n}\n\n.gantt-dependency-arrow-cycle polygon {\n fill: var(--gantt-dependency-cycle-color, #ef4444);\n}\n\n/* Lag label styling */\n.gantt-dependency-lag-label {\n font-size: 10px;\n font-weight: 500;\n pointer-events: none;\n user-select: none;\n opacity: 0.85;\n}","/**\n * TaskList Component Styles\n * Sticky positioned in flex container - stays at left edge during horizontal scroll\n * Always rendered in DOM for stable positioning, visibility controlled via prop\n */\n\n.gantt-tl-overlay {\n position: sticky;\n left: 0;\n top: 0;\n z-index: 15;\n background-color: var(--gantt-cell-background, #ffffff);\n border-right: 1px solid var(--gantt-grid-line-color, #e0e0e0);\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n pointer-events: auto;\n width: var(--tasklist-width);\n min-width: var(--tasklist-width);\n}\n\n.gantt-tl-overlay.gantt-tl-overlay-shadowed {\n box-shadow: 10px 0 18px -14px rgba(15, 23, 42, 0.45);\n}\n\n/* Hidden state - animated slide out while preserving layout */\n.gantt-tl-overlay.gantt-tl-hidden {\n opacity: 0;\n visibility: hidden;\n transform: translateX(-100%);\n pointer-events: none;\n width: 0 !important;\n min-width: 0 !important;\n overflow: hidden;\n}\n\n.gantt-tl-overlay {\n transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease, width 0.25s ease, min-width 0.25s ease;\n}\n\n.gantt-tl-table {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-width: var(--tasklist-width);\n}\n\n/* Header row - sticky during vertical scroll */\n.gantt-tl-header {\n position: sticky;\n top: 0;\n display: flex;\n background-color: var(--gantt-cell-background, #ffffff);\n border-bottom: 1px solid var(--gantt-grid-line-color, #e0e0e0);\n box-sizing: border-box;\n z-index: 5;\n}\n\n.gantt-tl-headerCell {\n display: flex;\n align-items: center;\n padding: 0 0.5rem;\n font-size: 0.75rem;\n font-weight: 600;\n color: #6b7280;\n box-sizing: border-box;\n border-right: var(--gantt-tl-vertical-separators);\n}\n\n.gantt-tl-headerCell:last-child {\n border-right: none;\n}\n\n/* Body container */\n.gantt-tl-body {\n display: flex;\n flex-direction: column;\n}\n\n/* Data rows */\n.gantt-tl-row {\n display: flex;\n border-bottom: 1px solid var(--gantt-grid-line-color, #e0e0e0);\n box-sizing: border-box;\n cursor: pointer;\n position: relative;\n}\n\n.gantt-tl-row-filter-match {\n background-color: rgba(250, 204, 21, 0.24);\n}\n\n.gantt-tl-row:hover {\n box-shadow: inset 0 0 0 9999px rgba(17, 24, 39, 0.04);\n}\n\n.gantt-tl-row-filter-match:hover {\n box-shadow: inset 0 0 0 9999px rgba(250, 204, 21, 0.3);\n}\n\n.gantt-tl-row-selected {\n box-shadow: inset 0 0 0 9999px rgba(17, 24, 39, 0.08);\n}\n\n.gantt-tl-row-dependency-selected {\n box-shadow: inset 0 0 0 9999px rgba(5, 150, 105, 0.12);\n}\n\n.gantt-tl-row-dependency-selected:hover {\n box-shadow: inset 0 0 0 9999px rgba(5, 150, 105, 0.16);\n}\n\n.gantt-tl-row-dependency-owner {\n box-shadow: inset 0 0 0 9999px rgba(37, 99, 235, 0.12);\n}\n\n.gantt-tl-row-dependency-owner:hover {\n box-shadow: inset 0 0 0 9999px rgba(37, 99, 235, 0.16);\n}\n\n/* Hierarchy row styles */\n.gantt-tl-row-child {\n padding-left: 0;\n}\n\n\n.gantt-tl-row-parent {\n font-weight: 600;\n /* background-color: var(--gantt-parent-row-bg, #f2ebf9); */\n}\n\n/* Bold dates in parent rows */\n.gantt-tl-row-parent .gantt-datepicker-trigger {\n font-weight: 600;\n}\n\n.gantt-tl-collapse-btn {\n position: absolute;\n left: 4px;\n top: 50%;\n transform: translateY(-50%);\n z-index: 2;\n width: 18px;\n height: 18px;\n border: none;\n background: transparent;\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--gantt-text-color, #374151);\n padding: 0;\n transition: background-color 0.15s ease;\n}\n\n.gantt-tl-collapse-btn:hover {\n background-color: transparent;\n}\n\n.gantt-tl-collapse-btn svg {\n transition: transform 0.15s ease;\n}\n\n.gantt-tl-collapse-btn:not(.gantt-tl-collapse-btn-collapsed) svg {\n transform: rotate(90deg);\n}\n\n/* Cells */\n.gantt-tl-cell {\n display: flex;\n align-items: center;\n padding: 0 0.5rem;\n box-sizing: border-box;\n border-right: var(--gantt-tl-vertical-separators);\n font-size: 0.85rem;\n color: #374151;\n}\n\n.gantt-tl-cell:last-child {\n border-right: none;\n}\n\n.gantt-tl-cell-number {\n width: 32px;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: 0;\n padding: 0 2px 0 6px;\n flex-shrink: 0;\n cursor: pointer;\n position: relative;\n}\n\n/* Drag handle (hidden by default, reveal on row hover) */\n.gantt-tl-drag-handle {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding-left: 8px;\n cursor: grab;\n color: #9ca3af;\n visibility: hidden;\n user-select: none;\n background: transparent;\n}\n\n.gantt-tl-row:hover .gantt-tl-drag-handle,\n.gantt-tl-row-dragging .gantt-tl-drag-handle {\n visibility: visible;\n}\n\n.gantt-tl-row:hover .gantt-tl-num-label {\n visibility: hidden;\n}\n\n.gantt-tl-num-label {\n font-size: 0.75rem;\n opacity: 0.45;\n}\n\n.gantt-tl-drag-handle:active {\n cursor: grabbing;\n}\n\n/* Dragging row (semi-transparent background, blue text) */\n.gantt-tl-row-dragging {\n background-color: rgba(59, 130, 246, 0.15);\n}\n\n.gantt-tl-row-dragging .gantt-tl-cell,\n.gantt-tl-row-dragging .gantt-tl-name-trigger,\n.gantt-tl-row-dragging .gantt-tl-num-label {\n color: #3b82f6 !important;\n}\n\n/* Drop target indicator (blue top border) - uses ::before to avoid layout shift */\n.gantt-tl-row-drag-over {\n position: relative;\n}\n\n.gantt-tl-row-drag-over::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 2px;\n background-color: #3b82f6;\n z-index: 1;\n}\n\n/* Navigate icon removed - single click on task name now selects row */\n\n/* Restore left padding for the name column header */\n.gantt-tl-headerCell.gantt-tl-cell-name {\n padding-left: 4px;\n}\n\n/* Name cell — overflow visible so overlay input can extend past boundaries */\n.gantt-tl-cell-name {\n flex: 1;\n min-width: 160px;\n position: relative;\n overflow: visible;\n align-items: center;\n padding: 0 4px;\n /* add right padding for button space */\n}\n\n/* Date cell — relative for transparent picker overlay */\n.gantt-tl-cell-date {\n width: 68px;\n justify-content: center;\n flex-shrink: 0;\n position: relative;\n padding: 0;\n}\n\n/* Duration cell */\n.gantt-tl-cell-duration {\n width: 46px;\n flex-shrink: 0;\n justify-content: center;\n padding: 0 4px;\n cursor: pointer;\n position: relative;\n overflow: visible;\n font-variant-numeric: tabular-nums;\n}\n\n/* Progress cell */\n.gantt-tl-cell-progress {\n width: 56px;\n flex-shrink: 0;\n justify-content: center;\n padding: 0 4px;\n cursor: pointer;\n position: relative;\n overflow: visible;\n font-variant-numeric: tabular-nums;\n}\n\n.gantt-tl-number-editor {\n position: absolute;\n inset: 0;\n}\n\n.gantt-tl-number-input {\n width: 100%;\n height: 100%;\n padding: 0 18px 0 6px;\n border-width: 1px;\n border-color: #93c5fd;\n border-radius: 8px;\n text-align: left;\n font-size: 0.8rem;\n line-height: 1;\n box-shadow: 0 0 0 1px rgba(147, 197, 253, 0.35);\n}\n\n.gantt-tl-number-input::-webkit-outer-spin-button,\n.gantt-tl-number-input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\n.gantt-tl-number-input[type='number'] {\n -moz-appearance: textfield;\n}\n\n.gantt-tl-number-steppers {\n position: absolute;\n top: 2px;\n right: 2px;\n bottom: 2px;\n width: 14px;\n display: flex;\n flex-direction: column;\n gap: 1px;\n}\n\n.gantt-tl-number-stepper {\n flex: 1;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: none;\n border-radius: 5px;\n background: rgba(248, 250, 252, 0.95);\n color: #64748b;\n padding: 0;\n cursor: pointer;\n transition: background-color 0.15s ease, color 0.15s ease;\n}\n\n.gantt-tl-number-stepper:hover {\n background: #dbeafe;\n color: #1d4ed8;\n}\n\n.gantt-tl-number-stepper:active {\n background: #bfdbfe;\n}\n\n/* Full-cell button trigger for name edit */\n.gantt-tl-name-trigger {\n display: flex;\n align-items: center;\n position: absolute;\n inset: 0;\n padding: 0 4px;\n /* match parent cell padding so text stays visually aligned */\n font-size: 0.8rem;\n line-height: 1.2;\n font-family: inherit;\n font-weight: inherit;\n color: #374151;\n background: transparent;\n border: none;\n cursor: pointer;\n text-align: left;\n user-select: none;\n box-sizing: border-box;\n}\n\n.gantt-tl-name-trigger-text {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n overflow: hidden;\n white-space: normal;\n word-break: break-word;\n}\n\n.gantt-tl-name-trigger-parent {\n padding-left: 26px;\n}\n\n.gantt-tl-name-trigger-child {\n padding-left: 24px;\n}\n\n.gantt-tl-name-trigger:hover,\n.gantt-tl-name-trigger:active {\n background-color: transparent;\n}\n\n/* Name edit — Input component used as floating overlay */\n.gantt-tl-name-input {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 100;\n height: 100%;\n min-width: 520px;\n width: 100%;\n border-width: 2px;\n border-color: #3b82f6;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);\n white-space: nowrap;\n}\n\n.gantt-tl-name-input-child {\n padding-left: 24px;\n}\n\n.gantt-tl-name-input:focus {\n box-shadow: 0 2px 10px rgba(59, 130, 246, 0.3);\n}\n\n.gantt-tl-name-color-stripe {\n position: absolute;\n right: 6px;\n top: 50%;\n width: 6px;\n height: 18px;\n border-radius: 1px;\n transform: translateY(-50%);\n /* box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.35); */\n pointer-events: none;\n}\n\n/* Name cell action buttons container */\n.gantt-tl-name-actions {\n position: absolute;\n right: 4px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n gap: 4px;\n align-items: center;\n}\n\n/* Name cell action buttons — hover-reveal */\n.gantt-tl-name-action-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: none;\n border-radius: 4px;\n width: 20px;\n height: 20px;\n padding: 0;\n cursor: pointer;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.15s ease, background-color 0.15s ease;\n}\n\n/* Reveal buttons on row hover (any part of the row) */\n.gantt-tl-row:hover .gantt-tl-name-action-btn {\n opacity: 1;\n pointer-events: auto;\n}\n\n/* Hierarchy action buttons (promote/demote) */\n.gantt-tl-action-buttons {\n display: flex;\n gap: 4px;\n opacity: 0;\n transition: opacity 0.15s ease;\n pointer-events: none;\n}\n\n.gantt-tl-row:hover .gantt-tl-action-buttons {\n opacity: 1;\n pointer-events: auto;\n}\n\n.gantt-tl-action-btn {\n padding: 2px 8px;\n font-size: 11px;\n border: 1px solid var(--gantt-grid-line-color, #e0e0e0);\n background: white;\n border-radius: 4px;\n cursor: pointer;\n white-space: nowrap;\n transition: background 0.15s ease, border-color 0.15s ease;\n}\n\n.gantt-tl-action-btn:hover {\n background: var(--gantt-cell-background, #f9fafb);\n border-color: var(--gantt-primary-color, #3b82f6);\n}\n\n.gantt-tl-action-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n/* Dependencies column — header and data cells */\n.gantt-tl-cell-deps {\n width: 90px;\n flex-shrink: 0;\n flex-wrap: wrap;\n gap: 4px;\n padding: 2px 4px;\n align-items: center;\n overflow: visible;\n position: relative;\n}\n\n/* Insert button styling (blue) */\n.gantt-tl-action-insert {\n background-color: #3b82f6;\n color: white;\n}\n\n.gantt-tl-action-insert:hover {\n background-color: #2563eb;\n}\n\n/* Delete button styling (red) */\n.gantt-tl-action-delete {\n background-color: #ef4444;\n color: white;\n}\n\n.gantt-tl-action-delete:hover {\n background-color: #dc2626;\n}\n\n/* Delete button confirmation state — removed, now in context menu */\n\n/* Context menu (three dots) */\n.gantt-tl-action-context {\n background-color: #e5e7eb;\n color: #374151;\n}\n\n.gantt-tl-action-context:hover {\n background-color: #d1d5db;\n}\n\n.gantt-tl-context-menu {\n min-width: 140px !important;\n padding: 4px !important;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.gantt-tl-context-menu-item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 6px 10px;\n border: none;\n border-radius: 4px;\n background: transparent;\n font-size: 0.8rem;\n font-family: inherit;\n cursor: pointer;\n color: #374151;\n white-space: nowrap;\n}\n\n.gantt-tl-context-menu-item:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.gantt-tl-context-menu-item-danger {\n color: #ef4444;\n}\n\n.gantt-tl-context-menu-item-danger:hover {\n background-color: rgba(239, 68, 68, 0.08);\n color: #dc2626;\n}\n\n.gantt-tl-context-menu-section {\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding: 6px 6px 8px;\n border-bottom: 1px solid rgba(148, 163, 184, 0.22);\n margin-bottom: 2px;\n}\n\n.gantt-tl-context-menu-label {\n font-size: 0.72rem;\n font-weight: 600;\n color: #6b7280;\n}\n\n.gantt-tl-context-menu-item-toggle {\n width: 100%;\n justify-content: space-between;\n}\n\n.gantt-tl-context-menu-item-main {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n}\n\n.gantt-tl-color-grid {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 6px;\n}\n\n.gantt-tl-color-swatch {\n width: 24px;\n height: 24px;\n border-radius: 999px;\n border: 1px solid rgba(15, 23, 42, 0.12);\n cursor: pointer;\n position: relative;\n transition: transform 0.12s ease, box-shadow 0.12s ease;\n}\n\n.gantt-tl-color-swatch:hover {\n transform: scale(1.05);\n}\n\n.gantt-tl-color-swatch-inline {\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n}\n\n.gantt-tl-color-swatch.is-selected {\n box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px rgba(59, 130, 246, 0.5);\n}\n\n.gantt-tl-color-swatch-clear {\n background: linear-gradient(135deg, #f8fafc, #e2e8f0);\n}\n\n.gantt-tl-color-swatch-clear-line {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 16px;\n height: 1px;\n background: rgba(100, 116, 139, 0.7);\n border-radius: 999px;\n transform: translate(-50%, -50%) rotate(-45deg);\n}\n\n/* Single hierarchy button with directional arrow */\n.gantt-tl-action-hierarchy {\n width: 20px;\n height: 20px;\n padding: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background-color: #4b5563;\n color: white;\n}\n\n.gantt-tl-action-hierarchy:hover {\n background-color: #374151;\n}\n\n/* Type switcher button in header */\n.gantt-tl-dep-type-trigger {\n display: flex;\n align-items: center;\n gap: 2px;\n font-size: 0.75rem;\n font-weight: 600;\n color: #6b7280;\n background: transparent;\n border: none;\n cursor: pointer;\n padding: 0;\n white-space: nowrap;\n font-family: inherit;\n}\n\n.gantt-tl-dep-type-trigger:disabled {\n cursor: default;\n opacity: 0.7;\n}\n\n.gantt-tl-dep-type-trigger:not(:disabled):hover {\n color: #3b82f6;\n}\n\n/* Dropdown option buttons inside Popover */\n.gantt-tl-dep-type-menu {\n display: flex;\n flex-direction: column;\n padding: 4px;\n min-width: 180px;\n}\n\n.gantt-tl-dep-type-option {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: 8px;\n padding: 4px 8px;\n font-size: 0.8rem;\n font-family: inherit;\n background: transparent;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n color: #374151;\n}\n\n.gantt-tl-dep-type-option:hover {\n background-color: rgba(59, 130, 246, 0.1);\n}\n\n.gantt-tl-dep-type-option.active {\n background-color: rgba(59, 130, 246, 0.2);\n font-weight: 600;\n color: #1d4ed8;\n}\n\n/* Dependency chip — clickable to select and trigger predecessor-side delete */\n.gantt-tl-dep-chip {\n display: inline-flex;\n align-items: center;\n gap: 1px;\n background-color: rgba(59, 130, 246, 0.12);\n /* border: 1px solid rgba(59, 130, 246, 0.3); */\n border-radius: 6px;\n padding: 4px 4px;\n font-size: 0.7rem;\n color: #1d4ed8;\n white-space: nowrap;\n line-height: 14px;\n cursor: pointer;\n min-width: 42px;\n justify-content: center;\n}\n\n/* Selected chip visual highlight — inverted */\n.gantt-tl-dep-chip-selected {\n background-color: #2563eb;\n border-color: #2563eb;\n color: #fff;\n font-weight: 600;\n}\n\n/* Chip + trash button wrapper — keeps chip and delete button visually inline */\n.gantt-tl-dep-chip-wrapper {\n display: inline-flex;\n align-items: center;\n gap: 2px;\n}\n\n/* Inline trash button — hidden by default, shown only when chip is selected */\n.gantt-tl-dep-chip-trash {\n display: none;\n align-items: center;\n justify-content: center;\n align-self: stretch;\n background: #ef4444;\n border: none;\n border-radius: 3px;\n padding: 0 4px;\n cursor: pointer;\n color: #fff;\n flex-shrink: 0;\n line-height: 0;\n}\n\n/* Show trash only when chip is selected */\n.gantt-tl-dep-chip-wrapper:has(.gantt-tl-dep-chip-selected) .gantt-tl-dep-chip-trash {\n display: inline-flex;\n}\n\n.gantt-tl-dep-chip-trash:hover {\n background-color: #dc2626;\n}\n\n/* Dep chip info popover — human-readable dependency description on click */\n.gantt-tl-dep-info-popover {\n font-size: 0.75rem;\n color: #374151;\n padding: 6px 10px !important;\n max-width: 260px;\n line-height: 1.4;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.gantt-tl-dep-info-prefix {\n color: #6b7280;\n}\n\n.gantt-tl-dep-info-name {\n font-weight: 500;\n color: #111827;\n white-space: normal;\n word-break: break-word;\n}\n\n/* Dep edit popover — interactive lag counter and delete button */\n.gantt-tl-dep-edit-popover {\n font-size: 0.85rem;\n color: #374151;\n padding: 10px 12px;\n display: flex;\n flex-direction: column;\n gap: 6px;\n min-width: 200px;\n}\n\n.gantt-tl-dep-edit-row {\n display: flex;\n align-items: center;\n gap: 4px;\n flex-wrap: wrap;\n}\n\n.gantt-tl-dep-edit-label {\n min-width: 8em;\n}\n\n.gantt-tl-dep-edit-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 22px;\n height: 22px;\n border: 1px solid #d1d5db;\n border-radius: 4px;\n background: #f9fafb;\n cursor: pointer;\n color: #374151;\n padding: 0;\n line-height: 1;\n}\n\n.gantt-tl-dep-edit-btn:hover {\n background: #e5e7eb;\n}\n\n\n.gantt-tl-dep-edit-input {\n width: 56px;\n text-align: center;\n background: rgba(59, 130, 246, 0.1);\n border: 1px solid rgba(59, 130, 246, 0.3);\n border-radius: 4px;\n padding: 2px 4px;\n color: #1d4ed8;\n -moz-appearance: textfield;\n}\n\n.gantt-tl-dep-edit-input::-webkit-outer-spin-button,\n.gantt-tl-dep-edit-input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\n.gantt-tl-dep-edit-input:focus {\n outline: none;\n border-color: rgba(59, 130, 246, 0.6);\n background: rgba(59, 130, 246, 0.15);\n}\n\n.gantt-tl-dep-edit-input::placeholder {\n color: #1d4ed8;\n opacity: 0.7;\n font-style: italic;\n}\n\n.gantt-tl-dep-edit-task {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 300px;\n margin-bottom: 6px;\n}\n\n.gantt-tl-dep-edit-pred {\n font-weight: 500;\n color: #111827;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 300px;\n margin-top: 8px;\n margin-bottom: 10px;\n}\n\n.gantt-tl-dep-edit-divider {\n border: none;\n border-top: 1px solid #e5e7eb;\n margin: 2px 0;\n}\n\n.gantt-tl-dep-edit-delete {\n display: flex;\n align-items: center;\n gap: 6px;\n background: none;\n border: none;\n color: #ef4444;\n cursor: pointer;\n padding: 4px 0;\n font-size: 0.8rem;\n font-family: inherit;\n}\n\n.gantt-tl-dep-edit-delete:hover {\n color: #dc2626;\n text-decoration: underline;\n}\n\n/* Actions container for delete + close buttons */\n.gantt-tl-dep-edit-actions {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n}\n\n.gantt-tl-dep-edit-close {\n display: flex;\n align-items: center;\n background: none;\n border: none;\n padding: 4px 0;\n font-size: 0.8rem;\n font-family: inherit;\n color: #6b7280;\n cursor: pointer;\n}\n\n.gantt-tl-dep-edit-close:hover {\n color: #374151;\n text-decoration: underline;\n}\n\n/* Summary chip: \"N связей\" — shown when 2+ deps */\n.gantt-tl-dep-summary-chip {\n display: inline-flex;\n align-items: center;\n background-color: rgba(107, 114, 128, 0.12);\n border: 0px solid rgba(107, 114, 128, 0.3);\n border-radius: 6px;\n padding: 4px 4px;\n font-size: 0.7rem;\n color: #6b7280;\n cursor: pointer;\n white-space: nowrap;\n font-family: inherit;\n min-width: 32px;\n justify-content: center;\n}\n\n.gantt-tl-dep-summary-chip:hover {\n background-color: rgba(59, 130, 246, 0.1);\n color: #1d4ed8;\n border-color: rgba(59, 130, 246, 0.3);\n}\n\n/* \"+N ещё\" overflow button */\n.gantt-tl-dep-overflow-trigger {\n display: inline-flex;\n align-items: center;\n background-color: rgba(107, 114, 128, 0.1);\n border: 1px solid rgba(107, 114, 128, 0.25);\n border-radius: 4px;\n padding: 1px 4px;\n font-size: 0.7rem;\n color: #6b7280;\n cursor: pointer;\n white-space: nowrap;\n font-family: inherit;\n}\n\n.gantt-tl-dep-overflow-trigger:hover {\n background-color: rgba(59, 130, 246, 0.1);\n color: #1d4ed8;\n}\n\n/* Overflow popover content — list of all deps */\n.gantt-tl-dep-overflow-list {\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 8px;\n min-width: 140px;\n}\n\n.gantt-tl-dep-overflow-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n font-size: 0.8rem;\n color: #374151;\n}\n\n/* \"+\" add dependency button */\n.gantt-tl-dep-add {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 0px solid rgba(59, 130, 246, 0.4);\n background-color: rgba(59, 130, 246, 0.12);\n border-radius: 4px;\n width: 30px;\n height: 23px;\n font-size: 0.9rem;\n color: #3b82f6;\n cursor: pointer;\n padding: 0;\n font-family: inherit;\n flex-shrink: 0;\n}\n\n/* Hover-reveal variant for dep add button */\n.gantt-tl-dep-add-hover {\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.15s ease;\n}\n\n.gantt-tl-row:hover .gantt-tl-dep-add-hover {\n opacity: 1;\n pointer-events: auto;\n}\n\n/* Hide add button when a chip is selected (to avoid clutter with delete button) */\n.gantt-tl-dep-add-hidden {\n display: none !important;\n}\n\n.gantt-tl-dep-add:hover {\n background-color: rgba(59, 130, 246, 0.1);\n border-color: #3b82f6;\n}\n\n/* Picker mode: «Связи» cell on all rows becomes a selection target */\n.gantt-tl-row-picking .gantt-tl-cell-deps {\n cursor: crosshair;\n background-color: rgba(59, 130, 246, 0.04);\n}\n\n.gantt-tl-row-picking .gantt-tl-cell-deps:hover {\n background-color: rgba(59, 130, 246, 0.15);\n}\n\n/* Picker mode: current task's own row — clickable to cancel */\n.gantt-tl-row-picking-self .gantt-tl-cell-deps {\n cursor: pointer;\n}\n\n/* Placeholder text shown in source row's deps cell while picking a predecessor */\n.gantt-tl-dep-source-hint {\n font-size: 0.75rem;\n color: #6b7280;\n font-style: italic;\n white-space: normal;\n}\n\n.gantt-tl-dep-source-picker {\n position: absolute;\n top: -80px;\n left: calc(100% + 8px);\n z-index: 20;\n display: flex;\n flex-direction: column;\n gap: 8px;\n width: 280px;\n max-width: 280px;\n padding: 12px 10px 10px;\n border: none;\n border-radius: 10px;\n background: #ffffff;\n box-shadow: 0 18px 40px rgba(15, 23, 42, 0.28);\n}\n\n.gantt-tl-dep-source-direction {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 4px;\n}\n\n.gantt-tl-dep-source-direction-btn {\n border: none;\n border-radius: 8px;\n background: transparent;\n color: #111827;\n padding: 6px 8px;\n font-size: 0.75rem;\n font-family: inherit;\n cursor: pointer;\n}\n\n.gantt-tl-dep-source-direction-btn:hover {\n background: rgba(59, 130, 246, 0.08);\n color: #1d4ed8;\n}\n\n.gantt-tl-dep-source-direction-btn-active,\n.gantt-tl-dep-source-direction-btn-active:hover {\n background: rgba(59, 130, 246, 0.16);\n color: #1d4ed8;\n font-weight: 600;\n}\n\n.gantt-tl-dep-source-types {\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: 4px;\n}\n\n.gantt-tl-dep-source-type-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n min-width: 0;\n border: none;\n border-radius: 8px;\n background: transparent;\n color: #111827;\n padding: 6px 4px;\n cursor: pointer;\n font-size: 0.7rem;\n font-family: inherit;\n}\n\n.gantt-tl-dep-source-type-btn:hover {\n color: #1d4ed8;\n background: rgba(59, 130, 246, 0.08);\n}\n\n.gantt-tl-dep-source-type-btn-active {\n background: rgba(59, 130, 246, 0.16);\n color: #1d4ed8;\n font-weight: 600;\n}\n\n.gantt-tl-dep-source-type-btn-active:hover {\n background: rgba(59, 130, 246, 0.16);\n color: #1d4ed8;\n}\n\n.gantt-tl-dep-source-type-btn span {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.gantt-tl-dep-source-picker-head {\n display: flex;\n align-items: center;\n}\n\n.gantt-tl-dep-source-input {\n width: 100%;\n min-width: 0;\n height: 34px;\n padding: 0 10px;\n border: 1px solid rgba(59, 130, 246, 0.25);\n border-radius: 6px;\n background: #ffffff;\n font-size: 0.82rem;\n font-family: inherit;\n color: #111827;\n}\n\n.gantt-tl-dep-source-input:focus {\n outline: none;\n border-color: #3b82f6;\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.12);\n}\n\n.gantt-tl-dep-source-list {\n display: flex;\n flex-direction: column;\n gap: 4px;\n max-height: 164px;\n overflow-y: auto;\n}\n\n.gantt-tl-dep-source-option {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n border: none;\n border-radius: 6px;\n background: transparent;\n color: #1f2937;\n text-align: left;\n padding: 6px 8px;\n font-size: 0.75rem;\n font-family: inherit;\n cursor: pointer;\n}\n\n.gantt-tl-dep-source-option-label {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.gantt-tl-dep-source-option:hover,\n.gantt-tl-dep-source-option-active {\n background: rgba(59, 130, 246, 0.16);\n color: #1d4ed8;\n}\n\n.gantt-tl-dep-source-option-linked {\n background: rgba(16, 185, 129, 0.12);\n color: #047857;\n}\n\n.gantt-tl-dep-source-option-linked:hover,\n.gantt-tl-dep-source-option-linked.gantt-tl-dep-source-option-active {\n color: #047857;\n background: rgba(16, 185, 129, 0.14);\n}\n\n.gantt-tl-dep-source-option-remove {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n margin-left: 8px;\n border: none;\n border-radius: 999px;\n background: transparent;\n color: transparent;\n cursor: pointer;\n flex-shrink: 0;\n}\n\n.gantt-tl-dep-source-option-linked:hover .gantt-tl-dep-source-option-remove,\n.gantt-tl-dep-source-option-linked.gantt-tl-dep-source-option-active .gantt-tl-dep-source-option-remove {\n color: #dc2626;\n}\n\n.gantt-tl-dep-source-option-remove:hover {\n background: rgba(220, 38, 38, 0.12);\n color: #dc2626;\n}\n\n/* Predecessor cell full-replacement: \"Зависит от [name]\" → hover → \"Удалить\" */\n.gantt-tl-dep-delete-label {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n background: #059669;\n border: none;\n border-radius: 4px;\n padding: 2px 4px;\n font-size: 0.75rem;\n font-family: inherit;\n cursor: pointer;\n color: #fff;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-align: center;\n}\n\n.gantt-tl-dep-delete-label:hover {\n background: #dc2626;\n}\n\n.gantt-tl-dep-delete-label-default {\n display: inline;\n pointer-events: none;\n}\n\n.gantt-tl-dep-delete-label-hover {\n display: none;\n color: #fff;\n font-weight: 600;\n pointer-events: none;\n}\n\n.gantt-tl-dep-delete-label:hover .gantt-tl-dep-delete-label-default {\n display: none;\n}\n\n.gantt-tl-dep-delete-label:hover .gantt-tl-dep-delete-label-hover {\n display: inline;\n}\n\n/* Cycle error banner below header */\n.gantt-tl-dep-error {\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n right: auto;\n min-width: max-content;\n max-width: min(320px, calc(100vw - 32px));\n background-color: #fef2f2;\n border: 1px solid #fca5a5;\n border-radius: 8px;\n box-shadow: 0 10px 24px rgba(127, 29, 29, 0.16);\n padding: 6px 10px;\n font-size: 0.75rem;\n color: #dc2626;\n z-index: 30;\n white-space: normal;\n line-height: 1.35;\n pointer-events: none;\n}\n\n/* Add task button */\n.gantt-tl-add-btn {\n width: 100%;\n padding: 6px 12px;\n text-align: left;\n background: transparent;\n border: none;\n /* border-top: 1px dashed var(--gantt-grid-line-color, #e0e0e0); */\n cursor: pointer;\n font-size: 12px;\n color: var(--gantt-text-muted, #9ca3af);\n transition: background 0.15s ease, color 0.15s ease;\n font-family: inherit;\n}\n\n/* Additional (custom) column cells */\n.gantt-tl-headerCell-custom,\n.gantt-tl-cell-custom {\n flex-shrink: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.gantt-tl-add-btn:hover {\n background: var(--gantt-hover-bg, rgba(0, 0, 0, 0.04));\n color: var(--gantt-text-color, #374151);\n}\n\n/* Blue top border when dragging over the add button */\n.gantt-tl-add-btn-drag-over {\n position: relative;\n background: rgba(59, 130, 246, 0.08);\n color: #3b82f6;\n}\n\n.gantt-tl-add-btn-drag-over::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 2px;\n background-color: #3b82f6;\n}\n\n.gantt-tl-cell-new-name {\n padding: 2px 4px;\n}\n",".gantt-container {\n width: 100%;\n font-family: var(--gantt-font-family, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);\n border: 1px solid var(--gantt-grid-line-color, #e0e0e0);\n background-color: var(--gantt-cell-background, #ffffff);\n border-radius: var(--gantt-container-border-radius, 10px);\n overflow: hidden;\n}\n\n.gantt-scrollContainer {\n overflow: auto;\n position: relative;\n}\n\n/* Wrapper for horizontal scroll content - keeps TaskList and chart together */\n.gantt-scrollContent {\n display: flex;\n min-width: min-content;\n}\n\n.gantt-stickyHeader {\n position: sticky;\n top: 0;\n z-index: 10;\n background-color: var(--gantt-cell-background, #ffffff);\n border-bottom: 1px solid var(--gantt-grid-line-color, #e0e0e0);\n}\n\n.gantt-taskArea {\n position: relative;\n background-color: var(--gantt-cell-background, #ffffff);\n}\n\n.gantt-chartSurface {\n display: block;\n}\n\n/* Hide chart area while keeping TaskList visible */\n.gantt-chartSurface.gantt-chart-hidden {\n display: none;\n}\n\n@media print {\n .gantt-container,\n .gantt-scrollContainer,\n .gantt-scrollContent,\n .gantt-chartSurface,\n .gantt-taskArea {\n overflow: visible !important;\n height: auto !important;\n max-height: none !important;\n }\n\n .gantt-container {\n border-radius: 0;\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/ui.css","../src/styles.css","../src/components/TimeScaleHeader/TimeScaleHeader.css","../src/components/TaskRow/TaskRow.css","../src/components/TodayIndicator/TodayIndicator.css","../src/components/GridBackground/GridBackground.css","../src/components/DragGuideLines/DragGuideLines.css","../src/components/DependencyLines/DependencyLines.css","../src/components/TaskList/TaskList.css","../src/components/GanttChart/GanttChart.css"],"sourcesContent":["/* =========================================================\n * UI Components CSS — gantt-lib theming\n * All classes use gantt- prefix to avoid collisions\n * ========================================================= */\n\n/* CSS Variables for UI components */\n:root {\n --gantt-input-bg: #ffffff;\n --gantt-input-border: #d1d5db;\n --gantt-input-focus-ring: rgba(59, 130, 246, 0.5);\n --gantt-input-text: #1f2937;\n --gantt-input-placeholder: #9ca3af;\n --gantt-input-radius: 6px;\n\n --gantt-popover-bg: #ffffff;\n --gantt-popover-border: #e5e7eb;\n --gantt-popover-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n\n --gantt-calendar-day-hover: #f3f4f6;\n --gantt-calendar-day-selected: #3b82f6;\n --gantt-calendar-day-selected-text: #ffffff;\n --gantt-calendar-day-today-bg: #eff6ff;\n --gantt-calendar-day-today-color: #1d4ed8;\n --gantt-calendar-day-outside-color: #d1d5db;\n --gantt-calendar-day-disabled-color: #d1d5db;\n\n --gantt-calendar-bg: #ffffff;\n --gantt-calendar-text: #1f2937;\n --gantt-calendar-text-weekend: #ef4444;\n --gantt-calendar-text-muted: #9ca3af;\n --gantt-calendar-day-today-border: #3b82f6;\n --gantt-calendar-day-range: #dbeafe;\n --gantt-calendar-day-disabled-text: #d1d5db;\n}\n\n/* =========================================================\n * Input\n * ========================================================= */\n\n.gantt-input {\n display: flex;\n height: 32px;\n width: 100%;\n border-radius: var(--gantt-input-radius);\n border: 1px solid var(--gantt-input-border);\n background-color: var(--gantt-input-bg);\n padding: 0 8px;\n font-size: 0.85rem;\n font-family: inherit;\n color: var(--gantt-input-text);\n transition: border-color 150ms, box-shadow 150ms;\n box-sizing: border-box;\n}\n\n.gantt-input:focus {\n outline: none;\n border-color: #3b82f6;\n box-shadow: 0 0 0 2px var(--gantt-input-focus-ring);\n}\n\n.gantt-input::placeholder {\n color: var(--gantt-input-placeholder);\n}\n\n.gantt-input:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* =========================================================\n * Button\n * ========================================================= */\n\n.gantt-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n font-size: 0.875rem;\n font-family: inherit;\n font-weight: 500;\n padding: 0 12px;\n height: 32px;\n cursor: pointer;\n border: 1px solid var(--gantt-input-border);\n background-color: var(--gantt-input-bg);\n color: var(--gantt-input-text);\n transition: background-color 100ms, box-shadow 100ms;\n user-select: none;\n}\n\n.gantt-btn:hover {\n background-color: var(--gantt-calendar-day-hover);\n}\n\n.gantt-btn:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--gantt-input-focus-ring);\n}\n\n.gantt-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Ghost variant */\n.gantt-btn-ghost {\n background-color: transparent;\n border-color: transparent;\n}\n\n.gantt-btn-ghost:hover {\n background-color: var(--gantt-calendar-day-hover);\n}\n\n/* Outline variant */\n.gantt-btn-outline {\n background-color: transparent;\n}\n\n/* Icon size */\n.gantt-btn-icon {\n width: 28px;\n height: 28px;\n padding: 0;\n}\n\n/* Small size */\n.gantt-btn-sm {\n height: 26px;\n padding: 0 8px;\n font-size: 0.8rem;\n}\n\n/* =========================================================\n * Popover\n * ========================================================= */\n\n.gantt-popover {\n font-family: var(--gantt-font-family);\n background: var(--gantt-popover-bg);\n border: 1px solid var(--gantt-popover-border);\n border-radius: 8px;\n box-shadow: var(--gantt-popover-shadow);\n padding: 4px;\n z-index: 1000;\n outline: none;\n animation: gantt-popover-in 120ms ease-out;\n}\n\n@keyframes gantt-popover-in {\n from {\n opacity: 0;\n transform: scale(0.97) translateY(-4px);\n }\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n}\n\n/* =========================================================\n * DatePicker trigger button\n * ========================================================= */\n\n.gantt-datepicker-trigger {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n padding: 0 8px;\n font-size: 0.85rem;\n font-family: inherit;\n color: var(--gantt-input-text);\n background: transparent;\n border: none;\n cursor: pointer;\n text-align: center;\n user-select: none;\n}\n\n.gantt-datepicker-trigger:hover {\n background-color: transparent;\n border-radius: 0;\n}\n\n.gantt-datepicker-trigger:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--gantt-input-focus-ring);\n border-radius: 2px;\n}\n\n.gantt-datepicker-trigger:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* =========================================================\n * Calendar — custom scrollable (gantt-cal-* / gantt-day-btn)\n * ========================================================= */\n\n.gantt-cal-container {\n max-height: 280px;\n overflow-y: auto;\n user-select: none;\n padding: 8px;\n font-family: inherit;\n background: var(--gantt-calendar-bg);\n color: var(--gantt-calendar-text);\n}\n\n.gantt-cal-month {\n margin-bottom: 16px;\n}\n\n.gantt-cal-month-header {\n font-family: inherit;\n font-size: 0.875rem;\n font-weight: 600;\n padding: 4px 0 8px;\n color: var(--gantt-calendar-text);\n}\n\n.gantt-cal-month-days {\n display: grid;\n grid-template-columns: repeat(7, 32px);\n gap: 2px;\n}\n\n.gantt-cal-empty-day {\n width: 32px;\n height: 32px;\n}\n\n.gantt-cal-weekday {\n width: 32px;\n height: 24px;\n font-size: 0.75rem;\n font-family: inherit;\n font-weight: 500;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--gantt-calendar-text-muted);\n}\n\n.gantt-day-btn {\n width: 32px;\n height: 32px;\n font-size: 0.875rem;\n font-family: inherit;\n border: 1px solid transparent;\n border-radius: 6px;\n background: transparent;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n color: var(--gantt-calendar-text);\n transition: background-color 100ms;\n}\n\n.gantt-day-btn:hover {\n background-color: var(--gantt-calendar-day-hover);\n}\n\n.gantt-day-btn:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--gantt-input-focus-ring);\n}\n\n.gantt-day-btn.today {\n border-color: var(--gantt-calendar-day-today-border);\n font-weight: 600;\n}\n\n.gantt-day-btn.selected {\n background-color: var(--gantt-calendar-day-selected);\n color: var(--gantt-calendar-day-selected-text);\n font-weight: 600;\n}\n\n.gantt-day-btn.selected:hover {\n background-color: var(--gantt-calendar-day-selected);\n opacity: 0.9;\n}\n\n.gantt-day-btn.weekend:not(.selected) {\n color: var(--gantt-calendar-text-weekend);\n}\n\n.gantt-day-btn.past:not(.selected) {\n color: var(--gantt-calendar-text-muted);\n}\n\n.gantt-day-btn.past.weekend:not(.selected) {\n color: #fca5a5;\n}\n\n.gantt-day-btn.disabled {\n color: var(--gantt-calendar-day-disabled-text);\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.gantt-day-btn.disabled:hover {\n background: transparent;\n}\n\n/* =========================================================\n * DatePicker inline date input\n * ========================================================= */\n\n.gantt-datepicker-input-row {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 6px 8px;\n border-bottom: 1px solid var(--gantt-input-border);\n}\n\n.gantt-datepicker-date-input {\n width: 90px;\n flex-shrink: 0;\n font-family: inherit;\n font-size: 0.875rem;\n font-variant-numeric: tabular-nums;\n background: transparent;\n border: 1px solid var(--gantt-input-border);\n border-radius: 4px;\n outline: none;\n color: var(--gantt-input-text);\n cursor: default;\n letter-spacing: 0.05em;\n text-align: center;\n height: 28px;\n padding: 0 4px;\n}\n\n.gantt-datepicker-date-input:focus {\n border-color: #3b82f6;\n box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);\n}\n\n.gantt-datepicker-date-input::selection {\n background: rgba(59, 130, 246, 0.25);\n}\n\n.gantt-datepicker-shift-btn {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: inherit;\n font-size: 0.75rem;\n font-weight: 500;\n padding: 0 7px;\n height: 28px;\n border: none;\n border-radius: 4px;\n background: var(--gantt-calendar-day-hover, rgba(0,0,0,0.07));\n color: var(--gantt-calendar-text);\n cursor: pointer;\n}\n\n.gantt-datepicker-shift-btn:hover {\n background: var(--gantt-input-border, rgba(0,0,0,0.15));\n}\n\n","/* Gantt Chart CSS Variables - User customizable theming */\n@import './components/ui/ui.css';\n\n:root {\n /* Font */\n --gantt-font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n\n /* Grid Colors */\n --gantt-grid-line-color: #e0e0e0;\n --gantt-cell-background: #ffffff;\n --gantt-row-hover-background: #f6f6f7;\n\n /* Dimensions */\n --gantt-row-height: 30px;\n --gantt-header-height: 40px;\n --gantt-day-width: 30px;\n --gantt-container-border-radius: 10px;\n\n /* Task Bar Styling */\n --gantt-task-bar-default-color: #3b82f6;\n --gantt-task-bar-text-color: #ffffff;\n --gantt-task-bar-border-radius: 4px;\n --gantt-task-bar-height: 24px;\n\n /* Today Indicator */\n --gantt-today-indicator-color: rgba(255, 0, 0, 0.6);\n --gantt-today-indicator-width: 2px;\n\n /* Calendar Grid - Weekend */\n --gantt-weekend-background: #fff9f8;\n --gantt-weekend-border: #fca5a5;\n\n /* Calendar Grid - Separators */\n --gantt-month-separator-width: 1px;\n --gantt-month-separator-color: #a1a1a1;\n --gantt-week-separator-width: 1px;\n --gantt-week-separator-color: #f3f4f6;\n --gantt-day-line-width: 1px;\n --gantt-day-line-color: #f3f4f6;\n\n /* Task List - Vertical Separators (hidden by default) */\n --gantt-tl-vertical-separators: none;\n --gantt-tl-vertical-separators-width: 1px solid var(--gantt-grid-line-color, #e0e0e0);\n /* To enable separators, set: --gantt-tl-vertical-separators: var(--gantt-tl-vertical-separators-width); */\n\n /* Progress Bar Colors */\n --gantt-progress-color: rgba(0, 0, 0, 0.4);\n --gantt-progress-completed: #ffb800;\n --gantt-progress-accepted: #17c964;\n\n /* Dependency line colors */\n --gantt-dependency-line-color: rgba(0, 0, 55, 0.8);\n --gantt-dependency-cycle-color: #ef4444;\n\n /* Expired task color */\n --gantt-expired-color: #ef4444;\n\n /* Parent Task Styling (Phase 19) - MS Project bracket style */\n --gantt-parent-bar-color: #782fc4;\n --gantt-parent-bar-height: 20px;\n --gantt-parent-bar-radius: 8px;\n --gantt-parent-ear-depth: 6px;\n --gantt-parent-ear-width: 8px;\n --gantt-parent-row-bg: #eeedfb;\n --gantt-divider-grid-color: #d4bceb;\n --gantt-hierarchy-line-color: #bebcbf;\n /* --gantt-parent-row-bg: #f2ebf9; */\n}\n\n/* Remove browser default focus outlines for all gantt elements */\n.gantt-container *:focus,\n.gantt-container *:focus-visible {\n outline: none;\n}\n\n/* Prevent text selection by cursor inside the gantt chart */\n.gantt-container * {\n user-select: none;\n}","/**\n * TimeScaleHeader Component Styles - Two-row header layout\n */\n\n.gantt-tsh-header {\n display: flex;\n flex-direction: column;\n background-color: var(--gantt-cell-background);\n /* border-bottom: var(--gantt-week-separator-width, 1px) solid var(--gantt-week-separator-color, #374151); */\n border-bottom: none;\n box-sizing: border-box;\n}\n\n/* Month row (top row) */\n.gantt-tsh-monthRow {\n display: flex;\n border-bottom: var(--gantt-day-line-width, 1px) solid var(--gantt-day-line-color, #f3f4f6);\n align-items: center;\n}\n\n.gantt-tsh-monthCell {\n box-sizing: border-box;\n padding: 0.1rem 0.5rem;\n font-size: 0.75rem;\n font-weight: 600;\n color: #1f2937;\n text-align: left;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n}\n\n/* Day row (bottom row) */\n.gantt-tsh-dayRow {\n display: grid;\n box-sizing: border-box;\n}\n\n.gantt-tsh-dayCell {\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n\n/* Separator divs — absolutely positioned, pixel-aligned with GridBackground.\n top/bottom/height set via inline style per separator (fullHeight vs row-2-only). */\n.gantt-tsh-separator {\n position: absolute;\n width: 1px;\n background-color: var(--gantt-week-separator-color, #e5e7eb);\n pointer-events: none;\n z-index: 1;\n}\n\n.gantt-tsh-separator--thick {\n background-color: var(--gantt-month-separator-color, #a1a1a1);\n}\n\n.gantt-tsh-dayLabel {\n font-size: 0.75rem;\n font-weight: 500;\n color: #374151;\n}\n\n.gantt-tsh-weekendDay {\n background-color: var(--gantt-weekend-background, #fef3f2);\n}\n\n.gantt-tsh-weekendDay .gantt-tsh-dayLabel {\n color: #ef4444;\n}\n\n.gantt-tsh-today {\n background-color: #dc2626;\n border-radius: 4px 4px 4px 0;\n}\n\n.gantt-tsh-today .gantt-tsh-dayLabel {\n color: #ffffff;\n}\n\n/* Week-view cell in day row (wider 7-day column) */\n.gantt-tsh-weekCell {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding-left: 0.5rem;\n box-sizing: border-box;\n}","/**\n * TaskRow Component Styles\n */\n\n:root {\n --gantt-task-bar-border-radius: 6px;\n}\n\n.gantt-tr-row {\n position: relative;\n width: 100%;\n border-bottom: 1px solid var(--gantt-grid-line-color);\n box-sizing: border-box;\n}\n\n.gantt-tr-row.gantt-tr-row-filter-match {\n background-color: rgba(250, 204, 21, 0.24);\n}\n\n.gantt-tr-row:hover {\n background-color: rgba(59, 130, 246, 0.04);\n}\n\n.gantt-tr-row.gantt-tr-row-filter-match:hover {\n background-color: rgba(250, 204, 21, 0.3);\n}\n\n.gantt-tr-taskBar {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n z-index: 1;\n border-radius: var(--gantt-task-bar-border-radius);\n display: flex;\n align-items: center;\n padding: 0 0.5rem;\n box-sizing: border-box;\n white-space: nowrap;\n overflow: hidden;\n transition: box-shadow 0.15s ease;\n cursor: grab;\n}\n\n.gantt-tr-milestone {\n border-radius: 2px;\n overflow: visible;\n transform: translateY(-50%) rotate(45deg);\n transform-origin: center;\n box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 15%, transparent);\n}\n\n.gantt-tr-milestone:hover {\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.18);\n}\n\n/**\n * Hover state - provides smooth visual feedback\n * Transition disabled during drag (see .gantt-tr-taskBar.gantt-tr-dragging)\n */\n.gantt-tr-taskBar:hover {\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);\n}\n\n/**\n * Dragging state - disables all transitions for performance\n *\n * CRITICAL: transition: none !important is required to override the\n * default box-shadow transition on .gantt-tr-taskBar. Without this, CSS transitions\n * during drag cause lag/ghosting and break the 60fps performance target.\n *\n * Per research anti-pattern: \"Using CSS transitions during drag causes lag/ghosting.\"\n */\n.gantt-tr-taskBar.gantt-tr-dragging {\n cursor: grabbing;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);\n opacity: 1;\n transition: none !important;\n}\n\n.gantt-tr-taskDuration {\n color: var(--gantt-task-bar-text-color);\n font-size: 0.875rem;\n font-weight: 500;\n white-space: nowrap;\n margin-right: 4px;\n}\n\n.gantt-tr-rightLabels {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n gap: 4px;\n pointer-events: none;\n padding-left: 4px;\n}\n\n.gantt-tr-dateLabelRight {\n position: static;\n margin-right: 0;\n}\n\n.gantt-tr-externalTaskName {\n font-size: 0.9rem;\n font-weight: 500;\n color: inherit;\n white-space: nowrap;\n user-select: none;\n}\n\n.gantt-tr-resizeHandle {\n position: absolute;\n top: 0;\n width: 20px;\n height: 100%;\n cursor: ew-resize;\n pointer-events: auto;\n z-index: 10;\n}\n\n.gantt-tr-resizeHandleLeft {\n left: 0;\n}\n\n.gantt-tr-resizeHandleRight {\n right: 0;\n}\n\n.gantt-tr-resizeZoneLeft {\n cursor: ew-resize;\n}\n\n.gantt-tr-resizeZoneRight {\n cursor: ew-resize;\n}\n\n.gantt-tr-taskContainer {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n}\n\n.gantt-tr-baseline {\n position: absolute;\n top: calc(50% + var(--gantt-task-bar-height, 28px) / 2 + var(--gantt-baseline-offset, -6px));\n z-index: 2;\n height: var(--gantt-baseline-thickness, 6px);\n /* border-radius: 4px; */\n border-right: 3px solid rgba(255, 255, 255, 0.8);\n border-left: 3px solid rgb(255, 255, 255, 0.8);\n /* border: 1px solid rgba(255, 255, 255, 0.689); */\n background-color: var(--gantt-baseline-color, rgba(0, 187, 212, 1));\n pointer-events: none;\n}\n\n.gantt-tr-baseline-parent {\n top: calc(50% + 8px + var(--gantt-baseline-offset, 0px));\n}\n\n.gantt-tr-baseline-milestone {\n top: calc(50% + 10px + var(--gantt-baseline-offset, 0px));\n width: var(--gantt-baseline-milestone-size, 12px) !important;\n height: var(--gantt-baseline-milestone-size, 8px);\n /* border-radius: 999px; */\n transform: translateX(calc(var(--gantt-baseline-milestone-size, 12px) / -2));\n}\n\n.gantt-tr-leftLabels {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n pointer-events: none;\n}\n\n.gantt-tr-dateLabel {\n font-size: 0.85rem;\n color: #6b7280;\n white-space: nowrap;\n pointer-events: none;\n user-select: none;\n}\n\n.gantt-tr-dateLabelLeft {\n position: absolute;\n right: 100%;\n margin-right: 6px;\n top: 50%;\n transform: translateY(-50%);\n}\n\n/* Extra margin when lock icon is present */\n.gantt-tr-leftLabels-locked .gantt-tr-dateLabelLeft {\n margin-right: 22px;\n}\n\n/* Progress bar overlay */\n.gantt-tr-progressBar {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n z-index: 1;\n pointer-events: none;\n border-radius: var(--gantt-task-bar-border-radius) 0 0 var(--gantt-task-bar-border-radius);\n transition: width 0.3s ease;\n}\n\n/* Ensure text stays above progress bar.\n NOTE: .gantt-tr-resizeHandle is intentionally excluded here because it already\n uses position: absolute with z-index: 10, which places it above the progress bar.\n Adding position: relative here would override position: absolute and break the\n absolute positioning that anchors handles to the bar edges. */\n.gantt-tr-taskDuration {\n position: relative;\n z-index: 2;\n}\n\n/* Disable transition during drag */\n.gantt-tr-taskBar.gantt-tr-dragging .gantt-tr-progressBar {\n transition: none !important;\n}\n\n/* Progress text inside task bar */\n.gantt-tr-progressText {\n color: var(--gantt-task-bar-text-color);\n font-size: 0.875rem;\n font-weight: 500;\n white-space: nowrap;\n margin-left: 4px;\n position: relative;\n z-index: 2;\n}\n\n/* Progress text outside task bar (before task name) */\n.gantt-tr-externalProgress {\n font-size: 0.85rem;\n font-weight: 500;\n color: inherit;\n white-space: nowrap;\n}\n\n/* Duration text outside task bar (before progress and task name) */\n.gantt-tr-externalDuration {\n font-size: 0.875rem;\n font-weight: 600;\n color: inherit;\n white-space: nowrap;\n}\n\n/* Locked task bar state — consumer CSS override point */\n.gantt-tr-taskBar.gantt-tr-locked {\n cursor: not-allowed;\n}\n\n/* Divider line for visual grouping of task sets */\n.gantt-tr-divider {\n position: absolute;\n left: 0;\n width: 100%;\n height: 0;\n border-top: 1px solid var(--gantt-divider-grid-color, #d4bceb);\n pointer-events: none;\n z-index: 0;\n}\n\n.gantt-tr-divider-top {\n top: 0;\n}\n\n.gantt-tr-divider-bottom {\n bottom: 0;\n}\n\n/* ============================================================================\n Parent Task Bar Styles (Phase 19)\n ============================================================================ */\n\n/* Parent task bar - MS Project bracket style */\n.gantt-tr-parentBar {\n background-color: var(--gantt-parent-bar-color, #333333);\n height: var(--gantt-parent-bar-height, 14px) !important;\n border-radius: var(--gantt-parent-bar-radius, 8px) var(--gantt-parent-bar-radius, 8px) 0 0;\n position: relative;\n overflow: visible;\n /* Allow trapezoid ears to extend below the bar */\n /* Center the entire shape (bar + ears) vertically */\n /* Total height = 14px (bar) + 8px (ears) = 22px, midpoint at 11px from top */\n top: calc(50% - 20px);\n transform: none;\n}\n\n/* Trapezoid ears for bracket appearance */\n.gantt-tr-parentBar::before,\n.gantt-tr-parentBar::after {\n content: \"\";\n position: absolute;\n top: calc(var(--gantt-parent-bar-height, 14px) - 1px);\n height: var(--gantt-parent-ear-depth, 8px);\n width: var(--gantt-parent-ear-width, 10px);\n background-color: var(--gantt-parent-bar-color, #333333);\n}\n\n.gantt-tr-parentBar::before {\n left: 0;\n clip-path: polygon(0 0, 100% 0, 60% 100%, 0 100%);\n}\n\n.gantt-tr-parentBar::after {\n right: 0;\n clip-path: polygon(0 0, 100% 0, 100% 100%, 40% 100%);\n}","/**\n * TodayIndicator Component Styles\n */\n\n.gantt-ti-indicator {\n position: absolute;\n top: -1px;\n bottom: 0;\n z-index: 0;\n pointer-events: none;\n}",".gantt-gb-gridBackground {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n pointer-events: none;\n}\n\n.gantt-gb-weekendBlock {\n position: absolute;\n top: 0;\n height: 100%;\n background-color: var(--gantt-weekend-background, #fee2e2);\n}\n\n.gantt-gb-gridLine {\n position: absolute;\n top: 0;\n height: 100%;\n background-color: var(--gantt-day-line-color, #f3f4f6);\n}\n\n.gantt-gb-monthSeparator {\n width: var(--gantt-month-separator-width, 2px);\n background-color: var(--gantt-month-separator-color, #374151);\n}\n\n.gantt-gb-weekSeparator {\n width: var(--gantt-week-separator-width, 1px);\n background-color: var(--gantt-week-separator-color, #d1d5db);\n}\n\n.gantt-gb-dayLine {\n width: var(--gantt-day-line-width, 1px);\n background-color: var(--gantt-day-line-color, #f3f4f6);\n}\n",".gantt-dgl-guideLine {\n position: absolute;\n top: 0;\n width: 2px;\n background-color: var(--gantt-drag-guide-line-color, #3b82f6);\n z-index: 20;\n pointer-events: none;\n opacity: 0.6;\n}\n","/* SVG overlay for dependency lines */\n.gantt-dependencies-svg {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n /* Allow clicks to pass through to task bars */\n overflow: visible;\n}\n\n/* Dependency line path */\n.gantt-dependency-path {\n fill: none;\n stroke: var(--gantt-dependency-line-color, #666666);\n stroke-width: 1;\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n\n/* Virtual dependency lines (for hidden tasks inside collapsed parents) */\n.gantt-dependency-virtual {\n stroke-dasharray: 4 2;\n opacity: 0.6;\n}\n\n/* Circular dependency highlighting */\n.gantt-dependency-cycle {\n stroke: var(--gantt-dependency-cycle-color, #ef4444);\n}\n\n/* Selected dependency highlighting */\n.gantt-dependency-selected {\n stroke: #ef4444;\n stroke-width: 2;\n}\n\n/* Arrow markers */\n.gantt-dependency-arrow polygon {\n fill: var(--gantt-dependency-line-color, #666666);\n}\n\n.gantt-dependency-arrow-cycle polygon {\n fill: var(--gantt-dependency-cycle-color, #ef4444);\n}\n\n/* Lag label styling */\n.gantt-dependency-lag-label {\n font-size: 10px;\n font-weight: 500;\n pointer-events: none;\n user-select: none;\n opacity: 0.85;\n}","/**\n * TaskList Component Styles\n * Sticky positioned in flex container - stays at left edge during horizontal scroll\n * Always rendered in DOM for stable positioning, visibility controlled via prop\n */\n\n.gantt-tl-overlay {\n position: sticky;\n left: 0;\n top: 0;\n z-index: 15;\n background-color: var(--gantt-cell-background, #ffffff);\n border-right: 1px solid var(--gantt-grid-line-color, #e0e0e0);\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n pointer-events: auto;\n width: var(--tasklist-width);\n min-width: var(--tasklist-width);\n}\n\n.gantt-tl-overlay.gantt-tl-overlay-shadowed {\n box-shadow: 10px 0 18px -14px rgba(15, 23, 42, 0.45);\n}\n\n/* Hidden state - animated slide out while preserving layout */\n.gantt-tl-overlay.gantt-tl-hidden {\n opacity: 0;\n visibility: hidden;\n transform: translateX(-100%);\n pointer-events: none;\n width: 0 !important;\n min-width: 0 !important;\n overflow: hidden;\n}\n\n.gantt-tl-overlay {\n transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease, width 0.25s ease, min-width 0.25s ease;\n}\n\n.gantt-tl-table {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-width: var(--tasklist-width);\n}\n\n/* Header row - sticky during vertical scroll */\n.gantt-tl-header {\n position: sticky;\n top: 0;\n display: flex;\n background-color: var(--gantt-cell-background, #ffffff);\n border-bottom: 1px solid var(--gantt-grid-line-color, #e0e0e0);\n box-sizing: border-box;\n z-index: 5;\n}\n\n.gantt-tl-headerCell {\n display: flex;\n align-items: center;\n padding: 0 0.5rem;\n font-size: 0.75rem;\n font-weight: 600;\n color: #6b7280;\n box-sizing: border-box;\n border-right: var(--gantt-tl-vertical-separators);\n}\n\n.gantt-tl-headerCell:last-child {\n border-right: none;\n}\n\n/* Body container */\n.gantt-tl-body {\n display: flex;\n flex-direction: column;\n}\n\n/* Data rows */\n.gantt-tl-row {\n display: flex;\n border-bottom: 1px solid var(--gantt-grid-line-color, #e0e0e0);\n box-sizing: border-box;\n cursor: pointer;\n position: relative;\n}\n\n.gantt-tl-row-filter-match {\n background-color: rgba(250, 204, 21, 0.24);\n}\n\n.gantt-tl-row:hover {\n box-shadow: inset 0 0 0 9999px rgba(17, 24, 39, 0.04);\n}\n\n.gantt-tl-row-filter-match:hover {\n box-shadow: inset 0 0 0 9999px rgba(250, 204, 21, 0.3);\n}\n\n.gantt-tl-row-selected {\n box-shadow: inset 0 0 0 9999px rgba(17, 24, 39, 0.08);\n}\n\n.gantt-tl-row-dependency-selected {\n box-shadow: inset 0 0 0 9999px rgba(5, 150, 105, 0.12);\n}\n\n.gantt-tl-row-dependency-selected:hover {\n box-shadow: inset 0 0 0 9999px rgba(5, 150, 105, 0.16);\n}\n\n.gantt-tl-row-dependency-owner {\n box-shadow: inset 0 0 0 9999px rgba(37, 99, 235, 0.12);\n}\n\n.gantt-tl-row-dependency-owner:hover {\n box-shadow: inset 0 0 0 9999px rgba(37, 99, 235, 0.16);\n}\n\n/* Hierarchy row styles */\n.gantt-tl-row-child {\n padding-left: 0;\n}\n\n\n.gantt-tl-row-parent {\n font-weight: 600;\n /* background-color: var(--gantt-parent-row-bg, #f2ebf9); */\n}\n\n/* Bold dates in parent rows */\n.gantt-tl-row-parent .gantt-datepicker-trigger {\n font-weight: 600;\n}\n\n.gantt-tl-collapse-btn {\n position: absolute;\n left: 4px;\n top: 50%;\n transform: translateY(-50%);\n z-index: 2;\n width: 18px;\n height: 18px;\n border: none;\n background: transparent;\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--gantt-text-color, #374151);\n padding: 0;\n transition: background-color 0.15s ease;\n}\n\n.gantt-tl-collapse-btn:hover {\n background-color: transparent;\n}\n\n.gantt-tl-collapse-btn svg {\n transition: transform 0.15s ease;\n}\n\n.gantt-tl-collapse-btn:not(.gantt-tl-collapse-btn-collapsed) svg {\n transform: rotate(90deg);\n}\n\n/* Cells */\n.gantt-tl-cell {\n display: flex;\n align-items: center;\n padding: 0 0.5rem;\n box-sizing: border-box;\n border-right: var(--gantt-tl-vertical-separators);\n font-size: 0.85rem;\n color: #374151;\n}\n\n.gantt-tl-cell:last-child {\n border-right: none;\n}\n\n.gantt-tl-cell-number {\n width: 32px;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: 0;\n padding: 0 2px 0 6px;\n flex-shrink: 0;\n cursor: pointer;\n position: relative;\n}\n\n/* Drag handle (hidden by default, reveal on row hover) */\n.gantt-tl-drag-handle {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding-left: 8px;\n cursor: grab;\n color: #9ca3af;\n visibility: hidden;\n user-select: none;\n background: transparent;\n}\n\n.gantt-tl-row:hover .gantt-tl-drag-handle,\n.gantt-tl-row-dragging .gantt-tl-drag-handle {\n visibility: visible;\n}\n\n.gantt-tl-row:hover .gantt-tl-num-label {\n visibility: hidden;\n}\n\n.gantt-tl-num-label {\n font-size: 0.75rem;\n opacity: 0.45;\n}\n\n.gantt-tl-drag-handle:active {\n cursor: grabbing;\n}\n\n/* Dragging row (semi-transparent background, blue text) */\n.gantt-tl-row-dragging {\n background-color: rgba(59, 130, 246, 0.15);\n}\n\n.gantt-tl-row-dragging .gantt-tl-cell,\n.gantt-tl-row-dragging .gantt-tl-name-trigger,\n.gantt-tl-row-dragging .gantt-tl-num-label {\n color: #3b82f6 !important;\n}\n\n/* Drop target indicator (blue top border) - uses ::before to avoid layout shift */\n.gantt-tl-row-drag-over {\n position: relative;\n}\n\n.gantt-tl-row-drag-over::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 2px;\n background-color: #3b82f6;\n z-index: 1;\n}\n\n/* Navigate icon removed - single click on task name now selects row */\n\n/* Restore left padding for the name column header */\n.gantt-tl-headerCell.gantt-tl-cell-name {\n padding-left: 4px;\n}\n\n/* Name cell — overflow visible so overlay input can extend past boundaries */\n.gantt-tl-cell-name {\n flex: 1;\n min-width: 160px;\n position: relative;\n overflow: visible;\n align-items: center;\n padding: 0 4px;\n /* add right padding for button space */\n}\n\n/* Date cell — relative for transparent picker overlay */\n.gantt-tl-cell-date {\n width: 68px;\n justify-content: center;\n flex-shrink: 0;\n position: relative;\n padding: 0;\n}\n\n/* Duration cell */\n.gantt-tl-cell-duration {\n width: 46px;\n flex-shrink: 0;\n justify-content: center;\n padding: 0 4px;\n cursor: pointer;\n position: relative;\n overflow: visible;\n font-variant-numeric: tabular-nums;\n}\n\n/* Progress cell */\n.gantt-tl-cell-progress {\n width: 56px;\n flex-shrink: 0;\n justify-content: center;\n padding: 0 4px;\n cursor: pointer;\n position: relative;\n overflow: visible;\n font-variant-numeric: tabular-nums;\n}\n\n.gantt-tl-number-editor {\n position: absolute;\n inset: 0;\n}\n\n.gantt-tl-number-input {\n width: 100%;\n height: 100%;\n padding: 0 18px 0 6px;\n border-width: 1px;\n border-color: #93c5fd;\n border-radius: 8px;\n text-align: left;\n font-size: 0.8rem;\n line-height: 1;\n box-shadow: 0 0 0 1px rgba(147, 197, 253, 0.35);\n}\n\n.gantt-tl-number-input::-webkit-outer-spin-button,\n.gantt-tl-number-input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\n.gantt-tl-number-input[type='number'] {\n -moz-appearance: textfield;\n}\n\n.gantt-tl-number-steppers {\n position: absolute;\n top: 2px;\n right: 2px;\n bottom: 2px;\n width: 14px;\n display: flex;\n flex-direction: column;\n gap: 1px;\n}\n\n.gantt-tl-number-stepper {\n flex: 1;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: none;\n border-radius: 5px;\n background: rgba(248, 250, 252, 0.95);\n color: #64748b;\n padding: 0;\n cursor: pointer;\n transition: background-color 0.15s ease, color 0.15s ease;\n}\n\n.gantt-tl-number-stepper:hover {\n background: #dbeafe;\n color: #1d4ed8;\n}\n\n.gantt-tl-number-stepper:active {\n background: #bfdbfe;\n}\n\n/* Full-cell button trigger for name edit */\n.gantt-tl-name-trigger {\n display: flex;\n align-items: center;\n position: absolute;\n inset: 0;\n padding: 0 4px;\n /* match parent cell padding so text stays visually aligned */\n font-size: 0.8rem;\n line-height: 1.2;\n font-family: inherit;\n font-weight: inherit;\n color: #374151;\n background: transparent;\n border: none;\n cursor: pointer;\n text-align: left;\n user-select: none;\n box-sizing: border-box;\n}\n\n.gantt-tl-name-trigger-text {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n overflow: hidden;\n white-space: normal;\n word-break: break-word;\n}\n\n.gantt-tl-name-trigger-parent {\n padding-left: 26px;\n}\n\n.gantt-tl-name-trigger-child {\n padding-left: 24px;\n}\n\n.gantt-tl-name-trigger:hover,\n.gantt-tl-name-trigger:active {\n background-color: transparent;\n}\n\n/* Name edit — Input component used as floating overlay */\n.gantt-tl-name-input {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 100;\n height: 100%;\n min-width: 520px;\n width: 100%;\n border-width: 2px;\n border-color: #3b82f6;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);\n white-space: nowrap;\n}\n\n.gantt-tl-name-input-child {\n padding-left: 24px;\n}\n\n.gantt-tl-name-input:focus {\n box-shadow: 0 2px 10px rgba(59, 130, 246, 0.3);\n}\n\n.gantt-tl-name-color-stripe {\n position: absolute;\n right: 6px;\n top: 50%;\n width: 6px;\n height: 18px;\n border-radius: 1px;\n transform: translateY(-50%);\n /* box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.35); */\n pointer-events: none;\n}\n\n/* Name cell action buttons container */\n.gantt-tl-name-actions {\n position: absolute;\n right: 4px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n gap: 4px;\n align-items: center;\n}\n\n/* Name cell action buttons — hover-reveal */\n.gantt-tl-name-action-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: none;\n border-radius: 4px;\n width: 20px;\n height: 20px;\n padding: 0;\n cursor: pointer;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.15s ease, background-color 0.15s ease;\n}\n\n/* Reveal buttons on row hover (any part of the row) */\n.gantt-tl-row:hover .gantt-tl-name-action-btn {\n opacity: 1;\n pointer-events: auto;\n}\n\n/* Hierarchy action buttons (promote/demote) */\n.gantt-tl-action-buttons {\n display: flex;\n gap: 4px;\n opacity: 0;\n transition: opacity 0.15s ease;\n pointer-events: none;\n}\n\n.gantt-tl-row:hover .gantt-tl-action-buttons {\n opacity: 1;\n pointer-events: auto;\n}\n\n.gantt-tl-action-btn {\n padding: 2px 8px;\n font-size: 11px;\n border: 1px solid var(--gantt-grid-line-color, #e0e0e0);\n background: white;\n border-radius: 4px;\n cursor: pointer;\n white-space: nowrap;\n transition: background 0.15s ease, border-color 0.15s ease;\n}\n\n.gantt-tl-action-btn:hover {\n background: var(--gantt-cell-background, #f9fafb);\n border-color: var(--gantt-primary-color, #3b82f6);\n}\n\n.gantt-tl-action-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n/* Dependencies column — header and data cells */\n.gantt-tl-cell-deps {\n width: 90px;\n flex-shrink: 0;\n flex-wrap: wrap;\n gap: 4px;\n padding: 2px 4px;\n align-items: center;\n overflow: visible;\n position: relative;\n}\n\n/* Insert button styling (blue) */\n.gantt-tl-action-insert {\n background-color: #3b82f6;\n color: white;\n}\n\n.gantt-tl-action-insert:hover {\n background-color: #2563eb;\n}\n\n/* Delete button styling (red) */\n.gantt-tl-action-delete {\n background-color: #ef4444;\n color: white;\n}\n\n.gantt-tl-action-delete:hover {\n background-color: #dc2626;\n}\n\n/* Delete button confirmation state — removed, now in context menu */\n\n/* Context menu (three dots) */\n.gantt-tl-action-context {\n background-color: #e5e7eb;\n color: #374151;\n}\n\n.gantt-tl-action-context:hover {\n background-color: #d1d5db;\n}\n\n.gantt-tl-context-menu {\n min-width: 140px !important;\n padding: 4px !important;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.gantt-tl-context-menu-item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 6px 10px;\n border: none;\n border-radius: 4px;\n background: transparent;\n font-size: 0.8rem;\n font-family: inherit;\n cursor: pointer;\n color: #374151;\n white-space: nowrap;\n}\n\n.gantt-tl-context-menu-item:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.gantt-tl-context-menu-item-danger {\n color: #ef4444;\n}\n\n.gantt-tl-context-menu-item-danger:hover {\n background-color: rgba(239, 68, 68, 0.08);\n color: #dc2626;\n}\n\n.gantt-tl-context-menu-section {\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding: 6px 6px 8px;\n border-bottom: 1px solid rgba(148, 163, 184, 0.22);\n margin-bottom: 2px;\n}\n\n.gantt-tl-context-menu-label {\n font-size: 0.72rem;\n font-weight: 600;\n color: #6b7280;\n}\n\n.gantt-tl-context-menu-item-toggle {\n width: 100%;\n justify-content: space-between;\n}\n\n.gantt-tl-context-menu-item-main {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n}\n\n.gantt-tl-color-grid {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 6px;\n}\n\n.gantt-tl-color-swatch {\n width: 24px;\n height: 24px;\n border-radius: 999px;\n border: 1px solid rgba(15, 23, 42, 0.12);\n cursor: pointer;\n position: relative;\n transition: transform 0.12s ease, box-shadow 0.12s ease;\n}\n\n.gantt-tl-color-swatch:hover {\n transform: scale(1.05);\n}\n\n.gantt-tl-color-swatch-inline {\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n}\n\n.gantt-tl-color-swatch.is-selected {\n box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px rgba(59, 130, 246, 0.5);\n}\n\n.gantt-tl-color-swatch-clear {\n background: linear-gradient(135deg, #f8fafc, #e2e8f0);\n}\n\n.gantt-tl-color-swatch-clear-line {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 16px;\n height: 1px;\n background: rgba(100, 116, 139, 0.7);\n border-radius: 999px;\n transform: translate(-50%, -50%) rotate(-45deg);\n}\n\n/* Single hierarchy button with directional arrow */\n.gantt-tl-action-hierarchy {\n width: 20px;\n height: 20px;\n padding: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background-color: #4b5563;\n color: white;\n}\n\n.gantt-tl-action-hierarchy:hover {\n background-color: #374151;\n}\n\n/* Type switcher button in header */\n.gantt-tl-dep-type-trigger {\n display: flex;\n align-items: center;\n gap: 2px;\n font-size: 0.75rem;\n font-weight: 600;\n color: #6b7280;\n background: transparent;\n border: none;\n cursor: pointer;\n padding: 0;\n white-space: nowrap;\n font-family: inherit;\n}\n\n.gantt-tl-dep-type-trigger:disabled {\n cursor: default;\n opacity: 0.7;\n}\n\n.gantt-tl-dep-type-trigger:not(:disabled):hover {\n color: #3b82f6;\n}\n\n/* Dropdown option buttons inside Popover */\n.gantt-tl-dep-type-menu {\n display: flex;\n flex-direction: column;\n padding: 4px;\n min-width: 180px;\n}\n\n.gantt-tl-dep-type-option {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: 8px;\n padding: 4px 8px;\n font-size: 0.8rem;\n font-family: inherit;\n background: transparent;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n color: #374151;\n}\n\n.gantt-tl-dep-type-option:hover {\n background-color: rgba(59, 130, 246, 0.1);\n}\n\n.gantt-tl-dep-type-option.active {\n background-color: rgba(59, 130, 246, 0.2);\n font-weight: 600;\n color: #1d4ed8;\n}\n\n/* Dependency chip — clickable to select and trigger predecessor-side delete */\n.gantt-tl-dep-chip {\n display: inline-flex;\n align-items: center;\n gap: 1px;\n background-color: rgba(59, 130, 246, 0.12);\n /* border: 1px solid rgba(59, 130, 246, 0.3); */\n border-radius: 6px;\n padding: 4px 4px;\n font-size: 0.7rem;\n color: #1d4ed8;\n white-space: nowrap;\n line-height: 14px;\n cursor: pointer;\n min-width: 42px;\n justify-content: center;\n}\n\n/* Selected chip visual highlight — inverted */\n.gantt-tl-dep-chip-selected {\n background-color: #2563eb;\n border-color: #2563eb;\n color: #fff;\n font-weight: 600;\n}\n\n/* Chip + trash button wrapper — keeps chip and delete button visually inline */\n.gantt-tl-dep-chip-wrapper {\n display: inline-flex;\n align-items: center;\n gap: 2px;\n}\n\n/* Inline trash button — hidden by default, shown only when chip is selected */\n.gantt-tl-dep-chip-trash {\n display: none;\n align-items: center;\n justify-content: center;\n align-self: stretch;\n background: #ef4444;\n border: none;\n border-radius: 3px;\n padding: 0 4px;\n cursor: pointer;\n color: #fff;\n flex-shrink: 0;\n line-height: 0;\n}\n\n/* Show trash only when chip is selected */\n.gantt-tl-dep-chip-wrapper:has(.gantt-tl-dep-chip-selected) .gantt-tl-dep-chip-trash {\n display: inline-flex;\n}\n\n.gantt-tl-dep-chip-trash:hover {\n background-color: #dc2626;\n}\n\n/* Dep chip info popover — human-readable dependency description on click */\n.gantt-tl-dep-info-popover {\n font-size: 0.75rem;\n color: #374151;\n padding: 6px 10px !important;\n max-width: 260px;\n line-height: 1.4;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.gantt-tl-dep-info-prefix {\n color: #6b7280;\n}\n\n.gantt-tl-dep-info-name {\n font-weight: 500;\n color: #111827;\n white-space: normal;\n word-break: break-word;\n}\n\n/* Dep edit popover — interactive lag counter and delete button */\n.gantt-tl-dep-edit-popover {\n font-size: 0.85rem;\n color: #374151;\n padding: 10px 12px;\n display: flex;\n flex-direction: column;\n gap: 6px;\n min-width: 200px;\n}\n\n.gantt-tl-dep-edit-row {\n display: flex;\n align-items: center;\n gap: 4px;\n flex-wrap: wrap;\n}\n\n.gantt-tl-dep-edit-label {\n min-width: 8em;\n}\n\n.gantt-tl-dep-edit-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 22px;\n height: 22px;\n border: 1px solid #d1d5db;\n border-radius: 4px;\n background: #f9fafb;\n cursor: pointer;\n color: #374151;\n padding: 0;\n line-height: 1;\n}\n\n.gantt-tl-dep-edit-btn:hover {\n background: #e5e7eb;\n}\n\n\n.gantt-tl-dep-edit-input {\n width: 56px;\n text-align: center;\n background: rgba(59, 130, 246, 0.1);\n border: 1px solid rgba(59, 130, 246, 0.3);\n border-radius: 4px;\n padding: 2px 4px;\n color: #1d4ed8;\n -moz-appearance: textfield;\n}\n\n.gantt-tl-dep-edit-input::-webkit-outer-spin-button,\n.gantt-tl-dep-edit-input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\n.gantt-tl-dep-edit-input:focus {\n outline: none;\n border-color: rgba(59, 130, 246, 0.6);\n background: rgba(59, 130, 246, 0.15);\n}\n\n.gantt-tl-dep-edit-input::placeholder {\n color: #1d4ed8;\n opacity: 0.7;\n font-style: italic;\n}\n\n.gantt-tl-dep-edit-task {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 300px;\n margin-bottom: 6px;\n}\n\n.gantt-tl-dep-edit-pred {\n font-weight: 500;\n color: #111827;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 300px;\n margin-top: 8px;\n margin-bottom: 10px;\n}\n\n.gantt-tl-dep-edit-divider {\n border: none;\n border-top: 1px solid #e5e7eb;\n margin: 2px 0;\n}\n\n.gantt-tl-dep-edit-delete {\n display: flex;\n align-items: center;\n gap: 6px;\n background: none;\n border: none;\n color: #ef4444;\n cursor: pointer;\n padding: 4px 0;\n font-size: 0.8rem;\n font-family: inherit;\n}\n\n.gantt-tl-dep-edit-delete:hover {\n color: #dc2626;\n text-decoration: underline;\n}\n\n/* Actions container for delete + close buttons */\n.gantt-tl-dep-edit-actions {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n}\n\n.gantt-tl-dep-edit-close {\n display: flex;\n align-items: center;\n background: none;\n border: none;\n padding: 4px 0;\n font-size: 0.8rem;\n font-family: inherit;\n color: #6b7280;\n cursor: pointer;\n}\n\n.gantt-tl-dep-edit-close:hover {\n color: #374151;\n text-decoration: underline;\n}\n\n/* Summary chip: \"N связей\" — shown when 2+ deps */\n.gantt-tl-dep-summary-chip {\n display: inline-flex;\n align-items: center;\n background-color: rgba(107, 114, 128, 0.12);\n border: 0px solid rgba(107, 114, 128, 0.3);\n border-radius: 6px;\n padding: 4px 4px;\n font-size: 0.7rem;\n color: #6b7280;\n cursor: pointer;\n white-space: nowrap;\n font-family: inherit;\n min-width: 32px;\n justify-content: center;\n}\n\n.gantt-tl-dep-summary-chip:hover {\n background-color: rgba(59, 130, 246, 0.1);\n color: #1d4ed8;\n border-color: rgba(59, 130, 246, 0.3);\n}\n\n/* \"+N ещё\" overflow button */\n.gantt-tl-dep-overflow-trigger {\n display: inline-flex;\n align-items: center;\n background-color: rgba(107, 114, 128, 0.1);\n border: 1px solid rgba(107, 114, 128, 0.25);\n border-radius: 4px;\n padding: 1px 4px;\n font-size: 0.7rem;\n color: #6b7280;\n cursor: pointer;\n white-space: nowrap;\n font-family: inherit;\n}\n\n.gantt-tl-dep-overflow-trigger:hover {\n background-color: rgba(59, 130, 246, 0.1);\n color: #1d4ed8;\n}\n\n/* Overflow popover content — list of all deps */\n.gantt-tl-dep-overflow-list {\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 8px;\n min-width: 140px;\n}\n\n.gantt-tl-dep-overflow-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n font-size: 0.8rem;\n color: #374151;\n}\n\n/* \"+\" add dependency button */\n.gantt-tl-dep-add {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 0px solid rgba(59, 130, 246, 0.4);\n background-color: rgba(59, 130, 246, 0.12);\n border-radius: 4px;\n width: 30px;\n height: 23px;\n font-size: 0.9rem;\n color: #3b82f6;\n cursor: pointer;\n padding: 0;\n font-family: inherit;\n flex-shrink: 0;\n}\n\n/* Hover-reveal variant for dep add button */\n.gantt-tl-dep-add-hover {\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.15s ease;\n}\n\n.gantt-tl-row:hover .gantt-tl-dep-add-hover {\n opacity: 1;\n pointer-events: auto;\n}\n\n/* Hide add button when a chip is selected (to avoid clutter with delete button) */\n.gantt-tl-dep-add-hidden {\n display: none !important;\n}\n\n.gantt-tl-dep-add:hover {\n background-color: rgba(59, 130, 246, 0.1);\n border-color: #3b82f6;\n}\n\n/* Picker mode: «Связи» cell on all rows becomes a selection target */\n.gantt-tl-row-picking .gantt-tl-cell-deps {\n cursor: crosshair;\n background-color: rgba(59, 130, 246, 0.04);\n}\n\n.gantt-tl-row-picking .gantt-tl-cell-deps:hover {\n background-color: rgba(59, 130, 246, 0.15);\n}\n\n/* Picker mode: current task's own row — clickable to cancel */\n.gantt-tl-row-picking-self .gantt-tl-cell-deps {\n cursor: pointer;\n}\n\n/* Placeholder text shown in source row's deps cell while picking a predecessor */\n.gantt-tl-dep-source-hint {\n font-size: 0.75rem;\n color: #6b7280;\n font-style: italic;\n white-space: normal;\n}\n\n.gantt-tl-dep-source-picker {\n position: absolute;\n top: -80px;\n left: calc(100% + 8px);\n z-index: 20;\n display: flex;\n flex-direction: column;\n gap: 8px;\n width: 280px;\n max-width: 280px;\n padding: 12px 10px 10px;\n border: none;\n border-radius: 10px;\n background: #ffffff;\n box-shadow: 0 18px 40px rgba(15, 23, 42, 0.28);\n}\n\n.gantt-tl-dep-source-direction {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 4px;\n}\n\n.gantt-tl-dep-source-direction-btn {\n border: none;\n border-radius: 8px;\n background: transparent;\n color: #111827;\n padding: 6px 8px;\n font-size: 0.75rem;\n font-family: inherit;\n cursor: pointer;\n}\n\n.gantt-tl-dep-source-direction-btn:hover {\n background: rgba(59, 130, 246, 0.08);\n color: #1d4ed8;\n}\n\n.gantt-tl-dep-source-direction-btn-active,\n.gantt-tl-dep-source-direction-btn-active:hover {\n background: rgba(59, 130, 246, 0.16);\n color: #1d4ed8;\n font-weight: 600;\n}\n\n.gantt-tl-dep-source-types {\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: 4px;\n}\n\n.gantt-tl-dep-source-type-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n min-width: 0;\n border: none;\n border-radius: 8px;\n background: transparent;\n color: #111827;\n padding: 6px 4px;\n cursor: pointer;\n font-size: 0.7rem;\n font-family: inherit;\n}\n\n.gantt-tl-dep-source-type-btn:hover {\n color: #1d4ed8;\n background: rgba(59, 130, 246, 0.08);\n}\n\n.gantt-tl-dep-source-type-btn-active {\n background: rgba(59, 130, 246, 0.16);\n color: #1d4ed8;\n font-weight: 600;\n}\n\n.gantt-tl-dep-source-type-btn-active:hover {\n background: rgba(59, 130, 246, 0.16);\n color: #1d4ed8;\n}\n\n.gantt-tl-dep-source-type-btn span {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.gantt-tl-dep-source-picker-head {\n display: flex;\n align-items: center;\n}\n\n.gantt-tl-dep-source-input {\n width: 100%;\n min-width: 0;\n height: 34px;\n padding: 0 10px;\n border: 1px solid rgba(59, 130, 246, 0.25);\n border-radius: 6px;\n background: #ffffff;\n font-size: 0.82rem;\n font-family: inherit;\n color: #111827;\n}\n\n.gantt-tl-dep-source-input:focus {\n outline: none;\n border-color: #3b82f6;\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.12);\n}\n\n.gantt-tl-dep-source-list {\n display: flex;\n flex-direction: column;\n gap: 4px;\n max-height: 164px;\n overflow-y: auto;\n}\n\n.gantt-tl-dep-source-option {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n border: none;\n border-radius: 6px;\n background: transparent;\n color: #1f2937;\n text-align: left;\n padding: 6px 8px;\n font-size: 0.75rem;\n font-family: inherit;\n cursor: pointer;\n}\n\n.gantt-tl-dep-source-option-label {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.gantt-tl-dep-source-option:hover,\n.gantt-tl-dep-source-option-active {\n background: rgba(59, 130, 246, 0.16);\n color: #1d4ed8;\n}\n\n.gantt-tl-dep-source-option-linked {\n background: rgba(16, 185, 129, 0.12);\n color: #047857;\n}\n\n.gantt-tl-dep-source-option-linked:hover,\n.gantt-tl-dep-source-option-linked.gantt-tl-dep-source-option-active {\n color: #047857;\n background: rgba(16, 185, 129, 0.14);\n}\n\n.gantt-tl-dep-source-option-remove {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n margin-left: 8px;\n border: none;\n border-radius: 999px;\n background: transparent;\n color: transparent;\n cursor: pointer;\n flex-shrink: 0;\n}\n\n.gantt-tl-dep-source-option-linked:hover .gantt-tl-dep-source-option-remove,\n.gantt-tl-dep-source-option-linked.gantt-tl-dep-source-option-active .gantt-tl-dep-source-option-remove {\n color: #dc2626;\n}\n\n.gantt-tl-dep-source-option-remove:hover {\n background: rgba(220, 38, 38, 0.12);\n color: #dc2626;\n}\n\n/* Predecessor cell full-replacement: \"Зависит от [name]\" → hover → \"Удалить\" */\n.gantt-tl-dep-delete-label {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n background: #059669;\n border: none;\n border-radius: 4px;\n padding: 2px 4px;\n font-size: 0.75rem;\n font-family: inherit;\n cursor: pointer;\n color: #fff;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-align: center;\n}\n\n.gantt-tl-dep-delete-label:hover {\n background: #dc2626;\n}\n\n.gantt-tl-dep-delete-label-default {\n display: inline;\n pointer-events: none;\n}\n\n.gantt-tl-dep-delete-label-hover {\n display: none;\n color: #fff;\n font-weight: 600;\n pointer-events: none;\n}\n\n.gantt-tl-dep-delete-label:hover .gantt-tl-dep-delete-label-default {\n display: none;\n}\n\n.gantt-tl-dep-delete-label:hover .gantt-tl-dep-delete-label-hover {\n display: inline;\n}\n\n/* Cycle error banner below header */\n.gantt-tl-dep-error {\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n right: auto;\n min-width: max-content;\n max-width: min(320px, calc(100vw - 32px));\n background-color: #fef2f2;\n border: 1px solid #fca5a5;\n border-radius: 8px;\n box-shadow: 0 10px 24px rgba(127, 29, 29, 0.16);\n padding: 6px 10px;\n font-size: 0.75rem;\n color: #dc2626;\n z-index: 30;\n white-space: normal;\n line-height: 1.35;\n pointer-events: none;\n}\n\n/* Add task button */\n.gantt-tl-add-btn {\n width: 100%;\n padding: 6px 12px;\n text-align: left;\n background: transparent;\n border: none;\n /* border-top: 1px dashed var(--gantt-grid-line-color, #e0e0e0); */\n cursor: pointer;\n font-size: 12px;\n color: var(--gantt-text-muted, #9ca3af);\n transition: background 0.15s ease, color 0.15s ease;\n font-family: inherit;\n}\n\n/* Additional (custom) column cells */\n.gantt-tl-headerCell-custom,\n.gantt-tl-cell-custom {\n flex-shrink: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.gantt-tl-add-btn:hover {\n background: var(--gantt-hover-bg, rgba(0, 0, 0, 0.04));\n color: var(--gantt-text-color, #374151);\n}\n\n/* Blue top border when dragging over the add button */\n.gantt-tl-add-btn-drag-over {\n position: relative;\n background: rgba(59, 130, 246, 0.08);\n color: #3b82f6;\n}\n\n.gantt-tl-add-btn-drag-over::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 2px;\n background-color: #3b82f6;\n}\n\n.gantt-tl-cell-new-name {\n padding: 2px 4px;\n}\n",".gantt-container {\n width: 100%;\n font-family: var(--gantt-font-family, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);\n border: 1px solid var(--gantt-grid-line-color, #e0e0e0);\n background-color: var(--gantt-cell-background, #ffffff);\n border-radius: var(--gantt-container-border-radius, 10px);\n overflow: hidden;\n}\n\n.gantt-scrollContainer {\n overflow: auto;\n position: relative;\n}\n\n/* Wrapper for horizontal scroll content - keeps TaskList and chart together */\n.gantt-scrollContent {\n display: flex;\n min-width: min-content;\n}\n\n.gantt-stickyHeader {\n position: sticky;\n top: 0;\n z-index: 10;\n background-color: var(--gantt-cell-background, #ffffff);\n border-bottom: 1px solid var(--gantt-grid-line-color, #e0e0e0);\n}\n\n.gantt-taskArea {\n position: relative;\n background-color: var(--gantt-cell-background, #ffffff);\n}\n\n.gantt-chartSurface {\n display: block;\n}\n\n/* Hide chart area while keeping TaskList visible */\n.gantt-chartSurface.gantt-chart-hidden {\n display: none;\n}\n\n@media print {\n .gantt-container,\n .gantt-scrollContainer,\n .gantt-scrollContent,\n .gantt-chartSurface,\n .gantt-taskArea {\n overflow: visible !important;\n height: auto !important;\n max-height: none !important;\n }\n\n .gantt-container {\n border-radius: 0;\n }\n}\n"],"mappings":"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","names":[]}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React$1, { ReactNode } from 'react';
|
|
2
|
-
import { T as Task$1, V as ValidationResult } from './index-
|
|
3
|
-
export { D as DAY_MS, a as DependencyError, G as GanttDateRange, b as GridConfig, c as GridLine, L as LinkType, M as MonthSpan, d as TaskBarGeometry, W as WeekendBlock, e as alignToWorkingDay, f as areTasksHierarchicallyRelated, g as buildAdjacencyList, h as buildTaskRangeFromEnd, i as buildTaskRangeFromStart, j as calculateSuccessorDate, k as cascadeByLinks, l as clampTaskRangeForIncomingFS, m as computeLagFromDates, n as computeParentDates, o as computeParentProgress, p as detectCycles, q as findParentId, r as getAllDependencyEdges, s as getAllDescendants, t as getBusinessDayOffset, u as getChildren, v as getDependencyLag, w as getSuccessorChain, x as getTaskDuration, y as getTransitiveCascadeChain, z as isAncestorTask, A as isTaskParent, B as moveTaskRange, C as moveTaskWithCascade, E as normalizeDependencyLag, F as normalizePredecessorDates, H as normalizeUTCDate, I as parseDateOnly, J as recalculateIncomingLags, K as recalculateProjectSchedule, N as recalculateTaskFromDependencies, O as reflowTasksOnModeSwitch, P as removeDependenciesBetweenTasks, Q as resizeTaskWithCascade, R as shiftBusinessDayOffset, S as universalCascade, U as validateDependencies } from './index-
|
|
2
|
+
import { T as Task$1, V as ValidationResult } from './index-BLFB_fez.mjs';
|
|
3
|
+
export { D as DAY_MS, a as DependencyError, G as GanttDateRange, b as GridConfig, c as GridLine, L as LinkType, M as MonthSpan, d as TaskBarGeometry, W as WeekendBlock, e as alignToWorkingDay, f as areTasksHierarchicallyRelated, g as buildAdjacencyList, h as buildTaskRangeFromEnd, i as buildTaskRangeFromStart, j as calculateSuccessorDate, k as cascadeByLinks, l as clampTaskRangeForIncomingFS, m as computeLagFromDates, n as computeParentDates, o as computeParentProgress, p as detectCycles, q as findParentId, r as getAllDependencyEdges, s as getAllDescendants, t as getBusinessDayOffset, u as getChildren, v as getDependencyLag, w as getSuccessorChain, x as getTaskDuration, y as getTransitiveCascadeChain, z as isAncestorTask, A as isTaskParent, B as moveTaskRange, C as moveTaskWithCascade, E as normalizeDependencyLag, F as normalizePredecessorDates, H as normalizeUTCDate, I as parseDateOnly, J as recalculateIncomingLags, K as recalculateProjectSchedule, N as recalculateTaskFromDependencies, O as reflowTasksOnModeSwitch, P as removeDependenciesBetweenTasks, Q as resizeTaskWithCascade, R as shiftBusinessDayOffset, S as universalCascade, U as validateDependencies } from './index-BLFB_fez.mjs';
|
|
4
4
|
import * as RadixPopover from '@radix-ui/react-popover';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -330,6 +330,10 @@ interface Task {
|
|
|
330
330
|
startDate: string | Date;
|
|
331
331
|
/** Task end date (ISO string or Date object) */
|
|
332
332
|
endDate: string | Date;
|
|
333
|
+
/** Optional baseline start date for planned schedule visualization */
|
|
334
|
+
baselineStartDate?: string | Date;
|
|
335
|
+
/** Optional baseline end date for planned schedule visualization */
|
|
336
|
+
baselineEndDate?: string | Date;
|
|
333
337
|
/** Optional color for task bar visualization */
|
|
334
338
|
color?: string;
|
|
335
339
|
/**
|
|
@@ -436,6 +440,8 @@ interface GanttChartProps<TTask extends Task = Task> {
|
|
|
436
440
|
disableDependencyEditing?: boolean;
|
|
437
441
|
/** Highlight expired/overdue tasks with red background (default: false) */
|
|
438
442
|
highlightExpiredTasks?: boolean;
|
|
443
|
+
/** Show baseline lines below task bars when baseline dates are present (default: false) */
|
|
444
|
+
showBaseline?: boolean;
|
|
439
445
|
/** Callback when a new task is added via the task list */
|
|
440
446
|
onAdd?: (task: TTask) => void;
|
|
441
447
|
/** Callback when a task is deleted via the task list */
|
|
@@ -570,6 +576,8 @@ interface TaskRowProps {
|
|
|
570
576
|
divider?: 'top' | 'bottom';
|
|
571
577
|
/** Highlight expired/overdue tasks with red background */
|
|
572
578
|
highlightExpiredTasks?: boolean;
|
|
579
|
+
/** Show baseline line below the task bar */
|
|
580
|
+
showBaseline?: boolean;
|
|
573
581
|
/** Whether this row matches the active filter highlight */
|
|
574
582
|
isFilterMatch?: boolean;
|
|
575
583
|
/** Calculate duration in business days (excluding weekends) */
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React$1, { ReactNode } from 'react';
|
|
2
|
-
import { T as Task$1, V as ValidationResult } from './index-
|
|
3
|
-
export { D as DAY_MS, a as DependencyError, G as GanttDateRange, b as GridConfig, c as GridLine, L as LinkType, M as MonthSpan, d as TaskBarGeometry, W as WeekendBlock, e as alignToWorkingDay, f as areTasksHierarchicallyRelated, g as buildAdjacencyList, h as buildTaskRangeFromEnd, i as buildTaskRangeFromStart, j as calculateSuccessorDate, k as cascadeByLinks, l as clampTaskRangeForIncomingFS, m as computeLagFromDates, n as computeParentDates, o as computeParentProgress, p as detectCycles, q as findParentId, r as getAllDependencyEdges, s as getAllDescendants, t as getBusinessDayOffset, u as getChildren, v as getDependencyLag, w as getSuccessorChain, x as getTaskDuration, y as getTransitiveCascadeChain, z as isAncestorTask, A as isTaskParent, B as moveTaskRange, C as moveTaskWithCascade, E as normalizeDependencyLag, F as normalizePredecessorDates, H as normalizeUTCDate, I as parseDateOnly, J as recalculateIncomingLags, K as recalculateProjectSchedule, N as recalculateTaskFromDependencies, O as reflowTasksOnModeSwitch, P as removeDependenciesBetweenTasks, Q as resizeTaskWithCascade, R as shiftBusinessDayOffset, S as universalCascade, U as validateDependencies } from './index-
|
|
2
|
+
import { T as Task$1, V as ValidationResult } from './index-BLFB_fez.js';
|
|
3
|
+
export { D as DAY_MS, a as DependencyError, G as GanttDateRange, b as GridConfig, c as GridLine, L as LinkType, M as MonthSpan, d as TaskBarGeometry, W as WeekendBlock, e as alignToWorkingDay, f as areTasksHierarchicallyRelated, g as buildAdjacencyList, h as buildTaskRangeFromEnd, i as buildTaskRangeFromStart, j as calculateSuccessorDate, k as cascadeByLinks, l as clampTaskRangeForIncomingFS, m as computeLagFromDates, n as computeParentDates, o as computeParentProgress, p as detectCycles, q as findParentId, r as getAllDependencyEdges, s as getAllDescendants, t as getBusinessDayOffset, u as getChildren, v as getDependencyLag, w as getSuccessorChain, x as getTaskDuration, y as getTransitiveCascadeChain, z as isAncestorTask, A as isTaskParent, B as moveTaskRange, C as moveTaskWithCascade, E as normalizeDependencyLag, F as normalizePredecessorDates, H as normalizeUTCDate, I as parseDateOnly, J as recalculateIncomingLags, K as recalculateProjectSchedule, N as recalculateTaskFromDependencies, O as reflowTasksOnModeSwitch, P as removeDependenciesBetweenTasks, Q as resizeTaskWithCascade, R as shiftBusinessDayOffset, S as universalCascade, U as validateDependencies } from './index-BLFB_fez.js';
|
|
4
4
|
import * as RadixPopover from '@radix-ui/react-popover';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -330,6 +330,10 @@ interface Task {
|
|
|
330
330
|
startDate: string | Date;
|
|
331
331
|
/** Task end date (ISO string or Date object) */
|
|
332
332
|
endDate: string | Date;
|
|
333
|
+
/** Optional baseline start date for planned schedule visualization */
|
|
334
|
+
baselineStartDate?: string | Date;
|
|
335
|
+
/** Optional baseline end date for planned schedule visualization */
|
|
336
|
+
baselineEndDate?: string | Date;
|
|
333
337
|
/** Optional color for task bar visualization */
|
|
334
338
|
color?: string;
|
|
335
339
|
/**
|
|
@@ -436,6 +440,8 @@ interface GanttChartProps<TTask extends Task = Task> {
|
|
|
436
440
|
disableDependencyEditing?: boolean;
|
|
437
441
|
/** Highlight expired/overdue tasks with red background (default: false) */
|
|
438
442
|
highlightExpiredTasks?: boolean;
|
|
443
|
+
/** Show baseline lines below task bars when baseline dates are present (default: false) */
|
|
444
|
+
showBaseline?: boolean;
|
|
439
445
|
/** Callback when a new task is added via the task list */
|
|
440
446
|
onAdd?: (task: TTask) => void;
|
|
441
447
|
/** Callback when a task is deleted via the task list */
|
|
@@ -570,6 +576,8 @@ interface TaskRowProps {
|
|
|
570
576
|
divider?: 'top' | 'bottom';
|
|
571
577
|
/** Highlight expired/overdue tasks with red background */
|
|
572
578
|
highlightExpiredTasks?: boolean;
|
|
579
|
+
/** Show baseline line below the task bar */
|
|
580
|
+
showBaseline?: boolean;
|
|
573
581
|
/** Whether this row matches the active filter highlight */
|
|
574
582
|
isFilterMatch?: boolean;
|
|
575
583
|
/** Calculate duration in business days (excluding weekends) */
|
package/dist/index.js
CHANGED
|
@@ -2871,16 +2871,24 @@ var useTaskDrag = (options) => {
|
|
|
2871
2871
|
// src/components/TaskRow/TaskRow.tsx
|
|
2872
2872
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
2873
2873
|
var arePropsEqual = (prevProps, nextProps) => {
|
|
2874
|
-
return prevProps.task.id === nextProps.task.id && prevProps.task.name === nextProps.task.name && prevProps.task.startDate === nextProps.task.startDate && prevProps.task.endDate === nextProps.task.endDate && prevProps.task.type === nextProps.task.type && prevProps.task.color === nextProps.task.color && prevProps.task.progress === nextProps.task.progress && prevProps.task.accepted === nextProps.task.accepted && prevProps.monthStart.getTime() === nextProps.monthStart.getTime() && prevProps.dayWidth === nextProps.dayWidth && prevProps.rowHeight === nextProps.rowHeight && prevProps.overridePosition?.left === nextProps.overridePosition?.left && prevProps.overridePosition?.width === nextProps.overridePosition?.width && prevProps.allTasks === nextProps.allTasks && prevProps.disableConstraints === nextProps.disableConstraints && prevProps.task.locked === nextProps.task.locked && prevProps.task.divider === nextProps.task.divider && prevProps.highlightExpiredTasks === nextProps.highlightExpiredTasks && prevProps.isFilterMatch === nextProps.isFilterMatch && prevProps.businessDays === nextProps.businessDays && prevProps.customDays === nextProps.customDays && prevProps.isWeekend === nextProps.isWeekend && prevProps.disableTaskDrag === nextProps.disableTaskDrag;
|
|
2874
|
+
return prevProps.task.id === nextProps.task.id && prevProps.task.name === nextProps.task.name && prevProps.task.startDate === nextProps.task.startDate && prevProps.task.endDate === nextProps.task.endDate && prevProps.task.baselineStartDate === nextProps.task.baselineStartDate && prevProps.task.baselineEndDate === nextProps.task.baselineEndDate && prevProps.task.type === nextProps.task.type && prevProps.task.color === nextProps.task.color && prevProps.task.progress === nextProps.task.progress && prevProps.task.accepted === nextProps.task.accepted && prevProps.monthStart.getTime() === nextProps.monthStart.getTime() && prevProps.dayWidth === nextProps.dayWidth && prevProps.rowHeight === nextProps.rowHeight && prevProps.overridePosition?.left === nextProps.overridePosition?.left && prevProps.overridePosition?.width === nextProps.overridePosition?.width && prevProps.allTasks === nextProps.allTasks && prevProps.disableConstraints === nextProps.disableConstraints && prevProps.task.locked === nextProps.task.locked && prevProps.task.divider === nextProps.task.divider && prevProps.highlightExpiredTasks === nextProps.highlightExpiredTasks && prevProps.showBaseline === nextProps.showBaseline && prevProps.isFilterMatch === nextProps.isFilterMatch && prevProps.businessDays === nextProps.businessDays && prevProps.customDays === nextProps.customDays && prevProps.isWeekend === nextProps.isWeekend && prevProps.disableTaskDrag === nextProps.disableTaskDrag;
|
|
2875
2875
|
};
|
|
2876
2876
|
var TaskRow = import_react3.default.memo(
|
|
2877
|
-
({ task, monthStart, dayWidth, rowHeight, onTasksChange, onDragStateChange, rowIndex, allTasks, enableAutoSchedule, disableConstraints, overridePosition, onCascadeProgress, onCascade, divider, highlightExpiredTasks, isFilterMatch = false, businessDays, customDays, isWeekend: isWeekend3, disableTaskDrag = false }) => {
|
|
2877
|
+
({ task, monthStart, dayWidth, rowHeight, onTasksChange, onDragStateChange, rowIndex, allTasks, enableAutoSchedule, disableConstraints, overridePosition, onCascadeProgress, onCascade, divider, highlightExpiredTasks, showBaseline = false, isFilterMatch = false, businessDays, customDays, isWeekend: isWeekend3, disableTaskDrag = false }) => {
|
|
2878
2878
|
const defaultParentBarColor = "#782FC4";
|
|
2879
2879
|
const { divider: taskDivider } = task;
|
|
2880
2880
|
const normalizedTask = (0, import_react3.useMemo)(() => normalizeTaskDatesForType(task), [task]);
|
|
2881
2881
|
const milestone = (0, import_react3.useMemo)(() => isMilestoneTask(normalizedTask), [normalizedTask]);
|
|
2882
2882
|
const taskStartDate = (0, import_react3.useMemo)(() => parseUTCDate(normalizedTask.startDate), [normalizedTask.startDate]);
|
|
2883
2883
|
const taskEndDate = (0, import_react3.useMemo)(() => parseUTCDate(normalizedTask.endDate), [normalizedTask.endDate]);
|
|
2884
|
+
const baselineStartDate = (0, import_react3.useMemo)(
|
|
2885
|
+
() => task.baselineStartDate ? parseUTCDate(task.baselineStartDate) : null,
|
|
2886
|
+
[task.baselineStartDate]
|
|
2887
|
+
);
|
|
2888
|
+
const baselineEndDate = (0, import_react3.useMemo)(
|
|
2889
|
+
() => task.baselineEndDate ? parseUTCDate(task.baselineEndDate) : null,
|
|
2890
|
+
[task.baselineEndDate]
|
|
2891
|
+
);
|
|
2884
2892
|
const isParent = (0, import_react3.useMemo)(() => {
|
|
2885
2893
|
return allTasks ? isTaskParent(task.id, allTasks) : false;
|
|
2886
2894
|
}, [allTasks, task.id]);
|
|
@@ -2899,6 +2907,13 @@ var TaskRow = import_react3.default.memo(
|
|
|
2899
2907
|
() => calculateMilestoneGeometry(taskStartDate, monthStart, dayWidth),
|
|
2900
2908
|
[taskStartDate, monthStart, dayWidth]
|
|
2901
2909
|
);
|
|
2910
|
+
const baselineGeometry = (0, import_react3.useMemo)(() => {
|
|
2911
|
+
if (!baselineStartDate || !baselineEndDate) return null;
|
|
2912
|
+
if (milestone) {
|
|
2913
|
+
return calculateTaskBar(baselineStartDate, baselineStartDate, monthStart, dayWidth);
|
|
2914
|
+
}
|
|
2915
|
+
return calculateTaskBar(baselineStartDate, baselineEndDate, monthStart, dayWidth);
|
|
2916
|
+
}, [baselineStartDate, baselineEndDate, milestone, monthStart, dayWidth]);
|
|
2902
2917
|
const barColor = isExpired ? "var(--gantt-expired-color)" : task.color || "var(--gantt-task-bar-default-color)";
|
|
2903
2918
|
const progressWidth = (0, import_react3.useMemo)(() => {
|
|
2904
2919
|
if (task.progress === void 0 || task.progress <= 0) return 0;
|
|
@@ -2988,6 +3003,7 @@ var TaskRow = import_react3.default.memo(
|
|
|
2988
3003
|
}, [displayLeft, dayWidth, milestoneGeometry.size]);
|
|
2989
3004
|
const visualLeft = milestone ? displayMilestoneGeometry.left : displayLeft;
|
|
2990
3005
|
const visualWidth = milestone ? displayMilestoneGeometry.size : displayWidth;
|
|
3006
|
+
const shouldRenderBaseline = showBaseline && baselineGeometry !== null;
|
|
2991
3007
|
const currentStartDate = isDragging ? pixelsToDate(displayLeft, monthStart, dayWidth) : taskStartDate;
|
|
2992
3008
|
const currentEndDate = isDragging ? milestone ? pixelsToDate(displayLeft, monthStart, dayWidth) : pixelsToDate(displayLeft + displayWidth - dayWidth, monthStart, dayWidth) : taskEndDate;
|
|
2993
3009
|
const dateRangeLabel = formatDateRangeLabel(currentStartDate, currentEndDate);
|
|
@@ -3016,6 +3032,16 @@ var TaskRow = import_react3.default.memo(
|
|
|
3016
3032
|
children: [
|
|
3017
3033
|
taskDivider === "top" && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "gantt-tr-divider gantt-tr-divider-top" }),
|
|
3018
3034
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "gantt-tr-taskContainer", children: [
|
|
3035
|
+
shouldRenderBaseline && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
3036
|
+
"div",
|
|
3037
|
+
{
|
|
3038
|
+
className: `gantt-tr-baseline ${isParent ? "gantt-tr-baseline-parent" : ""} ${milestone ? "gantt-tr-baseline-milestone" : ""}`,
|
|
3039
|
+
style: {
|
|
3040
|
+
left: `${milestone ? baselineGeometry.left + dayWidth / 2 : baselineGeometry.left}px`,
|
|
3041
|
+
width: `${milestone ? 0 : baselineGeometry.width}px`
|
|
3042
|
+
}
|
|
3043
|
+
}
|
|
3044
|
+
),
|
|
3019
3045
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
|
3020
3046
|
"div",
|
|
3021
3047
|
{
|
|
@@ -7688,6 +7714,7 @@ function GanttChartInner(props, ref) {
|
|
|
7688
7714
|
disableTaskNameEditing = false,
|
|
7689
7715
|
disableDependencyEditing = false,
|
|
7690
7716
|
highlightExpiredTasks = false,
|
|
7717
|
+
showBaseline = false,
|
|
7691
7718
|
onAdd,
|
|
7692
7719
|
onDelete,
|
|
7693
7720
|
onInsertAfter,
|
|
@@ -8328,6 +8355,7 @@ function GanttChartInner(props, ref) {
|
|
|
8328
8355
|
onCascadeProgress: handleCascadeProgress,
|
|
8329
8356
|
onCascade: handleCascade,
|
|
8330
8357
|
highlightExpiredTasks,
|
|
8358
|
+
showBaseline,
|
|
8331
8359
|
isFilterMatch: filterMode === "highlight" ? matchedTaskIds.has(task.id) : false,
|
|
8332
8360
|
businessDays,
|
|
8333
8361
|
customDays,
|