@umriss-ui/charts 0.13.0 → 0.14.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
@@ -29,6 +29,59 @@ interface was still expected to move before `0.3.0`.
29
29
 
30
30
  ---
31
31
 
32
+ ## 0.14.0 – A chart reads its rows as they come (Oct. 2026)
33
+
34
+ A chart takes rows as an application has them (ADR-0052). A category is a
35
+ value: `<XAxis value="costCentre" />` over rows that hold a name gives every
36
+ distinct one a place, a tick and its label - no position computed per row, no
37
+ `ticks` listed, no `tickFormat` that looks the name up. An instant is a value:
38
+ a `Date`, or with `time` the ISO string an API sends. Numeric positions with
39
+ named ticks keep working as they did; nothing is taken away.
40
+
41
+ ### Added
42
+
43
+ - **A category on the x axis.** `XAxis value` reads a string field or a
44
+ function returning a string.
45
+ - Every distinct category gets a place, in the order the rows first bring
46
+ them - the series in the order they are declared, a hidden one included.
47
+ - The category is its label: under the tick, in the tooltip, the keyboard
48
+ readout, the summary and the data table.
49
+ - The rows may come in any order; a hit and a `value` function's `index`
50
+ still name your row. A row without a category is left out.
51
+ - The type decides, never the content: `"2024"` is a category, `2024` a
52
+ number. One axis has one kind; DEV names a series that brings the other.
53
+ - Bars stand side by side and stack, a line stands on the middle of a
54
+ category, zoom works in places.
55
+ - **`categories` on `XAxis` and `YAxis`**: your own list, which is the order
56
+ and the extent. A category no row carries keeps its empty place; a row whose
57
+ category is not listed is not drawn, and DEV names it.
58
+ - **`categoryLabel` on `XAxis` and `YAxis`**: what is written for a category
59
+ where the rows hold a key and not a name. Two categories may share a label.
60
+ - **Categories along y.** `Matrix value` reads a string field, and the y axis
61
+ lists a row per category; the tooltip names a cell's row. `StateBand lane`
62
+ names the band's lane, a category of its y axis - instead of `laneFrom` and
63
+ `laneTo`, which stay for a numeric axis; the compiler refuses both at once.
64
+ The first category stands at the top. A series of numbers on a y axis that
65
+ has categories is not drawn: one axis has one kind.
66
+ - **A `Date` on the x axis** puts the axis in time without `time`.
67
+ - **ISO 8601 strings with `time`.** A date with a time and no offset is local
68
+ time, a date alone is UTC - the platform's rule. A string that is no instant
69
+ is not drawn, and DEV names its row.
70
+ - **A `Date` where you name a place in time**: a fixed `domain` pair on
71
+ `XAxis`, `value` on `LimitLine`, `from` and `to` on `LimitBand`.
72
+ - **Types**: `AxisValue`, `AxisField`, `OneLane`.
73
+
74
+ ### Changed
75
+
76
+ - **A category axis spans its places with half a step at either end**,
77
+ whatever stands on it. A line over categories therefore begins half a step
78
+ inside the plot, where a line over the positions 0, 1, 2 began at its edge.
79
+ Only an axis that reads categories is affected.
80
+ - **`tickFormat`, `ticks` and `tickCount` do not apply to an axis that reads
81
+ categories**; DEV says so. They keep their job on a numeric and a time axis.
82
+
83
+ ---
84
+
32
85
  ## 0.13.0 – A chart fills its frame, never below its floor (Oct. 2026)
33
86
 
34
87
  ### Changed
package/README.md CHANGED
@@ -97,6 +97,10 @@ loaded: Geist when the application has it, the system fonts otherwise.
97
97
  * **Seven series kinds** in one chart on shared axes: `Line`, `Area`, `Bar`,
98
98
  `BoxPlot`, `Scatter`, `StateBand`, `Matrix`. Occupancy — work on people or vehicles, idle time,
99
99
  double bookings — is `@umriss-ui/schedule`'s (ADR-0026).
100
+ * **Rows as they come** (ADR-0052): an axis reads a category from a string -
101
+ a place, a tick and its name each, in the rows' order or your own
102
+ `categories` - and an instant from a `Date` or, with `time`, from the ISO
103
+ string an API sends. No position computed per row, no tick list, no lookup.
100
104
  * **Several axes per orientation**, each with its own extent; only the first
101
105
  registered axis per orientation draws a grid.
102
106
  * **The chart holds its own view** (ADR-0047): an `XAxis zoomable` zooms and
@@ -122,7 +126,7 @@ loaded: Geist when the application has it, the system fonts otherwise.
122
126
  [`docs/capabilities.md`](docs/capabilities.md) under "Performance" — they are
123
127
  not repeated here, so that a new measurement has one place to go.
124
128
 
125
- What it deliberately cannot do — animations, a log or category scale,
129
+ What it deliberately cannot do — animations, a log or band scale,
126
130
  horizontal bars, pie and radar — stands in the same record, with the reason,
127
131
  and across all five packages in
128
132
  [ADR-0032](../../docs/adr/0032-what-umriss-is-not.md). Stacking is not among