@umriss-ui/dashboard 0.42.0 → 0.43.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 +12 -0
- package/README.md +15 -0
- package/dist/dashboard.js +1 -1
- package/dist/index.d.ts +2 -1
- package/docs/llms-full.md +5 -4
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -13,6 +13,18 @@ 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.43.0 – What fills a widget (Oct. 2026)
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
|
|
20
|
+
- **`Dashboard` takes a `ref`**, typed at its root `role="group"` (ADR-0068); at runtime it reached that element before.
|
|
21
|
+
- **The README says what fills a widget and who hears of a failure:** a chart and a schedule fill the body, a table stays within it with its toolbar and pager in view, a wrapper passes the height on with `height: 100%`; a widget whose content throws reaches React's `onCaughtError`, keeps its frame, and tries again when its size or options change.
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
|
|
25
|
+
- **The peer range on core moves to `^0.43.0`.**
|
|
26
|
+
- Migration: install the 0.43 version of `@umriss-ui/core` beside it.
|
|
27
|
+
|
|
16
28
|
## 0.42.0 – A widget scrolls what exceeds its size (Oct. 2026)
|
|
17
29
|
|
|
18
30
|
### Added
|
package/README.md
CHANGED
|
@@ -60,6 +60,8 @@ const { Dashboard, WidgetType } = useDashboard({
|
|
|
60
60
|
</Dashboard>;
|
|
61
61
|
```
|
|
62
62
|
|
|
63
|
+
`Dashboard` is an element: `ref`, `className`, `style` and the rest reach its root `role="group"`.
|
|
64
|
+
|
|
63
65
|
- **A sequence, never coordinates (ADR-0064).** One stored arrangement is right
|
|
64
66
|
at every width. A widget that does not fit its row starts the next, and the
|
|
65
67
|
room it leaves stays free. Below the width at which a column would be too
|
|
@@ -69,6 +71,12 @@ const { Dashboard, WidgetType } = useDashboard({
|
|
|
69
71
|
worded in English and German by the library; a type offers some of them. The
|
|
70
72
|
height follows the size, never the content: what the content needs beyond
|
|
71
73
|
the size scrolls inside the widget, and the keyboard reaches it.
|
|
74
|
+
- **A view fills its widget's body.** A chart and a schedule fill the body and
|
|
75
|
+
need no height of their own; a table stays within it, its toolbar and pager
|
|
76
|
+
in view, and its rows scroll. A wrapper of the application's own between the
|
|
77
|
+
body and the view passes the height on with `height: 100%`. A view whose floor
|
|
78
|
+
is taller than a size (a chart's 300 px, a schedule's 400 px) takes a lower one
|
|
79
|
+
through `style`'s `minHeight`, as the dispatcher's trends do.
|
|
72
80
|
- **Editing is a mode and a draft.** "Edit" opens it; every change is a step
|
|
73
81
|
that can be undone and redone; "Done" reports the whole arrangement once
|
|
74
82
|
through `onViewChange`, "Cancel" puts it back, "Reset" steps to the default.
|
|
@@ -80,6 +88,13 @@ const { Dashboard, WidgetType } = useDashboard({
|
|
|
80
88
|
- **A kept arrangement is read leniently.** A widget of a type that is gone
|
|
81
89
|
falls out, a size a type no longer offers falls back to its starting size.
|
|
82
90
|
A widget whose content throws keeps its frame and says so in a sentence.
|
|
91
|
+
- **A failed widget is reported and may be retried.** React's `onCaughtError`,
|
|
92
|
+
given to `createRoot` or to the application's root, receives the error of a
|
|
93
|
+
widget whose content throws; the other widgets render. A retry is an error
|
|
94
|
+
boundary of the application's own inside the content: it catches first, so the
|
|
95
|
+
dashboard's boundary never sees the error, and it can reset the application's
|
|
96
|
+
data layer. Without one, a widget gets another try by itself when its size or
|
|
97
|
+
its options change.
|
|
83
98
|
- **The application's, not the library's:** where an arrangement is stored,
|
|
84
99
|
which default a role gets, several dashboards, sharing, and what stands in a
|
|
85
100
|
widget.
|
package/dist/dashboard.js
CHANGED
|
@@ -346,7 +346,7 @@ function Mt({ view: s, editor: e, className: i, children: d, catalogue: v, ...y
|
|
|
346
346
|
] }, t.name);
|
|
347
347
|
}) }) })
|
|
348
348
|
] }),
|
|
349
|
-
D?.form && ne && /* @__PURE__ */ a(Ae, { open: !0, anchorRef: g, align: "end", onOpenChange: () => w(null), role: "dialog",
|
|
349
|
+
D?.form && ne && /* @__PURE__ */ a(Ae, { open: !0, anchorRef: g, align: "end", onOpenChange: () => w(null), role: "dialog", "aria-label": n.dashboardOptions, children: /* @__PURE__ */ a("div", { className: z.options, children: D.form({
|
|
350
350
|
options: ne.options,
|
|
351
351
|
change: (t) => {
|
|
352
352
|
e.step(Ue(ne.id, t)), $(n.dashboardOptionsChanged(Q(D, t)));
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { HTMLAttributes } from 'react';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
|
+
import { RefProp } from '@umriss-ui/core';
|
|
3
4
|
|
|
4
5
|
/** What `useDashboard` takes. */
|
|
5
6
|
export declare interface DashboardOptions {
|
|
@@ -48,7 +49,7 @@ export declare interface DashboardParts {
|
|
|
48
49
|
}
|
|
49
50
|
|
|
50
51
|
/** The props of `Dashboard`. */
|
|
51
|
-
export declare interface DashboardProps extends HTMLAttributes<HTMLDivElement> {
|
|
52
|
+
export declare interface DashboardProps extends HTMLAttributes<HTMLDivElement>, RefProp<HTMLDivElement> {
|
|
52
53
|
/** The `WidgetType`s of this dashboard. */
|
|
53
54
|
children?: ReactNode;
|
|
54
55
|
/** The `name`s of the widget types the catalogue lists.
|
package/docs/llms-full.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# @umriss-ui/dashboard 0.
|
|
1
|
+
# @umriss-ui/dashboard 0.43.0
|
|
2
2
|
|
|
3
3
|
> React dashboard for data-dense applications - widgets a reader arranges, packed in order on twelve columns.
|
|
4
4
|
|
|
@@ -76,7 +76,7 @@ function TrendChart({ data, previous, labels = ["this week", "last week"] }: { d
|
|
|
76
76
|
</Text>
|
|
77
77
|
)}
|
|
78
78
|
<div style={{ flex: "1 1 0", minHeight: 0 }}>
|
|
79
|
-
<Chart
|
|
79
|
+
<Chart aria-label={previous ? `${labels[0]} and ${labels[1]}` : labels[0]} padding={4} style={{ minHeight: 0, height: "100%" }}>
|
|
80
80
|
<XAxis value="i" domain="data" grid={false} tickFormat={() => ""} />
|
|
81
81
|
<YAxis grid tickFormat={() => ""} />
|
|
82
82
|
{previous && <Line value="before" name={labels[1]} color="var(--u-color-text-muted)" strokeWidth={1.25} dash={[3, 3]} markers="never" />}
|
|
@@ -468,7 +468,7 @@ function TrendChart({ data, previous, labels = ["this week", "last week"] }: { d
|
|
|
468
468
|
</Text>
|
|
469
469
|
)}
|
|
470
470
|
<div style={{ flex: "1 1 0", minHeight: 0 }}>
|
|
471
|
-
<Chart
|
|
471
|
+
<Chart aria-label={previous ? `${labels[0]} and ${labels[1]}` : labels[0]} padding={4} style={{ minHeight: 0, height: "100%" }}>
|
|
472
472
|
<XAxis value="i" domain="data" grid={false} tickFormat={() => ""} />
|
|
473
473
|
<YAxis grid tickFormat={() => ""} />
|
|
474
474
|
{previous && <Line value="before" name={labels[1]} color="var(--u-color-text-muted)" strokeWidth={1.25} dash={[3, 3]} markers="never" />}
|
|
@@ -800,6 +800,7 @@ Every move, size, removal, addition, undo, redo, reset, "Done" and "Cancel" is a
|
|
|
800
800
|
|---|---|---|---|
|
|
801
801
|
| `children` | `ReactNode` | — | The `WidgetType`s of this dashboard.<br>Shown in: [The start screen of a dispatcher](#dashboard), [Your own component as a widget](#dashboard), [Headings that divide the dashboard](#dashboard) and 1 more |
|
|
802
802
|
| `catalogue` | `ReadonlyArray<string>` | every declared type | The `name`s of the widget types the catalogue lists.<br>Shown in: [The start screen of a dispatcher](#dashboard) |
|
|
803
|
+
| `ref` | `Ref<HTMLDivElement> \| undefined` | — | Receives the component's root element. From `RefProp`. |
|
|
803
804
|
|
|
804
805
|
Also takes every attribute of `<div>`.
|
|
805
806
|
|
|
@@ -870,7 +871,7 @@ Declares no props of its own.
|
|
|
870
871
|
- Never: stacks of widgets that share one place, coordinates and free placement, a layout per breakpoint, dense packing ([ADR-0064](https://github.com/romanhaendler/umriss-ui/blob/main/docs/adr/0064-a-dashboard-a-user-arranges-is-a-sequence-on-fixed-columns.md)).
|
|
871
872
|
- Where an arrangement is stored, which default a role gets, several dashboards and what stands in a widget are the application's.
|
|
872
873
|
|
|
873
|
-
What umriss deliberately does not build, and why: [ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/dashboard-v0.
|
|
874
|
+
What umriss deliberately does not build, and why: [ADR-0032](https://github.com/romanhaendler/umriss-ui/blob/dashboard-v0.43.0/docs/adr/0032-what-umriss-is-not.md).
|
|
874
875
|
|
|
875
876
|
## API index
|
|
876
877
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@umriss-ui/dashboard",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.43.0",
|
|
4
4
|
"description": "React dashboard for data-dense applications - widgets a reader arranges, packed in order on twelve columns.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Roman Händler",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
}
|
|
55
55
|
},
|
|
56
56
|
"peerDependencies": {
|
|
57
|
-
"@umriss-ui/core": "^0.
|
|
57
|
+
"@umriss-ui/core": "^0.43.0",
|
|
58
58
|
"react": ">=19",
|
|
59
59
|
"react-dom": ">=19"
|
|
60
60
|
},
|
|
@@ -70,8 +70,8 @@
|
|
|
70
70
|
"typescript": "^5.6.3",
|
|
71
71
|
"vite": "^6.0.0",
|
|
72
72
|
"vite-plugin-dts": "^4.3.0",
|
|
73
|
-
"@umriss-ui/
|
|
74
|
-
"@umriss-ui/
|
|
73
|
+
"@umriss-ui/core": "0.43.0",
|
|
74
|
+
"@umriss-ui/demo": "0.0.0"
|
|
75
75
|
},
|
|
76
76
|
"scripts": {
|
|
77
77
|
"props": "node --disable-warning=ExperimentalWarning --experimental-strip-types demo/props.ts",
|