@umriss-ui/schedule 0.44.0 → 0.46.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/CHANGELOG.md +28 -0
- package/README.md +21 -3
- package/dist/index.d.ts +19 -5
- package/dist/schedule.css +1 -1
- package/dist/schedule.js +1382 -1258
- package/docs/llms-full.md +467 -68
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -18,6 +18,34 @@ moves from here under the rule above.
|
|
|
18
18
|
|
|
19
19
|
---
|
|
20
20
|
|
|
21
|
+
## 0.46.0 – Zoom keys, and the plan as a table (Oct. 2026)
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
|
|
25
|
+
- **On the focused plot `+` and `=` zoom in, `-` and `_` zoom out and `0` fits the work**, about the active subtask, each reported once through `onViewChange`; the live region says the new span.
|
|
26
|
+
- **`useSchedule` hands back `DataTable`:** placed inside a `Schedule` it adds a "Show data" key that opens a table of the subtasks in view - lane, task, subtask, from and to with their dates, duration, findings - while the plot and the lane headers are hidden.
|
|
27
|
+
- **The demo shows what the application writes itself:** zoom and fit buttons, undo of the applied intents, a critical path and a highlighted lane.
|
|
28
|
+
|
|
29
|
+
### Changed
|
|
30
|
+
|
|
31
|
+
- **A `Schedule`'s children render inside its root element** instead of after it; the parts that declare render nothing, so nothing visible moves.
|
|
32
|
+
- Migration: nothing changes unless a child of `Schedule` renders an element of its own, which now lands in the grid inside the root.
|
|
33
|
+
- **The peer ranges on core and charts move to `^0.46.0`.**
|
|
34
|
+
- Migration: install the 0.46 versions of `@umriss-ui/core` and `@umriss-ui/charts` beside it.
|
|
35
|
+
|
|
36
|
+
## 0.45.0 – A plan in the plant's time (Oct. 2026)
|
|
37
|
+
|
|
38
|
+
### Added
|
|
39
|
+
|
|
40
|
+
- **The schedule follows the time zone named in core's formats** (ADR-0076): the day and fine bands, the snap raster of a drag or a key move, and today are the zone's, and the zone's name stands once above the lane headers and in the plot's description where the reader's own zone is another. `snapTime` takes the zone as an optional last argument.
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
|
|
44
|
+
- **On the day the clocks go back, the time axis follows the clock change** in the reader's zone as in a named one: a two-hour step stays on even hours, and a time inside the doubled hour carries its offset (`02:30 GMT+1`) in the band, the tooltip, the ghost and the summary. Today covers the whole 25-hour day.
|
|
45
|
+
- Migration: none needed; only a plan across a clock change looks different.
|
|
46
|
+
- **The peer ranges on core and charts move to `^0.45.0`.**
|
|
47
|
+
- Migration: install the 0.45 versions of `@umriss-ui/core` and `@umriss-ui/charts` beside it.
|
|
48
|
+
|
|
21
49
|
## 0.44.0 – Malformed data says so, and the handle goes (Oct. 2026)
|
|
22
50
|
|
|
23
51
|
### Added
|
package/README.md
CHANGED
|
@@ -138,12 +138,20 @@ A tooltip on a hovered subtask or dependency names the order, the times, lead-in
|
|
|
138
138
|
and lead-out and the findings; `tooltip` replaces its content or switches it
|
|
139
139
|
off. `now` draws the present across the lanes. The wheel over the schedule,
|
|
140
140
|
lane headers included, scrolls the lanes and releases the page at their end,
|
|
141
|
-
Ctrl or ⌘ and a pinch zoom, Shift pans; on a touch screen one finger pans, a
|
|
141
|
+
Ctrl or ⌘ and a pinch zoom, Shift pans; on the focused plot `+` (or `=`) zooms in, `-` zooms out and `0` fits the work, and the live region says the new span; on a touch screen one finger pans, a
|
|
142
142
|
tap selects and a long press on a bar grabs it (with `"move"` or `"lane"` in `intents`), and a vertical swipe scrolls the page while all lanes fit (when they
|
|
143
143
|
overflow, the lane names scroll the page). The lane headers take at most 40 % of the width, so that on a
|
|
144
144
|
phone the plot keeps the larger part; `positionAt` and `clientPointOf`, on what
|
|
145
145
|
`useSchedule` hands back, turn a client point into a time and a lane and back.
|
|
146
146
|
|
|
147
|
+
`DataTable`, which `useSchedule` hands back, is opt-in: placed inside the
|
|
148
|
+
`Schedule`, it adds a Show data key beside the bottom time band. The key opens a
|
|
149
|
+
table over the lanes and the plot, one row per subtask whose time, lead-in and
|
|
150
|
+
lead-out included, touches the span in view, in lane order, with the lane,
|
|
151
|
+
task, subtask, from and to with their dates, the duration and the findings in
|
|
152
|
+
words - a reader walks it with a screen reader's table keys instead of one
|
|
153
|
+
subtask at a time. Without the part nothing changes.
|
|
154
|
+
|
|
147
155
|
## Its size
|
|
148
156
|
|
|
149
157
|
The width is the host's. Without `height`, a schedule fills its frame - a stretched grid cell, a card the
|
|
@@ -185,11 +193,21 @@ pointer's tooltip names it by label (or id) and time; the keys walk to it in
|
|
|
185
193
|
time order among the work of its lane, and the live region reads its lane,
|
|
186
194
|
label and time.
|
|
187
195
|
|
|
196
|
+
## The plant's time zone
|
|
197
|
+
|
|
198
|
+
The schedule follows the `timeZone` of core's formats (`<LanguageProvider formats={{ timeZone: "Europe/Berlin" }}>`);
|
|
199
|
+
it takes no prop of its own. The fine band reads the zone's hours, the day band holds the zone's days, "today"
|
|
200
|
+
is the zone's, and the now line, an instant, does not move. A `snap` raster is laid on the zone's time: eight
|
|
201
|
+
hours offset by six snap to 06:00, 14:00 and 22:00 there on both sides of a clock change (`snapTime(time,
|
|
202
|
+
raster, timeZone?)` takes the zone as its last argument). A time inside the hour a clock change doubles carries
|
|
203
|
+
its offset (`02:30 GMT+1`), in the band, the tooltip, the ghost and the summary. Where the reader's zone is
|
|
204
|
+
another, the zone's name stands once above the lane headers and in the plot's description (core's
|
|
205
|
+
`useTimeZoneLabel`); without a named zone, nothing changes.
|
|
206
|
+
|
|
188
207
|
## Not yet
|
|
189
208
|
|
|
190
209
|
What the schedule does not do today, and waits for a caller who needs it (what
|
|
191
|
-
it never does stands in ADR-0032)
|
|
192
|
-
plant's zone is not yet offered (ADR-0060).
|
|
210
|
+
it never does stands in ADR-0032).
|
|
193
211
|
|
|
194
212
|
* **Stacked overlap** — overlapping subtasks packed into sub-lanes on request;
|
|
195
213
|
today an overlap is always drawn offset, as the finding it is.
|
package/dist/index.d.ts
CHANGED
|
@@ -43,6 +43,13 @@ export declare interface BlockedTimesProps {
|
|
|
43
43
|
data: readonly BlockedTime[];
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
/** The plan as a table, on demand: a key beside the bottom time band opens a
|
|
47
|
+
table of the subtasks in view - lane, task, subtask, from and to with
|
|
48
|
+
their dates, duration and findings in words. For a reader who wants every
|
|
49
|
+
value at once. Place it inside a `Schedule`; it takes no props and renders
|
|
50
|
+
nothing outside one. */
|
|
51
|
+
declare function DataTable(): ReactNode;
|
|
52
|
+
|
|
46
53
|
/** When a dependency leaves its subtask, by its anchor. */
|
|
47
54
|
export declare function departure(dependency: Dependency, from: Subtask): number;
|
|
48
55
|
|
|
@@ -523,6 +530,13 @@ export declare interface ScheduleParts {
|
|
|
523
530
|
Dependencies: typeof Dependencies;
|
|
524
531
|
BlockedTimes: typeof BlockedTimes;
|
|
525
532
|
Milestones: typeof Milestones;
|
|
533
|
+
/** The plan as a table, on demand: placed inside the `Schedule`, it gives the
|
|
534
|
+
schedule a "Show data" key beside the bottom time band, and the key opens
|
|
535
|
+
a table of the subtasks in view - lane, task, subtask, from and to with
|
|
536
|
+
their dates, duration and findings in words. For a reader who wants every
|
|
537
|
+
value at once. It takes no props and renders nothing outside a
|
|
538
|
+
`Schedule`. */
|
|
539
|
+
DataTable: typeof DataTable;
|
|
526
540
|
/** How the planner is looking at the plan: the span and the folded groups. */
|
|
527
541
|
view: ScheduleView;
|
|
528
542
|
/** Goes to a whole view; what it leaves out is shown whole again. Not
|
|
@@ -642,10 +656,10 @@ export declare interface SnapRaster {
|
|
|
642
656
|
readonly offset: number;
|
|
643
657
|
}
|
|
644
658
|
|
|
645
|
-
/** `time` onto the nearest line of the raster in
|
|
646
|
-
|
|
647
|
-
stays as it is. */
|
|
648
|
-
export declare function snapTime(time: number, raster: number | SnapRaster): number;
|
|
659
|
+
/** `time` onto the nearest line of the raster in the zone's time, the reader's
|
|
660
|
+
unless one is named - a step alone starts at the zone's midnight. A step of
|
|
661
|
+
zero or less is no raster: the time stays as it is. */
|
|
662
|
+
export declare function snapTime(time: number, raster: number | SnapRaster, timeZone?: string): number;
|
|
649
663
|
|
|
650
664
|
/** Stretch the main time at one or both of its edges. */
|
|
651
665
|
export declare interface StretchIntent {
|
|
@@ -718,7 +732,7 @@ export declare interface Task {
|
|
|
718
732
|
}
|
|
719
733
|
|
|
720
734
|
/** Declares a schedule: hands back `Schedule` and the parts declared inside it
|
|
721
|
-
- `Lane`, `LaneGroup`, `Subtasks`, `Dependencies`, `BlockedTimes`, `Milestones` -, its
|
|
735
|
+
- `Lane`, `LaneGroup`, `Subtasks`, `Dependencies`, `BlockedTimes`, `Milestones`, `DataTable` -, its
|
|
722
736
|
`view` and the setters `setView`, `setDomain`, `toggleGroup`, `foldAll` and
|
|
723
737
|
`unfoldAll`, `positionAt`, `clientPointOf` and `visibleDomain`, and `scrollToLane`, `scrollToSubtask` and
|
|
724
738
|
`focusSubtask`. */
|
package/dist/schedule.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer umriss.tokens,umriss.base,umriss.components;@layer umriss.base{._text_18806_22{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}@media(pointer:fine){._dense_18806_38{--u-control-height-sm: var(--u-control-height-xs)}}._ink_18806_49{--u-color-text: var(--u-color-bg);--u-color-text-secondary: color-mix(in srgb, var(--u-color-bg) 75%, transparent);--u-color-text-muted: color-mix(in srgb, var(--u-color-bg) 60%, transparent)}._extent_18806_75{--_chars: 20;--_extra: 0;--_tracking: 0px;--_chrome: 0px;min-inline-size:0;max-inline-size:100%;contain:inline-size;contain-intrinsic-inline-size:calc((var(--_chars) + var(--_extra)) * (1ch + var(--_tracking)) + var(--_chrome))}._field_18806_90{caret-color:var(--u-color-accent)}._scroll_18806_96{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--u-color-text) 25%,transparent) transparent}._scroll_18806_96::-webkit-scrollbar{width:10px;height:10px}._scroll_18806_96::-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_18806_96::-webkit-scrollbar-track{background:transparent}}@layer umriss.components{._ring_18806_125:focus-visible{outline:2px solid transparent;box-shadow:var(--u-focus-ring)}@media(pointer:coarse){._field_18806_90._field_18806_90,._fieldRoot_18806_145._fieldRoot_18806_145{font-size:16px}}._field_18806_90:-webkit-autofill,._field_18806_90:-webkit-autofill:hover,._field_18806_90:-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.components{._root_mm9nj_4,._root_mm9nj_4:before,._root_mm9nj_4:after{box-sizing:border-box}._corner_mm9nj_19,._corner_mm9nj_19:before,._corner_mm9nj_19:after{box-sizing:border-box}._dayBand_mm9nj_23,._dayBand_mm9nj_23:before,._dayBand_mm9nj_23:after{box-sizing:border-box}._tickBand_mm9nj_24,._tickBand_mm9nj_24:before,._tickBand_mm9nj_24:after{box-sizing:border-box}._day_mm9nj_23,._day_mm9nj_23:before,._day_mm9nj_23:after{box-sizing:border-box}._dayLabel_mm9nj_50,._dayLabel_mm9nj_50:before,._dayLabel_mm9nj_50:after{box-sizing:border-box}._tick_mm9nj_24,._tick_mm9nj_24:before,._tick_mm9nj_24:after{box-sizing:border-box}._tickLabel_mm9nj_71,._tickLabel_mm9nj_71:before,._tickLabel_mm9nj_71:after{box-sizing:border-box}._headers_mm9nj_81,._headers_mm9nj_81:before,._headers_mm9nj_81:after{box-sizing:border-box}._header_mm9nj_81,._header_mm9nj_81:before,._header_mm9nj_81:after{box-sizing:border-box}._headerLabel_mm9nj_100,._headerLabel_mm9nj_100:before,._headerLabel_mm9nj_100:after{box-sizing:border-box}._headerCount_mm9nj_136,._headerCount_mm9nj_136:before,._headerCount_mm9nj_136:after{box-sizing:border-box}._chevron_mm9nj_145,._chevron_mm9nj_145:before,._chevron_mm9nj_145:after{box-sizing:border-box}._plot_mm9nj_223,._plot_mm9nj_223:before,._plot_mm9nj_223:after{box-sizing:border-box}._focusRing_mm9nj_237,._focusRing_mm9nj_237:before,._focusRing_mm9nj_237:after{box-sizing:border-box}._layer_mm9nj_255,._layer_mm9nj_255:before,._layer_mm9nj_255:after{box-sizing:border-box}._grip_mm9nj_282,._grip_mm9nj_282:before,._grip_mm9nj_282:after{box-sizing:border-box}._ghostLabel_mm9nj_292,._ghostLabel_mm9nj_292:before,._ghostLabel_mm9nj_292:after{box-sizing:border-box}._finding_mm9nj_305,._finding_mm9nj_305:before,._finding_mm9nj_305:after{box-sizing:border-box}._refusal_mm9nj_313,._refusal_mm9nj_313:before,._refusal_mm9nj_313:after{box-sizing:border-box}._tooltip_mm9nj_317,._tooltip_mm9nj_317:before,._tooltip_mm9nj_317:after{box-sizing:border-box}._tooltipHead_mm9nj_336,._tooltipHead_mm9nj_336:before,._tooltipHead_mm9nj_336:after{box-sizing:border-box}._tooltipTimes_mm9nj_341,._tooltipTimes_mm9nj_341:before,._tooltipTimes_mm9nj_341:after{box-sizing:border-box}._now_mm9nj_350,._now_mm9nj_350:before,._now_mm9nj_350:after{box-sizing:border-box}._barLabel_mm9nj_364,._barLabel_mm9nj_364:before,._barLabel_mm9nj_364:after{box-sizing:border-box}._barLabelText_mm9nj_377,._barLabelText_mm9nj_377:before,._barLabelText_mm9nj_377:after{box-sizing:border-box}._root_mm9nj_4{display:grid;grid-template-rows:28px minmax(0,1fr) 28px;width:100%;font-size:var(--u-text-sm);background:var(--u-color-surface);outline:1px solid transparent;box-shadow:var(--u-edge);border-radius:var(--u-radius-md);corner-shape:squircle;overflow:hidden;font-variant-numeric:tabular-nums;user-select:none}._corner_mm9nj_19{background:var(--u-color-surface)}._dayBand_mm9nj_23,._tickBand_mm9nj_24{position:relative;overflow:hidden;color:var(--u-color-text-muted);font-size:var(--u-text-xs)}._dayBand_mm9nj_23{border-bottom:1px solid var(--u-hairline-strong)}._tickBand_mm9nj_24{border-top:1px solid var(--u-hairline-strong)}._day_mm9nj_23{position:absolute;top:0;bottom:0;border-left:1px solid var(--u-hairline-strong);overflow:hidden}._dayLabel_mm9nj_50{position:absolute;z-index:1;left:var(--u-space-1);padding:0 var(--u-space-1);background:var(--u-color-surface);top:50%;transform:translateY(-50%);white-space:nowrap;color:var(--u-color-text);font-weight:var(--u-weight-medium)}._tick_mm9nj_24{position:absolute;top:0;bottom:0;width:1px;background:var(--u-hairline)}._tickLabel_mm9nj_71{position:absolute;top:50%;left:0;transform:translate(-50%,-50%);white-space:nowrap}._headers_mm9nj_81{contain:size;position:relative;overflow:hidden;border-right:1px solid var(--u-hairline-strong)}._header_mm9nj_81{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_mm9nj_100{min-width:0;overflow:hidden;text-overflow:ellipsis}._header_mm9nj_81[data-row=lane],._header_mm9nj_81[data-row=miniature]{container:lane-header / size}@container lane-header (height >= 2.5rem){._headerLabel_mm9nj_100:not(:has(*)){display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;white-space:normal;text-wrap:balance}}._header_mm9nj_81[data-row=groupHead],._header_mm9nj_81[data-row=miniature]{font-weight:var(--u-weight-medium)}._headerCount_mm9nj_136{flex:none;color:var(--u-color-text-muted);font-size:var(--u-text-xs);font-variant-numeric:tabular-nums}._chevron_mm9nj_145{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;transition:background-color var(--u-transition),color var(--u-transition)}._chevron_mm9nj_145:hover{background:var(--u-color-surface-sunken);color:var(--u-color-text)}._chevron_mm9nj_145:active{background:var(--u-color-surface-pressed)}._chevron_mm9nj_145:focus-visible{outline:2px solid transparent;box-shadow:var(--u-focus-ring)}._chevron_mm9nj_145 svg{box-sizing:border-box}._chevron_mm9nj_145 svg{transition:transform var(--u-transition-path)}._chevron_mm9nj_145 svg[data-open]{box-sizing:border-box}._chevron_mm9nj_145 svg[data-open]{transform:rotate(90deg)}@media(pointer:coarse){._chevron_mm9nj_145{position:relative}._chevron_mm9nj_145:after{content:"";position:absolute;inset:-4px}._header_mm9nj_81[data-row=groupHead]{overflow:clip;overflow-clip-margin:2px}}@media(prefers-reduced-motion:reduce){._chevron_mm9nj_145 svg{transition:none}}._header_mm9nj_81[data-refused]{color:var(--u-color-text-muted)}._plot_mm9nj_223{contain:size;position:relative;overflow:hidden;touch-action:none;-webkit-touch-callout:none;user-select:none}._plot_mm9nj_223:focus{outline:none}._focusRing_mm9nj_237{position:absolute;inset:2px;border-radius:var(--u-radius-md);corner-shape:squircle;pointer-events:none}._plot_mm9nj_223:focus-visible>._focusRing_mm9nj_237{outline:2px solid transparent;box-shadow:var(--u-focus-ring)}._layer_mm9nj_255{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}._plot_mm9nj_223[data-stale]{pointer-events:none}._plot_mm9nj_223[data-stale]>:not(._focusRing_mm9nj_237){opacity:.5;transition:opacity var(--u-transition, .12s cubic-bezier(.22, 1, .36, 1)) var(--u-delay-stale, .2s)}@media(prefers-reduced-motion:reduce){._plot_mm9nj_223[data-stale]>:not(._focusRing_mm9nj_237){transition-duration:0s}}._grip_mm9nj_282{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_mm9nj_292{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_mm9nj_305{font-weight:var(--u-weight-semibold);color:var(--u-color-danger-subtle)}._refusal_mm9nj_313{font-weight:var(--u-weight-semibold)}._tooltip_mm9nj_317{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);outline:1px solid transparent;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_mm9nj_336{color:var(--u-color-text);font-weight:var(--u-weight-semibold)}._tooltipTimes_mm9nj_341{color:var(--u-color-text)}._tooltip_mm9nj_317 ._finding_mm9nj_305{color:var(--u-color-danger-text)}._now_mm9nj_350{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_mm9nj_364{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_mm9nj_377{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}._barLabel_mm9nj_364[data-on=dark]{color:var(--u-color-on-accent)}._barLabel_mm9nj_364[data-on=light]{color:var(--u-color-text)}@media(forced-colors:active){._grip_mm9nj_282{outline:2px solid CanvasText;outline-offset:-2px}._ghostLabel_mm9nj_292{outline:1px solid CanvasText}}}
|
|
1
|
+
@layer umriss.tokens,umriss.base,umriss.components;@layer umriss.base{._text_18806_22{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}@media(pointer:fine){._dense_18806_38{--u-control-height-sm: var(--u-control-height-xs)}}._ink_18806_49{--u-color-text: var(--u-color-bg);--u-color-text-secondary: color-mix(in srgb, var(--u-color-bg) 75%, transparent);--u-color-text-muted: color-mix(in srgb, var(--u-color-bg) 60%, transparent)}._extent_18806_75{--_chars: 20;--_extra: 0;--_tracking: 0px;--_chrome: 0px;min-inline-size:0;max-inline-size:100%;contain:inline-size;contain-intrinsic-inline-size:calc((var(--_chars) + var(--_extra)) * (1ch + var(--_tracking)) + var(--_chrome))}._field_18806_90{caret-color:var(--u-color-accent)}._scroll_18806_96{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--u-color-text) 25%,transparent) transparent}._scroll_18806_96::-webkit-scrollbar{width:10px;height:10px}._scroll_18806_96::-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_18806_96::-webkit-scrollbar-track{background:transparent}}@layer umriss.components{._ring_18806_125:focus-visible{outline:2px solid transparent;box-shadow:var(--u-focus-ring)}@media(pointer:coarse){._field_18806_90._field_18806_90,._fieldRoot_18806_145._fieldRoot_18806_145{font-size:16px}}._field_18806_90:-webkit-autofill,._field_18806_90:-webkit-autofill:hover,._field_18806_90:-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.components{._root_9ariw_4,._root_9ariw_4:before,._root_9ariw_4:after{box-sizing:border-box}._corner_9ariw_19,._corner_9ariw_19:before,._corner_9ariw_19:after{box-sizing:border-box}._zoneLabel_9ariw_24,._zoneLabel_9ariw_24:before,._zoneLabel_9ariw_24:after{box-sizing:border-box}._dayBand_9ariw_43,._dayBand_9ariw_43:before,._dayBand_9ariw_43:after{box-sizing:border-box}._headers_9ariw_48,._headers_9ariw_48:before,._headers_9ariw_48:after{box-sizing:border-box}._plot_9ariw_53,._plot_9ariw_53:before,._plot_9ariw_53:after{box-sizing:border-box}._cornerBottom_9ariw_58,._cornerBottom_9ariw_58:before,._cornerBottom_9ariw_58:after{box-sizing:border-box}._tickBand_9ariw_63,._tickBand_9ariw_63:before,._tickBand_9ariw_63:after{box-sizing:border-box}._dataKey_9ariw_69,._dataKey_9ariw_69:before,._dataKey_9ariw_69:after{box-sizing:border-box}._dataPanel_9ariw_100,._dataPanel_9ariw_100:before,._dataPanel_9ariw_100:after{box-sizing:border-box}._dataTable_9ariw_119,._dataTable_9ariw_119:before,._dataTable_9ariw_119:after{box-sizing:border-box}._day_9ariw_43,._day_9ariw_43:before,._day_9ariw_43:after{box-sizing:border-box}._dayLabel_9ariw_179,._dayLabel_9ariw_179:before,._dayLabel_9ariw_179:after{box-sizing:border-box}._tick_9ariw_63,._tick_9ariw_63:before,._tick_9ariw_63:after{box-sizing:border-box}._tickLabel_9ariw_200,._tickLabel_9ariw_200:before,._tickLabel_9ariw_200:after{box-sizing:border-box}._header_9ariw_48,._header_9ariw_48:before,._header_9ariw_48:after{box-sizing:border-box}._headerLabel_9ariw_229,._headerLabel_9ariw_229:before,._headerLabel_9ariw_229:after{box-sizing:border-box}._headerCount_9ariw_265,._headerCount_9ariw_265:before,._headerCount_9ariw_265:after{box-sizing:border-box}._chevron_9ariw_274,._chevron_9ariw_274:before,._chevron_9ariw_274:after{box-sizing:border-box}._focusRing_9ariw_372,._focusRing_9ariw_372:before,._focusRing_9ariw_372:after{box-sizing:border-box}._layer_9ariw_390,._layer_9ariw_390:before,._layer_9ariw_390:after{box-sizing:border-box}._grip_9ariw_417,._grip_9ariw_417:before,._grip_9ariw_417:after{box-sizing:border-box}._ghostLabel_9ariw_427,._ghostLabel_9ariw_427:before,._ghostLabel_9ariw_427:after{box-sizing:border-box}._finding_9ariw_440,._finding_9ariw_440:before,._finding_9ariw_440:after{box-sizing:border-box}._refusal_9ariw_448,._refusal_9ariw_448:before,._refusal_9ariw_448:after{box-sizing:border-box}._tooltip_9ariw_452,._tooltip_9ariw_452:before,._tooltip_9ariw_452:after{box-sizing:border-box}._tooltipHead_9ariw_471,._tooltipHead_9ariw_471:before,._tooltipHead_9ariw_471:after{box-sizing:border-box}._tooltipTimes_9ariw_476,._tooltipTimes_9ariw_476:before,._tooltipTimes_9ariw_476:after{box-sizing:border-box}._now_9ariw_485,._now_9ariw_485:before,._now_9ariw_485:after{box-sizing:border-box}._barLabel_9ariw_499,._barLabel_9ariw_499:before,._barLabel_9ariw_499:after{box-sizing:border-box}._barLabelText_9ariw_512,._barLabelText_9ariw_512:before,._barLabelText_9ariw_512:after{box-sizing:border-box}._root_9ariw_4{display:grid;grid-template-rows:28px minmax(0,1fr) 28px;width:100%;font-size:var(--u-text-sm);background:var(--u-color-surface);outline:1px solid transparent;box-shadow:var(--u-edge);border-radius:var(--u-radius-md);corner-shape:squircle;overflow:hidden;font-variant-numeric:tabular-nums;user-select:none}._corner_9ariw_19{background:var(--u-color-surface)}._corner_9ariw_19:has(._zoneLabel_9ariw_24){display:flex;align-items:center}._zoneLabel_9ariw_24{display:block;min-width:0;padding:0 var(--u-space-2);overflow:hidden;color:var(--u-color-text-muted);font-size:var(--u-text-xs);text-overflow:ellipsis;white-space:nowrap}._dayBand_9ariw_43{grid-column:2;grid-row:1}._headers_9ariw_48{grid-column:1;grid-row:2}._plot_9ariw_53{grid-column:2;grid-row:2}._cornerBottom_9ariw_58{grid-column:1;grid-row:3}._tickBand_9ariw_63{grid-column:2;grid-row:3}._dataKey_9ariw_69{grid-column:1;grid-row:3;justify-self:start;align-self:center;margin:0 var(--u-space-2);padding:0 var(--u-space-2);max-width:calc(100% - 2 * var(--u-space-2));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:inherit;font-size:var(--u-text-xs);color:var(--u-color-text-muted);background:transparent;border:0;border-radius:var(--u-radius-sm);corner-shape:squircle;cursor:pointer}._dataKey_9ariw_69:hover{color:var(--u-color-text)}._dataKey_9ariw_69:focus-visible{outline:2px solid transparent;box-shadow:var(--u-focus-ring)}._dataPanel_9ariw_100{grid-column:1 / -1;grid-row:2;z-index:3;overflow:auto;background:var(--u-color-surface);font-size:var(--u-text-sm);user-select:text}._dataPanel_9ariw_100:focus{outline:none}._dataPanel_9ariw_100:focus-visible{outline:2px solid transparent;box-shadow:inset var(--u-focus-ring)}._dataTable_9ariw_119{width:100%;border-collapse:collapse}._dataTable_9ariw_119>caption{box-sizing:border-box}._dataTable_9ariw_119>caption{padding:var(--u-space-2) var(--u-space-3);text-align:left;color:var(--u-color-text-muted)}._dataTable_9ariw_119 th,._dataTable_9ariw_119 td{box-sizing:border-box}._dataTable_9ariw_119 th,._dataTable_9ariw_119 td{padding:var(--u-space-1) var(--u-space-3);border-bottom:1px solid var(--u-hairline);white-space:nowrap;font-weight:400;text-align:left}._dataTable_9ariw_119>thead th{box-sizing:border-box}._dataTable_9ariw_119>thead th{position:sticky;top:0;background:var(--u-color-surface);border-bottom-color:var(--u-hairline-strong);font-weight:var(--u-weight-medium)}._dataTable_9ariw_119>tbody th{box-sizing:border-box}._dataTable_9ariw_119>tbody th{font-weight:var(--u-weight-medium)}._dayBand_9ariw_43,._tickBand_9ariw_63{position:relative;overflow:hidden;color:var(--u-color-text-muted);font-size:var(--u-text-xs)}._dayBand_9ariw_43{border-bottom:1px solid var(--u-hairline-strong)}._tickBand_9ariw_63{border-top:1px solid var(--u-hairline-strong)}._day_9ariw_43{position:absolute;top:0;bottom:0;border-left:1px solid var(--u-hairline-strong);overflow:hidden}._dayLabel_9ariw_179{position:absolute;z-index:1;left:var(--u-space-1);padding:0 var(--u-space-1);background:var(--u-color-surface);top:50%;transform:translateY(-50%);white-space:nowrap;color:var(--u-color-text);font-weight:var(--u-weight-medium)}._tick_9ariw_63{position:absolute;top:0;bottom:0;width:1px;background:var(--u-hairline)}._tickLabel_9ariw_200{position:absolute;top:50%;left:0;transform:translate(-50%,-50%);white-space:nowrap}._headers_9ariw_48{contain:size;position:relative;overflow:hidden;border-right:1px solid var(--u-hairline-strong)}._header_9ariw_48{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_9ariw_229{min-width:0;overflow:hidden;text-overflow:ellipsis}._header_9ariw_48[data-row=lane],._header_9ariw_48[data-row=miniature]{container:lane-header / size}@container lane-header (height >= 2.5rem){._headerLabel_9ariw_229:not(:has(*)){display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;white-space:normal;text-wrap:balance}}._header_9ariw_48[data-row=groupHead],._header_9ariw_48[data-row=miniature]{font-weight:var(--u-weight-medium)}._headerCount_9ariw_265{flex:none;color:var(--u-color-text-muted);font-size:var(--u-text-xs);font-variant-numeric:tabular-nums}._chevron_9ariw_274{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;transition:background-color var(--u-transition),color var(--u-transition)}._chevron_9ariw_274:hover{background:var(--u-color-surface-sunken);color:var(--u-color-text)}._chevron_9ariw_274:active{background:var(--u-color-surface-pressed)}._chevron_9ariw_274:focus-visible{outline:2px solid transparent;box-shadow:var(--u-focus-ring)}._chevron_9ariw_274 svg{box-sizing:border-box}._chevron_9ariw_274 svg{transition:transform var(--u-transition-path)}._chevron_9ariw_274 svg[data-open]{box-sizing:border-box}._chevron_9ariw_274 svg[data-open]{transform:rotate(90deg)}@media(pointer:coarse){._chevron_9ariw_274{position:relative}._chevron_9ariw_274:after{content:"";position:absolute;inset:-4px}._dataKey_9ariw_69{min-height:24px}._header_9ariw_48[data-row=groupHead]{overflow:clip;overflow-clip-margin:2px}}@media(prefers-reduced-motion:reduce){._chevron_9ariw_274 svg{transition:none}}._header_9ariw_48[data-refused]{color:var(--u-color-text-muted)}._plot_9ariw_53{contain:size;position:relative;overflow:hidden;touch-action:none;-webkit-touch-callout:none;user-select:none}._plot_9ariw_53:focus{outline:none}._focusRing_9ariw_372{position:absolute;inset:2px;border-radius:var(--u-radius-md);corner-shape:squircle;pointer-events:none}._plot_9ariw_53:focus-visible>._focusRing_9ariw_372{outline:2px solid transparent;box-shadow:var(--u-focus-ring)}._layer_9ariw_390{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}._plot_9ariw_53[data-stale]{pointer-events:none}._plot_9ariw_53[data-stale]>:not(._focusRing_9ariw_372){opacity:.5;transition:opacity var(--u-transition, .12s cubic-bezier(.22, 1, .36, 1)) var(--u-delay-stale, .2s)}@media(prefers-reduced-motion:reduce){._plot_9ariw_53[data-stale]>:not(._focusRing_9ariw_372){transition-duration:0s}}._grip_9ariw_417{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_9ariw_427{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_9ariw_440{font-weight:var(--u-weight-semibold);color:var(--u-color-danger-subtle)}._refusal_9ariw_448{font-weight:var(--u-weight-semibold)}._tooltip_9ariw_452{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);outline:1px solid transparent;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_9ariw_471{color:var(--u-color-text);font-weight:var(--u-weight-semibold)}._tooltipTimes_9ariw_476{color:var(--u-color-text)}._tooltip_9ariw_452 ._finding_9ariw_440{color:var(--u-color-danger-text)}._now_9ariw_485{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_9ariw_499{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_9ariw_512{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}._barLabel_9ariw_499[data-on=dark]{color:var(--u-color-on-accent)}._barLabel_9ariw_499[data-on=light]{color:var(--u-color-text)}@media(forced-colors:active){._grip_9ariw_417{outline:2px solid CanvasText;outline-offset:-2px}._ghostLabel_9ariw_427{outline:1px solid CanvasText}}}
|