@umriss-ui/dashboard 0.45.0 → 0.47.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
@@ -4,7 +4,7 @@ This document describes what changes for **callers** of the package: exports,
4
4
  props, behaviour.
5
5
 
6
6
  **The numbers.** The middle digit rises when something is added; the last one
7
- when something is repaired. The six packages are released in step, and a rename
7
+ when something is repaired. The seven packages are released in step, and a rename
8
8
  keeps its old name for one further minor, with a warning, before the minor after
9
9
  it removes the name ([the upgrade promise, ADR-0066](../../docs/adr/0066-one-number-peers-over-the-minor-a-rename-lives-one-minor.md)).
10
10
  **Whatever changes existing behaviour stands under a heading "Changed" of its
@@ -13,6 +13,30 @@ one section before an upgrade reads that one.
13
13
 
14
14
  The dashboard joins the other five packages' one number at its first version: they are released together, and a package without a change of its own still gets a heading for it.
15
15
 
16
+ ## 0.47.0 – Released in step with alarms (Oct. 2026)
17
+
18
+ No change of its own; the number moves with the new package `@umriss-ui/alarms`.
19
+
20
+ ### Changed
21
+
22
+ - **The peer ranges move to `^0.47.0`.**
23
+ - Migration: install the 0.47 version of `@umriss-ui/core` beside it.
24
+
25
+ ## 0.46.0 – A locked widget, a heading level, and stored options (Oct. 2026)
26
+
27
+ ### Added
28
+
29
+ - **`DashboardWidget` takes `locked`**, set by the application: the reader can move a locked widget but not resize it, change its options or remove it, and the editing mode says so on its head and in its menu. The lock lives in the view; an example shows how an application brings it into arrangements kept before it.
30
+ - **`headingLevel` on `Dashboard`** sets the level of its heading widgets (2 to 6, default 2); a dashboard that holds a heading widget has its widget titles one level below them.
31
+ - **The demo:** a widget for one role that survives "Done" by another, an arrangement migrated from an older release, and a row of the widget's own controls above its chart. ADR-0032 and ADR-0064 name a mimic layer, uncertainty propagation and dragging from the catalogue as never.
32
+
33
+ ### Changed
34
+
35
+ - **A kept arrangement's widgets are read with their options spread over the type's `defaultOptions`**, one level deep, so a key a later update adds is never `undefined`; absent, `null`, array or primitive options read as the defaults, and a widget of an undeclared type keeps its options as stored.
36
+ - Migration: an application that merged the defaults into stored options itself may drop that code.
37
+ - **The peer range on core moves to `^0.46.0`.**
38
+ - Migration: install the 0.46 version of `@umriss-ui/core` beside it.
39
+
16
40
  ## 0.45.0 – Moves along (Oct. 2026)
17
41
 
18
42
  No change of its own; the dashboard is released with the other five under one number.
package/README.md CHANGED
@@ -34,7 +34,9 @@ a test, without a layout engine.
34
34
  back `Dashboard` and `WidgetType`. A widget type is JSX: its name, a sentence,
35
35
  the sizes it offers with the columns (of twelve) and rows each takes, the size
36
36
  to start from, its default options, and its content as a function of the size
37
- and the options. The options type is inferred from the default options.
37
+ and the options. The options type is inferred from the default options. The
38
+ `headingLevel` prop (2 to 6, default 2) is the level of the heading widgets, and a
39
+ widget's title stands one level below them when the dashboard holds one.
38
40
 
39
41
  ```tsx
40
42
  import { Stat } from "@umriss-ui/core";
@@ -85,8 +87,19 @@ const { Dashboard, WidgetType } = useDashboard({
85
87
  - **Every action without a drag.** One menu on every widget's head moves,
86
88
  sizes, sets the options and removes; the head is also the grip for a pointer
87
89
  and takes the arrow keys. Every change is announced.
88
- - **A kept arrangement is read leniently.** A widget of a type that is gone
89
- falls out, a size a type no longer offers falls back to its starting size.
90
+ - **A locked widget moves and nothing else changes it.** The application sets
91
+ `locked: true` on a widget of the view; the reader can move it, but not
92
+ resize it, change its options or remove it, and the editing mode says so on
93
+ its head and in its menu. The mark lives in the view, so it comes back through
94
+ `initialView` and "Reset" brings back the default's. Only the application sets
95
+ it; the reader never can. An arrangement a reader kept before the lock lacks
96
+ it: the application sets it before `initialView`, as the demo's "A widget every
97
+ reader keeps" shows.
98
+ - **A kept arrangement is read leniently.** A widget of a type not declared is
99
+ not drawn and stays in the stored arrangement: "Done" keeps it after the
100
+ widgets that are drawn, so a widget behind a role, a flag or a plugin loaded
101
+ late is never lost. A size a type no longer offers falls back to its starting
102
+ size, and options a stored widget lacks come from its type's default options.
90
103
  A widget whose content throws keeps its frame and says so in a sentence.
91
104
  - **A failed widget is reported and may be retried.** React's `onCaughtError`,
92
105
  given to `createRoot` or to the application's root, receives the error of a