gantt-lib 0.81.0 → 0.83.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
@@ -776,7 +776,6 @@
776
776
  top: 0;
777
777
  z-index: 15;
778
778
  background-color: var(--gantt-cell-background, #ffffff);
779
- border-right: 1px solid var(--gantt-grid-line-color, #e0e0e0);
780
779
  display: flex;
781
780
  flex-direction: column;
782
781
  flex-shrink: 0;
@@ -784,6 +783,17 @@
784
783
  width: var(--tasklist-width);
785
784
  min-width: var(--tasklist-width);
786
785
  }
786
+ .gantt-tl-overlay::after {
787
+ content: "";
788
+ position: absolute;
789
+ top: 0;
790
+ right: 0;
791
+ bottom: 0;
792
+ z-index: 6;
793
+ width: 1px;
794
+ background: var(--gantt-grid-line-color, #e0e0e0);
795
+ pointer-events: none;
796
+ }
787
797
  .gantt-tl-overlay.gantt-tl-overlay-shadowed {
788
798
  box-shadow: 10px 0 18px -14px rgba(15, 23, 42, 0.45);
789
799
  }
@@ -2114,39 +2124,409 @@
2114
2124
  background: var(--gantt-cell-background, #ffffff);
2115
2125
  border-right: 1px solid var(--gantt-grid-line-color, #e0e0e0);
2116
2126
  }
2127
+ .gantt-resourceTimeline-resourceColumnShadowed {
2128
+ box-shadow: 10px 0 18px -14px rgba(15, 23, 42, 0.45);
2129
+ }
2117
2130
  .gantt-resourceTimeline-corner {
2118
2131
  position: sticky;
2119
2132
  top: 0;
2120
2133
  z-index: 4;
2134
+ display: grid;
2135
+ grid-template-columns: 30px minmax(146px, 1fr) 80px 86px 32px;
2136
+ align-items: center;
2121
2137
  background: var(--gantt-cell-background, #ffffff);
2122
2138
  border-bottom: 1px solid var(--gantt-grid-line-color, #e0e0e0);
2139
+ box-sizing: border-box;
2140
+ color: #6b7280;
2123
2141
  }
2124
- .gantt-resourceTimeline-resourceHeader {
2142
+ .gantt-resourceTimeline-resourceHeaderCell {
2143
+ min-width: 0;
2144
+ padding: 0 8px;
2145
+ font-size: 11px;
2146
+ font-weight: 700;
2147
+ letter-spacing: 0;
2148
+ line-height: 1;
2149
+ overflow: hidden;
2150
+ text-overflow: ellipsis;
2151
+ white-space: nowrap;
2152
+ }
2153
+ .gantt-resourceTimeline-resourceHeaderNumber {
2154
+ padding-left: 10px;
2155
+ }
2156
+ .gantt-resourceTimeline-resourceHeaderName {
2157
+ padding-left: 40px;
2158
+ }
2159
+ .gantt-resourceTimeline-resourceHeaderActions {
2160
+ text-align: right;
2161
+ }
2162
+ .gantt-resourceTimeline-resourceGroupHeader {
2125
2163
  display: flex;
2126
- align-items: flex-start;
2127
- gap: 8px;
2128
- padding: 10px 12px 0;
2164
+ align-items: center;
2165
+ gap: 6px;
2166
+ padding: 0 10px;
2129
2167
  box-sizing: border-box;
2130
2168
  border-bottom: 1px solid var(--gantt-grid-line-color, #e0e0e0);
2131
- color: #1f2937;
2169
+ background: #f7f8fa;
2170
+ color: #44546f;
2171
+ }
2172
+ .gantt-resourceTimeline-resourceGroupTitle {
2173
+ min-width: 0;
2174
+ overflow: hidden;
2175
+ text-overflow: ellipsis;
2176
+ white-space: nowrap;
2177
+ font-size: 12px;
2178
+ font-weight: 700;
2179
+ line-height: 1;
2180
+ }
2181
+ .gantt-resourceTimeline-resourceGroupCount {
2182
+ flex: 0 0 auto;
2183
+ min-width: 18px;
2184
+ height: 18px;
2185
+ padding: 0 5px;
2186
+ border-radius: 9px;
2187
+ background: #dfe1e6;
2188
+ color: #42526e;
2189
+ font-size: 11px;
2190
+ font-weight: 700;
2191
+ line-height: 18px;
2192
+ text-align: center;
2193
+ }
2194
+ .gantt-resourceTimeline-resourceGroupAddButton {
2195
+ display: inline-flex;
2196
+ align-items: center;
2197
+ justify-content: center;
2198
+ flex: 0 0 auto;
2199
+ width: 22px;
2200
+ height: 22px;
2201
+ margin-left: auto;
2202
+ border: 0;
2203
+ border-radius: 4px;
2204
+ background: transparent;
2205
+ color: #2563eb;
2206
+ cursor: pointer;
2207
+ font: inherit;
2208
+ font-size: 18px;
2209
+ font-weight: 700;
2210
+ line-height: 1;
2211
+ opacity: 0;
2212
+ transition:
2213
+ background-color 120ms ease,
2214
+ color 120ms ease,
2215
+ opacity 120ms ease;
2216
+ }
2217
+ .gantt-resourceTimeline-resourceGroupHeader:hover .gantt-resourceTimeline-resourceGroupAddButton,
2218
+ .gantt-resourceTimeline-resourceGroupHeader:focus-within .gantt-resourceTimeline-resourceGroupAddButton {
2219
+ opacity: 1;
2220
+ }
2221
+ .gantt-resourceTimeline-resourceGroupAddButton:hover,
2222
+ .gantt-resourceTimeline-resourceGroupAddButton:focus-visible {
2223
+ background: #deebff;
2224
+ color: #0747a6;
2225
+ outline: none;
2226
+ }
2227
+ .gantt-resourceTimeline-resourceHeader {
2228
+ display: grid;
2229
+ grid-template-columns: 30px minmax(146px, 1fr) 80px 86px 32px;
2230
+ align-items: start;
2231
+ column-gap: 0;
2232
+ padding: 6px 0 0;
2233
+ box-sizing: border-box;
2234
+ border-bottom: 1px solid var(--gantt-grid-line-color, #e0e0e0);
2235
+ color: #172b4d;
2132
2236
  font-size: 14px;
2133
2237
  font-weight: 500;
2134
2238
  background: var(--gantt-cell-background, #ffffff);
2239
+ transition: background-color 120ms ease, box-shadow 120ms ease;
2240
+ }
2241
+ .gantt-resourceTimeline-resourceHeader:hover,
2242
+ .gantt-resourceTimeline-resourceHeaderMenuOpen {
2243
+ background: #f4f8ff;
2244
+ box-shadow: inset 0 0 0 9999px rgba(9, 30, 66, 0.015);
2135
2245
  }
2136
2246
  .gantt-resourceTimeline-resourceHeaderNew {
2137
2247
  align-items: center;
2138
2248
  padding-top: 0;
2139
2249
  }
2250
+ .gantt-resourceTimeline-resourceNumber {
2251
+ min-width: 0;
2252
+ padding: 1px 6px 0 10px;
2253
+ color: #8993a4;
2254
+ font-family:
2255
+ ui-monospace,
2256
+ SFMono-Regular,
2257
+ Menlo,
2258
+ Monaco,
2259
+ Consolas,
2260
+ "Liberation Mono",
2261
+ monospace;
2262
+ font-size: 12px;
2263
+ line-height: 1.25;
2264
+ }
2140
2265
  .gantt-resourceTimeline-resourceName {
2266
+ position: relative;
2141
2267
  min-width: 0;
2142
- flex: 1 1 auto;
2143
- display: -webkit-box;
2144
- overflow: hidden;
2268
+ display: flex;
2269
+ align-items: flex-start;
2270
+ gap: 6px;
2271
+ min-height: 32px;
2272
+ height: 100%;
2273
+ overflow: visible;
2145
2274
  font-size: 13px;
2146
2275
  line-height: 1.25;
2276
+ padding: 0 6px;
2147
2277
  overflow-wrap: anywhere;
2148
- -webkit-box-orient: vertical;
2149
- -webkit-line-clamp: 2;
2278
+ }
2279
+ .gantt-resourceTimeline-resourceNameButton {
2280
+ display: flex;
2281
+ align-self: stretch;
2282
+ align-items: flex-start;
2283
+ justify-content: flex-start;
2284
+ width: 100%;
2285
+ min-width: 0;
2286
+ height: 100%;
2287
+ min-height: 32px;
2288
+ border: 0;
2289
+ border-radius: 0;
2290
+ background: transparent;
2291
+ color: #172b4d;
2292
+ font: inherit;
2293
+ font-size: 13px;
2294
+ font-weight: 500;
2295
+ line-height: 1.25;
2296
+ overflow: hidden;
2297
+ padding: 2px 4px 0;
2298
+ text-align: left;
2299
+ vertical-align: top;
2300
+ cursor: pointer;
2301
+ white-space: normal;
2302
+ overflow-wrap: anywhere;
2303
+ }
2304
+ .gantt-resourceTimeline-resourceNameButton:hover,
2305
+ .gantt-resourceTimeline-resourceNameButton:focus-visible {
2306
+ outline: none;
2307
+ }
2308
+ .gantt-resourceTimeline-resourceNameButton:focus-visible {
2309
+ box-shadow: 0 0 0 2px rgba(76, 154, 255, 0.22);
2310
+ }
2311
+ .gantt-resourceTimeline-resourceNameInput {
2312
+ top: 0;
2313
+ left: 36px;
2314
+ width: 100%;
2315
+ min-width: 520px;
2316
+ height: 32px;
2317
+ font-size: 0.8rem;
2318
+ }
2319
+ .gantt-resourceTimeline-resourceTypeIconButton {
2320
+ display: inline-flex;
2321
+ align-items: center;
2322
+ justify-content: center;
2323
+ flex: 0 0 auto;
2324
+ width: 24px;
2325
+ height: 24px;
2326
+ margin-top: -1px;
2327
+ border: 1px solid transparent;
2328
+ border-radius: 4px;
2329
+ background: #ffffff;
2330
+ color: #6b778c;
2331
+ cursor: pointer;
2332
+ padding: 0;
2333
+ }
2334
+ .gantt-resourceTimeline-resourceTypeIconButton:hover:not(:disabled),
2335
+ .gantt-resourceTimeline-resourceTypeIconButton:focus-visible {
2336
+ background: #ffffff;
2337
+ border-color: #4c9aff;
2338
+ outline: none;
2339
+ }
2340
+ .gantt-resourceTimeline-resourceTypeIconButton:focus-visible {
2341
+ box-shadow: 0 0 0 2px rgba(76, 154, 255, 0.22);
2342
+ }
2343
+ .gantt-resourceTimeline-resourceTypeIconButton:disabled {
2344
+ cursor: default;
2345
+ opacity: 1;
2346
+ }
2347
+ .gantt-resourceTimeline-resourceTypeIcon {
2348
+ fill: none;
2349
+ stroke: currentColor;
2350
+ stroke-linecap: round;
2351
+ stroke-linejoin: round;
2352
+ stroke-width: 2;
2353
+ }
2354
+ .gantt-resourceTimeline-resourceTypeIconPeople {
2355
+ color: #0052cc;
2356
+ }
2357
+ .gantt-resourceTimeline-resourceTypeIconEquipment {
2358
+ color: #172b4d;
2359
+ }
2360
+ .gantt-resourceTimeline-resourceTypeIconMaterials {
2361
+ color: #de350b;
2362
+ }
2363
+ .gantt-resourceTimeline-resourceTypeIconOther {
2364
+ color: #6b778c;
2365
+ }
2366
+ .gantt-resourceTimeline-resourceScopeChip span,
2367
+ .gantt-resourceTimeline-resourceAssignments span {
2368
+ min-width: 0;
2369
+ overflow: hidden;
2370
+ text-overflow: ellipsis;
2371
+ white-space: nowrap;
2372
+ }
2373
+ .gantt-resourceTimeline-resourceScopeChip {
2374
+ display: inline-flex;
2375
+ align-items: center;
2376
+ justify-self: start;
2377
+ margin-top: 1px;
2378
+ max-width: calc(100% - 16px);
2379
+ min-width: 58px;
2380
+ height: 22px;
2381
+ margin: 0 6px;
2382
+ border: 1px solid transparent;
2383
+ cursor: pointer;
2384
+ font-family: inherit;
2385
+ }
2386
+ .gantt-resourceTimeline-resourceScopeChip:hover:not(:disabled) {
2387
+ background-color: #ffffff;
2388
+ border-color: #dfe1e6;
2389
+ }
2390
+ .gantt-resourceTimeline-resourceScopeChip:focus-visible {
2391
+ background: #ffffff;
2392
+ border-color: #4c9aff;
2393
+ box-shadow: 0 0 0 2px rgba(76, 154, 255, 0.22);
2394
+ outline: none;
2395
+ }
2396
+ .gantt-resourceTimeline-resourceScopeChip:disabled {
2397
+ cursor: default;
2398
+ opacity: 1;
2399
+ }
2400
+ .gantt-resourceTimeline-resourceScopeChip,
2401
+ .gantt-resourceTimeline-resourceOptionScopeDot {
2402
+ max-width: calc(100% - 16px);
2403
+ overflow: hidden;
2404
+ border-radius: 3px;
2405
+ padding: 2px 6px;
2406
+ font-size: 10px;
2407
+ font-weight: 700;
2408
+ letter-spacing: 0;
2409
+ line-height: 1.2;
2410
+ text-overflow: ellipsis;
2411
+ white-space: nowrap;
2412
+ }
2413
+ .gantt-resourceTimeline-resourceScopeShared {
2414
+ background: #deebff;
2415
+ color: #0747a6;
2416
+ }
2417
+ .gantt-resourceTimeline-resourceScopeProject {
2418
+ background: #e3fcef;
2419
+ color: #006644;
2420
+ }
2421
+ .gantt-resourceTimeline-resourceAssignments {
2422
+ display: flex;
2423
+ flex-direction: column;
2424
+ align-items: flex-start;
2425
+ justify-content: center;
2426
+ gap: 3px;
2427
+ justify-self: start;
2428
+ margin-top: 0;
2429
+ max-width: calc(100% - 16px);
2430
+ min-width: 50px;
2431
+ min-height: 34px;
2432
+ margin: 0 6px;
2433
+ overflow: hidden;
2434
+ color: #5e6c84;
2435
+ padding: 0;
2436
+ font-size: 11px;
2437
+ line-height: 1.3;
2438
+ text-overflow: ellipsis;
2439
+ white-space: nowrap;
2440
+ }
2441
+ .gantt-resourceTimeline-resourceAssignmentCount {
2442
+ display: grid;
2443
+ grid-template-columns: 28px 22px;
2444
+ align-items: center;
2445
+ column-gap: 4px;
2446
+ width: 100%;
2447
+ color: #97a0af;
2448
+ font-size: 11px;
2449
+ font-weight: 500;
2450
+ }
2451
+ .gantt-resourceTimeline-resourceAssignmentIcon {
2452
+ justify-self: start;
2453
+ width: 14px;
2454
+ fill: currentColor;
2455
+ stroke: none;
2456
+ opacity: 0.72;
2457
+ }
2458
+ .gantt-resourceTimeline-resourceWorkedDays {
2459
+ display: grid;
2460
+ grid-template-columns: 28px 22px;
2461
+ align-items: center;
2462
+ column-gap: 4px;
2463
+ width: 100%;
2464
+ color: #172b4d;
2465
+ font-size: 12px;
2466
+ font-weight: 700;
2467
+ margin-bottom: 1px;
2468
+ }
2469
+ .gantt-resourceTimeline-resourceMetricValue {
2470
+ display: inline-block;
2471
+ width: 28px;
2472
+ text-align: right;
2473
+ font-variant-numeric: tabular-nums;
2474
+ }
2475
+ .gantt-resourceTimeline-resourceMetricLabel {
2476
+ width: 22px;
2477
+ padding-left: 2px;
2478
+ text-align: left;
2479
+ }
2480
+ .gantt-resourceTimeline-resourceOptionMenu {
2481
+ min-width: 156px !important;
2482
+ padding: 4px !important;
2483
+ display: flex;
2484
+ flex-direction: column;
2485
+ gap: 2px;
2486
+ }
2487
+ .gantt-resourceTimeline-resourceOption {
2488
+ display: flex;
2489
+ align-items: center;
2490
+ gap: 8px;
2491
+ width: 100%;
2492
+ border: 0;
2493
+ border-radius: 4px;
2494
+ background: transparent;
2495
+ color: #172b4d;
2496
+ cursor: pointer;
2497
+ font: inherit;
2498
+ font-size: 12px;
2499
+ padding: 6px 8px;
2500
+ text-align: left;
2501
+ white-space: nowrap;
2502
+ }
2503
+ .gantt-resourceTimeline-resourceOption:hover,
2504
+ .gantt-resourceTimeline-resourceOptionActive {
2505
+ background: #deebff;
2506
+ color: #0747a6;
2507
+ }
2508
+ .gantt-resourceTimeline-resourceOptionIcon {
2509
+ display: inline-flex;
2510
+ align-items: center;
2511
+ justify-content: center;
2512
+ width: 18px;
2513
+ height: 18px;
2514
+ flex: 0 0 auto;
2515
+ }
2516
+ .gantt-resourceTimeline-resourceOptionScopeDot {
2517
+ width: 10px;
2518
+ height: 10px;
2519
+ min-width: 10px;
2520
+ padding: 0;
2521
+ flex: 0 0 auto;
2522
+ }
2523
+ .gantt-resourceTimeline-resourceActions {
2524
+ display: flex;
2525
+ min-width: 0;
2526
+ align-items: center;
2527
+ justify-content: flex-end;
2528
+ gap: 4px;
2529
+ padding: 0 8px;
2150
2530
  }
2151
2531
  .gantt-resourceTimeline-conflictBadge {
2152
2532
  display: inline-flex;
@@ -2158,8 +2538,8 @@
2158
2538
  padding: 0 5px;
2159
2539
  border: 0;
2160
2540
  border-radius: 3px;
2161
- background: #fee2e2;
2162
- color: #b91c1c;
2541
+ background: #de350b;
2542
+ color: #ffffff;
2163
2543
  cursor: pointer;
2164
2544
  font-size: 0.6875rem;
2165
2545
  font-weight: 700;
@@ -2168,8 +2548,8 @@
2168
2548
  }
2169
2549
  .gantt-resourceTimeline-conflictBadge:hover,
2170
2550
  .gantt-resourceTimeline-conflictBadge:focus-visible {
2171
- background: #fecaca;
2172
- color: #991b1b;
2551
+ background: #bf2600;
2552
+ color: #ffffff;
2173
2553
  outline: none;
2174
2554
  }
2175
2555
  .gantt-resourceTimeline-conflictBadge:focus-visible {
@@ -2180,9 +2560,8 @@
2180
2560
  align-items: center;
2181
2561
  justify-content: center;
2182
2562
  flex: 0 0 auto;
2183
- width: 24px;
2184
- height: 24px;
2185
- margin-top: -3px;
2563
+ width: 22px;
2564
+ height: 22px;
2186
2565
  border: 0;
2187
2566
  border-radius: 4px;
2188
2567
  background: transparent;
@@ -2249,6 +2628,7 @@
2249
2628
  color: #dc2626;
2250
2629
  }
2251
2630
  .gantt-resourceTimeline-resourceInput {
2631
+ grid-column: 2 / span 2;
2252
2632
  width: 100%;
2253
2633
  }
2254
2634
  .gantt-resourceTimeline-addResourceButton {
@@ -2284,12 +2664,13 @@
2284
2664
  z-index: 2;
2285
2665
  background: var(--gantt-cell-background, #ffffff);
2286
2666
  border-bottom: 1px solid var(--gantt-grid-line-color, #e0e0e0);
2667
+ box-sizing: border-box;
2287
2668
  }
2288
2669
  .gantt-resourceTimeline-grid {
2289
2670
  position: relative;
2290
2671
  }
2291
2672
  .gantt-resourceTimeline .gantt-ti-indicator {
2292
- z-index: 4;
2673
+ z-index: 40;
2293
2674
  }
2294
2675
  .gantt-resourceTimeline-row {
2295
2676
  position: absolute;
@@ -2299,6 +2680,9 @@
2299
2680
  border-bottom: 1px solid var(--gantt-grid-line-color, #e0e0e0);
2300
2681
  pointer-events: none;
2301
2682
  }
2683
+ .gantt-resourceTimeline-groupRow {
2684
+ background: #f7f8fa;
2685
+ }
2302
2686
  .gantt-resourceTimeline-item {
2303
2687
  position: absolute;
2304
2688
  z-index: 1;
@@ -2340,6 +2724,10 @@
2340
2724
  transform: translate(-50%, -100%);
2341
2725
  visibility: visible;
2342
2726
  }
2727
+ .gantt-resourceTimeline-item:hover,
2728
+ .gantt-resourceTimeline-item:focus-visible {
2729
+ z-index: 30;
2730
+ }
2343
2731
  .gantt-resourceTimeline-itemActive {
2344
2732
  z-index: 31;
2345
2733
  box-shadow: 0px 0 0px 2px rgb(0 0 0);
@@ -2514,6 +2902,7 @@
2514
2902
  z-index: 10;
2515
2903
  background-color: var(--gantt-cell-background, #ffffff);
2516
2904
  border-bottom: 1px solid var(--gantt-grid-line-color, #e0e0e0);
2905
+ box-sizing: border-box;
2517
2906
  }
2518
2907
  .gantt-taskArea {
2519
2908
  position: relative;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gantt-lib",
3
- "version": "0.81.0",
3
+ "version": "0.83.0",
4
4
  "description": "Lightweight React Gantt chart component library",
5
5
  "license": "MIT",
6
6
  "repository": {