gantt-lib 0.135.9 → 0.136.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/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,137 @@
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
+ pointer-events: none;
548
+ }
549
+ .gantt-tr-compositeSegment {
550
+ position: absolute;
551
+ box-sizing: border-box;
552
+ border-right: 2px solid rgba(255, 255, 255, .85);
553
+ background: rgba(255, 255, 255, .14);
554
+ }
555
+ .gantt-tr-compositeHoverChevron {
556
+ position: absolute;
557
+ z-index: 3;
558
+ left: 0;
559
+ top: 50%;
560
+ display: inline-flex;
561
+ align-items: center;
562
+ justify-content: center;
563
+ width: 24px;
564
+ height: 24px;
565
+ transform: translateY(-50%);
566
+ padding: 0;
567
+ border-radius: 4px;
568
+ background: rgba(24, 16, 45, .48);
569
+ color: white;
570
+ font-size: 11px;
571
+ font-weight: 700;
572
+ opacity: 0;
573
+ pointer-events: none;
574
+ transition: opacity 120ms ease;
575
+ }
576
+ .gantt-tr-compositeBar:hover .gantt-tr-compositeHoverChevron,
577
+ .gantt-tr-compositeBar:focus-visible .gantt-tr-compositeHoverChevron {
578
+ opacity: 1;
579
+ }
580
+ .gantt-tr-compositeChevron {
581
+ width: 14px;
582
+ height: 14px;
583
+ transition: transform 140ms ease;
584
+ }
585
+ .gantt-tr-compositeChevron-open {
586
+ transform: rotate(90deg);
587
+ }
588
+ .gantt-tr-externalDuration.gantt-tr-compositeDuration {
589
+ font-size: 0.72rem;
590
+ }
591
+ .gantt-tr-durationBeforeBar {
592
+ position: absolute;
593
+ top: 50%;
594
+ z-index: 1;
595
+ width: 40px;
596
+ padding-right: 4px;
597
+ transform: translateY(-50%);
598
+ text-align: right;
599
+ pointer-events: none;
600
+ font-size: 0.8rem;
601
+ font-weight: 500;
602
+ }
603
+ .gantt-tr-compositeBar .gantt-tr-resizeHandle {
604
+ width: 6px;
605
+ }
606
+ .gantt-tr-row-compositeDetail {
607
+ background-color: color-mix(in srgb, var(--gantt-tr-composite-detail-color) 8%, transparent);
608
+ }
609
+ .gantt-tr-row-compositeDetail:hover,
610
+ .gantt-tr-row-compositeDetail.gantt-tr-row-hovered {
611
+ box-shadow: inset 0 0 0 9999px var(--gantt-row-hover-background, rgba(59, 130, 246, 0.04));
612
+ }
613
+ .gantt-tr-row-compositeDetail .gantt-tr-taskBar {
614
+ border-radius: 4px;
615
+ opacity: .88;
616
+ }
617
+ .gantt-tr-row-compositeDetail .gantt-tr-leftLabels {
618
+ display: none;
619
+ }
620
+ .gantt-tr-row-compositeDetail .gantt-tr-externalTaskName {
621
+ font-size: 0.72rem;
622
+ }
623
+ .gantt-tr-row-compositeDetail .gantt-tr-progressText {
624
+ display: none;
625
+ }
626
+ .gantt-tr-row-compositeDetail .gantt-tr-externalProgress {
627
+ display: none;
628
+ }
497
629
  .gantt-tr-milestone {
498
630
  border-radius: 2px;
499
631
  overflow: visible;
@@ -1303,6 +1435,89 @@
1303
1435
  .gantt-tl-row-child {
1304
1436
  padding-left: 0;
1305
1437
  }
1438
+ .gantt-tl-row-composite-detail {
1439
+ --gantt-tl-name-actions-bg: color-mix(in srgb, var(--gantt-tl-composite-detail-color) 9%, var(--gantt-cell-background, #fff));
1440
+ background: color-mix(in srgb, var(--gantt-tl-composite-detail-color) 9%, var(--gantt-cell-background, #fff));
1441
+ font-size: 12px;
1442
+ }
1443
+ .gantt-tl-row-composite-detail .gantt-tl-cell:not(.gantt-tl-cell-name):not(.gantt-tl-cell-number):not(.gantt-tl-cell-progress) {
1444
+ visibility: hidden;
1445
+ }
1446
+ .gantt-tl-row-composite-detail .gantt-tl-cell-name {
1447
+ color: #5b4b83;
1448
+ }
1449
+ .gantt-tl-compositeToggle {
1450
+ position: absolute;
1451
+ top: 50%;
1452
+ z-index: 3;
1453
+ display: grid;
1454
+ place-items: center;
1455
+ width: 24px;
1456
+ height: 24px;
1457
+ padding: 2px;
1458
+ transform: translateY(-50%);
1459
+ border: 0;
1460
+ border-radius: 4px;
1461
+ background: transparent;
1462
+ color: var(--gantt-text-color, #374151);
1463
+ cursor: pointer;
1464
+ }
1465
+ .gantt-tl-compositeToggle:hover {
1466
+ background: var(--gantt-control-hover-background, rgba(15, 23, 42, .08));
1467
+ }
1468
+ .gantt-tl-compositeToggle:focus-visible,
1469
+ .gantt-tl-collapse-btn:focus-visible {
1470
+ outline: 2px solid var(--gantt-focus-ring-color, #64748b);
1471
+ outline-offset: 1px;
1472
+ }
1473
+ .gantt-tl-compositeToggle svg {
1474
+ width: 13px;
1475
+ height: 13px;
1476
+ transform-origin: center;
1477
+ }
1478
+ .gantt-tl-compositeToggle .gantt-tl-compositeGlyph-composite-opening-outgoing {
1479
+ animation: gantt-tl-composite-out-open 120ms ease-in-out forwards;
1480
+ }
1481
+ .gantt-tl-compositeToggle .gantt-tl-compositeGlyph-down-opening-incoming {
1482
+ animation: gantt-tl-composite-in-open 120ms ease-in-out forwards;
1483
+ }
1484
+ .gantt-tl-compositeToggle .gantt-tl-compositeGlyph-down-closing-outgoing {
1485
+ animation: gantt-tl-composite-out-close 120ms ease-in-out forwards;
1486
+ }
1487
+ .gantt-tl-compositeToggle .gantt-tl-compositeGlyph-composite-closing-incoming {
1488
+ animation: gantt-tl-composite-in-close 120ms ease-in-out forwards;
1489
+ }
1490
+ @keyframes gantt-tl-composite-out-open {
1491
+ to {
1492
+ transform: rotate(90deg);
1493
+ }
1494
+ }
1495
+ @keyframes gantt-tl-composite-in-open {
1496
+ from {
1497
+ transform: rotate(-90deg);
1498
+ }
1499
+ to {
1500
+ transform: rotate(0deg);
1501
+ }
1502
+ }
1503
+ @keyframes gantt-tl-composite-out-close {
1504
+ to {
1505
+ transform: rotate(-90deg);
1506
+ }
1507
+ }
1508
+ @keyframes gantt-tl-composite-in-close {
1509
+ from {
1510
+ transform: rotate(90deg);
1511
+ }
1512
+ to {
1513
+ transform: rotate(0deg);
1514
+ }
1515
+ }
1516
+ @media (prefers-reduced-motion: reduce) {
1517
+ .gantt-tl-compositeToggle [class*=gantt-tl-compositeGlyph-] {
1518
+ animation-duration: 1ms;
1519
+ }
1520
+ }
1306
1521
  .gantt-tl-row-parent {
1307
1522
  font-weight: 600;
1308
1523
  --gantt-tl-name-actions-bg: inherit;
@@ -1338,8 +1553,8 @@
1338
1553
  top: 50%;
1339
1554
  transform: translateY(-50%);
1340
1555
  z-index: 2;
1341
- width: 18px;
1342
- height: 18px;
1556
+ width: 24px;
1557
+ height: 24px;
1343
1558
  border: none;
1344
1559
  background: transparent;
1345
1560
  border-radius: 4px;
@@ -1352,7 +1567,7 @@
1352
1567
  transition: background-color 0.15s ease;
1353
1568
  }
1354
1569
  .gantt-tl-collapse-btn:hover {
1355
- background-color: transparent;
1570
+ background-color: var(--gantt-control-hover-background, rgba(15, 23, 42, .08));
1356
1571
  }
1357
1572
  .gantt-tl-collapse-btn svg {
1358
1573
  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.0",
4
4
  "description": "React scheduling UI library for Gantt charts, resource planners, and table-matrix views",
5
5
  "license": "MIT",
6
6
  "repository": {