@art-tools/react-gantt 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -125,7 +125,7 @@ function N(e, t, n) {
125
125
  default: throw Error(`Unsupported unit: ${t}`);
126
126
  }
127
127
  }
128
- function P(e, t, n) {
128
+ function ee(e, t, n) {
129
129
  let r = E[n];
130
130
  if (r !== void 0) return (t.getTime() - e.getTime()) / r;
131
131
  let i = n === "month" ? 1 : n === "quarter" ? 3 : 12, a = e.getFullYear() * 12 + e.getMonth(), o = t.getFullYear() * 12 + t.getMonth(), s = Math.floor((o - a) / i);
@@ -134,16 +134,16 @@ function P(e, t, n) {
134
134
  let c = N(e, n, s).getTime(), l = N(e, n, s + 1).getTime();
135
135
  return s + (t.getTime() - c) / (l - c);
136
136
  }
137
- function F(e, t, n) {
137
+ function te(e, t, n) {
138
138
  let r = E[t];
139
139
  if (r !== void 0) return new Date(e.getTime() + n * r);
140
140
  let i = Math.floor(n), a = n - i, o = N(e, t, i).getTime(), s = N(e, t, i + 1).getTime();
141
141
  return new Date(o + a * (s - o));
142
142
  }
143
- function ee(e, t, n = "day", r = 1) {
143
+ function ne(e, t, n = "day", r = 1) {
144
144
  return Array.from({ length: t }, (t, i) => N(e, n, i * r));
145
145
  }
146
- function I(e) {
146
+ function P(e) {
147
147
  let t = e[0];
148
148
  if (!t) return null;
149
149
  let n = t.startDate, r = t.endDate ?? t.startDate;
@@ -157,19 +157,19 @@ function I(e) {
157
157
  max: r
158
158
  };
159
159
  }
160
- var L = S(I, 3), R = 1440, z = 6e4, B = [0, R], V = /^\s*(\d{1,2}):(\d{2})\s*-\s*(\d{1,2}):(\d{2})\s*$/;
161
- function te(e) {
162
- let t = V.exec(e);
160
+ var F = S(P, 3), I = 1440, L = 6e4, R = [0, I], z = /^\s*(\d{1,2}):(\d{2})\s*-\s*(\d{1,2}):(\d{2})\s*$/;
161
+ function re(e) {
162
+ let t = z.exec(e);
163
163
  if (!t) throw Error(`Invalid working-hours range ${JSON.stringify(e)}: expected "H:MM-H:MM", e.g. "8:30-12:00".`);
164
164
  let n = Number(t[1]) * 60 + Number(t[2]), r = Number(t[3]) * 60 + Number(t[4]);
165
165
  if (n < 0 || n >= 1440) throw Error(`Invalid working-hours range ${JSON.stringify(e)}: start must be within the day.`);
166
166
  if (r <= n || r > 1440) throw Error(`Invalid working-hours range ${JSON.stringify(e)}: end must be after start and no later than 24:00.`);
167
167
  return [n, r];
168
168
  }
169
- function H(e) {
170
- if (e === void 0) return B;
169
+ function B(e) {
170
+ if (e === void 0) return R;
171
171
  if (e === !1) return [];
172
- let t = e.map(te).toSorted((e, t) => e[0] - t[0]), n = [];
172
+ let t = e.map(re).toSorted((e, t) => e[0] - t[0]), n = [];
173
173
  for (let [e, r] of t) {
174
174
  let t = n.length > 0 ? n[n.length - 1] : void 0;
175
175
  if (t !== void 0 && e <= t) {
@@ -180,7 +180,7 @@ function H(e) {
180
180
  }
181
181
  return n;
182
182
  }
183
- function ne(e, t) {
183
+ function ie(e, t) {
184
184
  let n = [], r = 0;
185
185
  for (let t = 0; t < e.length; t += 2) n.push(r), r += e[t + 1] - e[t];
186
186
  return {
@@ -190,43 +190,43 @@ function ne(e, t) {
190
190
  id: t
191
191
  };
192
192
  }
193
- function re() {
193
+ function ae() {
194
194
  let e = /* @__PURE__ */ new Map();
195
195
  return (t) => {
196
196
  let n = t.join(","), r = e.get(n);
197
197
  if (r) return r;
198
- let i = ne(t, e.size);
198
+ let i = ie(t, e.size);
199
199
  return e.set(n, i), i;
200
200
  };
201
201
  }
202
- function ie(e) {
202
+ function oe(e) {
203
203
  return e === void 0 ? "*" : e === !1 ? "-" : e.join(",");
204
204
  }
205
- function ae(e) {
205
+ function se(e) {
206
206
  if (!e) return "";
207
- let t = [ie(e.hours)];
207
+ let t = [oe(e.hours)];
208
208
  for (let n = 0; n < 7; n++) {
209
209
  let r = e.days?.[n];
210
- r !== void 0 && t.push(`${n}=${ie(r)}`);
210
+ r !== void 0 && t.push(`${n}=${oe(r)}`);
211
211
  }
212
212
  let n = e.dates;
213
- if (n) for (let e of Object.keys(n).toSorted()) t.push(`${e}=${ie(n[e])}`);
213
+ if (n) for (let e of Object.keys(n).toSorted()) t.push(`${e}=${oe(n[e])}`);
214
214
  return t.join("|");
215
215
  }
216
- var oe = /^(\d{4})-(\d{2})-(\d{2})$/;
217
- function se(e) {
218
- let t = oe.exec(e);
216
+ var ce = /^(\d{4})-(\d{2})-(\d{2})$/;
217
+ function le(e) {
218
+ let t = ce.exec(e);
219
219
  if (!t) throw Error(`Invalid calendar date key ${JSON.stringify(e)}: expected a local civil date, "YYYY-MM-DD".`);
220
220
  return k(new Date(Number(t[1]), Number(t[2]) - 1, Number(t[3])));
221
221
  }
222
- function ce(e, t) {
223
- let n = re(), r = H(e.hours), i = [];
222
+ function ue(e, t) {
223
+ let n = ae(), r = B(e.hours), i = [];
224
224
  for (let t = 0; t < 7; t++) {
225
225
  let a = e.days?.[t];
226
- i.push(n(a === void 0 ? r : H(a)));
226
+ i.push(n(a === void 0 ? r : B(a)));
227
227
  }
228
228
  let a = /* @__PURE__ */ new Map();
229
- if (e.dates) for (let [t, r] of Object.entries(e.dates)) a.set(se(t), n(H(r)));
229
+ if (e.dates) for (let [t, r] of Object.entries(e.dates)) a.set(le(t), n(B(r)));
230
230
  let o = [...a.keys()].toSorted((e, t) => e - t), s = 0, c = !0, l = a.size === 0;
231
231
  for (let e of i) s += e.totalMinutes, e.totalMinutes !== 0 && e.totalMinutes !== 1440 && (c = !1), e.totalMinutes !== 1440 && (l = !1);
232
232
  for (let e of a.values()) e.totalMinutes !== 0 && e.totalMinutes !== 1440 && (c = !1);
@@ -240,13 +240,13 @@ function ce(e, t) {
240
240
  isAlwaysWorking: l,
241
241
  isDayGranular: c,
242
242
  weekMinutes: s,
243
- msPerWorkingDay: u * z
243
+ msPerWorkingDay: u * L
244
244
  };
245
245
  }
246
- function U(e, t) {
246
+ function V(e, t) {
247
247
  return e.byDate.get(t) || e.byWeekday[((t + 4) % 7 + 7) % 7];
248
248
  }
249
- function le(e, t) {
249
+ function de(e, t) {
250
250
  let n = e.overrideDays, r = 0, i = n.length;
251
251
  for (; r < i;) {
252
252
  let e = r + i >> 1;
@@ -254,7 +254,7 @@ function le(e, t) {
254
254
  }
255
255
  return r < n.length ? n[r] : Infinity;
256
256
  }
257
- function ue(e, t) {
257
+ function fe(e, t) {
258
258
  let n = e.overrideDays, r = 0, i = n.length;
259
259
  for (; r < i;) {
260
260
  let e = r + i >> 1;
@@ -264,24 +264,24 @@ function ue(e, t) {
264
264
  }
265
265
  //#endregion
266
266
  //#region src/hooks/useResolvedCalendar.ts
267
- function de(e) {
268
- let t = p(null), n = ae(e);
267
+ function pe(e) {
268
+ let t = p(null), n = se(e);
269
269
  return (!t.current || t.current.key !== n) && (t.current = {
270
270
  key: n,
271
- value: e ? ce(e, n) : null
271
+ value: e ? ue(e, n) : null
272
272
  }), t.current.value;
273
273
  }
274
274
  //#endregion
275
275
  //#region src/core/workingTime.ts
276
- var fe = 36e5, pe = 864e5, me = 2e4;
277
- function he(e) {
278
- return (e.getHours() * fe + e.getMinutes() * z + e.getSeconds() * 1e3 + e.getMilliseconds()) / z;
276
+ var me = 36e5, he = 864e5, ge = 2e4;
277
+ function H(e) {
278
+ return (e.getHours() * me + e.getMinutes() * L + e.getSeconds() * 1e3 + e.getMilliseconds()) / L;
279
279
  }
280
- function ge(e, t) {
280
+ function _e(e, t) {
281
281
  let n = A(e);
282
- return new Date(n.getFullYear(), n.getMonth(), n.getDate(), 0, 0, 0, Math.round(t * z));
282
+ return new Date(n.getFullYear(), n.getMonth(), n.getDate(), 0, 0, 0, Math.round(t * L));
283
283
  }
284
- function _e(e, t) {
284
+ function ve(e, t) {
285
285
  let { intervals: n, prefix: r } = e;
286
286
  for (let e = 0, i = 0; e < n.length; e += 2, i++) {
287
287
  let a = n[e], o = n[e + 1];
@@ -290,12 +290,12 @@ function _e(e, t) {
290
290
  }
291
291
  return e.totalMinutes;
292
292
  }
293
- function W(e, t) {
293
+ function ye(e, t) {
294
294
  let { intervals: n, prefix: r } = e, i = n.length > 0 ? n[0] : 0;
295
295
  for (let e = 0, a = 0; e < n.length && !(r[a] >= t); e += 2, a++) i = n[e] + (t - r[a]);
296
296
  return i;
297
297
  }
298
- function ve(e, t) {
298
+ function be(e, t) {
299
299
  let { intervals: n, prefix: r } = e;
300
300
  for (let e = 0, i = 0; e < n.length; e += 2, i++) {
301
301
  let a = n[e + 1] - n[e];
@@ -303,90 +303,90 @@ function ve(e, t) {
303
303
  }
304
304
  return n.length > 0 ? n[n.length - 1] : 0;
305
305
  }
306
- function ye(e, t) {
306
+ function U(e, t) {
307
307
  let { intervals: n } = e;
308
308
  for (let e = 0; e < n.length; e += 2) if (t < n[e + 1]) return Math.max(t, n[e]);
309
309
  return null;
310
310
  }
311
- function be(e, t) {
311
+ function xe(e, t) {
312
312
  let { intervals: n } = e, r = null;
313
313
  for (let e = 0; e < n.length; e += 2) t > n[e] && (r = Math.min(t, n[e + 1]));
314
314
  return r;
315
315
  }
316
- function xe(e, t) {
316
+ function Se(e, t) {
317
317
  if (!e || e.isAlwaysWorking) return !0;
318
- let n = U(e, k(t)), r = he(t), { intervals: i } = n;
318
+ let n = V(e, k(t)), r = H(t), { intervals: i } = n;
319
319
  for (let e = 0; e < i.length; e += 2) if (r >= i[e] && r < i[e + 1]) return !0;
320
320
  return !1;
321
321
  }
322
- function G(e, t, n) {
322
+ function W(e, t, n) {
323
323
  if (!e || e.isAlwaysWorking || e.weekMinutes === 0 && e.byDate.size === 0) return t;
324
- let r = k(t), i = he(t);
325
- for (let a = 0; a < me; a++) {
326
- let a = U(e, r);
324
+ let r = k(t), i = H(t);
325
+ for (let a = 0; a < ge; a++) {
326
+ let a = V(e, r);
327
327
  if (n === 1) {
328
- let e = ye(a, i);
329
- if (e !== null) return e === i && r === k(t) ? t : ge(r, e);
328
+ let e = U(a, i);
329
+ if (e !== null) return e === i && r === k(t) ? t : _e(r, e);
330
330
  r += 1, i = 0;
331
331
  continue;
332
332
  }
333
- let o = be(a, i);
334
- if (o !== null) return o === i && r === k(t) ? t : ge(r, o);
335
- --r, i = R;
333
+ let o = xe(a, i);
334
+ if (o !== null) return o === i && r === k(t) ? t : _e(r, o);
335
+ --r, i = I;
336
336
  }
337
337
  return t;
338
338
  }
339
- function Se(e, t) {
340
- if (!e || e.isAlwaysWorking || xe(e, t)) return t;
341
- let n = G(e, t, 1), r = G(e, t, -1);
339
+ function Ce(e, t) {
340
+ if (!e || e.isAlwaysWorking || Se(e, t)) return t;
341
+ let n = W(e, t, 1), r = W(e, t, -1);
342
342
  return n.getTime() - t.getTime() <= t.getTime() - r.getTime() ? n : r;
343
343
  }
344
- function Ce(e, t, n) {
345
- let r = k(t), i = he(t), a = n;
346
- for (let t = 0; t < me; t++) {
347
- let t = U(e, r), n = _e(t, i), o = t.totalMinutes - n;
348
- if (a <= o) return ge(r, W(t, n + a));
344
+ function we(e, t, n) {
345
+ let r = k(t), i = H(t), a = n;
346
+ for (let t = 0; t < ge; t++) {
347
+ let t = V(e, r), n = ve(t, i), o = t.totalMinutes - n;
348
+ if (a <= o) return _e(r, ye(t, n + a));
349
349
  if (a -= o, r += 1, i = 0, e.weekMinutes > 0 && a > e.weekMinutes) {
350
- let t = le(e, r), n = t === Infinity ? Infinity : Math.floor((t - r) / 7), i = Math.ceil(a / e.weekMinutes) - 1, o = Math.min(n, i);
350
+ let t = de(e, r), n = t === Infinity ? Infinity : Math.floor((t - r) / 7), i = Math.ceil(a / e.weekMinutes) - 1, o = Math.min(n, i);
351
351
  o > 0 && Number.isFinite(o) && (r += o * 7, a -= o * e.weekMinutes);
352
352
  }
353
353
  }
354
- return ge(r, i);
354
+ return _e(r, i);
355
355
  }
356
- function we(e, t, n) {
357
- let r = k(t), i = he(t), a = n;
358
- for (let t = 0; t < me; t++) {
359
- let t = U(e, r), n = _e(t, i);
360
- if (a <= n) return ge(r, ve(t, n - a));
361
- if (a -= n, --r, i = R, e.weekMinutes > 0 && a > e.weekMinutes) {
362
- let t = ue(e, r), n = t === -Infinity ? Infinity : Math.floor((r - t) / 7), i = Math.ceil(a / e.weekMinutes) - 1, o = Math.min(n, i);
356
+ function Te(e, t, n) {
357
+ let r = k(t), i = H(t), a = n;
358
+ for (let t = 0; t < ge; t++) {
359
+ let t = V(e, r), n = ve(t, i);
360
+ if (a <= n) return _e(r, be(t, n - a));
361
+ if (a -= n, --r, i = I, e.weekMinutes > 0 && a > e.weekMinutes) {
362
+ let t = fe(e, r), n = t === -Infinity ? Infinity : Math.floor((r - t) / 7), i = Math.ceil(a / e.weekMinutes) - 1, o = Math.min(n, i);
363
363
  o > 0 && Number.isFinite(o) && (r -= o * 7, a -= o * e.weekMinutes);
364
364
  }
365
365
  }
366
- return ge(r, i);
366
+ return _e(r, i);
367
367
  }
368
- function K(e, t, n, r) {
368
+ function G(e, t, n, r) {
369
369
  if (!e) return new Date(t.getTime() + n);
370
- let i = G(e, t, r ?? (n < 0 ? -1 : 1));
371
- return n === 0 || e.weekMinutes === 0 && e.byDate.size === 0 ? i : n > 0 ? Ce(e, i, n / z) : we(e, i, -n / z);
370
+ let i = W(e, t, r ?? (n < 0 ? -1 : 1));
371
+ return n === 0 || e.weekMinutes === 0 && e.byDate.size === 0 ? i : n > 0 ? we(e, i, n / L) : Te(e, i, -n / L);
372
372
  }
373
- function Te(e, t, n) {
373
+ function K(e, t, n) {
374
374
  if (!e) return n.getTime() - t.getTime();
375
- if (n.getTime() < t.getTime()) return -Te(e, n, t);
376
- let r = k(n), i = k(t), a = he(t), o = 0;
375
+ if (n.getTime() < t.getTime()) return -K(e, n, t);
376
+ let r = k(n), i = k(t), a = H(t), o = 0;
377
377
  for (; i < r;) {
378
378
  if (a === 0 && e.weekMinutes > 0) {
379
- let t = le(e, i), n = Math.floor((Math.min(r, t) - i) / 7);
379
+ let t = de(e, i), n = Math.floor((Math.min(r, t) - i) / 7);
380
380
  if (n > 0) {
381
381
  o += n * e.weekMinutes, i += n * 7;
382
382
  continue;
383
383
  }
384
384
  }
385
- let t = U(e, i);
386
- o += t.totalMinutes - _e(t, a), i += 1, a = 0;
385
+ let t = V(e, i);
386
+ o += t.totalMinutes - ve(t, a), i += 1, a = 0;
387
387
  }
388
- let s = U(e, i);
389
- return o += _e(s, he(n)) - _e(s, a), o * z;
388
+ let s = V(e, i);
389
+ return o += ve(s, H(n)) - ve(s, a), o * L;
390
390
  }
391
391
  var Ee = { isNonWorking: !1 };
392
392
  function De(e, t, n) {
@@ -397,12 +397,12 @@ function De(e, t, n) {
397
397
  reason: "weekend"
398
398
  } : Ee;
399
399
  }
400
- if (Te(e, t, n) > 0) return Ee;
400
+ if (K(e, t, n) > 0) return Ee;
401
401
  let r = k(t);
402
402
  return e.byDate.has(r) ? {
403
403
  isNonWorking: !0,
404
404
  reason: "holiday"
405
- } : U(e, r).totalMinutes === 0 ? {
405
+ } : V(e, r).totalMinutes === 0 ? {
406
406
  isNonWorking: !0,
407
407
  reason: "weekend"
408
408
  } : {
@@ -411,10 +411,10 @@ function De(e, t, n) {
411
411
  };
412
412
  }
413
413
  function Oe(e, t) {
414
- return t === "minute" ? z : t === "hour" ? fe : !e || e.msPerWorkingDay === 0 ? pe : e.msPerWorkingDay;
414
+ return t === "minute" ? L : t === "hour" ? me : !e || e.msPerWorkingDay === 0 ? he : e.msPerWorkingDay;
415
415
  }
416
416
  function ke(e, t, n, r, i) {
417
- return K(e, t, n * Oe(e, r), i);
417
+ return G(e, t, n * Oe(e, r), i);
418
418
  }
419
419
  //#endregion
420
420
  //#region src/core/taskDates.ts
@@ -437,7 +437,7 @@ function Pe(e, t) {
437
437
  if (!(n.getTime() <= e.startDate.getTime())) return Me(e.startDate, n);
438
438
  }
439
439
  function Fe(e, t) {
440
- return Te(t.calendar, e.startDate, je(e, t)) / Oe(t.calendar, t.durationUnit);
440
+ return K(t.calendar, e.startDate, je(e, t)) / Oe(t.calendar, t.durationUnit);
441
441
  }
442
442
  //#endregion
443
443
  //#region src/core/labels.ts
@@ -635,15 +635,15 @@ function tt(e, t) {
635
635
  }
636
636
  function nt(e, t) {
637
637
  let { start: n, end: r } = tt(e, t);
638
- return Te(t.calendar, n, r);
638
+ return K(t.calendar, n, r);
639
639
  }
640
640
  function rt(e, t, n, r, i) {
641
641
  let a = i.calendar;
642
642
  switch (t) {
643
- case "FS": return K(a, e.end, n, 1);
644
- case "SS": return K(a, e.start, n, 1);
645
- case "FF": return K(a, K(a, e.end, n, -1), -r, -1);
646
- case "SF": return K(a, K(a, e.start, n, -1), -r, -1);
643
+ case "FS": return G(a, e.end, n, 1);
644
+ case "SS": return G(a, e.start, n, 1);
645
+ case "FF": return G(a, G(a, e.end, n, -1), -r, -1);
646
+ case "SF": return G(a, G(a, e.start, n, -1), -r, -1);
647
647
  }
648
648
  }
649
649
  function it(e) {
@@ -680,7 +680,7 @@ function ot(e, t, n, r) {
680
680
  let t = rt(tt(e, r), s.type, (s.lag ?? 0) * a, i, r);
681
681
  (o === null || t > o) && (o = t);
682
682
  }
683
- return o === null ? null : G(r.calendar, o, 1);
683
+ return o === null ? null : W(r.calendar, o, 1);
684
684
  }
685
685
  function st(e, t, n) {
686
686
  return e.type === "milestone" ? {
@@ -690,34 +690,34 @@ function st(e, t, n) {
690
690
  } : {
691
691
  ...e,
692
692
  startDate: t,
693
- endDate: K(n.calendar, t, nt(e, n), 1)
693
+ endDate: G(n.calendar, t, nt(e, n), 1)
694
694
  };
695
695
  }
696
696
  function ct(e, t, n) {
697
697
  let r = n.calendar, i = n.snapToWorking, a = tt(e, n);
698
698
  if (e.type === "milestone") {
699
- let e = t.kind === "resizeEnd" ? t.endDate : t.startDate, n = i ? Se(r, e) : e;
699
+ let e = t.kind === "resizeEnd" ? t.endDate : t.startDate, n = i ? Ce(r, e) : e;
700
700
  return {
701
701
  startDate: n,
702
702
  endDate: n
703
703
  };
704
704
  }
705
705
  if (t.kind === "move") {
706
- let e = Te(r, a.start, a.end), n = i ? G(r, t.startDate, 1) : t.startDate;
706
+ let e = K(r, a.start, a.end), n = i ? W(r, t.startDate, 1) : t.startDate;
707
707
  return {
708
708
  startDate: n,
709
- endDate: K(r, n, e, 1)
709
+ endDate: G(r, n, e, 1)
710
710
  };
711
711
  }
712
- let o = t.kind === "resizeStart" ? t.startDate : a.start, s = t.kind === "resizeEnd" ? t.endDate : a.end, c = i ? G(r, o, 1) : o, l = i ? G(r, s, -1) : s;
713
- if (Te(r, c, l) <= 0) {
712
+ let o = t.kind === "resizeStart" ? t.startDate : a.start, s = t.kind === "resizeEnd" ? t.endDate : a.end, c = i ? W(r, o, 1) : o, l = i ? W(r, s, -1) : s;
713
+ if (K(r, c, l) <= 0) {
714
714
  let e = Oe(r, n.durationUnit);
715
715
  return t.kind === "resizeStart" ? {
716
- startDate: K(r, l, -e, -1),
716
+ startDate: G(r, l, -e, -1),
717
717
  endDate: l
718
718
  } : {
719
719
  startDate: c,
720
- endDate: K(r, c, e, 1)
720
+ endDate: G(r, c, e, 1)
721
721
  };
722
722
  }
723
723
  return {
@@ -749,37 +749,107 @@ function lt(e, t, n, r = Ae) {
749
749
  return o;
750
750
  }
751
751
  //#endregion
752
- //#region src/hooks/useTaskList.ts
752
+ //#region src/core/criticalPath.ts
753
753
  var ut = {
754
+ criticalTaskIds: /* @__PURE__ */ new Set(),
755
+ criticalDependencyKeys: /* @__PURE__ */ new Set()
756
+ };
757
+ function dt(e, t, n, r, i, a) {
758
+ let o = a.calendar;
759
+ switch (t) {
760
+ case "FS": return G(o, e, -n, 1);
761
+ case "SS": return G(o, G(o, e, -n, 1), i, 1);
762
+ case "FF": return G(o, G(o, e, r, -1), -n, -1);
763
+ case "SF": return G(o, G(o, G(o, e, r, -1), -n, -1), i, 1);
764
+ }
765
+ }
766
+ function ft(e, t, n) {
767
+ if (e.size === 0) return ut;
768
+ let { successorsOf: r, predecessorDeps: i } = t, a = Oe(n.calendar, n.durationUnit), o = null;
769
+ for (let t of e.values()) {
770
+ let e = tt(t, n).end;
771
+ (o === null || e.getTime() > o.getTime()) && (o = e);
772
+ }
773
+ if (o === null) return ut;
774
+ let s = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Map(), l = new et();
775
+ for (let t of e.values()) {
776
+ let e = (r.get(t.id) ?? []).length;
777
+ c.set(t.id, e), e === 0 && l.enqueue(t.id);
778
+ }
779
+ let u = (t.size + 1) * (e.size + 1), d = 0;
780
+ for (; !l.isEmpty() && !(d++ > u);) {
781
+ let t = l.dequeue(), u = e.get(t);
782
+ if (!u || s.has(t)) continue;
783
+ let d = r.get(t) ?? [], f = o;
784
+ for (let r of d) {
785
+ let o = e.get(r), c = s.get(r);
786
+ if (!(!o || !c)) for (let e of i.get(r) ?? []) {
787
+ if (e.from !== t) continue;
788
+ let r = dt(c, e.type, (e.lag ?? 0) * a, nt(o, n), nt(u, n), n);
789
+ r.getTime() < f.getTime() && (f = r);
790
+ }
791
+ }
792
+ s.set(t, G(n.calendar, f, -nt(u, n), -1));
793
+ for (let e of i.get(t) ?? []) {
794
+ let t = (c.get(e.from) ?? 0) - 1;
795
+ c.set(e.from, t), t === 0 && l.enqueue(e.from);
796
+ }
797
+ }
798
+ let f = /* @__PURE__ */ new Set();
799
+ for (let t of e.values()) {
800
+ let e = s.get(t.id);
801
+ e && K(n.calendar, t.startDate, e) <= 0 && f.add(t.id);
802
+ }
803
+ let p = /* @__PURE__ */ new Set();
804
+ for (let t of e.values()) if (f.has(t.id)) for (let r of i.get(t.id) ?? []) {
805
+ let i = e.get(r.from);
806
+ !i || !f.has(r.from) || rt(tt(i, n), r.type, (r.lag ?? 0) * a, nt(t, n), n).getTime() === t.startDate.getTime() && p.add(`${r.from}->${r.to}`);
807
+ }
808
+ return {
809
+ criticalTaskIds: f,
810
+ criticalDependencyKeys: p
811
+ };
812
+ }
813
+ //#endregion
814
+ //#region src/hooks/useTaskList.ts
815
+ var pt = {
816
+ criticalTaskIds: /* @__PURE__ */ new Set(),
817
+ criticalDependencyKeys: /* @__PURE__ */ new Set()
818
+ }, mt = {
754
819
  transactions: [],
755
820
  cursor: 0
756
- }, dt = [];
757
- function ft(e) {
821
+ }, ht = [];
822
+ function gt(e) {
758
823
  a(e);
759
824
  }
760
- function pt(e, t) {
825
+ function _t(e, t) {
761
826
  let n = e.transactions.slice(0, e.cursor);
762
827
  return {
763
828
  transactions: [...n, t],
764
829
  cursor: n.length + 1
765
830
  };
766
831
  }
767
- function mt(e, t) {
832
+ function vt(e, t) {
768
833
  return e instanceof Date && t instanceof Date ? e.getTime() === t.getTime() : Object.is(e, t);
769
834
  }
770
- function ht(e, t) {
835
+ function yt(e, t) {
771
836
  let n = new Set([...Object.keys(e), ...Object.keys(t)]);
772
- for (let r of n) if (!mt(e[r], t[r])) return !1;
837
+ for (let r of n) if (!vt(e[r], t[r])) return !1;
773
838
  return !0;
774
839
  }
775
- var gt = (e, t = dt, n = {}, r = Ae) => {
840
+ var bt = (e, t = ht, n = {}, r = Ae) => {
776
841
  let i = p(n);
777
842
  i.current = n;
778
843
  let a = p(r);
779
844
  a.current = r;
780
- let [s, c] = m(ut), u = f(() => it(t), [t]), d = p(null), h = f(() => (d.current ??= Je(), Ye(d.current, e, s)), [e, s]), _ = p(h);
845
+ let [s, c] = m(mt), u = f(() => it(t), [t]), d = p(null), h = f(() => (d.current ??= Je(), Ye(d.current, e, s)), [e, s]), _ = p(h);
781
846
  _.current = h;
782
- let v = f(() => He(h, r), [h, r]), y = o((e, t) => {
847
+ let v = f(() => He(h, r), [h, r]), y = n.highlightCriticalPath ?? !1, b = f(() => y ? ft(h, u, r) : pt, [
848
+ y,
849
+ h,
850
+ u,
851
+ r
852
+ ]), x = o((e, t) => {
783
853
  let n = _.current.get(e);
784
854
  if (!n) return;
785
855
  let { startDate: r, endDate: i } = ct(n, t, a.current), o = {
@@ -787,7 +857,7 @@ var gt = (e, t = dt, n = {}, r = Ae) => {
787
857
  startDate: r,
788
858
  endDate: i
789
859
  };
790
- if (ht(o, n)) return;
860
+ if (yt(o, n)) return;
791
861
  let s = [{
792
862
  type: "update",
793
863
  task: o
@@ -801,12 +871,12 @@ var gt = (e, t = dt, n = {}, r = Ae) => {
801
871
  task: e
802
872
  });
803
873
  }
804
- ft(() => c((e) => pt(e, s)));
805
- }, [u]), b = o((e, t) => {
874
+ gt(() => c((e) => _t(e, s)));
875
+ }, [u]), S = o((e, t) => {
806
876
  let n = _.current.get(e);
807
877
  if (!n) return;
808
878
  let r = { ...n };
809
- if (t.name !== void 0 && (r.name = t.name), t.startDate && (r.startDate = t.startDate), t.endDate && (r.endDate = t.endDate), t.progress !== void 0 && (r.progress = t.progress), ht(r, n)) return;
879
+ if (t.name !== void 0 && (r.name = t.name), t.startDate && (r.startDate = t.startDate), t.endDate && (r.endDate = t.endDate), t.progress !== void 0 && (r.progress = t.progress), yt(r, n)) return;
810
880
  let i = [{
811
881
  type: "update",
812
882
  task: r
@@ -820,45 +890,46 @@ var gt = (e, t = dt, n = {}, r = Ae) => {
820
890
  task: e
821
891
  });
822
892
  }
823
- ft(() => c((e) => pt(e, i)));
824
- }, [u]), x = o((e, t) => {
893
+ gt(() => c((e) => _t(e, i)));
894
+ }, [u]), C = o((e, t) => {
825
895
  g(() => {
826
- c((n) => pt(n, [{
896
+ c((n) => _t(n, [{
827
897
  type: "create",
828
898
  task: e,
829
899
  afterId: t
830
900
  }]));
831
901
  }), i.current.onTaskCreate?.(e, t);
832
- }, []), S = o((e) => {
833
- ft(() => c((t) => pt(t, [{
902
+ }, []), w = o((e) => {
903
+ gt(() => c((t) => _t(t, [{
834
904
  type: "delete",
835
905
  id: e
836
906
  }]))), i.current.onTaskDelete?.(e);
837
- }, []), C = o(() => {
838
- ft(() => c((e) => e.cursor > 0 ? {
907
+ }, []), T = o(() => {
908
+ gt(() => c((e) => e.cursor > 0 ? {
839
909
  ...e,
840
910
  cursor: e.cursor - 1
841
911
  } : e));
842
- }, []), w = o(() => {
843
- ft(() => c((e) => e.cursor < e.transactions.length ? {
912
+ }, []), E = o(() => {
913
+ gt(() => c((e) => e.cursor < e.transactions.length ? {
844
914
  ...e,
845
915
  cursor: e.cursor + 1
846
916
  } : e));
847
- }, []), T = s.cursor > 0, E = s.cursor < s.transactions.length, D = p(v);
848
- D.current = v;
849
- let O = p(s);
917
+ }, []), D = s.cursor > 0, O = s.cursor < s.transactions.length, k = p(v);
918
+ k.current = v;
919
+ let A = p(s);
850
920
  return l(() => {
851
- O.current !== s && (O.current = s, i.current.onTasksChange?.(D.current));
921
+ A.current !== s && (A.current = s, i.current.onTasksChange?.(k.current));
852
922
  }, [s]), {
853
923
  tasksList: v,
854
- updateTask: b,
855
- commitTask: y,
856
- createTask: x,
857
- deleteTask: S,
858
- undo: C,
859
- redo: w,
860
- canUndo: T,
861
- canRedo: E
924
+ criticalPath: b,
925
+ updateTask: S,
926
+ commitTask: x,
927
+ createTask: C,
928
+ deleteTask: w,
929
+ undo: T,
930
+ redo: E,
931
+ canUndo: D,
932
+ canRedo: O
862
933
  };
863
934
  };
864
935
  //#endregion
@@ -869,7 +940,7 @@ function q(e) {
869
940
  }
870
941
  //#endregion
871
942
  //#region src/hooks/useExpand.ts
872
- function _t(e) {
943
+ function xt(e) {
873
944
  let t = f(() => {
874
945
  let t = /* @__PURE__ */ new Set();
875
946
  for (let n of e) n.parentId != null && t.add(n.parentId);
@@ -914,13 +985,13 @@ function _t(e) {
914
985
  }
915
986
  //#endregion
916
987
  //#region src/hooks/useIsomorphicLayoutEffect.ts
917
- var vt = typeof window < "u" ? d : l, yt = {
988
+ var St = typeof window < "u" ? d : l, Ct = {
918
989
  scrollTop: 0,
919
990
  scrollLeft: 0,
920
991
  clientWidth: 0,
921
992
  clientHeight: 0
922
993
  };
923
- function bt(e) {
994
+ function wt(e) {
924
995
  return {
925
996
  scrollTop: e.scrollTop,
926
997
  scrollLeft: e.scrollLeft,
@@ -928,24 +999,24 @@ function bt(e) {
928
999
  clientHeight: e.clientHeight
929
1000
  };
930
1001
  }
931
- function xt(e, t, n) {
1002
+ function Tt(e, t, n) {
932
1003
  return e.scrollTop !== t.scrollTop || e.clientHeight !== t.clientHeight ? !1 : n ? e.scrollLeft === t.scrollLeft && e.clientWidth === t.clientWidth : !0;
933
1004
  }
934
- function St(e, { trackHorizontal: t = !0 } = {}) {
935
- let n = p(null), r = q(t), [i, a] = m(yt), s = o(() => {
1005
+ function Et(e, { trackHorizontal: t = !0 } = {}) {
1006
+ let n = p(null), r = q(t), [i, a] = m(Ct), s = o(() => {
936
1007
  n.current === null && (n.current = requestAnimationFrame(() => {
937
1008
  n.current = null;
938
1009
  let t = e.current;
939
1010
  if (!t) return;
940
- let i = bt(t);
941
- a((e) => xt(e, i, r.current) ? e : i);
1011
+ let i = wt(t);
1012
+ a((e) => Tt(e, i, r.current) ? e : i);
942
1013
  }));
943
1014
  }, [e, r]);
944
- return vt(() => {
1015
+ return St(() => {
945
1016
  let t = e.current;
946
1017
  t && a((e) => {
947
- let n = bt(t);
948
- return xt(e, n, r.current) ? e : n;
1018
+ let n = wt(t);
1019
+ return Tt(e, n, r.current) ? e : n;
949
1020
  });
950
1021
  }, [e]), l(() => {
951
1022
  let t = e.current;
@@ -961,8 +1032,8 @@ function St(e, { trackHorizontal: t = !0 } = {}) {
961
1032
  }
962
1033
  //#endregion
963
1034
  //#region src/hooks/useScrollSync.ts
964
- function Ct() {
965
- let e = p(null), t = p(null), n = p(!1), { viewport: r, scheduleMeasure: i } = St(t);
1035
+ function Dt() {
1036
+ let e = p(null), t = p(null), n = p(!1), { viewport: r, scheduleMeasure: i } = Et(t);
966
1037
  return {
967
1038
  taskListRef: e,
968
1039
  gridRef: t,
@@ -977,7 +1048,7 @@ function Ct() {
977
1048
  }
978
1049
  //#endregion
979
1050
  //#region src/hooks/useEventCallback.ts
980
- function wt(e) {
1051
+ function Ot(e) {
981
1052
  let t = p(e);
982
1053
  t.current = e;
983
1054
  let n = o((...e) => t.current?.(...e), []);
@@ -985,26 +1056,26 @@ function wt(e) {
985
1056
  }
986
1057
  //#endregion
987
1058
  //#region src/core/scroll.ts
988
- function Tt(e, t, n, r, i = 0) {
1059
+ function kt(e, t, n, r, i = 0) {
989
1060
  let a = n + r;
990
1061
  return e - i < n ? Math.max(0, e - i) : e + t + i > a ? e + t + i - r : n;
991
1062
  }
992
1063
  //#endregion
993
1064
  //#region src/core/barUtils.ts
994
- function Et(e, t = {}, n, r, i = "day") {
995
- let a = t.startDate ?? e.startDate, o = t.endDate ?? e.endDate ?? a, s = P(n, a, i), c = P(n, o, i);
1065
+ function At(e, t = {}, n, r, i = "day") {
1066
+ let a = t.startDate ?? e.startDate, o = t.endDate ?? e.endDate ?? a, s = ee(n, a, i), c = ee(n, o, i);
996
1067
  return {
997
1068
  left: s * r,
998
1069
  width: (c - s) * r,
999
1070
  progress: t.progress ?? e.progress ?? 0
1000
1071
  };
1001
1072
  }
1002
- function Dt(e, t, n, r = "day") {
1003
- return F(t, r, e / n);
1073
+ function jt(e, t, n, r = "day") {
1074
+ return te(t, r, e / n);
1004
1075
  }
1005
1076
  //#endregion
1006
1077
  //#region src/core/scales.ts
1007
- var Ot = [{
1078
+ var Mt = [{
1008
1079
  unit: "month",
1009
1080
  step: 1,
1010
1081
  format: (e) => e.toLocaleString(void 0, {
@@ -1016,39 +1087,39 @@ var Ot = [{
1016
1087
  step: 1,
1017
1088
  format: (e) => String(e.getDate())
1018
1089
  }];
1019
- function kt(e) {
1020
- return (e ?? Ot).at(-1)?.unit ?? "day";
1090
+ function Nt(e) {
1091
+ return (e ?? Mt).at(-1)?.unit ?? "day";
1021
1092
  }
1022
- function At(e) {
1023
- return (e ?? Ot).at(-1)?.step ?? 1;
1093
+ function Pt(e) {
1094
+ return (e ?? Mt).at(-1)?.step ?? 1;
1024
1095
  }
1025
1096
  //#endregion
1026
1097
  //#region src/core/timeline.ts
1027
- function jt(e, t, n) {
1028
- let r = L(e);
1029
- return r ? Mt(r.min, kt(t), n, At(t)) : null;
1098
+ function Ft(e, t, n) {
1099
+ let r = F(e);
1100
+ return r ? It(r.min, Nt(t), n, Pt(t)) : null;
1030
1101
  }
1031
- function Mt(e, t, n, r) {
1102
+ function It(e, t, n, r) {
1032
1103
  return M(N(M(e, t), t, -n * r), t);
1033
1104
  }
1034
- function Nt(e, t = 0, n) {
1035
- let r = L(e);
1105
+ function Lt(e, t = 0, n) {
1106
+ let r = F(e);
1036
1107
  if (!r) return [];
1037
- let i = kt(n), a = At(n), o = Mt(r.min, i, t, a), s = N(M(r.max, i), i, t * a);
1038
- return ee(o, Math.round(P(o, s, i) / a) + 1, i, a);
1108
+ let i = Nt(n), a = Pt(n), o = It(r.min, i, t, a), s = N(M(r.max, i), i, t * a);
1109
+ return ne(o, Math.round(ee(o, s, i) / a) + 1, i, a);
1039
1110
  }
1040
1111
  //#endregion
1041
1112
  //#region src/hooks/useRevealTask.ts
1042
- function Pt({ taskListRef: e, gridRef: t, tasksList: n, visibleTasks: r, rowHeight: i, colWidth: a, scales: s, padDays: c, revealAncestors: l }) {
1113
+ function Rt({ taskListRef: e, gridRef: t, tasksList: n, visibleTasks: r, rowHeight: i, colWidth: a, scales: s, padDays: c, revealAncestors: l }) {
1043
1114
  let u = q(n), f = q(r), m = p(() => {}), h = p(null), g = (n) => {
1044
1115
  let r = e.current ?? t.current;
1045
1116
  if (!r) return;
1046
- let a = Tt(n * i, i, r.scrollTop, r.clientHeight, i);
1117
+ let a = kt(n * i, i, r.scrollTop, r.clientHeight, i);
1047
1118
  a !== r.scrollTop && (r.scrollTop = a);
1048
1119
  }, _ = (e) => {
1049
- let n = t.current, r = jt(f.current, s, c);
1120
+ let n = t.current, r = Ft(f.current, s, c);
1050
1121
  if (!n || !r) return;
1051
- let { left: i, width: o } = Et(e, {}, r, a, kt(s)), l = Tt(i, o, n.scrollLeft, n.clientWidth, a);
1122
+ let { left: i, width: o } = At(e, {}, r, a, Nt(s)), l = kt(i, o, n.scrollLeft, n.clientWidth, a);
1052
1123
  l !== n.scrollLeft && (n.scrollLeft = l);
1053
1124
  };
1054
1125
  return m.current = (e, t) => {
@@ -1069,13 +1140,13 @@ function Pt({ taskListRef: e, gridRef: t, tasksList: n, visibleTasks: r, rowHeig
1069
1140
  }
1070
1141
  //#endregion
1071
1142
  //#region src/hooks/useZoom.ts
1072
- function Ft({ gridRef: e, visibleTasks: t, padDays: n, levels: r, initialIndex: i }) {
1143
+ function zt({ gridRef: e, visibleTasks: t, padDays: n, levels: r, initialIndex: i }) {
1073
1144
  let a = o((e) => Math.max(0, Math.min(r.length - 1, e)), [r.length]), [s, c] = m(() => a(i)), l = q(s), u = q(t), f = q(n), h = q(r), g = p(null), _ = o((t, n) => {
1074
1145
  let r = l.current, i = a(r + n);
1075
1146
  if (i === r) return;
1076
- let o = e.current, s = h.current[r], d = jt(u.current, s.scales, f.current);
1147
+ let o = e.current, s = h.current[r], d = Ft(u.current, s.scales, f.current);
1077
1148
  o && d ? g.current = {
1078
- date: F(d, kt(s.scales), t / s.colWidth),
1149
+ date: te(d, Nt(s.scales), t / s.colWidth),
1079
1150
  viewportOffset: t - o.scrollLeft
1080
1151
  } : g.current = null, c(i);
1081
1152
  }, [
@@ -1098,9 +1169,9 @@ function Ft({ gridRef: e, visibleTasks: t, padDays: n, levels: r, initialIndex:
1098
1169
  let t = g.current;
1099
1170
  if (t === null) return;
1100
1171
  g.current = null;
1101
- let n = e.current, r = h.current[s], i = jt(u.current, r.scales, f.current);
1172
+ let n = e.current, r = h.current[s], i = Ft(u.current, r.scales, f.current);
1102
1173
  if (!n || !i) return;
1103
- let a = kt(r.scales), o = P(i, t.date, a) * r.colWidth;
1174
+ let a = Nt(r.scales), o = ee(i, t.date, a) * r.colWidth;
1104
1175
  n.scrollLeft = Math.max(0, o - t.viewportOffset);
1105
1176
  }, [s]), {
1106
1177
  index: s,
@@ -1116,23 +1187,23 @@ function Ft({ gridRef: e, visibleTasks: t, padDays: n, levels: r, initialIndex:
1116
1187
  }
1117
1188
  //#endregion
1118
1189
  //#region src/core/zoom.ts
1119
- var It = (e) => String(e).padStart(2, "0"), Lt = (e) => String(e.getFullYear()), Rt = (e) => `Q${Math.floor(e.getMonth() / 3) + 1}`, zt = (e) => e.toLocaleString(void 0, {
1190
+ var Bt = (e) => String(e).padStart(2, "0"), Vt = (e) => String(e.getFullYear()), Ht = (e) => `Q${Math.floor(e.getMonth() / 3) + 1}`, Ut = (e) => e.toLocaleString(void 0, {
1120
1191
  month: "long",
1121
1192
  year: "numeric"
1122
- }), Bt = (e) => e.toLocaleString(void 0, { month: "short" }), Vt = (e) => String(e.getDate()), Ht = (e) => e.toLocaleString(void 0, {
1193
+ }), Wt = (e) => e.toLocaleString(void 0, { month: "short" }), Gt = (e) => String(e.getDate()), Kt = (e) => e.toLocaleString(void 0, {
1123
1194
  weekday: "short",
1124
1195
  day: "numeric"
1125
- }), Ut = [
1196
+ }), qt = [
1126
1197
  {
1127
1198
  colWidth: 56,
1128
1199
  scales: [{
1129
1200
  unit: "year",
1130
1201
  step: 1,
1131
- format: Lt
1202
+ format: Vt
1132
1203
  }, {
1133
1204
  unit: "quarter",
1134
1205
  step: 1,
1135
- format: Rt
1206
+ format: Ht
1136
1207
  }]
1137
1208
  },
1138
1209
  {
@@ -1140,11 +1211,11 @@ var It = (e) => String(e).padStart(2, "0"), Lt = (e) => String(e.getFullYear()),
1140
1211
  scales: [{
1141
1212
  unit: "year",
1142
1213
  step: 1,
1143
- format: Lt
1214
+ format: Vt
1144
1215
  }, {
1145
1216
  unit: "month",
1146
1217
  step: 1,
1147
- format: Bt
1218
+ format: Wt
1148
1219
  }]
1149
1220
  },
1150
1221
  {
@@ -1152,11 +1223,11 @@ var It = (e) => String(e).padStart(2, "0"), Lt = (e) => String(e.getFullYear()),
1152
1223
  scales: [{
1153
1224
  unit: "month",
1154
1225
  step: 1,
1155
- format: zt
1226
+ format: Ut
1156
1227
  }, {
1157
1228
  unit: "week",
1158
1229
  step: 1,
1159
- format: Ht
1230
+ format: Kt
1160
1231
  }]
1161
1232
  },
1162
1233
  {
@@ -1164,11 +1235,11 @@ var It = (e) => String(e).padStart(2, "0"), Lt = (e) => String(e.getFullYear()),
1164
1235
  scales: [{
1165
1236
  unit: "month",
1166
1237
  step: 1,
1167
- format: zt
1238
+ format: Ut
1168
1239
  }, {
1169
1240
  unit: "day",
1170
1241
  step: 1,
1171
- format: Vt
1242
+ format: Gt
1172
1243
  }]
1173
1244
  },
1174
1245
  {
@@ -1176,23 +1247,23 @@ var It = (e) => String(e).padStart(2, "0"), Lt = (e) => String(e.getFullYear()),
1176
1247
  scales: [{
1177
1248
  unit: "day",
1178
1249
  step: 1,
1179
- format: Ht
1250
+ format: Kt
1180
1251
  }, {
1181
1252
  unit: "hour",
1182
1253
  step: 1,
1183
- format: (e) => `${It(e.getHours())}:00`
1254
+ format: (e) => `${Bt(e.getHours())}:00`
1184
1255
  }]
1185
1256
  }
1186
- ], Wt = 3;
1187
- function Gt(e, t, n) {
1188
- return e && e.length > 0 ? e : !t && n === void 0 ? Ut : Ut.map((e, r) => r === 3 ? {
1257
+ ], Jt = 3;
1258
+ function Yt(e, t, n) {
1259
+ return e && e.length > 0 ? e : !t && n === void 0 ? qt : qt.map((e, r) => r === 3 ? {
1189
1260
  scales: t ?? e.scales,
1190
1261
  colWidth: n ?? e.colWidth
1191
1262
  } : e);
1192
1263
  }
1193
1264
  //#endregion
1194
1265
  //#region src/hooks/useDependencyDrag.ts
1195
- var Kt = {
1266
+ var Xt = {
1196
1267
  end: {
1197
1268
  start: "FS",
1198
1269
  end: "FF"
@@ -1202,7 +1273,7 @@ var Kt = {
1202
1273
  end: "SF"
1203
1274
  }
1204
1275
  };
1205
- function qt({ gridBodyRef: e, onDependencyCreate: t }) {
1276
+ function Zt({ gridBodyRef: e, onDependencyCreate: t }) {
1206
1277
  let n = q(t), [r, i] = m(null), a = q(r), s = p(null), c = p(null), u = p(null), d = o(() => {
1207
1278
  s.current &&= (window.removeEventListener("mousemove", s.current.move), window.removeEventListener("mouseup", s.current.up), null), c.current !== null && (cancelAnimationFrame(c.current), c.current = null);
1208
1279
  }, []);
@@ -1236,7 +1307,7 @@ function qt({ gridBodyRef: e, onDependencyCreate: t }) {
1236
1307
  endDrag: o((e, t) => {
1237
1308
  let r = a.current;
1238
1309
  if (r && e !== null && t && e !== r.fromTaskId) {
1239
- let i = Kt[r.handle][t];
1310
+ let i = Xt[r.handle][t];
1240
1311
  n.current?.({
1241
1312
  from: r.fromTaskId,
1242
1313
  to: e,
@@ -1253,7 +1324,7 @@ function qt({ gridBodyRef: e, onDependencyCreate: t }) {
1253
1324
  }
1254
1325
  //#endregion
1255
1326
  //#region src/context/useGanttHandle.ts
1256
- function Jt(e) {
1327
+ function Qt(e) {
1257
1328
  let { createTask: t, updateTask: n, deleteTask: r, undo: i, redo: a, revealTask: o, zoomIn: s, zoomOut: c, setZoom: l } = e;
1258
1329
  return f(() => ({
1259
1330
  createTask: t,
@@ -1279,7 +1350,7 @@ function Jt(e) {
1279
1350
  }
1280
1351
  //#endregion
1281
1352
  //#region src/context/useColumnApi.ts
1282
- function Yt({ handle: e, readOnly: t, labels: n, schedulingContext: r, onTaskEditRef: i }) {
1353
+ function $t({ handle: e, readOnly: t, labels: n, schedulingContext: r, onTaskEditRef: i }) {
1283
1354
  return f(() => ({
1284
1355
  ...e,
1285
1356
  editTask: (e) => i.current?.(e),
@@ -1299,35 +1370,23 @@ function Yt({ handle: e, readOnly: t, labels: n, schedulingContext: r, onTaskEdi
1299
1370
  }
1300
1371
  //#endregion
1301
1372
  //#region src/context/contexts.ts
1302
- var Xt = n(null);
1303
- function Zt() {
1304
- let e = s(Xt);
1373
+ var en = n(null);
1374
+ function tn() {
1375
+ let e = s(en);
1305
1376
  if (!e) throw Error("useGanttConfig must be used within a <GanttProvider>");
1306
1377
  return e;
1307
1378
  }
1308
- var Qt = n(Ie);
1309
- function $t() {
1310
- return s(Qt);
1311
- }
1312
- var en = n(Ae);
1313
- function tn() {
1314
- return s(en);
1315
- }
1316
- var nn = n(!1);
1379
+ var nn = n(Ie);
1317
1380
  function rn() {
1318
1381
  return s(nn);
1319
1382
  }
1320
- var an = n(null);
1383
+ var an = n(Ae);
1321
1384
  function on() {
1322
- let e = s(an);
1323
- if (!e) throw Error("useGanttTaskState must be used within a <GanttProvider>");
1324
- return e;
1385
+ return s(an);
1325
1386
  }
1326
- var sn = n(null);
1387
+ var sn = n(!1);
1327
1388
  function cn() {
1328
- let e = s(sn);
1329
- if (!e) throw Error("useGanttTaskActions must be used within a <GanttProvider>");
1330
- return e;
1389
+ return s(sn);
1331
1390
  }
1332
1391
  var ln = n(null);
1333
1392
  function un() {
@@ -1336,213 +1395,233 @@ function un() {
1336
1395
  var dn = n(null);
1337
1396
  function fn() {
1338
1397
  let e = s(dn);
1339
- if (!e) throw Error("useGanttScroll must be used within a <GanttProvider>");
1398
+ if (!e) throw Error("useGanttTaskState must be used within a <GanttProvider>");
1340
1399
  return e;
1341
1400
  }
1342
1401
  var pn = n(null);
1343
1402
  function mn() {
1344
1403
  let e = s(pn);
1345
- if (!e) throw Error("useGanttViewport must be used within a <GanttProvider>");
1404
+ if (!e) throw Error("useGanttTaskActions must be used within a <GanttProvider>");
1346
1405
  return e;
1347
1406
  }
1348
1407
  var hn = n(null);
1349
1408
  function gn() {
1350
- let e = s(hn);
1351
- if (!e) throw Error("useGanttDependency must be used within a <GanttProvider>");
1352
- return e;
1409
+ return s(hn);
1353
1410
  }
1354
- var _n = n(!1);
1411
+ var _n = n(null);
1355
1412
  function vn() {
1356
- return s(_n);
1413
+ let e = s(_n);
1414
+ if (!e) throw Error("useGanttScroll must be used within a <GanttProvider>");
1415
+ return e;
1357
1416
  }
1358
1417
  var yn = n(null);
1359
1418
  function bn() {
1360
- return s(yn);
1419
+ let e = s(yn);
1420
+ if (!e) throw Error("useGanttViewport must be used within a <GanttProvider>");
1421
+ return e;
1361
1422
  }
1362
1423
  var xn = n(null);
1363
1424
  function Sn() {
1364
1425
  let e = s(xn);
1426
+ if (!e) throw Error("useGanttDependency must be used within a <GanttProvider>");
1427
+ return e;
1428
+ }
1429
+ var Cn = n(!1);
1430
+ function wn() {
1431
+ return s(Cn);
1432
+ }
1433
+ var Tn = n(null);
1434
+ function En() {
1435
+ return s(Tn);
1436
+ }
1437
+ var Dn = n(null);
1438
+ function On() {
1439
+ let e = s(Dn);
1365
1440
  if (!e) throw Error("useGanttZoom must be used within a <GanttProvider>");
1366
1441
  return e;
1367
1442
  }
1368
1443
  //#endregion
1369
1444
  //#region src/context/GanttProvider.tsx
1370
- function Cn({ tasks: e, rowHeight: t = 36, colWidth: n, height: r, scales: i, padDays: a = 1, zoomLevels: s, defaultZoomIndex: c, onZoomChange: d, zoomWheel: h = !1, zoomKeyboard: g = !1, dependencies: _ = dt, onTaskClick: y, onDependencyCreate: b, onDependencyDelete: x, onTaskCreate: S, onTaskDelete: C, onTaskEdit: w, onTasksChange: T, apiRef: E, labels: D, calendar: O, snapToWorking: k = !0, durationUnit: A = "day", readOnly: j = !1, children: M }) {
1371
- let [N, P] = m(null), F = f(() => Le(D), [D]), ee = de(O), I = f(() => ({
1372
- calendar: ee,
1445
+ function kn({ tasks: e, rowHeight: t = 36, colWidth: n, height: r, scales: i, padDays: a = 1, zoomLevels: s, defaultZoomIndex: c, onZoomChange: d, zoomWheel: h = !1, zoomKeyboard: g = !1, dependencies: _ = ht, onTaskClick: y, onDependencyCreate: b, onDependencyDelete: x, onTaskCreate: S, onTaskDelete: C, onTaskEdit: w, onTasksChange: T, apiRef: E, labels: D, calendar: O, snapToWorking: k = !0, durationUnit: A = "day", readOnly: j = !1, criticalPath: M = !1, children: N }) {
1446
+ let [ee, te] = m(null), ne = f(() => Le(D), [D]), P = pe(O), F = f(() => ({
1447
+ calendar: P,
1373
1448
  durationUnit: A,
1374
1449
  snapToWorking: k
1375
1450
  }), [
1376
- ee,
1451
+ P,
1377
1452
  A,
1378
1453
  k
1379
- ]), L = q(w), R = wt(y), z = wt(x), { tasksList: B, updateTask: V, commitTask: te, createTask: H, deleteTask: ne, undo: re, redo: ie, canUndo: ae, canRedo: oe } = gt(e, _, {
1454
+ ]), I = q(w), L = Ot(y), R = Ot(x), { tasksList: z, criticalPath: re, updateTask: B, commitTask: ie, createTask: ae, deleteTask: oe, undo: se, redo: ce, canUndo: le, canRedo: ue } = bt(e, _, {
1380
1455
  onTaskCreate: S,
1381
1456
  onTaskDelete: C,
1382
- onTasksChange: T
1383
- }, I), { visibleTasks: se, expandedIds: ce, parentIds: U, toggleExpand: le, revealAncestors: ue } = _t(B), { taskListRef: fe, gridRef: pe, onTaskListScroll: me, onGridScroll: he, viewport: ge } = Ct(), _e = p(null), W = Ft({
1384
- gridRef: pe,
1385
- visibleTasks: se,
1457
+ onTasksChange: T,
1458
+ highlightCriticalPath: M
1459
+ }, F), { visibleTasks: V, expandedIds: de, parentIds: fe, toggleExpand: me, revealAncestors: he } = xt(z), { taskListRef: ge, gridRef: H, onTaskListScroll: _e, onGridScroll: ve, viewport: ye } = Dt(), be = p(null), U = zt({
1460
+ gridRef: H,
1461
+ visibleTasks: V,
1386
1462
  padDays: a,
1387
- levels: f(() => Gt(s, i, n), [
1463
+ levels: f(() => Yt(s, i, n), [
1388
1464
  s,
1389
1465
  i,
1390
1466
  n
1391
1467
  ]),
1392
1468
  initialIndex: c ?? 3
1393
- }), ve = Pt({
1394
- taskListRef: fe,
1395
- gridRef: pe,
1396
- tasksList: B,
1397
- visibleTasks: se,
1469
+ }), xe = Rt({
1470
+ taskListRef: ge,
1471
+ gridRef: H,
1472
+ tasksList: z,
1473
+ visibleTasks: V,
1398
1474
  rowHeight: t,
1399
- colWidth: W.level.colWidth,
1400
- scales: W.level.scales,
1475
+ colWidth: U.level.colWidth,
1476
+ scales: U.level.scales,
1401
1477
  padDays: a,
1402
- revealAncestors: ue
1403
- }), ye = q(d);
1478
+ revealAncestors: he
1479
+ }), Se = q(d);
1404
1480
  l(() => {
1405
- ye.current?.({
1406
- index: W.index,
1407
- count: W.count
1481
+ Se.current?.({
1482
+ index: U.index,
1483
+ count: U.count
1408
1484
  });
1409
1485
  }, [
1410
- W.index,
1411
- W.count,
1412
- ye
1486
+ U.index,
1487
+ U.count,
1488
+ Se
1413
1489
  ]);
1414
- let be = o((e, t) => {
1415
- H(e, t), P(e.id), ve(e.id);
1416
- }, [H, ve]), { zoomIn: xe, zoomOut: G, setZoom: Se, zoomAt: Ce } = W, we = Jt({
1417
- createTask: be,
1418
- updateTask: V,
1419
- deleteTask: ne,
1420
- undo: re,
1421
- redo: ie,
1422
- revealTask: ve,
1423
- zoomIn: xe,
1424
- zoomOut: G,
1425
- setZoom: Se
1490
+ let W = o((e, t) => {
1491
+ ae(e, t), te(e.id), xe(e.id);
1492
+ }, [ae, xe]), { zoomIn: Ce, zoomOut: we, setZoom: Te, zoomAt: G } = U, K = Qt({
1493
+ createTask: W,
1494
+ updateTask: B,
1495
+ deleteTask: oe,
1496
+ undo: se,
1497
+ redo: ce,
1498
+ revealTask: xe,
1499
+ zoomIn: Ce,
1500
+ zoomOut: we,
1501
+ setZoom: Te
1426
1502
  });
1427
- u(E, () => we, [we]);
1428
- let K = Yt({
1429
- handle: we,
1503
+ u(E, () => K, [K]);
1504
+ let Ee = $t({
1505
+ handle: K,
1430
1506
  readOnly: j,
1431
- labels: F,
1432
- schedulingContext: I,
1433
- onTaskEditRef: L
1434
- }), { drag: Te, startDrag: Ee, endDrag: De } = qt({
1435
- gridBodyRef: _e,
1507
+ labels: ne,
1508
+ schedulingContext: F,
1509
+ onTaskEditRef: I
1510
+ }), { drag: De, startDrag: Oe, endDrag: ke } = Zt({
1511
+ gridBodyRef: be,
1436
1512
  onDependencyCreate: b
1437
- }), Oe = f(() => ({
1513
+ }), Ae = M ? re : null, je = f(() => ({
1438
1514
  rowHeight: t,
1439
- colWidth: W.level.colWidth,
1440
- scales: W.level.scales,
1515
+ colWidth: U.level.colWidth,
1516
+ scales: U.level.scales,
1441
1517
  padDays: a,
1442
1518
  height: r
1443
1519
  }), [
1444
1520
  t,
1445
- W.level,
1521
+ U.level,
1446
1522
  a,
1447
1523
  r
1448
- ]), ke = f(() => ({
1449
- zoomIn: xe,
1450
- zoomOut: G,
1451
- zoomAt: Ce,
1524
+ ]), Me = f(() => ({
1525
+ zoomIn: Ce,
1526
+ zoomOut: we,
1527
+ zoomAt: G,
1452
1528
  wheelEnabled: h,
1453
1529
  keyboardEnabled: g
1454
1530
  }), [
1455
- xe,
1456
- G,
1457
1531
  Ce,
1532
+ we,
1533
+ G,
1458
1534
  h,
1459
1535
  g
1460
- ]), Ae = f(() => ({
1461
- tasksList: B,
1462
- visibleTasks: se,
1463
- expandedIds: ce,
1464
- parentIds: U,
1465
- canUndo: ae,
1466
- canRedo: oe
1536
+ ]), Ne = f(() => ({
1537
+ tasksList: z,
1538
+ visibleTasks: V,
1539
+ expandedIds: de,
1540
+ parentIds: fe,
1541
+ canUndo: le,
1542
+ canRedo: ue
1543
+ }), [
1544
+ z,
1545
+ V,
1546
+ de,
1547
+ fe,
1548
+ le,
1549
+ ue
1550
+ ]), Pe = f(() => ({
1551
+ updateTask: B,
1552
+ commitTask: ie,
1553
+ createTask: W,
1554
+ deleteTask: oe,
1555
+ undo: se,
1556
+ redo: ce,
1557
+ columnApi: Ee,
1558
+ setSelectedId: te,
1559
+ toggleExpand: me,
1560
+ onTaskClick: L,
1561
+ revealTask: xe
1467
1562
  }), [
1468
1563
  B,
1564
+ ie,
1565
+ W,
1566
+ oe,
1469
1567
  se,
1470
1568
  ce,
1471
- U,
1472
- ae,
1473
- oe
1474
- ]), je = f(() => ({
1475
- updateTask: V,
1476
- commitTask: te,
1477
- createTask: be,
1478
- deleteTask: ne,
1479
- undo: re,
1480
- redo: ie,
1481
- columnApi: K,
1482
- setSelectedId: P,
1483
- toggleExpand: le,
1484
- onTaskClick: R,
1485
- revealTask: ve
1569
+ Ee,
1570
+ me,
1571
+ L,
1572
+ xe
1573
+ ]), Fe = f(() => ({
1574
+ taskListRef: ge,
1575
+ gridRef: H,
1576
+ gridBodyRef: be,
1577
+ onTaskListScroll: _e,
1578
+ onGridScroll: ve
1486
1579
  }), [
1487
- V,
1488
- te,
1489
- be,
1490
- ne,
1491
- re,
1492
- ie,
1493
- K,
1494
- le,
1495
- R,
1580
+ ge,
1581
+ H,
1582
+ _e,
1496
1583
  ve
1497
- ]), Me = f(() => ({
1498
- taskListRef: fe,
1499
- gridRef: pe,
1500
- gridBodyRef: _e,
1501
- onTaskListScroll: me,
1502
- onGridScroll: he
1503
- }), [
1504
- fe,
1505
- pe,
1506
- me,
1507
- he
1508
- ]), Ne = f(() => ({
1584
+ ]), Ie = f(() => ({
1509
1585
  dependencies: _,
1510
- onDependencyDelete: z,
1511
- startDrag: Ee,
1512
- endDrag: De
1586
+ onDependencyDelete: R,
1587
+ startDrag: Oe,
1588
+ endDrag: ke
1513
1589
  }), [
1514
1590
  _,
1515
- z,
1516
- Ee,
1517
- De
1591
+ R,
1592
+ Oe,
1593
+ ke
1518
1594
  ]);
1519
- return /* @__PURE__ */ v(Xt.Provider, {
1520
- value: Oe,
1521
- children: /* @__PURE__ */ v(nn.Provider, {
1595
+ return /* @__PURE__ */ v(en.Provider, {
1596
+ value: je,
1597
+ children: /* @__PURE__ */ v(sn.Provider, {
1522
1598
  value: j,
1523
- children: /* @__PURE__ */ v(Qt.Provider, {
1524
- value: F,
1525
- children: /* @__PURE__ */ v(en.Provider, {
1526
- value: I,
1527
- children: /* @__PURE__ */ v(xn.Provider, {
1528
- value: ke,
1529
- children: /* @__PURE__ */ v(dn.Provider, {
1599
+ children: /* @__PURE__ */ v(ln.Provider, {
1600
+ value: Ae,
1601
+ children: /* @__PURE__ */ v(nn.Provider, {
1602
+ value: ne,
1603
+ children: /* @__PURE__ */ v(an.Provider, {
1604
+ value: F,
1605
+ children: /* @__PURE__ */ v(Dn.Provider, {
1530
1606
  value: Me,
1531
- children: /* @__PURE__ */ v(sn.Provider, {
1532
- value: je,
1533
- children: /* @__PURE__ */ v(hn.Provider, {
1534
- value: Ne,
1535
- children: /* @__PURE__ */ v(an.Provider, {
1536
- value: Ae,
1537
- children: /* @__PURE__ */ v(ln.Provider, {
1538
- value: N,
1539
- children: /* @__PURE__ */ v(_n.Provider, {
1540
- value: Te !== null,
1541
- children: /* @__PURE__ */ v(pn.Provider, {
1542
- value: ge,
1607
+ children: /* @__PURE__ */ v(_n.Provider, {
1608
+ value: Fe,
1609
+ children: /* @__PURE__ */ v(pn.Provider, {
1610
+ value: Pe,
1611
+ children: /* @__PURE__ */ v(xn.Provider, {
1612
+ value: Ie,
1613
+ children: /* @__PURE__ */ v(dn.Provider, {
1614
+ value: Ne,
1615
+ children: /* @__PURE__ */ v(hn.Provider, {
1616
+ value: ee,
1617
+ children: /* @__PURE__ */ v(Cn.Provider, {
1618
+ value: De !== null,
1543
1619
  children: /* @__PURE__ */ v(yn.Provider, {
1544
- value: Te,
1545
- children: M
1620
+ value: ye,
1621
+ children: /* @__PURE__ */ v(Tn.Provider, {
1622
+ value: De,
1623
+ children: N
1624
+ })
1546
1625
  })
1547
1626
  })
1548
1627
  })
@@ -1559,48 +1638,48 @@ function Cn({ tasks: e, rowHeight: t = 36, colWidth: n, height: r, scales: i, pa
1559
1638
  }
1560
1639
  //#endregion
1561
1640
  //#region src/context/GanttSlotsContext.tsx
1562
- var wn = n({});
1563
- function Tn({ value: e, children: t }) {
1564
- return /* @__PURE__ */ v(wn.Provider, {
1641
+ var An = n({});
1642
+ function jn({ value: e, children: t }) {
1643
+ return /* @__PURE__ */ v(An.Provider, {
1565
1644
  value: e,
1566
1645
  children: t
1567
1646
  });
1568
1647
  }
1569
1648
  function J() {
1570
- return s(wn);
1649
+ return s(An);
1571
1650
  }
1572
1651
  //#endregion
1573
1652
  //#region ../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
1574
- function En(e) {
1653
+ function Mn(e) {
1575
1654
  var t, n, r = "";
1576
1655
  if (typeof e == "string" || typeof e == "number") r += e;
1577
1656
  else if (typeof e == "object") if (Array.isArray(e)) {
1578
1657
  var i = e.length;
1579
- for (t = 0; t < i; t++) e[t] && (n = En(e[t])) && (r && (r += " "), r += n);
1658
+ for (t = 0; t < i; t++) e[t] && (n = Mn(e[t])) && (r && (r += " "), r += n);
1580
1659
  } else for (n in e) e[n] && (r && (r += " "), r += n);
1581
1660
  return r;
1582
1661
  }
1583
- function Dn() {
1584
- for (var e, t, n = 0, r = "", i = arguments.length; n < i; n++) (e = arguments[n]) && (t = En(e)) && (r && (r += " "), r += t);
1662
+ function Y() {
1663
+ for (var e, t, n = 0, r = "", i = arguments.length; n < i; n++) (e = arguments[n]) && (t = Mn(e)) && (r && (r += " "), r += t);
1585
1664
  return r;
1586
1665
  }
1587
1666
  //#endregion
1588
1667
  //#region src/core/slots.ts
1589
- function Y(e, t, n) {
1668
+ function X(e, t, n) {
1590
1669
  let r = typeof t == "function" ? t(n) : t;
1591
1670
  if (!r) return e;
1592
1671
  let { className: i, style: a, ...o } = r;
1593
1672
  return {
1594
1673
  ...e,
1595
1674
  ...o,
1596
- className: Dn(e.className, i),
1675
+ className: Y(e.className, i),
1597
1676
  style: {
1598
1677
  ...e.style,
1599
1678
  ...a
1600
1679
  }
1601
1680
  };
1602
1681
  }
1603
- var On = {
1682
+ var Nn = {
1604
1683
  calendar: "_calendar_1ksbu_1",
1605
1684
  row: "_row_1ksbu_19",
1606
1685
  cell: "_cell_1ksbu_29",
@@ -1608,7 +1687,7 @@ var On = {
1608
1687
  };
1609
1688
  //#endregion
1610
1689
  //#region src/components/calendar/CalendarRow.tsx
1611
- function kn(e, t) {
1690
+ function Pn(e, t) {
1612
1691
  let n = [];
1613
1692
  for (let r = 0; r < e.length; r++) {
1614
1693
  let i = e[r], a = D(i, t.unit, t.step), o = n[n.length - 1];
@@ -1621,7 +1700,7 @@ function kn(e, t) {
1621
1700
  }
1622
1701
  return n;
1623
1702
  }
1624
- function An(e, t) {
1703
+ function Fn(e, t) {
1625
1704
  if (!t) return {
1626
1705
  start: 0,
1627
1706
  end: e.length
@@ -1638,16 +1717,16 @@ function An(e, t) {
1638
1717
  end: i
1639
1718
  };
1640
1719
  }
1641
- function jn({ scale: e, dates: t, colWidth: n, rowHeight: r, highlightWeekends: i = !1, colRange: a, rowIndex: o, slots: s, slotProps: c }) {
1642
- let l = J(), u = s ?? l.timeline?.calendarRow?.slots, { calendar: d } = tn(), p = c ?? l.timeline?.calendarRow?.slotProps, m = f(() => kn(t, e), [t, e]), h = An(m, a), g = u?.row ?? "div", _ = u?.cell ?? "div", y = {
1720
+ function In({ scale: e, dates: t, colWidth: n, rowHeight: r, highlightWeekends: i = !1, colRange: a, rowIndex: o, slots: s, slotProps: c }) {
1721
+ let l = J(), u = s ?? l.timeline?.calendarRow?.slots, { calendar: d } = on(), p = c ?? l.timeline?.calendarRow?.slotProps, m = f(() => Pn(t, e), [t, e]), h = Fn(m, a), g = u?.row ?? "div", _ = u?.cell ?? "div", y = {
1643
1722
  scale: e,
1644
1723
  colWidth: n,
1645
1724
  rowHeight: r,
1646
1725
  highlightWeekends: i
1647
1726
  };
1648
1727
  return /* @__PURE__ */ v(g, {
1649
- ...Y({
1650
- className: On.row,
1728
+ ...X({
1729
+ className: Nn.row,
1651
1730
  style: { height: r },
1652
1731
  role: "row",
1653
1732
  "aria-rowindex": o
@@ -1666,8 +1745,8 @@ function jn({ scale: e, dates: t, colWidth: n, rowHeight: r, highlightWeekends:
1666
1745
  isWeekend: a,
1667
1746
  colWidth: n
1668
1747
  };
1669
- return /* @__PURE__ */ v(_, { ...Y({
1670
- className: Dn(On.cell, a && On.cellWeekend),
1748
+ return /* @__PURE__ */ v(_, { ...X({
1749
+ className: Y(Nn.cell, a && Nn.cellWeekend),
1671
1750
  style: {
1672
1751
  left: t.startIndex * n,
1673
1752
  width: t.count * n
@@ -1683,13 +1762,13 @@ function jn({ scale: e, dates: t, colWidth: n, rowHeight: r, highlightWeekends:
1683
1762
  }
1684
1763
  //#endregion
1685
1764
  //#region src/components/calendar/Calendar.tsx
1686
- function Mn({ colWidth: e, rowHeight: t, scales: n = Ot, dates: r, colRange: i }) {
1765
+ function Ln({ colWidth: e, rowHeight: t, scales: n = Mt, dates: r, colRange: i }) {
1687
1766
  let a = r.length * e;
1688
1767
  return /* @__PURE__ */ v("div", {
1689
- className: On.calendar,
1768
+ className: Nn.calendar,
1690
1769
  style: { width: a },
1691
1770
  role: "rowgroup",
1692
- children: n.map((n, a) => /* @__PURE__ */ v(jn, {
1771
+ children: n.map((n, a) => /* @__PURE__ */ v(In, {
1693
1772
  scale: n,
1694
1773
  dates: r,
1695
1774
  colWidth: e,
@@ -1702,8 +1781,8 @@ function Mn({ colWidth: e, rowHeight: t, scales: n = Ot, dates: r, colRange: i }
1702
1781
  }
1703
1782
  //#endregion
1704
1783
  //#region src/hooks/useAutoScroll.ts
1705
- var Nn = 40, Pn = 14;
1706
- function Fn(e) {
1784
+ var Rn = 40, zn = 14;
1785
+ function Bn(e) {
1707
1786
  let t = e;
1708
1787
  for (; t;) {
1709
1788
  let e = getComputedStyle(t);
@@ -1712,7 +1791,7 @@ function Fn(e) {
1712
1791
  }
1713
1792
  return document.scrollingElement;
1714
1793
  }
1715
- function In(e) {
1794
+ function Vn(e) {
1716
1795
  if (e === document.scrollingElement) return {
1717
1796
  left: 0,
1718
1797
  right: window.innerWidth
@@ -1723,10 +1802,10 @@ function In(e) {
1723
1802
  right: t.right
1724
1803
  };
1725
1804
  }
1726
- function Ln(e, t, n) {
1727
- return n < e + Nn ? -Pn * Math.min(1, (e + Nn - n) / Nn) : n > t - Nn ? Pn * Math.min(1, (n - (t - Nn)) / Nn) : 0;
1805
+ function Hn(e, t, n) {
1806
+ return n < e + Rn ? -zn * Math.min(1, (e + Rn - n) / Rn) : n > t - Rn ? zn * Math.min(1, (n - (t - Rn)) / Rn) : 0;
1728
1807
  }
1729
- function Rn({ enabled: e, onScroll: t }) {
1808
+ function Un({ enabled: e, onScroll: t }) {
1730
1809
  let n = p({
1731
1810
  container: null,
1732
1811
  scrollTarget: null,
@@ -1741,14 +1820,14 @@ function Rn({ enabled: e, onScroll: t }) {
1741
1820
  e.rafId = null;
1742
1821
  return;
1743
1822
  }
1744
- let { left: t, right: r } = In(e.container), i = Ln(t, r, e.cursorX);
1823
+ let { left: t, right: r } = Vn(e.container), i = Hn(t, r, e.cursorX);
1745
1824
  i !== 0 && (e.container.scrollLeft += i), e.rafId = requestAnimationFrame(a);
1746
1825
  }, []), s = o(() => {
1747
1826
  let e = n.current;
1748
1827
  e.rafId !== null && cancelAnimationFrame(e.rafId), e.scrollTarget && e.scrollTarget.removeEventListener("scroll", i), e.container = null, e.scrollTarget = null, e.rafId = null;
1749
1828
  }, [i]), c = o((t) => {
1750
1829
  if (!e) return;
1751
- let r = n.current, o = Fn(t);
1830
+ let r = n.current, o = Bn(t);
1752
1831
  r.container = o, r.startScrollLeft = o?.scrollLeft ?? 0, o && (r.scrollTarget = o === document.scrollingElement ? window : o, r.scrollTarget.addEventListener("scroll", i, { passive: !0 }), r.rafId = requestAnimationFrame(a));
1753
1832
  }, [
1754
1833
  e,
@@ -1769,10 +1848,10 @@ function Rn({ enabled: e, onScroll: t }) {
1769
1848
  }
1770
1849
  //#endregion
1771
1850
  //#region src/hooks/useDrag.ts
1772
- function zn({ onStart: e, onDrag: t, onEnd: n, autoScroll: r = !1 }) {
1851
+ function Wn({ onStart: e, onDrag: t, onEnd: n, autoScroll: r = !1 }) {
1773
1852
  let i = p(!1), a = p(null), s = p(0), c = p(0), u = p(0), d = p(t), f = p(n);
1774
1853
  d.current = t, f.current = n;
1775
- let m = p(() => {}), { start: h, stop: g, setCursorX: _, getScrollDelta: v } = Rn({
1854
+ let m = p(() => {}), { start: h, stop: g, setCursorX: _, getScrollDelta: v } = Un({
1776
1855
  enabled: r,
1777
1856
  onScroll: () => m.current()
1778
1857
  }), y = o(() => {
@@ -1803,44 +1882,44 @@ function zn({ onStart: e, onDrag: t, onEnd: n, autoScroll: r = !1 }) {
1803
1882
  g
1804
1883
  ]), b;
1805
1884
  }
1806
- var X = {
1885
+ var Gn = {
1807
1886
  tooltip: "_tooltip_mcgy9_11",
1808
1887
  name: "_name_mcgy9_31",
1809
1888
  row: "_row_mcgy9_6",
1810
1889
  label: "_label_mcgy9_42"
1811
- }, Bn = n(null), Vn = () => s(Bn);
1890
+ }, Kn = n(null), qn = () => s(Kn);
1812
1891
  //#endregion
1813
1892
  //#region src/components/bars/barTooltip/BarTooltipRoot.tsx
1814
- function Hn({ anchorRef: e, children: t }) {
1893
+ function Jn({ anchorRef: e, children: t }) {
1815
1894
  let [n, r] = m(!1), i = f(() => ({
1816
1895
  open: n,
1817
1896
  setOpen: r,
1818
1897
  anchorRef: e
1819
1898
  }), [n, e]);
1820
- return /* @__PURE__ */ v(Bn.Provider, {
1899
+ return /* @__PURE__ */ v(Kn.Provider, {
1821
1900
  value: i,
1822
1901
  children: t
1823
1902
  });
1824
1903
  }
1825
1904
  //#endregion
1826
1905
  //#region src/components/bars/barTooltip/useTooltipPosition.ts
1827
- var Un = 12, Wn = 8, Gn = null;
1828
- function Kn(e, t) {
1829
- Gn = {
1906
+ var Yn = 12, Xn = 8, Zn = null;
1907
+ function Qn(e, t) {
1908
+ Zn = {
1830
1909
  x: e,
1831
1910
  y: t
1832
1911
  };
1833
1912
  }
1834
- function qn(e, t, n, r) {
1835
- let i = e + Un, a = i + t <= r - Wn;
1836
- return Math.max(a ? i : e - Un - t, n + Wn);
1913
+ function $n(e, t, n, r) {
1914
+ let i = e + Yn, a = i + t <= r - Xn;
1915
+ return Math.max(a ? i : e - Yn - t, n + Xn);
1837
1916
  }
1838
- var Jn = (e, t) => {
1839
- let n = s(dn)?.gridRef, [r, i] = m({
1917
+ var er = (e, t) => {
1918
+ let n = s(_n)?.gridRef, [r, i] = m({
1840
1919
  left: -9999,
1841
1920
  top: -9999
1842
1921
  }), a = c(r);
1843
- return vt(() => {
1922
+ return St(() => {
1844
1923
  if (!t) return;
1845
1924
  let r = (t, r) => {
1846
1925
  let a = n?.current?.getBoundingClientRect(), o = a && a.width > 0 && a.height > 0 ? {
@@ -1855,13 +1934,13 @@ var Jn = (e, t) => {
1855
1934
  bottom: window.innerHeight
1856
1935
  };
1857
1936
  if (t < o.left || t > o.right || r < o.top || r > o.bottom) return;
1858
- let s = e.current?.getBoundingClientRect(), c = s?.width ?? 0, l = s?.height ?? 0, u = qn(t, c, o.left, o.right), d = qn(r, l, o.top, o.bottom);
1937
+ let s = e.current?.getBoundingClientRect(), c = s?.width ?? 0, l = s?.height ?? 0, u = $n(t, c, o.left, o.right), d = $n(r, l, o.top, o.bottom);
1859
1938
  i((e) => e.left === u && e.top === d ? e : {
1860
1939
  left: u,
1861
1940
  top: d
1862
1941
  });
1863
1942
  };
1864
- Gn && r(Gn.x, Gn.y);
1943
+ Zn && r(Zn.x, Zn.y);
1865
1944
  let a = (e) => r(e.clientX, e.clientY);
1866
1945
  return window.addEventListener("mousemove", a), () => {
1867
1946
  window.removeEventListener("mousemove", a);
@@ -1874,8 +1953,8 @@ var Jn = (e, t) => {
1874
1953
  };
1875
1954
  //#endregion
1876
1955
  //#region src/components/bars/barTooltip/BarTooltipTrigger.tsx
1877
- function Yn({ children: e }) {
1878
- let n = Vn(), i = n?.open ?? !1, a = n?.setOpen, o = n?.anchorRef;
1956
+ function tr({ children: e }) {
1957
+ let n = qn(), i = n?.open ?? !1, a = n?.setOpen, o = n?.anchorRef;
1879
1958
  if (l(() => {
1880
1959
  if (!i || !a) return;
1881
1960
  let e = () => a(!1), t = (e) => {
@@ -1896,7 +1975,7 @@ function Yn({ children: e }) {
1896
1975
  let { onMouseEnter: s, onMouseLeave: c } = e.props;
1897
1976
  return t(e, {
1898
1977
  onMouseEnter: (e) => {
1899
- s?.(e), Kn(e.clientX, e.clientY), a(!0);
1978
+ s?.(e), Qn(e.clientX, e.clientY), a(!0);
1900
1979
  },
1901
1980
  onMouseLeave: (e) => {
1902
1981
  c?.(e), a(!1);
@@ -1905,19 +1984,19 @@ function Yn({ children: e }) {
1905
1984
  }
1906
1985
  //#endregion
1907
1986
  //#region src/components/bars/barTooltip/BarTooltip.tsx
1908
- function Xn(e) {
1987
+ function nr(e) {
1909
1988
  return e ? e.toLocaleDateString(void 0, {
1910
1989
  year: "numeric",
1911
1990
  month: "short",
1912
1991
  day: "numeric"
1913
1992
  }) : "—";
1914
1993
  }
1915
- function Zn({ task: e, progress: t, displayEnd: n, className: r, style: i, ...a }) {
1916
- let o = p(null), s = Vn()?.open ?? !1, c = Jn(o, s);
1994
+ function rr({ task: e, progress: t, displayEnd: n, className: r, style: i, ...a }) {
1995
+ let o = p(null), s = qn()?.open ?? !1, c = er(o, s);
1917
1996
  return !s || typeof document > "u" ? null : h(/* @__PURE__ */ y("div", {
1918
1997
  role: "tooltip",
1919
1998
  ref: o,
1920
- className: r ? `${X.tooltip} ${r}` : X.tooltip,
1999
+ className: r ? `${Gn.tooltip} ${r}` : Gn.tooltip,
1921
2000
  style: {
1922
2001
  ...i,
1923
2002
  ...c
@@ -1925,37 +2004,37 @@ function Zn({ task: e, progress: t, displayEnd: n, className: r, style: i, ...a
1925
2004
  ...a,
1926
2005
  children: [
1927
2006
  /* @__PURE__ */ v("div", {
1928
- className: X.name,
2007
+ className: Gn.name,
1929
2008
  children: e.name
1930
2009
  }),
1931
2010
  /* @__PURE__ */ y("div", {
1932
- className: X.row,
2011
+ className: Gn.row,
1933
2012
  children: [/* @__PURE__ */ v("span", {
1934
- className: X.label,
2013
+ className: Gn.label,
1935
2014
  children: "Start"
1936
- }), /* @__PURE__ */ v("span", { children: Xn(e.startDate) })]
2015
+ }), /* @__PURE__ */ v("span", { children: nr(e.startDate) })]
1937
2016
  }),
1938
2017
  /* @__PURE__ */ y("div", {
1939
- className: X.row,
2018
+ className: Gn.row,
1940
2019
  children: [/* @__PURE__ */ v("span", {
1941
- className: X.label,
2020
+ className: Gn.label,
1942
2021
  children: "End"
1943
- }), /* @__PURE__ */ v("span", { children: Xn(n) })]
2022
+ }), /* @__PURE__ */ v("span", { children: nr(n) })]
1944
2023
  }),
1945
2024
  /* @__PURE__ */ y("div", {
1946
- className: X.row,
2025
+ className: Gn.row,
1947
2026
  children: [/* @__PURE__ */ v("span", {
1948
- className: X.label,
2027
+ className: Gn.label,
1949
2028
  children: "Progress"
1950
2029
  }), /* @__PURE__ */ y("span", { children: [Math.round(t), "%"] })]
1951
2030
  })
1952
2031
  ]
1953
2032
  }), document.body);
1954
2033
  }
1955
- function Qn({ task: e, progress: t, displayEnd: n, anchorRef: r, className: i, style: a, children: o, ...s }) {
1956
- return /* @__PURE__ */ y(Hn, {
2034
+ function ir({ task: e, progress: t, displayEnd: n, anchorRef: r, className: i, style: a, children: o, ...s }) {
2035
+ return /* @__PURE__ */ y(Jn, {
1957
2036
  anchorRef: r,
1958
- children: [/* @__PURE__ */ v(Yn, { children: o }), /* @__PURE__ */ v(Zn, {
2037
+ children: [/* @__PURE__ */ v(tr, { children: o }), /* @__PURE__ */ v(rr, {
1959
2038
  task: e,
1960
2039
  progress: t,
1961
2040
  displayEnd: n,
@@ -1967,10 +2046,10 @@ function Qn({ task: e, progress: t, displayEnd: n, anchorRef: r, className: i, s
1967
2046
  }
1968
2047
  //#endregion
1969
2048
  //#region src/components/bars/barTooltip/BarTooltipConsumer.tsx
1970
- function $n({ children: e, tooltip: t, anchorRef: n }) {
2049
+ function ar({ children: e, tooltip: t, anchorRef: n }) {
1971
2050
  let r = J().bars?.tooltip, i = r?.slots?.tooltip;
1972
2051
  return !i || !t ? e : /* @__PURE__ */ v(i, {
1973
- ...Y({}, r?.slotProps?.tooltip, t),
2052
+ ...X({}, r?.slotProps?.tooltip, t),
1974
2053
  anchorRef: n,
1975
2054
  ...t,
1976
2055
  children: e
@@ -1978,8 +2057,8 @@ function $n({ children: e, tooltip: t, anchorRef: n }) {
1978
2057
  }
1979
2058
  //#endregion
1980
2059
  //#region src/components/bars/common/DraggableBar.tsx
1981
- function er({ left: e, top: t, width: n, height: r, colWidth: i, dragAnchor: a, className: o, title: s, style: c, onMove: l, onMoveEnd: u, tooltip: d, onMouseEnter: f, onMouseLeave: m, children: h, ...g }) {
1982
- let _ = p(null), y = !l && !u, b = zn({
2060
+ function or({ left: e, top: t, width: n, height: r, colWidth: i, dragAnchor: a, className: o, title: s, style: c, onMove: l, onMoveEnd: u, tooltip: d, onMouseEnter: f, onMouseLeave: m, children: h, ...g }) {
2061
+ let _ = p(null), y = !l && !u, b = Wn({
1983
2062
  onStart: () => ({ start: a }),
1984
2063
  onDrag: (e, { start: t }) => l?.(t + e),
1985
2064
  onEnd: (e, { start: t }) => {
@@ -1988,7 +2067,7 @@ function er({ left: e, top: t, width: n, height: r, colWidth: i, dragAnchor: a,
1988
2067
  },
1989
2068
  autoScroll: !0
1990
2069
  }), x = !!(l || u);
1991
- return /* @__PURE__ */ v($n, {
2070
+ return /* @__PURE__ */ v(ar, {
1992
2071
  tooltip: d,
1993
2072
  anchorRef: _,
1994
2073
  children: /* @__PURE__ */ v("div", {
@@ -2011,25 +2090,27 @@ function er({ left: e, top: t, width: n, height: r, colWidth: i, dragAnchor: a,
2011
2090
  })
2012
2091
  });
2013
2092
  }
2014
- var tr = {
2015
- milestone: "_milestone_o4jql_1",
2016
- milestoneShape: "_milestoneShape_o4jql_5"
2093
+ var sr = {
2094
+ milestone: "_milestone_unh27_1",
2095
+ milestoneShape: "_milestoneShape_unh27_5",
2096
+ critical: "_critical_unh27_12"
2017
2097
  };
2018
2098
  //#endregion
2019
2099
  //#region src/components/bars/milestoneBar/MilestoneBar.tsx
2020
- function nr({ size: e, centerLeft: t, top: n, colWidth: r, title: i, a11y: a, onMove: o, onMoveEnd: s, tooltip: c, slots: l, slotProps: u }) {
2021
- let d = J(), f = l ?? d.bars?.milestoneBar?.slots, p = u ?? d.bars?.milestoneBar?.slotProps, m = {
2100
+ function cr({ size: e, centerLeft: t, top: n, colWidth: r, title: i, a11y: a, onMove: o, onMoveEnd: s, tooltip: c, isCritical: l = !1, slots: u, slotProps: d }) {
2101
+ let f = J(), p = u ?? f.bars?.milestoneBar?.slots, m = d ?? f.bars?.milestoneBar?.slotProps, h = {
2022
2102
  size: e,
2023
- title: i
2024
- }, h = f?.root ?? er, g = f?.shape ?? "div", _ = Y({
2025
- className: tr.milestone,
2103
+ title: i,
2104
+ isCritical: l
2105
+ }, g = p?.root ?? or, _ = p?.shape ?? "div", y = X({
2106
+ className: sr.milestone,
2026
2107
  ...a,
2027
2108
  title: a ? a.title : i
2028
- }, p?.root, m), y = Y({
2029
- className: tr.milestoneShape,
2109
+ }, m?.root, h), b = X({
2110
+ className: Y(sr.milestoneShape, l && sr.critical),
2030
2111
  "aria-hidden": !0
2031
- }, p?.shape, m);
2032
- return /* @__PURE__ */ v(h, {
2112
+ }, m?.shape, h);
2113
+ return /* @__PURE__ */ v(g, {
2033
2114
  tooltip: c,
2034
2115
  left: t - e / 2,
2035
2116
  top: n,
@@ -2039,18 +2120,18 @@ function nr({ size: e, centerLeft: t, top: n, colWidth: r, title: i, a11y: a, on
2039
2120
  dragAnchor: t,
2040
2121
  onMove: o,
2041
2122
  onMoveEnd: s,
2042
- ..._,
2043
- children: /* @__PURE__ */ v(g, { ...y })
2123
+ ...y,
2124
+ children: /* @__PURE__ */ v(_, { ...b })
2044
2125
  });
2045
2126
  }
2046
- var rr = {
2127
+ var lr = {
2047
2128
  barProgress: "_barProgress_1obm3_1",
2048
2129
  barProgressResizeHandle: "_barProgressResizeHandle_1obm3_10"
2049
2130
  };
2050
2131
  //#endregion
2051
2132
  //#region src/components/bars/progress/BarProgressResizeHandle.tsx
2052
- function ir({ width: e, onResize: t, onResizeEnd: n, parentWidth: r, slots: i, slotProps: a }) {
2053
- let o = J(), s = i ?? o.bars?.barProgressResizeHandle?.slots, c = a ?? o.bars?.barProgressResizeHandle?.slotProps, l = (e, t) => Math.min(Math.max(0, t + e), r), u = zn({
2133
+ function ur({ width: e, onResize: t, onResizeEnd: n, parentWidth: r, slots: i, slotProps: a }) {
2134
+ let o = J(), s = i ?? o.bars?.barProgressResizeHandle?.slots, c = a ?? o.bars?.barProgressResizeHandle?.slotProps, l = (e, t) => Math.min(Math.max(0, t + e), r), u = Wn({
2054
2135
  onStart: () => ({ startWidth: e }),
2055
2136
  onDrag: (e, { startWidth: n }) => t(l(e, n)),
2056
2137
  onEnd: (e, { startWidth: t }) => n?.(l(e, t))
@@ -2058,8 +2139,8 @@ function ir({ width: e, onResize: t, onResizeEnd: n, parentWidth: r, slots: i, s
2058
2139
  width: e,
2059
2140
  parentWidth: r
2060
2141
  };
2061
- return /* @__PURE__ */ v(s?.root ?? "div", { ...Y({
2062
- className: rr.barProgressResizeHandle,
2142
+ return /* @__PURE__ */ v(s?.root ?? "div", { ...X({
2143
+ className: lr.barProgressResizeHandle,
2063
2144
  "aria-hidden": !0,
2064
2145
  tabIndex: -1,
2065
2146
  onMouseDown: u
@@ -2067,21 +2148,21 @@ function ir({ width: e, onResize: t, onResizeEnd: n, parentWidth: r, slots: i, s
2067
2148
  }
2068
2149
  //#endregion
2069
2150
  //#region src/components/bars/progress/BarProgress.tsx
2070
- function ar({ progress: e, width: t, height: n, onProgressChange: r, onProgressEnd: i, slots: a, slotProps: o }) {
2151
+ function dr({ progress: e, width: t, height: n, onProgressChange: r, onProgressEnd: i, slots: a, slotProps: o }) {
2071
2152
  let s = J(), c = a ?? s.bars?.barProgress?.slots, l = o ?? s.bars?.barProgress?.slotProps, u = e / 100 * t, d = (e) => e / t * 100, f = {
2072
2153
  progress: e,
2073
2154
  width: u,
2074
2155
  height: n
2075
2156
  };
2076
2157
  return /* @__PURE__ */ v(c?.root ?? "div", {
2077
- ...Y({
2078
- className: rr.barProgress,
2158
+ ...X({
2159
+ className: lr.barProgress,
2079
2160
  style: {
2080
2161
  width: u,
2081
2162
  height: n
2082
2163
  }
2083
2164
  }, l?.root, f),
2084
- children: r && /* @__PURE__ */ v(ir, {
2165
+ children: r && /* @__PURE__ */ v(ur, {
2085
2166
  width: u,
2086
2167
  parentWidth: t,
2087
2168
  onResize: (e) => r(d(e)),
@@ -2089,31 +2170,33 @@ function ar({ progress: e, width: t, height: n, onProgressChange: r, onProgressE
2089
2170
  })
2090
2171
  });
2091
2172
  }
2092
- var or = {
2093
- project: "_project_927ph_1",
2094
- projectInner: "_projectInner_927ph_10",
2095
- projectContent: "_projectContent_927ph_16"
2173
+ var fr = {
2174
+ project: "_project_1xupy_1",
2175
+ critical: "_critical_1xupy_10",
2176
+ projectInner: "_projectInner_1xupy_14",
2177
+ projectContent: "_projectContent_1xupy_20"
2096
2178
  };
2097
2179
  //#endregion
2098
2180
  //#region src/components/bars/projectBar/ProjectBar.tsx
2099
- function sr({ width: e, height: t, left: n, top: r, colWidth: i, title: a, a11y: o, progress: s, onProgressChange: c, onProgressEnd: l, onMove: u, onMoveEnd: d, tooltip: f, slots: p, slotProps: m }) {
2100
- let h = J(), g = p ?? h.bars?.projectBar?.slots, _ = m ?? h.bars?.projectBar?.slotProps, b = {
2181
+ function pr({ width: e, height: t, left: n, top: r, colWidth: i, title: a, a11y: o, progress: s, onProgressChange: c, onProgressEnd: l, onMove: u, onMoveEnd: d, tooltip: f, isCritical: p = !1, slots: m, slotProps: h }) {
2182
+ let g = J(), _ = m ?? g.bars?.projectBar?.slots, b = h ?? g.bars?.projectBar?.slotProps, x = {
2101
2183
  width: e,
2102
2184
  height: t,
2103
2185
  progress: s,
2104
- title: a
2105
- }, x = g?.root ?? er, S = g?.inner ?? "div", C = g?.label ?? "div", w = Y({
2106
- className: or.project,
2186
+ title: a,
2187
+ isCritical: p
2188
+ }, S = _?.root ?? or, C = _?.inner ?? "div", w = _?.label ?? "div", T = X({
2189
+ className: Y(fr.project, p && fr.critical),
2107
2190
  style: { lineHeight: `${t}px` },
2108
2191
  ...o
2109
- }, _?.root, b), T = Y({
2110
- className: or.projectInner,
2192
+ }, b?.root, x), E = X({
2193
+ className: fr.projectInner,
2111
2194
  "aria-hidden": !0
2112
- }, _?.inner, b), E = Y({
2113
- className: or.projectContent,
2195
+ }, b?.inner, x), D = X({
2196
+ className: fr.projectContent,
2114
2197
  children: a
2115
- }, _?.label, b);
2116
- return /* @__PURE__ */ v(x, {
2198
+ }, b?.label, x);
2199
+ return /* @__PURE__ */ v(S, {
2117
2200
  tooltip: f,
2118
2201
  left: n,
2119
2202
  top: r,
@@ -2123,31 +2206,32 @@ function sr({ width: e, height: t, left: n, top: r, colWidth: i, title: a, a11y:
2123
2206
  dragAnchor: n,
2124
2207
  onMove: u,
2125
2208
  onMoveEnd: d,
2126
- ...w,
2127
- children: /* @__PURE__ */ y(S, {
2128
- ...T,
2129
- children: [/* @__PURE__ */ v(ar, {
2209
+ ...T,
2210
+ children: /* @__PURE__ */ y(C, {
2211
+ ...E,
2212
+ children: [/* @__PURE__ */ v(dr, {
2130
2213
  width: e,
2131
2214
  height: t,
2132
2215
  progress: s,
2133
2216
  onProgressChange: c,
2134
2217
  onProgressEnd: l
2135
- }), /* @__PURE__ */ v(C, { ...E })]
2218
+ }), /* @__PURE__ */ v(w, { ...D })]
2136
2219
  })
2137
2220
  });
2138
2221
  }
2139
- var cr = {
2140
- task: "_task_18g5p_1",
2141
- taskInner: "_taskInner_18g5p_9",
2142
- taskContent: "_taskContent_18g5p_15",
2143
- resizer: "_resizer_18g5p_28",
2144
- startResizer: "_startResizer_18g5p_59",
2145
- endResizer: "_endResizer_18g5p_62"
2222
+ var mr = {
2223
+ task: "_task_j74mw_1",
2224
+ critical: "_critical_j74mw_9",
2225
+ taskInner: "_taskInner_j74mw_13",
2226
+ taskContent: "_taskContent_j74mw_19",
2227
+ resizer: "_resizer_j74mw_32",
2228
+ startResizer: "_startResizer_j74mw_63",
2229
+ endResizer: "_endResizer_j74mw_66"
2146
2230
  };
2147
2231
  //#endregion
2148
2232
  //#region src/components/bars/taskBar/TaskResizer.tsx
2149
- function lr({ width: e, left: t, colWidth: n, onResize: r, onResizeEnd: i, slots: a, slotProps: o }) {
2150
- let s = J(), c = a ?? s.bars?.taskResizer?.slots, l = o ?? s.bars?.taskResizer?.slotProps, u = zn({
2233
+ function hr({ width: e, left: t, colWidth: n, onResize: r, onResizeEnd: i, slots: a, slotProps: o }) {
2234
+ let s = J(), c = a ?? s.bars?.taskResizer?.slots, l = o ?? s.bars?.taskResizer?.slotProps, u = Wn({
2151
2235
  onStart: () => ({
2152
2236
  startWidth: e,
2153
2237
  startLeft: t
@@ -2160,7 +2244,7 @@ function lr({ width: e, left: t, colWidth: n, onResize: r, onResizeEnd: i, slots
2160
2244
  let a = r + Math.min(e, t);
2161
2245
  i("start", Math.round(a / n) * n);
2162
2246
  }
2163
- }), d = zn({
2247
+ }), d = Wn({
2164
2248
  onStart: () => ({
2165
2249
  startWidth: e,
2166
2250
  startLeft: t
@@ -2175,42 +2259,43 @@ function lr({ width: e, left: t, colWidth: n, onResize: r, onResizeEnd: i, slots
2175
2259
  }), f = {
2176
2260
  width: e,
2177
2261
  left: t
2178
- }, p = c?.startHandle ?? "button", m = c?.endHandle ?? "button", h = Y({
2262
+ }, p = c?.startHandle ?? "button", m = c?.endHandle ?? "button", h = X({
2179
2263
  type: "button",
2180
2264
  "aria-hidden": !0,
2181
2265
  tabIndex: -1,
2182
- className: Dn(cr.resizer, cr.startResizer),
2266
+ className: Y(mr.resizer, mr.startResizer),
2183
2267
  onMouseDown: u
2184
- }, l?.startHandle, f), g = Y({
2268
+ }, l?.startHandle, f), g = X({
2185
2269
  type: "button",
2186
2270
  "aria-hidden": !0,
2187
2271
  tabIndex: -1,
2188
- className: Dn(cr.resizer, cr.endResizer),
2272
+ className: Y(mr.resizer, mr.endResizer),
2189
2273
  onMouseDown: d
2190
2274
  }, l?.endHandle, f);
2191
2275
  return /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v(p, { ...h }), /* @__PURE__ */ v(m, { ...g })] });
2192
2276
  }
2193
2277
  //#endregion
2194
2278
  //#region src/components/bars/taskBar/TaskBar.tsx
2195
- function ur({ width: e, height: t, left: n, top: r, colWidth: i, title: a, a11y: o, progress: s = 30, onProgressChange: c, onProgressEnd: l, onResize: u, onResizeEnd: d, onMove: f, onMoveEnd: p, tooltip: m, slots: h, slotProps: g }) {
2196
- let _ = J(), b = h ?? _.bars?.taskBar?.slots, x = g ?? _.bars?.taskBar?.slotProps, S = {
2279
+ function gr({ width: e, height: t, left: n, top: r, colWidth: i, title: a, a11y: o, progress: s = 30, onProgressChange: c, onProgressEnd: l, onResize: u, onResizeEnd: d, onMove: f, onMoveEnd: p, tooltip: m, isCritical: h = !1, slots: g, slotProps: _ }) {
2280
+ let b = J(), x = g ?? b.bars?.taskBar?.slots, S = _ ?? b.bars?.taskBar?.slotProps, C = {
2197
2281
  width: e,
2198
2282
  height: t,
2199
2283
  progress: s,
2200
- title: a
2201
- }, C = b?.root ?? er, w = b?.inner ?? "div", T = b?.label ?? "div", E = Y({
2202
- className: `${cr.task} am-gantt-bar-task`,
2284
+ title: a,
2285
+ isCritical: h
2286
+ }, w = x?.root ?? or, T = x?.inner ?? "div", E = x?.label ?? "div", D = X({
2287
+ className: Y(mr.task, "am-gantt-bar-task", h && [mr.critical, "am-gantt-bar-task--critical"]),
2203
2288
  style: { lineHeight: `${t}px` },
2204
2289
  ...o
2205
- }, x?.root, S), D = Y({
2206
- className: cr.taskInner,
2290
+ }, S?.root, C), O = X({
2291
+ className: mr.taskInner,
2207
2292
  "aria-hidden": !0
2208
- }, x?.inner, S), O = Y({
2209
- className: cr.taskContent,
2293
+ }, S?.inner, C), k = X({
2294
+ className: mr.taskContent,
2210
2295
  title: o?.title,
2211
2296
  children: a
2212
- }, x?.label, S);
2213
- return /* @__PURE__ */ v(C, {
2297
+ }, S?.label, C);
2298
+ return /* @__PURE__ */ v(w, {
2214
2299
  tooltip: m,
2215
2300
  left: n,
2216
2301
  top: r,
@@ -2220,19 +2305,19 @@ function ur({ width: e, height: t, left: n, top: r, colWidth: i, title: a, a11y:
2220
2305
  dragAnchor: n,
2221
2306
  onMove: f,
2222
2307
  onMoveEnd: p,
2223
- ...E,
2224
- children: /* @__PURE__ */ y(w, {
2225
- ...D,
2308
+ ...D,
2309
+ children: /* @__PURE__ */ y(T, {
2310
+ ...O,
2226
2311
  children: [
2227
- /* @__PURE__ */ v(ar, {
2312
+ /* @__PURE__ */ v(dr, {
2228
2313
  width: e,
2229
2314
  height: t,
2230
2315
  progress: s,
2231
2316
  onProgressChange: c,
2232
2317
  onProgressEnd: l
2233
2318
  }),
2234
- /* @__PURE__ */ v(T, { ...O }),
2235
- u && d && /* @__PURE__ */ v(lr, {
2319
+ /* @__PURE__ */ v(E, { ...k }),
2320
+ u && d && /* @__PURE__ */ v(hr, {
2236
2321
  width: e,
2237
2322
  left: n,
2238
2323
  colWidth: i,
@@ -2243,12 +2328,12 @@ function ur({ width: e, height: t, left: n, top: r, colWidth: i, title: a, a11y:
2243
2328
  })
2244
2329
  });
2245
2330
  }
2246
- var dr = {
2331
+ var _r = {
2247
2332
  handle: "_handle_fw6gu_1",
2248
2333
  visible: "_visible_fw6gu_18"
2249
- }, fr = 10 / 2;
2250
- function pr({ taskId: e, barLeft: t, barWidth: n, barCenterY: r, show: i, slots: a, slotProps: o }) {
2251
- let s = J(), c = a ?? s.bars?.connectorHandles?.slots, l = o ?? s.bars?.connectorHandles?.slotProps, { startDrag: u, endDrag: d } = gn(), f = vn(), { gridBodyRef: p } = fn(), m = (e, t) => {
2334
+ }, vr = 10 / 2;
2335
+ function yr({ taskId: e, barLeft: t, barWidth: n, barCenterY: r, show: i, slots: a, slotProps: o }) {
2336
+ let s = J(), c = a ?? s.bars?.connectorHandles?.slots, l = o ?? s.bars?.connectorHandles?.slotProps, { startDrag: u, endDrag: d } = Sn(), f = wn(), { gridBodyRef: p } = vn(), m = (e, t) => {
2252
2337
  let n = p.current?.getBoundingClientRect();
2253
2338
  if (!n) return {
2254
2339
  x: 0,
@@ -2279,140 +2364,143 @@ function pr({ taskId: e, barLeft: t, barWidth: n, barCenterY: r, show: i, slots:
2279
2364
  barCenterY: r,
2280
2365
  show: i,
2281
2366
  isDragging: f
2282
- }, x = c?.startHandle ?? "div", S = c?.endHandle ?? "div", C = i || f, w = Y({
2367
+ }, x = c?.startHandle ?? "div", S = c?.endHandle ?? "div", C = i || f, w = X({
2283
2368
  "aria-hidden": !0,
2284
2369
  tabIndex: -1,
2285
- className: Dn(dr.handle, C && dr.visible),
2370
+ className: Y(_r.handle, C && _r.visible),
2286
2371
  style: {
2287
2372
  left: t - 10,
2288
- top: r - fr
2373
+ top: r - vr
2289
2374
  },
2290
2375
  onMouseDown: (e) => h(e, "start"),
2291
2376
  onMouseUp: (e) => g(e, "start")
2292
- }, l?.startHandle, b), T = Y({
2377
+ }, l?.startHandle, b), T = X({
2293
2378
  "aria-hidden": !0,
2294
2379
  tabIndex: -1,
2295
- className: Dn(dr.handle, C && dr.visible),
2380
+ className: Y(_r.handle, C && _r.visible),
2296
2381
  style: {
2297
2382
  left: t + n,
2298
- top: r - fr
2383
+ top: r - vr
2299
2384
  },
2300
2385
  onMouseDown: (e) => h(e, "end"),
2301
2386
  onMouseUp: (e) => g(e, "end")
2302
2387
  }, l?.endHandle, b);
2303
2388
  return /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v(x, { ...w }), /* @__PURE__ */ v(S, { ...T })] });
2304
2389
  }
2305
- var mr = { row: "_row_1jios_13" }, hr = i(function({ task: e, index: t, origin: n, colWidth: r, rowHeight: i, unit: o, override: s, onOverride: c, onUpdate: l, onCommit: u, onTaskClick: d, rowIndexOffset: f }) {
2306
- let p = $t(), h = rn(), g = un() === e.id, _ = tn(), b = J().bars?.tooltip?.slots?.tooltip, { left: x, width: S, progress: C } = Et(e, s || {}, n, r, o), w = t * i, T = x, E = i - 12, D = 6 + E / 2, O = e.type === "milestone", k = O ? T - E / 2 : T, A = O ? E - 1 : S, [j, M] = m(!1), N = (e) => ({
2307
- startDate: Dt(e, n, r, o),
2308
- endDate: Dt(e + S, n, r, o)
2309
- }), P = (e, t) => ({
2310
- startDate: Dt(t, n, r, o),
2311
- endDate: Dt(t + e, n, r, o)
2312
- }), F = (t) => {
2390
+ var br = { row: "_row_1hdsc_13" }, xr = i(function({ task: e, index: t, origin: n, colWidth: r, rowHeight: i, unit: o, override: s, onOverride: c, onUpdate: l, onCommit: u, onTaskClick: d, rowIndexOffset: f }) {
2391
+ let p = rn(), h = cn(), g = gn() === e.id, _ = un()?.criticalTaskIds.has(e.id) ?? !1, b = on(), x = J().bars?.tooltip?.slots?.tooltip, { left: S, width: C, progress: w } = At(e, s || {}, n, r, o), T = t * i, E = S, D = i - 12, O = 6 + D / 2, k = e.type === "milestone", A = k ? E - D / 2 : E, j = k ? D - 1 : C, [M, N] = m(!1), ee = (e) => ({
2392
+ startDate: jt(e, n, r, o),
2393
+ endDate: jt(e + C, n, r, o)
2394
+ }), te = (e, t) => ({
2395
+ startDate: jt(t, n, r, o),
2396
+ endDate: jt(t + e, n, r, o)
2397
+ }), ne = (t) => {
2313
2398
  c(e.id, t);
2314
- }, ee = (e, t) => {
2399
+ }, P = (e, t) => {
2315
2400
  a(() => {
2316
2401
  l(e, t), c(e, null);
2317
2402
  });
2318
- }, I = (t) => {
2403
+ }, F = (t) => {
2319
2404
  a(() => {
2320
2405
  u(e.id, t), c(e.id, null);
2321
2406
  });
2322
- }, L = (e) => ({
2407
+ }, I = (e) => ({
2323
2408
  kind: "move",
2324
- startDate: Dt(e, n, r, o)
2325
- }), R = h ? {} : {
2326
- onMove: (e) => F(N(e)),
2327
- onMoveEnd: (e) => I(L(e))
2409
+ startDate: jt(e, n, r, o)
2410
+ }), L = h ? {} : {
2411
+ onMove: (e) => ne(ee(e)),
2412
+ onMoveEnd: (e) => F(I(e))
2413
+ }, R = h ? {} : {
2414
+ onProgressChange: (e) => ne({ progress: e }),
2415
+ onProgressEnd: (t) => P(e.id, { progress: t })
2328
2416
  }, z = h ? {} : {
2329
- onProgressChange: (e) => F({ progress: e }),
2330
- onProgressEnd: (t) => ee(e.id, { progress: t })
2331
- }, B = h ? {} : {
2332
- onResize: (e, t) => F(P(e, t)),
2333
- onResizeEnd: (e, t) => I(e === "start" ? {
2417
+ onResize: (e, t) => ne(te(e, t)),
2418
+ onResizeEnd: (e, t) => F(e === "start" ? {
2334
2419
  kind: "resizeStart",
2335
- startDate: Dt(t, n, r, o)
2420
+ startDate: jt(t, n, r, o)
2336
2421
  } : {
2337
2422
  kind: "resizeEnd",
2338
- endDate: Dt(t, n, r, o)
2423
+ endDate: jt(t, n, r, o)
2339
2424
  })
2340
- }, V = {
2425
+ }, re = {
2341
2426
  role: "gridcell",
2342
- "aria-colindex": Math.max(1, Math.floor(T / r) + 1),
2343
- "aria-colspan": Math.max(1, Math.round(S / r)),
2344
- "aria-label": p.bar(e, { progress: C }),
2427
+ "aria-colindex": Math.max(1, Math.floor(E / r) + 1),
2428
+ "aria-colspan": Math.max(1, Math.round(C / r)),
2429
+ "aria-label": p.bar(e, { progress: w }),
2345
2430
  "aria-selected": g || void 0,
2346
- title: b ? void 0 : e.name
2347
- }, te = {
2431
+ title: x ? void 0 : e.name
2432
+ }, B = {
2348
2433
  task: e,
2349
- progress: C,
2350
- displayEnd: Pe(e, _)
2434
+ progress: w,
2435
+ displayEnd: Pe(e, b)
2351
2436
  };
2352
2437
  return /* @__PURE__ */ y("div", {
2353
- className: mr.row,
2438
+ className: br.row,
2354
2439
  style: {
2355
- top: w,
2440
+ top: T,
2356
2441
  height: i
2357
2442
  },
2358
2443
  onClick: d ? () => d(e) : void 0,
2359
- onMouseEnter: () => M(!0),
2360
- onMouseLeave: () => M(!1),
2444
+ onMouseEnter: () => N(!0),
2445
+ onMouseLeave: () => N(!1),
2361
2446
  role: "row",
2362
2447
  "aria-rowindex": f + t + 1,
2363
2448
  children: [
2364
- !h && /* @__PURE__ */ v(pr, {
2449
+ !h && /* @__PURE__ */ v(yr, {
2365
2450
  taskId: e.id,
2366
- barLeft: k,
2367
- barWidth: A,
2368
- barCenterY: D,
2369
- show: j
2451
+ barLeft: A,
2452
+ barWidth: j,
2453
+ barCenterY: O,
2454
+ show: M
2370
2455
  }),
2371
- e.type === "milestone" && /* @__PURE__ */ v(nr, {
2372
- tooltip: te,
2373
- size: E,
2374
- centerLeft: T,
2456
+ e.type === "milestone" && /* @__PURE__ */ v(cr, {
2457
+ tooltip: B,
2458
+ size: D,
2459
+ centerLeft: E,
2375
2460
  top: 6,
2376
2461
  colWidth: r,
2377
2462
  title: e.name,
2378
- a11y: V,
2379
- ...R
2463
+ a11y: re,
2464
+ isCritical: _,
2465
+ ...L
2380
2466
  }),
2381
- e.type === "summary" && /* @__PURE__ */ v(sr, {
2382
- tooltip: te,
2383
- left: T,
2467
+ e.type === "summary" && /* @__PURE__ */ v(pr, {
2468
+ tooltip: B,
2469
+ left: E,
2384
2470
  top: 6,
2385
- width: S,
2386
- height: E,
2471
+ width: C,
2472
+ height: D,
2387
2473
  colWidth: r,
2388
2474
  title: e.name,
2389
- a11y: V,
2390
- progress: C,
2391
- ...z,
2392
- ...R
2475
+ a11y: re,
2476
+ progress: w,
2477
+ isCritical: _,
2478
+ ...R,
2479
+ ...L
2393
2480
  }),
2394
- e.type === "task" || !e.type ? /* @__PURE__ */ v(ur, {
2395
- tooltip: te,
2396
- left: T,
2481
+ e.type === "task" || !e.type ? /* @__PURE__ */ v(gr, {
2482
+ tooltip: B,
2483
+ left: E,
2397
2484
  top: 6,
2398
- width: S,
2399
- height: E,
2485
+ width: C,
2486
+ height: D,
2400
2487
  colWidth: r,
2401
2488
  title: e.name,
2402
- a11y: V,
2403
- progress: C,
2404
- ...z,
2489
+ a11y: re,
2490
+ progress: w,
2491
+ isCritical: _,
2405
2492
  ...R,
2406
- ...B
2493
+ ...L,
2494
+ ...z
2407
2495
  }) : null
2408
2496
  ]
2409
2497
  });
2410
2498
  });
2411
- hr.displayName = "Row";
2499
+ xr.displayName = "Row";
2412
2500
  //#endregion
2413
2501
  //#region src/components/dependency-links/geometry.ts
2414
- var gr = 12, _r = {};
2415
- function vr(e) {
2502
+ var Sr = 12, Cr = {};
2503
+ function wr(e) {
2416
2504
  let t = Infinity, n = Infinity, r = -Infinity, i = -Infinity;
2417
2505
  for (let a of e) a.x < t && (t = a.x), a.x > r && (r = a.x), a.y < n && (n = a.y), a.y > i && (i = a.y);
2418
2506
  return {
@@ -2422,7 +2510,7 @@ function vr(e) {
2422
2510
  maxY: i
2423
2511
  };
2424
2512
  }
2425
- function yr(e) {
2513
+ function Tr(e) {
2426
2514
  if (e.length < 2) return e[0] ?? {
2427
2515
  x: 0,
2428
2516
  y: 0
@@ -2433,8 +2521,8 @@ function yr(e) {
2433
2521
  y: (n.y + r.y) / 2
2434
2522
  };
2435
2523
  }
2436
- function br(e, t, n, { origin: r, colWidth: i, rowHeight: a, unit: o }) {
2437
- let { left: s, width: c } = Et(e, t, r, i, o);
2524
+ function Er(e, t, n, { origin: r, colWidth: i, rowHeight: a, unit: o }) {
2525
+ let { left: s, width: c } = At(e, t, r, i, o);
2438
2526
  if (e.type === "milestone") {
2439
2527
  let t = (a - 12) / 2;
2440
2528
  return {
@@ -2451,13 +2539,13 @@ function br(e, t, n, { origin: r, colWidth: i, rowHeight: a, unit: o }) {
2451
2539
  task: e
2452
2540
  };
2453
2541
  }
2454
- function xr(e, t) {
2542
+ function Dr(e, t) {
2455
2543
  let n = /* @__PURE__ */ new Map(), { rowHeight: r } = t;
2456
2544
  return e.forEach((e, i) => {
2457
- n.set(e.id, br(e, _r, i * r + r / 2, t));
2545
+ n.set(e.id, Er(e, Cr, i * r + r / 2, t));
2458
2546
  }), n;
2459
2547
  }
2460
- function Sr(e, t) {
2548
+ function Or(e, t) {
2461
2549
  let n = (e.x + t.x) / 2;
2462
2550
  return [
2463
2551
  e,
@@ -2472,8 +2560,8 @@ function Sr(e, t) {
2472
2560
  t
2473
2561
  ];
2474
2562
  }
2475
- function Cr(e, t, n, r) {
2476
- let i = e.x + n * gr, a = t.x - r * gr, o = (e.y + t.y) / 2;
2563
+ function kr(e, t, n, r) {
2564
+ let i = e.x + n * Sr, a = t.x - r * Sr, o = (e.y + t.y) / 2;
2477
2565
  return [
2478
2566
  e,
2479
2567
  {
@@ -2495,7 +2583,7 @@ function Cr(e, t, n, r) {
2495
2583
  t
2496
2584
  ];
2497
2585
  }
2498
- function wr(e, t, n) {
2586
+ function Ar(e, t, n) {
2499
2587
  return [
2500
2588
  e,
2501
2589
  {
@@ -2509,7 +2597,7 @@ function wr(e, t, n) {
2509
2597
  t
2510
2598
  ];
2511
2599
  }
2512
- function Tr(e, t, n) {
2600
+ function jr(e, t, n) {
2513
2601
  let r = t.centerY, i = n.centerY;
2514
2602
  switch (e) {
2515
2603
  case "FS": {
@@ -2520,22 +2608,22 @@ function Tr(e, t, n) {
2520
2608
  x: n.startX,
2521
2609
  y: i
2522
2610
  };
2523
- return n.startX >= t.endX + 2 * gr ? Sr(e, a) : Cr(e, a, 1, 1);
2611
+ return n.startX >= t.endX + 2 * Sr ? Or(e, a) : kr(e, a, 1, 1);
2524
2612
  }
2525
- case "SS": return wr({
2613
+ case "SS": return Ar({
2526
2614
  x: t.startX,
2527
2615
  y: r
2528
2616
  }, {
2529
2617
  x: n.startX,
2530
2618
  y: i
2531
- }, Math.min(t.startX, n.startX) - gr);
2532
- case "FF": return wr({
2619
+ }, Math.min(t.startX, n.startX) - Sr);
2620
+ case "FF": return Ar({
2533
2621
  x: t.endX,
2534
2622
  y: r
2535
2623
  }, {
2536
2624
  x: n.endX,
2537
2625
  y: i
2538
- }, Math.max(t.endX, n.endX) + gr);
2626
+ }, Math.max(t.endX, n.endX) + Sr);
2539
2627
  case "SF": {
2540
2628
  let e = {
2541
2629
  x: t.startX,
@@ -2544,36 +2632,36 @@ function Tr(e, t, n) {
2544
2632
  x: n.endX,
2545
2633
  y: i
2546
2634
  };
2547
- return n.endX <= t.startX - 2 * gr ? Sr(e, a) : Cr(e, a, -1, -1);
2635
+ return n.endX <= t.startX - 2 * Sr ? Or(e, a) : kr(e, a, -1, -1);
2548
2636
  }
2549
2637
  }
2550
2638
  }
2551
- function Er({ tasks: e, dependencies: t, ...n }) {
2552
- let r = xr(e, n), i = [];
2639
+ function Mr({ tasks: e, dependencies: t, ...n }) {
2640
+ let r = Dr(e, n), i = [];
2553
2641
  for (let e of t) {
2554
2642
  let t = r.get(e.from), n = r.get(e.to);
2555
- !t || !n || i.push(Dr(e, t, n));
2643
+ !t || !n || i.push(Nr(e, t, n));
2556
2644
  }
2557
2645
  let a = null;
2558
2646
  return {
2559
2647
  links: i,
2560
2648
  boxes: r,
2561
2649
  linksTouching(e) {
2562
- return a ??= Or(i), a.get(e);
2650
+ return a ??= Pr(i), a.get(e);
2563
2651
  }
2564
2652
  };
2565
2653
  }
2566
- function Dr(e, t, n) {
2567
- let r = Tr(e.type, t, n);
2654
+ function Nr(e, t, n) {
2655
+ let r = jr(e.type, t, n);
2568
2656
  return {
2569
2657
  id: `${e.from}->${e.to}`,
2570
2658
  type: e.type,
2571
2659
  points: r,
2572
- bounds: vr(r),
2660
+ bounds: wr(r),
2573
2661
  dep: e
2574
2662
  };
2575
2663
  }
2576
- function Or(e) {
2664
+ function Pr(e) {
2577
2665
  let t = /* @__PURE__ */ new Map(), n = (e, n) => {
2578
2666
  let r = t.get(e);
2579
2667
  r ? r.push(n) : t.set(e, [n]);
@@ -2582,26 +2670,26 @@ function Or(e) {
2582
2670
  n(String(e.dep.from), t), n(String(e.dep.to), t);
2583
2671
  }), t;
2584
2672
  }
2585
- function kr(e, t, n) {
2673
+ function Fr(e, t, n) {
2586
2674
  let r = Object.keys(t);
2587
2675
  if (r.length === 0) return e.links;
2588
2676
  let i = /* @__PURE__ */ new Map(), a = (r) => {
2589
2677
  let a = e.boxes.get(r), o = a && t[String(r)];
2590
2678
  if (!a || !o) return a;
2591
2679
  let s = i.get(r);
2592
- return s || (s = br(a.task, o, a.centerY, n), i.set(r, s)), s;
2680
+ return s || (s = Er(a.task, o, a.centerY, n), i.set(r, s)), s;
2593
2681
  }, o = null;
2594
2682
  for (let t of r) for (let n of e.linksTouching(t) ?? []) {
2595
2683
  let { dep: t } = e.links[n], r = a(t.from), i = a(t.to);
2596
- !r || !i || (o ??= e.links.slice(), o[n] = Dr(t, r, i));
2684
+ !r || !i || (o ??= e.links.slice(), o[n] = Nr(t, r, i));
2597
2685
  }
2598
2686
  return o ?? e.links;
2599
2687
  }
2600
2688
  //#endregion
2601
2689
  //#region src/components/dependency-links/DependencyLinksContext.tsx
2602
- var Ar = n(null);
2603
- function jr({ tasks: e, dependencies: t, origin: n, colWidth: r, rowHeight: i, unit: a, children: o, overrides: s }) {
2604
- let c = f(() => Er({
2690
+ var Ir = n(null);
2691
+ function Lr({ tasks: e, dependencies: t, origin: n, colWidth: r, rowHeight: i, unit: a, children: o, overrides: s }) {
2692
+ let c = f(() => Mr({
2605
2693
  tasks: e,
2606
2694
  dependencies: t,
2607
2695
  origin: n,
@@ -2615,7 +2703,7 @@ function jr({ tasks: e, dependencies: t, origin: n, colWidth: r, rowHeight: i, u
2615
2703
  r,
2616
2704
  i,
2617
2705
  a
2618
- ]), l = f(() => kr(c, s, {
2706
+ ]), l = f(() => Fr(c, s, {
2619
2707
  origin: n,
2620
2708
  colWidth: r,
2621
2709
  rowHeight: i,
@@ -2628,31 +2716,33 @@ function jr({ tasks: e, dependencies: t, origin: n, colWidth: r, rowHeight: i, u
2628
2716
  i,
2629
2717
  a
2630
2718
  ]);
2631
- return /* @__PURE__ */ v(Ar.Provider, {
2719
+ return /* @__PURE__ */ v(Ir.Provider, {
2632
2720
  value: l,
2633
2721
  children: o
2634
2722
  });
2635
2723
  }
2636
- function Mr() {
2637
- let e = s(Ar);
2724
+ function Rr() {
2725
+ let e = s(Ir);
2638
2726
  if (e === null) throw Error("useDependencyLinks must be used within a <DependencyLinksProvider>");
2639
2727
  return e;
2640
2728
  }
2641
2729
  var Z = {
2642
- layer: "_layer_1ih9f_1",
2643
- hitArea: "_hitArea_1ih9f_8",
2644
- segment: "_segment_1ih9f_15",
2645
- segmentSelected: "_segmentSelected_1ih9f_21",
2646
- arrowRight: "_arrowRight_1ih9f_25",
2647
- arrowLeft: "_arrowLeft_1ih9f_26",
2648
- arrowSelected: "_arrowSelected_1ih9f_43",
2649
- lagLabel: "_lagLabel_1ih9f_51",
2650
- deleteBtn: "_deleteBtn_1ih9f_65"
2651
- }, Q = 2, Nr = 8, Pr = 6;
2652
- function Fr(e, t) {
2730
+ layer: "_layer_jv7ss_1",
2731
+ hitArea: "_hitArea_jv7ss_8",
2732
+ segment: "_segment_jv7ss_15",
2733
+ segmentSelected: "_segmentSelected_jv7ss_21",
2734
+ segmentCritical: "_segmentCritical_jv7ss_25",
2735
+ arrowRight: "_arrowRight_jv7ss_30",
2736
+ arrowLeft: "_arrowLeft_jv7ss_31",
2737
+ arrowSelected: "_arrowSelected_jv7ss_48",
2738
+ arrowCritical: "_arrowCritical_jv7ss_56",
2739
+ lagLabel: "_lagLabel_jv7ss_69",
2740
+ deleteBtn: "_deleteBtn_jv7ss_83"
2741
+ }, Q = 2, zr = 8, Br = 6;
2742
+ function Vr(e, t) {
2653
2743
  return t ? e.minX <= t.maxX && e.maxX >= t.minX && e.minY <= t.maxY && e.maxY >= t.minY : !0;
2654
2744
  }
2655
- function Ir(e, t) {
2745
+ function Hr(e, t) {
2656
2746
  return e.y === t.y ? {
2657
2747
  left: Math.min(e.x, t.x) - Q / 2,
2658
2748
  top: e.y - Q / 2,
@@ -2665,62 +2755,62 @@ function Ir(e, t) {
2665
2755
  height: Math.abs(t.y - e.y) + Q
2666
2756
  };
2667
2757
  }
2668
- function Lr(e, t) {
2758
+ function Ur(e, t) {
2669
2759
  return e.y === t.y ? {
2670
2760
  left: Math.min(e.x, t.x) - Q / 2,
2671
- top: e.y - Pr,
2761
+ top: e.y - Br,
2672
2762
  width: Math.abs(t.x - e.x) + Q,
2673
- height: Q + Pr * 2
2763
+ height: Q + Br * 2
2674
2764
  } : {
2675
- left: e.x - Pr,
2765
+ left: e.x - Br,
2676
2766
  top: Math.min(e.y, t.y) - Q / 2,
2677
- width: Q + Pr * 2,
2767
+ width: Q + Br * 2,
2678
2768
  height: Math.abs(t.y - e.y) + Q
2679
2769
  };
2680
2770
  }
2681
- function Rr(e) {
2771
+ function Wr(e) {
2682
2772
  let t = [];
2683
2773
  for (let n = 0; n + 1 < e.length; n++) t.push([e[n], e[n + 1]]);
2684
2774
  return t;
2685
2775
  }
2686
- function zr(e) {
2776
+ function Gr(e) {
2687
2777
  let t = e[e.length - 1], n = e[e.length - 2], r = t.x >= n.x;
2688
2778
  return {
2689
2779
  className: r ? Z.arrowRight : Z.arrowLeft,
2690
2780
  style: {
2691
- left: r ? t.x - Nr : t.x,
2692
- top: t.y - Nr / 2
2781
+ left: r ? t.x - zr : t.x,
2782
+ top: t.y - zr / 2
2693
2783
  }
2694
2784
  };
2695
2785
  }
2696
- function Br({ width: t, height: n, onDependencyDelete: r, visibleRect: i, slots: a, slotProps: o }) {
2697
- let s = J(), c = a ?? s.dependencies?.links?.slots, u = o ?? s.dependencies?.links?.slotProps, d = $t(), f = rn(), p = Mr(), [h, g] = m(null), [_, b] = m(null), x = h ? p.find((e) => e.id === h) : null;
2786
+ function Kr({ width: t, height: n, onDependencyDelete: r, visibleRect: i, slots: a, slotProps: o }) {
2787
+ let s = J(), c = a ?? s.dependencies?.links?.slots, u = o ?? s.dependencies?.links?.slotProps, d = rn(), f = cn(), p = un(), h = Rr(), [g, _] = m(null), [b, x] = m(null), S = g ? h.find((e) => e.id === g) : null;
2698
2788
  if (l(() => {
2699
- if (!h) return;
2789
+ if (!g) return;
2700
2790
  let e = (e) => {
2701
- (e.key === "Delete" || e.key === "Backspace") && (x && r?.(x.dep), g(null), b(null));
2791
+ (e.key === "Delete" || e.key === "Backspace") && (S && r?.(S.dep), _(null), x(null));
2702
2792
  };
2703
2793
  return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
2704
2794
  }, [
2705
- h,
2706
- x,
2795
+ g,
2796
+ S,
2707
2797
  r
2708
- ]), p.length === 0) return null;
2709
- let S = (e, t) => {
2710
- if (t.stopPropagation(), h === e) g(null), b(null);
2798
+ ]), h.length === 0) return null;
2799
+ let C = (e, t) => {
2800
+ if (t.stopPropagation(), g === e) _(null), x(null);
2711
2801
  else {
2712
- g(e);
2802
+ _(e);
2713
2803
  let n = t.currentTarget.closest(`.${Z.layer}`)?.getBoundingClientRect();
2714
- b(n ? {
2804
+ x(n ? {
2715
2805
  x: t.clientX - n.left,
2716
2806
  y: t.clientY - n.top
2717
2807
  } : null);
2718
2808
  }
2719
- }, C = (e) => {
2720
- e.stopPropagation(), x && r?.(x.dep), g(null), b(null);
2721
- }, w = c?.layer ?? "div", T = c?.segment ?? "div", E = c?.arrow ?? "div", D = c?.lagLabel ?? "div", O = c?.deleteButton ?? "button";
2722
- return /* @__PURE__ */ y(w, {
2723
- ...Y({
2809
+ }, w = (e) => {
2810
+ e.stopPropagation(), S && r?.(S.dep), _(null), x(null);
2811
+ }, T = c?.layer ?? "div", E = c?.segment ?? "div", D = c?.arrow ?? "div", O = c?.lagLabel ?? "div", k = c?.deleteButton ?? "button";
2812
+ return /* @__PURE__ */ y(T, {
2813
+ ...X({
2724
2814
  className: Z.layer,
2725
2815
  style: {
2726
2816
  width: t,
@@ -2729,41 +2819,43 @@ function Br({ width: t, height: n, onDependencyDelete: r, visibleRect: i, slots:
2729
2819
  role: "presentation",
2730
2820
  "aria-hidden": !0,
2731
2821
  onClick: () => {
2732
- g(null), b(null);
2822
+ _(null), x(null);
2733
2823
  }
2734
2824
  }, u?.layer, {
2735
2825
  width: t,
2736
2826
  height: n,
2737
- linkCount: p.length
2827
+ linkCount: h.length
2738
2828
  }),
2739
- children: [p.map((t) => {
2740
- let n = t.id === h;
2741
- if (!n && !Fr(t.bounds, i)) return null;
2742
- let r = zr(t.points), a = Rr(t.points), o = t.dep.lag ? yr(t.points) : null, s = {
2829
+ children: [h.map((t) => {
2830
+ let n = t.id === g;
2831
+ if (!n && !Vr(t.bounds, i)) return null;
2832
+ let r = Gr(t.points), a = Wr(t.points), o = t.dep.lag ? Tr(t.points) : null, s = p?.criticalDependencyKeys.has(t.id) ?? !1, c = {
2743
2833
  link: t,
2744
- isSelected: n
2745
- }, c = Y({
2746
- className: `${r.className} ${n ? Z.arrowSelected : ""}`,
2834
+ isSelected: n,
2835
+ isCritical: s
2836
+ }, l = X({
2837
+ className: Y(r.className, n && Z.arrowSelected, s && Z.arrowCritical),
2747
2838
  style: r.style
2748
- }, u?.arrow, s);
2839
+ }, u?.arrow, c);
2749
2840
  return /* @__PURE__ */ y(e, { children: [
2750
2841
  !f && a.map(([e, n]) => /* @__PURE__ */ v("div", {
2751
2842
  className: Z.hitArea,
2752
- style: Lr(e, n),
2753
- onClick: (e) => S(t.id, e)
2843
+ style: Ur(e, n),
2844
+ onClick: (e) => C(t.id, e)
2754
2845
  }, `hit-${e.x},${e.y}-${n.x},${n.y}`)),
2755
- a.map(([e, r], i) => /* @__PURE__ */ v(T, { ...Y({
2756
- className: `${Z.segment} ${n ? Z.segmentSelected : ""}`,
2757
- style: Ir(e, r)
2846
+ a.map(([e, r], i) => /* @__PURE__ */ v(E, { ...X({
2847
+ className: Y(Z.segment, n && Z.segmentSelected, s && Z.segmentCritical),
2848
+ style: Hr(e, r)
2758
2849
  }, u?.segment, {
2759
2850
  link: t,
2760
2851
  isSelected: n,
2852
+ isCritical: s,
2761
2853
  from: e,
2762
2854
  to: r,
2763
2855
  index: i
2764
2856
  }) }, `seg-${e.x},${e.y}-${r.x},${r.y}`)),
2765
- /* @__PURE__ */ v(E, { ...c }),
2766
- o && t.dep.lag !== void 0 && t.dep.lag !== 0 && /* @__PURE__ */ v(D, { ...Y({
2857
+ /* @__PURE__ */ v(D, { ...l }),
2858
+ o && t.dep.lag !== void 0 && t.dep.lag !== 0 && /* @__PURE__ */ v(O, { ...X({
2767
2859
  className: Z.lagLabel,
2768
2860
  style: {
2769
2861
  left: o.x,
@@ -2773,32 +2865,33 @@ function Br({ width: t, height: n, onDependencyDelete: r, visibleRect: i, slots:
2773
2865
  }, u?.lagLabel, {
2774
2866
  link: t,
2775
2867
  isSelected: n,
2868
+ isCritical: s,
2776
2869
  lag: t.dep.lag
2777
2870
  }) })
2778
2871
  ] }, t.id);
2779
- }), !f && x && _ && /* @__PURE__ */ v(O, { ...Y({
2872
+ }), !f && S && b && /* @__PURE__ */ v(k, { ...X({
2780
2873
  className: Z.deleteBtn,
2781
2874
  type: "button",
2782
2875
  tabIndex: -1,
2783
2876
  style: {
2784
- left: _.x,
2785
- top: _.y
2877
+ left: b.x,
2878
+ top: b.y
2786
2879
  },
2787
- onClick: C,
2880
+ onClick: w,
2788
2881
  "aria-label": d.deleteDependency,
2789
2882
  children: "×"
2790
- }, u?.deleteButton, { dependency: x.dep }) })]
2883
+ }, u?.deleteButton, { dependency: S.dep }) })]
2791
2884
  });
2792
2885
  }
2793
- var Vr = { preview: "_preview_1jjzd_1" };
2886
+ var qr = { preview: "_preview_1jjzd_1" };
2794
2887
  //#endregion
2795
2888
  //#region src/components/dependency-links/DependencyPreview.tsx
2796
- function Hr({ slots: e, slotProps: t }) {
2797
- let n = J(), r = e ?? n.dependencies?.preview?.slots, i = t ?? n.dependencies?.preview?.slotProps, a = bn();
2889
+ function Jr({ slots: e, slotProps: t }) {
2890
+ let n = J(), r = e ?? n.dependencies?.preview?.slots, i = t ?? n.dependencies?.preview?.slotProps, a = En();
2798
2891
  if (!a) return null;
2799
2892
  let o = a.currentX - a.startX, s = a.currentY - a.startY, c = Math.hypot(o, s), l = 180 / Math.PI * Math.atan2(s, o);
2800
- return /* @__PURE__ */ v(r?.root ?? "div", { ...Y({
2801
- className: Vr.preview,
2893
+ return /* @__PURE__ */ v(r?.root ?? "div", { ...X({
2894
+ className: qr.preview,
2802
2895
  style: {
2803
2896
  left: a.startX,
2804
2897
  top: a.startY,
@@ -2812,17 +2905,17 @@ function Hr({ slots: e, slotProps: t }) {
2812
2905
  angle: l
2813
2906
  }) });
2814
2907
  }
2815
- var Ur = {
2908
+ var Yr = {
2816
2909
  cols: "_cols_kjab1_1",
2817
2910
  col: "_col_kjab1_1",
2818
2911
  colWeekend: "_colWeekend_kjab1_14"
2819
2912
  };
2820
2913
  //#endregion
2821
2914
  //#region src/components/grid/GridColumns.tsx
2822
- function Wr({ dates: e, colWidth: t, bodyHeight: n, colRange: r, unit: i = "day", step: a = 1, slots: o, slotProps: s }) {
2823
- let c = J(), l = o ?? c.timeline?.gridColumn?.slots, u = s ?? c.timeline?.gridColumn?.slotProps, d = l?.column ?? "div", { calendar: f } = tn(), p = i === "day" || i === "hour" || i === "minute";
2915
+ function Xr({ dates: e, colWidth: t, bodyHeight: n, colRange: r, unit: i = "day", step: a = 1, slots: o, slotProps: s }) {
2916
+ let c = J(), l = o ?? c.timeline?.gridColumn?.slots, u = s ?? c.timeline?.gridColumn?.slotProps, d = l?.column ?? "div", { calendar: f } = on(), p = i === "day" || i === "hour" || i === "minute";
2824
2917
  return /* @__PURE__ */ v("div", {
2825
- className: Ur.cols,
2918
+ className: Yr.cols,
2826
2919
  role: "presentation",
2827
2920
  "aria-hidden": !0,
2828
2921
  children: e.slice(r.start, r.end).map((e, o) => {
@@ -2838,8 +2931,8 @@ function Wr({ dates: e, colWidth: t, bodyHeight: n, colRange: r, unit: i = "day"
2838
2931
  colWidth: t,
2839
2932
  bodyHeight: n
2840
2933
  };
2841
- return /* @__PURE__ */ v(d, { ...Y({
2842
- className: Dn(Ur.col, l && Ur.colWeekend),
2934
+ return /* @__PURE__ */ v(d, { ...X({
2935
+ className: Y(Yr.col, l && Yr.colWeekend),
2843
2936
  style: {
2844
2937
  left: s * t,
2845
2938
  width: t,
@@ -2849,15 +2942,15 @@ function Wr({ dates: e, colWidth: t, bodyHeight: n, colRange: r, unit: i = "day"
2849
2942
  })
2850
2943
  });
2851
2944
  }
2852
- Wr.displayName = "GridColumns";
2853
- var Gr = {
2945
+ Xr.displayName = "GridColumns";
2946
+ var Zr = {
2854
2947
  gridWrapper: "_gridWrapper_1tr84_1",
2855
2948
  grid: "_grid_1tr84_1",
2856
2949
  body: "_body_1tr84_17"
2857
2950
  };
2858
2951
  //#endregion
2859
2952
  //#region src/core/virtualize.ts
2860
- function Kr(e, t, n, r, i = 0) {
2953
+ function Qr(e, t, n, r, i = 0) {
2861
2954
  if (r <= 0) return {
2862
2955
  start: 0,
2863
2956
  end: 0
@@ -2874,8 +2967,8 @@ function Kr(e, t, n, r, i = 0) {
2874
2967
  }
2875
2968
  //#endregion
2876
2969
  //#region src/components/grid/Grid.tsx
2877
- function qr({ slots: e, slotProps: t } = {}) {
2878
- let n = J(), r = e ?? n.timeline?.grid?.slots, i = t ?? n.timeline?.grid?.slotProps, { visibleTasks: a } = on(), { updateTask: s, commitTask: c, onTaskClick: u, setSelectedId: d } = cn(), { colWidth: p, rowHeight: h, scales: g, padDays: _, height: b } = Zt(), x = $t(), { gridRef: S, onGridScroll: C, gridBodyRef: w } = fn(), T = mn(), { dependencies: E, onDependencyDelete: D } = gn(), { zoomAt: O, zoomIn: k, zoomOut: A, wheelEnabled: j, keyboardEnabled: M } = Sn();
2970
+ function $r({ slots: e, slotProps: t } = {}) {
2971
+ let n = J(), r = e ?? n.timeline?.grid?.slots, i = t ?? n.timeline?.grid?.slotProps, { visibleTasks: a } = fn(), { updateTask: s, commitTask: c, onTaskClick: u, setSelectedId: d } = mn(), { colWidth: p, rowHeight: h, scales: g, padDays: _, height: b } = tn(), x = rn(), { gridRef: S, onGridScroll: C, gridBodyRef: w } = vn(), T = bn(), { dependencies: E, onDependencyDelete: D } = Sn(), { zoomAt: O, zoomIn: k, zoomOut: A, wheelEnabled: j, keyboardEnabled: M } = On();
2879
2972
  l(() => {
2880
2973
  let e = S.current;
2881
2974
  if (!e || !j && !M) return;
@@ -2899,10 +2992,10 @@ function qr({ slots: e, slotProps: t } = {}) {
2899
2992
  A,
2900
2993
  a.length
2901
2994
  ]);
2902
- let [N, P] = m({}), F = o((e) => {
2995
+ let [N, ee] = m({}), te = o((e) => {
2903
2996
  d(e.id), u?.(e);
2904
- }, [d, u]), ee = o((e, t) => {
2905
- P((n) => {
2997
+ }, [d, u]), ne = o((e, t) => {
2998
+ ee((n) => {
2906
2999
  if (t === null) {
2907
3000
  let { [e]: t, ...r } = n;
2908
3001
  return r;
@@ -2915,90 +3008,90 @@ function qr({ slots: e, slotProps: t } = {}) {
2915
3008
  }
2916
3009
  };
2917
3010
  });
2918
- }, []), I = f(() => Nt(a, _, g), [
3011
+ }, []), P = f(() => Lt(a, _, g), [
2919
3012
  a,
2920
3013
  _,
2921
3014
  g
2922
- ]), L = I[0]?.getTime(), R = f(() => L == null ? void 0 : new Date(L), [L]);
2923
- if (!R) return null;
2924
- let z = kt(g), B = I.length * p, V = a.length * h, te = (g ?? Ot).length, H = Kr(T.scrollTop, T.clientHeight, h, a.length, 6), ne = Kr(T.scrollLeft, T.clientWidth, p, I.length, 4), re = {
2925
- minX: ne.start * p,
2926
- maxX: ne.end * p,
2927
- minY: H.start * h,
2928
- maxY: H.end * h
2929
- }, ie = r?.root ?? "div", ae = r?.body ?? "div", oe = {
2930
- totalWidth: B,
2931
- bodyHeight: V,
3015
+ ]), F = P[0]?.getTime(), I = f(() => F == null ? void 0 : new Date(F), [F]);
3016
+ if (!I) return null;
3017
+ let L = Nt(g), R = P.length * p, z = a.length * h, re = (g ?? Mt).length, B = Qr(T.scrollTop, T.clientHeight, h, a.length, 6), ie = Qr(T.scrollLeft, T.clientWidth, p, P.length, 4), ae = {
3018
+ minX: ie.start * p,
3019
+ maxX: ie.end * p,
3020
+ minY: B.start * h,
3021
+ maxY: B.end * h
3022
+ }, oe = r?.root ?? "div", se = r?.body ?? "div", ce = {
3023
+ totalWidth: R,
3024
+ bodyHeight: z,
2932
3025
  height: b
2933
- }, se = Y({
2934
- className: Gr.gridWrapper,
3026
+ }, le = X({
3027
+ className: Zr.gridWrapper,
2935
3028
  style: b === void 0 ? {} : { height: b },
2936
3029
  onScroll: C,
2937
3030
  role: "grid",
2938
3031
  "aria-label": x.timeline,
2939
- "aria-rowcount": te + a.length,
2940
- "aria-colcount": I.length
2941
- }, i?.root, oe), ce = Y({
2942
- className: Gr.body,
3032
+ "aria-rowcount": re + a.length,
3033
+ "aria-colcount": P.length
3034
+ }, i?.root, ce), ue = X({
3035
+ className: Zr.body,
2943
3036
  style: {
2944
- height: V,
2945
- width: B
3037
+ height: z,
3038
+ width: R
2946
3039
  },
2947
3040
  role: "rowgroup"
2948
- }, i?.body, oe);
2949
- return /* @__PURE__ */ v(ie, {
3041
+ }, i?.body, ce);
3042
+ return /* @__PURE__ */ v(oe, {
2950
3043
  ref: S,
2951
- ...se,
3044
+ ...le,
2952
3045
  children: /* @__PURE__ */ y("div", {
2953
- className: Gr.grid,
2954
- style: { width: B },
3046
+ className: Zr.grid,
3047
+ style: { width: R },
2955
3048
  role: "presentation",
2956
- children: [/* @__PURE__ */ v(Mn, {
3049
+ children: [/* @__PURE__ */ v(Ln, {
2957
3050
  colWidth: p,
2958
3051
  rowHeight: h,
2959
- dates: I,
3052
+ dates: P,
2960
3053
  scales: g,
2961
- colRange: ne
2962
- }), /* @__PURE__ */ v(jr, {
3054
+ colRange: ie
3055
+ }), /* @__PURE__ */ v(Lr, {
2963
3056
  tasks: a,
2964
3057
  dependencies: E,
2965
- origin: R,
3058
+ origin: I,
2966
3059
  colWidth: p,
2967
3060
  rowHeight: h,
2968
- unit: z,
3061
+ unit: L,
2969
3062
  overrides: N,
2970
- children: /* @__PURE__ */ y(ae, {
3063
+ children: /* @__PURE__ */ y(se, {
2971
3064
  ref: w,
2972
- ...ce,
3065
+ ...ue,
2973
3066
  children: [
2974
- /* @__PURE__ */ v(Wr, {
2975
- dates: I,
3067
+ /* @__PURE__ */ v(Xr, {
3068
+ dates: P,
2976
3069
  colWidth: p,
2977
- bodyHeight: V,
2978
- colRange: ne,
2979
- unit: z,
2980
- step: At(g)
3070
+ bodyHeight: z,
3071
+ colRange: ie,
3072
+ unit: L,
3073
+ step: Pt(g)
2981
3074
  }),
2982
- /* @__PURE__ */ v(Br, {
2983
- width: B,
2984
- height: V,
3075
+ /* @__PURE__ */ v(Kr, {
3076
+ width: R,
3077
+ height: z,
2985
3078
  onDependencyDelete: D,
2986
- visibleRect: re
3079
+ visibleRect: ae
2987
3080
  }),
2988
- /* @__PURE__ */ v(Hr, {}),
2989
- a.slice(H.start, H.end).map((e, t) => /* @__PURE__ */ v(hr, {
3081
+ /* @__PURE__ */ v(Jr, {}),
3082
+ a.slice(B.start, B.end).map((e, t) => /* @__PURE__ */ v(xr, {
2990
3083
  task: e,
2991
- index: H.start + t,
2992
- origin: R,
3084
+ index: B.start + t,
3085
+ origin: I,
2993
3086
  colWidth: p,
2994
3087
  rowHeight: h,
2995
- unit: z,
3088
+ unit: L,
2996
3089
  onUpdate: s,
2997
3090
  onCommit: c,
2998
3091
  override: N[e.id],
2999
- onOverride: ee,
3000
- onTaskClick: F,
3001
- rowIndexOffset: te
3092
+ onOverride: ne,
3093
+ onTaskClick: te,
3094
+ rowIndexOffset: re
3002
3095
  }, e.id))
3003
3096
  ]
3004
3097
  })
@@ -3006,14 +3099,14 @@ function qr({ slots: e, slotProps: t } = {}) {
3006
3099
  })
3007
3100
  });
3008
3101
  }
3009
- qr.displayName = "GanttGrid";
3010
- var Jr = { handle: "_handle_1o220_1" };
3102
+ $r.displayName = "GanttGrid";
3103
+ var ei = { handle: "_handle_1o220_1" };
3011
3104
  //#endregion
3012
3105
  //#region src/components/grid/GridResizeHandle.tsx
3013
- function Yr({ onMouseDown: e, isResizing: t = !1, slots: n, slotProps: r }) {
3014
- let i = J(), a = n ?? i.timeline?.gridResizeHandle?.slots, o = r ?? i.timeline?.gridResizeHandle?.slotProps, s = $t(), c = { isResizing: t };
3015
- return /* @__PURE__ */ v(a?.root ?? "div", { ...Y({
3016
- className: Jr.handle,
3106
+ function ti({ onMouseDown: e, isResizing: t = !1, slots: n, slotProps: r }) {
3107
+ let i = J(), a = n ?? i.timeline?.gridResizeHandle?.slots, o = r ?? i.timeline?.gridResizeHandle?.slotProps, s = rn(), c = { isResizing: t };
3108
+ return /* @__PURE__ */ v(a?.root ?? "div", { ...X({
3109
+ className: ei.handle,
3017
3110
  onMouseDown: e,
3018
3111
  role: "separator",
3019
3112
  "aria-orientation": "vertical",
@@ -3037,10 +3130,10 @@ var $ = {
3037
3130
  };
3038
3131
  //#endregion
3039
3132
  //#region src/components/taskList/TaskListHeader.tsx
3040
- function Xr({ columns: e, rowHeight: t, scales: n = Ot, onResizeStart: r, slots: i, slotProps: a }) {
3133
+ function ni({ columns: e, rowHeight: t, scales: n = Mt, onResizeStart: r, slots: i, slotProps: a }) {
3041
3134
  let o = n.length * t + 2, s = i?.header ?? "div", c = i?.headerCell ?? "div", l = i?.columnResizeHandle ?? "div";
3042
3135
  return /* @__PURE__ */ v(s, {
3043
- ...Y({
3136
+ ...X({
3044
3137
  className: $.header,
3045
3138
  style: {
3046
3139
  minHeight: o,
@@ -3056,7 +3149,7 @@ function Xr({ columns: e, rowHeight: t, scales: n = Ot, onResizeStart: r, slots:
3056
3149
  let n = {
3057
3150
  column: e,
3058
3151
  index: t
3059
- }, i = Y({
3152
+ }, i = X({
3060
3153
  className: $.headerCell,
3061
3154
  style: e.width ? {
3062
3155
  width: e.width,
@@ -3067,7 +3160,7 @@ function Xr({ columns: e, rowHeight: t, scales: n = Ot, onResizeStart: r, slots:
3067
3160
  },
3068
3161
  role: "columnheader",
3069
3162
  "aria-colindex": t + 1
3070
- }, a?.headerCell, n), o = Y({
3163
+ }, a?.headerCell, n), o = X({
3071
3164
  className: $.divider,
3072
3165
  "aria-hidden": !0,
3073
3166
  onMouseDown: (t) => {
@@ -3084,17 +3177,17 @@ function Xr({ columns: e, rowHeight: t, scales: n = Ot, onResizeStart: r, slots:
3084
3177
  }
3085
3178
  //#endregion
3086
3179
  //#region src/components/taskList/TreeCell.tsx
3087
- var Zr = 16;
3088
- function Qr({ taskId: e, depth: t, isParent: n, isExpanded: r, onToggleExpand: i, children: a, slots: o, slotProps: s }) {
3089
- let c = $t(), l = {
3180
+ var ri = 16;
3181
+ function ii({ taskId: e, depth: t, isParent: n, isExpanded: r, onToggleExpand: i, children: a, slots: o, slotProps: s }) {
3182
+ let c = rn(), l = {
3090
3183
  taskId: e,
3091
3184
  depth: t,
3092
3185
  isParent: n,
3093
3186
  isExpanded: r
3094
- }, u = o?.root ?? "span", d = o?.expandButton ?? "button", f = o?.placeholder ?? "span", p = Y({
3187
+ }, u = o?.root ?? "span", d = o?.expandButton ?? "button", f = o?.placeholder ?? "span", p = X({
3095
3188
  className: $.nameContent,
3096
- style: { paddingLeft: t * Zr }
3097
- }, s?.root, l), m = Y({
3189
+ style: { paddingLeft: t * ri }
3190
+ }, s?.root, l), m = X({
3098
3191
  className: $.expandBtn,
3099
3192
  type: "button",
3100
3193
  onClick: (t) => {
@@ -3102,7 +3195,7 @@ function Qr({ taskId: e, depth: t, isParent: n, isExpanded: r, onToggleExpand: i
3102
3195
  },
3103
3196
  "aria-label": r ? c.collapse : c.expand,
3104
3197
  children: r ? "▾" : "▸"
3105
- }, s?.expandButton, l), h = Y({
3198
+ }, s?.expandButton, l), h = X({
3106
3199
  className: $.expandPlaceholder,
3107
3200
  "aria-hidden": !0
3108
3201
  }, s?.placeholder, l);
@@ -3113,8 +3206,8 @@ function Qr({ taskId: e, depth: t, isParent: n, isExpanded: r, onToggleExpand: i
3113
3206
  }
3114
3207
  //#endregion
3115
3208
  //#region src/components/taskList/TaskListRow.tsx
3116
- var $r = 100, ei = i(function({ task: e, rowHeight: t, rowIndex: n, depth: r, posinset: i, setsize: a, isParent: o, isExpanded: s, isSelected: c, onToggleExpand: l, onSelect: u, columns: d, treeCell: f }) {
3117
- let { columnApi: p } = cn();
3209
+ var ai = 100, oi = i(function({ task: e, rowHeight: t, rowIndex: n, depth: r, posinset: i, setsize: a, isParent: o, isExpanded: s, isSelected: c, onToggleExpand: l, onSelect: u, columns: d, treeCell: f }) {
3210
+ let { columnApi: p } = mn();
3118
3211
  return /* @__PURE__ */ v("div", {
3119
3212
  className: `${$.row} ${c ? $.selected : ""}`,
3120
3213
  style: { height: t },
@@ -3129,12 +3222,12 @@ var $r = 100, ei = i(function({ task: e, rowHeight: t, rowIndex: n, depth: r, po
3129
3222
  children: d.map((t, n) => /* @__PURE__ */ v("div", {
3130
3223
  className: `${$.cell} ${t.isTreeColumn ? $.treeCell : ""}`,
3131
3224
  style: {
3132
- width: t.width || $r,
3225
+ width: t.width || ai,
3133
3226
  flexShrink: 0
3134
3227
  },
3135
3228
  role: t.isTreeColumn ? "rowheader" : "gridcell",
3136
3229
  "aria-colindex": n + 1,
3137
- children: t.isTreeColumn ? /* @__PURE__ */ v(Qr, {
3230
+ children: t.isTreeColumn ? /* @__PURE__ */ v(ii, {
3138
3231
  taskId: e.id,
3139
3232
  depth: r,
3140
3233
  isParent: o,
@@ -3147,10 +3240,10 @@ var $r = 100, ei = i(function({ task: e, rowHeight: t, rowIndex: n, depth: r, po
3147
3240
  }, t.key))
3148
3241
  });
3149
3242
  });
3150
- ei.displayName = "TaskListRow";
3243
+ oi.displayName = "TaskListRow";
3151
3244
  //#endregion
3152
3245
  //#region src/hooks/useColumnWidths.ts
3153
- function ti() {
3246
+ function si() {
3154
3247
  let [e, t] = m({}), n = p(null);
3155
3248
  return {
3156
3249
  widths: e,
@@ -3176,12 +3269,12 @@ function ti() {
3176
3269
  }
3177
3270
  //#endregion
3178
3271
  //#region src/components/taskList/TaskList.tsx
3179
- var ni = {
3272
+ var ci = {
3180
3273
  flex: "1 1 auto",
3181
3274
  minHeight: 0
3182
3275
  };
3183
- function ri({ columns: e = [], taskList: t }) {
3184
- let { visibleTasks: n, expandedIds: r, parentIds: i } = on(), { toggleExpand: a, setSelectedId: s, onTaskClick: c, revealTask: l } = cn(), u = un(), { rowHeight: d, scales: p, height: m } = Zt(), h = $t(), { taskListRef: g, onTaskListScroll: _ } = fn(), { widths: b, onResizeStart: x } = ti(), S = f(() => e.map((e) => b[e.key] == null ? e : {
3276
+ function li({ columns: e = [], taskList: t }) {
3277
+ let { visibleTasks: n, expandedIds: r, parentIds: i } = fn(), { toggleExpand: a, setSelectedId: s, onTaskClick: c, revealTask: l } = mn(), u = gn(), { rowHeight: d, scales: p, height: m } = tn(), h = rn(), { taskListRef: g, onTaskListScroll: _ } = vn(), { widths: b, onResizeStart: x } = si(), S = f(() => e.map((e) => b[e.key] == null ? e : {
3185
3278
  ...e,
3186
3279
  width: b[e.key]
3187
3280
  }), [e, b]), C = q((e) => {
@@ -3212,9 +3305,9 @@ function ri({ columns: e = [], taskList: t }) {
3212
3305
  n.setsize = e.get(r.parentId ?? null) ?? 1;
3213
3306
  }
3214
3307
  return t;
3215
- }, [n]), { viewport: D, scheduleMeasure: O } = St(g, { trackHorizontal: !1 }), k = o(() => {
3308
+ }, [n]), { viewport: D, scheduleMeasure: O } = Et(g, { trackHorizontal: !1 }), k = o(() => {
3216
3309
  _(), O();
3217
- }, [_, O]), A = Kr(D.scrollTop, D.clientHeight, d, n.length, 6);
3310
+ }, [_, O]), A = Qr(D.scrollTop, D.clientHeight, d, n.length, 6);
3218
3311
  return /* @__PURE__ */ y("div", {
3219
3312
  className: $.taskList,
3220
3313
  style: { height: m },
@@ -3222,7 +3315,7 @@ function ri({ columns: e = [], taskList: t }) {
3222
3315
  "aria-label": h.taskList,
3223
3316
  "aria-rowcount": n.length + 1,
3224
3317
  "aria-colcount": S.length,
3225
- children: [/* @__PURE__ */ v(Xr, {
3318
+ children: [/* @__PURE__ */ v(ni, {
3226
3319
  columns: S,
3227
3320
  rowHeight: d,
3228
3321
  scales: p,
@@ -3232,7 +3325,7 @@ function ri({ columns: e = [], taskList: t }) {
3232
3325
  }), /* @__PURE__ */ v("div", {
3233
3326
  ref: g,
3234
3327
  className: $.body,
3235
- style: ni,
3328
+ style: ci,
3236
3329
  onScroll: k,
3237
3330
  role: "presentation",
3238
3331
  children: /* @__PURE__ */ y("div", {
@@ -3246,7 +3339,7 @@ function ri({ columns: e = [], taskList: t }) {
3246
3339
  }),
3247
3340
  Array.from({ length: A.end - A.start }, (e, o) => {
3248
3341
  let s = A.start + o, c = n[s], l = E.get(c.id);
3249
- return /* @__PURE__ */ v(ei, {
3342
+ return /* @__PURE__ */ v(oi, {
3250
3343
  task: c,
3251
3344
  rowHeight: d,
3252
3345
  rowIndex: s,
@@ -3274,7 +3367,7 @@ function ri({ columns: e = [], taskList: t }) {
3274
3367
  }
3275
3368
  //#endregion
3276
3369
  //#region src/hooks/useGridResize.ts
3277
- function ii(e, t) {
3370
+ function ui(e, t) {
3278
3371
  let [n, r] = m(void 0), i = p(null);
3279
3372
  return {
3280
3373
  gridWidth: n,
@@ -3298,10 +3391,10 @@ function ii(e, t) {
3298
3391
  }, [e, t])
3299
3392
  };
3300
3393
  }
3301
- var ai = { actionsCell: "_actionsCell_1gvtx_1" };
3394
+ var di = { actionsCell: "_actionsCell_1gvtx_1" };
3302
3395
  //#endregion
3303
3396
  //#region src/components/taskList/ActionsCell.tsx
3304
- function oi(e) {
3397
+ function fi(e) {
3305
3398
  let t = j(e.startDate, 1);
3306
3399
  return {
3307
3400
  id: `task-${Date.now()}`,
@@ -3314,9 +3407,9 @@ function oi(e) {
3314
3407
  parentId: e.parentId ?? null
3315
3408
  };
3316
3409
  }
3317
- function si({ task: e, api: t }) {
3410
+ function pi({ task: e, api: t }) {
3318
3411
  return /* @__PURE__ */ y("div", {
3319
- className: ai.actionsCell,
3412
+ className: di.actionsCell,
3320
3413
  children: [
3321
3414
  /* @__PURE__ */ v("button", {
3322
3415
  type: "button",
@@ -3336,7 +3429,7 @@ function si({ task: e, api: t }) {
3336
3429
  "aria-label": t.labels.addTaskAfter(e),
3337
3430
  onClick: (n) => {
3338
3431
  n.stopPropagation();
3339
- let r = oi(e);
3432
+ let r = fi(e);
3340
3433
  t.createTask(r, e.id), t.editTask(r);
3341
3434
  },
3342
3435
  children: /* @__PURE__ */ v("span", {
@@ -3362,12 +3455,12 @@ function si({ task: e, api: t }) {
3362
3455
  }
3363
3456
  //#endregion
3364
3457
  //#region src/components/taskList/defaultColumns.tsx
3365
- var ci = "__action", li = [
3458
+ var mi = "__action", hi = [
3366
3459
  {
3367
- key: ci,
3460
+ key: mi,
3368
3461
  header: " ",
3369
3462
  width: 100,
3370
- render: (e, t) => /* @__PURE__ */ v(si, {
3463
+ render: (e, t) => /* @__PURE__ */ v(pi, {
3371
3464
  task: e,
3372
3465
  api: t
3373
3466
  })
@@ -3397,12 +3490,12 @@ var ci = "__action", li = [
3397
3490
  width: 90,
3398
3491
  render: (e) => `${e.progress ?? 0}%`
3399
3492
  }
3400
- ], ui = li.filter((e) => e.key !== ci);
3493
+ ], gi = hi.filter((e) => e.key !== mi);
3401
3494
  //#endregion
3402
3495
  //#region src/Gantt.tsx
3403
- function di({ tasks: e, dependencies: t, rowHeight: n, colWidth: r, height: i, scales: a, padDays: o, zoomLevels: s, defaultZoomIndex: c, onZoomChange: l, zoomWheel: u, zoomKeyboard: d, onTaskClick: m, columns: h, defaultTaskListWidth: g = 280, onDependencyCreate: _, onDependencyDelete: b, onTaskCreate: x, onTaskDelete: S, onTaskEdit: C, onTasksChange: w, calendar: T, snapToWorking: E, durationUnit: D, readOnly: O = !1, apiRef: k, hideTaskList: A, taskList: j, bars: M, dependencySlots: N, timeline: P, labels: F }) {
3404
- let ee = p(null), I = p(null), { gridWidth: L, onHandleMouseDown: R } = ii(ee, I), z = h ?? (O ? ui : li), B = !A;
3405
- return /* @__PURE__ */ v(Cn, {
3496
+ function _i({ tasks: e, dependencies: t, rowHeight: n, colWidth: r, height: i, scales: a, padDays: o, zoomLevels: s, defaultZoomIndex: c, onZoomChange: l, zoomWheel: u, zoomKeyboard: d, onTaskClick: m, columns: h, defaultTaskListWidth: g = 280, onDependencyCreate: _, onDependencyDelete: b, onTaskCreate: x, onTaskDelete: S, onTaskEdit: C, onTasksChange: w, calendar: T, snapToWorking: E, durationUnit: D, readOnly: O = !1, criticalPath: k, apiRef: A, hideTaskList: j, taskList: M, bars: N, dependencySlots: ee, timeline: te, labels: ne }) {
3497
+ let P = p(null), F = p(null), { gridWidth: I, onHandleMouseDown: L } = ui(P, F), R = h ?? (O ? gi : hi), z = !j;
3498
+ return /* @__PURE__ */ v(kn, {
3406
3499
  tasks: e,
3407
3500
  dependencies: t,
3408
3501
  rowHeight: n,
@@ -3422,32 +3515,33 @@ function di({ tasks: e, dependencies: t, rowHeight: n, colWidth: r, height: i, s
3422
3515
  onTaskDelete: S,
3423
3516
  onTaskEdit: C,
3424
3517
  onTasksChange: w,
3425
- apiRef: k,
3426
- labels: F,
3518
+ apiRef: A,
3519
+ labels: ne,
3427
3520
  calendar: T,
3428
3521
  snapToWorking: E,
3429
3522
  durationUnit: D,
3430
3523
  readOnly: O,
3431
- children: /* @__PURE__ */ v(Tn, {
3524
+ criticalPath: k,
3525
+ children: /* @__PURE__ */ v(jn, {
3432
3526
  value: f(() => ({
3433
- bars: M,
3434
- dependencies: N,
3435
- timeline: P
3527
+ bars: N,
3528
+ dependencies: ee,
3529
+ timeline: te
3436
3530
  }), [
3437
- M,
3438
3531
  N,
3439
- P
3532
+ ee,
3533
+ te
3440
3534
  ]),
3441
- children: B ? /* @__PURE__ */ y("div", {
3442
- ref: ee,
3535
+ children: z ? /* @__PURE__ */ y("div", {
3536
+ ref: P,
3443
3537
  role: "group",
3444
- "aria-label": F?.gantt ?? Ie.gantt,
3538
+ "aria-label": ne?.gantt ?? Ie.gantt,
3445
3539
  style: { position: "relative" },
3446
- children: [/* @__PURE__ */ v(ri, {
3447
- columns: z,
3448
- taskList: j
3540
+ children: [/* @__PURE__ */ v(li, {
3541
+ columns: R,
3542
+ taskList: M
3449
3543
  }), /* @__PURE__ */ y("div", {
3450
- ref: I,
3544
+ ref: F,
3451
3545
  style: {
3452
3546
  position: "absolute",
3453
3547
  top: 0,
@@ -3456,21 +3550,21 @@ function di({ tasks: e, dependencies: t, rowHeight: n, colWidth: r, height: i, s
3456
3550
  display: "flex",
3457
3551
  flexDirection: "row",
3458
3552
  background: "var(--am-gantt-grid-bg, #ffffff)",
3459
- ...L === void 0 ? { left: g } : { width: L }
3553
+ ...I === void 0 ? { left: g } : { width: I }
3460
3554
  },
3461
- children: [/* @__PURE__ */ v(Yr, { onMouseDown: R }), /* @__PURE__ */ v("div", {
3555
+ children: [/* @__PURE__ */ v(ti, { onMouseDown: L }), /* @__PURE__ */ v("div", {
3462
3556
  style: {
3463
3557
  flex: "1 1 auto",
3464
3558
  minWidth: 0
3465
3559
  },
3466
- children: /* @__PURE__ */ v(qr, {})
3560
+ children: /* @__PURE__ */ v($r, {})
3467
3561
  })]
3468
3562
  })]
3469
- }) : /* @__PURE__ */ v(qr, {})
3563
+ }) : /* @__PURE__ */ v($r, {})
3470
3564
  })
3471
3565
  });
3472
3566
  }
3473
3567
  //#endregion
3474
- export { ci as ACTION_COLUMN_KEY, Hn as BarTooltipRoot, Yn as BarTooltipTrigger, Mn as Calendar, li as DEFAULT_COLUMNS, Wt as DEFAULT_ZOOM_INDEX, Ut as DEFAULT_ZOOM_LEVELS, di as Gantt, Qn as GanttBarTooltip, qr as GanttGrid, Cn as GanttProvider, Tn as GanttSlotsProvider, nr as MilestoneBar, sr as ProjectBar, ui as READ_ONLY_COLUMNS, ur as TaskBar, ri as TaskList, Me as displayEndDate, Ne as endInstantFromDisplayDate, Y as mergeSlotProps, Vn as useBarTooltip, rn as useGanttReadOnly, J as useGanttSlots };
3568
+ export { mi as ACTION_COLUMN_KEY, Jn as BarTooltipRoot, tr as BarTooltipTrigger, Ln as Calendar, hi as DEFAULT_COLUMNS, Jt as DEFAULT_ZOOM_INDEX, qt as DEFAULT_ZOOM_LEVELS, _i as Gantt, ir as GanttBarTooltip, $r as GanttGrid, kn as GanttProvider, jn as GanttSlotsProvider, cr as MilestoneBar, pr as ProjectBar, gi as READ_ONLY_COLUMNS, gr as TaskBar, li as TaskList, Me as displayEndDate, Ne as endInstantFromDisplayDate, X as mergeSlotProps, qn as useBarTooltip, cn as useGanttReadOnly, J as useGanttSlots };
3475
3569
 
3476
3570
  //# sourceMappingURL=index.mjs.map