@umriss-ui/schedule 0.43.0 → 0.44.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 CHANGED
@@ -18,6 +18,21 @@ moves from here under the rule above.
18
18
 
19
19
  ---
20
20
 
21
+ ## 0.44.0 – Malformed data says so, and the handle goes (Oct. 2026)
22
+
23
+ ### Added
24
+
25
+ - **Malformed data warns once per cause in development:** a span that does not end after it starts, an item on an undeclared lane, an unknown task or dependency end, an id that stands twice. The checks run only in development.
26
+
27
+ ### Changed
28
+
29
+ - **`ScheduleHandle` and the handle ref are removed;** 0.43.0 deprecated them. A `Schedule` ref is typed `HTMLDivElement`, and `positionAt`, `clientPointOf` and `visibleDomain` are on `useSchedule`'s return.
30
+ - Migration: replace `ref.current.positionAt(x, y)` with `positionAt(x, y)` from `const { positionAt } = useSchedule()`, and the same for `clientPointOf` and `visibleDomain`; type a ref as `HTMLDivElement`.
31
+ - **`ariaLabel` on `Schedule` is removed;** 0.43.0 renamed it `aria-label`.
32
+ - Migration: write `aria-label` (TypeScript flags every use of `ariaLabel`).
33
+ - **The peer ranges on core and charts move to `^0.44.0`.**
34
+ - Migration: install the 0.44 versions of `@umriss-ui/core` and `@umriss-ui/charts` beside it.
35
+
21
36
  ## 0.43.0 – A schedule that fills its frame, and takes a finger (Oct. 2026)
22
37
 
23
38
  ### Added
package/README.md CHANGED
@@ -60,6 +60,8 @@ export function Plan() {
60
60
  }
61
61
  ```
62
62
 
63
+ Malformed data - a subtask that does not end after it starts, an item on a lane no `Lane` declares, a dependency naming no subtask, an id that stands twice - warns in development, once per cause, and is left out in production. An application with imported data checks it where it imports it.
64
+
63
65
  ## Editing is controlled
64
66
 
65
67
  The schedule draws the data it is given and changes none of it (ADR-0023). A
package/dist/index.d.ts CHANGED
@@ -2,7 +2,6 @@ import { CalendarInput } from '@umriss-ui/charts';
2
2
  import { HTMLAttributes } from 'react';
3
3
  import { ReactNode } from 'react';
4
4
  import { Ref } from 'react';
5
- import { RefObject } from 'react';
6
5
 
7
6
  /** The subtask as the intent asks for it. An intent for another subtask leaves
8
7
  it as it is. */
@@ -346,25 +345,6 @@ export declare interface ResolvedAppearance {
346
345
  bounded number of pushes instead of running on. */
347
346
  export declare function ripple(subtasks: readonly Subtask[], dependencies: readonly Dependency[], intent: Intent): MoveIntent[];
348
347
 
349
- /** What a schedule offers a caller imperatively: the arithmetic between a
350
- point on the screen and a time on a lane. Everything else is props.
351
- @deprecated since 0.43 - use the functions on `useSchedule`'s return. */
352
- export declare interface ScheduleHandle {
353
- /** The time and the lane at a client point, or null outside the plot. */
354
- positionAt: (clientX: number, clientY: number) => {
355
- time: number;
356
- lane: string | null;
357
- } | null;
358
- /** The client point of a time - on the middle of a lane where one is named -
359
- or null while the schedule is not on screen. */
360
- clientPointOf: (time: number, lane?: string) => {
361
- x: number;
362
- y: number;
363
- } | null;
364
- /** The visible span, as two wall-clock instants. */
365
- visibleDomain: () => readonly [number, number];
366
- }
367
-
368
348
  /** What a pointer is on. */
369
349
  export declare type ScheduleHit = {
370
350
  readonly kind: "subtask";
@@ -416,10 +396,8 @@ export declare interface ScheduleOptions {
416
396
  }
417
397
 
418
398
  declare interface ScheduleOwnProps extends Omit<HTMLAttributes<HTMLDivElement>, "children" | "aria-label"> {
419
- /** Receives the root element. A ref to the deprecated `ScheduleHandle` still
420
- works for one more minor release: the element carries its three
421
- functions. */
422
- ref?: Ref<HTMLDivElement> | RefObject<ScheduleHandle | null> | undefined;
399
+ /** Receives the root element. */
400
+ ref?: Ref<HTMLDivElement> | undefined;
423
401
  /** Height in CSS pixels, both bands included, fixed. Left out, the schedule
424
402
  fills its frame - a stretched grid cell, a card the grid stretches, a
425
403
  container of definite height - and never goes below 400 px, which is also
@@ -593,17 +571,10 @@ export declare interface ScheduleParts {
593
571
  reads itself. `ref`, `className`, `style` and the rest reach the root; the
594
572
  name (`aria-label`, `aria-labelledby`) reaches the figure root and the plot,
595
573
  and a `aria-describedby` of yours is joined to the plot's summary. */
596
- export declare type ScheduleProps = ScheduleOwnProps & ({
574
+ export declare type ScheduleProps = ScheduleOwnProps & {
597
575
  /** What the schedule shows, for a screen reader: "Plan of week 38". */
598
576
  "aria-label": string;
599
- /** @deprecated since 0.43 - use `aria-label`. */
600
- ariaLabel?: string;
601
- } | {
602
- "aria-label"?: undefined;
603
- /** What the schedule shows, for a screen reader.
604
- @deprecated since 0.43 - use `aria-label`. */
605
- ariaLabel: string;
606
- });
577
+ };
607
578
 
608
579
  /** What a tooltip is about: the hovered subtask or dependency, with what the
609
580
  schedule knows about it. */