gantt-lib 0.135.9 → 0.136.1

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/styles.css CHANGED
@@ -473,11 +473,12 @@
473
473
  }
474
474
  .gantt-tr-row:hover,
475
475
  .gantt-tr-row-hovered {
476
- background-color: var(--gantt-row-hover-background, rgba(59, 130, 246, 0.04));
476
+ box-shadow: inset 0 0 0 9999px var(--gantt-row-hover-background, rgba(59, 130, 246, 0.04));
477
477
  }
478
478
  .gantt-tr-row.gantt-tr-row-filter-match:hover,
479
479
  .gantt-tr-row.gantt-tr-row-filter-match.gantt-tr-row-hovered {
480
480
  background-color: rgba(250, 204, 21, 0.3);
481
+ box-shadow: inset 0 0 0 9999px rgba(250, 204, 21, 0.3);
481
482
  }
482
483
  .gantt-tr-taskBar {
483
484
  position: absolute;
@@ -494,6 +495,146 @@
494
495
  transition: box-shadow 0.15s ease;
495
496
  cursor: grab;
496
497
  }
498
+ .gantt-tr-compositePreview {
499
+ position: fixed;
500
+ z-index: 10000;
501
+ width: 220px;
502
+ max-height: 340px;
503
+ overflow: hidden;
504
+ padding: 4px 12px 10px;
505
+ border: 1px solid var(--gantt-grid-line-color, #ddd);
506
+ border-radius: 8px;
507
+ background: var(--gantt-background, #fff);
508
+ color: var(--gantt-text-color, #222);
509
+ box-shadow: 0 8px 24px rgba(0, 0, 0, .16);
510
+ pointer-events: none;
511
+ font-size: 12px;
512
+ }
513
+ .gantt-tr-compositePreviewRow {
514
+ display: grid;
515
+ grid-template-columns: 60px 1fr;
516
+ align-items: center;
517
+ gap: 8px;
518
+ height: 20px;
519
+ white-space: nowrap;
520
+ }
521
+ .gantt-tr-compositePreviewAxis {
522
+ display: flex;
523
+ justify-content: space-between;
524
+ margin: 0 0 3px 68px;
525
+ color: #64748b;
526
+ font-size: 10px;
527
+ }
528
+ .gantt-tr-compositePreviewTrack {
529
+ position: relative;
530
+ height: 10px;
531
+ border-radius: 2px;
532
+ background: #f1f5f9;
533
+ }
534
+ .gantt-tr-compositePreviewBar {
535
+ position: absolute;
536
+ top: 1px;
537
+ height: 8px;
538
+ border-radius: 2px;
539
+ }
540
+ .gantt-tr-compositeBar {
541
+ border-radius: var(--gantt-task-bar-border-radius);
542
+ overflow: hidden;
543
+ }
544
+ .gantt-tr-compositeSegments {
545
+ position: absolute;
546
+ inset: 0;
547
+ z-index: 1;
548
+ pointer-events: none;
549
+ }
550
+ .gantt-tr-compositeSegment {
551
+ position: absolute;
552
+ box-sizing: border-box;
553
+ background:
554
+ linear-gradient(
555
+ 90deg,
556
+ rgba(255, 255, 255, .34),
557
+ rgba(255, 255, 255, .06));
558
+ }
559
+ .gantt-tr-compositeSegmentCut {
560
+ position: absolute;
561
+ width: 1px;
562
+ background: rgba(255, 255, 255, .9);
563
+ }
564
+ .gantt-tr-compositeHoverChevron {
565
+ position: absolute;
566
+ z-index: 3;
567
+ left: 0;
568
+ top: 50%;
569
+ display: inline-flex;
570
+ align-items: center;
571
+ justify-content: center;
572
+ width: 24px;
573
+ height: 24px;
574
+ transform: translateY(-50%);
575
+ padding: 0;
576
+ border-radius: 4px;
577
+ background: rgba(24, 16, 45, .48);
578
+ color: white;
579
+ font-size: 11px;
580
+ font-weight: 700;
581
+ opacity: 0;
582
+ pointer-events: none;
583
+ transition: opacity 120ms ease;
584
+ }
585
+ .gantt-tr-compositeBar:hover .gantt-tr-compositeHoverChevron,
586
+ .gantt-tr-compositeBar:focus-visible .gantt-tr-compositeHoverChevron {
587
+ opacity: 1;
588
+ }
589
+ .gantt-tr-compositeChevron {
590
+ width: 14px;
591
+ height: 14px;
592
+ transition: transform 140ms ease;
593
+ }
594
+ .gantt-tr-compositeChevron-open {
595
+ transform: rotate(90deg);
596
+ }
597
+ .gantt-tr-externalDuration.gantt-tr-compositeDuration {
598
+ font-size: 0.72rem;
599
+ }
600
+ .gantt-tr-durationBeforeBar {
601
+ position: absolute;
602
+ top: 50%;
603
+ z-index: 1;
604
+ width: 40px;
605
+ padding-right: 4px;
606
+ transform: translateY(-50%);
607
+ text-align: right;
608
+ pointer-events: none;
609
+ font-size: 0.8rem;
610
+ font-weight: 500;
611
+ }
612
+ .gantt-tr-compositeBar .gantt-tr-resizeHandle {
613
+ width: 6px;
614
+ }
615
+ .gantt-tr-row-compositeDetail {
616
+ background-color: color-mix(in srgb, var(--gantt-tr-composite-detail-color) 8%, transparent);
617
+ }
618
+ .gantt-tr-row-compositeDetail:hover,
619
+ .gantt-tr-row-compositeDetail.gantt-tr-row-hovered {
620
+ box-shadow: inset 0 0 0 9999px var(--gantt-row-hover-background, rgba(59, 130, 246, 0.04));
621
+ }
622
+ .gantt-tr-row-compositeDetail .gantt-tr-taskBar {
623
+ border-radius: 4px;
624
+ opacity: .88;
625
+ }
626
+ .gantt-tr-row-compositeDetail .gantt-tr-leftLabels {
627
+ display: none;
628
+ }
629
+ .gantt-tr-row-compositeDetail .gantt-tr-externalTaskName {
630
+ font-size: 0.72rem;
631
+ }
632
+ .gantt-tr-row-compositeDetail .gantt-tr-progressText {
633
+ display: none;
634
+ }
635
+ .gantt-tr-row-compositeDetail .gantt-tr-externalProgress {
636
+ display: none;
637
+ }
497
638
  .gantt-tr-milestone {
498
639
  border-radius: 2px;
499
640
  overflow: visible;
@@ -1303,6 +1444,89 @@
1303
1444
  .gantt-tl-row-child {
1304
1445
  padding-left: 0;
1305
1446
  }
1447
+ .gantt-tl-row-composite-detail {
1448
+ --gantt-tl-name-actions-bg: color-mix(in srgb, var(--gantt-tl-composite-detail-color) 9%, var(--gantt-cell-background, #fff));
1449
+ background: color-mix(in srgb, var(--gantt-tl-composite-detail-color) 9%, var(--gantt-cell-background, #fff));
1450
+ font-size: 12px;
1451
+ }
1452
+ .gantt-tl-row-composite-detail .gantt-tl-cell:not(.gantt-tl-cell-name):not(.gantt-tl-cell-number):not(.gantt-tl-cell-progress) {
1453
+ visibility: hidden;
1454
+ }
1455
+ .gantt-tl-row-composite-detail .gantt-tl-cell-name {
1456
+ color: #5b4b83;
1457
+ }
1458
+ .gantt-tl-compositeToggle {
1459
+ position: absolute;
1460
+ top: 50%;
1461
+ z-index: 3;
1462
+ display: grid;
1463
+ place-items: center;
1464
+ width: 24px;
1465
+ height: 24px;
1466
+ padding: 2px;
1467
+ transform: translateY(-50%);
1468
+ border: 0;
1469
+ border-radius: 4px;
1470
+ background: transparent;
1471
+ color: var(--gantt-text-color, #374151);
1472
+ cursor: pointer;
1473
+ }
1474
+ .gantt-tl-compositeToggle:hover {
1475
+ background: var(--gantt-control-hover-background, rgba(15, 23, 42, .08));
1476
+ }
1477
+ .gantt-tl-compositeToggle:focus-visible,
1478
+ .gantt-tl-collapse-btn:focus-visible {
1479
+ outline: 2px solid var(--gantt-focus-ring-color, #64748b);
1480
+ outline-offset: 1px;
1481
+ }
1482
+ .gantt-tl-compositeToggle svg {
1483
+ width: 13px;
1484
+ height: 13px;
1485
+ transform-origin: center;
1486
+ }
1487
+ .gantt-tl-compositeToggle .gantt-tl-compositeGlyph-composite-opening-outgoing {
1488
+ animation: gantt-tl-composite-out-open 120ms ease-in-out forwards;
1489
+ }
1490
+ .gantt-tl-compositeToggle .gantt-tl-compositeGlyph-down-opening-incoming {
1491
+ animation: gantt-tl-composite-in-open 120ms ease-in-out forwards;
1492
+ }
1493
+ .gantt-tl-compositeToggle .gantt-tl-compositeGlyph-down-closing-outgoing {
1494
+ animation: gantt-tl-composite-out-close 120ms ease-in-out forwards;
1495
+ }
1496
+ .gantt-tl-compositeToggle .gantt-tl-compositeGlyph-composite-closing-incoming {
1497
+ animation: gantt-tl-composite-in-close 120ms ease-in-out forwards;
1498
+ }
1499
+ @keyframes gantt-tl-composite-out-open {
1500
+ to {
1501
+ transform: rotate(90deg);
1502
+ }
1503
+ }
1504
+ @keyframes gantt-tl-composite-in-open {
1505
+ from {
1506
+ transform: rotate(-90deg);
1507
+ }
1508
+ to {
1509
+ transform: rotate(0deg);
1510
+ }
1511
+ }
1512
+ @keyframes gantt-tl-composite-out-close {
1513
+ to {
1514
+ transform: rotate(-90deg);
1515
+ }
1516
+ }
1517
+ @keyframes gantt-tl-composite-in-close {
1518
+ from {
1519
+ transform: rotate(90deg);
1520
+ }
1521
+ to {
1522
+ transform: rotate(0deg);
1523
+ }
1524
+ }
1525
+ @media (prefers-reduced-motion: reduce) {
1526
+ .gantt-tl-compositeToggle [class*=gantt-tl-compositeGlyph-] {
1527
+ animation-duration: 1ms;
1528
+ }
1529
+ }
1306
1530
  .gantt-tl-row-parent {
1307
1531
  font-weight: 600;
1308
1532
  --gantt-tl-name-actions-bg: inherit;
@@ -1338,8 +1562,8 @@
1338
1562
  top: 50%;
1339
1563
  transform: translateY(-50%);
1340
1564
  z-index: 2;
1341
- width: 18px;
1342
- height: 18px;
1565
+ width: 24px;
1566
+ height: 24px;
1343
1567
  border: none;
1344
1568
  background: transparent;
1345
1569
  border-radius: 4px;
@@ -1352,7 +1576,7 @@
1352
1576
  transition: background-color 0.15s ease;
1353
1577
  }
1354
1578
  .gantt-tl-collapse-btn:hover {
1355
- background-color: transparent;
1579
+ background-color: var(--gantt-control-hover-background, rgba(15, 23, 42, .08));
1356
1580
  }
1357
1581
  .gantt-tl-collapse-btn svg {
1358
1582
  transition: transform 0.15s ease;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gantt-lib",
3
- "version": "0.135.9",
3
+ "version": "0.136.1",
4
4
  "description": "React scheduling UI library for Gantt charts, resource planners, and table-matrix views",
5
5
  "license": "MIT",
6
6
  "repository": {