@umriss-ui/schedule 0.43.0 → 0.45.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/docs/llms-full.md CHANGED
@@ -1,4 +1,4 @@
1
- # @umriss-ui/schedule 0.43.0
1
+ # @umriss-ui/schedule 0.45.0
2
2
 
3
3
  > React Gantt-style schedule for data-dense applications - work on lanes over time, with dependencies, blocked time, findings and controlled editing.
4
4
 
@@ -967,6 +967,12 @@ From `ScheduleProps` — the full table stands on [First schedule](#first-schedu
967
967
  | [`height`](#first-schedule) | `number` | fills the frame, at least 400 px | Height in CSS pixels, both bands included, fixed. Left out, the schedule fills its frame - a stretched grid cell, a card the grid stretches, a container of definite height - and never goes below 400 px, which is also its height in a frame without one. A different floor goes through `style`'s `minHeight` ([ADR-0050](https://github.com/romanhaendler/umriss-ui/blob/main/docs/adr/0050-a-chart-fills-its-frame-never-below-its-floor.md)). The width is the host's. |
968
968
  | [`children`](#first-schedule) | `ReactNode` | — | `Lane`, `Dependencies` and `Subtasks`, in the order they are to stand and be drawn. |
969
969
 
970
+ ###### Accessibility
971
+
972
+ | Prop | Type | Default | Description |
973
+ |---|---|---|---|
974
+ | [`aria-label`](#first-schedule) *required* | `string` | — | What the schedule shows, for a screen reader: "Plan of week 38". |
975
+
970
976
  From `LaneProps` — the full table stands on [Lanes](#lanes).
971
977
 
972
978
  | Prop | Type | Default | Description |
@@ -1426,7 +1432,7 @@ Under forced colours the plot paints itself in the system colours: the work in t
1426
1432
 
1427
1433
  | Prop | Type | Default | Description |
1428
1434
  |---|---|---|---|
1429
- | `ref` | `Ref<HTMLDivElement> \| RefObject<``ScheduleHandle`` \| null> \| undefined` | — | Receives the root element. A ref to the deprecated `ScheduleHandle` still works for one more minor release: the element carries its three functions. |
1435
+ | `ref` | `Ref<HTMLDivElement> \| undefined` | — | Receives the root element. |
1430
1436
  | `height` | `number` | fills the frame, at least 400 px | Height in CSS pixels, both bands included, fixed. Left out, the schedule fills its frame - a stretched grid cell, a card the grid stretches, a container of definite height - and never goes below 400 px, which is also its height in a frame without one. A different floor goes through `style`'s `minHeight` ([ADR-0050](https://github.com/romanhaendler/umriss-ui/blob/main/docs/adr/0050-a-chart-fills-its-frame-never-below-its-floor.md)). The width is the host's.<br>Shown in: [A day of tours](#first-schedule), [Start from an empty plan](#first-schedule), [Plan a day in the machine shop](#first-schedule) and 80 more |
1431
1437
  | `laneHeight` | `number` | `44` | Height of one lane in pixels at the default font size of 16 px; the schedule multiplies it by the root font size over 16 px when that ratio is above 1, so lane names keep their room in a reader's larger font.<br>Shown in: [Scroll more lanes than fit (Lanes)](#lanes), [Measure a plan (Benchmark)](#benchmark) |
1432
1438
  | `headerWidth` | `number` | `160` | Width of the lane headers in pixels - at most 40 % of the schedule, so that on a phone the plot keeps the larger part.<br>Shown in: [What a lane header says (Lanes)](#lanes), [Scroll more lanes than fit (Lanes)](#lanes), [Group lanes under a head (Lane groups)](#lane-groups) and 1 more |
@@ -1454,20 +1460,15 @@ Under forced colours the plot paints itself in the system colours: the work in t
1454
1460
  | `onIntent` | `(intent: ``Intent``) => void` | — | Called once per intent when a drag ends. The data changes only if the caller changes it.<br>Shown in: [Read a folded group (Lane groups)](#lane-groups), [Cut the nights out of the axis (Time axis and calendar)](#time-axis-and-calendar), [Plan work around someone's leave (Blocked time)](#blocked-time) and 18 more |
1455
1461
  | `onInteraction` | `(interaction: `[`ScheduleInteraction`](#interactions)`) => void` | — | Click, context menu and hover, with what the pointer is on and where. While it is set, a right-click opens no browser menu.<br>Shown in: [Report what the pointer is on (Interactions)](#interactions), [Open a context menu (Interactions)](#interactions), [Show a detail panel instead (Tooltip)](#tooltip) and 3 more |
1456
1462
 
1457
- Also takes every attribute of `<div>` – without `aria-label`, `children`.
1458
-
1459
- ##### Types on this page
1460
-
1461
- ###### `ScheduleHandle`
1462
-
1463
- What a schedule offers a caller imperatively: the arithmetic between a
1464
- point on the screen and a time on a lane. Everything else is props.
1463
+ ###### Accessibility
1465
1464
 
1466
1465
  | Prop | Type | Default | Description |
1467
1466
  |---|---|---|---|
1468
- | `positionAt` *required* | `(clientX: number, clientY: number) => { time: number; lane: string \| null } \| null` | — | The time and the lane at a client point, or null outside the plot. |
1469
- | `clientPointOf` *required* | `(time: number, lane?: string) => { x: number; y: number } \| null` | — | The client point of a time - on the middle of a lane where one is named - or null while the schedule is not on screen. |
1470
- | `visibleDomain` *required* | `() => readonly [number, number]` | — | The visible span, as two wall-clock instants. |
1467
+ | `aria-label` *required* | `string` | — | What the schedule shows, for a screen reader: "Plan of week 38".<br>Shown in: [A day of tours](#first-schedule), [Start from an empty plan](#first-schedule), [Plan a day in the machine shop](#first-schedule) and 82 more |
1468
+
1469
+ Also takes every attribute of `<div>` – without `aria-label`, `children`.
1470
+
1471
+ ##### Types on this page
1471
1472
 
1472
1473
  ###### `CalendarInput`
1473
1474
 
@@ -1665,11 +1666,11 @@ no subtask yet; the caller creates one, with its own identity, from
1665
1666
 
1666
1667
  #### Known limits
1667
1668
 
1668
- - No dependency types, critical path or auto-scheduling: the application decides where work goes, the schedule shows the result and its findings ([ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.43.0/docs/adr/0032-what-umriss-is-not.md)).
1669
+ - No dependency types, critical path or auto-scheduling: the application decides where work goes, the schedule shows the result and its findings ([ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.45.0/docs/adr/0032-what-umriss-is-not.md)).
1669
1670
  - No milestones yet: a point in time on a lane has no mark of its own.
1670
1671
  - A dependency joins two subtasks of one task; dependencies across tasks are not yet possible.
1671
1672
 
1672
- What umriss deliberately does not build, and why: [ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.43.0/docs/adr/0032-what-umriss-is-not.md).
1673
+ What umriss deliberately does not build, and why: [ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.45.0/docs/adr/0032-what-umriss-is-not.md).
1673
1674
 
1674
1675
  ## Plan
1675
1676
 
@@ -2111,7 +2112,7 @@ The keys of [First schedule](#first-schedule) apply here.
2111
2112
 
2112
2113
  - A folded group shows no summary - no utilisation band, no bar spanning its work: a computed claim would look like a drawn fact ([ADR-0025](https://github.com/romanhaendler/umriss-ui/blob/main/docs/adr/0025-a-lane-group-is-structure-over-lanes-never-a-lane.md)).
2113
2114
 
2114
- What umriss deliberately does not build, and why: [ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.43.0/docs/adr/0032-what-umriss-is-not.md).
2115
+ What umriss deliberately does not build, and why: [ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.45.0/docs/adr/0032-what-umriss-is-not.md).
2115
2116
 
2116
2117
  ### Subtasks
2117
2118
 
@@ -2425,6 +2426,12 @@ From `ScheduleProps` — the full table stands on [First schedule](#first-schedu
2425
2426
  | [`label`](#first-schedule) | `(subtask: `[`Subtask`](#subtasks)`) => string` | — | What stands written in a bar: a function from a subtask to a line of text, or nothing for bars without text. The text is cut off with an ellipsis where the bar is too narrow for it and left out where even that would say nothing; a bar that began before the view keeps its text at the view's edge. |
2426
2427
  | [`children`](#first-schedule) | `ReactNode` | — | `Lane`, `Dependencies` and `Subtasks`, in the order they are to stand and be drawn. |
2427
2428
 
2429
+ ###### Accessibility
2430
+
2431
+ | Prop | Type | Default | Description |
2432
+ |---|---|---|---|
2433
+ | [`aria-label`](#first-schedule) *required* | `string` | — | What the schedule shows, for a screen reader: "Plan of week 38". |
2434
+
2428
2435
  From `LaneProps` — the full table stands on [Lanes](#lanes).
2429
2436
 
2430
2437
  | Prop | Type | Default | Description |
@@ -2730,6 +2737,12 @@ From `ScheduleProps` — the full table stands on [First schedule](#first-schedu
2730
2737
  | [`label`](#first-schedule) | `(subtask: `[`Subtask`](#subtasks)`) => string` | — | What stands written in a bar: a function from a subtask to a line of text, or nothing for bars without text. The text is cut off with an ellipsis where the bar is too narrow for it and left out where even that would say nothing; a bar that began before the view keeps its text at the view's edge. |
2731
2738
  | [`children`](#first-schedule) | `ReactNode` | — | `Lane`, `Dependencies` and `Subtasks`, in the order they are to stand and be drawn. |
2732
2739
 
2740
+ ###### Accessibility
2741
+
2742
+ | Prop | Type | Default | Description |
2743
+ |---|---|---|---|
2744
+ | [`aria-label`](#first-schedule) *required* | `string` | — | What the schedule shows, for a screen reader: "Plan of week 38". |
2745
+
2733
2746
  From `LaneProps` — the full table stands on [Lanes](#lanes).
2734
2747
 
2735
2748
  | Prop | Type | Default | Description |
@@ -2907,6 +2920,12 @@ From `ScheduleProps` — the full table stands on [First schedule](#first-schedu
2907
2920
  | [`height`](#first-schedule) | `number` | fills the frame, at least 400 px | Height in CSS pixels, both bands included, fixed. Left out, the schedule fills its frame - a stretched grid cell, a card the grid stretches, a container of definite height - and never goes below 400 px, which is also its height in a frame without one. A different floor goes through `style`'s `minHeight` ([ADR-0050](https://github.com/romanhaendler/umriss-ui/blob/main/docs/adr/0050-a-chart-fills-its-frame-never-below-its-floor.md)). The width is the host's. |
2908
2921
  | [`children`](#first-schedule) | `ReactNode` | — | `Lane`, `Dependencies` and `Subtasks`, in the order they are to stand and be drawn. |
2909
2922
 
2923
+ ###### Accessibility
2924
+
2925
+ | Prop | Type | Default | Description |
2926
+ |---|---|---|---|
2927
+ | [`aria-label`](#first-schedule) *required* | `string` | — | What the schedule shows, for a screen reader: "Plan of week 38". |
2928
+
2910
2929
  From `LaneProps` — the full table stands on [Lanes](#lanes).
2911
2930
 
2912
2931
  | Prop | Type | Default | Description |
@@ -2957,7 +2976,7 @@ From `ScheduleView` — the full table stands on [View](#view).
2957
2976
 
2958
2977
  - No stacked layout on request yet: an overlap is always drawn offset, as the finding it is.
2959
2978
 
2960
- What umriss deliberately does not build, and why: [ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.43.0/docs/adr/0032-what-umriss-is-not.md).
2979
+ What umriss deliberately does not build, and why: [ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.45.0/docs/adr/0032-what-umriss-is-not.md).
2961
2980
 
2962
2981
  ### Dependencies
2963
2982
 
@@ -3327,9 +3346,9 @@ type DependencyEnds = "dot" | "none";
3327
3346
 
3328
3347
  #### Known limits
3329
3348
 
3330
- - Only finish-to-start within one task; no dependency types and no critical path ([ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.43.0/docs/adr/0032-what-umriss-is-not.md)).
3349
+ - Only finish-to-start within one task; no dependency types and no critical path ([ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.45.0/docs/adr/0032-what-umriss-is-not.md)).
3331
3350
 
3332
- What umriss deliberately does not build, and why: [ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.43.0/docs/adr/0032-what-umriss-is-not.md).
3351
+ What umriss deliberately does not build, and why: [ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.45.0/docs/adr/0032-what-umriss-is-not.md).
3333
3352
 
3334
3353
  ### Routes
3335
3354
 
@@ -3517,6 +3536,12 @@ From `ScheduleProps` — the full table stands on [First schedule](#first-schedu
3517
3536
  | [`attach`](#first-schedule) | [`DependencyAttachment`](#first-schedule)<br>`"centre" \| "nearest"` | `"centre"` | Where a dependency's ends sit on their bars: the `"centre"` of both, or the `"nearest"` edge - which is the shortest line between two stops. Within one lane both mean the middle. A dependency may say otherwise for itself. It changes the picture and never a finding: whether a dependency is violated follows from its `leaves` and `arrives` alone. |
3518
3537
  | [`children`](#first-schedule) | `ReactNode` | — | `Lane`, `Dependencies` and `Subtasks`, in the order they are to stand and be drawn. |
3519
3538
 
3539
+ ###### Accessibility
3540
+
3541
+ | Prop | Type | Default | Description |
3542
+ |---|---|---|---|
3543
+ | [`aria-label`](#first-schedule) *required* | `string` | — | What the schedule shows, for a screen reader: "Plan of week 38". |
3544
+
3520
3545
  From `LaneProps` — the full table stands on [Lanes](#lanes).
3521
3546
 
3522
3547
  | Prop | Type | Default | Description |
@@ -3851,6 +3876,12 @@ From `ScheduleProps` — the full table stands on [First schedule](#first-schedu
3851
3876
  |---|---|---|---|
3852
3877
  | [`onIntent`](#first-schedule) | `(intent: `[`Intent`](#first-schedule)`) => void` | — | Called once per intent when a drag ends. The data changes only if the caller changes it. |
3853
3878
 
3879
+ ###### Accessibility
3880
+
3881
+ | Prop | Type | Default | Description |
3882
+ |---|---|---|---|
3883
+ | [`aria-label`](#first-schedule) *required* | `string` | — | What the schedule shows, for a screen reader: "Plan of week 38". |
3884
+
3854
3885
  From `LaneProps` — the full table stands on [Lanes](#lanes).
3855
3886
 
3856
3887
  | Prop | Type | Default | Description |
@@ -4598,6 +4629,12 @@ From `ScheduleProps` — the full table stands on [First schedule](#first-schedu
4598
4629
  | [`now`](#first-schedule) | `boolean \| number` | `false` | A line marking the present across the lanes: `true` follows the clock by the minute, an instant fixes it there. |
4599
4630
  | [`children`](#first-schedule) | `ReactNode` | — | `Lane`, `Dependencies` and `Subtasks`, in the order they are to stand and be drawn. |
4600
4631
 
4632
+ ###### Accessibility
4633
+
4634
+ | Prop | Type | Default | Description |
4635
+ |---|---|---|---|
4636
+ | [`aria-label`](#first-schedule) *required* | `string` | — | What the schedule shows, for a screen reader: "Plan of week 38". |
4637
+
4601
4638
  From `LaneProps` — the full table stands on [Lanes](#lanes).
4602
4639
 
4603
4640
  | Prop | Type | Default | Description |
@@ -4725,6 +4762,12 @@ From `ScheduleProps` — the full table stands on [First schedule](#first-schedu
4725
4762
  | [`zoomLimits`](#first-schedule) | [`ZoomLimits`](#first-schedule) | one hour to 28 days | The narrowest and widest time span zoom may reach, in milliseconds. |
4726
4763
  | [`children`](#first-schedule) | `ReactNode` | — | `Lane`, `Dependencies` and `Subtasks`, in the order they are to stand and be drawn. |
4727
4764
 
4765
+ ###### Accessibility
4766
+
4767
+ | Prop | Type | Default | Description |
4768
+ |---|---|---|---|
4769
+ | [`aria-label`](#first-schedule) *required* | `string` | — | What the schedule shows, for a screen reader: "Plan of week 38". |
4770
+
4728
4771
  From `LaneProps` — the full table stands on [Lanes](#lanes).
4729
4772
 
4730
4773
  | Prop | Type | Default | Description |
@@ -4937,6 +4980,12 @@ From `ScheduleProps` — the full table stands on [First schedule](#first-schedu
4937
4980
  | [`onSelectedTaskChange`](#first-schedule) | `(task: string \| null, subtask: string \| null) => void` | — | Called when a click selects a task or clears the selection, with the subtask that was clicked - null where the click was on a dependency or on nothing. It is called again when another subtask of the same task is clicked. |
4938
4981
  | [`children`](#first-schedule) | `ReactNode` | — | `Lane`, `Dependencies` and `Subtasks`, in the order they are to stand and be drawn. |
4939
4982
 
4983
+ ###### Accessibility
4984
+
4985
+ | Prop | Type | Default | Description |
4986
+ |---|---|---|---|
4987
+ | [`aria-label`](#first-schedule) *required* | `string` | — | What the schedule shows, for a screen reader: "Plan of week 38". |
4988
+
4940
4989
  From `LaneProps` — the full table stands on [Lanes](#lanes).
4941
4990
 
4942
4991
  | Prop | Type | Default | Description |
@@ -5002,7 +5051,7 @@ From `ScheduleView` — the full table stands on [View](#view).
5002
5051
 
5003
5052
  - One task at a time: there is no multiple selection.
5004
5053
 
5005
- What umriss deliberately does not build, and why: [ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.43.0/docs/adr/0032-what-umriss-is-not.md).
5054
+ What umriss deliberately does not build, and why: [ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.45.0/docs/adr/0032-what-umriss-is-not.md).
5006
5055
 
5007
5056
  ### Interactions
5008
5057
 
@@ -6021,6 +6070,12 @@ From `ScheduleProps` — the full table stands on [First schedule](#first-schedu
6021
6070
  | [`height`](#first-schedule) | `number` | fills the frame, at least 400 px | Height in CSS pixels, both bands included, fixed. Left out, the schedule fills its frame - a stretched grid cell, a card the grid stretches, a container of definite height - and never goes below 400 px, which is also its height in a frame without one. A different floor goes through `style`'s `minHeight` ([ADR-0050](https://github.com/romanhaendler/umriss-ui/blob/main/docs/adr/0050-a-chart-fills-its-frame-never-below-its-floor.md)). The width is the host's. |
6022
6071
  | [`children`](#first-schedule) | `ReactNode` | — | `Lane`, `Dependencies` and `Subtasks`, in the order they are to stand and be drawn. |
6023
6072
 
6073
+ ###### Accessibility
6074
+
6075
+ | Prop | Type | Default | Description |
6076
+ |---|---|---|---|
6077
+ | [`aria-label`](#first-schedule) *required* | `string` | — | What the schedule shows, for a screen reader: "Plan of week 38". |
6078
+
6024
6079
  From `LaneProps` — the full table stands on [Lanes](#lanes).
6025
6080
 
6026
6081
  | Prop | Type | Default | Description |
@@ -6078,7 +6133,7 @@ From `ScheduleView` — the full table stands on [View](#view).
6078
6133
 
6079
6134
  - Only the view is shared - the span and the folded groups, not the selection, the hover or the vertical scroll.
6080
6135
 
6081
- What umriss deliberately does not build, and why: [ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.43.0/docs/adr/0032-what-umriss-is-not.md).
6136
+ What umriss deliberately does not build, and why: [ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.45.0/docs/adr/0032-what-umriss-is-not.md).
6082
6137
 
6083
6138
  ### Functions on the hook
6084
6139
 
@@ -6263,6 +6318,12 @@ From `ScheduleProps` — the full table stands on [First schedule](#first-schedu
6263
6318
  |---|---|---|---|
6264
6319
  | [`onInteraction`](#first-schedule) | `(interaction: `[`ScheduleInteraction`](#interactions)`) => void` | — | Click, context menu and hover, with what the pointer is on and where. While it is set, a right-click opens no browser menu. |
6265
6320
 
6321
+ ###### Accessibility
6322
+
6323
+ | Prop | Type | Default | Description |
6324
+ |---|---|---|---|
6325
+ | [`aria-label`](#first-schedule) *required* | `string` | — | What the schedule shows, for a screen reader: "Plan of week 38". |
6326
+
6266
6327
  From `LaneProps` — the full table stands on [Lanes](#lanes).
6267
6328
 
6268
6329
  | Prop | Type | Default | Description |
@@ -6530,7 +6591,7 @@ The keys of [First schedule](#first-schedule) apply here.
6530
6591
 
6531
6592
  - Overlapping work is marked, not packed into sub-lanes; stacked overlap is not built yet.
6532
6593
 
6533
- What umriss deliberately does not build, and why: [ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.43.0/docs/adr/0032-what-umriss-is-not.md).
6594
+ What umriss deliberately does not build, and why: [ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.45.0/docs/adr/0032-what-umriss-is-not.md).
6534
6595
 
6535
6596
  ## Editing
6536
6597
 
@@ -6827,6 +6888,12 @@ From `ScheduleProps` — the full table stands on [First schedule](#first-schedu
6827
6888
  |---|---|---|---|
6828
6889
  | [`onIntent`](#first-schedule) | `(intent: `[`Intent`](#first-schedule)`) => void` | — | Called once per intent when a drag ends. The data changes only if the caller changes it. |
6829
6890
 
6891
+ ###### Accessibility
6892
+
6893
+ | Prop | Type | Default | Description |
6894
+ |---|---|---|---|
6895
+ | [`aria-label`](#first-schedule) *required* | `string` | — | What the schedule shows, for a screen reader: "Plan of week 38". |
6896
+
6830
6897
  From `LaneProps` — the full table stands on [Lanes](#lanes).
6831
6898
 
6832
6899
  | Prop | Type | Default | Description |
@@ -6899,10 +6966,10 @@ From `Overlap` — the full table stands on [Findings as data](#findings-as-data
6899
6966
 
6900
6967
  #### Known limits
6901
6968
 
6902
- - No undo: your application owns the data, and with it the history ([ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.43.0/docs/adr/0032-what-umriss-is-not.md)).
6969
+ - No undo: your application owns the data, and with it the history ([ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.45.0/docs/adr/0032-what-umriss-is-not.md)).
6903
6970
  - The keys move work in time only; a lane change needs the pointer.
6904
6971
 
6905
- What umriss deliberately does not build, and why: [ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.43.0/docs/adr/0032-what-umriss-is-not.md).
6972
+ What umriss deliberately does not build, and why: [ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.45.0/docs/adr/0032-what-umriss-is-not.md).
6906
6973
 
6907
6974
  ### Stretch, lead-in, lead-out
6908
6975
 
@@ -7017,6 +7084,12 @@ From `ScheduleProps` — the full table stands on [First schedule](#first-schedu
7017
7084
  |---|---|---|---|
7018
7085
  | [`onIntent`](#first-schedule) | `(intent: `[`Intent`](#first-schedule)`) => void` | — | Called once per intent when a drag ends. The data changes only if the caller changes it. |
7019
7086
 
7087
+ ###### Accessibility
7088
+
7089
+ | Prop | Type | Default | Description |
7090
+ |---|---|---|---|
7091
+ | [`aria-label`](#first-schedule) *required* | `string` | — | What the schedule shows, for a screen reader: "Plan of week 38". |
7092
+
7020
7093
  From `LaneProps` — the full table stands on [Lanes](#lanes).
7021
7094
 
7022
7095
  | Prop | Type | Default | Description |
@@ -7068,7 +7141,7 @@ From `ScheduleView` — the full table stands on [View](#view).
7068
7141
 
7069
7142
  - A main time never becomes shorter than one raster step, or a minute without a raster.
7070
7143
 
7071
- What umriss deliberately does not build, and why: [ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.43.0/docs/adr/0032-what-umriss-is-not.md).
7144
+ What umriss deliberately does not build, and why: [ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.45.0/docs/adr/0032-what-umriss-is-not.md).
7072
7145
 
7073
7146
  ### Snapping
7074
7147
 
@@ -7245,6 +7318,12 @@ From `ScheduleProps` — the full table stands on [First schedule](#first-schedu
7245
7318
  |---|---|---|---|
7246
7319
  | [`onIntent`](#first-schedule) | `(intent: `[`Intent`](#first-schedule)`) => void` | — | Called once per intent when a drag ends. The data changes only if the caller changes it. |
7247
7320
 
7321
+ ###### Accessibility
7322
+
7323
+ | Prop | Type | Default | Description |
7324
+ |---|---|---|---|
7325
+ | [`aria-label`](#first-schedule) *required* | `string` | — | What the schedule shows, for a screen reader: "Plan of week 38". |
7326
+
7248
7327
  From `LaneProps` — the full table stands on [Lanes](#lanes).
7249
7328
 
7250
7329
  | Prop | Type | Default | Description |
@@ -7432,6 +7511,12 @@ From `ScheduleProps` — the full table stands on [First schedule](#first-schedu
7432
7511
  |---|---|---|---|
7433
7512
  | [`onIntent`](#first-schedule) | `(intent: `[`Intent`](#first-schedule)`) => void` | — | Called once per intent when a drag ends. The data changes only if the caller changes it. |
7434
7513
 
7514
+ ###### Accessibility
7515
+
7516
+ | Prop | Type | Default | Description |
7517
+ |---|---|---|---|
7518
+ | [`aria-label`](#first-schedule) *required* | `string` | — | What the schedule shows, for a screen reader: "Plan of week 38". |
7519
+
7435
7520
  From `LaneProps` — the full table stands on [Lanes](#lanes).
7436
7521
 
7437
7522
  | Prop | Type | Default | Description |
@@ -7845,6 +7930,12 @@ From `ScheduleProps` — the full table stands on [First schedule](#first-schedu
7845
7930
  |---|---|---|---|
7846
7931
  | [`onIntent`](#first-schedule) | `(intent: `[`Intent`](#first-schedule)`) => void` | — | Called once per intent when a drag ends. The data changes only if the caller changes it. |
7847
7932
 
7933
+ ###### Accessibility
7934
+
7935
+ | Prop | Type | Default | Description |
7936
+ |---|---|---|---|
7937
+ | [`aria-label`](#first-schedule) *required* | `string` | — | What the schedule shows, for a screen reader: "Plan of week 38". |
7938
+
7848
7939
  From `LaneProps` — the full table stands on [Lanes](#lanes).
7849
7940
 
7850
7941
  | Prop | Type | Default | Description |
@@ -7909,7 +8000,7 @@ From `ScheduleView` — the full table stands on [View](#view).
7909
8000
 
7910
8001
  - A rule that changes while a drag runs is noticed at the drop, not before.
7911
8002
 
7912
- What umriss deliberately does not build, and why: [ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.43.0/docs/adr/0032-what-umriss-is-not.md).
8003
+ What umriss deliberately does not build, and why: [ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.45.0/docs/adr/0032-what-umriss-is-not.md).
7913
8004
 
7914
8005
  ### Ripple
7915
8006
 
@@ -8126,6 +8217,12 @@ From `ScheduleProps` — the full table stands on [First schedule](#first-schedu
8126
8217
  |---|---|---|---|
8127
8218
  | [`onIntent`](#first-schedule) | `(intent: `[`Intent`](#first-schedule)`) => void` | — | Called once per intent when a drag ends. The data changes only if the caller changes it. |
8128
8219
 
8220
+ ###### Accessibility
8221
+
8222
+ | Prop | Type | Default | Description |
8223
+ |---|---|---|---|
8224
+ | [`aria-label`](#first-schedule) *required* | `string` | — | What the schedule shows, for a screen reader: "Plan of week 38". |
8225
+
8129
8226
  From `LaneProps` — the full table stands on [Lanes](#lanes).
8130
8227
 
8131
8228
  | Prop | Type | Default | Description |
@@ -8188,10 +8285,10 @@ From `ScheduleView` — the full table stands on [View](#view).
8188
8285
 
8189
8286
  #### Known limits
8190
8287
 
8191
- - No dependency types, slack or critical path: the schedule is no project-planning engine ([ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.43.0/docs/adr/0032-what-umriss-is-not.md)).
8288
+ - No dependency types, slack or critical path: the schedule is no project-planning engine ([ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.45.0/docs/adr/0032-what-umriss-is-not.md)).
8192
8289
  - A dependency joins subtasks of one task, so work of other tasks is never pushed.
8193
8290
 
8194
- What umriss deliberately does not build, and why: [ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.43.0/docs/adr/0032-what-umriss-is-not.md).
8291
+ What umriss deliberately does not build, and why: [ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/schedule-v0.45.0/docs/adr/0032-what-umriss-is-not.md).
8195
8292
 
8196
8293
  ## Measuring
8197
8294
 
@@ -8533,6 +8630,12 @@ From `ScheduleProps` — the full table stands on [First schedule](#first-schedu
8533
8630
  |---|---|---|---|
8534
8631
  | [`onInteraction`](#first-schedule) | `(interaction: `[`ScheduleInteraction`](#interactions)`) => void` | — | Click, context menu and hover, with what the pointer is on and where. While it is set, a right-click opens no browser menu. |
8535
8632
 
8633
+ ###### Accessibility
8634
+
8635
+ | Prop | Type | Default | Description |
8636
+ |---|---|---|---|
8637
+ | [`aria-label`](#first-schedule) *required* | `string` | — | What the schedule shows, for a screen reader: "Plan of week 38". |
8638
+
8536
8639
  From `LaneProps` — the full table stands on [Lanes](#lanes).
8537
8640
 
8538
8641
  | Prop | Type | Default | Description |
@@ -8748,12 +8851,12 @@ Used on [Scenarios](#scenarios) and [Ripple](#ripple).
8748
8851
 
8749
8852
  ##### `snapTime`
8750
8853
 
8751
- `time` onto the nearest line of the raster in local time - a step alone
8752
- starts at local midnight. A step of zero or less is no raster: the time
8753
- stays as it is.
8854
+ `time` onto the nearest line of the raster in the zone's time, the reader's
8855
+ unless one is named - a step alone starts at the zone's midnight. A step of
8856
+ zero or less is no raster: the time stays as it is.
8754
8857
 
8755
8858
  ```ts
8756
- function snapTime(time: number, raster: number | SnapRaster): number;
8859
+ function snapTime(time: number, raster: number | SnapRaster, timeZone?: string): number;
8757
8860
  ```
8758
8861
 
8759
8862
  Used on [Snapping](#snapping).
@@ -8986,19 +9089,6 @@ the channel each one owns stands beside it.
8986
9089
  | `muted` *required* | `boolean` | — | `muted`: the SATURATION - the task colour mixed half into the surface, opaque and at full height. Another team's, another crew's. |
8987
9090
  | `open` *required* | `boolean` | — | `open`: the FADE, where the bar passes the edge of the view. It goes on past what is drawn. |
8988
9091
 
8989
- ##### `ScheduleHandle`
8990
-
8991
- What a schedule offers a caller imperatively: the arithmetic between a
8992
- point on the screen and a time on a lane. Everything else is props.
8993
-
8994
- | Prop | Type | Default | Description |
8995
- |---|---|---|---|
8996
- | `positionAt` *required* | `(clientX: number, clientY: number) => { time: number; lane: string \| null } \| null` | — | The time and the lane at a client point, or null outside the plot. |
8997
- | `clientPointOf` *required* | `(time: number, lane?: string) => { x: number; y: number } \| null` | — | The client point of a time - on the middle of a lane where one is named - or null while the schedule is not on screen. |
8998
- | `visibleDomain` *required* | `() => readonly [number, number]` | — | The visible span, as two wall-clock instants. |
8999
-
9000
- *Deprecated* since 0.43 - use the functions on [`useSchedule`](#api-index-1)'s return.
9001
-
9002
9092
  ##### `ScheduleHit`
9003
9093
 
9004
9094
  What a pointer is on.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umriss-ui/schedule",
3
- "version": "0.43.0",
3
+ "version": "0.45.0",
4
4
  "description": "React Gantt-style schedule for data-dense applications - work on lanes over time, with dependencies, blocked time, findings and controlled editing.",
5
5
  "license": "MIT",
6
6
  "author": "Roman Händler",
@@ -59,8 +59,8 @@
59
59
  }
60
60
  },
61
61
  "peerDependencies": {
62
- "@umriss-ui/charts": "^0.43.0",
63
- "@umriss-ui/core": "^0.43.0",
62
+ "@umriss-ui/charts": "^0.45.0",
63
+ "@umriss-ui/core": "^0.45.0",
64
64
  "react": ">=19",
65
65
  "react-dom": ">=19"
66
66
  },
@@ -76,8 +76,8 @@
76
76
  "typescript": "^5.6.3",
77
77
  "vite": "^6.0.0",
78
78
  "vite-plugin-dts": "^4.3.0",
79
- "@umriss-ui/charts": "0.43.0",
80
- "@umriss-ui/core": "0.43.0",
79
+ "@umriss-ui/charts": "0.45.0",
80
+ "@umriss-ui/core": "0.45.0",
81
81
  "@umriss-ui/demo": "0.0.0"
82
82
  },
83
83
  "scripts": {