@art-tools/react-gantt 0.2.0 → 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,34 +1882,84 @@ 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
1905
+ //#region src/components/bars/barTooltip/useTooltipPosition.ts
1906
+ var Yn = 12, Xn = 8, Zn = null;
1907
+ function Qn(e, t) {
1908
+ Zn = {
1909
+ x: e,
1910
+ y: t
1911
+ };
1912
+ }
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);
1916
+ }
1917
+ var er = (e, t) => {
1918
+ let n = s(_n)?.gridRef, [r, i] = m({
1919
+ left: -9999,
1920
+ top: -9999
1921
+ }), a = c(r);
1922
+ return St(() => {
1923
+ if (!t) return;
1924
+ let r = (t, r) => {
1925
+ let a = n?.current?.getBoundingClientRect(), o = a && a.width > 0 && a.height > 0 ? {
1926
+ left: a.left,
1927
+ top: a.top,
1928
+ right: a.right,
1929
+ bottom: a.bottom
1930
+ } : {
1931
+ left: 0,
1932
+ top: 0,
1933
+ right: window.innerWidth,
1934
+ bottom: window.innerHeight
1935
+ };
1936
+ if (t < o.left || t > o.right || r < o.top || r > o.bottom) return;
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);
1938
+ i((e) => e.left === u && e.top === d ? e : {
1939
+ left: u,
1940
+ top: d
1941
+ });
1942
+ };
1943
+ Zn && r(Zn.x, Zn.y);
1944
+ let a = (e) => r(e.clientX, e.clientY);
1945
+ return window.addEventListener("mousemove", a), () => {
1946
+ window.removeEventListener("mousemove", a);
1947
+ };
1948
+ }, [
1949
+ e,
1950
+ n,
1951
+ t
1952
+ ]), a;
1953
+ };
1954
+ //#endregion
1826
1955
  //#region src/components/bars/barTooltip/BarTooltipTrigger.tsx
1827
- function Un({ children: e }) {
1828
- 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;
1829
1958
  if (l(() => {
1830
1959
  if (!i || !a) return;
1831
1960
  let e = () => a(!1), t = (e) => {
1832
- let t = o?.current?.getBoundingClientRect();
1833
- !t || t.width === 0 || t.height === 0 || e.clientX >= t.left && e.clientX <= t.right && e.clientY >= t.top && e.clientY <= t.bottom || a(!1);
1961
+ let t = o?.current, n = e.target;
1962
+ !t || !(n instanceof Node) || t.contains(n) || a(!1);
1834
1963
  };
1835
1964
  return document.addEventListener("scroll", e, {
1836
1965
  capture: !0,
@@ -1846,7 +1975,7 @@ function Un({ children: e }) {
1846
1975
  let { onMouseEnter: s, onMouseLeave: c } = e.props;
1847
1976
  return t(e, {
1848
1977
  onMouseEnter: (e) => {
1849
- s?.(e), a(!0);
1978
+ s?.(e), Qn(e.clientX, e.clientY), a(!0);
1850
1979
  },
1851
1980
  onMouseLeave: (e) => {
1852
1981
  c?.(e), a(!1);
@@ -1854,62 +1983,20 @@ function Un({ children: e }) {
1854
1983
  });
1855
1984
  }
1856
1985
  //#endregion
1857
- //#region src/components/bars/barTooltip/useTooltipPosition.ts
1858
- var Wn = 12, Gn = 8;
1859
- function Kn(e, t, n, r) {
1860
- let i = e + Wn, a = i + t <= r - Gn;
1861
- return Math.max(a ? i : e - Wn - t, n + Gn);
1862
- }
1863
- var qn = (e, t) => {
1864
- let n = s(dn)?.gridRef, [r, i] = m({
1865
- left: -9999,
1866
- top: -9999
1867
- }), a = c(r);
1868
- return l(() => {
1869
- if (!t) return;
1870
- let r = (t) => {
1871
- let { clientX: r, clientY: a } = t, o = n?.current?.getBoundingClientRect(), s = o && o.width > 0 && o.height > 0 ? {
1872
- left: o.left,
1873
- top: o.top,
1874
- right: o.right,
1875
- bottom: o.bottom
1876
- } : {
1877
- left: 0,
1878
- top: 0,
1879
- right: window.innerWidth,
1880
- bottom: window.innerHeight
1881
- };
1882
- if (r < s.left || r > s.right || a < s.top || a > s.bottom) return;
1883
- let c = e.current?.getBoundingClientRect(), l = c?.width ?? 0, u = c?.height ?? 0, d = Kn(r, l, s.left, s.right), f = Kn(a, u, s.top, s.bottom);
1884
- i((e) => e.left === d && e.top === f ? e : {
1885
- left: d,
1886
- top: f
1887
- });
1888
- };
1889
- return window.addEventListener("mousemove", r), () => {
1890
- window.removeEventListener("mousemove", r);
1891
- };
1892
- }, [
1893
- e,
1894
- n,
1895
- t
1896
- ]), a;
1897
- };
1898
- //#endregion
1899
1986
  //#region src/components/bars/barTooltip/BarTooltip.tsx
1900
- function Jn(e) {
1987
+ function nr(e) {
1901
1988
  return e ? e.toLocaleDateString(void 0, {
1902
1989
  year: "numeric",
1903
1990
  month: "short",
1904
1991
  day: "numeric"
1905
1992
  }) : "—";
1906
1993
  }
1907
- function Yn({ task: e, progress: t, displayEnd: n, className: r, style: i, ...a }) {
1908
- let o = p(null), s = Vn()?.open ?? !1, c = qn(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);
1909
1996
  return !s || typeof document > "u" ? null : h(/* @__PURE__ */ y("div", {
1910
1997
  role: "tooltip",
1911
1998
  ref: o,
1912
- className: r ? `${X.tooltip} ${r}` : X.tooltip,
1999
+ className: r ? `${Gn.tooltip} ${r}` : Gn.tooltip,
1913
2000
  style: {
1914
2001
  ...i,
1915
2002
  ...c
@@ -1917,37 +2004,37 @@ function Yn({ task: e, progress: t, displayEnd: n, className: r, style: i, ...a
1917
2004
  ...a,
1918
2005
  children: [
1919
2006
  /* @__PURE__ */ v("div", {
1920
- className: X.name,
2007
+ className: Gn.name,
1921
2008
  children: e.name
1922
2009
  }),
1923
2010
  /* @__PURE__ */ y("div", {
1924
- className: X.row,
2011
+ className: Gn.row,
1925
2012
  children: [/* @__PURE__ */ v("span", {
1926
- className: X.label,
2013
+ className: Gn.label,
1927
2014
  children: "Start"
1928
- }), /* @__PURE__ */ v("span", { children: Jn(e.startDate) })]
2015
+ }), /* @__PURE__ */ v("span", { children: nr(e.startDate) })]
1929
2016
  }),
1930
2017
  /* @__PURE__ */ y("div", {
1931
- className: X.row,
2018
+ className: Gn.row,
1932
2019
  children: [/* @__PURE__ */ v("span", {
1933
- className: X.label,
2020
+ className: Gn.label,
1934
2021
  children: "End"
1935
- }), /* @__PURE__ */ v("span", { children: Jn(n) })]
2022
+ }), /* @__PURE__ */ v("span", { children: nr(n) })]
1936
2023
  }),
1937
2024
  /* @__PURE__ */ y("div", {
1938
- className: X.row,
2025
+ className: Gn.row,
1939
2026
  children: [/* @__PURE__ */ v("span", {
1940
- className: X.label,
2027
+ className: Gn.label,
1941
2028
  children: "Progress"
1942
2029
  }), /* @__PURE__ */ y("span", { children: [Math.round(t), "%"] })]
1943
2030
  })
1944
2031
  ]
1945
2032
  }), document.body);
1946
2033
  }
1947
- function Xn({ task: e, progress: t, displayEnd: n, anchorRef: r, className: i, style: a, children: o, ...s }) {
1948
- 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, {
1949
2036
  anchorRef: r,
1950
- children: [/* @__PURE__ */ v(Un, { children: o }), /* @__PURE__ */ v(Yn, {
2037
+ children: [/* @__PURE__ */ v(tr, { children: o }), /* @__PURE__ */ v(rr, {
1951
2038
  task: e,
1952
2039
  progress: t,
1953
2040
  displayEnd: n,
@@ -1959,10 +2046,10 @@ function Xn({ task: e, progress: t, displayEnd: n, anchorRef: r, className: i, s
1959
2046
  }
1960
2047
  //#endregion
1961
2048
  //#region src/components/bars/barTooltip/BarTooltipConsumer.tsx
1962
- function Zn({ children: e, tooltip: t, anchorRef: n }) {
2049
+ function ar({ children: e, tooltip: t, anchorRef: n }) {
1963
2050
  let r = J().bars?.tooltip, i = r?.slots?.tooltip;
1964
2051
  return !i || !t ? e : /* @__PURE__ */ v(i, {
1965
- ...Y({}, r?.slotProps?.tooltip, t),
2052
+ ...X({}, r?.slotProps?.tooltip, t),
1966
2053
  anchorRef: n,
1967
2054
  ...t,
1968
2055
  children: e
@@ -1970,8 +2057,8 @@ function Zn({ children: e, tooltip: t, anchorRef: n }) {
1970
2057
  }
1971
2058
  //#endregion
1972
2059
  //#region src/components/bars/common/DraggableBar.tsx
1973
- function Qn({ 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 }) {
1974
- 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({
1975
2062
  onStart: () => ({ start: a }),
1976
2063
  onDrag: (e, { start: t }) => l?.(t + e),
1977
2064
  onEnd: (e, { start: t }) => {
@@ -1980,7 +2067,7 @@ function Qn({ left: e, top: t, width: n, height: r, colWidth: i, dragAnchor: a,
1980
2067
  },
1981
2068
  autoScroll: !0
1982
2069
  }), x = !!(l || u);
1983
- return /* @__PURE__ */ v(Zn, {
2070
+ return /* @__PURE__ */ v(ar, {
1984
2071
  tooltip: d,
1985
2072
  anchorRef: _,
1986
2073
  children: /* @__PURE__ */ v("div", {
@@ -2003,25 +2090,27 @@ function Qn({ left: e, top: t, width: n, height: r, colWidth: i, dragAnchor: a,
2003
2090
  })
2004
2091
  });
2005
2092
  }
2006
- var $n = {
2007
- milestone: "_milestone_o4jql_1",
2008
- milestoneShape: "_milestoneShape_o4jql_5"
2093
+ var sr = {
2094
+ milestone: "_milestone_unh27_1",
2095
+ milestoneShape: "_milestoneShape_unh27_5",
2096
+ critical: "_critical_unh27_12"
2009
2097
  };
2010
2098
  //#endregion
2011
2099
  //#region src/components/bars/milestoneBar/MilestoneBar.tsx
2012
- function er({ size: e, centerLeft: t, top: n, colWidth: r, title: i, a11y: a, onMove: o, onMoveEnd: s, tooltip: c, slots: l, slotProps: u }) {
2013
- 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 = {
2014
2102
  size: e,
2015
- title: i
2016
- }, h = f?.root ?? Qn, g = f?.shape ?? "div", _ = Y({
2017
- className: $n.milestone,
2103
+ title: i,
2104
+ isCritical: l
2105
+ }, g = p?.root ?? or, _ = p?.shape ?? "div", y = X({
2106
+ className: sr.milestone,
2018
2107
  ...a,
2019
2108
  title: a ? a.title : i
2020
- }, p?.root, m), y = Y({
2021
- className: $n.milestoneShape,
2109
+ }, m?.root, h), b = X({
2110
+ className: Y(sr.milestoneShape, l && sr.critical),
2022
2111
  "aria-hidden": !0
2023
- }, p?.shape, m);
2024
- return /* @__PURE__ */ v(h, {
2112
+ }, m?.shape, h);
2113
+ return /* @__PURE__ */ v(g, {
2025
2114
  tooltip: c,
2026
2115
  left: t - e / 2,
2027
2116
  top: n,
@@ -2031,18 +2120,18 @@ function er({ size: e, centerLeft: t, top: n, colWidth: r, title: i, a11y: a, on
2031
2120
  dragAnchor: t,
2032
2121
  onMove: o,
2033
2122
  onMoveEnd: s,
2034
- ..._,
2035
- children: /* @__PURE__ */ v(g, { ...y })
2123
+ ...y,
2124
+ children: /* @__PURE__ */ v(_, { ...b })
2036
2125
  });
2037
2126
  }
2038
- var tr = {
2127
+ var lr = {
2039
2128
  barProgress: "_barProgress_1obm3_1",
2040
2129
  barProgressResizeHandle: "_barProgressResizeHandle_1obm3_10"
2041
2130
  };
2042
2131
  //#endregion
2043
2132
  //#region src/components/bars/progress/BarProgressResizeHandle.tsx
2044
- function nr({ width: e, onResize: t, onResizeEnd: n, parentWidth: r, slots: i, slotProps: a }) {
2045
- 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({
2046
2135
  onStart: () => ({ startWidth: e }),
2047
2136
  onDrag: (e, { startWidth: n }) => t(l(e, n)),
2048
2137
  onEnd: (e, { startWidth: t }) => n?.(l(e, t))
@@ -2050,8 +2139,8 @@ function nr({ width: e, onResize: t, onResizeEnd: n, parentWidth: r, slots: i, s
2050
2139
  width: e,
2051
2140
  parentWidth: r
2052
2141
  };
2053
- return /* @__PURE__ */ v(s?.root ?? "div", { ...Y({
2054
- className: tr.barProgressResizeHandle,
2142
+ return /* @__PURE__ */ v(s?.root ?? "div", { ...X({
2143
+ className: lr.barProgressResizeHandle,
2055
2144
  "aria-hidden": !0,
2056
2145
  tabIndex: -1,
2057
2146
  onMouseDown: u
@@ -2059,21 +2148,21 @@ function nr({ width: e, onResize: t, onResizeEnd: n, parentWidth: r, slots: i, s
2059
2148
  }
2060
2149
  //#endregion
2061
2150
  //#region src/components/bars/progress/BarProgress.tsx
2062
- function rr({ 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 }) {
2063
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 = {
2064
2153
  progress: e,
2065
2154
  width: u,
2066
2155
  height: n
2067
2156
  };
2068
2157
  return /* @__PURE__ */ v(c?.root ?? "div", {
2069
- ...Y({
2070
- className: tr.barProgress,
2158
+ ...X({
2159
+ className: lr.barProgress,
2071
2160
  style: {
2072
2161
  width: u,
2073
2162
  height: n
2074
2163
  }
2075
2164
  }, l?.root, f),
2076
- children: r && /* @__PURE__ */ v(nr, {
2165
+ children: r && /* @__PURE__ */ v(ur, {
2077
2166
  width: u,
2078
2167
  parentWidth: t,
2079
2168
  onResize: (e) => r(d(e)),
@@ -2081,31 +2170,33 @@ function rr({ progress: e, width: t, height: n, onProgressChange: r, onProgressE
2081
2170
  })
2082
2171
  });
2083
2172
  }
2084
- var ir = {
2085
- project: "_project_927ph_1",
2086
- projectInner: "_projectInner_927ph_10",
2087
- 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"
2088
2178
  };
2089
2179
  //#endregion
2090
2180
  //#region src/components/bars/projectBar/ProjectBar.tsx
2091
- function ar({ 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 }) {
2092
- 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 = {
2093
2183
  width: e,
2094
2184
  height: t,
2095
2185
  progress: s,
2096
- title: a
2097
- }, x = g?.root ?? Qn, S = g?.inner ?? "div", C = g?.label ?? "div", w = Y({
2098
- className: ir.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),
2099
2190
  style: { lineHeight: `${t}px` },
2100
2191
  ...o
2101
- }, _?.root, b), T = Y({
2102
- className: ir.projectInner,
2192
+ }, b?.root, x), E = X({
2193
+ className: fr.projectInner,
2103
2194
  "aria-hidden": !0
2104
- }, _?.inner, b), E = Y({
2105
- className: ir.projectContent,
2195
+ }, b?.inner, x), D = X({
2196
+ className: fr.projectContent,
2106
2197
  children: a
2107
- }, _?.label, b);
2108
- return /* @__PURE__ */ v(x, {
2198
+ }, b?.label, x);
2199
+ return /* @__PURE__ */ v(S, {
2109
2200
  tooltip: f,
2110
2201
  left: n,
2111
2202
  top: r,
@@ -2115,31 +2206,32 @@ function ar({ width: e, height: t, left: n, top: r, colWidth: i, title: a, a11y:
2115
2206
  dragAnchor: n,
2116
2207
  onMove: u,
2117
2208
  onMoveEnd: d,
2118
- ...w,
2119
- children: /* @__PURE__ */ y(S, {
2120
- ...T,
2121
- children: [/* @__PURE__ */ v(rr, {
2209
+ ...T,
2210
+ children: /* @__PURE__ */ y(C, {
2211
+ ...E,
2212
+ children: [/* @__PURE__ */ v(dr, {
2122
2213
  width: e,
2123
2214
  height: t,
2124
2215
  progress: s,
2125
2216
  onProgressChange: c,
2126
2217
  onProgressEnd: l
2127
- }), /* @__PURE__ */ v(C, { ...E })]
2218
+ }), /* @__PURE__ */ v(w, { ...D })]
2128
2219
  })
2129
2220
  });
2130
2221
  }
2131
- var or = {
2132
- task: "_task_18g5p_1",
2133
- taskInner: "_taskInner_18g5p_9",
2134
- taskContent: "_taskContent_18g5p_15",
2135
- resizer: "_resizer_18g5p_28",
2136
- startResizer: "_startResizer_18g5p_59",
2137
- 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"
2138
2230
  };
2139
2231
  //#endregion
2140
2232
  //#region src/components/bars/taskBar/TaskResizer.tsx
2141
- function sr({ width: e, left: t, colWidth: n, onResize: r, onResizeEnd: i, slots: a, slotProps: o }) {
2142
- 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({
2143
2235
  onStart: () => ({
2144
2236
  startWidth: e,
2145
2237
  startLeft: t
@@ -2152,7 +2244,7 @@ function sr({ width: e, left: t, colWidth: n, onResize: r, onResizeEnd: i, slots
2152
2244
  let a = r + Math.min(e, t);
2153
2245
  i("start", Math.round(a / n) * n);
2154
2246
  }
2155
- }), d = zn({
2247
+ }), d = Wn({
2156
2248
  onStart: () => ({
2157
2249
  startWidth: e,
2158
2250
  startLeft: t
@@ -2167,42 +2259,43 @@ function sr({ width: e, left: t, colWidth: n, onResize: r, onResizeEnd: i, slots
2167
2259
  }), f = {
2168
2260
  width: e,
2169
2261
  left: t
2170
- }, p = c?.startHandle ?? "button", m = c?.endHandle ?? "button", h = Y({
2262
+ }, p = c?.startHandle ?? "button", m = c?.endHandle ?? "button", h = X({
2171
2263
  type: "button",
2172
2264
  "aria-hidden": !0,
2173
2265
  tabIndex: -1,
2174
- className: Dn(or.resizer, or.startResizer),
2266
+ className: Y(mr.resizer, mr.startResizer),
2175
2267
  onMouseDown: u
2176
- }, l?.startHandle, f), g = Y({
2268
+ }, l?.startHandle, f), g = X({
2177
2269
  type: "button",
2178
2270
  "aria-hidden": !0,
2179
2271
  tabIndex: -1,
2180
- className: Dn(or.resizer, or.endResizer),
2272
+ className: Y(mr.resizer, mr.endResizer),
2181
2273
  onMouseDown: d
2182
2274
  }, l?.endHandle, f);
2183
2275
  return /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v(p, { ...h }), /* @__PURE__ */ v(m, { ...g })] });
2184
2276
  }
2185
2277
  //#endregion
2186
2278
  //#region src/components/bars/taskBar/TaskBar.tsx
2187
- function cr({ 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 }) {
2188
- 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 = {
2189
2281
  width: e,
2190
2282
  height: t,
2191
2283
  progress: s,
2192
- title: a
2193
- }, C = b?.root ?? Qn, w = b?.inner ?? "div", T = b?.label ?? "div", E = Y({
2194
- className: `${or.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"]),
2195
2288
  style: { lineHeight: `${t}px` },
2196
2289
  ...o
2197
- }, x?.root, S), D = Y({
2198
- className: or.taskInner,
2290
+ }, S?.root, C), O = X({
2291
+ className: mr.taskInner,
2199
2292
  "aria-hidden": !0
2200
- }, x?.inner, S), O = Y({
2201
- className: or.taskContent,
2293
+ }, S?.inner, C), k = X({
2294
+ className: mr.taskContent,
2202
2295
  title: o?.title,
2203
2296
  children: a
2204
- }, x?.label, S);
2205
- return /* @__PURE__ */ v(C, {
2297
+ }, S?.label, C);
2298
+ return /* @__PURE__ */ v(w, {
2206
2299
  tooltip: m,
2207
2300
  left: n,
2208
2301
  top: r,
@@ -2212,19 +2305,19 @@ function cr({ width: e, height: t, left: n, top: r, colWidth: i, title: a, a11y:
2212
2305
  dragAnchor: n,
2213
2306
  onMove: f,
2214
2307
  onMoveEnd: p,
2215
- ...E,
2216
- children: /* @__PURE__ */ y(w, {
2217
- ...D,
2308
+ ...D,
2309
+ children: /* @__PURE__ */ y(T, {
2310
+ ...O,
2218
2311
  children: [
2219
- /* @__PURE__ */ v(rr, {
2312
+ /* @__PURE__ */ v(dr, {
2220
2313
  width: e,
2221
2314
  height: t,
2222
2315
  progress: s,
2223
2316
  onProgressChange: c,
2224
2317
  onProgressEnd: l
2225
2318
  }),
2226
- /* @__PURE__ */ v(T, { ...O }),
2227
- u && d && /* @__PURE__ */ v(sr, {
2319
+ /* @__PURE__ */ v(E, { ...k }),
2320
+ u && d && /* @__PURE__ */ v(hr, {
2228
2321
  width: e,
2229
2322
  left: n,
2230
2323
  colWidth: i,
@@ -2235,12 +2328,12 @@ function cr({ width: e, height: t, left: n, top: r, colWidth: i, title: a, a11y:
2235
2328
  })
2236
2329
  });
2237
2330
  }
2238
- var lr = {
2331
+ var _r = {
2239
2332
  handle: "_handle_fw6gu_1",
2240
2333
  visible: "_visible_fw6gu_18"
2241
- }, ur = 10 / 2;
2242
- function dr({ taskId: e, barLeft: t, barWidth: n, barCenterY: r, show: i, slots: a, slotProps: o }) {
2243
- 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) => {
2244
2337
  let n = p.current?.getBoundingClientRect();
2245
2338
  if (!n) return {
2246
2339
  x: 0,
@@ -2271,140 +2364,143 @@ function dr({ taskId: e, barLeft: t, barWidth: n, barCenterY: r, show: i, slots:
2271
2364
  barCenterY: r,
2272
2365
  show: i,
2273
2366
  isDragging: f
2274
- }, 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({
2275
2368
  "aria-hidden": !0,
2276
2369
  tabIndex: -1,
2277
- className: Dn(lr.handle, C && lr.visible),
2370
+ className: Y(_r.handle, C && _r.visible),
2278
2371
  style: {
2279
2372
  left: t - 10,
2280
- top: r - ur
2373
+ top: r - vr
2281
2374
  },
2282
2375
  onMouseDown: (e) => h(e, "start"),
2283
2376
  onMouseUp: (e) => g(e, "start")
2284
- }, l?.startHandle, b), T = Y({
2377
+ }, l?.startHandle, b), T = X({
2285
2378
  "aria-hidden": !0,
2286
2379
  tabIndex: -1,
2287
- className: Dn(lr.handle, C && lr.visible),
2380
+ className: Y(_r.handle, C && _r.visible),
2288
2381
  style: {
2289
2382
  left: t + n,
2290
- top: r - ur
2383
+ top: r - vr
2291
2384
  },
2292
2385
  onMouseDown: (e) => h(e, "end"),
2293
2386
  onMouseUp: (e) => g(e, "end")
2294
2387
  }, l?.endHandle, b);
2295
2388
  return /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v(x, { ...w }), /* @__PURE__ */ v(S, { ...T })] });
2296
2389
  }
2297
- var fr = { row: "_row_1jios_13" }, pr = 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 }) {
2298
- 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) => ({
2299
- startDate: Dt(e, n, r, o),
2300
- endDate: Dt(e + S, n, r, o)
2301
- }), P = (e, t) => ({
2302
- startDate: Dt(t, n, r, o),
2303
- endDate: Dt(t + e, n, r, o)
2304
- }), 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) => {
2305
2398
  c(e.id, t);
2306
- }, ee = (e, t) => {
2399
+ }, P = (e, t) => {
2307
2400
  a(() => {
2308
2401
  l(e, t), c(e, null);
2309
2402
  });
2310
- }, I = (t) => {
2403
+ }, F = (t) => {
2311
2404
  a(() => {
2312
2405
  u(e.id, t), c(e.id, null);
2313
2406
  });
2314
- }, L = (e) => ({
2407
+ }, I = (e) => ({
2315
2408
  kind: "move",
2316
- startDate: Dt(e, n, r, o)
2317
- }), R = h ? {} : {
2318
- onMove: (e) => F(N(e)),
2319
- 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 })
2320
2416
  }, z = h ? {} : {
2321
- onProgressChange: (e) => F({ progress: e }),
2322
- onProgressEnd: (t) => ee(e.id, { progress: t })
2323
- }, B = h ? {} : {
2324
- onResize: (e, t) => F(P(e, t)),
2325
- onResizeEnd: (e, t) => I(e === "start" ? {
2417
+ onResize: (e, t) => ne(te(e, t)),
2418
+ onResizeEnd: (e, t) => F(e === "start" ? {
2326
2419
  kind: "resizeStart",
2327
- startDate: Dt(t, n, r, o)
2420
+ startDate: jt(t, n, r, o)
2328
2421
  } : {
2329
2422
  kind: "resizeEnd",
2330
- endDate: Dt(t, n, r, o)
2423
+ endDate: jt(t, n, r, o)
2331
2424
  })
2332
- }, V = {
2425
+ }, re = {
2333
2426
  role: "gridcell",
2334
- "aria-colindex": Math.max(1, Math.floor(T / r) + 1),
2335
- "aria-colspan": Math.max(1, Math.round(S / r)),
2336
- "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 }),
2337
2430
  "aria-selected": g || void 0,
2338
- title: b ? void 0 : e.name
2339
- }, te = {
2431
+ title: x ? void 0 : e.name
2432
+ }, B = {
2340
2433
  task: e,
2341
- progress: C,
2342
- displayEnd: Pe(e, _)
2434
+ progress: w,
2435
+ displayEnd: Pe(e, b)
2343
2436
  };
2344
2437
  return /* @__PURE__ */ y("div", {
2345
- className: fr.row,
2438
+ className: br.row,
2346
2439
  style: {
2347
- top: w,
2440
+ top: T,
2348
2441
  height: i
2349
2442
  },
2350
2443
  onClick: d ? () => d(e) : void 0,
2351
- onMouseEnter: () => M(!0),
2352
- onMouseLeave: () => M(!1),
2444
+ onMouseEnter: () => N(!0),
2445
+ onMouseLeave: () => N(!1),
2353
2446
  role: "row",
2354
2447
  "aria-rowindex": f + t + 1,
2355
2448
  children: [
2356
- !h && /* @__PURE__ */ v(dr, {
2449
+ !h && /* @__PURE__ */ v(yr, {
2357
2450
  taskId: e.id,
2358
- barLeft: k,
2359
- barWidth: A,
2360
- barCenterY: D,
2361
- show: j
2451
+ barLeft: A,
2452
+ barWidth: j,
2453
+ barCenterY: O,
2454
+ show: M
2362
2455
  }),
2363
- e.type === "milestone" && /* @__PURE__ */ v(er, {
2364
- tooltip: te,
2365
- size: E,
2366
- centerLeft: T,
2456
+ e.type === "milestone" && /* @__PURE__ */ v(cr, {
2457
+ tooltip: B,
2458
+ size: D,
2459
+ centerLeft: E,
2367
2460
  top: 6,
2368
2461
  colWidth: r,
2369
2462
  title: e.name,
2370
- a11y: V,
2371
- ...R
2463
+ a11y: re,
2464
+ isCritical: _,
2465
+ ...L
2372
2466
  }),
2373
- e.type === "summary" && /* @__PURE__ */ v(ar, {
2374
- tooltip: te,
2375
- left: T,
2467
+ e.type === "summary" && /* @__PURE__ */ v(pr, {
2468
+ tooltip: B,
2469
+ left: E,
2376
2470
  top: 6,
2377
- width: S,
2378
- height: E,
2471
+ width: C,
2472
+ height: D,
2379
2473
  colWidth: r,
2380
2474
  title: e.name,
2381
- a11y: V,
2382
- progress: C,
2383
- ...z,
2384
- ...R
2475
+ a11y: re,
2476
+ progress: w,
2477
+ isCritical: _,
2478
+ ...R,
2479
+ ...L
2385
2480
  }),
2386
- e.type === "task" || !e.type ? /* @__PURE__ */ v(cr, {
2387
- tooltip: te,
2388
- left: T,
2481
+ e.type === "task" || !e.type ? /* @__PURE__ */ v(gr, {
2482
+ tooltip: B,
2483
+ left: E,
2389
2484
  top: 6,
2390
- width: S,
2391
- height: E,
2485
+ width: C,
2486
+ height: D,
2392
2487
  colWidth: r,
2393
2488
  title: e.name,
2394
- a11y: V,
2395
- progress: C,
2396
- ...z,
2489
+ a11y: re,
2490
+ progress: w,
2491
+ isCritical: _,
2397
2492
  ...R,
2398
- ...B
2493
+ ...L,
2494
+ ...z
2399
2495
  }) : null
2400
2496
  ]
2401
2497
  });
2402
2498
  });
2403
- pr.displayName = "Row";
2499
+ xr.displayName = "Row";
2404
2500
  //#endregion
2405
2501
  //#region src/components/dependency-links/geometry.ts
2406
- var mr = 12, hr = {};
2407
- function gr(e) {
2502
+ var Sr = 12, Cr = {};
2503
+ function wr(e) {
2408
2504
  let t = Infinity, n = Infinity, r = -Infinity, i = -Infinity;
2409
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);
2410
2506
  return {
@@ -2414,7 +2510,7 @@ function gr(e) {
2414
2510
  maxY: i
2415
2511
  };
2416
2512
  }
2417
- function _r(e) {
2513
+ function Tr(e) {
2418
2514
  if (e.length < 2) return e[0] ?? {
2419
2515
  x: 0,
2420
2516
  y: 0
@@ -2425,8 +2521,8 @@ function _r(e) {
2425
2521
  y: (n.y + r.y) / 2
2426
2522
  };
2427
2523
  }
2428
- function vr(e, t, n, { origin: r, colWidth: i, rowHeight: a, unit: o }) {
2429
- 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);
2430
2526
  if (e.type === "milestone") {
2431
2527
  let t = (a - 12) / 2;
2432
2528
  return {
@@ -2443,13 +2539,13 @@ function vr(e, t, n, { origin: r, colWidth: i, rowHeight: a, unit: o }) {
2443
2539
  task: e
2444
2540
  };
2445
2541
  }
2446
- function yr(e, t) {
2542
+ function Dr(e, t) {
2447
2543
  let n = /* @__PURE__ */ new Map(), { rowHeight: r } = t;
2448
2544
  return e.forEach((e, i) => {
2449
- n.set(e.id, vr(e, hr, i * r + r / 2, t));
2545
+ n.set(e.id, Er(e, Cr, i * r + r / 2, t));
2450
2546
  }), n;
2451
2547
  }
2452
- function br(e, t) {
2548
+ function Or(e, t) {
2453
2549
  let n = (e.x + t.x) / 2;
2454
2550
  return [
2455
2551
  e,
@@ -2464,8 +2560,8 @@ function br(e, t) {
2464
2560
  t
2465
2561
  ];
2466
2562
  }
2467
- function xr(e, t, n, r) {
2468
- let i = e.x + n * mr, a = t.x - r * mr, 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;
2469
2565
  return [
2470
2566
  e,
2471
2567
  {
@@ -2487,7 +2583,7 @@ function xr(e, t, n, r) {
2487
2583
  t
2488
2584
  ];
2489
2585
  }
2490
- function Sr(e, t, n) {
2586
+ function Ar(e, t, n) {
2491
2587
  return [
2492
2588
  e,
2493
2589
  {
@@ -2501,7 +2597,7 @@ function Sr(e, t, n) {
2501
2597
  t
2502
2598
  ];
2503
2599
  }
2504
- function Cr(e, t, n) {
2600
+ function jr(e, t, n) {
2505
2601
  let r = t.centerY, i = n.centerY;
2506
2602
  switch (e) {
2507
2603
  case "FS": {
@@ -2512,22 +2608,22 @@ function Cr(e, t, n) {
2512
2608
  x: n.startX,
2513
2609
  y: i
2514
2610
  };
2515
- return n.startX >= t.endX + 2 * mr ? br(e, a) : xr(e, a, 1, 1);
2611
+ return n.startX >= t.endX + 2 * Sr ? Or(e, a) : kr(e, a, 1, 1);
2516
2612
  }
2517
- case "SS": return Sr({
2613
+ case "SS": return Ar({
2518
2614
  x: t.startX,
2519
2615
  y: r
2520
2616
  }, {
2521
2617
  x: n.startX,
2522
2618
  y: i
2523
- }, Math.min(t.startX, n.startX) - mr);
2524
- case "FF": return Sr({
2619
+ }, Math.min(t.startX, n.startX) - Sr);
2620
+ case "FF": return Ar({
2525
2621
  x: t.endX,
2526
2622
  y: r
2527
2623
  }, {
2528
2624
  x: n.endX,
2529
2625
  y: i
2530
- }, Math.max(t.endX, n.endX) + mr);
2626
+ }, Math.max(t.endX, n.endX) + Sr);
2531
2627
  case "SF": {
2532
2628
  let e = {
2533
2629
  x: t.startX,
@@ -2536,36 +2632,36 @@ function Cr(e, t, n) {
2536
2632
  x: n.endX,
2537
2633
  y: i
2538
2634
  };
2539
- return n.endX <= t.startX - 2 * mr ? br(e, a) : xr(e, a, -1, -1);
2635
+ return n.endX <= t.startX - 2 * Sr ? Or(e, a) : kr(e, a, -1, -1);
2540
2636
  }
2541
2637
  }
2542
2638
  }
2543
- function wr({ tasks: e, dependencies: t, ...n }) {
2544
- let r = yr(e, n), i = [];
2639
+ function Mr({ tasks: e, dependencies: t, ...n }) {
2640
+ let r = Dr(e, n), i = [];
2545
2641
  for (let e of t) {
2546
2642
  let t = r.get(e.from), n = r.get(e.to);
2547
- !t || !n || i.push(Tr(e, t, n));
2643
+ !t || !n || i.push(Nr(e, t, n));
2548
2644
  }
2549
2645
  let a = null;
2550
2646
  return {
2551
2647
  links: i,
2552
2648
  boxes: r,
2553
2649
  linksTouching(e) {
2554
- return a ??= Er(i), a.get(e);
2650
+ return a ??= Pr(i), a.get(e);
2555
2651
  }
2556
2652
  };
2557
2653
  }
2558
- function Tr(e, t, n) {
2559
- let r = Cr(e.type, t, n);
2654
+ function Nr(e, t, n) {
2655
+ let r = jr(e.type, t, n);
2560
2656
  return {
2561
2657
  id: `${e.from}->${e.to}`,
2562
2658
  type: e.type,
2563
2659
  points: r,
2564
- bounds: gr(r),
2660
+ bounds: wr(r),
2565
2661
  dep: e
2566
2662
  };
2567
2663
  }
2568
- function Er(e) {
2664
+ function Pr(e) {
2569
2665
  let t = /* @__PURE__ */ new Map(), n = (e, n) => {
2570
2666
  let r = t.get(e);
2571
2667
  r ? r.push(n) : t.set(e, [n]);
@@ -2574,26 +2670,26 @@ function Er(e) {
2574
2670
  n(String(e.dep.from), t), n(String(e.dep.to), t);
2575
2671
  }), t;
2576
2672
  }
2577
- function Dr(e, t, n) {
2673
+ function Fr(e, t, n) {
2578
2674
  let r = Object.keys(t);
2579
2675
  if (r.length === 0) return e.links;
2580
2676
  let i = /* @__PURE__ */ new Map(), a = (r) => {
2581
2677
  let a = e.boxes.get(r), o = a && t[String(r)];
2582
2678
  if (!a || !o) return a;
2583
2679
  let s = i.get(r);
2584
- return s || (s = vr(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;
2585
2681
  }, o = null;
2586
2682
  for (let t of r) for (let n of e.linksTouching(t) ?? []) {
2587
2683
  let { dep: t } = e.links[n], r = a(t.from), i = a(t.to);
2588
- !r || !i || (o ??= e.links.slice(), o[n] = Tr(t, r, i));
2684
+ !r || !i || (o ??= e.links.slice(), o[n] = Nr(t, r, i));
2589
2685
  }
2590
2686
  return o ?? e.links;
2591
2687
  }
2592
2688
  //#endregion
2593
2689
  //#region src/components/dependency-links/DependencyLinksContext.tsx
2594
- var Or = n(null);
2595
- function kr({ tasks: e, dependencies: t, origin: n, colWidth: r, rowHeight: i, unit: a, children: o, overrides: s }) {
2596
- let c = f(() => wr({
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({
2597
2693
  tasks: e,
2598
2694
  dependencies: t,
2599
2695
  origin: n,
@@ -2607,7 +2703,7 @@ function kr({ tasks: e, dependencies: t, origin: n, colWidth: r, rowHeight: i, u
2607
2703
  r,
2608
2704
  i,
2609
2705
  a
2610
- ]), l = f(() => Dr(c, s, {
2706
+ ]), l = f(() => Fr(c, s, {
2611
2707
  origin: n,
2612
2708
  colWidth: r,
2613
2709
  rowHeight: i,
@@ -2620,31 +2716,33 @@ function kr({ tasks: e, dependencies: t, origin: n, colWidth: r, rowHeight: i, u
2620
2716
  i,
2621
2717
  a
2622
2718
  ]);
2623
- return /* @__PURE__ */ v(Or.Provider, {
2719
+ return /* @__PURE__ */ v(Ir.Provider, {
2624
2720
  value: l,
2625
2721
  children: o
2626
2722
  });
2627
2723
  }
2628
- function Ar() {
2629
- let e = s(Or);
2724
+ function Rr() {
2725
+ let e = s(Ir);
2630
2726
  if (e === null) throw Error("useDependencyLinks must be used within a <DependencyLinksProvider>");
2631
2727
  return e;
2632
2728
  }
2633
2729
  var Z = {
2634
- layer: "_layer_1ih9f_1",
2635
- hitArea: "_hitArea_1ih9f_8",
2636
- segment: "_segment_1ih9f_15",
2637
- segmentSelected: "_segmentSelected_1ih9f_21",
2638
- arrowRight: "_arrowRight_1ih9f_25",
2639
- arrowLeft: "_arrowLeft_1ih9f_26",
2640
- arrowSelected: "_arrowSelected_1ih9f_43",
2641
- lagLabel: "_lagLabel_1ih9f_51",
2642
- deleteBtn: "_deleteBtn_1ih9f_65"
2643
- }, Q = 2, jr = 8, Mr = 6;
2644
- function Nr(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) {
2645
2743
  return t ? e.minX <= t.maxX && e.maxX >= t.minX && e.minY <= t.maxY && e.maxY >= t.minY : !0;
2646
2744
  }
2647
- function Pr(e, t) {
2745
+ function Hr(e, t) {
2648
2746
  return e.y === t.y ? {
2649
2747
  left: Math.min(e.x, t.x) - Q / 2,
2650
2748
  top: e.y - Q / 2,
@@ -2657,62 +2755,62 @@ function Pr(e, t) {
2657
2755
  height: Math.abs(t.y - e.y) + Q
2658
2756
  };
2659
2757
  }
2660
- function Fr(e, t) {
2758
+ function Ur(e, t) {
2661
2759
  return e.y === t.y ? {
2662
2760
  left: Math.min(e.x, t.x) - Q / 2,
2663
- top: e.y - Mr,
2761
+ top: e.y - Br,
2664
2762
  width: Math.abs(t.x - e.x) + Q,
2665
- height: Q + Mr * 2
2763
+ height: Q + Br * 2
2666
2764
  } : {
2667
- left: e.x - Mr,
2765
+ left: e.x - Br,
2668
2766
  top: Math.min(e.y, t.y) - Q / 2,
2669
- width: Q + Mr * 2,
2767
+ width: Q + Br * 2,
2670
2768
  height: Math.abs(t.y - e.y) + Q
2671
2769
  };
2672
2770
  }
2673
- function Ir(e) {
2771
+ function Wr(e) {
2674
2772
  let t = [];
2675
2773
  for (let n = 0; n + 1 < e.length; n++) t.push([e[n], e[n + 1]]);
2676
2774
  return t;
2677
2775
  }
2678
- function Lr(e) {
2776
+ function Gr(e) {
2679
2777
  let t = e[e.length - 1], n = e[e.length - 2], r = t.x >= n.x;
2680
2778
  return {
2681
2779
  className: r ? Z.arrowRight : Z.arrowLeft,
2682
2780
  style: {
2683
- left: r ? t.x - jr : t.x,
2684
- top: t.y - jr / 2
2781
+ left: r ? t.x - zr : t.x,
2782
+ top: t.y - zr / 2
2685
2783
  }
2686
2784
  };
2687
2785
  }
2688
- function Rr({ width: t, height: n, onDependencyDelete: r, visibleRect: i, slots: a, slotProps: o }) {
2689
- let s = J(), c = a ?? s.dependencies?.links?.slots, u = o ?? s.dependencies?.links?.slotProps, d = $t(), f = rn(), p = Ar(), [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;
2690
2788
  if (l(() => {
2691
- if (!h) return;
2789
+ if (!g) return;
2692
2790
  let e = (e) => {
2693
- (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));
2694
2792
  };
2695
2793
  return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
2696
2794
  }, [
2697
- h,
2698
- x,
2795
+ g,
2796
+ S,
2699
2797
  r
2700
- ]), p.length === 0) return null;
2701
- let S = (e, t) => {
2702
- 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);
2703
2801
  else {
2704
- g(e);
2802
+ _(e);
2705
2803
  let n = t.currentTarget.closest(`.${Z.layer}`)?.getBoundingClientRect();
2706
- b(n ? {
2804
+ x(n ? {
2707
2805
  x: t.clientX - n.left,
2708
2806
  y: t.clientY - n.top
2709
2807
  } : null);
2710
2808
  }
2711
- }, C = (e) => {
2712
- e.stopPropagation(), x && r?.(x.dep), g(null), b(null);
2713
- }, w = c?.layer ?? "div", T = c?.segment ?? "div", E = c?.arrow ?? "div", D = c?.lagLabel ?? "div", O = c?.deleteButton ?? "button";
2714
- return /* @__PURE__ */ y(w, {
2715
- ...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({
2716
2814
  className: Z.layer,
2717
2815
  style: {
2718
2816
  width: t,
@@ -2721,41 +2819,43 @@ function Rr({ width: t, height: n, onDependencyDelete: r, visibleRect: i, slots:
2721
2819
  role: "presentation",
2722
2820
  "aria-hidden": !0,
2723
2821
  onClick: () => {
2724
- g(null), b(null);
2822
+ _(null), x(null);
2725
2823
  }
2726
2824
  }, u?.layer, {
2727
2825
  width: t,
2728
2826
  height: n,
2729
- linkCount: p.length
2827
+ linkCount: h.length
2730
2828
  }),
2731
- children: [p.map((t) => {
2732
- let n = t.id === h;
2733
- if (!n && !Nr(t.bounds, i)) return null;
2734
- let r = Lr(t.points), a = Ir(t.points), o = t.dep.lag ? _r(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 = {
2735
2833
  link: t,
2736
- isSelected: n
2737
- }, c = Y({
2738
- 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),
2739
2838
  style: r.style
2740
- }, u?.arrow, s);
2839
+ }, u?.arrow, c);
2741
2840
  return /* @__PURE__ */ y(e, { children: [
2742
2841
  !f && a.map(([e, n]) => /* @__PURE__ */ v("div", {
2743
2842
  className: Z.hitArea,
2744
- style: Fr(e, n),
2745
- onClick: (e) => S(t.id, e)
2843
+ style: Ur(e, n),
2844
+ onClick: (e) => C(t.id, e)
2746
2845
  }, `hit-${e.x},${e.y}-${n.x},${n.y}`)),
2747
- a.map(([e, r], i) => /* @__PURE__ */ v(T, { ...Y({
2748
- className: `${Z.segment} ${n ? Z.segmentSelected : ""}`,
2749
- style: Pr(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)
2750
2849
  }, u?.segment, {
2751
2850
  link: t,
2752
2851
  isSelected: n,
2852
+ isCritical: s,
2753
2853
  from: e,
2754
2854
  to: r,
2755
2855
  index: i
2756
2856
  }) }, `seg-${e.x},${e.y}-${r.x},${r.y}`)),
2757
- /* @__PURE__ */ v(E, { ...c }),
2758
- 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({
2759
2859
  className: Z.lagLabel,
2760
2860
  style: {
2761
2861
  left: o.x,
@@ -2765,32 +2865,33 @@ function Rr({ width: t, height: n, onDependencyDelete: r, visibleRect: i, slots:
2765
2865
  }, u?.lagLabel, {
2766
2866
  link: t,
2767
2867
  isSelected: n,
2868
+ isCritical: s,
2768
2869
  lag: t.dep.lag
2769
2870
  }) })
2770
2871
  ] }, t.id);
2771
- }), !f && x && _ && /* @__PURE__ */ v(O, { ...Y({
2872
+ }), !f && S && b && /* @__PURE__ */ v(k, { ...X({
2772
2873
  className: Z.deleteBtn,
2773
2874
  type: "button",
2774
2875
  tabIndex: -1,
2775
2876
  style: {
2776
- left: _.x,
2777
- top: _.y
2877
+ left: b.x,
2878
+ top: b.y
2778
2879
  },
2779
- onClick: C,
2880
+ onClick: w,
2780
2881
  "aria-label": d.deleteDependency,
2781
2882
  children: "×"
2782
- }, u?.deleteButton, { dependency: x.dep }) })]
2883
+ }, u?.deleteButton, { dependency: S.dep }) })]
2783
2884
  });
2784
2885
  }
2785
- var zr = { preview: "_preview_1jjzd_1" };
2886
+ var qr = { preview: "_preview_1jjzd_1" };
2786
2887
  //#endregion
2787
2888
  //#region src/components/dependency-links/DependencyPreview.tsx
2788
- function Br({ slots: e, slotProps: t }) {
2789
- 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();
2790
2891
  if (!a) return null;
2791
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);
2792
- return /* @__PURE__ */ v(r?.root ?? "div", { ...Y({
2793
- className: zr.preview,
2893
+ return /* @__PURE__ */ v(r?.root ?? "div", { ...X({
2894
+ className: qr.preview,
2794
2895
  style: {
2795
2896
  left: a.startX,
2796
2897
  top: a.startY,
@@ -2804,17 +2905,17 @@ function Br({ slots: e, slotProps: t }) {
2804
2905
  angle: l
2805
2906
  }) });
2806
2907
  }
2807
- var Vr = {
2908
+ var Yr = {
2808
2909
  cols: "_cols_kjab1_1",
2809
2910
  col: "_col_kjab1_1",
2810
2911
  colWeekend: "_colWeekend_kjab1_14"
2811
2912
  };
2812
2913
  //#endregion
2813
2914
  //#region src/components/grid/GridColumns.tsx
2814
- function Hr({ dates: e, colWidth: t, bodyHeight: n, colRange: r, unit: i = "day", step: a = 1, slots: o, slotProps: s }) {
2815
- 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";
2816
2917
  return /* @__PURE__ */ v("div", {
2817
- className: Vr.cols,
2918
+ className: Yr.cols,
2818
2919
  role: "presentation",
2819
2920
  "aria-hidden": !0,
2820
2921
  children: e.slice(r.start, r.end).map((e, o) => {
@@ -2830,8 +2931,8 @@ function Hr({ dates: e, colWidth: t, bodyHeight: n, colRange: r, unit: i = "day"
2830
2931
  colWidth: t,
2831
2932
  bodyHeight: n
2832
2933
  };
2833
- return /* @__PURE__ */ v(d, { ...Y({
2834
- className: Dn(Vr.col, l && Vr.colWeekend),
2934
+ return /* @__PURE__ */ v(d, { ...X({
2935
+ className: Y(Yr.col, l && Yr.colWeekend),
2835
2936
  style: {
2836
2937
  left: s * t,
2837
2938
  width: t,
@@ -2841,15 +2942,15 @@ function Hr({ dates: e, colWidth: t, bodyHeight: n, colRange: r, unit: i = "day"
2841
2942
  })
2842
2943
  });
2843
2944
  }
2844
- Hr.displayName = "GridColumns";
2845
- var Ur = {
2945
+ Xr.displayName = "GridColumns";
2946
+ var Zr = {
2846
2947
  gridWrapper: "_gridWrapper_1tr84_1",
2847
2948
  grid: "_grid_1tr84_1",
2848
2949
  body: "_body_1tr84_17"
2849
2950
  };
2850
2951
  //#endregion
2851
2952
  //#region src/core/virtualize.ts
2852
- function Wr(e, t, n, r, i = 0) {
2953
+ function Qr(e, t, n, r, i = 0) {
2853
2954
  if (r <= 0) return {
2854
2955
  start: 0,
2855
2956
  end: 0
@@ -2866,8 +2967,8 @@ function Wr(e, t, n, r, i = 0) {
2866
2967
  }
2867
2968
  //#endregion
2868
2969
  //#region src/components/grid/Grid.tsx
2869
- function Gr({ slots: e, slotProps: t } = {}) {
2870
- 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();
2871
2972
  l(() => {
2872
2973
  let e = S.current;
2873
2974
  if (!e || !j && !M) return;
@@ -2891,10 +2992,10 @@ function Gr({ slots: e, slotProps: t } = {}) {
2891
2992
  A,
2892
2993
  a.length
2893
2994
  ]);
2894
- let [N, P] = m({}), F = o((e) => {
2995
+ let [N, ee] = m({}), te = o((e) => {
2895
2996
  d(e.id), u?.(e);
2896
- }, [d, u]), ee = o((e, t) => {
2897
- P((n) => {
2997
+ }, [d, u]), ne = o((e, t) => {
2998
+ ee((n) => {
2898
2999
  if (t === null) {
2899
3000
  let { [e]: t, ...r } = n;
2900
3001
  return r;
@@ -2907,90 +3008,90 @@ function Gr({ slots: e, slotProps: t } = {}) {
2907
3008
  }
2908
3009
  };
2909
3010
  });
2910
- }, []), I = f(() => Nt(a, _, g), [
3011
+ }, []), P = f(() => Lt(a, _, g), [
2911
3012
  a,
2912
3013
  _,
2913
3014
  g
2914
- ]), L = I[0]?.getTime(), R = f(() => L == null ? void 0 : new Date(L), [L]);
2915
- if (!R) return null;
2916
- let z = kt(g), B = I.length * p, V = a.length * h, te = (g ?? Ot).length, H = Wr(T.scrollTop, T.clientHeight, h, a.length, 6), ne = Wr(T.scrollLeft, T.clientWidth, p, I.length, 4), re = {
2917
- minX: ne.start * p,
2918
- maxX: ne.end * p,
2919
- minY: H.start * h,
2920
- maxY: H.end * h
2921
- }, ie = r?.root ?? "div", ae = r?.body ?? "div", oe = {
2922
- totalWidth: B,
2923
- 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,
2924
3025
  height: b
2925
- }, se = Y({
2926
- className: Ur.gridWrapper,
3026
+ }, le = X({
3027
+ className: Zr.gridWrapper,
2927
3028
  style: b === void 0 ? {} : { height: b },
2928
3029
  onScroll: C,
2929
3030
  role: "grid",
2930
3031
  "aria-label": x.timeline,
2931
- "aria-rowcount": te + a.length,
2932
- "aria-colcount": I.length
2933
- }, i?.root, oe), ce = Y({
2934
- className: Ur.body,
3032
+ "aria-rowcount": re + a.length,
3033
+ "aria-colcount": P.length
3034
+ }, i?.root, ce), ue = X({
3035
+ className: Zr.body,
2935
3036
  style: {
2936
- height: V,
2937
- width: B
3037
+ height: z,
3038
+ width: R
2938
3039
  },
2939
3040
  role: "rowgroup"
2940
- }, i?.body, oe);
2941
- return /* @__PURE__ */ v(ie, {
3041
+ }, i?.body, ce);
3042
+ return /* @__PURE__ */ v(oe, {
2942
3043
  ref: S,
2943
- ...se,
3044
+ ...le,
2944
3045
  children: /* @__PURE__ */ y("div", {
2945
- className: Ur.grid,
2946
- style: { width: B },
3046
+ className: Zr.grid,
3047
+ style: { width: R },
2947
3048
  role: "presentation",
2948
- children: [/* @__PURE__ */ v(Mn, {
3049
+ children: [/* @__PURE__ */ v(Ln, {
2949
3050
  colWidth: p,
2950
3051
  rowHeight: h,
2951
- dates: I,
3052
+ dates: P,
2952
3053
  scales: g,
2953
- colRange: ne
2954
- }), /* @__PURE__ */ v(kr, {
3054
+ colRange: ie
3055
+ }), /* @__PURE__ */ v(Lr, {
2955
3056
  tasks: a,
2956
3057
  dependencies: E,
2957
- origin: R,
3058
+ origin: I,
2958
3059
  colWidth: p,
2959
3060
  rowHeight: h,
2960
- unit: z,
3061
+ unit: L,
2961
3062
  overrides: N,
2962
- children: /* @__PURE__ */ y(ae, {
3063
+ children: /* @__PURE__ */ y(se, {
2963
3064
  ref: w,
2964
- ...ce,
3065
+ ...ue,
2965
3066
  children: [
2966
- /* @__PURE__ */ v(Hr, {
2967
- dates: I,
3067
+ /* @__PURE__ */ v(Xr, {
3068
+ dates: P,
2968
3069
  colWidth: p,
2969
- bodyHeight: V,
2970
- colRange: ne,
2971
- unit: z,
2972
- step: At(g)
3070
+ bodyHeight: z,
3071
+ colRange: ie,
3072
+ unit: L,
3073
+ step: Pt(g)
2973
3074
  }),
2974
- /* @__PURE__ */ v(Rr, {
2975
- width: B,
2976
- height: V,
3075
+ /* @__PURE__ */ v(Kr, {
3076
+ width: R,
3077
+ height: z,
2977
3078
  onDependencyDelete: D,
2978
- visibleRect: re
3079
+ visibleRect: ae
2979
3080
  }),
2980
- /* @__PURE__ */ v(Br, {}),
2981
- a.slice(H.start, H.end).map((e, t) => /* @__PURE__ */ v(pr, {
3081
+ /* @__PURE__ */ v(Jr, {}),
3082
+ a.slice(B.start, B.end).map((e, t) => /* @__PURE__ */ v(xr, {
2982
3083
  task: e,
2983
- index: H.start + t,
2984
- origin: R,
3084
+ index: B.start + t,
3085
+ origin: I,
2985
3086
  colWidth: p,
2986
3087
  rowHeight: h,
2987
- unit: z,
3088
+ unit: L,
2988
3089
  onUpdate: s,
2989
3090
  onCommit: c,
2990
3091
  override: N[e.id],
2991
- onOverride: ee,
2992
- onTaskClick: F,
2993
- rowIndexOffset: te
3092
+ onOverride: ne,
3093
+ onTaskClick: te,
3094
+ rowIndexOffset: re
2994
3095
  }, e.id))
2995
3096
  ]
2996
3097
  })
@@ -2998,14 +3099,14 @@ function Gr({ slots: e, slotProps: t } = {}) {
2998
3099
  })
2999
3100
  });
3000
3101
  }
3001
- Gr.displayName = "GanttGrid";
3002
- var Kr = { handle: "_handle_1o220_1" };
3102
+ $r.displayName = "GanttGrid";
3103
+ var ei = { handle: "_handle_1o220_1" };
3003
3104
  //#endregion
3004
3105
  //#region src/components/grid/GridResizeHandle.tsx
3005
- function qr({ onMouseDown: e, isResizing: t = !1, slots: n, slotProps: r }) {
3006
- let i = J(), a = n ?? i.timeline?.gridResizeHandle?.slots, o = r ?? i.timeline?.gridResizeHandle?.slotProps, s = $t(), c = { isResizing: t };
3007
- return /* @__PURE__ */ v(a?.root ?? "div", { ...Y({
3008
- className: Kr.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,
3009
3110
  onMouseDown: e,
3010
3111
  role: "separator",
3011
3112
  "aria-orientation": "vertical",
@@ -3029,10 +3130,10 @@ var $ = {
3029
3130
  };
3030
3131
  //#endregion
3031
3132
  //#region src/components/taskList/TaskListHeader.tsx
3032
- function Jr({ 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 }) {
3033
3134
  let o = n.length * t + 2, s = i?.header ?? "div", c = i?.headerCell ?? "div", l = i?.columnResizeHandle ?? "div";
3034
3135
  return /* @__PURE__ */ v(s, {
3035
- ...Y({
3136
+ ...X({
3036
3137
  className: $.header,
3037
3138
  style: {
3038
3139
  minHeight: o,
@@ -3048,7 +3149,7 @@ function Jr({ columns: e, rowHeight: t, scales: n = Ot, onResizeStart: r, slots:
3048
3149
  let n = {
3049
3150
  column: e,
3050
3151
  index: t
3051
- }, i = Y({
3152
+ }, i = X({
3052
3153
  className: $.headerCell,
3053
3154
  style: e.width ? {
3054
3155
  width: e.width,
@@ -3059,7 +3160,7 @@ function Jr({ columns: e, rowHeight: t, scales: n = Ot, onResizeStart: r, slots:
3059
3160
  },
3060
3161
  role: "columnheader",
3061
3162
  "aria-colindex": t + 1
3062
- }, a?.headerCell, n), o = Y({
3163
+ }, a?.headerCell, n), o = X({
3063
3164
  className: $.divider,
3064
3165
  "aria-hidden": !0,
3065
3166
  onMouseDown: (t) => {
@@ -3076,17 +3177,17 @@ function Jr({ columns: e, rowHeight: t, scales: n = Ot, onResizeStart: r, slots:
3076
3177
  }
3077
3178
  //#endregion
3078
3179
  //#region src/components/taskList/TreeCell.tsx
3079
- var Yr = 16;
3080
- function Xr({ taskId: e, depth: t, isParent: n, isExpanded: r, onToggleExpand: i, children: a, slots: o, slotProps: s }) {
3081
- 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 = {
3082
3183
  taskId: e,
3083
3184
  depth: t,
3084
3185
  isParent: n,
3085
3186
  isExpanded: r
3086
- }, 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({
3087
3188
  className: $.nameContent,
3088
- style: { paddingLeft: t * Yr }
3089
- }, s?.root, l), m = Y({
3189
+ style: { paddingLeft: t * ri }
3190
+ }, s?.root, l), m = X({
3090
3191
  className: $.expandBtn,
3091
3192
  type: "button",
3092
3193
  onClick: (t) => {
@@ -3094,7 +3195,7 @@ function Xr({ taskId: e, depth: t, isParent: n, isExpanded: r, onToggleExpand: i
3094
3195
  },
3095
3196
  "aria-label": r ? c.collapse : c.expand,
3096
3197
  children: r ? "▾" : "▸"
3097
- }, s?.expandButton, l), h = Y({
3198
+ }, s?.expandButton, l), h = X({
3098
3199
  className: $.expandPlaceholder,
3099
3200
  "aria-hidden": !0
3100
3201
  }, s?.placeholder, l);
@@ -3105,8 +3206,8 @@ function Xr({ taskId: e, depth: t, isParent: n, isExpanded: r, onToggleExpand: i
3105
3206
  }
3106
3207
  //#endregion
3107
3208
  //#region src/components/taskList/TaskListRow.tsx
3108
- var Zr = 100, Qr = 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 }) {
3109
- 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();
3110
3211
  return /* @__PURE__ */ v("div", {
3111
3212
  className: `${$.row} ${c ? $.selected : ""}`,
3112
3213
  style: { height: t },
@@ -3121,12 +3222,12 @@ var Zr = 100, Qr = i(function({ task: e, rowHeight: t, rowIndex: n, depth: r, po
3121
3222
  children: d.map((t, n) => /* @__PURE__ */ v("div", {
3122
3223
  className: `${$.cell} ${t.isTreeColumn ? $.treeCell : ""}`,
3123
3224
  style: {
3124
- width: t.width || Zr,
3225
+ width: t.width || ai,
3125
3226
  flexShrink: 0
3126
3227
  },
3127
3228
  role: t.isTreeColumn ? "rowheader" : "gridcell",
3128
3229
  "aria-colindex": n + 1,
3129
- children: t.isTreeColumn ? /* @__PURE__ */ v(Xr, {
3230
+ children: t.isTreeColumn ? /* @__PURE__ */ v(ii, {
3130
3231
  taskId: e.id,
3131
3232
  depth: r,
3132
3233
  isParent: o,
@@ -3139,10 +3240,10 @@ var Zr = 100, Qr = i(function({ task: e, rowHeight: t, rowIndex: n, depth: r, po
3139
3240
  }, t.key))
3140
3241
  });
3141
3242
  });
3142
- Qr.displayName = "TaskListRow";
3243
+ oi.displayName = "TaskListRow";
3143
3244
  //#endregion
3144
3245
  //#region src/hooks/useColumnWidths.ts
3145
- function $r() {
3246
+ function si() {
3146
3247
  let [e, t] = m({}), n = p(null);
3147
3248
  return {
3148
3249
  widths: e,
@@ -3168,12 +3269,12 @@ function $r() {
3168
3269
  }
3169
3270
  //#endregion
3170
3271
  //#region src/components/taskList/TaskList.tsx
3171
- var ei = {
3272
+ var ci = {
3172
3273
  flex: "1 1 auto",
3173
3274
  minHeight: 0
3174
3275
  };
3175
- function ti({ columns: e = [], taskList: t }) {
3176
- 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 } = $r(), 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 : {
3177
3278
  ...e,
3178
3279
  width: b[e.key]
3179
3280
  }), [e, b]), C = q((e) => {
@@ -3204,9 +3305,9 @@ function ti({ columns: e = [], taskList: t }) {
3204
3305
  n.setsize = e.get(r.parentId ?? null) ?? 1;
3205
3306
  }
3206
3307
  return t;
3207
- }, [n]), { viewport: D, scheduleMeasure: O } = St(g, { trackHorizontal: !1 }), k = o(() => {
3308
+ }, [n]), { viewport: D, scheduleMeasure: O } = Et(g, { trackHorizontal: !1 }), k = o(() => {
3208
3309
  _(), O();
3209
- }, [_, O]), A = Wr(D.scrollTop, D.clientHeight, d, n.length, 6);
3310
+ }, [_, O]), A = Qr(D.scrollTop, D.clientHeight, d, n.length, 6);
3210
3311
  return /* @__PURE__ */ y("div", {
3211
3312
  className: $.taskList,
3212
3313
  style: { height: m },
@@ -3214,7 +3315,7 @@ function ti({ columns: e = [], taskList: t }) {
3214
3315
  "aria-label": h.taskList,
3215
3316
  "aria-rowcount": n.length + 1,
3216
3317
  "aria-colcount": S.length,
3217
- children: [/* @__PURE__ */ v(Jr, {
3318
+ children: [/* @__PURE__ */ v(ni, {
3218
3319
  columns: S,
3219
3320
  rowHeight: d,
3220
3321
  scales: p,
@@ -3224,7 +3325,7 @@ function ti({ columns: e = [], taskList: t }) {
3224
3325
  }), /* @__PURE__ */ v("div", {
3225
3326
  ref: g,
3226
3327
  className: $.body,
3227
- style: ei,
3328
+ style: ci,
3228
3329
  onScroll: k,
3229
3330
  role: "presentation",
3230
3331
  children: /* @__PURE__ */ y("div", {
@@ -3238,7 +3339,7 @@ function ti({ columns: e = [], taskList: t }) {
3238
3339
  }),
3239
3340
  Array.from({ length: A.end - A.start }, (e, o) => {
3240
3341
  let s = A.start + o, c = n[s], l = E.get(c.id);
3241
- return /* @__PURE__ */ v(Qr, {
3342
+ return /* @__PURE__ */ v(oi, {
3242
3343
  task: c,
3243
3344
  rowHeight: d,
3244
3345
  rowIndex: s,
@@ -3266,7 +3367,7 @@ function ti({ columns: e = [], taskList: t }) {
3266
3367
  }
3267
3368
  //#endregion
3268
3369
  //#region src/hooks/useGridResize.ts
3269
- function ni(e, t) {
3370
+ function ui(e, t) {
3270
3371
  let [n, r] = m(void 0), i = p(null);
3271
3372
  return {
3272
3373
  gridWidth: n,
@@ -3290,10 +3391,10 @@ function ni(e, t) {
3290
3391
  }, [e, t])
3291
3392
  };
3292
3393
  }
3293
- var ri = { actionsCell: "_actionsCell_1gvtx_1" };
3394
+ var di = { actionsCell: "_actionsCell_1gvtx_1" };
3294
3395
  //#endregion
3295
3396
  //#region src/components/taskList/ActionsCell.tsx
3296
- function ii(e) {
3397
+ function fi(e) {
3297
3398
  let t = j(e.startDate, 1);
3298
3399
  return {
3299
3400
  id: `task-${Date.now()}`,
@@ -3306,9 +3407,9 @@ function ii(e) {
3306
3407
  parentId: e.parentId ?? null
3307
3408
  };
3308
3409
  }
3309
- function ai({ task: e, api: t }) {
3410
+ function pi({ task: e, api: t }) {
3310
3411
  return /* @__PURE__ */ y("div", {
3311
- className: ri.actionsCell,
3412
+ className: di.actionsCell,
3312
3413
  children: [
3313
3414
  /* @__PURE__ */ v("button", {
3314
3415
  type: "button",
@@ -3328,7 +3429,7 @@ function ai({ task: e, api: t }) {
3328
3429
  "aria-label": t.labels.addTaskAfter(e),
3329
3430
  onClick: (n) => {
3330
3431
  n.stopPropagation();
3331
- let r = ii(e);
3432
+ let r = fi(e);
3332
3433
  t.createTask(r, e.id), t.editTask(r);
3333
3434
  },
3334
3435
  children: /* @__PURE__ */ v("span", {
@@ -3354,12 +3455,12 @@ function ai({ task: e, api: t }) {
3354
3455
  }
3355
3456
  //#endregion
3356
3457
  //#region src/components/taskList/defaultColumns.tsx
3357
- var oi = "__action", si = [
3458
+ var mi = "__action", hi = [
3358
3459
  {
3359
- key: oi,
3460
+ key: mi,
3360
3461
  header: " ",
3361
3462
  width: 100,
3362
- render: (e, t) => /* @__PURE__ */ v(ai, {
3463
+ render: (e, t) => /* @__PURE__ */ v(pi, {
3363
3464
  task: e,
3364
3465
  api: t
3365
3466
  })
@@ -3389,12 +3490,12 @@ var oi = "__action", si = [
3389
3490
  width: 90,
3390
3491
  render: (e) => `${e.progress ?? 0}%`
3391
3492
  }
3392
- ], ci = si.filter((e) => e.key !== oi);
3493
+ ], gi = hi.filter((e) => e.key !== mi);
3393
3494
  //#endregion
3394
3495
  //#region src/Gantt.tsx
3395
- function li({ 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 }) {
3396
- let ee = p(null), I = p(null), { gridWidth: L, onHandleMouseDown: R } = ni(ee, I), z = h ?? (O ? ci : si), B = !A;
3397
- 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, {
3398
3499
  tasks: e,
3399
3500
  dependencies: t,
3400
3501
  rowHeight: n,
@@ -3414,32 +3515,33 @@ function li({ tasks: e, dependencies: t, rowHeight: n, colWidth: r, height: i, s
3414
3515
  onTaskDelete: S,
3415
3516
  onTaskEdit: C,
3416
3517
  onTasksChange: w,
3417
- apiRef: k,
3418
- labels: F,
3518
+ apiRef: A,
3519
+ labels: ne,
3419
3520
  calendar: T,
3420
3521
  snapToWorking: E,
3421
3522
  durationUnit: D,
3422
3523
  readOnly: O,
3423
- children: /* @__PURE__ */ v(Tn, {
3524
+ criticalPath: k,
3525
+ children: /* @__PURE__ */ v(jn, {
3424
3526
  value: f(() => ({
3425
- bars: M,
3426
- dependencies: N,
3427
- timeline: P
3527
+ bars: N,
3528
+ dependencies: ee,
3529
+ timeline: te
3428
3530
  }), [
3429
- M,
3430
3531
  N,
3431
- P
3532
+ ee,
3533
+ te
3432
3534
  ]),
3433
- children: B ? /* @__PURE__ */ y("div", {
3434
- ref: ee,
3535
+ children: z ? /* @__PURE__ */ y("div", {
3536
+ ref: P,
3435
3537
  role: "group",
3436
- "aria-label": F?.gantt ?? Ie.gantt,
3538
+ "aria-label": ne?.gantt ?? Ie.gantt,
3437
3539
  style: { position: "relative" },
3438
- children: [/* @__PURE__ */ v(ti, {
3439
- columns: z,
3440
- taskList: j
3540
+ children: [/* @__PURE__ */ v(li, {
3541
+ columns: R,
3542
+ taskList: M
3441
3543
  }), /* @__PURE__ */ y("div", {
3442
- ref: I,
3544
+ ref: F,
3443
3545
  style: {
3444
3546
  position: "absolute",
3445
3547
  top: 0,
@@ -3448,21 +3550,21 @@ function li({ tasks: e, dependencies: t, rowHeight: n, colWidth: r, height: i, s
3448
3550
  display: "flex",
3449
3551
  flexDirection: "row",
3450
3552
  background: "var(--am-gantt-grid-bg, #ffffff)",
3451
- ...L === void 0 ? { left: g } : { width: L }
3553
+ ...I === void 0 ? { left: g } : { width: I }
3452
3554
  },
3453
- children: [/* @__PURE__ */ v(qr, { onMouseDown: R }), /* @__PURE__ */ v("div", {
3555
+ children: [/* @__PURE__ */ v(ti, { onMouseDown: L }), /* @__PURE__ */ v("div", {
3454
3556
  style: {
3455
3557
  flex: "1 1 auto",
3456
3558
  minWidth: 0
3457
3559
  },
3458
- children: /* @__PURE__ */ v(Gr, {})
3560
+ children: /* @__PURE__ */ v($r, {})
3459
3561
  })]
3460
3562
  })]
3461
- }) : /* @__PURE__ */ v(Gr, {})
3563
+ }) : /* @__PURE__ */ v($r, {})
3462
3564
  })
3463
3565
  });
3464
3566
  }
3465
3567
  //#endregion
3466
- export { oi as ACTION_COLUMN_KEY, Hn as BarTooltipRoot, Un as BarTooltipTrigger, Mn as Calendar, si as DEFAULT_COLUMNS, Wt as DEFAULT_ZOOM_INDEX, Ut as DEFAULT_ZOOM_LEVELS, li as Gantt, Xn as GanttBarTooltip, Gr as GanttGrid, Cn as GanttProvider, Tn as GanttSlotsProvider, er as MilestoneBar, ar as ProjectBar, ci as READ_ONLY_COLUMNS, cr as TaskBar, ti 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 };
3467
3569
 
3468
3570
  //# sourceMappingURL=index.mjs.map