@espressif/dashboard-ui-components 1.7.0 → 1.8.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,6 +4,107 @@ All notable changes to this project are documented here. The format is based on
4
4
  [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres
5
5
  to [Semantic Versioning](https://semver.org/).
6
6
 
7
+ ## [1.8.0] - 2026-10-08
8
+
9
+ A minor release focused on small screens. `Tabs`, `DataTable`, `SimpleList`,
10
+ `DynamicList`, `ListDetails`, `KeyValueManager` and `Pagination` now adapt
11
+ to phone widths, and `ScrollArea` no longer stretches to fit wide content.
12
+ `DataTable` gains sticky, wrapping and width-based hidden columns, and a
13
+ new `rm-dashboard-update` illustration is added. No breaking API changes,
14
+ but one default changed: `DataTable` cells now stay on one line, so long
15
+ free-text columns need `meta: { wrap: true }` to keep wrapping.
16
+
17
+ ### Added
18
+ - **`Illustration`** — new `rm-dashboard-update` illustration: the RainMaker
19
+ cloud delivering update packages to a dashboard on a laptop. It is a
20
+ companion to `rm-data-download` (same canvas, cloud and connector) and,
21
+ like it, plays SMIL animations with `animated`: packages fly in, each one
22
+ refreshes a stat card, the chart regrows, the progress bar fills and a sync
23
+ badge spins. Colours come from the theme tokens, so it works in dark mode.
24
+ - **`DataTable`** — responsive column options through `meta` (typed as the
25
+ exported `DataTableColumnMeta`): `sticky: true` pins leading columns to
26
+ the left edge while the table scrolls horizontally (the row-selection
27
+ checkbox column is pinned with them), and `wrap: true` lets a long
28
+ free-text column wrap. Pinned cells use the page background; tables on
29
+ another surface set `--data-table-sticky-bg` to match it.
30
+ - **`DataTable`** — `meta.hideBelow` hides lower-priority columns while the
31
+ table is narrow. It takes a size from Tailwind's container scale (`sm`
32
+ 384px … `7xl` 1280px, typed as `DataTableBreakpoint`) or a width in pixels,
33
+ and measures the table's own width rather than the viewport, so it also
34
+ works in sheets and split panes. A phone-width table is below `sm`, so
35
+ `hideBelow: "sm"` hides a column on phones. Hidden columns stay in the
36
+ Columns menu; visibility is only re-applied when the width crosses a
37
+ breakpoint, so a column the user brings back stays visible.
38
+ - **`ScrollArea`** — `orientation` prop (`"vertical"` default,
39
+ `"horizontal"`, `"both"`) choosing which directions scroll and which
40
+ scrollbars render. Types exported as `ScrollAreaProps` and
41
+ `ScrollAreaOrientation`.
42
+ - **`Table`** — optional `containerRef` and `containerClassName` props for
43
+ the scroll container that wraps the `<table>`.
44
+
45
+ ### Changed
46
+ - **`Tabs`** — when the triggers don't fit, `TabsList` now scrolls
47
+ horizontally instead of overflowing the page. Edges fade where tabs are
48
+ hidden, chevron buttons page through them on mouse and trackpad devices
49
+ (touch devices swipe), and the selected tab is kept in view. Lists with
50
+ `aria-orientation="vertical"` are unchanged.
51
+ - **`DataTable`** — on narrow screens the table now scrolls horizontally
52
+ instead of squashing its columns. Body cells stay on one line by default
53
+ (as header cells already did), and shadows at the edges show when columns
54
+ are scrolled out of view. Long free-text columns that used to wrap now
55
+ extend the row; add `meta: { wrap: true }` to keep them wrapping. The
56
+ toolbar also wraps, so `tableActionsContent` moves above the Columns
57
+ button when there is no room for both.
58
+ - **`SimpleList`, `DynamicList`** — `direction="row"` (list-level or, in
59
+ `SimpleList`, per item) now applies from the `sm` breakpoint (640px) up.
60
+ On phones, label and value stack like a column row instead of squeezing
61
+ onto one line. `DynamicList`'s `keyWidth` split applies from `sm` up.
62
+ - **`ListDetails`** — below the `md` breakpoint (768px) the layout stacks:
63
+ the items become a single scrollable row with arrow buttons and edge
64
+ fades, the selected item is kept in view, and its details show below.
65
+ The `footer` is hidden on these screens. String titles in the row are
66
+ capped at 12rem and truncated, and the default chevron is omitted there
67
+ (a custom `endIcon` still shows). From `md` up the layout is unchanged.
68
+ - **`KeyValueManager`** — on small screens (below the `sm` breakpoint,
69
+ 640px) search and Add become icon buttons. The search icon expands the
70
+ search box across the toolbar (hiding Add) and focuses it; a close
71
+ button, or Escape, clears the search and returns to the icons. Rows show
72
+ as key/value cards without the column header, with the delete button
73
+ always visible. New `labels.closeSearch` names the close button.
74
+ - **`Pagination`** — in containers narrower than 28rem the Previous and
75
+ Next buttons become icon-only (their labels stay available to screen
76
+ readers), and the page-size selector wraps onto its own line when the row
77
+ still doesn't fit.
78
+
79
+ ### Fixed
80
+ - **`ScrollArea`** — content wider than the area no longer stretches it
81
+ and gets clipped. A vertical area (the default) now keeps its content at
82
+ the area's width, so wide children such as `DataTable` scroll sideways on
83
+ their own. Areas that pass `<ScrollBar orientation="horizontal" />` as a
84
+ child keep scrolling horizontally as before; prefer `orientation`.
85
+ - **`BasicDetailsCard`** — a small gap (0.25rem) now separates the primary
86
+ and secondary text, which previously touched. This also spaces out
87
+ `DynamicList` rows and the small-screen `KeyValueManager` rows that use it.
88
+ - **`KeyValueManager`** — the row delete button, shown on hover, is now
89
+ also visible when focused with the keyboard.
90
+ - **`Tabs`** — the animated highlight stays aligned with its tab when the
91
+ tab list's container is scrolled.
92
+
93
+ ### Internal
94
+ Nothing in this section affects the published package.
95
+
96
+ - A shared `useScrollOverflow` hook (not exported) tracks hidden content on
97
+ either side of a horizontal scroller for `Tabs`, `DataTable` and
98
+ `ListDetails`.
99
+ - Demo: new examples for `Tabs` (many tabs, plus tab-count and icon
100
+ controls on the playground), `DataTable` (wide table, phone width,
101
+ several pinned columns, wrapping, clickable rows, tinted surface and a
102
+ resizable `hideBelow` table), `Pagination` (narrow containers) and
103
+ `ScrollArea` (wide content, horizontal scrolling). The demo's API tables
104
+ mark free-text columns as `wrap`.
105
+ - Tests for `DataTable` column `meta` (`sticky`, `wrap`, `hideBelow`),
106
+ `ListDetails`, `KeyValueManager` and `ScrollArea`.
107
+
7
108
  ## [1.7.0] - 2026-10-06
8
109
 
9
110
  A minor release adding per-item icons and colours to `OverflowBadgeList`