@vielzeug/codex 26.10.20 → 26.10.21

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/data/catalog.json CHANGED
@@ -35,7 +35,7 @@
35
35
  "rune"
36
36
  ],
37
37
  "slug": "archive",
38
- "version": "26.10.19"
38
+ "version": "26.10.20"
39
39
  },
40
40
  {
41
41
  "availableDocPages": [
@@ -108,7 +108,7 @@
108
108
  "coins"
109
109
  ],
110
110
  "slug": "arsenal",
111
- "version": "26.10.19"
111
+ "version": "26.10.20"
112
112
  },
113
113
  {
114
114
  "availableDocPages": [
@@ -160,7 +160,7 @@
160
160
  "refine"
161
161
  ],
162
162
  "slug": "assay",
163
- "version": "26.10.19"
163
+ "version": "26.10.20"
164
164
  },
165
165
  {
166
166
  "availableDocPages": [
@@ -199,7 +199,7 @@
199
199
  "vault"
200
200
  ],
201
201
  "slug": "beacon",
202
- "version": "26.10.19"
202
+ "version": "26.10.20"
203
203
  },
204
204
  {
205
205
  "availableDocPages": [
@@ -241,7 +241,7 @@
241
241
  "ward"
242
242
  ],
243
243
  "slug": "clockwork",
244
- "version": "26.10.19"
244
+ "version": "26.10.20"
245
245
  },
246
246
  {
247
247
  "availableDocPages": [
@@ -273,7 +273,7 @@
273
273
  "refine"
274
274
  ],
275
275
  "slug": "codex",
276
- "version": "26.10.19"
276
+ "version": "26.10.20"
277
277
  },
278
278
  {
279
279
  "availableDocPages": [
@@ -343,7 +343,7 @@
343
343
  "spell"
344
344
  ],
345
345
  "slug": "coins",
346
- "version": "26.10.19"
346
+ "version": "26.10.20"
347
347
  },
348
348
  {
349
349
  "availableDocPages": [
@@ -384,7 +384,7 @@
384
384
  "rune"
385
385
  ],
386
386
  "slug": "conduit",
387
- "version": "26.10.19"
387
+ "version": "26.10.20"
388
388
  },
389
389
  {
390
390
  "availableDocPages": [
@@ -426,7 +426,7 @@
426
426
  "postmaster"
427
427
  ],
428
428
  "slug": "courier",
429
- "version": "26.10.19"
429
+ "version": "26.10.20"
430
430
  },
431
431
  {
432
432
  "availableDocPages": [
@@ -472,7 +472,7 @@
472
472
  "refine"
473
473
  ],
474
474
  "slug": "dnd",
475
- "version": "26.10.19"
475
+ "version": "26.10.20"
476
476
  },
477
477
  {
478
478
  "availableDocPages": [
@@ -514,7 +514,7 @@
514
514
  "herald"
515
515
  ],
516
516
  "slug": "familiar",
517
- "version": "26.10.19"
517
+ "version": "26.10.20"
518
518
  },
519
519
  {
520
520
  "availableDocPages": [
@@ -581,7 +581,7 @@
581
581
  "courier"
582
582
  ],
583
583
  "slug": "flux",
584
- "version": "26.10.19"
584
+ "version": "26.10.20"
585
585
  },
586
586
  {
587
587
  "availableDocPages": [
@@ -621,7 +621,7 @@
621
621
  "ore"
622
622
  ],
623
623
  "slug": "focus",
624
- "version": "26.10.19"
624
+ "version": "26.10.20"
625
625
  },
626
626
  {
627
627
  "availableDocPages": [
@@ -662,7 +662,7 @@
662
662
  "assay"
663
663
  ],
664
664
  "slug": "forge",
665
- "version": "26.10.19"
665
+ "version": "26.10.20"
666
666
  },
667
667
  {
668
668
  "availableDocPages": [
@@ -700,7 +700,7 @@
700
700
  "keymap"
701
701
  ],
702
702
  "slug": "gesture",
703
- "version": "26.10.19"
703
+ "version": "26.10.20"
704
704
  },
705
705
  {
706
706
  "availableDocPages": [
@@ -744,7 +744,7 @@
744
744
  "familiar"
745
745
  ],
746
746
  "slug": "herald",
747
- "version": "26.10.19"
747
+ "version": "26.10.20"
748
748
  },
749
749
  {
750
750
  "availableDocPages": [
@@ -787,7 +787,7 @@
787
787
  "tempo"
788
788
  ],
789
789
  "slug": "illusionist",
790
- "version": "26.10.19"
790
+ "version": "26.10.20"
791
791
  },
792
792
  {
793
793
  "availableDocPages": [
@@ -832,7 +832,7 @@
832
832
  "ore"
833
833
  ],
834
834
  "slug": "keymap",
835
- "version": "26.10.19"
835
+ "version": "26.10.20"
836
836
  },
837
837
  {
838
838
  "availableDocPages": [
@@ -879,7 +879,7 @@
879
879
  "vault"
880
880
  ],
881
881
  "slug": "ledger",
882
- "version": "26.10.19"
882
+ "version": "26.10.20"
883
883
  },
884
884
  {
885
885
  "availableDocPages": [
@@ -925,7 +925,7 @@
925
925
  "courier"
926
926
  ],
927
927
  "slug": "lingua",
928
- "version": "26.10.19"
928
+ "version": "26.10.20"
929
929
  },
930
930
  {
931
931
  "availableDocPages": [
@@ -963,7 +963,7 @@
963
963
  "herald"
964
964
  ],
965
965
  "slug": "mesh",
966
- "version": "26.10.19"
966
+ "version": "26.10.20"
967
967
  },
968
968
  {
969
969
  "availableDocPages": [
@@ -1000,7 +1000,7 @@
1000
1000
  "ore"
1001
1001
  ],
1002
1002
  "slug": "necromancer",
1003
- "version": "26.10.19"
1003
+ "version": "26.10.20"
1004
1004
  },
1005
1005
  {
1006
1006
  "availableDocPages": [
@@ -1040,7 +1040,7 @@
1040
1040
  "prism"
1041
1041
  ],
1042
1042
  "slug": "orbit",
1043
- "version": "26.10.19"
1043
+ "version": "26.10.20"
1044
1044
  },
1045
1045
  {
1046
1046
  "availableDocPages": [
@@ -1105,7 +1105,7 @@
1105
1105
  "orbit"
1106
1106
  ],
1107
1107
  "slug": "ore",
1108
- "version": "26.10.19"
1108
+ "version": "26.10.20"
1109
1109
  },
1110
1110
  {
1111
1111
  "availableDocPages": [
@@ -1149,7 +1149,7 @@
1149
1149
  "ripple"
1150
1150
  ],
1151
1151
  "slug": "postmaster",
1152
- "version": "26.10.19"
1152
+ "version": "26.10.20"
1153
1153
  },
1154
1154
  {
1155
1155
  "availableDocPages": [
@@ -1159,7 +1159,7 @@
1159
1159
  "examples"
1160
1160
  ],
1161
1161
  "category": "ui",
1162
- "description": "Responsive SVG charts with explicit updates: line, bar, area, scatter, pie, radar, sparkline",
1162
+ "description": "Responsive SVG charts with explicit updates: line, bar, area, scatter, pie, radar, heatmap, sparkline",
1163
1163
  "exampleIds": [],
1164
1164
  "exports": [
1165
1165
  "createLineChart",
@@ -1179,6 +1179,7 @@
1179
1179
  "scatter-chart",
1180
1180
  "pie-chart",
1181
1181
  "radar-chart",
1182
+ "heatmap-chart",
1182
1183
  "sparkline",
1183
1184
  "accessibility",
1184
1185
  "typescript"
@@ -1189,7 +1190,7 @@
1189
1190
  "orbit"
1190
1191
  ],
1191
1192
  "slug": "prism",
1192
- "version": "26.10.19"
1193
+ "version": "26.10.20"
1193
1194
  },
1194
1195
  {
1195
1196
  "availableDocPages": [
@@ -1253,7 +1254,7 @@
1253
1254
  "clockwork"
1254
1255
  ],
1255
1256
  "slug": "pulse",
1256
- "version": "26.10.19"
1257
+ "version": "26.10.20"
1257
1258
  },
1258
1259
  {
1259
1260
  "availableDocPages": [
@@ -1375,7 +1376,7 @@
1375
1376
  "keymap"
1376
1377
  ],
1377
1378
  "slug": "refine",
1378
- "version": "26.10.19"
1379
+ "version": "26.10.20"
1379
1380
  },
1380
1381
  {
1381
1382
  "availableDocPages": [
@@ -1420,7 +1421,7 @@
1420
1421
  "ledger"
1421
1422
  ],
1422
1423
  "slug": "ripple",
1423
- "version": "26.10.19"
1424
+ "version": "26.10.20"
1424
1425
  },
1425
1426
  {
1426
1427
  "availableDocPages": [
@@ -1474,7 +1475,7 @@
1474
1475
  "familiar"
1475
1476
  ],
1476
1477
  "slug": "rune",
1477
- "version": "26.10.19"
1478
+ "version": "26.10.20"
1478
1479
  },
1479
1480
  {
1480
1481
  "availableDocPages": [
@@ -1515,7 +1516,7 @@
1515
1516
  "refine"
1516
1517
  ],
1517
1518
  "slug": "sandbox",
1518
- "version": "26.10.19"
1519
+ "version": "26.10.20"
1519
1520
  },
1520
1521
  {
1521
1522
  "availableDocPages": [
@@ -1566,7 +1567,7 @@
1566
1567
  "ripple"
1567
1568
  ],
1568
1569
  "slug": "scout",
1569
- "version": "26.10.19"
1570
+ "version": "26.10.20"
1570
1571
  },
1571
1572
  {
1572
1573
  "availableDocPages": [
@@ -1619,7 +1620,7 @@
1619
1620
  "refine"
1620
1621
  ],
1621
1622
  "slug": "scroll",
1622
- "version": "26.10.19"
1623
+ "version": "26.10.20"
1623
1624
  },
1624
1625
  {
1625
1626
  "availableDocPages": [
@@ -1666,7 +1667,7 @@
1666
1667
  "gesture"
1667
1668
  ],
1668
1669
  "slug": "sentinel",
1669
- "version": "26.10.19"
1670
+ "version": "26.10.20"
1670
1671
  },
1671
1672
  {
1672
1673
  "availableDocPages": [
@@ -1706,7 +1707,7 @@
1706
1707
  "refine"
1707
1708
  ],
1708
1709
  "slug": "sigil",
1709
- "version": "26.10.19"
1710
+ "version": "26.10.20"
1710
1711
  },
1711
1712
  {
1712
1713
  "availableDocPages": [
@@ -1751,7 +1752,7 @@
1751
1752
  "wayfinder"
1752
1753
  ],
1753
1754
  "slug": "sourcerer",
1754
- "version": "26.10.19"
1755
+ "version": "26.10.20"
1755
1756
  },
1756
1757
  {
1757
1758
  "availableDocPages": [
@@ -1810,7 +1811,7 @@
1810
1811
  "vault"
1811
1812
  ],
1812
1813
  "slug": "spell",
1813
- "version": "26.10.19"
1814
+ "version": "26.10.20"
1814
1815
  },
1815
1816
  {
1816
1817
  "availableDocPages": [
@@ -1851,7 +1852,7 @@
1851
1852
  "ripple"
1852
1853
  ],
1853
1854
  "slug": "tandem",
1854
- "version": "26.10.19"
1855
+ "version": "26.10.20"
1855
1856
  },
1856
1857
  {
1857
1858
  "availableDocPages": [
@@ -1895,7 +1896,7 @@
1895
1896
  "herald"
1896
1897
  ],
1897
1898
  "slug": "tavern",
1898
- "version": "26.10.19"
1899
+ "version": "26.10.20"
1899
1900
  },
1900
1901
  {
1901
1902
  "availableDocPages": [
@@ -1963,7 +1964,7 @@
1963
1964
  "vault"
1964
1965
  ],
1965
1966
  "slug": "tempo",
1966
- "version": "26.10.19"
1967
+ "version": "26.10.20"
1967
1968
  },
1968
1969
  {
1969
1970
  "availableDocPages": [
@@ -2014,7 +2015,7 @@
2014
2015
  "ripple"
2015
2016
  ],
2016
2017
  "slug": "vault",
2017
- "version": "26.10.19"
2018
+ "version": "26.10.20"
2018
2019
  },
2019
2020
  {
2020
2021
  "availableDocPages": [
@@ -2060,7 +2061,7 @@
2060
2061
  "refine"
2061
2062
  ],
2062
2063
  "slug": "ward",
2063
- "version": "26.10.19"
2064
+ "version": "26.10.20"
2064
2065
  },
2065
2066
  {
2066
2067
  "availableDocPages": [
@@ -2114,8 +2115,8 @@
2114
2115
  "herald"
2115
2116
  ],
2116
2117
  "slug": "wayfinder",
2117
- "version": "26.10.19"
2118
+ "version": "26.10.20"
2118
2119
  }
2119
2120
  ],
2120
- "version": "26.10.19"
2121
+ "version": "26.10.20"
2121
2122
  }
@@ -1,6 +1,6 @@
1
1
  # Vielzeug: Full Documentation
2
2
 
3
- > Complete documentation for 43 packages. Version: 26.10.19
3
+ > Complete documentation for 43 packages. Version: 26.10.20
4
4
 
5
5
  ---
6
6
 
@@ -19222,6 +19222,7 @@ chart.dispose();
19222
19222
  - **`createScatterChart()`**: plot independent numeric `(x, y)` points
19223
19223
  - **`createPieChart()`**: render pie, donut, or semi-circle slices
19224
19224
  - **`createRadarChart()`**: compare series across fixed, labelled axes
19225
+ - **`createHeatmapChart()`**: render a row/column matrix of colored cells with a continuous or binned ramp
19225
19226
  - **`createSparkline()`**: render compact line, area, bar, or stacked values without axes
19226
19227
  - **`ChartHandle.update(data)`**: replace chart data without handing state ownership to Prism
19227
19228
  - **`ChartHandle.dispose()` / `Symbol.dispose`**: release the SVG, observer, overlays, and chart-owned animation
@@ -19257,6 +19258,7 @@ All chart factories, scale utilities, theme helpers, and error classes are synch
19257
19258
  | `createBarChart()` | Render categorical bars | Sync | Negative values in stacked variants are clamped to zero |
19258
19259
  | `createPieChart()` | Render pie, donut, or semi-circle slices | Sync | `variant` is fixed at creation; `update()` replaces slices |
19259
19260
  | `createRadarChart()` | Compare series across fixed axes | Sync | Requires at least three axes to draw |
19261
+ | `createHeatmapChart()` | Render a row/column matrix of colored cells | Sync | Cells whose `row`/`column` match no label are skipped; unknown labels warn in development |
19260
19262
  | `createSparkline()` | Render a compact line, area, bar, or stack | Sync | Has no axes, legend, or keyboard navigation |
19261
19263
  | `linearScale()` | Create a numeric scale | Sync | `nice` defaults to `true`; set `nice: false` to preserve the domain |
19262
19264
  | `timeScale()` | Create a date scale | Sync | `nice` defaults to `true` |
@@ -19489,6 +19491,47 @@ chart.dispose();
19489
19491
 
19490
19492
  Radar defaults are a solid fill, linear curves, visible points, a four-level polygon grid with bands, no grid labels, and a first-axis angle of zero degrees. Grid labels render only when all axes share a domain.
19491
19493
 
19494
+ ### `createHeatmapChart()`
19495
+
19496
+ ```ts
19497
+ function createHeatmapChart(
19498
+ container: HTMLElement,
19499
+ config: HeatmapChartConfig,
19500
+ ): ChartHandle;
19501
+ ```
19502
+
19503
+ Renders one colored cell per row/column pair: rows down the left, columns across the top. The color ramp is continuous by default; `bins` turns it into discrete steps and shows a swatch legend. Cells show their formatted value when they are large enough, choosing dark or light text against the fill. `rowSummary` adds a right-hand column of pre-formatted per-row texts (e.g. a win rate the cells alone cannot show). `update()` replaces cells and may replace `rows`, `columns`, `domain`, and `rowSummary`; other configuration is fixed at creation.
19504
+
19505
+ | Parameter | Type | Description |
19506
+ | --- | --- | --- |
19507
+ | `container` | `HTMLElement` | Host that receives the chart SVG and optional overlays |
19508
+ | `config` | `HeatmapChartConfig` | Rows, columns, cells, ramp, bins, appearance, and interaction settings |
19509
+
19510
+ **Returns:** `ChartHandle`.
19511
+
19512
+ ```ts
19513
+ import { createHeatmapChart } from '@vielzeug/prism';
19514
+
19515
+ const host = document.createElement('div');
19516
+ host.style.cssText = 'width:400px;height:320px';
19517
+ document.body.append(host);
19518
+
19519
+ const chart = createHeatmapChart(host, {
19520
+ a11y: { ariaLabel: 'Win rate by hero and region' },
19521
+ cells: [
19522
+ { column: 'Forest', row: 'Aria', value: 90 },
19523
+ { column: 'Swamp', row: 'Aria', value: 40 },
19524
+ { column: 'Forest', row: 'Brom', value: 20 },
19525
+ { column: 'Swamp', row: 'Brom', value: 75 },
19526
+ ],
19527
+ columns: ['Forest', 'Swamp'],
19528
+ rows: ['Aria', 'Brom'],
19529
+ });
19530
+ chart.dispose();
19531
+ ```
19532
+
19533
+ Heatmap defaults are a light-to-deep blue ramp over the data's `[min, max]` domain, a 2 px cell gap, in-cell values, and no legend. Column headers rotate -45° when they do not fit their column. Keyboard: arrows move the active cell, Enter/Space fires `onCellClick`, Escape deactivates; the tooltip (or `.prism-live` without one) describes the active cell.
19534
+
19492
19535
  ### `createSparkline()`
19493
19536
 
19494
19537
  ```ts
@@ -19676,7 +19719,7 @@ seriesColor(1, '#2563eb'); // '#2563eb'
19676
19719
 
19677
19720
  `[Symbol.dispose]()` delegates to `dispose()`, allowing explicit resource management where supported.
19678
19721
 
19679
- All chart handles expose the same lifecycle members; interactive cartesian and pie/radar charts use a `.prism-live` status region when no tooltip is enabled. A tooltip is itself a polite status region. Sparklines have neither a tooltip nor a live value announcer.
19722
+ All chart handles expose the same lifecycle members; interactive cartesian, pie, radar, and heatmap charts use a `.prism-live` status region when no tooltip is enabled. A tooltip is itself a polite status region. Sparklines have neither a tooltip nor a live value announcer.
19680
19723
 
19681
19724
  | Method or property | Contract |
19682
19725
  | --- | --- |
@@ -19820,7 +19863,7 @@ export interface SeriesValue {
19820
19863
  | Line | Applies to the segment from this datum to the next | Applies to that segment and its point marker |
19821
19864
  | Area | Applies to the top-line segment from this datum to the next | Applies to that segment |
19822
19865
  | Scatter | Ignored | Applies to that point |
19823
- | Pie, radar, sparkline | Ignored | Ignored |
19866
+ | Pie, radar, heatmap, sparkline | Ignored | Ignored |
19824
19867
 
19825
19868
  For line and area charts, the last datum has no following segment, so its `dash` value is ignored. The chart factories group adjacent segments with the same presentation values into path runs.
19826
19869
 
@@ -19977,6 +20020,10 @@ export type BarVariant = 'grouped' | 'grouped-horizontal' | 'stacked' | 'stacked
19977
20020
 
19978
20021
  export interface BarChartConfig extends BaseChartConfig {
19979
20022
  series: BarSeriesConfig[];
20023
+ /** Paints each bar's value at its end; stacked variants label the stack total. */
20024
+ showValues?: boolean;
20025
+ /** Formats the value labels. Defaults to `String`. */
20026
+ valueFormat?: (value: number) => string;
19980
20027
  variant?: BarVariant;
19981
20028
  }
19982
20029
 
@@ -20047,6 +20094,47 @@ export interface RadarChartConfig extends Omit {
20047
20094
  startAngle?: number;
20048
20095
  }
20049
20096
 
20097
+ export interface HeatmapCell {
20098
+ column: string;
20099
+ row: string;
20100
+ value: number | null;
20101
+ }
20102
+
20103
+ export interface HeatmapEvent {
20104
+ cell: HeatmapCell | undefined;
20105
+ column: string;
20106
+ originalEvent: Event;
20107
+ row: string;
20108
+ }
20109
+
20110
+ export interface HeatmapData {
20111
+ cells: HeatmapCell[];
20112
+ columns?: string[];
20113
+ domain?: [number, number];
20114
+ rows?: string[];
20115
+ rowSummary?: HeatmapChartConfig['rowSummary'];
20116
+ }
20117
+
20118
+ export interface HeatmapChartConfig
20119
+ extends Omit {
20120
+ binLabel?: (from: number | null, to: number | null) => string;
20121
+ bins?: number[];
20122
+ cells: HeatmapCell[];
20123
+ colorRange?: string[];
20124
+ columns: string[];
20125
+ domain?: [number, number];
20126
+ emptyColor?: string;
20127
+ emptyLabel?: string;
20128
+ gap?: number;
20129
+ legend?: boolean;
20130
+ onCellClick?: (event: HeatmapEvent) => void;
20131
+ onCellHover?: (event: HeatmapEvent | null) => void;
20132
+ rows: string[];
20133
+ rowSummary?: { header?: string; values: (string | null)[] };
20134
+ showValues?: boolean;
20135
+ valueFormat?: (value: number) => string;
20136
+ }
20137
+
20050
20138
  export type SparklineVariant = 'area' | 'bar' | 'line' | 'stack';
20051
20139
 
20052
20140
  export interface StackSegment {
@@ -20150,7 +20238,7 @@ chart.update(series);
20150
20238
  chart.dispose();
20151
20239
  ```
20152
20240
 
20153
- `update()` accepts the type shown by that factory's handle: a complete series array for line, area, scatter, bar, and radar charts; a slice array for pie charts; and a number or stack-segment array for sparklines. Chart options such as axes, variant, callbacks, and accessibility are set at creation. For example, radar axes and a pie chart's variant do not change through `update()`.
20241
+ `update()` accepts the type shown by that factory's handle: a complete series array for line, area, scatter, bar, and radar charts; a slice array for pie charts; a `HeatmapData` object for heatmap charts; and a number or stack-segment array for sparklines. Chart options such as axes, variant, callbacks, and accessibility are set at creation. For example, radar axes and a pie chart's variant do not change through `update()`.
20154
20242
 
20155
20243
  ## Line Charts
20156
20244
 
@@ -20279,6 +20367,8 @@ Choose `grouped`, `stacked`, `grouped-horizontal`, or `stacked-horizontal` in `v
20279
20367
 
20280
20368
  Axes render by default, with grid lines on the value axis. For horizontal variants, `xAxis` is the value axis and `yAxis` is the category axis. Configure `grid` on the value axis.
20281
20369
 
20370
+ Set `showValues: true` to paint each bar's value at its end so the chart reads without hover; `valueFormat` shapes the label text. Stacked variants label the stack total at the top of the stack, and labels that would overflow the plot flip inside the bar with a contrasting fill. The labels are decorative (`aria-hidden`) — the accessible read stays with the chart's data table.
20371
+
20282
20372
  ## Area Charts
20283
20373
 
20284
20374
  Area series use a gradient fill by default. Set `fill: 'solid'` for a flat fill, or set `fillOpacity` to override the theme opacity for that series.
@@ -20422,6 +20512,37 @@ chart.dispose();
20422
20512
 
20423
20513
  The default shared domain starts at zero and uses a nice maximum; set `domain` to compare series on a fixed range. Per-axis `min` and `max` override the chart domain for that axis. Grid rings, bands, curves, fills, vertex dots, and values are configurable; see `RadarChartConfig` and `RadarGridConfig` in the API reference.
20424
20514
 
20515
+ ## Heatmaps
20516
+
20517
+ Define `rows`, `columns`, and `cells`; each cell names its `row` and `column` labels. A cell with `value: null` (or no matching cell at all) renders in `emptyColor` without in-cell text. `rowSummary` adds a right-hand column of pre-formatted per-row texts (aligned with `rows`, with an optional header) — useful for a per-row rate the cells cannot show. `update()` replaces cells and may replace `rows`, `columns`, `domain`, and `rowSummary`.
20518
+
20519
+ ```ts
20520
+ import { createHeatmapChart } from '@vielzeug/prism';
20521
+
20522
+ const container = document.createElement('div');
20523
+ container.style.cssText = 'width:400px;height:320px';
20524
+ document.body.append(container);
20525
+
20526
+ const chart = createHeatmapChart(container, {
20527
+ a11y: { ariaLabel: 'Win rate by hero and region' },
20528
+ bins: [50, 75],
20529
+ cells: [
20530
+ { column: 'Forest', row: 'Aria', value: 90 },
20531
+ { column: 'Swamp', row: 'Aria', value: 40 },
20532
+ { column: 'Forest', row: 'Brom', value: 20 },
20533
+ { column: 'Swamp', row: 'Brom', value: 75 },
20534
+ ],
20535
+ columns: ['Forest', 'Swamp'],
20536
+ rows: ['Aria', 'Brom'],
20537
+ tooltip: true,
20538
+ valueFormat: (value) => `${value}%`,
20539
+ });
20540
+
20541
+ chart.dispose();
20542
+ ```
20543
+
20544
+ Without `bins` the ramp is continuous over the data's `[min, max]` domain (or an explicit `domain`); with `bins` each value maps to a discrete step and a swatch legend appears. `colorRange` sets the ramp low → high, `valueFormat` shapes in-cell values, tooltip values, and bin labels, and `showValues: false` hides the in-cell text.
20545
+
20425
20546
  ## Sparklines
20426
20547
 
20427
20548
  Sparklines omit axes, margins, and legends. Choose `line`, `area`, or `bar` for numeric arrays, and `stack` for an array of `StackSegment` objects.
@@ -20478,7 +20599,7 @@ chart.dispose();
20478
20599
 
20479
20600
  Set `a11y: { ariaLabel }` on an informative chart. Prism gives the SVG `role="img"`, an accessible name, and keyboard focus. Arrow keys move among chart data; `Home` and `End` move to the first and last item where supported; `Enter` or `Space` activates an item when an `onClick` callback is configured; `Escape` clears the active selection. Sparklines do not support keyboard navigation.
20480
20601
 
20481
- When `a11y` is omitted, or set to `{ decorative: true }`, the SVG is marked `aria-hidden="true"` and does not enter the keyboard tab order. Only mark charts decorative when their information is available elsewhere. Interactive cartesian and pie/radar charts use the tooltip as a polite live region when enabled; otherwise they announce active values in `.prism-live`. Sparklines have no live value announcements, so provide an equivalent visible value or summary.
20602
+ When `a11y` is omitted, or set to `{ decorative: true }`, the SVG is marked `aria-hidden="true"` and does not enter the keyboard tab order. Only mark charts decorative when their information is available elsewhere. Interactive cartesian, pie, radar, and heatmap charts use the tooltip as a polite live region when enabled; otherwise they announce active values in `.prism-live`. Sparklines have no live value announcements, so provide an equivalent visible value or summary.
20482
20603
 
20483
20604
  ## Animation
20484
20605
 
@@ -20578,6 +20699,7 @@ The stylesheet defines defaults for the following token groups. Pie-label color
20578
20699
  | Interaction | `--prism-dim-opacity`, `--prism-active-point-radius`, `--prism-point-ring`, `--prism-focus-color` |
20579
20700
  | Sparklines | `--prism-spark-fill-opacity`, `--prism-spark-gradient-start`, `--prism-spark-gradient-end` |
20580
20701
  | Radar | `--prism-radar-grid-color`, `--prism-radar-grid-opacity`, `--prism-radar-band-fill`, `--prism-radar-band-opacity`, `--prism-radar-spoke-color`, `--prism-radar-fill-opacity`, `--prism-radar-stroke-width`, `--prism-radar-point-radius`, `--prism-radar-point-radius-active`, `--prism-radar-label-color`, `--prism-radar-label-size`, `--prism-radar-value-color`, `--prism-radar-value-size`, `--prism-radar-dim-opacity` |
20702
+ | Heatmap | `--prism-heatmap-label-color`, `--prism-heatmap-label-size`, `--prism-heatmap-value-size`, `--prism-heatmap-highlight-color` |
20581
20703
  | Motion | `--prism-duration-fast`, `--prism-duration`, `--prism-duration-slow`, `--prism-ease`, `--prism-ease-spring`, `--prism-transition`, `--prism-transition-fast` |
20582
20704
  | Legend and pie labels | `--prism-legend-gap`, `--prism-legend-dot-size`, `--prism-legend-font-size`, `--prism-pie-label-color`, `--prism-pie-label-size` |
20583
20705
 
@@ -20642,6 +20764,7 @@ Use Refine components for dashboard controls and keep Prism in a sized host elem
20642
20764
  - [Compare categories with a bar chart](./examples/bar-chart.md)
20643
20765
  - [Render compact charts](./examples/compact-charts.md)
20644
20766
  - [Compare hero stats with a radar chart](./examples/radar-chart.md)
20767
+ - [Show a win-rate matrix with a heatmap](./examples/heatmap-chart.md)
20645
20768
  - [Update chart data](./examples/update-data.md)
20646
20769
  - [Sync a details panel with hover](./examples/hover-details.md)
20647
20770
  - [Render a custom tooltip](./examples/custom-tooltip.md)
package/data/llms.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  # Vielzeug
2
2
 
3
- > 43 focused TypeScript packages. Version: 26.10.19
3
+ > 43 focused TypeScript packages. Version: 26.10.20
4
4
 
5
5
  Install any package independently: `pnpm add @vielzeug/<name>`
6
6
 
@@ -31,7 +31,7 @@ Install any package independently: `pnpm add @vielzeug/<name>`
31
31
  - [@vielzeug/orbit](/orbit/): Floating positioning with lifecycle-owned geometry and middleware.
32
32
  - [@vielzeug/ore](/ore/): Functional custom-element authoring with typed props, reactive templates, lifecycle helpers, and testing utilities.
33
33
  - [@vielzeug/postmaster](/postmaster/): Typed durable job outbox with leased processing, retries, and dead-letter recovery for browser applications.
34
- - [@vielzeug/prism](/prism/): Responsive SVG charts with explicit updates: line, bar, area, scatter, pie, radar, sparkline
34
+ - [@vielzeug/prism](/prism/): Responsive SVG charts with explicit updates: line, bar, area, scatter, pie, radar, heatmap, sparkline
35
35
  - [@vielzeug/pulse](/pulse/): Explicitly connected, typed WebSocket sessions with scoped channels, ref-counted rooms with reactive presence, reconnect restoration, and heartbeat.
36
36
  - [@vielzeug/refine](/refine/): Accessible, themeable web components built with Ore for framework and vanilla DOM apps.
37
37
  - [@vielzeug/ripple](/ripple/): Framework-agnostic signals, effects, async resources, scopes, and structural bridges.
@@ -4,5 +4,5 @@
4
4
  "refine": "refine.json",
5
5
  "schemaVersion": 1,
6
6
  "search": "search.json",
7
- "version": "26.10.19"
7
+ "version": "26.10.20"
8
8
  }