@umriss-ui/schedule 0.1.2 → 0.1.4
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/CHANGELOG.md +22 -0
- package/README.md +1 -1
- package/dist/schedule.css +1 -1
- package/dist/schedule.js +84 -87
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -15,6 +15,28 @@ moves from here under the rule above.
|
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
18
|
+
## 0.1.4 – Core 0.5.0 (Sep. 2026)
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- **The schedule takes `@umriss-ui/core` 0.5.** Nothing in the schedule
|
|
23
|
+
changed; the peer range moves to `^0.5.0`, so that it installs beside
|
|
24
|
+
`@umriss-ui/calculation`, which needs core's new wording.
|
|
25
|
+
`@umriss-ui/charts` stays at `^0.4.0`.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 0.1.3 – Core 0.4.0 and charts 0.4.0 (Sep. 2026)
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
|
|
33
|
+
- **The schedule takes `@umriss-ui/core` 0.4 and `@umriss-ui/charts` 0.4.**
|
|
34
|
+
The peer ranges move to `^0.4.0`. The schedule places its day and shift
|
|
35
|
+
boundaries with the local offset that charts now exports (`localOffset`);
|
|
36
|
+
its own copy is gone. What it draws is unchanged.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
18
40
|
## 0.1.2 – Phones, touch and a review (Sep. 2026)
|
|
19
41
|
|
|
20
42
|
### Changed
|
package/README.md
CHANGED
|
@@ -141,7 +141,7 @@ point into a time and a lane and back.
|
|
|
141
141
|
**Miniature**, **Intent**, **Ghost** — stands in the workspace's
|
|
142
142
|
`CONTEXT.md`, section "The schedule".
|
|
143
143
|
* [`../../docs/design-language.md`](../../docs/design-language.md) — the design
|
|
144
|
-
language all
|
|
144
|
+
language all five packages share.
|
|
145
145
|
|
|
146
146
|
## Licence
|
|
147
147
|
|
package/dist/schedule.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer umriss.tokens,umriss.base,umriss.components;@layer umriss.base{.
|
|
1
|
+
@layer umriss.tokens,umriss.base,umriss.components;@layer umriss.base{._text_1hv7a_23{font-family:var(--u-font-sans);font-size:var(--u-text-md);line-height:var(--u-leading-normal);color:var(--u-color-text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}._field_1hv7a_34{caret-color:var(--u-color-accent)}._scroll_1hv7a_40{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--u-color-text) 25%,transparent) transparent}._scroll_1hv7a_40::-webkit-scrollbar{width:10px;height:10px}._scroll_1hv7a_40::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--u-color-text) 22%,transparent);border-radius:var(--u-radius-full);border:3px solid transparent;background-clip:content-box}._scroll_1hv7a_40::-webkit-scrollbar-track{background:transparent}}@layer umriss.components{._ring_1hv7a_65:focus-visible{outline:none;box-shadow:var(--u-focus-ring)}@media(pointer:coarse){._field_1hv7a_34._field_1hv7a_34{font-size:16px}}._field_1hv7a_34:-webkit-autofill,._field_1hv7a_34:-webkit-autofill:hover,._field_1hv7a_34:-webkit-autofill:focus{-webkit-box-shadow:inset 0 0 0 1000px var(--u-color-surface),0 0 0 1px var(--u-edge-color-strong);-webkit-text-fill-color:var(--u-color-text);caret-color:var(--u-color-accent)}}@layer umriss.tokens,umriss.base,umriss.components;@layer umriss.components{._root_ekx9o_4,._root_ekx9o_4:before,._root_ekx9o_4:after{box-sizing:border-box}._corner_ekx9o_18,._corner_ekx9o_18:before,._corner_ekx9o_18:after{box-sizing:border-box}._dayBand_ekx9o_22,._dayBand_ekx9o_22:before,._dayBand_ekx9o_22:after{box-sizing:border-box}._tickBand_ekx9o_23,._tickBand_ekx9o_23:before,._tickBand_ekx9o_23:after{box-sizing:border-box}._day_ekx9o_22,._day_ekx9o_22:before,._day_ekx9o_22:after{box-sizing:border-box}._dayLabel_ekx9o_46,._dayLabel_ekx9o_46:before,._dayLabel_ekx9o_46:after{box-sizing:border-box}._tick_ekx9o_23,._tick_ekx9o_23:before,._tick_ekx9o_23:after{box-sizing:border-box}._tickLabel_ekx9o_64,._tickLabel_ekx9o_64:before,._tickLabel_ekx9o_64:after{box-sizing:border-box}._headers_ekx9o_72,._headers_ekx9o_72:before,._headers_ekx9o_72:after{box-sizing:border-box}._header_ekx9o_72,._header_ekx9o_72:before,._header_ekx9o_72:after{box-sizing:border-box}._headerLabel_ekx9o_90,._headerLabel_ekx9o_90:before,._headerLabel_ekx9o_90:after{box-sizing:border-box}._headerCount_ekx9o_103,._headerCount_ekx9o_103:before,._headerCount_ekx9o_103:after{box-sizing:border-box}._chevron_ekx9o_112,._chevron_ekx9o_112:before,._chevron_ekx9o_112:after{box-sizing:border-box}._plot_ekx9o_160,._plot_ekx9o_160:before,._plot_ekx9o_160:after{box-sizing:border-box}._layer_ekx9o_166,._layer_ekx9o_166:before,._layer_ekx9o_166:after{box-sizing:border-box}._grip_ekx9o_175,._grip_ekx9o_175:before,._grip_ekx9o_175:after{box-sizing:border-box}._ghostLabel_ekx9o_185,._ghostLabel_ekx9o_185:before,._ghostLabel_ekx9o_185:after{box-sizing:border-box}._finding_ekx9o_198,._finding_ekx9o_198:before,._finding_ekx9o_198:after{box-sizing:border-box}._refusal_ekx9o_206,._refusal_ekx9o_206:before,._refusal_ekx9o_206:after{box-sizing:border-box}._tooltip_ekx9o_210,._tooltip_ekx9o_210:before,._tooltip_ekx9o_210:after{box-sizing:border-box}._tooltipHead_ekx9o_228,._tooltipHead_ekx9o_228:before,._tooltipHead_ekx9o_228:after{box-sizing:border-box}._tooltipTimes_ekx9o_233,._tooltipTimes_ekx9o_233:before,._tooltipTimes_ekx9o_233:after{box-sizing:border-box}._now_ekx9o_242,._now_ekx9o_242:before,._now_ekx9o_242:after{box-sizing:border-box}._barLabel_ekx9o_256,._barLabel_ekx9o_256:before,._barLabel_ekx9o_256:after{box-sizing:border-box}._barLabelText_ekx9o_269,._barLabelText_ekx9o_269:before,._barLabelText_ekx9o_269:after{box-sizing:border-box}._root_ekx9o_4{display:grid;grid-template-rows:28px minmax(0,1fr) 28px;width:100%;font-size:var(--u-text-sm);background:var(--u-color-surface);box-shadow:var(--u-edge);border-radius:var(--u-radius-md);corner-shape:squircle;overflow:hidden;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none}._corner_ekx9o_18{background:var(--u-color-surface)}._dayBand_ekx9o_22,._tickBand_ekx9o_23{position:relative;overflow:hidden;color:var(--u-color-text-muted);font-size:var(--u-text-xs)}._dayBand_ekx9o_22{border-bottom:1px solid var(--u-hairline-strong)}._tickBand_ekx9o_23{border-top:1px solid var(--u-hairline-strong)}._day_ekx9o_22{position:absolute;top:0;bottom:0;border-left:1px solid var(--u-hairline-strong);overflow:hidden}._dayLabel_ekx9o_46{position:absolute;left:var(--u-space-2);top:50%;transform:translateY(-50%);white-space:nowrap;color:var(--u-color-text);font-weight:var(--u-weight-medium)}._tick_ekx9o_23{position:absolute;top:0;bottom:0;width:1px;background:var(--u-hairline)}._tickLabel_ekx9o_64{position:absolute;top:50%;left:0;transform:translate(-50%,-50%);white-space:nowrap}._headers_ekx9o_72{position:relative;overflow:hidden;border-right:1px solid var(--u-hairline-strong)}._header_ekx9o_72{display:flex;align-items:center;gap:var(--u-space-2);padding-right:var(--u-space-3);border-bottom:1px solid var(--u-hairline);overflow:hidden;white-space:nowrap}._headerLabel_ekx9o_90{min-width:0;overflow:hidden;text-overflow:ellipsis}._header_ekx9o_72[data-row=groupHead],._header_ekx9o_72[data-row=miniature]{font-weight:var(--u-weight-medium)}._headerCount_ekx9o_103{flex:none;color:var(--u-color-text-muted);font-size:var(--u-text-xs);font-variant-numeric:tabular-nums}._chevron_ekx9o_112{flex:none;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:none;border-radius:var(--u-radius-xs);corner-shape:squircle;background:transparent;color:var(--u-color-text-secondary);cursor:pointer}._chevron_ekx9o_112:hover{color:var(--u-color-text)}._chevron_ekx9o_112:focus-visible{outline:none;box-shadow:var(--u-focus-ring);color:var(--u-color-text)}._chevron_ekx9o_112 svg{box-sizing:border-box}._chevron_ekx9o_112 svg{transition:transform var(--u-duration-fast) var(--u-ease-standard)}._chevron_ekx9o_112 svg[data-open]{box-sizing:border-box}._chevron_ekx9o_112 svg[data-open]{transform:rotate(90deg)}@media(prefers-reduced-motion:reduce){._chevron_ekx9o_112 svg{transition:none}}._header_ekx9o_72[data-refused]{color:var(--u-color-text-muted)}._plot_ekx9o_160{position:relative;overflow:hidden;touch-action:none}._layer_ekx9o_166{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;pointer-events:none}._grip_ekx9o_175{position:absolute;width:9px;margin-left:-4px;border-radius:var(--u-radius-xs);corner-shape:squircle;background:var(--u-color-surface);box-shadow:inset 0 0 0 1.5px var(--u-color-text);cursor:ew-resize}._ghostLabel_ekx9o_185{position:absolute;display:inline-flex;gap:var(--u-space-2);padding:1px var(--u-space-2);border-radius:var(--u-radius-sm);corner-shape:squircle;background:var(--u-color-text);color:var(--u-color-surface);font-size:var(--u-text-xs);white-space:nowrap;pointer-events:none}._finding_ekx9o_198{font-weight:var(--u-weight-semibold);color:var(--u-color-danger-subtle)}._refusal_ekx9o_206{font-weight:var(--u-weight-semibold)}._tooltip_ekx9o_210{position:absolute;z-index:1;display:flex;flex-direction:column;gap:1px;max-width:260px;padding:var(--u-space-2) var(--u-space-3);border-radius:var(--u-radius-sm);corner-shape:squircle;background:var(--u-color-surface);box-shadow:var(--u-shadow-overlay);color:var(--u-color-text-secondary);font-size:var(--u-text-xs);line-height:var(--u-leading-tight);pointer-events:none;white-space:nowrap}._tooltipHead_ekx9o_228{color:var(--u-color-text);font-weight:var(--u-weight-semibold)}._tooltipTimes_ekx9o_233{color:var(--u-color-text)}._tooltip_ekx9o_210 ._finding_ekx9o_198{color:var(--u-color-danger)}._now_ekx9o_242{position:absolute;top:0;width:0;height:0;margin-left:-4px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--u-color-accent)}._barLabel_ekx9o_256{position:absolute;display:flex;align-items:center;padding:0 var(--u-space-1);overflow:hidden;font-size:var(--u-text-xs);line-height:var(--u-leading-tight);pointer-events:none}._barLabelText_ekx9o_269{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}._barLabel_ekx9o_256[data-on=dark]{color:var(--u-color-on-accent)}._barLabel_ekx9o_256[data-on=light]{color:var(--u-color-text)}}
|
package/dist/schedule.js
CHANGED
|
@@ -3,24 +3,24 @@ var He = Object.defineProperty;
|
|
|
3
3
|
var Ye = (n, t, e) => t in n ? He(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e;
|
|
4
4
|
var f = (n, t, e) => Ye(n, typeof t != "symbol" ? t + "" : t, e);
|
|
5
5
|
import { jsxs as Y, Fragment as zt, jsx as w } from "react/jsx-runtime";
|
|
6
|
-
import { useContext as fe, createContext as pe, useRef as $, useEffect as
|
|
7
|
-
import { toOperatingTimeClamped as
|
|
8
|
-
import { useFormats as
|
|
9
|
-
const
|
|
10
|
-
function
|
|
11
|
-
return fe(
|
|
6
|
+
import { useContext as fe, createContext as pe, useRef as $, useEffect as B, forwardRef as Xe, useState as it, useId as Ke, useLayoutEffect as vt, useImperativeHandle as Ue, useSyncExternalStore as We, useMemo as z } from "react";
|
|
7
|
+
import { toOperatingTimeClamped as O, resolveColours as ze, removedIntervals as qe, localOffset as me, MINUTE as q, calendarFrom as j, toWallClock as U, DAY as st, timeStep as je, operatingTimeTicks as Ve, HOUR as Tt, LinearScale as Ze, subscribeTheme as Je } from "@umriss-ui/charts";
|
|
8
|
+
import { useFormats as ge, useWording as ke } from "@umriss-ui/core";
|
|
9
|
+
const we = pe(null), ve = pe(null);
|
|
10
|
+
function ye() {
|
|
11
|
+
return fe(ve);
|
|
12
12
|
}
|
|
13
13
|
function Qe(n) {
|
|
14
|
-
const t = fe(
|
|
14
|
+
const t = fe(we);
|
|
15
15
|
if (t === null)
|
|
16
16
|
throw new Error(`@umriss-ui/schedule: <${n}> must be used inside a <Schedule>.`);
|
|
17
17
|
return t;
|
|
18
18
|
}
|
|
19
19
|
function Ct(n, t, e, s, o) {
|
|
20
20
|
const i = Qe(n), r = $(null);
|
|
21
|
-
|
|
21
|
+
B(() => (r.current = e(i, t), () => {
|
|
22
22
|
r.current !== null && o(i, r.current), r.current = null;
|
|
23
|
-
}), [i]),
|
|
23
|
+
}), [i]), B(() => {
|
|
24
24
|
r.current !== null && s(i, r.current, t);
|
|
25
25
|
});
|
|
26
26
|
}
|
|
@@ -30,7 +30,7 @@ function ts(n) {
|
|
|
30
30
|
function es(n) {
|
|
31
31
|
Ct("LaneGroup", n, (t, e) => t.registerGroup(e), (t, e, s) => t.updateGroup(e, s), (t, e) => t.unregisterGroup(e));
|
|
32
32
|
}
|
|
33
|
-
function
|
|
33
|
+
function be(n, t) {
|
|
34
34
|
Ct(n, t, (e, s) => e.registerLayer(s), (e, s, o) => e.updateLayer(s, o), (e, s) => e.unregisterLayer(s));
|
|
35
35
|
}
|
|
36
36
|
function ht(n) {
|
|
@@ -65,12 +65,12 @@ function qt(n) {
|
|
|
65
65
|
l[m] = { ...L, height: E }, b += E - L.height;
|
|
66
66
|
const F = E - 2 * yt, G = Math.max(os, Math.floor(F / C.length));
|
|
67
67
|
C.forEach((V, ot) => {
|
|
68
|
-
const
|
|
68
|
+
const W = c.get(V) ?? [];
|
|
69
69
|
d.set(V, {
|
|
70
70
|
top: L.top + yt + ot * G,
|
|
71
71
|
height: G,
|
|
72
72
|
miniature: !0,
|
|
73
|
-
group:
|
|
73
|
+
group: W[W.length - 1]
|
|
74
74
|
});
|
|
75
75
|
}), g = null;
|
|
76
76
|
};
|
|
@@ -180,9 +180,9 @@ function An(n, t) {
|
|
|
180
180
|
...n.teardown === void 0 ? {} : { teardown: n.teardown }
|
|
181
181
|
};
|
|
182
182
|
}
|
|
183
|
-
const as = 6,
|
|
183
|
+
const as = 6, Me = 3, et = 2, Vt = 3, Zt = 3;
|
|
184
184
|
function P(n, t) {
|
|
185
|
-
return Math.round(n.scale.toPx(
|
|
185
|
+
return Math.round(n.scale.toPx(O(t, n.calendar)));
|
|
186
186
|
}
|
|
187
187
|
function ct(n, t) {
|
|
188
188
|
const e = Lt(n.rows, t);
|
|
@@ -191,7 +191,7 @@ function ct(n, t) {
|
|
|
191
191
|
function Jt(n, t) {
|
|
192
192
|
return rs(n.rows, t + n.scrollY);
|
|
193
193
|
}
|
|
194
|
-
function
|
|
194
|
+
function Te(n, t, e, s, o) {
|
|
195
195
|
const i = s.miniature ? 0 : as, r = s.miniature ? 0 : Zt * Vt, a = Math.max(s.miniature ? 1 : 4, s.height - 2 * i - r), u = s.top - n.scrollY + Math.floor((s.height - a) / 2), c = ut(t);
|
|
196
196
|
return {
|
|
197
197
|
subtask: t,
|
|
@@ -206,7 +206,7 @@ function Me(n, t, e, s, o) {
|
|
|
206
206
|
outerTo: P(n, c.to)
|
|
207
207
|
};
|
|
208
208
|
}
|
|
209
|
-
function
|
|
209
|
+
function Ce(n, t, e) {
|
|
210
210
|
if (e < n.y || e > n.y + n.height) return null;
|
|
211
211
|
const s = Math.max(0, (6 - (n.outerTo - n.outerFrom)) / 2);
|
|
212
212
|
return t < n.outerFrom - s || t > n.outerTo + s ? null : t < n.mainFrom ? "setup" : t > n.mainTo ? "teardown" : "main";
|
|
@@ -216,13 +216,13 @@ function ls(n, t, e, s = 5) {
|
|
|
216
216
|
const o = Math.abs(t - n.mainFrom), i = Math.abs(t - n.mainTo);
|
|
217
217
|
return Math.min(o, i) > s ? null : o <= i ? "from" : "to";
|
|
218
218
|
}
|
|
219
|
-
function
|
|
219
|
+
function Le(n, t, e) {
|
|
220
220
|
return n.outerTo >= 0 && n.outerFrom <= t && n.y + n.height >= 0 && n.y <= e;
|
|
221
221
|
}
|
|
222
222
|
const hs = 64;
|
|
223
223
|
function us(n, t) {
|
|
224
224
|
if (n.miniature) return null;
|
|
225
|
-
const e = ht(n.subtask.appearance).hatched ? et +
|
|
225
|
+
const e = ht(n.subtask.appearance).hatched ? et + Me + 1 : 0, s = Math.max(n.mainFrom + e, 0), o = Math.min(n.mainTo - e, t) - s;
|
|
226
226
|
return o < hs ? null : { x: s, width: o, y: n.y, height: n.height };
|
|
227
227
|
}
|
|
228
228
|
const cs = 10;
|
|
@@ -460,9 +460,9 @@ function ks(n, t) {
|
|
|
460
460
|
if (i.kind === "transports")
|
|
461
461
|
for (const a of s.paths) r.has(a.transport) && Mt(n, t, a, !1);
|
|
462
462
|
else
|
|
463
|
-
for (const a of s.boxes) r.has(a.subtask) &&
|
|
463
|
+
for (const a of s.boxes) r.has(a.subtask) && Ie(n, t, a, 1);
|
|
464
464
|
}
|
|
465
|
-
for (const i of e.overlaps)
|
|
465
|
+
for (const i of e.overlaps) Ae(n, t, o, i);
|
|
466
466
|
Fs(n, t, o), Ds(n, t);
|
|
467
467
|
}
|
|
468
468
|
function ws(n, t) {
|
|
@@ -479,9 +479,9 @@ function ws(n, t) {
|
|
|
479
479
|
}
|
|
480
480
|
const { ghost: i, overlaps: r, late: a } = t.ghost;
|
|
481
481
|
vs(n, t, o, t.ghost.refusedLanes);
|
|
482
|
-
const u =
|
|
482
|
+
const u = Se(o, i);
|
|
483
483
|
if (u === null) return;
|
|
484
|
-
for (const l of r)
|
|
484
|
+
for (const l of r) Ae(n, t, o, l);
|
|
485
485
|
const c = new Set(a.map((l) => l.transport));
|
|
486
486
|
for (const l of t.data.transports) {
|
|
487
487
|
if (l.from !== i.id && l.to !== i.id) continue;
|
|
@@ -490,7 +490,7 @@ function ws(n, t) {
|
|
|
490
490
|
const p = l.from === i.id ? bt(o, l, u, d, e.options) : bt(o, l, d, u, e.options);
|
|
491
491
|
Mt(n, t, p, !0, c.has(l.id));
|
|
492
492
|
}
|
|
493
|
-
|
|
493
|
+
Ie(n, t, u, 0.55), n.strokeStyle = t.colours.text, n.lineWidth = 1, n.setLineDash([3, 2]), n.strokeRect(u.outerFrom + 0.5, u.y + 0.5, Math.max(1, u.outerTo - u.outerFrom - 1), u.height - 1), n.setLineDash([]), t.ghost.tether !== null && ys(n, t, u, t.ghost.tether);
|
|
494
494
|
}
|
|
495
495
|
function vs(n, t, e, s) {
|
|
496
496
|
if (s.size === 0) return;
|
|
@@ -506,9 +506,9 @@ function ys(n, t, e, s) {
|
|
|
506
506
|
const o = Math.max(e.outerFrom, Math.min(e.outerTo, s.x)), i = Math.max(e.y, Math.min(e.y + e.height, s.y));
|
|
507
507
|
Math.hypot(s.x - o, s.y - i) < 2 || (n.strokeStyle = t.colours.text, n.lineWidth = 1, n.setLineDash([2, 3]), n.beginPath(), n.moveTo(o + 0.5, i + 0.5), n.lineTo(s.x + 0.5, s.y + 0.5), n.stroke(), n.setLineDash([]));
|
|
508
508
|
}
|
|
509
|
-
function
|
|
509
|
+
function Se(n, t) {
|
|
510
510
|
const e = Lt(n.rows, t.lane);
|
|
511
|
-
return e === null ? null :
|
|
511
|
+
return e === null ? null : Te(n, t, t.lane, e, 0);
|
|
512
512
|
}
|
|
513
513
|
function bs(n, t, e) {
|
|
514
514
|
const { view: s, colours: o, bands: i } = t, { width: r, height: a } = s;
|
|
@@ -565,9 +565,9 @@ function Cs(n, t, e) {
|
|
|
565
565
|
return `rgb(${i(0)}, ${i(1)}, ${i(2)})`;
|
|
566
566
|
}
|
|
567
567
|
const Ls = 2;
|
|
568
|
-
function
|
|
568
|
+
function Ie(n, t, e, s) {
|
|
569
569
|
const { view: o, colours: i } = t;
|
|
570
|
-
if (!
|
|
570
|
+
if (!Le(e, o.width, o.height)) return;
|
|
571
571
|
if (e.miniature) {
|
|
572
572
|
Ts(n, t, e, s);
|
|
573
573
|
return;
|
|
@@ -586,7 +586,7 @@ function Se(n, t, e, s) {
|
|
|
586
586
|
n.fillStyle = u.fill === null ? a : p, n.globalAlpha = 0.3 * s, n.fillRect(e.mainFrom, I, d, b), n.globalAlpha = s, _ > 0 && n.fillRect(e.mainFrom, I, _, b);
|
|
587
587
|
}
|
|
588
588
|
if (r.hatched) {
|
|
589
|
-
const b = Math.max(1, Math.min(
|
|
589
|
+
const b = Math.max(1, Math.min(Me, Math.floor((d - 2 * et) / 3))), I = d >= 4 * b ? et : 0, _ = l >= 4 * et ? et : 0;
|
|
590
590
|
n.globalAlpha = s, n.fillStyle = p, n.fillRect(e.mainFrom + I, c + _, b, l - 2 * _), n.fillRect(e.mainTo - I - b, c + _, b, l - 2 * _);
|
|
591
591
|
}
|
|
592
592
|
r.open && _s(n, e, c, l, i.surface, o.width), r.dashed && (n.globalAlpha = s, n.strokeStyle = a, n.setLineDash([4, 3]), n.strokeRect(e.mainFrom + 0.5, c + 0.5, d - 1, l - 1), n.setLineDash([])), n.globalAlpha = 1, e.depth > 0 && s === 1 && (n.strokeStyle = i.surface, n.strokeRect(e.outerFrom - 0.5, c - 0.5, e.outerTo - e.outerFrom + 1, l + 1));
|
|
@@ -639,7 +639,7 @@ function Fs(n, t, e) {
|
|
|
639
639
|
}
|
|
640
640
|
}
|
|
641
641
|
}
|
|
642
|
-
function
|
|
642
|
+
function Ae(n, t, e, s) {
|
|
643
643
|
const o = ct(e, s.lane);
|
|
644
644
|
if (o === null) return;
|
|
645
645
|
const i = P(e, s.from), r = Math.max(i + 2, P(e, s.to));
|
|
@@ -681,13 +681,10 @@ function Ns(n, t, e, s) {
|
|
|
681
681
|
i !== e && (s(t, i) || o.add(i));
|
|
682
682
|
return o;
|
|
683
683
|
}
|
|
684
|
-
function Ae(n) {
|
|
685
|
-
return new Date(n).getTimezoneOffset() * U;
|
|
686
|
-
}
|
|
687
684
|
function Gs(n, t) {
|
|
688
685
|
const { step: e, offset: s } = typeof t == "number" ? { step: t, offset: 0 } : t;
|
|
689
686
|
if (!(e > 0) || !Number.isFinite(n)) return n;
|
|
690
|
-
const o =
|
|
687
|
+
const o = me(n) + s;
|
|
691
688
|
return o + Math.round((n - o) / e) * e;
|
|
692
689
|
}
|
|
693
690
|
const re = "\0placing", ae = /* @__PURE__ */ new Set();
|
|
@@ -704,7 +701,7 @@ function le(n) {
|
|
|
704
701
|
}
|
|
705
702
|
}
|
|
706
703
|
const he = 3, Rs = 10, $s = 600;
|
|
707
|
-
class
|
|
704
|
+
class Bs {
|
|
708
705
|
constructor(t) {
|
|
709
706
|
f(this, "gesture", { kind: "none" });
|
|
710
707
|
f(this, "touches", /* @__PURE__ */ new Map());
|
|
@@ -757,7 +754,7 @@ class Os {
|
|
|
757
754
|
ghostSummary() {
|
|
758
755
|
const t = this.gesture;
|
|
759
756
|
if (t.kind !== "edit" && t.kind !== "place") return null;
|
|
760
|
-
const e =
|
|
757
|
+
const e = Se(this.host.view.viewport(), t.ghost);
|
|
761
758
|
if (e === null) return null;
|
|
762
759
|
const s = this.ghostFindings(t.ghost, this.ghostHome(t)), o = t.kind === "edit" && (t.mode === "setup" || t.mode === "teardown"), i = o ? ut(t.ghost) : t.ghost;
|
|
763
760
|
return {
|
|
@@ -852,7 +849,7 @@ class Os {
|
|
|
852
849
|
const a = ls(r, t, e);
|
|
853
850
|
if (a !== null) return { mode: a === "from" ? "stretch-from" : "stretch-to", subtask: r.subtask };
|
|
854
851
|
}
|
|
855
|
-
if (
|
|
852
|
+
if (Ce(r, t, e) !== null)
|
|
856
853
|
return o.includes("move") || o.includes("lane") ? { mode: "move", subtask: r.subtask } : { mode: "pan", subtask: r.subtask };
|
|
857
854
|
}
|
|
858
855
|
return { mode: "pan", subtask: null };
|
|
@@ -1110,7 +1107,7 @@ class Os {
|
|
|
1110
1107
|
let c = i.from;
|
|
1111
1108
|
const l = o.viewport().scale, d = l.fromPx(e) - t.t0;
|
|
1112
1109
|
if (a.includes("move") && Math.abs(d * l.m) >= he) {
|
|
1113
|
-
const g = j(o.options.calendar), b =
|
|
1110
|
+
const g = j(o.options.calendar), b = O(i.from, g) + d, I = g.intervals.length === 0 ? b : U(Math.max(0, Math.min(g.total, b)), g);
|
|
1114
1111
|
c = this.snapInside(I, r);
|
|
1115
1112
|
}
|
|
1116
1113
|
let p = t.ghost.lane;
|
|
@@ -1122,9 +1119,9 @@ class Os {
|
|
|
1122
1119
|
return { ...i, from: c, to: c + (i.to - i.from), lane: p };
|
|
1123
1120
|
}
|
|
1124
1121
|
case "stretch-from":
|
|
1125
|
-
return { ...i, from: Math.min(u, i.to - Math.max(r.step,
|
|
1122
|
+
return { ...i, from: Math.min(u, i.to - Math.max(r.step, q)) };
|
|
1126
1123
|
case "stretch-to":
|
|
1127
|
-
return { ...i, to: Math.max(u, i.from + Math.max(r.step,
|
|
1124
|
+
return { ...i, to: Math.max(u, i.from + Math.max(r.step, q)) };
|
|
1128
1125
|
case "setup":
|
|
1129
1126
|
return { ...i, setup: Math.max(0, i.from - u) };
|
|
1130
1127
|
case "teardown":
|
|
@@ -1136,7 +1133,7 @@ class Os {
|
|
|
1136
1133
|
the plant does not run. */
|
|
1137
1134
|
snapInside(t, e) {
|
|
1138
1135
|
const s = Gs(t, e), o = j(this.host.view.options.calendar);
|
|
1139
|
-
return o.intervals.length === 0 ? s :
|
|
1136
|
+
return o.intervals.length === 0 ? s : U(O(s, o), o);
|
|
1140
1137
|
}
|
|
1141
1138
|
intentsOf(t, e, s) {
|
|
1142
1139
|
const o = [], i = this.host.view.options.intents, r = t.id;
|
|
@@ -1160,13 +1157,13 @@ class Os {
|
|
|
1160
1157
|
return { overlaps: At(r).filter(a), late: _t(c, u) };
|
|
1161
1158
|
}
|
|
1162
1159
|
}
|
|
1163
|
-
const _e = [],
|
|
1164
|
-
function Hs(n, t =
|
|
1165
|
-
return n > 0 ? Math.min(st, Math.max(15 *
|
|
1160
|
+
const _e = [], Os = 56;
|
|
1161
|
+
function Hs(n, t = Os) {
|
|
1162
|
+
return n > 0 ? Math.min(st, Math.max(15 * q, je(n * t, 1))) : 15 * q;
|
|
1166
1163
|
}
|
|
1167
1164
|
function Ys(n, t, e = _e) {
|
|
1168
1165
|
const [s, o] = Fe(n, e);
|
|
1169
|
-
return Ve(e, s, o, t,
|
|
1166
|
+
return Ve(e, s, o, t, me(s)).filter(
|
|
1170
1167
|
(i) => i.operatingTime >= n[0] && i.operatingTime <= n[1]
|
|
1171
1168
|
);
|
|
1172
1169
|
}
|
|
@@ -1179,8 +1176,8 @@ function Xs(n, t = _e) {
|
|
|
1179
1176
|
o.push({
|
|
1180
1177
|
start: r,
|
|
1181
1178
|
end: a,
|
|
1182
|
-
from:
|
|
1183
|
-
to:
|
|
1179
|
+
from: O(r, t),
|
|
1180
|
+
to: O(a, t)
|
|
1184
1181
|
});
|
|
1185
1182
|
}
|
|
1186
1183
|
return o;
|
|
@@ -1198,7 +1195,7 @@ function Fe(n, t) {
|
|
|
1198
1195
|
const e = j(t);
|
|
1199
1196
|
if (e.intervals.length === 0) return [n[0], n[1]];
|
|
1200
1197
|
const s = (o) => Math.max(0, Math.min(e.total, o));
|
|
1201
|
-
return [
|
|
1198
|
+
return [U(s(n[0]), e), U(s(n[1]), e)];
|
|
1202
1199
|
}
|
|
1203
1200
|
const lt = 44;
|
|
1204
1201
|
class Ws {
|
|
@@ -1237,11 +1234,11 @@ class Ws {
|
|
|
1237
1234
|
setOptions(t, e) {
|
|
1238
1235
|
const s = t.calendar !== this.options.calendar, o = this.options.calendar;
|
|
1239
1236
|
if (this.options = t, e !== null)
|
|
1240
|
-
this.domain = [
|
|
1237
|
+
this.domain = [O(e[0], t.calendar), O(e[1], t.calendar)];
|
|
1241
1238
|
else if (s) {
|
|
1242
1239
|
const i = j(o), r = (a) => {
|
|
1243
1240
|
const u = i.intervals.length === 0 ? a : Math.max(0, Math.min(i.total, a));
|
|
1244
|
-
return
|
|
1241
|
+
return O(U(u, i), t.calendar) + (a - u);
|
|
1245
1242
|
};
|
|
1246
1243
|
this.domain = [r(this.domain[0]), r(this.domain[1])];
|
|
1247
1244
|
}
|
|
@@ -1280,7 +1277,7 @@ class Ws {
|
|
|
1280
1277
|
for (const e of this.data.subtasks) {
|
|
1281
1278
|
const s = Lt(this.rows, e.lane);
|
|
1282
1279
|
if (s === null) continue;
|
|
1283
|
-
const o =
|
|
1280
|
+
const o = Te(t, e, e.lane, s, this.data.depth.get(e.id) ?? 0);
|
|
1284
1281
|
this.boxes.push(o), this.boxById.set(e.id, o);
|
|
1285
1282
|
}
|
|
1286
1283
|
this.paths = [];
|
|
@@ -1307,12 +1304,12 @@ class Ws {
|
|
|
1307
1304
|
nowX() {
|
|
1308
1305
|
const t = this.options.now;
|
|
1309
1306
|
if (t === null || this.width <= 0) return null;
|
|
1310
|
-
const e = Math.round(this.viewport().scale.toPx(
|
|
1307
|
+
const e = Math.round(this.viewport().scale.toPx(O(t, this.options.calendar)));
|
|
1311
1308
|
return e >= 0 && e <= this.width ? e : null;
|
|
1312
1309
|
}
|
|
1313
1310
|
hitAt(t, e) {
|
|
1314
1311
|
for (let r = this.boxes.length - 1; r >= 0; r--) {
|
|
1315
|
-
const a = this.boxes[r], u =
|
|
1312
|
+
const a = this.boxes[r], u = Ce(a, t, e);
|
|
1316
1313
|
if (u !== null) return { kind: "subtask", subtask: a.subtask, part: u };
|
|
1317
1314
|
}
|
|
1318
1315
|
let s = null, o = 4;
|
|
@@ -1327,7 +1324,7 @@ class Ws {
|
|
|
1327
1324
|
/** The wall-clock time at a plot x; within the calendar's extent. */
|
|
1328
1325
|
timeAt(t) {
|
|
1329
1326
|
const e = this.viewport().scale.fromPx(t), s = j(this.options.calendar);
|
|
1330
|
-
return s.intervals.length === 0 ? e :
|
|
1327
|
+
return s.intervals.length === 0 ? e : U(Math.max(0, Math.min(s.total, e)), s);
|
|
1331
1328
|
}
|
|
1332
1329
|
/** The lane at a y, strips included: what the pointer is ON.
|
|
1333
1330
|
|
|
@@ -1441,7 +1438,7 @@ class zs {
|
|
|
1441
1438
|
f(this, "drop", (t) => this.gestures.drop(t));
|
|
1442
1439
|
f(this, "dragLeave", () => this.gestures.clearPlacing());
|
|
1443
1440
|
f(this, "cancelEdit", () => this.gestures.cancelEdit());
|
|
1444
|
-
this.gestures = new
|
|
1441
|
+
this.gestures = new Bs({
|
|
1445
1442
|
data: this.data,
|
|
1446
1443
|
view: this.view,
|
|
1447
1444
|
plotElement: () => this.plot,
|
|
@@ -1565,7 +1562,7 @@ class zs {
|
|
|
1565
1562
|
if (t.width <= 0) return [];
|
|
1566
1563
|
const e = this.colours;
|
|
1567
1564
|
return t.boxes.flatMap((s) => {
|
|
1568
|
-
if (!
|
|
1565
|
+
if (!Le(s, t.width, t.height)) return [];
|
|
1569
1566
|
const o = us(s, t.width);
|
|
1570
1567
|
if (o === null) return [];
|
|
1571
1568
|
const i = e === null ? void 0 : e.tasks.get(s.subtask.task), r = i === void 0 || e === null ? !0 : Ft(ht(s.subtask.appearance), i, e).onDark;
|
|
@@ -1582,7 +1579,7 @@ class zs {
|
|
|
1582
1579
|
}
|
|
1583
1580
|
/** The visible span, as two wall-clock instants. */
|
|
1584
1581
|
visibleDomain() {
|
|
1585
|
-
const t = j(this.view.options.calendar), e = (s) => t.intervals.length === 0 ? s :
|
|
1582
|
+
const t = j(this.view.options.calendar), e = (s) => t.intervals.length === 0 ? s : U(Math.max(0, Math.min(t.total, s)), t);
|
|
1586
1583
|
return [e(this.view.domain[0]), e(this.view.domain[1])];
|
|
1587
1584
|
}
|
|
1588
1585
|
/** Reported once per frame, however many wheel steps a planner turns - and
|
|
@@ -1640,7 +1637,7 @@ class zs {
|
|
|
1640
1637
|
ks(s, i), ws(o, i);
|
|
1641
1638
|
}
|
|
1642
1639
|
}
|
|
1643
|
-
const qs = "_root_ekx9o_4
|
|
1640
|
+
const qs = "_root_ekx9o_4 _text_1hv7a_23", js = "_corner_ekx9o_18", Vs = "_dayBand_ekx9o_22", Zs = "_tickBand_ekx9o_23", Js = "_day_ekx9o_22", Qs = "_dayLabel_ekx9o_46", tn = "_tick_ekx9o_23", en = "_tickLabel_ekx9o_64", sn = "_headers_ekx9o_72", nn = "_header_ekx9o_72", on = "_headerLabel_ekx9o_90", rn = "_headerCount_ekx9o_103", an = "_chevron_ekx9o_112", ln = "_plot_ekx9o_160", hn = "_layer_ekx9o_166", un = "_grip_ekx9o_175", cn = "_ghostLabel_ekx9o_185", dn = "_finding_ekx9o_198", fn = "_refusal_ekx9o_206", pn = "_tooltip_ekx9o_210", mn = "_tooltipHead_ekx9o_228", gn = "_tooltipTimes_ekx9o_233", kn = "_now_ekx9o_242", wn = "_barLabel_ekx9o_256", vn = "_barLabelText_ekx9o_269", v = {
|
|
1644
1641
|
root: qs,
|
|
1645
1642
|
corner: js,
|
|
1646
1643
|
dayBand: Vs,
|
|
@@ -1668,8 +1665,8 @@ const qs = "_root_ekx9o_4 _text_18b86_23", js = "_corner_ekx9o_18", Vs = "_dayBa
|
|
|
1668
1665
|
barLabelText: vn
|
|
1669
1666
|
};
|
|
1670
1667
|
function yn({ target: n }) {
|
|
1671
|
-
const t =
|
|
1672
|
-
const d = Math.round(l /
|
|
1668
|
+
const t = ge(), e = ke(), s = (l) => t.time(new Date(l), !1), o = (l) => {
|
|
1669
|
+
const d = Math.round(l / q), p = Math.floor(d / 60), g = d % 60;
|
|
1673
1670
|
return [p > 0 ? e.hoursShort(p) : "", g > 0 || p === 0 ? e.minutesShort(g) : ""].filter(Boolean).join(" ");
|
|
1674
1671
|
};
|
|
1675
1672
|
if (n.kind === "subtask") {
|
|
@@ -1717,34 +1714,34 @@ const bn = [], ce = { min: Tt, max: 28 * st }, Mn = [], de = 20, Fn = Xe(functio
|
|
|
1717
1714
|
attach: G = "centre",
|
|
1718
1715
|
ends: V = "dot",
|
|
1719
1716
|
label: ot,
|
|
1720
|
-
tooltip:
|
|
1717
|
+
tooltip: W,
|
|
1721
1718
|
now: Z,
|
|
1722
1719
|
className: Et,
|
|
1723
1720
|
style: Ee,
|
|
1724
1721
|
children: xe
|
|
1725
|
-
} = t, [k] = it(() => new zs()), xt = Ke(), Dt = $(null), Pt = $(null), Nt = $(null), Gt = $(null), X =
|
|
1726
|
-
|
|
1722
|
+
} = t, [k] = it(() => new zs()), xt = Ke(), Dt = $(null), Pt = $(null), Nt = $(null), Gt = $(null), X = ge(), K = ke(), [dt, ft] = o, Rt = (c == null ? void 0 : c.min) ?? ce.min, $t = (c == null ? void 0 : c.max) ?? ce.max, Bt = $(null), Ot = typeof l == "object" ? l.step : null, Ht = typeof l == "object" ? l.offset : null, Yt = typeof l == "object" ? null : l, [De, Pe] = it(() => Date.now());
|
|
1723
|
+
B(() => {
|
|
1727
1724
|
if (Z !== !0) return;
|
|
1728
|
-
const h = setInterval(() => Pe(Date.now()),
|
|
1725
|
+
const h = setInterval(() => Pe(Date.now()), q);
|
|
1729
1726
|
return () => clearInterval(h);
|
|
1730
1727
|
}, [Z]);
|
|
1731
1728
|
const Xt = Z === !0 ? De : typeof Z == "number" ? Z : null;
|
|
1732
1729
|
vt(() => {
|
|
1733
|
-
const h = `${dt}|${ft}`, y =
|
|
1734
|
-
|
|
1735
|
-
const A = Yt ?? { step:
|
|
1730
|
+
const h = `${dt}|${ft}`, y = Bt.current !== h;
|
|
1731
|
+
Bt.current = h;
|
|
1732
|
+
const A = Yt ?? { step: Ot ?? 0, offset: Ht ?? 0 };
|
|
1736
1733
|
k.setOptions(
|
|
1737
1734
|
{ laneHeight: r, calendar: u, zoomLimits: { min: Rt, max: $t }, snap: A, intents: d, now: Xt, route: F, attach: G, ends: V },
|
|
1738
1735
|
y ? [dt, ft] : null
|
|
1739
1736
|
);
|
|
1740
|
-
}, [k, dt, ft, r, u, Rt, $t, Yt,
|
|
1737
|
+
}, [k, dt, ft, r, u, Rt, $t, Yt, Ot, Ht, d, Xt, F, G, V]), B(() => {
|
|
1741
1738
|
k.setHandlers({ onIntent: p, canMoveTo: g, onInteraction: b, onSelectedTaskChange: _, onCollapsedGroupsChange: C, onDomainChange: L });
|
|
1742
1739
|
}, [k, p, g, b, _, C, L]);
|
|
1743
1740
|
const Ne = $(m);
|
|
1744
|
-
|
|
1741
|
+
B(() => {
|
|
1745
1742
|
const h = Ne.current;
|
|
1746
1743
|
h !== void 0 && k.setDefaultCollapsedGroups(h);
|
|
1747
|
-
}, [k]),
|
|
1744
|
+
}, [k]), B(() => {
|
|
1748
1745
|
k.setCollapsedGroups(S);
|
|
1749
1746
|
}, [k, S]), Ue(
|
|
1750
1747
|
e,
|
|
@@ -1754,11 +1751,11 @@ const bn = [], ce = { min: Tt, max: 28 * st }, Mn = [], de = 20, Fn = Xe(functio
|
|
|
1754
1751
|
visibleDomain: () => k.visibleDomain()
|
|
1755
1752
|
}),
|
|
1756
1753
|
[k]
|
|
1757
|
-
),
|
|
1754
|
+
), B(() => {
|
|
1758
1755
|
k.setControlledTask(I);
|
|
1759
|
-
}, [k, I]),
|
|
1756
|
+
}, [k, I]), B(() => {
|
|
1760
1757
|
k.setPlacing(E ?? null);
|
|
1761
|
-
}, [k, E]),
|
|
1758
|
+
}, [k, E]), B(() => {
|
|
1762
1759
|
const h = Dt.current, y = Pt.current, A = Nt.current, R = Gt.current;
|
|
1763
1760
|
if (!h || !y || !A || !R) return;
|
|
1764
1761
|
k.bind(h, y, A, R);
|
|
@@ -1782,13 +1779,13 @@ const bn = [], ce = { min: Tt, max: 28 * st }, Mn = [], de = 20, Fn = Xe(functio
|
|
|
1782
1779
|
const T = We(k.subscribe, k.getSnapshot, k.getServerSnapshot), Ge = (h, y) => {
|
|
1783
1780
|
const A = new Date(h);
|
|
1784
1781
|
return y >= 200 ? X.dateLong(A) : y >= 84 ? X.date(A) : y >= 44 ? X.dateShort(A) : "";
|
|
1785
|
-
}, M = T.ghost, pt = (h) => `${xt}-row-${encodeURIComponent(h.key)}`, Re =
|
|
1782
|
+
}, M = T.ghost, pt = (h) => `${xt}-row-${encodeURIComponent(h.key)}`, Re = z(() => {
|
|
1786
1783
|
const h = /* @__PURE__ */ new Map();
|
|
1787
1784
|
for (const y of T.headers)
|
|
1788
1785
|
for (const A of y.within)
|
|
1789
1786
|
y.kind === "groupHead" && A === y.group || h.set(A, [...h.get(A) ?? [], pt(y)]);
|
|
1790
1787
|
return h;
|
|
1791
|
-
}, [T.headers, xt]), $e =
|
|
1788
|
+
}, [T.headers, xt]), $e = z(() => new Set((M == null ? void 0 : M.refusedLanes) ?? []), [M == null ? void 0 : M.refusedLanes]), Kt = $(null), [mt, Be] = it({ x: 0, y: 0, at: "" }), gt = M === null ? "" : `${M.x}:${M.y}:${M.from}:${M.to}:${M.overlap}:${M.late}`;
|
|
1792
1789
|
vt(() => {
|
|
1793
1790
|
const h = Kt.current;
|
|
1794
1791
|
if (M === null || h === null) return;
|
|
@@ -1797,9 +1794,9 @@ const bn = [], ce = { min: Tt, max: 28 * st }, Mn = [], de = 20, Fn = Xe(functio
|
|
|
1797
1794
|
y: A >= 2 ? A : Math.min(R, T.height - h.offsetHeight - 2),
|
|
1798
1795
|
at: gt
|
|
1799
1796
|
};
|
|
1800
|
-
|
|
1797
|
+
Be((D) => D.x === x.x && D.y === x.y && D.at === x.at ? D : x);
|
|
1801
1798
|
}, [M, gt, T.width, T.height]);
|
|
1802
|
-
const Ut = $(null), [kt,
|
|
1799
|
+
const Ut = $(null), [kt, Oe] = it({ x: 0, y: 0, at: "" }), H = T.tooltip, wt = H === null ? "" : `${H.x}:${H.y}:${H.target.kind}`;
|
|
1803
1800
|
return vt(() => {
|
|
1804
1801
|
const h = Ut.current;
|
|
1805
1802
|
if (H === null || h === null) return;
|
|
@@ -1811,8 +1808,8 @@ const bn = [], ce = { min: Tt, max: 28 * st }, Mn = [], de = 20, Fn = Xe(functio
|
|
|
1811
1808
|
y: A(H.y, h.offsetHeight, T.height),
|
|
1812
1809
|
at: wt
|
|
1813
1810
|
};
|
|
1814
|
-
|
|
1815
|
-
}, [H, wt, T.width, T.height]), /* @__PURE__ */ Y(
|
|
1811
|
+
Oe((x) => x.x === R.x && x.y === R.y && x.at === R.at ? x : R);
|
|
1812
|
+
}, [H, wt, T.width, T.height]), /* @__PURE__ */ Y(we.Provider, { value: k, children: [
|
|
1816
1813
|
/* @__PURE__ */ Y(
|
|
1817
1814
|
"div",
|
|
1818
1815
|
{
|
|
@@ -1905,7 +1902,7 @@ const bn = [], ce = { min: Tt, max: 28 * st }, Mn = [], de = 20, Fn = Xe(functio
|
|
|
1905
1902
|
},
|
|
1906
1903
|
h.subtask.id
|
|
1907
1904
|
)),
|
|
1908
|
-
|
|
1905
|
+
W !== !1 && T.tooltip !== null && /* @__PURE__ */ w(
|
|
1909
1906
|
"span",
|
|
1910
1907
|
{
|
|
1911
1908
|
ref: Ut,
|
|
@@ -1918,7 +1915,7 @@ const bn = [], ce = { min: Tt, max: 28 * st }, Mn = [], de = 20, Fn = Xe(functio
|
|
|
1918
1915
|
top: `${kt.y}px`,
|
|
1919
1916
|
visibility: kt.at === wt ? void 0 : "hidden"
|
|
1920
1917
|
},
|
|
1921
|
-
children: typeof
|
|
1918
|
+
children: typeof W == "function" ? W(T.tooltip.target) : /* @__PURE__ */ w(yn, { target: T.tooltip.target })
|
|
1922
1919
|
}
|
|
1923
1920
|
),
|
|
1924
1921
|
M !== null && /* @__PURE__ */ Y(
|
|
@@ -1958,20 +1955,20 @@ const bn = [], ce = { min: Tt, max: 28 * st }, Mn = [], de = 20, Fn = Xe(functio
|
|
|
1958
1955
|
] });
|
|
1959
1956
|
});
|
|
1960
1957
|
function En({ id: n, label: t }) {
|
|
1961
|
-
const e =
|
|
1958
|
+
const e = ye(), s = z(() => ({ id: n, label: t ?? n, ...e === null ? {} : { parent: e } }), [n, t, e]);
|
|
1962
1959
|
return ts(s), null;
|
|
1963
1960
|
}
|
|
1964
1961
|
function xn({ id: n, label: t, children: e }) {
|
|
1965
|
-
const s =
|
|
1966
|
-
return es(o), /* @__PURE__ */ w(
|
|
1962
|
+
const s = ye(), o = z(() => ({ id: n, label: t ?? n, ...s === null ? {} : { parent: s } }), [n, t, s]);
|
|
1963
|
+
return es(o), /* @__PURE__ */ w(ve.Provider, { value: n, children: e });
|
|
1967
1964
|
}
|
|
1968
1965
|
function Dn({ data: n, tasks: t }) {
|
|
1969
|
-
const e =
|
|
1970
|
-
return
|
|
1966
|
+
const e = z(() => ({ kind: "subtasks", data: n, tasks: t }), [n, t]);
|
|
1967
|
+
return be("Subtasks", e), null;
|
|
1971
1968
|
}
|
|
1972
1969
|
function Pn({ data: n }) {
|
|
1973
|
-
const t =
|
|
1974
|
-
return
|
|
1970
|
+
const t = z(() => ({ kind: "transports", data: n }), [n]);
|
|
1971
|
+
return be("Transports", t), null;
|
|
1975
1972
|
}
|
|
1976
1973
|
function Nn(n, t, e) {
|
|
1977
1974
|
if (e.kind === "place") return [];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@umriss-ui/schedule",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "The umriss schedule - subtasks on lanes over time, with transports, findings and controlled editing.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Roman Händler",
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"react": ">=18",
|
|
46
46
|
"react-dom": ">=18",
|
|
47
|
-
"@umriss-ui/charts": "^0.
|
|
48
|
-
"@umriss-ui/core": "^0.
|
|
47
|
+
"@umriss-ui/charts": "^0.4.0",
|
|
48
|
+
"@umriss-ui/core": "^0.5.0"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"@fontsource/geist-mono": "^5.3.0",
|
|
@@ -59,9 +59,9 @@
|
|
|
59
59
|
"typescript": "^5.6.3",
|
|
60
60
|
"vite": "^6.0.0",
|
|
61
61
|
"vite-plugin-dts": "^4.3.0",
|
|
62
|
-
"@umriss-ui/charts": "0.
|
|
63
|
-
"@umriss-ui/
|
|
64
|
-
"@umriss-ui/
|
|
62
|
+
"@umriss-ui/charts": "0.4.0",
|
|
63
|
+
"@umriss-ui/core": "0.5.0",
|
|
64
|
+
"@umriss-ui/demo": "0.0.0"
|
|
65
65
|
},
|
|
66
66
|
"scripts": {
|
|
67
67
|
"props": "node --disable-warning=ExperimentalWarning --experimental-strip-types demo/props.ts",
|